fimo 2.10.0-staging.7 → 2.10.0-staging.9

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/dist/cli/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __fimoCreateRequire } from 'node:module';
3
3
  const require = __fimoCreateRequire(import.meta.url);
4
- var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0}),__require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);import{z}from"zod";function filterUnknownProperties(data,schema){if(data==null)return data;if(schema instanceof z.ZodOptional||schema instanceof z.ZodNullable||schema instanceof z.ZodDefault)return filterUnknownProperties(data,schema.unwrap());if(schema instanceof z.ZodArray){if(!Array.isArray(data))return data;let itemSchema=schema.unwrap();return data.map(item=>filterUnknownProperties(item,itemSchema))}if(schema instanceof z.ZodDiscriminatedUnion){if(typeof data!="object"||data===null)return data;let unionSchema=schema,discriminator=unionSchema.def.discriminator,discriminatorValue=data[discriminator],matchingSchema=unionSchema.options.find(option=>{let discriminatorField=option.shape[discriminator];return discriminatorField instanceof z.ZodLiteral?discriminatorField.def.values.includes(discriminatorValue):!1});return matchingSchema?filterUnknownProperties(data,matchingSchema):data}if(schema instanceof z.ZodObject){if(typeof data!="object")return data;let shape=schema.shape,result={};for(let key in shape)if(Object.prototype.hasOwnProperty.call(data,key)){let fieldSchema=shape[key],fieldValue2=data[key];result[key]=filterUnknownProperties(fieldValue2,fieldSchema)}if(schema.def.catchall instanceof z.ZodUnknown)for(let[key,value]of Object.entries(data))key in shape||(result[key]=value);return result}return data}function createObjectDTO(schema){return{schema,from(data){let filtered=filterUnknownProperties(data,schema);return schema.parse(filtered)},fromList(data){return data.map(item=>this.from(item))},safeParse(data){let filtered=filterUnknownProperties(data,schema);return schema.safeParse(filtered)},partial(){let partialSchema=schema.partial();return createObjectDTO(partialSchema)},pick(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),picked=schema.pick(mask);return createObjectDTO(picked)},omit(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),omitted=schema.omit(mask);return createObjectDTO(omitted)}}}function createDiscriminatedUnionDTO(schema){return{schema,from(data){let filtered=filterUnknownProperties(data,schema);return schema.parse(filtered)},fromList(data){return data.map(item=>this.from(item))},safeParse(data){let filtered=filterUnknownProperties(data,schema);return schema.safeParse(filtered)}}}function createDTO(schema){if(schema instanceof z.ZodObject)return createObjectDTO(schema);if(schema instanceof z.ZodDiscriminatedUnion)return createDiscriminatedUnionDTO(schema);throw new Error(`Unsupported schema type: ${schema.constructor.name}. createDTO supports ZodObject and ZodDiscriminatedUnion.`)}var init_create_dto=__esm({"../../packages/api-contracts/dist/esm/utils/create-dto.js"(){"use strict";__name(filterUnknownProperties,"filterUnknownProperties");__name(createObjectDTO,"createObjectDTO");__name(createDiscriminatedUnionDTO,"createDiscriminatedUnionDTO");__name(createDTO,"createDTO")}});import{z as z2}from"zod";function createCursorPageDataSchema(dataSchema){return z2.object({items:z2.array(dataSchema),nextCursor:z2.string().nullable()})}function createCursorPaginatedResponseSchema(dataSchema){return z2.object({data:createCursorPageDataSchema(dataSchema)})}var createResponseSchema,init_response=__esm({"../../packages/api-contracts/dist/esm/utils/response.js"(){"use strict";createResponseSchema=__name(dataSchema=>z2.object({data:dataSchema}),"createResponseSchema");__name(createCursorPageDataSchema,"createCursorPageDataSchema");__name(createCursorPaginatedResponseSchema,"createCursorPaginatedResponseSchema")}});import{z as z3}from"zod";var PaginationQuerySchema,init_pagination=__esm({"../../packages/api-contracts/dist/esm/utils/pagination.js"(){"use strict";PaginationQuerySchema=z3.object({page:z3.coerce.number().int().positive().default(1),limit:z3.coerce.number().int().positive().max(100).default(20)})}});import{z as z4}from"zod";var CommonSchemas,BaseEntitySchema,ProjectRoleKeySchema,ProjectRoleKeyWithSystemSchema,ProjectPrincipalTypeSchema,ProjectStatusSchema,ProjectInviteStatusSchema,PublicationStatusSchema,OrganizationRoleSchema,AssetTypeSchema,TemplateCodeSchema,FieldTypeSchema,CONTENT_INTERNAL_FIELD_NAMES,contentInternalFieldNames,RESERVED_CONTENT_FIELD_NAMES,contentReviewHiddenFieldNames,CONTENT_TYPE_NAME_PATTERN,CONTENT_TYPE_NAME_PATTERN_DESCRIPTION,CONTENT_FIELD_NAME_PATTERN,CONTENT_FIELD_NAME_PATTERN_DESCRIPTION,init_common=__esm({"../../packages/api-contracts/dist/esm/types/common.js"(){"use strict";CommonSchemas={timestamp:z4.coerce.date(),positiveInt:z4.number().int().positive(),nonNegativeInt:z4.number().int().nonnegative()},BaseEntitySchema=z4.object({id:z4.uuid(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),ProjectRoleKeySchema=z4.enum(["full","edit","comment","view"]),ProjectRoleKeyWithSystemSchema=z4.enum(["full","edit","comment","view","agent","schedule"]),ProjectPrincipalTypeSchema=z4.enum(["user","org","orgRole","public","email"]),ProjectStatusSchema=z4.enum(["creating","forking","start_server","created","failed"]),ProjectInviteStatusSchema=z4.enum(["pending","accepted","revoked","expired"]),PublicationStatusSchema=z4.enum(["idle","publishing","published","failed","unpublished"]),OrganizationRoleSchema=z4.enum(["owner","admin","member"]),AssetTypeSchema=z4.enum(["file","folder"]),TemplateCodeSchema=z4.enum(["Free","PAYG","Starter","Premium","Pro"]),FieldTypeSchema=z4.enum(["string","text","richtext","media","number","boolean","date","datetime","json","reference","blocks"]),CONTENT_INTERNAL_FIELD_NAMES=["id","entryId","documentId","locale","__fimo"],contentInternalFieldNames=new Set(CONTENT_INTERNAL_FIELD_NAMES),RESERVED_CONTENT_FIELD_NAMES=[...CONTENT_INTERNAL_FIELD_NAMES,"slug","createdAt","updatedAt"],contentReviewHiddenFieldNames=new Set(RESERVED_CONTENT_FIELD_NAMES),CONTENT_TYPE_NAME_PATTERN=/^[A-Za-z]\w*$/,CONTENT_TYPE_NAME_PATTERN_DESCRIPTION="letters, numbers, and underscores, starting with a letter",CONTENT_FIELD_NAME_PATTERN=/^[A-Za-z_]\w*$/,CONTENT_FIELD_NAME_PATTERN_DESCRIPTION="letters, numbers, and underscores, starting with a letter or underscore"}});import{z as z5}from"zod";var MB,MAX_UPLOAD_FILE_SIZE_BYTES,MAX_DOCUMENT_SIZE_BYTES,MAX_AUDIO_SIZE_BYTES,MAX_IMAGE_SIZE_BYTES,MAX_VIDEO_SIZE_BYTES,MAX_ARCHIVE_SIZE_BYTES,MAX_MODEL_SIZE_BYTES,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES,MODEL_MEDIA_TYPE,AttachmentModelMediaTypeSchema,MODEL_MIME_TYPES,MODEL_RENDER_VIEW_ANGLES,AttachmentModelRenderRequestSchema,AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema,AttachmentModelRenderResponseSchema,AttachmentModelRenderMeterSchema,ATTACHMENT_TYPES,ATTACHMENT_MIME_TYPES,ATTACHMENT_IMAGE_MIME_TYPES,ATTACHMENT_DOCUMENT_MIME_TYPES,ATTACHMENT_ARCHIVE_MIME_TYPES,ATTACHMENT_AUDIO_MIME_TYPES,ATTACHMENT_VIDEO_MIME_TYPES,ATTACHMENT_ACCEPT_EXTENSIONS,ATTACHMENT_ACCEPT_STRING,ATTACHMENT_DROPZONE_ACCEPT,EXTENSION_MIME_TYPES,init_attachments=__esm({"../../packages/api-contracts/dist/esm/types/attachments.js"(){"use strict";MB=1024*1024,MAX_UPLOAD_FILE_SIZE_BYTES=50*MB,MAX_DOCUMENT_SIZE_BYTES=5*MB,MAX_AUDIO_SIZE_BYTES=10*MB,MAX_IMAGE_SIZE_BYTES=20*MB,MAX_VIDEO_SIZE_BYTES=20*MB,MAX_ARCHIVE_SIZE_BYTES=20*MB,MAX_MODEL_SIZE_BYTES=20*MB,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES=20*MB,MODEL_MEDIA_TYPE={GLB:"model/gltf-binary",GLTF:"model/gltf+json",FBX:"model/fbx",OBJ:"model/obj",STL:"model/stl",PLY:"model/ply"},AttachmentModelMediaTypeSchema=z5.enum(MODEL_MEDIA_TYPE),MODEL_MIME_TYPES=Object.values(MODEL_MEDIA_TYPE),MODEL_RENDER_VIEW_ANGLES=[35,125,215,305],AttachmentModelRenderRequestSchema=z5.object({renderId:z5.uuid(),filename:z5.string().min(1).max(255),mediaType:AttachmentModelMediaTypeSchema,modelUrl:z5.url()}),AttachmentModelRenderSuccessSchema=z5.object({status:z5.literal("succeeded"),views:z5.tuple([z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[0]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[1]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[2]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[3]),screenshotUrl:z5.url()})]),elapsedMs:z5.number().nonnegative(),browserElapsedMs:z5.number().nonnegative(),diagnostics:z5.unknown().optional()}),AttachmentModelRenderFailureSchema=z5.object({status:z5.literal("failed"),error:z5.literal("render_failed"),message:z5.string(),elapsedMs:z5.number().nonnegative(),browserElapsedMs:z5.number().nonnegative()}),AttachmentModelRenderResponseSchema=z5.discriminatedUnion("status",[AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema]),AttachmentModelRenderMeterSchema=z5.object({browserElapsedMs:z5.number().nonnegative()}),ATTACHMENT_TYPES=[{mime:"image/png",extensions:[".png"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/jpeg",extensions:[".jpg",".jpeg"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/webp",extensions:[".webp"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/avif",extensions:[".avif"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"application/pdf",extensions:[".pdf"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/msword",extensions:[".doc"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extensions:[".docx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.ms-excel",extensions:[".xls"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",extensions:[".xlsx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.ms-powerpoint",extensions:[".ppt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation",extensions:[".pptx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/epub+zip",extensions:[".epub"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.text",extensions:[".odt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.spreadsheet",extensions:[".ods"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.presentation",extensions:[".odp"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/rtf",extensions:[],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/rtf",extensions:[".rtf"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/html",extensions:[".html",".htm"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/csv",extensions:[".csv"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/markdown",extensions:[".md",".markdown"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/json",extensions:[".json"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/plain",extensions:[".txt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/zip",extensions:[".zip"],category:"archive",maxSizeBytes:MAX_ARCHIVE_SIZE_BYTES},{mime:"audio/mpeg",extensions:[".mp3"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/wav",extensions:[".wav"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/aiff",extensions:[".aiff",".aif"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/aac",extensions:[".aac"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/ogg",extensions:[".ogg"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/flac",extensions:[".flac"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"video/mp4",extensions:[".mp4"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mpeg",extensions:[".mpeg",".mpg"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mpg",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/quicktime",extensions:[".mov"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mov",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/avi",extensions:[".avi"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/vnd.avi",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-msvideo",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-flv",extensions:[".flv"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/webm",extensions:[".webm"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/wmv",extensions:[".wmv"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-ms-wmv",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-ms-asf",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/3gpp",extensions:[".3gp"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.GLB,extensions:[".glb"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.GLTF,extensions:[".gltf"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.FBX,extensions:[".fbx"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.OBJ,extensions:[".obj"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.STL,extensions:[".stl"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.PLY,extensions:[".ply"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES}],ATTACHMENT_MIME_TYPES=ATTACHMENT_TYPES.map(t2=>t2.mime),ATTACHMENT_IMAGE_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="image").map(t2=>t2.mime),ATTACHMENT_DOCUMENT_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="document").map(t2=>t2.mime),ATTACHMENT_ARCHIVE_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="archive").map(t2=>t2.mime),ATTACHMENT_AUDIO_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="audio").map(t2=>t2.mime),ATTACHMENT_VIDEO_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="video").map(t2=>t2.mime),ATTACHMENT_ACCEPT_EXTENSIONS=ATTACHMENT_TYPES.flatMap(t2=>t2.extensions),ATTACHMENT_ACCEPT_STRING=[...ATTACHMENT_ACCEPT_EXTENSIONS,...ATTACHMENT_MIME_TYPES].join(","),ATTACHMENT_DROPZONE_ACCEPT=Object.fromEntries(ATTACHMENT_TYPES.map(t2=>[t2.mime,t2.extensions])),EXTENSION_MIME_TYPES=Object.fromEntries(ATTACHMENT_TYPES.flatMap(t2=>t2.extensions.map(extension=>[extension,t2.mime])))}});import{z as z6}from"zod";var AssetReadRequestSchema,AssetDerivedFileSchema,AssetReadBaseSchema,AssetReadPageSchema,AssetReadQuerySchema,AssetReadResultSchema,init_asset_reading=__esm({"../../packages/api-contracts/dist/esm/types/asset-reading.js"(){"use strict";AssetReadRequestSchema=z6.object({cursor:z6.string().optional(),query:z6.string().trim().min(1).max(500).optional()}).strict().refine(input=>input.cursor===void 0||input.query===void 0,{message:"Use either cursor or query, not both."}),AssetDerivedFileSchema=z6.object({url:z6.url(),mediaType:z6.string(),filename:z6.string()}),AssetReadBaseSchema=z6.object({assetId:z6.uuid(),filename:z6.string(),mediaType:z6.string(),representation:z6.enum(["text","table","document","archive","image","transcript","video","model"]),content:z6.string(),derivedFiles:z6.array(AssetDerivedFileSchema).optional()}),AssetReadPageSchema=AssetReadBaseSchema.extend({mode:z6.literal("page"),start:z6.number().int().nonnegative(),end:z6.number().int().nonnegative(),total:z6.number().int().nonnegative(),nextCursor:z6.string().nullable(),complete:z6.boolean()}),AssetReadQuerySchema=AssetReadBaseSchema.extend({mode:z6.literal("query"),query:z6.string(),source:z6.enum(["original-file","canonical-text","derived-files"]),truncated:z6.boolean()}),AssetReadResultSchema=z6.discriminatedUnion("mode",[AssetReadPageSchema,AssetReadQuerySchema])}});import{z as z7}from"zod";function isProcessControlEnvKey(key){return PROCESS_CONTROL_ENV_KEYS.has(key)||PROCESS_CONTROL_ENV_PREFIXES.some(prefix=>key.startsWith(prefix))}function isValidBranch(branch){return typeof branch!="string"||branch.length===0||branch.length>MAX_BRANCH_LENGTH||branch.startsWith("-")||branch.startsWith(".")||branch.includes("//")||branch.includes("--")||branch.split("/").some(segment=>segment==="..")?!1:BRANCH_ID_REGEX.test(branch)}function encodeBranchPathSegment(branch){return branch.replace(/\//g,"--")}function isProductionBranch(branch){return branch===PRODUCTION_BRANCH}function fnv1a8(s){let h=2166136261;for(let i=0;i<s.length;i++)h^=s.charCodeAt(i),h=Math.imul(h,16777619);return(h>>>0).toString(16).padStart(8,"0")}function branchResourceKey(branch){let base=branch.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,15),hash=fnv1a8(branch);return base?`${base}-${hash}`:hash}function buildTenantApiUrl(projectId2,branch,tenantApiBaseUrl){let url=new URL(tenantApiBaseUrl);return url.hostname=`${projectId2}-${branchResourceKey(branch)}.${url.hostname}`,url.toString().replace(/\/$/,"")}var FIMO_CONTENT_API_ENV_KEYS,FIMO_ANALYTICS_ENV_KEYS,FIMO_PREVIEW_SCRIPT_ENV_KEYS,FIMO_MANAGED_PROJECT_ENV_KEYS,PROCESS_CONTROL_ENV_KEYS,PROCESS_CONTROL_ENV_PREFIXES,BRANCH_ID_REGEX,MAX_BRANCH_LENGTH,BranchSchema,DEFAULT_BRANCH,PRODUCTION_BRANCH,envResourceKey,init_env=__esm({"../../packages/api-contracts/dist/esm/types/env.js"(){"use strict";FIMO_CONTENT_API_ENV_KEYS=["FIMO_CONTENT_API_URL","VITE_API_URL","NEXT_PUBLIC_FIMO_API_URL","NUXT_PUBLIC_FIMO_API_URL","PUBLIC_FIMO_API_URL"],FIMO_ANALYTICS_ENV_KEYS=["VITE_ENABLE_ANALYTICS","NEXT_PUBLIC_FIMO_ENABLE_ANALYTICS","NUXT_PUBLIC_FIMO_ENABLE_ANALYTICS","PUBLIC_FIMO_ENABLE_ANALYTICS"],FIMO_PREVIEW_SCRIPT_ENV_KEYS=["VITE_PREVIEW_SCRIPT_URL","VITE_FIMO_PREVIEW_SCRIPT_URL","NEXT_PUBLIC_FIMO_PREVIEW_SCRIPT_URL","NUXT_PUBLIC_FIMO_PREVIEW_SCRIPT_URL","PUBLIC_FIMO_PREVIEW_SCRIPT_URL","FIMO_PREVIEW_SCRIPT_URL"],FIMO_MANAGED_PROJECT_ENV_KEYS=["FIMO_API_URL","FIMO_API_TOKEN","FIMO_PROJECT_ID","FIMO_ENV","NEXT_PUBLIC_FIMO_ENV","FIMO_AGENT_SESSION","FIMO_DATA_SOURCES",...FIMO_CONTENT_API_ENV_KEYS,...FIMO_PREVIEW_SCRIPT_ENV_KEYS,...FIMO_ANALYTICS_ENV_KEYS,"VITE_FIMO_BRANCH","VITE_FIMO_IMAGE_HOSTS"],PROCESS_CONTROL_ENV_KEYS=new Set(["PATH","HOME","SHELL","BASH_ENV","ENV","PROMPT_COMMAND","USER","TMPDIR","HOST","HOSTNAME","PORT","NODE_ENV","NODE_OPTIONS","NODE_PATH","NODE_EXTRA_CA_CERTS","NODE_TLS_REJECT_UNAUTHORIZED","SSL_CERT_FILE","CURL_CA_BUNDLE","PYTHONPATH","LD_PRELOAD","LD_LIBRARY_PATH","HTTP_PROXY","HTTPS_PROXY","ALL_PROXY","NO_PROXY","FIMO_VALIDATION_BUILD","FIMO_SKIP_VERSION_CHECK","FIMO_EDITING_METADATA","FIMO_AGENT_TMP_DIR"]),PROCESS_CONTROL_ENV_PREFIXES=["GIT_","NPM_CONFIG_","PNPM_","YARN_","COREPACK_","BUN_","DENO_"];__name(isProcessControlEnvKey,"isProcessControlEnvKey");BRANCH_ID_REGEX=/^[a-zA-Z0-9._/-]+$/,MAX_BRANCH_LENGTH=255;__name(isValidBranch,"isValidBranch");__name(encodeBranchPathSegment,"encodeBranchPathSegment");BranchSchema=z7.string().min(1,"env must not be empty").max(MAX_BRANCH_LENGTH,`env must be at most ${MAX_BRANCH_LENGTH} characters`).refine(isValidBranch,{error:"env must match /^[a-zA-Z0-9._/-]+$/ and must not start with `-`"}),DEFAULT_BRANCH="main",PRODUCTION_BRANCH="prod";__name(isProductionBranch,"isProductionBranch");__name(fnv1a8,"fnv1a8");__name(branchResourceKey,"branchResourceKey");__name(buildTenantApiUrl,"buildTenantApiUrl");envResourceKey=branchResourceKey}});import{z as z8}from"zod";var PRODUCTION_ENVIRONMENT_KEY,PREVIEW_ENVIRONMENT_KEY,EnvironmentKeySchema,CustomEnvironmentSchema,ResolvedEnvironmentSchema,init_environment=__esm({"../../packages/api-contracts/dist/esm/types/environment.js"(){"use strict";init_env();PRODUCTION_ENVIRONMENT_KEY="production",PREVIEW_ENVIRONMENT_KEY="preview",EnvironmentKeySchema=z8.union([z8.literal(PRODUCTION_ENVIRONMENT_KEY),z8.literal(PREVIEW_ENVIRONMENT_KEY),z8.uuid()]),CustomEnvironmentSchema=z8.object({id:z8.uuid(),projectId:z8.uuid(),name:z8.string().trim().min(1).max(64),branchPatterns:z8.array(z8.string().min(1).max(255)).min(1),description:z8.string().max(255).nullable()}),ResolvedEnvironmentSchema=z8.object({branch:BranchSchema,environment:EnvironmentKeySchema})}});var init_realtime=__esm({"../../packages/api-contracts/dist/esm/types/realtime.js"(){"use strict";init_env()}});var init_realtime_room=__esm({"../../packages/api-contracts/dist/esm/types/realtime-room.js"(){"use strict";init_env()}});import{z as z9}from"zod";function referenceDocumentId(value){if(typeof value=="string")return value;if(value&&typeof value=="object"){let reference=value,hasId=Object.prototype.hasOwnProperty.call(reference,"id"),hasDocumentId=Object.prototype.hasOwnProperty.call(reference,"documentId"),id=reference.id,documentId=reference.documentId;if(hasId&&typeof id!="string"||hasDocumentId&&typeof documentId!="string"||typeof id=="string"&&typeof documentId=="string"&&id!==documentId)return null;if(typeof id=="string")return id;if(typeof documentId=="string")return documentId}return null}function toReferenceValue(value){let documentId=referenceDocumentId(value);return documentId?{documentId}:null}function referenceContentType(value){if(value&&typeof value=="object"&&"contentType"in value){let contentType=value.contentType;return typeof contentType=="string"&&contentType.length>0?contentType:null}return null}function toPolymorphicReferenceValue(value){let documentId=referenceDocumentId(value),contentType=referenceContentType(value);return documentId&&contentType?{contentType,documentId}:null}var referenceValuePreprocess,ReferenceValueSchema,ReferenceInputValueSchema,polymorphicReferenceValuePreprocess,PolymorphicReferenceValueSchema,PolymorphicReferenceInputValueSchema,init_references=__esm({"../../packages/api-contracts/dist/esm/types/references.js"(){"use strict";__name(referenceDocumentId,"referenceDocumentId");__name(toReferenceValue,"toReferenceValue");referenceValuePreprocess=__name(value=>{let reference=toReferenceValue(value);return reference||(value&&typeof value=="object"&&("id"in value||"documentId"in value)?null:value)},"referenceValuePreprocess"),ReferenceValueSchema=z9.preprocess(referenceValuePreprocess,z9.object({documentId:z9.uuid()})),ReferenceInputValueSchema=z9.preprocess(referenceValuePreprocess,z9.union([z9.object({documentId:z9.uuid()}),z9.object({slug:z9.string().min(1)})]));__name(referenceContentType,"referenceContentType");__name(toPolymorphicReferenceValue,"toPolymorphicReferenceValue");polymorphicReferenceValuePreprocess=__name(value=>{let reference=toPolymorphicReferenceValue(value);return reference||(value&&typeof value=="object"&&("id"in value||"documentId"in value)?null:value)},"polymorphicReferenceValuePreprocess"),PolymorphicReferenceValueSchema=z9.preprocess(polymorphicReferenceValuePreprocess,z9.object({contentType:z9.string().min(1),documentId:z9.uuid()})),PolymorphicReferenceInputValueSchema=z9.preprocess(polymorphicReferenceValuePreprocess,z9.union([z9.object({contentType:z9.string().min(1),documentId:z9.uuid()}),z9.object({contentType:z9.string().min(1),slug:z9.string().min(1)})]))}});import{z as z10}from"zod";function isDatetimeInstant(value){return typeof value=="string"&&DATETIME_INSTANT_PATTERN.test(value)&&!Number.isNaN(Date.parse(value))}function rejectLegacyLocaleSettings(field,ctx){"localized"in field&&ctx.addIssue({code:"custom",path:["localized"],message:'Field-level locale settings use "i18n".'})}function rejectFieldI18n(field,ctx){"i18n"in field&&ctx.addIssue({code:"custom",path:["i18n"],message:FIELD_I18N_UNSUPPORTED_MESSAGE})}function refineConditions(field,ctx){if(field.showIf!==void 0&&field.showIfAny!==void 0&&ctx.addIssue({code:"custom",path:["showIfAny"],message:'A field declares "showIf" or "showIfAny", never both.'}),Array.isArray(field.showIf)){let fields=field.showIf.map(clause=>clause.field);new Set(fields).size!==fields.length&&ctx.addIssue({code:"custom",path:["showIf"],message:'"showIf" clauses must each name a different field. Use "in" for several values of one field.'})}}function rejectUnsupportedUnique(field,ctx,type){"unique"in field&&!uniqueFieldTypes.has(type)&&ctx.addIssue({code:"custom",path:["unique"],message:UNSUPPORTED_UNIQUE_MESSAGE})}function getConditionDefinition(field){if(field.showIfAny!==void 0)return{key:"showIfAny",clauses:field.showIfAny};if(field.showIf!==void 0)return{key:"showIf",clauses:Array.isArray(field.showIf)?field.showIf:[field.showIf]}}function getConditionValues(clause){return"equals"in clause?[clause.equals]:clause.in}function collectClauseProblems(fieldName,condition,clause,fields,path50){let conditionPath=[...path50,fieldName,condition.key],trigger=fields[clause.field];if(trigger===void 0)return[{path:conditionPath,message:`"${condition.key}" references unknown field "${clause.field}".`}];if(trigger.showIf!==void 0||trigger.showIfAny!==void 0)return[{path:conditionPath,message:`"${condition.key}" cannot reference "${clause.field}" because it is conditional too. Conditions are one level deep.`}];if(trigger.type!=="boolean"&&trigger.type!=="number"&&trigger.type!=="string")return[{path:conditionPath,message:`"${condition.key}" can only reference boolean, number, and string fields. "${clause.field}" is a ${trigger.type} field.`}];let triggerOptions=trigger.type==="string"?trigger.options:void 0;if(trigger.type==="string"&&triggerOptions===void 0)return[{path:conditionPath,message:`"${condition.key}" can only reference a string field that declares "options". Add options to "${clause.field}".`}];let values=getConditionValues(clause);if(values.some(value=>typeof value!==trigger.type))return[{path:conditionPath,message:`"${condition.key}" on "${clause.field}" expects a ${trigger.type} value.`}];if(triggerOptions!==void 0){let invalidValues=values.filter(value=>!triggerOptions.includes(value));if(invalidValues.length>0)return invalidValues.map(value=>({path:conditionPath,message:`"${value}" is not one of the options declared by "${clause.field}".`}))}return trigger.editable===!1?[{path:conditionPath,message:`"${condition.key}" cannot reference "${clause.field}" because it is not editable.`}]:[]}function collectConditionProblems(fields){let problems=[],walk=__name((currentFields,path50)=>{for(let[fieldName,field]of Object.entries(currentFields)){let condition=getConditionDefinition(field);if(condition!==void 0)for(let clause of condition.clauses)problems.push(...collectClauseProblems(fieldName,condition,clause,currentFields,path50));if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...path50,fieldName,variant.uid]);else walk(field.schema.fields,[...path50,fieldName])}},"walk");return walk(fields,[]),problems}function isBlocksUnion(schema){return"oneOf"in schema}function walkContentFields(fields,visit2){let walk=__name((currentFields,path50,structuredDepth,insideStructuredContent)=>{for(let[fieldName,field]of Object.entries(currentFields)){let fieldPath=[...path50,fieldName];visit2({field,path:fieldPath,structuredDepth,insideStructuredContent});let nextDepth=structuredDepth+1;if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...fieldPath,variant.uid],nextDepth,!0);else walk(field.schema.fields,fieldPath,nextDepth,!0)}},"walk");walk(fields,[],0,!1)}var UNIQUE_FIELD_TYPES,DATETIME_INSTANT_PATTERN,DATETIME_INSTANT_MESSAGE,utf8,MAX_STRUCTURED_CONTENT_DEPTH,MAX_BLOCK_VARIANTS,MAX_BLOCK_ITEMS,RESERVED_STRUCTURED_CONTENT_FIELD_NAMES,showIfClauseSchema,commonFieldShape,FIELD_I18N_UNSUPPORTED_MESSAGE,uniqueFieldTypes,UNSUPPORTED_UNIQUE_MESSAGE,scalarFieldSchema,referenceFieldSchema,reservedStructuredContentNames,ContentFieldDefinitionSchema,blockFieldsSchema,blockVariantSchema,fixedBlocksSchema,blocksSchema,blocksFieldSchema,contentFieldDefinitionSchema,init_content_fields=__esm({"../../packages/api-contracts/dist/esm/types/content-fields.js"(){"use strict";init_common();UNIQUE_FIELD_TYPES=["string","text","number","boolean","date"],DATETIME_INSTANT_PATTERN=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d+)?)?([Zz]|[+-]\d{2}:\d{2})$/,DATETIME_INSTANT_MESSAGE="A datetime must be an ISO 8601 instant with a UTC offset, such as 2026-08-13T09:30:00Z.";__name(isDatetimeInstant,"isDatetimeInstant");utf8=new TextEncoder,MAX_STRUCTURED_CONTENT_DEPTH=7,MAX_BLOCK_VARIANTS=40,MAX_BLOCK_ITEMS=200,RESERVED_STRUCTURED_CONTENT_FIELD_NAMES=["_key","_type"],showIfClauseSchema=z10.union([z10.object({field:z10.string().min(1),equals:z10.union([z10.string(),z10.number(),z10.boolean()])}).strict(),z10.object({field:z10.string().min(1),in:z10.array(z10.union([z10.string(),z10.number(),z10.boolean()])).min(1)}).strict()]),commonFieldShape={label:z10.string().min(1).optional(),description:z10.string().optional(),group:z10.union([z10.string().min(1),z10.array(z10.string().min(1)).min(1)]).optional(),editable:z10.boolean().optional(),required:z10.boolean().optional(),default:z10.unknown().optional(),showIf:z10.union([showIfClauseSchema,z10.array(showIfClauseSchema).min(1)]).optional(),showIfAny:z10.array(showIfClauseSchema).min(1).optional()},FIELD_I18N_UNSUPPORTED_MESSAGE='"i18n" is only supported on top-level scalar and reference fields.';__name(rejectLegacyLocaleSettings,"rejectLegacyLocaleSettings");__name(rejectFieldI18n,"rejectFieldI18n");__name(refineConditions,"refineConditions");uniqueFieldTypes=new Set(UNIQUE_FIELD_TYPES),UNSUPPORTED_UNIQUE_MESSAGE=`"unique" is only supported on ${UNIQUE_FIELD_TYPES.join(", ")} fields.`;__name(rejectUnsupportedUnique,"rejectUnsupportedUnique");scalarFieldSchema=z10.object({...commonFieldShape,type:z10.enum(["string","text","richtext","media","number","boolean","date","datetime","json"]),min:z10.number().optional(),max:z10.number().optional(),minLength:z10.number().int().nonnegative().optional(),maxLength:z10.number().int().nonnegative().optional(),regex:z10.string().optional(),multiple:z10.boolean().optional(),allowedMimeTypes:z10.array(z10.string()).optional(),options:z10.array(z10.string().min(1)).min(1).optional(),unique:z10.boolean().optional(),i18n:z10.boolean().optional()}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),refineConditions(field,ctx),rejectUnsupportedUnique(field,ctx,field.type);for(let key of["target","targets","many","repeatable","schema"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on ${field.type} fields.`});if(field.type!=="number")for(let key of["min","max"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on number fields.`});if(field.type!=="string"&&field.type!=="text")for(let key of["minLength","maxLength","regex"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on string and text fields.`});field.min!==void 0&&field.max!==void 0&&field.min>field.max&&ctx.addIssue({code:"custom",path:["max"],message:'"max" must be greater than or equal to "min".'});let effectiveMinimumLength=Math.max(field.minLength??0,field.required?1:0);if(field.maxLength!==void 0&&effectiveMinimumLength>field.maxLength&&ctx.addIssue({code:"custom",path:["maxLength"],message:'"maxLength" must be greater than or equal to the minimum required length.'}),field.regex!==void 0)try{new RegExp(field.regex)}catch{ctx.addIssue({code:"custom",path:["regex"],message:'"regex" must be a valid regular expression.'})}if(field.type!=="media")for(let key of["multiple","allowedMimeTypes"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on media fields.`});if(field.type==="datetime"&&field.default!==void 0&&!isDatetimeInstant(field.default)&&ctx.addIssue({code:"custom",path:["default"],message:DATETIME_INSTANT_MESSAGE}),field.type!=="string"&&"options"in field&&ctx.addIssue({code:"custom",path:["options"],message:'"options" is only supported on string fields.'}),field.options!==void 0){new Set(field.options).size!==field.options.length&&ctx.addIssue({code:"custom",path:["options"],message:"Options must be unique."});for(let key of["regex","minLength","maxLength"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported alongside "options".`});field.default!==void 0&&!field.options.includes(field.default)&&ctx.addIssue({code:"custom",path:["default"],message:'"default" must be one of the declared options.'})}}),referenceFieldSchema=z10.object({...commonFieldShape,type:z10.literal("reference"),target:z10.string().regex(CONTENT_TYPE_NAME_PATTERN).optional(),targets:z10.array(z10.string().regex(CONTENT_TYPE_NAME_PATTERN)).min(1).optional(),many:z10.boolean().optional(),i18n:z10.boolean().optional()}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),refineConditions(field,ctx),!field.target&&!field.targets&&ctx.addIssue({code:"custom",path:["target"],message:'Reference fields must declare "target" or "targets".'}),field.target&&field.targets&&ctx.addIssue({code:"custom",path:["targets"],message:'A reference field declares "target" or "targets", never both.'}),field.targets&&new Set(field.targets).size!==field.targets.length&&ctx.addIssue({code:"custom",path:["targets"],message:"Reference targets must be unique."});for(let key of["repeatable","schema","min","max","minLength","maxLength","regex","options","unique"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on reference fields.`})}),reservedStructuredContentNames=new Set(RESERVED_STRUCTURED_CONTENT_FIELD_NAMES),ContentFieldDefinitionSchema=z10.lazy(()=>contentFieldDefinitionSchema);__name(getConditionDefinition,"getConditionDefinition");__name(getConditionValues,"getConditionValues");__name(collectClauseProblems,"collectClauseProblems");__name(collectConditionProblems,"collectConditionProblems");blockFieldsSchema=z10.record(z10.string(),ContentFieldDefinitionSchema).superRefine((fields,ctx)=>{for(let fieldName of Object.keys(fields))CONTENT_FIELD_NAME_PATTERN.test(fieldName)||ctx.addIssue({code:"custom",path:[fieldName],message:`Field names must use ${CONTENT_FIELD_NAME_PATTERN_DESCRIPTION}.`}),reservedStructuredContentNames.has(fieldName)&&ctx.addIssue({code:"custom",path:[fieldName],message:`"${fieldName}" is reserved structured-content metadata.`}),"unique"in fields[fieldName]&&ctx.addIssue({code:"custom",path:[fieldName,"unique"],message:'"unique" is only supported on top-level fields.'}),"i18n"in fields[fieldName]&&ctx.addIssue({code:"custom",path:[fieldName,"i18n"],message:FIELD_I18N_UNSUPPORTED_MESSAGE})}),blockVariantSchema=z10.object({uid:z10.string().regex(CONTENT_TYPE_NAME_PATTERN),label:z10.string().min(1),description:z10.string().optional(),fields:blockFieldsSchema}).strict(),fixedBlocksSchema=z10.object({fields:blockFieldsSchema}).strict(),blocksSchema=z10.object({oneOf:z10.array(blockVariantSchema).min(1).max(MAX_BLOCK_VARIANTS)}).strict().superRefine((schema,ctx)=>{let seen=new Set;for(let[index,variant]of schema.oneOf.entries())seen.has(variant.uid)&&ctx.addIssue({code:"custom",path:["oneOf",index,"uid"],message:"Variant UIDs must be unique."}),seen.add(variant.uid)}),blocksFieldSchema=z10.object({...commonFieldShape,type:z10.literal("blocks"),min:z10.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),max:z10.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),schema:z10.union([fixedBlocksSchema,blocksSchema])}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),rejectFieldI18n(field,ctx),refineConditions(field,ctx);let effectiveMinimum=Math.max(field.min??0,field.required?1:0);field.max!==void 0&&effectiveMinimum>field.max&&ctx.addIssue({code:"custom",path:["max"],message:'"max" must be greater than or equal to the minimum number of blocks.'});for(let key of["target","targets","many","repeatable","minLength","maxLength","regex","options","unique"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on blocks fields.`})}),contentFieldDefinitionSchema=z10.discriminatedUnion("type",[scalarFieldSchema,referenceFieldSchema,blocksFieldSchema]);__name(isBlocksUnion,"isBlocksUnion");__name(walkContentFields,"walkContentFields")}});import{z as z11}from"zod";var AUDIT_ACTIONS,AuditActionSchema,AUDIT_OUTCOMES,AuditOutcomeSchema,AUDIT_ACTOR_KINDS,AuditActorKindSchema,init_audit_log=__esm({"../../packages/api-contracts/dist/esm/types/audit-log.js"(){"use strict";AUDIT_ACTIONS=["env_create","env_delete","env_sync","capability_check","shell_exec","git_push","git_tag","git_merge","fimo_deploy","merge_decision","session_start","session_end","cost_breach","trigger_fire","schedule_notification_change","notification_preference_change","cutover_step","agent_delegate","version_restore","project_transfer","project_takedown","project_takedown_lift","organization_takedown","organization_takedown_lift","site_onboarding_refusal_lift","ops_access_change","ops_service_token_change","ops_project_search","ops_project_inspect","ops_project_chat_read","ops_recent_chat_read","ops_sentry_issue_change","ops_sentry_read","ops_logs_read","ops_trace_read","ops_posthog_milestones_read","ops_agent_trace_list","ops_agent_trace_read","ops_agent_trace_stats","ops_agent_health_read","ops_agent_trace_budget_wrap_up_read","ops_context_health_read","ops_data_usage_read","ops_agent_provider_errors_read","ops_chat_history_health_read","ops_chat_history_calls_read","ops_chat_history_content_read","ops_chat_history_judge_calibration","ops_memory_health_read","ops_routine_metrics_read","ops_project_snapshot","ops_project_file_read","ops_project_file_write","ops_support_thread_read","ops_support_report_read","ops_support_intake_read","ops_pylon_queue_read","ops_support_report_change","ops_billing_read","ops_billing_agent_runtime_activate","ops_billing_entitlements_sync","ops_billing_agent_runtime_attach","ops_billing_cache_invalidate","ops_billing_dispatch_discard","ops_billing_legacy_premium_enroll","ops_billing_legacy_premium_comp","ops_organization_feature_set","ops_billing_plan_transition_notices","ops_customer_registry_change","ops_investigation_change","ops_known_issue_change","ops_signal_case_decision","ops_validation_record","ops_notification_preview","ops_notification_approve","ops_notification_send","ops_project_operation","ops_project_publish","ops_agent_branch_discard","admin_resource_read","merge_force","ops_operation_plan","project_sync","project_thumbnail_regenerate","project_delete","project_import","organization_delete","credits_topup","credits_burn","user_session_revoke","user_ban","user_unban","user_impersonate","user_role_change","user_sessions_revoke","user_delete","platform_pool_change","platform_maintenance_change","platform_sync","platform_tenant_schema_sync","integration_event_replay","ops_billing_dispatch_retry","ops_billing_plan_projection_reconcile","ops_agent_chat_create","ops_pylon_issue_change","ops_pylon_note_create","ops_pylon_reply_preview","ops_pylon_reply_approve","ops_pylon_reply_send","admin_playground_run","ops_find","ops_project_health_read","ops_migrations_read","ops_operational_read","ops_billing_report_read","ops_users_read","ops_organizations_read","ops_merges_read","ops_platform_read","ops_watch_read","ops_notification_read","ops_audit_read"],AuditActionSchema=z11.enum(AUDIT_ACTIONS),AUDIT_OUTCOMES=["success","denied","error"],AuditOutcomeSchema=z11.enum(AUDIT_OUTCOMES),AUDIT_ACTOR_KINDS=["user","agent","system"],AuditActorKindSchema=z11.enum(AUDIT_ACTOR_KINDS)}});import{z as z12}from"zod";var ORGANIZATION_FEATURES,AGENT_PLANS,AgentPlanSchema,OrganizationFeatureSchema,OrganizationFeaturesDTOSchema,OrganizationFeaturesDTO,OrganizationFeatureStateDTOSchema,OrganizationFeatureSetSchema,init_organization_features_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/organization-features.dto.js"(){"use strict";init_create_dto();ORGANIZATION_FEATURES=["routine_planner","pro_agents"],AGENT_PLANS=["free","starter","pro"],AgentPlanSchema=z12.enum(AGENT_PLANS),OrganizationFeatureSchema=z12.enum(ORGANIZATION_FEATURES),OrganizationFeaturesDTOSchema=z12.object({features:z12.record(OrganizationFeatureSchema,z12.boolean()),lockedByPlan:z12.array(OrganizationFeatureSchema),agentPlan:AgentPlanSchema}),OrganizationFeaturesDTO=createDTO(OrganizationFeaturesDTOSchema),OrganizationFeatureStateDTOSchema=z12.object({feature:OrganizationFeatureSchema,enabled:z12.boolean(),default:z12.boolean(),lockedByPlan:z12.boolean(),override:z12.boolean().nullable(),reason:z12.string().nullable(),updatedBy:z12.string().nullable(),updatedAt:z12.string().datetime().nullable()}),OrganizationFeatureSetSchema=z12.object({state:z12.enum(["on","off","default"]),reason:z12.string().trim().min(1).max(500),apply:z12.boolean().default(!1),confirmProduction:z12.boolean().default(!1)})}});import{z as z13}from"zod";function refineChatHistoryWindow(schema){return schema.refine(input=>input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>input.until.getTime()-input.since.getTime()<=OPS_CONTEXT_HEALTH_MAX_WINDOW_MS,{path:["since"],message:"chat history windows cannot exceed 7 days"})}var OPS_BACKEND_PROFILES,OpsBackendProfileSchema,OPS_PERMISSIONS,OpsPermissionSchema,OPS_SUPPORT_PRESET,OPS_PERMISSION_PRESETS,OPS_SERVICE_PERMISSION_PRESETS,OpsAccessGrantInputSchema,OpsServiceTokenInputSchema,OpsCustomerProjectInputSchema,OPS_INVESTIGATION_STATUSES,OpsInvestigationStatusSchema,OpsInvestigationCreateInputSchema,OpsInvestigationUpdateInputSchema,OPS_KNOWN_ISSUE_STATUSES,OpsKnownIssueStatusSchema,OpsKnownIssueCreateInputSchema,OpsKnownIssueUpdateInputSchema,OPS_VALIDATION_OUTCOMES,OpsValidationOutcomeSchema,OpsValidationRunInputSchema,OpsNotificationPreviewInputSchema,OpsPylonIssueIdSchema,OpsPylonReasonSchema,OpsPylonMessageSchema,OpsPylonMessageIdSchema,OpsPylonEmailListSchema,OpsPylonResolveInputSchema,OpsPylonNoteInputSchema,OpsPylonReplyPreviewInputSchema,OpsSentryIssueIdSchema,OpsSentryResolveInputSchema,OpsTraceIdSchema,OpsTraceReadInputSchema,OpsBraintrustSpanIdSchema,OpsAgentInvocationStatusSchema,OpsAgentTraceListInputSchema,OpsAgentTraceCostliestInputSchema,OpsAgentTraceSpansInputSchema,OpsSpanBodyEdgeSchema,OpsAgentTraceSpanInputSchema,OpsAgentTraceMessagesInputSchema,OpsAgentHealthGroupBySchema,OpsAgentHealthInputSchema,OPS_DATA_USAGE_MAX_WINDOW_MS,OpsDataUsageGroupBySchema,OpsDataUsageInputSchema,OPS_CONTEXT_HEALTH_MAX_WINDOW_MS,OpsContextHealthInputSchema,OPS_MEMORY_HEALTH_MAX_WINDOW_MS,OpsMemoryHealthInputSchema,opsChatHistoryWindow,OpsChatHistoryHealthInputSchema,OpsChatHistoryCallsInputSchema,OpsChatHistoryJudgeInputSchema,OPS_ROUTINE_METRICS_MAX_WINDOW_MS,OpsRoutineMetricsGroupBySchema,OpsRoutineMetricsSortBySchema,OpsRoutineMetricsInputSchema,OpsChatHistoryJudgeCalibrationInputSchema,OpsAgentTraceStatsGroupBySchema,OpsSpanTypeSchema,OpsAgentTraceStatsInputSchema,OpsAgentProviderErrorsInputSchema,OpsBillingCacheInvalidateInputSchema,OpsBillingEntitlementSyncInputSchema,OpsBillingAgentRuntimeAttachInputSchema,OPS_PROJECT_OPERATIONS,OpsProjectOperationKindSchema,ExactVersionSchema,OpsProjectOperationPlanInputSchema,OPS_MIGRATIONS,OpsMigrationIdSchema,OPS_MIGRATION_PLAN_STATUSES,OpsMigrationPlanStatusSchema,OPS_MIGRATION_CHANGE_ACTIONS,OpsMigrationChangeActionSchema,OpsMigrationDryRunInputSchema,OpsProjectFilePathSchema,OpsProjectFileReasonSchema,OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES,OpsProjectPackageManagerInspectInputSchema,OpsProjectFileReadInputSchema,OpsProjectFileGlobInputSchema,OpsProjectFileGrepInputSchema,OPS_POSTHOG_EVENTS,OPS_POSTHOG_QUESTION,OpsPosthogTimestampSchema,OpsPosthogMilestonesInputSchema,OpsPosthogFailureCodeSchema,OpsPosthogCoverageSchema,OpsPosthogCountsSchema,OpsPosthogMilestonesResponseSchema,OpsSessionHealthInputSchema,OpsProjectAnalyticsHealthInputSchema,init_ops=__esm({"../../packages/api-contracts/dist/esm/types/ops.js"(){"use strict";init_organization_features_dto();init_env();OPS_BACKEND_PROFILES=["local","staging","prod"],OpsBackendProfileSchema=z13.enum(OPS_BACKEND_PROFILES),OPS_PERMISSIONS=["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:project:operate","ops:project:publish","ops:project:agents:write","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:posthog:read","ops:braintrust:read","ops:support:read","ops:support:write","ops:customers:read","ops:customers:write","ops:billing:read","ops:billing:write","ops:organization:features:write","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:known-issues:write","ops:validations:read","ops:validations:write","ops:audit:read","ops:notification:preview","ops:notification:approve","ops:notification:send","ops:users:read","ops:users:write","ops:organizations:read","ops:organizations:write","ops:merges:read","ops:merges:write","ops:platform:read","ops:platform:write","ops:project:admin","ops:credits:write"],OpsPermissionSchema=z13.enum(OPS_PERMISSIONS),OPS_SUPPORT_PRESET=["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:users:read","ops:organizations:read","ops:merges:read","ops:platform:read","ops:billing:read","ops:support:read","ops:support:write","ops:customers:read","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:validations:read","ops:audit:read","ops:notification:preview"],OPS_PERMISSION_PRESETS={support:OPS_SUPPORT_PRESET,engineer:[...OPS_SUPPORT_PRESET,"ops:project:operate","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:braintrust:read","ops:customers:write","ops:billing:write","ops:organization:features:write","ops:known-issues:write","ops:validations:write","ops:merges:write","ops:platform:write","ops:users:write"],full:[...OPS_PERMISSIONS]},OPS_SERVICE_PERMISSION_PRESETS={support:OPS_PERMISSION_PRESETS.support,engineer:OPS_PERMISSION_PRESETS.engineer,full:OPS_PERMISSION_PRESETS.full.filter(permission=>permission!=="ops:notification:approve")},OpsAccessGrantInputSchema=z13.object({permissions:z13.array(OpsPermissionSchema).min(1),backendProfiles:z13.array(OpsBackendProfileSchema).min(1),enabled:z13.boolean().default(!0)}),OpsServiceTokenInputSchema=z13.object({name:z13.string().trim().min(1).max(120),permissions:z13.array(OpsPermissionSchema).min(1),backendProfiles:z13.array(OpsBackendProfileSchema).min(1),expiresAt:z13.coerce.date()}).refine(input=>!input.permissions.includes("ops:notification:approve"),{path:["permissions"],message:"Service credentials cannot approve customer notifications"}).refine(input=>input.expiresAt.getTime()>Date.now(),{path:["expiresAt"],message:"Service credential expiry must be in the future"}),OpsCustomerProjectInputSchema=z13.object({importanceReason:z13.string().trim().min(1).max(1e3),ownerUserId:z13.string().trim().min(1).nullable().optional(),framework:z13.string().trim().max(120).nullable().optional(),packageManager:z13.enum(["npm","pnpm","yarn","bun"]).nullable().optional(),notes:z13.string().trim().max(5e3).nullable().optional()}),OPS_INVESTIGATION_STATUSES=["open","investigating","awaiting_approval","resolved","monitoring","closed"],OpsInvestigationStatusSchema=z13.enum(OPS_INVESTIGATION_STATUSES),OpsInvestigationCreateInputSchema=z13.object({projectId:z13.uuid(),title:z13.string().trim().min(1).max(240),userReport:z13.string().trim().max(1e4).nullable().optional()}),OpsInvestigationUpdateInputSchema=z13.object({status:OpsInvestigationStatusSchema.optional(),hypothesis:z13.string().trim().max(1e4).nullable().optional(),outcome:z13.string().trim().max(1e4).nullable().optional(),evidence:z13.array(z13.record(z13.string(),z13.unknown())).max(100).optional()}).refine(input=>Object.keys(input).length>0,"At least one field is required"),OPS_KNOWN_ISSUE_STATUSES=["open","monitoring","resolved"],OpsKnownIssueStatusSchema=z13.enum(OPS_KNOWN_ISSUE_STATUSES),OpsKnownIssueCreateInputSchema=z13.object({fingerprint:z13.string().trim().min(1).max(240),title:z13.string().trim().min(1).max(240),description:z13.string().trim().min(1).max(1e4),affectedVersions:z13.array(z13.string().trim().min(1).max(120)).max(100).default([]),detectionQueries:z13.array(z13.string().trim().min(1).max(2e3)).max(50).default([]),fixedVersion:z13.string().trim().min(1).max(64).nullable().optional(),workaround:z13.string().trim().min(1).max(1e4).nullable().optional(),status:OpsKnownIssueStatusSchema.default("open")}),OpsKnownIssueUpdateInputSchema=OpsKnownIssueCreateInputSchema.omit({fingerprint:!0}).extend({affectedVersions:z13.array(z13.string().trim().min(1).max(120)).max(100),detectionQueries:z13.array(z13.string().trim().min(1).max(2e3)).max(50),status:OpsKnownIssueStatusSchema}).partial().refine(input=>Object.keys(input).length>0,"At least one field is required"),OPS_VALIDATION_OUTCOMES=["passed","failed","inconclusive"],OpsValidationOutcomeSchema=z13.enum(OPS_VALIDATION_OUTCOMES),OpsValidationRunInputSchema=z13.object({changeReference:z13.string().trim().min(1).max(500),outcome:OpsValidationOutcomeSchema,summary:z13.string().trim().min(1).max(1e4),evidence:z13.array(z13.record(z13.string(),z13.unknown())).max(100).default([])}),OpsNotificationPreviewInputSchema=z13.object({recipientEmail:z13.email().optional(),subject:z13.string().trim().min(1).max(200).default("An update from Fimo"),message:z13.string().trim().min(1).max(5e3),locale:z13.string().trim().min(2).max(20),reason:z13.string().trim().min(1).max(1e3),acknowledgePolicy:z13.literal(!0)}),OpsPylonIssueIdSchema=z13.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsPylonReasonSchema=z13.string().trim().min(1).max(1e3),OpsPylonMessageSchema=z13.string().trim().min(1).max(5e3),OpsPylonMessageIdSchema=z13.string().trim().min(1).max(255),OpsPylonEmailListSchema=z13.array(z13.email()).max(50).default([]),OpsPylonResolveInputSchema=z13.object({reason:OpsPylonReasonSchema}),OpsPylonNoteInputSchema=z13.object({message:OpsPylonMessageSchema,reason:OpsPylonReasonSchema}),OpsPylonReplyPreviewInputSchema=z13.object({messageId:OpsPylonMessageIdSchema,message:OpsPylonMessageSchema,toEmails:OpsPylonEmailListSchema,ccEmails:OpsPylonEmailListSchema,bccEmails:OpsPylonEmailListSchema,reason:OpsPylonReasonSchema,acknowledgePolicy:z13.literal(!0)}).refine(input=>input.toEmails.length+input.ccEmails.length+input.bccEmails.length<=50,{message:"At most 50 email recipients are allowed",path:["toEmails"]}),OpsSentryIssueIdSchema=z13.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsSentryResolveInputSchema=z13.object({reason:z13.string().trim().min(1).max(1e3)}),OpsTraceIdSchema=z13.string().trim().regex(/^[a-fA-F0-9]{32}$/).transform(value=>value.toLowerCase()),OpsTraceReadInputSchema=z13.object({projectId:z13.uuid(),from:z13.coerce.date(),to:z13.coerce.date(),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>input.from<=input.to,{path:["from"],message:"from must be before or equal to to"}).refine(input=>input.to.getTime()-input.from.getTime()<=10080*60*1e3,{path:["from"],message:"trace windows cannot exceed 7 days"}),OpsBraintrustSpanIdSchema=z13.string().trim().regex(/^[A-Za-z0-9_-]{1,200}$/),OpsAgentInvocationStatusSchema=z13.enum(["planned","running","finished","cancelled","errored","refused"]),OpsAgentTraceListInputSchema=z13.object({projectId:z13.uuid().optional(),organizationId:z13.string().trim().min(1).max(255).optional(),agentKey:z13.string().trim().min(1).max(120).optional(),threadId:z13.uuid().optional(),status:OpsAgentInvocationStatusSchema.optional(),since:z13.coerce.date().optional(),minCostUsd:z13.coerce.number().min(0).optional(),tracedOnly:z13.coerce.boolean().default(!1),limit:z13.coerce.number().int().min(1).max(100).default(25),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!!(input.projectId||input.organizationId||input.threadId),{path:["projectId"],message:"one of projectId, organizationId, or threadId is required"}),OpsAgentTraceCostliestInputSchema=z13.object({since:z13.coerce.date(),until:z13.coerce.date(),limit:z13.coerce.number().int().min(1).max(50).default(25),reason:z13.string().trim().min(1).max(1e3)}).superRefine((input,ctx)=>{input.until<input.since&&ctx.addIssue({code:"custom",path:["until"],message:"until must be at or after since"}),input.until.getTime()-input.since.getTime()>744*60*60*1e3&&ctx.addIssue({code:"custom",path:["since"],message:"window must not exceed 31 days"})}),OpsAgentTraceSpansInputSchema=z13.object({limit:z13.coerce.number().int().min(1).max(500).default(200),reason:z13.string().trim().min(1).max(1e3)}),OpsSpanBodyEdgeSchema=z13.enum(["start","end"]).default("start"),OpsAgentTraceSpanInputSchema=z13.object({maxChars:z13.coerce.number().int().min(500).max(2e5).default(2e4),edge:OpsSpanBodyEdgeSchema,reason:z13.string().trim().min(1).max(1e3)}),OpsAgentTraceMessagesInputSchema=z13.object({messageIndex:z13.coerce.number().int().min(0).optional(),maxChars:z13.coerce.number().int().min(500).max(2e5).default(2e4),reason:z13.string().trim().min(1).max(1e3)}),OpsAgentHealthGroupBySchema=z13.enum(["agent","status","branch","project","day"]),OpsAgentHealthInputSchema=z13.strictObject({projectId:z13.uuid().optional(),organizationId:z13.string().trim().min(1).max(255).optional(),branch:BranchSchema.optional(),agentKey:z13.string().trim().min(1).max(120).optional(),since:z13.coerce.date(),until:z13.coerce.date().optional(),groupBy:OpsAgentHealthGroupBySchema.default("agent"),includeChildren:z13.coerce.boolean().default(!1),limit:z13.coerce.number().int().min(1).max(200).default(50),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OPS_DATA_USAGE_MAX_WINDOW_MS=10080*60*1e3,OpsDataUsageGroupBySchema=z13.enum(["operation","provider","day","organization","agent"]),OpsDataUsageInputSchema=z13.strictObject({organizationId:z13.string().trim().min(1).max(255).optional(),since:z13.coerce.date(),until:z13.coerce.date().optional(),groupBy:OpsDataUsageGroupBySchema.default("operation"),limit:z13.coerce.number().int().min(1).max(200).default(50),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>(input.until??new Date).getTime()-input.since.getTime()<=OPS_DATA_USAGE_MAX_WINDOW_MS,{path:["since"],message:"data usage window cannot exceed 7 days"}),OPS_CONTEXT_HEALTH_MAX_WINDOW_MS=10080*60*1e3,OpsContextHealthInputSchema=z13.object({projectId:z13.uuid().optional(),since:z13.coerce.date(),until:z13.coerce.date().optional(),limit:z13.coerce.number().int().min(1).max(1e3).default(500),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>(input.until??new Date).getTime()-input.since.getTime()<=OPS_CONTEXT_HEALTH_MAX_WINDOW_MS,{path:["since"],message:"context health window cannot exceed 7 days"}),OPS_MEMORY_HEALTH_MAX_WINDOW_MS=10080*60*1e3,OpsMemoryHealthInputSchema=z13.object({projectId:z13.uuid().optional(),since:z13.coerce.date(),until:z13.coerce.date().optional(),limit:z13.coerce.number().int().min(1).max(1e3).default(200),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>(input.until??new Date).getTime()-input.since.getTime()<=OPS_MEMORY_HEALTH_MAX_WINDOW_MS,{path:["since"],message:"memory health window cannot exceed 7 days"}),opsChatHistoryWindow={projectId:z13.uuid().optional(),since:z13.coerce.date(),until:z13.coerce.date().default(()=>new Date),reason:z13.string().trim().min(1).max(1e3)};__name(refineChatHistoryWindow,"refineChatHistoryWindow");OpsChatHistoryHealthInputSchema=refineChatHistoryWindow(z13.strictObject(opsChatHistoryWindow)),OpsChatHistoryCallsInputSchema=refineChatHistoryWindow(z13.strictObject({...opsChatHistoryWindow,limit:z13.coerce.number().int().min(1).max(500).default(100)})),OpsChatHistoryJudgeInputSchema=refineChatHistoryWindow(z13.strictObject({...opsChatHistoryWindow,sample:z13.coerce.number().int().min(1).max(25).default(10)})),OPS_ROUTINE_METRICS_MAX_WINDOW_MS=2160*60*60*1e3,OpsRoutineMetricsGroupBySchema=z13.enum(["routine","plan","day","project"]),OpsRoutineMetricsSortBySchema=z13.enum(["total","jev","runs"]),OpsRoutineMetricsInputSchema=z13.strictObject({projectId:z13.uuid().optional(),organizationId:z13.string().trim().min(1).max(255).optional(),plan:AgentPlanSchema.optional(),routine:z13.string().trim().min(1).max(64).optional(),groupBy:OpsRoutineMetricsGroupBySchema.default("routine"),sortBy:OpsRoutineMetricsSortBySchema.default("total"),burstMinutes:z13.coerce.number().int().min(1).max(120).default(10),since:z13.coerce.date(),until:z13.coerce.date().default(()=>new Date),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>input.until.getTime()-input.since.getTime()<=OPS_ROUTINE_METRICS_MAX_WINDOW_MS,{path:["since"],message:"routine metrics windows cannot exceed 90 days"}),OpsChatHistoryJudgeCalibrationInputSchema=z13.strictObject({reason:z13.string().trim().min(1).max(1e3)}),OpsAgentTraceStatsGroupBySchema=z13.enum(["model","provider","span","type"]),OpsSpanTypeSchema=z13.enum(["llm","tool","function","task","score","eval"]),OpsAgentTraceStatsInputSchema=z13.object({since:z13.coerce.date(),until:z13.coerce.date().optional(),groupBy:OpsAgentTraceStatsGroupBySchema.default("model"),spanType:OpsSpanTypeSchema.optional(),slowerThanSeconds:z13.coerce.number().min(0).optional(),limit:z13.coerce.number().int().min(1).max(200).default(50),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OpsAgentProviderErrorsInputSchema=z13.object({since:z13.coerce.date(),until:z13.coerce.date().default(()=>new Date),model:z13.string().trim().min(1).max(120).optional(),provider:z13.string().trim().min(1).max(120).optional(),spanType:OpsSpanTypeSchema.optional(),before:z13.coerce.date().optional(),limit:z13.coerce.number().int().min(1).max(1e3).default(500),sampleChars:z13.coerce.number().int().min(200).max(2e4).default(1200),correlateInvocations:z13.boolean().default(!1),correlationLimit:z13.coerce.number().int().min(1).max(100).default(25),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>input.until.getTime()-input.since.getTime()<=10080*60*1e3,{path:["since"],message:"provider error windows cannot exceed 7 days"}).refine(input=>!input.before||input.before>=input.since&&input.before<=input.until,{path:["before"],message:"before must be within the requested window"}),OpsBillingCacheInvalidateInputSchema=z13.object({reason:z13.string().trim().min(1).max(1e3)}),OpsBillingEntitlementSyncInputSchema=z13.object({reason:z13.string().trim().min(1).max(500),apply:z13.boolean().default(!1),confirmProduction:z13.boolean().default(!1),cursor:z13.string().min(1).optional(),batchSize:z13.number().int().min(1).max(100).default(50),concurrency:z13.number().int().min(1).max(10).default(2)}),OpsBillingAgentRuntimeAttachInputSchema=z13.object({reason:z13.string().trim().min(1).max(500),apply:z13.boolean().default(!1),confirmProduction:z13.boolean().default(!1),organizationIds:z13.array(z13.string().min(1)).min(1).max(100).optional(),cursor:z13.string().min(1).optional(),batchSize:z13.number().int().min(1).max(100).default(50)}),OPS_PROJECT_OPERATIONS=["runtime.bump","preview.restart","production.publish"],OpsProjectOperationKindSchema=z13.enum(OPS_PROJECT_OPERATIONS),ExactVersionSchema=z13.string().trim().regex(/^\d+\.\d+\.\d+$/,"Expected an exact version such as 0.11.0"),OpsProjectOperationPlanInputSchema=z13.discriminatedUnion("kind",[z13.object({kind:z13.literal("runtime.bump"),targetVersion:ExactVersionSchema}),z13.object({kind:z13.literal("preview.restart")})]),OPS_MIGRATIONS=["project.v3-to-v4"],OpsMigrationIdSchema=z13.enum(OPS_MIGRATIONS),OPS_MIGRATION_PLAN_STATUSES=["applicable","not_applicable","unknown"],OpsMigrationPlanStatusSchema=z13.enum(OPS_MIGRATION_PLAN_STATUSES),OPS_MIGRATION_CHANGE_ACTIONS=["create","rewrite","delete"],OpsMigrationChangeActionSchema=z13.enum(OPS_MIGRATION_CHANGE_ACTIONS),OpsMigrationDryRunInputSchema=z13.object({migrationId:OpsMigrationIdSchema,projectEnv:z13.string().trim().min(1).max(255).default("main"),reason:z13.string().trim().min(1).max(1e3)}),OpsProjectFilePathSchema=z13.string().trim().min(1).max(1024),OpsProjectFileReasonSchema=z13.string().trim().min(1).max(1e3),OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES=["pnpm-lock.yaml","bun.lockb","bun.lock","yarn.lock","package-lock.json"],OpsProjectPackageManagerInspectInputSchema=z13.object({reason:OpsProjectFileReasonSchema}),OpsProjectFileReadInputSchema=z13.object({path:OpsProjectFilePathSchema,reason:OpsProjectFileReasonSchema}),OpsProjectFileGlobInputSchema=z13.object({pattern:z13.string().min(1).max(300).optional(),limit:z13.coerce.number().int().min(1).max(2e3).default(2e3),reason:OpsProjectFileReasonSchema}),OpsProjectFileGrepInputSchema=z13.object({pattern:z13.string().min(1).max(200),include:z13.string().min(1).max(300).optional(),caseInsensitive:z13.boolean().default(!1),maxMatches:z13.coerce.number().int().min(1).max(200).default(100),reason:OpsProjectFileReasonSchema}),OPS_POSTHOG_EVENTS=["didCreateProject","didInitiateProject","didDeploy","didDeployProject","didFirstPublish"],OPS_POSTHOG_QUESTION="project-milestone-counts-v1",OpsPosthogTimestampSchema=z13.iso.datetime({offset:!0}).refine(value=>Number.isFinite(Date.parse(value))&&!/\.\d{3}\d*[1-9]\d*(?:Z|[+-]\d{2}:\d{2})$/.test(value),"A finite timestamp with at most millisecond precision is required").transform(value=>new Date(value).toISOString()),OpsPosthogMilestonesInputSchema=z13.strictObject({projectId:z13.uuid().transform(value=>value.toLowerCase()),from:OpsPosthogTimestampSchema,to:OpsPosthogTimestampSchema,reason:z13.string().trim().min(1).max(1e3)}).refine(value=>{let duration=Date.parse(value.to)-Date.parse(value.from);return duration>0&&duration<=1440*60*1e3},{message:"Window must satisfy from < to and be at most 24 hours",path:["to"]}),OpsPosthogFailureCodeSchema=z13.enum(["not_configured","unauthenticated","forbidden","backend_mismatch","invalid_request","provider_auth_failed","provider_project_unavailable","rate_limited","timeout","provider_error","capability_unavailable","invalid_response","incomplete","pending","audit_unavailable"]),OpsPosthogCoverageSchema=z13.strictObject({completeAggregate:z13.boolean(),truncated:z13.boolean().nullable(),sampled:z13.boolean().nullable(),pagination:z13.enum(["not_applicable","unexpected","unknown"]),providerFreshnessKnown:z13.literal(!1),providerAsOf:z13.null(),projectFilter:z13.literal("exact properties.projectId equality"),environmentFilterSupported:z13.literal(!1),excludesMissingProjectId:z13.literal(!0),transport:z13.literal("server"),consentCoverage:z13.literal("server-policy-not-browser-consent"),operationDedupeAvailable:z13.literal(!1)}),OpsPosthogCountsSchema=z13.array(z13.strictObject({event:z13.enum(OPS_POSTHOG_EVENTS),captureCount:z13.number().int().min(0).max(Number.MAX_SAFE_INTEGER)})).length(5).refine(counts=>counts.every((entry,i)=>entry.event===OPS_POSTHOG_EVENTS[i])),OpsPosthogMilestonesResponseSchema=z13.strictObject({schemaVersion:z13.literal(1),questionId:z13.literal(OPS_POSTHOG_QUESTION),backendProfile:OpsBackendProfileSchema,projectId:z13.uuid().nullable(),projectEnvironment:z13.literal("mixed_or_unrecorded"),window:z13.strictObject({from:z13.iso.datetime(),to:z13.iso.datetime(),bounds:z13.literal("[from,to)")}).nullable(),source:z13.literal("posthog"),sourceStatus:z13.enum(["available","unavailable","forbidden"]),failureCode:OpsPosthogFailureCodeSchema.nullable(),queriedAt:z13.iso.datetime(),auditId:z13.uuid().nullable(),counts:OpsPosthogCountsSchema.nullable(),coverage:OpsPosthogCoverageSchema}).superRefine((value,ctx)=>{(value.sourceStatus==="available"?value.counts===null||value.failureCode!==null||value.auditId===null||value.projectId===null||value.window===null||!value.coverage.completeAggregate||value.coverage.sampled!==!1||value.coverage.truncated!==!1||value.coverage.pagination!=="not_applicable":value.counts!==null||value.failureCode===null||value.coverage.completeAggregate)&&ctx.addIssue({code:"custom",message:"Invalid aggregate availability"})}),OpsSessionHealthInputSchema=z13.object({reason:z13.string().trim().min(1).max(1e3),limit:z13.number().int().min(1).max(100).default(25),checkProvider:z13.boolean().default(!1)}),OpsProjectAnalyticsHealthInputSchema=z13.object({branch:z13.string().trim().min(1).max(255),canaryPath:z13.string().max(300).regex(/^\/[a-zA-Z0-9/_-]*\?fimo_monitor=[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/).optional(),since:z13.iso.datetime({offset:!0}),until:z13.iso.datetime({offset:!0}),reason:z13.string().trim().min(1).max(1e3)}).strict().refine(input=>Date.parse(input.since)<=Date.parse(input.until),{path:["since"],message:"since must be before or equal to until"}).refine(input=>Date.parse(input.until)-Date.parse(input.since)<=10080*60*1e3,{path:["since"],message:"analytics health window cannot exceed 7 days"}).refine(input=>Date.parse(input.until)<=Date.now(),{path:["until"],message:"until cannot be in the future"}).transform(({since,until,...input})=>({...input,since:new Date(since),until:new Date(until)}))}});import{z as z14}from"zod";function resolveOpsTime(value,now=new Date){let relative3=RELATIVE_WINDOW.exec(value.trim());if(relative3){let amount=Number(relative3[1]),unit=relative3[2];return new Date(now.getTime()-amount*UNIT_MS[unit]).toISOString()}return new Date(value).toISOString()}function opsHoursSince(value,now=new Date){let start=Date.parse(resolveOpsTime(value,now));return Math.max(1,Math.ceil((now.getTime()-start)/UNIT_MS.h))}var RELATIVE_WINDOW,time,opsArgs,OPS_STANDARD_ARG_KEYS,UNIT_MS,init_args=__esm({"../../packages/api-contracts/dist/esm/ops/args.js"(){"use strict";RELATIVE_WINDOW=/^(\d+)(m|h|d|w)$/,time=z14.string().trim().min(1).max(64).refine(value=>RELATIVE_WINDOW.test(value)||!Number.isNaN(Date.parse(value)),{message:"Expected an ISO timestamp or a relative window such as 30m, 24h, 7d or 2w"}),opsArgs={project:z14.uuid().describe("Fimo project id"),org:z14.string().trim().min(1).max(255).describe("Organization id"),user:z14.string().trim().min(1).max(255).describe("User id"),env:z14.string().trim().min(1).max(255).describe("Project environment (branch), e.g. main or prod"),since:time.describe("Start of the window: ISO timestamp or relative (30m, 24h, 7d, 2w)"),until:time.describe("End of the window: ISO timestamp or relative (defaults to now)"),limit:z14.coerce.number().int().min(1).max(1e3).describe("Maximum results"),cursor:z14.string().trim().min(1).max(2e3).describe("Continue from a previous page"),query:z14.string().trim().min(1).max(200).describe("Free-text search"),reason:z14.string().trim().min(1).max(1e3).describe("Why this is being read or changed; stored in the audit log"),output:z14.string().trim().min(1).max(4096).describe("Write the result to this local file")},OPS_STANDARD_ARG_KEYS=Object.keys(opsArgs),UNIT_MS={m:6e4,h:36e5,d:864e5,w:6048e5};__name(resolveOpsTime,"resolveOpsTime");__name(opsHoursSince,"opsHoursSince")}});import{z as z15}from"zod";var OPS_RECENT_CHAT_MAX_WINDOW_MS,OpsChatTimestampInputSchema,OpsRecentChatInputSchema,OpsRecentChatMessageSchema,OpsRecentChatResponseSchema,OpsRecentChatResponseDTO,init_ops_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-chat.dto.js"(){"use strict";init_ops();init_create_dto();OPS_RECENT_CHAT_MAX_WINDOW_MS=10080*60*1e3,OpsChatTimestampInputSchema=z15.iso.datetime({offset:!0}).pipe(z15.coerce.date()),OpsRecentChatInputSchema=z15.object({from:OpsChatTimestampInputSchema,to:OpsChatTimestampInputSchema.optional(),projectEnv:z15.string().trim().min(1).max(255).optional(),limit:z15.coerce.number().int().min(1).max(200).default(100),cursor:z15.string().trim().min(1).max(2e3).optional(),slim:z15.boolean().default(!0),reason:z15.string().trim().min(1).max(1e3)}).refine(input=>input.from<=(input.to??new Date),{message:"from must be before or equal to to",path:["from"]}).refine(input=>(input.to??new Date).getTime()-input.from.getTime()<=OPS_RECENT_CHAT_MAX_WINDOW_MS,{message:"recent chat window cannot exceed 7 days",path:["from"]}).refine(input=>!input.cursor||!!input.to,{message:"to is required when continuing with a cursor",path:["to"]}),OpsRecentChatMessageSchema=z15.object({id:z15.string(),threadId:z15.string(),providerMessageId:z15.string().nullable(),invocationId:z15.string().nullable(),env:z15.string().nullable(),role:z15.string(),parts:z15.array(z15.record(z15.string(),z15.unknown())),metadata:z15.object({status:z15.string().optional(),traceUrl:z15.string().optional(),externalFileChanges:z15.array(z15.unknown()).optional()}),stats:z15.object({toolCount:z15.number().int().nonnegative(),failedToolCount:z15.number().int().nonnegative()}),createdAt:z15.iso.datetime({offset:!0}),project:z15.object({id:z15.string(),name:z15.string(),displayName:z15.string().nullable(),organizationId:z15.string().nullable()})}),OpsRecentChatResponseSchema=z15.object({target:z15.object({backendProfile:OpsBackendProfileSchema,projectEnv:z15.string().nullable()}),window:z15.object({from:z15.iso.datetime({offset:!0}),to:z15.iso.datetime({offset:!0})}),messages:z15.object({items:z15.array(OpsRecentChatMessageSchema),nextCursor:z15.string().nullable()})}),OpsRecentChatResponseDTO=createDTO(OpsRecentChatResponseSchema)}});var init_types=__esm({"../../packages/api-contracts/dist/esm/ops/types.js"(){"use strict"}});function compact(value){return Object.fromEntries(Object.entries(value).filter(([,entry])=>entry!==void 0))}function time2(value){return value===void 0?void 0:resolveOpsTime(value)}function seg(value){return encodeURIComponent(value)}var init_shared=__esm({"../../packages/api-contracts/dist/esm/ops/commands/shared.js"(){"use strict";init_args();__name(compact,"compact");__name(time2,"time");__name(seg,"seg")}});import{z as z16}from"zod";var invocation,span,OpsChatViewSchema,OpsChatViewsInputSchema,viewIds,ending,toolCallRow,appCallRow,turnRow,turnSlice,viewEnvelope,OpsChatViewsResponseDTO,agentCommands,init_agent=__esm({"../../packages/api-contracts/dist/esm/ops/commands/agent.js"(){"use strict";init_ops_chat_dto();init_ops();init_create_dto();init_args();init_types();init_shared();invocation=z16.string().trim().min(1).max(255).describe("Agent invocation (run) id"),span=z16.string().trim().min(1).max(255).describe("Braintrust span id"),OpsChatViewSchema=z16.enum(["tool-calls","app-calls","turns","slices"]),OpsChatViewsInputSchema=OpsRecentChatInputSchema.safeExtend({view:OpsChatViewSchema}),viewIds=z16.object({threadId:z16.string(),invocationId:z16.string().nullable(),projectId:z16.string(),messageId:z16.string()}),ending={terminal:z16.string(),terminalReason:z16.string().nullable()},toolCallRow=viewIds.extend({tool:z16.string(),subcommand:z16.string().nullable(),state:z16.string().nullable(),failed:z16.boolean(),errorSignature:z16.string().nullable(),position:z16.number().int().nonnegative(),recoveredNext:z16.boolean().nullable()}),appCallRow=viewIds.extend({routineId:z16.string().nullable(),via:z16.string(),integrationId:z16.string().nullable(),appTool:z16.string().nullable(),withApproval:z16.boolean(),outcome:z16.enum(["ok","failed","approval_required","blocked","pending"]),errorSignature:z16.string().nullable(),position:z16.number().int().nonnegative()}),turnRow=viewIds.extend({...ending,userMessageId:z16.string().nullable(),failureCategory:z16.enum(["expected_billing_stop","expected_model_refusal","expected_cancellation","workspace_failure","provider_model_failure","unknown_failure"]).nullable(),changes:z16.string().nullable(),mergeState:z16.string().nullable(),validation:z16.string().nullable(),publication:z16.string().nullable(),stepCount:z16.number().int().nonnegative(),toolCount:z16.number().int().nonnegative(),failedToolCount:z16.number().int().nonnegative(),hasTextReply:z16.boolean(),fimoAuthored:z16.boolean().nullable()}),turnSlice=viewIds.extend({...ending,previousUserAsk:z16.string().max(300),previousAgentWords:z16.string().max(500),userMessage:z16.string().max(1500),agentReply:z16.string().max(1305),failedToolCalls:z16.array(z16.object({tool:z16.string(),errorSignature:z16.string()})).max(6)}),viewEnvelope=z16.object({target:z16.object({backendProfile:OpsBackendProfileSchema,projectEnv:z16.string().nullable()}),window:z16.object({from:z16.iso.datetime({offset:!0}),to:z16.iso.datetime({offset:!0})})}),OpsChatViewsResponseDTO=createDTO(z16.discriminatedUnion("view",[viewEnvelope.extend({view:z16.literal("tool-calls"),messages:z16.object({items:z16.array(toolCallRow),nextCursor:z16.string().nullable()})}),viewEnvelope.extend({view:z16.literal("app-calls"),messages:z16.object({items:z16.array(appCallRow),nextCursor:z16.string().nullable()})}),viewEnvelope.extend({view:z16.literal("turns"),messages:z16.object({items:z16.array(turnRow),nextCursor:z16.string().nullable()})}),viewEnvelope.extend({view:z16.literal("slices"),messages:z16.object({items:z16.array(turnSlice),nextCursor:z16.string().nullable()})})])),agentCommands=[{id:"agent.chats.views",summary:"Read tool calls, app calls, turn outcomes or customer-text slices from a bounded chat window",permission:"ops:project:chat:read",effect:"read",input:z16.object({view:OpsChatViewSchema,since:opsArgs.since,until:opsArgs.until.optional(),env:opsArgs.env.optional(),limit:opsArgs.limit.max(200).default(100).describe("Source messages per page; each may produce several view rows"),cursor:opsArgs.cursor.optional(),reason:opsArgs.reason,output:opsArgs.output.optional().describe("Private JSON file; required for slices")}),request:__name(input=>({method:"POST",path:"/chat/messages/views",body:compact({view:input.view,from:time2(input.since),to:time2(input.until)??new Date().toISOString(),projectEnv:input.env,limit:input.limit,cursor:input.cursor,reason:input.reason})}),"request")},{id:"agent.chats.recent",summary:"Read recent chat messages across every project in a time window",permission:"ops:project:chat:read",effect:"read",input:z16.object({since:opsArgs.since,until:opsArgs.until.optional(),env:opsArgs.env.optional().describe("Only messages from this environment"),limit:opsArgs.limit.max(200).default(100),cursor:opsArgs.cursor.optional(),full:z16.boolean().default(!1).describe("Include complete message parts instead of the slim transcript"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/chat/messages/recent",body:compact({from:time2(input.since),to:time2(input.until)??new Date().toISOString(),projectEnv:input.env,limit:input.limit,cursor:input.cursor,slim:!input.full,reason:input.reason})}),"request")},{id:"agent.chats.create",summary:"Create an agent chat with routines in a customer project, as the organization owner. Validate the spec and confirm intent first: routines run and spend credits",permission:"ops:project:agents:write",effect:"write",risk:"low",input:z16.object({project:opsArgs.project,spec:z16.record(z16.string(),z16.unknown()).describe("JSON spec: { agent: { name, description } | { template }, routines: [...] }")}),cli:{fileArgs:["spec"]}},{id:"agent.traces.list",summary:"List agent runs for a project, organization or thread, with cost and status",permission:"ops:project:read",effect:"read",input:z16.object({project:opsArgs.project.optional(),org:opsArgs.org.optional(),thread:z16.uuid().optional().describe("Chat thread id"),agent:z16.string().trim().min(1).max(120).optional().describe("Agent key, e.g. chat.project"),status:OpsAgentInvocationStatusSchema.optional(),since:opsArgs.since.optional(),minCost:z16.coerce.number().min(0).optional().describe("Only runs costing at least this many USD"),tracedOnly:z16.boolean().default(!1).describe("Only runs that recorded a Braintrust root span"),limit:opsArgs.limit.max(100).default(25),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-traces/list",body:compact({projectId:input.project,organizationId:input.org,threadId:input.thread,agentKey:input.agent,status:input.status,since:time2(input.since),minCostUsd:input.minCost,tracedOnly:input.tracedOnly,limit:input.limit,reason:input.reason})}),"request")},{id:"agent.traces.costliest",summary:"Rank agent runs across projects by recorded cost, without content (maximum 31 days and 50 runs)",permission:"ops:project:read",effect:"read",input:z16.object({since:opsArgs.since,until:opsArgs.until.describe("Inclusive window end: ISO timestamp or relative (required)"),limit:opsArgs.limit.max(50).default(25),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-traces/costliest",body:{since:time2(input.since),until:time2(input.until),limit:input.limit,reason:input.reason}}),"request")},{id:"agent.traces.budget",summary:"List chats whose runs crossed the context budget and had to wrap up (content-free)",permission:"ops:braintrust:read",effect:"read",input:z16.object({since:opsArgs.since,until:opsArgs.until.optional(),limit:opsArgs.limit.max(25).default(25),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-traces/budget-wrap-up",body:compact({since:time2(input.since),until:time2(input.until),limit:input.limit,reason:input.reason})}),"request")},{id:"agent.traces.spans",summary:"List the spans of one agent run",permission:"ops:braintrust:read",effect:"read",input:z16.object({invocation,limit:opsArgs.limit.max(500).default(200),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/agent-traces/${seg(input.invocation)}/spans`,body:{limit:input.limit,reason:input.reason}}),"request")},{id:"agent.traces.span",summary:"Read one span body (input and output) of an agent run",permission:"ops:braintrust:read",effect:"read",input:z16.object({invocation,span,maxChars:z16.coerce.number().int().min(500).max(2e5).default(2e4).describe("Per-field character bound"),tail:z16.boolean().default(!1).describe("Return the end of an over-long body instead of the start"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/agent-traces/${seg(input.invocation)}/spans/${seg(input.span)}`,body:{maxChars:input.maxChars,edge:input.tail?"end":"start",reason:input.reason}}),"request")},{id:"agent.traces.messages",summary:"Read the conversation the model saw in one LLM span",permission:"ops:braintrust:read",effect:"read",input:z16.object({invocation,span,message:z16.coerce.number().int().min(0).optional().describe("Return this one message instead of the index"),maxChars:z16.coerce.number().int().min(500).max(2e5).default(2e4),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/agent-traces/${seg(input.invocation)}/spans/${seg(input.span)}/messages`,body:compact({messageIndex:input.message,maxChars:input.maxChars,reason:input.reason})}),"request")},{id:"agent.traces.stats",summary:"Aggregate agent step latency, tokens and cost by model, provider, span or type",permission:"ops:braintrust:read",effect:"read",input:z16.object({since:opsArgs.since,until:opsArgs.until.optional(),groupBy:OpsAgentTraceStatsGroupBySchema.default("model"),spanType:OpsSpanTypeSchema.optional(),slowerThan:z16.coerce.number().positive().optional().describe("Only steps at least this many seconds slow"),limit:opsArgs.limit.max(200).default(50),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-traces/stats",body:compact({since:time2(input.since),until:time2(input.until),groupBy:input.groupBy,spanType:input.spanType,slowerThanSeconds:input.slowerThan,limit:input.limit,reason:input.reason})}),"request")}]}});import{z as z17}from"zod";var assistantCommands,init_assistant=__esm({"../../packages/api-contracts/dist/esm/ops/commands/assistant.js"(){"use strict";init_args();init_types();init_shared();assistantCommands=[{id:"assistant.threads.list",summary:"List your admin assistant threads, newest activity first",permission:"ops:platform:read",effect:"read",input:z17.object({query:opsArgs.query.optional().describe("Match the thread title"),limit:z17.coerce.number().int().min(1).max(100).optional().describe("Maximum results"),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/assistant/threads",query:{q:input.query,limit:input.limit,cursor:input.cursor}}),"request")},{id:"assistant.threads.get",summary:"Read one admin assistant thread with every message",permission:"ops:platform:read",effect:"read",input:z17.object({thread:z17.uuid().describe("Admin assistant thread id")}),request:__name(input=>({method:"GET",path:`/assistant/threads/${seg(input.thread)}`}),"request")}]}});import{z as z18}from"zod";var day,billingCommands,init_billing=__esm({"../../packages/api-contracts/dist/esm/ops/commands/billing.js"(){"use strict";init_args();init_types();init_shared();day=z18.iso.date().describe("UTC day, YYYY-MM-DD"),billingCommands=[{id:"billing.customer",summary:"Read one Hyperline billing customer",permission:"ops:billing:read",effect:"read",input:z18.object({customer:z18.string().trim().min(1).max(255).describe("Hyperline customer id"),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/billing/customers/${seg(input.customer)}`,query:{reason:input.reason}}),"request")},{id:"billing.org",summary:"Read an organization's billing state: subscription, plan projection, credits and wallet",permission:"ops:billing:read",effect:"read",input:z18.object({org:opsArgs.org,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/billing/organizations/${seg(input.org)}`,query:{reason:input.reason}}),"request")},{id:"billing.bandwidth-contract",summary:"Read an organization's hosting bandwidth contract and current usage",permission:"ops:billing:read",effect:"read",input:z18.object({org:opsArgs.org,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/billing/organizations/${seg(input.org)}/bandwidth-contract`,query:{reason:input.reason}}),"request")},{id:"billing.ledger",summary:"Read an organization's credit ledger: holds, settlements, grants or usage events",permission:"ops:billing:read",effect:"read",input:z18.object({org:opsArgs.org,kind:z18.enum(["holds","settlements","grants","usage-events"]),since:opsArgs.since.optional(),limit:opsArgs.limit.max(200).default(100),cursor:opsArgs.cursor.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/ledger",query:compact({organizationId:input.org,kind:input.kind,since:time2(input.since),limit:input.limit,cursor:input.cursor,reason:input.reason})}),"request")},{id:"billing.plans.report",summary:"Find organizations whose local plan projection is missing or unusable (one page)",permission:"ops:billing:read",effect:"read",input:z18.object({cursor:opsArgs.cursor.optional().describe("Resume after this organization id"),at:z18.iso.datetime({offset:!0}).optional().describe("Reuse evaluatedAt when resuming a scan"),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/plan-projections/report",query:compact({reason:input.reason,at:input.at??new Date().toISOString(),cursor:input.cursor})}),"request")},{id:"billing.plans.reconcile",summary:"Repair organizations' local plan projections from Hyperline",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({orgs:z18.array(opsArgs.org).min(1).max(100).describe("Organization ids")})},{id:"billing.legacy-premium.report",summary:"Report legacy Premium organizations and where each stands in the Pro transition",permission:"ops:billing:read",effect:"read",input:z18.object({org:opsArgs.org.optional(),limit:opsArgs.limit.max(200).optional(),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/legacy-premium-report",query:compact({reason:input.reason,org:input.org,limit:input.limit})}),"request")},{id:"billing.legacy-premium.enroll",summary:"Record the approved Pro offer for one legacy Premium organization",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({org:opsArgs.org,deadline:z18.string().trim().min(1).max(64).describe("Decision date exactly 90 calendar days from today")})},{id:"billing.legacy-premium.comp",summary:"Accept an internal organization's Pro offer on its behalf, free through a 100% coupon",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({org:opsArgs.org,coupon:z18.string().trim().min(1).max(64).describe("Hyperline coupon id: 100% off every product")})},{id:"billing.legacy-premium.notify",summary:"Send the due legacy Premium transition notices for one organization",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({org:opsArgs.org})},{id:"billing.entitlements.sync",summary:"Reconcile subscription entitlement properties in Hyperline with Fimo's plans (one batch)",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({batchSize:z18.coerce.number().int().min(1).max(100).default(50),concurrency:z18.coerce.number().int().min(1).max(10).default(2),cursor:opsArgs.cursor.optional().describe("Resume after this organization id")})},{id:"billing.agent-runtime.attach",summary:"Attach the Agent runtime product to PAYG and Pro subscriptions (one batch)",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({orgs:z18.array(opsArgs.org).min(1).max(100).optional().describe("Only these organizations"),batchSize:z18.coerce.number().int().min(1).max(100).default(25),cursor:opsArgs.cursor.optional().describe("Resume after this organization id")})},{id:"billing.dispatches.list",summary:"List billing usage dispatches to Hyperline by state",permission:"ops:billing:read",effect:"read",input:z18.object({state:z18.enum(["pending","dispatched","dead-lettered","discarded"]),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/billing/dispatches",body:{state:input.state,reason:input.reason}}),"request")},{id:"billing.dispatches.discard",summary:"Discard dead-lettered billing dispatches so they are never sent",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({dispatches:z18.array(z18.uuid()).min(1).max(100).describe("Dispatch ids")})},{id:"billing.dispatches.retry",summary:"Retry a dead-lettered billing dispatch",permission:"ops:billing:write",effect:"write",risk:"low",input:z18.object({dispatch:z18.uuid().describe("Dispatch id")})},{id:"billing.cache.invalidate",summary:"Clear an organization's cached billing state so the next read goes to Hyperline",permission:"ops:billing:write",effect:"write",risk:"low",input:z18.object({org:opsArgs.org})},{id:"billing.hosting-usage.day",summary:"Read hosting usage recorded for one source, meter and day",permission:"ops:billing:read",effect:"read",input:z18.object({source:z18.string().trim().min(1).max(100),meter:z18.string().trim().min(1).max(100),day,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/hosting-usage",query:{source:input.source,meter:input.meter,day:input.day,reason:input.reason}}),"request")},{id:"billing.hosting-usage.reconciliation",summary:"Compare a project's served traffic with the hosting usage billed for one day",permission:"ops:billing:read",effect:"read",input:z18.object({project:opsArgs.project,day,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/hosting-usage/reconciliation",query:{projectId:input.project,day:input.day,reason:input.reason}}),"request")},{id:"billing.hosting-usage.periods",summary:"List an organization's hosting billing periods",permission:"ops:billing:read",effect:"read",input:z18.object({org:opsArgs.org,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/hosting-usage/customer-periods",query:{organizationId:input.org,reason:input.reason}}),"request")}]}});import{z as z19}from"zod";var coreCommands,init_core=__esm({"../../packages/api-contracts/dist/esm/ops/commands/core.js"(){"use strict";init_args();init_types();init_shared();coreCommands=[{id:"find",summary:"Find projects, organizations or users by name, slug, domain, email or id",permission:"ops:project:read",effect:"read",input:z19.object({query:opsArgs.query,kind:z19.enum(["project","org","user"]).optional().describe("Only this kind of record"),limit:opsArgs.limit.max(100).default(20),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/find",query:compact({q:input.query,kind:input.kind,limit:input.limit,cursor:input.cursor})}),"request"),cli:{positional:"query"}},{id:"audit.list",summary:"List audit log entries, newest first",permission:"ops:audit:read",effect:"read",input:z19.object({project:opsArgs.project.optional(),org:opsArgs.org.optional(),actor:z19.string().trim().min(1).max(255).optional().describe("User or service principal id"),action:z19.string().trim().min(1).max(64).optional().describe("Audit action, e.g. project_takedown"),since:opsArgs.since.optional(),limit:opsArgs.limit.max(200).default(50)}),request:__name(input=>({method:"GET",path:"/audit",query:compact({projectId:input.project,organizationId:input.org,actor:input.actor,action:input.action,since:time2(input.since),limit:input.limit})}),"request")}]}});import{z as z20}from"zod";var window2,healthCommands,init_health=__esm({"../../packages/api-contracts/dist/esm/ops/commands/health.js"(){"use strict";init_organization_features_dto();init_ops();init_args();init_types();init_shared();window2={since:opsArgs.since,until:opsArgs.until.optional()},healthCommands=[{id:"health.overview",summary:"Platform health brief: Sentry, logs, agents, publishing and support in one window",permission:"ops:project:read",effect:"read",input:z20.object({...window2,project:opsArgs.project.optional().describe("Narrow every source that can be narrowed to one project"),limit:opsArgs.limit.max(100).default(25).describe("Maximum findings per source"),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/health",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,limit:input.limit,reason:input.reason})}),"request")},{id:"health.agents",summary:"Agent run outcomes, cost and duration grouped by agent, status, branch, project or day",permission:"ops:project:read",effect:"read",input:z20.object({...window2,project:opsArgs.project.optional(),org:opsArgs.org.optional(),env:opsArgs.env.optional(),agent:z20.string().trim().min(1).max(120).optional().describe("Agent key, e.g. chat.project"),groupBy:OpsAgentHealthGroupBySchema.default("agent"),includeChildren:z20.boolean().default(!1).describe("Count sub-steps too"),limit:opsArgs.limit.max(200).default(50),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-health",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,organizationId:input.org,branch:input.env,agentKey:input.agent,groupBy:input.groupBy,includeChildren:input.includeChildren,limit:input.limit,reason:input.reason})}),"request")},{id:"health.context",summary:"Context-window pressure and compaction facts for agent turns",permission:"ops:project:read",effect:"read",input:z20.object({...window2,project:opsArgs.project.optional(),limit:opsArgs.limit.max(1e3).default(500),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/context-health",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,limit:input.limit,reason:input.reason})}),"request")},{id:"health.memory",summary:"Agent memory health: threads and routines with missing or stale memory",permission:"ops:project:read",effect:"read",input:z20.object({...window2,project:opsArgs.project.optional(),limit:opsArgs.limit.max(1e3).default(200),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/memory-health",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,limit:input.limit,reason:input.reason})}),"request")},{id:"health.providers",summary:"Model provider errors grouped by signature, optionally correlated to agent runs",permission:"ops:braintrust:read",effect:"read",input:z20.object({...window2,model:z20.string().trim().min(1).max(200).optional(),provider:z20.string().trim().min(1).max(120).optional().describe("e.g. gateway or vertex"),spanType:OpsSpanTypeSchema.optional(),before:z20.string().trim().min(1).max(64).optional().describe("Page boundary: nextBefore from the previous page"),limit:opsArgs.limit.max(1e3).default(500).describe("Error spans to scan per page"),correlate:z20.boolean().default(!1).describe("Resolve the newest occurrences to Fimo runs"),correlationLimit:z20.coerce.number().int().min(1).max(100).default(25),sampleChars:z20.coerce.number().int().min(200).max(2e4).default(1200),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-provider-errors",body:compact({since:time2(input.since),until:time2(input.until),model:input.model,provider:input.provider,spanType:input.spanType,before:input.before,limit:input.limit,sampleChars:input.sampleChars,correlateInvocations:input.correlate||void 0,correlationLimit:input.correlate?input.correlationLimit:void 0,reason:input.reason})}),"request")},{id:"health.chat-history.summary",summary:"How often agents call the chatHistory tool and whether it finds what they need",permission:"ops:project:read",effect:"read",input:z20.object({since:opsArgs.since.optional(),until:opsArgs.until.optional(),project:opsArgs.project.optional(),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/chat-history/health",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,reason:input.reason})}),"request")},{id:"health.chat-history.calls",summary:"List chatHistory tool calls; --with-content adds the surrounding messages (needs chat read)",permission:"ops:project:read",effect:"read",input:z20.object({since:opsArgs.since,until:opsArgs.until.optional(),project:opsArgs.project.optional(),limit:opsArgs.limit.max(500).default(100),withContent:z20.boolean().default(!1),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:input.withContent?"/chat-history/calls/content":"/chat-history/calls",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,limit:input.limit,reason:input.reason})}),"request")},{id:"health.chat-history.judge",summary:"Have a model judge a sample of chatHistory calls; --calibrate runs the labelled benchmark",permission:"ops:project:chat:read",effect:"read",input:z20.object({since:opsArgs.since.optional(),until:opsArgs.until.optional(),project:opsArgs.project.optional(),sample:z20.coerce.number().int().min(1).max(25).default(10),calibrate:z20.boolean().default(!1),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>input.calibrate?{method:"POST",path:"/chat-history/judge/calibration",body:{reason:input.reason}}:{method:"POST",path:"/chat-history/judge",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,sample:input.sample,reason:input.reason})},"request")},{id:"health.data-usage",summary:"Data-provider usage (search, scraping, enrichment) grouped by operation, provider, day, org or agent",permission:"ops:project:read",effect:"read",input:z20.object({...window2,org:opsArgs.org.optional(),groupBy:OpsDataUsageGroupBySchema.default("operation"),limit:opsArgs.limit.max(200).default(50),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/data-usage",body:compact({since:time2(input.since),until:time2(input.until),organizationId:input.org,groupBy:input.groupBy,limit:input.limit,reason:input.reason})}),"request")},{id:"health.routines",summary:"Routine runs, event bursts, Jev trigger calls and cost, by routine, plan, day or project",permission:"ops:project:read",effect:"read",input:z20.object({...window2,project:opsArgs.project.optional(),org:opsArgs.org.optional(),plan:AgentPlanSchema.optional().describe("The organization's agent plan now"),routine:z20.string().trim().min(1).max(64).optional().describe("Template routine key, or custom"),groupBy:OpsRoutineMetricsGroupBySchema.default("routine"),sortBy:OpsRoutineMetricsSortBySchema.default("total").describe("Rank buckets by total cost, Jev's trigger cost, or runs"),burstMinutes:z20.coerce.number().int().min(1).max(120).default(10).describe("An event this many minutes or less after the routine's previous one is a burst"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/routine-metrics",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,organizationId:input.org,plan:input.plan,routine:input.routine,groupBy:input.groupBy,sortBy:input.sortBy,burstMinutes:input.burstMinutes,reason:input.reason})}),"request")},{id:"health.analytics",summary:"Whether a project's website analytics are arriving (content-free counts, max 7 days)",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project,env:opsArgs.env.default("prod").describe("Environment whose traffic to check; prod for published traffic"),...window2,canaryPath:z20.string().max(300).optional().describe("Exact test path ending in ?fimo_monitor=<UUID>"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/projects/${seg(input.project)}/analytics-health`,body:compact({branch:input.env,canaryPath:input.canaryPath,since:time2(input.since),until:time2(input.until)??new Date().toISOString(),reason:input.reason})}),"request")},{id:"health.session",summary:"A project's work-session and database-branch health: cleanup due, unresolved allocations, capacity",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project,checkProvider:z20.boolean().default(!1).describe("Include one bounded read-only Neon inventory page"),limit:opsArgs.limit.max(100).default(25),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:`/projects/${seg(input.project)}/session-health`,body:{reason:input.reason,limit:input.limit,checkProvider:input.checkProvider}}),"request")},{id:"health.sandbox",summary:"A project environment's sandbox and preview status",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project,env:opsArgs.env.default("main"),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:`/projects/${seg(input.project)}/sandbox/status`,body:{projectEnv:input.env,reason:input.reason}}),"request")},{id:"health.schedules",summary:"Failed scheduled runs and webhook deliveries",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project.optional(),env:opsArgs.env.optional(),schedule:z20.uuid().optional().describe("Schedule id"),run:z20.uuid().optional().describe("Schedule run id (needs --project)"),since:opsArgs.since.optional(),until:opsArgs.until.optional(),limit:opsArgs.limit.max(100).optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/schedules/failures",body:compact({projectId:input.project,projectEnv:input.env,scheduleId:input.schedule,runId:input.run,since:time2(input.since),until:time2(input.until),limit:input.limit,reason:input.reason})}),"request")},{id:"health.integrations",summary:"Failing integration connections and inbound events",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/integrations/failures",body:compact({projectId:input.project,reason:input.reason})}),"request")},{id:"health.domains",summary:"Custom domains with DNS, SSL or provider problems",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project.optional(),org:opsArgs.org.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/domains/problems",body:compact({projectId:input.project,organizationId:input.org,reason:input.reason})}),"request")}]}});import{z as z21}from"zod";var mergeCommands,init_merge=__esm({"../../packages/api-contracts/dist/esm/ops/commands/merge.js"(){"use strict";init_args();init_types();init_shared();mergeCommands=[{id:"merge.list",summary:"List merges, newest first; --stuck lists only merges that stopped progressing",permission:"ops:merges:read",effect:"read",input:z21.object({project:opsArgs.project.optional(),stuck:z21.boolean().default(!1).describe("Only merges stuck in a non-terminal state"),status:z21.string().trim().min(1).max(64).optional().describe("Only merges in this status"),since:opsArgs.since.optional(),limit:opsArgs.limit.max(200).default(50),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/merges",query:compact({projectId:input.project,stuck:input.stuck||void 0,status:input.status,since:time2(input.since),limit:input.limit,cursor:input.cursor})}),"request")},{id:"merge.get",summary:"Show one merge with its steps, conflicts and release",permission:"ops:merges:read",effect:"read",input:z21.object({merge:z21.uuid().describe("Merge id")}),request:__name(input=>({method:"GET",path:`/merges/${seg(input.merge)}`}),"request")},{id:"merge.unwind",summary:"Force-unwind a stuck merge: reset the target branch to its pre-merge head and reopen the merge",permission:"ops:merges:write",effect:"write",risk:"high",humanOnly:!0,input:z21.object({merge:z21.uuid().describe("Merge id")})},{id:"merge.fail",summary:"Force-fail a stuck merge without touching the target branch",permission:"ops:merges:write",effect:"write",risk:"high",humanOnly:!0,input:z21.object({merge:z21.uuid().describe("Merge id")})}]}});var MONITORING_SEVERITIES,init_admin_monitoring_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin-monitoring.dto.js"(){"use strict";MONITORING_SEVERITIES=["critical","high","medium","low"]}});import{z as z22}from"zod";var OPS_SIGNAL_CASE_STATES,OpsSignalCaseStateSchema,monitorCommands,init_monitor=__esm({"../../packages/api-contracts/dist/esm/ops/commands/monitor.js"(){"use strict";init_admin_monitoring_dto();init_args();init_types();init_shared();OPS_SIGNAL_CASE_STATES=["open","accepted","snoozed","dismissed","resolved"],OpsSignalCaseStateSchema=z22.enum(OPS_SIGNAL_CASE_STATES),monitorCommands=[{id:"monitor.checks.list",summary:"List staff checks with their schedule, action and last run",permission:"ops:investigations:read",effect:"read",input:z22.object({}),request:__name(()=>({method:"GET",path:"/monitor/checks"}),"request")},{id:"monitor.checks.try",summary:"Run one code check over a window, read-only, and show what it would open; nothing is stored (Jev and external checks are refused)",permission:"ops:investigations:read",effect:"read",input:z22.object({check:z22.string().trim().min(1).max(160).describe("Check id, e.g. agents/tools/errors/tool-failure-rate"),since:opsArgs.since,until:opsArgs.until.optional()}),request:__name(input=>({method:"POST",path:"/monitor/checks/try",body:compact({checkId:input.check,since:time2(input.since),until:time2(input.until)})}),"request")},{id:"monitor.cases.list",summary:"List cases opened by staff checks, newest activity first",permission:"ops:investigations:read",effect:"read",input:z22.object({state:OpsSignalCaseStateSchema.optional().describe("Only cases in this state"),check:z22.string().trim().min(1).max(160).optional().describe("Only cases from this check id, or from every check under a prefix ending in /"),minSeverity:z22.enum(MONITORING_SEVERITIES).optional().describe("Only cases at least this severe: critical, high, medium or low"),limit:opsArgs.limit.max(200).default(50)}),request:__name(input=>({method:"POST",path:"/monitor/cases",body:compact({state:input.state,checkId:input.check,minSeverity:input.minSeverity,limit:input.limit})}),"request")},{id:"monitor.cases.get",summary:"Read one case with its latest observations (ids and numbers only)",permission:"ops:investigations:read",effect:"read",input:z22.object({case:z22.uuid().describe("Case id")}),request:__name(input=>({method:"GET",path:`/monitor/cases/${seg(input.case)}`}),"request")},{id:"monitor.cases.update",summary:"Decide on a case: accept with a ceiling, snooze until a date, dismiss, resolve, or reopen",permission:"ops:investigations:write",effect:"write",risk:"low",input:z22.object({case:z22.uuid().describe("Case id"),state:OpsSignalCaseStateSchema.optional(),decisionReason:z22.string().trim().min(1).max(2e3).optional().describe("Why this decision; required to accept, snooze or dismiss. Shown on the finding"),ceiling:z22.number().nonnegative().optional().describe("For accepted: reopen above this metric"),snoozedUntil:z22.iso.datetime().optional().describe("For snoozed: reopen after this time"),linearIssue:z22.string().trim().regex(/^[A-Z]+-\d+$/).optional(),prUrl:z22.url().optional()})}]}});import{z as z23}from"zod";var channel,draft,notifyCommands,init_notify=__esm({"../../packages/api-contracts/dist/esm/ops/commands/notify.js"(){"use strict";init_ops();init_args();init_types();init_shared();channel=z23.enum(["email","pylon"]).describe("email (Resend, to the project owner) or pylon (ticket reply)"),draft=z23.uuid().describe("Draft id"),notifyCommands=[{id:"notify.draft",summary:"Draft a customer-visible message: an email to a project owner or a reply on a Pylon ticket",permission:"ops:notification:preview",effect:"write",risk:"low",input:z23.object({channel,message:z23.string().trim().min(1).max(5e3),project:opsArgs.project.optional().describe("email: the project whose owner receives it"),recipient:z23.email().optional().describe("email: override the recipient"),subject:z23.string().trim().min(1).max(200).optional().describe("email: subject line"),locale:z23.string().trim().min(2).max(20).optional().describe("email: message locale, e.g. en"),issue:OpsPylonIssueIdSchema.optional().describe("pylon: ticket id"),replyTo:z23.string().trim().min(1).max(255).optional().describe("pylon: top-level message id to reply to"),toEmails:z23.array(z23.email()).max(50).optional().describe("pylon: email recipients"),ccEmails:z23.array(z23.email()).max(50).optional(),bccEmails:z23.array(z23.email()).max(50).optional()}),cli:{fileArgs:["message"]}},{id:"notify.show",summary:"Show a drafted customer message and its approval state",permission:"ops:notification:preview",effect:"read",input:z23.object({channel,draft}),request:__name(input=>({method:"GET",path:input.channel==="pylon"?`/support/pylon/replies/${seg(input.draft)}`:`/notifications/${seg(input.draft)}`}),"request")},{id:"notify.approve",summary:"Approve a drafted customer message (a person must approve before it can be sent)",permission:"ops:notification:approve",effect:"write",risk:"low",humanOnly:!0,input:z23.object({channel,draft})},{id:"notify.send",summary:"Send an approved customer message",permission:"ops:notification:send",effect:"write",risk:"high",input:z23.object({channel,draft})}]}});function normalizeSentryIssueReference(reference){let trimmed=reference.trim();if(SENTRY_ISSUE_ID_PATTERN.test(trimmed))return trimmed;let url;try{url=new URL(trimmed)}catch{throw new Error("Expected a Sentry issue id or /issues/<id>/ URL")}let segments=url.pathname.split("/").filter(Boolean),issuesIndex=segments.lastIndexOf("issues"),issueId=issuesIndex>=0&&issuesIndex===segments.length-2?segments[issuesIndex+1]:void 0;if(!issueId||!SENTRY_ISSUE_ID_PATTERN.test(issueId))throw new Error("Expected a Sentry issue id or /issues/<id>/ URL");return issueId}function collectTraceIds(value,candidates,depth=0){if(!(depth>32)){if(typeof value=="string"){TRACE_ID_PATTERN.test(value.trim())&&candidates.add(value.trim().toLowerCase());return}if(Array.isArray(value)){for(let item of value)collectTraceIds(item,candidates,depth+1);return}if(typeof value=="object"&&value!==null)for(let item of Object.values(value))collectTraceIds(item,candidates,depth+1)}}function normalizeTempoTraceReference(reference){let trimmed=reference.trim();if(TRACE_ID_PATTERN.test(trimmed))return trimmed.toLowerCase();let url;try{url=new URL(trimmed)}catch{throw new Error("Expected an exact 32-character trace id or a Grafana trace URL")}let candidates=new Set;for(let segment of url.pathname.split("/"))collectTraceIds(segment,candidates);for(let value of url.searchParams.values()){collectTraceIds(value,candidates);try{collectTraceIds(JSON.parse(value),candidates)}catch{continue}}if(candidates.size!==1)throw new Error(candidates.size===0?"Grafana URL did not contain a trace id":"Grafana URL contained multiple trace ids");return[...candidates][0]}var SENTRY_ISSUE_ID_PATTERN,TRACE_ID_PATTERN,init_references2=__esm({"../../packages/api-contracts/dist/esm/ops/references.js"(){"use strict";SENTRY_ISSUE_ID_PATTERN=/^[a-zA-Z0-9-]{1,100}$/,TRACE_ID_PATTERN=/^[a-fA-F0-9]{32}$/;__name(normalizeSentryIssueReference,"normalizeSentryIssueReference");__name(collectTraceIds,"collectTraceIds");__name(normalizeTempoTraceReference,"normalizeTempoTraceReference")}});import{z as z24}from"zod";function parseWhere(values){if(!(!values||values.length===0))return Object.fromEntries(values.map(value=>{let separator=value.indexOf("=");if(separator<1)throw new Error("--where expects key=value");return[value.slice(0,separator),value.slice(separator+1)]}))}var issue,logFilters,observeCommands,init_observe=__esm({"../../packages/api-contracts/dist/esm/ops/commands/observe.js"(){"use strict";init_args();init_references2();init_types();init_shared();issue=z24.string().trim().min(1).max(500).describe("Sentry issue id or issue URL");__name(parseWhere,"parseWhere");logFilters={project:opsArgs.project,where:z24.array(z24.string().min(3).max(500)).optional().describe("Structured field filter key=value; repeatable"),contains:z24.string().min(1).max(500).optional().describe("Plain-text line filter"),limit:opsArgs.limit.max(1e3).default(100),reason:opsArgs.reason,output:opsArgs.output.optional()},observeCommands=[{id:"observe.logs.query",summary:"Query a project's production logs in a time window",permission:"ops:logs:read",effect:"read",input:z24.object({...logFilters,since:opsArgs.since,until:opsArgs.until.optional()}),request:__name(input=>({method:"POST",path:"/logs/query",body:compact({projectId:input.project,from:time2(input.since),to:time2(input.until)??new Date().toISOString(),limit:input.limit,contains:input.contains,where:parseWhere(input.where),reason:input.reason})}),"request")},{id:"observe.logs.around",summary:"Read a project's production logs a few minutes either side of a moment",permission:"ops:logs:read",effect:"read",input:z24.object({...logFilters,at:z24.iso.datetime({offset:!0}).describe("The moment to center on"),minutes:z24.coerce.number().int().min(1).max(120).default(5).describe("Minutes before and after")}),request:__name(input=>{let at2=Date.parse(input.at);return{method:"POST",path:"/logs/query",body:compact({projectId:input.project,from:new Date(at2-input.minutes*6e4).toISOString(),to:new Date(at2+input.minutes*6e4).toISOString(),limit:input.limit,contains:input.contains,where:parseWhere(input.where),reason:input.reason})}},"request")},{id:"observe.traces.get",summary:"Read one Grafana Tempo trace (id or Grafana URL) for a project",permission:"ops:traces:read",effect:"read",input:z24.object({trace:z24.string().trim().min(1).max(4e3).describe("32-character trace id or Grafana trace URL"),project:opsArgs.project,since:opsArgs.since,until:opsArgs.until.optional(),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/traces/${normalizeTempoTraceReference(input.trace)}`,body:{projectId:input.project,from:resolveOpsTime(input.since),to:time2(input.until)??new Date().toISOString(),reason:input.reason}}),"request")},{id:"observe.sentry.issues",summary:"Search Sentry issues, for one project or every project",permission:"ops:sentry:read",effect:"read",input:z24.object({project:opsArgs.project.optional(),search:z24.string().trim().min(1).max(500).optional().describe('Sentry search, e.g. "is:unresolved"'),period:z24.enum(["1h","24h","7d","14d","30d","90d"]).optional().describe("Stats period (default 14d)"),sort:z24.enum(["date","new","freq","user","trends"]).optional(),limit:opsArgs.limit.max(100).optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/sentry/issues",body:compact({projectId:input.project,query:input.search,statsPeriod:input.period,sort:input.sort,limit:input.limit,reason:input.reason})}),"request")},{id:"observe.sentry.issue",summary:"Read one Sentry issue",permission:"ops:sentry:read",effect:"read",input:z24.object({issue,reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/sentry/issues/${seg(normalizeSentryIssueReference(input.issue))}`,body:{reason:input.reason}}),"request")},{id:"observe.sentry.event",summary:"Read one full Sentry event",permission:"ops:sentry:read",effect:"read",input:z24.object({event:z24.string().trim().min(1).max(100).describe("Sentry event id"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/sentry/events/${seg(input.event)}`,body:{reason:input.reason}}),"request")},{id:"observe.sentry.latest-event",summary:"Read the latest full event of a Sentry issue",permission:"ops:sentry:read",effect:"read",input:z24.object({issue,reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/sentry/issues/${seg(normalizeSentryIssueReference(input.issue))}/events/latest`,body:{reason:input.reason}}),"request")},{id:"observe.sentry.resolve",summary:"Mark a Sentry issue resolved",permission:"ops:sentry:write",effect:"write",risk:"low",input:z24.object({issue})},{id:"observe.posthog.milestones",summary:"Count a project's PostHog lifecycle milestones (create, deploy, first publish) in a window",permission:"ops:posthog:read",effect:"read",input:z24.object({project:opsArgs.project,since:opsArgs.since,until:opsArgs.until.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/posthog/milestones",body:{projectId:input.project,from:resolveOpsTime(input.since),to:time2(input.until)??new Date().toISOString(),reason:input.reason}}),"request")}]}});import{z as z25}from"zod";var orgCommands,init_org=__esm({"../../packages/api-contracts/dist/esm/ops/commands/org.js"(){"use strict";init_organization_features_dto();init_args();init_types();init_shared();orgCommands=[{id:"org.get",summary:"Show an organization: plan, members, projects and subscription summary",permission:"ops:organizations:read",effect:"read",input:z25.object({org:opsArgs.org,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/organizations/${seg(input.org)}`,query:{reason:input.reason}}),"request")},{id:"org.features.list",summary:"List an organization's features and any staff overrides",permission:"ops:customers:read",effect:"read",input:z25.object({org:opsArgs.org}),request:__name(input=>({method:"GET",path:`/organizations/${seg(input.org)}/features`}),"request")},{id:"org.features.set",summary:"Force an organization feature on or off, or clear the override",permission:"ops:organization:features:write",effect:"write",risk:"low",humanOnly:!0,input:z25.object({org:opsArgs.org,feature:z25.enum(ORGANIZATION_FEATURES).describe("Feature name"),state:z25.enum(["on","off","default"]).describe("on, off, or default to clear the override")})},{id:"org.takedown",summary:"Take every project of an organization off Fimo domains and block publishing",permission:"ops:organizations:write",effect:"write",risk:"high",humanOnly:!0,input:z25.object({org:opsArgs.org})},{id:"org.restore",summary:"Lift an organization takedown",permission:"ops:organizations:write",effect:"write",risk:"high",humanOnly:!0,input:z25.object({org:opsArgs.org})},{id:"org.delete",summary:"Delete an organization and everything it owns permanently",permission:"ops:organizations:write",effect:"write",risk:"high",humanOnly:!0,input:z25.object({org:opsArgs.org})},{id:"org.credits.topup",summary:"Grant credits to an organization, free or as a recorded purchase",permission:"ops:credits:write",effect:"write",risk:"high",humanOnly:!0,input:z25.object({org:opsArgs.org,credits:z25.coerce.number().int().positive().describe("Number of credits"),type:z25.enum(["free","purchase"]).default("free"),amountCents:z25.coerce.number().int().positive().optional().describe("Amount paid, required for a purchase"),expiresAt:z25.iso.datetime({offset:!0}).optional().describe("When the credits expire"),message:z25.string().trim().optional().describe("Note shown with the grant")})},{id:"org.credits.burn-zombies",summary:"Burn credits held by abandoned (zombie) holds of one organization since a date",permission:"ops:credits:write",effect:"write",risk:"high",humanOnly:!0,input:z25.object({org:opsArgs.org,since:opsArgs.since})}]}});import{z as z26}from"zod";var OPS_PLATFORM_DASHBOARDS,platformCommands,init_platform=__esm({"../../packages/api-contracts/dist/esm/ops/commands/platform.js"(){"use strict";init_args();init_types();init_shared();OPS_PLATFORM_DASHBOARDS=["agents","money","projects","automation","growth","platform","usage","stats"],platformCommands=[{id:"platform.metrics",summary:"Read an admin dashboard as data: agents, money, projects, automation, growth, platform, usage or stats",permission:"ops:platform:read",effect:"read",input:z26.object({dashboard:z26.enum(OPS_PLATFORM_DASHBOARDS),since:opsArgs.since.default("7d"),until:opsArgs.until.optional()}),request:__name(input=>({method:"GET",path:"/platform/metrics",query:compact({dashboard:input.dashboard,since:time2(input.since),until:time2(input.until)})}),"request")},{id:"platform.pool.status",summary:"Show the warm sandbox pool: size, target, and projects waiting in it",permission:"ops:platform:read",effect:"read",input:z26.object({}),request:__name(()=>({method:"GET",path:"/platform/pool"}),"request")},{id:"platform.pool.refill",summary:"Top the warm sandbox pool up to its target size",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({})},{id:"platform.pool.flush",summary:"Delete warm sandboxes from the pool, all of them or only the listed ones (new projects start cold until it refills)",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({pooled:z26.array(z26.uuid()).min(1).max(500).optional().describe("Only these pooled project ids; omit to flush all")})},{id:"platform.maintenance.status",summary:"Show whether maintenance mode is on and its message",permission:"ops:platform:read",effect:"read",input:z26.object({}),request:__name(()=>({method:"GET",path:"/platform/maintenance"}),"request")},{id:"platform.maintenance.enable",summary:"Turn maintenance mode on: Studio shows the message and refuses work",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({message:z26.string().max(500).optional().describe("Message shown to users")})},{id:"platform.maintenance.disable",summary:"Turn maintenance mode off",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({})},{id:"platform.maintenance.message",summary:"Change the maintenance message without toggling maintenance mode",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({message:z26.string().max(500).describe("Message shown to users")})},{id:"platform.sync-all",summary:"Re-sync every project's database records from its repository",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({})},{id:"platform.sync-tenant-schemas",summary:"Apply pending tenant schema migrations to every project database",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({})},{id:"platform.integrations.replay",summary:"Replay one failed inbound integration event",permission:"ops:platform:write",effect:"write",risk:"low",input:z26.object({event:z26.string().trim().min(1).max(255).describe("Inbound event id")})},{id:"platform.onboardings.list",summary:"List site onboardings (start from an existing website) with their status",permission:"ops:platform:read",effect:"read",input:z26.object({status:z26.string().trim().min(1).max(64).optional(),since:opsArgs.since.optional(),limit:opsArgs.limit.max(200).default(50),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/platform/onboardings",query:compact({status:input.status,since:time2(input.since),limit:input.limit,cursor:input.cursor})}),"request")},{id:"platform.onboardings.get",summary:"Show one project's site onboarding: questions, answers, refusal and timeline",permission:"ops:platform:read",effect:"read",input:z26.object({project:opsArgs.project,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/platform/onboardings/${seg(input.project)}`,query:{reason:input.reason}}),"request")},{id:"platform.onboardings.lift-refusal",summary:"Lift a site onboarding's Terms refusal so the project can continue",permission:"ops:platform:write",effect:"write",risk:"low",input:z26.object({project:opsArgs.project})},{id:"platform.unclaimed.list",summary:"List unclaimed projects (created without an account) and their claim state",permission:"ops:platform:read",effect:"read",input:z26.object({since:opsArgs.since.optional(),limit:opsArgs.limit.max(200).default(50),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/platform/unclaimed",query:compact({since:time2(input.since),limit:input.limit,cursor:input.cursor})}),"request")},{id:"platform.resources.resolve",summary:"Resolve any id, URL, email or domain to the Fimo record it names",permission:"ops:platform:read",effect:"read",input:z26.object({query:z26.string().trim().min(1).max(512).describe("Id, URL, email or domain")}),request:__name(input=>({method:"GET",path:"/platform/resources/resolve",query:{q:input.query}}),"request"),cli:{positional:"query"}}]}});import{z as z27}from"zod";function files(project,action,env){return`/projects/${seg(project)}/files/${action}?projectEnv=${seg(env)}`}var envMain,projectCommands,init_project=__esm({"../../packages/api-contracts/dist/esm/ops/commands/project.js"(){"use strict";init_args();init_types();init_shared();envMain=opsArgs.env.default("main");__name(files,"files");projectCommands=[{id:"project.get",summary:"Inspect a project: owner, environments, domains, publications, recent runs and logs",permission:"ops:project:read",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,since:opsArgs.since.default("24h"),limit:opsArgs.limit.max(500).default(100).describe("Maximum log entries")}),request:__name(input=>({method:"GET",path:`/projects/${seg(input.project)}/inspect`,query:{projectEnv:input.env,hours:Math.min(168,opsHoursSince(input.since)),logLimit:input.limit}}),"request")},{id:"project.snapshot",summary:"Download a zip snapshot of a project's source and content",permission:"ops:project:snapshot",effect:"read",input:z27.object({project:opsArgs.project,reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/projects/${seg(input.project)}/snapshot`,body:{reason:input.reason}}),"request")},{id:"project.chat",summary:"Read a project's agent chat transcript (the most recently active chat unless --thread is set)",permission:"ops:project:chat:read",effect:"read",input:z27.object({project:opsArgs.project,thread:z27.uuid().optional().describe("One chat or routine run thread id"),env:opsArgs.env.optional().describe("Only turns that targeted this environment"),since:opsArgs.since.optional(),until:opsArgs.until.optional(),limit:opsArgs.limit.max(200).default(100),cursor:opsArgs.cursor.optional(),full:z27.boolean().default(!1).describe("Include tool inputs, outputs and other message parts"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/projects/${seg(input.project)}/chat/messages`,body:compact({projectEnv:input.env,threadId:input.thread,from:time2(input.since),to:time2(input.until),limit:input.limit,cursor:input.cursor,slim:!input.full,reason:input.reason})}),"request")},{id:"project.files.read",summary:"Read one source file from a project environment",permission:"ops:project:snapshot",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,path:z27.string().trim().min(1).max(1024).describe("File path relative to the project root"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:files(input.project,"read",input.env),body:{path:input.path,reason:input.reason}}),"request")},{id:"project.files.glob",summary:"List source file paths in a project environment",permission:"ops:project:snapshot",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,pattern:z27.string().min(1).max(300).optional().describe("Glob pattern, e.g. src/**/*.tsx"),limit:opsArgs.limit.max(2e3).default(2e3),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:files(input.project,"glob",input.env),body:compact({pattern:input.pattern,limit:input.limit,reason:input.reason})}),"request")},{id:"project.files.grep",summary:"Search source files in a project environment with a regular expression",permission:"ops:project:snapshot",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,pattern:z27.string().min(1).max(200).describe("Regular expression"),include:z27.string().min(1).max(300).optional().describe("Only paths matching this glob"),caseInsensitive:z27.boolean().default(!1),limit:opsArgs.limit.max(200).default(100).describe("Maximum matches"),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:files(input.project,"grep",input.env),body:compact({pattern:input.pattern,include:input.include,caseInsensitive:input.caseInsensitive,maxMatches:input.limit,reason:input.reason})}),"request")},{id:"project.files.package-manager",summary:"Report which package manager a project declares and which lockfiles it has",permission:"ops:project:snapshot",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:files(input.project,"package-manager",input.env),body:{reason:input.reason}}),"request")},{id:"project.files.write",summary:"Create or replace one source file in a project environment (commits to its branch)",permission:"ops:project:operate",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project,env:envMain,path:z27.string().trim().min(1).max(1024).describe("File path relative to the project root"),content:z27.string().max(256*1024).describe("The exact desired file contents"),overwrite:z27.boolean().default(!1).describe("Allow replacing an existing file")}),cli:{fileArgs:["content"]}},{id:"project.runtime.bump",summary:"Pin the project's fimo runtime packages to an exact version, install, and restart the dev server",permission:"ops:project:operate",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project,env:envMain,version:z27.string().trim().min(1).max(64).describe("Exact target version, e.g. 0.11.0")})},{id:"project.preview.restart",summary:"Restart the project's preview dev server",permission:"ops:project:operate",effect:"write",risk:"low",humanOnly:!0,input:z27.object({project:opsArgs.project,env:envMain})},{id:"project.publish",summary:"Publish the customer's site on their behalf. Only when a Fimo admin explicitly asks for it; never on an agent's own initiative",permission:"ops:project:publish",effect:"write",risk:"high",humanOnly:!0,consent:!0,input:z27.object({project:opsArgs.project,env:opsArgs.env.optional().describe("Source environment; defaults to the project's publish source")})},{id:"project.domain.refresh",summary:"Refresh a custom domain's provider and SSL state",permission:"ops:project:operate",effect:"write",risk:"low",humanOnly:!0,input:z27.object({project:opsArgs.project,domain:z27.uuid().describe("Project domain id")})},{id:"project.migrations.dry-run",summary:"Plan a source migration for one project without changing it",permission:"ops:project:read",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,migration:z27.string().trim().min(1).max(120).optional().describe("Migration id (default: the current one)"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/migrations/projects/${seg(input.project)}/dry-run`,body:compact({migrationId:input.migration,projectEnv:input.env,reason:input.reason})}),"request")},{id:"project.sync",summary:"Re-sync a project's database records from its repository",permission:"ops:project:operate",effect:"write",risk:"low",input:z27.object({project:opsArgs.project})},{id:"project.thumbnail.regenerate",summary:"Regenerate a project's dashboard thumbnail",permission:"ops:project:operate",effect:"write",risk:"low",input:z27.object({project:opsArgs.project,type:z27.enum(["dev","published"]).default("dev").describe("dev (the preview) or published (the live site)")})},{id:"project.version.restore",summary:"Restore a project environment to an earlier version (overwrites the current state)",permission:"ops:project:admin",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project,env:envMain,version:z27.string().trim().min(1).max(255).describe("Version id to restore")})},{id:"project.takedown",summary:"Take a project off Fimo domains and block it from publishing",permission:"ops:project:admin",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project})},{id:"project.restore",summary:"Lift a project takedown so it can serve and publish again",permission:"ops:project:admin",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project})},{id:"project.transfer",summary:"Move a project to another organization",permission:"ops:project:admin",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project,toOrg:opsArgs.org.describe("Destination organization id")})},{id:"project.delete",summary:"Delete a project and its resources permanently",permission:"ops:project:admin",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project})}]}});import{z as z28}from"zod";var SUPPORT_REPORT_CATEGORIES,SupportReportCategorySchema,SUPPORT_REPORT_STATUSES,SupportReportStatusSchema,SupportReportSourceSchema,SupportReportDeliveryStatusSchema,SUPPORT_REPORT_LINK_KINDS,SupportReportLinkKindSchema,SupportReportEventKindSchema,SupportReportActorKindSchema,SupportReportTagSchema,SupportReportHttpUrlSchema,SupportReportContextInputSchema,CreateSupportReportInputSchema,SupportReportListQuerySchema,UpdateSupportReportInputSchema,CreateSupportReportMessageInputSchema,CreateSupportReportLinkInputSchema,SupportReportActorDTOSchema,SupportReportLinkDTOSchema,SupportReportLinkDTO,SupportReportEventDTOSchema,SupportReportEventDTO,SupportReportSummaryDTOSchema,SupportReportSummaryDTO,SupportReportDetailDTOSchema,SupportReportDetailDTO,SupportReportListDTOSchema,SupportReportListDTO,CreateSupportReportResultDTOSchema,CreateSupportReportResultDTO,init_support_report_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/support-report.dto.js"(){"use strict";init_create_dto();SUPPORT_REPORT_CATEGORIES=[{value:"account_billing",label:"Account & billing"},{value:"project_issues",label:"Project issues"},{value:"ai_prompt_output_quality",label:"AI prompt & output quality"},{value:"roles_access_collaboration",label:"Roles, access & collaboration"},{value:"code_technical_questions",label:"Code & technical questions"},{value:"others",label:"Other"}],SupportReportCategorySchema=z28.enum(SUPPORT_REPORT_CATEGORIES.map(category=>category.value)),SUPPORT_REPORT_STATUSES=["new","in_progress","waiting","resolved","duplicate","irrelevant","ignored"],SupportReportStatusSchema=z28.enum(SUPPORT_REPORT_STATUSES),SupportReportSourceSchema=z28.enum(["app","cli","agent"]),SupportReportDeliveryStatusSchema=z28.enum(["pending","delivered","failed"]),SUPPORT_REPORT_LINK_KINDS=["linear","pylon","project","sentry","grafana","other"],SupportReportLinkKindSchema=z28.enum(SUPPORT_REPORT_LINK_KINDS),SupportReportEventKindSchema=z28.enum(["report_created","report_updated","message","link_added","link_removed","delivery"]),SupportReportActorKindSchema=z28.enum(["user","agent","system"]),SupportReportTagSchema=z28.string().trim().min(1).max(50),SupportReportHttpUrlSchema=z28.url({protocol:/^https?$/}).max(2e3),SupportReportContextInputSchema=z28.object({organization:z28.object({id:z28.string().trim().min(1).max(255),name:z28.string().trim().max(240).optional()}),project:z28.object({id:z28.uuid(),name:z28.string().trim().max(240).optional(),createdAt:z28.coerce.date().optional()}).optional(),environment:z28.string().trim().max(255).optional(),clientVersion:z28.string().trim().max(64).optional()}),CreateSupportReportInputSchema=z28.object({message:z28.string().trim().min(1).max(2e4),category:SupportReportCategorySchema,source:SupportReportSourceSchema.default("cli"),context:SupportReportContextInputSchema}),SupportReportListQuerySchema=z28.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),source:SupportReportSourceSchema.optional(),tag:SupportReportTagSchema.optional(),query:z28.string().trim().max(200).optional(),limit:z28.coerce.number().int().min(1).max(100).default(50),offset:z28.coerce.number().int().min(0).default(0)}),UpdateSupportReportInputSchema=z28.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),tags:z28.array(SupportReportTagSchema).max(20).optional(),duplicateOfReportId:z28.uuid().nullable().optional(),note:z28.string().trim().min(1).max(2e4).optional()}).refine(input=>Object.values(input).some(value=>value!==void 0),{message:"At least one report change is required"}),CreateSupportReportMessageInputSchema=z28.object({message:z28.string().trim().min(1).max(2e4)}),CreateSupportReportLinkInputSchema=z28.object({kind:SupportReportLinkKindSchema,label:z28.string().trim().min(1).max(240),url:SupportReportHttpUrlSchema,externalId:z28.string().trim().max(240).optional()}),SupportReportActorDTOSchema=z28.object({kind:SupportReportActorKindSchema,id:z28.string().nullable(),name:z28.string().nullable()}),SupportReportLinkDTOSchema=z28.object({id:z28.uuid(),kind:SupportReportLinkKindSchema,label:z28.string(),url:SupportReportHttpUrlSchema,externalId:z28.string().nullable(),addedBy:SupportReportActorDTOSchema,createdAt:z28.coerce.date()}),SupportReportLinkDTO=createDTO(SupportReportLinkDTOSchema),SupportReportEventDTOSchema=z28.object({id:z28.uuid(),kind:SupportReportEventKindSchema,body:z28.string().nullable(),metadata:z28.record(z28.string(),z28.unknown()),actor:SupportReportActorDTOSchema,createdAt:z28.coerce.date()}),SupportReportEventDTO=createDTO(SupportReportEventDTOSchema),SupportReportSummaryDTOSchema=z28.object({id:z28.uuid(),status:SupportReportStatusSchema,category:SupportReportCategorySchema,tags:z28.array(z28.string()),source:SupportReportSourceSchema,message:z28.string(),reporter:z28.object({id:z28.string().nullable(),name:z28.string().nullable(),email:z28.string().nullable()}),organization:z28.object({id:z28.string().nullable(),name:z28.string()}),project:z28.object({id:z28.uuid().nullable(),name:z28.string()}).nullable(),assignee:SupportReportActorDTOSchema.nullable(),delivery:z28.object({status:SupportReportDeliveryStatusSchema,pylonIssueId:z28.string().nullable(),pylonIssueUrl:SupportReportHttpUrlSchema.nullable(),error:z28.string().nullable(),deliveredAt:z28.coerce.date().nullable()}).nullable(),duplicateOfReportId:z28.uuid().nullable(),resolvedAt:z28.coerce.date().nullable(),createdAt:z28.coerce.date(),updatedAt:z28.coerce.date()}),SupportReportSummaryDTO=createDTO(SupportReportSummaryDTOSchema),SupportReportDetailDTOSchema=SupportReportSummaryDTOSchema.extend({environment:z28.string().nullable(),clientVersion:z28.string().nullable(),links:z28.array(SupportReportLinkDTOSchema),events:z28.array(SupportReportEventDTOSchema)}),SupportReportDetailDTO=createDTO(SupportReportDetailDTOSchema),SupportReportListDTOSchema=z28.object({reports:z28.array(SupportReportSummaryDTOSchema),total:z28.number().int().nonnegative(),statusCounts:z28.object({new:z28.number().int().nonnegative(),in_progress:z28.number().int().nonnegative(),waiting:z28.number().int().nonnegative(),resolved:z28.number().int().nonnegative(),duplicate:z28.number().int().nonnegative(),irrelevant:z28.number().int().nonnegative(),ignored:z28.number().int().nonnegative()}),limit:z28.number().int().positive(),offset:z28.number().int().nonnegative()}),SupportReportListDTO=createDTO(SupportReportListDTOSchema),CreateSupportReportResultDTOSchema=z28.object({id:z28.uuid(),deliveryStatus:SupportReportDeliveryStatusSchema,message:z28.string()}),CreateSupportReportResultDTO=createDTO(CreateSupportReportResultDTOSchema)}});import{z as z29}from"zod";var report,pylonIssue,supportCommands,init_support=__esm({"../../packages/api-contracts/dist/esm/ops/commands/support.js"(){"use strict";init_support_report_dto();init_ops();init_args();init_types();init_shared();report=z29.uuid().describe("Support report id"),pylonIssue=OpsPylonIssueIdSchema.describe("Pylon issue id"),supportCommands=[{id:"support.reports.list",summary:"List Fimo support reports, newest first",permission:"ops:support:read",effect:"read",input:z29.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),source:SupportReportSourceSchema.optional(),tag:z29.string().trim().min(1).max(50).optional(),search:z29.string().trim().min(1).max(200).optional().describe("Text search over the report"),limit:opsArgs.limit.max(200).default(50),offset:z29.coerce.number().int().min(0).default(0),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"GET",path:"/support/reports",query:compact({reason:input.reason,status:input.status,category:input.category,source:input.source,tag:input.tag,query:input.search,limit:input.limit,offset:input.offset})}),"request")},{id:"support.reports.get",summary:"Read one support report with its messages, links and context",permission:"ops:support:read",effect:"read",input:z29.object({report,reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"GET",path:`/support/reports/${seg(input.report)}`,query:{reason:input.reason}}),"request")},{id:"support.reports.claim",summary:"Claim a support report (mark it in progress), optionally with a note",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({report,note:z29.string().trim().min(1).max(2e4).optional()}),cli:{fileArgs:["note"]}},{id:"support.reports.update",summary:"Change a support report's status, category, tags or duplicate link, optionally with a note",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({report,status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),tags:z29.array(z29.string().trim().min(1).max(50)).max(20).optional(),duplicateOf:z29.uuid().nullable().optional().describe("Report id this one duplicates; null clears it"),note:z29.string().trim().min(1).max(2e4).optional()}),cli:{fileArgs:["note"]}},{id:"support.reports.note",summary:"Add an internal message to a support report",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({report,message:z29.string().trim().min(1).max(2e4)}),cli:{fileArgs:["message"]}},{id:"support.reports.link",summary:"Link a support report to a Linear issue, Pylon ticket, project, Sentry issue or other URL",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({report,kind:SupportReportLinkKindSchema,label:z29.string().trim().min(1).max(240),url:z29.url({protocol:/^https?$/}).max(2e3),externalId:z29.string().trim().min(1).max(255).optional()})},{id:"support.reports.unlink",summary:"Remove a link from a support report",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({report,link:z29.uuid().describe("Link id")})},{id:"support.intake",summary:"Show the support intake receipt: reports received and delivered in a window (max 7 days)",permission:"ops:support:read",effect:"read",input:z29.object({since:opsArgs.since,until:opsArgs.until.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/support/intake/status",query:{since:time2(input.since),until:time2(input.until)??new Date().toISOString(),reason:input.reason}}),"request")},{id:"support.pylon.list",summary:"List Pylon support tickets in a window (max 7 days)",permission:"ops:support:read",effect:"read",input:z29.object({since:opsArgs.since,until:opsArgs.until.optional(),state:z29.enum(["open","closed","all"]).default("open"),limit:opsArgs.limit.max(100).default(50),cursor:opsArgs.cursor.optional(),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"GET",path:"/support/pylon/issues",query:compact({since:time2(input.since),until:time2(input.until)??new Date().toISOString(),state:input.state,limit:input.limit,cursor:input.cursor,reason:input.reason})}),"request")},{id:"support.pylon.thread",summary:"Read the full message thread of a Pylon ticket",permission:"ops:support:read",effect:"read",input:z29.object({issue:pylonIssue,reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/support/issues/${seg(input.issue)}/thread`,body:{reason:input.reason}}),"request")},{id:"support.pylon.resolve",summary:"Close a Pylon ticket",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({issue:pylonIssue})},{id:"support.pylon.note",summary:"Add an internal note to a Pylon ticket (not visible to the customer)",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({issue:pylonIssue,message:z29.string().trim().min(1).max(5e3)}),cli:{fileArgs:["message"]}}]}});import{z as z30}from"zod";var userCommands,init_user=__esm({"../../packages/api-contracts/dist/esm/ops/commands/user.js"(){"use strict";init_args();init_types();init_shared();userCommands=[{id:"user.get",summary:"Show a user: profile, role, organizations, recent sessions and usage",permission:"ops:users:read",effect:"read",input:z30.object({user:opsArgs.user,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/users/${seg(input.user)}`,query:{reason:input.reason}}),"request")},{id:"user.sessions",summary:"List sign-in sessions, for one user or across the platform",permission:"ops:users:read",effect:"read",input:z30.object({user:opsArgs.user.optional(),active:z30.boolean().optional().describe("Only sessions that have not expired or been revoked"),limit:opsArgs.limit.max(200).default(50),cursor:opsArgs.cursor.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/sessions",query:compact({userId:input.user,active:input.active,limit:input.limit,cursor:input.cursor,reason:input.reason})}),"request")},{id:"user.session.revoke",summary:"Revoke one sign-in session",permission:"ops:users:write",effect:"write",risk:"low",humanOnly:!0,input:z30.object({session:z30.string().trim().min(1).max(255).describe("Session id")})}]}});import{z as z31}from"zod";var evidence,versions,detectionQueries,watchCommands,init_watch=__esm({"../../packages/api-contracts/dist/esm/ops/commands/watch.js"(){"use strict";init_ops();init_args();init_types();init_shared();evidence=z31.array(z31.record(z31.string(),z31.unknown())).max(100),versions=z31.array(z31.string().trim().min(1).max(120)).max(100),detectionQueries=z31.array(z31.string().trim().min(1).max(2e3)).max(50),watchCommands=[{id:"watch.list",summary:"List watched projects and why each is watched",permission:"ops:customers:read",effect:"read",input:z31.object({}),request:__name(()=>({method:"GET",path:"/customers"}),"request")},{id:"watch.add",summary:"Watch a project (or update why it is watched)",permission:"ops:customers:write",effect:"write",risk:"low",input:z31.object({project:opsArgs.project,importance:z31.string().trim().min(1).max(1e3).describe("Why this project is operationally important"),owner:opsArgs.user.optional().describe("Owner user id"),framework:z31.string().trim().max(120).optional(),packageManager:z31.enum(["npm","pnpm","yarn","bun"]).optional(),notes:z31.string().trim().max(5e3).optional()})},{id:"watch.remove",summary:"Stop watching a project",permission:"ops:customers:write",effect:"write",risk:"low",input:z31.object({project:opsArgs.project})},{id:"watch.validations.list",summary:"List validation runs recorded for a watched project",permission:"ops:validations:read",effect:"read",input:z31.object({project:opsArgs.project}),request:__name(input=>({method:"GET",path:`/customers/${seg(input.project)}/validations`}),"request")},{id:"watch.validations.record",summary:"Record the outcome of validating a release, migration or change against a watched project",permission:"ops:validations:write",effect:"write",risk:"low",input:z31.object({project:opsArgs.project,change:z31.string().trim().min(1).max(500).describe("Release, migration or change that was validated"),outcome:OpsValidationOutcomeSchema,summary:z31.string().trim().min(1).max(1e4),evidence:evidence.default([])}),cli:{fileArgs:["evidence"]}},{id:"watch.investigations.list",summary:"List open and recent investigations",permission:"ops:investigations:read",effect:"read",input:z31.object({}),request:__name(()=>({method:"GET",path:"/investigations"}),"request")},{id:"watch.investigations.create",summary:"Open an investigation into a problem on a project",permission:"ops:investigations:write",effect:"write",risk:"low",input:z31.object({project:opsArgs.project,title:z31.string().trim().min(1).max(240),userReport:z31.string().trim().max(1e4).optional().describe("The customer's own words")})},{id:"watch.investigations.update",summary:"Update an investigation's status, hypothesis, outcome or evidence",permission:"ops:investigations:write",effect:"write",risk:"low",input:z31.object({investigation:z31.uuid().describe("Investigation id"),status:OpsInvestigationStatusSchema.optional(),hypothesis:z31.string().trim().max(1e4).optional(),outcome:z31.string().trim().max(1e4).optional(),evidence:evidence.optional()}),cli:{fileArgs:["evidence"]}},{id:"watch.known-issues.list",summary:"List known issues and their detection queries",permission:"ops:known-issues:read",effect:"read",input:z31.object({}),request:__name(()=>({method:"GET",path:"/known-issues"}),"request")},{id:"watch.known-issues.create",summary:"Record a known issue with how to detect it and any workaround",permission:"ops:known-issues:write",effect:"write",risk:"low",input:z31.object({fingerprint:z31.string().trim().min(1).max(240),title:z31.string().trim().min(1).max(240),description:z31.string().trim().min(1).max(1e4),affectedVersions:versions.default([]),detectionQueries:detectionQueries.default([]),fixedVersion:z31.string().trim().min(1).max(64).optional(),workaround:z31.string().trim().min(1).max(1e4).optional(),status:OpsKnownIssueStatusSchema.default("open")}),cli:{fileArgs:["detectionQueries"]}},{id:"watch.known-issues.update",summary:"Update a known issue",permission:"ops:known-issues:write",effect:"write",risk:"low",input:z31.object({knownIssue:z31.uuid().describe("Known issue id"),title:z31.string().trim().min(1).max(240).optional(),description:z31.string().trim().min(1).max(1e4).optional(),affectedVersions:versions.optional(),detectionQueries:detectionQueries.optional(),fixedVersion:z31.string().trim().min(1).max(64).optional(),workaround:z31.string().trim().min(1).max(1e4).optional(),status:OpsKnownIssueStatusSchema.optional()}),cli:{fileArgs:["detectionQueries"]}}]}});var OPS_COMMANDS,BY_ID,OPS_OPERATION_IDS,init_commands=__esm({"../../packages/api-contracts/dist/esm/ops/commands/index.js"(){"use strict";init_agent();init_agent();init_assistant();init_billing();init_core();init_health();init_merge();init_monitor();init_monitor();init_notify();init_observe();init_org();init_platform();init_platform();init_project();init_support();init_user();init_watch();OPS_COMMANDS=[...coreCommands,...projectCommands,...orgCommands,...userCommands,...mergeCommands,...agentCommands,...healthCommands,...billingCommands,...platformCommands,...observeCommands,...supportCommands,...watchCommands,...monitorCommands,...notifyCommands,...assistantCommands],BY_ID=new Map(OPS_COMMANDS.map(command=>[command.id,command])),OPS_OPERATION_IDS=OPS_COMMANDS.filter(command=>command.effect==="write").map(command=>command.id)}});import{z as z32}from"zod";function getChatFormOptionLabels(body){switch(body.type){case"choices":return body.actions.map(action=>action.label);case"cards":return body.items.map(item=>item.title);case"table":return body.rows.map(row2=>row2.cells[0]??"");case"assets":return body.items.map(item=>item.label??item.alt);case"capabilities":return body.items.map(item=>item.label);case"text":return[]}}var BlockSayActionSchema,BlockActionSchema,BlockAppActionSchema,BlockBaseSchema,ChoicesBlockSchema,TableRowTargetSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,AgentBlockSchema,ChatDisplayBlockSchema,TextBlockSchema,ChatFormStepIdSchema,CapabilityRequestSchema,CapabilitiesBlockSchema,ChatFormBodySchema,ChatFormStepSchema,CHAT_FORM_INTERNAL_NOTE_MAX,FormBlockSchema,ChatBlockSchema,ChatBlockToolInputSchema,ChatFormAnswerItemSchema,ChatFormAnswerMetadataSchema,QUESTION_FORM_CONTRACT_VERSION,QuestionFormSnapshotSchema,QuestionFormAnswerSnapshotSchema,ChatFormResponseSchema,init_chat_block=__esm({"../../packages/api-contracts/dist/esm/types/chat-block.js"(){"use strict";BlockSayActionSchema=z32.object({kind:z32.literal("say"),label:z32.string().trim().min(1).max(40,"Button labels must be 40 characters or fewer."),description:z32.string().min(1).max(240).optional(),message:z32.string().trim().min(1,"Every say button needs the sentence the user is saying by clicking.").max(2e3),style:z32.enum(["primary","default","ghost"]).optional()}),BlockActionSchema=BlockSayActionSchema,BlockAppActionSchema=z32.discriminatedUnion("command",[z32.object({kind:z32.literal("app"),command:z32.literal("publish")}).strict(),z32.object({kind:z32.literal("app"),command:z32.literal("connect"),integrationKey:z32.string().trim().min(1).max(80)}).strict()]),BlockBaseSchema=z32.object({fallback:z32.string().trim().min(1,"Every block needs a fallback line for clients that cannot render it.").max(500),title:z32.string().min(1).max(80).optional()}),ChoicesBlockSchema=BlockBaseSchema.extend({type:z32.literal("choices"),text:z32.string().max(500).optional(),actions:z32.array(BlockActionSchema).min(2,"A choices block needs 2 to 4 buttons.").max(4,"A choices block needs 2 to 4 buttons.")}),TableRowTargetSchema=z32.discriminatedUnion("kind",[z32.object({kind:z32.literal("entry"),collection:z32.string().min(1).max(80),entryId:z32.string().min(1).max(120)}),z32.object({kind:z32.literal("asset"),assetId:z32.string().min(1).max(120)}),z32.object({kind:z32.literal("url"),url:z32.url({protocol:/^https$/}).max(2e3)}),z32.object({kind:z32.literal("routine"),routineId:z32.string().min(1).max(120)})]),TableBlockSchema=BlockBaseSchema.extend({type:z32.literal("table"),columns:z32.array(z32.object({label:z32.string().min(1).max(24)})).min(2).max(4),rows:z32.array(z32.object({cells:z32.array(z32.string().max(80)).min(2).max(4),target:TableRowTargetSchema.optional()})).min(1).max(8)}).superRefine((table,ctx)=>{table.rows.forEach((row2,index)=>{row2.cells.length!==table.columns.length&&ctx.addIssue({code:"custom",path:["rows",index,"cells"],message:`Every table row needs exactly ${table.columns.length} cells, one for each column.`})})}),CardsBlockSchema=BlockBaseSchema.extend({type:z32.literal("cards"),layout:z32.enum(["rail","stack"]).optional(),items:z32.array(z32.object({title:z32.string().min(1).max(60),subtitle:z32.string().min(1).max(120).optional(),imageUrl:z32.url({protocol:/^https$/}).max(2e3).optional(),action:BlockSayActionSchema.optional()})).min(2).max(6)}),EntryBlockSchema=BlockBaseSchema.extend({type:z32.literal("entry"),label:z32.string().min(1).max(80),collection:z32.string().min(1).max(80),entryId:z32.string().min(1).max(120),path:z32.string().min(1).max(120).optional()}),AssetsBlockSchema=BlockBaseSchema.extend({type:z32.literal("assets"),items:z32.array(z32.object({url:z32.url({protocol:/^https$/}).max(2e3),alt:z32.string().min(1).max(120),label:z32.string().min(1).max(60).optional()})).min(1).max(6)}),CalloutBlockSchema=BlockBaseSchema.extend({type:z32.literal("callout"),title:z32.string().min(1).max(80),text:z32.string().min(1).max(240),action:BlockAppActionSchema}).strict(),StatBlockSchema=BlockBaseSchema.extend({type:z32.literal("stat"),items:z32.array(z32.object({label:z32.string().min(1).max(24),value:z32.string().min(1).max(16),delta:z32.string().min(1).max(12).optional(),tone:z32.enum(["up","down","flat"]).optional()})).min(1).max(4)}),ChartBlockSchema=BlockBaseSchema.extend({type:z32.literal("chart"),unit:z32.string().min(1).max(12).optional(),points:z32.array(z32.object({label:z32.string().min(1).max(12),value:z32.number().finite().min(0).max(1e9)})).min(2).max(12)}),AgentBlockSchema=BlockBaseSchema.extend({type:z32.literal("agent"),agentId:z32.string().uuid(),view:z32.enum(["compact","full"]).optional()}),ChatDisplayBlockSchema=z32.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema]),TextBlockSchema=BlockBaseSchema.extend({type:z32.literal("text"),placeholder:z32.string().min(1).max(120).optional(),multiline:z32.boolean().optional()}).strict(),ChatFormStepIdSchema=z32.string().regex(/^[a-z0-9][a-z0-9_-]{0,39}$/,"Step ids are lowercase letters, digits, hyphen, or underscore (max 40)."),CapabilityRequestSchema=z32.object({id:ChatFormStepIdSchema,token:z32.string().regex(/^[a-z][a-z0-9_]*:[a-z][a-z0-9_]*(?::[a-z][a-z0-9_]*)?$/,"Capability tokens are verb:noun[:qualifier]."),label:z32.string().trim().min(1).max(60),reason:z32.string().trim().min(1).max(240)}).strict(),CapabilitiesBlockSchema=BlockBaseSchema.extend({type:z32.literal("capabilities"),items:z32.array(CapabilityRequestSchema).min(1).max(6)}).strict().superRefine((block,ctx)=>{let duplicate=__name(values=>new Set(values).size!==values.length,"duplicate");duplicate(block.items.map(item=>item.id))&&ctx.addIssue({code:"custom",path:["items"],message:"Every capability request needs its own id."}),duplicate(block.items.map(item=>item.token))&&ctx.addIssue({code:"custom",path:["items"],message:"Ask for each capability token once."}),duplicate(block.items.map(item=>item.label))&&ctx.addIssue({code:"custom",path:["items"],message:"Every capability request needs a distinct label."})}),ChatFormBodySchema=z32.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,AssetsBlockSchema,TextBlockSchema,CapabilitiesBlockSchema]);__name(getChatFormOptionLabels,"getChatFormOptionLabels");ChatFormStepSchema=z32.object({id:ChatFormStepIdSchema.optional(),question:z32.string().min(1).max(500),header:z32.string().min(1).max(25),body:ChatFormBodySchema,multiSelect:z32.boolean().optional(),recommended:z32.string().min(1).max(80).optional()}).superRefine((step,ctx)=>{let labels2=getChatFormOptionLabels(step.body);labels2.some(label=>!label.trim())&&ctx.addIssue({code:"custom",path:["body"],message:"Every form option needs a visible label."}),new Set(labels2).size!==labels2.length&&ctx.addIssue({code:"custom",path:["body"],message:"Every form option needs a unique label."}),step.recommended&&!labels2.includes(step.recommended)&&ctx.addIssue({code:"custom",path:["recommended"],message:"The recommended option must match a visible option label."}),step.body.type==="capabilities"&&step.multiSelect===!1&&ctx.addIssue({code:"custom",path:["multiSelect"],message:"A capabilities step is always multi-select: selected is approved, unselected is denied."})}).transform(step=>({...step,multiSelect:step.multiSelect??step.body.type==="capabilities"})),CHAT_FORM_INTERNAL_NOTE_MAX=1e3,FormBlockSchema=BlockBaseSchema.extend({type:z32.literal("form"),steps:z32.array(ChatFormStepSchema).min(1).max(4),internalNote:z32.string().trim().min(1).max(CHAT_FORM_INTERNAL_NOTE_MAX).optional()}),ChatBlockSchema=z32.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,AgentBlockSchema,FormBlockSchema]),ChatBlockToolInputSchema=z32.object({block:ChatBlockSchema}),ChatFormAnswerItemSchema=z32.object({stepId:ChatFormStepIdSchema.optional(),header:z32.string().min(1).max(25),question:z32.string().min(1).max(500),answer:z32.string().min(1),selectedLabels:z32.array(z32.string().min(1).max(120)).max(8),freeText:z32.string(),skipped:z32.boolean()}),ChatFormAnswerMetadataSchema=z32.object({toolCallId:z32.string().max(255).optional(),shortTitle:z32.string().max(80).optional(),questions:z32.array(ChatFormAnswerItemSchema).max(4)}),QUESTION_FORM_CONTRACT_VERSION=1,QuestionFormSnapshotSchema=z32.object({version:z32.literal(QUESTION_FORM_CONTRACT_VERSION),block:FormBlockSchema}).strict(),QuestionFormAnswerSnapshotSchema=z32.object({version:z32.literal(QUESTION_FORM_CONTRACT_VERSION),answer:ChatFormAnswerMetadataSchema}).strict(),ChatFormResponseSchema=ChatFormAnswerMetadataSchema.extend({toolCallId:z32.string().min(1).max(255),partial:z32.boolean().optional()})}});import{z as z33}from"zod";var AdminTargetSchema,AdminToneSchema,AdminStatusSchema,AdminLinkSchema,AdminActionSchema,BlockBaseSchema2,AdminRecordBlockSchema,AdminCardsBlockSchema,AdminTableBlockSchema,AdminTimelineBlockSchema,AdminStatsBlockSchema,AdminExcerptBlockSchema,AdminMediaBlockSchema,AdminActionsBlockSchema,AdminHandoffBlockSchema,AdminChatBlockSchema,AdminChatBlockToolInputSchema,init_admin_chat_block=__esm({"../../packages/api-contracts/dist/esm/types/admin-chat-block.js"(){"use strict";init_chat_block();AdminTargetSchema=z33.union([z33.string().regex(/^\/(?!\/)[^\s]*$/,"Admin paths start with a single slash, e.g. /projects/<id>.").max(500),z33.url({protocol:/^https$/}).max(2e3)]),AdminToneSchema=z33.enum(["ok","warn","bad","neutral"]),AdminStatusSchema=z33.object({label:z33.string().trim().min(1).max(24),tone:AdminToneSchema}),AdminLinkSchema=z33.object({label:z33.string().trim().min(1).max(24),target:AdminTargetSchema}),AdminActionSchema=z33.discriminatedUnion("kind",[BlockSayActionSchema,z33.object({kind:z33.literal("open"),label:z33.string().trim().min(1).max(32),target:AdminTargetSchema}).strict(),z33.object({kind:z33.literal("op"),label:z33.string().trim().min(1).max(32),operation:z33.string().min(1).max(80),input:z33.record(z33.string(),z33.unknown())}).strict(),z33.object({kind:z33.literal("impersonate"),label:z33.string().trim().min(1).max(32),userId:z33.string().min(1).max(120)}).strict(),z33.object({kind:z33.literal("studio"),label:z33.string().trim().min(1).max(32),projectId:z33.string().min(1).max(120)}).strict()]),BlockBaseSchema2=z33.object({fallback:z33.string().trim().min(1,"Every block needs a fallback line for clients that cannot render it.").max(500),title:z33.string().min(1).max(80).optional()}),AdminRecordBlockSchema=BlockBaseSchema2.extend({type:z33.literal("record"),kind:z33.string().trim().min(1).max(24),name:z33.string().trim().min(1).max(80),id:z33.string().min(1).max(120).optional(),status:AdminStatusSchema.optional(),fields:z33.array(z33.object({label:z33.string().trim().min(1).max(24),value:z33.string().min(1).max(80)})).max(4,"A record shows at most 4 fields.").optional(),links:z33.array(AdminLinkSchema).max(2,"A record shows at most 2 links.").optional(),actions:z33.array(AdminActionSchema).max(3).optional()}),AdminCardsBlockSchema=BlockBaseSchema2.extend({type:z33.literal("cards"),items:z33.array(z33.object({name:z33.string().trim().min(1).max(60),subtitle:z33.string().min(1).max(80).optional(),status:AdminStatusSchema.optional(),imageUrl:z33.url({protocol:/^https$/}).max(2e3).optional(),target:AdminTargetSchema.optional()})).min(2).max(6)}),AdminTableBlockSchema=BlockBaseSchema2.extend({type:z33.literal("table"),columns:z33.array(z33.object({label:z33.string().min(1).max(24)})).min(2).max(3,"A table shows at most 3 columns."),rows:z33.array(z33.object({cells:z33.array(z33.string().max(80)).min(2).max(3),tone:AdminToneSchema.optional(),target:AdminTargetSchema.optional()})).min(1).max(8)}).superRefine((table,ctx)=>{table.rows.forEach((row2,index)=>{row2.cells.length!==table.columns.length&&ctx.addIssue({code:"custom",path:["rows",index,"cells"],message:`Every table row needs exactly ${table.columns.length} cells, one for each column.`})})}),AdminTimelineBlockSchema=BlockBaseSchema2.extend({type:z33.literal("timeline"),events:z33.array(z33.object({at:z33.string().trim().min(1).max(16),label:z33.string().trim().min(1).max(80),detail:z33.string().min(1).max(80).optional(),tone:AdminToneSchema,target:AdminTargetSchema.optional()})).min(2).max(6)}),AdminStatsBlockSchema=BlockBaseSchema2.extend({type:z33.literal("stats"),items:z33.array(z33.object({label:z33.string().min(1).max(24),value:z33.string().min(1).max(16),delta:z33.string().min(1).max(12).optional()})).min(1).max(4)}),AdminExcerptBlockSchema=BlockBaseSchema2.extend({type:z33.literal("excerpt"),source:z33.string().trim().min(1).max(60),link:AdminTargetSchema.optional(),content:z33.discriminatedUnion("kind",[z33.object({kind:z33.literal("lines"),lines:z33.array(z33.object({text:z33.string().max(200),highlight:z33.boolean().optional()})).min(1).max(5,"An excerpt shows at most 5 lines.")}),z33.object({kind:z33.literal("message"),author:z33.string().trim().min(1).max(60),at:z33.string().max(24).optional(),text:z33.string().trim().min(1).max(600)})])}),AdminMediaBlockSchema=BlockBaseSchema2.extend({type:z33.literal("media"),items:z33.array(z33.object({url:z33.url({protocol:/^https$/}).max(2e3),alt:z33.string().min(1).max(120),label:z33.string().min(1).max(60).optional()})).min(1).max(6)}),AdminActionsBlockSchema=BlockBaseSchema2.extend({type:z33.literal("actions"),actions:z33.array(AdminActionSchema).min(1).max(3)}),AdminHandoffBlockSchema=BlockBaseSchema2.extend({type:z33.literal("handoff"),prompt:z33.string().trim().min(1).max(4e3)}),AdminChatBlockSchema=z33.discriminatedUnion("type",[AdminRecordBlockSchema,AdminCardsBlockSchema,AdminTableBlockSchema,AdminTimelineBlockSchema,AdminStatsBlockSchema,ChartBlockSchema,AdminExcerptBlockSchema,AdminMediaBlockSchema,ChoicesBlockSchema,AdminActionsBlockSchema,FormBlockSchema,AdminHandoffBlockSchema]),AdminChatBlockToolInputSchema=z33.object({block:AdminChatBlockSchema})}});import{z as z34}from"zod";var CHAT_PORTRAIT_SHAPES,CHAT_PORTRAIT_EYES,CHAT_PORTRAIT_MOUTHS,CHAT_PORTRAIT_COLORS,ChatPortraitSchema,init_chat_portrait=__esm({"../../packages/api-contracts/dist/esm/types/chat-portrait.js"(){"use strict";CHAT_PORTRAIT_SHAPES=["pebble","bean","cloud","drop","potato","mochi","bun","pillow"],CHAT_PORTRAIT_EYES=["dot","caret","ring","shut","small","squint"],CHAT_PORTRAIT_MOUTHS=["smile","grin","o","w"],CHAT_PORTRAIT_COLORS=["red","orange","amber","lime","emerald","teal","sky","blue","indigo","violet","fuchsia","pink"],ChatPortraitSchema=z34.object({shape:z34.enum(CHAT_PORTRAIT_SHAPES),eyes:z34.enum(CHAT_PORTRAIT_EYES),mouth:z34.enum(CHAT_PORTRAIT_MOUTHS),color:z34.enum(CHAT_PORTRAIT_COLORS)})}});import{z as z35}from"zod";function isIanaTimezone(value){try{return new Intl.DateTimeFormat("en-US",{timeZone:value}),!0}catch{return!1}}var ChatRoutineCronSchema,ChatRoutineTimezoneSchema,ChatRoutineScheduleSchema,ChatRoutineNameSchema,ChatRoutineInstructionsSchema,ChatRoutineDescriptionSchema,ChatRoutineModelSchema,ChatRoutineWaitMinutesSchema,ChatRoutineEventTriggerDTOSchema,ChatRoutineEventTriggerInputSchema,ChatRoutineTriggersDTOSchema,ChatRoutineRunOutcomeSchema,ChatRoutineReportSchema,ChatRoutineDTOSchema,ChatRoutineListDTOSchema,AgentHoursUsageDTOSchema,ChatRoutineCreateSchema,ChatRoutineUpdateSchema,ChatRoutineRefusalReasonSchema,ChatRoutineRefusalDTOSchema,ChatRoutineRunStatusSchema,ChatRoutineRunTriggerSchema,ChatRoutineRunStartedBySchema,ChatRoutineRunDTOSchema,ChatRoutineRunListDTOSchema,ChatRoutineRunRequestSchema,ChatRoutineRunOutcomeDTOSchema,init_chat_routine_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat-routine.dto.js"(){"use strict";ChatRoutineCronSchema=z35.string().trim().max(64).regex(/^\S+(?: \S+){4}$/,"A schedule is a five-field cron expression");__name(isIanaTimezone,"isIanaTimezone");ChatRoutineTimezoneSchema=z35.string().trim().min(1).max(64).refine(isIanaTimezone,"Unknown timezone"),ChatRoutineScheduleSchema=z35.object({cron:ChatRoutineCronSchema,timezone:ChatRoutineTimezoneSchema}),ChatRoutineNameSchema=z35.string().trim().min(1).max(120),ChatRoutineInstructionsSchema=z35.string().trim().min(1).max(2e4),ChatRoutineDescriptionSchema=z35.string().trim().min(1).max(500),ChatRoutineModelSchema=z35.string().trim().min(1).max(120),ChatRoutineWaitMinutesSchema=z35.number().int().min(0).max(120),ChatRoutineEventTriggerDTOSchema=z35.object({text:z35.string(),title:z35.string(),explanation:z35.string(),watches:z35.array(z35.object({url:z35.string(),health:z35.enum(["ok","needs_repair","blocked","unstable"]),lastCheckedAt:z35.string().nullable()})).optional()}),ChatRoutineEventTriggerInputSchema=z35.object({text:z35.string().trim().min(1).max(500)}),ChatRoutineTriggersDTOSchema=z35.object({manual:z35.literal(!0),schedule:ChatRoutineScheduleSchema.nullable(),event:ChatRoutineEventTriggerDTOSchema.nullable()}),ChatRoutineRunOutcomeSchema=z35.enum(["quiet","reported","decision","incomplete","failed","running"]),ChatRoutineReportSchema=z35.object({message:z35.string().trim().min(1).max(2e4),decision:z35.boolean().optional(),incomplete:z35.boolean().optional()}).refine(report2=>!(report2.decision===!0&&report2.incomplete===!0),{message:"A run that could not check asks for no decision: set incomplete or decision, not both."}),ChatRoutineDTOSchema=z35.object({id:z35.string().uuid(),threadId:z35.string().uuid(),runThreadId:z35.string().uuid(),name:z35.string(),description:z35.string().nullable(),instructions:z35.string(),template:z35.object({key:z35.string()}).nullable(),triggers:ChatRoutineTriggersDTOSchema,model:z35.string(),modelIsDefault:z35.boolean(),waitMinutes:ChatRoutineWaitMinutesSchema,paused:z35.boolean(),nextRunAt:z35.string().nullable(),lastRunAt:z35.string().nullable(),lastOutcome:ChatRoutineRunOutcomeSchema.nullable(),outOfAgentHoursUntil:z35.string().nullable(),createdAt:z35.string(),updatedAt:z35.string()}),ChatRoutineListDTOSchema=z35.object({routines:z35.array(ChatRoutineDTOSchema)}),AgentHoursUsageDTOSchema=z35.object({usedMs:z35.number().int().min(0),includedMs:z35.number().int().min(0),periodStart:z35.string(),periodEnd:z35.string(),stopsAtIncluded:z35.boolean(),canStart:z35.boolean(),canPayOverage:z35.boolean(),overageRateMicrosPerHour:z35.number().int().nullable(),billedMs:z35.number().int().min(0),billedMicros:z35.number().int().min(0)}),ChatRoutineCreateSchema=z35.object({name:ChatRoutineNameSchema,description:ChatRoutineDescriptionSchema.nullable().optional(),instructions:ChatRoutineInstructionsSchema,schedule:ChatRoutineScheduleSchema.nullable().optional(),event:ChatRoutineEventTriggerInputSchema.nullable().optional(),model:ChatRoutineModelSchema.nullable().optional(),waitMinutes:ChatRoutineWaitMinutesSchema.optional()}),ChatRoutineUpdateSchema=z35.object({name:ChatRoutineNameSchema,description:ChatRoutineDescriptionSchema.nullable(),instructions:ChatRoutineInstructionsSchema,schedule:ChatRoutineScheduleSchema.nullable(),event:ChatRoutineEventTriggerInputSchema.nullable(),model:ChatRoutineModelSchema.nullable(),waitMinutes:ChatRoutineWaitMinutesSchema,paused:z35.boolean()}).partial().refine(update=>Object.values(update).some(value=>value!==void 0),"Change at least one field"),ChatRoutineRefusalReasonSchema=z35.enum(["routine_cadence_too_frequent","routine_schedule_invalid","routine_owner_not_agent","routine_trigger_unsupported","routine_model_unknown","routine_needs_pro","routine_is_default"]),ChatRoutineRefusalDTOSchema=z35.object({message:z35.string(),reason:ChatRoutineRefusalReasonSchema}),ChatRoutineRunStatusSchema=z35.enum(["queued","running","finished","failed","cancelled"]),ChatRoutineRunTriggerSchema=z35.enum(["schedule","hand","event"]),ChatRoutineRunStartedBySchema=z35.object({kind:z35.enum(["person","agent"]),name:z35.string().nullable()}),ChatRoutineRunDTOSchema=z35.object({messageId:z35.string().uuid(),invocationId:z35.string().uuid().nullable(),startedAt:z35.string(),trigger:ChatRoutineRunTriggerSchema,startedBy:ChatRoutineRunStartedBySchema.nullable(),status:ChatRoutineRunStatusSchema,outcome:ChatRoutineRunOutcomeSchema.nullable(),summary:z35.string().nullable(),events:z35.number().int().min(1),durationMs:z35.number().int().min(0).nullable(),credits:z35.number().int().min(0).nullable()}),ChatRoutineRunListDTOSchema=z35.object({runs:z35.array(ChatRoutineRunDTOSchema)}),ChatRoutineRunRequestSchema=z35.object({message:z35.string().trim().min(1).max(2e4).optional()}),ChatRoutineRunOutcomeDTOSchema=z35.object({kind:z35.enum(["published","queued","replay","streaming","busy","refused"]),messageId:z35.string().uuid().nullable()})}});import{z as z36}from"zod";var PROJECT_CHAT_MANUAL_MODEL_IDS,ProjectChatManualModelIdSchema,ProjectDTOSchema,ProjectDTO,UpdateProjectSettingsRequestSchema,ProjectWithPlanDTOSchema,ProjectWithPlanDTO,ProjectSummaryDTOSchema,ProjectSummaryDTO,ProjectUserDTOSchema,ProjectUserDTO,ProjectFileDTOSchema,ProjectFileDTO,ProjectChatMessageRole,ProjectMessageBaseSchema,MessageUserMetadataSchema,ProjectMessagePublicDTOSchema,ProjectMessagePublicDTO,ProjectMessageDTOSchema,ProjectVersionDTOSchema,ProjectVersionDTO,ProjectHistoryUsageDTOSchema,ProjectVersionPageDTOSchema,ProjectVersionPageDTO,ProjectHistorySummaryDTOSchema,ProjectHistorySummaryDTO,ProjectDocumentContentDTOSchema,ProjectDocumentContentDTO,ProjectListResponseSchema,ProjectVersionResponseSchema,ProjectVersionPageResponseSchema,ProjectHistorySummaryResponseSchema,VersionMutationResponseSchema,PublishUpgradeRequiredSchema,ProjectLatestPublicationAttemptSchema,ProjectPublicationStateDTOSchema,ProjectPublicationStateDTO,PublishProjectRequestSchema,PublicationMutationDTOSchema,PublicationMutationDTO,ProjectPublicationStateResponseSchema,PublicationMutationResponseSchema,ProjectResponseSchema,ProjectWithPlanResponseSchema,init_project_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project.dto.js"(){"use strict";init_chat_block();init_common();init_env();init_create_dto();init_response();PROJECT_CHAT_MANUAL_MODEL_IDS=["anthropic/claude-opus-5.5","anthropic/claude-opus-5","anthropic/claude-sonnet-5.5","anthropic/claude-sonnet-5","anthropic/claude-fable-5","anthropic/claude-haiku-5.5","openai/gpt-5.6-luna","openai/gpt-5.6-terra","openai/gpt-5.6-sol","openai/gpt-6-astra","openai/gpt-6.1-sol","openai/gpt-6-sol","openai/gpt-6-luna","xai/grok-4.6","google/gemini-3.1-pro-preview","google/gemini-3.8-flash","google/gemini-3.7-flash","google/gemini-3.6-flash","google/gemini-3.5-flash-lite","zai/glm-5.2","zai/glm-5.3-flash","deepseek/deepseek-v4-pro","minimax/minimax-m3","moonshotai/kimi-k3"],ProjectChatManualModelIdSchema=z36.enum(PROJECT_CHAT_MANUAL_MODEL_IDS),ProjectDTOSchema=BaseEntitySchema.extend({name:z36.string(),displayName:z36.string().nullable(),subdomain:z36.string().nullable().optional(),subdomainUpdatedAt:z36.date().nullable().optional(),organizationId:z36.string().nullable(),createdBy:z36.string().nullable(),defaultBranch:BranchSchema.default(DEFAULT_BRANCH),productionSourceBranch:BranchSchema.default(DEFAULT_BRANCH),enabledChatModels:z36.array(ProjectChatManualModelIdSchema).nullable().default(null),status:ProjectStatusSchema,creationStatus:z36.string(),thumbnailUrl:z36.string().nullable(),publishedThumbnailUrl:z36.string().nullable(),category:z36.string().nullable(),snapshotUrl:z36.string().startsWith("/").optional(),appUrl:z36.string().nullable(),lastPublishedAt:z36.coerce.date(),databaseQuotaIncidentId:z36.uuid().nullable().optional(),databaseQuotaLastObservedAt:z36.coerce.date().nullable().optional()}),ProjectDTO=createDTO(ProjectDTOSchema),UpdateProjectSettingsRequestSchema=z36.object({name:z36.string().optional(),enabledChatModels:z36.array(ProjectChatManualModelIdSchema).optional(),productionSourceBranch:BranchSchema.optional(),syncConfig:z36.boolean().optional()}).strict(),ProjectWithPlanDTOSchema=ProjectDTOSchema.extend({planTier:z36.string().nullable()}),ProjectWithPlanDTO=createDTO(ProjectWithPlanDTOSchema),ProjectSummaryDTOSchema=z36.object({id:z36.uuid(),name:z36.string(),displayName:z36.string().nullable(),thumbnailUrl:z36.string().nullable(),category:z36.string().nullable()}),ProjectSummaryDTO=createDTO(ProjectSummaryDTOSchema),ProjectUserDTOSchema=z36.object({id:z36.string(),name:z36.string(),avatar:z36.string().nullable(),color:z36.object({bg:z36.string(),text:z36.string()})}),ProjectUserDTO=createDTO(ProjectUserDTOSchema),ProjectFileDTOSchema=z36.object({path:z36.string(),content:z36.string()}),ProjectFileDTO=createDTO(ProjectFileDTOSchema),ProjectChatMessageRole=z36.enum(["user","assistant","system"]),ProjectMessageBaseSchema=z36.object({id:z36.string(),messageId:z36.string(),versionId:z36.string().nullable(),role:ProjectChatMessageRole,parts:z36.array(z36.any()),createdAt:z36.coerce.date()}),MessageUserMetadataSchema=z36.object({id:z36.string(),name:z36.string().nullable().optional(),image:z36.string().nullable().optional()}).nullable().optional(),ProjectMessagePublicDTOSchema=ProjectMessageBaseSchema.extend({credits:z36.number(),metadata:z36.object({user:MessageUserMetadataSchema,changeManifest:z36.array(z36.any()).optional(),questionAnswer:ChatFormAnswerMetadataSchema.optional()}).nullable().optional()}),ProjectMessagePublicDTO=createDTO(ProjectMessagePublicDTOSchema),ProjectMessageDTOSchema=ProjectMessagePublicDTOSchema,ProjectVersionDTOSchema=z36.object({versionId:z36.uuid(),commitHash:z36.string(),name:z36.string(),description:z36.string().nullable(),kind:z36.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),createdAt:CommonSchemas.timestamp,expiresAt:CommonSchemas.timestamp}),ProjectVersionDTO=createDTO(ProjectVersionDTOSchema),ProjectHistoryUsageDTOSchema=z36.object({versionCount:z36.number().int().nonnegative(),snapshotBytes:z36.number().int().nonnegative()}),ProjectVersionPageDTOSchema=createCursorPageDataSchema(ProjectVersionDTOSchema),ProjectVersionPageDTO=createDTO(ProjectVersionPageDTOSchema),ProjectHistorySummaryDTOSchema=z36.object({usage:ProjectHistoryUsageDTOSchema,retentionDays:z36.number().int().positive()}),ProjectHistorySummaryDTO=createDTO(ProjectHistorySummaryDTOSchema),ProjectDocumentContentDTOSchema=z36.object({content:z36.string()}),ProjectDocumentContentDTO=createDTO(ProjectDocumentContentDTOSchema),ProjectListResponseSchema=createResponseSchema(z36.array(ProjectDTOSchema)),ProjectVersionResponseSchema=createResponseSchema(ProjectVersionDTOSchema),ProjectVersionPageResponseSchema=createCursorPaginatedResponseSchema(ProjectVersionDTOSchema),ProjectHistorySummaryResponseSchema=createResponseSchema(ProjectHistorySummaryDTOSchema),VersionMutationResponseSchema=createResponseSchema(z36.object({success:z36.boolean(),message:z36.string().optional(),warning:z36.string().optional(),durationMs:z36.number().int().nonnegative().optional()})),PublishUpgradeRequiredSchema=z36.object({code:z36.literal("PUBLISH_UPGRADE_REQUIRED"),message:z36.string(),currentVersion:z36.number().int().positive(),targetVersion:z36.literal(4)}),ProjectLatestPublicationAttemptSchema=z36.object({publicationId:z36.uuid(),status:z36.enum(["queued","building","published","failed","canceled"]),failureCode:z36.string().nullable(),sourceBranch:z36.string(),createdAt:CommonSchemas.timestamp,finishedAt:CommonSchemas.timestamp.nullable()}),ProjectPublicationStateDTOSchema=z36.object({isPublished:z36.boolean(),publishedAt:CommonSchemas.timestamp.nullable(),publishedVersion:z36.string().nullable(),upgradeRequired:PublishUpgradeRequiredSchema.nullish(),hasActiveRelease:z36.boolean().optional(),latestAttempt:ProjectLatestPublicationAttemptSchema.nullish()}),ProjectPublicationStateDTO=createDTO(ProjectPublicationStateDTOSchema),PublishProjectRequestSchema=z36.object({label:z36.string().trim().min(1).max(120).optional(),notes:z36.string().max(2e4).optional()}).strict(),PublicationMutationDTOSchema=z36.object({success:z36.boolean(),message:z36.string().optional(),publishedAt:CommonSchemas.timestamp.optional(),firstPublish:z36.boolean(),publicationId:z36.string().optional(),url:z36.string().nullable().optional()}),PublicationMutationDTO=createDTO(PublicationMutationDTOSchema),ProjectPublicationStateResponseSchema=createResponseSchema(ProjectPublicationStateDTOSchema),PublicationMutationResponseSchema=createResponseSchema(PublicationMutationDTOSchema),ProjectResponseSchema=createResponseSchema(ProjectDTOSchema),ProjectWithPlanResponseSchema=createResponseSchema(ProjectWithPlanDTOSchema)}});import{z as z37}from"zod";var ChatMessageListDTOSchema,ChatMessagesPageDTOSchema,ChatLiveTurnDTOSchema,ChatLiveTurnStateDTOSchema,ChatLiveTurnStateDTO,ChatMessageAuthorDTOSchema,ChatThreadMessageDTOSchema,ChatQueuedMessageDTOSchema,ChatAttentionDTOSchema,ChatThreadMessagesPageDTOSchema,ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema,ChatNonStreamingOutcomeDTOSchema,ProjectChatKindSchema,ProjectChatCreatableKindSchema,ProjectChatRoutinesDTOSchema,ProjectChatDescriptionSchema,ProjectChatInstructionsSchema,ProjectChatDTOSchema,ProjectChatListDTOSchema,ProjectChatCreatedDTOSchema,ProjectChatTitleSchema,ProjectChatCreateSchema,ProjectChatUpdateSchema,ChatTemplateRoutineScheduleDTOSchema,ChatTemplateRoutineDTOSchema,ChatTemplateDTOSchema,ChatTemplateListDTOSchema,ProjectChatStateSchema,ChatMessageListResponseSchema,ChatMessagesPageResponseSchema,init_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat.dto.js"(){"use strict";init_chat_portrait();init_create_dto();init_response();init_chat_routine_dto();init_organization_features_dto();init_project_dto();ChatMessageListDTOSchema=z37.array(ProjectMessageDTOSchema),ChatMessagesPageDTOSchema=z37.object({items:z37.array(ProjectMessagePublicDTOSchema),nextCursor:z37.string().nullable()}),ChatLiveTurnDTOSchema=z37.object({invocationId:z37.string(),step:z37.enum(["preparing","working","compacting","merging"]),startedAt:z37.string(),continuesInvocationId:z37.string().nullable().optional()}),ChatLiveTurnStateDTOSchema=z37.object({threadId:z37.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable()}),ChatLiveTurnStateDTO=createDTO(ChatLiveTurnStateDTOSchema),ChatMessageAuthorDTOSchema=z37.object({kind:z37.enum(["person","agent","routine","system"]),id:z37.string().nullable()}),ChatThreadMessageDTOSchema=z37.object({id:z37.string(),role:z37.enum(["user","assistant"]),parts:z37.array(z37.unknown()),metadata:z37.record(z37.string(),z37.unknown()).nullable(),versionId:z37.string().nullable().optional(),createdAt:z37.date().transform(value=>value.toISOString()),providerMessageId:z37.string().nullable().optional(),author:ChatMessageAuthorDTOSchema,invocationId:z37.string().nullable().optional(),invocationStatus:z37.string().nullable().optional(),invocationTerminalReason:z37.string().nullable().optional()}),ChatQueuedMessageDTOSchema=z37.object({id:z37.string(),parts:z37.array(z37.unknown()),metadata:z37.record(z37.string(),z37.unknown()).nullable(),providerMessageId:z37.string().nullable().optional(),author:ChatMessageAuthorDTOSchema,failed:z37.boolean(),queuedAt:z37.date().transform(value=>value.toISOString())}),ChatAttentionDTOSchema=z37.object({type:z37.literal("merge_conflict"),merge:z37.object({mergeId:z37.string().uuid(),projectId:z37.string(),fromBranch:z37.string(),toBranch:z37.string()}),publishAfterMerge:z37.boolean()}),ChatThreadMessagesPageDTOSchema=z37.object({threadId:z37.string().nullable(),title:z37.string().nullable(),messages:z37.array(ChatThreadMessageDTOSchema),nextCursor:z37.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable().optional(),attention:ChatAttentionDTOSchema.nullable().optional(),queue:z37.array(ChatQueuedMessageDTOSchema).optional(),queuePaused:z37.boolean().optional(),queueWaitUntil:z37.string().nullable().optional()}),ChatReplayOutcomeDTOSchema=z37.object({kind:z37.literal("replay"),threadId:z37.string(),userMessageId:z37.string()}),ChatQueuedOutcomeDTOSchema=z37.object({kind:z37.literal("queued"),threadId:z37.string(),userMessageId:z37.string(),blockingRootId:z37.string().optional()}),ChatBusyOutcomeDTOSchema=z37.object({kind:z37.literal("busy"),threadId:z37.string(),userMessageId:z37.string(),blockingRootId:z37.string().optional()}),ChatRefusedOutcomeDTOSchema=z37.object({kind:z37.literal("refused"),threadId:z37.string(),userMessageId:z37.string(),refusedInvocationId:z37.string(),terminalReason:z37.string()}),ChatNonStreamingOutcomeDTOSchema=z37.discriminatedUnion("kind",[ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema]),ProjectChatKindSchema=z37.enum(["chat","agent","routine","task"]),ProjectChatCreatableKindSchema=z37.enum(["chat","agent"]),ProjectChatRoutinesDTOSchema=z37.object({quietRuns:z37.number().int().nonnegative(),since:z37.string().nullable(),lastOutcome:ChatRoutineRunOutcomeSchema.nullable(),lastRunAt:z37.string().nullable(),nextRunAt:z37.string().nullable(),wakesOnChanges:z37.boolean()}),ProjectChatDescriptionSchema=z37.string().trim().max(2e3),ProjectChatInstructionsSchema=z37.string().trim().max(8e3),ProjectChatDTOSchema=z37.object({id:z37.string().uuid(),kind:ProjectChatKindSchema,title:z37.string().nullable(),description:z37.string().nullable(),instructions:z37.string().nullable(),liveAt:z37.string().nullable(),template:z37.string().nullable(),parentThreadId:z37.string().uuid().nullable(),routines:ProjectChatRoutinesDTOSchema.nullable(),createdAt:z37.string(),lastMessageAt:z37.string().nullable(),preview:z37.string().nullable(),running:z37.boolean(),awaitingAnswer:z37.boolean(),unread:z37.boolean(),pinned:z37.boolean(),archived:z37.boolean(),muted:z37.boolean(),portrait:ChatPortraitSchema.nullable()}),ProjectChatListDTOSchema=z37.object({chats:z37.array(ProjectChatDTOSchema)}),ProjectChatCreatedDTOSchema=z37.object({id:z37.string().uuid()}),ProjectChatTitleSchema=z37.string().trim().min(1).max(120),ProjectChatCreateSchema=z37.object({id:z37.string().uuid(),portrait:ChatPortraitSchema,kind:ProjectChatCreatableKindSchema,title:ProjectChatTitleSchema,description:ProjectChatDescriptionSchema,template:z37.string().min(1).max(64),timezone:ChatRoutineTimezoneSchema,setup:z37.literal(!0),locale:z37.string().trim().min(2).max(16)}).partial().refine(create=>create.template===void 0||create.kind===void 0&&create.title===void 0&&create.description===void 0,"A template brings its own kind, title and description").refine(create=>create.setup===void 0||create.kind==="agent","Only an agent is set up in its chat"),ProjectChatUpdateSchema=z37.object({title:ProjectChatTitleSchema,description:ProjectChatDescriptionSchema,instructions:ProjectChatInstructionsSchema,portrait:ChatPortraitSchema}).partial().refine(update=>update.title!==void 0||update.description!==void 0||update.instructions!==void 0||update.portrait!==void 0,"Set a title, a description, instructions or a portrait"),ChatTemplateRoutineScheduleDTOSchema=z37.object({cron:z37.string()}),ChatTemplateRoutineDTOSchema=z37.object({name:z37.string(),description:z37.string(),instructions:z37.string(),schedule:ChatTemplateRoutineScheduleDTOSchema.nullable(),plans:z37.array(AgentPlanSchema)}),ChatTemplateDTOSchema=z37.object({id:z37.string(),name:z37.string(),summary:z37.string(),description:z37.string(),greeting:z37.string(),starters:z37.array(z37.string()),portrait:ChatPortraitSchema,plans:z37.array(AgentPlanSchema),routines:z37.array(ChatTemplateRoutineDTOSchema)}),ChatTemplateListDTOSchema=z37.object({templates:z37.array(ChatTemplateDTOSchema)}),ProjectChatStateSchema=z37.object({read:z37.boolean(),pinned:z37.boolean(),archived:z37.boolean(),muted:z37.boolean()}).partial().refine(state=>Object.keys(state).length>0,"Set at least one of read, pinned, archived or muted"),ChatMessageListResponseSchema=createResponseSchema(ChatMessageListDTOSchema),ChatMessagesPageResponseSchema=createResponseSchema(ChatMessagesPageDTOSchema)}});import{z as z38}from"zod";var ADMIN_ASSISTANT_BASE_PATH,ADMIN_ASSISTANT_PATHS,ADMIN_ASSISTANT_MESSAGE_MAX_CHARS,ADMIN_ASSISTANT_FORM_NOTE_MAX_CHARS,ADMIN_ASSISTANT_REQUEST_MAX_BYTES,AdminAssistantFormResponseSchema,AdminAssistantOutgoingMessageSchema,AdminAssistantSendRequestSchema,AdminAssistantSendOutcomeSchema,AdminAssistantStreamHeadSchema,AdminAssistantThreadSummarySchema,AdminAssistantThreadListQuerySchema,AdminAssistantThreadListResponseSchema,AdminAssistantThreadResponseSchema,AdminAssistantLiveTurnResponseSchema,AdminAssistantAbortResponseSchema,AdminAssistantThreadUpdateSchema,AdminAssistantThreadDeleteResponseSchema,init_admin_assistant=__esm({"../../packages/api-contracts/dist/esm/types/admin-assistant.js"(){"use strict";init_chat_dto();init_chat_block();ADMIN_ASSISTANT_BASE_PATH="/api/ops/assistant",ADMIN_ASSISTANT_PATHS={chat:`${ADMIN_ASSISTANT_BASE_PATH}/chat`,threads:`${ADMIN_ASSISTANT_BASE_PATH}/threads`,thread:__name(threadId=>`${ADMIN_ASSISTANT_BASE_PATH}/threads/${encodeURIComponent(threadId)}`,"thread"),live:__name(threadId=>`${ADMIN_ASSISTANT_BASE_PATH}/threads/${encodeURIComponent(threadId)}/live`,"live"),stream:__name(threadId=>`${ADMIN_ASSISTANT_BASE_PATH}/threads/${encodeURIComponent(threadId)}/stream`,"stream"),abort:__name(threadId=>`${ADMIN_ASSISTANT_BASE_PATH}/threads/${encodeURIComponent(threadId)}/abort`,"abort")},ADMIN_ASSISTANT_MESSAGE_MAX_CHARS=2e4,ADMIN_ASSISTANT_FORM_NOTE_MAX_CHARS=4e3,ADMIN_ASSISTANT_REQUEST_MAX_BYTES=256*1024,AdminAssistantFormResponseSchema=ChatFormResponseSchema.extend({questions:z38.array(ChatFormAnswerItemSchema.extend({answer:z38.string().min(1).max(ADMIN_ASSISTANT_FORM_NOTE_MAX_CHARS+1200),freeText:z38.string().max(ADMIN_ASSISTANT_FORM_NOTE_MAX_CHARS)})).max(4)}),AdminAssistantOutgoingMessageSchema=z38.object({id:z38.string().min(1).max(255).regex(/^(app|e2e):/,"Message ids from a client start with app:"),text:z38.string().max(ADMIN_ASSISTANT_MESSAGE_MAX_CHARS)}).strict(),AdminAssistantSendRequestSchema=z38.object({threadId:z38.string().uuid().optional(),message:AdminAssistantOutgoingMessageSchema,formResponse:AdminAssistantFormResponseSchema.optional()}).strict().superRefine((body,context)=>{body.message.text.trim().length===0&&!body.formResponse&&context.addIssue({code:"custom",path:["message","text"],message:"A message cannot be empty."})}),AdminAssistantSendOutcomeSchema=z38.discriminatedUnion("kind",[z38.object({kind:z38.literal("replay"),threadId:z38.string(),userMessageId:z38.string()}),z38.object({kind:z38.literal("queued"),threadId:z38.string(),userMessageId:z38.string(),blockingRootId:z38.string().optional()}),z38.object({kind:z38.literal("busy"),threadId:z38.string(),userMessageId:z38.string(),blockingRootId:z38.string().optional()}),z38.object({kind:z38.literal("refused"),threadId:z38.string(),userMessageId:z38.string(),refusedInvocationId:z38.string(),terminalReason:z38.string()})]),AdminAssistantStreamHeadSchema=z38.object({kind:z38.literal("turn"),threadId:z38.string(),userMessageId:z38.string(),invocationId:z38.string()}),AdminAssistantThreadSummarySchema=z38.object({id:z38.string().uuid(),title:z38.string().nullable(),lastMessageAt:z38.string().nullable(),createdAt:z38.string()}),AdminAssistantThreadListQuerySchema=z38.object({q:z38.string().trim().max(200).optional(),cursor:z38.string().max(500).optional(),limit:z38.coerce.number().int().min(1).max(100).optional()}),AdminAssistantThreadListResponseSchema=z38.object({threads:z38.array(AdminAssistantThreadSummarySchema),nextCursor:z38.string().nullable()}),AdminAssistantThreadResponseSchema=z38.object({thread:AdminAssistantThreadSummarySchema.extend({createdBy:z38.string().nullable()}),messages:z38.array(ChatThreadMessageDTOSchema),liveTurn:ChatLiveTurnDTOSchema.nullable()}),AdminAssistantLiveTurnResponseSchema=z38.object({threadId:z38.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable()}),AdminAssistantAbortResponseSchema=z38.object({aborted:z38.boolean()}),AdminAssistantThreadUpdateSchema=z38.object({title:ProjectChatTitleSchema}).strict(),AdminAssistantThreadDeleteResponseSchema=z38.object({deleted:z38.literal(!0)})}});import{z as z39}from"zod";function normalizeStoredBlock(block){if(typeof block!="object"||block===null||Array.isArray(block))return block;let{type,...rest}=block;if(typeof type!="string")return block;let target=LEGACY_BLOCK_TYPES[type];return target?target==="viz"?{...rest,type:target,kind:"bar"}:{...rest,type:target}:block}function normalizeStoredBlocks(blocks){return Array.isArray(blocks)?blocks.map(normalizeStoredBlock):blocks}function normalizeStoredDocument(document){if(typeof document!="object"||document===null||Array.isArray(document))return document;let source=document;return{...source,brief:normalizeStoredBlocks(source.brief),details:normalizeStoredBlocks(source.details)}}function derivedBlockBody(block){let lines=[];switch(block.type){case"text":lines.push(block.text);break;case"metric":for(let item of block.items)lines.push([`${item.value}${item.unit??""}`,item.label].join(" \u2014 ")),item.note&&lines.push(item.note);break;case"viz":lines.push(block.points.map(point=>`${point.label}: ${formatReportValue(point.value,block.unit)}`).join(", ")),block.caption&&lines.push(block.caption);break;case"list":for(let item of block.items)lines.push([item.label,item.heading].filter(Boolean).join(" \u2014 ")),item.body&&lines.push(item.body),item.evidence&&lines.push(item.evidence);break;case"table":lines.push(block.columns.map(column=>column.label).join(" | "));for(let row2 of block.rows)lines.push(row2.cells.map(cell=>cell.text).join(" | "));block.caption&&lines.push(block.caption);break;case"media":lines.push(block.alt),block.caption&&lines.push(block.caption);break;case"links":for(let item of block.items)lines.push([`${item.label}: ${item.url}`,item.description].filter(Boolean).join(" \u2014 "));break;case"code":lines.push(block.code),block.caption&&lines.push(block.caption);break}return lines.join(`
5
- `)}function reportSectionContentLength(blocks){return blocks.reduce((total,block)=>total+(block.title?.length??0)+derivedBlockBody(block).length+(block.fallback?.length??0),0)}function formatReportNumber(value){return Number.isInteger(value)?String(value):String(Number(value.toFixed(2)))}function formatReportValue(value,unit){let formatted=formatReportNumber(value);return unit?`${formatted}${new RegExp("^\\p{L}","u").test(unit)?" ":""}${unit}`:formatted}var REPORT_TITLE_MAX_CHARS,REPORT_BRIEF_MAX_BLOCKS,REPORT_DETAILS_MAX_BLOCKS,REPORT_BRIEF_MAX_CHARS,REPORT_DETAILS_MAX_CHARS,REPORT_TEXT_MAX_CHARS,REPORT_CODE_MAX_CHARS,REPORT_TONES,ReportToneSchema,blockCommon,ReportTextBlockSchema,ReportMetricBlockSchema,REPORT_VIZ_KINDS,ReportVizKindSchema,ReportVizBlockSchema,ReportListBlockSchema,ReportTableBlockSchema,ReportMediaBlockSchema,ReportLinksBlockSchema,ReportCodeBlockSchema,ReportBlockSchema,ReportDocumentSchema,ReportBriefSchema,LEGACY_BLOCK_TYPES,StoredReportBriefSchema,StoredReportDocumentSchema,init_agent_report=__esm({"../../packages/api-contracts/dist/esm/types/agent-report.js"(){"use strict";REPORT_TITLE_MAX_CHARS=120,REPORT_BRIEF_MAX_BLOCKS=6,REPORT_DETAILS_MAX_BLOCKS=40,REPORT_BRIEF_MAX_CHARS=4e3,REPORT_DETAILS_MAX_CHARS=48e3,REPORT_TEXT_MAX_CHARS=4e3,REPORT_CODE_MAX_CHARS=8e3,REPORT_TONES=["critical","warning","info","neutral"],ReportToneSchema=z39.enum(REPORT_TONES),blockCommon={title:z39.string().trim().min(1).max(120).optional(),fallback:z39.string().trim().min(1).max(600).optional()},ReportTextBlockSchema=z39.object({type:z39.literal("text"),...blockCommon,text:z39.string().trim().min(1).max(REPORT_TEXT_MAX_CHARS)}).strict().describe("Short connective context or a conclusion with no better structure. Never a multi-item dump."),ReportMetricBlockSchema=z39.object({type:z39.literal("metric"),...blockCommon,items:z39.array(z39.object({value:z39.string().trim().min(1).max(24),unit:z39.string().trim().min(1).max(12).optional(),label:z39.string().trim().min(1).max(160),note:z39.string().trim().min(1).max(300).optional()}).strict()).min(1).max(3),spark:z39.array(z39.number().finite()).min(2).max(24).optional()}).strict().describe("1-3 numbers that materially communicate state, scale, or success. Do not promote incidental counts."),REPORT_VIZ_KINDS=["bar","line","area","composition"],ReportVizKindSchema=z39.enum(REPORT_VIZ_KINDS),ReportVizBlockSchema=z39.object({type:z39.literal("viz"),...blockCommon,kind:ReportVizKindSchema.describe("bar: compare named quantities. line/area: change across an ordered sequence. composition: parts of one whole."),unit:z39.string().trim().min(1).max(12).optional(),points:z39.array(z39.object({label:z39.string().trim().min(1).max(24),value:z39.number().finite(),highlight:z39.boolean().optional()}).strict()).min(2).max(24),caption:z39.string().trim().min(1).max(600).optional()}).strict().describe("Only when comparison, relationship, distribution, persistence, or change over time is itself the point. Never decorative.").superRefine((block,ctx)=>{block.points.filter(point=>point.highlight).length>1&&ctx.addIssue({code:"custom",path:["points"],message:"Highlight at most one point."}),block.kind==="composition"&&block.points.forEach((point,index)=>{point.value<0&&ctx.addIssue({code:"custom",path:["points",index,"value"],message:"A composition holds parts of one whole, so every value must be zero or more."})})}),ReportListBlockSchema=z39.object({type:z39.literal("list"),...blockCommon,items:z39.array(z39.object({tone:ReportToneSchema.optional(),label:z39.string().trim().min(1).max(24).optional(),heading:z39.string().trim().min(1).max(160).describe("The human-visible result, action, or consequence, readable on its own."),body:z39.string().trim().min(1).max(1200).optional().describe("One short explanation of why it matters."),evidence:z39.string().trim().min(1).max(600).optional().describe("Exact supporting proof: paths, keys, literal values, compact measurements.")}).strict()).min(1).max(12)}).strict().describe("Ranked items sharing one hierarchy: findings, recommendations, steps, sources, or a single callout. heading = human consequence, body = why it matters, evidence = the technical proof. Do not repeat the report title."),ReportTableBlockSchema=z39.object({type:z39.literal("table"),...blockCommon,columns:z39.array(z39.object({label:z39.string().trim().min(1).max(32)}).strict()).min(1).max(6),rows:z39.array(z39.object({cells:z39.array(z39.object({text:z39.string().trim().max(160),tone:ReportToneSchema.optional()}).strict()).min(1).max(6)}).strict()).min(1).max(40),caption:z39.string().trim().min(1).max(600).optional()}).strict().describe("Repeated entities sharing the same attributes. Use instead of parallel prose.").superRefine((block,ctx)=>{block.rows.forEach((row2,index)=>{row2.cells.length!==block.columns.length&&ctx.addIssue({code:"custom",path:["rows",index,"cells"],message:`Every row needs exactly ${block.columns.length} cells, one per column.`})})}),ReportMediaBlockSchema=z39.object({type:z39.literal("media"),...blockCommon,assetId:z39.uuid(),alt:z39.string().trim().min(1).max(300),caption:z39.string().trim().min(1).max(600).optional()}).strict().describe("Only visual or recorded evidence, or a media deliverable: a before/after, a layout defect, a generated asset. Never decoration."),ReportLinksBlockSchema=z39.object({type:z39.literal("links"),...blockCommon,items:z39.array(z39.object({label:z39.string().trim().min(1).max(120),url:z39.url({protocol:/^https$/}).max(2e3),description:z39.string().trim().min(1).max(300).optional()}).strict()).min(1).max(8)}).strict().describe("A destination, evidence source, or next action worth opening."),ReportCodeBlockSchema=z39.object({type:z39.literal("code"),...blockCommon,language:z39.string().regex(/^[a-z0-9+#-]{1,20}$/,"A language is a short lowercase token, e.g. ts, json, bash.").optional(),code:z39.string().min(1).max(REPORT_CODE_MAX_CHARS),caption:z39.string().trim().min(1).max(600).optional()}).strict().describe("An exact snippet that is decisive evidence. Never a log dump."),ReportBlockSchema=z39.discriminatedUnion("type",[ReportTextBlockSchema,ReportMetricBlockSchema,ReportListBlockSchema,ReportTableBlockSchema,ReportVizBlockSchema,ReportMediaBlockSchema,ReportLinksBlockSchema,ReportCodeBlockSchema]),ReportDocumentSchema=z39.object({title:z39.string().trim().min(1).max(REPORT_TITLE_MAX_CHARS),brief:z39.array(ReportBlockSchema).min(1).max(REPORT_BRIEF_MAX_BLOCKS),details:z39.array(ReportBlockSchema).max(REPORT_DETAILS_MAX_BLOCKS)}).strict().superRefine((document,ctx)=>{let brief=reportSectionContentLength(document.brief);brief>REPORT_BRIEF_MAX_CHARS&&ctx.addIssue({code:"custom",path:["brief"],message:`The brief holds ${brief} characters of content; keep it under ${REPORT_BRIEF_MAX_CHARS}. Move evidence into details.`});let details=reportSectionContentLength(document.details);details>REPORT_DETAILS_MAX_CHARS&&ctx.addIssue({code:"custom",path:["details"],message:`The details hold ${details} characters of content; the limit is ${REPORT_DETAILS_MAX_CHARS}.`})}),ReportBriefSchema=z39.array(ReportBlockSchema).min(1).max(REPORT_BRIEF_MAX_BLOCKS),LEGACY_BLOCK_TYPES={findings:"list",series:"viz",image:"media"};__name(normalizeStoredBlock,"normalizeStoredBlock");__name(normalizeStoredBlocks,"normalizeStoredBlocks");__name(normalizeStoredDocument,"normalizeStoredDocument");StoredReportBriefSchema=z39.preprocess(normalizeStoredBlocks,ReportBriefSchema),StoredReportDocumentSchema=z39.preprocess(normalizeStoredDocument,ReportDocumentSchema);__name(derivedBlockBody,"derivedBlockBody");__name(reportSectionContentLength,"reportSectionContentLength");__name(formatReportNumber,"formatReportNumber");__name(formatReportValue,"formatReportValue")}});import{z as z40}from"zod";var FIMO_CONFIG_PATH,LEGACY_FIMO_CONFIG_PATHS,ALL_FIMO_CONFIG_PATHS,FimoFrameworkSchema,FimoRuntimeCommandsSchema,FimoRuntimeConfigSchema,FimoHostingConditionSchema,conditionFields,FimoHostingRewriteSchema,FimoHostingRedirectSchema,FimoHostingHeaderSchema,FimoHostingConfigSchema,FimoAppConfigSchema,init_fimo_config=__esm({"../../packages/api-contracts/dist/esm/types/fimo-config.js"(){"use strict";FIMO_CONFIG_PATH=".fimo/config.json",LEGACY_FIMO_CONFIG_PATHS=["fimo-config.json","fimo.config.json"],ALL_FIMO_CONFIG_PATHS=[FIMO_CONFIG_PATH,...LEGACY_FIMO_CONFIG_PATHS],FimoFrameworkSchema=z40.enum(["astro","nextjs","nuxtjs","react-router","remix","sveltekit","vite","vue"]),FimoRuntimeCommandsSchema=z40.object({dev:z40.string().trim().min(1).optional(),build:z40.string().trim().min(1).optional(),install:z40.string().trim().min(1).optional()}).strict(),FimoRuntimeConfigSchema=z40.object({framework:FimoFrameworkSchema.optional(),outputDirectory:z40.string().trim().min(1).optional(),commands:FimoRuntimeCommandsSchema.optional()}).strict(),FimoHostingConditionSchema=z40.object({type:z40.enum(["header","cookie","query","host"]),key:z40.string().min(1).optional(),value:z40.string().min(1).optional()}).strict().superRefine((condition,context)=>{if(condition.type==="host"){condition.key!==void 0&&context.addIssue({code:"custom",path:["key"],message:"A host condition takes no key."}),condition.value===void 0&&context.addIssue({code:"custom",path:["value"],message:"A host condition needs a value."});return}condition.key===void 0&&context.addIssue({code:"custom",path:["key"],message:`A ${condition.type} condition needs the key it matches on.`})}),conditionFields={has:z40.array(FimoHostingConditionSchema).min(1).optional(),missing:z40.array(FimoHostingConditionSchema).min(1).optional()},FimoHostingRewriteSchema=z40.object({source:z40.string().min(1),destination:z40.string().min(1),...conditionFields}),FimoHostingRedirectSchema=z40.object({source:z40.string().min(1),destination:z40.string().min(1),permanent:z40.boolean().optional(),statusCode:z40.union([z40.literal(301),z40.literal(302),z40.literal(307),z40.literal(308)]).optional(),...conditionFields}),FimoHostingHeaderSchema=z40.object({source:z40.string().min(1),headers:z40.array(z40.object({key:z40.string().min(1),value:z40.string()})).min(1),...conditionFields}),FimoHostingConfigSchema=z40.object({rewrites:z40.array(FimoHostingRewriteSchema).optional(),redirects:z40.array(FimoHostingRedirectSchema).optional(),headers:z40.array(FimoHostingHeaderSchema).optional(),cleanUrls:z40.boolean().optional(),trailingSlash:z40.boolean().optional()}).strict(),FimoAppConfigSchema=z40.object({runtime:FimoRuntimeConfigSchema.optional(),hosting:FimoHostingConfigSchema.optional()}).passthrough().superRefine((config,context)=>{Object.hasOwn(config,"framework")&&context.addIssue({code:"custom",path:["framework"],message:"Use runtime.framework instead of the top-level framework field."})})}});function isEntryParamBinding(binding){return binding!==void 0&&(binding.type??"entry")==="entry"}function pageRouteParamNames(path50){return[...path50.matchAll(/:([^/*]+)\*?/g)].map(match=>match[1])}function pageContentParamNames(path50,params){return pageRouteParamNames(path50).filter(param=>!LOCALE_PARAM_NAME.test(param)&&params?.[param]?.type!=="external")}function parsePageParamExpression(expression){let match=PARAM_EXPRESSION.exec(expression);return match?{param:match[1],field:match[2]}:null}function fieldValue(entry,fieldPath){let value=entry;for(let segment of fieldPath.split(".")){if(!value||typeof value!="object"||Array.isArray(value))return;value=value[segment]}return value}function queryValue(value){if(Array.isArray(value))return value.map(queryValue);if(value&&typeof value=="object"){let record=value;return typeof record.id=="string"?record.id:Object.fromEntries(Object.entries(record).map(([key,item])=>[key,queryValue(item)]))}return value===void 0?null:value}function resolveValue(value,params){if(typeof value=="string"&&value.startsWith("$params.")){let parsed=parsePageParamExpression(value);if(!parsed)return{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param:"",field:""}};let{param,field}=parsed,entry=params[param];if(!entry)return{ok:!1,error:{code:"PAGE_PARAM_NOT_SELECTED",expression:value,param,field}};let resolved=fieldValue(entry,field);return resolved==null||resolved===""?{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param,field}}:{ok:!0,value:queryValue(resolved)}}if(Array.isArray(value)){let resolved=[];for(let item of value){let result=resolveValue(item,params);if(!result.ok)return result;resolved.push(result.value)}return{ok:!0,value:resolved}}if(value&&typeof value=="object"){let resolved={};for(let[key,item]of Object.entries(value)){let result=resolveValue(item,params);if(!result.ok)return result;resolved[key]=result.value}return{ok:!0,value:resolved}}return{ok:!0,value}}function resolvePageSourceQuery(query={},params){let resolved=resolveValue(query,params);return resolved.ok?{ok:!0,query:resolved.value}:resolved}function pageSourceParamExpressions(value){return typeof value=="string"?value.startsWith("$params.")?[value]:[]:Array.isArray(value)?value.flatMap(pageSourceParamExpressions):value&&typeof value=="object"?Object.values(value).flatMap(pageSourceParamExpressions):[]}var LOCALE_PARAM_NAME,PARAM_EXPRESSION,init_page_sources=__esm({"../../packages/api-contracts/dist/esm/types/page-sources.js"(){"use strict";__name(isEntryParamBinding,"isEntryParamBinding");LOCALE_PARAM_NAME=/^(locale|lang|language)$/i;__name(pageRouteParamNames,"pageRouteParamNames");__name(pageContentParamNames,"pageContentParamNames");PARAM_EXPRESSION=/^\$params\.([A-Za-z_][\w-]*)\.([A-Za-z_][\w.-]*)$/;__name(parsePageParamExpression,"parsePageParamExpression");__name(fieldValue,"fieldValue");__name(queryValue,"queryValue");__name(resolveValue,"resolveValue");__name(resolvePageSourceQuery,"resolvePageSourceQuery");__name(pageSourceParamExpressions,"pageSourceParamExpressions")}});var init_project_files=__esm({"../../packages/api-contracts/dist/esm/types/project-files.js"(){"use strict"}});import{z as z41}from"zod";var ProjectBranchStatusSchema,ProjectBranchKindSchema,ProjectBranchDTOSchema,ProjectBranchDTO,ResolvedBranchEnvironmentDTOSchema,ProjectBranchListItemDTOSchema,ProjectBranchListItemDTO,CreateProjectBranchRequestInputSchema,CreateProjectBranchRequestSchema,SyncProjectBranchRequestSchema,ProjectBranchResponseSchema,ProjectBranchesListResponseSchema,BranchSurfaceDiffSchema,BranchDiffResultSchema,BranchDiffResultDTO,init_project_env_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-env.dto.js"(){"use strict";init_common();init_env();init_environment();init_create_dto();init_response();ProjectBranchStatusSchema=z41.enum(["provisioning","active","deleted"]),ProjectBranchKindSchema=z41.enum(["user","agent-session"]),ProjectBranchDTOSchema=BaseEntitySchema.extend({projectId:z41.uuid(),branch:BranchSchema.optional(),status:ProjectBranchStatusSchema,kind:ProjectBranchKindSchema,parentBranch:BranchSchema.nullable().optional(),createdBy:z41.string().nullable(),deletedAt:z41.coerce.date().nullable(),env:BranchSchema,parentEnv:BranchSchema.nullable()}),ProjectBranchDTO=createDTO(ProjectBranchDTOSchema),ResolvedBranchEnvironmentDTOSchema=z41.object({id:z41.union([z41.literal(PREVIEW_ENVIRONMENT_KEY),z41.uuid()]),name:z41.string()}),ProjectBranchListItemDTOSchema=ProjectBranchDTOSchema.extend({resolvedEnvironment:ResolvedBranchEnvironmentDTOSchema.nullable(),workSession:z41.object({sessionId:z41.uuid(),name:z41.string()}).optional()}),ProjectBranchListItemDTO=createDTO(ProjectBranchListItemDTOSchema),CreateProjectBranchRequestInputSchema=z41.object({branch:BranchSchema.optional(),parentBranch:BranchSchema.optional(),env:BranchSchema.optional(),parentEnv:BranchSchema.optional()}),CreateProjectBranchRequestSchema=CreateProjectBranchRequestInputSchema.superRefine((body,ctx)=>{body.branch===void 0&&body.env===void 0&&ctx.addIssue({code:"custom",path:["branch"],message:"branch is required"}),body.branch!==void 0&&body.env!==void 0&&body.branch!==body.env&&ctx.addIssue({code:"custom",path:["branch"],message:`branch '${body.branch}' and the deprecated env '${body.env}' disagree \u2014 send one, or send both with the same value`}),body.parentBranch!==void 0&&body.parentEnv!==void 0&&body.parentBranch!==body.parentEnv&&ctx.addIssue({code:"custom",path:["parentBranch"],message:`parentBranch '${body.parentBranch}' and the deprecated parentEnv '${body.parentEnv}' disagree \u2014 send one, or send both with the same value`})}).transform(body=>({branch:body.branch??body.env,parentBranch:body.parentBranch??body.parentEnv})),SyncProjectBranchRequestSchema=z41.object({from:BranchSchema.optional()}),ProjectBranchResponseSchema=createResponseSchema(ProjectBranchDTOSchema),ProjectBranchesListResponseSchema=createResponseSchema(z41.array(ProjectBranchListItemDTOSchema)),BranchSurfaceDiffSchema=z41.object({surface:z41.enum(["code","schemas","content","translations","assets","forms"]),status:z41.enum(["unchanged","changed","conflicting","missing-on-target"]),changedCount:z41.number().int().nonnegative(),conflictCount:z41.number().int().nonnegative()}),BranchDiffResultSchema=z41.object({fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),generatedAt:z41.coerce.date(),surfaces:z41.array(BranchSurfaceDiffSchema),fromEnv:BranchSchema,toEnv:BranchSchema}),BranchDiffResultDTO=createDTO(BranchDiffResultSchema)}});import{z as z42}from"zod";var ProjectEnvironmentBaseSchema,ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema,ProjectEnvironmentDTOSchema,ProjectEnvironmentDTO,CreateProjectEnvironmentRequestSchema,ProjectEnvironmentsListResponseSchema,ProjectEnvironmentResponseSchema,DeleteProjectEnvironmentResultSchema,DeleteProjectEnvironmentResponseSchema,init_project_environment_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-environment.dto.js"(){"use strict";init_env();init_environment();init_create_dto();init_response();ProjectEnvironmentBaseSchema=z42.object({projectId:z42.uuid(),name:z42.string()}),ProductionEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z42.literal(PRODUCTION_ENVIRONMENT_KEY),kind:z42.literal("production"),sourceBranch:BranchSchema,isPublished:z42.boolean(),url:z42.string().nullable()}),PreviewEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z42.literal(PREVIEW_ENVIRONMENT_KEY),kind:z42.literal("preview"),matchedBranchCount:z42.number().int().nonnegative()}),CustomProjectEnvironmentDTOSchema=CustomEnvironmentSchema.extend({kind:z42.literal("custom"),matchedBranchCount:z42.number().int().nonnegative()}),ProjectEnvironmentDTOSchema=z42.discriminatedUnion("kind",[ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema]),ProjectEnvironmentDTO=createDTO(ProjectEnvironmentDTOSchema),CreateProjectEnvironmentRequestSchema=CustomEnvironmentSchema.pick({name:!0,branchPatterns:!0,description:!0}).extend({description:z42.string().trim().max(255).nullable().optional().default(null)}),ProjectEnvironmentsListResponseSchema=createResponseSchema(z42.array(ProjectEnvironmentDTOSchema)),ProjectEnvironmentResponseSchema=createResponseSchema(ProjectEnvironmentDTOSchema),DeleteProjectEnvironmentResultSchema=z42.object({deletedId:z42.uuid()}),DeleteProjectEnvironmentResponseSchema=createResponseSchema(DeleteProjectEnvironmentResultSchema)}});import{z as z43}from"zod";var ProjectSecretsListQuerySchema,ProjectSecretWriteRequestSchema,CreateProjectSecretRequestSchema,DeleteProjectSecretQuerySchema,ProjectSecretMetadataDTOSchema,ProjectSecretMetadataDTO,ProjectVariableBaseSchema,ProjectVariableDTOSchema,ProjectVariableDTO,ProjectSecretsListResponseSchema,ProjectSecretResponseSchema,init_project_secret_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-secret.dto.js"(){"use strict";init_environment();init_create_dto();init_response();ProjectSecretsListQuerySchema=z43.object({kind:z43.enum(["variable","secret"]).optional(),environment:EnvironmentKeySchema}),ProjectSecretWriteRequestSchema=z43.object({kind:z43.enum(["variable","secret"]),value:z43.string(),environment:EnvironmentKeySchema}),CreateProjectSecretRequestSchema=ProjectSecretWriteRequestSchema.extend({key:z43.string().min(1).max(255),exposure:z43.enum(["public","private"]).optional()}),DeleteProjectSecretQuerySchema=z43.object({kind:z43.enum(["variable","secret"]),environment:EnvironmentKeySchema}),ProjectSecretMetadataDTOSchema=z43.object({id:z43.uuid(),projectId:z43.uuid(),key:z43.string(),kind:z43.literal("secret"),exposure:z43.literal("private"),environment:EnvironmentKeySchema,maskedValue:z43.string().optional(),createdAt:z43.date().transform(value=>value.toISOString()),updatedAt:z43.date().transform(value=>value.toISOString())}),ProjectSecretMetadataDTO=createDTO(ProjectSecretMetadataDTOSchema),ProjectVariableBaseSchema=z43.object({id:z43.uuid(),projectId:z43.uuid(),key:z43.string(),kind:z43.literal("variable"),environment:EnvironmentKeySchema,managed:z43.boolean(),createdAt:z43.date().transform(value=>value.toISOString()),updatedAt:z43.date().transform(value=>value.toISOString())}),ProjectVariableDTOSchema=z43.discriminatedUnion("exposure",[ProjectVariableBaseSchema.extend({exposure:z43.literal("public"),value:z43.string()}),ProjectVariableBaseSchema.extend({exposure:z43.literal("private"),maskedValue:z43.string().optional()})]),ProjectVariableDTO=createDTO(ProjectVariableDTOSchema),ProjectSecretsListResponseSchema=createResponseSchema(z43.array(ProjectSecretMetadataDTOSchema)),ProjectSecretResponseSchema=createResponseSchema(ProjectSecretMetadataDTOSchema)}});import{z as z44}from"zod";var ExportProjectResponseDTOSchema,ExportProjectResponseDTO,ImportProjectResultDTOSchema,ImportProjectResultDTO,ImportPreviewCountsDTOSchema,ImportPreviewSurfaceDTOSchema,ImportPreviewDTOSchema,ImportPreviewDTO,ImportPreviewResponseDTOSchema,ImportPreviewResponseDTO,init_project_import_export_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-import-export.dto.js"(){"use strict";init_create_dto();ExportProjectResponseDTOSchema=z44.object({success:z44.literal(!0),downloadUrl:z44.string(),expiresAt:z44.string(),fileSize:z44.number(),duration:z44.number()}),ExportProjectResponseDTO=createDTO(ExportProjectResponseDTOSchema),ImportProjectResultDTOSchema=z44.object({success:z44.literal(!0),projectId:z44.string(),projectName:z44.string(),displayName:z44.string(),projectUrl:z44.string(),duration:z44.number()}),ImportProjectResultDTO=createDTO(ImportProjectResultDTOSchema),ImportPreviewCountsDTOSchema=z44.object({contentTypes:z44.number(),entries:z44.number(),assets:z44.number(),translations:z44.number(),forms:z44.number(),codeFiles:z44.number(),assetFiles:z44.number()}),ImportPreviewSurfaceDTOSchema=z44.object({name:z44.string(),included:z44.boolean(),count:z44.number().optional(),note:z44.string().optional()}),ImportPreviewDTOSchema=z44.object({projectName:z44.string(),displayName:z44.string().nullable(),category:z44.string().nullable(),exportedAt:z44.string(),version:z44.string(),envScope:z44.enum(["main","tree"]),counts:ImportPreviewCountsDTOSchema,surfaces:z44.array(ImportPreviewSurfaceDTOSchema),fileSize:z44.number(),fileName:z44.string()}),ImportPreviewDTO=createDTO(ImportPreviewDTOSchema),ImportPreviewResponseDTOSchema=z44.object({success:z44.literal(!0),preview:ImportPreviewDTOSchema}),ImportPreviewResponseDTO=createDTO(ImportPreviewResponseDTOSchema)}});import{z as z45}from"zod";var SurfaceNameSchema,SURFACE_NAMES,SurfaceDeltaVerbSchema,SurfaceItemOriginSchema,SurfaceDeltaItemSchema,PerSurfaceDeltaSchema,CrossSurfaceFindingSchema,StatusReportSchema,StatusReportDTO,StatusReportResponseSchema,DiffReportSchema,DiffReportDTO,DiffReportResponseSchema,CodeFileDiffSchema,CodeFileDiffDTO,CodeFileDiffResponseSchema,CodeConflictBlobSchema,CodeConflictDetailSchema,CodeConflictDetailDTO,CodeConflictDetailResponseSchema,ContentEntrySnapshotSchema,ContentRowDiffSchema,ContentRowDiffDTO,ContentRowDiffResponseSchema,SchemaTypeSnapshotSchema,SchemaTypeDiffSchema,SchemaTypeDiffDTO,SchemaTypeDiffResponseSchema,AssetSnapshotSchema,AssetDiffSchema,AssetDiffDTO,AssetDiffResponseSchema,TranslationRowDiffSchema,TranslationRowDiffDTO,TranslationRowDiffResponseSchema,FormSchemaSnapshotSchema,FormSchemaDiffSchema,FormSchemaDiffDTO,FormSchemaDiffResponseSchema,CONFLICT_KINDS,ConflictKindSchema,ConflictTargetCommitSchema,ConflictSchema,FieldPickSchema,ConflictResolutionSchema,MergeResultSchema,MergeResultDTO,MergeResultResponseSchema,EngineStrategySchema,VendorStrategySchema,MergeStrategySchema,ResolvedStrategySchema,MergeRequestSchema,MergeInitiateResultSchema,MergeInitiateResultDTO,MergeInitiateResponseSchema,MergeConflictsHydrationSchema,MergeConflictsHydrationDTO,MergeConflictsHydrationResponseSchema,MergeResolveDraftRequestSchema,MergeResolveDraftResultSchema,MergeResolveDraftResultDTO,MergeResolveRequestSchema,MergeCancelRequestSchema,PublishReleaseRequestSchema,PublishReleaseResultSchema,PublishReleaseResultDTO,PublishReleaseResponseSchema,init_env_status_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/env-status.dto.js"(){"use strict";init_env();init_create_dto();init_response();SurfaceNameSchema=z45.enum(["code","schemas","content","translations","assets","forms"]),SURFACE_NAMES=["code","schemas","content","translations","assets","forms"],SurfaceDeltaVerbSchema=z45.enum(["added","removed","changed","conflict"]),SurfaceItemOriginSchema=z45.enum(["committed-ahead","local-uncommitted"]),SurfaceDeltaItemSchema=z45.object({verb:SurfaceDeltaVerbSchema,key:z45.string(),detail:z45.string().optional(),origin:SurfaceItemOriginSchema.optional(),meta:z45.record(z45.string(),z45.unknown()).optional()}),PerSurfaceDeltaSchema=z45.object({surface:SurfaceNameSchema,status:z45.enum(["ok","timed_out","failed","unchanged"]),durationMs:z45.number().int().nonnegative().optional(),changedCount:z45.number().int().nonnegative(),conflictCount:z45.number().int().nonnegative(),items:z45.array(SurfaceDeltaItemSchema).max(1e3).optional(),truncated:z45.boolean().optional(),error:z45.string().optional()}),CrossSurfaceFindingSchema=z45.object({id:z45.string(),kind:z45.string(),description:z45.string(),severity:z45.enum(["warning","error"]),source:z45.object({surface:SurfaceNameSchema,key:z45.string()}),target:z45.object({surface:SurfaceNameSchema,key:z45.string()}),actions:z45.array(z45.enum(["restore-target","fix-source","ignore"])).min(1)}),StatusReportSchema=z45.object({branch:BranchSchema.optional(),env:BranchSchema,vs:BranchSchema,syncState:z45.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:z45.coerce.date(),surfaces:z45.array(PerSurfaceDeltaSchema),agents:z45.array(z45.object({id:z45.string(),name:z45.string(),status:z45.enum(["active","paused","failed"]),lastRunAt:z45.coerce.date().nullable()})).optional(),crossSurface:z45.array(CrossSurfaceFindingSchema).optional()}),StatusReportDTO=createDTO(StatusReportSchema),StatusReportResponseSchema=createResponseSchema(StatusReportSchema),DiffReportSchema=z45.object({fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),fromEnv:BranchSchema,toEnv:BranchSchema,generatedAt:z45.coerce.date(),surfaces:z45.array(PerSurfaceDeltaSchema),crossSurface:z45.array(CrossSurfaceFindingSchema).optional(),fingerprint:z45.string()}),DiffReportDTO=createDTO(DiffReportSchema),DiffReportResponseSchema=createResponseSchema(DiffReportSchema),CodeFileDiffSchema=z45.object({path:z45.string(),state:z45.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z45.string(),additions:z45.number().int().nonnegative(),deletions:z45.number().int().nonnegative()}),CodeFileDiffDTO=createDTO(CodeFileDiffSchema),CodeFileDiffResponseSchema=createResponseSchema(CodeFileDiffSchema),CodeConflictBlobSchema=z45.object({oid:z45.string().optional(),content:z45.string().optional(),truncated:z45.boolean(),binary:z45.boolean()}),CodeConflictDetailSchema=z45.object({path:z45.string(),base:CodeConflictBlobSchema,ours:CodeConflictBlobSchema,theirs:CodeConflictBlobSchema,result:CodeConflictBlobSchema,sourceTipSha:z45.string(),targetTipSha:z45.string(),mergeBaseSha:z45.string().optional()}),CodeConflictDetailDTO=createDTO(CodeConflictDetailSchema),CodeConflictDetailResponseSchema=createResponseSchema(CodeConflictDetailSchema),ContentEntrySnapshotSchema=z45.object({id:z45.string(),slug:z45.string(),contentType:z45.string(),data:z45.record(z45.string(),z45.unknown()),updatedAt:z45.coerce.date()}),ContentRowDiffSchema=z45.object({collection:z45.string(),rowId:z45.string(),parent:ContentEntrySnapshotSchema.nullable(),child:ContentEntrySnapshotSchema.nullable()}),ContentRowDiffDTO=createDTO(ContentRowDiffSchema),ContentRowDiffResponseSchema=createResponseSchema(ContentRowDiffSchema),SchemaTypeSnapshotSchema=z45.object({name:z45.string(),label:z45.string(),isSingleton:z45.boolean(),fields:z45.record(z45.string(),z45.unknown())}),SchemaTypeDiffSchema=z45.object({typeName:z45.string(),parent:SchemaTypeSnapshotSchema.nullable(),child:SchemaTypeSnapshotSchema.nullable()}),SchemaTypeDiffDTO=createDTO(SchemaTypeDiffSchema),SchemaTypeDiffResponseSchema=createResponseSchema(SchemaTypeDiffSchema),AssetSnapshotSchema=z45.object({id:z45.string(),name:z45.string(),type:z45.enum(["file","folder"]),mimeType:z45.string().nullable(),storageKey:z45.string().nullable(),url:z45.string().nullable(),fileSize:z45.number().nullable(),width:z45.number().nullable(),height:z45.number().nullable(),altText:z45.string().nullable(),caption:z45.string().nullable(),createdAt:z45.coerce.date(),updatedAt:z45.coerce.date()}),AssetDiffSchema=z45.object({assetId:z45.string(),parent:AssetSnapshotSchema.nullable(),child:AssetSnapshotSchema.nullable()}),AssetDiffDTO=createDTO(AssetDiffSchema),AssetDiffResponseSchema=createResponseSchema(AssetDiffSchema),TranslationRowDiffSchema=z45.object({locale:z45.string(),key:z45.string(),parent:z45.string().nullable(),child:z45.string().nullable()}),TranslationRowDiffDTO=createDTO(TranslationRowDiffSchema),TranslationRowDiffResponseSchema=createResponseSchema(TranslationRowDiffSchema),FormSchemaSnapshotSchema=z45.object({formName:z45.string(),label:z45.string().nullable(),schemaFingerprint:z45.string(),fields:z45.record(z45.string(),z45.unknown()),settings:z45.record(z45.string(),z45.unknown()).optional()}),FormSchemaDiffSchema=z45.object({formName:z45.string(),parent:FormSchemaSnapshotSchema.nullable(),child:FormSchemaSnapshotSchema.nullable()}),FormSchemaDiffDTO=createDTO(FormSchemaDiffSchema),FormSchemaDiffResponseSchema=createResponseSchema(FormSchemaDiffSchema),CONFLICT_KINDS=["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"],ConflictKindSchema=z45.enum(CONFLICT_KINDS),ConflictTargetCommitSchema=z45.object({sha:z45.string(),subject:z45.string(),body:z45.string().optional(),author:z45.string(),date:z45.string()}),ConflictSchema=z45.object({surface:SurfaceNameSchema,key:z45.string(),kind:ConflictKindSchema.optional(),description:z45.string(),parentValue:z45.unknown().optional(),childValue:z45.unknown().optional(),conflictingFields:z45.array(z45.string()).optional(),code:z45.object({path:z45.string(),unresolvable:z45.boolean().optional(),reason:z45.string().optional(),targetCommits:z45.array(ConflictTargetCommitSchema).optional()}).optional()}),FieldPickSchema=z45.object({field:z45.string(),choice:z45.enum(["parent","child","pick","ai-pick"]),pickedValue:z45.unknown().optional(),aiSessionId:z45.string().optional()}),ConflictResolutionSchema=z45.object({surface:SurfaceNameSchema,key:z45.string(),choice:z45.enum(["parent","child","pick"]),pickedValue:z45.unknown().optional(),fieldPicks:z45.array(FieldPickSchema).optional()}),MergeResultSchema=z45.object({ok:z45.boolean(),mergeId:z45.string().uuid(),fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),fromEnv:BranchSchema,toEnv:BranchSchema,applied:z45.array(z45.object({surface:SurfaceNameSchema,count:z45.number().int().nonnegative()})),conflicts:z45.array(ConflictSchema).optional(),summary:z45.string().optional()}),MergeResultDTO=createDTO(MergeResultSchema),MergeResultResponseSchema=createResponseSchema(MergeResultSchema),EngineStrategySchema=z45.enum(["ff-only","auto","theirs","ours","manual"]),VendorStrategySchema=z45.enum(["ff_only","ff_prefer","merge"]),MergeStrategySchema=z45.object({engine:EngineStrategySchema.optional(),vendor:VendorStrategySchema.optional(),squash:z45.boolean().optional()}),ResolvedStrategySchema=z45.object({engine:EngineStrategySchema,vendor:VendorStrategySchema,squash:z45.boolean()}),MergeRequestSchema=z45.object({from:BranchSchema,allowDirectMerge:z45.boolean().optional(),strategy:MergeStrategySchema.optional()}),MergeInitiateResultSchema=z45.object({mergeId:z45.string().uuid(),streamUrl:z45.string(),strategy:ResolvedStrategySchema,acceptedAt:z45.coerce.date()}),MergeInitiateResultDTO=createDTO(MergeInitiateResultSchema),MergeInitiateResponseSchema=createResponseSchema(MergeInitiateResultSchema),MergeConflictsHydrationSchema=z45.object({mergeId:z45.string().uuid(),fromEnv:BranchSchema,toEnv:BranchSchema,status:z45.enum(["in_progress","complete","failed","rolled_back","conflicts"]),strategy:ResolvedStrategySchema,conflicts:z45.array(ConflictSchema),draftResolutions:z45.array(ConflictResolutionSchema),lastEditedBy:z45.string().nullable(),lastEditedAt:z45.coerce.date().nullable(),initiator:z45.object({userId:z45.string().nullable(),role:z45.string().nullable(),agentName:z45.string().nullable()})}),MergeConflictsHydrationDTO=createDTO(MergeConflictsHydrationSchema),MergeConflictsHydrationResponseSchema=createResponseSchema(MergeConflictsHydrationSchema),MergeResolveDraftRequestSchema=z45.object({resolutions:z45.array(ConflictResolutionSchema)}),MergeResolveDraftResultSchema=z45.object({mergeId:z45.string().uuid(),draftResolutions:z45.array(ConflictResolutionSchema),lastEditedAt:z45.coerce.date(),lastEditedBy:z45.string()}),MergeResolveDraftResultDTO=createDTO(MergeResolveDraftResultSchema),MergeResolveRequestSchema=z45.object({mergeId:z45.string().uuid(),resolutions:z45.array(ConflictResolutionSchema)}),MergeCancelRequestSchema=z45.object({mergeId:z45.string().uuid()}),PublishReleaseRequestSchema=z45.object({version:z45.string().regex(/^v?\d+\.\d+\.\d+(-[\w.]+)?$/,"Use semver (v1.4.2 / 1.4.2 / 1.4.2-rc.1)"),notes:z45.string().max(2e4).optional()}),PublishReleaseResultSchema=z45.object({releaseTag:z45.string(),sha:z45.string(),publishedAt:z45.coerce.date()}),PublishReleaseResultDTO=createDTO(PublishReleaseResultSchema),PublishReleaseResponseSchema=createResponseSchema(PublishReleaseResultSchema)}});import{z as z46}from"zod";var AgentSessionStatusSchema,AgentSessionReviewPublicationSchema,AgentSessionReviewSummarySchema,AgentSessionReviewSummaryDTO,AgentSessionReviewPayloadSchema,AgentSessionReviewPayloadDTO,AgentSessionReviewPayloadResponseSchema,SessionErrorCodeSchema,init_agent_session_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-session.dto.js"(){"use strict";init_create_dto();init_response();init_env_status_dto();AgentSessionStatusSchema=z46.enum(["planned","running","finished","cancelled","errored"]),AgentSessionReviewPublicationSchema=z46.enum(["pending","merged","conflict","not_published"]),AgentSessionReviewSummarySchema=z46.object({capturedAt:z46.coerce.date(),fingerprint:z46.string().min(1).max(256),counts:z46.object({code:z46.number().int().nonnegative(),content:z46.number().int().nonnegative(),schemas:z46.number().int().nonnegative(),labels:z46.number().int().nonnegative(),assets:z46.number().int().nonnegative().optional()}),publication:AgentSessionReviewPublicationSchema,mergeId:z46.uuid().nullable()}),AgentSessionReviewSummaryDTO=createDTO(AgentSessionReviewSummarySchema),AgentSessionReviewPayloadSchema=z46.object({diff:DiffReportSchema,code:z46.array(CodeFileDiffSchema.extend({raw:z46.string().max(24576)})).max(200),schemas:z46.array(SchemaTypeDiffSchema).max(200),content:z46.array(z46.object({key:z46.string().min(1).max(512),collection:z46.string().min(1).max(256),slug:z46.string().max(512).optional(),verb:z46.enum(["added","modified","deleted"]),fields:z46.array(z46.object({name:z46.string().min(1).max(256),before:z46.unknown().optional(),after:z46.unknown().optional()})).max(20)})).max(200),labels:z46.array(z46.object({key:z46.string().min(1).max(512),locale:z46.string().min(1).max(64).optional(),before:z46.unknown().nullable(),after:z46.unknown().nullable()})).max(200),assets:z46.array(z46.object({key:z46.string().min(1).max(512),name:z46.string().min(1).max(512),verb:z46.enum(["added","modified","deleted"]),before:AssetSnapshotSchema.nullable(),after:AssetSnapshotSchema.nullable()})).max(200).default([])}),AgentSessionReviewPayloadDTO=createDTO(AgentSessionReviewPayloadSchema),AgentSessionReviewPayloadResponseSchema=createResponseSchema(AgentSessionReviewPayloadSchema),SessionErrorCodeSchema=z46.enum(["invalid_session_transition","session_not_found","capability_snapshot_invalid","checkpoint_restore_failed","cost_ceiling_invalid"])}});import{z as z47}from"zod";var AgentBranchClassificationSchema,AgentBranchDecidedPathSchema,WorkSessionReviewSchema,RequestWorkSessionReviewSchema,WorkSessionReviewResultSchema,AgentBranchProposalDTOSchema,AgentBranchProposalDTO,DecideProposalRequestSchema,AgentBranchProposalResponseSchema,AgentBranchProposalsListResponseSchema,DecideProposalConflictResponseSchema,init_agent_proposal_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-proposal.dto.js"(){"use strict";init_create_dto();init_response();init_env_status_dto();AgentBranchClassificationSchema=z47.enum(["trivial","structural"]),AgentBranchDecidedPathSchema=z47.enum(["auto-merge","review-merged","review-discarded"]),WorkSessionReviewSchema=z47.object({sessionId:z47.uuid(),branch:z47.string().min(1),targetBranch:z47.string().min(1),revision:z47.string().min(1),fingerprint:z47.string().min(1),source:z47.enum(["studio","slack","mcp"]),threadId:z47.uuid().nullable(),invocationId:z47.uuid().nullable(),conversationBranch:z47.string().nullable(),capturedAt:z47.string(),surfaces:z47.array(PerSurfaceDeltaSchema).optional(),counts:z47.record(z47.string(),z47.number().int().nonnegative())}),RequestWorkSessionReviewSchema=z47.strictObject({sessionId:z47.uuid(),summary:z47.string().trim().min(1).max(240),targetBranch:z47.string().trim().min(1).optional()}),WorkSessionReviewResultSchema=z47.object({requested:z47.literal(!0),alreadyRequested:z47.boolean(),reviewId:z47.uuid(),reviewUrl:z47.url(),status:z47.literal("pending"),sessionId:z47.uuid(),branch:z47.string(),targetBranch:z47.string(),revision:z47.string(),savedRevision:z47.string(),fingerprint:z47.string(),visibility:z47.literal("user-visible"),retention:z47.literal("durable"),expiresAt:z47.null(),merged:z47.literal(!1),published:z47.literal(!1),links:z47.object({preview:z47.url(),changes:z47.url(),conversation:z47.url().nullable()})}),AgentBranchProposalDTOSchema=z47.object({id:z47.uuid(),envId:z47.uuid(),sessionId:z47.uuid().nullable(),skillName:z47.string().min(1),classification:AgentBranchClassificationSchema,rationale:z47.string().nullable(),summary:z47.string().nullable(),surfaceDeltas:z47.record(z47.string(),z47.unknown()),review:WorkSessionReviewSchema.optional(),createdAt:z47.coerce.date(),decidedAt:z47.coerce.date().nullable(),decidedPath:AgentBranchDecidedPathSchema.nullable(),decidedBy:z47.string().nullable()}),AgentBranchProposalDTO=createDTO(AgentBranchProposalDTOSchema),DecideProposalRequestSchema=z47.object({path:z47.enum(["review-merged","review-discarded"])}),AgentBranchProposalResponseSchema=createResponseSchema(AgentBranchProposalDTOSchema),AgentBranchProposalsListResponseSchema=createResponseSchema(z47.array(AgentBranchProposalDTOSchema)),DecideProposalConflictResponseSchema=z47.object({code:z47.literal("merge_conflict"),message:z47.string(),conflicts:z47.record(z47.string(),z47.number().int().nonnegative())})}});import{z as z48}from"zod";var AGENT_QUESTION_STATES,AgentQuestionStateSchema,AgentQuestionFormSchema,AgentQuestionAskSchema,AgentQuestionRequestSchema,AgentQuestionSchema,AgentQuestionResponseSchema,RunAgentQuestionResponseSchema,AgentQuestionAttentionSchema,OpenAgentQuestionsResponseSchema,AnswerAgentQuestionResultSchema,AnswerAgentQuestionResponseSchema,init_agent_question_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-question.dto.js"(){"use strict";init_chat_block();init_response();AGENT_QUESTION_STATES=["open","answered","expired","cancelled","superseded"],AgentQuestionStateSchema=z48.enum(AGENT_QUESTION_STATES),AgentQuestionFormSchema=FormBlockSchema.extend({title:z48.string().trim().min(1).max(80)}).superRefine((form,ctx)=>{(!form.steps.every(step=>step.id)||new Set(form.steps.map(step=>step.id)).size!==form.steps.length)&&ctx.addIssue({code:"custom",path:["steps"],message:"Every question step needs its own stable id."})}),AgentQuestionAskSchema=z48.object({description:z48.string().trim().min(1).max(240),block:AgentQuestionFormSchema}).strict(),AgentQuestionRequestSchema=AgentQuestionAskSchema.extend({version:z48.literal(QUESTION_FORM_CONTRACT_VERSION),sessionIds:z48.array(z48.uuid()).optional()}),AgentQuestionSchema=z48.object({id:z48.uuid(),projectId:z48.uuid(),threadId:z48.uuid(),invocationId:z48.uuid(),agentKey:z48.string().min(1).max(120),anchorEnv:z48.string().min(1).max(64),retainedEnv:z48.string().min(1).max(64),state:AgentQuestionStateSchema,request:AgentQuestionRequestSchema,answer:QuestionFormAnswerSnapshotSchema.nullable(),answeredByUserId:z48.string().min(1).nullable(),continuationInvocationId:z48.uuid().nullable(),askedAt:z48.coerce.date(),expiresAt:z48.coerce.date(),closedAt:z48.coerce.date().nullable()}),AgentQuestionResponseSchema=createResponseSchema(AgentQuestionSchema),RunAgentQuestionResponseSchema=createResponseSchema(AgentQuestionSchema.nullable()),AgentQuestionAttentionSchema=z48.object({questionId:z48.uuid(),invocationId:z48.uuid(),askedAt:z48.coerce.date()}),OpenAgentQuestionsResponseSchema=createResponseSchema(z48.array(AgentQuestionAttentionSchema)),AnswerAgentQuestionResultSchema=z48.object({question:AgentQuestionSchema,continuationInvocationId:z48.uuid(),deduped:z48.boolean()}),AnswerAgentQuestionResponseSchema=createResponseSchema(AnswerAgentQuestionResultSchema)}});import{z as z49}from"zod";var IntegrationAuthModeSchema,IntegrationAuthKindSchema,IntegrationCredentialInputSchema,IntegrationCredentialUsageSchema,IntegrationToolEffectSchema,ProjectIntegrationCredentialStatusSchema,IntegrationAuthModeDTOSchema,IntegrationCredentialDefinitionDTOSchema,IntegrationToolDefinitionDTOSchema,IntegrationRecipeDTOSchema,IntegrationInfoDTOSchema,IntegrationInfoDTO,ProjectIntegrationStatusDTOSchema,ProjectIntegrationStatusDTO,ProjectIntegrationInstallationDTOSchema,ProjectIntegrationInstallationDTO,EnableProjectIntegrationRequestSchema,SwitchProjectIntegrationAuthRequestSchema,OrganizationIntegrationConnectionStatusSchema,OrganizationIntegrationConnectionDTOSchema,OrganizationIntegrationConnectionDTO,ProjectIntegrationConnectionDTOSchema,ProjectIntegrationConnectionDTO,McpHeaderNameSchema,McpHeaderDefinitionSchema,McpSecretMapSchema,ConnectOrganizationIntegrationRequestSchema,ProjectIntegrationReturnPathSchema,IntegrationCustomIdentitySchema,ConnectProjectIntegrationRequestSchema,McpIntegrationAuthSchema,McpIntegrationSetupAuthSchema,AddProjectMcpIntegrationRequestSchema,AddProjectMcpIntegrationResponseBaseSchema,AddProjectMcpIntegrationResponseSchema,ReusableMcpServerAuthKindSchema,ReusableMcpServerDTOSchema,ReusableMcpServerDTO,SearchReusableMcpServersQuerySchema,ReuseProjectMcpIntegrationRequestSchema,LinearOAuthApplicationDistributionSchema,OrganizationLinearAppDTOSchema,OrganizationLinearAppDTO,CreateManagedLinearAppRequestSchema,UpdateManagedLinearAppRequestSchema,StartManagedLinearConnectRequestSchema,StartProjectIntegrationConnectResponseSchema,StartProjectIntegrationConnectResponseDTO,ProjectIntegrationConnectResponseSchema,BindProjectChannelRequestSchema,ListProjectChannelsQuerySchema,SearchProjectChannelsQuerySchema,ProjectChannelBindingDTOSchema,ProjectChannelBindingDTO,ProjectChannelCandidateAvailabilitySchema,ProjectChannelCandidateDTOSchema,ProjectChannelCandidateDTO,FirecrawlScrapeFormatsSchema,FirecrawlScrapeToolInputSchema,FirecrawlSearchToolInputSchema,FirecrawlDeveloperSearchToolInputSchema,FirecrawlResearchSearchToolInputSchema,FirecrawlResearchPaperToolInputSchema,FirecrawlResearchRelatedToolInputSchema,FirecrawlMapToolInputSchema,FirecrawlCrawlToolInputSchema,FirecrawlMonitorScheduleInputSchema,FirecrawlMonitorScrapeOptionsInputSchema,FirecrawlMonitorTargetInputSchema,FirecrawlMonitorCreateToolInputSchema,FirecrawlMonitorUpdateToolInputSchema,FirecrawlMonitorIdToolInputSchema,FirecrawlMonitorCheckToolInputSchema,RunProjectIntegrationToolRequestSchema,ProjectIntegrationToolRunUsageSchema,ProjectIntegrationToolRunBillingSchema,FirecrawlScrapeToolOutputSchema,FirecrawlSearchToolOutputSchema,FirecrawlResearchPaperSchema,FirecrawlResearchPassageSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlMonitorScheduleOutputSchema,FirecrawlMonitorTargetOutputSchema,FirecrawlMonitorOutputSchema,FirecrawlMonitorCheckOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema,FirecrawlToolKeySchema,FirecrawlToolOutputSchema,ProjectIntegrationToolRunBaseSchema,ProjectIntegrationToolRunDTOSchema,ProjectIntegrationToolRunDTO,IntegrationsListResponseSchema,IntegrationInfoResponseSchema,ProjectIntegrationStatusResponseSchema,ProjectIntegrationInstallationResponseSchema,ProjectIntegrationToolRunResponseSchema,StartProjectIntegrationConnectResponseResponseSchema,OrganizationIntegrationConnectionResponseSchema,ProjectIntegrationConnectionsResponseSchema,ProjectIntegrationConnectResponseResponseSchema,AddProjectMcpIntegrationResponseResponseSchema,ReusableMcpServersResponseSchema,ProjectChannelBindingResponseSchema,ProjectChannelBindingsResponseSchema,ProjectChannelCandidatesResponseSchema,init_integration_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/integration.dto.js"(){"use strict";init_create_dto();init_response();IntegrationAuthModeSchema=z49.enum(["fimo","personal","oauth"]),IntegrationAuthKindSchema=z49.enum(["oauth","api_key","bot_token","basic"]),IntegrationCredentialInputSchema=z49.enum(["secret_text"]),IntegrationCredentialUsageSchema=z49.enum(["http_bearer","api_key"]),IntegrationToolEffectSchema=z49.enum(["read","write","delete","financial"]),ProjectIntegrationCredentialStatusSchema=z49.enum(["not_required","missing","configured"]),IntegrationAuthModeDTOSchema=z49.object({mode:IntegrationAuthModeSchema,label:z49.string().min(1),description:z49.string().min(1)}),IntegrationCredentialDefinitionDTOSchema=z49.object({id:z49.string().min(1),label:z49.string().min(1),input:IntegrationCredentialInputSchema,usage:IntegrationCredentialUsageSchema,required:z49.boolean()}),IntegrationToolDefinitionDTOSchema=z49.object({key:z49.string().min(1),name:z49.string().min(1),description:z49.string().min(1),effect:IntegrationToolEffectSchema,input:z49.record(z49.string(),z49.unknown()).optional()}),IntegrationRecipeDTOSchema=z49.object({title:z49.string().min(1),description:z49.string().min(1),command:z49.string().min(1).optional()}),IntegrationInfoDTOSchema=z49.object({key:z49.string().min(1),name:z49.string().min(1),summary:z49.string().min(1),type:z49.enum(["native","mcp"]).optional(),url:z49.string().url().optional(),defaultAuthMode:IntegrationAuthModeSchema.nullable().optional(),authModes:z49.array(IntegrationAuthModeDTOSchema),credentials:z49.array(IntegrationCredentialDefinitionDTOSchema),tools:z49.array(IntegrationToolDefinitionDTOSchema),liveToolsStatus:z49.enum(["available","unavailable"]).optional(),connectionCapabilities:z49.object({customIdentityCreation:z49.boolean()}).optional(),recipes:z49.array(IntegrationRecipeDTOSchema)}),IntegrationInfoDTO=createDTO(IntegrationInfoDTOSchema),ProjectIntegrationStatusDTOSchema=z49.object({projectId:z49.uuid(),integrationKey:z49.string().min(1),name:z49.string().min(1),summary:z49.string().min(1),installed:z49.boolean(),enabled:z49.boolean(),setupState:z49.enum(["setup_required","ready","attention"]),authMode:IntegrationAuthModeSchema.nullable(),authModeLabel:z49.string().nullable(),connectionId:z49.uuid().nullable().optional(),connectionAlias:z49.string().min(1).nullable().optional(),connectionStatus:z49.enum(["active","revoked","disconnected"]).nullable(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z49.array(z49.string()),installedAt:z49.coerce.date().nullable(),updatedAt:z49.coerce.date().nullable()}),ProjectIntegrationStatusDTO=createDTO(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationDTOSchema=z49.object({id:z49.uuid(),projectId:z49.uuid(),integrationKey:z49.string().min(1),enabled:z49.boolean(),authMode:IntegrationAuthModeSchema,authModeLabel:z49.string(),connectionId:z49.uuid().nullable().optional(),connectionAlias:z49.string().min(1).nullable().optional(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z49.array(z49.string()),createdAt:z49.coerce.date(),updatedAt:z49.coerce.date()}),ProjectIntegrationInstallationDTO=createDTO(ProjectIntegrationInstallationDTOSchema),EnableProjectIntegrationRequestSchema=z49.object({authMode:IntegrationAuthModeSchema.optional(),connectionAlias:z49.string().min(1).optional()}),SwitchProjectIntegrationAuthRequestSchema=z49.object({authMode:IntegrationAuthModeSchema}),OrganizationIntegrationConnectionStatusSchema=z49.enum(["active","revoked","disconnected"]),OrganizationIntegrationConnectionDTOSchema=z49.object({id:z49.uuid(),organizationId:z49.string().min(1),integrationKey:z49.string().min(1),registrationId:z49.uuid().nullable(),alias:z49.string().min(1),authKind:IntegrationAuthKindSchema,externalAccountId:z49.string().min(1),externalAccountName:z49.string().nullable(),externalBotUserId:z49.string().nullable(),status:OrganizationIntegrationConnectionStatusSchema,scopes:z49.array(z49.string()),connectedAt:z49.coerce.date(),updatedAt:z49.coerce.date()}),OrganizationIntegrationConnectionDTO=createDTO(OrganizationIntegrationConnectionDTOSchema),ProjectIntegrationConnectionDTOSchema=OrganizationIntegrationConnectionDTOSchema.extend({granted:z49.boolean(),isDefault:z49.boolean()}),ProjectIntegrationConnectionDTO=createDTO(ProjectIntegrationConnectionDTOSchema),McpHeaderNameSchema=z49.string().trim().min(1).max(120).regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,"Header name is invalid."),McpHeaderDefinitionSchema=z49.object({name:McpHeaderNameSchema}),McpSecretMapSchema=z49.record(McpHeaderNameSchema,z49.string().min(1)),ConnectOrganizationIntegrationRequestSchema=z49.object({alias:z49.string().min(1).max(120).optional(),token:z49.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z49.boolean().optional()}).superRefine((value,ctx)=>{value.token&&value.secrets&&ctx.addIssue({code:"custom",path:["token"],message:"Provide either one token or a complete MCP secret map."})}),ProjectIntegrationReturnPathSchema=z49.string().min(1).max(500).refine(value=>value.startsWith("/app/")&&!value.startsWith("//"),"Return path must be inside the Fimo app."),IntegrationCustomIdentitySchema=z49.object({displayName:z49.string().trim().min(1).max(35),backgroundColor:z49.string().regex(/^#[0-9a-fA-F]{6}$/).optional(),iconUrl:z49.string().url().max(2048).optional()}),ConnectProjectIntegrationRequestSchema=z49.discriminatedUnion("mode",[z49.object({mode:z49.literal("personal"),alias:z49.string().min(1).max(120),token:z49.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z49.boolean().optional()}),z49.object({mode:z49.literal("oauth"),returnTo:ProjectIntegrationReturnPathSchema.optional(),reconnect:z49.boolean().optional(),registrationId:z49.uuid().optional(),customIdentity:IntegrationCustomIdentitySchema.optional()})]).superRefine((value,ctx)=>{value.mode==="oauth"&&value.registrationId&&value.customIdentity&&ctx.addIssue({code:"custom",path:["registrationId"],message:"Choose an existing app identity or create a custom one, not both."}),value.mode==="personal"&&!!value.token==!!value.secrets&&ctx.addIssue({code:"custom",path:["token"],message:"Provide either one token or a complete MCP secret map."})}),McpIntegrationAuthSchema=z49.enum(["none","bearer","header"]),McpIntegrationSetupAuthSchema=z49.union([z49.literal("auto"),McpIntegrationAuthSchema]),AddProjectMcpIntegrationRequestSchema=z49.object({type:z49.literal("mcp"),name:z49.string().trim().min(1).max(120),url:z49.string().url(),auth:McpIntegrationSetupAuthSchema.default("auto"),returnTo:ProjectIntegrationReturnPathSchema.optional(),headers:z49.array(McpHeaderDefinitionSchema).min(1).max(20).optional(),secrets:McpSecretMapSchema.optional(),headerName:McpHeaderNameSchema.optional(),token:z49.string().min(1).optional(),integrationId:z49.string().min(2).max(80).optional()}).superRefine((value,ctx)=>{let protocol;try{protocol=new URL(value.url).protocol}catch{return}protocol!=="https:"&&ctx.addIssue({code:"custom",path:["url"],message:"MCP servers must use HTTPS."});let hasSingleHeader=!!(value.headerName||value.token),hasHeaderBundle=!!(value.headers||value.secrets);if(value.auth==="auto"&&(hasSingleHeader||hasHeaderBundle)&&ctx.addIssue({code:"custom",path:["auth"],message:"Automatic authentication does not accept manual credentials."}),value.auth==="none"&&(hasSingleHeader||hasHeaderBundle)&&ctx.addIssue({code:"custom",path:["auth"],message:"Public MCP servers cannot define credentials."}),value.auth==="bearer"&&(value.token||ctx.addIssue({code:"custom",path:["token"],message:"Bearer authentication requires a token."}),(value.headerName||value.headers||value.secrets)&&ctx.addIssue({code:"custom",path:["headers"],message:"Custom headers only apply to header authentication."})),value.auth!=="header")return;if(hasSingleHeader&&hasHeaderBundle){ctx.addIssue({code:"custom",path:["headers"],message:"Use either the single-header fields or headers with a complete secret map."});return}if(hasSingleHeader){value.headerName||ctx.addIssue({code:"custom",path:["headerName"],message:"Custom header authentication needs a header name."}),value.token||ctx.addIssue({code:"custom",path:["token"],message:"Header authentication requires a complete header value."});return}if(!value.headers){ctx.addIssue({code:"custom",path:["headers"],message:"Header authentication needs at least one header."});return}let normalizedNames=value.headers.map(header=>header.name.toLowerCase());if(new Set(normalizedNames).size!==normalizedNames.length&&ctx.addIssue({code:"custom",path:["headers"],message:"MCP header names must be unique."}),!value.secrets){ctx.addIssue({code:"custom",path:["secrets"],message:"Header authentication needs a complete secret map."});return}let secretNames=Object.keys(value.secrets).map(name=>name.toLowerCase());if(new Set(secretNames).size!==secretNames.length){ctx.addIssue({code:"custom",path:["secrets"],message:"MCP secret names must be unique."});return}let expected=new Set(normalizedNames),actual=new Set(secretNames);(expected.size!==actual.size||[...expected].some(name=>!actual.has(name)))&&ctx.addIssue({code:"custom",path:["secrets"],message:"The MCP secret map must exactly cover the configured headers."})}),AddProjectMcpIntegrationResponseBaseSchema=z49.object({integrationKey:z49.string().min(1),status:ProjectIntegrationStatusDTOSchema,info:IntegrationInfoDTOSchema}),AddProjectMcpIntegrationResponseSchema=z49.discriminatedUnion("mode",[AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z49.literal("connected")}),AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z49.literal("oauth"),connectUrl:z49.string().url(),expiresAt:z49.coerce.date()})]),ReusableMcpServerAuthKindSchema=z49.enum(["none","bearer","header","oauth"]),ReusableMcpServerDTOSchema=z49.object({id:z49.uuid(),name:z49.string().min(1),host:z49.string().min(1),authKind:ReusableMcpServerAuthKindSchema,sourceProjectName:z49.string().min(1),availability:z49.enum(["available","unavailable"])}),ReusableMcpServerDTO=createDTO(ReusableMcpServerDTOSchema),SearchReusableMcpServersQuerySchema=z49.object({query:z49.string().trim().max(120).optional()}),ReuseProjectMcpIntegrationRequestSchema=z49.object({serverId:z49.uuid()}),LinearOAuthApplicationDistributionSchema=z49.enum(["private","public"]),OrganizationLinearAppDTOSchema=z49.object({id:z49.uuid(),displayName:z49.string().min(1),description:z49.string().nullable(),iconUrl:z49.string().nullable(),distribution:LinearOAuthApplicationDistributionSchema,status:z49.enum(["active","revoked","disconnected"]),connectionIds:z49.array(z49.uuid()),createdAt:z49.coerce.date(),updatedAt:z49.coerce.date()}),OrganizationLinearAppDTO=createDTO(OrganizationLinearAppDTOSchema),CreateManagedLinearAppRequestSchema=z49.object({appName:z49.string().trim().min(2).max(80),description:z49.string().trim().max(1e3).optional(),iconUrl:z49.string().url().max(2048).optional()}),UpdateManagedLinearAppRequestSchema=CreateManagedLinearAppRequestSchema.partial().refine(input=>Object.keys(input).length>0,"At least one Linear app field is required."),StartManagedLinearConnectRequestSchema=z49.object({projectId:z49.uuid(),registrationId:z49.uuid(),returnTo:ProjectIntegrationReturnPathSchema.optional()}),StartProjectIntegrationConnectResponseSchema=z49.object({integrationKey:z49.string().min(1),connectUrl:z49.string().url(),expiresAt:z49.coerce.date()}),StartProjectIntegrationConnectResponseDTO=createDTO(StartProjectIntegrationConnectResponseSchema),ProjectIntegrationConnectResponseSchema=z49.discriminatedUnion("mode",[z49.object({mode:z49.literal("personal"),integrationKey:z49.string().min(1),connection:OrganizationIntegrationConnectionDTOSchema}),z49.object({mode:z49.literal("oauth"),integrationKey:z49.string().min(1),connectUrl:z49.string().url(),expiresAt:z49.coerce.date()})]),BindProjectChannelRequestSchema=z49.object({ref:z49.string().min(1),connectionAlias:z49.string().min(1).optional(),agentName:z49.string().min(1).max(160).nullable().optional(),force:z49.boolean().optional()}),ListProjectChannelsQuerySchema=z49.object({integrationKey:z49.string().min(1)}),SearchProjectChannelsQuerySchema=z49.object({integrationKey:z49.string().min(1),connectionAlias:z49.string().min(1),query:z49.string().max(160).optional()}),ProjectChannelBindingDTOSchema=z49.object({id:z49.uuid(),projectId:z49.uuid(),integrationKey:z49.string().min(1),connectionId:z49.uuid(),externalWorkspaceId:z49.string().min(1),externalChannelId:z49.string().min(1),externalChannelName:z49.string().nullable(),agentName:z49.string().nullable(),enabled:z49.boolean(),createdAt:z49.coerce.date(),updatedAt:z49.coerce.date()}),ProjectChannelBindingDTO=createDTO(ProjectChannelBindingDTOSchema),ProjectChannelCandidateAvailabilitySchema=z49.enum(["available","selected","used_by_project","unavailable"]),ProjectChannelCandidateDTOSchema=z49.object({id:z49.string().min(1),name:z49.string().min(1),visibility:z49.enum(["public","private"]),availability:ProjectChannelCandidateAvailabilitySchema,projectName:z49.string().min(1).nullable(),canMove:z49.boolean()}),ProjectChannelCandidateDTO=createDTO(ProjectChannelCandidateDTOSchema),FirecrawlScrapeFormatsSchema=z49.object({markdown:z49.boolean().optional(),summary:z49.boolean().optional(),links:z49.boolean().optional(),branding:z49.boolean().optional(),images:z49.boolean().optional(),html:z49.union([z49.literal("cleaned"),z49.literal("raw"),z49.boolean()]).optional(),json:z49.union([z49.boolean(),z49.object({prompt:z49.string().min(1).max(1e4),schema:z49.record(z49.string(),z49.unknown()).optional()})]).optional()}).default({markdown:!0}),FirecrawlScrapeToolInputSchema=z49.object({url:z49.string().url(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z49.boolean().optional(),timeoutMs:z49.number().int().positive().max(12e4).optional(),waitForMs:z49.number().int().min(0).max(3e4).optional(),maxAgeMs:z49.number().int().min(0).optional(),minAgeMs:z49.number().int().min(0).optional(),storeInCache:z49.boolean().optional(),proxy:z49.enum(["basic","enhanced","auto"]).optional(),mobile:z49.boolean().optional(),location:z49.object({country:z49.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z49.array(z49.string().min(1).max(35)).min(1).max(10).optional()}).optional()}),FirecrawlSearchToolInputSchema=z49.object({query:z49.string().min(1),maxResults:z49.number().int().positive().max(20).optional(),sources:z49.array(z49.enum(["web","news","images"])).min(1).max(3).optional(),categories:z49.array(z49.enum(["github","research","pdf"])).min(1).max(3).optional(),includeDomains:z49.array(z49.string().min(1).max(253)).min(1).max(100).optional(),excludeDomains:z49.array(z49.string().min(1).max(253)).min(1).max(100).optional(),timeRange:z49.enum(["hour","day","week","month","year"]).optional(),location:z49.string().min(1).max(160).optional(),country:z49.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code.").optional(),highlights:z49.boolean().optional(),timeoutMs:z49.number().int().positive().max(12e4).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."}),FirecrawlDeveloperSearchToolInputSchema=z49.object({query:z49.string().min(1).max(500),maxResults:z49.number().int().min(1).max(100).optional(),types:z49.array(z49.enum(["doc","issue","pull_request","readme"])).min(1).max(4).optional(),repos:z49.array(z49.string().min(1).max(512)).min(1).max(20).optional(),sources:z49.array(z49.string().min(1).max(512)).min(1).max(20).optional(),passages:z49.number().int().min(1).max(5).optional(),skills:z49.literal("only").optional(),language:z49.string().min(1).optional(),topic:z49.string().min(1).optional(),license:z49.string().min(1).optional(),minStars:z49.number().int().min(0).optional(),maxStars:z49.number().int().min(0).optional(),archived:z49.boolean().optional(),fork:z49.boolean().optional()}).refine(value=>value.minStars===void 0||value.maxStars===void 0||value.minStars<=value.maxStars,{message:"minStars must not exceed maxStars."}),FirecrawlResearchSearchToolInputSchema=z49.object({query:z49.string().min(1).max(500),maxResults:z49.number().int().min(1).max(500).optional(),authors:z49.array(z49.string().min(1)).min(1).optional(),categories:z49.array(z49.string().min(1)).min(1).optional(),from:z49.iso.date().optional(),to:z49.iso.date().optional()}),FirecrawlResearchPaperToolInputSchema=z49.object({paperId:z49.string().min(1).max(512),query:z49.string().min(1).max(500).optional(),maxPassages:z49.number().int().min(1).max(50).optional()}).refine(value=>value.query!==void 0||value.maxPassages===void 0,{message:"maxPassages requires query."}),FirecrawlResearchRelatedToolInputSchema=z49.object({paperId:z49.string().min(1).max(512),intent:z49.string().min(1).max(500),mode:z49.enum(["similar","citers","references"]).optional(),maxResults:z49.number().int().min(1).max(500).optional(),rerank:z49.boolean().optional(),anchors:z49.array(z49.string().min(1).max(512)).min(1).optional()}),FirecrawlMapToolInputSchema=z49.object({url:z49.string().url(),search:z49.string().min(1).optional(),limit:z49.number().int().positive().max(200).optional(),includeSubdomains:z49.boolean().optional(),timeoutMs:z49.number().int().positive().max(12e4).optional()}),FirecrawlCrawlToolInputSchema=z49.object({url:z49.string().url(),limit:z49.number().int().positive().max(20).optional(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z49.boolean().optional(),timeoutMs:z49.number().int().positive().max(12e4).optional()}),FirecrawlMonitorScheduleInputSchema=z49.object({text:z49.string().min(1).max(200).optional(),cron:z49.string().min(1).max(120).optional(),timezone:z49.string().min(1).max(80).optional()}).refine(value=>!!(value.text||value.cron),"Firecrawl monitor schedule needs text or cron."),FirecrawlMonitorScrapeOptionsInputSchema=z49.object({formats:FirecrawlScrapeFormatsSchema.optional(),onlyMainContent:z49.boolean().optional(),timeoutMs:z49.number().int().positive().max(12e4).optional(),waitForMs:z49.number().int().min(0).max(3e4).optional(),maxAgeMs:z49.number().int().min(0).optional(),minAgeMs:z49.number().int().min(0).optional(),storeInCache:z49.boolean().optional(),proxy:z49.enum(["basic","enhanced","auto"]).optional(),mobile:z49.boolean().optional(),location:z49.object({country:z49.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z49.array(z49.string().min(1).max(35)).min(1).max(10).optional()}).optional()}).optional(),FirecrawlMonitorTargetInputSchema=z49.union([z49.object({type:z49.enum(["scrape","crawl"]).default("scrape"),urls:z49.array(z49.string().url()).min(1).max(50),scrapeOptions:FirecrawlMonitorScrapeOptionsInputSchema}),z49.object({type:z49.literal("search"),queries:z49.array(z49.string().min(1).max(256)).min(1).max(12),searchWindow:z49.enum(["5m","15m","1h","6h","24h","7d"]).optional(),maxResults:z49.number().int().min(1).max(50).optional(),includeDomains:z49.array(z49.string().min(1).max(253)).min(1).max(50).optional(),excludeDomains:z49.array(z49.string().min(1).max(253)).min(1).max(50).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."})]),FirecrawlMonitorCreateToolInputSchema=z49.object({name:z49.string().min(1).max(256),schedule:FirecrawlMonitorScheduleInputSchema,targets:z49.array(FirecrawlMonitorTargetInputSchema).min(1).max(50),goal:z49.string().min(1).max(2e3).optional(),judgeEnabled:z49.boolean().optional(),retentionDays:z49.number().int().min(1).max(365).optional(),notification:z49.object({email:z49.object({enabled:z49.boolean().default(!0),recipients:z49.array(z49.string().email()).min(1).max(20),includeDiffs:z49.boolean().optional()}).optional()}).optional()}).refine(value=>!value.targets.some(target=>target.type==="search")||value.judgeEnabled===!1||!!value.goal,{message:"Search monitor targets require goal unless judgeEnabled is false."}),FirecrawlMonitorUpdateToolInputSchema=z49.object({monitorId:z49.string().uuid(),name:z49.string().min(1).max(256).optional(),schedule:FirecrawlMonitorScheduleInputSchema.optional(),targets:z49.array(FirecrawlMonitorTargetInputSchema).min(1).max(50).optional(),goal:z49.string().min(1).max(2e3).optional(),judgeEnabled:z49.boolean().optional(),retentionDays:z49.number().int().min(1).max(365).optional(),status:z49.enum(["active","paused"]).optional()}).refine(value=>Object.keys(value).some(key=>key!=="monitorId"),"Monitor update needs a changed field."),FirecrawlMonitorIdToolInputSchema=z49.object({monitorId:z49.string().uuid()}),FirecrawlMonitorCheckToolInputSchema=FirecrawlMonitorIdToolInputSchema.extend({checkId:z49.string().uuid()}),RunProjectIntegrationToolRequestSchema=z49.object({tool:z49.string().min(1),input:z49.record(z49.string(),z49.unknown()),connectionAlias:z49.string().min(1).optional(),approval:z49.string().min(1).max(4e3).optional()}),ProjectIntegrationToolRunUsageSchema=z49.object({provider:z49.string().min(1),providerCredits:z49.number().nonnegative().optional(),providerCostUsd:z49.number().nonnegative().optional(),requests:z49.number().int().nonnegative().optional()}),ProjectIntegrationToolRunBillingSchema=z49.object({credits:z49.number().int().nonnegative()}),FirecrawlScrapeToolOutputSchema=z49.object({url:z49.string(),provider:z49.literal("firecrawl"),title:z49.string().optional(),statusCode:z49.number().optional(),markdown:z49.string().optional(),summary:z49.string().optional(),links:z49.array(z49.string()).optional(),images:z49.array(z49.string()).optional(),html:z49.string().optional(),json:z49.unknown().optional(),branding:z49.record(z49.string(),z49.unknown()).optional(),warning:z49.string().optional()}),FirecrawlSearchToolOutputSchema=z49.object({query:z49.string(),provider:z49.literal("firecrawl"),warning:z49.string().optional(),results:z49.array(z49.object({title:z49.string(),url:z49.string(),snippet:z49.string().optional(),content:z49.string().optional(),score:z49.number().optional(),publishedAt:z49.string().optional()}))}),FirecrawlResearchPaperSchema=z49.object({paperId:z49.string(),primaryId:z49.string().optional(),ids:z49.record(z49.string(),z49.array(z49.string())).optional(),title:z49.string().optional(),abstract:z49.string().optional(),score:z49.number().optional()}).passthrough(),FirecrawlResearchPassageSchema=z49.object({text:z49.string(),score:z49.number().optional()}).passthrough(),FirecrawlDeveloperSearchToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),results:z49.array(z49.object({id:z49.string(),type:z49.string().min(1).optional(),url:z49.string(),title:z49.string().optional(),passages:z49.array(z49.object({text:z49.string()}).passthrough())}).passthrough()),coverage:z49.record(z49.string(),z49.string()).optional(),reranked:z49.boolean().optional(),repos:z49.array(z49.record(z49.string(),z49.unknown())).optional(),sources:z49.array(z49.record(z49.string(),z49.unknown())).optional()}),FirecrawlResearchSearchToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),results:z49.array(FirecrawlResearchPaperSchema)}),FirecrawlResearchPaperToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),paper:z49.record(z49.string(),z49.unknown()),paperId:z49.string().optional(),query:z49.string().optional(),passages:z49.array(FirecrawlResearchPassageSchema).optional()}),FirecrawlResearchRelatedToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),results:z49.array(FirecrawlResearchPaperSchema),poolSize:z49.number().int().nonnegative(),truncated:z49.boolean(),note:z49.string().nullable().optional()}),FirecrawlMapToolOutputSchema=z49.object({url:z49.string(),provider:z49.literal("firecrawl"),count:z49.number(),links:z49.array(z49.object({url:z49.string(),title:z49.string().optional(),description:z49.string().optional()}))}),FirecrawlCrawlToolOutputSchema=z49.object({url:z49.string(),provider:z49.literal("firecrawl"),total:z49.number(),pages:z49.array(z49.object({url:z49.string(),title:z49.string().optional(),statusCode:z49.number().optional(),markdown:z49.string().optional(),summary:z49.string().optional(),links:z49.array(z49.string()).optional(),images:z49.array(z49.string()).optional(),html:z49.string().optional(),warning:z49.string().optional()})),warning:z49.string().optional()}),FirecrawlMonitorScheduleOutputSchema=z49.object({cron:z49.string().optional(),text:z49.string().optional(),timezone:z49.string().optional()}).passthrough(),FirecrawlMonitorTargetOutputSchema=z49.object({id:z49.string().optional(),type:z49.enum(["scrape","crawl","search"]).optional(),urls:z49.array(z49.string()).optional(),queries:z49.array(z49.string()).optional(),searchWindow:z49.string().optional(),maxResults:z49.number().optional(),includeDomains:z49.array(z49.string()).optional(),excludeDomains:z49.array(z49.string()).optional(),scrapeOptions:z49.record(z49.string(),z49.unknown()).optional()}).passthrough(),FirecrawlMonitorOutputSchema=z49.object({id:z49.string(),name:z49.string(),status:z49.string().optional(),schedule:FirecrawlMonitorScheduleOutputSchema.optional(),nextRunAt:z49.string().nullable().optional(),lastRunAt:z49.string().nullable().optional(),currentCheckId:z49.string().nullable().optional(),targets:z49.array(FirecrawlMonitorTargetOutputSchema).optional(),goal:z49.string().nullable().optional(),judgeEnabled:z49.boolean().optional(),estimatedCreditsPerMonth:z49.number().optional(),createdAt:z49.string().optional(),updatedAt:z49.string().optional()}).passthrough(),FirecrawlMonitorCheckOutputSchema=z49.object({id:z49.string(),monitorId:z49.string(),scheduledFor:z49.string().nullable().optional(),startedAt:z49.string().nullable().optional(),finishedAt:z49.string().nullable().optional(),estimatedCredits:z49.number().nullable().optional(),reservedCredits:z49.number().nullable().optional(),actualCredits:z49.number().nullable().optional(),billingStatus:z49.string().nullable().optional(),summary:z49.object({totalPages:z49.number().optional(),same:z49.number().optional(),changed:z49.number().optional(),new:z49.number().optional(),removed:z49.number().optional(),error:z49.number().optional()}).passthrough().optional(),error:z49.string().nullable().optional(),createdAt:z49.string().optional(),updatedAt:z49.string().optional()}).passthrough(),FirecrawlMonitorListToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),monitors:z49.array(FirecrawlMonitorOutputSchema)}),FirecrawlMonitorDetailToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),monitor:FirecrawlMonitorOutputSchema}),FirecrawlMonitorDeleteToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),monitorId:z49.string(),deleted:z49.boolean()}),FirecrawlMonitorChecksToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),monitorId:z49.string(),checks:z49.array(FirecrawlMonitorCheckOutputSchema)}),FirecrawlMonitorCheckDetailToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),monitorId:z49.string(),check:FirecrawlMonitorCheckOutputSchema,next:z49.string().optional()}),FirecrawlToolKeySchema=z49.enum(["search","developer.search","research.search","research.paper","research.related","scrape","map","crawl","monitor.create","monitor.update","monitor.list","monitor.get","monitor.pause","monitor.resume","monitor.delete","monitor.run","monitor.checks","monitor.check"]),FirecrawlToolOutputSchema=z49.union([FirecrawlSearchToolOutputSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlScrapeToolOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema]),ProjectIntegrationToolRunBaseSchema=z49.object({projectId:z49.uuid(),integrationKey:z49.string().min(1),tool:z49.string().min(1),connectionAlias:z49.string().min(1).nullable().optional(),output:z49.record(z49.string(),z49.unknown()),executedAt:z49.coerce.date()}),ProjectIntegrationToolRunDTOSchema=z49.discriminatedUnion("authMode",[ProjectIntegrationToolRunBaseSchema.extend({authMode:z49.literal("fimo"),billing:ProjectIntegrationToolRunBillingSchema,usage:z49.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z49.literal("personal"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z49.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z49.literal("oauth"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z49.undefined().optional()})]),ProjectIntegrationToolRunDTO=createDTO(ProjectIntegrationToolRunDTOSchema),IntegrationsListResponseSchema=createResponseSchema(z49.array(ProjectIntegrationStatusDTOSchema)),IntegrationInfoResponseSchema=createResponseSchema(IntegrationInfoDTOSchema),ProjectIntegrationStatusResponseSchema=createResponseSchema(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationResponseSchema=createResponseSchema(ProjectIntegrationInstallationDTOSchema),ProjectIntegrationToolRunResponseSchema=createResponseSchema(ProjectIntegrationToolRunDTOSchema),StartProjectIntegrationConnectResponseResponseSchema=createResponseSchema(StartProjectIntegrationConnectResponseSchema),OrganizationIntegrationConnectionResponseSchema=createResponseSchema(OrganizationIntegrationConnectionDTOSchema),ProjectIntegrationConnectionsResponseSchema=createResponseSchema(z49.array(ProjectIntegrationConnectionDTOSchema)),ProjectIntegrationConnectResponseResponseSchema=createResponseSchema(ProjectIntegrationConnectResponseSchema),AddProjectMcpIntegrationResponseResponseSchema=createResponseSchema(AddProjectMcpIntegrationResponseSchema),ReusableMcpServersResponseSchema=createResponseSchema(z49.array(ReusableMcpServerDTOSchema)),ProjectChannelBindingResponseSchema=createResponseSchema(ProjectChannelBindingDTOSchema),ProjectChannelBindingsResponseSchema=createResponseSchema(z49.array(ProjectChannelBindingDTOSchema)),ProjectChannelCandidatesResponseSchema=createResponseSchema(z49.array(ProjectChannelCandidateDTOSchema))}});import{z as z50}from"zod";var IntegrationIdSchema,IntegrationScopeSchema,IntegrationOAuthSchema,IntegrationApiKeySchema,IntegrationProviderAuthSchema,IntegrationMcpAuthSchema,IntegrationAuthSchema,IntegrationRecipeSchema,IntegrationSettingSchema,IntegrationToolsSchema,IntegrationSkillSchema,IntegrationManifestSchema,IntegrationPermissionDTOSchema,IntegrationSettingDefinitionDTOSchema,IntegrationKindSchema,IntegrationSummaryDTOSchema,IntegrationAccountDTOSchema,IntegrationSiteDTOSchema,OrganizationIntegrationDTOSchema,ProjectIntegrationDTOSchema,IntegrationReturnPathSchema,StartIntegrationInstallRequestSchema,StartIntegrationInstallDTOSchema,AddOrganizationMcpServerDTOSchema,ConnectIntegrationKeyRequestSchema,ReplaceIntegrationServerCredentialsRequestSchema,UpdateIntegrationSiteRequestSchema,UpdateIntegrationSitesRequestSchema,UpdateProjectIntegrationSettingsRequestSchema,IntegrationSettingOptionDTOSchema,IntegrationToolMatchDTOSchema,ProjectIntegrationGuideDTOSchema,APPROVAL_TOKEN_MAX,REQUEST_TOKEN_MAX,RunIntegrationToolRequestSchema,IntegrationApprovalCallShape,IntegrationToolRunResultDTOSchema,IntegrationApprovalPreviewRequestSchema,IntegrationApprovalPreviewDTOSchema,RoutineIntegrationApprovalSchema,IntegrationApprovalDecisionSchema,DecideIntegrationApprovalRequestSchema,IntegrationApprovalDecisionDTOSchema,IntegrationAgentAccessDTOSchema,init_integration_catalog_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/integration-catalog.dto.js"(){"use strict";init_integration_dto();IntegrationIdSchema=z50.string().min(2).max(80).regex(/^[a-z0-9][a-z0-9-]*$/,"App ids use lowercase letters, digits and dashes."),IntegrationScopeSchema=z50.strictObject({scope:z50.string().min(1),reason:z50.string().min(1).max(200)}),IntegrationOAuthSchema=z50.strictObject({id:z50.string().min(1).max(40),label:z50.string().min(1).max(80),kind:z50.literal("oauth"),actor:z50.literal("user").default("user"),authorizationUrl:z50.url(),tokenUrl:z50.url(),revocationUrl:z50.url().optional(),userInfoUrl:z50.url().optional(),client:z50.strictObject({idEnv:z50.string().min(1),secretEnv:z50.string().min(1)}),authorizeParams:z50.record(z50.string(),z50.string()).default({}),scopes:z50.array(IntegrationScopeSchema).min(1)}),IntegrationApiKeySchema=z50.strictObject({id:z50.string().min(1).max(40),label:z50.string().min(1).max(80),kind:z50.literal("apiKey"),keyLabel:z50.string().min(1).max(80),placeholder:z50.string().min(1).max(40).optional(),helpUrl:z50.url()}),IntegrationProviderAuthSchema=z50.strictObject({id:z50.string().min(1).max(40),label:z50.string().min(1).max(80),kind:z50.literal("provider")}),IntegrationMcpAuthSchema=z50.strictObject({id:z50.string().min(1).max(40),label:z50.string().min(1).max(80),kind:z50.literal("mcp"),methods:z50.array(McpIntegrationSetupAuthSchema).min(1),scopes:z50.array(z50.string().min(1)).min(1).optional(),header:z50.object({name:z50.string().min(1).max(80),valuePrefix:z50.string().max(80)}).optional()}),IntegrationAuthSchema=z50.discriminatedUnion("kind",[IntegrationOAuthSchema,IntegrationApiKeySchema,IntegrationProviderAuthSchema,IntegrationMcpAuthSchema]),IntegrationRecipeSchema=z50.strictObject({title:z50.string().min(1).max(80),description:z50.string().min(1).max(300),command:z50.string().min(1).optional()}),IntegrationSettingSchema=z50.strictObject({type:z50.enum(["string","choice"]),label:z50.string().min(1).max(80),description:z50.string().min(1).max(300).optional(),required:z50.boolean().default(!1),optionsFrom:z50.strictObject({tool:z50.string().min(1)}).optional()}),IntegrationToolsSchema=z50.discriminatedUnion("source",[z50.strictObject({source:z50.literal("hosted")}),z50.strictObject({source:z50.literal("mcp"),url:z50.url()})]),IntegrationSkillSchema=z50.strictObject({name:z50.string().min(1).max(64),description:z50.string().min(1).max(300),content:z50.string().min(1)}),IntegrationManifestSchema=z50.strictObject({apiVersion:z50.literal(1),id:IntegrationIdSchema,version:z50.string().regex(/^\d+\.\d+\.\d+$/),listing:z50.strictObject({name:z50.string().min(1).max(60),description:z50.string().min(1).max(200),details:z50.string().min(1).max(1e3),icon:z50.string().min(1),category:z50.enum(["seo","ai-visibility","analytics","communication"]),publisher:z50.string().min(1).max(60),agentReads:z50.strictObject({label:z50.string().min(1).max(80),description:z50.string().min(1).max(200)}).optional()}),auth:z50.array(IntegrationAuthSchema).min(1),identity:z50.strictObject({label:z50.string().min(1)}).optional(),settings:z50.record(z50.string().regex(/^[a-zA-Z][a-zA-Z0-9]*$/),IntegrationSettingSchema).default({}),tools:IntegrationToolsSchema,skills:z50.array(IntegrationSkillSchema).default([]),recipes:z50.array(IntegrationRecipeSchema).default([])}),IntegrationPermissionDTOSchema=z50.object({scope:z50.string(),reason:z50.string()}),IntegrationSettingDefinitionDTOSchema=z50.object({key:z50.string(),type:z50.enum(["string","choice"]),label:z50.string(),description:z50.string().nullable(),required:z50.boolean(),hasOptions:z50.boolean()}),IntegrationKindSchema=z50.enum(["catalog","custom","builtIn"]),IntegrationSummaryDTOSchema=z50.object({id:z50.string(),kind:IntegrationKindSchema,integrationKey:z50.string(),host:z50.string().nullable(),apiKey:z50.object({label:z50.string(),placeholder:z50.string().nullable(),helpUrl:z50.string(),primary:z50.boolean()}).nullable(),mcp:z50.object({url:z50.string(),methods:z50.array(McpIntegrationSetupAuthSchema),header:z50.object({name:z50.string(),valuePrefix:z50.string()}).nullable()}).nullable(),name:z50.string(),description:z50.string(),details:z50.string(),icon:z50.string(),category:z50.string(),publisher:z50.string(),signInLabel:z50.string(),permissions:z50.array(IntegrationPermissionDTOSchema),readOnly:z50.boolean(),settings:z50.array(IntegrationSettingDefinitionDTOSchema)}),IntegrationAccountDTOSchema=z50.object({connectionId:z50.uuid(),alias:z50.string(),accountName:z50.string().nullable(),status:z50.enum(["active","revoked"]),authKind:z50.enum(["oauth","api_key"]),connectedAt:z50.coerce.date()}),IntegrationSiteDTOSchema=z50.object({projectId:z50.uuid(),projectName:z50.string(),enabled:z50.boolean(),granted:z50.boolean(),connectionId:z50.uuid().nullable(),settings:z50.record(z50.string(),z50.string()),missingSettings:z50.array(z50.string())}),OrganizationIntegrationDTOSchema=IntegrationSummaryDTOSchema.extend({installed:z50.boolean(),accounts:z50.array(IntegrationAccountDTOSchema),siteAccess:z50.enum(["all","selected"]),sites:z50.array(IntegrationSiteDTOSchema)}),ProjectIntegrationDTOSchema=IntegrationSummaryDTOSchema.extend({installed:z50.boolean(),enabled:z50.boolean(),granted:z50.boolean(),accountName:z50.string().nullable(),settingsValues:z50.record(z50.string(),z50.string()),missingSettings:z50.array(z50.string()),tools:z50.array(z50.object({key:z50.string(),name:z50.string(),description:z50.string(),effect:IntegrationToolEffectSchema}))}),IntegrationReturnPathSchema=z50.string().min(1).max(500).refine(value=>value.startsWith("/app/")&&!value.startsWith("//"),"Return path must be inside the Fimo app."),StartIntegrationInstallRequestSchema=z50.object({projectId:z50.uuid().optional(),returnTo:IntegrationReturnPathSchema.optional()}),StartIntegrationInstallDTOSchema=z50.object({connectUrl:z50.url().nullable(),expiresAt:z50.coerce.date().nullable()}),AddOrganizationMcpServerDTOSchema=StartIntegrationInstallDTOSchema.extend({integrationId:z50.string()}),ConnectIntegrationKeyRequestSchema=z50.object({key:z50.string().trim().min(1).max(500),projectId:z50.uuid().optional()}),ReplaceIntegrationServerCredentialsRequestSchema=z50.object({token:z50.string().min(1).max(8e3).optional(),secrets:McpSecretMapSchema.optional()}).refine(value=>!!value.token!=!!value.secrets,"Send either a token or the header values."),UpdateIntegrationSiteRequestSchema=z50.object({enabled:z50.boolean(),connectionId:z50.uuid().optional()}),UpdateIntegrationSitesRequestSchema=z50.object({access:z50.enum(["all","selected"]).optional(),projectIds:z50.array(z50.uuid()).max(1e3),connectionId:z50.uuid().optional()}),UpdateProjectIntegrationSettingsRequestSchema=z50.object({settings:z50.record(z50.string(),z50.string().max(500))}),IntegrationSettingOptionDTOSchema=z50.object({value:z50.string(),label:z50.string(),suggested:z50.boolean()}),IntegrationToolMatchDTOSchema=z50.object({integrationId:z50.string(),integrationName:z50.string(),key:z50.string(),name:z50.string(),description:z50.string(),effect:IntegrationToolEffectSchema,input:z50.record(z50.string(),z50.unknown())}),ProjectIntegrationGuideDTOSchema=z50.object({integrationId:z50.string(),name:z50.string(),description:z50.string(),content:z50.string()}),APPROVAL_TOKEN_MAX=4e3,REQUEST_TOKEN_MAX=32e3,RunIntegrationToolRequestSchema=z50.object({tool:z50.string().min(1).max(120),input:z50.record(z50.string(),z50.unknown()).default({}),approval:z50.string().min(1).max(APPROVAL_TOKEN_MAX).optional(),readOnly:z50.boolean().optional()}),IntegrationApprovalCallShape={integration:z50.object({id:z50.string(),name:z50.string()}),tool:z50.object({key:z50.string(),name:z50.string(),effect:IntegrationToolEffectSchema}),input:z50.record(z50.string(),z50.unknown()),reason:z50.string(),canAlwaysAllow:z50.boolean()},IntegrationToolRunResultDTOSchema=z50.discriminatedUnion("status",[z50.object({status:z50.literal("ok"),output:z50.record(z50.string(),z50.unknown())}),z50.object({status:z50.literal("approval_required"),request:z50.string(),approveUrl:z50.string(),...IntegrationApprovalCallShape}),z50.object({status:z50.literal("blocked"),reason:z50.string()})]),IntegrationApprovalPreviewRequestSchema=z50.object({request:z50.string().min(1).max(REQUEST_TOKEN_MAX)}),IntegrationApprovalPreviewDTOSchema=z50.object({...IntegrationApprovalCallShape,allowOnce:z50.boolean(),expiresAt:z50.coerce.date()}),RoutineIntegrationApprovalSchema=IntegrationApprovalPreviewDTOSchema.pick({integration:!0,tool:!0,reason:!0,canAlwaysAllow:!0,allowOnce:!0}).extend({request:z50.string()}),IntegrationApprovalDecisionSchema=z50.enum(["allow","always","decline"]),DecideIntegrationApprovalRequestSchema=z50.object({request:z50.string().min(1).max(REQUEST_TOKEN_MAX),decision:IntegrationApprovalDecisionSchema}),IntegrationApprovalDecisionDTOSchema=z50.object({decision:IntegrationApprovalDecisionSchema,approval:z50.string().optional(),resumed:z50.boolean().optional()}),IntegrationAgentAccessDTOSchema=z50.object({reads:z50.object({label:z50.string(),description:z50.string()}).nullable(),tools:z50.array(z50.object({tool:z50.string(),label:z50.string(),description:z50.string(),allowed:z50.boolean()}))})}});import{z as z51}from"zod";var SCHEDULE_NOTIFICATION_TOPICS,ScheduleNotificationTopicSchema,USER_MANAGED_NOTIFICATION_TOPICS,UserManagedNotificationTopicSchema,MAX_SCHEDULE_SUBSCRIBERS,ScheduleSubscriberDeliveryStateSchema,ScheduleSubscriberCandidateSchema,ScheduleNotificationSettingsSchema,ScheduleNotificationSettingsResponseSchema,UpdateScheduleSubscribersRequestSchema,UserNotificationPreferenceSchema,SCHEDULE_OPT_OUT_LINK_ACTIONS,ScheduleOptOutLinkActionSchema,SCHEDULE_OPT_OUT_ACTIONS,ScheduleOptOutActionSchema,ScheduleOptOutStateSchema,ScheduleOptOutResponseSchema,FollowedScheduleSchema,FollowedSchedulesSchema,FollowedSchedulesResponseSchema,init_schedule_notifications_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schedule-notifications.dto.js"(){"use strict";init_response();SCHEDULE_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance"],ScheduleNotificationTopicSchema=z51.enum(SCHEDULE_NOTIFICATION_TOPICS),USER_MANAGED_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance","agent_runtime_allowance"],UserManagedNotificationTopicSchema=z51.enum(USER_MANAGED_NOTIFICATION_TOPICS),MAX_SCHEDULE_SUBSCRIBERS=5,ScheduleSubscriberDeliveryStateSchema=z51.enum(["deliverable","suppressed"]),ScheduleSubscriberCandidateSchema=z51.object({userId:z51.string().min(1),name:z51.string(),email:z51.string().min(1),subscribed:z51.boolean(),deliveryState:ScheduleSubscriberDeliveryStateSchema}),ScheduleNotificationSettingsSchema=z51.object({maxSubscribers:z51.number().int().positive(),subscriberCount:z51.number().int().nonnegative(),effectiveRecipientCount:z51.number().int().nonnegative(),currentUserSubscribed:z51.boolean(),candidates:z51.array(ScheduleSubscriberCandidateSchema).optional()}),ScheduleNotificationSettingsResponseSchema=createResponseSchema(ScheduleNotificationSettingsSchema),UpdateScheduleSubscribersRequestSchema=z51.object({userIds:z51.array(z51.string().min(1)).max(MAX_SCHEDULE_SUBSCRIBERS).refine(userIds=>new Set(userIds).size===userIds.length,"Follower ids must be unique.")}),UserNotificationPreferenceSchema=z51.object({topic:UserManagedNotificationTopicSchema,enabled:z51.boolean(),source:z51.enum(["default","explicit"])}),SCHEDULE_OPT_OUT_LINK_ACTIONS=["unfollow_schedule","disable_topic"],ScheduleOptOutLinkActionSchema=z51.enum(SCHEDULE_OPT_OUT_LINK_ACTIONS),SCHEDULE_OPT_OUT_ACTIONS=["unfollow_schedule","unfollow_all_schedules","disable_topic"],ScheduleOptOutActionSchema=z51.enum(SCHEDULE_OPT_OUT_ACTIONS),ScheduleOptOutStateSchema=z51.object({action:ScheduleOptOutActionSchema,topic:ScheduleNotificationTopicSchema,scheduleName:z51.string().nullable(),maskedEmail:z51.string().min(1),applied:z51.boolean(),expiresAt:z51.coerce.date()}),ScheduleOptOutResponseSchema=createResponseSchema(ScheduleOptOutStateSchema),FollowedScheduleSchema=z51.object({scheduleId:z51.string().min(1),scheduleName:z51.string(),projectId:z51.string().min(1),projectName:z51.string(),env:z51.string().min(1)}),FollowedSchedulesSchema=z51.object({schedules:z51.array(FollowedScheduleSchema)}),FollowedSchedulesResponseSchema=createResponseSchema(FollowedSchedulesSchema)}});import{z as z52}from"zod";var PROJECT_SECRET_KEY_PATTERN,PUBLIC_PROJECT_SECRET_PREFIX_PATTERN,RESERVED_PROJECT_SECRET_KEYS,ProjectSecretKeySchema,ProjectScheduleStatusSchema,ProjectScheduleDTOSchema,ProjectScheduleDTO,CreateProjectScheduleRequestSchema,UpdateProjectScheduleRequestSchema,ProjectScheduleRunStatusSchema,ProjectScheduleRunTriggerSchema,ProjectScheduleRunSecretSnapshotStateSchema,ProjectScheduleRunSecretResolutionSchema,ProjectSchedulePolicySchema,SchedulePolicyStateSchema,ProjectSchedulePlanSnapshotSchema,ProjectScheduleUsageSchema,ProjectScheduleRunDTOSchema,ProjectScheduleRunDTO,ProjectScheduleRunSecretSnapshotSchema,ProjectScheduleRunDetailDTOSchema,ProjectScheduleRunDetailDTO,RunProjectScheduleRequestSchema,ProjectScheduleRunsQuerySchema,ProjectScheduleResponseSchema,ProjectSchedulesListDataSchema,ProjectSchedulesListResponseSchema,ProjectSchedulesOverviewResponseSchema,ProjectScheduleDetailDataSchema,ProjectScheduleDetailResponseSchema,ProjectScheduleRunsPageSchema,ProjectScheduleRunsResponseSchema,ProjectScheduleRunResponseSchema,ProjectScheduleRunDetailResponseSchema,init_schedule_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schedule.dto.js"(){"use strict";init_common();init_env();init_create_dto();init_response();init_schedule_notifications_dto();PROJECT_SECRET_KEY_PATTERN=/^[A-Z_][A-Z0-9_]*$/,PUBLIC_PROJECT_SECRET_PREFIX_PATTERN=/^(PUBLIC_|VITE_|NEXT_PUBLIC_|NUXT_PUBLIC_)/,RESERVED_PROJECT_SECRET_KEYS=new Set([...FIMO_MANAGED_PROJECT_ENV_KEYS,"FIMO_SCHEDULE_ID","FIMO_SCHEDULE_RUN_ID","FIMO_SCHEDULE_NAME"]),ProjectSecretKeySchema=z52.string().min(1).max(255).superRefine((key,context)=>{PROJECT_SECRET_KEY_PATTERN.test(key)?RESERVED_PROJECT_SECRET_KEYS.has(key)?context.addIssue({code:"custom",message:`Secret key '${key}' is managed by Fimo and cannot be stored in project secrets.`}):PUBLIC_PROJECT_SECRET_PREFIX_PATTERN.test(key)&&context.addIssue({code:"custom",message:`Secret key '${key}' uses a public variable prefix. Store public values with fimo vars instead.`}):context.addIssue({code:"custom",message:`Secret key '${key}' must be UPPER_SNAKE_CASE.`})}),ProjectScheduleStatusSchema=z52.enum(["ok","failed"]),ProjectScheduleDTOSchema=BaseEntitySchema.extend({projectId:z52.uuid(),env:z52.string().min(1),name:z52.string().min(1),cron:z52.string().min(1),command:z52.string().min(1),secretKeys:z52.array(z52.string().min(1)),enabled:z52.boolean(),lastRunAt:z52.coerce.date().nullable(),lastStatus:ProjectScheduleStatusSchema.nullable(),lastError:z52.string().nullable(),suspendedAt:z52.coerce.date().nullable().optional(),suspensionReason:z52.string().nullable().optional(),overPolicyReasons:z52.array(z52.string()).optional()}),ProjectScheduleDTO=createDTO(ProjectScheduleDTOSchema),CreateProjectScheduleRequestSchema=z52.object({name:z52.string().min(1).max(120),cron:z52.string().min(1).max(120),command:z52.string().min(1).max(500),secretKeys:z52.array(ProjectSecretKeySchema).default([]),enabled:z52.boolean().optional()}),UpdateProjectScheduleRequestSchema=z52.object({name:z52.string().min(1).max(120).optional(),cron:z52.string().min(1).max(120).optional(),command:z52.string().min(1).max(500).optional(),secretKeys:z52.array(ProjectSecretKeySchema).optional()}).refine(request=>Object.keys(request).length>0,"Pass at least one schedule field to update."),ProjectScheduleRunStatusSchema=z52.enum(["queued","running","succeeded","failed","skipped"]),ProjectScheduleRunTriggerSchema=z52.enum(["cron","ui","cli"]),ProjectScheduleRunSecretSnapshotStateSchema=z52.enum(["pending","resolved","failed"]),ProjectScheduleRunSecretResolutionSchema=z52.enum(["resolved","missing","deleted","recreated","rotated"]),ProjectSchedulePolicySchema=z52.object({maxRuns:z52.number().int().positive(),retentionDays:z52.number().int().positive().nullable(),outputRetentionDays:z52.number().int().positive(),maxOutputBytes:z52.number().int().positive()}),SchedulePolicyStateSchema=z52.enum(["ok","near_limit","exhausted","over_policy"]),ProjectSchedulePlanSnapshotSchema=z52.object({code:z52.enum(["Free","PAYG","Starter","Premium","Pro"]),source:z52.enum(["cached_subscription","free_fallback"]),activeSchedules:z52.object({used:z52.number().int().nonnegative(),limit:z52.number().int().nonnegative()}),minCadenceMinutes:z52.number().int().positive(),maxRunMs:z52.number().int().positive(),concurrency:z52.object({used:z52.number().int().nonnegative(),limit:z52.number().int().positive()}),compute:z52.object({settledMs:z52.number().int().nonnegative(),activeMs:z52.number().int().nonnegative(),reservedMs:z52.number().int().nonnegative().optional(),includedMs:z52.number().int().nonnegative(),remainingMs:z52.number().int().nonnegative(),resetsAt:z52.coerce.date()}),upgrade:z52.object({code:z52.literal("Pro"),activeSchedulesLimit:z52.number().int().positive(),minCadenceMinutes:z52.number().int().positive(),maxRunMs:z52.number().int().positive(),maxConcurrentRuns:z52.number().int().positive(),computeIncludedMs:z52.number().int().positive()}).optional(),state:SchedulePolicyStateSchema,overPolicyReasons:z52.array(z52.string())}),ProjectScheduleUsageSchema=z52.object({runCount:z52.number().int().nonnegative(),runsWithOutput:z52.number().int().nonnegative()}),ProjectScheduleRunDTOSchema=z52.object({id:z52.uuid(),scheduleId:z52.uuid(),projectId:z52.uuid(),env:z52.string().min(1),scheduleName:z52.string().min(1),command:z52.string().min(1),status:ProjectScheduleRunStatusSchema,trigger:ProjectScheduleRunTriggerSchema,triggeredBy:z52.object({id:z52.string().min(1),name:z52.string().min(1)}).nullable(),queuedAt:z52.coerce.date(),startedAt:z52.coerce.date().nullable(),finishedAt:z52.coerce.date().nullable(),exitCode:z52.number().int().nullable(),errorCode:z52.string().nullable(),error:z52.string().nullable(),outputBytes:z52.number().int().nonnegative(),outputTruncated:z52.boolean(),outputExpiresAt:z52.coerce.date().nullable(),metadataExpiresAt:z52.coerce.date().nullable()}),ProjectScheduleRunDTO=createDTO(ProjectScheduleRunDTOSchema),ProjectScheduleRunSecretSnapshotSchema=z52.object({state:ProjectScheduleRunSecretSnapshotStateSchema,capturedAt:z52.coerce.date().nullable(),items:z52.array(z52.object({key:z52.string().min(1),updatedAt:z52.coerce.date().nullable(),resolution:ProjectScheduleRunSecretResolutionSchema}))}),ProjectScheduleRunDetailDTOSchema=ProjectScheduleRunDTOSchema.extend({output:z52.string().nullable(),secretSnapshot:ProjectScheduleRunSecretSnapshotSchema}),ProjectScheduleRunDetailDTO=createDTO(ProjectScheduleRunDetailDTOSchema),RunProjectScheduleRequestSchema=z52.object({trigger:z52.enum(["ui","cli"])}),ProjectScheduleRunsQuerySchema=z52.object({limit:z52.coerce.number().int().min(1).max(100).default(25),cursor:z52.string().trim().min(1).optional(),status:ProjectScheduleRunStatusSchema.optional()}),ProjectScheduleResponseSchema=createResponseSchema(ProjectScheduleDTOSchema),ProjectSchedulesListDataSchema=z52.object({items:z52.array(ProjectScheduleDTOSchema),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectSchedulesListResponseSchema=createResponseSchema(z52.array(ProjectScheduleDTOSchema)),ProjectSchedulesOverviewResponseSchema=createResponseSchema(ProjectSchedulesListDataSchema),ProjectScheduleDetailDataSchema=z52.object({schedule:ProjectScheduleDTOSchema,usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema,notifications:ScheduleNotificationSettingsSchema.optional()}),ProjectScheduleDetailResponseSchema=createResponseSchema(ProjectScheduleDetailDataSchema),ProjectScheduleRunsPageSchema=z52.object({items:z52.array(ProjectScheduleRunDTOSchema),nextCursor:z52.string().nullable(),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectScheduleRunsResponseSchema=createResponseSchema(ProjectScheduleRunsPageSchema),ProjectScheduleRunResponseSchema=createResponseSchema(ProjectScheduleRunDTOSchema),ProjectScheduleRunDetailResponseSchema=createResponseSchema(ProjectScheduleRunDetailDTOSchema)}});import{z as z53}from"zod";var WORK_NOTIFICATION_TOPICS,WorkNotificationTopicSchema,PUBLICATION_NOTIFICATION_TOPICS,NOTIFICATION_TOPICS,NotificationTopicSchema,NOTIFICATION_DELIVERY_CADENCES,NotificationDeliveryCadenceSchema,NOTIFICATION_CHANNELS,NotificationChannelSchema,NOTIFICATION_ACTOR_KINDS,NotificationActorKindSchema,NotificationActorSchema,NotificationSummarySchema,ReportBriefPayloadSchema,NotificationRunOutcomeSchema,NotificationRetainedReasonSchema,NotificationWorkSessionSchema,NotificationPayloadSchema,NotificationEnvelopeSchema,NotificationDeliveryStateSchema,NotificationDeliverySchema,NotificationPreferenceSchema,init_notification_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/notification.dto.js"(){"use strict";init_agent_report();WORK_NOTIFICATION_TOPICS=["agent_run_outcome","agent_retained_review","agent_conflict"],WorkNotificationTopicSchema=z53.enum(WORK_NOTIFICATION_TOPICS),PUBLICATION_NOTIFICATION_TOPICS=["publication_failed"],NOTIFICATION_TOPICS=[...WORK_NOTIFICATION_TOPICS,...PUBLICATION_NOTIFICATION_TOPICS,"database_quota_exceeded"],NotificationTopicSchema=z53.enum(NOTIFICATION_TOPICS),NOTIFICATION_DELIVERY_CADENCES=["immediate","daily","off"],NotificationDeliveryCadenceSchema=z53.enum(NOTIFICATION_DELIVERY_CADENCES),NOTIFICATION_CHANNELS=["email"],NotificationChannelSchema=z53.enum(NOTIFICATION_CHANNELS),NOTIFICATION_ACTOR_KINDS=["user","agent","system"],NotificationActorKindSchema=z53.enum(NOTIFICATION_ACTOR_KINDS),NotificationActorSchema=z53.discriminatedUnion("kind",[z53.object({kind:z53.literal("user"),userId:z53.string().min(1)}).strict(),z53.object({kind:z53.literal("agent"),agentKey:z53.string().min(1).max(120),agentId:z53.uuid().optional()}).strict(),z53.object({kind:z53.literal("system")}).strict()]),NotificationSummarySchema=z53.string().trim().min(1).max(1200),ReportBriefPayloadSchema={title:z53.string().trim().min(1).max(120).optional(),brief:StoredReportBriefSchema.optional()},NotificationRunOutcomeSchema=z53.enum(["completed","failed","cancelled"]),NotificationRetainedReasonSchema=z53.enum(["review","agent_requested","recovery"]),NotificationWorkSessionSchema=z53.object({sessionId:z53.uuid(),branch:z53.string().min(1),targetBranch:z53.string().min(1),revision:z53.string().min(1),fingerprint:z53.string().min(1)}),NotificationPayloadSchema=z53.discriminatedUnion("topic",[z53.object({topic:z53.literal("database_quota_exceeded"),incidentId:z53.uuid(),observedAt:z53.iso.datetime()}).strict(),z53.object({topic:z53.literal("agent_run_outcome"),threadId:z53.uuid(),invocationId:z53.uuid(),outcome:NotificationRunOutcomeSchema,summary:NotificationSummarySchema,...ReportBriefPayloadSchema}).strict(),z53.object({topic:z53.literal("agent_retained_review"),threadId:z53.uuid().optional(),invocationId:z53.uuid().optional(),proposalId:z53.uuid().optional(),workSession:NotificationWorkSessionSchema.optional(),reason:NotificationRetainedReasonSchema,summary:NotificationSummarySchema,...ReportBriefPayloadSchema}).strict(),z53.object({topic:z53.literal("agent_conflict"),mergeId:z53.uuid(),threadId:z53.uuid().optional(),invocationId:z53.uuid().optional(),summary:NotificationSummarySchema.optional(),...ReportBriefPayloadSchema}).strict(),z53.object({topic:z53.literal("publication_failed"),publicationId:z53.uuid(),sourceBranch:z53.string().trim().min(1).max(120),failureCode:z53.string().trim().min(1).max(64),failedAt:z53.iso.datetime(),firstPublication:z53.boolean()}).strict()]),NotificationEnvelopeSchema=z53.object({id:z53.uuid(),projectId:z53.uuid(),sourceKey:z53.string().min(1).max(255),actor:NotificationActorSchema,payloadVersion:z53.literal(1),payload:NotificationPayloadSchema,createdAt:z53.coerce.date()}),NotificationDeliveryStateSchema=z53.enum(["pending","deferred","sent","suppressed","failed"]),NotificationDeliverySchema=z53.object({id:z53.uuid(),notificationRecipientId:z53.uuid(),projectId:z53.uuid(),channel:NotificationChannelSchema,state:NotificationDeliveryStateSchema,attemptCount:z53.number().int().nonnegative(),nextAttemptAt:z53.coerce.date().nullable(),lastAttemptAt:z53.coerce.date().nullable(),sentAt:z53.coerce.date().nullable(),failureCode:z53.string().max(80).nullable(),createdAt:z53.coerce.date(),updatedAt:z53.coerce.date()}),NotificationPreferenceSchema=z53.object({topic:WorkNotificationTopicSchema,channel:z53.literal("email"),enabled:z53.boolean(),cadence:NotificationDeliveryCadenceSchema.exclude(["off"]),effectiveCadence:NotificationDeliveryCadenceSchema,source:z53.enum(["default","explicit"])})}});import{z as z54}from"zod";var NOTIFICATION_PREFERENCE_GROUPS,NotificationPreferenceGroupSchema,FIMO_TOGGLE_PREFERENCE_ENTRY_IDS,FimoTogglePreferenceEntryIdSchema,FIMO_DELIVERY_PREFERENCE_ENTRY_IDS,FimoDeliveryPreferenceEntryIdSchema,MARKETING_PREFERENCE_ENTRY_PREFIX,PreferenceSourceSchema,EmailNotificationProviderSyncSchema,EmailNotificationPreferenceSchema,PROVIDER_SUBSCRIPTION_PLACEMENTS,ProviderSubscriptionPlacementSchema,PROVIDER_SUBSCRIPTION_SEMANTIC_IDS,ProviderSubscriptionSemanticIdSchema,NotificationPreferenceEntrySchema,NotificationPreferenceCatalogSchema,NotificationPreferenceCatalogResponseSchema,NotificationPreferenceEntryResponseSchema,UpdateEmailNotificationPreferenceRequestSchema,EmailNotificationPreferenceResponseSchema,UpdateNotificationPreferenceEntryRequestSchema,init_notification_preference_catalog_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/notification-preference-catalog.dto.js"(){"use strict";init_response();init_notification_dto();NOTIFICATION_PREFERENCE_GROUPS=["work_review","publishing","schedule","marketing"],NotificationPreferenceGroupSchema=z54.enum(NOTIFICATION_PREFERENCE_GROUPS),FIMO_TOGGLE_PREFERENCE_ENTRY_IDS=["work_review.agent_conflict","publishing.publication_failed","schedule.schedule_health","schedule.schedule_compute_allowance","schedule.agent_runtime_allowance"],FimoTogglePreferenceEntryIdSchema=z54.enum(FIMO_TOGGLE_PREFERENCE_ENTRY_IDS),FIMO_DELIVERY_PREFERENCE_ENTRY_IDS=["work_review.agent_retained_review","work_review.agent_run_outcome"],FimoDeliveryPreferenceEntryIdSchema=z54.enum(FIMO_DELIVERY_PREFERENCE_ENTRY_IDS),MARKETING_PREFERENCE_ENTRY_PREFIX="marketing.",PreferenceSourceSchema=z54.enum(["default","explicit"]),EmailNotificationProviderSyncSchema=z54.enum(["synced","pending","unavailable"]),EmailNotificationPreferenceSchema=z54.object({enabled:z54.boolean(),source:PreferenceSourceSchema,providerSync:EmailNotificationProviderSyncSchema}).strict(),PROVIDER_SUBSCRIPTION_PLACEMENTS=["reports","product_news"],ProviderSubscriptionPlacementSchema=z54.enum(PROVIDER_SUBSCRIPTION_PLACEMENTS),PROVIDER_SUBSCRIPTION_SEMANTIC_IDS=["weekly_analytics"],ProviderSubscriptionSemanticIdSchema=z54.enum(PROVIDER_SUBSCRIPTION_SEMANTIC_IDS),NotificationPreferenceEntrySchema=z54.discriminatedUnion("kind",[z54.object({kind:z54.literal("toggle"),id:FimoTogglePreferenceEntryIdSchema,group:z54.enum(["work_review","publishing","schedule"]),enabled:z54.boolean(),source:PreferenceSourceSchema}).strict(),z54.object({kind:z54.literal("delivery"),id:FimoDeliveryPreferenceEntryIdSchema,group:z54.literal("work_review"),cadence:NotificationDeliveryCadenceSchema,source:PreferenceSourceSchema}).strict(),z54.object({kind:z54.literal("provider_subscription"),id:z54.string().startsWith(MARKETING_PREFERENCE_ENTRY_PREFIX),group:z54.literal("marketing"),name:z54.string(),description:z54.string().nullable(),placement:ProviderSubscriptionPlacementSchema,semanticId:ProviderSubscriptionSemanticIdSchema.nullable(),enabled:z54.boolean(),source:PreferenceSourceSchema}).strict()]),NotificationPreferenceCatalogSchema=z54.object({email:EmailNotificationPreferenceSchema,entries:z54.array(NotificationPreferenceEntrySchema),unavailableGroups:z54.array(NotificationPreferenceGroupSchema)}),NotificationPreferenceCatalogResponseSchema=createResponseSchema(NotificationPreferenceCatalogSchema),NotificationPreferenceEntryResponseSchema=createResponseSchema(NotificationPreferenceEntrySchema),UpdateEmailNotificationPreferenceRequestSchema=z54.object({enabled:z54.boolean()}).strict(),EmailNotificationPreferenceResponseSchema=createResponseSchema(EmailNotificationPreferenceSchema),UpdateNotificationPreferenceEntryRequestSchema=z54.discriminatedUnion("kind",[z54.object({kind:z54.literal("toggle"),enabled:z54.boolean()}).strict(),z54.object({kind:z54.literal("delivery"),cadence:NotificationDeliveryCadenceSchema}).strict(),z54.object({kind:z54.literal("provider_subscription"),enabled:z54.boolean()}).strict()])}});import{z as z55}from"zod";var DiffRefSchema,InlineSchema,SummaryBlockSchema,EnvDiffSummarySchema,EnvDiffSummaryResultSchema,EnvDiffSummaryResultDTO,EnvDiffSummaryResponseSchema,init_env_diff_summary_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/env-diff-summary.dto.js"(){"use strict";init_create_dto();init_response();init_env_status_dto();DiffRefSchema=z55.object({surface:SurfaceNameSchema,key:z55.string(),label:z55.string()}),InlineSchema=z55.object({text:z55.string(),ref:DiffRefSchema.optional()}),SummaryBlockSchema=z55.discriminatedUnion("type",[z55.object({type:z55.literal("paragraph"),content:z55.array(InlineSchema).max(24)}),z55.object({type:z55.literal("preview"),ref:DiffRefSchema,caption:z55.string().optional()}),z55.object({type:z55.literal("code"),code:z55.string(),lang:z55.string().optional(),caption:z55.string().optional()}),z55.object({type:z55.literal("risk"),level:z55.enum(["warning","error"]),content:z55.array(InlineSchema).max(24)}),z55.object({type:z55.literal("list"),items:z55.array(z55.array(InlineSchema).max(24)).max(8)})]),EnvDiffSummarySchema=z55.object({headline:z55.string(),blocks:z55.array(SummaryBlockSchema).max(15)}),EnvDiffSummaryResultSchema=z55.object({summary:EnvDiffSummarySchema,fingerprint:z55.string(),generatedAt:z55.coerce.date(),cached:z55.boolean().optional(),credits:z55.number().int().nonnegative().optional()}),EnvDiffSummaryResultDTO=createDTO(EnvDiffSummaryResultSchema),EnvDiffSummaryResponseSchema=createResponseSchema(EnvDiffSummaryResultSchema)}});import{z as z56}from"zod";var PROJECT_ANALYTICS_PRESETS,PROJECT_ANALYTICS_GROUP_BY_OPTIONS,ProjectDailyVisitorsDTOSchema,ProjectAnalyticsBreakdownItemDTOSchema,ProjectAnalyticsPageBreakdownItemDTOSchema,ProjectAnalyticsRangeDTOSchema,ProjectAnalyticsAnnotationDTOSchema,PROJECT_ANALYTICS_DEVICE_FILTERS,ProjectPageviewAnalyticsDTOSchema,PROJECT_ANALYTICS_TRACKING_STATES,ProjectAnalyticsTrackingStatusDTOSchema,ProjectPageviewAnalyticsDTO,ProjectAnalyticsTrackingStatusDTO,ProjectAnalyticsAnnotationDTO,init_project_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-analytics.dto.js"(){"use strict";init_create_dto();PROJECT_ANALYTICS_PRESETS=["today","yesterday","this_week","this_month","last_7_days","last_30_days","last_90_days","last_week","last_month","last_quarter","last_year","custom"],PROJECT_ANALYTICS_GROUP_BY_OPTIONS=["day","week","month","quarter"],ProjectDailyVisitorsDTOSchema=z56.object({date:z56.string(),visitors:z56.number().int().nonnegative()}),ProjectAnalyticsBreakdownItemDTOSchema=z56.object({key:z56.string(),visitors:z56.number().int().nonnegative(),pageviews:z56.number().int().nonnegative()}),ProjectAnalyticsPageBreakdownItemDTOSchema=z56.object({path:z56.string(),pageName:z56.string().nullable().optional(),visitors:z56.number().int().nonnegative(),pageviews:z56.number().int().nonnegative()}),ProjectAnalyticsRangeDTOSchema=z56.object({preset:z56.enum(PROJECT_ANALYTICS_PRESETS),requestedFrom:z56.string(),requestedTo:z56.string(),effectiveFrom:z56.string(),effectiveTo:z56.string(),isRetentionLimited:z56.boolean(),groupBy:z56.enum(PROJECT_ANALYTICS_GROUP_BY_OPTIONS)}),ProjectAnalyticsAnnotationDTOSchema=z56.object({date:z56.string(),content:z56.string(),updatedAt:z56.string(),updatedByUserId:z56.string()}),PROJECT_ANALYTICS_DEVICE_FILTERS=["bot","desktop","mobile","tablet"],ProjectPageviewAnalyticsDTOSchema=z56.object({range:ProjectAnalyticsRangeDTOSchema,deviceFilter:z56.enum(PROJECT_ANALYTICS_DEVICE_FILTERS).nullable(),visitors:z56.number().int().nonnegative(),pageviews:z56.number().int().nonnegative(),botPageviews:z56.number().int().nonnegative(),botVisitors:z56.number().int().nonnegative(),bounceRate:z56.number().min(0).max(100),viewsPerVisit:z56.number().nonnegative(),averageVisitDurationSeconds:z56.number().nonnegative(),visitorsSeries:z56.array(ProjectDailyVisitorsDTOSchema),topPages:z56.array(ProjectAnalyticsPageBreakdownItemDTOSchema),topBrowsers:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),topDevices:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),topBots:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),topAiAssistants:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),topCountries:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),topSources:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),annotations:z56.array(ProjectAnalyticsAnnotationDTOSchema)}),PROJECT_ANALYTICS_TRACKING_STATES=["observed","waiting","unavailable"],ProjectAnalyticsTrackingStatusDTOSchema=z56.object({state:z56.enum(PROJECT_ANALYTICS_TRACKING_STATES),lastEventAt:z56.string().nullable()}),ProjectPageviewAnalyticsDTO=createDTO(ProjectPageviewAnalyticsDTOSchema),ProjectAnalyticsTrackingStatusDTO=createDTO(ProjectAnalyticsTrackingStatusDTOSchema),ProjectAnalyticsAnnotationDTO=createDTO(ProjectAnalyticsAnnotationDTOSchema)}});import{z as z57}from"zod";var ProjectInviteDTOSchema,ProjectInviteDTO,CreatedProjectInviteDTOSchema,CreatedProjectInviteDTO,AcceptedProjectInviteDTOSchema,AcceptedProjectInviteDTO,init_project_invite_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-invite.dto.js"(){"use strict";init_common();init_create_dto();ProjectInviteDTOSchema=z57.object({id:z57.string(),email:z57.email(),roleKey:ProjectRoleKeySchema,status:ProjectInviteStatusSchema,expiresAt:z57.coerce.date(),createdAt:z57.coerce.date(),inviterUserId:z57.string()}),ProjectInviteDTO=createDTO(ProjectInviteDTOSchema),CreatedProjectInviteDTOSchema=z57.object({id:z57.string(),token:z57.string()}),CreatedProjectInviteDTO=createDTO(CreatedProjectInviteDTOSchema),AcceptedProjectInviteDTOSchema=z57.object({success:z57.boolean(),projectId:z57.string().optional()}),AcceptedProjectInviteDTO=createDTO(AcceptedProjectInviteDTOSchema)}});import{z as z58}from"zod";var PublicUserDTOSchema,PublicUserDTO,ReferralCountCTOSchema,ReferralCountCTO,ReferralSummaryCTOSchema,ReferralSummaryCTO,AuthenticatedUserDTOSchema,AuthenticatedUserDTO,AuthenticatedUserResponseSchema,ReferralCountResponseSchema,ReferralSummaryResponseSchema,init_user_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/user.dto.js"(){"use strict";init_create_dto();init_response();PublicUserDTOSchema=z58.object({id:z58.string(),name:z58.string(),image:z58.string().nullable()}),PublicUserDTO=createDTO(PublicUserDTOSchema),ReferralCountCTOSchema=z58.object({count:z58.int()}),ReferralCountCTO=createDTO(ReferralCountCTOSchema),ReferralSummaryCTOSchema=z58.object({counts:z58.object({signed_up:z58.int(),activated:z58.int()}),credits:z58.object({total:z58.int(),earned:z58.int()})}),ReferralSummaryCTO=createDTO(ReferralSummaryCTOSchema),AuthenticatedUserDTOSchema=PublicUserDTOSchema.extend({email:z58.email(),emailVerified:z58.boolean(),createdAt:z58.coerce.date(),updatedAt:z58.coerce.date()}),AuthenticatedUserDTO=createDTO(AuthenticatedUserDTOSchema),AuthenticatedUserResponseSchema=createResponseSchema(AuthenticatedUserDTOSchema),ReferralCountResponseSchema=createResponseSchema(ReferralCountCTOSchema),ReferralSummaryResponseSchema=createResponseSchema(ReferralSummaryCTOSchema)}});import{z as z59}from"zod";var ProjectAccessItemDTOSchema,ProjectAccessItemDTO,PROJECT_PERMISSION_KEYS,ProjectPermissionKeySchema,ProjectPermissionsDTOSchema,ProjectPermissionsDTO,ProjectAccessDTOSchema,ProjectAccessDTO,AccessMutationResponseSchema,InviteAcceptResponseSchema,init_project_access_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-access.dto.js"(){"use strict";init_common();init_create_dto();init_response();init_project_invite_dto();init_user_dto();ProjectAccessItemDTOSchema=z59.object({id:z59.string(),principalType:ProjectPrincipalTypeSchema,principalId:z59.string().nullable(),roleKey:ProjectRoleKeySchema,createdAt:z59.coerce.date(),expiresAt:z59.coerce.date().nullable(),user:PublicUserDTOSchema.nullable(),organizationAdmin:z59.boolean().default(!1)}),ProjectAccessItemDTO=createDTO(ProjectAccessItemDTOSchema),PROJECT_PERMISSION_KEYS=["project:read","project:manage","project:publish","project:unpublish","project:duplicate","project:export","project:import","project:transfer","project:delete","acl:read","acl:grant","member:read","member:change-role","invite:read","invite:send","invite:revoke","asset:read","asset:upload","asset:manage","asset:delete","asset:generate","code:view","code:edit","content:view","knowledge:view","knowledge:edit","content:edit","chat:read","chat:prompt","history:view","history:manage","comment:read","comment:create","comment:delete","branch:create","environment:create","integration:manage","integration:run","sync:github","webhook:read","webhook:manage","schedule:read","schedule:manage","preview:view","realtime:connect","analytics:view","logs:view","domain:manage","agent:run"],ProjectPermissionKeySchema=z59.enum(PROJECT_PERMISSION_KEYS),ProjectPermissionsDTOSchema=z59.object({role:ProjectRoleKeyWithSystemSchema.nullable(),permissions:z59.record(z59.string(),z59.boolean())}),ProjectPermissionsDTO=createDTO(ProjectPermissionsDTOSchema),ProjectAccessDTOSchema=z59.object({access:z59.array(ProjectAccessItemDTOSchema),invites:z59.array(ProjectInviteDTOSchema),organization:z59.object({name:z59.string().nullable(),logo:z59.string().nullable()}).nullable()}),ProjectAccessDTO=createDTO(ProjectAccessDTOSchema),AccessMutationResponseSchema=createResponseSchema(z59.object({success:z59.boolean()})),InviteAcceptResponseSchema=createResponseSchema(z59.object({success:z59.boolean(),projectId:z59.uuid()}))}});import{z as z60}from"zod";var PublicationStateDTOSchema,PublicationStateDTO,init_publication_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/publication.dto.js"(){"use strict";init_common();init_create_dto();PublicationStateDTOSchema=z60.object({publicationStatus:PublicationStatusSchema,appUrl:z60.string().nullable(),lastPublishedAt:z60.string().nullable()}),PublicationStateDTO=createDTO(PublicationStateDTOSchema)}});import{z as z61}from"zod";var BranchHostedPreviewStatusSchema,BranchHostedPreviewSchema,init_hosted_preview_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/hosted-preview.dto.js"(){"use strict";init_env();BranchHostedPreviewStatusSchema=z61.enum(["queued","building","ready","failed"]),BranchHostedPreviewSchema=z61.object({branch:BranchSchema,revision:z61.string().min(1).max(64).nullable(),generation:z61.string().min(1).max(64),status:BranchHostedPreviewStatusSchema,url:z61.url().nullable()})}});import{z as z62}from"zod";var PreviewUpgradeRequiredSchema,PreviewBridgePackageSchema,PreviewBridgeCapabilitySchema,SandboxSessionDTOSchema,SandboxSessionDTO,SandboxSessionResponseSchema,PreviewInstallApprovalTargetSchema,PreviewInstallRepairSchema,SandboxSessionInstallPolicyErrorSchema,PreviewStartFailureSchema,SandboxPullPhaseSchema,SandboxPullFailureCodeSchema,SandboxPullFailureSchema,PreviewInstallPolicyApprovalRequestSchema,PreviewInstallPolicyApprovalEventSchema,init_sandbox_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/sandbox.dto.js"(){"use strict";init_create_dto();init_response();PreviewUpgradeRequiredSchema=z62.object({code:z62.literal("PREVIEW_UPGRADE_REQUIRED"),message:z62.string(),currentVersion:z62.number().int().positive(),targetVersion:z62.literal(4)}),PreviewBridgePackageSchema=z62.object({name:z62.string().min(1),version:z62.string().min(1)}),PreviewBridgeCapabilitySchema=z62.object({integrated:z62.boolean(),packages:z62.array(PreviewBridgePackageSchema)}),SandboxSessionDTOSchema=z62.object({url:z62.url(),expiresAt:z62.iso.datetime().nullable(),source:z62.enum(["sandbox","hosted"]).optional(),previewBridge:PreviewBridgeCapabilitySchema.optional()}),SandboxSessionDTO=createDTO(SandboxSessionDTOSchema),SandboxSessionResponseSchema=createResponseSchema(SandboxSessionDTOSchema),PreviewInstallApprovalTargetSchema=z62.object({name:z62.string().min(1),locator:z62.string().min(1).optional(),source:z62.enum(["registry","tarball","unsupported"])}).refine(target=>target.source==="tarball"==(target.locator!==void 0),{message:"locator is present exactly when source is tarball"}),PreviewInstallRepairSchema=z62.object({kind:z62.literal("dependency_build_scripts_blocked"),packageManager:z62.enum(["pnpm","yarn","bun"]),packages:z62.array(z62.string()),targets:z62.array(PreviewInstallApprovalTargetSchema).optional(),configFile:z62.string(),approvalKey:z62.string(),command:z62.string().optional(),approval:z62.object({id:z62.uuid()}).optional()}),SandboxSessionInstallPolicyErrorSchema=z62.object({code:z62.literal("PREVIEW_INSTALL_POLICY_BLOCKED"),message:z62.string(),repair:PreviewInstallRepairSchema}),PreviewStartFailureSchema=z62.object({code:z62.literal("PREVIEW_START_FAILED"),message:z62.string(),logTail:z62.array(z62.string()).optional(),logTailTruncated:z62.boolean().optional()}),SandboxPullPhaseSchema=z62.enum(["acquire","pull","sync-env","install","restart","readiness"]),SandboxPullFailureCodeSchema=z62.enum(["sync_failed","readiness_failed","install_policy_blocked"]),SandboxPullFailureSchema=z62.object({message:z62.string(),code:SandboxPullFailureCodeSchema.optional().catch(void 0),phase:SandboxPullPhaseSchema.optional().catch(void 0),exitCode:z62.number().int().optional().catch(void 0),logTail:z62.array(z62.string()).optional().catch(void 0),logTailTruncated:z62.boolean().optional().catch(void 0),repair:PreviewInstallRepairSchema.optional().catch(void 0)}),PreviewInstallPolicyApprovalRequestSchema=z62.object({approvalId:z62.uuid()}),PreviewInstallPolicyApprovalEventSchema=z62.discriminatedUnion("type",[z62.object({type:z62.literal("progress"),step:z62.enum(["approval","install","restart","readiness"]),message:z62.string()}),z62.object({type:z62.literal("approved")}),z62.object({type:z62.literal("complete")}),z62.object({type:z62.literal("error"),code:z62.enum(["stale_approval","approval_failed","install_failed","restart_failed"]),message:z62.string()})])}});import{z as z63}from"zod";var OrganizationDTOSchema,OrganizationDTO,MemberUserDTOSchema,OrganizationMemberDTOSchema,OrganizationMemberDTO,OrganizationProjectCapacityDTOSchema,OrganizationProjectCapacityDTO,init_organization_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/organization.dto.js"(){"use strict";init_common();init_create_dto();OrganizationDTOSchema=BaseEntitySchema.extend({name:z63.string(),slug:z63.string().nullable(),logo:z63.string().nullable(),metadata:z63.record(z63.string(),z63.unknown()).nullable()}),OrganizationDTO=createDTO(OrganizationDTOSchema),MemberUserDTOSchema=z63.object({id:z63.string(),name:z63.string(),email:z63.email(),image:z63.string().nullable()}),OrganizationMemberDTOSchema=z63.object({id:z63.string(),userId:z63.string(),organizationId:z63.string(),role:OrganizationRoleSchema,user:MemberUserDTOSchema,createdAt:z63.coerce.date()}),OrganizationMemberDTO=createDTO(OrganizationMemberDTOSchema),OrganizationProjectCapacityDTOSchema=z63.object({canCreateProject:z63.boolean()}),OrganizationProjectCapacityDTO=createDTO(OrganizationProjectCapacityDTOSchema)}});import{z as z64}from"zod";var CancellationReasonCodeSchema,CancellationFeedbackDTOSchema,CancellationFeedbackDTO,PlanMigrationAcceptDTOSchema,PlanMigrationPreviewDTOSchema,PlanMigrationPreviewDTO,PlanMigrationStateSchema,PlanMigrationOfferDTOSchema,PlanMigrationOfferDTO,AiCreditsEntitlementSchema,EntitlementsDTOSchema,MediaStorageUsageDTOSchema,MediaStorageUsageDTO,PendingPlanChangeDTOSchema,AutomaticSpendStopDTOSchema,HostingOverageStatusDTOSchema,HostingOverageStatusDTO,UpdateHostingOverageRequestSchema,SubscriptionDTOSchema,SubscriptionDTO,DailyCreditsStatusSchema,CreditBalanceDTOSchema,CreditBalanceDTO,MinimalCreditBalanceDTOSchema,MinimalCreditBalanceDTO,ProjectCreditBucketsDTOSchema,ProjectDailyCreditAllowanceDTOSchema,ProjectCreditBalanceDTOSchema,ProjectCreditBalanceDTO,AutoRefillConfigDTOSchema,AutoRefillConfigDTO,UpdateAutoRefillDTOSchema,OptionalSpendRefusalSchema,CreditPurchasePricingDTOSchema,CreditPurchasePricingDTO,PurchaseCreditsDTOSchema,SuccessfulPurchaseDTOSchema,SuccessfulPurchaseDTO,PortalDTOSchema,PortalDTO,PaymentRecoveryInvoiceDTOSchema,PaymentRecoveryDTOSchema,PaymentRecoveryDTO,CreditBalanceResponseSchema,MinimalCreditBalanceResponseSchema,ProjectCreditBalanceResponseSchema,AutoRefillConfigResponseSchema,CreditPurchasePricingResponseSchema,SuccessfulPurchaseResponseSchema,SubscriptionResponseSchema,EntitlementsResponseSchema,PortalResponseSchema,PaymentRecoveryResponseSchema,init_billing_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/billing.dto.js"(){"use strict";init_common();init_create_dto();init_response();CancellationReasonCodeSchema=z64.enum(["just_testing","too_expensive","not_using_enough","missing_features","bug_or_technical_issue","switching_to_another_tool","closing_or_pausing_business","other"]),CancellationFeedbackDTOSchema=z64.object({reason:CancellationReasonCodeSchema,details:z64.string().trim().max(1e3).nullable().optional().transform(value=>value||null)}).superRefine((value,ctx)=>{value.reason==="other"&&!value.details&&ctx.addIssue({code:z64.ZodIssueCode.custom,message:"Details are required when selecting other.",path:["details"]})}),CancellationFeedbackDTO=createDTO(CancellationFeedbackDTOSchema),PlanMigrationAcceptDTOSchema=z64.object({offerVersion:z64.string().trim().min(1),unusedPremiumCreditAmount:z64.number().int().nonnegative(),amountDueNow:z64.number().int().nonnegative(),renewsOn:z64.string()}),PlanMigrationPreviewDTOSchema=z64.object({currency:z64.string().trim().min(1),unusedPremiumCreditAmount:z64.number().int().nonnegative(),amountDueNow:z64.number().int().nonnegative(),startsAt:z64.string(),renewsAt:z64.string(),nextRenewalAmount:z64.number().int().nonnegative()}),PlanMigrationPreviewDTO=createDTO(PlanMigrationPreviewDTOSchema),PlanMigrationStateSchema=z64.enum(["legacy_active","notified","accepting","accepted","declining","free","expired","canceled"]),PlanMigrationOfferDTOSchema=z64.object({id:z64.string(),organizationId:z64.string(),legacySubscriptionId:z64.string(),offeredPlanCode:z64.string(),offeredPlanName:z64.string(),offeredPriceAmount:z64.number(),offeredCurrency:z64.string(),offerVersion:z64.string(),state:PlanMigrationStateSchema,checkoutToken:z64.string().nullable(),deadlineAt:z64.string(),transitions:z64.array(z64.object({event:z64.string(),fromState:PlanMigrationStateSchema,toState:PlanMigrationStateSchema,createdAt:z64.string()}))}),PlanMigrationOfferDTO=createDTO(PlanMigrationOfferDTOSchema),AiCreditsEntitlementSchema=z64.object({included:z64.number().optional(),unitPrice:z64.number().optional(),dailyCap:z64.number().nullable().optional()}),EntitlementsDTOSchema=z64.object({ai_credits:AiCreditsEntitlementSchema.optional(),analytics:z64.object({retentionDays:z64.number().int().positive(),canUseExtendedDateRanges:z64.boolean()}).optional(),history:z64.object({retentionDays:z64.number().int().positive()}).optional(),members:z64.object({canInvite:z64.boolean(),maxMembers:z64.number().int().positive().nullable()}).optional(),projects:z64.object({maxProjects:z64.number().int().positive().nullable()}).optional(),domains:z64.object({canUseCustomDomains:z64.boolean(),maxDomains:z64.number().int().nonnegative().nullable()}).optional(),media_storage:z64.object({limitBytes:z64.number().int().nonnegative()}).optional()}),MediaStorageUsageDTOSchema=z64.object({usedBytes:z64.number().int().nonnegative().nullable(),limitBytes:z64.number().int().nonnegative().nullable(),state:z64.enum(["ready","unavailable"]),measuredAt:z64.iso.datetime().nullable()}),MediaStorageUsageDTO=createDTO(MediaStorageUsageDTOSchema),PendingPlanChangeDTOSchema=z64.object({toPlanCode:TemplateCodeSchema,effectiveAt:z64.string(),scheduledAt:z64.string().nullable()}),AutomaticSpendStopDTOSchema=z64.object({fromPlanCode:TemplateCodeSchema,toPlanCode:TemplateCodeSchema,cutoffAt:z64.string(),spendStopped:z64.boolean(),settlementEndsAt:z64.string()}),HostingOverageStatusDTOSchema=z64.object({state:z64.enum(["ready","unavailable"]),planCode:z64.string(),overageAvailable:z64.boolean(),overageEnabled:z64.boolean(),monthlyCapUsd:z64.number().int().positive().nullable(),periodStart:z64.iso.datetime().nullable(),periodEnd:z64.iso.datetime().nullable(),usedBytes:z64.number().nonnegative().nullable(),includedBytes:z64.number().nonnegative().nullable(),overageBytes:z64.number().nonnegative(),currentOverageAmountMicros:z64.number().nonnegative().nullable(),totalExtraUsageAmountMicros:z64.number().nonnegative().nullable(),currency:z64.string().nullable(),status:z64.enum(["ok","near_limit","paused"])}),HostingOverageStatusDTO=createDTO(HostingOverageStatusDTOSchema),UpdateHostingOverageRequestSchema=z64.object({enabled:z64.boolean(),monthlyCapUsd:z64.number().int().positive().max(1e6).optional()}).refine(value=>!value.enabled||value.monthlyCapUsd!==void 0,{message:"Enabling extra usage requires a monthly budget"}),SubscriptionDTOSchema=z64.object({id:z64.string(),external_id:z64.string(),customerId:z64.string(),planId:z64.string(),planCode:z64.union([TemplateCodeSchema,z64.literal("Unknown")]),currentPeriod:z64.object({start:z64.string(),end:z64.string().nullable()}),cancelAt:z64.string().nullable(),pendingPlanChange:PendingPlanChangeDTOSchema.nullable(),automaticSpendStop:AutomaticSpendStopDTOSchema.nullable(),entitlements:EntitlementsDTOSchema,currency:z64.string(),nextPaymentAt:z64.string().nullable(),baseAmount:z64.number().nullable()}),SubscriptionDTO=createDTO(SubscriptionDTOSchema),DailyCreditsStatusSchema=z64.object({totalCap:z64.number(),dailyCap:z64.number(),usedTotal:z64.number()}),CreditBalanceDTOSchema=z64.object({total:z64.number(),base:z64.number(),dailyBase:z64.number(),purchases:z64.number(),awards:z64.number(),daily:DailyCreditsStatusSchema.optional()}),CreditBalanceDTO=createDTO(CreditBalanceDTOSchema),MinimalCreditBalanceDTOSchema=z64.object({total:z64.number(),nearLimit:z64.boolean(),canChat:z64.boolean(),daily:DailyCreditsStatusSchema.optional()}),MinimalCreditBalanceDTO=createDTO(MinimalCreditBalanceDTOSchema),ProjectCreditBucketsDTOSchema=z64.object({dailyFreeAvailable:z64.number(),monthlyAvailable:z64.number(),purchasedAvailable:z64.number(),awardedAvailable:z64.number()}),ProjectDailyCreditAllowanceDTOSchema=z64.object({periodCap:z64.number(),dailyGrant:z64.number(),usedThisPeriod:z64.number(),remainingThisPeriod:z64.number()}),ProjectCreditBalanceDTOSchema=z64.object({projectId:z64.uuid(),organizationId:z64.string(),balance:z64.object({totalAvailable:z64.number(),nearLimit:z64.boolean(),canUseAi:z64.boolean(),buckets:ProjectCreditBucketsDTOSchema}),allowances:z64.object({dailyCredits:ProjectDailyCreditAllowanceDTOSchema.nullable()})}),ProjectCreditBalanceDTO=createDTO(ProjectCreditBalanceDTOSchema),AutoRefillConfigDTOSchema=z64.discriminatedUnion("enabled",[z64.object({enabled:z64.literal(!0),thresholdUsd:z64.number().nonnegative(),refillAmountUsd:z64.number().nonnegative()}),z64.object({enabled:z64.literal(!1),thresholdUsd:z64.number().nonnegative().nullable(),refillAmountUsd:z64.null()})]),AutoRefillConfigDTO=createDTO(AutoRefillConfigDTOSchema),UpdateAutoRefillDTOSchema=z64.discriminatedUnion("enabled",[z64.object({enabled:z64.literal(!0),thresholdUsd:z64.number().min(.01).multipleOf(.01),refillAmountUsd:z64.number().min(.01).multipleOf(.01),expectedRateToken:z64.string().trim().min(1).max(40)}).strict(),z64.object({enabled:z64.literal(!1),thresholdUsd:z64.number().min(.01).multipleOf(.01),expectedRateToken:z64.string().trim().min(1).max(40).optional()}).strict()]),OptionalSpendRefusalSchema=z64.enum(["no_subscription","plan_cannot_fund","pending_plan_exit"]),CreditPurchasePricingDTOSchema=z64.object({planCode:z64.union([TemplateCodeSchema,z64.literal("Unknown")]).nullable(),canPurchase:z64.boolean(),refusalReason:OptionalSpendRefusalSchema.nullable(),creditsPerDollar:z64.number().int().positive(),minAmountUsd:z64.number().positive(),maxAmountUsd:z64.number().positive(),rateToken:z64.string().nullable()}),CreditPurchasePricingDTO=createDTO(CreditPurchasePricingDTOSchema),PurchaseCreditsDTOSchema=z64.object({amountUsd:z64.number(),idempotencyKey:z64.string().trim().min(8).max(120),expectedRateToken:z64.string().trim().min(1).max(40)}).strict(),SuccessfulPurchaseDTOSchema=z64.object({invoiceId:z64.string(),newBalance:z64.int(),creditCount:z64.int(),amountUsd:z64.number(),creditsPerDollar:z64.int()}),SuccessfulPurchaseDTO=createDTO(SuccessfulPurchaseDTOSchema),PortalDTOSchema=z64.object({url:z64.string()}),PortalDTO=createDTO(PortalDTOSchema),PaymentRecoveryInvoiceDTOSchema=z64.object({id:z64.string(),number:z64.string().nullable(),status:z64.string(),amountDue:z64.int(),currency:z64.string(),issuedAt:z64.string().nullable(),hostedInvoiceUrl:z64.string().nullable()}),PaymentRecoveryDTOSchema=z64.discriminatedUnion("status",[z64.object({status:z64.literal("eligible"),checkedAt:z64.string()}),z64.object({status:z64.literal("recovery_required"),checkedAt:z64.string(),invoice:PaymentRecoveryInvoiceDTOSchema,outstandingCount:z64.int().min(1)}),z64.object({status:z64.literal("unavailable"),checkedAt:z64.string(),reason:z64.enum(["provider_error","truncated","unattempted","foreign_invoice","unknown_status"])})]),PaymentRecoveryDTO=createDTO(PaymentRecoveryDTOSchema),CreditBalanceResponseSchema=createResponseSchema(CreditBalanceDTOSchema),MinimalCreditBalanceResponseSchema=createResponseSchema(MinimalCreditBalanceDTOSchema),ProjectCreditBalanceResponseSchema=createResponseSchema(ProjectCreditBalanceDTOSchema),AutoRefillConfigResponseSchema=createResponseSchema(AutoRefillConfigDTOSchema),CreditPurchasePricingResponseSchema=createResponseSchema(CreditPurchasePricingDTOSchema),SuccessfulPurchaseResponseSchema=createResponseSchema(SuccessfulPurchaseDTOSchema),SubscriptionResponseSchema=createResponseSchema(SubscriptionDTOSchema),EntitlementsResponseSchema=createResponseSchema(EntitlementsDTOSchema),PortalResponseSchema=createResponseSchema(PortalDTOSchema),PaymentRecoveryResponseSchema=createResponseSchema(PaymentRecoveryDTOSchema)}});import{z as z65}from"zod";var PaymentMethodDTOSchema,PaymentMethodDTO,init_payment_method_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/payment-method.dto.js"(){"use strict";init_create_dto();PaymentMethodDTOSchema=z65.object({brand:z65.string(),last4:z65.string(),exp:z65.string(),isDefault:z65.boolean()}),PaymentMethodDTO=createDTO(PaymentMethodDTOSchema)}});import{z as z66}from"zod";var FieldDefinitionSchema,SchemaFieldPathSchema,SchemaMigrationOperationSchema,ContentTypeI18nSchema,ContentFieldGroupSchema,ContentTypeDTOSchema,ContentTypeDTO,SchemaDTOSchema,SchemaDTO,EntryDTOSchema,EntryDTO,PaginatedEntriesDTOSchema,PaginatedEntriesDTO,EntryCountDTOSchema,EntryCountDTO,EntryCountsDTOSchema,EntryCountsDTO,EntryTranslationGapDTOSchema,EntryTranslationGapDTO,EntryTranslationGapResponseSchema,ContentTypeResponseSchema,ContentTypeListResponseSchema,SchemaResponseSchema,EntryResponseSchema,EntryListResponseSchema,MAX_BULK_ENTRIES,entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema,EntryWhereSchema,EntryMutationBodySchema,entryIdsSchema,EntrySqlQueryRequestSchema,BulkCreateEntriesRequestSchema,BulkUpdateEntriesRequestSchema,BulkDeleteEntriesRequestSchema,EntrySqlQueryResponseSchema,EntrySqlQueryResponseDTO,BulkCreateEntriesResponseSchema,BulkCreateEntriesResponseDTO,BulkUpdateEntriesResponseSchema,BulkUpdateEntriesResponseDTO,BulkDeleteEntriesResponseSchema,BulkDeleteEntriesResponseDTO,init_content_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/content.dto.js"(){"use strict";init_common();init_content_fields();init_create_dto();init_response();FieldDefinitionSchema=ContentFieldDefinitionSchema,SchemaFieldPathSchema=z66.string().superRefine((path50,ctx)=>{let segments=path50.split(".");(segments.length===0||segments.some(segment=>!CONTENT_FIELD_NAME_PATTERN.test(segment)))&&ctx.addIssue({code:"custom",message:"Field paths must use dot-separated field or block variant names."})}),SchemaMigrationOperationSchema=z66.object({type:z66.literal("renameField"),contentType:z66.string().regex(CONTENT_TYPE_NAME_PATTERN),from:SchemaFieldPathSchema,to:SchemaFieldPathSchema}).strict(),ContentTypeI18nSchema=z66.object({enabled:z66.boolean()}).strict(),ContentFieldGroupSchema=z66.object({id:z66.string().regex(CONTENT_FIELD_NAME_PATTERN),label:z66.string().min(1).max(255),default:z66.boolean().optional()}).strict(),ContentTypeDTOSchema=z66.object({id:z66.string(),name:z66.string(),label:z66.string(),isSingleton:z66.boolean(),i18n:ContentTypeI18nSchema,groups:z66.array(ContentFieldGroupSchema).default([]),fields:z66.record(z66.string(),FieldDefinitionSchema),createdAt:z66.string(),updatedAt:z66.string()}),ContentTypeDTO=createDTO(ContentTypeDTOSchema),SchemaDTOSchema=z66.object({contentTypes:z66.array(ContentTypeDTOSchema)}),SchemaDTO=createDTO(SchemaDTOSchema),EntryDTOSchema=z66.object({id:z66.string(),entryId:z66.string(),documentId:z66.string(),slug:z66.string(),locale:z66.string().optional(),createdAt:z66.string(),updatedAt:z66.string(),__fimo:z66.object({contentType:z66.string()})}).passthrough(),EntryDTO=createDTO(EntryDTOSchema),PaginatedEntriesDTOSchema=z66.object({data:z66.array(EntryDTOSchema),meta:z66.object({limit:z66.number(),offset:z66.number(),total:z66.number(),hasMore:z66.boolean()})}),PaginatedEntriesDTO=createDTO(PaginatedEntriesDTOSchema),EntryCountDTOSchema=z66.object({contentType:z66.string(),count:z66.number()}),EntryCountDTO=createDTO(EntryCountDTOSchema),EntryCountsDTOSchema=z66.object({counts:z66.array(EntryCountDTOSchema)}),EntryCountsDTO=createDTO(EntryCountsDTOSchema),EntryTranslationGapDTOSchema=z66.object({count:z66.number().int().nonnegative(),sourceLocale:z66.string(),targetLocale:z66.string()}),EntryTranslationGapDTO=createDTO(EntryTranslationGapDTOSchema),EntryTranslationGapResponseSchema=createResponseSchema(EntryTranslationGapDTOSchema),ContentTypeResponseSchema=createResponseSchema(ContentTypeDTOSchema),ContentTypeListResponseSchema=createResponseSchema(z66.array(ContentTypeDTOSchema)),SchemaResponseSchema=createResponseSchema(SchemaDTOSchema),EntryResponseSchema=createResponseSchema(EntryDTOSchema),EntryListResponseSchema=createResponseSchema(z66.array(EntryDTOSchema)),MAX_BULK_ENTRIES=1e3,entryWhereScalarSchema=z66.union([z66.string(),z66.number(),z66.boolean(),z66.null()]),entryWhereOperatorSchema=z66.object({$eq:entryWhereScalarSchema.optional(),$ne:entryWhereScalarSchema.optional(),$gt:entryWhereScalarSchema.optional(),$gte:entryWhereScalarSchema.optional(),$lt:entryWhereScalarSchema.optional(),$lte:entryWhereScalarSchema.optional(),$in:z66.array(entryWhereScalarSchema).optional(),$nin:z66.array(entryWhereScalarSchema).optional(),$contains:z66.string().optional(),$startsWith:z66.string().optional(),$null:z66.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema=z66.record(z66.string(),z66.union([entryWhereScalarSchema,entryWhereOperatorSchema])),EntryWhereSchema=z66.record(z66.string(),z66.union([entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema])),EntryMutationBodySchema=z66.object({data:z66.record(z66.string(),z66.unknown()),locale:z66.string().min(1).optional(),documentId:z66.uuid().optional()}),entryIdsSchema=z66.array(z66.uuid()).min(1).max(MAX_BULK_ENTRIES),EntrySqlQueryRequestSchema=z66.object({sql:z66.string().min(1)}),BulkCreateEntriesRequestSchema=z66.object({entries:z66.array(EntryMutationBodySchema).min(1).max(MAX_BULK_ENTRIES)}),BulkUpdateEntriesRequestSchema=z66.union([z66.object({ids:entryIdsSchema,body:EntryMutationBodySchema}),z66.object({where:EntryWhereSchema,body:EntryMutationBodySchema}),z66.object({updates:z66.array(z66.object({id:z66.uuid(),body:EntryMutationBodySchema})).min(1).max(MAX_BULK_ENTRIES)})]),BulkDeleteEntriesRequestSchema=z66.union([z66.object({ids:entryIdsSchema,locale:z66.string().min(1).optional()}),z66.object({where:EntryWhereSchema,locale:z66.string().min(1).optional()})]),EntrySqlQueryResponseSchema=z66.object({data:z66.array(z66.record(z66.string(),z66.unknown())),meta:z66.object({rowCount:z66.number().int().nonnegative(),truncated:z66.boolean()})}),EntrySqlQueryResponseDTO=createDTO(EntrySqlQueryResponseSchema),BulkCreateEntriesResponseSchema=z66.object({data:z66.array(EntryDTOSchema),meta:z66.object({created:z66.number().int().nonnegative()})}),BulkCreateEntriesResponseDTO=createDTO(BulkCreateEntriesResponseSchema),BulkUpdateEntriesResponseSchema=z66.object({data:z66.array(EntryDTOSchema),meta:z66.object({updated:z66.number().int().nonnegative(),missing:z66.array(z66.string())})}),BulkUpdateEntriesResponseDTO=createDTO(BulkUpdateEntriesResponseSchema),BulkDeleteEntriesResponseSchema=z66.object({data:z66.array(EntryDTOSchema),meta:z66.object({deleted:z66.number().int().nonnegative(),missing:z66.array(z66.string())})}),BulkDeleteEntriesResponseDTO=createDTO(BulkDeleteEntriesResponseSchema)}});import{z as z67}from"zod";var UniqueConflictSchema,UniqueConflictErrorSchema,init_unique_conflict_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/unique-conflict.dto.js"(){"use strict";UniqueConflictSchema=z67.object({index:z67.number().int().nonnegative(),contentType:z67.string(),field:z67.string(),value:z67.string(),against:z67.enum(["stored","batch"]),ownerDocumentId:z67.uuid().optional(),ownerIndex:z67.number().int().nonnegative().optional()}),UniqueConflictErrorSchema=z67.object({code:z67.literal("unique_conflict"),message:z67.string(),conflicts:z67.array(UniqueConflictSchema),truncated:z67.boolean().optional()})}});import{z as z68}from"zod";var UniqueConflictIssueSchema,SchemaTransitionIssueSchema,SchemaTransitionRejectedErrorSchema,init_schema_transition_rejected_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schema-transition-rejected.dto.js"(){"use strict";UniqueConflictIssueSchema=z68.object({kind:z68.literal("unique_conflict"),contentType:z68.string(),field:z68.string(),value:z68.string(),documentCount:z68.number().int().positive(),documentIds:z68.array(z68.uuid()),documentIdsTruncated:z68.boolean().optional()}),SchemaTransitionIssueSchema=UniqueConflictIssueSchema,SchemaTransitionRejectedErrorSchema=z68.object({code:z68.literal("schema_transition_rejected"),message:z68.string(),issues:z68.array(SchemaTransitionIssueSchema),truncated:z68.boolean().optional()})}});import{z as z69}from"zod";var CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS,CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH,CmsContentTypeNameSchema,CmsFieldNameSchema,CmsCollectionOrderSchema,CmsFieldOrderSchema,CmsListSortSchema,CmsDisplayDefaultsDTOSchema,CmsDisplayDefaultsDTO,CmsCollectionOrderRequestSchema,CmsFieldOrderRequestSchema,CmsDisplayDefaultsResponseSchema,init_cms_display_defaults_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/cms-display-defaults.dto.js"(){"use strict";init_common();init_create_dto();init_response();CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS=200,CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH=255,CmsContentTypeNameSchema=z69.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_TYPE_NAME_PATTERN),CmsFieldNameSchema=z69.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_FIELD_NAME_PATTERN),CmsCollectionOrderSchema=z69.array(CmsContentTypeNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsFieldOrderSchema=z69.array(CmsFieldNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsListSortSchema=z69.object({field:CmsFieldNameSchema,direction:z69.enum(["asc","desc"])}),CmsDisplayDefaultsDTOSchema=z69.object({collectionOrder:CmsCollectionOrderSchema.nullable(),fieldOrders:z69.record(CmsContentTypeNameSchema,CmsFieldOrderSchema),listSorts:z69.record(CmsContentTypeNameSchema,CmsListSortSchema)}),CmsDisplayDefaultsDTO=createDTO(CmsDisplayDefaultsDTOSchema),CmsCollectionOrderRequestSchema=z69.object({order:CmsCollectionOrderSchema}),CmsFieldOrderRequestSchema=z69.object({order:CmsFieldOrderSchema}),CmsDisplayDefaultsResponseSchema=createResponseSchema(CmsDisplayDefaultsDTOSchema)}});import{z as z70}from"zod";var MIGRATION_SOURCE_PLATFORMS,MigrationSourcePlatformSchema,init_project_migration_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-migration.dto.js"(){"use strict";MIGRATION_SOURCE_PLATFORMS=["webflow","framer","squarespace","wix","carrd","wordpress","nextjs","astro","react-router","other","unknown"],MigrationSourcePlatformSchema=z70.enum(MIGRATION_SOURCE_PLATFORMS)}});import{z as z71}from"zod";var CLIENT_TRACKED_EVENTS,ClientTrackedEventSchema,TrackProjectEventRequestSchema,init_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/analytics.dto.js"(){"use strict";CLIENT_TRACKED_EVENTS=["didStartMigration","didEndMigration"],ClientTrackedEventSchema=z71.enum(CLIENT_TRACKED_EVENTS),TrackProjectEventRequestSchema=z71.object({event:ClientTrackedEventSchema,properties:z71.record(z71.string(),z71.unknown()).default({})})}});import{z as z72}from"zod";var AssetPathItemSchema,AssetDTOSchema,AssetDTO,AssetTreeNodeDTOSchema,AssetTreeNodeDTO,AssetResponseSchema,AssetListResponseSchema,MediaStorageLimitErrorSchema,AssetReferenceScopeSchema,ASSET_REFERENCE_IMPACT_FILE_LIMIT,AssetReferenceImpactRequestSchema,AssetReferenceImpactSelectionDTOSchema,AssetReferenceFindingDTOSchema,AssetReferenceScopeResultDTOSchema,AssetReferenceScopeResultDTO,AssetReferenceImpactEventDTOSchema,AssetReferenceImpactEventDTO,AssetReferenceReplacementRequestSchema,AssetReferenceReplacementResultSchema,AssetReferenceReplacementResponseSchema,AssetReferenceReplacementPreviewResponseSchema,AssetCodeReferenceReplacementResultSchema,AssetReferenceReplacementErrorCodeSchema,AssetReferenceReplacementErrorSchema,ASSET_REMOVAL_ASSET_LIMIT,AssetRemovalIntentSchema,ASSET_REPLACING_REMOVAL_INTENTS,isReplacingIntent,AssetRemovalRequestSchema,AssetRemovalOperationDTOSchema,AssetRemovalOperationDTO,AssetRemovalScheduleResultDTOSchema,AssetRemovalScheduleResultDTO,AssetRemovalErrorCodeSchema,AssetRemovalErrorSchema,init_asset_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/asset.dto.js"(){"use strict";init_common();init_create_dto();init_response();AssetPathItemSchema=z72.object({id:z72.string(),name:z72.string()}),AssetDTOSchema=z72.object({id:z72.string(),name:z72.string(),type:AssetTypeSchema,originalFileName:z72.string().nullable(),parentId:z72.string().nullable(),mimeType:z72.string().nullable(),fileSize:z72.number().nullable(),url:z72.string().nullable(),storageKey:z72.string().nullable(),createdAt:z72.string(),updatedAt:z72.string(),altText:z72.string().nullable().optional(),caption:z72.string().nullable().optional(),aiCaption:z72.string().nullable().optional(),aiAltText:z72.string().nullable().optional(),aiTags:z72.array(z72.string()).nullable().optional(),aiPrimaryColor:z72.string().nullable().optional(),aiProcessingStatus:z72.string().nullable().optional(),width:z72.number().nullable().optional(),height:z72.number().nullable().optional(),path:z72.array(AssetPathItemSchema).optional(),hasChildren:z72.boolean().optional()}),AssetDTO=createDTO(AssetDTOSchema),AssetTreeNodeDTOSchema=AssetDTOSchema.extend({children:z72.lazy(()=>z72.array(AssetTreeNodeDTOSchema)).optional()}),AssetTreeNodeDTO=createDTO(AssetTreeNodeDTOSchema),AssetResponseSchema=createResponseSchema(AssetDTOSchema),AssetListResponseSchema=createResponseSchema(z72.array(AssetDTOSchema)),MediaStorageLimitErrorSchema=z72.object({error:z72.string(),code:z72.literal("media_storage_limit_exceeded"),usedBytes:z72.number().int().nonnegative(),limitBytes:z72.number().int().positive(),incomingBytes:z72.number().int().nonnegative()}),AssetReferenceScopeSchema=z72.enum(["current","main","live"]),ASSET_REFERENCE_IMPACT_FILE_LIMIT=50,AssetReferenceImpactRequestSchema=z72.object({assetIds:z72.array(z72.uuid()).min(1).max(ASSET_REFERENCE_IMPACT_FILE_LIMIT),scopes:z72.array(AssetReferenceScopeSchema).min(1).optional()}),AssetReferenceImpactSelectionDTOSchema=z72.object({totalFiles:z72.number().int().nonnegative(),checkedFiles:z72.number().int().nonnegative(),limit:z72.number().int().positive()}),AssetReferenceFindingDTOSchema=z72.object({assetId:z72.uuid(),entryId:z72.string(),documentId:z72.string(),contentType:z72.string(),locale:z72.string().nullable(),slug:z72.string(),fieldPath:z72.string()}),AssetReferenceScopeResultDTOSchema=z72.object({scope:AssetReferenceScopeSchema,label:z72.string(),state:z72.enum(["available","not-published","failed"]),coverage:z72.enum(["complete","partial","failed"]),referenceCount:z72.number().int().nonnegative().optional(),codeReferenceCount:z72.number().int().nonnegative().optional(),referencedAssetIds:z72.array(z72.uuid()).optional(),references:z72.array(AssetReferenceFindingDTOSchema),reason:z72.enum(["timeout","unavailable"]).optional()}),AssetReferenceScopeResultDTO=createDTO(AssetReferenceScopeResultDTOSchema),AssetReferenceImpactEventDTOSchema=z72.discriminatedUnion("type",[z72.object({type:z72.literal("selection"),data:AssetReferenceImpactSelectionDTOSchema}),z72.object({type:z72.literal("scope"),data:AssetReferenceScopeResultDTOSchema}),z72.object({type:z72.literal("complete")})]),AssetReferenceImpactEventDTO=createDTO(AssetReferenceImpactEventDTOSchema),AssetReferenceReplacementRequestSchema=z72.object({replacementAssetId:z72.uuid()}),AssetReferenceReplacementResultSchema=z72.object({referencesReplaced:z72.number().int().nonnegative(),entriesChanged:z72.number().int().nonnegative()}),AssetReferenceReplacementResponseSchema=createResponseSchema(AssetReferenceReplacementResultSchema),AssetReferenceReplacementPreviewResponseSchema=createResponseSchema(AssetReferenceReplacementResultSchema),AssetCodeReferenceReplacementResultSchema=z72.object({referencesReplaced:z72.number().int().nonnegative(),filesChanged:z72.number().int().nonnegative(),commitSha:z72.string().nullable()}),AssetReferenceReplacementErrorCodeSchema=z72.enum(["asset_replacement.self","asset_replacement.source_not_found","asset_replacement.replacement_not_found","asset_replacement.incompatible_media","asset_replacement.target_unavailable","asset_replacement.code_not_editable","asset_replacement.code_unavailable","asset_replacement.code_conflict","asset_replacement.code_too_many_files"]),AssetReferenceReplacementErrorSchema=z72.object({error:z72.string(),code:AssetReferenceReplacementErrorCodeSchema}),ASSET_REMOVAL_ASSET_LIMIT=200,AssetRemovalIntentSchema=z72.enum(["remove-from-branch","delete-from-project","replace-and-remove","replace-and-delete"]),ASSET_REPLACING_REMOVAL_INTENTS=["replace-and-remove","replace-and-delete"],isReplacingIntent=__name(intent=>ASSET_REPLACING_REMOVAL_INTENTS.includes(intent),"isReplacingIntent"),AssetRemovalRequestSchema=z72.object({intent:AssetRemovalIntentSchema,assetIds:z72.array(z72.uuid()).min(1).max(ASSET_REMOVAL_ASSET_LIMIT),replacementAssetId:z72.uuid().optional()}).refine(request=>isReplacingIntent(request.intent)===(request.replacementAssetId!==void 0),{message:"A replacement is required by the replace intents and rejected by the others",path:["replacementAssetId"]}).refine(request=>!isReplacingIntent(request.intent)||request.assetIds.length===1,{message:"A replacement applies to exactly one asset",path:["assetIds"]}),AssetRemovalOperationDTOSchema=z72.object({id:z72.uuid(),intent:AssetRemovalIntentSchema,assetIds:z72.array(z72.uuid()),replacementAssetId:z72.uuid().nullable(),expiresAt:z72.iso.datetime(),undoable:z72.boolean(),requestedByMe:z72.boolean()}),AssetRemovalOperationDTO=createDTO(AssetRemovalOperationDTOSchema),AssetRemovalScheduleResultDTOSchema=AssetRemovalOperationDTOSchema.extend({codeReplacement:AssetCodeReferenceReplacementResultSchema.optional()}),AssetRemovalScheduleResultDTO=createDTO(AssetRemovalScheduleResultDTOSchema),AssetRemovalErrorCodeSchema=z72.enum(["asset_removal.asset_not_found","asset_removal.replacement_not_found","asset_removal.already_finalized"]),AssetRemovalErrorSchema=z72.object({error:z72.string(),code:AssetRemovalErrorCodeSchema})}});import{z as z73}from"zod";var TranslationDTOSchema,TranslationDTO,init_translation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/translation.dto.js"(){"use strict";init_create_dto();TranslationDTOSchema=z73.object({key:z73.string(),value:z73.string().optional(),defaultValue:z73.string(),locale:z73.string()}),TranslationDTO=createDTO(TranslationDTOSchema)}});import{z as z74}from"zod";var DocumentNodeDTOSchema,DocumentTreeDTOSchema,DocumentPathDTOSchema,DocumentPathDTO,DocumentTreeResponseSchema,DocumentPathResponseSchema,init_document_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/document.dto.js"(){"use strict";init_create_dto();init_response();DocumentNodeDTOSchema=z74.object({id:z74.string(),name:z74.string(),type:z74.enum(["file","folder"]),path:z74.string(),children:z74.lazy(()=>z74.array(DocumentNodeDTOSchema)).optional()}),DocumentTreeDTOSchema=z74.array(DocumentNodeDTOSchema),DocumentPathDTOSchema=z74.object({path:z74.string(),exists:z74.boolean(),type:z74.enum(["file","folder"]).optional()}),DocumentPathDTO=createDTO(DocumentPathDTOSchema),DocumentTreeResponseSchema=createResponseSchema(DocumentTreeDTOSchema),DocumentPathResponseSchema=createResponseSchema(DocumentPathDTOSchema)}});import{z as z75}from"zod";var FormFieldTypeSchema,FormFieldValidationSchema,FormFieldSchema,FormFieldsSchema,FormContentSchema,FormUpdateSchema,init_form_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/form.dto.js"(){"use strict";FormFieldTypeSchema=z75.enum(["text","email","textarea","number","phone","url","select","checkbox","date","hidden","file"]),FormFieldValidationSchema=z75.object({minLength:z75.number().optional(),maxLength:z75.number().optional(),min:z75.number().optional(),max:z75.number().optional(),pattern:z75.string().optional(),maxFileSize:z75.number().optional(),accept:z75.array(z75.string()).optional()}),FormFieldSchema=z75.object({type:FormFieldTypeSchema,label:z75.string(),placeholder:z75.string().optional(),required:z75.boolean().optional(),defaultValue:z75.string().optional(),options:z75.array(z75.string()).optional(),validation:FormFieldValidationSchema.optional()}),FormFieldsSchema=z75.record(z75.string(),FormFieldSchema),FormContentSchema=z75.object({name:z75.string().min(1).max(255),label:z75.string().min(1).max(255),fields:FormFieldsSchema}).strict(),FormUpdateSchema=FormContentSchema.partial().refine(update=>update.name!==void 0||update.label!==void 0||update.fields!==void 0,{message:"Pass at least one of name, label, or fields."})}});import{z as z76}from"zod";var ChatTaskStatusSchema,ChatTaskDTOSchema,ChatTaskListDTOSchema,init_chat_task_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat-task.dto.js"(){"use strict";ChatTaskStatusSchema=z76.enum(["queued","running","finished","failed","cancelled"]),ChatTaskDTOSchema=z76.object({id:z76.string().uuid(),label:z76.string(),status:ChatTaskStatusSchema,startedAt:z76.string(),endedAt:z76.string().nullable(),result:z76.string().nullable()}),ChatTaskListDTOSchema=z76.object({tasks:z76.array(ChatTaskDTOSchema)})}});import{z as z77}from"zod";var AgentPatchSchema,AgentToolRoutineSchema,AgentToolErrorCodeSchema,AgentToolResultSchema,AgentInstructionAuthorSchema,AgentInstructionRevisionDTOSchema,AgentInstructionRevisionListDTOSchema,AgentInstructionRevisionListResponseSchema,AgentInstructionRestoreSchema,init_chat_agent_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat-agent.dto.js"(){"use strict";init_response();init_chat_routine_dto();init_chat_dto();AgentPatchSchema=z77.object({name:z77.string().trim().min(1).max(120).optional(),description:z77.string().trim().min(1).max(300).optional(),instructions:ProjectChatInstructionsSchema.pipe(z77.string().min(1)).optional(),live:z77.literal(!0).optional()}),AgentToolRoutineSchema=z77.object({id:z77.string(),name:z77.string(),schedule:ChatRoutineScheduleSchema.nullable(),trigger:z77.string().nullable()}),AgentToolErrorCodeSchema=z77.enum(["plan_required","not_allowed","default_agent","not_seen","invalid"]),AgentToolResultSchema=z77.discriminatedUnion("ok",[z77.object({ok:z77.literal(!0),agent:z77.object({id:z77.string(),name:z77.string(),live:z77.boolean(),routines:z77.array(AgentToolRoutineSchema)}),revisionId:z77.string().optional()}),z77.object({ok:z77.literal(!1),error:z77.string(),code:AgentToolErrorCodeSchema.optional()})]),AgentInstructionAuthorSchema=z77.object({kind:z77.enum(["person","agent"]),id:z77.string().nullable(),name:z77.string().nullable()}),AgentInstructionRevisionDTOSchema=z77.object({id:z77.string().uuid(),previous:z77.string().nullable(),instructions:z77.string().nullable(),author:AgentInstructionAuthorSchema,createdAt:z77.string()}),AgentInstructionRevisionListDTOSchema=z77.object({revisions:z77.array(AgentInstructionRevisionDTOSchema)}),AgentInstructionRevisionListResponseSchema=createResponseSchema(AgentInstructionRevisionListDTOSchema),AgentInstructionRestoreSchema=z77.object({revisionId:z77.string().uuid()})}});import{z as z78}from"zod";var UploadResultDTOSchema,UploadResultDTO,UploadResultResponseSchema,init_upload_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/upload.dto.js"(){"use strict";init_common();init_create_dto();init_response();UploadResultDTOSchema=z78.object({url:z78.string().url(),key:z78.string(),size:z78.number(),contentType:z78.string(),uploadedAt:CommonSchemas.timestamp}),UploadResultDTO=createDTO(UploadResultDTOSchema),UploadResultResponseSchema=createResponseSchema(UploadResultDTOSchema)}});import{z as z79}from"zod";var ServicePermissionsDTOSchema,ServicePermissionsDTO,ServicePermissionsResponseSchema,init_service_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/service.dto.js"(){"use strict";init_create_dto();init_response();ServicePermissionsDTOSchema=z79.object({canAccess:z79.boolean(),permissions:z79.record(z79.string(),z79.boolean()),role:z79.string().nullable()}),ServicePermissionsDTO=createDTO(ServicePermissionsDTOSchema),ServicePermissionsResponseSchema=createResponseSchema(ServicePermissionsDTOSchema)}});import{z as z80}from"zod";var OrganizationProjectsSearchQuerySchema,init_search_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/search.dto.js"(){"use strict";init_pagination();OrganizationProjectsSearchQuerySchema=PaginationQuerySchema.extend({q:z80.string().trim().default(""),sort:z80.enum(["recent","name","relevance"]).default("recent"),category:z80.string().optional()})}});import{z as z81}from"zod";var DomainStatusSchema,DomainSourceSchema,PaymentStatusSchema,DomainDTOSchema,DomainDTO,DomainSearchResultDTOSchema,DomainSearchResultDTO,DomainPricingDTOSchema,DomainPricingDTO,DomainContactSchema,DomainContactDTO,UpdateDomainContactsRequestSchema,SearchDomainsRequestSchema,CheckAvailabilityRequestSchema,DOMAIN_NAME_REGEX,DomainNameSchema,PurchaseDomainRequestSchema,UpdateDomainSettingsRequestSchema,RenewDomainRequestSchema,DomainResponseSchema,DomainListResponseSchema,DomainSearchResultListResponseSchema,DomainPricingResponseSchema,DomainContactResponseSchema,ContactVerificationStatusSchema,ContactVerificationStatusResponseSchema,init_registered_domain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/registered-domain.dto.js"(){"use strict";init_common();init_create_dto();init_response();DomainStatusSchema=z81.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),DomainSourceSchema=z81.enum(["fimo","external"]),PaymentStatusSchema=z81.enum(["pending","paid","failed","refunded"]),DomainDTOSchema=z81.object({id:z81.string().uuid(),domain:z81.string(),status:DomainStatusSchema,source:DomainSourceSchema,registrationDate:CommonSchemas.timestamp.nullable(),expirationDate:CommonSchemas.timestamp.nullable(),autoRenew:z81.boolean(),price:z81.number().int().nullable(),renewalPrice:z81.number().int().nullable(),paymentStatus:PaymentStatusSchema.nullable(),checkoutUrl:z81.string().nullable(),failureReason:z81.string().nullable(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),DomainDTO=createDTO(DomainDTOSchema),DomainSearchResultDTOSchema=z81.object({domain:z81.string(),available:z81.boolean(),premium:z81.boolean(),price:z81.number().nullable(),renewalPrice:z81.number().nullable(),purchaseType:z81.string().nullable()}),DomainSearchResultDTO=createDTO(DomainSearchResultDTOSchema),DomainPricingDTOSchema=z81.object({domain:z81.string(),price:z81.number().nullable(),renewalPrice:z81.number().nullable(),premium:z81.boolean(),allowedYears:z81.array(z81.number().int().positive())}),DomainPricingDTO=createDTO(DomainPricingDTOSchema),DomainContactSchema=z81.object({firstName:z81.string().max(100),lastName:z81.string().max(100),companyName:z81.string().max(100).optional(),address1:z81.string().max(255),address2:z81.string().max(255).optional(),city:z81.string().max(100),state:z81.string().max(100),zip:z81.string().max(20),country:z81.string().max(2),phone:z81.string().max(30),email:z81.union([z81.string().email().max(255),z81.literal("")])}),DomainContactDTO=createDTO(DomainContactSchema),UpdateDomainContactsRequestSchema=z81.object({firstName:z81.string().min(1).max(100),lastName:z81.string().min(1).max(100),companyName:z81.string().max(100).optional(),address1:z81.string().min(1).max(255),address2:z81.string().max(255).optional(),city:z81.string().min(1).max(100),state:z81.string().min(1).max(100),zip:z81.string().min(1).max(20),country:z81.string().min(1).max(2),phone:z81.string().min(1).max(30),email:z81.string().email().max(255)}),SearchDomainsRequestSchema=z81.object({keyword:z81.string().min(1).max(100),tldFilter:z81.array(z81.string()).optional()}),CheckAvailabilityRequestSchema=z81.object({domains:z81.array(z81.string()).min(1).max(50)}),DOMAIN_NAME_REGEX=/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,DomainNameSchema=z81.string().min(1).max(255).regex(DOMAIN_NAME_REGEX,{message:"Invalid domain name"}),PurchaseDomainRequestSchema=z81.object({domain:DomainNameSchema,years:z81.number().int().min(1).max(10).optional().default(3),autoRenew:z81.boolean().optional().default(!0)}),UpdateDomainSettingsRequestSchema=z81.object({autoRenew:z81.boolean().optional()}),RenewDomainRequestSchema=z81.object({years:z81.number().int().min(1).max(10).optional().default(1),autoRenew:z81.boolean().optional().default(!0)}),DomainResponseSchema=createResponseSchema(DomainDTOSchema),DomainListResponseSchema=createResponseSchema(z81.array(DomainDTOSchema)),DomainSearchResultListResponseSchema=createResponseSchema(z81.array(DomainSearchResultDTOSchema)),DomainPricingResponseSchema=createResponseSchema(DomainPricingDTOSchema),DomainContactResponseSchema=createResponseSchema(DomainContactSchema.nullable()),ContactVerificationStatusSchema=z81.object({verified:z81.boolean(),email:z81.string().nullable(),verifyBy:z81.string().nullable()}),ContactVerificationStatusResponseSchema=createResponseSchema(ContactVerificationStatusSchema)}});import{z as z82}from"zod";var ProjectDomainStatusSchema,SSLStatusSchema,SSLValidationRecordSchema,SSLValidationErrorSchema,OwnershipVerificationSchema,ProjectDomainSSLDTOSchema,DomainProviderSchema,DomainTypeSchema,RedirectConfigSchema,ProjectDomainDTOSchema,ProjectDomainDTO,ProjectDomainListResponseSchema,ProjectDomainResponseSchema,AddProjectDomainRequestSchema,CheckProjectDomainHostnameReasonSchema,CheckProjectDomainHostnameResponseSchema,DeleteProjectDomainResponseSchema,init_project_domain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-domain.dto.js"(){"use strict";init_common();init_create_dto();init_response();ProjectDomainStatusSchema=z82.enum(["pending","active","pending_validation","active_redeploying","moved","deleted","pending_deletion","pending_migration","pending_provisioned","test_pending","test_active","test_active_apex","test_blocked","test_failed","provisioned","blocked"]),SSLStatusSchema=z82.enum(["initializing","pending_validation","pending_issuance","pending_deployment","pending_expiration","expired","active","deleted","pending_cleanup","staging_deployment","staging_active","deactivating","inactive","backup_issued","holding_deployment"]),SSLValidationRecordSchema=z82.object({txtName:z82.string().nullable().optional(),txtValue:z82.string().nullable().optional(),httpUrl:z82.string().nullable().optional(),httpBody:z82.string().nullable().optional(),cname:z82.string().nullable().optional(),cnameTarget:z82.string().nullable().optional()}),SSLValidationErrorSchema=z82.object({message:z82.string()}),OwnershipVerificationSchema=z82.object({type:z82.string(),name:z82.string(),value:z82.string()}),ProjectDomainSSLDTOSchema=z82.object({status:z82.string(),method:z82.string().nullable(),type:z82.string().nullable(),validationRecords:z82.array(SSLValidationRecordSchema).nullable().optional(),validationErrors:z82.array(SSLValidationErrorSchema).nullable().optional()}),DomainProviderSchema=z82.enum(["cloudflare","saas_custom_domains"]),DomainTypeSchema=z82.enum(["subdomain","apex"]),RedirectConfigSchema=z82.object({type:z82.enum(["apex_to_www","www_to_apex"]),linkedDomainId:z82.string()}).nullable().optional(),ProjectDomainDTOSchema=z82.object({id:z82.string(),hostname:z82.string(),status:z82.string(),ssl:ProjectDomainSSLDTOSchema,ownershipVerification:z82.array(OwnershipVerificationSchema).nullable().optional(),cnameTarget:z82.string(),scdCnameTarget:z82.string().optional(),apexTargets:z82.array(z82.string()),dnsAutoConfigured:z82.boolean(),createdAt:CommonSchemas.timestamp,provider:DomainProviderSchema,domainType:DomainTypeSchema,redirectConfig:RedirectConfigSchema,migrationStatus:z82.string().nullable().optional()}),ProjectDomainDTO=createDTO(ProjectDomainDTOSchema),ProjectDomainListResponseSchema=createResponseSchema(z82.array(ProjectDomainDTOSchema)),ProjectDomainResponseSchema=createResponseSchema(ProjectDomainDTOSchema),AddProjectDomainRequestSchema=z82.object({hostname:z82.hostname().regex(/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,{error:"Invalid hostname"}).refine(value=>!/\.fimo\.site$/i.test(value),{error:"This is a Fimo-owned domain. Edit your built-in URL instead."}),redirectToWww:z82.boolean().optional()}),CheckProjectDomainHostnameReasonSchema=z82.enum(["invalid_hostname","fimo_owned_hostname","reserved","taken_by_another_project","taken_by_this_project"]),CheckProjectDomainHostnameResponseSchema=createResponseSchema(z82.object({available:z82.boolean(),reason:CheckProjectDomainHostnameReasonSchema.optional()})),DeleteProjectDomainResponseSchema=createResponseSchema(z82.object({success:z82.boolean(),hostname:z82.string()}))}});import{z as z83}from"zod";var SUBDOMAIN_REGEX,SubdomainCheckReasonSchema,CheckProjectSubdomainResponseSchema,UpdateProjectSubdomainRequestSchema,UpdateProjectSubdomainErrorReasonSchema,UpdateProjectSubdomainResponseSchema,SubdomainSuggestionsQuerySchema,SubdomainSuggestionsResponseSchema,init_project_subdomain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-subdomain.dto.js"(){"use strict";init_response();SUBDOMAIN_REGEX=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/,SubdomainCheckReasonSchema=z83.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain"]),CheckProjectSubdomainResponseSchema=createResponseSchema(z83.object({available:z83.boolean(),reason:SubdomainCheckReasonSchema.optional()})),UpdateProjectSubdomainRequestSchema=z83.object({slug:z83.string().min(1).max(63).regex(SUBDOMAIN_REGEX,{error:"Invalid subdomain shape"})}),UpdateProjectSubdomainErrorReasonSchema=z83.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain","kv_sync_failed","hosting_sync_failed"]),UpdateProjectSubdomainResponseSchema=createResponseSchema(z83.object({subdomain:z83.string(),subdomainUpdatedAt:z83.coerce.date()})),SubdomainSuggestionsQuerySchema=z83.object({base:z83.string().max(100).optional(),max:z83.coerce.number().int().min(1).max(10).optional()}),SubdomainSuggestionsResponseSchema=createResponseSchema(z83.object({suggestions:z83.array(z83.string())}))}});import{z as z84}from"zod";var PROJECT_TRANSFER_BLOCKER_CODES,ProjectTransferBlockerCodeSchema,ProjectTransferBlockerDTO,TransferProjectRequestSchema,ProjectTransferResultDTO,init_project_transfer_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-transfer.dto.js"(){"use strict";init_create_dto();PROJECT_TRANSFER_BLOCKER_CODES=["same_organization","concurrent_transfer","agent_work_in_flight","unsettled_agent_holds","unsettled_usage_ledger","project_integrations_present","source_registered_domain"],ProjectTransferBlockerCodeSchema=z84.enum(PROJECT_TRANSFER_BLOCKER_CODES),ProjectTransferBlockerDTO=createDTO(z84.object({code:ProjectTransferBlockerCodeSchema,message:z84.string(),count:z84.number().int().nonnegative().optional()})),TransferProjectRequestSchema=z84.object({targetOrganizationId:z84.string().min(1)}),ProjectTransferResultDTO=createDTO(z84.object({projectId:z84.string(),sourceOrganizationId:z84.string(),targetOrganizationId:z84.string(),movedThreads:z84.number().int().nonnegative(),revokedInvites:z84.number().int().nonnegative(),revokedGrants:z84.number().int().nonnegative(),preservedGrants:z84.number().int().nonnegative(),warnings:z84.array(z84.string())}))}});import{z as z85}from"zod";var PROJECT_TOKEN_PREFIX,MB2,UNCLAIMED_PLAN,UnclaimedLockedFeatureSchema,UNCLAIMED_CLAIM_STATES,UnclaimedClaimStateSchema,UNCLAIMED_PROJECT_ERROR_CODES,UnclaimedProjectErrorCodeSchema,ProvisionUnclaimedProjectRequestSchema,UnclaimedProjectLimitsSchema,UnclaimedProjectClaimSchema,ProvisionUnclaimedProjectResponseDTO,UnclaimedClaimStatusDTO,UnclaimedClaimSecretSchema,UnclaimedClaimStatusRequestSchema,UnclaimedClaimStatesRequestSchema,UnclaimedClaimStatesResponseDTO,ClaimUnclaimedProjectRequestSchema,ClaimUnclaimedProjectResultDTO,ProjectTokenSelfDTO,init_unclaimed_project_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/unclaimed-project.dto.js"(){"use strict";init_create_dto();init_project_dto();PROJECT_TOKEN_PREFIX="fimo_pt_",MB2=1e6,UNCLAIMED_PLAN={ttlHours:72,tokenTtlAfterClaimHours:24,media:{totalBytes:50*MB2,fileBytes:5*MB2,maxFiles:100,mimeTypes:["image/jpeg","image/png","image/webp","image/avif","image/gif"]},database:{storageBytes:100*MB2,computeSeconds:600*60,maxComputeUnits:.5},locked:{publish:"Publishing",subdomain:"A fimo.site address",custom_domains:"Custom domains",branches:"Extra Branches",environments:"Extra environments",asset_generation:"Generating images and videos",integrations:"Connecting integrations",invites:"Inviting people",schedules:"Schedules",agents:"Fimo agents",ai_credits:"AI features"}},UnclaimedLockedFeatureSchema=z85.enum(Object.keys(UNCLAIMED_PLAN.locked)),UNCLAIMED_CLAIM_STATES=["claimable","claimed","expired"],UnclaimedClaimStateSchema=z85.enum(UNCLAIMED_CLAIM_STATES),UNCLAIMED_PROJECT_ERROR_CODES=["project_unclaimed","unclaimed_limit_reached","unclaimed_deploy_limit","claim_not_claimable","claim_project_limit_reached","claim_target_organization_not_found","claim_target_organization_forbidden","claim_target_subscription_inactive","claim_blocked","project_token_required","unclaimed_media_limit"],UnclaimedProjectErrorCodeSchema=z85.enum(UNCLAIMED_PROJECT_ERROR_CODES),ProvisionUnclaimedProjectRequestSchema=z85.object({displayName:z85.string().trim().min(1).max(80),machineId:z85.string().trim().min(1).max(128).optional(),cliVersion:z85.string().trim().max(64).optional()}),UnclaimedProjectLimitsSchema=z85.object({ttlHours:z85.number().int().positive(),lockedFeatures:z85.array(UnclaimedLockedFeatureSchema),media:z85.object({totalBytes:z85.number().int().nonnegative(),fileBytes:z85.number().int().positive(),maxFiles:z85.number().int().nonnegative(),mimeTypes:z85.array(z85.string())}),database:z85.object({storageBytes:z85.number().int().positive(),computeSeconds:z85.number().int().positive(),maxComputeUnits:z85.number().positive()})}),UnclaimedProjectClaimSchema=z85.object({url:z85.string().url(),expiresAt:z85.coerce.date()}),ProvisionUnclaimedProjectResponseDTO=createDTO(z85.object({project:ProjectDTOSchema,token:z85.string(),claim:UnclaimedProjectClaimSchema,limits:UnclaimedProjectLimitsSchema})),UnclaimedClaimStatusDTO=createDTO(z85.object({state:UnclaimedClaimStateSchema,displayName:z85.string().nullable(),expiresAt:z85.coerce.date().nullable(),projectId:z85.string().nullable()})),UnclaimedClaimSecretSchema=z85.string().min(1).max(256),UnclaimedClaimStatusRequestSchema=z85.object({secret:UnclaimedClaimSecretSchema}),UnclaimedClaimStatesRequestSchema=z85.object({secrets:z85.array(UnclaimedClaimSecretSchema).min(1).max(20)}),UnclaimedClaimStatesResponseDTO=createDTO(z85.object({claims:z85.array(z85.object({state:UnclaimedClaimStateSchema,expiresAt:z85.coerce.date().nullable()}))})),ClaimUnclaimedProjectRequestSchema=z85.object({secret:UnclaimedClaimSecretSchema,organizationId:z85.string().min(1)}),ClaimUnclaimedProjectResultDTO=createDTO(z85.object({projectId:z85.string(),organizationId:z85.string()})),ProjectTokenSelfDTO=createDTO(z85.object({kind:z85.literal("project_token"),projectId:z85.string(),projectName:z85.string(),displayName:z85.string().nullable(),organizationId:z85.string().nullable(),organizationName:z85.string().nullable(),claimState:UnclaimedClaimStateSchema,expiresAt:z85.coerce.date().nullable(),tokenExpiresAt:z85.coerce.date().nullable()}))}});import{z as z86}from"zod";var ProjectLocaleCoverageSchema,ProjectLocaleStatsItemSchema,ProjectLocaleStatsSchema,ProjectLocaleStatsDTO,ProjectLocaleStatsResponseSchema,AddProjectLocaleRequestSchema,RemoveProjectLocaleParamsSchema,ProjectLocaleMutationSchema,ProjectLocaleMutationDTO,ProjectLocaleMutationResponseSchema,RemoveProjectLocaleSchema,RemoveProjectLocaleDTO,RemoveProjectLocaleResponseSchema,init_project_locale_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-locale.dto.js"(){"use strict";init_create_dto();init_response();ProjectLocaleCoverageSchema=z86.object({translated:z86.number().int().nonnegative(),total:z86.number().int().nonnegative()}),ProjectLocaleStatsItemSchema=z86.object({locale:z86.string(),isDefault:z86.boolean(),entries:ProjectLocaleCoverageSchema,labels:ProjectLocaleCoverageSchema}),ProjectLocaleStatsSchema=z86.object({defaultLocale:z86.string(),locales:z86.array(ProjectLocaleStatsItemSchema)}),ProjectLocaleStatsDTO=createDTO(ProjectLocaleStatsSchema),ProjectLocaleStatsResponseSchema=createResponseSchema(ProjectLocaleStatsSchema),AddProjectLocaleRequestSchema=z86.object({locale:z86.string().min(1).max(40)}),RemoveProjectLocaleParamsSchema=z86.object({locale:z86.string().min(1).max(40)}),ProjectLocaleMutationSchema=z86.object({locale:z86.string()}),ProjectLocaleMutationDTO=createDTO(ProjectLocaleMutationSchema),ProjectLocaleMutationResponseSchema=createResponseSchema(ProjectLocaleMutationSchema),RemoveProjectLocaleSchema=z86.object({locale:z86.string(),entriesDeleted:z86.number().int().nonnegative(),labelsDeleted:z86.number().int().nonnegative()}),RemoveProjectLocaleDTO=createDTO(RemoveProjectLocaleSchema),RemoveProjectLocaleResponseSchema=createResponseSchema(RemoveProjectLocaleSchema)}});import{z as z87}from"zod";function flag(key,description,options={}){return{name:key.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),key,description,type:options.type??"string",required:options.required??!1,...options.defaultValue!==void 0?{defaultValue:options.defaultValue}:{},...options.enumValues?{enumValues:[...options.enumValues]}:{},isArray:options.isArray??!1}}var GENERATION_QUALITIES,GENERATION_ASPECT_RATIOS,GENERATION_TASK_IDS,GenerationQualitySchema,GenerationTaskIdSchema,GENERATION_TASK_MANIFESTS,GenerationTaskEstimateDTOSchema,GenerationTaskEstimateDTO,init_generation_task_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/generation-task.dto.js"(){"use strict";init_create_dto();GENERATION_QUALITIES=["draft","standard","premium"],GENERATION_ASPECT_RATIOS=["1:1","16:9","9:16","4:3","3:4"],GENERATION_TASK_IDS=["image.generate","image.edit","image.remove-background","image.upscale","video.generate","video.animate","video.replace"],GenerationQualitySchema=z87.enum(GENERATION_QUALITIES),GenerationTaskIdSchema=z87.enum(GENERATION_TASK_IDS);__name(flag,"flag");GENERATION_TASK_MANIFESTS=[{id:"image.generate",modality:"image",operation:"generate",displayName:"Generate image",description:"Create an image from a prompt. Quality selects the appropriate generation route.",flags:[flag("prompt","Generation prompt",{required:!0}),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"1:1",enumValues:GENERATION_ASPECT_RATIOS})]},{id:"image.edit",modality:"image",operation:"edit",displayName:"Edit image",description:"Transform up to five source images using a natural-language instruction.",flags:[flag("prompt","Editing instruction",{required:!0}),flag("images","Source asset id or absolute URL; repeatable up to five times",{required:!0,isArray:!0}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"1:1",enumValues:GENERATION_ASPECT_RATIOS})]},{id:"image.remove-background",modality:"image",operation:"remove-background",displayName:"Remove image background",description:"Remove the background from one image and return a transparent cutout.",flags:[flag("image","Source asset id or absolute URL",{required:!0})]},{id:"image.upscale",modality:"image",operation:"upscale",displayName:"Upscale image",description:"Increase image resolution while preserving and optionally enhancing detail.",flags:[flag("image","Source asset id or absolute URL",{required:!0}),flag("targetMegapixels","Target resolution in megapixels",{type:"integer",defaultValue:4}),flag("outputFormat","Output image format",{type:"enum",defaultValue:"png",enumValues:["webp","jpg","png"]}),flag("enhanceDetails","Improve fine detail during upscaling",{type:"boolean",defaultValue:!0}),flag("enhanceRealism","Favor photorealistic detail reconstruction",{type:"boolean",defaultValue:!1})]},{id:"video.generate",modality:"video",operation:"generate",displayName:"Generate video",description:"Create a video from text or animate one source image. Loop closes the final frame back to the first.",flags:[flag("prompt","Generation and motion prompt",{required:!0}),flag("image","Optional source asset id or absolute URL"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"16:9",enumValues:GENERATION_ASPECT_RATIOS}),flag("duration","Duration in seconds; loops support 3 to 20 seconds",{type:"integer",defaultValue:5}),flag("includeAudio","Generate audio with the video",{type:"boolean",defaultValue:!1}),flag("loop","Make the final frame return to the source image",{type:"boolean",defaultValue:!1})]},{id:"video.animate",modality:"video",operation:"animate",displayName:"Animate image from video",description:"Apply the motion and camera movement from a source video to a reference image.",flags:[flag("video","Motion source asset id or absolute URL",{required:!0}),flag("image","Subject reference asset id or absolute URL",{required:!0}),flag("prompt","Optional instruction for the animation"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("duration","Source duration in seconds for cost calculation",{type:"integer",defaultValue:5}),flag("includeAudio","Keep audio in the generated video",{type:"boolean",defaultValue:!0})]},{id:"video.replace",modality:"video",operation:"replace",displayName:"Replace subjects in video",description:"Replace people in a source video with one to three reference identities while preserving motion.",flags:[flag("video","Source video asset id or absolute URL",{required:!0}),flag("images","Identity reference asset id or URL; repeatable up to three times",{required:!0,isArray:!0}),flag("prompt","Optional placement instruction"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("duration","Source duration in seconds for cost calculation",{type:"integer",defaultValue:5}),flag("includeAudio","Keep audio in the generated video",{type:"boolean",defaultValue:!0})]}],GenerationTaskEstimateDTOSchema=z87.object({task:GenerationTaskIdSchema,quality:GenerationQualitySchema.optional(),costUsd:z87.number(),credits:z87.number().optional(),billingMode:z87.enum(["fimo-credits","provider-account"]).optional(),confidence:z87.enum(["exact","estimated","metered"]),basis:z87.string()}),GenerationTaskEstimateDTO=createDTO(GenerationTaskEstimateDTOSchema)}});import{z as z88}from"zod";var GenerateRequestBaseSchema,GenerateRequestDTOSchema,GenerateRequestDTO,GenerateResponseDataSchema,GenerateResponseDTO,GenerateResponseSchema,GenerateErrorSchema,init_generation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/generation.dto.js"(){"use strict";init_create_dto();init_response();init_asset_dto();init_generation_task_dto();GenerateRequestBaseSchema=z88.object({options:z88.record(z88.string(),z88.unknown()),name:z88.string().optional(),parentId:z88.string().nullable().optional(),altText:z88.string().optional(),caption:z88.string().optional()}),GenerateRequestDTOSchema=GenerateRequestBaseSchema.extend({task:z88.string().min(1).optional(),model:z88.string().min(1).optional()}).superRefine((value,context)=>{!!value.task==!!value.model&&context.addIssue({code:"custom",message:"Provide exactly one of task or model",path:["task"]})}),GenerateRequestDTO=createDTO(GenerateRequestDTOSchema),GenerateResponseDataSchema=z88.object({jobId:z88.string(),status:z88.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema.optional(),error:z88.string().nullable().optional(),credits:z88.number().optional(),costUsd:z88.number().optional(),billingMode:z88.enum(["fimo-credits","provider-account"]).optional(),task:GenerationTaskIdSchema.optional(),quality:GenerationQualitySchema.optional()}),GenerateResponseDTO=createDTO(GenerateResponseDataSchema),GenerateResponseSchema=createResponseSchema(GenerateResponseDataSchema),GenerateErrorSchema=z88.object({error:z88.string(),code:z88.enum(["unknown-task","unknown-model","options-invalid","source-invalid","task-routing-failed","generation-failed","provider-error","cost-limit-exceeded","cost-estimate-unavailable","unsupported-modality"]),availableTasks:z88.array(GenerationTaskIdSchema).optional(),availableModels:z88.array(z88.string()).optional(),issues:z88.array(z88.unknown()).optional()})}});import{z as z89}from"zod";var FlagTypeSchema,FlagSpecSchema,AssetModelPriceSchema,AssetModelDTOSchema,AssetModelDTO,AssetModelEstimateDTOSchema,AssetModelEstimateDTO,init_asset_model_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/asset-model.dto.js"(){"use strict";init_create_dto();FlagTypeSchema=z89.enum(["string","number","integer","boolean","enum","array","unknown"]),FlagSpecSchema=z89.object({name:z89.string(),key:z89.string(),description:z89.string(),type:FlagTypeSchema,required:z89.boolean(),defaultValue:z89.unknown().optional(),enumValues:z89.array(z89.string()).optional(),isArray:z89.boolean()}),AssetModelPriceSchema=z89.object({unitPrice:z89.number(),unit:z89.string(),confidence:z89.enum(["exact","estimated","metered"])}),AssetModelDTOSchema=z89.object({id:z89.string(),shortName:z89.string(),provider:z89.string(),source:z89.string(),modality:z89.enum(["image","video","audio"]),tags:z89.array(z89.string()),displayName:z89.string(),description:z89.string(),flags:z89.array(FlagSpecSchema),price:AssetModelPriceSchema.nullable()}),AssetModelDTO=createDTO(AssetModelDTOSchema),AssetModelEstimateDTOSchema=z89.object({model:z89.string(),costUsd:z89.number(),credits:z89.number(),billingMode:z89.enum(["fimo-credits","provider-account"]),confidence:z89.enum(["exact","estimated","metered"]),basis:z89.string()}),AssetModelEstimateDTO=createDTO(AssetModelEstimateDTOSchema)}});import{z as z90}from"zod";var UserTourDTOSchema,UserTourDTO,UserTourResponseSchema,UserTourListResponseSchema,init_tour_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/tour.dto.js"(){"use strict";init_create_dto();init_response();UserTourDTOSchema=z90.object({tourId:z90.string(),version:z90.string(),status:z90.string(),completedAt:z90.coerce.date()}),UserTourDTO=createDTO(UserTourDTOSchema),UserTourResponseSchema=createResponseSchema(UserTourDTOSchema),UserTourListResponseSchema=createResponseSchema(z90.array(UserTourDTOSchema))}});import{z as z91}from"zod";var OpsSentryIssueResolutionResponseSchema,OpsSentryIssueResolutionResponseDTO,OpsSentryIssueResolutionErrorResponseSchema,OpsSentryIssueResolutionErrorResponseDTO,init_ops_sentry_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-sentry.dto.js"(){"use strict";init_ops();init_create_dto();OpsSentryIssueResolutionResponseSchema=z91.object({backendProfile:OpsBackendProfileSchema,provider:z91.literal("sentry"),issueId:OpsSentryIssueIdSchema,status:z91.literal("resolved")}),OpsSentryIssueResolutionResponseDTO=createDTO(OpsSentryIssueResolutionResponseSchema),OpsSentryIssueResolutionErrorResponseSchema=z91.object({backendProfile:OpsBackendProfileSchema,provider:z91.literal("sentry"),issueId:OpsSentryIssueIdSchema,resolved:z91.literal(!1),reason:z91.string()}),OpsSentryIssueResolutionErrorResponseDTO=createDTO(OpsSentryIssueResolutionErrorResponseSchema)}});import{z as z92}from"zod";var OpsProjectPackageManagerSummarySchema,OpsProjectPackageManagerSchema,OpsProjectPackageManagerDTO,init_ops_project_files_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-project-files.dto.js"(){"use strict";init_ops();init_create_dto();OpsProjectPackageManagerSummarySchema=z92.object({packageManager:z92.string().trim().min(1).max(200).nullable(),trackedLockfiles:z92.array(z92.enum(OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES)),sourceRevision:z92.string().trim().min(1)}),OpsProjectPackageManagerSchema=z92.object({target:z92.object({backendProfile:OpsBackendProfileSchema,projectId:z92.uuid(),projectEnv:z92.string().trim().min(1).max(255)}),...OpsProjectPackageManagerSummarySchema.shape}),OpsProjectPackageManagerDTO=createDTO(OpsProjectPackageManagerSchema)}});import{z as z93}from"zod";function uniqueRoutineNames(spec){let names=(spec.routines??[]).map(routine=>routine.name);return new Set(names).size===names.length}var OpsAgentChatRoutineSpecSchema,OpsAgentChatAgentSpecSchema,OpsAgentChatSpecObjectSchema,UNIQUE_ROUTINE_NAMES,OpsAgentChatSpecSchema,OpsAgentChatCreateInputSchema,OpsAgentChatOutcomeSchema,OpsAgentChatRoutineResultSchema,OpsAgentChatCreateResultSchema,init_ops_agent_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-agent-chat.dto.js"(){"use strict";init_ops();init_chat_routine_dto();OpsAgentChatRoutineSpecSchema=ChatRoutineCreateSchema.extend({schedule:ChatRoutineScheduleSchema.nullable(),paused:z93.boolean().optional()}).strict(),OpsAgentChatAgentSpecSchema=z93.union([z93.object({name:z93.string().trim().min(1).max(120),description:z93.string().trim().min(1).max(2e3)}).strict(),z93.object({template:z93.string().trim().min(1).max(64)}).strict()]),OpsAgentChatSpecObjectSchema=z93.object({agent:OpsAgentChatAgentSpecSchema,routines:z93.array(OpsAgentChatRoutineSpecSchema).max(50).optional()}).strict();__name(uniqueRoutineNames,"uniqueRoutineNames");UNIQUE_ROUTINE_NAMES={path:["routines"],message:"Routine names must be unique within one agent"},OpsAgentChatSpecSchema=OpsAgentChatSpecObjectSchema.refine(uniqueRoutineNames,UNIQUE_ROUTINE_NAMES),OpsAgentChatCreateInputSchema=OpsAgentChatSpecObjectSchema.extend({reason:z93.string().trim().min(1).max(1e3),dryRun:z93.boolean().optional()}).refine(uniqueRoutineNames,UNIQUE_ROUTINE_NAMES),OpsAgentChatOutcomeSchema=z93.enum(["created","existing","would_create"]),OpsAgentChatRoutineResultSchema=z93.object({id:z93.string().uuid().nullable(),name:z93.string(),schedule:ChatRoutineScheduleSchema.nullable(),nextRunAt:z93.string().nullable(),paused:z93.boolean(),outcome:z93.enum(["created","would_create"]),source:z93.enum(["spec","template"])}),OpsAgentChatCreateResultSchema=z93.object({target:z93.object({backendProfile:OpsBackendProfileSchema,projectId:z93.string().uuid()}),dryRun:z93.boolean(),applied:z93.boolean(),createdBy:z93.object({userId:z93.string()}),agent:z93.object({id:z93.string().uuid().nullable(),title:z93.string(),template:z93.string().nullable(),outcome:OpsAgentChatOutcomeSchema}),routines:z93.array(OpsAgentChatRoutineResultSchema),skipped:z93.array(z93.object({name:z93.string(),reason:z93.literal("routine_exists")})),refused:z93.array(z93.object({name:z93.string(),reason:ChatRoutineRefusalReasonSchema}))})}});import{z as z94}from"zod";var WEBHOOK_EVENT_TYPES,WebhookEventTypeSchema,WebhookEntryChangeActionSchema,WebhookEntryChangeReasonSchema,WebhookEnvironmentScopeSchema,WebhookEnvironmentSelectorSchema,EntryChangedWebhookEventDataSchema,FormSubmittedWebhookEventDataSchema,PublishStartedWebhookEventDataSchema,PublishSucceededWebhookEventDataSchema,PublishFailedWebhookEventDataSchema,PublishUnpublishedWebhookEventDataSchema,AnalyticsReportReadyWebhookEventDataSchema,MediaAssetWebhookEventDataSchema,MediaUploadedWebhookEventDataSchema,MediaUpdatedWebhookEventDataSchema,MediaDeletedWebhookEventDataSchema,DomainCreatedWebhookEventDataSchema,DomainDeletedWebhookEventDataSchema,LabelChangedWebhookEventDataSchema,LocaleCreatedWebhookEventDataSchema,LocaleDefaultChangedWebhookEventDataSchema,LocaleDeletedWebhookEventDataSchema,EnvironmentCreatedWebhookEventDataSchema,EnvironmentDeletedWebhookEventDataSchema,EnvironmentMergedWebhookEventDataSchema,BranchRestoredWebhookEventDataSchema,WebhookEventFamilySchema,WebhookDestinationKindSchema,WebhookHeaderValueInputSchema,WebhookHeaderInputSchema,WebhookHeaderDTOSchema,WebhookFilterSchema,JsonValueSchema,CreateProjectWebhookRequestSchema,UpdateProjectWebhookRequestSchema,TestProjectWebhookRequestSchema,WebhookDeliveryStatusSchema,ProjectWebhookDTOSchema,ProjectWebhookDTO,WebhookDeliveryDTOSchema,WebhookDeliveryDTO,WebhookDeliveriesPageSchema,WebhookDeliveryAttemptDTOSchema,WebhookDeliveryAttemptDTO,ProjectWebhookResponseSchema,ProjectWebhooksListResponseSchema,WebhookDeliveriesListResponseSchema,WebhookDeliveryAttemptsListResponseSchema,init_webhook_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/webhook.dto.js"(){"use strict";init_common();init_env();init_environment();init_create_dto();init_response();init_env_status_dto();init_project_domain_dto();WEBHOOK_EVENT_TYPES=["entry.changed","form.submitted","publish.started","publish.succeeded","publish.failed","publish.unpublished","analytics.report_ready","media.uploaded","media.updated","media.deleted","domain.created","domain.deleted","label.changed","locale.created","locale.default_changed","locale.deleted","environment.created","environment.deleted","environment.merged","branch.restored"],WebhookEventTypeSchema=z94.enum(WEBHOOK_EVENT_TYPES),WebhookEntryChangeActionSchema=z94.enum(["created","updated","deleted"]),WebhookEntryChangeReasonSchema=z94.enum(["entry_write","bulk_edit","environment_merge"]),WebhookEnvironmentScopeSchema=z94.enum(["main","all"]),WebhookEnvironmentSelectorSchema=z94.union([WebhookEnvironmentScopeSchema,EnvironmentKeySchema]),EntryChangedWebhookEventDataSchema=z94.object({reason:WebhookEntryChangeReasonSchema,operationId:z94.string().optional(),batch:z94.object({index:z94.number().int().positive(),total:z94.number().int().positive()}).optional(),changes:z94.array(z94.object({action:WebhookEntryChangeActionSchema,contentType:z94.string(),id:z94.string(),documentId:z94.string(),locale:z94.string().nullable()}))}),FormSubmittedWebhookEventDataSchema=z94.object({form:z94.object({id:z94.string(),label:z94.string()}),submission:z94.object({id:z94.string(),data:z94.record(z94.string(),z94.unknown()),submittedAt:z94.string()})}),PublishStartedWebhookEventDataSchema=z94.object({publication:z94.object({status:z94.literal("publishing"),startedAt:z94.string()})}),PublishSucceededWebhookEventDataSchema=z94.object({publication:z94.object({status:z94.literal("published"),url:z94.string(),publishedAt:z94.string(),firstPublish:z94.boolean()})}),PublishFailedWebhookEventDataSchema=z94.object({publication:z94.object({status:z94.literal("failed"),reason:z94.string()})}),PublishUnpublishedWebhookEventDataSchema=z94.object({publication:z94.object({previousUrl:z94.string(),unpublishedAt:z94.string()})}),AnalyticsReportReadyWebhookEventDataSchema=z94.object({report:z94.object({weekStart:z94.string(),weekEnd:z94.string(),pageviews:z94.number(),visitors:z94.number(),previousPageviews:z94.number(),previousVisitors:z94.number()})}),MediaAssetWebhookEventDataSchema=z94.object({id:z94.string().nullable(),name:z94.string().nullable(),type:z94.string(),mimeType:z94.string().nullable(),fileSize:z94.number().nullable()}),MediaUploadedWebhookEventDataSchema=z94.object({asset:MediaAssetWebhookEventDataSchema,operation:z94.literal("uploaded")}),MediaUpdatedWebhookEventDataSchema=z94.object({asset:MediaAssetWebhookEventDataSchema,operation:z94.literal("updated")}),MediaDeletedWebhookEventDataSchema=z94.object({asset:MediaAssetWebhookEventDataSchema,operation:z94.literal("deleted")}),DomainCreatedWebhookEventDataSchema=z94.object({domain:z94.object({id:z94.string(),hostname:z94.string(),status:ProjectDomainStatusSchema,sslStatus:SSLStatusSchema})}),DomainDeletedWebhookEventDataSchema=z94.object({domain:z94.object({id:z94.string(),hostname:z94.string()})}),LabelChangedWebhookEventDataSchema=z94.object({changes:z94.array(z94.object({action:z94.enum(["created","updated","deleted"]),key:z94.string(),locale:z94.string(),value:z94.string().nullable()}))}),LocaleCreatedWebhookEventDataSchema=z94.object({locale:z94.object({code:z94.string(),isDefault:z94.boolean()})}),LocaleDefaultChangedWebhookEventDataSchema=z94.object({locale:z94.object({code:z94.string(),previousCode:z94.string()})}),LocaleDeletedWebhookEventDataSchema=z94.object({locale:z94.object({code:z94.string(),entriesDeleted:z94.number().int().nonnegative(),labelsDeleted:z94.number().int().nonnegative()})}),EnvironmentCreatedWebhookEventDataSchema=z94.object({environment:z94.object({name:BranchSchema,parent:BranchSchema})}),EnvironmentDeletedWebhookEventDataSchema=z94.object({environment:z94.object({name:BranchSchema})}),EnvironmentMergedWebhookEventDataSchema=z94.object({merge:z94.object({id:z94.string(),from:BranchSchema,to:BranchSchema,applied:z94.array(z94.object({surface:SurfaceNameSchema,count:z94.number().int().nonnegative()}))})}),BranchRestoredWebhookEventDataSchema=z94.object({branch:z94.object({name:BranchSchema}),version:z94.object({versionId:z94.uuid(),name:z94.string()})}),WebhookEventFamilySchema=z94.enum(["entries","forms","publish","analytics","media","domains","labels","locales","environments"]),WebhookDestinationKindSchema=z94.enum(["custom","resend","github","slack"]),WebhookHeaderValueInputSchema=z94.discriminatedUnion("source",[z94.object({source:z94.literal("literal"),value:z94.string().min(1).max(4096).regex(/^[^\r\n]*$/)}),z94.object({source:z94.literal("secret"),key:z94.string().regex(/^[A-Z_][A-Z0-9_]*$/),prefix:z94.string().max(128).regex(/^[^\r\n]*$/).optional()})]),WebhookHeaderInputSchema=z94.object({name:z94.string().min(1).max(128),value:WebhookHeaderValueInputSchema}),WebhookHeaderDTOSchema=z94.object({name:z94.string(),source:z94.enum(["literal","secret"]),secretKey:z94.string().nullable(),secretPrefix:z94.string().nullable(),configured:z94.literal(!0)}),WebhookFilterSchema=z94.object({environment:WebhookEnvironmentSelectorSchema.optional(),formId:z94.string().min(1).max(255).optional(),mediaType:z94.enum(["image","video","audio","document","other"]).optional(),action:WebhookEntryChangeActionSchema.optional(),contentType:z94.string().min(1).max(255).optional(),locale:z94.string().min(1).max(120).optional()}),JsonValueSchema=z94.lazy(()=>z94.union([z94.string(),z94.number(),z94.boolean(),z94.null(),z94.array(JsonValueSchema),z94.record(z94.string(),JsonValueSchema)])),CreateProjectWebhookRequestSchema=z94.object({name:z94.string().trim().min(1).max(120),eventType:WebhookEventTypeSchema,url:z94.url(),enabled:z94.boolean().optional().default(!0),filter:WebhookFilterSchema.optional().default({}),headers:z94.array(WebhookHeaderInputSchema).max(20).optional().default([]),bodyTemplate:JsonValueSchema.nullable().optional().default(null),signingEnabled:z94.boolean().optional().default(!0)}),UpdateProjectWebhookRequestSchema=z94.object({name:z94.string().trim().min(1).max(120).optional(),eventType:WebhookEventTypeSchema.optional(),url:z94.url().optional(),enabled:z94.boolean().optional(),filter:WebhookFilterSchema.optional(),headers:z94.array(WebhookHeaderInputSchema).max(20).optional(),bodyTemplate:JsonValueSchema.nullable().optional(),signingEnabled:z94.boolean().optional()}),TestProjectWebhookRequestSchema=z94.object({eventType:WebhookEventTypeSchema.optional(),data:z94.record(z94.string(),JsonValueSchema).optional()}),WebhookDeliveryStatusSchema=z94.enum(["pending","delivering","retrying","succeeded","failed"]),ProjectWebhookDTOSchema=BaseEntitySchema.extend({projectId:z94.uuid(),name:z94.string(),eventType:WebhookEventTypeSchema,enabled:z94.boolean(),destination:z94.object({host:z94.string(),maskedUrl:z94.string(),kind:WebhookDestinationKindSchema}),filter:WebhookFilterSchema,headers:z94.array(WebhookHeaderDTOSchema),bodyTemplate:JsonValueSchema.nullable(),signingEnabled:z94.boolean(),lastDeliveryStatus:WebhookDeliveryStatusSchema.nullable(),lastDeliveryAt:z94.coerce.date().nullable(),deliveryStats24h:z94.object({succeeded:z94.number().int().nonnegative(),failed:z94.number().int().nonnegative()})}),ProjectWebhookDTO=createDTO(ProjectWebhookDTOSchema),WebhookDeliveryDTOSchema=BaseEntitySchema.extend({webhookId:z94.uuid(),projectId:z94.uuid(),env:BranchSchema,environment:EnvironmentKeySchema,branch:BranchSchema,eventId:z94.uuid(),eventType:WebhookEventTypeSchema,eventVersion:z94.number().int().positive(),test:z94.boolean(),status:WebhookDeliveryStatusSchema,attemptCount:z94.number().int().nonnegative(),responseStatus:z94.number().int().nullable(),lastErrorCode:z94.string().nullable(),lastErrorMessage:z94.string().nullable(),payloadAvailable:z94.boolean(),destination:z94.object({host:z94.string(),maskedUrl:z94.string(),kind:WebhookDestinationKindSchema}),requestHeaders:z94.array(WebhookHeaderDTOSchema),requestBodyExcerpt:z94.string().nullable(),qstashMessageId:z94.string().nullable(),deliveredAt:z94.coerce.date().nullable()}),WebhookDeliveryDTO=createDTO(WebhookDeliveryDTOSchema),WebhookDeliveriesPageSchema=z94.object({items:z94.array(WebhookDeliveryDTOSchema),pagination:z94.object({page:z94.number().int().positive(),limit:z94.number().int().positive(),total:z94.number().int().nonnegative(),totalPages:z94.number().int().positive(),hasMore:z94.boolean()}),stats:z94.object({total:z94.number().int().nonnegative(),succeeded:z94.number().int().nonnegative(),failed:z94.number().int().nonnegative()})}),WebhookDeliveryAttemptDTOSchema=z94.object({id:z94.uuid(),deliveryId:z94.uuid(),attempt:z94.number().int().positive(),status:z94.enum(["delivering","succeeded","failed"]),responseStatus:z94.number().int().nullable(),durationMs:z94.number().int().nonnegative(),responseExcerpt:z94.string().nullable(),errorCode:z94.string().nullable(),errorMessage:z94.string().nullable(),createdAt:z94.coerce.date()}),WebhookDeliveryAttemptDTO=createDTO(WebhookDeliveryAttemptDTOSchema),ProjectWebhookResponseSchema=createResponseSchema(ProjectWebhookDTOSchema),ProjectWebhooksListResponseSchema=createResponseSchema(z94.array(ProjectWebhookDTOSchema)),WebhookDeliveriesListResponseSchema=createResponseSchema(WebhookDeliveriesPageSchema),WebhookDeliveryAttemptsListResponseSchema=createResponseSchema(z94.array(WebhookDeliveryAttemptDTOSchema))}});import{z as z95}from"zod";var PreviewFeatureDTOSchema,PreviewFeatureDTO,init_preview_feature_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/preview-feature.dto.js"(){"use strict";init_create_dto();PreviewFeatureDTOSchema=z95.object({key:z95.literal("fimo-2"),enabled:z95.boolean(),dismissed:z95.boolean().default(!1),interacted:z95.boolean().default(!1)}),PreviewFeatureDTO=createDTO(PreviewFeatureDTOSchema)}});import{z as z96}from"zod";var SiteOnboardingStageSchema,SiteScanStatusSchema,SiteCloneStatusSchema,SiteRefusalCodeSchema,SiteRefusalSchema,SiteCheckGroupSchema,SiteScoreSchema,SITE_CHECKS,SiteCheckIdSchema,SiteCheckStatusSchema,SiteCheckEvidenceSchema,SiteCheckResultSchema,SiteReportGroupSchema,SiteReportSchema,SitePriceTierSchema,SiteTypeSchema,SiteTermsCategorySchema,SITE_QUESTION,SITE_QUESTIONS,SiteUnderstandingSchema,SiteSuggestionSchema,SiteInterviewSuggestionsSchema,SiteInterviewAnswerSchema,SiteInterviewSchema,AnswerSiteInterviewRequestSchema,SiteFixesReportSchema,SiteOnboardingResultSchema,StartSiteOnboardingRequestSchema,StartSiteOnboardingResponseSchema,SiteOnboardingRefusedResponseSchema,SiteOnboardingStateSchema,SiteOnboardingStateDTO,SiteOnboardingStateResponseSchema,RetrySiteOnboardingRequestSchema,SiteOnboardingOutcomeSchema,AdminSiteOnboardingsQuerySchema,AdminSiteOnboardingDTOSchema,AdminSiteOnboardingDTO,AdminSiteOnboardingsResponseSchema,AdminSiteOnboardingStatsSchema,AdminSiteOnboardingStatsResponseSchema,AdminSiteOnboardingDetailSchema,AdminSiteOnboardingDetailDTO,AdminSiteOnboardingDetailResponseSchema,init_site_onboarding_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/site-onboarding.dto.js"(){"use strict";init_create_dto();init_response();SiteOnboardingStageSchema=z96.enum(["scanning","interviewing","reporting","open","expired","refused"]),SiteScanStatusSchema=z96.enum(["running","done","failed"]),SiteCloneStatusSchema=z96.enum(["not_started","running","paused","finished","failed"]),SiteRefusalCodeSchema=z96.enum(["invalid","private","not_found","tls","unreachable","redirect","error_page","bot_wall"]),SiteRefusalSchema=z96.object({code:SiteRefusalCodeSchema,suggestedUrl:z96.string().nullable()}),SiteCheckGroupSchema=z96.enum(["discovery","indexing","ai_crawlers","rendering","metadata","content","speed"]),SiteScoreSchema=z96.enum(["seo","geo"]),SITE_CHECKS=[{id:"robots_txt",group:"discovery",scores:["seo","geo"],weight:2},{id:"sitemap",group:"discovery",scores:["seo","geo"],weight:2},{id:"sitemap_lastmod",group:"discovery",scores:["seo","geo"],weight:1},{id:"broken_links",group:"discovery",scores:["seo"],weight:2},{id:"internal_nofollow",group:"discovery",scores:["seo"],weight:1},{id:"blocked_from_crawling",group:"discovery",scores:["seo","geo"],weight:3,cap:{seo:20,geo:20}},{id:"status_4xx",group:"indexing",scores:["seo","geo"],weight:2,cap:{seo:10,geo:10}},{id:"status_5xx",group:"indexing",scores:["seo","geo"],weight:3,cap:{seo:10,geo:10}},{id:"https_to_http",group:"indexing",scores:["seo"],weight:1,cap:{seo:50}},{id:"canonical",group:"indexing",scores:["seo"],weight:1},{id:"noindex",group:"indexing",scores:["seo","geo"],weight:3,cap:{seo:20,geo:20}},{id:"hreflang",group:"indexing",scores:["seo"],weight:1},{id:"missing_page",group:"indexing",scores:["seo","geo"],weight:1,cap:{seo:80,geo:80}},{id:"ai_bots_robots",group:"ai_crawlers",scores:["geo"],weight:3,cap:{geo:30}},{id:"ai_bot_access",group:"ai_crawlers",scores:["geo"],weight:2,cap:{geo:40}},{id:"llms_txt",group:"ai_crawlers",scores:["geo"],weight:1},{id:"server_rendering",group:"rendering",scores:["geo"],weight:3},{id:"semantic_html",group:"rendering",scores:["seo","geo"],weight:2},{id:"markdown_pages",group:"rendering",scores:["geo"],weight:1},{id:"markdown_alternate",group:"rendering",scores:["geo"],weight:.5},{id:"markdown_index",group:"rendering",scores:["geo"],weight:.5},{id:"meta_title",group:"metadata",scores:["seo"],weight:2},{id:"meta_description",group:"metadata",scores:["seo"],weight:2},{id:"structured_data",group:"metadata",scores:["seo","geo"],weight:2},{id:"organization_schema",group:"metadata",scores:["geo"],weight:2},{id:"entity_links",group:"metadata",scores:["geo"],weight:1},{id:"metadata_completeness",group:"metadata",scores:["seo","geo"],weight:2},{id:"trust_pages",group:"metadata",scores:["geo"],weight:2},{id:"word_count",group:"content",scores:["seo","geo"],weight:2},{id:"text_ratio",group:"content",scores:["seo"],weight:1},{id:"h1",group:"content",scores:["seo"],weight:2},{id:"image_alt",group:"content",scores:["seo","geo"],weight:1},{id:"broken_images",group:"content",scores:["seo"],weight:1},{id:"empty_link_text",group:"content",scores:["seo","geo"],weight:1},{id:"page_load",group:"speed",scores:["seo"],weight:3},{id:"unminified_assets",group:"speed",scores:["seo"],weight:1}],SiteCheckIdSchema=z96.enum(SITE_CHECKS.map(check=>check.id)),SiteCheckStatusSchema=z96.enum(["pass","partial","fail","not_scored"]),SiteCheckEvidenceSchema=z96.record(z96.string(),z96.union([z96.string(),z96.number(),z96.boolean(),z96.array(z96.string())])),SiteCheckResultSchema=z96.object({id:SiteCheckIdSchema,status:SiteCheckStatusSchema,evidence:SiteCheckEvidenceSchema}),SiteReportGroupSchema=z96.object({id:SiteCheckGroupSchema,score:z96.number().int().min(0).max(100).nullable()}),SiteReportSchema=z96.object({siteUrl:z96.string(),scannedAt:z96.coerce.date(),seoScore:z96.number().int().min(0).max(100).nullable(),geoScore:z96.number().int().min(0).max(100).nullable(),groups:z96.array(SiteReportGroupSchema),checks:z96.array(SiteCheckResultSchema),blockers:z96.array(SiteCheckIdSchema).default([])}),SitePriceTierSchema=z96.enum(["budget","standard","premium","luxury"]),SiteTypeSchema=z96.enum(["business","non_profit","portfolio","hobby","personal"]),SiteTermsCategorySchema=z96.enum(["violence","child_harm","harassment","hate","self_harm","adult","deception","scam"]),SITE_QUESTION={id:"site",kind:"confirm"},SITE_QUESTIONS={business:[SITE_QUESTION,{id:"competitors",kind:"form",inputs:[{id:"names",kind:"choices",multiple:!0,allowOther:!0,options:"competitors"}]},{id:"positioning",kind:"form",inputs:[{id:"positioning",kind:"text",max:2e3}]},{id:"priceTier",kind:"form",inputs:[{id:"priceTier",kind:"choices",multiple:!1,allowOther:!1,options:SitePriceTierSchema.options}]}],non_profit:[SITE_QUESTION,{id:"action",kind:"form",inputs:[{id:"picks",kind:"choices",multiple:!1,allowOther:!0,options:["volunteer","donate","join","next_event"]}]},{id:"searches",kind:"form",inputs:[{id:"picks",kind:"choices",multiple:!0,allowOther:!0,options:"model"}]}],portfolio:[SITE_QUESTION,{id:"work",kind:"form",inputs:[{id:"picks",kind:"choices",multiple:!0,allowOther:!0,options:"model"}]},{id:"action",kind:"form",inputs:[{id:"picks",kind:"choices",multiple:!1,allowOther:!0,options:["book_call","request_quote","email","follow"]}]}],hobby:[SITE_QUESTION,{id:"return",kind:"form",inputs:[{id:"picks",kind:"choices",multiple:!0,allowOther:!0,options:["creations","tutorials","progress","tips"]}]},{id:"tone",kind:"form",inputs:[{id:"picks",kind:"choices",multiple:!1,allowOther:!1,options:["warm","expert","playful","calm"]}]}],personal:[SITE_QUESTION,{id:"remember",kind:"form",inputs:[{id:"picks",kind:"choices",multiple:!1,allowOther:!0,options:"model"}]},{id:"action",kind:"form",inputs:[{id:"picks",kind:"choices",multiple:!1,allowOther:!0,options:["read","contact","hire","follow"]}]}]},SiteUnderstandingSchema=z96.object({name:z96.string(),summary:z96.string(),audience:z96.string(),positioning:z96.string(),priceTier:SitePriceTierSchema,homepage:z96.string()}),SiteSuggestionSchema=z96.object({label:z96.string(),url:z96.string().nullable()}),SiteInterviewSuggestionsSchema=z96.record(z96.string(),z96.record(z96.string(),z96.array(SiteSuggestionSchema))),SiteInterviewAnswerSchema=z96.record(z96.string().max(50),z96.union([z96.string().trim().max(2e3),z96.array(z96.string().trim().min(1).max(200)).max(10)])),SiteInterviewSchema=z96.object({status:z96.enum(["waiting","drafting","ready","failed"]),siteType:SiteTypeSchema.nullable(),site:SiteUnderstandingSchema.nullable(),suggestions:SiteInterviewSuggestionsSchema,answers:z96.record(z96.string(),SiteInterviewAnswerSchema)}),AnswerSiteInterviewRequestSchema=z96.object({questionId:z96.string().min(1).max(50),answer:SiteInterviewAnswerSchema}),SiteFixesReportSchema=z96.object({fixes:z96.array(z96.object({checkId:SiteCheckIdSchema,status:z96.enum(["fixed","not_fixed","not_applicable"]),note:z96.string().trim().min(1).max(300)})).min(1).max(40)}),SiteOnboardingResultSchema=z96.object({fixes:SiteFixesReportSchema.nullable(),summary:z96.string().nullable()}),StartSiteOnboardingRequestSchema=z96.object({organizationId:z96.string().min(1),url:z96.string().trim().min(1).max(2048),locale:z96.string().trim().min(2).max(16).default("en")}),StartSiteOnboardingResponseSchema=createResponseSchema(z96.object({projectId:z96.string()})),SiteOnboardingRefusedResponseSchema=z96.object({error:z96.literal("site_refused"),refusal:SiteRefusalSchema}),SiteOnboardingStateSchema=z96.object({projectId:z96.string(),siteUrl:z96.string(),stage:SiteOnboardingStageSchema,scanStatus:SiteScanStatusSchema,cloneStatus:SiteCloneStatusSchema,cloneRetryAvailable:z96.boolean(),budgetExhausted:z96.boolean(),sponsored:z96.boolean(),cloneOutOfCredits:z96.boolean(),interview:SiteInterviewSchema.nullable(),cloneThreadId:z96.string().nullable(),welcomeThreadId:z96.string().nullable(),competitors:z96.array(z96.string()),report:SiteReportSchema.nullable(),reportExpiresAt:z96.coerce.date(),openedAt:z96.coerce.date().nullable(),bannerDismissed:z96.boolean()}),SiteOnboardingStateDTO=createDTO(SiteOnboardingStateSchema),SiteOnboardingStateResponseSchema=createResponseSchema(SiteOnboardingStateSchema.nullable()),RetrySiteOnboardingRequestSchema=z96.object({task:z96.enum(["interview","scan","clone"])}),SiteOnboardingOutcomeSchema=z96.enum(["finished","rebuilding","paused","failed","scan_failed","scanning","expired","refused","not_started"]),AdminSiteOnboardingsQuerySchema=z96.object({search:z96.string().trim().max(200).optional(),organizationId:z96.string().trim().min(1).max(200).optional(),startDate:z96.coerce.date().optional(),endDate:z96.coerce.date().optional(),outcomes:z96.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z96.array(SiteOnboardingOutcomeSchema).optional()),siteTypes:z96.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z96.array(SiteTypeSchema).optional()),page:z96.coerce.number().int().min(1).default(1),pageSize:z96.coerce.number().int().min(1).max(100).default(25)}),AdminSiteOnboardingDTOSchema=z96.object({projectId:z96.string(),projectName:z96.string(),organizationId:z96.string(),organizationName:z96.string().nullable(),ownerEmail:z96.string().nullable(),ownerName:z96.string().nullable(),siteUrl:z96.string(),stage:SiteOnboardingStageSchema,scanStatus:SiteScanStatusSchema,cloneStatus:SiteCloneStatusSchema,outcome:SiteOnboardingOutcomeSchema,sponsored:z96.boolean(),cloneRetries:z96.number(),siteType:SiteTypeSchema.nullable(),refusalCategory:SiteTermsCategorySchema.nullable(),interviewAnswers:z96.number(),interviewQuestions:z96.number().nullable(),seoScore:z96.number().nullable(),geoScore:z96.number().nullable(),spentUsd:z96.number(),budgetCapUsd:z96.number(),capReached:z96.boolean(),cloneSeconds:z96.number().nullable(),createdAt:z96.coerce.date(),openedAt:z96.coerce.date().nullable()}),AdminSiteOnboardingDTO=createDTO(AdminSiteOnboardingDTOSchema),AdminSiteOnboardingsResponseSchema=createResponseSchema(z96.object({onboardings:z96.array(AdminSiteOnboardingDTOSchema),page:z96.number(),limit:z96.number(),total:z96.number(),totalPages:z96.number()})),AdminSiteOnboardingStatsSchema=z96.object({total:z96.number(),outcomes:z96.record(SiteOnboardingOutcomeSchema,z96.number()),funnel:z96.object({started:z96.number(),confirmed:z96.number(),finished:z96.number(),opened:z96.number()}),bySiteType:z96.array(z96.object({siteType:SiteTypeSchema,total:z96.number(),finished:z96.number(),opened:z96.number()})),granularity:z96.enum(["hour","day"]),series:z96.array(z96.object({at:z96.coerce.date(),outcomes:z96.record(SiteOnboardingOutcomeSchema,z96.number())})),spentUsd:z96.object({total:z96.number(),average:z96.number().nullable()}),sponsored:z96.number(),paidByOrganization:z96.object({usd:z96.number(),credits:z96.number()}),capReached:z96.number(),cloneSeconds:z96.object({median:z96.number().nullable(),average:z96.number().nullable()})}),AdminSiteOnboardingStatsResponseSchema=createResponseSchema(AdminSiteOnboardingStatsSchema),AdminSiteOnboardingDetailSchema=z96.object({onboarding:AdminSiteOnboardingDTOSchema.extend({locale:z96.string(),cloneThreadId:z96.string().nullable(),paidByOrganizationUsd:z96.number()}),interview:SiteInterviewSchema.extend({invocationIds:z96.array(z96.string())}).nullable(),knowledgeWritten:z96.string().nullable(),knowledgeNow:z96.object({content:z96.string(),updatedAt:z96.coerce.date().nullable(),updatedBy:z96.string().nullable()}),report:SiteReportSchema.nullable()}),AdminSiteOnboardingDetailDTO=createDTO(AdminSiteOnboardingDetailSchema),AdminSiteOnboardingDetailResponseSchema=createResponseSchema(AdminSiteOnboardingDetailSchema)}});import{z as z97}from"zod";var SubscriptionStatusSchema,CreditBalanceBreakdownDTOSchema,CreditBalanceBreakdownDTO,SubscriptionPlanDTOSchema,SubscriptionPlanDTO,SubscriptionPaymentMethodDTOSchema,SubscriptionPaymentMethodDTO,SubscriptionPricingDTOSchema,SubscriptionPricingDTO,SubscriptionDetailsDTOSchema,SubscriptionDetailsDTO,CreditAlertDTOSchema,CreditAlertDTO,PlanAllocationDTOSchema,PlanAllocationDTO,LatestCancellationDTOSchema,LatestCancellationDTO,OrganizationSubscriptionDTOSchema,OrganizationSubscriptionDTO,BaseCreditTopupRequestSchema,FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema,CreditTopupRequestDTOSchema,CreditTopupRequestDTO,CreditTopupResponseDTOSchema,CreditTopupResponseDTO,init_subscription_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/subscription.dto.js"(){"use strict";init_common();init_create_dto();init_billing_dto();SubscriptionStatusSchema=z97.enum(["active","cancelled","draft","errored","paused","pending","voided"]),CreditBalanceBreakdownDTOSchema=z97.object({total:z97.number(),base:z97.number(),purchases:z97.number(),awards:z97.number()}),CreditBalanceBreakdownDTO=createDTO(CreditBalanceBreakdownDTOSchema),SubscriptionPlanDTOSchema=z97.object({id:z97.string(),name:z97.string()}),SubscriptionPlanDTO=createDTO(SubscriptionPlanDTOSchema),SubscriptionPaymentMethodDTOSchema=z97.object({type:z97.string(),brand:z97.string().nullable(),last4:z97.string().nullable(),expirationDate:z97.string().nullable()}),SubscriptionPaymentMethodDTO=createDTO(SubscriptionPaymentMethodDTOSchema),SubscriptionPricingDTOSchema=z97.object({currency:z97.string(),nextPaymentAmount:z97.number().nullable(),nextPaymentAt:z97.string().nullable(),billingInterval:z97.string().nullable(),totalAmount:z97.number().nullable(),discountAmount:z97.number().nullable()}),SubscriptionPricingDTO=createDTO(SubscriptionPricingDTOSchema),SubscriptionDetailsDTOSchema=z97.object({id:z97.string(),status:SubscriptionStatusSchema,plan:SubscriptionPlanDTOSchema.nullable(),currentPeriodStartedAt:z97.string().nullable(),currentPeriodEndsAt:z97.string().nullable(),renewsAt:z97.string().nullable(),cancelAt:z97.string().nullable(),renewAutomatically:z97.boolean(),pricing:SubscriptionPricingDTOSchema.nullable(),paymentMethod:SubscriptionPaymentMethodDTOSchema.nullable()}),SubscriptionDetailsDTO=createDTO(SubscriptionDetailsDTOSchema),CreditAlertDTOSchema=z97.object({type:z97.enum(["low_balance","critical_balance","approaching_limit"]),message:z97.string(),estimatedPromptsRemaining:z97.number().nullable(),avgCostPerPrompt:z97.number().nullable()}),CreditAlertDTO=createDTO(CreditAlertDTOSchema),PlanAllocationDTOSchema=z97.object({monthlyCredits:z97.number().nullable(),usedThisPeriod:z97.number(),remainingThisPeriod:z97.number()}),PlanAllocationDTO=createDTO(PlanAllocationDTOSchema),LatestCancellationDTOSchema=z97.object({organizationId:z97.string(),planCode:TemplateCodeSchema,reason:CancellationReasonCodeSchema,details:z97.string().nullable(),tenureDays:z97.number().int().nonnegative(),capturedAt:z97.string()}),LatestCancellationDTO=createDTO(LatestCancellationDTOSchema),OrganizationSubscriptionDTOSchema=z97.object({hasSubscription:z97.boolean(),subscription:SubscriptionDetailsDTOSchema.nullable(),credits:CreditBalanceBreakdownDTOSchema,planAllocation:PlanAllocationDTOSchema.nullable(),lowBalanceThreshold:z97.number().nullable(),alerts:z97.array(CreditAlertDTOSchema),portalUrl:z97.string().nullable(),latestCancellation:LatestCancellationDTOSchema.nullable()}),OrganizationSubscriptionDTO=createDTO(OrganizationSubscriptionDTOSchema),BaseCreditTopupRequestSchema=z97.object({creditCount:z97.number().int().positive(),expiresAt:z97.string().datetime().nullable().optional(),message:z97.string().nullable().optional()}),FreeCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z97.literal("free"),amountCents:z97.number().int().positive().nullable().optional()}),PurchaseCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z97.literal("purchase"),amountCents:z97.number().int().positive()}),CreditTopupRequestDTOSchema=z97.discriminatedUnion("type",[FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema]),CreditTopupRequestDTO=createDTO(CreditTopupRequestDTOSchema),CreditTopupResponseDTOSchema=z97.object({success:z97.boolean(),transactionId:z97.string().nullable(),newBalance:z97.number(),creditCount:z97.number(),type:z97.enum(["free","purchase"]),invoiceId:z97.string().nullable()}),CreditTopupResponseDTO=createDTO(CreditTopupResponseDTOSchema)}});import{z as z98}from"zod";var UsageSummaryDTOSchema,UsageSummaryDTO,UsageByProjectDTOSchema,UsageByProjectDTO,UsageByUserDTOSchema,UsageByUserDTO,UsageTimelineItemDTOSchema,UsageTimelineItemDTO,UsageByUserForProjectDTOSchema,UsageByUserForProjectDTO,ProjectUsageDetailDTOSchema,ProjectUsageDetailDTO,OrganizationUsageDTOSchema,OrganizationUsageDTO,init_usage_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/usage.dto.js"(){"use strict";init_create_dto();UsageSummaryDTOSchema=z98.object({totalCredits:z98.number(),totalCostUsd:z98.number(),totalMessages:z98.number(),avgCostPerMessage:z98.number(),periodStart:z98.string().nullable(),periodEnd:z98.string().nullable()}),UsageSummaryDTO=createDTO(UsageSummaryDTOSchema),UsageByProjectDTOSchema=z98.object({projectId:z98.string(),projectName:z98.string(),projectDisplayName:z98.string().nullable(),credits:z98.number(),costUsd:z98.number(),messages:z98.number(),percentage:z98.number()}),UsageByProjectDTO=createDTO(UsageByProjectDTOSchema),UsageByUserDTOSchema=z98.object({userId:z98.string(),userName:z98.string().nullable(),userEmail:z98.string().email().nullable(),credits:z98.number(),costUsd:z98.number(),messages:z98.number(),percentage:z98.number()}),UsageByUserDTO=createDTO(UsageByUserDTOSchema),UsageTimelineItemDTOSchema=z98.object({date:z98.string(),credits:z98.number(),costUsd:z98.number(),messages:z98.number()}),UsageTimelineItemDTO=createDTO(UsageTimelineItemDTOSchema),UsageByUserForProjectDTOSchema=z98.object({userId:z98.string(),userName:z98.string().nullable(),userEmail:z98.string().email().nullable(),credits:z98.number(),costUsd:z98.number(),messages:z98.number(),percentage:z98.number()}),UsageByUserForProjectDTO=createDTO(UsageByUserForProjectDTOSchema),ProjectUsageDetailDTOSchema=z98.object({projectId:z98.string(),projectName:z98.string(),projectDisplayName:z98.string().nullable(),summary:UsageSummaryDTOSchema,byUser:z98.array(UsageByUserForProjectDTOSchema),timeline:z98.array(UsageTimelineItemDTOSchema)}),ProjectUsageDetailDTO=createDTO(ProjectUsageDetailDTOSchema),OrganizationUsageDTOSchema=z98.object({summary:UsageSummaryDTOSchema,byProject:z98.array(UsageByProjectDTOSchema),byUser:z98.array(UsageByUserDTOSchema),timeline:z98.array(UsageTimelineItemDTOSchema)}),OrganizationUsageDTO=createDTO(OrganizationUsageDTOSchema)}});import{z as z99}from"zod";var TimeRangePresetSchema,SortOrderSchema,UsageAnalyticsQuerySchema,UsageOverviewSummaryDTOSchema,UsageOverviewSummaryDTO,UsageTimelinePointDTOSchema,UsageTimelinePointDTO,OrganizationUsageRowDTOSchema,OrganizationUsageRowDTO,UserUsageRowDTOSchema,UserUsageRowDTO,ProjectUsageRowDTOSchema,ProjectUsageRowDTO,UsageDistributionItemDTOSchema,UsageDistributionItemDTO,UsageHeatmapPointDTOSchema,UsageHeatmapPointDTO,UsageOverviewResponseDTOSchema,UsageOverviewResponseDTO,UsagePaginationDTOSchema,UsagePaginationDTO,UsageByOrganizationResponseDTOSchema,UsageByOrganizationResponseDTO,ExtendedUserUsageRowDTOSchema,ExtendedUserUsageRowDTO,UsageByUserResponseDTOSchema,UsageByUserResponseDTO,ExtendedProjectUsageRowDTOSchema,ExtendedProjectUsageRowDTO,UsageByProjectResponseDTOSchema,UsageByProjectResponseDTO,ExportFormatSchema,UsageExportQuerySchema,PeekUsageMetricsDTOSchema,PeekUsageMetricsDTO,OrganizationPeekDTOSchema,OrganizationPeekDTO,UserPeekDTOSchema,UserPeekDTO,ProjectPeekDTOSchema,ProjectPeekDTO,init_usage_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/usage-analytics.dto.js"(){"use strict";init_create_dto();TimeRangePresetSchema=z99.enum(["today","1d","7d","14d","30d","60d","90d"]),SortOrderSchema=z99.enum(["asc","desc"]),UsageAnalyticsQuerySchema=z99.object({startDate:z99.string().optional(),endDate:z99.string().optional(),preset:TimeRangePresetSchema.optional().default("30d"),page:z99.coerce.number().int().positive().default(1),limit:z99.coerce.number().int().positive().max(100).default(20),sortBy:z99.string().optional(),sortOrder:SortOrderSchema.optional().default("desc"),search:z99.string().optional(),activeOnly:z99.stringbool().optional().default(!0)}),UsageOverviewSummaryDTOSchema=z99.object({totalCredits:z99.number(),totalCostUsd:z99.number(),totalMessages:z99.number(),automatedMessages:z99.number(),avgCostPerMessage:z99.number(),avgCreditsPerMessage:z99.number(),periodStart:z99.string(),periodEnd:z99.string(),creditsChange:z99.number().nullable(),costChange:z99.number().nullable(),messagesChange:z99.number().nullable(),unattributedCredits:z99.number(),unattributedCostUsd:z99.number(),unattributedMessages:z99.number()}),UsageOverviewSummaryDTO=createDTO(UsageOverviewSummaryDTOSchema),UsageTimelinePointDTOSchema=z99.object({date:z99.string(),credits:z99.number(),costUsd:z99.number(),messages:z99.number()}),UsageTimelinePointDTO=createDTO(UsageTimelinePointDTOSchema),OrganizationUsageRowDTOSchema=z99.object({organizationId:z99.string(),organizationName:z99.string(),credits:z99.number(),costUsd:z99.number(),messages:z99.number(),percentage:z99.number(),userCount:z99.number(),projectCount:z99.number()}),OrganizationUsageRowDTO=createDTO(OrganizationUsageRowDTOSchema),UserUsageRowDTOSchema=z99.object({userId:z99.string(),userName:z99.string().nullable(),userEmail:z99.string().nullable(),userImage:z99.string().nullable(),organizationId:z99.string().nullable(),organizationName:z99.string().nullable(),credits:z99.number(),costUsd:z99.number(),messages:z99.number(),percentage:z99.number(),projectCount:z99.number()}),UserUsageRowDTO=createDTO(UserUsageRowDTOSchema),ProjectUsageRowDTOSchema=z99.object({projectId:z99.string(),projectName:z99.string(),projectDisplayName:z99.string().nullable(),organizationId:z99.string(),organizationName:z99.string(),credits:z99.number(),costUsd:z99.number(),messages:z99.number(),percentage:z99.number(),userCount:z99.number()}),ProjectUsageRowDTO=createDTO(ProjectUsageRowDTOSchema),UsageDistributionItemDTOSchema=z99.object({id:z99.string(),name:z99.string(),value:z99.number(),percentage:z99.number()}),UsageDistributionItemDTO=createDTO(UsageDistributionItemDTOSchema),UsageHeatmapPointDTOSchema=z99.object({day:z99.number(),hour:z99.number(),value:z99.number()}),UsageHeatmapPointDTO=createDTO(UsageHeatmapPointDTOSchema),UsageOverviewResponseDTOSchema=z99.object({summary:UsageOverviewSummaryDTOSchema,timeline:z99.array(UsageTimelinePointDTOSchema),topOrganizations:z99.array(OrganizationUsageRowDTOSchema),topUsers:z99.array(UserUsageRowDTOSchema),topProjects:z99.array(ProjectUsageRowDTOSchema),creditDistribution:z99.array(UsageDistributionItemDTOSchema),userDistribution:z99.array(UsageDistributionItemDTOSchema),heatmap:z99.array(UsageHeatmapPointDTOSchema)}),UsageOverviewResponseDTO=createDTO(UsageOverviewResponseDTOSchema),UsagePaginationDTOSchema=z99.object({page:z99.number(),limit:z99.number(),totalItems:z99.number(),totalPages:z99.number(),hasMore:z99.boolean()}),UsagePaginationDTO=createDTO(UsagePaginationDTOSchema),UsageByOrganizationResponseDTOSchema=z99.object({organizations:z99.array(OrganizationUsageRowDTOSchema),top:z99.array(OrganizationUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByOrganizationResponseDTO=createDTO(UsageByOrganizationResponseDTOSchema),ExtendedUserUsageRowDTOSchema=UserUsageRowDTOSchema.extend({organizationCount:z99.number()}),ExtendedUserUsageRowDTO=createDTO(ExtendedUserUsageRowDTOSchema),UsageByUserResponseDTOSchema=z99.object({users:z99.array(ExtendedUserUsageRowDTOSchema),top:z99.array(ExtendedUserUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByUserResponseDTO=createDTO(UsageByUserResponseDTOSchema),ExtendedProjectUsageRowDTOSchema=ProjectUsageRowDTOSchema.extend({ownerId:z99.string(),ownerName:z99.string().nullable(),ownerEmail:z99.string().nullable()}),ExtendedProjectUsageRowDTO=createDTO(ExtendedProjectUsageRowDTOSchema),UsageByProjectResponseDTOSchema=z99.object({projects:z99.array(ExtendedProjectUsageRowDTOSchema),top:z99.array(ExtendedProjectUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByProjectResponseDTO=createDTO(UsageByProjectResponseDTOSchema),ExportFormatSchema=z99.enum(["csv","json"]),UsageExportQuerySchema=UsageAnalyticsQuerySchema.extend({format:ExportFormatSchema.default("csv"),type:z99.enum(["overview","organizations","users","projects"]).default("overview")}),PeekUsageMetricsDTOSchema=z99.object({credits:z99.number(),costUsd:z99.number(),messages:z99.number()}),PeekUsageMetricsDTO=createDTO(PeekUsageMetricsDTOSchema),OrganizationPeekDTOSchema=z99.object({id:z99.string(),name:z99.string(),createdAt:z99.string(),memberCount:z99.number(),projectCount:z99.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z99.array(UsageTimelinePointDTOSchema)}),OrganizationPeekDTO=createDTO(OrganizationPeekDTOSchema),UserPeekDTOSchema=z99.object({id:z99.string(),name:z99.string().nullable(),email:z99.string(),image:z99.string().nullable(),createdAt:z99.string(),organizationCount:z99.number(),projectCount:z99.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z99.array(UsageTimelinePointDTOSchema)}),UserPeekDTO=createDTO(UserPeekDTOSchema),ProjectPeekDTOSchema=z99.object({id:z99.string(),name:z99.string(),displayName:z99.string().nullable(),createdAt:z99.string(),organizationId:z99.string(),organizationName:z99.string(),ownerId:z99.string(),ownerName:z99.string().nullable(),ownerEmail:z99.string().nullable(),usage:PeekUsageMetricsDTOSchema,recentActivity:z99.array(UsageTimelinePointDTOSchema)}),ProjectPeekDTO=createDTO(ProjectPeekDTOSchema)}});import{z as z100}from"zod";var SandboxProcessStatusSchema,PresetSandboxCommandSchema,ExecuteSandboxCommandRequestDTOSchema,ExecuteSandboxCommandRequestDTO,SandboxProcessInfoDTOSchema,SandboxProcessInfoDTO,SandboxProcessInfoResponseSchema,SandboxProcessListDTOSchema,SandboxProcessListDTO,SandboxProcessListResponseSchema,ExecuteSandboxCommandResponseDTOSchema,ExecuteSandboxCommandResponseDTO,PresetCommandResponseDTOSchema,PresetCommandResponseDTO,PresetCommandResponseSchema,init_sandbox_command_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/sandbox-command.dto.js"(){"use strict";init_env();init_create_dto();init_response();SandboxProcessStatusSchema=z100.enum(["running","completed","failed","stopped"]),PresetSandboxCommandSchema=z100.enum(["restart-dev-server","stop-dev-server","install-dependencies","reinstall-dependencies","build","typecheck"]),ExecuteSandboxCommandRequestDTOSchema=z100.object({command:z100.string().min(1).max(1e4),cwd:z100.string().optional(),projectBranch:BranchSchema.optional(),projectEnv:BranchSchema.optional(),env:z100.record(z100.string(),z100.string()).optional(),name:z100.string().optional(),waitForCompletion:z100.boolean().optional().default(!1)}).superRefine((value,ctx)=>{value.projectBranch!==void 0&&value.projectEnv!==void 0&&value.projectBranch!==value.projectEnv&&ctx.addIssue({code:"custom",path:["projectBranch"],message:"`projectBranch` and deprecated `projectEnv` must match when both are supplied"})}),ExecuteSandboxCommandRequestDTO=createDTO(ExecuteSandboxCommandRequestDTOSchema),SandboxProcessInfoDTOSchema=z100.object({identifier:z100.string(),status:SandboxProcessStatusSchema,command:z100.string().optional(),startedAt:z100.string().optional(),exitCode:z100.number().optional()}),SandboxProcessInfoDTO=createDTO(SandboxProcessInfoDTOSchema),SandboxProcessInfoResponseSchema=createResponseSchema(SandboxProcessInfoDTOSchema),SandboxProcessListDTOSchema=z100.object({processes:z100.array(SandboxProcessInfoDTOSchema)}),SandboxProcessListDTO=createDTO(SandboxProcessListDTOSchema),SandboxProcessListResponseSchema=createResponseSchema(SandboxProcessListDTOSchema),ExecuteSandboxCommandResponseDTOSchema=z100.object({processId:z100.string(),status:SandboxProcessStatusSchema}),ExecuteSandboxCommandResponseDTO=createDTO(ExecuteSandboxCommandResponseDTOSchema),PresetCommandResponseDTOSchema=z100.object({success:z100.boolean(),message:z100.string().optional()}),PresetCommandResponseDTO=createDTO(PresetCommandResponseDTOSchema),PresetCommandResponseSchema=createResponseSchema(PresetCommandResponseDTOSchema)}});import{z as z101}from"zod";var ADMIN_UNCLAIMED_STATES,AdminUnclaimedStateSchema,AdminUnclaimedProjectsQuerySchema,AdminUnclaimedProjectDTOSchema,AdminUnclaimedProjectDTO,AdminUnclaimedProjectsResponseSchema,ClaimOutcomesSchema,AdminUnclaimedProjectStatsSchema,AdminUnclaimedProjectStatsResponseSchema,init_unclaimed_projects_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/unclaimed-projects.dto.js"(){"use strict";init_create_dto();init_response();ADMIN_UNCLAIMED_STATES=["waiting","claiming","claimed","overdue","archived"],AdminUnclaimedStateSchema=z101.enum(ADMIN_UNCLAIMED_STATES),AdminUnclaimedProjectsQuerySchema=z101.object({search:z101.string().trim().max(200).optional(),startDate:z101.coerce.date().optional(),endDate:z101.coerce.date().optional(),states:z101.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z101.array(AdminUnclaimedStateSchema).optional()),cliVersions:z101.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z101.array(z101.string().max(64)).optional()),page:z101.coerce.number().int().min(1).default(1),pageSize:z101.coerce.number().int().min(1).max(100).default(25)}),AdminUnclaimedProjectDTOSchema=z101.object({projectId:z101.string(),displayName:z101.string().nullable(),state:AdminUnclaimedStateSchema,cliVersion:z101.string().nullable(),createdAt:z101.coerce.date(),expiresAt:z101.coerce.date(),claimedAt:z101.coerce.date().nullable(),claimedOrganizationId:z101.string().nullable(),claimedOrganizationName:z101.string().nullable(),claimedByEmail:z101.string().nullable(),projectExists:z101.boolean(),previewUrl:z101.string().nullable(),hostingCostUsd:z101.number().nullable()}),AdminUnclaimedProjectDTO=createDTO(AdminUnclaimedProjectDTOSchema),AdminUnclaimedProjectsResponseSchema=createResponseSchema(z101.object({projects:z101.array(AdminUnclaimedProjectDTOSchema),page:z101.number(),limit:z101.number(),total:z101.number(),totalPages:z101.number()})),ClaimOutcomesSchema=z101.object({total:z101.number(),claimed:z101.number(),archived:z101.number(),claimRate:z101.number().nullable(),medianTimeToClaimSeconds:z101.number().nullable()}),AdminUnclaimedProjectStatsSchema=ClaimOutcomesSchema.extend({states:z101.record(AdminUnclaimedStateSchema,z101.number()),averageTimeToClaimSeconds:z101.number().nullable(),byCliVersion:z101.array(ClaimOutcomesSchema.extend({cliVersion:z101.string().nullable()})),granularity:z101.enum(["hour","day"]),series:z101.array(z101.object({at:z101.coerce.date(),states:z101.record(AdminUnclaimedStateSchema,z101.number()),alive:z101.number(),hostingCostUsd:z101.number()})),hostingCostUsd:z101.number(),costPerProjectUsd:z101.number().nullable(),leftovers:z101.object({overdue:z101.number(),claiming:z101.number(),archivedNotDeleted:z101.number()})}),AdminUnclaimedProjectStatsResponseSchema=createResponseSchema(AdminUnclaimedProjectStatsSchema)}});import{z as z102}from"zod";var WorkSessionVisibilitySchema,SessionSetRetentionSchema,init_work_sessions=__esm({"../../packages/api-contracts/dist/esm/work-sessions.js"(){"use strict";WorkSessionVisibilitySchema=z102.enum(["internal","user-visible"]),SessionSetRetentionSchema=z102.object({additionalDays:z102.number().int().min(1).max(30)}).strict()}});import{z as z103}from"zod";var PROJECT_KNOWLEDGE_MAX_CHARACTERS,ProjectKnowledgeContentSchema,ProjectKnowledgeDTOSchema,ProjectKnowledgeUpdateSchema,ProjectKnowledgeResponseSchema,ProjectKnowledgeDraftDTOSchema,ProjectKnowledgeDraftResponseSchema,ProjectKnowledgeDraftStartSchema,init_project_knowledge_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-knowledge.dto.js"(){"use strict";init_response();PROJECT_KNOWLEDGE_MAX_CHARACTERS=1e4,ProjectKnowledgeContentSchema=z103.string().refine(value=>[...value].length<=PROJECT_KNOWLEDGE_MAX_CHARACTERS&&new TextEncoder().encode(value).length<=4e4,"Knowledge must contain at most 10,000 characters and 40 KB of UTF-8 text"),ProjectKnowledgeDTOSchema=z103.object({content:ProjectKnowledgeContentSchema,updatedAt:z103.string().nullable(),updatedBy:z103.string().nullable()}),ProjectKnowledgeUpdateSchema=z103.object({content:ProjectKnowledgeContentSchema}),ProjectKnowledgeResponseSchema=createResponseSchema(ProjectKnowledgeDTOSchema),ProjectKnowledgeDraftDTOSchema=z103.object({id:z103.uuid(),status:z103.enum(["queued","running","ready","failed"]),content:ProjectKnowledgeContentSchema.nullable(),error:z103.string().nullable()}),ProjectKnowledgeDraftResponseSchema=createResponseSchema(ProjectKnowledgeDraftDTOSchema.nullable()),ProjectKnowledgeDraftStartSchema=z103.object({idempotencyKey:z103.uuid()})}});import{z as z104}from"zod";var init_esm=__esm({"../../packages/api-contracts/dist/esm/index.js"(){"use strict";init_create_dto();init_response();init_pagination();init_common();init_attachments();init_asset_reading();init_env();init_environment();init_realtime();init_realtime_room();init_references();init_content_fields();init_audit_log();init_ops();init_args();init_commands();init_references2();init_types();init_chat_block();init_admin_chat_block();init_admin_assistant();init_chat_portrait();init_agent_report();init_fimo_config();init_page_sources();init_project_files();init_project_dto();init_project_env_dto();init_project_environment_dto();init_project_secret_dto();init_project_import_export_dto();init_agent_session_dto();init_agent_proposal_dto();init_agent_question_dto();init_integration_catalog_dto();init_integration_dto();init_schedule_dto();init_schedule_notifications_dto();init_notification_dto();init_notification_preference_catalog_dto();init_env_status_dto();init_env_diff_summary_dto();init_project_analytics_dto();init_project_access_dto();init_project_invite_dto();init_publication_dto();init_hosted_preview_dto();init_sandbox_dto();init_organization_dto();init_billing_dto();init_payment_method_dto();init_user_dto();init_content_dto();init_unique_conflict_dto();init_schema_transition_rejected_dto();init_cms_display_defaults_dto();init_project_migration_dto();init_analytics_dto();init_asset_dto();init_translation_dto();init_document_dto();init_form_dto();init_chat_dto();init_chat_routine_dto();init_chat_task_dto();init_chat_agent_dto();init_upload_dto();init_service_dto();init_search_dto();init_registered_domain_dto();init_project_domain_dto();init_project_subdomain_dto();init_project_transfer_dto();init_unclaimed_project_dto();init_project_locale_dto();init_generation_dto();init_generation_task_dto();init_asset_model_dto();init_tour_dto();init_support_report_dto();init_ops_chat_dto();init_ops_sentry_dto();init_ops_project_files_dto();init_ops_agent_chat_dto();init_webhook_dto();init_preview_feature_dto();init_site_onboarding_dto();init_subscription_dto();init_usage_dto();init_usage_analytics_dto();init_sandbox_command_dto();init_unclaimed_projects_dto();init_work_sessions();init_project_knowledge_dto();init_organization_features_dto();init_admin_monitoring_dto();init_platform();init_monitor();init_agent()}});var require_picocolors=__commonJS({"../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js"(exports2,module2){var p2=process||{},argv=p2.argv||[],env=p2.env||{},isColorSupported=!(env.NO_COLOR||argv.includes("--no-color"))&&(!!env.FORCE_COLOR||argv.includes("--color")||p2.platform==="win32"||(p2.stdout||{}).isTTY&&env.TERM!=="dumb"||!!env.CI),formatter=__name((open2,close,replace=open2)=>input=>{let string=""+input,index=string.indexOf(close,open2.length);return~index?open2+replaceClose(string,close,replace,index)+close:open2+string+close},"formatter"),replaceClose=__name((string,close,replace,index)=>{let result="",cursor=0;do result+=string.substring(cursor,index)+replace,cursor=index+close.length,index=string.indexOf(close,cursor);while(~index);return result+string.substring(cursor)},"replaceClose"),createColors=__name((enabled=isColorSupported)=>{let f=enabled?formatter:()=>String;return{isColorSupported:enabled,reset:f("\x1B[0m","\x1B[0m"),bold:f("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:f("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:f("\x1B[3m","\x1B[23m"),underline:f("\x1B[4m","\x1B[24m"),inverse:f("\x1B[7m","\x1B[27m"),hidden:f("\x1B[8m","\x1B[28m"),strikethrough:f("\x1B[9m","\x1B[29m"),black:f("\x1B[30m","\x1B[39m"),red:f("\x1B[31m","\x1B[39m"),green:f("\x1B[32m","\x1B[39m"),yellow:f("\x1B[33m","\x1B[39m"),blue:f("\x1B[34m","\x1B[39m"),magenta:f("\x1B[35m","\x1B[39m"),cyan:f("\x1B[36m","\x1B[39m"),white:f("\x1B[37m","\x1B[39m"),gray:f("\x1B[90m","\x1B[39m"),bgBlack:f("\x1B[40m","\x1B[49m"),bgRed:f("\x1B[41m","\x1B[49m"),bgGreen:f("\x1B[42m","\x1B[49m"),bgYellow:f("\x1B[43m","\x1B[49m"),bgBlue:f("\x1B[44m","\x1B[49m"),bgMagenta:f("\x1B[45m","\x1B[49m"),bgCyan:f("\x1B[46m","\x1B[49m"),bgWhite:f("\x1B[47m","\x1B[49m"),blackBright:f("\x1B[90m","\x1B[39m"),redBright:f("\x1B[91m","\x1B[39m"),greenBright:f("\x1B[92m","\x1B[39m"),yellowBright:f("\x1B[93m","\x1B[39m"),blueBright:f("\x1B[94m","\x1B[39m"),magentaBright:f("\x1B[95m","\x1B[39m"),cyanBright:f("\x1B[96m","\x1B[39m"),whiteBright:f("\x1B[97m","\x1B[39m"),bgBlackBright:f("\x1B[100m","\x1B[49m"),bgRedBright:f("\x1B[101m","\x1B[49m"),bgGreenBright:f("\x1B[102m","\x1B[49m"),bgYellowBright:f("\x1B[103m","\x1B[49m"),bgBlueBright:f("\x1B[104m","\x1B[49m"),bgMagentaBright:f("\x1B[105m","\x1B[49m"),bgCyanBright:f("\x1B[106m","\x1B[49m"),bgWhiteBright:f("\x1B[107m","\x1B[49m")}},"createColors");module2.exports=createColors();module2.exports.createColors=createColors}});function makePalette(enabled){return enabled?{success:import_picocolors.default.green,warn:import_picocolors.default.yellow,error:import_picocolors.default.red,hint:import_picocolors.default.cyan,dim:import_picocolors.default.dim,accent:import_picocolors.default.bold}:{success:identity,warn:identity,error:identity,hint:identity,dim:identity,accent:identity}}var import_picocolors,identity,init_colors=__esm({"../../packages/cli-kit/dist/colors.js"(){"use strict";import_picocolors=__toESM(require_picocolors(),1),identity=__name(s=>s,"identity");__name(makePalette,"makePalette")}});var SCHEMA_VERSION,init_types2=__esm({"../../packages/cli-kit/dist/types.js"(){"use strict";SCHEMA_VERSION=1}});function makeJsonRenderer(opts){let{stdout,stderr}=opts,pendingWarnings=[];function emit(stream,envelope){let warnings=[...pendingWarnings,...envelope.warnings??[]].filter((warning,index,all)=>all.indexOf(warning)===index);pendingWarnings=[],stream.write(`${JSON.stringify(warnings.length>0?{...envelope,warnings}:envelope)}
4
+ var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0}),__require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);import{z}from"zod";function filterUnknownProperties(data,schema){if(data==null)return data;if(schema instanceof z.ZodOptional||schema instanceof z.ZodNullable||schema instanceof z.ZodDefault)return filterUnknownProperties(data,schema.unwrap());if(schema instanceof z.ZodArray){if(!Array.isArray(data))return data;let itemSchema=schema.unwrap();return data.map(item=>filterUnknownProperties(item,itemSchema))}if(schema instanceof z.ZodDiscriminatedUnion){if(typeof data!="object"||data===null)return data;let unionSchema=schema,discriminator=unionSchema.def.discriminator,discriminatorValue=data[discriminator],matchingSchema=unionSchema.options.find(option=>{let discriminatorField=option.shape[discriminator];return discriminatorField instanceof z.ZodLiteral?discriminatorField.def.values.includes(discriminatorValue):!1});return matchingSchema?filterUnknownProperties(data,matchingSchema):data}if(schema instanceof z.ZodObject){if(typeof data!="object")return data;let shape=schema.shape,result={};for(let key in shape)if(Object.prototype.hasOwnProperty.call(data,key)){let fieldSchema=shape[key],fieldValue2=data[key];result[key]=filterUnknownProperties(fieldValue2,fieldSchema)}if(schema.def.catchall instanceof z.ZodUnknown)for(let[key,value]of Object.entries(data))key in shape||(result[key]=value);return result}return data}function createObjectDTO(schema){return{schema,from(data){let filtered=filterUnknownProperties(data,schema);return schema.parse(filtered)},fromList(data){return data.map(item=>this.from(item))},safeParse(data){let filtered=filterUnknownProperties(data,schema);return schema.safeParse(filtered)},partial(){let partialSchema=schema.partial();return createObjectDTO(partialSchema)},pick(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),picked=schema.pick(mask);return createObjectDTO(picked)},omit(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),omitted=schema.omit(mask);return createObjectDTO(omitted)}}}function createDiscriminatedUnionDTO(schema){return{schema,from(data){let filtered=filterUnknownProperties(data,schema);return schema.parse(filtered)},fromList(data){return data.map(item=>this.from(item))},safeParse(data){let filtered=filterUnknownProperties(data,schema);return schema.safeParse(filtered)}}}function createDTO(schema){if(schema instanceof z.ZodObject)return createObjectDTO(schema);if(schema instanceof z.ZodDiscriminatedUnion)return createDiscriminatedUnionDTO(schema);throw new Error(`Unsupported schema type: ${schema.constructor.name}. createDTO supports ZodObject and ZodDiscriminatedUnion.`)}var init_create_dto=__esm({"../../packages/api-contracts/dist/esm/utils/create-dto.js"(){"use strict";__name(filterUnknownProperties,"filterUnknownProperties");__name(createObjectDTO,"createObjectDTO");__name(createDiscriminatedUnionDTO,"createDiscriminatedUnionDTO");__name(createDTO,"createDTO")}});import{z as z2}from"zod";function createCursorPageDataSchema(dataSchema){return z2.object({items:z2.array(dataSchema),nextCursor:z2.string().nullable()})}function createCursorPaginatedResponseSchema(dataSchema){return z2.object({data:createCursorPageDataSchema(dataSchema)})}var createResponseSchema,init_response=__esm({"../../packages/api-contracts/dist/esm/utils/response.js"(){"use strict";createResponseSchema=__name(dataSchema=>z2.object({data:dataSchema}),"createResponseSchema");__name(createCursorPageDataSchema,"createCursorPageDataSchema");__name(createCursorPaginatedResponseSchema,"createCursorPaginatedResponseSchema")}});import{z as z3}from"zod";var PaginationQuerySchema,init_pagination=__esm({"../../packages/api-contracts/dist/esm/utils/pagination.js"(){"use strict";PaginationQuerySchema=z3.object({page:z3.coerce.number().int().positive().default(1),limit:z3.coerce.number().int().positive().max(100).default(20)})}});import{z as z4}from"zod";var CommonSchemas,BaseEntitySchema,ProjectRoleKeySchema,ProjectRoleKeyWithSystemSchema,ProjectPrincipalTypeSchema,ProjectStatusSchema,ProjectInviteStatusSchema,PublicationStatusSchema,OrganizationRoleSchema,AssetTypeSchema,TemplateCodeSchema,FieldTypeSchema,CONTENT_INTERNAL_FIELD_NAMES,contentInternalFieldNames,RESERVED_CONTENT_FIELD_NAMES,contentReviewHiddenFieldNames,CONTENT_TYPE_NAME_PATTERN,CONTENT_TYPE_NAME_PATTERN_DESCRIPTION,CONTENT_FIELD_NAME_PATTERN,CONTENT_FIELD_NAME_PATTERN_DESCRIPTION,init_common=__esm({"../../packages/api-contracts/dist/esm/types/common.js"(){"use strict";CommonSchemas={timestamp:z4.coerce.date(),positiveInt:z4.number().int().positive(),nonNegativeInt:z4.number().int().nonnegative()},BaseEntitySchema=z4.object({id:z4.uuid(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),ProjectRoleKeySchema=z4.enum(["full","edit","comment","view"]),ProjectRoleKeyWithSystemSchema=z4.enum(["full","edit","comment","view","agent","schedule"]),ProjectPrincipalTypeSchema=z4.enum(["user","org","orgRole","public","email"]),ProjectStatusSchema=z4.enum(["creating","forking","start_server","created","failed"]),ProjectInviteStatusSchema=z4.enum(["pending","accepted","revoked","expired"]),PublicationStatusSchema=z4.enum(["idle","publishing","published","failed","unpublished"]),OrganizationRoleSchema=z4.enum(["owner","admin","member"]),AssetTypeSchema=z4.enum(["file","folder"]),TemplateCodeSchema=z4.enum(["Free","PAYG","Starter","Premium","Pro"]),FieldTypeSchema=z4.enum(["string","text","richtext","media","number","boolean","date","datetime","json","reference","blocks"]),CONTENT_INTERNAL_FIELD_NAMES=["id","entryId","documentId","locale","__fimo"],contentInternalFieldNames=new Set(CONTENT_INTERNAL_FIELD_NAMES),RESERVED_CONTENT_FIELD_NAMES=[...CONTENT_INTERNAL_FIELD_NAMES,"slug","createdAt","updatedAt"],contentReviewHiddenFieldNames=new Set(RESERVED_CONTENT_FIELD_NAMES),CONTENT_TYPE_NAME_PATTERN=/^[A-Za-z]\w*$/,CONTENT_TYPE_NAME_PATTERN_DESCRIPTION="letters, numbers, and underscores, starting with a letter",CONTENT_FIELD_NAME_PATTERN=/^[A-Za-z_]\w*$/,CONTENT_FIELD_NAME_PATTERN_DESCRIPTION="letters, numbers, and underscores, starting with a letter or underscore"}});import{z as z5}from"zod";var MB,MAX_UPLOAD_FILE_SIZE_BYTES,MAX_DOCUMENT_SIZE_BYTES,MAX_AUDIO_SIZE_BYTES,MAX_IMAGE_SIZE_BYTES,MAX_VIDEO_SIZE_BYTES,MAX_ARCHIVE_SIZE_BYTES,MAX_MODEL_SIZE_BYTES,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES,MODEL_MEDIA_TYPE,AttachmentModelMediaTypeSchema,MODEL_MIME_TYPES,MODEL_RENDER_VIEW_ANGLES,AttachmentModelRenderRequestSchema,AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema,AttachmentModelRenderResponseSchema,AttachmentModelRenderMeterSchema,ATTACHMENT_TYPES,ATTACHMENT_MIME_TYPES,ATTACHMENT_IMAGE_MIME_TYPES,ATTACHMENT_DOCUMENT_MIME_TYPES,ATTACHMENT_ARCHIVE_MIME_TYPES,ATTACHMENT_AUDIO_MIME_TYPES,ATTACHMENT_VIDEO_MIME_TYPES,ATTACHMENT_ACCEPT_EXTENSIONS,ATTACHMENT_ACCEPT_STRING,ATTACHMENT_DROPZONE_ACCEPT,EXTENSION_MIME_TYPES,init_attachments=__esm({"../../packages/api-contracts/dist/esm/types/attachments.js"(){"use strict";MB=1024*1024,MAX_UPLOAD_FILE_SIZE_BYTES=50*MB,MAX_DOCUMENT_SIZE_BYTES=5*MB,MAX_AUDIO_SIZE_BYTES=10*MB,MAX_IMAGE_SIZE_BYTES=20*MB,MAX_VIDEO_SIZE_BYTES=20*MB,MAX_ARCHIVE_SIZE_BYTES=20*MB,MAX_MODEL_SIZE_BYTES=20*MB,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES=20*MB,MODEL_MEDIA_TYPE={GLB:"model/gltf-binary",GLTF:"model/gltf+json",FBX:"model/fbx",OBJ:"model/obj",STL:"model/stl",PLY:"model/ply"},AttachmentModelMediaTypeSchema=z5.enum(MODEL_MEDIA_TYPE),MODEL_MIME_TYPES=Object.values(MODEL_MEDIA_TYPE),MODEL_RENDER_VIEW_ANGLES=[35,125,215,305],AttachmentModelRenderRequestSchema=z5.object({renderId:z5.uuid(),filename:z5.string().min(1).max(255),mediaType:AttachmentModelMediaTypeSchema,modelUrl:z5.url()}),AttachmentModelRenderSuccessSchema=z5.object({status:z5.literal("succeeded"),views:z5.tuple([z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[0]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[1]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[2]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[3]),screenshotUrl:z5.url()})]),elapsedMs:z5.number().nonnegative(),browserElapsedMs:z5.number().nonnegative(),diagnostics:z5.unknown().optional()}),AttachmentModelRenderFailureSchema=z5.object({status:z5.literal("failed"),error:z5.literal("render_failed"),message:z5.string(),elapsedMs:z5.number().nonnegative(),browserElapsedMs:z5.number().nonnegative()}),AttachmentModelRenderResponseSchema=z5.discriminatedUnion("status",[AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema]),AttachmentModelRenderMeterSchema=z5.object({browserElapsedMs:z5.number().nonnegative()}),ATTACHMENT_TYPES=[{mime:"image/png",extensions:[".png"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/jpeg",extensions:[".jpg",".jpeg"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/webp",extensions:[".webp"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/avif",extensions:[".avif"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"application/pdf",extensions:[".pdf"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/msword",extensions:[".doc"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extensions:[".docx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.ms-excel",extensions:[".xls"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",extensions:[".xlsx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.ms-powerpoint",extensions:[".ppt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation",extensions:[".pptx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/epub+zip",extensions:[".epub"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.text",extensions:[".odt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.spreadsheet",extensions:[".ods"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.presentation",extensions:[".odp"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/rtf",extensions:[],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/rtf",extensions:[".rtf"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/html",extensions:[".html",".htm"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/csv",extensions:[".csv"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/markdown",extensions:[".md",".markdown"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/json",extensions:[".json"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/plain",extensions:[".txt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/zip",extensions:[".zip"],category:"archive",maxSizeBytes:MAX_ARCHIVE_SIZE_BYTES},{mime:"audio/mpeg",extensions:[".mp3"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/wav",extensions:[".wav"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/aiff",extensions:[".aiff",".aif"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/aac",extensions:[".aac"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/ogg",extensions:[".ogg"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/flac",extensions:[".flac"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"video/mp4",extensions:[".mp4"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mpeg",extensions:[".mpeg",".mpg"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mpg",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/quicktime",extensions:[".mov"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mov",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/avi",extensions:[".avi"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/vnd.avi",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-msvideo",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-flv",extensions:[".flv"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/webm",extensions:[".webm"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/wmv",extensions:[".wmv"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-ms-wmv",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-ms-asf",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/3gpp",extensions:[".3gp"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.GLB,extensions:[".glb"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.GLTF,extensions:[".gltf"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.FBX,extensions:[".fbx"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.OBJ,extensions:[".obj"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.STL,extensions:[".stl"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.PLY,extensions:[".ply"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES}],ATTACHMENT_MIME_TYPES=ATTACHMENT_TYPES.map(t2=>t2.mime),ATTACHMENT_IMAGE_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="image").map(t2=>t2.mime),ATTACHMENT_DOCUMENT_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="document").map(t2=>t2.mime),ATTACHMENT_ARCHIVE_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="archive").map(t2=>t2.mime),ATTACHMENT_AUDIO_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="audio").map(t2=>t2.mime),ATTACHMENT_VIDEO_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="video").map(t2=>t2.mime),ATTACHMENT_ACCEPT_EXTENSIONS=ATTACHMENT_TYPES.flatMap(t2=>t2.extensions),ATTACHMENT_ACCEPT_STRING=[...ATTACHMENT_ACCEPT_EXTENSIONS,...ATTACHMENT_MIME_TYPES].join(","),ATTACHMENT_DROPZONE_ACCEPT=Object.fromEntries(ATTACHMENT_TYPES.map(t2=>[t2.mime,t2.extensions])),EXTENSION_MIME_TYPES=Object.fromEntries(ATTACHMENT_TYPES.flatMap(t2=>t2.extensions.map(extension=>[extension,t2.mime])))}});import{z as z6}from"zod";var AssetReadRequestSchema,AssetDerivedFileSchema,AssetReadBaseSchema,AssetReadPageSchema,AssetReadQuerySchema,AssetReadResultSchema,init_asset_reading=__esm({"../../packages/api-contracts/dist/esm/types/asset-reading.js"(){"use strict";AssetReadRequestSchema=z6.object({cursor:z6.string().optional(),query:z6.string().trim().min(1).max(500).optional()}).strict().refine(input=>input.cursor===void 0||input.query===void 0,{message:"Use either cursor or query, not both."}),AssetDerivedFileSchema=z6.object({url:z6.url(),mediaType:z6.string(),filename:z6.string()}),AssetReadBaseSchema=z6.object({assetId:z6.uuid(),filename:z6.string(),mediaType:z6.string(),representation:z6.enum(["text","table","document","archive","image","transcript","video","model"]),content:z6.string(),derivedFiles:z6.array(AssetDerivedFileSchema).optional()}),AssetReadPageSchema=AssetReadBaseSchema.extend({mode:z6.literal("page"),start:z6.number().int().nonnegative(),end:z6.number().int().nonnegative(),total:z6.number().int().nonnegative(),nextCursor:z6.string().nullable(),complete:z6.boolean()}),AssetReadQuerySchema=AssetReadBaseSchema.extend({mode:z6.literal("query"),query:z6.string(),source:z6.enum(["original-file","canonical-text","derived-files"]),truncated:z6.boolean()}),AssetReadResultSchema=z6.discriminatedUnion("mode",[AssetReadPageSchema,AssetReadQuerySchema])}});import{z as z7}from"zod";function isProcessControlEnvKey(key){return PROCESS_CONTROL_ENV_KEYS.has(key)||PROCESS_CONTROL_ENV_PREFIXES.some(prefix=>key.startsWith(prefix))}function isValidBranch(branch){return typeof branch!="string"||branch.length===0||branch.length>MAX_BRANCH_LENGTH||branch.startsWith("-")||branch.startsWith(".")||branch.includes("//")||branch.includes("--")||branch.split("/").some(segment=>segment==="..")?!1:BRANCH_ID_REGEX.test(branch)}function encodeBranchPathSegment(branch){return branch.replace(/\//g,"--")}function isProductionBranch(branch){return branch===PRODUCTION_BRANCH}function fnv1a8(s){let h=2166136261;for(let i=0;i<s.length;i++)h^=s.charCodeAt(i),h=Math.imul(h,16777619);return(h>>>0).toString(16).padStart(8,"0")}function branchResourceKey(branch){let base=branch.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,15),hash=fnv1a8(branch);return base?`${base}-${hash}`:hash}function buildTenantApiUrl(projectId2,branch,tenantApiBaseUrl){let url=new URL(tenantApiBaseUrl);return url.hostname=`${projectId2}-${branchResourceKey(branch)}.${url.hostname}`,url.toString().replace(/\/$/,"")}var FIMO_CONTENT_API_ENV_KEYS,FIMO_ANALYTICS_ENV_KEYS,FIMO_PREVIEW_SCRIPT_ENV_KEYS,FIMO_MANAGED_PROJECT_ENV_KEYS,PROCESS_CONTROL_ENV_KEYS,PROCESS_CONTROL_ENV_PREFIXES,BRANCH_ID_REGEX,MAX_BRANCH_LENGTH,BranchSchema,DEFAULT_BRANCH,PRODUCTION_BRANCH,envResourceKey,init_env=__esm({"../../packages/api-contracts/dist/esm/types/env.js"(){"use strict";FIMO_CONTENT_API_ENV_KEYS=["FIMO_CONTENT_API_URL","VITE_API_URL","NEXT_PUBLIC_FIMO_API_URL","NUXT_PUBLIC_FIMO_API_URL","PUBLIC_FIMO_API_URL"],FIMO_ANALYTICS_ENV_KEYS=["VITE_ENABLE_ANALYTICS","NEXT_PUBLIC_FIMO_ENABLE_ANALYTICS","NUXT_PUBLIC_FIMO_ENABLE_ANALYTICS","PUBLIC_FIMO_ENABLE_ANALYTICS"],FIMO_PREVIEW_SCRIPT_ENV_KEYS=["VITE_PREVIEW_SCRIPT_URL","VITE_FIMO_PREVIEW_SCRIPT_URL","NEXT_PUBLIC_FIMO_PREVIEW_SCRIPT_URL","NUXT_PUBLIC_FIMO_PREVIEW_SCRIPT_URL","PUBLIC_FIMO_PREVIEW_SCRIPT_URL","FIMO_PREVIEW_SCRIPT_URL"],FIMO_MANAGED_PROJECT_ENV_KEYS=["FIMO_API_URL","FIMO_API_TOKEN","FIMO_PROJECT_ID","FIMO_ENV","NEXT_PUBLIC_FIMO_ENV","FIMO_PREVIEW_PARENT_ORIGIN","FIMO_AGENT_SESSION","FIMO_DATA_SOURCES",...FIMO_CONTENT_API_ENV_KEYS,...FIMO_PREVIEW_SCRIPT_ENV_KEYS,...FIMO_ANALYTICS_ENV_KEYS,"VITE_FIMO_BRANCH","VITE_FIMO_IMAGE_HOSTS"],PROCESS_CONTROL_ENV_KEYS=new Set(["PATH","HOME","SHELL","BASH_ENV","ENV","PROMPT_COMMAND","USER","TMPDIR","HOST","HOSTNAME","PORT","NODE_ENV","NODE_OPTIONS","NODE_PATH","NODE_EXTRA_CA_CERTS","NODE_TLS_REJECT_UNAUTHORIZED","SSL_CERT_FILE","CURL_CA_BUNDLE","PYTHONPATH","LD_PRELOAD","LD_LIBRARY_PATH","HTTP_PROXY","HTTPS_PROXY","ALL_PROXY","NO_PROXY","FIMO_VALIDATION_BUILD","FIMO_SKIP_VERSION_CHECK","FIMO_EDITING_METADATA","FIMO_AGENT_TMP_DIR"]),PROCESS_CONTROL_ENV_PREFIXES=["GIT_","NPM_CONFIG_","PNPM_","YARN_","COREPACK_","BUN_","DENO_"];__name(isProcessControlEnvKey,"isProcessControlEnvKey");BRANCH_ID_REGEX=/^[a-zA-Z0-9._/-]+$/,MAX_BRANCH_LENGTH=255;__name(isValidBranch,"isValidBranch");__name(encodeBranchPathSegment,"encodeBranchPathSegment");BranchSchema=z7.string().min(1,"env must not be empty").max(MAX_BRANCH_LENGTH,`env must be at most ${MAX_BRANCH_LENGTH} characters`).refine(isValidBranch,{error:"env must match /^[a-zA-Z0-9._/-]+$/ and must not start with `-`"}),DEFAULT_BRANCH="main",PRODUCTION_BRANCH="prod";__name(isProductionBranch,"isProductionBranch");__name(fnv1a8,"fnv1a8");__name(branchResourceKey,"branchResourceKey");__name(buildTenantApiUrl,"buildTenantApiUrl");envResourceKey=branchResourceKey}});import{z as z8}from"zod";var PRODUCTION_ENVIRONMENT_KEY,PREVIEW_ENVIRONMENT_KEY,EnvironmentKeySchema,CustomEnvironmentSchema,ResolvedEnvironmentSchema,init_environment=__esm({"../../packages/api-contracts/dist/esm/types/environment.js"(){"use strict";init_env();PRODUCTION_ENVIRONMENT_KEY="production",PREVIEW_ENVIRONMENT_KEY="preview",EnvironmentKeySchema=z8.union([z8.literal(PRODUCTION_ENVIRONMENT_KEY),z8.literal(PREVIEW_ENVIRONMENT_KEY),z8.uuid()]),CustomEnvironmentSchema=z8.object({id:z8.uuid(),projectId:z8.uuid(),name:z8.string().trim().min(1).max(64),branchPatterns:z8.array(z8.string().min(1).max(255)).min(1),description:z8.string().max(255).nullable()}),ResolvedEnvironmentSchema=z8.object({branch:BranchSchema,environment:EnvironmentKeySchema})}});var init_realtime=__esm({"../../packages/api-contracts/dist/esm/types/realtime.js"(){"use strict";init_env()}});var init_realtime_room=__esm({"../../packages/api-contracts/dist/esm/types/realtime-room.js"(){"use strict";init_env()}});import{z as z9}from"zod";function referenceDocumentId(value){if(typeof value=="string")return value;if(value&&typeof value=="object"){let reference=value,hasId=Object.prototype.hasOwnProperty.call(reference,"id"),hasDocumentId=Object.prototype.hasOwnProperty.call(reference,"documentId"),id=reference.id,documentId=reference.documentId;if(hasId&&typeof id!="string"||hasDocumentId&&typeof documentId!="string"||typeof id=="string"&&typeof documentId=="string"&&id!==documentId)return null;if(typeof id=="string")return id;if(typeof documentId=="string")return documentId}return null}function toReferenceValue(value){let documentId=referenceDocumentId(value);return documentId?{documentId}:null}function referenceContentType(value){if(value&&typeof value=="object"&&"contentType"in value){let contentType=value.contentType;return typeof contentType=="string"&&contentType.length>0?contentType:null}return null}function toPolymorphicReferenceValue(value){let documentId=referenceDocumentId(value),contentType=referenceContentType(value);return documentId&&contentType?{contentType,documentId}:null}var referenceValuePreprocess,ReferenceValueSchema,ReferenceInputValueSchema,polymorphicReferenceValuePreprocess,PolymorphicReferenceValueSchema,PolymorphicReferenceInputValueSchema,init_references=__esm({"../../packages/api-contracts/dist/esm/types/references.js"(){"use strict";__name(referenceDocumentId,"referenceDocumentId");__name(toReferenceValue,"toReferenceValue");referenceValuePreprocess=__name(value=>{let reference=toReferenceValue(value);return reference||(value&&typeof value=="object"&&("id"in value||"documentId"in value)?null:value)},"referenceValuePreprocess"),ReferenceValueSchema=z9.preprocess(referenceValuePreprocess,z9.object({documentId:z9.uuid()})),ReferenceInputValueSchema=z9.preprocess(referenceValuePreprocess,z9.union([z9.object({documentId:z9.uuid()}),z9.object({slug:z9.string().min(1)})]));__name(referenceContentType,"referenceContentType");__name(toPolymorphicReferenceValue,"toPolymorphicReferenceValue");polymorphicReferenceValuePreprocess=__name(value=>{let reference=toPolymorphicReferenceValue(value);return reference||(value&&typeof value=="object"&&("id"in value||"documentId"in value)?null:value)},"polymorphicReferenceValuePreprocess"),PolymorphicReferenceValueSchema=z9.preprocess(polymorphicReferenceValuePreprocess,z9.object({contentType:z9.string().min(1),documentId:z9.uuid()})),PolymorphicReferenceInputValueSchema=z9.preprocess(polymorphicReferenceValuePreprocess,z9.union([z9.object({contentType:z9.string().min(1),documentId:z9.uuid()}),z9.object({contentType:z9.string().min(1),slug:z9.string().min(1)})]))}});import{z as z10}from"zod";function isDatetimeInstant(value){return typeof value=="string"&&DATETIME_INSTANT_PATTERN.test(value)&&!Number.isNaN(Date.parse(value))}function rejectLegacyLocaleSettings(field,ctx){"localized"in field&&ctx.addIssue({code:"custom",path:["localized"],message:'Field-level locale settings use "i18n".'})}function rejectFieldI18n(field,ctx){"i18n"in field&&ctx.addIssue({code:"custom",path:["i18n"],message:FIELD_I18N_UNSUPPORTED_MESSAGE})}function refineConditions(field,ctx){if(field.showIf!==void 0&&field.showIfAny!==void 0&&ctx.addIssue({code:"custom",path:["showIfAny"],message:'A field declares "showIf" or "showIfAny", never both.'}),Array.isArray(field.showIf)){let fields=field.showIf.map(clause=>clause.field);new Set(fields).size!==fields.length&&ctx.addIssue({code:"custom",path:["showIf"],message:'"showIf" clauses must each name a different field. Use "in" for several values of one field.'})}}function rejectUnsupportedUnique(field,ctx,type){"unique"in field&&!uniqueFieldTypes.has(type)&&ctx.addIssue({code:"custom",path:["unique"],message:UNSUPPORTED_UNIQUE_MESSAGE})}function getConditionDefinition(field){if(field.showIfAny!==void 0)return{key:"showIfAny",clauses:field.showIfAny};if(field.showIf!==void 0)return{key:"showIf",clauses:Array.isArray(field.showIf)?field.showIf:[field.showIf]}}function getConditionValues(clause){return"equals"in clause?[clause.equals]:clause.in}function collectClauseProblems(fieldName,condition,clause,fields,path50){let conditionPath=[...path50,fieldName,condition.key],trigger=fields[clause.field];if(trigger===void 0)return[{path:conditionPath,message:`"${condition.key}" references unknown field "${clause.field}".`}];if(trigger.showIf!==void 0||trigger.showIfAny!==void 0)return[{path:conditionPath,message:`"${condition.key}" cannot reference "${clause.field}" because it is conditional too. Conditions are one level deep.`}];if(trigger.type!=="boolean"&&trigger.type!=="number"&&trigger.type!=="string")return[{path:conditionPath,message:`"${condition.key}" can only reference boolean, number, and string fields. "${clause.field}" is a ${trigger.type} field.`}];let triggerOptions=trigger.type==="string"?trigger.options:void 0;if(trigger.type==="string"&&triggerOptions===void 0)return[{path:conditionPath,message:`"${condition.key}" can only reference a string field that declares "options". Add options to "${clause.field}".`}];let values=getConditionValues(clause);if(values.some(value=>typeof value!==trigger.type))return[{path:conditionPath,message:`"${condition.key}" on "${clause.field}" expects a ${trigger.type} value.`}];if(triggerOptions!==void 0){let invalidValues=values.filter(value=>!triggerOptions.includes(value));if(invalidValues.length>0)return invalidValues.map(value=>({path:conditionPath,message:`"${value}" is not one of the options declared by "${clause.field}".`}))}return trigger.editable===!1?[{path:conditionPath,message:`"${condition.key}" cannot reference "${clause.field}" because it is not editable.`}]:[]}function collectConditionProblems(fields){let problems=[],walk=__name((currentFields,path50)=>{for(let[fieldName,field]of Object.entries(currentFields)){let condition=getConditionDefinition(field);if(condition!==void 0)for(let clause of condition.clauses)problems.push(...collectClauseProblems(fieldName,condition,clause,currentFields,path50));if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...path50,fieldName,variant.uid]);else walk(field.schema.fields,[...path50,fieldName])}},"walk");return walk(fields,[]),problems}function isBlocksUnion(schema){return"oneOf"in schema}function walkContentFields(fields,visit2){let walk=__name((currentFields,path50,structuredDepth,insideStructuredContent)=>{for(let[fieldName,field]of Object.entries(currentFields)){let fieldPath=[...path50,fieldName];visit2({field,path:fieldPath,structuredDepth,insideStructuredContent});let nextDepth=structuredDepth+1;if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...fieldPath,variant.uid],nextDepth,!0);else walk(field.schema.fields,fieldPath,nextDepth,!0)}},"walk");walk(fields,[],0,!1)}var UNIQUE_FIELD_TYPES,DATETIME_INSTANT_PATTERN,DATETIME_INSTANT_MESSAGE,utf8,MAX_STRUCTURED_CONTENT_DEPTH,MAX_BLOCK_VARIANTS,MAX_BLOCK_ITEMS,RESERVED_STRUCTURED_CONTENT_FIELD_NAMES,showIfClauseSchema,commonFieldShape,FIELD_I18N_UNSUPPORTED_MESSAGE,uniqueFieldTypes,UNSUPPORTED_UNIQUE_MESSAGE,scalarFieldSchema,referenceFieldSchema,reservedStructuredContentNames,ContentFieldDefinitionSchema,blockFieldsSchema,blockVariantSchema,fixedBlocksSchema,blocksSchema,blocksFieldSchema,contentFieldDefinitionSchema,init_content_fields=__esm({"../../packages/api-contracts/dist/esm/types/content-fields.js"(){"use strict";init_common();UNIQUE_FIELD_TYPES=["string","text","number","boolean","date"],DATETIME_INSTANT_PATTERN=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d+)?)?([Zz]|[+-]\d{2}:\d{2})$/,DATETIME_INSTANT_MESSAGE="A datetime must be an ISO 8601 instant with a UTC offset, such as 2026-08-13T09:30:00Z.";__name(isDatetimeInstant,"isDatetimeInstant");utf8=new TextEncoder,MAX_STRUCTURED_CONTENT_DEPTH=7,MAX_BLOCK_VARIANTS=40,MAX_BLOCK_ITEMS=200,RESERVED_STRUCTURED_CONTENT_FIELD_NAMES=["_key","_type"],showIfClauseSchema=z10.union([z10.object({field:z10.string().min(1),equals:z10.union([z10.string(),z10.number(),z10.boolean()])}).strict(),z10.object({field:z10.string().min(1),in:z10.array(z10.union([z10.string(),z10.number(),z10.boolean()])).min(1)}).strict()]),commonFieldShape={label:z10.string().min(1).optional(),description:z10.string().optional(),group:z10.union([z10.string().min(1),z10.array(z10.string().min(1)).min(1)]).optional(),editable:z10.boolean().optional(),required:z10.boolean().optional(),default:z10.unknown().optional(),showIf:z10.union([showIfClauseSchema,z10.array(showIfClauseSchema).min(1)]).optional(),showIfAny:z10.array(showIfClauseSchema).min(1).optional()},FIELD_I18N_UNSUPPORTED_MESSAGE='"i18n" is only supported on top-level scalar and reference fields.';__name(rejectLegacyLocaleSettings,"rejectLegacyLocaleSettings");__name(rejectFieldI18n,"rejectFieldI18n");__name(refineConditions,"refineConditions");uniqueFieldTypes=new Set(UNIQUE_FIELD_TYPES),UNSUPPORTED_UNIQUE_MESSAGE=`"unique" is only supported on ${UNIQUE_FIELD_TYPES.join(", ")} fields.`;__name(rejectUnsupportedUnique,"rejectUnsupportedUnique");scalarFieldSchema=z10.object({...commonFieldShape,type:z10.enum(["string","text","richtext","media","number","boolean","date","datetime","json"]),min:z10.number().optional(),max:z10.number().optional(),minLength:z10.number().int().nonnegative().optional(),maxLength:z10.number().int().nonnegative().optional(),regex:z10.string().optional(),multiple:z10.boolean().optional(),allowedMimeTypes:z10.array(z10.string()).optional(),options:z10.array(z10.string().min(1)).min(1).optional(),unique:z10.boolean().optional(),i18n:z10.boolean().optional()}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),refineConditions(field,ctx),rejectUnsupportedUnique(field,ctx,field.type);for(let key of["target","targets","many","repeatable","schema"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on ${field.type} fields.`});if(field.type!=="number")for(let key of["min","max"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on number fields.`});if(field.type!=="string"&&field.type!=="text")for(let key of["minLength","maxLength","regex"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on string and text fields.`});field.min!==void 0&&field.max!==void 0&&field.min>field.max&&ctx.addIssue({code:"custom",path:["max"],message:'"max" must be greater than or equal to "min".'});let effectiveMinimumLength=Math.max(field.minLength??0,field.required?1:0);if(field.maxLength!==void 0&&effectiveMinimumLength>field.maxLength&&ctx.addIssue({code:"custom",path:["maxLength"],message:'"maxLength" must be greater than or equal to the minimum required length.'}),field.regex!==void 0)try{new RegExp(field.regex)}catch{ctx.addIssue({code:"custom",path:["regex"],message:'"regex" must be a valid regular expression.'})}if(field.type!=="media")for(let key of["multiple","allowedMimeTypes"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on media fields.`});if(field.type==="datetime"&&field.default!==void 0&&!isDatetimeInstant(field.default)&&ctx.addIssue({code:"custom",path:["default"],message:DATETIME_INSTANT_MESSAGE}),field.type!=="string"&&"options"in field&&ctx.addIssue({code:"custom",path:["options"],message:'"options" is only supported on string fields.'}),field.options!==void 0){new Set(field.options).size!==field.options.length&&ctx.addIssue({code:"custom",path:["options"],message:"Options must be unique."});for(let key of["regex","minLength","maxLength"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported alongside "options".`});field.default!==void 0&&!field.options.includes(field.default)&&ctx.addIssue({code:"custom",path:["default"],message:'"default" must be one of the declared options.'})}}),referenceFieldSchema=z10.object({...commonFieldShape,type:z10.literal("reference"),target:z10.string().regex(CONTENT_TYPE_NAME_PATTERN).optional(),targets:z10.array(z10.string().regex(CONTENT_TYPE_NAME_PATTERN)).min(1).optional(),many:z10.boolean().optional(),i18n:z10.boolean().optional()}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),refineConditions(field,ctx),!field.target&&!field.targets&&ctx.addIssue({code:"custom",path:["target"],message:'Reference fields must declare "target" or "targets".'}),field.target&&field.targets&&ctx.addIssue({code:"custom",path:["targets"],message:'A reference field declares "target" or "targets", never both.'}),field.targets&&new Set(field.targets).size!==field.targets.length&&ctx.addIssue({code:"custom",path:["targets"],message:"Reference targets must be unique."});for(let key of["repeatable","schema","min","max","minLength","maxLength","regex","options","unique"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on reference fields.`})}),reservedStructuredContentNames=new Set(RESERVED_STRUCTURED_CONTENT_FIELD_NAMES),ContentFieldDefinitionSchema=z10.lazy(()=>contentFieldDefinitionSchema);__name(getConditionDefinition,"getConditionDefinition");__name(getConditionValues,"getConditionValues");__name(collectClauseProblems,"collectClauseProblems");__name(collectConditionProblems,"collectConditionProblems");blockFieldsSchema=z10.record(z10.string(),ContentFieldDefinitionSchema).superRefine((fields,ctx)=>{for(let fieldName of Object.keys(fields))CONTENT_FIELD_NAME_PATTERN.test(fieldName)||ctx.addIssue({code:"custom",path:[fieldName],message:`Field names must use ${CONTENT_FIELD_NAME_PATTERN_DESCRIPTION}.`}),reservedStructuredContentNames.has(fieldName)&&ctx.addIssue({code:"custom",path:[fieldName],message:`"${fieldName}" is reserved structured-content metadata.`}),"unique"in fields[fieldName]&&ctx.addIssue({code:"custom",path:[fieldName,"unique"],message:'"unique" is only supported on top-level fields.'}),"i18n"in fields[fieldName]&&ctx.addIssue({code:"custom",path:[fieldName,"i18n"],message:FIELD_I18N_UNSUPPORTED_MESSAGE})}),blockVariantSchema=z10.object({uid:z10.string().regex(CONTENT_TYPE_NAME_PATTERN),label:z10.string().min(1),description:z10.string().optional(),fields:blockFieldsSchema}).strict(),fixedBlocksSchema=z10.object({fields:blockFieldsSchema}).strict(),blocksSchema=z10.object({oneOf:z10.array(blockVariantSchema).min(1).max(MAX_BLOCK_VARIANTS)}).strict().superRefine((schema,ctx)=>{let seen=new Set;for(let[index,variant]of schema.oneOf.entries())seen.has(variant.uid)&&ctx.addIssue({code:"custom",path:["oneOf",index,"uid"],message:"Variant UIDs must be unique."}),seen.add(variant.uid)}),blocksFieldSchema=z10.object({...commonFieldShape,type:z10.literal("blocks"),min:z10.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),max:z10.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),schema:z10.union([fixedBlocksSchema,blocksSchema])}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),rejectFieldI18n(field,ctx),refineConditions(field,ctx);let effectiveMinimum=Math.max(field.min??0,field.required?1:0);field.max!==void 0&&effectiveMinimum>field.max&&ctx.addIssue({code:"custom",path:["max"],message:'"max" must be greater than or equal to the minimum number of blocks.'});for(let key of["target","targets","many","repeatable","minLength","maxLength","regex","options","unique"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on blocks fields.`})}),contentFieldDefinitionSchema=z10.discriminatedUnion("type",[scalarFieldSchema,referenceFieldSchema,blocksFieldSchema]);__name(isBlocksUnion,"isBlocksUnion");__name(walkContentFields,"walkContentFields")}});import{z as z11}from"zod";var AUDIT_ACTIONS,AuditActionSchema,AUDIT_OUTCOMES,AuditOutcomeSchema,AUDIT_ACTOR_KINDS,AuditActorKindSchema,init_audit_log=__esm({"../../packages/api-contracts/dist/esm/types/audit-log.js"(){"use strict";AUDIT_ACTIONS=["env_create","env_delete","env_sync","capability_check","shell_exec","git_push","git_tag","git_merge","fimo_deploy","merge_decision","session_start","session_end","cost_breach","trigger_fire","schedule_notification_change","notification_preference_change","cutover_step","agent_delegate","version_restore","project_transfer","project_takedown","project_takedown_lift","organization_takedown","organization_takedown_lift","site_onboarding_refusal_lift","ops_access_change","ops_service_token_change","ops_project_search","ops_project_inspect","ops_project_chat_read","ops_recent_chat_read","ops_sentry_issue_change","ops_sentry_read","ops_logs_read","ops_trace_read","ops_posthog_milestones_read","ops_agent_trace_list","ops_agent_trace_read","ops_agent_trace_stats","ops_agent_health_read","ops_agent_trace_budget_wrap_up_read","ops_context_health_read","ops_data_usage_read","ops_agent_provider_errors_read","ops_chat_history_health_read","ops_chat_history_calls_read","ops_chat_history_content_read","ops_chat_history_judge_calibration","ops_memory_health_read","ops_routine_metrics_read","ops_project_snapshot","ops_project_file_read","ops_project_file_write","ops_support_thread_read","ops_support_report_read","ops_support_intake_read","ops_pylon_queue_read","ops_support_report_change","ops_billing_read","ops_billing_agent_runtime_activate","ops_billing_entitlements_sync","ops_billing_agent_runtime_attach","ops_billing_cache_invalidate","ops_billing_dispatch_discard","ops_billing_legacy_premium_enroll","ops_billing_legacy_premium_comp","ops_organization_feature_set","ops_billing_plan_transition_notices","ops_customer_registry_change","ops_investigation_change","ops_known_issue_change","ops_signal_case_decision","ops_validation_record","ops_notification_preview","ops_notification_approve","ops_notification_send","ops_project_operation","ops_project_publish","ops_agent_branch_discard","admin_resource_read","merge_force","ops_operation_plan","project_sync","project_thumbnail_regenerate","project_delete","project_import","organization_delete","credits_topup","credits_burn","user_session_revoke","user_ban","user_unban","user_impersonate","user_role_change","user_sessions_revoke","user_delete","platform_pool_change","platform_maintenance_change","platform_sync","platform_tenant_schema_sync","integration_event_replay","ops_billing_dispatch_retry","ops_billing_plan_projection_reconcile","ops_agent_chat_create","ops_pylon_issue_change","ops_pylon_note_create","ops_pylon_reply_preview","ops_pylon_reply_approve","ops_pylon_reply_send","admin_playground_run","ops_find","ops_project_health_read","ops_migrations_read","ops_operational_read","ops_billing_report_read","ops_users_read","ops_organizations_read","ops_merges_read","ops_platform_read","ops_watch_read","ops_notification_read","ops_audit_read"],AuditActionSchema=z11.enum(AUDIT_ACTIONS),AUDIT_OUTCOMES=["success","denied","error"],AuditOutcomeSchema=z11.enum(AUDIT_OUTCOMES),AUDIT_ACTOR_KINDS=["user","agent","system"],AuditActorKindSchema=z11.enum(AUDIT_ACTOR_KINDS)}});import{z as z12}from"zod";var ORGANIZATION_FEATURES,AGENT_PLANS,AgentPlanSchema,OrganizationFeatureSchema,OrganizationFeaturesDTOSchema,OrganizationFeaturesDTO,OrganizationFeatureStateDTOSchema,OrganizationFeatureSetSchema,init_organization_features_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/organization-features.dto.js"(){"use strict";init_create_dto();ORGANIZATION_FEATURES=["routine_planner","pro_agents"],AGENT_PLANS=["free","starter","pro"],AgentPlanSchema=z12.enum(AGENT_PLANS),OrganizationFeatureSchema=z12.enum(ORGANIZATION_FEATURES),OrganizationFeaturesDTOSchema=z12.object({features:z12.record(OrganizationFeatureSchema,z12.boolean()),lockedByPlan:z12.array(OrganizationFeatureSchema),agentPlan:AgentPlanSchema}),OrganizationFeaturesDTO=createDTO(OrganizationFeaturesDTOSchema),OrganizationFeatureStateDTOSchema=z12.object({feature:OrganizationFeatureSchema,enabled:z12.boolean(),default:z12.boolean(),lockedByPlan:z12.boolean(),override:z12.boolean().nullable(),reason:z12.string().nullable(),updatedBy:z12.string().nullable(),updatedAt:z12.string().datetime().nullable()}),OrganizationFeatureSetSchema=z12.object({state:z12.enum(["on","off","default"]),reason:z12.string().trim().min(1).max(500),apply:z12.boolean().default(!1),confirmProduction:z12.boolean().default(!1)})}});import{z as z13}from"zod";function refineChatHistoryWindow(schema){return schema.refine(input=>input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>input.until.getTime()-input.since.getTime()<=OPS_CONTEXT_HEALTH_MAX_WINDOW_MS,{path:["since"],message:"chat history windows cannot exceed 7 days"})}var OPS_BACKEND_PROFILES,OpsBackendProfileSchema,OPS_PERMISSIONS,OpsPermissionSchema,OPS_SUPPORT_PRESET,OPS_PERMISSION_PRESETS,OPS_SERVICE_PERMISSION_PRESETS,OpsAccessGrantInputSchema,OpsServiceTokenInputSchema,OpsCustomerProjectInputSchema,OPS_INVESTIGATION_STATUSES,OpsInvestigationStatusSchema,OpsInvestigationCreateInputSchema,OpsInvestigationUpdateInputSchema,OPS_KNOWN_ISSUE_STATUSES,OpsKnownIssueStatusSchema,OpsKnownIssueCreateInputSchema,OpsKnownIssueUpdateInputSchema,OPS_VALIDATION_OUTCOMES,OpsValidationOutcomeSchema,OpsValidationRunInputSchema,OpsNotificationPreviewInputSchema,OpsPylonIssueIdSchema,OpsPylonReasonSchema,OpsPylonMessageSchema,OpsPylonMessageIdSchema,OpsPylonEmailListSchema,OpsPylonResolveInputSchema,OpsPylonNoteInputSchema,OpsPylonReplyPreviewInputSchema,OpsSentryIssueIdSchema,OpsSentryResolveInputSchema,OpsTraceIdSchema,OpsTraceReadInputSchema,OpsBraintrustSpanIdSchema,OpsAgentInvocationStatusSchema,OpsAgentTraceListInputSchema,OpsAgentTraceCostliestInputSchema,OpsAgentTraceSpansInputSchema,OpsSpanBodyEdgeSchema,OpsAgentTraceSpanInputSchema,OpsAgentTraceMessagesInputSchema,OpsAgentHealthGroupBySchema,OpsAgentHealthInputSchema,OPS_DATA_USAGE_MAX_WINDOW_MS,OpsDataUsageGroupBySchema,OpsDataUsageInputSchema,OPS_CONTEXT_HEALTH_MAX_WINDOW_MS,OpsContextHealthInputSchema,OPS_MEMORY_HEALTH_MAX_WINDOW_MS,OpsMemoryHealthInputSchema,opsChatHistoryWindow,OpsChatHistoryHealthInputSchema,OpsChatHistoryCallsInputSchema,OpsChatHistoryJudgeInputSchema,OPS_ROUTINE_METRICS_MAX_WINDOW_MS,OpsRoutineMetricsGroupBySchema,OpsRoutineMetricsSortBySchema,OpsRoutineMetricsInputSchema,OpsChatHistoryJudgeCalibrationInputSchema,OpsAgentTraceStatsGroupBySchema,OpsSpanTypeSchema,OpsAgentTraceStatsInputSchema,OpsAgentProviderErrorsInputSchema,OpsBillingCacheInvalidateInputSchema,OpsBillingEntitlementSyncInputSchema,OpsBillingAgentRuntimeAttachInputSchema,OPS_PROJECT_OPERATIONS,OpsProjectOperationKindSchema,ExactVersionSchema,OpsProjectOperationPlanInputSchema,OPS_MIGRATIONS,OpsMigrationIdSchema,OPS_MIGRATION_PLAN_STATUSES,OpsMigrationPlanStatusSchema,OPS_MIGRATION_CHANGE_ACTIONS,OpsMigrationChangeActionSchema,OpsMigrationDryRunInputSchema,OpsProjectFilePathSchema,OpsProjectFileReasonSchema,OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES,OpsProjectPackageManagerInspectInputSchema,OpsProjectFileReadInputSchema,OpsProjectFileGlobInputSchema,OpsProjectFileGrepInputSchema,OPS_POSTHOG_EVENTS,OPS_POSTHOG_QUESTION,OpsPosthogTimestampSchema,OpsPosthogMilestonesInputSchema,OpsPosthogFailureCodeSchema,OpsPosthogCoverageSchema,OpsPosthogCountsSchema,OpsPosthogMilestonesResponseSchema,OpsSessionHealthInputSchema,OpsProjectAnalyticsHealthInputSchema,init_ops=__esm({"../../packages/api-contracts/dist/esm/types/ops.js"(){"use strict";init_organization_features_dto();init_env();OPS_BACKEND_PROFILES=["local","staging","prod"],OpsBackendProfileSchema=z13.enum(OPS_BACKEND_PROFILES),OPS_PERMISSIONS=["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:project:operate","ops:project:publish","ops:project:agents:write","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:posthog:read","ops:braintrust:read","ops:support:read","ops:support:write","ops:customers:read","ops:customers:write","ops:billing:read","ops:billing:write","ops:organization:features:write","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:known-issues:write","ops:validations:read","ops:validations:write","ops:audit:read","ops:notification:preview","ops:notification:approve","ops:notification:send","ops:users:read","ops:users:write","ops:organizations:read","ops:organizations:write","ops:merges:read","ops:merges:write","ops:platform:read","ops:platform:write","ops:project:admin","ops:credits:write"],OpsPermissionSchema=z13.enum(OPS_PERMISSIONS),OPS_SUPPORT_PRESET=["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:users:read","ops:organizations:read","ops:merges:read","ops:platform:read","ops:billing:read","ops:support:read","ops:support:write","ops:customers:read","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:validations:read","ops:audit:read","ops:notification:preview"],OPS_PERMISSION_PRESETS={support:OPS_SUPPORT_PRESET,engineer:[...OPS_SUPPORT_PRESET,"ops:project:operate","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:braintrust:read","ops:customers:write","ops:billing:write","ops:organization:features:write","ops:known-issues:write","ops:validations:write","ops:merges:write","ops:platform:write","ops:users:write"],full:[...OPS_PERMISSIONS]},OPS_SERVICE_PERMISSION_PRESETS={support:OPS_PERMISSION_PRESETS.support,engineer:OPS_PERMISSION_PRESETS.engineer,full:OPS_PERMISSION_PRESETS.full.filter(permission=>permission!=="ops:notification:approve")},OpsAccessGrantInputSchema=z13.object({permissions:z13.array(OpsPermissionSchema).min(1),backendProfiles:z13.array(OpsBackendProfileSchema).min(1),enabled:z13.boolean().default(!0)}),OpsServiceTokenInputSchema=z13.object({name:z13.string().trim().min(1).max(120),permissions:z13.array(OpsPermissionSchema).min(1),backendProfiles:z13.array(OpsBackendProfileSchema).min(1),expiresAt:z13.coerce.date()}).refine(input=>!input.permissions.includes("ops:notification:approve"),{path:["permissions"],message:"Service credentials cannot approve customer notifications"}).refine(input=>input.expiresAt.getTime()>Date.now(),{path:["expiresAt"],message:"Service credential expiry must be in the future"}),OpsCustomerProjectInputSchema=z13.object({importanceReason:z13.string().trim().min(1).max(1e3),ownerUserId:z13.string().trim().min(1).nullable().optional(),framework:z13.string().trim().max(120).nullable().optional(),packageManager:z13.enum(["npm","pnpm","yarn","bun"]).nullable().optional(),notes:z13.string().trim().max(5e3).nullable().optional()}),OPS_INVESTIGATION_STATUSES=["open","investigating","awaiting_approval","resolved","monitoring","closed"],OpsInvestigationStatusSchema=z13.enum(OPS_INVESTIGATION_STATUSES),OpsInvestigationCreateInputSchema=z13.object({projectId:z13.uuid(),title:z13.string().trim().min(1).max(240),userReport:z13.string().trim().max(1e4).nullable().optional()}),OpsInvestigationUpdateInputSchema=z13.object({status:OpsInvestigationStatusSchema.optional(),hypothesis:z13.string().trim().max(1e4).nullable().optional(),outcome:z13.string().trim().max(1e4).nullable().optional(),evidence:z13.array(z13.record(z13.string(),z13.unknown())).max(100).optional()}).refine(input=>Object.keys(input).length>0,"At least one field is required"),OPS_KNOWN_ISSUE_STATUSES=["open","monitoring","resolved"],OpsKnownIssueStatusSchema=z13.enum(OPS_KNOWN_ISSUE_STATUSES),OpsKnownIssueCreateInputSchema=z13.object({fingerprint:z13.string().trim().min(1).max(240),title:z13.string().trim().min(1).max(240),description:z13.string().trim().min(1).max(1e4),affectedVersions:z13.array(z13.string().trim().min(1).max(120)).max(100).default([]),detectionQueries:z13.array(z13.string().trim().min(1).max(2e3)).max(50).default([]),fixedVersion:z13.string().trim().min(1).max(64).nullable().optional(),workaround:z13.string().trim().min(1).max(1e4).nullable().optional(),status:OpsKnownIssueStatusSchema.default("open")}),OpsKnownIssueUpdateInputSchema=OpsKnownIssueCreateInputSchema.omit({fingerprint:!0}).extend({affectedVersions:z13.array(z13.string().trim().min(1).max(120)).max(100),detectionQueries:z13.array(z13.string().trim().min(1).max(2e3)).max(50),status:OpsKnownIssueStatusSchema}).partial().refine(input=>Object.keys(input).length>0,"At least one field is required"),OPS_VALIDATION_OUTCOMES=["passed","failed","inconclusive"],OpsValidationOutcomeSchema=z13.enum(OPS_VALIDATION_OUTCOMES),OpsValidationRunInputSchema=z13.object({changeReference:z13.string().trim().min(1).max(500),outcome:OpsValidationOutcomeSchema,summary:z13.string().trim().min(1).max(1e4),evidence:z13.array(z13.record(z13.string(),z13.unknown())).max(100).default([])}),OpsNotificationPreviewInputSchema=z13.object({recipientEmail:z13.email().optional(),subject:z13.string().trim().min(1).max(200).default("An update from Fimo"),message:z13.string().trim().min(1).max(5e3),locale:z13.string().trim().min(2).max(20),reason:z13.string().trim().min(1).max(1e3),acknowledgePolicy:z13.literal(!0)}),OpsPylonIssueIdSchema=z13.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsPylonReasonSchema=z13.string().trim().min(1).max(1e3),OpsPylonMessageSchema=z13.string().trim().min(1).max(5e3),OpsPylonMessageIdSchema=z13.string().trim().min(1).max(255),OpsPylonEmailListSchema=z13.array(z13.email()).max(50).default([]),OpsPylonResolveInputSchema=z13.object({reason:OpsPylonReasonSchema}),OpsPylonNoteInputSchema=z13.object({message:OpsPylonMessageSchema,reason:OpsPylonReasonSchema}),OpsPylonReplyPreviewInputSchema=z13.object({messageId:OpsPylonMessageIdSchema,message:OpsPylonMessageSchema,toEmails:OpsPylonEmailListSchema,ccEmails:OpsPylonEmailListSchema,bccEmails:OpsPylonEmailListSchema,reason:OpsPylonReasonSchema,acknowledgePolicy:z13.literal(!0)}).refine(input=>input.toEmails.length+input.ccEmails.length+input.bccEmails.length<=50,{message:"At most 50 email recipients are allowed",path:["toEmails"]}),OpsSentryIssueIdSchema=z13.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsSentryResolveInputSchema=z13.object({reason:z13.string().trim().min(1).max(1e3)}),OpsTraceIdSchema=z13.string().trim().regex(/^[a-fA-F0-9]{32}$/).transform(value=>value.toLowerCase()),OpsTraceReadInputSchema=z13.object({projectId:z13.uuid(),from:z13.coerce.date(),to:z13.coerce.date(),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>input.from<=input.to,{path:["from"],message:"from must be before or equal to to"}).refine(input=>input.to.getTime()-input.from.getTime()<=10080*60*1e3,{path:["from"],message:"trace windows cannot exceed 7 days"}),OpsBraintrustSpanIdSchema=z13.string().trim().regex(/^[A-Za-z0-9_-]{1,200}$/),OpsAgentInvocationStatusSchema=z13.enum(["planned","running","finished","cancelled","errored","refused"]),OpsAgentTraceListInputSchema=z13.object({projectId:z13.uuid().optional(),organizationId:z13.string().trim().min(1).max(255).optional(),agentKey:z13.string().trim().min(1).max(120).optional(),threadId:z13.uuid().optional(),status:OpsAgentInvocationStatusSchema.optional(),since:z13.coerce.date().optional(),minCostUsd:z13.coerce.number().min(0).optional(),tracedOnly:z13.coerce.boolean().default(!1),limit:z13.coerce.number().int().min(1).max(100).default(25),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!!(input.projectId||input.organizationId||input.threadId),{path:["projectId"],message:"one of projectId, organizationId, or threadId is required"}),OpsAgentTraceCostliestInputSchema=z13.object({since:z13.coerce.date(),until:z13.coerce.date(),limit:z13.coerce.number().int().min(1).max(50).default(25),reason:z13.string().trim().min(1).max(1e3)}).superRefine((input,ctx)=>{input.until<input.since&&ctx.addIssue({code:"custom",path:["until"],message:"until must be at or after since"}),input.until.getTime()-input.since.getTime()>744*60*60*1e3&&ctx.addIssue({code:"custom",path:["since"],message:"window must not exceed 31 days"})}),OpsAgentTraceSpansInputSchema=z13.object({limit:z13.coerce.number().int().min(1).max(500).default(200),reason:z13.string().trim().min(1).max(1e3)}),OpsSpanBodyEdgeSchema=z13.enum(["start","end"]).default("start"),OpsAgentTraceSpanInputSchema=z13.object({maxChars:z13.coerce.number().int().min(500).max(2e5).default(2e4),edge:OpsSpanBodyEdgeSchema,reason:z13.string().trim().min(1).max(1e3)}),OpsAgentTraceMessagesInputSchema=z13.object({messageIndex:z13.coerce.number().int().min(0).optional(),maxChars:z13.coerce.number().int().min(500).max(2e5).default(2e4),reason:z13.string().trim().min(1).max(1e3)}),OpsAgentHealthGroupBySchema=z13.enum(["agent","status","branch","project","day"]),OpsAgentHealthInputSchema=z13.strictObject({projectId:z13.uuid().optional(),organizationId:z13.string().trim().min(1).max(255).optional(),branch:BranchSchema.optional(),agentKey:z13.string().trim().min(1).max(120).optional(),since:z13.coerce.date(),until:z13.coerce.date().optional(),groupBy:OpsAgentHealthGroupBySchema.default("agent"),includeChildren:z13.coerce.boolean().default(!1),limit:z13.coerce.number().int().min(1).max(200).default(50),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OPS_DATA_USAGE_MAX_WINDOW_MS=10080*60*1e3,OpsDataUsageGroupBySchema=z13.enum(["operation","provider","day","organization","agent"]),OpsDataUsageInputSchema=z13.strictObject({organizationId:z13.string().trim().min(1).max(255).optional(),since:z13.coerce.date(),until:z13.coerce.date().optional(),groupBy:OpsDataUsageGroupBySchema.default("operation"),limit:z13.coerce.number().int().min(1).max(200).default(50),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>(input.until??new Date).getTime()-input.since.getTime()<=OPS_DATA_USAGE_MAX_WINDOW_MS,{path:["since"],message:"data usage window cannot exceed 7 days"}),OPS_CONTEXT_HEALTH_MAX_WINDOW_MS=10080*60*1e3,OpsContextHealthInputSchema=z13.object({projectId:z13.uuid().optional(),since:z13.coerce.date(),until:z13.coerce.date().optional(),limit:z13.coerce.number().int().min(1).max(1e3).default(500),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>(input.until??new Date).getTime()-input.since.getTime()<=OPS_CONTEXT_HEALTH_MAX_WINDOW_MS,{path:["since"],message:"context health window cannot exceed 7 days"}),OPS_MEMORY_HEALTH_MAX_WINDOW_MS=10080*60*1e3,OpsMemoryHealthInputSchema=z13.object({projectId:z13.uuid().optional(),since:z13.coerce.date(),until:z13.coerce.date().optional(),limit:z13.coerce.number().int().min(1).max(1e3).default(200),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>(input.until??new Date).getTime()-input.since.getTime()<=OPS_MEMORY_HEALTH_MAX_WINDOW_MS,{path:["since"],message:"memory health window cannot exceed 7 days"}),opsChatHistoryWindow={projectId:z13.uuid().optional(),since:z13.coerce.date(),until:z13.coerce.date().default(()=>new Date),reason:z13.string().trim().min(1).max(1e3)};__name(refineChatHistoryWindow,"refineChatHistoryWindow");OpsChatHistoryHealthInputSchema=refineChatHistoryWindow(z13.strictObject(opsChatHistoryWindow)),OpsChatHistoryCallsInputSchema=refineChatHistoryWindow(z13.strictObject({...opsChatHistoryWindow,limit:z13.coerce.number().int().min(1).max(500).default(100)})),OpsChatHistoryJudgeInputSchema=refineChatHistoryWindow(z13.strictObject({...opsChatHistoryWindow,sample:z13.coerce.number().int().min(1).max(25).default(10)})),OPS_ROUTINE_METRICS_MAX_WINDOW_MS=2160*60*60*1e3,OpsRoutineMetricsGroupBySchema=z13.enum(["routine","plan","day","project"]),OpsRoutineMetricsSortBySchema=z13.enum(["total","jev","runs"]),OpsRoutineMetricsInputSchema=z13.strictObject({projectId:z13.uuid().optional(),organizationId:z13.string().trim().min(1).max(255).optional(),plan:AgentPlanSchema.optional(),routine:z13.string().trim().min(1).max(64).optional(),groupBy:OpsRoutineMetricsGroupBySchema.default("routine"),sortBy:OpsRoutineMetricsSortBySchema.default("total"),burstMinutes:z13.coerce.number().int().min(1).max(120).default(10),since:z13.coerce.date(),until:z13.coerce.date().default(()=>new Date),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>input.until.getTime()-input.since.getTime()<=OPS_ROUTINE_METRICS_MAX_WINDOW_MS,{path:["since"],message:"routine metrics windows cannot exceed 90 days"}),OpsChatHistoryJudgeCalibrationInputSchema=z13.strictObject({reason:z13.string().trim().min(1).max(1e3)}),OpsAgentTraceStatsGroupBySchema=z13.enum(["model","provider","span","type"]),OpsSpanTypeSchema=z13.enum(["llm","tool","function","task","score","eval"]),OpsAgentTraceStatsInputSchema=z13.object({since:z13.coerce.date(),until:z13.coerce.date().optional(),groupBy:OpsAgentTraceStatsGroupBySchema.default("model"),spanType:OpsSpanTypeSchema.optional(),slowerThanSeconds:z13.coerce.number().min(0).optional(),limit:z13.coerce.number().int().min(1).max(200).default(50),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OpsAgentProviderErrorsInputSchema=z13.object({since:z13.coerce.date(),until:z13.coerce.date().default(()=>new Date),model:z13.string().trim().min(1).max(120).optional(),provider:z13.string().trim().min(1).max(120).optional(),spanType:OpsSpanTypeSchema.optional(),before:z13.coerce.date().optional(),limit:z13.coerce.number().int().min(1).max(1e3).default(500),sampleChars:z13.coerce.number().int().min(200).max(2e4).default(1200),correlateInvocations:z13.boolean().default(!1),correlationLimit:z13.coerce.number().int().min(1).max(100).default(25),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>input.until.getTime()-input.since.getTime()<=10080*60*1e3,{path:["since"],message:"provider error windows cannot exceed 7 days"}).refine(input=>!input.before||input.before>=input.since&&input.before<=input.until,{path:["before"],message:"before must be within the requested window"}),OpsBillingCacheInvalidateInputSchema=z13.object({reason:z13.string().trim().min(1).max(1e3)}),OpsBillingEntitlementSyncInputSchema=z13.object({reason:z13.string().trim().min(1).max(500),apply:z13.boolean().default(!1),confirmProduction:z13.boolean().default(!1),cursor:z13.string().min(1).optional(),batchSize:z13.number().int().min(1).max(100).default(50),concurrency:z13.number().int().min(1).max(10).default(2)}),OpsBillingAgentRuntimeAttachInputSchema=z13.object({reason:z13.string().trim().min(1).max(500),apply:z13.boolean().default(!1),confirmProduction:z13.boolean().default(!1),organizationIds:z13.array(z13.string().min(1)).min(1).max(100).optional(),cursor:z13.string().min(1).optional(),batchSize:z13.number().int().min(1).max(100).default(50)}),OPS_PROJECT_OPERATIONS=["runtime.bump","preview.restart","production.publish"],OpsProjectOperationKindSchema=z13.enum(OPS_PROJECT_OPERATIONS),ExactVersionSchema=z13.string().trim().regex(/^\d+\.\d+\.\d+$/,"Expected an exact version such as 0.11.0"),OpsProjectOperationPlanInputSchema=z13.discriminatedUnion("kind",[z13.object({kind:z13.literal("runtime.bump"),targetVersion:ExactVersionSchema}),z13.object({kind:z13.literal("preview.restart")})]),OPS_MIGRATIONS=["project.v3-to-v4"],OpsMigrationIdSchema=z13.enum(OPS_MIGRATIONS),OPS_MIGRATION_PLAN_STATUSES=["applicable","not_applicable","unknown"],OpsMigrationPlanStatusSchema=z13.enum(OPS_MIGRATION_PLAN_STATUSES),OPS_MIGRATION_CHANGE_ACTIONS=["create","rewrite","delete"],OpsMigrationChangeActionSchema=z13.enum(OPS_MIGRATION_CHANGE_ACTIONS),OpsMigrationDryRunInputSchema=z13.object({migrationId:OpsMigrationIdSchema,projectEnv:z13.string().trim().min(1).max(255).default("main"),reason:z13.string().trim().min(1).max(1e3)}),OpsProjectFilePathSchema=z13.string().trim().min(1).max(1024),OpsProjectFileReasonSchema=z13.string().trim().min(1).max(1e3),OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES=["pnpm-lock.yaml","bun.lockb","bun.lock","yarn.lock","package-lock.json"],OpsProjectPackageManagerInspectInputSchema=z13.object({reason:OpsProjectFileReasonSchema}),OpsProjectFileReadInputSchema=z13.object({path:OpsProjectFilePathSchema,reason:OpsProjectFileReasonSchema}),OpsProjectFileGlobInputSchema=z13.object({pattern:z13.string().min(1).max(300).optional(),limit:z13.coerce.number().int().min(1).max(2e3).default(2e3),reason:OpsProjectFileReasonSchema}),OpsProjectFileGrepInputSchema=z13.object({pattern:z13.string().min(1).max(200),include:z13.string().min(1).max(300).optional(),caseInsensitive:z13.boolean().default(!1),maxMatches:z13.coerce.number().int().min(1).max(200).default(100),reason:OpsProjectFileReasonSchema}),OPS_POSTHOG_EVENTS=["didCreateProject","didInitiateProject","didDeploy","didDeployProject","didFirstPublish"],OPS_POSTHOG_QUESTION="project-milestone-counts-v1",OpsPosthogTimestampSchema=z13.iso.datetime({offset:!0}).refine(value=>Number.isFinite(Date.parse(value))&&!/\.\d{3}\d*[1-9]\d*(?:Z|[+-]\d{2}:\d{2})$/.test(value),"A finite timestamp with at most millisecond precision is required").transform(value=>new Date(value).toISOString()),OpsPosthogMilestonesInputSchema=z13.strictObject({projectId:z13.uuid().transform(value=>value.toLowerCase()),from:OpsPosthogTimestampSchema,to:OpsPosthogTimestampSchema,reason:z13.string().trim().min(1).max(1e3)}).refine(value=>{let duration=Date.parse(value.to)-Date.parse(value.from);return duration>0&&duration<=1440*60*1e3},{message:"Window must satisfy from < to and be at most 24 hours",path:["to"]}),OpsPosthogFailureCodeSchema=z13.enum(["not_configured","unauthenticated","forbidden","backend_mismatch","invalid_request","provider_auth_failed","provider_project_unavailable","rate_limited","timeout","provider_error","capability_unavailable","invalid_response","incomplete","pending","audit_unavailable"]),OpsPosthogCoverageSchema=z13.strictObject({completeAggregate:z13.boolean(),truncated:z13.boolean().nullable(),sampled:z13.boolean().nullable(),pagination:z13.enum(["not_applicable","unexpected","unknown"]),providerFreshnessKnown:z13.literal(!1),providerAsOf:z13.null(),projectFilter:z13.literal("exact properties.projectId equality"),environmentFilterSupported:z13.literal(!1),excludesMissingProjectId:z13.literal(!0),transport:z13.literal("server"),consentCoverage:z13.literal("server-policy-not-browser-consent"),operationDedupeAvailable:z13.literal(!1)}),OpsPosthogCountsSchema=z13.array(z13.strictObject({event:z13.enum(OPS_POSTHOG_EVENTS),captureCount:z13.number().int().min(0).max(Number.MAX_SAFE_INTEGER)})).length(5).refine(counts=>counts.every((entry,i)=>entry.event===OPS_POSTHOG_EVENTS[i])),OpsPosthogMilestonesResponseSchema=z13.strictObject({schemaVersion:z13.literal(1),questionId:z13.literal(OPS_POSTHOG_QUESTION),backendProfile:OpsBackendProfileSchema,projectId:z13.uuid().nullable(),projectEnvironment:z13.literal("mixed_or_unrecorded"),window:z13.strictObject({from:z13.iso.datetime(),to:z13.iso.datetime(),bounds:z13.literal("[from,to)")}).nullable(),source:z13.literal("posthog"),sourceStatus:z13.enum(["available","unavailable","forbidden"]),failureCode:OpsPosthogFailureCodeSchema.nullable(),queriedAt:z13.iso.datetime(),auditId:z13.uuid().nullable(),counts:OpsPosthogCountsSchema.nullable(),coverage:OpsPosthogCoverageSchema}).superRefine((value,ctx)=>{(value.sourceStatus==="available"?value.counts===null||value.failureCode!==null||value.auditId===null||value.projectId===null||value.window===null||!value.coverage.completeAggregate||value.coverage.sampled!==!1||value.coverage.truncated!==!1||value.coverage.pagination!=="not_applicable":value.counts!==null||value.failureCode===null||value.coverage.completeAggregate)&&ctx.addIssue({code:"custom",message:"Invalid aggregate availability"})}),OpsSessionHealthInputSchema=z13.object({reason:z13.string().trim().min(1).max(1e3),limit:z13.number().int().min(1).max(100).default(25),checkProvider:z13.boolean().default(!1)}),OpsProjectAnalyticsHealthInputSchema=z13.object({branch:z13.string().trim().min(1).max(255),canaryPath:z13.string().max(300).regex(/^\/[a-zA-Z0-9/_-]*\?fimo_monitor=[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/).optional(),since:z13.iso.datetime({offset:!0}),until:z13.iso.datetime({offset:!0}),reason:z13.string().trim().min(1).max(1e3)}).strict().refine(input=>Date.parse(input.since)<=Date.parse(input.until),{path:["since"],message:"since must be before or equal to until"}).refine(input=>Date.parse(input.until)-Date.parse(input.since)<=10080*60*1e3,{path:["since"],message:"analytics health window cannot exceed 7 days"}).refine(input=>Date.parse(input.until)<=Date.now(),{path:["until"],message:"until cannot be in the future"}).transform(({since,until,...input})=>({...input,since:new Date(since),until:new Date(until)}))}});import{z as z14}from"zod";function resolveOpsTime(value,now=new Date){let relative3=RELATIVE_WINDOW.exec(value.trim());if(relative3){let amount=Number(relative3[1]),unit=relative3[2];return new Date(now.getTime()-amount*UNIT_MS[unit]).toISOString()}return new Date(value).toISOString()}function opsHoursSince(value,now=new Date){let start=Date.parse(resolveOpsTime(value,now));return Math.max(1,Math.ceil((now.getTime()-start)/UNIT_MS.h))}var RELATIVE_WINDOW,time,opsArgs,OPS_STANDARD_ARG_KEYS,UNIT_MS,init_args=__esm({"../../packages/api-contracts/dist/esm/ops/args.js"(){"use strict";RELATIVE_WINDOW=/^(\d+)(m|h|d|w)$/,time=z14.string().trim().min(1).max(64).refine(value=>RELATIVE_WINDOW.test(value)||!Number.isNaN(Date.parse(value)),{message:"Expected an ISO timestamp or a relative window such as 30m, 24h, 7d or 2w"}),opsArgs={project:z14.uuid().describe("Fimo project id"),org:z14.string().trim().min(1).max(255).describe("Organization id"),user:z14.string().trim().min(1).max(255).describe("User id"),env:z14.string().trim().min(1).max(255).describe("Project environment (branch), e.g. main or prod"),since:time.describe("Start of the window: ISO timestamp or relative (30m, 24h, 7d, 2w)"),until:time.describe("End of the window: ISO timestamp or relative (defaults to now)"),limit:z14.coerce.number().int().min(1).max(1e3).describe("Maximum results"),cursor:z14.string().trim().min(1).max(2e3).describe("Continue from a previous page"),query:z14.string().trim().min(1).max(200).describe("Free-text search"),reason:z14.string().trim().min(1).max(1e3).describe("Why this is being read or changed; stored in the audit log"),output:z14.string().trim().min(1).max(4096).describe("Write the result to this local file")},OPS_STANDARD_ARG_KEYS=Object.keys(opsArgs),UNIT_MS={m:6e4,h:36e5,d:864e5,w:6048e5};__name(resolveOpsTime,"resolveOpsTime");__name(opsHoursSince,"opsHoursSince")}});import{z as z15}from"zod";var OPS_RECENT_CHAT_MAX_WINDOW_MS,OpsChatTimestampInputSchema,OpsRecentChatInputSchema,OpsRecentChatMessageSchema,OpsRecentChatResponseSchema,OpsRecentChatResponseDTO,init_ops_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-chat.dto.js"(){"use strict";init_ops();init_create_dto();OPS_RECENT_CHAT_MAX_WINDOW_MS=10080*60*1e3,OpsChatTimestampInputSchema=z15.iso.datetime({offset:!0}).pipe(z15.coerce.date()),OpsRecentChatInputSchema=z15.object({from:OpsChatTimestampInputSchema,to:OpsChatTimestampInputSchema.optional(),projectEnv:z15.string().trim().min(1).max(255).optional(),limit:z15.coerce.number().int().min(1).max(200).default(100),cursor:z15.string().trim().min(1).max(2e3).optional(),slim:z15.boolean().default(!0),reason:z15.string().trim().min(1).max(1e3)}).refine(input=>input.from<=(input.to??new Date),{message:"from must be before or equal to to",path:["from"]}).refine(input=>(input.to??new Date).getTime()-input.from.getTime()<=OPS_RECENT_CHAT_MAX_WINDOW_MS,{message:"recent chat window cannot exceed 7 days",path:["from"]}).refine(input=>!input.cursor||!!input.to,{message:"to is required when continuing with a cursor",path:["to"]}),OpsRecentChatMessageSchema=z15.object({id:z15.string(),threadId:z15.string(),providerMessageId:z15.string().nullable(),invocationId:z15.string().nullable(),env:z15.string().nullable(),role:z15.string(),parts:z15.array(z15.record(z15.string(),z15.unknown())),metadata:z15.object({status:z15.string().optional(),traceUrl:z15.string().optional(),externalFileChanges:z15.array(z15.unknown()).optional()}),stats:z15.object({toolCount:z15.number().int().nonnegative(),failedToolCount:z15.number().int().nonnegative()}),createdAt:z15.iso.datetime({offset:!0}),project:z15.object({id:z15.string(),name:z15.string(),displayName:z15.string().nullable(),organizationId:z15.string().nullable()})}),OpsRecentChatResponseSchema=z15.object({target:z15.object({backendProfile:OpsBackendProfileSchema,projectEnv:z15.string().nullable()}),window:z15.object({from:z15.iso.datetime({offset:!0}),to:z15.iso.datetime({offset:!0})}),messages:z15.object({items:z15.array(OpsRecentChatMessageSchema),nextCursor:z15.string().nullable()})}),OpsRecentChatResponseDTO=createDTO(OpsRecentChatResponseSchema)}});var init_types=__esm({"../../packages/api-contracts/dist/esm/ops/types.js"(){"use strict"}});function compact(value){return Object.fromEntries(Object.entries(value).filter(([,entry])=>entry!==void 0))}function time2(value){return value===void 0?void 0:resolveOpsTime(value)}function seg(value){return encodeURIComponent(value)}var init_shared=__esm({"../../packages/api-contracts/dist/esm/ops/commands/shared.js"(){"use strict";init_args();__name(compact,"compact");__name(time2,"time");__name(seg,"seg")}});import{z as z16}from"zod";var invocation,span,OpsChatViewSchema,OpsChatViewsInputSchema,viewIds,ending,toolCallRow,appCallRow,turnRow,turnSlice,viewEnvelope,OpsChatViewsResponseDTO,agentCommands,init_agent=__esm({"../../packages/api-contracts/dist/esm/ops/commands/agent.js"(){"use strict";init_ops_chat_dto();init_ops();init_create_dto();init_args();init_types();init_shared();invocation=z16.string().trim().min(1).max(255).describe("Agent invocation (run) id"),span=z16.string().trim().min(1).max(255).describe("Braintrust span id"),OpsChatViewSchema=z16.enum(["tool-calls","app-calls","turns","slices"]),OpsChatViewsInputSchema=OpsRecentChatInputSchema.safeExtend({view:OpsChatViewSchema}),viewIds=z16.object({threadId:z16.string(),invocationId:z16.string().nullable(),projectId:z16.string(),messageId:z16.string()}),ending={terminal:z16.string(),terminalReason:z16.string().nullable()},toolCallRow=viewIds.extend({tool:z16.string(),subcommand:z16.string().nullable(),state:z16.string().nullable(),failed:z16.boolean(),errorSignature:z16.string().nullable(),position:z16.number().int().nonnegative(),recoveredNext:z16.boolean().nullable()}),appCallRow=viewIds.extend({routineId:z16.string().nullable(),via:z16.string(),integrationId:z16.string().nullable(),appTool:z16.string().nullable(),withApproval:z16.boolean(),outcome:z16.enum(["ok","failed","approval_required","blocked","pending"]),errorSignature:z16.string().nullable(),position:z16.number().int().nonnegative()}),turnRow=viewIds.extend({...ending,userMessageId:z16.string().nullable(),failureCategory:z16.enum(["expected_billing_stop","expected_model_refusal","expected_cancellation","workspace_failure","provider_model_failure","unknown_failure"]).nullable(),changes:z16.string().nullable(),mergeState:z16.string().nullable(),validation:z16.string().nullable(),publication:z16.string().nullable(),stepCount:z16.number().int().nonnegative(),toolCount:z16.number().int().nonnegative(),failedToolCount:z16.number().int().nonnegative(),hasTextReply:z16.boolean(),fimoAuthored:z16.boolean().nullable()}),turnSlice=viewIds.extend({...ending,previousUserAsk:z16.string().max(300),previousAgentWords:z16.string().max(500),userMessage:z16.string().max(1500),agentReply:z16.string().max(1305),failedToolCalls:z16.array(z16.object({tool:z16.string(),errorSignature:z16.string()})).max(6)}),viewEnvelope=z16.object({target:z16.object({backendProfile:OpsBackendProfileSchema,projectEnv:z16.string().nullable()}),window:z16.object({from:z16.iso.datetime({offset:!0}),to:z16.iso.datetime({offset:!0})})}),OpsChatViewsResponseDTO=createDTO(z16.discriminatedUnion("view",[viewEnvelope.extend({view:z16.literal("tool-calls"),messages:z16.object({items:z16.array(toolCallRow),nextCursor:z16.string().nullable()})}),viewEnvelope.extend({view:z16.literal("app-calls"),messages:z16.object({items:z16.array(appCallRow),nextCursor:z16.string().nullable()})}),viewEnvelope.extend({view:z16.literal("turns"),messages:z16.object({items:z16.array(turnRow),nextCursor:z16.string().nullable()})}),viewEnvelope.extend({view:z16.literal("slices"),messages:z16.object({items:z16.array(turnSlice),nextCursor:z16.string().nullable()})})])),agentCommands=[{id:"agent.chats.views",summary:"Read tool calls, app calls, turn outcomes or customer-text slices from a bounded chat window",permission:"ops:project:chat:read",effect:"read",input:z16.object({view:OpsChatViewSchema,since:opsArgs.since,until:opsArgs.until.optional(),env:opsArgs.env.optional(),limit:opsArgs.limit.max(200).default(100).describe("Source messages per page; each may produce several view rows"),cursor:opsArgs.cursor.optional(),reason:opsArgs.reason,output:opsArgs.output.optional().describe("Private JSON file; required for slices")}),request:__name(input=>({method:"POST",path:"/chat/messages/views",body:compact({view:input.view,from:time2(input.since),to:time2(input.until)??new Date().toISOString(),projectEnv:input.env,limit:input.limit,cursor:input.cursor,reason:input.reason})}),"request")},{id:"agent.chats.recent",summary:"Read recent chat messages across every project in a time window",permission:"ops:project:chat:read",effect:"read",input:z16.object({since:opsArgs.since,until:opsArgs.until.optional(),env:opsArgs.env.optional().describe("Only messages from this environment"),limit:opsArgs.limit.max(200).default(100),cursor:opsArgs.cursor.optional(),full:z16.boolean().default(!1).describe("Include complete message parts instead of the slim transcript"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/chat/messages/recent",body:compact({from:time2(input.since),to:time2(input.until)??new Date().toISOString(),projectEnv:input.env,limit:input.limit,cursor:input.cursor,slim:!input.full,reason:input.reason})}),"request")},{id:"agent.chats.create",summary:"Create an agent chat with routines in a customer project, as the organization owner. Validate the spec and confirm intent first: routines run and spend credits",permission:"ops:project:agents:write",effect:"write",risk:"low",input:z16.object({project:opsArgs.project,spec:z16.record(z16.string(),z16.unknown()).describe("JSON spec: { agent: { name, description } | { template }, routines: [...] }")}),cli:{fileArgs:["spec"]}},{id:"agent.traces.list",summary:"List agent runs for a project, organization or thread, with cost and status",permission:"ops:project:read",effect:"read",input:z16.object({project:opsArgs.project.optional(),org:opsArgs.org.optional(),thread:z16.uuid().optional().describe("Chat thread id"),agent:z16.string().trim().min(1).max(120).optional().describe("Agent key, e.g. chat.project"),status:OpsAgentInvocationStatusSchema.optional(),since:opsArgs.since.optional(),minCost:z16.coerce.number().min(0).optional().describe("Only runs costing at least this many USD"),tracedOnly:z16.boolean().default(!1).describe("Only runs that recorded a Braintrust root span"),limit:opsArgs.limit.max(100).default(25),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-traces/list",body:compact({projectId:input.project,organizationId:input.org,threadId:input.thread,agentKey:input.agent,status:input.status,since:time2(input.since),minCostUsd:input.minCost,tracedOnly:input.tracedOnly,limit:input.limit,reason:input.reason})}),"request")},{id:"agent.traces.costliest",summary:"Rank agent runs across projects by recorded cost, without content (maximum 31 days and 50 runs)",permission:"ops:project:read",effect:"read",input:z16.object({since:opsArgs.since,until:opsArgs.until.describe("Inclusive window end: ISO timestamp or relative (required)"),limit:opsArgs.limit.max(50).default(25),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-traces/costliest",body:{since:time2(input.since),until:time2(input.until),limit:input.limit,reason:input.reason}}),"request")},{id:"agent.traces.budget",summary:"List chats whose runs crossed the context budget and had to wrap up (content-free)",permission:"ops:braintrust:read",effect:"read",input:z16.object({since:opsArgs.since,until:opsArgs.until.optional(),limit:opsArgs.limit.max(25).default(25),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-traces/budget-wrap-up",body:compact({since:time2(input.since),until:time2(input.until),limit:input.limit,reason:input.reason})}),"request")},{id:"agent.traces.spans",summary:"List the spans of one agent run",permission:"ops:braintrust:read",effect:"read",input:z16.object({invocation,limit:opsArgs.limit.max(500).default(200),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/agent-traces/${seg(input.invocation)}/spans`,body:{limit:input.limit,reason:input.reason}}),"request")},{id:"agent.traces.span",summary:"Read one span body (input and output) of an agent run",permission:"ops:braintrust:read",effect:"read",input:z16.object({invocation,span,maxChars:z16.coerce.number().int().min(500).max(2e5).default(2e4).describe("Per-field character bound"),tail:z16.boolean().default(!1).describe("Return the end of an over-long body instead of the start"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/agent-traces/${seg(input.invocation)}/spans/${seg(input.span)}`,body:{maxChars:input.maxChars,edge:input.tail?"end":"start",reason:input.reason}}),"request")},{id:"agent.traces.messages",summary:"Read the conversation the model saw in one LLM span",permission:"ops:braintrust:read",effect:"read",input:z16.object({invocation,span,message:z16.coerce.number().int().min(0).optional().describe("Return this one message instead of the index"),maxChars:z16.coerce.number().int().min(500).max(2e5).default(2e4),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/agent-traces/${seg(input.invocation)}/spans/${seg(input.span)}/messages`,body:compact({messageIndex:input.message,maxChars:input.maxChars,reason:input.reason})}),"request")},{id:"agent.traces.stats",summary:"Aggregate agent step latency, tokens and cost by model, provider, span or type",permission:"ops:braintrust:read",effect:"read",input:z16.object({since:opsArgs.since,until:opsArgs.until.optional(),groupBy:OpsAgentTraceStatsGroupBySchema.default("model"),spanType:OpsSpanTypeSchema.optional(),slowerThan:z16.coerce.number().positive().optional().describe("Only steps at least this many seconds slow"),limit:opsArgs.limit.max(200).default(50),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-traces/stats",body:compact({since:time2(input.since),until:time2(input.until),groupBy:input.groupBy,spanType:input.spanType,slowerThanSeconds:input.slowerThan,limit:input.limit,reason:input.reason})}),"request")}]}});import{z as z17}from"zod";var assistantCommands,init_assistant=__esm({"../../packages/api-contracts/dist/esm/ops/commands/assistant.js"(){"use strict";init_args();init_types();init_shared();assistantCommands=[{id:"assistant.threads.list",summary:"List your admin assistant threads, newest activity first",permission:"ops:platform:read",effect:"read",input:z17.object({query:opsArgs.query.optional().describe("Match the thread title"),limit:z17.coerce.number().int().min(1).max(100).optional().describe("Maximum results"),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/assistant/threads",query:{q:input.query,limit:input.limit,cursor:input.cursor}}),"request")},{id:"assistant.threads.get",summary:"Read one admin assistant thread with every message",permission:"ops:platform:read",effect:"read",input:z17.object({thread:z17.uuid().describe("Admin assistant thread id")}),request:__name(input=>({method:"GET",path:`/assistant/threads/${seg(input.thread)}`}),"request")}]}});import{z as z18}from"zod";var day,billingCommands,init_billing=__esm({"../../packages/api-contracts/dist/esm/ops/commands/billing.js"(){"use strict";init_args();init_types();init_shared();day=z18.iso.date().describe("UTC day, YYYY-MM-DD"),billingCommands=[{id:"billing.customer",summary:"Read one Hyperline billing customer",permission:"ops:billing:read",effect:"read",input:z18.object({customer:z18.string().trim().min(1).max(255).describe("Hyperline customer id"),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/billing/customers/${seg(input.customer)}`,query:{reason:input.reason}}),"request")},{id:"billing.org",summary:"Read an organization's billing state: subscription, plan projection, credits and wallet",permission:"ops:billing:read",effect:"read",input:z18.object({org:opsArgs.org,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/billing/organizations/${seg(input.org)}`,query:{reason:input.reason}}),"request")},{id:"billing.bandwidth-contract",summary:"Read an organization's hosting bandwidth contract and current usage",permission:"ops:billing:read",effect:"read",input:z18.object({org:opsArgs.org,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/billing/organizations/${seg(input.org)}/bandwidth-contract`,query:{reason:input.reason}}),"request")},{id:"billing.ledger",summary:"Read an organization's credit ledger: holds, settlements, grants or usage events",permission:"ops:billing:read",effect:"read",input:z18.object({org:opsArgs.org,kind:z18.enum(["holds","settlements","grants","usage-events"]),since:opsArgs.since.optional(),limit:opsArgs.limit.max(200).default(100),cursor:opsArgs.cursor.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/ledger",query:compact({organizationId:input.org,kind:input.kind,since:time2(input.since),limit:input.limit,cursor:input.cursor,reason:input.reason})}),"request")},{id:"billing.plans.report",summary:"Find organizations whose local plan projection is missing or unusable (one page)",permission:"ops:billing:read",effect:"read",input:z18.object({cursor:opsArgs.cursor.optional().describe("Resume after this organization id"),at:z18.iso.datetime({offset:!0}).optional().describe("Reuse evaluatedAt when resuming a scan"),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/plan-projections/report",query:compact({reason:input.reason,at:input.at??new Date().toISOString(),cursor:input.cursor})}),"request")},{id:"billing.plans.reconcile",summary:"Repair organizations' local plan projections from Hyperline",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({orgs:z18.array(opsArgs.org).min(1).max(100).describe("Organization ids")})},{id:"billing.legacy-premium.report",summary:"Report legacy Premium organizations and where each stands in the Pro transition",permission:"ops:billing:read",effect:"read",input:z18.object({org:opsArgs.org.optional(),limit:opsArgs.limit.max(200).optional(),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/legacy-premium-report",query:compact({reason:input.reason,org:input.org,limit:input.limit})}),"request")},{id:"billing.legacy-premium.enroll",summary:"Record the approved Pro offer for one legacy Premium organization",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({org:opsArgs.org,deadline:z18.string().trim().min(1).max(64).describe("Decision date exactly 90 calendar days from today")})},{id:"billing.legacy-premium.comp",summary:"Accept an internal organization's Pro offer on its behalf, free through a 100% coupon",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({org:opsArgs.org,coupon:z18.string().trim().min(1).max(64).describe("Hyperline coupon id: 100% off every product")})},{id:"billing.legacy-premium.notify",summary:"Send the due legacy Premium transition notices for one organization",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({org:opsArgs.org})},{id:"billing.entitlements.sync",summary:"Reconcile subscription entitlement properties in Hyperline with Fimo's plans (one batch)",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({batchSize:z18.coerce.number().int().min(1).max(100).default(50),concurrency:z18.coerce.number().int().min(1).max(10).default(2),cursor:opsArgs.cursor.optional().describe("Resume after this organization id")})},{id:"billing.agent-runtime.attach",summary:"Attach the Agent runtime product to PAYG and Pro subscriptions (one batch)",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({orgs:z18.array(opsArgs.org).min(1).max(100).optional().describe("Only these organizations"),batchSize:z18.coerce.number().int().min(1).max(100).default(25),cursor:opsArgs.cursor.optional().describe("Resume after this organization id")})},{id:"billing.dispatches.list",summary:"List billing usage dispatches to Hyperline by state",permission:"ops:billing:read",effect:"read",input:z18.object({state:z18.enum(["pending","dispatched","dead-lettered","discarded"]),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/billing/dispatches",body:{state:input.state,reason:input.reason}}),"request")},{id:"billing.dispatches.discard",summary:"Discard dead-lettered billing dispatches so they are never sent",permission:"ops:billing:write",effect:"write",risk:"high",humanOnly:!0,input:z18.object({dispatches:z18.array(z18.uuid()).min(1).max(100).describe("Dispatch ids")})},{id:"billing.dispatches.retry",summary:"Retry a dead-lettered billing dispatch",permission:"ops:billing:write",effect:"write",risk:"low",input:z18.object({dispatch:z18.uuid().describe("Dispatch id")})},{id:"billing.cache.invalidate",summary:"Clear an organization's cached billing state so the next read goes to Hyperline",permission:"ops:billing:write",effect:"write",risk:"low",input:z18.object({org:opsArgs.org})},{id:"billing.hosting-usage.day",summary:"Read hosting usage recorded for one source, meter and day",permission:"ops:billing:read",effect:"read",input:z18.object({source:z18.string().trim().min(1).max(100),meter:z18.string().trim().min(1).max(100),day,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/hosting-usage",query:{source:input.source,meter:input.meter,day:input.day,reason:input.reason}}),"request")},{id:"billing.hosting-usage.reconciliation",summary:"Compare a project's served traffic with the hosting usage billed for one day",permission:"ops:billing:read",effect:"read",input:z18.object({project:opsArgs.project,day,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/hosting-usage/reconciliation",query:{projectId:input.project,day:input.day,reason:input.reason}}),"request")},{id:"billing.hosting-usage.periods",summary:"List an organization's hosting billing periods",permission:"ops:billing:read",effect:"read",input:z18.object({org:opsArgs.org,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/billing/hosting-usage/customer-periods",query:{organizationId:input.org,reason:input.reason}}),"request")}]}});import{z as z19}from"zod";var coreCommands,init_core=__esm({"../../packages/api-contracts/dist/esm/ops/commands/core.js"(){"use strict";init_args();init_types();init_shared();coreCommands=[{id:"find",summary:"Find projects, organizations or users by name, slug, domain, email or id",permission:"ops:project:read",effect:"read",input:z19.object({query:opsArgs.query,kind:z19.enum(["project","org","user"]).optional().describe("Only this kind of record"),limit:opsArgs.limit.max(100).default(20),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/find",query:compact({q:input.query,kind:input.kind,limit:input.limit,cursor:input.cursor})}),"request"),cli:{positional:"query"}},{id:"audit.list",summary:"List audit log entries, newest first",permission:"ops:audit:read",effect:"read",input:z19.object({project:opsArgs.project.optional(),org:opsArgs.org.optional(),actor:z19.string().trim().min(1).max(255).optional().describe("User or service principal id"),action:z19.string().trim().min(1).max(64).optional().describe("Audit action, e.g. project_takedown"),since:opsArgs.since.optional(),limit:opsArgs.limit.max(200).default(50)}),request:__name(input=>({method:"GET",path:"/audit",query:compact({projectId:input.project,organizationId:input.org,actor:input.actor,action:input.action,since:time2(input.since),limit:input.limit})}),"request")}]}});import{z as z20}from"zod";var window2,healthCommands,init_health=__esm({"../../packages/api-contracts/dist/esm/ops/commands/health.js"(){"use strict";init_organization_features_dto();init_ops();init_args();init_types();init_shared();window2={since:opsArgs.since,until:opsArgs.until.optional()},healthCommands=[{id:"health.overview",summary:"Platform health brief: Sentry, logs, agents, publishing and support in one window",permission:"ops:project:read",effect:"read",input:z20.object({...window2,project:opsArgs.project.optional().describe("Narrow every source that can be narrowed to one project"),limit:opsArgs.limit.max(100).default(25).describe("Maximum findings per source"),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/health",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,limit:input.limit,reason:input.reason})}),"request")},{id:"health.agents",summary:"Agent run outcomes, cost and duration grouped by agent, status, branch, project or day",permission:"ops:project:read",effect:"read",input:z20.object({...window2,project:opsArgs.project.optional(),org:opsArgs.org.optional(),env:opsArgs.env.optional(),agent:z20.string().trim().min(1).max(120).optional().describe("Agent key, e.g. chat.project"),groupBy:OpsAgentHealthGroupBySchema.default("agent"),includeChildren:z20.boolean().default(!1).describe("Count sub-steps too"),limit:opsArgs.limit.max(200).default(50),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-health",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,organizationId:input.org,branch:input.env,agentKey:input.agent,groupBy:input.groupBy,includeChildren:input.includeChildren,limit:input.limit,reason:input.reason})}),"request")},{id:"health.context",summary:"Context-window pressure and compaction facts for agent turns",permission:"ops:project:read",effect:"read",input:z20.object({...window2,project:opsArgs.project.optional(),limit:opsArgs.limit.max(1e3).default(500),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/context-health",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,limit:input.limit,reason:input.reason})}),"request")},{id:"health.memory",summary:"Agent memory health: threads and routines with missing or stale memory",permission:"ops:project:read",effect:"read",input:z20.object({...window2,project:opsArgs.project.optional(),limit:opsArgs.limit.max(1e3).default(200),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/memory-health",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,limit:input.limit,reason:input.reason})}),"request")},{id:"health.providers",summary:"Model provider errors grouped by signature, optionally correlated to agent runs",permission:"ops:braintrust:read",effect:"read",input:z20.object({...window2,model:z20.string().trim().min(1).max(200).optional(),provider:z20.string().trim().min(1).max(120).optional().describe("e.g. gateway or vertex"),spanType:OpsSpanTypeSchema.optional(),before:z20.string().trim().min(1).max(64).optional().describe("Page boundary: nextBefore from the previous page"),limit:opsArgs.limit.max(1e3).default(500).describe("Error spans to scan per page"),correlate:z20.boolean().default(!1).describe("Resolve the newest occurrences to Fimo runs"),correlationLimit:z20.coerce.number().int().min(1).max(100).default(25),sampleChars:z20.coerce.number().int().min(200).max(2e4).default(1200),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/agent-provider-errors",body:compact({since:time2(input.since),until:time2(input.until),model:input.model,provider:input.provider,spanType:input.spanType,before:input.before,limit:input.limit,sampleChars:input.sampleChars,correlateInvocations:input.correlate||void 0,correlationLimit:input.correlate?input.correlationLimit:void 0,reason:input.reason})}),"request")},{id:"health.chat-history.summary",summary:"How often agents call the chatHistory tool and whether it finds what they need",permission:"ops:project:read",effect:"read",input:z20.object({since:opsArgs.since.optional(),until:opsArgs.until.optional(),project:opsArgs.project.optional(),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/chat-history/health",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,reason:input.reason})}),"request")},{id:"health.chat-history.calls",summary:"List chatHistory tool calls; --with-content adds the surrounding messages (needs chat read)",permission:"ops:project:read",effect:"read",input:z20.object({since:opsArgs.since,until:opsArgs.until.optional(),project:opsArgs.project.optional(),limit:opsArgs.limit.max(500).default(100),withContent:z20.boolean().default(!1),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:input.withContent?"/chat-history/calls/content":"/chat-history/calls",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,limit:input.limit,reason:input.reason})}),"request")},{id:"health.chat-history.judge",summary:"Have a model judge a sample of chatHistory calls; --calibrate runs the labelled benchmark",permission:"ops:project:chat:read",effect:"read",input:z20.object({since:opsArgs.since.optional(),until:opsArgs.until.optional(),project:opsArgs.project.optional(),sample:z20.coerce.number().int().min(1).max(25).default(10),calibrate:z20.boolean().default(!1),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>input.calibrate?{method:"POST",path:"/chat-history/judge/calibration",body:{reason:input.reason}}:{method:"POST",path:"/chat-history/judge",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,sample:input.sample,reason:input.reason})},"request")},{id:"health.data-usage",summary:"Data-provider usage (search, scraping, enrichment) grouped by operation, provider, day, org or agent",permission:"ops:project:read",effect:"read",input:z20.object({...window2,org:opsArgs.org.optional(),groupBy:OpsDataUsageGroupBySchema.default("operation"),limit:opsArgs.limit.max(200).default(50),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/data-usage",body:compact({since:time2(input.since),until:time2(input.until),organizationId:input.org,groupBy:input.groupBy,limit:input.limit,reason:input.reason})}),"request")},{id:"health.routines",summary:"Routine runs, event bursts, Jev trigger calls and cost, by routine, plan, day or project",permission:"ops:project:read",effect:"read",input:z20.object({...window2,project:opsArgs.project.optional(),org:opsArgs.org.optional(),plan:AgentPlanSchema.optional().describe("The organization's agent plan now"),routine:z20.string().trim().min(1).max(64).optional().describe("Template routine key, or custom"),groupBy:OpsRoutineMetricsGroupBySchema.default("routine"),sortBy:OpsRoutineMetricsSortBySchema.default("total").describe("Rank buckets by total cost, Jev's trigger cost, or runs"),burstMinutes:z20.coerce.number().int().min(1).max(120).default(10).describe("An event this many minutes or less after the routine's previous one is a burst"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:"/routine-metrics",body:compact({since:time2(input.since),until:time2(input.until),projectId:input.project,organizationId:input.org,plan:input.plan,routine:input.routine,groupBy:input.groupBy,sortBy:input.sortBy,burstMinutes:input.burstMinutes,reason:input.reason})}),"request")},{id:"health.analytics",summary:"Whether a project's website analytics are arriving (content-free counts, max 7 days)",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project,env:opsArgs.env.default("prod").describe("Environment whose traffic to check; prod for published traffic"),...window2,canaryPath:z20.string().max(300).optional().describe("Exact test path ending in ?fimo_monitor=<UUID>"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/projects/${seg(input.project)}/analytics-health`,body:compact({branch:input.env,canaryPath:input.canaryPath,since:time2(input.since),until:time2(input.until)??new Date().toISOString(),reason:input.reason})}),"request")},{id:"health.session",summary:"A project's work-session and database-branch health: cleanup due, unresolved allocations, capacity",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project,checkProvider:z20.boolean().default(!1).describe("Include one bounded read-only Neon inventory page"),limit:opsArgs.limit.max(100).default(25),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:`/projects/${seg(input.project)}/session-health`,body:{reason:input.reason,limit:input.limit,checkProvider:input.checkProvider}}),"request")},{id:"health.sandbox",summary:"A project environment's sandbox and preview status",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project,env:opsArgs.env.default("main"),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:`/projects/${seg(input.project)}/sandbox/status`,body:{projectEnv:input.env,reason:input.reason}}),"request")},{id:"health.schedules",summary:"Failed scheduled runs and webhook deliveries",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project.optional(),env:opsArgs.env.optional(),schedule:z20.uuid().optional().describe("Schedule id"),run:z20.uuid().optional().describe("Schedule run id (needs --project)"),since:opsArgs.since.optional(),until:opsArgs.until.optional(),limit:opsArgs.limit.max(100).optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/schedules/failures",body:compact({projectId:input.project,projectEnv:input.env,scheduleId:input.schedule,runId:input.run,since:time2(input.since),until:time2(input.until),limit:input.limit,reason:input.reason})}),"request")},{id:"health.integrations",summary:"Failing integration connections and inbound events",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/integrations/failures",body:compact({projectId:input.project,reason:input.reason})}),"request")},{id:"health.domains",summary:"Custom domains with DNS, SSL or provider problems",permission:"ops:project:read",effect:"read",input:z20.object({project:opsArgs.project.optional(),org:opsArgs.org.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/domains/problems",body:compact({projectId:input.project,organizationId:input.org,reason:input.reason})}),"request")}]}});import{z as z21}from"zod";var mergeCommands,init_merge=__esm({"../../packages/api-contracts/dist/esm/ops/commands/merge.js"(){"use strict";init_args();init_types();init_shared();mergeCommands=[{id:"merge.list",summary:"List merges, newest first; --stuck lists only merges that stopped progressing",permission:"ops:merges:read",effect:"read",input:z21.object({project:opsArgs.project.optional(),stuck:z21.boolean().default(!1).describe("Only merges stuck in a non-terminal state"),status:z21.string().trim().min(1).max(64).optional().describe("Only merges in this status"),since:opsArgs.since.optional(),limit:opsArgs.limit.max(200).default(50),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/merges",query:compact({projectId:input.project,stuck:input.stuck||void 0,status:input.status,since:time2(input.since),limit:input.limit,cursor:input.cursor})}),"request")},{id:"merge.get",summary:"Show one merge with its steps, conflicts and release",permission:"ops:merges:read",effect:"read",input:z21.object({merge:z21.uuid().describe("Merge id")}),request:__name(input=>({method:"GET",path:`/merges/${seg(input.merge)}`}),"request")},{id:"merge.unwind",summary:"Force-unwind a stuck merge: reset the target branch to its pre-merge head and reopen the merge",permission:"ops:merges:write",effect:"write",risk:"high",humanOnly:!0,input:z21.object({merge:z21.uuid().describe("Merge id")})},{id:"merge.fail",summary:"Force-fail a stuck merge without touching the target branch",permission:"ops:merges:write",effect:"write",risk:"high",humanOnly:!0,input:z21.object({merge:z21.uuid().describe("Merge id")})}]}});var MONITORING_SEVERITIES,init_admin_monitoring_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin-monitoring.dto.js"(){"use strict";MONITORING_SEVERITIES=["critical","high","medium","low"]}});import{z as z22}from"zod";var OPS_SIGNAL_CASE_STATES,OpsSignalCaseStateSchema,OpsSignatureHashSchema,monitorCommands,init_monitor=__esm({"../../packages/api-contracts/dist/esm/ops/commands/monitor.js"(){"use strict";init_admin_monitoring_dto();init_args();init_types();init_shared();OPS_SIGNAL_CASE_STATES=["open","accepted","snoozed","dismissed","resolved"],OpsSignalCaseStateSchema=z22.enum(OPS_SIGNAL_CASE_STATES),OpsSignatureHashSchema=z22.string().trim().regex(/^[0-9a-f]{16}$/,"Expected a 16-character signature hash"),monitorCommands=[{id:"monitor.checks.list",summary:"List staff checks with their schedule, action and last run",permission:"ops:investigations:read",effect:"read",input:z22.object({}),request:__name(()=>({method:"GET",path:"/monitor/checks"}),"request")},{id:"monitor.checks.try",summary:"Run one code check over a window, read-only, and show what it would open; nothing is stored (Jev and external checks are refused)",permission:"ops:investigations:read",effect:"read",input:z22.object({check:z22.string().trim().min(1).max(160).describe("Check id, e.g. agents/tools/errors/tool-failure-rate"),since:opsArgs.since,until:opsArgs.until.optional()}),request:__name(input=>({method:"POST",path:"/monitor/checks/try",body:compact({checkId:input.check,since:time2(input.since),until:time2(input.until)})}),"request")},{id:"monitor.cases.list",summary:"List cases opened by staff checks, newest activity first",permission:"ops:investigations:read",effect:"read",input:z22.object({state:OpsSignalCaseStateSchema.optional().describe("Only cases in this state"),check:z22.string().trim().min(1).max(160).optional().describe("Only cases from this check id, or from every check under a prefix ending in /"),minSeverity:z22.enum(MONITORING_SEVERITIES).optional().describe("Only cases at least this severe: critical, high, medium or low"),hash:OpsSignatureHashSchema.optional().describe("Only cases about this error signature hash: in the fingerprint or the evidence of the last 7 days"),limit:opsArgs.limit.max(200).default(50)}),request:__name(input=>({method:"POST",path:"/monitor/cases",body:compact({state:input.state,checkId:input.check,minSeverity:input.minSeverity,signatureHash:input.hash,limit:input.limit})}),"request")},{id:"monitor.signature.get",summary:"Resolve an error signature hash from case evidence to its tool, normalized error text, reach and example chats (window up to 7d)",permission:"ops:project:chat:read",effect:"read",input:z22.object({hash:OpsSignatureHashSchema.describe("Signature hash, e.g. from a case evidence signatureHash or topSignatures"),since:opsArgs.since.default("24h"),until:opsArgs.until.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/monitor/signatures",body:compact({hash:input.hash,since:time2(input.since),until:time2(input.until),reason:input.reason})}),"request")},{id:"monitor.cases.get",summary:"Read one case with its latest observations (ids and numbers only)",permission:"ops:investigations:read",effect:"read",input:z22.object({case:z22.uuid().describe("Case id")}),request:__name(input=>({method:"GET",path:`/monitor/cases/${seg(input.case)}`}),"request")},{id:"monitor.cases.update",summary:"Decide on a case: accept with a ceiling, snooze until a date, dismiss, resolve, or reopen",permission:"ops:investigations:write",effect:"write",risk:"low",input:z22.object({case:z22.uuid().describe("Case id"),state:OpsSignalCaseStateSchema.optional(),decisionReason:z22.string().trim().min(1).max(2e3).optional().describe("Why this decision; required to accept, snooze or dismiss. Shown on the finding"),ceiling:z22.number().nonnegative().optional().describe("For accepted: reopen above this metric"),snoozedUntil:z22.iso.datetime().optional().describe("For snoozed: reopen after this time"),linearIssue:z22.string().trim().regex(/^[A-Z]+-\d+$/).optional(),prUrl:z22.url().optional()})}]}});import{z as z23}from"zod";var channel,draft,notifyCommands,init_notify=__esm({"../../packages/api-contracts/dist/esm/ops/commands/notify.js"(){"use strict";init_ops();init_args();init_types();init_shared();channel=z23.enum(["email","pylon"]).describe("email (Resend, to the project owner) or pylon (ticket reply)"),draft=z23.uuid().describe("Draft id"),notifyCommands=[{id:"notify.draft",summary:"Draft a customer-visible message: an email to a project owner or a reply on a Pylon ticket",permission:"ops:notification:preview",effect:"write",risk:"low",input:z23.object({channel,message:z23.string().trim().min(1).max(5e3),project:opsArgs.project.optional().describe("email: the project whose owner receives it"),recipient:z23.email().optional().describe("email: override the recipient"),subject:z23.string().trim().min(1).max(200).optional().describe("email: subject line"),locale:z23.string().trim().min(2).max(20).optional().describe("email: message locale, e.g. en"),issue:OpsPylonIssueIdSchema.optional().describe("pylon: ticket id"),replyTo:z23.string().trim().min(1).max(255).optional().describe("pylon: top-level message id to reply to"),toEmails:z23.array(z23.email()).max(50).optional().describe("pylon: email recipients"),ccEmails:z23.array(z23.email()).max(50).optional(),bccEmails:z23.array(z23.email()).max(50).optional()}),cli:{fileArgs:["message"]}},{id:"notify.show",summary:"Show a drafted customer message and its approval state",permission:"ops:notification:preview",effect:"read",input:z23.object({channel,draft}),request:__name(input=>({method:"GET",path:input.channel==="pylon"?`/support/pylon/replies/${seg(input.draft)}`:`/notifications/${seg(input.draft)}`}),"request")},{id:"notify.approve",summary:"Approve a drafted customer message (a person must approve before it can be sent)",permission:"ops:notification:approve",effect:"write",risk:"low",humanOnly:!0,input:z23.object({channel,draft})},{id:"notify.send",summary:"Send an approved customer message",permission:"ops:notification:send",effect:"write",risk:"high",input:z23.object({channel,draft})}]}});function normalizeSentryIssueReference(reference){let trimmed=reference.trim();if(SENTRY_ISSUE_ID_PATTERN.test(trimmed))return trimmed;let url;try{url=new URL(trimmed)}catch{throw new Error("Expected a Sentry issue id or /issues/<id>/ URL")}let segments=url.pathname.split("/").filter(Boolean),issuesIndex=segments.lastIndexOf("issues"),issueId=issuesIndex>=0&&issuesIndex===segments.length-2?segments[issuesIndex+1]:void 0;if(!issueId||!SENTRY_ISSUE_ID_PATTERN.test(issueId))throw new Error("Expected a Sentry issue id or /issues/<id>/ URL");return issueId}function collectTraceIds(value,candidates,depth=0){if(!(depth>32)){if(typeof value=="string"){TRACE_ID_PATTERN.test(value.trim())&&candidates.add(value.trim().toLowerCase());return}if(Array.isArray(value)){for(let item of value)collectTraceIds(item,candidates,depth+1);return}if(typeof value=="object"&&value!==null)for(let item of Object.values(value))collectTraceIds(item,candidates,depth+1)}}function normalizeTempoTraceReference(reference){let trimmed=reference.trim();if(TRACE_ID_PATTERN.test(trimmed))return trimmed.toLowerCase();let url;try{url=new URL(trimmed)}catch{throw new Error("Expected an exact 32-character trace id or a Grafana trace URL")}let candidates=new Set;for(let segment of url.pathname.split("/"))collectTraceIds(segment,candidates);for(let value of url.searchParams.values()){collectTraceIds(value,candidates);try{collectTraceIds(JSON.parse(value),candidates)}catch{continue}}if(candidates.size!==1)throw new Error(candidates.size===0?"Grafana URL did not contain a trace id":"Grafana URL contained multiple trace ids");return[...candidates][0]}var SENTRY_ISSUE_ID_PATTERN,TRACE_ID_PATTERN,init_references2=__esm({"../../packages/api-contracts/dist/esm/ops/references.js"(){"use strict";SENTRY_ISSUE_ID_PATTERN=/^[a-zA-Z0-9-]{1,100}$/,TRACE_ID_PATTERN=/^[a-fA-F0-9]{32}$/;__name(normalizeSentryIssueReference,"normalizeSentryIssueReference");__name(collectTraceIds,"collectTraceIds");__name(normalizeTempoTraceReference,"normalizeTempoTraceReference")}});import{z as z24}from"zod";function parseWhere(values){if(!(!values||values.length===0))return Object.fromEntries(values.map(value=>{let separator=value.indexOf("=");if(separator<1)throw new Error("--where expects key=value");return[value.slice(0,separator),value.slice(separator+1)]}))}var issue,logFilters,observeCommands,init_observe=__esm({"../../packages/api-contracts/dist/esm/ops/commands/observe.js"(){"use strict";init_args();init_references2();init_types();init_shared();issue=z24.string().trim().min(1).max(500).describe("Sentry issue id or issue URL");__name(parseWhere,"parseWhere");logFilters={project:opsArgs.project,where:z24.array(z24.string().min(3).max(500)).optional().describe("Structured field filter key=value; repeatable"),contains:z24.string().min(1).max(500).optional().describe("Plain-text line filter"),limit:opsArgs.limit.max(1e3).default(100),reason:opsArgs.reason,output:opsArgs.output.optional()},observeCommands=[{id:"observe.logs.query",summary:"Query a project's production logs in a time window",permission:"ops:logs:read",effect:"read",input:z24.object({...logFilters,since:opsArgs.since,until:opsArgs.until.optional()}),request:__name(input=>({method:"POST",path:"/logs/query",body:compact({projectId:input.project,from:time2(input.since),to:time2(input.until)??new Date().toISOString(),limit:input.limit,contains:input.contains,where:parseWhere(input.where),reason:input.reason})}),"request")},{id:"observe.logs.around",summary:"Read a project's production logs a few minutes either side of a moment",permission:"ops:logs:read",effect:"read",input:z24.object({...logFilters,at:z24.iso.datetime({offset:!0}).describe("The moment to center on"),minutes:z24.coerce.number().int().min(1).max(120).default(5).describe("Minutes before and after")}),request:__name(input=>{let at2=Date.parse(input.at);return{method:"POST",path:"/logs/query",body:compact({projectId:input.project,from:new Date(at2-input.minutes*6e4).toISOString(),to:new Date(at2+input.minutes*6e4).toISOString(),limit:input.limit,contains:input.contains,where:parseWhere(input.where),reason:input.reason})}},"request")},{id:"observe.traces.get",summary:"Read one Grafana Tempo trace (id or Grafana URL) for a project",permission:"ops:traces:read",effect:"read",input:z24.object({trace:z24.string().trim().min(1).max(4e3).describe("32-character trace id or Grafana trace URL"),project:opsArgs.project,since:opsArgs.since,until:opsArgs.until.optional(),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/traces/${normalizeTempoTraceReference(input.trace)}`,body:{projectId:input.project,from:resolveOpsTime(input.since),to:time2(input.until)??new Date().toISOString(),reason:input.reason}}),"request")},{id:"observe.sentry.issues",summary:"Search Sentry issues, for one project or every project",permission:"ops:sentry:read",effect:"read",input:z24.object({project:opsArgs.project.optional(),search:z24.string().trim().min(1).max(500).optional().describe('Sentry search, e.g. "is:unresolved"'),period:z24.enum(["1h","24h","7d","14d","30d","90d"]).optional().describe("Stats period (default 14d)"),sort:z24.enum(["date","new","freq","user","trends"]).optional(),limit:opsArgs.limit.max(100).optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/sentry/issues",body:compact({projectId:input.project,query:input.search,statsPeriod:input.period,sort:input.sort,limit:input.limit,reason:input.reason})}),"request")},{id:"observe.sentry.issue",summary:"Read one Sentry issue",permission:"ops:sentry:read",effect:"read",input:z24.object({issue,reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/sentry/issues/${seg(normalizeSentryIssueReference(input.issue))}`,body:{reason:input.reason}}),"request")},{id:"observe.sentry.event",summary:"Read one full Sentry event",permission:"ops:sentry:read",effect:"read",input:z24.object({event:z24.string().trim().min(1).max(100).describe("Sentry event id"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/sentry/events/${seg(input.event)}`,body:{reason:input.reason}}),"request")},{id:"observe.sentry.latest-event",summary:"Read the latest full event of a Sentry issue",permission:"ops:sentry:read",effect:"read",input:z24.object({issue,reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/sentry/issues/${seg(normalizeSentryIssueReference(input.issue))}/events/latest`,body:{reason:input.reason}}),"request")},{id:"observe.sentry.resolve",summary:"Mark a Sentry issue resolved",permission:"ops:sentry:write",effect:"write",risk:"low",input:z24.object({issue})},{id:"observe.posthog.milestones",summary:"Count a project's PostHog lifecycle milestones (create, deploy, first publish) in a window",permission:"ops:posthog:read",effect:"read",input:z24.object({project:opsArgs.project,since:opsArgs.since,until:opsArgs.until.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:"/posthog/milestones",body:{projectId:input.project,from:resolveOpsTime(input.since),to:time2(input.until)??new Date().toISOString(),reason:input.reason}}),"request")}]}});import{z as z25}from"zod";var orgCommands,init_org=__esm({"../../packages/api-contracts/dist/esm/ops/commands/org.js"(){"use strict";init_organization_features_dto();init_args();init_types();init_shared();orgCommands=[{id:"org.get",summary:"Show an organization: plan, members, projects and subscription summary",permission:"ops:organizations:read",effect:"read",input:z25.object({org:opsArgs.org,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/organizations/${seg(input.org)}`,query:{reason:input.reason}}),"request")},{id:"org.features.list",summary:"List an organization's features and any staff overrides",permission:"ops:customers:read",effect:"read",input:z25.object({org:opsArgs.org}),request:__name(input=>({method:"GET",path:`/organizations/${seg(input.org)}/features`}),"request")},{id:"org.features.set",summary:"Force an organization feature on or off, or clear the override",permission:"ops:organization:features:write",effect:"write",risk:"low",humanOnly:!0,input:z25.object({org:opsArgs.org,feature:z25.enum(ORGANIZATION_FEATURES).describe("Feature name"),state:z25.enum(["on","off","default"]).describe("on, off, or default to clear the override")})},{id:"org.takedown",summary:"Take every project of an organization off Fimo domains and block publishing",permission:"ops:organizations:write",effect:"write",risk:"high",humanOnly:!0,input:z25.object({org:opsArgs.org})},{id:"org.restore",summary:"Lift an organization takedown",permission:"ops:organizations:write",effect:"write",risk:"high",humanOnly:!0,input:z25.object({org:opsArgs.org})},{id:"org.delete",summary:"Delete an organization and everything it owns permanently",permission:"ops:organizations:write",effect:"write",risk:"high",humanOnly:!0,input:z25.object({org:opsArgs.org})},{id:"org.credits.topup",summary:"Grant credits to an organization, free or as a recorded purchase",permission:"ops:credits:write",effect:"write",risk:"high",humanOnly:!0,input:z25.object({org:opsArgs.org,credits:z25.coerce.number().int().positive().describe("Number of credits"),type:z25.enum(["free","purchase"]).default("free"),amountCents:z25.coerce.number().int().positive().optional().describe("Amount paid, required for a purchase"),expiresAt:z25.iso.datetime({offset:!0}).optional().describe("When the credits expire"),message:z25.string().trim().optional().describe("Note shown with the grant")})},{id:"org.credits.burn-zombies",summary:"Burn credits held by abandoned (zombie) holds of one organization since a date",permission:"ops:credits:write",effect:"write",risk:"high",humanOnly:!0,input:z25.object({org:opsArgs.org,since:opsArgs.since})}]}});import{z as z26}from"zod";var OPS_PLATFORM_DASHBOARDS,platformCommands,init_platform=__esm({"../../packages/api-contracts/dist/esm/ops/commands/platform.js"(){"use strict";init_args();init_types();init_shared();OPS_PLATFORM_DASHBOARDS=["agents","money","projects","automation","growth","platform","usage","stats"],platformCommands=[{id:"platform.metrics",summary:"Read an admin dashboard as data: agents, money, projects, automation, growth, platform, usage or stats",permission:"ops:platform:read",effect:"read",input:z26.object({dashboard:z26.enum(OPS_PLATFORM_DASHBOARDS),since:opsArgs.since.default("7d"),until:opsArgs.until.optional()}),request:__name(input=>({method:"GET",path:"/platform/metrics",query:compact({dashboard:input.dashboard,since:time2(input.since),until:time2(input.until)})}),"request")},{id:"platform.pool.status",summary:"Show the warm sandbox pool: size, target, and projects waiting in it",permission:"ops:platform:read",effect:"read",input:z26.object({}),request:__name(()=>({method:"GET",path:"/platform/pool"}),"request")},{id:"platform.pool.refill",summary:"Top the warm sandbox pool up to its target size",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({})},{id:"platform.pool.flush",summary:"Delete warm sandboxes from the pool, all of them or only the listed ones (new projects start cold until it refills)",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({pooled:z26.array(z26.uuid()).min(1).max(500).optional().describe("Only these pooled project ids; omit to flush all")})},{id:"platform.maintenance.status",summary:"Show whether maintenance mode is on and its message",permission:"ops:platform:read",effect:"read",input:z26.object({}),request:__name(()=>({method:"GET",path:"/platform/maintenance"}),"request")},{id:"platform.maintenance.enable",summary:"Turn maintenance mode on: Studio shows the message and refuses work",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({message:z26.string().max(500).optional().describe("Message shown to users")})},{id:"platform.maintenance.disable",summary:"Turn maintenance mode off",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({})},{id:"platform.maintenance.message",summary:"Change the maintenance message without toggling maintenance mode",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({message:z26.string().max(500).describe("Message shown to users")})},{id:"platform.sync-all",summary:"Re-sync every project's database records from its repository",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({})},{id:"platform.sync-tenant-schemas",summary:"Apply pending tenant schema migrations to every project database",permission:"ops:platform:write",effect:"write",risk:"high",humanOnly:!0,input:z26.object({})},{id:"platform.integrations.replay",summary:"Replay one failed inbound integration event",permission:"ops:platform:write",effect:"write",risk:"low",input:z26.object({event:z26.string().trim().min(1).max(255).describe("Inbound event id")})},{id:"platform.onboardings.list",summary:"List site onboardings (start from an existing website) with their status",permission:"ops:platform:read",effect:"read",input:z26.object({status:z26.string().trim().min(1).max(64).optional(),since:opsArgs.since.optional(),limit:opsArgs.limit.max(200).default(50),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/platform/onboardings",query:compact({status:input.status,since:time2(input.since),limit:input.limit,cursor:input.cursor})}),"request")},{id:"platform.onboardings.get",summary:"Show one project's site onboarding: questions, answers, refusal and timeline",permission:"ops:platform:read",effect:"read",input:z26.object({project:opsArgs.project,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/platform/onboardings/${seg(input.project)}`,query:{reason:input.reason}}),"request")},{id:"platform.onboardings.lift-refusal",summary:"Lift a site onboarding's Terms refusal so the project can continue",permission:"ops:platform:write",effect:"write",risk:"low",input:z26.object({project:opsArgs.project})},{id:"platform.unclaimed.list",summary:"List unclaimed projects (created without an account) and their claim state",permission:"ops:platform:read",effect:"read",input:z26.object({since:opsArgs.since.optional(),limit:opsArgs.limit.max(200).default(50),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/platform/unclaimed",query:compact({since:time2(input.since),limit:input.limit,cursor:input.cursor})}),"request")},{id:"platform.resources.resolve",summary:"Resolve any id, URL, email or domain to the Fimo record it names",permission:"ops:platform:read",effect:"read",input:z26.object({query:z26.string().trim().min(1).max(512).describe("Id, URL, email or domain")}),request:__name(input=>({method:"GET",path:"/platform/resources/resolve",query:{q:input.query}}),"request"),cli:{positional:"query"}}]}});import{z as z27}from"zod";function files(project,action,env){return`/projects/${seg(project)}/files/${action}?projectEnv=${seg(env)}`}var envMain,projectCommands,init_project=__esm({"../../packages/api-contracts/dist/esm/ops/commands/project.js"(){"use strict";init_args();init_types();init_shared();envMain=opsArgs.env.default("main");__name(files,"files");projectCommands=[{id:"project.get",summary:"Inspect a project: owner, environments, domains, publications, recent runs and logs",permission:"ops:project:read",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,since:opsArgs.since.default("24h"),limit:opsArgs.limit.max(500).default(100).describe("Maximum log entries")}),request:__name(input=>({method:"GET",path:`/projects/${seg(input.project)}/inspect`,query:{projectEnv:input.env,hours:Math.min(168,opsHoursSince(input.since)),logLimit:input.limit}}),"request")},{id:"project.list",summary:"List projects across organizations, newest first: search by name or organization, or find those at their database limit (database quota reached)",permission:"ops:project:read",effect:"read",input:z27.object({query:opsArgs.query.optional().describe("Project name, display name, id or organization name"),databaseQuota:z27.enum(["blocked","refused"]).optional().describe("blocked: the database refuses queries now because the plan's quota is used up; refused: refused at any time, recovered ones included"),since:opsArgs.since.optional().describe("Created since: ISO timestamp or relative (30m, 24h, 7d, 2w)"),limit:opsArgs.limit.max(100).default(50),cursor:opsArgs.cursor.optional()}),request:__name(input=>({method:"GET",path:"/projects",query:compact({search:input.query,databaseQuota:input.databaseQuota,since:time2(input.since),limit:input.limit,cursor:input.cursor})}),"request")},{id:"project.snapshot",summary:"Download a zip snapshot of a project's source and content",permission:"ops:project:snapshot",effect:"read",input:z27.object({project:opsArgs.project,reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/projects/${seg(input.project)}/snapshot`,body:{reason:input.reason}}),"request")},{id:"project.chat",summary:"Read a project's agent chat transcript (the most recently active chat unless --thread is set)",permission:"ops:project:chat:read",effect:"read",input:z27.object({project:opsArgs.project,thread:z27.uuid().optional().describe("One chat or routine run thread id"),env:opsArgs.env.optional().describe("Only turns that targeted this environment"),since:opsArgs.since.optional(),until:opsArgs.until.optional(),limit:opsArgs.limit.max(200).default(100),cursor:opsArgs.cursor.optional(),full:z27.boolean().default(!1).describe("Include tool inputs, outputs and other message parts"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/projects/${seg(input.project)}/chat/messages`,body:compact({projectEnv:input.env,threadId:input.thread,from:time2(input.since),to:time2(input.until),limit:input.limit,cursor:input.cursor,slim:!input.full,reason:input.reason})}),"request")},{id:"project.files.read",summary:"Read one source file from a project environment",permission:"ops:project:snapshot",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,path:z27.string().trim().min(1).max(1024).describe("File path relative to the project root"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:files(input.project,"read",input.env),body:{path:input.path,reason:input.reason}}),"request")},{id:"project.files.glob",summary:"List source file paths in a project environment",permission:"ops:project:snapshot",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,pattern:z27.string().min(1).max(300).optional().describe("Glob pattern, e.g. src/**/*.tsx"),limit:opsArgs.limit.max(2e3).default(2e3),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:files(input.project,"glob",input.env),body:compact({pattern:input.pattern,limit:input.limit,reason:input.reason})}),"request")},{id:"project.files.grep",summary:"Search source files in a project environment with a regular expression",permission:"ops:project:snapshot",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,pattern:z27.string().min(1).max(200).describe("Regular expression"),include:z27.string().min(1).max(300).optional().describe("Only paths matching this glob"),caseInsensitive:z27.boolean().default(!1),limit:opsArgs.limit.max(200).default(100).describe("Maximum matches"),reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:files(input.project,"grep",input.env),body:compact({pattern:input.pattern,include:input.include,caseInsensitive:input.caseInsensitive,maxMatches:input.limit,reason:input.reason})}),"request")},{id:"project.files.package-manager",summary:"Report which package manager a project declares and which lockfiles it has",permission:"ops:project:snapshot",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,reason:opsArgs.reason}),request:__name(input=>({method:"POST",path:files(input.project,"package-manager",input.env),body:{reason:input.reason}}),"request")},{id:"project.files.write",summary:"Create or replace one source file in a project environment (commits to its branch)",permission:"ops:project:operate",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project,env:envMain,path:z27.string().trim().min(1).max(1024).describe("File path relative to the project root"),content:z27.string().max(256*1024).describe("The exact desired file contents"),overwrite:z27.boolean().default(!1).describe("Allow replacing an existing file")}),cli:{fileArgs:["content"]}},{id:"project.runtime.bump",summary:"Pin the project's fimo runtime packages to an exact version, install, and restart the dev server",permission:"ops:project:operate",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project,env:envMain,version:z27.string().trim().min(1).max(64).describe("Exact target version, e.g. 0.11.0")})},{id:"project.preview.restart",summary:"Restart the project's preview dev server",permission:"ops:project:operate",effect:"write",risk:"low",humanOnly:!0,input:z27.object({project:opsArgs.project,env:envMain})},{id:"project.publish",summary:"Publish the customer's site on their behalf. Only when a Fimo admin explicitly asks for it; never on an agent's own initiative",permission:"ops:project:publish",effect:"write",risk:"high",humanOnly:!0,consent:!0,input:z27.object({project:opsArgs.project,env:opsArgs.env.optional().describe("Source environment; defaults to the project's publish source")})},{id:"project.domain.refresh",summary:"Refresh a custom domain's provider and SSL state",permission:"ops:project:operate",effect:"write",risk:"low",humanOnly:!0,input:z27.object({project:opsArgs.project,domain:z27.uuid().describe("Project domain id")})},{id:"project.migrations.dry-run",summary:"Plan a source migration for one project without changing it",permission:"ops:project:read",effect:"read",input:z27.object({project:opsArgs.project,env:envMain,migration:z27.string().trim().min(1).max(120).optional().describe("Migration id (default: the current one)"),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/migrations/projects/${seg(input.project)}/dry-run`,body:compact({migrationId:input.migration,projectEnv:input.env,reason:input.reason})}),"request")},{id:"project.sync",summary:"Re-sync a project's database records from its repository",permission:"ops:project:operate",effect:"write",risk:"low",input:z27.object({project:opsArgs.project})},{id:"project.thumbnail.regenerate",summary:"Regenerate a project's dashboard thumbnail",permission:"ops:project:operate",effect:"write",risk:"low",input:z27.object({project:opsArgs.project,type:z27.enum(["dev","published"]).default("dev").describe("dev (the preview) or published (the live site)")})},{id:"project.version.restore",summary:"Restore a project environment to an earlier version (overwrites the current state)",permission:"ops:project:admin",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project,env:envMain,version:z27.string().trim().min(1).max(255).describe("Version id to restore")})},{id:"project.takedown",summary:"Take a project off Fimo domains and block it from publishing",permission:"ops:project:admin",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project})},{id:"project.restore",summary:"Lift a project takedown so it can serve and publish again",permission:"ops:project:admin",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project})},{id:"project.transfer",summary:"Move a project to another organization",permission:"ops:project:admin",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project,toOrg:opsArgs.org.describe("Destination organization id")})},{id:"project.delete",summary:"Delete a project and its resources permanently",permission:"ops:project:admin",effect:"write",risk:"high",humanOnly:!0,input:z27.object({project:opsArgs.project})}]}});import{z as z28}from"zod";var SUPPORT_REPORT_CATEGORIES,SupportReportCategorySchema,SUPPORT_REPORT_STATUSES,SupportReportStatusSchema,SupportReportSourceSchema,SupportReportDeliveryStatusSchema,SUPPORT_REPORT_LINK_KINDS,SupportReportLinkKindSchema,SupportReportEventKindSchema,SupportReportActorKindSchema,SupportReportTagSchema,SupportReportHttpUrlSchema,SupportReportContextInputSchema,CreateSupportReportInputSchema,SupportReportListQuerySchema,UpdateSupportReportInputSchema,CreateSupportReportMessageInputSchema,CreateSupportReportLinkInputSchema,SupportReportActorDTOSchema,SupportReportLinkDTOSchema,SupportReportLinkDTO,SupportReportEventDTOSchema,SupportReportEventDTO,SupportReportSummaryDTOSchema,SupportReportSummaryDTO,SupportReportDetailDTOSchema,SupportReportDetailDTO,SupportReportListDTOSchema,SupportReportListDTO,CreateSupportReportResultDTOSchema,CreateSupportReportResultDTO,init_support_report_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/support-report.dto.js"(){"use strict";init_create_dto();SUPPORT_REPORT_CATEGORIES=[{value:"account_billing",label:"Account & billing"},{value:"project_issues",label:"Project issues"},{value:"ai_prompt_output_quality",label:"AI prompt & output quality"},{value:"roles_access_collaboration",label:"Roles, access & collaboration"},{value:"code_technical_questions",label:"Code & technical questions"},{value:"others",label:"Other"}],SupportReportCategorySchema=z28.enum(SUPPORT_REPORT_CATEGORIES.map(category=>category.value)),SUPPORT_REPORT_STATUSES=["new","in_progress","waiting","resolved","duplicate","irrelevant","ignored"],SupportReportStatusSchema=z28.enum(SUPPORT_REPORT_STATUSES),SupportReportSourceSchema=z28.enum(["app","cli","agent"]),SupportReportDeliveryStatusSchema=z28.enum(["pending","delivered","failed"]),SUPPORT_REPORT_LINK_KINDS=["linear","pylon","project","sentry","grafana","other"],SupportReportLinkKindSchema=z28.enum(SUPPORT_REPORT_LINK_KINDS),SupportReportEventKindSchema=z28.enum(["report_created","report_updated","message","link_added","link_removed","delivery"]),SupportReportActorKindSchema=z28.enum(["user","agent","system"]),SupportReportTagSchema=z28.string().trim().min(1).max(50),SupportReportHttpUrlSchema=z28.url({protocol:/^https?$/}).max(2e3),SupportReportContextInputSchema=z28.object({organization:z28.object({id:z28.string().trim().min(1).max(255),name:z28.string().trim().max(240).optional()}),project:z28.object({id:z28.uuid(),name:z28.string().trim().max(240).optional(),createdAt:z28.coerce.date().optional()}).optional(),environment:z28.string().trim().max(255).optional(),clientVersion:z28.string().trim().max(64).optional()}),CreateSupportReportInputSchema=z28.object({message:z28.string().trim().min(1).max(2e4),category:SupportReportCategorySchema,source:SupportReportSourceSchema.default("cli"),context:SupportReportContextInputSchema}),SupportReportListQuerySchema=z28.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),source:SupportReportSourceSchema.optional(),tag:SupportReportTagSchema.optional(),query:z28.string().trim().max(200).optional(),limit:z28.coerce.number().int().min(1).max(100).default(50),offset:z28.coerce.number().int().min(0).default(0)}),UpdateSupportReportInputSchema=z28.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),tags:z28.array(SupportReportTagSchema).max(20).optional(),duplicateOfReportId:z28.uuid().nullable().optional(),note:z28.string().trim().min(1).max(2e4).optional()}).refine(input=>Object.values(input).some(value=>value!==void 0),{message:"At least one report change is required"}),CreateSupportReportMessageInputSchema=z28.object({message:z28.string().trim().min(1).max(2e4)}),CreateSupportReportLinkInputSchema=z28.object({kind:SupportReportLinkKindSchema,label:z28.string().trim().min(1).max(240),url:SupportReportHttpUrlSchema,externalId:z28.string().trim().max(240).optional()}),SupportReportActorDTOSchema=z28.object({kind:SupportReportActorKindSchema,id:z28.string().nullable(),name:z28.string().nullable()}),SupportReportLinkDTOSchema=z28.object({id:z28.uuid(),kind:SupportReportLinkKindSchema,label:z28.string(),url:SupportReportHttpUrlSchema,externalId:z28.string().nullable(),addedBy:SupportReportActorDTOSchema,createdAt:z28.coerce.date()}),SupportReportLinkDTO=createDTO(SupportReportLinkDTOSchema),SupportReportEventDTOSchema=z28.object({id:z28.uuid(),kind:SupportReportEventKindSchema,body:z28.string().nullable(),metadata:z28.record(z28.string(),z28.unknown()),actor:SupportReportActorDTOSchema,createdAt:z28.coerce.date()}),SupportReportEventDTO=createDTO(SupportReportEventDTOSchema),SupportReportSummaryDTOSchema=z28.object({id:z28.uuid(),status:SupportReportStatusSchema,category:SupportReportCategorySchema,tags:z28.array(z28.string()),source:SupportReportSourceSchema,message:z28.string(),reporter:z28.object({id:z28.string().nullable(),name:z28.string().nullable(),email:z28.string().nullable()}),organization:z28.object({id:z28.string().nullable(),name:z28.string()}),project:z28.object({id:z28.uuid().nullable(),name:z28.string()}).nullable(),assignee:SupportReportActorDTOSchema.nullable(),delivery:z28.object({status:SupportReportDeliveryStatusSchema,pylonIssueId:z28.string().nullable(),pylonIssueUrl:SupportReportHttpUrlSchema.nullable(),error:z28.string().nullable(),deliveredAt:z28.coerce.date().nullable()}).nullable(),duplicateOfReportId:z28.uuid().nullable(),resolvedAt:z28.coerce.date().nullable(),createdAt:z28.coerce.date(),updatedAt:z28.coerce.date()}),SupportReportSummaryDTO=createDTO(SupportReportSummaryDTOSchema),SupportReportDetailDTOSchema=SupportReportSummaryDTOSchema.extend({environment:z28.string().nullable(),clientVersion:z28.string().nullable(),links:z28.array(SupportReportLinkDTOSchema),events:z28.array(SupportReportEventDTOSchema)}),SupportReportDetailDTO=createDTO(SupportReportDetailDTOSchema),SupportReportListDTOSchema=z28.object({reports:z28.array(SupportReportSummaryDTOSchema),total:z28.number().int().nonnegative(),statusCounts:z28.object({new:z28.number().int().nonnegative(),in_progress:z28.number().int().nonnegative(),waiting:z28.number().int().nonnegative(),resolved:z28.number().int().nonnegative(),duplicate:z28.number().int().nonnegative(),irrelevant:z28.number().int().nonnegative(),ignored:z28.number().int().nonnegative()}),limit:z28.number().int().positive(),offset:z28.number().int().nonnegative()}),SupportReportListDTO=createDTO(SupportReportListDTOSchema),CreateSupportReportResultDTOSchema=z28.object({id:z28.uuid(),deliveryStatus:SupportReportDeliveryStatusSchema,message:z28.string()}),CreateSupportReportResultDTO=createDTO(CreateSupportReportResultDTOSchema)}});import{z as z29}from"zod";var report,pylonIssue,supportCommands,init_support=__esm({"../../packages/api-contracts/dist/esm/ops/commands/support.js"(){"use strict";init_support_report_dto();init_ops();init_args();init_types();init_shared();report=z29.uuid().describe("Support report id"),pylonIssue=OpsPylonIssueIdSchema.describe("Pylon issue id"),supportCommands=[{id:"support.reports.list",summary:"List Fimo support reports, newest first",permission:"ops:support:read",effect:"read",input:z29.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),source:SupportReportSourceSchema.optional(),tag:z29.string().trim().min(1).max(50).optional(),search:z29.string().trim().min(1).max(200).optional().describe("Text search over the report"),limit:opsArgs.limit.max(200).default(50),offset:z29.coerce.number().int().min(0).default(0),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"GET",path:"/support/reports",query:compact({reason:input.reason,status:input.status,category:input.category,source:input.source,tag:input.tag,query:input.search,limit:input.limit,offset:input.offset})}),"request")},{id:"support.reports.get",summary:"Read one support report with its messages, links and context",permission:"ops:support:read",effect:"read",input:z29.object({report,reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"GET",path:`/support/reports/${seg(input.report)}`,query:{reason:input.reason}}),"request")},{id:"support.reports.claim",summary:"Claim a support report (mark it in progress), optionally with a note",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({report,note:z29.string().trim().min(1).max(2e4).optional()}),cli:{fileArgs:["note"]}},{id:"support.reports.update",summary:"Change a support report's status, category, tags or duplicate link, optionally with a note",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({report,status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),tags:z29.array(z29.string().trim().min(1).max(50)).max(20).optional(),duplicateOf:z29.uuid().nullable().optional().describe("Report id this one duplicates; null clears it"),note:z29.string().trim().min(1).max(2e4).optional()}),cli:{fileArgs:["note"]}},{id:"support.reports.note",summary:"Add an internal message to a support report",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({report,message:z29.string().trim().min(1).max(2e4)}),cli:{fileArgs:["message"]}},{id:"support.reports.link",summary:"Link a support report to a Linear issue, Pylon ticket, project, Sentry issue or other URL",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({report,kind:SupportReportLinkKindSchema,label:z29.string().trim().min(1).max(240),url:z29.url({protocol:/^https?$/}).max(2e3),externalId:z29.string().trim().min(1).max(255).optional()})},{id:"support.reports.unlink",summary:"Remove a link from a support report",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({report,link:z29.uuid().describe("Link id")})},{id:"support.intake",summary:"Show the support intake receipt: reports received and delivered in a window (max 7 days)",permission:"ops:support:read",effect:"read",input:z29.object({since:opsArgs.since,until:opsArgs.until.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/support/intake/status",query:{since:time2(input.since),until:time2(input.until)??new Date().toISOString(),reason:input.reason}}),"request")},{id:"support.pylon.list",summary:"List Pylon support tickets in a window (max 7 days)",permission:"ops:support:read",effect:"read",input:z29.object({since:opsArgs.since,until:opsArgs.until.optional(),state:z29.enum(["open","closed","all"]).default("open"),limit:opsArgs.limit.max(100).default(50),cursor:opsArgs.cursor.optional(),reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"GET",path:"/support/pylon/issues",query:compact({since:time2(input.since),until:time2(input.until)??new Date().toISOString(),state:input.state,limit:input.limit,cursor:input.cursor,reason:input.reason})}),"request")},{id:"support.pylon.thread",summary:"Read the full message thread of a Pylon ticket",permission:"ops:support:read",effect:"read",input:z29.object({issue:pylonIssue,reason:opsArgs.reason,output:opsArgs.output.optional()}),request:__name(input=>({method:"POST",path:`/support/issues/${seg(input.issue)}/thread`,body:{reason:input.reason}}),"request")},{id:"support.pylon.resolve",summary:"Close a Pylon ticket",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({issue:pylonIssue})},{id:"support.pylon.note",summary:"Add an internal note to a Pylon ticket (not visible to the customer)",permission:"ops:support:write",effect:"write",risk:"low",input:z29.object({issue:pylonIssue,message:z29.string().trim().min(1).max(5e3)}),cli:{fileArgs:["message"]}}]}});import{z as z30}from"zod";var userCommands,init_user=__esm({"../../packages/api-contracts/dist/esm/ops/commands/user.js"(){"use strict";init_args();init_types();init_shared();userCommands=[{id:"user.get",summary:"Show a user: profile, role, organizations, recent sessions and usage",permission:"ops:users:read",effect:"read",input:z30.object({user:opsArgs.user,reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:`/users/${seg(input.user)}`,query:{reason:input.reason}}),"request")},{id:"user.sessions",summary:"List sign-in sessions, for one user or across the platform",permission:"ops:users:read",effect:"read",input:z30.object({user:opsArgs.user.optional(),active:z30.boolean().optional().describe("Only sessions that have not expired or been revoked"),limit:opsArgs.limit.max(200).default(50),cursor:opsArgs.cursor.optional(),reason:opsArgs.reason}),request:__name(input=>({method:"GET",path:"/sessions",query:compact({userId:input.user,active:input.active,limit:input.limit,cursor:input.cursor,reason:input.reason})}),"request")},{id:"user.session.revoke",summary:"Revoke one sign-in session",permission:"ops:users:write",effect:"write",risk:"low",humanOnly:!0,input:z30.object({session:z30.string().trim().min(1).max(255).describe("Session id")})}]}});import{z as z31}from"zod";var evidence,versions,detectionQueries,watchCommands,init_watch=__esm({"../../packages/api-contracts/dist/esm/ops/commands/watch.js"(){"use strict";init_ops();init_args();init_types();init_shared();evidence=z31.array(z31.record(z31.string(),z31.unknown())).max(100),versions=z31.array(z31.string().trim().min(1).max(120)).max(100),detectionQueries=z31.array(z31.string().trim().min(1).max(2e3)).max(50),watchCommands=[{id:"watch.list",summary:"List watched projects and why each is watched",permission:"ops:customers:read",effect:"read",input:z31.object({}),request:__name(()=>({method:"GET",path:"/customers"}),"request")},{id:"watch.add",summary:"Watch a project (or update why it is watched)",permission:"ops:customers:write",effect:"write",risk:"low",input:z31.object({project:opsArgs.project,importance:z31.string().trim().min(1).max(1e3).describe("Why this project is operationally important"),owner:opsArgs.user.optional().describe("Owner user id"),framework:z31.string().trim().max(120).optional(),packageManager:z31.enum(["npm","pnpm","yarn","bun"]).optional(),notes:z31.string().trim().max(5e3).optional()})},{id:"watch.remove",summary:"Stop watching a project",permission:"ops:customers:write",effect:"write",risk:"low",input:z31.object({project:opsArgs.project})},{id:"watch.validations.list",summary:"List validation runs recorded for a watched project",permission:"ops:validations:read",effect:"read",input:z31.object({project:opsArgs.project}),request:__name(input=>({method:"GET",path:`/customers/${seg(input.project)}/validations`}),"request")},{id:"watch.validations.record",summary:"Record the outcome of validating a release, migration or change against a watched project",permission:"ops:validations:write",effect:"write",risk:"low",input:z31.object({project:opsArgs.project,change:z31.string().trim().min(1).max(500).describe("Release, migration or change that was validated"),outcome:OpsValidationOutcomeSchema,summary:z31.string().trim().min(1).max(1e4),evidence:evidence.default([])}),cli:{fileArgs:["evidence"]}},{id:"watch.investigations.list",summary:"List open and recent investigations",permission:"ops:investigations:read",effect:"read",input:z31.object({}),request:__name(()=>({method:"GET",path:"/investigations"}),"request")},{id:"watch.investigations.create",summary:"Open an investigation into a problem on a project",permission:"ops:investigations:write",effect:"write",risk:"low",input:z31.object({project:opsArgs.project,title:z31.string().trim().min(1).max(240),userReport:z31.string().trim().max(1e4).optional().describe("The customer's own words")})},{id:"watch.investigations.update",summary:"Update an investigation's status, hypothesis, outcome or evidence",permission:"ops:investigations:write",effect:"write",risk:"low",input:z31.object({investigation:z31.uuid().describe("Investigation id"),status:OpsInvestigationStatusSchema.optional(),hypothesis:z31.string().trim().max(1e4).optional(),outcome:z31.string().trim().max(1e4).optional(),evidence:evidence.optional()}),cli:{fileArgs:["evidence"]}},{id:"watch.known-issues.list",summary:"List known issues and their detection queries",permission:"ops:known-issues:read",effect:"read",input:z31.object({}),request:__name(()=>({method:"GET",path:"/known-issues"}),"request")},{id:"watch.known-issues.create",summary:"Record a known issue with how to detect it and any workaround",permission:"ops:known-issues:write",effect:"write",risk:"low",input:z31.object({fingerprint:z31.string().trim().min(1).max(240),title:z31.string().trim().min(1).max(240),description:z31.string().trim().min(1).max(1e4),affectedVersions:versions.default([]),detectionQueries:detectionQueries.default([]),fixedVersion:z31.string().trim().min(1).max(64).optional(),workaround:z31.string().trim().min(1).max(1e4).optional(),status:OpsKnownIssueStatusSchema.default("open")}),cli:{fileArgs:["detectionQueries"]}},{id:"watch.known-issues.update",summary:"Update a known issue",permission:"ops:known-issues:write",effect:"write",risk:"low",input:z31.object({knownIssue:z31.uuid().describe("Known issue id"),title:z31.string().trim().min(1).max(240).optional(),description:z31.string().trim().min(1).max(1e4).optional(),affectedVersions:versions.optional(),detectionQueries:detectionQueries.optional(),fixedVersion:z31.string().trim().min(1).max(64).optional(),workaround:z31.string().trim().min(1).max(1e4).optional(),status:OpsKnownIssueStatusSchema.optional()}),cli:{fileArgs:["detectionQueries"]}}]}});var OPS_COMMANDS,BY_ID,OPS_OPERATION_IDS,init_commands=__esm({"../../packages/api-contracts/dist/esm/ops/commands/index.js"(){"use strict";init_agent();init_agent();init_assistant();init_billing();init_core();init_health();init_merge();init_monitor();init_monitor();init_notify();init_observe();init_org();init_platform();init_platform();init_project();init_support();init_user();init_watch();OPS_COMMANDS=[...coreCommands,...projectCommands,...orgCommands,...userCommands,...mergeCommands,...agentCommands,...healthCommands,...billingCommands,...platformCommands,...observeCommands,...supportCommands,...watchCommands,...monitorCommands,...notifyCommands,...assistantCommands],BY_ID=new Map(OPS_COMMANDS.map(command=>[command.id,command])),OPS_OPERATION_IDS=OPS_COMMANDS.filter(command=>command.effect==="write").map(command=>command.id)}});import{z as z32}from"zod";function getChatFormOptionLabels(body){switch(body.type){case"choices":return body.actions.map(action=>action.label);case"cards":return body.items.map(item=>item.title);case"table":return body.rows.map(row2=>row2.cells[0]??"");case"assets":return body.items.map(item=>item.label??item.alt);case"capabilities":return body.items.map(item=>item.label);case"text":return[]}}var BlockSayActionSchema,BlockActionSchema,BlockAppActionSchema,BlockBaseSchema,ChoicesBlockSchema,TableRowTargetSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,AgentBlockSchema,ChatDisplayBlockSchema,TextBlockSchema,ChatFormStepIdSchema,CapabilityRequestSchema,CapabilitiesBlockSchema,ChatFormBodySchema,ChatFormStepSchema,CHAT_FORM_INTERNAL_NOTE_MAX,FormBlockSchema,ChatBlockSchema,ChatBlockToolInputSchema,ChatFormAnswerItemSchema,ChatFormAnswerMetadataSchema,QUESTION_FORM_CONTRACT_VERSION,QuestionFormSnapshotSchema,QuestionFormAnswerSnapshotSchema,ChatFormResponseSchema,init_chat_block=__esm({"../../packages/api-contracts/dist/esm/types/chat-block.js"(){"use strict";BlockSayActionSchema=z32.object({kind:z32.literal("say"),label:z32.string().trim().min(1).max(40,"Button labels must be 40 characters or fewer."),description:z32.string().min(1).max(240).optional(),message:z32.string().trim().min(1,"Every say button needs the sentence the user is saying by clicking.").max(2e3),style:z32.enum(["primary","default","ghost"]).optional()}),BlockActionSchema=BlockSayActionSchema,BlockAppActionSchema=z32.discriminatedUnion("command",[z32.object({kind:z32.literal("app"),command:z32.literal("publish")}).strict(),z32.object({kind:z32.literal("app"),command:z32.literal("connect"),integrationKey:z32.string().trim().min(1).max(80)}).strict()]),BlockBaseSchema=z32.object({fallback:z32.string().trim().min(1,"Every block needs a fallback line for clients that cannot render it.").max(500),title:z32.string().min(1).max(80).optional()}),ChoicesBlockSchema=BlockBaseSchema.extend({type:z32.literal("choices"),text:z32.string().max(500).optional(),actions:z32.array(BlockActionSchema).min(2,"A choices block needs 2 to 4 buttons.").max(4,"A choices block needs 2 to 4 buttons.")}),TableRowTargetSchema=z32.discriminatedUnion("kind",[z32.object({kind:z32.literal("entry"),collection:z32.string().min(1).max(80),entryId:z32.string().min(1).max(120)}),z32.object({kind:z32.literal("asset"),assetId:z32.string().min(1).max(120)}),z32.object({kind:z32.literal("url"),url:z32.url({protocol:/^https$/}).max(2e3)}),z32.object({kind:z32.literal("routine"),routineId:z32.string().min(1).max(120)})]),TableBlockSchema=BlockBaseSchema.extend({type:z32.literal("table"),columns:z32.array(z32.object({label:z32.string().min(1).max(24)})).min(2).max(4),rows:z32.array(z32.object({cells:z32.array(z32.string().max(80)).min(2).max(4),target:TableRowTargetSchema.optional()})).min(1).max(8)}).superRefine((table,ctx)=>{table.rows.forEach((row2,index)=>{row2.cells.length!==table.columns.length&&ctx.addIssue({code:"custom",path:["rows",index,"cells"],message:`Every table row needs exactly ${table.columns.length} cells, one for each column.`})})}),CardsBlockSchema=BlockBaseSchema.extend({type:z32.literal("cards"),layout:z32.enum(["rail","stack"]).optional(),items:z32.array(z32.object({title:z32.string().min(1).max(60),subtitle:z32.string().min(1).max(120).optional(),imageUrl:z32.url({protocol:/^https$/}).max(2e3).optional(),action:BlockSayActionSchema.optional()})).min(2).max(6)}),EntryBlockSchema=BlockBaseSchema.extend({type:z32.literal("entry"),label:z32.string().min(1).max(80),collection:z32.string().min(1).max(80),entryId:z32.string().min(1).max(120),path:z32.string().min(1).max(120).optional()}),AssetsBlockSchema=BlockBaseSchema.extend({type:z32.literal("assets"),items:z32.array(z32.object({url:z32.url({protocol:/^https$/}).max(2e3),alt:z32.string().min(1).max(120),label:z32.string().min(1).max(60).optional()})).min(1).max(6)}),CalloutBlockSchema=BlockBaseSchema.extend({type:z32.literal("callout"),title:z32.string().min(1).max(80),text:z32.string().min(1).max(240),action:BlockAppActionSchema}).strict(),StatBlockSchema=BlockBaseSchema.extend({type:z32.literal("stat"),items:z32.array(z32.object({label:z32.string().min(1).max(24),value:z32.string().min(1).max(16),delta:z32.string().min(1).max(12).optional(),tone:z32.enum(["up","down","flat"]).optional()})).min(1).max(4)}),ChartBlockSchema=BlockBaseSchema.extend({type:z32.literal("chart"),unit:z32.string().min(1).max(12).optional(),points:z32.array(z32.object({label:z32.string().min(1).max(12),value:z32.number().finite().min(0).max(1e9)})).min(2).max(12)}),AgentBlockSchema=BlockBaseSchema.extend({type:z32.literal("agent"),agentId:z32.string().uuid(),view:z32.enum(["compact","full"]).optional()}),ChatDisplayBlockSchema=z32.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema]),TextBlockSchema=BlockBaseSchema.extend({type:z32.literal("text"),placeholder:z32.string().min(1).max(120).optional(),multiline:z32.boolean().optional()}).strict(),ChatFormStepIdSchema=z32.string().regex(/^[a-z0-9][a-z0-9_-]{0,39}$/,"Step ids are lowercase letters, digits, hyphen, or underscore (max 40)."),CapabilityRequestSchema=z32.object({id:ChatFormStepIdSchema,token:z32.string().regex(/^[a-z][a-z0-9_]*:[a-z][a-z0-9_]*(?::[a-z][a-z0-9_]*)?$/,"Capability tokens are verb:noun[:qualifier]."),label:z32.string().trim().min(1).max(60),reason:z32.string().trim().min(1).max(240)}).strict(),CapabilitiesBlockSchema=BlockBaseSchema.extend({type:z32.literal("capabilities"),items:z32.array(CapabilityRequestSchema).min(1).max(6)}).strict().superRefine((block,ctx)=>{let duplicate=__name(values=>new Set(values).size!==values.length,"duplicate");duplicate(block.items.map(item=>item.id))&&ctx.addIssue({code:"custom",path:["items"],message:"Every capability request needs its own id."}),duplicate(block.items.map(item=>item.token))&&ctx.addIssue({code:"custom",path:["items"],message:"Ask for each capability token once."}),duplicate(block.items.map(item=>item.label))&&ctx.addIssue({code:"custom",path:["items"],message:"Every capability request needs a distinct label."})}),ChatFormBodySchema=z32.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,AssetsBlockSchema,TextBlockSchema,CapabilitiesBlockSchema]);__name(getChatFormOptionLabels,"getChatFormOptionLabels");ChatFormStepSchema=z32.object({id:ChatFormStepIdSchema.optional(),question:z32.string().min(1).max(500),header:z32.string().min(1).max(25),body:ChatFormBodySchema,multiSelect:z32.boolean().optional(),recommended:z32.string().min(1).max(80).optional()}).superRefine((step,ctx)=>{let labels2=getChatFormOptionLabels(step.body);labels2.some(label=>!label.trim())&&ctx.addIssue({code:"custom",path:["body"],message:"Every form option needs a visible label."}),new Set(labels2).size!==labels2.length&&ctx.addIssue({code:"custom",path:["body"],message:"Every form option needs a unique label."}),step.recommended&&!labels2.includes(step.recommended)&&ctx.addIssue({code:"custom",path:["recommended"],message:"The recommended option must match a visible option label."}),step.body.type==="capabilities"&&step.multiSelect===!1&&ctx.addIssue({code:"custom",path:["multiSelect"],message:"A capabilities step is always multi-select: selected is approved, unselected is denied."})}).transform(step=>({...step,multiSelect:step.multiSelect??step.body.type==="capabilities"})),CHAT_FORM_INTERNAL_NOTE_MAX=1e3,FormBlockSchema=BlockBaseSchema.extend({type:z32.literal("form"),steps:z32.array(ChatFormStepSchema).min(1).max(4),internalNote:z32.string().trim().min(1).max(CHAT_FORM_INTERNAL_NOTE_MAX).optional()}),ChatBlockSchema=z32.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,AgentBlockSchema,FormBlockSchema]),ChatBlockToolInputSchema=z32.object({block:ChatBlockSchema}),ChatFormAnswerItemSchema=z32.object({stepId:ChatFormStepIdSchema.optional(),header:z32.string().min(1).max(25),question:z32.string().min(1).max(500),answer:z32.string().min(1),selectedLabels:z32.array(z32.string().min(1).max(120)).max(8),freeText:z32.string(),skipped:z32.boolean()}),ChatFormAnswerMetadataSchema=z32.object({toolCallId:z32.string().max(255).optional(),shortTitle:z32.string().max(80).optional(),questions:z32.array(ChatFormAnswerItemSchema).max(4)}),QUESTION_FORM_CONTRACT_VERSION=1,QuestionFormSnapshotSchema=z32.object({version:z32.literal(QUESTION_FORM_CONTRACT_VERSION),block:FormBlockSchema}).strict(),QuestionFormAnswerSnapshotSchema=z32.object({version:z32.literal(QUESTION_FORM_CONTRACT_VERSION),answer:ChatFormAnswerMetadataSchema}).strict(),ChatFormResponseSchema=ChatFormAnswerMetadataSchema.extend({toolCallId:z32.string().min(1).max(255),partial:z32.boolean().optional()})}});import{z as z33}from"zod";var AdminTargetSchema,AdminToneSchema,AdminStatusSchema,AdminLinkSchema,AdminActionSchema,BlockBaseSchema2,AdminRecordBlockSchema,AdminCardsBlockSchema,AdminTableBlockSchema,AdminTimelineBlockSchema,AdminStatsBlockSchema,AdminExcerptBlockSchema,AdminMediaBlockSchema,AdminActionsBlockSchema,AdminHandoffBlockSchema,AdminChatBlockSchema,AdminChatBlockToolInputSchema,init_admin_chat_block=__esm({"../../packages/api-contracts/dist/esm/types/admin-chat-block.js"(){"use strict";init_chat_block();AdminTargetSchema=z33.union([z33.string().regex(/^\/(?!\/)[^\s]*$/,"Admin paths start with a single slash, e.g. /projects/<id>.").max(500),z33.url({protocol:/^https$/}).max(2e3)]),AdminToneSchema=z33.enum(["ok","warn","bad","neutral"]),AdminStatusSchema=z33.object({label:z33.string().trim().min(1).max(24),tone:AdminToneSchema}),AdminLinkSchema=z33.object({label:z33.string().trim().min(1).max(24),target:AdminTargetSchema}),AdminActionSchema=z33.discriminatedUnion("kind",[BlockSayActionSchema,z33.object({kind:z33.literal("open"),label:z33.string().trim().min(1).max(32),target:AdminTargetSchema}).strict(),z33.object({kind:z33.literal("op"),label:z33.string().trim().min(1).max(32),operation:z33.string().min(1).max(80),input:z33.record(z33.string(),z33.unknown())}).strict(),z33.object({kind:z33.literal("impersonate"),label:z33.string().trim().min(1).max(32),userId:z33.string().min(1).max(120)}).strict(),z33.object({kind:z33.literal("studio"),label:z33.string().trim().min(1).max(32),projectId:z33.string().min(1).max(120)}).strict()]),BlockBaseSchema2=z33.object({fallback:z33.string().trim().min(1,"Every block needs a fallback line for clients that cannot render it.").max(500),title:z33.string().min(1).max(80).optional()}),AdminRecordBlockSchema=BlockBaseSchema2.extend({type:z33.literal("record"),kind:z33.string().trim().min(1).max(24),name:z33.string().trim().min(1).max(80),id:z33.string().min(1).max(120).optional(),status:AdminStatusSchema.optional(),fields:z33.array(z33.object({label:z33.string().trim().min(1).max(24),value:z33.string().min(1).max(80)})).max(4,"A record shows at most 4 fields.").optional(),links:z33.array(AdminLinkSchema).max(2,"A record shows at most 2 links.").optional(),actions:z33.array(AdminActionSchema).max(3).optional()}),AdminCardsBlockSchema=BlockBaseSchema2.extend({type:z33.literal("cards"),items:z33.array(z33.object({name:z33.string().trim().min(1).max(60),subtitle:z33.string().min(1).max(80).optional(),status:AdminStatusSchema.optional(),imageUrl:z33.url({protocol:/^https$/}).max(2e3).optional(),target:AdminTargetSchema.optional()})).min(2).max(6)}),AdminTableBlockSchema=BlockBaseSchema2.extend({type:z33.literal("table"),columns:z33.array(z33.object({label:z33.string().min(1).max(24)})).min(2).max(3,"A table shows at most 3 columns."),rows:z33.array(z33.object({cells:z33.array(z33.string().max(80)).min(2).max(3),tone:AdminToneSchema.optional(),target:AdminTargetSchema.optional()})).min(1).max(8)}).superRefine((table,ctx)=>{table.rows.forEach((row2,index)=>{row2.cells.length!==table.columns.length&&ctx.addIssue({code:"custom",path:["rows",index,"cells"],message:`Every table row needs exactly ${table.columns.length} cells, one for each column.`})})}),AdminTimelineBlockSchema=BlockBaseSchema2.extend({type:z33.literal("timeline"),events:z33.array(z33.object({at:z33.string().trim().min(1).max(16),label:z33.string().trim().min(1).max(80),detail:z33.string().min(1).max(80).optional(),tone:AdminToneSchema,target:AdminTargetSchema.optional()})).min(2).max(6)}),AdminStatsBlockSchema=BlockBaseSchema2.extend({type:z33.literal("stats"),items:z33.array(z33.object({label:z33.string().min(1).max(24),value:z33.string().min(1).max(16),delta:z33.string().min(1).max(12).optional()})).min(1).max(4)}),AdminExcerptBlockSchema=BlockBaseSchema2.extend({type:z33.literal("excerpt"),source:z33.string().trim().min(1).max(60),link:AdminTargetSchema.optional(),content:z33.discriminatedUnion("kind",[z33.object({kind:z33.literal("lines"),lines:z33.array(z33.object({text:z33.string().max(200),highlight:z33.boolean().optional()})).min(1).max(5,"An excerpt shows at most 5 lines.")}),z33.object({kind:z33.literal("message"),author:z33.string().trim().min(1).max(60),at:z33.string().max(24).optional(),text:z33.string().trim().min(1).max(600)})])}),AdminMediaBlockSchema=BlockBaseSchema2.extend({type:z33.literal("media"),items:z33.array(z33.object({url:z33.url({protocol:/^https$/}).max(2e3),alt:z33.string().min(1).max(120),label:z33.string().min(1).max(60).optional()})).min(1).max(6)}),AdminActionsBlockSchema=BlockBaseSchema2.extend({type:z33.literal("actions"),actions:z33.array(AdminActionSchema).min(1).max(3)}),AdminHandoffBlockSchema=BlockBaseSchema2.extend({type:z33.literal("handoff"),prompt:z33.string().trim().min(1).max(4e3)}),AdminChatBlockSchema=z33.discriminatedUnion("type",[AdminRecordBlockSchema,AdminCardsBlockSchema,AdminTableBlockSchema,AdminTimelineBlockSchema,AdminStatsBlockSchema,ChartBlockSchema,AdminExcerptBlockSchema,AdminMediaBlockSchema,ChoicesBlockSchema,AdminActionsBlockSchema,FormBlockSchema,AdminHandoffBlockSchema]),AdminChatBlockToolInputSchema=z33.object({block:AdminChatBlockSchema})}});import{z as z34}from"zod";var CHAT_PORTRAIT_SHAPES,CHAT_PORTRAIT_EYES,CHAT_PORTRAIT_MOUTHS,CHAT_PORTRAIT_COLORS,ChatPortraitSchema,init_chat_portrait=__esm({"../../packages/api-contracts/dist/esm/types/chat-portrait.js"(){"use strict";CHAT_PORTRAIT_SHAPES=["pebble","bean","cloud","drop","potato","mochi","bun","pillow"],CHAT_PORTRAIT_EYES=["dot","caret","ring","shut","small","squint"],CHAT_PORTRAIT_MOUTHS=["smile","grin","o","w"],CHAT_PORTRAIT_COLORS=["red","orange","amber","lime","emerald","teal","sky","blue","indigo","violet","fuchsia","pink"],ChatPortraitSchema=z34.object({shape:z34.enum(CHAT_PORTRAIT_SHAPES),eyes:z34.enum(CHAT_PORTRAIT_EYES),mouth:z34.enum(CHAT_PORTRAIT_MOUTHS),color:z34.enum(CHAT_PORTRAIT_COLORS)})}});import{z as z35}from"zod";function isIanaTimezone(value){try{return new Intl.DateTimeFormat("en-US",{timeZone:value}),!0}catch{return!1}}var ChatRoutineCronSchema,ChatRoutineTimezoneSchema,ChatRoutineScheduleSchema,ChatRoutineNameSchema,ChatRoutineInstructionsSchema,ChatRoutineDescriptionSchema,ChatRoutineModelSchema,ChatRoutineWaitMinutesSchema,ChatRoutineEventTriggerDTOSchema,ChatRoutineEventTriggerInputSchema,ChatRoutineTriggersDTOSchema,ChatRoutineRunOutcomeSchema,ChatRoutineReportSchema,ChatRoutineDTOSchema,ChatRoutineListDTOSchema,AgentHoursUsageDTOSchema,ChatRoutineCreateSchema,ChatRoutineUpdateSchema,ChatRoutineRefusalReasonSchema,ChatRoutineRefusalDTOSchema,ChatRoutineRunStatusSchema,ChatRoutineRunTriggerSchema,ChatRoutineRunStartedBySchema,ChatRoutineRunDTOSchema,ChatRoutineRunListDTOSchema,ChatRoutineRunRequestSchema,ChatRoutineRunOutcomeDTOSchema,init_chat_routine_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat-routine.dto.js"(){"use strict";ChatRoutineCronSchema=z35.string().trim().max(64).regex(/^\S+(?: \S+){4}$/,"A schedule is a five-field cron expression");__name(isIanaTimezone,"isIanaTimezone");ChatRoutineTimezoneSchema=z35.string().trim().min(1).max(64).refine(isIanaTimezone,"Unknown timezone"),ChatRoutineScheduleSchema=z35.object({cron:ChatRoutineCronSchema,timezone:ChatRoutineTimezoneSchema}),ChatRoutineNameSchema=z35.string().trim().min(1).max(120),ChatRoutineInstructionsSchema=z35.string().trim().min(1).max(2e4),ChatRoutineDescriptionSchema=z35.string().trim().min(1).max(500),ChatRoutineModelSchema=z35.string().trim().min(1).max(120),ChatRoutineWaitMinutesSchema=z35.number().int().min(0).max(120),ChatRoutineEventTriggerDTOSchema=z35.object({text:z35.string(),title:z35.string(),explanation:z35.string(),watches:z35.array(z35.object({url:z35.string(),health:z35.enum(["ok","needs_repair","blocked","unstable"]),lastCheckedAt:z35.string().nullable()})).optional()}),ChatRoutineEventTriggerInputSchema=z35.object({text:z35.string().trim().min(1).max(500)}),ChatRoutineTriggersDTOSchema=z35.object({manual:z35.literal(!0),schedule:ChatRoutineScheduleSchema.nullable(),event:ChatRoutineEventTriggerDTOSchema.nullable()}),ChatRoutineRunOutcomeSchema=z35.enum(["quiet","reported","decision","incomplete","failed","running"]),ChatRoutineReportSchema=z35.object({message:z35.string().trim().min(1).max(2e4),decision:z35.boolean().optional(),incomplete:z35.boolean().optional()}).refine(report2=>!(report2.decision===!0&&report2.incomplete===!0),{message:"A run that could not check asks for no decision: set incomplete or decision, not both."}),ChatRoutineDTOSchema=z35.object({id:z35.string().uuid(),threadId:z35.string().uuid(),runThreadId:z35.string().uuid(),name:z35.string(),description:z35.string().nullable(),instructions:z35.string(),template:z35.object({key:z35.string()}).nullable(),triggers:ChatRoutineTriggersDTOSchema,model:z35.string(),modelIsDefault:z35.boolean(),waitMinutes:ChatRoutineWaitMinutesSchema,paused:z35.boolean(),nextRunAt:z35.string().nullable(),lastRunAt:z35.string().nullable(),lastOutcome:ChatRoutineRunOutcomeSchema.nullable(),outOfAgentHoursUntil:z35.string().nullable(),createdAt:z35.string(),updatedAt:z35.string()}),ChatRoutineListDTOSchema=z35.object({routines:z35.array(ChatRoutineDTOSchema)}),AgentHoursUsageDTOSchema=z35.object({usedMs:z35.number().int().min(0),includedMs:z35.number().int().min(0),periodStart:z35.string(),periodEnd:z35.string(),stopsAtIncluded:z35.boolean(),canStart:z35.boolean(),canPayOverage:z35.boolean(),overageRateMicrosPerHour:z35.number().int().nullable(),billedMs:z35.number().int().min(0),billedMicros:z35.number().int().min(0)}),ChatRoutineCreateSchema=z35.object({name:ChatRoutineNameSchema,description:ChatRoutineDescriptionSchema.nullable().optional(),instructions:ChatRoutineInstructionsSchema,schedule:ChatRoutineScheduleSchema.nullable().optional(),event:ChatRoutineEventTriggerInputSchema.nullable().optional(),model:ChatRoutineModelSchema.nullable().optional(),waitMinutes:ChatRoutineWaitMinutesSchema.optional()}),ChatRoutineUpdateSchema=z35.object({name:ChatRoutineNameSchema,description:ChatRoutineDescriptionSchema.nullable(),instructions:ChatRoutineInstructionsSchema,schedule:ChatRoutineScheduleSchema.nullable(),event:ChatRoutineEventTriggerInputSchema.nullable(),model:ChatRoutineModelSchema.nullable(),waitMinutes:ChatRoutineWaitMinutesSchema,paused:z35.boolean()}).partial().refine(update=>Object.values(update).some(value=>value!==void 0),"Change at least one field"),ChatRoutineRefusalReasonSchema=z35.enum(["routine_cadence_too_frequent","routine_schedule_invalid","routine_owner_not_agent","routine_trigger_unsupported","routine_model_unknown","routine_needs_pro","routine_is_default"]),ChatRoutineRefusalDTOSchema=z35.object({message:z35.string(),reason:ChatRoutineRefusalReasonSchema}),ChatRoutineRunStatusSchema=z35.enum(["queued","running","finished","failed","cancelled"]),ChatRoutineRunTriggerSchema=z35.enum(["schedule","hand","event"]),ChatRoutineRunStartedBySchema=z35.object({kind:z35.enum(["person","agent"]),name:z35.string().nullable()}),ChatRoutineRunDTOSchema=z35.object({messageId:z35.string().uuid(),invocationId:z35.string().uuid().nullable(),startedAt:z35.string(),trigger:ChatRoutineRunTriggerSchema,startedBy:ChatRoutineRunStartedBySchema.nullable(),status:ChatRoutineRunStatusSchema,outcome:ChatRoutineRunOutcomeSchema.nullable(),summary:z35.string().nullable(),events:z35.number().int().min(1),durationMs:z35.number().int().min(0).nullable(),credits:z35.number().int().min(0).nullable()}),ChatRoutineRunListDTOSchema=z35.object({runs:z35.array(ChatRoutineRunDTOSchema)}),ChatRoutineRunRequestSchema=z35.object({message:z35.string().trim().min(1).max(2e4).optional()}),ChatRoutineRunOutcomeDTOSchema=z35.object({kind:z35.enum(["published","queued","replay","streaming","busy","refused"]),messageId:z35.string().uuid().nullable()})}});import{z as z36}from"zod";var PROJECT_CHAT_MANUAL_MODEL_IDS,ProjectChatManualModelIdSchema,ProjectDTOSchema,ProjectDTO,UpdateProjectSettingsRequestSchema,ProjectWithPlanDTOSchema,ProjectWithPlanDTO,ProjectSummaryDTOSchema,ProjectSummaryDTO,ProjectUserDTOSchema,ProjectUserDTO,ProjectFileDTOSchema,ProjectFileDTO,ProjectChatMessageRole,ProjectMessageBaseSchema,MessageUserMetadataSchema,ProjectMessagePublicDTOSchema,ProjectMessagePublicDTO,ProjectMessageDTOSchema,ProjectVersionDTOSchema,ProjectVersionDTO,ProjectHistoryUsageDTOSchema,ProjectVersionPageDTOSchema,ProjectVersionPageDTO,ProjectHistorySummaryDTOSchema,ProjectHistorySummaryDTO,ProjectDocumentContentDTOSchema,ProjectDocumentContentDTO,ProjectListResponseSchema,ProjectVersionResponseSchema,ProjectVersionPageResponseSchema,ProjectHistorySummaryResponseSchema,VersionMutationResponseSchema,PublishUpgradeRequiredSchema,ProjectLatestPublicationAttemptSchema,ProjectPublicationStateDTOSchema,ProjectPublicationStateDTO,PublishProjectRequestSchema,PublicationMutationDTOSchema,PublicationMutationDTO,ProjectPublicationStateResponseSchema,PublicationMutationResponseSchema,ProjectResponseSchema,ProjectWithPlanResponseSchema,init_project_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project.dto.js"(){"use strict";init_chat_block();init_common();init_env();init_create_dto();init_response();PROJECT_CHAT_MANUAL_MODEL_IDS=["anthropic/claude-opus-5.5","anthropic/claude-opus-5","anthropic/claude-sonnet-5.5","anthropic/claude-sonnet-5","anthropic/claude-fable-5","anthropic/claude-haiku-5.5","openai/gpt-5.6-luna","openai/gpt-5.6-terra","openai/gpt-5.6-sol","openai/gpt-6-astra","openai/gpt-6.1-sol","openai/gpt-6-sol","openai/gpt-6-luna","xai/grok-4.6","google/gemini-3.1-pro-preview","google/gemini-3.8-flash","google/gemini-3.7-flash","google/gemini-3.6-flash","google/gemini-3.5-flash-lite","zai/glm-5.2","zai/glm-5.3-flash","deepseek/deepseek-v4-pro","minimax/minimax-m3","moonshotai/kimi-k3"],ProjectChatManualModelIdSchema=z36.enum(PROJECT_CHAT_MANUAL_MODEL_IDS),ProjectDTOSchema=BaseEntitySchema.extend({name:z36.string(),displayName:z36.string().nullable(),subdomain:z36.string().nullable().optional(),subdomainUpdatedAt:z36.date().nullable().optional(),organizationId:z36.string().nullable(),createdBy:z36.string().nullable(),defaultBranch:BranchSchema.default(DEFAULT_BRANCH),productionSourceBranch:BranchSchema.default(DEFAULT_BRANCH),enabledChatModels:z36.array(ProjectChatManualModelIdSchema).nullable().default(null),status:ProjectStatusSchema,creationStatus:z36.string(),thumbnailUrl:z36.string().nullable(),publishedThumbnailUrl:z36.string().nullable(),category:z36.string().nullable(),snapshotUrl:z36.string().startsWith("/").optional(),appUrl:z36.string().nullable(),lastPublishedAt:z36.coerce.date(),databaseQuotaIncidentId:z36.uuid().nullable().optional(),databaseQuotaLastObservedAt:z36.coerce.date().nullable().optional()}),ProjectDTO=createDTO(ProjectDTOSchema),UpdateProjectSettingsRequestSchema=z36.object({name:z36.string().optional(),enabledChatModels:z36.array(ProjectChatManualModelIdSchema).optional(),productionSourceBranch:BranchSchema.optional(),syncConfig:z36.boolean().optional()}).strict(),ProjectWithPlanDTOSchema=ProjectDTOSchema.extend({planTier:z36.string().nullable()}),ProjectWithPlanDTO=createDTO(ProjectWithPlanDTOSchema),ProjectSummaryDTOSchema=z36.object({id:z36.uuid(),name:z36.string(),displayName:z36.string().nullable(),thumbnailUrl:z36.string().nullable(),category:z36.string().nullable()}),ProjectSummaryDTO=createDTO(ProjectSummaryDTOSchema),ProjectUserDTOSchema=z36.object({id:z36.string(),name:z36.string(),avatar:z36.string().nullable(),color:z36.object({bg:z36.string(),text:z36.string()})}),ProjectUserDTO=createDTO(ProjectUserDTOSchema),ProjectFileDTOSchema=z36.object({path:z36.string(),content:z36.string()}),ProjectFileDTO=createDTO(ProjectFileDTOSchema),ProjectChatMessageRole=z36.enum(["user","assistant","system"]),ProjectMessageBaseSchema=z36.object({id:z36.string(),messageId:z36.string(),versionId:z36.string().nullable(),role:ProjectChatMessageRole,parts:z36.array(z36.any()),createdAt:z36.coerce.date()}),MessageUserMetadataSchema=z36.object({id:z36.string(),name:z36.string().nullable().optional(),image:z36.string().nullable().optional()}).nullable().optional(),ProjectMessagePublicDTOSchema=ProjectMessageBaseSchema.extend({credits:z36.number(),metadata:z36.object({user:MessageUserMetadataSchema,changeManifest:z36.array(z36.any()).optional(),questionAnswer:ChatFormAnswerMetadataSchema.optional()}).nullable().optional()}),ProjectMessagePublicDTO=createDTO(ProjectMessagePublicDTOSchema),ProjectMessageDTOSchema=ProjectMessagePublicDTOSchema,ProjectVersionDTOSchema=z36.object({versionId:z36.uuid(),commitHash:z36.string(),name:z36.string(),description:z36.string().nullable(),kind:z36.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),createdAt:CommonSchemas.timestamp,expiresAt:CommonSchemas.timestamp}),ProjectVersionDTO=createDTO(ProjectVersionDTOSchema),ProjectHistoryUsageDTOSchema=z36.object({versionCount:z36.number().int().nonnegative(),snapshotBytes:z36.number().int().nonnegative()}),ProjectVersionPageDTOSchema=createCursorPageDataSchema(ProjectVersionDTOSchema),ProjectVersionPageDTO=createDTO(ProjectVersionPageDTOSchema),ProjectHistorySummaryDTOSchema=z36.object({usage:ProjectHistoryUsageDTOSchema,retentionDays:z36.number().int().positive()}),ProjectHistorySummaryDTO=createDTO(ProjectHistorySummaryDTOSchema),ProjectDocumentContentDTOSchema=z36.object({content:z36.string()}),ProjectDocumentContentDTO=createDTO(ProjectDocumentContentDTOSchema),ProjectListResponseSchema=createResponseSchema(z36.array(ProjectDTOSchema)),ProjectVersionResponseSchema=createResponseSchema(ProjectVersionDTOSchema),ProjectVersionPageResponseSchema=createCursorPaginatedResponseSchema(ProjectVersionDTOSchema),ProjectHistorySummaryResponseSchema=createResponseSchema(ProjectHistorySummaryDTOSchema),VersionMutationResponseSchema=createResponseSchema(z36.object({success:z36.boolean(),message:z36.string().optional(),warning:z36.string().optional(),durationMs:z36.number().int().nonnegative().optional()})),PublishUpgradeRequiredSchema=z36.object({code:z36.literal("PUBLISH_UPGRADE_REQUIRED"),message:z36.string(),currentVersion:z36.number().int().positive(),targetVersion:z36.literal(4)}),ProjectLatestPublicationAttemptSchema=z36.object({publicationId:z36.uuid(),status:z36.enum(["queued","building","published","failed","canceled"]),failureCode:z36.string().nullable(),sourceBranch:z36.string(),createdAt:CommonSchemas.timestamp,finishedAt:CommonSchemas.timestamp.nullable()}),ProjectPublicationStateDTOSchema=z36.object({isPublished:z36.boolean(),publishedAt:CommonSchemas.timestamp.nullable(),publishedVersion:z36.string().nullable(),upgradeRequired:PublishUpgradeRequiredSchema.nullish(),hasActiveRelease:z36.boolean().optional(),latestAttempt:ProjectLatestPublicationAttemptSchema.nullish()}),ProjectPublicationStateDTO=createDTO(ProjectPublicationStateDTOSchema),PublishProjectRequestSchema=z36.object({label:z36.string().trim().min(1).max(120).optional(),notes:z36.string().max(2e4).optional()}).strict(),PublicationMutationDTOSchema=z36.object({success:z36.boolean(),message:z36.string().optional(),publishedAt:CommonSchemas.timestamp.optional(),firstPublish:z36.boolean(),publicationId:z36.string().optional(),url:z36.string().nullable().optional()}),PublicationMutationDTO=createDTO(PublicationMutationDTOSchema),ProjectPublicationStateResponseSchema=createResponseSchema(ProjectPublicationStateDTOSchema),PublicationMutationResponseSchema=createResponseSchema(PublicationMutationDTOSchema),ProjectResponseSchema=createResponseSchema(ProjectDTOSchema),ProjectWithPlanResponseSchema=createResponseSchema(ProjectWithPlanDTOSchema)}});import{z as z37}from"zod";var ChatMessageListDTOSchema,ChatMessagesPageDTOSchema,ChatLiveTurnDTOSchema,ChatLiveTurnStateDTOSchema,ChatLiveTurnStateDTO,ChatMessageAuthorDTOSchema,ChatThreadMessageDTOSchema,ChatQueuedMessageDTOSchema,ChatAttentionDTOSchema,ChatThreadMessagesPageDTOSchema,ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema,ChatNonStreamingOutcomeDTOSchema,ProjectChatKindSchema,ProjectChatCreatableKindSchema,ProjectChatRoutinesDTOSchema,ProjectChatDescriptionSchema,ProjectChatInstructionsSchema,ProjectChatDTOSchema,ProjectChatListDTOSchema,ProjectChatCreatedDTOSchema,ProjectChatTitleSchema,ProjectChatCreateSchema,ProjectChatUpdateSchema,ChatTemplateRoutineScheduleDTOSchema,ChatTemplateRoutineDTOSchema,ChatTemplateDTOSchema,ChatTemplateListDTOSchema,ProjectChatStateSchema,ChatMessageListResponseSchema,ChatMessagesPageResponseSchema,init_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat.dto.js"(){"use strict";init_chat_portrait();init_create_dto();init_response();init_chat_routine_dto();init_organization_features_dto();init_project_dto();ChatMessageListDTOSchema=z37.array(ProjectMessageDTOSchema),ChatMessagesPageDTOSchema=z37.object({items:z37.array(ProjectMessagePublicDTOSchema),nextCursor:z37.string().nullable()}),ChatLiveTurnDTOSchema=z37.object({invocationId:z37.string(),step:z37.enum(["preparing","working","compacting","merging"]),startedAt:z37.string(),continuesInvocationId:z37.string().nullable().optional()}),ChatLiveTurnStateDTOSchema=z37.object({threadId:z37.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable()}),ChatLiveTurnStateDTO=createDTO(ChatLiveTurnStateDTOSchema),ChatMessageAuthorDTOSchema=z37.object({kind:z37.enum(["person","agent","routine","system"]),id:z37.string().nullable()}),ChatThreadMessageDTOSchema=z37.object({id:z37.string(),role:z37.enum(["user","assistant"]),parts:z37.array(z37.unknown()),metadata:z37.record(z37.string(),z37.unknown()).nullable(),versionId:z37.string().nullable().optional(),createdAt:z37.date().transform(value=>value.toISOString()),providerMessageId:z37.string().nullable().optional(),author:ChatMessageAuthorDTOSchema,invocationId:z37.string().nullable().optional(),invocationStatus:z37.string().nullable().optional(),invocationTerminalReason:z37.string().nullable().optional()}),ChatQueuedMessageDTOSchema=z37.object({id:z37.string(),parts:z37.array(z37.unknown()),metadata:z37.record(z37.string(),z37.unknown()).nullable(),providerMessageId:z37.string().nullable().optional(),author:ChatMessageAuthorDTOSchema,failed:z37.boolean(),queuedAt:z37.date().transform(value=>value.toISOString())}),ChatAttentionDTOSchema=z37.object({type:z37.literal("merge_conflict"),merge:z37.object({mergeId:z37.string().uuid(),projectId:z37.string(),fromBranch:z37.string(),toBranch:z37.string()}),publishAfterMerge:z37.boolean()}),ChatThreadMessagesPageDTOSchema=z37.object({threadId:z37.string().nullable(),title:z37.string().nullable(),messages:z37.array(ChatThreadMessageDTOSchema),nextCursor:z37.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable().optional(),attention:ChatAttentionDTOSchema.nullable().optional(),queue:z37.array(ChatQueuedMessageDTOSchema).optional(),queuePaused:z37.boolean().optional(),queueWaitUntil:z37.string().nullable().optional()}),ChatReplayOutcomeDTOSchema=z37.object({kind:z37.literal("replay"),threadId:z37.string(),userMessageId:z37.string()}),ChatQueuedOutcomeDTOSchema=z37.object({kind:z37.literal("queued"),threadId:z37.string(),userMessageId:z37.string(),blockingRootId:z37.string().optional()}),ChatBusyOutcomeDTOSchema=z37.object({kind:z37.literal("busy"),threadId:z37.string(),userMessageId:z37.string(),blockingRootId:z37.string().optional()}),ChatRefusedOutcomeDTOSchema=z37.object({kind:z37.literal("refused"),threadId:z37.string(),userMessageId:z37.string(),refusedInvocationId:z37.string(),terminalReason:z37.string()}),ChatNonStreamingOutcomeDTOSchema=z37.discriminatedUnion("kind",[ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema]),ProjectChatKindSchema=z37.enum(["chat","agent","routine","task"]),ProjectChatCreatableKindSchema=z37.enum(["chat","agent"]),ProjectChatRoutinesDTOSchema=z37.object({quietRuns:z37.number().int().nonnegative(),since:z37.string().nullable(),lastOutcome:ChatRoutineRunOutcomeSchema.nullable(),lastRunAt:z37.string().nullable(),nextRunAt:z37.string().nullable(),wakesOnChanges:z37.boolean()}),ProjectChatDescriptionSchema=z37.string().trim().max(2e3),ProjectChatInstructionsSchema=z37.string().trim().max(8e3),ProjectChatDTOSchema=z37.object({id:z37.string().uuid(),kind:ProjectChatKindSchema,title:z37.string().nullable(),description:z37.string().nullable(),instructions:z37.string().nullable(),liveAt:z37.string().nullable(),template:z37.string().nullable(),parentThreadId:z37.string().uuid().nullable(),routines:ProjectChatRoutinesDTOSchema.nullable(),createdAt:z37.string(),lastMessageAt:z37.string().nullable(),preview:z37.string().nullable(),running:z37.boolean(),awaitingAnswer:z37.boolean(),unread:z37.boolean(),pinned:z37.boolean(),archived:z37.boolean(),muted:z37.boolean(),portrait:ChatPortraitSchema.nullable()}),ProjectChatListDTOSchema=z37.object({chats:z37.array(ProjectChatDTOSchema)}),ProjectChatCreatedDTOSchema=z37.object({id:z37.string().uuid()}),ProjectChatTitleSchema=z37.string().trim().min(1).max(120),ProjectChatCreateSchema=z37.object({id:z37.string().uuid(),portrait:ChatPortraitSchema,kind:ProjectChatCreatableKindSchema,title:ProjectChatTitleSchema,description:ProjectChatDescriptionSchema,template:z37.string().min(1).max(64),timezone:ChatRoutineTimezoneSchema,setup:z37.literal(!0),locale:z37.string().trim().min(2).max(16)}).partial().refine(create=>create.template===void 0||create.kind===void 0&&create.title===void 0&&create.description===void 0,"A template brings its own kind, title and description").refine(create=>create.setup===void 0||create.kind==="agent","Only an agent is set up in its chat"),ProjectChatUpdateSchema=z37.object({title:ProjectChatTitleSchema,description:ProjectChatDescriptionSchema,instructions:ProjectChatInstructionsSchema,portrait:ChatPortraitSchema}).partial().refine(update=>update.title!==void 0||update.description!==void 0||update.instructions!==void 0||update.portrait!==void 0,"Set a title, a description, instructions or a portrait"),ChatTemplateRoutineScheduleDTOSchema=z37.object({cron:z37.string()}),ChatTemplateRoutineDTOSchema=z37.object({name:z37.string(),description:z37.string(),instructions:z37.string(),schedule:ChatTemplateRoutineScheduleDTOSchema.nullable(),plans:z37.array(AgentPlanSchema)}),ChatTemplateDTOSchema=z37.object({id:z37.string(),name:z37.string(),summary:z37.string(),description:z37.string(),greeting:z37.string(),starters:z37.array(z37.string()),portrait:ChatPortraitSchema,plans:z37.array(AgentPlanSchema),routines:z37.array(ChatTemplateRoutineDTOSchema)}),ChatTemplateListDTOSchema=z37.object({templates:z37.array(ChatTemplateDTOSchema)}),ProjectChatStateSchema=z37.object({read:z37.boolean(),pinned:z37.boolean(),archived:z37.boolean(),muted:z37.boolean()}).partial().refine(state=>Object.keys(state).length>0,"Set at least one of read, pinned, archived or muted"),ChatMessageListResponseSchema=createResponseSchema(ChatMessageListDTOSchema),ChatMessagesPageResponseSchema=createResponseSchema(ChatMessagesPageDTOSchema)}});import{z as z38}from"zod";var ADMIN_ASSISTANT_BASE_PATH,ADMIN_ASSISTANT_PATHS,ADMIN_ASSISTANT_MESSAGE_MAX_CHARS,ADMIN_ASSISTANT_FORM_NOTE_MAX_CHARS,ADMIN_ASSISTANT_REQUEST_MAX_BYTES,AdminAssistantFormResponseSchema,AdminAssistantOutgoingMessageSchema,AdminAssistantSendRequestSchema,AdminAssistantSendOutcomeSchema,AdminAssistantStreamHeadSchema,AdminAssistantThreadSummarySchema,AdminAssistantThreadListQuerySchema,AdminAssistantThreadListResponseSchema,AdminAssistantThreadResponseSchema,AdminAssistantLiveTurnResponseSchema,AdminAssistantAbortResponseSchema,AdminAssistantThreadUpdateSchema,AdminAssistantThreadDeleteResponseSchema,init_admin_assistant=__esm({"../../packages/api-contracts/dist/esm/types/admin-assistant.js"(){"use strict";init_chat_dto();init_chat_block();ADMIN_ASSISTANT_BASE_PATH="/api/ops/assistant",ADMIN_ASSISTANT_PATHS={chat:`${ADMIN_ASSISTANT_BASE_PATH}/chat`,threads:`${ADMIN_ASSISTANT_BASE_PATH}/threads`,thread:__name(threadId=>`${ADMIN_ASSISTANT_BASE_PATH}/threads/${encodeURIComponent(threadId)}`,"thread"),live:__name(threadId=>`${ADMIN_ASSISTANT_BASE_PATH}/threads/${encodeURIComponent(threadId)}/live`,"live"),stream:__name(threadId=>`${ADMIN_ASSISTANT_BASE_PATH}/threads/${encodeURIComponent(threadId)}/stream`,"stream"),abort:__name(threadId=>`${ADMIN_ASSISTANT_BASE_PATH}/threads/${encodeURIComponent(threadId)}/abort`,"abort")},ADMIN_ASSISTANT_MESSAGE_MAX_CHARS=2e4,ADMIN_ASSISTANT_FORM_NOTE_MAX_CHARS=4e3,ADMIN_ASSISTANT_REQUEST_MAX_BYTES=256*1024,AdminAssistantFormResponseSchema=ChatFormResponseSchema.extend({questions:z38.array(ChatFormAnswerItemSchema.extend({answer:z38.string().min(1).max(ADMIN_ASSISTANT_FORM_NOTE_MAX_CHARS+1200),freeText:z38.string().max(ADMIN_ASSISTANT_FORM_NOTE_MAX_CHARS)})).max(4)}),AdminAssistantOutgoingMessageSchema=z38.object({id:z38.string().min(1).max(255).regex(/^(app|e2e):/,"Message ids from a client start with app:"),text:z38.string().max(ADMIN_ASSISTANT_MESSAGE_MAX_CHARS)}).strict(),AdminAssistantSendRequestSchema=z38.object({threadId:z38.string().uuid().optional(),message:AdminAssistantOutgoingMessageSchema,formResponse:AdminAssistantFormResponseSchema.optional()}).strict().superRefine((body,context)=>{body.message.text.trim().length===0&&!body.formResponse&&context.addIssue({code:"custom",path:["message","text"],message:"A message cannot be empty."})}),AdminAssistantSendOutcomeSchema=z38.discriminatedUnion("kind",[z38.object({kind:z38.literal("replay"),threadId:z38.string(),userMessageId:z38.string()}),z38.object({kind:z38.literal("queued"),threadId:z38.string(),userMessageId:z38.string(),blockingRootId:z38.string().optional()}),z38.object({kind:z38.literal("busy"),threadId:z38.string(),userMessageId:z38.string(),blockingRootId:z38.string().optional()}),z38.object({kind:z38.literal("refused"),threadId:z38.string(),userMessageId:z38.string(),refusedInvocationId:z38.string(),terminalReason:z38.string()})]),AdminAssistantStreamHeadSchema=z38.object({kind:z38.literal("turn"),threadId:z38.string(),userMessageId:z38.string(),invocationId:z38.string()}),AdminAssistantThreadSummarySchema=z38.object({id:z38.string().uuid(),title:z38.string().nullable(),lastMessageAt:z38.string().nullable(),createdAt:z38.string()}),AdminAssistantThreadListQuerySchema=z38.object({q:z38.string().trim().max(200).optional(),cursor:z38.string().max(500).optional(),limit:z38.coerce.number().int().min(1).max(100).optional()}),AdminAssistantThreadListResponseSchema=z38.object({threads:z38.array(AdminAssistantThreadSummarySchema),nextCursor:z38.string().nullable()}),AdminAssistantThreadResponseSchema=z38.object({thread:AdminAssistantThreadSummarySchema.extend({createdBy:z38.string().nullable()}),messages:z38.array(ChatThreadMessageDTOSchema),liveTurn:ChatLiveTurnDTOSchema.nullable()}),AdminAssistantLiveTurnResponseSchema=z38.object({threadId:z38.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable()}),AdminAssistantAbortResponseSchema=z38.object({aborted:z38.boolean()}),AdminAssistantThreadUpdateSchema=z38.object({title:ProjectChatTitleSchema}).strict(),AdminAssistantThreadDeleteResponseSchema=z38.object({deleted:z38.literal(!0)})}});import{z as z39}from"zod";function normalizeStoredBlock(block){if(typeof block!="object"||block===null||Array.isArray(block))return block;let{type,...rest}=block;if(typeof type!="string")return block;let target=LEGACY_BLOCK_TYPES[type];return target?target==="viz"?{...rest,type:target,kind:"bar"}:{...rest,type:target}:block}function normalizeStoredBlocks(blocks){return Array.isArray(blocks)?blocks.map(normalizeStoredBlock):blocks}function normalizeStoredDocument(document){if(typeof document!="object"||document===null||Array.isArray(document))return document;let source=document;return{...source,brief:normalizeStoredBlocks(source.brief),details:normalizeStoredBlocks(source.details)}}function derivedBlockBody(block){let lines=[];switch(block.type){case"text":lines.push(block.text);break;case"metric":for(let item of block.items)lines.push([`${item.value}${item.unit??""}`,item.label].join(" \u2014 ")),item.note&&lines.push(item.note);break;case"viz":lines.push(block.points.map(point=>`${point.label}: ${formatReportValue(point.value,block.unit)}`).join(", ")),block.caption&&lines.push(block.caption);break;case"list":for(let item of block.items)lines.push([item.label,item.heading].filter(Boolean).join(" \u2014 ")),item.body&&lines.push(item.body),item.evidence&&lines.push(item.evidence);break;case"table":lines.push(block.columns.map(column=>column.label).join(" | "));for(let row2 of block.rows)lines.push(row2.cells.map(cell=>cell.text).join(" | "));block.caption&&lines.push(block.caption);break;case"media":lines.push(block.alt),block.caption&&lines.push(block.caption);break;case"links":for(let item of block.items)lines.push([`${item.label}: ${item.url}`,item.description].filter(Boolean).join(" \u2014 "));break;case"code":lines.push(block.code),block.caption&&lines.push(block.caption);break}return lines.join(`
5
+ `)}function reportSectionContentLength(blocks){return blocks.reduce((total,block)=>total+(block.title?.length??0)+derivedBlockBody(block).length+(block.fallback?.length??0),0)}function formatReportNumber(value){return Number.isInteger(value)?String(value):String(Number(value.toFixed(2)))}function formatReportValue(value,unit){let formatted=formatReportNumber(value);return unit?`${formatted}${new RegExp("^\\p{L}","u").test(unit)?" ":""}${unit}`:formatted}var REPORT_TITLE_MAX_CHARS,REPORT_BRIEF_MAX_BLOCKS,REPORT_DETAILS_MAX_BLOCKS,REPORT_BRIEF_MAX_CHARS,REPORT_DETAILS_MAX_CHARS,REPORT_TEXT_MAX_CHARS,REPORT_CODE_MAX_CHARS,REPORT_TONES,ReportToneSchema,blockCommon,ReportTextBlockSchema,ReportMetricBlockSchema,REPORT_VIZ_KINDS,ReportVizKindSchema,ReportVizBlockSchema,ReportListBlockSchema,ReportTableBlockSchema,ReportMediaBlockSchema,ReportLinksBlockSchema,ReportCodeBlockSchema,ReportBlockSchema,ReportDocumentSchema,ReportBriefSchema,LEGACY_BLOCK_TYPES,StoredReportBriefSchema,StoredReportDocumentSchema,init_agent_report=__esm({"../../packages/api-contracts/dist/esm/types/agent-report.js"(){"use strict";REPORT_TITLE_MAX_CHARS=120,REPORT_BRIEF_MAX_BLOCKS=6,REPORT_DETAILS_MAX_BLOCKS=40,REPORT_BRIEF_MAX_CHARS=4e3,REPORT_DETAILS_MAX_CHARS=48e3,REPORT_TEXT_MAX_CHARS=4e3,REPORT_CODE_MAX_CHARS=8e3,REPORT_TONES=["critical","warning","info","neutral"],ReportToneSchema=z39.enum(REPORT_TONES),blockCommon={title:z39.string().trim().min(1).max(120).optional(),fallback:z39.string().trim().min(1).max(600).optional()},ReportTextBlockSchema=z39.object({type:z39.literal("text"),...blockCommon,text:z39.string().trim().min(1).max(REPORT_TEXT_MAX_CHARS)}).strict().describe("Short connective context or a conclusion with no better structure. Never a multi-item dump."),ReportMetricBlockSchema=z39.object({type:z39.literal("metric"),...blockCommon,items:z39.array(z39.object({value:z39.string().trim().min(1).max(24),unit:z39.string().trim().min(1).max(12).optional(),label:z39.string().trim().min(1).max(160),note:z39.string().trim().min(1).max(300).optional()}).strict()).min(1).max(3),spark:z39.array(z39.number().finite()).min(2).max(24).optional()}).strict().describe("1-3 numbers that materially communicate state, scale, or success. Do not promote incidental counts."),REPORT_VIZ_KINDS=["bar","line","area","composition"],ReportVizKindSchema=z39.enum(REPORT_VIZ_KINDS),ReportVizBlockSchema=z39.object({type:z39.literal("viz"),...blockCommon,kind:ReportVizKindSchema.describe("bar: compare named quantities. line/area: change across an ordered sequence. composition: parts of one whole."),unit:z39.string().trim().min(1).max(12).optional(),points:z39.array(z39.object({label:z39.string().trim().min(1).max(24),value:z39.number().finite(),highlight:z39.boolean().optional()}).strict()).min(2).max(24),caption:z39.string().trim().min(1).max(600).optional()}).strict().describe("Only when comparison, relationship, distribution, persistence, or change over time is itself the point. Never decorative.").superRefine((block,ctx)=>{block.points.filter(point=>point.highlight).length>1&&ctx.addIssue({code:"custom",path:["points"],message:"Highlight at most one point."}),block.kind==="composition"&&block.points.forEach((point,index)=>{point.value<0&&ctx.addIssue({code:"custom",path:["points",index,"value"],message:"A composition holds parts of one whole, so every value must be zero or more."})})}),ReportListBlockSchema=z39.object({type:z39.literal("list"),...blockCommon,items:z39.array(z39.object({tone:ReportToneSchema.optional(),label:z39.string().trim().min(1).max(24).optional(),heading:z39.string().trim().min(1).max(160).describe("The human-visible result, action, or consequence, readable on its own."),body:z39.string().trim().min(1).max(1200).optional().describe("One short explanation of why it matters."),evidence:z39.string().trim().min(1).max(600).optional().describe("Exact supporting proof: paths, keys, literal values, compact measurements.")}).strict()).min(1).max(12)}).strict().describe("Ranked items sharing one hierarchy: findings, recommendations, steps, sources, or a single callout. heading = human consequence, body = why it matters, evidence = the technical proof. Do not repeat the report title."),ReportTableBlockSchema=z39.object({type:z39.literal("table"),...blockCommon,columns:z39.array(z39.object({label:z39.string().trim().min(1).max(32)}).strict()).min(1).max(6),rows:z39.array(z39.object({cells:z39.array(z39.object({text:z39.string().trim().max(160),tone:ReportToneSchema.optional()}).strict()).min(1).max(6)}).strict()).min(1).max(40),caption:z39.string().trim().min(1).max(600).optional()}).strict().describe("Repeated entities sharing the same attributes. Use instead of parallel prose.").superRefine((block,ctx)=>{block.rows.forEach((row2,index)=>{row2.cells.length!==block.columns.length&&ctx.addIssue({code:"custom",path:["rows",index,"cells"],message:`Every row needs exactly ${block.columns.length} cells, one per column.`})})}),ReportMediaBlockSchema=z39.object({type:z39.literal("media"),...blockCommon,assetId:z39.uuid(),alt:z39.string().trim().min(1).max(300),caption:z39.string().trim().min(1).max(600).optional()}).strict().describe("Only visual or recorded evidence, or a media deliverable: a before/after, a layout defect, a generated asset. Never decoration."),ReportLinksBlockSchema=z39.object({type:z39.literal("links"),...blockCommon,items:z39.array(z39.object({label:z39.string().trim().min(1).max(120),url:z39.url({protocol:/^https$/}).max(2e3),description:z39.string().trim().min(1).max(300).optional()}).strict()).min(1).max(8)}).strict().describe("A destination, evidence source, or next action worth opening."),ReportCodeBlockSchema=z39.object({type:z39.literal("code"),...blockCommon,language:z39.string().regex(/^[a-z0-9+#-]{1,20}$/,"A language is a short lowercase token, e.g. ts, json, bash.").optional(),code:z39.string().min(1).max(REPORT_CODE_MAX_CHARS),caption:z39.string().trim().min(1).max(600).optional()}).strict().describe("An exact snippet that is decisive evidence. Never a log dump."),ReportBlockSchema=z39.discriminatedUnion("type",[ReportTextBlockSchema,ReportMetricBlockSchema,ReportListBlockSchema,ReportTableBlockSchema,ReportVizBlockSchema,ReportMediaBlockSchema,ReportLinksBlockSchema,ReportCodeBlockSchema]),ReportDocumentSchema=z39.object({title:z39.string().trim().min(1).max(REPORT_TITLE_MAX_CHARS),brief:z39.array(ReportBlockSchema).min(1).max(REPORT_BRIEF_MAX_BLOCKS),details:z39.array(ReportBlockSchema).max(REPORT_DETAILS_MAX_BLOCKS)}).strict().superRefine((document,ctx)=>{let brief=reportSectionContentLength(document.brief);brief>REPORT_BRIEF_MAX_CHARS&&ctx.addIssue({code:"custom",path:["brief"],message:`The brief holds ${brief} characters of content; keep it under ${REPORT_BRIEF_MAX_CHARS}. Move evidence into details.`});let details=reportSectionContentLength(document.details);details>REPORT_DETAILS_MAX_CHARS&&ctx.addIssue({code:"custom",path:["details"],message:`The details hold ${details} characters of content; the limit is ${REPORT_DETAILS_MAX_CHARS}.`})}),ReportBriefSchema=z39.array(ReportBlockSchema).min(1).max(REPORT_BRIEF_MAX_BLOCKS),LEGACY_BLOCK_TYPES={findings:"list",series:"viz",image:"media"};__name(normalizeStoredBlock,"normalizeStoredBlock");__name(normalizeStoredBlocks,"normalizeStoredBlocks");__name(normalizeStoredDocument,"normalizeStoredDocument");StoredReportBriefSchema=z39.preprocess(normalizeStoredBlocks,ReportBriefSchema),StoredReportDocumentSchema=z39.preprocess(normalizeStoredDocument,ReportDocumentSchema);__name(derivedBlockBody,"derivedBlockBody");__name(reportSectionContentLength,"reportSectionContentLength");__name(formatReportNumber,"formatReportNumber");__name(formatReportValue,"formatReportValue")}});import{z as z40}from"zod";var FIMO_CONFIG_PATH,LEGACY_FIMO_CONFIG_PATHS,ALL_FIMO_CONFIG_PATHS,FimoFrameworkSchema,FimoRuntimeCommandsSchema,FimoRuntimeConfigSchema,FimoHostingConditionSchema,conditionFields,FimoHostingRewriteSchema,FimoHostingRedirectSchema,FimoHostingHeaderSchema,FimoHostingConfigSchema,FimoAppConfigSchema,init_fimo_config=__esm({"../../packages/api-contracts/dist/esm/types/fimo-config.js"(){"use strict";FIMO_CONFIG_PATH=".fimo/config.json",LEGACY_FIMO_CONFIG_PATHS=["fimo-config.json","fimo.config.json"],ALL_FIMO_CONFIG_PATHS=[FIMO_CONFIG_PATH,...LEGACY_FIMO_CONFIG_PATHS],FimoFrameworkSchema=z40.enum(["astro","nextjs","nuxtjs","react-router","remix","sveltekit","vite","vue"]),FimoRuntimeCommandsSchema=z40.object({dev:z40.string().trim().min(1).optional(),build:z40.string().trim().min(1).optional(),install:z40.string().trim().min(1).optional()}).strict(),FimoRuntimeConfigSchema=z40.object({framework:FimoFrameworkSchema.optional(),outputDirectory:z40.string().trim().min(1).optional(),commands:FimoRuntimeCommandsSchema.optional()}).strict(),FimoHostingConditionSchema=z40.object({type:z40.enum(["header","cookie","query","host"]),key:z40.string().min(1).optional(),value:z40.string().min(1).optional()}).strict().superRefine((condition,context)=>{if(condition.type==="host"){condition.key!==void 0&&context.addIssue({code:"custom",path:["key"],message:"A host condition takes no key."}),condition.value===void 0&&context.addIssue({code:"custom",path:["value"],message:"A host condition needs a value."});return}condition.key===void 0&&context.addIssue({code:"custom",path:["key"],message:`A ${condition.type} condition needs the key it matches on.`})}),conditionFields={has:z40.array(FimoHostingConditionSchema).min(1).optional(),missing:z40.array(FimoHostingConditionSchema).min(1).optional()},FimoHostingRewriteSchema=z40.object({source:z40.string().min(1),destination:z40.string().min(1),...conditionFields}),FimoHostingRedirectSchema=z40.object({source:z40.string().min(1),destination:z40.string().min(1),permanent:z40.boolean().optional(),statusCode:z40.union([z40.literal(301),z40.literal(302),z40.literal(307),z40.literal(308)]).optional(),...conditionFields}),FimoHostingHeaderSchema=z40.object({source:z40.string().min(1),headers:z40.array(z40.object({key:z40.string().min(1),value:z40.string()})).min(1),...conditionFields}),FimoHostingConfigSchema=z40.object({rewrites:z40.array(FimoHostingRewriteSchema).optional(),redirects:z40.array(FimoHostingRedirectSchema).optional(),headers:z40.array(FimoHostingHeaderSchema).optional(),cleanUrls:z40.boolean().optional(),trailingSlash:z40.boolean().optional()}).strict(),FimoAppConfigSchema=z40.object({runtime:FimoRuntimeConfigSchema.optional(),hosting:FimoHostingConfigSchema.optional()}).passthrough().superRefine((config,context)=>{Object.hasOwn(config,"framework")&&context.addIssue({code:"custom",path:["framework"],message:"Use runtime.framework instead of the top-level framework field."})})}});function isEntryParamBinding(binding){return binding!==void 0&&(binding.type??"entry")==="entry"}function pageRouteParamNames(path50){return[...path50.matchAll(/:([^/*]+)\*?/g)].map(match=>match[1])}function pageContentParamNames(path50,params){return pageRouteParamNames(path50).filter(param=>!LOCALE_PARAM_NAME.test(param)&&params?.[param]?.type!=="external")}function parsePageParamExpression(expression){let match=PARAM_EXPRESSION.exec(expression);return match?{param:match[1],field:match[2]}:null}function fieldValue(entry,fieldPath){let value=entry;for(let segment of fieldPath.split(".")){if(!value||typeof value!="object"||Array.isArray(value))return;value=value[segment]}return value}function queryValue(value){if(Array.isArray(value))return value.map(queryValue);if(value&&typeof value=="object"){let record=value;return typeof record.id=="string"?record.id:Object.fromEntries(Object.entries(record).map(([key,item])=>[key,queryValue(item)]))}return value===void 0?null:value}function resolveValue(value,params){if(typeof value=="string"&&value.startsWith("$params.")){let parsed=parsePageParamExpression(value);if(!parsed)return{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param:"",field:""}};let{param,field}=parsed,entry=params[param];if(!entry)return{ok:!1,error:{code:"PAGE_PARAM_NOT_SELECTED",expression:value,param,field}};let resolved=fieldValue(entry,field);return resolved==null||resolved===""?{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param,field}}:{ok:!0,value:queryValue(resolved)}}if(Array.isArray(value)){let resolved=[];for(let item of value){let result=resolveValue(item,params);if(!result.ok)return result;resolved.push(result.value)}return{ok:!0,value:resolved}}if(value&&typeof value=="object"){let resolved={};for(let[key,item]of Object.entries(value)){let result=resolveValue(item,params);if(!result.ok)return result;resolved[key]=result.value}return{ok:!0,value:resolved}}return{ok:!0,value}}function resolvePageSourceQuery(query={},params){let resolved=resolveValue(query,params);return resolved.ok?{ok:!0,query:resolved.value}:resolved}function pageSourceParamExpressions(value){return typeof value=="string"?value.startsWith("$params.")?[value]:[]:Array.isArray(value)?value.flatMap(pageSourceParamExpressions):value&&typeof value=="object"?Object.values(value).flatMap(pageSourceParamExpressions):[]}var LOCALE_PARAM_NAME,PARAM_EXPRESSION,init_page_sources=__esm({"../../packages/api-contracts/dist/esm/types/page-sources.js"(){"use strict";__name(isEntryParamBinding,"isEntryParamBinding");LOCALE_PARAM_NAME=/^(locale|lang|language)$/i;__name(pageRouteParamNames,"pageRouteParamNames");__name(pageContentParamNames,"pageContentParamNames");PARAM_EXPRESSION=/^\$params\.([A-Za-z_][\w-]*)\.([A-Za-z_][\w.-]*)$/;__name(parsePageParamExpression,"parsePageParamExpression");__name(fieldValue,"fieldValue");__name(queryValue,"queryValue");__name(resolveValue,"resolveValue");__name(resolvePageSourceQuery,"resolvePageSourceQuery");__name(pageSourceParamExpressions,"pageSourceParamExpressions")}});var init_project_files=__esm({"../../packages/api-contracts/dist/esm/types/project-files.js"(){"use strict"}});import{z as z41}from"zod";var ProjectBranchStatusSchema,ProjectBranchKindSchema,ProjectBranchDTOSchema,ProjectBranchDTO,ResolvedBranchEnvironmentDTOSchema,ProjectBranchListItemDTOSchema,ProjectBranchListItemDTO,CreateProjectBranchRequestInputSchema,CreateProjectBranchRequestSchema,SyncProjectBranchRequestSchema,ProjectBranchResponseSchema,ProjectBranchesListResponseSchema,BranchSurfaceDiffSchema,BranchDiffResultSchema,BranchDiffResultDTO,init_project_env_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-env.dto.js"(){"use strict";init_common();init_env();init_environment();init_create_dto();init_response();ProjectBranchStatusSchema=z41.enum(["provisioning","active","deleted"]),ProjectBranchKindSchema=z41.enum(["user","agent-session"]),ProjectBranchDTOSchema=BaseEntitySchema.extend({projectId:z41.uuid(),branch:BranchSchema.optional(),status:ProjectBranchStatusSchema,kind:ProjectBranchKindSchema,parentBranch:BranchSchema.nullable().optional(),createdBy:z41.string().nullable(),deletedAt:z41.coerce.date().nullable(),env:BranchSchema,parentEnv:BranchSchema.nullable()}),ProjectBranchDTO=createDTO(ProjectBranchDTOSchema),ResolvedBranchEnvironmentDTOSchema=z41.object({id:z41.union([z41.literal(PREVIEW_ENVIRONMENT_KEY),z41.uuid()]),name:z41.string()}),ProjectBranchListItemDTOSchema=ProjectBranchDTOSchema.extend({resolvedEnvironment:ResolvedBranchEnvironmentDTOSchema.nullable(),workSession:z41.object({sessionId:z41.uuid(),name:z41.string()}).optional()}),ProjectBranchListItemDTO=createDTO(ProjectBranchListItemDTOSchema),CreateProjectBranchRequestInputSchema=z41.object({branch:BranchSchema.optional(),parentBranch:BranchSchema.optional(),env:BranchSchema.optional(),parentEnv:BranchSchema.optional()}),CreateProjectBranchRequestSchema=CreateProjectBranchRequestInputSchema.superRefine((body,ctx)=>{body.branch===void 0&&body.env===void 0&&ctx.addIssue({code:"custom",path:["branch"],message:"branch is required"}),body.branch!==void 0&&body.env!==void 0&&body.branch!==body.env&&ctx.addIssue({code:"custom",path:["branch"],message:`branch '${body.branch}' and the deprecated env '${body.env}' disagree \u2014 send one, or send both with the same value`}),body.parentBranch!==void 0&&body.parentEnv!==void 0&&body.parentBranch!==body.parentEnv&&ctx.addIssue({code:"custom",path:["parentBranch"],message:`parentBranch '${body.parentBranch}' and the deprecated parentEnv '${body.parentEnv}' disagree \u2014 send one, or send both with the same value`})}).transform(body=>({branch:body.branch??body.env,parentBranch:body.parentBranch??body.parentEnv})),SyncProjectBranchRequestSchema=z41.object({from:BranchSchema.optional()}),ProjectBranchResponseSchema=createResponseSchema(ProjectBranchDTOSchema),ProjectBranchesListResponseSchema=createResponseSchema(z41.array(ProjectBranchListItemDTOSchema)),BranchSurfaceDiffSchema=z41.object({surface:z41.enum(["code","schemas","content","translations","assets","forms"]),status:z41.enum(["unchanged","changed","conflicting","missing-on-target"]),changedCount:z41.number().int().nonnegative(),conflictCount:z41.number().int().nonnegative()}),BranchDiffResultSchema=z41.object({fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),generatedAt:z41.coerce.date(),surfaces:z41.array(BranchSurfaceDiffSchema),fromEnv:BranchSchema,toEnv:BranchSchema}),BranchDiffResultDTO=createDTO(BranchDiffResultSchema)}});import{z as z42}from"zod";var ProjectEnvironmentBaseSchema,ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema,ProjectEnvironmentDTOSchema,ProjectEnvironmentDTO,CreateProjectEnvironmentRequestSchema,ProjectEnvironmentsListResponseSchema,ProjectEnvironmentResponseSchema,DeleteProjectEnvironmentResultSchema,DeleteProjectEnvironmentResponseSchema,init_project_environment_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-environment.dto.js"(){"use strict";init_env();init_environment();init_create_dto();init_response();ProjectEnvironmentBaseSchema=z42.object({projectId:z42.uuid(),name:z42.string()}),ProductionEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z42.literal(PRODUCTION_ENVIRONMENT_KEY),kind:z42.literal("production"),sourceBranch:BranchSchema,isPublished:z42.boolean(),url:z42.string().nullable()}),PreviewEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z42.literal(PREVIEW_ENVIRONMENT_KEY),kind:z42.literal("preview"),matchedBranchCount:z42.number().int().nonnegative()}),CustomProjectEnvironmentDTOSchema=CustomEnvironmentSchema.extend({kind:z42.literal("custom"),matchedBranchCount:z42.number().int().nonnegative()}),ProjectEnvironmentDTOSchema=z42.discriminatedUnion("kind",[ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema]),ProjectEnvironmentDTO=createDTO(ProjectEnvironmentDTOSchema),CreateProjectEnvironmentRequestSchema=CustomEnvironmentSchema.pick({name:!0,branchPatterns:!0,description:!0}).extend({description:z42.string().trim().max(255).nullable().optional().default(null)}),ProjectEnvironmentsListResponseSchema=createResponseSchema(z42.array(ProjectEnvironmentDTOSchema)),ProjectEnvironmentResponseSchema=createResponseSchema(ProjectEnvironmentDTOSchema),DeleteProjectEnvironmentResultSchema=z42.object({deletedId:z42.uuid()}),DeleteProjectEnvironmentResponseSchema=createResponseSchema(DeleteProjectEnvironmentResultSchema)}});import{z as z43}from"zod";var ProjectSecretsListQuerySchema,ProjectSecretWriteRequestSchema,CreateProjectSecretRequestSchema,DeleteProjectSecretQuerySchema,ProjectSecretMetadataDTOSchema,ProjectSecretMetadataDTO,ProjectVariableBaseSchema,ProjectVariableDTOSchema,ProjectVariableDTO,ProjectSecretsListResponseSchema,ProjectSecretResponseSchema,init_project_secret_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-secret.dto.js"(){"use strict";init_environment();init_create_dto();init_response();ProjectSecretsListQuerySchema=z43.object({kind:z43.enum(["variable","secret"]).optional(),environment:EnvironmentKeySchema}),ProjectSecretWriteRequestSchema=z43.object({kind:z43.enum(["variable","secret"]),value:z43.string(),environment:EnvironmentKeySchema}),CreateProjectSecretRequestSchema=ProjectSecretWriteRequestSchema.extend({key:z43.string().min(1).max(255),exposure:z43.enum(["public","private"]).optional()}),DeleteProjectSecretQuerySchema=z43.object({kind:z43.enum(["variable","secret"]),environment:EnvironmentKeySchema}),ProjectSecretMetadataDTOSchema=z43.object({id:z43.uuid(),projectId:z43.uuid(),key:z43.string(),kind:z43.literal("secret"),exposure:z43.literal("private"),environment:EnvironmentKeySchema,maskedValue:z43.string().optional(),createdAt:z43.date().transform(value=>value.toISOString()),updatedAt:z43.date().transform(value=>value.toISOString())}),ProjectSecretMetadataDTO=createDTO(ProjectSecretMetadataDTOSchema),ProjectVariableBaseSchema=z43.object({id:z43.uuid(),projectId:z43.uuid(),key:z43.string(),kind:z43.literal("variable"),environment:EnvironmentKeySchema,managed:z43.boolean(),createdAt:z43.date().transform(value=>value.toISOString()),updatedAt:z43.date().transform(value=>value.toISOString())}),ProjectVariableDTOSchema=z43.discriminatedUnion("exposure",[ProjectVariableBaseSchema.extend({exposure:z43.literal("public"),value:z43.string()}),ProjectVariableBaseSchema.extend({exposure:z43.literal("private"),maskedValue:z43.string().optional()})]),ProjectVariableDTO=createDTO(ProjectVariableDTOSchema),ProjectSecretsListResponseSchema=createResponseSchema(z43.array(ProjectSecretMetadataDTOSchema)),ProjectSecretResponseSchema=createResponseSchema(ProjectSecretMetadataDTOSchema)}});import{z as z44}from"zod";var ExportProjectResponseDTOSchema,ExportProjectResponseDTO,ImportProjectResultDTOSchema,ImportProjectResultDTO,ImportPreviewCountsDTOSchema,ImportPreviewSurfaceDTOSchema,ImportPreviewDTOSchema,ImportPreviewDTO,ImportPreviewResponseDTOSchema,ImportPreviewResponseDTO,init_project_import_export_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-import-export.dto.js"(){"use strict";init_create_dto();ExportProjectResponseDTOSchema=z44.object({success:z44.literal(!0),downloadUrl:z44.string(),expiresAt:z44.string(),fileSize:z44.number(),duration:z44.number()}),ExportProjectResponseDTO=createDTO(ExportProjectResponseDTOSchema),ImportProjectResultDTOSchema=z44.object({success:z44.literal(!0),projectId:z44.string(),projectName:z44.string(),displayName:z44.string(),projectUrl:z44.string(),duration:z44.number()}),ImportProjectResultDTO=createDTO(ImportProjectResultDTOSchema),ImportPreviewCountsDTOSchema=z44.object({contentTypes:z44.number(),entries:z44.number(),assets:z44.number(),translations:z44.number(),forms:z44.number(),codeFiles:z44.number(),assetFiles:z44.number()}),ImportPreviewSurfaceDTOSchema=z44.object({name:z44.string(),included:z44.boolean(),count:z44.number().optional(),note:z44.string().optional()}),ImportPreviewDTOSchema=z44.object({projectName:z44.string(),displayName:z44.string().nullable(),category:z44.string().nullable(),exportedAt:z44.string(),version:z44.string(),envScope:z44.enum(["main","tree"]),counts:ImportPreviewCountsDTOSchema,surfaces:z44.array(ImportPreviewSurfaceDTOSchema),fileSize:z44.number(),fileName:z44.string()}),ImportPreviewDTO=createDTO(ImportPreviewDTOSchema),ImportPreviewResponseDTOSchema=z44.object({success:z44.literal(!0),preview:ImportPreviewDTOSchema}),ImportPreviewResponseDTO=createDTO(ImportPreviewResponseDTOSchema)}});import{z as z45}from"zod";var SurfaceNameSchema,SURFACE_NAMES,SurfaceDeltaVerbSchema,SurfaceItemOriginSchema,SurfaceDeltaItemSchema,PerSurfaceDeltaSchema,CrossSurfaceFindingSchema,StatusReportSchema,StatusReportDTO,StatusReportResponseSchema,DiffReportSchema,DiffReportDTO,DiffReportResponseSchema,CodeFileDiffSchema,CodeFileDiffDTO,CodeFileDiffResponseSchema,CodeConflictBlobSchema,CodeConflictDetailSchema,CodeConflictDetailDTO,CodeConflictDetailResponseSchema,ContentEntrySnapshotSchema,ContentRowDiffSchema,ContentRowDiffDTO,ContentRowDiffResponseSchema,SchemaTypeSnapshotSchema,SchemaTypeDiffSchema,SchemaTypeDiffDTO,SchemaTypeDiffResponseSchema,AssetSnapshotSchema,AssetDiffSchema,AssetDiffDTO,AssetDiffResponseSchema,TranslationRowDiffSchema,TranslationRowDiffDTO,TranslationRowDiffResponseSchema,FormSchemaSnapshotSchema,FormSchemaDiffSchema,FormSchemaDiffDTO,FormSchemaDiffResponseSchema,CONFLICT_KINDS,ConflictKindSchema,ConflictTargetCommitSchema,ConflictSchema,FieldPickSchema,ConflictResolutionSchema,MergeResultSchema,MergeResultDTO,MergeResultResponseSchema,EngineStrategySchema,VendorStrategySchema,MergeStrategySchema,ResolvedStrategySchema,MergeRequestSchema,MergeInitiateResultSchema,MergeInitiateResultDTO,MergeInitiateResponseSchema,MergeConflictsHydrationSchema,MergeConflictsHydrationDTO,MergeConflictsHydrationResponseSchema,MergeResolveDraftRequestSchema,MergeResolveDraftResultSchema,MergeResolveDraftResultDTO,MergeResolveRequestSchema,MergeCancelRequestSchema,PublishReleaseRequestSchema,PublishReleaseResultSchema,PublishReleaseResultDTO,PublishReleaseResponseSchema,init_env_status_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/env-status.dto.js"(){"use strict";init_env();init_create_dto();init_response();SurfaceNameSchema=z45.enum(["code","schemas","content","translations","assets","forms"]),SURFACE_NAMES=["code","schemas","content","translations","assets","forms"],SurfaceDeltaVerbSchema=z45.enum(["added","removed","changed","conflict"]),SurfaceItemOriginSchema=z45.enum(["committed-ahead","local-uncommitted"]),SurfaceDeltaItemSchema=z45.object({verb:SurfaceDeltaVerbSchema,key:z45.string(),detail:z45.string().optional(),origin:SurfaceItemOriginSchema.optional(),meta:z45.record(z45.string(),z45.unknown()).optional()}),PerSurfaceDeltaSchema=z45.object({surface:SurfaceNameSchema,status:z45.enum(["ok","timed_out","failed","unchanged"]),durationMs:z45.number().int().nonnegative().optional(),changedCount:z45.number().int().nonnegative(),conflictCount:z45.number().int().nonnegative(),items:z45.array(SurfaceDeltaItemSchema).max(1e3).optional(),truncated:z45.boolean().optional(),error:z45.string().optional()}),CrossSurfaceFindingSchema=z45.object({id:z45.string(),kind:z45.string(),description:z45.string(),severity:z45.enum(["warning","error"]),source:z45.object({surface:SurfaceNameSchema,key:z45.string()}),target:z45.object({surface:SurfaceNameSchema,key:z45.string()}),actions:z45.array(z45.enum(["restore-target","fix-source","ignore"])).min(1)}),StatusReportSchema=z45.object({branch:BranchSchema.optional(),env:BranchSchema,vs:BranchSchema,syncState:z45.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:z45.coerce.date(),surfaces:z45.array(PerSurfaceDeltaSchema),agents:z45.array(z45.object({id:z45.string(),name:z45.string(),status:z45.enum(["active","paused","failed"]),lastRunAt:z45.coerce.date().nullable()})).optional(),crossSurface:z45.array(CrossSurfaceFindingSchema).optional()}),StatusReportDTO=createDTO(StatusReportSchema),StatusReportResponseSchema=createResponseSchema(StatusReportSchema),DiffReportSchema=z45.object({fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),fromEnv:BranchSchema,toEnv:BranchSchema,generatedAt:z45.coerce.date(),surfaces:z45.array(PerSurfaceDeltaSchema),crossSurface:z45.array(CrossSurfaceFindingSchema).optional(),fingerprint:z45.string()}),DiffReportDTO=createDTO(DiffReportSchema),DiffReportResponseSchema=createResponseSchema(DiffReportSchema),CodeFileDiffSchema=z45.object({path:z45.string(),state:z45.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z45.string(),additions:z45.number().int().nonnegative(),deletions:z45.number().int().nonnegative()}),CodeFileDiffDTO=createDTO(CodeFileDiffSchema),CodeFileDiffResponseSchema=createResponseSchema(CodeFileDiffSchema),CodeConflictBlobSchema=z45.object({oid:z45.string().optional(),content:z45.string().optional(),truncated:z45.boolean(),binary:z45.boolean()}),CodeConflictDetailSchema=z45.object({path:z45.string(),base:CodeConflictBlobSchema,ours:CodeConflictBlobSchema,theirs:CodeConflictBlobSchema,result:CodeConflictBlobSchema,sourceTipSha:z45.string(),targetTipSha:z45.string(),mergeBaseSha:z45.string().optional()}),CodeConflictDetailDTO=createDTO(CodeConflictDetailSchema),CodeConflictDetailResponseSchema=createResponseSchema(CodeConflictDetailSchema),ContentEntrySnapshotSchema=z45.object({id:z45.string(),slug:z45.string(),contentType:z45.string(),data:z45.record(z45.string(),z45.unknown()),updatedAt:z45.coerce.date()}),ContentRowDiffSchema=z45.object({collection:z45.string(),rowId:z45.string(),parent:ContentEntrySnapshotSchema.nullable(),child:ContentEntrySnapshotSchema.nullable()}),ContentRowDiffDTO=createDTO(ContentRowDiffSchema),ContentRowDiffResponseSchema=createResponseSchema(ContentRowDiffSchema),SchemaTypeSnapshotSchema=z45.object({name:z45.string(),label:z45.string(),isSingleton:z45.boolean(),fields:z45.record(z45.string(),z45.unknown())}),SchemaTypeDiffSchema=z45.object({typeName:z45.string(),parent:SchemaTypeSnapshotSchema.nullable(),child:SchemaTypeSnapshotSchema.nullable()}),SchemaTypeDiffDTO=createDTO(SchemaTypeDiffSchema),SchemaTypeDiffResponseSchema=createResponseSchema(SchemaTypeDiffSchema),AssetSnapshotSchema=z45.object({id:z45.string(),name:z45.string(),type:z45.enum(["file","folder"]),mimeType:z45.string().nullable(),storageKey:z45.string().nullable(),url:z45.string().nullable(),fileSize:z45.number().nullable(),width:z45.number().nullable(),height:z45.number().nullable(),altText:z45.string().nullable(),caption:z45.string().nullable(),createdAt:z45.coerce.date(),updatedAt:z45.coerce.date()}),AssetDiffSchema=z45.object({assetId:z45.string(),parent:AssetSnapshotSchema.nullable(),child:AssetSnapshotSchema.nullable()}),AssetDiffDTO=createDTO(AssetDiffSchema),AssetDiffResponseSchema=createResponseSchema(AssetDiffSchema),TranslationRowDiffSchema=z45.object({locale:z45.string(),key:z45.string(),parent:z45.string().nullable(),child:z45.string().nullable()}),TranslationRowDiffDTO=createDTO(TranslationRowDiffSchema),TranslationRowDiffResponseSchema=createResponseSchema(TranslationRowDiffSchema),FormSchemaSnapshotSchema=z45.object({formName:z45.string(),label:z45.string().nullable(),schemaFingerprint:z45.string(),fields:z45.record(z45.string(),z45.unknown()),settings:z45.record(z45.string(),z45.unknown()).optional()}),FormSchemaDiffSchema=z45.object({formName:z45.string(),parent:FormSchemaSnapshotSchema.nullable(),child:FormSchemaSnapshotSchema.nullable()}),FormSchemaDiffDTO=createDTO(FormSchemaDiffSchema),FormSchemaDiffResponseSchema=createResponseSchema(FormSchemaDiffSchema),CONFLICT_KINDS=["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"],ConflictKindSchema=z45.enum(CONFLICT_KINDS),ConflictTargetCommitSchema=z45.object({sha:z45.string(),subject:z45.string(),body:z45.string().optional(),author:z45.string(),date:z45.string()}),ConflictSchema=z45.object({surface:SurfaceNameSchema,key:z45.string(),kind:ConflictKindSchema.optional(),description:z45.string(),parentValue:z45.unknown().optional(),childValue:z45.unknown().optional(),conflictingFields:z45.array(z45.string()).optional(),code:z45.object({path:z45.string(),unresolvable:z45.boolean().optional(),reason:z45.string().optional(),targetCommits:z45.array(ConflictTargetCommitSchema).optional()}).optional()}),FieldPickSchema=z45.object({field:z45.string(),choice:z45.enum(["parent","child","pick","ai-pick"]),pickedValue:z45.unknown().optional(),aiSessionId:z45.string().optional()}),ConflictResolutionSchema=z45.object({surface:SurfaceNameSchema,key:z45.string(),choice:z45.enum(["parent","child","pick"]),pickedValue:z45.unknown().optional(),fieldPicks:z45.array(FieldPickSchema).optional()}),MergeResultSchema=z45.object({ok:z45.boolean(),mergeId:z45.string().uuid(),fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),fromEnv:BranchSchema,toEnv:BranchSchema,applied:z45.array(z45.object({surface:SurfaceNameSchema,count:z45.number().int().nonnegative()})),conflicts:z45.array(ConflictSchema).optional(),summary:z45.string().optional()}),MergeResultDTO=createDTO(MergeResultSchema),MergeResultResponseSchema=createResponseSchema(MergeResultSchema),EngineStrategySchema=z45.enum(["ff-only","auto","theirs","ours","manual"]),VendorStrategySchema=z45.enum(["ff_only","ff_prefer","merge"]),MergeStrategySchema=z45.object({engine:EngineStrategySchema.optional(),vendor:VendorStrategySchema.optional(),squash:z45.boolean().optional()}),ResolvedStrategySchema=z45.object({engine:EngineStrategySchema,vendor:VendorStrategySchema,squash:z45.boolean()}),MergeRequestSchema=z45.object({from:BranchSchema,allowDirectMerge:z45.boolean().optional(),strategy:MergeStrategySchema.optional()}),MergeInitiateResultSchema=z45.object({mergeId:z45.string().uuid(),streamUrl:z45.string(),strategy:ResolvedStrategySchema,acceptedAt:z45.coerce.date()}),MergeInitiateResultDTO=createDTO(MergeInitiateResultSchema),MergeInitiateResponseSchema=createResponseSchema(MergeInitiateResultSchema),MergeConflictsHydrationSchema=z45.object({mergeId:z45.string().uuid(),fromEnv:BranchSchema,toEnv:BranchSchema,status:z45.enum(["in_progress","complete","failed","rolled_back","conflicts"]),strategy:ResolvedStrategySchema,conflicts:z45.array(ConflictSchema),draftResolutions:z45.array(ConflictResolutionSchema),lastEditedBy:z45.string().nullable(),lastEditedAt:z45.coerce.date().nullable(),initiator:z45.object({userId:z45.string().nullable(),role:z45.string().nullable(),agentName:z45.string().nullable()})}),MergeConflictsHydrationDTO=createDTO(MergeConflictsHydrationSchema),MergeConflictsHydrationResponseSchema=createResponseSchema(MergeConflictsHydrationSchema),MergeResolveDraftRequestSchema=z45.object({resolutions:z45.array(ConflictResolutionSchema)}),MergeResolveDraftResultSchema=z45.object({mergeId:z45.string().uuid(),draftResolutions:z45.array(ConflictResolutionSchema),lastEditedAt:z45.coerce.date(),lastEditedBy:z45.string()}),MergeResolveDraftResultDTO=createDTO(MergeResolveDraftResultSchema),MergeResolveRequestSchema=z45.object({mergeId:z45.string().uuid(),resolutions:z45.array(ConflictResolutionSchema)}),MergeCancelRequestSchema=z45.object({mergeId:z45.string().uuid()}),PublishReleaseRequestSchema=z45.object({version:z45.string().regex(/^v?\d+\.\d+\.\d+(-[\w.]+)?$/,"Use semver (v1.4.2 / 1.4.2 / 1.4.2-rc.1)"),notes:z45.string().max(2e4).optional()}),PublishReleaseResultSchema=z45.object({releaseTag:z45.string(),sha:z45.string(),publishedAt:z45.coerce.date()}),PublishReleaseResultDTO=createDTO(PublishReleaseResultSchema),PublishReleaseResponseSchema=createResponseSchema(PublishReleaseResultSchema)}});import{z as z46}from"zod";var AgentSessionStatusSchema,AgentSessionReviewPublicationSchema,AgentSessionReviewSummarySchema,AgentSessionReviewSummaryDTO,AgentSessionReviewPayloadSchema,AgentSessionReviewPayloadDTO,AgentSessionReviewPayloadResponseSchema,SessionErrorCodeSchema,init_agent_session_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-session.dto.js"(){"use strict";init_create_dto();init_response();init_env_status_dto();AgentSessionStatusSchema=z46.enum(["planned","running","finished","cancelled","errored"]),AgentSessionReviewPublicationSchema=z46.enum(["pending","merged","conflict","not_published"]),AgentSessionReviewSummarySchema=z46.object({capturedAt:z46.coerce.date(),fingerprint:z46.string().min(1).max(256),counts:z46.object({code:z46.number().int().nonnegative(),content:z46.number().int().nonnegative(),schemas:z46.number().int().nonnegative(),labels:z46.number().int().nonnegative(),assets:z46.number().int().nonnegative().optional()}),publication:AgentSessionReviewPublicationSchema,mergeId:z46.uuid().nullable()}),AgentSessionReviewSummaryDTO=createDTO(AgentSessionReviewSummarySchema),AgentSessionReviewPayloadSchema=z46.object({diff:DiffReportSchema,code:z46.array(CodeFileDiffSchema.extend({raw:z46.string().max(24576)})).max(200),schemas:z46.array(SchemaTypeDiffSchema).max(200),content:z46.array(z46.object({key:z46.string().min(1).max(512),collection:z46.string().min(1).max(256),slug:z46.string().max(512).optional(),verb:z46.enum(["added","modified","deleted"]),fields:z46.array(z46.object({name:z46.string().min(1).max(256),before:z46.unknown().optional(),after:z46.unknown().optional()})).max(20)})).max(200),labels:z46.array(z46.object({key:z46.string().min(1).max(512),locale:z46.string().min(1).max(64).optional(),before:z46.unknown().nullable(),after:z46.unknown().nullable()})).max(200),assets:z46.array(z46.object({key:z46.string().min(1).max(512),name:z46.string().min(1).max(512),verb:z46.enum(["added","modified","deleted"]),before:AssetSnapshotSchema.nullable(),after:AssetSnapshotSchema.nullable()})).max(200).default([])}),AgentSessionReviewPayloadDTO=createDTO(AgentSessionReviewPayloadSchema),AgentSessionReviewPayloadResponseSchema=createResponseSchema(AgentSessionReviewPayloadSchema),SessionErrorCodeSchema=z46.enum(["invalid_session_transition","session_not_found","capability_snapshot_invalid","checkpoint_restore_failed","cost_ceiling_invalid"])}});import{z as z47}from"zod";var AgentBranchClassificationSchema,AgentBranchDecidedPathSchema,WorkSessionReviewSchema,RequestWorkSessionReviewSchema,WorkSessionReviewResultSchema,AgentBranchProposalDTOSchema,AgentBranchProposalDTO,DecideProposalRequestSchema,AgentBranchProposalResponseSchema,AgentBranchProposalsListResponseSchema,DecideProposalConflictResponseSchema,init_agent_proposal_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-proposal.dto.js"(){"use strict";init_create_dto();init_response();init_env_status_dto();AgentBranchClassificationSchema=z47.enum(["trivial","structural"]),AgentBranchDecidedPathSchema=z47.enum(["auto-merge","review-merged","review-discarded"]),WorkSessionReviewSchema=z47.object({sessionId:z47.uuid(),branch:z47.string().min(1),targetBranch:z47.string().min(1),revision:z47.string().min(1),fingerprint:z47.string().min(1),source:z47.enum(["studio","slack","mcp"]),threadId:z47.uuid().nullable(),invocationId:z47.uuid().nullable(),conversationBranch:z47.string().nullable(),capturedAt:z47.string(),surfaces:z47.array(PerSurfaceDeltaSchema).optional(),counts:z47.record(z47.string(),z47.number().int().nonnegative())}),RequestWorkSessionReviewSchema=z47.strictObject({sessionId:z47.uuid(),summary:z47.string().trim().min(1).max(240),targetBranch:z47.string().trim().min(1).optional()}),WorkSessionReviewResultSchema=z47.object({requested:z47.literal(!0),alreadyRequested:z47.boolean(),reviewId:z47.uuid(),reviewUrl:z47.url(),status:z47.literal("pending"),sessionId:z47.uuid(),branch:z47.string(),targetBranch:z47.string(),revision:z47.string(),savedRevision:z47.string(),fingerprint:z47.string(),visibility:z47.literal("user-visible"),retention:z47.literal("durable"),expiresAt:z47.null(),merged:z47.literal(!1),published:z47.literal(!1),links:z47.object({preview:z47.url(),changes:z47.url(),conversation:z47.url().nullable()})}),AgentBranchProposalDTOSchema=z47.object({id:z47.uuid(),envId:z47.uuid(),sessionId:z47.uuid().nullable(),skillName:z47.string().min(1),classification:AgentBranchClassificationSchema,rationale:z47.string().nullable(),summary:z47.string().nullable(),surfaceDeltas:z47.record(z47.string(),z47.unknown()),review:WorkSessionReviewSchema.optional(),createdAt:z47.coerce.date(),decidedAt:z47.coerce.date().nullable(),decidedPath:AgentBranchDecidedPathSchema.nullable(),decidedBy:z47.string().nullable()}),AgentBranchProposalDTO=createDTO(AgentBranchProposalDTOSchema),DecideProposalRequestSchema=z47.object({path:z47.enum(["review-merged","review-discarded"])}),AgentBranchProposalResponseSchema=createResponseSchema(AgentBranchProposalDTOSchema),AgentBranchProposalsListResponseSchema=createResponseSchema(z47.array(AgentBranchProposalDTOSchema)),DecideProposalConflictResponseSchema=z47.object({code:z47.literal("merge_conflict"),message:z47.string(),conflicts:z47.record(z47.string(),z47.number().int().nonnegative())})}});import{z as z48}from"zod";var AGENT_QUESTION_STATES,AgentQuestionStateSchema,AgentQuestionFormSchema,AgentQuestionAskSchema,AgentQuestionRequestSchema,AgentQuestionSchema,AgentQuestionResponseSchema,RunAgentQuestionResponseSchema,AgentQuestionAttentionSchema,OpenAgentQuestionsResponseSchema,AnswerAgentQuestionResultSchema,AnswerAgentQuestionResponseSchema,init_agent_question_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-question.dto.js"(){"use strict";init_chat_block();init_response();AGENT_QUESTION_STATES=["open","answered","expired","cancelled","superseded"],AgentQuestionStateSchema=z48.enum(AGENT_QUESTION_STATES),AgentQuestionFormSchema=FormBlockSchema.extend({title:z48.string().trim().min(1).max(80)}).superRefine((form,ctx)=>{(!form.steps.every(step=>step.id)||new Set(form.steps.map(step=>step.id)).size!==form.steps.length)&&ctx.addIssue({code:"custom",path:["steps"],message:"Every question step needs its own stable id."})}),AgentQuestionAskSchema=z48.object({description:z48.string().trim().min(1).max(240),block:AgentQuestionFormSchema}).strict(),AgentQuestionRequestSchema=AgentQuestionAskSchema.extend({version:z48.literal(QUESTION_FORM_CONTRACT_VERSION),sessionIds:z48.array(z48.uuid()).optional()}),AgentQuestionSchema=z48.object({id:z48.uuid(),projectId:z48.uuid(),threadId:z48.uuid(),invocationId:z48.uuid(),agentKey:z48.string().min(1).max(120),anchorEnv:z48.string().min(1).max(64),retainedEnv:z48.string().min(1).max(64),state:AgentQuestionStateSchema,request:AgentQuestionRequestSchema,answer:QuestionFormAnswerSnapshotSchema.nullable(),answeredByUserId:z48.string().min(1).nullable(),continuationInvocationId:z48.uuid().nullable(),askedAt:z48.coerce.date(),expiresAt:z48.coerce.date(),closedAt:z48.coerce.date().nullable()}),AgentQuestionResponseSchema=createResponseSchema(AgentQuestionSchema),RunAgentQuestionResponseSchema=createResponseSchema(AgentQuestionSchema.nullable()),AgentQuestionAttentionSchema=z48.object({questionId:z48.uuid(),invocationId:z48.uuid(),askedAt:z48.coerce.date()}),OpenAgentQuestionsResponseSchema=createResponseSchema(z48.array(AgentQuestionAttentionSchema)),AnswerAgentQuestionResultSchema=z48.object({question:AgentQuestionSchema,continuationInvocationId:z48.uuid(),deduped:z48.boolean()}),AnswerAgentQuestionResponseSchema=createResponseSchema(AnswerAgentQuestionResultSchema)}});import{z as z49}from"zod";var IntegrationAuthModeSchema,IntegrationAuthKindSchema,IntegrationCredentialInputSchema,IntegrationCredentialUsageSchema,IntegrationToolEffectSchema,ProjectIntegrationCredentialStatusSchema,IntegrationAuthModeDTOSchema,IntegrationCredentialDefinitionDTOSchema,IntegrationToolDefinitionDTOSchema,IntegrationRecipeDTOSchema,IntegrationInfoDTOSchema,IntegrationInfoDTO,ProjectIntegrationStatusDTOSchema,ProjectIntegrationStatusDTO,ProjectIntegrationInstallationDTOSchema,ProjectIntegrationInstallationDTO,EnableProjectIntegrationRequestSchema,SwitchProjectIntegrationAuthRequestSchema,OrganizationIntegrationConnectionStatusSchema,OrganizationIntegrationConnectionDTOSchema,OrganizationIntegrationConnectionDTO,ProjectIntegrationConnectionDTOSchema,ProjectIntegrationConnectionDTO,McpHeaderNameSchema,McpHeaderDefinitionSchema,McpSecretMapSchema,ConnectOrganizationIntegrationRequestSchema,ProjectIntegrationReturnPathSchema,IntegrationCustomIdentitySchema,ConnectProjectIntegrationRequestSchema,McpIntegrationAuthSchema,McpIntegrationSetupAuthSchema,AddProjectMcpIntegrationRequestSchema,AddProjectMcpIntegrationResponseBaseSchema,AddProjectMcpIntegrationResponseSchema,ReusableMcpServerAuthKindSchema,ReusableMcpServerDTOSchema,ReusableMcpServerDTO,SearchReusableMcpServersQuerySchema,ReuseProjectMcpIntegrationRequestSchema,LinearOAuthApplicationDistributionSchema,OrganizationLinearAppDTOSchema,OrganizationLinearAppDTO,CreateManagedLinearAppRequestSchema,UpdateManagedLinearAppRequestSchema,StartManagedLinearConnectRequestSchema,StartProjectIntegrationConnectResponseSchema,StartProjectIntegrationConnectResponseDTO,ProjectIntegrationConnectResponseSchema,BindProjectChannelRequestSchema,ListProjectChannelsQuerySchema,SearchProjectChannelsQuerySchema,ProjectChannelBindingDTOSchema,ProjectChannelBindingDTO,ProjectChannelCandidateAvailabilitySchema,ProjectChannelCandidateDTOSchema,ProjectChannelCandidateDTO,FirecrawlScrapeFormatsSchema,FirecrawlScrapeToolInputSchema,FirecrawlSearchToolInputSchema,FirecrawlDeveloperSearchToolInputSchema,FirecrawlResearchSearchToolInputSchema,FirecrawlResearchPaperToolInputSchema,FirecrawlResearchRelatedToolInputSchema,FirecrawlMapToolInputSchema,FirecrawlCrawlToolInputSchema,FirecrawlMonitorScheduleInputSchema,FirecrawlMonitorScrapeOptionsInputSchema,FirecrawlMonitorTargetInputSchema,FirecrawlMonitorCreateToolInputSchema,FirecrawlMonitorUpdateToolInputSchema,FirecrawlMonitorIdToolInputSchema,FirecrawlMonitorCheckToolInputSchema,RunProjectIntegrationToolRequestSchema,ProjectIntegrationToolRunUsageSchema,ProjectIntegrationToolRunBillingSchema,FirecrawlScrapeToolOutputSchema,FirecrawlSearchToolOutputSchema,FirecrawlResearchPaperSchema,FirecrawlResearchPassageSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlMonitorScheduleOutputSchema,FirecrawlMonitorTargetOutputSchema,FirecrawlMonitorOutputSchema,FirecrawlMonitorCheckOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema,FirecrawlToolKeySchema,FirecrawlToolOutputSchema,ProjectIntegrationToolRunBaseSchema,ProjectIntegrationToolRunDTOSchema,ProjectIntegrationToolRunDTO,IntegrationsListResponseSchema,IntegrationInfoResponseSchema,ProjectIntegrationStatusResponseSchema,ProjectIntegrationInstallationResponseSchema,ProjectIntegrationToolRunResponseSchema,StartProjectIntegrationConnectResponseResponseSchema,OrganizationIntegrationConnectionResponseSchema,ProjectIntegrationConnectionsResponseSchema,ProjectIntegrationConnectResponseResponseSchema,AddProjectMcpIntegrationResponseResponseSchema,ReusableMcpServersResponseSchema,ProjectChannelBindingResponseSchema,ProjectChannelBindingsResponseSchema,ProjectChannelCandidatesResponseSchema,init_integration_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/integration.dto.js"(){"use strict";init_create_dto();init_response();IntegrationAuthModeSchema=z49.enum(["fimo","personal","oauth"]),IntegrationAuthKindSchema=z49.enum(["oauth","api_key","bot_token","basic"]),IntegrationCredentialInputSchema=z49.enum(["secret_text"]),IntegrationCredentialUsageSchema=z49.enum(["http_bearer","api_key"]),IntegrationToolEffectSchema=z49.enum(["read","write","delete","financial"]),ProjectIntegrationCredentialStatusSchema=z49.enum(["not_required","missing","configured"]),IntegrationAuthModeDTOSchema=z49.object({mode:IntegrationAuthModeSchema,label:z49.string().min(1),description:z49.string().min(1)}),IntegrationCredentialDefinitionDTOSchema=z49.object({id:z49.string().min(1),label:z49.string().min(1),input:IntegrationCredentialInputSchema,usage:IntegrationCredentialUsageSchema,required:z49.boolean()}),IntegrationToolDefinitionDTOSchema=z49.object({key:z49.string().min(1),name:z49.string().min(1),description:z49.string().min(1),effect:IntegrationToolEffectSchema,input:z49.record(z49.string(),z49.unknown()).optional()}),IntegrationRecipeDTOSchema=z49.object({title:z49.string().min(1),description:z49.string().min(1),command:z49.string().min(1).optional()}),IntegrationInfoDTOSchema=z49.object({key:z49.string().min(1),name:z49.string().min(1),summary:z49.string().min(1),type:z49.enum(["native","mcp"]).optional(),url:z49.string().url().optional(),defaultAuthMode:IntegrationAuthModeSchema.nullable().optional(),authModes:z49.array(IntegrationAuthModeDTOSchema),credentials:z49.array(IntegrationCredentialDefinitionDTOSchema),tools:z49.array(IntegrationToolDefinitionDTOSchema),liveToolsStatus:z49.enum(["available","unavailable"]).optional(),connectionCapabilities:z49.object({customIdentityCreation:z49.boolean()}).optional(),recipes:z49.array(IntegrationRecipeDTOSchema)}),IntegrationInfoDTO=createDTO(IntegrationInfoDTOSchema),ProjectIntegrationStatusDTOSchema=z49.object({projectId:z49.uuid(),integrationKey:z49.string().min(1),name:z49.string().min(1),summary:z49.string().min(1),installed:z49.boolean(),enabled:z49.boolean(),setupState:z49.enum(["setup_required","ready","attention"]),authMode:IntegrationAuthModeSchema.nullable(),authModeLabel:z49.string().nullable(),connectionId:z49.uuid().nullable().optional(),connectionAlias:z49.string().min(1).nullable().optional(),connectionStatus:z49.enum(["active","revoked","disconnected"]).nullable(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z49.array(z49.string()),installedAt:z49.coerce.date().nullable(),updatedAt:z49.coerce.date().nullable()}),ProjectIntegrationStatusDTO=createDTO(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationDTOSchema=z49.object({id:z49.uuid(),projectId:z49.uuid(),integrationKey:z49.string().min(1),enabled:z49.boolean(),authMode:IntegrationAuthModeSchema,authModeLabel:z49.string(),connectionId:z49.uuid().nullable().optional(),connectionAlias:z49.string().min(1).nullable().optional(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z49.array(z49.string()),createdAt:z49.coerce.date(),updatedAt:z49.coerce.date()}),ProjectIntegrationInstallationDTO=createDTO(ProjectIntegrationInstallationDTOSchema),EnableProjectIntegrationRequestSchema=z49.object({authMode:IntegrationAuthModeSchema.optional(),connectionAlias:z49.string().min(1).optional()}),SwitchProjectIntegrationAuthRequestSchema=z49.object({authMode:IntegrationAuthModeSchema}),OrganizationIntegrationConnectionStatusSchema=z49.enum(["active","revoked","disconnected"]),OrganizationIntegrationConnectionDTOSchema=z49.object({id:z49.uuid(),organizationId:z49.string().min(1),integrationKey:z49.string().min(1),registrationId:z49.uuid().nullable(),alias:z49.string().min(1),authKind:IntegrationAuthKindSchema,externalAccountId:z49.string().min(1),externalAccountName:z49.string().nullable(),externalBotUserId:z49.string().nullable(),status:OrganizationIntegrationConnectionStatusSchema,scopes:z49.array(z49.string()),connectedAt:z49.coerce.date(),updatedAt:z49.coerce.date()}),OrganizationIntegrationConnectionDTO=createDTO(OrganizationIntegrationConnectionDTOSchema),ProjectIntegrationConnectionDTOSchema=OrganizationIntegrationConnectionDTOSchema.extend({granted:z49.boolean(),isDefault:z49.boolean()}),ProjectIntegrationConnectionDTO=createDTO(ProjectIntegrationConnectionDTOSchema),McpHeaderNameSchema=z49.string().trim().min(1).max(120).regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,"Header name is invalid."),McpHeaderDefinitionSchema=z49.object({name:McpHeaderNameSchema}),McpSecretMapSchema=z49.record(McpHeaderNameSchema,z49.string().min(1)),ConnectOrganizationIntegrationRequestSchema=z49.object({alias:z49.string().min(1).max(120).optional(),token:z49.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z49.boolean().optional()}).superRefine((value,ctx)=>{value.token&&value.secrets&&ctx.addIssue({code:"custom",path:["token"],message:"Provide either one token or a complete MCP secret map."})}),ProjectIntegrationReturnPathSchema=z49.string().min(1).max(500).refine(value=>value.startsWith("/app/")&&!value.startsWith("//"),"Return path must be inside the Fimo app."),IntegrationCustomIdentitySchema=z49.object({displayName:z49.string().trim().min(1).max(35),backgroundColor:z49.string().regex(/^#[0-9a-fA-F]{6}$/).optional(),iconUrl:z49.string().url().max(2048).optional()}),ConnectProjectIntegrationRequestSchema=z49.discriminatedUnion("mode",[z49.object({mode:z49.literal("personal"),alias:z49.string().min(1).max(120),token:z49.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z49.boolean().optional()}),z49.object({mode:z49.literal("oauth"),returnTo:ProjectIntegrationReturnPathSchema.optional(),reconnect:z49.boolean().optional(),registrationId:z49.uuid().optional(),customIdentity:IntegrationCustomIdentitySchema.optional()})]).superRefine((value,ctx)=>{value.mode==="oauth"&&value.registrationId&&value.customIdentity&&ctx.addIssue({code:"custom",path:["registrationId"],message:"Choose an existing app identity or create a custom one, not both."}),value.mode==="personal"&&!!value.token==!!value.secrets&&ctx.addIssue({code:"custom",path:["token"],message:"Provide either one token or a complete MCP secret map."})}),McpIntegrationAuthSchema=z49.enum(["none","bearer","header"]),McpIntegrationSetupAuthSchema=z49.union([z49.literal("auto"),McpIntegrationAuthSchema]),AddProjectMcpIntegrationRequestSchema=z49.object({type:z49.literal("mcp"),name:z49.string().trim().min(1).max(120),url:z49.string().url(),auth:McpIntegrationSetupAuthSchema.default("auto"),returnTo:ProjectIntegrationReturnPathSchema.optional(),headers:z49.array(McpHeaderDefinitionSchema).min(1).max(20).optional(),secrets:McpSecretMapSchema.optional(),headerName:McpHeaderNameSchema.optional(),token:z49.string().min(1).optional(),integrationId:z49.string().min(2).max(80).optional()}).superRefine((value,ctx)=>{let protocol;try{protocol=new URL(value.url).protocol}catch{return}protocol!=="https:"&&ctx.addIssue({code:"custom",path:["url"],message:"MCP servers must use HTTPS."});let hasSingleHeader=!!(value.headerName||value.token),hasHeaderBundle=!!(value.headers||value.secrets);if(value.auth==="auto"&&(hasSingleHeader||hasHeaderBundle)&&ctx.addIssue({code:"custom",path:["auth"],message:"Automatic authentication does not accept manual credentials."}),value.auth==="none"&&(hasSingleHeader||hasHeaderBundle)&&ctx.addIssue({code:"custom",path:["auth"],message:"Public MCP servers cannot define credentials."}),value.auth==="bearer"&&(value.token||ctx.addIssue({code:"custom",path:["token"],message:"Bearer authentication requires a token."}),(value.headerName||value.headers||value.secrets)&&ctx.addIssue({code:"custom",path:["headers"],message:"Custom headers only apply to header authentication."})),value.auth!=="header")return;if(hasSingleHeader&&hasHeaderBundle){ctx.addIssue({code:"custom",path:["headers"],message:"Use either the single-header fields or headers with a complete secret map."});return}if(hasSingleHeader){value.headerName||ctx.addIssue({code:"custom",path:["headerName"],message:"Custom header authentication needs a header name."}),value.token||ctx.addIssue({code:"custom",path:["token"],message:"Header authentication requires a complete header value."});return}if(!value.headers){ctx.addIssue({code:"custom",path:["headers"],message:"Header authentication needs at least one header."});return}let normalizedNames=value.headers.map(header=>header.name.toLowerCase());if(new Set(normalizedNames).size!==normalizedNames.length&&ctx.addIssue({code:"custom",path:["headers"],message:"MCP header names must be unique."}),!value.secrets){ctx.addIssue({code:"custom",path:["secrets"],message:"Header authentication needs a complete secret map."});return}let secretNames=Object.keys(value.secrets).map(name=>name.toLowerCase());if(new Set(secretNames).size!==secretNames.length){ctx.addIssue({code:"custom",path:["secrets"],message:"MCP secret names must be unique."});return}let expected=new Set(normalizedNames),actual=new Set(secretNames);(expected.size!==actual.size||[...expected].some(name=>!actual.has(name)))&&ctx.addIssue({code:"custom",path:["secrets"],message:"The MCP secret map must exactly cover the configured headers."})}),AddProjectMcpIntegrationResponseBaseSchema=z49.object({integrationKey:z49.string().min(1),status:ProjectIntegrationStatusDTOSchema,info:IntegrationInfoDTOSchema}),AddProjectMcpIntegrationResponseSchema=z49.discriminatedUnion("mode",[AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z49.literal("connected")}),AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z49.literal("oauth"),connectUrl:z49.string().url(),expiresAt:z49.coerce.date()})]),ReusableMcpServerAuthKindSchema=z49.enum(["none","bearer","header","oauth"]),ReusableMcpServerDTOSchema=z49.object({id:z49.uuid(),name:z49.string().min(1),host:z49.string().min(1),authKind:ReusableMcpServerAuthKindSchema,sourceProjectName:z49.string().min(1),availability:z49.enum(["available","unavailable"])}),ReusableMcpServerDTO=createDTO(ReusableMcpServerDTOSchema),SearchReusableMcpServersQuerySchema=z49.object({query:z49.string().trim().max(120).optional()}),ReuseProjectMcpIntegrationRequestSchema=z49.object({serverId:z49.uuid()}),LinearOAuthApplicationDistributionSchema=z49.enum(["private","public"]),OrganizationLinearAppDTOSchema=z49.object({id:z49.uuid(),displayName:z49.string().min(1),description:z49.string().nullable(),iconUrl:z49.string().nullable(),distribution:LinearOAuthApplicationDistributionSchema,status:z49.enum(["active","revoked","disconnected"]),connectionIds:z49.array(z49.uuid()),createdAt:z49.coerce.date(),updatedAt:z49.coerce.date()}),OrganizationLinearAppDTO=createDTO(OrganizationLinearAppDTOSchema),CreateManagedLinearAppRequestSchema=z49.object({appName:z49.string().trim().min(2).max(80),description:z49.string().trim().max(1e3).optional(),iconUrl:z49.string().url().max(2048).optional()}),UpdateManagedLinearAppRequestSchema=CreateManagedLinearAppRequestSchema.partial().refine(input=>Object.keys(input).length>0,"At least one Linear app field is required."),StartManagedLinearConnectRequestSchema=z49.object({projectId:z49.uuid(),registrationId:z49.uuid(),returnTo:ProjectIntegrationReturnPathSchema.optional()}),StartProjectIntegrationConnectResponseSchema=z49.object({integrationKey:z49.string().min(1),connectUrl:z49.string().url(),expiresAt:z49.coerce.date()}),StartProjectIntegrationConnectResponseDTO=createDTO(StartProjectIntegrationConnectResponseSchema),ProjectIntegrationConnectResponseSchema=z49.discriminatedUnion("mode",[z49.object({mode:z49.literal("personal"),integrationKey:z49.string().min(1),connection:OrganizationIntegrationConnectionDTOSchema}),z49.object({mode:z49.literal("oauth"),integrationKey:z49.string().min(1),connectUrl:z49.string().url(),expiresAt:z49.coerce.date()})]),BindProjectChannelRequestSchema=z49.object({ref:z49.string().min(1),connectionAlias:z49.string().min(1).optional(),agentName:z49.string().min(1).max(160).nullable().optional(),force:z49.boolean().optional()}),ListProjectChannelsQuerySchema=z49.object({integrationKey:z49.string().min(1)}),SearchProjectChannelsQuerySchema=z49.object({integrationKey:z49.string().min(1),connectionAlias:z49.string().min(1),query:z49.string().max(160).optional()}),ProjectChannelBindingDTOSchema=z49.object({id:z49.uuid(),projectId:z49.uuid(),integrationKey:z49.string().min(1),connectionId:z49.uuid(),externalWorkspaceId:z49.string().min(1),externalChannelId:z49.string().min(1),externalChannelName:z49.string().nullable(),agentName:z49.string().nullable(),enabled:z49.boolean(),createdAt:z49.coerce.date(),updatedAt:z49.coerce.date()}),ProjectChannelBindingDTO=createDTO(ProjectChannelBindingDTOSchema),ProjectChannelCandidateAvailabilitySchema=z49.enum(["available","selected","used_by_project","unavailable"]),ProjectChannelCandidateDTOSchema=z49.object({id:z49.string().min(1),name:z49.string().min(1),visibility:z49.enum(["public","private"]),availability:ProjectChannelCandidateAvailabilitySchema,projectName:z49.string().min(1).nullable(),canMove:z49.boolean()}),ProjectChannelCandidateDTO=createDTO(ProjectChannelCandidateDTOSchema),FirecrawlScrapeFormatsSchema=z49.object({markdown:z49.boolean().optional(),summary:z49.boolean().optional(),links:z49.boolean().optional(),branding:z49.boolean().optional(),images:z49.boolean().optional(),html:z49.union([z49.literal("cleaned"),z49.literal("raw"),z49.boolean()]).optional(),json:z49.union([z49.boolean(),z49.object({prompt:z49.string().min(1).max(1e4),schema:z49.record(z49.string(),z49.unknown()).optional()})]).optional()}).default({markdown:!0}),FirecrawlScrapeToolInputSchema=z49.object({url:z49.string().url(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z49.boolean().optional(),timeoutMs:z49.number().int().positive().max(12e4).optional(),waitForMs:z49.number().int().min(0).max(3e4).optional(),maxAgeMs:z49.number().int().min(0).optional(),minAgeMs:z49.number().int().min(0).optional(),storeInCache:z49.boolean().optional(),proxy:z49.enum(["basic","enhanced","auto"]).optional(),mobile:z49.boolean().optional(),location:z49.object({country:z49.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z49.array(z49.string().min(1).max(35)).min(1).max(10).optional()}).optional()}),FirecrawlSearchToolInputSchema=z49.object({query:z49.string().min(1),maxResults:z49.number().int().positive().max(20).optional(),sources:z49.array(z49.enum(["web","news","images"])).min(1).max(3).optional(),categories:z49.array(z49.enum(["github","research","pdf"])).min(1).max(3).optional(),includeDomains:z49.array(z49.string().min(1).max(253)).min(1).max(100).optional(),excludeDomains:z49.array(z49.string().min(1).max(253)).min(1).max(100).optional(),timeRange:z49.enum(["hour","day","week","month","year"]).optional(),location:z49.string().min(1).max(160).optional(),country:z49.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code.").optional(),highlights:z49.boolean().optional(),timeoutMs:z49.number().int().positive().max(12e4).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."}),FirecrawlDeveloperSearchToolInputSchema=z49.object({query:z49.string().min(1).max(500),maxResults:z49.number().int().min(1).max(100).optional(),types:z49.array(z49.enum(["doc","issue","pull_request","readme"])).min(1).max(4).optional(),repos:z49.array(z49.string().min(1).max(512)).min(1).max(20).optional(),sources:z49.array(z49.string().min(1).max(512)).min(1).max(20).optional(),passages:z49.number().int().min(1).max(5).optional(),skills:z49.literal("only").optional(),language:z49.string().min(1).optional(),topic:z49.string().min(1).optional(),license:z49.string().min(1).optional(),minStars:z49.number().int().min(0).optional(),maxStars:z49.number().int().min(0).optional(),archived:z49.boolean().optional(),fork:z49.boolean().optional()}).refine(value=>value.minStars===void 0||value.maxStars===void 0||value.minStars<=value.maxStars,{message:"minStars must not exceed maxStars."}),FirecrawlResearchSearchToolInputSchema=z49.object({query:z49.string().min(1).max(500),maxResults:z49.number().int().min(1).max(500).optional(),authors:z49.array(z49.string().min(1)).min(1).optional(),categories:z49.array(z49.string().min(1)).min(1).optional(),from:z49.iso.date().optional(),to:z49.iso.date().optional()}),FirecrawlResearchPaperToolInputSchema=z49.object({paperId:z49.string().min(1).max(512),query:z49.string().min(1).max(500).optional(),maxPassages:z49.number().int().min(1).max(50).optional()}).refine(value=>value.query!==void 0||value.maxPassages===void 0,{message:"maxPassages requires query."}),FirecrawlResearchRelatedToolInputSchema=z49.object({paperId:z49.string().min(1).max(512),intent:z49.string().min(1).max(500),mode:z49.enum(["similar","citers","references"]).optional(),maxResults:z49.number().int().min(1).max(500).optional(),rerank:z49.boolean().optional(),anchors:z49.array(z49.string().min(1).max(512)).min(1).optional()}),FirecrawlMapToolInputSchema=z49.object({url:z49.string().url(),search:z49.string().min(1).optional(),limit:z49.number().int().positive().max(200).optional(),includeSubdomains:z49.boolean().optional(),timeoutMs:z49.number().int().positive().max(12e4).optional()}),FirecrawlCrawlToolInputSchema=z49.object({url:z49.string().url(),limit:z49.number().int().positive().max(20).optional(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z49.boolean().optional(),timeoutMs:z49.number().int().positive().max(12e4).optional()}),FirecrawlMonitorScheduleInputSchema=z49.object({text:z49.string().min(1).max(200).optional(),cron:z49.string().min(1).max(120).optional(),timezone:z49.string().min(1).max(80).optional()}).refine(value=>!!(value.text||value.cron),"Firecrawl monitor schedule needs text or cron."),FirecrawlMonitorScrapeOptionsInputSchema=z49.object({formats:FirecrawlScrapeFormatsSchema.optional(),onlyMainContent:z49.boolean().optional(),timeoutMs:z49.number().int().positive().max(12e4).optional(),waitForMs:z49.number().int().min(0).max(3e4).optional(),maxAgeMs:z49.number().int().min(0).optional(),minAgeMs:z49.number().int().min(0).optional(),storeInCache:z49.boolean().optional(),proxy:z49.enum(["basic","enhanced","auto"]).optional(),mobile:z49.boolean().optional(),location:z49.object({country:z49.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z49.array(z49.string().min(1).max(35)).min(1).max(10).optional()}).optional()}).optional(),FirecrawlMonitorTargetInputSchema=z49.union([z49.object({type:z49.enum(["scrape","crawl"]).default("scrape"),urls:z49.array(z49.string().url()).min(1).max(50),scrapeOptions:FirecrawlMonitorScrapeOptionsInputSchema}),z49.object({type:z49.literal("search"),queries:z49.array(z49.string().min(1).max(256)).min(1).max(12),searchWindow:z49.enum(["5m","15m","1h","6h","24h","7d"]).optional(),maxResults:z49.number().int().min(1).max(50).optional(),includeDomains:z49.array(z49.string().min(1).max(253)).min(1).max(50).optional(),excludeDomains:z49.array(z49.string().min(1).max(253)).min(1).max(50).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."})]),FirecrawlMonitorCreateToolInputSchema=z49.object({name:z49.string().min(1).max(256),schedule:FirecrawlMonitorScheduleInputSchema,targets:z49.array(FirecrawlMonitorTargetInputSchema).min(1).max(50),goal:z49.string().min(1).max(2e3).optional(),judgeEnabled:z49.boolean().optional(),retentionDays:z49.number().int().min(1).max(365).optional(),notification:z49.object({email:z49.object({enabled:z49.boolean().default(!0),recipients:z49.array(z49.string().email()).min(1).max(20),includeDiffs:z49.boolean().optional()}).optional()}).optional()}).refine(value=>!value.targets.some(target=>target.type==="search")||value.judgeEnabled===!1||!!value.goal,{message:"Search monitor targets require goal unless judgeEnabled is false."}),FirecrawlMonitorUpdateToolInputSchema=z49.object({monitorId:z49.string().uuid(),name:z49.string().min(1).max(256).optional(),schedule:FirecrawlMonitorScheduleInputSchema.optional(),targets:z49.array(FirecrawlMonitorTargetInputSchema).min(1).max(50).optional(),goal:z49.string().min(1).max(2e3).optional(),judgeEnabled:z49.boolean().optional(),retentionDays:z49.number().int().min(1).max(365).optional(),status:z49.enum(["active","paused"]).optional()}).refine(value=>Object.keys(value).some(key=>key!=="monitorId"),"Monitor update needs a changed field."),FirecrawlMonitorIdToolInputSchema=z49.object({monitorId:z49.string().uuid()}),FirecrawlMonitorCheckToolInputSchema=FirecrawlMonitorIdToolInputSchema.extend({checkId:z49.string().uuid()}),RunProjectIntegrationToolRequestSchema=z49.object({tool:z49.string().min(1),input:z49.record(z49.string(),z49.unknown()),connectionAlias:z49.string().min(1).optional(),approval:z49.string().min(1).max(4e3).optional()}),ProjectIntegrationToolRunUsageSchema=z49.object({provider:z49.string().min(1),providerCredits:z49.number().nonnegative().optional(),providerCostUsd:z49.number().nonnegative().optional(),requests:z49.number().int().nonnegative().optional()}),ProjectIntegrationToolRunBillingSchema=z49.object({credits:z49.number().int().nonnegative()}),FirecrawlScrapeToolOutputSchema=z49.object({url:z49.string(),provider:z49.literal("firecrawl"),title:z49.string().optional(),statusCode:z49.number().optional(),markdown:z49.string().optional(),summary:z49.string().optional(),links:z49.array(z49.string()).optional(),images:z49.array(z49.string()).optional(),html:z49.string().optional(),json:z49.unknown().optional(),branding:z49.record(z49.string(),z49.unknown()).optional(),warning:z49.string().optional()}),FirecrawlSearchToolOutputSchema=z49.object({query:z49.string(),provider:z49.literal("firecrawl"),warning:z49.string().optional(),results:z49.array(z49.object({title:z49.string(),url:z49.string(),snippet:z49.string().optional(),content:z49.string().optional(),score:z49.number().optional(),publishedAt:z49.string().optional()}))}),FirecrawlResearchPaperSchema=z49.object({paperId:z49.string(),primaryId:z49.string().optional(),ids:z49.record(z49.string(),z49.array(z49.string())).optional(),title:z49.string().optional(),abstract:z49.string().optional(),score:z49.number().optional()}).passthrough(),FirecrawlResearchPassageSchema=z49.object({text:z49.string(),score:z49.number().optional()}).passthrough(),FirecrawlDeveloperSearchToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),results:z49.array(z49.object({id:z49.string(),type:z49.string().min(1).optional(),url:z49.string(),title:z49.string().optional(),passages:z49.array(z49.object({text:z49.string()}).passthrough())}).passthrough()),coverage:z49.record(z49.string(),z49.string()).optional(),reranked:z49.boolean().optional(),repos:z49.array(z49.record(z49.string(),z49.unknown())).optional(),sources:z49.array(z49.record(z49.string(),z49.unknown())).optional()}),FirecrawlResearchSearchToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),results:z49.array(FirecrawlResearchPaperSchema)}),FirecrawlResearchPaperToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),paper:z49.record(z49.string(),z49.unknown()),paperId:z49.string().optional(),query:z49.string().optional(),passages:z49.array(FirecrawlResearchPassageSchema).optional()}),FirecrawlResearchRelatedToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),results:z49.array(FirecrawlResearchPaperSchema),poolSize:z49.number().int().nonnegative(),truncated:z49.boolean(),note:z49.string().nullable().optional()}),FirecrawlMapToolOutputSchema=z49.object({url:z49.string(),provider:z49.literal("firecrawl"),count:z49.number(),links:z49.array(z49.object({url:z49.string(),title:z49.string().optional(),description:z49.string().optional()}))}),FirecrawlCrawlToolOutputSchema=z49.object({url:z49.string(),provider:z49.literal("firecrawl"),total:z49.number(),pages:z49.array(z49.object({url:z49.string(),title:z49.string().optional(),statusCode:z49.number().optional(),markdown:z49.string().optional(),summary:z49.string().optional(),links:z49.array(z49.string()).optional(),images:z49.array(z49.string()).optional(),html:z49.string().optional(),warning:z49.string().optional()})),warning:z49.string().optional()}),FirecrawlMonitorScheduleOutputSchema=z49.object({cron:z49.string().optional(),text:z49.string().optional(),timezone:z49.string().optional()}).passthrough(),FirecrawlMonitorTargetOutputSchema=z49.object({id:z49.string().optional(),type:z49.enum(["scrape","crawl","search"]).optional(),urls:z49.array(z49.string()).optional(),queries:z49.array(z49.string()).optional(),searchWindow:z49.string().optional(),maxResults:z49.number().optional(),includeDomains:z49.array(z49.string()).optional(),excludeDomains:z49.array(z49.string()).optional(),scrapeOptions:z49.record(z49.string(),z49.unknown()).optional()}).passthrough(),FirecrawlMonitorOutputSchema=z49.object({id:z49.string(),name:z49.string(),status:z49.string().optional(),schedule:FirecrawlMonitorScheduleOutputSchema.optional(),nextRunAt:z49.string().nullable().optional(),lastRunAt:z49.string().nullable().optional(),currentCheckId:z49.string().nullable().optional(),targets:z49.array(FirecrawlMonitorTargetOutputSchema).optional(),goal:z49.string().nullable().optional(),judgeEnabled:z49.boolean().optional(),estimatedCreditsPerMonth:z49.number().optional(),createdAt:z49.string().optional(),updatedAt:z49.string().optional()}).passthrough(),FirecrawlMonitorCheckOutputSchema=z49.object({id:z49.string(),monitorId:z49.string(),scheduledFor:z49.string().nullable().optional(),startedAt:z49.string().nullable().optional(),finishedAt:z49.string().nullable().optional(),estimatedCredits:z49.number().nullable().optional(),reservedCredits:z49.number().nullable().optional(),actualCredits:z49.number().nullable().optional(),billingStatus:z49.string().nullable().optional(),summary:z49.object({totalPages:z49.number().optional(),same:z49.number().optional(),changed:z49.number().optional(),new:z49.number().optional(),removed:z49.number().optional(),error:z49.number().optional()}).passthrough().optional(),error:z49.string().nullable().optional(),createdAt:z49.string().optional(),updatedAt:z49.string().optional()}).passthrough(),FirecrawlMonitorListToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),monitors:z49.array(FirecrawlMonitorOutputSchema)}),FirecrawlMonitorDetailToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),monitor:FirecrawlMonitorOutputSchema}),FirecrawlMonitorDeleteToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),monitorId:z49.string(),deleted:z49.boolean()}),FirecrawlMonitorChecksToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),monitorId:z49.string(),checks:z49.array(FirecrawlMonitorCheckOutputSchema)}),FirecrawlMonitorCheckDetailToolOutputSchema=z49.object({provider:z49.literal("firecrawl"),monitorId:z49.string(),check:FirecrawlMonitorCheckOutputSchema,next:z49.string().optional()}),FirecrawlToolKeySchema=z49.enum(["search","developer.search","research.search","research.paper","research.related","scrape","map","crawl","monitor.create","monitor.update","monitor.list","monitor.get","monitor.pause","monitor.resume","monitor.delete","monitor.run","monitor.checks","monitor.check"]),FirecrawlToolOutputSchema=z49.union([FirecrawlSearchToolOutputSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlScrapeToolOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema]),ProjectIntegrationToolRunBaseSchema=z49.object({projectId:z49.uuid(),integrationKey:z49.string().min(1),tool:z49.string().min(1),connectionAlias:z49.string().min(1).nullable().optional(),output:z49.record(z49.string(),z49.unknown()),executedAt:z49.coerce.date()}),ProjectIntegrationToolRunDTOSchema=z49.discriminatedUnion("authMode",[ProjectIntegrationToolRunBaseSchema.extend({authMode:z49.literal("fimo"),billing:ProjectIntegrationToolRunBillingSchema,usage:z49.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z49.literal("personal"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z49.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z49.literal("oauth"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z49.undefined().optional()})]),ProjectIntegrationToolRunDTO=createDTO(ProjectIntegrationToolRunDTOSchema),IntegrationsListResponseSchema=createResponseSchema(z49.array(ProjectIntegrationStatusDTOSchema)),IntegrationInfoResponseSchema=createResponseSchema(IntegrationInfoDTOSchema),ProjectIntegrationStatusResponseSchema=createResponseSchema(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationResponseSchema=createResponseSchema(ProjectIntegrationInstallationDTOSchema),ProjectIntegrationToolRunResponseSchema=createResponseSchema(ProjectIntegrationToolRunDTOSchema),StartProjectIntegrationConnectResponseResponseSchema=createResponseSchema(StartProjectIntegrationConnectResponseSchema),OrganizationIntegrationConnectionResponseSchema=createResponseSchema(OrganizationIntegrationConnectionDTOSchema),ProjectIntegrationConnectionsResponseSchema=createResponseSchema(z49.array(ProjectIntegrationConnectionDTOSchema)),ProjectIntegrationConnectResponseResponseSchema=createResponseSchema(ProjectIntegrationConnectResponseSchema),AddProjectMcpIntegrationResponseResponseSchema=createResponseSchema(AddProjectMcpIntegrationResponseSchema),ReusableMcpServersResponseSchema=createResponseSchema(z49.array(ReusableMcpServerDTOSchema)),ProjectChannelBindingResponseSchema=createResponseSchema(ProjectChannelBindingDTOSchema),ProjectChannelBindingsResponseSchema=createResponseSchema(z49.array(ProjectChannelBindingDTOSchema)),ProjectChannelCandidatesResponseSchema=createResponseSchema(z49.array(ProjectChannelCandidateDTOSchema))}});import{z as z50}from"zod";var IntegrationIdSchema,IntegrationScopeSchema,IntegrationOAuthSchema,IntegrationApiKeySchema,IntegrationProviderAuthSchema,IntegrationMcpAuthSchema,IntegrationAuthSchema,IntegrationRecipeSchema,IntegrationSettingSchema,IntegrationToolsSchema,IntegrationSkillSchema,IntegrationManifestSchema,IntegrationPermissionDTOSchema,IntegrationSettingDefinitionDTOSchema,IntegrationKindSchema,IntegrationSummaryDTOSchema,IntegrationAccountDTOSchema,IntegrationSiteDTOSchema,OrganizationIntegrationDTOSchema,ProjectIntegrationDTOSchema,IntegrationReturnPathSchema,StartIntegrationInstallRequestSchema,StartIntegrationInstallDTOSchema,AddOrganizationMcpServerDTOSchema,ConnectIntegrationKeyRequestSchema,ReplaceIntegrationServerCredentialsRequestSchema,UpdateIntegrationSiteRequestSchema,UpdateIntegrationSitesRequestSchema,UpdateProjectIntegrationSettingsRequestSchema,IntegrationSettingOptionDTOSchema,IntegrationToolMatchDTOSchema,ProjectIntegrationGuideDTOSchema,APPROVAL_TOKEN_MAX,REQUEST_TOKEN_MAX,RunIntegrationToolRequestSchema,IntegrationApprovalCallShape,IntegrationToolRunResultDTOSchema,IntegrationApprovalPreviewRequestSchema,IntegrationApprovalPreviewDTOSchema,RoutineIntegrationApprovalSchema,IntegrationApprovalDecisionSchema,DecideIntegrationApprovalRequestSchema,IntegrationApprovalDecisionDTOSchema,IntegrationAgentAccessDTOSchema,init_integration_catalog_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/integration-catalog.dto.js"(){"use strict";init_integration_dto();IntegrationIdSchema=z50.string().min(2).max(80).regex(/^[a-z0-9][a-z0-9-]*$/,"App ids use lowercase letters, digits and dashes."),IntegrationScopeSchema=z50.strictObject({scope:z50.string().min(1),reason:z50.string().min(1).max(200)}),IntegrationOAuthSchema=z50.strictObject({id:z50.string().min(1).max(40),label:z50.string().min(1).max(80),kind:z50.literal("oauth"),actor:z50.literal("user").default("user"),authorizationUrl:z50.url(),tokenUrl:z50.url(),revocationUrl:z50.url().optional(),userInfoUrl:z50.url().optional(),client:z50.strictObject({idEnv:z50.string().min(1),secretEnv:z50.string().min(1)}),authorizeParams:z50.record(z50.string(),z50.string()).default({}),scopes:z50.array(IntegrationScopeSchema).min(1)}),IntegrationApiKeySchema=z50.strictObject({id:z50.string().min(1).max(40),label:z50.string().min(1).max(80),kind:z50.literal("apiKey"),keyLabel:z50.string().min(1).max(80),placeholder:z50.string().min(1).max(40).optional(),helpUrl:z50.url()}),IntegrationProviderAuthSchema=z50.strictObject({id:z50.string().min(1).max(40),label:z50.string().min(1).max(80),kind:z50.literal("provider")}),IntegrationMcpAuthSchema=z50.strictObject({id:z50.string().min(1).max(40),label:z50.string().min(1).max(80),kind:z50.literal("mcp"),methods:z50.array(McpIntegrationSetupAuthSchema).min(1),scopes:z50.array(z50.string().min(1)).min(1).optional(),header:z50.object({name:z50.string().min(1).max(80),valuePrefix:z50.string().max(80)}).optional()}),IntegrationAuthSchema=z50.discriminatedUnion("kind",[IntegrationOAuthSchema,IntegrationApiKeySchema,IntegrationProviderAuthSchema,IntegrationMcpAuthSchema]),IntegrationRecipeSchema=z50.strictObject({title:z50.string().min(1).max(80),description:z50.string().min(1).max(300),command:z50.string().min(1).optional()}),IntegrationSettingSchema=z50.strictObject({type:z50.enum(["string","choice"]),label:z50.string().min(1).max(80),description:z50.string().min(1).max(300).optional(),required:z50.boolean().default(!1),optionsFrom:z50.strictObject({tool:z50.string().min(1)}).optional()}),IntegrationToolsSchema=z50.discriminatedUnion("source",[z50.strictObject({source:z50.literal("hosted")}),z50.strictObject({source:z50.literal("mcp"),url:z50.url()})]),IntegrationSkillSchema=z50.strictObject({name:z50.string().min(1).max(64),description:z50.string().min(1).max(300),content:z50.string().min(1)}),IntegrationManifestSchema=z50.strictObject({apiVersion:z50.literal(1),id:IntegrationIdSchema,version:z50.string().regex(/^\d+\.\d+\.\d+$/),listing:z50.strictObject({name:z50.string().min(1).max(60),description:z50.string().min(1).max(200),details:z50.string().min(1).max(1e3),icon:z50.string().min(1),category:z50.enum(["seo","ai-visibility","analytics","communication"]),publisher:z50.string().min(1).max(60),agentReads:z50.strictObject({label:z50.string().min(1).max(80),description:z50.string().min(1).max(200)}).optional()}),auth:z50.array(IntegrationAuthSchema).min(1),identity:z50.strictObject({label:z50.string().min(1)}).optional(),settings:z50.record(z50.string().regex(/^[a-zA-Z][a-zA-Z0-9]*$/),IntegrationSettingSchema).default({}),tools:IntegrationToolsSchema,skills:z50.array(IntegrationSkillSchema).default([]),recipes:z50.array(IntegrationRecipeSchema).default([])}),IntegrationPermissionDTOSchema=z50.object({scope:z50.string(),reason:z50.string()}),IntegrationSettingDefinitionDTOSchema=z50.object({key:z50.string(),type:z50.enum(["string","choice"]),label:z50.string(),description:z50.string().nullable(),required:z50.boolean(),hasOptions:z50.boolean()}),IntegrationKindSchema=z50.enum(["catalog","custom","builtIn"]),IntegrationSummaryDTOSchema=z50.object({id:z50.string(),kind:IntegrationKindSchema,integrationKey:z50.string(),host:z50.string().nullable(),apiKey:z50.object({label:z50.string(),placeholder:z50.string().nullable(),helpUrl:z50.string(),primary:z50.boolean()}).nullable(),mcp:z50.object({url:z50.string(),methods:z50.array(McpIntegrationSetupAuthSchema),header:z50.object({name:z50.string(),valuePrefix:z50.string()}).nullable()}).nullable(),name:z50.string(),description:z50.string(),details:z50.string(),icon:z50.string(),category:z50.string(),publisher:z50.string(),signInLabel:z50.string(),permissions:z50.array(IntegrationPermissionDTOSchema),readOnly:z50.boolean(),settings:z50.array(IntegrationSettingDefinitionDTOSchema)}),IntegrationAccountDTOSchema=z50.object({connectionId:z50.uuid(),alias:z50.string(),accountName:z50.string().nullable(),status:z50.enum(["active","revoked"]),authKind:z50.enum(["oauth","api_key"]),connectedAt:z50.coerce.date()}),IntegrationSiteDTOSchema=z50.object({projectId:z50.uuid(),projectName:z50.string(),enabled:z50.boolean(),granted:z50.boolean(),connectionId:z50.uuid().nullable(),settings:z50.record(z50.string(),z50.string()),missingSettings:z50.array(z50.string())}),OrganizationIntegrationDTOSchema=IntegrationSummaryDTOSchema.extend({installed:z50.boolean(),accounts:z50.array(IntegrationAccountDTOSchema),siteAccess:z50.enum(["all","selected"]),sites:z50.array(IntegrationSiteDTOSchema)}),ProjectIntegrationDTOSchema=IntegrationSummaryDTOSchema.extend({installed:z50.boolean(),enabled:z50.boolean(),granted:z50.boolean(),accountName:z50.string().nullable(),settingsValues:z50.record(z50.string(),z50.string()),missingSettings:z50.array(z50.string()),tools:z50.array(z50.object({key:z50.string(),name:z50.string(),description:z50.string(),effect:IntegrationToolEffectSchema}))}),IntegrationReturnPathSchema=z50.string().min(1).max(500).refine(value=>value.startsWith("/app/")&&!value.startsWith("//"),"Return path must be inside the Fimo app."),StartIntegrationInstallRequestSchema=z50.object({projectId:z50.uuid().optional(),returnTo:IntegrationReturnPathSchema.optional()}),StartIntegrationInstallDTOSchema=z50.object({connectUrl:z50.url().nullable(),expiresAt:z50.coerce.date().nullable()}),AddOrganizationMcpServerDTOSchema=StartIntegrationInstallDTOSchema.extend({integrationId:z50.string()}),ConnectIntegrationKeyRequestSchema=z50.object({key:z50.string().trim().min(1).max(500),projectId:z50.uuid().optional()}),ReplaceIntegrationServerCredentialsRequestSchema=z50.object({token:z50.string().min(1).max(8e3).optional(),secrets:McpSecretMapSchema.optional()}).refine(value=>!!value.token!=!!value.secrets,"Send either a token or the header values."),UpdateIntegrationSiteRequestSchema=z50.object({enabled:z50.boolean(),connectionId:z50.uuid().optional()}),UpdateIntegrationSitesRequestSchema=z50.object({access:z50.enum(["all","selected"]).optional(),projectIds:z50.array(z50.uuid()).max(1e3),connectionId:z50.uuid().optional()}),UpdateProjectIntegrationSettingsRequestSchema=z50.object({settings:z50.record(z50.string(),z50.string().max(500))}),IntegrationSettingOptionDTOSchema=z50.object({value:z50.string(),label:z50.string(),suggested:z50.boolean()}),IntegrationToolMatchDTOSchema=z50.object({integrationId:z50.string(),integrationName:z50.string(),key:z50.string(),name:z50.string(),description:z50.string(),effect:IntegrationToolEffectSchema,input:z50.record(z50.string(),z50.unknown())}),ProjectIntegrationGuideDTOSchema=z50.object({integrationId:z50.string(),name:z50.string(),description:z50.string(),content:z50.string()}),APPROVAL_TOKEN_MAX=4e3,REQUEST_TOKEN_MAX=32e3,RunIntegrationToolRequestSchema=z50.object({tool:z50.string().min(1).max(120),input:z50.record(z50.string(),z50.unknown()).default({}),approval:z50.string().min(1).max(APPROVAL_TOKEN_MAX).optional(),readOnly:z50.boolean().optional()}),IntegrationApprovalCallShape={integration:z50.object({id:z50.string(),name:z50.string()}),tool:z50.object({key:z50.string(),name:z50.string(),effect:IntegrationToolEffectSchema}),input:z50.record(z50.string(),z50.unknown()),reason:z50.string(),canAlwaysAllow:z50.boolean()},IntegrationToolRunResultDTOSchema=z50.discriminatedUnion("status",[z50.object({status:z50.literal("ok"),output:z50.record(z50.string(),z50.unknown())}),z50.object({status:z50.literal("approval_required"),request:z50.string(),approveUrl:z50.string(),...IntegrationApprovalCallShape}),z50.object({status:z50.literal("blocked"),reason:z50.string()})]),IntegrationApprovalPreviewRequestSchema=z50.object({request:z50.string().min(1).max(REQUEST_TOKEN_MAX)}),IntegrationApprovalPreviewDTOSchema=z50.object({...IntegrationApprovalCallShape,allowOnce:z50.boolean(),expiresAt:z50.coerce.date()}),RoutineIntegrationApprovalSchema=IntegrationApprovalPreviewDTOSchema.pick({integration:!0,tool:!0,reason:!0,canAlwaysAllow:!0,allowOnce:!0}).extend({request:z50.string()}),IntegrationApprovalDecisionSchema=z50.enum(["allow","always","decline"]),DecideIntegrationApprovalRequestSchema=z50.object({request:z50.string().min(1).max(REQUEST_TOKEN_MAX),decision:IntegrationApprovalDecisionSchema}),IntegrationApprovalDecisionDTOSchema=z50.object({decision:IntegrationApprovalDecisionSchema,approval:z50.string().optional(),resumed:z50.boolean().optional()}),IntegrationAgentAccessDTOSchema=z50.object({reads:z50.object({label:z50.string(),description:z50.string()}).nullable(),tools:z50.array(z50.object({tool:z50.string(),label:z50.string(),description:z50.string(),allowed:z50.boolean()}))})}});import{z as z51}from"zod";var SCHEDULE_NOTIFICATION_TOPICS,ScheduleNotificationTopicSchema,USER_MANAGED_NOTIFICATION_TOPICS,UserManagedNotificationTopicSchema,MAX_SCHEDULE_SUBSCRIBERS,ScheduleSubscriberDeliveryStateSchema,ScheduleSubscriberCandidateSchema,ScheduleNotificationSettingsSchema,ScheduleNotificationSettingsResponseSchema,UpdateScheduleSubscribersRequestSchema,UserNotificationPreferenceSchema,SCHEDULE_OPT_OUT_LINK_ACTIONS,ScheduleOptOutLinkActionSchema,SCHEDULE_OPT_OUT_ACTIONS,ScheduleOptOutActionSchema,ScheduleOptOutStateSchema,ScheduleOptOutResponseSchema,FollowedScheduleSchema,FollowedSchedulesSchema,FollowedSchedulesResponseSchema,init_schedule_notifications_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schedule-notifications.dto.js"(){"use strict";init_response();SCHEDULE_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance"],ScheduleNotificationTopicSchema=z51.enum(SCHEDULE_NOTIFICATION_TOPICS),USER_MANAGED_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance","agent_runtime_allowance"],UserManagedNotificationTopicSchema=z51.enum(USER_MANAGED_NOTIFICATION_TOPICS),MAX_SCHEDULE_SUBSCRIBERS=5,ScheduleSubscriberDeliveryStateSchema=z51.enum(["deliverable","suppressed"]),ScheduleSubscriberCandidateSchema=z51.object({userId:z51.string().min(1),name:z51.string(),email:z51.string().min(1),subscribed:z51.boolean(),deliveryState:ScheduleSubscriberDeliveryStateSchema}),ScheduleNotificationSettingsSchema=z51.object({maxSubscribers:z51.number().int().positive(),subscriberCount:z51.number().int().nonnegative(),effectiveRecipientCount:z51.number().int().nonnegative(),currentUserSubscribed:z51.boolean(),candidates:z51.array(ScheduleSubscriberCandidateSchema).optional()}),ScheduleNotificationSettingsResponseSchema=createResponseSchema(ScheduleNotificationSettingsSchema),UpdateScheduleSubscribersRequestSchema=z51.object({userIds:z51.array(z51.string().min(1)).max(MAX_SCHEDULE_SUBSCRIBERS).refine(userIds=>new Set(userIds).size===userIds.length,"Follower ids must be unique.")}),UserNotificationPreferenceSchema=z51.object({topic:UserManagedNotificationTopicSchema,enabled:z51.boolean(),source:z51.enum(["default","explicit"])}),SCHEDULE_OPT_OUT_LINK_ACTIONS=["unfollow_schedule","disable_topic"],ScheduleOptOutLinkActionSchema=z51.enum(SCHEDULE_OPT_OUT_LINK_ACTIONS),SCHEDULE_OPT_OUT_ACTIONS=["unfollow_schedule","unfollow_all_schedules","disable_topic"],ScheduleOptOutActionSchema=z51.enum(SCHEDULE_OPT_OUT_ACTIONS),ScheduleOptOutStateSchema=z51.object({action:ScheduleOptOutActionSchema,topic:ScheduleNotificationTopicSchema,scheduleName:z51.string().nullable(),maskedEmail:z51.string().min(1),applied:z51.boolean(),expiresAt:z51.coerce.date()}),ScheduleOptOutResponseSchema=createResponseSchema(ScheduleOptOutStateSchema),FollowedScheduleSchema=z51.object({scheduleId:z51.string().min(1),scheduleName:z51.string(),projectId:z51.string().min(1),projectName:z51.string(),env:z51.string().min(1)}),FollowedSchedulesSchema=z51.object({schedules:z51.array(FollowedScheduleSchema)}),FollowedSchedulesResponseSchema=createResponseSchema(FollowedSchedulesSchema)}});import{z as z52}from"zod";var PROJECT_SECRET_KEY_PATTERN,PUBLIC_PROJECT_SECRET_PREFIX_PATTERN,RESERVED_PROJECT_SECRET_KEYS,ProjectSecretKeySchema,ProjectScheduleStatusSchema,ProjectScheduleDTOSchema,ProjectScheduleDTO,CreateProjectScheduleRequestSchema,UpdateProjectScheduleRequestSchema,ProjectScheduleRunStatusSchema,ProjectScheduleRunTriggerSchema,ProjectScheduleRunSecretSnapshotStateSchema,ProjectScheduleRunSecretResolutionSchema,ProjectSchedulePolicySchema,SchedulePolicyStateSchema,ProjectSchedulePlanSnapshotSchema,ProjectScheduleUsageSchema,ProjectScheduleRunDTOSchema,ProjectScheduleRunDTO,ProjectScheduleRunSecretSnapshotSchema,ProjectScheduleRunDetailDTOSchema,ProjectScheduleRunDetailDTO,RunProjectScheduleRequestSchema,ProjectScheduleRunsQuerySchema,ProjectScheduleResponseSchema,ProjectSchedulesListDataSchema,ProjectSchedulesListResponseSchema,ProjectSchedulesOverviewResponseSchema,ProjectScheduleDetailDataSchema,ProjectScheduleDetailResponseSchema,ProjectScheduleRunsPageSchema,ProjectScheduleRunsResponseSchema,ProjectScheduleRunResponseSchema,ProjectScheduleRunDetailResponseSchema,init_schedule_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schedule.dto.js"(){"use strict";init_common();init_env();init_create_dto();init_response();init_schedule_notifications_dto();PROJECT_SECRET_KEY_PATTERN=/^[A-Z_][A-Z0-9_]*$/,PUBLIC_PROJECT_SECRET_PREFIX_PATTERN=/^(PUBLIC_|VITE_|NEXT_PUBLIC_|NUXT_PUBLIC_)/,RESERVED_PROJECT_SECRET_KEYS=new Set([...FIMO_MANAGED_PROJECT_ENV_KEYS,"FIMO_SCHEDULE_ID","FIMO_SCHEDULE_RUN_ID","FIMO_SCHEDULE_NAME"]),ProjectSecretKeySchema=z52.string().min(1).max(255).superRefine((key,context)=>{PROJECT_SECRET_KEY_PATTERN.test(key)?RESERVED_PROJECT_SECRET_KEYS.has(key)?context.addIssue({code:"custom",message:`Secret key '${key}' is managed by Fimo and cannot be stored in project secrets.`}):PUBLIC_PROJECT_SECRET_PREFIX_PATTERN.test(key)&&context.addIssue({code:"custom",message:`Secret key '${key}' uses a public variable prefix. Store public values with fimo vars instead.`}):context.addIssue({code:"custom",message:`Secret key '${key}' must be UPPER_SNAKE_CASE.`})}),ProjectScheduleStatusSchema=z52.enum(["ok","failed"]),ProjectScheduleDTOSchema=BaseEntitySchema.extend({projectId:z52.uuid(),env:z52.string().min(1),name:z52.string().min(1),cron:z52.string().min(1),command:z52.string().min(1),secretKeys:z52.array(z52.string().min(1)),enabled:z52.boolean(),lastRunAt:z52.coerce.date().nullable(),lastStatus:ProjectScheduleStatusSchema.nullable(),lastError:z52.string().nullable(),suspendedAt:z52.coerce.date().nullable().optional(),suspensionReason:z52.string().nullable().optional(),overPolicyReasons:z52.array(z52.string()).optional()}),ProjectScheduleDTO=createDTO(ProjectScheduleDTOSchema),CreateProjectScheduleRequestSchema=z52.object({name:z52.string().min(1).max(120),cron:z52.string().min(1).max(120),command:z52.string().min(1).max(500),secretKeys:z52.array(ProjectSecretKeySchema).default([]),enabled:z52.boolean().optional()}),UpdateProjectScheduleRequestSchema=z52.object({name:z52.string().min(1).max(120).optional(),cron:z52.string().min(1).max(120).optional(),command:z52.string().min(1).max(500).optional(),secretKeys:z52.array(ProjectSecretKeySchema).optional()}).refine(request=>Object.keys(request).length>0,"Pass at least one schedule field to update."),ProjectScheduleRunStatusSchema=z52.enum(["queued","running","succeeded","failed","skipped"]),ProjectScheduleRunTriggerSchema=z52.enum(["cron","ui","cli"]),ProjectScheduleRunSecretSnapshotStateSchema=z52.enum(["pending","resolved","failed"]),ProjectScheduleRunSecretResolutionSchema=z52.enum(["resolved","missing","deleted","recreated","rotated"]),ProjectSchedulePolicySchema=z52.object({maxRuns:z52.number().int().positive(),retentionDays:z52.number().int().positive().nullable(),outputRetentionDays:z52.number().int().positive(),maxOutputBytes:z52.number().int().positive()}),SchedulePolicyStateSchema=z52.enum(["ok","near_limit","exhausted","over_policy"]),ProjectSchedulePlanSnapshotSchema=z52.object({code:z52.enum(["Free","PAYG","Starter","Premium","Pro"]),source:z52.enum(["cached_subscription","free_fallback"]),activeSchedules:z52.object({used:z52.number().int().nonnegative(),limit:z52.number().int().nonnegative()}),minCadenceMinutes:z52.number().int().positive(),maxRunMs:z52.number().int().positive(),concurrency:z52.object({used:z52.number().int().nonnegative(),limit:z52.number().int().positive()}),compute:z52.object({settledMs:z52.number().int().nonnegative(),activeMs:z52.number().int().nonnegative(),reservedMs:z52.number().int().nonnegative().optional(),includedMs:z52.number().int().nonnegative(),remainingMs:z52.number().int().nonnegative(),resetsAt:z52.coerce.date()}),upgrade:z52.object({code:z52.literal("Pro"),activeSchedulesLimit:z52.number().int().positive(),minCadenceMinutes:z52.number().int().positive(),maxRunMs:z52.number().int().positive(),maxConcurrentRuns:z52.number().int().positive(),computeIncludedMs:z52.number().int().positive()}).optional(),state:SchedulePolicyStateSchema,overPolicyReasons:z52.array(z52.string())}),ProjectScheduleUsageSchema=z52.object({runCount:z52.number().int().nonnegative(),runsWithOutput:z52.number().int().nonnegative()}),ProjectScheduleRunDTOSchema=z52.object({id:z52.uuid(),scheduleId:z52.uuid(),projectId:z52.uuid(),env:z52.string().min(1),scheduleName:z52.string().min(1),command:z52.string().min(1),status:ProjectScheduleRunStatusSchema,trigger:ProjectScheduleRunTriggerSchema,triggeredBy:z52.object({id:z52.string().min(1),name:z52.string().min(1)}).nullable(),queuedAt:z52.coerce.date(),startedAt:z52.coerce.date().nullable(),finishedAt:z52.coerce.date().nullable(),exitCode:z52.number().int().nullable(),errorCode:z52.string().nullable(),error:z52.string().nullable(),outputBytes:z52.number().int().nonnegative(),outputTruncated:z52.boolean(),outputExpiresAt:z52.coerce.date().nullable(),metadataExpiresAt:z52.coerce.date().nullable()}),ProjectScheduleRunDTO=createDTO(ProjectScheduleRunDTOSchema),ProjectScheduleRunSecretSnapshotSchema=z52.object({state:ProjectScheduleRunSecretSnapshotStateSchema,capturedAt:z52.coerce.date().nullable(),items:z52.array(z52.object({key:z52.string().min(1),updatedAt:z52.coerce.date().nullable(),resolution:ProjectScheduleRunSecretResolutionSchema}))}),ProjectScheduleRunDetailDTOSchema=ProjectScheduleRunDTOSchema.extend({output:z52.string().nullable(),secretSnapshot:ProjectScheduleRunSecretSnapshotSchema}),ProjectScheduleRunDetailDTO=createDTO(ProjectScheduleRunDetailDTOSchema),RunProjectScheduleRequestSchema=z52.object({trigger:z52.enum(["ui","cli"])}),ProjectScheduleRunsQuerySchema=z52.object({limit:z52.coerce.number().int().min(1).max(100).default(25),cursor:z52.string().trim().min(1).optional(),status:ProjectScheduleRunStatusSchema.optional()}),ProjectScheduleResponseSchema=createResponseSchema(ProjectScheduleDTOSchema),ProjectSchedulesListDataSchema=z52.object({items:z52.array(ProjectScheduleDTOSchema),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectSchedulesListResponseSchema=createResponseSchema(z52.array(ProjectScheduleDTOSchema)),ProjectSchedulesOverviewResponseSchema=createResponseSchema(ProjectSchedulesListDataSchema),ProjectScheduleDetailDataSchema=z52.object({schedule:ProjectScheduleDTOSchema,usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema,notifications:ScheduleNotificationSettingsSchema.optional()}),ProjectScheduleDetailResponseSchema=createResponseSchema(ProjectScheduleDetailDataSchema),ProjectScheduleRunsPageSchema=z52.object({items:z52.array(ProjectScheduleRunDTOSchema),nextCursor:z52.string().nullable(),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectScheduleRunsResponseSchema=createResponseSchema(ProjectScheduleRunsPageSchema),ProjectScheduleRunResponseSchema=createResponseSchema(ProjectScheduleRunDTOSchema),ProjectScheduleRunDetailResponseSchema=createResponseSchema(ProjectScheduleRunDetailDTOSchema)}});import{z as z53}from"zod";var WORK_NOTIFICATION_TOPICS,WorkNotificationTopicSchema,PUBLICATION_NOTIFICATION_TOPICS,NOTIFICATION_TOPICS,NotificationTopicSchema,NOTIFICATION_DELIVERY_CADENCES,NotificationDeliveryCadenceSchema,NOTIFICATION_CHANNELS,NotificationChannelSchema,NOTIFICATION_ACTOR_KINDS,NotificationActorKindSchema,NotificationActorSchema,NotificationSummarySchema,ReportBriefPayloadSchema,NotificationRunOutcomeSchema,NotificationRetainedReasonSchema,NotificationWorkSessionSchema,NotificationPayloadSchema,NotificationEnvelopeSchema,NotificationDeliveryStateSchema,NotificationDeliverySchema,NotificationPreferenceSchema,init_notification_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/notification.dto.js"(){"use strict";init_agent_report();WORK_NOTIFICATION_TOPICS=["agent_run_outcome","agent_retained_review","agent_conflict"],WorkNotificationTopicSchema=z53.enum(WORK_NOTIFICATION_TOPICS),PUBLICATION_NOTIFICATION_TOPICS=["publication_failed"],NOTIFICATION_TOPICS=[...WORK_NOTIFICATION_TOPICS,...PUBLICATION_NOTIFICATION_TOPICS,"database_quota_exceeded"],NotificationTopicSchema=z53.enum(NOTIFICATION_TOPICS),NOTIFICATION_DELIVERY_CADENCES=["immediate","daily","off"],NotificationDeliveryCadenceSchema=z53.enum(NOTIFICATION_DELIVERY_CADENCES),NOTIFICATION_CHANNELS=["email"],NotificationChannelSchema=z53.enum(NOTIFICATION_CHANNELS),NOTIFICATION_ACTOR_KINDS=["user","agent","system"],NotificationActorKindSchema=z53.enum(NOTIFICATION_ACTOR_KINDS),NotificationActorSchema=z53.discriminatedUnion("kind",[z53.object({kind:z53.literal("user"),userId:z53.string().min(1)}).strict(),z53.object({kind:z53.literal("agent"),agentKey:z53.string().min(1).max(120),agentId:z53.uuid().optional()}).strict(),z53.object({kind:z53.literal("system")}).strict()]),NotificationSummarySchema=z53.string().trim().min(1).max(1200),ReportBriefPayloadSchema={title:z53.string().trim().min(1).max(120).optional(),brief:StoredReportBriefSchema.optional()},NotificationRunOutcomeSchema=z53.enum(["completed","failed","cancelled"]),NotificationRetainedReasonSchema=z53.enum(["review","agent_requested","recovery"]),NotificationWorkSessionSchema=z53.object({sessionId:z53.uuid(),branch:z53.string().min(1),targetBranch:z53.string().min(1),revision:z53.string().min(1),fingerprint:z53.string().min(1)}),NotificationPayloadSchema=z53.discriminatedUnion("topic",[z53.object({topic:z53.literal("database_quota_exceeded"),incidentId:z53.uuid(),observedAt:z53.iso.datetime()}).strict(),z53.object({topic:z53.literal("agent_run_outcome"),threadId:z53.uuid(),invocationId:z53.uuid(),outcome:NotificationRunOutcomeSchema,summary:NotificationSummarySchema,...ReportBriefPayloadSchema}).strict(),z53.object({topic:z53.literal("agent_retained_review"),threadId:z53.uuid().optional(),invocationId:z53.uuid().optional(),proposalId:z53.uuid().optional(),workSession:NotificationWorkSessionSchema.optional(),reason:NotificationRetainedReasonSchema,summary:NotificationSummarySchema,...ReportBriefPayloadSchema}).strict(),z53.object({topic:z53.literal("agent_conflict"),mergeId:z53.uuid(),threadId:z53.uuid().optional(),invocationId:z53.uuid().optional(),summary:NotificationSummarySchema.optional(),...ReportBriefPayloadSchema}).strict(),z53.object({topic:z53.literal("publication_failed"),publicationId:z53.uuid(),sourceBranch:z53.string().trim().min(1).max(120),failureCode:z53.string().trim().min(1).max(64),failedAt:z53.iso.datetime(),firstPublication:z53.boolean()}).strict()]),NotificationEnvelopeSchema=z53.object({id:z53.uuid(),projectId:z53.uuid(),sourceKey:z53.string().min(1).max(255),actor:NotificationActorSchema,payloadVersion:z53.literal(1),payload:NotificationPayloadSchema,createdAt:z53.coerce.date()}),NotificationDeliveryStateSchema=z53.enum(["pending","deferred","sent","suppressed","failed"]),NotificationDeliverySchema=z53.object({id:z53.uuid(),notificationRecipientId:z53.uuid(),projectId:z53.uuid(),channel:NotificationChannelSchema,state:NotificationDeliveryStateSchema,attemptCount:z53.number().int().nonnegative(),nextAttemptAt:z53.coerce.date().nullable(),lastAttemptAt:z53.coerce.date().nullable(),sentAt:z53.coerce.date().nullable(),failureCode:z53.string().max(80).nullable(),createdAt:z53.coerce.date(),updatedAt:z53.coerce.date()}),NotificationPreferenceSchema=z53.object({topic:WorkNotificationTopicSchema,channel:z53.literal("email"),enabled:z53.boolean(),cadence:NotificationDeliveryCadenceSchema.exclude(["off"]),effectiveCadence:NotificationDeliveryCadenceSchema,source:z53.enum(["default","explicit"])})}});import{z as z54}from"zod";var NOTIFICATION_PREFERENCE_GROUPS,NotificationPreferenceGroupSchema,FIMO_TOGGLE_PREFERENCE_ENTRY_IDS,FimoTogglePreferenceEntryIdSchema,FIMO_DELIVERY_PREFERENCE_ENTRY_IDS,FimoDeliveryPreferenceEntryIdSchema,MARKETING_PREFERENCE_ENTRY_PREFIX,PreferenceSourceSchema,EmailNotificationProviderSyncSchema,EmailNotificationPreferenceSchema,PROVIDER_SUBSCRIPTION_PLACEMENTS,ProviderSubscriptionPlacementSchema,PROVIDER_SUBSCRIPTION_SEMANTIC_IDS,ProviderSubscriptionSemanticIdSchema,NotificationPreferenceEntrySchema,NotificationPreferenceCatalogSchema,NotificationPreferenceCatalogResponseSchema,NotificationPreferenceEntryResponseSchema,UpdateEmailNotificationPreferenceRequestSchema,EmailNotificationPreferenceResponseSchema,UpdateNotificationPreferenceEntryRequestSchema,init_notification_preference_catalog_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/notification-preference-catalog.dto.js"(){"use strict";init_response();init_notification_dto();NOTIFICATION_PREFERENCE_GROUPS=["work_review","publishing","schedule","marketing"],NotificationPreferenceGroupSchema=z54.enum(NOTIFICATION_PREFERENCE_GROUPS),FIMO_TOGGLE_PREFERENCE_ENTRY_IDS=["work_review.agent_conflict","publishing.publication_failed","schedule.schedule_health","schedule.schedule_compute_allowance","schedule.agent_runtime_allowance"],FimoTogglePreferenceEntryIdSchema=z54.enum(FIMO_TOGGLE_PREFERENCE_ENTRY_IDS),FIMO_DELIVERY_PREFERENCE_ENTRY_IDS=["work_review.agent_retained_review","work_review.agent_run_outcome"],FimoDeliveryPreferenceEntryIdSchema=z54.enum(FIMO_DELIVERY_PREFERENCE_ENTRY_IDS),MARKETING_PREFERENCE_ENTRY_PREFIX="marketing.",PreferenceSourceSchema=z54.enum(["default","explicit"]),EmailNotificationProviderSyncSchema=z54.enum(["synced","pending","unavailable"]),EmailNotificationPreferenceSchema=z54.object({enabled:z54.boolean(),source:PreferenceSourceSchema,providerSync:EmailNotificationProviderSyncSchema}).strict(),PROVIDER_SUBSCRIPTION_PLACEMENTS=["reports","product_news"],ProviderSubscriptionPlacementSchema=z54.enum(PROVIDER_SUBSCRIPTION_PLACEMENTS),PROVIDER_SUBSCRIPTION_SEMANTIC_IDS=["weekly_analytics"],ProviderSubscriptionSemanticIdSchema=z54.enum(PROVIDER_SUBSCRIPTION_SEMANTIC_IDS),NotificationPreferenceEntrySchema=z54.discriminatedUnion("kind",[z54.object({kind:z54.literal("toggle"),id:FimoTogglePreferenceEntryIdSchema,group:z54.enum(["work_review","publishing","schedule"]),enabled:z54.boolean(),source:PreferenceSourceSchema}).strict(),z54.object({kind:z54.literal("delivery"),id:FimoDeliveryPreferenceEntryIdSchema,group:z54.literal("work_review"),cadence:NotificationDeliveryCadenceSchema,source:PreferenceSourceSchema}).strict(),z54.object({kind:z54.literal("provider_subscription"),id:z54.string().startsWith(MARKETING_PREFERENCE_ENTRY_PREFIX),group:z54.literal("marketing"),name:z54.string(),description:z54.string().nullable(),placement:ProviderSubscriptionPlacementSchema,semanticId:ProviderSubscriptionSemanticIdSchema.nullable(),enabled:z54.boolean(),source:PreferenceSourceSchema}).strict()]),NotificationPreferenceCatalogSchema=z54.object({email:EmailNotificationPreferenceSchema,entries:z54.array(NotificationPreferenceEntrySchema),unavailableGroups:z54.array(NotificationPreferenceGroupSchema)}),NotificationPreferenceCatalogResponseSchema=createResponseSchema(NotificationPreferenceCatalogSchema),NotificationPreferenceEntryResponseSchema=createResponseSchema(NotificationPreferenceEntrySchema),UpdateEmailNotificationPreferenceRequestSchema=z54.object({enabled:z54.boolean()}).strict(),EmailNotificationPreferenceResponseSchema=createResponseSchema(EmailNotificationPreferenceSchema),UpdateNotificationPreferenceEntryRequestSchema=z54.discriminatedUnion("kind",[z54.object({kind:z54.literal("toggle"),enabled:z54.boolean()}).strict(),z54.object({kind:z54.literal("delivery"),cadence:NotificationDeliveryCadenceSchema}).strict(),z54.object({kind:z54.literal("provider_subscription"),enabled:z54.boolean()}).strict()])}});import{z as z55}from"zod";var DiffRefSchema,InlineSchema,SummaryBlockSchema,EnvDiffSummarySchema,EnvDiffSummaryResultSchema,EnvDiffSummaryResultDTO,EnvDiffSummaryResponseSchema,init_env_diff_summary_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/env-diff-summary.dto.js"(){"use strict";init_create_dto();init_response();init_env_status_dto();DiffRefSchema=z55.object({surface:SurfaceNameSchema,key:z55.string(),label:z55.string()}),InlineSchema=z55.object({text:z55.string(),ref:DiffRefSchema.optional()}),SummaryBlockSchema=z55.discriminatedUnion("type",[z55.object({type:z55.literal("paragraph"),content:z55.array(InlineSchema).max(24)}),z55.object({type:z55.literal("preview"),ref:DiffRefSchema,caption:z55.string().optional()}),z55.object({type:z55.literal("code"),code:z55.string(),lang:z55.string().optional(),caption:z55.string().optional()}),z55.object({type:z55.literal("risk"),level:z55.enum(["warning","error"]),content:z55.array(InlineSchema).max(24)}),z55.object({type:z55.literal("list"),items:z55.array(z55.array(InlineSchema).max(24)).max(8)})]),EnvDiffSummarySchema=z55.object({headline:z55.string(),blocks:z55.array(SummaryBlockSchema).max(15)}),EnvDiffSummaryResultSchema=z55.object({summary:EnvDiffSummarySchema,fingerprint:z55.string(),generatedAt:z55.coerce.date(),cached:z55.boolean().optional(),credits:z55.number().int().nonnegative().optional()}),EnvDiffSummaryResultDTO=createDTO(EnvDiffSummaryResultSchema),EnvDiffSummaryResponseSchema=createResponseSchema(EnvDiffSummaryResultSchema)}});import{z as z56}from"zod";var PROJECT_ANALYTICS_PRESETS,PROJECT_ANALYTICS_GROUP_BY_OPTIONS,ProjectDailyVisitorsDTOSchema,ProjectAnalyticsBreakdownItemDTOSchema,ProjectAnalyticsPageBreakdownItemDTOSchema,ProjectAnalyticsRangeDTOSchema,ProjectAnalyticsAnnotationDTOSchema,PROJECT_ANALYTICS_DEVICE_FILTERS,ProjectPageviewAnalyticsDTOSchema,PROJECT_ANALYTICS_TRACKING_STATES,ProjectAnalyticsTrackingStatusDTOSchema,ProjectPageviewAnalyticsDTO,ProjectAnalyticsTrackingStatusDTO,ProjectAnalyticsAnnotationDTO,init_project_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-analytics.dto.js"(){"use strict";init_create_dto();PROJECT_ANALYTICS_PRESETS=["today","yesterday","this_week","this_month","last_7_days","last_30_days","last_90_days","last_week","last_month","last_quarter","last_year","custom"],PROJECT_ANALYTICS_GROUP_BY_OPTIONS=["day","week","month","quarter"],ProjectDailyVisitorsDTOSchema=z56.object({date:z56.string(),visitors:z56.number().int().nonnegative()}),ProjectAnalyticsBreakdownItemDTOSchema=z56.object({key:z56.string(),visitors:z56.number().int().nonnegative(),pageviews:z56.number().int().nonnegative()}),ProjectAnalyticsPageBreakdownItemDTOSchema=z56.object({path:z56.string(),pageName:z56.string().nullable().optional(),visitors:z56.number().int().nonnegative(),pageviews:z56.number().int().nonnegative()}),ProjectAnalyticsRangeDTOSchema=z56.object({preset:z56.enum(PROJECT_ANALYTICS_PRESETS),requestedFrom:z56.string(),requestedTo:z56.string(),effectiveFrom:z56.string(),effectiveTo:z56.string(),isRetentionLimited:z56.boolean(),groupBy:z56.enum(PROJECT_ANALYTICS_GROUP_BY_OPTIONS)}),ProjectAnalyticsAnnotationDTOSchema=z56.object({date:z56.string(),content:z56.string(),updatedAt:z56.string(),updatedByUserId:z56.string()}),PROJECT_ANALYTICS_DEVICE_FILTERS=["bot","desktop","mobile","tablet"],ProjectPageviewAnalyticsDTOSchema=z56.object({range:ProjectAnalyticsRangeDTOSchema,deviceFilter:z56.enum(PROJECT_ANALYTICS_DEVICE_FILTERS).nullable(),visitors:z56.number().int().nonnegative(),pageviews:z56.number().int().nonnegative(),botPageviews:z56.number().int().nonnegative(),botVisitors:z56.number().int().nonnegative(),bounceRate:z56.number().min(0).max(100),viewsPerVisit:z56.number().nonnegative(),averageVisitDurationSeconds:z56.number().nonnegative(),visitorsSeries:z56.array(ProjectDailyVisitorsDTOSchema),topPages:z56.array(ProjectAnalyticsPageBreakdownItemDTOSchema),topBrowsers:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),topDevices:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),topBots:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),topAiAssistants:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),topCountries:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),topSources:z56.array(ProjectAnalyticsBreakdownItemDTOSchema),annotations:z56.array(ProjectAnalyticsAnnotationDTOSchema)}),PROJECT_ANALYTICS_TRACKING_STATES=["observed","waiting","unavailable"],ProjectAnalyticsTrackingStatusDTOSchema=z56.object({state:z56.enum(PROJECT_ANALYTICS_TRACKING_STATES),lastEventAt:z56.string().nullable()}),ProjectPageviewAnalyticsDTO=createDTO(ProjectPageviewAnalyticsDTOSchema),ProjectAnalyticsTrackingStatusDTO=createDTO(ProjectAnalyticsTrackingStatusDTOSchema),ProjectAnalyticsAnnotationDTO=createDTO(ProjectAnalyticsAnnotationDTOSchema)}});import{z as z57}from"zod";var ProjectInviteDTOSchema,ProjectInviteDTO,CreatedProjectInviteDTOSchema,CreatedProjectInviteDTO,AcceptedProjectInviteDTOSchema,AcceptedProjectInviteDTO,init_project_invite_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-invite.dto.js"(){"use strict";init_common();init_create_dto();ProjectInviteDTOSchema=z57.object({id:z57.string(),email:z57.email(),roleKey:ProjectRoleKeySchema,status:ProjectInviteStatusSchema,expiresAt:z57.coerce.date(),createdAt:z57.coerce.date(),inviterUserId:z57.string()}),ProjectInviteDTO=createDTO(ProjectInviteDTOSchema),CreatedProjectInviteDTOSchema=z57.object({id:z57.string(),token:z57.string()}),CreatedProjectInviteDTO=createDTO(CreatedProjectInviteDTOSchema),AcceptedProjectInviteDTOSchema=z57.object({success:z57.boolean(),projectId:z57.string().optional()}),AcceptedProjectInviteDTO=createDTO(AcceptedProjectInviteDTOSchema)}});import{z as z58}from"zod";var PublicUserDTOSchema,PublicUserDTO,ReferralCountCTOSchema,ReferralCountCTO,ReferralSummaryCTOSchema,ReferralSummaryCTO,AuthenticatedUserDTOSchema,AuthenticatedUserDTO,AuthenticatedUserResponseSchema,ReferralCountResponseSchema,ReferralSummaryResponseSchema,init_user_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/user.dto.js"(){"use strict";init_create_dto();init_response();PublicUserDTOSchema=z58.object({id:z58.string(),name:z58.string(),image:z58.string().nullable()}),PublicUserDTO=createDTO(PublicUserDTOSchema),ReferralCountCTOSchema=z58.object({count:z58.int()}),ReferralCountCTO=createDTO(ReferralCountCTOSchema),ReferralSummaryCTOSchema=z58.object({counts:z58.object({signed_up:z58.int(),activated:z58.int()}),credits:z58.object({total:z58.int(),earned:z58.int()})}),ReferralSummaryCTO=createDTO(ReferralSummaryCTOSchema),AuthenticatedUserDTOSchema=PublicUserDTOSchema.extend({email:z58.email(),emailVerified:z58.boolean(),createdAt:z58.coerce.date(),updatedAt:z58.coerce.date()}),AuthenticatedUserDTO=createDTO(AuthenticatedUserDTOSchema),AuthenticatedUserResponseSchema=createResponseSchema(AuthenticatedUserDTOSchema),ReferralCountResponseSchema=createResponseSchema(ReferralCountCTOSchema),ReferralSummaryResponseSchema=createResponseSchema(ReferralSummaryCTOSchema)}});import{z as z59}from"zod";var ProjectAccessItemDTOSchema,ProjectAccessItemDTO,PROJECT_PERMISSION_KEYS,ProjectPermissionKeySchema,ProjectPermissionsDTOSchema,ProjectPermissionsDTO,ProjectAccessDTOSchema,ProjectAccessDTO,AccessMutationResponseSchema,InviteAcceptResponseSchema,init_project_access_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-access.dto.js"(){"use strict";init_common();init_create_dto();init_response();init_project_invite_dto();init_user_dto();ProjectAccessItemDTOSchema=z59.object({id:z59.string(),principalType:ProjectPrincipalTypeSchema,principalId:z59.string().nullable(),roleKey:ProjectRoleKeySchema,createdAt:z59.coerce.date(),expiresAt:z59.coerce.date().nullable(),user:PublicUserDTOSchema.nullable(),organizationAdmin:z59.boolean().default(!1)}),ProjectAccessItemDTO=createDTO(ProjectAccessItemDTOSchema),PROJECT_PERMISSION_KEYS=["project:read","project:manage","project:publish","project:unpublish","project:duplicate","project:export","project:import","project:transfer","project:delete","acl:read","acl:grant","member:read","member:change-role","invite:read","invite:send","invite:revoke","asset:read","asset:upload","asset:manage","asset:delete","asset:generate","code:view","code:edit","content:view","knowledge:view","knowledge:edit","content:edit","chat:read","chat:prompt","history:view","history:manage","comment:read","comment:create","comment:delete","branch:create","environment:create","integration:manage","integration:run","sync:github","webhook:read","webhook:manage","schedule:read","schedule:manage","preview:view","realtime:connect","analytics:view","logs:view","domain:manage","agent:run"],ProjectPermissionKeySchema=z59.enum(PROJECT_PERMISSION_KEYS),ProjectPermissionsDTOSchema=z59.object({role:ProjectRoleKeyWithSystemSchema.nullable(),permissions:z59.record(z59.string(),z59.boolean())}),ProjectPermissionsDTO=createDTO(ProjectPermissionsDTOSchema),ProjectAccessDTOSchema=z59.object({access:z59.array(ProjectAccessItemDTOSchema),invites:z59.array(ProjectInviteDTOSchema),organization:z59.object({name:z59.string().nullable(),logo:z59.string().nullable()}).nullable()}),ProjectAccessDTO=createDTO(ProjectAccessDTOSchema),AccessMutationResponseSchema=createResponseSchema(z59.object({success:z59.boolean()})),InviteAcceptResponseSchema=createResponseSchema(z59.object({success:z59.boolean(),projectId:z59.uuid()}))}});import{z as z60}from"zod";var PublicationStateDTOSchema,PublicationStateDTO,init_publication_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/publication.dto.js"(){"use strict";init_common();init_create_dto();PublicationStateDTOSchema=z60.object({publicationStatus:PublicationStatusSchema,appUrl:z60.string().nullable(),lastPublishedAt:z60.string().nullable()}),PublicationStateDTO=createDTO(PublicationStateDTOSchema)}});import{z as z61}from"zod";var BranchHostedPreviewStatusSchema,BranchHostedPreviewSchema,init_hosted_preview_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/hosted-preview.dto.js"(){"use strict";init_env();BranchHostedPreviewStatusSchema=z61.enum(["queued","building","ready","failed"]),BranchHostedPreviewSchema=z61.object({branch:BranchSchema,revision:z61.string().min(1).max(64).nullable(),generation:z61.string().min(1).max(64),status:BranchHostedPreviewStatusSchema,url:z61.url().nullable()})}});import{z as z62}from"zod";var PreviewUpgradeRequiredSchema,PreviewBridgePackageSchema,PreviewBridgeCapabilitySchema,SandboxSessionDTOSchema,SandboxSessionDTO,SandboxSessionResponseSchema,PreviewInstallApprovalTargetSchema,PreviewInstallRepairSchema,SandboxSessionInstallPolicyErrorSchema,PreviewStartFailureSchema,SandboxPullPhaseSchema,SandboxPullFailureCodeSchema,SandboxPullFailureSchema,PreviewInstallPolicyApprovalRequestSchema,PreviewInstallPolicyApprovalEventSchema,init_sandbox_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/sandbox.dto.js"(){"use strict";init_create_dto();init_response();PreviewUpgradeRequiredSchema=z62.object({code:z62.literal("PREVIEW_UPGRADE_REQUIRED"),message:z62.string(),currentVersion:z62.number().int().positive(),targetVersion:z62.literal(4)}),PreviewBridgePackageSchema=z62.object({name:z62.string().min(1),version:z62.string().min(1)}),PreviewBridgeCapabilitySchema=z62.object({integrated:z62.boolean(),packages:z62.array(PreviewBridgePackageSchema)}),SandboxSessionDTOSchema=z62.object({url:z62.url(),expiresAt:z62.iso.datetime().nullable(),source:z62.enum(["sandbox","hosted"]).optional(),previewBridge:PreviewBridgeCapabilitySchema.optional()}),SandboxSessionDTO=createDTO(SandboxSessionDTOSchema),SandboxSessionResponseSchema=createResponseSchema(SandboxSessionDTOSchema),PreviewInstallApprovalTargetSchema=z62.object({name:z62.string().min(1),locator:z62.string().min(1).optional(),source:z62.enum(["registry","tarball","unsupported"])}).refine(target=>target.source==="tarball"==(target.locator!==void 0),{message:"locator is present exactly when source is tarball"}),PreviewInstallRepairSchema=z62.object({kind:z62.literal("dependency_build_scripts_blocked"),packageManager:z62.enum(["pnpm","yarn","bun"]),packages:z62.array(z62.string()),targets:z62.array(PreviewInstallApprovalTargetSchema).optional(),configFile:z62.string(),approvalKey:z62.string(),command:z62.string().optional(),approval:z62.object({id:z62.uuid()}).optional()}),SandboxSessionInstallPolicyErrorSchema=z62.object({code:z62.literal("PREVIEW_INSTALL_POLICY_BLOCKED"),message:z62.string(),repair:PreviewInstallRepairSchema}),PreviewStartFailureSchema=z62.object({code:z62.literal("PREVIEW_START_FAILED"),message:z62.string(),logTail:z62.array(z62.string()).optional(),logTailTruncated:z62.boolean().optional()}),SandboxPullPhaseSchema=z62.enum(["acquire","pull","sync-env","install","restart","readiness"]),SandboxPullFailureCodeSchema=z62.enum(["sync_failed","readiness_failed","install_policy_blocked"]),SandboxPullFailureSchema=z62.object({message:z62.string(),code:SandboxPullFailureCodeSchema.optional().catch(void 0),phase:SandboxPullPhaseSchema.optional().catch(void 0),exitCode:z62.number().int().optional().catch(void 0),logTail:z62.array(z62.string()).optional().catch(void 0),logTailTruncated:z62.boolean().optional().catch(void 0),repair:PreviewInstallRepairSchema.optional().catch(void 0)}),PreviewInstallPolicyApprovalRequestSchema=z62.object({approvalId:z62.uuid()}),PreviewInstallPolicyApprovalEventSchema=z62.discriminatedUnion("type",[z62.object({type:z62.literal("progress"),step:z62.enum(["approval","install","restart","readiness"]),message:z62.string()}),z62.object({type:z62.literal("approved")}),z62.object({type:z62.literal("complete")}),z62.object({type:z62.literal("error"),code:z62.enum(["stale_approval","approval_failed","install_failed","restart_failed"]),message:z62.string()})])}});import{z as z63}from"zod";var OrganizationDTOSchema,OrganizationDTO,MemberUserDTOSchema,OrganizationMemberDTOSchema,OrganizationMemberDTO,OrganizationProjectCapacityDTOSchema,OrganizationProjectCapacityDTO,init_organization_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/organization.dto.js"(){"use strict";init_common();init_create_dto();OrganizationDTOSchema=BaseEntitySchema.extend({name:z63.string(),slug:z63.string().nullable(),logo:z63.string().nullable(),metadata:z63.record(z63.string(),z63.unknown()).nullable()}),OrganizationDTO=createDTO(OrganizationDTOSchema),MemberUserDTOSchema=z63.object({id:z63.string(),name:z63.string(),email:z63.email(),image:z63.string().nullable()}),OrganizationMemberDTOSchema=z63.object({id:z63.string(),userId:z63.string(),organizationId:z63.string(),role:OrganizationRoleSchema,user:MemberUserDTOSchema,createdAt:z63.coerce.date()}),OrganizationMemberDTO=createDTO(OrganizationMemberDTOSchema),OrganizationProjectCapacityDTOSchema=z63.object({canCreateProject:z63.boolean()}),OrganizationProjectCapacityDTO=createDTO(OrganizationProjectCapacityDTOSchema)}});import{z as z64}from"zod";var CancellationReasonCodeSchema,CancellationFeedbackDTOSchema,CancellationFeedbackDTO,PlanMigrationAcceptDTOSchema,PlanMigrationPreviewDTOSchema,PlanMigrationPreviewDTO,PlanMigrationStateSchema,PlanMigrationOfferDTOSchema,PlanMigrationOfferDTO,AiCreditsEntitlementSchema,EntitlementsDTOSchema,MediaStorageUsageDTOSchema,MediaStorageUsageDTO,PendingPlanChangeDTOSchema,AutomaticSpendStopDTOSchema,HostingOverageStatusDTOSchema,HostingOverageStatusDTO,UpdateHostingOverageRequestSchema,SubscriptionDTOSchema,SubscriptionDTO,DailyCreditsStatusSchema,CreditBalanceDTOSchema,CreditBalanceDTO,MinimalCreditBalanceDTOSchema,MinimalCreditBalanceDTO,ProjectCreditBucketsDTOSchema,ProjectDailyCreditAllowanceDTOSchema,ProjectCreditBalanceDTOSchema,ProjectCreditBalanceDTO,AutoRefillConfigDTOSchema,AutoRefillConfigDTO,UpdateAutoRefillDTOSchema,OptionalSpendRefusalSchema,CreditPurchasePricingDTOSchema,CreditPurchasePricingDTO,PurchaseCreditsDTOSchema,SuccessfulPurchaseDTOSchema,SuccessfulPurchaseDTO,PortalDTOSchema,PortalDTO,PaymentRecoveryInvoiceDTOSchema,PaymentRecoveryDTOSchema,PaymentRecoveryDTO,CreditBalanceResponseSchema,MinimalCreditBalanceResponseSchema,ProjectCreditBalanceResponseSchema,AutoRefillConfigResponseSchema,CreditPurchasePricingResponseSchema,SuccessfulPurchaseResponseSchema,SubscriptionResponseSchema,EntitlementsResponseSchema,PortalResponseSchema,PaymentRecoveryResponseSchema,init_billing_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/billing.dto.js"(){"use strict";init_common();init_create_dto();init_response();CancellationReasonCodeSchema=z64.enum(["just_testing","too_expensive","not_using_enough","missing_features","bug_or_technical_issue","switching_to_another_tool","closing_or_pausing_business","other"]),CancellationFeedbackDTOSchema=z64.object({reason:CancellationReasonCodeSchema,details:z64.string().trim().max(1e3).nullable().optional().transform(value=>value||null)}).superRefine((value,ctx)=>{value.reason==="other"&&!value.details&&ctx.addIssue({code:z64.ZodIssueCode.custom,message:"Details are required when selecting other.",path:["details"]})}),CancellationFeedbackDTO=createDTO(CancellationFeedbackDTOSchema),PlanMigrationAcceptDTOSchema=z64.object({offerVersion:z64.string().trim().min(1),unusedPremiumCreditAmount:z64.number().int().nonnegative(),amountDueNow:z64.number().int().nonnegative(),renewsOn:z64.string()}),PlanMigrationPreviewDTOSchema=z64.object({currency:z64.string().trim().min(1),unusedPremiumCreditAmount:z64.number().int().nonnegative(),amountDueNow:z64.number().int().nonnegative(),startsAt:z64.string(),renewsAt:z64.string(),nextRenewalAmount:z64.number().int().nonnegative()}),PlanMigrationPreviewDTO=createDTO(PlanMigrationPreviewDTOSchema),PlanMigrationStateSchema=z64.enum(["legacy_active","notified","accepting","accepted","declining","free","expired","canceled"]),PlanMigrationOfferDTOSchema=z64.object({id:z64.string(),organizationId:z64.string(),legacySubscriptionId:z64.string(),offeredPlanCode:z64.string(),offeredPlanName:z64.string(),offeredPriceAmount:z64.number(),offeredCurrency:z64.string(),offerVersion:z64.string(),state:PlanMigrationStateSchema,checkoutToken:z64.string().nullable(),deadlineAt:z64.string(),transitions:z64.array(z64.object({event:z64.string(),fromState:PlanMigrationStateSchema,toState:PlanMigrationStateSchema,createdAt:z64.string()}))}),PlanMigrationOfferDTO=createDTO(PlanMigrationOfferDTOSchema),AiCreditsEntitlementSchema=z64.object({included:z64.number().optional(),unitPrice:z64.number().optional(),dailyCap:z64.number().nullable().optional()}),EntitlementsDTOSchema=z64.object({ai_credits:AiCreditsEntitlementSchema.optional(),analytics:z64.object({retentionDays:z64.number().int().positive(),canUseExtendedDateRanges:z64.boolean()}).optional(),history:z64.object({retentionDays:z64.number().int().positive()}).optional(),members:z64.object({canInvite:z64.boolean(),maxMembers:z64.number().int().positive().nullable()}).optional(),projects:z64.object({maxProjects:z64.number().int().positive().nullable()}).optional(),domains:z64.object({canUseCustomDomains:z64.boolean(),maxDomains:z64.number().int().nonnegative().nullable()}).optional(),media_storage:z64.object({limitBytes:z64.number().int().nonnegative()}).optional()}),MediaStorageUsageDTOSchema=z64.object({usedBytes:z64.number().int().nonnegative().nullable(),limitBytes:z64.number().int().nonnegative().nullable(),state:z64.enum(["ready","unavailable"]),measuredAt:z64.iso.datetime().nullable()}),MediaStorageUsageDTO=createDTO(MediaStorageUsageDTOSchema),PendingPlanChangeDTOSchema=z64.object({toPlanCode:TemplateCodeSchema,effectiveAt:z64.string(),scheduledAt:z64.string().nullable()}),AutomaticSpendStopDTOSchema=z64.object({fromPlanCode:TemplateCodeSchema,toPlanCode:TemplateCodeSchema,cutoffAt:z64.string(),spendStopped:z64.boolean(),settlementEndsAt:z64.string()}),HostingOverageStatusDTOSchema=z64.object({state:z64.enum(["ready","unavailable"]),planCode:z64.string(),overageAvailable:z64.boolean(),overageEnabled:z64.boolean(),monthlyCapUsd:z64.number().int().positive().nullable(),periodStart:z64.iso.datetime().nullable(),periodEnd:z64.iso.datetime().nullable(),usedBytes:z64.number().nonnegative().nullable(),includedBytes:z64.number().nonnegative().nullable(),overageBytes:z64.number().nonnegative(),currentOverageAmountMicros:z64.number().nonnegative().nullable(),totalExtraUsageAmountMicros:z64.number().nonnegative().nullable(),currency:z64.string().nullable(),status:z64.enum(["ok","near_limit","paused"])}),HostingOverageStatusDTO=createDTO(HostingOverageStatusDTOSchema),UpdateHostingOverageRequestSchema=z64.object({enabled:z64.boolean(),monthlyCapUsd:z64.number().int().positive().max(1e6).optional()}).refine(value=>!value.enabled||value.monthlyCapUsd!==void 0,{message:"Enabling extra usage requires a monthly budget"}),SubscriptionDTOSchema=z64.object({id:z64.string(),external_id:z64.string(),customerId:z64.string(),planId:z64.string(),planCode:z64.union([TemplateCodeSchema,z64.literal("Unknown")]),currentPeriod:z64.object({start:z64.string(),end:z64.string().nullable()}),cancelAt:z64.string().nullable(),pendingPlanChange:PendingPlanChangeDTOSchema.nullable(),automaticSpendStop:AutomaticSpendStopDTOSchema.nullable(),entitlements:EntitlementsDTOSchema,currency:z64.string(),nextPaymentAt:z64.string().nullable(),baseAmount:z64.number().nullable()}),SubscriptionDTO=createDTO(SubscriptionDTOSchema),DailyCreditsStatusSchema=z64.object({totalCap:z64.number(),dailyCap:z64.number(),usedTotal:z64.number()}),CreditBalanceDTOSchema=z64.object({total:z64.number(),base:z64.number(),dailyBase:z64.number(),purchases:z64.number(),awards:z64.number(),daily:DailyCreditsStatusSchema.optional()}),CreditBalanceDTO=createDTO(CreditBalanceDTOSchema),MinimalCreditBalanceDTOSchema=z64.object({total:z64.number(),nearLimit:z64.boolean(),canChat:z64.boolean(),daily:DailyCreditsStatusSchema.optional()}),MinimalCreditBalanceDTO=createDTO(MinimalCreditBalanceDTOSchema),ProjectCreditBucketsDTOSchema=z64.object({dailyFreeAvailable:z64.number(),monthlyAvailable:z64.number(),purchasedAvailable:z64.number(),awardedAvailable:z64.number()}),ProjectDailyCreditAllowanceDTOSchema=z64.object({periodCap:z64.number(),dailyGrant:z64.number(),usedThisPeriod:z64.number(),remainingThisPeriod:z64.number()}),ProjectCreditBalanceDTOSchema=z64.object({projectId:z64.uuid(),organizationId:z64.string(),balance:z64.object({totalAvailable:z64.number(),nearLimit:z64.boolean(),canUseAi:z64.boolean(),buckets:ProjectCreditBucketsDTOSchema}),allowances:z64.object({dailyCredits:ProjectDailyCreditAllowanceDTOSchema.nullable()})}),ProjectCreditBalanceDTO=createDTO(ProjectCreditBalanceDTOSchema),AutoRefillConfigDTOSchema=z64.discriminatedUnion("enabled",[z64.object({enabled:z64.literal(!0),thresholdUsd:z64.number().nonnegative(),refillAmountUsd:z64.number().nonnegative()}),z64.object({enabled:z64.literal(!1),thresholdUsd:z64.number().nonnegative().nullable(),refillAmountUsd:z64.null()})]),AutoRefillConfigDTO=createDTO(AutoRefillConfigDTOSchema),UpdateAutoRefillDTOSchema=z64.discriminatedUnion("enabled",[z64.object({enabled:z64.literal(!0),thresholdUsd:z64.number().min(.01).multipleOf(.01),refillAmountUsd:z64.number().min(.01).multipleOf(.01),expectedRateToken:z64.string().trim().min(1).max(40)}).strict(),z64.object({enabled:z64.literal(!1),thresholdUsd:z64.number().min(.01).multipleOf(.01),expectedRateToken:z64.string().trim().min(1).max(40).optional()}).strict()]),OptionalSpendRefusalSchema=z64.enum(["no_subscription","plan_cannot_fund","pending_plan_exit"]),CreditPurchasePricingDTOSchema=z64.object({planCode:z64.union([TemplateCodeSchema,z64.literal("Unknown")]).nullable(),canPurchase:z64.boolean(),refusalReason:OptionalSpendRefusalSchema.nullable(),creditsPerDollar:z64.number().int().positive(),minAmountUsd:z64.number().positive(),maxAmountUsd:z64.number().positive(),rateToken:z64.string().nullable()}),CreditPurchasePricingDTO=createDTO(CreditPurchasePricingDTOSchema),PurchaseCreditsDTOSchema=z64.object({amountUsd:z64.number(),idempotencyKey:z64.string().trim().min(8).max(120),expectedRateToken:z64.string().trim().min(1).max(40)}).strict(),SuccessfulPurchaseDTOSchema=z64.object({invoiceId:z64.string(),newBalance:z64.int(),creditCount:z64.int(),amountUsd:z64.number(),creditsPerDollar:z64.int()}),SuccessfulPurchaseDTO=createDTO(SuccessfulPurchaseDTOSchema),PortalDTOSchema=z64.object({url:z64.string()}),PortalDTO=createDTO(PortalDTOSchema),PaymentRecoveryInvoiceDTOSchema=z64.object({id:z64.string(),number:z64.string().nullable(),status:z64.string(),amountDue:z64.int(),currency:z64.string(),issuedAt:z64.string().nullable(),hostedInvoiceUrl:z64.string().nullable()}),PaymentRecoveryDTOSchema=z64.discriminatedUnion("status",[z64.object({status:z64.literal("eligible"),checkedAt:z64.string()}),z64.object({status:z64.literal("recovery_required"),checkedAt:z64.string(),invoice:PaymentRecoveryInvoiceDTOSchema,outstandingCount:z64.int().min(1)}),z64.object({status:z64.literal("unavailable"),checkedAt:z64.string(),reason:z64.enum(["provider_error","truncated","unattempted","foreign_invoice","unknown_status"])})]),PaymentRecoveryDTO=createDTO(PaymentRecoveryDTOSchema),CreditBalanceResponseSchema=createResponseSchema(CreditBalanceDTOSchema),MinimalCreditBalanceResponseSchema=createResponseSchema(MinimalCreditBalanceDTOSchema),ProjectCreditBalanceResponseSchema=createResponseSchema(ProjectCreditBalanceDTOSchema),AutoRefillConfigResponseSchema=createResponseSchema(AutoRefillConfigDTOSchema),CreditPurchasePricingResponseSchema=createResponseSchema(CreditPurchasePricingDTOSchema),SuccessfulPurchaseResponseSchema=createResponseSchema(SuccessfulPurchaseDTOSchema),SubscriptionResponseSchema=createResponseSchema(SubscriptionDTOSchema),EntitlementsResponseSchema=createResponseSchema(EntitlementsDTOSchema),PortalResponseSchema=createResponseSchema(PortalDTOSchema),PaymentRecoveryResponseSchema=createResponseSchema(PaymentRecoveryDTOSchema)}});import{z as z65}from"zod";var PaymentMethodDTOSchema,PaymentMethodDTO,init_payment_method_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/payment-method.dto.js"(){"use strict";init_create_dto();PaymentMethodDTOSchema=z65.object({brand:z65.string(),last4:z65.string(),exp:z65.string(),isDefault:z65.boolean()}),PaymentMethodDTO=createDTO(PaymentMethodDTOSchema)}});import{z as z66}from"zod";var FieldDefinitionSchema,SchemaFieldPathSchema,SchemaMigrationOperationSchema,ContentTypeI18nSchema,ContentFieldGroupSchema,ContentTypeDTOSchema,ContentTypeDTO,SchemaDTOSchema,SchemaDTO,EntryDTOSchema,EntryDTO,PaginatedEntriesDTOSchema,PaginatedEntriesDTO,EntryCountDTOSchema,EntryCountDTO,EntryCountsDTOSchema,EntryCountsDTO,EntryTranslationGapDTOSchema,EntryTranslationGapDTO,EntryTranslationGapResponseSchema,ContentTypeResponseSchema,ContentTypeListResponseSchema,SchemaResponseSchema,EntryResponseSchema,EntryListResponseSchema,MAX_BULK_ENTRIES,entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema,EntryWhereSchema,EntryMutationBodySchema,entryIdsSchema,EntrySqlQueryRequestSchema,BulkCreateEntriesRequestSchema,BulkUpdateEntriesRequestSchema,BulkDeleteEntriesRequestSchema,EntrySqlQueryResponseSchema,EntrySqlQueryResponseDTO,BulkCreateEntriesResponseSchema,BulkCreateEntriesResponseDTO,BulkUpdateEntriesResponseSchema,BulkUpdateEntriesResponseDTO,BulkDeleteEntriesResponseSchema,BulkDeleteEntriesResponseDTO,init_content_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/content.dto.js"(){"use strict";init_common();init_content_fields();init_create_dto();init_response();FieldDefinitionSchema=ContentFieldDefinitionSchema,SchemaFieldPathSchema=z66.string().superRefine((path50,ctx)=>{let segments=path50.split(".");(segments.length===0||segments.some(segment=>!CONTENT_FIELD_NAME_PATTERN.test(segment)))&&ctx.addIssue({code:"custom",message:"Field paths must use dot-separated field or block variant names."})}),SchemaMigrationOperationSchema=z66.object({type:z66.literal("renameField"),contentType:z66.string().regex(CONTENT_TYPE_NAME_PATTERN),from:SchemaFieldPathSchema,to:SchemaFieldPathSchema}).strict(),ContentTypeI18nSchema=z66.object({enabled:z66.boolean()}).strict(),ContentFieldGroupSchema=z66.object({id:z66.string().regex(CONTENT_FIELD_NAME_PATTERN),label:z66.string().min(1).max(255),default:z66.boolean().optional()}).strict(),ContentTypeDTOSchema=z66.object({id:z66.string(),name:z66.string(),label:z66.string(),isSingleton:z66.boolean(),i18n:ContentTypeI18nSchema,groups:z66.array(ContentFieldGroupSchema).default([]),fields:z66.record(z66.string(),FieldDefinitionSchema),createdAt:z66.string(),updatedAt:z66.string()}),ContentTypeDTO=createDTO(ContentTypeDTOSchema),SchemaDTOSchema=z66.object({contentTypes:z66.array(ContentTypeDTOSchema)}),SchemaDTO=createDTO(SchemaDTOSchema),EntryDTOSchema=z66.object({id:z66.string(),entryId:z66.string(),documentId:z66.string(),slug:z66.string(),locale:z66.string().optional(),createdAt:z66.string(),updatedAt:z66.string(),__fimo:z66.object({contentType:z66.string()})}).passthrough(),EntryDTO=createDTO(EntryDTOSchema),PaginatedEntriesDTOSchema=z66.object({data:z66.array(EntryDTOSchema),meta:z66.object({limit:z66.number(),offset:z66.number(),total:z66.number(),hasMore:z66.boolean()})}),PaginatedEntriesDTO=createDTO(PaginatedEntriesDTOSchema),EntryCountDTOSchema=z66.object({contentType:z66.string(),count:z66.number()}),EntryCountDTO=createDTO(EntryCountDTOSchema),EntryCountsDTOSchema=z66.object({counts:z66.array(EntryCountDTOSchema)}),EntryCountsDTO=createDTO(EntryCountsDTOSchema),EntryTranslationGapDTOSchema=z66.object({count:z66.number().int().nonnegative(),sourceLocale:z66.string(),targetLocale:z66.string()}),EntryTranslationGapDTO=createDTO(EntryTranslationGapDTOSchema),EntryTranslationGapResponseSchema=createResponseSchema(EntryTranslationGapDTOSchema),ContentTypeResponseSchema=createResponseSchema(ContentTypeDTOSchema),ContentTypeListResponseSchema=createResponseSchema(z66.array(ContentTypeDTOSchema)),SchemaResponseSchema=createResponseSchema(SchemaDTOSchema),EntryResponseSchema=createResponseSchema(EntryDTOSchema),EntryListResponseSchema=createResponseSchema(z66.array(EntryDTOSchema)),MAX_BULK_ENTRIES=1e3,entryWhereScalarSchema=z66.union([z66.string(),z66.number(),z66.boolean(),z66.null()]),entryWhereOperatorSchema=z66.object({$eq:entryWhereScalarSchema.optional(),$ne:entryWhereScalarSchema.optional(),$gt:entryWhereScalarSchema.optional(),$gte:entryWhereScalarSchema.optional(),$lt:entryWhereScalarSchema.optional(),$lte:entryWhereScalarSchema.optional(),$in:z66.array(entryWhereScalarSchema).optional(),$nin:z66.array(entryWhereScalarSchema).optional(),$contains:z66.string().optional(),$startsWith:z66.string().optional(),$null:z66.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema=z66.record(z66.string(),z66.union([entryWhereScalarSchema,entryWhereOperatorSchema])),EntryWhereSchema=z66.record(z66.string(),z66.union([entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema])),EntryMutationBodySchema=z66.object({data:z66.record(z66.string(),z66.unknown()),locale:z66.string().min(1).optional(),documentId:z66.uuid().optional()}),entryIdsSchema=z66.array(z66.uuid()).min(1).max(MAX_BULK_ENTRIES),EntrySqlQueryRequestSchema=z66.object({sql:z66.string().min(1)}),BulkCreateEntriesRequestSchema=z66.object({entries:z66.array(EntryMutationBodySchema).min(1).max(MAX_BULK_ENTRIES)}),BulkUpdateEntriesRequestSchema=z66.union([z66.object({ids:entryIdsSchema,body:EntryMutationBodySchema}),z66.object({where:EntryWhereSchema,body:EntryMutationBodySchema}),z66.object({updates:z66.array(z66.object({id:z66.uuid(),body:EntryMutationBodySchema})).min(1).max(MAX_BULK_ENTRIES)})]),BulkDeleteEntriesRequestSchema=z66.union([z66.object({ids:entryIdsSchema,locale:z66.string().min(1).optional()}),z66.object({where:EntryWhereSchema,locale:z66.string().min(1).optional()})]),EntrySqlQueryResponseSchema=z66.object({data:z66.array(z66.record(z66.string(),z66.unknown())),meta:z66.object({rowCount:z66.number().int().nonnegative(),truncated:z66.boolean()})}),EntrySqlQueryResponseDTO=createDTO(EntrySqlQueryResponseSchema),BulkCreateEntriesResponseSchema=z66.object({data:z66.array(EntryDTOSchema),meta:z66.object({created:z66.number().int().nonnegative()})}),BulkCreateEntriesResponseDTO=createDTO(BulkCreateEntriesResponseSchema),BulkUpdateEntriesResponseSchema=z66.object({data:z66.array(EntryDTOSchema),meta:z66.object({updated:z66.number().int().nonnegative(),missing:z66.array(z66.string())})}),BulkUpdateEntriesResponseDTO=createDTO(BulkUpdateEntriesResponseSchema),BulkDeleteEntriesResponseSchema=z66.object({data:z66.array(EntryDTOSchema),meta:z66.object({deleted:z66.number().int().nonnegative(),missing:z66.array(z66.string())})}),BulkDeleteEntriesResponseDTO=createDTO(BulkDeleteEntriesResponseSchema)}});import{z as z67}from"zod";var UniqueConflictSchema,UniqueConflictErrorSchema,init_unique_conflict_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/unique-conflict.dto.js"(){"use strict";UniqueConflictSchema=z67.object({index:z67.number().int().nonnegative(),contentType:z67.string(),field:z67.string(),value:z67.string(),against:z67.enum(["stored","batch"]),ownerDocumentId:z67.uuid().optional(),ownerIndex:z67.number().int().nonnegative().optional()}),UniqueConflictErrorSchema=z67.object({code:z67.literal("unique_conflict"),message:z67.string(),conflicts:z67.array(UniqueConflictSchema),truncated:z67.boolean().optional()})}});import{z as z68}from"zod";var UniqueConflictIssueSchema,SchemaTransitionIssueSchema,SchemaTransitionRejectedErrorSchema,init_schema_transition_rejected_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schema-transition-rejected.dto.js"(){"use strict";UniqueConflictIssueSchema=z68.object({kind:z68.literal("unique_conflict"),contentType:z68.string(),field:z68.string(),value:z68.string(),documentCount:z68.number().int().positive(),documentIds:z68.array(z68.uuid()),documentIdsTruncated:z68.boolean().optional()}),SchemaTransitionIssueSchema=UniqueConflictIssueSchema,SchemaTransitionRejectedErrorSchema=z68.object({code:z68.literal("schema_transition_rejected"),message:z68.string(),issues:z68.array(SchemaTransitionIssueSchema),truncated:z68.boolean().optional()})}});import{z as z69}from"zod";var CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS,CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH,CmsContentTypeNameSchema,CmsFieldNameSchema,CmsCollectionOrderSchema,CmsFieldOrderSchema,CmsListSortSchema,CmsDisplayDefaultsDTOSchema,CmsDisplayDefaultsDTO,CmsCollectionOrderRequestSchema,CmsFieldOrderRequestSchema,CmsDisplayDefaultsResponseSchema,init_cms_display_defaults_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/cms-display-defaults.dto.js"(){"use strict";init_common();init_create_dto();init_response();CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS=200,CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH=255,CmsContentTypeNameSchema=z69.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_TYPE_NAME_PATTERN),CmsFieldNameSchema=z69.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_FIELD_NAME_PATTERN),CmsCollectionOrderSchema=z69.array(CmsContentTypeNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsFieldOrderSchema=z69.array(CmsFieldNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsListSortSchema=z69.object({field:CmsFieldNameSchema,direction:z69.enum(["asc","desc"])}),CmsDisplayDefaultsDTOSchema=z69.object({collectionOrder:CmsCollectionOrderSchema.nullable(),fieldOrders:z69.record(CmsContentTypeNameSchema,CmsFieldOrderSchema),listSorts:z69.record(CmsContentTypeNameSchema,CmsListSortSchema)}),CmsDisplayDefaultsDTO=createDTO(CmsDisplayDefaultsDTOSchema),CmsCollectionOrderRequestSchema=z69.object({order:CmsCollectionOrderSchema}),CmsFieldOrderRequestSchema=z69.object({order:CmsFieldOrderSchema}),CmsDisplayDefaultsResponseSchema=createResponseSchema(CmsDisplayDefaultsDTOSchema)}});import{z as z70}from"zod";var MIGRATION_SOURCE_PLATFORMS,MigrationSourcePlatformSchema,init_project_migration_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-migration.dto.js"(){"use strict";MIGRATION_SOURCE_PLATFORMS=["webflow","framer","squarespace","wix","carrd","wordpress","nextjs","astro","react-router","other","unknown"],MigrationSourcePlatformSchema=z70.enum(MIGRATION_SOURCE_PLATFORMS)}});import{z as z71}from"zod";var CLIENT_TRACKED_EVENTS,ClientTrackedEventSchema,TrackProjectEventRequestSchema,init_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/analytics.dto.js"(){"use strict";CLIENT_TRACKED_EVENTS=["didStartMigration","didEndMigration"],ClientTrackedEventSchema=z71.enum(CLIENT_TRACKED_EVENTS),TrackProjectEventRequestSchema=z71.object({event:ClientTrackedEventSchema,properties:z71.record(z71.string(),z71.unknown()).default({})})}});import{z as z72}from"zod";var AssetPathItemSchema,AssetDTOSchema,AssetDTO,AssetTreeNodeDTOSchema,AssetTreeNodeDTO,AssetResponseSchema,AssetListResponseSchema,MediaStorageLimitErrorSchema,AssetReferenceScopeSchema,ASSET_REFERENCE_IMPACT_FILE_LIMIT,AssetReferenceImpactRequestSchema,AssetReferenceImpactSelectionDTOSchema,AssetReferenceFindingDTOSchema,AssetReferenceScopeResultDTOSchema,AssetReferenceScopeResultDTO,AssetReferenceImpactEventDTOSchema,AssetReferenceImpactEventDTO,AssetReferenceReplacementRequestSchema,AssetReferenceReplacementResultSchema,AssetReferenceReplacementResponseSchema,AssetReferenceReplacementPreviewResponseSchema,AssetCodeReferenceReplacementResultSchema,AssetReferenceReplacementErrorCodeSchema,AssetReferenceReplacementErrorSchema,ASSET_REMOVAL_ASSET_LIMIT,AssetRemovalIntentSchema,ASSET_REPLACING_REMOVAL_INTENTS,isReplacingIntent,AssetRemovalRequestSchema,AssetRemovalOperationDTOSchema,AssetRemovalOperationDTO,AssetRemovalScheduleResultDTOSchema,AssetRemovalScheduleResultDTO,AssetRemovalErrorCodeSchema,AssetRemovalErrorSchema,init_asset_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/asset.dto.js"(){"use strict";init_common();init_create_dto();init_response();AssetPathItemSchema=z72.object({id:z72.string(),name:z72.string()}),AssetDTOSchema=z72.object({id:z72.string(),name:z72.string(),type:AssetTypeSchema,originalFileName:z72.string().nullable(),parentId:z72.string().nullable(),mimeType:z72.string().nullable(),fileSize:z72.number().nullable(),url:z72.string().nullable(),storageKey:z72.string().nullable(),createdAt:z72.string(),updatedAt:z72.string(),altText:z72.string().nullable().optional(),caption:z72.string().nullable().optional(),aiCaption:z72.string().nullable().optional(),aiAltText:z72.string().nullable().optional(),aiTags:z72.array(z72.string()).nullable().optional(),aiPrimaryColor:z72.string().nullable().optional(),aiProcessingStatus:z72.string().nullable().optional(),width:z72.number().nullable().optional(),height:z72.number().nullable().optional(),path:z72.array(AssetPathItemSchema).optional(),hasChildren:z72.boolean().optional()}),AssetDTO=createDTO(AssetDTOSchema),AssetTreeNodeDTOSchema=AssetDTOSchema.extend({children:z72.lazy(()=>z72.array(AssetTreeNodeDTOSchema)).optional()}),AssetTreeNodeDTO=createDTO(AssetTreeNodeDTOSchema),AssetResponseSchema=createResponseSchema(AssetDTOSchema),AssetListResponseSchema=createResponseSchema(z72.array(AssetDTOSchema)),MediaStorageLimitErrorSchema=z72.object({error:z72.string(),code:z72.literal("media_storage_limit_exceeded"),usedBytes:z72.number().int().nonnegative(),limitBytes:z72.number().int().positive(),incomingBytes:z72.number().int().nonnegative()}),AssetReferenceScopeSchema=z72.enum(["current","main","live"]),ASSET_REFERENCE_IMPACT_FILE_LIMIT=50,AssetReferenceImpactRequestSchema=z72.object({assetIds:z72.array(z72.uuid()).min(1).max(ASSET_REFERENCE_IMPACT_FILE_LIMIT),scopes:z72.array(AssetReferenceScopeSchema).min(1).optional()}),AssetReferenceImpactSelectionDTOSchema=z72.object({totalFiles:z72.number().int().nonnegative(),checkedFiles:z72.number().int().nonnegative(),limit:z72.number().int().positive()}),AssetReferenceFindingDTOSchema=z72.object({assetId:z72.uuid(),entryId:z72.string(),documentId:z72.string(),contentType:z72.string(),locale:z72.string().nullable(),slug:z72.string(),fieldPath:z72.string()}),AssetReferenceScopeResultDTOSchema=z72.object({scope:AssetReferenceScopeSchema,label:z72.string(),state:z72.enum(["available","not-published","failed"]),coverage:z72.enum(["complete","partial","failed"]),referenceCount:z72.number().int().nonnegative().optional(),codeReferenceCount:z72.number().int().nonnegative().optional(),referencedAssetIds:z72.array(z72.uuid()).optional(),references:z72.array(AssetReferenceFindingDTOSchema),reason:z72.enum(["timeout","unavailable"]).optional()}),AssetReferenceScopeResultDTO=createDTO(AssetReferenceScopeResultDTOSchema),AssetReferenceImpactEventDTOSchema=z72.discriminatedUnion("type",[z72.object({type:z72.literal("selection"),data:AssetReferenceImpactSelectionDTOSchema}),z72.object({type:z72.literal("scope"),data:AssetReferenceScopeResultDTOSchema}),z72.object({type:z72.literal("complete")})]),AssetReferenceImpactEventDTO=createDTO(AssetReferenceImpactEventDTOSchema),AssetReferenceReplacementRequestSchema=z72.object({replacementAssetId:z72.uuid()}),AssetReferenceReplacementResultSchema=z72.object({referencesReplaced:z72.number().int().nonnegative(),entriesChanged:z72.number().int().nonnegative()}),AssetReferenceReplacementResponseSchema=createResponseSchema(AssetReferenceReplacementResultSchema),AssetReferenceReplacementPreviewResponseSchema=createResponseSchema(AssetReferenceReplacementResultSchema),AssetCodeReferenceReplacementResultSchema=z72.object({referencesReplaced:z72.number().int().nonnegative(),filesChanged:z72.number().int().nonnegative(),commitSha:z72.string().nullable()}),AssetReferenceReplacementErrorCodeSchema=z72.enum(["asset_replacement.self","asset_replacement.source_not_found","asset_replacement.replacement_not_found","asset_replacement.incompatible_media","asset_replacement.target_unavailable","asset_replacement.code_not_editable","asset_replacement.code_unavailable","asset_replacement.code_conflict","asset_replacement.code_too_many_files"]),AssetReferenceReplacementErrorSchema=z72.object({error:z72.string(),code:AssetReferenceReplacementErrorCodeSchema}),ASSET_REMOVAL_ASSET_LIMIT=200,AssetRemovalIntentSchema=z72.enum(["remove-from-branch","delete-from-project","replace-and-remove","replace-and-delete"]),ASSET_REPLACING_REMOVAL_INTENTS=["replace-and-remove","replace-and-delete"],isReplacingIntent=__name(intent=>ASSET_REPLACING_REMOVAL_INTENTS.includes(intent),"isReplacingIntent"),AssetRemovalRequestSchema=z72.object({intent:AssetRemovalIntentSchema,assetIds:z72.array(z72.uuid()).min(1).max(ASSET_REMOVAL_ASSET_LIMIT),replacementAssetId:z72.uuid().optional()}).refine(request=>isReplacingIntent(request.intent)===(request.replacementAssetId!==void 0),{message:"A replacement is required by the replace intents and rejected by the others",path:["replacementAssetId"]}).refine(request=>!isReplacingIntent(request.intent)||request.assetIds.length===1,{message:"A replacement applies to exactly one asset",path:["assetIds"]}),AssetRemovalOperationDTOSchema=z72.object({id:z72.uuid(),intent:AssetRemovalIntentSchema,assetIds:z72.array(z72.uuid()),replacementAssetId:z72.uuid().nullable(),expiresAt:z72.iso.datetime(),undoable:z72.boolean(),requestedByMe:z72.boolean()}),AssetRemovalOperationDTO=createDTO(AssetRemovalOperationDTOSchema),AssetRemovalScheduleResultDTOSchema=AssetRemovalOperationDTOSchema.extend({codeReplacement:AssetCodeReferenceReplacementResultSchema.optional()}),AssetRemovalScheduleResultDTO=createDTO(AssetRemovalScheduleResultDTOSchema),AssetRemovalErrorCodeSchema=z72.enum(["asset_removal.asset_not_found","asset_removal.replacement_not_found","asset_removal.already_finalized"]),AssetRemovalErrorSchema=z72.object({error:z72.string(),code:AssetRemovalErrorCodeSchema})}});import{z as z73}from"zod";var TranslationDTOSchema,TranslationDTO,init_translation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/translation.dto.js"(){"use strict";init_create_dto();TranslationDTOSchema=z73.object({key:z73.string(),value:z73.string().optional(),defaultValue:z73.string(),locale:z73.string()}),TranslationDTO=createDTO(TranslationDTOSchema)}});import{z as z74}from"zod";var DocumentNodeDTOSchema,DocumentTreeDTOSchema,DocumentPathDTOSchema,DocumentPathDTO,DocumentTreeResponseSchema,DocumentPathResponseSchema,init_document_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/document.dto.js"(){"use strict";init_create_dto();init_response();DocumentNodeDTOSchema=z74.object({id:z74.string(),name:z74.string(),type:z74.enum(["file","folder"]),path:z74.string(),children:z74.lazy(()=>z74.array(DocumentNodeDTOSchema)).optional()}),DocumentTreeDTOSchema=z74.array(DocumentNodeDTOSchema),DocumentPathDTOSchema=z74.object({path:z74.string(),exists:z74.boolean(),type:z74.enum(["file","folder"]).optional()}),DocumentPathDTO=createDTO(DocumentPathDTOSchema),DocumentTreeResponseSchema=createResponseSchema(DocumentTreeDTOSchema),DocumentPathResponseSchema=createResponseSchema(DocumentPathDTOSchema)}});import{z as z75}from"zod";var FormFieldTypeSchema,FormFieldValidationSchema,FormFieldSchema,FormFieldsSchema,FormContentSchema,FormUpdateSchema,init_form_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/form.dto.js"(){"use strict";FormFieldTypeSchema=z75.enum(["text","email","textarea","number","phone","url","select","checkbox","date","hidden","file"]),FormFieldValidationSchema=z75.object({minLength:z75.number().optional(),maxLength:z75.number().optional(),min:z75.number().optional(),max:z75.number().optional(),pattern:z75.string().optional(),maxFileSize:z75.number().optional(),accept:z75.array(z75.string()).optional()}),FormFieldSchema=z75.object({type:FormFieldTypeSchema,label:z75.string(),placeholder:z75.string().optional(),required:z75.boolean().optional(),defaultValue:z75.string().optional(),options:z75.array(z75.string()).optional(),validation:FormFieldValidationSchema.optional()}),FormFieldsSchema=z75.record(z75.string(),FormFieldSchema),FormContentSchema=z75.object({name:z75.string().min(1).max(255),label:z75.string().min(1).max(255),fields:FormFieldsSchema}).strict(),FormUpdateSchema=FormContentSchema.partial().refine(update=>update.name!==void 0||update.label!==void 0||update.fields!==void 0,{message:"Pass at least one of name, label, or fields."})}});import{z as z76}from"zod";var ChatTaskStatusSchema,ChatTaskDTOSchema,ChatTaskListDTOSchema,init_chat_task_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat-task.dto.js"(){"use strict";ChatTaskStatusSchema=z76.enum(["queued","running","finished","failed","cancelled"]),ChatTaskDTOSchema=z76.object({id:z76.string().uuid(),label:z76.string(),status:ChatTaskStatusSchema,startedAt:z76.string(),endedAt:z76.string().nullable(),result:z76.string().nullable()}),ChatTaskListDTOSchema=z76.object({tasks:z76.array(ChatTaskDTOSchema)})}});import{z as z77}from"zod";var AgentPatchSchema,AgentToolRoutineSchema,AgentToolErrorCodeSchema,AgentToolResultSchema,AgentInstructionAuthorSchema,AgentInstructionRevisionDTOSchema,AgentInstructionRevisionListDTOSchema,AgentInstructionRevisionListResponseSchema,AgentInstructionRestoreSchema,init_chat_agent_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat-agent.dto.js"(){"use strict";init_response();init_chat_routine_dto();init_chat_dto();AgentPatchSchema=z77.object({name:z77.string().trim().min(1).max(120).optional(),description:z77.string().trim().min(1).max(300).optional(),instructions:ProjectChatInstructionsSchema.pipe(z77.string().min(1)).optional(),live:z77.literal(!0).optional()}),AgentToolRoutineSchema=z77.object({id:z77.string(),name:z77.string(),schedule:ChatRoutineScheduleSchema.nullable(),trigger:z77.string().nullable()}),AgentToolErrorCodeSchema=z77.enum(["plan_required","not_allowed","default_agent","not_seen","invalid"]),AgentToolResultSchema=z77.discriminatedUnion("ok",[z77.object({ok:z77.literal(!0),agent:z77.object({id:z77.string(),name:z77.string(),live:z77.boolean(),routines:z77.array(AgentToolRoutineSchema)}),revisionId:z77.string().optional()}),z77.object({ok:z77.literal(!1),error:z77.string(),code:AgentToolErrorCodeSchema.optional()})]),AgentInstructionAuthorSchema=z77.object({kind:z77.enum(["person","agent"]),id:z77.string().nullable(),name:z77.string().nullable()}),AgentInstructionRevisionDTOSchema=z77.object({id:z77.string().uuid(),previous:z77.string().nullable(),instructions:z77.string().nullable(),author:AgentInstructionAuthorSchema,createdAt:z77.string()}),AgentInstructionRevisionListDTOSchema=z77.object({revisions:z77.array(AgentInstructionRevisionDTOSchema)}),AgentInstructionRevisionListResponseSchema=createResponseSchema(AgentInstructionRevisionListDTOSchema),AgentInstructionRestoreSchema=z77.object({revisionId:z77.string().uuid()})}});import{z as z78}from"zod";var UploadResultDTOSchema,UploadResultDTO,UploadResultResponseSchema,init_upload_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/upload.dto.js"(){"use strict";init_common();init_create_dto();init_response();UploadResultDTOSchema=z78.object({url:z78.string().url(),key:z78.string(),size:z78.number(),contentType:z78.string(),uploadedAt:CommonSchemas.timestamp}),UploadResultDTO=createDTO(UploadResultDTOSchema),UploadResultResponseSchema=createResponseSchema(UploadResultDTOSchema)}});import{z as z79}from"zod";var ServicePermissionsDTOSchema,ServicePermissionsDTO,ServicePermissionsResponseSchema,init_service_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/service.dto.js"(){"use strict";init_create_dto();init_response();ServicePermissionsDTOSchema=z79.object({canAccess:z79.boolean(),permissions:z79.record(z79.string(),z79.boolean()),role:z79.string().nullable()}),ServicePermissionsDTO=createDTO(ServicePermissionsDTOSchema),ServicePermissionsResponseSchema=createResponseSchema(ServicePermissionsDTOSchema)}});import{z as z80}from"zod";var OrganizationProjectsSearchQuerySchema,init_search_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/search.dto.js"(){"use strict";init_pagination();OrganizationProjectsSearchQuerySchema=PaginationQuerySchema.extend({q:z80.string().trim().default(""),sort:z80.enum(["recent","name","relevance"]).default("recent"),category:z80.string().optional()})}});import{z as z81}from"zod";var DomainStatusSchema,DomainSourceSchema,PaymentStatusSchema,DomainDTOSchema,DomainDTO,DomainSearchResultDTOSchema,DomainSearchResultDTO,DomainPricingDTOSchema,DomainPricingDTO,DomainContactSchema,DomainContactDTO,UpdateDomainContactsRequestSchema,SearchDomainsRequestSchema,CheckAvailabilityRequestSchema,DOMAIN_NAME_REGEX,DomainNameSchema,PurchaseDomainRequestSchema,UpdateDomainSettingsRequestSchema,RenewDomainRequestSchema,DomainResponseSchema,DomainListResponseSchema,DomainSearchResultListResponseSchema,DomainPricingResponseSchema,DomainContactResponseSchema,ContactVerificationStatusSchema,ContactVerificationStatusResponseSchema,init_registered_domain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/registered-domain.dto.js"(){"use strict";init_common();init_create_dto();init_response();DomainStatusSchema=z81.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),DomainSourceSchema=z81.enum(["fimo","external"]),PaymentStatusSchema=z81.enum(["pending","paid","failed","refunded"]),DomainDTOSchema=z81.object({id:z81.string().uuid(),domain:z81.string(),status:DomainStatusSchema,source:DomainSourceSchema,registrationDate:CommonSchemas.timestamp.nullable(),expirationDate:CommonSchemas.timestamp.nullable(),autoRenew:z81.boolean(),price:z81.number().int().nullable(),renewalPrice:z81.number().int().nullable(),paymentStatus:PaymentStatusSchema.nullable(),checkoutUrl:z81.string().nullable(),failureReason:z81.string().nullable(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),DomainDTO=createDTO(DomainDTOSchema),DomainSearchResultDTOSchema=z81.object({domain:z81.string(),available:z81.boolean(),premium:z81.boolean(),price:z81.number().nullable(),renewalPrice:z81.number().nullable(),purchaseType:z81.string().nullable()}),DomainSearchResultDTO=createDTO(DomainSearchResultDTOSchema),DomainPricingDTOSchema=z81.object({domain:z81.string(),price:z81.number().nullable(),renewalPrice:z81.number().nullable(),premium:z81.boolean(),allowedYears:z81.array(z81.number().int().positive())}),DomainPricingDTO=createDTO(DomainPricingDTOSchema),DomainContactSchema=z81.object({firstName:z81.string().max(100),lastName:z81.string().max(100),companyName:z81.string().max(100).optional(),address1:z81.string().max(255),address2:z81.string().max(255).optional(),city:z81.string().max(100),state:z81.string().max(100),zip:z81.string().max(20),country:z81.string().max(2),phone:z81.string().max(30),email:z81.union([z81.string().email().max(255),z81.literal("")])}),DomainContactDTO=createDTO(DomainContactSchema),UpdateDomainContactsRequestSchema=z81.object({firstName:z81.string().min(1).max(100),lastName:z81.string().min(1).max(100),companyName:z81.string().max(100).optional(),address1:z81.string().min(1).max(255),address2:z81.string().max(255).optional(),city:z81.string().min(1).max(100),state:z81.string().min(1).max(100),zip:z81.string().min(1).max(20),country:z81.string().min(1).max(2),phone:z81.string().min(1).max(30),email:z81.string().email().max(255)}),SearchDomainsRequestSchema=z81.object({keyword:z81.string().min(1).max(100),tldFilter:z81.array(z81.string()).optional()}),CheckAvailabilityRequestSchema=z81.object({domains:z81.array(z81.string()).min(1).max(50)}),DOMAIN_NAME_REGEX=/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,DomainNameSchema=z81.string().min(1).max(255).regex(DOMAIN_NAME_REGEX,{message:"Invalid domain name"}),PurchaseDomainRequestSchema=z81.object({domain:DomainNameSchema,years:z81.number().int().min(1).max(10).optional().default(3),autoRenew:z81.boolean().optional().default(!0)}),UpdateDomainSettingsRequestSchema=z81.object({autoRenew:z81.boolean().optional()}),RenewDomainRequestSchema=z81.object({years:z81.number().int().min(1).max(10).optional().default(1),autoRenew:z81.boolean().optional().default(!0)}),DomainResponseSchema=createResponseSchema(DomainDTOSchema),DomainListResponseSchema=createResponseSchema(z81.array(DomainDTOSchema)),DomainSearchResultListResponseSchema=createResponseSchema(z81.array(DomainSearchResultDTOSchema)),DomainPricingResponseSchema=createResponseSchema(DomainPricingDTOSchema),DomainContactResponseSchema=createResponseSchema(DomainContactSchema.nullable()),ContactVerificationStatusSchema=z81.object({verified:z81.boolean(),email:z81.string().nullable(),verifyBy:z81.string().nullable()}),ContactVerificationStatusResponseSchema=createResponseSchema(ContactVerificationStatusSchema)}});import{z as z82}from"zod";var ProjectDomainStatusSchema,SSLStatusSchema,SSLValidationRecordSchema,SSLValidationErrorSchema,OwnershipVerificationSchema,ProjectDomainSSLDTOSchema,DomainProviderSchema,DomainTypeSchema,RedirectConfigSchema,ProjectDomainDTOSchema,ProjectDomainDTO,ProjectDomainListResponseSchema,ProjectDomainResponseSchema,AddProjectDomainRequestSchema,CheckProjectDomainHostnameReasonSchema,CheckProjectDomainHostnameResponseSchema,DeleteProjectDomainResponseSchema,init_project_domain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-domain.dto.js"(){"use strict";init_common();init_create_dto();init_response();ProjectDomainStatusSchema=z82.enum(["pending","active","pending_validation","active_redeploying","moved","deleted","pending_deletion","pending_migration","pending_provisioned","test_pending","test_active","test_active_apex","test_blocked","test_failed","provisioned","blocked"]),SSLStatusSchema=z82.enum(["initializing","pending_validation","pending_issuance","pending_deployment","pending_expiration","expired","active","deleted","pending_cleanup","staging_deployment","staging_active","deactivating","inactive","backup_issued","holding_deployment"]),SSLValidationRecordSchema=z82.object({txtName:z82.string().nullable().optional(),txtValue:z82.string().nullable().optional(),httpUrl:z82.string().nullable().optional(),httpBody:z82.string().nullable().optional(),cname:z82.string().nullable().optional(),cnameTarget:z82.string().nullable().optional()}),SSLValidationErrorSchema=z82.object({message:z82.string()}),OwnershipVerificationSchema=z82.object({type:z82.string(),name:z82.string(),value:z82.string()}),ProjectDomainSSLDTOSchema=z82.object({status:z82.string(),method:z82.string().nullable(),type:z82.string().nullable(),validationRecords:z82.array(SSLValidationRecordSchema).nullable().optional(),validationErrors:z82.array(SSLValidationErrorSchema).nullable().optional()}),DomainProviderSchema=z82.enum(["cloudflare","saas_custom_domains"]),DomainTypeSchema=z82.enum(["subdomain","apex"]),RedirectConfigSchema=z82.object({type:z82.enum(["apex_to_www","www_to_apex"]),linkedDomainId:z82.string()}).nullable().optional(),ProjectDomainDTOSchema=z82.object({id:z82.string(),hostname:z82.string(),status:z82.string(),ssl:ProjectDomainSSLDTOSchema,ownershipVerification:z82.array(OwnershipVerificationSchema).nullable().optional(),cnameTarget:z82.string(),scdCnameTarget:z82.string().optional(),apexTargets:z82.array(z82.string()),dnsAutoConfigured:z82.boolean(),createdAt:CommonSchemas.timestamp,provider:DomainProviderSchema,domainType:DomainTypeSchema,redirectConfig:RedirectConfigSchema,migrationStatus:z82.string().nullable().optional()}),ProjectDomainDTO=createDTO(ProjectDomainDTOSchema),ProjectDomainListResponseSchema=createResponseSchema(z82.array(ProjectDomainDTOSchema)),ProjectDomainResponseSchema=createResponseSchema(ProjectDomainDTOSchema),AddProjectDomainRequestSchema=z82.object({hostname:z82.hostname().regex(/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,{error:"Invalid hostname"}).refine(value=>!/\.fimo\.site$/i.test(value),{error:"This is a Fimo-owned domain. Edit your built-in URL instead."}),redirectToWww:z82.boolean().optional()}),CheckProjectDomainHostnameReasonSchema=z82.enum(["invalid_hostname","fimo_owned_hostname","reserved","taken_by_another_project","taken_by_this_project"]),CheckProjectDomainHostnameResponseSchema=createResponseSchema(z82.object({available:z82.boolean(),reason:CheckProjectDomainHostnameReasonSchema.optional()})),DeleteProjectDomainResponseSchema=createResponseSchema(z82.object({success:z82.boolean(),hostname:z82.string()}))}});import{z as z83}from"zod";var SUBDOMAIN_REGEX,SubdomainCheckReasonSchema,CheckProjectSubdomainResponseSchema,UpdateProjectSubdomainRequestSchema,UpdateProjectSubdomainErrorReasonSchema,UpdateProjectSubdomainResponseSchema,SubdomainSuggestionsQuerySchema,SubdomainSuggestionsResponseSchema,init_project_subdomain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-subdomain.dto.js"(){"use strict";init_response();SUBDOMAIN_REGEX=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/,SubdomainCheckReasonSchema=z83.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain"]),CheckProjectSubdomainResponseSchema=createResponseSchema(z83.object({available:z83.boolean(),reason:SubdomainCheckReasonSchema.optional()})),UpdateProjectSubdomainRequestSchema=z83.object({slug:z83.string().min(1).max(63).regex(SUBDOMAIN_REGEX,{error:"Invalid subdomain shape"})}),UpdateProjectSubdomainErrorReasonSchema=z83.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain","kv_sync_failed","hosting_sync_failed"]),UpdateProjectSubdomainResponseSchema=createResponseSchema(z83.object({subdomain:z83.string(),subdomainUpdatedAt:z83.coerce.date()})),SubdomainSuggestionsQuerySchema=z83.object({base:z83.string().max(100).optional(),max:z83.coerce.number().int().min(1).max(10).optional()}),SubdomainSuggestionsResponseSchema=createResponseSchema(z83.object({suggestions:z83.array(z83.string())}))}});import{z as z84}from"zod";var PROJECT_TRANSFER_BLOCKER_CODES,ProjectTransferBlockerCodeSchema,ProjectTransferBlockerDTO,TransferProjectRequestSchema,ProjectTransferResultDTO,init_project_transfer_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-transfer.dto.js"(){"use strict";init_create_dto();PROJECT_TRANSFER_BLOCKER_CODES=["same_organization","concurrent_transfer","agent_work_in_flight","unsettled_agent_holds","unsettled_usage_ledger","project_integrations_present","source_registered_domain"],ProjectTransferBlockerCodeSchema=z84.enum(PROJECT_TRANSFER_BLOCKER_CODES),ProjectTransferBlockerDTO=createDTO(z84.object({code:ProjectTransferBlockerCodeSchema,message:z84.string(),count:z84.number().int().nonnegative().optional()})),TransferProjectRequestSchema=z84.object({targetOrganizationId:z84.string().min(1)}),ProjectTransferResultDTO=createDTO(z84.object({projectId:z84.string(),sourceOrganizationId:z84.string(),targetOrganizationId:z84.string(),movedThreads:z84.number().int().nonnegative(),revokedInvites:z84.number().int().nonnegative(),revokedGrants:z84.number().int().nonnegative(),preservedGrants:z84.number().int().nonnegative(),warnings:z84.array(z84.string())}))}});import{z as z85}from"zod";var PROJECT_TOKEN_PREFIX,MB2,UNCLAIMED_PLAN,UnclaimedLockedFeatureSchema,UNCLAIMED_CLAIM_STATES,UnclaimedClaimStateSchema,UNCLAIMED_PROJECT_ERROR_CODES,UnclaimedProjectErrorCodeSchema,ProvisionUnclaimedProjectRequestSchema,UnclaimedProjectLimitsSchema,UnclaimedProjectClaimSchema,ProvisionUnclaimedProjectResponseDTO,UnclaimedClaimStatusDTO,UnclaimedClaimSecretSchema,UnclaimedClaimStatusRequestSchema,UnclaimedClaimStatesRequestSchema,UnclaimedClaimStatesResponseDTO,ClaimUnclaimedProjectRequestSchema,ClaimUnclaimedProjectResultDTO,ProjectTokenSelfDTO,init_unclaimed_project_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/unclaimed-project.dto.js"(){"use strict";init_create_dto();init_project_dto();PROJECT_TOKEN_PREFIX="fimo_pt_",MB2=1e6,UNCLAIMED_PLAN={ttlHours:72,tokenTtlAfterClaimHours:24,media:{totalBytes:50*MB2,fileBytes:5*MB2,maxFiles:100,mimeTypes:["image/jpeg","image/png","image/webp","image/avif","image/gif"]},database:{storageBytes:100*MB2,computeSeconds:600*60,maxComputeUnits:.5},locked:{publish:"Publishing",subdomain:"A fimo.site address",custom_domains:"Custom domains",branches:"Extra Branches",environments:"Extra environments",asset_generation:"Generating images and videos",integrations:"Connecting integrations",invites:"Inviting people",schedules:"Schedules",agents:"Fimo agents",ai_credits:"AI features"}},UnclaimedLockedFeatureSchema=z85.enum(Object.keys(UNCLAIMED_PLAN.locked)),UNCLAIMED_CLAIM_STATES=["claimable","claimed","expired"],UnclaimedClaimStateSchema=z85.enum(UNCLAIMED_CLAIM_STATES),UNCLAIMED_PROJECT_ERROR_CODES=["project_unclaimed","unclaimed_limit_reached","unclaimed_deploy_limit","claim_not_claimable","claim_project_limit_reached","claim_target_organization_not_found","claim_target_organization_forbidden","claim_target_subscription_inactive","claim_blocked","project_token_required","unclaimed_media_limit"],UnclaimedProjectErrorCodeSchema=z85.enum(UNCLAIMED_PROJECT_ERROR_CODES),ProvisionUnclaimedProjectRequestSchema=z85.object({displayName:z85.string().trim().min(1).max(80),machineId:z85.string().trim().min(1).max(128).optional(),cliVersion:z85.string().trim().max(64).optional()}),UnclaimedProjectLimitsSchema=z85.object({ttlHours:z85.number().int().positive(),lockedFeatures:z85.array(UnclaimedLockedFeatureSchema),media:z85.object({totalBytes:z85.number().int().nonnegative(),fileBytes:z85.number().int().positive(),maxFiles:z85.number().int().nonnegative(),mimeTypes:z85.array(z85.string())}),database:z85.object({storageBytes:z85.number().int().positive(),computeSeconds:z85.number().int().positive(),maxComputeUnits:z85.number().positive()})}),UnclaimedProjectClaimSchema=z85.object({url:z85.string().url(),expiresAt:z85.coerce.date()}),ProvisionUnclaimedProjectResponseDTO=createDTO(z85.object({project:ProjectDTOSchema,token:z85.string(),claim:UnclaimedProjectClaimSchema,limits:UnclaimedProjectLimitsSchema})),UnclaimedClaimStatusDTO=createDTO(z85.object({state:UnclaimedClaimStateSchema,displayName:z85.string().nullable(),expiresAt:z85.coerce.date().nullable(),projectId:z85.string().nullable()})),UnclaimedClaimSecretSchema=z85.string().min(1).max(256),UnclaimedClaimStatusRequestSchema=z85.object({secret:UnclaimedClaimSecretSchema}),UnclaimedClaimStatesRequestSchema=z85.object({secrets:z85.array(UnclaimedClaimSecretSchema).min(1).max(20)}),UnclaimedClaimStatesResponseDTO=createDTO(z85.object({claims:z85.array(z85.object({state:UnclaimedClaimStateSchema,expiresAt:z85.coerce.date().nullable()}))})),ClaimUnclaimedProjectRequestSchema=z85.object({secret:UnclaimedClaimSecretSchema,organizationId:z85.string().min(1)}),ClaimUnclaimedProjectResultDTO=createDTO(z85.object({projectId:z85.string(),organizationId:z85.string()})),ProjectTokenSelfDTO=createDTO(z85.object({kind:z85.literal("project_token"),projectId:z85.string(),projectName:z85.string(),displayName:z85.string().nullable(),organizationId:z85.string().nullable(),organizationName:z85.string().nullable(),claimState:UnclaimedClaimStateSchema,expiresAt:z85.coerce.date().nullable(),tokenExpiresAt:z85.coerce.date().nullable()}))}});import{z as z86}from"zod";var ProjectLocaleCoverageSchema,ProjectLocaleStatsItemSchema,ProjectLocaleStatsSchema,ProjectLocaleStatsDTO,ProjectLocaleStatsResponseSchema,AddProjectLocaleRequestSchema,RemoveProjectLocaleParamsSchema,ProjectLocaleMutationSchema,ProjectLocaleMutationDTO,ProjectLocaleMutationResponseSchema,RemoveProjectLocaleSchema,RemoveProjectLocaleDTO,RemoveProjectLocaleResponseSchema,init_project_locale_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-locale.dto.js"(){"use strict";init_create_dto();init_response();ProjectLocaleCoverageSchema=z86.object({translated:z86.number().int().nonnegative(),total:z86.number().int().nonnegative()}),ProjectLocaleStatsItemSchema=z86.object({locale:z86.string(),isDefault:z86.boolean(),entries:ProjectLocaleCoverageSchema,labels:ProjectLocaleCoverageSchema}),ProjectLocaleStatsSchema=z86.object({defaultLocale:z86.string(),locales:z86.array(ProjectLocaleStatsItemSchema)}),ProjectLocaleStatsDTO=createDTO(ProjectLocaleStatsSchema),ProjectLocaleStatsResponseSchema=createResponseSchema(ProjectLocaleStatsSchema),AddProjectLocaleRequestSchema=z86.object({locale:z86.string().min(1).max(40)}),RemoveProjectLocaleParamsSchema=z86.object({locale:z86.string().min(1).max(40)}),ProjectLocaleMutationSchema=z86.object({locale:z86.string()}),ProjectLocaleMutationDTO=createDTO(ProjectLocaleMutationSchema),ProjectLocaleMutationResponseSchema=createResponseSchema(ProjectLocaleMutationSchema),RemoveProjectLocaleSchema=z86.object({locale:z86.string(),entriesDeleted:z86.number().int().nonnegative(),labelsDeleted:z86.number().int().nonnegative()}),RemoveProjectLocaleDTO=createDTO(RemoveProjectLocaleSchema),RemoveProjectLocaleResponseSchema=createResponseSchema(RemoveProjectLocaleSchema)}});import{z as z87}from"zod";function flag(key,description,options={}){return{name:key.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),key,description,type:options.type??"string",required:options.required??!1,...options.defaultValue!==void 0?{defaultValue:options.defaultValue}:{},...options.enumValues?{enumValues:[...options.enumValues]}:{},isArray:options.isArray??!1}}var GENERATION_QUALITIES,GENERATION_ASPECT_RATIOS,GENERATION_TASK_IDS,GenerationQualitySchema,GenerationTaskIdSchema,GENERATION_TASK_MANIFESTS,GenerationTaskEstimateDTOSchema,GenerationTaskEstimateDTO,init_generation_task_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/generation-task.dto.js"(){"use strict";init_create_dto();GENERATION_QUALITIES=["draft","standard","premium"],GENERATION_ASPECT_RATIOS=["1:1","16:9","9:16","4:3","3:4"],GENERATION_TASK_IDS=["image.generate","image.edit","image.remove-background","image.upscale","video.generate","video.animate","video.replace"],GenerationQualitySchema=z87.enum(GENERATION_QUALITIES),GenerationTaskIdSchema=z87.enum(GENERATION_TASK_IDS);__name(flag,"flag");GENERATION_TASK_MANIFESTS=[{id:"image.generate",modality:"image",operation:"generate",displayName:"Generate image",description:"Create an image from a prompt. Quality selects the appropriate generation route.",flags:[flag("prompt","Generation prompt",{required:!0}),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"1:1",enumValues:GENERATION_ASPECT_RATIOS})]},{id:"image.edit",modality:"image",operation:"edit",displayName:"Edit image",description:"Transform up to five source images using a natural-language instruction.",flags:[flag("prompt","Editing instruction",{required:!0}),flag("images","Source asset id or absolute URL; repeatable up to five times",{required:!0,isArray:!0}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"1:1",enumValues:GENERATION_ASPECT_RATIOS})]},{id:"image.remove-background",modality:"image",operation:"remove-background",displayName:"Remove image background",description:"Remove the background from one image and return a transparent cutout.",flags:[flag("image","Source asset id or absolute URL",{required:!0})]},{id:"image.upscale",modality:"image",operation:"upscale",displayName:"Upscale image",description:"Increase image resolution while preserving and optionally enhancing detail.",flags:[flag("image","Source asset id or absolute URL",{required:!0}),flag("targetMegapixels","Target resolution in megapixels",{type:"integer",defaultValue:4}),flag("outputFormat","Output image format",{type:"enum",defaultValue:"png",enumValues:["webp","jpg","png"]}),flag("enhanceDetails","Improve fine detail during upscaling",{type:"boolean",defaultValue:!0}),flag("enhanceRealism","Favor photorealistic detail reconstruction",{type:"boolean",defaultValue:!1})]},{id:"video.generate",modality:"video",operation:"generate",displayName:"Generate video",description:"Create a video from text or animate one source image. Loop closes the final frame back to the first.",flags:[flag("prompt","Generation and motion prompt",{required:!0}),flag("image","Optional source asset id or absolute URL"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"16:9",enumValues:GENERATION_ASPECT_RATIOS}),flag("duration","Duration in seconds; loops support 3 to 20 seconds",{type:"integer",defaultValue:5}),flag("includeAudio","Generate audio with the video",{type:"boolean",defaultValue:!1}),flag("loop","Make the final frame return to the source image",{type:"boolean",defaultValue:!1})]},{id:"video.animate",modality:"video",operation:"animate",displayName:"Animate image from video",description:"Apply the motion and camera movement from a source video to a reference image.",flags:[flag("video","Motion source asset id or absolute URL",{required:!0}),flag("image","Subject reference asset id or absolute URL",{required:!0}),flag("prompt","Optional instruction for the animation"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("duration","Source duration in seconds for cost calculation",{type:"integer",defaultValue:5}),flag("includeAudio","Keep audio in the generated video",{type:"boolean",defaultValue:!0})]},{id:"video.replace",modality:"video",operation:"replace",displayName:"Replace subjects in video",description:"Replace people in a source video with one to three reference identities while preserving motion.",flags:[flag("video","Source video asset id or absolute URL",{required:!0}),flag("images","Identity reference asset id or URL; repeatable up to three times",{required:!0,isArray:!0}),flag("prompt","Optional placement instruction"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("duration","Source duration in seconds for cost calculation",{type:"integer",defaultValue:5}),flag("includeAudio","Keep audio in the generated video",{type:"boolean",defaultValue:!0})]}],GenerationTaskEstimateDTOSchema=z87.object({task:GenerationTaskIdSchema,quality:GenerationQualitySchema.optional(),costUsd:z87.number(),credits:z87.number().optional(),billingMode:z87.enum(["fimo-credits","provider-account"]).optional(),confidence:z87.enum(["exact","estimated","metered"]),basis:z87.string()}),GenerationTaskEstimateDTO=createDTO(GenerationTaskEstimateDTOSchema)}});import{z as z88}from"zod";var GenerateRequestBaseSchema,GenerateRequestDTOSchema,GenerateRequestDTO,GenerateResponseDataSchema,GenerateResponseDTO,GenerateResponseSchema,GenerateErrorSchema,init_generation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/generation.dto.js"(){"use strict";init_create_dto();init_response();init_asset_dto();init_generation_task_dto();GenerateRequestBaseSchema=z88.object({options:z88.record(z88.string(),z88.unknown()),name:z88.string().optional(),parentId:z88.string().nullable().optional(),altText:z88.string().optional(),caption:z88.string().optional()}),GenerateRequestDTOSchema=GenerateRequestBaseSchema.extend({task:z88.string().min(1).optional(),model:z88.string().min(1).optional()}).superRefine((value,context)=>{!!value.task==!!value.model&&context.addIssue({code:"custom",message:"Provide exactly one of task or model",path:["task"]})}),GenerateRequestDTO=createDTO(GenerateRequestDTOSchema),GenerateResponseDataSchema=z88.object({jobId:z88.string(),status:z88.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema.optional(),error:z88.string().nullable().optional(),credits:z88.number().optional(),costUsd:z88.number().optional(),billingMode:z88.enum(["fimo-credits","provider-account"]).optional(),task:GenerationTaskIdSchema.optional(),quality:GenerationQualitySchema.optional()}),GenerateResponseDTO=createDTO(GenerateResponseDataSchema),GenerateResponseSchema=createResponseSchema(GenerateResponseDataSchema),GenerateErrorSchema=z88.object({error:z88.string(),code:z88.enum(["unknown-task","unknown-model","options-invalid","source-invalid","task-routing-failed","generation-failed","provider-error","cost-limit-exceeded","cost-estimate-unavailable","unsupported-modality"]),availableTasks:z88.array(GenerationTaskIdSchema).optional(),availableModels:z88.array(z88.string()).optional(),issues:z88.array(z88.unknown()).optional()})}});import{z as z89}from"zod";var FlagTypeSchema,FlagSpecSchema,AssetModelPriceSchema,AssetModelDTOSchema,AssetModelDTO,AssetModelEstimateDTOSchema,AssetModelEstimateDTO,init_asset_model_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/asset-model.dto.js"(){"use strict";init_create_dto();FlagTypeSchema=z89.enum(["string","number","integer","boolean","enum","array","unknown"]),FlagSpecSchema=z89.object({name:z89.string(),key:z89.string(),description:z89.string(),type:FlagTypeSchema,required:z89.boolean(),defaultValue:z89.unknown().optional(),enumValues:z89.array(z89.string()).optional(),isArray:z89.boolean()}),AssetModelPriceSchema=z89.object({unitPrice:z89.number(),unit:z89.string(),confidence:z89.enum(["exact","estimated","metered"])}),AssetModelDTOSchema=z89.object({id:z89.string(),shortName:z89.string(),provider:z89.string(),source:z89.string(),modality:z89.enum(["image","video","audio"]),tags:z89.array(z89.string()),displayName:z89.string(),description:z89.string(),flags:z89.array(FlagSpecSchema),price:AssetModelPriceSchema.nullable()}),AssetModelDTO=createDTO(AssetModelDTOSchema),AssetModelEstimateDTOSchema=z89.object({model:z89.string(),costUsd:z89.number(),credits:z89.number(),billingMode:z89.enum(["fimo-credits","provider-account"]),confidence:z89.enum(["exact","estimated","metered"]),basis:z89.string()}),AssetModelEstimateDTO=createDTO(AssetModelEstimateDTOSchema)}});import{z as z90}from"zod";var UserTourDTOSchema,UserTourDTO,UserTourResponseSchema,UserTourListResponseSchema,init_tour_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/tour.dto.js"(){"use strict";init_create_dto();init_response();UserTourDTOSchema=z90.object({tourId:z90.string(),version:z90.string(),status:z90.string(),completedAt:z90.coerce.date()}),UserTourDTO=createDTO(UserTourDTOSchema),UserTourResponseSchema=createResponseSchema(UserTourDTOSchema),UserTourListResponseSchema=createResponseSchema(z90.array(UserTourDTOSchema))}});import{z as z91}from"zod";var OpsSentryIssueResolutionResponseSchema,OpsSentryIssueResolutionResponseDTO,OpsSentryIssueResolutionErrorResponseSchema,OpsSentryIssueResolutionErrorResponseDTO,init_ops_sentry_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-sentry.dto.js"(){"use strict";init_ops();init_create_dto();OpsSentryIssueResolutionResponseSchema=z91.object({backendProfile:OpsBackendProfileSchema,provider:z91.literal("sentry"),issueId:OpsSentryIssueIdSchema,status:z91.literal("resolved")}),OpsSentryIssueResolutionResponseDTO=createDTO(OpsSentryIssueResolutionResponseSchema),OpsSentryIssueResolutionErrorResponseSchema=z91.object({backendProfile:OpsBackendProfileSchema,provider:z91.literal("sentry"),issueId:OpsSentryIssueIdSchema,resolved:z91.literal(!1),reason:z91.string()}),OpsSentryIssueResolutionErrorResponseDTO=createDTO(OpsSentryIssueResolutionErrorResponseSchema)}});import{z as z92}from"zod";var OpsProjectPackageManagerSummarySchema,OpsProjectPackageManagerSchema,OpsProjectPackageManagerDTO,init_ops_project_files_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-project-files.dto.js"(){"use strict";init_ops();init_create_dto();OpsProjectPackageManagerSummarySchema=z92.object({packageManager:z92.string().trim().min(1).max(200).nullable(),trackedLockfiles:z92.array(z92.enum(OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES)),sourceRevision:z92.string().trim().min(1)}),OpsProjectPackageManagerSchema=z92.object({target:z92.object({backendProfile:OpsBackendProfileSchema,projectId:z92.uuid(),projectEnv:z92.string().trim().min(1).max(255)}),...OpsProjectPackageManagerSummarySchema.shape}),OpsProjectPackageManagerDTO=createDTO(OpsProjectPackageManagerSchema)}});import{z as z93}from"zod";function uniqueRoutineNames(spec){let names=(spec.routines??[]).map(routine=>routine.name);return new Set(names).size===names.length}var OpsAgentChatRoutineSpecSchema,OpsAgentChatAgentSpecSchema,OpsAgentChatSpecObjectSchema,UNIQUE_ROUTINE_NAMES,OpsAgentChatSpecSchema,OpsAgentChatCreateInputSchema,OpsAgentChatOutcomeSchema,OpsAgentChatRoutineResultSchema,OpsAgentChatCreateResultSchema,init_ops_agent_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-agent-chat.dto.js"(){"use strict";init_ops();init_chat_routine_dto();OpsAgentChatRoutineSpecSchema=ChatRoutineCreateSchema.extend({schedule:ChatRoutineScheduleSchema.nullable(),paused:z93.boolean().optional()}).strict(),OpsAgentChatAgentSpecSchema=z93.union([z93.object({name:z93.string().trim().min(1).max(120),description:z93.string().trim().min(1).max(2e3)}).strict(),z93.object({template:z93.string().trim().min(1).max(64)}).strict()]),OpsAgentChatSpecObjectSchema=z93.object({agent:OpsAgentChatAgentSpecSchema,routines:z93.array(OpsAgentChatRoutineSpecSchema).max(50).optional()}).strict();__name(uniqueRoutineNames,"uniqueRoutineNames");UNIQUE_ROUTINE_NAMES={path:["routines"],message:"Routine names must be unique within one agent"},OpsAgentChatSpecSchema=OpsAgentChatSpecObjectSchema.refine(uniqueRoutineNames,UNIQUE_ROUTINE_NAMES),OpsAgentChatCreateInputSchema=OpsAgentChatSpecObjectSchema.extend({reason:z93.string().trim().min(1).max(1e3),dryRun:z93.boolean().optional()}).refine(uniqueRoutineNames,UNIQUE_ROUTINE_NAMES),OpsAgentChatOutcomeSchema=z93.enum(["created","existing","would_create"]),OpsAgentChatRoutineResultSchema=z93.object({id:z93.string().uuid().nullable(),name:z93.string(),schedule:ChatRoutineScheduleSchema.nullable(),nextRunAt:z93.string().nullable(),paused:z93.boolean(),outcome:z93.enum(["created","would_create"]),source:z93.enum(["spec","template"])}),OpsAgentChatCreateResultSchema=z93.object({target:z93.object({backendProfile:OpsBackendProfileSchema,projectId:z93.string().uuid()}),dryRun:z93.boolean(),applied:z93.boolean(),createdBy:z93.object({userId:z93.string()}),agent:z93.object({id:z93.string().uuid().nullable(),title:z93.string(),template:z93.string().nullable(),outcome:OpsAgentChatOutcomeSchema}),routines:z93.array(OpsAgentChatRoutineResultSchema),skipped:z93.array(z93.object({name:z93.string(),reason:z93.literal("routine_exists")})),refused:z93.array(z93.object({name:z93.string(),reason:ChatRoutineRefusalReasonSchema}))})}});import{z as z94}from"zod";var WEBHOOK_EVENT_TYPES,WebhookEventTypeSchema,WebhookEntryChangeActionSchema,WebhookEntryChangeReasonSchema,WebhookEnvironmentScopeSchema,WebhookEnvironmentSelectorSchema,EntryChangedWebhookEventDataSchema,FormSubmittedWebhookEventDataSchema,PublishStartedWebhookEventDataSchema,PublishSucceededWebhookEventDataSchema,PublishFailedWebhookEventDataSchema,PublishUnpublishedWebhookEventDataSchema,AnalyticsReportReadyWebhookEventDataSchema,MediaAssetWebhookEventDataSchema,MediaUploadedWebhookEventDataSchema,MediaUpdatedWebhookEventDataSchema,MediaDeletedWebhookEventDataSchema,DomainCreatedWebhookEventDataSchema,DomainDeletedWebhookEventDataSchema,LabelChangedWebhookEventDataSchema,LocaleCreatedWebhookEventDataSchema,LocaleDefaultChangedWebhookEventDataSchema,LocaleDeletedWebhookEventDataSchema,EnvironmentCreatedWebhookEventDataSchema,EnvironmentDeletedWebhookEventDataSchema,EnvironmentMergedWebhookEventDataSchema,BranchRestoredWebhookEventDataSchema,WebhookEventFamilySchema,WebhookDestinationKindSchema,WebhookHeaderValueInputSchema,WebhookHeaderInputSchema,WebhookHeaderDTOSchema,WebhookFilterSchema,JsonValueSchema,CreateProjectWebhookRequestSchema,UpdateProjectWebhookRequestSchema,TestProjectWebhookRequestSchema,WebhookDeliveryStatusSchema,ProjectWebhookDTOSchema,ProjectWebhookDTO,WebhookDeliveryDTOSchema,WebhookDeliveryDTO,WebhookDeliveriesPageSchema,WebhookDeliveryAttemptDTOSchema,WebhookDeliveryAttemptDTO,ProjectWebhookResponseSchema,ProjectWebhooksListResponseSchema,WebhookDeliveriesListResponseSchema,WebhookDeliveryAttemptsListResponseSchema,init_webhook_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/webhook.dto.js"(){"use strict";init_common();init_env();init_environment();init_create_dto();init_response();init_env_status_dto();init_project_domain_dto();WEBHOOK_EVENT_TYPES=["entry.changed","form.submitted","publish.started","publish.succeeded","publish.failed","publish.unpublished","analytics.report_ready","media.uploaded","media.updated","media.deleted","domain.created","domain.deleted","label.changed","locale.created","locale.default_changed","locale.deleted","environment.created","environment.deleted","environment.merged","branch.restored"],WebhookEventTypeSchema=z94.enum(WEBHOOK_EVENT_TYPES),WebhookEntryChangeActionSchema=z94.enum(["created","updated","deleted"]),WebhookEntryChangeReasonSchema=z94.enum(["entry_write","bulk_edit","environment_merge"]),WebhookEnvironmentScopeSchema=z94.enum(["main","all"]),WebhookEnvironmentSelectorSchema=z94.union([WebhookEnvironmentScopeSchema,EnvironmentKeySchema]),EntryChangedWebhookEventDataSchema=z94.object({reason:WebhookEntryChangeReasonSchema,operationId:z94.string().optional(),batch:z94.object({index:z94.number().int().positive(),total:z94.number().int().positive()}).optional(),changes:z94.array(z94.object({action:WebhookEntryChangeActionSchema,contentType:z94.string(),id:z94.string(),documentId:z94.string(),locale:z94.string().nullable()}))}),FormSubmittedWebhookEventDataSchema=z94.object({form:z94.object({id:z94.string(),label:z94.string()}),submission:z94.object({id:z94.string(),data:z94.record(z94.string(),z94.unknown()),submittedAt:z94.string()})}),PublishStartedWebhookEventDataSchema=z94.object({publication:z94.object({status:z94.literal("publishing"),startedAt:z94.string()})}),PublishSucceededWebhookEventDataSchema=z94.object({publication:z94.object({status:z94.literal("published"),url:z94.string(),publishedAt:z94.string(),firstPublish:z94.boolean()})}),PublishFailedWebhookEventDataSchema=z94.object({publication:z94.object({status:z94.literal("failed"),reason:z94.string()})}),PublishUnpublishedWebhookEventDataSchema=z94.object({publication:z94.object({previousUrl:z94.string(),unpublishedAt:z94.string()})}),AnalyticsReportReadyWebhookEventDataSchema=z94.object({report:z94.object({weekStart:z94.string(),weekEnd:z94.string(),pageviews:z94.number(),visitors:z94.number(),previousPageviews:z94.number(),previousVisitors:z94.number()})}),MediaAssetWebhookEventDataSchema=z94.object({id:z94.string().nullable(),name:z94.string().nullable(),type:z94.string(),mimeType:z94.string().nullable(),fileSize:z94.number().nullable()}),MediaUploadedWebhookEventDataSchema=z94.object({asset:MediaAssetWebhookEventDataSchema,operation:z94.literal("uploaded")}),MediaUpdatedWebhookEventDataSchema=z94.object({asset:MediaAssetWebhookEventDataSchema,operation:z94.literal("updated")}),MediaDeletedWebhookEventDataSchema=z94.object({asset:MediaAssetWebhookEventDataSchema,operation:z94.literal("deleted")}),DomainCreatedWebhookEventDataSchema=z94.object({domain:z94.object({id:z94.string(),hostname:z94.string(),status:ProjectDomainStatusSchema,sslStatus:SSLStatusSchema})}),DomainDeletedWebhookEventDataSchema=z94.object({domain:z94.object({id:z94.string(),hostname:z94.string()})}),LabelChangedWebhookEventDataSchema=z94.object({changes:z94.array(z94.object({action:z94.enum(["created","updated","deleted"]),key:z94.string(),locale:z94.string(),value:z94.string().nullable()}))}),LocaleCreatedWebhookEventDataSchema=z94.object({locale:z94.object({code:z94.string(),isDefault:z94.boolean()})}),LocaleDefaultChangedWebhookEventDataSchema=z94.object({locale:z94.object({code:z94.string(),previousCode:z94.string()})}),LocaleDeletedWebhookEventDataSchema=z94.object({locale:z94.object({code:z94.string(),entriesDeleted:z94.number().int().nonnegative(),labelsDeleted:z94.number().int().nonnegative()})}),EnvironmentCreatedWebhookEventDataSchema=z94.object({environment:z94.object({name:BranchSchema,parent:BranchSchema})}),EnvironmentDeletedWebhookEventDataSchema=z94.object({environment:z94.object({name:BranchSchema})}),EnvironmentMergedWebhookEventDataSchema=z94.object({merge:z94.object({id:z94.string(),from:BranchSchema,to:BranchSchema,applied:z94.array(z94.object({surface:SurfaceNameSchema,count:z94.number().int().nonnegative()}))})}),BranchRestoredWebhookEventDataSchema=z94.object({branch:z94.object({name:BranchSchema}),version:z94.object({versionId:z94.uuid(),name:z94.string()})}),WebhookEventFamilySchema=z94.enum(["entries","forms","publish","analytics","media","domains","labels","locales","environments"]),WebhookDestinationKindSchema=z94.enum(["custom","resend","github","slack"]),WebhookHeaderValueInputSchema=z94.discriminatedUnion("source",[z94.object({source:z94.literal("literal"),value:z94.string().min(1).max(4096).regex(/^[^\r\n]*$/)}),z94.object({source:z94.literal("secret"),key:z94.string().regex(/^[A-Z_][A-Z0-9_]*$/),prefix:z94.string().max(128).regex(/^[^\r\n]*$/).optional()})]),WebhookHeaderInputSchema=z94.object({name:z94.string().min(1).max(128),value:WebhookHeaderValueInputSchema}),WebhookHeaderDTOSchema=z94.object({name:z94.string(),source:z94.enum(["literal","secret"]),secretKey:z94.string().nullable(),secretPrefix:z94.string().nullable(),configured:z94.literal(!0)}),WebhookFilterSchema=z94.object({environment:WebhookEnvironmentSelectorSchema.optional(),formId:z94.string().min(1).max(255).optional(),mediaType:z94.enum(["image","video","audio","document","other"]).optional(),action:WebhookEntryChangeActionSchema.optional(),contentType:z94.string().min(1).max(255).optional(),locale:z94.string().min(1).max(120).optional()}),JsonValueSchema=z94.lazy(()=>z94.union([z94.string(),z94.number(),z94.boolean(),z94.null(),z94.array(JsonValueSchema),z94.record(z94.string(),JsonValueSchema)])),CreateProjectWebhookRequestSchema=z94.object({name:z94.string().trim().min(1).max(120),eventType:WebhookEventTypeSchema,url:z94.url(),enabled:z94.boolean().optional().default(!0),filter:WebhookFilterSchema.optional().default({}),headers:z94.array(WebhookHeaderInputSchema).max(20).optional().default([]),bodyTemplate:JsonValueSchema.nullable().optional().default(null),signingEnabled:z94.boolean().optional().default(!0)}),UpdateProjectWebhookRequestSchema=z94.object({name:z94.string().trim().min(1).max(120).optional(),eventType:WebhookEventTypeSchema.optional(),url:z94.url().optional(),enabled:z94.boolean().optional(),filter:WebhookFilterSchema.optional(),headers:z94.array(WebhookHeaderInputSchema).max(20).optional(),bodyTemplate:JsonValueSchema.nullable().optional(),signingEnabled:z94.boolean().optional()}),TestProjectWebhookRequestSchema=z94.object({eventType:WebhookEventTypeSchema.optional(),data:z94.record(z94.string(),JsonValueSchema).optional()}),WebhookDeliveryStatusSchema=z94.enum(["pending","delivering","retrying","succeeded","failed"]),ProjectWebhookDTOSchema=BaseEntitySchema.extend({projectId:z94.uuid(),name:z94.string(),eventType:WebhookEventTypeSchema,enabled:z94.boolean(),destination:z94.object({host:z94.string(),maskedUrl:z94.string(),kind:WebhookDestinationKindSchema}),filter:WebhookFilterSchema,headers:z94.array(WebhookHeaderDTOSchema),bodyTemplate:JsonValueSchema.nullable(),signingEnabled:z94.boolean(),lastDeliveryStatus:WebhookDeliveryStatusSchema.nullable(),lastDeliveryAt:z94.coerce.date().nullable(),deliveryStats24h:z94.object({succeeded:z94.number().int().nonnegative(),failed:z94.number().int().nonnegative()})}),ProjectWebhookDTO=createDTO(ProjectWebhookDTOSchema),WebhookDeliveryDTOSchema=BaseEntitySchema.extend({webhookId:z94.uuid(),projectId:z94.uuid(),env:BranchSchema,environment:EnvironmentKeySchema,branch:BranchSchema,eventId:z94.uuid(),eventType:WebhookEventTypeSchema,eventVersion:z94.number().int().positive(),test:z94.boolean(),status:WebhookDeliveryStatusSchema,attemptCount:z94.number().int().nonnegative(),responseStatus:z94.number().int().nullable(),lastErrorCode:z94.string().nullable(),lastErrorMessage:z94.string().nullable(),payloadAvailable:z94.boolean(),destination:z94.object({host:z94.string(),maskedUrl:z94.string(),kind:WebhookDestinationKindSchema}),requestHeaders:z94.array(WebhookHeaderDTOSchema),requestBodyExcerpt:z94.string().nullable(),qstashMessageId:z94.string().nullable(),deliveredAt:z94.coerce.date().nullable()}),WebhookDeliveryDTO=createDTO(WebhookDeliveryDTOSchema),WebhookDeliveriesPageSchema=z94.object({items:z94.array(WebhookDeliveryDTOSchema),pagination:z94.object({page:z94.number().int().positive(),limit:z94.number().int().positive(),total:z94.number().int().nonnegative(),totalPages:z94.number().int().positive(),hasMore:z94.boolean()}),stats:z94.object({total:z94.number().int().nonnegative(),succeeded:z94.number().int().nonnegative(),failed:z94.number().int().nonnegative()})}),WebhookDeliveryAttemptDTOSchema=z94.object({id:z94.uuid(),deliveryId:z94.uuid(),attempt:z94.number().int().positive(),status:z94.enum(["delivering","succeeded","failed"]),responseStatus:z94.number().int().nullable(),durationMs:z94.number().int().nonnegative(),responseExcerpt:z94.string().nullable(),errorCode:z94.string().nullable(),errorMessage:z94.string().nullable(),createdAt:z94.coerce.date()}),WebhookDeliveryAttemptDTO=createDTO(WebhookDeliveryAttemptDTOSchema),ProjectWebhookResponseSchema=createResponseSchema(ProjectWebhookDTOSchema),ProjectWebhooksListResponseSchema=createResponseSchema(z94.array(ProjectWebhookDTOSchema)),WebhookDeliveriesListResponseSchema=createResponseSchema(WebhookDeliveriesPageSchema),WebhookDeliveryAttemptsListResponseSchema=createResponseSchema(z94.array(WebhookDeliveryAttemptDTOSchema))}});import{z as z95}from"zod";var PreviewFeatureDTOSchema,PreviewFeatureDTO,init_preview_feature_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/preview-feature.dto.js"(){"use strict";init_create_dto();PreviewFeatureDTOSchema=z95.object({key:z95.literal("fimo-2"),enabled:z95.boolean(),dismissed:z95.boolean().default(!1),interacted:z95.boolean().default(!1)}),PreviewFeatureDTO=createDTO(PreviewFeatureDTOSchema)}});import{z as z96}from"zod";var SiteOnboardingStageSchema,SiteScanStatusSchema,SiteCloneStatusSchema,SiteRefusalCodeSchema,SiteRefusalSchema,SiteCheckGroupSchema,SiteScoreSchema,SITE_CHECKS,SiteCheckIdSchema,SiteCheckStatusSchema,SiteCheckEvidenceSchema,SiteCheckResultSchema,SiteReportGroupSchema,SiteRecommendationsSchema,SiteMarketSchema,SitePageViewSchema,SiteSectionStatusSchema,SiteComparisonSchema,SiteReportSchema,SiteTypeSchema,SiteTermsCategorySchema,SiteUnderstandingSchema,SiteSuggestionSchema,SiteInterviewSuggestionsSchema,SiteInterviewAnswerSchema,SiteInterviewSchema,AnswerSiteInterviewRequestSchema,SiteFixesReportSchema,SiteOnboardingResultSchema,StartSiteOnboardingRequestSchema,StartSiteOnboardingResponseSchema,SiteOnboardingRefusedResponseSchema,SiteOnboardingStateSchema,SiteOnboardingStateDTO,SiteOnboardingStateResponseSchema,RetrySiteOnboardingRequestSchema,SiteOnboardingOutcomeSchema,AdminSiteOnboardingsQuerySchema,AdminSiteOnboardingDTOSchema,AdminSiteOnboardingDTO,AdminSiteOnboardingsResponseSchema,AdminSiteOnboardingStatsSchema,AdminSiteOnboardingStatsResponseSchema,AdminSiteOnboardingDetailSchema,AdminSiteOnboardingDetailDTO,AdminSiteOnboardingDetailResponseSchema,init_site_onboarding_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/site-onboarding.dto.js"(){"use strict";init_create_dto();init_response();SiteOnboardingStageSchema=z96.enum(["scanning","interviewing","reporting","open","expired","refused"]),SiteScanStatusSchema=z96.enum(["running","done","failed"]),SiteCloneStatusSchema=z96.enum(["not_started","running","paused","finished","failed"]),SiteRefusalCodeSchema=z96.enum(["invalid","private","not_found","tls","unreachable","redirect","error_page","bot_wall"]),SiteRefusalSchema=z96.object({code:SiteRefusalCodeSchema,suggestedUrl:z96.string().nullable()}),SiteCheckGroupSchema=z96.enum(["discovery","indexing","ai_crawlers","rendering","metadata","content","speed"]),SiteScoreSchema=z96.enum(["seo","geo"]),SITE_CHECKS=[{id:"robots_txt",group:"discovery",scores:["seo","geo"],weight:2},{id:"sitemap",group:"discovery",scores:["seo","geo"],weight:2},{id:"sitemap_lastmod",group:"discovery",scores:["seo","geo"],weight:1},{id:"broken_links",group:"discovery",scores:["seo"],weight:2},{id:"internal_nofollow",group:"discovery",scores:["seo"],weight:1},{id:"blocked_from_crawling",group:"discovery",scores:["seo","geo"],weight:3,cap:{seo:20,geo:20}},{id:"status_4xx",group:"indexing",scores:["seo","geo"],weight:2,cap:{seo:10,geo:10}},{id:"status_5xx",group:"indexing",scores:["seo","geo"],weight:3,cap:{seo:10,geo:10}},{id:"https_to_http",group:"indexing",scores:["seo"],weight:1,cap:{seo:50}},{id:"canonical",group:"indexing",scores:["seo"],weight:1},{id:"noindex",group:"indexing",scores:["seo","geo"],weight:3,cap:{seo:20,geo:20}},{id:"hreflang",group:"indexing",scores:["seo"],weight:1},{id:"missing_page",group:"indexing",scores:["seo","geo"],weight:1,cap:{seo:80,geo:80}},{id:"ai_bots_robots",group:"ai_crawlers",scores:["geo"],weight:3,cap:{geo:30}},{id:"ai_bot_access",group:"ai_crawlers",scores:["geo"],weight:2,cap:{geo:40}},{id:"llms_txt",group:"ai_crawlers",scores:["geo"],weight:1},{id:"server_rendering",group:"rendering",scores:["geo"],weight:3},{id:"semantic_html",group:"rendering",scores:["seo","geo"],weight:2},{id:"markdown_pages",group:"rendering",scores:["geo"],weight:1},{id:"markdown_alternate",group:"rendering",scores:["geo"],weight:.5},{id:"markdown_index",group:"rendering",scores:["geo"],weight:.5},{id:"meta_title",group:"metadata",scores:["seo"],weight:2},{id:"meta_description",group:"metadata",scores:["seo"],weight:2},{id:"structured_data",group:"metadata",scores:["seo","geo"],weight:2},{id:"organization_schema",group:"metadata",scores:["geo"],weight:2},{id:"entity_links",group:"metadata",scores:["geo"],weight:1},{id:"metadata_completeness",group:"metadata",scores:["seo","geo"],weight:2},{id:"trust_pages",group:"metadata",scores:["geo"],weight:2},{id:"word_count",group:"content",scores:["seo","geo"],weight:2},{id:"text_ratio",group:"content",scores:["seo"],weight:1},{id:"h1",group:"content",scores:["seo"],weight:2},{id:"image_alt",group:"content",scores:["seo","geo"],weight:1},{id:"broken_images",group:"content",scores:["seo"],weight:1},{id:"empty_link_text",group:"content",scores:["seo","geo"],weight:1},{id:"page_load",group:"speed",scores:["seo"],weight:3},{id:"unminified_assets",group:"speed",scores:["seo"],weight:1}],SiteCheckIdSchema=z96.enum(SITE_CHECKS.map(check=>check.id)),SiteCheckStatusSchema=z96.enum(["pass","partial","fail","not_scored"]),SiteCheckEvidenceSchema=z96.record(z96.string(),z96.union([z96.string(),z96.number(),z96.boolean(),z96.array(z96.string())])),SiteCheckResultSchema=z96.object({id:SiteCheckIdSchema,status:SiteCheckStatusSchema,evidence:SiteCheckEvidenceSchema}),SiteReportGroupSchema=z96.object({id:SiteCheckGroupSchema,score:z96.number().int().min(0).max(100).nullable()}),SiteRecommendationsSchema=z96.object({answers:z96.number().int().min(0),domains:z96.record(z96.string(),z96.number().int().min(0))}),SiteMarketSchema=z96.object({domain:z96.string(),competitors:z96.array(z96.string()),rankings:z96.array(z96.object({domain:z96.string(),averagePosition:z96.number().min(1).nullable()})),keywords:z96.array(z96.object({keyword:z96.string(),positions:z96.record(z96.string(),z96.number().int().min(1).nullable())})),recommendations:SiteRecommendationsSchema.optional(),names:z96.record(z96.string(),z96.string()).optional(),fetchedAt:z96.coerce.date()}),SitePageViewSchema=z96.object({url:z96.string(),title:z96.string().nullable(),description:z96.string().nullable(),h1:z96.string().nullable(),structuredData:z96.array(z96.string()),wordCount:z96.number().int().min(0),capturedAt:z96.coerce.date()}),SiteSectionStatusSchema=z96.enum(["pending","ready","failed","skipped"]),SiteComparisonSchema=z96.object({before:SitePageViewSchema.optional(),after:SitePageViewSchema.optional(),beforeStatus:SiteSectionStatusSchema.optional(),afterStatus:SiteSectionStatusSchema.optional(),beforeQueuedAt:z96.coerce.date().optional(),afterQueuedAt:z96.coerce.date().optional()}),SiteReportSchema=z96.object({siteUrl:z96.string(),scannedAt:z96.coerce.date(),seoScore:z96.number().int().min(0).max(100).nullable(),geoScore:z96.number().int().min(0).max(100).nullable(),groups:z96.array(SiteReportGroupSchema),checks:z96.array(SiteCheckResultSchema),blockers:z96.array(SiteCheckIdSchema).default([]),market:SiteMarketSchema.optional(),marketStatus:SiteSectionStatusSchema.optional(),marketQueuedAt:z96.coerce.date().optional(),comparison:SiteComparisonSchema.optional()}),SiteTypeSchema=z96.enum(["business","non_profit","portfolio","hobby","personal"]),SiteTermsCategorySchema=z96.enum(["violence","child_harm","harassment","hate","self_harm","adult","deception","scam"]),SiteUnderstandingSchema=z96.object({name:z96.string(),summary:z96.string(),audience:z96.string(),positioning:z96.string(),homepage:z96.string()}),SiteSuggestionSchema=z96.object({label:z96.string(),url:z96.string().nullable()}),SiteInterviewSuggestionsSchema=z96.record(z96.string(),z96.record(z96.string(),z96.array(SiteSuggestionSchema))),SiteInterviewAnswerSchema=z96.record(z96.string().max(50),z96.union([z96.string().trim().max(2e3),z96.array(z96.string().trim().min(1).max(200)).max(10)])),SiteInterviewSchema=z96.object({status:z96.enum(["waiting","drafting","ready","failed"]),siteType:SiteTypeSchema.nullable(),site:SiteUnderstandingSchema.nullable(),suggestions:SiteInterviewSuggestionsSchema,answers:z96.record(z96.string(),SiteInterviewAnswerSchema)}),AnswerSiteInterviewRequestSchema=z96.object({questionId:z96.string().min(1).max(50),answer:SiteInterviewAnswerSchema}),SiteFixesReportSchema=z96.object({fixes:z96.array(z96.object({checkId:SiteCheckIdSchema,status:z96.enum(["fixed","not_fixed","not_applicable"]),note:z96.string().trim().min(1).max(300)})).min(1).max(40)}),SiteOnboardingResultSchema=z96.object({fixes:SiteFixesReportSchema.nullable(),summary:z96.string().nullable()}),StartSiteOnboardingRequestSchema=z96.object({organizationId:z96.string().min(1),url:z96.string().trim().min(1).max(2048),locale:z96.string().trim().min(2).max(16).default("en")}),StartSiteOnboardingResponseSchema=createResponseSchema(z96.object({projectId:z96.string()})),SiteOnboardingRefusedResponseSchema=z96.object({error:z96.literal("site_refused"),refusal:SiteRefusalSchema}),SiteOnboardingStateSchema=z96.object({projectId:z96.string(),siteUrl:z96.string(),stage:SiteOnboardingStageSchema,scanStatus:SiteScanStatusSchema,cloneStatus:SiteCloneStatusSchema,cloneRetryAvailable:z96.boolean(),budgetExhausted:z96.boolean(),sponsored:z96.boolean(),outOfCredits:z96.boolean(),interview:SiteInterviewSchema.nullable(),cloneThreadId:z96.string().nullable(),welcomeThreadId:z96.string().nullable(),competitors:z96.array(z96.string()),report:SiteReportSchema.nullable(),reportExpiresAt:z96.coerce.date(),openedAt:z96.coerce.date().nullable(),bannerDismissed:z96.boolean()}),SiteOnboardingStateDTO=createDTO(SiteOnboardingStateSchema),SiteOnboardingStateResponseSchema=createResponseSchema(SiteOnboardingStateSchema.nullable()),RetrySiteOnboardingRequestSchema=z96.object({task:z96.enum(["interview","scan","clone"])}),SiteOnboardingOutcomeSchema=z96.enum(["finished","rebuilding","paused","failed","scan_failed","scanning","expired","refused","not_started"]),AdminSiteOnboardingsQuerySchema=z96.object({search:z96.string().trim().max(200).optional(),organizationId:z96.string().trim().min(1).max(200).optional(),startDate:z96.coerce.date().optional(),endDate:z96.coerce.date().optional(),outcomes:z96.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z96.array(SiteOnboardingOutcomeSchema).optional()),siteTypes:z96.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z96.array(SiteTypeSchema).optional()),page:z96.coerce.number().int().min(1).default(1),pageSize:z96.coerce.number().int().min(1).max(100).default(25)}),AdminSiteOnboardingDTOSchema=z96.object({projectId:z96.string(),projectName:z96.string(),organizationId:z96.string(),organizationName:z96.string().nullable(),ownerEmail:z96.string().nullable(),ownerName:z96.string().nullable(),siteUrl:z96.string(),stage:SiteOnboardingStageSchema,scanStatus:SiteScanStatusSchema,cloneStatus:SiteCloneStatusSchema,outcome:SiteOnboardingOutcomeSchema,sponsored:z96.boolean(),cloneRetries:z96.number(),siteType:SiteTypeSchema.nullable(),refusalCategory:SiteTermsCategorySchema.nullable(),interviewAnswers:z96.number(),interviewQuestions:z96.number().nullable(),seoScore:z96.number().nullable(),geoScore:z96.number().nullable(),spentUsd:z96.number(),budgetCapUsd:z96.number(),capReached:z96.boolean(),cloneSeconds:z96.number().nullable(),createdAt:z96.coerce.date(),openedAt:z96.coerce.date().nullable()}),AdminSiteOnboardingDTO=createDTO(AdminSiteOnboardingDTOSchema),AdminSiteOnboardingsResponseSchema=createResponseSchema(z96.object({onboardings:z96.array(AdminSiteOnboardingDTOSchema),page:z96.number(),limit:z96.number(),total:z96.number(),totalPages:z96.number()})),AdminSiteOnboardingStatsSchema=z96.object({total:z96.number(),outcomes:z96.record(SiteOnboardingOutcomeSchema,z96.number()),funnel:z96.object({started:z96.number(),confirmed:z96.number(),finished:z96.number(),opened:z96.number()}),bySiteType:z96.array(z96.object({siteType:SiteTypeSchema,total:z96.number(),finished:z96.number(),opened:z96.number()})),granularity:z96.enum(["hour","day"]),series:z96.array(z96.object({at:z96.coerce.date(),outcomes:z96.record(SiteOnboardingOutcomeSchema,z96.number())})),spentUsd:z96.object({total:z96.number(),average:z96.number().nullable()}),sponsored:z96.number(),paidByOrganization:z96.object({usd:z96.number(),credits:z96.number()}),capReached:z96.number(),cloneSeconds:z96.object({median:z96.number().nullable(),average:z96.number().nullable()})}),AdminSiteOnboardingStatsResponseSchema=createResponseSchema(AdminSiteOnboardingStatsSchema),AdminSiteOnboardingDetailSchema=z96.object({onboarding:AdminSiteOnboardingDTOSchema.extend({locale:z96.string(),cloneThreadId:z96.string().nullable(),paidByOrganizationUsd:z96.number()}),interview:SiteInterviewSchema.extend({invocationIds:z96.array(z96.string())}).nullable(),knowledgeWritten:z96.string().nullable(),knowledgeNow:z96.object({content:z96.string(),updatedAt:z96.coerce.date().nullable(),updatedBy:z96.string().nullable()}),report:SiteReportSchema.nullable()}),AdminSiteOnboardingDetailDTO=createDTO(AdminSiteOnboardingDetailSchema),AdminSiteOnboardingDetailResponseSchema=createResponseSchema(AdminSiteOnboardingDetailSchema)}});import{z as z97}from"zod";var SubscriptionStatusSchema,CreditBalanceBreakdownDTOSchema,CreditBalanceBreakdownDTO,SubscriptionPlanDTOSchema,SubscriptionPlanDTO,SubscriptionPaymentMethodDTOSchema,SubscriptionPaymentMethodDTO,SubscriptionPricingDTOSchema,SubscriptionPricingDTO,SubscriptionDetailsDTOSchema,SubscriptionDetailsDTO,CreditAlertDTOSchema,CreditAlertDTO,PlanAllocationDTOSchema,PlanAllocationDTO,LatestCancellationDTOSchema,LatestCancellationDTO,OrganizationSubscriptionDTOSchema,OrganizationSubscriptionDTO,BaseCreditTopupRequestSchema,FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema,CreditTopupRequestDTOSchema,CreditTopupRequestDTO,CreditTopupResponseDTOSchema,CreditTopupResponseDTO,init_subscription_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/subscription.dto.js"(){"use strict";init_common();init_create_dto();init_billing_dto();SubscriptionStatusSchema=z97.enum(["active","cancelled","draft","errored","paused","pending","voided"]),CreditBalanceBreakdownDTOSchema=z97.object({total:z97.number(),base:z97.number(),purchases:z97.number(),awards:z97.number()}),CreditBalanceBreakdownDTO=createDTO(CreditBalanceBreakdownDTOSchema),SubscriptionPlanDTOSchema=z97.object({id:z97.string(),name:z97.string()}),SubscriptionPlanDTO=createDTO(SubscriptionPlanDTOSchema),SubscriptionPaymentMethodDTOSchema=z97.object({type:z97.string(),brand:z97.string().nullable(),last4:z97.string().nullable(),expirationDate:z97.string().nullable()}),SubscriptionPaymentMethodDTO=createDTO(SubscriptionPaymentMethodDTOSchema),SubscriptionPricingDTOSchema=z97.object({currency:z97.string(),nextPaymentAmount:z97.number().nullable(),nextPaymentAt:z97.string().nullable(),billingInterval:z97.string().nullable(),totalAmount:z97.number().nullable(),discountAmount:z97.number().nullable()}),SubscriptionPricingDTO=createDTO(SubscriptionPricingDTOSchema),SubscriptionDetailsDTOSchema=z97.object({id:z97.string(),status:SubscriptionStatusSchema,plan:SubscriptionPlanDTOSchema.nullable(),currentPeriodStartedAt:z97.string().nullable(),currentPeriodEndsAt:z97.string().nullable(),renewsAt:z97.string().nullable(),cancelAt:z97.string().nullable(),renewAutomatically:z97.boolean(),pricing:SubscriptionPricingDTOSchema.nullable(),paymentMethod:SubscriptionPaymentMethodDTOSchema.nullable()}),SubscriptionDetailsDTO=createDTO(SubscriptionDetailsDTOSchema),CreditAlertDTOSchema=z97.object({type:z97.enum(["low_balance","critical_balance","approaching_limit"]),message:z97.string(),estimatedPromptsRemaining:z97.number().nullable(),avgCostPerPrompt:z97.number().nullable()}),CreditAlertDTO=createDTO(CreditAlertDTOSchema),PlanAllocationDTOSchema=z97.object({monthlyCredits:z97.number().nullable(),usedThisPeriod:z97.number(),remainingThisPeriod:z97.number()}),PlanAllocationDTO=createDTO(PlanAllocationDTOSchema),LatestCancellationDTOSchema=z97.object({organizationId:z97.string(),planCode:TemplateCodeSchema,reason:CancellationReasonCodeSchema,details:z97.string().nullable(),tenureDays:z97.number().int().nonnegative(),capturedAt:z97.string()}),LatestCancellationDTO=createDTO(LatestCancellationDTOSchema),OrganizationSubscriptionDTOSchema=z97.object({hasSubscription:z97.boolean(),subscription:SubscriptionDetailsDTOSchema.nullable(),credits:CreditBalanceBreakdownDTOSchema,planAllocation:PlanAllocationDTOSchema.nullable(),lowBalanceThreshold:z97.number().nullable(),alerts:z97.array(CreditAlertDTOSchema),portalUrl:z97.string().nullable(),latestCancellation:LatestCancellationDTOSchema.nullable()}),OrganizationSubscriptionDTO=createDTO(OrganizationSubscriptionDTOSchema),BaseCreditTopupRequestSchema=z97.object({creditCount:z97.number().int().positive(),expiresAt:z97.string().datetime().nullable().optional(),message:z97.string().nullable().optional()}),FreeCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z97.literal("free"),amountCents:z97.number().int().positive().nullable().optional()}),PurchaseCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z97.literal("purchase"),amountCents:z97.number().int().positive()}),CreditTopupRequestDTOSchema=z97.discriminatedUnion("type",[FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema]),CreditTopupRequestDTO=createDTO(CreditTopupRequestDTOSchema),CreditTopupResponseDTOSchema=z97.object({success:z97.boolean(),transactionId:z97.string().nullable(),newBalance:z97.number(),creditCount:z97.number(),type:z97.enum(["free","purchase"]),invoiceId:z97.string().nullable()}),CreditTopupResponseDTO=createDTO(CreditTopupResponseDTOSchema)}});import{z as z98}from"zod";var UsageSummaryDTOSchema,UsageSummaryDTO,UsageByProjectDTOSchema,UsageByProjectDTO,UsageByUserDTOSchema,UsageByUserDTO,UsageTimelineItemDTOSchema,UsageTimelineItemDTO,UsageByUserForProjectDTOSchema,UsageByUserForProjectDTO,ProjectUsageDetailDTOSchema,ProjectUsageDetailDTO,OrganizationUsageDTOSchema,OrganizationUsageDTO,init_usage_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/usage.dto.js"(){"use strict";init_create_dto();UsageSummaryDTOSchema=z98.object({totalCredits:z98.number(),totalCostUsd:z98.number(),totalMessages:z98.number(),avgCostPerMessage:z98.number(),periodStart:z98.string().nullable(),periodEnd:z98.string().nullable()}),UsageSummaryDTO=createDTO(UsageSummaryDTOSchema),UsageByProjectDTOSchema=z98.object({projectId:z98.string(),projectName:z98.string(),projectDisplayName:z98.string().nullable(),credits:z98.number(),costUsd:z98.number(),messages:z98.number(),percentage:z98.number()}),UsageByProjectDTO=createDTO(UsageByProjectDTOSchema),UsageByUserDTOSchema=z98.object({userId:z98.string(),userName:z98.string().nullable(),userEmail:z98.string().email().nullable(),credits:z98.number(),costUsd:z98.number(),messages:z98.number(),percentage:z98.number()}),UsageByUserDTO=createDTO(UsageByUserDTOSchema),UsageTimelineItemDTOSchema=z98.object({date:z98.string(),credits:z98.number(),costUsd:z98.number(),messages:z98.number()}),UsageTimelineItemDTO=createDTO(UsageTimelineItemDTOSchema),UsageByUserForProjectDTOSchema=z98.object({userId:z98.string(),userName:z98.string().nullable(),userEmail:z98.string().email().nullable(),credits:z98.number(),costUsd:z98.number(),messages:z98.number(),percentage:z98.number()}),UsageByUserForProjectDTO=createDTO(UsageByUserForProjectDTOSchema),ProjectUsageDetailDTOSchema=z98.object({projectId:z98.string(),projectName:z98.string(),projectDisplayName:z98.string().nullable(),summary:UsageSummaryDTOSchema,byUser:z98.array(UsageByUserForProjectDTOSchema),timeline:z98.array(UsageTimelineItemDTOSchema)}),ProjectUsageDetailDTO=createDTO(ProjectUsageDetailDTOSchema),OrganizationUsageDTOSchema=z98.object({summary:UsageSummaryDTOSchema,byProject:z98.array(UsageByProjectDTOSchema),byUser:z98.array(UsageByUserDTOSchema),timeline:z98.array(UsageTimelineItemDTOSchema)}),OrganizationUsageDTO=createDTO(OrganizationUsageDTOSchema)}});import{z as z99}from"zod";var TimeRangePresetSchema,SortOrderSchema,UsageAnalyticsQuerySchema,UsageOverviewSummaryDTOSchema,UsageOverviewSummaryDTO,UsageTimelinePointDTOSchema,UsageTimelinePointDTO,OrganizationUsageRowDTOSchema,OrganizationUsageRowDTO,UserUsageRowDTOSchema,UserUsageRowDTO,ProjectUsageRowDTOSchema,ProjectUsageRowDTO,UsageDistributionItemDTOSchema,UsageDistributionItemDTO,UsageHeatmapPointDTOSchema,UsageHeatmapPointDTO,UsageOverviewResponseDTOSchema,UsageOverviewResponseDTO,UsagePaginationDTOSchema,UsagePaginationDTO,UsageByOrganizationResponseDTOSchema,UsageByOrganizationResponseDTO,ExtendedUserUsageRowDTOSchema,ExtendedUserUsageRowDTO,UsageByUserResponseDTOSchema,UsageByUserResponseDTO,ExtendedProjectUsageRowDTOSchema,ExtendedProjectUsageRowDTO,UsageByProjectResponseDTOSchema,UsageByProjectResponseDTO,ExportFormatSchema,UsageExportQuerySchema,PeekUsageMetricsDTOSchema,PeekUsageMetricsDTO,OrganizationPeekDTOSchema,OrganizationPeekDTO,UserPeekDTOSchema,UserPeekDTO,ProjectPeekDTOSchema,ProjectPeekDTO,init_usage_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/usage-analytics.dto.js"(){"use strict";init_create_dto();TimeRangePresetSchema=z99.enum(["today","1d","7d","14d","30d","60d","90d"]),SortOrderSchema=z99.enum(["asc","desc"]),UsageAnalyticsQuerySchema=z99.object({startDate:z99.string().optional(),endDate:z99.string().optional(),preset:TimeRangePresetSchema.optional().default("30d"),page:z99.coerce.number().int().positive().default(1),limit:z99.coerce.number().int().positive().max(100).default(20),sortBy:z99.string().optional(),sortOrder:SortOrderSchema.optional().default("desc"),search:z99.string().optional(),activeOnly:z99.stringbool().optional().default(!0)}),UsageOverviewSummaryDTOSchema=z99.object({totalCredits:z99.number(),totalCostUsd:z99.number(),totalMessages:z99.number(),automatedMessages:z99.number(),avgCostPerMessage:z99.number(),avgCreditsPerMessage:z99.number(),periodStart:z99.string(),periodEnd:z99.string(),creditsChange:z99.number().nullable(),costChange:z99.number().nullable(),messagesChange:z99.number().nullable(),unattributedCredits:z99.number(),unattributedCostUsd:z99.number(),unattributedMessages:z99.number()}),UsageOverviewSummaryDTO=createDTO(UsageOverviewSummaryDTOSchema),UsageTimelinePointDTOSchema=z99.object({date:z99.string(),credits:z99.number(),costUsd:z99.number(),messages:z99.number()}),UsageTimelinePointDTO=createDTO(UsageTimelinePointDTOSchema),OrganizationUsageRowDTOSchema=z99.object({organizationId:z99.string(),organizationName:z99.string(),credits:z99.number(),costUsd:z99.number(),messages:z99.number(),percentage:z99.number(),userCount:z99.number(),projectCount:z99.number()}),OrganizationUsageRowDTO=createDTO(OrganizationUsageRowDTOSchema),UserUsageRowDTOSchema=z99.object({userId:z99.string(),userName:z99.string().nullable(),userEmail:z99.string().nullable(),userImage:z99.string().nullable(),organizationId:z99.string().nullable(),organizationName:z99.string().nullable(),credits:z99.number(),costUsd:z99.number(),messages:z99.number(),percentage:z99.number(),projectCount:z99.number()}),UserUsageRowDTO=createDTO(UserUsageRowDTOSchema),ProjectUsageRowDTOSchema=z99.object({projectId:z99.string(),projectName:z99.string(),projectDisplayName:z99.string().nullable(),organizationId:z99.string(),organizationName:z99.string(),credits:z99.number(),costUsd:z99.number(),messages:z99.number(),percentage:z99.number(),userCount:z99.number()}),ProjectUsageRowDTO=createDTO(ProjectUsageRowDTOSchema),UsageDistributionItemDTOSchema=z99.object({id:z99.string(),name:z99.string(),value:z99.number(),percentage:z99.number()}),UsageDistributionItemDTO=createDTO(UsageDistributionItemDTOSchema),UsageHeatmapPointDTOSchema=z99.object({day:z99.number(),hour:z99.number(),value:z99.number()}),UsageHeatmapPointDTO=createDTO(UsageHeatmapPointDTOSchema),UsageOverviewResponseDTOSchema=z99.object({summary:UsageOverviewSummaryDTOSchema,timeline:z99.array(UsageTimelinePointDTOSchema),topOrganizations:z99.array(OrganizationUsageRowDTOSchema),topUsers:z99.array(UserUsageRowDTOSchema),topProjects:z99.array(ProjectUsageRowDTOSchema),creditDistribution:z99.array(UsageDistributionItemDTOSchema),userDistribution:z99.array(UsageDistributionItemDTOSchema),heatmap:z99.array(UsageHeatmapPointDTOSchema)}),UsageOverviewResponseDTO=createDTO(UsageOverviewResponseDTOSchema),UsagePaginationDTOSchema=z99.object({page:z99.number(),limit:z99.number(),totalItems:z99.number(),totalPages:z99.number(),hasMore:z99.boolean()}),UsagePaginationDTO=createDTO(UsagePaginationDTOSchema),UsageByOrganizationResponseDTOSchema=z99.object({organizations:z99.array(OrganizationUsageRowDTOSchema),top:z99.array(OrganizationUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByOrganizationResponseDTO=createDTO(UsageByOrganizationResponseDTOSchema),ExtendedUserUsageRowDTOSchema=UserUsageRowDTOSchema.extend({organizationCount:z99.number()}),ExtendedUserUsageRowDTO=createDTO(ExtendedUserUsageRowDTOSchema),UsageByUserResponseDTOSchema=z99.object({users:z99.array(ExtendedUserUsageRowDTOSchema),top:z99.array(ExtendedUserUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByUserResponseDTO=createDTO(UsageByUserResponseDTOSchema),ExtendedProjectUsageRowDTOSchema=ProjectUsageRowDTOSchema.extend({ownerId:z99.string(),ownerName:z99.string().nullable(),ownerEmail:z99.string().nullable()}),ExtendedProjectUsageRowDTO=createDTO(ExtendedProjectUsageRowDTOSchema),UsageByProjectResponseDTOSchema=z99.object({projects:z99.array(ExtendedProjectUsageRowDTOSchema),top:z99.array(ExtendedProjectUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByProjectResponseDTO=createDTO(UsageByProjectResponseDTOSchema),ExportFormatSchema=z99.enum(["csv","json"]),UsageExportQuerySchema=UsageAnalyticsQuerySchema.extend({format:ExportFormatSchema.default("csv"),type:z99.enum(["overview","organizations","users","projects"]).default("overview")}),PeekUsageMetricsDTOSchema=z99.object({credits:z99.number(),costUsd:z99.number(),messages:z99.number()}),PeekUsageMetricsDTO=createDTO(PeekUsageMetricsDTOSchema),OrganizationPeekDTOSchema=z99.object({id:z99.string(),name:z99.string(),createdAt:z99.string(),memberCount:z99.number(),projectCount:z99.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z99.array(UsageTimelinePointDTOSchema)}),OrganizationPeekDTO=createDTO(OrganizationPeekDTOSchema),UserPeekDTOSchema=z99.object({id:z99.string(),name:z99.string().nullable(),email:z99.string(),image:z99.string().nullable(),createdAt:z99.string(),organizationCount:z99.number(),projectCount:z99.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z99.array(UsageTimelinePointDTOSchema)}),UserPeekDTO=createDTO(UserPeekDTOSchema),ProjectPeekDTOSchema=z99.object({id:z99.string(),name:z99.string(),displayName:z99.string().nullable(),createdAt:z99.string(),organizationId:z99.string(),organizationName:z99.string(),ownerId:z99.string(),ownerName:z99.string().nullable(),ownerEmail:z99.string().nullable(),usage:PeekUsageMetricsDTOSchema,recentActivity:z99.array(UsageTimelinePointDTOSchema)}),ProjectPeekDTO=createDTO(ProjectPeekDTOSchema)}});import{z as z100}from"zod";var SandboxProcessStatusSchema,PresetSandboxCommandSchema,ExecuteSandboxCommandRequestDTOSchema,ExecuteSandboxCommandRequestDTO,SandboxProcessInfoDTOSchema,SandboxProcessInfoDTO,SandboxProcessInfoResponseSchema,SandboxProcessListDTOSchema,SandboxProcessListDTO,SandboxProcessListResponseSchema,ExecuteSandboxCommandResponseDTOSchema,ExecuteSandboxCommandResponseDTO,PresetCommandResponseDTOSchema,PresetCommandResponseDTO,PresetCommandResponseSchema,init_sandbox_command_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/sandbox-command.dto.js"(){"use strict";init_env();init_create_dto();init_response();SandboxProcessStatusSchema=z100.enum(["running","completed","failed","stopped"]),PresetSandboxCommandSchema=z100.enum(["restart-dev-server","stop-dev-server","install-dependencies","reinstall-dependencies","build","typecheck"]),ExecuteSandboxCommandRequestDTOSchema=z100.object({command:z100.string().min(1).max(1e4),cwd:z100.string().optional(),projectBranch:BranchSchema.optional(),projectEnv:BranchSchema.optional(),env:z100.record(z100.string(),z100.string()).optional(),name:z100.string().optional(),waitForCompletion:z100.boolean().optional().default(!1)}).superRefine((value,ctx)=>{value.projectBranch!==void 0&&value.projectEnv!==void 0&&value.projectBranch!==value.projectEnv&&ctx.addIssue({code:"custom",path:["projectBranch"],message:"`projectBranch` and deprecated `projectEnv` must match when both are supplied"})}),ExecuteSandboxCommandRequestDTO=createDTO(ExecuteSandboxCommandRequestDTOSchema),SandboxProcessInfoDTOSchema=z100.object({identifier:z100.string(),status:SandboxProcessStatusSchema,command:z100.string().optional(),startedAt:z100.string().optional(),exitCode:z100.number().optional()}),SandboxProcessInfoDTO=createDTO(SandboxProcessInfoDTOSchema),SandboxProcessInfoResponseSchema=createResponseSchema(SandboxProcessInfoDTOSchema),SandboxProcessListDTOSchema=z100.object({processes:z100.array(SandboxProcessInfoDTOSchema)}),SandboxProcessListDTO=createDTO(SandboxProcessListDTOSchema),SandboxProcessListResponseSchema=createResponseSchema(SandboxProcessListDTOSchema),ExecuteSandboxCommandResponseDTOSchema=z100.object({processId:z100.string(),status:SandboxProcessStatusSchema}),ExecuteSandboxCommandResponseDTO=createDTO(ExecuteSandboxCommandResponseDTOSchema),PresetCommandResponseDTOSchema=z100.object({success:z100.boolean(),message:z100.string().optional()}),PresetCommandResponseDTO=createDTO(PresetCommandResponseDTOSchema),PresetCommandResponseSchema=createResponseSchema(PresetCommandResponseDTOSchema)}});import{z as z101}from"zod";var ADMIN_UNCLAIMED_STATES,AdminUnclaimedStateSchema,AdminUnclaimedProjectsQuerySchema,AdminUnclaimedProjectDTOSchema,AdminUnclaimedProjectDTO,AdminUnclaimedProjectsResponseSchema,ClaimOutcomesSchema,AdminUnclaimedProjectStatsSchema,AdminUnclaimedProjectStatsResponseSchema,init_unclaimed_projects_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/unclaimed-projects.dto.js"(){"use strict";init_create_dto();init_response();ADMIN_UNCLAIMED_STATES=["waiting","claiming","claimed","overdue","archived"],AdminUnclaimedStateSchema=z101.enum(ADMIN_UNCLAIMED_STATES),AdminUnclaimedProjectsQuerySchema=z101.object({search:z101.string().trim().max(200).optional(),startDate:z101.coerce.date().optional(),endDate:z101.coerce.date().optional(),states:z101.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z101.array(AdminUnclaimedStateSchema).optional()),cliVersions:z101.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z101.array(z101.string().max(64)).optional()),page:z101.coerce.number().int().min(1).default(1),pageSize:z101.coerce.number().int().min(1).max(100).default(25)}),AdminUnclaimedProjectDTOSchema=z101.object({projectId:z101.string(),displayName:z101.string().nullable(),state:AdminUnclaimedStateSchema,cliVersion:z101.string().nullable(),createdAt:z101.coerce.date(),expiresAt:z101.coerce.date(),claimedAt:z101.coerce.date().nullable(),claimedOrganizationId:z101.string().nullable(),claimedOrganizationName:z101.string().nullable(),claimedByEmail:z101.string().nullable(),projectExists:z101.boolean(),previewUrl:z101.string().nullable(),hostingCostUsd:z101.number().nullable()}),AdminUnclaimedProjectDTO=createDTO(AdminUnclaimedProjectDTOSchema),AdminUnclaimedProjectsResponseSchema=createResponseSchema(z101.object({projects:z101.array(AdminUnclaimedProjectDTOSchema),page:z101.number(),limit:z101.number(),total:z101.number(),totalPages:z101.number()})),ClaimOutcomesSchema=z101.object({total:z101.number(),claimed:z101.number(),archived:z101.number(),claimRate:z101.number().nullable(),medianTimeToClaimSeconds:z101.number().nullable()}),AdminUnclaimedProjectStatsSchema=ClaimOutcomesSchema.extend({states:z101.record(AdminUnclaimedStateSchema,z101.number()),averageTimeToClaimSeconds:z101.number().nullable(),byCliVersion:z101.array(ClaimOutcomesSchema.extend({cliVersion:z101.string().nullable()})),granularity:z101.enum(["hour","day"]),series:z101.array(z101.object({at:z101.coerce.date(),states:z101.record(AdminUnclaimedStateSchema,z101.number()),alive:z101.number(),hostingCostUsd:z101.number()})),hostingCostUsd:z101.number(),costPerProjectUsd:z101.number().nullable(),leftovers:z101.object({overdue:z101.number(),claiming:z101.number(),archivedNotDeleted:z101.number()})}),AdminUnclaimedProjectStatsResponseSchema=createResponseSchema(AdminUnclaimedProjectStatsSchema)}});import{z as z102}from"zod";var WorkSessionVisibilitySchema,SessionSetRetentionSchema,init_work_sessions=__esm({"../../packages/api-contracts/dist/esm/work-sessions.js"(){"use strict";WorkSessionVisibilitySchema=z102.enum(["internal","user-visible"]),SessionSetRetentionSchema=z102.object({additionalDays:z102.number().int().min(1).max(30)}).strict()}});import{z as z103}from"zod";var PROJECT_KNOWLEDGE_MAX_CHARACTERS,ProjectKnowledgeContentSchema,ProjectKnowledgeDTOSchema,ProjectKnowledgeUpdateSchema,ProjectKnowledgeResponseSchema,ProjectKnowledgeDraftDTOSchema,ProjectKnowledgeDraftResponseSchema,ProjectKnowledgeDraftStartSchema,init_project_knowledge_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-knowledge.dto.js"(){"use strict";init_response();PROJECT_KNOWLEDGE_MAX_CHARACTERS=1e4,ProjectKnowledgeContentSchema=z103.string().refine(value=>[...value].length<=PROJECT_KNOWLEDGE_MAX_CHARACTERS&&new TextEncoder().encode(value).length<=4e4,"Knowledge must contain at most 10,000 characters and 40 KB of UTF-8 text"),ProjectKnowledgeDTOSchema=z103.object({content:ProjectKnowledgeContentSchema,updatedAt:z103.string().nullable(),updatedBy:z103.string().nullable()}),ProjectKnowledgeUpdateSchema=z103.object({content:ProjectKnowledgeContentSchema}),ProjectKnowledgeResponseSchema=createResponseSchema(ProjectKnowledgeDTOSchema),ProjectKnowledgeDraftDTOSchema=z103.object({id:z103.uuid(),status:z103.enum(["queued","running","ready","failed"]),content:ProjectKnowledgeContentSchema.nullable(),error:z103.string().nullable()}),ProjectKnowledgeDraftResponseSchema=createResponseSchema(ProjectKnowledgeDraftDTOSchema.nullable()),ProjectKnowledgeDraftStartSchema=z103.object({idempotencyKey:z103.uuid()})}});import{z as z104}from"zod";var init_esm=__esm({"../../packages/api-contracts/dist/esm/index.js"(){"use strict";init_create_dto();init_response();init_pagination();init_common();init_attachments();init_asset_reading();init_env();init_environment();init_realtime();init_realtime_room();init_references();init_content_fields();init_audit_log();init_ops();init_args();init_commands();init_references2();init_types();init_chat_block();init_admin_chat_block();init_admin_assistant();init_chat_portrait();init_agent_report();init_fimo_config();init_page_sources();init_project_files();init_project_dto();init_project_env_dto();init_project_environment_dto();init_project_secret_dto();init_project_import_export_dto();init_agent_session_dto();init_agent_proposal_dto();init_agent_question_dto();init_integration_catalog_dto();init_integration_dto();init_schedule_dto();init_schedule_notifications_dto();init_notification_dto();init_notification_preference_catalog_dto();init_env_status_dto();init_env_diff_summary_dto();init_project_analytics_dto();init_project_access_dto();init_project_invite_dto();init_publication_dto();init_hosted_preview_dto();init_sandbox_dto();init_organization_dto();init_billing_dto();init_payment_method_dto();init_user_dto();init_content_dto();init_unique_conflict_dto();init_schema_transition_rejected_dto();init_cms_display_defaults_dto();init_project_migration_dto();init_analytics_dto();init_asset_dto();init_translation_dto();init_document_dto();init_form_dto();init_chat_dto();init_chat_routine_dto();init_chat_task_dto();init_chat_agent_dto();init_upload_dto();init_service_dto();init_search_dto();init_registered_domain_dto();init_project_domain_dto();init_project_subdomain_dto();init_project_transfer_dto();init_unclaimed_project_dto();init_project_locale_dto();init_generation_dto();init_generation_task_dto();init_asset_model_dto();init_tour_dto();init_support_report_dto();init_ops_chat_dto();init_ops_sentry_dto();init_ops_project_files_dto();init_ops_agent_chat_dto();init_webhook_dto();init_preview_feature_dto();init_site_onboarding_dto();init_subscription_dto();init_usage_dto();init_usage_analytics_dto();init_sandbox_command_dto();init_unclaimed_projects_dto();init_work_sessions();init_project_knowledge_dto();init_organization_features_dto();init_admin_monitoring_dto();init_platform();init_monitor();init_agent()}});var require_picocolors=__commonJS({"../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js"(exports2,module2){var p2=process||{},argv=p2.argv||[],env=p2.env||{},isColorSupported=!(env.NO_COLOR||argv.includes("--no-color"))&&(!!env.FORCE_COLOR||argv.includes("--color")||p2.platform==="win32"||(p2.stdout||{}).isTTY&&env.TERM!=="dumb"||!!env.CI),formatter=__name((open2,close,replace=open2)=>input=>{let string=""+input,index=string.indexOf(close,open2.length);return~index?open2+replaceClose(string,close,replace,index)+close:open2+string+close},"formatter"),replaceClose=__name((string,close,replace,index)=>{let result="",cursor=0;do result+=string.substring(cursor,index)+replace,cursor=index+close.length,index=string.indexOf(close,cursor);while(~index);return result+string.substring(cursor)},"replaceClose"),createColors=__name((enabled=isColorSupported)=>{let f=enabled?formatter:()=>String;return{isColorSupported:enabled,reset:f("\x1B[0m","\x1B[0m"),bold:f("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:f("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:f("\x1B[3m","\x1B[23m"),underline:f("\x1B[4m","\x1B[24m"),inverse:f("\x1B[7m","\x1B[27m"),hidden:f("\x1B[8m","\x1B[28m"),strikethrough:f("\x1B[9m","\x1B[29m"),black:f("\x1B[30m","\x1B[39m"),red:f("\x1B[31m","\x1B[39m"),green:f("\x1B[32m","\x1B[39m"),yellow:f("\x1B[33m","\x1B[39m"),blue:f("\x1B[34m","\x1B[39m"),magenta:f("\x1B[35m","\x1B[39m"),cyan:f("\x1B[36m","\x1B[39m"),white:f("\x1B[37m","\x1B[39m"),gray:f("\x1B[90m","\x1B[39m"),bgBlack:f("\x1B[40m","\x1B[49m"),bgRed:f("\x1B[41m","\x1B[49m"),bgGreen:f("\x1B[42m","\x1B[49m"),bgYellow:f("\x1B[43m","\x1B[49m"),bgBlue:f("\x1B[44m","\x1B[49m"),bgMagenta:f("\x1B[45m","\x1B[49m"),bgCyan:f("\x1B[46m","\x1B[49m"),bgWhite:f("\x1B[47m","\x1B[49m"),blackBright:f("\x1B[90m","\x1B[39m"),redBright:f("\x1B[91m","\x1B[39m"),greenBright:f("\x1B[92m","\x1B[39m"),yellowBright:f("\x1B[93m","\x1B[39m"),blueBright:f("\x1B[94m","\x1B[39m"),magentaBright:f("\x1B[95m","\x1B[39m"),cyanBright:f("\x1B[96m","\x1B[39m"),whiteBright:f("\x1B[97m","\x1B[39m"),bgBlackBright:f("\x1B[100m","\x1B[49m"),bgRedBright:f("\x1B[101m","\x1B[49m"),bgGreenBright:f("\x1B[102m","\x1B[49m"),bgYellowBright:f("\x1B[103m","\x1B[49m"),bgBlueBright:f("\x1B[104m","\x1B[49m"),bgMagentaBright:f("\x1B[105m","\x1B[49m"),bgCyanBright:f("\x1B[106m","\x1B[49m"),bgWhiteBright:f("\x1B[107m","\x1B[49m")}},"createColors");module2.exports=createColors();module2.exports.createColors=createColors}});function makePalette(enabled){return enabled?{success:import_picocolors.default.green,warn:import_picocolors.default.yellow,error:import_picocolors.default.red,hint:import_picocolors.default.cyan,dim:import_picocolors.default.dim,accent:import_picocolors.default.bold}:{success:identity,warn:identity,error:identity,hint:identity,dim:identity,accent:identity}}var import_picocolors,identity,init_colors=__esm({"../../packages/cli-kit/dist/colors.js"(){"use strict";import_picocolors=__toESM(require_picocolors(),1),identity=__name(s=>s,"identity");__name(makePalette,"makePalette")}});var SCHEMA_VERSION,init_types2=__esm({"../../packages/cli-kit/dist/types.js"(){"use strict";SCHEMA_VERSION=1}});function makeJsonRenderer(opts){let{stdout,stderr}=opts,pendingWarnings=[];function emit(stream,envelope){let warnings=[...pendingWarnings,...envelope.warnings??[]].filter((warning,index,all)=>all.indexOf(warning)===index);pendingWarnings=[],stream.write(`${JSON.stringify(warnings.length>0?{...envelope,warnings}:envelope)}
6
6
  `)}__name(emit,"emit");function okEnvelope(event){let base={status:"ok",command:event.command,schema_version:1};switch(event.kind){case"message":{let data={headline:event.headline};return event.details&&(data.details=event.details),base.data=data,event.hint&&(base.hint=event.hint),event.warnings&&event.warnings.length>0&&(base.warnings=event.warnings),base}case"table":{let rows=event.rows.map(row2=>{let out={};for(let col of event.columns)out[col.key]=row2[col.key];return event.isActive?.(row2)===!0&&(out.__active=!0),out}),data={...event.jsonData,columns:event.columns.map(c2=>c2.key),rows};return event.headline&&(data.headline=event.headline),base.data=data,event.hint&&(base.hint=event.hint),base}case"kv":{let data={fields:event.fields};return event.headline&&(data.headline=event.headline),base.data=data,event.hint&&(base.hint=event.hint),base}case"script":return base.data={shell:event.shell,script:event.script},base;case"raw":{let field=event.field??"value";return base.data={[field]:event.value},base}case"result":return base.data=event.data,event.hint&&(base.hint=event.hint),event.warnings&&event.warnings.length>0&&(base.warnings=event.warnings),base}}return __name(okEnvelope,"okEnvelope"),{ok(event){emit(stdout,okEnvelope(event))},error(event){emit(stderr,{status:"error",command:event.command,schema_version:1,error:{code:event.code,message:event.message,...event.details?{details:event.details}:{},...event.hint?{hint:event.hint}:{}}})},warn(event){pendingWarnings.push(event.message)},info(event){let env={status:"ok",command:event.command,schema_version:1,data:{...event.jsonData,message:event.message}};event.hint&&(env.hint=event.hint),emit(stdout,env)}}}var init_renderer_json=__esm({"../../packages/cli-kit/dist/renderer-json.js"(){"use strict";__name(makeJsonRenderer,"makeJsonRenderer")}});function stripAnsi(input){return input.replace(OSC_PATTERN,"").replace(CSI_PATTERN,"")}function displayWidth(input){return stripAnsi(input).length}function padToWidth(input,target){let visible=displayWidth(input);return visible>=target?input:input+" ".repeat(target-visible)}var CSI_PATTERN,OSC_PATTERN,init_width=__esm({"../../packages/cli-kit/dist/width.js"(){"use strict";CSI_PATTERN=/\x1B\[[0-9;]*[A-Za-z]/g,OSC_PATTERN=/\x1B\][\s\S]*?(?:\x07|\x1B\\)/g;__name(stripAnsi,"stripAnsi");__name(displayWidth,"displayWidth");__name(padToWidth,"padToWidth")}});function makePrettyRenderer(opts){let{palette:palette2,symbols,context,stdout,stderr}=opts;function write(stream,line){stream.write(`${line}
7
7
  `)}__name(write,"write");function renderMessage(event){if(write(stdout,`${palette2.success(symbols.ok)} ${event.headline}`),event.details&&renderAlignedFields(event.details," "),event.warnings)for(let w3 of event.warnings)write(stdout,` ${palette2.warn(symbols.warn)} ${w3}`);maybeHint(event.hint)}__name(renderMessage,"renderMessage");function renderAlignedFields(fields,indent){let keys=Object.keys(fields),longest=keys.reduce((m,k)=>Math.max(m,k.length),0);for(let k of keys){let value=fields[k];value!=null&&write(stdout,`${indent}${palette2.dim(`${k}:`.padEnd(longest+2))}${formatScalar(value)}`)}}__name(renderAlignedFields,"renderAlignedFields");function renderTable2(event){event.headline&&write(stdout,`${palette2.success(symbols.ok)} ${event.headline}`);let{columns,rows}=event;if(rows.length===0){write(stdout,palette2.dim(" (no rows)")),maybeHint(event.hint);return}let widths=columns.map(c2=>Math.max(displayWidth(c2.label),...rows.map(r=>displayWidth(String(r[c2.key]??""))))),header=columns.map((c2,i)=>padToWidth(c2.label,widths[i])).join(" ");write(stdout,` ${palette2.dim(header)}`);for(let row2 of rows){let active=event.isActive?.(row2)===!0,cells=columns.map((c2,i)=>{let raw=String(row2[c2.key]??""),padded=padToWidth(raw,widths[i]),role=event.cellStyle?.(row2,c2.key);return role?paintCell(padded,role):active?palette2.accent(padded):padded}),marker=active?palette2.success(symbols.active):" ";write(stdout,`${marker} ${cells.join(" ")}`)}maybeHint(event.hint)}__name(renderTable2,"renderTable");function paintCell(cell,role){switch(role){case"success":return palette2.success(cell);case"warn":return palette2.warn(cell);case"error":return palette2.error(cell);case"dim":return palette2.dim(cell);case"accent":return palette2.accent(cell)}}__name(paintCell,"paintCell");function renderKv(event){event.headline&&write(stdout,`${palette2.success(symbols.ok)} ${event.headline}`),renderAlignedFields(event.fields,""),maybeHint(event.hint)}__name(renderKv,"renderKv");function renderScript(event){stdout.write(event.script.endsWith(`
8
8
  `)?event.script:`${event.script}
@@ -43,7 +43,7 @@ Expecting one of '${allowedValues.join("', '")}'`);let helpEvent=`${position}Hel
43
43
  `)}),this}_outputHelpIfRequested(args){let helpOption=this._getHelpOption();helpOption&&args.find(arg=>helpOption.is(arg))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function incrementNodeInspectorPort(args){return args.map(arg=>{if(!arg.startsWith("--inspect"))return arg;let debugOption,debugHost="127.0.0.1",debugPort="9229",match;return(match=arg.match(/^(--inspect(-brk)?)$/))!==null?debugOption=match[1]:(match=arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(debugOption=match[1],/^\d+$/.test(match[3])?debugPort=match[3]:debugHost=match[3]):(match=arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(debugOption=match[1],debugHost=match[3],debugPort=match[4]),debugOption&&debugPort!=="0"?`${debugOption}=${debugHost}:${parseInt(debugPort)+1}`:arg})}__name(incrementNodeInspectorPort,"incrementNodeInspectorPort");function useColor(){if(process8.env.NO_COLOR||process8.env.FORCE_COLOR==="0"||process8.env.FORCE_COLOR==="false")return!1;if(process8.env.FORCE_COLOR||process8.env.CLICOLOR_FORCE!==void 0)return!0}__name(useColor,"useColor");exports2.Command=Command2;exports2.useColor=useColor}});var require_commander=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/index.js"(exports2){var{Argument:Argument2}=require_argument(),{Command:Command2}=require_command(),{CommanderError:CommanderError2,InvalidArgumentError:InvalidArgumentError2}=require_error(),{Help:Help2}=require_help(),{Option:Option2}=require_option();exports2.program=new Command2;exports2.createCommand=name=>new Command2(name);exports2.createOption=(flags,description)=>new Option2(flags,description);exports2.createArgument=(name,description)=>new Argument2(name,description);exports2.Command=Command2;exports2.Option=Option2;exports2.Argument=Argument2;exports2.Help=Help2;exports2.CommanderError=CommanderError2;exports2.InvalidArgumentError=InvalidArgumentError2;exports2.InvalidOptionArgumentError=InvalidArgumentError2}});import{createHash}from"node:crypto";function normalizeApiUrl(input){let trimmed=input.trim();try{let url=new URL(trimmed),pathname=url.pathname.replace(/\/+$/,"");return`${url.protocol}//${url.host}${pathname}`}catch{return trimmed.replace(/\/+$/,"")}}function hashApiUrl(input){return createHash("sha256").update(normalizeApiUrl(input)).digest("hex").slice(0,6)}function safeHostLabel(host){return host.replace(/:/g,"-").replace(/[^a-zA-Z0-9.-]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").toLowerCase()}function credentialsFilename(apiUrl){let normalized=normalizeApiUrl(apiUrl),hostLabel="unknown";try{hostLabel=safeHostLabel(new URL(normalized).host)}catch{}return hostLabel.length===0&&(hostLabel="unknown"),`${hostLabel}-${hashApiUrl(apiUrl)}.json`}var init_credentials_path=__esm({"src/cli/utils/credentials-path.ts"(){__name(normalizeApiUrl,"normalizeApiUrl");__name(hashApiUrl,"hashApiUrl");__name(safeHostLabel,"safeHostLabel");__name(credentialsFilename,"credentialsFilename")}});import fs from"node:fs";import{homedir}from"node:os";import path,{join}from"node:path";import{fileURLToPath}from"node:url";function readReleaseManifest(){try{let raw=fs.readFileSync(RELEASE_FILE,"utf8"),parsed=JSON.parse(raw),manifest={};return typeof parsed.apiUrl=="string"&&parsed.apiUrl.length>0&&(manifest.apiUrl=parsed.apiUrl),typeof parsed.webUrl=="string"&&parsed.webUrl.length>0&&(manifest.webUrl=parsed.webUrl),manifest}catch{return{}}}function loadConfig(){let baked=readReleaseManifest(),apiUrl=process.env.FIMO_API_URL?.trim()||baked.apiUrl||DEFAULT_API_URL,webUrl=process.env.FIMO_WEB_URL?.trim()||baked.webUrl||DEFAULT_WEB_URL,configDir=join(process.env.XDG_CONFIG_HOME||join(homedir(),".config"),"fimo"),credentialsDir=join(configDir,"credentials");return{apiUrl,webUrl,configDir,credentialsDir,credentialsFile:join(credentialsDir,credentialsFilename(apiUrl))}}var DEFAULT_API_URL,DEFAULT_WEB_URL,THIS_FILE,CLI_ROOT,RELEASE_FILE,init_config=__esm({"src/cli/config.ts"(){init_credentials_path();DEFAULT_API_URL="http://localhost:3000",DEFAULT_WEB_URL="http://localhost:5173",THIS_FILE=fileURLToPath(import.meta.url),CLI_ROOT=path.resolve(path.dirname(THIS_FILE),"..",".."),RELEASE_FILE=path.resolve(CLI_ROOT,"release.json");__name(readReleaseManifest,"readReleaseManifest");__name(loadConfig,"loadConfig")}});import fs2 from"node:fs";import path2 from"node:path";function ensureCredentialsDir(cfg){fs2.existsSync(cfg.credentialsDir)||fs2.mkdirSync(cfg.credentialsDir,{recursive:!0})}function readCredentials(cfg=loadConfig()){if(!fs2.existsSync(cfg.credentialsFile))return null;let raw=fs2.readFileSync(cfg.credentialsFile,"utf-8");return JSON.parse(raw)}function writeCredentials(credentials,cfg=loadConfig()){ensureCredentialsDir(cfg);let tmpFile=`${cfg.credentialsFile}.tmp-${process.pid}`;fs2.writeFileSync(tmpFile,JSON.stringify(credentials,null,2)),fs2.renameSync(tmpFile,cfg.credentialsFile)}function clearCredentials(cfg=loadConfig()){fs2.existsSync(cfg.credentialsFile)&&fs2.unlinkSync(cfg.credentialsFile)}function setActiveOrganization(organization,cfg=loadConfig()){let creds=requireCredentials(cfg);writeCredentials({...creds,activeOrganization:organization},cfg)}function recordAuthFailure(cfg=loadConfig()){let creds=readCredentials(cfg);creds&&writeCredentials({...creds,lastFailedAuthAt:new Date().toISOString()},cfg)}function findProjectToken(cfg=loadConfig(),start=process.cwd()){let dir=path2.resolve(start);for(;;){let candidate=path2.join(dir,PROJECT_TOKEN_FILE);if(fs2.existsSync(candidate)){let file=JSON.parse(fs2.readFileSync(candidate,"utf-8"));return normalizeApiUrl(file.apiUrl)===normalizeApiUrl(cfg.apiUrl)?{root:dir,file}:null}let parent=path2.dirname(dir);if(parent===dir)return null;dir=parent}}function writeProjectToken(root,file){let target=path2.join(root,PROJECT_TOKEN_FILE);fs2.mkdirSync(path2.dirname(target),{recursive:!0}),fs2.writeFileSync(target,`${JSON.stringify(file,null,2)}
44
44
  `,{mode:384})}function resolveAuth(cfg=loadConfig()){let bearer=cfg.token||process.env.FIMO_API_TOKEN?.trim();if(bearer)return bearer.startsWith(PROJECT_TOKEN_PREFIX)?{kind:"project",token:bearer,tokenFile:null}:{kind:"bearer",token:bearer};let tokenFile=findProjectToken(cfg);if(tokenFile)return{kind:"project",token:tokenFile.file.token,tokenFile};let credentials=readCredentials(cfg);return credentials?.access_token?{kind:"session",token:credentials.access_token,credentials}:null}function requireAuth(cfg=loadConfig()){let auth=resolveAuth(cfg);if(!auth)throw new NotAuthenticatedError(cfg.apiUrl);return auth}function requireToken(cfg=loadConfig()){return requireAuth(cfg).token}function requireAccountCredentials(cfg=loadConfig()){if(resolveAuth(cfg)?.kind==="project")throw new AccountRequiredError(cfg.apiUrl);return requireCredentials(cfg)}function requireCredentials(cfg=loadConfig()){let creds=readCredentials(cfg);if(!creds?.access_token)throw new NotAuthenticatedError(cfg.apiUrl);return creds}var PROJECT_TOKEN_FILE,NotAuthenticatedError,AccountRequiredError,init_auth=__esm({"src/cli/auth.ts"(){init_esm();init_config();init_credentials_path();PROJECT_TOKEN_FILE=path2.join(".fimo","credentials.local.json"),NotAuthenticatedError=class extends Error{static{__name(this,"NotAuthenticatedError")}apiUrl;constructor(apiUrl,message="You are not signed in to Fimo."){super(message),this.name="NotAuthenticatedError",this.apiUrl=apiUrl}},AccountRequiredError=class extends NotAuthenticatedError{static{__name(this,"AccountRequiredError")}constructor(apiUrl){super(apiUrl,"This command needs a Fimo account, but this directory uses the project token of an unclaimed site."),this.name="AccountRequiredError"}};__name(ensureCredentialsDir,"ensureCredentialsDir");__name(readCredentials,"readCredentials");__name(writeCredentials,"writeCredentials");__name(clearCredentials,"clearCredentials");__name(setActiveOrganization,"setActiveOrganization");__name(recordAuthFailure,"recordAuthFailure");__name(findProjectToken,"findProjectToken");__name(writeProjectToken,"writeProjectToken");__name(resolveAuth,"resolveAuth");__name(requireAuth,"requireAuth");__name(requireToken,"requireToken");__name(requireAccountCredentials,"requireAccountCredentials");__name(requireCredentials,"requireCredentials")}});import{z as z105}from"zod";function createResponseSchema2(dataSchema){return z105.object({data:dataSchema})}function encodeBranchPathSegment2(branch){return encodeURIComponent(branch.replaceAll("/","--"))}function managementProjectPath(projectId2,suffix){return`/management/projects/${encodeURIComponent(projectId2)}${suffix}`}function managementBranchPath(projectId2,branch,suffix){return managementProjectPath(projectId2,`/branches/${encodeBranchPathSegment2(branch)}${suffix}`)}function tenantPath(projectId2,branch,suffix){return`/tenant/${encodeURIComponent(projectId2)}/branches/${encodeBranchPathSegment2(branch)}${suffix}`}function addQuery(path50,query){let params=new URLSearchParams;for(let[key,value]of Object.entries(query))value!=null&&(Array.isArray(value)?value.length>0&&params.set(key,value.join(",")):params.set(key,String(value)));let queryString=params.toString();return queryString?`${path50}?${queryString}`:path50}function withoutUndefined(values){return Object.fromEntries(Object.entries(values).filter(([,value])=>value!==void 0))}function utf8Text(maxBytes,message){return z105.string().refine(value=>new TextEncoder().encode(value).byteLength<=maxBytes,message)}function responseData(body){if(!body||typeof body!="object"||!("data"in body))throw new Error("Expected a Fimo API response envelope.");return body.data}function publicSurface(surface){return surface==="translations"?"labels":surface}function backendSurfaces(surfaces){return surfaces?.map(surface=>surface==="labels"?"translations":surface)}function recordValue(value,message){if(!value||typeof value!="object"||Array.isArray(value))throw new Error(message);return value}function paginationRefinement(input,context){if(input.cursor!=null&&input.offset!==void 0){context.addIssue({code:"custom",message:"Use either cursor or offset, not both.",path:["cursor"]});return}if(input.cursor!=null)try{decodePaginationCursor(input.cursor)}catch(error){context.addIssue({code:"custom",message:error instanceof Error?error.message:"Invalid pagination cursor.",path:["cursor"]})}}function encodePaginationCursor(offset){return btoa(JSON.stringify({v:1,offset})).replaceAll("+","-").replaceAll("/","_").replace(/=+$/,"")}function decodePaginationCursor(cursor){try{if(!/^[A-Za-z0-9_-]+$/.test(cursor))throw new Error("Invalid pagination cursor.");let base64=cursor.replaceAll("-","+").replaceAll("_","/"),value=JSON.parse(atob(base64.padEnd(Math.ceil(base64.length/4)*4,"=")));if(!value||typeof value!="object"||value.v!==1||!Number.isSafeInteger(value.offset)||value.offset<0)throw new Error("Invalid pagination cursor.");return value.offset}catch{throw new Error("Invalid pagination cursor.")}}function paginationOffset(input){return input.cursor==null?input.offset:decodePaginationCursor(input.cursor)}function numberedPaginationRefinement(input,context){input.cursor!=null&&input.page!==void 0&&context.addIssue({code:"custom",message:"Use either cursor or page, not both.",path:["cursor"]})}function paginationPage(input){return input.cursor==null?input.page:Number(input.cursor)}function pageSchema(itemSchema){return z105.object({items:z105.array(itemSchema),nextCursor:z105.string().nullable(),total:z105.number().int().nonnegative().optional()})}function projectOffsetPage(body){let{data,meta}=rawOffsetPageSchema.parse(body);return{items:data,nextCursor:meta.hasMore?encodePaginationCursor(meta.offset+meta.limit):null,total:meta.total}}function projectDetail(schema){return body=>{let projected=schema.safeParse(body);return projected.success?projected.data:schema.parse(responseData(body))}}function requiredBranch(branch){if(!branch)throw new Error("A Branch is required when sessionId is absent.");return branch}function projectFilesPath(projectId2,branch,sessionId,suffix){return sessionId?managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/files${suffix}`):managementBranchPath(projectId2,requiredBranch(branch),`/files${suffix}`)}var uuidSchema,sessionStatusSchema,surfaceNameSchema,branchSurfaceSchema,backendSurfaceSchema,branchNameSchema,PROJECT_FILE_WRITE_LIMIT_BYTES2,PROJECT_FILE_WRITE_MANY_MAX_FILES,PROJECT_FILE_WRITE_MANY_LIMIT_BYTES,sessionEnvelopeSchema,paginationShape,numberedPaginationShape,rawOffsetPageSchema,init_common2=__esm({"../../packages/sdk/dist/operations/common.js"(){"use strict";__name(createResponseSchema2,"createResponseSchema");uuidSchema=z105.uuid(),sessionStatusSchema=z105.enum(["provisioning","ready","closing","merged","discarded","expired","failed"]),surfaceNameSchema=z105.enum(["code","schemas","content","labels","assets","forms"]),branchSurfaceSchema=z105.enum(["code","schemas","content","labels","assets","forms"]),backendSurfaceSchema=z105.enum(["code","schemas","content","translations","assets","forms"]),branchNameSchema=z105.string().trim().min(1).max(255).regex(/^[a-zA-Z0-9._/-]+$/).refine(branch=>!branch.startsWith("-")&&!branch.startsWith(".")&&!branch.includes("//")&&!branch.includes("--")&&!branch.split("/").some(segment=>segment===".."),"Invalid Branch name.");__name(encodeBranchPathSegment2,"encodeBranchPathSegment");__name(managementProjectPath,"managementProjectPath");__name(managementBranchPath,"managementBranchPath");__name(tenantPath,"tenantPath");__name(addQuery,"addQuery");__name(withoutUndefined,"withoutUndefined");PROJECT_FILE_WRITE_LIMIT_BYTES2=256*1024,PROJECT_FILE_WRITE_MANY_MAX_FILES=100,PROJECT_FILE_WRITE_MANY_LIMIT_BYTES=1024*1024;__name(utf8Text,"utf8Text");__name(responseData,"responseData");__name(publicSurface,"publicSurface");__name(backendSurfaces,"backendSurfaces");__name(recordValue,"recordValue");sessionEnvelopeSchema=z105.object({sessionId:uuidSchema,projectId:uuidSchema,status:sessionStatusSchema,name:z105.string().nullable().optional(),goal:z105.string().nullable().optional(),provenance:z105.object({source:z105.enum(["studio","slack","mcp"]),creator:z105.object({kind:z105.enum(["user","slack","agent","oauth","conversation"]),id:z105.string()}),conversationId:z105.string().nullable(),runId:z105.string().nullable()}).nullable().optional(),createdBy:z105.string().optional(),createdAt:z105.iso.datetime().optional(),savedRevision:z105.string().nullable().optional(),targetBranch:z105.object({id:uuidSchema.nullable(),name:branchNameSchema,sha:z105.string().min(1)}),workingBranch:z105.object({id:uuidSchema,name:branchNameSchema}).nullable(),preview:z105.url().nullable(),lastActivityAt:z105.iso.datetime(),expiresAt:z105.iso.datetime().nullable(),retention:z105.enum(["temporary","durable"]).optional(),visibility:z105.enum(["internal","user-visible"]).optional(),onExpire:z105.enum(["discard","keep"]),nextOperations:z105.array(z105.string())}),paginationShape={limit:z105.number().int().min(1).max(100).optional(),cursor:z105.string().min(1).nullable().optional().describe("Opaque nextCursor from the previous page. Omit or use null for the first page."),offset:z105.number().int().min(0).optional()};__name(paginationRefinement,"paginationRefinement");__name(encodePaginationCursor,"encodePaginationCursor");__name(decodePaginationCursor,"decodePaginationCursor");__name(paginationOffset,"paginationOffset");numberedPaginationShape={page:z105.number().int().positive().optional(),cursor:paginationShape.cursor.refine(cursor=>cursor==null||/^[1-9]\d*$/.test(cursor)&&Number.isSafeInteger(Number(cursor)),"Invalid pagination cursor.")};__name(numberedPaginationRefinement,"numberedPaginationRefinement");__name(paginationPage,"paginationPage");__name(pageSchema,"pageSchema");rawOffsetPageSchema=z105.object({data:z105.array(z105.unknown()),meta:z105.object({limit:z105.number().int().positive(),offset:z105.number().int().nonnegative(),total:z105.number().int().nonnegative(),hasMore:z105.boolean()})});__name(projectOffsetPage,"projectOffsetPage");__name(projectDetail,"projectDetail");__name(requiredBranch,"requiredBranch");__name(projectFilesPath,"projectFilesPath")}});import{z as z106}from"zod";var agent,chats,routines,routineRuns,agentsOperations,init_agents=__esm({"../../packages/sdk/dist/operations/agents.js"(){"use strict";init_common2();agent=z106.object({id:uuidSchema,kind:z106.string(),title:z106.string().nullable(),description:z106.string().nullable()}),chats=z106.object({chats:z106.array(agent)}),routines=z106.object({routines:z106.array(z106.object({id:uuidSchema,name:z106.string(),instructions:z106.string(),paused:z106.boolean(),triggers:z106.object({schedule:z106.object({cron:z106.string(),timezone:z106.string()}).nullable(),event:z106.object({text:z106.string()}).nullable()}),nextRunAt:z106.string().nullable(),lastRunAt:z106.string().nullable(),lastOutcome:z106.string().nullable(),outOfAgentHoursUntil:z106.string().nullable()}))}),routineRuns=z106.object({runs:z106.array(z106.object({startedAt:z106.string(),trigger:z106.enum(["schedule","hand","event"]),startedBy:z106.object({kind:z106.enum(["person","agent"]),name:z106.string().nullable()}).nullable(),status:z106.enum(["queued","running","finished","failed","cancelled"]),outcome:z106.string().nullable(),summary:z106.string().nullable(),durationMs:z106.number().nullable()}))}),agentsOperations={"agents.list":{domain:"agents",summary:"Read the project agents.",accessScope:"read",effect:"read",inputSchema:z106.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:chats,buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",context:{branch},path:addQuery("/chat/project/threads",{projectId:projectId2})}),"buildRequest"),projectOutput:__name(body=>({chats:chats.parse(body).chats.filter(chat=>chat.kind==="agent")}),"projectOutput")},"agents.routines":{domain:"agents",summary:"Read an agent\u2019s routine instructions and schedules.",accessScope:"read",effect:"read",inputSchema:z106.object({projectId:uuidSchema,branch:branchNameSchema,threadId:uuidSchema}).strict(),outputSchema:routines,buildRequest:__name(({projectId:projectId2,branch,threadId})=>({method:"GET",context:{branch},path:addQuery(`/chat/project/threads/${threadId}/routines`,{projectId:projectId2})}),"buildRequest")},"agents.routineRuns":{domain:"agents",summary:"Read a routine\u2019s newest runs: when each started, what started it and how it ended.",accessScope:"read",effect:"read",inputSchema:z106.object({projectId:uuidSchema,branch:branchNameSchema,threadId:uuidSchema,routineId:uuidSchema}).strict(),outputSchema:routineRuns,buildRequest:__name(({projectId:projectId2,branch,threadId,routineId})=>({method:"GET",context:{branch},path:addQuery(`/chat/project/threads/${threadId}/routines/${routineId}/runs`,{projectId:projectId2})}),"buildRequest")}}}});import{z as z107}from"zod";function projectAnalyticsTop(body,input){let analytics2=analyticsApiResponseSchema.parse(body).data,field={pages:"topPages",browsers:"topBrowsers",devices:"topDevices",countries:"topCountries",sources:"topSources"}[input.dimension];return analyticsTopOutputSchema.parse({branch:input.branch,dimension:input.dimension,items:input.limit===void 0?analytics2[field]:analytics2[field].slice(0,input.limit)})}function projectAnalyticsAnnotations(body,input){let analytics2=analyticsApiResponseSchema.parse(body).data;return analyticsAnnotationsOutputSchema.parse({branch:input.branch,annotations:analytics2.annotations})}function projectAnalyticsAnnotation(body){return body===void 0?null:analyticsAnnotationResponseSchema.parse(body)}var analyticsReadBranchSchema,analyticsPresetSchema,analyticsGroupBySchema,analyticsDeviceSchema,analyticsRangeShape,analyticsRangeRefinement,analyticsAnnotationSchema,analyticsBreakdownSchema,analyticsPageBreakdownSchema,analyticsPageviewsSchema,analyticsApiResponseSchema,analyticsPageviewsResponseSchema,analyticsDimensionSchema,analyticsTopOutputSchema,analyticsAnnotationsOutputSchema,analyticsAnnotationResponseSchema,analyticsOperations,init_analytics=__esm({"../../packages/sdk/dist/operations/analytics.js"(){"use strict";init_common2();analyticsReadBranchSchema=branchNameSchema.default("prod"),analyticsPresetSchema=z107.enum(["today","yesterday","this_week","this_month","last_7_days","last_30_days","last_90_days","last_week","last_month","last_quarter","last_year","custom"]),analyticsGroupBySchema=z107.enum(["day","week","month","quarter"]),analyticsDeviceSchema=z107.enum(["bot","desktop","mobile","tablet"]),analyticsRangeShape={preset:analyticsPresetSchema.optional(),device:analyticsDeviceSchema.optional(),groupBy:analyticsGroupBySchema.optional(),from:z107.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),to:z107.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),days:z107.union([z107.literal(7),z107.literal(30),z107.literal(90)]).optional()},analyticsRangeRefinement=__name((input,context)=>{input.preset==="custom"&&input.from===void 0&&context.addIssue({code:"custom",message:"from is required for custom preset",path:["from"]}),input.preset==="custom"&&input.to===void 0&&context.addIssue({code:"custom",message:"to is required for custom preset",path:["to"]})},"analyticsRangeRefinement"),analyticsAnnotationSchema=z107.object({date:z107.string(),content:z107.string(),updatedAt:z107.string(),updatedByUserId:z107.string()}),analyticsBreakdownSchema=z107.object({key:z107.string(),visitors:z107.number().int().nonnegative(),pageviews:z107.number().int().nonnegative()}),analyticsPageBreakdownSchema=z107.object({path:z107.string(),pageName:z107.string().nullable().optional(),visitors:z107.number().int().nonnegative(),pageviews:z107.number().int().nonnegative()}),analyticsPageviewsSchema=z107.object({range:z107.object({preset:analyticsPresetSchema,requestedFrom:z107.string(),requestedTo:z107.string(),effectiveFrom:z107.string(),effectiveTo:z107.string(),isRetentionLimited:z107.boolean(),groupBy:analyticsGroupBySchema}),deviceFilter:analyticsDeviceSchema.nullable().default(null),visitors:z107.number().int().nonnegative(),pageviews:z107.number().int().nonnegative(),botPageviews:z107.number().int().nonnegative().default(0),botVisitors:z107.number().int().nonnegative().default(0),bounceRate:z107.number().min(0).max(100),viewsPerVisit:z107.number().nonnegative(),averageVisitDurationSeconds:z107.number().nonnegative(),visitorsSeries:z107.array(z107.object({date:z107.string(),visitors:z107.number().int().nonnegative()})),topPages:z107.array(analyticsPageBreakdownSchema),topBrowsers:z107.array(analyticsBreakdownSchema),topDevices:z107.array(analyticsBreakdownSchema),topBots:z107.array(analyticsBreakdownSchema).default([]),topAiAssistants:z107.array(analyticsBreakdownSchema).default([]),topCountries:z107.array(analyticsBreakdownSchema),topSources:z107.array(analyticsBreakdownSchema),annotations:z107.array(analyticsAnnotationSchema)}),analyticsApiResponseSchema=createResponseSchema2(analyticsPageviewsSchema),analyticsPageviewsResponseSchema=createResponseSchema2(analyticsPageviewsSchema.extend({branch:branchNameSchema})),analyticsDimensionSchema=z107.enum(["pages","browsers","devices","countries","sources"]),analyticsTopOutputSchema=z107.object({branch:branchNameSchema,dimension:analyticsDimensionSchema,items:z107.array(z107.union([analyticsPageBreakdownSchema,analyticsBreakdownSchema]))}),analyticsAnnotationsOutputSchema=z107.object({branch:branchNameSchema,annotations:z107.array(analyticsAnnotationSchema)}),analyticsAnnotationResponseSchema=createResponseSchema2(analyticsAnnotationSchema);__name(projectAnalyticsTop,"projectAnalyticsTop");__name(projectAnalyticsAnnotations,"projectAnalyticsAnnotations");__name(projectAnalyticsAnnotation,"projectAnalyticsAnnotation");analyticsOperations={"analytics.pageviews":{domain:"analytics",summary:"Read published-site pageviews, visitors, range, breakdowns, and annotations. Branch defaults to prod; explicit branches are honored. Preview traffic is not collected; a non-prod zero is not evidence of no published traffic.",accessScope:"read",effect:"read",inputSchema:z107.object({projectId:uuidSchema,branch:analyticsReadBranchSchema,...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsPageviewsResponseSchema,projectOutput:__name((body,input)=>{let response=analyticsApiResponseSchema.parse(body);return{...response,data:{...response.data,branch:input.branch}}},"projectOutput"),buildRequest:__name(({projectId:projectId2,branch,preset,groupBy,from,to,days,device})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,"/analytics"),{preset,groupBy,from,to,days,device})}),"buildRequest")},"analytics.top":{domain:"analytics",summary:"Read a ranked published-site analytics breakdown. Branch defaults to prod; explicit branches are honored. Preview traffic is not collected.",accessScope:"read",effect:"read",inputSchema:z107.object({projectId:uuidSchema,branch:analyticsReadBranchSchema,dimension:analyticsDimensionSchema,limit:z107.number().int().min(1).max(100).optional(),...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsTopOutputSchema,buildRequest:__name(({projectId:projectId2,branch,preset,groupBy,from,to,days,device})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,"/analytics"),{preset,groupBy,from,to,days,device})}),"buildRequest"),projectOutput:projectAnalyticsTop},"analytics.annotationsList":{domain:"analytics",summary:"List analytics annotations in the selected range. Branch defaults to prod; explicit branches are honored. Writes still require their own Branch scope.",accessScope:"read",effect:"read",inputSchema:z107.object({projectId:uuidSchema,branch:analyticsReadBranchSchema,...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsAnnotationsOutputSchema,buildRequest:__name(({projectId:projectId2,branch,preset,groupBy,from,to,days,device})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,"/analytics"),{preset,groupBy,from,to,days,device})}),"buildRequest"),projectOutput:projectAnalyticsAnnotations},"analytics.annotationsSet":{domain:"analytics",summary:"Set an analytics annotation for one site date.",accessScope:"write",effect:"mutation",inputSchema:z107.object({projectId:uuidSchema,branch:branchNameSchema,date:z107.string().regex(/^\d{4}-\d{2}-\d{2}$/),content:z107.string().max(500)}).strict(),outputSchema:z107.union([analyticsAnnotationResponseSchema,z107.null()]),buildRequest:__name(({projectId:projectId2,branch,date,content:content2})=>({method:"PUT",path:managementBranchPath(projectId2,branch,`/analytics/annotations/${encodeURIComponent(date)}`),body:{content:content2}}),"buildRequest"),projectOutput:projectAnalyticsAnnotation},"analytics.annotationsDelete":{domain:"analytics",summary:"Delete an analytics annotation for one site date.",accessScope:"write",effect:"mutation",inputSchema:z107.object({projectId:uuidSchema,branch:branchNameSchema,date:z107.string().regex(/^\d{4}-\d{2}-\d{2}$/)}).strict(),outputSchema:z107.null(),buildRequest:__name(({projectId:projectId2,branch,date})=>({method:"PUT",path:managementBranchPath(projectId2,branch,`/analytics/annotations/${encodeURIComponent(date)}`),body:{content:""}}),"buildRequest"),projectOutput:__name(()=>null,"projectOutput")}}}});import{z as z108}from"zod";var assetPathItemSchema,AssetDTOSchema2,AssetResponseSchema2,AssetReadRequestSchema2,assetDerivedFileSchema,assetReadBaseSchema,AssetReadResultSchema2,GenerateResponseSchema2,assetPageSchema,successMessageResponseSchema,assetGenerationInputSchema,assetUploadInputSchema,assetsOperations,init_assets=__esm({"../../packages/sdk/dist/operations/assets.js"(){"use strict";init_common2();assetPathItemSchema=z108.object({id:z108.string(),name:z108.string()}),AssetDTOSchema2=z108.object({id:z108.string(),name:z108.string(),type:z108.enum(["file","folder"]),originalFileName:z108.string().nullable(),parentId:z108.string().nullable(),mimeType:z108.string().nullable(),fileSize:z108.number().nullable(),url:z108.string().nullable(),storageKey:z108.string().nullable(),slug:z108.string(),tags:z108.array(z108.string()).nullable().optional(),createdAt:z108.string().nullable(),updatedAt:z108.string().nullable(),altText:z108.string().nullable().optional(),caption:z108.string().nullable().optional(),aiCaption:z108.string().nullable().optional(),aiAltText:z108.string().nullable().optional(),aiTags:z108.array(z108.string()).nullable().optional(),aiPrimaryColor:z108.string().nullable().optional(),aiProcessingStatus:z108.string().nullable().optional(),width:z108.number().nullable().optional(),height:z108.number().nullable().optional(),path:z108.array(assetPathItemSchema).optional(),hasChildren:z108.boolean().optional()}),AssetResponseSchema2=createResponseSchema2(AssetDTOSchema2),AssetReadRequestSchema2=z108.object({cursor:z108.string().nullable().optional(),query:z108.string().trim().min(1).max(500).optional()}).strict().refine(input=>input.cursor==null||input.query===void 0,{message:"Use either cursor or query, not both."}),assetDerivedFileSchema=z108.object({url:z108.url(),mediaType:z108.string(),filename:z108.string()}),assetReadBaseSchema=z108.object({assetId:z108.uuid(),filename:z108.string(),mediaType:z108.string(),representation:z108.enum(["text","table","document","archive","image","transcript","video","model"]),content:z108.string(),derivedFiles:z108.array(assetDerivedFileSchema).optional()}),AssetReadResultSchema2=z108.discriminatedUnion("mode",[assetReadBaseSchema.extend({mode:z108.literal("page"),start:z108.number().int().nonnegative(),end:z108.number().int().nonnegative(),total:z108.number().int().nonnegative(),nextCursor:z108.string().nullable(),complete:z108.boolean()}),assetReadBaseSchema.extend({mode:z108.literal("query"),query:z108.string(),source:z108.enum(["original-file","canonical-text","derived-files"]),truncated:z108.boolean()})]),GenerateResponseSchema2=createResponseSchema2(z108.object({jobId:z108.string(),status:z108.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema2.optional(),error:z108.string().nullable().optional(),credits:z108.number().optional(),costUsd:z108.number().optional(),billingMode:z108.enum(["fimo-credits","provider-account"]).optional(),task:z108.enum(["image.generate","image.edit","image.remove-background","image.upscale","video.generate","video.animate","video.replace"]).optional(),quality:z108.enum(["draft","standard","premium"]).optional()})),assetPageSchema=pageSchema(AssetDTOSchema2),successMessageResponseSchema=z108.object({data:z108.object({message:z108.literal("success")})}),assetGenerationInputSchema=z108.object({projectId:uuidSchema,branch:branchNameSchema,task:z108.string().min(1).optional(),model:z108.string().min(1).optional(),options:z108.record(z108.string(),z108.unknown()),name:z108.string().min(1).max(255).optional(),parentId:uuidSchema.nullable().optional(),altText:z108.string().max(2e3).optional(),caption:z108.string().max(2e3).optional()}).strict().superRefine((input,context)=>{!!input.task==!!input.model&&context.addIssue({code:"custom",message:"Provide exactly one of task or model.",path:["task"]})}),assetUploadInputSchema=z108.object({projectId:uuidSchema,sessionId:uuidSchema,url:z108.url().max(4096).refine(url=>url.startsWith("https://")||url.startsWith("http://"),"URL must use HTTP or HTTPS"),filename:z108.string().trim().min(1).max(255).refine(filename=>!filename.includes("/")&&!filename.includes("\\"),"Filename must not contain a path").optional(),name:z108.string().trim().min(1).max(255).optional(),parentId:uuidSchema.nullable().optional(),folderPath:z108.string().max(1024).refine(path50=>path50.split("/").some(segment=>segment.trim()),"Folder path must contain a folder name").refine(path50=>path50.split("/").every(segment=>![".",".."].includes(segment.trim())),"Folder path cannot contain . or .. segments").optional(),altText:z108.string().max(2e3).optional(),caption:z108.string().max(5e3).optional()}).refine(({parentId,folderPath})=>!(parentId&&folderPath),{message:"Use either parentId or folderPath, not both."}),assetsOperations={"assets.list":{domain:"assets",summary:"List media assets and folders on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z108.object({projectId:uuidSchema,branch:branchNameSchema,parentId:uuidSchema.optional(),search:z108.string().max(200).optional(),type:z108.enum(["file","folder"]).optional(),mimePrefix:z108.string().max(50).optional(),sortBy:z108.enum(["name","createdAt","updatedAt","fileSize","type"]).optional(),sortDirection:z108.enum(["asc","desc"]).optional(),includePath:z108.boolean().optional(),excludeHidden:z108.boolean().optional(),...paginationShape}).strict().superRefine(paginationRefinement),outputSchema:assetPageSchema,buildRequest:__name(({projectId:projectId2,branch,parentId,search,type,mimePrefix,sortBy,sortDirection,includePath,excludeHidden,limit,cursor,offset})=>({method:"GET",path:addQuery(tenantPath(projectId2,branch,"/assets"),{parentId,search,type,mimePrefix,sortBy,sortDirection,includePath:includePath||void 0,excludeHidden:excludeHidden||void 0,limit,offset:paginationOffset({cursor,offset})})}),"buildRequest"),projectOutput:projectOffsetPage},"assets.get":{domain:"assets",summary:"Read one media asset or folder from a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z108.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema}).strict(),outputSchema:AssetResponseSchema2,buildRequest:__name(({projectId:projectId2,branch,id})=>({method:"GET",path:tenantPath(projectId2,branch,`/assets/${encodeURIComponent(id)}`)}),"buildRequest")},"assets.read":{domain:"assets",summary:"Read bounded canonical content from one media asset or ask one targeted question.",accessScope:"read",effect:"read",inputSchema:z108.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema,...AssetReadRequestSchema2.shape}).strict().refine(input=>input.cursor==null||input.query===void 0,{message:"Use either cursor or query, not both."}),outputSchema:createResponseSchema2(AssetReadResultSchema2),buildRequest:__name(({projectId:projectId2,branch,id,cursor,query})=>({method:"POST",path:tenantPath(projectId2,branch,`/assets/${encodeURIComponent(id)}/read`),body:{cursor:cursor??void 0,query}}),"buildRequest")},"assets.generate":{domain:"assets",summary:"Generate an image or video asset and save it to the media library.",accessScope:"write",effect:"mutation",inputSchema:assetGenerationInputSchema,outputSchema:GenerateResponseSchema2,buildRequest:__name(({projectId:projectId2,branch,task,model,options,name,parentId,altText,caption})=>({method:"POST",path:tenantPath(projectId2,branch,"/assets/generate"),body:{...task?{task}:{model},options,name,parentId,altText,caption}}),"buildRequest")},"assets.uploadFromUrl":{domain:"assets",summary:"Import a public URL into a media library through an owned work session.",accessScope:"code",effect:"mutation",inputSchema:assetUploadInputSchema,outputSchema:sessionEnvelopeSchema.extend({asset:AssetDTOSchema2}),buildRequest:__name(({projectId:projectId2,sessionId,...upload})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/assets/upload-from-url`),body:withoutUndefined(upload)}),"buildRequest")},"assets.createFolder":{domain:"assets",summary:"Create a media-library folder on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z108.object({projectId:uuidSchema,branch:branchNameSchema,name:z108.string().min(1).max(255),parentId:uuidSchema.nullable().optional()}).strict(),outputSchema:AssetResponseSchema2,buildRequest:__name(({projectId:projectId2,branch,name,parentId})=>({method:"POST",path:tenantPath(projectId2,branch,"/assets/folders"),body:{name,parentId}}),"buildRequest")},"assets.replaceReferences":{domain:"assets",summary:"Replace every Branch reference to one asset with another asset.",accessScope:"write",effect:"mutation",inputSchema:z108.object({projectId:uuidSchema,branch:branchNameSchema,sourceAssetId:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z108.record(z108.string(),z108.unknown()),buildRequest:__name(({projectId:projectId2,branch,sourceAssetId,replacementAssetId})=>({method:"POST",path:tenantPath(projectId2,branch,`/assets/${encodeURIComponent(sourceAssetId)}/replace-references`),body:{replacementAssetId}}),"buildRequest"),projectOutput:__name(body=>z108.object({data:z108.record(z108.string(),z108.unknown())}).parse(body).data,"projectOutput")},"assets.replaceAndRemove":{domain:"assets",summary:"Replace Branch references to an asset and schedule that asset for removal.",accessScope:"write",effect:"mutation",inputSchema:z108.object({projectId:uuidSchema,branch:branchNameSchema,sourceAssetId:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z108.record(z108.string(),z108.unknown()),buildRequest:__name(({projectId:projectId2,branch,sourceAssetId,replacementAssetId})=>({method:"POST",path:tenantPath(projectId2,branch,"/assets/removals"),body:{intent:"replace-and-remove",assetIds:[sourceAssetId],replacementAssetId}}),"buildRequest"),projectOutput:__name(body=>z108.object({data:z108.record(z108.string(),z108.unknown())}).parse(body).data,"projectOutput")},"assets.destroy":{domain:"assets",summary:"Permanently destroy an asset on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z108.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema}).strict(),outputSchema:z108.unknown(),buildRequest:__name(({projectId:projectId2,branch,id})=>({method:"DELETE",path:tenantPath(projectId2,branch,`/assets/${encodeURIComponent(id)}/permanent`)}),"buildRequest"),projectOutput:__name(body=>z108.object({data:z108.unknown()}).parse(body).data,"projectOutput")},"assets.replaceAndDestroy":{domain:"assets",summary:"Replace every Branch reference to an asset, then permanently destroy it.",accessScope:"write",effect:"mutation",inputSchema:z108.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z108.record(z108.string(),z108.unknown()),buildRequest:__name(({projectId:projectId2,branch,id,replacementAssetId})=>({method:"POST",path:tenantPath(projectId2,branch,`/assets/${encodeURIComponent(id)}/replace-and-destroy`),body:{replacementAssetId}}),"buildRequest"),projectOutput:__name(body=>z108.object({data:z108.record(z108.string(),z108.unknown())}).parse(body).data,"projectOutput")},"assets.move":{domain:"assets",summary:"Move a media asset or folder on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z108.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema,parentId:uuidSchema.nullable()}).strict(),outputSchema:AssetResponseSchema2,buildRequest:__name(({projectId:projectId2,branch,id,parentId})=>({method:"POST",path:tenantPath(projectId2,branch,`/assets/${encodeURIComponent(id)}/move`),body:{parentId}}),"buildRequest")},"assets.delete":{domain:"assets",summary:"Delete a media asset or folder from a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z108.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema}).strict(),outputSchema:successMessageResponseSchema,buildRequest:__name(({projectId:projectId2,branch,id})=>({method:"DELETE",path:tenantPath(projectId2,branch,`/assets/${encodeURIComponent(id)}`)}),"buildRequest")}}}});import{z as z109}from"zod";var creditBalanceOutputSchema,billingOperations,init_billing2=__esm({"../../packages/sdk/dist/operations/billing.js"(){"use strict";init_common2();creditBalanceOutputSchema=z109.object({projectId:uuidSchema,organizationId:z109.string(),balance:z109.object({totalAvailable:z109.number(),nearLimit:z109.boolean(),canUseAi:z109.boolean(),buckets:z109.object({dailyFreeAvailable:z109.number(),monthlyAvailable:z109.number(),purchasedAvailable:z109.number(),awardedAvailable:z109.number()})}),allowances:z109.object({dailyCredits:z109.object({periodCap:z109.number(),dailyGrant:z109.number(),usedThisPeriod:z109.number(),remainingThisPeriod:z109.number()}).nullable()})}),billingOperations={"billing.credits":{domain:"billing",summary:"Read the AI credit balance and daily allowance that apply to one project. The daily allowance is a cap, not extra balance.",accessScope:"read",effect:"read",inputSchema:z109.object({projectId:uuidSchema}).strict(),outputSchema:creditBalanceOutputSchema,buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/billing/credits")}),"buildRequest"),projectOutput:__name(body=>creditBalanceOutputSchema.parse(responseData(body)),"projectOutput")}}}});import{z as z110}from"zod";function projectConflict(value){let conflict=backendConflictSchema.parse(value);return conflictSchema.parse({...conflict,surface:publicSurface(conflict.surface)})}function backendResolution(resolution){return{...resolution,surface:backendSurfaces([resolution.surface])?.[0]}}function projectMergeResult(body){let result=z110.object({ok:z110.boolean(),mergeId:uuidSchema,fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),fromEnv:branchNameSchema,toEnv:branchNameSchema,applied:z110.array(z110.object({surface:backendSurfaceSchema,count:z110.number().int().nonnegative()})),conflicts:z110.array(backendConflictSchema).optional(),summary:z110.string().optional()}).parse(responseData(body));return mergeResultSchema.parse({...result,fromBranch:result.fromBranch??result.fromEnv,toBranch:result.toBranch??result.toEnv,applied:result.applied.map(item=>({...item,surface:publicSurface(item.surface)})),conflicts:result.conflicts?.map(projectConflict)})}function projectMergeHydration(body){let value=z110.object({mergeId:uuidSchema,conflicts:z110.array(backendConflictSchema),draftResolutions:z110.array(conflictResolutionSchema.extend({surface:backendSurfaceSchema})),status:z110.string()}).passthrough().parse(responseData(body));return mergeHydrationSchema.parse({...value,conflicts:value.conflicts.map(projectConflict),draftResolutions:value.draftResolutions.map(resolution=>({...resolution,surface:publicSurface(resolution.surface)}))})}function projectCrossSurfaceFinding(finding){return{...finding,source:{...finding.source,surface:publicSurface(finding.source.surface)},target:{...finding.target,surface:publicSurface(finding.target.surface)}}}function projectBranchRecord(body){let record=responseData(body),{env:_env,parentEnv:_parentEnv,...branch}=record;return branchResponseSchema.parse({data:branch})}function projectBranchList(body){if(!body||typeof body!="object"||!Array.isArray(body.data))throw new Error("Expected a Branch list response.");let data=body.data.map(({env:_env,parentEnv:_parentEnv,...branch})=>branch);return z110.object({data:z110.array(branchSchema)}).parse({data})}function projectBranchStatus(body){if(branchStatusOutputSchema.safeParse(body).success)return branchStatusOutputSchema.parse(body);let report2=z110.object({branch:branchNameSchema.optional(),env:branchNameSchema,vs:branchNameSchema,syncState:z110.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:isoTimestampSchema,surfaces:z110.array(backendSurfaceDeltaSchema).max(6),crossSurface:z110.array(backendCrossSurfaceFindingSchema).max(1e3).optional()}).parse(responseData(body));return branchStatusOutputSchema.parse(withoutUndefined({branch:report2.branch??report2.env,against:report2.vs,state:report2.syncState==="in-sync"?"clean":"changed",syncState:report2.syncState,generatedAt:report2.generatedAt,surfaces:report2.surfaces.map(({surface,status,changedCount,conflictCount,items,truncated,error})=>withoutUndefined({surface:publicSurface(surface),status,changedCount,conflictCount,items,truncated,error})),crossSurface:report2.crossSurface?.map(projectCrossSurfaceFinding)}))}function projectBranchDiff(body){if(branchDiffOutputSchema.safeParse(body).success)return branchDiffOutputSchema.parse(body);let report2=z110.object({fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),fromEnv:branchNameSchema,toEnv:branchNameSchema,generatedAt:isoTimestampSchema,fingerprint:z110.string().min(1),surfaces:z110.array(backendSurfaceDeltaSchema).max(6),crossSurface:z110.array(backendCrossSurfaceFindingSchema).max(1e3).optional()}).parse(responseData(body));return branchDiffOutputSchema.parse({branch:report2.fromBranch??report2.fromEnv,against:report2.toBranch??report2.toEnv,generatedAt:report2.generatedAt,fingerprint:report2.fingerprint,surfaces:report2.surfaces.map(({surface,status,changedCount,conflictCount,truncated,items,error})=>({...withoutUndefined({surface:publicSurface(surface),status,changedCount,conflictCount,error}),truncated:truncated??!1,items:(items??[]).map(({origin:_origin,...item})=>item)})),crossSurface:report2.crossSurface?.map(projectCrossSurfaceFinding)})}var branchSchema,branchResponseSchema,branchSurfaceStatusSchema,branchDeltaVerbSchema,isoTimestampSchema,backendCrossSurfaceFindingSchema,crossSurfaceFindingSchema,backendSurfaceDeltaSchema,branchSurfaceSummarySchema,branchStatusOutputSchema,branchDiffItemSchema,branchDiffOutputSchema,codeFileDiffOutputSchema,contentSnapshotSchema,contentEntryDiffOutputSchema,schemaSnapshotSchema,schemaDiffOutputSchema,assetSnapshotSchema,assetDiffOutputSchema,labelDiffOutputSchema,formSnapshotSchema,formDiffOutputSchema,backendConflictSchema,conflictSchema,fieldPickSchema,conflictResolutionSchema,mergeResultSchema,resolvedMergeStrategySchema,mergeAcceptedSchema,mergeStatusSchema,mergeHydrationSchema,codeConflictBlobSchema,codeConflictDetailOutputSchema,branchesOperations,init_branches=__esm({"../../packages/sdk/dist/operations/branches.js"(){"use strict";init_common2();branchSchema=z110.object({id:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,parentBranch:branchNameSchema.nullable().optional(),status:z110.enum(["provisioning","active","deleted"]),kind:z110.enum(["user","agent-session"]),createdAt:z110.string().optional(),updatedAt:z110.string().optional(),createdBy:z110.string().nullable().optional(),deletedAt:z110.string().nullable().optional()}).passthrough(),branchResponseSchema=z110.object({data:branchSchema}),branchSurfaceStatusSchema=z110.enum(["ok","timed_out","failed","unchanged"]),branchDeltaVerbSchema=z110.enum(["added","removed","changed","conflict"]),isoTimestampSchema=z110.iso.datetime(),backendCrossSurfaceFindingSchema=z110.object({id:z110.string(),kind:z110.string(),description:z110.string(),severity:z110.enum(["warning","error"]),source:z110.object({surface:backendSurfaceSchema,key:z110.string()}),target:z110.object({surface:backendSurfaceSchema,key:z110.string()}),actions:z110.array(z110.enum(["restore-target","fix-source","ignore"])).min(1)}),crossSurfaceFindingSchema=backendCrossSurfaceFindingSchema.extend({source:backendCrossSurfaceFindingSchema.shape.source.extend({surface:branchSurfaceSchema}),target:backendCrossSurfaceFindingSchema.shape.target.extend({surface:branchSurfaceSchema})}),backendSurfaceDeltaSchema=z110.object({surface:backendSurfaceSchema,status:branchSurfaceStatusSchema,changedCount:z110.number().int().nonnegative(),conflictCount:z110.number().int().nonnegative(),items:z110.array(z110.object({verb:branchDeltaVerbSchema,key:z110.string(),detail:z110.string().optional(),origin:z110.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z110.record(z110.string(),z110.unknown()).optional()})).max(1e3).optional(),truncated:z110.boolean().optional(),error:z110.string().optional()}),branchSurfaceSummarySchema=z110.object({surface:branchSurfaceSchema,status:branchSurfaceStatusSchema,changedCount:z110.number().int().nonnegative(),conflictCount:z110.number().int().nonnegative(),error:z110.string().optional(),items:z110.array(z110.object({verb:branchDeltaVerbSchema,key:z110.string(),detail:z110.string().optional(),origin:z110.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z110.record(z110.string(),z110.unknown()).optional()})).optional(),truncated:z110.boolean().optional()}),branchStatusOutputSchema=z110.object({branch:branchNameSchema,against:branchNameSchema,state:z110.enum(["clean","changed"]),syncState:z110.enum(["in-sync","ahead","behind","diverged","unknown"]).optional(),generatedAt:isoTimestampSchema,surfaces:z110.array(branchSurfaceSummarySchema).max(6),crossSurface:z110.array(crossSurfaceFindingSchema).max(1e3).optional()}),branchDiffItemSchema=z110.object({verb:branchDeltaVerbSchema,key:z110.string(),detail:z110.string().optional(),meta:z110.record(z110.string(),z110.unknown()).optional()}),branchDiffOutputSchema=branchStatusOutputSchema.omit({state:!0}).extend({fingerprint:z110.string().min(1),surfaces:z110.array(branchSurfaceSummarySchema.extend({truncated:z110.boolean(),items:z110.array(branchDiffItemSchema).max(1e3)})).max(6)}),codeFileDiffOutputSchema=z110.object({path:z110.string(),state:z110.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z110.string(),additions:z110.number().int().nonnegative(),deletions:z110.number().int().nonnegative()}),contentSnapshotSchema=z110.object({id:z110.string(),slug:z110.string(),contentType:z110.string(),data:z110.record(z110.string(),z110.unknown()),updatedAt:isoTimestampSchema}),contentEntryDiffOutputSchema=z110.object({collection:z110.string(),rowId:z110.string(),parent:contentSnapshotSchema.nullable(),child:contentSnapshotSchema.nullable()}),schemaSnapshotSchema=z110.object({name:z110.string(),label:z110.string(),isSingleton:z110.boolean(),fields:z110.record(z110.string(),z110.unknown())}),schemaDiffOutputSchema=z110.object({typeName:z110.string(),parent:schemaSnapshotSchema.nullable(),child:schemaSnapshotSchema.nullable()}),assetSnapshotSchema=z110.object({id:z110.string(),name:z110.string(),type:z110.enum(["file","folder"]),mimeType:z110.string().nullable(),storageKey:z110.string().nullable(),url:z110.string().nullable(),fileSize:z110.number().nullable(),width:z110.number().nullable(),height:z110.number().nullable(),altText:z110.string().nullable(),caption:z110.string().nullable(),createdAt:isoTimestampSchema,updatedAt:isoTimestampSchema}),assetDiffOutputSchema=z110.object({assetId:z110.string(),parent:assetSnapshotSchema.nullable(),child:assetSnapshotSchema.nullable()}),labelDiffOutputSchema=z110.object({locale:z110.string(),key:z110.string(),parent:z110.string().nullable(),child:z110.string().nullable()}),formSnapshotSchema=z110.object({formName:z110.string(),label:z110.string().nullable(),schemaFingerprint:z110.string(),fields:z110.record(z110.string(),z110.unknown())}),formDiffOutputSchema=z110.object({formName:z110.string(),parent:formSnapshotSchema.nullable(),child:formSnapshotSchema.nullable()}),backendConflictSchema=z110.object({surface:backendSurfaceSchema,key:z110.string(),kind:z110.enum(["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"]).optional(),description:z110.string(),parentValue:z110.unknown().optional(),childValue:z110.unknown().optional(),conflictingFields:z110.array(z110.string()).optional(),code:z110.object({path:z110.string(),unresolvable:z110.boolean().optional(),reason:z110.string().optional()}).optional()}),conflictSchema=backendConflictSchema.extend({surface:branchSurfaceSchema}),fieldPickSchema=z110.object({field:z110.string(),choice:z110.enum(["parent","child","pick","ai-pick"]),pickedValue:z110.unknown().optional(),aiSessionId:z110.string().optional()}),conflictResolutionSchema=z110.object({surface:branchSurfaceSchema,key:z110.string(),choice:z110.enum(["parent","child","pick"]),pickedValue:z110.unknown().optional(),fieldPicks:z110.array(fieldPickSchema).optional()}),mergeResultSchema=z110.object({ok:z110.boolean(),mergeId:uuidSchema,fromBranch:branchNameSchema,toBranch:branchNameSchema,applied:z110.array(z110.object({surface:branchSurfaceSchema,count:z110.number().int().nonnegative()})),conflicts:z110.array(conflictSchema).optional(),summary:z110.string().optional()}),resolvedMergeStrategySchema=z110.object({engine:z110.enum(["ff-only","auto","theirs","ours","manual"]),vendor:z110.enum(["ff_only","ff_prefer","merge"]),squash:z110.boolean()}),mergeAcceptedSchema=z110.object({mergeId:uuidSchema,streamUrl:z110.string(),strategy:resolvedMergeStrategySchema,acceptedAt:isoTimestampSchema}),mergeStatusSchema=z110.object({mergeId:uuidSchema,fromBranch:branchNameSchema,toBranch:branchNameSchema,status:z110.enum(["in_progress","complete","failed","rolled_back","conflicts"]),summary:z110.string().nullable(),error:z110.string().nullable()}),mergeHydrationSchema=z110.object({mergeId:uuidSchema,conflicts:z110.array(conflictSchema),draftResolutions:z110.array(conflictResolutionSchema),status:z110.string()}).passthrough();__name(projectConflict,"projectConflict");__name(backendResolution,"backendResolution");__name(projectMergeResult,"projectMergeResult");__name(projectMergeHydration,"projectMergeHydration");codeConflictBlobSchema=z110.object({content:z110.string(),sha:z110.string().nullable().optional()}).passthrough(),codeConflictDetailOutputSchema=z110.object({path:z110.string(),base:codeConflictBlobSchema.nullable(),ours:codeConflictBlobSchema.nullable(),theirs:codeConflictBlobSchema.nullable(),result:codeConflictBlobSchema}).passthrough();__name(projectCrossSurfaceFinding,"projectCrossSurfaceFinding");__name(projectBranchRecord,"projectBranchRecord");__name(projectBranchList,"projectBranchList");__name(projectBranchStatus,"projectBranchStatus");__name(projectBranchDiff,"projectBranchDiff");branchesOperations={"branches.list":{domain:"branches",summary:"List the durable Branches of a site.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,includeDeleted:z110.boolean().optional(),includeAgentBranches:z110.boolean().optional()}).strict(),outputSchema:z110.object({data:z110.array(branchSchema)}),buildRequest:__name(({projectId:projectId2,includeDeleted,includeAgentBranches})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,"/branches"),{includeDeleted:includeDeleted?!0:void 0,includeAgentEnvs:includeAgentBranches?!0:void 0})}),"buildRequest"),projectOutput:projectBranchList},"branches.create":{domain:"branches",summary:"Create a deliberate durable Branch for lasting parallel work.",accessScope:"code",effect:"mutation",inputSchema:z110.object({projectId:uuidSchema,from:branchNameSchema.optional(),name:branchNameSchema}).strict(),outputSchema:branchResponseSchema,buildRequest:__name(({projectId:projectId2,from,name})=>({method:"POST",path:managementProjectPath(projectId2,"/branches"),body:from===void 0?{branch:name}:{branch:name,parentBranch:from}}),"buildRequest"),projectOutput:projectBranchRecord},"branches.get":{domain:"branches",summary:"Read one durable site Branch.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:branchSchema,buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",path:managementBranchPath(projectId2,branch,"")}),"buildRequest"),projectOutput:__name(body=>branchResponseSchema.parse(projectBranchRecord(body)).data,"projectOutput")},"branches.sync":{domain:"branches",summary:"Sync one durable Branch from its parent or another Branch.",accessScope:"code",effect:"mutation",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema.optional()}).strict(),outputSchema:z110.object({branch:branchSchema,conflicts:z110.number().int().nonnegative()}),buildRequest:__name(({projectId:projectId2,branch,from})=>({method:"POST",path:managementBranchPath(projectId2,branch,"/sync"),body:withoutUndefined({from})}),"buildRequest"),projectOutput:__name(body=>{let data=z110.object({branch:branchSchema.optional(),env:branchSchema.optional(),conflicts:z110.number().int().nonnegative()}).parse(responseData(body)),branch=data.branch??data.env;if(!branch)throw new Error("Expected a synced Branch.");return{branch,conflicts:data.conflicts}},"projectOutput")},"branches.delete":{domain:"branches",summary:"Delete one durable site Branch.",accessScope:"code",effect:"mutation",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:z110.unknown(),buildRequest:__name(({projectId:projectId2,branch})=>({method:"DELETE",path:managementBranchPath(projectId2,branch,"")}),"buildRequest")},"branches.status":{domain:"branches",summary:"Summarize bounded differences between two durable Branches.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,against:branchNameSchema.optional(),surfaces:z110.array(branchSurfaceSchema).min(1).max(6).optional()}).strict(),outputSchema:branchStatusOutputSchema,buildRequest:__name(({projectId:projectId2,branch,against,surfaces})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,"/status"),{against,surfaces:backendSurfaces(surfaces)?.join(",")})}),"buildRequest"),projectOutput:projectBranchStatus},"branches.diff":{domain:"branches",summary:"List a bounded index of changes between two durable Branches.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,against:branchNameSchema.optional(),surfaces:z110.array(branchSurfaceSchema).min(1).max(6).optional()}).strict(),outputSchema:branchDiffOutputSchema,buildRequest:__name(({projectId:projectId2,branch,against,surfaces})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,"/diff"),{against,surfaces:backendSurfaces(surfaces)?.join(",")})}),"buildRequest"),projectOutput:projectBranchDiff},"branches.diffCodeFile":{domain:"branches",summary:"Read the unified patch for one changed code file between durable Branches.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,path:z110.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:codeFileDiffOutputSchema,buildRequest:__name(({projectId:projectId2,branch,path:path50,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,"/diff/code/file"),{path:path50,against})}),"buildRequest"),projectOutput:projectDetail(codeFileDiffOutputSchema)},"branches.diffContentEntry":{domain:"branches",summary:"Read both sides of one changed content entry between durable Branches.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,collection:z110.string().min(1),rowId:z110.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:contentEntryDiffOutputSchema,buildRequest:__name(({projectId:projectId2,branch,collection,rowId,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,`/diff/content/${encodeURIComponent(collection)}/${encodeURIComponent(rowId)}`),{against})}),"buildRequest"),projectOutput:projectDetail(contentEntryDiffOutputSchema)},"branches.diffSchema":{domain:"branches",summary:"Read both sides of one changed content schema between durable Branches.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z110.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:schemaDiffOutputSchema,buildRequest:__name(({projectId:projectId2,branch,typeName,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,`/diff/schemas/${encodeURIComponent(typeName)}`),{against})}),"buildRequest"),projectOutput:projectDetail(schemaDiffOutputSchema)},"branches.diffAsset":{domain:"branches",summary:"Read both sides of one changed media asset between durable Branches.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,assetId:z110.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:assetDiffOutputSchema,buildRequest:__name(({projectId:projectId2,branch,assetId,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,`/diff/assets/${encodeURIComponent(assetId)}`),{against})}),"buildRequest"),projectOutput:projectDetail(assetDiffOutputSchema)},"branches.diffLabel":{domain:"branches",summary:"Read both sides of one changed localized label between durable Branches.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,locale:z110.string().min(1),key:z110.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:labelDiffOutputSchema,buildRequest:__name(({projectId:projectId2,branch,locale,key,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,`/diff/translations/${encodeURIComponent(locale)}/${encodeURIComponent(key)}`),{against})}),"buildRequest"),projectOutput:projectDetail(labelDiffOutputSchema)},"branches.diffForm":{domain:"branches",summary:"Read safe form definition fields from both sides of a durable Branch diff.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,formName:z110.string().min(1).max(255),against:branchNameSchema.optional()}).strict(),outputSchema:formDiffOutputSchema,buildRequest:__name(({projectId:projectId2,branch,formName,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,`/diff/forms/${encodeURIComponent(formName)}`),{against})}),"buildRequest"),projectOutput:projectDetail(formDiffOutputSchema)},"branches.merge":{domain:"branches",summary:"Merge one durable Branch into another.",accessScope:"code",effect:"mutation",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,allowDirectMerge:z110.boolean().optional()}).strict(),outputSchema:mergeResultSchema,buildRequest:__name(({projectId:projectId2,branch,from,allowDirectMerge})=>({method:"POST",path:managementBranchPath(projectId2,branch,"/merge"),body:withoutUndefined({from,allowDirectMerge})}),"buildRequest"),projectOutput:projectMergeResult},"branches.resolveMerge":{domain:"branches",summary:"Resume a parked durable Branch merge with operator resolutions and start its successor merge.",accessScope:"code",effect:"mutation",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,mergeId:uuidSchema,resolutions:z110.array(conflictResolutionSchema)}).strict(),outputSchema:mergeAcceptedSchema,buildRequest:__name(({projectId:projectId2,branch,from,mergeId,resolutions})=>({method:"POST",path:managementBranchPath(projectId2,branch,`/merge/${encodeURIComponent(from)}/resolve`),body:{mergeId,resolutions:resolutions.map(backendResolution)}}),"buildRequest"),projectOutput:projectDetail(mergeAcceptedSchema)},"branches.mergeStatus":{domain:"branches",summary:"Read the current status of one durable Branch merge.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,mergeId:uuidSchema}).strict(),outputSchema:mergeStatusSchema,buildRequest:__name(({projectId:projectId2,mergeId})=>({method:"GET",path:managementProjectPath(projectId2,`/merges/${encodeURIComponent(mergeId)}`)}),"buildRequest"),projectOutput:projectDetail(mergeStatusSchema)},"branches.cancelMerge":{domain:"branches",summary:"Cancel a parked durable Branch merge.",accessScope:"code",effect:"mutation",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,mergeId:uuidSchema}).strict(),outputSchema:z110.object({ok:z110.boolean()}),buildRequest:__name(({projectId:projectId2,branch,mergeId})=>({method:"POST",path:managementBranchPath(projectId2,branch,"/merge/cancel"),body:{mergeId}}),"buildRequest"),projectOutput:__name(body=>z110.object({ok:z110.boolean()}).parse(responseData(body)),"projectOutput")},"branches.mergeConflicts":{domain:"branches",summary:"Read conflicts and saved resolutions for a parked durable Branch merge.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema}).strict(),outputSchema:mergeHydrationSchema,buildRequest:__name(({projectId:projectId2,branch,from})=>({method:"GET",path:managementBranchPath(projectId2,branch,`/merge/${encodeURIComponent(from)}/conflicts`)}),"buildRequest"),projectOutput:projectMergeHydration},"branches.saveMergeDraft":{domain:"branches",summary:"Save in-progress resolutions for a parked durable Branch merge.",accessScope:"code",effect:"mutation",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,mergeId:uuidSchema,resolutions:z110.array(conflictResolutionSchema)}).strict(),outputSchema:z110.object({mergeId:uuidSchema,lastEditedAt:z110.string()}),buildRequest:__name(({projectId:projectId2,branch,from,mergeId,resolutions})=>({method:"PUT",path:managementBranchPath(projectId2,branch,`/merge/${encodeURIComponent(from)}/resolve/draft`),body:{mergeId,resolutions:resolutions.map(backendResolution)}}),"buildRequest"),projectOutput:__name(body=>z110.object({mergeId:uuidSchema,lastEditedAt:z110.string()}).parse(responseData(body)),"projectOutput")},"branches.codeConflict":{domain:"branches",summary:"Read three-way code detail for one conflicted merge path.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,path:z110.string().min(1)}).strict(),outputSchema:codeConflictDetailOutputSchema,buildRequest:__name(({projectId:projectId2,branch,from,path:path50})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,`/merge/${encodeURIComponent(from)}/conflict/code`),{path:path50})}),"buildRequest"),projectOutput:projectDetail(codeConflictDetailOutputSchema)}}}});import{z as z111}from"zod";var projectDomainSchema,registeredDomainSchema,domainSearchResultSchema,domainPricingSchema,projectPath,forbidden,domainsOperations,init_domains=__esm({"../../packages/sdk/dist/operations/domains.js"(){"use strict";init_common2();projectDomainSchema=z111.object({id:z111.string(),hostname:z111.string(),status:z111.string(),ssl:z111.record(z111.string(),z111.unknown()),cnameTarget:z111.string(),apexTargets:z111.array(z111.string()),dnsAutoConfigured:z111.boolean(),createdAt:z111.unknown(),provider:z111.enum(["cloudflare","saas_custom_domains"]),domainType:z111.enum(["subdomain","apex"])}).passthrough(),registeredDomainSchema=z111.object({id:uuidSchema,domain:z111.string(),status:z111.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),source:z111.enum(["fimo","external"]),autoRenew:z111.boolean(),paymentStatus:z111.enum(["pending","paid","failed","refunded"]).nullable(),checkoutUrl:z111.string().nullable()}).passthrough(),domainSearchResultSchema=z111.object({domain:z111.string(),available:z111.boolean(),premium:z111.boolean(),price:z111.number().nullable(),renewalPrice:z111.number().nullable(),purchaseType:z111.string().nullable()}).passthrough(),domainPricingSchema=z111.object({domain:z111.string(),price:z111.number().nullable(),renewalPrice:z111.number().nullable(),premium:z111.boolean(),allowedYears:z111.array(z111.number().int().positive())}).passthrough(),projectPath=__name((projectId2,suffix)=>`/management/projects/${encodeURIComponent(projectId2)}${suffix}`,"projectPath"),forbidden={preserveForbidden:!0},domainsOperations={"domains.features":{domain:"domains",summary:"Read domain-purchasing feature availability and the publication domain.",accessScope:"read",effect:"read",inputSchema:z111.object({}).strict(),outputSchema:z111.object({domainPurchaseEnabled:z111.boolean(),publicationDomain:z111.string()}),buildRequest:__name(()=>({method:"GET",path:"/features"}),"buildRequest")},"domains.renameSubdomain":{domain:"domains",summary:"Change the built-in subdomain for a site.",accessScope:"write",effect:"mutation",inputSchema:z111.object({projectId:uuidSchema,slug:z111.string().min(1).max(63)}).strict(),outputSchema:z111.object({subdomain:z111.string(),subdomainUpdatedAt:z111.string()}),buildRequest:__name(({projectId:projectId2,slug})=>({method:"PATCH",path:projectPath(projectId2,"/subdomain"),body:{slug}}),"buildRequest"),projectOutput:responseData},"domains.suggestSubdomains":{domain:"domains",summary:"Suggest available built-in subdomains for a site.",accessScope:"read",effect:"read",inputSchema:z111.object({projectId:uuidSchema,base:z111.string().min(1).max(63).optional(),max:z111.number().int().positive().optional()}).strict(),outputSchema:z111.array(z111.string()),buildRequest:__name(({projectId:projectId2,base,max})=>({method:"GET",path:addQuery(projectPath(projectId2,"/subdomain/suggestions"),{base,max})}),"buildRequest"),projectOutput:__name(body=>z111.object({data:z111.object({suggestions:z111.array(z111.string())})}).parse(body).data.suggestions,"projectOutput")},"domains.list":{domain:"domains",summary:"List custom domains attached to a site.",accessScope:"read",effect:"read",inputSchema:z111.object({projectId:uuidSchema}).strict(),outputSchema:z111.array(projectDomainSchema),buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:projectPath(projectId2,"/domains"),...forbidden}),"buildRequest"),projectOutput:responseData},"domains.add":{domain:"domains",summary:"Attach a custom domain to a site.",accessScope:"write",effect:"mutation",inputSchema:z111.object({projectId:uuidSchema,hostname:z111.string().min(1).max(255),redirectToWww:z111.boolean().optional()}).strict(),outputSchema:projectDomainSchema,buildRequest:__name(({projectId:projectId2,hostname,redirectToWww})=>({method:"POST",path:projectPath(projectId2,"/domains"),body:{hostname,redirectToWww},...forbidden}),"buildRequest"),projectOutput:responseData},"domains.refresh":{domain:"domains",summary:"Refresh custom-domain verification state.",accessScope:"write",effect:"mutation",inputSchema:z111.object({projectId:uuidSchema,domainId:z111.string().min(1)}).strict(),outputSchema:projectDomainSchema,buildRequest:__name(({projectId:projectId2,domainId})=>({method:"POST",path:projectPath(projectId2,`/domains/${encodeURIComponent(domainId)}/refresh`),...forbidden}),"buildRequest"),projectOutput:responseData},"domains.remove":{domain:"domains",summary:"Detach a custom domain from a site.",accessScope:"write",effect:"mutation",inputSchema:z111.object({projectId:uuidSchema,domainId:z111.string().min(1)}).strict(),outputSchema:z111.unknown(),buildRequest:__name(({projectId:projectId2,domainId})=>({method:"DELETE",path:projectPath(projectId2,`/domains/${encodeURIComponent(domainId)}`),...forbidden}),"buildRequest")},"registeredDomains.search":{domain:"domains",summary:"Search domain-registration availability.",accessScope:"read",effect:"read",inputSchema:z111.object({keyword:z111.string().min(1).max(100),tldFilter:z111.array(z111.string().min(1)).optional()}).strict(),outputSchema:z111.array(domainSearchResultSchema),buildRequest:__name(({keyword,tldFilter})=>({method:"POST",path:"/domains/search",body:{keyword,tldFilter},...forbidden}),"buildRequest"),projectOutput:responseData},"registeredDomains.pricing":{domain:"domains",summary:"Read registration pricing for a domain.",accessScope:"read",effect:"read",inputSchema:z111.object({domain:z111.string().min(1).max(255)}).strict(),outputSchema:domainPricingSchema,buildRequest:__name(({domain})=>({method:"GET",path:`/domains/pricing/${encodeURIComponent(domain)}`,...forbidden}),"buildRequest"),projectOutput:responseData},"registeredDomains.list":{domain:"domains",summary:"List domains owned by an organization.",accessScope:"read",effect:"read",inputSchema:z111.object({organizationId:z111.string().min(1)}).strict(),outputSchema:z111.array(registeredDomainSchema),buildRequest:__name(({organizationId})=>({method:"GET",path:`/domains/${encodeURIComponent(organizationId)}`,...forbidden}),"buildRequest"),projectOutput:responseData},"registeredDomains.purchase":{domain:"domains",summary:"Purchase and register a domain for an organization.",accessScope:"write",effect:"mutation",inputSchema:z111.object({organizationId:z111.string().min(1),domain:z111.string().min(1).max(255),years:z111.number().int().min(1).max(10).optional(),autoRenew:z111.boolean().optional()}).strict(),outputSchema:registeredDomainSchema,buildRequest:__name(({organizationId,domain,years,autoRenew})=>({method:"POST",path:`/domains/${encodeURIComponent(organizationId)}/purchase`,body:{domain,years,autoRenew},...forbidden}),"buildRequest"),projectOutput:responseData},"registeredDomains.refreshPayment":{domain:"domains",summary:"Refresh the payment state of a registered-domain purchase.",accessScope:"write",effect:"mutation",inputSchema:z111.object({organizationId:z111.string().min(1),domainId:uuidSchema}).strict(),outputSchema:registeredDomainSchema,buildRequest:__name(({organizationId,domainId})=>({method:"POST",path:`/domains/${encodeURIComponent(organizationId)}/${encodeURIComponent(domainId)}/refresh-payment`,...forbidden}),"buildRequest"),projectOutput:responseData}}}});import{z as z112}from"zod";function projectEntriesPage(body){return projectOffsetPage(PaginatedEntriesDTOSchema2.parse(body))}var EntryDTOSchema2,PaginatedEntriesDTOSchema2,EntryResponseSchema2,MAX_BULK_ENTRIES2,entryWhereScalarSchema2,entryWhereOperatorSchema2,nestedEntryWhereSchema2,EntryWhereSchema2,EntryMutationBodySchema2,BulkCreateEntriesResponseSchema2,BulkUpdateEntriesResponseSchema2,BulkDeleteEntriesResponseSchema2,entriesPageSchema,typeNameSchema,localeSchema,populateSchema,entryDataSchema,entryResponseSchema,entriesOperations,init_entries=__esm({"../../packages/sdk/dist/operations/entries.js"(){"use strict";init_common2();EntryDTOSchema2=z112.object({id:z112.string(),entryId:z112.string(),documentId:z112.string(),slug:z112.string(),locale:z112.string().optional(),createdAt:z112.string(),updatedAt:z112.string(),__fimo:z112.object({contentType:z112.string()})}).passthrough(),PaginatedEntriesDTOSchema2=z112.object({data:z112.array(EntryDTOSchema2),meta:z112.object({limit:z112.number(),offset:z112.number(),total:z112.number(),hasMore:z112.boolean()})}),EntryResponseSchema2=createResponseSchema2(EntryDTOSchema2),MAX_BULK_ENTRIES2=1e3,entryWhereScalarSchema2=z112.union([z112.string(),z112.number(),z112.boolean(),z112.null()]),entryWhereOperatorSchema2=z112.object({$eq:entryWhereScalarSchema2.optional(),$ne:entryWhereScalarSchema2.optional(),$gt:entryWhereScalarSchema2.optional(),$gte:entryWhereScalarSchema2.optional(),$lt:entryWhereScalarSchema2.optional(),$lte:entryWhereScalarSchema2.optional(),$in:z112.array(entryWhereScalarSchema2).optional(),$nin:z112.array(entryWhereScalarSchema2).optional(),$contains:z112.string().optional(),$startsWith:z112.string().optional(),$null:z112.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema2=z112.record(z112.string(),z112.union([entryWhereScalarSchema2,entryWhereOperatorSchema2])),EntryWhereSchema2=z112.record(z112.string(),z112.union([entryWhereScalarSchema2,entryWhereOperatorSchema2,nestedEntryWhereSchema2])),EntryMutationBodySchema2=z112.object({data:z112.record(z112.string(),z112.unknown()),locale:z112.string().min(1).optional(),documentId:z112.uuid().optional()}),BulkCreateEntriesResponseSchema2=z112.object({data:z112.array(EntryDTOSchema2),meta:z112.object({created:z112.number().int().nonnegative()})}),BulkUpdateEntriesResponseSchema2=z112.object({data:z112.array(EntryDTOSchema2),meta:z112.object({updated:z112.number().int().nonnegative(),missing:z112.array(z112.string())})}),BulkDeleteEntriesResponseSchema2=z112.object({data:z112.array(EntryDTOSchema2),meta:z112.object({deleted:z112.number().int().nonnegative(),missing:z112.array(z112.string())})});__name(projectEntriesPage,"projectEntriesPage");entriesPageSchema=pageSchema(EntryDTOSchema2),typeNameSchema=z112.string().min(1).max(255),localeSchema=z112.string().min(1),populateSchema=z112.array(z112.string().min(1)).max(50).optional(),entryDataSchema=EntryMutationBodySchema2.shape.data,entryResponseSchema=EntryResponseSchema2,entriesOperations={"entries.list":{domain:"entries",summary:"List entries for one content type on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,locale:localeSchema.optional(),...paginationShape}).strict().superRefine(paginationRefinement),outputSchema:entriesPageSchema,buildRequest:__name(({projectId:projectId2,branch,typeName,locale,limit,cursor,offset})=>({method:"GET",path:addQuery(tenantPath(projectId2,branch,`/entries/${encodeURIComponent(typeName)}`),{locale,limit,offset:paginationOffset({cursor,offset})})}),"buildRequest"),projectOutput:projectEntriesPage},"entries.get":{domain:"entries",summary:"Read one entry by ID from a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional(),populate:populateSchema,localeFallbacks:z112.boolean().optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId:projectId2,branch,typeName,id,locale,populate,localeFallbacks})=>({method:"GET",path:addQuery(tenantPath(projectId2,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale,populate,localeFallbacks})}),"buildRequest")},"entries.search":{domain:"entries",summary:"Search entries across content types on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,search:z112.string().min(1).optional(),locale:localeSchema.optional(),...paginationShape}).strict().superRefine(paginationRefinement),outputSchema:entriesPageSchema,buildRequest:__name(({projectId:projectId2,branch,search,locale,limit,cursor,offset})=>({method:"GET",path:addQuery(tenantPath(projectId2,branch,"/entries"),{search,locale,limit,offset:paginationOffset({cursor,offset})})}),"buildRequest"),projectOutput:projectEntriesPage},"entries.create":{domain:"entries",summary:"Create one entry of a content type on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z112.string().min(1).max(255),data:entryDataSchema,locale:z112.string().min(1).optional(),documentId:z112.string().min(1).optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId:projectId2,branch,typeName,data,locale,documentId})=>({method:"POST",path:tenantPath(projectId2,branch,`/entries/${encodeURIComponent(typeName)}`),body:{data,locale,documentId}}),"buildRequest")},"entries.update":{domain:"entries",summary:"Update one entry of a content type on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z112.string().min(1).max(255),id:uuidSchema,data:entryDataSchema,locale:z112.string().min(1).optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId:projectId2,branch,typeName,id,data,locale})=>({method:"PUT",path:addQuery(tenantPath(projectId2,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale}),body:{data}}),"buildRequest")},"entries.updateFields":{domain:"entries",summary:"Update entry fields using the direct Branch entry payload.",accessScope:"write",effect:"mutation",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional(),fields:z112.record(z112.string(),z112.unknown())}).strict(),outputSchema:z112.unknown(),buildRequest:__name(({projectId:projectId2,branch,typeName,id,locale,fields})=>({method:"PUT",path:addQuery(tenantPath(projectId2,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale}),body:fields}),"buildRequest"),projectOutput:__name(body=>z112.object({data:z112.unknown()}).parse(body).data,"projectOutput")},"entries.querySql":{domain:"entries",summary:"Run a read-only SQL query against Branch content.",accessScope:"read",effect:"read",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,sql:z112.string().min(1)}).strict(),outputSchema:z112.object({data:z112.array(z112.record(z112.string(),z112.unknown())),meta:z112.object({rowCount:z112.number().int().nonnegative(),truncated:z112.boolean()})}),buildRequest:__name(({projectId:projectId2,branch,sql})=>({method:"POST",path:tenantPath(projectId2,branch,"/entries/query"),body:{sql}}),"buildRequest")},"entries.delete":{domain:"entries",summary:"Delete one entry by ID from a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId:projectId2,branch,typeName,id,locale})=>({method:"DELETE",path:addQuery(tenantPath(projectId2,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale})}),"buildRequest")},"entries.bulkCreate":{domain:"entries",summary:`Create up to ${MAX_BULK_ENTRIES2} entries of one content type on a Fimo Branch.`,accessScope:"write",effect:"mutation",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,entries:z112.array(z112.unknown()).max(MAX_BULK_ENTRIES2)}).strict(),outputSchema:BulkCreateEntriesResponseSchema2,buildRequest:__name(({projectId:projectId2,branch,typeName,entries:entries2})=>({method:"POST",path:tenantPath(projectId2,branch,`/entries/${encodeURIComponent(typeName)}/bulk-create`),body:{entries:entries2}}),"buildRequest")},"entries.bulkUpdate":{domain:"entries",summary:`Update up to ${MAX_BULK_ENTRIES2} entries by IDs, a bounded filter, or per-entry updates.`,accessScope:"write",effect:"mutation",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,selection:z112.union([z112.object({ids:z112.array(uuidSchema).min(1).max(MAX_BULK_ENTRIES2)}),z112.object({where:EntryWhereSchema2}),z112.object({updates:z112.array(z112.object({id:uuidSchema,body:EntryMutationBodySchema2})).min(1).max(MAX_BULK_ENTRIES2)})]),body:EntryMutationBodySchema2.optional()}).strict().superRefine((input,context)=>{let perEntry="updates"in input.selection;perEntry&&input.body!==void 0&&context.addIssue({code:"custom",message:"Do not pass body with per-entry updates.",path:["body"]}),!perEntry&&input.body===void 0&&context.addIssue({code:"custom",message:"Pass body with ids or where selections.",path:["body"]})}),outputSchema:BulkUpdateEntriesResponseSchema2,buildRequest:__name(({projectId:projectId2,branch,typeName,selection,body})=>({method:"POST",path:tenantPath(projectId2,branch,`/entries/${encodeURIComponent(typeName)}/bulk-update`),body:"updates"in selection?selection:{...selection,body}}),"buildRequest")},"entries.bulkDelete":{domain:"entries",summary:`Delete up to ${MAX_BULK_ENTRIES2} entries by IDs or a bounded filter.`,accessScope:"write",effect:"mutation",inputSchema:z112.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,selection:z112.union([z112.object({ids:z112.array(uuidSchema).min(1).max(MAX_BULK_ENTRIES2)}),z112.object({where:EntryWhereSchema2})]),locale:localeSchema.optional()}).strict(),outputSchema:BulkDeleteEntriesResponseSchema2,buildRequest:__name(({projectId:projectId2,branch,typeName,selection,locale})=>({method:"POST",path:tenantPath(projectId2,branch,`/entries/${encodeURIComponent(typeName)}/bulk-delete`),body:{...selection,locale}}),"buildRequest")}}}});import{z as z113}from"zod";var productionEnvironmentSchema,previewEnvironmentSchema,customEnvironmentSchema,environmentSchema,environmentWriteShape,environmentsOperations,init_environments=__esm({"../../packages/sdk/dist/operations/environments.js"(){"use strict";init_common2();productionEnvironmentSchema=z113.object({id:z113.literal("production"),projectId:uuidSchema,name:z113.string(),kind:z113.literal("production"),sourceBranch:z113.string().min(1),isPublished:z113.boolean(),url:z113.string().nullable()}),previewEnvironmentSchema=z113.object({id:z113.literal("preview"),projectId:uuidSchema,name:z113.string(),kind:z113.literal("preview"),matchedBranchCount:z113.number().int().nonnegative()}),customEnvironmentSchema=z113.object({id:uuidSchema,projectId:uuidSchema,name:z113.string().min(1).max(64),branchPatterns:z113.array(z113.string().min(1).max(255)).min(1),description:z113.string().max(255).nullable(),kind:z113.literal("custom"),matchedBranchCount:z113.number().int().nonnegative()}),environmentSchema=z113.discriminatedUnion("kind",[productionEnvironmentSchema,previewEnvironmentSchema,customEnvironmentSchema]),environmentWriteShape={name:z113.string().trim().min(1).max(64),branchPatterns:z113.array(z113.string().min(1).max(255)).min(1),description:z113.string().trim().max(255).nullable().optional()},environmentsOperations={"environments.list":{domain:"environments",summary:"List the compatibility Environments configured for one site.",accessScope:"read",effect:"read",inputSchema:z113.object({projectId:uuidSchema}).strict(),outputSchema:z113.array(environmentSchema),buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/environments")}),"buildRequest"),projectOutput:__name(body=>z113.array(environmentSchema).parse(responseData(body)),"projectOutput")},"environments.create":{domain:"environments",summary:"Create a custom compatibility Environment for one site.",accessScope:"write",effect:"mutation",inputSchema:z113.object({projectId:uuidSchema,...environmentWriteShape}).strict(),outputSchema:environmentSchema,buildRequest:__name(({projectId:projectId2,...body})=>({method:"POST",path:managementProjectPath(projectId2,"/environments"),body,preserveForbidden:!0}),"buildRequest"),projectOutput:__name(body=>environmentSchema.parse(responseData(body)),"projectOutput")},"environments.update":{domain:"environments",summary:"Update one custom compatibility Environment.",accessScope:"write",effect:"mutation",inputSchema:z113.object({projectId:uuidSchema,environmentId:z113.string().min(1),...environmentWriteShape}).strict(),outputSchema:environmentSchema,buildRequest:__name(({projectId:projectId2,environmentId,...body})=>({method:"PATCH",path:managementProjectPath(projectId2,`/environments/${encodeURIComponent(environmentId)}`),body,preserveForbidden:!0}),"buildRequest"),projectOutput:__name(body=>environmentSchema.parse(responseData(body)),"projectOutput")},"environments.delete":{domain:"environments",summary:"Delete one custom compatibility Environment.",accessScope:"write",effect:"mutation",inputSchema:z113.object({projectId:uuidSchema,environmentId:z113.string().min(1)}).strict(),outputSchema:z113.object({deletedId:uuidSchema}),buildRequest:__name(({projectId:projectId2,environmentId})=>({method:"DELETE",path:managementProjectPath(projectId2,`/environments/${encodeURIComponent(environmentId)}`),preserveForbidden:!0}),"buildRequest"),projectOutput:__name(body=>z113.object({deletedId:uuidSchema}).parse(responseData(body)),"projectOutput")}}}});import{z as z114}from"zod";function requireBranchOrSession(input,context){!input.branch&&!input.sessionId&&context.addIssue({code:"custom",message:"Pass branch or sessionId.",path:["branch"]}),input.branch&&input.sessionId&&context.addIssue({code:"custom",message:"Pass branch or sessionId, not both.",path:["branch"]})}var fileReadOutputSchema,fileGlobOutputSchema,fileGrepOutputSchema,fileWriteInputSchema,fileEditInputSchema,fileWriteOutputSchema,fileWriteManyInputSchema,fileWriteManyOutputSchema,fileEditOutputSchema,fileDeleteOutputSchema,fileSearchInputShape,fileReadInputSchema,filesOperations,init_files=__esm({"../../packages/sdk/dist/operations/files.js"(){"use strict";init_common2();fileReadOutputSchema=z114.object({data:z114.object({path:z114.string(),content:z114.string(),totalLines:z114.number().int().nonnegative()}).passthrough()}),fileGlobOutputSchema=z114.object({data:z114.object({paths:z114.array(z114.string().min(1)).max(2e3),truncated:z114.boolean()})}),fileGrepOutputSchema=z114.object({data:z114.object({matches:z114.array(z114.object({path:z114.string().min(1),line:z114.number().int().positive(),text:z114.string()})).max(200),truncated:z114.boolean()})}),fileWriteInputSchema=z114.object({projectId:uuidSchema,sessionId:uuidSchema,path:z114.string().min(1).max(1024),content:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES2,`Content exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES2}-byte write limit.`),overwrite:z114.boolean().optional()}).strict(),fileEditInputSchema=z114.object({projectId:uuidSchema,sessionId:uuidSchema,path:z114.string().min(1).max(1024),oldString:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES2,`Text exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES2}-byte edit limit.`).min(1),newString:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES2,`Text exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES2}-byte edit limit.`),replaceAll:z114.boolean().optional()}).strict(),fileWriteOutputSchema=sessionEnvelopeSchema.extend({file:z114.object({path:z114.string(),created:z114.boolean(),tip:z114.string().min(1)}).passthrough()}),fileWriteManyInputSchema=z114.object({projectId:uuidSchema,sessionId:uuidSchema,files:z114.array(z114.object({path:z114.string().min(1).max(1024),content:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES2,`Content exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES2}-byte write limit.`)}).strict()).min(1).max(PROJECT_FILE_WRITE_MANY_MAX_FILES).refine(files2=>files2.reduce((total,file)=>total+new TextEncoder().encode(file.content).byteLength,0)<=PROJECT_FILE_WRITE_MANY_LIMIT_BYTES,`Files exceed the ${PROJECT_FILE_WRITE_MANY_LIMIT_BYTES}-byte total write limit.`)}).strict(),fileWriteManyOutputSchema=sessionEnvelopeSchema.extend({files:z114.array(z114.object({path:z114.string(),created:z114.boolean()}).passthrough()),tip:z114.string().min(1)}),fileEditOutputSchema=sessionEnvelopeSchema.extend({file:z114.object({path:z114.string(),replacements:z114.number().int().nonnegative(),tip:z114.string().min(1)}).passthrough()}),fileDeleteOutputSchema=sessionEnvelopeSchema.extend({file:z114.object({path:z114.string(),deleted:z114.literal(!0),tip:z114.string().min(1)})}),fileSearchInputShape={projectId:uuidSchema,branch:branchNameSchema.optional(),sessionId:uuidSchema.optional()};__name(requireBranchOrSession,"requireBranchOrSession");fileReadInputSchema=z114.object({projectId:uuidSchema,branch:branchNameSchema.optional(),sessionId:uuidSchema.optional(),path:z114.string().min(1).max(1024)}).superRefine(requireBranchOrSession),filesOperations={"files.read":{domain:"files",summary:"Read one safe text file from a Branch or owned work session.",accessScope:"read",effect:"read",inputSchema:fileReadInputSchema,outputSchema:fileReadOutputSchema,buildRequest:__name(({projectId:projectId2,branch,sessionId,path:path50})=>({method:"GET",path:addQuery(projectFilesPath(projectId2,branch,sessionId,"/file"),{path:path50})}),"buildRequest")},"files.glob":{domain:"files",summary:"List bounded safe site file paths from a Branch or owned work session.",accessScope:"read",effect:"read",inputSchema:z114.object({...fileSearchInputShape,pattern:z114.string().min(1).max(300).optional(),limit:z114.number().int().min(1).max(2e3).optional()}).strict().superRefine(requireBranchOrSession),outputSchema:fileGlobOutputSchema,buildRequest:__name(({projectId:projectId2,branch,sessionId,pattern,limit})=>({method:"GET",path:addQuery(projectFilesPath(projectId2,branch,sessionId,"/paths"),{pattern,limit})}),"buildRequest")},"files.grep":{domain:"files",summary:"Search bounded safe site file contents on a Branch or owned work session.",accessScope:"read",effect:"read",inputSchema:z114.object({...fileSearchInputShape,pattern:z114.string().min(1).max(200),include:z114.string().min(1).max(300).optional(),caseInsensitive:z114.boolean().optional(),maxMatches:z114.number().int().min(1).max(200).optional()}).strict().superRefine(requireBranchOrSession),outputSchema:fileGrepOutputSchema,buildRequest:__name(({projectId:projectId2,branch,sessionId,pattern,include,caseInsensitive,maxMatches})=>({method:"GET",path:addQuery(projectFilesPath(projectId2,branch,sessionId,"/grep"),{pattern,include,caseInsensitive,maxMatches})}),"buildRequest")},"files.write":{domain:"files",summary:"Create or overwrite one safe text file in an owned work session.",accessScope:"code",effect:"mutation",inputSchema:fileWriteInputSchema,outputSchema:fileWriteOutputSchema,buildRequest:__name(({projectId:projectId2,sessionId,path:path50,content:content2,overwrite})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/files/write`),body:withoutUndefined({path:path50,content:content2,overwrite})}),"buildRequest")},"files.writeMany":{domain:"files",summary:"Create or overwrite several safe text files in an owned work session as one saved change.",accessScope:"code",effect:"mutation",inputSchema:fileWriteManyInputSchema,outputSchema:fileWriteManyOutputSchema,buildRequest:__name(({projectId:projectId2,sessionId,files:files2})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/files/write-many`),body:{files:files2}}),"buildRequest")},"files.edit":{domain:"files",summary:"Replace exact text in one safe file in an owned work session.",accessScope:"code",effect:"mutation",inputSchema:fileEditInputSchema,outputSchema:fileEditOutputSchema,buildRequest:__name(({projectId:projectId2,sessionId,path:path50,oldString,newString,replaceAll})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/files/edit`),body:withoutUndefined({path:path50,oldString,newString,replaceAll})}),"buildRequest")},"files.delete":{domain:"files",summary:"Delete one safe site file in an owned work session.",accessScope:"code",effect:"mutation",inputSchema:z114.object({projectId:uuidSchema,sessionId:uuidSchema,path:z114.string().min(1).max(1024)}).strict(),outputSchema:fileDeleteOutputSchema,buildRequest:__name(({projectId:projectId2,sessionId,path:path50})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/files/delete`),body:{path:path50}}),"buildRequest")}}}});import{z as z115}from"zod";function projectFormResponse(body){return formResponseSchema.parse(body)}function projectFormDetail(body){return formResponseSchema.parse(body).data}function projectFormList(body){return z115.object({data:z115.array(formSchema)}).parse(body).data}function projectFormSubmissionsPage(body,input){let page=z115.object({data:z115.array(formSubmissionSchema),total:z115.number().int().nonnegative()}).parse(body),offset=paginationOffset(input)??0;if(page.data.length===0&&offset<page.total)throw new Error("Expected a page that advances the cursor.");return{items:page.data,nextCursor:offset+page.data.length<page.total?encodePaginationCursor(offset+page.data.length):null,total:page.total}}var formFieldSchema,FormContentSchema2,FormUpdateSchema2,rawFormSchema,formSchema,formResponseSchema,formSubmissionSchema,formSubmissionResponseSchema,formSubmissionsPageSchema,formSubmissionStatsResponseSchema,formsOperations,init_forms=__esm({"../../packages/sdk/dist/operations/forms.js"(){"use strict";init_common2();formFieldSchema=z115.object({type:z115.enum(["text","email","textarea","number","phone","url","select","checkbox","date","hidden","file"]),label:z115.string(),placeholder:z115.string().optional(),required:z115.boolean().optional(),defaultValue:z115.string().optional(),options:z115.array(z115.string()).optional(),validation:z115.object({minLength:z115.number().optional(),maxLength:z115.number().optional(),min:z115.number().optional(),max:z115.number().optional(),pattern:z115.string().optional(),maxFileSize:z115.number().optional(),accept:z115.array(z115.string()).optional()}).optional()}),FormContentSchema2=z115.object({name:z115.string().min(1).max(255),label:z115.string().min(1).max(255),fields:z115.record(z115.string(),formFieldSchema)}).strict(),FormUpdateSchema2=FormContentSchema2.partial().refine(update=>update.name!==void 0||update.label!==void 0||update.fields!==void 0,{message:"Pass at least one of name, label, or fields."}),rawFormSchema=z115.object({id:uuidSchema,name:FormContentSchema2.shape.name,label:FormContentSchema2.shape.label,fields:FormContentSchema2.shape.fields,settings:z115.record(z115.string(),z115.unknown()).nullable().optional(),createdAt:z115.string(),updatedAt:z115.string()}).passthrough(),formSchema=rawFormSchema,formResponseSchema=z115.object({data:formSchema}),formSubmissionSchema=z115.object({id:uuidSchema,formId:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,data:z115.record(z115.string(),z115.unknown()),submittedAt:z115.string()}),formSubmissionResponseSchema=z115.object({data:formSubmissionSchema}),formSubmissionsPageSchema=pageSchema(formSubmissionSchema),formSubmissionStatsResponseSchema=z115.object({data:z115.object({total:z115.number().int().nonnegative(),dailyCounts:z115.array(z115.object({date:z115.string(),count:z115.number().int().nonnegative()}))})});__name(projectFormResponse,"projectFormResponse");__name(projectFormDetail,"projectFormDetail");__name(projectFormList,"projectFormList");__name(projectFormSubmissionsPage,"projectFormSubmissionsPage");formsOperations={"forms.list":{domain:"forms",summary:"List form definitions on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z115.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:z115.array(formSchema),buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",path:tenantPath(projectId2,branch,"/forms")}),"buildRequest"),projectOutput:projectFormList},"forms.get":{domain:"forms",summary:"Read one form definition from a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z115.object({projectId:uuidSchema,branch:branchNameSchema,id:z115.string().min(1).max(255)}).strict(),outputSchema:formSchema,buildRequest:__name(({projectId:projectId2,branch,id})=>({method:"GET",path:tenantPath(projectId2,branch,`/forms/${encodeURIComponent(id)}`)}),"buildRequest"),projectOutput:projectFormDetail},"forms.create":{domain:"forms",summary:"Create a form definition on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z115.object({projectId:uuidSchema,branch:branchNameSchema,...FormContentSchema2.shape}).strict(),outputSchema:formResponseSchema,buildRequest:__name(({projectId:projectId2,branch,name,label,fields})=>({method:"POST",path:tenantPath(projectId2,branch,"/forms"),body:{name,label,fields}}),"buildRequest"),projectOutput:projectFormResponse},"forms.update":{domain:"forms",summary:"Update the name, label, or fields of one form definition.",accessScope:"write",effect:"mutation",inputSchema:z115.object({projectId:uuidSchema,branch:branchNameSchema,id:z115.string().min(1).max(255),...FormContentSchema2.partial().shape}).strict().superRefine((input,context)=>{let update=FormUpdateSchema2.safeParse({name:input.name,label:input.label,fields:input.fields});if(!update.success)for(let issue2 of update.error.issues)context.addIssue({...issue2,path:issue2.path})}),outputSchema:formResponseSchema,buildRequest:__name(({projectId:projectId2,branch,id,name,label,fields})=>({method:"PUT",path:tenantPath(projectId2,branch,`/forms/${encodeURIComponent(id)}`),body:{name,label,fields}}),"buildRequest"),projectOutput:projectFormResponse},"forms.delete":{domain:"forms",summary:"Delete one form definition from a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z115.object({projectId:uuidSchema,branch:branchNameSchema,id:z115.string().min(1).max(255)}).strict(),outputSchema:formResponseSchema,buildRequest:__name(({projectId:projectId2,branch,id})=>({method:"DELETE",path:tenantPath(projectId2,branch,`/forms/${encodeURIComponent(id)}`)}),"buildRequest"),projectOutput:projectFormResponse},"forms.listSubmissions":{domain:"forms",summary:"List submissions for one form with cursor pagination.",accessScope:"read",effect:"read",inputSchema:z115.object({projectId:uuidSchema,branch:branchNameSchema,id:z115.string().min(1).max(255),...paginationShape,searchQuery:z115.string().max(200).optional(),sortDirection:z115.enum(["asc","desc"]).optional()}).strict().superRefine(paginationRefinement),outputSchema:formSubmissionsPageSchema,buildRequest:__name(({projectId:projectId2,branch,id,limit,cursor,offset,searchQuery,sortDirection})=>({method:"GET",path:addQuery(tenantPath(projectId2,branch,`/forms/${encodeURIComponent(id)}/submissions`),{limit,offset:paginationOffset({cursor,offset}),searchQuery,sortDirection})}),"buildRequest"),projectOutput:projectFormSubmissionsPage},"forms.getSubmission":{domain:"forms",summary:"Read one submission for a form.",accessScope:"read",effect:"read",inputSchema:z115.object({projectId:uuidSchema,branch:branchNameSchema,id:z115.string().min(1).max(255),submissionId:z115.string().min(1).max(255)}).strict(),outputSchema:formSubmissionSchema,buildRequest:__name(({projectId:projectId2,branch,id,submissionId})=>({method:"GET",path:tenantPath(projectId2,branch,`/forms/${encodeURIComponent(id)}/submissions/${encodeURIComponent(submissionId)}`)}),"buildRequest"),projectOutput:__name(body=>formSubmissionResponseSchema.parse(body).data,"projectOutput")},"forms.submissionStats":{domain:"forms",summary:"Read aggregate submission statistics for one form.",accessScope:"read",effect:"read",inputSchema:z115.object({projectId:uuidSchema,branch:branchNameSchema,id:z115.string().min(1).max(255)}).strict(),outputSchema:formSubmissionStatsResponseSchema.shape.data,buildRequest:__name(({projectId:projectId2,branch,id})=>({method:"GET",path:tenantPath(projectId2,branch,`/forms/${encodeURIComponent(id)}/submissions/stats`)}),"buildRequest"),projectOutput:__name(body=>formSubmissionStatsResponseSchema.parse(body).data,"projectOutput")},"forms.deleteSubmission":{domain:"forms",summary:"Permanently delete one submission for a form. This cannot be undone.",accessScope:"write",effect:"mutation",inputSchema:z115.object({projectId:uuidSchema,branch:branchNameSchema,id:z115.string().min(1).max(255),submissionId:z115.string().min(1).max(255)}).strict(),outputSchema:formSubmissionSchema,buildRequest:__name(({projectId:projectId2,branch,id,submissionId})=>({method:"DELETE",path:tenantPath(projectId2,branch,`/forms/${encodeURIComponent(id)}/submissions/${encodeURIComponent(submissionId)}`)}),"buildRequest"),projectOutput:__name(body=>formSubmissionResponseSchema.parse(body).data,"projectOutput")}}}});import{z as z116}from"zod";var estimateSchema,generationOperations,init_generation=__esm({"../../packages/sdk/dist/operations/generation.js"(){"use strict";init_common2();estimateSchema=z116.object({costUsd:z116.number(),credits:z116.number().optional(),billingMode:z116.enum(["fimo-credits","provider-account"]).optional(),confidence:z116.enum(["exact","estimated","metered"]),basis:z116.string()}).passthrough(),generationOperations={"generation.estimateModel":{domain:"generation",summary:"Estimate one generation request against an enabled provider model.",accessScope:"read",effect:"read",inputSchema:z116.object({projectId:uuidSchema,model:z116.string().min(1),options:z116.record(z116.string(),z116.unknown())}).strict(),outputSchema:estimateSchema,buildRequest:__name(({projectId:projectId2,model,options})=>({method:"POST",path:`/management/projects/${encodeURIComponent(projectId2)}/integrations/fal/models/estimate`,body:{model,options}}),"buildRequest"),projectOutput:responseData},"generation.estimateTask":{domain:"generation",summary:"Estimate one built-in media generation task on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z116.object({projectId:uuidSchema,branch:branchNameSchema,task:z116.string().min(1),options:z116.record(z116.string(),z116.unknown())}).strict(),outputSchema:estimateSchema,buildRequest:__name(({projectId:projectId2,branch,task,options})=>({method:"POST",path:tenantPath(projectId2,branch,"/assets/generate/estimate"),body:{task,options}}),"buildRequest"),projectOutput:responseData}}}});import{z as z117}from"zod";var historyKindSchema,projectVersionSchema,projectVersionPageSchema,historySummarySchema,restoreResultSchema,historyOperations,init_history=__esm({"../../packages/sdk/dist/operations/history.js"(){"use strict";init_common2();historyKindSchema=z117.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),projectVersionSchema=z117.object({versionId:uuidSchema,commitHash:z117.string(),name:z117.string(),description:z117.string().nullable(),kind:historyKindSchema,createdAt:z117.iso.datetime(),expiresAt:z117.iso.datetime()}),projectVersionPageSchema=z117.object({items:z117.array(projectVersionSchema),nextCursor:z117.string().nullable()}),historySummarySchema=z117.object({usage:z117.object({versionCount:z117.number().int().nonnegative(),snapshotBytes:z117.number().int().nonnegative()}),retentionDays:z117.number().int().positive()}),restoreResultSchema=z117.object({durationMs:z117.number().nonnegative().optional(),warning:z117.string().optional()}),historyOperations={"history.list":{domain:"history",summary:"List restore points for one Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z117.object({projectId:uuidSchema,branch:branchNameSchema,limit:z117.number().int().min(1).max(100),cursor:paginationShape.cursor}).strict(),outputSchema:projectVersionPageSchema,buildRequest:__name(({projectId:projectId2,branch,limit,cursor})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,"/versions"),{limit,cursor})}),"buildRequest"),projectOutput:__name(body=>projectVersionPageSchema.parse(responseData(body)),"projectOutput")},"history.summary":{domain:"history",summary:"Read restore-point usage and retention for one Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z117.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:historySummarySchema,buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",path:managementBranchPath(projectId2,branch,"/versions/summary")}),"buildRequest"),projectOutput:__name(body=>historySummarySchema.parse(responseData(body)),"projectOutput")},"history.get":{domain:"history",summary:"Read one restore point from a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z117.object({projectId:uuidSchema,branch:branchNameSchema,versionId:uuidSchema}).strict(),outputSchema:projectVersionSchema,buildRequest:__name(({projectId:projectId2,branch,versionId})=>({method:"GET",path:managementBranchPath(projectId2,branch,`/versions/${encodeURIComponent(versionId)}`)}),"buildRequest"),projectOutput:__name(body=>projectVersionSchema.parse(responseData(body)),"projectOutput")},"history.create":{domain:"history",summary:"Create a restore point for one Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z117.object({projectId:uuidSchema,branch:branchNameSchema,name:z117.string().min(1),description:z117.string().optional()}).strict(),outputSchema:projectVersionSchema,buildRequest:__name(({projectId:projectId2,branch,name,description})=>({method:"POST",path:managementBranchPath(projectId2,branch,"/versions"),body:withoutUndefined({name,description})}),"buildRequest"),projectOutput:__name(body=>projectVersionSchema.parse(responseData(body)),"projectOutput")},"history.restore":{domain:"history",summary:"Restore code and content from one Fimo Branch restore point.",accessScope:"write",effect:"mutation",inputSchema:z117.object({projectId:uuidSchema,branch:branchNameSchema,versionId:uuidSchema}).strict(),outputSchema:restoreResultSchema,buildRequest:__name(({projectId:projectId2,branch,versionId})=>({method:"POST",path:managementBranchPath(projectId2,branch,`/versions/${encodeURIComponent(versionId)}/restore`)}),"buildRequest"),projectOutput:__name(body=>restoreResultSchema.parse(responseData(body)),"projectOutput")}}}});import{z as z118}from"zod";function publicationRecord(value){let publication=recordValue(value,"Expected a publication record."),source=recordValue(publication.source,"Expected a publication source."),{env,targetEnv,...publicSource}=source;return{...publication,source:{...publicSource,branch:publicSource.branch??env,targetBranch:publicSource.targetBranch??targetEnv}}}function projectPublication(body){return publicationOutputSchema.parse(publicationRecord(responseData(body)))}function projectPublicationsPage(body){let page=recordValue(responseData(body),"Expected a publication history page.");if(!Array.isArray(page.items))throw new Error("Expected publication history items.");return publicationsPageOutputSchema.parse({items:page.items.map(publicationRecord),nextCursor:page.nextCursor,retention:page.retention})}function projectPublicationLogs(body){let result=recordValue(responseData(body),"Expected publication logs.");return publicationLogsOutputSchema.parse({status:result.status,publicationId:result.publicationId,reason:result.reason??null,message:result.message??null,items:result.events??[]})}function projectSandboxLogs(body){let result=recordValue(responseData(body),"Expected sandbox logs.");return sandboxLogsOutputSchema.parse({status:result.status,reason:result.reason??null,message:result.message??null,items:result.events??[],nextCursor:result.previousCursor??null,retention:result.retention??null})}var LOG_TAIL_MAX_LIMIT,logTailLimitSchema,publicationStateOutputSchema,publicationOutputSchema,publicationsPageOutputSchema,publicationLogsOutputSchema,sandboxLogsOutputSchema,previewLocationOutputSchema,previewOpenOutputSchema,publishOutputSchema,hostingOperations,init_hosting=__esm({"../../packages/sdk/dist/operations/hosting.js"(){"use strict";init_common2();LOG_TAIL_MAX_LIMIT=1e3,logTailLimitSchema=z118.number().int().min(1).max(LOG_TAIL_MAX_LIMIT).optional(),publicationStateOutputSchema=z118.object({isPublished:z118.boolean(),publishedAt:z118.iso.datetime().nullable(),publishedVersion:z118.string().nullable()}),publicationOutputSchema=z118.object({id:uuidSchema,status:z118.enum(["queued","building","published","failed","canceled"]),label:z118.string().nullable(),notes:z118.string().nullable(),source:z118.object({branch:branchNameSchema,targetBranch:branchNameSchema,configVersion:z118.string().nullable(),framework:z118.string().nullable(),commit:z118.string().nullable()}),createdAt:z118.iso.datetime(),finishedAt:z118.iso.datetime().nullable(),url:z118.string().nullable(),failureCode:z118.string().nullable()}),publicationsPageOutputSchema=z118.object({items:z118.array(publicationOutputSchema),nextCursor:z118.string().nullable(),retention:z118.object({scope:z118.literal("publication_attempt_record"),records:z118.literal("project_lifetime")})}),publicationLogsOutputSchema=z118.object({status:z118.enum(["ok","unavailable"]),publicationId:uuidSchema,reason:z118.enum(["pending","no_deployment","provider_unavailable"]).nullable(),message:z118.string().nullable(),items:z118.array(z118.object({timestamp:z118.iso.datetime(),phase:z118.enum(["build","deploy"]),stream:z118.enum(["command","stdout","stderr","status","error"]),message:z118.string()}))}),sandboxLogsOutputSchema=z118.object({status:z118.enum(["ok","unavailable"]),reason:z118.enum(["no_sandbox","sandbox_expired","provider_unsupported"]).nullable(),message:z118.string().nullable(),items:z118.array(z118.object({id:z118.string(),timestamp:z118.iso.datetime().nullable(),source:z118.enum(["install","dev-server"]),phase:z118.string(),stream:z118.enum(["combined","stdout","stderr"]),message:z118.string()})),nextCursor:z118.string().nullable(),retention:z118.object({scope:z118.literal("sandbox_process_snapshot"),timestamps:z118.literal("process_start"),droppedOldest:z118.boolean(),phases:z118.array(z118.object({phase:z118.string(),source:z118.enum(["install","dev-server"]),status:z118.string(),startedAt:z118.iso.datetime().nullable(),exitCode:z118.number().int().nullable(),events:z118.number().int().nonnegative()}))}).nullable()}),previewLocationOutputSchema=z118.object({url:z118.string(),branch:branchNameSchema}),previewOpenOutputSchema=z118.object({url:z118.url(),expiresAt:z118.iso.datetime().nullable()}),publishOutputSchema=z118.object({success:z118.boolean(),message:z118.string().optional(),firstPublish:z118.boolean(),publicationId:z118.string().optional(),url:z118.string().nullable().optional()});__name(publicationRecord,"publicationRecord");__name(projectPublication,"projectPublication");__name(projectPublicationsPage,"projectPublicationsPage");__name(projectPublicationLogs,"projectPublicationLogs");__name(projectSandboxLogs,"projectSandboxLogs");hostingOperations={"publications.state":{domain:"publications",summary:"Read whether a site has a live published site.",accessScope:"read",effect:"read",inputSchema:z118.object({projectId:uuidSchema}).strict(),outputSchema:publicationStateOutputSchema,buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/publication-state")}),"buildRequest"),projectOutput:__name(body=>publicationStateOutputSchema.parse(responseData(body)),"projectOutput")},"publications.list":{domain:"publications",summary:"List durable publication attempts, newest first.",accessScope:"read",effect:"read",inputSchema:z118.object({projectId:uuidSchema,limit:z118.number().int().min(1).max(100).optional(),cursor:paginationShape.cursor}).strict(),outputSchema:publicationsPageOutputSchema,buildRequest:__name(({projectId:projectId2,limit,cursor})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,"/publications"),{limit,before:cursor})}),"buildRequest"),projectOutput:projectPublicationsPage},"publications.get":{domain:"publications",summary:"Read one durable publication attempt.",accessScope:"read",effect:"read",inputSchema:z118.object({projectId:uuidSchema,publicationId:z118.string().min(1)}).strict(),outputSchema:publicationOutputSchema,buildRequest:__name(({projectId:projectId2,publicationId})=>({method:"GET",path:managementProjectPath(projectId2,`/publications/${encodeURIComponent(publicationId)}`)}),"buildRequest"),projectOutput:projectPublication},"publications.publish":{domain:"publications",summary:"Publish the production source Branch and wait until the site is live; returns the live URL. Building can take a few minutes; if the call fails or times out, list the publications until the newest attempt is published or failed.",accessScope:"write",effect:"mutation",inputSchema:z118.object({projectId:uuidSchema,label:z118.string().trim().min(1).max(120).optional(),notes:z118.string().max(2e4).optional()}).strict(),outputSchema:publishOutputSchema,buildRequest:__name(({projectId:projectId2,label,notes})=>({method:"POST",path:managementProjectPath(projectId2,"/publish"),body:withoutUndefined({label,notes})}),"buildRequest"),projectOutput:__name(body=>publishOutputSchema.parse(responseData(body)),"projectOutput")},"publications.logs":{domain:"publications",summary:"Read a bounded sanitized build-log tail for one publication.",accessScope:"read",effect:"read",inputSchema:z118.object({projectId:uuidSchema,publicationId:z118.string().min(1),limit:logTailLimitSchema}).strict(),outputSchema:publicationLogsOutputSchema,buildRequest:__name(({projectId:projectId2,publicationId,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,`/publications/${encodeURIComponent(publicationId)}/logs`),{limit})}),"buildRequest"),projectOutput:projectPublicationLogs},"sandbox.logs":{domain:"sandbox",summary:"Read existing install and dev-server logs without creating or extending a sandbox.",accessScope:"read",effect:"read",inputSchema:z118.object({projectId:uuidSchema,branch:branchNameSchema,limit:logTailLimitSchema,cursor:paginationShape.cursor}).strict(),outputSchema:sandboxLogsOutputSchema,buildRequest:__name(({projectId:projectId2,branch,limit,cursor})=>({method:"GET",path:addQuery(managementBranchPath(projectId2,branch,"/sandbox/logs"),{limit,before:cursor})}),"buildRequest"),projectOutput:projectSandboxLogs},"preview.location":{domain:"preview",summary:"Return the Studio Preview location for one Branch without provisioning it.",accessScope:"read",effect:"read",inputSchema:z118.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:previewLocationOutputSchema,buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",path:managementBranchPath(projectId2,branch,"/preview-location")}),"buildRequest"),projectOutput:__name(body=>previewLocationOutputSchema.parse(responseData(body)),"projectOutput")},"preview.open":{domain:"preview",summary:"Start or reuse one Branch's preview sandbox and return its signed live URL. Pass a work session's workingBranch name to preview unmerged changes; the URL expires at expiresAt.",accessScope:"read",effect:"mutation",inputSchema:z118.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:previewOpenOutputSchema,buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",path:managementBranchPath(projectId2,branch,"/sandbox")}),"buildRequest"),projectOutput:__name(body=>previewOpenOutputSchema.parse(responseData(body)),"projectOutput")}}}});import{z as z119}from"zod";var integrationIdSchema,toolEffectSchema,integrationSchema,integrationToolSchema,integrationGuideSchema,integrationRunResultSchema,runInputShape,integrationsOperations,init_integrations=__esm({"../../packages/sdk/dist/operations/integrations.js"(){"use strict";init_common2();integrationIdSchema=z119.string().min(2).max(120).regex(/^[a-z0-9][a-z0-9_-]*$/),toolEffectSchema=z119.enum(["read","write","delete","financial"]),integrationSchema=z119.object({id:z119.string(),kind:z119.enum(["catalog","custom","builtIn"]),name:z119.string(),description:z119.string(),host:z119.string().nullable(),readOnly:z119.boolean(),installed:z119.boolean(),enabled:z119.boolean(),accountName:z119.string().nullable(),settings:z119.array(z119.object({key:z119.string(),label:z119.string(),description:z119.string().nullable(),required:z119.boolean()})),settingsValues:z119.record(z119.string(),z119.string()),missingSettings:z119.array(z119.string())}),integrationToolSchema=z119.object({integrationId:z119.string(),integrationName:z119.string(),key:z119.string(),name:z119.string(),description:z119.string(),effect:toolEffectSchema,input:z119.record(z119.string(),z119.unknown()).optional()}),integrationGuideSchema=z119.object({integrationId:z119.string(),name:z119.string(),description:z119.string(),content:z119.string()}),integrationRunResultSchema=z119.discriminatedUnion("status",[z119.object({status:z119.literal("ok"),output:z119.record(z119.string(),z119.unknown())}),z119.object({status:z119.literal("approval_required"),request:z119.string(),approveUrl:z119.string(),reason:z119.string(),integration:z119.object({id:z119.string(),name:z119.string()}),tool:z119.object({key:z119.string(),name:z119.string(),effect:toolEffectSchema}),input:z119.record(z119.string(),z119.unknown()),canAlwaysAllow:z119.boolean()}),z119.object({status:z119.literal("blocked"),reason:z119.string()})]),runInputShape={projectId:uuidSchema,integrationId:integrationIdSchema,tool:z119.string().min(1).max(120),input:z119.record(z119.string(),z119.unknown()).default({})},integrationsOperations={"integrations.list":{domain:"integrations",summary:"List the integrations this site can use, such as Google Search Console: whether each is on for the site, its connected account, and settings it still needs.",accessScope:"read",effect:"read",inputSchema:z119.object({projectId:uuidSchema}).strict(),outputSchema:z119.array(integrationSchema),buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/integrations/catalog")}),"buildRequest"),projectOutput:__name(body=>z119.array(integrationSchema).parse(responseData(body)),"projectOutput")},"integrations.tools":{domain:"integrations",summary:`Find the tools of the integrations on for this site by what you need, in plain words ("clicks by page", "sitemap"): the best matches, each with its key, the start of what it does and whether it reads or changes data. Pass a tool key to get that tool's input JSON schema, before you run it.`,accessScope:"read",effect:"read",inputSchema:z119.object({projectId:uuidSchema,search:z119.string().max(200).optional(),integrationId:integrationIdSchema.optional(),tool:z119.string().min(1).max(120).optional()}).strict(),outputSchema:z119.array(integrationToolSchema),buildRequest:__name(({projectId:projectId2,search,integrationId,tool})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,"/integrations/tools"),{search,integration:integrationId,tool})}),"buildRequest"),projectOutput:__name(body=>z119.array(integrationToolSchema).parse(responseData(body)),"projectOutput")},"integrations.guide":{domain:"integrations",summary:"Read an integration's guide before running its tools the first time: which tool answers which question, and how to read its numbers.",accessScope:"read",effect:"read",inputSchema:z119.object({projectId:uuidSchema,integrationId:integrationIdSchema}).strict(),outputSchema:integrationGuideSchema,buildRequest:__name(({projectId:projectId2,integrationId})=>({method:"GET",path:managementProjectPath(projectId2,`/integrations/${encodeURIComponent(integrationId)}/guide`)}),"buildRequest"),projectOutput:__name(body=>integrationGuideSchema.parse(responseData(body)),"projectOutput")},"integrations.run":{domain:"integrations",summary:"Run an integration tool that reads data, with the input its JSON schema describes. Tools that change data in the outside service run with integrations.write.",accessScope:"read",effect:"read",inputSchema:z119.object(runInputShape).strict(),outputSchema:integrationRunResultSchema,buildRequest:__name(({projectId:projectId2,integrationId,tool,input})=>({method:"POST",path:managementProjectPath(projectId2,`/integrations/${encodeURIComponent(integrationId)}/call`),body:{tool,input,readOnly:!0}}),"buildRequest"),projectOutput:__name(body=>integrationRunResultSchema.parse(responseData(body)),"projectOutput")},"integrations.write":{domain:"integrations",summary:"Run an integration tool that changes data in the outside service, such as submitting a sitemap to Google, only when the user asked for that change. Unless the site always allows the tool, the answer is approval_required with an approveUrl to give the user; once they allowed it in Fimo, call again with the exact same tool and input plus the approval code they paste back. A code works for one hour.",accessScope:"write",effect:"mutation",inputSchema:z119.object({...runInputShape,approval:z119.string().min(1).max(4e3).optional()}).strict(),outputSchema:integrationRunResultSchema,buildRequest:__name(({projectId:projectId2,integrationId,tool,input,approval})=>({method:"POST",path:managementProjectPath(projectId2,`/integrations/${encodeURIComponent(integrationId)}/call`),body:withoutUndefined({tool,input,approval})}),"buildRequest"),projectOutput:__name(body=>integrationRunResultSchema.parse(responseData(body)),"projectOutput")},"integrations.setEnabled":{domain:"integrations",summary:"Turn an integration on or off for this site. Turning one on may need its account connected first.",accessScope:"write",effect:"mutation",inputSchema:z119.object({projectId:uuidSchema,integrationId:integrationIdSchema,enabled:z119.boolean()}).strict(),outputSchema:z119.object({ok:z119.literal(!0)}),buildRequest:__name(({projectId:projectId2,integrationId,enabled})=>({method:"PUT",path:managementProjectPath(projectId2,`/integrations/${encodeURIComponent(integrationId)}`),body:{enabled}}),"buildRequest"),projectOutput:__name(()=>({ok:!0}),"projectOutput")},"integrations.updateSettings":{domain:"integrations",summary:"Change an integration's settings for this site. A choice must be one the connected account offers.",accessScope:"write",effect:"mutation",inputSchema:z119.object({projectId:uuidSchema,integrationId:integrationIdSchema,settings:z119.record(z119.string(),z119.string().max(500))}).strict(),outputSchema:z119.object({ok:z119.literal(!0)}),buildRequest:__name(({projectId:projectId2,integrationId,settings})=>({method:"PUT",path:managementProjectPath(projectId2,`/integrations/${encodeURIComponent(integrationId)}/settings`),body:{settings}}),"buildRequest"),projectOutput:__name(()=>({ok:!0}),"projectOutput")}}}});import{z as z120}from"zod";var knowledgeSchema,knowledgeOperations,init_knowledge=__esm({"../../packages/sdk/dist/operations/knowledge.js"(){"use strict";init_common2();knowledgeSchema=z120.object({content:z120.string(),updatedAt:z120.string().nullable(),updatedBy:z120.string().nullable()}),knowledgeOperations={"knowledge.get":{domain:"knowledge",summary:"Read shared site goals, brand guidance and rules before planning, recommendations, design, copy or coding.",accessScope:"read",effect:"read",inputSchema:z120.object({projectId:uuidSchema}).strict(),outputSchema:knowledgeSchema,buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/knowledge")}),"buildRequest"),projectOutput:__name(body=>knowledgeSchema.parse(responseData(body)),"projectOutput")},"knowledge.update":{domain:"knowledge",summary:"Replace shared site knowledge only when explicitly asked and authorized. Read first to preserve unrelated guidance.",accessScope:"write",effect:"mutation",inputSchema:z120.object({projectId:uuidSchema,content:z120.string()}).strict(),outputSchema:knowledgeSchema,buildRequest:__name(({projectId:projectId2,content:content2})=>({method:"PUT",path:managementProjectPath(projectId2,"/knowledge"),body:{content:content2}}),"buildRequest"),projectOutput:__name(body=>knowledgeSchema.parse(responseData(body)),"projectOutput")}}}});import{z as z121}from"zod";function responseValue(schema,body){return schema.parse(responseData(body))}var TranslationDTOSchema2,labelResponseSchema,labelListOutputSchema,labelUpsertOutputSchema,labelDeleteOutputSchema,labelsOperations,init_labels=__esm({"../../packages/sdk/dist/operations/labels.js"(){"use strict";init_common2();init_entries();TranslationDTOSchema2=z121.object({key:z121.string(),value:z121.string().optional(),defaultValue:z121.string(),locale:z121.string()}),labelResponseSchema=createResponseSchema2(TranslationDTOSchema2),labelListOutputSchema=z121.object({data:z121.array(z121.union([TranslationDTOSchema2,z121.object({key:z121.string(),values:z121.record(z121.string(),z121.string())})]))}),labelUpsertOutputSchema=z121.object({created:z121.number().int().nonnegative(),updated:z121.number().int().nonnegative(),deleted:z121.number().int().nonnegative(),defaultLocale:z121.string(),locales:z121.array(z121.string())}),labelDeleteOutputSchema=z121.object({key:z121.string(),locale:z121.string()});__name(responseValue,"responseValue");labelsOperations={"labels.list":{domain:"labels",summary:"List localized labels on a Fimo Branch, optionally grouped across locales.",accessScope:"read",effect:"read",inputSchema:z121.object({projectId:uuidSchema,branch:branchNameSchema,locale:localeSchema.optional()}).strict(),outputSchema:labelListOutputSchema,buildRequest:__name(({projectId:projectId2,branch,locale})=>({method:"GET",path:addQuery(tenantPath(projectId2,branch,"/labels"),{locale})}),"buildRequest")},"labels.get":{domain:"labels",summary:"Read one localized label by locale and key.",accessScope:"read",effect:"read",inputSchema:z121.object({projectId:uuidSchema,branch:branchNameSchema,locale:localeSchema,key:z121.string().min(1).max(255)}).strict(),outputSchema:labelResponseSchema,buildRequest:__name(({projectId:projectId2,branch,locale,key})=>({method:"GET",path:tenantPath(projectId2,branch,`/labels/${encodeURIComponent(locale)}/${encodeURIComponent(key)}`)}),"buildRequest")},"labels.set":{domain:"labels",summary:"Create or set one localized label.",accessScope:"write",effect:"mutation",inputSchema:z121.object({projectId:uuidSchema,branch:branchNameSchema,key:z121.string(),value:z121.string(),locale:z121.string().optional()}).strict(),outputSchema:TranslationDTOSchema2,buildRequest:__name(({projectId:projectId2,branch,key,value,locale})=>({method:"POST",path:tenantPath(projectId2,branch,"/labels"),body:{key,value,locale}}),"buildRequest"),projectOutput:__name(body=>responseValue(TranslationDTOSchema2,body),"projectOutput")},"labels.setMany":{domain:"labels",summary:"Create or overwrite localized labels in one request.",accessScope:"write",effect:"mutation",inputSchema:z121.object({projectId:uuidSchema,branch:branchNameSchema,records:z121.array(z121.object({key:z121.string(),value:z121.string(),locale:z121.string().optional()}))}).strict(),outputSchema:labelUpsertOutputSchema,buildRequest:__name(({projectId:projectId2,branch,records})=>({method:"POST",path:tenantPath(projectId2,branch,"/labels/sync"),body:{created:records,updated:[],deleted:[]}}),"buildRequest"),projectOutput:__name(body=>responseValue(labelUpsertOutputSchema,body),"projectOutput")},"labels.delete":{domain:"labels",summary:"Delete one localized label.",accessScope:"write",effect:"mutation",inputSchema:z121.object({projectId:uuidSchema,branch:branchNameSchema,locale:z121.string().optional(),key:z121.string()}).strict(),outputSchema:labelDeleteOutputSchema,buildRequest:__name(({projectId:projectId2,branch,locale,key})=>({method:"DELETE",path:tenantPath(projectId2,branch,locale?`/labels/${encodeURIComponent(locale)}/${encodeURIComponent(key)}`:`/labels/${encodeURIComponent(key)}`)}),"buildRequest"),projectOutput:__name(body=>responseValue(labelDeleteOutputSchema,body),"projectOutput")}}}});import{z as z122}from"zod";var projectLocaleCoverageSchema,ProjectLocaleStatsResponseSchema2,projectLocaleInputSchema,ProjectLocaleMutationResponseSchema2,RemoveProjectLocaleResponseSchema2,localesOperations,init_locales=__esm({"../../packages/sdk/dist/operations/locales.js"(){"use strict";init_common2();projectLocaleCoverageSchema=z122.object({translated:z122.number().int().nonnegative(),total:z122.number().int().nonnegative()}),ProjectLocaleStatsResponseSchema2=createResponseSchema2(z122.object({defaultLocale:z122.string(),locales:z122.array(z122.object({locale:z122.string(),isDefault:z122.boolean(),entries:projectLocaleCoverageSchema,labels:projectLocaleCoverageSchema}))})),projectLocaleInputSchema=z122.string().min(1).max(40),ProjectLocaleMutationResponseSchema2=createResponseSchema2(z122.object({locale:z122.string()})),RemoveProjectLocaleResponseSchema2=createResponseSchema2(z122.object({locale:z122.string(),entriesDeleted:z122.number().int().nonnegative(),labelsDeleted:z122.number().int().nonnegative()})),localesOperations={"locales.list":{domain:"locales",summary:"List configured locales and content coverage on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z122.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:ProjectLocaleStatsResponseSchema2,buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",path:managementBranchPath(projectId2,branch,"/locales/stats")}),"buildRequest")},"locales.add":{domain:"locales",summary:"Add a configured locale to a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z122.object({projectId:uuidSchema,branch:branchNameSchema,locale:projectLocaleInputSchema}).strict(),outputSchema:ProjectLocaleMutationResponseSchema2,buildRequest:__name(({projectId:projectId2,branch,locale})=>({method:"POST",path:managementBranchPath(projectId2,branch,"/locales"),body:{locale}}),"buildRequest")},"locales.setDefault":{domain:"locales",summary:"Set the default configured locale on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z122.object({projectId:uuidSchema,branch:branchNameSchema,locale:projectLocaleInputSchema}).strict(),outputSchema:ProjectLocaleMutationResponseSchema2,buildRequest:__name(({projectId:projectId2,branch,locale})=>({method:"PUT",path:managementBranchPath(projectId2,branch,"/locales/default"),body:{locale}}),"buildRequest")},"locales.delete":{domain:"locales",summary:"Delete a non-default locale and its localized content from a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z122.object({projectId:uuidSchema,branch:branchNameSchema,locale:projectLocaleInputSchema}).strict(),outputSchema:RemoveProjectLocaleResponseSchema2,buildRequest:__name(({projectId:projectId2,branch,locale})=>({method:"DELETE",path:managementBranchPath(projectId2,branch,`/locales/${encodeURIComponent(locale)}`)}),"buildRequest")}}}});import{z as z123}from"zod";var organizationSchema,organizationMemberSchema,organizationInvitationSchema,referralSummarySchema,organizationsOperations,init_organizations=__esm({"../../packages/sdk/dist/operations/organizations.js"(){"use strict";init_common2();organizationSchema=z123.object({id:z123.string().min(1),name:z123.string(),slug:z123.string()}),organizationMemberSchema=z123.object({id:z123.string().min(1),role:z123.string(),createdAt:z123.string().optional(),user:z123.object({id:z123.string().min(1),name:z123.string().nullable().optional(),email:z123.string().nullable().optional()}).optional()}),organizationInvitationSchema=z123.object({id:z123.string().min(1),email:z123.email(),role:z123.string(),organizationId:z123.string().min(1),inviterId:z123.string().min(1),status:z123.string(),expiresAt:z123.string(),createdAt:z123.string()}).passthrough(),referralSummarySchema=z123.object({counts:z123.object({signed_up:z123.number().int(),activated:z123.number().int()}),credits:z123.object({total:z123.number().int(),earned:z123.number().int().optional()})}),organizationsOperations={"organizations.list":{domain:"organizations",summary:"List organizations the authenticated user belongs to.",accessScope:"read",effect:"read",inputSchema:z123.object({}).strict(),outputSchema:createResponseSchema2(z123.array(organizationSchema)),buildRequest:__name(()=>({method:"GET",path:"/management/organizations"}),"buildRequest")},"organizations.members":{domain:"organizations",summary:"List members of one organization.",accessScope:"read",effect:"read",inputSchema:z123.object({organizationId:z123.string().min(1)}).strict(),outputSchema:z123.array(organizationMemberSchema),buildRequest:__name(({organizationId})=>({method:"GET",path:`/auth/organization/get-full-organization?organizationId=${encodeURIComponent(organizationId)}`}),"buildRequest"),projectOutput:__name(body=>z123.object({members:z123.array(organizationMemberSchema)}).nullable().parse(body)?.members??[],"projectOutput")},"organizations.invite":{domain:"organizations",summary:"Invite a user to an organization.",accessScope:"write",effect:"mutation",inputSchema:z123.object({organizationId:z123.string().min(1),email:z123.email(),role:z123.enum(["owner","admin","member"]),resend:z123.boolean().optional()}).strict(),outputSchema:organizationInvitationSchema,buildRequest:__name(input=>({method:"POST",path:"/auth/organization/invite-member",body:input}),"buildRequest")},"referrals.summary":{domain:"referrals",summary:"Read the referral summary for the authenticated user.",accessScope:"read",effect:"read",inputSchema:z123.object({userId:z123.string().min(1)}).strict(),outputSchema:referralSummarySchema,buildRequest:__name(({userId})=>({method:"GET",path:`/users/${encodeURIComponent(userId)}/referrals/summary`}),"buildRequest"),projectOutput:__name(body=>referralSummarySchema.parse(responseData(body)),"projectOutput")}}}});import{z as z124}from"zod";var projectSchema,projectResponseSchema,transferResultSchema,projectsOperations,init_projects=__esm({"../../packages/sdk/dist/operations/projects.js"(){"use strict";init_common2();projectSchema=z124.object({id:uuidSchema,name:z124.string(),displayName:z124.string().nullable(),organizationId:z124.string().nullable(),defaultBranch:branchNameSchema.optional(),productionSourceBranch:branchNameSchema.optional(),status:z124.string().optional(),appUrl:z124.string().nullable().optional()}).passthrough(),projectResponseSchema=z124.object({data:projectSchema}),transferResultSchema=z124.object({projectId:z124.string(),sourceOrganizationId:z124.string(),targetOrganizationId:z124.string(),movedThreads:z124.number().int().nonnegative(),revokedInvites:z124.number().int().nonnegative(),revokedGrants:z124.number().int().nonnegative(),preservedGrants:z124.number().int().nonnegative(),warnings:z124.array(z124.string())}),projectsOperations={"projects.list":{domain:"projects",summary:"List the Fimo sites the authenticated user can access.",accessScope:"read",effect:"read",inputSchema:z124.object({organizationId:z124.string().min(1).optional()}).strict(),outputSchema:z124.object({data:z124.array(projectSchema)}),buildRequest:__name(({organizationId})=>({method:"GET",path:organizationId?`/management/organizations/${encodeURIComponent(organizationId)}/projects`:"/management/projects"}),"buildRequest")},"projects.get":{domain:"projects",summary:"Read one Fimo site the authenticated user can access.",accessScope:"read",effect:"read",inputSchema:z124.object({projectId:uuidSchema}).strict(),outputSchema:projectResponseSchema,buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"")}),"buildRequest")},"projects.create":{domain:"projects",summary:"Create a Fimo site in an organization. Pass starter to commit a runnable Fimo site template so sessions, preview and publish work immediately; use nextjs unless the user asks for another framework.",accessScope:"write",effect:"mutation",inputSchema:z124.object({organizationId:z124.string().min(1),displayName:z124.string().min(1).optional(),origin:z124.enum(["scratch","migration"]).optional(),starter:z124.enum(["nextjs","astro","react-router","vite","sveltekit"]).optional()}).strict(),outputSchema:projectResponseSchema,buildRequest:__name(({organizationId,displayName,origin,starter})=>({method:"POST",path:"/management/projects",body:withoutUndefined({organizationId,displayName,origin,starter,source:"cli"})}),"buildRequest")},"projects.transfer":{domain:"projects",summary:"Transfer one Fimo site to another organization.",accessScope:"write",effect:"mutation",inputSchema:z124.object({projectId:uuidSchema,targetOrganizationId:z124.string().min(1)}).strict(),outputSchema:transferResultSchema,buildRequest:__name(({projectId:projectId2,targetOrganizationId})=>({method:"POST",path:managementProjectPath(projectId2,"/transfer"),body:{targetOrganizationId},preserveForbidden:!0}),"buildRequest"),projectOutput:__name(body=>transferResultSchema.parse(responseData(body)),"projectOutput")},"projects.invite":{domain:"projects",summary:"Invite someone by email to collaborate on a Fimo site with full, edit, comment or view access. They receive an email and join the site's members when they accept.",accessScope:"write",effect:"mutation",inputSchema:z124.object({projectId:uuidSchema,email:z124.email(),role:z124.enum(["full","edit","comment","view"])}).strict(),outputSchema:z124.object({id:z124.string().min(1)}),buildRequest:__name(({projectId:projectId2,email,role})=>({method:"POST",path:managementProjectPath(projectId2,"/invites"),body:{email,roleKey:role}}),"buildRequest"),projectOutput:__name(body=>({id:z124.object({id:z124.string().min(1)}).parse(responseData(body)).id}),"projectOutput")},"projects.delete":{domain:"projects",summary:"Permanently delete a Fimo site.",accessScope:"write",effect:"mutation",inputSchema:z124.object({projectId:uuidSchema}).strict(),outputSchema:z124.unknown(),buildRequest:__name(({projectId:projectId2})=>({method:"DELETE",path:managementProjectPath(projectId2,""),body:{}}),"buildRequest")}}}});import{z as z125}from"zod";function projectBranchRecord2(value){let{env,...record}=value;return{...record,branch:env}}function projectSchedule(body){return scheduleSchema.parse(projectBranchRecord2(responseData(body)))}function projectRun(body){return runSchema.parse(projectBranchRecord2(responseData(body)))}function projectOverview(body){let value=responseData(body);return overviewSchema.parse({...value,items:value.items.map(projectBranchRecord2)})}function projectDetail2(body){let value=responseData(body);return detailSchema.parse({...value,schedule:projectBranchRecord2(value.schedule)})}function projectRunsPage(body){let value=responseData(body);return runsPageSchema.parse({...value,items:value.items.map(projectBranchRecord2)})}function projectRunDetail(body){return runDetailSchema.parse(projectBranchRecord2(responseData(body)))}var dateSchema,scheduleStatusSchema,runStatusSchema,scheduleSchema,usageSchema,policySchema,planSchema,runSchema,runDetailSchema,overviewSchema,detailSchema,runsPageSchema,scheduleWriteShape,scheduleContextShape,schedulesOperations,init_schedules=__esm({"../../packages/sdk/dist/operations/schedules.js"(){"use strict";init_common2();dateSchema=z125.iso.datetime(),scheduleStatusSchema=z125.enum(["ok","failed"]),runStatusSchema=z125.enum(["queued","running","succeeded","failed","skipped"]),scheduleSchema=z125.object({id:uuidSchema,createdAt:dateSchema,updatedAt:dateSchema,projectId:uuidSchema,branch:z125.string().min(1),name:z125.string().min(1),cron:z125.string().min(1),command:z125.string().min(1),secretKeys:z125.array(z125.string().min(1)),enabled:z125.boolean(),lastRunAt:dateSchema.nullable(),lastStatus:scheduleStatusSchema.nullable(),lastError:z125.string().nullable(),overPolicyReasons:z125.array(z125.string()).optional()}).passthrough(),usageSchema=z125.object({runCount:z125.number().int().nonnegative(),runsWithOutput:z125.number().int().nonnegative()}),policySchema=z125.object({maxRuns:z125.number().int().positive(),retentionDays:z125.number().int().positive().nullable(),outputRetentionDays:z125.number().int().positive(),maxOutputBytes:z125.number().int().positive()}).passthrough(),planSchema=z125.object({code:z125.enum(["Free","PAYG","Starter","Premium","Pro"]),source:z125.enum(["cached_subscription","free_fallback"]),activeSchedules:z125.object({used:z125.number().int().nonnegative(),limit:z125.number().int().positive()}),minCadenceMinutes:z125.number().int().positive(),maxRunMs:z125.number().int().positive(),concurrency:z125.object({used:z125.number().int().nonnegative(),limit:z125.number().int().positive()}),compute:z125.object({settledMs:z125.number().int().nonnegative(),activeMs:z125.number().int().nonnegative(),reservedMs:z125.number().int().nonnegative().optional(),includedMs:z125.number().int().positive(),remainingMs:z125.number().int().nonnegative(),resetsAt:dateSchema}),state:z125.enum(["ok","near_limit","exhausted","over_policy"]),overPolicyReasons:z125.array(z125.string())}).passthrough(),runSchema=z125.object({id:uuidSchema,scheduleId:uuidSchema,projectId:uuidSchema,branch:z125.string().min(1),scheduleName:z125.string().min(1),command:z125.string().min(1),status:runStatusSchema,trigger:z125.enum(["cron","ui","cli"]),triggeredBy:z125.object({id:z125.string().min(1),name:z125.string().min(1)}).nullable(),queuedAt:dateSchema,startedAt:dateSchema.nullable(),finishedAt:dateSchema.nullable(),exitCode:z125.number().int().nullable(),errorCode:z125.string().nullable(),error:z125.string().nullable(),outputBytes:z125.number().int().nonnegative(),outputTruncated:z125.boolean(),outputExpiresAt:dateSchema.nullable(),metadataExpiresAt:dateSchema.nullable()}).passthrough(),runDetailSchema=runSchema.extend({output:z125.string().nullable(),secretSnapshot:z125.object({state:z125.enum(["pending","resolved","failed"]),capturedAt:dateSchema.nullable(),items:z125.array(z125.object({key:z125.string().min(1),updatedAt:dateSchema.nullable(),resolution:z125.enum(["resolved","missing","deleted","recreated","rotated"])}))})}),overviewSchema=z125.object({items:z125.array(scheduleSchema),usage:usageSchema,policy:policySchema,plan:planSchema}),detailSchema=z125.object({schedule:scheduleSchema,usage:usageSchema,policy:policySchema,plan:planSchema}).passthrough(),runsPageSchema=z125.object({items:z125.array(runSchema),nextCursor:z125.string().nullable(),usage:usageSchema,policy:policySchema,plan:planSchema});__name(projectBranchRecord2,"projectBranchRecord");__name(projectSchedule,"projectSchedule");__name(projectRun,"projectRun");__name(projectOverview,"projectOverview");__name(projectDetail2,"projectDetail");__name(projectRunsPage,"projectRunsPage");__name(projectRunDetail,"projectRunDetail");scheduleWriteShape={name:z125.string().min(1).max(120),cron:z125.string().min(1).max(120),command:z125.string().min(1).max(500),secretKeys:z125.array(z125.string().min(1))},scheduleContextShape={projectId:uuidSchema,branch:branchNameSchema.optional()},schedulesOperations={"schedules.list":{domain:"schedules",summary:"List schedule records for one site Branch.",accessScope:"read",effect:"read",inputSchema:z125.object({...scheduleContextShape}).strict(),outputSchema:z125.array(scheduleSchema),buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",context:{branch},path:managementProjectPath(projectId2,"/schedules")}),"buildRequest"),projectOutput:__name(body=>z125.array(scheduleSchema).parse(responseData(body).map(projectBranchRecord2)),"projectOutput")},"schedules.overview":{domain:"schedules",summary:"Read schedules with usage and plan limits for one site Branch.",accessScope:"read",effect:"read",inputSchema:z125.object({...scheduleContextShape}).strict(),outputSchema:overviewSchema,buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",context:{branch},path:managementProjectPath(projectId2,"/schedules/overview")}),"buildRequest"),projectOutput:projectOverview},"schedules.get":{domain:"schedules",summary:"Read one schedule with usage and plan limits.",accessScope:"read",effect:"read",inputSchema:z125.object({...scheduleContextShape,scheduleId:uuidSchema}).strict(),outputSchema:detailSchema,buildRequest:__name(({projectId:projectId2,branch,scheduleId})=>({method:"GET",context:{branch},path:managementProjectPath(projectId2,`/schedules/${encodeURIComponent(scheduleId)}`)}),"buildRequest"),projectOutput:projectDetail2},"schedules.create":{domain:"schedules",summary:"Create a recurring command schedule for one site Branch.",accessScope:"agents",effect:"mutation",inputSchema:z125.object({...scheduleContextShape,...scheduleWriteShape,enabled:z125.boolean().optional()}).strict(),outputSchema:scheduleSchema,buildRequest:__name(({projectId:projectId2,branch,...body})=>({method:"POST",context:{branch},path:managementProjectPath(projectId2,"/schedules"),body}),"buildRequest"),projectOutput:projectSchedule},"schedules.update":{domain:"schedules",summary:"Update a recurring command schedule.",accessScope:"agents",effect:"mutation",inputSchema:z125.object({...scheduleContextShape,scheduleId:uuidSchema,name:scheduleWriteShape.name.optional(),cron:scheduleWriteShape.cron.optional(),command:scheduleWriteShape.command.optional(),secretKeys:scheduleWriteShape.secretKeys.optional()}).strict().refine(({projectId:_projectId,branch:_branch,scheduleId:_scheduleId,...update})=>Object.values(update).some(value=>value!==void 0),{message:"Pass at least one schedule field to update."}),outputSchema:scheduleSchema,buildRequest:__name(({projectId:projectId2,branch,scheduleId,...update})=>({method:"PATCH",context:{branch},path:managementProjectPath(projectId2,`/schedules/${encodeURIComponent(scheduleId)}`),body:withoutUndefined(update)}),"buildRequest"),projectOutput:projectSchedule},"schedules.setEnabled":{domain:"schedules",summary:"Pause or resume a recurring command schedule.",accessScope:"agents",effect:"mutation",inputSchema:z125.object({...scheduleContextShape,scheduleId:uuidSchema,enabled:z125.boolean()}).strict(),outputSchema:scheduleSchema,buildRequest:__name(({projectId:projectId2,branch,scheduleId,enabled})=>({method:"POST",context:{branch},path:managementProjectPath(projectId2,`/schedules/${encodeURIComponent(scheduleId)}/${enabled?"resume":"pause"}`)}),"buildRequest"),projectOutput:projectSchedule},"schedules.run":{domain:"schedules",summary:"Queue an immediate run of a site schedule.",accessScope:"agents",effect:"mutation",inputSchema:z125.object({...scheduleContextShape,scheduleId:uuidSchema}).strict(),outputSchema:runSchema,buildRequest:__name(({projectId:projectId2,branch,scheduleId})=>({method:"POST",context:{branch},path:managementProjectPath(projectId2,`/schedules/${encodeURIComponent(scheduleId)}/run`),body:{trigger:"cli"}}),"buildRequest"),projectOutput:projectRun},"schedules.listRuns":{domain:"schedules",summary:"List runs of one site schedule with cursor pagination.",accessScope:"read",effect:"read",inputSchema:z125.object({...scheduleContextShape,scheduleId:uuidSchema,limit:z125.number().int().min(1).max(100).optional(),cursor:paginationShape.cursor,status:runStatusSchema.optional()}).strict(),outputSchema:runsPageSchema,buildRequest:__name(({projectId:projectId2,branch,scheduleId,limit,cursor,status})=>({method:"GET",context:{branch},path:addQuery(managementProjectPath(projectId2,`/schedules/${encodeURIComponent(scheduleId)}/runs`),{limit,cursor,status})}),"buildRequest"),projectOutput:projectRunsPage},"schedules.getRun":{domain:"schedules",summary:"Read one schedule run and its captured output.",accessScope:"read",effect:"read",inputSchema:z125.object({...scheduleContextShape,runId:uuidSchema}).strict(),outputSchema:runDetailSchema,buildRequest:__name(({projectId:projectId2,branch,runId})=>({method:"GET",context:{branch},path:managementProjectPath(projectId2,`/schedules/runs/${encodeURIComponent(runId)}`)}),"buildRequest"),projectOutput:projectRunDetail},"schedules.delete":{domain:"schedules",summary:"Delete one site schedule.",accessScope:"agents",effect:"mutation",inputSchema:z125.object({...scheduleContextShape,scheduleId:uuidSchema}).strict(),outputSchema:z125.object({ok:z125.literal(!0)}),buildRequest:__name(({projectId:projectId2,branch,scheduleId})=>({method:"DELETE",context:{branch},path:managementProjectPath(projectId2,`/schedules/${encodeURIComponent(scheduleId)}`)}),"buildRequest"),projectOutput:__name(body=>z125.object({ok:z125.literal(!0)}).parse(responseData(body)),"projectOutput")}}}});import{z as z126}from"zod";function projectSchemaDefinition(body){return z126.object({data:contentTypeSchema}).parse(body).data}var contentTypeSchema,schemaListOutputSchema,schemaMutationOutputSchema,schemaDefinitionInputSchema,schemasOperations,init_schemas=__esm({"../../packages/sdk/dist/operations/schemas.js"(){"use strict";init_common2();contentTypeSchema=z126.object({id:z126.string(),name:z126.string(),label:z126.string(),isSingleton:z126.boolean(),slugUnique:z126.boolean(),i18n:z126.record(z126.string(),z126.unknown()),groups:z126.array(z126.record(z126.string(),z126.unknown())),fields:z126.record(z126.string(),z126.unknown()),createdAt:z126.string(),updatedAt:z126.string()}).passthrough(),schemaListOutputSchema=z126.object({contentTypes:z126.array(contentTypeSchema)}),schemaMutationOutputSchema=sessionEnvelopeSchema.extend({schema:z126.object({typeName:z126.string().min(1).max(255),generatedPaths:z126.array(z126.string().min(1)).max(1e3),tip:z126.string().min(1)})}),schemaDefinitionInputSchema=z126.record(z126.string(),z126.unknown());__name(projectSchemaDefinition,"projectSchemaDefinition");schemasOperations={"schemas.list":{domain:"schemas",summary:"List content schemas on a durable Branch.",accessScope:"read",effect:"read",inputSchema:z126.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:schemaListOutputSchema,buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",path:tenantPath(projectId2,branch,"/schema")}),"buildRequest")},"schemas.get":{domain:"schemas",summary:"Get one complete content schema from a durable Branch.",accessScope:"read",effect:"read",inputSchema:z126.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z126.string().min(1).max(255)}).strict(),outputSchema:contentTypeSchema,buildRequest:__name(({projectId:projectId2,branch,typeName})=>({method:"GET",path:tenantPath(projectId2,branch,`/schema/types/${encodeURIComponent(typeName)}`)}),"buildRequest"),projectOutput:projectSchemaDefinition},"schemas.upsertBatch":{domain:"schemas",summary:"Atomically create or update a batch of content schemas on a Fimo Branch.",accessScope:"code",effect:"mutation",inputSchema:z126.object({projectId:uuidSchema,branch:branchNameSchema,contentTypes:z126.array(schemaDefinitionInputSchema).min(1).max(100),operations:z126.array(z126.record(z126.string(),z126.unknown())).optional()}).strict(),outputSchema:z126.array(z126.unknown()),buildRequest:__name(({projectId:projectId2,branch,contentTypes,operations})=>({method:"POST",path:tenantPath(projectId2,branch,"/schema/batch"),body:withoutUndefined({contentTypes,operations:operations?.length?operations:void 0})}),"buildRequest"),projectOutput:__name(body=>z126.object({data:z126.array(z126.unknown())}).parse(body).data,"projectOutput")},"schemas.deleteFromBranch":{domain:"schemas",summary:"Delete a content schema directly from a Fimo Branch.",accessScope:"code",effect:"mutation",inputSchema:z126.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z126.string().min(1).max(255)}).strict(),outputSchema:z126.unknown(),buildRequest:__name(({projectId:projectId2,branch,typeName})=>({method:"DELETE",path:tenantPath(projectId2,branch,`/schema/types/${encodeURIComponent(typeName)}`)}),"buildRequest"),projectOutput:__name(body=>z126.object({data:z126.unknown()}).parse(body).data,"projectOutput")},"schemas.create":{domain:"schemas",summary:"Create a content schema inside an owned work session.",accessScope:"code",effect:"mutation",inputSchema:z126.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z126.string().min(1).max(255),definition:schemaDefinitionInputSchema}).strict(),outputSchema:schemaMutationOutputSchema,buildRequest:__name(({projectId:projectId2,sessionId,typeName,definition})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/schema`),body:{kind:"create",typeName,definition}}),"buildRequest")},"schemas.update":{domain:"schemas",summary:"Update a content schema inside an owned work session.",accessScope:"code",effect:"mutation",inputSchema:z126.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z126.string().min(1).max(255),definition:schemaDefinitionInputSchema,renameFrom:z126.string().max(255).optional()}).strict(),outputSchema:schemaMutationOutputSchema,buildRequest:__name(({projectId:projectId2,sessionId,typeName,definition,renameFrom})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/schema`),body:withoutUndefined({kind:"update",typeName,definition,renameFrom})}),"buildRequest")},"schemas.delete":{domain:"schemas",summary:"Delete a content schema inside an owned work session.",accessScope:"code",effect:"mutation",inputSchema:z126.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z126.string().min(1).max(255)}).strict(),outputSchema:schemaMutationOutputSchema,buildRequest:__name(({projectId:projectId2,sessionId,typeName})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/schema`),body:{kind:"delete",typeName}}),"buildRequest")}}}});import{z as z127}from"zod";var environmentSchema2,secretKindSchema,projectSecretSchema,secretWriteInputSchema,secretsOperations,init_secrets=__esm({"../../packages/sdk/dist/operations/secrets.js"(){"use strict";init_common2();environmentSchema2=z127.union([z127.literal("production"),z127.literal("preview"),uuidSchema]),secretKindSchema=z127.enum(["variable","secret"]),projectSecretSchema=z127.object({id:z127.string().min(1),projectId:z127.string().min(1),key:z127.string().min(1),kind:secretKindSchema,exposure:z127.enum(["public","private"]),environment:environmentSchema2,value:z127.string().optional(),maskedValue:z127.string().optional(),createdAt:z127.string(),updatedAt:z127.string()}),secretWriteInputSchema=z127.object({projectId:uuidSchema,key:z127.string().min(1).max(255),kind:secretKindSchema,value:z127.string(),environment:environmentSchema2}),secretsOperations={"secrets.list":{domain:"secrets",summary:"List public variables or masked secrets for one site Environment.",accessScope:"read",effect:"read",inputSchema:z127.object({projectId:uuidSchema,environment:environmentSchema2,kind:secretKindSchema.optional()}).strict(),outputSchema:z127.array(projectSecretSchema),buildRequest:__name(({projectId:projectId2,environment,kind})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,"/secrets"),{environment,kind})}),"buildRequest"),projectOutput:__name(body=>z127.array(projectSecretSchema).parse(responseData(body)),"projectOutput")},"secrets.create":{domain:"secrets",summary:"Create a public variable, private variable, or secret for one site Environment.",accessScope:"write",effect:"mutation",inputSchema:secretWriteInputSchema.extend({exposure:z127.enum(["public","private"]).optional()}).strict(),outputSchema:projectSecretSchema,buildRequest:__name(({projectId:projectId2,...body})=>({method:"POST",path:managementProjectPath(projectId2,"/secrets"),body}),"buildRequest"),projectOutput:__name(body=>projectSecretSchema.parse(responseData(body)),"projectOutput")},"secrets.update":{domain:"secrets",summary:"Update a public variable or secret for one site Environment.",accessScope:"write",effect:"mutation",inputSchema:secretWriteInputSchema.strict(),outputSchema:projectSecretSchema,buildRequest:__name(({projectId:projectId2,key,...body})=>({method:"PATCH",path:managementProjectPath(projectId2,`/secrets/${encodeURIComponent(key)}`),body}),"buildRequest"),projectOutput:__name(body=>projectSecretSchema.parse(responseData(body)),"projectOutput")},"secrets.delete":{domain:"secrets",summary:"Delete a public variable or secret from one site Environment.",accessScope:"write",effect:"mutation",inputSchema:z127.object({projectId:uuidSchema,key:z127.string().min(1),kind:secretKindSchema,environment:environmentSchema2}).strict(),outputSchema:z127.unknown(),buildRequest:__name(({projectId:projectId2,key,kind,environment})=>({method:"DELETE",path:addQuery(managementProjectPath(projectId2,`/secrets/${encodeURIComponent(key)}`),{kind,environment})}),"buildRequest")},"environments.resolve":{domain:"environments",summary:"Resolve which compatibility Environment receives one site Branch.",accessScope:"read",effect:"read",inputSchema:z127.object({projectId:uuidSchema,branch:z127.string().min(1)}).strict(),outputSchema:z127.object({branch:z127.string().min(1),environment:environmentSchema2}),buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,"/branches"),{includeAgentEnvs:!0})}),"buildRequest"),projectOutput:__name((body,input)=>{let branches=z127.array(z127.object({branch:z127.string().optional(),env:z127.string().optional(),parentBranch:z127.string().nullable().optional(),parentEnv:z127.string().nullable().optional(),resolvedEnvironment:z127.object({id:environmentSchema2}).nullable().optional()}).passthrough()).parse(responseData(body)),current=branches.find(candidate=>(candidate.branch??candidate.env)===input.branch),visited=new Set;for(;current;){let name=current.branch??current.env;if(!name||visited.has(name))break;if(visited.add(name),current.resolvedEnvironment)return{branch:input.branch,environment:current.resolvedEnvironment.id};let parent=current.parentBranch??current.parentEnv;current=parent?branches.find(candidate=>(candidate.branch??candidate.env)===parent):void 0}return{branch:input.branch,environment:"preview"}},"projectOutput")}}}});import{z as z128}from"zod";function projectConflictSurface(conflict){let value=recordValue(conflict,"Expected a session conflict object.");return{...value,surface:value.surface==="translations"?"labels":value.surface}}function projectSessionChanges(body){let value=recordValue(body,"Expected a session changes response."),changes=recordValue(value.changes,"Expected session changes.");if(!Array.isArray(changes.surfaces))throw new Error("Expected session change surfaces.");return{...value,changes:{...changes,surfaces:changes.surfaces.map(projectConflictSurface),...Array.isArray(changes.crossSurface)?{crossSurface:changes.crossSurface.map(finding=>{let parsed=backendCrossSurfaceFindingSchema.parse(finding);return projectCrossSurfaceFinding(parsed)})}:{}}}}function projectSessionConflicts(body){let value=recordValue(body,"Expected a session conflict response.");return Array.isArray(value.conflicts)?{...value,conflicts:value.conflicts.map(projectConflictSurface)}:value}function backendConflictResolutions(resolutions){return resolutions.map(resolution=>({...resolution,surface:resolution.surface==="labels"?"translations":resolution.surface}))}var sessionValidationSchema,sessionConflictSummarySchema,surfaceDeltaItemSchema,perSurfaceDeltaSchema,sessionChangesSchema,projectScriptStatusSchema,sessionOperationResultSchema,conflictSchema2,codeConflictBlobSchema2,codeConflictDetailSchema,resolutionChoiceSchema,conflictResolutionSchema2,sessionsOperations,init_sessions=__esm({"../../packages/sdk/dist/operations/sessions.js"(){"use strict";init_branches();init_common2();__name(projectConflictSurface,"projectConflictSurface");__name(projectSessionChanges,"projectSessionChanges");__name(projectSessionConflicts,"projectSessionConflicts");__name(backendConflictResolutions,"backendConflictResolutions");sessionValidationSchema=z128.object({status:z128.literal("passed")}).passthrough(),sessionConflictSummarySchema=z128.object({surface:surfaceNameSchema,key:z128.string().min(1),kind:z128.string().optional(),description:z128.string(),path:z128.string().optional()}).passthrough(),surfaceDeltaItemSchema=z128.object({verb:z128.enum(["added","removed","changed","conflict"]),key:z128.string(),detail:z128.string().optional(),origin:z128.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z128.record(z128.string(),z128.unknown()).optional()}).passthrough(),perSurfaceDeltaSchema=z128.object({surface:surfaceNameSchema,status:z128.enum(["ok","timed_out","failed","unchanged"]),durationMs:z128.number().int().nonnegative().optional(),changedCount:z128.number().int().nonnegative(),conflictCount:z128.number().int().nonnegative(),items:z128.array(surfaceDeltaItemSchema).max(1e3).optional(),truncated:z128.boolean().optional(),error:z128.string().optional()}).passthrough(),sessionChangesSchema=z128.object({fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),generatedAt:z128.iso.datetime(),surfaces:z128.array(perSurfaceDeltaSchema),crossSurface:z128.array(crossSurfaceFindingSchema).optional(),fingerprint:z128.string()}).passthrough(),projectScriptStatusSchema=z128.enum(["passed","failed","unavailable"]),sessionOperationResultSchema=z128.discriminatedUnion("operation",[z128.object({operation:z128.literal("dependencies_install"),repairedInstallPolicy:z128.boolean(),tip:z128.string()}),z128.object({operation:z128.literal("schemas_sync"),tip:z128.string()}),z128.object({operation:z128.literal("typecheck"),status:projectScriptStatusSchema,output:z128.string()}),z128.object({operation:z128.literal("lint"),status:projectScriptStatusSchema,output:z128.string()})]),conflictSchema2=z128.object({surface:surfaceNameSchema,key:z128.string(),kind:z128.enum(["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"]).optional(),description:z128.string(),parentValue:z128.unknown().optional(),childValue:z128.unknown().optional(),conflictingFields:z128.array(z128.string()).optional(),code:z128.object({path:z128.string(),unresolvable:z128.boolean().optional(),reason:z128.string().optional(),targetCommits:z128.array(z128.object({sha:z128.string(),subject:z128.string(),body:z128.string().optional(),author:z128.string(),date:z128.string()})).optional()}).optional()}).passthrough(),codeConflictBlobSchema2=z128.object({oid:z128.string().optional(),content:z128.string().optional(),truncated:z128.boolean(),binary:z128.boolean()}),codeConflictDetailSchema=z128.object({path:z128.string(),base:codeConflictBlobSchema2,ours:codeConflictBlobSchema2,theirs:codeConflictBlobSchema2,result:codeConflictBlobSchema2,sourceTipSha:z128.string(),targetTipSha:z128.string(),mergeBaseSha:z128.string().optional()}),resolutionChoiceSchema=z128.enum(["parent","child","pick"]),conflictResolutionSchema2=z128.object({surface:surfaceNameSchema,key:z128.string().min(1),choice:resolutionChoiceSchema,pickedValue:z128.unknown().optional(),fieldPicks:z128.array(z128.object({field:z128.string().min(1),choice:resolutionChoiceSchema,pickedValue:z128.unknown().optional()})).optional()}).superRefine((resolution,context)=>{resolution.choice==="pick"&&resolution.pickedValue===void 0&&!resolution.fieldPicks?.length&&context.addIssue({code:"custom",message:"Pass pickedValue when choice is 'pick'.",path:["pickedValue"]}),resolution.fieldPicks?.forEach((fieldPick,index)=>{fieldPick.choice==="pick"&&fieldPick.pickedValue===void 0&&context.addIssue({code:"custom",message:"Pass pickedValue when choice is 'pick'.",path:["fieldPicks",index,"pickedValue"]})})}),sessionsOperations={"sessions.start":{domain:"sessions",summary:"Start an isolated work session. At capacity, Fimo cleans expired/leaked work, then the oldest inactive temporary work before refusing. Temporary expiry is a maximum lifetime, not guaranteed retention. Inspect your sessions and close unused work; durable work and active operations are not pressure-reclaimed.",accessScope:"code",effect:"mutation",inputSchema:z128.object({projectId:uuidSchema,targetBranch:branchNameSchema.optional(),name:z128.string().trim().min(1).max(120).optional(),goal:z128.string().trim().min(1).max(500).optional()}).strict(),outputSchema:z128.object({session:sessionEnvelopeSchema,adopted:z128.boolean()}),buildRequest:__name(({projectId:projectId2,targetBranch,name,goal})=>({method:"POST",path:managementProjectPath(projectId2,"/sessions"),body:withoutUndefined({targetBranch,name,goal})}),"buildRequest")},"sessions.get":{domain:"sessions",summary:"Get one owned Fimo work session for lifecycle recovery.",accessScope:"code",effect:"read",inputSchema:z128.object({projectId:uuidSchema,sessionId:uuidSchema}).strict(),outputSchema:sessionEnvelopeSchema,buildRequest:__name(({projectId:projectId2,sessionId})=>({method:"GET",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}`)}),"buildRequest")},"sessions.list":{domain:"sessions",summary:"Discover work sessions. Defaults to mine; project lists authorized work within the connection's client boundary.",accessScope:"code",effect:"read",inputSchema:z128.object({projectId:uuidSchema,status:sessionStatusSchema.optional(),scope:z128.enum(["mine","project"]).optional(),cursor:paginationShape.cursor,limit:z128.number().int().min(1).max(100).optional()}).strict(),outputSchema:z128.object({items:z128.array(sessionEnvelopeSchema),nextCursor:z128.string().nullable()}),buildRequest:__name(({projectId:projectId2,status,cursor,limit,scope:scope2})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,"/sessions"),{status,cursor,limit,scope:scope2})}),"buildRequest")},"sessions.changes":{domain:"sessions",summary:"Review bounded changes in an owned work session before closing it.",accessScope:"code",effect:"read",inputSchema:z128.object({projectId:uuidSchema,sessionId:uuidSchema,detail:z128.boolean().optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({changes:sessionChangesSchema}),buildRequest:__name(({projectId:projectId2,sessionId,detail})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/changes`),{detail})}),"buildRequest"),projectOutput:projectSessionChanges},"sessions.requestReview":{domain:"sessions",summary:"Save current work in one owned session and request human review. Keeps that same session visible and durable, with no expiry. Returns the saved revision and secure review URL. Does not merge, publish or finish a run. Retry unchanged work to reuse its review.",accessScope:"code",effect:"mutation",inputSchema:z128.object({projectId:uuidSchema,sessionId:uuidSchema,summary:z128.string().trim().min(1).max(240),targetBranch:branchNameSchema.optional()}).strict(),outputSchema:z128.object({requested:z128.literal(!0),alreadyRequested:z128.boolean(),reviewId:uuidSchema,reviewUrl:z128.url(),status:z128.literal("pending"),sessionId:uuidSchema,branch:branchNameSchema,targetBranch:branchNameSchema,revision:z128.string().min(1),savedRevision:z128.string().min(1),fingerprint:z128.string().min(1),visibility:z128.literal("user-visible"),retention:z128.literal("durable"),expiresAt:z128.null(),merged:z128.literal(!1),published:z128.literal(!1),links:z128.object({preview:z128.url(),changes:z128.url(),conversation:z128.url().nullable()})}),buildRequest:__name(({projectId:projectId2,sessionId,summary:summary2,targetBranch})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/review`),body:withoutUndefined({summary:summary2,targetBranch})}),"buildRequest")},"sessions.setRetention":{domain:"sessions",summary:"Add exactly 1\u201330 whole days to the current expiry of temporary work. Repeat for more time; each request is bounded to that range, not the total. Returns actual expiry. Rejects unchanged with invalid_session_retention when the work is not temporary or has no deadline. Does not save, show, merge or publish; eligible early capacity cleanup still applies.",accessScope:"code",effect:"mutation",inputSchema:z128.object({projectId:uuidSchema,sessionId:uuidSchema,additionalDays:z128.number().int().min(1).max(30)}).strict(),outputSchema:sessionEnvelopeSchema.extend({retention:z128.literal("temporary"),visibility:z128.enum(["internal","user-visible"]),expiresAt:z128.iso.datetime()}),buildRequest:__name(({projectId:projectId2,sessionId,additionalDays})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/retention`),body:{additionalDays}}),"buildRequest")},"sessions.validate":{domain:"sessions",summary:"Run site validation inside an owned Fimo work session and wait for its terminal result.",accessScope:"code",effect:"mutation",inputSchema:z128.object({projectId:uuidSchema,sessionId:uuidSchema}).strict(),outputSchema:sessionEnvelopeSchema.extend({validation:sessionValidationSchema}),buildRequest:__name(({projectId:projectId2,sessionId})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/validate`)}),"buildRequest")},"sessions.runOperation":{domain:"sessions",summary:"Run an approved sandbox operation in an owned work session: 'dependencies_install', 'schemas_sync', or the project's own 'typecheck' or 'lint' script, which report their output without saving.",accessScope:"code",effect:"mutation",inputSchema:z128.object({projectId:uuidSchema,sessionId:uuidSchema,operation:z128.string().min(1).max(100),args:z128.record(z128.string(),z128.unknown()).optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({operation:sessionOperationResultSchema}),buildRequest:__name(({projectId:projectId2,sessionId,operation,args})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/operations`),body:args===void 0?{operation}:{operation,args}}),"buildRequest")},"sessions.close":{domain:"sessions",summary:"Merge or discard an owned Fimo work session.",accessScope:"code",effect:"mutation",inputSchema:z128.object({projectId:uuidSchema,sessionId:uuidSchema,action:z128.enum(["merge","discard"]),message:z128.string().max(1e3).optional(),description:z128.string().max(2e3).optional().describe("Why the work changed. Becomes the body of the merge commit.")}).strict(),outputSchema:sessionEnvelopeSchema.extend({outcome:z128.enum(["merged","no_changes","discarded","conflicts","failed"]),closed:z128.boolean(),mergeId:uuidSchema.optional(),conflictCount:z128.number().int().nonnegative().optional(),conflicts:z128.array(sessionConflictSummarySchema).optional(),parentAdvanced:z128.boolean().optional(),code:z128.string().optional(),summary:z128.string().nullable().optional()}),buildRequest:__name(({projectId:projectId2,sessionId,action,message,description})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/close`),body:withoutUndefined({action,message,description})}),"buildRequest"),projectOutput:projectSessionConflicts},"sessions.conflicts":{domain:"sessions",summary:"Inspect one cursor-paginated parked session merge and optionally hydrate one code conflict.",accessScope:"code",effect:"read",inputSchema:z128.object({projectId:uuidSchema,sessionId:uuidSchema,mergeId:uuidSchema.optional(),cursor:paginationShape.cursor,limit:z128.number().int().min(1).max(100).optional(),codePath:z128.string().min(1).max(1024).optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({merge:z128.object({mergeId:uuidSchema,fromBranch:branchNameSchema,toBranch:branchNameSchema,status:z128.enum(["in_progress","complete","failed","rolled_back","conflicts"]),conflictCount:z128.number().int().nonnegative(),error:z128.string().nullable()}),conflicts:z128.array(conflictSchema2).max(100),nextCursor:z128.string().nullable(),codeDetail:codeConflictDetailSchema.nullable().optional()}),buildRequest:__name(({projectId:projectId2,sessionId,mergeId,cursor,limit,codePath})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/conflicts`),{mergeId,cursor,limit,codePath})}),"buildRequest"),projectOutput:projectSessionConflicts},"sessions.resolve":{domain:"sessions",summary:"Resolve a parked session merge and start its successor merge.",accessScope:"code",effect:"mutation",inputSchema:z128.object({projectId:uuidSchema,sessionId:uuidSchema,mergeId:uuidSchema,resolutions:z128.array(conflictResolutionSchema2).min(1).max(500)}).strict(),outputSchema:sessionEnvelopeSchema.extend({outcome:z128.literal("resolving"),mergeId:uuidSchema,supersededMergeId:uuidSchema,strategy:resolvedMergeStrategySchema,acceptedAt:z128.iso.datetime()}),buildRequest:__name(({projectId:projectId2,sessionId,mergeId,resolutions})=>({method:"POST",path:managementProjectPath(projectId2,`/sessions/${encodeURIComponent(sessionId)}/resolve`),body:{mergeId,resolutions:backendConflictResolutions(resolutions)}}),"buildRequest")}}}});import{z as z129}from"zod";var singlesOperations,init_singles=__esm({"../../packages/sdk/dist/operations/singles.js"(){"use strict";init_common2();init_entries();singlesOperations={"singles.get":{domain:"singles",summary:"Read the document-scoped value of a Single content type.",accessScope:"read",effect:"read",inputSchema:z129.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,locale:localeSchema.optional(),populate:populateSchema}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId:projectId2,branch,typeName,locale,populate})=>({method:"GET",path:addQuery(tenantPath(projectId2,branch,`/documents/${encodeURIComponent(typeName)}`),{locale,populate})}),"buildRequest")},"singles.update":{domain:"singles",summary:"Update the document-scoped value of a Single content type.",accessScope:"write",effect:"mutation",inputSchema:z129.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,data:entryDataSchema,locale:localeSchema.optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId:projectId2,branch,typeName,data,locale})=>({method:"PUT",path:addQuery(tenantPath(projectId2,branch,`/documents/${encodeURIComponent(typeName)}`),{locale}),body:{data}}),"buildRequest")}}}});import{z as z130}from"zod";var supportReportInputSchema,supportReportResultSchema,supportOperations,init_support2=__esm({"../../packages/sdk/dist/operations/support.js"(){"use strict";init_common2();supportReportInputSchema=z130.object({message:z130.string().trim().min(1).max(2e4),projectId:uuidSchema.optional(),branch:branchNameSchema.optional()}).strict().superRefine((input,context)=>{input.branch!==void 0&&input.projectId===void 0&&context.addIssue({code:"custom",message:"Pass projectId when providing branch.",path:["projectId"]})}),supportReportResultSchema=z130.object({id:uuidSchema,deliveryStatus:z130.enum(["pending","delivered","failed"]),message:z130.string()}),supportOperations={"support.report":{domain:"support",summary:"Submit an approved report to Fimo support immediately. Call only when the user explicitly asks to contact support or approves the exact report.",accessScope:"write",effect:"mutation",inputSchema:supportReportInputSchema,outputSchema:z130.object({data:supportReportResultSchema}),buildRequest:__name(({message,projectId:projectId2,branch})=>({method:"POST",path:"/support/issues/agent",body:withoutUndefined({message,projectId:projectId2,branch})}),"buildRequest")}}}});import{z as z131}from"zod";var jsonObjectSchema,deliveryStatusSchema,webhookSchema,deliverySchema,attemptSchema,deliveriesPageSchema,eventSchema,webhookWriteSchema,webhooksOperations,init_webhooks=__esm({"../../packages/sdk/dist/operations/webhooks.js"(){"use strict";init_common2();jsonObjectSchema=z131.record(z131.string(),z131.unknown()),deliveryStatusSchema=z131.enum(["pending","delivering","retrying","succeeded","failed"]),webhookSchema=z131.object({id:uuidSchema,projectId:uuidSchema,name:z131.string(),eventType:z131.string().min(1),enabled:z131.boolean(),destination:z131.object({host:z131.string(),maskedUrl:z131.string(),kind:z131.string()}),filter:jsonObjectSchema,headers:z131.array(jsonObjectSchema),bodyTemplate:z131.unknown().nullable(),signingEnabled:z131.boolean(),lastDeliveryStatus:deliveryStatusSchema.nullable()}).passthrough(),deliverySchema=z131.object({id:uuidSchema,webhookId:uuidSchema,projectId:uuidSchema,eventType:z131.string().min(1),status:deliveryStatusSchema,attemptCount:z131.number().int().nonnegative(),responseStatus:z131.number().int().nullable(),createdAt:z131.iso.datetime()}).passthrough(),attemptSchema=z131.object({id:uuidSchema,deliveryId:uuidSchema,attempt:z131.number().int().positive(),status:z131.enum(["delivering","succeeded","failed"]),createdAt:z131.iso.datetime()}).passthrough(),deliveriesPageSchema=z131.object({items:z131.array(deliverySchema),pagination:z131.object({page:z131.number().int().positive(),limit:z131.number().int().positive(),total:z131.number().int().nonnegative(),totalPages:z131.number().int().positive(),hasMore:z131.boolean()}),stats:z131.object({total:z131.number().int().nonnegative(),succeeded:z131.number().int().nonnegative(),failed:z131.number().int().nonnegative()})}),eventSchema=z131.object({type:z131.string().min(1),family:z131.string(),description:z131.string(),variables:z131.array(z131.string()),data:z131.unknown().optional()}).passthrough(),webhookWriteSchema=jsonObjectSchema,webhooksOperations={"webhooks.events":{domain:"webhooks",summary:"List the webhook event catalog available to one site.",accessScope:"read",effect:"read",inputSchema:z131.object({projectId:uuidSchema}).strict(),outputSchema:z131.array(eventSchema),buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/webhooks/events")}),"buildRequest"),projectOutput:__name(body=>z131.array(eventSchema).parse(responseData(body)),"projectOutput")},"webhooks.list":{domain:"webhooks",summary:"List outbound webhooks configured for one site.",accessScope:"read",effect:"read",inputSchema:z131.object({projectId:uuidSchema}).strict(),outputSchema:z131.array(webhookSchema),buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/webhooks")}),"buildRequest"),projectOutput:__name(body=>z131.array(webhookSchema).parse(responseData(body)),"projectOutput")},"webhooks.get":{domain:"webhooks",summary:"Read one outbound site webhook.",accessScope:"read",effect:"read",inputSchema:z131.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:webhookSchema,buildRequest:__name(({projectId:projectId2,webhookId})=>({method:"GET",path:managementProjectPath(projectId2,`/webhooks/${encodeURIComponent(webhookId)}`)}),"buildRequest"),projectOutput:__name(body=>webhookSchema.parse(responseData(body)),"projectOutput")},"webhooks.create":{domain:"webhooks",summary:"Create an outbound site webhook.",accessScope:"write",effect:"mutation",inputSchema:z131.object({projectId:uuidSchema,webhook:webhookWriteSchema}).strict(),outputSchema:z131.object({webhook:webhookSchema,signingSecret:z131.string().min(1)}),buildRequest:__name(({projectId:projectId2,webhook})=>({method:"POST",path:managementProjectPath(projectId2,"/webhooks"),body:webhook}),"buildRequest"),projectOutput:__name(body=>z131.object({webhook:webhookSchema,signingSecret:z131.string().min(1)}).parse(responseData(body)),"projectOutput")},"webhooks.update":{domain:"webhooks",summary:"Update one outbound site webhook.",accessScope:"write",effect:"mutation",inputSchema:z131.object({projectId:uuidSchema,webhookId:uuidSchema,webhook:webhookWriteSchema}).strict(),outputSchema:webhookSchema,buildRequest:__name(({projectId:projectId2,webhookId,webhook})=>({method:"PATCH",path:managementProjectPath(projectId2,`/webhooks/${encodeURIComponent(webhookId)}`),body:webhook}),"buildRequest"),projectOutput:__name(body=>webhookSchema.parse(responseData(body)),"projectOutput")},"webhooks.delete":{domain:"webhooks",summary:"Delete one outbound site webhook.",accessScope:"write",effect:"mutation",inputSchema:z131.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:z131.unknown(),buildRequest:__name(({projectId:projectId2,webhookId})=>({method:"DELETE",path:managementProjectPath(projectId2,`/webhooks/${encodeURIComponent(webhookId)}`)}),"buildRequest")},"webhooks.rotateSecret":{domain:"webhooks",summary:"Rotate and reveal the signing secret for one site webhook.",accessScope:"write",effect:"mutation",inputSchema:z131.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:z131.string().min(1),buildRequest:__name(({projectId:projectId2,webhookId})=>({method:"POST",path:managementProjectPath(projectId2,`/webhooks/${encodeURIComponent(webhookId)}/rotate-signing-secret`)}),"buildRequest"),projectOutput:__name(body=>z131.object({signingSecret:z131.string().min(1)}).parse(responseData(body)).signingSecret,"projectOutput")},"webhooks.test":{domain:"webhooks",summary:"Queue a test delivery for one site webhook.",accessScope:"write",effect:"mutation",inputSchema:z131.object({projectId:uuidSchema,webhookId:uuidSchema,data:jsonObjectSchema.optional()}).strict(),outputSchema:deliverySchema,buildRequest:__name(({projectId:projectId2,webhookId,data})=>({method:"POST",path:managementProjectPath(projectId2,`/webhooks/${encodeURIComponent(webhookId)}/test`),body:data===void 0?{}:{data}}),"buildRequest"),projectOutput:__name(body=>deliverySchema.parse(responseData(body)),"projectOutput")},"webhooks.listDeliveries":{domain:"webhooks",summary:"List webhook delivery history with cursor pagination; legacy page input remains supported.",accessScope:"read",effect:"read",inputSchema:z131.object({projectId:uuidSchema,webhookId:uuidSchema,...numberedPaginationShape,limit:z131.number().int().min(1).max(100).optional()}).strict().superRefine(numberedPaginationRefinement),outputSchema:deliveriesPageSchema.extend({nextCursor:z131.string().nullable()}),buildRequest:__name(({projectId:projectId2,webhookId,page,cursor,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,`/webhooks/${encodeURIComponent(webhookId)}/deliveries`),{page:paginationPage({page,cursor}),limit})}),"buildRequest"),projectOutput:__name(body=>{let result=deliveriesPageSchema.parse(responseData(body));return{...result,nextCursor:result.pagination.hasMore?String(result.pagination.page+1):null}},"projectOutput")},"webhooks.getDelivery":{domain:"webhooks",summary:"Read one webhook delivery and all of its attempts.",accessScope:"read",effect:"read",inputSchema:z131.object({projectId:uuidSchema,webhookId:uuidSchema,deliveryId:uuidSchema}).strict(),outputSchema:z131.object({delivery:deliverySchema,attempts:z131.array(attemptSchema)}),buildRequest:__name(({projectId:projectId2,webhookId,deliveryId})=>({method:"GET",path:managementProjectPath(projectId2,`/webhooks/${encodeURIComponent(webhookId)}/deliveries/${encodeURIComponent(deliveryId)}`)}),"buildRequest"),projectOutput:__name(body=>z131.object({delivery:deliverySchema,attempts:z131.array(attemptSchema)}).parse(responseData(body)),"projectOutput")},"webhooks.retryDelivery":{domain:"webhooks",summary:"Retry one failed webhook delivery.",accessScope:"write",effect:"mutation",inputSchema:z131.object({projectId:uuidSchema,webhookId:uuidSchema,deliveryId:uuidSchema}).strict(),outputSchema:deliverySchema,buildRequest:__name(({projectId:projectId2,webhookId,deliveryId})=>({method:"POST",path:managementProjectPath(projectId2,`/webhooks/${encodeURIComponent(webhookId)}/deliveries/${encodeURIComponent(deliveryId)}/retry`)}),"buildRequest"),projectOutput:__name(body=>deliverySchema.parse(responseData(body)),"projectOutput")}}}});import{z as z132}from"zod";var fimoOperations,fimoOperationManifestEntrySchema,fimoOperationManifestSchema,fimoOperationManifest,init_operations=__esm({"../../packages/sdk/dist/operations.js"(){"use strict";init_agents();init_analytics();init_assets();init_billing2();init_branches();init_domains();init_entries();init_environments();init_files();init_forms();init_generation();init_history();init_hosting();init_integrations();init_knowledge();init_labels();init_locales();init_organizations();init_projects();init_schedules();init_schemas();init_secrets();init_sessions();init_singles();init_support2();init_webhooks();fimoOperations={...projectsOperations,...organizationsOperations,...domainsOperations,...generationOperations,...historyOperations,...environmentsOperations,...secretsOperations,...schedulesOperations,...webhooksOperations,...branchesOperations,...schemasOperations,...supportOperations,...sessionsOperations,...entriesOperations,...singlesOperations,...knowledgeOperations,...agentsOperations,...labelsOperations,...localesOperations,...assetsOperations,...formsOperations,...hostingOperations,...analyticsOperations,...integrationsOperations,...filesOperations,...billingOperations},fimoOperationManifestEntrySchema=z132.object({id:z132.string().regex(/^[a-zA-Z_$][\w$]*\.[a-zA-Z_$][\w$]*$/),domain:z132.string().min(1),summary:z132.string().min(1),accessScope:z132.enum(["read","write","code","agents"]),effect:z132.enum(["read","mutation"]),inputJsonSchema:z132.record(z132.string(),z132.unknown()),outputJsonSchema:z132.record(z132.string(),z132.unknown())}).strict(),fimoOperationManifestSchema=z132.array(fimoOperationManifestEntrySchema),fimoOperationManifest=Object.entries(fimoOperations).map(([id,operation])=>({id,domain:operation.domain,summary:operation.summary,accessScope:operation.accessScope,effect:operation.effect,inputJsonSchema:z132.toJSONSchema(operation.inputSchema,{target:"draft-7",io:"input"}),outputJsonSchema:z132.toJSONSchema(operation.outputSchema,{target:"draft-7"})}))}});function createFimoClient(input){return{async execute(operationId,operationInput){let operation=fimoOperations[operationId],parsedInput=operation.inputSchema.parse(operationInput),response=await input.transport.execute(operation.buildRequest(parsedInput)),output=operation.projectOutput?operation.projectOutput(response,parsedInput):response;return operation.outputSchema.parse(output)}}}var init_client=__esm({"../../packages/sdk/dist/client.js"(){"use strict";init_operations();__name(createFimoClient,"createFimoClient")}});var init_dist2=__esm({"../../packages/sdk/dist/index.js"(){"use strict";init_client()}});import{spawnSync}from"node:child_process";import fs3 from"node:fs";import path3 from"node:path";import{setTimeout as sleep}from"node:timers/promises";function isPublishedInstall(cliRoot=CLI_ROOT){return fs3.existsSync(path3.join(cliRoot,"release.json"))}function buildSkipsVersionCheck(cliRoot=CLI_ROOT,readFile6=defaultReadFile){try{return JSON.parse(readFile6(path3.join(cliRoot,"release.json"))).skipVersionCheck===!0}catch{return!1}}function defaultReadFile(file){return fs3.readFileSync(file,"utf8")}function resolveGlobalFimoRoot(){let result=spawnSync("npm",["root","-g"],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:GLOBAL_ROOT_TIMEOUT_MS});return result.error||result.status!==0||typeof result.stdout!="string"||result.stdout.trim().length===0?null:path3.resolve(result.stdout.trim(),"fimo")}function normalizedPath(input){try{return fs3.realpathSync(input)}catch{return path3.resolve(input)}}function autoUpgradeEnabled(options={}){let usesDefaults=Object.keys(options).length===0;if(usesDefaults&&defaultEligibility!==void 0)return defaultEligibility;let env=options.env??process.env,cliRoot=options.cliRoot??CLI_ROOT,published=options.published??isPublishedInstall(cliRoot);if(env.FIMO_AUTO_UPGRADE!=="1"||!published||buildSkipsVersionCheck(cliRoot))return usesDefaults&&(defaultEligibility=!1),!1;let globalFimoRoot=options.globalFimoRoot===void 0?resolveGlobalFimoRoot():options.globalFimoRoot;if(!globalFimoRoot)return usesDefaults&&(defaultEligibility=!1),!1;let eligible=normalizedPath(cliRoot)===normalizedPath(globalFimoRoot);return usesDefaults&&(defaultEligibility=eligible),eligible}async function acquireLock(lockDir){let deadline=Date.now()+LOCK_WAIT_MS;for(;;){try{fs3.mkdirSync(lockDir);return}catch(error){if(error.code!=="EEXIST")throw error}let stale=!1;try{stale=Date.now()-fs3.statSync(lockDir).mtimeMs>LOCK_STALE_MS}catch{continue}if(stale){try{fs3.rmdirSync(lockDir)}catch{}continue}if(Date.now()>=deadline)throw new Error("auto-upgrade lock timeout");await sleep(LOCK_POLL_MS)}}function readGlobalFimoVersion(){let root=resolveGlobalFimoRoot();if(!root)return null;try{let pkg=JSON.parse(fs3.readFileSync(path3.join(root,"package.json"),"utf8"));return typeof pkg.version=="string"?pkg.version:null}catch{return null}}async function autoUpgradeGlobal(latest){if(!VERSION_PATTERN.test(latest))return!1;let lockDir=path3.join(loadConfig().configDir,"auto-upgrade.lock");try{fs3.mkdirSync(path3.dirname(lockDir),{recursive:!0}),await acquireLock(lockDir)}catch{return!1}try{if(readGlobalFimoVersion()===latest)return!0;let install=spawnSync("npm",["install","-g",`fimo@${latest}`],{stdio:["ignore","ignore","inherit"],timeout:INSTALL_TIMEOUT_MS});return install.error||install.status!==0?!1:readGlobalFimoVersion()===latest}finally{try{fs3.rmdirSync(lockDir)}catch{}}}var INSTALL_TIMEOUT_MS,GLOBAL_ROOT_TIMEOUT_MS,LOCK_WAIT_MS,LOCK_STALE_MS,LOCK_POLL_MS,VERSION_PATTERN,defaultEligibility,init_auto_upgrade=__esm({"src/cli/auto-upgrade.ts"(){init_config();INSTALL_TIMEOUT_MS=12e4,GLOBAL_ROOT_TIMEOUT_MS=5e3,LOCK_WAIT_MS=18e4,LOCK_STALE_MS=3e5,LOCK_POLL_MS=500,VERSION_PATTERN=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;__name(isPublishedInstall,"isPublishedInstall");__name(buildSkipsVersionCheck,"buildSkipsVersionCheck");__name(defaultReadFile,"defaultReadFile");__name(resolveGlobalFimoRoot,"resolveGlobalFimoRoot");__name(normalizedPath,"normalizedPath");__name(autoUpgradeEnabled,"autoUpgradeEnabled");__name(acquireLock,"acquireLock");__name(readGlobalFimoVersion,"readGlobalFimoVersion");__name(autoUpgradeGlobal,"autoUpgradeGlobal")}});import fs4 from"node:fs";import path4 from"node:path";import{fileURLToPath as fileURLToPath2}from"node:url";function getCliVersion(){try{let raw=fs4.readFileSync(PACKAGE_JSON_PATH,"utf8");return JSON.parse(raw).version??"0.0.0"}catch{return"0.0.0"}}var THIS_FILE2,CLI_ROOT2,PACKAGE_JSON_PATH,init_version=__esm({"src/cli/version.ts"(){THIS_FILE2=fileURLToPath2(import.meta.url),CLI_ROOT2=path4.resolve(path4.dirname(THIS_FILE2),"..",".."),PACKAGE_JSON_PATH=path4.join(CLI_ROOT2,"package.json");__name(getCliVersion,"getCliVersion")}});function branchNameOf(row2){return row2.branch??row2.env}function parentBranchOf(row2){return row2.parentBranch??row2.parentEnv}function projectUnclaimedError(cfg,body){let{feature,message}=body&&typeof body=="object"?body:{};return new ProjectUnclaimedError(cfg.apiUrl,typeof feature=="string"?feature:null,findProjectToken(cfg)?.file.claimUrl??null,typeof message=="string"&&message?message:void 0)}async function fimoFetch(url,init){let headers=new Headers(init.headers);headers.delete(CLI_VERSION_HEADER),headers.delete(CLI_AUTO_UPGRADE_HEADER);let canAutoUpgrade=process.argv[2]!=="git-credential"&&autoUpgradeEnabled();canAutoUpgrade&&(headers.set(CLI_VERSION_HEADER,getCliVersion()),headers.set(CLI_AUTO_UPGRADE_HEADER,"1"));let response=await fetch(url,{...init,headers});if(canAutoUpgrade&&response.status===426){let latest=response.headers.get(CLI_LATEST_HEADER);if(latest){await autoUpgradeGlobal(latest)||ui.warn({command:process.argv[2]??"fimo",message:`Could not upgrade to ${latest}; continuing with the current command.`});let retryHeaders=new Headers(init.headers);return retryHeaders.delete(CLI_VERSION_HEADER),retryHeaders.delete(CLI_AUTO_UPGRADE_HEADER),fetch(url,{...init,headers:retryHeaders})}}return response}function formatZodIssues(parsed){if(!parsed||typeof parsed!="object")return null;let error=parsed.error,container=error&&typeof error=="object"?error:parsed,issues="issues"in container?container.issues:void 0;return!Array.isArray(issues)||issues.length===0?null:issues.map(issue2=>{let{path:path50,message}=issue2;return`${Array.isArray(path50)&&path50.length>0?`${path50.join(".")}: `:""}${typeof message=="string"?message:"Invalid value"}`}).join("; ")}function formatPartialResult(parsed){if(!parsed.partial||typeof parsed.partial!="object"||Array.isArray(parsed.partial))return null;let partial=parsed.partial,counts=["created","updated","deleted"].flatMap(action=>typeof partial[action]=="number"&&partial[action]>0?[`${partial[action]} ${action}`]:[]);return counts.length>0?`Partial result: ${counts.join(", ")}.`:null}function formatError(status,text,body){if(!text)return String(status);if(body&&typeof body=="object"&&!Array.isArray(body)){let parsed=body;if(typeof parsed.message=="string"&&parsed.message.length>0){let partial=formatPartialResult(parsed);return partial?`${parsed.message} ${partial}`:parsed.message}if(typeof parsed.error=="string"&&parsed.error.length>0)return parsed.error;if(parsed.error&&typeof parsed.error=="object"&&"message"in parsed.error&&typeof parsed.error.message=="string")return parsed.error.message;let zodIssues=formatZodIssues(parsed);if(zodIssues)return zodIssues}return text}async function parseError(response){let text=await response.text(),body;try{body=text?JSON.parse(text):void 0}catch{return{detail:formatError(response.status,text)}}let code2=body&&typeof body=="object"&&!Array.isArray(body)&&typeof body.code=="string"?body.code:void 0;return{detail:formatError(response.status,text,body),code:code2,body}}function throwUnauthorized(cfg,status){if(resolveAuth(cfg)?.kind==="project")throw new ProjectTokenRejectedError(cfg.apiUrl,status);try{recordAuthFailure(cfg)}catch{}throw new UnauthorizedError(cfg.apiUrl,status)}async function throwPermissionDenied(cfg,response){let required=[],server={},body;try{body=await response.json(),required=Array.isArray(body.required)?body.required:body.required?[body.required]:[],typeof body.code=="string"&&body.code&&(server.code=body.code),typeof body.message=="string"&&body.message&&(server.detail=body.message),server.body=body}catch{}throw server.code==="project_unclaimed"?projectUnclaimedError(cfg,body):new PermissionDeniedError(cfg.apiUrl,required,void 0,server)}function createCliHttpTransport(cfg=loadConfig(),branch){let authHeaders=__name((init,defaultJsonContentType)=>{let headers=new Headers(init.headers),token=requireToken(cfg);return headers.set("Authorization",`Bearer ${token}`),defaultJsonContentType&&init.body&&!headers.has("Content-Type")&&headers.set("Content-Type","application/json"),branch&&!headers.has(FIMO_BRANCH_HEADER)&&headers.set(FIMO_BRANCH_HEADER,branch),headers},"authHeaders"),send=__name(async(path50,init={},defaultJsonContentType=!0)=>fimoFetch(`${cfg.apiUrl}${path50}`,{...init,headers:authHeaders(init,defaultJsonContentType)}),"send");return{async request(path50,init={},options={}){let response=await send(path50,init);if(response.status===401&&throwUnauthorized(cfg,response.status),response.status===403&&!options.preserveForbidden&&await throwPermissionDenied(cfg,response),!response.ok){let error=await parseError(response);throw error.code==="project_unclaimed"?projectUnclaimedError(cfg,error.body):new ApiRequestError(init.method??"GET",path50,response.status,error.detail,error.code,error.body)}if(response.status!==204)return await response.json()},async response(path50,init={}){let response=await send(path50,init,!1);if(response.status===401&&throwUnauthorized(cfg,response.status),response.status===403&&await throwPermissionDenied(cfg,response),!response.ok){let error=await parseError(response);throw new ApiRequestError(init.method??"GET",path50,response.status,error.detail,error.code,error.body)}return response}}}function createCliFimoClient(cfg=loadConfig(),branch){let transport=createCliHttpTransport(cfg,branch);return createFimoClient({transport:{execute:__name(request=>transport.request(`/api${request.path}`,{method:request.method,headers:!branch&&request.context?.branch!==void 0?{[FIMO_BRANCH_HEADER]:request.context.branch}:void 0,body:request.body===void 0?void 0:JSON.stringify(request.body)},{preserveForbidden:request.preserveForbidden}),"execute")}})}function requiredPermissions(body){let required=typeof body=="object"&&body!==null?body.required:void 0;return Array.isArray(required)?required.filter(value=>typeof value=="string"):typeof required=="string"?[required]:[]}var ApiRequestError,UnauthorizedError,ProjectTokenRejectedError,PermissionDeniedError,ProjectUnclaimedError,CLI_VERSION_HEADER,CLI_LATEST_HEADER,CLI_AUTO_UPGRADE_HEADER,FIMO_BRANCH_HEADER,init_sdk_transport=__esm({"src/cli/sdk-transport.ts"(){init_esm();init_dist();init_dist2();init_auth();init_auto_upgrade();init_config();init_version();__name(branchNameOf,"branchNameOf");__name(parentBranchOf,"parentBranchOf");ApiRequestError=class extends Error{static{__name(this,"ApiRequestError")}status;method;path;detail;code;body;constructor(method,path50,status,detail,code2,body){super(`API ${method} ${path50} failed: ${status} ${detail}`),this.name="ApiRequestError",this.method=method,this.path=path50,this.status=status,this.detail=detail,this.code=code2,this.body=body}},UnauthorizedError=class extends Error{static{__name(this,"UnauthorizedError")}apiUrl;status;constructor(apiUrl,status,message){super(message??`Session for ${apiUrl} expired or invalid (HTTP ${status}).`),this.name="UnauthorizedError",this.apiUrl=apiUrl,this.status=status}},ProjectTokenRejectedError=class extends UnauthorizedError{static{__name(this,"ProjectTokenRejectedError")}constructor(apiUrl,status){super(apiUrl,status,"The project token in this directory no longer works."),this.name="ProjectTokenRejectedError"}},PermissionDeniedError=class extends Error{static{__name(this,"PermissionDeniedError")}apiUrl;required;code;detail;body;constructor(apiUrl,required=[],message,server={}){let detail=required.length?` Missing permission: ${required.join(", ")}.`:"";super(message??`You don't have permission to do this on ${apiUrl}.${detail}`),this.name="PermissionDeniedError",this.apiUrl=apiUrl,this.required=required,this.code=server.code,this.detail=server.detail,this.body=server.body}},ProjectUnclaimedError=class extends PermissionDeniedError{static{__name(this,"ProjectUnclaimedError")}feature;claimUrl;constructor(apiUrl,feature,claimUrl,detail){let label=feature?UNCLAIMED_PLAN.locked[feature]:void 0,message=label?`${label} unlocks once a person claims this site.`:detail??"This action unlocks once a person claims this site.";super(apiUrl,[],message,{code:"project_unclaimed",detail}),this.name="ProjectUnclaimedError",this.feature=feature,this.claimUrl=claimUrl}};__name(projectUnclaimedError,"projectUnclaimedError");CLI_VERSION_HEADER="X-Fimo-CLI-Version",CLI_LATEST_HEADER="X-Fimo-CLI-Latest",CLI_AUTO_UPGRADE_HEADER="X-Fimo-CLI-Auto-Upgrade",FIMO_BRANCH_HEADER="X-Fimo-Branch";__name(fimoFetch,"fimoFetch");__name(formatZodIssues,"formatZodIssues");__name(formatPartialResult,"formatPartialResult");__name(formatError,"formatError");__name(parseError,"parseError");__name(throwUnauthorized,"throwUnauthorized");__name(throwPermissionDenied,"throwPermissionDenied");__name(createCliHttpTransport,"createCliHttpTransport");__name(createCliFimoClient,"createCliFimoClient");__name(requiredPermissions,"requiredPermissions")}});function detectProjectLayout(paths){let hasCurrentProject=!1,hasLegacyProject=!1,hasCurrentMarker=!1,hasLegacyMarker=!1;for(let input of paths){let file=input.replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/$/,"");hasCurrentProject||=file===CURRENT_PROJECT_LAYOUT.project,hasLegacyProject||=file===LEGACY_PROJECT_LAYOUT.project,hasCurrentMarker||=file===CURRENT_PROJECT_LAYOUT.config,hasLegacyMarker||=file===LEGACY_PROJECT_LAYOUT.config||file===LEGACY_AGENT_POLICY_PATH}return hasCurrentProject?"current":hasLegacyProject?"legacy":hasCurrentMarker?"current":hasLegacyMarker?"legacy":null}function getProjectLayoutPaths(layout){return layout==="current"?CURRENT_PROJECT_LAYOUT:LEGACY_PROJECT_LAYOUT}function selectProjectConfigPath(paths,layout){let files2=new Set(Array.from(paths,file=>file.replace(/\\/g,"/").replace(/^\.\//,"")));return(layout??detectProjectLayout(files2)??"current")==="current"?CURRENT_PROJECT_LAYOUT.config:files2.has(LEGACY_AGENT_POLICY_PATH)&&!files2.has(LEGACY_PROJECT_LAYOUT.config)?LEGACY_AGENT_POLICY_PATH:LEGACY_PROJECT_LAYOUT.config}var CURRENT_PROJECT_LAYOUT,LEGACY_PROJECT_LAYOUT,LEGACY_AGENT_POLICY_PATH,init_project_layout=__esm({"src/runtime/project-layout.ts"(){CURRENT_PROJECT_LAYOUT={project:".fimo/project.json",config:".fimo/config.json"},LEGACY_PROJECT_LAYOUT={project:".fimo.settings.json",config:"fimo-config.json"},LEGACY_AGENT_POLICY_PATH="fimo.config.json";__name(detectProjectLayout,"detectProjectLayout");__name(getProjectLayoutPaths,"getProjectLayoutPaths");__name(selectProjectConfigPath,"selectProjectConfigPath")}});function isValidBranch2(branch){return typeof branch!="string"||branch.length===0||branch.length>255||branch.startsWith("-")||branch.startsWith(".")||branch.includes("//")||branch.includes("--")||branch.split("/").some(segment=>segment==="..")?!1:BRANCH_ID_REGEX2.test(branch)}function fnv1a82(s){let h=2166136261;for(let i=0;i<s.length;i++)h^=s.charCodeAt(i),h=Math.imul(h,16777619);return(h>>>0).toString(16).padStart(8,"0")}function envResourceKey2(branch){let base=branch.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,15),hash=fnv1a82(branch);return base?`${base}-${hash}`:hash}function buildTenantApiUrl2(projectId2,branch,tenantApiBaseUrl){let url=new URL(tenantApiBaseUrl);return url.hostname=`${projectId2}-${envResourceKey2(branch)}.${url.hostname}`,url.toString().replace(/\/$/,"")}function buildLocalRuntimeEnv(options){return{...Object.fromEntries(LOCAL_CONTENT_API_ENV_KEYS.map(key=>[key,options.tenantApiUrl])),...Object.fromEntries(LOCAL_ENV_SELECTOR_KEYS.map(key=>[key,options.branch]))}}var BRANCH_ID_REGEX2,LOCAL_CONTENT_API_ENV_KEYS,LOCAL_ENV_SELECTOR_KEYS,init_branch_identity=__esm({"src/runtime/shared/branch-identity.ts"(){BRANCH_ID_REGEX2=/^[a-zA-Z0-9._/-]+$/;__name(isValidBranch2,"isValidBranch");__name(fnv1a82,"fnv1a8");__name(envResourceKey2,"envResourceKey");__name(buildTenantApiUrl2,"buildTenantApiUrl");LOCAL_CONTENT_API_ENV_KEYS=["FIMO_CONTENT_API_URL","VITE_API_URL","NEXT_PUBLIC_FIMO_API_URL","PUBLIC_FIMO_API_URL"],LOCAL_ENV_SELECTOR_KEYS=["FIMO_ENV","NEXT_PUBLIC_FIMO_ENV"];__name(buildLocalRuntimeEnv,"buildLocalRuntimeEnv")}});import{execFileSync}from"node:child_process";import fs5 from"node:fs";import path5 from"node:path";import{parseEnv}from"node:util";function resolveLocalRuntimeEnv(options){let root=findProjectRoot(options.cwd),link=root?readProjectLink(root):null;if(!root||!link)return null;let branch=currentBranch(root);if(!branch)return null;let tenantApiUrl=buildTenantApiUrl2(link.projectId,branch,link.tenantApiBaseUrl);return{env:branch,tenantApiUrl,source:"branch",values:buildLocalRuntimeEnv({tenantApiUrl,branch}),link}}function findStaleFimoOverride(explicit,derived){for(let key of LOCAL_CONTENT_API_ENV_KEYS){let value=explicit[key];if(value&&value!==derived.tenantApiUrl&&isFimoMintedTenantUrl(value,derived.link))return{key,explicit:value,derived:derived.tenantApiUrl}}return null}function staleOverrideMessage(stale){return`[fimo] An env file pins the app to ${stale.explicit} (seeded by an older CLI), so it will NOT follow the git branch (${stale.derived}). Run \`fimo link\` to remove that line, or delete it yourself.`}function isFimoMintedTenantUrl(value,link){try{let candidate=new URL(value),base=new URL(link.tenantApiBaseUrl);return candidate.protocol===base.protocol&&candidate.port===base.port&&candidate.hostname.startsWith(`${link.projectId}-`)&&candidate.hostname.endsWith(`.${base.hostname}`)}catch{return!1}}function readLocalEnvFiles(cwd){let root=findProjectRoot(cwd)??cwd,values={};for(let file of[".env",".env.local"]){let filePath=path5.join(root,file);fs5.existsSync(filePath)&&Object.assign(values,parseEnv(fs5.readFileSync(filePath,"utf-8")))}return values}function currentBranch(root){try{let branch=execFileSync("git",["symbolic-ref","--short","-q","HEAD"],{cwd:root,stdio:["ignore","pipe","ignore"],encoding:"utf-8"}).trim();return branch&&isValidBranch2(branch)?branch:null}catch{return null}}function findProjectRoot(start){let dir=path5.resolve(start);for(;;){if(fs5.existsSync(path5.join(dir,CURRENT_PROJECT_LAYOUT.project))||fs5.existsSync(path5.join(dir,LEGACY_PROJECT_LAYOUT.project)))return dir;let parent=path5.dirname(dir);if(parent===dir)return null;dir=parent}}function readProjectLink(root){for(let layout of[CURRENT_PROJECT_LAYOUT,LEGACY_PROJECT_LAYOUT]){let file=path5.join(root,layout.project);if(fs5.existsSync(file))try{let parsed=JSON.parse(fs5.readFileSync(file,"utf-8"));if(typeof parsed.projectId=="string"&&parsed.projectId.length>0&&typeof parsed.tenantApiBaseUrl=="string"&&parsed.tenantApiBaseUrl.length>0)return{projectId:parsed.projectId,tenantApiBaseUrl:parsed.tenantApiBaseUrl}}catch{return null}}return null}var init_local_runtime_env=__esm({"src/runtime/shared/local-runtime-env.ts"(){init_project_layout();init_branch_identity();__name(resolveLocalRuntimeEnv,"resolveLocalRuntimeEnv");__name(findStaleFimoOverride,"findStaleFimoOverride");__name(staleOverrideMessage,"staleOverrideMessage");__name(isFimoMintedTenantUrl,"isFimoMintedTenantUrl");__name(readLocalEnvFiles,"readLocalEnvFiles");__name(currentBranch,"currentBranch");__name(findProjectRoot,"findProjectRoot");__name(readProjectLink,"readProjectLink")}});import{execFile}from"node:child_process";import{promisify}from"node:util";async function runGit(args,cwd){let{stdout}=await execFileAsync("git",args,{cwd});return stdout.trim()}async function isGitRepo(cwd){try{return await runGit(["rev-parse","--is-inside-work-tree"],cwd),!0}catch{return!1}}async function hasUncommittedChanges(cwd){return(await runGit(["status","--porcelain"],cwd)).length>0}async function cloneRepo(args){await execFileAsync("git",["clone","--branch",args.branch,"--single-branch",args.url,args.targetDir])}function isMissingRemoteBranch(error){let stderr=extractStderr(error).toLowerCase();return stderr.includes("remote branch")&&stderr.includes("not found")}async function remoteHasBranch(remoteUrl,branch){let{stdout}=await execFileAsync("git",["ls-remote","--heads",remoteUrl,branch]);return stdout.trim().length>0}async function currentBranch2(cwd){return runGit(["symbolic-ref","--short","-q","HEAD"],cwd)}async function commitSubjectOrNull(cwd,sha){try{return await runGit(["log","-1","--format=%s",sha,"--"],cwd)}catch{return null}}async function currentTagOrNull(cwd){try{return await runGit(["describe","--tags","--exact-match","HEAD"],cwd)||null}catch{return null}}function isReleaseTag(tag){return tag?/^release\/.+/.test(tag):!1}function classifyPushError(error){let stderr=extractStderr(error),lower=stderr.toLowerCase();return lower.includes("invalid or expired token")||lower.includes("expired token")||lower.includes("invalid token")||lower.includes("could not obtain git credentials")||lower.includes("not signed in")?{kind:"auth",stderr}:lower.includes("remote rejected")||lower.includes("protected")||lower.includes("no-push")||lower.includes("push declined")||lower.includes("not allowed to push")||lower.includes("permission to push")||lower.includes("forbidden")||lower.includes("403")?{kind:"protected",stderr}:lower.includes("non-fast-forward")||lower.includes("rejected")||lower.includes("fetch first")||lower.includes("updates were rejected")?{kind:"non-fast-forward",stderr}:lower.includes("authentication")||lower.includes("permission denied")?{kind:"auth",stderr}:lower.includes("could not resolve host")||lower.includes("timed out")||lower.includes("connection")?{kind:"network",stderr}:{kind:"unknown",stderr}}function gitErrorSummary(error){let lines=extractStderr(error).split(`
45
45
  `).map(line=>line.trim()).filter(line=>line.length>0);return(lines.find(line=>line.startsWith("fatal:")||line.startsWith("error:"))??lines[0]??"git failed").replace(/\/\/[^/\s@]*@/g,"//")}function extractStderr(error){if(error&&typeof error=="object"&&"stderr"in error){let value=error.stderr;if(typeof value=="string")return value;if(Buffer.isBuffer(value))return value.toString("utf8")}return error instanceof Error?error.message:String(error)}var execFileAsync,init_git=__esm({"src/cli/utils/git.ts"(){execFileAsync=promisify(execFile);__name(runGit,"runGit");__name(isGitRepo,"isGitRepo");__name(hasUncommittedChanges,"hasUncommittedChanges");__name(cloneRepo,"cloneRepo");__name(isMissingRemoteBranch,"isMissingRemoteBranch");__name(remoteHasBranch,"remoteHasBranch");__name(currentBranch2,"currentBranch");__name(commitSubjectOrNull,"commitSubjectOrNull");__name(currentTagOrNull,"currentTagOrNull");__name(isReleaseTag,"isReleaseTag");__name(classifyPushError,"classifyPushError");__name(gitErrorSummary,"gitErrorSummary");__name(extractStderr,"extractStderr")}});import fs6 from"node:fs";import path6 from"node:path";function existingLayoutPaths(cwd){return[CURRENT_PROJECT_LAYOUT.project,CURRENT_PROJECT_LAYOUT.config,LEGACY_PROJECT_LAYOUT.project,LEGACY_PROJECT_LAYOUT.config,LEGACY_AGENT_POLICY_PATH].filter(file=>fs6.existsSync(path6.join(cwd,file)))}function detectProjectLayoutAtRoot(cwd){return detectProjectLayout(existingLayoutPaths(cwd))}function resolveProjectLayoutPaths(cwd,fallback="current"){return getProjectLayoutPaths(detectProjectLayoutAtRoot(cwd)??fallback)}function resolveProjectSettingsPath(cwd){return path6.join(cwd,resolveProjectLayoutPaths(cwd).project)}function resolveProjectConfigPath(cwd){let files2=existingLayoutPaths(cwd);return path6.join(cwd,selectProjectConfigPath(files2,detectProjectLayout(files2)))}function loadProjectSettings(cwd){let settingsPath=resolveProjectSettingsPath(cwd);if(!fs6.existsSync(settingsPath))throw new Error("You are not in a Fimo project. Run `fimo create` to start one, or cd into a linked project.");return JSON.parse(fs6.readFileSync(settingsPath,"utf-8"))}function findProjectRoot2(start){let dir=path6.resolve(start);for(;;){if(fs6.existsSync(path6.join(dir,CURRENT_PROJECT_LAYOUT.project))||fs6.existsSync(path6.join(dir,LEGACY_PROJECT_LAYOUT.project)))return dir;let parent=path6.dirname(dir);if(parent===dir)return null;dir=parent}}function resolveProjectCwd(cwdOption){let start=path6.resolve(cwdOption??process.cwd());return findProjectRoot2(start)??start}var init_project2=__esm({"src/cli/utils/project.ts"(){init_project_layout();__name(existingLayoutPaths,"existingLayoutPaths");__name(detectProjectLayoutAtRoot,"detectProjectLayoutAtRoot");__name(resolveProjectLayoutPaths,"resolveProjectLayoutPaths");__name(resolveProjectSettingsPath,"resolveProjectSettingsPath");__name(resolveProjectConfigPath,"resolveProjectConfigPath");__name(loadProjectSettings,"loadProjectSettings");__name(findProjectRoot2,"findProjectRoot");__name(resolveProjectCwd,"resolveProjectCwd")}});function projectSettingsFromEnv(){let projectId2=process.env.FIMO_PROJECT_ID?.trim();return projectId2?{projectId:projectId2,organizationId:process.env.FIMO_ORGANIZATION_ID?.trim()??"",name:process.env.FIMO_PROJECT_NAME?.trim()??projectId2,apiUrl:process.env.FIMO_API_URL?.trim()??loadConfig().apiUrl}:null}async function resolveBranchFromGit(cwd){if(!await isGitRepo(cwd))return null;try{let tag=await currentTagOrNull(cwd);if(isReleaseTag(tag))return{branch:"prod",source:"tag",readOnly:!0};let branch=await currentBranch2(cwd);return!branch||!isValidBranch(branch)?null:{branch,source:"branch"}}catch{return null}}function resolveBranchFromEnvironment(cwd){let branch=process.env.FIMO_ENV?.trim()||readLocalEnvFiles(cwd).FIMO_ENV?.trim();return branch&&isValidBranch(branch)?branch:null}async function getProjectContext(opts={}){let cwd=resolveProjectCwd(opts.cwd),settings;try{settings=loadProjectSettings(cwd)}catch{let fromEnv=projectSettingsFromEnv();if(!fromEnv)throw new NotInProjectError;settings=fromEnv}let branch,source,readOnly=!1;if(opts.branchOverride!==void 0){if(!isValidBranch(opts.branchOverride))throw new InvalidBranchOverrideError(opts.branchOverride);branch=opts.branchOverride,source="flag"}else if(opts.defaultBranch!==void 0)branch=opts.defaultBranch,source="default";else{let fromGit=await resolveBranchFromGit(cwd);if(fromGit)branch=fromGit.branch,source=fromGit.source,readOnly=fromGit.readOnly===!0;else{let fromEnvironment=resolveBranchFromEnvironment(cwd);if(!fromEnvironment)throw new GitBranchUndetectedError;branch=fromEnvironment,source="environment"}}if(opts.fimo&&branch!=="prod")try{let{data:branches}=await opts.fimo.execute("branches.list",{projectId:settings.projectId,includeAgentBranches:!0}),names=branches.map(candidate=>candidate.branch);if(!names.includes(branch)&&source==="flag")throw new BranchNotFoundError(branch,names)}catch(err){if(err instanceof BranchNotFoundError)throw err}return{projectId:settings.projectId,organizationId:settings.organizationId,name:settings.name,apiUrl:settings.apiUrl,branch,source,readOnly:readOnly||void 0}}function branchSourceBanner(ctx){let sourceHint=ctx.source==="flag"?"--branch":ctx.source==="branch"?"git branch":ctx.source==="tag"?"git tag":ctx.source==="default"?"command default":"FIMO_ENV",ro=ctx.readOnly?" \xB7 read-only":"";return`\u2192 Branch: ${ctx.branch} (from ${sourceHint}${ro})`}function branchOverrideFromCommand(cmd){let cur=cmd??void 0;for(;cur;){let branch=cur.opts().branch;if(typeof branch=="string"&&branch.length>0)return branch;cur=cur.parent??null}}async function bootstrapProjectCommand(options={},cmd,bootstrapOpts={}){let branchOverride2=branchOverrideFromCommand(cmd),cfg=loadConfig(),baseFimo=createCliFimoClient(cfg),ctx=await getProjectContext({cwd:options.cwd,branchOverride:branchOverride2,defaultBranch:bootstrapOpts.defaultBranch,fimo:baseFimo});if(!bootstrapOpts.quiet){let{currentMode:currentMode2}=await Promise.resolve().then(()=>(init_dist(),dist_exports));currentMode2().format==="pretty"&&process.stderr.write(`${branchSourceBanner(ctx)}
46
- `)}if(bootstrapOpts.refuseReadOnly&&ctx.readOnly)throw new Error(`Refusing to run a mutating command against read-only Branch '${ctx.branch}'. Switch off the release/* tag or pass --branch <writable-branch>.`);return{ctx,fimo:createCliFimoClient(cfg,ctx.branch)}}var NotInProjectError,InvalidBranchOverrideError,BranchNotFoundError,GitBranchUndetectedError,init_project_context=__esm({"src/cli/utils/project-context.ts"(){init_esm();init_local_runtime_env();init_config();init_sdk_transport();init_git();init_project2();NotInProjectError=class extends Error{static{__name(this,"NotInProjectError")}constructor(){super("You are not in a Fimo project. Run `fimo create` to start one, or cd into a linked project."),this.name="NotInProjectError"}};__name(projectSettingsFromEnv,"projectSettingsFromEnv");InvalidBranchOverrideError=class extends Error{static{__name(this,"InvalidBranchOverrideError")}value;constructor(value){super(`--branch value '${value}' is invalid. Branch names must match /^[a-zA-Z0-9._/-]+$/, not start with '-', and be \u2264255 chars.`),this.name="InvalidBranchOverrideError",this.value=value}},BranchNotFoundError=class extends Error{static{__name(this,"BranchNotFoundError")}branch;knownBranches;constructor(branch,knownBranches){super(`Branch '${branch}' not found on the server. Known Branches: ${knownBranches.length>0?knownBranches.join(", "):"(none yet)"}.`),this.name="BranchNotFoundError",this.branch=branch,this.knownBranches=knownBranches}},GitBranchUndetectedError=class extends Error{static{__name(this,"GitBranchUndetectedError")}constructor(){super("Fimo could not detect a current Git Branch. Check out a Branch or pass --branch <name>."),this.name="GitBranchUndetectedError"}};__name(resolveBranchFromGit,"resolveBranchFromGit");__name(resolveBranchFromEnvironment,"resolveBranchFromEnvironment");__name(getProjectContext,"getProjectContext");__name(branchSourceBanner,"branchSourceBanner");__name(branchOverrideFromCommand,"branchOverrideFromCommand");__name(bootstrapProjectCommand,"bootstrapProjectCommand")}});var require_src=__commonJS({"../../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports2,module2){"use strict";var cursor={to(x,y2){return y2?`\x1B[${y2+1};${x+1}H`:`\x1B[${x+1}G`},move(x,y2){let ret="";return x<0?ret+=`\x1B[${-x}D`:x>0&&(ret+=`\x1B[${x}C`),y2<0?ret+=`\x1B[${-y2}A`:y2>0&&(ret+=`\x1B[${y2}B`),ret},up:__name((count=1)=>`\x1B[${count}A`,"up"),down:__name((count=1)=>`\x1B[${count}B`,"down"),forward:__name((count=1)=>`\x1B[${count}C`,"forward"),backward:__name((count=1)=>`\x1B[${count}D`,"backward"),nextLine:__name((count=1)=>"\x1B[E".repeat(count),"nextLine"),prevLine:__name((count=1)=>"\x1B[F".repeat(count),"prevLine"),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},scroll={up:__name((count=1)=>"\x1B[S".repeat(count),"up"),down:__name((count=1)=>"\x1B[T".repeat(count),"down")},erase={screen:"\x1B[2J",up:__name((count=1)=>"\x1B[1J".repeat(count),"up"),down:__name((count=1)=>"\x1B[J".repeat(count),"down"),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(count){let clear="";for(let i=0;i<count;i++)clear+=this.line+(i<count-1?cursor.up():"");return count&&(clear+=cursor.left),clear}};module2.exports={cursor,scroll,erase,beep:"\x07"}}});function colorEnabled(opts={}){if(opts.forceDisable)return!1;let env=opts.env??process.env;return env.NO_COLOR&&env.NO_COLOR.length>0?!1:env.FORCE_COLOR&&env.FORCE_COLOR!=="0"&&env.FORCE_COLOR!=="false"?!0:(opts.isTTY??process.stdout.isTTY??!1)===!0}function makeColorPalette(opts={}){let on=colorEnabled(opts),wrap=__name(style=>s=>on?`${ANSI[style]}${s}${ANSI.reset}`:s,"wrap");return{enabled:on,bold:wrap("bold"),dim:wrap("dim"),red:wrap("red"),green:wrap("green"),yellow:wrap("yellow"),blue:wrap("blue"),magenta:wrap("magenta"),cyan:wrap("cyan"),gray:wrap("gray")}}var ANSI,palette,init_color=__esm({"src/cli/utils/format/color.ts"(){ANSI={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",gray:"\x1B[90m"};__name(colorEnabled,"colorEnabled");__name(makeColorPalette,"makeColorPalette");palette=makeColorPalette()}});function recoverTenantApiBaseUrl(tenantApiUrl,projectId2,branch){try{let normalized=tenantApiUrl.replace(/\/$/,""),url=new URL(normalized),prefix=`${projectId2}-${envResourceKey(branch)}.`;if(!url.hostname.startsWith(prefix))return;url.hostname=url.hostname.slice(prefix.length);let base=url.toString().replace(/\/$/,"");return buildTenantApiUrl(projectId2,branch,base)===normalized?base:void 0}catch{return}}function createIdentityService(cfg=loadConfig()){let transport=createCliHttpTransport(cfg);return{getCurrentSession(){return transport.request("/api/auth/get-session")}}}function createGitService(cfg=loadConfig(),headerBranch){let transport=createCliHttpTransport(cfg,headerBranch);return{async getRemote(projectId2,branch){let body=await transport.request(`/api/management/projects/${projectId2}/branches/${encodeURIComponent(branch)}/git-remote`,{},{preserveForbidden:!0});if(!body.data.tenantApiBaseUrl){let recovered=recoverTenantApiBaseUrl(body.data.tenantApiUrl,projectId2,branch);if(recovered)return{...body.data,tenantApiBaseUrl:recovered}}return body.data},async getCredential(projectId2,branch){return(await transport.request(`/api/management/projects/${projectId2}/branches/${encodeURIComponent(branch)}/git-credential`,{},{preserveForbidden:!0})).data}}}function createPublicationControlService(cfg=loadConfig(),branch){let transport=createCliHttpTransport(cfg,branch);return{async publish(projectId2,request={}){return(await transport.request(`/api/management/projects/${projectId2}/publish`,{method:"POST",body:JSON.stringify(request)}))?.data?.publicationId??null},async unpublish(projectId2){await transport.request(`/api/management/projects/${projectId2}/unpublish`,{method:"POST"})}}}function publicationIdFromError(error){let body=error instanceof ApiRequestError?error.body:void 0;if(typeof body!="object"||body===null)return null;let candidate=body.publicationId;return typeof candidate=="string"?candidate:null}function transferBlockersFromError(error){let body=error instanceof ApiRequestError?error.body:void 0;if(typeof body!="object"||body===null)return[];let blockers=body.blockers;return Array.isArray(blockers)?blockers:[]}function createSandboxService(cfg=loadConfig(),headerBranch){let transport=createCliHttpTransport(cfg,headerBranch);return{async getHostedPreview(projectId2,branch){return(await transport.request(`/api/management/projects/${projectId2}/branches/${encodeBranchPathSegment(branch)}/hosted-preview`)).data},async pull(projectId2,onProgress,branch,options={}){let params=new URLSearchParams;options.noRestart&&params.set("noRestart","true"),options.wait!==void 0&&params.set("wait",String(options.wait));let search=params.toString(),response=await transport.response(`/api/management/projects/${projectId2}/branches/${encodeURIComponent(branch)}/sandbox/pull${search?`?${search}`:""}`,{method:"POST",headers:{Accept:"text/event-stream"}});if(!response.body)throw new Error("Sandbox pull failed: empty response stream");let reader=response.body.getReader(),decoder=new TextDecoder,buffer="",failure=null,readiness=null,timings=null,completed=!1;try{for(;;){let{value,done}=await reader.read();if(done)break;buffer+=decoder.decode(value,{stream:!0});let separatorIndex=buffer.indexOf(`
46
+ `)}if(bootstrapOpts.refuseReadOnly&&ctx.readOnly)throw new Error(`Refusing to run a mutating command against read-only Branch '${ctx.branch}'. Switch off the release/* tag or pass --branch <writable-branch>.`);return{ctx,fimo:createCliFimoClient(cfg,ctx.branch)}}var NotInProjectError,InvalidBranchOverrideError,BranchNotFoundError,GitBranchUndetectedError,init_project_context=__esm({"src/cli/utils/project-context.ts"(){init_esm();init_local_runtime_env();init_config();init_sdk_transport();init_git();init_project2();NotInProjectError=class extends Error{static{__name(this,"NotInProjectError")}constructor(){super("You are not in a Fimo project. Run `fimo create` to start one, or cd into a linked project."),this.name="NotInProjectError"}};__name(projectSettingsFromEnv,"projectSettingsFromEnv");InvalidBranchOverrideError=class extends Error{static{__name(this,"InvalidBranchOverrideError")}value;constructor(value){super(`--branch value '${value}' is invalid. Branch names must match /^[a-zA-Z0-9._/-]+$/, not start with '-', and be \u2264255 chars.`),this.name="InvalidBranchOverrideError",this.value=value}},BranchNotFoundError=class extends Error{static{__name(this,"BranchNotFoundError")}branch;knownBranches;constructor(branch,knownBranches){super(`Branch '${branch}' not found on the server. Known Branches: ${knownBranches.length>0?knownBranches.join(", "):"(none yet)"}.`),this.name="BranchNotFoundError",this.branch=branch,this.knownBranches=knownBranches}},GitBranchUndetectedError=class extends Error{static{__name(this,"GitBranchUndetectedError")}constructor(){super("Fimo could not detect a current Git Branch. Check out a Branch or pass --branch <name>."),this.name="GitBranchUndetectedError"}};__name(resolveBranchFromGit,"resolveBranchFromGit");__name(resolveBranchFromEnvironment,"resolveBranchFromEnvironment");__name(getProjectContext,"getProjectContext");__name(branchSourceBanner,"branchSourceBanner");__name(branchOverrideFromCommand,"branchOverrideFromCommand");__name(bootstrapProjectCommand,"bootstrapProjectCommand")}});var require_src=__commonJS({"../../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports2,module2){"use strict";var cursor={to(x,y2){return y2?`\x1B[${y2+1};${x+1}H`:`\x1B[${x+1}G`},move(x,y2){let ret="";return x<0?ret+=`\x1B[${-x}D`:x>0&&(ret+=`\x1B[${x}C`),y2<0?ret+=`\x1B[${-y2}A`:y2>0&&(ret+=`\x1B[${y2}B`),ret},up:__name((count=1)=>`\x1B[${count}A`,"up"),down:__name((count=1)=>`\x1B[${count}B`,"down"),forward:__name((count=1)=>`\x1B[${count}C`,"forward"),backward:__name((count=1)=>`\x1B[${count}D`,"backward"),nextLine:__name((count=1)=>"\x1B[E".repeat(count),"nextLine"),prevLine:__name((count=1)=>"\x1B[F".repeat(count),"prevLine"),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},scroll={up:__name((count=1)=>"\x1B[S".repeat(count),"up"),down:__name((count=1)=>"\x1B[T".repeat(count),"down")},erase={screen:"\x1B[2J",up:__name((count=1)=>"\x1B[1J".repeat(count),"up"),down:__name((count=1)=>"\x1B[J".repeat(count),"down"),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(count){let clear="";for(let i=0;i<count;i++)clear+=this.line+(i<count-1?cursor.up():"");return count&&(clear+=cursor.left),clear}};module2.exports={cursor,scroll,erase,beep:"\x07"}}});function colorEnabled(opts={}){if(opts.forceDisable)return!1;let env=opts.env??process.env;return env.NO_COLOR&&env.NO_COLOR.length>0?!1:env.FORCE_COLOR&&env.FORCE_COLOR!=="0"&&env.FORCE_COLOR!=="false"?!0:(opts.isTTY??process.stdout.isTTY??!1)===!0}function makeColorPalette(opts={}){let on=colorEnabled(opts),wrap=__name(style=>s=>on?`${ANSI[style]}${s}${ANSI.reset}`:s,"wrap");return{enabled:on,bold:wrap("bold"),dim:wrap("dim"),red:wrap("red"),green:wrap("green"),yellow:wrap("yellow"),blue:wrap("blue"),magenta:wrap("magenta"),cyan:wrap("cyan"),gray:wrap("gray")}}var ANSI,palette,init_color=__esm({"src/cli/utils/format/color.ts"(){ANSI={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",gray:"\x1B[90m"};__name(colorEnabled,"colorEnabled");__name(makeColorPalette,"makeColorPalette");palette=makeColorPalette()}});function recoverTenantApiBaseUrl(tenantApiUrl,projectId2,branch){try{let normalized=tenantApiUrl.replace(/\/$/,""),url=new URL(normalized),prefix=`${projectId2}-${envResourceKey(branch)}.`;if(!url.hostname.startsWith(prefix))return;url.hostname=url.hostname.slice(prefix.length);let base=url.toString().replace(/\/$/,"");return buildTenantApiUrl(projectId2,branch,base)===normalized?base:void 0}catch{return}}function createIdentityService(cfg=loadConfig()){let transport=createCliHttpTransport(cfg);return{getCurrentSession(){return transport.request("/api/auth/get-session")}}}function createGitService(cfg=loadConfig(),headerBranch){let transport=createCliHttpTransport(cfg,headerBranch);return{async getRemote(projectId2,branch){let body=await transport.request(`/api/management/projects/${projectId2}/branches/${encodeURIComponent(branch)}/git-remote`,{},{preserveForbidden:!0});if(!body.data.tenantApiBaseUrl){let recovered=recoverTenantApiBaseUrl(body.data.tenantApiUrl,projectId2,branch);if(recovered)return{...body.data,tenantApiBaseUrl:recovered}}return body.data},async getCredential(projectId2,branch){return(await transport.request(`/api/management/projects/${projectId2}/branches/${encodeURIComponent(branch)}/git-credential`,{},{preserveForbidden:!0})).data}}}function createPublicationControlService(cfg=loadConfig(),branch){let transport=createCliHttpTransport(cfg,branch);return{async publish(projectId2,request={}){return(await transport.request(`/api/management/projects/${projectId2}/publish`,{method:"POST",body:JSON.stringify(request)}))?.data?.publicationId??null},async unpublish(projectId2){await transport.request(`/api/management/projects/${projectId2}/unpublish`,{method:"POST"})}}}function publicationIdFromError(error){let body=error instanceof ApiRequestError?error.body:void 0;if(typeof body!="object"||body===null)return null;let candidate=body.publicationId;return typeof candidate=="string"?candidate:null}function transferBlockersFromError(error){let body=error instanceof ApiRequestError?error.body:void 0;if(typeof body!="object"||body===null)return[];let blockers=body.blockers;return Array.isArray(blockers)?blockers:[]}function createSandboxService(cfg=loadConfig(),headerBranch){let transport=createCliHttpTransport(cfg,headerBranch);return{async getHostedPreview(projectId2,branch){return(await transport.request(`/api/management/projects/${projectId2}/branches/${encodeBranchPathSegment(branch)}/hosted-preview`)).data},async pull(projectId2,onProgress,branch,options={}){let params=new URLSearchParams;options.wait!==void 0&&params.set("wait",String(options.wait));let search=params.toString(),response=await transport.response(`/api/management/projects/${projectId2}/branches/${encodeURIComponent(branch)}/sandbox/pull${search?`?${search}`:""}`,{method:"POST",headers:{Accept:"text/event-stream"}});if(!response.body)throw new Error("Sandbox pull failed: empty response stream");let reader=response.body.getReader(),decoder=new TextDecoder,buffer="",failure=null,readiness=null,timings=null,completed=!1;try{for(;;){let{value,done}=await reader.read();if(done)break;buffer+=decoder.decode(value,{stream:!0});let separatorIndex=buffer.indexOf(`
47
47
 
48
48
  `);for(;separatorIndex!==-1;){let rawEvent=buffer.slice(0,separatorIndex);buffer=buffer.slice(separatorIndex+2),separatorIndex=buffer.indexOf(`
49
49
 
@@ -2467,8 +2467,8 @@ This breaks source tracking for inline editing. Translation keys must be statica
2467
2467
  \u274C Found ${errors.length} error(s) in ${reactFiles.length} files.
2468
2468
  `),process.exit(1)}}import fs26 from"node:fs";import path23 from"node:path";var SCAN_EXTENSIONS=[".ts",".tsx",".js",".jsx",".mjs"],SCAN_EXTENSIONS_SET=new Set(SCAN_EXTENSIONS),SKIP_DIRS=new Set(["node_modules","dist",".next",".fimo",".git","public"]),GLOBAL_PATTERNS=[/\.css$/,/\.scss$/,/tailwind\.config/,/postcss\.config/,/vite\.config/,/tsconfig/,/package\.json$/,/src\/main\.[tj]sx?$/,/src\/index\.[tj]sx?$/,/src\/root\.[tj]sx?$/,/react-router\.config/];function isGlobalFile(filePath){return GLOBAL_PATTERNS.some(p2=>p2.test(filePath))}__name(isGlobalFile,"isGlobalFile");function collectFiles(dir){let files2=[];if(!fs26.existsSync(dir))return files2;let entries2=fs26.readdirSync(dir,{withFileTypes:!0});for(let entry of entries2){if(SKIP_DIRS.has(entry.name))continue;let fullPath=path23.join(dir,entry.name);entry.isDirectory()?files2.push(...collectFiles(fullPath)):SCAN_EXTENSIONS_SET.has(path23.extname(entry.name))&&files2.push(fullPath)}return files2}__name(collectFiles,"collectFiles");function extractImports(content2){let imports=[],staticRegex=/(?:import|export)\s+(?:[\s\S]*?)\s+from\s+['"]([^'"]+)['"]/g;for(let match of content2.matchAll(staticRegex))imports.push(match[1]);let dynamicRegex=/import\(\s*['"]([^'"]+)['"]\s*\)/g;for(let match of content2.matchAll(dynamicRegex))imports.push(match[1]);let requireRegex=/require\(\s*['"]([^'"]+)['"]\s*\)/g;for(let match of content2.matchAll(requireRegex))imports.push(match[1]);return imports.filter(s=>s.startsWith(".")||s.startsWith("@/"))}__name(extractImports,"extractImports");function resolveImport(specifier,fromDir,srcDir){let targetPath;if(specifier.startsWith("@/"))targetPath=path23.resolve(srcDir,specifier.slice(2));else if(specifier.startsWith("."))targetPath=path23.resolve(fromDir,specifier);else return null;if(fs26.existsSync(targetPath)&&fs26.statSync(targetPath).isFile())return targetPath;for(let ext of SCAN_EXTENSIONS){let withExt=targetPath+ext;if(fs26.existsSync(withExt))return withExt}for(let ext of SCAN_EXTENSIONS){let indexFile=path23.join(targetPath,"index"+ext);if(fs26.existsSync(indexFile))return indexFile}return null}__name(resolveImport,"resolveImport");function discoverRoutes(srcDir,root){let routesFilePath=path23.resolve(srcDir,"routes.ts");if(!fs26.existsSync(routesFilePath))return new Map;let source=fs26.readFileSync(routesFilePath,"utf-8"),parsed=parseRoutesSource(source),fileToRoutes=new Map;for(let r of parsed){if(r.isLayout||!r.path||!r.file)continue;let resolved=resolveImport(r.file,srcDir,srcDir);if(!resolved)continue;let rel=path23.relative(root,resolved);fileToRoutes.has(rel)||fileToRoutes.set(rel,new Set),fileToRoutes.get(rel).add(r.path)}return fileToRoutes}__name(discoverRoutes,"discoverRoutes");function buildReverseImportGraph(srcDir,root){let fileToImporters=new Map,allFiles=collectFiles(srcDir);for(let filePath of allFiles){let content2;try{content2=fs26.readFileSync(filePath,"utf-8")}catch{continue}let imports=extractImports(content2);for(let specifier of imports){let resolved=resolveImport(specifier,path23.dirname(filePath),srcDir);if(!resolved)continue;let resolvedRel=path23.relative(root,resolved),importerRel=path23.relative(root,filePath);fileToImporters.has(resolvedRel)||fileToImporters.set(resolvedRel,new Set),fileToImporters.get(resolvedRel).add(importerRel)}}return fileToImporters}__name(buildReverseImportGraph,"buildReverseImportGraph");function resolveAffectedRoutes(file,fileToImporters,fileToRoutes){let visited=new Set,queue=[file],affectedRoutes=new Set;for(;queue.length>0;){let current=queue.shift();if(visited.has(current))continue;visited.add(current);let routes=fileToRoutes.get(current);if(routes)for(let route of routes)affectedRoutes.add(route);let importers=fileToImporters.get(current);if(importers)for(let importer of importers)visited.has(importer)||queue.push(importer)}return Array.from(affectedRoutes)}__name(resolveAffectedRoutes,"resolveAffectedRoutes");function resolveRoutes(changedFiles,options={}){let root=options.cwd??process.cwd(),srcDir=path23.resolve(root,"src"),normalizedChangedFiles=changedFiles.map(f=>f.replace(/^\/+/,""));if(normalizedChangedFiles.length===0)return{routeMap:{},routes:[],unresolvedFiles:[]};let fileToRoutes=discoverRoutes(srcDir,root),fileToImporters=buildReverseImportGraph(srcDir,root),routeMap={},unresolvedFiles=[];for(let file of normalizedChangedFiles){if(isGlobalFile(file)){routeMap[file]=["*"];continue}let routes=resolveAffectedRoutes(file,fileToImporters,fileToRoutes);routes.length>0?routeMap[file]=routes:unresolvedFiles.push(file)}let allRoutes=[...new Set(Object.values(routeMap).flat().filter(r=>r!=="*"))];return{routeMap,routes:allRoutes,unresolvedFiles}}__name(resolveRoutes,"resolveRoutes");function resolveCwd(options){return options.cwd?resolve7(options.cwd):process.cwd()}__name(resolveCwd,"resolveCwd");function renderPrettyJson4(data){return JSON.stringify(data,null,2)}__name(renderPrettyJson4,"renderPrettyJson");async function syncSchemasCommand(options){let cwd=resolveCwd(options),framework=await detectProjectFramework(cwd),result=syncSchemas({cwd,framework:framework?.slug??null});ui.result({command:"scripts sync-schemas",data:result,render:__name(()=>renderPrettyJson4(result),"render")})}__name(syncSchemasCommand,"syncSchemasCommand");async function syncFormsCommand(options){let cwd=resolveCwd(options),framework=await detectProjectFramework(cwd),result=syncForms({cwd,framework:framework?.slug??null});ui.result({command:"scripts sync-forms",data:result,render:__name(()=>renderPrettyJson4(result),"render")})}__name(syncFormsCommand,"syncFormsCommand");async function exportStaticCommand(options){let result=await exportStatic({cwd:resolveCwd(options)});ui.result({command:"export-static",data:result??{ok:!0},render:__name(()=>renderPrettyJson4(result??{ok:!0}),"render")})}__name(exportStaticCommand,"exportStaticCommand");function validateRouteMetadataCommand(options){let result=validateRouteMetadata({cwd:resolveCwd(options)});result.errors.length>0&&(ui.error({command:"scripts validate-route-metadata",code:"ROUTE_METADATA_INVALID",message:`Route metadata validation failed (${result.errors.length} issue(s)):
2469
2469
  ${result.errors.map(e=>` - ${e}`).join(`
2470
- `)}`}),process.exit(1)),ui.ok({command:"scripts validate-route-metadata",headline:`Route metadata validation passed (${result.routesChecked} route${result.routesChecked===1?"":"s"}).`,details:{routes_checked:result.routesChecked}})}__name(validateRouteMetadataCommand,"validateRouteMetadataCommand");function extractTranslationsCommand(options){let cwd=resolveCwd(options),data={keys:extractTranslations({cwd}).keys.length};ui.result({command:"scripts extract-translations",data,render:__name(()=>JSON.stringify(data),"render")})}__name(extractTranslationsCommand,"extractTranslationsCommand");function resolveRoutesCommand(changedFiles,options){let cwd=resolveCwd(options),files2=[];if(changedFiles.length===1&&changedFiles[0].startsWith("{"))try{files2=JSON.parse(changedFiles[0]).files??[]}catch{files2=[]}else files2=changedFiles;let output=resolveRoutes(files2,{cwd});ui.result({command:"resolve-routes",data:output,render:__name(()=>JSON.stringify(output),"render")})}__name(resolveRoutesCommand,"resolveRoutesCommand");function lintProject(opts){let files2=opts.targetPath?[resolve7(opts.cwd,opts.targetPath)]:collectFiles2(resolve7(opts.cwd,"src")),errors=[],filesChecked=0;for(let file of files2)if(/\.(tsx?|jsx?)$/.test(file))try{let code2=readFileSync8(file,"utf-8");errors.push(...lintTranslationKeys(file,code2)),filesChecked++}catch{}return{errors,filesChecked}}__name(lintProject,"lintProject");function lintCommand(targetPath,options){let cwd=resolveCwd(options),result=lintProject({cwd,targetPath});ui.result({command:"scripts lint",data:result,render:__name(()=>JSON.stringify(result),"render")}),result.errors.length>0&&process.exit(1)}__name(lintCommand,"lintCommand");function collectFiles2(root){if(!existsSync9(root))return[];let results=[];for(let name of readdirSync6(root)){if(name==="node_modules"||name==="dist"||name===".git")continue;let full=join9(root,name);statSync3(full).isDirectory()?results.push(...collectFiles2(full)):results.push(full)}return results}__name(collectFiles2,"collectFiles");async function validateCommand(options,cmd){let cwd=resolveProjectCwd(options.cwd),branchOverride2=branchOverrideFromCommand(cmd),dependencyWarnings=[],report2=await runValidate({cwd,branchOverride:branchOverride2,onWarning:__name(warning=>dependencyWarnings.push(warning),"onWarning")}),packageManager=await resolvePackageManagerContract(cwd),warnings=[getDbLabelsRuntimeWarning(cwd),packageManager.status==="inferred"?packageManager.warning:null,...dependencyWarnings,...report2.warnings.map(warning=>warning.message)].filter(warning=>!!warning);ui.result({command:"validate",data:report2,render:__name(()=>formatReportHuman(report2),"render"),warnings:warnings.length>0?warnings:void 0}),report2.ok||(process.exitCode=report2.exitCode)}__name(validateCommand,"validateCommand");async function runValidate(opts){let{cwd,branchOverride:branchOverride2,onWarning}=opts,[checks,repoMediaWarnings]=await Promise.all([runChecksPhase({cwd,onWarning}),findMediaCommittedToRepo(cwd,onWarning)]),codegen,labelKeys=null;if(checks.errors.length>0)codegen=skippedPhase("Codegen","static checks failed");else{let codegenResult=await runCodegenPhase({cwd});codegen=codegenResult.phase,labelKeys=codegenResult.labelKeys}let sync;return checks.errors.length>0?sync=skippedPhase("Labels","static checks failed"):labelKeys===null?sync=skippedPhase("Labels","label key scan failed"):sync=await runLabelsPhase({cwd,labelKeys,branchOverride:branchOverride2}),{...finalizeReport({phases:{checks,codegen,sync}}),warnings:[...findContentTypesWithoutObservedConsumer(cwd),...repoMediaWarnings]}}__name(runValidate,"runValidate");var SCHEMAS_DIR_REL="src/schemas",SOURCE_FILE_PATTERN=/\.(?:[cm]?[jt]sx?|astro|svelte|vue)$/,IGNORED_SCAN_DIRS=new Set(["node_modules","dist","build","out","coverage"]),execFileAsync7=promisify8(execFile8),GIT_LS_FILES_MAX_BUFFER=256*1024*1024,MEDIA_FILE_PATTERN=/\.(?:png|jpe?g|webp|gif|avif|mp4|webm|mov)$/i,REPO_MEDIA_ALLOWLIST=/^(?:favicon|apple-touch-icon|apple-icon|android-chrome|mstile|icon|opengraph-image|twitter-image)\d*(?:[-.@_]|$)/i;async function findMediaCommittedToRepo(cwd,onWarning){if(!await isGitRepo(cwd))return[];let listed;try{({stdout:listed}=await execFileAsync7("git",["ls-files","-z","--cached","--others","--exclude-standard"],{cwd,maxBuffer:GIT_LS_FILES_MAX_BUFFER}))}catch(error){return onWarning?.(`Committed media check skipped: git could not list the project files (${error instanceof Error?error.message:String(error)}).`),[]}let files2=[...new Set(listed.split("\0"))].filter(file=>MEDIA_FILE_PATTERN.test(file)&&!REPO_MEDIA_ALLOWLIST.test(path24.posix.basename(file))&&!file.split("/").slice(0,-1).some(dir=>IGNORED_SCAN_DIRS.has(dir))&&existsSync10(path24.join(cwd,file))).sort();return files2.length===0?[]:[{code:"media/committed-to-repo",message:`${files2.length} image or video ${files2.length===1?"file is":"files are"} committed to the repo instead of the Media Library: ${files2.join(", ")}. Upload each with \`fimo assets upload <file>\` (or a batch with \`fimo assets bulk-upload --file <manifest.json>\`), use the returned asset URL in code, and delete the repo copy.`,files:files2}]}__name(findMediaCommittedToRepo,"findMediaCommittedToRepo");var require4=createRequire3(import.meta.url);function findContentTypesWithoutObservedConsumer(cwd){let definitions=readSchemaDefinitions(cwd);if(definitions.length===0)return[];let sources=readProjectSources(cwd);if(sources.length===0)return[];if(sources.some(source=>source.modules.has("index")))return[];let observed=new Set(definitions.filter(definition=>sources.some(source=>source.modules.has(definition.pascal)||source.uids.has(definition.uid))).map(d3=>d3.uid)),byUid=new Map(definitions.map(definition=>[definition.uid,definition])),pending=[...observed];for(;pending.length>0;)for(let target of byUid.get(pending.pop())?.references??[])byUid.has(target)&&!observed.has(target)&&(observed.add(target),pending.push(target));return definitions.filter(definition=>!observed.has(definition.uid)).map(definition=>({code:"content/no-observed-consumer",message:`Content type "${definition.uid}" has no observed consumer in this preview: no file outside ${SCHEMAS_DIR_REL} imports its generated client "${SCHEMAS_DIR_REL}/${definition.pascal}" or names "${definition.uid}". Its entries can be live in Fimo and never reach the site. Only this workspace was scanned (${sources.length} source ${sources.length===1?"file":"files"}), so code outside it was not inspected.`,file:definition.file,evidence:{uid:definition.uid,module:`${SCHEMAS_DIR_REL}/${definition.pascal}`,sourceFilesScanned:sources.length,scope:"workspace-static-imports"}}))}__name(findContentTypesWithoutObservedConsumer,"findContentTypesWithoutObservedConsumer");function readSourceConsumers(file,source){let consumers={modules:new Set,uids:new Set},{parseSync:parseSync3,Visitor}=require4("oxc-parser"),literal=__name(node=>{if(node?.type==="Literal"&&typeof node.value=="string")return node.value;if(node?.type==="TemplateLiteral"&&node.expressions.length===0)return node.quasis[0]?.value.cooked??void 0},"literal"),observeImport=__name(specifier=>{let match=specifier?.match(/(?:^|\/)schemas(?:\/([^/]+))?$/);match&&consumers.modules.add((match[1]??"index").replace(/\.(?:[cm]?[jt]sx?|json)$/,"").replace(/\.(?:client|server|types)$/,""))},"observeImport"),modules=[source];if(/\.(?:svelte|vue|astro)$/.test(file)){let frontmatter=file.endsWith(".astro")?source.match(/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/):null;modules=[...source.slice(frontmatter?.[0].length??0).replace(/<!--[\s\S]*?-->/g,"").matchAll(/<script\b[^>]*>([\s\S]*?)<\/script>/gi)].map(match=>match[1]),frontmatter&&modules.push(frontmatter[1])}for(let code2 of modules){let parsed=parseSync3(/\.[cm]?[jt]sx?$/.test(file)?file:`${file}.tsx`,code2);parsed.errors.length>0||new Visitor({ImportDeclaration:__name(node=>observeImport(node.source.value),"ImportDeclaration"),ExportNamedDeclaration:__name(node=>observeImport(node.source?.value),"ExportNamedDeclaration"),ExportAllDeclaration:__name(node=>observeImport(node.source.value),"ExportAllDeclaration"),ImportExpression:__name(node=>observeImport(literal(node.source)),"ImportExpression"),CallExpression:__name(node=>{node.callee.type==="Identifier"&&node.callee.name==="require"&&observeImport(literal(node.arguments[0]));for(let argument of node.arguments){let uid=literal(argument);uid&&consumers.uids.add(uid)}},"CallExpression"),MemberExpression:__name(node=>{let uid=node.computed?literal(node.property):void 0;uid&&consumers.uids.add(uid)},"MemberExpression")}).visit(parsed.program)}return consumers}__name(readSourceConsumers,"readSourceConsumers");function readSchemaDefinitions(cwd){let fileNames;try{fileNames=readdirSync7(path24.join(cwd,SCHEMAS_DIR_REL)).filter(name=>name.endsWith(".json")).sort()}catch{return[]}let definitions=[];for(let name of fileNames){let parsed;try{parsed=JSON.parse(readFileSync9(path24.join(cwd,SCHEMAS_DIR_REL,name),"utf8"))}catch{continue}let uid=path24.basename(name,".json");definitions.push({uid,pascal:pascalCase(uid),file:`${SCHEMAS_DIR_REL}/${name}`,references:collectReferenceTargets(parsed,[])})}return definitions}__name(readSchemaDefinitions,"readSchemaDefinitions");function collectReferenceTargets(node,targets){if(Array.isArray(node)){for(let item of node)collectReferenceTargets(item,targets);return targets}if(node===null||typeof node!="object")return targets;let record=node;if(record.type==="reference")for(let target of[record.target,...Array.isArray(record.targets)?record.targets:[]])typeof target=="string"&&targets.push(target);for(let value of Object.values(record))collectReferenceTargets(value,targets);return targets}__name(collectReferenceTargets,"collectReferenceTargets");function readProjectSources(cwd){let schemasDir=path24.join(cwd,SCHEMAS_DIR_REL),sources=[],walk=__name(dir=>{let entries2;try{entries2=readdirSync7(dir,{withFileTypes:!0})}catch{return}for(let entry of entries2){let full=path24.join(dir,entry.name);if(entry.isDirectory()){if(entry.name.startsWith(".")||IGNORED_SCAN_DIRS.has(entry.name)||full===schemasDir)continue;walk(full)}else if(entry.isFile()&&SOURCE_FILE_PATTERN.test(entry.name))try{sources.push(readSourceConsumers(full,readFileSync9(full,"utf8")))}catch{}}},"walk");return walk(cwd),sources}__name(readProjectSources,"readProjectSources");async function runChecksPhase(opts){let{cwd,onWarning}=opts,[lintResult,routeResult,schemasResult,configResult,packageManagerResult,dependencyResult]=await Promise.allSettled([Promise.resolve().then(()=>lintProject({cwd})),Promise.resolve().then(()=>runRouteMetadataCheck({cwd})),Promise.resolve().then(()=>validateSchemas({cwd})),Promise.resolve().then(()=>validateFimoConfig(cwd)),Promise.resolve().then(()=>resolvePackageManagerContract(cwd)),Promise.resolve().then(()=>inspectDependencyLifecycleScripts(cwd))]),errors=[],stats={};if(lintResult.status==="fulfilled"){stats.filesLinted=lintResult.value.filesChecked;for(let err of lintResult.value.errors)errors.push(authorError({rule:`lint/${err.rule}`,message:err.message,file:err.file,line:err.line,column:err.column}))}else errors.push(infraErrorFromException("lint",lintResult.reason));if(routeResult.status==="fulfilled"){if(routeResult.value){stats.routesChecked=routeResult.value.routesChecked;for(let message of routeResult.value.errors)errors.push(authorError({rule:"route-metadata",message}))}}else errors.push(infraErrorFromException("route-metadata",routeResult.reason));if(schemasResult.status==="fulfilled"){stats.schemasChecked=schemasResult.value.schemasChecked;for(let err of schemasResult.value.errors)errors.push(authorError({rule:err.rule,message:err.message,file:err.file}))}else errors.push(infraErrorFromException("schemas",schemasResult.reason));if(configResult.status==="fulfilled"){stats.configsChecked=Number(configResult.value.configChecked);for(let message of configResult.value.errors)errors.push(authorError({rule:"fimo-config",message}))}else errors.push(infraErrorFromException("fimo-config",configResult.reason));if(packageManagerResult.status==="fulfilled"){let contract=packageManagerResult.value;contract.status==="unresolved"&&errors.push(authorError({rule:`package-manager/${contract.violation}`,message:contract.message,file:"package.json"}))}else errors.push(infraErrorFromException("package-manager",packageManagerResult.reason));return dependencyResult.status==="fulfilled"?dependencyResult.value.status==="warning"?onWarning?.(dependencyResult.value.message):dependencyResult.value.status==="blocked"&&errors.push(authorError({rule:"dependency-build-scripts",message:`${dependencyResult.value.packageManager} blocked lifecycle scripts for: ${dependencyResult.value.packages.join(", ")}. Add these packages to the project's explicit build-script approval policy, reinstall, and re-run validation.`})):onWarning?.(`Dependency lifecycle-script approval check skipped: inspection failed (${dependencyResult.reason instanceof Error?dependencyResult.reason.message:String(dependencyResult.reason)}).`),{name:"Checks",ok:errors.length===0,errors,stats}}__name(runChecksPhase,"runChecksPhase");async function runRouteMetadataCheck(opts){return(await detectProjectFramework(opts.cwd))?.slug!=="react-router"?null:validateRouteMetadata({cwd:opts.cwd})}__name(runRouteMetadataCheck,"runRouteMetadataCheck");async function runCodegenPhase(opts){let{cwd}=opts,frameworkResult=detectProjectFramework(cwd),[schemasResult,formsResult,labelsResult]=await Promise.allSettled([frameworkResult.then(framework=>syncSchemas({cwd,framework:framework?.slug??null,verbose:!1})),frameworkResult.then(framework=>syncForms({cwd,framework:framework?.slug??null,verbose:!1})),Promise.resolve().then(()=>extractLabelKeys({cwd}))]),errors=[],stats={};schemasResult.status==="fulfilled"?(stats.schemasCreated=schemasResult.value.created,stats.schemasUpdated=schemasResult.value.updated,stats.schemasDeleted=schemasResult.value.deleted):errors.push(infraErrorFromException("sync-schemas",schemasResult.reason)),formsResult.status==="fulfilled"?(stats.formsCreated=formsResult.value.created,stats.formsUpdated=formsResult.value.updated,stats.formsDeleted=formsResult.value.deleted):errors.push(infraErrorFromException("sync-forms",formsResult.reason));let labelKeys=null;return labelsResult.status==="fulfilled"?(labelKeys=labelsResult.value,stats.labelsDeclared=labelKeys.length):errors.push(infraErrorFromException("extract-label-keys",labelsResult.reason)),{phase:{name:"Codegen",ok:errors.length===0,errors,stats},labelKeys}}__name(runCodegenPhase,"runCodegenPhase");async function runLabelsPhase(opts){let{cwd,labelKeys,branchOverride:branchOverride2}=opts;if(labelKeys.length===0)return{name:"Labels",ok:!0,errors:[],stats:{labelsDeclared:0,labelsMissing:0}};let ctx;try{ctx=await getProjectContext({cwd,branchOverride:branchOverride2})}catch(error){return rethrowCliAuthError(error),{name:"Labels",ok:!1,errors:[infraErrorFromException("load-project-settings",error)]}}let fimo=createCliFimoClient(loadConfig(),ctx.branch),locale=getConfigServer(cwd).i18n?.defaultLocale??"en";try{let labels2=await loadLabelsForValidation({cwd,locale,projectId:ctx.projectId,loadAuthenticatedLabels:__name(async()=>(await fimo.execute("labels.list",{projectId:ctx.projectId,branch:ctx.branch,locale})).data,"loadAuthenticatedLabels")}),existingKeys=new Set(Object.keys(labels2)),missing=labelKeys.filter(label=>!existingKeys.has(label.key));return{name:"Labels",ok:missing.length===0,errors:missing.map(label=>authorError({rule:"labels/missing",message:`Missing label "${label.key}" for locale "${locale}". Run: fimo labels set ${JSON.stringify(label.key)} --locale ${locale} --value "...".`,file:label.file})),stats:{labelsDeclared:labelKeys.length,labelsMissing:missing.length}}}catch(error){return rethrowCliAuthError(error),{name:"Labels",ok:!1,errors:[infraErrorFromException("labels-check",error)]}}}__name(runLabelsPhase,"runLabelsPhase");function labelsToRecord(labels2){return Object.fromEntries(labels2.map(label=>[label.key,label.value??label.defaultValue??""]))}__name(labelsToRecord,"labelsToRecord");async function loadPublicTenantLabels(cwd,locale){let env=await readProjectEnv(cwd),apiUrl=env.VITE_API_URL;if(!apiUrl)return null;try{let url=new URL("/labels",apiUrl);url.searchParams.set("locale",locale);let headers=env.FIMO_ENV?{"X-Fimo-Branch":env.FIMO_ENV}:{},response=await fetchWithTimeout(url,3e4,headers);if(!response.ok)return null;let body=await response.json();return Array.isArray(body.data)?labelsToRecord(body.data):body.data?.labels??null}catch{return null}}__name(loadPublicTenantLabels,"loadPublicTenantLabels");async function loadLabelsForValidation({cwd,locale,projectId:projectId2,loadAuthenticatedLabels}){let env=await readProjectEnv(cwd);if(!env.VITE_API_URL)return labelsToRecord(await loadAuthenticatedLabels());let labels2=await loadPublicTenantLabels(cwd,locale);if(labels2==null)throw new Error(`Could not read labels from project "${projectId2}" env "${env.FIMO_ENV??"main"}"`);return labels2}__name(loadLabelsForValidation,"loadLabelsForValidation");async function fetchWithTimeout(url,timeoutMs,headers){let controller=new AbortController,timeout=setTimeout(()=>controller.abort(),timeoutMs);try{return await fetch(url,{signal:controller.signal,headers})}finally{clearTimeout(timeout)}}__name(fetchWithTimeout,"fetchWithTimeout");async function readProjectEnv(cwd){let values=readLocalEnvFiles(cwd);if(process.env.VITE_API_URL&&(values.VITE_API_URL=process.env.VITE_API_URL),process.env.FIMO_ENV&&(values.FIMO_ENV=process.env.FIMO_ENV),!values.VITE_API_URL){let derived=resolveLocalRuntimeEnv({cwd});derived&&(values.VITE_API_URL=derived.tenantApiUrl,values.FIMO_ENV??=derived.env)}return values}__name(readProjectEnv,"readProjectEnv");async function deployCommand(options,cmd){if(process.env.FIMO_MIGRATION_NO_DEPLOY==="1"){ui.error({command:"deploy",code:"MIGRATION_DEPLOY_BLOCKED",message:"Deployment is disabled while a migration is running.",hint:"Finish local migration and QA first, then request deployment separately."});return}let cwd=resolveProjectCwd(options.cwd),local;try{local=loadProjectSettings(cwd)}catch{ui.error({command:"deploy",code:"NOT_IN_PROJECT",message:"You are not in a Fimo site.",hint:"Run `fimo create` to start one, or cd into a linked site."});return}if(!await isGitRepo(cwd)){ui.error({command:"deploy",code:"NOT_A_GIT_REPO",message:"Not a git repository."});return}if(await isProjectTokenTracked(cwd)){ui.error({command:"deploy",code:"PROJECT_TOKEN_TRACKED",message:`${PROJECT_TOKEN_FILE} is tracked by git, so deploying would push this site's access token.`,hint:`Run \`git rm --cached ${PROJECT_TOKEN_FILE}\`, add \`${LOCAL_CREDENTIALS_PATTERN}\` to .gitignore, and commit before deploying.`});return}let isPretty2=currentMode().format==="pretty";isPretty2&&mt(options.publish?"Deploying and publishing":"Deploying to preview");let branchOverride2=branchOverrideFromCommand(cmd),ctx=await getProjectContext({cwd,branchOverride:branchOverride2});if(isPretty2&&process.stderr.write(`${branchSourceBanner(ctx)}
2471
- `),ctx.readOnly){ui.error({command:"deploy",code:"BRANCH_READONLY",message:`Refusing to deploy to read-only Branch '${ctx.branch}'.`,hint:"Switch off the release/* tag or pass --branch <writable-branch>."});return}let cfg=loadConfig(),fimo=createCliFimoClient(cfg,ctx.branch),git=createGitService(cfg,ctx.branch),sandbox=createSandboxService(cfg,ctx.branch),publication=createPublicationControlService(cfg,ctx.branch),studioUrl=buildProjectPreviewUrl(cfg.webUrl,local.projectId,ctx.branch),{data:project}=await fimo.execute("projects.get",{projectId:local.projectId}),productionSourceBranch=project.productionSourceBranch??DEFAULT_BRANCH;if(options.publish&&ctx.branch!==productionSourceBranch){ui.error({command:"deploy",code:"PUBLISH_REQUIRES_SOURCE_BRANCH",message:`Refusing to --publish from Branch '${ctx.branch}'. Production publishes from '${productionSourceBranch}'.`,hint:`Drop --publish to deploy a preview, or switch to '${productionSourceBranch}' first.`});return}let devFimoSelection;try{devFimoSelection=resolveDevFimoDependencyForDeploy(cwd)}catch(error){ui.error({command:"deploy",code:"DEV_FIMO_VERSION_MISSING",message:errorMessage(error)});return}await requireOperation("fimo.deploy",{projectId:ctx.projectId,branch:ctx.branch});let remoteSp=spinner("Checking the Fimo branch"),remote;try{remote=await git.getRemote(local.projectId,ctx.branch),await ensureFimoRemote(cwd,remote.url);let preparation=await prepareDeployCheckout({cwd,remoteBranch:remote.branch});remoteSp.succeed(preparation==="missing-remote"?`Fimo branch ${remote.branch} will be created by this deploy`:`Checkout ready for fimo/${remote.branch}`)}catch(error){if(remoteSp.fail("Checkout is not ready to deploy"),error instanceof BranchCheckoutError){ui.error({command:"deploy",code:error.code,message:error.message,hint:error.hint});return}rethrowCliAuthError(error),ui.error({command:"deploy",code:"ENV_GIT_PREFLIGHT_FAILED",message:`Could not compare this checkout with the Fimo branch: ${errorMessage(error)}`});return}let validateSp=spinner("Validating site"),report2=await runValidate({cwd,branchOverride:branchOverride2});if(report2.ok){validateSp.succeed("Validation passed");let packageManagerWarning=getPackageManagerPinWarning(cwd);packageManagerWarning&&ui.warn({command:"deploy",message:packageManagerWarning})}else if(options.force)validateSp.fail("Validation failed \u2014 continuing anyway (--force)"),ui.warn({command:"deploy",message:"Bypassing validation errors because --force was passed. The deploy may still fail later in the sandbox."});else{validateSp.fail("Validation failed"),ui.result({command:"deploy",data:{stage:"validate",report:report2},render:__name(()=>formatReportHuman(report2),"render")}),process.exitCode=report2.exitCode;return}for(let warning of report2.warnings)warning.code==="media/committed-to-repo"&&ui.warn({command:"deploy",message:warning.message});let devFimoDependency=null;try{devFimoDependency=prepareDevFimoDependencyForDeploy(cwd,devFimoSelection)}catch(error){ui.error({command:"deploy",code:"DEV_FIMO_VERSION_MISSING",message:errorMessage(error)});return}devFimoDependency&&isPretty2&&O2.info(`Deploying with fimo ${devFimoDependency.version}; restoring local dependency state after push.`);try{if(await hasUncommittedChanges(cwd)){let message;if(options.message!==void 0)message=options.message;else{assertInteractive('Pass -m "<message>" or commit your changes manually.',"deploy"),isPretty2&&O2.warn("You have uncommitted changes. Commit them before deploying.");let answer=await Ot({message:"Commit message",placeholder:"Deploy",defaultValue:"Deploy"});if(q(answer)){ui.info({command:"deploy",message:"Cancelled."});return}message=String(answer)}let description=options.description?.trim(),commitSp=spinner("Committing pending changes");await runGit(["add","-A"],cwd),await runGit(["commit","-m",message,...description?["-m",description]:[]],cwd),commitSp.succeed("Changes committed")}else options.description!==void 0&&ui.warn({command:"deploy",message:"--description was not used: there were no uncommitted changes to commit."});let remoteBranch=remote.branch,pushSp=spinner(`Pushing to fimo/${remoteBranch}`);try{await runGit(["push","fimo",`HEAD:${remoteBranch}`],cwd),pushSp.succeed("Pushed to Fimo")}catch(error){pushSp.fail("Push failed");let failure=classifyPushError(error);emitPushFailure(failure,remoteBranch);return}}finally{devFimoDependency?.restore()}let stepLabel="",stepStartedAt=0,stepSp=null,finalizeStep=__name((status="ok",failMessage)=>{if(!stepSp)return;let elapsed=((Date.now()-stepStartedAt)/1e3).toFixed(1);status==="ok"?stepSp.succeed(`${stepLabel} (${elapsed}s)`):stepSp.fail(failMessage??`${stepLabel} failed`),stepSp=null},"finalizeStep");try{await sandbox.pull(local.projectId,({message})=>{finalizeStep("ok"),stepLabel=message,stepStartedAt=Date.now(),stepSp=spinner(message)},ctx.branch,{noRestart:options.restart===!1,wait:options.wait!==!1}),finalizeStep("ok")}catch(error){if(rethrowCliAuthError(error,()=>finalizeStep("fail","Authentication required")),error instanceof SandboxPullError){let failure=describeDeployFailure(error.failure,isPretty2);finalizeStep("fail",failure.step),ui.error({command:"deploy",...failure.envelope});return}finalizeStep("fail",`Sandbox sync failed: ${errorMessage(error)}`),ui.error({command:"deploy",code:"SANDBOX_SYNC_FAILED",message:`Sandbox sync failed: ${errorMessage(error)}`});return}if(!options.publish){ui.result({command:"deploy",data:{project_id:local.projectId,branch:ctx.branch,studio_url:studioUrl,dashboard_url:studioUrl,published:!1},render:__name(context=>renderDeployResult({studioUrl,appUrl:null,published:!1},context),"render")});return}let publishSp=spinner("Publishing (this can take a few minutes)"),publicationId;try{publicationId=await publication.publish(local.projectId)}catch(error){rethrowCliAuthError(error,()=>publishSp.fail("Authentication required")),publishSp.fail();let failedPublicationId=publicationIdFromError(error);ui.error({command:"deploy",code:"PUBLISH_FAILED",message:`Publish failed: ${errorMessage(error)}`,...failedPublicationId?{details:{publication_id:failedPublicationId},hint:`Run \`fimo publish logs ${failedPublicationId}\` for the build output that failed.`}:{}});return}publishSp.succeed("Published");let appUrl=null;try{let{data:fresh}=await fimo.execute("projects.get",{projectId:local.projectId});appUrl=fresh.appUrl??null}catch(error){isPretty2&&O2.warn(`Could not fetch published URL: ${errorMessage(error)}`)}ui.result({command:"deploy",data:{project_id:local.projectId,branch:ctx.branch,studio_url:studioUrl,dashboard_url:studioUrl,published:!0,publication_id:publicationId,app_url:appUrl},render:__name(context=>renderDeployResult({studioUrl,appUrl,published:!0},context),"render")})}__name(deployCommand,"deployCommand");var PHASE_LABELS={acquire:"acquiring the preview sandbox",pull:"pulling the Fimo branch into the preview sandbox","sync-env":"syncing the Branch environment into the preview sandbox",install:"installing dependencies",restart:"starting the dev server",readiness:"waiting for the preview to become ready"},RETRY_HINT="Run `fimo deploy` again. If it keeps failing, report it with `fimo support report`.";function deployFailureHint(failure){return failure.repair?`Review the listed packages, approve them through ${failure.repair.configFile}#${failure.repair.approvalKey}, commit the policy and lockfile, then run \`fimo deploy\` again. Never enable a global allow-all switch.`:failure.phase==="install"?"Reproduce with a clean install locally using the project's package manager, fix package.json and the lockfile so it passes, commit them, then run `fimo deploy` again.":failure.phase==="restart"?"Run the project's dev script locally to reproduce the startup error above, fix it, then run `fimo deploy` again.":failure.phase==="pull"?"Run `fimo deploy` again. If the pull keeps failing, report it with `fimo support report` and include the output above.":failure.phase==="readiness"||failure.code==="readiness_failed"?failure.logTail?.length?"Fix what the dev server reported above, then run `fimo deploy` again. Pass --no-wait to deploy without this check.":"Run `fimo logs` to see what the dev server reported, fix it, then deploy again. Pass --no-wait to deploy without this check.":RETRY_HINT}__name(deployFailureHint,"deployFailureHint");function describeDeployFailure(failure,isPretty2){let label=failure.phase?PHASE_LABELS[failure.phase]:null,exit=failure.exitCode!==void 0?` (exit code ${failure.exitCode})`:"",code2=failure.code==="readiness_failed"?"PREVIEW_NOT_READY":"SANDBOX_SYNC_FAILED",message;label?code2==="PREVIEW_NOT_READY"?message=`The revision was synced, but the preview never became ready. Failed while ${label}${exit}: ${failure.message}`:message=`Deploy failed while ${label}${exit}: ${failure.message}`:message=code2==="PREVIEW_NOT_READY"?`The revision was synced, but the preview never became ready: ${failure.message}`:`Sandbox sync failed: ${failure.message}`;let tail=failure.logTail??[];if(isPretty2&&tail.length>0){let heading=`Last ${tail.length} lines from the sandbox${failure.logTailTruncated?" (older output cut)":""}:`;message=[message,heading,...tail.map(line=>` ${line}`)].join(`
2470
+ `)}`}),process.exit(1)),ui.ok({command:"scripts validate-route-metadata",headline:`Route metadata validation passed (${result.routesChecked} route${result.routesChecked===1?"":"s"}).`,details:{routes_checked:result.routesChecked}})}__name(validateRouteMetadataCommand,"validateRouteMetadataCommand");function extractTranslationsCommand(options){let cwd=resolveCwd(options),data={keys:extractTranslations({cwd}).keys.length};ui.result({command:"scripts extract-translations",data,render:__name(()=>JSON.stringify(data),"render")})}__name(extractTranslationsCommand,"extractTranslationsCommand");function resolveRoutesCommand(changedFiles,options){let cwd=resolveCwd(options),files2=[];if(changedFiles.length===1&&changedFiles[0].startsWith("{"))try{files2=JSON.parse(changedFiles[0]).files??[]}catch{files2=[]}else files2=changedFiles;let output=resolveRoutes(files2,{cwd});ui.result({command:"resolve-routes",data:output,render:__name(()=>JSON.stringify(output),"render")})}__name(resolveRoutesCommand,"resolveRoutesCommand");function lintProject(opts){let files2=opts.targetPath?[resolve7(opts.cwd,opts.targetPath)]:collectFiles2(resolve7(opts.cwd,"src")),errors=[],filesChecked=0;for(let file of files2)if(/\.(tsx?|jsx?)$/.test(file))try{let code2=readFileSync8(file,"utf-8");errors.push(...lintTranslationKeys(file,code2)),filesChecked++}catch{}return{errors,filesChecked}}__name(lintProject,"lintProject");function lintCommand(targetPath,options){let cwd=resolveCwd(options),result=lintProject({cwd,targetPath});ui.result({command:"scripts lint",data:result,render:__name(()=>JSON.stringify(result),"render")}),result.errors.length>0&&process.exit(1)}__name(lintCommand,"lintCommand");function collectFiles2(root){if(!existsSync9(root))return[];let results=[];for(let name of readdirSync6(root)){if(name==="node_modules"||name==="dist"||name===".git")continue;let full=join9(root,name);statSync3(full).isDirectory()?results.push(...collectFiles2(full)):results.push(full)}return results}__name(collectFiles2,"collectFiles");async function validateCommand(options,cmd){let cwd=resolveProjectCwd(options.cwd),branchOverride2=branchOverrideFromCommand(cmd),dependencyWarnings=[],report2=await runValidate({cwd,branchOverride:branchOverride2,onWarning:__name(warning=>dependencyWarnings.push(warning),"onWarning")}),packageManager=await resolvePackageManagerContract(cwd),warnings=[getDbLabelsRuntimeWarning(cwd),packageManager.status==="inferred"?packageManager.warning:null,...dependencyWarnings,...report2.warnings.map(warning=>warning.message)].filter(warning=>!!warning);ui.result({command:"validate",data:report2,render:__name(()=>formatReportHuman(report2),"render"),warnings:warnings.length>0?warnings:void 0}),report2.ok||(process.exitCode=report2.exitCode)}__name(validateCommand,"validateCommand");async function runValidate(opts){let{cwd,branchOverride:branchOverride2,onWarning}=opts,[checks,repoMediaWarnings]=await Promise.all([runChecksPhase({cwd,onWarning}),findMediaCommittedToRepo(cwd,onWarning)]),codegen,labelKeys=null;if(checks.errors.length>0)codegen=skippedPhase("Codegen","static checks failed");else{let codegenResult=await runCodegenPhase({cwd});codegen=codegenResult.phase,labelKeys=codegenResult.labelKeys}let sync;return checks.errors.length>0?sync=skippedPhase("Labels","static checks failed"):labelKeys===null?sync=skippedPhase("Labels","label key scan failed"):sync=await runLabelsPhase({cwd,labelKeys,branchOverride:branchOverride2}),{...finalizeReport({phases:{checks,codegen,sync}}),warnings:[...findContentTypesWithoutObservedConsumer(cwd),...repoMediaWarnings]}}__name(runValidate,"runValidate");var SCHEMAS_DIR_REL="src/schemas",SOURCE_FILE_PATTERN=/\.(?:[cm]?[jt]sx?|astro|svelte|vue)$/,IGNORED_SCAN_DIRS=new Set(["node_modules","dist","build","out","coverage"]),execFileAsync7=promisify8(execFile8),GIT_LS_FILES_MAX_BUFFER=256*1024*1024,MEDIA_FILE_PATTERN=/\.(?:png|jpe?g|webp|gif|avif|mp4|webm|mov)$/i,REPO_MEDIA_ALLOWLIST=/^(?:favicon|apple-touch-icon|apple-icon|android-chrome|mstile|icon|opengraph-image|twitter-image)\d*(?:[-.@_]|$)/i;async function findMediaCommittedToRepo(cwd,onWarning){if(!await isGitRepo(cwd))return[];let listed;try{({stdout:listed}=await execFileAsync7("git",["ls-files","-z","--cached","--others","--exclude-standard"],{cwd,maxBuffer:GIT_LS_FILES_MAX_BUFFER}))}catch(error){return onWarning?.(`Committed media check skipped: git could not list the project files (${error instanceof Error?error.message:String(error)}).`),[]}let files2=[...new Set(listed.split("\0"))].filter(file=>MEDIA_FILE_PATTERN.test(file)&&!REPO_MEDIA_ALLOWLIST.test(path24.posix.basename(file))&&!file.split("/").slice(0,-1).some(dir=>IGNORED_SCAN_DIRS.has(dir))&&existsSync10(path24.join(cwd,file))).sort();return files2.length===0?[]:[{code:"media/committed-to-repo",message:`${files2.length} image or video ${files2.length===1?"file is":"files are"} committed to the repo instead of the Media Library: ${files2.join(", ")}. Upload each with \`fimo assets upload <file>\` (or a batch with \`fimo assets bulk-upload --file <manifest.json>\`), use the returned asset URL in code, and delete the repo copy.`,files:files2}]}__name(findMediaCommittedToRepo,"findMediaCommittedToRepo");var require4=createRequire3(import.meta.url);function findContentTypesWithoutObservedConsumer(cwd){let definitions=readSchemaDefinitions(cwd);if(definitions.length===0)return[];let sources=readProjectSources(cwd);if(sources.length===0)return[];if(sources.some(source=>source.modules.has("index")))return[];let observed=new Set(definitions.filter(definition=>sources.some(source=>source.modules.has(definition.pascal)||source.uids.has(definition.uid))).map(d3=>d3.uid)),byUid=new Map(definitions.map(definition=>[definition.uid,definition])),pending=[...observed];for(;pending.length>0;)for(let target of byUid.get(pending.pop())?.references??[])byUid.has(target)&&!observed.has(target)&&(observed.add(target),pending.push(target));return definitions.filter(definition=>!observed.has(definition.uid)).map(definition=>({code:"content/no-observed-consumer",message:`Content type "${definition.uid}" has no observed consumer in this preview: no file outside ${SCHEMAS_DIR_REL} imports its generated client "${SCHEMAS_DIR_REL}/${definition.pascal}" or names "${definition.uid}". Its entries can be live in Fimo and never reach the site. Only this workspace was scanned (${sources.length} source ${sources.length===1?"file":"files"}), so code outside it was not inspected.`,file:definition.file,evidence:{uid:definition.uid,module:`${SCHEMAS_DIR_REL}/${definition.pascal}`,sourceFilesScanned:sources.length,scope:"workspace-static-imports"}}))}__name(findContentTypesWithoutObservedConsumer,"findContentTypesWithoutObservedConsumer");function readSourceConsumers(file,source){let consumers={modules:new Set,uids:new Set},{parseSync:parseSync3,Visitor}=require4("oxc-parser"),literal=__name(node=>{if(node?.type==="Literal"&&typeof node.value=="string")return node.value;if(node?.type==="TemplateLiteral"&&node.expressions.length===0)return node.quasis[0]?.value.cooked??void 0},"literal"),observeImport=__name(specifier=>{let match=specifier?.match(/(?:^|\/)schemas(?:\/([^/]+))?$/);match&&consumers.modules.add((match[1]??"index").replace(/\.(?:[cm]?[jt]sx?|json)$/,"").replace(/\.(?:client|server|types)$/,""))},"observeImport"),modules=[source];if(/\.(?:svelte|vue|astro)$/.test(file)){let frontmatter=file.endsWith(".astro")?source.match(/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/):null;modules=[...source.slice(frontmatter?.[0].length??0).replace(/<!--[\s\S]*?-->/g,"").matchAll(/<script\b[^>]*>([\s\S]*?)<\/script>/gi)].map(match=>match[1]),frontmatter&&modules.push(frontmatter[1])}for(let code2 of modules){let parsed=parseSync3(/\.[cm]?[jt]sx?$/.test(file)?file:`${file}.tsx`,code2);parsed.errors.length>0||new Visitor({ImportDeclaration:__name(node=>observeImport(node.source.value),"ImportDeclaration"),ExportNamedDeclaration:__name(node=>observeImport(node.source?.value),"ExportNamedDeclaration"),ExportAllDeclaration:__name(node=>observeImport(node.source.value),"ExportAllDeclaration"),ImportExpression:__name(node=>observeImport(literal(node.source)),"ImportExpression"),CallExpression:__name(node=>{node.callee.type==="Identifier"&&node.callee.name==="require"&&observeImport(literal(node.arguments[0]));for(let argument of node.arguments){let uid=literal(argument);uid&&consumers.uids.add(uid)}},"CallExpression"),MemberExpression:__name(node=>{let uid=node.computed?literal(node.property):void 0;uid&&consumers.uids.add(uid)},"MemberExpression")}).visit(parsed.program)}return consumers}__name(readSourceConsumers,"readSourceConsumers");function readSchemaDefinitions(cwd){let fileNames;try{fileNames=readdirSync7(path24.join(cwd,SCHEMAS_DIR_REL)).filter(name=>name.endsWith(".json")).sort()}catch{return[]}let definitions=[];for(let name of fileNames){let parsed;try{parsed=JSON.parse(readFileSync9(path24.join(cwd,SCHEMAS_DIR_REL,name),"utf8"))}catch{continue}let uid=path24.basename(name,".json");definitions.push({uid,pascal:pascalCase(uid),file:`${SCHEMAS_DIR_REL}/${name}`,references:collectReferenceTargets(parsed,[])})}return definitions}__name(readSchemaDefinitions,"readSchemaDefinitions");function collectReferenceTargets(node,targets){if(Array.isArray(node)){for(let item of node)collectReferenceTargets(item,targets);return targets}if(node===null||typeof node!="object")return targets;let record=node;if(record.type==="reference")for(let target of[record.target,...Array.isArray(record.targets)?record.targets:[]])typeof target=="string"&&targets.push(target);for(let value of Object.values(record))collectReferenceTargets(value,targets);return targets}__name(collectReferenceTargets,"collectReferenceTargets");function readProjectSources(cwd){let schemasDir=path24.join(cwd,SCHEMAS_DIR_REL),sources=[],walk=__name(dir=>{let entries2;try{entries2=readdirSync7(dir,{withFileTypes:!0})}catch{return}for(let entry of entries2){let full=path24.join(dir,entry.name);if(entry.isDirectory()){if(entry.name.startsWith(".")||IGNORED_SCAN_DIRS.has(entry.name)||full===schemasDir)continue;walk(full)}else if(entry.isFile()&&SOURCE_FILE_PATTERN.test(entry.name))try{sources.push(readSourceConsumers(full,readFileSync9(full,"utf8")))}catch{}}},"walk");return walk(cwd),sources}__name(readProjectSources,"readProjectSources");async function runChecksPhase(opts){let{cwd,onWarning}=opts,[lintResult,routeResult,schemasResult,configResult,packageManagerResult,dependencyResult]=await Promise.allSettled([Promise.resolve().then(()=>lintProject({cwd})),Promise.resolve().then(()=>runRouteMetadataCheck({cwd})),Promise.resolve().then(()=>validateSchemas({cwd})),Promise.resolve().then(()=>validateFimoConfig(cwd)),Promise.resolve().then(()=>resolvePackageManagerContract(cwd)),Promise.resolve().then(()=>inspectDependencyLifecycleScripts(cwd))]),errors=[],stats={};if(lintResult.status==="fulfilled"){stats.filesLinted=lintResult.value.filesChecked;for(let err of lintResult.value.errors)errors.push(authorError({rule:`lint/${err.rule}`,message:err.message,file:err.file,line:err.line,column:err.column}))}else errors.push(infraErrorFromException("lint",lintResult.reason));if(routeResult.status==="fulfilled"){if(routeResult.value){stats.routesChecked=routeResult.value.routesChecked;for(let message of routeResult.value.errors)errors.push(authorError({rule:"route-metadata",message}))}}else errors.push(infraErrorFromException("route-metadata",routeResult.reason));if(schemasResult.status==="fulfilled"){stats.schemasChecked=schemasResult.value.schemasChecked;for(let err of schemasResult.value.errors)errors.push(authorError({rule:err.rule,message:err.message,file:err.file}))}else errors.push(infraErrorFromException("schemas",schemasResult.reason));if(configResult.status==="fulfilled"){stats.configsChecked=Number(configResult.value.configChecked);for(let message of configResult.value.errors)errors.push(authorError({rule:"fimo-config",message}))}else errors.push(infraErrorFromException("fimo-config",configResult.reason));if(packageManagerResult.status==="fulfilled"){let contract=packageManagerResult.value;contract.status==="unresolved"&&errors.push(authorError({rule:`package-manager/${contract.violation}`,message:contract.message,file:"package.json"}))}else errors.push(infraErrorFromException("package-manager",packageManagerResult.reason));return dependencyResult.status==="fulfilled"?dependencyResult.value.status==="warning"?onWarning?.(dependencyResult.value.message):dependencyResult.value.status==="blocked"&&errors.push(authorError({rule:"dependency-build-scripts",message:`${dependencyResult.value.packageManager} blocked lifecycle scripts for: ${dependencyResult.value.packages.join(", ")}. Add these packages to the project's explicit build-script approval policy, reinstall, and re-run validation.`})):onWarning?.(`Dependency lifecycle-script approval check skipped: inspection failed (${dependencyResult.reason instanceof Error?dependencyResult.reason.message:String(dependencyResult.reason)}).`),{name:"Checks",ok:errors.length===0,errors,stats}}__name(runChecksPhase,"runChecksPhase");async function runRouteMetadataCheck(opts){return(await detectProjectFramework(opts.cwd))?.slug!=="react-router"?null:validateRouteMetadata({cwd:opts.cwd})}__name(runRouteMetadataCheck,"runRouteMetadataCheck");async function runCodegenPhase(opts){let{cwd}=opts,frameworkResult=detectProjectFramework(cwd),[schemasResult,formsResult,labelsResult]=await Promise.allSettled([frameworkResult.then(framework=>syncSchemas({cwd,framework:framework?.slug??null,verbose:!1})),frameworkResult.then(framework=>syncForms({cwd,framework:framework?.slug??null,verbose:!1})),Promise.resolve().then(()=>extractLabelKeys({cwd}))]),errors=[],stats={};schemasResult.status==="fulfilled"?(stats.schemasCreated=schemasResult.value.created,stats.schemasUpdated=schemasResult.value.updated,stats.schemasDeleted=schemasResult.value.deleted):errors.push(infraErrorFromException("sync-schemas",schemasResult.reason)),formsResult.status==="fulfilled"?(stats.formsCreated=formsResult.value.created,stats.formsUpdated=formsResult.value.updated,stats.formsDeleted=formsResult.value.deleted):errors.push(infraErrorFromException("sync-forms",formsResult.reason));let labelKeys=null;return labelsResult.status==="fulfilled"?(labelKeys=labelsResult.value,stats.labelsDeclared=labelKeys.length):errors.push(infraErrorFromException("extract-label-keys",labelsResult.reason)),{phase:{name:"Codegen",ok:errors.length===0,errors,stats},labelKeys}}__name(runCodegenPhase,"runCodegenPhase");async function runLabelsPhase(opts){let{cwd,labelKeys,branchOverride:branchOverride2}=opts;if(labelKeys.length===0)return{name:"Labels",ok:!0,errors:[],stats:{labelsDeclared:0,labelsMissing:0}};let ctx;try{ctx=await getProjectContext({cwd,branchOverride:branchOverride2})}catch(error){return rethrowCliAuthError(error),{name:"Labels",ok:!1,errors:[infraErrorFromException("load-project-settings",error)]}}let fimo=createCliFimoClient(loadConfig(),ctx.branch),locale=getConfigServer(cwd).i18n?.defaultLocale??"en";try{let labels2=await loadLabelsForValidation({cwd,locale,projectId:ctx.projectId,loadAuthenticatedLabels:__name(async()=>(await fimo.execute("labels.list",{projectId:ctx.projectId,branch:ctx.branch,locale})).data,"loadAuthenticatedLabels")}),existingKeys=new Set(Object.keys(labels2)),missing=labelKeys.filter(label=>!existingKeys.has(label.key));return{name:"Labels",ok:missing.length===0,errors:missing.map(label=>authorError({rule:"labels/missing",message:`Missing label "${label.key}" for locale "${locale}". Run: fimo labels set ${JSON.stringify(label.key)} --locale ${locale} --value "...".`,file:label.file})),stats:{labelsDeclared:labelKeys.length,labelsMissing:missing.length}}}catch(error){return rethrowCliAuthError(error),{name:"Labels",ok:!1,errors:[infraErrorFromException("labels-check",error)]}}}__name(runLabelsPhase,"runLabelsPhase");function labelsToRecord(labels2){return Object.fromEntries(labels2.map(label=>[label.key,label.value??label.defaultValue??""]))}__name(labelsToRecord,"labelsToRecord");async function loadPublicTenantLabels(cwd,locale){let env=await readProjectEnv(cwd),apiUrl=env.VITE_API_URL;if(!apiUrl)return null;try{let url=new URL("/labels",apiUrl);url.searchParams.set("locale",locale);let headers=env.FIMO_ENV?{"X-Fimo-Branch":env.FIMO_ENV}:{},response=await fetchWithTimeout(url,3e4,headers);if(!response.ok)return null;let body=await response.json();return Array.isArray(body.data)?labelsToRecord(body.data):body.data?.labels??null}catch{return null}}__name(loadPublicTenantLabels,"loadPublicTenantLabels");async function loadLabelsForValidation({cwd,locale,projectId:projectId2,loadAuthenticatedLabels}){let env=await readProjectEnv(cwd);if(!env.VITE_API_URL)return labelsToRecord(await loadAuthenticatedLabels());let labels2=await loadPublicTenantLabels(cwd,locale);if(labels2==null)throw new Error(`Could not read labels from project "${projectId2}" env "${env.FIMO_ENV??"main"}"`);return labels2}__name(loadLabelsForValidation,"loadLabelsForValidation");async function fetchWithTimeout(url,timeoutMs,headers){let controller=new AbortController,timeout=setTimeout(()=>controller.abort(),timeoutMs);try{return await fetch(url,{signal:controller.signal,headers})}finally{clearTimeout(timeout)}}__name(fetchWithTimeout,"fetchWithTimeout");async function readProjectEnv(cwd){let values=readLocalEnvFiles(cwd);if(process.env.VITE_API_URL&&(values.VITE_API_URL=process.env.VITE_API_URL),process.env.FIMO_ENV&&(values.FIMO_ENV=process.env.FIMO_ENV),!values.VITE_API_URL){let derived=resolveLocalRuntimeEnv({cwd});derived&&(values.VITE_API_URL=derived.tenantApiUrl,values.FIMO_ENV??=derived.env)}return values}__name(readProjectEnv,"readProjectEnv");async function deployCommand(options,cmd){if(process.env.FIMO_MIGRATION_NO_DEPLOY==="1"){ui.error({command:"deploy",code:"MIGRATION_DEPLOY_BLOCKED",message:"Deployment is disabled while a migration is running.",hint:"Finish local migration and QA first, then request deployment separately."});return}options.restart===!1&&ui.warn({command:"deploy",message:"--no-restart is deprecated and has no effect: the Preview restarts only on the first deploy or when its variables changed."});let cwd=resolveProjectCwd(options.cwd),local;try{local=loadProjectSettings(cwd)}catch{ui.error({command:"deploy",code:"NOT_IN_PROJECT",message:"You are not in a Fimo site.",hint:"Run `fimo create` to start one, or cd into a linked site."});return}if(!await isGitRepo(cwd)){ui.error({command:"deploy",code:"NOT_A_GIT_REPO",message:"Not a git repository."});return}if(await isProjectTokenTracked(cwd)){ui.error({command:"deploy",code:"PROJECT_TOKEN_TRACKED",message:`${PROJECT_TOKEN_FILE} is tracked by git, so deploying would push this site's access token.`,hint:`Run \`git rm --cached ${PROJECT_TOKEN_FILE}\`, add \`${LOCAL_CREDENTIALS_PATTERN}\` to .gitignore, and commit before deploying.`});return}let isPretty2=currentMode().format==="pretty";isPretty2&&mt(options.publish?"Deploying and publishing":"Deploying to preview");let branchOverride2=branchOverrideFromCommand(cmd),ctx=await getProjectContext({cwd,branchOverride:branchOverride2});if(isPretty2&&process.stderr.write(`${branchSourceBanner(ctx)}
2471
+ `),ctx.readOnly){ui.error({command:"deploy",code:"BRANCH_READONLY",message:`Refusing to deploy to read-only Branch '${ctx.branch}'.`,hint:"Switch off the release/* tag or pass --branch <writable-branch>."});return}let cfg=loadConfig(),fimo=createCliFimoClient(cfg,ctx.branch),git=createGitService(cfg,ctx.branch),sandbox=createSandboxService(cfg,ctx.branch),publication=createPublicationControlService(cfg,ctx.branch),studioUrl=buildProjectPreviewUrl(cfg.webUrl,local.projectId,ctx.branch),{data:project}=await fimo.execute("projects.get",{projectId:local.projectId}),productionSourceBranch=project.productionSourceBranch??DEFAULT_BRANCH;if(options.publish&&ctx.branch!==productionSourceBranch){ui.error({command:"deploy",code:"PUBLISH_REQUIRES_SOURCE_BRANCH",message:`Refusing to --publish from Branch '${ctx.branch}'. Production publishes from '${productionSourceBranch}'.`,hint:`Drop --publish to deploy a preview, or switch to '${productionSourceBranch}' first.`});return}let devFimoSelection;try{devFimoSelection=resolveDevFimoDependencyForDeploy(cwd)}catch(error){ui.error({command:"deploy",code:"DEV_FIMO_VERSION_MISSING",message:errorMessage(error)});return}await requireOperation("fimo.deploy",{projectId:ctx.projectId,branch:ctx.branch});let remoteSp=spinner("Checking the Fimo branch"),remote;try{remote=await git.getRemote(local.projectId,ctx.branch),await ensureFimoRemote(cwd,remote.url);let preparation=await prepareDeployCheckout({cwd,remoteBranch:remote.branch});remoteSp.succeed(preparation==="missing-remote"?`Fimo branch ${remote.branch} will be created by this deploy`:`Checkout ready for fimo/${remote.branch}`)}catch(error){if(remoteSp.fail("Checkout is not ready to deploy"),error instanceof BranchCheckoutError){ui.error({command:"deploy",code:error.code,message:error.message,hint:error.hint});return}rethrowCliAuthError(error),ui.error({command:"deploy",code:"ENV_GIT_PREFLIGHT_FAILED",message:`Could not compare this checkout with the Fimo branch: ${errorMessage(error)}`});return}let validateSp=spinner("Validating site"),report2=await runValidate({cwd,branchOverride:branchOverride2});if(report2.ok){validateSp.succeed("Validation passed");let packageManagerWarning=getPackageManagerPinWarning(cwd);packageManagerWarning&&ui.warn({command:"deploy",message:packageManagerWarning})}else if(options.force)validateSp.fail("Validation failed \u2014 continuing anyway (--force)"),ui.warn({command:"deploy",message:"Bypassing validation errors because --force was passed. The deploy may still fail later in the sandbox."});else{validateSp.fail("Validation failed"),ui.result({command:"deploy",data:{stage:"validate",report:report2},render:__name(()=>formatReportHuman(report2),"render")}),process.exitCode=report2.exitCode;return}for(let warning of report2.warnings)warning.code==="media/committed-to-repo"&&ui.warn({command:"deploy",message:warning.message});let devFimoDependency=null;try{devFimoDependency=prepareDevFimoDependencyForDeploy(cwd,devFimoSelection)}catch(error){ui.error({command:"deploy",code:"DEV_FIMO_VERSION_MISSING",message:errorMessage(error)});return}devFimoDependency&&isPretty2&&O2.info(`Deploying with fimo ${devFimoDependency.version}; restoring local dependency state after push.`);try{if(await hasUncommittedChanges(cwd)){let message;if(options.message!==void 0)message=options.message;else{assertInteractive('Pass -m "<message>" or commit your changes manually.',"deploy"),isPretty2&&O2.warn("You have uncommitted changes. Commit them before deploying.");let answer=await Ot({message:"Commit message",placeholder:"Deploy",defaultValue:"Deploy"});if(q(answer)){ui.info({command:"deploy",message:"Cancelled."});return}message=String(answer)}let description=options.description?.trim(),commitSp=spinner("Committing pending changes");await runGit(["add","-A"],cwd),await runGit(["commit","-m",message,...description?["-m",description]:[]],cwd),commitSp.succeed("Changes committed")}else options.description!==void 0&&ui.warn({command:"deploy",message:"--description was not used: there were no uncommitted changes to commit."});let remoteBranch=remote.branch,pushSp=spinner(`Pushing to fimo/${remoteBranch}`);try{await runGit(["push","fimo",`HEAD:${remoteBranch}`],cwd),pushSp.succeed("Pushed to Fimo")}catch(error){pushSp.fail("Push failed");let failure=classifyPushError(error);emitPushFailure(failure,remoteBranch);return}}finally{devFimoDependency?.restore()}let stepLabel="",stepStartedAt=0,stepSp=null,finalizeStep=__name((status="ok",failMessage)=>{if(!stepSp)return;let elapsed=((Date.now()-stepStartedAt)/1e3).toFixed(1);status==="ok"?stepSp.succeed(`${stepLabel} (${elapsed}s)`):stepSp.fail(failMessage??`${stepLabel} failed`),stepSp=null},"finalizeStep");try{await sandbox.pull(local.projectId,({message})=>{finalizeStep("ok"),stepLabel=message,stepStartedAt=Date.now(),stepSp=spinner(message)},ctx.branch,{wait:options.wait!==!1}),finalizeStep("ok")}catch(error){if(rethrowCliAuthError(error,()=>finalizeStep("fail","Authentication required")),error instanceof SandboxPullError){let failure=describeDeployFailure(error.failure,isPretty2);finalizeStep("fail",failure.step),ui.error({command:"deploy",...failure.envelope});return}finalizeStep("fail",`Sandbox sync failed: ${errorMessage(error)}`),ui.error({command:"deploy",code:"SANDBOX_SYNC_FAILED",message:`Sandbox sync failed: ${errorMessage(error)}`});return}if(!options.publish){ui.result({command:"deploy",data:{project_id:local.projectId,branch:ctx.branch,studio_url:studioUrl,dashboard_url:studioUrl,published:!1},render:__name(context=>renderDeployResult({studioUrl,appUrl:null,published:!1},context),"render")});return}let publishSp=spinner("Publishing (this can take a few minutes)"),publicationId;try{publicationId=await publication.publish(local.projectId)}catch(error){rethrowCliAuthError(error,()=>publishSp.fail("Authentication required")),publishSp.fail();let failedPublicationId=publicationIdFromError(error);ui.error({command:"deploy",code:"PUBLISH_FAILED",message:`Publish failed: ${errorMessage(error)}`,...failedPublicationId?{details:{publication_id:failedPublicationId},hint:`Run \`fimo publish logs ${failedPublicationId}\` for the build output that failed.`}:{}});return}publishSp.succeed("Published");let appUrl=null;try{let{data:fresh}=await fimo.execute("projects.get",{projectId:local.projectId});appUrl=fresh.appUrl??null}catch(error){isPretty2&&O2.warn(`Could not fetch published URL: ${errorMessage(error)}`)}ui.result({command:"deploy",data:{project_id:local.projectId,branch:ctx.branch,studio_url:studioUrl,dashboard_url:studioUrl,published:!0,publication_id:publicationId,app_url:appUrl},render:__name(context=>renderDeployResult({studioUrl,appUrl,published:!0},context),"render")})}__name(deployCommand,"deployCommand");var PHASE_LABELS={acquire:"acquiring the preview sandbox",pull:"pulling the Fimo branch into the preview sandbox","sync-env":"syncing the Branch environment into the preview sandbox",install:"installing dependencies",restart:"starting the dev server",readiness:"waiting for the preview to become ready"},RETRY_HINT="Run `fimo deploy` again. If it keeps failing, report it with `fimo support report`.";function deployFailureHint(failure){return failure.repair?`Review the listed packages, approve them through ${failure.repair.configFile}#${failure.repair.approvalKey}, commit the policy and lockfile, then run \`fimo deploy\` again. Never enable a global allow-all switch.`:failure.phase==="install"?"Reproduce with a clean install locally using the project's package manager, fix package.json and the lockfile so it passes, commit them, then run `fimo deploy` again.":failure.phase==="restart"?"Run the project's dev script locally to reproduce the startup error above, fix it, then run `fimo deploy` again.":failure.phase==="pull"?"Run `fimo deploy` again. If the pull keeps failing, report it with `fimo support report` and include the output above.":failure.phase==="readiness"||failure.code==="readiness_failed"?failure.logTail?.length?"Fix what the dev server reported above, then run `fimo deploy` again. Pass --no-wait to deploy without this check.":"Run `fimo logs` to see what the dev server reported, fix it, then deploy again. Pass --no-wait to deploy without this check.":RETRY_HINT}__name(deployFailureHint,"deployFailureHint");function describeDeployFailure(failure,isPretty2){let label=failure.phase?PHASE_LABELS[failure.phase]:null,exit=failure.exitCode!==void 0?` (exit code ${failure.exitCode})`:"",code2=failure.code==="readiness_failed"?"PREVIEW_NOT_READY":"SANDBOX_SYNC_FAILED",message;label?code2==="PREVIEW_NOT_READY"?message=`The revision was synced, but the preview never became ready. Failed while ${label}${exit}: ${failure.message}`:message=`Deploy failed while ${label}${exit}: ${failure.message}`:message=code2==="PREVIEW_NOT_READY"?`The revision was synced, but the preview never became ready: ${failure.message}`:`Sandbox sync failed: ${failure.message}`;let tail=failure.logTail??[];if(isPretty2&&tail.length>0){let heading=`Last ${tail.length} lines from the sandbox${failure.logTailTruncated?" (older output cut)":""}:`;message=[message,heading,...tail.map(line=>` ${line}`)].join(`
2472
2472
  `)}let details={...failure.code?{failure_code:failure.code}:{},...failure.phase?{phase:failure.phase}:{},...failure.exitCode!==void 0?{exit_code:failure.exitCode}:{},...failure.logTail?{log_tail:failure.logTail,log_tail_truncated:failure.logTailTruncated===!0}:{},...failure.repair?{repair:failure.repair}:{}},hint=label||failure.repair||code2==="PREVIEW_NOT_READY"?deployFailureHint(failure):void 0;return{step:label?`Failed while ${label}${exit}`:code2==="PREVIEW_NOT_READY"?`Preview did not become ready: ${failure.message}`:`Sandbox sync failed: ${failure.message}`,envelope:{code:code2,message,...hint?{hint}:{},...Object.keys(details).length>0?{details}:{}}}}__name(describeDeployFailure,"describeDeployFailure");function renderDeployResult(result,context){let lines=[];return result.appUrl&&lines.push(`Live: ${terminalLink("Open site",result.appUrl,context.hyperlinks)}`),lines.push(`Studio: ${terminalLink("Open in Studio",result.studioUrl,context.hyperlinks)}`),result.published?lines.push(result.appUrl?"Your site is live.":"Publish completed. Check Fimo for the live URL."):lines.push("Deployed. Run `fimo preview url` for the hosted preview, or `fimo deploy --publish` to publish."),lines.join(`
2473
2473
  `)}__name(renderDeployResult,"renderDeployResult");function emitPushFailure(failure,env){switch(failure.kind){case"non-fast-forward":ui.error({command:"deploy",code:"PUSH_NON_FAST_FORWARD",message:`The remote \`fimo/${env}\` has commits your local branch does not.`,hint:`Fix it manually, then re-run \`fimo deploy\`:
2474
2474
  1. git pull --rebase fimo ${env}
@@ -2859,7 +2859,7 @@ Header values use Name=secret:KEY, Name=bearer:KEY, Name=token:KEY, or Name=lite
2859
2859
  `)}__name(formatHelpWithGroupedCommands,"formatHelpWithGroupedCommands");function formatGroupedCommandSections(cmd,helper,groups,termWidth){let visibleCommands=helper.visibleCommands(cmd);if(visibleCommands.length===0)return[];let commandByName=new Map(visibleCommands.map(command=>[command.name(),command])),renderedNames=new Set,sections=[];for(let group of groups){let rows=group.commands.map(name=>commandByName.get(name)).filter(command=>command!==void 0).map(command=>(renderedNames.add(command.name()),indentBlock(helper.formatItem(helper.styleSubcommandTerm(helper.subcommandTerm(command)),termWidth,helper.styleSubcommandDescription(helper.subcommandDescription(command)),helper))));rows.length>0&&(sections.length>0&&sections.push(""),sections.push(` ${group.title}:`,...rows))}let ungroupedRows=visibleCommands.filter(command=>!renderedNames.has(command.name())).map(command=>indentBlock(helper.formatItem(helper.styleSubcommandTerm(helper.subcommandTerm(command)),termWidth,helper.styleSubcommandDescription(helper.subcommandDescription(command)),helper)));return ungroupedRows.length>0&&(sections.length>0&&sections.push(""),sections.push(" Other commands:",...ungroupedRows)),sections}__name(formatGroupedCommandSections,"formatGroupedCommandSections");function indentBlock(value){return value.split(`
2860
2860
  `).map(line=>` ${line}`).join(`
2861
2861
  `)}__name(indentBlock,"indentBlock");init_sdk_transport();init_color();init_project_context();function computeVersionString(){let pkgVersion="0.0.0";try{let pkg=JSON.parse(fs48.readFileSync(path49.join(CLI_ROOT,"package.json"),"utf8"));typeof pkg.version=="string"&&pkg.version.length>0&&(pkgVersion=pkg.version)}catch{}let releaseId;try{let release=JSON.parse(fs48.readFileSync(path49.join(CLI_ROOT,"release.json"),"utf8"));typeof release.id=="string"&&release.id.length>0&&(releaseId=release.id)}catch{}let{apiUrl}=loadConfig(),detailParts=[];return releaseId&&detailParts.push(`release ${releaseId}`),detailParts.push(apiUrl),`fimo ${pkgVersion} (${detailParts.join(", ")})`}__name(computeVersionString,"computeVersionString");program.name("fimo").description("Fimo CLI").version(computeVersionString()).option("--branch <name>","Override the target Branch (analytics reads default to prod; other commands use the current Git branch or FIMO_ENV)").option("--json","Emit one structured JSON envelope per command (for tools / agents). FIMO_OUTPUT=json env also enables this.").option("--no-color","Disable colour in pretty mode (NO_COLOR env var also honoured)").option("--ascii","Use ASCII fallbacks for unicode glyphs (\u2713 \u2192 [ok], etc.) - for legacy terminals").hook("preAction",async(thisCommand,actionCommand)=>{let opts=thisCommand.optsWithGlobals();initUi({json:opts.json===!0,noColor:opts.color===!1,ascii:opts.ascii===!0,jsonEnvVar:"FIMO_OUTPUT",asciiEnvVar:"FIMO_ASCII"}),await printUnclaimedReminder(commandPath(actionCommand))});var NO_UNCLAIMED_REMINDER=new Set(["claim","whoami","init","login","logout","git-credential","projects unclaimed"]);function commandPath(command){let names=[];for(let current=command;current?.parent;current=current.parent)names.unshift(current.name());return names.join(" ")}__name(commandPath,"commandPath");async function printUnclaimedReminder(path50){if(!(currentMode().format!=="pretty"||NO_UNCLAIMED_REMINDER.has(path50)))try{let cfg=loadConfig(),auth=resolveAuth(cfg);if(auth?.kind!=="project"||!auth.tokenFile)return;let reminder=await unclaimedReminder(cfg,auth.tokenFile);reminder&&process.stderr.write(`${palette.yellow("!")} ${reminder}
2862
- `)}catch{}}__name(printUnclaimedReminder,"printUnclaimedReminder");program.command("login").description("Sign in through your browser").action(loginCommand);program.command("logout").description("Revoke the current session and clear local credentials").action(logoutCommand);program.command("whoami").description("Show the current signed-in user").action(whoamiCommand);program.command("claim").description("Show the claim link of a site created without an account, open it, and wait for the claim").option("--no-open","Print the claim link without opening a browser").option("--no-wait","Return right away instead of waiting for the claim").action(options=>claimCommand(options));registerProjectSecretsCommands(program);registerIntegrationsCommands(program);registerMcpCommands(program);registerChannelsCommands(program);registerSchedulesCommands(program);registerHistoryCommands(program);registerSupportCommands(program);registerWebhooksCommands(program);registerLocalesCommands(program);registerEnvironmentsCommands(program);program.command("invite").description("Invite a user to an organization or site").option("--target <target>","Invite target: organization or project (for a site)").option("--org <organizationId>","Organization ID (defaults to active when needed)").option("--project <projectId>","Site ID (defaults to the current site when available)").option("--email <email>","Email address of the user to invite").option("--role <role>","Role or access level to grant").option("-C, --cwd <dir>","Site directory used to resolve the current site").option("-y, --yes","Skip the confirmation prompt").option("--resend","Resend an existing pending organization invite").action(inviteCommand);program.command("clone").description("Clone an existing Fimo site locally").argument("[projectId]","Site ID to clone").argument("[dir]","Target directory (defaults to the site name)").option("--branch <name>","Branch to clone (defaults to main)").action(cloneCommand);registerLinkCommand(program);program.command("init").description("Set up a Fimo site locally: sign in, create or link a site, install deps and skills").argument("[dir]","Target directory").option("--project-id <id>","Link an existing site instead of creating a new one").option("--org <organizationId>","Target organization ID when creating (recommended for agents and CI)").option("--branch <name>","Branch to check out when linking an existing site (defaults to main)").option("--framework <framework>","Site scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to nextjs)").option("--template-root <path>","Override template directory when creating").option("--package-manager <pm>","Install dependencies with: npm | pnpm | yarn | bun").option("--install","Install dependencies after checkout").option("--no-install","Skip dependency installation after checkout").option("--skills","Install the global Fimo skill for your AI coding agents").option("--no-skills","Skip installing the global Fimo skill").option("--agents <list>",'Comma-separated list of AI agents to install the global Fimo skill for (e.g. claude-code,cursor). Pass "none" to skip.').option("-a, --agent <id>","Repeatable: pass once per agent (-a claude-code -a cursor)",(value,prev=[])=>[...prev,value]).option("-y, --yes","Run non-interactively using defaults (no prompts)").action(initCommand);program.command("new").description(`Create a site without an account; a person claims it within ${UNCLAIMED_PLAN.ttlHours} hours through the printed claim link`).argument("[dir]","Target directory").option("--instructions","Print the setup instructions for coding agents and exit without creating anything").option("--framework <framework>","Site scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to nextjs)").option("--template-root <path>","Override template directory").option("--package-manager <pm>","Install dependencies with: npm | pnpm | yarn | bun").option("--install","Install dependencies after scaffolding").option("--no-install","Skip dependency installation after scaffolding").option("--skills","Install the global Fimo skill for your AI coding agents").option("--no-skills","Skip installing the global Fimo skill").option("--agents <list>",'Comma-separated list of AI agents to install the global Fimo skill for (e.g. claude-code,cursor). Pass "none" to skip.').option("-a, --agent <id>","Repeatable: pass once per agent (-a claude-code -a cursor)",(value,prev=[])=>[...prev,value]).option("-y, --yes","Run non-interactively using defaults (no prompts)").action(newCommand);var migrate=program.command("migrate").description("Set up a Fimo site as the target of an agent-driven migration").action(()=>{migrate.help()});migrate.command("init").description("Set up the migration target: link or create its Fimo site, scaffold it, and push the first commit").argument("[dir]","Target Fimo site directory (creates one if empty/missing)").option("-C, --cwd <dir>","Existing site directory when omitting [dir]").option("--project-id <projectId>","Link an owner-supplied existing site (delegates to `fimo init`)").option("--org <organizationId>","Target organization ID when creating a new site").option("--framework <framework>","Site scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to react-router)").option("--template-root <path>","Override template directory when creating a new site").option("--install","Install dependencies after scaffolding a new site").option("--no-install","Skip dependency installation after scaffolding a new site").option("--agents <list>","Comma-separated list of AI agents to set up when creating a new site (e.g. claude-code,cursor)").option("-a, --agent <id>","Repeatable: pass once per agent (-a claude-code -a cursor)",(value,prev=[])=>[...prev,value]).option("--mode <mode>","Local skill install method for newly created sites: symlink | copy").option("--source-platform <platform>","Where the site comes from: webflow | framer | squarespace | wix | carrd | wordpress | nextjs | astro | react-router | other").option("--json","Output the setup receipt as JSON").action((dir,_options,command)=>migrateInitCommand(dir,command.optsWithGlobals()));program.command("deploy").description("Push the current Branch to Fimo and deploy to Preview (use --publish from the Production source)").option("-C, --cwd <dir>","Run against this directory instead of cwd").option("--publish","Also publish the new version after deploying to preview").option("-m, --message <msg>","Commit message for any uncommitted changes").option("--description <text>","Why the change was made: the commit body for any uncommitted changes, read later by teammates and agents").option("--no-restart","Don't restart the sandbox dev server after pull \u2014 rely on Vite HMR. Use when only HMR-safe files changed (components/pages/styles/content). See the `fimo` skill for when to use this.").option("--no-wait","Don't wait for the deployed preview to serve a page. Validation, push, and sandbox sync are still waited for; the result reports readiness as skipped. Not a substitute for --no-restart.").option("--force","Deploy even if validation fails (escape hatch; may still fail later in the sandbox)").action(deployCommand);addPaginationOptions(program.command("logs").description("Show the current Branch sandbox's dependency-install and dev-server output (newest first)"),{defaultLimit:200,maxLimit:1e3,legacyCursor:"before"}).option("-C, --cwd <dir>","Run against this directory instead of cwd").addHelpText("after",`
2862
+ `)}catch{}}__name(printUnclaimedReminder,"printUnclaimedReminder");program.command("login").description("Sign in through your browser").action(loginCommand);program.command("logout").description("Revoke the current session and clear local credentials").action(logoutCommand);program.command("whoami").description("Show the current signed-in user").action(whoamiCommand);program.command("claim").description("Show the claim link of a site created without an account, open it, and wait for the claim").option("--no-open","Print the claim link without opening a browser").option("--no-wait","Return right away instead of waiting for the claim").action(options=>claimCommand(options));registerProjectSecretsCommands(program);registerIntegrationsCommands(program);registerMcpCommands(program);registerChannelsCommands(program);registerSchedulesCommands(program);registerHistoryCommands(program);registerSupportCommands(program);registerWebhooksCommands(program);registerLocalesCommands(program);registerEnvironmentsCommands(program);program.command("invite").description("Invite a user to an organization or site").option("--target <target>","Invite target: organization or project (for a site)").option("--org <organizationId>","Organization ID (defaults to active when needed)").option("--project <projectId>","Site ID (defaults to the current site when available)").option("--email <email>","Email address of the user to invite").option("--role <role>","Role or access level to grant").option("-C, --cwd <dir>","Site directory used to resolve the current site").option("-y, --yes","Skip the confirmation prompt").option("--resend","Resend an existing pending organization invite").action(inviteCommand);program.command("clone").description("Clone an existing Fimo site locally").argument("[projectId]","Site ID to clone").argument("[dir]","Target directory (defaults to the site name)").option("--branch <name>","Branch to clone (defaults to main)").action(cloneCommand);registerLinkCommand(program);program.command("init").description("Set up a Fimo site locally: sign in, create or link a site, install deps and skills").argument("[dir]","Target directory").option("--project-id <id>","Link an existing site instead of creating a new one").option("--org <organizationId>","Target organization ID when creating (recommended for agents and CI)").option("--branch <name>","Branch to check out when linking an existing site (defaults to main)").option("--framework <framework>","Site scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to nextjs)").option("--template-root <path>","Override template directory when creating").option("--package-manager <pm>","Install dependencies with: npm | pnpm | yarn | bun").option("--install","Install dependencies after checkout").option("--no-install","Skip dependency installation after checkout").option("--skills","Install the global Fimo skill for your AI coding agents").option("--no-skills","Skip installing the global Fimo skill").option("--agents <list>",'Comma-separated list of AI agents to install the global Fimo skill for (e.g. claude-code,cursor). Pass "none" to skip.').option("-a, --agent <id>","Repeatable: pass once per agent (-a claude-code -a cursor)",(value,prev=[])=>[...prev,value]).option("-y, --yes","Run non-interactively using defaults (no prompts)").action(initCommand);program.command("new").description(`Create a site without an account; a person claims it within ${UNCLAIMED_PLAN.ttlHours} hours through the printed claim link`).argument("[dir]","Target directory").option("--instructions","Print the setup instructions for coding agents and exit without creating anything").option("--framework <framework>","Site scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to nextjs)").option("--template-root <path>","Override template directory").option("--package-manager <pm>","Install dependencies with: npm | pnpm | yarn | bun").option("--install","Install dependencies after scaffolding").option("--no-install","Skip dependency installation after scaffolding").option("--skills","Install the global Fimo skill for your AI coding agents").option("--no-skills","Skip installing the global Fimo skill").option("--agents <list>",'Comma-separated list of AI agents to install the global Fimo skill for (e.g. claude-code,cursor). Pass "none" to skip.').option("-a, --agent <id>","Repeatable: pass once per agent (-a claude-code -a cursor)",(value,prev=[])=>[...prev,value]).option("-y, --yes","Run non-interactively using defaults (no prompts)").action(newCommand);var migrate=program.command("migrate").description("Set up a Fimo site as the target of an agent-driven migration").action(()=>{migrate.help()});migrate.command("init").description("Set up the migration target: link or create its Fimo site, scaffold it, and push the first commit").argument("[dir]","Target Fimo site directory (creates one if empty/missing)").option("-C, --cwd <dir>","Existing site directory when omitting [dir]").option("--project-id <projectId>","Link an owner-supplied existing site (delegates to `fimo init`)").option("--org <organizationId>","Target organization ID when creating a new site").option("--framework <framework>","Site scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to react-router)").option("--template-root <path>","Override template directory when creating a new site").option("--install","Install dependencies after scaffolding a new site").option("--no-install","Skip dependency installation after scaffolding a new site").option("--agents <list>","Comma-separated list of AI agents to set up when creating a new site (e.g. claude-code,cursor)").option("-a, --agent <id>","Repeatable: pass once per agent (-a claude-code -a cursor)",(value,prev=[])=>[...prev,value]).option("--mode <mode>","Local skill install method for newly created sites: symlink | copy").option("--source-platform <platform>","Where the site comes from: webflow | framer | squarespace | wix | carrd | wordpress | nextjs | astro | react-router | other").option("--json","Output the setup receipt as JSON").action((dir,_options,command)=>migrateInitCommand(dir,command.optsWithGlobals()));program.command("deploy").description("Push the current Branch to Fimo and deploy to Preview (use --publish from the Production source)").option("-C, --cwd <dir>","Run against this directory instead of cwd").option("--publish","Also publish the new version after deploying to preview").option("-m, --message <msg>","Commit message for any uncommitted changes").option("--description <text>","Why the change was made: the commit body for any uncommitted changes, read later by teammates and agents").option("--no-wait","Don't wait for the deployed preview to serve a page. Validation, push, and sandbox sync are still waited for; the result reports readiness as skipped.").option("--force","Deploy even if validation fails (escape hatch; may still fail later in the sandbox)").addOption(new Option("--no-restart","Deprecated: has no effect").hideHelp()).action(deployCommand);addPaginationOptions(program.command("logs").description("Show the current Branch sandbox's dependency-install and dev-server output (newest first)"),{defaultLimit:200,maxLimit:1e3,legacyCursor:"before"}).option("-C, --cwd <dir>","Run against this directory instead of cwd").addHelpText("after",`
2863
2863
  Logs come from the sandbox's own process buffers, so they end when the sandbox does.
2864
2864
  There is no --follow; re-run the command instead.
2865
2865
  `).action(logsCommand);program.command("validate").description("Run all checks and sync local state with the Fimo backend").option("-C, --cwd <dir>","Run against this directory instead of cwd").option("--json","Emit structured JSON output (for CI / agents)").action(validateCommand);program.command("update").description("Update this checkout's Fimo packages to an exact release and apply the bundled migrations").argument("<version>","Exact target version, for example 1.0.0").option("-C, --cwd <dir>","Run against this directory instead of cwd").option("--dry-run","Show the update plan without writing anything").option("--apply","Apply without prompting (required in --json / non-interactive shells)").option("--allow-dirty","Skip the clean-working-tree check").option("--no-install","Skip dependency installation after applying").option("--no-validate","Skip `fimo validate` after applying").action(updateCommand3);program.command("describe [path]").description("Print a structured snapshot of the current Fimo site (read-only)").option("-C, --cwd <dir>","Run against this directory instead of cwd").option("--depth <n>","Tree depth (default 3). Ignored when --full is set.").option("--full","Disable depth and width truncation (still respects the 10k-entry cap)").option("--json","Emit structured JSON output (for CI / agents)").action(describeCommand);program.command("credits").description("Show the current site credit balance").option("-C, --cwd <dir>","Site directory").option("--project <projectId>","Site ID (defaults to the current site)").option("--json","Emit structured JSON output").action(creditsCommand);program.command("delete").description("Delete the current linked site").option("-C, --cwd <dir>","Site directory").option("-y, --yes","Skip confirmation prompt").action(options=>projectsDeleteCommand(void 0,options));program.command("unpublish").description("Unpublish the current site").option("-C, --cwd <dir>","Site directory").action(options=>projectsUnpublishCommand(void 0,options));program.command("rename").description("Set the display name of the current site").argument("<name>",'New display name (e.g. "Acme Blog")').option("-C, --cwd <dir>","Site directory").action((name,options)=>projectsRenameCommand(name,void 0,options));var orgs=program.command("orgs").description("Manage organizations");orgs.command("list").description("List organizations you belong to").action(orgsListCommand);orgs.command("switch").description("Switch the active organization used by `fimo init`").option("--org <id-or-slug>","Switch to this organization without prompting").action(switchCommand);orgs.command("members").description("List members of an organization (defaults to the active org)").option("--org <organizationId>","Organization ID (defaults to active)").action(orgsMembersCommand);var referral=program.command("referral").description("Share and inspect your referral program tools");referral.command("link").description("Print your referral link").action(referralLinkCommand);referral.command("stats").description("Show your referral stats").action(referralStatsCommand);var projects=program.command("projects").description("Manage sites across an organization");projects.command("list").description("List sites in an organization (defaults to the active org)").option("--org <organizationId>","Organization ID (defaults to active)").action(projectsListCommand);projects.command("unclaimed").description("List sites created without an account on this machine, with their claim links and state").action(projectsUnclaimedCommand);projects.command("create").description("Scaffold a new site (alias of `fimo init`)").argument("[dir]","Target directory").option("--org <organizationId>","Target organization ID (auto if you belong to one)").option("--framework <framework>","Site scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to nextjs)").option("--template-root <path>","Override template directory").option("--package-manager <pm>","Install dependencies with: npm | pnpm | yarn | bun").option("--install","Install dependencies after scaffolding").option("--no-install","Skip dependency installation after scaffolding").action(initCommand);projects.command("clone").description("Clone an existing Fimo site locally").argument("[projectId]","Site ID to clone").argument("[dir]","Target directory (defaults to the site name)").option("--branch <name>","Branch to clone (defaults to main)").action(cloneCommand);projects.command("delete").description("Delete a site (defaults to the current linked site)").argument("[projectId]","Explicit site ID").option("-C, --cwd <dir>","Site directory").option("-y, --yes","Skip confirmation prompt").action(projectsDeleteCommand);projects.command("publish").description("Publish a site (defaults to the current site)").argument("[projectId]","Explicit site ID").option("-C, --cwd <dir>","Site directory").action(projectsPublishCommand);projects.command("unpublish").description("Unpublish a site (defaults to the current site)").argument("[projectId]","Explicit site ID").option("-C, --cwd <dir>","Site directory").action(projectsUnpublishCommand);projects.command("rename").description("Set the display name of a site (defaults to the current site)").argument("<name>",'New display name (e.g. "Acme Blog")').argument("[projectId]","Explicit site ID").option("-C, --cwd <dir>","Site directory").action(projectsRenameCommand);projects.command("transfer").description("Move a site to another organization you administer (defaults to the current site)").argument("[projectId]","Explicit site ID").option("--to <organization>","Destination organization ID or slug").option("-C, --cwd <dir>","Site directory").option("-y, --yes","Skip confirmation prompt").action(projectsTransferCommand);var domains=program.command("domains").description("Manage your default URL and custom domains");domains.command("list").alias("ls").description("Show the default URL and any custom domains").option("--project <projectId>","Site ID (defaults to the current site)").option("-C, --cwd <dir>","Site directory").option("--json","Output as JSON").action(domainsListCommand);domains.command("rename-default").description("Rename your default URL (the <slug>.fimo.site subdomain Fimo provides)").argument("<slug>",'New slug (e.g. "acme-coffee")').option("--project <projectId>","Site ID (defaults to the current site)").option("-C, --cwd <dir>","Site directory").option("--json","Output as JSON").action(domainsRenameDefaultCommand);domains.command("suggest-default").description("Suggest available default URLs; pick one to claim (or list with --json)").option("--base <text>","Override the base text used to generate suggestions (defaults to your site display name)").option("--max <n>","Number of suggestions to fetch (1\u201310, default 5)").option("--pick <slug-or-index>","Non-interactive: claim this suggestion by slug or numeric index").option("--project <projectId>","Site ID (defaults to the current site)").option("-C, --cwd <dir>","Site directory").option("--json","Output as JSON (no prompt, no claim)").action(domainsSuggestDefaultCommand);domains.command("add").description("Attach a custom domain to your site (requires an eligible plan)").argument("<hostname>",'The hostname to attach (e.g. "blog.example.com")').option("--redirect-www","Also configure an apex \u2192 www redirect").option("--wait [duration]","Poll until DNS is verified (e.g. --wait, --wait 10m)").option("--project <projectId>","Site ID (defaults to the current site)").option("-C, --cwd <dir>","Site directory").option("--json","Output the resulting domain record as JSON after instructions").action(domainsAddCommand);domains.command("remove").alias("rm").description("Detach a custom domain by hostname or ID").argument("<hostname-or-id>","Hostname or domain ID").option("-y, --yes","Skip the confirmation prompt").option("--project <projectId>","Site ID (defaults to the current site)").option("-C, --cwd <dir>","Site directory").action(domainsRemoveCommand);domains.command("refresh").description("Re-check DNS and SSL status for a custom domain").argument("<hostname-or-id>","Hostname or domain ID").option("--wait [duration]","Poll until SSL is active (default; pass --no-wait to print one snapshot)").option("--no-wait","Print the refreshed status once and exit").option("--project <projectId>","Site ID (defaults to the current site)").option("-C, --cwd <dir>","Site directory").option("--json","Output the resulting domain record as JSON").action(domainsRefreshCommand);domains.command("search").description("Search for available domain names to buy through Fimo").argument("<keyword>",'Search keyword (e.g. "acme coffee")').option("--tld <list>",'Restrict TLDs (comma-separated, e.g. "com,io,dev")').option("--max-price <amount>","Filter results to this purchase price ceiling (in dollars)").option("--limit <n>","Truncate to the first N results (default 20)").option("--json","Output as JSON").action(domainsSearchCommand);domains.command("pricing").description("Show the price for a specific domain (purchase + renewal)").argument("<domain>",'Domain name (e.g. "example.com")').option("--years <n>","Multiply purchase price by this many years (default 1)").option("--json","Output as JSON").action(domainsPricingCommand);domains.command("buy").description("Buy a domain through Fimo. Creates a checkout invoice; no charge until you pay it in the browser.").argument("<domain>",'Domain name to register (e.g. "example.com")').option("--years <n>","Years to register for (default uses the TLD minimum)").option("--auto-renew","Enable auto-renewal (default)").option("--no-auto-renew","Disable auto-renewal \u2014 domain will not renew automatically").option("-y, --yes","Skip the interactive confirmation prompt").option("--open","Open the checkout URL in your browser after creating the invoice").option("--wait [duration]","Poll until payment completes and registration succeeds").option("--org <organizationId>","Organization ID (defaults to the current site's org)").option("-C, --cwd <dir>","Site directory used to resolve the org").option("--json","Output the resulting invoice record as JSON").action(domainsBuyCommand);domains.command("owned").description("List domains your organization has registered through Fimo").option("--org <organizationId>","Organization ID (defaults to the current site's org)").option("--status <list>",'Filter by status (comma-separated, e.g. "owned,pending_payment")').option("--limit <n>","Truncate to the first N results").option("-C, --cwd <dir>","Site directory used to resolve the org").option("--json","Output as JSON").action(domainsOwnedCommand);var scripts=program.command("scripts",{hidden:!0}).description("Internal/advanced primitives. Most users want `fimo validate`.");scripts.command("sync-schemas").description("Regenerate TypeScript clients for src/schemas/*.json").option("-C, --cwd <dir>","Site directory").action(syncSchemasCommand);scripts.command("sync-forms").description("Regenerate TypeScript clients for src/forms/*.json").option("-C, --cwd <dir>","Site directory").action(syncFormsCommand);scripts.command("validate-route-metadata").description("Cross-validate src/routes.ts against .fimo/config.json#routes (v4)").option("-C, --cwd <dir>","Site directory").action(validateRouteMetadataCommand);scripts.command("extract-translations").description("Legacy local helper: scan src/ for literal t() label keys").option("-C, --cwd <dir>","Site directory").action(extractTranslationsCommand);scripts.command("lint").description("Lint project files (translation keys + oxlint)").argument("[path]","Single file to lint (omit for whole project)").option("-C, --cwd <dir>","Site directory").action(lintCommand);program.command("export-static",{hidden:!0}).description("Post-build: remove dist/server and preserve dist/client assets (after react-router build)").option("-C, --cwd <dir>","Site directory").action(exportStaticCommand);program.command("resolve-routes",{hidden:!0}).description("Map changed files back to affected preview routes").argument("[files...]","Changed files to resolve").option("-C, --cwd <dir>","Site directory").action(resolveRoutesCommand);var branchCmd=program.command("branch").description("List, create, or delete Branches (a Branch = git branch + its own Neon DB + sandbox)").argument("[name]","Branch name (omit to list)").option("-v, --verbose","Include deleted Branches").option("--all","Also list Fimo's own agent Branches (task/*), normally hidden").option("-d, --delete","Delete the named Branch (drops sandbox + Neon branch + R2 prefix)").option("--from <branch>","Parent Branch to fork from when creating (defaults to current)").action(async(name,_options,command)=>{if(!name){await branchListCommand(command);return}if(command.opts().delete){await branchDeleteCommand(name,command);return}await branchCreateCommand(name,command)});program.command("checkout").description("Switch to a Branch (or create + switch with -b)").argument("<name>","Branch name").option("-b, --create","Create the Branch if it does not exist").option("--from <branch>","Parent Branch (only with -b)").action(checkoutCommand);program.command("switch").description("Alias for `fimo checkout` (switch Branches)").argument("<name>","Branch name").action(checkoutCommand);program.command("pull").description("Sync the current Branch's data plane from its parent").option("--from <branch>","Sync from an explicit ancestor (defaults to declared parent)").action(pullCommand);program.command("diff").description("Two-Branch diff across all surfaces").argument("[from]","From Branch (defaults to the current Branch)").argument("[to]","To Branch (defaults to main)").option("-C, --cwd <dir>","Site directory").option("--surface <name>","Limit to a single surface (code | schemas | content | ...)").option("--key <key>","Drill into one item within --surface (W2 \u2014 per-item before/after)").option("--all","Render the full item list, bypassing the per-surface cap").option("--json","Emit raw JSON instead of the rendered report").option("--no-color","Disable ANSI colour output").action(diffCommand);program.command("merge").description("Merge another Branch into the current one (multi-surface, atomic, with conflict resolver)").argument("<from>","Source Branch").option("-C, --cwd <dir>","Site directory").option("--allow-direct-merge","Override the main-branch protected-flow gate").option("-y, --yes","Keep the target Branch's value for every unresolved conflict (non-interactive)").option("--resume","Resume a parked merge from its saved draft, or follow one that is still applying").option("--json","Emit raw JSON instead of the rendered report").option("--no-color","Disable ANSI colour output").action(mergeCommand);var publish=program.command("publish").description("Publish main using a stable Fimo publication ID").option("-C, --cwd <dir>","Site directory").option("--label <text>","Optional human-readable publication label").option("--notes <text>","Optional publication notes (markdown)").option("--skip-validate","Skip the lint + codegen + smoke pre-checks (operator override)").action(publishCommand);addPaginationOptions(publish.command("list").description("Publication attempts for the current site, newest first"),{defaultLimit:20,maxLimit:100,legacyCursor:"before"}).option("-C, --cwd <dir>","Site directory").action(publishListCommand);publish.command("inspect").description("One publication attempt in full, including why it failed").argument("<publicationId>","Fimo publication id").option("-C, --cwd <dir>","Site directory").action(publishInspectCommand);publish.command("logs").description("Read a publication's build log from its hosting provider").argument("<publicationId>","Fimo publication id").option("-C, --cwd <dir>","Site directory").option("--limit <n>","Events to return (1-1000, default 200)").action(publishLogsCommand);program.command("status").description("Multi-surface Branch status \u2014 the showcase command").option("-C, --cwd <dir>","Site directory").option("--short","One-line summary per surface (no bodies)").option("--json","Emit raw JSON instead of the rendered report").option("--vs <branch>","Comparison target (defaults to the parent Branch or main)").option("--no-color","Disable ANSI colour output").option("--code","Limit to the code surface").option("--content","Limit to the content surface").option("--i18n","Limit to the translations surface").option("--assets","Limit to the assets surface").option("--forms","Limit to the forms surface").option("--all","Render the full item list, bypassing the per-surface cap").action(statusCommand2);registerPreviewCommands(program);registerSiteCommands(program);program.addCommand(new Command("git-credential").argument("<operation>","get | store | erase (git credential protocol)").description("Internal git credential helper (invoked by git)").action(gitCredentialCommand),{hidden:!0});registerGenerate(program);registerMediaTaskCommands(program);var schemas2=program.command("schemas").description("Manage content-type schemas");schemas2.command("list").description("List all registered schemas").option("-C, --cwd <dir>","Site directory").action(schemaListCommand);schemas2.command("get").description("Get a schema by type name").argument("<typeName>","Content type name (e.g. BlogPost)").option("-C, --cwd <dir>","Site directory").action(schemaGetCommand);schemas2.command("push").description("Push schema JSON files to the API (create or update)").argument("[typeName]","Schema name to push (omit to push all)").option("-C, --cwd <dir>","Site directory").option("--rename <from=to>","Preserve a renamed field (repeatable, supports nested paths)",(value,previous)=>[...previous,value],[]).action(schemaPushCommand);schemas2.command("delete").description("Delete a schema by type name").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").action(schemaDeleteCommand);var entries=program.command("entries").description("Manage content entries").addHelpText("after",`