fimo 2.10.0-staging.6 → 2.10.0-staging.7
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/assets/skills/fimo-cli/references/assets.md +2 -0
- package/assets/skills/fimo-cli/references/content.md +11 -1
- package/assets/skills/fimo-code/references/content/richtext.md +2 -2
- package/dist/cli/bundle.json +1 -1
- package/dist/cli/index.js +23 -13
- package/package.json +8 -8
- package/templates/astro/package.json +3 -3
- package/templates/nextjs/package.json +4 -4
- package/templates/react-router/package.json +5 -5
- package/templates/sveltekit/package.json +3 -3
- package/templates/vite/package.json +5 -5
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,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"}),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,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","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()}),turnRow=viewIds.extend({...ending,userMessageId:z16.string().nullable(),failureCategory:z16.enum(["expected_billing_stop","expected_model_refusal","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("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, 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.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"]),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)&¶ms?.[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 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=z76.object({name:z76.string().trim().min(1).max(120).optional(),description:z76.string().trim().min(1).max(300).optional(),instructions:ProjectChatInstructionsSchema.pipe(z76.string().min(1)).optional(),live:z76.literal(!0).optional()}),AgentToolRoutineSchema=z76.object({id:z76.string(),name:z76.string(),schedule:ChatRoutineScheduleSchema.nullable(),trigger:z76.string().nullable()}),AgentToolErrorCodeSchema=z76.enum(["plan_required","not_allowed","default_agent","not_seen","invalid"]),AgentToolResultSchema=z76.discriminatedUnion("ok",[z76.object({ok:z76.literal(!0),agent:z76.object({id:z76.string(),name:z76.string(),live:z76.boolean(),routines:z76.array(AgentToolRoutineSchema)}),revisionId:z76.string().optional()}),z76.object({ok:z76.literal(!1),error:z76.string(),code:AgentToolErrorCodeSchema.optional()})]),AgentInstructionAuthorSchema=z76.object({kind:z76.enum(["person","agent"]),id:z76.string().nullable(),name:z76.string().nullable()}),AgentInstructionRevisionDTOSchema=z76.object({id:z76.string().uuid(),previous:z76.string().nullable(),instructions:z76.string().nullable(),author:AgentInstructionAuthorSchema,createdAt:z76.string()}),AgentInstructionRevisionListDTOSchema=z76.object({revisions:z76.array(AgentInstructionRevisionDTOSchema)}),AgentInstructionRevisionListResponseSchema=createResponseSchema(AgentInstructionRevisionListDTOSchema),AgentInstructionRestoreSchema=z76.object({revisionId:z76.string().uuid()})}});import{z as z77}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=z77.object({url:z77.string().url(),key:z77.string(),size:z77.number(),contentType:z77.string(),uploadedAt:CommonSchemas.timestamp}),UploadResultDTO=createDTO(UploadResultDTOSchema),UploadResultResponseSchema=createResponseSchema(UploadResultDTOSchema)}});import{z as z78}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=z78.object({canAccess:z78.boolean(),permissions:z78.record(z78.string(),z78.boolean()),role:z78.string().nullable()}),ServicePermissionsDTO=createDTO(ServicePermissionsDTOSchema),ServicePermissionsResponseSchema=createResponseSchema(ServicePermissionsDTOSchema)}});import{z as z79}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:z79.string().trim().default(""),sort:z79.enum(["recent","name","relevance"]).default("recent"),category:z79.string().optional()})}});import{z as z80}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=z80.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),DomainSourceSchema=z80.enum(["fimo","external"]),PaymentStatusSchema=z80.enum(["pending","paid","failed","refunded"]),DomainDTOSchema=z80.object({id:z80.string().uuid(),domain:z80.string(),status:DomainStatusSchema,source:DomainSourceSchema,registrationDate:CommonSchemas.timestamp.nullable(),expirationDate:CommonSchemas.timestamp.nullable(),autoRenew:z80.boolean(),price:z80.number().int().nullable(),renewalPrice:z80.number().int().nullable(),paymentStatus:PaymentStatusSchema.nullable(),checkoutUrl:z80.string().nullable(),failureReason:z80.string().nullable(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),DomainDTO=createDTO(DomainDTOSchema),DomainSearchResultDTOSchema=z80.object({domain:z80.string(),available:z80.boolean(),premium:z80.boolean(),price:z80.number().nullable(),renewalPrice:z80.number().nullable(),purchaseType:z80.string().nullable()}),DomainSearchResultDTO=createDTO(DomainSearchResultDTOSchema),DomainPricingDTOSchema=z80.object({domain:z80.string(),price:z80.number().nullable(),renewalPrice:z80.number().nullable(),premium:z80.boolean(),allowedYears:z80.array(z80.number().int().positive())}),DomainPricingDTO=createDTO(DomainPricingDTOSchema),DomainContactSchema=z80.object({firstName:z80.string().max(100),lastName:z80.string().max(100),companyName:z80.string().max(100).optional(),address1:z80.string().max(255),address2:z80.string().max(255).optional(),city:z80.string().max(100),state:z80.string().max(100),zip:z80.string().max(20),country:z80.string().max(2),phone:z80.string().max(30),email:z80.union([z80.string().email().max(255),z80.literal("")])}),DomainContactDTO=createDTO(DomainContactSchema),UpdateDomainContactsRequestSchema=z80.object({firstName:z80.string().min(1).max(100),lastName:z80.string().min(1).max(100),companyName:z80.string().max(100).optional(),address1:z80.string().min(1).max(255),address2:z80.string().max(255).optional(),city:z80.string().min(1).max(100),state:z80.string().min(1).max(100),zip:z80.string().min(1).max(20),country:z80.string().min(1).max(2),phone:z80.string().min(1).max(30),email:z80.string().email().max(255)}),SearchDomainsRequestSchema=z80.object({keyword:z80.string().min(1).max(100),tldFilter:z80.array(z80.string()).optional()}),CheckAvailabilityRequestSchema=z80.object({domains:z80.array(z80.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=z80.string().min(1).max(255).regex(DOMAIN_NAME_REGEX,{message:"Invalid domain name"}),PurchaseDomainRequestSchema=z80.object({domain:DomainNameSchema,years:z80.number().int().min(1).max(10).optional().default(3),autoRenew:z80.boolean().optional().default(!0)}),UpdateDomainSettingsRequestSchema=z80.object({autoRenew:z80.boolean().optional()}),RenewDomainRequestSchema=z80.object({years:z80.number().int().min(1).max(10).optional().default(1),autoRenew:z80.boolean().optional().default(!0)}),DomainResponseSchema=createResponseSchema(DomainDTOSchema),DomainListResponseSchema=createResponseSchema(z80.array(DomainDTOSchema)),DomainSearchResultListResponseSchema=createResponseSchema(z80.array(DomainSearchResultDTOSchema)),DomainPricingResponseSchema=createResponseSchema(DomainPricingDTOSchema),DomainContactResponseSchema=createResponseSchema(DomainContactSchema.nullable()),ContactVerificationStatusSchema=z80.object({verified:z80.boolean(),email:z80.string().nullable(),verifyBy:z80.string().nullable()}),ContactVerificationStatusResponseSchema=createResponseSchema(ContactVerificationStatusSchema)}});import{z as z81}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=z81.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=z81.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=z81.object({txtName:z81.string().nullable().optional(),txtValue:z81.string().nullable().optional(),httpUrl:z81.string().nullable().optional(),httpBody:z81.string().nullable().optional(),cname:z81.string().nullable().optional(),cnameTarget:z81.string().nullable().optional()}),SSLValidationErrorSchema=z81.object({message:z81.string()}),OwnershipVerificationSchema=z81.object({type:z81.string(),name:z81.string(),value:z81.string()}),ProjectDomainSSLDTOSchema=z81.object({status:z81.string(),method:z81.string().nullable(),type:z81.string().nullable(),validationRecords:z81.array(SSLValidationRecordSchema).nullable().optional(),validationErrors:z81.array(SSLValidationErrorSchema).nullable().optional()}),DomainProviderSchema=z81.enum(["cloudflare","saas_custom_domains"]),DomainTypeSchema=z81.enum(["subdomain","apex"]),RedirectConfigSchema=z81.object({type:z81.enum(["apex_to_www","www_to_apex"]),linkedDomainId:z81.string()}).nullable().optional(),ProjectDomainDTOSchema=z81.object({id:z81.string(),hostname:z81.string(),status:z81.string(),ssl:ProjectDomainSSLDTOSchema,ownershipVerification:z81.array(OwnershipVerificationSchema).nullable().optional(),cnameTarget:z81.string(),scdCnameTarget:z81.string().optional(),apexTargets:z81.array(z81.string()),dnsAutoConfigured:z81.boolean(),createdAt:CommonSchemas.timestamp,provider:DomainProviderSchema,domainType:DomainTypeSchema,redirectConfig:RedirectConfigSchema,migrationStatus:z81.string().nullable().optional()}),ProjectDomainDTO=createDTO(ProjectDomainDTOSchema),ProjectDomainListResponseSchema=createResponseSchema(z81.array(ProjectDomainDTOSchema)),ProjectDomainResponseSchema=createResponseSchema(ProjectDomainDTOSchema),AddProjectDomainRequestSchema=z81.object({hostname:z81.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:z81.boolean().optional()}),CheckProjectDomainHostnameReasonSchema=z81.enum(["invalid_hostname","fimo_owned_hostname","reserved","taken_by_another_project","taken_by_this_project"]),CheckProjectDomainHostnameResponseSchema=createResponseSchema(z81.object({available:z81.boolean(),reason:CheckProjectDomainHostnameReasonSchema.optional()})),DeleteProjectDomainResponseSchema=createResponseSchema(z81.object({success:z81.boolean(),hostname:z81.string()}))}});import{z as z82}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=z82.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain"]),CheckProjectSubdomainResponseSchema=createResponseSchema(z82.object({available:z82.boolean(),reason:SubdomainCheckReasonSchema.optional()})),UpdateProjectSubdomainRequestSchema=z82.object({slug:z82.string().min(1).max(63).regex(SUBDOMAIN_REGEX,{error:"Invalid subdomain shape"})}),UpdateProjectSubdomainErrorReasonSchema=z82.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain","kv_sync_failed","hosting_sync_failed"]),UpdateProjectSubdomainResponseSchema=createResponseSchema(z82.object({subdomain:z82.string(),subdomainUpdatedAt:z82.coerce.date()})),SubdomainSuggestionsQuerySchema=z82.object({base:z82.string().max(100).optional(),max:z82.coerce.number().int().min(1).max(10).optional()}),SubdomainSuggestionsResponseSchema=createResponseSchema(z82.object({suggestions:z82.array(z82.string())}))}});import{z as z83}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=z83.enum(PROJECT_TRANSFER_BLOCKER_CODES),ProjectTransferBlockerDTO=createDTO(z83.object({code:ProjectTransferBlockerCodeSchema,message:z83.string(),count:z83.number().int().nonnegative().optional()})),TransferProjectRequestSchema=z83.object({targetOrganizationId:z83.string().min(1)}),ProjectTransferResultDTO=createDTO(z83.object({projectId:z83.string(),sourceOrganizationId:z83.string(),targetOrganizationId:z83.string(),movedThreads:z83.number().int().nonnegative(),revokedInvites:z83.number().int().nonnegative(),revokedGrants:z83.number().int().nonnegative(),preservedGrants:z83.number().int().nonnegative(),warnings:z83.array(z83.string())}))}});import{z as z84}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=z84.enum(Object.keys(UNCLAIMED_PLAN.locked)),UNCLAIMED_CLAIM_STATES=["claimable","claimed","expired"],UnclaimedClaimStateSchema=z84.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=z84.enum(UNCLAIMED_PROJECT_ERROR_CODES),ProvisionUnclaimedProjectRequestSchema=z84.object({displayName:z84.string().trim().min(1).max(80),machineId:z84.string().trim().min(1).max(128).optional(),cliVersion:z84.string().trim().max(64).optional()}),UnclaimedProjectLimitsSchema=z84.object({ttlHours:z84.number().int().positive(),lockedFeatures:z84.array(UnclaimedLockedFeatureSchema),media:z84.object({totalBytes:z84.number().int().nonnegative(),fileBytes:z84.number().int().positive(),maxFiles:z84.number().int().nonnegative(),mimeTypes:z84.array(z84.string())}),database:z84.object({storageBytes:z84.number().int().positive(),computeSeconds:z84.number().int().positive(),maxComputeUnits:z84.number().positive()})}),UnclaimedProjectClaimSchema=z84.object({url:z84.string().url(),expiresAt:z84.coerce.date()}),ProvisionUnclaimedProjectResponseDTO=createDTO(z84.object({project:ProjectDTOSchema,token:z84.string(),claim:UnclaimedProjectClaimSchema,limits:UnclaimedProjectLimitsSchema})),UnclaimedClaimStatusDTO=createDTO(z84.object({state:UnclaimedClaimStateSchema,displayName:z84.string().nullable(),expiresAt:z84.coerce.date().nullable(),projectId:z84.string().nullable()})),UnclaimedClaimSecretSchema=z84.string().min(1).max(256),UnclaimedClaimStatusRequestSchema=z84.object({secret:UnclaimedClaimSecretSchema}),UnclaimedClaimStatesRequestSchema=z84.object({secrets:z84.array(UnclaimedClaimSecretSchema).min(1).max(20)}),UnclaimedClaimStatesResponseDTO=createDTO(z84.object({claims:z84.array(z84.object({state:UnclaimedClaimStateSchema,expiresAt:z84.coerce.date().nullable()}))})),ClaimUnclaimedProjectRequestSchema=z84.object({secret:UnclaimedClaimSecretSchema,organizationId:z84.string().min(1)}),ClaimUnclaimedProjectResultDTO=createDTO(z84.object({projectId:z84.string(),organizationId:z84.string()})),ProjectTokenSelfDTO=createDTO(z84.object({kind:z84.literal("project_token"),projectId:z84.string(),projectName:z84.string(),displayName:z84.string().nullable(),organizationId:z84.string().nullable(),organizationName:z84.string().nullable(),claimState:UnclaimedClaimStateSchema,expiresAt:z84.coerce.date().nullable(),tokenExpiresAt:z84.coerce.date().nullable()}))}});import{z as z85}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=z85.object({translated:z85.number().int().nonnegative(),total:z85.number().int().nonnegative()}),ProjectLocaleStatsItemSchema=z85.object({locale:z85.string(),isDefault:z85.boolean(),entries:ProjectLocaleCoverageSchema,labels:ProjectLocaleCoverageSchema}),ProjectLocaleStatsSchema=z85.object({defaultLocale:z85.string(),locales:z85.array(ProjectLocaleStatsItemSchema)}),ProjectLocaleStatsDTO=createDTO(ProjectLocaleStatsSchema),ProjectLocaleStatsResponseSchema=createResponseSchema(ProjectLocaleStatsSchema),AddProjectLocaleRequestSchema=z85.object({locale:z85.string().min(1).max(40)}),RemoveProjectLocaleParamsSchema=z85.object({locale:z85.string().min(1).max(40)}),ProjectLocaleMutationSchema=z85.object({locale:z85.string()}),ProjectLocaleMutationDTO=createDTO(ProjectLocaleMutationSchema),ProjectLocaleMutationResponseSchema=createResponseSchema(ProjectLocaleMutationSchema),RemoveProjectLocaleSchema=z85.object({locale:z85.string(),entriesDeleted:z85.number().int().nonnegative(),labelsDeleted:z85.number().int().nonnegative()}),RemoveProjectLocaleDTO=createDTO(RemoveProjectLocaleSchema),RemoveProjectLocaleResponseSchema=createResponseSchema(RemoveProjectLocaleSchema)}});import{z as z86}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=z86.enum(GENERATION_QUALITIES),GenerationTaskIdSchema=z86.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=z86.object({task:GenerationTaskIdSchema,quality:GenerationQualitySchema.optional(),costUsd:z86.number(),credits:z86.number().optional(),billingMode:z86.enum(["fimo-credits","provider-account"]).optional(),confidence:z86.enum(["exact","estimated","metered"]),basis:z86.string()}),GenerationTaskEstimateDTO=createDTO(GenerationTaskEstimateDTOSchema)}});import{z as z87}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=z87.object({options:z87.record(z87.string(),z87.unknown()),name:z87.string().optional(),parentId:z87.string().nullable().optional(),altText:z87.string().optional(),caption:z87.string().optional()}),GenerateRequestDTOSchema=GenerateRequestBaseSchema.extend({task:z87.string().min(1).optional(),model:z87.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=z87.object({jobId:z87.string(),status:z87.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema.optional(),error:z87.string().nullable().optional(),credits:z87.number().optional(),costUsd:z87.number().optional(),billingMode:z87.enum(["fimo-credits","provider-account"]).optional(),task:GenerationTaskIdSchema.optional(),quality:GenerationQualitySchema.optional()}),GenerateResponseDTO=createDTO(GenerateResponseDataSchema),GenerateResponseSchema=createResponseSchema(GenerateResponseDataSchema),GenerateErrorSchema=z87.object({error:z87.string(),code:z87.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:z87.array(GenerationTaskIdSchema).optional(),availableModels:z87.array(z87.string()).optional(),issues:z87.array(z87.unknown()).optional()})}});import{z as z88}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=z88.enum(["string","number","integer","boolean","enum","array","unknown"]),FlagSpecSchema=z88.object({name:z88.string(),key:z88.string(),description:z88.string(),type:FlagTypeSchema,required:z88.boolean(),defaultValue:z88.unknown().optional(),enumValues:z88.array(z88.string()).optional(),isArray:z88.boolean()}),AssetModelPriceSchema=z88.object({unitPrice:z88.number(),unit:z88.string(),confidence:z88.enum(["exact","estimated","metered"])}),AssetModelDTOSchema=z88.object({id:z88.string(),shortName:z88.string(),provider:z88.string(),source:z88.string(),modality:z88.enum(["image","video","audio"]),tags:z88.array(z88.string()),displayName:z88.string(),description:z88.string(),flags:z88.array(FlagSpecSchema),price:AssetModelPriceSchema.nullable()}),AssetModelDTO=createDTO(AssetModelDTOSchema),AssetModelEstimateDTOSchema=z88.object({model:z88.string(),costUsd:z88.number(),credits:z88.number(),billingMode:z88.enum(["fimo-credits","provider-account"]),confidence:z88.enum(["exact","estimated","metered"]),basis:z88.string()}),AssetModelEstimateDTO=createDTO(AssetModelEstimateDTOSchema)}});import{z as z89}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=z89.object({tourId:z89.string(),version:z89.string(),status:z89.string(),completedAt:z89.coerce.date()}),UserTourDTO=createDTO(UserTourDTOSchema),UserTourResponseSchema=createResponseSchema(UserTourDTOSchema),UserTourListResponseSchema=createResponseSchema(z89.array(UserTourDTOSchema))}});import{z as z90}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=z90.object({backendProfile:OpsBackendProfileSchema,provider:z90.literal("sentry"),issueId:OpsSentryIssueIdSchema,status:z90.literal("resolved")}),OpsSentryIssueResolutionResponseDTO=createDTO(OpsSentryIssueResolutionResponseSchema),OpsSentryIssueResolutionErrorResponseSchema=z90.object({backendProfile:OpsBackendProfileSchema,provider:z90.literal("sentry"),issueId:OpsSentryIssueIdSchema,resolved:z90.literal(!1),reason:z90.string()}),OpsSentryIssueResolutionErrorResponseDTO=createDTO(OpsSentryIssueResolutionErrorResponseSchema)}});import{z as z91}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=z91.object({packageManager:z91.string().trim().min(1).max(200).nullable(),trackedLockfiles:z91.array(z91.enum(OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES)),sourceRevision:z91.string().trim().min(1)}),OpsProjectPackageManagerSchema=z91.object({target:z91.object({backendProfile:OpsBackendProfileSchema,projectId:z91.uuid(),projectEnv:z91.string().trim().min(1).max(255)}),...OpsProjectPackageManagerSummarySchema.shape}),OpsProjectPackageManagerDTO=createDTO(OpsProjectPackageManagerSchema)}});import{z as z92}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:z92.boolean().optional()}).strict(),OpsAgentChatAgentSpecSchema=z92.union([z92.object({name:z92.string().trim().min(1).max(120),description:z92.string().trim().min(1).max(2e3)}).strict(),z92.object({template:z92.string().trim().min(1).max(64)}).strict()]),OpsAgentChatSpecObjectSchema=z92.object({agent:OpsAgentChatAgentSpecSchema,routines:z92.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:z92.string().trim().min(1).max(1e3),dryRun:z92.boolean().optional()}).refine(uniqueRoutineNames,UNIQUE_ROUTINE_NAMES),OpsAgentChatOutcomeSchema=z92.enum(["created","existing","would_create"]),OpsAgentChatRoutineResultSchema=z92.object({id:z92.string().uuid().nullable(),name:z92.string(),schedule:ChatRoutineScheduleSchema.nullable(),nextRunAt:z92.string().nullable(),paused:z92.boolean(),outcome:z92.enum(["created","would_create"]),source:z92.enum(["spec","template"])}),OpsAgentChatCreateResultSchema=z92.object({target:z92.object({backendProfile:OpsBackendProfileSchema,projectId:z92.string().uuid()}),dryRun:z92.boolean(),applied:z92.boolean(),createdBy:z92.object({userId:z92.string()}),agent:z92.object({id:z92.string().uuid().nullable(),title:z92.string(),template:z92.string().nullable(),outcome:OpsAgentChatOutcomeSchema}),routines:z92.array(OpsAgentChatRoutineResultSchema),skipped:z92.array(z92.object({name:z92.string(),reason:z92.literal("routine_exists")})),refused:z92.array(z92.object({name:z92.string(),reason:ChatRoutineRefusalReasonSchema}))})}});import{z as z93}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=z93.enum(WEBHOOK_EVENT_TYPES),WebhookEntryChangeActionSchema=z93.enum(["created","updated","deleted"]),WebhookEntryChangeReasonSchema=z93.enum(["entry_write","bulk_edit","environment_merge"]),WebhookEnvironmentScopeSchema=z93.enum(["main","all"]),WebhookEnvironmentSelectorSchema=z93.union([WebhookEnvironmentScopeSchema,EnvironmentKeySchema]),EntryChangedWebhookEventDataSchema=z93.object({reason:WebhookEntryChangeReasonSchema,operationId:z93.string().optional(),batch:z93.object({index:z93.number().int().positive(),total:z93.number().int().positive()}).optional(),changes:z93.array(z93.object({action:WebhookEntryChangeActionSchema,contentType:z93.string(),id:z93.string(),documentId:z93.string(),locale:z93.string().nullable()}))}),FormSubmittedWebhookEventDataSchema=z93.object({form:z93.object({id:z93.string(),label:z93.string()}),submission:z93.object({id:z93.string(),data:z93.record(z93.string(),z93.unknown()),submittedAt:z93.string()})}),PublishStartedWebhookEventDataSchema=z93.object({publication:z93.object({status:z93.literal("publishing"),startedAt:z93.string()})}),PublishSucceededWebhookEventDataSchema=z93.object({publication:z93.object({status:z93.literal("published"),url:z93.string(),publishedAt:z93.string(),firstPublish:z93.boolean()})}),PublishFailedWebhookEventDataSchema=z93.object({publication:z93.object({status:z93.literal("failed"),reason:z93.string()})}),PublishUnpublishedWebhookEventDataSchema=z93.object({publication:z93.object({previousUrl:z93.string(),unpublishedAt:z93.string()})}),AnalyticsReportReadyWebhookEventDataSchema=z93.object({report:z93.object({weekStart:z93.string(),weekEnd:z93.string(),pageviews:z93.number(),visitors:z93.number(),previousPageviews:z93.number(),previousVisitors:z93.number()})}),MediaAssetWebhookEventDataSchema=z93.object({id:z93.string().nullable(),name:z93.string().nullable(),type:z93.string(),mimeType:z93.string().nullable(),fileSize:z93.number().nullable()}),MediaUploadedWebhookEventDataSchema=z93.object({asset:MediaAssetWebhookEventDataSchema,operation:z93.literal("uploaded")}),MediaUpdatedWebhookEventDataSchema=z93.object({asset:MediaAssetWebhookEventDataSchema,operation:z93.literal("updated")}),MediaDeletedWebhookEventDataSchema=z93.object({asset:MediaAssetWebhookEventDataSchema,operation:z93.literal("deleted")}),DomainCreatedWebhookEventDataSchema=z93.object({domain:z93.object({id:z93.string(),hostname:z93.string(),status:ProjectDomainStatusSchema,sslStatus:SSLStatusSchema})}),DomainDeletedWebhookEventDataSchema=z93.object({domain:z93.object({id:z93.string(),hostname:z93.string()})}),LabelChangedWebhookEventDataSchema=z93.object({changes:z93.array(z93.object({action:z93.enum(["created","updated","deleted"]),key:z93.string(),locale:z93.string(),value:z93.string().nullable()}))}),LocaleCreatedWebhookEventDataSchema=z93.object({locale:z93.object({code:z93.string(),isDefault:z93.boolean()})}),LocaleDefaultChangedWebhookEventDataSchema=z93.object({locale:z93.object({code:z93.string(),previousCode:z93.string()})}),LocaleDeletedWebhookEventDataSchema=z93.object({locale:z93.object({code:z93.string(),entriesDeleted:z93.number().int().nonnegative(),labelsDeleted:z93.number().int().nonnegative()})}),EnvironmentCreatedWebhookEventDataSchema=z93.object({environment:z93.object({name:BranchSchema,parent:BranchSchema})}),EnvironmentDeletedWebhookEventDataSchema=z93.object({environment:z93.object({name:BranchSchema})}),EnvironmentMergedWebhookEventDataSchema=z93.object({merge:z93.object({id:z93.string(),from:BranchSchema,to:BranchSchema,applied:z93.array(z93.object({surface:SurfaceNameSchema,count:z93.number().int().nonnegative()}))})}),BranchRestoredWebhookEventDataSchema=z93.object({branch:z93.object({name:BranchSchema}),version:z93.object({versionId:z93.uuid(),name:z93.string()})}),WebhookEventFamilySchema=z93.enum(["entries","forms","publish","analytics","media","domains","labels","locales","environments"]),WebhookDestinationKindSchema=z93.enum(["custom","resend","github","slack"]),WebhookHeaderValueInputSchema=z93.discriminatedUnion("source",[z93.object({source:z93.literal("literal"),value:z93.string().min(1).max(4096).regex(/^[^\r\n]*$/)}),z93.object({source:z93.literal("secret"),key:z93.string().regex(/^[A-Z_][A-Z0-9_]*$/),prefix:z93.string().max(128).regex(/^[^\r\n]*$/).optional()})]),WebhookHeaderInputSchema=z93.object({name:z93.string().min(1).max(128),value:WebhookHeaderValueInputSchema}),WebhookHeaderDTOSchema=z93.object({name:z93.string(),source:z93.enum(["literal","secret"]),secretKey:z93.string().nullable(),secretPrefix:z93.string().nullable(),configured:z93.literal(!0)}),WebhookFilterSchema=z93.object({environment:WebhookEnvironmentSelectorSchema.optional(),formId:z93.string().min(1).max(255).optional(),mediaType:z93.enum(["image","video","audio","document","other"]).optional(),action:WebhookEntryChangeActionSchema.optional(),contentType:z93.string().min(1).max(255).optional(),locale:z93.string().min(1).max(120).optional()}),JsonValueSchema=z93.lazy(()=>z93.union([z93.string(),z93.number(),z93.boolean(),z93.null(),z93.array(JsonValueSchema),z93.record(z93.string(),JsonValueSchema)])),CreateProjectWebhookRequestSchema=z93.object({name:z93.string().trim().min(1).max(120),eventType:WebhookEventTypeSchema,url:z93.url(),enabled:z93.boolean().optional().default(!0),filter:WebhookFilterSchema.optional().default({}),headers:z93.array(WebhookHeaderInputSchema).max(20).optional().default([]),bodyTemplate:JsonValueSchema.nullable().optional().default(null),signingEnabled:z93.boolean().optional().default(!0)}),UpdateProjectWebhookRequestSchema=z93.object({name:z93.string().trim().min(1).max(120).optional(),eventType:WebhookEventTypeSchema.optional(),url:z93.url().optional(),enabled:z93.boolean().optional(),filter:WebhookFilterSchema.optional(),headers:z93.array(WebhookHeaderInputSchema).max(20).optional(),bodyTemplate:JsonValueSchema.nullable().optional(),signingEnabled:z93.boolean().optional()}),TestProjectWebhookRequestSchema=z93.object({eventType:WebhookEventTypeSchema.optional(),data:z93.record(z93.string(),JsonValueSchema).optional()}),WebhookDeliveryStatusSchema=z93.enum(["pending","delivering","retrying","succeeded","failed"]),ProjectWebhookDTOSchema=BaseEntitySchema.extend({projectId:z93.uuid(),name:z93.string(),eventType:WebhookEventTypeSchema,enabled:z93.boolean(),destination:z93.object({host:z93.string(),maskedUrl:z93.string(),kind:WebhookDestinationKindSchema}),filter:WebhookFilterSchema,headers:z93.array(WebhookHeaderDTOSchema),bodyTemplate:JsonValueSchema.nullable(),signingEnabled:z93.boolean(),lastDeliveryStatus:WebhookDeliveryStatusSchema.nullable(),lastDeliveryAt:z93.coerce.date().nullable(),deliveryStats24h:z93.object({succeeded:z93.number().int().nonnegative(),failed:z93.number().int().nonnegative()})}),ProjectWebhookDTO=createDTO(ProjectWebhookDTOSchema),WebhookDeliveryDTOSchema=BaseEntitySchema.extend({webhookId:z93.uuid(),projectId:z93.uuid(),env:BranchSchema,environment:EnvironmentKeySchema,branch:BranchSchema,eventId:z93.uuid(),eventType:WebhookEventTypeSchema,eventVersion:z93.number().int().positive(),test:z93.boolean(),status:WebhookDeliveryStatusSchema,attemptCount:z93.number().int().nonnegative(),responseStatus:z93.number().int().nullable(),lastErrorCode:z93.string().nullable(),lastErrorMessage:z93.string().nullable(),payloadAvailable:z93.boolean(),destination:z93.object({host:z93.string(),maskedUrl:z93.string(),kind:WebhookDestinationKindSchema}),requestHeaders:z93.array(WebhookHeaderDTOSchema),requestBodyExcerpt:z93.string().nullable(),qstashMessageId:z93.string().nullable(),deliveredAt:z93.coerce.date().nullable()}),WebhookDeliveryDTO=createDTO(WebhookDeliveryDTOSchema),WebhookDeliveriesPageSchema=z93.object({items:z93.array(WebhookDeliveryDTOSchema),pagination:z93.object({page:z93.number().int().positive(),limit:z93.number().int().positive(),total:z93.number().int().nonnegative(),totalPages:z93.number().int().positive(),hasMore:z93.boolean()}),stats:z93.object({total:z93.number().int().nonnegative(),succeeded:z93.number().int().nonnegative(),failed:z93.number().int().nonnegative()})}),WebhookDeliveryAttemptDTOSchema=z93.object({id:z93.uuid(),deliveryId:z93.uuid(),attempt:z93.number().int().positive(),status:z93.enum(["delivering","succeeded","failed"]),responseStatus:z93.number().int().nullable(),durationMs:z93.number().int().nonnegative(),responseExcerpt:z93.string().nullable(),errorCode:z93.string().nullable(),errorMessage:z93.string().nullable(),createdAt:z93.coerce.date()}),WebhookDeliveryAttemptDTO=createDTO(WebhookDeliveryAttemptDTOSchema),ProjectWebhookResponseSchema=createResponseSchema(ProjectWebhookDTOSchema),ProjectWebhooksListResponseSchema=createResponseSchema(z93.array(ProjectWebhookDTOSchema)),WebhookDeliveriesListResponseSchema=createResponseSchema(WebhookDeliveriesPageSchema),WebhookDeliveryAttemptsListResponseSchema=createResponseSchema(z93.array(WebhookDeliveryAttemptDTOSchema))}});import{z as z94}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=z94.object({key:z94.literal("fimo-2"),enabled:z94.boolean(),dismissed:z94.boolean().default(!1),interacted:z94.boolean().default(!1)}),PreviewFeatureDTO=createDTO(PreviewFeatureDTOSchema)}});import{z as z95}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=z95.enum(["scanning","interviewing","reporting","open","expired","refused"]),SiteScanStatusSchema=z95.enum(["running","done","failed"]),SiteCloneStatusSchema=z95.enum(["not_started","running","paused","finished","failed"]),SiteRefusalCodeSchema=z95.enum(["invalid","private","not_found","tls","unreachable","redirect","error_page","bot_wall"]),SiteRefusalSchema=z95.object({code:SiteRefusalCodeSchema,suggestedUrl:z95.string().nullable()}),SiteCheckGroupSchema=z95.enum(["discovery","indexing","ai_crawlers","rendering","metadata","content","speed"]),SiteScoreSchema=z95.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=z95.enum(SITE_CHECKS.map(check=>check.id)),SiteCheckStatusSchema=z95.enum(["pass","partial","fail","not_scored"]),SiteCheckEvidenceSchema=z95.record(z95.string(),z95.union([z95.string(),z95.number(),z95.boolean(),z95.array(z95.string())])),SiteCheckResultSchema=z95.object({id:SiteCheckIdSchema,status:SiteCheckStatusSchema,evidence:SiteCheckEvidenceSchema}),SiteReportGroupSchema=z95.object({id:SiteCheckGroupSchema,score:z95.number().int().min(0).max(100).nullable()}),SiteReportSchema=z95.object({siteUrl:z95.string(),scannedAt:z95.coerce.date(),seoScore:z95.number().int().min(0).max(100).nullable(),geoScore:z95.number().int().min(0).max(100).nullable(),groups:z95.array(SiteReportGroupSchema),checks:z95.array(SiteCheckResultSchema),blockers:z95.array(SiteCheckIdSchema).default([])}),SitePriceTierSchema=z95.enum(["budget","standard","premium","luxury"]),SiteTypeSchema=z95.enum(["business","non_profit","portfolio","hobby","personal"]),SiteTermsCategorySchema=z95.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=z95.object({name:z95.string(),summary:z95.string(),audience:z95.string(),positioning:z95.string(),priceTier:SitePriceTierSchema,homepage:z95.string()}),SiteSuggestionSchema=z95.object({label:z95.string(),url:z95.string().nullable()}),SiteInterviewSuggestionsSchema=z95.record(z95.string(),z95.record(z95.string(),z95.array(SiteSuggestionSchema))),SiteInterviewAnswerSchema=z95.record(z95.string().max(50),z95.union([z95.string().trim().max(2e3),z95.array(z95.string().trim().min(1).max(200)).max(10)])),SiteInterviewSchema=z95.object({status:z95.enum(["waiting","drafting","ready","failed"]),siteType:SiteTypeSchema.nullable(),site:SiteUnderstandingSchema.nullable(),suggestions:SiteInterviewSuggestionsSchema,answers:z95.record(z95.string(),SiteInterviewAnswerSchema)}),AnswerSiteInterviewRequestSchema=z95.object({questionId:z95.string().min(1).max(50),answer:SiteInterviewAnswerSchema}),SiteFixesReportSchema=z95.object({fixes:z95.array(z95.object({checkId:SiteCheckIdSchema,status:z95.enum(["fixed","not_fixed","not_applicable"]),note:z95.string().trim().min(1).max(300)})).min(1).max(40)}),SiteOnboardingResultSchema=z95.object({fixes:SiteFixesReportSchema.nullable(),summary:z95.string().nullable()}),StartSiteOnboardingRequestSchema=z95.object({organizationId:z95.string().min(1),url:z95.string().trim().min(1).max(2048),locale:z95.string().trim().min(2).max(16).default("en")}),StartSiteOnboardingResponseSchema=createResponseSchema(z95.object({projectId:z95.string()})),SiteOnboardingRefusedResponseSchema=z95.object({error:z95.literal("site_refused"),refusal:SiteRefusalSchema}),SiteOnboardingStateSchema=z95.object({projectId:z95.string(),siteUrl:z95.string(),stage:SiteOnboardingStageSchema,scanStatus:SiteScanStatusSchema,cloneStatus:SiteCloneStatusSchema,cloneRetryAvailable:z95.boolean(),budgetExhausted:z95.boolean(),sponsored:z95.boolean(),cloneOutOfCredits:z95.boolean(),interview:SiteInterviewSchema.nullable(),cloneThreadId:z95.string().nullable(),welcomeThreadId:z95.string().nullable(),competitors:z95.array(z95.string()),report:SiteReportSchema.nullable(),reportExpiresAt:z95.coerce.date(),openedAt:z95.coerce.date().nullable(),bannerDismissed:z95.boolean()}),SiteOnboardingStateDTO=createDTO(SiteOnboardingStateSchema),SiteOnboardingStateResponseSchema=createResponseSchema(SiteOnboardingStateSchema.nullable()),RetrySiteOnboardingRequestSchema=z95.object({task:z95.enum(["interview","scan","clone"])}),SiteOnboardingOutcomeSchema=z95.enum(["finished","rebuilding","paused","failed","scan_failed","scanning","expired","refused","not_started"]),AdminSiteOnboardingsQuerySchema=z95.object({search:z95.string().trim().max(200).optional(),organizationId:z95.string().trim().min(1).max(200).optional(),startDate:z95.coerce.date().optional(),endDate:z95.coerce.date().optional(),outcomes:z95.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z95.array(SiteOnboardingOutcomeSchema).optional()),siteTypes:z95.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z95.array(SiteTypeSchema).optional()),page:z95.coerce.number().int().min(1).default(1),pageSize:z95.coerce.number().int().min(1).max(100).default(25)}),AdminSiteOnboardingDTOSchema=z95.object({projectId:z95.string(),projectName:z95.string(),organizationId:z95.string(),organizationName:z95.string().nullable(),ownerEmail:z95.string().nullable(),ownerName:z95.string().nullable(),siteUrl:z95.string(),stage:SiteOnboardingStageSchema,scanStatus:SiteScanStatusSchema,cloneStatus:SiteCloneStatusSchema,outcome:SiteOnboardingOutcomeSchema,sponsored:z95.boolean(),cloneRetries:z95.number(),siteType:SiteTypeSchema.nullable(),refusalCategory:SiteTermsCategorySchema.nullable(),interviewAnswers:z95.number(),interviewQuestions:z95.number().nullable(),seoScore:z95.number().nullable(),geoScore:z95.number().nullable(),spentUsd:z95.number(),budgetCapUsd:z95.number(),capReached:z95.boolean(),cloneSeconds:z95.number().nullable(),createdAt:z95.coerce.date(),openedAt:z95.coerce.date().nullable()}),AdminSiteOnboardingDTO=createDTO(AdminSiteOnboardingDTOSchema),AdminSiteOnboardingsResponseSchema=createResponseSchema(z95.object({onboardings:z95.array(AdminSiteOnboardingDTOSchema),page:z95.number(),limit:z95.number(),total:z95.number(),totalPages:z95.number()})),AdminSiteOnboardingStatsSchema=z95.object({total:z95.number(),outcomes:z95.record(SiteOnboardingOutcomeSchema,z95.number()),funnel:z95.object({started:z95.number(),confirmed:z95.number(),finished:z95.number(),opened:z95.number()}),bySiteType:z95.array(z95.object({siteType:SiteTypeSchema,total:z95.number(),finished:z95.number(),opened:z95.number()})),granularity:z95.enum(["hour","day"]),series:z95.array(z95.object({at:z95.coerce.date(),outcomes:z95.record(SiteOnboardingOutcomeSchema,z95.number())})),spentUsd:z95.object({total:z95.number(),average:z95.number().nullable()}),sponsored:z95.number(),paidByOrganization:z95.object({usd:z95.number(),credits:z95.number()}),capReached:z95.number(),cloneSeconds:z95.object({median:z95.number().nullable(),average:z95.number().nullable()})}),AdminSiteOnboardingStatsResponseSchema=createResponseSchema(AdminSiteOnboardingStatsSchema),AdminSiteOnboardingDetailSchema=z95.object({onboarding:AdminSiteOnboardingDTOSchema.extend({locale:z95.string(),cloneThreadId:z95.string().nullable(),paidByOrganizationUsd:z95.number()}),interview:SiteInterviewSchema.extend({invocationIds:z95.array(z95.string())}).nullable(),knowledgeWritten:z95.string().nullable(),knowledgeNow:z95.object({content:z95.string(),updatedAt:z95.coerce.date().nullable(),updatedBy:z95.string().nullable()}),report:SiteReportSchema.nullable()}),AdminSiteOnboardingDetailDTO=createDTO(AdminSiteOnboardingDetailSchema),AdminSiteOnboardingDetailResponseSchema=createResponseSchema(AdminSiteOnboardingDetailSchema)}});import{z as z96}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=z96.enum(["active","cancelled","draft","errored","paused","pending","voided"]),CreditBalanceBreakdownDTOSchema=z96.object({total:z96.number(),base:z96.number(),purchases:z96.number(),awards:z96.number()}),CreditBalanceBreakdownDTO=createDTO(CreditBalanceBreakdownDTOSchema),SubscriptionPlanDTOSchema=z96.object({id:z96.string(),name:z96.string()}),SubscriptionPlanDTO=createDTO(SubscriptionPlanDTOSchema),SubscriptionPaymentMethodDTOSchema=z96.object({type:z96.string(),brand:z96.string().nullable(),last4:z96.string().nullable(),expirationDate:z96.string().nullable()}),SubscriptionPaymentMethodDTO=createDTO(SubscriptionPaymentMethodDTOSchema),SubscriptionPricingDTOSchema=z96.object({currency:z96.string(),nextPaymentAmount:z96.number().nullable(),nextPaymentAt:z96.string().nullable(),billingInterval:z96.string().nullable(),totalAmount:z96.number().nullable(),discountAmount:z96.number().nullable()}),SubscriptionPricingDTO=createDTO(SubscriptionPricingDTOSchema),SubscriptionDetailsDTOSchema=z96.object({id:z96.string(),status:SubscriptionStatusSchema,plan:SubscriptionPlanDTOSchema.nullable(),currentPeriodStartedAt:z96.string().nullable(),currentPeriodEndsAt:z96.string().nullable(),renewsAt:z96.string().nullable(),cancelAt:z96.string().nullable(),renewAutomatically:z96.boolean(),pricing:SubscriptionPricingDTOSchema.nullable(),paymentMethod:SubscriptionPaymentMethodDTOSchema.nullable()}),SubscriptionDetailsDTO=createDTO(SubscriptionDetailsDTOSchema),CreditAlertDTOSchema=z96.object({type:z96.enum(["low_balance","critical_balance","approaching_limit"]),message:z96.string(),estimatedPromptsRemaining:z96.number().nullable(),avgCostPerPrompt:z96.number().nullable()}),CreditAlertDTO=createDTO(CreditAlertDTOSchema),PlanAllocationDTOSchema=z96.object({monthlyCredits:z96.number().nullable(),usedThisPeriod:z96.number(),remainingThisPeriod:z96.number()}),PlanAllocationDTO=createDTO(PlanAllocationDTOSchema),LatestCancellationDTOSchema=z96.object({organizationId:z96.string(),planCode:TemplateCodeSchema,reason:CancellationReasonCodeSchema,details:z96.string().nullable(),tenureDays:z96.number().int().nonnegative(),capturedAt:z96.string()}),LatestCancellationDTO=createDTO(LatestCancellationDTOSchema),OrganizationSubscriptionDTOSchema=z96.object({hasSubscription:z96.boolean(),subscription:SubscriptionDetailsDTOSchema.nullable(),credits:CreditBalanceBreakdownDTOSchema,planAllocation:PlanAllocationDTOSchema.nullable(),lowBalanceThreshold:z96.number().nullable(),alerts:z96.array(CreditAlertDTOSchema),portalUrl:z96.string().nullable(),latestCancellation:LatestCancellationDTOSchema.nullable()}),OrganizationSubscriptionDTO=createDTO(OrganizationSubscriptionDTOSchema),BaseCreditTopupRequestSchema=z96.object({creditCount:z96.number().int().positive(),expiresAt:z96.string().datetime().nullable().optional(),message:z96.string().nullable().optional()}),FreeCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z96.literal("free"),amountCents:z96.number().int().positive().nullable().optional()}),PurchaseCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z96.literal("purchase"),amountCents:z96.number().int().positive()}),CreditTopupRequestDTOSchema=z96.discriminatedUnion("type",[FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema]),CreditTopupRequestDTO=createDTO(CreditTopupRequestDTOSchema),CreditTopupResponseDTOSchema=z96.object({success:z96.boolean(),transactionId:z96.string().nullable(),newBalance:z96.number(),creditCount:z96.number(),type:z96.enum(["free","purchase"]),invoiceId:z96.string().nullable()}),CreditTopupResponseDTO=createDTO(CreditTopupResponseDTOSchema)}});import{z as z97}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=z97.object({totalCredits:z97.number(),totalCostUsd:z97.number(),totalMessages:z97.number(),avgCostPerMessage:z97.number(),periodStart:z97.string().nullable(),periodEnd:z97.string().nullable()}),UsageSummaryDTO=createDTO(UsageSummaryDTOSchema),UsageByProjectDTOSchema=z97.object({projectId:z97.string(),projectName:z97.string(),projectDisplayName:z97.string().nullable(),credits:z97.number(),costUsd:z97.number(),messages:z97.number(),percentage:z97.number()}),UsageByProjectDTO=createDTO(UsageByProjectDTOSchema),UsageByUserDTOSchema=z97.object({userId:z97.string(),userName:z97.string().nullable(),userEmail:z97.string().email().nullable(),credits:z97.number(),costUsd:z97.number(),messages:z97.number(),percentage:z97.number()}),UsageByUserDTO=createDTO(UsageByUserDTOSchema),UsageTimelineItemDTOSchema=z97.object({date:z97.string(),credits:z97.number(),costUsd:z97.number(),messages:z97.number()}),UsageTimelineItemDTO=createDTO(UsageTimelineItemDTOSchema),UsageByUserForProjectDTOSchema=z97.object({userId:z97.string(),userName:z97.string().nullable(),userEmail:z97.string().email().nullable(),credits:z97.number(),costUsd:z97.number(),messages:z97.number(),percentage:z97.number()}),UsageByUserForProjectDTO=createDTO(UsageByUserForProjectDTOSchema),ProjectUsageDetailDTOSchema=z97.object({projectId:z97.string(),projectName:z97.string(),projectDisplayName:z97.string().nullable(),summary:UsageSummaryDTOSchema,byUser:z97.array(UsageByUserForProjectDTOSchema),timeline:z97.array(UsageTimelineItemDTOSchema)}),ProjectUsageDetailDTO=createDTO(ProjectUsageDetailDTOSchema),OrganizationUsageDTOSchema=z97.object({summary:UsageSummaryDTOSchema,byProject:z97.array(UsageByProjectDTOSchema),byUser:z97.array(UsageByUserDTOSchema),timeline:z97.array(UsageTimelineItemDTOSchema)}),OrganizationUsageDTO=createDTO(OrganizationUsageDTOSchema)}});import{z as z98}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=z98.enum(["today","1d","7d","14d","30d","60d","90d"]),SortOrderSchema=z98.enum(["asc","desc"]),UsageAnalyticsQuerySchema=z98.object({startDate:z98.string().optional(),endDate:z98.string().optional(),preset:TimeRangePresetSchema.optional().default("30d"),page:z98.coerce.number().int().positive().default(1),limit:z98.coerce.number().int().positive().max(100).default(20),sortBy:z98.string().optional(),sortOrder:SortOrderSchema.optional().default("desc"),search:z98.string().optional(),activeOnly:z98.stringbool().optional().default(!0)}),UsageOverviewSummaryDTOSchema=z98.object({totalCredits:z98.number(),totalCostUsd:z98.number(),totalMessages:z98.number(),automatedMessages:z98.number(),avgCostPerMessage:z98.number(),avgCreditsPerMessage:z98.number(),periodStart:z98.string(),periodEnd:z98.string(),creditsChange:z98.number().nullable(),costChange:z98.number().nullable(),messagesChange:z98.number().nullable(),unattributedCredits:z98.number(),unattributedCostUsd:z98.number(),unattributedMessages:z98.number()}),UsageOverviewSummaryDTO=createDTO(UsageOverviewSummaryDTOSchema),UsageTimelinePointDTOSchema=z98.object({date:z98.string(),credits:z98.number(),costUsd:z98.number(),messages:z98.number()}),UsageTimelinePointDTO=createDTO(UsageTimelinePointDTOSchema),OrganizationUsageRowDTOSchema=z98.object({organizationId:z98.string(),organizationName:z98.string(),credits:z98.number(),costUsd:z98.number(),messages:z98.number(),percentage:z98.number(),userCount:z98.number(),projectCount:z98.number()}),OrganizationUsageRowDTO=createDTO(OrganizationUsageRowDTOSchema),UserUsageRowDTOSchema=z98.object({userId:z98.string(),userName:z98.string().nullable(),userEmail:z98.string().nullable(),userImage:z98.string().nullable(),organizationId:z98.string().nullable(),organizationName:z98.string().nullable(),credits:z98.number(),costUsd:z98.number(),messages:z98.number(),percentage:z98.number(),projectCount:z98.number()}),UserUsageRowDTO=createDTO(UserUsageRowDTOSchema),ProjectUsageRowDTOSchema=z98.object({projectId:z98.string(),projectName:z98.string(),projectDisplayName:z98.string().nullable(),organizationId:z98.string(),organizationName:z98.string(),credits:z98.number(),costUsd:z98.number(),messages:z98.number(),percentage:z98.number(),userCount:z98.number()}),ProjectUsageRowDTO=createDTO(ProjectUsageRowDTOSchema),UsageDistributionItemDTOSchema=z98.object({id:z98.string(),name:z98.string(),value:z98.number(),percentage:z98.number()}),UsageDistributionItemDTO=createDTO(UsageDistributionItemDTOSchema),UsageHeatmapPointDTOSchema=z98.object({day:z98.number(),hour:z98.number(),value:z98.number()}),UsageHeatmapPointDTO=createDTO(UsageHeatmapPointDTOSchema),UsageOverviewResponseDTOSchema=z98.object({summary:UsageOverviewSummaryDTOSchema,timeline:z98.array(UsageTimelinePointDTOSchema),topOrganizations:z98.array(OrganizationUsageRowDTOSchema),topUsers:z98.array(UserUsageRowDTOSchema),topProjects:z98.array(ProjectUsageRowDTOSchema),creditDistribution:z98.array(UsageDistributionItemDTOSchema),userDistribution:z98.array(UsageDistributionItemDTOSchema),heatmap:z98.array(UsageHeatmapPointDTOSchema)}),UsageOverviewResponseDTO=createDTO(UsageOverviewResponseDTOSchema),UsagePaginationDTOSchema=z98.object({page:z98.number(),limit:z98.number(),totalItems:z98.number(),totalPages:z98.number(),hasMore:z98.boolean()}),UsagePaginationDTO=createDTO(UsagePaginationDTOSchema),UsageByOrganizationResponseDTOSchema=z98.object({organizations:z98.array(OrganizationUsageRowDTOSchema),top:z98.array(OrganizationUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByOrganizationResponseDTO=createDTO(UsageByOrganizationResponseDTOSchema),ExtendedUserUsageRowDTOSchema=UserUsageRowDTOSchema.extend({organizationCount:z98.number()}),ExtendedUserUsageRowDTO=createDTO(ExtendedUserUsageRowDTOSchema),UsageByUserResponseDTOSchema=z98.object({users:z98.array(ExtendedUserUsageRowDTOSchema),top:z98.array(ExtendedUserUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByUserResponseDTO=createDTO(UsageByUserResponseDTOSchema),ExtendedProjectUsageRowDTOSchema=ProjectUsageRowDTOSchema.extend({ownerId:z98.string(),ownerName:z98.string().nullable(),ownerEmail:z98.string().nullable()}),ExtendedProjectUsageRowDTO=createDTO(ExtendedProjectUsageRowDTOSchema),UsageByProjectResponseDTOSchema=z98.object({projects:z98.array(ExtendedProjectUsageRowDTOSchema),top:z98.array(ExtendedProjectUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByProjectResponseDTO=createDTO(UsageByProjectResponseDTOSchema),ExportFormatSchema=z98.enum(["csv","json"]),UsageExportQuerySchema=UsageAnalyticsQuerySchema.extend({format:ExportFormatSchema.default("csv"),type:z98.enum(["overview","organizations","users","projects"]).default("overview")}),PeekUsageMetricsDTOSchema=z98.object({credits:z98.number(),costUsd:z98.number(),messages:z98.number()}),PeekUsageMetricsDTO=createDTO(PeekUsageMetricsDTOSchema),OrganizationPeekDTOSchema=z98.object({id:z98.string(),name:z98.string(),createdAt:z98.string(),memberCount:z98.number(),projectCount:z98.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z98.array(UsageTimelinePointDTOSchema)}),OrganizationPeekDTO=createDTO(OrganizationPeekDTOSchema),UserPeekDTOSchema=z98.object({id:z98.string(),name:z98.string().nullable(),email:z98.string(),image:z98.string().nullable(),createdAt:z98.string(),organizationCount:z98.number(),projectCount:z98.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z98.array(UsageTimelinePointDTOSchema)}),UserPeekDTO=createDTO(UserPeekDTOSchema),ProjectPeekDTOSchema=z98.object({id:z98.string(),name:z98.string(),displayName:z98.string().nullable(),createdAt:z98.string(),organizationId:z98.string(),organizationName:z98.string(),ownerId:z98.string(),ownerName:z98.string().nullable(),ownerEmail:z98.string().nullable(),usage:PeekUsageMetricsDTOSchema,recentActivity:z98.array(UsageTimelinePointDTOSchema)}),ProjectPeekDTO=createDTO(ProjectPeekDTOSchema)}});import{z as z99}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=z99.enum(["running","completed","failed","stopped"]),PresetSandboxCommandSchema=z99.enum(["restart-dev-server","stop-dev-server","install-dependencies","reinstall-dependencies","build","typecheck"]),ExecuteSandboxCommandRequestDTOSchema=z99.object({command:z99.string().min(1).max(1e4),cwd:z99.string().optional(),projectBranch:BranchSchema.optional(),projectEnv:BranchSchema.optional(),env:z99.record(z99.string(),z99.string()).optional(),name:z99.string().optional(),waitForCompletion:z99.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=z99.object({identifier:z99.string(),status:SandboxProcessStatusSchema,command:z99.string().optional(),startedAt:z99.string().optional(),exitCode:z99.number().optional()}),SandboxProcessInfoDTO=createDTO(SandboxProcessInfoDTOSchema),SandboxProcessInfoResponseSchema=createResponseSchema(SandboxProcessInfoDTOSchema),SandboxProcessListDTOSchema=z99.object({processes:z99.array(SandboxProcessInfoDTOSchema)}),SandboxProcessListDTO=createDTO(SandboxProcessListDTOSchema),SandboxProcessListResponseSchema=createResponseSchema(SandboxProcessListDTOSchema),ExecuteSandboxCommandResponseDTOSchema=z99.object({processId:z99.string(),status:SandboxProcessStatusSchema}),ExecuteSandboxCommandResponseDTO=createDTO(ExecuteSandboxCommandResponseDTOSchema),PresetCommandResponseDTOSchema=z99.object({success:z99.boolean(),message:z99.string().optional()}),PresetCommandResponseDTO=createDTO(PresetCommandResponseDTOSchema),PresetCommandResponseSchema=createResponseSchema(PresetCommandResponseDTOSchema)}});import{z as z100}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=z100.enum(ADMIN_UNCLAIMED_STATES),AdminUnclaimedProjectsQuerySchema=z100.object({search:z100.string().trim().max(200).optional(),startDate:z100.coerce.date().optional(),endDate:z100.coerce.date().optional(),states:z100.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z100.array(AdminUnclaimedStateSchema).optional()),cliVersions:z100.string().optional().transform(value=>value?value.split(",").filter(Boolean):void 0).pipe(z100.array(z100.string().max(64)).optional()),page:z100.coerce.number().int().min(1).default(1),pageSize:z100.coerce.number().int().min(1).max(100).default(25)}),AdminUnclaimedProjectDTOSchema=z100.object({projectId:z100.string(),displayName:z100.string().nullable(),state:AdminUnclaimedStateSchema,cliVersion:z100.string().nullable(),createdAt:z100.coerce.date(),expiresAt:z100.coerce.date(),claimedAt:z100.coerce.date().nullable(),claimedOrganizationId:z100.string().nullable(),claimedOrganizationName:z100.string().nullable(),claimedByEmail:z100.string().nullable(),projectExists:z100.boolean(),previewUrl:z100.string().nullable(),hostingCostUsd:z100.number().nullable()}),AdminUnclaimedProjectDTO=createDTO(AdminUnclaimedProjectDTOSchema),AdminUnclaimedProjectsResponseSchema=createResponseSchema(z100.object({projects:z100.array(AdminUnclaimedProjectDTOSchema),page:z100.number(),limit:z100.number(),total:z100.number(),totalPages:z100.number()})),ClaimOutcomesSchema=z100.object({total:z100.number(),claimed:z100.number(),archived:z100.number(),claimRate:z100.number().nullable(),medianTimeToClaimSeconds:z100.number().nullable()}),AdminUnclaimedProjectStatsSchema=ClaimOutcomesSchema.extend({states:z100.record(AdminUnclaimedStateSchema,z100.number()),averageTimeToClaimSeconds:z100.number().nullable(),byCliVersion:z100.array(ClaimOutcomesSchema.extend({cliVersion:z100.string().nullable()})),granularity:z100.enum(["hour","day"]),series:z100.array(z100.object({at:z100.coerce.date(),states:z100.record(AdminUnclaimedStateSchema,z100.number()),alive:z100.number(),hostingCostUsd:z100.number()})),hostingCostUsd:z100.number(),costPerProjectUsd:z100.number().nullable(),leftovers:z100.object({overdue:z100.number(),claiming:z100.number(),archivedNotDeleted:z100.number()})}),AdminUnclaimedProjectStatsResponseSchema=createResponseSchema(AdminUnclaimedProjectStatsSchema)}});import{z as z101}from"zod";var WorkSessionVisibilitySchema,SessionSetRetentionSchema,init_work_sessions=__esm({"../../packages/api-contracts/dist/esm/work-sessions.js"(){"use strict";WorkSessionVisibilitySchema=z101.enum(["internal","user-visible"]),SessionSetRetentionSchema=z101.object({additionalDays:z101.number().int().min(1).max(30)}).strict()}});import{z as z102}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=z102.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=z102.object({content:ProjectKnowledgeContentSchema,updatedAt:z102.string().nullable(),updatedBy:z102.string().nullable()}),ProjectKnowledgeUpdateSchema=z102.object({content:ProjectKnowledgeContentSchema}),ProjectKnowledgeResponseSchema=createResponseSchema(ProjectKnowledgeDTOSchema),ProjectKnowledgeDraftDTOSchema=z102.object({id:z102.uuid(),status:z102.enum(["queued","running","ready","failed"]),content:ProjectKnowledgeContentSchema.nullable(),error:z102.string().nullable()}),ProjectKnowledgeDraftResponseSchema=createResponseSchema(ProjectKnowledgeDraftDTOSchema.nullable()),ProjectKnowledgeDraftStartSchema=z102.object({idempotencyKey:z102.uuid()})}});import{z as z103}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_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_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)&¶ms?.[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)}
|
|
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}
|
|
@@ -41,7 +41,7 @@ Expecting one of '${allowedValues.join("', '")}'`);return this._lifeCycleHooks[e
|
|
|
41
41
|
`),this._exit(0,"commander.version",str)}),this}description(str,argsDescription){return str===void 0&&argsDescription===void 0?this._description:(this._description=str,argsDescription&&(this._argsDescription=argsDescription),this)}summary(str){return str===void 0?this._summary:(this._summary=str,this)}alias(alias){if(alias===void 0)return this._aliases[0];let command=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(command=this.commands[this.commands.length-1]),alias===command._name)throw new Error("Command alias can't be the same as its name");let matchingCommand=this.parent?._findCommand(alias);if(matchingCommand){let existingCmd=[matchingCommand.name()].concat(matchingCommand.aliases()).join("|");throw new Error(`cannot add alias '${alias}' to command '${this.name()}' as already have command '${existingCmd}'`)}return command._aliases.push(alias),this}aliases(aliases){return aliases===void 0?this._aliases:(aliases.forEach(alias=>this.alias(alias)),this)}usage(str){if(str===void 0){if(this._usage)return this._usage;let args=this.registeredArguments.map(arg=>humanReadableArgName(arg));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?args:[]).join(" ")}return this._usage=str,this}name(str){return str===void 0?this._name:(this._name=str,this)}nameFromFilename(filename){return this._name=path50.basename(filename,path50.extname(filename)),this}executableDir(path51){return path51===void 0?this._executableDir:(this._executableDir=path51,this)}helpInformation(contextOptions){let helper=this.createHelp(),context=this._getOutputContext(contextOptions);helper.prepareContext({error:context.error,helpWidth:context.helpWidth,outputHasColors:context.hasColors});let text=helper.formatHelp(this,helper);return context.hasColors?text:this._outputConfiguration.stripColor(text)}_getOutputContext(contextOptions){contextOptions=contextOptions||{};let error=!!contextOptions.error,baseWrite,hasColors,helpWidth;return error?(baseWrite=__name(str=>this._outputConfiguration.writeErr(str),"baseWrite"),hasColors=this._outputConfiguration.getErrHasColors(),helpWidth=this._outputConfiguration.getErrHelpWidth()):(baseWrite=__name(str=>this._outputConfiguration.writeOut(str),"baseWrite"),hasColors=this._outputConfiguration.getOutHasColors(),helpWidth=this._outputConfiguration.getOutHelpWidth()),{error,write:__name(str=>(hasColors||(str=this._outputConfiguration.stripColor(str)),baseWrite(str)),"write"),hasColors,helpWidth}}outputHelp(contextOptions){let deprecatedCallback;typeof contextOptions=="function"&&(deprecatedCallback=contextOptions,contextOptions=void 0);let outputContext=this._getOutputContext(contextOptions),eventContext={error:outputContext.error,write:outputContext.write,command:this};this._getCommandAndAncestors().reverse().forEach(command=>command.emit("beforeAllHelp",eventContext)),this.emit("beforeHelp",eventContext);let helpInformation=this.helpInformation({error:outputContext.error});if(deprecatedCallback&&(helpInformation=deprecatedCallback(helpInformation),typeof helpInformation!="string"&&!Buffer.isBuffer(helpInformation)))throw new Error("outputHelp callback must return a string or a Buffer");outputContext.write(helpInformation),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",eventContext),this._getCommandAndAncestors().forEach(command=>command.emit("afterAllHelp",eventContext))}helpOption(flags,description){return typeof flags=="boolean"?(flags?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(flags=flags??"-h, --help",description=description??"display help for command",this._helpOption=this.createOption(flags,description),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(option){return this._helpOption=option,this}help(contextOptions){this.outputHelp(contextOptions);let exitCode=Number(process8.exitCode??0);exitCode===0&&contextOptions&&typeof contextOptions!="function"&&contextOptions.error&&(exitCode=1),this._exit(exitCode,"commander.help","(outputHelp)")}addHelpText(position,text){let allowedValues=["beforeAll","before","after","afterAll"];if(!allowedValues.includes(position))throw new Error(`Unexpected value for position to addHelpText.
|
|
42
42
|
Expecting one of '${allowedValues.join("', '")}'`);let helpEvent=`${position}Help`;return this.on(helpEvent,context=>{let helpStr;typeof text=="function"?helpStr=text({error:context.error,command:context.command}):helpStr=text,helpStr&&context.write(`${helpStr}
|
|
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
|
-
`,{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 z104}from"zod";function createResponseSchema2(dataSchema){return z104.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&¶ms.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 z104.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 z104.object({items:z104.array(itemSchema),nextCursor:z104.string().nullable(),total:z104.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=z104.uuid(),sessionStatusSchema=z104.enum(["provisioning","ready","closing","merged","discarded","expired","failed"]),surfaceNameSchema=z104.enum(["code","schemas","content","labels","assets","forms"]),branchSurfaceSchema=z104.enum(["code","schemas","content","labels","assets","forms"]),backendSurfaceSchema=z104.enum(["code","schemas","content","translations","assets","forms"]),branchNameSchema=z104.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=z104.object({sessionId:uuidSchema,projectId:uuidSchema,status:sessionStatusSchema,name:z104.string().nullable().optional(),goal:z104.string().nullable().optional(),provenance:z104.object({source:z104.enum(["studio","slack","mcp"]),creator:z104.object({kind:z104.enum(["user","slack","agent","oauth","conversation"]),id:z104.string()}),conversationId:z104.string().nullable(),runId:z104.string().nullable()}).nullable().optional(),createdBy:z104.string().optional(),createdAt:z104.iso.datetime().optional(),savedRevision:z104.string().nullable().optional(),targetBranch:z104.object({id:uuidSchema.nullable(),name:branchNameSchema,sha:z104.string().min(1)}),workingBranch:z104.object({id:uuidSchema,name:branchNameSchema}).nullable(),preview:z104.url().nullable(),lastActivityAt:z104.iso.datetime(),expiresAt:z104.iso.datetime().nullable(),retention:z104.enum(["temporary","durable"]).optional(),visibility:z104.enum(["internal","user-visible"]).optional(),onExpire:z104.enum(["discard","keep"]),nextOperations:z104.array(z104.string())}),paginationShape={limit:z104.number().int().min(1).max(100).optional(),cursor:z104.string().min(1).nullable().optional().describe("Opaque nextCursor from the previous page. Omit or use null for the first page."),offset:z104.number().int().min(0).optional()};__name(paginationRefinement,"paginationRefinement");__name(encodePaginationCursor,"encodePaginationCursor");__name(decodePaginationCursor,"decodePaginationCursor");__name(paginationOffset,"paginationOffset");numberedPaginationShape={page:z104.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=z104.object({data:z104.array(z104.unknown()),meta:z104.object({limit:z104.number().int().positive(),offset:z104.number().int().nonnegative(),total:z104.number().int().nonnegative(),hasMore:z104.boolean()})});__name(projectOffsetPage,"projectOffsetPage");__name(projectDetail,"projectDetail");__name(requiredBranch,"requiredBranch");__name(projectFilesPath,"projectFilesPath")}});import{z as z105}from"zod";var agent,chats,routines,routineRuns,agentsOperations,init_agents=__esm({"../../packages/sdk/dist/operations/agents.js"(){"use strict";init_common2();agent=z105.object({id:uuidSchema,kind:z105.string(),title:z105.string().nullable(),description:z105.string().nullable()}),chats=z105.object({chats:z105.array(agent)}),routines=z105.object({routines:z105.array(z105.object({id:uuidSchema,name:z105.string(),instructions:z105.string(),paused:z105.boolean(),triggers:z105.object({schedule:z105.object({cron:z105.string(),timezone:z105.string()}).nullable(),event:z105.object({text:z105.string()}).nullable()}),nextRunAt:z105.string().nullable(),lastRunAt:z105.string().nullable(),lastOutcome:z105.string().nullable(),outOfAgentHoursUntil:z105.string().nullable()}))}),routineRuns=z105.object({runs:z105.array(z105.object({startedAt:z105.string(),trigger:z105.enum(["schedule","hand","event"]),startedBy:z105.object({kind:z105.enum(["person","agent"]),name:z105.string().nullable()}).nullable(),status:z105.enum(["queued","running","finished","failed","cancelled"]),outcome:z105.string().nullable(),summary:z105.string().nullable(),durationMs:z105.number().nullable()}))}),agentsOperations={"agents.list":{domain:"agents",summary:"Read the project agents.",accessScope:"read",effect:"read",inputSchema:z105.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:z105.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:z105.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 z106}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=z106.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=z106.enum(["day","week","month","quarter"]),analyticsDeviceSchema=z106.enum(["bot","desktop","mobile","tablet"]),analyticsRangeShape={preset:analyticsPresetSchema.optional(),device:analyticsDeviceSchema.optional(),groupBy:analyticsGroupBySchema.optional(),from:z106.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),to:z106.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),days:z106.union([z106.literal(7),z106.literal(30),z106.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=z106.object({date:z106.string(),content:z106.string(),updatedAt:z106.string(),updatedByUserId:z106.string()}),analyticsBreakdownSchema=z106.object({key:z106.string(),visitors:z106.number().int().nonnegative(),pageviews:z106.number().int().nonnegative()}),analyticsPageBreakdownSchema=z106.object({path:z106.string(),pageName:z106.string().nullable().optional(),visitors:z106.number().int().nonnegative(),pageviews:z106.number().int().nonnegative()}),analyticsPageviewsSchema=z106.object({range:z106.object({preset:analyticsPresetSchema,requestedFrom:z106.string(),requestedTo:z106.string(),effectiveFrom:z106.string(),effectiveTo:z106.string(),isRetentionLimited:z106.boolean(),groupBy:analyticsGroupBySchema}),deviceFilter:analyticsDeviceSchema.nullable().default(null),visitors:z106.number().int().nonnegative(),pageviews:z106.number().int().nonnegative(),botPageviews:z106.number().int().nonnegative().default(0),botVisitors:z106.number().int().nonnegative().default(0),bounceRate:z106.number().min(0).max(100),viewsPerVisit:z106.number().nonnegative(),averageVisitDurationSeconds:z106.number().nonnegative(),visitorsSeries:z106.array(z106.object({date:z106.string(),visitors:z106.number().int().nonnegative()})),topPages:z106.array(analyticsPageBreakdownSchema),topBrowsers:z106.array(analyticsBreakdownSchema),topDevices:z106.array(analyticsBreakdownSchema),topBots:z106.array(analyticsBreakdownSchema).default([]),topAiAssistants:z106.array(analyticsBreakdownSchema).default([]),topCountries:z106.array(analyticsBreakdownSchema),topSources:z106.array(analyticsBreakdownSchema),annotations:z106.array(analyticsAnnotationSchema)}),analyticsApiResponseSchema=createResponseSchema2(analyticsPageviewsSchema),analyticsPageviewsResponseSchema=createResponseSchema2(analyticsPageviewsSchema.extend({branch:branchNameSchema})),analyticsDimensionSchema=z106.enum(["pages","browsers","devices","countries","sources"]),analyticsTopOutputSchema=z106.object({branch:branchNameSchema,dimension:analyticsDimensionSchema,items:z106.array(z106.union([analyticsPageBreakdownSchema,analyticsBreakdownSchema]))}),analyticsAnnotationsOutputSchema=z106.object({branch:branchNameSchema,annotations:z106.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:z106.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:z106.object({projectId:uuidSchema,branch:analyticsReadBranchSchema,dimension:analyticsDimensionSchema,limit:z106.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:z106.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:z106.object({projectId:uuidSchema,branch:branchNameSchema,date:z106.string().regex(/^\d{4}-\d{2}-\d{2}$/),content:z106.string().max(500)}).strict(),outputSchema:z106.union([analyticsAnnotationResponseSchema,z106.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:z106.object({projectId:uuidSchema,branch:branchNameSchema,date:z106.string().regex(/^\d{4}-\d{2}-\d{2}$/)}).strict(),outputSchema:z106.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 z107}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=z107.object({id:z107.string(),name:z107.string()}),AssetDTOSchema2=z107.object({id:z107.string(),name:z107.string(),type:z107.enum(["file","folder"]),originalFileName:z107.string().nullable(),parentId:z107.string().nullable(),mimeType:z107.string().nullable(),fileSize:z107.number().nullable(),url:z107.string().nullable(),storageKey:z107.string().nullable(),slug:z107.string(),tags:z107.array(z107.string()).nullable().optional(),createdAt:z107.string().nullable(),updatedAt:z107.string().nullable(),altText:z107.string().nullable().optional(),caption:z107.string().nullable().optional(),aiCaption:z107.string().nullable().optional(),aiAltText:z107.string().nullable().optional(),aiTags:z107.array(z107.string()).nullable().optional(),aiPrimaryColor:z107.string().nullable().optional(),aiProcessingStatus:z107.string().nullable().optional(),width:z107.number().nullable().optional(),height:z107.number().nullable().optional(),path:z107.array(assetPathItemSchema).optional(),hasChildren:z107.boolean().optional()}),AssetResponseSchema2=createResponseSchema2(AssetDTOSchema2),AssetReadRequestSchema2=z107.object({cursor:z107.string().nullable().optional(),query:z107.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=z107.object({url:z107.url(),mediaType:z107.string(),filename:z107.string()}),assetReadBaseSchema=z107.object({assetId:z107.uuid(),filename:z107.string(),mediaType:z107.string(),representation:z107.enum(["text","table","document","archive","image","transcript","video","model"]),content:z107.string(),derivedFiles:z107.array(assetDerivedFileSchema).optional()}),AssetReadResultSchema2=z107.discriminatedUnion("mode",[assetReadBaseSchema.extend({mode:z107.literal("page"),start:z107.number().int().nonnegative(),end:z107.number().int().nonnegative(),total:z107.number().int().nonnegative(),nextCursor:z107.string().nullable(),complete:z107.boolean()}),assetReadBaseSchema.extend({mode:z107.literal("query"),query:z107.string(),source:z107.enum(["original-file","canonical-text","derived-files"]),truncated:z107.boolean()})]),GenerateResponseSchema2=createResponseSchema2(z107.object({jobId:z107.string(),status:z107.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema2.optional(),error:z107.string().nullable().optional(),credits:z107.number().optional(),costUsd:z107.number().optional(),billingMode:z107.enum(["fimo-credits","provider-account"]).optional(),task:z107.enum(["image.generate","image.edit","image.remove-background","image.upscale","video.generate","video.animate","video.replace"]).optional(),quality:z107.enum(["draft","standard","premium"]).optional()})),assetPageSchema=pageSchema(AssetDTOSchema2),successMessageResponseSchema=z107.object({data:z107.object({message:z107.literal("success")})}),assetGenerationInputSchema=z107.object({projectId:uuidSchema,branch:branchNameSchema,task:z107.string().min(1).optional(),model:z107.string().min(1).optional(),options:z107.record(z107.string(),z107.unknown()),name:z107.string().min(1).max(255).optional(),parentId:uuidSchema.nullable().optional(),altText:z107.string().max(2e3).optional(),caption:z107.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=z107.object({projectId:uuidSchema,sessionId:uuidSchema,url:z107.url().max(4096).refine(url=>url.startsWith("https://")||url.startsWith("http://"),"URL must use HTTP or HTTPS"),filename:z107.string().trim().min(1).max(255).refine(filename=>!filename.includes("/")&&!filename.includes("\\"),"Filename must not contain a path").optional(),name:z107.string().trim().min(1).max(255).optional(),parentId:uuidSchema.nullable().optional(),folderPath:z107.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:z107.string().max(2e3).optional(),caption:z107.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:z107.object({projectId:uuidSchema,branch:branchNameSchema,parentId:uuidSchema.optional(),search:z107.string().max(200).optional(),type:z107.enum(["file","folder"]).optional(),mimePrefix:z107.string().max(50).optional(),sortBy:z107.enum(["name","createdAt","updatedAt","fileSize","type"]).optional(),sortDirection:z107.enum(["asc","desc"]).optional(),includePath:z107.boolean().optional(),excludeHidden:z107.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:z107.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:z107.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:z107.object({projectId:uuidSchema,branch:branchNameSchema,name:z107.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:z107.object({projectId:uuidSchema,branch:branchNameSchema,sourceAssetId:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z107.record(z107.string(),z107.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=>z107.object({data:z107.record(z107.string(),z107.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:z107.object({projectId:uuidSchema,branch:branchNameSchema,sourceAssetId:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z107.record(z107.string(),z107.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=>z107.object({data:z107.record(z107.string(),z107.unknown())}).parse(body).data,"projectOutput")},"assets.destroy":{domain:"assets",summary:"Permanently destroy an asset on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z107.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema}).strict(),outputSchema:z107.unknown(),buildRequest:__name(({projectId:projectId2,branch,id})=>({method:"DELETE",path:tenantPath(projectId2,branch,`/assets/${encodeURIComponent(id)}/permanent`)}),"buildRequest"),projectOutput:__name(body=>z107.object({data:z107.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:z107.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z107.record(z107.string(),z107.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=>z107.object({data:z107.record(z107.string(),z107.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:z107.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:z107.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 z108}from"zod";var creditBalanceOutputSchema,billingOperations,init_billing2=__esm({"../../packages/sdk/dist/operations/billing.js"(){"use strict";init_common2();creditBalanceOutputSchema=z108.object({projectId:uuidSchema,organizationId:z108.string(),balance:z108.object({totalAvailable:z108.number(),nearLimit:z108.boolean(),canUseAi:z108.boolean(),buckets:z108.object({dailyFreeAvailable:z108.number(),monthlyAvailable:z108.number(),purchasedAvailable:z108.number(),awardedAvailable:z108.number()})}),allowances:z108.object({dailyCredits:z108.object({periodCap:z108.number(),dailyGrant:z108.number(),usedThisPeriod:z108.number(),remainingThisPeriod:z108.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:z108.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 z109}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=z109.object({ok:z109.boolean(),mergeId:uuidSchema,fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),fromEnv:branchNameSchema,toEnv:branchNameSchema,applied:z109.array(z109.object({surface:backendSurfaceSchema,count:z109.number().int().nonnegative()})),conflicts:z109.array(backendConflictSchema).optional(),summary:z109.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=z109.object({mergeId:uuidSchema,conflicts:z109.array(backendConflictSchema),draftResolutions:z109.array(conflictResolutionSchema.extend({surface:backendSurfaceSchema})),status:z109.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 z109.object({data:z109.array(branchSchema)}).parse({data})}function projectBranchStatus(body){if(branchStatusOutputSchema.safeParse(body).success)return branchStatusOutputSchema.parse(body);let report2=z109.object({branch:branchNameSchema.optional(),env:branchNameSchema,vs:branchNameSchema,syncState:z109.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:isoTimestampSchema,surfaces:z109.array(backendSurfaceDeltaSchema).max(6),crossSurface:z109.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=z109.object({fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),fromEnv:branchNameSchema,toEnv:branchNameSchema,generatedAt:isoTimestampSchema,fingerprint:z109.string().min(1),surfaces:z109.array(backendSurfaceDeltaSchema).max(6),crossSurface:z109.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=z109.object({id:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,parentBranch:branchNameSchema.nullable().optional(),status:z109.enum(["provisioning","active","deleted"]),kind:z109.enum(["user","agent-session"]),createdAt:z109.string().optional(),updatedAt:z109.string().optional(),createdBy:z109.string().nullable().optional(),deletedAt:z109.string().nullable().optional()}).passthrough(),branchResponseSchema=z109.object({data:branchSchema}),branchSurfaceStatusSchema=z109.enum(["ok","timed_out","failed","unchanged"]),branchDeltaVerbSchema=z109.enum(["added","removed","changed","conflict"]),isoTimestampSchema=z109.iso.datetime(),backendCrossSurfaceFindingSchema=z109.object({id:z109.string(),kind:z109.string(),description:z109.string(),severity:z109.enum(["warning","error"]),source:z109.object({surface:backendSurfaceSchema,key:z109.string()}),target:z109.object({surface:backendSurfaceSchema,key:z109.string()}),actions:z109.array(z109.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=z109.object({surface:backendSurfaceSchema,status:branchSurfaceStatusSchema,changedCount:z109.number().int().nonnegative(),conflictCount:z109.number().int().nonnegative(),items:z109.array(z109.object({verb:branchDeltaVerbSchema,key:z109.string(),detail:z109.string().optional(),origin:z109.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z109.record(z109.string(),z109.unknown()).optional()})).max(1e3).optional(),truncated:z109.boolean().optional(),error:z109.string().optional()}),branchSurfaceSummarySchema=z109.object({surface:branchSurfaceSchema,status:branchSurfaceStatusSchema,changedCount:z109.number().int().nonnegative(),conflictCount:z109.number().int().nonnegative(),error:z109.string().optional(),items:z109.array(z109.object({verb:branchDeltaVerbSchema,key:z109.string(),detail:z109.string().optional(),origin:z109.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z109.record(z109.string(),z109.unknown()).optional()})).optional(),truncated:z109.boolean().optional()}),branchStatusOutputSchema=z109.object({branch:branchNameSchema,against:branchNameSchema,state:z109.enum(["clean","changed"]),syncState:z109.enum(["in-sync","ahead","behind","diverged","unknown"]).optional(),generatedAt:isoTimestampSchema,surfaces:z109.array(branchSurfaceSummarySchema).max(6),crossSurface:z109.array(crossSurfaceFindingSchema).max(1e3).optional()}),branchDiffItemSchema=z109.object({verb:branchDeltaVerbSchema,key:z109.string(),detail:z109.string().optional(),meta:z109.record(z109.string(),z109.unknown()).optional()}),branchDiffOutputSchema=branchStatusOutputSchema.omit({state:!0}).extend({fingerprint:z109.string().min(1),surfaces:z109.array(branchSurfaceSummarySchema.extend({truncated:z109.boolean(),items:z109.array(branchDiffItemSchema).max(1e3)})).max(6)}),codeFileDiffOutputSchema=z109.object({path:z109.string(),state:z109.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z109.string(),additions:z109.number().int().nonnegative(),deletions:z109.number().int().nonnegative()}),contentSnapshotSchema=z109.object({id:z109.string(),slug:z109.string(),contentType:z109.string(),data:z109.record(z109.string(),z109.unknown()),updatedAt:isoTimestampSchema}),contentEntryDiffOutputSchema=z109.object({collection:z109.string(),rowId:z109.string(),parent:contentSnapshotSchema.nullable(),child:contentSnapshotSchema.nullable()}),schemaSnapshotSchema=z109.object({name:z109.string(),label:z109.string(),isSingleton:z109.boolean(),fields:z109.record(z109.string(),z109.unknown())}),schemaDiffOutputSchema=z109.object({typeName:z109.string(),parent:schemaSnapshotSchema.nullable(),child:schemaSnapshotSchema.nullable()}),assetSnapshotSchema=z109.object({id:z109.string(),name:z109.string(),type:z109.enum(["file","folder"]),mimeType:z109.string().nullable(),storageKey:z109.string().nullable(),url:z109.string().nullable(),fileSize:z109.number().nullable(),width:z109.number().nullable(),height:z109.number().nullable(),altText:z109.string().nullable(),caption:z109.string().nullable(),createdAt:isoTimestampSchema,updatedAt:isoTimestampSchema}),assetDiffOutputSchema=z109.object({assetId:z109.string(),parent:assetSnapshotSchema.nullable(),child:assetSnapshotSchema.nullable()}),labelDiffOutputSchema=z109.object({locale:z109.string(),key:z109.string(),parent:z109.string().nullable(),child:z109.string().nullable()}),formSnapshotSchema=z109.object({formName:z109.string(),label:z109.string().nullable(),schemaFingerprint:z109.string(),fields:z109.record(z109.string(),z109.unknown())}),formDiffOutputSchema=z109.object({formName:z109.string(),parent:formSnapshotSchema.nullable(),child:formSnapshotSchema.nullable()}),backendConflictSchema=z109.object({surface:backendSurfaceSchema,key:z109.string(),kind:z109.enum(["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"]).optional(),description:z109.string(),parentValue:z109.unknown().optional(),childValue:z109.unknown().optional(),conflictingFields:z109.array(z109.string()).optional(),code:z109.object({path:z109.string(),unresolvable:z109.boolean().optional(),reason:z109.string().optional()}).optional()}),conflictSchema=backendConflictSchema.extend({surface:branchSurfaceSchema}),fieldPickSchema=z109.object({field:z109.string(),choice:z109.enum(["parent","child","pick","ai-pick"]),pickedValue:z109.unknown().optional(),aiSessionId:z109.string().optional()}),conflictResolutionSchema=z109.object({surface:branchSurfaceSchema,key:z109.string(),choice:z109.enum(["parent","child","pick"]),pickedValue:z109.unknown().optional(),fieldPicks:z109.array(fieldPickSchema).optional()}),mergeResultSchema=z109.object({ok:z109.boolean(),mergeId:uuidSchema,fromBranch:branchNameSchema,toBranch:branchNameSchema,applied:z109.array(z109.object({surface:branchSurfaceSchema,count:z109.number().int().nonnegative()})),conflicts:z109.array(conflictSchema).optional(),summary:z109.string().optional()}),resolvedMergeStrategySchema=z109.object({engine:z109.enum(["ff-only","auto","theirs","ours","manual"]),vendor:z109.enum(["ff_only","ff_prefer","merge"]),squash:z109.boolean()}),mergeAcceptedSchema=z109.object({mergeId:uuidSchema,streamUrl:z109.string(),strategy:resolvedMergeStrategySchema,acceptedAt:isoTimestampSchema}),mergeStatusSchema=z109.object({mergeId:uuidSchema,fromBranch:branchNameSchema,toBranch:branchNameSchema,status:z109.enum(["in_progress","complete","failed","rolled_back","conflicts"]),summary:z109.string().nullable(),error:z109.string().nullable()}),mergeHydrationSchema=z109.object({mergeId:uuidSchema,conflicts:z109.array(conflictSchema),draftResolutions:z109.array(conflictResolutionSchema),status:z109.string()}).passthrough();__name(projectConflict,"projectConflict");__name(backendResolution,"backendResolution");__name(projectMergeResult,"projectMergeResult");__name(projectMergeHydration,"projectMergeHydration");codeConflictBlobSchema=z109.object({content:z109.string(),sha:z109.string().nullable().optional()}).passthrough(),codeConflictDetailOutputSchema=z109.object({path:z109.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:z109.object({projectId:uuidSchema,includeDeleted:z109.boolean().optional(),includeAgentBranches:z109.boolean().optional()}).strict(),outputSchema:z109.object({data:z109.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:z109.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:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema.optional()}).strict(),outputSchema:z109.object({branch:branchSchema,conflicts:z109.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=z109.object({branch:branchSchema.optional(),env:branchSchema.optional(),conflicts:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,against:branchNameSchema.optional(),surfaces:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,against:branchNameSchema.optional(),surfaces:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,path:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,collection:z109.string().min(1),rowId:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,assetId:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,locale:z109.string().min(1),key:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,formName:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,allowDirectMerge:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,mergeId:uuidSchema,resolutions:z109.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:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,mergeId:uuidSchema}).strict(),outputSchema:z109.object({ok:z109.boolean()}),buildRequest:__name(({projectId:projectId2,branch,mergeId})=>({method:"POST",path:managementBranchPath(projectId2,branch,"/merge/cancel"),body:{mergeId}}),"buildRequest"),projectOutput:__name(body=>z109.object({ok:z109.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:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,mergeId:uuidSchema,resolutions:z109.array(conflictResolutionSchema)}).strict(),outputSchema:z109.object({mergeId:uuidSchema,lastEditedAt:z109.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=>z109.object({mergeId:uuidSchema,lastEditedAt:z109.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:z109.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,path:z109.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 z110}from"zod";var projectDomainSchema,registeredDomainSchema,domainSearchResultSchema,domainPricingSchema,projectPath,forbidden,domainsOperations,init_domains=__esm({"../../packages/sdk/dist/operations/domains.js"(){"use strict";init_common2();projectDomainSchema=z110.object({id:z110.string(),hostname:z110.string(),status:z110.string(),ssl:z110.record(z110.string(),z110.unknown()),cnameTarget:z110.string(),apexTargets:z110.array(z110.string()),dnsAutoConfigured:z110.boolean(),createdAt:z110.unknown(),provider:z110.enum(["cloudflare","saas_custom_domains"]),domainType:z110.enum(["subdomain","apex"])}).passthrough(),registeredDomainSchema=z110.object({id:uuidSchema,domain:z110.string(),status:z110.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),source:z110.enum(["fimo","external"]),autoRenew:z110.boolean(),paymentStatus:z110.enum(["pending","paid","failed","refunded"]).nullable(),checkoutUrl:z110.string().nullable()}).passthrough(),domainSearchResultSchema=z110.object({domain:z110.string(),available:z110.boolean(),premium:z110.boolean(),price:z110.number().nullable(),renewalPrice:z110.number().nullable(),purchaseType:z110.string().nullable()}).passthrough(),domainPricingSchema=z110.object({domain:z110.string(),price:z110.number().nullable(),renewalPrice:z110.number().nullable(),premium:z110.boolean(),allowedYears:z110.array(z110.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:z110.object({}).strict(),outputSchema:z110.object({domainPurchaseEnabled:z110.boolean(),publicationDomain:z110.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:z110.object({projectId:uuidSchema,slug:z110.string().min(1).max(63)}).strict(),outputSchema:z110.object({subdomain:z110.string(),subdomainUpdatedAt:z110.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:z110.object({projectId:uuidSchema,base:z110.string().min(1).max(63).optional(),max:z110.number().int().positive().optional()}).strict(),outputSchema:z110.array(z110.string()),buildRequest:__name(({projectId:projectId2,base,max})=>({method:"GET",path:addQuery(projectPath(projectId2,"/subdomain/suggestions"),{base,max})}),"buildRequest"),projectOutput:__name(body=>z110.object({data:z110.object({suggestions:z110.array(z110.string())})}).parse(body).data.suggestions,"projectOutput")},"domains.list":{domain:"domains",summary:"List custom domains attached to a site.",accessScope:"read",effect:"read",inputSchema:z110.object({projectId:uuidSchema}).strict(),outputSchema:z110.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:z110.object({projectId:uuidSchema,hostname:z110.string().min(1).max(255),redirectToWww:z110.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:z110.object({projectId:uuidSchema,domainId:z110.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:z110.object({projectId:uuidSchema,domainId:z110.string().min(1)}).strict(),outputSchema:z110.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:z110.object({keyword:z110.string().min(1).max(100),tldFilter:z110.array(z110.string().min(1)).optional()}).strict(),outputSchema:z110.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:z110.object({domain:z110.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:z110.object({organizationId:z110.string().min(1)}).strict(),outputSchema:z110.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:z110.object({organizationId:z110.string().min(1),domain:z110.string().min(1).max(255),years:z110.number().int().min(1).max(10).optional(),autoRenew:z110.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:z110.object({organizationId:z110.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 z111}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=z111.object({id:z111.string(),entryId:z111.string(),documentId:z111.string(),slug:z111.string(),locale:z111.string().optional(),createdAt:z111.string(),updatedAt:z111.string(),__fimo:z111.object({contentType:z111.string()})}).passthrough(),PaginatedEntriesDTOSchema2=z111.object({data:z111.array(EntryDTOSchema2),meta:z111.object({limit:z111.number(),offset:z111.number(),total:z111.number(),hasMore:z111.boolean()})}),EntryResponseSchema2=createResponseSchema2(EntryDTOSchema2),MAX_BULK_ENTRIES2=1e3,entryWhereScalarSchema2=z111.union([z111.string(),z111.number(),z111.boolean(),z111.null()]),entryWhereOperatorSchema2=z111.object({$eq:entryWhereScalarSchema2.optional(),$ne:entryWhereScalarSchema2.optional(),$gt:entryWhereScalarSchema2.optional(),$gte:entryWhereScalarSchema2.optional(),$lt:entryWhereScalarSchema2.optional(),$lte:entryWhereScalarSchema2.optional(),$in:z111.array(entryWhereScalarSchema2).optional(),$nin:z111.array(entryWhereScalarSchema2).optional(),$contains:z111.string().optional(),$startsWith:z111.string().optional(),$null:z111.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema2=z111.record(z111.string(),z111.union([entryWhereScalarSchema2,entryWhereOperatorSchema2])),EntryWhereSchema2=z111.record(z111.string(),z111.union([entryWhereScalarSchema2,entryWhereOperatorSchema2,nestedEntryWhereSchema2])),EntryMutationBodySchema2=z111.object({data:z111.record(z111.string(),z111.unknown()),locale:z111.string().min(1).optional(),documentId:z111.uuid().optional()}),BulkCreateEntriesResponseSchema2=z111.object({data:z111.array(EntryDTOSchema2),meta:z111.object({created:z111.number().int().nonnegative()})}),BulkUpdateEntriesResponseSchema2=z111.object({data:z111.array(EntryDTOSchema2),meta:z111.object({updated:z111.number().int().nonnegative(),missing:z111.array(z111.string())})}),BulkDeleteEntriesResponseSchema2=z111.object({data:z111.array(EntryDTOSchema2),meta:z111.object({deleted:z111.number().int().nonnegative(),missing:z111.array(z111.string())})});__name(projectEntriesPage,"projectEntriesPage");entriesPageSchema=pageSchema(EntryDTOSchema2),typeNameSchema=z111.string().min(1).max(255),localeSchema=z111.string().min(1),populateSchema=z111.array(z111.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:z111.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:z111.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional(),populate:populateSchema,localeFallbacks:z111.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:z111.object({projectId:uuidSchema,branch:branchNameSchema,search:z111.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:z111.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z111.string().min(1).max(255),data:entryDataSchema,locale:z111.string().min(1).optional(),documentId:z111.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:z111.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z111.string().min(1).max(255),id:uuidSchema,data:entryDataSchema,locale:z111.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:z111.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional(),fields:z111.record(z111.string(),z111.unknown())}).strict(),outputSchema:z111.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=>z111.object({data:z111.unknown()}).parse(body).data,"projectOutput")},"entries.querySql":{domain:"entries",summary:"Run a read-only SQL query against Branch content.",accessScope:"read",effect:"read",inputSchema:z111.object({projectId:uuidSchema,branch:branchNameSchema,sql:z111.string().min(1)}).strict(),outputSchema:z111.object({data:z111.array(z111.record(z111.string(),z111.unknown())),meta:z111.object({rowCount:z111.number().int().nonnegative(),truncated:z111.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:z111.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:z111.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,entries:z111.array(z111.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:z111.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,selection:z111.union([z111.object({ids:z111.array(uuidSchema).min(1).max(MAX_BULK_ENTRIES2)}),z111.object({where:EntryWhereSchema2}),z111.object({updates:z111.array(z111.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:z111.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,selection:z111.union([z111.object({ids:z111.array(uuidSchema).min(1).max(MAX_BULK_ENTRIES2)}),z111.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 z112}from"zod";var productionEnvironmentSchema,previewEnvironmentSchema,customEnvironmentSchema,environmentSchema,environmentWriteShape,environmentsOperations,init_environments=__esm({"../../packages/sdk/dist/operations/environments.js"(){"use strict";init_common2();productionEnvironmentSchema=z112.object({id:z112.literal("production"),projectId:uuidSchema,name:z112.string(),kind:z112.literal("production"),sourceBranch:z112.string().min(1),isPublished:z112.boolean(),url:z112.string().nullable()}),previewEnvironmentSchema=z112.object({id:z112.literal("preview"),projectId:uuidSchema,name:z112.string(),kind:z112.literal("preview"),matchedBranchCount:z112.number().int().nonnegative()}),customEnvironmentSchema=z112.object({id:uuidSchema,projectId:uuidSchema,name:z112.string().min(1).max(64),branchPatterns:z112.array(z112.string().min(1).max(255)).min(1),description:z112.string().max(255).nullable(),kind:z112.literal("custom"),matchedBranchCount:z112.number().int().nonnegative()}),environmentSchema=z112.discriminatedUnion("kind",[productionEnvironmentSchema,previewEnvironmentSchema,customEnvironmentSchema]),environmentWriteShape={name:z112.string().trim().min(1).max(64),branchPatterns:z112.array(z112.string().min(1).max(255)).min(1),description:z112.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:z112.object({projectId:uuidSchema}).strict(),outputSchema:z112.array(environmentSchema),buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/environments")}),"buildRequest"),projectOutput:__name(body=>z112.array(environmentSchema).parse(responseData(body)),"projectOutput")},"environments.create":{domain:"environments",summary:"Create a custom compatibility Environment for one site.",accessScope:"write",effect:"mutation",inputSchema:z112.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:z112.object({projectId:uuidSchema,environmentId:z112.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:z112.object({projectId:uuidSchema,environmentId:z112.string().min(1)}).strict(),outputSchema:z112.object({deletedId:uuidSchema}),buildRequest:__name(({projectId:projectId2,environmentId})=>({method:"DELETE",path:managementProjectPath(projectId2,`/environments/${encodeURIComponent(environmentId)}`),preserveForbidden:!0}),"buildRequest"),projectOutput:__name(body=>z112.object({deletedId:uuidSchema}).parse(responseData(body)),"projectOutput")}}}});import{z as z113}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=z113.object({data:z113.object({path:z113.string(),content:z113.string(),totalLines:z113.number().int().nonnegative()}).passthrough()}),fileGlobOutputSchema=z113.object({data:z113.object({paths:z113.array(z113.string().min(1)).max(2e3),truncated:z113.boolean()})}),fileGrepOutputSchema=z113.object({data:z113.object({matches:z113.array(z113.object({path:z113.string().min(1),line:z113.number().int().positive(),text:z113.string()})).max(200),truncated:z113.boolean()})}),fileWriteInputSchema=z113.object({projectId:uuidSchema,sessionId:uuidSchema,path:z113.string().min(1).max(1024),content:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES2,`Content exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES2}-byte write limit.`),overwrite:z113.boolean().optional()}).strict(),fileEditInputSchema=z113.object({projectId:uuidSchema,sessionId:uuidSchema,path:z113.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:z113.boolean().optional()}).strict(),fileWriteOutputSchema=sessionEnvelopeSchema.extend({file:z113.object({path:z113.string(),created:z113.boolean(),tip:z113.string().min(1)}).passthrough()}),fileWriteManyInputSchema=z113.object({projectId:uuidSchema,sessionId:uuidSchema,files:z113.array(z113.object({path:z113.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:z113.array(z113.object({path:z113.string(),created:z113.boolean()}).passthrough()),tip:z113.string().min(1)}),fileEditOutputSchema=sessionEnvelopeSchema.extend({file:z113.object({path:z113.string(),replacements:z113.number().int().nonnegative(),tip:z113.string().min(1)}).passthrough()}),fileDeleteOutputSchema=sessionEnvelopeSchema.extend({file:z113.object({path:z113.string(),deleted:z113.literal(!0),tip:z113.string().min(1)})}),fileSearchInputShape={projectId:uuidSchema,branch:branchNameSchema.optional(),sessionId:uuidSchema.optional()};__name(requireBranchOrSession,"requireBranchOrSession");fileReadInputSchema=z113.object({projectId:uuidSchema,branch:branchNameSchema.optional(),sessionId:uuidSchema.optional(),path:z113.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:z113.object({...fileSearchInputShape,pattern:z113.string().min(1).max(300).optional(),limit:z113.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:z113.object({...fileSearchInputShape,pattern:z113.string().min(1).max(200),include:z113.string().min(1).max(300).optional(),caseInsensitive:z113.boolean().optional(),maxMatches:z113.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:z113.object({projectId:uuidSchema,sessionId:uuidSchema,path:z113.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 z114}from"zod";function projectFormResponse(body){return formResponseSchema.parse(body)}function projectFormDetail(body){return formResponseSchema.parse(body).data}function projectFormList(body){return z114.object({data:z114.array(formSchema)}).parse(body).data}function projectFormSubmissionsPage(body,input){let page=z114.object({data:z114.array(formSubmissionSchema),total:z114.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=z114.object({type:z114.enum(["text","email","textarea","number","phone","url","select","checkbox","date","hidden","file"]),label:z114.string(),placeholder:z114.string().optional(),required:z114.boolean().optional(),defaultValue:z114.string().optional(),options:z114.array(z114.string()).optional(),validation:z114.object({minLength:z114.number().optional(),maxLength:z114.number().optional(),min:z114.number().optional(),max:z114.number().optional(),pattern:z114.string().optional(),maxFileSize:z114.number().optional(),accept:z114.array(z114.string()).optional()}).optional()}),FormContentSchema2=z114.object({name:z114.string().min(1).max(255),label:z114.string().min(1).max(255),fields:z114.record(z114.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=z114.object({id:uuidSchema,name:FormContentSchema2.shape.name,label:FormContentSchema2.shape.label,fields:FormContentSchema2.shape.fields,settings:z114.record(z114.string(),z114.unknown()).nullable().optional(),createdAt:z114.string(),updatedAt:z114.string()}).passthrough(),formSchema=rawFormSchema,formResponseSchema=z114.object({data:formSchema}),formSubmissionSchema=z114.object({id:uuidSchema,formId:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,data:z114.record(z114.string(),z114.unknown()),submittedAt:z114.string()}),formSubmissionResponseSchema=z114.object({data:formSubmissionSchema}),formSubmissionsPageSchema=pageSchema(formSubmissionSchema),formSubmissionStatsResponseSchema=z114.object({data:z114.object({total:z114.number().int().nonnegative(),dailyCounts:z114.array(z114.object({date:z114.string(),count:z114.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:z114.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:z114.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:z114.object({projectId:uuidSchema,branch:branchNameSchema,id:z114.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:z114.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:z114.object({projectId:uuidSchema,branch:branchNameSchema,id:z114.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:z114.object({projectId:uuidSchema,branch:branchNameSchema,id:z114.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:z114.object({projectId:uuidSchema,branch:branchNameSchema,id:z114.string().min(1).max(255),...paginationShape,searchQuery:z114.string().max(200).optional(),sortDirection:z114.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:z114.object({projectId:uuidSchema,branch:branchNameSchema,id:z114.string().min(1).max(255),submissionId:z114.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:z114.object({projectId:uuidSchema,branch:branchNameSchema,id:z114.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:z114.object({projectId:uuidSchema,branch:branchNameSchema,id:z114.string().min(1).max(255),submissionId:z114.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 z115}from"zod";var estimateSchema,generationOperations,init_generation=__esm({"../../packages/sdk/dist/operations/generation.js"(){"use strict";init_common2();estimateSchema=z115.object({costUsd:z115.number(),credits:z115.number().optional(),billingMode:z115.enum(["fimo-credits","provider-account"]).optional(),confidence:z115.enum(["exact","estimated","metered"]),basis:z115.string()}).passthrough(),generationOperations={"generation.estimateModel":{domain:"generation",summary:"Estimate one generation request against an enabled provider model.",accessScope:"read",effect:"read",inputSchema:z115.object({projectId:uuidSchema,model:z115.string().min(1),options:z115.record(z115.string(),z115.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:z115.object({projectId:uuidSchema,branch:branchNameSchema,task:z115.string().min(1),options:z115.record(z115.string(),z115.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 z116}from"zod";var historyKindSchema,projectVersionSchema,projectVersionPageSchema,historySummarySchema,restoreResultSchema,historyOperations,init_history=__esm({"../../packages/sdk/dist/operations/history.js"(){"use strict";init_common2();historyKindSchema=z116.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),projectVersionSchema=z116.object({versionId:uuidSchema,commitHash:z116.string(),name:z116.string(),description:z116.string().nullable(),kind:historyKindSchema,createdAt:z116.iso.datetime(),expiresAt:z116.iso.datetime()}),projectVersionPageSchema=z116.object({items:z116.array(projectVersionSchema),nextCursor:z116.string().nullable()}),historySummarySchema=z116.object({usage:z116.object({versionCount:z116.number().int().nonnegative(),snapshotBytes:z116.number().int().nonnegative()}),retentionDays:z116.number().int().positive()}),restoreResultSchema=z116.object({durationMs:z116.number().nonnegative().optional(),warning:z116.string().optional()}),historyOperations={"history.list":{domain:"history",summary:"List restore points for one Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z116.object({projectId:uuidSchema,branch:branchNameSchema,limit:z116.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:z116.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:z116.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:z116.object({projectId:uuidSchema,branch:branchNameSchema,name:z116.string().min(1),description:z116.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:z116.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 z117}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=z117.number().int().min(1).max(LOG_TAIL_MAX_LIMIT).optional(),publicationStateOutputSchema=z117.object({isPublished:z117.boolean(),publishedAt:z117.iso.datetime().nullable(),publishedVersion:z117.string().nullable()}),publicationOutputSchema=z117.object({id:uuidSchema,status:z117.enum(["queued","building","published","failed","canceled"]),label:z117.string().nullable(),notes:z117.string().nullable(),source:z117.object({branch:branchNameSchema,targetBranch:branchNameSchema,configVersion:z117.string().nullable(),framework:z117.string().nullable(),commit:z117.string().nullable()}),createdAt:z117.iso.datetime(),finishedAt:z117.iso.datetime().nullable(),url:z117.string().nullable(),failureCode:z117.string().nullable()}),publicationsPageOutputSchema=z117.object({items:z117.array(publicationOutputSchema),nextCursor:z117.string().nullable(),retention:z117.object({scope:z117.literal("publication_attempt_record"),records:z117.literal("project_lifetime")})}),publicationLogsOutputSchema=z117.object({status:z117.enum(["ok","unavailable"]),publicationId:uuidSchema,reason:z117.enum(["pending","no_deployment","provider_unavailable"]).nullable(),message:z117.string().nullable(),items:z117.array(z117.object({timestamp:z117.iso.datetime(),phase:z117.enum(["build","deploy"]),stream:z117.enum(["command","stdout","stderr","status","error"]),message:z117.string()}))}),sandboxLogsOutputSchema=z117.object({status:z117.enum(["ok","unavailable"]),reason:z117.enum(["no_sandbox","sandbox_expired","provider_unsupported"]).nullable(),message:z117.string().nullable(),items:z117.array(z117.object({id:z117.string(),timestamp:z117.iso.datetime().nullable(),source:z117.enum(["install","dev-server"]),phase:z117.string(),stream:z117.enum(["combined","stdout","stderr"]),message:z117.string()})),nextCursor:z117.string().nullable(),retention:z117.object({scope:z117.literal("sandbox_process_snapshot"),timestamps:z117.literal("process_start"),droppedOldest:z117.boolean(),phases:z117.array(z117.object({phase:z117.string(),source:z117.enum(["install","dev-server"]),status:z117.string(),startedAt:z117.iso.datetime().nullable(),exitCode:z117.number().int().nullable(),events:z117.number().int().nonnegative()}))}).nullable()}),previewLocationOutputSchema=z117.object({url:z117.string(),branch:branchNameSchema}),previewOpenOutputSchema=z117.object({url:z117.url(),expiresAt:z117.iso.datetime().nullable()}),publishOutputSchema=z117.object({success:z117.boolean(),message:z117.string().optional(),firstPublish:z117.boolean(),publicationId:z117.string().optional(),url:z117.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:z117.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:z117.object({projectId:uuidSchema,limit:z117.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:z117.object({projectId:uuidSchema,publicationId:z117.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:z117.object({projectId:uuidSchema,label:z117.string().trim().min(1).max(120).optional(),notes:z117.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:z117.object({projectId:uuidSchema,publicationId:z117.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:z117.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:z117.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:z117.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 z118}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=z118.string().min(2).max(120).regex(/^[a-z0-9][a-z0-9_-]*$/),toolEffectSchema=z118.enum(["read","write","delete","financial"]),integrationSchema=z118.object({id:z118.string(),kind:z118.enum(["catalog","custom","builtIn"]),name:z118.string(),description:z118.string(),host:z118.string().nullable(),readOnly:z118.boolean(),installed:z118.boolean(),enabled:z118.boolean(),accountName:z118.string().nullable(),settings:z118.array(z118.object({key:z118.string(),label:z118.string(),description:z118.string().nullable(),required:z118.boolean()})),settingsValues:z118.record(z118.string(),z118.string()),missingSettings:z118.array(z118.string())}),integrationToolSchema=z118.object({integrationId:z118.string(),integrationName:z118.string(),key:z118.string(),name:z118.string(),description:z118.string(),effect:toolEffectSchema,input:z118.record(z118.string(),z118.unknown()).optional()}),integrationGuideSchema=z118.object({integrationId:z118.string(),name:z118.string(),description:z118.string(),content:z118.string()}),integrationRunResultSchema=z118.discriminatedUnion("status",[z118.object({status:z118.literal("ok"),output:z118.record(z118.string(),z118.unknown())}),z118.object({status:z118.literal("approval_required"),request:z118.string(),approveUrl:z118.string(),reason:z118.string(),integration:z118.object({id:z118.string(),name:z118.string()}),tool:z118.object({key:z118.string(),name:z118.string(),effect:toolEffectSchema}),input:z118.record(z118.string(),z118.unknown()),canAlwaysAllow:z118.boolean()}),z118.object({status:z118.literal("blocked"),reason:z118.string()})]),runInputShape={projectId:uuidSchema,integrationId:integrationIdSchema,tool:z118.string().min(1).max(120),input:z118.record(z118.string(),z118.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:z118.object({projectId:uuidSchema}).strict(),outputSchema:z118.array(integrationSchema),buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/integrations/catalog")}),"buildRequest"),projectOutput:__name(body=>z118.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:z118.object({projectId:uuidSchema,search:z118.string().max(200).optional(),integrationId:integrationIdSchema.optional(),tool:z118.string().min(1).max(120).optional()}).strict(),outputSchema:z118.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=>z118.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:z118.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:z118.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:z118.object({...runInputShape,approval:z118.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:z118.object({projectId:uuidSchema,integrationId:integrationIdSchema,enabled:z118.boolean()}).strict(),outputSchema:z118.object({ok:z118.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:z118.object({projectId:uuidSchema,integrationId:integrationIdSchema,settings:z118.record(z118.string(),z118.string().max(500))}).strict(),outputSchema:z118.object({ok:z118.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 z119}from"zod";var knowledgeSchema,knowledgeOperations,init_knowledge=__esm({"../../packages/sdk/dist/operations/knowledge.js"(){"use strict";init_common2();knowledgeSchema=z119.object({content:z119.string(),updatedAt:z119.string().nullable(),updatedBy:z119.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:z119.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:z119.object({projectId:uuidSchema,content:z119.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 z120}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=z120.object({key:z120.string(),value:z120.string().optional(),defaultValue:z120.string(),locale:z120.string()}),labelResponseSchema=createResponseSchema2(TranslationDTOSchema2),labelListOutputSchema=z120.object({data:z120.array(z120.union([TranslationDTOSchema2,z120.object({key:z120.string(),values:z120.record(z120.string(),z120.string())})]))}),labelUpsertOutputSchema=z120.object({created:z120.number().int().nonnegative(),updated:z120.number().int().nonnegative(),deleted:z120.number().int().nonnegative(),defaultLocale:z120.string(),locales:z120.array(z120.string())}),labelDeleteOutputSchema=z120.object({key:z120.string(),locale:z120.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:z120.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:z120.object({projectId:uuidSchema,branch:branchNameSchema,locale:localeSchema,key:z120.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:z120.object({projectId:uuidSchema,branch:branchNameSchema,key:z120.string(),value:z120.string(),locale:z120.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:z120.object({projectId:uuidSchema,branch:branchNameSchema,records:z120.array(z120.object({key:z120.string(),value:z120.string(),locale:z120.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:z120.object({projectId:uuidSchema,branch:branchNameSchema,locale:z120.string().optional(),key:z120.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 z121}from"zod";var projectLocaleCoverageSchema,ProjectLocaleStatsResponseSchema2,projectLocaleInputSchema,ProjectLocaleMutationResponseSchema2,RemoveProjectLocaleResponseSchema2,localesOperations,init_locales=__esm({"../../packages/sdk/dist/operations/locales.js"(){"use strict";init_common2();projectLocaleCoverageSchema=z121.object({translated:z121.number().int().nonnegative(),total:z121.number().int().nonnegative()}),ProjectLocaleStatsResponseSchema2=createResponseSchema2(z121.object({defaultLocale:z121.string(),locales:z121.array(z121.object({locale:z121.string(),isDefault:z121.boolean(),entries:projectLocaleCoverageSchema,labels:projectLocaleCoverageSchema}))})),projectLocaleInputSchema=z121.string().min(1).max(40),ProjectLocaleMutationResponseSchema2=createResponseSchema2(z121.object({locale:z121.string()})),RemoveProjectLocaleResponseSchema2=createResponseSchema2(z121.object({locale:z121.string(),entriesDeleted:z121.number().int().nonnegative(),labelsDeleted:z121.number().int().nonnegative()})),localesOperations={"locales.list":{domain:"locales",summary:"List configured locales and content coverage on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z121.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:z121.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:z121.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:z121.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 z122}from"zod";var organizationSchema,organizationMemberSchema,organizationInvitationSchema,referralSummarySchema,organizationsOperations,init_organizations=__esm({"../../packages/sdk/dist/operations/organizations.js"(){"use strict";init_common2();organizationSchema=z122.object({id:z122.string().min(1),name:z122.string(),slug:z122.string()}),organizationMemberSchema=z122.object({id:z122.string().min(1),role:z122.string(),createdAt:z122.string().optional(),user:z122.object({id:z122.string().min(1),name:z122.string().nullable().optional(),email:z122.string().nullable().optional()}).optional()}),organizationInvitationSchema=z122.object({id:z122.string().min(1),email:z122.email(),role:z122.string(),organizationId:z122.string().min(1),inviterId:z122.string().min(1),status:z122.string(),expiresAt:z122.string(),createdAt:z122.string()}).passthrough(),referralSummarySchema=z122.object({counts:z122.object({signed_up:z122.number().int(),activated:z122.number().int()}),credits:z122.object({total:z122.number().int(),earned:z122.number().int().optional()})}),organizationsOperations={"organizations.list":{domain:"organizations",summary:"List organizations the authenticated user belongs to.",accessScope:"read",effect:"read",inputSchema:z122.object({}).strict(),outputSchema:createResponseSchema2(z122.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:z122.object({organizationId:z122.string().min(1)}).strict(),outputSchema:z122.array(organizationMemberSchema),buildRequest:__name(({organizationId})=>({method:"GET",path:`/auth/organization/get-full-organization?organizationId=${encodeURIComponent(organizationId)}`}),"buildRequest"),projectOutput:__name(body=>z122.object({members:z122.array(organizationMemberSchema)}).nullable().parse(body)?.members??[],"projectOutput")},"organizations.invite":{domain:"organizations",summary:"Invite a user to an organization.",accessScope:"write",effect:"mutation",inputSchema:z122.object({organizationId:z122.string().min(1),email:z122.email(),role:z122.enum(["owner","admin","member"]),resend:z122.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:z122.object({userId:z122.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 z123}from"zod";var projectSchema,projectResponseSchema,transferResultSchema,projectsOperations,init_projects=__esm({"../../packages/sdk/dist/operations/projects.js"(){"use strict";init_common2();projectSchema=z123.object({id:uuidSchema,name:z123.string(),displayName:z123.string().nullable(),organizationId:z123.string().nullable(),defaultBranch:branchNameSchema.optional(),productionSourceBranch:branchNameSchema.optional(),status:z123.string().optional(),appUrl:z123.string().nullable().optional()}).passthrough(),projectResponseSchema=z123.object({data:projectSchema}),transferResultSchema=z123.object({projectId:z123.string(),sourceOrganizationId:z123.string(),targetOrganizationId:z123.string(),movedThreads:z123.number().int().nonnegative(),revokedInvites:z123.number().int().nonnegative(),revokedGrants:z123.number().int().nonnegative(),preservedGrants:z123.number().int().nonnegative(),warnings:z123.array(z123.string())}),projectsOperations={"projects.list":{domain:"projects",summary:"List the Fimo sites the authenticated user can access.",accessScope:"read",effect:"read",inputSchema:z123.object({organizationId:z123.string().min(1).optional()}).strict(),outputSchema:z123.object({data:z123.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:z123.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:z123.object({organizationId:z123.string().min(1),displayName:z123.string().min(1).optional(),origin:z123.enum(["scratch","migration"]).optional(),starter:z123.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:z123.object({projectId:uuidSchema,targetOrganizationId:z123.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:z123.object({projectId:uuidSchema,email:z123.email(),role:z123.enum(["full","edit","comment","view"])}).strict(),outputSchema:z123.object({id:z123.string().min(1)}),buildRequest:__name(({projectId:projectId2,email,role})=>({method:"POST",path:managementProjectPath(projectId2,"/invites"),body:{email,roleKey:role}}),"buildRequest"),projectOutput:__name(body=>({id:z123.object({id:z123.string().min(1)}).parse(responseData(body)).id}),"projectOutput")},"projects.delete":{domain:"projects",summary:"Permanently delete a Fimo site.",accessScope:"write",effect:"mutation",inputSchema:z123.object({projectId:uuidSchema}).strict(),outputSchema:z123.unknown(),buildRequest:__name(({projectId:projectId2})=>({method:"DELETE",path:managementProjectPath(projectId2,""),body:{}}),"buildRequest")}}}});import{z as z124}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=z124.iso.datetime(),scheduleStatusSchema=z124.enum(["ok","failed"]),runStatusSchema=z124.enum(["queued","running","succeeded","failed","skipped"]),scheduleSchema=z124.object({id:uuidSchema,createdAt:dateSchema,updatedAt:dateSchema,projectId:uuidSchema,branch:z124.string().min(1),name:z124.string().min(1),cron:z124.string().min(1),command:z124.string().min(1),secretKeys:z124.array(z124.string().min(1)),enabled:z124.boolean(),lastRunAt:dateSchema.nullable(),lastStatus:scheduleStatusSchema.nullable(),lastError:z124.string().nullable(),overPolicyReasons:z124.array(z124.string()).optional()}).passthrough(),usageSchema=z124.object({runCount:z124.number().int().nonnegative(),runsWithOutput:z124.number().int().nonnegative()}),policySchema=z124.object({maxRuns:z124.number().int().positive(),retentionDays:z124.number().int().positive().nullable(),outputRetentionDays:z124.number().int().positive(),maxOutputBytes:z124.number().int().positive()}).passthrough(),planSchema=z124.object({code:z124.enum(["Free","PAYG","Starter","Premium","Pro"]),source:z124.enum(["cached_subscription","free_fallback"]),activeSchedules:z124.object({used:z124.number().int().nonnegative(),limit:z124.number().int().positive()}),minCadenceMinutes:z124.number().int().positive(),maxRunMs:z124.number().int().positive(),concurrency:z124.object({used:z124.number().int().nonnegative(),limit:z124.number().int().positive()}),compute:z124.object({settledMs:z124.number().int().nonnegative(),activeMs:z124.number().int().nonnegative(),reservedMs:z124.number().int().nonnegative().optional(),includedMs:z124.number().int().positive(),remainingMs:z124.number().int().nonnegative(),resetsAt:dateSchema}),state:z124.enum(["ok","near_limit","exhausted","over_policy"]),overPolicyReasons:z124.array(z124.string())}).passthrough(),runSchema=z124.object({id:uuidSchema,scheduleId:uuidSchema,projectId:uuidSchema,branch:z124.string().min(1),scheduleName:z124.string().min(1),command:z124.string().min(1),status:runStatusSchema,trigger:z124.enum(["cron","ui","cli"]),triggeredBy:z124.object({id:z124.string().min(1),name:z124.string().min(1)}).nullable(),queuedAt:dateSchema,startedAt:dateSchema.nullable(),finishedAt:dateSchema.nullable(),exitCode:z124.number().int().nullable(),errorCode:z124.string().nullable(),error:z124.string().nullable(),outputBytes:z124.number().int().nonnegative(),outputTruncated:z124.boolean(),outputExpiresAt:dateSchema.nullable(),metadataExpiresAt:dateSchema.nullable()}).passthrough(),runDetailSchema=runSchema.extend({output:z124.string().nullable(),secretSnapshot:z124.object({state:z124.enum(["pending","resolved","failed"]),capturedAt:dateSchema.nullable(),items:z124.array(z124.object({key:z124.string().min(1),updatedAt:dateSchema.nullable(),resolution:z124.enum(["resolved","missing","deleted","recreated","rotated"])}))})}),overviewSchema=z124.object({items:z124.array(scheduleSchema),usage:usageSchema,policy:policySchema,plan:planSchema}),detailSchema=z124.object({schedule:scheduleSchema,usage:usageSchema,policy:policySchema,plan:planSchema}).passthrough(),runsPageSchema=z124.object({items:z124.array(runSchema),nextCursor:z124.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:z124.string().min(1).max(120),cron:z124.string().min(1).max(120),command:z124.string().min(1).max(500),secretKeys:z124.array(z124.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:z124.object({...scheduleContextShape}).strict(),outputSchema:z124.array(scheduleSchema),buildRequest:__name(({projectId:projectId2,branch})=>({method:"GET",context:{branch},path:managementProjectPath(projectId2,"/schedules")}),"buildRequest"),projectOutput:__name(body=>z124.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:z124.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:z124.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:z124.object({...scheduleContextShape,...scheduleWriteShape,enabled:z124.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:z124.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:z124.object({...scheduleContextShape,scheduleId:uuidSchema,enabled:z124.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:z124.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:z124.object({...scheduleContextShape,scheduleId:uuidSchema,limit:z124.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:z124.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:z124.object({...scheduleContextShape,scheduleId:uuidSchema}).strict(),outputSchema:z124.object({ok:z124.literal(!0)}),buildRequest:__name(({projectId:projectId2,branch,scheduleId})=>({method:"DELETE",context:{branch},path:managementProjectPath(projectId2,`/schedules/${encodeURIComponent(scheduleId)}`)}),"buildRequest"),projectOutput:__name(body=>z124.object({ok:z124.literal(!0)}).parse(responseData(body)),"projectOutput")}}}});import{z as z125}from"zod";function projectSchemaDefinition(body){return z125.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=z125.object({id:z125.string(),name:z125.string(),label:z125.string(),isSingleton:z125.boolean(),slugUnique:z125.boolean(),i18n:z125.record(z125.string(),z125.unknown()),groups:z125.array(z125.record(z125.string(),z125.unknown())),fields:z125.record(z125.string(),z125.unknown()),createdAt:z125.string(),updatedAt:z125.string()}).passthrough(),schemaListOutputSchema=z125.object({contentTypes:z125.array(contentTypeSchema)}),schemaMutationOutputSchema=sessionEnvelopeSchema.extend({schema:z125.object({typeName:z125.string().min(1).max(255),generatedPaths:z125.array(z125.string().min(1)).max(1e3),tip:z125.string().min(1)})}),schemaDefinitionInputSchema=z125.record(z125.string(),z125.unknown());__name(projectSchemaDefinition,"projectSchemaDefinition");schemasOperations={"schemas.list":{domain:"schemas",summary:"List content schemas on a durable Branch.",accessScope:"read",effect:"read",inputSchema:z125.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:z125.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z125.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:z125.object({projectId:uuidSchema,branch:branchNameSchema,contentTypes:z125.array(schemaDefinitionInputSchema).min(1).max(100),operations:z125.array(z125.record(z125.string(),z125.unknown())).optional()}).strict(),outputSchema:z125.array(z125.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=>z125.object({data:z125.array(z125.unknown())}).parse(body).data,"projectOutput")},"schemas.deleteFromBranch":{domain:"schemas",summary:"Delete a content schema directly from a Fimo Branch.",accessScope:"code",effect:"mutation",inputSchema:z125.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z125.string().min(1).max(255)}).strict(),outputSchema:z125.unknown(),buildRequest:__name(({projectId:projectId2,branch,typeName})=>({method:"DELETE",path:tenantPath(projectId2,branch,`/schema/types/${encodeURIComponent(typeName)}`)}),"buildRequest"),projectOutput:__name(body=>z125.object({data:z125.unknown()}).parse(body).data,"projectOutput")},"schemas.create":{domain:"schemas",summary:"Create a content schema inside an owned work session.",accessScope:"code",effect:"mutation",inputSchema:z125.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z125.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:z125.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z125.string().min(1).max(255),definition:schemaDefinitionInputSchema,renameFrom:z125.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:z125.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z125.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 z126}from"zod";var environmentSchema2,secretKindSchema,projectSecretSchema,secretWriteInputSchema,secretsOperations,init_secrets=__esm({"../../packages/sdk/dist/operations/secrets.js"(){"use strict";init_common2();environmentSchema2=z126.union([z126.literal("production"),z126.literal("preview"),uuidSchema]),secretKindSchema=z126.enum(["variable","secret"]),projectSecretSchema=z126.object({id:z126.string().min(1),projectId:z126.string().min(1),key:z126.string().min(1),kind:secretKindSchema,exposure:z126.enum(["public","private"]),environment:environmentSchema2,value:z126.string().optional(),maskedValue:z126.string().optional(),createdAt:z126.string(),updatedAt:z126.string()}),secretWriteInputSchema=z126.object({projectId:uuidSchema,key:z126.string().min(1).max(255),kind:secretKindSchema,value:z126.string(),environment:environmentSchema2}),secretsOperations={"secrets.list":{domain:"secrets",summary:"List public variables or masked secrets for one site Environment.",accessScope:"read",effect:"read",inputSchema:z126.object({projectId:uuidSchema,environment:environmentSchema2,kind:secretKindSchema.optional()}).strict(),outputSchema:z126.array(projectSecretSchema),buildRequest:__name(({projectId:projectId2,environment,kind})=>({method:"GET",path:addQuery(managementProjectPath(projectId2,"/secrets"),{environment,kind})}),"buildRequest"),projectOutput:__name(body=>z126.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:z126.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:z126.object({projectId:uuidSchema,key:z126.string().min(1),kind:secretKindSchema,environment:environmentSchema2}).strict(),outputSchema:z126.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:z126.object({projectId:uuidSchema,branch:z126.string().min(1)}).strict(),outputSchema:z126.object({branch:z126.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=z126.array(z126.object({branch:z126.string().optional(),env:z126.string().optional(),parentBranch:z126.string().nullable().optional(),parentEnv:z126.string().nullable().optional(),resolvedEnvironment:z126.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 z127}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=z127.object({status:z127.literal("passed")}).passthrough(),sessionConflictSummarySchema=z127.object({surface:surfaceNameSchema,key:z127.string().min(1),kind:z127.string().optional(),description:z127.string(),path:z127.string().optional()}).passthrough(),surfaceDeltaItemSchema=z127.object({verb:z127.enum(["added","removed","changed","conflict"]),key:z127.string(),detail:z127.string().optional(),origin:z127.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z127.record(z127.string(),z127.unknown()).optional()}).passthrough(),perSurfaceDeltaSchema=z127.object({surface:surfaceNameSchema,status:z127.enum(["ok","timed_out","failed","unchanged"]),durationMs:z127.number().int().nonnegative().optional(),changedCount:z127.number().int().nonnegative(),conflictCount:z127.number().int().nonnegative(),items:z127.array(surfaceDeltaItemSchema).max(1e3).optional(),truncated:z127.boolean().optional(),error:z127.string().optional()}).passthrough(),sessionChangesSchema=z127.object({fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),generatedAt:z127.iso.datetime(),surfaces:z127.array(perSurfaceDeltaSchema),crossSurface:z127.array(crossSurfaceFindingSchema).optional(),fingerprint:z127.string()}).passthrough(),projectScriptStatusSchema=z127.enum(["passed","failed","unavailable"]),sessionOperationResultSchema=z127.discriminatedUnion("operation",[z127.object({operation:z127.literal("dependencies_install"),repairedInstallPolicy:z127.boolean(),tip:z127.string()}),z127.object({operation:z127.literal("schemas_sync"),tip:z127.string()}),z127.object({operation:z127.literal("typecheck"),status:projectScriptStatusSchema,output:z127.string()}),z127.object({operation:z127.literal("lint"),status:projectScriptStatusSchema,output:z127.string()})]),conflictSchema2=z127.object({surface:surfaceNameSchema,key:z127.string(),kind:z127.enum(["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"]).optional(),description:z127.string(),parentValue:z127.unknown().optional(),childValue:z127.unknown().optional(),conflictingFields:z127.array(z127.string()).optional(),code:z127.object({path:z127.string(),unresolvable:z127.boolean().optional(),reason:z127.string().optional(),targetCommits:z127.array(z127.object({sha:z127.string(),subject:z127.string(),body:z127.string().optional(),author:z127.string(),date:z127.string()})).optional()}).optional()}).passthrough(),codeConflictBlobSchema2=z127.object({oid:z127.string().optional(),content:z127.string().optional(),truncated:z127.boolean(),binary:z127.boolean()}),codeConflictDetailSchema=z127.object({path:z127.string(),base:codeConflictBlobSchema2,ours:codeConflictBlobSchema2,theirs:codeConflictBlobSchema2,result:codeConflictBlobSchema2,sourceTipSha:z127.string(),targetTipSha:z127.string(),mergeBaseSha:z127.string().optional()}),resolutionChoiceSchema=z127.enum(["parent","child","pick"]),conflictResolutionSchema2=z127.object({surface:surfaceNameSchema,key:z127.string().min(1),choice:resolutionChoiceSchema,pickedValue:z127.unknown().optional(),fieldPicks:z127.array(z127.object({field:z127.string().min(1),choice:resolutionChoiceSchema,pickedValue:z127.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:z127.object({projectId:uuidSchema,targetBranch:branchNameSchema.optional(),name:z127.string().trim().min(1).max(120).optional(),goal:z127.string().trim().min(1).max(500).optional()}).strict(),outputSchema:z127.object({session:sessionEnvelopeSchema,adopted:z127.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:z127.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:z127.object({projectId:uuidSchema,status:sessionStatusSchema.optional(),scope:z127.enum(["mine","project"]).optional(),cursor:paginationShape.cursor,limit:z127.number().int().min(1).max(100).optional()}).strict(),outputSchema:z127.object({items:z127.array(sessionEnvelopeSchema),nextCursor:z127.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:z127.object({projectId:uuidSchema,sessionId:uuidSchema,detail:z127.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:z127.object({projectId:uuidSchema,sessionId:uuidSchema,summary:z127.string().trim().min(1).max(240),targetBranch:branchNameSchema.optional()}).strict(),outputSchema:z127.object({requested:z127.literal(!0),alreadyRequested:z127.boolean(),reviewId:uuidSchema,reviewUrl:z127.url(),status:z127.literal("pending"),sessionId:uuidSchema,branch:branchNameSchema,targetBranch:branchNameSchema,revision:z127.string().min(1),savedRevision:z127.string().min(1),fingerprint:z127.string().min(1),visibility:z127.literal("user-visible"),retention:z127.literal("durable"),expiresAt:z127.null(),merged:z127.literal(!1),published:z127.literal(!1),links:z127.object({preview:z127.url(),changes:z127.url(),conversation:z127.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:z127.object({projectId:uuidSchema,sessionId:uuidSchema,additionalDays:z127.number().int().min(1).max(30)}).strict(),outputSchema:sessionEnvelopeSchema.extend({retention:z127.literal("temporary"),visibility:z127.enum(["internal","user-visible"]),expiresAt:z127.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:z127.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:z127.object({projectId:uuidSchema,sessionId:uuidSchema,operation:z127.string().min(1).max(100),args:z127.record(z127.string(),z127.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:z127.object({projectId:uuidSchema,sessionId:uuidSchema,action:z127.enum(["merge","discard"]),message:z127.string().max(1e3).optional(),description:z127.string().max(2e3).optional().describe("Why the work changed. Becomes the body of the merge commit.")}).strict(),outputSchema:sessionEnvelopeSchema.extend({outcome:z127.enum(["merged","no_changes","discarded","conflicts","failed"]),closed:z127.boolean(),mergeId:uuidSchema.optional(),conflictCount:z127.number().int().nonnegative().optional(),conflicts:z127.array(sessionConflictSummarySchema).optional(),parentAdvanced:z127.boolean().optional(),code:z127.string().optional(),summary:z127.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:z127.object({projectId:uuidSchema,sessionId:uuidSchema,mergeId:uuidSchema.optional(),cursor:paginationShape.cursor,limit:z127.number().int().min(1).max(100).optional(),codePath:z127.string().min(1).max(1024).optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({merge:z127.object({mergeId:uuidSchema,fromBranch:branchNameSchema,toBranch:branchNameSchema,status:z127.enum(["in_progress","complete","failed","rolled_back","conflicts"]),conflictCount:z127.number().int().nonnegative(),error:z127.string().nullable()}),conflicts:z127.array(conflictSchema2).max(100),nextCursor:z127.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:z127.object({projectId:uuidSchema,sessionId:uuidSchema,mergeId:uuidSchema,resolutions:z127.array(conflictResolutionSchema2).min(1).max(500)}).strict(),outputSchema:sessionEnvelopeSchema.extend({outcome:z127.literal("resolving"),mergeId:uuidSchema,supersededMergeId:uuidSchema,strategy:resolvedMergeStrategySchema,acceptedAt:z127.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 z128}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:z128.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:z128.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 z129}from"zod";var supportReportInputSchema,supportReportResultSchema,supportOperations,init_support2=__esm({"../../packages/sdk/dist/operations/support.js"(){"use strict";init_common2();supportReportInputSchema=z129.object({message:z129.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=z129.object({id:uuidSchema,deliveryStatus:z129.enum(["pending","delivered","failed"]),message:z129.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:z129.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 z130}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=z130.record(z130.string(),z130.unknown()),deliveryStatusSchema=z130.enum(["pending","delivering","retrying","succeeded","failed"]),webhookSchema=z130.object({id:uuidSchema,projectId:uuidSchema,name:z130.string(),eventType:z130.string().min(1),enabled:z130.boolean(),destination:z130.object({host:z130.string(),maskedUrl:z130.string(),kind:z130.string()}),filter:jsonObjectSchema,headers:z130.array(jsonObjectSchema),bodyTemplate:z130.unknown().nullable(),signingEnabled:z130.boolean(),lastDeliveryStatus:deliveryStatusSchema.nullable()}).passthrough(),deliverySchema=z130.object({id:uuidSchema,webhookId:uuidSchema,projectId:uuidSchema,eventType:z130.string().min(1),status:deliveryStatusSchema,attemptCount:z130.number().int().nonnegative(),responseStatus:z130.number().int().nullable(),createdAt:z130.iso.datetime()}).passthrough(),attemptSchema=z130.object({id:uuidSchema,deliveryId:uuidSchema,attempt:z130.number().int().positive(),status:z130.enum(["delivering","succeeded","failed"]),createdAt:z130.iso.datetime()}).passthrough(),deliveriesPageSchema=z130.object({items:z130.array(deliverySchema),pagination:z130.object({page:z130.number().int().positive(),limit:z130.number().int().positive(),total:z130.number().int().nonnegative(),totalPages:z130.number().int().positive(),hasMore:z130.boolean()}),stats:z130.object({total:z130.number().int().nonnegative(),succeeded:z130.number().int().nonnegative(),failed:z130.number().int().nonnegative()})}),eventSchema=z130.object({type:z130.string().min(1),family:z130.string(),description:z130.string(),variables:z130.array(z130.string()),data:z130.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:z130.object({projectId:uuidSchema}).strict(),outputSchema:z130.array(eventSchema),buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/webhooks/events")}),"buildRequest"),projectOutput:__name(body=>z130.array(eventSchema).parse(responseData(body)),"projectOutput")},"webhooks.list":{domain:"webhooks",summary:"List outbound webhooks configured for one site.",accessScope:"read",effect:"read",inputSchema:z130.object({projectId:uuidSchema}).strict(),outputSchema:z130.array(webhookSchema),buildRequest:__name(({projectId:projectId2})=>({method:"GET",path:managementProjectPath(projectId2,"/webhooks")}),"buildRequest"),projectOutput:__name(body=>z130.array(webhookSchema).parse(responseData(body)),"projectOutput")},"webhooks.get":{domain:"webhooks",summary:"Read one outbound site webhook.",accessScope:"read",effect:"read",inputSchema:z130.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:z130.object({projectId:uuidSchema,webhook:webhookWriteSchema}).strict(),outputSchema:z130.object({webhook:webhookSchema,signingSecret:z130.string().min(1)}),buildRequest:__name(({projectId:projectId2,webhook})=>({method:"POST",path:managementProjectPath(projectId2,"/webhooks"),body:webhook}),"buildRequest"),projectOutput:__name(body=>z130.object({webhook:webhookSchema,signingSecret:z130.string().min(1)}).parse(responseData(body)),"projectOutput")},"webhooks.update":{domain:"webhooks",summary:"Update one outbound site webhook.",accessScope:"write",effect:"mutation",inputSchema:z130.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:z130.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:z130.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:z130.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:z130.string().min(1),buildRequest:__name(({projectId:projectId2,webhookId})=>({method:"POST",path:managementProjectPath(projectId2,`/webhooks/${encodeURIComponent(webhookId)}/rotate-signing-secret`)}),"buildRequest"),projectOutput:__name(body=>z130.object({signingSecret:z130.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:z130.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:z130.object({projectId:uuidSchema,webhookId:uuidSchema,...numberedPaginationShape,limit:z130.number().int().min(1).max(100).optional()}).strict().superRefine(numberedPaginationRefinement),outputSchema:deliveriesPageSchema.extend({nextCursor:z130.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:z130.object({projectId:uuidSchema,webhookId:uuidSchema,deliveryId:uuidSchema}).strict(),outputSchema:z130.object({delivery:deliverySchema,attempts:z130.array(attemptSchema)}),buildRequest:__name(({projectId:projectId2,webhookId,deliveryId})=>({method:"GET",path:managementProjectPath(projectId2,`/webhooks/${encodeURIComponent(webhookId)}/deliveries/${encodeURIComponent(deliveryId)}`)}),"buildRequest"),projectOutput:__name(body=>z130.object({delivery:deliverySchema,attempts:z130.array(attemptSchema)}).parse(responseData(body)),"projectOutput")},"webhooks.retryDelivery":{domain:"webhooks",summary:"Retry one failed webhook delivery.",accessScope:"write",effect:"mutation",inputSchema:z130.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 z131}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=z131.object({id:z131.string().regex(/^[a-zA-Z_$][\w$]*\.[a-zA-Z_$][\w$]*$/),domain:z131.string().min(1),summary:z131.string().min(1),accessScope:z131.enum(["read","write","code","agents"]),effect:z131.enum(["read","mutation"]),inputJsonSchema:z131.record(z131.string(),z131.unknown()),outputJsonSchema:z131.record(z131.string(),z131.unknown())}).strict(),fimoOperationManifestSchema=z131.array(fimoOperationManifestEntrySchema),fimoOperationManifest=Object.entries(fimoOperations).map(([id,operation])=>({id,domain:operation.domain,summary:operation.summary,accessScope:operation.accessScope,effect:operation.effect,inputJsonSchema:z131.toJSONSchema(operation.inputSchema,{target:"draft-7",io:"input"}),outputJsonSchema:z131.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(`
|
|
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&¶ms.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
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&¶ms.set("noRestart","true"),options.wait!==void 0&¶ms.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
|
|
|
@@ -283,7 +283,7 @@ ${end.comment}`:end.comment}this.doc.range[2]=end.offset;break}default:this.erro
|
|
|
283
283
|
${target}: Fimo branch not created yet`}}function pickSurfaces(opts){let selected=[["code","code"],["content","content"],["i18n","translations"],["assets","assets"],["forms","forms"]].filter(([flag2])=>opts[flag2]===!0).map(([,surface])=>surface);return selected.length>0?selected:void 0}function withSoftTimeout(p2,ms){return new Promise(resolve10=>{let t2=setTimeout(()=>resolve10({kind:"timeout"}),ms);p2.then(value=>{clearTimeout(t2),resolve10({kind:"ok",value})},error=>{clearTimeout(t2),resolve10({kind:"error",error})})})}async function localCodeSurface(cwd){if(!await isGitRepo(cwd))return{surface:"code",status:"unchanged",changedCount:0,conflictCount:0,items:[]};try{let items=(await runGit(["status","--porcelain"],cwd)).split(`
|
|
284
284
|
`).filter(Boolean).map(line=>{let code2=line.slice(0,2),path50=line.slice(3).trim();return{verb:code2.startsWith("A")||code2.startsWith("?")?"added":code2.startsWith("D")?"removed":"changed",key:path50,origin:"local-uncommitted"}});return{surface:"code",status:items.length===0?"unchanged":"ok",changedCount:items.length,conflictCount:0,items}}catch{return{surface:"code",status:"unchanged",changedCount:0,conflictCount:0,items:[]}}}function mergeCodeSurfaces(serverCode,local){if(!serverCode)return local;if(serverCode.status==="failed"||serverCode.status==="timed_out")return{...serverCode,items:[...serverCode.items??[],...local.items??[]],changedCount:serverCode.changedCount+local.changedCount};let items=[...serverCode.items??[],...local.items??[]],changedCount=serverCode.changedCount+local.changedCount,conflictCount=serverCode.conflictCount+local.conflictCount;return{surface:"code",status:changedCount>0||conflictCount>0?"ok":"unchanged",durationMs:serverCode.durationMs,changedCount,conflictCount,items}}async function statusCommand2(arg1,maybeCmd){let cmd=maybeCmd??arg1,options=maybeCmd?arg1:cmd.opts(),program2=cmd.parent??cmd,branchOverride2=branchOverrideFromCommand(program2),ctx=await getProjectContext({cwd:options.cwd,branchOverride:branchOverride2}),fimo=createCliFimoClient(loadConfig(),ctx.branch),git=createGitService(loadConfig(),ctx.branch),cwd=resolveProjectCwd(options.cwd),surfaces=pickSurfaces(options),codePromise=localCodeSurface(cwd),checkoutPromise=localCheckoutStatus(git,ctx.projectId,ctx.branch,cwd),serverPromise=withSoftTimeout(fimo.execute("branches.status",{projectId:ctx.projectId,branch:ctx.branch,against:options.vs,surfaces:surfaces?.map(surface=>surface==="translations"?"labels":surface)}),SOFT_TIMEOUT_MS*15),[local,checkout,serverResult]=await Promise.all([codePromise,checkoutPromise,serverPromise]);if(serverResult.kind==="timeout"){ui.error({command:"status",code:"STATUS_TIMEOUT",message:`Server did not respond within ${SOFT_TIMEOUT_MS*15/1e3}s. Try again, or run \`fimo diff\` to drill in.`});return}if(serverResult.kind==="error"){let err=serverResult.error,message=err instanceof Error?err.message:String(err);ui.error({command:"status",code:"STATUS_REQUEST_FAILED",message:`Failed to fetch status: ${message}`});return}let portableServer=serverResult.value,server={branch:portableServer.branch,env:portableServer.branch,vs:portableServer.against,syncState:portableServer.syncState??(portableServer.state==="clean"?"in-sync":"diverged"),generatedAt:portableServer.generatedAt,surfaces:portableServer.surfaces.map(item=>({...item,surface:item.surface==="labels"?"translations":item.surface})),crossSurface:portableServer.crossSurface?.map(finding=>({...finding,source:{...finding.source,surface:finding.source.surface==="labels"?"translations":finding.source.surface},target:{...finding.target,surface:finding.target.surface==="labels"?"translations":finding.target.surface}}))},serverCode=server.surfaces.find(s=>s.surface==="code"),code2=mergeCodeSurfaces(serverCode,local),merged={...server,checkout,surfaces:[code2,...server.surfaces.filter(s=>s.surface!=="code")]};ui.result({command:"status",data:merged,render:__name(rctx=>{let p2=rctx.color?palette:makeColorPalette({forceDisable:!0}),environmentStatus=renderStatus2(merged,p2,{short:options.short,surface:surfaces?.length===1?surfaces[0]:void 0,all:options.all,ascii:rctx.ascii});return`${renderLocalCheckoutStatus(checkout)}
|
|
285
285
|
|
|
286
|
-
${environmentStatus}`},"render")})}var SOFT_TIMEOUT_MS,init_status=__esm({"src/cli/commands/status.ts"(){init_dist();init_config();init_sdk_transport();init_project_services();init_branch_checkout();init_color();init_render_status();init_git_credential_setup();init_git();init_project_context();init_project2();SOFT_TIMEOUT_MS=2e3;__name(withCheckoutRecovery,"withCheckoutRecovery");__name(localCheckoutStatus,"localCheckoutStatus");__name(renderLocalCheckoutStatus,"renderLocalCheckoutStatus");__name(pickSurfaces,"pickSurfaces");__name(withSoftTimeout,"withSoftTimeout");__name(localCodeSurface,"localCodeSurface");__name(mergeCodeSurfaces,"mergeCodeSurfaces");__name(statusCommand2,"statusCommand")}});init_esm();init_dist();import fs48 from"node:fs";import path49 from"node:path";var import_index=__toESM(require_commander(),1),{program,createCommand,createArgument,createOption,CommanderError,InvalidArgumentError,InvalidOptionArgumentError,Command,Argument,Option,Help}=import_index.default;init_auth();init_esm();init_dist();init_config();init_sdk_transport();import{existsSync}from"node:fs";var ENTRIES=[{token:"agents:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read project agents, chats and routines"},{token:"knowledge:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read private project goals, brand guidance and rules"},{token:"knowledge:write",risk:"high",declarable:!0,enforcedBy:"api",description:"Update shared project knowledge only when explicitly requested"},{token:"files:read",risk:"low",declarable:!1,enforcedBy:"runtime",description:"Read project files"},{token:"files:write",risk:"medium",declarable:!1,enforcedBy:"runtime",description:"Write or delete project files"},{token:"cms:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read CMS content"},{token:"cms:write",risk:"medium",declarable:!0,enforcedBy:"api",description:"Create, update, or delete CMS entries"},{token:"cms:schema:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read CMS schemas"},{token:"cms:schema:write",risk:"high",declarable:!0,enforcedBy:"api",description:"Modify CMS schemas (destructive \u2014 alters all entries of the type)"},{token:"assets:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read uploaded media"},{token:"assets:write",risk:"medium",declarable:!0,enforcedBy:"api",description:"Upload, replace, or delete media"},{token:"i18n:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read translation catalogs"},{token:"i18n:write",risk:"medium",declarable:!0,enforcedBy:"api",description:"Modify translation catalogs via the fimo i18n CLI"},{token:"forms:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read form schemas and submissions"},{token:"forms:write",risk:"medium",declarable:!0,enforcedBy:"api",description:"Modify form schemas or clear submissions"},{token:"webhooks:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read webhook configurations and delivery history"},{token:"webhooks:write",risk:"high",declarable:!0,enforcedBy:"api",description:"Create, modify, delete, or trigger webhooks that send project data to external URLs"},{token:"schedules:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read schedule configurations and run history"},{token:"schedules:write",risk:"critical",declarable:!0,enforcedBy:"api",description:"Create, modify, delete, or trigger scheduled commands that run with publish and code-edit rights"},{token:"git:read",risk:"low",declarable:!1,enforcedBy:"runtime",description:"Read git state"},{token:"git:branch",risk:"medium",declarable:!1,enforcedBy:"runtime",description:"Create agent-proposed branches off main"},{token:"git:commit",risk:"medium",declarable:!1,enforcedBy:"runtime",description:"Commit changes to an agent branch"},{token:"git:push",risk:"high",declarable:!1,enforcedBy:"runtime",description:"Push to the project remote (main push is intercepted)"},{token:"git:tag",risk:"high",declarable:!1,enforcedBy:"runtime",description:"Used by runtime for prod release tags; agents cannot call directly"},{token:"fimo:deploy",risk:"critical",declarable:!0,enforcedBy:"api",description:"Trigger a production deploy"},{token:"fimo:logs:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read project deployment logs"},{token:"fimo:analytics:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read analytics data"},{token:"fimo:domains:manage",risk:"high",declarable:!0,enforcedBy:"api",description:"Read and manage project domains"},{token:"fimo:agents:run",risk:"high",declarable:!0,enforcedBy:"api",description:"Run project agents"},{token:"fimo:preview:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read a current preview URL for an env (no commit, no deploy)"},{token:"fimo:history:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read project restore points"},{token:"integrations:run",risk:"high",declarable:!0,enforcedBy:"api",description:"Run enabled project integration tools allowed by the agent policy"},{token:"shell:exec",risk:"high",declarable:!1,enforcedBy:"runtime",description:"Run arbitrary shell commands inside the sandbox"},{token:"agent:delegate",risk:"medium",declarable:!0,enforcedBy:"engine",description:"Invoke declared sub-agents"},{token:"runtime:auto_merge",risk:"critical",declarable:!0,enforcedBy:"runtime",description:"Merge work sessions into their target Branch without per-change human review"}],BY_TOKEN=new Map(ENTRIES.map(entry=>[entry.token,entry])),CAPABILITY_VOCABULARY=ENTRIES;function getCapability(token){return BY_TOKEN.get(token)??null}__name(getCapability,"getCapability");import{z as
|
|
286
|
+
${environmentStatus}`},"render")})}var SOFT_TIMEOUT_MS,init_status=__esm({"src/cli/commands/status.ts"(){init_dist();init_config();init_sdk_transport();init_project_services();init_branch_checkout();init_color();init_render_status();init_git_credential_setup();init_git();init_project_context();init_project2();SOFT_TIMEOUT_MS=2e3;__name(withCheckoutRecovery,"withCheckoutRecovery");__name(localCheckoutStatus,"localCheckoutStatus");__name(renderLocalCheckoutStatus,"renderLocalCheckoutStatus");__name(pickSurfaces,"pickSurfaces");__name(withSoftTimeout,"withSoftTimeout");__name(localCodeSurface,"localCodeSurface");__name(mergeCodeSurfaces,"mergeCodeSurfaces");__name(statusCommand2,"statusCommand")}});init_esm();init_dist();import fs48 from"node:fs";import path49 from"node:path";var import_index=__toESM(require_commander(),1),{program,createCommand,createArgument,createOption,CommanderError,InvalidArgumentError,InvalidOptionArgumentError,Command,Argument,Option,Help}=import_index.default;init_auth();init_esm();init_dist();init_config();init_sdk_transport();import{existsSync}from"node:fs";var ENTRIES=[{token:"agents:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read project agents, chats and routines"},{token:"knowledge:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read private project goals, brand guidance and rules"},{token:"knowledge:write",risk:"high",declarable:!0,enforcedBy:"api",description:"Update shared project knowledge only when explicitly requested"},{token:"files:read",risk:"low",declarable:!1,enforcedBy:"runtime",description:"Read project files"},{token:"files:write",risk:"medium",declarable:!1,enforcedBy:"runtime",description:"Write or delete project files"},{token:"cms:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read CMS content"},{token:"cms:write",risk:"medium",declarable:!0,enforcedBy:"api",description:"Create, update, or delete CMS entries"},{token:"cms:schema:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read CMS schemas"},{token:"cms:schema:write",risk:"high",declarable:!0,enforcedBy:"api",description:"Modify CMS schemas (destructive \u2014 alters all entries of the type)"},{token:"assets:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read uploaded media"},{token:"assets:write",risk:"medium",declarable:!0,enforcedBy:"api",description:"Upload, replace, or delete media"},{token:"i18n:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read translation catalogs"},{token:"i18n:write",risk:"medium",declarable:!0,enforcedBy:"api",description:"Modify translation catalogs via the fimo i18n CLI"},{token:"forms:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read form schemas and submissions"},{token:"forms:write",risk:"medium",declarable:!0,enforcedBy:"api",description:"Modify form schemas or clear submissions"},{token:"webhooks:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read webhook configurations and delivery history"},{token:"webhooks:write",risk:"high",declarable:!0,enforcedBy:"api",description:"Create, modify, delete, or trigger webhooks that send project data to external URLs"},{token:"schedules:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read schedule configurations and run history"},{token:"schedules:write",risk:"critical",declarable:!0,enforcedBy:"api",description:"Create, modify, delete, or trigger scheduled commands that run with publish and code-edit rights"},{token:"git:read",risk:"low",declarable:!1,enforcedBy:"runtime",description:"Read git state"},{token:"git:branch",risk:"medium",declarable:!1,enforcedBy:"runtime",description:"Create agent-proposed branches off main"},{token:"git:commit",risk:"medium",declarable:!1,enforcedBy:"runtime",description:"Commit changes to an agent branch"},{token:"git:push",risk:"high",declarable:!1,enforcedBy:"runtime",description:"Push to the project remote (main push is intercepted)"},{token:"git:tag",risk:"high",declarable:!1,enforcedBy:"runtime",description:"Used by runtime for prod release tags; agents cannot call directly"},{token:"fimo:deploy",risk:"critical",declarable:!0,enforcedBy:"api",description:"Trigger a production deploy"},{token:"fimo:logs:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read project deployment logs"},{token:"fimo:analytics:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read analytics data"},{token:"fimo:domains:manage",risk:"high",declarable:!0,enforcedBy:"api",description:"Read and manage project domains"},{token:"fimo:agents:run",risk:"high",declarable:!0,enforcedBy:"api",description:"Run project agents"},{token:"fimo:preview:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read a current preview URL for an env (no commit, no deploy)"},{token:"fimo:history:read",risk:"low",declarable:!0,enforcedBy:"api",description:"Read project restore points"},{token:"integrations:run",risk:"high",declarable:!0,enforcedBy:"api",description:"Run enabled project integration tools allowed by the agent policy"},{token:"shell:exec",risk:"high",declarable:!1,enforcedBy:"runtime",description:"Run arbitrary shell commands inside the sandbox"},{token:"agent:delegate",risk:"medium",declarable:!0,enforcedBy:"engine",description:"Invoke declared sub-agents"},{token:"runtime:auto_merge",risk:"critical",declarable:!0,enforcedBy:"runtime",description:"Merge work sessions into their target Branch without per-change human review"}],BY_TOKEN=new Map(ENTRIES.map(entry=>[entry.token,entry])),CAPABILITY_VOCABULARY=ENTRIES;function getCapability(token){return BY_TOKEN.get(token)??null}__name(getCapability,"getCapability");import{z as z133}from"zod";var SurfaceGuardPolicySchema=z133.enum(["block","warn","allow"]),ClassificationSchema=z133.enum(["trivial","low_risk","needs_review"]),SurfaceGuardsSchema=z133.object({code:SurfaceGuardPolicySchema.optional(),content:SurfaceGuardPolicySchema.optional(),translations:SurfaceGuardPolicySchema.optional(),assets:SurfaceGuardPolicySchema.optional()}),AutoMergePolicySchema=z133.object({enabled:z133.boolean(),allowed_skills:z133.array(z133.string().min(1)).default([]),allowed_classifications:z133.array(ClassificationSchema).default([]),surface_guards:SurfaceGuardsSchema.default({})}),NotificationDigestSchema=z133.enum(["off","daily","weekly"]),NotificationFormatSchema=z133.object({markdown:z133.boolean().default(!0),html:z133.boolean().default(!1)}),NotificationsPolicySchema=z133.object({email_recipients:z133.array(z133.string().email("invalid email address")).default([]),format:NotificationFormatSchema.default({markdown:!0,html:!1}),digest:NotificationDigestSchema.default("off")}),FimoAgentsConfigSchema=z133.object({auto_merge:AutoMergePolicySchema.optional(),notifications:NotificationsPolicySchema.optional()}),FimoConfigSchema=z133.object({agents:FimoAgentsConfigSchema.optional()}).passthrough();var SITE_SCRIPT=String.raw`// fimo-site: crawl the site as a browser renders it, then check it (SEO, GEO, content, quality). Node 20+, agent-browser, no dependencies.
|
|
287
287
|
// Every fact is fine, broken, or unknown (could not tell); only broken leads to a finding.
|
|
288
288
|
import { spawn, spawnSync } from 'node:child_process';
|
|
289
289
|
import crypto from 'node:crypto';
|
|
@@ -2275,7 +2275,7 @@ else if (cmd === 'diff') diff();
|
|
|
2275
2275
|
else if (cmd === 'text') pageText();
|
|
2276
2276
|
else if (cmd === 'links') links();
|
|
2277
2277
|
else console.log('node site.mjs crawl [origin] [--max 300] [--max-links 300] [--deadline 900] [--parallel 1] [--seed previous.txt] [--preview-host host] [--hosted url] [--quality] [--phone-max 20] [--compliance] [--consent-max 6] [--fresh] [--pages file] [--http [--browser-max 100]] [--session name] | wait | check [--topic t1,t2] [--retired "Old=New;..."] [--today YYYY-MM-DD] | text [/path ...] | links (after crawl --pages) | diff previous.txt (writes snapshot.txt)');
|
|
2278
|
-
`;import{z as z133}from"zod";function toSpec(def){return{token:def.token,riskTier:def.risk,description:def.description}}__name(toSpec,"toSpec");var VOCABULARY=Object.freeze(Object.fromEntries(CAPABILITY_VOCABULARY.filter(definition=>definition.declarable).map(definition=>[definition.token,toSpec(definition)]))),CapabilityToken=z133.enum(Object.keys(VOCABULARY)),CapabilitiesArraySchema=z133.array(CapabilityToken);var RUNTIME_BASELINE_OPERATION_CAPABILITIES=["files:read","files:write"];function isRuntimeBaselineOperationCapability(capability){return RUNTIME_BASELINE_OPERATION_CAPABILITIES.includes(capability)}__name(isRuntimeBaselineOperationCapability,"isRuntimeBaselineOperationCapability");var OPERATION_CAP={"agents.list":"agents:read","agents.routines":"agents:read","agents.routine_runs":"agents:read","knowledge.get":"knowledge:read","knowledge.update":"knowledge:write","cms.list":"cms:read","cms.get":"cms:read","cms.query":"cms:read","cms.create":"cms:write","cms.update":"cms:write","cms.delete":"cms:write","cms.bulk_create":"cms:write","cms.bulk_update":"cms:write","cms.bulk_delete":"cms:write","cms.schema.list":"cms:schema:read","cms.schema.get":"cms:schema:read","cms.schema.push":"cms:schema:write","cms.schema.delete":"cms:schema:write","assets.list":"assets:read","assets.get":"assets:read","assets.read":"assets:read","assets.upload":"assets:write","assets.generate":"assets:write","assets.create_folder":"assets:write","assets.move":"assets:write","assets.delete":"assets:write","i18n.list":"i18n:read","i18n.get":"i18n:read","i18n.create":"i18n:write","i18n.update":"i18n:write","i18n.delete":"i18n:write","forms.list":"forms:read","forms.get":"forms:read","forms.push":"forms:write","forms.delete":"forms:write","webhooks.events":"webhooks:read","webhooks.list":"webhooks:read","webhooks.get":"webhooks:read","webhooks.deliveries.list":"webhooks:read","webhooks.deliveries.get":"webhooks:read","webhooks.create":"webhooks:write","webhooks.update":"webhooks:write","webhooks.delete":"webhooks:write","webhooks.test":"webhooks:write","webhooks.deliveries.retry":"webhooks:write","webhooks.rotate_secret":"webhooks:write","schedules.list":"schedules:read","schedules.get":"schedules:read","schedules.runs.list":"schedules:read","schedules.runs.get":"schedules:read","schedules.create":"schedules:write","schedules.update":"schedules:write","schedules.delete":"schedules:write","schedules.pause":"schedules:write","schedules.resume":"schedules:write","schedules.run":"schedules:write","files.read":"files:read","files.write":"files:write","fimo.deploy":"fimo:deploy","fimo.logs.read":"fimo:logs:read","fimo.analytics.read":"fimo:analytics:read","fimo.preview.url":"fimo:preview:read","fimo.site.check":"fimo:preview:read","fimo.history.list":"fimo:history:read","fimo.history.get":"fimo:history:read","agent.delegate":"agent:delegate","runtime.auto_merge":"runtime:auto_merge"};function capabilityFor(op){return OPERATION_CAP[op]}__name(capabilityFor,"capabilityFor");function hasOperation(op){return Object.prototype.hasOwnProperty.call(OPERATION_CAP,op)}__name(hasOperation,"hasOperation");function _define_property(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property,"_define_property");var CapabilityDenied=class extends Error{static{__name(this,"CapabilityDenied")}constructor(detail){let def=getCapability(detail.cap),description=def?.description?` (${def.description})`:"";super(`capability denied: ${detail.cap}${description} \u2014 reason: ${detail.reason}`),_define_property(this,"cap",void 0),_define_property(this,"reason",void 0),_define_property(this,"granted",void 0),_define_property(this,"sessionId",void 0),_define_property(this,"fixHint",void 0),this.name="CapabilityDenied",this.cap=detail.cap,this.reason=detail.reason,this.granted=detail.granted??[],this.sessionId=detail.sessionId,this.fixHint=fixHintFor(detail)}};function fixHintFor(detail){switch(detail.reason){case"not-declared":return`Add '${detail.cap}' to the agent's capabilities.yaml and re-activate.`;case"session-not-found":return`Session '${detail.sessionId??"<unknown>"}' does not exist or has expired.`;case"snapshot-stale":return"Session capability snapshot is corrupted. Restart the agent session.";case"runtime-only":return`'${detail.cap}' is reserved for the platform \u2014 drop it from capabilities.yaml.`;case"auto-merge-blocked":return"runtime:auto_merge is declared but blocked by project policy (.fimo/config.json \u2192 agents.auto_merge)."}}__name(fixHintFor,"fixHintFor");var configured=null;async function auditCapabilityDecision(event){if(!configured)return;let row2={...event,ts:new Date().toISOString()};if(event.decision==="deny"){try{await configured.transport.write(row2)}catch(err){throw configured.breadcrumb?.({category:"audit",level:"error",message:"audit deny row write failed",data:{cap:event.cap,error:err.message}}),err}configured.breadcrumb?.({category:"audit",level:"warning",message:`capability denied: ${event.cap}`,data:{sessionId:event.sessionId,cap:event.cap,reason:event.reason}});return}configured.transport.write(row2).catch(err=>{configured?.breadcrumb?.({category:"audit",level:"warning",message:"audit allow row write failed (best-effort)",data:{cap:event.cap,error:err.message}})})}__name(auditCapabilityDecision,"auditCapabilityDecision");var ENV_SESSION="FIMO_AGENT_SESSION",ENV_CAPS_FALLBACK="FIMO_AGENT_CAPABILITIES";function currentAgentSession(){let id=process.env[ENV_SESSION];return id&&id.length>0?id:void 0}__name(currentAgentSession,"currentAgentSession");async function defaultFetchSessionCapabilities(_sessionId){let raw=process.env[ENV_CAPS_FALLBACK];return raw?raw.split(",").map(s=>s.trim()).filter(s=>s.length>0):[]}__name(defaultFetchSessionCapabilities,"defaultFetchSessionCapabilities");async function requireCapability(cap,ctx={}){let sessionId=currentAgentSession();if(!sessionId)return{ok:!0,bypassed:!0};let granted=await(ctx.fetchSessionCapabilities??defaultFetchSessionCapabilities)(sessionId);if(!granted.includes(cap)){try{await auditCapabilityDecision({sessionId,cap,decision:"deny",reason:granted.length===0?"session-not-found":"not-declared",projectId:ctx.projectId,env:ctx.branch})}catch{}throw new CapabilityDenied({cap,reason:granted.length===0?"session-not-found":"not-declared",granted,sessionId})}return auditCapabilityDecision({sessionId,cap,decision:"allow",projectId:ctx.projectId,env:ctx.branch}),{ok:!0,bypassed:!1}}__name(requireCapability,"requireCapability");async function requireOperation(op,ctx={}){if(!hasOperation(op))throw new Error(`requireOperation: unknown operation id '${op}' \u2014 register it in @fimo/agents capabilities/operation-map.ts`);let cap=capabilityFor(op);return isRuntimeBaselineOperationCapability(cap)?{ok:!0,bypassed:currentAgentSession()===void 0}:requireCapability(cap,ctx)}__name(requireOperation,"requireOperation");init_project_context();init_project2();function registerAgentsCommands(program2){let agents=program2.command("agents").description("Read project agents and their routines"),scoped=__name(command=>command.option("--project <id>","Site id (defaults to the linked site)").option("-C, --cwd <dir>","Site directory"),"scoped");scoped(agents).action((_options,command)=>agentsCommand(command.optsWithGlobals(),void 0,command)),scoped(agents.command("list").description("List agents and routine schedules")).action((_options,command)=>agentsCommand(command.optsWithGlobals(),void 0,command)),scoped(agents.command("show <name-or-id>").description("Read an agent and its routine instructions")).action((ref,_options,command)=>agentsCommand(command.optsWithGlobals(),ref,command)),scoped(agents.command("runs <agent> [routine]").description("List the newest runs of an agent's routines, or of one routine by name or ID").option("--limit <n>","Runs per routine, newest first (1-50)","10")).action((agent2,routine,_options,command)=>agentRunsCommand(command.optsWithGlobals(),agent2,routine,command))}__name(registerAgentsCommands,"registerAgentsCommands");async function projectScope(options,command,operation){let cwd=resolveProjectCwd(options.cwd),projectId2=options.project??(existsSync(resolveProjectSettingsPath(cwd))?loadProjectSettings(cwd).projectId:process.env.FIMO_PROJECT_ID?.trim());if(!projectId2)throw new NotInProjectError;let branch=branchOverrideFromCommand(command)??(process.env.FIMO_ENV?.trim()||DEFAULT_BRANCH);await requireOperation(operation,{projectId:projectId2});let fimo=createCliFimoClient(loadConfig()),{chats:chats2}=await fimo.execute("agents.list",{projectId:projectId2,branch});return{projectId:projectId2,branch,fimo,agents:chats2.filter(chat=>chat.kind==="agent")}}__name(projectScope,"projectScope");function pick(items,ref,nameOf,kind){let byId=items.find(item=>item.id===ref),found=byId?[byId]:items.filter(item=>nameOf(item)===ref);if(!found.length)throw new Error(`${kind} not found: ${ref}`);if(found.length>1)throw new Error(`Multiple ${kind.toLowerCase()}s named "${ref}". Use an ID from fimo agents.`);return found[0]}__name(pick,"pick");async function agentsCommand(options,ref,command){let scope2=await projectScope(options,command,"agents.list"),{projectId:projectId2,branch,fimo}=scope2,agents=ref===void 0?scope2.agents:[pick(scope2.agents,ref,agent2=>agent2.title,"Agent")],result=await Promise.all(agents.map(async agent2=>{let{routines:routines2}=await fimo.execute("agents.routines",{projectId:projectId2,branch,threadId:agent2.id});return{id:agent2.id,name:agent2.title??"Agent",description:ref===void 0?(agent2.description??"").replace(/\s+/g," ").slice(0,60):agent2.description,routines:routines2.map(routine=>({id:routine.id,name:routine.name,schedule:routine.triggers.schedule,event:routine.triggers.event?.text??null,paused:routine.paused,nextRunAt:routine.nextRunAt,lastRunAt:routine.lastRunAt,lastOutcome:routine.lastOutcome,outOfAgentHoursUntil:routine.outOfAgentHoursUntil,...ref!==void 0?{instructions:routine.instructions}:{}}))}}));ui.result({command:ref===void 0?"agents list":"agents show",data:ref===void 0?{agents:result}:result[0],render:__name(()=>result.length?result.map(agent2=>[`${agent2.name} (${agent2.id})`,...agent2.description?[agent2.description]:[],...agent2.routines.map(routine=>{let when=[routine.schedule?`${routine.schedule.cron} (${routine.schedule.timezone})`:"manual",...routine.event?[routine.event]:[],...routine.nextRunAt?[`next ${routine.nextRunAt}`]:[],...routine.lastRunAt?[`last ${routine.lastRunAt}${routine.lastOutcome?` (${routine.lastOutcome})`:""}`]:[],...routine.outOfAgentHoursUntil?[`out of agent-hours until ${routine.outOfAgentHoursUntil}`]:[]].join("; ");return` - ${routine.name}: ${when}${routine.paused?" [paused]":""}${routine.instructions?`
|
|
2278
|
+
`;import{z as z134}from"zod";function toSpec(def){return{token:def.token,riskTier:def.risk,description:def.description}}__name(toSpec,"toSpec");var VOCABULARY=Object.freeze(Object.fromEntries(CAPABILITY_VOCABULARY.filter(definition=>definition.declarable).map(definition=>[definition.token,toSpec(definition)]))),CapabilityToken=z134.enum(Object.keys(VOCABULARY)),CapabilitiesArraySchema=z134.array(CapabilityToken);var RUNTIME_BASELINE_OPERATION_CAPABILITIES=["files:read","files:write"];function isRuntimeBaselineOperationCapability(capability){return RUNTIME_BASELINE_OPERATION_CAPABILITIES.includes(capability)}__name(isRuntimeBaselineOperationCapability,"isRuntimeBaselineOperationCapability");var OPERATION_CAP={"agents.list":"agents:read","agents.routines":"agents:read","agents.routine_runs":"agents:read","knowledge.get":"knowledge:read","knowledge.update":"knowledge:write","cms.list":"cms:read","cms.get":"cms:read","cms.query":"cms:read","cms.create":"cms:write","cms.update":"cms:write","cms.delete":"cms:write","cms.bulk_create":"cms:write","cms.bulk_update":"cms:write","cms.bulk_delete":"cms:write","cms.schema.list":"cms:schema:read","cms.schema.get":"cms:schema:read","cms.schema.push":"cms:schema:write","cms.schema.delete":"cms:schema:write","assets.list":"assets:read","assets.get":"assets:read","assets.read":"assets:read","assets.upload":"assets:write","assets.generate":"assets:write","assets.create_folder":"assets:write","assets.move":"assets:write","assets.delete":"assets:write","i18n.list":"i18n:read","i18n.get":"i18n:read","i18n.create":"i18n:write","i18n.update":"i18n:write","i18n.delete":"i18n:write","forms.list":"forms:read","forms.get":"forms:read","forms.push":"forms:write","forms.delete":"forms:write","webhooks.events":"webhooks:read","webhooks.list":"webhooks:read","webhooks.get":"webhooks:read","webhooks.deliveries.list":"webhooks:read","webhooks.deliveries.get":"webhooks:read","webhooks.create":"webhooks:write","webhooks.update":"webhooks:write","webhooks.delete":"webhooks:write","webhooks.test":"webhooks:write","webhooks.deliveries.retry":"webhooks:write","webhooks.rotate_secret":"webhooks:write","schedules.list":"schedules:read","schedules.get":"schedules:read","schedules.runs.list":"schedules:read","schedules.runs.get":"schedules:read","schedules.create":"schedules:write","schedules.update":"schedules:write","schedules.delete":"schedules:write","schedules.pause":"schedules:write","schedules.resume":"schedules:write","schedules.run":"schedules:write","files.read":"files:read","files.write":"files:write","fimo.deploy":"fimo:deploy","fimo.logs.read":"fimo:logs:read","fimo.analytics.read":"fimo:analytics:read","fimo.preview.url":"fimo:preview:read","fimo.site.check":"fimo:preview:read","fimo.history.list":"fimo:history:read","fimo.history.get":"fimo:history:read","agent.delegate":"agent:delegate","runtime.auto_merge":"runtime:auto_merge"};function capabilityFor(op){return OPERATION_CAP[op]}__name(capabilityFor,"capabilityFor");function hasOperation(op){return Object.prototype.hasOwnProperty.call(OPERATION_CAP,op)}__name(hasOperation,"hasOperation");function _define_property(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property,"_define_property");var CapabilityDenied=class extends Error{static{__name(this,"CapabilityDenied")}constructor(detail){let def=getCapability(detail.cap),description=def?.description?` (${def.description})`:"";super(`capability denied: ${detail.cap}${description} \u2014 reason: ${detail.reason}`),_define_property(this,"cap",void 0),_define_property(this,"reason",void 0),_define_property(this,"granted",void 0),_define_property(this,"sessionId",void 0),_define_property(this,"fixHint",void 0),this.name="CapabilityDenied",this.cap=detail.cap,this.reason=detail.reason,this.granted=detail.granted??[],this.sessionId=detail.sessionId,this.fixHint=fixHintFor(detail)}};function fixHintFor(detail){switch(detail.reason){case"not-declared":return`Add '${detail.cap}' to the agent's capabilities.yaml and re-activate.`;case"session-not-found":return`Session '${detail.sessionId??"<unknown>"}' does not exist or has expired.`;case"snapshot-stale":return"Session capability snapshot is corrupted. Restart the agent session.";case"runtime-only":return`'${detail.cap}' is reserved for the platform \u2014 drop it from capabilities.yaml.`;case"auto-merge-blocked":return"runtime:auto_merge is declared but blocked by project policy (.fimo/config.json \u2192 agents.auto_merge)."}}__name(fixHintFor,"fixHintFor");var configured=null;async function auditCapabilityDecision(event){if(!configured)return;let row2={...event,ts:new Date().toISOString()};if(event.decision==="deny"){try{await configured.transport.write(row2)}catch(err){throw configured.breadcrumb?.({category:"audit",level:"error",message:"audit deny row write failed",data:{cap:event.cap,error:err.message}}),err}configured.breadcrumb?.({category:"audit",level:"warning",message:`capability denied: ${event.cap}`,data:{sessionId:event.sessionId,cap:event.cap,reason:event.reason}});return}configured.transport.write(row2).catch(err=>{configured?.breadcrumb?.({category:"audit",level:"warning",message:"audit allow row write failed (best-effort)",data:{cap:event.cap,error:err.message}})})}__name(auditCapabilityDecision,"auditCapabilityDecision");var ENV_SESSION="FIMO_AGENT_SESSION",ENV_CAPS_FALLBACK="FIMO_AGENT_CAPABILITIES";function currentAgentSession(){let id=process.env[ENV_SESSION];return id&&id.length>0?id:void 0}__name(currentAgentSession,"currentAgentSession");async function defaultFetchSessionCapabilities(_sessionId){let raw=process.env[ENV_CAPS_FALLBACK];return raw?raw.split(",").map(s=>s.trim()).filter(s=>s.length>0):[]}__name(defaultFetchSessionCapabilities,"defaultFetchSessionCapabilities");async function requireCapability(cap,ctx={}){let sessionId=currentAgentSession();if(!sessionId)return{ok:!0,bypassed:!0};let granted=await(ctx.fetchSessionCapabilities??defaultFetchSessionCapabilities)(sessionId);if(!granted.includes(cap)){try{await auditCapabilityDecision({sessionId,cap,decision:"deny",reason:granted.length===0?"session-not-found":"not-declared",projectId:ctx.projectId,env:ctx.branch})}catch{}throw new CapabilityDenied({cap,reason:granted.length===0?"session-not-found":"not-declared",granted,sessionId})}return auditCapabilityDecision({sessionId,cap,decision:"allow",projectId:ctx.projectId,env:ctx.branch}),{ok:!0,bypassed:!1}}__name(requireCapability,"requireCapability");async function requireOperation(op,ctx={}){if(!hasOperation(op))throw new Error(`requireOperation: unknown operation id '${op}' \u2014 register it in @fimo/agents capabilities/operation-map.ts`);let cap=capabilityFor(op);return isRuntimeBaselineOperationCapability(cap)?{ok:!0,bypassed:currentAgentSession()===void 0}:requireCapability(cap,ctx)}__name(requireOperation,"requireOperation");init_project_context();init_project2();function registerAgentsCommands(program2){let agents=program2.command("agents").description("Read project agents and their routines"),scoped=__name(command=>command.option("--project <id>","Site id (defaults to the linked site)").option("-C, --cwd <dir>","Site directory"),"scoped");scoped(agents).action((_options,command)=>agentsCommand(command.optsWithGlobals(),void 0,command)),scoped(agents.command("list").description("List agents and routine schedules")).action((_options,command)=>agentsCommand(command.optsWithGlobals(),void 0,command)),scoped(agents.command("show <name-or-id>").description("Read an agent and its routine instructions")).action((ref,_options,command)=>agentsCommand(command.optsWithGlobals(),ref,command)),scoped(agents.command("runs <agent> [routine]").description("List the newest runs of an agent's routines, or of one routine by name or ID").option("--limit <n>","Runs per routine, newest first (1-50)","10")).action((agent2,routine,_options,command)=>agentRunsCommand(command.optsWithGlobals(),agent2,routine,command))}__name(registerAgentsCommands,"registerAgentsCommands");async function projectScope(options,command,operation){let cwd=resolveProjectCwd(options.cwd),projectId2=options.project??(existsSync(resolveProjectSettingsPath(cwd))?loadProjectSettings(cwd).projectId:process.env.FIMO_PROJECT_ID?.trim());if(!projectId2)throw new NotInProjectError;let branch=branchOverrideFromCommand(command)??(process.env.FIMO_ENV?.trim()||DEFAULT_BRANCH);await requireOperation(operation,{projectId:projectId2});let fimo=createCliFimoClient(loadConfig()),{chats:chats2}=await fimo.execute("agents.list",{projectId:projectId2,branch});return{projectId:projectId2,branch,fimo,agents:chats2.filter(chat=>chat.kind==="agent")}}__name(projectScope,"projectScope");function pick(items,ref,nameOf,kind){let byId=items.find(item=>item.id===ref),found=byId?[byId]:items.filter(item=>nameOf(item)===ref);if(!found.length)throw new Error(`${kind} not found: ${ref}`);if(found.length>1)throw new Error(`Multiple ${kind.toLowerCase()}s named "${ref}". Use an ID from fimo agents.`);return found[0]}__name(pick,"pick");async function agentsCommand(options,ref,command){let scope2=await projectScope(options,command,"agents.list"),{projectId:projectId2,branch,fimo}=scope2,agents=ref===void 0?scope2.agents:[pick(scope2.agents,ref,agent2=>agent2.title,"Agent")],result=await Promise.all(agents.map(async agent2=>{let{routines:routines2}=await fimo.execute("agents.routines",{projectId:projectId2,branch,threadId:agent2.id});return{id:agent2.id,name:agent2.title??"Agent",description:ref===void 0?(agent2.description??"").replace(/\s+/g," ").slice(0,60):agent2.description,routines:routines2.map(routine=>({id:routine.id,name:routine.name,schedule:routine.triggers.schedule,event:routine.triggers.event?.text??null,paused:routine.paused,nextRunAt:routine.nextRunAt,lastRunAt:routine.lastRunAt,lastOutcome:routine.lastOutcome,outOfAgentHoursUntil:routine.outOfAgentHoursUntil,...ref!==void 0?{instructions:routine.instructions}:{}}))}}));ui.result({command:ref===void 0?"agents list":"agents show",data:ref===void 0?{agents:result}:result[0],render:__name(()=>result.length?result.map(agent2=>[`${agent2.name} (${agent2.id})`,...agent2.description?[agent2.description]:[],...agent2.routines.map(routine=>{let when=[routine.schedule?`${routine.schedule.cron} (${routine.schedule.timezone})`:"manual",...routine.event?[routine.event]:[],...routine.nextRunAt?[`next ${routine.nextRunAt}`]:[],...routine.lastRunAt?[`last ${routine.lastRunAt}${routine.lastOutcome?` (${routine.lastOutcome})`:""}`]:[],...routine.outOfAgentHoursUntil?[`out of agent-hours until ${routine.outOfAgentHoursUntil}`]:[]].join("; ");return` - ${routine.name}: ${when}${routine.paused?" [paused]":""}${routine.instructions?`
|
|
2279
2279
|
${routine.instructions}`:""}`})].join(`
|
|
2280
2280
|
`)).join(`
|
|
2281
2281
|
|
|
@@ -2296,13 +2296,13 @@ else console.log('node site.mjs crawl [origin] [--max 300] [--max-links 300] [--
|
|
|
2296
2296
|
`).length-1;this.output.write(import_sisteransi.cursor.move(-999,t2*-1))}render(){let t2=wrapAnsi(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(t2!==this._prevFrame){if(this.state==="initial")this.output.write(import_sisteransi.cursor.hide);else{let e=j(this._prevFrame,t2),s=A(this.output);if(this.restoreCursor(),e){let i=Math.max(0,e.numLinesAfter-s),n=Math.max(0,e.numLinesBefore-s),o=e.lines.find(a=>a>=i);if(o===void 0){this._prevFrame=t2;return}if(e.lines.length===1){this.output.write(import_sisteransi.cursor.move(0,o-n)),this.output.write(import_sisteransi.erase.lines(1));let a=t2.split(`
|
|
2297
2297
|
`);this.output.write(a[o]),this._prevFrame=t2,this.output.write(import_sisteransi.cursor.move(0,a.length-o-1));return}else if(e.lines.length>1){if(i<n)o=i;else{let h=o-n;h>0&&this.output.write(import_sisteransi.cursor.move(0,h))}this.output.write(import_sisteransi.erase.down());let a=t2.split(`
|
|
2298
2298
|
`).slice(o);this.output.write(a.join(`
|
|
2299
|
-
`)),this._prevFrame=t2;return}}this.output.write(import_sisteransi.erase.down())}this.output.write(t2),this.state==="initial"&&(this.state="active"),this._prevFrame=t2}}};var Q=class extends p{static{__name(this,"Q")}get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t2){super(t2,!1),this.value=!!t2.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",e=>{this.output.write(import_sisteransi.cursor.move(0,-1)),this.value=e,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};var it=class extends p{static{__name(this,"it")}options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter(t2=>t2.disabled!==!0)}toggleAll(){let t2=this._enabledOptions,e=this.value!==void 0&&this.value.length===t2.length;this.value=e?[]:t2.map(s=>s.value)}toggleInvert(){let t2=this.value;if(!t2)return;let e=this._enabledOptions.filter(s=>!t2.includes(s.value));this.value=e.map(s=>s.value)}toggleValue(){this.value===void 0&&(this.value=[]);let t2=this.value.includes(this._value);this.value=t2?this.value.filter(e=>e!==this._value):[...this.value,this._value]}constructor(t2){super(t2,!1),this.options=t2.options,this.value=[...t2.initialValues??[]];let e=Math.max(this.options.findIndex(({value:s})=>s===t2.cursorAt),0);this.cursor=this.options[e].disabled?d(e,1,this.options):e,this.on("key",s=>{s==="a"&&this.toggleAll(),s==="i"&&this.toggleInvert()}),this.on("cursor",s=>{switch(s){case"left":case"up":this.cursor=d(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=d(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}},rt=class extends p{static{__name(this,"rt")}_mask="\u2022";get cursor(){return this._cursor}get masked(){return this.userInput.replaceAll(/./g,this._mask)}get userInputWithCursor(){if(this.state==="submit"||this.state==="cancel")return this.masked;let t2=this.userInput;if(this.cursor>=t2.length)return`${this.masked}${y(["inverse","hidden"],"_")}`;let e=this.masked,s=e.slice(0,this.cursor),i=e.slice(this.cursor);return`${s}${y("inverse",i[0])}${i.slice(1)}`}clear(){this._clearUserInput()}constructor({mask:t2,...e}){super(e),this._mask=t2??"\u2022",this.on("userInput",s=>{this._setValue(s)})}},nt=class extends p{static{__name(this,"nt")}options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(t2){super(t2,!1),this.options=t2.options;let e=this.options.findIndex(({value:i})=>i===t2.initialValue),s=e===-1?0:e;this.cursor=this.options[s].disabled?d(s,1,this.options):s,this.changeValue(),this.on("cursor",i=>{switch(i){case"left":case"up":this.cursor=d(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=d(this.cursor,1,this.options);break}this.changeValue()})}};var at=class extends p{static{__name(this,"at")}get userInputWithCursor(){if(this.state==="submit")return this.userInput;let t2=this.userInput;if(this.cursor>=t2.length)return`${this.userInput}\u2588`;let e=t2.slice(0,this.cursor),[s,...i]=t2.slice(this.cursor);return`${e}${y("inverse",s)}${i.join("")}`}get cursor(){return this._cursor}constructor(t2){super({...t2,initialUserInput:t2.initialUserInput??t2.initialValue}),this.on("userInput",e=>{this._setValue(e)}),this.on("finalize",()=>{this.value||(this.value=t2.defaultValue),this.value===void 0&&(this.value="")})}};import{styleText as t,stripVTControlCharacters as ne}from"node:util";import P2 from"node:process";var import_sisteransi2=__toESM(require_src(),1);function Ze(){return P2.platform!=="win32"?P2.env.TERM!=="linux":!!P2.env.CI||!!P2.env.WT_SESSION||!!P2.env.TERMINUS_SUBLIME||P2.env.ConEmuTask==="{cmd::Cmder}"||P2.env.TERM_PROGRAM==="Terminus-Sublime"||P2.env.TERM_PROGRAM==="vscode"||P2.env.TERM==="xterm-256color"||P2.env.TERM==="alacritty"||P2.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}__name(Ze,"Ze");var ee=Ze();var w2=__name((e,i)=>ee?e:i,"w"),_e=w2("\u25C6","*"),oe=w2("\u25A0","x"),ue=w2("\u25B2","x"),F=w2("\u25C7","o"),le=w2("\u250C","T"),d2=w2("\u2502","|"),E2=w2("\u2514","\u2014"),Ie=w2("\u2510","T"),Ee=w2("\u2518","\u2014"),
|
|
2299
|
+
`)),this._prevFrame=t2;return}}this.output.write(import_sisteransi.erase.down())}this.output.write(t2),this.state==="initial"&&(this.state="active"),this._prevFrame=t2}}};var Q=class extends p{static{__name(this,"Q")}get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t2){super(t2,!1),this.value=!!t2.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",e=>{this.output.write(import_sisteransi.cursor.move(0,-1)),this.value=e,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};var it=class extends p{static{__name(this,"it")}options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter(t2=>t2.disabled!==!0)}toggleAll(){let t2=this._enabledOptions,e=this.value!==void 0&&this.value.length===t2.length;this.value=e?[]:t2.map(s=>s.value)}toggleInvert(){let t2=this.value;if(!t2)return;let e=this._enabledOptions.filter(s=>!t2.includes(s.value));this.value=e.map(s=>s.value)}toggleValue(){this.value===void 0&&(this.value=[]);let t2=this.value.includes(this._value);this.value=t2?this.value.filter(e=>e!==this._value):[...this.value,this._value]}constructor(t2){super(t2,!1),this.options=t2.options,this.value=[...t2.initialValues??[]];let e=Math.max(this.options.findIndex(({value:s})=>s===t2.cursorAt),0);this.cursor=this.options[e].disabled?d(e,1,this.options):e,this.on("key",s=>{s==="a"&&this.toggleAll(),s==="i"&&this.toggleInvert()}),this.on("cursor",s=>{switch(s){case"left":case"up":this.cursor=d(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=d(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}},rt=class extends p{static{__name(this,"rt")}_mask="\u2022";get cursor(){return this._cursor}get masked(){return this.userInput.replaceAll(/./g,this._mask)}get userInputWithCursor(){if(this.state==="submit"||this.state==="cancel")return this.masked;let t2=this.userInput;if(this.cursor>=t2.length)return`${this.masked}${y(["inverse","hidden"],"_")}`;let e=this.masked,s=e.slice(0,this.cursor),i=e.slice(this.cursor);return`${s}${y("inverse",i[0])}${i.slice(1)}`}clear(){this._clearUserInput()}constructor({mask:t2,...e}){super(e),this._mask=t2??"\u2022",this.on("userInput",s=>{this._setValue(s)})}},nt=class extends p{static{__name(this,"nt")}options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(t2){super(t2,!1),this.options=t2.options;let e=this.options.findIndex(({value:i})=>i===t2.initialValue),s=e===-1?0:e;this.cursor=this.options[s].disabled?d(s,1,this.options):s,this.changeValue(),this.on("cursor",i=>{switch(i){case"left":case"up":this.cursor=d(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=d(this.cursor,1,this.options);break}this.changeValue()})}};var at=class extends p{static{__name(this,"at")}get userInputWithCursor(){if(this.state==="submit")return this.userInput;let t2=this.userInput;if(this.cursor>=t2.length)return`${this.userInput}\u2588`;let e=t2.slice(0,this.cursor),[s,...i]=t2.slice(this.cursor);return`${e}${y("inverse",s)}${i.join("")}`}get cursor(){return this._cursor}constructor(t2){super({...t2,initialUserInput:t2.initialUserInput??t2.initialValue}),this.on("userInput",e=>{this._setValue(e)}),this.on("finalize",()=>{this.value||(this.value=t2.defaultValue),this.value===void 0&&(this.value="")})}};import{styleText as t,stripVTControlCharacters as ne}from"node:util";import P2 from"node:process";var import_sisteransi2=__toESM(require_src(),1);function Ze(){return P2.platform!=="win32"?P2.env.TERM!=="linux":!!P2.env.CI||!!P2.env.WT_SESSION||!!P2.env.TERMINUS_SUBLIME||P2.env.ConEmuTask==="{cmd::Cmder}"||P2.env.TERM_PROGRAM==="Terminus-Sublime"||P2.env.TERM_PROGRAM==="vscode"||P2.env.TERM==="xterm-256color"||P2.env.TERM==="alacritty"||P2.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}__name(Ze,"Ze");var ee=Ze();var w2=__name((e,i)=>ee?e:i,"w"),_e=w2("\u25C6","*"),oe=w2("\u25A0","x"),ue=w2("\u25B2","x"),F=w2("\u25C7","o"),le=w2("\u250C","T"),d2=w2("\u2502","|"),E2=w2("\u2514","\u2014"),Ie=w2("\u2510","T"),Ee=w2("\u2518","\u2014"),z136=w2("\u25CF",">"),H2=w2("\u25CB"," "),te=w2("\u25FB","[\u2022]"),U=w2("\u25FC","[+]"),J=w2("\u25FB","[ ]"),xe=w2("\u25AA","\u2022"),se=w2("\u2500","-"),ce=w2("\u256E","+"),Ge=w2("\u251C","+"),$e=w2("\u256F","+"),de=w2("\u2570","+"),Oe=w2("\u256D","+"),he=w2("\u25CF","\u2022"),pe=w2("\u25C6","*"),me=w2("\u25B2","!"),ge=w2("\u25A0","x"),V2=__name(e=>{switch(e){case"initial":case"active":return t("cyan",_e);case"cancel":return t("red",oe);case"error":return t("yellow",ue);case"submit":return t("green",F)}},"V"),ye=__name(e=>{switch(e){case"initial":case"active":return t("cyan",d2);case"cancel":return t("red",d2);case"error":return t("yellow",d2);case"submit":return t("green",d2)}},"ye"),et2=__name((e,i,s,r,u2)=>{let n=i,o=0;for(let c2=s;c2<r;c2++){let a=e[c2];if(n=n-a.length,o++,n<=u2)break}return{lineCount:n,removals:o}},"et"),Y2=__name(({cursor:e,options:i,style:s,output:r=process.stdout,maxItems:u2=Number.POSITIVE_INFINITY,columnPadding:n=0,rowPadding:o=4})=>{let c2=O(r)-n,a=A(r),l=t("dim","..."),$2=Math.max(a-o,0),y2=Math.max(Math.min(u2,$2),5),p2=0;e>=y2-3&&(p2=Math.max(Math.min(e-y2+3,i.length-y2),0));let m=y2<i.length&&p2>0,g=y2<i.length&&p2+y2<i.length,S2=Math.min(p2+y2,i.length),h=[],f=0;m&&f++,g&&f++;let v=p2+(m?1:0),T=S2-(g?1:0);for(let b=v;b<T;b++){let x=wrapAnsi(s(i[b],b===e),c2,{hard:!0,trim:!1}).split(`
|
|
2300
2300
|
`);h.push(x),f+=x.length}if(f>$2){let b=0,x=0,G2=f,M2=e-v,R2=__name((j2,D)=>et2(h,G2,j2,D,$2),"R");m?({lineCount:G2,removals:b}=R2(0,M2),G2>$2&&({lineCount:G2,removals:x}=R2(M2+1,h.length))):({lineCount:G2,removals:x}=R2(M2+1,h.length),G2>$2&&({lineCount:G2,removals:b}=R2(0,M2))),b>0&&(m=!0,h.splice(0,b)),x>0&&(g=!0,h.splice(h.length-x,x))}let C2=[];m&&C2.push(l);for(let b of h)for(let x of b)C2.push(x);return g&&C2.push(l),C2},"Y");var ot2=__name(e=>{let i=e.active??"Yes",s=e.inactive??"No";return new Q({active:i,inactive:s,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let r=e.withGuide??u.withGuide,u2=`${V2(this.state)} `,n=r?`${t("gray",d2)} `:"",o=R(e.output,e.message,n,u2),c2=`${r?`${t("gray",d2)}
|
|
2301
2301
|
`:""}${o}
|
|
2302
2302
|
`,a=this.value?i:s;switch(this.state){case"submit":{let l=r?`${t("gray",d2)} `:"";return`${c2}${l}${t("dim",a)}`}case"cancel":{let l=r?`${t("gray",d2)} `:"";return`${c2}${l}${t(["strikethrough","dim"],a)}${r?`
|
|
2303
|
-
${t("gray",d2)}`:""}`}default:{let l=r?`${t("cyan",d2)} `:"",$2=r?t("cyan",E2):"";return`${c2}${l}${this.value?`${t("green",
|
|
2303
|
+
${t("gray",d2)}`:""}`}default:{let l=r?`${t("cyan",d2)} `:"",$2=r?t("cyan",E2):"";return`${c2}${l}${this.value?`${t("green",z136)} ${i}`:`${t("dim",H2)} ${t("dim",i)}`}${e.vertical?r?`
|
|
2304
2304
|
${t("cyan",d2)} `:`
|
|
2305
|
-
`:` ${t("dim","/")} `}${this.value?`${t("dim",H2)} ${t("dim",s)}`:`${t("green",
|
|
2305
|
+
`:` ${t("dim","/")} `}${this.value?`${t("dim",H2)} ${t("dim",s)}`:`${t("green",z136)} ${s}`}
|
|
2306
2306
|
${$2}
|
|
2307
2307
|
`}}}}).prompt()},"ot");var O2={message:__name((e=[],{symbol:i=t("gray",d2),secondarySymbol:s=t("gray",d2),output:r=process.stdout,spacing:u2=1,withGuide:n}={})=>{let o=[],c2=n??u.withGuide,a=c2?s:"",l=c2?`${i} `:"",$2=c2?`${s} `:"";for(let p2=0;p2<u2;p2++)o.push(a);let y2=Array.isArray(e)?e:e.split(`
|
|
2308
2308
|
`);if(y2.length>0){let[p2,...m]=y2;p2.length>0?o.push(`${l}${p2}`):o.push(c2?i:"");for(let g of m)g.length>0?o.push(`${$2}${g}`):o.push(c2?s:"")}r.write(`${o.join(`
|
|
@@ -2328,7 +2328,7 @@ ${o}
|
|
|
2328
2328
|
`}}}}).prompt(),"bt");var Ve={light:w2("\u2500","-"),heavy:w2("\u2501","="),block:w2("\u2588","#")};var re=__name((e,i)=>e.includes(`
|
|
2329
2329
|
`)?e.split(`
|
|
2330
2330
|
`).map(s=>i(s)).join(`
|
|
2331
|
-
`):i(e),"re"),_t=__name(e=>{let i=__name((s,r)=>{let u2=s.label??String(s.value);switch(r){case"disabled":return`${t("gray",H2)} ${re(u2,n=>t("gray",n))}${s.hint?` ${t("dim",`(${s.hint??"disabled"})`)}`:""}`;case"selected":return`${re(u2,n=>t("dim",n))}`;case"active":return`${t("green",
|
|
2331
|
+
`):i(e),"re"),_t=__name(e=>{let i=__name((s,r)=>{let u2=s.label??String(s.value);switch(r){case"disabled":return`${t("gray",H2)} ${re(u2,n=>t("gray",n))}${s.hint?` ${t("dim",`(${s.hint??"disabled"})`)}`:""}`;case"selected":return`${re(u2,n=>t("dim",n))}`;case"active":return`${t("green",z136)} ${u2}${s.hint?` ${t("dim",`(${s.hint})`)}`:""}`;case"cancelled":return`${re(u2,n=>t(["strikethrough","dim"],n))}`;default:return`${t("dim",H2)} ${re(u2,n=>t("dim",n))}`}},"i");return new nt({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue,render(){let s=e.withGuide??u.withGuide,r=`${V2(this.state)} `,u2=`${ye(this.state)} `,n=R(e.output,e.message,u2,r),o=`${s?`${t("gray",d2)}
|
|
2332
2332
|
`:""}${n}
|
|
2333
2333
|
`;switch(this.state){case"submit":{let c2=s?`${t("gray",d2)} `:"",a=R(e.output,i(this.options[this.cursor],"selected"),c2);return`${o}${a}`}case"cancel":{let c2=s?`${t("gray",d2)} `:"",a=R(e.output,i(this.options[this.cursor],"cancelled"),c2);return`${o}${a}${s?`
|
|
2334
2334
|
${t("gray",d2)}`:""}`}default:{let c2=s?`${t("cyan",d2)} `:"",a=s?t("cyan",E2):"",l=o.split(`
|
|
@@ -2343,8 +2343,8 @@ ${a}${o}
|
|
|
2343
2343
|
`}case"submit":{let o=n?` ${t("dim",n)}`:"",c2=i?t("gray",d2):"";return`${s}${c2}${o}`}case"cancel":{let o=n?` ${t(["strikethrough","dim"],n)}`:"",c2=i?t("gray",d2):"";return`${s}${c2}${o}${n.trim()?`
|
|
2344
2344
|
${c2}`:""}`}default:{let o=i?`${t("cyan",d2)} `:"",c2=i?t("cyan",E2):"";return`${s}${o}${u2}
|
|
2345
2345
|
${c2}
|
|
2346
|
-
`}}}}).prompt(),"Ot");init_esm();init_dist();init_config();init_sdk_transport();import{z as
|
|
2347
|
-
`).filter(line=>line.trim().length>0).map(line=>AssetReferenceImpactEventDTOSchema.parse(JSON.parse(line)))},async createForm(projectId2,data){return(await transport.request(tenantPath2(projectId2,"/forms"),{method:"POST",body:JSON.stringify(data)})).data},async updateForm(projectId2,id,data){return(await transport.request(tenantPath2(projectId2,`/forms/${id}`),{method:"PUT",body:JSON.stringify(data)})).data}}}__name(createContentTransferService,"createContentTransferService");init_dist();function isInteractive(){return!!(process.stdin.isTTY&&process.stdout.isTTY)}__name(isInteractive,"isInteractive");function assertInteractive(hint,command="fimo"){currentMode().format==="json"&&(ui.error({command,code:"NON_INTERACTIVE_REFUSAL",message:"Cannot prompt in --json mode.",hint}),process.exit(1)),!isInteractive()&&(ui.error({command,code:"NON_INTERACTIVE_REFUSAL",message:"Cannot prompt in a non-interactive shell.",hint}),process.exit(1))}__name(assertInteractive,"assertInteractive");var PaginationValidationError=class extends Error{static{__name(this,"PaginationValidationError")}kind;constructor(kind,message){super(message),this.name="PaginationValidationError",this.kind=kind}};function addPaginationOptions(command,config){return command.option("--limit <count>",`Maximum items per page (1-${config.maxLimit}, default ${config.defaultLimit})`).option("--cursor <cursor>","Continue from the cursor returned by the previous page").option("--all-pages","Fetch every remaining page"),config.legacyCursor==="before"&&command.addOption(new Option("--before <cursor>","Deprecated alias for --cursor").hideHelp()),config.legacyCursor==="offset"&&command.addOption(new Option("--offset <count>","Deprecated alias for --cursor").hideHelp()),config.legacyAll&&command.addOption(new Option("--all","Deprecated alias for --all-pages").hideHelp()),command}__name(addPaginationOptions,"addPaginationOptions");function toOffsetPaginationPage(response){return{items:response.data,nextCursor:response.meta.hasMore?String(response.meta.offset+response.meta.limit):null,total:response.meta.total,meta:response.meta}}__name(toOffsetPaginationPage,"toOffsetPaginationPage");function parsePaginationOptions(input,config){let limit=Number(input.limit??config.defaultLimit);if(!Number.isInteger(limit)||limit<1||limit>config.maxLimit)throw new PaginationValidationError("invalid_limit",`--limit must be an integer between 1 and ${config.maxLimit}.`);let legacyCursor=config.legacyCursor?input[config.legacyCursor]:void 0;if(input.cursor!==void 0&&legacyCursor!==void 0)throw new PaginationValidationError("conflicting_cursor",`--cursor cannot be combined with --${config.legacyCursor}.`);if(input.cursor==="")throw new PaginationValidationError("invalid_cursor","--cursor must not be empty.");if(config.legacyCursor==="offset"&&legacyCursor!==void 0){let offset=Number(legacyCursor);if(!Number.isInteger(offset)||offset<0)throw new PaginationValidationError("invalid_cursor","--offset must be a non-negative integer.")}return{limit,cursor:input.cursor??legacyCursor,allPages:input.allPages===!0||input.all===!0}}__name(parsePaginationOptions,"parsePaginationOptions");function parseCursorNumber(cursor,config){let value=Number(cursor??config.defaultValue);if(!Number.isInteger(value)||value<config.minimum)throw new PaginationValidationError("invalid_cursor",`--cursor must be an integer greater than or equal to ${config.minimum}.`);return value}__name(parseCursorNumber,"parseCursorNumber");async function collectPaginatedItems(input){let page=await input.fetchPage(input.cursor);if(!input.allPages||page.nextCursor===null)return page;let items=[...page.items],seen=new Set;for(input.cursor!==void 0&&seen.add(input.cursor);page.nextCursor!==null;){if(seen.has(page.nextCursor))throw new Error("Pagination cursor did not advance.");seen.add(page.nextCursor),page=await input.fetchPage(page.nextCursor),items.push(...page.items)}return{...page,items,nextCursor:null}}__name(collectPaginatedItems,"collectPaginatedItems");function buildPaginationHint(command,input,label="More"){let args=[...command,"--limit",String(input.limit),"--cursor",input.cursor,...input.trailingArgs??[]];return`${label}: ${args.map(quoteCommandArgument).join(" ")}`}__name(buildPaginationHint,"buildPaginationHint");function quoteCommandArgument(value){return/^[A-Za-z0-9_./:@+-]+$/.test(value)?value:`'${value.replaceAll("'",`'"'"'`)}'`}__name(quoteCommandArgument,"quoteCommandArgument");init_project_context();init_project2();function renderPrettyJson3(data){return JSON.stringify(data,null,2)}__name(renderPrettyJson3,"renderPrettyJson");var bulkUploadItemSchema=
|
|
2346
|
+
`}}}}).prompt(),"Ot");init_esm();init_dist();init_config();init_sdk_transport();import{z as z137}from"zod";init_esm();init_config();init_sdk_transport();function createContentTransferService(cfg=loadConfig(),branch){let transport=createCliHttpTransport(cfg,branch),tenantPath2=__name((projectId2,route)=>`/api/tenant/${projectId2}/branches/${encodeBranchPathSegment(branch)}${route}`,"tenantPath");return{async listEntries(projectId2,typeName,params){let query=params?`?${new URLSearchParams(params).toString()}`:"";return transport.request(tenantPath2(projectId2,`/entries/${typeName}${query}`))},async uploadAsset(projectId2,formData){return(await(await transport.response(tenantPath2(projectId2,"/assets/upload"),{method:"POST",body:formData})).json()).data},async admitAssetUploads(projectId2,sizes){return(await transport.request(tenantPath2(projectId2,"/assets/upload-admissions"),{method:"POST",body:JSON.stringify({files:sizes.map(sizeBytes=>({sizeBytes}))})})).data.admissionId},async completeAssetUploads(projectId2,admissionId){await transport.request(tenantPath2(projectId2,`/assets/upload-admissions/${admissionId}/complete`),{method:"POST"})},async getAssetReferenceImpact(projectId2,request){return(await(await transport.response(tenantPath2(projectId2,"/assets/reference-impact"),{method:"POST",headers:{Accept:"application/x-ndjson","Content-Type":"application/json"},body:JSON.stringify(request)})).text()).split(`
|
|
2347
|
+
`).filter(line=>line.trim().length>0).map(line=>AssetReferenceImpactEventDTOSchema.parse(JSON.parse(line)))},async createForm(projectId2,data){return(await transport.request(tenantPath2(projectId2,"/forms"),{method:"POST",body:JSON.stringify(data)})).data},async updateForm(projectId2,id,data){return(await transport.request(tenantPath2(projectId2,`/forms/${id}`),{method:"PUT",body:JSON.stringify(data)})).data}}}__name(createContentTransferService,"createContentTransferService");init_dist();function isInteractive(){return!!(process.stdin.isTTY&&process.stdout.isTTY)}__name(isInteractive,"isInteractive");function assertInteractive(hint,command="fimo"){currentMode().format==="json"&&(ui.error({command,code:"NON_INTERACTIVE_REFUSAL",message:"Cannot prompt in --json mode.",hint}),process.exit(1)),!isInteractive()&&(ui.error({command,code:"NON_INTERACTIVE_REFUSAL",message:"Cannot prompt in a non-interactive shell.",hint}),process.exit(1))}__name(assertInteractive,"assertInteractive");var PaginationValidationError=class extends Error{static{__name(this,"PaginationValidationError")}kind;constructor(kind,message){super(message),this.name="PaginationValidationError",this.kind=kind}};function addPaginationOptions(command,config){return command.option("--limit <count>",`Maximum items per page (1-${config.maxLimit}, default ${config.defaultLimit})`).option("--cursor <cursor>","Continue from the cursor returned by the previous page").option("--all-pages","Fetch every remaining page"),config.legacyCursor==="before"&&command.addOption(new Option("--before <cursor>","Deprecated alias for --cursor").hideHelp()),config.legacyCursor==="offset"&&command.addOption(new Option("--offset <count>","Deprecated alias for --cursor").hideHelp()),config.legacyAll&&command.addOption(new Option("--all","Deprecated alias for --all-pages").hideHelp()),command}__name(addPaginationOptions,"addPaginationOptions");function toOffsetPaginationPage(response){return{items:response.data,nextCursor:response.meta.hasMore?String(response.meta.offset+response.meta.limit):null,total:response.meta.total,meta:response.meta}}__name(toOffsetPaginationPage,"toOffsetPaginationPage");function parsePaginationOptions(input,config){let limit=Number(input.limit??config.defaultLimit);if(!Number.isInteger(limit)||limit<1||limit>config.maxLimit)throw new PaginationValidationError("invalid_limit",`--limit must be an integer between 1 and ${config.maxLimit}.`);let legacyCursor=config.legacyCursor?input[config.legacyCursor]:void 0;if(input.cursor!==void 0&&legacyCursor!==void 0)throw new PaginationValidationError("conflicting_cursor",`--cursor cannot be combined with --${config.legacyCursor}.`);if(input.cursor==="")throw new PaginationValidationError("invalid_cursor","--cursor must not be empty.");if(config.legacyCursor==="offset"&&legacyCursor!==void 0){let offset=Number(legacyCursor);if(!Number.isInteger(offset)||offset<0)throw new PaginationValidationError("invalid_cursor","--offset must be a non-negative integer.")}return{limit,cursor:input.cursor??legacyCursor,allPages:input.allPages===!0||input.all===!0}}__name(parsePaginationOptions,"parsePaginationOptions");function parseCursorNumber(cursor,config){let value=Number(cursor??config.defaultValue);if(!Number.isInteger(value)||value<config.minimum)throw new PaginationValidationError("invalid_cursor",`--cursor must be an integer greater than or equal to ${config.minimum}.`);return value}__name(parseCursorNumber,"parseCursorNumber");async function collectPaginatedItems(input){let page=await input.fetchPage(input.cursor);if(!input.allPages||page.nextCursor===null)return page;let items=[...page.items],seen=new Set;for(input.cursor!==void 0&&seen.add(input.cursor);page.nextCursor!==null;){if(seen.has(page.nextCursor))throw new Error("Pagination cursor did not advance.");seen.add(page.nextCursor),page=await input.fetchPage(page.nextCursor),items.push(...page.items)}return{...page,items,nextCursor:null}}__name(collectPaginatedItems,"collectPaginatedItems");function buildPaginationHint(command,input,label="More"){let args=[...command,"--limit",String(input.limit),"--cursor",input.cursor,...input.trailingArgs??[]];return`${label}: ${args.map(quoteCommandArgument).join(" ")}`}__name(buildPaginationHint,"buildPaginationHint");function quoteCommandArgument(value){return/^[A-Za-z0-9_./:@+-]+$/.test(value)?value:`'${value.replaceAll("'",`'"'"'`)}'`}__name(quoteCommandArgument,"quoteCommandArgument");init_project_context();init_project2();function renderPrettyJson3(data){return JSON.stringify(data,null,2)}__name(renderPrettyJson3,"renderPrettyJson");var bulkUploadItemSchema=z137.object({sourceId:z137.string().min(1),path:z137.string().min(1),name:z137.string().min(1).optional(),parentId:z137.string().min(1).optional(),folderPath:z137.string().min(1).optional()}).strict().refine(item=>!(item.parentId&&item.folderPath),{message:"Use either parentId or folderPath, not both"}),bulkUploadManifestSchema=z137.array(bulkUploadItemSchema).superRefine((items,ctx)=>{let seen=new Set;for(let[index,item]of items.entries())seen.has(item.sourceId)&&ctx.addIssue({code:"custom",message:`Duplicate sourceId: ${item.sourceId}`,path:[index,"sourceId"]}),seen.add(item.sourceId)});function buildAssetFormData(cwd,item,admissionId){let filePath=path7.resolve(cwd,item.path);if(!fs7.existsSync(filePath))throw new Error(`File not found: ${filePath}`);let fileBuffer=fs7.readFileSync(filePath),fileName=path7.basename(filePath),formData=new FormData,mimeType=path7.extname(fileName).toLowerCase()===".svg"?"image/svg+xml":void 0;return formData.append("file",new Blob([fileBuffer],{type:mimeType}),fileName),item.name&&formData.append("name",item.name),item.parentId&&formData.append("parentId",item.parentId),item.folderPath&&formData.append("folderPath",item.folderPath),admissionId&&formData.append("admissionId",admissionId),formData}__name(buildAssetFormData,"buildAssetFormData");function admissibleFileSize(cwd,item){try{let{size}=fs7.statSync(path7.resolve(cwd,item.path));return size>0&&size<=MAX_UPLOAD_FILE_SIZE_BYTES?size:null}catch{return null}}__name(admissibleFileSize,"admissibleFileSize");function isRejectedAdmission(error){return error instanceof ApiRequestError&&error.code==="media_upload_admission_invalid"}__name(isRejectedAdmission,"isRejectedAdmission");function readBulkUploadManifest(cwd,manifest){let manifestPath=path7.resolve(cwd,manifest);if(!fs7.existsSync(manifestPath))throw new Error(`Manifest not found: ${manifestPath}`);let parsed;try{parsed=JSON.parse(fs7.readFileSync(manifestPath,"utf8"))}catch(error){throw new Error(`Could not parse asset manifest ${manifestPath}`,{cause:error})}let result=bulkUploadManifestSchema.safeParse(parsed);if(!result.success){let issues=result.error.issues.map(issue2=>`${issue2.path.join(".")||"manifest"}: ${issue2.message}`);throw new Error(`Invalid asset manifest:
|
|
2348
2348
|
${issues.join(`
|
|
2349
2349
|
`)}`)}return result.data}__name(readBulkUploadManifest,"readBulkUploadManifest");function parseConcurrency(value){let concurrency=Number(value);if(!Number.isInteger(concurrency)||concurrency<1||concurrency>16)throw new Error("--concurrency must be an integer between 1 and 16");return concurrency}__name(parseConcurrency,"parseConcurrency");async function mapWithConcurrency(items,concurrency,run){let results=new Array(items.length),nextIndex=0;return await Promise.all(Array.from({length:Math.min(concurrency,items.length)},async()=>{for(;nextIndex<items.length;){let index=nextIndex;nextIndex+=1,results[index]=await run(items[index])}})),results}__name(mapWithConcurrency,"mapWithConcurrency");async function assetsListCommand(options,cmd){let pagination=parsePaginationOptions(options,{defaultLimit:20,maxLimit:100,legacyCursor:"offset"}),{ctx,fimo}=await bootstrapProjectCommand(options,cmd);await requireOperation("assets.list",{projectId:ctx.projectId,branch:ctx.branch});let mimePrefix=options.mimePrefix;mimePrefix||(options.image?mimePrefix="image/":options.video?mimePrefix="video/":options.audio&&(mimePrefix="audio/"));let initialOffset=parseCursorNumber(pagination.cursor,{defaultValue:0,minimum:0}),page=await collectPaginatedItems({cursor:pagination.cursor,allPages:pagination.allPages,fetchPage:__name(async cursor=>{let offset=parseCursorNumber(cursor,{defaultValue:0,minimum:0}),response=await fimo.execute("assets.list",{projectId:ctx.projectId,branch:ctx.branch,parentId:options.parentId||void 0,search:options.search||void 0,type:options.type||void 0,mimePrefix:mimePrefix||void 0,sortBy:options.sortBy||void 0,limit:pagination.limit,offset}),hasMore=response.nextCursor!==null;return{...response,nextCursor:hasMore?String(offset+pagination.limit):null,meta:{limit:pagination.limit,offset,total:response.total,hasMore}}},"fetchPage")}),result={data:page.items,items:page.items,nextCursor:page.nextCursor,total:page.total,meta:{...page.meta,offset:initialOffset,hasMore:page.nextCursor!==null}},trailingArgs=assetPaginationTrailingArgs(options,ctx.branch);ui.result({command:"assets list",data:result,render:__name(()=>renderPrettyJson3(result),"render"),...page.nextCursor?{hint:buildPaginationHint(["fimo","assets","list"],{cursor:page.nextCursor,limit:pagination.limit,trailingArgs})}:{}})}__name(assetsListCommand,"assetsListCommand");function assetPaginationTrailingArgs(options,branch){let args=[];for(let[flag2,value]of[["--branch",branch],["--parent-id",options.parentId],["--search",options.search],["--type",options.type],["--mime-prefix",options.mimePrefix],["--sort-by",options.sortBy],["--cwd",options.cwd]])value!==void 0&&args.push(flag2,value);for(let[flag2,enabled]of[["--image",options.image],["--video",options.video],["--audio",options.audio]])enabled&&args.push(flag2);return args}__name(assetPaginationTrailingArgs,"assetPaginationTrailingArgs");async function assetsUploadCommand(file,options,cmd){let{ctx}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0}),content2=createContentTransferService(loadConfig(),ctx.branch);await requireOperation("assets.upload",{projectId:ctx.projectId,branch:ctx.branch});let cwd=resolveProjectCwd(options.cwd);if(options.parentId&&options.folderPath)throw new Error("Use either --parent-id or --folder-path, not both");let result;try{result=await content2.uploadAsset(ctx.projectId,buildAssetFormData(cwd,{path:file,name:options.name,parentId:options.parentId,folderPath:options.folderPath}))}catch(error){if(error instanceof ApiRequestError&&error.code==="unclaimed_media_limit"){ui.error({command:"assets upload",code:"UNCLAIMED_MEDIA_LIMIT",message:error.detail,details:{limits:error.body.limits}});return}throw error}ui.result({command:"assets upload",data:result,render:__name(()=>renderPrettyJson3(result),"render")})}__name(assetsUploadCommand,"assetsUploadCommand");async function assetsBulkUploadCommand(options,cmd){let cwd=resolveProjectCwd(options.cwd),items=readBulkUploadManifest(cwd,options.file),concurrency=parseConcurrency(options.concurrency),{ctx}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0}),content2=createContentTransferService(loadConfig(),ctx.branch);await requireOperation("assets.upload",{projectId:ctx.projectId,branch:ctx.branch});let admissions=new Set,finished=new Set,admit=__name(async pending=>{let sizes=pending.map(item=>admissibleFileSize(cwd,item)).filter(size=>size!==null);if(sizes.length===0)return;let id=await content2.admitAssetUploads(ctx.projectId,sizes);return admissions.add(id),id},"admit"),admissionId;try{admissionId=await admit(items)}catch(error){if(error instanceof ApiRequestError&&error.code==="media_storage_limit_exceeded"){let body=error.body;ui.error({command:"assets bulk-upload",code:"MEDIA_STORAGE_LIMIT_EXCEEDED",message:"The files do not fit the media storage allowance. Nothing was uploaded.",details:{used_bytes:body.usedBytes,limit_bytes:body.limitBytes,incoming_bytes:body.incomingBytes}});return}throw error}let renewal,renewAdmission=__name(rejectedId=>admissionId!==rejectedId?Promise.resolve(admissionId):(renewal??=admit(items.filter(item=>!finished.has(item))).then(id=>(admissionId=id,id)).finally(()=>{renewal=void 0}),renewal),"renewAdmission"),upload=__name(async item=>{let id=admissionId;try{return await content2.uploadAsset(ctx.projectId,buildAssetFormData(cwd,item,id))}catch(error){if(!id||!isRejectedAdmission(error))throw error;return content2.uploadAsset(ctx.projectId,buildAssetFormData(cwd,item,await renewAdmission(id)))}},"upload"),uploaded=await mapWithConcurrency(items,concurrency,async item=>{try{let asset=await upload(item);return{sourceId:item.sourceId,path:item.path,status:"uploaded",asset}}catch(error){return{sourceId:item.sourceId,path:item.path,status:"failed",error:error instanceof Error?error.message:String(error)}}finally{finished.add(item)}});for(let id of admissions)try{await content2.completeAssetUploads(ctx.projectId,id)}catch(error){isRejectedAdmission(error)||ui.warn({command:"assets bulk-upload",message:`Uploads finished, but the upload batch could not be closed: ${error instanceof Error?error.message:String(error)}`})}let failed=uploaded.filter(item=>item.status==="failed").length,result={total:uploaded.length,uploaded:uploaded.length-failed,failed,items:uploaded};ui.result({command:"assets bulk-upload",data:result,render:__name(()=>renderPrettyJson3(result),"render")}),failed>0&&(process.exitCode=1)}__name(assetsBulkUploadCommand,"assetsBulkUploadCommand");async function assetsReadCommand(id,options,cmd){if(options.cursor!==void 0&&options.query!==void 0)throw new Error("--cursor and --query are mutually exclusive");let{ctx,fimo}=await bootstrapProjectCommand(options,cmd);await requireOperation("assets.read",{projectId:ctx.projectId,branch:ctx.branch});let{data:result}=await fimo.execute("assets.read",{projectId:ctx.projectId,branch:ctx.branch,id,cursor:options.cursor,query:options.query});ui.result({command:"assets read",data:result,render:__name(()=>renderPrettyJson3(result),"render")})}__name(assetsReadCommand,"assetsReadCommand");async function assetsCreateFolderCommand(name,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0});await requireOperation("assets.create_folder",{projectId:ctx.projectId,branch:ctx.branch});let{data:result}=await fimo.execute("assets.createFolder",{projectId:ctx.projectId,branch:ctx.branch,name,parentId:options.parentId});ui.result({command:"assets create-folder",data:result,render:__name(()=>renderPrettyJson3(result),"render")})}__name(assetsCreateFolderCommand,"assetsCreateFolderCommand");async function assetsMoveCommand(id,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0});await requireOperation("assets.move",{projectId:ctx.projectId,branch:ctx.branch});let{data:result}=await fimo.execute("assets.move",{projectId:ctx.projectId,branch:ctx.branch,id,parentId:options.parentId});ui.result({command:"assets move",data:result,render:__name(()=>renderPrettyJson3(result),"render")})}__name(assetsMoveCommand,"assetsMoveCommand");var OTHER_BRANCHES_CAVEAT="Other Branches are not checked. This result is guidance for Current, Main, and Live, not a global unused claim.",scopeCount=__name(scope2=>scope2.referenceCount??scope2.references.length,"scopeCount");function summarizeImpact(scopes){let counts=Object.fromEntries(scopes.map(scope2=>[scope2.scope,scopeCount(scope2)])),referenceCount=scopes.reduce((total,scope2)=>total+scopeCount(scope2),0),codeReferenceCount=scopes.reduce((total,scope2)=>total+(scope2.codeReferenceCount??0),0);return{status:scopes.some(scope2=>scope2.coverage!=="complete"||scope2.state==="failed")?"uncertain":referenceCount>0?"referenced":"no-references-found",coverage:Object.fromEntries(scopes.map(scope2=>[scope2.scope,scope2.coverage])),counts,referenceCount,codeReferenceCount,scopes,otherBranches:{checked:!1,caveat:OTHER_BRANCHES_CAVEAT}}}__name(summarizeImpact,"summarizeImpact");async function loadAssetImpact(content2,projectId2,id){let events=await content2.getAssetReferenceImpact(projectId2,{assetIds:[id],scopes:["current","main","live"]}),complete=events.some(event=>event.type==="complete"),scopes=events.filter(event=>event.type==="scope").map(event=>event.data);if(!complete||scopes.length!==3)throw new Error("Asset usage scan ended before Current, Main, and Live were reported");return summarizeImpact(scopes)}__name(loadAssetImpact,"loadAssetImpact");async function assetsUsageCommand(id,options,cmd){let{ctx}=await bootstrapProjectCommand(options,cmd),content2=createContentTransferService(loadConfig(),ctx.branch);await requireOperation("assets.delete",{projectId:ctx.projectId,branch:ctx.branch});let result=await loadAssetImpact(content2,ctx.projectId,id);ui.result({command:"assets usage",data:result,render:__name(()=>renderPrettyJson3(result),"render")})}__name(assetsUsageCommand,"assetsUsageCommand");async function assetsReplaceCommand(id,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0});await requireOperation("assets.move",{projectId:ctx.projectId,branch:ctx.branch}),await requireOperation("cms.update",{projectId:ctx.projectId,branch:ctx.branch});let result=await fimo.execute("assets.replaceReferences",{projectId:ctx.projectId,branch:ctx.branch,sourceAssetId:id,replacementAssetId:options.with}),receipt={sourceAssetId:id,replacementAssetId:options.with,scope:"current",...result,sourceRemoved:!1};ui.result({command:"assets replace",data:receipt,render:__name(()=>renderPrettyJson3(receipt),"render")})}__name(assetsReplaceCommand,"assetsReplaceCommand");async function assetsRemoveCommand(id,options,cmd){if(options.permanent&&options.withoutChecking)throw new Error("--permanent cannot be combined with --without-checking");if(options.replaceWith&&options.withoutChecking)throw new Error("--replace-with and --without-checking are mutually exclusive");let{ctx,fimo}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0}),content2=createContentTransferService(loadConfig(),ctx.branch);if(await requireOperation("assets.delete",{projectId:ctx.projectId,branch:ctx.branch}),options.permanent){if(options.replaceWith&&await requireOperation("cms.update",{projectId:ctx.projectId,branch:ctx.branch}),!options.yes){assertInteractive("Pass --yes to permanently destroy the asset without a prompt.","assets remove");let confirmed=await ot2({message:options.replaceWith?`Point references everywhere at ${options.replaceWith}, then permanently destroy asset ${id} across the site? This cannot be undone.`:`Permanently destroy asset ${id} across the site? This cannot be undone.`,initialValue:!1});if(q(confirmed)||!confirmed){ui.info({command:"assets remove",message:"Cancelled."});return}}if(options.replaceWith){let replacement=await fimo.execute("assets.replaceAndDestroy",{projectId:ctx.projectId,branch:ctx.branch,id,replacementAssetId:options.replaceWith}),receipt3={assetId:id,scope:"project",permanent:!0,removed:!0,replacement:{assetId:options.replaceWith,...replacement}};ui.result({command:"assets remove",data:receipt3,render:__name(()=>renderPrettyJson3(receipt3),"render")});return}await fimo.execute("assets.destroy",{projectId:ctx.projectId,branch:ctx.branch,id});let receipt2={assetId:id,scope:"project",permanent:!0,removed:!0};ui.result({command:"assets remove",data:receipt2,render:__name(()=>renderPrettyJson3(receipt2),"render")});return}if(options.replaceWith){await requireOperation("cms.update",{projectId:ctx.projectId,branch:ctx.branch});let outcome=await fimo.execute("assets.replaceAndRemove",{projectId:ctx.projectId,branch:ctx.branch,sourceAssetId:id,replacementAssetId:options.replaceWith}),receipt2={assetId:id,scope:"environment",environment:ctx.branch,permanent:!1,removed:!1,removal:{operationId:outcome.id,expiresAt:outcome.expiresAt,undoable:outcome.undoable},replacement:{assetId:options.replaceWith,code:outcome.codeReplacement}};ui.result({command:"assets remove",data:receipt2,render:__name(()=>renderPrettyJson3(receipt2),"render")});return}let usage,usageError;if(!options.withoutChecking)try{usage=await loadAssetImpact(content2,ctx.projectId,id)}catch(error){usageError={message:error instanceof Error?error.message:String(error)}}await fimo.execute("assets.delete",{projectId:ctx.projectId,branch:ctx.branch,id});let receipt={assetId:id,scope:"environment",environment:ctx.branch,permanent:!1,removed:!0,checked:!options.withoutChecking,usage,usageError};ui.result({command:"assets remove",data:receipt,render:__name(()=>renderPrettyJson3(receipt),"render")})}__name(assetsRemoveCommand,"assetsRemoveCommand");init_esm();init_dist();init_local_runtime_env();init_config();init_sdk_transport();init_sdk_transport();init_git();init_project_context();function buildProjectPreviewUrl(webUrl,projectId2,branch){return new URL(`/app/projects/${encodeURIComponent(projectId2)}/branch/${encodeURIComponent(branch)}/preview`,webUrl).toString()}__name(buildProjectPreviewUrl,"buildProjectPreviewUrl");init_project2();function branchOverride(program2){return branchOverrideFromCommand(program2)}__name(branchOverride,"branchOverride");async function branchListCommand(cmd){let program2=cmd.parent??cmd,opts=cmd.opts(),ctx=await getProjectContext({branchOverride:branchOverride(program2)}),fimo=createCliFimoClient(loadConfig(),ctx.branch),{data:branches}=await fimo.execute("branches.list",{projectId:ctx.projectId,includeDeleted:opts.verbose,includeAgentBranches:opts.all});if(branches.length===0){ui.info({command:"branch",message:"(no Branches yet)",hint:"Run `fimo branch <name>` to create one."});return}ui.table({command:"branch",columns:[{key:"branch",label:"BRANCH"},{key:"status",label:"STATUS"},{key:"parent",label:"PARENT"}],rows:branches.map(row2=>({branch:row2.branch,status:row2.status,parent:row2.parentBranch??"\u2014"})),isActive:__name(row2=>row2.branch===ctx.branch,"isActive")})}__name(branchListCommand,"branchListCommand");async function branchCreateCommand(name,cmd){let program2=cmd.parent??cmd,opts=cmd.opts(),ctx=await getProjectContext({branchOverride:branchOverride(program2)}),fimo=createCliFimoClient(loadConfig(),ctx.branch),parentBranch=opts.from??ctx.branch;if(isProductionBranch(name)||isProductionBranch(parentBranch)){ui.error({command:"branch",code:"PROTECTED_ENV",message:`The '${PRODUCTION_BRANCH}' Branch is protected \u2014 it cannot be created or forked from.`});return}let parentValidation=await validateParentBranch(fimo,ctx.projectId,parentBranch,ctx,opts.from);if(!parentValidation.ok){ui.error({command:"branch",code:"ENV_NOT_FOUND",message:parentValidation.message});return}let{data:created}=await fimo.execute("branches.create",{projectId:ctx.projectId,name,from:parentBranch}),createdBranch=branchNameOf(created),studioUrl=buildProjectPreviewUrl(loadConfig().webUrl,ctx.projectId,createdBranch),headline=`Created Branch '${createdBranch}' (status: ${created.status})`;ui.result({command:"branch",data:{headline,details:{branch:createdBranch,parent_branch:parentBranch,env:createdBranch,parent_env:parentBranch,status:created.status,studio_url:studioUrl,dashboard_url:studioUrl}},render:__name(context=>renderBranchCreated({headline,parentBranch,studioUrl},context),"render")})}__name(branchCreateCommand,"branchCreateCommand");function renderBranchCreated(result,context){let lines=[`${context.ascii?"[ok]":"\u2713"} ${result.headline}`,` Parent: ${result.parentBranch}`];return lines.push(` Studio: ${terminalLink("Open in Studio",result.studioUrl,context.hyperlinks)}`),lines.join(`
|
|
2350
2350
|
`)}__name(renderBranchCreated,"renderBranchCreated");async function branchDeleteCommand(name,cmd){let program2=cmd.parent??cmd,ctx=await getProjectContext({branchOverride:branchOverride(program2)}),fimo=createCliFimoClient(loadConfig(),ctx.branch);if(name===DEFAULT_BRANCH){ui.error({command:"branch",code:"PROTECTED_ENV",message:`Refusing to delete the default Branch '${DEFAULT_BRANCH}'.`});return}if(isProductionBranch(name)){ui.error({command:"branch",code:"PROTECTED_ENV",message:`The '${PRODUCTION_BRANCH}' Branch is protected and cannot be deleted.`});return}await fimo.execute("branches.delete",{projectId:ctx.projectId,branch:name}),ui.ok({command:"branch",headline:`Deleted Branch '${name}'`,details:{branch:name,env:name}})}__name(branchDeleteCommand,"branchDeleteCommand");async function checkoutCommand(name,_options,cmd){let program2=cmd.parent??cmd,opts=cmd.opts(),ctx=await getProjectContext({branchOverride:branchOverride(program2)}),fimo=createCliFimoClient(loadConfig(),ctx.branch),cwd=resolveProjectCwd();if(isProductionBranch(name)){ui.error({command:"checkout",code:"PROTECTED_ENV",message:`The '${PRODUCTION_BRANCH}' Branch is protected and cannot be checked out.`});return}let created=!1;if(opts.create){let parentBranch=opts.from??ctx.branch,parentValidation=await validateParentBranch(fimo,ctx.projectId,parentBranch,ctx,opts.from);if(!parentValidation.ok){ui.error({command:"checkout",code:"ENV_NOT_FOUND",message:parentValidation.message});return}await fimo.execute("branches.create",{projectId:ctx.projectId,name,from:parentBranch}),created=!0}else await fimo.execute("branches.get",{projectId:ctx.projectId,branch:name});let gitSwitched=!1;if(await isGitRepo(cwd))try{await runGit(["checkout",name],cwd),gitSwitched=!0}catch(err){let stderr=err instanceof Error&&"stderr"in err?String(err.stderr):"";if(/did not match any file|pathspec/i.test(stderr))await runGit(["checkout","-b",name],cwd),gitSwitched=!0;else throw err}let runtime=resolveLocalRuntimeEnv({cwd});ui.ok({command:"checkout",headline:`Now on Branch '${name}'`,details:{branch:name,created,git_switched:gitSwitched,parent_branch:opts.from??null,env:name,parent_env:opts.from??null,tenant_api_url:runtime?.tenantApiUrl??null},warnings:describeRuntimeWarnings(cwd,runtime)})}__name(checkoutCommand,"checkoutCommand");function describeRuntimeWarnings(cwd,runtime){if(!runtime)return["This checkout cannot derive its tenant API URL \u2014 the project link predates that. Run `fimo link` once to record it; until then the app keeps whatever runtime env values it already has."];let stale=findStaleFimoOverride({...readLocalEnvFiles(cwd),...process.env},runtime);return stale?[staleOverrideMessage(stale)]:void 0}__name(describeRuntimeWarnings,"describeRuntimeWarnings");async function pullCommand(_options,cmd){let program2=cmd.parent??cmd,opts=cmd.opts(),ctx=await getProjectContext({branchOverride:branchOverride(program2)}),fimo=createCliFimoClient(loadConfig(),ctx.branch),{branch,conflicts}=await fimo.execute("branches.sync",{projectId:ctx.projectId,branch:ctx.branch,from:opts.from}),warnings=conflicts>0?[`Resolved ${conflicts} conflict(s) (parent-wins for now \u2014 M12 conflict UI will add per-row picks)`]:void 0,synced=branchNameOf(branch);ui.ok({command:"pull",headline:`Branch '${synced}' synced`,details:{branch:synced,env:synced,from:opts.from??null,conflicts},warnings})}__name(pullCommand,"pullCommand");async function validateParentBranch(fimo,projectId2,parentBranch,ctx,fromFlag){try{return await fimo.execute("branches.get",{projectId:projectId2,branch:parentBranch}),{ok:!0}}catch(err){if(!(err instanceof ApiRequestError)||err.status!==404)throw err;let origin=fromFlag?`the \`--from ${fromFlag}\` flag`:ctx.source==="branch"?`your active Branch (\`${ctx.branch}\`)`:ctx.source==="flag"?`the Branch override flag (\`${ctx.branch}\`)`:ctx.source==="tag"?`the release tag \`${ctx.branch}\``:`the site default (\`${ctx.branch}\`)`,fixes=[];return fromFlag?fixes.push(`pass an existing Branch via \`--from <branch>\` (try \`--from ${DEFAULT_BRANCH}\`)`):ctx.source==="branch"?(fixes.push(`switch Branches first: \`fimo checkout ${DEFAULT_BRANCH}\``),fixes.push(`or pass \`--from ${DEFAULT_BRANCH}\` to override for this command`)):ctx.source==="flag"?fixes.push(`use a different \`--branch <existing>\` (try \`--branch ${DEFAULT_BRANCH}\`)`):fixes.push(`pass \`--from ${DEFAULT_BRANCH}\` to fork from main`),{ok:!1,message:`Cannot create Branch: parent Branch '${parentBranch}' doesn't exist on this site. The CLI resolved the parent from ${origin}. Fix: ${fixes.join(", or ")}.`}}}__name(validateParentBranch,"validateParentBranch");init_dist();init_config();init_config();init_sdk_transport();function createIntegrationService(cfg=loadConfig()){let transport=createCliHttpTransport(cfg),projectPath2=__name((projectId2,integrationKey)=>`/api/management/projects/${projectId2}/integrations${integrationKey?`/${encodeURIComponent(integrationKey)}`:""}`,"projectPath");return{async list(projectId2){return(await transport.request(projectPath2(projectId2))).data},async addMcp(input){return(await transport.request(projectPath2(input.projectId),{method:"POST",body:JSON.stringify(input.request)})).data},async getInfo(projectId2,integrationKey){return(await transport.request(`${projectPath2(projectId2,integrationKey)}/info`)).data},async getStatus(projectId2,integrationKey){return(await transport.request(`${projectPath2(projectId2,integrationKey)}/status`)).data},async connect(input){return(await transport.request(`${projectPath2(input.projectId,input.integrationKey)}/connect`,{method:"POST",body:JSON.stringify(input.request)})).data},async enable(input){let payload={...input.authMode?{authMode:input.authMode}:{},...input.connectionAlias?{connectionAlias:input.connectionAlias}:{}};return(await transport.request(projectPath2(input.projectId,input.integrationKey),{method:"PUT",body:JSON.stringify(payload)})).data},async connectOrganizationWithToken(input){return(await transport.request(`/api/management/organizations/${encodeURIComponent(input.organizationId)}/integrations/${encodeURIComponent(input.integrationKey)}/connect`,{method:"POST",body:JSON.stringify({...input.alias?{alias:input.alias}:{},token:input.token})})).data},async connectIntegrationKey(input){await transport.request(`/api/management/organizations/${encodeURIComponent(input.organizationId)}/integrations/${encodeURIComponent(input.integrationId)}/key`,{method:"POST",body:JSON.stringify({key:input.key,...input.projectId?{projectId:input.projectId}:{}})})},async switchAuth(input){return(await transport.request(`${projectPath2(input.projectId,input.integrationKey)}/auth`,{method:"PATCH",body:JSON.stringify({authMode:input.authMode})})).data},async disable(projectId2,integrationKey){await transport.request(projectPath2(projectId2,integrationKey),{method:"DELETE"})},async deleteMcp(projectId2,integrationKey){await transport.request(`${projectPath2(projectId2,integrationKey)}/server`,{method:"DELETE"})},async runTool(input){return(await transport.request(`${projectPath2(input.projectId,input.integrationKey)}/run`,{method:"POST",body:JSON.stringify(input.request)})).data},async bindChannel(projectId2,request){return(await transport.request(`/api/management/projects/${projectId2}/channels/bind`,{method:"POST",body:JSON.stringify(request)})).data}}}__name(createIntegrationService,"createIntegrationService");function createModelCatalogService(cfg=loadConfig()){let transport=createCliHttpTransport(cfg);return{async list(projectId2,query={}){let params=new URLSearchParams;query.modality&¶ms.set("modality",query.modality);for(let tag of query.tag??[])params.append("tag",tag);query.q&¶ms.set("q",query.q),query.category&¶ms.set("category",query.category);let search=params.toString();return(await transport.request(`/api/management/projects/${projectId2}/integrations/fal/models${search?`?${search}`:""}`)).data},async get(projectId2,key){try{return(await transport.request(`/api/management/projects/${projectId2}/integrations/fal/models/${key}`)).data}catch(error){if(error instanceof ApiRequestError&&error.status===404)return null;throw error}}}}__name(createModelCatalogService,"createModelCatalogService");init_project2();function registerChannelsCommands(program2){program2.command("channels").description("Manage site channel bindings").addHelpText("after",`
|
|
@@ -2415,7 +2415,7 @@ return __eta.res;
|
|
|
2415
2415
|
`)}}return returnStr}__name(compileBody,"compileBody");function trimWS(str,config,wsLeft,wsRight){let leftTrim,rightTrim;return Array.isArray(config.autoTrim)?(leftTrim=config.autoTrim[1],rightTrim=config.autoTrim[0]):leftTrim=rightTrim=config.autoTrim,(wsLeft||wsLeft===!1)&&(leftTrim=wsLeft),(wsRight||wsRight===!1)&&(rightTrim=wsRight),!rightTrim&&!leftTrim?str:leftTrim==="slurp"&&rightTrim==="slurp"?str.trim():(leftTrim==="_"||leftTrim==="slurp"?str=str.trimStart():(leftTrim==="-"||leftTrim==="nl")&&(str=str.replace(/^(?:\r\n|\n|\r)/,"")),rightTrim==="_"||rightTrim==="slurp"?str=str.trimEnd():(rightTrim==="-"||rightTrim==="nl")&&(str=str.replace(/(?:\r\n|\n|\r)$/,"")),str)}__name(trimWS,"trimWS");var escMap={"&":"&","<":"<",">":">",'"':""","'":"'"};function replaceChar(s){return escMap[s]}__name(replaceChar,"replaceChar");function XMLEscape(str){let newStr=String(str);return/[&<>"']/.test(newStr)?newStr.replace(/[&<>"']/g,replaceChar):newStr}__name(XMLEscape,"XMLEscape");var defaultConfig2={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,debug:!1,escapeFunction:XMLEscape,filterFunction:__name(val=>String(val),"filterFunction"),functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},templateLitReg=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,singleQuoteReg=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,doubleQuoteReg=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;function escapeRegExp(string){return string.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}__name(escapeRegExp,"escapeRegExp");function getLineNo(str,index){return str.slice(0,index).split(`
|
|
2416
2416
|
`).length}__name(getLineNo,"getLineNo");function parse3(str){let config=this.config,buffer=[],trimLeftOfNextStr=!1,lastIndex=0,parseOptions=config.parse;if(config.plugins)for(let i=0;i<config.plugins.length;i++){let plugin=config.plugins[i];plugin.processTemplate&&(str=plugin.processTemplate(str,config))}config.rmWhitespace&&(str=str.replace(/[\r\n]+/g,`
|
|
2417
2417
|
`).replace(/^\s+|\s+$/gm,"")),templateLitReg.lastIndex=0,singleQuoteReg.lastIndex=0,doubleQuoteReg.lastIndex=0;function pushString(strng,shouldTrimRightOfString){strng&&(strng=trimWS(strng,config,trimLeftOfNextStr,shouldTrimRightOfString),strng&&(strng=strng.replace(/\\|'/g,"\\$&").replace(/\r\n|\n|\r/g,"\\n"),buffer.push(strng)))}__name(pushString,"pushString");let prefixes=[parseOptions.exec,parseOptions.interpolate,parseOptions.raw].reduce(function(accumulator,prefix){return accumulator&&prefix?accumulator+"|"+escapeRegExp(prefix):prefix?escapeRegExp(prefix):accumulator},""),parseOpenReg=new RegExp(escapeRegExp(config.tags[0])+"(-|_)?\\s*("+prefixes+")?\\s*","g"),parseCloseReg=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+escapeRegExp(config.tags[1])+")","g"),m;for(;m=parseOpenReg.exec(str);){let precedingString=str.slice(lastIndex,m.index);lastIndex=m[0].length+m.index;let wsLeft=m[1],prefix=m[2]||"";pushString(precedingString,wsLeft),parseCloseReg.lastIndex=lastIndex;let closeTag,currentObj=!1;for(;closeTag=parseCloseReg.exec(str);)if(closeTag[1]){let content2=str.slice(lastIndex,closeTag.index);parseOpenReg.lastIndex=lastIndex=parseCloseReg.lastIndex,trimLeftOfNextStr=closeTag[2],currentObj={t:prefix===parseOptions.exec?"e":prefix===parseOptions.raw?"r":prefix===parseOptions.interpolate?"i":"",val:content2};break}else{let char=closeTag[0];if(char==="/*"){let commentCloseInd=str.indexOf("*/",parseCloseReg.lastIndex);commentCloseInd===-1&&ParseErr("unclosed comment",str,closeTag.index),parseCloseReg.lastIndex=commentCloseInd}else char==="'"?(singleQuoteReg.lastIndex=closeTag.index,singleQuoteReg.exec(str)?parseCloseReg.lastIndex=singleQuoteReg.lastIndex:ParseErr("unclosed string",str,closeTag.index)):char==='"'?(doubleQuoteReg.lastIndex=closeTag.index,doubleQuoteReg.exec(str)?parseCloseReg.lastIndex=doubleQuoteReg.lastIndex:ParseErr("unclosed string",str,closeTag.index)):char==="`"&&(templateLitReg.lastIndex=closeTag.index,templateLitReg.exec(str)?parseCloseReg.lastIndex=templateLitReg.lastIndex:ParseErr("unclosed string",str,closeTag.index))}currentObj?(config.debug&&(currentObj.lineNo=getLineNo(str,m.index)),buffer.push(currentObj)):ParseErr("unclosed tag",str,m.index)}if(pushString(str.slice(lastIndex,str.length),!1),config.plugins)for(let i=0;i<config.plugins.length;i++){let plugin=config.plugins[i];plugin.processAST&&(buffer=plugin.processAST(buffer,config))}return buffer}__name(parse3,"parse");function handleCache(template,options){let templateStore=options&&options.async?this.templatesAsync:this.templatesSync;if(this.resolvePath&&this.readFile&&!template.startsWith("@")){let templatePath2=options.filepath,cachedTemplate=templateStore.get(templatePath2);if(this.config.cache&&cachedTemplate)return cachedTemplate;{let templateString=this.readFile(templatePath2),templateFn=this.compile(templateString,options);return this.config.cache&&templateStore.define(templatePath2,templateFn),templateFn}}else{let cachedTemplate=templateStore.get(template);if(cachedTemplate)return cachedTemplate;throw new EtaNameResolutionError("Failed to get template '"+template+"'")}}__name(handleCache,"handleCache");function render(template,data,meta){let templateFn,options={...meta,async:!1};return typeof template=="string"?(this.resolvePath&&this.readFile&&!template.startsWith("@")&&(options.filepath=this.resolvePath(template,options)),templateFn=handleCache.call(this,template,options)):templateFn=template,templateFn.call(this,data,options)}__name(render,"render");function renderAsync(template,data,meta){let templateFn,options={...meta,async:!0};typeof template=="string"?(this.resolvePath&&this.readFile&&!template.startsWith("@")&&(options.filepath=this.resolvePath(template,options)),templateFn=handleCache.call(this,template,options)):templateFn=template;let res=templateFn.call(this,data,options);return Promise.resolve(res)}__name(renderAsync,"renderAsync");function renderString(template,data){let templateFn=this.compile(template,{async:!1});return render.call(this,templateFn,data)}__name(renderString,"renderString");function renderStringAsync(template,data){let templateFn=this.compile(template,{async:!0});return renderAsync.call(this,templateFn,data)}__name(renderStringAsync,"renderStringAsync");var Eta$1=class{static{__name(this,"Eta$1")}constructor(customConfig){this.config=void 0,this.RuntimeErr=RuntimeErr,this.compile=compile,this.compileToString=compileToString,this.compileBody=compileBody,this.parse=parse3,this.render=render,this.renderAsync=renderAsync,this.renderString=renderString,this.renderStringAsync=renderStringAsync,this.filepathCache={},this.templatesSync=new Cacher({}),this.templatesAsync=new Cacher({}),this.resolvePath=null,this.readFile=null,customConfig?this.config={...defaultConfig2,...customConfig}:this.config={...defaultConfig2}}configure(customConfig){this.config={...this.config,...customConfig}}withConfig(customConfig){return{...this,config:{...this.config,...customConfig}}}loadTemplate(name,template,options){if(typeof template=="string")(options&&options.async?this.templatesAsync:this.templatesSync).define(name,this.compile(template,options));else{let templates=this.templatesSync;(template.constructor.name==="AsyncFunction"||options&&options.async)&&(templates=this.templatesAsync),templates.define(name,template)}}};function readFile2(path50){let res="";try{res=fs19.readFileSync(path50,"utf8")}catch(err){throw err?.code==="ENOENT"?new EtaFileResolutionError(`Could not find template: ${path50}`):err}return res}__name(readFile2,"readFile");function resolvePath2(templatePath2,options){let resolvedFilePath="",views=this.config.views;if(!views)throw new EtaFileResolutionError("Views directory is not defined");let baseFilePath=options&&options.filepath,defaultExtension=this.config.defaultExtension===void 0?".eta":this.config.defaultExtension,cacheIndex=JSON.stringify({filename:baseFilePath,path:templatePath2,views:this.config.views});if(templatePath2+=path16.extname(templatePath2)?"":defaultExtension,baseFilePath){if(this.config.cacheFilepaths&&this.filepathCache[cacheIndex])return this.filepathCache[cacheIndex];let absolutePathTest=absolutePathRegExp.exec(templatePath2);if(absolutePathTest&&absolutePathTest.length){let formattedPath=templatePath2.replace(/^\/*|^\\*/,"");resolvedFilePath=path16.join(views,formattedPath)}else resolvedFilePath=path16.join(path16.dirname(baseFilePath),templatePath2)}else resolvedFilePath=path16.join(views,templatePath2);if(dirIsChild(views,resolvedFilePath))return baseFilePath&&this.config.cacheFilepaths&&(this.filepathCache[cacheIndex]=resolvedFilePath),resolvedFilePath;throw new EtaFileResolutionError(`Template '${templatePath2}' is not in the views directory`)}__name(resolvePath2,"resolvePath");function dirIsChild(parent,dir){let relative3=path16.relative(parent,dir);return relative3&&!relative3.startsWith("..")&&!path16.isAbsolute(relative3)}__name(dirIsChild,"dirIsChild");var absolutePathRegExp=/^\\|^\//,Eta=class extends Eta$1{static{__name(this,"Eta")}constructor(...args){super(...args),this.readFile=readFile2,this.resolvePath=resolvePath2}};import{existsSync as existsSync4}from"node:fs";import{dirname as dirname3,resolve as resolve3}from"node:path";import{fileURLToPath as fileURLToPath5}from"node:url";var HERE=dirname3(fileURLToPath5(import.meta.url)),IS_BUNDLED=existsSync4(resolve3(HERE,"bundle.json")),PACKAGE_ROOT2=IS_BUNDLED?resolve3(HERE,"..",".."):resolve3(HERE,"..","..","..");function assetPath(...segments){return resolve3(PACKAGE_ROOT2,"assets",...segments)}__name(assetPath,"assetPath");var FORMS_REL="src/forms";function getFormFiles(formsDir){return existsSync5(formsDir)?readdirSync2(formsDir).filter(f=>f.endsWith(".json")).map(f=>join5(formsDir,f)):[]}__name(getFormFiles,"getFormFiles");function readForm(path50){try{return JSON.parse(readFileSync4(path50,"utf-8"))}catch{return null}}__name(readForm,"readForm");function generateIndexContent(forms3){let lines=["// AUTO-GENERATED \u26A0\uFE0F \u2014 do not edit by hand",""];for(let form of forms3){let pascal=pascalCase(form.name),varName=pascal.charAt(0).toLowerCase()+pascal.slice(1);lines.push(`export { ${pascal}Schema, parse${pascal}FormData, submit${pascal}, FORM_ID as ${varName}FormId } from "./${form.name}";`),lines.push(`export type { ${pascal}Data } from "./${form.name}";`)}return lines.push(""),lines.join(`
|
|
2418
|
-
`)}__name(generateIndexContent,"generateIndexContent");function frameworkFormsTarget(framework){return framework==="nextjs"?"next":framework==="astro"?"astro":framework==="sveltekit"?"sveltekit":null}__name(frameworkFormsTarget,"frameworkFormsTarget");function hasPackageExport(cwd,entry){let slash=entry.indexOf("/"),name=slash===-1?entry:entry.slice(0,slash),subpath=slash===-1?".":`.${entry.slice(slash)}`,packagePath=join5(cwd,"node_modules",name,"package.json");if(!existsSync5(packagePath))return!1;try{let packageJson=JSON.parse(readFileSync4(packagePath,"utf-8"));return!!(packageJson.exports&&Object.prototype.hasOwnProperty.call(packageJson.exports,subpath))}catch{return!1}}__name(hasPackageExport,"hasPackageExport");function requiredFormEntries(target){return target==="next"?["fimo/forms","fimo-next","fimo-next/client"]:target==="sveltekit"?["fimo/forms","fimo-sveltekit"]:["fimo/forms",`fimo/${target}`]}__name(requiredFormEntries,"requiredFormEntries");function assertFrameworkRuntime(cwd,target){let missing=requiredFormEntries(target).filter(entry=>!hasPackageExport(cwd,entry));if(missing.length!==0)throw new Error(`Cannot generate ${target} form clients because the project cannot resolve ${missing.join(", ")}. Install the current Fimo packages, then run \`fimo validate\` again. No generated files were changed.`)}__name(assertFrameworkRuntime,"assertFrameworkRuntime");function generatedFormFiles(target){return target==="next"?[{suffix:".ts",runtimeImport:"fimo-next"},{suffix:".client.ts",runtimeImport:"fimo-next/client",clientDirective:"'use client';"}]:target==="astro"?[{suffix:".ts",runtimeImport:"fimo/astro"}]:target==="sveltekit"?[{suffix:".ts",runtimeImport:"fimo-sveltekit"}]:[]}__name(generatedFormFiles,"generatedFormFiles");function syncForms(options={}){let cwd=options.cwd??process.cwd(),log=__name(msg=>{options.verbose!==!1&&console.log(msg)},"log"),formsDir=resolve4(cwd,FORMS_REL),formFiles=getFormFiles(formsDir),target=frameworkFormsTarget(options.framework);target&&formFiles.length>0&&assertFrameworkRuntime(cwd,target);let legacyTemplateSource=readFileSync4(assetPath("content-templates","forms","react.eta"),"utf-8"),frameworkTemplateSource=target?readFileSync4(assetPath("content-templates","forms","framework.eta"),"utf-8"):null,outputFiles=generatedFormFiles(target),eta=new Eta({views:void 0,useWith:!0,varName:"it",autoEscape:!1}),expectedTsFiles=new Set,allForms=[],created=0,updated=0,deleted=0;for(let jsonPath of formFiles){let form=readForm(jsonPath);if(!form){console.error(`Failed to parse form: ${jsonPath}`);continue}form.name||(form.name=jsonPath.split("/").pop().replace(/\.json$/,"")),allForms.push(form);let formModel={...form,pascal:pascalCase(form.name)},files2=target?outputFiles:[{suffix:".ts",runtimeImport:"",clientDirective:""}];for(let output of files2){let tsPath=join5(formsDir,`${form.name}${output.suffix}`);expectedTsFiles.add(tsPath);try{let content2=eta.renderString(target?frameworkTemplateSource:legacyTemplateSource,{form:{...formModel,...output}}),dir=dirname4(tsPath);if(existsSync5(dir)||mkdirSync2(dir,{recursive:!0}),!existsSync5(tsPath)){writeFileSync2(tsPath,content2,"utf-8"),created++,log(`Created: ${tsPath}`);continue}readFileSync4(tsPath,"utf-8")!==content2&&(writeFileSync2(tsPath,content2,"utf-8"),updated++,log(`Updated: ${tsPath}`))}catch(error){console.error(`Failed to generate ${tsPath}:`,error)}}}if(allForms.length>0){let indexPath=join5(formsDir,"index.ts");expectedTsFiles.add(indexPath);let indexContent=generateIndexContent(allForms);(!existsSync5(indexPath)||readFileSync4(indexPath,"utf-8")!==indexContent)&&(writeFileSync2(indexPath,indexContent,"utf-8"),log(`Updated: ${indexPath}`))}if(existsSync5(formsDir)){let allTsFiles=readdirSync2(formsDir).filter(f=>f.endsWith(".ts")).map(f=>join5(formsDir,f));for(let tsFile of allTsFiles)if(!expectedTsFiles.has(tsFile))try{unlinkSync(tsFile),deleted++,log(`Deleted orphaned: ${tsFile}`)}catch(error){console.error(`Failed to delete orphaned ${tsFile}:`,error)}}return(created>0||updated>0||deleted>0)&&options.verbose!==!1&&log(`Sync forms: ${created} created, ${updated} updated, ${deleted} deleted`),{created,updated,deleted}}__name(syncForms,"syncForms");import{existsSync as existsSync6,mkdirSync as mkdirSync3,readFileSync as readFileSync5,readdirSync as readdirSync3,unlinkSync as unlinkSync2,writeFileSync as writeFileSync3}from"node:fs";import{basename,dirname as dirname5,join as join6,resolve as resolve5}from"node:path";import{z as z137}from"zod";var SCHEMAS_REL="src/schemas",GENERATED_REGISTRY_MARKER="// AUTO-GENERATED by `fimo` from src/schemas/*.json - DO NOT EDIT.",MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION="0.7.0",MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION="0.21.0-0",CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND="npm install fimo@latest",SCHEMA_DEFINITION_SCHEMA=z137.object({uid:z137.string().min(1),name:z137.string().min(1).optional(),isSingleton:z137.boolean().optional(),i18n:z137.object({enabled:z137.boolean().optional()}).optional(),groups:z137.array(z137.object({id:z137.string().min(1),label:z137.string().min(1),default:z137.boolean().optional()}).strict()).optional(),fields:z137.record(z137.string(),z137.unknown()).optional()}),RUNTIME_TYPE_IMPORT_ORDER=["Fields","FimoBoolean","FimoMedia","FimoPolymorphicReference","FimoReference","FimoRichText","FimoRichTextContent","FimoString","Populate","PopulatedResult","ProjectedWithPopulate","Query","Sort","Where","WithReferences"],CONTENT_TEMPLATE_PATHS={types:{current:"shared/types.eta",legacy:"types-template.eta"},sharedServer:{current:"shared/server.eta"},reactClient:{current:"react/client.eta",legacy:"hooks-template.eta"},nextServer:{current:"next/server.eta"},nextClient:{current:"next/client.eta"},svelteKitContent:{current:"sveltekit/content.eta"}};function getSchemaFiles(schemasDir){return existsSync6(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".json")).sort().map(f=>join6(schemasDir,f)):[]}__name(getSchemaFiles,"getSchemaFiles");function getGeneratedFiles(schemasDir){return existsSync6(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".ts")&&f!=="index.ts").map(f=>join6(schemasDir,f)):[]}__name(getGeneratedFiles,"getGeneratedFiles");function parseVersion(version){let match=/^(\d+)\.(\d+)\.(\d+)(?:-([^+]+))?(?:\+.*)?$/.exec(version);return match?{parts:[Number(match[1]),Number(match[2]),Number(match[3])],prerelease:match[4]!==void 0}:null}__name(parseVersion,"parseVersion");function isVersionAtLeast(version,minimum){let parsed=parseVersion(version),parsedMinimum=parseVersion(minimum);if(!parsed||!parsedMinimum)return!1;for(let index=0;index<parsed.parts.length;index++)if(parsed.parts[index]!==parsedMinimum.parts[index])return parsed.parts[index]>parsedMinimum.parts[index];return!parsed.prerelease||parsedMinimum.prerelease}__name(isVersionAtLeast,"isVersionAtLeast");function packageExportsSubpath(packageJson,subpath){if(!packageJson||typeof packageJson!="object"||Array.isArray(packageJson))return!1;let exports2=packageJson.exports;return!!(exports2&&typeof exports2=="object"&&!Array.isArray(exports2)&&Object.prototype.hasOwnProperty.call(exports2,subpath))}__name(packageExportsSubpath,"packageExportsSubpath");function readProjectPackage(cwd,name){let packagePath=join6(cwd,"node_modules",name,"package.json");if(!existsSync6(packagePath))return null;try{return JSON.parse(readFileSync5(packagePath,"utf-8"))}catch{return null}}__name(readProjectPackage,"readProjectPackage");function resolveProjectRuntime(cwd){let packagePath=join6(cwd,"node_modules","fimo","package.json");if(!existsSync6(packagePath))throw new Error(`Cannot generate schema clients because the project-local fimo package could not be resolved from ${cwd}. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);let packageJson;try{packageJson=JSON.parse(readFileSync5(packagePath,"utf-8"))}catch{packageJson=null}let version=packageJson&&typeof packageJson=="object"&&!Array.isArray(packageJson)?packageJson.version:null;if(typeof version!="string"||!parseVersion(version))throw new Error(`Cannot generate schema clients with project-local fimo@${typeof version=="string"?version:"unknown"}. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);return{packageRoot:dirname5(packagePath),version,providesLegacyReactRuntime:packageExportsSubpath(packageJson,"./ui"),providesReactRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-react"),"."),providesLegacyNextRuntime:packageExportsSubpath(packageJson,"./next")&&packageExportsSubpath(packageJson,"./next/client"),providesNextRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),".")&&packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),"./client"),providesAstroRuntime:packageExportsSubpath(packageJson,"./astro"),providesSvelteKitRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-sveltekit"),".")}}__name(resolveProjectRuntime,"resolveProjectRuntime");function contentRuntimeImportFor(framework,runtime){return framework==="nextjs"?isVersionAtLeast(runtime.version,MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION)?"fimo-next":"fimo/next":framework==="astro"?"fimo/astro":framework==="sveltekit"||framework==="sveltekit-1"?"fimo-sveltekit":isVersionAtLeast(runtime.version,MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION)?"fimo-react":"fimo/ui"}__name(contentRuntimeImportFor,"contentRuntimeImportFor");function templatePath(runtime,templateName){let template=CONTENT_TEMPLATE_PATHS[templateName];if(runtime&&!isVersionAtLeast(runtime.version,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION)){let legacyPath="legacy"in template?template.legacy:template.current;return join6(runtime.packageRoot,"assets","content-templates",legacyPath)}return assetPath("content-templates",template.current)}__name(templatePath,"templatePath");function resolveSchemaGenerationTarget(runtimeImport,runtime){if(runtimeImport==="fimo/ui"&&isVersionAtLeast(runtime.version,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION)&&!runtime.providesLegacyReactRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the legacy fimo/ui export required by this React project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo/ui")return"react";if(runtimeImport==="fimo-react"&&!runtime.providesReactRuntime)throw new Error(`Cannot generate schema clients because the project does not provide the fimo-react package required by this React project. Install fimo-react@${runtime.version} alongside fimo, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-react")return"react";if(runtimeImport==="fimo/next"&&!runtime.providesLegacyNextRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the legacy fimo/next and fimo/next/client exports required by this Next.js project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-next"&&!runtime.providesNextRuntime)throw new Error(`Cannot generate schema clients because the project does not provide the fimo-next and fimo-next/client exports required by this Next.js project. Install fimo-next@${runtime.version} alongside fimo, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo/astro"&&!runtime.providesAstroRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the fimo/astro export required by this Astro project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-sveltekit"&&!runtime.providesSvelteKitRuntime)throw new Error(`Cannot generate schema clients because this SvelteKit project has no project-local fimo-sveltekit package. Run \`npm install fimo-sveltekit@${runtime.version}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);return runtimeImport==="fimo/next"||runtimeImport==="fimo-next"?"next":runtimeImport==="fimo/astro"?"astro":"sveltekit"}__name(resolveSchemaGenerationTarget,"resolveSchemaGenerationTarget");function templatesForTarget(target,runtime,runtimeImport){return target==="next"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport},{suffix:".ts",path:templatePath(runtime,"nextServer"),runtimeImport},{suffix:".client.ts",path:templatePath(runtime,"nextClient"),runtimeImport:`${runtimeImport}/client`}]:target==="astro"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo/astro"},{suffix:".ts",path:templatePath(runtime,"sharedServer"),runtimeImport:"fimo/astro"}]:target==="sveltekit"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo-sveltekit"},{suffix:".ts",path:templatePath(runtime,"svelteKitContent"),runtimeImport:"fimo-sveltekit"}]:[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport},{suffix:".ts",path:templatePath(runtime,"reactClient"),runtimeImport}]}__name(templatesForTarget,"templatesForTarget");function loadSchemas(schemaFiles){let errors=[],schemas3=[],outputOwners=new Map,registryOwners=new Map;for(let path50 of schemaFiles){let fileUid=basename(path50,".json"),pascal=pascalCase(fileUid),existingOwner=outputOwners.get(pascal);existingOwner&&existingOwner!==fileUid?errors.push(`${basename(path50)} and ${existingOwner}.json both generate ${pascal}.ts. Rename one schema to keep generated module names unique.`):outputOwners.set(pascal,fileUid);let parsed;try{parsed=JSON.parse(readFileSync5(path50,"utf-8"))}catch(error){errors.push(`${basename(path50)} is invalid JSON: ${error instanceof Error?error.message:String(error)}`);continue}if(typeof parsed!="object"||parsed===null||Array.isArray(parsed)){errors.push(`${basename(path50)} must contain a JSON object.`);continue}let candidate=parsed;if(typeof candidate.uid!="string"||candidate.uid.length===0){errors.push(`${basename(path50)} is missing "uid". Set it to "${fileUid}".`);continue}if(candidate.uid!==fileUid){errors.push(`${basename(path50)} declares uid "${candidate.uid}". It must match the file name "${fileUid}".`);continue}let validation=SCHEMA_DEFINITION_SCHEMA.safeParse(candidate);if(!validation.success){let details=validation.error.issues.map(issue2=>`${issue2.path.join(".")||"schema"}: ${issue2.message}`).join("; ");errors.push(`${basename(path50)} has an invalid schema shape: ${details}`);continue}let registryKey=camelCase(validation.data.name??validation.data.uid),existingRegistryOwner=registryOwners.get(registryKey);if(existingRegistryOwner&&existingRegistryOwner!==fileUid){errors.push(`${basename(path50)} and ${existingRegistryOwner}.json both generate the content registry key "${registryKey}". Rename one schema display name to keep generated registry keys unique.`);continue}registryOwners.set(registryKey,fileUid),schemas3.push({pascal,registryKey,schema:validation.data})}if(errors.length>0)throw new Error(`Cannot generate schema clients:
|
|
2418
|
+
`)}__name(generateIndexContent,"generateIndexContent");function frameworkFormsTarget(framework){return framework==="nextjs"?"next":framework==="astro"?"astro":framework==="sveltekit"?"sveltekit":null}__name(frameworkFormsTarget,"frameworkFormsTarget");function hasPackageExport(cwd,entry){let slash=entry.indexOf("/"),name=slash===-1?entry:entry.slice(0,slash),subpath=slash===-1?".":`.${entry.slice(slash)}`,packagePath=join5(cwd,"node_modules",name,"package.json");if(!existsSync5(packagePath))return!1;try{let packageJson=JSON.parse(readFileSync4(packagePath,"utf-8"));return!!(packageJson.exports&&Object.prototype.hasOwnProperty.call(packageJson.exports,subpath))}catch{return!1}}__name(hasPackageExport,"hasPackageExport");function requiredFormEntries(target){return target==="next"?["fimo/forms","fimo-next","fimo-next/client"]:target==="sveltekit"?["fimo/forms","fimo-sveltekit"]:["fimo/forms",`fimo/${target}`]}__name(requiredFormEntries,"requiredFormEntries");function assertFrameworkRuntime(cwd,target){let missing=requiredFormEntries(target).filter(entry=>!hasPackageExport(cwd,entry));if(missing.length!==0)throw new Error(`Cannot generate ${target} form clients because the project cannot resolve ${missing.join(", ")}. Install the current Fimo packages, then run \`fimo validate\` again. No generated files were changed.`)}__name(assertFrameworkRuntime,"assertFrameworkRuntime");function generatedFormFiles(target){return target==="next"?[{suffix:".ts",runtimeImport:"fimo-next"},{suffix:".client.ts",runtimeImport:"fimo-next/client",clientDirective:"'use client';"}]:target==="astro"?[{suffix:".ts",runtimeImport:"fimo/astro"}]:target==="sveltekit"?[{suffix:".ts",runtimeImport:"fimo-sveltekit"}]:[]}__name(generatedFormFiles,"generatedFormFiles");function syncForms(options={}){let cwd=options.cwd??process.cwd(),log=__name(msg=>{options.verbose!==!1&&console.log(msg)},"log"),formsDir=resolve4(cwd,FORMS_REL),formFiles=getFormFiles(formsDir),target=frameworkFormsTarget(options.framework);target&&formFiles.length>0&&assertFrameworkRuntime(cwd,target);let legacyTemplateSource=readFileSync4(assetPath("content-templates","forms","react.eta"),"utf-8"),frameworkTemplateSource=target?readFileSync4(assetPath("content-templates","forms","framework.eta"),"utf-8"):null,outputFiles=generatedFormFiles(target),eta=new Eta({views:void 0,useWith:!0,varName:"it",autoEscape:!1}),expectedTsFiles=new Set,allForms=[],created=0,updated=0,deleted=0;for(let jsonPath of formFiles){let form=readForm(jsonPath);if(!form){console.error(`Failed to parse form: ${jsonPath}`);continue}form.name||(form.name=jsonPath.split("/").pop().replace(/\.json$/,"")),allForms.push(form);let formModel={...form,pascal:pascalCase(form.name)},files2=target?outputFiles:[{suffix:".ts",runtimeImport:"",clientDirective:""}];for(let output of files2){let tsPath=join5(formsDir,`${form.name}${output.suffix}`);expectedTsFiles.add(tsPath);try{let content2=eta.renderString(target?frameworkTemplateSource:legacyTemplateSource,{form:{...formModel,...output}}),dir=dirname4(tsPath);if(existsSync5(dir)||mkdirSync2(dir,{recursive:!0}),!existsSync5(tsPath)){writeFileSync2(tsPath,content2,"utf-8"),created++,log(`Created: ${tsPath}`);continue}readFileSync4(tsPath,"utf-8")!==content2&&(writeFileSync2(tsPath,content2,"utf-8"),updated++,log(`Updated: ${tsPath}`))}catch(error){console.error(`Failed to generate ${tsPath}:`,error)}}}if(allForms.length>0){let indexPath=join5(formsDir,"index.ts");expectedTsFiles.add(indexPath);let indexContent=generateIndexContent(allForms);(!existsSync5(indexPath)||readFileSync4(indexPath,"utf-8")!==indexContent)&&(writeFileSync2(indexPath,indexContent,"utf-8"),log(`Updated: ${indexPath}`))}if(existsSync5(formsDir)){let allTsFiles=readdirSync2(formsDir).filter(f=>f.endsWith(".ts")).map(f=>join5(formsDir,f));for(let tsFile of allTsFiles)if(!expectedTsFiles.has(tsFile))try{unlinkSync(tsFile),deleted++,log(`Deleted orphaned: ${tsFile}`)}catch(error){console.error(`Failed to delete orphaned ${tsFile}:`,error)}}return(created>0||updated>0||deleted>0)&&options.verbose!==!1&&log(`Sync forms: ${created} created, ${updated} updated, ${deleted} deleted`),{created,updated,deleted}}__name(syncForms,"syncForms");import{existsSync as existsSync6,mkdirSync as mkdirSync3,readFileSync as readFileSync5,readdirSync as readdirSync3,unlinkSync as unlinkSync2,writeFileSync as writeFileSync3}from"node:fs";import{basename,dirname as dirname5,join as join6,resolve as resolve5}from"node:path";import{z as z138}from"zod";var SCHEMAS_REL="src/schemas",GENERATED_REGISTRY_MARKER="// AUTO-GENERATED by `fimo` from src/schemas/*.json - DO NOT EDIT.",MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION="0.7.0",MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION="0.21.0-0",CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND="npm install fimo@latest",SCHEMA_DEFINITION_SCHEMA=z138.object({uid:z138.string().min(1),name:z138.string().min(1).optional(),isSingleton:z138.boolean().optional(),i18n:z138.object({enabled:z138.boolean().optional()}).optional(),groups:z138.array(z138.object({id:z138.string().min(1),label:z138.string().min(1),default:z138.boolean().optional()}).strict()).optional(),fields:z138.record(z138.string(),z138.unknown()).optional()}),RUNTIME_TYPE_IMPORT_ORDER=["Fields","FimoBoolean","FimoMedia","FimoPolymorphicReference","FimoReference","FimoRichText","FimoRichTextContent","FimoString","Populate","PopulatedResult","ProjectedWithPopulate","Query","Sort","Where","WithReferences"],CONTENT_TEMPLATE_PATHS={types:{current:"shared/types.eta",legacy:"types-template.eta"},sharedServer:{current:"shared/server.eta"},reactClient:{current:"react/client.eta",legacy:"hooks-template.eta"},nextServer:{current:"next/server.eta"},nextClient:{current:"next/client.eta"},svelteKitContent:{current:"sveltekit/content.eta"}};function getSchemaFiles(schemasDir){return existsSync6(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".json")).sort().map(f=>join6(schemasDir,f)):[]}__name(getSchemaFiles,"getSchemaFiles");function getGeneratedFiles(schemasDir){return existsSync6(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".ts")&&f!=="index.ts").map(f=>join6(schemasDir,f)):[]}__name(getGeneratedFiles,"getGeneratedFiles");function parseVersion(version){let match=/^(\d+)\.(\d+)\.(\d+)(?:-([^+]+))?(?:\+.*)?$/.exec(version);return match?{parts:[Number(match[1]),Number(match[2]),Number(match[3])],prerelease:match[4]!==void 0}:null}__name(parseVersion,"parseVersion");function isVersionAtLeast(version,minimum){let parsed=parseVersion(version),parsedMinimum=parseVersion(minimum);if(!parsed||!parsedMinimum)return!1;for(let index=0;index<parsed.parts.length;index++)if(parsed.parts[index]!==parsedMinimum.parts[index])return parsed.parts[index]>parsedMinimum.parts[index];return!parsed.prerelease||parsedMinimum.prerelease}__name(isVersionAtLeast,"isVersionAtLeast");function packageExportsSubpath(packageJson,subpath){if(!packageJson||typeof packageJson!="object"||Array.isArray(packageJson))return!1;let exports2=packageJson.exports;return!!(exports2&&typeof exports2=="object"&&!Array.isArray(exports2)&&Object.prototype.hasOwnProperty.call(exports2,subpath))}__name(packageExportsSubpath,"packageExportsSubpath");function readProjectPackage(cwd,name){let packagePath=join6(cwd,"node_modules",name,"package.json");if(!existsSync6(packagePath))return null;try{return JSON.parse(readFileSync5(packagePath,"utf-8"))}catch{return null}}__name(readProjectPackage,"readProjectPackage");function resolveProjectRuntime(cwd){let packagePath=join6(cwd,"node_modules","fimo","package.json");if(!existsSync6(packagePath))throw new Error(`Cannot generate schema clients because the project-local fimo package could not be resolved from ${cwd}. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);let packageJson;try{packageJson=JSON.parse(readFileSync5(packagePath,"utf-8"))}catch{packageJson=null}let version=packageJson&&typeof packageJson=="object"&&!Array.isArray(packageJson)?packageJson.version:null;if(typeof version!="string"||!parseVersion(version))throw new Error(`Cannot generate schema clients with project-local fimo@${typeof version=="string"?version:"unknown"}. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);return{packageRoot:dirname5(packagePath),version,providesLegacyReactRuntime:packageExportsSubpath(packageJson,"./ui"),providesReactRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-react"),"."),providesLegacyNextRuntime:packageExportsSubpath(packageJson,"./next")&&packageExportsSubpath(packageJson,"./next/client"),providesNextRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),".")&&packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),"./client"),providesAstroRuntime:packageExportsSubpath(packageJson,"./astro"),providesSvelteKitRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-sveltekit"),".")}}__name(resolveProjectRuntime,"resolveProjectRuntime");function contentRuntimeImportFor(framework,runtime){return framework==="nextjs"?isVersionAtLeast(runtime.version,MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION)?"fimo-next":"fimo/next":framework==="astro"?"fimo/astro":framework==="sveltekit"||framework==="sveltekit-1"?"fimo-sveltekit":isVersionAtLeast(runtime.version,MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION)?"fimo-react":"fimo/ui"}__name(contentRuntimeImportFor,"contentRuntimeImportFor");function templatePath(runtime,templateName){let template=CONTENT_TEMPLATE_PATHS[templateName];if(runtime&&!isVersionAtLeast(runtime.version,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION)){let legacyPath="legacy"in template?template.legacy:template.current;return join6(runtime.packageRoot,"assets","content-templates",legacyPath)}return assetPath("content-templates",template.current)}__name(templatePath,"templatePath");function resolveSchemaGenerationTarget(runtimeImport,runtime){if(runtimeImport==="fimo/ui"&&isVersionAtLeast(runtime.version,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION)&&!runtime.providesLegacyReactRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the legacy fimo/ui export required by this React project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo/ui")return"react";if(runtimeImport==="fimo-react"&&!runtime.providesReactRuntime)throw new Error(`Cannot generate schema clients because the project does not provide the fimo-react package required by this React project. Install fimo-react@${runtime.version} alongside fimo, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-react")return"react";if(runtimeImport==="fimo/next"&&!runtime.providesLegacyNextRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the legacy fimo/next and fimo/next/client exports required by this Next.js project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-next"&&!runtime.providesNextRuntime)throw new Error(`Cannot generate schema clients because the project does not provide the fimo-next and fimo-next/client exports required by this Next.js project. Install fimo-next@${runtime.version} alongside fimo, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo/astro"&&!runtime.providesAstroRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the fimo/astro export required by this Astro project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-sveltekit"&&!runtime.providesSvelteKitRuntime)throw new Error(`Cannot generate schema clients because this SvelteKit project has no project-local fimo-sveltekit package. Run \`npm install fimo-sveltekit@${runtime.version}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);return runtimeImport==="fimo/next"||runtimeImport==="fimo-next"?"next":runtimeImport==="fimo/astro"?"astro":"sveltekit"}__name(resolveSchemaGenerationTarget,"resolveSchemaGenerationTarget");function templatesForTarget(target,runtime,runtimeImport){return target==="next"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport},{suffix:".ts",path:templatePath(runtime,"nextServer"),runtimeImport},{suffix:".client.ts",path:templatePath(runtime,"nextClient"),runtimeImport:`${runtimeImport}/client`}]:target==="astro"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo/astro"},{suffix:".ts",path:templatePath(runtime,"sharedServer"),runtimeImport:"fimo/astro"}]:target==="sveltekit"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo-sveltekit"},{suffix:".ts",path:templatePath(runtime,"svelteKitContent"),runtimeImport:"fimo-sveltekit"}]:[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport},{suffix:".ts",path:templatePath(runtime,"reactClient"),runtimeImport}]}__name(templatesForTarget,"templatesForTarget");function loadSchemas(schemaFiles){let errors=[],schemas3=[],outputOwners=new Map,registryOwners=new Map;for(let path50 of schemaFiles){let fileUid=basename(path50,".json"),pascal=pascalCase(fileUid),existingOwner=outputOwners.get(pascal);existingOwner&&existingOwner!==fileUid?errors.push(`${basename(path50)} and ${existingOwner}.json both generate ${pascal}.ts. Rename one schema to keep generated module names unique.`):outputOwners.set(pascal,fileUid);let parsed;try{parsed=JSON.parse(readFileSync5(path50,"utf-8"))}catch(error){errors.push(`${basename(path50)} is invalid JSON: ${error instanceof Error?error.message:String(error)}`);continue}if(typeof parsed!="object"||parsed===null||Array.isArray(parsed)){errors.push(`${basename(path50)} must contain a JSON object.`);continue}let candidate=parsed;if(typeof candidate.uid!="string"||candidate.uid.length===0){errors.push(`${basename(path50)} is missing "uid". Set it to "${fileUid}".`);continue}if(candidate.uid!==fileUid){errors.push(`${basename(path50)} declares uid "${candidate.uid}". It must match the file name "${fileUid}".`);continue}let validation=SCHEMA_DEFINITION_SCHEMA.safeParse(candidate);if(!validation.success){let details=validation.error.issues.map(issue2=>`${issue2.path.join(".")||"schema"}: ${issue2.message}`).join("; ");errors.push(`${basename(path50)} has an invalid schema shape: ${details}`);continue}let registryKey=camelCase(validation.data.name??validation.data.uid),existingRegistryOwner=registryOwners.get(registryKey);if(existingRegistryOwner&&existingRegistryOwner!==fileUid){errors.push(`${basename(path50)} and ${existingRegistryOwner}.json both generate the content registry key "${registryKey}". Rename one schema display name to keep generated registry keys unique.`);continue}registryOwners.set(registryKey,fileUid),schemas3.push({pascal,registryKey,schema:validation.data})}if(errors.length>0)throw new Error(`Cannot generate schema clients:
|
|
2419
2419
|
- ${errors.join(`
|
|
2420
2420
|
- `)}
|
|
2421
2421
|
No generated files were changed.`);return schemas3}__name(loadSchemas,"loadSchemas");function renderContentRegistry(schemas3){let imports=schemas3.map(({pascal})=>`import * as ${pascal} from "./${pascal}";`).join(`
|
|
@@ -2862,7 +2862,17 @@ Header values use Name=secret:KEY, Name=bearer:KEY, Name=token:KEY, or Name=lite
|
|
|
2862
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",`
|
|
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
|
-
`).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");addPaginationOptions(entries.command("list").description("List entries of a content type"),{defaultLimit:20,maxLimit:100,legacyCursor:"offset"}).argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").option("--search <query>","Search query").option("--where <json>",`JSON filter object, e.g. '{"featured":true}'`).option("--sort <field>","Sort field, prefix with - for descending").option("--fields <fields>","Comma-separated fields to return, e.g. slug,title,excerpt").option("--populate <fields>","Comma-separated reference, media, or blocks fields to populate, e.g. author,cover").option("--locale <locale>","Locale to list (default en)").option("--sort-by <field>","Sort field").option("--sort-direction <dir>","Sort direction (asc|desc)").action(entriesListCommand);entries.command("get").description("Get a single entry").argument("<typeName>","Content type name").argument("<id>","Entry ID").option("-C, --cwd <dir>","Site directory").option("--locale <locale>","Entry locale (defaults to the site locale)").option("--populate <fields>","Comma-separated reference, media, or blocks fields to populate, e.g. author,cover").action(entriesGetCommand);entries.command("create").description("Create a new entry").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").requiredOption("--body <json>","Entry JSON body (slug + data)").option("--locale <locale>","Entry locale (default en)").option("--document-id <id>","Document ID shared by localized variants").action(entriesCreateCommand);entries.command("update").description("Update an existing entry").argument("<typeName>","Content type name").argument("<id>","Entry ID").option("-C, --cwd <dir>","Site directory").requiredOption("--body <json>","Updated entry JSON body").option("--locale <locale>","Entry locale (defaults to the site locale)").action(entriesUpdateCommand);entries.command("delete").description("Delete an entry").argument("<typeName>","Content type name").argument("<id>","Entry ID").option("-C, --cwd <dir>","Site directory").option("--locale <locale>","Entry locale (defaults to the site locale)").action(entriesDeleteCommand);entries.command("query").description("Run a read-only SQL query over the entries table").option("-C, --cwd <dir>","Site directory").option("--sql <query>","SQL SELECT query").option("--file <path>","Read the SQL query from a file").option("--stdin","Read the SQL query from stdin").action(entriesQueryCommand);entries.command("bulk-create").description("Create multiple entries").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").option("--body <json>","JSON array of entry bodies").option("--file <path>","Read entry bodies from a JSON file").option("--stdin","Read entry bodies from stdin").option("--upsert-by <field>","Update or create by a stable data field (migration imports prefer slug)").option("--chunk-size <count>","Entries per request (default 100, maximum 1000)").action(entriesBulkCreateCommand);entries.command("bulk-update").description("Update multiple entries").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").option("--ids <ids>","Comma-separated IDs").option("--where <json>",`JSON filter object, e.g. '{"status":"draft"}'`).option("--body <json>","Updated entry JSON body").option("--file <path>","Read per-entry updates from a JSON file").option("--stdin","Read per-entry updates from stdin").action(entriesBulkUpdateCommand);entries.command("bulk-delete").description("Delete multiple entries").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").option("--ids <ids>","Comma-separated IDs").option("--where <json>",`JSON filter object, e.g. '{"archived":true}'`).option("--locale <locale>","Entry locale (defaults to the site locale)").action(entriesBulkDeleteCommand);var singles=program.command("singles").description("Manage single content types");singles.command("get").description("Get a Single").argument("<typeName>","Single type name").option("-C, --cwd <dir>","Site directory").option("--locale <locale>","Single locale (defaults to the site locale)").option("--populate <fields>","Comma-separated reference, media, or blocks fields to populate").action(singlesGetCommand);singles.command("update").description("Update a Single").argument("<typeName>","Single type name").option("-C, --cwd <dir>","Site directory").option("--body <json>","Updated Single JSON body").option("--file <path>","Read the updated Single JSON body from a file").option("--stdin","Read the updated Single JSON body from stdin").option("--locale <locale>","Single locale (defaults to the site locale)").action(singlesUpdateCommand);var assets2=program.command("assets").description("Manage media assets");addPaginationOptions(assets2.command("list").description("List assets"),{defaultLimit:20,maxLimit:100,legacyCursor:"offset"}).option("-C, --cwd <dir>","Site directory").option("--parent-id <id>","Filter by parent folder").option("--search <query>","Search across name, alt text, caption, and AI-generated alt / caption (case-insensitive)").option("--type <type>","Filter by entry type (file|folder)").option("--image","Filter to image MIME types (shortcut for --mime-prefix image/)").option("--video","Filter to video MIME types (shortcut for --mime-prefix video/)").option("--audio","Filter to audio MIME types (shortcut for --mime-prefix audio/)").option("--mime-prefix <prefix>",'Filter by MIME type prefix (e.g. "image/png")').option("--sort-by <field>","Sort field").action(assetsListCommand);assets2.command("read").description("Read canonical asset text or ask one targeted question").argument("<id>","Asset ID").option("-C, --cwd <dir>","Site directory").option("--cursor <next-cursor>","Continue an exact read from a previous nextCursor").option("--query <question>","Ask one targeted model-backed question").action(assetsReadCommand);assets2.command("upload").description("Upload a file to the media library").argument("<file>","Path to the file to upload").option("-C, --cwd <dir>","Site directory").option("--name <name>","Asset display name").option("--parent-id <id>","Target folder ID").option("--folder-path <path>","Target folder path, creating missing folders").action(assetsUploadCommand);assets2.command("bulk-upload").description("Upload files from a structured JSON manifest").requiredOption("--file <path>","JSON manifest path").option("-C, --cwd <dir>","Site directory").option("--concurrency <n>","Maximum parallel uploads","4").action(assetsBulkUploadCommand);var modelsCmd=new Command("models").description("Browse available media generation models");program.addCommand(modelsCmd,{hidden:!0});modelsCmd.command("list").description("List Fal models enabled for this site").option("-C, --cwd <dir>","Site directory").option("--modality <m>","Filter by modality (image | video | audio)").option("--search <query>","Search names and descriptions").option("--category <category>","Filter by Fal media category").option("--tag <t>","Filter by tag (repeatable; AND semantics \u2014 model must have every tag)",(value,previous)=>[...previous,value],[]).option("--extended","Per-model card: alias, provider, tags, price, best-for, flags").option("--json","Machine-readable JSON output").action(modelsListCommand);modelsCmd.command("show").description("Show a Fal model and its available flags").argument("<key>","Namespaced model id from `fimo models list`").option("-C, --cwd <dir>","Site directory").option("--json","Machine-readable JSON output (includes the per-model flag list)").action(modelsShowCommand);assets2.command("create-folder").description("Create a folder in the media library").argument("<name>","Folder name").option("-C, --cwd <dir>","Site directory").option("--parent-id <id>","Parent folder ID").action(assetsCreateFolderCommand);assets2.command("move").description("Move an asset to a different folder").argument("<id>","Asset ID").option("-C, --cwd <dir>","Site directory").requiredOption("--parent-id <id>",'Target folder ID (use "null" for root)').action(assetsMoveCommand);assets2.command("usage").description("Check Current, Main, and Live structured-reference impact").argument("<id>","Asset ID").option("-C, --cwd <dir>","Site directory").action(assetsUsageCommand);assets2.command("replace").description("Replace structured references in the Current Branch").argument("<id>","Source asset ID").requiredOption("--with <id>","Replacement asset ID").option("-C, --cwd <dir>","Site directory").action(assetsReplaceCommand);assets2.command("remove").alias("delete").description("Safely remove an asset from the current Branch").argument("<id>","Asset ID").option("-C, --cwd <dir>","Site directory").option("--replace-with <id>","Replace references before removal (Current Branch content and source; every Branch and Live with --permanent)").option("--without-checking","Skip reference guidance before environment removal").option("--permanent","Destroy the asset across the site").option("-y, --yes","Skip confirmation for permanent destruction").action(assetsRemoveCommand);assets2.command("open").description("Fetch asset metadata; optionally download locally or open in default viewer").argument("<id>","Asset ID").option("-C, --cwd <dir>","Site directory").option("--download","Download the asset bytes to a local file and print the path").option("--browser","Open the asset URL in the OS default viewer (open / xdg-open / start)").option("--path <path>","Override download destination (default: <tmpdir>/fimo-assets/<id>.<ext>). Implies --download.").action((id,options,cmd)=>(options.path&&!options.download&&(options.download=!0),assetsOpenCommand(id,options,cmd)));var forms2=program.command("forms").description("Manage forms");forms2.command("list").description("List all forms").option("-C, --cwd <dir>","Site directory").action(formsListCommand);forms2.command("get").description("Get a form by ID").argument("<id>","Form ID").option("-C, --cwd <dir>","Site directory").action(formsGetCommand);forms2.command("push").description("Push form JSON files to the API (create or update, patches id back)").argument("[formName]","Form name to push (omit to push all)").option("-C, --cwd <dir>","Site directory").action(formsPushCommand);forms2.command("delete").description("Delete a form").argument("<id>","Form ID").option("-C, --cwd <dir>","Site directory").action(formsDeleteCommand);var supportedAgentsHelp=`
|
|
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",`
|
|
2866
|
+
Examples (BlogPost must have a title field):
|
|
2867
|
+
fimo entries create BlogPost --body '{"data":{"slug":"hello","title":"Hello"}}'
|
|
2868
|
+
fimo entries list BlogPost --where '{"slug":"hello"}'
|
|
2869
|
+
fimo entries get BlogPost <id>
|
|
2870
|
+
fimo entries update BlogPost <id> --body '{"data":{"title":"Updated"}}'
|
|
2871
|
+
|
|
2872
|
+
Use the UUID returned as id by create/list for get, update, and delete.
|
|
2873
|
+
The content type is positional. Create/update require --body; JSON files use bulk-create/bulk-update.`);addPaginationOptions(entries.command("list").description("List entries of a content type"),{defaultLimit:20,maxLimit:100,legacyCursor:"offset"}).argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").option("--search <query>","Search query").option("--where <json>",`JSON filter object, e.g. '{"featured":true}'`).option("--sort <field>","Sort field, prefix with - for descending").option("--fields <fields>","Comma-separated fields to return, e.g. slug,title,excerpt").option("--populate <fields>","Comma-separated reference, media, or blocks fields to populate, e.g. author,cover").option("--locale <locale>","Locale to list (default en)").option("--sort-by <field>","Sort field").option("--sort-direction <dir>","Sort direction (asc|desc)").action(entriesListCommand);entries.command("get").description("Get a single entry").argument("<typeName>","Content type name").argument("<id>","Entry UUID returned as id by create/list").option("-C, --cwd <dir>","Site directory").option("--locale <locale>","Entry locale (defaults to the site locale)").option("--populate <fields>","Comma-separated reference, media, or blocks fields to populate, e.g. author,cover").action(entriesGetCommand);entries.command("create").description("Create a new entry").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").requiredOption("--body <json>",`Entry body, e.g. '{"data":{"slug":"hello","title":"Hello"}}'`).option("--locale <locale>","Entry locale (default en)").option("--document-id <id>","Document ID shared by localized variants").action(entriesCreateCommand);entries.command("update").description("Update an existing entry").argument("<typeName>","Content type name").argument("<id>","Entry UUID returned as id by create/list").option("-C, --cwd <dir>","Site directory").requiredOption("--body <json>",`Entry body, e.g. '{"data":{"title":"Updated"}}'`).option("--locale <locale>","Entry locale (defaults to the site locale)").action(entriesUpdateCommand);entries.command("delete").description("Delete an entry").argument("<typeName>","Content type name").argument("<id>","Entry UUID returned as id by create/list").option("-C, --cwd <dir>","Site directory").option("--locale <locale>","Entry locale (defaults to the site locale)").action(entriesDeleteCommand);entries.command("query").description("Run a read-only SQL query over the entries table").option("-C, --cwd <dir>","Site directory").option("--sql <query>","SQL SELECT query").option("--file <path>","Read the SQL query from a file").option("--stdin","Read the SQL query from stdin").action(entriesQueryCommand);entries.command("bulk-create").description("Create multiple entries").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").option("--body <json>","JSON array of entry bodies").option("--file <path>","Read entry bodies from a JSON file").option("--stdin","Read entry bodies from stdin").option("--upsert-by <field>","Update or create by a stable data field (migration imports prefer slug)").option("--chunk-size <count>","Entries per request (default 100, maximum 1000)").action(entriesBulkCreateCommand);entries.command("bulk-update").description("Update multiple entries").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").option("--ids <ids>","Comma-separated IDs").option("--where <json>",`JSON filter object, e.g. '{"status":"draft"}'`).option("--body <json>","Updated entry JSON body").option("--file <path>","Read per-entry updates from a JSON file").option("--stdin","Read per-entry updates from stdin").action(entriesBulkUpdateCommand);entries.command("bulk-delete").description("Delete multiple entries").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Site directory").option("--ids <ids>","Comma-separated IDs").option("--where <json>",`JSON filter object, e.g. '{"archived":true}'`).option("--locale <locale>","Entry locale (defaults to the site locale)").action(entriesBulkDeleteCommand);var singles=program.command("singles").description("Manage single content types");singles.command("get").description("Get a Single").argument("<typeName>","Single type name").option("-C, --cwd <dir>","Site directory").option("--locale <locale>","Single locale (defaults to the site locale)").option("--populate <fields>","Comma-separated reference, media, or blocks fields to populate").action(singlesGetCommand);singles.command("update").description("Update a Single").argument("<typeName>","Single type name").option("-C, --cwd <dir>","Site directory").option("--body <json>","Updated Single JSON body").option("--file <path>","Read the updated Single JSON body from a file").option("--stdin","Read the updated Single JSON body from stdin").option("--locale <locale>","Single locale (defaults to the site locale)").action(singlesUpdateCommand);var assets2=program.command("assets").description("Manage media assets");addPaginationOptions(assets2.command("list").description("List assets"),{defaultLimit:20,maxLimit:100,legacyCursor:"offset"}).option("-C, --cwd <dir>","Site directory").option("--parent-id <id>","Filter by parent folder").option("--search <query>","Search across name, alt text, caption, and AI-generated alt / caption (case-insensitive)").option("--type <type>","Filter by entry type (file|folder)").option("--image","Filter to image MIME types (shortcut for --mime-prefix image/)").option("--video","Filter to video MIME types (shortcut for --mime-prefix video/)").option("--audio","Filter to audio MIME types (shortcut for --mime-prefix audio/)").option("--mime-prefix <prefix>",'Filter by MIME type prefix (e.g. "image/png")').option("--sort-by <field>","Sort field").action(assetsListCommand);assets2.command("read").description("Read canonical asset text or ask one targeted question").argument("<id>","Asset ID").option("-C, --cwd <dir>","Site directory").option("--cursor <next-cursor>","Continue an exact read from a previous nextCursor").option("--query <question>","Ask one targeted model-backed question").action(assetsReadCommand);assets2.command("upload").description("Upload a file to the media library").addHelpText("after",`
|
|
2874
|
+
Example: fimo assets upload ./hero.jpg --name "Hero Image"
|
|
2875
|
+
Set alt text in the content media field or rendering component.`).argument("<file>","Path to the file to upload").option("-C, --cwd <dir>","Site directory").option("--name <name>","Asset display name").option("--parent-id <id>","Target folder ID").option("--folder-path <path>","Target folder path, creating missing folders").action(assetsUploadCommand);assets2.command("bulk-upload").description("Upload files from a structured JSON manifest").requiredOption("--file <path>","JSON manifest path").option("-C, --cwd <dir>","Site directory").option("--concurrency <n>","Maximum parallel uploads","4").action(assetsBulkUploadCommand);var modelsCmd=new Command("models").description("Browse available media generation models");program.addCommand(modelsCmd,{hidden:!0});modelsCmd.command("list").description("List Fal models enabled for this site").option("-C, --cwd <dir>","Site directory").option("--modality <m>","Filter by modality (image | video | audio)").option("--search <query>","Search names and descriptions").option("--category <category>","Filter by Fal media category").option("--tag <t>","Filter by tag (repeatable; AND semantics \u2014 model must have every tag)",(value,previous)=>[...previous,value],[]).option("--extended","Per-model card: alias, provider, tags, price, best-for, flags").option("--json","Machine-readable JSON output").action(modelsListCommand);modelsCmd.command("show").description("Show a Fal model and its available flags").argument("<key>","Namespaced model id from `fimo models list`").option("-C, --cwd <dir>","Site directory").option("--json","Machine-readable JSON output (includes the per-model flag list)").action(modelsShowCommand);assets2.command("create-folder").description("Create a folder in the media library").argument("<name>","Folder name").option("-C, --cwd <dir>","Site directory").option("--parent-id <id>","Parent folder ID").action(assetsCreateFolderCommand);assets2.command("move").description("Move an asset to a different folder").argument("<id>","Asset ID").option("-C, --cwd <dir>","Site directory").requiredOption("--parent-id <id>",'Target folder ID (use "null" for root)').action(assetsMoveCommand);assets2.command("usage").description("Check Current, Main, and Live structured-reference impact").argument("<id>","Asset ID").option("-C, --cwd <dir>","Site directory").action(assetsUsageCommand);assets2.command("replace").description("Replace structured references in the Current Branch").argument("<id>","Source asset ID").requiredOption("--with <id>","Replacement asset ID").option("-C, --cwd <dir>","Site directory").action(assetsReplaceCommand);assets2.command("remove").alias("delete").description("Safely remove an asset from the current Branch").argument("<id>","Asset ID").option("-C, --cwd <dir>","Site directory").option("--replace-with <id>","Replace references before removal (Current Branch content and source; every Branch and Live with --permanent)").option("--without-checking","Skip reference guidance before environment removal").option("--permanent","Destroy the asset across the site").option("-y, --yes","Skip confirmation for permanent destruction").action(assetsRemoveCommand);assets2.command("open").description("Fetch asset metadata; optionally download locally or open in default viewer").argument("<id>","Asset ID").option("-C, --cwd <dir>","Site directory").option("--download","Download the asset bytes to a local file and print the path").option("--browser","Open the asset URL in the OS default viewer (open / xdg-open / start)").option("--path <path>","Override download destination (default: <tmpdir>/fimo-assets/<id>.<ext>). Implies --download.").action((id,options,cmd)=>(options.path&&!options.download&&(options.download=!0),assetsOpenCommand(id,options,cmd)));var forms2=program.command("forms").description("Manage forms");forms2.command("list").description("List all forms").option("-C, --cwd <dir>","Site directory").action(formsListCommand);forms2.command("get").description("Get a form by ID").argument("<id>","Form ID").option("-C, --cwd <dir>","Site directory").action(formsGetCommand);forms2.command("push").description("Push form JSON files to the API (create or update, patches id back)").argument("[formName]","Form name to push (omit to push all)").option("-C, --cwd <dir>","Site directory").action(formsPushCommand);forms2.command("delete").description("Delete a form").argument("<id>","Form ID").option("-C, --cwd <dir>","Site directory").action(formsDeleteCommand);var supportedAgentsHelp=`
|
|
2866
2876
|
Supported agents:
|
|
2867
2877
|
Universal (always covered via AGENTS.md, no per-agent file needed):
|
|
2868
2878
|
Codex, OpenCode, Aider, and other AGENTS.md-native tools
|