fimo 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -184,9 +184,9 @@ description: Fimo project rules
184
184
  alwaysApply: true
185
185
  ---
186
186
 
187
- ${agentsMdContent}`;writeIfMissing(".cursor/rules/fimo.mdc",cursorContent)}return selected.has("windsurf")&&writeIfMissing(".windsurfrules",agentsMdContent),selected.has("gemini-cli")&&writeIfMissing("GEMINI.md",agentsMdContent),result}function syncPerAgentVariants(targetDir,agents){let agentsMdPath=path4.join(targetDir,"AGENTS.md");if(!fs3.existsSync(agentsMdPath))throw new Error(`No AGENTS.md found in ${targetDir}. Run \`fimo create\` first, or create AGENTS.md manually before running \`fimo rules sync\`.`);let agentsMdContent=fs3.readFileSync(agentsMdPath,"utf8");return writePerAgentVariants(targetDir,agents,agentsMdContent)}function detectAgentsInProject(cwd){let detected=[];return fs3.existsSync(path4.join(cwd,"CLAUDE.md"))&&detected.push("claude-code"),fs3.existsSync(path4.join(cwd,".cursor","rules","fimo.mdc"))&&detected.push("cursor"),fs3.existsSync(path4.join(cwd,".windsurfrules"))&&detected.push("windsurf"),fs3.existsSync(path4.join(cwd,"GEMINI.md"))&&detected.push("gemini-cli"),detected}var AGENT_TEMPLATES_ROOT,EXCLUDED_DIRS,TemplateFrameworkError,init_scaffold=__esm({"src/cli/utils/scaffold.ts"(){init_templates();init_config();init_templates();AGENT_TEMPLATES_ROOT=path4.resolve(CLI_ROOT,"assets","agent-templates"),EXCLUDED_DIRS=new Set(["node_modules","dist","build",".turbo",".git"]),TemplateFrameworkError=class extends Error{static{__name(this,"TemplateFrameworkError")}constructor(message){super(message),this.name="TemplateFrameworkError"}};__name(resolveTemplateFramework,"resolveTemplateFramework");__name(resolveTemplateRoot,"resolveTemplateRoot");__name(resolveAgentTemplatesRoot,"resolveAgentTemplatesRoot");__name(resolveAgentTemplate,"resolveAgentTemplate");__name(listAgentTemplates,"listAgentTemplates");__name(copyAgentTemplate,"copyAgentTemplate");__name(copyTemplate,"copyTemplate");__name(pinFimoDependency,"pinFimoDependency");__name(copyTree,"copyTree");__name(writePerAgentVariants,"writePerAgentVariants");__name(syncPerAgentVariants,"syncPerAgentVariants");__name(detectAgentsInProject,"detectAgentsInProject")}});import fs4 from"node:fs";function ensureCredentialsDir(cfg){fs4.existsSync(cfg.credentialsDir)||fs4.mkdirSync(cfg.credentialsDir,{recursive:!0})}function readCredentials(cfg=loadConfig()){if(!fs4.existsSync(cfg.credentialsFile))return null;let raw=fs4.readFileSync(cfg.credentialsFile,"utf-8");return JSON.parse(raw)}function writeCredentials(credentials,cfg=loadConfig()){ensureCredentialsDir(cfg);let tmpFile=`${cfg.credentialsFile}.tmp-${process.pid}`;fs4.writeFileSync(tmpFile,JSON.stringify(credentials,null,2)),fs4.renameSync(tmpFile,cfg.credentialsFile)}function clearCredentials(cfg=loadConfig()){fs4.existsSync(cfg.credentialsFile)&&fs4.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 requireToken(cfg=loadConfig()){return requireCredentials(cfg).access_token}function requireCredentials(cfg=loadConfig()){let creds=readCredentials(cfg);if(!creds?.access_token)throw new NotAuthenticatedError(cfg.apiUrl);return creds}var NotAuthenticatedError,init_auth=__esm({"src/cli/auth.ts"(){init_config();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}};__name(ensureCredentialsDir,"ensureCredentialsDir");__name(readCredentials,"readCredentials");__name(writeCredentials,"writeCredentials");__name(clearCredentials,"clearCredentials");__name(setActiveOrganization,"setActiveOrganization");__name(recordAuthFailure,"recordAuthFailure");__name(requireToken,"requireToken");__name(requireCredentials,"requireCredentials")}});import{z as z5}from"zod";function createResponseSchema(dataSchema){return z5.object({data:dataSchema})}function encodeBranchPathSegment(branch){return encodeURIComponent(branch.replaceAll("/","--"))}function managementProjectPath(projectId,suffix){return`/management/projects/${encodeURIComponent(projectId)}${suffix}`}function managementBranchPath(projectId,branch,suffix){return managementProjectPath(projectId,`/branches/${encodeBranchPathSegment(branch)}${suffix}`)}function tenantPath(projectId,branch,suffix){return`/tenant/${encodeURIComponent(projectId)}/branches/${encodeBranchPathSegment(branch)}${suffix}`}function addQuery(path53,query){let params=new URLSearchParams;for(let[key,value]of Object.entries(query))value!==void 0&&(Array.isArray(value)?value.length>0&&params.set(key,value.join(",")):params.set(key,String(value)));let queryString=params.toString();return queryString?`${path53}?${queryString}`:path53}function withoutUndefined(values){return Object.fromEntries(Object.entries(values).filter(([,value])=>value!==void 0))}function utf8Text(maxBytes,message){return z5.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!==void 0&&input.offset!==void 0){context.addIssue({code:"custom",message:"Use either cursor or offset, not both.",path:["cursor"]});return}if(input.cursor!==void 0)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{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.isInteger(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===void 0?input.offset:decodePaginationCursor(input.cursor)}function pageSchema(itemSchema){return z5.object({items:z5.array(itemSchema),nextCursor:z5.string().nullable(),total:z5.number().int().nonnegative().optional()})}function projectOffsetPage(body){let{data:data2,meta}=rawOffsetPageSchema.parse(body);return{items:data2,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(projectId,branch,sessionId,suffix){return sessionId?managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files${suffix}`):managementBranchPath(projectId,requiredBranch(branch),`/files${suffix}`)}var uuidSchema,sessionStatusSchema,surfaceNameSchema,branchSurfaceSchema,backendSurfaceSchema,branchNameSchema,PROJECT_FILE_WRITE_LIMIT_BYTES,sessionEnvelopeSchema,paginationShape,rawOffsetPageSchema,init_common=__esm({"../../packages/sdk/dist/operations/common.js"(){"use strict";__name(createResponseSchema,"createResponseSchema");uuidSchema=z5.uuid(),sessionStatusSchema=z5.enum(["provisioning","ready","closing","merged","discarded","expired","failed"]),surfaceNameSchema=z5.enum(["code","schemas","content","labels","assets","forms"]),branchSurfaceSchema=z5.enum(["code","schemas","content","labels","assets","forms"]),backendSurfaceSchema=z5.enum(["code","schemas","content","translations","assets","forms"]),branchNameSchema=z5.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(encodeBranchPathSegment,"encodeBranchPathSegment");__name(managementProjectPath,"managementProjectPath");__name(managementBranchPath,"managementBranchPath");__name(tenantPath,"tenantPath");__name(addQuery,"addQuery");__name(withoutUndefined,"withoutUndefined");PROJECT_FILE_WRITE_LIMIT_BYTES=256*1024;__name(utf8Text,"utf8Text");__name(responseData,"responseData");__name(publicSurface,"publicSurface");__name(backendSurfaces,"backendSurfaces");__name(recordValue,"recordValue");sessionEnvelopeSchema=z5.object({sessionId:uuidSchema,projectId:uuidSchema,status:sessionStatusSchema,targetBranch:z5.object({id:uuidSchema.nullable(),name:branchNameSchema,sha:z5.string().min(1)}),workingBranch:z5.object({id:uuidSchema,name:branchNameSchema}).nullable(),preview:z5.url().nullable(),lastActivityAt:z5.iso.datetime(),expiresAt:z5.iso.datetime(),onExpire:z5.literal("discard"),nextOperations:z5.array(z5.string())}),paginationShape={limit:z5.number().int().min(1).max(100).optional(),cursor:z5.string().min(1).optional(),offset:z5.number().int().min(0).optional()};__name(paginationRefinement,"paginationRefinement");__name(encodePaginationCursor,"encodePaginationCursor");__name(decodePaginationCursor,"decodePaginationCursor");__name(paginationOffset,"paginationOffset");__name(pageSchema,"pageSchema");rawOffsetPageSchema=z5.object({data:z5.array(z5.unknown()),meta:z5.object({limit:z5.number().int().positive(),offset:z5.number().int().nonnegative(),total:z5.number().int().nonnegative(),hasMore:z5.boolean()})});__name(projectOffsetPage,"projectOffsetPage");__name(projectDetail,"projectDetail");__name(requiredBranch,"requiredBranch");__name(projectFilesPath,"projectFilesPath")}});import{z as z6}from"zod";function projectAgentSessionsPage(body){let page=body;if(!Array.isArray(page.data))throw new Error("Expected an agent sessions page.");return cliAgentSessionsPageSchema.parse({...page,data:page.data.map(value=>{let{env,...session}=value;return{...session,branch:env}})})}function projectAgentStatus(body){let data2=recordValue(responseData(body),"Expected an agent session response."),session=recordValue(data2.session,"Expected an agent session.");if(!Array.isArray(data2.checkpoints))throw new Error("Expected agent session checkpoints.");return agentStatusOutputSchema.parse({data:{session:{...session,branch:session.branch??session.env},checkpoints:data2.checkpoints}})}var agentTriggerKindSchema,agentCapabilitySchema,agentListItemSchema,agentListResponseSchema,manualAgentRunResponseSchema,publicAgentSessionSchema,publicAgentCheckpointSchema,agentStatusOutputSchema,cliAgentSessionSchema,cliAgentSessionsPageSchema,agentsOperations,init_agents=__esm({"../../packages/sdk/dist/operations/agents.js"(){"use strict";init_common();agentTriggerKindSchema=z6.enum(["manual","schedule","webhook"]),agentCapabilitySchema=z6.object({token:z6.string().min(1),risk:z6.enum(["low","medium","high","critical"]),description:z6.string()}),agentListItemSchema=z6.object({name:z6.string().min(1),description:z6.string().nullable(),goalFirstLine:z6.string().nullable(),declaredCapabilities:z6.array(agentCapabilitySchema),triggers:z6.array(z6.object({kind:agentTriggerKindSchema,summary:z6.string()})),triggerStates:z6.array(z6.object({triggerIndex:z6.number().int().nonnegative(),triggerKind:agentTriggerKindSchema,enabled:z6.boolean(),wired:z6.boolean(),syncError:z6.string().nullable()})),paused:z6.boolean(),nextRunAt:z6.iso.datetime().nullable()}),agentListResponseSchema=createResponseSchema(z6.array(agentListItemSchema)),manualAgentRunResponseSchema=createResponseSchema(z6.union([z6.object({sessionId:z6.string().min(1)}),z6.object({skipped:z6.enum(["no-manual-trigger","trigger-not-wired","agent-paused","run-in-progress","task-env-budget"])})])),publicAgentSessionSchema=z6.object({id:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,agentName:z6.string().min(1),triggerKind:agentTriggerKindSchema,status:z6.enum(["planned","running","finished","cancelled","errored"]),startedAt:z6.iso.datetime().nullable(),finishedAt:z6.iso.datetime().nullable(),cancelledAt:z6.iso.datetime().nullable(),longRunning:z6.boolean(),terminalReason:z6.string().nullable(),errorMessage:z6.string().nullable(),reportDocument:z6.unknown().nullable(),reviewSummary:z6.unknown().nullable(),reviewCaptureError:z6.string().nullable(),createdAt:z6.iso.datetime(),updatedAt:z6.iso.datetime()}),publicAgentCheckpointSchema=z6.object({id:uuidSchema,sessionId:uuidSchema,checkpointIdx:z6.number().int().nonnegative(),payloadSizeBytes:z6.number().int().nonnegative(),checksum:z6.string().length(64),createdAt:z6.iso.datetime()}),agentStatusOutputSchema=createResponseSchema(z6.object({session:publicAgentSessionSchema,checkpoints:z6.array(publicAgentCheckpointSchema)})),cliAgentSessionSchema=z6.object({id:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,agentName:z6.string().min(1),triggerKind:agentTriggerKindSchema,status:z6.enum(["planned","running","finished","cancelled","errored"]),startedAt:z6.iso.datetime().nullable(),finishedAt:z6.iso.datetime().nullable(),cancelledAt:z6.iso.datetime().nullable(),costUsd:z6.number().nonnegative(),costCeilingUsd:z6.number().positive(),longRunning:z6.boolean(),terminalReason:z6.string().nullable(),errorMessage:z6.string().nullable(),reportDocument:z6.unknown().nullable(),reviewSummary:z6.unknown().nullable(),reviewCaptureError:z6.string().nullable(),createdAt:z6.iso.datetime(),updatedAt:z6.iso.datetime()}).passthrough(),cliAgentSessionsPageSchema=z6.object({data:z6.array(cliAgentSessionSchema),page:z6.number().int().positive(),limit:z6.number().int().positive(),total:z6.number().int().nonnegative(),totalPages:z6.number().int().nonnegative(),hasMore:z6.boolean()});__name(projectAgentSessionsPage,"projectAgentSessionsPage");__name(projectAgentStatus,"projectAgentStatus");agentsOperations={"agents.list":{domain:"agents",summary:"List project agent bundles, triggers, and activation state from main.",accessScope:"read",effect:"read",inputSchema:z6.object({projectId:uuidSchema}).strict(),outputSchema:agentListResponseSchema,buildRequest:__name(({projectId})=>({method:"GET",path:managementBranchPath(projectId,"main","/agents")}),"buildRequest")},"agents.run":{domain:"agents",summary:"Trigger one manual project agent run from main.",accessScope:"agents",effect:"mutation",inputSchema:z6.object({projectId:uuidSchema,agentName:z6.string().min(1).max(120),args:z6.record(z6.string(),z6.unknown()).optional()}).strict(),outputSchema:manualAgentRunResponseSchema,buildRequest:__name(({projectId,agentName,args})=>({method:"POST",path:managementBranchPath(projectId,"main",`/agents/${encodeURIComponent(agentName)}/run`),body:args===void 0?{}:{args}}),"buildRequest")},"agents.status":{domain:"agents",summary:"Read one agent run status, report, and safe checkpoint metadata.",accessScope:"read",effect:"read",inputSchema:z6.object({projectId:uuidSchema,sessionId:uuidSchema}).strict(),outputSchema:agentStatusOutputSchema,buildRequest:__name(({projectId,sessionId})=>({method:"GET",path:managementProjectPath(projectId,`/agents/sessions/${encodeURIComponent(sessionId)}`)}),"buildRequest"),projectOutput:projectAgentStatus},"agents.runs":{domain:"agents",summary:"List project agent runs with the CLI pagination contract.",accessScope:"read",effect:"read",inputSchema:z6.object({projectId:uuidSchema,agentName:z6.string().min(1).optional(),branch:branchNameSchema.optional(),status:z6.enum(["planned","running","finished","cancelled","errored"]).optional(),page:z6.number().int().positive().optional(),limit:z6.number().int().min(1).max(200).optional()}).strict(),outputSchema:cliAgentSessionsPageSchema,buildRequest:__name(({projectId,agentName,branch,status,page,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/agents/sessions"),{agent_name:agentName,env:branch,status,page,limit})}),"buildRequest"),projectOutput:projectAgentSessionsPage}}}});import{z as z7}from"zod";function projectAnalyticsTop(body,input){let analytics2=analyticsPageviewsResponseSchema.parse(body).data,field={pages:"topPages",browsers:"topBrowsers",devices:"topDevices",countries:"topCountries",sources:"topSources"}[input.dimension];return analyticsTopOutputSchema.parse({dimension:input.dimension,items:input.limit===void 0?analytics2[field]:analytics2[field].slice(0,input.limit)})}function projectAnalyticsAnnotations(body){let analytics2=analyticsPageviewsResponseSchema.parse(body).data;return analyticsAnnotationsOutputSchema.parse({annotations:analytics2.annotations})}function projectAnalyticsAnnotation(body){return body===void 0?null:analyticsAnnotationResponseSchema.parse(body)}var analyticsPresetSchema,analyticsGroupBySchema,analyticsRangeShape,analyticsRangeRefinement,analyticsAnnotationSchema,analyticsBreakdownSchema,analyticsPageBreakdownSchema,analyticsPageviewsSchema,analyticsPageviewsResponseSchema,analyticsDimensionSchema,analyticsTopOutputSchema,analyticsAnnotationsOutputSchema,analyticsAnnotationResponseSchema,analyticsOperations,init_analytics=__esm({"../../packages/sdk/dist/operations/analytics.js"(){"use strict";init_common();analyticsPresetSchema=z7.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=z7.enum(["day","week","month","quarter"]),analyticsRangeShape={preset:analyticsPresetSchema.optional(),groupBy:analyticsGroupBySchema.optional(),from:z7.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),to:z7.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),days:z7.union([z7.literal(7),z7.literal(30),z7.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=z7.object({date:z7.string(),content:z7.string(),updatedAt:z7.string(),updatedByUserId:z7.string()}),analyticsBreakdownSchema=z7.object({key:z7.string(),visitors:z7.number().int().nonnegative(),pageviews:z7.number().int().nonnegative()}),analyticsPageBreakdownSchema=z7.object({path:z7.string(),pageName:z7.string().nullable().optional(),visitors:z7.number().int().nonnegative(),pageviews:z7.number().int().nonnegative()}),analyticsPageviewsSchema=z7.object({range:z7.object({preset:analyticsPresetSchema,requestedFrom:z7.string(),requestedTo:z7.string(),effectiveFrom:z7.string(),effectiveTo:z7.string(),isRetentionLimited:z7.boolean(),groupBy:analyticsGroupBySchema}),visitors:z7.number().int().nonnegative(),pageviews:z7.number().int().nonnegative(),bounceRate:z7.number().min(0).max(100),viewsPerVisit:z7.number().nonnegative(),averageVisitDurationSeconds:z7.number().nonnegative(),visitorsSeries:z7.array(z7.object({date:z7.string(),visitors:z7.number().int().nonnegative()})),topPages:z7.array(analyticsPageBreakdownSchema),topBrowsers:z7.array(analyticsBreakdownSchema),topDevices:z7.array(analyticsBreakdownSchema),topCountries:z7.array(analyticsBreakdownSchema),topSources:z7.array(analyticsBreakdownSchema),annotations:z7.array(analyticsAnnotationSchema)}),analyticsPageviewsResponseSchema=createResponseSchema(analyticsPageviewsSchema),analyticsDimensionSchema=z7.enum(["pages","browsers","devices","countries","sources"]),analyticsTopOutputSchema=z7.object({dimension:analyticsDimensionSchema,items:z7.array(z7.union([analyticsPageBreakdownSchema,analyticsBreakdownSchema]))}),analyticsAnnotationsOutputSchema=z7.object({annotations:z7.array(analyticsAnnotationSchema)}),analyticsAnnotationResponseSchema=createResponseSchema(analyticsAnnotationSchema);__name(projectAnalyticsTop,"projectAnalyticsTop");__name(projectAnalyticsAnnotations,"projectAnalyticsAnnotations");__name(projectAnalyticsAnnotation,"projectAnalyticsAnnotation");analyticsOperations={"analytics.pageviews":{domain:"analytics",summary:"Read site pageviews, visitors, range, breakdowns, and annotations for one Branch.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:branchNameSchema,...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsPageviewsResponseSchema,buildRequest:__name(({projectId,branch,preset,groupBy,from,to,days})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days})}),"buildRequest")},"analytics.top":{domain:"analytics",summary:"Read one ranked analytics breakdown for one Branch.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:branchNameSchema,dimension:analyticsDimensionSchema,limit:z7.number().int().min(1).max(100).optional(),...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsTopOutputSchema,buildRequest:__name(({projectId,branch,preset,groupBy,from,to,days})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days})}),"buildRequest"),projectOutput:projectAnalyticsTop},"analytics.annotationsList":{domain:"analytics",summary:"List analytics annotations in the selected Branch range.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:branchNameSchema,...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsAnnotationsOutputSchema,buildRequest:__name(({projectId,branch,preset,groupBy,from,to,days})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days})}),"buildRequest"),projectOutput:projectAnalyticsAnnotations},"analytics.annotationsSet":{domain:"analytics",summary:"Set an analytics annotation for one project date.",accessScope:"write",effect:"mutation",inputSchema:z7.object({projectId:uuidSchema,branch:branchNameSchema,date:z7.string().regex(/^\d{4}-\d{2}-\d{2}$/),content:z7.string().max(500)}).strict(),outputSchema:z7.union([analyticsAnnotationResponseSchema,z7.null()]),buildRequest:__name(({projectId,branch,date,content:content2})=>({method:"PUT",path:managementBranchPath(projectId,branch,`/analytics/annotations/${encodeURIComponent(date)}`),body:{content:content2}}),"buildRequest"),projectOutput:projectAnalyticsAnnotation},"analytics.annotationsDelete":{domain:"analytics",summary:"Delete an analytics annotation for one project date.",accessScope:"write",effect:"mutation",inputSchema:z7.object({projectId:uuidSchema,branch:branchNameSchema,date:z7.string().regex(/^\d{4}-\d{2}-\d{2}$/)}).strict(),outputSchema:z7.null(),buildRequest:__name(({projectId,branch,date})=>({method:"PUT",path:managementBranchPath(projectId,branch,`/analytics/annotations/${encodeURIComponent(date)}`),body:{content:""}}),"buildRequest"),projectOutput:__name(()=>null,"projectOutput")}}}});import{z as z8}from"zod";var assetPathItemSchema,AssetDTOSchema,AssetResponseSchema,AssetReadRequestSchema,assetDerivedFileSchema,assetReadBaseSchema,AssetReadResultSchema,GenerateResponseSchema,assetPageSchema,successMessageResponseSchema,assetGenerationInputSchema,assetUploadInputSchema,assetsOperations,init_assets=__esm({"../../packages/sdk/dist/operations/assets.js"(){"use strict";init_common();assetPathItemSchema=z8.object({id:z8.string(),name:z8.string()}),AssetDTOSchema=z8.object({id:z8.string(),name:z8.string(),type:z8.enum(["file","folder"]),originalFileName:z8.string().nullable(),parentId:z8.string().nullable(),mimeType:z8.string().nullable(),fileSize:z8.number().nullable(),url:z8.string().nullable(),storageKey:z8.string().nullable(),createdAt:z8.string(),updatedAt:z8.string(),altText:z8.string().nullable().optional(),caption:z8.string().nullable().optional(),aiCaption:z8.string().nullable().optional(),aiAltText:z8.string().nullable().optional(),aiTags:z8.array(z8.string()).nullable().optional(),aiPrimaryColor:z8.string().nullable().optional(),aiProcessingStatus:z8.string().nullable().optional(),width:z8.number().nullable().optional(),height:z8.number().nullable().optional(),path:z8.array(assetPathItemSchema).optional(),hasChildren:z8.boolean().optional()}),AssetResponseSchema=createResponseSchema(AssetDTOSchema),AssetReadRequestSchema=z8.object({cursor:z8.string().optional(),query:z8.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=z8.object({url:z8.url(),mediaType:z8.string(),filename:z8.string()}),assetReadBaseSchema=z8.object({assetId:z8.uuid(),filename:z8.string(),mediaType:z8.string(),representation:z8.enum(["text","table","document","archive","image","transcript","video","model"]),content:z8.string(),derivedFiles:z8.array(assetDerivedFileSchema).optional()}),AssetReadResultSchema=z8.discriminatedUnion("mode",[assetReadBaseSchema.extend({mode:z8.literal("page"),start:z8.number().int().nonnegative(),end:z8.number().int().nonnegative(),total:z8.number().int().nonnegative(),nextCursor:z8.string().nullable(),complete:z8.boolean()}),assetReadBaseSchema.extend({mode:z8.literal("query"),query:z8.string(),source:z8.enum(["original-file","canonical-text","derived-files"]),truncated:z8.boolean()})]),GenerateResponseSchema=createResponseSchema(z8.object({jobId:z8.string(),status:z8.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema.optional(),error:z8.string().nullable().optional(),credits:z8.number().optional(),costUsd:z8.number().optional(),billingMode:z8.enum(["fimo-credits","provider-account"]).optional(),task:z8.enum(["image.generate","image.edit","image.remove-background","image.upscale","video.generate","video.animate","video.replace"]).optional(),quality:z8.enum(["draft","standard","premium"]).optional()})),assetPageSchema=pageSchema(AssetDTOSchema),successMessageResponseSchema=z8.object({data:z8.object({message:z8.literal("success")})}),assetGenerationInputSchema=z8.object({projectId:uuidSchema,branch:branchNameSchema,task:z8.string().min(1).optional(),model:z8.string().min(1).optional(),options:z8.record(z8.string(),z8.unknown()),name:z8.string().min(1).max(255).optional(),parentId:uuidSchema.nullable().optional(),altText:z8.string().max(2e3).optional(),caption:z8.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=z8.object({projectId:uuidSchema,sessionId:uuidSchema,url:z8.url().max(4096).refine(url=>url.startsWith("https://")||url.startsWith("http://"),"URL must use HTTP or HTTPS"),filename:z8.string().trim().min(1).max(255).refine(filename=>!filename.includes("/")&&!filename.includes("\\"),"Filename must not contain a path").optional(),name:z8.string().trim().min(1).max(255).optional(),parentId:uuidSchema.nullable().optional(),folderPath:z8.string().max(1024).refine(path53=>path53.split("/").some(segment=>segment.trim()),"Folder path must contain a folder name").refine(path53=>path53.split("/").every(segment=>![".",".."].includes(segment.trim())),"Folder path cannot contain . or .. segments").optional(),altText:z8.string().max(2e3).optional(),caption:z8.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:z8.object({projectId:uuidSchema,branch:branchNameSchema,parentId:uuidSchema.optional(),search:z8.string().max(200).optional(),type:z8.enum(["file","folder"]).optional(),mimePrefix:z8.string().max(50).optional(),sortBy:z8.enum(["name","createdAt","updatedAt","fileSize","type"]).optional(),sortDirection:z8.enum(["asc","desc"]).optional(),includePath:z8.boolean().optional(),excludeHidden:z8.boolean().optional(),...paginationShape}).strict().superRefine(paginationRefinement),outputSchema:assetPageSchema,buildRequest:__name(({projectId,branch,parentId,search,type,mimePrefix,sortBy,sortDirection,includePath,excludeHidden,limit,cursor,offset})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema}).strict(),outputSchema:AssetResponseSchema,buildRequest:__name(({projectId,branch,id})=>({method:"GET",path:tenantPath(projectId,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:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema,...AssetReadRequestSchema.shape}).strict().refine(input=>input.cursor===void 0||input.query===void 0,{message:"Use either cursor or query, not both."}),outputSchema:createResponseSchema(AssetReadResultSchema),buildRequest:__name(({projectId,branch,id,cursor,query})=>({method:"POST",path:tenantPath(projectId,branch,`/assets/${encodeURIComponent(id)}/read`),body:{cursor,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:GenerateResponseSchema,buildRequest:__name(({projectId,branch,task,model,options,name,parentId,altText,caption})=>({method:"POST",path:tenantPath(projectId,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:AssetDTOSchema}),buildRequest:__name(({projectId,sessionId,...upload})=>({method:"POST",path:managementProjectPath(projectId,`/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:z8.object({projectId:uuidSchema,branch:branchNameSchema,name:z8.string().min(1).max(255),parentId:uuidSchema.nullable().optional()}).strict(),outputSchema:AssetResponseSchema,buildRequest:__name(({projectId,branch,name,parentId})=>({method:"POST",path:tenantPath(projectId,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:z8.object({projectId:uuidSchema,branch:branchNameSchema,sourceAssetId:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z8.record(z8.string(),z8.unknown()),buildRequest:__name(({projectId,branch,sourceAssetId,replacementAssetId})=>({method:"POST",path:tenantPath(projectId,branch,`/assets/${encodeURIComponent(sourceAssetId)}/replace-references`),body:{replacementAssetId}}),"buildRequest"),projectOutput:__name(body=>z8.object({data:z8.record(z8.string(),z8.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:z8.object({projectId:uuidSchema,branch:branchNameSchema,sourceAssetId:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z8.record(z8.string(),z8.unknown()),buildRequest:__name(({projectId,branch,sourceAssetId,replacementAssetId})=>({method:"POST",path:tenantPath(projectId,branch,"/assets/removals"),body:{intent:"replace-and-remove",assetIds:[sourceAssetId],replacementAssetId}}),"buildRequest"),projectOutput:__name(body=>z8.object({data:z8.record(z8.string(),z8.unknown())}).parse(body).data,"projectOutput")},"assets.destroy":{domain:"assets",summary:"Permanently destroy an asset on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema}).strict(),outputSchema:z8.unknown(),buildRequest:__name(({projectId,branch,id})=>({method:"DELETE",path:tenantPath(projectId,branch,`/assets/${encodeURIComponent(id)}/permanent`)}),"buildRequest"),projectOutput:__name(body=>z8.object({data:z8.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:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z8.record(z8.string(),z8.unknown()),buildRequest:__name(({projectId,branch,id,replacementAssetId})=>({method:"POST",path:tenantPath(projectId,branch,`/assets/${encodeURIComponent(id)}/replace-and-destroy`),body:{replacementAssetId}}),"buildRequest"),projectOutput:__name(body=>z8.object({data:z8.record(z8.string(),z8.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:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema,parentId:uuidSchema.nullable()}).strict(),outputSchema:AssetResponseSchema,buildRequest:__name(({projectId,branch,id,parentId})=>({method:"POST",path:tenantPath(projectId,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:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema}).strict(),outputSchema:successMessageResponseSchema,buildRequest:__name(({projectId,branch,id})=>({method:"DELETE",path:tenantPath(projectId,branch,`/assets/${encodeURIComponent(id)}`)}),"buildRequest")}}}});import{z as z9}from"zod";var creditBalanceOutputSchema,billingOperations,init_billing=__esm({"../../packages/sdk/dist/operations/billing.js"(){"use strict";init_common();creditBalanceOutputSchema=z9.object({projectId:uuidSchema,organizationId:z9.string(),balance:z9.object({totalAvailable:z9.number(),nearLimit:z9.boolean(),canUseAi:z9.boolean(),buckets:z9.object({dailyFreeAvailable:z9.number(),monthlyAvailable:z9.number(),purchasedAvailable:z9.number(),awardedAvailable:z9.number()})}),allowances:z9.object({dailyCredits:z9.object({periodCap:z9.number(),dailyGrant:z9.number(),usedThisPeriod:z9.number(),remainingThisPeriod:z9.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:z9.object({projectId:uuidSchema}).strict(),outputSchema:creditBalanceOutputSchema,buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/billing/credits")}),"buildRequest"),projectOutput:__name(body=>creditBalanceOutputSchema.parse(responseData(body)),"projectOutput")}}}});import{z as z10}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=z10.object({ok:z10.boolean(),mergeId:uuidSchema,fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),fromEnv:branchNameSchema,toEnv:branchNameSchema,applied:z10.array(z10.object({surface:backendSurfaceSchema,count:z10.number().int().nonnegative()})),conflicts:z10.array(backendConflictSchema).optional(),summary:z10.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=z10.object({mergeId:uuidSchema,conflicts:z10.array(backendConflictSchema),draftResolutions:z10.array(conflictResolutionSchema.extend({surface:backendSurfaceSchema})),status:z10.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 data2=body.data.map(({env:_env,parentEnv:_parentEnv,...branch})=>branch);return z10.object({data:z10.array(branchSchema)}).parse({data:data2})}function projectBranchStatus(body){if(branchStatusOutputSchema.safeParse(body).success)return branchStatusOutputSchema.parse(body);let report=z10.object({branch:branchNameSchema.optional(),env:branchNameSchema,vs:branchNameSchema,syncState:z10.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:isoTimestampSchema,surfaces:z10.array(backendSurfaceDeltaSchema).max(6),crossSurface:z10.array(backendCrossSurfaceFindingSchema).max(1e3).optional()}).parse(responseData(body));return branchStatusOutputSchema.parse(withoutUndefined({branch:report.branch??report.env,against:report.vs,state:report.syncState==="in-sync"?"clean":"changed",syncState:report.syncState,generatedAt:report.generatedAt,surfaces:report.surfaces.map(({surface,status,changedCount,conflictCount,items,truncated,error})=>withoutUndefined({surface:publicSurface(surface),status,changedCount,conflictCount,items,truncated,error})),crossSurface:report.crossSurface?.map(projectCrossSurfaceFinding)}))}function projectBranchDiff(body){if(branchDiffOutputSchema.safeParse(body).success)return branchDiffOutputSchema.parse(body);let report=z10.object({fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),fromEnv:branchNameSchema,toEnv:branchNameSchema,generatedAt:isoTimestampSchema,fingerprint:z10.string().min(1),surfaces:z10.array(backendSurfaceDeltaSchema).max(6),crossSurface:z10.array(backendCrossSurfaceFindingSchema).max(1e3).optional()}).parse(responseData(body));return branchDiffOutputSchema.parse({branch:report.fromBranch??report.fromEnv,against:report.toBranch??report.toEnv,generatedAt:report.generatedAt,fingerprint:report.fingerprint,surfaces:report.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:report.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,mergeHydrationSchema,codeConflictBlobSchema,codeConflictDetailOutputSchema,branchesOperations,init_branches=__esm({"../../packages/sdk/dist/operations/branches.js"(){"use strict";init_common();branchSchema=z10.object({id:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,parentBranch:branchNameSchema.nullable().optional(),status:z10.enum(["provisioning","active","deleted"]),kind:z10.enum(["user","agent-session"]),createdAt:z10.string().optional(),updatedAt:z10.string().optional(),createdBy:z10.string().nullable().optional(),deletedAt:z10.string().nullable().optional()}).passthrough(),branchResponseSchema=z10.object({data:branchSchema}),branchSurfaceStatusSchema=z10.enum(["ok","timed_out","failed","unchanged"]),branchDeltaVerbSchema=z10.enum(["added","removed","changed","conflict"]),isoTimestampSchema=z10.iso.datetime(),backendCrossSurfaceFindingSchema=z10.object({id:z10.string(),kind:z10.string(),description:z10.string(),severity:z10.enum(["warning","error"]),source:z10.object({surface:backendSurfaceSchema,key:z10.string()}),target:z10.object({surface:backendSurfaceSchema,key:z10.string()}),actions:z10.array(z10.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=z10.object({surface:backendSurfaceSchema,status:branchSurfaceStatusSchema,changedCount:z10.number().int().nonnegative(),conflictCount:z10.number().int().nonnegative(),items:z10.array(z10.object({verb:branchDeltaVerbSchema,key:z10.string(),detail:z10.string().optional(),origin:z10.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z10.record(z10.string(),z10.unknown()).optional()})).max(1e3).optional(),truncated:z10.boolean().optional(),error:z10.string().optional()}),branchSurfaceSummarySchema=z10.object({surface:branchSurfaceSchema,status:branchSurfaceStatusSchema,changedCount:z10.number().int().nonnegative(),conflictCount:z10.number().int().nonnegative(),error:z10.string().optional(),items:z10.array(z10.object({verb:branchDeltaVerbSchema,key:z10.string(),detail:z10.string().optional(),origin:z10.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z10.record(z10.string(),z10.unknown()).optional()})).optional(),truncated:z10.boolean().optional()}),branchStatusOutputSchema=z10.object({branch:branchNameSchema,against:branchNameSchema,state:z10.enum(["clean","changed"]),syncState:z10.enum(["in-sync","ahead","behind","diverged","unknown"]).optional(),generatedAt:isoTimestampSchema,surfaces:z10.array(branchSurfaceSummarySchema).max(6),crossSurface:z10.array(crossSurfaceFindingSchema).max(1e3).optional()}),branchDiffItemSchema=z10.object({verb:branchDeltaVerbSchema,key:z10.string(),detail:z10.string().optional(),meta:z10.record(z10.string(),z10.unknown()).optional()}),branchDiffOutputSchema=branchStatusOutputSchema.omit({state:!0}).extend({fingerprint:z10.string().min(1),surfaces:z10.array(branchSurfaceSummarySchema.extend({truncated:z10.boolean(),items:z10.array(branchDiffItemSchema).max(1e3)})).max(6)}),codeFileDiffOutputSchema=z10.object({path:z10.string(),state:z10.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z10.string(),additions:z10.number().int().nonnegative(),deletions:z10.number().int().nonnegative()}),contentSnapshotSchema=z10.object({id:z10.string(),slug:z10.string(),contentType:z10.string(),data:z10.record(z10.string(),z10.unknown()),updatedAt:isoTimestampSchema}),contentEntryDiffOutputSchema=z10.object({collection:z10.string(),rowId:z10.string(),parent:contentSnapshotSchema.nullable(),child:contentSnapshotSchema.nullable()}),schemaSnapshotSchema=z10.object({name:z10.string(),label:z10.string(),isSingleton:z10.boolean(),fields:z10.record(z10.string(),z10.unknown())}),schemaDiffOutputSchema=z10.object({typeName:z10.string(),parent:schemaSnapshotSchema.nullable(),child:schemaSnapshotSchema.nullable()}),assetSnapshotSchema=z10.object({id:z10.string(),name:z10.string(),type:z10.enum(["file","folder"]),mimeType:z10.string().nullable(),storageKey:z10.string().nullable(),url:z10.string().nullable(),fileSize:z10.number().nullable(),width:z10.number().nullable(),height:z10.number().nullable(),altText:z10.string().nullable(),caption:z10.string().nullable(),createdAt:isoTimestampSchema,updatedAt:isoTimestampSchema}),assetDiffOutputSchema=z10.object({assetId:z10.string(),parent:assetSnapshotSchema.nullable(),child:assetSnapshotSchema.nullable()}),labelDiffOutputSchema=z10.object({locale:z10.string(),key:z10.string(),parent:z10.string().nullable(),child:z10.string().nullable()}),formSnapshotSchema=z10.object({formName:z10.string(),label:z10.string().nullable(),schemaFingerprint:z10.string(),fields:z10.record(z10.string(),z10.unknown())}),formDiffOutputSchema=z10.object({formName:z10.string(),parent:formSnapshotSchema.nullable(),child:formSnapshotSchema.nullable()}),backendConflictSchema=z10.object({surface:backendSurfaceSchema,key:z10.string(),kind:z10.enum(["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"]).optional(),description:z10.string(),parentValue:z10.unknown().optional(),childValue:z10.unknown().optional(),conflictingFields:z10.array(z10.string()).optional(),code:z10.object({path:z10.string(),unresolvable:z10.boolean().optional(),reason:z10.string().optional()}).optional()}),conflictSchema=backendConflictSchema.extend({surface:branchSurfaceSchema}),fieldPickSchema=z10.object({field:z10.string(),choice:z10.enum(["parent","child","pick","ai-pick"]),pickedValue:z10.unknown().optional(),aiSessionId:z10.string().optional()}),conflictResolutionSchema=z10.object({surface:branchSurfaceSchema,key:z10.string(),choice:z10.enum(["parent","child","pick"]),pickedValue:z10.unknown().optional(),fieldPicks:z10.array(fieldPickSchema).optional()}),mergeResultSchema=z10.object({ok:z10.boolean(),mergeId:uuidSchema,fromBranch:branchNameSchema,toBranch:branchNameSchema,applied:z10.array(z10.object({surface:branchSurfaceSchema,count:z10.number().int().nonnegative()})),conflicts:z10.array(conflictSchema).optional(),summary:z10.string().optional()}),mergeHydrationSchema=z10.object({mergeId:uuidSchema,conflicts:z10.array(conflictSchema),draftResolutions:z10.array(conflictResolutionSchema),status:z10.string()}).passthrough();__name(projectConflict,"projectConflict");__name(backendResolution,"backendResolution");__name(projectMergeResult,"projectMergeResult");__name(projectMergeHydration,"projectMergeHydration");codeConflictBlobSchema=z10.object({content:z10.string(),sha:z10.string().nullable().optional()}).passthrough(),codeConflictDetailOutputSchema=z10.object({path:z10.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 project.",accessScope:"read",effect:"read",inputSchema:z10.object({projectId:uuidSchema,includeDeleted:z10.boolean().optional(),includeAgentBranches:z10.boolean().optional()}).strict(),outputSchema:z10.object({data:z10.array(branchSchema)}),buildRequest:__name(({projectId,includeDeleted,includeAgentBranches})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/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:z10.object({projectId:uuidSchema,from:branchNameSchema.optional(),name:branchNameSchema}).strict(),outputSchema:branchResponseSchema,buildRequest:__name(({projectId,from,name})=>({method:"POST",path:managementProjectPath(projectId,"/branches"),body:from===void 0?{branch:name}:{branch:name,parentBranch:from}}),"buildRequest"),projectOutput:projectBranchRecord},"branches.get":{domain:"branches",summary:"Read one durable project Branch.",accessScope:"read",effect:"read",inputSchema:z10.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:branchSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema.optional()}).strict(),outputSchema:z10.object({branch:branchSchema,conflicts:z10.number().int().nonnegative()}),buildRequest:__name(({projectId,branch,from})=>({method:"POST",path:managementBranchPath(projectId,branch,"/sync"),body:withoutUndefined({from})}),"buildRequest"),projectOutput:__name(body=>{let data2=z10.object({branch:branchSchema.optional(),env:branchSchema.optional(),conflicts:z10.number().int().nonnegative()}).parse(responseData(body)),branch=data2.branch??data2.env;if(!branch)throw new Error("Expected a synced Branch.");return{branch,conflicts:data2.conflicts}},"projectOutput")},"branches.delete":{domain:"branches",summary:"Delete one durable project Branch.",accessScope:"code",effect:"mutation",inputSchema:z10.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:z10.unknown(),buildRequest:__name(({projectId,branch})=>({method:"DELETE",path:managementBranchPath(projectId,branch,"")}),"buildRequest")},"branches.status":{domain:"branches",summary:"Summarize bounded differences between two durable Branches.",accessScope:"read",effect:"read",inputSchema:z10.object({projectId:uuidSchema,branch:branchNameSchema,against:branchNameSchema.optional(),surfaces:z10.array(branchSurfaceSchema).min(1).max(6).optional()}).strict(),outputSchema:branchStatusOutputSchema,buildRequest:__name(({projectId,branch,against,surfaces})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,against:branchNameSchema.optional(),surfaces:z10.array(branchSurfaceSchema).min(1).max(6).optional()}).strict(),outputSchema:branchDiffOutputSchema,buildRequest:__name(({projectId,branch,against,surfaces})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,path:z10.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:codeFileDiffOutputSchema,buildRequest:__name(({projectId,branch,path:path53,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/diff/code/file"),{path:path53,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,collection:z10.string().min(1),rowId:z10.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:contentEntryDiffOutputSchema,buildRequest:__name(({projectId,branch,collection,rowId,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z10.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:schemaDiffOutputSchema,buildRequest:__name(({projectId,branch,typeName,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,assetId:z10.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:assetDiffOutputSchema,buildRequest:__name(({projectId,branch,assetId,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,locale:z10.string().min(1),key:z10.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:labelDiffOutputSchema,buildRequest:__name(({projectId,branch,locale,key,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,formName:z10.string().min(1).max(255),against:branchNameSchema.optional()}).strict(),outputSchema:formDiffOutputSchema,buildRequest:__name(({projectId,branch,formName,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,allowDirectMerge:z10.boolean().optional()}).strict(),outputSchema:mergeResultSchema,buildRequest:__name(({projectId,branch,from,allowDirectMerge})=>({method:"POST",path:managementBranchPath(projectId,branch,"/merge"),body:withoutUndefined({from,allowDirectMerge})}),"buildRequest"),projectOutput:projectMergeResult},"branches.resolveMerge":{domain:"branches",summary:"Resume a parked durable Branch merge with operator resolutions.",accessScope:"code",effect:"mutation",inputSchema:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,mergeId:uuidSchema,resolutions:z10.array(conflictResolutionSchema)}).strict(),outputSchema:mergeResultSchema,buildRequest:__name(({projectId,branch,from,mergeId,resolutions})=>({method:"POST",path:managementBranchPath(projectId,branch,`/merge/${encodeURIComponent(from)}/resolve`),body:{mergeId,resolutions:resolutions.map(backendResolution)}}),"buildRequest"),projectOutput:projectMergeResult},"branches.cancelMerge":{domain:"branches",summary:"Cancel a parked durable Branch merge.",accessScope:"code",effect:"mutation",inputSchema:z10.object({projectId:uuidSchema,branch:branchNameSchema,mergeId:uuidSchema}).strict(),outputSchema:z10.object({ok:z10.boolean()}),buildRequest:__name(({projectId,branch,mergeId})=>({method:"POST",path:managementBranchPath(projectId,branch,"/merge/cancel"),body:{mergeId}}),"buildRequest"),projectOutput:__name(body=>z10.object({ok:z10.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:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema}).strict(),outputSchema:mergeHydrationSchema,buildRequest:__name(({projectId,branch,from})=>({method:"GET",path:managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,mergeId:uuidSchema,resolutions:z10.array(conflictResolutionSchema)}).strict(),outputSchema:z10.object({mergeId:uuidSchema,lastEditedAt:z10.string()}),buildRequest:__name(({projectId,branch,from,mergeId,resolutions})=>({method:"PUT",path:managementBranchPath(projectId,branch,`/merge/${encodeURIComponent(from)}/resolve/draft`),body:{mergeId,resolutions:resolutions.map(backendResolution)}}),"buildRequest"),projectOutput:__name(body=>z10.object({mergeId:uuidSchema,lastEditedAt:z10.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:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,path:z10.string().min(1)}).strict(),outputSchema:codeConflictDetailOutputSchema,buildRequest:__name(({projectId,branch,from,path:path53})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,`/merge/${encodeURIComponent(from)}/conflict/code`),{path:path53})}),"buildRequest"),projectOutput:projectDetail(codeConflictDetailOutputSchema)}}}});import{z as z11}from"zod";var projectDomainSchema,registeredDomainSchema,domainSearchResultSchema,domainPricingSchema,projectPath,forbidden,domainsOperations,init_domains=__esm({"../../packages/sdk/dist/operations/domains.js"(){"use strict";init_common();projectDomainSchema=z11.object({id:z11.string(),hostname:z11.string(),status:z11.string(),ssl:z11.record(z11.string(),z11.unknown()),cnameTarget:z11.string(),apexTargets:z11.array(z11.string()),dnsAutoConfigured:z11.boolean(),createdAt:z11.unknown(),provider:z11.enum(["cloudflare","saas_custom_domains"]),domainType:z11.enum(["subdomain","apex"])}).passthrough(),registeredDomainSchema=z11.object({id:uuidSchema,domain:z11.string(),status:z11.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),source:z11.enum(["fimo","external"]),autoRenew:z11.boolean(),paymentStatus:z11.enum(["pending","paid","failed","refunded"]).nullable(),checkoutUrl:z11.string().nullable()}).passthrough(),domainSearchResultSchema=z11.object({domain:z11.string(),available:z11.boolean(),premium:z11.boolean(),price:z11.number().nullable(),renewalPrice:z11.number().nullable(),purchaseType:z11.string().nullable()}).passthrough(),domainPricingSchema=z11.object({domain:z11.string(),price:z11.number().nullable(),renewalPrice:z11.number().nullable(),premium:z11.boolean(),allowedYears:z11.array(z11.number().int().positive())}).passthrough(),projectPath=__name((projectId,suffix)=>`/management/projects/${encodeURIComponent(projectId)}${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:z11.object({}).strict(),outputSchema:z11.object({domainPurchaseEnabled:z11.boolean(),publicationDomain:z11.string()}),buildRequest:__name(()=>({method:"GET",path:"/features"}),"buildRequest")},"domains.renameSubdomain":{domain:"domains",summary:"Change the built-in subdomain for a project.",accessScope:"write",effect:"mutation",inputSchema:z11.object({projectId:uuidSchema,slug:z11.string().min(1).max(63)}).strict(),outputSchema:z11.object({subdomain:z11.string(),subdomainUpdatedAt:z11.string()}),buildRequest:__name(({projectId,slug})=>({method:"PATCH",path:projectPath(projectId,"/subdomain"),body:{slug}}),"buildRequest"),projectOutput:responseData},"domains.suggestSubdomains":{domain:"domains",summary:"Suggest available built-in subdomains for a project.",accessScope:"read",effect:"read",inputSchema:z11.object({projectId:uuidSchema,base:z11.string().min(1).max(63).optional(),max:z11.number().int().positive().optional()}).strict(),outputSchema:z11.array(z11.string()),buildRequest:__name(({projectId,base,max})=>({method:"GET",path:addQuery(projectPath(projectId,"/subdomain/suggestions"),{base,max})}),"buildRequest"),projectOutput:__name(body=>z11.object({data:z11.object({suggestions:z11.array(z11.string())})}).parse(body).data.suggestions,"projectOutput")},"domains.list":{domain:"domains",summary:"List custom domains attached to a project.",accessScope:"read",effect:"read",inputSchema:z11.object({projectId:uuidSchema}).strict(),outputSchema:z11.array(projectDomainSchema),buildRequest:__name(({projectId})=>({method:"GET",path:projectPath(projectId,"/domains"),...forbidden}),"buildRequest"),projectOutput:responseData},"domains.add":{domain:"domains",summary:"Attach a custom domain to a project.",accessScope:"write",effect:"mutation",inputSchema:z11.object({projectId:uuidSchema,hostname:z11.string().min(1).max(255),redirectToWww:z11.boolean().optional()}).strict(),outputSchema:projectDomainSchema,buildRequest:__name(({projectId,hostname,redirectToWww})=>({method:"POST",path:projectPath(projectId,"/domains"),body:{hostname,redirectToWww},...forbidden}),"buildRequest"),projectOutput:responseData},"domains.refresh":{domain:"domains",summary:"Refresh custom-domain verification state.",accessScope:"write",effect:"mutation",inputSchema:z11.object({projectId:uuidSchema,domainId:z11.string().min(1)}).strict(),outputSchema:projectDomainSchema,buildRequest:__name(({projectId,domainId})=>({method:"POST",path:projectPath(projectId,`/domains/${encodeURIComponent(domainId)}/refresh`),...forbidden}),"buildRequest"),projectOutput:responseData},"domains.remove":{domain:"domains",summary:"Detach a custom domain from a project.",accessScope:"write",effect:"mutation",inputSchema:z11.object({projectId:uuidSchema,domainId:z11.string().min(1)}).strict(),outputSchema:z11.unknown(),buildRequest:__name(({projectId,domainId})=>({method:"DELETE",path:projectPath(projectId,`/domains/${encodeURIComponent(domainId)}`),...forbidden}),"buildRequest")},"registeredDomains.search":{domain:"domains",summary:"Search domain-registration availability.",accessScope:"read",effect:"read",inputSchema:z11.object({keyword:z11.string().min(1).max(100),tldFilter:z11.array(z11.string().min(1)).optional()}).strict(),outputSchema:z11.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:z11.object({domain:z11.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:z11.object({organizationId:z11.string().min(1)}).strict(),outputSchema:z11.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:z11.object({organizationId:z11.string().min(1),domain:z11.string().min(1).max(255),years:z11.number().int().min(1).max(10).optional(),autoRenew:z11.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:z11.object({organizationId:z11.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 z12}from"zod";function projectEntriesPage(body){return projectOffsetPage(PaginatedEntriesDTOSchema.parse(body))}var EntryDTOSchema,PaginatedEntriesDTOSchema,EntryResponseSchema,MAX_BULK_ENTRIES,entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema,EntryWhereSchema,EntryMutationBodySchema,BulkCreateEntriesResponseSchema,BulkUpdateEntriesResponseSchema,BulkDeleteEntriesResponseSchema,entriesPageSchema,typeNameSchema,localeSchema,populateSchema,entryDataSchema,entryResponseSchema,entriesOperations,init_entries=__esm({"../../packages/sdk/dist/operations/entries.js"(){"use strict";init_common();EntryDTOSchema=z12.object({id:z12.string(),entryId:z12.string(),documentId:z12.string(),slug:z12.string(),locale:z12.string().optional(),createdAt:z12.string(),updatedAt:z12.string(),__fimo:z12.object({contentType:z12.string()})}).passthrough(),PaginatedEntriesDTOSchema=z12.object({data:z12.array(EntryDTOSchema),meta:z12.object({limit:z12.number(),offset:z12.number(),total:z12.number(),hasMore:z12.boolean()})}),EntryResponseSchema=createResponseSchema(EntryDTOSchema),MAX_BULK_ENTRIES=1e3,entryWhereScalarSchema=z12.union([z12.string(),z12.number(),z12.boolean(),z12.null()]),entryWhereOperatorSchema=z12.object({$eq:entryWhereScalarSchema.optional(),$ne:entryWhereScalarSchema.optional(),$gt:entryWhereScalarSchema.optional(),$gte:entryWhereScalarSchema.optional(),$lt:entryWhereScalarSchema.optional(),$lte:entryWhereScalarSchema.optional(),$in:z12.array(entryWhereScalarSchema).optional(),$nin:z12.array(entryWhereScalarSchema).optional(),$contains:z12.string().optional(),$startsWith:z12.string().optional(),$null:z12.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema=z12.record(z12.string(),z12.union([entryWhereScalarSchema,entryWhereOperatorSchema])),EntryWhereSchema=z12.record(z12.string(),z12.union([entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema])),EntryMutationBodySchema=z12.object({data:z12.record(z12.string(),z12.unknown()),locale:z12.string().min(1).optional(),documentId:z12.uuid().optional()}),BulkCreateEntriesResponseSchema=z12.object({data:z12.array(EntryDTOSchema),meta:z12.object({created:z12.number().int().nonnegative()})}),BulkUpdateEntriesResponseSchema=z12.object({data:z12.array(EntryDTOSchema),meta:z12.object({updated:z12.number().int().nonnegative(),missing:z12.array(z12.string())})}),BulkDeleteEntriesResponseSchema=z12.object({data:z12.array(EntryDTOSchema),meta:z12.object({deleted:z12.number().int().nonnegative(),missing:z12.array(z12.string())})});__name(projectEntriesPage,"projectEntriesPage");entriesPageSchema=pageSchema(EntryDTOSchema),typeNameSchema=z12.string().min(1).max(255),localeSchema=z12.string().min(1),populateSchema=z12.array(z12.string().min(1)).max(50).optional(),entryDataSchema=EntryMutationBodySchema.shape.data,entryResponseSchema=EntryResponseSchema,entriesOperations={"entries.list":{domain:"entries",summary:"List entries for one content type on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,locale:localeSchema.optional(),...paginationShape}).strict().superRefine(paginationRefinement),outputSchema:entriesPageSchema,buildRequest:__name(({projectId,branch,typeName,locale,limit,cursor,offset})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional(),populate:populateSchema,localeFallbacks:z12.boolean().optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,id,locale,populate,localeFallbacks})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z12.object({projectId:uuidSchema,branch:branchNameSchema,search:z12.string().min(1).optional(),locale:localeSchema.optional(),...paginationShape}).strict().superRefine(paginationRefinement),outputSchema:entriesPageSchema,buildRequest:__name(({projectId,branch,search,locale,limit,cursor,offset})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z12.string().min(1).max(255),data:entryDataSchema,locale:z12.string().min(1).optional(),documentId:z12.string().min(1).optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,data:data2,locale,documentId})=>({method:"POST",path:tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}`),body:{data:data2,locale,documentId}}),"buildRequest")},"entries.update":{domain:"entries",summary:"Update one entry of a content type on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z12.string().min(1).max(255),id:uuidSchema,data:entryDataSchema,locale:z12.string().min(1).optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,id,data:data2,locale})=>({method:"PUT",path:addQuery(tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale}),body:{data:data2}}),"buildRequest")},"entries.updateFields":{domain:"entries",summary:"Update entry fields using the direct Branch entry payload.",accessScope:"write",effect:"mutation",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional(),fields:z12.record(z12.string(),z12.unknown())}).strict(),outputSchema:z12.unknown(),buildRequest:__name(({projectId,branch,typeName,id,locale,fields})=>({method:"PUT",path:addQuery(tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale}),body:fields}),"buildRequest"),projectOutput:__name(body=>z12.object({data:z12.unknown()}).parse(body).data,"projectOutput")},"entries.querySql":{domain:"entries",summary:"Run a read-only SQL query against Branch content.",accessScope:"read",effect:"read",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,sql:z12.string().min(1)}).strict(),outputSchema:z12.object({data:z12.array(z12.record(z12.string(),z12.unknown())),meta:z12.object({rowCount:z12.number().int().nonnegative(),truncated:z12.boolean()})}),buildRequest:__name(({projectId,branch,sql})=>({method:"POST",path:tenantPath(projectId,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:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,id,locale})=>({method:"DELETE",path:addQuery(tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale})}),"buildRequest")},"entries.bulkCreate":{domain:"entries",summary:`Create up to ${MAX_BULK_ENTRIES} entries of one content type on a Fimo Branch.`,accessScope:"write",effect:"mutation",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,entries:z12.array(z12.unknown()).max(MAX_BULK_ENTRIES)}).strict(),outputSchema:BulkCreateEntriesResponseSchema,buildRequest:__name(({projectId,branch,typeName,entries:entries2})=>({method:"POST",path:tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/bulk-create`),body:{entries:entries2}}),"buildRequest")},"entries.bulkUpdate":{domain:"entries",summary:`Update up to ${MAX_BULK_ENTRIES} entries by IDs, a bounded filter, or per-entry updates.`,accessScope:"write",effect:"mutation",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,selection:z12.union([z12.object({ids:z12.array(uuidSchema).min(1).max(MAX_BULK_ENTRIES)}),z12.object({where:EntryWhereSchema}),z12.object({updates:z12.array(z12.object({id:uuidSchema,body:EntryMutationBodySchema})).min(1).max(MAX_BULK_ENTRIES)})]),body:EntryMutationBodySchema.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:BulkUpdateEntriesResponseSchema,buildRequest:__name(({projectId,branch,typeName,selection,body})=>({method:"POST",path:tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/bulk-update`),body:"updates"in selection?selection:{...selection,body}}),"buildRequest")},"entries.bulkDelete":{domain:"entries",summary:`Delete up to ${MAX_BULK_ENTRIES} entries by IDs or a bounded filter.`,accessScope:"write",effect:"mutation",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,selection:z12.union([z12.object({ids:z12.array(uuidSchema).min(1).max(MAX_BULK_ENTRIES)}),z12.object({where:EntryWhereSchema})]),locale:localeSchema.optional()}).strict(),outputSchema:BulkDeleteEntriesResponseSchema,buildRequest:__name(({projectId,branch,typeName,selection,locale})=>({method:"POST",path:tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/bulk-delete`),body:{...selection,locale}}),"buildRequest")}}}});import{z as z13}from"zod";var productionEnvironmentSchema,previewEnvironmentSchema,customEnvironmentSchema,environmentSchema,environmentWriteShape,environmentsOperations,init_environments=__esm({"../../packages/sdk/dist/operations/environments.js"(){"use strict";init_common();productionEnvironmentSchema=z13.object({id:z13.literal("production"),projectId:uuidSchema,name:z13.string(),kind:z13.literal("production"),sourceBranch:z13.string().min(1),isPublished:z13.boolean(),url:z13.string().nullable()}),previewEnvironmentSchema=z13.object({id:z13.literal("preview"),projectId:uuidSchema,name:z13.string(),kind:z13.literal("preview"),matchedBranchCount:z13.number().int().nonnegative()}),customEnvironmentSchema=z13.object({id:uuidSchema,projectId:uuidSchema,name:z13.string().min(1).max(64),branchPatterns:z13.array(z13.string().min(1).max(255)).min(1),description:z13.string().max(255).nullable(),kind:z13.literal("custom"),matchedBranchCount:z13.number().int().nonnegative()}),environmentSchema=z13.discriminatedUnion("kind",[productionEnvironmentSchema,previewEnvironmentSchema,customEnvironmentSchema]),environmentWriteShape={name:z13.string().trim().min(1).max(64),branchPatterns:z13.array(z13.string().min(1).max(255)).min(1),description:z13.string().trim().max(255).nullable().optional()},environmentsOperations={"environments.list":{domain:"environments",summary:"List the compatibility Environments configured for one project.",accessScope:"read",effect:"read",inputSchema:z13.object({projectId:uuidSchema}).strict(),outputSchema:z13.array(environmentSchema),buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/environments")}),"buildRequest"),projectOutput:__name(body=>z13.array(environmentSchema).parse(responseData(body)),"projectOutput")},"environments.create":{domain:"environments",summary:"Create a custom compatibility Environment for one project.",accessScope:"write",effect:"mutation",inputSchema:z13.object({projectId:uuidSchema,...environmentWriteShape}).strict(),outputSchema:environmentSchema,buildRequest:__name(({projectId,...body})=>({method:"POST",path:managementProjectPath(projectId,"/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:z13.object({projectId:uuidSchema,environmentId:z13.string().min(1),...environmentWriteShape}).strict(),outputSchema:environmentSchema,buildRequest:__name(({projectId,environmentId,...body})=>({method:"PATCH",path:managementProjectPath(projectId,`/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:z13.object({projectId:uuidSchema,environmentId:z13.string().min(1)}).strict(),outputSchema:z13.object({deletedId:uuidSchema}),buildRequest:__name(({projectId,environmentId})=>({method:"DELETE",path:managementProjectPath(projectId,`/environments/${encodeURIComponent(environmentId)}`),preserveForbidden:!0}),"buildRequest"),projectOutput:__name(body=>z13.object({deletedId:uuidSchema}).parse(responseData(body)),"projectOutput")}}}});import{z as z14}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,fileEditOutputSchema,fileDeleteOutputSchema,fileSearchInputShape,fileReadInputSchema,filesOperations,init_files=__esm({"../../packages/sdk/dist/operations/files.js"(){"use strict";init_common();fileReadOutputSchema=z14.object({data:z14.object({path:z14.string(),content:z14.string(),totalLines:z14.number().int().nonnegative()}).passthrough()}),fileGlobOutputSchema=z14.object({data:z14.object({paths:z14.array(z14.string().min(1)).max(2e3),truncated:z14.boolean()})}),fileGrepOutputSchema=z14.object({data:z14.object({matches:z14.array(z14.object({path:z14.string().min(1),line:z14.number().int().positive(),text:z14.string()})).max(200),truncated:z14.boolean()})}),fileWriteInputSchema=z14.object({projectId:uuidSchema,sessionId:uuidSchema,path:z14.string().min(1).max(1024),content:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES,`Content exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES}-byte write limit.`),overwrite:z14.boolean().optional()}).strict(),fileEditInputSchema=z14.object({projectId:uuidSchema,sessionId:uuidSchema,path:z14.string().min(1).max(1024),oldString:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES,`Text exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES}-byte edit limit.`).pipe(z14.string().min(1)),newString:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES,`Text exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES}-byte edit limit.`),replaceAll:z14.boolean().optional()}).strict(),fileWriteOutputSchema=sessionEnvelopeSchema.extend({file:z14.object({path:z14.string(),created:z14.boolean(),tip:z14.string().min(1)}).passthrough()}),fileEditOutputSchema=sessionEnvelopeSchema.extend({file:z14.object({path:z14.string(),replacements:z14.number().int().nonnegative(),tip:z14.string().min(1)}).passthrough()}),fileDeleteOutputSchema=sessionEnvelopeSchema.extend({file:z14.object({path:z14.string(),deleted:z14.literal(!0),tip:z14.string().min(1)})}),fileSearchInputShape={projectId:uuidSchema,branch:branchNameSchema.optional(),sessionId:uuidSchema.optional()};__name(requireBranchOrSession,"requireBranchOrSession");fileReadInputSchema=z14.object({projectId:uuidSchema,branch:branchNameSchema.optional(),sessionId:uuidSchema.optional(),path:z14.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,branch,sessionId,path:path53})=>({method:"GET",path:addQuery(projectFilesPath(projectId,branch,sessionId,"/file"),{path:path53})}),"buildRequest")},"files.glob":{domain:"files",summary:"List bounded safe project file paths from a Branch or owned work session.",accessScope:"read",effect:"read",inputSchema:z14.object({...fileSearchInputShape,pattern:z14.string().min(1).max(300).optional(),limit:z14.number().int().min(1).max(2e3).optional()}).strict().superRefine(requireBranchOrSession),outputSchema:fileGlobOutputSchema,buildRequest:__name(({projectId,branch,sessionId,pattern,limit})=>({method:"GET",path:addQuery(projectFilesPath(projectId,branch,sessionId,"/paths"),{pattern,limit})}),"buildRequest")},"files.grep":{domain:"files",summary:"Search bounded safe project file contents on a Branch or owned work session.",accessScope:"read",effect:"read",inputSchema:z14.object({...fileSearchInputShape,pattern:z14.string().min(1).max(200),include:z14.string().min(1).max(300).optional(),caseInsensitive:z14.boolean().optional(),maxMatches:z14.number().int().min(1).max(200).optional()}).strict().superRefine(requireBranchOrSession),outputSchema:fileGrepOutputSchema,buildRequest:__name(({projectId,branch,sessionId,pattern,include,caseInsensitive,maxMatches})=>({method:"GET",path:addQuery(projectFilesPath(projectId,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,sessionId,path:path53,content:content2,overwrite})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/write`),body:withoutUndefined({path:path53,content:content2,overwrite})}),"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,sessionId,path:path53,oldString,newString,replaceAll})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/edit`),body:withoutUndefined({path:path53,oldString,newString,replaceAll})}),"buildRequest")},"files.delete":{domain:"files",summary:"Delete one safe project file in an owned work session.",accessScope:"code",effect:"mutation",inputSchema:z14.object({projectId:uuidSchema,sessionId:uuidSchema,path:z14.string().min(1).max(1024)}).strict(),outputSchema:fileDeleteOutputSchema,buildRequest:__name(({projectId,sessionId,path:path53})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/delete`),body:{path:path53}}),"buildRequest")}}}});import{z as z15}from"zod";function projectFormResponse(body){return formResponseSchema.parse(body)}function projectFormDetail(body){return formResponseSchema.parse(body).data}function projectFormList(body){return z15.object({data:z15.array(formSchema)}).parse(body).data}function projectFormSubmissionsPage(body,input){let page=z15.object({data:z15.array(formSubmissionSchema),total:z15.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,FormContentSchema,FormUpdateSchema,rawFormSchema,formSchema,formResponseSchema,formSubmissionSchema,formSubmissionResponseSchema,formSubmissionsPageSchema,formSubmissionStatsResponseSchema,formsOperations,init_forms=__esm({"../../packages/sdk/dist/operations/forms.js"(){"use strict";init_common();formFieldSchema=z15.object({type:z15.enum(["text","email","textarea","number","phone","url","select","checkbox","date","hidden","file"]),label:z15.string(),placeholder:z15.string().optional(),required:z15.boolean().optional(),defaultValue:z15.string().optional(),options:z15.array(z15.string()).optional(),validation:z15.object({minLength:z15.number().optional(),maxLength:z15.number().optional(),min:z15.number().optional(),max:z15.number().optional(),pattern:z15.string().optional(),maxFileSize:z15.number().optional(),accept:z15.array(z15.string()).optional()}).optional()}),FormContentSchema=z15.object({name:z15.string().min(1).max(255),label:z15.string().min(1).max(255),fields:z15.record(z15.string(),formFieldSchema)}).strict(),FormUpdateSchema=FormContentSchema.partial().refine(update2=>update2.name!==void 0||update2.label!==void 0||update2.fields!==void 0,{message:"Pass at least one of name, label, or fields."}),rawFormSchema=z15.object({id:uuidSchema,name:FormContentSchema.shape.name,label:FormContentSchema.shape.label,fields:FormContentSchema.shape.fields,settings:z15.record(z15.string(),z15.unknown()).nullable().optional(),createdAt:z15.string(),updatedAt:z15.string()}).passthrough(),formSchema=rawFormSchema,formResponseSchema=z15.object({data:formSchema}),formSubmissionSchema=z15.object({id:uuidSchema,formId:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,data:z15.record(z15.string(),z15.unknown()),submittedAt:z15.string()}),formSubmissionResponseSchema=z15.object({data:formSubmissionSchema}),formSubmissionsPageSchema=pageSchema(formSubmissionSchema),formSubmissionStatsResponseSchema=z15.object({data:z15.object({total:z15.number().int().nonnegative(),dailyCounts:z15.array(z15.object({date:z15.string(),count:z15.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:z15.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:z15.array(formSchema),buildRequest:__name(({projectId,branch})=>({method:"GET",path:tenantPath(projectId,branch,"/forms")}),"buildRequest"),projectOutput:projectFormList},"forms.get":{domain:"forms",summary:"Read one form definition from a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255)}).strict(),outputSchema:formSchema,buildRequest:__name(({projectId,branch,id})=>({method:"GET",path:tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,...FormContentSchema.shape}).strict(),outputSchema:formResponseSchema,buildRequest:__name(({projectId,branch,name,label,fields})=>({method:"POST",path:tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255),...FormContentSchema.partial().shape}).strict().superRefine((input,context)=>{let update2=FormUpdateSchema.safeParse({name:input.name,label:input.label,fields:input.fields});if(!update2.success)for(let issue of update2.error.issues)context.addIssue({...issue,path:issue.path})}),outputSchema:formResponseSchema,buildRequest:__name(({projectId,branch,id,name,label,fields})=>({method:"PUT",path:tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255)}).strict(),outputSchema:formResponseSchema,buildRequest:__name(({projectId,branch,id})=>({method:"DELETE",path:tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255),...paginationShape,searchQuery:z15.string().max(200).optional(),sortDirection:z15.enum(["asc","desc"]).optional()}).strict().superRefine(paginationRefinement),outputSchema:formSubmissionsPageSchema,buildRequest:__name(({projectId,branch,id,limit,cursor,offset,searchQuery,sortDirection})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255),submissionId:z15.string().min(1).max(255)}).strict(),outputSchema:formSubmissionSchema,buildRequest:__name(({projectId,branch,id,submissionId})=>({method:"GET",path:tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255)}).strict(),outputSchema:formSubmissionStatsResponseSchema.shape.data,buildRequest:__name(({projectId,branch,id})=>({method:"GET",path:tenantPath(projectId,branch,`/forms/${encodeURIComponent(id)}/submissions/stats`)}),"buildRequest"),projectOutput:__name(body=>formSubmissionStatsResponseSchema.parse(body).data,"projectOutput")}}}});import{z as z16}from"zod";var estimateSchema,generationOperations,init_generation=__esm({"../../packages/sdk/dist/operations/generation.js"(){"use strict";init_common();estimateSchema=z16.object({costUsd:z16.number(),credits:z16.number().optional(),billingMode:z16.enum(["fimo-credits","provider-account"]).optional(),confidence:z16.enum(["exact","estimated","metered"]),basis:z16.string()}).passthrough(),generationOperations={"generation.estimateModel":{domain:"generation",summary:"Estimate one generation request against an enabled provider model.",accessScope:"read",effect:"read",inputSchema:z16.object({projectId:uuidSchema,model:z16.string().min(1),options:z16.record(z16.string(),z16.unknown())}).strict(),outputSchema:estimateSchema,buildRequest:__name(({projectId,model,options})=>({method:"POST",path:`/management/projects/${encodeURIComponent(projectId)}/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:z16.object({projectId:uuidSchema,branch:branchNameSchema,task:z16.string().min(1),options:z16.record(z16.string(),z16.unknown())}).strict(),outputSchema:estimateSchema,buildRequest:__name(({projectId,branch,task,options})=>({method:"POST",path:tenantPath(projectId,branch,"/assets/generate/estimate"),body:{task,options}}),"buildRequest"),projectOutput:responseData}}}});import{z as z17}from"zod";var historyKindSchema,projectVersionSchema,projectVersionPageSchema,historySummarySchema,restoreResultSchema,historyOperations,init_history=__esm({"../../packages/sdk/dist/operations/history.js"(){"use strict";init_common();historyKindSchema=z17.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),projectVersionSchema=z17.object({versionId:uuidSchema,commitHash:z17.string(),name:z17.string(),description:z17.string().nullable(),kind:historyKindSchema,createdAt:z17.iso.datetime(),expiresAt:z17.iso.datetime()}),projectVersionPageSchema=z17.object({items:z17.array(projectVersionSchema),nextCursor:z17.string().nullable()}),historySummarySchema=z17.object({usage:z17.object({versionCount:z17.number().int().nonnegative(),snapshotBytes:z17.number().int().nonnegative()}),retentionDays:z17.number().int().positive()}),restoreResultSchema=z17.object({durationMs:z17.number().nonnegative().optional(),warning:z17.string().optional()}),historyOperations={"history.list":{domain:"history",summary:"List restore points for one Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z17.object({projectId:uuidSchema,branch:branchNameSchema,limit:z17.number().int().min(1).max(100),cursor:z17.string().min(1).optional()}).strict(),outputSchema:projectVersionPageSchema,buildRequest:__name(({projectId,branch,limit,cursor})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z17.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:historySummarySchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:managementBranchPath(projectId,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:z17.object({projectId:uuidSchema,branch:branchNameSchema,versionId:uuidSchema}).strict(),outputSchema:projectVersionSchema,buildRequest:__name(({projectId,branch,versionId})=>({method:"GET",path:managementBranchPath(projectId,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:z17.object({projectId:uuidSchema,branch:branchNameSchema,name:z17.string().min(1),description:z17.string().optional()}).strict(),outputSchema:projectVersionSchema,buildRequest:__name(({projectId,branch,name,description})=>({method:"POST",path:managementBranchPath(projectId,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:z17.object({projectId:uuidSchema,branch:branchNameSchema,versionId:uuidSchema}).strict(),outputSchema:restoreResultSchema,buildRequest:__name(({projectId,branch,versionId})=>({method:"POST",path:managementBranchPath(projectId,branch,`/versions/${encodeURIComponent(versionId)}/restore`)}),"buildRequest"),projectOutput:__name(body=>restoreResultSchema.parse(responseData(body)),"projectOutput")}}}});import{z as z18}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,hostingOperations,init_hosting=__esm({"../../packages/sdk/dist/operations/hosting.js"(){"use strict";init_common();LOG_TAIL_MAX_LIMIT=1e3,logTailLimitSchema=z18.number().int().min(1).max(LOG_TAIL_MAX_LIMIT).optional(),publicationStateOutputSchema=z18.object({isPublished:z18.boolean(),publishedAt:z18.iso.datetime().nullable(),publishedVersion:z18.string().nullable()}),publicationOutputSchema=z18.object({id:uuidSchema,status:z18.enum(["queued","building","published","failed","canceled"]),label:z18.string().nullable(),notes:z18.string().nullable(),source:z18.object({branch:branchNameSchema,targetBranch:branchNameSchema,configVersion:z18.string().nullable(),framework:z18.string().nullable(),commit:z18.string().nullable()}),createdAt:z18.iso.datetime(),finishedAt:z18.iso.datetime().nullable(),url:z18.string().nullable(),failureCode:z18.string().nullable()}),publicationsPageOutputSchema=z18.object({items:z18.array(publicationOutputSchema),nextCursor:z18.string().nullable(),retention:z18.object({scope:z18.literal("publication_attempt_record"),records:z18.literal("project_lifetime")})}),publicationLogsOutputSchema=z18.object({status:z18.enum(["ok","unavailable"]),publicationId:uuidSchema,reason:z18.enum(["pending","no_deployment","provider_unavailable"]).nullable(),message:z18.string().nullable(),items:z18.array(z18.object({timestamp:z18.iso.datetime(),phase:z18.enum(["build","deploy"]),stream:z18.enum(["command","stdout","stderr","status","error"]),message:z18.string()}))}),sandboxLogsOutputSchema=z18.object({status:z18.enum(["ok","unavailable"]),reason:z18.enum(["no_sandbox","sandbox_expired","provider_unsupported"]).nullable(),message:z18.string().nullable(),items:z18.array(z18.object({id:z18.string(),timestamp:z18.iso.datetime().nullable(),source:z18.enum(["install","dev-server"]),phase:z18.string(),stream:z18.enum(["combined","stdout","stderr"]),message:z18.string()})),nextCursor:z18.string().nullable(),retention:z18.object({scope:z18.literal("sandbox_process_snapshot"),timestamps:z18.literal("process_start"),droppedOldest:z18.boolean(),phases:z18.array(z18.object({phase:z18.string(),source:z18.enum(["install","dev-server"]),status:z18.string(),startedAt:z18.iso.datetime().nullable(),exitCode:z18.number().int().nullable(),events:z18.number().int().nonnegative()}))}).nullable()}),previewLocationOutputSchema=z18.object({url:z18.string(),branch:branchNameSchema});__name(publicationRecord,"publicationRecord");__name(projectPublication,"projectPublication");__name(projectPublicationsPage,"projectPublicationsPage");__name(projectPublicationLogs,"projectPublicationLogs");__name(projectSandboxLogs,"projectSandboxLogs");hostingOperations={"publications.state":{domain:"publications",summary:"Read whether a project has a live published site.",accessScope:"read",effect:"read",inputSchema:z18.object({projectId:uuidSchema}).strict(),outputSchema:publicationStateOutputSchema,buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/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:z18.object({projectId:uuidSchema,limit:z18.number().int().min(1).max(100).optional(),cursor:z18.string().optional()}).strict(),outputSchema:publicationsPageOutputSchema,buildRequest:__name(({projectId,limit,cursor})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/publications"),{limit,before:cursor})}),"buildRequest"),projectOutput:projectPublicationsPage},"publications.get":{domain:"publications",summary:"Read one durable publication attempt.",accessScope:"read",effect:"read",inputSchema:z18.object({projectId:uuidSchema,publicationId:z18.string().min(1)}).strict(),outputSchema:publicationOutputSchema,buildRequest:__name(({projectId,publicationId})=>({method:"GET",path:managementProjectPath(projectId,`/publications/${encodeURIComponent(publicationId)}`)}),"buildRequest"),projectOutput:projectPublication},"publications.logs":{domain:"publications",summary:"Read a bounded sanitized build-log tail for one publication.",accessScope:"read",effect:"read",inputSchema:z18.object({projectId:uuidSchema,publicationId:z18.string().min(1),limit:logTailLimitSchema}).strict(),outputSchema:publicationLogsOutputSchema,buildRequest:__name(({projectId,publicationId,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/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:z18.object({projectId:uuidSchema,branch:branchNameSchema,limit:logTailLimitSchema,cursor:z18.string().optional()}).strict(),outputSchema:sandboxLogsOutputSchema,buildRequest:__name(({projectId,branch,limit,cursor})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/sandbox/logs"),{limit,before:cursor})}),"buildRequest"),projectOutput:projectSandboxLogs},"preview.location":{domain:"preview",summary:"Return the signed-in Studio Preview location for one Branch without provisioning it.",accessScope:"read",effect:"read",inputSchema:z18.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:previewLocationOutputSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:managementBranchPath(projectId,branch,"/preview-location")}),"buildRequest"),projectOutput:__name(body=>previewLocationOutputSchema.parse(responseData(body)),"projectOutput")}}}});import{z as z19}from"zod";function responseValue(schema,body){return schema.parse(responseData(body))}var TranslationDTOSchema,labelResponseSchema,labelListOutputSchema,labelUpsertOutputSchema,labelDeleteOutputSchema,labelsOperations,init_labels=__esm({"../../packages/sdk/dist/operations/labels.js"(){"use strict";init_common();init_entries();TranslationDTOSchema=z19.object({key:z19.string(),value:z19.string().optional(),defaultValue:z19.string(),locale:z19.string()}),labelResponseSchema=createResponseSchema(TranslationDTOSchema),labelListOutputSchema=z19.object({data:z19.array(z19.union([TranslationDTOSchema,z19.object({key:z19.string(),values:z19.record(z19.string(),z19.string())})]))}),labelUpsertOutputSchema=z19.object({created:z19.number().int().nonnegative(),updated:z19.number().int().nonnegative(),deleted:z19.number().int().nonnegative(),defaultLocale:z19.string(),locales:z19.array(z19.string())}),labelDeleteOutputSchema=z19.object({key:z19.string(),locale:z19.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:z19.object({projectId:uuidSchema,branch:branchNameSchema,locale:localeSchema.optional()}).strict(),outputSchema:labelListOutputSchema,buildRequest:__name(({projectId,branch,locale})=>({method:"GET",path:addQuery(tenantPath(projectId,branch,"/labels"),{locale})}),"buildRequest")},"labels.get":{domain:"labels",summary:"Read one localized label by locale and key.",accessScope:"read",effect:"read",inputSchema:z19.object({projectId:uuidSchema,branch:branchNameSchema,locale:localeSchema,key:z19.string().min(1).max(255)}).strict(),outputSchema:labelResponseSchema,buildRequest:__name(({projectId,branch,locale,key})=>({method:"GET",path:tenantPath(projectId,branch,`/labels/${encodeURIComponent(locale)}/${encodeURIComponent(key)}`)}),"buildRequest")},"labels.set":{domain:"labels",summary:"Create or set one localized label.",accessScope:"write",effect:"mutation",inputSchema:z19.object({projectId:uuidSchema,branch:branchNameSchema,key:z19.string(),value:z19.string(),locale:z19.string().optional()}).strict(),outputSchema:TranslationDTOSchema,buildRequest:__name(({projectId,branch,key,value,locale})=>({method:"POST",path:tenantPath(projectId,branch,"/labels"),body:{key,value,locale}}),"buildRequest"),projectOutput:__name(body=>responseValue(TranslationDTOSchema,body),"projectOutput")},"labels.setMany":{domain:"labels",summary:"Create or overwrite localized labels in one request.",accessScope:"write",effect:"mutation",inputSchema:z19.object({projectId:uuidSchema,branch:branchNameSchema,records:z19.array(z19.object({key:z19.string(),value:z19.string(),locale:z19.string().optional()}))}).strict(),outputSchema:labelUpsertOutputSchema,buildRequest:__name(({projectId,branch,records})=>({method:"POST",path:tenantPath(projectId,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:z19.object({projectId:uuidSchema,branch:branchNameSchema,locale:z19.string().optional(),key:z19.string()}).strict(),outputSchema:labelDeleteOutputSchema,buildRequest:__name(({projectId,branch,locale,key})=>({method:"DELETE",path:tenantPath(projectId,branch,locale?`/labels/${encodeURIComponent(locale)}/${encodeURIComponent(key)}`:`/labels/${encodeURIComponent(key)}`)}),"buildRequest"),projectOutput:__name(body=>responseValue(labelDeleteOutputSchema,body),"projectOutput")}}}});import{z as z20}from"zod";var projectLocaleCoverageSchema,ProjectLocaleStatsResponseSchema,projectLocaleInputSchema,ProjectLocaleMutationResponseSchema,RemoveProjectLocaleResponseSchema,localesOperations,init_locales=__esm({"../../packages/sdk/dist/operations/locales.js"(){"use strict";init_common();projectLocaleCoverageSchema=z20.object({translated:z20.number().int().nonnegative(),total:z20.number().int().nonnegative()}),ProjectLocaleStatsResponseSchema=createResponseSchema(z20.object({defaultLocale:z20.string(),locales:z20.array(z20.object({locale:z20.string(),isDefault:z20.boolean(),entries:projectLocaleCoverageSchema,labels:projectLocaleCoverageSchema}))})),projectLocaleInputSchema=z20.string().min(1).max(40),ProjectLocaleMutationResponseSchema=createResponseSchema(z20.object({locale:z20.string()})),RemoveProjectLocaleResponseSchema=createResponseSchema(z20.object({locale:z20.string(),entriesDeleted:z20.number().int().nonnegative(),labelsDeleted:z20.number().int().nonnegative()})),localesOperations={"locales.list":{domain:"locales",summary:"List configured locales and content coverage on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z20.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:ProjectLocaleStatsResponseSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:managementBranchPath(projectId,branch,"/locales/stats")}),"buildRequest")},"locales.add":{domain:"locales",summary:"Add a configured locale to a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z20.object({projectId:uuidSchema,branch:branchNameSchema,locale:projectLocaleInputSchema}).strict(),outputSchema:ProjectLocaleMutationResponseSchema,buildRequest:__name(({projectId,branch,locale})=>({method:"POST",path:managementBranchPath(projectId,branch,"/locales"),body:{locale}}),"buildRequest")},"locales.setDefault":{domain:"locales",summary:"Set the default configured locale on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z20.object({projectId:uuidSchema,branch:branchNameSchema,locale:projectLocaleInputSchema}).strict(),outputSchema:ProjectLocaleMutationResponseSchema,buildRequest:__name(({projectId,branch,locale})=>({method:"PUT",path:managementBranchPath(projectId,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:z20.object({projectId:uuidSchema,branch:branchNameSchema,locale:projectLocaleInputSchema}).strict(),outputSchema:RemoveProjectLocaleResponseSchema,buildRequest:__name(({projectId,branch,locale})=>({method:"DELETE",path:managementBranchPath(projectId,branch,`/locales/${encodeURIComponent(locale)}`)}),"buildRequest")}}}});import{z as z21}from"zod";var notificationSubjectSchema,notificationViewSchema,agentQuestionSchema,projectPath2,notificationsOperations,init_notifications=__esm({"../../packages/sdk/dist/operations/notifications.js"(){"use strict";init_common();notificationSubjectSchema=z21.object({kind:z21.enum(["question","run_outcome","retained_review","merge_conflict"])}).passthrough(),notificationViewSchema=z21.object({notification:z21.object({id:uuidSchema,projectId:uuidSchema,sourceKey:z21.string(),actor:z21.object({kind:z21.enum(["user","agent","system"])}).passthrough(),payloadVersion:z21.number().int(),payload:z21.object({topic:z21.string()}).passthrough(),createdAt:z21.iso.datetime()}).passthrough(),recipient:z21.object({readAt:z21.iso.datetime().nullable(),archivedAt:z21.iso.datetime().nullable()}).passthrough(),subject:notificationSubjectSchema}),agentQuestionSchema=z21.object({id:uuidSchema,projectId:uuidSchema,threadId:uuidSchema,invocationId:uuidSchema,agentKey:z21.string(),anchorEnv:z21.string(),retainedEnv:z21.string(),state:z21.enum(["open","answered","expired","cancelled","superseded"]),request:z21.record(z21.string(),z21.unknown()),answer:z21.unknown().nullable(),askedAt:z21.iso.datetime(),expiresAt:z21.iso.datetime(),closedAt:z21.iso.datetime().nullable()}).passthrough(),projectPath2=__name((projectId,suffix)=>`/management/projects/${encodeURIComponent(projectId)}${suffix}`,"projectPath"),notificationsOperations={"notifications.list":{domain:"notifications",summary:"List the current user\u2019s project Inbox with cursor pagination.",accessScope:"read",effect:"read",inputSchema:z21.object({projectId:uuidSchema,topic:z21.enum(["agent_question","agent_run_outcome","agent_retained_review","agent_conflict"]).optional(),unread:z21.boolean().optional(),archived:z21.boolean().optional(),limit:z21.number().int().min(1).max(100).optional(),cursor:z21.string().min(1).optional()}).strict(),outputSchema:z21.object({items:z21.array(notificationViewSchema),nextCursor:z21.string().nullable(),unreadCount:z21.number().int().nonnegative()}),buildRequest:__name(({projectId,topic,unread,archived,limit,cursor})=>({method:"GET",path:addQuery(projectPath2(projectId,"/notifications"),{topic,unread,archived,limit,cursor})}),"buildRequest"),projectOutput:responseData},"notifications.get":{domain:"notifications",summary:"Read one project Inbox notification.",accessScope:"read",effect:"read",inputSchema:z21.object({projectId:uuidSchema,notificationId:uuidSchema}).strict(),outputSchema:notificationViewSchema,buildRequest:__name(({projectId,notificationId})=>({method:"GET",path:projectPath2(projectId,`/notifications/${encodeURIComponent(notificationId)}`)}),"buildRequest"),projectOutput:responseData},"questions.get":{domain:"notifications",summary:"Read the decision form attached to an agent question.",accessScope:"read",effect:"read",inputSchema:z21.object({projectId:uuidSchema,questionId:uuidSchema}).strict(),outputSchema:agentQuestionSchema,buildRequest:__name(({projectId,questionId})=>({method:"GET",path:projectPath2(projectId,`/questions/${encodeURIComponent(questionId)}`)}),"buildRequest"),projectOutput:responseData},"questions.answer":{domain:"notifications",summary:"Answer an agent question and continue its retained run.",accessScope:"write",effect:"mutation",inputSchema:z21.object({projectId:uuidSchema,questionId:uuidSchema,answer:z21.record(z21.string(),z21.unknown())}).strict(),outputSchema:z21.object({question:agentQuestionSchema,continuationInvocationId:uuidSchema,deduped:z21.boolean()}),buildRequest:__name(({projectId,questionId,answer})=>({method:"POST",path:projectPath2(projectId,`/questions/${encodeURIComponent(questionId)}/answer`),body:answer}),"buildRequest"),projectOutput:responseData}}}});import{z as z22}from"zod";var organizationSchema,organizationMemberSchema,organizationInvitationSchema,referralSummarySchema,organizationsOperations,init_organizations=__esm({"../../packages/sdk/dist/operations/organizations.js"(){"use strict";init_common();organizationSchema=z22.object({id:z22.string().min(1),name:z22.string(),slug:z22.string()}),organizationMemberSchema=z22.object({id:z22.string().min(1),role:z22.string(),createdAt:z22.string().optional(),user:z22.object({id:z22.string().min(1),name:z22.string().nullable().optional(),email:z22.string().nullable().optional()}).optional()}),organizationInvitationSchema=z22.object({id:z22.string().min(1),email:z22.email(),role:z22.string(),organizationId:z22.string().min(1),inviterId:z22.string().min(1),status:z22.string(),expiresAt:z22.string(),createdAt:z22.string()}).passthrough(),referralSummarySchema=z22.object({counts:z22.object({signed_up:z22.number().int(),activated:z22.number().int()}),credits:z22.object({total:z22.number().int()})}),organizationsOperations={"organizations.list":{domain:"organizations",summary:"List organizations the authenticated user belongs to.",accessScope:"read",effect:"read",inputSchema:z22.object({}).strict(),outputSchema:createResponseSchema(z22.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:z22.object({organizationId:z22.string().min(1)}).strict(),outputSchema:z22.array(organizationMemberSchema),buildRequest:__name(({organizationId})=>({method:"GET",path:`/auth/organization/get-full-organization?organizationId=${encodeURIComponent(organizationId)}`}),"buildRequest"),projectOutput:__name(body=>z22.object({members:z22.array(organizationMemberSchema)}).nullable().parse(body)?.members??[],"projectOutput")},"organizations.invite":{domain:"organizations",summary:"Invite a user to an organization.",accessScope:"write",effect:"mutation",inputSchema:z22.object({organizationId:z22.string().min(1),email:z22.email(),role:z22.enum(["owner","admin","member"]),resend:z22.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:z22.object({userId:z22.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 z23}from"zod";var projectSchema,projectResponseSchema,transferResultSchema,projectsOperations,init_projects=__esm({"../../packages/sdk/dist/operations/projects.js"(){"use strict";init_common();projectSchema=z23.object({id:uuidSchema,name:z23.string(),displayName:z23.string().nullable(),organizationId:z23.string().nullable(),defaultBranch:branchNameSchema.optional(),productionSourceBranch:branchNameSchema.optional(),status:z23.string().optional(),appUrl:z23.string().nullable().optional(),previewEnabled:z23.boolean().optional()}).passthrough(),projectResponseSchema=z23.object({data:projectSchema}),transferResultSchema=z23.object({projectId:z23.string(),sourceOrganizationId:z23.string(),targetOrganizationId:z23.string(),movedThreads:z23.number().int().nonnegative(),revokedInvites:z23.number().int().nonnegative(),revokedGrants:z23.number().int().nonnegative(),preservedGrants:z23.number().int().nonnegative(),warnings:z23.array(z23.string())}),projectsOperations={"projects.list":{domain:"projects",summary:"List the Fimo projects the authenticated user can access.",accessScope:"read",effect:"read",inputSchema:z23.object({organizationId:z23.string().min(1).optional()}).strict(),outputSchema:z23.object({data:z23.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 project the authenticated user can access.",accessScope:"read",effect:"read",inputSchema:z23.object({projectId:uuidSchema}).strict(),outputSchema:projectResponseSchema,buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"")}),"buildRequest")},"projects.create":{domain:"projects",summary:"Create a Fimo project in an organization.",accessScope:"write",effect:"mutation",inputSchema:z23.object({organizationId:z23.string().min(1),displayName:z23.string().min(1).optional(),origin:z23.enum(["scratch","migration"]).optional()}).strict(),outputSchema:projectResponseSchema,buildRequest:__name(({organizationId,displayName,origin})=>({method:"POST",path:"/management/projects",body:withoutUndefined({organizationId,displayName,origin,source:"cli"})}),"buildRequest")},"projects.transfer":{domain:"projects",summary:"Transfer one Fimo project to another organization.",accessScope:"write",effect:"mutation",inputSchema:z23.object({projectId:uuidSchema,targetOrganizationId:z23.string().min(1)}).strict(),outputSchema:transferResultSchema,buildRequest:__name(({projectId,targetOrganizationId})=>({method:"POST",path:managementProjectPath(projectId,"/transfer"),body:{targetOrganizationId},preserveForbidden:!0}),"buildRequest"),projectOutput:__name(body=>transferResultSchema.parse(responseData(body)),"projectOutput")},"projects.invite":{domain:"projects",summary:"Invite a user to collaborate on a Fimo project.",accessScope:"write",effect:"mutation",inputSchema:z23.object({projectId:uuidSchema,email:z23.email(),role:z23.enum(["full","edit","comment","view"])}).strict(),outputSchema:z23.object({id:z23.string().min(1)}),buildRequest:__name(({projectId,email,role})=>({method:"POST",path:managementProjectPath(projectId,"/invites"),body:{email,roleKey:role}}),"buildRequest"),projectOutput:__name(body=>({id:z23.object({id:z23.string().min(1)}).parse(responseData(body)).id}),"projectOutput")},"projects.delete":{domain:"projects",summary:"Permanently delete a Fimo project.",accessScope:"write",effect:"mutation",inputSchema:z23.object({projectId:uuidSchema}).strict(),outputSchema:z23.unknown(),buildRequest:__name(({projectId})=>({method:"DELETE",path:managementProjectPath(projectId,""),body:{}}),"buildRequest")}}}});import{z as z24}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,schedulesOperations,init_schedules=__esm({"../../packages/sdk/dist/operations/schedules.js"(){"use strict";init_common();dateSchema=z24.iso.datetime(),scheduleStatusSchema=z24.enum(["ok","failed"]),runStatusSchema=z24.enum(["queued","running","succeeded","failed","skipped"]),scheduleSchema=z24.object({id:uuidSchema,createdAt:dateSchema,updatedAt:dateSchema,projectId:uuidSchema,branch:z24.string().min(1),name:z24.string().min(1),cron:z24.string().min(1),command:z24.string().min(1),secretKeys:z24.array(z24.string().min(1)),enabled:z24.boolean(),lastRunAt:dateSchema.nullable(),lastStatus:scheduleStatusSchema.nullable(),lastError:z24.string().nullable(),overPolicyReasons:z24.array(z24.string()).optional()}).passthrough(),usageSchema=z24.object({runCount:z24.number().int().nonnegative(),runsWithOutput:z24.number().int().nonnegative()}),policySchema=z24.object({maxRuns:z24.number().int().positive(),retentionDays:z24.number().int().positive().nullable(),outputRetentionDays:z24.number().int().positive(),maxOutputBytes:z24.number().int().positive()}).passthrough(),planSchema=z24.object({code:z24.enum(["Free","PAYG","Premium","Pro"]),source:z24.enum(["cached_subscription","free_fallback"]),activeSchedules:z24.object({used:z24.number().int().nonnegative(),limit:z24.number().int().positive()}),minCadenceMinutes:z24.number().int().positive(),maxRunMs:z24.number().int().positive(),concurrency:z24.object({used:z24.number().int().nonnegative(),limit:z24.number().int().positive()}),compute:z24.object({settledMs:z24.number().int().nonnegative(),activeMs:z24.number().int().nonnegative(),reservedMs:z24.number().int().nonnegative().optional(),includedMs:z24.number().int().positive(),remainingMs:z24.number().int().nonnegative(),resetsAt:dateSchema}),state:z24.enum(["ok","near_limit","exhausted","over_policy"]),overPolicyReasons:z24.array(z24.string())}).passthrough(),runSchema=z24.object({id:uuidSchema,scheduleId:uuidSchema,projectId:uuidSchema,branch:z24.string().min(1),scheduleName:z24.string().min(1),command:z24.string().min(1),status:runStatusSchema,trigger:z24.enum(["cron","ui","cli"]),triggeredBy:z24.object({id:z24.string().min(1),name:z24.string().min(1)}).nullable(),queuedAt:dateSchema,startedAt:dateSchema.nullable(),finishedAt:dateSchema.nullable(),exitCode:z24.number().int().nullable(),errorCode:z24.string().nullable(),error:z24.string().nullable(),outputBytes:z24.number().int().nonnegative(),outputTruncated:z24.boolean(),outputExpiresAt:dateSchema.nullable(),metadataExpiresAt:dateSchema.nullable()}).passthrough(),runDetailSchema=runSchema.extend({output:z24.string().nullable(),secretSnapshot:z24.object({state:z24.enum(["pending","resolved","failed"]),capturedAt:dateSchema.nullable(),items:z24.array(z24.object({key:z24.string().min(1),updatedAt:dateSchema.nullable(),resolution:z24.enum(["resolved","missing","deleted","recreated","rotated"])}))})}),overviewSchema=z24.object({items:z24.array(scheduleSchema),usage:usageSchema,policy:policySchema,plan:planSchema}),detailSchema=z24.object({schedule:scheduleSchema,usage:usageSchema,policy:policySchema,plan:planSchema}).passthrough(),runsPageSchema=z24.object({items:z24.array(runSchema),nextCursor:z24.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:z24.string().min(1).max(120),cron:z24.string().min(1).max(120),command:z24.string().min(1).max(500),secretKeys:z24.array(z24.string().min(1))},schedulesOperations={"schedules.list":{domain:"schedules",summary:"List schedule records for one project Branch.",accessScope:"read",effect:"read",inputSchema:z24.object({projectId:uuidSchema}).strict(),outputSchema:z24.array(scheduleSchema),buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/schedules")}),"buildRequest"),projectOutput:__name(body=>z24.array(scheduleSchema).parse(responseData(body).map(projectBranchRecord2)),"projectOutput")},"schedules.overview":{domain:"schedules",summary:"Read schedules with usage and plan limits for one project Branch.",accessScope:"read",effect:"read",inputSchema:z24.object({projectId:uuidSchema}).strict(),outputSchema:overviewSchema,buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/schedules/overview")}),"buildRequest"),projectOutput:projectOverview},"schedules.get":{domain:"schedules",summary:"Read one schedule with usage and plan limits.",accessScope:"read",effect:"read",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema}).strict(),outputSchema:detailSchema,buildRequest:__name(({projectId,scheduleId})=>({method:"GET",path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}`)}),"buildRequest"),projectOutput:projectDetail2},"schedules.create":{domain:"schedules",summary:"Create a recurring command schedule for one project Branch.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({projectId:uuidSchema,...scheduleWriteShape,enabled:z24.boolean().optional()}).strict(),outputSchema:scheduleSchema,buildRequest:__name(({projectId,...body})=>({method:"POST",path:managementProjectPath(projectId,"/schedules"),body}),"buildRequest"),projectOutput:projectSchedule},"schedules.update":{domain:"schedules",summary:"Update a recurring command schedule.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema,name:scheduleWriteShape.name.optional(),cron:scheduleWriteShape.cron.optional(),command:scheduleWriteShape.command.optional(),secretKeys:scheduleWriteShape.secretKeys.optional()}).strict().refine(({projectId:_projectId,scheduleId:_scheduleId,...update2})=>Object.values(update2).some(value=>value!==void 0),{message:"Pass at least one schedule field to update."}),outputSchema:scheduleSchema,buildRequest:__name(({projectId,scheduleId,...update2})=>({method:"PATCH",path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}`),body:withoutUndefined(update2)}),"buildRequest"),projectOutput:projectSchedule},"schedules.setEnabled":{domain:"schedules",summary:"Pause or resume a recurring command schedule.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema,enabled:z24.boolean()}).strict(),outputSchema:scheduleSchema,buildRequest:__name(({projectId,scheduleId,enabled})=>({method:"POST",path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}/${enabled?"resume":"pause"}`)}),"buildRequest"),projectOutput:projectSchedule},"schedules.run":{domain:"schedules",summary:"Queue an immediate run of a project schedule.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema}).strict(),outputSchema:runSchema,buildRequest:__name(({projectId,scheduleId})=>({method:"POST",path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}/run`),body:{trigger:"cli"}}),"buildRequest"),projectOutput:projectRun},"schedules.listRuns":{domain:"schedules",summary:"List runs of one project schedule with cursor pagination.",accessScope:"read",effect:"read",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema,limit:z24.number().int().min(1).max(100).optional(),cursor:z24.string().min(1).optional(),status:runStatusSchema.optional()}).strict(),outputSchema:runsPageSchema,buildRequest:__name(({projectId,scheduleId,limit,cursor,status})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/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:z24.object({projectId:uuidSchema,runId:uuidSchema}).strict(),outputSchema:runDetailSchema,buildRequest:__name(({projectId,runId})=>({method:"GET",path:managementProjectPath(projectId,`/schedules/runs/${encodeURIComponent(runId)}`)}),"buildRequest"),projectOutput:projectRunDetail},"schedules.delete":{domain:"schedules",summary:"Delete one project schedule.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema}).strict(),outputSchema:z24.object({ok:z24.literal(!0)}),buildRequest:__name(({projectId,scheduleId})=>({method:"DELETE",path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}`)}),"buildRequest"),projectOutput:__name(body=>z24.object({ok:z24.literal(!0)}).parse(responseData(body)),"projectOutput")}}}});import{z as z25}from"zod";function projectSchemaDefinition(body){return z25.object({data:contentTypeSchema}).parse(body).data}var contentTypeSchema,schemaListOutputSchema,schemaMutationOutputSchema,schemaDefinitionInputSchema,schemasOperations,init_schemas=__esm({"../../packages/sdk/dist/operations/schemas.js"(){"use strict";init_common();contentTypeSchema=z25.object({id:z25.string(),name:z25.string(),label:z25.string(),isSingleton:z25.boolean(),slugUnique:z25.boolean(),i18n:z25.record(z25.string(),z25.unknown()),groups:z25.array(z25.record(z25.string(),z25.unknown())),fields:z25.record(z25.string(),z25.unknown()),createdAt:z25.string(),updatedAt:z25.string()}).passthrough(),schemaListOutputSchema=z25.object({contentTypes:z25.array(contentTypeSchema)}),schemaMutationOutputSchema=sessionEnvelopeSchema.extend({schema:z25.object({typeName:z25.string().min(1).max(255),generatedPaths:z25.array(z25.string().min(1)).max(1e3),tip:z25.string().min(1)})}),schemaDefinitionInputSchema=z25.record(z25.string(),z25.unknown());__name(projectSchemaDefinition,"projectSchemaDefinition");schemasOperations={"schemas.list":{domain:"schemas",summary:"List content schemas on a durable Branch.",accessScope:"read",effect:"read",inputSchema:z25.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:schemaListOutputSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:tenantPath(projectId,branch,"/schema")}),"buildRequest")},"schemas.get":{domain:"schemas",summary:"Get one complete content schema from a durable Branch.",accessScope:"read",effect:"read",inputSchema:z25.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z25.string().min(1).max(255)}).strict(),outputSchema:contentTypeSchema,buildRequest:__name(({projectId,branch,typeName})=>({method:"GET",path:tenantPath(projectId,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:z25.object({projectId:uuidSchema,branch:branchNameSchema,contentTypes:z25.array(schemaDefinitionInputSchema).min(1).max(100),operations:z25.array(z25.record(z25.string(),z25.unknown())).optional()}).strict(),outputSchema:z25.array(z25.unknown()),buildRequest:__name(({projectId,branch,contentTypes,operations})=>({method:"POST",path:tenantPath(projectId,branch,"/schema/batch"),body:withoutUndefined({contentTypes,operations:operations?.length?operations:void 0})}),"buildRequest"),projectOutput:__name(body=>z25.object({data:z25.array(z25.unknown())}).parse(body).data,"projectOutput")},"schemas.deleteFromBranch":{domain:"schemas",summary:"Delete a content schema directly from a Fimo Branch.",accessScope:"code",effect:"mutation",inputSchema:z25.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z25.string().min(1).max(255)}).strict(),outputSchema:z25.unknown(),buildRequest:__name(({projectId,branch,typeName})=>({method:"DELETE",path:tenantPath(projectId,branch,`/schema/types/${encodeURIComponent(typeName)}`)}),"buildRequest"),projectOutput:__name(body=>z25.object({data:z25.unknown()}).parse(body).data,"projectOutput")},"schemas.create":{domain:"schemas",summary:"Create a content schema inside an owned work session.",accessScope:"code",effect:"mutation",inputSchema:z25.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z25.string().min(1).max(255),definition:schemaDefinitionInputSchema}).strict(),outputSchema:schemaMutationOutputSchema,buildRequest:__name(({projectId,sessionId,typeName,definition})=>({method:"POST",path:managementProjectPath(projectId,`/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:z25.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z25.string().min(1).max(255),definition:schemaDefinitionInputSchema,renameFrom:z25.string().max(255).optional()}).strict(),outputSchema:schemaMutationOutputSchema,buildRequest:__name(({projectId,sessionId,typeName,definition,renameFrom})=>({method:"POST",path:managementProjectPath(projectId,`/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:z25.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z25.string().min(1).max(255)}).strict(),outputSchema:schemaMutationOutputSchema,buildRequest:__name(({projectId,sessionId,typeName})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/schema`),body:{kind:"delete",typeName}}),"buildRequest")}}}});import{z as z26}from"zod";var environmentSchema2,secretKindSchema,projectSecretSchema,secretWriteInputSchema,secretsOperations,init_secrets=__esm({"../../packages/sdk/dist/operations/secrets.js"(){"use strict";init_common();environmentSchema2=z26.union([z26.literal("production"),z26.literal("preview"),uuidSchema]),secretKindSchema=z26.enum(["variable","secret"]),projectSecretSchema=z26.object({id:z26.string().min(1),projectId:z26.string().min(1),key:z26.string().min(1),kind:secretKindSchema,exposure:z26.enum(["public","private"]),environment:environmentSchema2,value:z26.string().optional(),maskedValue:z26.string().optional(),createdAt:z26.string(),updatedAt:z26.string()}),secretWriteInputSchema=z26.object({projectId:uuidSchema,key:z26.string().min(1).max(255),kind:secretKindSchema,value:z26.string(),environment:environmentSchema2}),secretsOperations={"secrets.list":{domain:"secrets",summary:"List public variables or masked secrets for one project Environment.",accessScope:"read",effect:"read",inputSchema:z26.object({projectId:uuidSchema,environment:environmentSchema2,kind:secretKindSchema.optional()}).strict(),outputSchema:z26.array(projectSecretSchema),buildRequest:__name(({projectId,environment,kind})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/secrets"),{environment,kind})}),"buildRequest"),projectOutput:__name(body=>z26.array(projectSecretSchema).parse(responseData(body)),"projectOutput")},"secrets.create":{domain:"secrets",summary:"Create a public variable or secret for one project Environment.",accessScope:"write",effect:"mutation",inputSchema:secretWriteInputSchema.strict(),outputSchema:projectSecretSchema,buildRequest:__name(({projectId,...body})=>({method:"POST",path:managementProjectPath(projectId,"/secrets"),body}),"buildRequest"),projectOutput:__name(body=>projectSecretSchema.parse(responseData(body)),"projectOutput")},"secrets.update":{domain:"secrets",summary:"Update a public variable or secret for one project Environment.",accessScope:"write",effect:"mutation",inputSchema:secretWriteInputSchema.strict(),outputSchema:projectSecretSchema,buildRequest:__name(({projectId,key,...body})=>({method:"PATCH",path:managementProjectPath(projectId,`/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 project Environment.",accessScope:"write",effect:"mutation",inputSchema:z26.object({projectId:uuidSchema,key:z26.string().min(1),kind:secretKindSchema,environment:environmentSchema2}).strict(),outputSchema:z26.unknown(),buildRequest:__name(({projectId,key,kind,environment})=>({method:"DELETE",path:addQuery(managementProjectPath(projectId,`/secrets/${encodeURIComponent(key)}`),{kind,environment})}),"buildRequest")},"environments.resolve":{domain:"environments",summary:"Resolve which compatibility Environment receives one project Branch.",accessScope:"read",effect:"read",inputSchema:z26.object({projectId:uuidSchema,branch:z26.string().min(1)}).strict(),outputSchema:z26.object({branch:z26.string().min(1),environment:environmentSchema2}),buildRequest:__name(({projectId})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/branches"),{includeAgentEnvs:!0})}),"buildRequest"),projectOutput:__name((body,input)=>{let branches=z26.array(z26.object({branch:z26.string().optional(),env:z26.string().optional(),parentBranch:z26.string().nullable().optional(),parentEnv:z26.string().nullable().optional(),resolvedEnvironment:z26.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 parent2=current.parentBranch??current.parentEnv;current=parent2?branches.find(candidate=>(candidate.branch??candidate.env)===parent2):void 0}return{branch:input.branch,environment:"preview"}},"projectOutput")}}}});import{z as z27}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,sessionOperationResultSchema,conflictSchema2,codeConflictBlobSchema2,codeConflictDetailSchema,resolutionChoiceSchema,conflictResolutionSchema2,resolvedMergeStrategySchema,sessionsOperations,init_sessions=__esm({"../../packages/sdk/dist/operations/sessions.js"(){"use strict";init_branches();init_common();__name(projectConflictSurface,"projectConflictSurface");__name(projectSessionChanges,"projectSessionChanges");__name(projectSessionConflicts,"projectSessionConflicts");__name(backendConflictResolutions,"backendConflictResolutions");sessionValidationSchema=z27.object({status:z27.literal("passed")}).passthrough(),sessionConflictSummarySchema=z27.object({surface:surfaceNameSchema,key:z27.string().min(1),kind:z27.string().optional(),description:z27.string(),path:z27.string().optional()}).passthrough(),surfaceDeltaItemSchema=z27.object({verb:z27.enum(["added","removed","changed","conflict"]),key:z27.string(),detail:z27.string().optional(),origin:z27.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z27.record(z27.string(),z27.unknown()).optional()}).passthrough(),perSurfaceDeltaSchema=z27.object({surface:surfaceNameSchema,status:z27.enum(["ok","timed_out","failed","unchanged"]),durationMs:z27.number().int().nonnegative().optional(),changedCount:z27.number().int().nonnegative(),conflictCount:z27.number().int().nonnegative(),items:z27.array(surfaceDeltaItemSchema).max(1e3).optional(),truncated:z27.boolean().optional(),error:z27.string().optional()}).passthrough(),sessionChangesSchema=z27.object({fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),generatedAt:z27.iso.datetime(),surfaces:z27.array(perSurfaceDeltaSchema),crossSurface:z27.array(crossSurfaceFindingSchema).optional(),fingerprint:z27.string()}).passthrough(),sessionOperationResultSchema=z27.discriminatedUnion("operation",[z27.object({operation:z27.literal("dependencies_install"),repairedInstallPolicy:z27.boolean(),tip:z27.string()}),z27.object({operation:z27.literal("schemas_sync"),tip:z27.string()})]),conflictSchema2=z27.object({surface:surfaceNameSchema,key:z27.string(),kind:z27.enum(["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"]).optional(),description:z27.string(),parentValue:z27.unknown().optional(),childValue:z27.unknown().optional(),conflictingFields:z27.array(z27.string()).optional(),code:z27.object({path:z27.string(),unresolvable:z27.boolean().optional(),reason:z27.string().optional()}).optional()}).passthrough(),codeConflictBlobSchema2=z27.object({oid:z27.string().optional(),content:z27.string().optional(),truncated:z27.boolean(),binary:z27.boolean()}),codeConflictDetailSchema=z27.object({path:z27.string(),base:codeConflictBlobSchema2,ours:codeConflictBlobSchema2,theirs:codeConflictBlobSchema2,result:codeConflictBlobSchema2,sourceTipSha:z27.string(),targetTipSha:z27.string(),mergeBaseSha:z27.string().optional()}),resolutionChoiceSchema=z27.enum(["parent","child","pick"]),conflictResolutionSchema2=z27.object({surface:surfaceNameSchema,key:z27.string().min(1),choice:resolutionChoiceSchema,pickedValue:z27.unknown().optional(),fieldPicks:z27.array(z27.object({field:z27.string().min(1),choice:resolutionChoiceSchema,pickedValue:z27.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,index2)=>{fieldPick.choice==="pick"&&fieldPick.pickedValue===void 0&&context.addIssue({code:"custom",message:"Pass pickedValue when choice is 'pick'.",path:["fieldPicks",index2,"pickedValue"]})})}),resolvedMergeStrategySchema=z27.object({engine:z27.enum(["ff-only","auto","theirs","ours","manual"]),vendor:z27.enum(["ff_only","ff_prefer","merge"]),squash:z27.boolean()}),sessionsOperations={"sessions.start":{domain:"sessions",summary:"Start an isolated work session for a new project change.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,targetBranch:branchNameSchema.optional()}).strict(),outputSchema:z27.object({session:sessionEnvelopeSchema,adopted:z27.boolean()}),buildRequest:__name(({projectId,targetBranch})=>({method:"POST",path:managementProjectPath(projectId,"/sessions"),body:targetBranch===void 0?{}:{targetBranch}}),"buildRequest")},"sessions.get":{domain:"sessions",summary:"Get one owned Fimo work session for lifecycle recovery.",accessScope:"code",effect:"read",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema}).strict(),outputSchema:sessionEnvelopeSchema,buildRequest:__name(({projectId,sessionId})=>({method:"GET",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}`)}),"buildRequest")},"sessions.list":{domain:"sessions",summary:"List owned work sessions for explicit lifecycle recovery.",accessScope:"code",effect:"read",inputSchema:z27.object({projectId:uuidSchema,status:sessionStatusSchema.optional(),cursor:z27.string().min(1).optional(),limit:z27.number().int().min(1).max(100).optional()}).strict(),outputSchema:z27.object({items:z27.array(sessionEnvelopeSchema),nextCursor:z27.string().nullable()}),buildRequest:__name(({projectId,status,cursor,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/sessions"),{status,cursor,limit})}),"buildRequest")},"sessions.changes":{domain:"sessions",summary:"Review bounded changes in an owned work session before closing it.",accessScope:"code",effect:"read",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema,detail:z27.boolean().optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({changes:sessionChangesSchema}),buildRequest:__name(({projectId,sessionId,detail})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/changes`),{detail})}),"buildRequest"),projectOutput:projectSessionChanges},"sessions.validate":{domain:"sessions",summary:"Run project validation inside an owned Fimo work session and wait for its terminal result.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema}).strict(),outputSchema:sessionEnvelopeSchema.extend({validation:sessionValidationSchema}),buildRequest:__name(({projectId,sessionId})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/validate`)}),"buildRequest")},"sessions.runOperation":{domain:"sessions",summary:"Run an approved sandbox operation in an owned work session: 'dependencies_install' or 'schemas_sync'.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema,operation:z27.string().min(1).max(100),args:z27.record(z27.string(),z27.unknown()).optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({operation:sessionOperationResultSchema}),buildRequest:__name(({projectId,sessionId,operation,args})=>({method:"POST",path:managementProjectPath(projectId,`/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:z27.object({projectId:uuidSchema,sessionId:uuidSchema,action:z27.enum(["merge","discard"]),message:z27.string().max(1e3).optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({outcome:z27.enum(["merged","no_changes","discarded","conflicts","failed"]),closed:z27.boolean(),mergeId:uuidSchema.optional(),conflictCount:z27.number().int().nonnegative().optional(),conflicts:z27.array(sessionConflictSummarySchema).optional(),parentAdvanced:z27.boolean().optional(),code:z27.string().optional(),summary:z27.string().nullable().optional()}),buildRequest:__name(({projectId,sessionId,action,message})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/close`),body:withoutUndefined({action,message})}),"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:z27.object({projectId:uuidSchema,sessionId:uuidSchema,mergeId:uuidSchema.optional(),cursor:z27.string().min(1).optional(),limit:z27.number().int().min(1).max(100).optional(),codePath:z27.string().min(1).max(1024).optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({merge:z27.object({mergeId:uuidSchema,fromBranch:branchNameSchema,toBranch:branchNameSchema,status:z27.enum(["in_progress","complete","failed","rolled_back","conflicts"]),conflictCount:z27.number().int().nonnegative(),error:z27.string().nullable()}),conflicts:z27.array(conflictSchema2).max(100),nextCursor:z27.string().nullable(),codeDetail:codeConflictDetailSchema.nullable().optional()}),buildRequest:__name(({projectId,sessionId,mergeId,cursor,limit,codePath})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/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:z27.object({projectId:uuidSchema,sessionId:uuidSchema,mergeId:uuidSchema,resolutions:z27.array(conflictResolutionSchema2).min(1).max(500)}).strict(),outputSchema:sessionEnvelopeSchema.extend({outcome:z27.literal("resolving"),mergeId:uuidSchema,supersededMergeId:uuidSchema,strategy:resolvedMergeStrategySchema,acceptedAt:z27.iso.datetime()}),buildRequest:__name(({projectId,sessionId,mergeId,resolutions})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/resolve`),body:{mergeId,resolutions:backendConflictResolutions(resolutions)}}),"buildRequest")}}}});import{z as z28}from"zod";var singlesOperations,init_singles=__esm({"../../packages/sdk/dist/operations/singles.js"(){"use strict";init_common();init_entries();singlesOperations={"singles.get":{domain:"singles",summary:"Read the document-scoped value of a Single content type.",accessScope:"read",effect:"read",inputSchema:z28.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,locale:localeSchema.optional(),populate:populateSchema}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,locale,populate})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z28.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,data:entryDataSchema,locale:localeSchema.optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,data:data2,locale})=>({method:"PUT",path:addQuery(tenantPath(projectId,branch,`/documents/${encodeURIComponent(typeName)}`),{locale}),body:{data:data2}}),"buildRequest")}}}});import{z as z29}from"zod";var supportReportInputSchema,supportReportResultSchema,supportOperations,init_support=__esm({"../../packages/sdk/dist/operations/support.js"(){"use strict";init_common();supportReportInputSchema=z29.object({message:z29.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=z29.object({id:uuidSchema,deliveryStatus:z29.enum(["pending","delivered","failed"]),message:z29.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:z29.object({data:supportReportResultSchema}),buildRequest:__name(({message,projectId,branch})=>({method:"POST",path:"/support/issues/agent",body:withoutUndefined({message,projectId,branch})}),"buildRequest")}}}});import{z as z30}from"zod";var jsonObjectSchema,deliveryStatusSchema,webhookSchema,deliverySchema,attemptSchema,deliveriesPageSchema,eventSchema,webhookWriteSchema,webhooksOperations,init_webhooks=__esm({"../../packages/sdk/dist/operations/webhooks.js"(){"use strict";init_common();jsonObjectSchema=z30.record(z30.string(),z30.unknown()),deliveryStatusSchema=z30.enum(["pending","delivering","retrying","succeeded","failed"]),webhookSchema=z30.object({id:uuidSchema,projectId:uuidSchema,name:z30.string(),eventType:z30.string().min(1),enabled:z30.boolean(),destination:z30.object({host:z30.string(),maskedUrl:z30.string(),kind:z30.string()}),filter:jsonObjectSchema,headers:z30.array(jsonObjectSchema),bodyTemplate:z30.unknown().nullable(),signingEnabled:z30.boolean(),lastDeliveryStatus:deliveryStatusSchema.nullable()}).passthrough(),deliverySchema=z30.object({id:uuidSchema,webhookId:uuidSchema,projectId:uuidSchema,eventType:z30.string().min(1),status:deliveryStatusSchema,attemptCount:z30.number().int().nonnegative(),responseStatus:z30.number().int().nullable(),createdAt:z30.iso.datetime()}).passthrough(),attemptSchema=z30.object({id:uuidSchema,deliveryId:uuidSchema,attempt:z30.number().int().positive(),status:z30.enum(["delivering","succeeded","failed"]),createdAt:z30.iso.datetime()}).passthrough(),deliveriesPageSchema=z30.object({items:z30.array(deliverySchema),pagination:z30.object({page:z30.number().int().positive(),limit:z30.number().int().positive(),total:z30.number().int().nonnegative(),totalPages:z30.number().int().positive(),hasMore:z30.boolean()}),stats:z30.object({total:z30.number().int().nonnegative(),succeeded:z30.number().int().nonnegative(),failed:z30.number().int().nonnegative()})}),eventSchema=z30.object({type:z30.string().min(1),family:z30.string(),description:z30.string(),variables:z30.array(z30.string()),data:z30.unknown().optional()}).passthrough(),webhookWriteSchema=jsonObjectSchema,webhooksOperations={"webhooks.events":{domain:"webhooks",summary:"List the webhook event catalog available to one project.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema}).strict(),outputSchema:z30.array(eventSchema),buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/webhooks/events")}),"buildRequest"),projectOutput:__name(body=>z30.array(eventSchema).parse(responseData(body)),"projectOutput")},"webhooks.list":{domain:"webhooks",summary:"List outbound webhooks configured for one project.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema}).strict(),outputSchema:z30.array(webhookSchema),buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/webhooks")}),"buildRequest"),projectOutput:__name(body=>z30.array(webhookSchema).parse(responseData(body)),"projectOutput")},"webhooks.get":{domain:"webhooks",summary:"Read one outbound project webhook.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:webhookSchema,buildRequest:__name(({projectId,webhookId})=>({method:"GET",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}`)}),"buildRequest"),projectOutput:__name(body=>webhookSchema.parse(responseData(body)),"projectOutput")},"webhooks.create":{domain:"webhooks",summary:"Create an outbound project webhook.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhook:webhookWriteSchema}).strict(),outputSchema:z30.object({webhook:webhookSchema,signingSecret:z30.string().min(1)}),buildRequest:__name(({projectId,webhook})=>({method:"POST",path:managementProjectPath(projectId,"/webhooks"),body:webhook}),"buildRequest"),projectOutput:__name(body=>z30.object({webhook:webhookSchema,signingSecret:z30.string().min(1)}).parse(responseData(body)),"projectOutput")},"webhooks.update":{domain:"webhooks",summary:"Update one outbound project webhook.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,webhook:webhookWriteSchema}).strict(),outputSchema:webhookSchema,buildRequest:__name(({projectId,webhookId,webhook})=>({method:"PATCH",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}`),body:webhook}),"buildRequest"),projectOutput:__name(body=>webhookSchema.parse(responseData(body)),"projectOutput")},"webhooks.delete":{domain:"webhooks",summary:"Delete one outbound project webhook.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:z30.unknown(),buildRequest:__name(({projectId,webhookId})=>({method:"DELETE",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}`)}),"buildRequest")},"webhooks.rotateSecret":{domain:"webhooks",summary:"Rotate and reveal the signing secret for one project webhook.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:z30.string().min(1),buildRequest:__name(({projectId,webhookId})=>({method:"POST",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/rotate-signing-secret`)}),"buildRequest"),projectOutput:__name(body=>z30.object({signingSecret:z30.string().min(1)}).parse(responseData(body)).signingSecret,"projectOutput")},"webhooks.test":{domain:"webhooks",summary:"Queue a test delivery for one project webhook.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,data:jsonObjectSchema.optional()}).strict(),outputSchema:deliverySchema,buildRequest:__name(({projectId,webhookId,data:data2})=>({method:"POST",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/test`),body:data2===void 0?{}:{data:data2}}),"buildRequest"),projectOutput:__name(body=>deliverySchema.parse(responseData(body)),"projectOutput")},"webhooks.listDeliveries":{domain:"webhooks",summary:"List delivery history for one project webhook using numbered pages.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,page:z30.number().int().positive(),limit:z30.number().int().min(1).max(100)}).strict(),outputSchema:deliveriesPageSchema,buildRequest:__name(({projectId,webhookId,page,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/deliveries`),{page,limit})}),"buildRequest"),projectOutput:__name(body=>deliveriesPageSchema.parse(responseData(body)),"projectOutput")},"webhooks.getDelivery":{domain:"webhooks",summary:"Read one webhook delivery and all of its attempts.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,deliveryId:uuidSchema}).strict(),outputSchema:z30.object({delivery:deliverySchema,attempts:z30.array(attemptSchema)}),buildRequest:__name(({projectId,webhookId,deliveryId})=>({method:"GET",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/deliveries/${encodeURIComponent(deliveryId)}`)}),"buildRequest"),projectOutput:__name(body=>z30.object({delivery:deliverySchema,attempts:z30.array(attemptSchema)}).parse(responseData(body)),"projectOutput")},"webhooks.retryDelivery":{domain:"webhooks",summary:"Retry one failed webhook delivery.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,deliveryId:uuidSchema}).strict(),outputSchema:deliverySchema,buildRequest:__name(({projectId,webhookId,deliveryId})=>({method:"POST",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/deliveries/${encodeURIComponent(deliveryId)}/retry`)}),"buildRequest"),projectOutput:__name(body=>deliverySchema.parse(responseData(body)),"projectOutput")}}}});import{z as z31}from"zod";var fimoOperations,fimoOperationManifestEntrySchema,fimoOperationManifestSchema,fimoOperationManifest,init_operations=__esm({"../../packages/sdk/dist/operations.js"(){"use strict";init_agents();init_analytics();init_assets();init_billing();init_branches();init_domains();init_entries();init_environments();init_files();init_forms();init_generation();init_history();init_hosting();init_labels();init_locales();init_notifications();init_organizations();init_projects();init_schedules();init_schemas();init_secrets();init_sessions();init_singles();init_support();init_webhooks();fimoOperations={...projectsOperations,...organizationsOperations,...domainsOperations,...generationOperations,...notificationsOperations,...historyOperations,...environmentsOperations,...secretsOperations,...schedulesOperations,...webhooksOperations,...branchesOperations,...schemasOperations,...supportOperations,...sessionsOperations,...entriesOperations,...singlesOperations,...labelsOperations,...localesOperations,...assetsOperations,...formsOperations,...agentsOperations,...hostingOperations,...analyticsOperations,...filesOperations,...billingOperations},fimoOperationManifestEntrySchema=z31.object({id:z31.string().regex(/^[a-zA-Z_$][\w$]*\.[a-zA-Z_$][\w$]*$/),domain:z31.string().min(1),summary:z31.string().min(1),accessScope:z31.enum(["read","write","code","agents"]),effect:z31.enum(["read","mutation"]),inputJsonSchema:z31.record(z31.string(),z31.unknown()),outputJsonSchema:z31.record(z31.string(),z31.unknown())}).strict(),fimoOperationManifestSchema=z31.array(fimoOperationManifestEntrySchema),fimoOperationManifest=Object.entries(fimoOperations).map(([id,operation])=>({id,domain:operation.domain,summary:operation.summary,accessScope:operation.accessScope,effect:operation.effect,inputJsonSchema:z31.toJSONSchema(operation.inputSchema,{target:"draft-7"}),outputJsonSchema:z31.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();init_operations()}});import{spawnSync}from"node:child_process";import fs5 from"node:fs";import path5 from"node:path";import{setTimeout as sleep}from"node:timers/promises";function isPublishedInstall(cliRoot=CLI_ROOT){return fs5.existsSync(path5.join(cliRoot,"release.json"))}function buildSkipsVersionCheck(cliRoot=CLI_ROOT,readFile7=defaultReadFile){try{return JSON.parse(readFile7(path5.join(cliRoot,"release.json"))).skipVersionCheck===!0}catch{return!1}}function defaultReadFile(file){return fs5.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:path5.resolve(result.stdout.trim(),"fimo")}function normalizedPath(input){try{return fs5.realpathSync(input)}catch{return path5.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{fs5.mkdirSync(lockDir);return}catch(error){if(error.code!=="EEXIST")throw error}let stale=!1;try{stale=Date.now()-fs5.statSync(lockDir).mtimeMs>LOCK_STALE_MS}catch{continue}if(stale){try{fs5.rmdirSync(lockDir)}catch{}continue}if(Date.now()>=deadline)throw new Error("auto-upgrade lock timeout");await sleep(LOCK_POLL_MS)}}function readGlobalFimoVersion(){let root2=resolveGlobalFimoRoot();if(!root2)return null;try{let pkg=JSON.parse(fs5.readFileSync(path5.join(root2,"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=path5.join(loadConfig().configDir,"auto-upgrade.lock");try{fs5.mkdirSync(path5.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{fs5.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 fs6 from"node:fs";import path6 from"node:path";import{fileURLToPath as fileURLToPath3}from"node:url";function getCliVersion(){try{let raw=fs6.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=fileURLToPath3(import.meta.url),CLI_ROOT2=path6.resolve(path6.dirname(THIS_FILE2),"..",".."),PACKAGE_JSON_PATH=path6.join(CLI_ROOT2,"package.json");__name(getCliVersion,"getCliVersion")}});function branchNameOf(row2){return row2.branch??row2.env}function parentBranchOf(row2){return row2.parentBranch??row2.parentEnv}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(issue=>{let{path:path53,message}=issue;return`${Array.isArray(path53)&&path53.length>0?`${path53.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,text3,body){if(!text3)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 text3}async function parseError(response){let text3=await response.text(),body;try{body=text3?JSON.parse(text3):void 0}catch{return{detail:formatError(response.status,text3)}}let code2=body&&typeof body=="object"&&!Array.isArray(body)&&typeof body.code=="string"?body.code:void 0;return{detail:formatError(response.status,text3,body),code:code2,body}}function throwUnauthorized(cfg,status){try{recordAuthFailure(cfg)}catch{}throw new UnauthorizedError(cfg.apiUrl,status)}async function throwPermissionDenied(cfg,response){let required=[];try{let body=await response.json();required=Array.isArray(body.required)?body.required:body.required?[body.required]:[]}catch{}throw new PermissionDeniedError(cfg.apiUrl,required)}function createCliHttpTransport(cfg=loadConfig(),branch){let authHeaders=__name((init,defaultJsonContentType)=>{let headers=new Headers(init.headers),token=process.env.FIMO_API_TOKEN?.trim()||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(path53,init={},defaultJsonContentType=!0)=>fimoFetch(`${cfg.apiUrl}${path53}`,{...init,headers:authHeaders(init,defaultJsonContentType)}),"send");return{async request(path53,init={},options={}){let response=await send(path53,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 new ApiRequestError(init.method??"GET",path53,response.status,error.detail,error.code,error.body)}if(response.status!==204)return await response.json()},async response(path53,init={}){let response=await send(path53,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 Error(`API ${init.method??"GET"} ${path53} failed: ${response.status} ${error.detail}`)}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,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,PermissionDeniedError,CLI_VERSION_HEADER,CLI_LATEST_HEADER,CLI_AUTO_UPGRADE_HEADER,FIMO_BRANCH_HEADER,init_sdk_transport=__esm({"src/cli/sdk-transport.ts"(){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,path53,status,detail,code2,body){super(`API ${method} ${path53} failed: ${status} ${detail}`),this.name="ApiRequestError",this.method=method,this.path=path53,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}},PermissionDeniedError=class extends Error{static{__name(this,"PermissionDeniedError")}apiUrl;required;constructor(apiUrl,required=[],message){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}},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 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),wrap2=__name(style=>s=>on?`${ANSI[style]}${s}${ANSI.reset}`:s,"wrap");return{enabled:on,bold:wrap2("bold"),dim:wrap2("dim"),red:wrap2("red"),green:wrap2("green"),yellow:wrap2("yellow"),blue:wrap2("blue"),magenta:wrap2("magenta"),cyan:wrap2("cyan"),gray:wrap2("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 isCliAuthError(err){return err instanceof NotAuthenticatedError||err instanceof UnauthorizedError||err instanceof PermissionDeniedError}function rethrowCliAuthError(err,beforeThrow){if(isCliAuthError(err))throw beforeThrow?.(err),err}function retryCommand(args=process.argv.slice(2)){return["fimo",...args].map(formatShellArg).join(" ")}function formatCliAuthError(err,opts={}){let p2=opts.palette??palette,command=retryCommand(opts.args);if(err instanceof PermissionDeniedError)return[`${p2.red("\u2717")} You don't have permission to run this command.`,"",err.required.length?` Missing permission: ${p2.bold(err.required.join(", "))}`:" Your role on this project does not allow this action."," Ask a project admin for access, or use an account with a higher role.","",p2.dim(` Backend: ${err.apiUrl}`)].join(`
187
+ ${agentsMdContent}`;writeIfMissing(".cursor/rules/fimo.mdc",cursorContent)}return selected.has("windsurf")&&writeIfMissing(".windsurfrules",agentsMdContent),selected.has("gemini-cli")&&writeIfMissing("GEMINI.md",agentsMdContent),result}function syncPerAgentVariants(targetDir,agents){let agentsMdPath=path4.join(targetDir,"AGENTS.md");if(!fs3.existsSync(agentsMdPath))throw new Error(`No AGENTS.md found in ${targetDir}. Run \`fimo create\` first, or create AGENTS.md manually before running \`fimo rules sync\`.`);let agentsMdContent=fs3.readFileSync(agentsMdPath,"utf8");return writePerAgentVariants(targetDir,agents,agentsMdContent)}function detectAgentsInProject(cwd){let detected=[];return fs3.existsSync(path4.join(cwd,"CLAUDE.md"))&&detected.push("claude-code"),fs3.existsSync(path4.join(cwd,".cursor","rules","fimo.mdc"))&&detected.push("cursor"),fs3.existsSync(path4.join(cwd,".windsurfrules"))&&detected.push("windsurf"),fs3.existsSync(path4.join(cwd,"GEMINI.md"))&&detected.push("gemini-cli"),detected}var AGENT_TEMPLATES_ROOT,EXCLUDED_DIRS,TemplateFrameworkError,init_scaffold=__esm({"src/cli/utils/scaffold.ts"(){init_templates();init_config();init_templates();AGENT_TEMPLATES_ROOT=path4.resolve(CLI_ROOT,"assets","agent-templates"),EXCLUDED_DIRS=new Set(["node_modules","dist","build",".turbo",".git"]),TemplateFrameworkError=class extends Error{static{__name(this,"TemplateFrameworkError")}constructor(message){super(message),this.name="TemplateFrameworkError"}};__name(resolveTemplateFramework,"resolveTemplateFramework");__name(resolveTemplateRoot,"resolveTemplateRoot");__name(resolveAgentTemplatesRoot,"resolveAgentTemplatesRoot");__name(resolveAgentTemplate,"resolveAgentTemplate");__name(listAgentTemplates,"listAgentTemplates");__name(copyAgentTemplate,"copyAgentTemplate");__name(copyTemplate,"copyTemplate");__name(pinFimoDependency,"pinFimoDependency");__name(copyTree,"copyTree");__name(writePerAgentVariants,"writePerAgentVariants");__name(syncPerAgentVariants,"syncPerAgentVariants");__name(detectAgentsInProject,"detectAgentsInProject")}});import fs4 from"node:fs";function ensureCredentialsDir(cfg){fs4.existsSync(cfg.credentialsDir)||fs4.mkdirSync(cfg.credentialsDir,{recursive:!0})}function readCredentials(cfg=loadConfig()){if(!fs4.existsSync(cfg.credentialsFile))return null;let raw=fs4.readFileSync(cfg.credentialsFile,"utf-8");return JSON.parse(raw)}function writeCredentials(credentials,cfg=loadConfig()){ensureCredentialsDir(cfg);let tmpFile=`${cfg.credentialsFile}.tmp-${process.pid}`;fs4.writeFileSync(tmpFile,JSON.stringify(credentials,null,2)),fs4.renameSync(tmpFile,cfg.credentialsFile)}function clearCredentials(cfg=loadConfig()){fs4.existsSync(cfg.credentialsFile)&&fs4.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 requireToken(cfg=loadConfig()){return requireCredentials(cfg).access_token}function requireCredentials(cfg=loadConfig()){let creds=readCredentials(cfg);if(!creds?.access_token)throw new NotAuthenticatedError(cfg.apiUrl);return creds}var NotAuthenticatedError,init_auth=__esm({"src/cli/auth.ts"(){init_config();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}};__name(ensureCredentialsDir,"ensureCredentialsDir");__name(readCredentials,"readCredentials");__name(writeCredentials,"writeCredentials");__name(clearCredentials,"clearCredentials");__name(setActiveOrganization,"setActiveOrganization");__name(recordAuthFailure,"recordAuthFailure");__name(requireToken,"requireToken");__name(requireCredentials,"requireCredentials")}});import{z as z5}from"zod";function createResponseSchema(dataSchema){return z5.object({data:dataSchema})}function encodeBranchPathSegment(branch){return encodeURIComponent(branch.replaceAll("/","--"))}function managementProjectPath(projectId,suffix){return`/management/projects/${encodeURIComponent(projectId)}${suffix}`}function managementBranchPath(projectId,branch,suffix){return managementProjectPath(projectId,`/branches/${encodeBranchPathSegment(branch)}${suffix}`)}function tenantPath(projectId,branch,suffix){return`/tenant/${encodeURIComponent(projectId)}/branches/${encodeBranchPathSegment(branch)}${suffix}`}function addQuery(path53,query){let params=new URLSearchParams;for(let[key,value]of Object.entries(query))value!==void 0&&(Array.isArray(value)?value.length>0&&params.set(key,value.join(",")):params.set(key,String(value)));let queryString=params.toString();return queryString?`${path53}?${queryString}`:path53}function withoutUndefined(values){return Object.fromEntries(Object.entries(values).filter(([,value])=>value!==void 0))}function utf8Text(maxBytes,message){return z5.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!==void 0&&input.offset!==void 0){context.addIssue({code:"custom",message:"Use either cursor or offset, not both.",path:["cursor"]});return}if(input.cursor!==void 0)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{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.isInteger(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===void 0?input.offset:decodePaginationCursor(input.cursor)}function pageSchema(itemSchema){return z5.object({items:z5.array(itemSchema),nextCursor:z5.string().nullable(),total:z5.number().int().nonnegative().optional()})}function projectOffsetPage(body){let{data:data2,meta}=rawOffsetPageSchema.parse(body);return{items:data2,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(projectId,branch,sessionId,suffix){return sessionId?managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files${suffix}`):managementBranchPath(projectId,requiredBranch(branch),`/files${suffix}`)}var uuidSchema,sessionStatusSchema,surfaceNameSchema,branchSurfaceSchema,backendSurfaceSchema,branchNameSchema,PROJECT_FILE_WRITE_LIMIT_BYTES,sessionEnvelopeSchema,paginationShape,rawOffsetPageSchema,init_common=__esm({"../../packages/sdk/dist/operations/common.js"(){"use strict";__name(createResponseSchema,"createResponseSchema");uuidSchema=z5.uuid(),sessionStatusSchema=z5.enum(["provisioning","ready","closing","merged","discarded","expired","failed"]),surfaceNameSchema=z5.enum(["code","schemas","content","labels","assets","forms"]),branchSurfaceSchema=z5.enum(["code","schemas","content","labels","assets","forms"]),backendSurfaceSchema=z5.enum(["code","schemas","content","translations","assets","forms"]),branchNameSchema=z5.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(encodeBranchPathSegment,"encodeBranchPathSegment");__name(managementProjectPath,"managementProjectPath");__name(managementBranchPath,"managementBranchPath");__name(tenantPath,"tenantPath");__name(addQuery,"addQuery");__name(withoutUndefined,"withoutUndefined");PROJECT_FILE_WRITE_LIMIT_BYTES=256*1024;__name(utf8Text,"utf8Text");__name(responseData,"responseData");__name(publicSurface,"publicSurface");__name(backendSurfaces,"backendSurfaces");__name(recordValue,"recordValue");sessionEnvelopeSchema=z5.object({sessionId:uuidSchema,projectId:uuidSchema,status:sessionStatusSchema,targetBranch:z5.object({id:uuidSchema.nullable(),name:branchNameSchema,sha:z5.string().min(1)}),workingBranch:z5.object({id:uuidSchema,name:branchNameSchema}).nullable(),preview:z5.url().nullable(),lastActivityAt:z5.iso.datetime(),expiresAt:z5.iso.datetime(),onExpire:z5.literal("discard"),nextOperations:z5.array(z5.string())}),paginationShape={limit:z5.number().int().min(1).max(100).optional(),cursor:z5.string().min(1).optional(),offset:z5.number().int().min(0).optional()};__name(paginationRefinement,"paginationRefinement");__name(encodePaginationCursor,"encodePaginationCursor");__name(decodePaginationCursor,"decodePaginationCursor");__name(paginationOffset,"paginationOffset");__name(pageSchema,"pageSchema");rawOffsetPageSchema=z5.object({data:z5.array(z5.unknown()),meta:z5.object({limit:z5.number().int().positive(),offset:z5.number().int().nonnegative(),total:z5.number().int().nonnegative(),hasMore:z5.boolean()})});__name(projectOffsetPage,"projectOffsetPage");__name(projectDetail,"projectDetail");__name(requiredBranch,"requiredBranch");__name(projectFilesPath,"projectFilesPath")}});import{z as z6}from"zod";function projectAgentSessionsPage(body){let page=body;if(!Array.isArray(page.data))throw new Error("Expected an agent sessions page.");return cliAgentSessionsPageSchema.parse({...page,data:page.data.map(value=>{let{env,...session}=value;return{...session,branch:session.branch??env}})})}function projectAgentStatus(body){let data2=recordValue(responseData(body),"Expected an agent session response."),session=recordValue(data2.session,"Expected an agent session.");if(!Array.isArray(data2.checkpoints))throw new Error("Expected agent session checkpoints.");return agentStatusOutputSchema.parse({data:{session:{...session,branch:session.branch??session.env},checkpoints:data2.checkpoints}})}var agentTriggerKindSchema,agentCapabilitySchema,agentListItemSchema,agentListResponseSchema,manualAgentRunResponseSchema,publicAgentSessionSchema,publicAgentCheckpointSchema,agentStatusOutputSchema,cliAgentSessionSchema,cliAgentSessionsPageSchema,agentsOperations,init_agents=__esm({"../../packages/sdk/dist/operations/agents.js"(){"use strict";init_common();agentTriggerKindSchema=z6.enum(["manual","schedule","webhook"]),agentCapabilitySchema=z6.object({token:z6.string().min(1),risk:z6.enum(["low","medium","high","critical"]),description:z6.string()}),agentListItemSchema=z6.object({name:z6.string().min(1),description:z6.string().nullable(),goalFirstLine:z6.string().nullable(),declaredCapabilities:z6.array(agentCapabilitySchema),triggers:z6.array(z6.object({kind:agentTriggerKindSchema,summary:z6.string()})),triggerStates:z6.array(z6.object({triggerIndex:z6.number().int().nonnegative(),triggerKind:agentTriggerKindSchema,enabled:z6.boolean(),wired:z6.boolean(),syncError:z6.string().nullable()})),paused:z6.boolean(),nextRunAt:z6.iso.datetime().nullable()}),agentListResponseSchema=createResponseSchema(z6.array(agentListItemSchema)),manualAgentRunResponseSchema=createResponseSchema(z6.union([z6.object({sessionId:z6.string().min(1)}),z6.object({skipped:z6.enum(["no-manual-trigger","trigger-not-wired","agent-paused","run-in-progress","task-env-budget"])})])),publicAgentSessionSchema=z6.object({id:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,agentName:z6.string().min(1),triggerKind:agentTriggerKindSchema,status:z6.enum(["planned","running","finished","cancelled","errored"]),startedAt:z6.iso.datetime().nullable(),finishedAt:z6.iso.datetime().nullable(),cancelledAt:z6.iso.datetime().nullable(),longRunning:z6.boolean(),terminalReason:z6.string().nullable(),errorMessage:z6.string().nullable(),reportDocument:z6.unknown().nullable(),reviewSummary:z6.unknown().nullable(),reviewCaptureError:z6.string().nullable(),createdAt:z6.iso.datetime(),updatedAt:z6.iso.datetime()}),publicAgentCheckpointSchema=z6.object({id:uuidSchema,sessionId:uuidSchema,checkpointIdx:z6.number().int().nonnegative(),payloadSizeBytes:z6.number().int().nonnegative(),checksum:z6.string().length(64),createdAt:z6.iso.datetime()}),agentStatusOutputSchema=createResponseSchema(z6.object({session:publicAgentSessionSchema,checkpoints:z6.array(publicAgentCheckpointSchema)})),cliAgentSessionSchema=z6.object({id:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,agentName:z6.string().min(1),triggerKind:agentTriggerKindSchema,status:z6.enum(["planned","running","finished","cancelled","errored"]),startedAt:z6.iso.datetime().nullable(),finishedAt:z6.iso.datetime().nullable(),cancelledAt:z6.iso.datetime().nullable(),costUsd:z6.number().nonnegative().optional(),costCeilingUsd:z6.number().nonnegative(),creditsUsed:z6.number().int().nonnegative().nullable().optional(),longRunning:z6.boolean(),terminalReason:z6.string().nullable(),errorMessage:z6.string().nullable(),reportDocument:z6.unknown().nullable(),reviewSummary:z6.unknown().nullable(),reviewCaptureError:z6.string().nullable(),createdAt:z6.iso.datetime(),updatedAt:z6.iso.datetime()}).passthrough(),cliAgentSessionsPageSchema=z6.object({data:z6.array(cliAgentSessionSchema),page:z6.number().int().positive(),limit:z6.number().int().positive().optional(),total:z6.number().int().nonnegative(),totalPages:z6.number().int().nonnegative(),hasMore:z6.boolean()});__name(projectAgentSessionsPage,"projectAgentSessionsPage");__name(projectAgentStatus,"projectAgentStatus");agentsOperations={"agents.list":{domain:"agents",summary:"List project agent bundles, triggers, and activation state from main.",accessScope:"read",effect:"read",inputSchema:z6.object({projectId:uuidSchema}).strict(),outputSchema:agentListResponseSchema,buildRequest:__name(({projectId})=>({method:"GET",path:managementBranchPath(projectId,"main","/agents")}),"buildRequest")},"agents.run":{domain:"agents",summary:"Trigger one manual project agent run from main.",accessScope:"agents",effect:"mutation",inputSchema:z6.object({projectId:uuidSchema,agentName:z6.string().min(1).max(120),args:z6.record(z6.string(),z6.unknown()).optional()}).strict(),outputSchema:manualAgentRunResponseSchema,buildRequest:__name(({projectId,agentName,args})=>({method:"POST",path:managementBranchPath(projectId,"main",`/agents/${encodeURIComponent(agentName)}/run`),body:args===void 0?{}:{args}}),"buildRequest")},"agents.status":{domain:"agents",summary:"Read one agent run status, report, and safe checkpoint metadata.",accessScope:"read",effect:"read",inputSchema:z6.object({projectId:uuidSchema,sessionId:uuidSchema}).strict(),outputSchema:agentStatusOutputSchema,buildRequest:__name(({projectId,sessionId})=>({method:"GET",path:managementProjectPath(projectId,`/agents/sessions/${encodeURIComponent(sessionId)}`)}),"buildRequest"),projectOutput:projectAgentStatus},"agents.runs":{domain:"agents",summary:"List project agent runs with the CLI pagination contract.",accessScope:"read",effect:"read",inputSchema:z6.object({projectId:uuidSchema,agentName:z6.string().min(1).optional(),branch:branchNameSchema.optional(),status:z6.enum(["planned","running","finished","cancelled","errored"]).optional(),page:z6.number().int().positive().optional(),limit:z6.number().int().min(1).max(200).optional()}).strict(),outputSchema:cliAgentSessionsPageSchema,buildRequest:__name(({projectId,agentName,branch,status,page,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/agents/sessions"),{agent_name:agentName,env:branch,status,page,limit})}),"buildRequest"),projectOutput:projectAgentSessionsPage}}}});import{z as z7}from"zod";function projectAnalyticsTop(body,input){let analytics2=analyticsPageviewsResponseSchema.parse(body).data,field={pages:"topPages",browsers:"topBrowsers",devices:"topDevices",countries:"topCountries",sources:"topSources"}[input.dimension];return analyticsTopOutputSchema.parse({dimension:input.dimension,items:input.limit===void 0?analytics2[field]:analytics2[field].slice(0,input.limit)})}function projectAnalyticsAnnotations(body){let analytics2=analyticsPageviewsResponseSchema.parse(body).data;return analyticsAnnotationsOutputSchema.parse({annotations:analytics2.annotations})}function projectAnalyticsAnnotation(body){return body===void 0?null:analyticsAnnotationResponseSchema.parse(body)}var analyticsPresetSchema,analyticsGroupBySchema,analyticsRangeShape,analyticsRangeRefinement,analyticsAnnotationSchema,analyticsBreakdownSchema,analyticsPageBreakdownSchema,analyticsPageviewsSchema,analyticsPageviewsResponseSchema,analyticsDimensionSchema,analyticsTopOutputSchema,analyticsAnnotationsOutputSchema,analyticsAnnotationResponseSchema,analyticsOperations,init_analytics=__esm({"../../packages/sdk/dist/operations/analytics.js"(){"use strict";init_common();analyticsPresetSchema=z7.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=z7.enum(["day","week","month","quarter"]),analyticsRangeShape={preset:analyticsPresetSchema.optional(),groupBy:analyticsGroupBySchema.optional(),from:z7.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),to:z7.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),days:z7.union([z7.literal(7),z7.literal(30),z7.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=z7.object({date:z7.string(),content:z7.string(),updatedAt:z7.string(),updatedByUserId:z7.string()}),analyticsBreakdownSchema=z7.object({key:z7.string(),visitors:z7.number().int().nonnegative(),pageviews:z7.number().int().nonnegative()}),analyticsPageBreakdownSchema=z7.object({path:z7.string(),pageName:z7.string().nullable().optional(),visitors:z7.number().int().nonnegative(),pageviews:z7.number().int().nonnegative()}),analyticsPageviewsSchema=z7.object({range:z7.object({preset:analyticsPresetSchema,requestedFrom:z7.string(),requestedTo:z7.string(),effectiveFrom:z7.string(),effectiveTo:z7.string(),isRetentionLimited:z7.boolean(),groupBy:analyticsGroupBySchema}),visitors:z7.number().int().nonnegative(),pageviews:z7.number().int().nonnegative(),bounceRate:z7.number().min(0).max(100),viewsPerVisit:z7.number().nonnegative(),averageVisitDurationSeconds:z7.number().nonnegative(),visitorsSeries:z7.array(z7.object({date:z7.string(),visitors:z7.number().int().nonnegative()})),topPages:z7.array(analyticsPageBreakdownSchema),topBrowsers:z7.array(analyticsBreakdownSchema),topDevices:z7.array(analyticsBreakdownSchema),topCountries:z7.array(analyticsBreakdownSchema),topSources:z7.array(analyticsBreakdownSchema),annotations:z7.array(analyticsAnnotationSchema)}),analyticsPageviewsResponseSchema=createResponseSchema(analyticsPageviewsSchema),analyticsDimensionSchema=z7.enum(["pages","browsers","devices","countries","sources"]),analyticsTopOutputSchema=z7.object({dimension:analyticsDimensionSchema,items:z7.array(z7.union([analyticsPageBreakdownSchema,analyticsBreakdownSchema]))}),analyticsAnnotationsOutputSchema=z7.object({annotations:z7.array(analyticsAnnotationSchema)}),analyticsAnnotationResponseSchema=createResponseSchema(analyticsAnnotationSchema);__name(projectAnalyticsTop,"projectAnalyticsTop");__name(projectAnalyticsAnnotations,"projectAnalyticsAnnotations");__name(projectAnalyticsAnnotation,"projectAnalyticsAnnotation");analyticsOperations={"analytics.pageviews":{domain:"analytics",summary:"Read site pageviews, visitors, range, breakdowns, and annotations for one Branch.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:branchNameSchema,...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsPageviewsResponseSchema,buildRequest:__name(({projectId,branch,preset,groupBy,from,to,days})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days})}),"buildRequest")},"analytics.top":{domain:"analytics",summary:"Read one ranked analytics breakdown for one Branch.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:branchNameSchema,dimension:analyticsDimensionSchema,limit:z7.number().int().min(1).max(100).optional(),...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsTopOutputSchema,buildRequest:__name(({projectId,branch,preset,groupBy,from,to,days})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days})}),"buildRequest"),projectOutput:projectAnalyticsTop},"analytics.annotationsList":{domain:"analytics",summary:"List analytics annotations in the selected Branch range.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:branchNameSchema,...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsAnnotationsOutputSchema,buildRequest:__name(({projectId,branch,preset,groupBy,from,to,days})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days})}),"buildRequest"),projectOutput:projectAnalyticsAnnotations},"analytics.annotationsSet":{domain:"analytics",summary:"Set an analytics annotation for one project date.",accessScope:"write",effect:"mutation",inputSchema:z7.object({projectId:uuidSchema,branch:branchNameSchema,date:z7.string().regex(/^\d{4}-\d{2}-\d{2}$/),content:z7.string().max(500)}).strict(),outputSchema:z7.union([analyticsAnnotationResponseSchema,z7.null()]),buildRequest:__name(({projectId,branch,date,content:content2})=>({method:"PUT",path:managementBranchPath(projectId,branch,`/analytics/annotations/${encodeURIComponent(date)}`),body:{content:content2}}),"buildRequest"),projectOutput:projectAnalyticsAnnotation},"analytics.annotationsDelete":{domain:"analytics",summary:"Delete an analytics annotation for one project date.",accessScope:"write",effect:"mutation",inputSchema:z7.object({projectId:uuidSchema,branch:branchNameSchema,date:z7.string().regex(/^\d{4}-\d{2}-\d{2}$/)}).strict(),outputSchema:z7.null(),buildRequest:__name(({projectId,branch,date})=>({method:"PUT",path:managementBranchPath(projectId,branch,`/analytics/annotations/${encodeURIComponent(date)}`),body:{content:""}}),"buildRequest"),projectOutput:__name(()=>null,"projectOutput")}}}});import{z as z8}from"zod";var assetPathItemSchema,AssetDTOSchema,AssetResponseSchema,AssetReadRequestSchema,assetDerivedFileSchema,assetReadBaseSchema,AssetReadResultSchema,GenerateResponseSchema,assetPageSchema,successMessageResponseSchema,assetGenerationInputSchema,assetUploadInputSchema,assetsOperations,init_assets=__esm({"../../packages/sdk/dist/operations/assets.js"(){"use strict";init_common();assetPathItemSchema=z8.object({id:z8.string(),name:z8.string()}),AssetDTOSchema=z8.object({id:z8.string(),name:z8.string(),type:z8.enum(["file","folder"]),originalFileName:z8.string().nullable(),parentId:z8.string().nullable(),mimeType:z8.string().nullable(),fileSize:z8.number().nullable(),url:z8.string().nullable(),storageKey:z8.string().nullable(),createdAt:z8.string(),updatedAt:z8.string(),altText:z8.string().nullable().optional(),caption:z8.string().nullable().optional(),aiCaption:z8.string().nullable().optional(),aiAltText:z8.string().nullable().optional(),aiTags:z8.array(z8.string()).nullable().optional(),aiPrimaryColor:z8.string().nullable().optional(),aiProcessingStatus:z8.string().nullable().optional(),width:z8.number().nullable().optional(),height:z8.number().nullable().optional(),path:z8.array(assetPathItemSchema).optional(),hasChildren:z8.boolean().optional()}),AssetResponseSchema=createResponseSchema(AssetDTOSchema),AssetReadRequestSchema=z8.object({cursor:z8.string().optional(),query:z8.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=z8.object({url:z8.url(),mediaType:z8.string(),filename:z8.string()}),assetReadBaseSchema=z8.object({assetId:z8.uuid(),filename:z8.string(),mediaType:z8.string(),representation:z8.enum(["text","table","document","archive","image","transcript","video","model"]),content:z8.string(),derivedFiles:z8.array(assetDerivedFileSchema).optional()}),AssetReadResultSchema=z8.discriminatedUnion("mode",[assetReadBaseSchema.extend({mode:z8.literal("page"),start:z8.number().int().nonnegative(),end:z8.number().int().nonnegative(),total:z8.number().int().nonnegative(),nextCursor:z8.string().nullable(),complete:z8.boolean()}),assetReadBaseSchema.extend({mode:z8.literal("query"),query:z8.string(),source:z8.enum(["original-file","canonical-text","derived-files"]),truncated:z8.boolean()})]),GenerateResponseSchema=createResponseSchema(z8.object({jobId:z8.string(),status:z8.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema.optional(),error:z8.string().nullable().optional(),credits:z8.number().optional(),costUsd:z8.number().optional(),billingMode:z8.enum(["fimo-credits","provider-account"]).optional(),task:z8.enum(["image.generate","image.edit","image.remove-background","image.upscale","video.generate","video.animate","video.replace"]).optional(),quality:z8.enum(["draft","standard","premium"]).optional()})),assetPageSchema=pageSchema(AssetDTOSchema),successMessageResponseSchema=z8.object({data:z8.object({message:z8.literal("success")})}),assetGenerationInputSchema=z8.object({projectId:uuidSchema,branch:branchNameSchema,task:z8.string().min(1).optional(),model:z8.string().min(1).optional(),options:z8.record(z8.string(),z8.unknown()),name:z8.string().min(1).max(255).optional(),parentId:uuidSchema.nullable().optional(),altText:z8.string().max(2e3).optional(),caption:z8.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=z8.object({projectId:uuidSchema,sessionId:uuidSchema,url:z8.url().max(4096).refine(url=>url.startsWith("https://")||url.startsWith("http://"),"URL must use HTTP or HTTPS"),filename:z8.string().trim().min(1).max(255).refine(filename=>!filename.includes("/")&&!filename.includes("\\"),"Filename must not contain a path").optional(),name:z8.string().trim().min(1).max(255).optional(),parentId:uuidSchema.nullable().optional(),folderPath:z8.string().max(1024).refine(path53=>path53.split("/").some(segment=>segment.trim()),"Folder path must contain a folder name").refine(path53=>path53.split("/").every(segment=>![".",".."].includes(segment.trim())),"Folder path cannot contain . or .. segments").optional(),altText:z8.string().max(2e3).optional(),caption:z8.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:z8.object({projectId:uuidSchema,branch:branchNameSchema,parentId:uuidSchema.optional(),search:z8.string().max(200).optional(),type:z8.enum(["file","folder"]).optional(),mimePrefix:z8.string().max(50).optional(),sortBy:z8.enum(["name","createdAt","updatedAt","fileSize","type"]).optional(),sortDirection:z8.enum(["asc","desc"]).optional(),includePath:z8.boolean().optional(),excludeHidden:z8.boolean().optional(),...paginationShape}).strict().superRefine(paginationRefinement),outputSchema:assetPageSchema,buildRequest:__name(({projectId,branch,parentId,search,type,mimePrefix,sortBy,sortDirection,includePath,excludeHidden,limit,cursor,offset})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema}).strict(),outputSchema:AssetResponseSchema,buildRequest:__name(({projectId,branch,id})=>({method:"GET",path:tenantPath(projectId,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:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema,...AssetReadRequestSchema.shape}).strict().refine(input=>input.cursor===void 0||input.query===void 0,{message:"Use either cursor or query, not both."}),outputSchema:createResponseSchema(AssetReadResultSchema),buildRequest:__name(({projectId,branch,id,cursor,query})=>({method:"POST",path:tenantPath(projectId,branch,`/assets/${encodeURIComponent(id)}/read`),body:{cursor,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:GenerateResponseSchema,buildRequest:__name(({projectId,branch,task,model,options,name,parentId,altText,caption})=>({method:"POST",path:tenantPath(projectId,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:AssetDTOSchema}),buildRequest:__name(({projectId,sessionId,...upload})=>({method:"POST",path:managementProjectPath(projectId,`/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:z8.object({projectId:uuidSchema,branch:branchNameSchema,name:z8.string().min(1).max(255),parentId:uuidSchema.nullable().optional()}).strict(),outputSchema:AssetResponseSchema,buildRequest:__name(({projectId,branch,name,parentId})=>({method:"POST",path:tenantPath(projectId,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:z8.object({projectId:uuidSchema,branch:branchNameSchema,sourceAssetId:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z8.record(z8.string(),z8.unknown()),buildRequest:__name(({projectId,branch,sourceAssetId,replacementAssetId})=>({method:"POST",path:tenantPath(projectId,branch,`/assets/${encodeURIComponent(sourceAssetId)}/replace-references`),body:{replacementAssetId}}),"buildRequest"),projectOutput:__name(body=>z8.object({data:z8.record(z8.string(),z8.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:z8.object({projectId:uuidSchema,branch:branchNameSchema,sourceAssetId:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z8.record(z8.string(),z8.unknown()),buildRequest:__name(({projectId,branch,sourceAssetId,replacementAssetId})=>({method:"POST",path:tenantPath(projectId,branch,"/assets/removals"),body:{intent:"replace-and-remove",assetIds:[sourceAssetId],replacementAssetId}}),"buildRequest"),projectOutput:__name(body=>z8.object({data:z8.record(z8.string(),z8.unknown())}).parse(body).data,"projectOutput")},"assets.destroy":{domain:"assets",summary:"Permanently destroy an asset on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema}).strict(),outputSchema:z8.unknown(),buildRequest:__name(({projectId,branch,id})=>({method:"DELETE",path:tenantPath(projectId,branch,`/assets/${encodeURIComponent(id)}/permanent`)}),"buildRequest"),projectOutput:__name(body=>z8.object({data:z8.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:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema,replacementAssetId:uuidSchema}).strict(),outputSchema:z8.record(z8.string(),z8.unknown()),buildRequest:__name(({projectId,branch,id,replacementAssetId})=>({method:"POST",path:tenantPath(projectId,branch,`/assets/${encodeURIComponent(id)}/replace-and-destroy`),body:{replacementAssetId}}),"buildRequest"),projectOutput:__name(body=>z8.object({data:z8.record(z8.string(),z8.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:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema,parentId:uuidSchema.nullable()}).strict(),outputSchema:AssetResponseSchema,buildRequest:__name(({projectId,branch,id,parentId})=>({method:"POST",path:tenantPath(projectId,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:z8.object({projectId:uuidSchema,branch:branchNameSchema,id:uuidSchema}).strict(),outputSchema:successMessageResponseSchema,buildRequest:__name(({projectId,branch,id})=>({method:"DELETE",path:tenantPath(projectId,branch,`/assets/${encodeURIComponent(id)}`)}),"buildRequest")}}}});import{z as z9}from"zod";var creditBalanceOutputSchema,billingOperations,init_billing=__esm({"../../packages/sdk/dist/operations/billing.js"(){"use strict";init_common();creditBalanceOutputSchema=z9.object({projectId:uuidSchema,organizationId:z9.string(),balance:z9.object({totalAvailable:z9.number(),nearLimit:z9.boolean(),canUseAi:z9.boolean(),buckets:z9.object({dailyFreeAvailable:z9.number(),monthlyAvailable:z9.number(),purchasedAvailable:z9.number(),awardedAvailable:z9.number()})}),allowances:z9.object({dailyCredits:z9.object({periodCap:z9.number(),dailyGrant:z9.number(),usedThisPeriod:z9.number(),remainingThisPeriod:z9.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:z9.object({projectId:uuidSchema}).strict(),outputSchema:creditBalanceOutputSchema,buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/billing/credits")}),"buildRequest"),projectOutput:__name(body=>creditBalanceOutputSchema.parse(responseData(body)),"projectOutput")}}}});import{z as z10}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=z10.object({ok:z10.boolean(),mergeId:uuidSchema,fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),fromEnv:branchNameSchema,toEnv:branchNameSchema,applied:z10.array(z10.object({surface:backendSurfaceSchema,count:z10.number().int().nonnegative()})),conflicts:z10.array(backendConflictSchema).optional(),summary:z10.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=z10.object({mergeId:uuidSchema,conflicts:z10.array(backendConflictSchema),draftResolutions:z10.array(conflictResolutionSchema.extend({surface:backendSurfaceSchema})),status:z10.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 data2=body.data.map(({env:_env,parentEnv:_parentEnv,...branch})=>branch);return z10.object({data:z10.array(branchSchema)}).parse({data:data2})}function projectBranchStatus(body){if(branchStatusOutputSchema.safeParse(body).success)return branchStatusOutputSchema.parse(body);let report=z10.object({branch:branchNameSchema.optional(),env:branchNameSchema,vs:branchNameSchema,syncState:z10.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:isoTimestampSchema,surfaces:z10.array(backendSurfaceDeltaSchema).max(6),crossSurface:z10.array(backendCrossSurfaceFindingSchema).max(1e3).optional()}).parse(responseData(body));return branchStatusOutputSchema.parse(withoutUndefined({branch:report.branch??report.env,against:report.vs,state:report.syncState==="in-sync"?"clean":"changed",syncState:report.syncState,generatedAt:report.generatedAt,surfaces:report.surfaces.map(({surface,status,changedCount,conflictCount,items,truncated,error})=>withoutUndefined({surface:publicSurface(surface),status,changedCount,conflictCount,items,truncated,error})),crossSurface:report.crossSurface?.map(projectCrossSurfaceFinding)}))}function projectBranchDiff(body){if(branchDiffOutputSchema.safeParse(body).success)return branchDiffOutputSchema.parse(body);let report=z10.object({fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),fromEnv:branchNameSchema,toEnv:branchNameSchema,generatedAt:isoTimestampSchema,fingerprint:z10.string().min(1),surfaces:z10.array(backendSurfaceDeltaSchema).max(6),crossSurface:z10.array(backendCrossSurfaceFindingSchema).max(1e3).optional()}).parse(responseData(body));return branchDiffOutputSchema.parse({branch:report.fromBranch??report.fromEnv,against:report.toBranch??report.toEnv,generatedAt:report.generatedAt,fingerprint:report.fingerprint,surfaces:report.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:report.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,mergeHydrationSchema,codeConflictBlobSchema,codeConflictDetailOutputSchema,branchesOperations,init_branches=__esm({"../../packages/sdk/dist/operations/branches.js"(){"use strict";init_common();branchSchema=z10.object({id:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,parentBranch:branchNameSchema.nullable().optional(),status:z10.enum(["provisioning","active","deleted"]),kind:z10.enum(["user","agent-session"]),createdAt:z10.string().optional(),updatedAt:z10.string().optional(),createdBy:z10.string().nullable().optional(),deletedAt:z10.string().nullable().optional()}).passthrough(),branchResponseSchema=z10.object({data:branchSchema}),branchSurfaceStatusSchema=z10.enum(["ok","timed_out","failed","unchanged"]),branchDeltaVerbSchema=z10.enum(["added","removed","changed","conflict"]),isoTimestampSchema=z10.iso.datetime(),backendCrossSurfaceFindingSchema=z10.object({id:z10.string(),kind:z10.string(),description:z10.string(),severity:z10.enum(["warning","error"]),source:z10.object({surface:backendSurfaceSchema,key:z10.string()}),target:z10.object({surface:backendSurfaceSchema,key:z10.string()}),actions:z10.array(z10.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=z10.object({surface:backendSurfaceSchema,status:branchSurfaceStatusSchema,changedCount:z10.number().int().nonnegative(),conflictCount:z10.number().int().nonnegative(),items:z10.array(z10.object({verb:branchDeltaVerbSchema,key:z10.string(),detail:z10.string().optional(),origin:z10.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z10.record(z10.string(),z10.unknown()).optional()})).max(1e3).optional(),truncated:z10.boolean().optional(),error:z10.string().optional()}),branchSurfaceSummarySchema=z10.object({surface:branchSurfaceSchema,status:branchSurfaceStatusSchema,changedCount:z10.number().int().nonnegative(),conflictCount:z10.number().int().nonnegative(),error:z10.string().optional(),items:z10.array(z10.object({verb:branchDeltaVerbSchema,key:z10.string(),detail:z10.string().optional(),origin:z10.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z10.record(z10.string(),z10.unknown()).optional()})).optional(),truncated:z10.boolean().optional()}),branchStatusOutputSchema=z10.object({branch:branchNameSchema,against:branchNameSchema,state:z10.enum(["clean","changed"]),syncState:z10.enum(["in-sync","ahead","behind","diverged","unknown"]).optional(),generatedAt:isoTimestampSchema,surfaces:z10.array(branchSurfaceSummarySchema).max(6),crossSurface:z10.array(crossSurfaceFindingSchema).max(1e3).optional()}),branchDiffItemSchema=z10.object({verb:branchDeltaVerbSchema,key:z10.string(),detail:z10.string().optional(),meta:z10.record(z10.string(),z10.unknown()).optional()}),branchDiffOutputSchema=branchStatusOutputSchema.omit({state:!0}).extend({fingerprint:z10.string().min(1),surfaces:z10.array(branchSurfaceSummarySchema.extend({truncated:z10.boolean(),items:z10.array(branchDiffItemSchema).max(1e3)})).max(6)}),codeFileDiffOutputSchema=z10.object({path:z10.string(),state:z10.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z10.string(),additions:z10.number().int().nonnegative(),deletions:z10.number().int().nonnegative()}),contentSnapshotSchema=z10.object({id:z10.string(),slug:z10.string(),contentType:z10.string(),data:z10.record(z10.string(),z10.unknown()),updatedAt:isoTimestampSchema}),contentEntryDiffOutputSchema=z10.object({collection:z10.string(),rowId:z10.string(),parent:contentSnapshotSchema.nullable(),child:contentSnapshotSchema.nullable()}),schemaSnapshotSchema=z10.object({name:z10.string(),label:z10.string(),isSingleton:z10.boolean(),fields:z10.record(z10.string(),z10.unknown())}),schemaDiffOutputSchema=z10.object({typeName:z10.string(),parent:schemaSnapshotSchema.nullable(),child:schemaSnapshotSchema.nullable()}),assetSnapshotSchema=z10.object({id:z10.string(),name:z10.string(),type:z10.enum(["file","folder"]),mimeType:z10.string().nullable(),storageKey:z10.string().nullable(),url:z10.string().nullable(),fileSize:z10.number().nullable(),width:z10.number().nullable(),height:z10.number().nullable(),altText:z10.string().nullable(),caption:z10.string().nullable(),createdAt:isoTimestampSchema,updatedAt:isoTimestampSchema}),assetDiffOutputSchema=z10.object({assetId:z10.string(),parent:assetSnapshotSchema.nullable(),child:assetSnapshotSchema.nullable()}),labelDiffOutputSchema=z10.object({locale:z10.string(),key:z10.string(),parent:z10.string().nullable(),child:z10.string().nullable()}),formSnapshotSchema=z10.object({formName:z10.string(),label:z10.string().nullable(),schemaFingerprint:z10.string(),fields:z10.record(z10.string(),z10.unknown())}),formDiffOutputSchema=z10.object({formName:z10.string(),parent:formSnapshotSchema.nullable(),child:formSnapshotSchema.nullable()}),backendConflictSchema=z10.object({surface:backendSurfaceSchema,key:z10.string(),kind:z10.enum(["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"]).optional(),description:z10.string(),parentValue:z10.unknown().optional(),childValue:z10.unknown().optional(),conflictingFields:z10.array(z10.string()).optional(),code:z10.object({path:z10.string(),unresolvable:z10.boolean().optional(),reason:z10.string().optional()}).optional()}),conflictSchema=backendConflictSchema.extend({surface:branchSurfaceSchema}),fieldPickSchema=z10.object({field:z10.string(),choice:z10.enum(["parent","child","pick","ai-pick"]),pickedValue:z10.unknown().optional(),aiSessionId:z10.string().optional()}),conflictResolutionSchema=z10.object({surface:branchSurfaceSchema,key:z10.string(),choice:z10.enum(["parent","child","pick"]),pickedValue:z10.unknown().optional(),fieldPicks:z10.array(fieldPickSchema).optional()}),mergeResultSchema=z10.object({ok:z10.boolean(),mergeId:uuidSchema,fromBranch:branchNameSchema,toBranch:branchNameSchema,applied:z10.array(z10.object({surface:branchSurfaceSchema,count:z10.number().int().nonnegative()})),conflicts:z10.array(conflictSchema).optional(),summary:z10.string().optional()}),mergeHydrationSchema=z10.object({mergeId:uuidSchema,conflicts:z10.array(conflictSchema),draftResolutions:z10.array(conflictResolutionSchema),status:z10.string()}).passthrough();__name(projectConflict,"projectConflict");__name(backendResolution,"backendResolution");__name(projectMergeResult,"projectMergeResult");__name(projectMergeHydration,"projectMergeHydration");codeConflictBlobSchema=z10.object({content:z10.string(),sha:z10.string().nullable().optional()}).passthrough(),codeConflictDetailOutputSchema=z10.object({path:z10.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 project.",accessScope:"read",effect:"read",inputSchema:z10.object({projectId:uuidSchema,includeDeleted:z10.boolean().optional(),includeAgentBranches:z10.boolean().optional()}).strict(),outputSchema:z10.object({data:z10.array(branchSchema)}),buildRequest:__name(({projectId,includeDeleted,includeAgentBranches})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/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:z10.object({projectId:uuidSchema,from:branchNameSchema.optional(),name:branchNameSchema}).strict(),outputSchema:branchResponseSchema,buildRequest:__name(({projectId,from,name})=>({method:"POST",path:managementProjectPath(projectId,"/branches"),body:from===void 0?{branch:name}:{branch:name,parentBranch:from}}),"buildRequest"),projectOutput:projectBranchRecord},"branches.get":{domain:"branches",summary:"Read one durable project Branch.",accessScope:"read",effect:"read",inputSchema:z10.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:branchSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema.optional()}).strict(),outputSchema:z10.object({branch:branchSchema,conflicts:z10.number().int().nonnegative()}),buildRequest:__name(({projectId,branch,from})=>({method:"POST",path:managementBranchPath(projectId,branch,"/sync"),body:withoutUndefined({from})}),"buildRequest"),projectOutput:__name(body=>{let data2=z10.object({branch:branchSchema.optional(),env:branchSchema.optional(),conflicts:z10.number().int().nonnegative()}).parse(responseData(body)),branch=data2.branch??data2.env;if(!branch)throw new Error("Expected a synced Branch.");return{branch,conflicts:data2.conflicts}},"projectOutput")},"branches.delete":{domain:"branches",summary:"Delete one durable project Branch.",accessScope:"code",effect:"mutation",inputSchema:z10.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:z10.unknown(),buildRequest:__name(({projectId,branch})=>({method:"DELETE",path:managementBranchPath(projectId,branch,"")}),"buildRequest")},"branches.status":{domain:"branches",summary:"Summarize bounded differences between two durable Branches.",accessScope:"read",effect:"read",inputSchema:z10.object({projectId:uuidSchema,branch:branchNameSchema,against:branchNameSchema.optional(),surfaces:z10.array(branchSurfaceSchema).min(1).max(6).optional()}).strict(),outputSchema:branchStatusOutputSchema,buildRequest:__name(({projectId,branch,against,surfaces})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,against:branchNameSchema.optional(),surfaces:z10.array(branchSurfaceSchema).min(1).max(6).optional()}).strict(),outputSchema:branchDiffOutputSchema,buildRequest:__name(({projectId,branch,against,surfaces})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,path:z10.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:codeFileDiffOutputSchema,buildRequest:__name(({projectId,branch,path:path53,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/diff/code/file"),{path:path53,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,collection:z10.string().min(1),rowId:z10.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:contentEntryDiffOutputSchema,buildRequest:__name(({projectId,branch,collection,rowId,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z10.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:schemaDiffOutputSchema,buildRequest:__name(({projectId,branch,typeName,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,assetId:z10.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:assetDiffOutputSchema,buildRequest:__name(({projectId,branch,assetId,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,locale:z10.string().min(1),key:z10.string().min(1),against:branchNameSchema.optional()}).strict(),outputSchema:labelDiffOutputSchema,buildRequest:__name(({projectId,branch,locale,key,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,formName:z10.string().min(1).max(255),against:branchNameSchema.optional()}).strict(),outputSchema:formDiffOutputSchema,buildRequest:__name(({projectId,branch,formName,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,allowDirectMerge:z10.boolean().optional()}).strict(),outputSchema:mergeResultSchema,buildRequest:__name(({projectId,branch,from,allowDirectMerge})=>({method:"POST",path:managementBranchPath(projectId,branch,"/merge"),body:withoutUndefined({from,allowDirectMerge})}),"buildRequest"),projectOutput:projectMergeResult},"branches.resolveMerge":{domain:"branches",summary:"Resume a parked durable Branch merge with operator resolutions.",accessScope:"code",effect:"mutation",inputSchema:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,mergeId:uuidSchema,resolutions:z10.array(conflictResolutionSchema)}).strict(),outputSchema:mergeResultSchema,buildRequest:__name(({projectId,branch,from,mergeId,resolutions})=>({method:"POST",path:managementBranchPath(projectId,branch,`/merge/${encodeURIComponent(from)}/resolve`),body:{mergeId,resolutions:resolutions.map(backendResolution)}}),"buildRequest"),projectOutput:projectMergeResult},"branches.cancelMerge":{domain:"branches",summary:"Cancel a parked durable Branch merge.",accessScope:"code",effect:"mutation",inputSchema:z10.object({projectId:uuidSchema,branch:branchNameSchema,mergeId:uuidSchema}).strict(),outputSchema:z10.object({ok:z10.boolean()}),buildRequest:__name(({projectId,branch,mergeId})=>({method:"POST",path:managementBranchPath(projectId,branch,"/merge/cancel"),body:{mergeId}}),"buildRequest"),projectOutput:__name(body=>z10.object({ok:z10.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:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema}).strict(),outputSchema:mergeHydrationSchema,buildRequest:__name(({projectId,branch,from})=>({method:"GET",path:managementBranchPath(projectId,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:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,mergeId:uuidSchema,resolutions:z10.array(conflictResolutionSchema)}).strict(),outputSchema:z10.object({mergeId:uuidSchema,lastEditedAt:z10.string()}),buildRequest:__name(({projectId,branch,from,mergeId,resolutions})=>({method:"PUT",path:managementBranchPath(projectId,branch,`/merge/${encodeURIComponent(from)}/resolve/draft`),body:{mergeId,resolutions:resolutions.map(backendResolution)}}),"buildRequest"),projectOutput:__name(body=>z10.object({mergeId:uuidSchema,lastEditedAt:z10.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:z10.object({projectId:uuidSchema,branch:branchNameSchema,from:branchNameSchema,path:z10.string().min(1)}).strict(),outputSchema:codeConflictDetailOutputSchema,buildRequest:__name(({projectId,branch,from,path:path53})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,`/merge/${encodeURIComponent(from)}/conflict/code`),{path:path53})}),"buildRequest"),projectOutput:projectDetail(codeConflictDetailOutputSchema)}}}});import{z as z11}from"zod";var projectDomainSchema,registeredDomainSchema,domainSearchResultSchema,domainPricingSchema,projectPath,forbidden,domainsOperations,init_domains=__esm({"../../packages/sdk/dist/operations/domains.js"(){"use strict";init_common();projectDomainSchema=z11.object({id:z11.string(),hostname:z11.string(),status:z11.string(),ssl:z11.record(z11.string(),z11.unknown()),cnameTarget:z11.string(),apexTargets:z11.array(z11.string()),dnsAutoConfigured:z11.boolean(),createdAt:z11.unknown(),provider:z11.enum(["cloudflare","saas_custom_domains"]),domainType:z11.enum(["subdomain","apex"])}).passthrough(),registeredDomainSchema=z11.object({id:uuidSchema,domain:z11.string(),status:z11.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),source:z11.enum(["fimo","external"]),autoRenew:z11.boolean(),paymentStatus:z11.enum(["pending","paid","failed","refunded"]).nullable(),checkoutUrl:z11.string().nullable()}).passthrough(),domainSearchResultSchema=z11.object({domain:z11.string(),available:z11.boolean(),premium:z11.boolean(),price:z11.number().nullable(),renewalPrice:z11.number().nullable(),purchaseType:z11.string().nullable()}).passthrough(),domainPricingSchema=z11.object({domain:z11.string(),price:z11.number().nullable(),renewalPrice:z11.number().nullable(),premium:z11.boolean(),allowedYears:z11.array(z11.number().int().positive())}).passthrough(),projectPath=__name((projectId,suffix)=>`/management/projects/${encodeURIComponent(projectId)}${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:z11.object({}).strict(),outputSchema:z11.object({domainPurchaseEnabled:z11.boolean(),publicationDomain:z11.string()}),buildRequest:__name(()=>({method:"GET",path:"/features"}),"buildRequest")},"domains.renameSubdomain":{domain:"domains",summary:"Change the built-in subdomain for a project.",accessScope:"write",effect:"mutation",inputSchema:z11.object({projectId:uuidSchema,slug:z11.string().min(1).max(63)}).strict(),outputSchema:z11.object({subdomain:z11.string(),subdomainUpdatedAt:z11.string()}),buildRequest:__name(({projectId,slug})=>({method:"PATCH",path:projectPath(projectId,"/subdomain"),body:{slug}}),"buildRequest"),projectOutput:responseData},"domains.suggestSubdomains":{domain:"domains",summary:"Suggest available built-in subdomains for a project.",accessScope:"read",effect:"read",inputSchema:z11.object({projectId:uuidSchema,base:z11.string().min(1).max(63).optional(),max:z11.number().int().positive().optional()}).strict(),outputSchema:z11.array(z11.string()),buildRequest:__name(({projectId,base,max})=>({method:"GET",path:addQuery(projectPath(projectId,"/subdomain/suggestions"),{base,max})}),"buildRequest"),projectOutput:__name(body=>z11.object({data:z11.object({suggestions:z11.array(z11.string())})}).parse(body).data.suggestions,"projectOutput")},"domains.list":{domain:"domains",summary:"List custom domains attached to a project.",accessScope:"read",effect:"read",inputSchema:z11.object({projectId:uuidSchema}).strict(),outputSchema:z11.array(projectDomainSchema),buildRequest:__name(({projectId})=>({method:"GET",path:projectPath(projectId,"/domains"),...forbidden}),"buildRequest"),projectOutput:responseData},"domains.add":{domain:"domains",summary:"Attach a custom domain to a project.",accessScope:"write",effect:"mutation",inputSchema:z11.object({projectId:uuidSchema,hostname:z11.string().min(1).max(255),redirectToWww:z11.boolean().optional()}).strict(),outputSchema:projectDomainSchema,buildRequest:__name(({projectId,hostname,redirectToWww})=>({method:"POST",path:projectPath(projectId,"/domains"),body:{hostname,redirectToWww},...forbidden}),"buildRequest"),projectOutput:responseData},"domains.refresh":{domain:"domains",summary:"Refresh custom-domain verification state.",accessScope:"write",effect:"mutation",inputSchema:z11.object({projectId:uuidSchema,domainId:z11.string().min(1)}).strict(),outputSchema:projectDomainSchema,buildRequest:__name(({projectId,domainId})=>({method:"POST",path:projectPath(projectId,`/domains/${encodeURIComponent(domainId)}/refresh`),...forbidden}),"buildRequest"),projectOutput:responseData},"domains.remove":{domain:"domains",summary:"Detach a custom domain from a project.",accessScope:"write",effect:"mutation",inputSchema:z11.object({projectId:uuidSchema,domainId:z11.string().min(1)}).strict(),outputSchema:z11.unknown(),buildRequest:__name(({projectId,domainId})=>({method:"DELETE",path:projectPath(projectId,`/domains/${encodeURIComponent(domainId)}`),...forbidden}),"buildRequest")},"registeredDomains.search":{domain:"domains",summary:"Search domain-registration availability.",accessScope:"read",effect:"read",inputSchema:z11.object({keyword:z11.string().min(1).max(100),tldFilter:z11.array(z11.string().min(1)).optional()}).strict(),outputSchema:z11.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:z11.object({domain:z11.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:z11.object({organizationId:z11.string().min(1)}).strict(),outputSchema:z11.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:z11.object({organizationId:z11.string().min(1),domain:z11.string().min(1).max(255),years:z11.number().int().min(1).max(10).optional(),autoRenew:z11.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:z11.object({organizationId:z11.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 z12}from"zod";function projectEntriesPage(body){return projectOffsetPage(PaginatedEntriesDTOSchema.parse(body))}var EntryDTOSchema,PaginatedEntriesDTOSchema,EntryResponseSchema,MAX_BULK_ENTRIES,entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema,EntryWhereSchema,EntryMutationBodySchema,BulkCreateEntriesResponseSchema,BulkUpdateEntriesResponseSchema,BulkDeleteEntriesResponseSchema,entriesPageSchema,typeNameSchema,localeSchema,populateSchema,entryDataSchema,entryResponseSchema,entriesOperations,init_entries=__esm({"../../packages/sdk/dist/operations/entries.js"(){"use strict";init_common();EntryDTOSchema=z12.object({id:z12.string(),entryId:z12.string(),documentId:z12.string(),slug:z12.string(),locale:z12.string().optional(),createdAt:z12.string(),updatedAt:z12.string(),__fimo:z12.object({contentType:z12.string()})}).passthrough(),PaginatedEntriesDTOSchema=z12.object({data:z12.array(EntryDTOSchema),meta:z12.object({limit:z12.number(),offset:z12.number(),total:z12.number(),hasMore:z12.boolean()})}),EntryResponseSchema=createResponseSchema(EntryDTOSchema),MAX_BULK_ENTRIES=1e3,entryWhereScalarSchema=z12.union([z12.string(),z12.number(),z12.boolean(),z12.null()]),entryWhereOperatorSchema=z12.object({$eq:entryWhereScalarSchema.optional(),$ne:entryWhereScalarSchema.optional(),$gt:entryWhereScalarSchema.optional(),$gte:entryWhereScalarSchema.optional(),$lt:entryWhereScalarSchema.optional(),$lte:entryWhereScalarSchema.optional(),$in:z12.array(entryWhereScalarSchema).optional(),$nin:z12.array(entryWhereScalarSchema).optional(),$contains:z12.string().optional(),$startsWith:z12.string().optional(),$null:z12.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema=z12.record(z12.string(),z12.union([entryWhereScalarSchema,entryWhereOperatorSchema])),EntryWhereSchema=z12.record(z12.string(),z12.union([entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema])),EntryMutationBodySchema=z12.object({data:z12.record(z12.string(),z12.unknown()),locale:z12.string().min(1).optional(),documentId:z12.uuid().optional()}),BulkCreateEntriesResponseSchema=z12.object({data:z12.array(EntryDTOSchema),meta:z12.object({created:z12.number().int().nonnegative()})}),BulkUpdateEntriesResponseSchema=z12.object({data:z12.array(EntryDTOSchema),meta:z12.object({updated:z12.number().int().nonnegative(),missing:z12.array(z12.string())})}),BulkDeleteEntriesResponseSchema=z12.object({data:z12.array(EntryDTOSchema),meta:z12.object({deleted:z12.number().int().nonnegative(),missing:z12.array(z12.string())})});__name(projectEntriesPage,"projectEntriesPage");entriesPageSchema=pageSchema(EntryDTOSchema),typeNameSchema=z12.string().min(1).max(255),localeSchema=z12.string().min(1),populateSchema=z12.array(z12.string().min(1)).max(50).optional(),entryDataSchema=EntryMutationBodySchema.shape.data,entryResponseSchema=EntryResponseSchema,entriesOperations={"entries.list":{domain:"entries",summary:"List entries for one content type on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,locale:localeSchema.optional(),...paginationShape}).strict().superRefine(paginationRefinement),outputSchema:entriesPageSchema,buildRequest:__name(({projectId,branch,typeName,locale,limit,cursor,offset})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional(),populate:populateSchema,localeFallbacks:z12.boolean().optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,id,locale,populate,localeFallbacks})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z12.object({projectId:uuidSchema,branch:branchNameSchema,search:z12.string().min(1).optional(),locale:localeSchema.optional(),...paginationShape}).strict().superRefine(paginationRefinement),outputSchema:entriesPageSchema,buildRequest:__name(({projectId,branch,search,locale,limit,cursor,offset})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z12.string().min(1).max(255),data:entryDataSchema,locale:z12.string().min(1).optional(),documentId:z12.string().min(1).optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,data:data2,locale,documentId})=>({method:"POST",path:tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}`),body:{data:data2,locale,documentId}}),"buildRequest")},"entries.update":{domain:"entries",summary:"Update one entry of a content type on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z12.string().min(1).max(255),id:uuidSchema,data:entryDataSchema,locale:z12.string().min(1).optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,id,data:data2,locale})=>({method:"PUT",path:addQuery(tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale}),body:{data:data2}}),"buildRequest")},"entries.updateFields":{domain:"entries",summary:"Update entry fields using the direct Branch entry payload.",accessScope:"write",effect:"mutation",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional(),fields:z12.record(z12.string(),z12.unknown())}).strict(),outputSchema:z12.unknown(),buildRequest:__name(({projectId,branch,typeName,id,locale,fields})=>({method:"PUT",path:addQuery(tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale}),body:fields}),"buildRequest"),projectOutput:__name(body=>z12.object({data:z12.unknown()}).parse(body).data,"projectOutput")},"entries.querySql":{domain:"entries",summary:"Run a read-only SQL query against Branch content.",accessScope:"read",effect:"read",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,sql:z12.string().min(1)}).strict(),outputSchema:z12.object({data:z12.array(z12.record(z12.string(),z12.unknown())),meta:z12.object({rowCount:z12.number().int().nonnegative(),truncated:z12.boolean()})}),buildRequest:__name(({projectId,branch,sql})=>({method:"POST",path:tenantPath(projectId,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:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,id:uuidSchema,locale:localeSchema.optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,id,locale})=>({method:"DELETE",path:addQuery(tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale})}),"buildRequest")},"entries.bulkCreate":{domain:"entries",summary:`Create up to ${MAX_BULK_ENTRIES} entries of one content type on a Fimo Branch.`,accessScope:"write",effect:"mutation",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,entries:z12.array(z12.unknown()).max(MAX_BULK_ENTRIES)}).strict(),outputSchema:BulkCreateEntriesResponseSchema,buildRequest:__name(({projectId,branch,typeName,entries:entries2})=>({method:"POST",path:tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/bulk-create`),body:{entries:entries2}}),"buildRequest")},"entries.bulkUpdate":{domain:"entries",summary:`Update up to ${MAX_BULK_ENTRIES} entries by IDs, a bounded filter, or per-entry updates.`,accessScope:"write",effect:"mutation",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,selection:z12.union([z12.object({ids:z12.array(uuidSchema).min(1).max(MAX_BULK_ENTRIES)}),z12.object({where:EntryWhereSchema}),z12.object({updates:z12.array(z12.object({id:uuidSchema,body:EntryMutationBodySchema})).min(1).max(MAX_BULK_ENTRIES)})]),body:EntryMutationBodySchema.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:BulkUpdateEntriesResponseSchema,buildRequest:__name(({projectId,branch,typeName,selection,body})=>({method:"POST",path:tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/bulk-update`),body:"updates"in selection?selection:{...selection,body}}),"buildRequest")},"entries.bulkDelete":{domain:"entries",summary:`Delete up to ${MAX_BULK_ENTRIES} entries by IDs or a bounded filter.`,accessScope:"write",effect:"mutation",inputSchema:z12.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,selection:z12.union([z12.object({ids:z12.array(uuidSchema).min(1).max(MAX_BULK_ENTRIES)}),z12.object({where:EntryWhereSchema})]),locale:localeSchema.optional()}).strict(),outputSchema:BulkDeleteEntriesResponseSchema,buildRequest:__name(({projectId,branch,typeName,selection,locale})=>({method:"POST",path:tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/bulk-delete`),body:{...selection,locale}}),"buildRequest")}}}});import{z as z13}from"zod";var productionEnvironmentSchema,previewEnvironmentSchema,customEnvironmentSchema,environmentSchema,environmentWriteShape,environmentsOperations,init_environments=__esm({"../../packages/sdk/dist/operations/environments.js"(){"use strict";init_common();productionEnvironmentSchema=z13.object({id:z13.literal("production"),projectId:uuidSchema,name:z13.string(),kind:z13.literal("production"),sourceBranch:z13.string().min(1),isPublished:z13.boolean(),url:z13.string().nullable()}),previewEnvironmentSchema=z13.object({id:z13.literal("preview"),projectId:uuidSchema,name:z13.string(),kind:z13.literal("preview"),matchedBranchCount:z13.number().int().nonnegative()}),customEnvironmentSchema=z13.object({id:uuidSchema,projectId:uuidSchema,name:z13.string().min(1).max(64),branchPatterns:z13.array(z13.string().min(1).max(255)).min(1),description:z13.string().max(255).nullable(),kind:z13.literal("custom"),matchedBranchCount:z13.number().int().nonnegative()}),environmentSchema=z13.discriminatedUnion("kind",[productionEnvironmentSchema,previewEnvironmentSchema,customEnvironmentSchema]),environmentWriteShape={name:z13.string().trim().min(1).max(64),branchPatterns:z13.array(z13.string().min(1).max(255)).min(1),description:z13.string().trim().max(255).nullable().optional()},environmentsOperations={"environments.list":{domain:"environments",summary:"List the compatibility Environments configured for one project.",accessScope:"read",effect:"read",inputSchema:z13.object({projectId:uuidSchema}).strict(),outputSchema:z13.array(environmentSchema),buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/environments")}),"buildRequest"),projectOutput:__name(body=>z13.array(environmentSchema).parse(responseData(body)),"projectOutput")},"environments.create":{domain:"environments",summary:"Create a custom compatibility Environment for one project.",accessScope:"write",effect:"mutation",inputSchema:z13.object({projectId:uuidSchema,...environmentWriteShape}).strict(),outputSchema:environmentSchema,buildRequest:__name(({projectId,...body})=>({method:"POST",path:managementProjectPath(projectId,"/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:z13.object({projectId:uuidSchema,environmentId:z13.string().min(1),...environmentWriteShape}).strict(),outputSchema:environmentSchema,buildRequest:__name(({projectId,environmentId,...body})=>({method:"PATCH",path:managementProjectPath(projectId,`/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:z13.object({projectId:uuidSchema,environmentId:z13.string().min(1)}).strict(),outputSchema:z13.object({deletedId:uuidSchema}),buildRequest:__name(({projectId,environmentId})=>({method:"DELETE",path:managementProjectPath(projectId,`/environments/${encodeURIComponent(environmentId)}`),preserveForbidden:!0}),"buildRequest"),projectOutput:__name(body=>z13.object({deletedId:uuidSchema}).parse(responseData(body)),"projectOutput")}}}});import{z as z14}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,fileEditOutputSchema,fileDeleteOutputSchema,fileSearchInputShape,fileReadInputSchema,filesOperations,init_files=__esm({"../../packages/sdk/dist/operations/files.js"(){"use strict";init_common();fileReadOutputSchema=z14.object({data:z14.object({path:z14.string(),content:z14.string(),totalLines:z14.number().int().nonnegative()}).passthrough()}),fileGlobOutputSchema=z14.object({data:z14.object({paths:z14.array(z14.string().min(1)).max(2e3),truncated:z14.boolean()})}),fileGrepOutputSchema=z14.object({data:z14.object({matches:z14.array(z14.object({path:z14.string().min(1),line:z14.number().int().positive(),text:z14.string()})).max(200),truncated:z14.boolean()})}),fileWriteInputSchema=z14.object({projectId:uuidSchema,sessionId:uuidSchema,path:z14.string().min(1).max(1024),content:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES,`Content exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES}-byte write limit.`),overwrite:z14.boolean().optional()}).strict(),fileEditInputSchema=z14.object({projectId:uuidSchema,sessionId:uuidSchema,path:z14.string().min(1).max(1024),oldString:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES,`Text exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES}-byte edit limit.`).pipe(z14.string().min(1)),newString:utf8Text(PROJECT_FILE_WRITE_LIMIT_BYTES,`Text exceeds the ${PROJECT_FILE_WRITE_LIMIT_BYTES}-byte edit limit.`),replaceAll:z14.boolean().optional()}).strict(),fileWriteOutputSchema=sessionEnvelopeSchema.extend({file:z14.object({path:z14.string(),created:z14.boolean(),tip:z14.string().min(1)}).passthrough()}),fileEditOutputSchema=sessionEnvelopeSchema.extend({file:z14.object({path:z14.string(),replacements:z14.number().int().nonnegative(),tip:z14.string().min(1)}).passthrough()}),fileDeleteOutputSchema=sessionEnvelopeSchema.extend({file:z14.object({path:z14.string(),deleted:z14.literal(!0),tip:z14.string().min(1)})}),fileSearchInputShape={projectId:uuidSchema,branch:branchNameSchema.optional(),sessionId:uuidSchema.optional()};__name(requireBranchOrSession,"requireBranchOrSession");fileReadInputSchema=z14.object({projectId:uuidSchema,branch:branchNameSchema.optional(),sessionId:uuidSchema.optional(),path:z14.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,branch,sessionId,path:path53})=>({method:"GET",path:addQuery(projectFilesPath(projectId,branch,sessionId,"/file"),{path:path53})}),"buildRequest")},"files.glob":{domain:"files",summary:"List bounded safe project file paths from a Branch or owned work session.",accessScope:"read",effect:"read",inputSchema:z14.object({...fileSearchInputShape,pattern:z14.string().min(1).max(300).optional(),limit:z14.number().int().min(1).max(2e3).optional()}).strict().superRefine(requireBranchOrSession),outputSchema:fileGlobOutputSchema,buildRequest:__name(({projectId,branch,sessionId,pattern,limit})=>({method:"GET",path:addQuery(projectFilesPath(projectId,branch,sessionId,"/paths"),{pattern,limit})}),"buildRequest")},"files.grep":{domain:"files",summary:"Search bounded safe project file contents on a Branch or owned work session.",accessScope:"read",effect:"read",inputSchema:z14.object({...fileSearchInputShape,pattern:z14.string().min(1).max(200),include:z14.string().min(1).max(300).optional(),caseInsensitive:z14.boolean().optional(),maxMatches:z14.number().int().min(1).max(200).optional()}).strict().superRefine(requireBranchOrSession),outputSchema:fileGrepOutputSchema,buildRequest:__name(({projectId,branch,sessionId,pattern,include,caseInsensitive,maxMatches})=>({method:"GET",path:addQuery(projectFilesPath(projectId,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,sessionId,path:path53,content:content2,overwrite})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/write`),body:withoutUndefined({path:path53,content:content2,overwrite})}),"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,sessionId,path:path53,oldString,newString,replaceAll})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/edit`),body:withoutUndefined({path:path53,oldString,newString,replaceAll})}),"buildRequest")},"files.delete":{domain:"files",summary:"Delete one safe project file in an owned work session.",accessScope:"code",effect:"mutation",inputSchema:z14.object({projectId:uuidSchema,sessionId:uuidSchema,path:z14.string().min(1).max(1024)}).strict(),outputSchema:fileDeleteOutputSchema,buildRequest:__name(({projectId,sessionId,path:path53})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/delete`),body:{path:path53}}),"buildRequest")}}}});import{z as z15}from"zod";function projectFormResponse(body){return formResponseSchema.parse(body)}function projectFormDetail(body){return formResponseSchema.parse(body).data}function projectFormList(body){return z15.object({data:z15.array(formSchema)}).parse(body).data}function projectFormSubmissionsPage(body,input){let page=z15.object({data:z15.array(formSubmissionSchema),total:z15.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,FormContentSchema,FormUpdateSchema,rawFormSchema,formSchema,formResponseSchema,formSubmissionSchema,formSubmissionResponseSchema,formSubmissionsPageSchema,formSubmissionStatsResponseSchema,formsOperations,init_forms=__esm({"../../packages/sdk/dist/operations/forms.js"(){"use strict";init_common();formFieldSchema=z15.object({type:z15.enum(["text","email","textarea","number","phone","url","select","checkbox","date","hidden","file"]),label:z15.string(),placeholder:z15.string().optional(),required:z15.boolean().optional(),defaultValue:z15.string().optional(),options:z15.array(z15.string()).optional(),validation:z15.object({minLength:z15.number().optional(),maxLength:z15.number().optional(),min:z15.number().optional(),max:z15.number().optional(),pattern:z15.string().optional(),maxFileSize:z15.number().optional(),accept:z15.array(z15.string()).optional()}).optional()}),FormContentSchema=z15.object({name:z15.string().min(1).max(255),label:z15.string().min(1).max(255),fields:z15.record(z15.string(),formFieldSchema)}).strict(),FormUpdateSchema=FormContentSchema.partial().refine(update2=>update2.name!==void 0||update2.label!==void 0||update2.fields!==void 0,{message:"Pass at least one of name, label, or fields."}),rawFormSchema=z15.object({id:uuidSchema,name:FormContentSchema.shape.name,label:FormContentSchema.shape.label,fields:FormContentSchema.shape.fields,settings:z15.record(z15.string(),z15.unknown()).nullable().optional(),createdAt:z15.string(),updatedAt:z15.string()}).passthrough(),formSchema=rawFormSchema,formResponseSchema=z15.object({data:formSchema}),formSubmissionSchema=z15.object({id:uuidSchema,formId:uuidSchema,projectId:uuidSchema,branch:branchNameSchema,data:z15.record(z15.string(),z15.unknown()),submittedAt:z15.string()}),formSubmissionResponseSchema=z15.object({data:formSubmissionSchema}),formSubmissionsPageSchema=pageSchema(formSubmissionSchema),formSubmissionStatsResponseSchema=z15.object({data:z15.object({total:z15.number().int().nonnegative(),dailyCounts:z15.array(z15.object({date:z15.string(),count:z15.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:z15.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:z15.array(formSchema),buildRequest:__name(({projectId,branch})=>({method:"GET",path:tenantPath(projectId,branch,"/forms")}),"buildRequest"),projectOutput:projectFormList},"forms.get":{domain:"forms",summary:"Read one form definition from a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255)}).strict(),outputSchema:formSchema,buildRequest:__name(({projectId,branch,id})=>({method:"GET",path:tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,...FormContentSchema.shape}).strict(),outputSchema:formResponseSchema,buildRequest:__name(({projectId,branch,name,label,fields})=>({method:"POST",path:tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255),...FormContentSchema.partial().shape}).strict().superRefine((input,context)=>{let update2=FormUpdateSchema.safeParse({name:input.name,label:input.label,fields:input.fields});if(!update2.success)for(let issue of update2.error.issues)context.addIssue({...issue,path:issue.path})}),outputSchema:formResponseSchema,buildRequest:__name(({projectId,branch,id,name,label,fields})=>({method:"PUT",path:tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255)}).strict(),outputSchema:formResponseSchema,buildRequest:__name(({projectId,branch,id})=>({method:"DELETE",path:tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255),...paginationShape,searchQuery:z15.string().max(200).optional(),sortDirection:z15.enum(["asc","desc"]).optional()}).strict().superRefine(paginationRefinement),outputSchema:formSubmissionsPageSchema,buildRequest:__name(({projectId,branch,id,limit,cursor,offset,searchQuery,sortDirection})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255),submissionId:z15.string().min(1).max(255)}).strict(),outputSchema:formSubmissionSchema,buildRequest:__name(({projectId,branch,id,submissionId})=>({method:"GET",path:tenantPath(projectId,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:z15.object({projectId:uuidSchema,branch:branchNameSchema,id:z15.string().min(1).max(255)}).strict(),outputSchema:formSubmissionStatsResponseSchema.shape.data,buildRequest:__name(({projectId,branch,id})=>({method:"GET",path:tenantPath(projectId,branch,`/forms/${encodeURIComponent(id)}/submissions/stats`)}),"buildRequest"),projectOutput:__name(body=>formSubmissionStatsResponseSchema.parse(body).data,"projectOutput")}}}});import{z as z16}from"zod";var estimateSchema,generationOperations,init_generation=__esm({"../../packages/sdk/dist/operations/generation.js"(){"use strict";init_common();estimateSchema=z16.object({costUsd:z16.number(),credits:z16.number().optional(),billingMode:z16.enum(["fimo-credits","provider-account"]).optional(),confidence:z16.enum(["exact","estimated","metered"]),basis:z16.string()}).passthrough(),generationOperations={"generation.estimateModel":{domain:"generation",summary:"Estimate one generation request against an enabled provider model.",accessScope:"read",effect:"read",inputSchema:z16.object({projectId:uuidSchema,model:z16.string().min(1),options:z16.record(z16.string(),z16.unknown())}).strict(),outputSchema:estimateSchema,buildRequest:__name(({projectId,model,options})=>({method:"POST",path:`/management/projects/${encodeURIComponent(projectId)}/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:z16.object({projectId:uuidSchema,branch:branchNameSchema,task:z16.string().min(1),options:z16.record(z16.string(),z16.unknown())}).strict(),outputSchema:estimateSchema,buildRequest:__name(({projectId,branch,task,options})=>({method:"POST",path:tenantPath(projectId,branch,"/assets/generate/estimate"),body:{task,options}}),"buildRequest"),projectOutput:responseData}}}});import{z as z17}from"zod";var historyKindSchema,projectVersionSchema,projectVersionPageSchema,historySummarySchema,restoreResultSchema,historyOperations,init_history=__esm({"../../packages/sdk/dist/operations/history.js"(){"use strict";init_common();historyKindSchema=z17.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),projectVersionSchema=z17.object({versionId:uuidSchema,commitHash:z17.string(),name:z17.string(),description:z17.string().nullable(),kind:historyKindSchema,createdAt:z17.iso.datetime(),expiresAt:z17.iso.datetime()}),projectVersionPageSchema=z17.object({items:z17.array(projectVersionSchema),nextCursor:z17.string().nullable()}),historySummarySchema=z17.object({usage:z17.object({versionCount:z17.number().int().nonnegative(),snapshotBytes:z17.number().int().nonnegative()}),retentionDays:z17.number().int().positive()}),restoreResultSchema=z17.object({durationMs:z17.number().nonnegative().optional(),warning:z17.string().optional()}),historyOperations={"history.list":{domain:"history",summary:"List restore points for one Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z17.object({projectId:uuidSchema,branch:branchNameSchema,limit:z17.number().int().min(1).max(100),cursor:z17.string().min(1).optional()}).strict(),outputSchema:projectVersionPageSchema,buildRequest:__name(({projectId,branch,limit,cursor})=>({method:"GET",path:addQuery(managementBranchPath(projectId,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:z17.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:historySummarySchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:managementBranchPath(projectId,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:z17.object({projectId:uuidSchema,branch:branchNameSchema,versionId:uuidSchema}).strict(),outputSchema:projectVersionSchema,buildRequest:__name(({projectId,branch,versionId})=>({method:"GET",path:managementBranchPath(projectId,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:z17.object({projectId:uuidSchema,branch:branchNameSchema,name:z17.string().min(1),description:z17.string().optional()}).strict(),outputSchema:projectVersionSchema,buildRequest:__name(({projectId,branch,name,description})=>({method:"POST",path:managementBranchPath(projectId,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:z17.object({projectId:uuidSchema,branch:branchNameSchema,versionId:uuidSchema}).strict(),outputSchema:restoreResultSchema,buildRequest:__name(({projectId,branch,versionId})=>({method:"POST",path:managementBranchPath(projectId,branch,`/versions/${encodeURIComponent(versionId)}/restore`)}),"buildRequest"),projectOutput:__name(body=>restoreResultSchema.parse(responseData(body)),"projectOutput")}}}});import{z as z18}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,hostingOperations,init_hosting=__esm({"../../packages/sdk/dist/operations/hosting.js"(){"use strict";init_common();LOG_TAIL_MAX_LIMIT=1e3,logTailLimitSchema=z18.number().int().min(1).max(LOG_TAIL_MAX_LIMIT).optional(),publicationStateOutputSchema=z18.object({isPublished:z18.boolean(),publishedAt:z18.iso.datetime().nullable(),publishedVersion:z18.string().nullable()}),publicationOutputSchema=z18.object({id:uuidSchema,status:z18.enum(["queued","building","published","failed","canceled"]),label:z18.string().nullable(),notes:z18.string().nullable(),source:z18.object({branch:branchNameSchema,targetBranch:branchNameSchema,configVersion:z18.string().nullable(),framework:z18.string().nullable(),commit:z18.string().nullable()}),createdAt:z18.iso.datetime(),finishedAt:z18.iso.datetime().nullable(),url:z18.string().nullable(),failureCode:z18.string().nullable()}),publicationsPageOutputSchema=z18.object({items:z18.array(publicationOutputSchema),nextCursor:z18.string().nullable(),retention:z18.object({scope:z18.literal("publication_attempt_record"),records:z18.literal("project_lifetime")})}),publicationLogsOutputSchema=z18.object({status:z18.enum(["ok","unavailable"]),publicationId:uuidSchema,reason:z18.enum(["pending","no_deployment","provider_unavailable"]).nullable(),message:z18.string().nullable(),items:z18.array(z18.object({timestamp:z18.iso.datetime(),phase:z18.enum(["build","deploy"]),stream:z18.enum(["command","stdout","stderr","status","error"]),message:z18.string()}))}),sandboxLogsOutputSchema=z18.object({status:z18.enum(["ok","unavailable"]),reason:z18.enum(["no_sandbox","sandbox_expired","provider_unsupported"]).nullable(),message:z18.string().nullable(),items:z18.array(z18.object({id:z18.string(),timestamp:z18.iso.datetime().nullable(),source:z18.enum(["install","dev-server"]),phase:z18.string(),stream:z18.enum(["combined","stdout","stderr"]),message:z18.string()})),nextCursor:z18.string().nullable(),retention:z18.object({scope:z18.literal("sandbox_process_snapshot"),timestamps:z18.literal("process_start"),droppedOldest:z18.boolean(),phases:z18.array(z18.object({phase:z18.string(),source:z18.enum(["install","dev-server"]),status:z18.string(),startedAt:z18.iso.datetime().nullable(),exitCode:z18.number().int().nullable(),events:z18.number().int().nonnegative()}))}).nullable()}),previewLocationOutputSchema=z18.object({url:z18.string(),branch:branchNameSchema});__name(publicationRecord,"publicationRecord");__name(projectPublication,"projectPublication");__name(projectPublicationsPage,"projectPublicationsPage");__name(projectPublicationLogs,"projectPublicationLogs");__name(projectSandboxLogs,"projectSandboxLogs");hostingOperations={"publications.state":{domain:"publications",summary:"Read whether a project has a live published site.",accessScope:"read",effect:"read",inputSchema:z18.object({projectId:uuidSchema}).strict(),outputSchema:publicationStateOutputSchema,buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/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:z18.object({projectId:uuidSchema,limit:z18.number().int().min(1).max(100).optional(),cursor:z18.string().optional()}).strict(),outputSchema:publicationsPageOutputSchema,buildRequest:__name(({projectId,limit,cursor})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/publications"),{limit,before:cursor})}),"buildRequest"),projectOutput:projectPublicationsPage},"publications.get":{domain:"publications",summary:"Read one durable publication attempt.",accessScope:"read",effect:"read",inputSchema:z18.object({projectId:uuidSchema,publicationId:z18.string().min(1)}).strict(),outputSchema:publicationOutputSchema,buildRequest:__name(({projectId,publicationId})=>({method:"GET",path:managementProjectPath(projectId,`/publications/${encodeURIComponent(publicationId)}`)}),"buildRequest"),projectOutput:projectPublication},"publications.logs":{domain:"publications",summary:"Read a bounded sanitized build-log tail for one publication.",accessScope:"read",effect:"read",inputSchema:z18.object({projectId:uuidSchema,publicationId:z18.string().min(1),limit:logTailLimitSchema}).strict(),outputSchema:publicationLogsOutputSchema,buildRequest:__name(({projectId,publicationId,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/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:z18.object({projectId:uuidSchema,branch:branchNameSchema,limit:logTailLimitSchema,cursor:z18.string().optional()}).strict(),outputSchema:sandboxLogsOutputSchema,buildRequest:__name(({projectId,branch,limit,cursor})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/sandbox/logs"),{limit,before:cursor})}),"buildRequest"),projectOutput:projectSandboxLogs},"preview.location":{domain:"preview",summary:"Return the signed-in Studio Preview location for one Branch without provisioning it.",accessScope:"read",effect:"read",inputSchema:z18.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:previewLocationOutputSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:managementBranchPath(projectId,branch,"/preview-location")}),"buildRequest"),projectOutput:__name(body=>previewLocationOutputSchema.parse(responseData(body)),"projectOutput")}}}});import{z as z19}from"zod";function responseValue(schema,body){return schema.parse(responseData(body))}var TranslationDTOSchema,labelResponseSchema,labelListOutputSchema,labelUpsertOutputSchema,labelDeleteOutputSchema,labelsOperations,init_labels=__esm({"../../packages/sdk/dist/operations/labels.js"(){"use strict";init_common();init_entries();TranslationDTOSchema=z19.object({key:z19.string(),value:z19.string().optional(),defaultValue:z19.string(),locale:z19.string()}),labelResponseSchema=createResponseSchema(TranslationDTOSchema),labelListOutputSchema=z19.object({data:z19.array(z19.union([TranslationDTOSchema,z19.object({key:z19.string(),values:z19.record(z19.string(),z19.string())})]))}),labelUpsertOutputSchema=z19.object({created:z19.number().int().nonnegative(),updated:z19.number().int().nonnegative(),deleted:z19.number().int().nonnegative(),defaultLocale:z19.string(),locales:z19.array(z19.string())}),labelDeleteOutputSchema=z19.object({key:z19.string(),locale:z19.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:z19.object({projectId:uuidSchema,branch:branchNameSchema,locale:localeSchema.optional()}).strict(),outputSchema:labelListOutputSchema,buildRequest:__name(({projectId,branch,locale})=>({method:"GET",path:addQuery(tenantPath(projectId,branch,"/labels"),{locale})}),"buildRequest")},"labels.get":{domain:"labels",summary:"Read one localized label by locale and key.",accessScope:"read",effect:"read",inputSchema:z19.object({projectId:uuidSchema,branch:branchNameSchema,locale:localeSchema,key:z19.string().min(1).max(255)}).strict(),outputSchema:labelResponseSchema,buildRequest:__name(({projectId,branch,locale,key})=>({method:"GET",path:tenantPath(projectId,branch,`/labels/${encodeURIComponent(locale)}/${encodeURIComponent(key)}`)}),"buildRequest")},"labels.set":{domain:"labels",summary:"Create or set one localized label.",accessScope:"write",effect:"mutation",inputSchema:z19.object({projectId:uuidSchema,branch:branchNameSchema,key:z19.string(),value:z19.string(),locale:z19.string().optional()}).strict(),outputSchema:TranslationDTOSchema,buildRequest:__name(({projectId,branch,key,value,locale})=>({method:"POST",path:tenantPath(projectId,branch,"/labels"),body:{key,value,locale}}),"buildRequest"),projectOutput:__name(body=>responseValue(TranslationDTOSchema,body),"projectOutput")},"labels.setMany":{domain:"labels",summary:"Create or overwrite localized labels in one request.",accessScope:"write",effect:"mutation",inputSchema:z19.object({projectId:uuidSchema,branch:branchNameSchema,records:z19.array(z19.object({key:z19.string(),value:z19.string(),locale:z19.string().optional()}))}).strict(),outputSchema:labelUpsertOutputSchema,buildRequest:__name(({projectId,branch,records})=>({method:"POST",path:tenantPath(projectId,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:z19.object({projectId:uuidSchema,branch:branchNameSchema,locale:z19.string().optional(),key:z19.string()}).strict(),outputSchema:labelDeleteOutputSchema,buildRequest:__name(({projectId,branch,locale,key})=>({method:"DELETE",path:tenantPath(projectId,branch,locale?`/labels/${encodeURIComponent(locale)}/${encodeURIComponent(key)}`:`/labels/${encodeURIComponent(key)}`)}),"buildRequest"),projectOutput:__name(body=>responseValue(labelDeleteOutputSchema,body),"projectOutput")}}}});import{z as z20}from"zod";var projectLocaleCoverageSchema,ProjectLocaleStatsResponseSchema,projectLocaleInputSchema,ProjectLocaleMutationResponseSchema,RemoveProjectLocaleResponseSchema,localesOperations,init_locales=__esm({"../../packages/sdk/dist/operations/locales.js"(){"use strict";init_common();projectLocaleCoverageSchema=z20.object({translated:z20.number().int().nonnegative(),total:z20.number().int().nonnegative()}),ProjectLocaleStatsResponseSchema=createResponseSchema(z20.object({defaultLocale:z20.string(),locales:z20.array(z20.object({locale:z20.string(),isDefault:z20.boolean(),entries:projectLocaleCoverageSchema,labels:projectLocaleCoverageSchema}))})),projectLocaleInputSchema=z20.string().min(1).max(40),ProjectLocaleMutationResponseSchema=createResponseSchema(z20.object({locale:z20.string()})),RemoveProjectLocaleResponseSchema=createResponseSchema(z20.object({locale:z20.string(),entriesDeleted:z20.number().int().nonnegative(),labelsDeleted:z20.number().int().nonnegative()})),localesOperations={"locales.list":{domain:"locales",summary:"List configured locales and content coverage on a Fimo Branch.",accessScope:"read",effect:"read",inputSchema:z20.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:ProjectLocaleStatsResponseSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:managementBranchPath(projectId,branch,"/locales/stats")}),"buildRequest")},"locales.add":{domain:"locales",summary:"Add a configured locale to a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z20.object({projectId:uuidSchema,branch:branchNameSchema,locale:projectLocaleInputSchema}).strict(),outputSchema:ProjectLocaleMutationResponseSchema,buildRequest:__name(({projectId,branch,locale})=>({method:"POST",path:managementBranchPath(projectId,branch,"/locales"),body:{locale}}),"buildRequest")},"locales.setDefault":{domain:"locales",summary:"Set the default configured locale on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema:z20.object({projectId:uuidSchema,branch:branchNameSchema,locale:projectLocaleInputSchema}).strict(),outputSchema:ProjectLocaleMutationResponseSchema,buildRequest:__name(({projectId,branch,locale})=>({method:"PUT",path:managementBranchPath(projectId,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:z20.object({projectId:uuidSchema,branch:branchNameSchema,locale:projectLocaleInputSchema}).strict(),outputSchema:RemoveProjectLocaleResponseSchema,buildRequest:__name(({projectId,branch,locale})=>({method:"DELETE",path:managementBranchPath(projectId,branch,`/locales/${encodeURIComponent(locale)}`)}),"buildRequest")}}}});import{z as z21}from"zod";var notificationSubjectSchema,notificationViewSchema,agentQuestionSchema,projectPath2,notificationsOperations,init_notifications=__esm({"../../packages/sdk/dist/operations/notifications.js"(){"use strict";init_common();notificationSubjectSchema=z21.object({kind:z21.enum(["question","run_outcome","retained_review","merge_conflict"])}).passthrough(),notificationViewSchema=z21.object({notification:z21.object({id:uuidSchema,projectId:uuidSchema,sourceKey:z21.string(),actor:z21.object({kind:z21.enum(["user","agent","system"])}).passthrough(),payloadVersion:z21.number().int(),payload:z21.object({topic:z21.string()}).passthrough(),createdAt:z21.iso.datetime()}).passthrough(),recipient:z21.object({readAt:z21.iso.datetime().nullable(),archivedAt:z21.iso.datetime().nullable()}).passthrough(),subject:notificationSubjectSchema}),agentQuestionSchema=z21.object({id:uuidSchema,projectId:uuidSchema,threadId:uuidSchema,invocationId:uuidSchema,agentKey:z21.string(),anchorEnv:z21.string(),retainedEnv:z21.string(),state:z21.enum(["open","answered","expired","cancelled","superseded"]),request:z21.record(z21.string(),z21.unknown()),answer:z21.unknown().nullable(),askedAt:z21.iso.datetime(),expiresAt:z21.iso.datetime(),closedAt:z21.iso.datetime().nullable()}).passthrough(),projectPath2=__name((projectId,suffix)=>`/management/projects/${encodeURIComponent(projectId)}${suffix}`,"projectPath"),notificationsOperations={"notifications.list":{domain:"notifications",summary:"List the current user\u2019s project Inbox with cursor pagination.",accessScope:"read",effect:"read",inputSchema:z21.object({projectId:uuidSchema,topic:z21.enum(["agent_question","agent_run_outcome","agent_retained_review","agent_conflict"]).optional(),unread:z21.boolean().optional(),archived:z21.boolean().optional(),limit:z21.number().int().min(1).max(100).optional(),cursor:z21.string().min(1).optional()}).strict(),outputSchema:z21.object({items:z21.array(notificationViewSchema),nextCursor:z21.string().nullable(),unreadCount:z21.number().int().nonnegative()}),buildRequest:__name(({projectId,topic,unread,archived,limit,cursor})=>({method:"GET",path:addQuery(projectPath2(projectId,"/notifications"),{topic,unread,archived,limit,cursor})}),"buildRequest"),projectOutput:responseData},"notifications.get":{domain:"notifications",summary:"Read one project Inbox notification.",accessScope:"read",effect:"read",inputSchema:z21.object({projectId:uuidSchema,notificationId:uuidSchema}).strict(),outputSchema:notificationViewSchema,buildRequest:__name(({projectId,notificationId})=>({method:"GET",path:projectPath2(projectId,`/notifications/${encodeURIComponent(notificationId)}`)}),"buildRequest"),projectOutput:responseData},"questions.get":{domain:"notifications",summary:"Read the decision form attached to an agent question.",accessScope:"read",effect:"read",inputSchema:z21.object({projectId:uuidSchema,questionId:uuidSchema}).strict(),outputSchema:agentQuestionSchema,buildRequest:__name(({projectId,questionId})=>({method:"GET",path:projectPath2(projectId,`/questions/${encodeURIComponent(questionId)}`)}),"buildRequest"),projectOutput:responseData},"questions.answer":{domain:"notifications",summary:"Answer an agent question and continue its retained run.",accessScope:"write",effect:"mutation",inputSchema:z21.object({projectId:uuidSchema,questionId:uuidSchema,answer:z21.record(z21.string(),z21.unknown())}).strict(),outputSchema:z21.object({question:agentQuestionSchema,continuationInvocationId:uuidSchema,deduped:z21.boolean()}),buildRequest:__name(({projectId,questionId,answer})=>({method:"POST",path:projectPath2(projectId,`/questions/${encodeURIComponent(questionId)}/answer`),body:answer}),"buildRequest"),projectOutput:responseData}}}});import{z as z22}from"zod";var organizationSchema,organizationMemberSchema,organizationInvitationSchema,referralSummarySchema,organizationsOperations,init_organizations=__esm({"../../packages/sdk/dist/operations/organizations.js"(){"use strict";init_common();organizationSchema=z22.object({id:z22.string().min(1),name:z22.string(),slug:z22.string()}),organizationMemberSchema=z22.object({id:z22.string().min(1),role:z22.string(),createdAt:z22.string().optional(),user:z22.object({id:z22.string().min(1),name:z22.string().nullable().optional(),email:z22.string().nullable().optional()}).optional()}),organizationInvitationSchema=z22.object({id:z22.string().min(1),email:z22.email(),role:z22.string(),organizationId:z22.string().min(1),inviterId:z22.string().min(1),status:z22.string(),expiresAt:z22.string(),createdAt:z22.string()}).passthrough(),referralSummarySchema=z22.object({counts:z22.object({signed_up:z22.number().int(),activated:z22.number().int()}),credits:z22.object({total:z22.number().int()})}),organizationsOperations={"organizations.list":{domain:"organizations",summary:"List organizations the authenticated user belongs to.",accessScope:"read",effect:"read",inputSchema:z22.object({}).strict(),outputSchema:createResponseSchema(z22.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:z22.object({organizationId:z22.string().min(1)}).strict(),outputSchema:z22.array(organizationMemberSchema),buildRequest:__name(({organizationId})=>({method:"GET",path:`/auth/organization/get-full-organization?organizationId=${encodeURIComponent(organizationId)}`}),"buildRequest"),projectOutput:__name(body=>z22.object({members:z22.array(organizationMemberSchema)}).nullable().parse(body)?.members??[],"projectOutput")},"organizations.invite":{domain:"organizations",summary:"Invite a user to an organization.",accessScope:"write",effect:"mutation",inputSchema:z22.object({organizationId:z22.string().min(1),email:z22.email(),role:z22.enum(["owner","admin","member"]),resend:z22.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:z22.object({userId:z22.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 z23}from"zod";var projectSchema,projectResponseSchema,transferResultSchema,projectsOperations,init_projects=__esm({"../../packages/sdk/dist/operations/projects.js"(){"use strict";init_common();projectSchema=z23.object({id:uuidSchema,name:z23.string(),displayName:z23.string().nullable(),organizationId:z23.string().nullable(),defaultBranch:branchNameSchema.optional(),productionSourceBranch:branchNameSchema.optional(),status:z23.string().optional(),appUrl:z23.string().nullable().optional(),previewEnabled:z23.boolean().optional()}).passthrough(),projectResponseSchema=z23.object({data:projectSchema}),transferResultSchema=z23.object({projectId:z23.string(),sourceOrganizationId:z23.string(),targetOrganizationId:z23.string(),movedThreads:z23.number().int().nonnegative(),revokedInvites:z23.number().int().nonnegative(),revokedGrants:z23.number().int().nonnegative(),preservedGrants:z23.number().int().nonnegative(),warnings:z23.array(z23.string())}),projectsOperations={"projects.list":{domain:"projects",summary:"List the Fimo projects the authenticated user can access.",accessScope:"read",effect:"read",inputSchema:z23.object({organizationId:z23.string().min(1).optional()}).strict(),outputSchema:z23.object({data:z23.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 project the authenticated user can access.",accessScope:"read",effect:"read",inputSchema:z23.object({projectId:uuidSchema}).strict(),outputSchema:projectResponseSchema,buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"")}),"buildRequest")},"projects.create":{domain:"projects",summary:"Create a Fimo project in an organization.",accessScope:"write",effect:"mutation",inputSchema:z23.object({organizationId:z23.string().min(1),displayName:z23.string().min(1).optional(),origin:z23.enum(["scratch","migration"]).optional()}).strict(),outputSchema:projectResponseSchema,buildRequest:__name(({organizationId,displayName,origin})=>({method:"POST",path:"/management/projects",body:withoutUndefined({organizationId,displayName,origin,source:"cli"})}),"buildRequest")},"projects.transfer":{domain:"projects",summary:"Transfer one Fimo project to another organization.",accessScope:"write",effect:"mutation",inputSchema:z23.object({projectId:uuidSchema,targetOrganizationId:z23.string().min(1)}).strict(),outputSchema:transferResultSchema,buildRequest:__name(({projectId,targetOrganizationId})=>({method:"POST",path:managementProjectPath(projectId,"/transfer"),body:{targetOrganizationId},preserveForbidden:!0}),"buildRequest"),projectOutput:__name(body=>transferResultSchema.parse(responseData(body)),"projectOutput")},"projects.invite":{domain:"projects",summary:"Invite a user to collaborate on a Fimo project.",accessScope:"write",effect:"mutation",inputSchema:z23.object({projectId:uuidSchema,email:z23.email(),role:z23.enum(["full","edit","comment","view"])}).strict(),outputSchema:z23.object({id:z23.string().min(1)}),buildRequest:__name(({projectId,email,role})=>({method:"POST",path:managementProjectPath(projectId,"/invites"),body:{email,roleKey:role}}),"buildRequest"),projectOutput:__name(body=>({id:z23.object({id:z23.string().min(1)}).parse(responseData(body)).id}),"projectOutput")},"projects.delete":{domain:"projects",summary:"Permanently delete a Fimo project.",accessScope:"write",effect:"mutation",inputSchema:z23.object({projectId:uuidSchema}).strict(),outputSchema:z23.unknown(),buildRequest:__name(({projectId})=>({method:"DELETE",path:managementProjectPath(projectId,""),body:{}}),"buildRequest")}}}});import{z as z24}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,schedulesOperations,init_schedules=__esm({"../../packages/sdk/dist/operations/schedules.js"(){"use strict";init_common();dateSchema=z24.iso.datetime(),scheduleStatusSchema=z24.enum(["ok","failed"]),runStatusSchema=z24.enum(["queued","running","succeeded","failed","skipped"]),scheduleSchema=z24.object({id:uuidSchema,createdAt:dateSchema,updatedAt:dateSchema,projectId:uuidSchema,branch:z24.string().min(1),name:z24.string().min(1),cron:z24.string().min(1),command:z24.string().min(1),secretKeys:z24.array(z24.string().min(1)),enabled:z24.boolean(),lastRunAt:dateSchema.nullable(),lastStatus:scheduleStatusSchema.nullable(),lastError:z24.string().nullable(),overPolicyReasons:z24.array(z24.string()).optional()}).passthrough(),usageSchema=z24.object({runCount:z24.number().int().nonnegative(),runsWithOutput:z24.number().int().nonnegative()}),policySchema=z24.object({maxRuns:z24.number().int().positive(),retentionDays:z24.number().int().positive().nullable(),outputRetentionDays:z24.number().int().positive(),maxOutputBytes:z24.number().int().positive()}).passthrough(),planSchema=z24.object({code:z24.enum(["Free","PAYG","Premium","Pro"]),source:z24.enum(["cached_subscription","free_fallback"]),activeSchedules:z24.object({used:z24.number().int().nonnegative(),limit:z24.number().int().positive()}),minCadenceMinutes:z24.number().int().positive(),maxRunMs:z24.number().int().positive(),concurrency:z24.object({used:z24.number().int().nonnegative(),limit:z24.number().int().positive()}),compute:z24.object({settledMs:z24.number().int().nonnegative(),activeMs:z24.number().int().nonnegative(),reservedMs:z24.number().int().nonnegative().optional(),includedMs:z24.number().int().positive(),remainingMs:z24.number().int().nonnegative(),resetsAt:dateSchema}),state:z24.enum(["ok","near_limit","exhausted","over_policy"]),overPolicyReasons:z24.array(z24.string())}).passthrough(),runSchema=z24.object({id:uuidSchema,scheduleId:uuidSchema,projectId:uuidSchema,branch:z24.string().min(1),scheduleName:z24.string().min(1),command:z24.string().min(1),status:runStatusSchema,trigger:z24.enum(["cron","ui","cli"]),triggeredBy:z24.object({id:z24.string().min(1),name:z24.string().min(1)}).nullable(),queuedAt:dateSchema,startedAt:dateSchema.nullable(),finishedAt:dateSchema.nullable(),exitCode:z24.number().int().nullable(),errorCode:z24.string().nullable(),error:z24.string().nullable(),outputBytes:z24.number().int().nonnegative(),outputTruncated:z24.boolean(),outputExpiresAt:dateSchema.nullable(),metadataExpiresAt:dateSchema.nullable()}).passthrough(),runDetailSchema=runSchema.extend({output:z24.string().nullable(),secretSnapshot:z24.object({state:z24.enum(["pending","resolved","failed"]),capturedAt:dateSchema.nullable(),items:z24.array(z24.object({key:z24.string().min(1),updatedAt:dateSchema.nullable(),resolution:z24.enum(["resolved","missing","deleted","recreated","rotated"])}))})}),overviewSchema=z24.object({items:z24.array(scheduleSchema),usage:usageSchema,policy:policySchema,plan:planSchema}),detailSchema=z24.object({schedule:scheduleSchema,usage:usageSchema,policy:policySchema,plan:planSchema}).passthrough(),runsPageSchema=z24.object({items:z24.array(runSchema),nextCursor:z24.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:z24.string().min(1).max(120),cron:z24.string().min(1).max(120),command:z24.string().min(1).max(500),secretKeys:z24.array(z24.string().min(1))},schedulesOperations={"schedules.list":{domain:"schedules",summary:"List schedule records for one project Branch.",accessScope:"read",effect:"read",inputSchema:z24.object({projectId:uuidSchema}).strict(),outputSchema:z24.array(scheduleSchema),buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/schedules")}),"buildRequest"),projectOutput:__name(body=>z24.array(scheduleSchema).parse(responseData(body).map(projectBranchRecord2)),"projectOutput")},"schedules.overview":{domain:"schedules",summary:"Read schedules with usage and plan limits for one project Branch.",accessScope:"read",effect:"read",inputSchema:z24.object({projectId:uuidSchema}).strict(),outputSchema:overviewSchema,buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/schedules/overview")}),"buildRequest"),projectOutput:projectOverview},"schedules.get":{domain:"schedules",summary:"Read one schedule with usage and plan limits.",accessScope:"read",effect:"read",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema}).strict(),outputSchema:detailSchema,buildRequest:__name(({projectId,scheduleId})=>({method:"GET",path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}`)}),"buildRequest"),projectOutput:projectDetail2},"schedules.create":{domain:"schedules",summary:"Create a recurring command schedule for one project Branch.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({projectId:uuidSchema,...scheduleWriteShape,enabled:z24.boolean().optional()}).strict(),outputSchema:scheduleSchema,buildRequest:__name(({projectId,...body})=>({method:"POST",path:managementProjectPath(projectId,"/schedules"),body}),"buildRequest"),projectOutput:projectSchedule},"schedules.update":{domain:"schedules",summary:"Update a recurring command schedule.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema,name:scheduleWriteShape.name.optional(),cron:scheduleWriteShape.cron.optional(),command:scheduleWriteShape.command.optional(),secretKeys:scheduleWriteShape.secretKeys.optional()}).strict().refine(({projectId:_projectId,scheduleId:_scheduleId,...update2})=>Object.values(update2).some(value=>value!==void 0),{message:"Pass at least one schedule field to update."}),outputSchema:scheduleSchema,buildRequest:__name(({projectId,scheduleId,...update2})=>({method:"PATCH",path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}`),body:withoutUndefined(update2)}),"buildRequest"),projectOutput:projectSchedule},"schedules.setEnabled":{domain:"schedules",summary:"Pause or resume a recurring command schedule.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema,enabled:z24.boolean()}).strict(),outputSchema:scheduleSchema,buildRequest:__name(({projectId,scheduleId,enabled})=>({method:"POST",path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}/${enabled?"resume":"pause"}`)}),"buildRequest"),projectOutput:projectSchedule},"schedules.run":{domain:"schedules",summary:"Queue an immediate run of a project schedule.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema}).strict(),outputSchema:runSchema,buildRequest:__name(({projectId,scheduleId})=>({method:"POST",path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}/run`),body:{trigger:"cli"}}),"buildRequest"),projectOutput:projectRun},"schedules.listRuns":{domain:"schedules",summary:"List runs of one project schedule with cursor pagination.",accessScope:"read",effect:"read",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema,limit:z24.number().int().min(1).max(100).optional(),cursor:z24.string().min(1).optional(),status:runStatusSchema.optional()}).strict(),outputSchema:runsPageSchema,buildRequest:__name(({projectId,scheduleId,limit,cursor,status})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/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:z24.object({projectId:uuidSchema,runId:uuidSchema}).strict(),outputSchema:runDetailSchema,buildRequest:__name(({projectId,runId})=>({method:"GET",path:managementProjectPath(projectId,`/schedules/runs/${encodeURIComponent(runId)}`)}),"buildRequest"),projectOutput:projectRunDetail},"schedules.delete":{domain:"schedules",summary:"Delete one project schedule.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({projectId:uuidSchema,scheduleId:uuidSchema}).strict(),outputSchema:z24.object({ok:z24.literal(!0)}),buildRequest:__name(({projectId,scheduleId})=>({method:"DELETE",path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}`)}),"buildRequest"),projectOutput:__name(body=>z24.object({ok:z24.literal(!0)}).parse(responseData(body)),"projectOutput")}}}});import{z as z25}from"zod";function projectSchemaDefinition(body){return z25.object({data:contentTypeSchema}).parse(body).data}var contentTypeSchema,schemaListOutputSchema,schemaMutationOutputSchema,schemaDefinitionInputSchema,schemasOperations,init_schemas=__esm({"../../packages/sdk/dist/operations/schemas.js"(){"use strict";init_common();contentTypeSchema=z25.object({id:z25.string(),name:z25.string(),label:z25.string(),isSingleton:z25.boolean(),slugUnique:z25.boolean(),i18n:z25.record(z25.string(),z25.unknown()),groups:z25.array(z25.record(z25.string(),z25.unknown())),fields:z25.record(z25.string(),z25.unknown()),createdAt:z25.string(),updatedAt:z25.string()}).passthrough(),schemaListOutputSchema=z25.object({contentTypes:z25.array(contentTypeSchema)}),schemaMutationOutputSchema=sessionEnvelopeSchema.extend({schema:z25.object({typeName:z25.string().min(1).max(255),generatedPaths:z25.array(z25.string().min(1)).max(1e3),tip:z25.string().min(1)})}),schemaDefinitionInputSchema=z25.record(z25.string(),z25.unknown());__name(projectSchemaDefinition,"projectSchemaDefinition");schemasOperations={"schemas.list":{domain:"schemas",summary:"List content schemas on a durable Branch.",accessScope:"read",effect:"read",inputSchema:z25.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:schemaListOutputSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:tenantPath(projectId,branch,"/schema")}),"buildRequest")},"schemas.get":{domain:"schemas",summary:"Get one complete content schema from a durable Branch.",accessScope:"read",effect:"read",inputSchema:z25.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z25.string().min(1).max(255)}).strict(),outputSchema:contentTypeSchema,buildRequest:__name(({projectId,branch,typeName})=>({method:"GET",path:tenantPath(projectId,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:z25.object({projectId:uuidSchema,branch:branchNameSchema,contentTypes:z25.array(schemaDefinitionInputSchema).min(1).max(100),operations:z25.array(z25.record(z25.string(),z25.unknown())).optional()}).strict(),outputSchema:z25.array(z25.unknown()),buildRequest:__name(({projectId,branch,contentTypes,operations})=>({method:"POST",path:tenantPath(projectId,branch,"/schema/batch"),body:withoutUndefined({contentTypes,operations:operations?.length?operations:void 0})}),"buildRequest"),projectOutput:__name(body=>z25.object({data:z25.array(z25.unknown())}).parse(body).data,"projectOutput")},"schemas.deleteFromBranch":{domain:"schemas",summary:"Delete a content schema directly from a Fimo Branch.",accessScope:"code",effect:"mutation",inputSchema:z25.object({projectId:uuidSchema,branch:branchNameSchema,typeName:z25.string().min(1).max(255)}).strict(),outputSchema:z25.unknown(),buildRequest:__name(({projectId,branch,typeName})=>({method:"DELETE",path:tenantPath(projectId,branch,`/schema/types/${encodeURIComponent(typeName)}`)}),"buildRequest"),projectOutput:__name(body=>z25.object({data:z25.unknown()}).parse(body).data,"projectOutput")},"schemas.create":{domain:"schemas",summary:"Create a content schema inside an owned work session.",accessScope:"code",effect:"mutation",inputSchema:z25.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z25.string().min(1).max(255),definition:schemaDefinitionInputSchema}).strict(),outputSchema:schemaMutationOutputSchema,buildRequest:__name(({projectId,sessionId,typeName,definition})=>({method:"POST",path:managementProjectPath(projectId,`/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:z25.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z25.string().min(1).max(255),definition:schemaDefinitionInputSchema,renameFrom:z25.string().max(255).optional()}).strict(),outputSchema:schemaMutationOutputSchema,buildRequest:__name(({projectId,sessionId,typeName,definition,renameFrom})=>({method:"POST",path:managementProjectPath(projectId,`/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:z25.object({projectId:uuidSchema,sessionId:uuidSchema,typeName:z25.string().min(1).max(255)}).strict(),outputSchema:schemaMutationOutputSchema,buildRequest:__name(({projectId,sessionId,typeName})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/schema`),body:{kind:"delete",typeName}}),"buildRequest")}}}});import{z as z26}from"zod";var environmentSchema2,secretKindSchema,projectSecretSchema,secretWriteInputSchema,secretsOperations,init_secrets=__esm({"../../packages/sdk/dist/operations/secrets.js"(){"use strict";init_common();environmentSchema2=z26.union([z26.literal("production"),z26.literal("preview"),uuidSchema]),secretKindSchema=z26.enum(["variable","secret"]),projectSecretSchema=z26.object({id:z26.string().min(1),projectId:z26.string().min(1),key:z26.string().min(1),kind:secretKindSchema,exposure:z26.enum(["public","private"]),environment:environmentSchema2,value:z26.string().optional(),maskedValue:z26.string().optional(),createdAt:z26.string(),updatedAt:z26.string()}),secretWriteInputSchema=z26.object({projectId:uuidSchema,key:z26.string().min(1).max(255),kind:secretKindSchema,value:z26.string(),environment:environmentSchema2}),secretsOperations={"secrets.list":{domain:"secrets",summary:"List public variables or masked secrets for one project Environment.",accessScope:"read",effect:"read",inputSchema:z26.object({projectId:uuidSchema,environment:environmentSchema2,kind:secretKindSchema.optional()}).strict(),outputSchema:z26.array(projectSecretSchema),buildRequest:__name(({projectId,environment,kind})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/secrets"),{environment,kind})}),"buildRequest"),projectOutput:__name(body=>z26.array(projectSecretSchema).parse(responseData(body)),"projectOutput")},"secrets.create":{domain:"secrets",summary:"Create a public variable or secret for one project Environment.",accessScope:"write",effect:"mutation",inputSchema:secretWriteInputSchema.strict(),outputSchema:projectSecretSchema,buildRequest:__name(({projectId,...body})=>({method:"POST",path:managementProjectPath(projectId,"/secrets"),body}),"buildRequest"),projectOutput:__name(body=>projectSecretSchema.parse(responseData(body)),"projectOutput")},"secrets.update":{domain:"secrets",summary:"Update a public variable or secret for one project Environment.",accessScope:"write",effect:"mutation",inputSchema:secretWriteInputSchema.strict(),outputSchema:projectSecretSchema,buildRequest:__name(({projectId,key,...body})=>({method:"PATCH",path:managementProjectPath(projectId,`/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 project Environment.",accessScope:"write",effect:"mutation",inputSchema:z26.object({projectId:uuidSchema,key:z26.string().min(1),kind:secretKindSchema,environment:environmentSchema2}).strict(),outputSchema:z26.unknown(),buildRequest:__name(({projectId,key,kind,environment})=>({method:"DELETE",path:addQuery(managementProjectPath(projectId,`/secrets/${encodeURIComponent(key)}`),{kind,environment})}),"buildRequest")},"environments.resolve":{domain:"environments",summary:"Resolve which compatibility Environment receives one project Branch.",accessScope:"read",effect:"read",inputSchema:z26.object({projectId:uuidSchema,branch:z26.string().min(1)}).strict(),outputSchema:z26.object({branch:z26.string().min(1),environment:environmentSchema2}),buildRequest:__name(({projectId})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/branches"),{includeAgentEnvs:!0})}),"buildRequest"),projectOutput:__name((body,input)=>{let branches=z26.array(z26.object({branch:z26.string().optional(),env:z26.string().optional(),parentBranch:z26.string().nullable().optional(),parentEnv:z26.string().nullable().optional(),resolvedEnvironment:z26.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 parent2=current.parentBranch??current.parentEnv;current=parent2?branches.find(candidate=>(candidate.branch??candidate.env)===parent2):void 0}return{branch:input.branch,environment:"preview"}},"projectOutput")}}}});import{z as z27}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,sessionOperationResultSchema,conflictSchema2,codeConflictBlobSchema2,codeConflictDetailSchema,resolutionChoiceSchema,conflictResolutionSchema2,resolvedMergeStrategySchema,sessionsOperations,init_sessions=__esm({"../../packages/sdk/dist/operations/sessions.js"(){"use strict";init_branches();init_common();__name(projectConflictSurface,"projectConflictSurface");__name(projectSessionChanges,"projectSessionChanges");__name(projectSessionConflicts,"projectSessionConflicts");__name(backendConflictResolutions,"backendConflictResolutions");sessionValidationSchema=z27.object({status:z27.literal("passed")}).passthrough(),sessionConflictSummarySchema=z27.object({surface:surfaceNameSchema,key:z27.string().min(1),kind:z27.string().optional(),description:z27.string(),path:z27.string().optional()}).passthrough(),surfaceDeltaItemSchema=z27.object({verb:z27.enum(["added","removed","changed","conflict"]),key:z27.string(),detail:z27.string().optional(),origin:z27.enum(["committed-ahead","local-uncommitted"]).optional(),meta:z27.record(z27.string(),z27.unknown()).optional()}).passthrough(),perSurfaceDeltaSchema=z27.object({surface:surfaceNameSchema,status:z27.enum(["ok","timed_out","failed","unchanged"]),durationMs:z27.number().int().nonnegative().optional(),changedCount:z27.number().int().nonnegative(),conflictCount:z27.number().int().nonnegative(),items:z27.array(surfaceDeltaItemSchema).max(1e3).optional(),truncated:z27.boolean().optional(),error:z27.string().optional()}).passthrough(),sessionChangesSchema=z27.object({fromBranch:branchNameSchema.optional(),toBranch:branchNameSchema.optional(),generatedAt:z27.iso.datetime(),surfaces:z27.array(perSurfaceDeltaSchema),crossSurface:z27.array(crossSurfaceFindingSchema).optional(),fingerprint:z27.string()}).passthrough(),sessionOperationResultSchema=z27.discriminatedUnion("operation",[z27.object({operation:z27.literal("dependencies_install"),repairedInstallPolicy:z27.boolean(),tip:z27.string()}),z27.object({operation:z27.literal("schemas_sync"),tip:z27.string()})]),conflictSchema2=z27.object({surface:surfaceNameSchema,key:z27.string(),kind:z27.enum(["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"]).optional(),description:z27.string(),parentValue:z27.unknown().optional(),childValue:z27.unknown().optional(),conflictingFields:z27.array(z27.string()).optional(),code:z27.object({path:z27.string(),unresolvable:z27.boolean().optional(),reason:z27.string().optional()}).optional()}).passthrough(),codeConflictBlobSchema2=z27.object({oid:z27.string().optional(),content:z27.string().optional(),truncated:z27.boolean(),binary:z27.boolean()}),codeConflictDetailSchema=z27.object({path:z27.string(),base:codeConflictBlobSchema2,ours:codeConflictBlobSchema2,theirs:codeConflictBlobSchema2,result:codeConflictBlobSchema2,sourceTipSha:z27.string(),targetTipSha:z27.string(),mergeBaseSha:z27.string().optional()}),resolutionChoiceSchema=z27.enum(["parent","child","pick"]),conflictResolutionSchema2=z27.object({surface:surfaceNameSchema,key:z27.string().min(1),choice:resolutionChoiceSchema,pickedValue:z27.unknown().optional(),fieldPicks:z27.array(z27.object({field:z27.string().min(1),choice:resolutionChoiceSchema,pickedValue:z27.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,index2)=>{fieldPick.choice==="pick"&&fieldPick.pickedValue===void 0&&context.addIssue({code:"custom",message:"Pass pickedValue when choice is 'pick'.",path:["fieldPicks",index2,"pickedValue"]})})}),resolvedMergeStrategySchema=z27.object({engine:z27.enum(["ff-only","auto","theirs","ours","manual"]),vendor:z27.enum(["ff_only","ff_prefer","merge"]),squash:z27.boolean()}),sessionsOperations={"sessions.start":{domain:"sessions",summary:"Start an isolated work session for a new project change.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,targetBranch:branchNameSchema.optional()}).strict(),outputSchema:z27.object({session:sessionEnvelopeSchema,adopted:z27.boolean()}),buildRequest:__name(({projectId,targetBranch})=>({method:"POST",path:managementProjectPath(projectId,"/sessions"),body:targetBranch===void 0?{}:{targetBranch}}),"buildRequest")},"sessions.get":{domain:"sessions",summary:"Get one owned Fimo work session for lifecycle recovery.",accessScope:"code",effect:"read",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema}).strict(),outputSchema:sessionEnvelopeSchema,buildRequest:__name(({projectId,sessionId})=>({method:"GET",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}`)}),"buildRequest")},"sessions.list":{domain:"sessions",summary:"List owned work sessions for explicit lifecycle recovery.",accessScope:"code",effect:"read",inputSchema:z27.object({projectId:uuidSchema,status:sessionStatusSchema.optional(),cursor:z27.string().min(1).optional(),limit:z27.number().int().min(1).max(100).optional()}).strict(),outputSchema:z27.object({items:z27.array(sessionEnvelopeSchema),nextCursor:z27.string().nullable()}),buildRequest:__name(({projectId,status,cursor,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/sessions"),{status,cursor,limit})}),"buildRequest")},"sessions.changes":{domain:"sessions",summary:"Review bounded changes in an owned work session before closing it.",accessScope:"code",effect:"read",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema,detail:z27.boolean().optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({changes:sessionChangesSchema}),buildRequest:__name(({projectId,sessionId,detail})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/changes`),{detail})}),"buildRequest"),projectOutput:projectSessionChanges},"sessions.validate":{domain:"sessions",summary:"Run project validation inside an owned Fimo work session and wait for its terminal result.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema}).strict(),outputSchema:sessionEnvelopeSchema.extend({validation:sessionValidationSchema}),buildRequest:__name(({projectId,sessionId})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/validate`)}),"buildRequest")},"sessions.runOperation":{domain:"sessions",summary:"Run an approved sandbox operation in an owned work session: 'dependencies_install' or 'schemas_sync'.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema,operation:z27.string().min(1).max(100),args:z27.record(z27.string(),z27.unknown()).optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({operation:sessionOperationResultSchema}),buildRequest:__name(({projectId,sessionId,operation,args})=>({method:"POST",path:managementProjectPath(projectId,`/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:z27.object({projectId:uuidSchema,sessionId:uuidSchema,action:z27.enum(["merge","discard"]),message:z27.string().max(1e3).optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({outcome:z27.enum(["merged","no_changes","discarded","conflicts","failed"]),closed:z27.boolean(),mergeId:uuidSchema.optional(),conflictCount:z27.number().int().nonnegative().optional(),conflicts:z27.array(sessionConflictSummarySchema).optional(),parentAdvanced:z27.boolean().optional(),code:z27.string().optional(),summary:z27.string().nullable().optional()}),buildRequest:__name(({projectId,sessionId,action,message})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/close`),body:withoutUndefined({action,message})}),"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:z27.object({projectId:uuidSchema,sessionId:uuidSchema,mergeId:uuidSchema.optional(),cursor:z27.string().min(1).optional(),limit:z27.number().int().min(1).max(100).optional(),codePath:z27.string().min(1).max(1024).optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({merge:z27.object({mergeId:uuidSchema,fromBranch:branchNameSchema,toBranch:branchNameSchema,status:z27.enum(["in_progress","complete","failed","rolled_back","conflicts"]),conflictCount:z27.number().int().nonnegative(),error:z27.string().nullable()}),conflicts:z27.array(conflictSchema2).max(100),nextCursor:z27.string().nullable(),codeDetail:codeConflictDetailSchema.nullable().optional()}),buildRequest:__name(({projectId,sessionId,mergeId,cursor,limit,codePath})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/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:z27.object({projectId:uuidSchema,sessionId:uuidSchema,mergeId:uuidSchema,resolutions:z27.array(conflictResolutionSchema2).min(1).max(500)}).strict(),outputSchema:sessionEnvelopeSchema.extend({outcome:z27.literal("resolving"),mergeId:uuidSchema,supersededMergeId:uuidSchema,strategy:resolvedMergeStrategySchema,acceptedAt:z27.iso.datetime()}),buildRequest:__name(({projectId,sessionId,mergeId,resolutions})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/resolve`),body:{mergeId,resolutions:backendConflictResolutions(resolutions)}}),"buildRequest")}}}});import{z as z28}from"zod";var singlesOperations,init_singles=__esm({"../../packages/sdk/dist/operations/singles.js"(){"use strict";init_common();init_entries();singlesOperations={"singles.get":{domain:"singles",summary:"Read the document-scoped value of a Single content type.",accessScope:"read",effect:"read",inputSchema:z28.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,locale:localeSchema.optional(),populate:populateSchema}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,locale,populate})=>({method:"GET",path:addQuery(tenantPath(projectId,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:z28.object({projectId:uuidSchema,branch:branchNameSchema,typeName:typeNameSchema,data:entryDataSchema,locale:localeSchema.optional()}).strict(),outputSchema:entryResponseSchema,buildRequest:__name(({projectId,branch,typeName,data:data2,locale})=>({method:"PUT",path:addQuery(tenantPath(projectId,branch,`/documents/${encodeURIComponent(typeName)}`),{locale}),body:{data:data2}}),"buildRequest")}}}});import{z as z29}from"zod";var supportReportInputSchema,supportReportResultSchema,supportOperations,init_support=__esm({"../../packages/sdk/dist/operations/support.js"(){"use strict";init_common();supportReportInputSchema=z29.object({message:z29.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=z29.object({id:uuidSchema,deliveryStatus:z29.enum(["pending","delivered","failed"]),message:z29.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:z29.object({data:supportReportResultSchema}),buildRequest:__name(({message,projectId,branch})=>({method:"POST",path:"/support/issues/agent",body:withoutUndefined({message,projectId,branch})}),"buildRequest")}}}});import{z as z30}from"zod";var jsonObjectSchema,deliveryStatusSchema,webhookSchema,deliverySchema,attemptSchema,deliveriesPageSchema,eventSchema,webhookWriteSchema,webhooksOperations,init_webhooks=__esm({"../../packages/sdk/dist/operations/webhooks.js"(){"use strict";init_common();jsonObjectSchema=z30.record(z30.string(),z30.unknown()),deliveryStatusSchema=z30.enum(["pending","delivering","retrying","succeeded","failed"]),webhookSchema=z30.object({id:uuidSchema,projectId:uuidSchema,name:z30.string(),eventType:z30.string().min(1),enabled:z30.boolean(),destination:z30.object({host:z30.string(),maskedUrl:z30.string(),kind:z30.string()}),filter:jsonObjectSchema,headers:z30.array(jsonObjectSchema),bodyTemplate:z30.unknown().nullable(),signingEnabled:z30.boolean(),lastDeliveryStatus:deliveryStatusSchema.nullable()}).passthrough(),deliverySchema=z30.object({id:uuidSchema,webhookId:uuidSchema,projectId:uuidSchema,eventType:z30.string().min(1),status:deliveryStatusSchema,attemptCount:z30.number().int().nonnegative(),responseStatus:z30.number().int().nullable(),createdAt:z30.iso.datetime()}).passthrough(),attemptSchema=z30.object({id:uuidSchema,deliveryId:uuidSchema,attempt:z30.number().int().positive(),status:z30.enum(["delivering","succeeded","failed"]),createdAt:z30.iso.datetime()}).passthrough(),deliveriesPageSchema=z30.object({items:z30.array(deliverySchema),pagination:z30.object({page:z30.number().int().positive(),limit:z30.number().int().positive(),total:z30.number().int().nonnegative(),totalPages:z30.number().int().positive(),hasMore:z30.boolean()}),stats:z30.object({total:z30.number().int().nonnegative(),succeeded:z30.number().int().nonnegative(),failed:z30.number().int().nonnegative()})}),eventSchema=z30.object({type:z30.string().min(1),family:z30.string(),description:z30.string(),variables:z30.array(z30.string()),data:z30.unknown().optional()}).passthrough(),webhookWriteSchema=jsonObjectSchema,webhooksOperations={"webhooks.events":{domain:"webhooks",summary:"List the webhook event catalog available to one project.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema}).strict(),outputSchema:z30.array(eventSchema),buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/webhooks/events")}),"buildRequest"),projectOutput:__name(body=>z30.array(eventSchema).parse(responseData(body)),"projectOutput")},"webhooks.list":{domain:"webhooks",summary:"List outbound webhooks configured for one project.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema}).strict(),outputSchema:z30.array(webhookSchema),buildRequest:__name(({projectId})=>({method:"GET",path:managementProjectPath(projectId,"/webhooks")}),"buildRequest"),projectOutput:__name(body=>z30.array(webhookSchema).parse(responseData(body)),"projectOutput")},"webhooks.get":{domain:"webhooks",summary:"Read one outbound project webhook.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:webhookSchema,buildRequest:__name(({projectId,webhookId})=>({method:"GET",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}`)}),"buildRequest"),projectOutput:__name(body=>webhookSchema.parse(responseData(body)),"projectOutput")},"webhooks.create":{domain:"webhooks",summary:"Create an outbound project webhook.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhook:webhookWriteSchema}).strict(),outputSchema:z30.object({webhook:webhookSchema,signingSecret:z30.string().min(1)}),buildRequest:__name(({projectId,webhook})=>({method:"POST",path:managementProjectPath(projectId,"/webhooks"),body:webhook}),"buildRequest"),projectOutput:__name(body=>z30.object({webhook:webhookSchema,signingSecret:z30.string().min(1)}).parse(responseData(body)),"projectOutput")},"webhooks.update":{domain:"webhooks",summary:"Update one outbound project webhook.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,webhook:webhookWriteSchema}).strict(),outputSchema:webhookSchema,buildRequest:__name(({projectId,webhookId,webhook})=>({method:"PATCH",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}`),body:webhook}),"buildRequest"),projectOutput:__name(body=>webhookSchema.parse(responseData(body)),"projectOutput")},"webhooks.delete":{domain:"webhooks",summary:"Delete one outbound project webhook.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:z30.unknown(),buildRequest:__name(({projectId,webhookId})=>({method:"DELETE",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}`)}),"buildRequest")},"webhooks.rotateSecret":{domain:"webhooks",summary:"Rotate and reveal the signing secret for one project webhook.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema}).strict(),outputSchema:z30.string().min(1),buildRequest:__name(({projectId,webhookId})=>({method:"POST",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/rotate-signing-secret`)}),"buildRequest"),projectOutput:__name(body=>z30.object({signingSecret:z30.string().min(1)}).parse(responseData(body)).signingSecret,"projectOutput")},"webhooks.test":{domain:"webhooks",summary:"Queue a test delivery for one project webhook.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,data:jsonObjectSchema.optional()}).strict(),outputSchema:deliverySchema,buildRequest:__name(({projectId,webhookId,data:data2})=>({method:"POST",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/test`),body:data2===void 0?{}:{data:data2}}),"buildRequest"),projectOutput:__name(body=>deliverySchema.parse(responseData(body)),"projectOutput")},"webhooks.listDeliveries":{domain:"webhooks",summary:"List delivery history for one project webhook using numbered pages.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,page:z30.number().int().positive(),limit:z30.number().int().min(1).max(100)}).strict(),outputSchema:deliveriesPageSchema,buildRequest:__name(({projectId,webhookId,page,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/deliveries`),{page,limit})}),"buildRequest"),projectOutput:__name(body=>deliveriesPageSchema.parse(responseData(body)),"projectOutput")},"webhooks.getDelivery":{domain:"webhooks",summary:"Read one webhook delivery and all of its attempts.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,deliveryId:uuidSchema}).strict(),outputSchema:z30.object({delivery:deliverySchema,attempts:z30.array(attemptSchema)}),buildRequest:__name(({projectId,webhookId,deliveryId})=>({method:"GET",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/deliveries/${encodeURIComponent(deliveryId)}`)}),"buildRequest"),projectOutput:__name(body=>z30.object({delivery:deliverySchema,attempts:z30.array(attemptSchema)}).parse(responseData(body)),"projectOutput")},"webhooks.retryDelivery":{domain:"webhooks",summary:"Retry one failed webhook delivery.",accessScope:"write",effect:"mutation",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,deliveryId:uuidSchema}).strict(),outputSchema:deliverySchema,buildRequest:__name(({projectId,webhookId,deliveryId})=>({method:"POST",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/deliveries/${encodeURIComponent(deliveryId)}/retry`)}),"buildRequest"),projectOutput:__name(body=>deliverySchema.parse(responseData(body)),"projectOutput")}}}});import{z as z31}from"zod";var fimoOperations,fimoOperationManifestEntrySchema,fimoOperationManifestSchema,fimoOperationManifest,init_operations=__esm({"../../packages/sdk/dist/operations.js"(){"use strict";init_agents();init_analytics();init_assets();init_billing();init_branches();init_domains();init_entries();init_environments();init_files();init_forms();init_generation();init_history();init_hosting();init_labels();init_locales();init_notifications();init_organizations();init_projects();init_schedules();init_schemas();init_secrets();init_sessions();init_singles();init_support();init_webhooks();fimoOperations={...projectsOperations,...organizationsOperations,...domainsOperations,...generationOperations,...notificationsOperations,...historyOperations,...environmentsOperations,...secretsOperations,...schedulesOperations,...webhooksOperations,...branchesOperations,...schemasOperations,...supportOperations,...sessionsOperations,...entriesOperations,...singlesOperations,...labelsOperations,...localesOperations,...assetsOperations,...formsOperations,...agentsOperations,...hostingOperations,...analyticsOperations,...filesOperations,...billingOperations},fimoOperationManifestEntrySchema=z31.object({id:z31.string().regex(/^[a-zA-Z_$][\w$]*\.[a-zA-Z_$][\w$]*$/),domain:z31.string().min(1),summary:z31.string().min(1),accessScope:z31.enum(["read","write","code","agents"]),effect:z31.enum(["read","mutation"]),inputJsonSchema:z31.record(z31.string(),z31.unknown()),outputJsonSchema:z31.record(z31.string(),z31.unknown())}).strict(),fimoOperationManifestSchema=z31.array(fimoOperationManifestEntrySchema),fimoOperationManifest=Object.entries(fimoOperations).map(([id,operation])=>({id,domain:operation.domain,summary:operation.summary,accessScope:operation.accessScope,effect:operation.effect,inputJsonSchema:z31.toJSONSchema(operation.inputSchema,{target:"draft-7"}),outputJsonSchema:z31.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();init_operations()}});import{spawnSync}from"node:child_process";import fs5 from"node:fs";import path5 from"node:path";import{setTimeout as sleep}from"node:timers/promises";function isPublishedInstall(cliRoot=CLI_ROOT){return fs5.existsSync(path5.join(cliRoot,"release.json"))}function buildSkipsVersionCheck(cliRoot=CLI_ROOT,readFile7=defaultReadFile){try{return JSON.parse(readFile7(path5.join(cliRoot,"release.json"))).skipVersionCheck===!0}catch{return!1}}function defaultReadFile(file){return fs5.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:path5.resolve(result.stdout.trim(),"fimo")}function normalizedPath(input){try{return fs5.realpathSync(input)}catch{return path5.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{fs5.mkdirSync(lockDir);return}catch(error){if(error.code!=="EEXIST")throw error}let stale=!1;try{stale=Date.now()-fs5.statSync(lockDir).mtimeMs>LOCK_STALE_MS}catch{continue}if(stale){try{fs5.rmdirSync(lockDir)}catch{}continue}if(Date.now()>=deadline)throw new Error("auto-upgrade lock timeout");await sleep(LOCK_POLL_MS)}}function readGlobalFimoVersion(){let root2=resolveGlobalFimoRoot();if(!root2)return null;try{let pkg=JSON.parse(fs5.readFileSync(path5.join(root2,"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=path5.join(loadConfig().configDir,"auto-upgrade.lock");try{fs5.mkdirSync(path5.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{fs5.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 fs6 from"node:fs";import path6 from"node:path";import{fileURLToPath as fileURLToPath3}from"node:url";function getCliVersion(){try{let raw=fs6.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=fileURLToPath3(import.meta.url),CLI_ROOT2=path6.resolve(path6.dirname(THIS_FILE2),"..",".."),PACKAGE_JSON_PATH=path6.join(CLI_ROOT2,"package.json");__name(getCliVersion,"getCliVersion")}});function branchNameOf(row2){return row2.branch??row2.env}function parentBranchOf(row2){return row2.parentBranch??row2.parentEnv}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(issue=>{let{path:path53,message}=issue;return`${Array.isArray(path53)&&path53.length>0?`${path53.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,text3,body){if(!text3)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 text3}async function parseError(response){let text3=await response.text(),body;try{body=text3?JSON.parse(text3):void 0}catch{return{detail:formatError(response.status,text3)}}let code2=body&&typeof body=="object"&&!Array.isArray(body)&&typeof body.code=="string"?body.code:void 0;return{detail:formatError(response.status,text3,body),code:code2,body}}function throwUnauthorized(cfg,status){try{recordAuthFailure(cfg)}catch{}throw new UnauthorizedError(cfg.apiUrl,status)}async function throwPermissionDenied(cfg,response){let required=[];try{let body=await response.json();required=Array.isArray(body.required)?body.required:body.required?[body.required]:[]}catch{}throw new PermissionDeniedError(cfg.apiUrl,required)}function createCliHttpTransport(cfg=loadConfig(),branch){let authHeaders=__name((init,defaultJsonContentType)=>{let headers=new Headers(init.headers),token=process.env.FIMO_API_TOKEN?.trim()||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(path53,init={},defaultJsonContentType=!0)=>fimoFetch(`${cfg.apiUrl}${path53}`,{...init,headers:authHeaders(init,defaultJsonContentType)}),"send");return{async request(path53,init={},options={}){let response=await send(path53,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 new ApiRequestError(init.method??"GET",path53,response.status,error.detail,error.code,error.body)}if(response.status!==204)return await response.json()},async response(path53,init={}){let response=await send(path53,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 Error(`API ${init.method??"GET"} ${path53} failed: ${response.status} ${error.detail}`)}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,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,PermissionDeniedError,CLI_VERSION_HEADER,CLI_LATEST_HEADER,CLI_AUTO_UPGRADE_HEADER,FIMO_BRANCH_HEADER,init_sdk_transport=__esm({"src/cli/sdk-transport.ts"(){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,path53,status,detail,code2,body){super(`API ${method} ${path53} failed: ${status} ${detail}`),this.name="ApiRequestError",this.method=method,this.path=path53,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}},PermissionDeniedError=class extends Error{static{__name(this,"PermissionDeniedError")}apiUrl;required;constructor(apiUrl,required=[],message){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}},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 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),wrap2=__name(style=>s=>on?`${ANSI[style]}${s}${ANSI.reset}`:s,"wrap");return{enabled:on,bold:wrap2("bold"),dim:wrap2("dim"),red:wrap2("red"),green:wrap2("green"),yellow:wrap2("yellow"),blue:wrap2("blue"),magenta:wrap2("magenta"),cyan:wrap2("cyan"),gray:wrap2("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 isCliAuthError(err){return err instanceof NotAuthenticatedError||err instanceof UnauthorizedError||err instanceof PermissionDeniedError}function rethrowCliAuthError(err,beforeThrow){if(isCliAuthError(err))throw beforeThrow?.(err),err}function retryCommand(args=process.argv.slice(2)){return["fimo",...args].map(formatShellArg).join(" ")}function formatCliAuthError(err,opts={}){let p2=opts.palette??palette,command=retryCommand(opts.args);if(err instanceof PermissionDeniedError)return[`${p2.red("\u2717")} You don't have permission to run this command.`,"",err.required.length?` Missing permission: ${p2.bold(err.required.join(", "))}`:" Your role on this project does not allow this action."," Ask a project admin for access, or use an account with a higher role.","",p2.dim(` Backend: ${err.apiUrl}`)].join(`
188
188
  `);let expired=err instanceof UnauthorizedError,intro=expired?"Your Fimo session is expired or invalid.":"You're not signed in to Fimo.",loginVerb=expired?"refresh your session":"sign in";return[`${p2.red("\u2717")} ${intro}`,"",` Run this to ${loginVerb}:`,` ${p2.bold("fimo login")}`,""," Then retry:",` ${p2.bold(command)}`,"",p2.dim(` Backend: ${err.apiUrl}`)].join(`
189
- `)}function renderCliAuthError(err,opts={}){console.error(formatCliAuthError(err,opts))}function formatShellArg(arg){return/^[A-Za-z0-9_/:=.,@%+-]+$/.test(arg)?arg:`'${arg.replace(/'/g,"'\\''")}'`}var init_auth_errors=__esm({"src/cli/utils/auth-errors.ts"(){init_auth();init_sdk_transport();init_color();__name(isCliAuthError,"isCliAuthError");__name(rethrowCliAuthError,"rethrowCliAuthError");__name(retryCommand,"retryCommand");__name(formatCliAuthError,"formatCliAuthError");__name(renderCliAuthError,"renderCliAuthError");__name(formatShellArg,"formatShellArg")}});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||file===CURRENT_PROJECT_LAYOUT.agents||file.startsWith(`${CURRENT_PROJECT_LAYOUT.agents}/`),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 files=new Set(Array.from(paths,file=>file.replace(/\\/g,"/").replace(/^\.\//,"")));return(layout??detectProjectLayout(files)??"current")==="current"?CURRENT_PROJECT_LAYOUT.config:files.has(LEGACY_AGENT_POLICY_PATH)&&!files.has(LEGACY_PROJECT_LAYOUT.config)?LEGACY_AGENT_POLICY_PATH:LEGACY_PROJECT_LAYOUT.config}function selectProjectPolicyPath(paths,layout){let files=new Set(Array.from(paths,file=>file.replace(/\\/g,"/").replace(/^\.\//,"")));return(layout??detectProjectLayout(files)??"current")==="current"?CURRENT_PROJECT_LAYOUT.config:files.has(LEGACY_AGENT_POLICY_PATH)?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",agents:".fimo/agents"},LEGACY_PROJECT_LAYOUT={project:".fimo.settings.json",config:"fimo-config.json",agents:"agents"},LEGACY_AGENT_POLICY_PATH="fimo.config.json";__name(detectProjectLayout,"detectProjectLayout");__name(getProjectLayoutPaths,"getProjectLayoutPaths");__name(selectProjectConfigPath,"selectProjectConfigPath");__name(selectProjectPolicyPath,"selectProjectPolicyPath")}});import fs7 from"node:fs";import path7 from"node:path";function existingLayoutPaths(cwd){return[CURRENT_PROJECT_LAYOUT.project,CURRENT_PROJECT_LAYOUT.config,CURRENT_PROJECT_LAYOUT.agents,LEGACY_PROJECT_LAYOUT.project,LEGACY_PROJECT_LAYOUT.config,LEGACY_AGENT_POLICY_PATH].filter(file=>fs7.existsSync(path7.join(cwd,file)))}function detectProjectLayoutAtRoot(cwd){return detectProjectLayout(existingLayoutPaths(cwd))}function resolveProjectLayoutPaths(cwd,fallback="current"){return getProjectLayoutPaths(detectProjectLayoutAtRoot(cwd)??fallback)}function resolveProjectSettingsPath(cwd){return path7.join(cwd,resolveProjectLayoutPaths(cwd).project)}function resolveProjectConfigPath(cwd){let files=existingLayoutPaths(cwd);return path7.join(cwd,selectProjectConfigPath(files,detectProjectLayout(files)))}function resolveProjectPolicyPath(cwd){let files=existingLayoutPaths(cwd);return path7.join(cwd,selectProjectPolicyPath(files,detectProjectLayout(files)))}function resolveProjectAgentsDir(cwd){return path7.join(cwd,resolveProjectLayoutPaths(cwd).agents)}function loadProjectSettings(cwd){let settingsPath=resolveProjectSettingsPath(cwd);if(!fs7.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(fs7.readFileSync(settingsPath,"utf-8"))}function findProjectRoot(start){let dir=path7.resolve(start);for(;;){if(fs7.existsSync(path7.join(dir,CURRENT_PROJECT_LAYOUT.project))||fs7.existsSync(path7.join(dir,LEGACY_PROJECT_LAYOUT.project)))return dir;let parent2=path7.dirname(dir);if(parent2===dir)return null;dir=parent2}}function resolveProjectCwd(cwdOption){let start=path7.resolve(cwdOption??process.cwd());return findProjectRoot(start)??start}var init_project=__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(resolveProjectPolicyPath,"resolveProjectPolicyPath");__name(resolveProjectAgentsDir,"resolveProjectAgentsDir");__name(loadProjectSettings,"loadProjectSettings");__name(findProjectRoot,"findProjectRoot");__name(resolveProjectCwd,"resolveProjectCwd")}});import{z as z32}from"zod";function filterUnknownProperties(data2,schema){if(data2==null)return data2;if(schema instanceof z32.ZodOptional||schema instanceof z32.ZodNullable||schema instanceof z32.ZodDefault)return filterUnknownProperties(data2,schema.unwrap());if(schema instanceof z32.ZodArray){if(!Array.isArray(data2))return data2;let itemSchema=schema.unwrap();return data2.map(item=>filterUnknownProperties(item,itemSchema))}if(schema instanceof z32.ZodDiscriminatedUnion){if(typeof data2!="object"||data2===null)return data2;let unionSchema=schema,discriminator=unionSchema.def.discriminator,discriminatorValue=data2[discriminator],matchingSchema=unionSchema.options.find(option2=>{let discriminatorField=option2.shape[discriminator];return discriminatorField instanceof z32.ZodLiteral?discriminatorField.def.values.includes(discriminatorValue):!1});return matchingSchema?filterUnknownProperties(data2,matchingSchema):data2}if(schema instanceof z32.ZodObject){if(typeof data2!="object")return data2;let shape=schema.shape,result={};for(let key in shape)if(Object.prototype.hasOwnProperty.call(data2,key)){let fieldSchema=shape[key],fieldValue2=data2[key];result[key]=filterUnknownProperties(fieldValue2,fieldSchema)}if(schema.def.catchall instanceof z32.ZodUnknown)for(let[key,value]of Object.entries(data2))key in shape||(result[key]=value);return result}return data2}function createObjectDTO(schema){return{schema,from(data2){let filtered=filterUnknownProperties(data2,schema);return schema.parse(filtered)},fromList(data2){return data2.map(item=>this.from(item))},safeParse(data2){let filtered=filterUnknownProperties(data2,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(data2){let filtered=filterUnknownProperties(data2,schema);return schema.parse(filtered)},fromList(data2){return data2.map(item=>this.from(item))},safeParse(data2){let filtered=filterUnknownProperties(data2,schema);return schema.safeParse(filtered)}}}function createDTO(schema){if(schema instanceof z32.ZodObject)return createObjectDTO(schema);if(schema instanceof z32.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 z33}from"zod";function createCursorPageDataSchema(dataSchema){return z33.object({items:z33.array(dataSchema),nextCursor:z33.string().nullable()})}function createCursorPaginatedResponseSchema(dataSchema){return z33.object({data:createCursorPageDataSchema(dataSchema)})}var createResponseSchema2,createPaginatedResponseSchema,init_response=__esm({"../../packages/api-contracts/dist/esm/utils/response.js"(){"use strict";createResponseSchema2=__name(dataSchema=>z33.object({data:dataSchema}),"createResponseSchema"),createPaginatedResponseSchema=__name(dataSchema=>z33.object({data:z33.array(dataSchema),page:z33.number(),total:z33.number(),totalPages:z33.number(),hasMore:z33.boolean()}),"createPaginatedResponseSchema");__name(createCursorPageDataSchema,"createCursorPageDataSchema");__name(createCursorPaginatedResponseSchema,"createCursorPaginatedResponseSchema")}});import{z as z34}from"zod";var PaginationQuerySchema,init_pagination=__esm({"../../packages/api-contracts/dist/esm/utils/pagination.js"(){"use strict";PaginationQuerySchema=z34.object({page:z34.coerce.number().int().positive().default(1),limit:z34.coerce.number().int().positive().max(100).default(20)})}});import{z as z35}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_common2=__esm({"../../packages/api-contracts/dist/esm/types/common.js"(){"use strict";CommonSchemas={timestamp:z35.coerce.date(),positiveInt:z35.number().int().positive(),nonNegativeInt:z35.number().int().nonnegative()},BaseEntitySchema=z35.object({id:z35.uuid(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),ProjectRoleKeySchema=z35.enum(["full","edit","comment","view"]),ProjectRoleKeyWithSystemSchema=z35.enum(["full","edit","comment","view","agent","schedule"]),ProjectPrincipalTypeSchema=z35.enum(["user","org","orgRole","public","email"]),ProjectStatusSchema=z35.enum(["creating","forking","start_server","created","failed"]),ProjectInviteStatusSchema=z35.enum(["pending","accepted","revoked","expired"]),PublicationStatusSchema=z35.enum(["idle","publishing","published","failed","unpublished"]),OrganizationRoleSchema=z35.enum(["owner","admin","member"]),AssetTypeSchema=z35.enum(["file","folder"]),TemplateCodeSchema=z35.enum(["Free","PAYG","Premium","Pro"]),FieldTypeSchema=z35.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 z36}from"zod";var MB,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_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=z36.enum(MODEL_MEDIA_TYPE),MODEL_MIME_TYPES=Object.values(MODEL_MEDIA_TYPE),MODEL_RENDER_VIEW_ANGLES=[35,125,215,305],AttachmentModelRenderRequestSchema=z36.object({renderId:z36.uuid(),filename:z36.string().min(1).max(255),mediaType:AttachmentModelMediaTypeSchema,modelUrl:z36.url()}),AttachmentModelRenderSuccessSchema=z36.object({status:z36.literal("succeeded"),views:z36.tuple([z36.object({angle:z36.literal(MODEL_RENDER_VIEW_ANGLES[0]),screenshotUrl:z36.url()}),z36.object({angle:z36.literal(MODEL_RENDER_VIEW_ANGLES[1]),screenshotUrl:z36.url()}),z36.object({angle:z36.literal(MODEL_RENDER_VIEW_ANGLES[2]),screenshotUrl:z36.url()}),z36.object({angle:z36.literal(MODEL_RENDER_VIEW_ANGLES[3]),screenshotUrl:z36.url()})]),elapsedMs:z36.number().nonnegative(),browserElapsedMs:z36.number().nonnegative(),diagnostics:z36.unknown().optional()}),AttachmentModelRenderFailureSchema=z36.object({status:z36.literal("failed"),error:z36.literal("render_failed"),message:z36.string(),elapsedMs:z36.number().nonnegative(),browserElapsedMs:z36.number().nonnegative()}),AttachmentModelRenderResponseSchema=z36.discriminatedUnion("status",[AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema]),AttachmentModelRenderMeterSchema=z36.object({browserElapsedMs:z36.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 z37}from"zod";var AssetReadRequestSchema2,AssetDerivedFileSchema,AssetReadBaseSchema,AssetReadPageSchema,AssetReadQuerySchema,AssetReadResultSchema2,init_asset_reading=__esm({"../../packages/api-contracts/dist/esm/types/asset-reading.js"(){"use strict";AssetReadRequestSchema2=z37.object({cursor:z37.string().optional(),query:z37.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=z37.object({url:z37.url(),mediaType:z37.string(),filename:z37.string()}),AssetReadBaseSchema=z37.object({assetId:z37.uuid(),filename:z37.string(),mediaType:z37.string(),representation:z37.enum(["text","table","document","archive","image","transcript","video","model"]),content:z37.string(),derivedFiles:z37.array(AssetDerivedFileSchema).optional()}),AssetReadPageSchema=AssetReadBaseSchema.extend({mode:z37.literal("page"),start:z37.number().int().nonnegative(),end:z37.number().int().nonnegative(),total:z37.number().int().nonnegative(),nextCursor:z37.string().nullable(),complete:z37.boolean()}),AssetReadQuerySchema=AssetReadBaseSchema.extend({mode:z37.literal("query"),query:z37.string(),source:z37.enum(["original-file","canonical-text","derived-files"]),truncated:z37.boolean()}),AssetReadResultSchema2=z37.discriminatedUnion("mode",[AssetReadPageSchema,AssetReadQuerySchema])}});import{z as z38}from"zod";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 encodeBranchPathSegment2(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(projectId,branch,tenantApiBaseUrl){let url=new URL(tenantApiBaseUrl);return url.hostname=`${projectId}-${branchResourceKey(branch)}.${url.hostname}`,url.toString().replace(/\/$/,"")}var FIMO_CONTENT_API_ENV_KEYS,FIMO_PREVIEW_SCRIPT_ENV_KEYS,FIMO_MANAGED_PROJECT_ENV_KEYS,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_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,"VITE_ENABLE_ANALYTICS","VITE_FIMO_BRANCH","VITE_FIMO_IMAGE_HOSTS"],BRANCH_ID_REGEX=/^[a-zA-Z0-9._/-]+$/,MAX_BRANCH_LENGTH=255;__name(isValidBranch,"isValidBranch");__name(encodeBranchPathSegment2,"encodeBranchPathSegment");BranchSchema=z38.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 z39}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=z39.union([z39.literal(PRODUCTION_ENVIRONMENT_KEY),z39.literal(PREVIEW_ENVIRONMENT_KEY),z39.uuid()]),CustomEnvironmentSchema=z39.object({id:z39.uuid(),projectId:z39.uuid(),name:z39.string().trim().min(1).max(64),branchPatterns:z39.array(z39.string().min(1).max(255)).min(1),description:z39.string().max(255).nullable()}),ResolvedEnvironmentSchema=z39.object({branch:BranchSchema,environment:EnvironmentKeySchema})}});import{z as z40}from"zod";var NOTIFICATION_EVENTS,NotificationAudienceSchema,NotificationEventSchema,init_realtime=__esm({"../../packages/api-contracts/dist/esm/types/realtime.js"(){"use strict";init_env();NOTIFICATION_EVENTS={created:"notifications/created",stateChanged:"notifications/state-changed",unreadChanged:"notifications/unread-changed"},NotificationAudienceSchema=z40.object({projectId:z40.uuid(),userId:z40.string().min(1)}),NotificationEventSchema=z40.discriminatedUnion("type",[z40.object({type:z40.literal(NOTIFICATION_EVENTS.created),payload:NotificationAudienceSchema.extend({notificationId:z40.uuid()})}),z40.object({type:z40.literal(NOTIFICATION_EVENTS.stateChanged),payload:NotificationAudienceSchema.extend({notificationId:z40.uuid()})}),z40.object({type:z40.literal(NOTIFICATION_EVENTS.unreadChanged),payload:NotificationAudienceSchema})])}});import{z as z41}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=z41.preprocess(referenceValuePreprocess,z41.object({documentId:z41.uuid()})),ReferenceInputValueSchema=z41.preprocess(referenceValuePreprocess,z41.union([z41.object({documentId:z41.uuid()}),z41.object({slug:z41.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=z41.preprocess(polymorphicReferenceValuePreprocess,z41.object({contentType:z41.string().min(1),documentId:z41.uuid()})),PolymorphicReferenceInputValueSchema=z41.preprocess(polymorphicReferenceValuePreprocess,z41.union([z41.object({contentType:z41.string().min(1),documentId:z41.uuid()}),z41.object({contentType:z41.string().min(1),slug:z41.string().min(1)})]))}});import{z as z42}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,path53){let conditionPath=[...path53,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,path53)=>{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,path53));if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...path53,fieldName,variant.uid]);else walk(field.schema.fields,[...path53,fieldName])}},"walk");return walk(fields,[]),problems}function isBlocksUnion(schema){return"oneOf"in schema}function walkContentFields(fields,visit2){let walk=__name((currentFields,path53,structuredDepth,insideStructuredContent)=>{for(let[fieldName,field]of Object.entries(currentFields)){let fieldPath=[...path53,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_common2();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=z42.union([z42.object({field:z42.string().min(1),equals:z42.union([z42.string(),z42.number(),z42.boolean()])}).strict(),z42.object({field:z42.string().min(1),in:z42.array(z42.union([z42.string(),z42.number(),z42.boolean()])).min(1)}).strict()]),commonFieldShape={label:z42.string().min(1).optional(),description:z42.string().optional(),group:z42.union([z42.string().min(1),z42.array(z42.string().min(1)).min(1)]).optional(),editable:z42.boolean().optional(),required:z42.boolean().optional(),default:z42.unknown().optional(),showIf:z42.union([showIfClauseSchema,z42.array(showIfClauseSchema).min(1)]).optional(),showIfAny:z42.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=z42.object({...commonFieldShape,type:z42.enum(["string","text","richtext","media","number","boolean","date","datetime","json"]),min:z42.number().optional(),max:z42.number().optional(),minLength:z42.number().int().nonnegative().optional(),maxLength:z42.number().int().nonnegative().optional(),regex:z42.string().optional(),multiple:z42.boolean().optional(),allowedMimeTypes:z42.array(z42.string()).optional(),options:z42.array(z42.string().min(1)).min(1).optional(),unique:z42.boolean().optional(),i18n:z42.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=z42.object({...commonFieldShape,type:z42.literal("reference"),target:z42.string().regex(CONTENT_TYPE_NAME_PATTERN).optional(),targets:z42.array(z42.string().regex(CONTENT_TYPE_NAME_PATTERN)).min(1).optional(),many:z42.boolean().optional(),i18n:z42.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=z42.lazy(()=>contentFieldDefinitionSchema);__name(getConditionDefinition,"getConditionDefinition");__name(getConditionValues,"getConditionValues");__name(collectClauseProblems,"collectClauseProblems");__name(collectConditionProblems,"collectConditionProblems");blockFieldsSchema=z42.record(z42.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=z42.object({uid:z42.string().regex(CONTENT_TYPE_NAME_PATTERN),label:z42.string().min(1),description:z42.string().optional(),fields:blockFieldsSchema}).strict(),fixedBlocksSchema=z42.object({fields:blockFieldsSchema}).strict(),blocksSchema=z42.object({oneOf:z42.array(blockVariantSchema).min(1).max(MAX_BLOCK_VARIANTS)}).strict().superRefine((schema,ctx)=>{let seen=new Set;for(let[index2,variant]of schema.oneOf.entries())seen.has(variant.uid)&&ctx.addIssue({code:"custom",path:["oneOf",index2,"uid"],message:"Variant UIDs must be unique."}),seen.add(variant.uid)}),blocksFieldSchema=z42.object({...commonFieldShape,type:z42.literal("blocks"),min:z42.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),max:z42.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),schema:z42.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=z42.discriminatedUnion("type",[scalarFieldSchema,referenceFieldSchema,blocksFieldSchema]);__name(isBlocksUnion,"isBlocksUnion");__name(walkContentFields,"walkContentFields")}});import{z as z43}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","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_agent_trace_list","ops_agent_trace_read","ops_agent_trace_stats","ops_agent_health_read","ops_agent_provider_errors_read","ops_project_snapshot","ops_project_file_read","ops_project_file_write","ops_support_thread_read","ops_support_report_read","ops_support_report_change","ops_billing_read","ops_billing_entitlements_sync","ops_billing_cache_invalidate","ops_billing_legacy_premium_enroll","ops_billing_plan_transition_notices","ops_customer_registry_change","ops_investigation_change","ops_known_issue_change","ops_validation_record","ops_notification_preview","ops_notification_approve","ops_notification_send","ops_project_operation","ops_project_publish","admin_resource_read","merge_force"],AuditActionSchema=z43.enum(AUDIT_ACTIONS),AUDIT_OUTCOMES=["success","denied","error"],AuditOutcomeSchema=z43.enum(AUDIT_OUTCOMES),AUDIT_ACTOR_KINDS=["user","agent","system"],AuditActorKindSchema=z43.enum(AUDIT_ACTOR_KINDS)}});import{z as z44}from"zod";var OPS_BACKEND_PROFILES,OpsBackendProfileSchema,OPS_PERMISSIONS,OpsPermissionSchema,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_CONTEXT_HEALTH_MAX_WINDOW_MS,OpsContextHealthInputSchema,OpsAgentTraceStatsGroupBySchema,OpsSpanTypeSchema,OpsAgentTraceStatsInputSchema,OpsAgentProviderErrorsInputSchema,OpsBillingCacheInvalidateInputSchema,OpsBillingEntitlementSyncInputSchema,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,OpsProjectFileWritePlanInputSchema,OpsProjectFileWriteApplyInputSchema,OpsProjectOperationApplyInputSchema,OpsProjectPublishApplyInputSchema,init_ops=__esm({"../../packages/api-contracts/dist/esm/types/ops.js"(){"use strict";init_env();OPS_BACKEND_PROFILES=["local","staging","prod"],OpsBackendProfileSchema=z44.enum(OPS_BACKEND_PROFILES),OPS_PERMISSIONS=["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:project:operate","ops:project:publish","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:braintrust:read","ops:support:read","ops:support:write","ops:customers:read","ops:customers:write","ops:billing:read","ops:billing: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"],OpsPermissionSchema=z44.enum(OPS_PERMISSIONS),OPS_PERMISSION_PRESETS={support:["ops:project:read","ops:project:chat:read","ops:support:read","ops:support:write","ops:customers:read","ops:billing:read","ops:billing:write","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:validations:read","ops:notification:preview"],engineer:["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:project:operate","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:braintrust:read","ops:support:read","ops:support:write","ops:customers:read","ops:customers:write","ops:billing:read","ops:billing: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"],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=z44.object({permissions:z44.array(OpsPermissionSchema).min(1),backendProfiles:z44.array(OpsBackendProfileSchema).min(1),enabled:z44.boolean().default(!0)}),OpsServiceTokenInputSchema=z44.object({name:z44.string().trim().min(1).max(120),permissions:z44.array(OpsPermissionSchema).min(1),backendProfiles:z44.array(OpsBackendProfileSchema).min(1),expiresAt:z44.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=z44.object({importanceReason:z44.string().trim().min(1).max(1e3),ownerUserId:z44.string().trim().min(1).nullable().optional(),framework:z44.string().trim().max(120).nullable().optional(),packageManager:z44.enum(["npm","pnpm","yarn","bun"]).nullable().optional(),notes:z44.string().trim().max(5e3).nullable().optional()}),OPS_INVESTIGATION_STATUSES=["open","investigating","awaiting_approval","resolved","monitoring","closed"],OpsInvestigationStatusSchema=z44.enum(OPS_INVESTIGATION_STATUSES),OpsInvestigationCreateInputSchema=z44.object({projectId:z44.uuid(),title:z44.string().trim().min(1).max(240),userReport:z44.string().trim().max(1e4).nullable().optional()}),OpsInvestigationUpdateInputSchema=z44.object({status:OpsInvestigationStatusSchema.optional(),hypothesis:z44.string().trim().max(1e4).nullable().optional(),outcome:z44.string().trim().max(1e4).nullable().optional(),evidence:z44.array(z44.record(z44.string(),z44.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=z44.enum(OPS_KNOWN_ISSUE_STATUSES),OpsKnownIssueCreateInputSchema=z44.object({fingerprint:z44.string().trim().min(1).max(240),title:z44.string().trim().min(1).max(240),description:z44.string().trim().min(1).max(1e4),affectedVersions:z44.array(z44.string().trim().min(1).max(120)).max(100).default([]),detectionQueries:z44.array(z44.string().trim().min(1).max(2e3)).max(50).default([]),fixedVersion:z44.string().trim().min(1).max(64).nullable().optional(),workaround:z44.string().trim().min(1).max(1e4).nullable().optional(),status:OpsKnownIssueStatusSchema.default("open")}),OpsKnownIssueUpdateInputSchema=OpsKnownIssueCreateInputSchema.omit({fingerprint:!0}).extend({affectedVersions:z44.array(z44.string().trim().min(1).max(120)).max(100),detectionQueries:z44.array(z44.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=z44.enum(OPS_VALIDATION_OUTCOMES),OpsValidationRunInputSchema=z44.object({changeReference:z44.string().trim().min(1).max(500),outcome:OpsValidationOutcomeSchema,summary:z44.string().trim().min(1).max(1e4),evidence:z44.array(z44.record(z44.string(),z44.unknown())).max(100).default([])}),OpsNotificationPreviewInputSchema=z44.object({recipientEmail:z44.email().optional(),subject:z44.string().trim().min(1).max(200).default("An update from Fimo"),message:z44.string().trim().min(1).max(5e3),locale:z44.string().trim().min(2).max(20),reason:z44.string().trim().min(1).max(1e3),acknowledgePolicy:z44.literal(!0)}),OpsPylonIssueIdSchema=z44.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsPylonReasonSchema=z44.string().trim().min(1).max(1e3),OpsPylonMessageSchema=z44.string().trim().min(1).max(5e3),OpsPylonMessageIdSchema=z44.string().trim().min(1).max(255),OpsPylonEmailListSchema=z44.array(z44.email()).max(50).default([]),OpsPylonResolveInputSchema=z44.object({reason:OpsPylonReasonSchema}),OpsPylonNoteInputSchema=z44.object({message:OpsPylonMessageSchema,reason:OpsPylonReasonSchema}),OpsPylonReplyPreviewInputSchema=z44.object({messageId:OpsPylonMessageIdSchema,message:OpsPylonMessageSchema,toEmails:OpsPylonEmailListSchema,ccEmails:OpsPylonEmailListSchema,bccEmails:OpsPylonEmailListSchema,reason:OpsPylonReasonSchema,acknowledgePolicy:z44.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=z44.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsSentryResolveInputSchema=z44.object({reason:z44.string().trim().min(1).max(1e3)}),OpsTraceIdSchema=z44.string().trim().regex(/^[a-fA-F0-9]{32}$/).transform(value=>value.toLowerCase()),OpsTraceReadInputSchema=z44.object({projectId:z44.uuid(),from:z44.coerce.date(),to:z44.coerce.date(),reason:z44.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=z44.string().trim().regex(/^[A-Za-z0-9_-]{1,200}$/),OpsAgentInvocationStatusSchema=z44.enum(["planned","running","finished","cancelled","errored","refused"]),OpsAgentTraceListInputSchema=z44.object({projectId:z44.uuid().optional(),organizationId:z44.string().trim().min(1).max(255).optional(),agentKey:z44.string().trim().min(1).max(120).optional(),threadId:z44.uuid().optional(),status:OpsAgentInvocationStatusSchema.optional(),since:z44.coerce.date().optional(),minCostUsd:z44.coerce.number().min(0).optional(),tracedOnly:z44.coerce.boolean().default(!1),limit:z44.coerce.number().int().min(1).max(100).default(25),reason:z44.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=z44.object({limit:z44.coerce.number().int().min(1).max(500).default(200),reason:z44.string().trim().min(1).max(1e3)}),OpsSpanBodyEdgeSchema=z44.enum(["start","end"]).default("start"),OpsAgentTraceSpanInputSchema=z44.object({maxChars:z44.coerce.number().int().min(500).max(2e5).default(2e4),edge:OpsSpanBodyEdgeSchema,reason:z44.string().trim().min(1).max(1e3)}),OpsAgentTraceMessagesInputSchema=z44.object({messageIndex:z44.coerce.number().int().min(0).optional(),maxChars:z44.coerce.number().int().min(500).max(2e5).default(2e4),reason:z44.string().trim().min(1).max(1e3)}),OpsAgentHealthGroupBySchema=z44.enum(["agent","status","branch","project","day"]),OpsAgentHealthInputSchema=z44.strictObject({projectId:z44.uuid().optional(),organizationId:z44.string().trim().min(1).max(255).optional(),branch:BranchSchema.optional(),agentKey:z44.string().trim().min(1).max(120).optional(),since:z44.coerce.date(),until:z44.coerce.date().optional(),groupBy:OpsAgentHealthGroupBySchema.default("agent"),includeChildren:z44.coerce.boolean().default(!1),limit:z44.coerce.number().int().min(1).max(200).default(50),reason:z44.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_CONTEXT_HEALTH_MAX_WINDOW_MS=10080*60*1e3,OpsContextHealthInputSchema=z44.object({projectId:z44.uuid().optional(),since:z44.coerce.date(),until:z44.coerce.date().optional(),limit:z44.coerce.number().int().min(1).max(1e3).default(500),reason:z44.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"}),OpsAgentTraceStatsGroupBySchema=z44.enum(["model","provider","span","type"]),OpsSpanTypeSchema=z44.enum(["llm","tool","function","task","score","eval"]),OpsAgentTraceStatsInputSchema=z44.object({since:z44.coerce.date(),until:z44.coerce.date().optional(),groupBy:OpsAgentTraceStatsGroupBySchema.default("model"),spanType:OpsSpanTypeSchema.optional(),slowerThanSeconds:z44.coerce.number().min(0).optional(),limit:z44.coerce.number().int().min(1).max(200).default(50),reason:z44.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=z44.object({since:z44.coerce.date(),until:z44.coerce.date().optional(),model:z44.string().trim().min(1).max(120).optional(),provider:z44.string().trim().min(1).max(120).optional(),spanType:OpsSpanTypeSchema.optional(),before:z44.coerce.date().optional(),limit:z44.coerce.number().int().min(1).max(1e3).default(500),sampleChars:z44.coerce.number().int().min(200).max(2e4).default(1200),reason:z44.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"}),OpsBillingCacheInvalidateInputSchema=z44.object({reason:z44.string().trim().min(1).max(1e3)}),OpsBillingEntitlementSyncInputSchema=z44.object({reason:z44.string().trim().min(1).max(500),apply:z44.boolean().default(!1),confirmProduction:z44.boolean().default(!1),cursor:z44.string().min(1).optional(),batchSize:z44.number().int().min(1).max(100).default(50),concurrency:z44.number().int().min(1).max(10).default(2)}),OPS_PROJECT_OPERATIONS=["runtime.bump","preview.restart","production.publish"],OpsProjectOperationKindSchema=z44.enum(OPS_PROJECT_OPERATIONS),ExactVersionSchema=z44.string().trim().regex(/^\d+\.\d+\.\d+$/,"Expected an exact version such as 0.11.0"),OpsProjectOperationPlanInputSchema=z44.discriminatedUnion("kind",[z44.object({kind:z44.literal("runtime.bump"),targetVersion:ExactVersionSchema}),z44.object({kind:z44.literal("preview.restart")})]),OPS_MIGRATIONS=["project.v3-to-v4"],OpsMigrationIdSchema=z44.enum(OPS_MIGRATIONS),OPS_MIGRATION_PLAN_STATUSES=["applicable","not_applicable","unknown"],OpsMigrationPlanStatusSchema=z44.enum(OPS_MIGRATION_PLAN_STATUSES),OPS_MIGRATION_CHANGE_ACTIONS=["create","rewrite","delete"],OpsMigrationChangeActionSchema=z44.enum(OPS_MIGRATION_CHANGE_ACTIONS),OpsMigrationDryRunInputSchema=z44.object({migrationId:OpsMigrationIdSchema,projectEnv:z44.string().trim().min(1).max(255).default("main"),reason:z44.string().trim().min(1).max(1e3)}),OpsProjectFilePathSchema=z44.string().trim().min(1).max(1024),OpsProjectFileReasonSchema=z44.string().trim().min(1).max(1e3),OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES=["pnpm-lock.yaml","bun.lockb","bun.lock","yarn.lock","package-lock.json"],OpsProjectPackageManagerInspectInputSchema=z44.object({reason:OpsProjectFileReasonSchema}),OpsProjectFileReadInputSchema=z44.object({path:OpsProjectFilePathSchema,reason:OpsProjectFileReasonSchema}),OpsProjectFileGlobInputSchema=z44.object({pattern:z44.string().min(1).max(300).optional(),limit:z44.coerce.number().int().min(1).max(2e3).default(2e3),reason:OpsProjectFileReasonSchema}),OpsProjectFileGrepInputSchema=z44.object({pattern:z44.string().min(1).max(200),include:z44.string().min(1).max(300).optional(),caseInsensitive:z44.boolean().default(!1),maxMatches:z44.coerce.number().int().min(1).max(200).default(100),reason:OpsProjectFileReasonSchema}),OpsProjectFileWritePlanInputSchema=z44.object({path:OpsProjectFilePathSchema,content:z44.string().max(256*1024),overwrite:z44.boolean().default(!1),reason:OpsProjectFileReasonSchema}),OpsProjectFileWriteApplyInputSchema=OpsProjectFileWritePlanInputSchema.extend({planHash:z44.string().trim().length(64),consentReference:z44.string().trim().min(1).max(200).optional()}),OpsProjectOperationApplyInputSchema=z44.intersection(OpsProjectOperationPlanInputSchema,z44.object({planHash:z44.string().trim().length(64),reason:z44.string().trim().min(1).max(1e3),consentReference:z44.string().trim().min(1).max(200).optional()})),OpsProjectPublishApplyInputSchema=z44.object({planHash:z44.string().trim().length(64),reason:z44.string().trim().min(1).max(1e3),consentReference:z44.string({error:"Publishing on a customer's behalf requires a recorded consent reference"}).trim().min(1).max(200)})}});import{z as z45}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[]}}function buildChatFormAnswerMetadata(block,answers,identity2={}){return ChatFormAnswerMetadataSchema.parse({...identity2,shortTitle:identity2.shortTitle??block.title,questions:block.steps.map((step,index2)=>{let selectedLabels=[...answers[index2]?.selectedLabels??[]],freeText=answers[index2]?.freeText.trim()??"";return{header:step.header,question:step.question,answer:formatChatFormAnswer(selectedLabels,freeText,step.body.type==="capabilities"?"No capabilities approved.":void 0),selectedLabels,freeText,skipped:!1}})})}function formatChatFormAnswer(selectedLabels,freeText,emptyFallback=""){let selection=selectedLabels.join(", "),context=freeText.trim();return selection&&context?`${selection}
189
+ `)}function renderCliAuthError(err,opts={}){console.error(formatCliAuthError(err,opts))}function formatShellArg(arg){return/^[A-Za-z0-9_/:=.,@%+-]+$/.test(arg)?arg:`'${arg.replace(/'/g,"'\\''")}'`}var init_auth_errors=__esm({"src/cli/utils/auth-errors.ts"(){init_auth();init_sdk_transport();init_color();__name(isCliAuthError,"isCliAuthError");__name(rethrowCliAuthError,"rethrowCliAuthError");__name(retryCommand,"retryCommand");__name(formatCliAuthError,"formatCliAuthError");__name(renderCliAuthError,"renderCliAuthError");__name(formatShellArg,"formatShellArg")}});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||file===CURRENT_PROJECT_LAYOUT.agents||file.startsWith(`${CURRENT_PROJECT_LAYOUT.agents}/`),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 files=new Set(Array.from(paths,file=>file.replace(/\\/g,"/").replace(/^\.\//,"")));return(layout??detectProjectLayout(files)??"current")==="current"?CURRENT_PROJECT_LAYOUT.config:files.has(LEGACY_AGENT_POLICY_PATH)&&!files.has(LEGACY_PROJECT_LAYOUT.config)?LEGACY_AGENT_POLICY_PATH:LEGACY_PROJECT_LAYOUT.config}function selectProjectPolicyPath(paths,layout){let files=new Set(Array.from(paths,file=>file.replace(/\\/g,"/").replace(/^\.\//,"")));return(layout??detectProjectLayout(files)??"current")==="current"?CURRENT_PROJECT_LAYOUT.config:files.has(LEGACY_AGENT_POLICY_PATH)?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",agents:".fimo/agents"},LEGACY_PROJECT_LAYOUT={project:".fimo.settings.json",config:"fimo-config.json",agents:"agents"},LEGACY_AGENT_POLICY_PATH="fimo.config.json";__name(detectProjectLayout,"detectProjectLayout");__name(getProjectLayoutPaths,"getProjectLayoutPaths");__name(selectProjectConfigPath,"selectProjectConfigPath");__name(selectProjectPolicyPath,"selectProjectPolicyPath")}});import fs7 from"node:fs";import path7 from"node:path";function existingLayoutPaths(cwd){return[CURRENT_PROJECT_LAYOUT.project,CURRENT_PROJECT_LAYOUT.config,CURRENT_PROJECT_LAYOUT.agents,LEGACY_PROJECT_LAYOUT.project,LEGACY_PROJECT_LAYOUT.config,LEGACY_AGENT_POLICY_PATH].filter(file=>fs7.existsSync(path7.join(cwd,file)))}function detectProjectLayoutAtRoot(cwd){return detectProjectLayout(existingLayoutPaths(cwd))}function resolveProjectLayoutPaths(cwd,fallback="current"){return getProjectLayoutPaths(detectProjectLayoutAtRoot(cwd)??fallback)}function resolveProjectSettingsPath(cwd){return path7.join(cwd,resolveProjectLayoutPaths(cwd).project)}function resolveProjectConfigPath(cwd){let files=existingLayoutPaths(cwd);return path7.join(cwd,selectProjectConfigPath(files,detectProjectLayout(files)))}function resolveProjectPolicyPath(cwd){let files=existingLayoutPaths(cwd);return path7.join(cwd,selectProjectPolicyPath(files,detectProjectLayout(files)))}function resolveProjectAgentsDir(cwd){return path7.join(cwd,resolveProjectLayoutPaths(cwd).agents)}function loadProjectSettings(cwd){let settingsPath=resolveProjectSettingsPath(cwd);if(!fs7.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(fs7.readFileSync(settingsPath,"utf-8"))}function findProjectRoot(start){let dir=path7.resolve(start);for(;;){if(fs7.existsSync(path7.join(dir,CURRENT_PROJECT_LAYOUT.project))||fs7.existsSync(path7.join(dir,LEGACY_PROJECT_LAYOUT.project)))return dir;let parent2=path7.dirname(dir);if(parent2===dir)return null;dir=parent2}}function resolveProjectCwd(cwdOption){let start=path7.resolve(cwdOption??process.cwd());return findProjectRoot(start)??start}var init_project=__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(resolveProjectPolicyPath,"resolveProjectPolicyPath");__name(resolveProjectAgentsDir,"resolveProjectAgentsDir");__name(loadProjectSettings,"loadProjectSettings");__name(findProjectRoot,"findProjectRoot");__name(resolveProjectCwd,"resolveProjectCwd")}});import{z as z32}from"zod";function filterUnknownProperties(data2,schema){if(data2==null)return data2;if(schema instanceof z32.ZodOptional||schema instanceof z32.ZodNullable||schema instanceof z32.ZodDefault)return filterUnknownProperties(data2,schema.unwrap());if(schema instanceof z32.ZodArray){if(!Array.isArray(data2))return data2;let itemSchema=schema.unwrap();return data2.map(item=>filterUnknownProperties(item,itemSchema))}if(schema instanceof z32.ZodDiscriminatedUnion){if(typeof data2!="object"||data2===null)return data2;let unionSchema=schema,discriminator=unionSchema.def.discriminator,discriminatorValue=data2[discriminator],matchingSchema=unionSchema.options.find(option2=>{let discriminatorField=option2.shape[discriminator];return discriminatorField instanceof z32.ZodLiteral?discriminatorField.def.values.includes(discriminatorValue):!1});return matchingSchema?filterUnknownProperties(data2,matchingSchema):data2}if(schema instanceof z32.ZodObject){if(typeof data2!="object")return data2;let shape=schema.shape,result={};for(let key in shape)if(Object.prototype.hasOwnProperty.call(data2,key)){let fieldSchema=shape[key],fieldValue2=data2[key];result[key]=filterUnknownProperties(fieldValue2,fieldSchema)}if(schema.def.catchall instanceof z32.ZodUnknown)for(let[key,value]of Object.entries(data2))key in shape||(result[key]=value);return result}return data2}function createObjectDTO(schema){return{schema,from(data2){let filtered=filterUnknownProperties(data2,schema);return schema.parse(filtered)},fromList(data2){return data2.map(item=>this.from(item))},safeParse(data2){let filtered=filterUnknownProperties(data2,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(data2){let filtered=filterUnknownProperties(data2,schema);return schema.parse(filtered)},fromList(data2){return data2.map(item=>this.from(item))},safeParse(data2){let filtered=filterUnknownProperties(data2,schema);return schema.safeParse(filtered)}}}function createDTO(schema){if(schema instanceof z32.ZodObject)return createObjectDTO(schema);if(schema instanceof z32.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 z33}from"zod";function createCursorPageDataSchema(dataSchema){return z33.object({items:z33.array(dataSchema),nextCursor:z33.string().nullable()})}function createCursorPaginatedResponseSchema(dataSchema){return z33.object({data:createCursorPageDataSchema(dataSchema)})}var createResponseSchema2,createPaginatedResponseSchema,init_response=__esm({"../../packages/api-contracts/dist/esm/utils/response.js"(){"use strict";createResponseSchema2=__name(dataSchema=>z33.object({data:dataSchema}),"createResponseSchema"),createPaginatedResponseSchema=__name(dataSchema=>z33.object({data:z33.array(dataSchema),page:z33.number(),total:z33.number(),totalPages:z33.number(),hasMore:z33.boolean()}),"createPaginatedResponseSchema");__name(createCursorPageDataSchema,"createCursorPageDataSchema");__name(createCursorPaginatedResponseSchema,"createCursorPaginatedResponseSchema")}});import{z as z34}from"zod";var PaginationQuerySchema,init_pagination=__esm({"../../packages/api-contracts/dist/esm/utils/pagination.js"(){"use strict";PaginationQuerySchema=z34.object({page:z34.coerce.number().int().positive().default(1),limit:z34.coerce.number().int().positive().max(100).default(20)})}});import{z as z35}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_common2=__esm({"../../packages/api-contracts/dist/esm/types/common.js"(){"use strict";CommonSchemas={timestamp:z35.coerce.date(),positiveInt:z35.number().int().positive(),nonNegativeInt:z35.number().int().nonnegative()},BaseEntitySchema=z35.object({id:z35.uuid(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),ProjectRoleKeySchema=z35.enum(["full","edit","comment","view"]),ProjectRoleKeyWithSystemSchema=z35.enum(["full","edit","comment","view","agent","schedule"]),ProjectPrincipalTypeSchema=z35.enum(["user","org","orgRole","public","email"]),ProjectStatusSchema=z35.enum(["creating","forking","start_server","created","failed"]),ProjectInviteStatusSchema=z35.enum(["pending","accepted","revoked","expired"]),PublicationStatusSchema=z35.enum(["idle","publishing","published","failed","unpublished"]),OrganizationRoleSchema=z35.enum(["owner","admin","member"]),AssetTypeSchema=z35.enum(["file","folder"]),TemplateCodeSchema=z35.enum(["Free","PAYG","Premium","Pro"]),FieldTypeSchema=z35.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 z36}from"zod";var MB,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_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=z36.enum(MODEL_MEDIA_TYPE),MODEL_MIME_TYPES=Object.values(MODEL_MEDIA_TYPE),MODEL_RENDER_VIEW_ANGLES=[35,125,215,305],AttachmentModelRenderRequestSchema=z36.object({renderId:z36.uuid(),filename:z36.string().min(1).max(255),mediaType:AttachmentModelMediaTypeSchema,modelUrl:z36.url()}),AttachmentModelRenderSuccessSchema=z36.object({status:z36.literal("succeeded"),views:z36.tuple([z36.object({angle:z36.literal(MODEL_RENDER_VIEW_ANGLES[0]),screenshotUrl:z36.url()}),z36.object({angle:z36.literal(MODEL_RENDER_VIEW_ANGLES[1]),screenshotUrl:z36.url()}),z36.object({angle:z36.literal(MODEL_RENDER_VIEW_ANGLES[2]),screenshotUrl:z36.url()}),z36.object({angle:z36.literal(MODEL_RENDER_VIEW_ANGLES[3]),screenshotUrl:z36.url()})]),elapsedMs:z36.number().nonnegative(),browserElapsedMs:z36.number().nonnegative(),diagnostics:z36.unknown().optional()}),AttachmentModelRenderFailureSchema=z36.object({status:z36.literal("failed"),error:z36.literal("render_failed"),message:z36.string(),elapsedMs:z36.number().nonnegative(),browserElapsedMs:z36.number().nonnegative()}),AttachmentModelRenderResponseSchema=z36.discriminatedUnion("status",[AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema]),AttachmentModelRenderMeterSchema=z36.object({browserElapsedMs:z36.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 z37}from"zod";var AssetReadRequestSchema2,AssetDerivedFileSchema,AssetReadBaseSchema,AssetReadPageSchema,AssetReadQuerySchema,AssetReadResultSchema2,init_asset_reading=__esm({"../../packages/api-contracts/dist/esm/types/asset-reading.js"(){"use strict";AssetReadRequestSchema2=z37.object({cursor:z37.string().optional(),query:z37.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=z37.object({url:z37.url(),mediaType:z37.string(),filename:z37.string()}),AssetReadBaseSchema=z37.object({assetId:z37.uuid(),filename:z37.string(),mediaType:z37.string(),representation:z37.enum(["text","table","document","archive","image","transcript","video","model"]),content:z37.string(),derivedFiles:z37.array(AssetDerivedFileSchema).optional()}),AssetReadPageSchema=AssetReadBaseSchema.extend({mode:z37.literal("page"),start:z37.number().int().nonnegative(),end:z37.number().int().nonnegative(),total:z37.number().int().nonnegative(),nextCursor:z37.string().nullable(),complete:z37.boolean()}),AssetReadQuerySchema=AssetReadBaseSchema.extend({mode:z37.literal("query"),query:z37.string(),source:z37.enum(["original-file","canonical-text","derived-files"]),truncated:z37.boolean()}),AssetReadResultSchema2=z37.discriminatedUnion("mode",[AssetReadPageSchema,AssetReadQuerySchema])}});import{z as z38}from"zod";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 encodeBranchPathSegment2(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(projectId,branch,tenantApiBaseUrl){let url=new URL(tenantApiBaseUrl);return url.hostname=`${projectId}-${branchResourceKey(branch)}.${url.hostname}`,url.toString().replace(/\/$/,"")}var FIMO_CONTENT_API_ENV_KEYS,FIMO_PREVIEW_SCRIPT_ENV_KEYS,FIMO_MANAGED_PROJECT_ENV_KEYS,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_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,"VITE_ENABLE_ANALYTICS","VITE_FIMO_BRANCH","VITE_FIMO_IMAGE_HOSTS"],BRANCH_ID_REGEX=/^[a-zA-Z0-9._/-]+$/,MAX_BRANCH_LENGTH=255;__name(isValidBranch,"isValidBranch");__name(encodeBranchPathSegment2,"encodeBranchPathSegment");BranchSchema=z38.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 z39}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=z39.union([z39.literal(PRODUCTION_ENVIRONMENT_KEY),z39.literal(PREVIEW_ENVIRONMENT_KEY),z39.uuid()]),CustomEnvironmentSchema=z39.object({id:z39.uuid(),projectId:z39.uuid(),name:z39.string().trim().min(1).max(64),branchPatterns:z39.array(z39.string().min(1).max(255)).min(1),description:z39.string().max(255).nullable()}),ResolvedEnvironmentSchema=z39.object({branch:BranchSchema,environment:EnvironmentKeySchema})}});import{z as z40}from"zod";var NOTIFICATION_EVENTS,NotificationAudienceSchema,NotificationEventSchema,init_realtime=__esm({"../../packages/api-contracts/dist/esm/types/realtime.js"(){"use strict";init_env();NOTIFICATION_EVENTS={created:"notifications/created",stateChanged:"notifications/state-changed",unreadChanged:"notifications/unread-changed"},NotificationAudienceSchema=z40.object({projectId:z40.uuid(),userId:z40.string().min(1)}),NotificationEventSchema=z40.discriminatedUnion("type",[z40.object({type:z40.literal(NOTIFICATION_EVENTS.created),payload:NotificationAudienceSchema.extend({notificationId:z40.uuid()})}),z40.object({type:z40.literal(NOTIFICATION_EVENTS.stateChanged),payload:NotificationAudienceSchema.extend({notificationId:z40.uuid()})}),z40.object({type:z40.literal(NOTIFICATION_EVENTS.unreadChanged),payload:NotificationAudienceSchema})])}});import{z as z41}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=z41.preprocess(referenceValuePreprocess,z41.object({documentId:z41.uuid()})),ReferenceInputValueSchema=z41.preprocess(referenceValuePreprocess,z41.union([z41.object({documentId:z41.uuid()}),z41.object({slug:z41.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=z41.preprocess(polymorphicReferenceValuePreprocess,z41.object({contentType:z41.string().min(1),documentId:z41.uuid()})),PolymorphicReferenceInputValueSchema=z41.preprocess(polymorphicReferenceValuePreprocess,z41.union([z41.object({contentType:z41.string().min(1),documentId:z41.uuid()}),z41.object({contentType:z41.string().min(1),slug:z41.string().min(1)})]))}});import{z as z42}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,path53){let conditionPath=[...path53,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,path53)=>{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,path53));if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...path53,fieldName,variant.uid]);else walk(field.schema.fields,[...path53,fieldName])}},"walk");return walk(fields,[]),problems}function isBlocksUnion(schema){return"oneOf"in schema}function walkContentFields(fields,visit2){let walk=__name((currentFields,path53,structuredDepth,insideStructuredContent)=>{for(let[fieldName,field]of Object.entries(currentFields)){let fieldPath=[...path53,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_common2();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=z42.union([z42.object({field:z42.string().min(1),equals:z42.union([z42.string(),z42.number(),z42.boolean()])}).strict(),z42.object({field:z42.string().min(1),in:z42.array(z42.union([z42.string(),z42.number(),z42.boolean()])).min(1)}).strict()]),commonFieldShape={label:z42.string().min(1).optional(),description:z42.string().optional(),group:z42.union([z42.string().min(1),z42.array(z42.string().min(1)).min(1)]).optional(),editable:z42.boolean().optional(),required:z42.boolean().optional(),default:z42.unknown().optional(),showIf:z42.union([showIfClauseSchema,z42.array(showIfClauseSchema).min(1)]).optional(),showIfAny:z42.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=z42.object({...commonFieldShape,type:z42.enum(["string","text","richtext","media","number","boolean","date","datetime","json"]),min:z42.number().optional(),max:z42.number().optional(),minLength:z42.number().int().nonnegative().optional(),maxLength:z42.number().int().nonnegative().optional(),regex:z42.string().optional(),multiple:z42.boolean().optional(),allowedMimeTypes:z42.array(z42.string()).optional(),options:z42.array(z42.string().min(1)).min(1).optional(),unique:z42.boolean().optional(),i18n:z42.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=z42.object({...commonFieldShape,type:z42.literal("reference"),target:z42.string().regex(CONTENT_TYPE_NAME_PATTERN).optional(),targets:z42.array(z42.string().regex(CONTENT_TYPE_NAME_PATTERN)).min(1).optional(),many:z42.boolean().optional(),i18n:z42.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=z42.lazy(()=>contentFieldDefinitionSchema);__name(getConditionDefinition,"getConditionDefinition");__name(getConditionValues,"getConditionValues");__name(collectClauseProblems,"collectClauseProblems");__name(collectConditionProblems,"collectConditionProblems");blockFieldsSchema=z42.record(z42.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=z42.object({uid:z42.string().regex(CONTENT_TYPE_NAME_PATTERN),label:z42.string().min(1),description:z42.string().optional(),fields:blockFieldsSchema}).strict(),fixedBlocksSchema=z42.object({fields:blockFieldsSchema}).strict(),blocksSchema=z42.object({oneOf:z42.array(blockVariantSchema).min(1).max(MAX_BLOCK_VARIANTS)}).strict().superRefine((schema,ctx)=>{let seen=new Set;for(let[index2,variant]of schema.oneOf.entries())seen.has(variant.uid)&&ctx.addIssue({code:"custom",path:["oneOf",index2,"uid"],message:"Variant UIDs must be unique."}),seen.add(variant.uid)}),blocksFieldSchema=z42.object({...commonFieldShape,type:z42.literal("blocks"),min:z42.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),max:z42.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),schema:z42.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=z42.discriminatedUnion("type",[scalarFieldSchema,referenceFieldSchema,blocksFieldSchema]);__name(isBlocksUnion,"isBlocksUnion");__name(walkContentFields,"walkContentFields")}});import{z as z43}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","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_agent_trace_list","ops_agent_trace_read","ops_agent_trace_stats","ops_agent_health_read","ops_agent_provider_errors_read","ops_project_snapshot","ops_project_file_read","ops_project_file_write","ops_support_thread_read","ops_support_report_read","ops_support_report_change","ops_billing_read","ops_billing_entitlements_sync","ops_billing_cache_invalidate","ops_billing_legacy_premium_enroll","ops_billing_plan_transition_notices","ops_customer_registry_change","ops_investigation_change","ops_known_issue_change","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"],AuditActionSchema=z43.enum(AUDIT_ACTIONS),AUDIT_OUTCOMES=["success","denied","error"],AuditOutcomeSchema=z43.enum(AUDIT_OUTCOMES),AUDIT_ACTOR_KINDS=["user","agent","system"],AuditActorKindSchema=z43.enum(AUDIT_ACTOR_KINDS)}});import{z as z44}from"zod";var OPS_BACKEND_PROFILES,OpsBackendProfileSchema,OPS_PERMISSIONS,OpsPermissionSchema,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_CONTEXT_HEALTH_MAX_WINDOW_MS,OpsContextHealthInputSchema,OpsAgentTraceStatsGroupBySchema,OpsSpanTypeSchema,OpsAgentTraceStatsInputSchema,OpsAgentProviderErrorsInputSchema,OpsBillingCacheInvalidateInputSchema,OpsBillingEntitlementSyncInputSchema,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,OpsProjectFileWritePlanInputSchema,OpsProjectFileWriteApplyInputSchema,OpsProjectOperationApplyInputSchema,OpsProjectPublishApplyInputSchema,init_ops=__esm({"../../packages/api-contracts/dist/esm/types/ops.js"(){"use strict";init_env();OPS_BACKEND_PROFILES=["local","staging","prod"],OpsBackendProfileSchema=z44.enum(OPS_BACKEND_PROFILES),OPS_PERMISSIONS=["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:project:operate","ops:project:publish","ops:project:branch:discard","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:braintrust:read","ops:support:read","ops:support:write","ops:customers:read","ops:customers:write","ops:billing:read","ops:billing: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"],OpsPermissionSchema=z44.enum(OPS_PERMISSIONS),OPS_PERMISSION_PRESETS={support:["ops:project:read","ops:project:chat:read","ops:support:read","ops:support:write","ops:customers:read","ops:billing:read","ops:billing:write","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:validations:read","ops:notification:preview"],engineer:["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:project:operate","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:braintrust:read","ops:support:read","ops:support:write","ops:customers:read","ops:customers:write","ops:billing:read","ops:billing: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"],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=z44.object({permissions:z44.array(OpsPermissionSchema).min(1),backendProfiles:z44.array(OpsBackendProfileSchema).min(1),enabled:z44.boolean().default(!0)}),OpsServiceTokenInputSchema=z44.object({name:z44.string().trim().min(1).max(120),permissions:z44.array(OpsPermissionSchema).min(1),backendProfiles:z44.array(OpsBackendProfileSchema).min(1),expiresAt:z44.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=z44.object({importanceReason:z44.string().trim().min(1).max(1e3),ownerUserId:z44.string().trim().min(1).nullable().optional(),framework:z44.string().trim().max(120).nullable().optional(),packageManager:z44.enum(["npm","pnpm","yarn","bun"]).nullable().optional(),notes:z44.string().trim().max(5e3).nullable().optional()}),OPS_INVESTIGATION_STATUSES=["open","investigating","awaiting_approval","resolved","monitoring","closed"],OpsInvestigationStatusSchema=z44.enum(OPS_INVESTIGATION_STATUSES),OpsInvestigationCreateInputSchema=z44.object({projectId:z44.uuid(),title:z44.string().trim().min(1).max(240),userReport:z44.string().trim().max(1e4).nullable().optional()}),OpsInvestigationUpdateInputSchema=z44.object({status:OpsInvestigationStatusSchema.optional(),hypothesis:z44.string().trim().max(1e4).nullable().optional(),outcome:z44.string().trim().max(1e4).nullable().optional(),evidence:z44.array(z44.record(z44.string(),z44.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=z44.enum(OPS_KNOWN_ISSUE_STATUSES),OpsKnownIssueCreateInputSchema=z44.object({fingerprint:z44.string().trim().min(1).max(240),title:z44.string().trim().min(1).max(240),description:z44.string().trim().min(1).max(1e4),affectedVersions:z44.array(z44.string().trim().min(1).max(120)).max(100).default([]),detectionQueries:z44.array(z44.string().trim().min(1).max(2e3)).max(50).default([]),fixedVersion:z44.string().trim().min(1).max(64).nullable().optional(),workaround:z44.string().trim().min(1).max(1e4).nullable().optional(),status:OpsKnownIssueStatusSchema.default("open")}),OpsKnownIssueUpdateInputSchema=OpsKnownIssueCreateInputSchema.omit({fingerprint:!0}).extend({affectedVersions:z44.array(z44.string().trim().min(1).max(120)).max(100),detectionQueries:z44.array(z44.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=z44.enum(OPS_VALIDATION_OUTCOMES),OpsValidationRunInputSchema=z44.object({changeReference:z44.string().trim().min(1).max(500),outcome:OpsValidationOutcomeSchema,summary:z44.string().trim().min(1).max(1e4),evidence:z44.array(z44.record(z44.string(),z44.unknown())).max(100).default([])}),OpsNotificationPreviewInputSchema=z44.object({recipientEmail:z44.email().optional(),subject:z44.string().trim().min(1).max(200).default("An update from Fimo"),message:z44.string().trim().min(1).max(5e3),locale:z44.string().trim().min(2).max(20),reason:z44.string().trim().min(1).max(1e3),acknowledgePolicy:z44.literal(!0)}),OpsPylonIssueIdSchema=z44.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsPylonReasonSchema=z44.string().trim().min(1).max(1e3),OpsPylonMessageSchema=z44.string().trim().min(1).max(5e3),OpsPylonMessageIdSchema=z44.string().trim().min(1).max(255),OpsPylonEmailListSchema=z44.array(z44.email()).max(50).default([]),OpsPylonResolveInputSchema=z44.object({reason:OpsPylonReasonSchema}),OpsPylonNoteInputSchema=z44.object({message:OpsPylonMessageSchema,reason:OpsPylonReasonSchema}),OpsPylonReplyPreviewInputSchema=z44.object({messageId:OpsPylonMessageIdSchema,message:OpsPylonMessageSchema,toEmails:OpsPylonEmailListSchema,ccEmails:OpsPylonEmailListSchema,bccEmails:OpsPylonEmailListSchema,reason:OpsPylonReasonSchema,acknowledgePolicy:z44.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=z44.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsSentryResolveInputSchema=z44.object({reason:z44.string().trim().min(1).max(1e3)}),OpsTraceIdSchema=z44.string().trim().regex(/^[a-fA-F0-9]{32}$/).transform(value=>value.toLowerCase()),OpsTraceReadInputSchema=z44.object({projectId:z44.uuid(),from:z44.coerce.date(),to:z44.coerce.date(),reason:z44.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=z44.string().trim().regex(/^[A-Za-z0-9_-]{1,200}$/),OpsAgentInvocationStatusSchema=z44.enum(["planned","running","finished","cancelled","errored","refused"]),OpsAgentTraceListInputSchema=z44.object({projectId:z44.uuid().optional(),organizationId:z44.string().trim().min(1).max(255).optional(),agentKey:z44.string().trim().min(1).max(120).optional(),threadId:z44.uuid().optional(),status:OpsAgentInvocationStatusSchema.optional(),since:z44.coerce.date().optional(),minCostUsd:z44.coerce.number().min(0).optional(),tracedOnly:z44.coerce.boolean().default(!1),limit:z44.coerce.number().int().min(1).max(100).default(25),reason:z44.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=z44.object({limit:z44.coerce.number().int().min(1).max(500).default(200),reason:z44.string().trim().min(1).max(1e3)}),OpsSpanBodyEdgeSchema=z44.enum(["start","end"]).default("start"),OpsAgentTraceSpanInputSchema=z44.object({maxChars:z44.coerce.number().int().min(500).max(2e5).default(2e4),edge:OpsSpanBodyEdgeSchema,reason:z44.string().trim().min(1).max(1e3)}),OpsAgentTraceMessagesInputSchema=z44.object({messageIndex:z44.coerce.number().int().min(0).optional(),maxChars:z44.coerce.number().int().min(500).max(2e5).default(2e4),reason:z44.string().trim().min(1).max(1e3)}),OpsAgentHealthGroupBySchema=z44.enum(["agent","status","branch","project","day"]),OpsAgentHealthInputSchema=z44.strictObject({projectId:z44.uuid().optional(),organizationId:z44.string().trim().min(1).max(255).optional(),branch:BranchSchema.optional(),agentKey:z44.string().trim().min(1).max(120).optional(),since:z44.coerce.date(),until:z44.coerce.date().optional(),groupBy:OpsAgentHealthGroupBySchema.default("agent"),includeChildren:z44.coerce.boolean().default(!1),limit:z44.coerce.number().int().min(1).max(200).default(50),reason:z44.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_CONTEXT_HEALTH_MAX_WINDOW_MS=10080*60*1e3,OpsContextHealthInputSchema=z44.object({projectId:z44.uuid().optional(),since:z44.coerce.date(),until:z44.coerce.date().optional(),limit:z44.coerce.number().int().min(1).max(1e3).default(500),reason:z44.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"}),OpsAgentTraceStatsGroupBySchema=z44.enum(["model","provider","span","type"]),OpsSpanTypeSchema=z44.enum(["llm","tool","function","task","score","eval"]),OpsAgentTraceStatsInputSchema=z44.object({since:z44.coerce.date(),until:z44.coerce.date().optional(),groupBy:OpsAgentTraceStatsGroupBySchema.default("model"),spanType:OpsSpanTypeSchema.optional(),slowerThanSeconds:z44.coerce.number().min(0).optional(),limit:z44.coerce.number().int().min(1).max(200).default(50),reason:z44.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=z44.object({since:z44.coerce.date(),until:z44.coerce.date().optional(),model:z44.string().trim().min(1).max(120).optional(),provider:z44.string().trim().min(1).max(120).optional(),spanType:OpsSpanTypeSchema.optional(),before:z44.coerce.date().optional(),limit:z44.coerce.number().int().min(1).max(1e3).default(500),sampleChars:z44.coerce.number().int().min(200).max(2e4).default(1200),reason:z44.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"}),OpsBillingCacheInvalidateInputSchema=z44.object({reason:z44.string().trim().min(1).max(1e3)}),OpsBillingEntitlementSyncInputSchema=z44.object({reason:z44.string().trim().min(1).max(500),apply:z44.boolean().default(!1),confirmProduction:z44.boolean().default(!1),cursor:z44.string().min(1).optional(),batchSize:z44.number().int().min(1).max(100).default(50),concurrency:z44.number().int().min(1).max(10).default(2)}),OPS_PROJECT_OPERATIONS=["runtime.bump","preview.restart","production.publish","agent-branch.discard"],OpsProjectOperationKindSchema=z44.enum(OPS_PROJECT_OPERATIONS),ExactVersionSchema=z44.string().trim().regex(/^\d+\.\d+\.\d+$/,"Expected an exact version such as 0.11.0"),OpsProjectOperationPlanInputSchema=z44.discriminatedUnion("kind",[z44.object({kind:z44.literal("runtime.bump"),targetVersion:ExactVersionSchema}),z44.object({kind:z44.literal("preview.restart")})]),OPS_MIGRATIONS=["project.v3-to-v4"],OpsMigrationIdSchema=z44.enum(OPS_MIGRATIONS),OPS_MIGRATION_PLAN_STATUSES=["applicable","not_applicable","unknown"],OpsMigrationPlanStatusSchema=z44.enum(OPS_MIGRATION_PLAN_STATUSES),OPS_MIGRATION_CHANGE_ACTIONS=["create","rewrite","delete"],OpsMigrationChangeActionSchema=z44.enum(OPS_MIGRATION_CHANGE_ACTIONS),OpsMigrationDryRunInputSchema=z44.object({migrationId:OpsMigrationIdSchema,projectEnv:z44.string().trim().min(1).max(255).default("main"),reason:z44.string().trim().min(1).max(1e3)}),OpsProjectFilePathSchema=z44.string().trim().min(1).max(1024),OpsProjectFileReasonSchema=z44.string().trim().min(1).max(1e3),OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES=["pnpm-lock.yaml","bun.lockb","bun.lock","yarn.lock","package-lock.json"],OpsProjectPackageManagerInspectInputSchema=z44.object({reason:OpsProjectFileReasonSchema}),OpsProjectFileReadInputSchema=z44.object({path:OpsProjectFilePathSchema,reason:OpsProjectFileReasonSchema}),OpsProjectFileGlobInputSchema=z44.object({pattern:z44.string().min(1).max(300).optional(),limit:z44.coerce.number().int().min(1).max(2e3).default(2e3),reason:OpsProjectFileReasonSchema}),OpsProjectFileGrepInputSchema=z44.object({pattern:z44.string().min(1).max(200),include:z44.string().min(1).max(300).optional(),caseInsensitive:z44.boolean().default(!1),maxMatches:z44.coerce.number().int().min(1).max(200).default(100),reason:OpsProjectFileReasonSchema}),OpsProjectFileWritePlanInputSchema=z44.object({path:OpsProjectFilePathSchema,content:z44.string().max(256*1024),overwrite:z44.boolean().default(!1),reason:OpsProjectFileReasonSchema}),OpsProjectFileWriteApplyInputSchema=OpsProjectFileWritePlanInputSchema.extend({planHash:z44.string().trim().length(64),consentReference:z44.string().trim().min(1).max(200).optional()}),OpsProjectOperationApplyInputSchema=z44.intersection(OpsProjectOperationPlanInputSchema,z44.object({planHash:z44.string().trim().length(64),reason:z44.string().trim().min(1).max(1e3),consentReference:z44.string().trim().min(1).max(200).optional()})),OpsProjectPublishApplyInputSchema=z44.object({planHash:z44.string().trim().length(64),reason:z44.string().trim().min(1).max(1e3),consentReference:z44.string({error:"Publishing on a customer's behalf requires a recorded consent reference"}).trim().min(1).max(200)})}});import{z as z45}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[]}}function buildChatFormAnswerMetadata(block,answers,identity2={}){return ChatFormAnswerMetadataSchema.parse({...identity2,shortTitle:identity2.shortTitle??block.title,questions:block.steps.map((step,index2)=>{let selectedLabels=[...answers[index2]?.selectedLabels??[]],freeText=answers[index2]?.freeText.trim()??"";return{header:step.header,question:step.question,answer:formatChatFormAnswer(selectedLabels,freeText,step.body.type==="capabilities"?"No capabilities approved.":void 0),selectedLabels,freeText,skipped:!1}})})}function formatChatFormAnswer(selectedLabels,freeText,emptyFallback=""){let selection=selectedLabels.join(", "),context=freeText.trim();return selection&&context?`${selection}
190
190
  Additional context: ${context}`:selection||context||emptyFallback}var BlockSayActionSchema,BlockActionSchema,BlockAppActionSchema,BlockBaseSchema,ChoicesBlockSchema,TableRowTargetSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,ChatDisplayBlockSchema,TextBlockSchema,ChatFormStepIdSchema,CapabilityRequestSchema,CapabilitiesBlockSchema,ChatFormBodySchema,ChatFormStepSchema,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=z45.object({kind:z45.literal("say"),label:z45.string().trim().min(1).max(40,"Button labels must be 40 characters or fewer."),description:z45.string().min(1).max(240).optional(),message:z45.string().trim().min(1,"Every say button needs the sentence the user is saying by clicking.").max(2e3),style:z45.enum(["primary","default","ghost"]).optional()}),BlockActionSchema=BlockSayActionSchema,BlockAppActionSchema=z45.discriminatedUnion("command",[z45.object({kind:z45.literal("app"),command:z45.literal("publish")}).strict(),z45.object({kind:z45.literal("app"),command:z45.literal("connect"),integrationKey:z45.string().trim().min(1).max(80)}).strict()]),BlockBaseSchema=z45.object({fallback:z45.string().trim().min(1,"Every block needs a fallback line for clients that cannot render it.").max(500),title:z45.string().min(1).max(80).optional()}),ChoicesBlockSchema=BlockBaseSchema.extend({type:z45.literal("choices"),text:z45.string().max(500).optional(),actions:z45.array(BlockActionSchema).min(2,"A choices block needs 2 to 4 buttons.").max(4,"A choices block needs 2 to 4 buttons.")}),TableRowTargetSchema=z45.discriminatedUnion("kind",[z45.object({kind:z45.literal("entry"),collection:z45.string().min(1).max(80),entryId:z45.string().min(1).max(120)}),z45.object({kind:z45.literal("asset"),assetId:z45.string().min(1).max(120)}),z45.object({kind:z45.literal("url"),url:z45.url({protocol:/^https$/}).max(2e3)})]),TableBlockSchema=BlockBaseSchema.extend({type:z45.literal("table"),columns:z45.array(z45.object({label:z45.string().min(1).max(24)})).min(2).max(4),rows:z45.array(z45.object({cells:z45.array(z45.string().max(80)).min(2).max(4),target:TableRowTargetSchema.optional()})).min(1).max(8)}).superRefine((table,ctx)=>{table.rows.forEach((row2,index2)=>{row2.cells.length!==table.columns.length&&ctx.addIssue({code:"custom",path:["rows",index2,"cells"],message:`Every table row needs exactly ${table.columns.length} cells, one for each column.`})})}),CardsBlockSchema=BlockBaseSchema.extend({type:z45.literal("cards"),layout:z45.enum(["rail","stack"]).optional(),items:z45.array(z45.object({title:z45.string().min(1).max(60),subtitle:z45.string().min(1).max(120).optional(),imageUrl:z45.url({protocol:/^https$/}).max(2e3).optional(),action:BlockSayActionSchema.optional()})).min(2).max(6)}),EntryBlockSchema=BlockBaseSchema.extend({type:z45.literal("entry"),label:z45.string().min(1).max(80),collection:z45.string().min(1).max(80),entryId:z45.string().min(1).max(120),path:z45.string().min(1).max(120).optional()}),AssetsBlockSchema=BlockBaseSchema.extend({type:z45.literal("assets"),items:z45.array(z45.object({url:z45.url({protocol:/^https$/}).max(2e3),alt:z45.string().min(1).max(120),label:z45.string().min(1).max(60).optional()})).min(1).max(6)}),CalloutBlockSchema=BlockBaseSchema.extend({type:z45.literal("callout"),title:z45.string().min(1).max(80),text:z45.string().min(1).max(240),action:BlockAppActionSchema}).strict(),StatBlockSchema=BlockBaseSchema.extend({type:z45.literal("stat"),items:z45.array(z45.object({label:z45.string().min(1).max(24),value:z45.string().min(1).max(16),delta:z45.string().min(1).max(12).optional(),tone:z45.enum(["up","down","flat"]).optional()})).min(1).max(4)}),ChartBlockSchema=BlockBaseSchema.extend({type:z45.literal("chart"),unit:z45.string().min(1).max(12).optional(),points:z45.array(z45.object({label:z45.string().min(1).max(12),value:z45.number().finite().min(0).max(1e9)})).min(2).max(12)}),ChatDisplayBlockSchema=z45.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema]),TextBlockSchema=BlockBaseSchema.extend({type:z45.literal("text"),placeholder:z45.string().min(1).max(120).optional(),multiline:z45.boolean().optional()}).strict(),ChatFormStepIdSchema=z45.string().regex(/^[a-z0-9][a-z0-9_-]{0,39}$/,"Step ids are lowercase letters, digits, hyphen, or underscore (max 40)."),CapabilityRequestSchema=z45.object({id:ChatFormStepIdSchema,token:z45.string().regex(/^[a-z][a-z0-9_]*:[a-z][a-z0-9_]*(?::[a-z][a-z0-9_]*)?$/,"Capability tokens are verb:noun[:qualifier]."),label:z45.string().trim().min(1).max(60),reason:z45.string().trim().min(1).max(240)}).strict(),CapabilitiesBlockSchema=BlockBaseSchema.extend({type:z45.literal("capabilities"),items:z45.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=z45.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,AssetsBlockSchema,TextBlockSchema,CapabilitiesBlockSchema]);__name(getChatFormOptionLabels,"getChatFormOptionLabels");ChatFormStepSchema=z45.object({id:ChatFormStepIdSchema.optional(),question:z45.string().min(1).max(500),header:z45.string().min(1).max(25),body:ChatFormBodySchema,multiSelect:z45.boolean().optional(),recommended:z45.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"})),FormBlockSchema=BlockBaseSchema.extend({type:z45.literal("form"),steps:z45.array(ChatFormStepSchema).min(1).max(4)}),ChatBlockSchema=z45.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,FormBlockSchema]),ChatBlockToolInputSchema=z45.object({block:ChatBlockSchema}),ChatFormAnswerItemSchema=z45.object({stepId:ChatFormStepIdSchema.optional(),header:z45.string().min(1).max(25),question:z45.string().min(1).max(500),answer:z45.string().min(1),selectedLabels:z45.array(z45.string().min(1).max(120)).max(8),freeText:z45.string(),skipped:z45.boolean()}),ChatFormAnswerMetadataSchema=z45.object({toolCallId:z45.string().max(255).optional(),shortTitle:z45.string().max(80).optional(),questions:z45.array(ChatFormAnswerItemSchema).max(4)}),QUESTION_FORM_CONTRACT_VERSION=1,QuestionFormSnapshotSchema=z45.object({version:z45.literal(QUESTION_FORM_CONTRACT_VERSION),block:FormBlockSchema}).strict(),QuestionFormAnswerSnapshotSchema=z45.object({version:z45.literal(QUESTION_FORM_CONTRACT_VERSION),answer:ChatFormAnswerMetadataSchema}).strict();__name(buildChatFormAnswerMetadata,"buildChatFormAnswerMetadata");ChatFormResponseSchema=ChatFormAnswerMetadataSchema.extend({toolCallId:z45.string().min(1).max(255),partial:z45.boolean().optional()});__name(formatChatFormAnswer,"formatChatFormAnswer")}});import{z as z46}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 normalizeReportDocument(document){return document==null?null:StoredReportDocumentSchema.parse(document)}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(`
191
191
  `)}function reportSectionContentLength(blocks){return blocks.reduce((total,block)=>total+(block.title?.length??0)+derivedBlockBody(block).length+(block.fallback?.length??0),0)}function reportBlockMarkdown(block){let parts=[];switch(block.title&&parts.push(`## ${block.title}`),block.type){case"text":parts.push(block.text);break;case"metric":parts.push(block.items.map(item=>[`**${item.value}${item.unit??""}** \u2014 ${item.label}`,item.note].filter(Boolean).join(`
192
192
  `)).join(`
@@ -205,7 +205,7 @@ ${block.code}
205
205
 
206
206
  `)}function flattenReportDocument(document){let sections=[`# ${document.title}`,...document.brief.map(reportBlockMarkdown)];return document.details.length>0&&sections.push(...document.details.map(reportBlockMarkdown)),sections.join(`
207
207
 
208
- `)}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}function escapeCell(value){return value.replace(/\|/g,"\\|").replace(/\n/g," ")}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=z46.enum(REPORT_TONES),blockCommon={title:z46.string().trim().min(1).max(120).optional(),fallback:z46.string().trim().min(1).max(600).optional()},ReportTextBlockSchema=z46.object({type:z46.literal("text"),...blockCommon,text:z46.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=z46.object({type:z46.literal("metric"),...blockCommon,items:z46.array(z46.object({value:z46.string().trim().min(1).max(24),unit:z46.string().trim().min(1).max(12).optional(),label:z46.string().trim().min(1).max(160),note:z46.string().trim().min(1).max(300).optional()}).strict()).min(1).max(3),spark:z46.array(z46.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=z46.enum(REPORT_VIZ_KINDS),ReportVizBlockSchema=z46.object({type:z46.literal("viz"),...blockCommon,kind:ReportVizKindSchema.describe("bar: compare named quantities. line/area: change across an ordered sequence. composition: parts of one whole."),unit:z46.string().trim().min(1).max(12).optional(),points:z46.array(z46.object({label:z46.string().trim().min(1).max(24),value:z46.number().finite(),highlight:z46.boolean().optional()}).strict()).min(2).max(24),caption:z46.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,index2)=>{point.value<0&&ctx.addIssue({code:"custom",path:["points",index2,"value"],message:"A composition holds parts of one whole, so every value must be zero or more."})})}),ReportListBlockSchema=z46.object({type:z46.literal("list"),...blockCommon,items:z46.array(z46.object({tone:ReportToneSchema.optional(),label:z46.string().trim().min(1).max(24).optional(),heading:z46.string().trim().min(1).max(160).describe("The human-visible result, action, or consequence, readable on its own."),body:z46.string().trim().min(1).max(1200).optional().describe("One short explanation of why it matters."),evidence:z46.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=z46.object({type:z46.literal("table"),...blockCommon,columns:z46.array(z46.object({label:z46.string().trim().min(1).max(32)}).strict()).min(1).max(6),rows:z46.array(z46.object({cells:z46.array(z46.object({text:z46.string().trim().max(160),tone:ReportToneSchema.optional()}).strict()).min(1).max(6)}).strict()).min(1).max(40),caption:z46.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,index2)=>{row2.cells.length!==block.columns.length&&ctx.addIssue({code:"custom",path:["rows",index2,"cells"],message:`Every row needs exactly ${block.columns.length} cells, one per column.`})})}),ReportMediaBlockSchema=z46.object({type:z46.literal("media"),...blockCommon,assetId:z46.uuid(),alt:z46.string().trim().min(1).max(300),caption:z46.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=z46.object({type:z46.literal("links"),...blockCommon,items:z46.array(z46.object({label:z46.string().trim().min(1).max(120),url:z46.url({protocol:/^https$/}).max(2e3),description:z46.string().trim().min(1).max(300).optional()}).strict()).min(1).max(8)}).strict().describe("A destination, evidence source, or next action worth opening."),ReportCodeBlockSchema=z46.object({type:z46.literal("code"),...blockCommon,language:z46.string().regex(/^[a-z0-9+#-]{1,20}$/,"A language is a short lowercase token, e.g. ts, json, bash.").optional(),code:z46.string().min(1).max(REPORT_CODE_MAX_CHARS),caption:z46.string().trim().min(1).max(600).optional()}).strict().describe("An exact snippet that is decisive evidence. Never a log dump."),ReportBlockSchema=z46.discriminatedUnion("type",[ReportTextBlockSchema,ReportMetricBlockSchema,ReportListBlockSchema,ReportTableBlockSchema,ReportVizBlockSchema,ReportMediaBlockSchema,ReportLinksBlockSchema,ReportCodeBlockSchema]),ReportDocumentSchema=z46.object({title:z46.string().trim().min(1).max(REPORT_TITLE_MAX_CHARS),brief:z46.array(ReportBlockSchema).min(1).max(REPORT_BRIEF_MAX_BLOCKS),details:z46.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=z46.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=z46.preprocess(normalizeStoredBlocks,ReportBriefSchema),StoredReportDocumentSchema=z46.preprocess(normalizeStoredDocument,ReportDocumentSchema);__name(normalizeReportDocument,"normalizeReportDocument");__name(derivedBlockBody,"derivedBlockBody");__name(reportSectionContentLength,"reportSectionContentLength");__name(reportBlockMarkdown,"reportBlockMarkdown");__name(flattenReportDocument,"flattenReportDocument");__name(formatReportNumber,"formatReportNumber");__name(formatReportValue,"formatReportValue");__name(escapeCell,"escapeCell")}});import{z as z47}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=z47.enum(["astro","nextjs","nuxtjs","react-router","remix","sveltekit","vite","vue"]),FimoRuntimeCommandsSchema=z47.object({dev:z47.string().trim().min(1).optional(),build:z47.string().trim().min(1).optional(),install:z47.string().trim().min(1).optional()}).strict(),FimoRuntimeConfigSchema=z47.object({framework:FimoFrameworkSchema.optional(),outputDirectory:z47.string().trim().min(1).optional(),commands:FimoRuntimeCommandsSchema.optional()}).strict(),FimoHostingConditionSchema=z47.object({type:z47.enum(["header","cookie","query","host"]),key:z47.string().min(1).optional(),value:z47.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:z47.array(FimoHostingConditionSchema).min(1).optional(),missing:z47.array(FimoHostingConditionSchema).min(1).optional()},FimoHostingRewriteSchema=z47.object({source:z47.string().min(1),destination:z47.string().min(1),...conditionFields}),FimoHostingRedirectSchema=z47.object({source:z47.string().min(1),destination:z47.string().min(1),permanent:z47.boolean().optional(),statusCode:z47.union([z47.literal(301),z47.literal(302),z47.literal(307),z47.literal(308)]).optional(),...conditionFields}),FimoHostingHeaderSchema=z47.object({source:z47.string().min(1),headers:z47.array(z47.object({key:z47.string().min(1),value:z47.string()})).min(1),...conditionFields}),FimoHostingConfigSchema=z47.object({rewrites:z47.array(FimoHostingRewriteSchema).optional(),redirects:z47.array(FimoHostingRedirectSchema).optional(),headers:z47.array(FimoHostingHeaderSchema).optional(),cleanUrls:z47.boolean().optional(),trailingSlash:z47.boolean().optional()}).strict(),FimoAppConfigSchema=z47.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 pageRouteParamNames(path53){return[...path53.matchAll(/:([^/*]+)\*?/g)].map(match=>match[1])}function pageContentParamNames(path53){return pageRouteParamNames(path53).filter(param=>!LOCALE_PARAM_NAME.test(param))}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";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 z48}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,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_common2();init_env();init_create_dto();init_response();PROJECT_CHAT_MANUAL_MODEL_IDS=["anthropic/claude-opus-5","anthropic/claude-sonnet-5","anthropic/claude-fable-5","openai/gpt-5.6-luna","openai/gpt-5.6-terra","openai/gpt-5.6-sol","xai/grok-4.6","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=z48.enum(PROJECT_CHAT_MANUAL_MODEL_IDS),ProjectDTOSchema=BaseEntitySchema.extend({name:z48.string(),displayName:z48.string().nullable(),subdomain:z48.string().nullable().optional(),subdomainUpdatedAt:z48.date().nullable().optional(),organizationId:z48.string().nullable(),createdBy:z48.string().nullable(),defaultBranch:BranchSchema.default(DEFAULT_BRANCH),productionSourceBranch:BranchSchema.default(DEFAULT_BRANCH),previewEnabled:z48.boolean().default(!0),enabledChatModels:z48.array(ProjectChatManualModelIdSchema).nullable().default(null),status:ProjectStatusSchema,creationStatus:z48.string(),thumbnailUrl:z48.string().nullable(),publishedThumbnailUrl:z48.string().nullable(),category:z48.string().nullable(),snapshotUrl:z48.string().startsWith("/").optional(),appUrl:z48.string().nullable(),lastPublishedAt:z48.coerce.date()}),ProjectDTO=createDTO(ProjectDTOSchema),UpdateProjectSettingsRequestSchema=z48.object({name:z48.string().optional(),previewEnabled:z48.boolean().optional(),enabledChatModels:z48.array(ProjectChatManualModelIdSchema).optional(),productionSourceBranch:BranchSchema.optional(),syncConfig:z48.boolean().optional()}).strict(),ProjectWithPlanDTOSchema=ProjectDTOSchema.extend({planTier:z48.string().nullable()}),ProjectWithPlanDTO=createDTO(ProjectWithPlanDTOSchema),ProjectSummaryDTOSchema=z48.object({id:z48.uuid(),name:z48.string(),displayName:z48.string().nullable(),thumbnailUrl:z48.string().nullable(),category:z48.string().nullable()}),ProjectSummaryDTO=createDTO(ProjectSummaryDTOSchema),ProjectUserDTOSchema=z48.object({id:z48.string(),name:z48.string(),avatar:z48.string().nullable(),color:z48.object({bg:z48.string(),text:z48.string()})}),ProjectUserDTO=createDTO(ProjectUserDTOSchema),ProjectFileDTOSchema=z48.object({path:z48.string(),content:z48.string()}),ProjectFileDTO=createDTO(ProjectFileDTOSchema),ProjectChatMessageRole=z48.enum(["user","assistant","system"]),ProjectMessageBaseSchema=z48.object({id:z48.string(),messageId:z48.string(),versionId:z48.string().nullable(),role:ProjectChatMessageRole,parts:z48.array(z48.any()),createdAt:z48.coerce.date()}),MessageUserMetadataSchema=z48.object({id:z48.string(),name:z48.string().nullable().optional(),image:z48.string().nullable().optional()}).nullable().optional(),ProjectMessagePublicDTOSchema=ProjectMessageBaseSchema.extend({credits:z48.number(),metadata:z48.object({user:MessageUserMetadataSchema,changeManifest:z48.array(z48.any()).optional(),questionAnswer:ChatFormAnswerMetadataSchema.optional()}).nullable().optional()}),ProjectMessagePublicDTO=createDTO(ProjectMessagePublicDTOSchema),ProjectMessageDTOSchema=ProjectMessagePublicDTOSchema,ProjectVersionDTOSchema=z48.object({versionId:z48.uuid(),commitHash:z48.string(),name:z48.string(),description:z48.string().nullable(),kind:z48.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),createdAt:CommonSchemas.timestamp,expiresAt:CommonSchemas.timestamp}),ProjectVersionDTO=createDTO(ProjectVersionDTOSchema),ProjectHistoryUsageDTOSchema=z48.object({versionCount:z48.number().int().nonnegative(),snapshotBytes:z48.number().int().nonnegative()}),ProjectVersionPageDTOSchema=createCursorPageDataSchema(ProjectVersionDTOSchema),ProjectVersionPageDTO=createDTO(ProjectVersionPageDTOSchema),ProjectHistorySummaryDTOSchema=z48.object({usage:ProjectHistoryUsageDTOSchema,retentionDays:z48.number().int().positive()}),ProjectHistorySummaryDTO=createDTO(ProjectHistorySummaryDTOSchema),ProjectDocumentContentDTOSchema=z48.object({content:z48.string()}),ProjectDocumentContentDTO=createDTO(ProjectDocumentContentDTOSchema),ProjectListResponseSchema=createResponseSchema2(z48.array(ProjectDTOSchema)),ProjectVersionResponseSchema=createResponseSchema2(ProjectVersionDTOSchema),ProjectVersionPageResponseSchema=createCursorPaginatedResponseSchema(ProjectVersionDTOSchema),ProjectHistorySummaryResponseSchema=createResponseSchema2(ProjectHistorySummaryDTOSchema),VersionMutationResponseSchema=createResponseSchema2(z48.object({success:z48.boolean(),message:z48.string().optional(),warning:z48.string().optional(),durationMs:z48.number().int().nonnegative().optional()})),ProjectPublicationStateDTOSchema=z48.object({isPublished:z48.boolean(),publishedAt:CommonSchemas.timestamp.nullable(),publishedVersion:z48.string().nullable()}),ProjectPublicationStateDTO=createDTO(ProjectPublicationStateDTOSchema),PublishProjectRequestSchema=z48.object({label:z48.string().trim().min(1).max(120).optional(),notes:z48.string().max(2e4).optional()}).strict(),PublicationMutationDTOSchema=z48.object({success:z48.boolean(),message:z48.string().optional(),publishedAt:CommonSchemas.timestamp.optional(),firstPublish:z48.boolean(),publicationId:z48.string().optional()}),PublicationMutationDTO=createDTO(PublicationMutationDTOSchema),ProjectPublicationStateResponseSchema=createResponseSchema2(ProjectPublicationStateDTOSchema),PublicationMutationResponseSchema=createResponseSchema2(PublicationMutationDTOSchema),ProjectResponseSchema=createResponseSchema2(ProjectDTOSchema),ProjectWithPlanResponseSchema=createResponseSchema2(ProjectWithPlanDTOSchema)}});import{z as z49}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_common2();init_env();init_environment();init_create_dto();init_response();ProjectBranchStatusSchema=z49.enum(["provisioning","active","deleted"]),ProjectBranchKindSchema=z49.enum(["user","agent-session"]),ProjectBranchDTOSchema=BaseEntitySchema.extend({projectId:z49.uuid(),branch:BranchSchema.optional(),status:ProjectBranchStatusSchema,kind:ProjectBranchKindSchema,parentBranch:BranchSchema.nullable().optional(),createdBy:z49.string().nullable(),deletedAt:z49.coerce.date().nullable(),env:BranchSchema,parentEnv:BranchSchema.nullable()}),ProjectBranchDTO=createDTO(ProjectBranchDTOSchema),ResolvedBranchEnvironmentDTOSchema=z49.object({id:z49.union([z49.literal(PREVIEW_ENVIRONMENT_KEY),z49.uuid()]),name:z49.string()}),ProjectBranchListItemDTOSchema=ProjectBranchDTOSchema.extend({resolvedEnvironment:ResolvedBranchEnvironmentDTOSchema.nullable()}),ProjectBranchListItemDTO=createDTO(ProjectBranchListItemDTOSchema),CreateProjectBranchRequestInputSchema=z49.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=z49.object({from:BranchSchema.optional()}),ProjectBranchResponseSchema=createResponseSchema2(ProjectBranchDTOSchema),ProjectBranchesListResponseSchema=createResponseSchema2(z49.array(ProjectBranchListItemDTOSchema)),BranchSurfaceDiffSchema=z49.object({surface:z49.enum(["code","schemas","content","translations","assets","forms"]),status:z49.enum(["unchanged","changed","conflicting","missing-on-target"]),changedCount:z49.number().int().nonnegative(),conflictCount:z49.number().int().nonnegative()}),BranchDiffResultSchema=z49.object({fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),generatedAt:z49.coerce.date(),surfaces:z49.array(BranchSurfaceDiffSchema),fromEnv:BranchSchema,toEnv:BranchSchema}),BranchDiffResultDTO=createDTO(BranchDiffResultSchema)}});import{z as z50}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=z50.object({projectId:z50.uuid(),name:z50.string()}),ProductionEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z50.literal(PRODUCTION_ENVIRONMENT_KEY),kind:z50.literal("production"),sourceBranch:BranchSchema,isPublished:z50.boolean(),url:z50.string().nullable()}),PreviewEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z50.literal(PREVIEW_ENVIRONMENT_KEY),kind:z50.literal("preview"),matchedBranchCount:z50.number().int().nonnegative()}),CustomProjectEnvironmentDTOSchema=CustomEnvironmentSchema.extend({kind:z50.literal("custom"),matchedBranchCount:z50.number().int().nonnegative()}),ProjectEnvironmentDTOSchema=z50.discriminatedUnion("kind",[ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema]),ProjectEnvironmentDTO=createDTO(ProjectEnvironmentDTOSchema),CreateProjectEnvironmentRequestSchema=CustomEnvironmentSchema.pick({name:!0,branchPatterns:!0,description:!0}).extend({description:z50.string().trim().max(255).nullable().optional().default(null)}),ProjectEnvironmentsListResponseSchema=createResponseSchema2(z50.array(ProjectEnvironmentDTOSchema)),ProjectEnvironmentResponseSchema=createResponseSchema2(ProjectEnvironmentDTOSchema),DeleteProjectEnvironmentResultSchema=z50.object({deletedId:z50.uuid()}),DeleteProjectEnvironmentResponseSchema=createResponseSchema2(DeleteProjectEnvironmentResultSchema)}});import{z as z51}from"zod";var ProjectSecretsListQuerySchema,ProjectSecretWriteRequestSchema,CreateProjectSecretRequestSchema,DeleteProjectSecretQuerySchema,ProjectSecretMetadataDTOSchema,ProjectSecretMetadataDTO,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=z51.object({kind:z51.enum(["variable","secret"]).optional(),environment:EnvironmentKeySchema}),ProjectSecretWriteRequestSchema=z51.object({kind:z51.enum(["variable","secret"]),value:z51.string(),environment:EnvironmentKeySchema}),CreateProjectSecretRequestSchema=ProjectSecretWriteRequestSchema.extend({key:z51.string().min(1).max(255)}),DeleteProjectSecretQuerySchema=z51.object({kind:z51.enum(["variable","secret"]),environment:EnvironmentKeySchema}),ProjectSecretMetadataDTOSchema=z51.object({id:z51.uuid(),projectId:z51.uuid(),key:z51.string(),kind:z51.literal("secret"),exposure:z51.literal("private"),environment:EnvironmentKeySchema,maskedValue:z51.string().optional(),createdAt:z51.date().transform(value=>value.toISOString()),updatedAt:z51.date().transform(value=>value.toISOString())}),ProjectSecretMetadataDTO=createDTO(ProjectSecretMetadataDTOSchema),ProjectSecretsListResponseSchema=createResponseSchema2(z51.array(ProjectSecretMetadataDTOSchema)),ProjectSecretResponseSchema=createResponseSchema2(ProjectSecretMetadataDTOSchema)}});import{z as z52}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=z52.object({success:z52.literal(!0),downloadUrl:z52.string(),expiresAt:z52.string(),fileSize:z52.number(),duration:z52.number()}),ExportProjectResponseDTO=createDTO(ExportProjectResponseDTOSchema),ImportProjectResultDTOSchema=z52.object({success:z52.literal(!0),projectId:z52.string(),projectName:z52.string(),displayName:z52.string(),projectUrl:z52.string(),duration:z52.number()}),ImportProjectResultDTO=createDTO(ImportProjectResultDTOSchema),ImportPreviewCountsDTOSchema=z52.object({contentTypes:z52.number(),entries:z52.number(),assets:z52.number(),translations:z52.number(),forms:z52.number(),codeFiles:z52.number(),assetFiles:z52.number()}),ImportPreviewSurfaceDTOSchema=z52.object({name:z52.string(),included:z52.boolean(),count:z52.number().optional(),note:z52.string().optional()}),ImportPreviewDTOSchema=z52.object({projectName:z52.string(),displayName:z52.string().nullable(),category:z52.string().nullable(),exportedAt:z52.string(),version:z52.string(),envScope:z52.enum(["main","tree"]),counts:ImportPreviewCountsDTOSchema,surfaces:z52.array(ImportPreviewSurfaceDTOSchema),fileSize:z52.number(),fileName:z52.string()}),ImportPreviewDTO=createDTO(ImportPreviewDTOSchema),ImportPreviewResponseDTOSchema=z52.object({success:z52.literal(!0),preview:ImportPreviewDTOSchema}),ImportPreviewResponseDTO=createDTO(ImportPreviewResponseDTOSchema)}});import{z as z53}from"zod";var TriggerKindSchema,ManualTriggerSchema2,ScheduleTriggerSchema,WebhookTriggerSchema2,TriggerSchema2,init_agent_trigger_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-trigger.dto.js"(){"use strict";TriggerKindSchema=z53.enum(["manual","schedule","webhook"]),ManualTriggerSchema2=z53.object({type:z53.literal("manual")}),ScheduleTriggerSchema=z53.object({type:z53.literal("schedule"),cron:z53.string().min(1,"cron expression required").regex(/^\s*\S+\s+\S+\s+\S+\s+\S+\s+\S+\s*$/,"cron must be a 5-field expression"),tz:z53.string().optional()}),WebhookTriggerSchema2=z53.object({type:z53.literal("webhook"),path:z53.string().min(1).max(120).regex(/^[a-z0-9][a-z0-9_/-]*$/i,"webhook path must be lowercase alphanumeric with optional / - _")}),TriggerSchema2=z53.discriminatedUnion("type",[ManualTriggerSchema2,ScheduleTriggerSchema,WebhookTriggerSchema2])}});import{z as z54}from"zod";var CapabilityRiskTierSchema,CapabilitySummaryEntrySchema,AgentSubAgentSummarySchema,AgentInstallSummaryDTOSchema,AgentInstallSummaryDTO,AgentInstallSummaryResponseSchema,init_agent_install_summary_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-install-summary.dto.js"(){"use strict";init_create_dto();init_response();CapabilityRiskTierSchema=z54.enum(["low","medium","high","critical"]),CapabilitySummaryEntrySchema=z54.object({token:z54.string().min(1),risk:CapabilityRiskTierSchema,description:z54.string()}),AgentSubAgentSummarySchema=z54.object({name:z54.string().min(1),grant:z54.enum(["inherit","explicit"]),effectiveCaps:z54.array(z54.string().min(1))}),AgentInstallSummaryDTOSchema=z54.object({agentName:z54.string().min(1),env:z54.string().min(1),declaredCapabilities:z54.array(CapabilitySummaryEntrySchema),transitiveCapabilities:z54.array(CapabilitySummaryEntrySchema),highRiskCapabilities:z54.array(CapabilitySummaryEntrySchema),criticalCapabilities:z54.array(CapabilitySummaryEntrySchema),subAgents:z54.array(AgentSubAgentSummarySchema),declaresDelegate:z54.boolean(),cycle:z54.array(z54.string()).nullable(),missingSubAgents:z54.array(z54.string()),warnings:z54.array(z54.string())}),AgentInstallSummaryDTO=createDTO(AgentInstallSummaryDTOSchema),AgentInstallSummaryResponseSchema=createResponseSchema2(AgentInstallSummaryDTOSchema)}});import{z as z55}from"zod";var AgentListItemTriggerSchema,AgentListItemTriggerStateSchema,AgentListItemDTOSchema,AgentListItemDTO,AgentListResponseSchema,init_agent_list_item_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-list-item.dto.js"(){"use strict";init_create_dto();init_response();init_agent_install_summary_dto();init_agent_trigger_dto();AgentListItemTriggerSchema=z55.object({kind:TriggerKindSchema,summary:z55.string()}),AgentListItemTriggerStateSchema=z55.object({triggerIndex:z55.number().int().nonnegative(),triggerKind:TriggerKindSchema,enabled:z55.boolean(),wired:z55.boolean(),syncError:z55.string().nullable()}),AgentListItemDTOSchema=z55.object({name:z55.string().min(1),description:z55.string().nullable(),goalFirstLine:z55.string().nullable(),declaredCapabilities:z55.array(CapabilitySummaryEntrySchema),triggers:z55.array(AgentListItemTriggerSchema),triggerStates:z55.array(AgentListItemTriggerStateSchema),paused:z55.boolean(),nextRunAt:z55.coerce.date().nullable()}),AgentListItemDTO=createDTO(AgentListItemDTOSchema),AgentListResponseSchema=createResponseSchema2(z55.array(AgentListItemDTOSchema))}});import{z as z56}from"zod";var AgentControlResultSchema,AgentControlResultDTO,AgentControlResultResponseSchema,init_agent_control_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-control.dto.js"(){"use strict";init_create_dto();init_response();AgentControlResultSchema=z56.object({paused:z56.boolean(),cancelledRuns:z56.number().int().nonnegative(),stopIncomplete:z56.boolean()}),AgentControlResultDTO=createDTO(AgentControlResultSchema),AgentControlResultResponseSchema=createResponseSchema2(AgentControlResultSchema)}});import{z as z57}from"zod";var ManualRunRequestSchema,DispatchSkippedSchema,DispatchAcceptedSchema,ManualRunResponseSchema,init_agent_run_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-run.dto.js"(){"use strict";init_response();ManualRunRequestSchema=z57.object({args:z57.unknown().optional(),requestId:z57.string().min(1).max(128).optional()}),DispatchSkippedSchema=z57.object({skipped:z57.enum(["no-manual-trigger","trigger-not-wired","agent-paused","run-in-progress","task-branch-budget"])}),DispatchAcceptedSchema=z57.object({sessionId:z57.string().min(1)}),ManualRunResponseSchema=createResponseSchema2(z57.union([DispatchAcceptedSchema,DispatchSkippedSchema]))}});import{z as z58}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,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=z58.enum(["code","schemas","content","translations","assets","forms"]),SURFACE_NAMES=["code","schemas","content","translations","assets","forms"],SurfaceDeltaVerbSchema=z58.enum(["added","removed","changed","conflict"]),SurfaceItemOriginSchema=z58.enum(["committed-ahead","local-uncommitted"]),SurfaceDeltaItemSchema=z58.object({verb:SurfaceDeltaVerbSchema,key:z58.string(),detail:z58.string().optional(),origin:SurfaceItemOriginSchema.optional(),meta:z58.record(z58.string(),z58.unknown()).optional()}),PerSurfaceDeltaSchema=z58.object({surface:SurfaceNameSchema,status:z58.enum(["ok","timed_out","failed","unchanged"]),durationMs:z58.number().int().nonnegative().optional(),changedCount:z58.number().int().nonnegative(),conflictCount:z58.number().int().nonnegative(),items:z58.array(SurfaceDeltaItemSchema).max(1e3).optional(),truncated:z58.boolean().optional(),error:z58.string().optional()}),CrossSurfaceFindingSchema=z58.object({id:z58.string(),kind:z58.string(),description:z58.string(),severity:z58.enum(["warning","error"]),source:z58.object({surface:SurfaceNameSchema,key:z58.string()}),target:z58.object({surface:SurfaceNameSchema,key:z58.string()}),actions:z58.array(z58.enum(["restore-target","fix-source","ignore"])).min(1)}),StatusReportSchema=z58.object({branch:BranchSchema.optional(),env:BranchSchema,vs:BranchSchema,syncState:z58.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:z58.coerce.date(),surfaces:z58.array(PerSurfaceDeltaSchema),agents:z58.array(z58.object({id:z58.string(),name:z58.string(),status:z58.enum(["active","paused","failed"]),lastRunAt:z58.coerce.date().nullable()})).optional(),crossSurface:z58.array(CrossSurfaceFindingSchema).optional()}),StatusReportDTO=createDTO(StatusReportSchema),StatusReportResponseSchema=createResponseSchema2(StatusReportSchema),DiffReportSchema=z58.object({fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),fromEnv:BranchSchema,toEnv:BranchSchema,generatedAt:z58.coerce.date(),surfaces:z58.array(PerSurfaceDeltaSchema),crossSurface:z58.array(CrossSurfaceFindingSchema).optional(),fingerprint:z58.string()}),DiffReportDTO=createDTO(DiffReportSchema),DiffReportResponseSchema=createResponseSchema2(DiffReportSchema),CodeFileDiffSchema=z58.object({path:z58.string(),state:z58.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z58.string(),additions:z58.number().int().nonnegative(),deletions:z58.number().int().nonnegative()}),CodeFileDiffDTO=createDTO(CodeFileDiffSchema),CodeFileDiffResponseSchema=createResponseSchema2(CodeFileDiffSchema),CodeConflictBlobSchema=z58.object({oid:z58.string().optional(),content:z58.string().optional(),truncated:z58.boolean(),binary:z58.boolean()}),CodeConflictDetailSchema=z58.object({path:z58.string(),base:CodeConflictBlobSchema,ours:CodeConflictBlobSchema,theirs:CodeConflictBlobSchema,result:CodeConflictBlobSchema,sourceTipSha:z58.string(),targetTipSha:z58.string(),mergeBaseSha:z58.string().optional()}),CodeConflictDetailDTO=createDTO(CodeConflictDetailSchema),CodeConflictDetailResponseSchema=createResponseSchema2(CodeConflictDetailSchema),ContentEntrySnapshotSchema=z58.object({id:z58.string(),slug:z58.string(),contentType:z58.string(),data:z58.record(z58.string(),z58.unknown()),updatedAt:z58.coerce.date()}),ContentRowDiffSchema=z58.object({collection:z58.string(),rowId:z58.string(),parent:ContentEntrySnapshotSchema.nullable(),child:ContentEntrySnapshotSchema.nullable()}),ContentRowDiffDTO=createDTO(ContentRowDiffSchema),ContentRowDiffResponseSchema=createResponseSchema2(ContentRowDiffSchema),SchemaTypeSnapshotSchema=z58.object({name:z58.string(),label:z58.string(),isSingleton:z58.boolean(),fields:z58.record(z58.string(),z58.unknown())}),SchemaTypeDiffSchema=z58.object({typeName:z58.string(),parent:SchemaTypeSnapshotSchema.nullable(),child:SchemaTypeSnapshotSchema.nullable()}),SchemaTypeDiffDTO=createDTO(SchemaTypeDiffSchema),SchemaTypeDiffResponseSchema=createResponseSchema2(SchemaTypeDiffSchema),AssetSnapshotSchema=z58.object({id:z58.string(),name:z58.string(),type:z58.enum(["file","folder"]),mimeType:z58.string().nullable(),storageKey:z58.string().nullable(),url:z58.string().nullable(),fileSize:z58.number().nullable(),width:z58.number().nullable(),height:z58.number().nullable(),altText:z58.string().nullable(),caption:z58.string().nullable(),createdAt:z58.coerce.date(),updatedAt:z58.coerce.date()}),AssetDiffSchema=z58.object({assetId:z58.string(),parent:AssetSnapshotSchema.nullable(),child:AssetSnapshotSchema.nullable()}),AssetDiffDTO=createDTO(AssetDiffSchema),AssetDiffResponseSchema=createResponseSchema2(AssetDiffSchema),TranslationRowDiffSchema=z58.object({locale:z58.string(),key:z58.string(),parent:z58.string().nullable(),child:z58.string().nullable()}),TranslationRowDiffDTO=createDTO(TranslationRowDiffSchema),TranslationRowDiffResponseSchema=createResponseSchema2(TranslationRowDiffSchema),FormSchemaSnapshotSchema=z58.object({formName:z58.string(),label:z58.string().nullable(),schemaFingerprint:z58.string(),fields:z58.record(z58.string(),z58.unknown()),settings:z58.record(z58.string(),z58.unknown()).optional()}),FormSchemaDiffSchema=z58.object({formName:z58.string(),parent:FormSchemaSnapshotSchema.nullable(),child:FormSchemaSnapshotSchema.nullable()}),FormSchemaDiffDTO=createDTO(FormSchemaDiffSchema),FormSchemaDiffResponseSchema=createResponseSchema2(FormSchemaDiffSchema),CONFLICT_KINDS=["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"],ConflictKindSchema=z58.enum(CONFLICT_KINDS),ConflictSchema=z58.object({surface:SurfaceNameSchema,key:z58.string(),kind:ConflictKindSchema.optional(),description:z58.string(),parentValue:z58.unknown().optional(),childValue:z58.unknown().optional(),conflictingFields:z58.array(z58.string()).optional(),code:z58.object({path:z58.string(),unresolvable:z58.boolean().optional(),reason:z58.string().optional()}).optional()}),FieldPickSchema=z58.object({field:z58.string(),choice:z58.enum(["parent","child","pick","ai-pick"]),pickedValue:z58.unknown().optional(),aiSessionId:z58.string().optional()}),ConflictResolutionSchema=z58.object({surface:SurfaceNameSchema,key:z58.string(),choice:z58.enum(["parent","child","pick"]),pickedValue:z58.unknown().optional(),fieldPicks:z58.array(FieldPickSchema).optional()}),MergeResultSchema=z58.object({ok:z58.boolean(),mergeId:z58.string().uuid(),fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),fromEnv:BranchSchema,toEnv:BranchSchema,applied:z58.array(z58.object({surface:SurfaceNameSchema,count:z58.number().int().nonnegative()})),conflicts:z58.array(ConflictSchema).optional(),summary:z58.string().optional()}),MergeResultDTO=createDTO(MergeResultSchema),MergeResultResponseSchema=createResponseSchema2(MergeResultSchema),EngineStrategySchema=z58.enum(["ff-only","auto","theirs","ours","manual"]),VendorStrategySchema=z58.enum(["ff_only","ff_prefer","merge"]),MergeStrategySchema=z58.object({engine:EngineStrategySchema.optional(),vendor:VendorStrategySchema.optional(),squash:z58.boolean().optional()}),ResolvedStrategySchema=z58.object({engine:EngineStrategySchema,vendor:VendorStrategySchema,squash:z58.boolean()}),MergeRequestSchema=z58.object({from:BranchSchema,allowDirectMerge:z58.boolean().optional(),strategy:MergeStrategySchema.optional()}),MergeInitiateResultSchema=z58.object({mergeId:z58.string().uuid(),streamUrl:z58.string(),strategy:ResolvedStrategySchema,acceptedAt:z58.coerce.date()}),MergeInitiateResultDTO=createDTO(MergeInitiateResultSchema),MergeInitiateResponseSchema=createResponseSchema2(MergeInitiateResultSchema),MergeConflictsHydrationSchema=z58.object({mergeId:z58.string().uuid(),fromEnv:BranchSchema,toEnv:BranchSchema,status:z58.enum(["in_progress","complete","failed","rolled_back","conflicts"]),strategy:ResolvedStrategySchema,conflicts:z58.array(ConflictSchema),draftResolutions:z58.array(ConflictResolutionSchema),lastEditedBy:z58.string().nullable(),lastEditedAt:z58.coerce.date().nullable(),initiator:z58.object({userId:z58.string().nullable(),role:z58.string().nullable(),agentName:z58.string().nullable()})}),MergeConflictsHydrationDTO=createDTO(MergeConflictsHydrationSchema),MergeConflictsHydrationResponseSchema=createResponseSchema2(MergeConflictsHydrationSchema),MergeResolveDraftRequestSchema=z58.object({resolutions:z58.array(ConflictResolutionSchema)}),MergeResolveDraftResultSchema=z58.object({mergeId:z58.string().uuid(),draftResolutions:z58.array(ConflictResolutionSchema),lastEditedAt:z58.coerce.date(),lastEditedBy:z58.string()}),MergeResolveDraftResultDTO=createDTO(MergeResolveDraftResultSchema),MergeResolveRequestSchema=z58.object({mergeId:z58.string().uuid(),resolutions:z58.array(ConflictResolutionSchema)}),MergeCancelRequestSchema=z58.object({mergeId:z58.string().uuid()}),PublishReleaseRequestSchema=z58.object({version:z58.string().regex(/^v?\d+\.\d+\.\d+(-[\w.]+)?$/,"Use semver (v1.4.2 / 1.4.2 / 1.4.2-rc.1)"),notes:z58.string().max(2e4).optional()}),PublishReleaseResultSchema=z58.object({releaseTag:z58.string(),sha:z58.string(),publishedAt:z58.coerce.date()}),PublishReleaseResultDTO=createDTO(PublishReleaseResultSchema),PublishReleaseResponseSchema=createResponseSchema2(PublishReleaseResultSchema)}});import{z as z59}from"zod";var AgentSessionStatusSchema,AgentRunStatusSchema,AgentSessionsListQuerySchema,SessionMetricsSchema,AgentSessionReviewPublicationSchema,AgentSessionReviewSummarySchema,AgentSessionReviewSummaryDTO,AgentSessionReviewPayloadSchema,AgentSessionReviewPayloadDTO,AgentSessionReviewPayloadResponseSchema,AgentSessionDTOSchema,AgentSessionDTO,AgentSessionCheckpointDTOSchema,AgentSessionCheckpointDTO,AgentSessionResponseSchema,AgentSessionsListResponseSchema,AgentSessionCheckpointsListResponseSchema,AgentSessionWithCheckpointsResponseSchema,SessionErrorCodeSchema,CancelSessionRequestSchema,init_agent_session_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-session.dto.js"(){"use strict";init_agent_report();init_env();init_create_dto();init_response();init_agent_trigger_dto();init_env_status_dto();AgentSessionStatusSchema=z59.enum(["planned","running","finished","cancelled","errored"]),AgentRunStatusSchema=z59.enum(["in-progress","done","merged","merge-required","needs-attention","needs-input","failed"]),AgentSessionsListQuerySchema=z59.strictObject({branch:BranchSchema.optional(),project_agents_only:z59.coerce.boolean().optional(),agent_name:z59.string().optional(),status:AgentSessionStatusSchema.optional(),run_status:AgentRunStatusSchema.optional(),since:z59.coerce.date().optional(),page:z59.coerce.number().int().positive().default(1),limit:z59.coerce.number().int().positive().max(200).default(25),cursor:z59.coerce.date().optional()}),SessionMetricsSchema=z59.object({cpuMs:z59.number().nonnegative().default(0),netBytes:z59.number().nonnegative().default(0),walltimeMs:z59.number().nonnegative().default(0),llmTokensIn:z59.number().nonnegative().optional(),llmTokensOut:z59.number().nonnegative().optional(),stepCount:z59.number().int().nonnegative().optional(),toolCallCounts:z59.record(z59.string().min(1).max(120),z59.number().int().nonnegative()).optional(),toolCallOutcomes:z59.array(z59.object({toolName:z59.string().min(1).max(120),success:z59.boolean(),code:z59.string().regex(/^[A-Z][A-Z0-9_]{0,63}$/).optional()})).max(512).optional(),finishAction:z59.enum(["merge","retain","discard"]).optional()}),AgentSessionReviewPublicationSchema=z59.enum(["pending","merged","conflict","not_published"]),AgentSessionReviewSummarySchema=z59.object({capturedAt:z59.coerce.date(),fingerprint:z59.string().min(1).max(256),counts:z59.object({code:z59.number().int().nonnegative(),content:z59.number().int().nonnegative(),schemas:z59.number().int().nonnegative(),labels:z59.number().int().nonnegative(),assets:z59.number().int().nonnegative().optional()}),publication:AgentSessionReviewPublicationSchema,mergeId:z59.uuid().nullable()}),AgentSessionReviewSummaryDTO=createDTO(AgentSessionReviewSummarySchema),AgentSessionReviewPayloadSchema=z59.object({diff:DiffReportSchema,code:z59.array(CodeFileDiffSchema.extend({raw:z59.string().max(24576)})).max(200),schemas:z59.array(SchemaTypeDiffSchema).max(200),content:z59.array(z59.object({key:z59.string().min(1).max(512),collection:z59.string().min(1).max(256),slug:z59.string().max(512).optional(),verb:z59.enum(["added","modified","deleted"]),fields:z59.array(z59.object({name:z59.string().min(1).max(256),before:z59.unknown().optional(),after:z59.unknown().optional()})).max(20)})).max(200),labels:z59.array(z59.object({key:z59.string().min(1).max(512),locale:z59.string().min(1).max(64).optional(),before:z59.unknown().nullable(),after:z59.unknown().nullable()})).max(200),assets:z59.array(z59.object({key:z59.string().min(1).max(512),name:z59.string().min(1).max(512),verb:z59.enum(["added","modified","deleted"]),before:AssetSnapshotSchema.nullable(),after:AssetSnapshotSchema.nullable()})).max(200).default([])}),AgentSessionReviewPayloadDTO=createDTO(AgentSessionReviewPayloadSchema),AgentSessionReviewPayloadResponseSchema=createResponseSchema2(AgentSessionReviewPayloadSchema),AgentSessionDTOSchema=z59.strictObject({id:z59.uuid(),projectId:z59.uuid(),branch:BranchSchema,agentName:z59.string().min(1),triggerKind:TriggerKindSchema,triggerPayload:z59.unknown().optional(),capabilities:z59.array(z59.string()).optional(),dataSources:z59.array(z59.string()).optional(),status:AgentSessionStatusSchema,sandboxId:z59.string().nullable(),startedAt:z59.coerce.date().nullable(),finishedAt:z59.coerce.date().nullable(),cancelledAt:z59.coerce.date().nullable(),costUsd:z59.number().nonnegative(),costCeilingUsd:z59.number().nonnegative(),metrics:SessionMetricsSchema.nullable(),longRunning:z59.boolean(),lastCheckpointId:z59.uuid().nullable(),agentBranchId:z59.uuid().nullable(),parentSessionId:z59.uuid().nullable(),terminalReason:z59.string().nullable(),errorMessage:z59.string().nullable(),reportDocument:StoredReportDocumentSchema.nullable(),reviewSummary:AgentSessionReviewSummarySchema.nullable(),reviewCaptureError:z59.string().nullable(),createdAt:z59.coerce.date(),updatedAt:z59.coerce.date()}),AgentSessionDTO=createDTO(AgentSessionDTOSchema),AgentSessionCheckpointDTOSchema=z59.object({id:z59.uuid(),sessionId:z59.uuid(),checkpointIdx:z59.number().int().nonnegative(),payloadRef:z59.string(),payloadSizeBytes:z59.number().int().nonnegative(),checksum:z59.string().length(64),createdAt:z59.coerce.date()}),AgentSessionCheckpointDTO=createDTO(AgentSessionCheckpointDTOSchema),AgentSessionResponseSchema=createResponseSchema2(AgentSessionDTOSchema),AgentSessionsListResponseSchema=createPaginatedResponseSchema(AgentSessionDTOSchema),AgentSessionCheckpointsListResponseSchema=createResponseSchema2(z59.array(AgentSessionCheckpointDTOSchema)),AgentSessionWithCheckpointsResponseSchema=createResponseSchema2(z59.object({session:AgentSessionDTOSchema,checkpoints:z59.array(AgentSessionCheckpointDTOSchema)})),SessionErrorCodeSchema=z59.enum(["invalid_session_transition","session_not_found","capability_snapshot_invalid","checkpoint_restore_failed","cost_ceiling_invalid","agent_run_in_progress","agent_runtime_allowance_exhausted"]),CancelSessionRequestSchema=z59.object({reason:z59.string().min(1).max(120).optional()})}});import{z as z60}from"zod";var AgentBranchClassificationSchema,AgentBranchDecidedPathSchema,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();AgentBranchClassificationSchema=z60.enum(["trivial","structural"]),AgentBranchDecidedPathSchema=z60.enum(["auto-merge","review-merged","review-discarded"]),AgentBranchProposalDTOSchema=z60.object({id:z60.uuid(),envId:z60.uuid(),sessionId:z60.uuid().nullable(),skillName:z60.string().min(1),classification:AgentBranchClassificationSchema,rationale:z60.string().nullable(),summary:z60.string().nullable(),surfaceDeltas:z60.record(z60.string(),z60.unknown()),createdAt:z60.coerce.date(),decidedAt:z60.coerce.date().nullable(),decidedPath:AgentBranchDecidedPathSchema.nullable(),decidedBy:z60.string().nullable()}),AgentBranchProposalDTO=createDTO(AgentBranchProposalDTOSchema),DecideProposalRequestSchema=z60.object({path:z60.enum(["review-merged","review-discarded"])}),AgentBranchProposalResponseSchema=createResponseSchema2(AgentBranchProposalDTOSchema),AgentBranchProposalsListResponseSchema=createResponseSchema2(z60.array(AgentBranchProposalDTOSchema)),DecideProposalConflictResponseSchema=z60.object({code:z60.literal("merge_conflict"),message:z60.string(),conflicts:z60.record(z60.string(),z60.number().int().nonnegative())})}});import{z as z61}from"zod";function agentQuestionCapabilityDecision(request,answer){let answers=answer?.answer.questions??[],decision={requested:[],approved:[],denied:[]};return request.block.steps.forEach((step,index2)=>{if(step.body.type!=="capabilities")return;let answered=answers.find(item=>item.stepId===step.id)??answers[index2],selected=new Set(answered?.selectedLabels??[]);for(let item of step.body.items)decision.requested.push(item),(selected.has(item.label)?decision.approved:decision.denied).push(item.token)}),decision}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=z61.enum(AGENT_QUESTION_STATES),AgentQuestionFormSchema=FormBlockSchema.extend({title:z61.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=z61.object({description:z61.string().trim().min(1).max(240),block:AgentQuestionFormSchema}).strict(),AgentQuestionRequestSchema=AgentQuestionAskSchema.extend({version:z61.literal(QUESTION_FORM_CONTRACT_VERSION)}),AgentQuestionSchema=z61.object({id:z61.uuid(),projectId:z61.uuid(),threadId:z61.uuid(),invocationId:z61.uuid(),agentKey:z61.string().min(1).max(120),anchorEnv:z61.string().min(1).max(64),retainedEnv:z61.string().min(1).max(64),state:AgentQuestionStateSchema,request:AgentQuestionRequestSchema,answer:QuestionFormAnswerSnapshotSchema.nullable(),answeredByUserId:z61.string().min(1).nullable(),continuationInvocationId:z61.uuid().nullable(),askedAt:z61.coerce.date(),expiresAt:z61.coerce.date(),closedAt:z61.coerce.date().nullable()});__name(agentQuestionCapabilityDecision,"agentQuestionCapabilityDecision");AgentQuestionResponseSchema=createResponseSchema2(AgentQuestionSchema),RunAgentQuestionResponseSchema=createResponseSchema2(AgentQuestionSchema.nullable()),AgentQuestionAttentionSchema=z61.object({questionId:z61.uuid(),invocationId:z61.uuid(),askedAt:z61.coerce.date()}),OpenAgentQuestionsResponseSchema=createResponseSchema2(z61.array(AgentQuestionAttentionSchema)),AnswerAgentQuestionResultSchema=z61.object({question:AgentQuestionSchema,continuationInvocationId:z61.uuid(),deduped:z61.boolean()}),AnswerAgentQuestionResponseSchema=createResponseSchema2(AnswerAgentQuestionResultSchema)}});import{z as z62}from"zod";var IntegrationAuthModeSchema,IntegrationAuthKindSchema,IntegrationCredentialInputSchema,IntegrationCredentialUsageSchema,IntegrationToolEffectSchema,ProjectIntegrationCredentialStatusSchema,IntegrationAuthModeDTOSchema,IntegrationCredentialDefinitionDTOSchema,IntegrationToolDefinitionDTOSchema,IntegrationRecipeDTOSchema,IntegrationInfoDTOSchema,IntegrationInfoDTO,ProjectIntegrationStatusDTOSchema,ProjectIntegrationStatusDTO,ProjectIntegrationInstallationDTOSchema,ProjectIntegrationInstallationDTO,EnableProjectIntegrationRequestSchema,SwitchProjectIntegrationAuthRequestSchema,SetProjectIntegrationCredentialRequestSchema,OrganizationIntegrationConnectionStatusSchema,OrganizationIntegrationConnectionDTOSchema,OrganizationIntegrationConnectionDTO,McpHeaderNameSchema,McpHeaderDefinitionSchema,McpSecretMapSchema,ConnectOrganizationIntegrationRequestSchema,ProjectIntegrationReturnPathSchema,ConnectProjectIntegrationRequestSchema,McpIntegrationAuthSchema,McpIntegrationSetupAuthSchema,AddProjectMcpIntegrationRequestSchema,AddProjectMcpIntegrationResponseBaseSchema,AddProjectMcpIntegrationResponseSchema,ReusableMcpServerAuthKindSchema,ReusableMcpServerDTOSchema,ReusableMcpServerDTO,SearchReusableMcpServersQuerySchema,ReuseProjectMcpIntegrationRequestSchema,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=z62.enum(["fimo","personal","oauth"]),IntegrationAuthKindSchema=z62.enum(["oauth","api_key","bot_token","basic"]),IntegrationCredentialInputSchema=z62.enum(["secret_text"]),IntegrationCredentialUsageSchema=z62.enum(["http_bearer","api_key"]),IntegrationToolEffectSchema=z62.enum(["read","write","delete","financial"]),ProjectIntegrationCredentialStatusSchema=z62.enum(["not_required","missing","configured"]),IntegrationAuthModeDTOSchema=z62.object({mode:IntegrationAuthModeSchema,label:z62.string().min(1),description:z62.string().min(1)}),IntegrationCredentialDefinitionDTOSchema=z62.object({id:z62.string().min(1),label:z62.string().min(1),input:IntegrationCredentialInputSchema,usage:IntegrationCredentialUsageSchema,required:z62.boolean()}),IntegrationToolDefinitionDTOSchema=z62.object({key:z62.string().min(1),name:z62.string().min(1),description:z62.string().min(1),effect:IntegrationToolEffectSchema}),IntegrationRecipeDTOSchema=z62.object({title:z62.string().min(1),description:z62.string().min(1),command:z62.string().min(1).optional()}),IntegrationInfoDTOSchema=z62.object({key:z62.string().min(1),name:z62.string().min(1),summary:z62.string().min(1),type:z62.enum(["native","mcp"]).optional(),url:z62.string().url().optional(),defaultAuthMode:IntegrationAuthModeSchema.nullable().optional(),authModes:z62.array(IntegrationAuthModeDTOSchema),credentials:z62.array(IntegrationCredentialDefinitionDTOSchema),tools:z62.array(IntegrationToolDefinitionDTOSchema),liveToolsStatus:z62.enum(["available","unavailable"]).optional(),recipes:z62.array(IntegrationRecipeDTOSchema)}),IntegrationInfoDTO=createDTO(IntegrationInfoDTOSchema),ProjectIntegrationStatusDTOSchema=z62.object({projectId:z62.uuid(),integrationKey:z62.string().min(1),name:z62.string().min(1),summary:z62.string().min(1),installed:z62.boolean(),enabled:z62.boolean(),setupState:z62.enum(["setup_required","ready","attention"]),authMode:IntegrationAuthModeSchema.nullable(),authModeLabel:z62.string().nullable(),connectionId:z62.uuid().nullable().optional(),connectionAlias:z62.string().min(1).nullable().optional(),connectionStatus:z62.enum(["active","revoked"]).nullable(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z62.array(z62.string()),installedAt:z62.coerce.date().nullable(),updatedAt:z62.coerce.date().nullable()}),ProjectIntegrationStatusDTO=createDTO(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationDTOSchema=z62.object({id:z62.uuid(),projectId:z62.uuid(),integrationKey:z62.string().min(1),enabled:z62.boolean(),authMode:IntegrationAuthModeSchema,authModeLabel:z62.string(),connectionId:z62.uuid().nullable().optional(),connectionAlias:z62.string().min(1).nullable().optional(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z62.array(z62.string()),createdAt:z62.coerce.date(),updatedAt:z62.coerce.date()}),ProjectIntegrationInstallationDTO=createDTO(ProjectIntegrationInstallationDTOSchema),EnableProjectIntegrationRequestSchema=z62.object({authMode:IntegrationAuthModeSchema.optional(),connectionAlias:z62.string().min(1).optional()}),SwitchProjectIntegrationAuthRequestSchema=z62.object({authMode:IntegrationAuthModeSchema}),SetProjectIntegrationCredentialRequestSchema=z62.object({value:z62.string().min(1)}),OrganizationIntegrationConnectionStatusSchema=z62.enum(["active","revoked"]),OrganizationIntegrationConnectionDTOSchema=z62.object({id:z62.uuid(),organizationId:z62.string().min(1),integrationKey:z62.string().min(1),alias:z62.string().min(1),authKind:IntegrationAuthKindSchema,externalAccountId:z62.string().min(1),externalAccountName:z62.string().nullable(),externalBotUserId:z62.string().nullable(),status:OrganizationIntegrationConnectionStatusSchema,scopes:z62.array(z62.string()),connectedAt:z62.coerce.date(),updatedAt:z62.coerce.date()}),OrganizationIntegrationConnectionDTO=createDTO(OrganizationIntegrationConnectionDTOSchema),McpHeaderNameSchema=z62.string().trim().min(1).max(120).regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,"Header name is invalid."),McpHeaderDefinitionSchema=z62.object({name:McpHeaderNameSchema}),McpSecretMapSchema=z62.record(McpHeaderNameSchema,z62.string().min(1)),ConnectOrganizationIntegrationRequestSchema=z62.object({alias:z62.string().min(1).max(120).optional(),token:z62.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z62.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=z62.string().min(1).max(500).refine(value=>value.startsWith("/app/")&&!value.startsWith("//"),"Return path must be inside the Fimo app."),ConnectProjectIntegrationRequestSchema=z62.discriminatedUnion("mode",[z62.object({mode:z62.literal("personal"),alias:z62.string().min(1).max(120),token:z62.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z62.boolean().optional()}),z62.object({mode:z62.literal("oauth"),returnTo:ProjectIntegrationReturnPathSchema.optional(),reconnect:z62.boolean().optional()})]).superRefine((value,ctx)=>{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=z62.enum(["none","bearer","header"]),McpIntegrationSetupAuthSchema=z62.union([z62.literal("auto"),McpIntegrationAuthSchema]),AddProjectMcpIntegrationRequestSchema=z62.object({type:z62.literal("mcp"),name:z62.string().trim().min(1).max(120),url:z62.string().url(),auth:McpIntegrationSetupAuthSchema.default("auto"),returnTo:ProjectIntegrationReturnPathSchema.optional(),headers:z62.array(McpHeaderDefinitionSchema).min(1).max(20).optional(),secrets:McpSecretMapSchema.optional(),headerName:McpHeaderNameSchema.optional(),token:z62.string().min(1).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=z62.object({integrationKey:z62.string().min(1),status:ProjectIntegrationStatusDTOSchema,info:IntegrationInfoDTOSchema}),AddProjectMcpIntegrationResponseSchema=z62.discriminatedUnion("mode",[AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z62.literal("connected")}),AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z62.literal("oauth"),connectUrl:z62.string().url(),expiresAt:z62.coerce.date()})]),ReusableMcpServerAuthKindSchema=z62.enum(["none","bearer","header","oauth"]),ReusableMcpServerDTOSchema=z62.object({id:z62.uuid(),name:z62.string().min(1),host:z62.string().min(1),authKind:ReusableMcpServerAuthKindSchema,sourceProjectName:z62.string().min(1),availability:z62.enum(["available","unavailable"])}),ReusableMcpServerDTO=createDTO(ReusableMcpServerDTOSchema),SearchReusableMcpServersQuerySchema=z62.object({query:z62.string().trim().max(120).optional()}),ReuseProjectMcpIntegrationRequestSchema=z62.object({serverId:z62.uuid()}),StartProjectIntegrationConnectResponseSchema=z62.object({integrationKey:z62.string().min(1),connectUrl:z62.string().url(),expiresAt:z62.coerce.date()}),StartProjectIntegrationConnectResponseDTO=createDTO(StartProjectIntegrationConnectResponseSchema),ProjectIntegrationConnectResponseSchema=z62.discriminatedUnion("mode",[z62.object({mode:z62.literal("personal"),integrationKey:z62.string().min(1),connection:OrganizationIntegrationConnectionDTOSchema}),z62.object({mode:z62.literal("oauth"),integrationKey:z62.string().min(1),connectUrl:z62.string().url(),expiresAt:z62.coerce.date()})]),BindProjectChannelRequestSchema=z62.object({ref:z62.string().min(1),connectionAlias:z62.string().min(1).optional(),agentName:z62.string().min(1).max(160).nullable().optional(),force:z62.boolean().optional()}),ListProjectChannelsQuerySchema=z62.object({integrationKey:z62.string().min(1)}),SearchProjectChannelsQuerySchema=z62.object({integrationKey:z62.string().min(1),connectionAlias:z62.string().min(1),query:z62.string().max(160).optional()}),ProjectChannelBindingDTOSchema=z62.object({id:z62.uuid(),projectId:z62.uuid(),integrationKey:z62.string().min(1),connectionId:z62.uuid(),externalWorkspaceId:z62.string().min(1),externalChannelId:z62.string().min(1),externalChannelName:z62.string().nullable(),agentName:z62.string().nullable(),enabled:z62.boolean(),createdAt:z62.coerce.date(),updatedAt:z62.coerce.date()}),ProjectChannelBindingDTO=createDTO(ProjectChannelBindingDTOSchema),ProjectChannelCandidateAvailabilitySchema=z62.enum(["available","selected","used_by_project","unavailable"]),ProjectChannelCandidateDTOSchema=z62.object({id:z62.string().min(1),name:z62.string().min(1),visibility:z62.enum(["public","private"]),availability:ProjectChannelCandidateAvailabilitySchema,projectName:z62.string().min(1).nullable(),canMove:z62.boolean()}),ProjectChannelCandidateDTO=createDTO(ProjectChannelCandidateDTOSchema),FirecrawlScrapeFormatsSchema=z62.object({markdown:z62.boolean().optional(),summary:z62.boolean().optional(),links:z62.boolean().optional(),branding:z62.boolean().optional(),images:z62.boolean().optional(),html:z62.union([z62.literal("cleaned"),z62.literal("raw"),z62.boolean()]).optional(),json:z62.union([z62.boolean(),z62.object({prompt:z62.string().min(1).max(1e4),schema:z62.record(z62.string(),z62.unknown()).optional()})]).optional()}).default({markdown:!0}),FirecrawlScrapeToolInputSchema=z62.object({url:z62.string().url(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z62.boolean().optional(),timeoutMs:z62.number().int().positive().max(12e4).optional(),waitForMs:z62.number().int().min(0).max(3e4).optional(),maxAgeMs:z62.number().int().min(0).optional(),minAgeMs:z62.number().int().min(0).optional(),storeInCache:z62.boolean().optional(),proxy:z62.enum(["basic","enhanced","auto"]).optional(),mobile:z62.boolean().optional(),location:z62.object({country:z62.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z62.array(z62.string().min(1).max(35)).min(1).max(10).optional()}).optional()}),FirecrawlSearchToolInputSchema=z62.object({query:z62.string().min(1),maxResults:z62.number().int().positive().max(20).optional(),sources:z62.array(z62.enum(["web","news","images"])).min(1).max(3).optional(),categories:z62.array(z62.enum(["github","research","pdf"])).min(1).max(3).optional(),includeDomains:z62.array(z62.string().min(1).max(253)).min(1).max(100).optional(),excludeDomains:z62.array(z62.string().min(1).max(253)).min(1).max(100).optional(),timeRange:z62.enum(["hour","day","week","month","year"]).optional(),location:z62.string().min(1).max(160).optional(),country:z62.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code.").optional(),highlights:z62.boolean().optional(),timeoutMs:z62.number().int().positive().max(12e4).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."}),FirecrawlDeveloperSearchToolInputSchema=z62.object({query:z62.string().min(1).max(500),maxResults:z62.number().int().min(1).max(100).optional(),types:z62.array(z62.enum(["doc","issue","pull_request","readme"])).min(1).max(4).optional(),repos:z62.array(z62.string().min(1).max(512)).min(1).max(20).optional(),sources:z62.array(z62.string().min(1).max(512)).min(1).max(20).optional(),passages:z62.number().int().min(1).max(5).optional(),skills:z62.literal("only").optional(),language:z62.string().min(1).optional(),topic:z62.string().min(1).optional(),license:z62.string().min(1).optional(),minStars:z62.number().int().min(0).optional(),maxStars:z62.number().int().min(0).optional(),archived:z62.boolean().optional(),fork:z62.boolean().optional()}).refine(value=>value.minStars===void 0||value.maxStars===void 0||value.minStars<=value.maxStars,{message:"minStars must not exceed maxStars."}),FirecrawlResearchSearchToolInputSchema=z62.object({query:z62.string().min(1).max(500),maxResults:z62.number().int().min(1).max(500).optional(),authors:z62.array(z62.string().min(1)).min(1).optional(),categories:z62.array(z62.string().min(1)).min(1).optional(),from:z62.iso.date().optional(),to:z62.iso.date().optional()}),FirecrawlResearchPaperToolInputSchema=z62.object({paperId:z62.string().min(1).max(512),query:z62.string().min(1).max(500).optional(),maxPassages:z62.number().int().min(1).max(50).optional()}).refine(value=>value.query!==void 0||value.maxPassages===void 0,{message:"maxPassages requires query."}),FirecrawlResearchRelatedToolInputSchema=z62.object({paperId:z62.string().min(1).max(512),intent:z62.string().min(1).max(500),mode:z62.enum(["similar","citers","references"]).optional(),maxResults:z62.number().int().min(1).max(500).optional(),rerank:z62.boolean().optional(),anchors:z62.array(z62.string().min(1).max(512)).min(1).optional()}),FirecrawlMapToolInputSchema=z62.object({url:z62.string().url(),search:z62.string().min(1).optional(),limit:z62.number().int().positive().max(200).optional(),includeSubdomains:z62.boolean().optional(),timeoutMs:z62.number().int().positive().max(12e4).optional()}),FirecrawlCrawlToolInputSchema=z62.object({url:z62.string().url(),limit:z62.number().int().positive().max(20).optional(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z62.boolean().optional(),timeoutMs:z62.number().int().positive().max(12e4).optional()}),FirecrawlMonitorScheduleInputSchema=z62.object({text:z62.string().min(1).max(200).optional(),cron:z62.string().min(1).max(120).optional(),timezone:z62.string().min(1).max(80).optional()}).refine(value=>!!(value.text||value.cron),"Firecrawl monitor schedule needs text or cron."),FirecrawlMonitorScrapeOptionsInputSchema=z62.object({formats:FirecrawlScrapeFormatsSchema.optional(),onlyMainContent:z62.boolean().optional(),timeoutMs:z62.number().int().positive().max(12e4).optional(),waitForMs:z62.number().int().min(0).max(3e4).optional(),maxAgeMs:z62.number().int().min(0).optional(),minAgeMs:z62.number().int().min(0).optional(),storeInCache:z62.boolean().optional(),proxy:z62.enum(["basic","enhanced","auto"]).optional(),mobile:z62.boolean().optional(),location:z62.object({country:z62.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z62.array(z62.string().min(1).max(35)).min(1).max(10).optional()}).optional()}).optional(),FirecrawlMonitorTargetInputSchema=z62.union([z62.object({type:z62.enum(["scrape","crawl"]).default("scrape"),urls:z62.array(z62.string().url()).min(1).max(50),scrapeOptions:FirecrawlMonitorScrapeOptionsInputSchema}),z62.object({type:z62.literal("search"),queries:z62.array(z62.string().min(1).max(256)).min(1).max(12),searchWindow:z62.enum(["5m","15m","1h","6h","24h","7d"]).optional(),maxResults:z62.number().int().min(1).max(50).optional(),includeDomains:z62.array(z62.string().min(1).max(253)).min(1).max(50).optional(),excludeDomains:z62.array(z62.string().min(1).max(253)).min(1).max(50).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."})]),FirecrawlMonitorCreateToolInputSchema=z62.object({name:z62.string().min(1).max(256),schedule:FirecrawlMonitorScheduleInputSchema,targets:z62.array(FirecrawlMonitorTargetInputSchema).min(1).max(50),goal:z62.string().min(1).max(2e3).optional(),judgeEnabled:z62.boolean().optional(),retentionDays:z62.number().int().min(1).max(365).optional(),notification:z62.object({email:z62.object({enabled:z62.boolean().default(!0),recipients:z62.array(z62.string().email()).min(1).max(20),includeDiffs:z62.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=z62.object({monitorId:z62.string().uuid(),name:z62.string().min(1).max(256).optional(),schedule:FirecrawlMonitorScheduleInputSchema.optional(),targets:z62.array(FirecrawlMonitorTargetInputSchema).min(1).max(50).optional(),goal:z62.string().min(1).max(2e3).optional(),judgeEnabled:z62.boolean().optional(),retentionDays:z62.number().int().min(1).max(365).optional(),status:z62.enum(["active","paused"]).optional()}).refine(value=>Object.keys(value).some(key=>key!=="monitorId"),"Monitor update needs a changed field."),FirecrawlMonitorIdToolInputSchema=z62.object({monitorId:z62.string().uuid()}),FirecrawlMonitorCheckToolInputSchema=FirecrawlMonitorIdToolInputSchema.extend({checkId:z62.string().uuid()}),RunProjectIntegrationToolRequestSchema=z62.object({tool:z62.string().min(1),input:z62.record(z62.string(),z62.unknown()),connectionAlias:z62.string().min(1).optional()}),ProjectIntegrationToolRunUsageSchema=z62.object({provider:z62.string().min(1),providerCredits:z62.number().nonnegative().optional(),providerCostUsd:z62.number().nonnegative().optional(),requests:z62.number().int().nonnegative().optional()}),ProjectIntegrationToolRunBillingSchema=z62.object({credits:z62.number().int().nonnegative()}),FirecrawlScrapeToolOutputSchema=z62.object({url:z62.string(),provider:z62.literal("firecrawl"),title:z62.string().optional(),statusCode:z62.number().optional(),markdown:z62.string().optional(),summary:z62.string().optional(),links:z62.array(z62.string()).optional(),images:z62.array(z62.string()).optional(),html:z62.string().optional(),json:z62.unknown().optional(),branding:z62.record(z62.string(),z62.unknown()).optional(),warning:z62.string().optional()}),FirecrawlSearchToolOutputSchema=z62.object({query:z62.string(),provider:z62.literal("firecrawl"),warning:z62.string().optional(),results:z62.array(z62.object({title:z62.string(),url:z62.string(),snippet:z62.string().optional(),content:z62.string().optional(),score:z62.number().optional(),publishedAt:z62.string().optional()}))}),FirecrawlResearchPaperSchema=z62.object({paperId:z62.string(),primaryId:z62.string().optional(),ids:z62.record(z62.string(),z62.array(z62.string())).optional(),title:z62.string().optional(),abstract:z62.string().optional(),score:z62.number().optional()}).passthrough(),FirecrawlResearchPassageSchema=z62.object({text:z62.string(),score:z62.number().optional()}).passthrough(),FirecrawlDeveloperSearchToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),results:z62.array(z62.object({id:z62.string(),type:z62.string().min(1).optional(),url:z62.string(),title:z62.string().optional(),passages:z62.array(z62.object({text:z62.string()}).passthrough())}).passthrough()),coverage:z62.record(z62.string(),z62.string()).optional(),reranked:z62.boolean().optional(),repos:z62.array(z62.record(z62.string(),z62.unknown())).optional(),sources:z62.array(z62.record(z62.string(),z62.unknown())).optional()}),FirecrawlResearchSearchToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),results:z62.array(FirecrawlResearchPaperSchema)}),FirecrawlResearchPaperToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),paper:z62.record(z62.string(),z62.unknown()),paperId:z62.string().optional(),query:z62.string().optional(),passages:z62.array(FirecrawlResearchPassageSchema).optional()}),FirecrawlResearchRelatedToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),results:z62.array(FirecrawlResearchPaperSchema),poolSize:z62.number().int().nonnegative(),truncated:z62.boolean(),note:z62.string().nullable().optional()}),FirecrawlMapToolOutputSchema=z62.object({url:z62.string(),provider:z62.literal("firecrawl"),count:z62.number(),links:z62.array(z62.object({url:z62.string(),title:z62.string().optional(),description:z62.string().optional()}))}),FirecrawlCrawlToolOutputSchema=z62.object({url:z62.string(),provider:z62.literal("firecrawl"),total:z62.number(),pages:z62.array(z62.object({url:z62.string(),title:z62.string().optional(),statusCode:z62.number().optional(),markdown:z62.string().optional(),summary:z62.string().optional(),links:z62.array(z62.string()).optional(),images:z62.array(z62.string()).optional(),html:z62.string().optional(),warning:z62.string().optional()})),warning:z62.string().optional()}),FirecrawlMonitorScheduleOutputSchema=z62.object({cron:z62.string().optional(),text:z62.string().optional(),timezone:z62.string().optional()}).passthrough(),FirecrawlMonitorTargetOutputSchema=z62.object({id:z62.string().optional(),type:z62.enum(["scrape","crawl","search"]).optional(),urls:z62.array(z62.string()).optional(),queries:z62.array(z62.string()).optional(),searchWindow:z62.string().optional(),maxResults:z62.number().optional(),includeDomains:z62.array(z62.string()).optional(),excludeDomains:z62.array(z62.string()).optional(),scrapeOptions:z62.record(z62.string(),z62.unknown()).optional()}).passthrough(),FirecrawlMonitorOutputSchema=z62.object({id:z62.string(),name:z62.string(),status:z62.string().optional(),schedule:FirecrawlMonitorScheduleOutputSchema.optional(),nextRunAt:z62.string().nullable().optional(),lastRunAt:z62.string().nullable().optional(),currentCheckId:z62.string().nullable().optional(),targets:z62.array(FirecrawlMonitorTargetOutputSchema).optional(),goal:z62.string().nullable().optional(),judgeEnabled:z62.boolean().optional(),estimatedCreditsPerMonth:z62.number().optional(),createdAt:z62.string().optional(),updatedAt:z62.string().optional()}).passthrough(),FirecrawlMonitorCheckOutputSchema=z62.object({id:z62.string(),monitorId:z62.string(),scheduledFor:z62.string().nullable().optional(),startedAt:z62.string().nullable().optional(),finishedAt:z62.string().nullable().optional(),estimatedCredits:z62.number().optional(),reservedCredits:z62.number().optional(),actualCredits:z62.number().optional(),billingStatus:z62.string().nullable().optional(),summary:z62.object({totalPages:z62.number().optional(),same:z62.number().optional(),changed:z62.number().optional(),new:z62.number().optional(),removed:z62.number().optional(),error:z62.number().optional()}).passthrough().optional(),error:z62.string().nullable().optional(),createdAt:z62.string().optional(),updatedAt:z62.string().optional()}).passthrough(),FirecrawlMonitorListToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),monitors:z62.array(FirecrawlMonitorOutputSchema)}),FirecrawlMonitorDetailToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),monitor:FirecrawlMonitorOutputSchema}),FirecrawlMonitorDeleteToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),monitorId:z62.string(),deleted:z62.boolean()}),FirecrawlMonitorChecksToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),monitorId:z62.string(),checks:z62.array(FirecrawlMonitorCheckOutputSchema)}),FirecrawlMonitorCheckDetailToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),monitorId:z62.string(),check:FirecrawlMonitorCheckOutputSchema,next:z62.string().optional()}),FirecrawlToolKeySchema=z62.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=z62.union([FirecrawlSearchToolOutputSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlScrapeToolOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema]),ProjectIntegrationToolRunBaseSchema=z62.object({projectId:z62.uuid(),integrationKey:z62.string().min(1),tool:z62.string().min(1),connectionAlias:z62.string().min(1).nullable().optional(),output:z62.record(z62.string(),z62.unknown()),executedAt:z62.coerce.date()}),ProjectIntegrationToolRunDTOSchema=z62.discriminatedUnion("authMode",[ProjectIntegrationToolRunBaseSchema.extend({authMode:z62.literal("fimo"),billing:ProjectIntegrationToolRunBillingSchema,usage:z62.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z62.literal("personal"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z62.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z62.literal("oauth"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z62.undefined().optional()})]),ProjectIntegrationToolRunDTO=createDTO(ProjectIntegrationToolRunDTOSchema),IntegrationsListResponseSchema=createResponseSchema2(z62.array(ProjectIntegrationStatusDTOSchema)),IntegrationInfoResponseSchema=createResponseSchema2(IntegrationInfoDTOSchema),ProjectIntegrationStatusResponseSchema=createResponseSchema2(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationResponseSchema=createResponseSchema2(ProjectIntegrationInstallationDTOSchema),ProjectIntegrationToolRunResponseSchema=createResponseSchema2(ProjectIntegrationToolRunDTOSchema),StartProjectIntegrationConnectResponseResponseSchema=createResponseSchema2(StartProjectIntegrationConnectResponseSchema),OrganizationIntegrationConnectionResponseSchema=createResponseSchema2(OrganizationIntegrationConnectionDTOSchema),ProjectIntegrationConnectionsResponseSchema=createResponseSchema2(z62.array(OrganizationIntegrationConnectionDTOSchema)),ProjectIntegrationConnectResponseResponseSchema=createResponseSchema2(ProjectIntegrationConnectResponseSchema),AddProjectMcpIntegrationResponseResponseSchema=createResponseSchema2(AddProjectMcpIntegrationResponseSchema),ReusableMcpServersResponseSchema=createResponseSchema2(z62.array(ReusableMcpServerDTOSchema)),ProjectChannelBindingResponseSchema=createResponseSchema2(ProjectChannelBindingDTOSchema),ProjectChannelBindingsResponseSchema=createResponseSchema2(z62.array(ProjectChannelBindingDTOSchema)),ProjectChannelCandidatesResponseSchema=createResponseSchema2(z62.array(ProjectChannelCandidateDTOSchema))}});import{z as z63}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=z63.enum(SCHEDULE_NOTIFICATION_TOPICS),USER_MANAGED_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance","agent_runtime_allowance"],UserManagedNotificationTopicSchema=z63.enum(USER_MANAGED_NOTIFICATION_TOPICS),MAX_SCHEDULE_SUBSCRIBERS=5,ScheduleSubscriberDeliveryStateSchema=z63.enum(["deliverable","suppressed"]),ScheduleSubscriberCandidateSchema=z63.object({userId:z63.string().min(1),name:z63.string(),email:z63.string().min(1),subscribed:z63.boolean(),deliveryState:ScheduleSubscriberDeliveryStateSchema}),ScheduleNotificationSettingsSchema=z63.object({maxSubscribers:z63.number().int().positive(),subscriberCount:z63.number().int().nonnegative(),effectiveRecipientCount:z63.number().int().nonnegative(),currentUserSubscribed:z63.boolean(),candidates:z63.array(ScheduleSubscriberCandidateSchema).optional()}),ScheduleNotificationSettingsResponseSchema=createResponseSchema2(ScheduleNotificationSettingsSchema),UpdateScheduleSubscribersRequestSchema=z63.object({userIds:z63.array(z63.string().min(1)).max(MAX_SCHEDULE_SUBSCRIBERS).refine(userIds=>new Set(userIds).size===userIds.length,"Follower ids must be unique.")}),UserNotificationPreferenceSchema=z63.object({topic:UserManagedNotificationTopicSchema,enabled:z63.boolean(),source:z63.enum(["default","explicit"])}),SCHEDULE_OPT_OUT_LINK_ACTIONS=["unfollow_schedule","disable_topic"],ScheduleOptOutLinkActionSchema=z63.enum(SCHEDULE_OPT_OUT_LINK_ACTIONS),SCHEDULE_OPT_OUT_ACTIONS=["unfollow_schedule","unfollow_all_schedules","disable_topic"],ScheduleOptOutActionSchema=z63.enum(SCHEDULE_OPT_OUT_ACTIONS),ScheduleOptOutStateSchema=z63.object({action:ScheduleOptOutActionSchema,topic:ScheduleNotificationTopicSchema,scheduleName:z63.string().nullable(),maskedEmail:z63.string().min(1),applied:z63.boolean(),expiresAt:z63.coerce.date()}),ScheduleOptOutResponseSchema=createResponseSchema2(ScheduleOptOutStateSchema),FollowedScheduleSchema=z63.object({scheduleId:z63.string().min(1),scheduleName:z63.string(),projectId:z63.string().min(1),projectName:z63.string(),env:z63.string().min(1)}),FollowedSchedulesSchema=z63.object({schedules:z63.array(FollowedScheduleSchema)}),FollowedSchedulesResponseSchema=createResponseSchema2(FollowedSchedulesSchema)}});import{z as z64}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_common2();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=z64.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=z64.enum(["ok","failed"]),ProjectScheduleDTOSchema=BaseEntitySchema.extend({projectId:z64.uuid(),env:z64.string().min(1),name:z64.string().min(1),cron:z64.string().min(1),command:z64.string().min(1),secretKeys:z64.array(z64.string().min(1)),enabled:z64.boolean(),lastRunAt:z64.coerce.date().nullable(),lastStatus:ProjectScheduleStatusSchema.nullable(),lastError:z64.string().nullable(),overPolicyReasons:z64.array(z64.string()).optional()}),ProjectScheduleDTO=createDTO(ProjectScheduleDTOSchema),CreateProjectScheduleRequestSchema=z64.object({name:z64.string().min(1).max(120),cron:z64.string().min(1).max(120),command:z64.string().min(1).max(500),secretKeys:z64.array(ProjectSecretKeySchema).default([]),enabled:z64.boolean().optional()}),UpdateProjectScheduleRequestSchema=z64.object({name:z64.string().min(1).max(120).optional(),cron:z64.string().min(1).max(120).optional(),command:z64.string().min(1).max(500).optional(),secretKeys:z64.array(ProjectSecretKeySchema).optional()}).refine(request=>Object.keys(request).length>0,"Pass at least one schedule field to update."),ProjectScheduleRunStatusSchema=z64.enum(["queued","running","succeeded","failed","skipped"]),ProjectScheduleRunTriggerSchema=z64.enum(["cron","ui","cli"]),ProjectScheduleRunSecretSnapshotStateSchema=z64.enum(["pending","resolved","failed"]),ProjectScheduleRunSecretResolutionSchema=z64.enum(["resolved","missing","deleted","recreated","rotated"]),ProjectSchedulePolicySchema=z64.object({maxRuns:z64.number().int().positive(),retentionDays:z64.number().int().positive().nullable(),outputRetentionDays:z64.number().int().positive(),maxOutputBytes:z64.number().int().positive()}),SchedulePolicyStateSchema=z64.enum(["ok","near_limit","exhausted","over_policy"]),ProjectSchedulePlanSnapshotSchema=z64.object({code:z64.enum(["Free","PAYG","Premium","Pro"]),source:z64.enum(["cached_subscription","free_fallback"]),activeSchedules:z64.object({used:z64.number().int().nonnegative(),limit:z64.number().int().nonnegative()}),minCadenceMinutes:z64.number().int().positive(),maxRunMs:z64.number().int().positive(),concurrency:z64.object({used:z64.number().int().nonnegative(),limit:z64.number().int().positive()}),compute:z64.object({settledMs:z64.number().int().nonnegative(),activeMs:z64.number().int().nonnegative(),reservedMs:z64.number().int().nonnegative().optional(),includedMs:z64.number().int().nonnegative(),remainingMs:z64.number().int().nonnegative(),resetsAt:z64.coerce.date()}),upgrade:z64.object({code:z64.literal("Pro"),activeSchedulesLimit:z64.number().int().positive(),minCadenceMinutes:z64.number().int().positive(),maxRunMs:z64.number().int().positive(),maxConcurrentRuns:z64.number().int().positive(),computeIncludedMs:z64.number().int().positive()}).optional(),state:SchedulePolicyStateSchema,overPolicyReasons:z64.array(z64.string())}),ProjectScheduleUsageSchema=z64.object({runCount:z64.number().int().nonnegative(),runsWithOutput:z64.number().int().nonnegative()}),ProjectScheduleRunDTOSchema=z64.object({id:z64.uuid(),scheduleId:z64.uuid(),projectId:z64.uuid(),env:z64.string().min(1),scheduleName:z64.string().min(1),command:z64.string().min(1),status:ProjectScheduleRunStatusSchema,trigger:ProjectScheduleRunTriggerSchema,triggeredBy:z64.object({id:z64.string().min(1),name:z64.string().min(1)}).nullable(),queuedAt:z64.coerce.date(),startedAt:z64.coerce.date().nullable(),finishedAt:z64.coerce.date().nullable(),exitCode:z64.number().int().nullable(),errorCode:z64.string().nullable(),error:z64.string().nullable(),outputBytes:z64.number().int().nonnegative(),outputTruncated:z64.boolean(),outputExpiresAt:z64.coerce.date().nullable(),metadataExpiresAt:z64.coerce.date().nullable()}),ProjectScheduleRunDTO=createDTO(ProjectScheduleRunDTOSchema),ProjectScheduleRunSecretSnapshotSchema=z64.object({state:ProjectScheduleRunSecretSnapshotStateSchema,capturedAt:z64.coerce.date().nullable(),items:z64.array(z64.object({key:z64.string().min(1),updatedAt:z64.coerce.date().nullable(),resolution:ProjectScheduleRunSecretResolutionSchema}))}),ProjectScheduleRunDetailDTOSchema=ProjectScheduleRunDTOSchema.extend({output:z64.string().nullable(),secretSnapshot:ProjectScheduleRunSecretSnapshotSchema}),ProjectScheduleRunDetailDTO=createDTO(ProjectScheduleRunDetailDTOSchema),RunProjectScheduleRequestSchema=z64.object({trigger:z64.enum(["ui","cli"])}),ProjectScheduleRunsQuerySchema=z64.object({limit:z64.coerce.number().int().min(1).max(100).default(25),cursor:z64.string().trim().min(1).optional(),status:ProjectScheduleRunStatusSchema.optional()}),ProjectScheduleResponseSchema=createResponseSchema2(ProjectScheduleDTOSchema),ProjectSchedulesListDataSchema=z64.object({items:z64.array(ProjectScheduleDTOSchema),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectSchedulesListResponseSchema=createResponseSchema2(z64.array(ProjectScheduleDTOSchema)),ProjectSchedulesOverviewResponseSchema=createResponseSchema2(ProjectSchedulesListDataSchema),ProjectScheduleDetailDataSchema=z64.object({schedule:ProjectScheduleDTOSchema,usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema,notifications:ScheduleNotificationSettingsSchema.optional()}),ProjectScheduleDetailResponseSchema=createResponseSchema2(ProjectScheduleDetailDataSchema),ProjectScheduleRunsPageSchema=z64.object({items:z64.array(ProjectScheduleRunDTOSchema),nextCursor:z64.string().nullable(),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectScheduleRunsResponseSchema=createResponseSchema2(ProjectScheduleRunsPageSchema),ProjectScheduleRunResponseSchema=createResponseSchema2(ProjectScheduleRunDTOSchema),ProjectScheduleRunDetailResponseSchema=createResponseSchema2(ProjectScheduleRunDetailDTOSchema)}});import{z as z65}from"zod";var WORK_NOTIFICATION_TOPICS,WorkNotificationTopicSchema,NOTIFICATION_DELIVERY_CADENCES,NotificationDeliveryCadenceSchema,NOTIFICATION_CHANNELS,NotificationChannelSchema,NOTIFICATION_ACTOR_KINDS,NotificationActorKindSchema,NotificationActorSchema,NotificationSummarySchema,ReportBriefPayloadSchema,NotificationRunOutcomeSchema,NotificationRetainedReasonSchema,NotificationPayloadSchema,NotificationEnvelopeSchema,NotificationRecipientStateSchema,NotificationDeliveryStateSchema,NotificationDeliverySchema,NotificationPreferenceSchema,NotificationSubjectSchema,NotificationViewSchema,NotificationViewResponseSchema,NotificationListSchema,NotificationListResponseSchema,ListNotificationsQuerySchema,NotificationStateSchema,NotificationStateResponseSchema,UpdateNotificationStateRequestSchema,MAX_QUESTION_DIGEST_PAUSE_DAYS,QuestionDigestPreferenceSchema,init_notification_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/notification.dto.js"(){"use strict";init_agent_report();init_response();WORK_NOTIFICATION_TOPICS=["agent_question","agent_run_outcome","agent_retained_review","agent_conflict"],WorkNotificationTopicSchema=z65.enum(WORK_NOTIFICATION_TOPICS),NOTIFICATION_DELIVERY_CADENCES=["immediate","daily","off"],NotificationDeliveryCadenceSchema=z65.enum(NOTIFICATION_DELIVERY_CADENCES),NOTIFICATION_CHANNELS=["in_app","email"],NotificationChannelSchema=z65.enum(NOTIFICATION_CHANNELS),NOTIFICATION_ACTOR_KINDS=["user","agent","system"],NotificationActorKindSchema=z65.enum(NOTIFICATION_ACTOR_KINDS),NotificationActorSchema=z65.discriminatedUnion("kind",[z65.object({kind:z65.literal("user"),userId:z65.string().min(1)}).strict(),z65.object({kind:z65.literal("agent"),agentKey:z65.string().min(1).max(120),agentId:z65.uuid().optional()}).strict(),z65.object({kind:z65.literal("system")}).strict()]),NotificationSummarySchema=z65.string().trim().min(1).max(1200),ReportBriefPayloadSchema={title:z65.string().trim().min(1).max(120).optional(),brief:StoredReportBriefSchema.optional()},NotificationRunOutcomeSchema=z65.enum(["completed","failed","cancelled"]),NotificationRetainedReasonSchema=z65.enum(["review","agent_requested","recovery"]),NotificationPayloadSchema=z65.discriminatedUnion("topic",[z65.object({topic:z65.literal("agent_question"),questionId:z65.uuid(),title:z65.string().trim().min(1).max(80),description:z65.string().trim().min(1).max(240)}).strict(),z65.object({topic:z65.literal("agent_run_outcome"),threadId:z65.uuid(),invocationId:z65.uuid(),outcome:NotificationRunOutcomeSchema,summary:NotificationSummarySchema,...ReportBriefPayloadSchema}).strict(),z65.object({topic:z65.literal("agent_retained_review"),threadId:z65.uuid(),invocationId:z65.uuid().optional(),proposalId:z65.uuid().optional(),reason:NotificationRetainedReasonSchema,summary:NotificationSummarySchema,...ReportBriefPayloadSchema}).strict(),z65.object({topic:z65.literal("agent_conflict"),mergeId:z65.uuid(),threadId:z65.uuid().optional(),summary:NotificationSummarySchema.optional(),...ReportBriefPayloadSchema}).strict()]),NotificationEnvelopeSchema=z65.object({id:z65.uuid(),projectId:z65.uuid(),sourceKey:z65.string().min(1).max(255),actor:NotificationActorSchema,payloadVersion:z65.literal(1),payload:NotificationPayloadSchema,createdAt:z65.coerce.date()}),NotificationRecipientStateSchema=z65.object({id:z65.uuid(),notificationId:z65.uuid(),projectId:z65.uuid(),userId:z65.string().min(1),readAt:z65.coerce.date().nullable(),archivedAt:z65.coerce.date().nullable(),createdAt:z65.coerce.date(),updatedAt:z65.coerce.date()}),NotificationDeliveryStateSchema=z65.enum(["pending","deferred","sent","suppressed","failed"]),NotificationDeliverySchema=z65.object({id:z65.uuid(),notificationRecipientId:z65.uuid(),projectId:z65.uuid(),channel:NotificationChannelSchema,state:NotificationDeliveryStateSchema,attemptCount:z65.number().int().nonnegative(),nextAttemptAt:z65.coerce.date().nullable(),lastAttemptAt:z65.coerce.date().nullable(),sentAt:z65.coerce.date().nullable(),failureCode:z65.string().max(80).nullable(),createdAt:z65.coerce.date(),updatedAt:z65.coerce.date()}),NotificationPreferenceSchema=z65.object({topic:WorkNotificationTopicSchema,channel:z65.literal("email"),enabled:z65.boolean(),cadence:NotificationDeliveryCadenceSchema.exclude(["off"]),effectiveCadence:NotificationDeliveryCadenceSchema,source:z65.enum(["default","explicit"])}),NotificationSubjectSchema=z65.discriminatedUnion("kind",[z65.object({kind:z65.literal("question"),questionId:z65.uuid()}).strict(),z65.object({kind:z65.literal("run_outcome"),threadId:z65.uuid(),invocationId:z65.uuid(),outcome:NotificationRunOutcomeSchema}).strict(),z65.object({kind:z65.literal("retained_review"),threadId:z65.uuid(),invocationId:z65.uuid().nullable(),proposalId:z65.uuid().nullable(),reason:NotificationRetainedReasonSchema}).strict(),z65.object({kind:z65.literal("merge_conflict"),mergeId:z65.uuid(),threadId:z65.uuid().nullable()}).strict()]),NotificationViewSchema=z65.object({notification:NotificationEnvelopeSchema,recipient:NotificationRecipientStateSchema,subject:NotificationSubjectSchema}),NotificationViewResponseSchema=createResponseSchema2(NotificationViewSchema),NotificationListSchema=z65.object({items:z65.array(NotificationViewSchema),nextCursor:z65.string().nullable(),unreadCount:z65.number().int().nonnegative()}),NotificationListResponseSchema=createResponseSchema2(NotificationListSchema),ListNotificationsQuerySchema=z65.object({topic:WorkNotificationTopicSchema.optional(),actorKind:NotificationActorKindSchema.optional(),actorId:z65.string().min(1).max(120).optional(),sourceKey:z65.string().min(1).max(255).optional(),unread:z65.stringbool().optional(),archived:z65.stringbool().optional(),limit:z65.coerce.number().int().min(1).max(100).optional(),cursor:z65.string().min(1).optional()}).refine(query=>query.actorId===void 0||query.actorKind!==void 0&&query.actorKind!=="system","actorId requires actorKind to be user or agent."),NotificationStateSchema=z65.object({recipient:NotificationRecipientStateSchema,unreadCount:z65.number().int().nonnegative()}),NotificationStateResponseSchema=createResponseSchema2(NotificationStateSchema),UpdateNotificationStateRequestSchema=z65.object({read:z65.boolean().optional(),archived:z65.boolean().optional()}).refine(body=>body.read!==void 0||body.archived!==void 0,"Provide at least one of read or archived."),MAX_QUESTION_DIGEST_PAUSE_DAYS=90,QuestionDigestPreferenceSchema=z65.object({enabled:z65.boolean(),pausedUntil:z65.coerce.date().nullable(),source:z65.enum(["default","explicit"]).optional()})}});import{z as z66}from"zod";var NOTIFICATION_PREFERENCE_GROUPS,NotificationPreferenceGroupSchema,FIMO_TOGGLE_PREFERENCE_ENTRY_IDS,FimoTogglePreferenceEntryIdSchema,FIMO_DELIVERY_PREFERENCE_ENTRY_IDS,FimoDeliveryPreferenceEntryIdSchema,QUESTION_DIGEST_PREFERENCE_ENTRY_ID,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","schedule","usage","question_digest","marketing"],NotificationPreferenceGroupSchema=z66.enum(NOTIFICATION_PREFERENCE_GROUPS),FIMO_TOGGLE_PREFERENCE_ENTRY_IDS=["work_review.agent_question","work_review.agent_conflict","schedule.schedule_health","schedule.schedule_compute_allowance","usage.agent_runtime_allowance"],FimoTogglePreferenceEntryIdSchema=z66.enum(FIMO_TOGGLE_PREFERENCE_ENTRY_IDS),FIMO_DELIVERY_PREFERENCE_ENTRY_IDS=["work_review.agent_retained_review","work_review.agent_run_outcome"],FimoDeliveryPreferenceEntryIdSchema=z66.enum(FIMO_DELIVERY_PREFERENCE_ENTRY_IDS),QUESTION_DIGEST_PREFERENCE_ENTRY_ID="question_digest",MARKETING_PREFERENCE_ENTRY_PREFIX="marketing.",PreferenceSourceSchema=z66.enum(["default","explicit"]),EmailNotificationProviderSyncSchema=z66.enum(["synced","pending","unavailable"]),EmailNotificationPreferenceSchema=z66.object({enabled:z66.boolean(),source:PreferenceSourceSchema,providerSync:EmailNotificationProviderSyncSchema}).strict(),PROVIDER_SUBSCRIPTION_PLACEMENTS=["reports","product_news"],ProviderSubscriptionPlacementSchema=z66.enum(PROVIDER_SUBSCRIPTION_PLACEMENTS),PROVIDER_SUBSCRIPTION_SEMANTIC_IDS=["weekly_analytics"],ProviderSubscriptionSemanticIdSchema=z66.enum(PROVIDER_SUBSCRIPTION_SEMANTIC_IDS),NotificationPreferenceEntrySchema=z66.discriminatedUnion("kind",[z66.object({kind:z66.literal("toggle"),id:FimoTogglePreferenceEntryIdSchema,group:z66.enum(["work_review","schedule","usage"]),enabled:z66.boolean(),source:PreferenceSourceSchema}).strict(),z66.object({kind:z66.literal("delivery"),id:FimoDeliveryPreferenceEntryIdSchema,group:z66.literal("work_review"),cadence:NotificationDeliveryCadenceSchema,source:PreferenceSourceSchema}).strict(),z66.object({kind:z66.literal("pause_toggle"),id:z66.literal(QUESTION_DIGEST_PREFERENCE_ENTRY_ID),group:z66.literal("question_digest"),enabled:z66.boolean(),source:PreferenceSourceSchema,pausedUntil:z66.coerce.date().nullable()}).strict(),z66.object({kind:z66.literal("provider_subscription"),id:z66.string().startsWith(MARKETING_PREFERENCE_ENTRY_PREFIX),group:z66.literal("marketing"),name:z66.string(),description:z66.string().nullable(),placement:ProviderSubscriptionPlacementSchema,semanticId:ProviderSubscriptionSemanticIdSchema.nullable(),enabled:z66.boolean(),source:PreferenceSourceSchema}).strict()]),NotificationPreferenceCatalogSchema=z66.object({email:EmailNotificationPreferenceSchema,entries:z66.array(NotificationPreferenceEntrySchema),unavailableGroups:z66.array(NotificationPreferenceGroupSchema)}),NotificationPreferenceCatalogResponseSchema=createResponseSchema2(NotificationPreferenceCatalogSchema),NotificationPreferenceEntryResponseSchema=createResponseSchema2(NotificationPreferenceEntrySchema),UpdateEmailNotificationPreferenceRequestSchema=z66.object({enabled:z66.boolean()}).strict(),EmailNotificationPreferenceResponseSchema=createResponseSchema2(EmailNotificationPreferenceSchema),UpdateNotificationPreferenceEntryRequestSchema=z66.discriminatedUnion("kind",[z66.object({kind:z66.literal("toggle"),enabled:z66.boolean()}).strict(),z66.object({kind:z66.literal("delivery"),cadence:NotificationDeliveryCadenceSchema}).strict(),z66.object({kind:z66.literal("pause_toggle"),enabled:z66.boolean(),pauseDays:z66.number().int().min(1).max(MAX_QUESTION_DIGEST_PAUSE_DAYS).nullable().optional()}).strict().refine(body=>body.enabled||!body.pauseDays,"Pausing requires the toggle to be enabled."),z66.object({kind:z66.literal("provider_subscription"),enabled:z66.boolean()}).strict()])}});import{z as z67}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=z67.object({surface:SurfaceNameSchema,key:z67.string(),label:z67.string()}),InlineSchema=z67.object({text:z67.string(),ref:DiffRefSchema.optional()}),SummaryBlockSchema=z67.discriminatedUnion("type",[z67.object({type:z67.literal("paragraph"),content:z67.array(InlineSchema).max(24)}),z67.object({type:z67.literal("preview"),ref:DiffRefSchema,caption:z67.string().optional()}),z67.object({type:z67.literal("code"),code:z67.string(),lang:z67.string().optional(),caption:z67.string().optional()}),z67.object({type:z67.literal("risk"),level:z67.enum(["warning","error"]),content:z67.array(InlineSchema).max(24)}),z67.object({type:z67.literal("list"),items:z67.array(z67.array(InlineSchema).max(24)).max(8)})]),EnvDiffSummarySchema=z67.object({headline:z67.string(),blocks:z67.array(SummaryBlockSchema).max(15)}),EnvDiffSummaryResultSchema=z67.object({summary:EnvDiffSummarySchema,fingerprint:z67.string(),generatedAt:z67.coerce.date(),cached:z67.boolean().optional(),credits:z67.number().int().nonnegative().optional()}),EnvDiffSummaryResultDTO=createDTO(EnvDiffSummaryResultSchema),EnvDiffSummaryResponseSchema=createResponseSchema2(EnvDiffSummaryResultSchema)}});import{z as z68}from"zod";var PROJECT_ANALYTICS_PRESETS,PROJECT_ANALYTICS_GROUP_BY_OPTIONS,ProjectDailyVisitorsDTOSchema,ProjectAnalyticsBreakdownItemDTOSchema,ProjectAnalyticsPageBreakdownItemDTOSchema,ProjectAnalyticsRangeDTOSchema,ProjectAnalyticsAnnotationDTOSchema,ProjectPageviewAnalyticsDTOSchema,ProjectPageviewAnalyticsDTO,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=z68.object({date:z68.string(),visitors:z68.number().int().nonnegative()}),ProjectAnalyticsBreakdownItemDTOSchema=z68.object({key:z68.string(),visitors:z68.number().int().nonnegative(),pageviews:z68.number().int().nonnegative()}),ProjectAnalyticsPageBreakdownItemDTOSchema=z68.object({path:z68.string(),pageName:z68.string().nullable().optional(),visitors:z68.number().int().nonnegative(),pageviews:z68.number().int().nonnegative()}),ProjectAnalyticsRangeDTOSchema=z68.object({preset:z68.enum(PROJECT_ANALYTICS_PRESETS),requestedFrom:z68.string(),requestedTo:z68.string(),effectiveFrom:z68.string(),effectiveTo:z68.string(),isRetentionLimited:z68.boolean(),groupBy:z68.enum(PROJECT_ANALYTICS_GROUP_BY_OPTIONS)}),ProjectAnalyticsAnnotationDTOSchema=z68.object({date:z68.string(),content:z68.string(),updatedAt:z68.string(),updatedByUserId:z68.string()}),ProjectPageviewAnalyticsDTOSchema=z68.object({range:ProjectAnalyticsRangeDTOSchema,visitors:z68.number().int().nonnegative(),pageviews:z68.number().int().nonnegative(),bounceRate:z68.number().min(0).max(100),viewsPerVisit:z68.number().nonnegative(),averageVisitDurationSeconds:z68.number().nonnegative(),visitorsSeries:z68.array(ProjectDailyVisitorsDTOSchema),topPages:z68.array(ProjectAnalyticsPageBreakdownItemDTOSchema),topBrowsers:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),topDevices:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),topCountries:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),topSources:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),annotations:z68.array(ProjectAnalyticsAnnotationDTOSchema)}),ProjectPageviewAnalyticsDTO=createDTO(ProjectPageviewAnalyticsDTOSchema),ProjectAnalyticsAnnotationDTO=createDTO(ProjectAnalyticsAnnotationDTOSchema)}});import{z as z69}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_common2();init_create_dto();ProjectInviteDTOSchema=z69.object({id:z69.string(),email:z69.email(),roleKey:ProjectRoleKeySchema,status:ProjectInviteStatusSchema,expiresAt:z69.coerce.date(),createdAt:z69.coerce.date(),inviterUserId:z69.string()}),ProjectInviteDTO=createDTO(ProjectInviteDTOSchema),CreatedProjectInviteDTOSchema=z69.object({id:z69.string(),token:z69.string()}),CreatedProjectInviteDTO=createDTO(CreatedProjectInviteDTOSchema),AcceptedProjectInviteDTOSchema=z69.object({success:z69.boolean(),projectId:z69.string().optional()}),AcceptedProjectInviteDTO=createDTO(AcceptedProjectInviteDTOSchema)}});import{z as z70}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=z70.object({id:z70.string(),name:z70.string(),image:z70.string().nullable()}),PublicUserDTO=createDTO(PublicUserDTOSchema),ReferralCountCTOSchema=z70.object({count:z70.int()}),ReferralCountCTO=createDTO(ReferralCountCTOSchema),ReferralSummaryCTOSchema=z70.object({counts:z70.object({signed_up:z70.int(),activated:z70.int()}),credits:z70.object({total:z70.int()})}),ReferralSummaryCTO=createDTO(ReferralSummaryCTOSchema),AuthenticatedUserDTOSchema=PublicUserDTOSchema.extend({email:z70.email(),emailVerified:z70.boolean(),createdAt:z70.coerce.date(),updatedAt:z70.coerce.date()}),AuthenticatedUserDTO=createDTO(AuthenticatedUserDTOSchema),AuthenticatedUserResponseSchema=createResponseSchema2(AuthenticatedUserDTOSchema),ReferralCountResponseSchema=createResponseSchema2(ReferralCountCTOSchema),ReferralSummaryResponseSchema=createResponseSchema2(ReferralSummaryCTOSchema)}});import{z as z71}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_common2();init_create_dto();init_response();init_project_invite_dto();init_user_dto();ProjectAccessItemDTOSchema=z71.object({id:z71.string(),principalType:ProjectPrincipalTypeSchema,principalId:z71.string().nullable(),roleKey:ProjectRoleKeySchema,createdAt:z71.coerce.date(),expiresAt:z71.coerce.date().nullable(),user:PublicUserDTOSchema.nullable()}),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","code:view","code:edit","content:view","content:edit","chat:read","chat:prompt","history:view","history:manage","comment:read","comment:create","comment:delete","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=z71.enum(PROJECT_PERMISSION_KEYS),ProjectPermissionsDTOSchema=z71.object({role:ProjectRoleKeyWithSystemSchema.nullable(),permissions:z71.record(z71.string(),z71.boolean())}),ProjectPermissionsDTO=createDTO(ProjectPermissionsDTOSchema),ProjectAccessDTOSchema=z71.object({access:z71.array(ProjectAccessItemDTOSchema),invites:z71.array(ProjectInviteDTOSchema),organization:z71.object({name:z71.string().nullable(),logo:z71.string().nullable()}).nullable()}),ProjectAccessDTO=createDTO(ProjectAccessDTOSchema),AccessMutationResponseSchema=createResponseSchema2(z71.object({success:z71.boolean()})),InviteAcceptResponseSchema=createResponseSchema2(z71.object({success:z71.boolean(),projectId:z71.uuid()}))}});import{z as z72}from"zod";var PublicationStateDTOSchema,PublicationStateDTO,init_publication_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/publication.dto.js"(){"use strict";init_common2();init_create_dto();PublicationStateDTOSchema=z72.object({publicationStatus:PublicationStatusSchema,appUrl:z72.string().nullable(),lastPublishedAt:z72.string().nullable()}),PublicationStateDTO=createDTO(PublicationStateDTOSchema)}});import{z as z73}from"zod";var PreviewBridgePackageSchema,PreviewBridgeCapabilitySchema,SandboxSessionDTOSchema,SandboxSessionDTO,SandboxSessionResponseSchema,PreviewInstallApprovalTargetSchema,PreviewInstallRepairSchema,SandboxSessionInstallPolicyErrorSchema,PreviewInstallPolicyApprovalRequestSchema,PreviewInstallPolicyApprovalEventSchema,init_sandbox_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/sandbox.dto.js"(){"use strict";init_create_dto();init_response();PreviewBridgePackageSchema=z73.object({name:z73.string().min(1),version:z73.string().min(1)}),PreviewBridgeCapabilitySchema=z73.object({integrated:z73.boolean(),packages:z73.array(PreviewBridgePackageSchema)}),SandboxSessionDTOSchema=z73.object({url:z73.url(),expiresAt:z73.iso.datetime(),previewBridge:PreviewBridgeCapabilitySchema.optional()}),SandboxSessionDTO=createDTO(SandboxSessionDTOSchema),SandboxSessionResponseSchema=createResponseSchema2(SandboxSessionDTOSchema),PreviewInstallApprovalTargetSchema=z73.object({name:z73.string().min(1),locator:z73.string().min(1).optional(),source:z73.enum(["registry","tarball","unsupported"])}).refine(target=>target.source==="tarball"==(target.locator!==void 0),{message:"locator is present exactly when source is tarball"}),PreviewInstallRepairSchema=z73.object({kind:z73.literal("dependency_build_scripts_blocked"),packageManager:z73.enum(["pnpm","yarn","bun"]),packages:z73.array(z73.string()),targets:z73.array(PreviewInstallApprovalTargetSchema).optional(),configFile:z73.string(),approvalKey:z73.string(),command:z73.string().optional(),approval:z73.object({id:z73.uuid()}).optional()}),SandboxSessionInstallPolicyErrorSchema=z73.object({code:z73.literal("PREVIEW_INSTALL_POLICY_BLOCKED"),message:z73.string(),repair:PreviewInstallRepairSchema}),PreviewInstallPolicyApprovalRequestSchema=z73.object({approvalId:z73.uuid()}),PreviewInstallPolicyApprovalEventSchema=z73.discriminatedUnion("type",[z73.object({type:z73.literal("progress"),step:z73.enum(["approval","install","restart","readiness"]),message:z73.string()}),z73.object({type:z73.literal("approved")}),z73.object({type:z73.literal("complete")}),z73.object({type:z73.literal("error"),code:z73.enum(["stale_approval","approval_failed","install_failed","restart_failed"]),message:z73.string()})])}});import{z as z74}from"zod";var OrganizationDTOSchema,OrganizationDTO,MemberUserDTOSchema,OrganizationMemberDTOSchema,OrganizationMemberDTO,init_organization_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/organization.dto.js"(){"use strict";init_common2();init_create_dto();OrganizationDTOSchema=BaseEntitySchema.extend({name:z74.string(),slug:z74.string().nullable(),logo:z74.string().nullable(),metadata:z74.record(z74.string(),z74.unknown()).nullable()}),OrganizationDTO=createDTO(OrganizationDTOSchema),MemberUserDTOSchema=z74.object({id:z74.string(),name:z74.string(),email:z74.email(),image:z74.string().nullable()}),OrganizationMemberDTOSchema=z74.object({id:z74.string(),userId:z74.string(),organizationId:z74.string(),role:OrganizationRoleSchema,user:MemberUserDTOSchema,createdAt:z74.coerce.date()}),OrganizationMemberDTO=createDTO(OrganizationMemberDTOSchema)}});import{z as z75}from"zod";var CancellationReasonCodeSchema,CancellationFeedbackDTOSchema,CancellationFeedbackDTO,PlanMigrationAcceptDTOSchema,PlanMigrationPreviewDTOSchema,PlanMigrationPreviewDTO,PlanMigrationStateSchema,PlanMigrationOfferDTOSchema,PlanMigrationOfferDTO,AiCreditsEntitlementSchema,EntitlementsDTOSchema,MediaStorageUsageDTOSchema,MediaStorageUsageDTO,PendingPlanChangeDTOSchema,HostingOverageStatusDTOSchema,HostingOverageStatusDTO,UpdateHostingOverageRequestSchema,SubscriptionDTOSchema,SubscriptionDTO,DailyCreditsStatusSchema,CreditBalanceDTOSchema,CreditBalanceDTO,MinimalCreditBalanceDTOSchema,MinimalCreditBalanceDTO,ProjectCreditBucketsDTOSchema,ProjectDailyCreditAllowanceDTOSchema,ProjectCreditBalanceDTOSchema,ProjectCreditBalanceDTO,AgentRuntimeUsageStateSchema,AgentRuntimeUsageDTOSchema,AgentRuntimeUsageDTO,AutoRefillConfigDTOSchema,AutoRefillConfigDTO,UpdateAutoRefillDTOSchema,SuccessfulPurchaseDTOSchema,SuccessfulPurchaseDTO,PortalDTOSchema,PortalDTO,CreditBalanceResponseSchema,MinimalCreditBalanceResponseSchema,ProjectCreditBalanceResponseSchema,AutoRefillConfigResponseSchema,SuccessfulPurchaseResponseSchema,SubscriptionResponseSchema,EntitlementsResponseSchema,PortalResponseSchema,init_billing_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/billing.dto.js"(){"use strict";init_common2();init_create_dto();init_response();CancellationReasonCodeSchema=z75.enum(["just_testing","too_expensive","not_using_enough","missing_features","bug_or_technical_issue","switching_to_another_tool","closing_or_pausing_business","other"]),CancellationFeedbackDTOSchema=z75.object({reason:CancellationReasonCodeSchema,details:z75.string().trim().max(1e3).nullable().optional().transform(value=>value||null)}).superRefine((value,ctx)=>{value.reason==="other"&&!value.details&&ctx.addIssue({code:z75.ZodIssueCode.custom,message:"Details are required when selecting other.",path:["details"]})}),CancellationFeedbackDTO=createDTO(CancellationFeedbackDTOSchema),PlanMigrationAcceptDTOSchema=z75.object({offerVersion:z75.string().trim().min(1),unusedPremiumCreditAmount:z75.number().int().nonnegative(),amountDueNow:z75.number().int().nonnegative(),renewsOn:z75.string()}),PlanMigrationPreviewDTOSchema=z75.object({currency:z75.string().trim().min(1),unusedPremiumCreditAmount:z75.number().int().nonnegative(),amountDueNow:z75.number().int().nonnegative(),startsAt:z75.string(),renewsAt:z75.string(),nextRenewalAmount:z75.number().int().nonnegative()}),PlanMigrationPreviewDTO=createDTO(PlanMigrationPreviewDTOSchema),PlanMigrationStateSchema=z75.enum(["legacy_active","notified","accepting","accepted","declining","free","expired","canceled"]),PlanMigrationOfferDTOSchema=z75.object({id:z75.string(),organizationId:z75.string(),legacySubscriptionId:z75.string(),offeredPlanCode:z75.string(),offeredPlanName:z75.string(),offeredPriceAmount:z75.number(),offeredCurrency:z75.string(),offerVersion:z75.string(),state:PlanMigrationStateSchema,checkoutToken:z75.string().nullable(),deadlineAt:z75.string(),transitions:z75.array(z75.object({event:z75.string(),fromState:PlanMigrationStateSchema,toState:PlanMigrationStateSchema,createdAt:z75.string()}))}),PlanMigrationOfferDTO=createDTO(PlanMigrationOfferDTOSchema),AiCreditsEntitlementSchema=z75.object({included:z75.number().optional(),unitPrice:z75.number().optional(),dailyCap:z75.number().nullable().optional()}),EntitlementsDTOSchema=z75.object({ai_credits:AiCreditsEntitlementSchema.optional(),analytics:z75.object({retentionDays:z75.number().int().positive(),canUseExtendedDateRanges:z75.boolean()}).optional(),history:z75.object({retentionDays:z75.number().int().positive()}).optional(),members:z75.object({canInvite:z75.boolean(),maxMembers:z75.number().int().positive().nullable()}).optional(),projects:z75.object({maxProjects:z75.number().int().positive().nullable()}).optional(),domains:z75.object({canUseCustomDomains:z75.boolean(),maxDomains:z75.number().int().nonnegative().nullable()}).optional(),media_storage:z75.object({limitBytes:z75.number().int().nonnegative()}).optional()}),MediaStorageUsageDTOSchema=z75.object({usedBytes:z75.number().int().nonnegative().nullable(),limitBytes:z75.number().int().nonnegative().nullable(),state:z75.enum(["ready","unavailable"]),measuredAt:z75.iso.datetime().nullable()}),MediaStorageUsageDTO=createDTO(MediaStorageUsageDTOSchema),PendingPlanChangeDTOSchema=z75.object({toPlanCode:TemplateCodeSchema,effectiveAt:z75.string(),scheduledAt:z75.string().nullable()}),HostingOverageStatusDTOSchema=z75.object({state:z75.enum(["ready","unavailable"]),planCode:z75.string(),overageAvailable:z75.boolean(),overageEnabled:z75.boolean(),monthlyCapUsd:z75.number().int().positive().nullable(),periodStart:z75.iso.datetime().nullable(),periodEnd:z75.iso.datetime().nullable(),usedBytes:z75.number().nonnegative().nullable(),includedBytes:z75.number().nonnegative().nullable(),overageBytes:z75.number().nonnegative(),currentOverageAmountMicros:z75.number().nonnegative().nullable(),currency:z75.string().nullable(),status:z75.enum(["ok","near_limit","paused"])}),HostingOverageStatusDTO=createDTO(HostingOverageStatusDTOSchema),UpdateHostingOverageRequestSchema=z75.object({enabled:z75.boolean(),monthlyCapUsd:z75.number().int().positive().max(1e6).optional()}).refine(value=>!value.enabled||value.monthlyCapUsd!==void 0,{message:"Enabling overages requires a monthly cap"}),SubscriptionDTOSchema=z75.object({id:z75.string(),external_id:z75.string(),customerId:z75.string(),planId:z75.string(),planCode:z75.union([TemplateCodeSchema,z75.literal("Unknown")]),currentPeriod:z75.object({start:z75.string(),end:z75.string().nullable()}),cancelAt:z75.string().nullable(),pendingPlanChange:PendingPlanChangeDTOSchema.nullable(),entitlements:EntitlementsDTOSchema,currency:z75.string(),nextPaymentAt:z75.string().nullable(),baseAmount:z75.number()}),SubscriptionDTO=createDTO(SubscriptionDTOSchema),DailyCreditsStatusSchema=z75.object({totalCap:z75.number(),dailyCap:z75.number(),usedTotal:z75.number()}),CreditBalanceDTOSchema=z75.object({total:z75.number(),base:z75.number(),dailyBase:z75.number(),purchases:z75.number(),awards:z75.number(),daily:DailyCreditsStatusSchema.optional()}),CreditBalanceDTO=createDTO(CreditBalanceDTOSchema),MinimalCreditBalanceDTOSchema=z75.object({total:z75.number(),nearLimit:z75.boolean(),canChat:z75.boolean(),daily:DailyCreditsStatusSchema.optional()}),MinimalCreditBalanceDTO=createDTO(MinimalCreditBalanceDTOSchema),ProjectCreditBucketsDTOSchema=z75.object({dailyFreeAvailable:z75.number(),monthlyAvailable:z75.number(),purchasedAvailable:z75.number(),awardedAvailable:z75.number()}),ProjectDailyCreditAllowanceDTOSchema=z75.object({periodCap:z75.number(),dailyGrant:z75.number(),usedThisPeriod:z75.number(),remainingThisPeriod:z75.number()}),ProjectCreditBalanceDTOSchema=z75.object({projectId:z75.uuid(),organizationId:z75.string(),balance:z75.object({totalAvailable:z75.number(),nearLimit:z75.boolean(),canUseAi:z75.boolean(),buckets:ProjectCreditBucketsDTOSchema}),allowances:z75.object({dailyCredits:ProjectDailyCreditAllowanceDTOSchema.nullable()})}),ProjectCreditBalanceDTO=createDTO(ProjectCreditBalanceDTOSchema),AgentRuntimeUsageStateSchema=z75.enum(["ok","near_limit","exhausted"]),AgentRuntimeUsageDTOSchema=z75.object({planCode:z75.enum(["Free","PAYG","Premium","Pro"]),state:AgentRuntimeUsageStateSchema,usage:z75.object({source:z75.enum(["cached_subscription","free_fallback"]),settledMs:z75.number().int().nonnegative(),activeMs:z75.number().int().nonnegative(),reservedMs:z75.number().int().nonnegative().optional(),includedMs:z75.number().int().positive(),remainingMs:z75.number().int().nonnegative(),resetsAt:z75.coerce.date()})}),AgentRuntimeUsageDTO=createDTO(AgentRuntimeUsageDTOSchema),AutoRefillConfigDTOSchema=z75.discriminatedUnion("enabled",[z75.object({enabled:z75.literal(!0),thresholdUsd:z75.number().nonnegative(),refillAmountUsd:z75.number().nonnegative()}),z75.object({enabled:z75.literal(!1),thresholdUsd:z75.number().nonnegative().nullable(),refillAmountUsd:z75.null()})]),AutoRefillConfigDTO=createDTO(AutoRefillConfigDTOSchema),UpdateAutoRefillDTOSchema=z75.discriminatedUnion("enabled",[z75.object({enabled:z75.literal(!0),thresholdUsd:z75.number().min(.01).multipleOf(.01),refillAmountUsd:z75.number().min(.01).multipleOf(.01)}).strict(),z75.object({enabled:z75.literal(!1),thresholdUsd:z75.number().min(.01).multipleOf(.01)}).strict()]),SuccessfulPurchaseDTOSchema=z75.object({invoiceId:z75.string(),newBalance:z75.int(),creditCount:z75.int(),amountUsd:z75.number()}),SuccessfulPurchaseDTO=createDTO(SuccessfulPurchaseDTOSchema),PortalDTOSchema=z75.object({url:z75.string()}),PortalDTO=createDTO(PortalDTOSchema),CreditBalanceResponseSchema=createResponseSchema2(CreditBalanceDTOSchema),MinimalCreditBalanceResponseSchema=createResponseSchema2(MinimalCreditBalanceDTOSchema),ProjectCreditBalanceResponseSchema=createResponseSchema2(ProjectCreditBalanceDTOSchema),AutoRefillConfigResponseSchema=createResponseSchema2(AutoRefillConfigDTOSchema),SuccessfulPurchaseResponseSchema=createResponseSchema2(SuccessfulPurchaseDTOSchema),SubscriptionResponseSchema=createResponseSchema2(SubscriptionDTOSchema),EntitlementsResponseSchema=createResponseSchema2(EntitlementsDTOSchema),PortalResponseSchema=createResponseSchema2(PortalDTOSchema)}});import{z as z76}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=z76.object({brand:z76.string(),last4:z76.string(),exp:z76.string(),isDefault:z76.boolean()}),PaymentMethodDTO=createDTO(PaymentMethodDTOSchema)}});import{z as z77}from"zod";var FieldDefinitionSchema,SchemaFieldPathSchema,SchemaMigrationOperationSchema,ContentTypeI18nSchema,ContentFieldGroupSchema,ContentTypeDTOSchema,ContentTypeDTO,SchemaDTOSchema,SchemaDTO,EntryDTOSchema2,EntryDTO,PaginatedEntriesDTOSchema2,PaginatedEntriesDTO,EntryCountDTOSchema,EntryCountDTO,EntryCountsDTOSchema,EntryCountsDTO,EntryTranslationGapDTOSchema,EntryTranslationGapDTO,EntryTranslationGapResponseSchema,ContentTypeResponseSchema,ContentTypeListResponseSchema,SchemaResponseSchema,EntryResponseSchema2,EntryListResponseSchema,MAX_BULK_ENTRIES2,entryWhereScalarSchema2,entryWhereOperatorSchema2,nestedEntryWhereSchema2,EntryWhereSchema2,EntryMutationBodySchema2,entryIdsSchema,EntrySqlQueryRequestSchema,BulkCreateEntriesRequestSchema,BulkUpdateEntriesRequestSchema,BulkDeleteEntriesRequestSchema,EntrySqlQueryResponseSchema,EntrySqlQueryResponseDTO,BulkCreateEntriesResponseSchema2,BulkCreateEntriesResponseDTO,BulkUpdateEntriesResponseSchema2,BulkUpdateEntriesResponseDTO,BulkDeleteEntriesResponseSchema2,BulkDeleteEntriesResponseDTO,init_content_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/content.dto.js"(){"use strict";init_common2();init_content_fields();init_create_dto();init_response();FieldDefinitionSchema=ContentFieldDefinitionSchema,SchemaFieldPathSchema=z77.string().superRefine((path53,ctx)=>{let segments=path53.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=z77.object({type:z77.literal("renameField"),contentType:z77.string().regex(CONTENT_TYPE_NAME_PATTERN),from:SchemaFieldPathSchema,to:SchemaFieldPathSchema}).strict(),ContentTypeI18nSchema=z77.object({enabled:z77.boolean()}).strict(),ContentFieldGroupSchema=z77.object({id:z77.string().regex(CONTENT_FIELD_NAME_PATTERN),label:z77.string().min(1).max(255),default:z77.boolean().optional()}).strict(),ContentTypeDTOSchema=z77.object({id:z77.string(),name:z77.string(),label:z77.string(),isSingleton:z77.boolean(),i18n:ContentTypeI18nSchema,groups:z77.array(ContentFieldGroupSchema).default([]),fields:z77.record(z77.string(),FieldDefinitionSchema),createdAt:z77.string(),updatedAt:z77.string()}),ContentTypeDTO=createDTO(ContentTypeDTOSchema),SchemaDTOSchema=z77.object({contentTypes:z77.array(ContentTypeDTOSchema)}),SchemaDTO=createDTO(SchemaDTOSchema),EntryDTOSchema2=z77.object({id:z77.string(),entryId:z77.string(),documentId:z77.string(),slug:z77.string(),locale:z77.string().optional(),createdAt:z77.string(),updatedAt:z77.string(),__fimo:z77.object({contentType:z77.string()})}).passthrough(),EntryDTO=createDTO(EntryDTOSchema2),PaginatedEntriesDTOSchema2=z77.object({data:z77.array(EntryDTOSchema2),meta:z77.object({limit:z77.number(),offset:z77.number(),total:z77.number(),hasMore:z77.boolean()})}),PaginatedEntriesDTO=createDTO(PaginatedEntriesDTOSchema2),EntryCountDTOSchema=z77.object({contentType:z77.string(),count:z77.number()}),EntryCountDTO=createDTO(EntryCountDTOSchema),EntryCountsDTOSchema=z77.object({counts:z77.array(EntryCountDTOSchema)}),EntryCountsDTO=createDTO(EntryCountsDTOSchema),EntryTranslationGapDTOSchema=z77.object({count:z77.number().int().nonnegative(),sourceLocale:z77.string(),targetLocale:z77.string()}),EntryTranslationGapDTO=createDTO(EntryTranslationGapDTOSchema),EntryTranslationGapResponseSchema=createResponseSchema2(EntryTranslationGapDTOSchema),ContentTypeResponseSchema=createResponseSchema2(ContentTypeDTOSchema),ContentTypeListResponseSchema=createResponseSchema2(z77.array(ContentTypeDTOSchema)),SchemaResponseSchema=createResponseSchema2(SchemaDTOSchema),EntryResponseSchema2=createResponseSchema2(EntryDTOSchema2),EntryListResponseSchema=createResponseSchema2(z77.array(EntryDTOSchema2)),MAX_BULK_ENTRIES2=1e3,entryWhereScalarSchema2=z77.union([z77.string(),z77.number(),z77.boolean(),z77.null()]),entryWhereOperatorSchema2=z77.object({$eq:entryWhereScalarSchema2.optional(),$ne:entryWhereScalarSchema2.optional(),$gt:entryWhereScalarSchema2.optional(),$gte:entryWhereScalarSchema2.optional(),$lt:entryWhereScalarSchema2.optional(),$lte:entryWhereScalarSchema2.optional(),$in:z77.array(entryWhereScalarSchema2).optional(),$nin:z77.array(entryWhereScalarSchema2).optional(),$contains:z77.string().optional(),$startsWith:z77.string().optional(),$null:z77.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema2=z77.record(z77.string(),z77.union([entryWhereScalarSchema2,entryWhereOperatorSchema2])),EntryWhereSchema2=z77.record(z77.string(),z77.union([entryWhereScalarSchema2,entryWhereOperatorSchema2,nestedEntryWhereSchema2])),EntryMutationBodySchema2=z77.object({data:z77.record(z77.string(),z77.unknown()),locale:z77.string().min(1).optional(),documentId:z77.uuid().optional()}),entryIdsSchema=z77.array(z77.uuid()).min(1).max(MAX_BULK_ENTRIES2),EntrySqlQueryRequestSchema=z77.object({sql:z77.string().min(1)}),BulkCreateEntriesRequestSchema=z77.object({entries:z77.array(EntryMutationBodySchema2).min(1).max(MAX_BULK_ENTRIES2)}),BulkUpdateEntriesRequestSchema=z77.union([z77.object({ids:entryIdsSchema,body:EntryMutationBodySchema2}),z77.object({where:EntryWhereSchema2,body:EntryMutationBodySchema2}),z77.object({updates:z77.array(z77.object({id:z77.uuid(),body:EntryMutationBodySchema2})).min(1).max(MAX_BULK_ENTRIES2)})]),BulkDeleteEntriesRequestSchema=z77.union([z77.object({ids:entryIdsSchema,locale:z77.string().min(1).optional()}),z77.object({where:EntryWhereSchema2,locale:z77.string().min(1).optional()})]),EntrySqlQueryResponseSchema=z77.object({data:z77.array(z77.record(z77.string(),z77.unknown())),meta:z77.object({rowCount:z77.number().int().nonnegative(),truncated:z77.boolean()})}),EntrySqlQueryResponseDTO=createDTO(EntrySqlQueryResponseSchema),BulkCreateEntriesResponseSchema2=z77.object({data:z77.array(EntryDTOSchema2),meta:z77.object({created:z77.number().int().nonnegative()})}),BulkCreateEntriesResponseDTO=createDTO(BulkCreateEntriesResponseSchema2),BulkUpdateEntriesResponseSchema2=z77.object({data:z77.array(EntryDTOSchema2),meta:z77.object({updated:z77.number().int().nonnegative(),missing:z77.array(z77.string())})}),BulkUpdateEntriesResponseDTO=createDTO(BulkUpdateEntriesResponseSchema2),BulkDeleteEntriesResponseSchema2=z77.object({data:z77.array(EntryDTOSchema2),meta:z77.object({deleted:z77.number().int().nonnegative(),missing:z77.array(z77.string())})}),BulkDeleteEntriesResponseDTO=createDTO(BulkDeleteEntriesResponseSchema2)}});import{z as z78}from"zod";var UniqueConflictSchema,UniqueConflictErrorSchema,init_unique_conflict_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/unique-conflict.dto.js"(){"use strict";UniqueConflictSchema=z78.object({index:z78.number().int().nonnegative(),contentType:z78.string(),field:z78.string(),value:z78.string(),against:z78.enum(["stored","batch"]),ownerDocumentId:z78.uuid().optional(),ownerIndex:z78.number().int().nonnegative().optional()}),UniqueConflictErrorSchema=z78.object({code:z78.literal("unique_conflict"),message:z78.string(),conflicts:z78.array(UniqueConflictSchema),truncated:z78.boolean().optional()})}});import{z as z79}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=z79.object({kind:z79.literal("unique_conflict"),contentType:z79.string(),field:z79.string(),value:z79.string(),documentCount:z79.number().int().positive(),documentIds:z79.array(z79.uuid()),documentIdsTruncated:z79.boolean().optional()}),SchemaTransitionIssueSchema=UniqueConflictIssueSchema,SchemaTransitionRejectedErrorSchema=z79.object({code:z79.literal("schema_transition_rejected"),message:z79.string(),issues:z79.array(SchemaTransitionIssueSchema),truncated:z79.boolean().optional()})}});import{z as z80}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_common2();init_create_dto();init_response();CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS=200,CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH=255,CmsContentTypeNameSchema=z80.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_TYPE_NAME_PATTERN),CmsFieldNameSchema=z80.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_FIELD_NAME_PATTERN),CmsCollectionOrderSchema=z80.array(CmsContentTypeNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsFieldOrderSchema=z80.array(CmsFieldNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsListSortSchema=z80.object({field:CmsFieldNameSchema,direction:z80.enum(["asc","desc"])}),CmsDisplayDefaultsDTOSchema=z80.object({collectionOrder:CmsCollectionOrderSchema.nullable(),fieldOrders:z80.record(CmsContentTypeNameSchema,CmsFieldOrderSchema),listSorts:z80.record(CmsContentTypeNameSchema,CmsListSortSchema)}),CmsDisplayDefaultsDTO=createDTO(CmsDisplayDefaultsDTOSchema),CmsCollectionOrderRequestSchema=z80.object({order:CmsCollectionOrderSchema}),CmsFieldOrderRequestSchema=z80.object({order:CmsFieldOrderSchema}),CmsDisplayDefaultsResponseSchema=createResponseSchema2(CmsDisplayDefaultsDTOSchema)}});import{z as z81}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=z81.enum(MIGRATION_SOURCE_PLATFORMS)}});import{z as z82}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=z82.enum(CLIENT_TRACKED_EVENTS),TrackProjectEventRequestSchema=z82.object({event:ClientTrackedEventSchema,properties:z82.record(z82.string(),z82.unknown()).default({})})}});import{z as z83}from"zod";var AssetPathItemSchema,AssetDTOSchema2,AssetDTO,AssetTreeNodeDTOSchema,AssetTreeNodeDTO,AssetResponseSchema2,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_common2();init_create_dto();init_response();AssetPathItemSchema=z83.object({id:z83.string(),name:z83.string()}),AssetDTOSchema2=z83.object({id:z83.string(),name:z83.string(),type:AssetTypeSchema,originalFileName:z83.string().nullable(),parentId:z83.string().nullable(),mimeType:z83.string().nullable(),fileSize:z83.number().nullable(),url:z83.string().nullable(),storageKey:z83.string().nullable(),createdAt:z83.string(),updatedAt:z83.string(),altText:z83.string().nullable().optional(),caption:z83.string().nullable().optional(),aiCaption:z83.string().nullable().optional(),aiAltText:z83.string().nullable().optional(),aiTags:z83.array(z83.string()).nullable().optional(),aiPrimaryColor:z83.string().nullable().optional(),aiProcessingStatus:z83.string().nullable().optional(),width:z83.number().nullable().optional(),height:z83.number().nullable().optional(),path:z83.array(AssetPathItemSchema).optional(),hasChildren:z83.boolean().optional()}),AssetDTO=createDTO(AssetDTOSchema2),AssetTreeNodeDTOSchema=AssetDTOSchema2.extend({children:z83.lazy(()=>z83.array(AssetTreeNodeDTOSchema)).optional()}),AssetTreeNodeDTO=createDTO(AssetTreeNodeDTOSchema),AssetResponseSchema2=createResponseSchema2(AssetDTOSchema2),AssetListResponseSchema=createResponseSchema2(z83.array(AssetDTOSchema2)),MediaStorageLimitErrorSchema=z83.object({error:z83.string(),code:z83.literal("media_storage_limit_exceeded"),usedBytes:z83.number().int().nonnegative(),limitBytes:z83.number().int().positive(),incomingBytes:z83.number().int().nonnegative()}),AssetReferenceScopeSchema=z83.enum(["current","main","live"]),ASSET_REFERENCE_IMPACT_FILE_LIMIT=50,AssetReferenceImpactRequestSchema=z83.object({assetIds:z83.array(z83.uuid()).min(1).max(ASSET_REFERENCE_IMPACT_FILE_LIMIT),scopes:z83.array(AssetReferenceScopeSchema).min(1).optional()}),AssetReferenceImpactSelectionDTOSchema=z83.object({totalFiles:z83.number().int().nonnegative(),checkedFiles:z83.number().int().nonnegative(),limit:z83.number().int().positive()}),AssetReferenceFindingDTOSchema=z83.object({assetId:z83.uuid(),entryId:z83.string(),documentId:z83.string(),contentType:z83.string(),locale:z83.string().nullable(),slug:z83.string(),fieldPath:z83.string()}),AssetReferenceScopeResultDTOSchema=z83.object({scope:AssetReferenceScopeSchema,label:z83.string(),state:z83.enum(["available","not-published","failed"]),coverage:z83.enum(["complete","partial","failed"]),referenceCount:z83.number().int().nonnegative().optional(),codeReferenceCount:z83.number().int().nonnegative().optional(),referencedAssetIds:z83.array(z83.uuid()).optional(),references:z83.array(AssetReferenceFindingDTOSchema),reason:z83.enum(["timeout","unavailable"]).optional()}),AssetReferenceScopeResultDTO=createDTO(AssetReferenceScopeResultDTOSchema),AssetReferenceImpactEventDTOSchema=z83.discriminatedUnion("type",[z83.object({type:z83.literal("selection"),data:AssetReferenceImpactSelectionDTOSchema}),z83.object({type:z83.literal("scope"),data:AssetReferenceScopeResultDTOSchema}),z83.object({type:z83.literal("complete")})]),AssetReferenceImpactEventDTO=createDTO(AssetReferenceImpactEventDTOSchema),AssetReferenceReplacementRequestSchema=z83.object({replacementAssetId:z83.uuid()}),AssetReferenceReplacementResultSchema=z83.object({referencesReplaced:z83.number().int().nonnegative(),entriesChanged:z83.number().int().nonnegative()}),AssetReferenceReplacementResponseSchema=createResponseSchema2(AssetReferenceReplacementResultSchema),AssetReferenceReplacementPreviewResponseSchema=createResponseSchema2(AssetReferenceReplacementResultSchema),AssetCodeReferenceReplacementResultSchema=z83.object({referencesReplaced:z83.number().int().nonnegative(),filesChanged:z83.number().int().nonnegative(),commitSha:z83.string().nullable()}),AssetReferenceReplacementErrorCodeSchema=z83.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=z83.object({error:z83.string(),code:AssetReferenceReplacementErrorCodeSchema}),ASSET_REMOVAL_ASSET_LIMIT=200,AssetRemovalIntentSchema=z83.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=z83.object({intent:AssetRemovalIntentSchema,assetIds:z83.array(z83.uuid()).min(1).max(ASSET_REMOVAL_ASSET_LIMIT),replacementAssetId:z83.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=z83.object({id:z83.uuid(),intent:AssetRemovalIntentSchema,assetIds:z83.array(z83.uuid()),replacementAssetId:z83.uuid().nullable(),expiresAt:z83.iso.datetime(),undoable:z83.boolean(),requestedByMe:z83.boolean()}),AssetRemovalOperationDTO=createDTO(AssetRemovalOperationDTOSchema),AssetRemovalScheduleResultDTOSchema=AssetRemovalOperationDTOSchema.extend({codeReplacement:AssetCodeReferenceReplacementResultSchema.optional()}),AssetRemovalScheduleResultDTO=createDTO(AssetRemovalScheduleResultDTOSchema),AssetRemovalErrorCodeSchema=z83.enum(["asset_removal.asset_not_found","asset_removal.replacement_not_found","asset_removal.already_finalized"]),AssetRemovalErrorSchema=z83.object({error:z83.string(),code:AssetRemovalErrorCodeSchema})}});import{z as z84}from"zod";var TranslationDTOSchema2,TranslationDTO,init_translation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/translation.dto.js"(){"use strict";init_create_dto();TranslationDTOSchema2=z84.object({key:z84.string(),value:z84.string().optional(),defaultValue:z84.string(),locale:z84.string()}),TranslationDTO=createDTO(TranslationDTOSchema2)}});import{z as z85}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=z85.object({id:z85.string(),name:z85.string(),type:z85.enum(["file","folder"]),path:z85.string(),children:z85.lazy(()=>z85.array(DocumentNodeDTOSchema)).optional()}),DocumentTreeDTOSchema=z85.array(DocumentNodeDTOSchema),DocumentPathDTOSchema=z85.object({path:z85.string(),exists:z85.boolean(),type:z85.enum(["file","folder"]).optional()}),DocumentPathDTO=createDTO(DocumentPathDTOSchema),DocumentTreeResponseSchema=createResponseSchema2(DocumentTreeDTOSchema),DocumentPathResponseSchema=createResponseSchema2(DocumentPathDTOSchema)}});import{z as z86}from"zod";var FormFieldTypeSchema,FormFieldValidationSchema,FormFieldSchema,FormFieldsSchema,FormContentSchema2,FormUpdateSchema2,init_form_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/form.dto.js"(){"use strict";FormFieldTypeSchema=z86.enum(["text","email","textarea","number","phone","url","select","checkbox","date","hidden","file"]),FormFieldValidationSchema=z86.object({minLength:z86.number().optional(),maxLength:z86.number().optional(),min:z86.number().optional(),max:z86.number().optional(),pattern:z86.string().optional(),maxFileSize:z86.number().optional(),accept:z86.array(z86.string()).optional()}),FormFieldSchema=z86.object({type:FormFieldTypeSchema,label:z86.string(),placeholder:z86.string().optional(),required:z86.boolean().optional(),defaultValue:z86.string().optional(),options:z86.array(z86.string()).optional(),validation:FormFieldValidationSchema.optional()}),FormFieldsSchema=z86.record(z86.string(),FormFieldSchema),FormContentSchema2=z86.object({name:z86.string().min(1).max(255),label:z86.string().min(1).max(255),fields:FormFieldsSchema}).strict(),FormUpdateSchema2=FormContentSchema2.partial().refine(update2=>update2.name!==void 0||update2.label!==void 0||update2.fields!==void 0,{message:"Pass at least one of name, label, or fields."})}});import{z as z87}from"zod";var ChatMessageListDTOSchema,ChatMessagesPageDTOSchema,ChatLiveTurnDTOSchema,ChatLiveTurnStateDTOSchema,ChatLiveTurnStateDTO,ChatThreadMessageDTOSchema,ChatAttentionDTOSchema,ChatThreadMessagesPageDTOSchema,ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema,ChatNonStreamingOutcomeDTOSchema,ChatDeletionDTOSchema,ChatDeletionDTO,ChatMessageListResponseSchema,ChatMessagesPageResponseSchema,ChatDeletionResponseSchema,ChatClearErrorDTOSchema,init_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat.dto.js"(){"use strict";init_create_dto();init_response();init_project_dto();ChatMessageListDTOSchema=z87.array(ProjectMessageDTOSchema),ChatMessagesPageDTOSchema=z87.object({items:z87.array(ProjectMessagePublicDTOSchema),nextCursor:z87.string().nullable()}),ChatLiveTurnDTOSchema=z87.object({invocationId:z87.string(),step:z87.enum(["preparing","working","compacting","merging"]),startedAt:z87.string()}),ChatLiveTurnStateDTOSchema=z87.object({threadId:z87.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable()}),ChatLiveTurnStateDTO=createDTO(ChatLiveTurnStateDTOSchema),ChatThreadMessageDTOSchema=z87.object({id:z87.string(),role:z87.enum(["user","assistant"]),parts:z87.array(z87.unknown()),metadata:z87.record(z87.string(),z87.unknown()).nullable(),versionId:z87.string().nullable().optional(),createdAt:z87.date().transform(value=>value.toISOString()),providerMessageId:z87.string().nullable().optional(),invocationId:z87.string().nullable().optional(),invocationStatus:z87.string().nullable().optional(),invocationTerminalReason:z87.string().nullable().optional()}),ChatAttentionDTOSchema=z87.object({type:z87.literal("merge_conflict"),merge:z87.object({mergeId:z87.string().uuid(),projectId:z87.string(),fromBranch:z87.string(),toBranch:z87.string()}),publishAfterMerge:z87.boolean()}),ChatThreadMessagesPageDTOSchema=z87.object({threadId:z87.string().nullable(),title:z87.string().nullable(),messages:z87.array(ChatThreadMessageDTOSchema),nextCursor:z87.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable().optional(),attention:ChatAttentionDTOSchema.nullable().optional()}),ChatReplayOutcomeDTOSchema=z87.object({kind:z87.literal("replay"),threadId:z87.string(),userMessageId:z87.string()}),ChatQueuedOutcomeDTOSchema=z87.object({kind:z87.literal("queued"),threadId:z87.string(),userMessageId:z87.string(),blockingRootId:z87.string()}),ChatBusyOutcomeDTOSchema=z87.object({kind:z87.literal("busy"),threadId:z87.string(),userMessageId:z87.string(),blockingRootId:z87.string().optional()}),ChatRefusedOutcomeDTOSchema=z87.object({kind:z87.literal("refused"),threadId:z87.string(),userMessageId:z87.string(),refusedInvocationId:z87.string(),terminalReason:z87.string()}),ChatNonStreamingOutcomeDTOSchema=z87.discriminatedUnion("kind",[ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema]),ChatDeletionDTOSchema=z87.object({success:z87.boolean(),deletedCount:z87.number()}),ChatDeletionDTO=createDTO(ChatDeletionDTOSchema),ChatMessageListResponseSchema=createResponseSchema2(ChatMessageListDTOSchema),ChatMessagesPageResponseSchema=createResponseSchema2(ChatMessagesPageDTOSchema),ChatDeletionResponseSchema=createResponseSchema2(ChatDeletionDTOSchema),ChatClearErrorDTOSchema=z87.object({code:z87.enum(["retained_conflict_busy","retained_conflict_cleanup_failed"]),message:z87.string()})}});import{z as z88}from"zod";var UploadResultDTOSchema,UploadResultDTO,UploadResultResponseSchema,init_upload_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/upload.dto.js"(){"use strict";init_common2();init_create_dto();init_response();UploadResultDTOSchema=z88.object({url:z88.string().url(),key:z88.string(),size:z88.number(),contentType:z88.string(),uploadedAt:CommonSchemas.timestamp}),UploadResultDTO=createDTO(UploadResultDTOSchema),UploadResultResponseSchema=createResponseSchema2(UploadResultDTOSchema)}});import{z as z89}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=z89.object({canAccess:z89.boolean(),permissions:z89.record(z89.string(),z89.boolean()),role:z89.string().nullable()}),ServicePermissionsDTO=createDTO(ServicePermissionsDTOSchema),ServicePermissionsResponseSchema=createResponseSchema2(ServicePermissionsDTOSchema)}});import{z as z90}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:z90.string().trim().default(""),sort:z90.enum(["recent","name","relevance"]).default("recent"),category:z90.string().optional()})}});import{z as z91}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_common2();init_create_dto();init_response();DomainStatusSchema=z91.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),DomainSourceSchema=z91.enum(["fimo","external"]),PaymentStatusSchema=z91.enum(["pending","paid","failed","refunded"]),DomainDTOSchema=z91.object({id:z91.string().uuid(),domain:z91.string(),status:DomainStatusSchema,source:DomainSourceSchema,registrationDate:CommonSchemas.timestamp.nullable(),expirationDate:CommonSchemas.timestamp.nullable(),autoRenew:z91.boolean(),price:z91.number().int().nullable(),renewalPrice:z91.number().int().nullable(),paymentStatus:PaymentStatusSchema.nullable(),checkoutUrl:z91.string().nullable(),failureReason:z91.string().nullable(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),DomainDTO=createDTO(DomainDTOSchema),DomainSearchResultDTOSchema=z91.object({domain:z91.string(),available:z91.boolean(),premium:z91.boolean(),price:z91.number().nullable(),renewalPrice:z91.number().nullable(),purchaseType:z91.string().nullable()}),DomainSearchResultDTO=createDTO(DomainSearchResultDTOSchema),DomainPricingDTOSchema=z91.object({domain:z91.string(),price:z91.number().nullable(),renewalPrice:z91.number().nullable(),premium:z91.boolean(),allowedYears:z91.array(z91.number().int().positive())}),DomainPricingDTO=createDTO(DomainPricingDTOSchema),DomainContactSchema=z91.object({firstName:z91.string().max(100),lastName:z91.string().max(100),companyName:z91.string().max(100).optional(),address1:z91.string().max(255),address2:z91.string().max(255).optional(),city:z91.string().max(100),state:z91.string().max(100),zip:z91.string().max(20),country:z91.string().max(2),phone:z91.string().max(30),email:z91.union([z91.string().email().max(255),z91.literal("")])}),DomainContactDTO=createDTO(DomainContactSchema),UpdateDomainContactsRequestSchema=z91.object({firstName:z91.string().min(1).max(100),lastName:z91.string().min(1).max(100),companyName:z91.string().max(100).optional(),address1:z91.string().min(1).max(255),address2:z91.string().max(255).optional(),city:z91.string().min(1).max(100),state:z91.string().min(1).max(100),zip:z91.string().min(1).max(20),country:z91.string().min(1).max(2),phone:z91.string().min(1).max(30),email:z91.string().email().max(255)}),SearchDomainsRequestSchema=z91.object({keyword:z91.string().min(1).max(100),tldFilter:z91.array(z91.string()).optional()}),CheckAvailabilityRequestSchema=z91.object({domains:z91.array(z91.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=z91.string().min(1).max(255).regex(DOMAIN_NAME_REGEX,{message:"Invalid domain name"}),PurchaseDomainRequestSchema=z91.object({domain:DomainNameSchema,years:z91.number().int().min(1).max(10).optional().default(3),autoRenew:z91.boolean().optional().default(!0)}),UpdateDomainSettingsRequestSchema=z91.object({autoRenew:z91.boolean().optional()}),RenewDomainRequestSchema=z91.object({years:z91.number().int().min(1).max(10).optional().default(1),autoRenew:z91.boolean().optional().default(!0)}),DomainResponseSchema=createResponseSchema2(DomainDTOSchema),DomainListResponseSchema=createResponseSchema2(z91.array(DomainDTOSchema)),DomainSearchResultListResponseSchema=createResponseSchema2(z91.array(DomainSearchResultDTOSchema)),DomainPricingResponseSchema=createResponseSchema2(DomainPricingDTOSchema),DomainContactResponseSchema=createResponseSchema2(DomainContactSchema.nullable()),ContactVerificationStatusSchema=z91.object({verified:z91.boolean(),email:z91.string().nullable(),verifyBy:z91.string().nullable()}),ContactVerificationStatusResponseSchema=createResponseSchema2(ContactVerificationStatusSchema)}});import{z as z92}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_common2();init_create_dto();init_response();ProjectDomainStatusSchema=z92.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=z92.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=z92.object({txtName:z92.string().nullable().optional(),txtValue:z92.string().nullable().optional(),httpUrl:z92.string().nullable().optional(),httpBody:z92.string().nullable().optional(),cname:z92.string().nullable().optional(),cnameTarget:z92.string().nullable().optional()}),SSLValidationErrorSchema=z92.object({message:z92.string()}),OwnershipVerificationSchema=z92.object({type:z92.string(),name:z92.string(),value:z92.string()}),ProjectDomainSSLDTOSchema=z92.object({status:z92.string(),method:z92.string().nullable(),type:z92.string().nullable(),validationRecords:z92.array(SSLValidationRecordSchema).nullable().optional(),validationErrors:z92.array(SSLValidationErrorSchema).nullable().optional()}),DomainProviderSchema=z92.enum(["cloudflare","saas_custom_domains"]),DomainTypeSchema=z92.enum(["subdomain","apex"]),RedirectConfigSchema=z92.object({type:z92.literal("apex_to_www"),linkedDomainId:z92.string()}).nullable().optional(),ProjectDomainDTOSchema=z92.object({id:z92.string(),hostname:z92.string(),status:z92.string(),ssl:ProjectDomainSSLDTOSchema,ownershipVerification:z92.array(OwnershipVerificationSchema).nullable().optional(),cnameTarget:z92.string(),scdCnameTarget:z92.string().optional(),apexTargets:z92.array(z92.string()),dnsAutoConfigured:z92.boolean(),createdAt:CommonSchemas.timestamp,provider:DomainProviderSchema,domainType:DomainTypeSchema,redirectConfig:RedirectConfigSchema,migrationStatus:z92.string().nullable().optional()}),ProjectDomainDTO=createDTO(ProjectDomainDTOSchema),ProjectDomainListResponseSchema=createResponseSchema2(z92.array(ProjectDomainDTOSchema)),ProjectDomainResponseSchema=createResponseSchema2(ProjectDomainDTOSchema),AddProjectDomainRequestSchema=z92.object({hostname:z92.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:z92.boolean().optional()}),CheckProjectDomainHostnameReasonSchema=z92.enum(["invalid_hostname","fimo_owned_hostname","reserved","taken_by_another_project","taken_by_this_project"]),CheckProjectDomainHostnameResponseSchema=createResponseSchema2(z92.object({available:z92.boolean(),reason:CheckProjectDomainHostnameReasonSchema.optional()})),DeleteProjectDomainResponseSchema=createResponseSchema2(z92.object({success:z92.boolean(),hostname:z92.string()}))}});import{z as z93}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=z93.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain"]),CheckProjectSubdomainResponseSchema=createResponseSchema2(z93.object({available:z93.boolean(),reason:SubdomainCheckReasonSchema.optional()})),UpdateProjectSubdomainRequestSchema=z93.object({slug:z93.string().min(1).max(63).regex(SUBDOMAIN_REGEX,{error:"Invalid subdomain shape"})}),UpdateProjectSubdomainErrorReasonSchema=z93.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain","kv_sync_failed","hosting_sync_failed"]),UpdateProjectSubdomainResponseSchema=createResponseSchema2(z93.object({subdomain:z93.string(),subdomainUpdatedAt:z93.coerce.date()})),SubdomainSuggestionsQuerySchema=z93.object({base:z93.string().max(100).optional(),max:z93.coerce.number().int().min(1).max(10).optional()}),SubdomainSuggestionsResponseSchema=createResponseSchema2(z93.object({suggestions:z93.array(z93.string())}))}});import{z as z94}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","org_agent_registry_reference","source_registered_domain"],ProjectTransferBlockerCodeSchema=z94.enum(PROJECT_TRANSFER_BLOCKER_CODES),ProjectTransferBlockerDTO=createDTO(z94.object({code:ProjectTransferBlockerCodeSchema,message:z94.string(),count:z94.number().int().nonnegative().optional()})),TransferProjectRequestSchema=z94.object({targetOrganizationId:z94.string().min(1)}),ProjectTransferResultDTO=createDTO(z94.object({projectId:z94.string(),sourceOrganizationId:z94.string(),targetOrganizationId:z94.string(),movedThreads:z94.number().int().nonnegative(),revokedInvites:z94.number().int().nonnegative(),revokedGrants:z94.number().int().nonnegative(),preservedGrants:z94.number().int().nonnegative(),warnings:z94.array(z94.string())}))}});import{z as z95}from"zod";var ProjectLocaleCoverageSchema,ProjectLocaleStatsItemSchema,ProjectLocaleStatsSchema,ProjectLocaleStatsDTO,ProjectLocaleStatsResponseSchema2,AddProjectLocaleRequestSchema,RemoveProjectLocaleParamsSchema,ProjectLocaleMutationSchema,ProjectLocaleMutationDTO,ProjectLocaleMutationResponseSchema2,RemoveProjectLocaleSchema,RemoveProjectLocaleDTO,RemoveProjectLocaleResponseSchema2,init_project_locale_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-locale.dto.js"(){"use strict";init_create_dto();init_response();ProjectLocaleCoverageSchema=z95.object({translated:z95.number().int().nonnegative(),total:z95.number().int().nonnegative()}),ProjectLocaleStatsItemSchema=z95.object({locale:z95.string(),isDefault:z95.boolean(),entries:ProjectLocaleCoverageSchema,labels:ProjectLocaleCoverageSchema}),ProjectLocaleStatsSchema=z95.object({defaultLocale:z95.string(),locales:z95.array(ProjectLocaleStatsItemSchema)}),ProjectLocaleStatsDTO=createDTO(ProjectLocaleStatsSchema),ProjectLocaleStatsResponseSchema2=createResponseSchema2(ProjectLocaleStatsSchema),AddProjectLocaleRequestSchema=z95.object({locale:z95.string().min(1).max(40)}),RemoveProjectLocaleParamsSchema=z95.object({locale:z95.string().min(1).max(40)}),ProjectLocaleMutationSchema=z95.object({locale:z95.string()}),ProjectLocaleMutationDTO=createDTO(ProjectLocaleMutationSchema),ProjectLocaleMutationResponseSchema2=createResponseSchema2(ProjectLocaleMutationSchema),RemoveProjectLocaleSchema=z95.object({locale:z95.string(),entriesDeleted:z95.number().int().nonnegative(),labelsDeleted:z95.number().int().nonnegative()}),RemoveProjectLocaleDTO=createDTO(RemoveProjectLocaleSchema),RemoveProjectLocaleResponseSchema2=createResponseSchema2(RemoveProjectLocaleSchema)}});import{z as z96}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=z96.enum(GENERATION_QUALITIES),GenerationTaskIdSchema=z96.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=z96.object({task:GenerationTaskIdSchema,quality:GenerationQualitySchema.optional(),costUsd:z96.number(),credits:z96.number().optional(),billingMode:z96.enum(["fimo-credits","provider-account"]).optional(),confidence:z96.enum(["exact","estimated","metered"]),basis:z96.string()}),GenerationTaskEstimateDTO=createDTO(GenerationTaskEstimateDTOSchema)}});import{z as z97}from"zod";var GenerateRequestBaseSchema,GenerateRequestDTOSchema,GenerateRequestDTO,GenerateResponseDataSchema,GenerateResponseDTO,GenerateResponseSchema2,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=z97.object({options:z97.record(z97.string(),z97.unknown()),name:z97.string().optional(),parentId:z97.string().nullable().optional(),altText:z97.string().optional(),caption:z97.string().optional()}),GenerateRequestDTOSchema=GenerateRequestBaseSchema.extend({task:z97.string().min(1).optional(),model:z97.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=z97.object({jobId:z97.string(),status:z97.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema2.optional(),error:z97.string().nullable().optional(),credits:z97.number().optional(),costUsd:z97.number().optional(),billingMode:z97.enum(["fimo-credits","provider-account"]).optional(),task:GenerationTaskIdSchema.optional(),quality:GenerationQualitySchema.optional()}),GenerateResponseDTO=createDTO(GenerateResponseDataSchema),GenerateResponseSchema2=createResponseSchema2(GenerateResponseDataSchema),GenerateErrorSchema=z97.object({error:z97.string(),code:z97.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:z97.array(GenerationTaskIdSchema).optional(),availableModels:z97.array(z97.string()).optional(),issues:z97.array(z97.unknown()).optional()})}});import{z as z98}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=z98.enum(["string","number","integer","boolean","enum","array","unknown"]),FlagSpecSchema=z98.object({name:z98.string(),key:z98.string(),description:z98.string(),type:FlagTypeSchema,required:z98.boolean(),defaultValue:z98.unknown().optional(),enumValues:z98.array(z98.string()).optional(),isArray:z98.boolean()}),AssetModelPriceSchema=z98.object({unitPrice:z98.number(),unit:z98.string(),confidence:z98.enum(["exact","estimated","metered"])}),AssetModelDTOSchema=z98.object({id:z98.string(),shortName:z98.string(),provider:z98.string(),source:z98.string(),modality:z98.enum(["image","video","audio"]),tags:z98.array(z98.string()),displayName:z98.string(),description:z98.string(),flags:z98.array(FlagSpecSchema),price:AssetModelPriceSchema.nullable()}),AssetModelDTO=createDTO(AssetModelDTOSchema),AssetModelEstimateDTOSchema=z98.object({model:z98.string(),costUsd:z98.number(),credits:z98.number(),billingMode:z98.enum(["fimo-credits","provider-account"]),confidence:z98.enum(["exact","estimated","metered"]),basis:z98.string()}),AssetModelEstimateDTO=createDTO(AssetModelEstimateDTOSchema)}});import{z as z99}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=z99.object({tourId:z99.string(),version:z99.string(),status:z99.string(),completedAt:z99.coerce.date()}),UserTourDTO=createDTO(UserTourDTOSchema),UserTourResponseSchema=createResponseSchema2(UserTourDTOSchema),UserTourListResponseSchema=createResponseSchema2(z99.array(UserTourDTOSchema))}});import{z as z100}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=z100.enum(SUPPORT_REPORT_CATEGORIES.map(category=>category.value)),SUPPORT_REPORT_STATUSES=["new","in_progress","waiting","resolved","duplicate","irrelevant","ignored"],SupportReportStatusSchema=z100.enum(SUPPORT_REPORT_STATUSES),SupportReportSourceSchema=z100.enum(["app","cli","agent"]),SupportReportDeliveryStatusSchema=z100.enum(["pending","delivered","failed"]),SUPPORT_REPORT_LINK_KINDS=["linear","pylon","project","sentry","grafana","other"],SupportReportLinkKindSchema=z100.enum(SUPPORT_REPORT_LINK_KINDS),SupportReportEventKindSchema=z100.enum(["report_created","report_updated","message","link_added","link_removed","delivery"]),SupportReportActorKindSchema=z100.enum(["user","agent","system"]),SupportReportTagSchema=z100.string().trim().min(1).max(50),SupportReportHttpUrlSchema=z100.url({protocol:/^https?$/}).max(2e3),SupportReportContextInputSchema=z100.object({organization:z100.object({id:z100.string().trim().min(1).max(255),name:z100.string().trim().max(240).optional()}),project:z100.object({id:z100.uuid(),name:z100.string().trim().max(240).optional(),createdAt:z100.coerce.date().optional()}).optional(),environment:z100.string().trim().max(255).optional(),clientVersion:z100.string().trim().max(64).optional()}),CreateSupportReportInputSchema=z100.object({message:z100.string().trim().min(1).max(2e4),category:SupportReportCategorySchema,source:SupportReportSourceSchema.default("cli"),context:SupportReportContextInputSchema}),SupportReportListQuerySchema=z100.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),source:SupportReportSourceSchema.optional(),tag:SupportReportTagSchema.optional(),query:z100.string().trim().max(200).optional(),limit:z100.coerce.number().int().min(1).max(100).default(50),offset:z100.coerce.number().int().min(0).default(0)}),UpdateSupportReportInputSchema=z100.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),tags:z100.array(SupportReportTagSchema).max(20).optional(),duplicateOfReportId:z100.uuid().nullable().optional(),note:z100.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=z100.object({message:z100.string().trim().min(1).max(2e4)}),CreateSupportReportLinkInputSchema=z100.object({kind:SupportReportLinkKindSchema,label:z100.string().trim().min(1).max(240),url:SupportReportHttpUrlSchema,externalId:z100.string().trim().max(240).optional()}),SupportReportActorDTOSchema=z100.object({kind:SupportReportActorKindSchema,id:z100.string().nullable(),name:z100.string().nullable()}),SupportReportLinkDTOSchema=z100.object({id:z100.uuid(),kind:SupportReportLinkKindSchema,label:z100.string(),url:SupportReportHttpUrlSchema,externalId:z100.string().nullable(),addedBy:SupportReportActorDTOSchema,createdAt:z100.coerce.date()}),SupportReportLinkDTO=createDTO(SupportReportLinkDTOSchema),SupportReportEventDTOSchema=z100.object({id:z100.uuid(),kind:SupportReportEventKindSchema,body:z100.string().nullable(),metadata:z100.record(z100.string(),z100.unknown()),actor:SupportReportActorDTOSchema,createdAt:z100.coerce.date()}),SupportReportEventDTO=createDTO(SupportReportEventDTOSchema),SupportReportSummaryDTOSchema=z100.object({id:z100.uuid(),status:SupportReportStatusSchema,category:SupportReportCategorySchema,tags:z100.array(z100.string()),source:SupportReportSourceSchema,message:z100.string(),reporter:z100.object({id:z100.string().nullable(),name:z100.string().nullable(),email:z100.string().nullable()}),organization:z100.object({id:z100.string().nullable(),name:z100.string()}),project:z100.object({id:z100.uuid().nullable(),name:z100.string()}).nullable(),assignee:SupportReportActorDTOSchema.nullable(),delivery:z100.object({status:SupportReportDeliveryStatusSchema,pylonIssueId:z100.string().nullable(),pylonIssueUrl:SupportReportHttpUrlSchema.nullable(),error:z100.string().nullable(),deliveredAt:z100.coerce.date().nullable()}).nullable(),duplicateOfReportId:z100.uuid().nullable(),resolvedAt:z100.coerce.date().nullable(),createdAt:z100.coerce.date(),updatedAt:z100.coerce.date()}),SupportReportSummaryDTO=createDTO(SupportReportSummaryDTOSchema),SupportReportDetailDTOSchema=SupportReportSummaryDTOSchema.extend({environment:z100.string().nullable(),clientVersion:z100.string().nullable(),links:z100.array(SupportReportLinkDTOSchema),events:z100.array(SupportReportEventDTOSchema)}),SupportReportDetailDTO=createDTO(SupportReportDetailDTOSchema),SupportReportListDTOSchema=z100.object({reports:z100.array(SupportReportSummaryDTOSchema),total:z100.number().int().nonnegative(),statusCounts:z100.object({new:z100.number().int().nonnegative(),in_progress:z100.number().int().nonnegative(),waiting:z100.number().int().nonnegative(),resolved:z100.number().int().nonnegative(),duplicate:z100.number().int().nonnegative(),irrelevant:z100.number().int().nonnegative(),ignored:z100.number().int().nonnegative()}),limit:z100.number().int().positive(),offset:z100.number().int().nonnegative()}),SupportReportListDTO=createDTO(SupportReportListDTOSchema),CreateSupportReportResultDTOSchema=z100.object({id:z100.uuid(),deliveryStatus:SupportReportDeliveryStatusSchema,message:z100.string()}),CreateSupportReportResultDTO=createDTO(CreateSupportReportResultDTOSchema)}});import{z as z101}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=z101.iso.datetime({offset:!0}).pipe(z101.coerce.date()),OpsRecentChatInputSchema=z101.object({from:OpsChatTimestampInputSchema,to:OpsChatTimestampInputSchema.optional(),projectEnv:z101.string().trim().min(1).max(255).optional(),limit:z101.coerce.number().int().min(1).max(200).default(100),cursor:z101.string().trim().min(1).max(2e3).optional(),slim:z101.boolean().default(!0),reason:z101.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=z101.object({id:z101.string(),threadId:z101.string(),providerMessageId:z101.string().nullable(),invocationId:z101.string().nullable(),env:z101.string().nullable(),role:z101.string(),parts:z101.array(z101.record(z101.string(),z101.unknown())),metadata:z101.object({status:z101.string().optional(),traceUrl:z101.string().optional(),externalFileChanges:z101.array(z101.unknown()).optional()}),stats:z101.object({toolCount:z101.number().int().nonnegative(),failedToolCount:z101.number().int().nonnegative()}),createdAt:z101.iso.datetime({offset:!0}),project:z101.object({id:z101.string(),name:z101.string(),displayName:z101.string().nullable(),organizationId:z101.string().nullable()})}),OpsRecentChatResponseSchema=z101.object({target:z101.object({backendProfile:OpsBackendProfileSchema,projectEnv:z101.string().nullable()}),window:z101.object({from:z101.iso.datetime({offset:!0}),to:z101.iso.datetime({offset:!0})}),messages:z101.object({items:z101.array(OpsRecentChatMessageSchema),nextCursor:z101.string().nullable()})}),OpsRecentChatResponseDTO=createDTO(OpsRecentChatResponseSchema)}});import{z as z102}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=z102.object({backendProfile:OpsBackendProfileSchema,provider:z102.literal("sentry"),issueId:OpsSentryIssueIdSchema,status:z102.literal("resolved")}),OpsSentryIssueResolutionResponseDTO=createDTO(OpsSentryIssueResolutionResponseSchema),OpsSentryIssueResolutionErrorResponseSchema=z102.object({backendProfile:OpsBackendProfileSchema,provider:z102.literal("sentry"),issueId:OpsSentryIssueIdSchema,resolved:z102.literal(!1),reason:z102.string()}),OpsSentryIssueResolutionErrorResponseDTO=createDTO(OpsSentryIssueResolutionErrorResponseSchema)}});import{z as z103}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=z103.object({packageManager:z103.string().trim().min(1).max(200).nullable(),trackedLockfiles:z103.array(z103.enum(OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES)),sourceRevision:z103.string().trim().min(1)}),OpsProjectPackageManagerSchema=z103.object({target:z103.object({backendProfile:OpsBackendProfileSchema,projectId:z103.uuid(),projectEnv:z103.string().trim().min(1).max(255)}),...OpsProjectPackageManagerSummarySchema.shape}),OpsProjectPackageManagerDTO=createDTO(OpsProjectPackageManagerSchema)}});import{z as z104}from"zod";function createAgentRunWebhookEventDataSchema(status){return z104.object({run:z104.object({id:z104.string(),agentName:z104.string(),trigger:z104.string(),status:z104.literal(status),startedAt:z104.string().nullable(),finishedAt:z104.string().nullable(),reason:z104.string().nullable()})})}var WEBHOOK_EVENT_TYPES,WebhookEventTypeSchema,WebhookEntryChangeActionSchema,WebhookEntryChangeReasonSchema,WebhookEnvironmentScopeSchema,WebhookEnvironmentSelectorSchema,EntryChangedWebhookEventDataSchema,FormSubmittedWebhookEventDataSchema,PublishStartedWebhookEventDataSchema,PublishSucceededWebhookEventDataSchema,PublishFailedWebhookEventDataSchema,PublishUnpublishedWebhookEventDataSchema,AgentReviewRequestedWebhookEventDataSchema,AgentReviewResolvedWebhookEventDataSchema,AnalyticsReportReadyWebhookEventDataSchema,MediaAssetWebhookEventDataSchema,MediaUploadedWebhookEventDataSchema,MediaUpdatedWebhookEventDataSchema,MediaDeletedWebhookEventDataSchema,DomainCreatedWebhookEventDataSchema,DomainDeletedWebhookEventDataSchema,LabelChangedWebhookEventDataSchema,LocaleCreatedWebhookEventDataSchema,LocaleDefaultChangedWebhookEventDataSchema,LocaleDeletedWebhookEventDataSchema,EnvironmentCreatedWebhookEventDataSchema,EnvironmentDeletedWebhookEventDataSchema,EnvironmentMergedWebhookEventDataSchema,BranchRestoredWebhookEventDataSchema,WEBHOOK_EVENT_DATA_SCHEMAS,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_common2();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","agent.run.started","agent.run.completed","agent.run.failed","agent.run.cancelled","agent.review.requested","agent.review.resolved","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=z104.enum(WEBHOOK_EVENT_TYPES),WebhookEntryChangeActionSchema=z104.enum(["created","updated","deleted"]),WebhookEntryChangeReasonSchema=z104.enum(["entry_write","bulk_edit","environment_merge"]),WebhookEnvironmentScopeSchema=z104.enum(["main","all"]),WebhookEnvironmentSelectorSchema=z104.union([WebhookEnvironmentScopeSchema,EnvironmentKeySchema]),EntryChangedWebhookEventDataSchema=z104.object({reason:WebhookEntryChangeReasonSchema,operationId:z104.string().optional(),batch:z104.object({index:z104.number().int().positive(),total:z104.number().int().positive()}).optional(),changes:z104.array(z104.object({action:WebhookEntryChangeActionSchema,contentType:z104.string(),id:z104.string(),documentId:z104.string(),locale:z104.string().nullable()}))}),FormSubmittedWebhookEventDataSchema=z104.object({form:z104.object({id:z104.string(),label:z104.string()}),submission:z104.object({id:z104.string(),data:z104.record(z104.string(),z104.unknown()),submittedAt:z104.string()})}),PublishStartedWebhookEventDataSchema=z104.object({publication:z104.object({status:z104.literal("publishing"),startedAt:z104.string()})}),PublishSucceededWebhookEventDataSchema=z104.object({publication:z104.object({status:z104.literal("published"),url:z104.string(),publishedAt:z104.string(),firstPublish:z104.boolean()})}),PublishFailedWebhookEventDataSchema=z104.object({publication:z104.object({status:z104.literal("failed"),reason:z104.string()})}),PublishUnpublishedWebhookEventDataSchema=z104.object({publication:z104.object({previousUrl:z104.string(),unpublishedAt:z104.string()})});__name(createAgentRunWebhookEventDataSchema,"createAgentRunWebhookEventDataSchema");AgentReviewRequestedWebhookEventDataSchema=z104.object({review:z104.object({id:z104.string(),runId:z104.string(),agentName:z104.string(),classification:z104.string(),summary:z104.string(),reasons:z104.array(z104.string()).readonly()})}),AgentReviewResolvedWebhookEventDataSchema=z104.object({review:z104.object({id:z104.string(),runId:z104.string(),agentName:z104.string(),resolution:z104.string()})}),AnalyticsReportReadyWebhookEventDataSchema=z104.object({report:z104.object({weekStart:z104.string(),weekEnd:z104.string(),pageviews:z104.number(),visitors:z104.number(),previousPageviews:z104.number(),previousVisitors:z104.number()})}),MediaAssetWebhookEventDataSchema=z104.object({id:z104.string().nullable(),name:z104.string().nullable(),type:z104.string(),mimeType:z104.string().nullable(),fileSize:z104.number().nullable()}),MediaUploadedWebhookEventDataSchema=z104.object({asset:MediaAssetWebhookEventDataSchema,operation:z104.literal("uploaded")}),MediaUpdatedWebhookEventDataSchema=z104.object({asset:MediaAssetWebhookEventDataSchema,operation:z104.literal("updated")}),MediaDeletedWebhookEventDataSchema=z104.object({asset:MediaAssetWebhookEventDataSchema,operation:z104.literal("deleted")}),DomainCreatedWebhookEventDataSchema=z104.object({domain:z104.object({id:z104.string(),hostname:z104.string(),status:ProjectDomainStatusSchema,sslStatus:SSLStatusSchema})}),DomainDeletedWebhookEventDataSchema=z104.object({domain:z104.object({id:z104.string(),hostname:z104.string()})}),LabelChangedWebhookEventDataSchema=z104.object({changes:z104.array(z104.object({action:z104.enum(["created","updated","deleted"]),key:z104.string(),locale:z104.string(),value:z104.string().nullable()}))}),LocaleCreatedWebhookEventDataSchema=z104.object({locale:z104.object({code:z104.string(),isDefault:z104.boolean()})}),LocaleDefaultChangedWebhookEventDataSchema=z104.object({locale:z104.object({code:z104.string(),previousCode:z104.string()})}),LocaleDeletedWebhookEventDataSchema=z104.object({locale:z104.object({code:z104.string(),entriesDeleted:z104.number().int().nonnegative(),labelsDeleted:z104.number().int().nonnegative()})}),EnvironmentCreatedWebhookEventDataSchema=z104.object({environment:z104.object({name:BranchSchema,parent:BranchSchema})}),EnvironmentDeletedWebhookEventDataSchema=z104.object({environment:z104.object({name:BranchSchema})}),EnvironmentMergedWebhookEventDataSchema=z104.object({merge:z104.object({id:z104.string(),from:BranchSchema,to:BranchSchema,applied:z104.array(z104.object({surface:SurfaceNameSchema,count:z104.number().int().nonnegative()}))})}),BranchRestoredWebhookEventDataSchema=z104.object({branch:z104.object({name:BranchSchema}),version:z104.object({versionId:z104.uuid(),name:z104.string()})}),WEBHOOK_EVENT_DATA_SCHEMAS={"entry.changed":EntryChangedWebhookEventDataSchema,"form.submitted":FormSubmittedWebhookEventDataSchema,"publish.started":PublishStartedWebhookEventDataSchema,"publish.succeeded":PublishSucceededWebhookEventDataSchema,"publish.failed":PublishFailedWebhookEventDataSchema,"publish.unpublished":PublishUnpublishedWebhookEventDataSchema,"agent.run.started":createAgentRunWebhookEventDataSchema("running"),"agent.run.completed":createAgentRunWebhookEventDataSchema("completed"),"agent.run.failed":createAgentRunWebhookEventDataSchema("failed"),"agent.run.cancelled":createAgentRunWebhookEventDataSchema("cancelled"),"agent.review.requested":AgentReviewRequestedWebhookEventDataSchema,"agent.review.resolved":AgentReviewResolvedWebhookEventDataSchema,"analytics.report_ready":AnalyticsReportReadyWebhookEventDataSchema,"media.uploaded":MediaUploadedWebhookEventDataSchema,"media.updated":MediaUpdatedWebhookEventDataSchema,"media.deleted":MediaDeletedWebhookEventDataSchema,"domain.created":DomainCreatedWebhookEventDataSchema,"domain.deleted":DomainDeletedWebhookEventDataSchema,"label.changed":LabelChangedWebhookEventDataSchema,"locale.created":LocaleCreatedWebhookEventDataSchema,"locale.default_changed":LocaleDefaultChangedWebhookEventDataSchema,"locale.deleted":LocaleDeletedWebhookEventDataSchema,"environment.created":EnvironmentCreatedWebhookEventDataSchema,"environment.deleted":EnvironmentDeletedWebhookEventDataSchema,"environment.merged":EnvironmentMergedWebhookEventDataSchema,"branch.restored":BranchRestoredWebhookEventDataSchema},WebhookEventFamilySchema=z104.enum(["entries","forms","publish","agents","analytics","media","domains","labels","locales","environments"]),WebhookDestinationKindSchema=z104.enum(["custom","resend","github","slack"]),WebhookHeaderValueInputSchema=z104.discriminatedUnion("source",[z104.object({source:z104.literal("literal"),value:z104.string().min(1).max(4096).regex(/^[^\r\n]*$/)}),z104.object({source:z104.literal("secret"),key:z104.string().regex(/^[A-Z_][A-Z0-9_]*$/),prefix:z104.string().max(128).regex(/^[^\r\n]*$/).optional()})]),WebhookHeaderInputSchema=z104.object({name:z104.string().min(1).max(128),value:WebhookHeaderValueInputSchema}),WebhookHeaderDTOSchema=z104.object({name:z104.string(),source:z104.enum(["literal","secret"]),secretKey:z104.string().nullable(),secretPrefix:z104.string().nullable(),configured:z104.literal(!0)}),WebhookFilterSchema=z104.object({environment:WebhookEnvironmentSelectorSchema.optional(),formId:z104.string().min(1).max(255).optional(),agentName:z104.string().min(1).max(120).optional(),mediaType:z104.enum(["image","video","audio","document","other"]).optional(),action:WebhookEntryChangeActionSchema.optional(),contentType:z104.string().min(1).max(255).optional(),locale:z104.string().min(1).max(120).optional()}),JsonValueSchema=z104.lazy(()=>z104.union([z104.string(),z104.number(),z104.boolean(),z104.null(),z104.array(JsonValueSchema),z104.record(z104.string(),JsonValueSchema)])),CreateProjectWebhookRequestSchema=z104.object({name:z104.string().trim().min(1).max(120),eventType:WebhookEventTypeSchema,url:z104.url(),enabled:z104.boolean().optional().default(!0),filter:WebhookFilterSchema.optional().default({}),headers:z104.array(WebhookHeaderInputSchema).max(20).optional().default([]),bodyTemplate:JsonValueSchema.nullable().optional().default(null),signingEnabled:z104.boolean().optional().default(!0)}),UpdateProjectWebhookRequestSchema=z104.object({name:z104.string().trim().min(1).max(120).optional(),eventType:WebhookEventTypeSchema.optional(),url:z104.url().optional(),enabled:z104.boolean().optional(),filter:WebhookFilterSchema.optional(),headers:z104.array(WebhookHeaderInputSchema).max(20).optional(),bodyTemplate:JsonValueSchema.nullable().optional(),signingEnabled:z104.boolean().optional()}),TestProjectWebhookRequestSchema=z104.object({eventType:WebhookEventTypeSchema.optional(),data:z104.record(z104.string(),JsonValueSchema).optional()}),WebhookDeliveryStatusSchema=z104.enum(["pending","delivering","retrying","succeeded","failed"]),ProjectWebhookDTOSchema=BaseEntitySchema.extend({projectId:z104.uuid(),name:z104.string(),eventType:WebhookEventTypeSchema,enabled:z104.boolean(),destination:z104.object({host:z104.string(),maskedUrl:z104.string(),kind:WebhookDestinationKindSchema}),filter:WebhookFilterSchema,headers:z104.array(WebhookHeaderDTOSchema),bodyTemplate:JsonValueSchema.nullable(),signingEnabled:z104.boolean(),lastDeliveryStatus:WebhookDeliveryStatusSchema.nullable(),lastDeliveryAt:z104.coerce.date().nullable(),deliveryStats24h:z104.object({succeeded:z104.number().int().nonnegative(),failed:z104.number().int().nonnegative()})}),ProjectWebhookDTO=createDTO(ProjectWebhookDTOSchema),WebhookDeliveryDTOSchema=BaseEntitySchema.extend({webhookId:z104.uuid(),projectId:z104.uuid(),env:BranchSchema,environment:EnvironmentKeySchema,branch:BranchSchema,eventId:z104.uuid(),eventType:WebhookEventTypeSchema,eventVersion:z104.number().int().positive(),test:z104.boolean(),status:WebhookDeliveryStatusSchema,attemptCount:z104.number().int().nonnegative(),responseStatus:z104.number().int().nullable(),lastErrorCode:z104.string().nullable(),lastErrorMessage:z104.string().nullable(),payloadAvailable:z104.boolean(),destination:z104.object({host:z104.string(),maskedUrl:z104.string(),kind:WebhookDestinationKindSchema}),requestHeaders:z104.array(WebhookHeaderDTOSchema),requestBodyExcerpt:z104.string().nullable(),qstashMessageId:z104.string().nullable(),deliveredAt:z104.coerce.date().nullable()}),WebhookDeliveryDTO=createDTO(WebhookDeliveryDTOSchema),WebhookDeliveriesPageSchema=z104.object({items:z104.array(WebhookDeliveryDTOSchema),pagination:z104.object({page:z104.number().int().positive(),limit:z104.number().int().positive(),total:z104.number().int().nonnegative(),totalPages:z104.number().int().positive(),hasMore:z104.boolean()}),stats:z104.object({total:z104.number().int().nonnegative(),succeeded:z104.number().int().nonnegative(),failed:z104.number().int().nonnegative()})}),WebhookDeliveryAttemptDTOSchema=z104.object({id:z104.uuid(),deliveryId:z104.uuid(),attempt:z104.number().int().positive(),status:z104.enum(["delivering","succeeded","failed"]),responseStatus:z104.number().int().nullable(),durationMs:z104.number().int().nonnegative(),responseExcerpt:z104.string().nullable(),errorCode:z104.string().nullable(),errorMessage:z104.string().nullable(),createdAt:z104.coerce.date()}),WebhookDeliveryAttemptDTO=createDTO(WebhookDeliveryAttemptDTOSchema),ProjectWebhookResponseSchema=createResponseSchema2(ProjectWebhookDTOSchema),ProjectWebhooksListResponseSchema=createResponseSchema2(z104.array(ProjectWebhookDTOSchema)),WebhookDeliveriesListResponseSchema=createResponseSchema2(WebhookDeliveriesPageSchema),WebhookDeliveryAttemptsListResponseSchema=createResponseSchema2(z104.array(WebhookDeliveryAttemptDTOSchema))}});import{z as z105}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=z105.object({key:z105.literal("fimo-2"),enabled:z105.boolean(),dismissed:z105.boolean().default(!1),interacted:z105.boolean().default(!1)}),PreviewFeatureDTO=createDTO(PreviewFeatureDTOSchema)}});import{z as z106}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_common2();init_create_dto();init_billing_dto();SubscriptionStatusSchema=z106.enum(["active","cancelled","draft","errored","paused","pending","voided"]),CreditBalanceBreakdownDTOSchema=z106.object({total:z106.number(),base:z106.number(),purchases:z106.number(),awards:z106.number()}),CreditBalanceBreakdownDTO=createDTO(CreditBalanceBreakdownDTOSchema),SubscriptionPlanDTOSchema=z106.object({id:z106.string(),name:z106.string()}),SubscriptionPlanDTO=createDTO(SubscriptionPlanDTOSchema),SubscriptionPaymentMethodDTOSchema=z106.object({type:z106.string(),brand:z106.string().nullable(),last4:z106.string().nullable(),expirationDate:z106.string().nullable()}),SubscriptionPaymentMethodDTO=createDTO(SubscriptionPaymentMethodDTOSchema),SubscriptionPricingDTOSchema=z106.object({currency:z106.string(),nextPaymentAmount:z106.number().nullable(),nextPaymentAt:z106.string().nullable(),billingInterval:z106.string().nullable(),totalAmount:z106.number().nullable(),discountAmount:z106.number().nullable()}),SubscriptionPricingDTO=createDTO(SubscriptionPricingDTOSchema),SubscriptionDetailsDTOSchema=z106.object({id:z106.string(),status:SubscriptionStatusSchema,plan:SubscriptionPlanDTOSchema.nullable(),currentPeriodStartedAt:z106.string().nullable(),currentPeriodEndsAt:z106.string().nullable(),renewsAt:z106.string().nullable(),cancelAt:z106.string().nullable(),renewAutomatically:z106.boolean(),pricing:SubscriptionPricingDTOSchema.nullable(),paymentMethod:SubscriptionPaymentMethodDTOSchema.nullable()}),SubscriptionDetailsDTO=createDTO(SubscriptionDetailsDTOSchema),CreditAlertDTOSchema=z106.object({type:z106.enum(["low_balance","critical_balance","approaching_limit"]),message:z106.string(),estimatedPromptsRemaining:z106.number().nullable(),avgCostPerPrompt:z106.number().nullable()}),CreditAlertDTO=createDTO(CreditAlertDTOSchema),PlanAllocationDTOSchema=z106.object({monthlyCredits:z106.number().nullable(),usedThisPeriod:z106.number(),remainingThisPeriod:z106.number()}),PlanAllocationDTO=createDTO(PlanAllocationDTOSchema),LatestCancellationDTOSchema=z106.object({organizationId:z106.string(),planCode:TemplateCodeSchema,reason:CancellationReasonCodeSchema,details:z106.string().nullable(),tenureDays:z106.number().int().nonnegative(),capturedAt:z106.string()}),LatestCancellationDTO=createDTO(LatestCancellationDTOSchema),OrganizationSubscriptionDTOSchema=z106.object({hasSubscription:z106.boolean(),subscription:SubscriptionDetailsDTOSchema.nullable(),credits:CreditBalanceBreakdownDTOSchema,planAllocation:PlanAllocationDTOSchema.nullable(),lowBalanceThreshold:z106.number().nullable(),alerts:z106.array(CreditAlertDTOSchema),portalUrl:z106.string().nullable(),latestCancellation:LatestCancellationDTOSchema.nullable()}),OrganizationSubscriptionDTO=createDTO(OrganizationSubscriptionDTOSchema),BaseCreditTopupRequestSchema=z106.object({creditCount:z106.number().int().positive(),expiresAt:z106.string().datetime().nullable().optional(),message:z106.string().nullable().optional()}),FreeCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z106.literal("free"),amountCents:z106.number().int().positive().nullable().optional()}),PurchaseCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z106.literal("purchase"),amountCents:z106.number().int().positive()}),CreditTopupRequestDTOSchema=z106.discriminatedUnion("type",[FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema]),CreditTopupRequestDTO=createDTO(CreditTopupRequestDTOSchema),CreditTopupResponseDTOSchema=z106.object({success:z106.boolean(),transactionId:z106.string().nullable(),newBalance:z106.number(),creditCount:z106.number(),type:z106.enum(["free","purchase"]),invoiceId:z106.string().nullable()}),CreditTopupResponseDTO=createDTO(CreditTopupResponseDTOSchema)}});import{z as z107}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=z107.object({totalCredits:z107.number(),totalCostUsd:z107.number(),totalMessages:z107.number(),avgCostPerMessage:z107.number(),periodStart:z107.string().nullable(),periodEnd:z107.string().nullable()}),UsageSummaryDTO=createDTO(UsageSummaryDTOSchema),UsageByProjectDTOSchema=z107.object({projectId:z107.string(),projectName:z107.string(),projectDisplayName:z107.string().nullable(),credits:z107.number(),costUsd:z107.number(),messages:z107.number(),percentage:z107.number()}),UsageByProjectDTO=createDTO(UsageByProjectDTOSchema),UsageByUserDTOSchema=z107.object({userId:z107.string(),userName:z107.string().nullable(),userEmail:z107.string().email().nullable(),credits:z107.number(),costUsd:z107.number(),messages:z107.number(),percentage:z107.number()}),UsageByUserDTO=createDTO(UsageByUserDTOSchema),UsageTimelineItemDTOSchema=z107.object({date:z107.string(),credits:z107.number(),costUsd:z107.number(),messages:z107.number()}),UsageTimelineItemDTO=createDTO(UsageTimelineItemDTOSchema),UsageByUserForProjectDTOSchema=z107.object({userId:z107.string(),userName:z107.string().nullable(),userEmail:z107.string().email().nullable(),credits:z107.number(),costUsd:z107.number(),messages:z107.number(),percentage:z107.number()}),UsageByUserForProjectDTO=createDTO(UsageByUserForProjectDTOSchema),ProjectUsageDetailDTOSchema=z107.object({projectId:z107.string(),projectName:z107.string(),projectDisplayName:z107.string().nullable(),summary:UsageSummaryDTOSchema,byUser:z107.array(UsageByUserForProjectDTOSchema),timeline:z107.array(UsageTimelineItemDTOSchema)}),ProjectUsageDetailDTO=createDTO(ProjectUsageDetailDTOSchema),OrganizationUsageDTOSchema=z107.object({summary:UsageSummaryDTOSchema,byProject:z107.array(UsageByProjectDTOSchema),byUser:z107.array(UsageByUserDTOSchema),timeline:z107.array(UsageTimelineItemDTOSchema)}),OrganizationUsageDTO=createDTO(OrganizationUsageDTOSchema)}});import{z as z108}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=z108.enum(["today","1d","7d","14d","30d","60d","90d"]),SortOrderSchema=z108.enum(["asc","desc"]),UsageAnalyticsQuerySchema=z108.object({startDate:z108.string().optional(),endDate:z108.string().optional(),preset:TimeRangePresetSchema.optional().default("30d"),page:z108.coerce.number().int().positive().default(1),limit:z108.coerce.number().int().positive().max(100).default(20),sortBy:z108.string().optional(),sortOrder:SortOrderSchema.optional().default("desc"),search:z108.string().optional(),activeOnly:z108.stringbool().optional().default(!0)}),UsageOverviewSummaryDTOSchema=z108.object({totalCredits:z108.number(),totalCostUsd:z108.number(),totalMessages:z108.number(),avgCostPerMessage:z108.number(),avgCreditsPerMessage:z108.number(),periodStart:z108.string(),periodEnd:z108.string(),creditsChange:z108.number().nullable(),costChange:z108.number().nullable(),messagesChange:z108.number().nullable(),unattributedCredits:z108.number(),unattributedCostUsd:z108.number(),unattributedMessages:z108.number()}),UsageOverviewSummaryDTO=createDTO(UsageOverviewSummaryDTOSchema),UsageTimelinePointDTOSchema=z108.object({date:z108.string(),credits:z108.number(),costUsd:z108.number(),messages:z108.number()}),UsageTimelinePointDTO=createDTO(UsageTimelinePointDTOSchema),OrganizationUsageRowDTOSchema=z108.object({organizationId:z108.string(),organizationName:z108.string(),credits:z108.number(),costUsd:z108.number(),messages:z108.number(),percentage:z108.number(),userCount:z108.number(),projectCount:z108.number()}),OrganizationUsageRowDTO=createDTO(OrganizationUsageRowDTOSchema),UserUsageRowDTOSchema=z108.object({userId:z108.string(),userName:z108.string().nullable(),userEmail:z108.string().nullable(),userImage:z108.string().nullable(),organizationId:z108.string().nullable(),organizationName:z108.string().nullable(),credits:z108.number(),costUsd:z108.number(),messages:z108.number(),percentage:z108.number(),projectCount:z108.number()}),UserUsageRowDTO=createDTO(UserUsageRowDTOSchema),ProjectUsageRowDTOSchema=z108.object({projectId:z108.string(),projectName:z108.string(),projectDisplayName:z108.string().nullable(),organizationId:z108.string(),organizationName:z108.string(),credits:z108.number(),costUsd:z108.number(),messages:z108.number(),percentage:z108.number(),userCount:z108.number()}),ProjectUsageRowDTO=createDTO(ProjectUsageRowDTOSchema),UsageDistributionItemDTOSchema=z108.object({id:z108.string(),name:z108.string(),value:z108.number(),percentage:z108.number()}),UsageDistributionItemDTO=createDTO(UsageDistributionItemDTOSchema),UsageHeatmapPointDTOSchema=z108.object({day:z108.number(),hour:z108.number(),value:z108.number()}),UsageHeatmapPointDTO=createDTO(UsageHeatmapPointDTOSchema),UsageOverviewResponseDTOSchema=z108.object({summary:UsageOverviewSummaryDTOSchema,timeline:z108.array(UsageTimelinePointDTOSchema),topOrganizations:z108.array(OrganizationUsageRowDTOSchema),topUsers:z108.array(UserUsageRowDTOSchema),topProjects:z108.array(ProjectUsageRowDTOSchema),creditDistribution:z108.array(UsageDistributionItemDTOSchema),userDistribution:z108.array(UsageDistributionItemDTOSchema),heatmap:z108.array(UsageHeatmapPointDTOSchema)}),UsageOverviewResponseDTO=createDTO(UsageOverviewResponseDTOSchema),UsagePaginationDTOSchema=z108.object({page:z108.number(),limit:z108.number(),totalItems:z108.number(),totalPages:z108.number(),hasMore:z108.boolean()}),UsagePaginationDTO=createDTO(UsagePaginationDTOSchema),UsageByOrganizationResponseDTOSchema=z108.object({organizations:z108.array(OrganizationUsageRowDTOSchema),top:z108.array(OrganizationUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByOrganizationResponseDTO=createDTO(UsageByOrganizationResponseDTOSchema),ExtendedUserUsageRowDTOSchema=UserUsageRowDTOSchema.extend({organizationCount:z108.number()}),ExtendedUserUsageRowDTO=createDTO(ExtendedUserUsageRowDTOSchema),UsageByUserResponseDTOSchema=z108.object({users:z108.array(ExtendedUserUsageRowDTOSchema),top:z108.array(ExtendedUserUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByUserResponseDTO=createDTO(UsageByUserResponseDTOSchema),ExtendedProjectUsageRowDTOSchema=ProjectUsageRowDTOSchema.extend({ownerId:z108.string(),ownerName:z108.string().nullable(),ownerEmail:z108.string().nullable()}),ExtendedProjectUsageRowDTO=createDTO(ExtendedProjectUsageRowDTOSchema),UsageByProjectResponseDTOSchema=z108.object({projects:z108.array(ExtendedProjectUsageRowDTOSchema),top:z108.array(ExtendedProjectUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByProjectResponseDTO=createDTO(UsageByProjectResponseDTOSchema),ExportFormatSchema=z108.enum(["csv","json"]),UsageExportQuerySchema=UsageAnalyticsQuerySchema.extend({format:ExportFormatSchema.default("csv"),type:z108.enum(["overview","organizations","users","projects"]).default("overview")}),PeekUsageMetricsDTOSchema=z108.object({credits:z108.number(),costUsd:z108.number(),messages:z108.number()}),PeekUsageMetricsDTO=createDTO(PeekUsageMetricsDTOSchema),OrganizationPeekDTOSchema=z108.object({id:z108.string(),name:z108.string(),createdAt:z108.string(),memberCount:z108.number(),projectCount:z108.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z108.array(UsageTimelinePointDTOSchema)}),OrganizationPeekDTO=createDTO(OrganizationPeekDTOSchema),UserPeekDTOSchema=z108.object({id:z108.string(),name:z108.string().nullable(),email:z108.string(),image:z108.string().nullable(),createdAt:z108.string(),organizationCount:z108.number(),projectCount:z108.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z108.array(UsageTimelinePointDTOSchema)}),UserPeekDTO=createDTO(UserPeekDTOSchema),ProjectPeekDTOSchema=z108.object({id:z108.string(),name:z108.string(),displayName:z108.string().nullable(),createdAt:z108.string(),organizationId:z108.string(),organizationName:z108.string(),ownerId:z108.string(),ownerName:z108.string().nullable(),ownerEmail:z108.string().nullable(),usage:PeekUsageMetricsDTOSchema,recentActivity:z108.array(UsageTimelinePointDTOSchema)}),ProjectPeekDTO=createDTO(ProjectPeekDTOSchema)}});import{z as z109}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=z109.enum(["running","completed","failed","stopped"]),PresetSandboxCommandSchema=z109.enum(["restart-dev-server","stop-dev-server","install-dependencies","reinstall-dependencies","build","typecheck"]),ExecuteSandboxCommandRequestDTOSchema=z109.object({command:z109.string().min(1).max(1e4),cwd:z109.string().optional(),projectBranch:BranchSchema.optional(),projectEnv:BranchSchema.optional(),env:z109.record(z109.string(),z109.string()).optional(),name:z109.string().optional(),waitForCompletion:z109.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=z109.object({identifier:z109.string(),status:SandboxProcessStatusSchema,command:z109.string().optional(),startedAt:z109.string().optional(),exitCode:z109.number().optional()}),SandboxProcessInfoDTO=createDTO(SandboxProcessInfoDTOSchema),SandboxProcessInfoResponseSchema=createResponseSchema2(SandboxProcessInfoDTOSchema),SandboxProcessListDTOSchema=z109.object({processes:z109.array(SandboxProcessInfoDTOSchema)}),SandboxProcessListDTO=createDTO(SandboxProcessListDTOSchema),SandboxProcessListResponseSchema=createResponseSchema2(SandboxProcessListDTOSchema),ExecuteSandboxCommandResponseDTOSchema=z109.object({processId:z109.string(),status:SandboxProcessStatusSchema}),ExecuteSandboxCommandResponseDTO=createDTO(ExecuteSandboxCommandResponseDTOSchema),PresetCommandResponseDTOSchema=z109.object({success:z109.boolean(),message:z109.string().optional()}),PresetCommandResponseDTO=createDTO(PresetCommandResponseDTOSchema),PresetCommandResponseSchema=createResponseSchema2(PresetCommandResponseDTOSchema)}});import{z as z110}from"zod";var init_esm=__esm({"../../packages/api-contracts/dist/esm/index.js"(){"use strict";init_create_dto();init_response();init_pagination();init_common2();init_attachments();init_asset_reading();init_env();init_environment();init_realtime();init_references();init_content_fields();init_audit_log();init_ops();init_chat_block();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_trigger_dto();init_agent_list_item_dto();init_agent_control_dto();init_agent_run_dto();init_agent_session_dto();init_agent_proposal_dto();init_agent_question_dto();init_agent_install_summary_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_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_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_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_webhook_dto();init_preview_feature_dto();init_subscription_dto();init_usage_dto();init_usage_analytics_dto();init_sandbox_command_dto()}});import{execFile as execFile2}from"node:child_process";import{promisify as promisify2}from"node:util";async function runGit(args,cwd){let{stdout}=await execFileAsync2("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 execFileAsync2("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 execFileAsync2("git",["ls-remote","--heads",remoteUrl,branch]);return stdout.trim().length>0}async function currentBranch(cwd){return runGit(["symbolic-ref","--short","-q","HEAD"],cwd)}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 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 execFileAsync2,init_git=__esm({"src/cli/utils/git.ts"(){execFileAsync2=promisify2(execFile2);__name(runGit,"runGit");__name(isGitRepo,"isGitRepo");__name(hasUncommittedChanges,"hasUncommittedChanges");__name(cloneRepo,"cloneRepo");__name(isMissingRemoteBranch,"isMissingRemoteBranch");__name(remoteHasBranch,"remoteHasBranch");__name(currentBranch,"currentBranch");__name(currentTagOrNull,"currentTagOrNull");__name(isReleaseTag,"isReleaseTag");__name(classifyPushError,"classifyPushError");__name(extractStderr,"extractStderr")}});function projectSettingsFromEnv(){let projectId=process.env.FIMO_PROJECT_ID?.trim();return projectId?{projectId,organizationId:process.env.FIMO_ORGANIZATION_ID?.trim()??"",name:process.env.FIMO_PROJECT_NAME?.trim()??projectId,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 currentBranch(cwd);return!branch||!isValidBranch(branch)?null:{branch,source:"branch"}}catch{return null}}function resolveBranchFromEnvironment(){let branch=process.env.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{let fromGit=await resolveBranchFromGit(cwd);if(fromGit)branch=fromGit.branch,source=fromGit.source,readOnly=fromGit.readOnly===!0;else{let fromEnvironment=resolveBranchFromEnvironment();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":"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,fimo:baseFimo});if(!bootstrapOpts.quiet){let{currentMode:currentMode2}=await Promise.resolve().then(()=>(init_dist(),dist_exports));currentMode2().format==="pretty"&&process.stderr.write(`${branchSourceBanner(ctx)}
208
+ `)}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}function escapeCell(value){return value.replace(/\|/g,"\\|").replace(/\n/g," ")}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=z46.enum(REPORT_TONES),blockCommon={title:z46.string().trim().min(1).max(120).optional(),fallback:z46.string().trim().min(1).max(600).optional()},ReportTextBlockSchema=z46.object({type:z46.literal("text"),...blockCommon,text:z46.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=z46.object({type:z46.literal("metric"),...blockCommon,items:z46.array(z46.object({value:z46.string().trim().min(1).max(24),unit:z46.string().trim().min(1).max(12).optional(),label:z46.string().trim().min(1).max(160),note:z46.string().trim().min(1).max(300).optional()}).strict()).min(1).max(3),spark:z46.array(z46.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=z46.enum(REPORT_VIZ_KINDS),ReportVizBlockSchema=z46.object({type:z46.literal("viz"),...blockCommon,kind:ReportVizKindSchema.describe("bar: compare named quantities. line/area: change across an ordered sequence. composition: parts of one whole."),unit:z46.string().trim().min(1).max(12).optional(),points:z46.array(z46.object({label:z46.string().trim().min(1).max(24),value:z46.number().finite(),highlight:z46.boolean().optional()}).strict()).min(2).max(24),caption:z46.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,index2)=>{point.value<0&&ctx.addIssue({code:"custom",path:["points",index2,"value"],message:"A composition holds parts of one whole, so every value must be zero or more."})})}),ReportListBlockSchema=z46.object({type:z46.literal("list"),...blockCommon,items:z46.array(z46.object({tone:ReportToneSchema.optional(),label:z46.string().trim().min(1).max(24).optional(),heading:z46.string().trim().min(1).max(160).describe("The human-visible result, action, or consequence, readable on its own."),body:z46.string().trim().min(1).max(1200).optional().describe("One short explanation of why it matters."),evidence:z46.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=z46.object({type:z46.literal("table"),...blockCommon,columns:z46.array(z46.object({label:z46.string().trim().min(1).max(32)}).strict()).min(1).max(6),rows:z46.array(z46.object({cells:z46.array(z46.object({text:z46.string().trim().max(160),tone:ReportToneSchema.optional()}).strict()).min(1).max(6)}).strict()).min(1).max(40),caption:z46.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,index2)=>{row2.cells.length!==block.columns.length&&ctx.addIssue({code:"custom",path:["rows",index2,"cells"],message:`Every row needs exactly ${block.columns.length} cells, one per column.`})})}),ReportMediaBlockSchema=z46.object({type:z46.literal("media"),...blockCommon,assetId:z46.uuid(),alt:z46.string().trim().min(1).max(300),caption:z46.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=z46.object({type:z46.literal("links"),...blockCommon,items:z46.array(z46.object({label:z46.string().trim().min(1).max(120),url:z46.url({protocol:/^https$/}).max(2e3),description:z46.string().trim().min(1).max(300).optional()}).strict()).min(1).max(8)}).strict().describe("A destination, evidence source, or next action worth opening."),ReportCodeBlockSchema=z46.object({type:z46.literal("code"),...blockCommon,language:z46.string().regex(/^[a-z0-9+#-]{1,20}$/,"A language is a short lowercase token, e.g. ts, json, bash.").optional(),code:z46.string().min(1).max(REPORT_CODE_MAX_CHARS),caption:z46.string().trim().min(1).max(600).optional()}).strict().describe("An exact snippet that is decisive evidence. Never a log dump."),ReportBlockSchema=z46.discriminatedUnion("type",[ReportTextBlockSchema,ReportMetricBlockSchema,ReportListBlockSchema,ReportTableBlockSchema,ReportVizBlockSchema,ReportMediaBlockSchema,ReportLinksBlockSchema,ReportCodeBlockSchema]),ReportDocumentSchema=z46.object({title:z46.string().trim().min(1).max(REPORT_TITLE_MAX_CHARS),brief:z46.array(ReportBlockSchema).min(1).max(REPORT_BRIEF_MAX_BLOCKS),details:z46.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=z46.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=z46.preprocess(normalizeStoredBlocks,ReportBriefSchema),StoredReportDocumentSchema=z46.preprocess(normalizeStoredDocument,ReportDocumentSchema);__name(normalizeReportDocument,"normalizeReportDocument");__name(derivedBlockBody,"derivedBlockBody");__name(reportSectionContentLength,"reportSectionContentLength");__name(reportBlockMarkdown,"reportBlockMarkdown");__name(flattenReportDocument,"flattenReportDocument");__name(formatReportNumber,"formatReportNumber");__name(formatReportValue,"formatReportValue");__name(escapeCell,"escapeCell")}});import{z as z47}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=z47.enum(["astro","nextjs","nuxtjs","react-router","remix","sveltekit","vite","vue"]),FimoRuntimeCommandsSchema=z47.object({dev:z47.string().trim().min(1).optional(),build:z47.string().trim().min(1).optional(),install:z47.string().trim().min(1).optional()}).strict(),FimoRuntimeConfigSchema=z47.object({framework:FimoFrameworkSchema.optional(),outputDirectory:z47.string().trim().min(1).optional(),commands:FimoRuntimeCommandsSchema.optional()}).strict(),FimoHostingConditionSchema=z47.object({type:z47.enum(["header","cookie","query","host"]),key:z47.string().min(1).optional(),value:z47.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:z47.array(FimoHostingConditionSchema).min(1).optional(),missing:z47.array(FimoHostingConditionSchema).min(1).optional()},FimoHostingRewriteSchema=z47.object({source:z47.string().min(1),destination:z47.string().min(1),...conditionFields}),FimoHostingRedirectSchema=z47.object({source:z47.string().min(1),destination:z47.string().min(1),permanent:z47.boolean().optional(),statusCode:z47.union([z47.literal(301),z47.literal(302),z47.literal(307),z47.literal(308)]).optional(),...conditionFields}),FimoHostingHeaderSchema=z47.object({source:z47.string().min(1),headers:z47.array(z47.object({key:z47.string().min(1),value:z47.string()})).min(1),...conditionFields}),FimoHostingConfigSchema=z47.object({rewrites:z47.array(FimoHostingRewriteSchema).optional(),redirects:z47.array(FimoHostingRedirectSchema).optional(),headers:z47.array(FimoHostingHeaderSchema).optional(),cleanUrls:z47.boolean().optional(),trailingSlash:z47.boolean().optional()}).strict(),FimoAppConfigSchema=z47.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 pageRouteParamNames(path53){return[...path53.matchAll(/:([^/*]+)\*?/g)].map(match=>match[1])}function pageContentParamNames(path53){return pageRouteParamNames(path53).filter(param=>!LOCALE_PARAM_NAME.test(param))}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";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 z48}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,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_common2();init_env();init_create_dto();init_response();PROJECT_CHAT_MANUAL_MODEL_IDS=["anthropic/claude-opus-5","anthropic/claude-sonnet-5","anthropic/claude-fable-5","openai/gpt-5.6-luna","openai/gpt-5.6-terra","openai/gpt-5.6-sol","xai/grok-4.6","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=z48.enum(PROJECT_CHAT_MANUAL_MODEL_IDS),ProjectDTOSchema=BaseEntitySchema.extend({name:z48.string(),displayName:z48.string().nullable(),subdomain:z48.string().nullable().optional(),subdomainUpdatedAt:z48.date().nullable().optional(),organizationId:z48.string().nullable(),createdBy:z48.string().nullable(),defaultBranch:BranchSchema.default(DEFAULT_BRANCH),productionSourceBranch:BranchSchema.default(DEFAULT_BRANCH),previewEnabled:z48.boolean().default(!0),enabledChatModels:z48.array(ProjectChatManualModelIdSchema).nullable().default(null),status:ProjectStatusSchema,creationStatus:z48.string(),thumbnailUrl:z48.string().nullable(),publishedThumbnailUrl:z48.string().nullable(),category:z48.string().nullable(),snapshotUrl:z48.string().startsWith("/").optional(),appUrl:z48.string().nullable(),lastPublishedAt:z48.coerce.date()}),ProjectDTO=createDTO(ProjectDTOSchema),UpdateProjectSettingsRequestSchema=z48.object({name:z48.string().optional(),previewEnabled:z48.boolean().optional(),enabledChatModels:z48.array(ProjectChatManualModelIdSchema).optional(),productionSourceBranch:BranchSchema.optional(),syncConfig:z48.boolean().optional()}).strict(),ProjectWithPlanDTOSchema=ProjectDTOSchema.extend({planTier:z48.string().nullable()}),ProjectWithPlanDTO=createDTO(ProjectWithPlanDTOSchema),ProjectSummaryDTOSchema=z48.object({id:z48.uuid(),name:z48.string(),displayName:z48.string().nullable(),thumbnailUrl:z48.string().nullable(),category:z48.string().nullable()}),ProjectSummaryDTO=createDTO(ProjectSummaryDTOSchema),ProjectUserDTOSchema=z48.object({id:z48.string(),name:z48.string(),avatar:z48.string().nullable(),color:z48.object({bg:z48.string(),text:z48.string()})}),ProjectUserDTO=createDTO(ProjectUserDTOSchema),ProjectFileDTOSchema=z48.object({path:z48.string(),content:z48.string()}),ProjectFileDTO=createDTO(ProjectFileDTOSchema),ProjectChatMessageRole=z48.enum(["user","assistant","system"]),ProjectMessageBaseSchema=z48.object({id:z48.string(),messageId:z48.string(),versionId:z48.string().nullable(),role:ProjectChatMessageRole,parts:z48.array(z48.any()),createdAt:z48.coerce.date()}),MessageUserMetadataSchema=z48.object({id:z48.string(),name:z48.string().nullable().optional(),image:z48.string().nullable().optional()}).nullable().optional(),ProjectMessagePublicDTOSchema=ProjectMessageBaseSchema.extend({credits:z48.number(),metadata:z48.object({user:MessageUserMetadataSchema,changeManifest:z48.array(z48.any()).optional(),questionAnswer:ChatFormAnswerMetadataSchema.optional()}).nullable().optional()}),ProjectMessagePublicDTO=createDTO(ProjectMessagePublicDTOSchema),ProjectMessageDTOSchema=ProjectMessagePublicDTOSchema,ProjectVersionDTOSchema=z48.object({versionId:z48.uuid(),commitHash:z48.string(),name:z48.string(),description:z48.string().nullable(),kind:z48.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),createdAt:CommonSchemas.timestamp,expiresAt:CommonSchemas.timestamp}),ProjectVersionDTO=createDTO(ProjectVersionDTOSchema),ProjectHistoryUsageDTOSchema=z48.object({versionCount:z48.number().int().nonnegative(),snapshotBytes:z48.number().int().nonnegative()}),ProjectVersionPageDTOSchema=createCursorPageDataSchema(ProjectVersionDTOSchema),ProjectVersionPageDTO=createDTO(ProjectVersionPageDTOSchema),ProjectHistorySummaryDTOSchema=z48.object({usage:ProjectHistoryUsageDTOSchema,retentionDays:z48.number().int().positive()}),ProjectHistorySummaryDTO=createDTO(ProjectHistorySummaryDTOSchema),ProjectDocumentContentDTOSchema=z48.object({content:z48.string()}),ProjectDocumentContentDTO=createDTO(ProjectDocumentContentDTOSchema),ProjectListResponseSchema=createResponseSchema2(z48.array(ProjectDTOSchema)),ProjectVersionResponseSchema=createResponseSchema2(ProjectVersionDTOSchema),ProjectVersionPageResponseSchema=createCursorPaginatedResponseSchema(ProjectVersionDTOSchema),ProjectHistorySummaryResponseSchema=createResponseSchema2(ProjectHistorySummaryDTOSchema),VersionMutationResponseSchema=createResponseSchema2(z48.object({success:z48.boolean(),message:z48.string().optional(),warning:z48.string().optional(),durationMs:z48.number().int().nonnegative().optional()})),ProjectPublicationStateDTOSchema=z48.object({isPublished:z48.boolean(),publishedAt:CommonSchemas.timestamp.nullable(),publishedVersion:z48.string().nullable()}),ProjectPublicationStateDTO=createDTO(ProjectPublicationStateDTOSchema),PublishProjectRequestSchema=z48.object({label:z48.string().trim().min(1).max(120).optional(),notes:z48.string().max(2e4).optional()}).strict(),PublicationMutationDTOSchema=z48.object({success:z48.boolean(),message:z48.string().optional(),publishedAt:CommonSchemas.timestamp.optional(),firstPublish:z48.boolean(),publicationId:z48.string().optional()}),PublicationMutationDTO=createDTO(PublicationMutationDTOSchema),ProjectPublicationStateResponseSchema=createResponseSchema2(ProjectPublicationStateDTOSchema),PublicationMutationResponseSchema=createResponseSchema2(PublicationMutationDTOSchema),ProjectResponseSchema=createResponseSchema2(ProjectDTOSchema),ProjectWithPlanResponseSchema=createResponseSchema2(ProjectWithPlanDTOSchema)}});import{z as z49}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_common2();init_env();init_environment();init_create_dto();init_response();ProjectBranchStatusSchema=z49.enum(["provisioning","active","deleted"]),ProjectBranchKindSchema=z49.enum(["user","agent-session"]),ProjectBranchDTOSchema=BaseEntitySchema.extend({projectId:z49.uuid(),branch:BranchSchema.optional(),status:ProjectBranchStatusSchema,kind:ProjectBranchKindSchema,parentBranch:BranchSchema.nullable().optional(),createdBy:z49.string().nullable(),deletedAt:z49.coerce.date().nullable(),env:BranchSchema,parentEnv:BranchSchema.nullable()}),ProjectBranchDTO=createDTO(ProjectBranchDTOSchema),ResolvedBranchEnvironmentDTOSchema=z49.object({id:z49.union([z49.literal(PREVIEW_ENVIRONMENT_KEY),z49.uuid()]),name:z49.string()}),ProjectBranchListItemDTOSchema=ProjectBranchDTOSchema.extend({resolvedEnvironment:ResolvedBranchEnvironmentDTOSchema.nullable()}),ProjectBranchListItemDTO=createDTO(ProjectBranchListItemDTOSchema),CreateProjectBranchRequestInputSchema=z49.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=z49.object({from:BranchSchema.optional()}),ProjectBranchResponseSchema=createResponseSchema2(ProjectBranchDTOSchema),ProjectBranchesListResponseSchema=createResponseSchema2(z49.array(ProjectBranchListItemDTOSchema)),BranchSurfaceDiffSchema=z49.object({surface:z49.enum(["code","schemas","content","translations","assets","forms"]),status:z49.enum(["unchanged","changed","conflicting","missing-on-target"]),changedCount:z49.number().int().nonnegative(),conflictCount:z49.number().int().nonnegative()}),BranchDiffResultSchema=z49.object({fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),generatedAt:z49.coerce.date(),surfaces:z49.array(BranchSurfaceDiffSchema),fromEnv:BranchSchema,toEnv:BranchSchema}),BranchDiffResultDTO=createDTO(BranchDiffResultSchema)}});import{z as z50}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=z50.object({projectId:z50.uuid(),name:z50.string()}),ProductionEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z50.literal(PRODUCTION_ENVIRONMENT_KEY),kind:z50.literal("production"),sourceBranch:BranchSchema,isPublished:z50.boolean(),url:z50.string().nullable()}),PreviewEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z50.literal(PREVIEW_ENVIRONMENT_KEY),kind:z50.literal("preview"),matchedBranchCount:z50.number().int().nonnegative()}),CustomProjectEnvironmentDTOSchema=CustomEnvironmentSchema.extend({kind:z50.literal("custom"),matchedBranchCount:z50.number().int().nonnegative()}),ProjectEnvironmentDTOSchema=z50.discriminatedUnion("kind",[ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema]),ProjectEnvironmentDTO=createDTO(ProjectEnvironmentDTOSchema),CreateProjectEnvironmentRequestSchema=CustomEnvironmentSchema.pick({name:!0,branchPatterns:!0,description:!0}).extend({description:z50.string().trim().max(255).nullable().optional().default(null)}),ProjectEnvironmentsListResponseSchema=createResponseSchema2(z50.array(ProjectEnvironmentDTOSchema)),ProjectEnvironmentResponseSchema=createResponseSchema2(ProjectEnvironmentDTOSchema),DeleteProjectEnvironmentResultSchema=z50.object({deletedId:z50.uuid()}),DeleteProjectEnvironmentResponseSchema=createResponseSchema2(DeleteProjectEnvironmentResultSchema)}});import{z as z51}from"zod";var ProjectSecretsListQuerySchema,ProjectSecretWriteRequestSchema,CreateProjectSecretRequestSchema,DeleteProjectSecretQuerySchema,ProjectSecretMetadataDTOSchema,ProjectSecretMetadataDTO,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=z51.object({kind:z51.enum(["variable","secret"]).optional(),environment:EnvironmentKeySchema}),ProjectSecretWriteRequestSchema=z51.object({kind:z51.enum(["variable","secret"]),value:z51.string(),environment:EnvironmentKeySchema}),CreateProjectSecretRequestSchema=ProjectSecretWriteRequestSchema.extend({key:z51.string().min(1).max(255)}),DeleteProjectSecretQuerySchema=z51.object({kind:z51.enum(["variable","secret"]),environment:EnvironmentKeySchema}),ProjectSecretMetadataDTOSchema=z51.object({id:z51.uuid(),projectId:z51.uuid(),key:z51.string(),kind:z51.literal("secret"),exposure:z51.literal("private"),environment:EnvironmentKeySchema,maskedValue:z51.string().optional(),createdAt:z51.date().transform(value=>value.toISOString()),updatedAt:z51.date().transform(value=>value.toISOString())}),ProjectSecretMetadataDTO=createDTO(ProjectSecretMetadataDTOSchema),ProjectSecretsListResponseSchema=createResponseSchema2(z51.array(ProjectSecretMetadataDTOSchema)),ProjectSecretResponseSchema=createResponseSchema2(ProjectSecretMetadataDTOSchema)}});import{z as z52}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=z52.object({success:z52.literal(!0),downloadUrl:z52.string(),expiresAt:z52.string(),fileSize:z52.number(),duration:z52.number()}),ExportProjectResponseDTO=createDTO(ExportProjectResponseDTOSchema),ImportProjectResultDTOSchema=z52.object({success:z52.literal(!0),projectId:z52.string(),projectName:z52.string(),displayName:z52.string(),projectUrl:z52.string(),duration:z52.number()}),ImportProjectResultDTO=createDTO(ImportProjectResultDTOSchema),ImportPreviewCountsDTOSchema=z52.object({contentTypes:z52.number(),entries:z52.number(),assets:z52.number(),translations:z52.number(),forms:z52.number(),codeFiles:z52.number(),assetFiles:z52.number()}),ImportPreviewSurfaceDTOSchema=z52.object({name:z52.string(),included:z52.boolean(),count:z52.number().optional(),note:z52.string().optional()}),ImportPreviewDTOSchema=z52.object({projectName:z52.string(),displayName:z52.string().nullable(),category:z52.string().nullable(),exportedAt:z52.string(),version:z52.string(),envScope:z52.enum(["main","tree"]),counts:ImportPreviewCountsDTOSchema,surfaces:z52.array(ImportPreviewSurfaceDTOSchema),fileSize:z52.number(),fileName:z52.string()}),ImportPreviewDTO=createDTO(ImportPreviewDTOSchema),ImportPreviewResponseDTOSchema=z52.object({success:z52.literal(!0),preview:ImportPreviewDTOSchema}),ImportPreviewResponseDTO=createDTO(ImportPreviewResponseDTOSchema)}});import{z as z53}from"zod";var TriggerKindSchema,ManualTriggerSchema2,ScheduleTriggerSchema,WebhookTriggerSchema2,TriggerSchema2,init_agent_trigger_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-trigger.dto.js"(){"use strict";TriggerKindSchema=z53.enum(["manual","schedule","webhook"]),ManualTriggerSchema2=z53.object({type:z53.literal("manual")}),ScheduleTriggerSchema=z53.object({type:z53.literal("schedule"),cron:z53.string().min(1,"cron expression required").regex(/^\s*\S+\s+\S+\s+\S+\s+\S+\s+\S+\s*$/,"cron must be a 5-field expression"),tz:z53.string().optional()}),WebhookTriggerSchema2=z53.object({type:z53.literal("webhook"),path:z53.string().min(1).max(120).regex(/^[a-z0-9][a-z0-9_/-]*$/i,"webhook path must be lowercase alphanumeric with optional / - _")}),TriggerSchema2=z53.discriminatedUnion("type",[ManualTriggerSchema2,ScheduleTriggerSchema,WebhookTriggerSchema2])}});import{z as z54}from"zod";var CapabilityRiskTierSchema,CapabilitySummaryEntrySchema,AgentSubAgentSummarySchema,AgentInstallSummaryDTOSchema,AgentInstallSummaryDTO,AgentInstallSummaryResponseSchema,init_agent_install_summary_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-install-summary.dto.js"(){"use strict";init_create_dto();init_response();CapabilityRiskTierSchema=z54.enum(["low","medium","high","critical"]),CapabilitySummaryEntrySchema=z54.object({token:z54.string().min(1),risk:CapabilityRiskTierSchema,description:z54.string()}),AgentSubAgentSummarySchema=z54.object({name:z54.string().min(1),grant:z54.enum(["inherit","explicit"]),effectiveCaps:z54.array(z54.string().min(1))}),AgentInstallSummaryDTOSchema=z54.object({agentName:z54.string().min(1),env:z54.string().min(1),declaredCapabilities:z54.array(CapabilitySummaryEntrySchema),transitiveCapabilities:z54.array(CapabilitySummaryEntrySchema),highRiskCapabilities:z54.array(CapabilitySummaryEntrySchema),criticalCapabilities:z54.array(CapabilitySummaryEntrySchema),subAgents:z54.array(AgentSubAgentSummarySchema),declaresDelegate:z54.boolean(),cycle:z54.array(z54.string()).nullable(),missingSubAgents:z54.array(z54.string()),warnings:z54.array(z54.string())}),AgentInstallSummaryDTO=createDTO(AgentInstallSummaryDTOSchema),AgentInstallSummaryResponseSchema=createResponseSchema2(AgentInstallSummaryDTOSchema)}});import{z as z55}from"zod";var AgentListItemTriggerSchema,AgentListItemTriggerStateSchema,AgentListItemDTOSchema,AgentListItemDTO,AgentListResponseSchema,init_agent_list_item_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-list-item.dto.js"(){"use strict";init_create_dto();init_response();init_agent_install_summary_dto();init_agent_trigger_dto();AgentListItemTriggerSchema=z55.object({kind:TriggerKindSchema,summary:z55.string()}),AgentListItemTriggerStateSchema=z55.object({triggerIndex:z55.number().int().nonnegative(),triggerKind:TriggerKindSchema,enabled:z55.boolean(),wired:z55.boolean(),syncError:z55.string().nullable()}),AgentListItemDTOSchema=z55.object({name:z55.string().min(1),description:z55.string().nullable(),goalFirstLine:z55.string().nullable(),declaredCapabilities:z55.array(CapabilitySummaryEntrySchema),triggers:z55.array(AgentListItemTriggerSchema),triggerStates:z55.array(AgentListItemTriggerStateSchema),paused:z55.boolean(),nextRunAt:z55.coerce.date().nullable()}),AgentListItemDTO=createDTO(AgentListItemDTOSchema),AgentListResponseSchema=createResponseSchema2(z55.array(AgentListItemDTOSchema))}});import{z as z56}from"zod";var AgentControlResultSchema,AgentControlResultDTO,AgentControlResultResponseSchema,init_agent_control_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-control.dto.js"(){"use strict";init_create_dto();init_response();AgentControlResultSchema=z56.object({paused:z56.boolean(),cancelledRuns:z56.number().int().nonnegative(),stopIncomplete:z56.boolean()}),AgentControlResultDTO=createDTO(AgentControlResultSchema),AgentControlResultResponseSchema=createResponseSchema2(AgentControlResultSchema)}});import{z as z57}from"zod";var ManualRunRequestSchema,DispatchSkippedSchema,DispatchAcceptedSchema,ManualRunResponseSchema,init_agent_run_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-run.dto.js"(){"use strict";init_response();ManualRunRequestSchema=z57.object({args:z57.unknown().optional(),requestId:z57.string().min(1).max(128).optional()}),DispatchSkippedSchema=z57.object({skipped:z57.enum(["no-manual-trigger","trigger-not-wired","agent-paused","run-in-progress","task-branch-budget"])}),DispatchAcceptedSchema=z57.object({sessionId:z57.string().min(1)}),ManualRunResponseSchema=createResponseSchema2(z57.union([DispatchAcceptedSchema,DispatchSkippedSchema]))}});import{z as z58}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,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=z58.enum(["code","schemas","content","translations","assets","forms"]),SURFACE_NAMES=["code","schemas","content","translations","assets","forms"],SurfaceDeltaVerbSchema=z58.enum(["added","removed","changed","conflict"]),SurfaceItemOriginSchema=z58.enum(["committed-ahead","local-uncommitted"]),SurfaceDeltaItemSchema=z58.object({verb:SurfaceDeltaVerbSchema,key:z58.string(),detail:z58.string().optional(),origin:SurfaceItemOriginSchema.optional(),meta:z58.record(z58.string(),z58.unknown()).optional()}),PerSurfaceDeltaSchema=z58.object({surface:SurfaceNameSchema,status:z58.enum(["ok","timed_out","failed","unchanged"]),durationMs:z58.number().int().nonnegative().optional(),changedCount:z58.number().int().nonnegative(),conflictCount:z58.number().int().nonnegative(),items:z58.array(SurfaceDeltaItemSchema).max(1e3).optional(),truncated:z58.boolean().optional(),error:z58.string().optional()}),CrossSurfaceFindingSchema=z58.object({id:z58.string(),kind:z58.string(),description:z58.string(),severity:z58.enum(["warning","error"]),source:z58.object({surface:SurfaceNameSchema,key:z58.string()}),target:z58.object({surface:SurfaceNameSchema,key:z58.string()}),actions:z58.array(z58.enum(["restore-target","fix-source","ignore"])).min(1)}),StatusReportSchema=z58.object({branch:BranchSchema.optional(),env:BranchSchema,vs:BranchSchema,syncState:z58.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:z58.coerce.date(),surfaces:z58.array(PerSurfaceDeltaSchema),agents:z58.array(z58.object({id:z58.string(),name:z58.string(),status:z58.enum(["active","paused","failed"]),lastRunAt:z58.coerce.date().nullable()})).optional(),crossSurface:z58.array(CrossSurfaceFindingSchema).optional()}),StatusReportDTO=createDTO(StatusReportSchema),StatusReportResponseSchema=createResponseSchema2(StatusReportSchema),DiffReportSchema=z58.object({fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),fromEnv:BranchSchema,toEnv:BranchSchema,generatedAt:z58.coerce.date(),surfaces:z58.array(PerSurfaceDeltaSchema),crossSurface:z58.array(CrossSurfaceFindingSchema).optional(),fingerprint:z58.string()}),DiffReportDTO=createDTO(DiffReportSchema),DiffReportResponseSchema=createResponseSchema2(DiffReportSchema),CodeFileDiffSchema=z58.object({path:z58.string(),state:z58.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z58.string(),additions:z58.number().int().nonnegative(),deletions:z58.number().int().nonnegative()}),CodeFileDiffDTO=createDTO(CodeFileDiffSchema),CodeFileDiffResponseSchema=createResponseSchema2(CodeFileDiffSchema),CodeConflictBlobSchema=z58.object({oid:z58.string().optional(),content:z58.string().optional(),truncated:z58.boolean(),binary:z58.boolean()}),CodeConflictDetailSchema=z58.object({path:z58.string(),base:CodeConflictBlobSchema,ours:CodeConflictBlobSchema,theirs:CodeConflictBlobSchema,result:CodeConflictBlobSchema,sourceTipSha:z58.string(),targetTipSha:z58.string(),mergeBaseSha:z58.string().optional()}),CodeConflictDetailDTO=createDTO(CodeConflictDetailSchema),CodeConflictDetailResponseSchema=createResponseSchema2(CodeConflictDetailSchema),ContentEntrySnapshotSchema=z58.object({id:z58.string(),slug:z58.string(),contentType:z58.string(),data:z58.record(z58.string(),z58.unknown()),updatedAt:z58.coerce.date()}),ContentRowDiffSchema=z58.object({collection:z58.string(),rowId:z58.string(),parent:ContentEntrySnapshotSchema.nullable(),child:ContentEntrySnapshotSchema.nullable()}),ContentRowDiffDTO=createDTO(ContentRowDiffSchema),ContentRowDiffResponseSchema=createResponseSchema2(ContentRowDiffSchema),SchemaTypeSnapshotSchema=z58.object({name:z58.string(),label:z58.string(),isSingleton:z58.boolean(),fields:z58.record(z58.string(),z58.unknown())}),SchemaTypeDiffSchema=z58.object({typeName:z58.string(),parent:SchemaTypeSnapshotSchema.nullable(),child:SchemaTypeSnapshotSchema.nullable()}),SchemaTypeDiffDTO=createDTO(SchemaTypeDiffSchema),SchemaTypeDiffResponseSchema=createResponseSchema2(SchemaTypeDiffSchema),AssetSnapshotSchema=z58.object({id:z58.string(),name:z58.string(),type:z58.enum(["file","folder"]),mimeType:z58.string().nullable(),storageKey:z58.string().nullable(),url:z58.string().nullable(),fileSize:z58.number().nullable(),width:z58.number().nullable(),height:z58.number().nullable(),altText:z58.string().nullable(),caption:z58.string().nullable(),createdAt:z58.coerce.date(),updatedAt:z58.coerce.date()}),AssetDiffSchema=z58.object({assetId:z58.string(),parent:AssetSnapshotSchema.nullable(),child:AssetSnapshotSchema.nullable()}),AssetDiffDTO=createDTO(AssetDiffSchema),AssetDiffResponseSchema=createResponseSchema2(AssetDiffSchema),TranslationRowDiffSchema=z58.object({locale:z58.string(),key:z58.string(),parent:z58.string().nullable(),child:z58.string().nullable()}),TranslationRowDiffDTO=createDTO(TranslationRowDiffSchema),TranslationRowDiffResponseSchema=createResponseSchema2(TranslationRowDiffSchema),FormSchemaSnapshotSchema=z58.object({formName:z58.string(),label:z58.string().nullable(),schemaFingerprint:z58.string(),fields:z58.record(z58.string(),z58.unknown()),settings:z58.record(z58.string(),z58.unknown()).optional()}),FormSchemaDiffSchema=z58.object({formName:z58.string(),parent:FormSchemaSnapshotSchema.nullable(),child:FormSchemaSnapshotSchema.nullable()}),FormSchemaDiffDTO=createDTO(FormSchemaDiffSchema),FormSchemaDiffResponseSchema=createResponseSchema2(FormSchemaDiffSchema),CONFLICT_KINDS=["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"],ConflictKindSchema=z58.enum(CONFLICT_KINDS),ConflictSchema=z58.object({surface:SurfaceNameSchema,key:z58.string(),kind:ConflictKindSchema.optional(),description:z58.string(),parentValue:z58.unknown().optional(),childValue:z58.unknown().optional(),conflictingFields:z58.array(z58.string()).optional(),code:z58.object({path:z58.string(),unresolvable:z58.boolean().optional(),reason:z58.string().optional()}).optional()}),FieldPickSchema=z58.object({field:z58.string(),choice:z58.enum(["parent","child","pick","ai-pick"]),pickedValue:z58.unknown().optional(),aiSessionId:z58.string().optional()}),ConflictResolutionSchema=z58.object({surface:SurfaceNameSchema,key:z58.string(),choice:z58.enum(["parent","child","pick"]),pickedValue:z58.unknown().optional(),fieldPicks:z58.array(FieldPickSchema).optional()}),MergeResultSchema=z58.object({ok:z58.boolean(),mergeId:z58.string().uuid(),fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),fromEnv:BranchSchema,toEnv:BranchSchema,applied:z58.array(z58.object({surface:SurfaceNameSchema,count:z58.number().int().nonnegative()})),conflicts:z58.array(ConflictSchema).optional(),summary:z58.string().optional()}),MergeResultDTO=createDTO(MergeResultSchema),MergeResultResponseSchema=createResponseSchema2(MergeResultSchema),EngineStrategySchema=z58.enum(["ff-only","auto","theirs","ours","manual"]),VendorStrategySchema=z58.enum(["ff_only","ff_prefer","merge"]),MergeStrategySchema=z58.object({engine:EngineStrategySchema.optional(),vendor:VendorStrategySchema.optional(),squash:z58.boolean().optional()}),ResolvedStrategySchema=z58.object({engine:EngineStrategySchema,vendor:VendorStrategySchema,squash:z58.boolean()}),MergeRequestSchema=z58.object({from:BranchSchema,allowDirectMerge:z58.boolean().optional(),strategy:MergeStrategySchema.optional()}),MergeInitiateResultSchema=z58.object({mergeId:z58.string().uuid(),streamUrl:z58.string(),strategy:ResolvedStrategySchema,acceptedAt:z58.coerce.date()}),MergeInitiateResultDTO=createDTO(MergeInitiateResultSchema),MergeInitiateResponseSchema=createResponseSchema2(MergeInitiateResultSchema),MergeConflictsHydrationSchema=z58.object({mergeId:z58.string().uuid(),fromEnv:BranchSchema,toEnv:BranchSchema,status:z58.enum(["in_progress","complete","failed","rolled_back","conflicts"]),strategy:ResolvedStrategySchema,conflicts:z58.array(ConflictSchema),draftResolutions:z58.array(ConflictResolutionSchema),lastEditedBy:z58.string().nullable(),lastEditedAt:z58.coerce.date().nullable(),initiator:z58.object({userId:z58.string().nullable(),role:z58.string().nullable(),agentName:z58.string().nullable()})}),MergeConflictsHydrationDTO=createDTO(MergeConflictsHydrationSchema),MergeConflictsHydrationResponseSchema=createResponseSchema2(MergeConflictsHydrationSchema),MergeResolveDraftRequestSchema=z58.object({resolutions:z58.array(ConflictResolutionSchema)}),MergeResolveDraftResultSchema=z58.object({mergeId:z58.string().uuid(),draftResolutions:z58.array(ConflictResolutionSchema),lastEditedAt:z58.coerce.date(),lastEditedBy:z58.string()}),MergeResolveDraftResultDTO=createDTO(MergeResolveDraftResultSchema),MergeResolveRequestSchema=z58.object({mergeId:z58.string().uuid(),resolutions:z58.array(ConflictResolutionSchema)}),MergeCancelRequestSchema=z58.object({mergeId:z58.string().uuid()}),PublishReleaseRequestSchema=z58.object({version:z58.string().regex(/^v?\d+\.\d+\.\d+(-[\w.]+)?$/,"Use semver (v1.4.2 / 1.4.2 / 1.4.2-rc.1)"),notes:z58.string().max(2e4).optional()}),PublishReleaseResultSchema=z58.object({releaseTag:z58.string(),sha:z58.string(),publishedAt:z58.coerce.date()}),PublishReleaseResultDTO=createDTO(PublishReleaseResultSchema),PublishReleaseResponseSchema=createResponseSchema2(PublishReleaseResultSchema)}});import{z as z59}from"zod";var AgentSessionStatusSchema,AgentRunStatusSchema,AgentSessionsListQuerySchema,SessionMetricsSchema,AgentSessionReviewPublicationSchema,AgentSessionReviewSummarySchema,AgentSessionReviewSummaryDTO,AgentSessionReviewPayloadSchema,AgentSessionReviewPayloadDTO,AgentSessionReviewPayloadResponseSchema,AgentSessionDTOSchema,AgentSessionDTO,AgentSessionCheckpointDTOSchema,AgentSessionCheckpointDTO,AgentSessionResponseSchema,AgentSessionsListResponseSchema,AgentSessionCheckpointsListResponseSchema,AgentSessionWithCheckpointsResponseSchema,SessionErrorCodeSchema,CancelSessionRequestSchema,init_agent_session_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-session.dto.js"(){"use strict";init_agent_report();init_env();init_create_dto();init_response();init_agent_trigger_dto();init_env_status_dto();AgentSessionStatusSchema=z59.enum(["planned","running","finished","cancelled","errored"]),AgentRunStatusSchema=z59.enum(["in-progress","done","merged","merge-required","needs-attention","needs-input","failed"]),AgentSessionsListQuerySchema=z59.strictObject({branch:BranchSchema.optional(),project_agents_only:z59.coerce.boolean().optional(),agent_name:z59.string().optional(),status:AgentSessionStatusSchema.optional(),run_status:AgentRunStatusSchema.optional(),since:z59.coerce.date().optional(),page:z59.coerce.number().int().positive().default(1),limit:z59.coerce.number().int().positive().max(200).default(25),cursor:z59.coerce.date().optional()}),SessionMetricsSchema=z59.object({cpuMs:z59.number().nonnegative().default(0),netBytes:z59.number().nonnegative().default(0),walltimeMs:z59.number().nonnegative().default(0),llmTokensIn:z59.number().nonnegative().optional(),llmTokensOut:z59.number().nonnegative().optional(),stepCount:z59.number().int().nonnegative().optional(),toolCallCounts:z59.record(z59.string().min(1).max(120),z59.number().int().nonnegative()).optional(),toolCallOutcomes:z59.array(z59.object({toolName:z59.string().min(1).max(120),success:z59.boolean(),code:z59.string().regex(/^[A-Z][A-Z0-9_]{0,63}$/).optional()})).max(512).optional(),finishAction:z59.enum(["merge","retain","discard"]).optional()}),AgentSessionReviewPublicationSchema=z59.enum(["pending","merged","conflict","not_published"]),AgentSessionReviewSummarySchema=z59.object({capturedAt:z59.coerce.date(),fingerprint:z59.string().min(1).max(256),counts:z59.object({code:z59.number().int().nonnegative(),content:z59.number().int().nonnegative(),schemas:z59.number().int().nonnegative(),labels:z59.number().int().nonnegative(),assets:z59.number().int().nonnegative().optional()}),publication:AgentSessionReviewPublicationSchema,mergeId:z59.uuid().nullable()}),AgentSessionReviewSummaryDTO=createDTO(AgentSessionReviewSummarySchema),AgentSessionReviewPayloadSchema=z59.object({diff:DiffReportSchema,code:z59.array(CodeFileDiffSchema.extend({raw:z59.string().max(24576)})).max(200),schemas:z59.array(SchemaTypeDiffSchema).max(200),content:z59.array(z59.object({key:z59.string().min(1).max(512),collection:z59.string().min(1).max(256),slug:z59.string().max(512).optional(),verb:z59.enum(["added","modified","deleted"]),fields:z59.array(z59.object({name:z59.string().min(1).max(256),before:z59.unknown().optional(),after:z59.unknown().optional()})).max(20)})).max(200),labels:z59.array(z59.object({key:z59.string().min(1).max(512),locale:z59.string().min(1).max(64).optional(),before:z59.unknown().nullable(),after:z59.unknown().nullable()})).max(200),assets:z59.array(z59.object({key:z59.string().min(1).max(512),name:z59.string().min(1).max(512),verb:z59.enum(["added","modified","deleted"]),before:AssetSnapshotSchema.nullable(),after:AssetSnapshotSchema.nullable()})).max(200).default([])}),AgentSessionReviewPayloadDTO=createDTO(AgentSessionReviewPayloadSchema),AgentSessionReviewPayloadResponseSchema=createResponseSchema2(AgentSessionReviewPayloadSchema),AgentSessionDTOSchema=z59.strictObject({id:z59.uuid(),projectId:z59.uuid(),branch:BranchSchema,agentName:z59.string().min(1),triggerKind:TriggerKindSchema,triggerPayload:z59.unknown().optional(),capabilities:z59.array(z59.string()).optional(),dataSources:z59.array(z59.string()).optional(),status:AgentSessionStatusSchema,sandboxId:z59.string().nullable(),startedAt:z59.coerce.date().nullable(),finishedAt:z59.coerce.date().nullable(),cancelledAt:z59.coerce.date().nullable(),costUsd:z59.number().nonnegative(),costCeilingUsd:z59.number().nonnegative(),creditsUsed:z59.number().int().nonnegative().nullable(),limitCredits:z59.number().int().nonnegative().nullable(),metrics:SessionMetricsSchema.nullable(),longRunning:z59.boolean(),lastCheckpointId:z59.uuid().nullable(),agentBranchId:z59.uuid().nullable(),parentSessionId:z59.uuid().nullable(),terminalReason:z59.string().nullable(),errorMessage:z59.string().nullable(),reportDocument:StoredReportDocumentSchema.nullable(),reviewSummary:AgentSessionReviewSummarySchema.nullable(),reviewCaptureError:z59.string().nullable(),createdAt:z59.coerce.date(),updatedAt:z59.coerce.date()}),AgentSessionDTO=createDTO(AgentSessionDTOSchema),AgentSessionCheckpointDTOSchema=z59.object({id:z59.uuid(),sessionId:z59.uuid(),checkpointIdx:z59.number().int().nonnegative(),payloadRef:z59.string(),payloadSizeBytes:z59.number().int().nonnegative(),checksum:z59.string().length(64),createdAt:z59.coerce.date()}),AgentSessionCheckpointDTO=createDTO(AgentSessionCheckpointDTOSchema),AgentSessionResponseSchema=createResponseSchema2(AgentSessionDTOSchema),AgentSessionsListResponseSchema=createPaginatedResponseSchema(AgentSessionDTOSchema),AgentSessionCheckpointsListResponseSchema=createResponseSchema2(z59.array(AgentSessionCheckpointDTOSchema)),AgentSessionWithCheckpointsResponseSchema=createResponseSchema2(z59.object({session:AgentSessionDTOSchema,checkpoints:z59.array(AgentSessionCheckpointDTOSchema)})),SessionErrorCodeSchema=z59.enum(["invalid_session_transition","session_not_found","capability_snapshot_invalid","checkpoint_restore_failed","cost_ceiling_invalid","agent_run_in_progress","agent_runtime_allowance_exhausted"]),CancelSessionRequestSchema=z59.object({reason:z59.string().min(1).max(120).optional()})}});import{z as z60}from"zod";var AgentBranchClassificationSchema,AgentBranchDecidedPathSchema,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();AgentBranchClassificationSchema=z60.enum(["trivial","structural"]),AgentBranchDecidedPathSchema=z60.enum(["auto-merge","review-merged","review-discarded"]),AgentBranchProposalDTOSchema=z60.object({id:z60.uuid(),envId:z60.uuid(),sessionId:z60.uuid().nullable(),skillName:z60.string().min(1),classification:AgentBranchClassificationSchema,rationale:z60.string().nullable(),summary:z60.string().nullable(),surfaceDeltas:z60.record(z60.string(),z60.unknown()),createdAt:z60.coerce.date(),decidedAt:z60.coerce.date().nullable(),decidedPath:AgentBranchDecidedPathSchema.nullable(),decidedBy:z60.string().nullable()}),AgentBranchProposalDTO=createDTO(AgentBranchProposalDTOSchema),DecideProposalRequestSchema=z60.object({path:z60.enum(["review-merged","review-discarded"])}),AgentBranchProposalResponseSchema=createResponseSchema2(AgentBranchProposalDTOSchema),AgentBranchProposalsListResponseSchema=createResponseSchema2(z60.array(AgentBranchProposalDTOSchema)),DecideProposalConflictResponseSchema=z60.object({code:z60.literal("merge_conflict"),message:z60.string(),conflicts:z60.record(z60.string(),z60.number().int().nonnegative())})}});import{z as z61}from"zod";function agentQuestionCapabilityDecision(request,answer){let answers=answer?.answer.questions??[],decision={requested:[],approved:[],denied:[]};return request.block.steps.forEach((step,index2)=>{if(step.body.type!=="capabilities")return;let answered=answers.find(item=>item.stepId===step.id)??answers[index2],selected=new Set(answered?.selectedLabels??[]);for(let item of step.body.items)decision.requested.push(item),(selected.has(item.label)?decision.approved:decision.denied).push(item.token)}),decision}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=z61.enum(AGENT_QUESTION_STATES),AgentQuestionFormSchema=FormBlockSchema.extend({title:z61.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=z61.object({description:z61.string().trim().min(1).max(240),block:AgentQuestionFormSchema}).strict(),AgentQuestionRequestSchema=AgentQuestionAskSchema.extend({version:z61.literal(QUESTION_FORM_CONTRACT_VERSION)}),AgentQuestionSchema=z61.object({id:z61.uuid(),projectId:z61.uuid(),threadId:z61.uuid(),invocationId:z61.uuid(),agentKey:z61.string().min(1).max(120),anchorEnv:z61.string().min(1).max(64),retainedEnv:z61.string().min(1).max(64),state:AgentQuestionStateSchema,request:AgentQuestionRequestSchema,answer:QuestionFormAnswerSnapshotSchema.nullable(),answeredByUserId:z61.string().min(1).nullable(),continuationInvocationId:z61.uuid().nullable(),askedAt:z61.coerce.date(),expiresAt:z61.coerce.date(),closedAt:z61.coerce.date().nullable()});__name(agentQuestionCapabilityDecision,"agentQuestionCapabilityDecision");AgentQuestionResponseSchema=createResponseSchema2(AgentQuestionSchema),RunAgentQuestionResponseSchema=createResponseSchema2(AgentQuestionSchema.nullable()),AgentQuestionAttentionSchema=z61.object({questionId:z61.uuid(),invocationId:z61.uuid(),askedAt:z61.coerce.date()}),OpenAgentQuestionsResponseSchema=createResponseSchema2(z61.array(AgentQuestionAttentionSchema)),AnswerAgentQuestionResultSchema=z61.object({question:AgentQuestionSchema,continuationInvocationId:z61.uuid(),deduped:z61.boolean()}),AnswerAgentQuestionResponseSchema=createResponseSchema2(AnswerAgentQuestionResultSchema)}});import{z as z62}from"zod";var IntegrationAuthModeSchema,IntegrationAuthKindSchema,IntegrationCredentialInputSchema,IntegrationCredentialUsageSchema,IntegrationToolEffectSchema,ProjectIntegrationCredentialStatusSchema,IntegrationAuthModeDTOSchema,IntegrationCredentialDefinitionDTOSchema,IntegrationToolDefinitionDTOSchema,IntegrationRecipeDTOSchema,IntegrationInfoDTOSchema,IntegrationInfoDTO,ProjectIntegrationStatusDTOSchema,ProjectIntegrationStatusDTO,ProjectIntegrationInstallationDTOSchema,ProjectIntegrationInstallationDTO,EnableProjectIntegrationRequestSchema,SwitchProjectIntegrationAuthRequestSchema,SetProjectIntegrationCredentialRequestSchema,OrganizationIntegrationConnectionStatusSchema,OrganizationIntegrationConnectionDTOSchema,OrganizationIntegrationConnectionDTO,McpHeaderNameSchema,McpHeaderDefinitionSchema,McpSecretMapSchema,ConnectOrganizationIntegrationRequestSchema,ProjectIntegrationReturnPathSchema,ConnectProjectIntegrationRequestSchema,McpIntegrationAuthSchema,McpIntegrationSetupAuthSchema,AddProjectMcpIntegrationRequestSchema,AddProjectMcpIntegrationResponseBaseSchema,AddProjectMcpIntegrationResponseSchema,ReusableMcpServerAuthKindSchema,ReusableMcpServerDTOSchema,ReusableMcpServerDTO,SearchReusableMcpServersQuerySchema,ReuseProjectMcpIntegrationRequestSchema,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=z62.enum(["fimo","personal","oauth"]),IntegrationAuthKindSchema=z62.enum(["oauth","api_key","bot_token","basic"]),IntegrationCredentialInputSchema=z62.enum(["secret_text"]),IntegrationCredentialUsageSchema=z62.enum(["http_bearer","api_key"]),IntegrationToolEffectSchema=z62.enum(["read","write","delete","financial"]),ProjectIntegrationCredentialStatusSchema=z62.enum(["not_required","missing","configured"]),IntegrationAuthModeDTOSchema=z62.object({mode:IntegrationAuthModeSchema,label:z62.string().min(1),description:z62.string().min(1)}),IntegrationCredentialDefinitionDTOSchema=z62.object({id:z62.string().min(1),label:z62.string().min(1),input:IntegrationCredentialInputSchema,usage:IntegrationCredentialUsageSchema,required:z62.boolean()}),IntegrationToolDefinitionDTOSchema=z62.object({key:z62.string().min(1),name:z62.string().min(1),description:z62.string().min(1),effect:IntegrationToolEffectSchema}),IntegrationRecipeDTOSchema=z62.object({title:z62.string().min(1),description:z62.string().min(1),command:z62.string().min(1).optional()}),IntegrationInfoDTOSchema=z62.object({key:z62.string().min(1),name:z62.string().min(1),summary:z62.string().min(1),type:z62.enum(["native","mcp"]).optional(),url:z62.string().url().optional(),defaultAuthMode:IntegrationAuthModeSchema.nullable().optional(),authModes:z62.array(IntegrationAuthModeDTOSchema),credentials:z62.array(IntegrationCredentialDefinitionDTOSchema),tools:z62.array(IntegrationToolDefinitionDTOSchema),liveToolsStatus:z62.enum(["available","unavailable"]).optional(),recipes:z62.array(IntegrationRecipeDTOSchema)}),IntegrationInfoDTO=createDTO(IntegrationInfoDTOSchema),ProjectIntegrationStatusDTOSchema=z62.object({projectId:z62.uuid(),integrationKey:z62.string().min(1),name:z62.string().min(1),summary:z62.string().min(1),installed:z62.boolean(),enabled:z62.boolean(),setupState:z62.enum(["setup_required","ready","attention"]),authMode:IntegrationAuthModeSchema.nullable(),authModeLabel:z62.string().nullable(),connectionId:z62.uuid().nullable().optional(),connectionAlias:z62.string().min(1).nullable().optional(),connectionStatus:z62.enum(["active","revoked"]).nullable(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z62.array(z62.string()),installedAt:z62.coerce.date().nullable(),updatedAt:z62.coerce.date().nullable()}),ProjectIntegrationStatusDTO=createDTO(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationDTOSchema=z62.object({id:z62.uuid(),projectId:z62.uuid(),integrationKey:z62.string().min(1),enabled:z62.boolean(),authMode:IntegrationAuthModeSchema,authModeLabel:z62.string(),connectionId:z62.uuid().nullable().optional(),connectionAlias:z62.string().min(1).nullable().optional(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z62.array(z62.string()),createdAt:z62.coerce.date(),updatedAt:z62.coerce.date()}),ProjectIntegrationInstallationDTO=createDTO(ProjectIntegrationInstallationDTOSchema),EnableProjectIntegrationRequestSchema=z62.object({authMode:IntegrationAuthModeSchema.optional(),connectionAlias:z62.string().min(1).optional()}),SwitchProjectIntegrationAuthRequestSchema=z62.object({authMode:IntegrationAuthModeSchema}),SetProjectIntegrationCredentialRequestSchema=z62.object({value:z62.string().min(1)}),OrganizationIntegrationConnectionStatusSchema=z62.enum(["active","revoked"]),OrganizationIntegrationConnectionDTOSchema=z62.object({id:z62.uuid(),organizationId:z62.string().min(1),integrationKey:z62.string().min(1),alias:z62.string().min(1),authKind:IntegrationAuthKindSchema,externalAccountId:z62.string().min(1),externalAccountName:z62.string().nullable(),externalBotUserId:z62.string().nullable(),status:OrganizationIntegrationConnectionStatusSchema,scopes:z62.array(z62.string()),connectedAt:z62.coerce.date(),updatedAt:z62.coerce.date()}),OrganizationIntegrationConnectionDTO=createDTO(OrganizationIntegrationConnectionDTOSchema),McpHeaderNameSchema=z62.string().trim().min(1).max(120).regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,"Header name is invalid."),McpHeaderDefinitionSchema=z62.object({name:McpHeaderNameSchema}),McpSecretMapSchema=z62.record(McpHeaderNameSchema,z62.string().min(1)),ConnectOrganizationIntegrationRequestSchema=z62.object({alias:z62.string().min(1).max(120).optional(),token:z62.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z62.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=z62.string().min(1).max(500).refine(value=>value.startsWith("/app/")&&!value.startsWith("//"),"Return path must be inside the Fimo app."),ConnectProjectIntegrationRequestSchema=z62.discriminatedUnion("mode",[z62.object({mode:z62.literal("personal"),alias:z62.string().min(1).max(120),token:z62.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z62.boolean().optional()}),z62.object({mode:z62.literal("oauth"),returnTo:ProjectIntegrationReturnPathSchema.optional(),reconnect:z62.boolean().optional()})]).superRefine((value,ctx)=>{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=z62.enum(["none","bearer","header"]),McpIntegrationSetupAuthSchema=z62.union([z62.literal("auto"),McpIntegrationAuthSchema]),AddProjectMcpIntegrationRequestSchema=z62.object({type:z62.literal("mcp"),name:z62.string().trim().min(1).max(120),url:z62.string().url(),auth:McpIntegrationSetupAuthSchema.default("auto"),returnTo:ProjectIntegrationReturnPathSchema.optional(),headers:z62.array(McpHeaderDefinitionSchema).min(1).max(20).optional(),secrets:McpSecretMapSchema.optional(),headerName:McpHeaderNameSchema.optional(),token:z62.string().min(1).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=z62.object({integrationKey:z62.string().min(1),status:ProjectIntegrationStatusDTOSchema,info:IntegrationInfoDTOSchema}),AddProjectMcpIntegrationResponseSchema=z62.discriminatedUnion("mode",[AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z62.literal("connected")}),AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z62.literal("oauth"),connectUrl:z62.string().url(),expiresAt:z62.coerce.date()})]),ReusableMcpServerAuthKindSchema=z62.enum(["none","bearer","header","oauth"]),ReusableMcpServerDTOSchema=z62.object({id:z62.uuid(),name:z62.string().min(1),host:z62.string().min(1),authKind:ReusableMcpServerAuthKindSchema,sourceProjectName:z62.string().min(1),availability:z62.enum(["available","unavailable"])}),ReusableMcpServerDTO=createDTO(ReusableMcpServerDTOSchema),SearchReusableMcpServersQuerySchema=z62.object({query:z62.string().trim().max(120).optional()}),ReuseProjectMcpIntegrationRequestSchema=z62.object({serverId:z62.uuid()}),StartProjectIntegrationConnectResponseSchema=z62.object({integrationKey:z62.string().min(1),connectUrl:z62.string().url(),expiresAt:z62.coerce.date()}),StartProjectIntegrationConnectResponseDTO=createDTO(StartProjectIntegrationConnectResponseSchema),ProjectIntegrationConnectResponseSchema=z62.discriminatedUnion("mode",[z62.object({mode:z62.literal("personal"),integrationKey:z62.string().min(1),connection:OrganizationIntegrationConnectionDTOSchema}),z62.object({mode:z62.literal("oauth"),integrationKey:z62.string().min(1),connectUrl:z62.string().url(),expiresAt:z62.coerce.date()})]),BindProjectChannelRequestSchema=z62.object({ref:z62.string().min(1),connectionAlias:z62.string().min(1).optional(),agentName:z62.string().min(1).max(160).nullable().optional(),force:z62.boolean().optional()}),ListProjectChannelsQuerySchema=z62.object({integrationKey:z62.string().min(1)}),SearchProjectChannelsQuerySchema=z62.object({integrationKey:z62.string().min(1),connectionAlias:z62.string().min(1),query:z62.string().max(160).optional()}),ProjectChannelBindingDTOSchema=z62.object({id:z62.uuid(),projectId:z62.uuid(),integrationKey:z62.string().min(1),connectionId:z62.uuid(),externalWorkspaceId:z62.string().min(1),externalChannelId:z62.string().min(1),externalChannelName:z62.string().nullable(),agentName:z62.string().nullable(),enabled:z62.boolean(),createdAt:z62.coerce.date(),updatedAt:z62.coerce.date()}),ProjectChannelBindingDTO=createDTO(ProjectChannelBindingDTOSchema),ProjectChannelCandidateAvailabilitySchema=z62.enum(["available","selected","used_by_project","unavailable"]),ProjectChannelCandidateDTOSchema=z62.object({id:z62.string().min(1),name:z62.string().min(1),visibility:z62.enum(["public","private"]),availability:ProjectChannelCandidateAvailabilitySchema,projectName:z62.string().min(1).nullable(),canMove:z62.boolean()}),ProjectChannelCandidateDTO=createDTO(ProjectChannelCandidateDTOSchema),FirecrawlScrapeFormatsSchema=z62.object({markdown:z62.boolean().optional(),summary:z62.boolean().optional(),links:z62.boolean().optional(),branding:z62.boolean().optional(),images:z62.boolean().optional(),html:z62.union([z62.literal("cleaned"),z62.literal("raw"),z62.boolean()]).optional(),json:z62.union([z62.boolean(),z62.object({prompt:z62.string().min(1).max(1e4),schema:z62.record(z62.string(),z62.unknown()).optional()})]).optional()}).default({markdown:!0}),FirecrawlScrapeToolInputSchema=z62.object({url:z62.string().url(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z62.boolean().optional(),timeoutMs:z62.number().int().positive().max(12e4).optional(),waitForMs:z62.number().int().min(0).max(3e4).optional(),maxAgeMs:z62.number().int().min(0).optional(),minAgeMs:z62.number().int().min(0).optional(),storeInCache:z62.boolean().optional(),proxy:z62.enum(["basic","enhanced","auto"]).optional(),mobile:z62.boolean().optional(),location:z62.object({country:z62.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z62.array(z62.string().min(1).max(35)).min(1).max(10).optional()}).optional()}),FirecrawlSearchToolInputSchema=z62.object({query:z62.string().min(1),maxResults:z62.number().int().positive().max(20).optional(),sources:z62.array(z62.enum(["web","news","images"])).min(1).max(3).optional(),categories:z62.array(z62.enum(["github","research","pdf"])).min(1).max(3).optional(),includeDomains:z62.array(z62.string().min(1).max(253)).min(1).max(100).optional(),excludeDomains:z62.array(z62.string().min(1).max(253)).min(1).max(100).optional(),timeRange:z62.enum(["hour","day","week","month","year"]).optional(),location:z62.string().min(1).max(160).optional(),country:z62.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code.").optional(),highlights:z62.boolean().optional(),timeoutMs:z62.number().int().positive().max(12e4).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."}),FirecrawlDeveloperSearchToolInputSchema=z62.object({query:z62.string().min(1).max(500),maxResults:z62.number().int().min(1).max(100).optional(),types:z62.array(z62.enum(["doc","issue","pull_request","readme"])).min(1).max(4).optional(),repos:z62.array(z62.string().min(1).max(512)).min(1).max(20).optional(),sources:z62.array(z62.string().min(1).max(512)).min(1).max(20).optional(),passages:z62.number().int().min(1).max(5).optional(),skills:z62.literal("only").optional(),language:z62.string().min(1).optional(),topic:z62.string().min(1).optional(),license:z62.string().min(1).optional(),minStars:z62.number().int().min(0).optional(),maxStars:z62.number().int().min(0).optional(),archived:z62.boolean().optional(),fork:z62.boolean().optional()}).refine(value=>value.minStars===void 0||value.maxStars===void 0||value.minStars<=value.maxStars,{message:"minStars must not exceed maxStars."}),FirecrawlResearchSearchToolInputSchema=z62.object({query:z62.string().min(1).max(500),maxResults:z62.number().int().min(1).max(500).optional(),authors:z62.array(z62.string().min(1)).min(1).optional(),categories:z62.array(z62.string().min(1)).min(1).optional(),from:z62.iso.date().optional(),to:z62.iso.date().optional()}),FirecrawlResearchPaperToolInputSchema=z62.object({paperId:z62.string().min(1).max(512),query:z62.string().min(1).max(500).optional(),maxPassages:z62.number().int().min(1).max(50).optional()}).refine(value=>value.query!==void 0||value.maxPassages===void 0,{message:"maxPassages requires query."}),FirecrawlResearchRelatedToolInputSchema=z62.object({paperId:z62.string().min(1).max(512),intent:z62.string().min(1).max(500),mode:z62.enum(["similar","citers","references"]).optional(),maxResults:z62.number().int().min(1).max(500).optional(),rerank:z62.boolean().optional(),anchors:z62.array(z62.string().min(1).max(512)).min(1).optional()}),FirecrawlMapToolInputSchema=z62.object({url:z62.string().url(),search:z62.string().min(1).optional(),limit:z62.number().int().positive().max(200).optional(),includeSubdomains:z62.boolean().optional(),timeoutMs:z62.number().int().positive().max(12e4).optional()}),FirecrawlCrawlToolInputSchema=z62.object({url:z62.string().url(),limit:z62.number().int().positive().max(20).optional(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z62.boolean().optional(),timeoutMs:z62.number().int().positive().max(12e4).optional()}),FirecrawlMonitorScheduleInputSchema=z62.object({text:z62.string().min(1).max(200).optional(),cron:z62.string().min(1).max(120).optional(),timezone:z62.string().min(1).max(80).optional()}).refine(value=>!!(value.text||value.cron),"Firecrawl monitor schedule needs text or cron."),FirecrawlMonitorScrapeOptionsInputSchema=z62.object({formats:FirecrawlScrapeFormatsSchema.optional(),onlyMainContent:z62.boolean().optional(),timeoutMs:z62.number().int().positive().max(12e4).optional(),waitForMs:z62.number().int().min(0).max(3e4).optional(),maxAgeMs:z62.number().int().min(0).optional(),minAgeMs:z62.number().int().min(0).optional(),storeInCache:z62.boolean().optional(),proxy:z62.enum(["basic","enhanced","auto"]).optional(),mobile:z62.boolean().optional(),location:z62.object({country:z62.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z62.array(z62.string().min(1).max(35)).min(1).max(10).optional()}).optional()}).optional(),FirecrawlMonitorTargetInputSchema=z62.union([z62.object({type:z62.enum(["scrape","crawl"]).default("scrape"),urls:z62.array(z62.string().url()).min(1).max(50),scrapeOptions:FirecrawlMonitorScrapeOptionsInputSchema}),z62.object({type:z62.literal("search"),queries:z62.array(z62.string().min(1).max(256)).min(1).max(12),searchWindow:z62.enum(["5m","15m","1h","6h","24h","7d"]).optional(),maxResults:z62.number().int().min(1).max(50).optional(),includeDomains:z62.array(z62.string().min(1).max(253)).min(1).max(50).optional(),excludeDomains:z62.array(z62.string().min(1).max(253)).min(1).max(50).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."})]),FirecrawlMonitorCreateToolInputSchema=z62.object({name:z62.string().min(1).max(256),schedule:FirecrawlMonitorScheduleInputSchema,targets:z62.array(FirecrawlMonitorTargetInputSchema).min(1).max(50),goal:z62.string().min(1).max(2e3).optional(),judgeEnabled:z62.boolean().optional(),retentionDays:z62.number().int().min(1).max(365).optional(),notification:z62.object({email:z62.object({enabled:z62.boolean().default(!0),recipients:z62.array(z62.string().email()).min(1).max(20),includeDiffs:z62.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=z62.object({monitorId:z62.string().uuid(),name:z62.string().min(1).max(256).optional(),schedule:FirecrawlMonitorScheduleInputSchema.optional(),targets:z62.array(FirecrawlMonitorTargetInputSchema).min(1).max(50).optional(),goal:z62.string().min(1).max(2e3).optional(),judgeEnabled:z62.boolean().optional(),retentionDays:z62.number().int().min(1).max(365).optional(),status:z62.enum(["active","paused"]).optional()}).refine(value=>Object.keys(value).some(key=>key!=="monitorId"),"Monitor update needs a changed field."),FirecrawlMonitorIdToolInputSchema=z62.object({monitorId:z62.string().uuid()}),FirecrawlMonitorCheckToolInputSchema=FirecrawlMonitorIdToolInputSchema.extend({checkId:z62.string().uuid()}),RunProjectIntegrationToolRequestSchema=z62.object({tool:z62.string().min(1),input:z62.record(z62.string(),z62.unknown()),connectionAlias:z62.string().min(1).optional()}),ProjectIntegrationToolRunUsageSchema=z62.object({provider:z62.string().min(1),providerCredits:z62.number().nonnegative().optional(),providerCostUsd:z62.number().nonnegative().optional(),requests:z62.number().int().nonnegative().optional()}),ProjectIntegrationToolRunBillingSchema=z62.object({credits:z62.number().int().nonnegative()}),FirecrawlScrapeToolOutputSchema=z62.object({url:z62.string(),provider:z62.literal("firecrawl"),title:z62.string().optional(),statusCode:z62.number().optional(),markdown:z62.string().optional(),summary:z62.string().optional(),links:z62.array(z62.string()).optional(),images:z62.array(z62.string()).optional(),html:z62.string().optional(),json:z62.unknown().optional(),branding:z62.record(z62.string(),z62.unknown()).optional(),warning:z62.string().optional()}),FirecrawlSearchToolOutputSchema=z62.object({query:z62.string(),provider:z62.literal("firecrawl"),warning:z62.string().optional(),results:z62.array(z62.object({title:z62.string(),url:z62.string(),snippet:z62.string().optional(),content:z62.string().optional(),score:z62.number().optional(),publishedAt:z62.string().optional()}))}),FirecrawlResearchPaperSchema=z62.object({paperId:z62.string(),primaryId:z62.string().optional(),ids:z62.record(z62.string(),z62.array(z62.string())).optional(),title:z62.string().optional(),abstract:z62.string().optional(),score:z62.number().optional()}).passthrough(),FirecrawlResearchPassageSchema=z62.object({text:z62.string(),score:z62.number().optional()}).passthrough(),FirecrawlDeveloperSearchToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),results:z62.array(z62.object({id:z62.string(),type:z62.string().min(1).optional(),url:z62.string(),title:z62.string().optional(),passages:z62.array(z62.object({text:z62.string()}).passthrough())}).passthrough()),coverage:z62.record(z62.string(),z62.string()).optional(),reranked:z62.boolean().optional(),repos:z62.array(z62.record(z62.string(),z62.unknown())).optional(),sources:z62.array(z62.record(z62.string(),z62.unknown())).optional()}),FirecrawlResearchSearchToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),results:z62.array(FirecrawlResearchPaperSchema)}),FirecrawlResearchPaperToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),paper:z62.record(z62.string(),z62.unknown()),paperId:z62.string().optional(),query:z62.string().optional(),passages:z62.array(FirecrawlResearchPassageSchema).optional()}),FirecrawlResearchRelatedToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),results:z62.array(FirecrawlResearchPaperSchema),poolSize:z62.number().int().nonnegative(),truncated:z62.boolean(),note:z62.string().nullable().optional()}),FirecrawlMapToolOutputSchema=z62.object({url:z62.string(),provider:z62.literal("firecrawl"),count:z62.number(),links:z62.array(z62.object({url:z62.string(),title:z62.string().optional(),description:z62.string().optional()}))}),FirecrawlCrawlToolOutputSchema=z62.object({url:z62.string(),provider:z62.literal("firecrawl"),total:z62.number(),pages:z62.array(z62.object({url:z62.string(),title:z62.string().optional(),statusCode:z62.number().optional(),markdown:z62.string().optional(),summary:z62.string().optional(),links:z62.array(z62.string()).optional(),images:z62.array(z62.string()).optional(),html:z62.string().optional(),warning:z62.string().optional()})),warning:z62.string().optional()}),FirecrawlMonitorScheduleOutputSchema=z62.object({cron:z62.string().optional(),text:z62.string().optional(),timezone:z62.string().optional()}).passthrough(),FirecrawlMonitorTargetOutputSchema=z62.object({id:z62.string().optional(),type:z62.enum(["scrape","crawl","search"]).optional(),urls:z62.array(z62.string()).optional(),queries:z62.array(z62.string()).optional(),searchWindow:z62.string().optional(),maxResults:z62.number().optional(),includeDomains:z62.array(z62.string()).optional(),excludeDomains:z62.array(z62.string()).optional(),scrapeOptions:z62.record(z62.string(),z62.unknown()).optional()}).passthrough(),FirecrawlMonitorOutputSchema=z62.object({id:z62.string(),name:z62.string(),status:z62.string().optional(),schedule:FirecrawlMonitorScheduleOutputSchema.optional(),nextRunAt:z62.string().nullable().optional(),lastRunAt:z62.string().nullable().optional(),currentCheckId:z62.string().nullable().optional(),targets:z62.array(FirecrawlMonitorTargetOutputSchema).optional(),goal:z62.string().nullable().optional(),judgeEnabled:z62.boolean().optional(),estimatedCreditsPerMonth:z62.number().optional(),createdAt:z62.string().optional(),updatedAt:z62.string().optional()}).passthrough(),FirecrawlMonitorCheckOutputSchema=z62.object({id:z62.string(),monitorId:z62.string(),scheduledFor:z62.string().nullable().optional(),startedAt:z62.string().nullable().optional(),finishedAt:z62.string().nullable().optional(),estimatedCredits:z62.number().optional(),reservedCredits:z62.number().optional(),actualCredits:z62.number().optional(),billingStatus:z62.string().nullable().optional(),summary:z62.object({totalPages:z62.number().optional(),same:z62.number().optional(),changed:z62.number().optional(),new:z62.number().optional(),removed:z62.number().optional(),error:z62.number().optional()}).passthrough().optional(),error:z62.string().nullable().optional(),createdAt:z62.string().optional(),updatedAt:z62.string().optional()}).passthrough(),FirecrawlMonitorListToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),monitors:z62.array(FirecrawlMonitorOutputSchema)}),FirecrawlMonitorDetailToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),monitor:FirecrawlMonitorOutputSchema}),FirecrawlMonitorDeleteToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),monitorId:z62.string(),deleted:z62.boolean()}),FirecrawlMonitorChecksToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),monitorId:z62.string(),checks:z62.array(FirecrawlMonitorCheckOutputSchema)}),FirecrawlMonitorCheckDetailToolOutputSchema=z62.object({provider:z62.literal("firecrawl"),monitorId:z62.string(),check:FirecrawlMonitorCheckOutputSchema,next:z62.string().optional()}),FirecrawlToolKeySchema=z62.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=z62.union([FirecrawlSearchToolOutputSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlScrapeToolOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema]),ProjectIntegrationToolRunBaseSchema=z62.object({projectId:z62.uuid(),integrationKey:z62.string().min(1),tool:z62.string().min(1),connectionAlias:z62.string().min(1).nullable().optional(),output:z62.record(z62.string(),z62.unknown()),executedAt:z62.coerce.date()}),ProjectIntegrationToolRunDTOSchema=z62.discriminatedUnion("authMode",[ProjectIntegrationToolRunBaseSchema.extend({authMode:z62.literal("fimo"),billing:ProjectIntegrationToolRunBillingSchema,usage:z62.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z62.literal("personal"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z62.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z62.literal("oauth"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z62.undefined().optional()})]),ProjectIntegrationToolRunDTO=createDTO(ProjectIntegrationToolRunDTOSchema),IntegrationsListResponseSchema=createResponseSchema2(z62.array(ProjectIntegrationStatusDTOSchema)),IntegrationInfoResponseSchema=createResponseSchema2(IntegrationInfoDTOSchema),ProjectIntegrationStatusResponseSchema=createResponseSchema2(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationResponseSchema=createResponseSchema2(ProjectIntegrationInstallationDTOSchema),ProjectIntegrationToolRunResponseSchema=createResponseSchema2(ProjectIntegrationToolRunDTOSchema),StartProjectIntegrationConnectResponseResponseSchema=createResponseSchema2(StartProjectIntegrationConnectResponseSchema),OrganizationIntegrationConnectionResponseSchema=createResponseSchema2(OrganizationIntegrationConnectionDTOSchema),ProjectIntegrationConnectionsResponseSchema=createResponseSchema2(z62.array(OrganizationIntegrationConnectionDTOSchema)),ProjectIntegrationConnectResponseResponseSchema=createResponseSchema2(ProjectIntegrationConnectResponseSchema),AddProjectMcpIntegrationResponseResponseSchema=createResponseSchema2(AddProjectMcpIntegrationResponseSchema),ReusableMcpServersResponseSchema=createResponseSchema2(z62.array(ReusableMcpServerDTOSchema)),ProjectChannelBindingResponseSchema=createResponseSchema2(ProjectChannelBindingDTOSchema),ProjectChannelBindingsResponseSchema=createResponseSchema2(z62.array(ProjectChannelBindingDTOSchema)),ProjectChannelCandidatesResponseSchema=createResponseSchema2(z62.array(ProjectChannelCandidateDTOSchema))}});import{z as z63}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=z63.enum(SCHEDULE_NOTIFICATION_TOPICS),USER_MANAGED_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance","agent_runtime_allowance"],UserManagedNotificationTopicSchema=z63.enum(USER_MANAGED_NOTIFICATION_TOPICS),MAX_SCHEDULE_SUBSCRIBERS=5,ScheduleSubscriberDeliveryStateSchema=z63.enum(["deliverable","suppressed"]),ScheduleSubscriberCandidateSchema=z63.object({userId:z63.string().min(1),name:z63.string(),email:z63.string().min(1),subscribed:z63.boolean(),deliveryState:ScheduleSubscriberDeliveryStateSchema}),ScheduleNotificationSettingsSchema=z63.object({maxSubscribers:z63.number().int().positive(),subscriberCount:z63.number().int().nonnegative(),effectiveRecipientCount:z63.number().int().nonnegative(),currentUserSubscribed:z63.boolean(),candidates:z63.array(ScheduleSubscriberCandidateSchema).optional()}),ScheduleNotificationSettingsResponseSchema=createResponseSchema2(ScheduleNotificationSettingsSchema),UpdateScheduleSubscribersRequestSchema=z63.object({userIds:z63.array(z63.string().min(1)).max(MAX_SCHEDULE_SUBSCRIBERS).refine(userIds=>new Set(userIds).size===userIds.length,"Follower ids must be unique.")}),UserNotificationPreferenceSchema=z63.object({topic:UserManagedNotificationTopicSchema,enabled:z63.boolean(),source:z63.enum(["default","explicit"])}),SCHEDULE_OPT_OUT_LINK_ACTIONS=["unfollow_schedule","disable_topic"],ScheduleOptOutLinkActionSchema=z63.enum(SCHEDULE_OPT_OUT_LINK_ACTIONS),SCHEDULE_OPT_OUT_ACTIONS=["unfollow_schedule","unfollow_all_schedules","disable_topic"],ScheduleOptOutActionSchema=z63.enum(SCHEDULE_OPT_OUT_ACTIONS),ScheduleOptOutStateSchema=z63.object({action:ScheduleOptOutActionSchema,topic:ScheduleNotificationTopicSchema,scheduleName:z63.string().nullable(),maskedEmail:z63.string().min(1),applied:z63.boolean(),expiresAt:z63.coerce.date()}),ScheduleOptOutResponseSchema=createResponseSchema2(ScheduleOptOutStateSchema),FollowedScheduleSchema=z63.object({scheduleId:z63.string().min(1),scheduleName:z63.string(),projectId:z63.string().min(1),projectName:z63.string(),env:z63.string().min(1)}),FollowedSchedulesSchema=z63.object({schedules:z63.array(FollowedScheduleSchema)}),FollowedSchedulesResponseSchema=createResponseSchema2(FollowedSchedulesSchema)}});import{z as z64}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_common2();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=z64.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=z64.enum(["ok","failed"]),ProjectScheduleDTOSchema=BaseEntitySchema.extend({projectId:z64.uuid(),env:z64.string().min(1),name:z64.string().min(1),cron:z64.string().min(1),command:z64.string().min(1),secretKeys:z64.array(z64.string().min(1)),enabled:z64.boolean(),lastRunAt:z64.coerce.date().nullable(),lastStatus:ProjectScheduleStatusSchema.nullable(),lastError:z64.string().nullable(),overPolicyReasons:z64.array(z64.string()).optional()}),ProjectScheduleDTO=createDTO(ProjectScheduleDTOSchema),CreateProjectScheduleRequestSchema=z64.object({name:z64.string().min(1).max(120),cron:z64.string().min(1).max(120),command:z64.string().min(1).max(500),secretKeys:z64.array(ProjectSecretKeySchema).default([]),enabled:z64.boolean().optional()}),UpdateProjectScheduleRequestSchema=z64.object({name:z64.string().min(1).max(120).optional(),cron:z64.string().min(1).max(120).optional(),command:z64.string().min(1).max(500).optional(),secretKeys:z64.array(ProjectSecretKeySchema).optional()}).refine(request=>Object.keys(request).length>0,"Pass at least one schedule field to update."),ProjectScheduleRunStatusSchema=z64.enum(["queued","running","succeeded","failed","skipped"]),ProjectScheduleRunTriggerSchema=z64.enum(["cron","ui","cli"]),ProjectScheduleRunSecretSnapshotStateSchema=z64.enum(["pending","resolved","failed"]),ProjectScheduleRunSecretResolutionSchema=z64.enum(["resolved","missing","deleted","recreated","rotated"]),ProjectSchedulePolicySchema=z64.object({maxRuns:z64.number().int().positive(),retentionDays:z64.number().int().positive().nullable(),outputRetentionDays:z64.number().int().positive(),maxOutputBytes:z64.number().int().positive()}),SchedulePolicyStateSchema=z64.enum(["ok","near_limit","exhausted","over_policy"]),ProjectSchedulePlanSnapshotSchema=z64.object({code:z64.enum(["Free","PAYG","Premium","Pro"]),source:z64.enum(["cached_subscription","free_fallback"]),activeSchedules:z64.object({used:z64.number().int().nonnegative(),limit:z64.number().int().nonnegative()}),minCadenceMinutes:z64.number().int().positive(),maxRunMs:z64.number().int().positive(),concurrency:z64.object({used:z64.number().int().nonnegative(),limit:z64.number().int().positive()}),compute:z64.object({settledMs:z64.number().int().nonnegative(),activeMs:z64.number().int().nonnegative(),reservedMs:z64.number().int().nonnegative().optional(),includedMs:z64.number().int().nonnegative(),remainingMs:z64.number().int().nonnegative(),resetsAt:z64.coerce.date()}),upgrade:z64.object({code:z64.literal("Pro"),activeSchedulesLimit:z64.number().int().positive(),minCadenceMinutes:z64.number().int().positive(),maxRunMs:z64.number().int().positive(),maxConcurrentRuns:z64.number().int().positive(),computeIncludedMs:z64.number().int().positive()}).optional(),state:SchedulePolicyStateSchema,overPolicyReasons:z64.array(z64.string())}),ProjectScheduleUsageSchema=z64.object({runCount:z64.number().int().nonnegative(),runsWithOutput:z64.number().int().nonnegative()}),ProjectScheduleRunDTOSchema=z64.object({id:z64.uuid(),scheduleId:z64.uuid(),projectId:z64.uuid(),env:z64.string().min(1),scheduleName:z64.string().min(1),command:z64.string().min(1),status:ProjectScheduleRunStatusSchema,trigger:ProjectScheduleRunTriggerSchema,triggeredBy:z64.object({id:z64.string().min(1),name:z64.string().min(1)}).nullable(),queuedAt:z64.coerce.date(),startedAt:z64.coerce.date().nullable(),finishedAt:z64.coerce.date().nullable(),exitCode:z64.number().int().nullable(),errorCode:z64.string().nullable(),error:z64.string().nullable(),outputBytes:z64.number().int().nonnegative(),outputTruncated:z64.boolean(),outputExpiresAt:z64.coerce.date().nullable(),metadataExpiresAt:z64.coerce.date().nullable()}),ProjectScheduleRunDTO=createDTO(ProjectScheduleRunDTOSchema),ProjectScheduleRunSecretSnapshotSchema=z64.object({state:ProjectScheduleRunSecretSnapshotStateSchema,capturedAt:z64.coerce.date().nullable(),items:z64.array(z64.object({key:z64.string().min(1),updatedAt:z64.coerce.date().nullable(),resolution:ProjectScheduleRunSecretResolutionSchema}))}),ProjectScheduleRunDetailDTOSchema=ProjectScheduleRunDTOSchema.extend({output:z64.string().nullable(),secretSnapshot:ProjectScheduleRunSecretSnapshotSchema}),ProjectScheduleRunDetailDTO=createDTO(ProjectScheduleRunDetailDTOSchema),RunProjectScheduleRequestSchema=z64.object({trigger:z64.enum(["ui","cli"])}),ProjectScheduleRunsQuerySchema=z64.object({limit:z64.coerce.number().int().min(1).max(100).default(25),cursor:z64.string().trim().min(1).optional(),status:ProjectScheduleRunStatusSchema.optional()}),ProjectScheduleResponseSchema=createResponseSchema2(ProjectScheduleDTOSchema),ProjectSchedulesListDataSchema=z64.object({items:z64.array(ProjectScheduleDTOSchema),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectSchedulesListResponseSchema=createResponseSchema2(z64.array(ProjectScheduleDTOSchema)),ProjectSchedulesOverviewResponseSchema=createResponseSchema2(ProjectSchedulesListDataSchema),ProjectScheduleDetailDataSchema=z64.object({schedule:ProjectScheduleDTOSchema,usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema,notifications:ScheduleNotificationSettingsSchema.optional()}),ProjectScheduleDetailResponseSchema=createResponseSchema2(ProjectScheduleDetailDataSchema),ProjectScheduleRunsPageSchema=z64.object({items:z64.array(ProjectScheduleRunDTOSchema),nextCursor:z64.string().nullable(),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectScheduleRunsResponseSchema=createResponseSchema2(ProjectScheduleRunsPageSchema),ProjectScheduleRunResponseSchema=createResponseSchema2(ProjectScheduleRunDTOSchema),ProjectScheduleRunDetailResponseSchema=createResponseSchema2(ProjectScheduleRunDetailDTOSchema)}});import{z as z65}from"zod";var WORK_NOTIFICATION_TOPICS,WorkNotificationTopicSchema,NOTIFICATION_DELIVERY_CADENCES,NotificationDeliveryCadenceSchema,NOTIFICATION_CHANNELS,NotificationChannelSchema,NOTIFICATION_ACTOR_KINDS,NotificationActorKindSchema,NotificationActorSchema,NotificationSummarySchema,ReportBriefPayloadSchema,NotificationRunOutcomeSchema,NotificationRetainedReasonSchema,NotificationPayloadSchema,NotificationEnvelopeSchema,NotificationRecipientStateSchema,NotificationDeliveryStateSchema,NotificationDeliverySchema,NotificationPreferenceSchema,NotificationSubjectSchema,NotificationViewSchema,NotificationViewResponseSchema,NotificationListSchema,NotificationListResponseSchema,ListNotificationsQuerySchema,NotificationStateSchema,NotificationStateResponseSchema,UpdateNotificationStateRequestSchema,MAX_QUESTION_DIGEST_PAUSE_DAYS,QuestionDigestPreferenceSchema,init_notification_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/notification.dto.js"(){"use strict";init_agent_report();init_response();WORK_NOTIFICATION_TOPICS=["agent_question","agent_run_outcome","agent_retained_review","agent_conflict"],WorkNotificationTopicSchema=z65.enum(WORK_NOTIFICATION_TOPICS),NOTIFICATION_DELIVERY_CADENCES=["immediate","daily","off"],NotificationDeliveryCadenceSchema=z65.enum(NOTIFICATION_DELIVERY_CADENCES),NOTIFICATION_CHANNELS=["in_app","email"],NotificationChannelSchema=z65.enum(NOTIFICATION_CHANNELS),NOTIFICATION_ACTOR_KINDS=["user","agent","system"],NotificationActorKindSchema=z65.enum(NOTIFICATION_ACTOR_KINDS),NotificationActorSchema=z65.discriminatedUnion("kind",[z65.object({kind:z65.literal("user"),userId:z65.string().min(1)}).strict(),z65.object({kind:z65.literal("agent"),agentKey:z65.string().min(1).max(120),agentId:z65.uuid().optional()}).strict(),z65.object({kind:z65.literal("system")}).strict()]),NotificationSummarySchema=z65.string().trim().min(1).max(1200),ReportBriefPayloadSchema={title:z65.string().trim().min(1).max(120).optional(),brief:StoredReportBriefSchema.optional()},NotificationRunOutcomeSchema=z65.enum(["completed","failed","cancelled"]),NotificationRetainedReasonSchema=z65.enum(["review","agent_requested","recovery"]),NotificationPayloadSchema=z65.discriminatedUnion("topic",[z65.object({topic:z65.literal("agent_question"),questionId:z65.uuid(),title:z65.string().trim().min(1).max(80),description:z65.string().trim().min(1).max(240)}).strict(),z65.object({topic:z65.literal("agent_run_outcome"),threadId:z65.uuid(),invocationId:z65.uuid(),outcome:NotificationRunOutcomeSchema,summary:NotificationSummarySchema,...ReportBriefPayloadSchema}).strict(),z65.object({topic:z65.literal("agent_retained_review"),threadId:z65.uuid(),invocationId:z65.uuid().optional(),proposalId:z65.uuid().optional(),reason:NotificationRetainedReasonSchema,summary:NotificationSummarySchema,...ReportBriefPayloadSchema}).strict(),z65.object({topic:z65.literal("agent_conflict"),mergeId:z65.uuid(),threadId:z65.uuid().optional(),summary:NotificationSummarySchema.optional(),...ReportBriefPayloadSchema}).strict()]),NotificationEnvelopeSchema=z65.object({id:z65.uuid(),projectId:z65.uuid(),sourceKey:z65.string().min(1).max(255),actor:NotificationActorSchema,payloadVersion:z65.literal(1),payload:NotificationPayloadSchema,createdAt:z65.coerce.date()}),NotificationRecipientStateSchema=z65.object({id:z65.uuid(),notificationId:z65.uuid(),projectId:z65.uuid(),userId:z65.string().min(1),readAt:z65.coerce.date().nullable(),archivedAt:z65.coerce.date().nullable(),createdAt:z65.coerce.date(),updatedAt:z65.coerce.date()}),NotificationDeliveryStateSchema=z65.enum(["pending","deferred","sent","suppressed","failed"]),NotificationDeliverySchema=z65.object({id:z65.uuid(),notificationRecipientId:z65.uuid(),projectId:z65.uuid(),channel:NotificationChannelSchema,state:NotificationDeliveryStateSchema,attemptCount:z65.number().int().nonnegative(),nextAttemptAt:z65.coerce.date().nullable(),lastAttemptAt:z65.coerce.date().nullable(),sentAt:z65.coerce.date().nullable(),failureCode:z65.string().max(80).nullable(),createdAt:z65.coerce.date(),updatedAt:z65.coerce.date()}),NotificationPreferenceSchema=z65.object({topic:WorkNotificationTopicSchema,channel:z65.literal("email"),enabled:z65.boolean(),cadence:NotificationDeliveryCadenceSchema.exclude(["off"]),effectiveCadence:NotificationDeliveryCadenceSchema,source:z65.enum(["default","explicit"])}),NotificationSubjectSchema=z65.discriminatedUnion("kind",[z65.object({kind:z65.literal("question"),questionId:z65.uuid()}).strict(),z65.object({kind:z65.literal("run_outcome"),threadId:z65.uuid(),invocationId:z65.uuid(),outcome:NotificationRunOutcomeSchema}).strict(),z65.object({kind:z65.literal("retained_review"),threadId:z65.uuid(),invocationId:z65.uuid().nullable(),proposalId:z65.uuid().nullable(),reason:NotificationRetainedReasonSchema}).strict(),z65.object({kind:z65.literal("merge_conflict"),mergeId:z65.uuid(),threadId:z65.uuid().nullable()}).strict()]),NotificationViewSchema=z65.object({notification:NotificationEnvelopeSchema,recipient:NotificationRecipientStateSchema,subject:NotificationSubjectSchema}),NotificationViewResponseSchema=createResponseSchema2(NotificationViewSchema),NotificationListSchema=z65.object({items:z65.array(NotificationViewSchema),nextCursor:z65.string().nullable(),unreadCount:z65.number().int().nonnegative()}),NotificationListResponseSchema=createResponseSchema2(NotificationListSchema),ListNotificationsQuerySchema=z65.object({topic:WorkNotificationTopicSchema.optional(),actorKind:NotificationActorKindSchema.optional(),actorId:z65.string().min(1).max(120).optional(),sourceKey:z65.string().min(1).max(255).optional(),unread:z65.stringbool().optional(),archived:z65.stringbool().optional(),limit:z65.coerce.number().int().min(1).max(100).optional(),cursor:z65.string().min(1).optional()}).refine(query=>query.actorId===void 0||query.actorKind!==void 0&&query.actorKind!=="system","actorId requires actorKind to be user or agent."),NotificationStateSchema=z65.object({recipient:NotificationRecipientStateSchema,unreadCount:z65.number().int().nonnegative()}),NotificationStateResponseSchema=createResponseSchema2(NotificationStateSchema),UpdateNotificationStateRequestSchema=z65.object({read:z65.boolean().optional(),archived:z65.boolean().optional()}).refine(body=>body.read!==void 0||body.archived!==void 0,"Provide at least one of read or archived."),MAX_QUESTION_DIGEST_PAUSE_DAYS=90,QuestionDigestPreferenceSchema=z65.object({enabled:z65.boolean(),pausedUntil:z65.coerce.date().nullable(),source:z65.enum(["default","explicit"]).optional()})}});import{z as z66}from"zod";var NOTIFICATION_PREFERENCE_GROUPS,NotificationPreferenceGroupSchema,FIMO_TOGGLE_PREFERENCE_ENTRY_IDS,FimoTogglePreferenceEntryIdSchema,FIMO_DELIVERY_PREFERENCE_ENTRY_IDS,FimoDeliveryPreferenceEntryIdSchema,QUESTION_DIGEST_PREFERENCE_ENTRY_ID,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","schedule","usage","question_digest","marketing"],NotificationPreferenceGroupSchema=z66.enum(NOTIFICATION_PREFERENCE_GROUPS),FIMO_TOGGLE_PREFERENCE_ENTRY_IDS=["work_review.agent_question","work_review.agent_conflict","schedule.schedule_health","schedule.schedule_compute_allowance","usage.agent_runtime_allowance"],FimoTogglePreferenceEntryIdSchema=z66.enum(FIMO_TOGGLE_PREFERENCE_ENTRY_IDS),FIMO_DELIVERY_PREFERENCE_ENTRY_IDS=["work_review.agent_retained_review","work_review.agent_run_outcome"],FimoDeliveryPreferenceEntryIdSchema=z66.enum(FIMO_DELIVERY_PREFERENCE_ENTRY_IDS),QUESTION_DIGEST_PREFERENCE_ENTRY_ID="question_digest",MARKETING_PREFERENCE_ENTRY_PREFIX="marketing.",PreferenceSourceSchema=z66.enum(["default","explicit"]),EmailNotificationProviderSyncSchema=z66.enum(["synced","pending","unavailable"]),EmailNotificationPreferenceSchema=z66.object({enabled:z66.boolean(),source:PreferenceSourceSchema,providerSync:EmailNotificationProviderSyncSchema}).strict(),PROVIDER_SUBSCRIPTION_PLACEMENTS=["reports","product_news"],ProviderSubscriptionPlacementSchema=z66.enum(PROVIDER_SUBSCRIPTION_PLACEMENTS),PROVIDER_SUBSCRIPTION_SEMANTIC_IDS=["weekly_analytics"],ProviderSubscriptionSemanticIdSchema=z66.enum(PROVIDER_SUBSCRIPTION_SEMANTIC_IDS),NotificationPreferenceEntrySchema=z66.discriminatedUnion("kind",[z66.object({kind:z66.literal("toggle"),id:FimoTogglePreferenceEntryIdSchema,group:z66.enum(["work_review","schedule","usage"]),enabled:z66.boolean(),source:PreferenceSourceSchema}).strict(),z66.object({kind:z66.literal("delivery"),id:FimoDeliveryPreferenceEntryIdSchema,group:z66.literal("work_review"),cadence:NotificationDeliveryCadenceSchema,source:PreferenceSourceSchema}).strict(),z66.object({kind:z66.literal("pause_toggle"),id:z66.literal(QUESTION_DIGEST_PREFERENCE_ENTRY_ID),group:z66.literal("question_digest"),enabled:z66.boolean(),source:PreferenceSourceSchema,pausedUntil:z66.coerce.date().nullable()}).strict(),z66.object({kind:z66.literal("provider_subscription"),id:z66.string().startsWith(MARKETING_PREFERENCE_ENTRY_PREFIX),group:z66.literal("marketing"),name:z66.string(),description:z66.string().nullable(),placement:ProviderSubscriptionPlacementSchema,semanticId:ProviderSubscriptionSemanticIdSchema.nullable(),enabled:z66.boolean(),source:PreferenceSourceSchema}).strict()]),NotificationPreferenceCatalogSchema=z66.object({email:EmailNotificationPreferenceSchema,entries:z66.array(NotificationPreferenceEntrySchema),unavailableGroups:z66.array(NotificationPreferenceGroupSchema)}),NotificationPreferenceCatalogResponseSchema=createResponseSchema2(NotificationPreferenceCatalogSchema),NotificationPreferenceEntryResponseSchema=createResponseSchema2(NotificationPreferenceEntrySchema),UpdateEmailNotificationPreferenceRequestSchema=z66.object({enabled:z66.boolean()}).strict(),EmailNotificationPreferenceResponseSchema=createResponseSchema2(EmailNotificationPreferenceSchema),UpdateNotificationPreferenceEntryRequestSchema=z66.discriminatedUnion("kind",[z66.object({kind:z66.literal("toggle"),enabled:z66.boolean()}).strict(),z66.object({kind:z66.literal("delivery"),cadence:NotificationDeliveryCadenceSchema}).strict(),z66.object({kind:z66.literal("pause_toggle"),enabled:z66.boolean(),pauseDays:z66.number().int().min(1).max(MAX_QUESTION_DIGEST_PAUSE_DAYS).nullable().optional()}).strict().refine(body=>body.enabled||!body.pauseDays,"Pausing requires the toggle to be enabled."),z66.object({kind:z66.literal("provider_subscription"),enabled:z66.boolean()}).strict()])}});import{z as z67}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=z67.object({surface:SurfaceNameSchema,key:z67.string(),label:z67.string()}),InlineSchema=z67.object({text:z67.string(),ref:DiffRefSchema.optional()}),SummaryBlockSchema=z67.discriminatedUnion("type",[z67.object({type:z67.literal("paragraph"),content:z67.array(InlineSchema).max(24)}),z67.object({type:z67.literal("preview"),ref:DiffRefSchema,caption:z67.string().optional()}),z67.object({type:z67.literal("code"),code:z67.string(),lang:z67.string().optional(),caption:z67.string().optional()}),z67.object({type:z67.literal("risk"),level:z67.enum(["warning","error"]),content:z67.array(InlineSchema).max(24)}),z67.object({type:z67.literal("list"),items:z67.array(z67.array(InlineSchema).max(24)).max(8)})]),EnvDiffSummarySchema=z67.object({headline:z67.string(),blocks:z67.array(SummaryBlockSchema).max(15)}),EnvDiffSummaryResultSchema=z67.object({summary:EnvDiffSummarySchema,fingerprint:z67.string(),generatedAt:z67.coerce.date(),cached:z67.boolean().optional(),credits:z67.number().int().nonnegative().optional()}),EnvDiffSummaryResultDTO=createDTO(EnvDiffSummaryResultSchema),EnvDiffSummaryResponseSchema=createResponseSchema2(EnvDiffSummaryResultSchema)}});import{z as z68}from"zod";var PROJECT_ANALYTICS_PRESETS,PROJECT_ANALYTICS_GROUP_BY_OPTIONS,ProjectDailyVisitorsDTOSchema,ProjectAnalyticsBreakdownItemDTOSchema,ProjectAnalyticsPageBreakdownItemDTOSchema,ProjectAnalyticsRangeDTOSchema,ProjectAnalyticsAnnotationDTOSchema,ProjectPageviewAnalyticsDTOSchema,ProjectPageviewAnalyticsDTO,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=z68.object({date:z68.string(),visitors:z68.number().int().nonnegative()}),ProjectAnalyticsBreakdownItemDTOSchema=z68.object({key:z68.string(),visitors:z68.number().int().nonnegative(),pageviews:z68.number().int().nonnegative()}),ProjectAnalyticsPageBreakdownItemDTOSchema=z68.object({path:z68.string(),pageName:z68.string().nullable().optional(),visitors:z68.number().int().nonnegative(),pageviews:z68.number().int().nonnegative()}),ProjectAnalyticsRangeDTOSchema=z68.object({preset:z68.enum(PROJECT_ANALYTICS_PRESETS),requestedFrom:z68.string(),requestedTo:z68.string(),effectiveFrom:z68.string(),effectiveTo:z68.string(),isRetentionLimited:z68.boolean(),groupBy:z68.enum(PROJECT_ANALYTICS_GROUP_BY_OPTIONS)}),ProjectAnalyticsAnnotationDTOSchema=z68.object({date:z68.string(),content:z68.string(),updatedAt:z68.string(),updatedByUserId:z68.string()}),ProjectPageviewAnalyticsDTOSchema=z68.object({range:ProjectAnalyticsRangeDTOSchema,visitors:z68.number().int().nonnegative(),pageviews:z68.number().int().nonnegative(),bounceRate:z68.number().min(0).max(100),viewsPerVisit:z68.number().nonnegative(),averageVisitDurationSeconds:z68.number().nonnegative(),visitorsSeries:z68.array(ProjectDailyVisitorsDTOSchema),topPages:z68.array(ProjectAnalyticsPageBreakdownItemDTOSchema),topBrowsers:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),topDevices:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),topCountries:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),topSources:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),annotations:z68.array(ProjectAnalyticsAnnotationDTOSchema)}),ProjectPageviewAnalyticsDTO=createDTO(ProjectPageviewAnalyticsDTOSchema),ProjectAnalyticsAnnotationDTO=createDTO(ProjectAnalyticsAnnotationDTOSchema)}});import{z as z69}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_common2();init_create_dto();ProjectInviteDTOSchema=z69.object({id:z69.string(),email:z69.email(),roleKey:ProjectRoleKeySchema,status:ProjectInviteStatusSchema,expiresAt:z69.coerce.date(),createdAt:z69.coerce.date(),inviterUserId:z69.string()}),ProjectInviteDTO=createDTO(ProjectInviteDTOSchema),CreatedProjectInviteDTOSchema=z69.object({id:z69.string(),token:z69.string()}),CreatedProjectInviteDTO=createDTO(CreatedProjectInviteDTOSchema),AcceptedProjectInviteDTOSchema=z69.object({success:z69.boolean(),projectId:z69.string().optional()}),AcceptedProjectInviteDTO=createDTO(AcceptedProjectInviteDTOSchema)}});import{z as z70}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=z70.object({id:z70.string(),name:z70.string(),image:z70.string().nullable()}),PublicUserDTO=createDTO(PublicUserDTOSchema),ReferralCountCTOSchema=z70.object({count:z70.int()}),ReferralCountCTO=createDTO(ReferralCountCTOSchema),ReferralSummaryCTOSchema=z70.object({counts:z70.object({signed_up:z70.int(),activated:z70.int()}),credits:z70.object({total:z70.int()})}),ReferralSummaryCTO=createDTO(ReferralSummaryCTOSchema),AuthenticatedUserDTOSchema=PublicUserDTOSchema.extend({email:z70.email(),emailVerified:z70.boolean(),createdAt:z70.coerce.date(),updatedAt:z70.coerce.date()}),AuthenticatedUserDTO=createDTO(AuthenticatedUserDTOSchema),AuthenticatedUserResponseSchema=createResponseSchema2(AuthenticatedUserDTOSchema),ReferralCountResponseSchema=createResponseSchema2(ReferralCountCTOSchema),ReferralSummaryResponseSchema=createResponseSchema2(ReferralSummaryCTOSchema)}});import{z as z71}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_common2();init_create_dto();init_response();init_project_invite_dto();init_user_dto();ProjectAccessItemDTOSchema=z71.object({id:z71.string(),principalType:ProjectPrincipalTypeSchema,principalId:z71.string().nullable(),roleKey:ProjectRoleKeySchema,createdAt:z71.coerce.date(),expiresAt:z71.coerce.date().nullable(),user:PublicUserDTOSchema.nullable()}),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","code:view","code:edit","content:view","content:edit","chat:read","chat:prompt","history:view","history:manage","comment:read","comment:create","comment:delete","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=z71.enum(PROJECT_PERMISSION_KEYS),ProjectPermissionsDTOSchema=z71.object({role:ProjectRoleKeyWithSystemSchema.nullable(),permissions:z71.record(z71.string(),z71.boolean())}),ProjectPermissionsDTO=createDTO(ProjectPermissionsDTOSchema),ProjectAccessDTOSchema=z71.object({access:z71.array(ProjectAccessItemDTOSchema),invites:z71.array(ProjectInviteDTOSchema),organization:z71.object({name:z71.string().nullable(),logo:z71.string().nullable()}).nullable()}),ProjectAccessDTO=createDTO(ProjectAccessDTOSchema),AccessMutationResponseSchema=createResponseSchema2(z71.object({success:z71.boolean()})),InviteAcceptResponseSchema=createResponseSchema2(z71.object({success:z71.boolean(),projectId:z71.uuid()}))}});import{z as z72}from"zod";var PublicationStateDTOSchema,PublicationStateDTO,init_publication_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/publication.dto.js"(){"use strict";init_common2();init_create_dto();PublicationStateDTOSchema=z72.object({publicationStatus:PublicationStatusSchema,appUrl:z72.string().nullable(),lastPublishedAt:z72.string().nullable()}),PublicationStateDTO=createDTO(PublicationStateDTOSchema)}});import{z as z73}from"zod";var PreviewBridgePackageSchema,PreviewBridgeCapabilitySchema,SandboxSessionDTOSchema,SandboxSessionDTO,SandboxSessionResponseSchema,PreviewInstallApprovalTargetSchema,PreviewInstallRepairSchema,SandboxSessionInstallPolicyErrorSchema,PreviewInstallPolicyApprovalRequestSchema,PreviewInstallPolicyApprovalEventSchema,init_sandbox_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/sandbox.dto.js"(){"use strict";init_create_dto();init_response();PreviewBridgePackageSchema=z73.object({name:z73.string().min(1),version:z73.string().min(1)}),PreviewBridgeCapabilitySchema=z73.object({integrated:z73.boolean(),packages:z73.array(PreviewBridgePackageSchema)}),SandboxSessionDTOSchema=z73.object({url:z73.url(),expiresAt:z73.iso.datetime(),previewBridge:PreviewBridgeCapabilitySchema.optional()}),SandboxSessionDTO=createDTO(SandboxSessionDTOSchema),SandboxSessionResponseSchema=createResponseSchema2(SandboxSessionDTOSchema),PreviewInstallApprovalTargetSchema=z73.object({name:z73.string().min(1),locator:z73.string().min(1).optional(),source:z73.enum(["registry","tarball","unsupported"])}).refine(target=>target.source==="tarball"==(target.locator!==void 0),{message:"locator is present exactly when source is tarball"}),PreviewInstallRepairSchema=z73.object({kind:z73.literal("dependency_build_scripts_blocked"),packageManager:z73.enum(["pnpm","yarn","bun"]),packages:z73.array(z73.string()),targets:z73.array(PreviewInstallApprovalTargetSchema).optional(),configFile:z73.string(),approvalKey:z73.string(),command:z73.string().optional(),approval:z73.object({id:z73.uuid()}).optional()}),SandboxSessionInstallPolicyErrorSchema=z73.object({code:z73.literal("PREVIEW_INSTALL_POLICY_BLOCKED"),message:z73.string(),repair:PreviewInstallRepairSchema}),PreviewInstallPolicyApprovalRequestSchema=z73.object({approvalId:z73.uuid()}),PreviewInstallPolicyApprovalEventSchema=z73.discriminatedUnion("type",[z73.object({type:z73.literal("progress"),step:z73.enum(["approval","install","restart","readiness"]),message:z73.string()}),z73.object({type:z73.literal("approved")}),z73.object({type:z73.literal("complete")}),z73.object({type:z73.literal("error"),code:z73.enum(["stale_approval","approval_failed","install_failed","restart_failed"]),message:z73.string()})])}});import{z as z74}from"zod";var OrganizationDTOSchema,OrganizationDTO,MemberUserDTOSchema,OrganizationMemberDTOSchema,OrganizationMemberDTO,init_organization_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/organization.dto.js"(){"use strict";init_common2();init_create_dto();OrganizationDTOSchema=BaseEntitySchema.extend({name:z74.string(),slug:z74.string().nullable(),logo:z74.string().nullable(),metadata:z74.record(z74.string(),z74.unknown()).nullable()}),OrganizationDTO=createDTO(OrganizationDTOSchema),MemberUserDTOSchema=z74.object({id:z74.string(),name:z74.string(),email:z74.email(),image:z74.string().nullable()}),OrganizationMemberDTOSchema=z74.object({id:z74.string(),userId:z74.string(),organizationId:z74.string(),role:OrganizationRoleSchema,user:MemberUserDTOSchema,createdAt:z74.coerce.date()}),OrganizationMemberDTO=createDTO(OrganizationMemberDTOSchema)}});import{z as z75}from"zod";var CancellationReasonCodeSchema,CancellationFeedbackDTOSchema,CancellationFeedbackDTO,PlanMigrationAcceptDTOSchema,PlanMigrationPreviewDTOSchema,PlanMigrationPreviewDTO,PlanMigrationStateSchema,PlanMigrationOfferDTOSchema,PlanMigrationOfferDTO,AiCreditsEntitlementSchema,EntitlementsDTOSchema,MediaStorageUsageDTOSchema,MediaStorageUsageDTO,PendingPlanChangeDTOSchema,HostingOverageStatusDTOSchema,HostingOverageStatusDTO,UpdateHostingOverageRequestSchema,SubscriptionDTOSchema,SubscriptionDTO,DailyCreditsStatusSchema,CreditBalanceDTOSchema,CreditBalanceDTO,MinimalCreditBalanceDTOSchema,MinimalCreditBalanceDTO,ProjectCreditBucketsDTOSchema,ProjectDailyCreditAllowanceDTOSchema,ProjectCreditBalanceDTOSchema,ProjectCreditBalanceDTO,AgentRuntimeUsageStateSchema,AgentRuntimeUsageDTOSchema,AgentRuntimeUsageDTO,AutoRefillConfigDTOSchema,AutoRefillConfigDTO,UpdateAutoRefillDTOSchema,SuccessfulPurchaseDTOSchema,SuccessfulPurchaseDTO,PortalDTOSchema,PortalDTO,CreditBalanceResponseSchema,MinimalCreditBalanceResponseSchema,ProjectCreditBalanceResponseSchema,AutoRefillConfigResponseSchema,SuccessfulPurchaseResponseSchema,SubscriptionResponseSchema,EntitlementsResponseSchema,PortalResponseSchema,init_billing_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/billing.dto.js"(){"use strict";init_common2();init_create_dto();init_response();CancellationReasonCodeSchema=z75.enum(["just_testing","too_expensive","not_using_enough","missing_features","bug_or_technical_issue","switching_to_another_tool","closing_or_pausing_business","other"]),CancellationFeedbackDTOSchema=z75.object({reason:CancellationReasonCodeSchema,details:z75.string().trim().max(1e3).nullable().optional().transform(value=>value||null)}).superRefine((value,ctx)=>{value.reason==="other"&&!value.details&&ctx.addIssue({code:z75.ZodIssueCode.custom,message:"Details are required when selecting other.",path:["details"]})}),CancellationFeedbackDTO=createDTO(CancellationFeedbackDTOSchema),PlanMigrationAcceptDTOSchema=z75.object({offerVersion:z75.string().trim().min(1),unusedPremiumCreditAmount:z75.number().int().nonnegative(),amountDueNow:z75.number().int().nonnegative(),renewsOn:z75.string()}),PlanMigrationPreviewDTOSchema=z75.object({currency:z75.string().trim().min(1),unusedPremiumCreditAmount:z75.number().int().nonnegative(),amountDueNow:z75.number().int().nonnegative(),startsAt:z75.string(),renewsAt:z75.string(),nextRenewalAmount:z75.number().int().nonnegative()}),PlanMigrationPreviewDTO=createDTO(PlanMigrationPreviewDTOSchema),PlanMigrationStateSchema=z75.enum(["legacy_active","notified","accepting","accepted","declining","free","expired","canceled"]),PlanMigrationOfferDTOSchema=z75.object({id:z75.string(),organizationId:z75.string(),legacySubscriptionId:z75.string(),offeredPlanCode:z75.string(),offeredPlanName:z75.string(),offeredPriceAmount:z75.number(),offeredCurrency:z75.string(),offerVersion:z75.string(),state:PlanMigrationStateSchema,checkoutToken:z75.string().nullable(),deadlineAt:z75.string(),transitions:z75.array(z75.object({event:z75.string(),fromState:PlanMigrationStateSchema,toState:PlanMigrationStateSchema,createdAt:z75.string()}))}),PlanMigrationOfferDTO=createDTO(PlanMigrationOfferDTOSchema),AiCreditsEntitlementSchema=z75.object({included:z75.number().optional(),unitPrice:z75.number().optional(),dailyCap:z75.number().nullable().optional()}),EntitlementsDTOSchema=z75.object({ai_credits:AiCreditsEntitlementSchema.optional(),analytics:z75.object({retentionDays:z75.number().int().positive(),canUseExtendedDateRanges:z75.boolean()}).optional(),history:z75.object({retentionDays:z75.number().int().positive()}).optional(),members:z75.object({canInvite:z75.boolean(),maxMembers:z75.number().int().positive().nullable()}).optional(),projects:z75.object({maxProjects:z75.number().int().positive().nullable()}).optional(),domains:z75.object({canUseCustomDomains:z75.boolean(),maxDomains:z75.number().int().nonnegative().nullable()}).optional(),media_storage:z75.object({limitBytes:z75.number().int().nonnegative()}).optional()}),MediaStorageUsageDTOSchema=z75.object({usedBytes:z75.number().int().nonnegative().nullable(),limitBytes:z75.number().int().nonnegative().nullable(),state:z75.enum(["ready","unavailable"]),measuredAt:z75.iso.datetime().nullable()}),MediaStorageUsageDTO=createDTO(MediaStorageUsageDTOSchema),PendingPlanChangeDTOSchema=z75.object({toPlanCode:TemplateCodeSchema,effectiveAt:z75.string(),scheduledAt:z75.string().nullable()}),HostingOverageStatusDTOSchema=z75.object({state:z75.enum(["ready","unavailable"]),planCode:z75.string(),overageAvailable:z75.boolean(),overageEnabled:z75.boolean(),monthlyCapUsd:z75.number().int().positive().nullable(),periodStart:z75.iso.datetime().nullable(),periodEnd:z75.iso.datetime().nullable(),usedBytes:z75.number().nonnegative().nullable(),includedBytes:z75.number().nonnegative().nullable(),overageBytes:z75.number().nonnegative(),currentOverageAmountMicros:z75.number().nonnegative().nullable(),currency:z75.string().nullable(),status:z75.enum(["ok","near_limit","paused"])}),HostingOverageStatusDTO=createDTO(HostingOverageStatusDTOSchema),UpdateHostingOverageRequestSchema=z75.object({enabled:z75.boolean(),monthlyCapUsd:z75.number().int().positive().max(1e6).optional()}).refine(value=>!value.enabled||value.monthlyCapUsd!==void 0,{message:"Enabling overages requires a monthly cap"}),SubscriptionDTOSchema=z75.object({id:z75.string(),external_id:z75.string(),customerId:z75.string(),planId:z75.string(),planCode:z75.union([TemplateCodeSchema,z75.literal("Unknown")]),currentPeriod:z75.object({start:z75.string(),end:z75.string().nullable()}),cancelAt:z75.string().nullable(),pendingPlanChange:PendingPlanChangeDTOSchema.nullable(),entitlements:EntitlementsDTOSchema,currency:z75.string(),nextPaymentAt:z75.string().nullable(),baseAmount:z75.number()}),SubscriptionDTO=createDTO(SubscriptionDTOSchema),DailyCreditsStatusSchema=z75.object({totalCap:z75.number(),dailyCap:z75.number(),usedTotal:z75.number()}),CreditBalanceDTOSchema=z75.object({total:z75.number(),base:z75.number(),dailyBase:z75.number(),purchases:z75.number(),awards:z75.number(),daily:DailyCreditsStatusSchema.optional()}),CreditBalanceDTO=createDTO(CreditBalanceDTOSchema),MinimalCreditBalanceDTOSchema=z75.object({total:z75.number(),nearLimit:z75.boolean(),canChat:z75.boolean(),daily:DailyCreditsStatusSchema.optional()}),MinimalCreditBalanceDTO=createDTO(MinimalCreditBalanceDTOSchema),ProjectCreditBucketsDTOSchema=z75.object({dailyFreeAvailable:z75.number(),monthlyAvailable:z75.number(),purchasedAvailable:z75.number(),awardedAvailable:z75.number()}),ProjectDailyCreditAllowanceDTOSchema=z75.object({periodCap:z75.number(),dailyGrant:z75.number(),usedThisPeriod:z75.number(),remainingThisPeriod:z75.number()}),ProjectCreditBalanceDTOSchema=z75.object({projectId:z75.uuid(),organizationId:z75.string(),balance:z75.object({totalAvailable:z75.number(),nearLimit:z75.boolean(),canUseAi:z75.boolean(),buckets:ProjectCreditBucketsDTOSchema}),allowances:z75.object({dailyCredits:ProjectDailyCreditAllowanceDTOSchema.nullable()})}),ProjectCreditBalanceDTO=createDTO(ProjectCreditBalanceDTOSchema),AgentRuntimeUsageStateSchema=z75.enum(["ok","near_limit","exhausted"]),AgentRuntimeUsageDTOSchema=z75.object({planCode:z75.enum(["Free","PAYG","Premium","Pro"]),state:AgentRuntimeUsageStateSchema,usage:z75.object({source:z75.enum(["cached_subscription","free_fallback"]),settledMs:z75.number().int().nonnegative(),activeMs:z75.number().int().nonnegative(),reservedMs:z75.number().int().nonnegative().optional(),includedMs:z75.number().int().positive(),remainingMs:z75.number().int().nonnegative(),resetsAt:z75.coerce.date()})}),AgentRuntimeUsageDTO=createDTO(AgentRuntimeUsageDTOSchema),AutoRefillConfigDTOSchema=z75.discriminatedUnion("enabled",[z75.object({enabled:z75.literal(!0),thresholdUsd:z75.number().nonnegative(),refillAmountUsd:z75.number().nonnegative()}),z75.object({enabled:z75.literal(!1),thresholdUsd:z75.number().nonnegative().nullable(),refillAmountUsd:z75.null()})]),AutoRefillConfigDTO=createDTO(AutoRefillConfigDTOSchema),UpdateAutoRefillDTOSchema=z75.discriminatedUnion("enabled",[z75.object({enabled:z75.literal(!0),thresholdUsd:z75.number().min(.01).multipleOf(.01),refillAmountUsd:z75.number().min(.01).multipleOf(.01)}).strict(),z75.object({enabled:z75.literal(!1),thresholdUsd:z75.number().min(.01).multipleOf(.01)}).strict()]),SuccessfulPurchaseDTOSchema=z75.object({invoiceId:z75.string(),newBalance:z75.int(),creditCount:z75.int(),amountUsd:z75.number()}),SuccessfulPurchaseDTO=createDTO(SuccessfulPurchaseDTOSchema),PortalDTOSchema=z75.object({url:z75.string()}),PortalDTO=createDTO(PortalDTOSchema),CreditBalanceResponseSchema=createResponseSchema2(CreditBalanceDTOSchema),MinimalCreditBalanceResponseSchema=createResponseSchema2(MinimalCreditBalanceDTOSchema),ProjectCreditBalanceResponseSchema=createResponseSchema2(ProjectCreditBalanceDTOSchema),AutoRefillConfigResponseSchema=createResponseSchema2(AutoRefillConfigDTOSchema),SuccessfulPurchaseResponseSchema=createResponseSchema2(SuccessfulPurchaseDTOSchema),SubscriptionResponseSchema=createResponseSchema2(SubscriptionDTOSchema),EntitlementsResponseSchema=createResponseSchema2(EntitlementsDTOSchema),PortalResponseSchema=createResponseSchema2(PortalDTOSchema)}});import{z as z76}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=z76.object({brand:z76.string(),last4:z76.string(),exp:z76.string(),isDefault:z76.boolean()}),PaymentMethodDTO=createDTO(PaymentMethodDTOSchema)}});import{z as z77}from"zod";var FieldDefinitionSchema,SchemaFieldPathSchema,SchemaMigrationOperationSchema,ContentTypeI18nSchema,ContentFieldGroupSchema,ContentTypeDTOSchema,ContentTypeDTO,SchemaDTOSchema,SchemaDTO,EntryDTOSchema2,EntryDTO,PaginatedEntriesDTOSchema2,PaginatedEntriesDTO,EntryCountDTOSchema,EntryCountDTO,EntryCountsDTOSchema,EntryCountsDTO,EntryTranslationGapDTOSchema,EntryTranslationGapDTO,EntryTranslationGapResponseSchema,ContentTypeResponseSchema,ContentTypeListResponseSchema,SchemaResponseSchema,EntryResponseSchema2,EntryListResponseSchema,MAX_BULK_ENTRIES2,entryWhereScalarSchema2,entryWhereOperatorSchema2,nestedEntryWhereSchema2,EntryWhereSchema2,EntryMutationBodySchema2,entryIdsSchema,EntrySqlQueryRequestSchema,BulkCreateEntriesRequestSchema,BulkUpdateEntriesRequestSchema,BulkDeleteEntriesRequestSchema,EntrySqlQueryResponseSchema,EntrySqlQueryResponseDTO,BulkCreateEntriesResponseSchema2,BulkCreateEntriesResponseDTO,BulkUpdateEntriesResponseSchema2,BulkUpdateEntriesResponseDTO,BulkDeleteEntriesResponseSchema2,BulkDeleteEntriesResponseDTO,init_content_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/content.dto.js"(){"use strict";init_common2();init_content_fields();init_create_dto();init_response();FieldDefinitionSchema=ContentFieldDefinitionSchema,SchemaFieldPathSchema=z77.string().superRefine((path53,ctx)=>{let segments=path53.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=z77.object({type:z77.literal("renameField"),contentType:z77.string().regex(CONTENT_TYPE_NAME_PATTERN),from:SchemaFieldPathSchema,to:SchemaFieldPathSchema}).strict(),ContentTypeI18nSchema=z77.object({enabled:z77.boolean()}).strict(),ContentFieldGroupSchema=z77.object({id:z77.string().regex(CONTENT_FIELD_NAME_PATTERN),label:z77.string().min(1).max(255),default:z77.boolean().optional()}).strict(),ContentTypeDTOSchema=z77.object({id:z77.string(),name:z77.string(),label:z77.string(),isSingleton:z77.boolean(),i18n:ContentTypeI18nSchema,groups:z77.array(ContentFieldGroupSchema).default([]),fields:z77.record(z77.string(),FieldDefinitionSchema),createdAt:z77.string(),updatedAt:z77.string()}),ContentTypeDTO=createDTO(ContentTypeDTOSchema),SchemaDTOSchema=z77.object({contentTypes:z77.array(ContentTypeDTOSchema)}),SchemaDTO=createDTO(SchemaDTOSchema),EntryDTOSchema2=z77.object({id:z77.string(),entryId:z77.string(),documentId:z77.string(),slug:z77.string(),locale:z77.string().optional(),createdAt:z77.string(),updatedAt:z77.string(),__fimo:z77.object({contentType:z77.string()})}).passthrough(),EntryDTO=createDTO(EntryDTOSchema2),PaginatedEntriesDTOSchema2=z77.object({data:z77.array(EntryDTOSchema2),meta:z77.object({limit:z77.number(),offset:z77.number(),total:z77.number(),hasMore:z77.boolean()})}),PaginatedEntriesDTO=createDTO(PaginatedEntriesDTOSchema2),EntryCountDTOSchema=z77.object({contentType:z77.string(),count:z77.number()}),EntryCountDTO=createDTO(EntryCountDTOSchema),EntryCountsDTOSchema=z77.object({counts:z77.array(EntryCountDTOSchema)}),EntryCountsDTO=createDTO(EntryCountsDTOSchema),EntryTranslationGapDTOSchema=z77.object({count:z77.number().int().nonnegative(),sourceLocale:z77.string(),targetLocale:z77.string()}),EntryTranslationGapDTO=createDTO(EntryTranslationGapDTOSchema),EntryTranslationGapResponseSchema=createResponseSchema2(EntryTranslationGapDTOSchema),ContentTypeResponseSchema=createResponseSchema2(ContentTypeDTOSchema),ContentTypeListResponseSchema=createResponseSchema2(z77.array(ContentTypeDTOSchema)),SchemaResponseSchema=createResponseSchema2(SchemaDTOSchema),EntryResponseSchema2=createResponseSchema2(EntryDTOSchema2),EntryListResponseSchema=createResponseSchema2(z77.array(EntryDTOSchema2)),MAX_BULK_ENTRIES2=1e3,entryWhereScalarSchema2=z77.union([z77.string(),z77.number(),z77.boolean(),z77.null()]),entryWhereOperatorSchema2=z77.object({$eq:entryWhereScalarSchema2.optional(),$ne:entryWhereScalarSchema2.optional(),$gt:entryWhereScalarSchema2.optional(),$gte:entryWhereScalarSchema2.optional(),$lt:entryWhereScalarSchema2.optional(),$lte:entryWhereScalarSchema2.optional(),$in:z77.array(entryWhereScalarSchema2).optional(),$nin:z77.array(entryWhereScalarSchema2).optional(),$contains:z77.string().optional(),$startsWith:z77.string().optional(),$null:z77.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema2=z77.record(z77.string(),z77.union([entryWhereScalarSchema2,entryWhereOperatorSchema2])),EntryWhereSchema2=z77.record(z77.string(),z77.union([entryWhereScalarSchema2,entryWhereOperatorSchema2,nestedEntryWhereSchema2])),EntryMutationBodySchema2=z77.object({data:z77.record(z77.string(),z77.unknown()),locale:z77.string().min(1).optional(),documentId:z77.uuid().optional()}),entryIdsSchema=z77.array(z77.uuid()).min(1).max(MAX_BULK_ENTRIES2),EntrySqlQueryRequestSchema=z77.object({sql:z77.string().min(1)}),BulkCreateEntriesRequestSchema=z77.object({entries:z77.array(EntryMutationBodySchema2).min(1).max(MAX_BULK_ENTRIES2)}),BulkUpdateEntriesRequestSchema=z77.union([z77.object({ids:entryIdsSchema,body:EntryMutationBodySchema2}),z77.object({where:EntryWhereSchema2,body:EntryMutationBodySchema2}),z77.object({updates:z77.array(z77.object({id:z77.uuid(),body:EntryMutationBodySchema2})).min(1).max(MAX_BULK_ENTRIES2)})]),BulkDeleteEntriesRequestSchema=z77.union([z77.object({ids:entryIdsSchema,locale:z77.string().min(1).optional()}),z77.object({where:EntryWhereSchema2,locale:z77.string().min(1).optional()})]),EntrySqlQueryResponseSchema=z77.object({data:z77.array(z77.record(z77.string(),z77.unknown())),meta:z77.object({rowCount:z77.number().int().nonnegative(),truncated:z77.boolean()})}),EntrySqlQueryResponseDTO=createDTO(EntrySqlQueryResponseSchema),BulkCreateEntriesResponseSchema2=z77.object({data:z77.array(EntryDTOSchema2),meta:z77.object({created:z77.number().int().nonnegative()})}),BulkCreateEntriesResponseDTO=createDTO(BulkCreateEntriesResponseSchema2),BulkUpdateEntriesResponseSchema2=z77.object({data:z77.array(EntryDTOSchema2),meta:z77.object({updated:z77.number().int().nonnegative(),missing:z77.array(z77.string())})}),BulkUpdateEntriesResponseDTO=createDTO(BulkUpdateEntriesResponseSchema2),BulkDeleteEntriesResponseSchema2=z77.object({data:z77.array(EntryDTOSchema2),meta:z77.object({deleted:z77.number().int().nonnegative(),missing:z77.array(z77.string())})}),BulkDeleteEntriesResponseDTO=createDTO(BulkDeleteEntriesResponseSchema2)}});import{z as z78}from"zod";var UniqueConflictSchema,UniqueConflictErrorSchema,init_unique_conflict_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/unique-conflict.dto.js"(){"use strict";UniqueConflictSchema=z78.object({index:z78.number().int().nonnegative(),contentType:z78.string(),field:z78.string(),value:z78.string(),against:z78.enum(["stored","batch"]),ownerDocumentId:z78.uuid().optional(),ownerIndex:z78.number().int().nonnegative().optional()}),UniqueConflictErrorSchema=z78.object({code:z78.literal("unique_conflict"),message:z78.string(),conflicts:z78.array(UniqueConflictSchema),truncated:z78.boolean().optional()})}});import{z as z79}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=z79.object({kind:z79.literal("unique_conflict"),contentType:z79.string(),field:z79.string(),value:z79.string(),documentCount:z79.number().int().positive(),documentIds:z79.array(z79.uuid()),documentIdsTruncated:z79.boolean().optional()}),SchemaTransitionIssueSchema=UniqueConflictIssueSchema,SchemaTransitionRejectedErrorSchema=z79.object({code:z79.literal("schema_transition_rejected"),message:z79.string(),issues:z79.array(SchemaTransitionIssueSchema),truncated:z79.boolean().optional()})}});import{z as z80}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_common2();init_create_dto();init_response();CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS=200,CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH=255,CmsContentTypeNameSchema=z80.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_TYPE_NAME_PATTERN),CmsFieldNameSchema=z80.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_FIELD_NAME_PATTERN),CmsCollectionOrderSchema=z80.array(CmsContentTypeNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsFieldOrderSchema=z80.array(CmsFieldNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsListSortSchema=z80.object({field:CmsFieldNameSchema,direction:z80.enum(["asc","desc"])}),CmsDisplayDefaultsDTOSchema=z80.object({collectionOrder:CmsCollectionOrderSchema.nullable(),fieldOrders:z80.record(CmsContentTypeNameSchema,CmsFieldOrderSchema),listSorts:z80.record(CmsContentTypeNameSchema,CmsListSortSchema)}),CmsDisplayDefaultsDTO=createDTO(CmsDisplayDefaultsDTOSchema),CmsCollectionOrderRequestSchema=z80.object({order:CmsCollectionOrderSchema}),CmsFieldOrderRequestSchema=z80.object({order:CmsFieldOrderSchema}),CmsDisplayDefaultsResponseSchema=createResponseSchema2(CmsDisplayDefaultsDTOSchema)}});import{z as z81}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=z81.enum(MIGRATION_SOURCE_PLATFORMS)}});import{z as z82}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=z82.enum(CLIENT_TRACKED_EVENTS),TrackProjectEventRequestSchema=z82.object({event:ClientTrackedEventSchema,properties:z82.record(z82.string(),z82.unknown()).default({})})}});import{z as z83}from"zod";var AssetPathItemSchema,AssetDTOSchema2,AssetDTO,AssetTreeNodeDTOSchema,AssetTreeNodeDTO,AssetResponseSchema2,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_common2();init_create_dto();init_response();AssetPathItemSchema=z83.object({id:z83.string(),name:z83.string()}),AssetDTOSchema2=z83.object({id:z83.string(),name:z83.string(),type:AssetTypeSchema,originalFileName:z83.string().nullable(),parentId:z83.string().nullable(),mimeType:z83.string().nullable(),fileSize:z83.number().nullable(),url:z83.string().nullable(),storageKey:z83.string().nullable(),createdAt:z83.string(),updatedAt:z83.string(),altText:z83.string().nullable().optional(),caption:z83.string().nullable().optional(),aiCaption:z83.string().nullable().optional(),aiAltText:z83.string().nullable().optional(),aiTags:z83.array(z83.string()).nullable().optional(),aiPrimaryColor:z83.string().nullable().optional(),aiProcessingStatus:z83.string().nullable().optional(),width:z83.number().nullable().optional(),height:z83.number().nullable().optional(),path:z83.array(AssetPathItemSchema).optional(),hasChildren:z83.boolean().optional()}),AssetDTO=createDTO(AssetDTOSchema2),AssetTreeNodeDTOSchema=AssetDTOSchema2.extend({children:z83.lazy(()=>z83.array(AssetTreeNodeDTOSchema)).optional()}),AssetTreeNodeDTO=createDTO(AssetTreeNodeDTOSchema),AssetResponseSchema2=createResponseSchema2(AssetDTOSchema2),AssetListResponseSchema=createResponseSchema2(z83.array(AssetDTOSchema2)),MediaStorageLimitErrorSchema=z83.object({error:z83.string(),code:z83.literal("media_storage_limit_exceeded"),usedBytes:z83.number().int().nonnegative(),limitBytes:z83.number().int().positive(),incomingBytes:z83.number().int().nonnegative()}),AssetReferenceScopeSchema=z83.enum(["current","main","live"]),ASSET_REFERENCE_IMPACT_FILE_LIMIT=50,AssetReferenceImpactRequestSchema=z83.object({assetIds:z83.array(z83.uuid()).min(1).max(ASSET_REFERENCE_IMPACT_FILE_LIMIT),scopes:z83.array(AssetReferenceScopeSchema).min(1).optional()}),AssetReferenceImpactSelectionDTOSchema=z83.object({totalFiles:z83.number().int().nonnegative(),checkedFiles:z83.number().int().nonnegative(),limit:z83.number().int().positive()}),AssetReferenceFindingDTOSchema=z83.object({assetId:z83.uuid(),entryId:z83.string(),documentId:z83.string(),contentType:z83.string(),locale:z83.string().nullable(),slug:z83.string(),fieldPath:z83.string()}),AssetReferenceScopeResultDTOSchema=z83.object({scope:AssetReferenceScopeSchema,label:z83.string(),state:z83.enum(["available","not-published","failed"]),coverage:z83.enum(["complete","partial","failed"]),referenceCount:z83.number().int().nonnegative().optional(),codeReferenceCount:z83.number().int().nonnegative().optional(),referencedAssetIds:z83.array(z83.uuid()).optional(),references:z83.array(AssetReferenceFindingDTOSchema),reason:z83.enum(["timeout","unavailable"]).optional()}),AssetReferenceScopeResultDTO=createDTO(AssetReferenceScopeResultDTOSchema),AssetReferenceImpactEventDTOSchema=z83.discriminatedUnion("type",[z83.object({type:z83.literal("selection"),data:AssetReferenceImpactSelectionDTOSchema}),z83.object({type:z83.literal("scope"),data:AssetReferenceScopeResultDTOSchema}),z83.object({type:z83.literal("complete")})]),AssetReferenceImpactEventDTO=createDTO(AssetReferenceImpactEventDTOSchema),AssetReferenceReplacementRequestSchema=z83.object({replacementAssetId:z83.uuid()}),AssetReferenceReplacementResultSchema=z83.object({referencesReplaced:z83.number().int().nonnegative(),entriesChanged:z83.number().int().nonnegative()}),AssetReferenceReplacementResponseSchema=createResponseSchema2(AssetReferenceReplacementResultSchema),AssetReferenceReplacementPreviewResponseSchema=createResponseSchema2(AssetReferenceReplacementResultSchema),AssetCodeReferenceReplacementResultSchema=z83.object({referencesReplaced:z83.number().int().nonnegative(),filesChanged:z83.number().int().nonnegative(),commitSha:z83.string().nullable()}),AssetReferenceReplacementErrorCodeSchema=z83.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=z83.object({error:z83.string(),code:AssetReferenceReplacementErrorCodeSchema}),ASSET_REMOVAL_ASSET_LIMIT=200,AssetRemovalIntentSchema=z83.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=z83.object({intent:AssetRemovalIntentSchema,assetIds:z83.array(z83.uuid()).min(1).max(ASSET_REMOVAL_ASSET_LIMIT),replacementAssetId:z83.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=z83.object({id:z83.uuid(),intent:AssetRemovalIntentSchema,assetIds:z83.array(z83.uuid()),replacementAssetId:z83.uuid().nullable(),expiresAt:z83.iso.datetime(),undoable:z83.boolean(),requestedByMe:z83.boolean()}),AssetRemovalOperationDTO=createDTO(AssetRemovalOperationDTOSchema),AssetRemovalScheduleResultDTOSchema=AssetRemovalOperationDTOSchema.extend({codeReplacement:AssetCodeReferenceReplacementResultSchema.optional()}),AssetRemovalScheduleResultDTO=createDTO(AssetRemovalScheduleResultDTOSchema),AssetRemovalErrorCodeSchema=z83.enum(["asset_removal.asset_not_found","asset_removal.replacement_not_found","asset_removal.already_finalized"]),AssetRemovalErrorSchema=z83.object({error:z83.string(),code:AssetRemovalErrorCodeSchema})}});import{z as z84}from"zod";var TranslationDTOSchema2,TranslationDTO,init_translation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/translation.dto.js"(){"use strict";init_create_dto();TranslationDTOSchema2=z84.object({key:z84.string(),value:z84.string().optional(),defaultValue:z84.string(),locale:z84.string()}),TranslationDTO=createDTO(TranslationDTOSchema2)}});import{z as z85}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=z85.object({id:z85.string(),name:z85.string(),type:z85.enum(["file","folder"]),path:z85.string(),children:z85.lazy(()=>z85.array(DocumentNodeDTOSchema)).optional()}),DocumentTreeDTOSchema=z85.array(DocumentNodeDTOSchema),DocumentPathDTOSchema=z85.object({path:z85.string(),exists:z85.boolean(),type:z85.enum(["file","folder"]).optional()}),DocumentPathDTO=createDTO(DocumentPathDTOSchema),DocumentTreeResponseSchema=createResponseSchema2(DocumentTreeDTOSchema),DocumentPathResponseSchema=createResponseSchema2(DocumentPathDTOSchema)}});import{z as z86}from"zod";var FormFieldTypeSchema,FormFieldValidationSchema,FormFieldSchema,FormFieldsSchema,FormContentSchema2,FormUpdateSchema2,init_form_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/form.dto.js"(){"use strict";FormFieldTypeSchema=z86.enum(["text","email","textarea","number","phone","url","select","checkbox","date","hidden","file"]),FormFieldValidationSchema=z86.object({minLength:z86.number().optional(),maxLength:z86.number().optional(),min:z86.number().optional(),max:z86.number().optional(),pattern:z86.string().optional(),maxFileSize:z86.number().optional(),accept:z86.array(z86.string()).optional()}),FormFieldSchema=z86.object({type:FormFieldTypeSchema,label:z86.string(),placeholder:z86.string().optional(),required:z86.boolean().optional(),defaultValue:z86.string().optional(),options:z86.array(z86.string()).optional(),validation:FormFieldValidationSchema.optional()}),FormFieldsSchema=z86.record(z86.string(),FormFieldSchema),FormContentSchema2=z86.object({name:z86.string().min(1).max(255),label:z86.string().min(1).max(255),fields:FormFieldsSchema}).strict(),FormUpdateSchema2=FormContentSchema2.partial().refine(update2=>update2.name!==void 0||update2.label!==void 0||update2.fields!==void 0,{message:"Pass at least one of name, label, or fields."})}});import{z as z87}from"zod";var ChatMessageListDTOSchema,ChatMessagesPageDTOSchema,ChatLiveTurnDTOSchema,ChatLiveTurnStateDTOSchema,ChatLiveTurnStateDTO,ChatThreadMessageDTOSchema,ChatAttentionDTOSchema,ChatThreadMessagesPageDTOSchema,ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema,ChatNonStreamingOutcomeDTOSchema,ChatDeletionDTOSchema,ChatDeletionDTO,ChatMessageListResponseSchema,ChatMessagesPageResponseSchema,ChatDeletionResponseSchema,ChatClearErrorDTOSchema,init_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat.dto.js"(){"use strict";init_create_dto();init_response();init_project_dto();ChatMessageListDTOSchema=z87.array(ProjectMessageDTOSchema),ChatMessagesPageDTOSchema=z87.object({items:z87.array(ProjectMessagePublicDTOSchema),nextCursor:z87.string().nullable()}),ChatLiveTurnDTOSchema=z87.object({invocationId:z87.string(),step:z87.enum(["preparing","working","compacting","merging"]),startedAt:z87.string()}),ChatLiveTurnStateDTOSchema=z87.object({threadId:z87.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable()}),ChatLiveTurnStateDTO=createDTO(ChatLiveTurnStateDTOSchema),ChatThreadMessageDTOSchema=z87.object({id:z87.string(),role:z87.enum(["user","assistant"]),parts:z87.array(z87.unknown()),metadata:z87.record(z87.string(),z87.unknown()).nullable(),versionId:z87.string().nullable().optional(),createdAt:z87.date().transform(value=>value.toISOString()),providerMessageId:z87.string().nullable().optional(),invocationId:z87.string().nullable().optional(),invocationStatus:z87.string().nullable().optional(),invocationTerminalReason:z87.string().nullable().optional()}),ChatAttentionDTOSchema=z87.object({type:z87.literal("merge_conflict"),merge:z87.object({mergeId:z87.string().uuid(),projectId:z87.string(),fromBranch:z87.string(),toBranch:z87.string()}),publishAfterMerge:z87.boolean()}),ChatThreadMessagesPageDTOSchema=z87.object({threadId:z87.string().nullable(),title:z87.string().nullable(),messages:z87.array(ChatThreadMessageDTOSchema),nextCursor:z87.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable().optional(),attention:ChatAttentionDTOSchema.nullable().optional()}),ChatReplayOutcomeDTOSchema=z87.object({kind:z87.literal("replay"),threadId:z87.string(),userMessageId:z87.string()}),ChatQueuedOutcomeDTOSchema=z87.object({kind:z87.literal("queued"),threadId:z87.string(),userMessageId:z87.string(),blockingRootId:z87.string()}),ChatBusyOutcomeDTOSchema=z87.object({kind:z87.literal("busy"),threadId:z87.string(),userMessageId:z87.string(),blockingRootId:z87.string().optional()}),ChatRefusedOutcomeDTOSchema=z87.object({kind:z87.literal("refused"),threadId:z87.string(),userMessageId:z87.string(),refusedInvocationId:z87.string(),terminalReason:z87.string()}),ChatNonStreamingOutcomeDTOSchema=z87.discriminatedUnion("kind",[ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema]),ChatDeletionDTOSchema=z87.object({success:z87.boolean(),deletedCount:z87.number()}),ChatDeletionDTO=createDTO(ChatDeletionDTOSchema),ChatMessageListResponseSchema=createResponseSchema2(ChatMessageListDTOSchema),ChatMessagesPageResponseSchema=createResponseSchema2(ChatMessagesPageDTOSchema),ChatDeletionResponseSchema=createResponseSchema2(ChatDeletionDTOSchema),ChatClearErrorDTOSchema=z87.object({code:z87.enum(["retained_conflict_busy","retained_conflict_cleanup_failed"]),message:z87.string()})}});import{z as z88}from"zod";var UploadResultDTOSchema,UploadResultDTO,UploadResultResponseSchema,init_upload_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/upload.dto.js"(){"use strict";init_common2();init_create_dto();init_response();UploadResultDTOSchema=z88.object({url:z88.string().url(),key:z88.string(),size:z88.number(),contentType:z88.string(),uploadedAt:CommonSchemas.timestamp}),UploadResultDTO=createDTO(UploadResultDTOSchema),UploadResultResponseSchema=createResponseSchema2(UploadResultDTOSchema)}});import{z as z89}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=z89.object({canAccess:z89.boolean(),permissions:z89.record(z89.string(),z89.boolean()),role:z89.string().nullable()}),ServicePermissionsDTO=createDTO(ServicePermissionsDTOSchema),ServicePermissionsResponseSchema=createResponseSchema2(ServicePermissionsDTOSchema)}});import{z as z90}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:z90.string().trim().default(""),sort:z90.enum(["recent","name","relevance"]).default("recent"),category:z90.string().optional()})}});import{z as z91}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_common2();init_create_dto();init_response();DomainStatusSchema=z91.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),DomainSourceSchema=z91.enum(["fimo","external"]),PaymentStatusSchema=z91.enum(["pending","paid","failed","refunded"]),DomainDTOSchema=z91.object({id:z91.string().uuid(),domain:z91.string(),status:DomainStatusSchema,source:DomainSourceSchema,registrationDate:CommonSchemas.timestamp.nullable(),expirationDate:CommonSchemas.timestamp.nullable(),autoRenew:z91.boolean(),price:z91.number().int().nullable(),renewalPrice:z91.number().int().nullable(),paymentStatus:PaymentStatusSchema.nullable(),checkoutUrl:z91.string().nullable(),failureReason:z91.string().nullable(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),DomainDTO=createDTO(DomainDTOSchema),DomainSearchResultDTOSchema=z91.object({domain:z91.string(),available:z91.boolean(),premium:z91.boolean(),price:z91.number().nullable(),renewalPrice:z91.number().nullable(),purchaseType:z91.string().nullable()}),DomainSearchResultDTO=createDTO(DomainSearchResultDTOSchema),DomainPricingDTOSchema=z91.object({domain:z91.string(),price:z91.number().nullable(),renewalPrice:z91.number().nullable(),premium:z91.boolean(),allowedYears:z91.array(z91.number().int().positive())}),DomainPricingDTO=createDTO(DomainPricingDTOSchema),DomainContactSchema=z91.object({firstName:z91.string().max(100),lastName:z91.string().max(100),companyName:z91.string().max(100).optional(),address1:z91.string().max(255),address2:z91.string().max(255).optional(),city:z91.string().max(100),state:z91.string().max(100),zip:z91.string().max(20),country:z91.string().max(2),phone:z91.string().max(30),email:z91.union([z91.string().email().max(255),z91.literal("")])}),DomainContactDTO=createDTO(DomainContactSchema),UpdateDomainContactsRequestSchema=z91.object({firstName:z91.string().min(1).max(100),lastName:z91.string().min(1).max(100),companyName:z91.string().max(100).optional(),address1:z91.string().min(1).max(255),address2:z91.string().max(255).optional(),city:z91.string().min(1).max(100),state:z91.string().min(1).max(100),zip:z91.string().min(1).max(20),country:z91.string().min(1).max(2),phone:z91.string().min(1).max(30),email:z91.string().email().max(255)}),SearchDomainsRequestSchema=z91.object({keyword:z91.string().min(1).max(100),tldFilter:z91.array(z91.string()).optional()}),CheckAvailabilityRequestSchema=z91.object({domains:z91.array(z91.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=z91.string().min(1).max(255).regex(DOMAIN_NAME_REGEX,{message:"Invalid domain name"}),PurchaseDomainRequestSchema=z91.object({domain:DomainNameSchema,years:z91.number().int().min(1).max(10).optional().default(3),autoRenew:z91.boolean().optional().default(!0)}),UpdateDomainSettingsRequestSchema=z91.object({autoRenew:z91.boolean().optional()}),RenewDomainRequestSchema=z91.object({years:z91.number().int().min(1).max(10).optional().default(1),autoRenew:z91.boolean().optional().default(!0)}),DomainResponseSchema=createResponseSchema2(DomainDTOSchema),DomainListResponseSchema=createResponseSchema2(z91.array(DomainDTOSchema)),DomainSearchResultListResponseSchema=createResponseSchema2(z91.array(DomainSearchResultDTOSchema)),DomainPricingResponseSchema=createResponseSchema2(DomainPricingDTOSchema),DomainContactResponseSchema=createResponseSchema2(DomainContactSchema.nullable()),ContactVerificationStatusSchema=z91.object({verified:z91.boolean(),email:z91.string().nullable(),verifyBy:z91.string().nullable()}),ContactVerificationStatusResponseSchema=createResponseSchema2(ContactVerificationStatusSchema)}});import{z as z92}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_common2();init_create_dto();init_response();ProjectDomainStatusSchema=z92.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=z92.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=z92.object({txtName:z92.string().nullable().optional(),txtValue:z92.string().nullable().optional(),httpUrl:z92.string().nullable().optional(),httpBody:z92.string().nullable().optional(),cname:z92.string().nullable().optional(),cnameTarget:z92.string().nullable().optional()}),SSLValidationErrorSchema=z92.object({message:z92.string()}),OwnershipVerificationSchema=z92.object({type:z92.string(),name:z92.string(),value:z92.string()}),ProjectDomainSSLDTOSchema=z92.object({status:z92.string(),method:z92.string().nullable(),type:z92.string().nullable(),validationRecords:z92.array(SSLValidationRecordSchema).nullable().optional(),validationErrors:z92.array(SSLValidationErrorSchema).nullable().optional()}),DomainProviderSchema=z92.enum(["cloudflare","saas_custom_domains"]),DomainTypeSchema=z92.enum(["subdomain","apex"]),RedirectConfigSchema=z92.object({type:z92.literal("apex_to_www"),linkedDomainId:z92.string()}).nullable().optional(),ProjectDomainDTOSchema=z92.object({id:z92.string(),hostname:z92.string(),status:z92.string(),ssl:ProjectDomainSSLDTOSchema,ownershipVerification:z92.array(OwnershipVerificationSchema).nullable().optional(),cnameTarget:z92.string(),scdCnameTarget:z92.string().optional(),apexTargets:z92.array(z92.string()),dnsAutoConfigured:z92.boolean(),createdAt:CommonSchemas.timestamp,provider:DomainProviderSchema,domainType:DomainTypeSchema,redirectConfig:RedirectConfigSchema,migrationStatus:z92.string().nullable().optional()}),ProjectDomainDTO=createDTO(ProjectDomainDTOSchema),ProjectDomainListResponseSchema=createResponseSchema2(z92.array(ProjectDomainDTOSchema)),ProjectDomainResponseSchema=createResponseSchema2(ProjectDomainDTOSchema),AddProjectDomainRequestSchema=z92.object({hostname:z92.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:z92.boolean().optional()}),CheckProjectDomainHostnameReasonSchema=z92.enum(["invalid_hostname","fimo_owned_hostname","reserved","taken_by_another_project","taken_by_this_project"]),CheckProjectDomainHostnameResponseSchema=createResponseSchema2(z92.object({available:z92.boolean(),reason:CheckProjectDomainHostnameReasonSchema.optional()})),DeleteProjectDomainResponseSchema=createResponseSchema2(z92.object({success:z92.boolean(),hostname:z92.string()}))}});import{z as z93}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=z93.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain"]),CheckProjectSubdomainResponseSchema=createResponseSchema2(z93.object({available:z93.boolean(),reason:SubdomainCheckReasonSchema.optional()})),UpdateProjectSubdomainRequestSchema=z93.object({slug:z93.string().min(1).max(63).regex(SUBDOMAIN_REGEX,{error:"Invalid subdomain shape"})}),UpdateProjectSubdomainErrorReasonSchema=z93.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain","kv_sync_failed","hosting_sync_failed"]),UpdateProjectSubdomainResponseSchema=createResponseSchema2(z93.object({subdomain:z93.string(),subdomainUpdatedAt:z93.coerce.date()})),SubdomainSuggestionsQuerySchema=z93.object({base:z93.string().max(100).optional(),max:z93.coerce.number().int().min(1).max(10).optional()}),SubdomainSuggestionsResponseSchema=createResponseSchema2(z93.object({suggestions:z93.array(z93.string())}))}});import{z as z94}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","org_agent_registry_reference","source_registered_domain"],ProjectTransferBlockerCodeSchema=z94.enum(PROJECT_TRANSFER_BLOCKER_CODES),ProjectTransferBlockerDTO=createDTO(z94.object({code:ProjectTransferBlockerCodeSchema,message:z94.string(),count:z94.number().int().nonnegative().optional()})),TransferProjectRequestSchema=z94.object({targetOrganizationId:z94.string().min(1)}),ProjectTransferResultDTO=createDTO(z94.object({projectId:z94.string(),sourceOrganizationId:z94.string(),targetOrganizationId:z94.string(),movedThreads:z94.number().int().nonnegative(),revokedInvites:z94.number().int().nonnegative(),revokedGrants:z94.number().int().nonnegative(),preservedGrants:z94.number().int().nonnegative(),warnings:z94.array(z94.string())}))}});import{z as z95}from"zod";var ProjectLocaleCoverageSchema,ProjectLocaleStatsItemSchema,ProjectLocaleStatsSchema,ProjectLocaleStatsDTO,ProjectLocaleStatsResponseSchema2,AddProjectLocaleRequestSchema,RemoveProjectLocaleParamsSchema,ProjectLocaleMutationSchema,ProjectLocaleMutationDTO,ProjectLocaleMutationResponseSchema2,RemoveProjectLocaleSchema,RemoveProjectLocaleDTO,RemoveProjectLocaleResponseSchema2,init_project_locale_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-locale.dto.js"(){"use strict";init_create_dto();init_response();ProjectLocaleCoverageSchema=z95.object({translated:z95.number().int().nonnegative(),total:z95.number().int().nonnegative()}),ProjectLocaleStatsItemSchema=z95.object({locale:z95.string(),isDefault:z95.boolean(),entries:ProjectLocaleCoverageSchema,labels:ProjectLocaleCoverageSchema}),ProjectLocaleStatsSchema=z95.object({defaultLocale:z95.string(),locales:z95.array(ProjectLocaleStatsItemSchema)}),ProjectLocaleStatsDTO=createDTO(ProjectLocaleStatsSchema),ProjectLocaleStatsResponseSchema2=createResponseSchema2(ProjectLocaleStatsSchema),AddProjectLocaleRequestSchema=z95.object({locale:z95.string().min(1).max(40)}),RemoveProjectLocaleParamsSchema=z95.object({locale:z95.string().min(1).max(40)}),ProjectLocaleMutationSchema=z95.object({locale:z95.string()}),ProjectLocaleMutationDTO=createDTO(ProjectLocaleMutationSchema),ProjectLocaleMutationResponseSchema2=createResponseSchema2(ProjectLocaleMutationSchema),RemoveProjectLocaleSchema=z95.object({locale:z95.string(),entriesDeleted:z95.number().int().nonnegative(),labelsDeleted:z95.number().int().nonnegative()}),RemoveProjectLocaleDTO=createDTO(RemoveProjectLocaleSchema),RemoveProjectLocaleResponseSchema2=createResponseSchema2(RemoveProjectLocaleSchema)}});import{z as z96}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=z96.enum(GENERATION_QUALITIES),GenerationTaskIdSchema=z96.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=z96.object({task:GenerationTaskIdSchema,quality:GenerationQualitySchema.optional(),costUsd:z96.number(),credits:z96.number().optional(),billingMode:z96.enum(["fimo-credits","provider-account"]).optional(),confidence:z96.enum(["exact","estimated","metered"]),basis:z96.string()}),GenerationTaskEstimateDTO=createDTO(GenerationTaskEstimateDTOSchema)}});import{z as z97}from"zod";var GenerateRequestBaseSchema,GenerateRequestDTOSchema,GenerateRequestDTO,GenerateResponseDataSchema,GenerateResponseDTO,GenerateResponseSchema2,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=z97.object({options:z97.record(z97.string(),z97.unknown()),name:z97.string().optional(),parentId:z97.string().nullable().optional(),altText:z97.string().optional(),caption:z97.string().optional()}),GenerateRequestDTOSchema=GenerateRequestBaseSchema.extend({task:z97.string().min(1).optional(),model:z97.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=z97.object({jobId:z97.string(),status:z97.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema2.optional(),error:z97.string().nullable().optional(),credits:z97.number().optional(),costUsd:z97.number().optional(),billingMode:z97.enum(["fimo-credits","provider-account"]).optional(),task:GenerationTaskIdSchema.optional(),quality:GenerationQualitySchema.optional()}),GenerateResponseDTO=createDTO(GenerateResponseDataSchema),GenerateResponseSchema2=createResponseSchema2(GenerateResponseDataSchema),GenerateErrorSchema=z97.object({error:z97.string(),code:z97.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:z97.array(GenerationTaskIdSchema).optional(),availableModels:z97.array(z97.string()).optional(),issues:z97.array(z97.unknown()).optional()})}});import{z as z98}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=z98.enum(["string","number","integer","boolean","enum","array","unknown"]),FlagSpecSchema=z98.object({name:z98.string(),key:z98.string(),description:z98.string(),type:FlagTypeSchema,required:z98.boolean(),defaultValue:z98.unknown().optional(),enumValues:z98.array(z98.string()).optional(),isArray:z98.boolean()}),AssetModelPriceSchema=z98.object({unitPrice:z98.number(),unit:z98.string(),confidence:z98.enum(["exact","estimated","metered"])}),AssetModelDTOSchema=z98.object({id:z98.string(),shortName:z98.string(),provider:z98.string(),source:z98.string(),modality:z98.enum(["image","video","audio"]),tags:z98.array(z98.string()),displayName:z98.string(),description:z98.string(),flags:z98.array(FlagSpecSchema),price:AssetModelPriceSchema.nullable()}),AssetModelDTO=createDTO(AssetModelDTOSchema),AssetModelEstimateDTOSchema=z98.object({model:z98.string(),costUsd:z98.number(),credits:z98.number(),billingMode:z98.enum(["fimo-credits","provider-account"]),confidence:z98.enum(["exact","estimated","metered"]),basis:z98.string()}),AssetModelEstimateDTO=createDTO(AssetModelEstimateDTOSchema)}});import{z as z99}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=z99.object({tourId:z99.string(),version:z99.string(),status:z99.string(),completedAt:z99.coerce.date()}),UserTourDTO=createDTO(UserTourDTOSchema),UserTourResponseSchema=createResponseSchema2(UserTourDTOSchema),UserTourListResponseSchema=createResponseSchema2(z99.array(UserTourDTOSchema))}});import{z as z100}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=z100.enum(SUPPORT_REPORT_CATEGORIES.map(category=>category.value)),SUPPORT_REPORT_STATUSES=["new","in_progress","waiting","resolved","duplicate","irrelevant","ignored"],SupportReportStatusSchema=z100.enum(SUPPORT_REPORT_STATUSES),SupportReportSourceSchema=z100.enum(["app","cli","agent"]),SupportReportDeliveryStatusSchema=z100.enum(["pending","delivered","failed"]),SUPPORT_REPORT_LINK_KINDS=["linear","pylon","project","sentry","grafana","other"],SupportReportLinkKindSchema=z100.enum(SUPPORT_REPORT_LINK_KINDS),SupportReportEventKindSchema=z100.enum(["report_created","report_updated","message","link_added","link_removed","delivery"]),SupportReportActorKindSchema=z100.enum(["user","agent","system"]),SupportReportTagSchema=z100.string().trim().min(1).max(50),SupportReportHttpUrlSchema=z100.url({protocol:/^https?$/}).max(2e3),SupportReportContextInputSchema=z100.object({organization:z100.object({id:z100.string().trim().min(1).max(255),name:z100.string().trim().max(240).optional()}),project:z100.object({id:z100.uuid(),name:z100.string().trim().max(240).optional(),createdAt:z100.coerce.date().optional()}).optional(),environment:z100.string().trim().max(255).optional(),clientVersion:z100.string().trim().max(64).optional()}),CreateSupportReportInputSchema=z100.object({message:z100.string().trim().min(1).max(2e4),category:SupportReportCategorySchema,source:SupportReportSourceSchema.default("cli"),context:SupportReportContextInputSchema}),SupportReportListQuerySchema=z100.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),source:SupportReportSourceSchema.optional(),tag:SupportReportTagSchema.optional(),query:z100.string().trim().max(200).optional(),limit:z100.coerce.number().int().min(1).max(100).default(50),offset:z100.coerce.number().int().min(0).default(0)}),UpdateSupportReportInputSchema=z100.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),tags:z100.array(SupportReportTagSchema).max(20).optional(),duplicateOfReportId:z100.uuid().nullable().optional(),note:z100.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=z100.object({message:z100.string().trim().min(1).max(2e4)}),CreateSupportReportLinkInputSchema=z100.object({kind:SupportReportLinkKindSchema,label:z100.string().trim().min(1).max(240),url:SupportReportHttpUrlSchema,externalId:z100.string().trim().max(240).optional()}),SupportReportActorDTOSchema=z100.object({kind:SupportReportActorKindSchema,id:z100.string().nullable(),name:z100.string().nullable()}),SupportReportLinkDTOSchema=z100.object({id:z100.uuid(),kind:SupportReportLinkKindSchema,label:z100.string(),url:SupportReportHttpUrlSchema,externalId:z100.string().nullable(),addedBy:SupportReportActorDTOSchema,createdAt:z100.coerce.date()}),SupportReportLinkDTO=createDTO(SupportReportLinkDTOSchema),SupportReportEventDTOSchema=z100.object({id:z100.uuid(),kind:SupportReportEventKindSchema,body:z100.string().nullable(),metadata:z100.record(z100.string(),z100.unknown()),actor:SupportReportActorDTOSchema,createdAt:z100.coerce.date()}),SupportReportEventDTO=createDTO(SupportReportEventDTOSchema),SupportReportSummaryDTOSchema=z100.object({id:z100.uuid(),status:SupportReportStatusSchema,category:SupportReportCategorySchema,tags:z100.array(z100.string()),source:SupportReportSourceSchema,message:z100.string(),reporter:z100.object({id:z100.string().nullable(),name:z100.string().nullable(),email:z100.string().nullable()}),organization:z100.object({id:z100.string().nullable(),name:z100.string()}),project:z100.object({id:z100.uuid().nullable(),name:z100.string()}).nullable(),assignee:SupportReportActorDTOSchema.nullable(),delivery:z100.object({status:SupportReportDeliveryStatusSchema,pylonIssueId:z100.string().nullable(),pylonIssueUrl:SupportReportHttpUrlSchema.nullable(),error:z100.string().nullable(),deliveredAt:z100.coerce.date().nullable()}).nullable(),duplicateOfReportId:z100.uuid().nullable(),resolvedAt:z100.coerce.date().nullable(),createdAt:z100.coerce.date(),updatedAt:z100.coerce.date()}),SupportReportSummaryDTO=createDTO(SupportReportSummaryDTOSchema),SupportReportDetailDTOSchema=SupportReportSummaryDTOSchema.extend({environment:z100.string().nullable(),clientVersion:z100.string().nullable(),links:z100.array(SupportReportLinkDTOSchema),events:z100.array(SupportReportEventDTOSchema)}),SupportReportDetailDTO=createDTO(SupportReportDetailDTOSchema),SupportReportListDTOSchema=z100.object({reports:z100.array(SupportReportSummaryDTOSchema),total:z100.number().int().nonnegative(),statusCounts:z100.object({new:z100.number().int().nonnegative(),in_progress:z100.number().int().nonnegative(),waiting:z100.number().int().nonnegative(),resolved:z100.number().int().nonnegative(),duplicate:z100.number().int().nonnegative(),irrelevant:z100.number().int().nonnegative(),ignored:z100.number().int().nonnegative()}),limit:z100.number().int().positive(),offset:z100.number().int().nonnegative()}),SupportReportListDTO=createDTO(SupportReportListDTOSchema),CreateSupportReportResultDTOSchema=z100.object({id:z100.uuid(),deliveryStatus:SupportReportDeliveryStatusSchema,message:z100.string()}),CreateSupportReportResultDTO=createDTO(CreateSupportReportResultDTOSchema)}});import{z as z101}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=z101.iso.datetime({offset:!0}).pipe(z101.coerce.date()),OpsRecentChatInputSchema=z101.object({from:OpsChatTimestampInputSchema,to:OpsChatTimestampInputSchema.optional(),projectEnv:z101.string().trim().min(1).max(255).optional(),limit:z101.coerce.number().int().min(1).max(200).default(100),cursor:z101.string().trim().min(1).max(2e3).optional(),slim:z101.boolean().default(!0),reason:z101.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=z101.object({id:z101.string(),threadId:z101.string(),providerMessageId:z101.string().nullable(),invocationId:z101.string().nullable(),env:z101.string().nullable(),role:z101.string(),parts:z101.array(z101.record(z101.string(),z101.unknown())),metadata:z101.object({status:z101.string().optional(),traceUrl:z101.string().optional(),externalFileChanges:z101.array(z101.unknown()).optional()}),stats:z101.object({toolCount:z101.number().int().nonnegative(),failedToolCount:z101.number().int().nonnegative()}),createdAt:z101.iso.datetime({offset:!0}),project:z101.object({id:z101.string(),name:z101.string(),displayName:z101.string().nullable(),organizationId:z101.string().nullable()})}),OpsRecentChatResponseSchema=z101.object({target:z101.object({backendProfile:OpsBackendProfileSchema,projectEnv:z101.string().nullable()}),window:z101.object({from:z101.iso.datetime({offset:!0}),to:z101.iso.datetime({offset:!0})}),messages:z101.object({items:z101.array(OpsRecentChatMessageSchema),nextCursor:z101.string().nullable()})}),OpsRecentChatResponseDTO=createDTO(OpsRecentChatResponseSchema)}});import{z as z102}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=z102.object({backendProfile:OpsBackendProfileSchema,provider:z102.literal("sentry"),issueId:OpsSentryIssueIdSchema,status:z102.literal("resolved")}),OpsSentryIssueResolutionResponseDTO=createDTO(OpsSentryIssueResolutionResponseSchema),OpsSentryIssueResolutionErrorResponseSchema=z102.object({backendProfile:OpsBackendProfileSchema,provider:z102.literal("sentry"),issueId:OpsSentryIssueIdSchema,resolved:z102.literal(!1),reason:z102.string()}),OpsSentryIssueResolutionErrorResponseDTO=createDTO(OpsSentryIssueResolutionErrorResponseSchema)}});import{z as z103}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=z103.object({packageManager:z103.string().trim().min(1).max(200).nullable(),trackedLockfiles:z103.array(z103.enum(OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES)),sourceRevision:z103.string().trim().min(1)}),OpsProjectPackageManagerSchema=z103.object({target:z103.object({backendProfile:OpsBackendProfileSchema,projectId:z103.uuid(),projectEnv:z103.string().trim().min(1).max(255)}),...OpsProjectPackageManagerSummarySchema.shape}),OpsProjectPackageManagerDTO=createDTO(OpsProjectPackageManagerSchema)}});import{z as z104}from"zod";var OPS_AGENT_BRANCH_DISCARD_LIMIT,OpsAgentBranchAllowlistSchema,OpsAgentBranchDiscardPlanInputSchema,OpsAgentBranchDiscardApplyInputSchema,OPS_AGENT_BRANCH_DISCARD_BLOCKERS,OpsAgentBranchDiscardBlockerSchema,init_ops_agent_branch_discard_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-agent-branch-discard.dto.js"(){"use strict";init_env();OPS_AGENT_BRANCH_DISCARD_LIMIT=25,OpsAgentBranchAllowlistSchema=z104.array(BranchSchema).min(1,"name at least one Branch to discard").max(OPS_AGENT_BRANCH_DISCARD_LIMIT).refine(branches=>new Set(branches).size===branches.length,{error:"the Branch allowlist must not repeat a Branch"}),OpsAgentBranchDiscardPlanInputSchema=z104.object({branches:OpsAgentBranchAllowlistSchema,reason:z104.string().trim().min(1).max(1e3)}),OpsAgentBranchDiscardApplyInputSchema=OpsAgentBranchDiscardPlanInputSchema.extend({planHash:z104.string().trim().length(64)}),OPS_AGENT_BRANCH_DISCARD_BLOCKERS=["branch_not_found","not_agent_session_branch","branch_not_active","production_branch","default_branch","production_source_branch","owner_session_missing","not_project_agent_run","open_merge","live_mcp_session","live_owner","has_descendants"],OpsAgentBranchDiscardBlockerSchema=z104.enum(OPS_AGENT_BRANCH_DISCARD_BLOCKERS)}});import{z as z105}from"zod";function createAgentRunWebhookEventDataSchema(status){return z105.object({run:z105.object({id:z105.string(),agentName:z105.string(),trigger:z105.string(),status:z105.literal(status),startedAt:z105.string().nullable(),finishedAt:z105.string().nullable(),reason:z105.string().nullable()})})}var WEBHOOK_EVENT_TYPES,WebhookEventTypeSchema,WebhookEntryChangeActionSchema,WebhookEntryChangeReasonSchema,WebhookEnvironmentScopeSchema,WebhookEnvironmentSelectorSchema,EntryChangedWebhookEventDataSchema,FormSubmittedWebhookEventDataSchema,PublishStartedWebhookEventDataSchema,PublishSucceededWebhookEventDataSchema,PublishFailedWebhookEventDataSchema,PublishUnpublishedWebhookEventDataSchema,AgentReviewRequestedWebhookEventDataSchema,AgentReviewResolvedWebhookEventDataSchema,AnalyticsReportReadyWebhookEventDataSchema,MediaAssetWebhookEventDataSchema,MediaUploadedWebhookEventDataSchema,MediaUpdatedWebhookEventDataSchema,MediaDeletedWebhookEventDataSchema,DomainCreatedWebhookEventDataSchema,DomainDeletedWebhookEventDataSchema,LabelChangedWebhookEventDataSchema,LocaleCreatedWebhookEventDataSchema,LocaleDefaultChangedWebhookEventDataSchema,LocaleDeletedWebhookEventDataSchema,EnvironmentCreatedWebhookEventDataSchema,EnvironmentDeletedWebhookEventDataSchema,EnvironmentMergedWebhookEventDataSchema,BranchRestoredWebhookEventDataSchema,WEBHOOK_EVENT_DATA_SCHEMAS,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_common2();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","agent.run.started","agent.run.completed","agent.run.failed","agent.run.cancelled","agent.review.requested","agent.review.resolved","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=z105.enum(WEBHOOK_EVENT_TYPES),WebhookEntryChangeActionSchema=z105.enum(["created","updated","deleted"]),WebhookEntryChangeReasonSchema=z105.enum(["entry_write","bulk_edit","environment_merge"]),WebhookEnvironmentScopeSchema=z105.enum(["main","all"]),WebhookEnvironmentSelectorSchema=z105.union([WebhookEnvironmentScopeSchema,EnvironmentKeySchema]),EntryChangedWebhookEventDataSchema=z105.object({reason:WebhookEntryChangeReasonSchema,operationId:z105.string().optional(),batch:z105.object({index:z105.number().int().positive(),total:z105.number().int().positive()}).optional(),changes:z105.array(z105.object({action:WebhookEntryChangeActionSchema,contentType:z105.string(),id:z105.string(),documentId:z105.string(),locale:z105.string().nullable()}))}),FormSubmittedWebhookEventDataSchema=z105.object({form:z105.object({id:z105.string(),label:z105.string()}),submission:z105.object({id:z105.string(),data:z105.record(z105.string(),z105.unknown()),submittedAt:z105.string()})}),PublishStartedWebhookEventDataSchema=z105.object({publication:z105.object({status:z105.literal("publishing"),startedAt:z105.string()})}),PublishSucceededWebhookEventDataSchema=z105.object({publication:z105.object({status:z105.literal("published"),url:z105.string(),publishedAt:z105.string(),firstPublish:z105.boolean()})}),PublishFailedWebhookEventDataSchema=z105.object({publication:z105.object({status:z105.literal("failed"),reason:z105.string()})}),PublishUnpublishedWebhookEventDataSchema=z105.object({publication:z105.object({previousUrl:z105.string(),unpublishedAt:z105.string()})});__name(createAgentRunWebhookEventDataSchema,"createAgentRunWebhookEventDataSchema");AgentReviewRequestedWebhookEventDataSchema=z105.object({review:z105.object({id:z105.string(),runId:z105.string(),agentName:z105.string(),classification:z105.string(),summary:z105.string(),reasons:z105.array(z105.string()).readonly()})}),AgentReviewResolvedWebhookEventDataSchema=z105.object({review:z105.object({id:z105.string(),runId:z105.string(),agentName:z105.string(),resolution:z105.string()})}),AnalyticsReportReadyWebhookEventDataSchema=z105.object({report:z105.object({weekStart:z105.string(),weekEnd:z105.string(),pageviews:z105.number(),visitors:z105.number(),previousPageviews:z105.number(),previousVisitors:z105.number()})}),MediaAssetWebhookEventDataSchema=z105.object({id:z105.string().nullable(),name:z105.string().nullable(),type:z105.string(),mimeType:z105.string().nullable(),fileSize:z105.number().nullable()}),MediaUploadedWebhookEventDataSchema=z105.object({asset:MediaAssetWebhookEventDataSchema,operation:z105.literal("uploaded")}),MediaUpdatedWebhookEventDataSchema=z105.object({asset:MediaAssetWebhookEventDataSchema,operation:z105.literal("updated")}),MediaDeletedWebhookEventDataSchema=z105.object({asset:MediaAssetWebhookEventDataSchema,operation:z105.literal("deleted")}),DomainCreatedWebhookEventDataSchema=z105.object({domain:z105.object({id:z105.string(),hostname:z105.string(),status:ProjectDomainStatusSchema,sslStatus:SSLStatusSchema})}),DomainDeletedWebhookEventDataSchema=z105.object({domain:z105.object({id:z105.string(),hostname:z105.string()})}),LabelChangedWebhookEventDataSchema=z105.object({changes:z105.array(z105.object({action:z105.enum(["created","updated","deleted"]),key:z105.string(),locale:z105.string(),value:z105.string().nullable()}))}),LocaleCreatedWebhookEventDataSchema=z105.object({locale:z105.object({code:z105.string(),isDefault:z105.boolean()})}),LocaleDefaultChangedWebhookEventDataSchema=z105.object({locale:z105.object({code:z105.string(),previousCode:z105.string()})}),LocaleDeletedWebhookEventDataSchema=z105.object({locale:z105.object({code:z105.string(),entriesDeleted:z105.number().int().nonnegative(),labelsDeleted:z105.number().int().nonnegative()})}),EnvironmentCreatedWebhookEventDataSchema=z105.object({environment:z105.object({name:BranchSchema,parent:BranchSchema})}),EnvironmentDeletedWebhookEventDataSchema=z105.object({environment:z105.object({name:BranchSchema})}),EnvironmentMergedWebhookEventDataSchema=z105.object({merge:z105.object({id:z105.string(),from:BranchSchema,to:BranchSchema,applied:z105.array(z105.object({surface:SurfaceNameSchema,count:z105.number().int().nonnegative()}))})}),BranchRestoredWebhookEventDataSchema=z105.object({branch:z105.object({name:BranchSchema}),version:z105.object({versionId:z105.uuid(),name:z105.string()})}),WEBHOOK_EVENT_DATA_SCHEMAS={"entry.changed":EntryChangedWebhookEventDataSchema,"form.submitted":FormSubmittedWebhookEventDataSchema,"publish.started":PublishStartedWebhookEventDataSchema,"publish.succeeded":PublishSucceededWebhookEventDataSchema,"publish.failed":PublishFailedWebhookEventDataSchema,"publish.unpublished":PublishUnpublishedWebhookEventDataSchema,"agent.run.started":createAgentRunWebhookEventDataSchema("running"),"agent.run.completed":createAgentRunWebhookEventDataSchema("completed"),"agent.run.failed":createAgentRunWebhookEventDataSchema("failed"),"agent.run.cancelled":createAgentRunWebhookEventDataSchema("cancelled"),"agent.review.requested":AgentReviewRequestedWebhookEventDataSchema,"agent.review.resolved":AgentReviewResolvedWebhookEventDataSchema,"analytics.report_ready":AnalyticsReportReadyWebhookEventDataSchema,"media.uploaded":MediaUploadedWebhookEventDataSchema,"media.updated":MediaUpdatedWebhookEventDataSchema,"media.deleted":MediaDeletedWebhookEventDataSchema,"domain.created":DomainCreatedWebhookEventDataSchema,"domain.deleted":DomainDeletedWebhookEventDataSchema,"label.changed":LabelChangedWebhookEventDataSchema,"locale.created":LocaleCreatedWebhookEventDataSchema,"locale.default_changed":LocaleDefaultChangedWebhookEventDataSchema,"locale.deleted":LocaleDeletedWebhookEventDataSchema,"environment.created":EnvironmentCreatedWebhookEventDataSchema,"environment.deleted":EnvironmentDeletedWebhookEventDataSchema,"environment.merged":EnvironmentMergedWebhookEventDataSchema,"branch.restored":BranchRestoredWebhookEventDataSchema},WebhookEventFamilySchema=z105.enum(["entries","forms","publish","agents","analytics","media","domains","labels","locales","environments"]),WebhookDestinationKindSchema=z105.enum(["custom","resend","github","slack"]),WebhookHeaderValueInputSchema=z105.discriminatedUnion("source",[z105.object({source:z105.literal("literal"),value:z105.string().min(1).max(4096).regex(/^[^\r\n]*$/)}),z105.object({source:z105.literal("secret"),key:z105.string().regex(/^[A-Z_][A-Z0-9_]*$/),prefix:z105.string().max(128).regex(/^[^\r\n]*$/).optional()})]),WebhookHeaderInputSchema=z105.object({name:z105.string().min(1).max(128),value:WebhookHeaderValueInputSchema}),WebhookHeaderDTOSchema=z105.object({name:z105.string(),source:z105.enum(["literal","secret"]),secretKey:z105.string().nullable(),secretPrefix:z105.string().nullable(),configured:z105.literal(!0)}),WebhookFilterSchema=z105.object({environment:WebhookEnvironmentSelectorSchema.optional(),formId:z105.string().min(1).max(255).optional(),agentName:z105.string().min(1).max(120).optional(),mediaType:z105.enum(["image","video","audio","document","other"]).optional(),action:WebhookEntryChangeActionSchema.optional(),contentType:z105.string().min(1).max(255).optional(),locale:z105.string().min(1).max(120).optional()}),JsonValueSchema=z105.lazy(()=>z105.union([z105.string(),z105.number(),z105.boolean(),z105.null(),z105.array(JsonValueSchema),z105.record(z105.string(),JsonValueSchema)])),CreateProjectWebhookRequestSchema=z105.object({name:z105.string().trim().min(1).max(120),eventType:WebhookEventTypeSchema,url:z105.url(),enabled:z105.boolean().optional().default(!0),filter:WebhookFilterSchema.optional().default({}),headers:z105.array(WebhookHeaderInputSchema).max(20).optional().default([]),bodyTemplate:JsonValueSchema.nullable().optional().default(null),signingEnabled:z105.boolean().optional().default(!0)}),UpdateProjectWebhookRequestSchema=z105.object({name:z105.string().trim().min(1).max(120).optional(),eventType:WebhookEventTypeSchema.optional(),url:z105.url().optional(),enabled:z105.boolean().optional(),filter:WebhookFilterSchema.optional(),headers:z105.array(WebhookHeaderInputSchema).max(20).optional(),bodyTemplate:JsonValueSchema.nullable().optional(),signingEnabled:z105.boolean().optional()}),TestProjectWebhookRequestSchema=z105.object({eventType:WebhookEventTypeSchema.optional(),data:z105.record(z105.string(),JsonValueSchema).optional()}),WebhookDeliveryStatusSchema=z105.enum(["pending","delivering","retrying","succeeded","failed"]),ProjectWebhookDTOSchema=BaseEntitySchema.extend({projectId:z105.uuid(),name:z105.string(),eventType:WebhookEventTypeSchema,enabled:z105.boolean(),destination:z105.object({host:z105.string(),maskedUrl:z105.string(),kind:WebhookDestinationKindSchema}),filter:WebhookFilterSchema,headers:z105.array(WebhookHeaderDTOSchema),bodyTemplate:JsonValueSchema.nullable(),signingEnabled:z105.boolean(),lastDeliveryStatus:WebhookDeliveryStatusSchema.nullable(),lastDeliveryAt:z105.coerce.date().nullable(),deliveryStats24h:z105.object({succeeded:z105.number().int().nonnegative(),failed:z105.number().int().nonnegative()})}),ProjectWebhookDTO=createDTO(ProjectWebhookDTOSchema),WebhookDeliveryDTOSchema=BaseEntitySchema.extend({webhookId:z105.uuid(),projectId:z105.uuid(),env:BranchSchema,environment:EnvironmentKeySchema,branch:BranchSchema,eventId:z105.uuid(),eventType:WebhookEventTypeSchema,eventVersion:z105.number().int().positive(),test:z105.boolean(),status:WebhookDeliveryStatusSchema,attemptCount:z105.number().int().nonnegative(),responseStatus:z105.number().int().nullable(),lastErrorCode:z105.string().nullable(),lastErrorMessage:z105.string().nullable(),payloadAvailable:z105.boolean(),destination:z105.object({host:z105.string(),maskedUrl:z105.string(),kind:WebhookDestinationKindSchema}),requestHeaders:z105.array(WebhookHeaderDTOSchema),requestBodyExcerpt:z105.string().nullable(),qstashMessageId:z105.string().nullable(),deliveredAt:z105.coerce.date().nullable()}),WebhookDeliveryDTO=createDTO(WebhookDeliveryDTOSchema),WebhookDeliveriesPageSchema=z105.object({items:z105.array(WebhookDeliveryDTOSchema),pagination:z105.object({page:z105.number().int().positive(),limit:z105.number().int().positive(),total:z105.number().int().nonnegative(),totalPages:z105.number().int().positive(),hasMore:z105.boolean()}),stats:z105.object({total:z105.number().int().nonnegative(),succeeded:z105.number().int().nonnegative(),failed:z105.number().int().nonnegative()})}),WebhookDeliveryAttemptDTOSchema=z105.object({id:z105.uuid(),deliveryId:z105.uuid(),attempt:z105.number().int().positive(),status:z105.enum(["delivering","succeeded","failed"]),responseStatus:z105.number().int().nullable(),durationMs:z105.number().int().nonnegative(),responseExcerpt:z105.string().nullable(),errorCode:z105.string().nullable(),errorMessage:z105.string().nullable(),createdAt:z105.coerce.date()}),WebhookDeliveryAttemptDTO=createDTO(WebhookDeliveryAttemptDTOSchema),ProjectWebhookResponseSchema=createResponseSchema2(ProjectWebhookDTOSchema),ProjectWebhooksListResponseSchema=createResponseSchema2(z105.array(ProjectWebhookDTOSchema)),WebhookDeliveriesListResponseSchema=createResponseSchema2(WebhookDeliveriesPageSchema),WebhookDeliveryAttemptsListResponseSchema=createResponseSchema2(z105.array(WebhookDeliveryAttemptDTOSchema))}});import{z as z106}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=z106.object({key:z106.literal("fimo-2"),enabled:z106.boolean(),dismissed:z106.boolean().default(!1),interacted:z106.boolean().default(!1)}),PreviewFeatureDTO=createDTO(PreviewFeatureDTOSchema)}});import{z as z107}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_common2();init_create_dto();init_billing_dto();SubscriptionStatusSchema=z107.enum(["active","cancelled","draft","errored","paused","pending","voided"]),CreditBalanceBreakdownDTOSchema=z107.object({total:z107.number(),base:z107.number(),purchases:z107.number(),awards:z107.number()}),CreditBalanceBreakdownDTO=createDTO(CreditBalanceBreakdownDTOSchema),SubscriptionPlanDTOSchema=z107.object({id:z107.string(),name:z107.string()}),SubscriptionPlanDTO=createDTO(SubscriptionPlanDTOSchema),SubscriptionPaymentMethodDTOSchema=z107.object({type:z107.string(),brand:z107.string().nullable(),last4:z107.string().nullable(),expirationDate:z107.string().nullable()}),SubscriptionPaymentMethodDTO=createDTO(SubscriptionPaymentMethodDTOSchema),SubscriptionPricingDTOSchema=z107.object({currency:z107.string(),nextPaymentAmount:z107.number().nullable(),nextPaymentAt:z107.string().nullable(),billingInterval:z107.string().nullable(),totalAmount:z107.number().nullable(),discountAmount:z107.number().nullable()}),SubscriptionPricingDTO=createDTO(SubscriptionPricingDTOSchema),SubscriptionDetailsDTOSchema=z107.object({id:z107.string(),status:SubscriptionStatusSchema,plan:SubscriptionPlanDTOSchema.nullable(),currentPeriodStartedAt:z107.string().nullable(),currentPeriodEndsAt:z107.string().nullable(),renewsAt:z107.string().nullable(),cancelAt:z107.string().nullable(),renewAutomatically:z107.boolean(),pricing:SubscriptionPricingDTOSchema.nullable(),paymentMethod:SubscriptionPaymentMethodDTOSchema.nullable()}),SubscriptionDetailsDTO=createDTO(SubscriptionDetailsDTOSchema),CreditAlertDTOSchema=z107.object({type:z107.enum(["low_balance","critical_balance","approaching_limit"]),message:z107.string(),estimatedPromptsRemaining:z107.number().nullable(),avgCostPerPrompt:z107.number().nullable()}),CreditAlertDTO=createDTO(CreditAlertDTOSchema),PlanAllocationDTOSchema=z107.object({monthlyCredits:z107.number().nullable(),usedThisPeriod:z107.number(),remainingThisPeriod:z107.number()}),PlanAllocationDTO=createDTO(PlanAllocationDTOSchema),LatestCancellationDTOSchema=z107.object({organizationId:z107.string(),planCode:TemplateCodeSchema,reason:CancellationReasonCodeSchema,details:z107.string().nullable(),tenureDays:z107.number().int().nonnegative(),capturedAt:z107.string()}),LatestCancellationDTO=createDTO(LatestCancellationDTOSchema),OrganizationSubscriptionDTOSchema=z107.object({hasSubscription:z107.boolean(),subscription:SubscriptionDetailsDTOSchema.nullable(),credits:CreditBalanceBreakdownDTOSchema,planAllocation:PlanAllocationDTOSchema.nullable(),lowBalanceThreshold:z107.number().nullable(),alerts:z107.array(CreditAlertDTOSchema),portalUrl:z107.string().nullable(),latestCancellation:LatestCancellationDTOSchema.nullable()}),OrganizationSubscriptionDTO=createDTO(OrganizationSubscriptionDTOSchema),BaseCreditTopupRequestSchema=z107.object({creditCount:z107.number().int().positive(),expiresAt:z107.string().datetime().nullable().optional(),message:z107.string().nullable().optional()}),FreeCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z107.literal("free"),amountCents:z107.number().int().positive().nullable().optional()}),PurchaseCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z107.literal("purchase"),amountCents:z107.number().int().positive()}),CreditTopupRequestDTOSchema=z107.discriminatedUnion("type",[FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema]),CreditTopupRequestDTO=createDTO(CreditTopupRequestDTOSchema),CreditTopupResponseDTOSchema=z107.object({success:z107.boolean(),transactionId:z107.string().nullable(),newBalance:z107.number(),creditCount:z107.number(),type:z107.enum(["free","purchase"]),invoiceId:z107.string().nullable()}),CreditTopupResponseDTO=createDTO(CreditTopupResponseDTOSchema)}});import{z as z108}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=z108.object({totalCredits:z108.number(),totalCostUsd:z108.number(),totalMessages:z108.number(),avgCostPerMessage:z108.number(),periodStart:z108.string().nullable(),periodEnd:z108.string().nullable()}),UsageSummaryDTO=createDTO(UsageSummaryDTOSchema),UsageByProjectDTOSchema=z108.object({projectId:z108.string(),projectName:z108.string(),projectDisplayName:z108.string().nullable(),credits:z108.number(),costUsd:z108.number(),messages:z108.number(),percentage:z108.number()}),UsageByProjectDTO=createDTO(UsageByProjectDTOSchema),UsageByUserDTOSchema=z108.object({userId:z108.string(),userName:z108.string().nullable(),userEmail:z108.string().email().nullable(),credits:z108.number(),costUsd:z108.number(),messages:z108.number(),percentage:z108.number()}),UsageByUserDTO=createDTO(UsageByUserDTOSchema),UsageTimelineItemDTOSchema=z108.object({date:z108.string(),credits:z108.number(),costUsd:z108.number(),messages:z108.number()}),UsageTimelineItemDTO=createDTO(UsageTimelineItemDTOSchema),UsageByUserForProjectDTOSchema=z108.object({userId:z108.string(),userName:z108.string().nullable(),userEmail:z108.string().email().nullable(),credits:z108.number(),costUsd:z108.number(),messages:z108.number(),percentage:z108.number()}),UsageByUserForProjectDTO=createDTO(UsageByUserForProjectDTOSchema),ProjectUsageDetailDTOSchema=z108.object({projectId:z108.string(),projectName:z108.string(),projectDisplayName:z108.string().nullable(),summary:UsageSummaryDTOSchema,byUser:z108.array(UsageByUserForProjectDTOSchema),timeline:z108.array(UsageTimelineItemDTOSchema)}),ProjectUsageDetailDTO=createDTO(ProjectUsageDetailDTOSchema),OrganizationUsageDTOSchema=z108.object({summary:UsageSummaryDTOSchema,byProject:z108.array(UsageByProjectDTOSchema),byUser:z108.array(UsageByUserDTOSchema),timeline:z108.array(UsageTimelineItemDTOSchema)}),OrganizationUsageDTO=createDTO(OrganizationUsageDTOSchema)}});import{z as z109}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=z109.enum(["today","1d","7d","14d","30d","60d","90d"]),SortOrderSchema=z109.enum(["asc","desc"]),UsageAnalyticsQuerySchema=z109.object({startDate:z109.string().optional(),endDate:z109.string().optional(),preset:TimeRangePresetSchema.optional().default("30d"),page:z109.coerce.number().int().positive().default(1),limit:z109.coerce.number().int().positive().max(100).default(20),sortBy:z109.string().optional(),sortOrder:SortOrderSchema.optional().default("desc"),search:z109.string().optional(),activeOnly:z109.stringbool().optional().default(!0)}),UsageOverviewSummaryDTOSchema=z109.object({totalCredits:z109.number(),totalCostUsd:z109.number(),totalMessages:z109.number(),avgCostPerMessage:z109.number(),avgCreditsPerMessage:z109.number(),periodStart:z109.string(),periodEnd:z109.string(),creditsChange:z109.number().nullable(),costChange:z109.number().nullable(),messagesChange:z109.number().nullable(),unattributedCredits:z109.number(),unattributedCostUsd:z109.number(),unattributedMessages:z109.number()}),UsageOverviewSummaryDTO=createDTO(UsageOverviewSummaryDTOSchema),UsageTimelinePointDTOSchema=z109.object({date:z109.string(),credits:z109.number(),costUsd:z109.number(),messages:z109.number()}),UsageTimelinePointDTO=createDTO(UsageTimelinePointDTOSchema),OrganizationUsageRowDTOSchema=z109.object({organizationId:z109.string(),organizationName:z109.string(),credits:z109.number(),costUsd:z109.number(),messages:z109.number(),percentage:z109.number(),userCount:z109.number(),projectCount:z109.number()}),OrganizationUsageRowDTO=createDTO(OrganizationUsageRowDTOSchema),UserUsageRowDTOSchema=z109.object({userId:z109.string(),userName:z109.string().nullable(),userEmail:z109.string().nullable(),userImage:z109.string().nullable(),organizationId:z109.string().nullable(),organizationName:z109.string().nullable(),credits:z109.number(),costUsd:z109.number(),messages:z109.number(),percentage:z109.number(),projectCount:z109.number()}),UserUsageRowDTO=createDTO(UserUsageRowDTOSchema),ProjectUsageRowDTOSchema=z109.object({projectId:z109.string(),projectName:z109.string(),projectDisplayName:z109.string().nullable(),organizationId:z109.string(),organizationName:z109.string(),credits:z109.number(),costUsd:z109.number(),messages:z109.number(),percentage:z109.number(),userCount:z109.number()}),ProjectUsageRowDTO=createDTO(ProjectUsageRowDTOSchema),UsageDistributionItemDTOSchema=z109.object({id:z109.string(),name:z109.string(),value:z109.number(),percentage:z109.number()}),UsageDistributionItemDTO=createDTO(UsageDistributionItemDTOSchema),UsageHeatmapPointDTOSchema=z109.object({day:z109.number(),hour:z109.number(),value:z109.number()}),UsageHeatmapPointDTO=createDTO(UsageHeatmapPointDTOSchema),UsageOverviewResponseDTOSchema=z109.object({summary:UsageOverviewSummaryDTOSchema,timeline:z109.array(UsageTimelinePointDTOSchema),topOrganizations:z109.array(OrganizationUsageRowDTOSchema),topUsers:z109.array(UserUsageRowDTOSchema),topProjects:z109.array(ProjectUsageRowDTOSchema),creditDistribution:z109.array(UsageDistributionItemDTOSchema),userDistribution:z109.array(UsageDistributionItemDTOSchema),heatmap:z109.array(UsageHeatmapPointDTOSchema)}),UsageOverviewResponseDTO=createDTO(UsageOverviewResponseDTOSchema),UsagePaginationDTOSchema=z109.object({page:z109.number(),limit:z109.number(),totalItems:z109.number(),totalPages:z109.number(),hasMore:z109.boolean()}),UsagePaginationDTO=createDTO(UsagePaginationDTOSchema),UsageByOrganizationResponseDTOSchema=z109.object({organizations:z109.array(OrganizationUsageRowDTOSchema),top:z109.array(OrganizationUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByOrganizationResponseDTO=createDTO(UsageByOrganizationResponseDTOSchema),ExtendedUserUsageRowDTOSchema=UserUsageRowDTOSchema.extend({organizationCount:z109.number()}),ExtendedUserUsageRowDTO=createDTO(ExtendedUserUsageRowDTOSchema),UsageByUserResponseDTOSchema=z109.object({users:z109.array(ExtendedUserUsageRowDTOSchema),top:z109.array(ExtendedUserUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByUserResponseDTO=createDTO(UsageByUserResponseDTOSchema),ExtendedProjectUsageRowDTOSchema=ProjectUsageRowDTOSchema.extend({ownerId:z109.string(),ownerName:z109.string().nullable(),ownerEmail:z109.string().nullable()}),ExtendedProjectUsageRowDTO=createDTO(ExtendedProjectUsageRowDTOSchema),UsageByProjectResponseDTOSchema=z109.object({projects:z109.array(ExtendedProjectUsageRowDTOSchema),top:z109.array(ExtendedProjectUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByProjectResponseDTO=createDTO(UsageByProjectResponseDTOSchema),ExportFormatSchema=z109.enum(["csv","json"]),UsageExportQuerySchema=UsageAnalyticsQuerySchema.extend({format:ExportFormatSchema.default("csv"),type:z109.enum(["overview","organizations","users","projects"]).default("overview")}),PeekUsageMetricsDTOSchema=z109.object({credits:z109.number(),costUsd:z109.number(),messages:z109.number()}),PeekUsageMetricsDTO=createDTO(PeekUsageMetricsDTOSchema),OrganizationPeekDTOSchema=z109.object({id:z109.string(),name:z109.string(),createdAt:z109.string(),memberCount:z109.number(),projectCount:z109.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z109.array(UsageTimelinePointDTOSchema)}),OrganizationPeekDTO=createDTO(OrganizationPeekDTOSchema),UserPeekDTOSchema=z109.object({id:z109.string(),name:z109.string().nullable(),email:z109.string(),image:z109.string().nullable(),createdAt:z109.string(),organizationCount:z109.number(),projectCount:z109.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z109.array(UsageTimelinePointDTOSchema)}),UserPeekDTO=createDTO(UserPeekDTOSchema),ProjectPeekDTOSchema=z109.object({id:z109.string(),name:z109.string(),displayName:z109.string().nullable(),createdAt:z109.string(),organizationId:z109.string(),organizationName:z109.string(),ownerId:z109.string(),ownerName:z109.string().nullable(),ownerEmail:z109.string().nullable(),usage:PeekUsageMetricsDTOSchema,recentActivity:z109.array(UsageTimelinePointDTOSchema)}),ProjectPeekDTO=createDTO(ProjectPeekDTOSchema)}});import{z as z110}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=z110.enum(["running","completed","failed","stopped"]),PresetSandboxCommandSchema=z110.enum(["restart-dev-server","stop-dev-server","install-dependencies","reinstall-dependencies","build","typecheck"]),ExecuteSandboxCommandRequestDTOSchema=z110.object({command:z110.string().min(1).max(1e4),cwd:z110.string().optional(),projectBranch:BranchSchema.optional(),projectEnv:BranchSchema.optional(),env:z110.record(z110.string(),z110.string()).optional(),name:z110.string().optional(),waitForCompletion:z110.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=z110.object({identifier:z110.string(),status:SandboxProcessStatusSchema,command:z110.string().optional(),startedAt:z110.string().optional(),exitCode:z110.number().optional()}),SandboxProcessInfoDTO=createDTO(SandboxProcessInfoDTOSchema),SandboxProcessInfoResponseSchema=createResponseSchema2(SandboxProcessInfoDTOSchema),SandboxProcessListDTOSchema=z110.object({processes:z110.array(SandboxProcessInfoDTOSchema)}),SandboxProcessListDTO=createDTO(SandboxProcessListDTOSchema),SandboxProcessListResponseSchema=createResponseSchema2(SandboxProcessListDTOSchema),ExecuteSandboxCommandResponseDTOSchema=z110.object({processId:z110.string(),status:SandboxProcessStatusSchema}),ExecuteSandboxCommandResponseDTO=createDTO(ExecuteSandboxCommandResponseDTOSchema),PresetCommandResponseDTOSchema=z110.object({success:z110.boolean(),message:z110.string().optional()}),PresetCommandResponseDTO=createDTO(PresetCommandResponseDTOSchema),PresetCommandResponseSchema=createResponseSchema2(PresetCommandResponseDTOSchema)}});import{z as z111}from"zod";var init_esm=__esm({"../../packages/api-contracts/dist/esm/index.js"(){"use strict";init_create_dto();init_response();init_pagination();init_common2();init_attachments();init_asset_reading();init_env();init_environment();init_realtime();init_references();init_content_fields();init_audit_log();init_ops();init_chat_block();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_trigger_dto();init_agent_list_item_dto();init_agent_control_dto();init_agent_run_dto();init_agent_session_dto();init_agent_proposal_dto();init_agent_question_dto();init_agent_install_summary_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_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_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_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_branch_discard_dto();init_webhook_dto();init_preview_feature_dto();init_subscription_dto();init_usage_dto();init_usage_analytics_dto();init_sandbox_command_dto()}});import{execFile as execFile2}from"node:child_process";import{promisify as promisify2}from"node:util";async function runGit(args,cwd){let{stdout}=await execFileAsync2("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 execFileAsync2("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 execFileAsync2("git",["ls-remote","--heads",remoteUrl,branch]);return stdout.trim().length>0}async function currentBranch(cwd){return runGit(["symbolic-ref","--short","-q","HEAD"],cwd)}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 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 execFileAsync2,init_git=__esm({"src/cli/utils/git.ts"(){execFileAsync2=promisify2(execFile2);__name(runGit,"runGit");__name(isGitRepo,"isGitRepo");__name(hasUncommittedChanges,"hasUncommittedChanges");__name(cloneRepo,"cloneRepo");__name(isMissingRemoteBranch,"isMissingRemoteBranch");__name(remoteHasBranch,"remoteHasBranch");__name(currentBranch,"currentBranch");__name(currentTagOrNull,"currentTagOrNull");__name(isReleaseTag,"isReleaseTag");__name(classifyPushError,"classifyPushError");__name(extractStderr,"extractStderr")}});function projectSettingsFromEnv(){let projectId=process.env.FIMO_PROJECT_ID?.trim();return projectId?{projectId,organizationId:process.env.FIMO_ORGANIZATION_ID?.trim()??"",name:process.env.FIMO_PROJECT_NAME?.trim()??projectId,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 currentBranch(cwd);return!branch||!isValidBranch(branch)?null:{branch,source:"branch"}}catch{return null}}function resolveBranchFromEnvironment(){let branch=process.env.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{let fromGit=await resolveBranchFromGit(cwd);if(fromGit)branch=fromGit.branch,source=fromGit.source,readOnly=fromGit.readOnly===!0;else{let fromEnvironment=resolveBranchFromEnvironment();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":"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,fimo:baseFimo});if(!bootstrapOpts.quiet){let{currentMode:currentMode2}=await Promise.resolve().then(()=>(init_dist(),dist_exports));currentMode2().format==="pretty"&&process.stderr.write(`${branchSourceBanner(ctx)}
209
209
  `)}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_config();init_sdk_transport();init_git();init_project();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 isAmbiguous,isFullWidth,isWide,init_utils=__esm({"../../node_modules/.pnpm/fast-string-truncated-width@1.2.1/node_modules/fast-string-truncated-width/dist/utils.js"(){isAmbiguous=__name(x=>x===161||x===164||x===167||x===168||x===170||x===173||x===174||x>=176&&x<=180||x>=182&&x<=186||x>=188&&x<=191||x===198||x===208||x===215||x===216||x>=222&&x<=225||x===230||x>=232&&x<=234||x===236||x===237||x===240||x===242||x===243||x>=247&&x<=250||x===252||x===254||x===257||x===273||x===275||x===283||x===294||x===295||x===299||x>=305&&x<=307||x===312||x>=319&&x<=322||x===324||x>=328&&x<=331||x===333||x===338||x===339||x===358||x===359||x===363||x===462||x===464||x===466||x===468||x===470||x===472||x===474||x===476||x===593||x===609||x===708||x===711||x>=713&&x<=715||x===717||x===720||x>=728&&x<=731||x===733||x===735||x>=768&&x<=879||x>=913&&x<=929||x>=931&&x<=937||x>=945&&x<=961||x>=963&&x<=969||x===1025||x>=1040&&x<=1103||x===1105||x===8208||x>=8211&&x<=8214||x===8216||x===8217||x===8220||x===8221||x>=8224&&x<=8226||x>=8228&&x<=8231||x===8240||x===8242||x===8243||x===8245||x===8251||x===8254||x===8308||x===8319||x>=8321&&x<=8324||x===8364||x===8451||x===8453||x===8457||x===8467||x===8470||x===8481||x===8482||x===8486||x===8491||x===8531||x===8532||x>=8539&&x<=8542||x>=8544&&x<=8555||x>=8560&&x<=8569||x===8585||x>=8592&&x<=8601||x===8632||x===8633||x===8658||x===8660||x===8679||x===8704||x===8706||x===8707||x===8711||x===8712||x===8715||x===8719||x===8721||x===8725||x===8730||x>=8733&&x<=8736||x===8739||x===8741||x>=8743&&x<=8748||x===8750||x>=8756&&x<=8759||x===8764||x===8765||x===8776||x===8780||x===8786||x===8800||x===8801||x>=8804&&x<=8807||x===8810||x===8811||x===8814||x===8815||x===8834||x===8835||x===8838||x===8839||x===8853||x===8857||x===8869||x===8895||x===8978||x>=9312&&x<=9449||x>=9451&&x<=9547||x>=9552&&x<=9587||x>=9600&&x<=9615||x>=9618&&x<=9621||x===9632||x===9633||x>=9635&&x<=9641||x===9650||x===9651||x===9654||x===9655||x===9660||x===9661||x===9664||x===9665||x>=9670&&x<=9672||x===9675||x>=9678&&x<=9681||x>=9698&&x<=9701||x===9711||x===9733||x===9734||x===9737||x===9742||x===9743||x===9756||x===9758||x===9792||x===9794||x===9824||x===9825||x>=9827&&x<=9829||x>=9831&&x<=9834||x===9836||x===9837||x===9839||x===9886||x===9887||x===9919||x>=9926&&x<=9933||x>=9935&&x<=9939||x>=9941&&x<=9953||x===9955||x===9960||x===9961||x>=9963&&x<=9969||x===9972||x>=9974&&x<=9977||x===9979||x===9980||x===9982||x===9983||x===10045||x>=10102&&x<=10111||x>=11094&&x<=11097||x>=12872&&x<=12879||x>=57344&&x<=63743||x>=65024&&x<=65039||x===65533||x>=127232&&x<=127242||x>=127248&&x<=127277||x>=127280&&x<=127337||x>=127344&&x<=127373||x===127375||x===127376||x>=127387&&x<=127404||x>=917760&&x<=917999||x>=983040&&x<=1048573||x>=1048576&&x<=1114109,"isAmbiguous"),isFullWidth=__name(x=>x===12288||x>=65281&&x<=65376||x>=65504&&x<=65510,"isFullWidth"),isWide=__name(x=>x>=4352&&x<=4447||x===8986||x===8987||x===9001||x===9002||x>=9193&&x<=9196||x===9200||x===9203||x===9725||x===9726||x===9748||x===9749||x>=9800&&x<=9811||x===9855||x===9875||x===9889||x===9898||x===9899||x===9917||x===9918||x===9924||x===9925||x===9934||x===9940||x===9962||x===9970||x===9971||x===9973||x===9978||x===9981||x===9989||x===9994||x===9995||x===10024||x===10060||x===10062||x>=10067&&x<=10069||x===10071||x>=10133&&x<=10135||x===10160||x===10175||x===11035||x===11036||x===11088||x===11093||x>=11904&&x<=11929||x>=11931&&x<=12019||x>=12032&&x<=12245||x>=12272&&x<=12287||x>=12289&&x<=12350||x>=12353&&x<=12438||x>=12441&&x<=12543||x>=12549&&x<=12591||x>=12593&&x<=12686||x>=12688&&x<=12771||x>=12783&&x<=12830||x>=12832&&x<=12871||x>=12880&&x<=19903||x>=19968&&x<=42124||x>=42128&&x<=42182||x>=43360&&x<=43388||x>=44032&&x<=55203||x>=63744&&x<=64255||x>=65040&&x<=65049||x>=65072&&x<=65106||x>=65108&&x<=65126||x>=65128&&x<=65131||x>=94176&&x<=94180||x===94192||x===94193||x>=94208&&x<=100343||x>=100352&&x<=101589||x>=101632&&x<=101640||x>=110576&&x<=110579||x>=110581&&x<=110587||x===110589||x===110590||x>=110592&&x<=110882||x===110898||x>=110928&&x<=110930||x===110933||x>=110948&&x<=110951||x>=110960&&x<=111355||x===126980||x===127183||x===127374||x>=127377&&x<=127386||x>=127488&&x<=127490||x>=127504&&x<=127547||x>=127552&&x<=127560||x===127568||x===127569||x>=127584&&x<=127589||x>=127744&&x<=127776||x>=127789&&x<=127797||x>=127799&&x<=127868||x>=127870&&x<=127891||x>=127904&&x<=127946||x>=127951&&x<=127955||x>=127968&&x<=127984||x===127988||x>=127992&&x<=128062||x===128064||x>=128066&&x<=128252||x>=128255&&x<=128317||x>=128331&&x<=128334||x>=128336&&x<=128359||x===128378||x===128405||x===128406||x===128420||x>=128507&&x<=128591||x>=128640&&x<=128709||x===128716||x>=128720&&x<=128722||x>=128725&&x<=128727||x>=128732&&x<=128735||x===128747||x===128748||x>=128756&&x<=128764||x>=128992&&x<=129003||x===129008||x>=129292&&x<=129338||x>=129340&&x<=129349||x>=129351&&x<=129535||x>=129648&&x<=129660||x>=129664&&x<=129672||x>=129680&&x<=129725||x>=129727&&x<=129733||x>=129742&&x<=129755||x>=129760&&x<=129768||x>=129776&&x<=129784||x>=131072&&x<=196605||x>=196608&&x<=262141,"isWide")}});var ANSI_RE,CONTROL_RE,TAB_RE,EMOJI_RE,LATIN_RE,MODIFIER_RE,NO_TRUNCATION,getStringTruncatedWidth,dist_default,init_dist3=__esm({"../../node_modules/.pnpm/fast-string-truncated-width@1.2.1/node_modules/fast-string-truncated-width/dist/index.js"(){init_utils();ANSI_RE=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,CONTROL_RE=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,TAB_RE=/\t{1,1000}/y,EMOJI_RE=new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*","yu"),LATIN_RE=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,MODIFIER_RE=new RegExp("\\p{M}+","gu"),NO_TRUNCATION={limit:1/0,ellipsis:""},getStringTruncatedWidth=__name((input,truncationOptions={},widthOptions={})=>{let LIMIT=truncationOptions.limit??1/0,ELLIPSIS=truncationOptions.ellipsis??"",ELLIPSIS_WIDTH=truncationOptions?.ellipsisWidth??(ELLIPSIS?getStringTruncatedWidth(ELLIPSIS,NO_TRUNCATION,widthOptions).width:0),ANSI_WIDTH=widthOptions.ansiWidth??0,CONTROL_WIDTH=widthOptions.controlWidth??0,TAB_WIDTH=widthOptions.tabWidth??8,AMBIGUOUS_WIDTH=widthOptions.ambiguousWidth??1,EMOJI_WIDTH=widthOptions.emojiWidth??2,FULL_WIDTH_WIDTH=widthOptions.fullWidthWidth??2,REGULAR_WIDTH=widthOptions.regularWidth??1,WIDE_WIDTH=widthOptions.wideWidth??2,indexPrev=0,index2=0,length=input.length,lengthExtra=0,truncationEnabled=!1,truncationIndex=length,truncationLimit=Math.max(0,LIMIT-ELLIPSIS_WIDTH),unmatchedStart=0,unmatchedEnd=0,width=0,widthExtra=0;outer:for(;;){if(unmatchedEnd>unmatchedStart||index2>=length&&index2>indexPrev){let unmatched=input.slice(unmatchedStart,unmatchedEnd)||input.slice(indexPrev,index2);lengthExtra=0;for(let char of unmatched.replaceAll(MODIFIER_RE,"")){let codePoint=char.codePointAt(0)||0;if(isFullWidth(codePoint)?widthExtra=FULL_WIDTH_WIDTH:isWide(codePoint)?widthExtra=WIDE_WIDTH:AMBIGUOUS_WIDTH!==REGULAR_WIDTH&&isAmbiguous(codePoint)?widthExtra=AMBIGUOUS_WIDTH:widthExtra=REGULAR_WIDTH,width+widthExtra>truncationLimit&&(truncationIndex=Math.min(truncationIndex,Math.max(unmatchedStart,indexPrev)+lengthExtra)),width+widthExtra>LIMIT){truncationEnabled=!0;break outer}lengthExtra+=char.length,width+=widthExtra}unmatchedStart=unmatchedEnd=0}if(index2>=length)break;if(LATIN_RE.lastIndex=index2,LATIN_RE.test(input)){if(lengthExtra=LATIN_RE.lastIndex-index2,widthExtra=lengthExtra*REGULAR_WIDTH,width+widthExtra>truncationLimit&&(truncationIndex=Math.min(truncationIndex,index2+Math.floor((truncationLimit-width)/REGULAR_WIDTH))),width+widthExtra>LIMIT){truncationEnabled=!0;break}width+=widthExtra,unmatchedStart=indexPrev,unmatchedEnd=index2,index2=indexPrev=LATIN_RE.lastIndex;continue}if(ANSI_RE.lastIndex=index2,ANSI_RE.test(input)){if(width+ANSI_WIDTH>truncationLimit&&(truncationIndex=Math.min(truncationIndex,index2)),width+ANSI_WIDTH>LIMIT){truncationEnabled=!0;break}width+=ANSI_WIDTH,unmatchedStart=indexPrev,unmatchedEnd=index2,index2=indexPrev=ANSI_RE.lastIndex;continue}if(CONTROL_RE.lastIndex=index2,CONTROL_RE.test(input)){if(lengthExtra=CONTROL_RE.lastIndex-index2,widthExtra=lengthExtra*CONTROL_WIDTH,width+widthExtra>truncationLimit&&(truncationIndex=Math.min(truncationIndex,index2+Math.floor((truncationLimit-width)/CONTROL_WIDTH))),width+widthExtra>LIMIT){truncationEnabled=!0;break}width+=widthExtra,unmatchedStart=indexPrev,unmatchedEnd=index2,index2=indexPrev=CONTROL_RE.lastIndex;continue}if(TAB_RE.lastIndex=index2,TAB_RE.test(input)){if(lengthExtra=TAB_RE.lastIndex-index2,widthExtra=lengthExtra*TAB_WIDTH,width+widthExtra>truncationLimit&&(truncationIndex=Math.min(truncationIndex,index2+Math.floor((truncationLimit-width)/TAB_WIDTH))),width+widthExtra>LIMIT){truncationEnabled=!0;break}width+=widthExtra,unmatchedStart=indexPrev,unmatchedEnd=index2,index2=indexPrev=TAB_RE.lastIndex;continue}if(EMOJI_RE.lastIndex=index2,EMOJI_RE.test(input)){if(width+EMOJI_WIDTH>truncationLimit&&(truncationIndex=Math.min(truncationIndex,index2)),width+EMOJI_WIDTH>LIMIT){truncationEnabled=!0;break}width+=EMOJI_WIDTH,unmatchedStart=indexPrev,unmatchedEnd=index2,index2=indexPrev=EMOJI_RE.lastIndex;continue}index2+=1}return{width:truncationEnabled?truncationLimit:width,index:truncationEnabled?truncationIndex:length,truncated:truncationEnabled,ellipsed:truncationEnabled&&LIMIT>=ELLIPSIS_WIDTH}},"getStringTruncatedWidth"),dist_default=getStringTruncatedWidth}});var NO_TRUNCATION2,fastStringWidth,dist_default2,init_dist4=__esm({"../../node_modules/.pnpm/fast-string-width@1.1.0/node_modules/fast-string-width/dist/index.js"(){init_dist3();NO_TRUNCATION2={limit:1/0,ellipsis:"",ellipsisWidth:0},fastStringWidth=__name((input,options={})=>dist_default(input,NO_TRUNCATION2,options).width,"fastStringWidth"),dist_default2=fastStringWidth}});function wrapAnsi(string,columns,options){return String(string).normalize().split(CRLF_OR_LF).map(line=>exec(line,columns,options)).join(`
210
210
  `)}var ESC,CSI,END_CODE,ANSI_ESCAPE_BELL,ANSI_CSI,ANSI_OSC,ANSI_SGR_TERMINATOR,ANSI_ESCAPE_LINK,GROUP_REGEX,getClosingCode,wrapAnsiCode,wrapAnsiHyperlink,wrapWord,stringVisibleTrimSpacesRight,exec,CRLF_OR_LF,init_main=__esm({"../../node_modules/.pnpm/fast-wrap-ansi@0.1.6/node_modules/fast-wrap-ansi/lib/main.js"(){init_dist4();ESC="\x1B",CSI="\x9B",END_CODE=39,ANSI_ESCAPE_BELL="\x07",ANSI_CSI="[",ANSI_OSC="]",ANSI_SGR_TERMINATOR="m",ANSI_ESCAPE_LINK=`${ANSI_OSC}8;;`,GROUP_REGEX=new RegExp(`(?:\\${ANSI_CSI}(?<code>\\d+)m|\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`,"y"),getClosingCode=__name(openingCode=>{if(openingCode>=30&&openingCode<=37||openingCode>=90&&openingCode<=97)return 39;if(openingCode>=40&&openingCode<=47||openingCode>=100&&openingCode<=107)return 49;if(openingCode===1||openingCode===2)return 22;if(openingCode===3)return 23;if(openingCode===4)return 24;if(openingCode===7)return 27;if(openingCode===8)return 28;if(openingCode===9)return 29;if(openingCode===0)return 0},"getClosingCode"),wrapAnsiCode=__name(code2=>`${ESC}${ANSI_CSI}${code2}${ANSI_SGR_TERMINATOR}`,"wrapAnsiCode"),wrapAnsiHyperlink=__name(url=>`${ESC}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`,"wrapAnsiHyperlink"),wrapWord=__name((rows,word,columns)=>{let characters=word[Symbol.iterator](),isInsideEscape=!1,isInsideLinkEscape=!1,lastRow=rows.at(-1),visible=lastRow===void 0?0:dist_default2(lastRow),currentCharacter=characters.next(),nextCharacter=characters.next(),rawCharacterIndex=0;for(;!currentCharacter.done;){let character=currentCharacter.value,characterLength=dist_default2(character);visible+characterLength<=columns?rows[rows.length-1]+=character:(rows.push(character),visible=0),(character===ESC||character===CSI)&&(isInsideEscape=!0,isInsideLinkEscape=word.startsWith(ANSI_ESCAPE_LINK,rawCharacterIndex+1)),isInsideEscape?isInsideLinkEscape?character===ANSI_ESCAPE_BELL&&(isInsideEscape=!1,isInsideLinkEscape=!1):character===ANSI_SGR_TERMINATOR&&(isInsideEscape=!1):(visible+=characterLength,visible===columns&&!nextCharacter.done&&(rows.push(""),visible=0)),currentCharacter=nextCharacter,nextCharacter=characters.next(),rawCharacterIndex+=character.length}lastRow=rows.at(-1),!visible&&lastRow!==void 0&&lastRow.length&&rows.length>1&&(rows[rows.length-2]+=rows.pop())},"wrapWord"),stringVisibleTrimSpacesRight=__name(string=>{let words=string.split(" "),last2=words.length;for(;last2&&!dist_default2(words[last2-1]);)last2--;return last2===words.length?string:words.slice(0,last2).join(" ")+words.slice(last2).join("")},"stringVisibleTrimSpacesRight"),exec=__name((string,columns,options={})=>{if(options.trim!==!1&&string.trim()==="")return"";let returnValue="",escapeCode,escapeUrl,words=string.split(" "),rows=[""],rowLength=0;for(let index2=0;index2<words.length;index2++){let word=words[index2];if(options.trim!==!1){let row2=rows.at(-1)??"",trimmed=row2.trimStart();row2.length!==trimmed.length&&(rows[rows.length-1]=trimmed,rowLength=dist_default2(trimmed))}index2!==0&&(rowLength>=columns&&(options.wordWrap===!1||options.trim===!1)&&(rows.push(""),rowLength=0),(rowLength||options.trim===!1)&&(rows[rows.length-1]+=" ",rowLength++));let wordLength=dist_default2(word);if(options.hard&&wordLength>columns){let remainingColumns=columns-rowLength,breaksStartingThisLine=1+Math.floor((wordLength-remainingColumns-1)/columns);Math.floor((wordLength-1)/columns)<breaksStartingThisLine&&rows.push(""),wrapWord(rows,word,columns),rowLength=dist_default2(rows.at(-1)??"");continue}if(rowLength+wordLength>columns&&rowLength&&wordLength){if(options.wordWrap===!1&&rowLength<columns){wrapWord(rows,word,columns),rowLength=dist_default2(rows.at(-1)??"");continue}rows.push(""),rowLength=0}if(rowLength+wordLength>columns&&options.wordWrap===!1){wrapWord(rows,word,columns),rowLength=dist_default2(rows.at(-1)??"");continue}rows[rows.length-1]+=word,rowLength+=wordLength}options.trim!==!1&&(rows=rows.map(row2=>stringVisibleTrimSpacesRight(row2)));let preString=rows.join(`
211
211
  `),inSurrogate=!1;for(let i=0;i<preString.length;i++){let character=preString[i];if(returnValue+=character,!inSurrogate)inSurrogate=character>="\uD800"&&character<="\uDBFF";else continue;if(character===ESC||character===CSI){GROUP_REGEX.lastIndex=i+1;let groups=GROUP_REGEX.exec(preString)?.groups;if(groups?.code!==void 0){let code2=Number.parseFloat(groups.code);escapeCode=code2===END_CODE?void 0:code2}else groups?.uri!==void 0&&(escapeUrl=groups.uri.length===0?void 0:groups.uri)}if(preString[i+1]===`
@@ -219,13 +219,13 @@ ${block.code}
219
219
  `).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(`
220
220
  `);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(`
221
221
  `).slice(o);this.output.write(a.join(`
222
- `)),this._prevFrame=t2;return}}this.output.write(import_sisteransi.erase.down())}this.output.write(t2),this.state==="initial"&&(this.state="active"),this._prevFrame=t2}}},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})}},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()})}},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";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"}var import_sisteransi2,ee,w2,_e,oe,ue,F,le,d2,E2,Ie,Ee,z112,H2,te,U,J,xe,se,ce,Ge,$e,de,Oe,he,pe,me,ge,V2,ye,et2,Y2,ot2,O2,pt,mt,ft,vt,wt,bt,Ve,re,_t,je,Ot,init_dist6=__esm({"../../node_modules/.pnpm/@clack+prompts@1.2.0/node_modules/@clack/prompts/dist/index.mjs"(){init_dist5();init_dist5();init_main();init_dist4();import_sisteransi2=__toESM(require_src(),1);__name(Ze,"Ze");ee=Ze(),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"),z112=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(`
222
+ `)),this._prevFrame=t2;return}}this.output.write(import_sisteransi.erase.down())}this.output.write(t2),this.state==="initial"&&(this.state="active"),this._prevFrame=t2}}},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})}},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()})}},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";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"}var import_sisteransi2,ee,w2,_e,oe,ue,F,le,d2,E2,Ie,Ee,z113,H2,te,U,J,xe,se,ce,Ge,$e,de,Oe,he,pe,me,ge,V2,ye,et2,Y2,ot2,O2,pt,mt,ft,vt,wt,bt,Ve,re,_t,je,Ot,init_dist6=__esm({"../../node_modules/.pnpm/@clack+prompts@1.2.0/node_modules/@clack/prompts/dist/index.mjs"(){init_dist5();init_dist5();init_main();init_dist4();import_sisteransi2=__toESM(require_src(),1);__name(Ze,"Ze");ee=Ze(),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"),z113=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(`
223
223
  `);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"),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)}
224
224
  `:""}${o}
225
225
  `,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?`
226
- ${t("gray",d2)}`:""}`}default:{let l=r?`${t("cyan",d2)} `:"",$2=r?t("cyan",E2):"";return`${c2}${l}${this.value?`${t("green",z112)} ${i}`:`${t("dim",H2)} ${t("dim",i)}`}${e.vertical?r?`
226
+ ${t("gray",d2)}`:""}`}default:{let l=r?`${t("cyan",d2)} `:"",$2=r?t("cyan",E2):"";return`${c2}${l}${this.value?`${t("green",z113)} ${i}`:`${t("dim",H2)} ${t("dim",i)}`}${e.vertical?r?`
227
227
  ${t("cyan",d2)} `:`
228
- `:` ${t("dim","/")} `}${this.value?`${t("dim",H2)} ${t("dim",s)}`:`${t("green",z112)} ${s}`}
228
+ `:` ${t("dim","/")} `}${this.value?`${t("dim",H2)} ${t("dim",s)}`:`${t("green",z113)} ${s}`}
229
229
  ${$2}
230
230
  `}}}}).prompt()},"ot"),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(`
231
231
  `);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(`
@@ -251,7 +251,7 @@ ${o}
251
251
  `}}}}).prompt(),"bt"),Ve={light:w2("\u2500","-"),heavy:w2("\u2501","="),block:w2("\u2588","#")},re=__name((e,i)=>e.includes(`
252
252
  `)?e.split(`
253
253
  `).map(s=>i(s)).join(`
254
- `):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",z112)} ${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)}
254
+ `):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",z113)} ${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)}
255
255
  `:""}${n}
256
256
  `;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?`
257
257
  ${t("gray",d2)}`:""}`}default:{let c2=s?`${t("cyan",d2)} `:"",a=s?t("cyan",E2):"",l=o.split(`
@@ -374,7 +374,7 @@ return __eta.res;
374
374
  `)}}return returnStr}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)}function replaceChar(s){return escMap[s]}function XMLEscape(str){let newStr=String(str);return/[&<>"']/.test(newStr)?newStr.replace(/[&<>"']/g,replaceChar):newStr}function escapeRegExp(string){return string.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function getLineNo(str,index2){return str.slice(0,index2).split(`
375
375
  `).length}function parse6(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,`
376
376
  `).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}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+"'")}}function render(template,data2,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,data2,options)}function renderAsync(template,data2,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,data2,options);return Promise.resolve(res)}function renderString(template,data2){let templateFn=this.compile(template,{async:!1});return render.call(this,templateFn,data2)}function renderStringAsync(template,data2){let templateFn=this.compile(template,{async:!0});return renderAsync.call(this,templateFn,data2)}function readFile2(path53){let res="";try{res=fs18.readFileSync(path53,"utf8")}catch(err){throw err?.code==="ENOENT"?new EtaFileResolutionError(`Could not find template: ${path53}`):err}return res}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+=path21.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=path21.join(views,formattedPath)}else resolvedFilePath=path21.join(path21.dirname(baseFilePath),templatePath2)}else resolvedFilePath=path21.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`)}function dirIsChild(parent2,dir){let relative3=path21.relative(parent2,dir);return relative3&&!relative3.startsWith("..")&&!path21.isAbsolute(relative3)}var Cacher,EtaError,EtaParseError,EtaRuntimeError,EtaFileResolutionError,EtaNameResolutionError,AsyncFunction,escMap,defaultConfig2,templateLitReg,singleQuoteReg,doubleQuoteReg,Eta$1,absolutePathRegExp,Eta,init_eta_module=__esm({"../../node_modules/.pnpm/eta@3.5.0/node_modules/eta/dist/eta.module.mjs"(){Cacher=class{static{__name(this,"Cacher")}constructor(cache){this.cache=void 0,this.cache=cache}define(key,val2){this.cache[key]=val2}get(key){return this.cache[key]}remove(key){delete this.cache[key]}reset(){this.cache={}}load(cacheObj){this.cache={...this.cache,...cacheObj}}},EtaError=class extends Error{static{__name(this,"EtaError")}constructor(message){super(message),this.name="Eta Error"}},EtaParseError=class extends EtaError{static{__name(this,"EtaParseError")}constructor(message){super(message),this.name="EtaParser Error"}},EtaRuntimeError=class extends EtaError{static{__name(this,"EtaRuntimeError")}constructor(message){super(message),this.name="EtaRuntime Error"}},EtaFileResolutionError=class extends EtaError{static{__name(this,"EtaFileResolutionError")}constructor(message){super(message),this.name="EtaFileResolution Error"}},EtaNameResolutionError=class extends EtaError{static{__name(this,"EtaNameResolutionError")}constructor(message){super(message),this.name="EtaNameResolution Error"}};__name(ParseErr,"ParseErr");__name(RuntimeErr,"RuntimeErr");AsyncFunction=async function(){}.constructor;__name(compile,"compile");__name(compileToString,"compileToString");__name(compileBody,"compileBody");__name(trimWS,"trimWS");escMap={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};__name(replaceChar,"replaceChar");__name(XMLEscape,"XMLEscape");defaultConfig2={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,debug:!1,escapeFunction:XMLEscape,filterFunction:__name(val2=>String(val2),"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;__name(escapeRegExp,"escapeRegExp");__name(getLineNo,"getLineNo");__name(parse6,"parse");__name(handleCache,"handleCache");__name(render,"render");__name(renderAsync,"renderAsync");__name(renderString,"renderString");__name(renderStringAsync,"renderStringAsync");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=parse6,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)}}};__name(readFile2,"readFile");__name(resolvePath2,"resolvePath");__name(dirIsChild,"dirIsChild");absolutePathRegExp=/^\\|^\//,Eta=class extends Eta$1{static{__name(this,"Eta")}constructor(...args){super(...args),this.readFile=readFile2,this.resolvePath=resolvePath2}}}});import{existsSync as existsSync3}from"node:fs";import{dirname as dirname3,resolve as resolve3}from"node:path";import{fileURLToPath as fileURLToPath4}from"node:url";function assetPath(...segments){return resolve3(PACKAGE_ROOT2,"assets",...segments)}var HERE,IS_BUNDLED,PACKAGE_ROOT2,init_assets2=__esm({"src/scripts/utils/assets.ts"(){HERE=dirname3(fileURLToPath4(import.meta.url)),IS_BUNDLED=existsSync3(resolve3(HERE,"bundle.json")),PACKAGE_ROOT2=IS_BUNDLED?resolve3(HERE,"..",".."):resolve3(HERE,"..","..","..");__name(assetPath,"assetPath")}});import{existsSync as existsSync4,mkdirSync as mkdirSync2,readFileSync as readFileSync4,readdirSync as readdirSync2,unlinkSync,writeFileSync as writeFileSync2}from"node:fs";import{dirname as dirname4,join as join5,resolve as resolve4}from"node:path";function getFormFiles(formsDir){return existsSync4(formsDir)?readdirSync2(formsDir).filter(f=>f.endsWith(".json")).map(f=>join5(formsDir,f)):[]}function readForm(path53){try{return JSON.parse(readFileSync4(path53,"utf-8"))}catch{return null}}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(`
377
- `)}function frameworkFormsTarget(framework){return framework==="nextjs"?"next":framework==="astro"?"astro":framework==="sveltekit"?"sveltekit":null}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(!existsSync4(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}}function requiredFormEntries(target){return target==="next"?["fimo/forms","fimo-next","fimo-next/client"]:target==="sveltekit"?["fimo/forms","fimo-sveltekit"]:["fimo/forms",`fimo/${target}`]}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.`)}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"}]:[]}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)},files=target?outputFiles:[{suffix:".ts",runtimeImport:"",clientDirective:""}];for(let output of files){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(existsSync4(dir)||mkdirSync2(dir,{recursive:!0}),!existsSync4(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);(!existsSync4(indexPath)||readFileSync4(indexPath,"utf-8")!==indexContent)&&(writeFileSync2(indexPath,indexContent,"utf-8"),log(`Updated: ${indexPath}`))}if(existsSync4(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}}var FORMS_REL,init_sync_forms=__esm({"src/scripts/sync-forms.ts"(){init_dist8();init_eta_module();init_assets2();FORMS_REL="src/forms";__name(getFormFiles,"getFormFiles");__name(readForm,"readForm");__name(generateIndexContent,"generateIndexContent");__name(frameworkFormsTarget,"frameworkFormsTarget");__name(hasPackageExport,"hasPackageExport");__name(requiredFormEntries,"requiredFormEntries");__name(assertFrameworkRuntime,"assertFrameworkRuntime");__name(generatedFormFiles,"generatedFormFiles");__name(syncForms,"syncForms")}});import{existsSync as existsSync5,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 z114}from"zod";function getSchemaFiles(schemasDir){return existsSync5(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".json")).sort().map(f=>join6(schemasDir,f)):[]}function getGeneratedFiles(schemasDir){return existsSync5(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".ts")&&f!=="index.ts").map(f=>join6(schemasDir,f)):[]}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}function isVersionAtLeast(version,minimum){let parsed=parseVersion(version),parsedMinimum=parseVersion(minimum);if(!parsed||!parsedMinimum)return!1;for(let index2=0;index2<parsed.parts.length;index2++)if(parsed.parts[index2]!==parsedMinimum.parts[index2])return parsed.parts[index2]>parsedMinimum.parts[index2];return!parsed.prerelease||parsedMinimum.prerelease}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))}function readProjectPackage(cwd,name){let packagePath=join6(cwd,"node_modules",name,"package.json");if(!existsSync5(packagePath))return null;try{return JSON.parse(readFileSync5(packagePath,"utf-8"))}catch{return null}}function resolveProjectRuntime(cwd){let packagePath=join6(cwd,"node_modules","fimo","package.json");if(!existsSync5(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"),"."),providesNextRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),".")&&packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),"./client"),providesAstroRuntime:packageExportsSubpath(packageJson,"./astro"),providesSvelteKitRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-sveltekit"),".")}}function contentRuntimeImportFor(framework,runtime){return framework==="nextjs"?"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"}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)}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.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"?"next":runtimeImport==="fimo/astro"?"astro":"sveltekit"}function templatesForTarget(target,runtime,runtimeImport){return target==="next"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo-next"},{suffix:".ts",path:templatePath(runtime,"nextServer"),runtimeImport:"fimo-next"},{suffix:".client.ts",path:templatePath(runtime,"nextClient"),runtimeImport:"fimo-next/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}]}function loadSchemas(schemaFiles){let errors=[],schemas3=[],outputOwners=new Map,registryOwners=new Map;for(let path53 of schemaFiles){let fileUid=basename(path53,".json"),pascal=pascalCase(fileUid),existingOwner=outputOwners.get(pascal);existingOwner&&existingOwner!==fileUid?errors.push(`${basename(path53)} 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(path53,"utf-8"))}catch(error){errors.push(`${basename(path53)} is invalid JSON: ${error instanceof Error?error.message:String(error)}`);continue}if(typeof parsed!="object"||parsed===null||Array.isArray(parsed)){errors.push(`${basename(path53)} must contain a JSON object.`);continue}let candidate=parsed;if(typeof candidate.uid!="string"||candidate.uid.length===0){errors.push(`${basename(path53)} is missing "uid". Set it to "${fileUid}".`);continue}if(candidate.uid!==fileUid){errors.push(`${basename(path53)} 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(issue=>`${issue.path.join(".")||"schema"}: ${issue.message}`).join("; ");errors.push(`${basename(path53)} 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(path53)} 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:
377
+ `)}function frameworkFormsTarget(framework){return framework==="nextjs"?"next":framework==="astro"?"astro":framework==="sveltekit"?"sveltekit":null}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(!existsSync4(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}}function requiredFormEntries(target){return target==="next"?["fimo/forms","fimo-next","fimo-next/client"]:target==="sveltekit"?["fimo/forms","fimo-sveltekit"]:["fimo/forms",`fimo/${target}`]}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.`)}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"}]:[]}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)},files=target?outputFiles:[{suffix:".ts",runtimeImport:"",clientDirective:""}];for(let output of files){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(existsSync4(dir)||mkdirSync2(dir,{recursive:!0}),!existsSync4(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);(!existsSync4(indexPath)||readFileSync4(indexPath,"utf-8")!==indexContent)&&(writeFileSync2(indexPath,indexContent,"utf-8"),log(`Updated: ${indexPath}`))}if(existsSync4(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}}var FORMS_REL,init_sync_forms=__esm({"src/scripts/sync-forms.ts"(){init_dist8();init_eta_module();init_assets2();FORMS_REL="src/forms";__name(getFormFiles,"getFormFiles");__name(readForm,"readForm");__name(generateIndexContent,"generateIndexContent");__name(frameworkFormsTarget,"frameworkFormsTarget");__name(hasPackageExport,"hasPackageExport");__name(requiredFormEntries,"requiredFormEntries");__name(assertFrameworkRuntime,"assertFrameworkRuntime");__name(generatedFormFiles,"generatedFormFiles");__name(syncForms,"syncForms")}});import{existsSync as existsSync5,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 z115}from"zod";function getSchemaFiles(schemasDir){return existsSync5(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".json")).sort().map(f=>join6(schemasDir,f)):[]}function getGeneratedFiles(schemasDir){return existsSync5(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".ts")&&f!=="index.ts").map(f=>join6(schemasDir,f)):[]}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}function isVersionAtLeast(version,minimum){let parsed=parseVersion(version),parsedMinimum=parseVersion(minimum);if(!parsed||!parsedMinimum)return!1;for(let index2=0;index2<parsed.parts.length;index2++)if(parsed.parts[index2]!==parsedMinimum.parts[index2])return parsed.parts[index2]>parsedMinimum.parts[index2];return!parsed.prerelease||parsedMinimum.prerelease}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))}function readProjectPackage(cwd,name){let packagePath=join6(cwd,"node_modules",name,"package.json");if(!existsSync5(packagePath))return null;try{return JSON.parse(readFileSync5(packagePath,"utf-8"))}catch{return null}}function resolveProjectRuntime(cwd){let packagePath=join6(cwd,"node_modules","fimo","package.json");if(!existsSync5(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"),"."),providesNextRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),".")&&packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),"./client"),providesAstroRuntime:packageExportsSubpath(packageJson,"./astro"),providesSvelteKitRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-sveltekit"),".")}}function contentRuntimeImportFor(framework,runtime){return framework==="nextjs"?"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"}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)}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.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"?"next":runtimeImport==="fimo/astro"?"astro":"sveltekit"}function templatesForTarget(target,runtime,runtimeImport){return target==="next"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo-next"},{suffix:".ts",path:templatePath(runtime,"nextServer"),runtimeImport:"fimo-next"},{suffix:".client.ts",path:templatePath(runtime,"nextClient"),runtimeImport:"fimo-next/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}]}function loadSchemas(schemaFiles){let errors=[],schemas3=[],outputOwners=new Map,registryOwners=new Map;for(let path53 of schemaFiles){let fileUid=basename(path53,".json"),pascal=pascalCase(fileUid),existingOwner=outputOwners.get(pascal);existingOwner&&existingOwner!==fileUid?errors.push(`${basename(path53)} 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(path53,"utf-8"))}catch(error){errors.push(`${basename(path53)} is invalid JSON: ${error instanceof Error?error.message:String(error)}`);continue}if(typeof parsed!="object"||parsed===null||Array.isArray(parsed)){errors.push(`${basename(path53)} must contain a JSON object.`);continue}let candidate=parsed;if(typeof candidate.uid!="string"||candidate.uid.length===0){errors.push(`${basename(path53)} is missing "uid". Set it to "${fileUid}".`);continue}if(candidate.uid!==fileUid){errors.push(`${basename(path53)} 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(issue=>`${issue.path.join(".")||"schema"}: ${issue.message}`).join("; ");errors.push(`${basename(path53)} 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(path53)} 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:
378
378
  - ${errors.join(`
379
379
  - `)}
380
380
  No generated files were changed.`);return schemas3}function renderContentRegistry(schemas3){let imports=schemas3.map(({pascal})=>`import * as ${pascal} from "./${pascal}";`).join(`
@@ -387,7 +387,7 @@ ${imports}
387
387
  export const content = {
388
388
  ${entries2}
389
389
  } as const;
390
- `}function normalizeFields(fields){return Object.fromEntries(Object.entries(fields).map(([key,value])=>{if(!value||typeof value!="object"||Array.isArray(value))return[key,{type:void 0}];let field=value,target=typeof field.target=="string"?field.target:void 0,targets=Array.isArray(field.targets)?field.targets.filter(candidate=>typeof candidate=="string"):void 0;return[key,{...field,type:typeof field.type=="string"?field.type:void 0,target,targetPascal:target?pascalCase(target):void 0,targets:targets&&targets.length>0?targets:void 0,targetRefs:targets&&targets.length>0?targets.map(candidate=>({uid:candidate,pascal:pascalCase(candidate)})):void 0,many:typeof field.many=="boolean"?field.many:void 0,multiple:typeof field.multiple=="boolean"?field.multiple:void 0}]}))}function referenceImportsFor(schema,fields){let imports=new Map;for(let field of Object.values(fields)){if(field.type!=="reference")continue;let targets=field.targets??(field.target?[field.target]:[]);for(let target of targets)target!==schema.uid&&imports.set(target,{uid:target,pascal:pascalCase(target)})}return[...imports.values()].sort((a,b)=>a.pascal.localeCompare(b.pascal))}function collectFieldRuntimeTypeImports(field,imports){if(!field||typeof field!="object"||Array.isArray(field))return;let definition=field;switch(definition.type){case"boolean":imports.add("FimoBoolean");return;case"media":imports.add("FimoMedia");return;case"reference":imports.add(Array.isArray(definition.targets)&&definition.targets.length>0?"FimoPolymorphicReference":"FimoReference");return;case"richtext":imports.add("FimoRichText"),imports.add("FimoRichTextContent");return;case"blocks":{let schema=definition.schema;if(!schema||typeof schema!="object"||Array.isArray(schema))return;let blockSchema=schema,fieldGroups=Array.isArray(blockSchema.oneOf)?blockSchema.oneOf.map(variant=>variant&&typeof variant=="object"&&!Array.isArray(variant)?variant.fields:void 0):[blockSchema.fields];for(let fields of fieldGroups)if(!(!fields||typeof fields!="object"||Array.isArray(fields)))for(let nestedField of Object.values(fields))collectFieldRuntimeTypeImports(nestedField,imports);return}default:return}}function runtimeTypeImportsFor(fields){let imports=new Set(["Fields","FimoString","Populate","PopulatedResult","ProjectedWithPopulate","Query","Sort","Where","WithReferences"]);for(let field of Object.values(fields))collectFieldRuntimeTypeImports(field,imports);return RUNTIME_TYPE_IMPORT_ORDER.filter(typeImport=>imports.has(typeImport))}function schemaToModel(schema,localizedByUid){let fields=normalizeFields(schema.fields??{});return{uid:schema.uid,pascal:pascalCase(schema.uid),isSingleton:schema.isSingleton??!1,localized:schema.i18n?.enabled!==!1,localizedReferenceFields:Object.entries(fields).filter(([,field])=>field.type!=="reference"?!1:(field.targets??(field.target?[field.target]:[])).some(target=>localizedByUid.get(target)!==!1)).map(([fieldName])=>fieldName),fields,referenceImports:referenceImportsFor(schema,fields),runtimeTypeImports:runtimeTypeImportsFor(fields)}}function syncSchemas(options){let cwd=options.cwd??process.cwd(),log=__name(msg=>{options.verbose!==!1&&console.log(msg)},"log"),schemasDir=resolve5(cwd,SCHEMAS_REL),registryPath=join6(schemasDir,"index.ts"),schemaFiles=getSchemaFiles(schemasDir),schemas3=loadSchemas(schemaFiles),generatedFilesOnDisk=getGeneratedFiles(schemasDir),runtime=schemas3.length>0||generatedFilesOnDisk.length>0?resolveProjectRuntime(cwd):null,runtimeImport=runtime?contentRuntimeImportFor(options.framework,runtime):"fimo-react",generationTarget=runtime?resolveSchemaGenerationTarget(runtimeImport,runtime):null,needsContentRegistry=(generationTarget==="next"||generationTarget==="sveltekit")&&schemas3.length>0,ownsExistingRegistry=existsSync5(registryPath)&&readFileSync5(registryPath,"utf-8").startsWith(GENERATED_REGISTRY_MARKER),shouldGenerateRegistry=needsContentRegistry&&(!existsSync5(registryPath)||ownsExistingRegistry);needsContentRegistry&&!shouldGenerateRegistry&&log(`Kept project-owned schema barrel: ${registryPath}`);let loadedTemplates=(generationTarget&&runtime?templatesForTarget(generationTarget,runtime,runtimeImport):[]).map(template=>({...template,source:readFileSync5(template.path,"utf-8")})),eta=new Eta({views:void 0,useWith:!0,varName:"it",autoEscape:!1}),localizedByUid=new Map(schemas3.map(({schema})=>[schema.uid,schema.i18n?.enabled!==!1])),expectedTsFiles=new Set,generatedFiles=new Map,created=0,updated=0,deleted=0;for(let{pascal,schema}of schemas3){let model=schemaToModel(schema,localizedByUid);for(let template of loadedTemplates){let tsPath=join6(schemasDir,`${pascal}${template.suffix}`);expectedTsFiles.add(tsPath),generatedFiles.set(tsPath,eta.renderString(template.source,{model,runtimeImport:template.runtimeImport}))}}shouldGenerateRegistry&&(expectedTsFiles.add(registryPath),generatedFiles.set(registryPath,renderContentRegistry(schemas3)));for(let[tsPath,content2]of generatedFiles){let dir=dirname5(tsPath);if(existsSync5(dir)||mkdirSync3(dir,{recursive:!0}),!existsSync5(tsPath)){writeFileSync3(tsPath,content2,"utf-8"),created++,log(`Created: ${tsPath}`);continue}readFileSync5(tsPath,"utf-8")!==content2&&(writeFileSync3(tsPath,content2,"utf-8"),updated++,log(`Updated: ${tsPath}`))}for(let tsFile of generatedFilesOnDisk)if(!expectedTsFiles.has(tsFile))try{unlinkSync2(tsFile),deleted++,log(`Deleted orphaned: ${tsFile}`)}catch(error){console.error(`Failed to delete orphaned ${tsFile}:`,error)}return!shouldGenerateRegistry&&existsSync5(registryPath)&&readFileSync5(registryPath,"utf-8").startsWith(GENERATED_REGISTRY_MARKER)&&(unlinkSync2(registryPath),deleted++,log(`Deleted orphaned: ${registryPath}`)),(created>0||updated>0||deleted>0)&&options.verbose!==!1&&log(`Sync schemas: ${created} created, ${updated} updated, ${deleted} deleted`),{created,updated,deleted}}var SCHEMAS_REL,GENERATED_REGISTRY_MARKER,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION,MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION,CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND,SCHEMA_DEFINITION_SCHEMA,RUNTIME_TYPE_IMPORT_ORDER,CONTENT_TEMPLATE_PATHS,init_sync_schemas=__esm({"src/scripts/sync-schemas.ts"(){init_dist8();init_eta_module();init_assets2();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=z114.object({uid:z114.string().min(1),name:z114.string().min(1).optional(),isSingleton:z114.boolean().optional(),i18n:z114.object({enabled:z114.boolean().optional()}).optional(),groups:z114.array(z114.object({id:z114.string().min(1),label:z114.string().min(1),default:z114.boolean().optional()}).strict()).optional(),fields:z114.record(z114.string(),z114.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"}};__name(getSchemaFiles,"getSchemaFiles");__name(getGeneratedFiles,"getGeneratedFiles");__name(parseVersion,"parseVersion");__name(isVersionAtLeast,"isVersionAtLeast");__name(packageExportsSubpath,"packageExportsSubpath");__name(readProjectPackage,"readProjectPackage");__name(resolveProjectRuntime,"resolveProjectRuntime");__name(contentRuntimeImportFor,"contentRuntimeImportFor");__name(templatePath,"templatePath");__name(resolveSchemaGenerationTarget,"resolveSchemaGenerationTarget");__name(templatesForTarget,"templatesForTarget");__name(loadSchemas,"loadSchemas");__name(renderContentRegistry,"renderContentRegistry");__name(normalizeFields,"normalizeFields");__name(referenceImportsFor,"referenceImportsFor");__name(collectFieldRuntimeTypeImports,"collectFieldRuntimeTypeImports");__name(runtimeTypeImportsFor,"runtimeTypeImportsFor");__name(schemaToModel,"schemaToModel");__name(syncSchemas,"syncSchemas")}});function renderCrossSurface(findings,p2,opts={}){let lines=[];lines.push(p2.bold("CROSS-SURFACE INTEGRITY")),lines.push(p2.dim(" references that span surfaces"));let errorGlyph=opts.ascii?"!!":"\u203C",arrow=opts.ascii?"->":"\u2192",sep2=opts.ascii?"|":"\xB7";for(let f of findings){let glyph=f.severity==="error"?p2.red("!"):p2.yellow(errorGlyph);lines.push(` ${glyph} ${f.description}`);let trail=`${f.source.surface}:${f.source.key} ${arrow} ${f.target.surface}:${f.target.key}`;lines.push(p2.dim(` ${trail}`)),f.actions.length>0&&lines.push(p2.dim(` actions: ${f.actions.join(` ${sep2} `)}`))}return lines.join(`
390
+ `}function normalizeFields(fields){return Object.fromEntries(Object.entries(fields).map(([key,value])=>{if(!value||typeof value!="object"||Array.isArray(value))return[key,{type:void 0}];let field=value,target=typeof field.target=="string"?field.target:void 0,targets=Array.isArray(field.targets)?field.targets.filter(candidate=>typeof candidate=="string"):void 0;return[key,{...field,type:typeof field.type=="string"?field.type:void 0,target,targetPascal:target?pascalCase(target):void 0,targets:targets&&targets.length>0?targets:void 0,targetRefs:targets&&targets.length>0?targets.map(candidate=>({uid:candidate,pascal:pascalCase(candidate)})):void 0,many:typeof field.many=="boolean"?field.many:void 0,multiple:typeof field.multiple=="boolean"?field.multiple:void 0}]}))}function referenceImportsFor(schema,fields){let imports=new Map;for(let field of Object.values(fields)){if(field.type!=="reference")continue;let targets=field.targets??(field.target?[field.target]:[]);for(let target of targets)target!==schema.uid&&imports.set(target,{uid:target,pascal:pascalCase(target)})}return[...imports.values()].sort((a,b)=>a.pascal.localeCompare(b.pascal))}function collectFieldRuntimeTypeImports(field,imports){if(!field||typeof field!="object"||Array.isArray(field))return;let definition=field;switch(definition.type){case"boolean":imports.add("FimoBoolean");return;case"media":imports.add("FimoMedia");return;case"reference":imports.add(Array.isArray(definition.targets)&&definition.targets.length>0?"FimoPolymorphicReference":"FimoReference");return;case"richtext":imports.add("FimoRichText"),imports.add("FimoRichTextContent");return;case"blocks":{let schema=definition.schema;if(!schema||typeof schema!="object"||Array.isArray(schema))return;let blockSchema=schema,fieldGroups=Array.isArray(blockSchema.oneOf)?blockSchema.oneOf.map(variant=>variant&&typeof variant=="object"&&!Array.isArray(variant)?variant.fields:void 0):[blockSchema.fields];for(let fields of fieldGroups)if(!(!fields||typeof fields!="object"||Array.isArray(fields)))for(let nestedField of Object.values(fields))collectFieldRuntimeTypeImports(nestedField,imports);return}default:return}}function runtimeTypeImportsFor(fields){let imports=new Set(["Fields","FimoString","Populate","PopulatedResult","ProjectedWithPopulate","Query","Sort","Where","WithReferences"]);for(let field of Object.values(fields))collectFieldRuntimeTypeImports(field,imports);return RUNTIME_TYPE_IMPORT_ORDER.filter(typeImport=>imports.has(typeImport))}function schemaToModel(schema,localizedByUid){let fields=normalizeFields(schema.fields??{});return{uid:schema.uid,pascal:pascalCase(schema.uid),isSingleton:schema.isSingleton??!1,localized:schema.i18n?.enabled!==!1,localizedReferenceFields:Object.entries(fields).filter(([,field])=>field.type!=="reference"?!1:(field.targets??(field.target?[field.target]:[])).some(target=>localizedByUid.get(target)!==!1)).map(([fieldName])=>fieldName),fields,referenceImports:referenceImportsFor(schema,fields),runtimeTypeImports:runtimeTypeImportsFor(fields)}}function syncSchemas(options){let cwd=options.cwd??process.cwd(),log=__name(msg=>{options.verbose!==!1&&console.log(msg)},"log"),schemasDir=resolve5(cwd,SCHEMAS_REL),registryPath=join6(schemasDir,"index.ts"),schemaFiles=getSchemaFiles(schemasDir),schemas3=loadSchemas(schemaFiles),generatedFilesOnDisk=getGeneratedFiles(schemasDir),runtime=schemas3.length>0||generatedFilesOnDisk.length>0?resolveProjectRuntime(cwd):null,runtimeImport=runtime?contentRuntimeImportFor(options.framework,runtime):"fimo-react",generationTarget=runtime?resolveSchemaGenerationTarget(runtimeImport,runtime):null,needsContentRegistry=(generationTarget==="next"||generationTarget==="sveltekit")&&schemas3.length>0,ownsExistingRegistry=existsSync5(registryPath)&&readFileSync5(registryPath,"utf-8").startsWith(GENERATED_REGISTRY_MARKER),shouldGenerateRegistry=needsContentRegistry&&(!existsSync5(registryPath)||ownsExistingRegistry);needsContentRegistry&&!shouldGenerateRegistry&&log(`Kept project-owned schema barrel: ${registryPath}`);let loadedTemplates=(generationTarget&&runtime?templatesForTarget(generationTarget,runtime,runtimeImport):[]).map(template=>({...template,source:readFileSync5(template.path,"utf-8")})),eta=new Eta({views:void 0,useWith:!0,varName:"it",autoEscape:!1}),localizedByUid=new Map(schemas3.map(({schema})=>[schema.uid,schema.i18n?.enabled!==!1])),expectedTsFiles=new Set,generatedFiles=new Map,created=0,updated=0,deleted=0;for(let{pascal,schema}of schemas3){let model=schemaToModel(schema,localizedByUid);for(let template of loadedTemplates){let tsPath=join6(schemasDir,`${pascal}${template.suffix}`);expectedTsFiles.add(tsPath),generatedFiles.set(tsPath,eta.renderString(template.source,{model,runtimeImport:template.runtimeImport}))}}shouldGenerateRegistry&&(expectedTsFiles.add(registryPath),generatedFiles.set(registryPath,renderContentRegistry(schemas3)));for(let[tsPath,content2]of generatedFiles){let dir=dirname5(tsPath);if(existsSync5(dir)||mkdirSync3(dir,{recursive:!0}),!existsSync5(tsPath)){writeFileSync3(tsPath,content2,"utf-8"),created++,log(`Created: ${tsPath}`);continue}readFileSync5(tsPath,"utf-8")!==content2&&(writeFileSync3(tsPath,content2,"utf-8"),updated++,log(`Updated: ${tsPath}`))}for(let tsFile of generatedFilesOnDisk)if(!expectedTsFiles.has(tsFile))try{unlinkSync2(tsFile),deleted++,log(`Deleted orphaned: ${tsFile}`)}catch(error){console.error(`Failed to delete orphaned ${tsFile}:`,error)}return!shouldGenerateRegistry&&existsSync5(registryPath)&&readFileSync5(registryPath,"utf-8").startsWith(GENERATED_REGISTRY_MARKER)&&(unlinkSync2(registryPath),deleted++,log(`Deleted orphaned: ${registryPath}`)),(created>0||updated>0||deleted>0)&&options.verbose!==!1&&log(`Sync schemas: ${created} created, ${updated} updated, ${deleted} deleted`),{created,updated,deleted}}var SCHEMAS_REL,GENERATED_REGISTRY_MARKER,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION,MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION,CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND,SCHEMA_DEFINITION_SCHEMA,RUNTIME_TYPE_IMPORT_ORDER,CONTENT_TEMPLATE_PATHS,init_sync_schemas=__esm({"src/scripts/sync-schemas.ts"(){init_dist8();init_eta_module();init_assets2();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=z115.object({uid:z115.string().min(1),name:z115.string().min(1).optional(),isSingleton:z115.boolean().optional(),i18n:z115.object({enabled:z115.boolean().optional()}).optional(),groups:z115.array(z115.object({id:z115.string().min(1),label:z115.string().min(1),default:z115.boolean().optional()}).strict()).optional(),fields:z115.record(z115.string(),z115.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"}};__name(getSchemaFiles,"getSchemaFiles");__name(getGeneratedFiles,"getGeneratedFiles");__name(parseVersion,"parseVersion");__name(isVersionAtLeast,"isVersionAtLeast");__name(packageExportsSubpath,"packageExportsSubpath");__name(readProjectPackage,"readProjectPackage");__name(resolveProjectRuntime,"resolveProjectRuntime");__name(contentRuntimeImportFor,"contentRuntimeImportFor");__name(templatePath,"templatePath");__name(resolveSchemaGenerationTarget,"resolveSchemaGenerationTarget");__name(templatesForTarget,"templatesForTarget");__name(loadSchemas,"loadSchemas");__name(renderContentRegistry,"renderContentRegistry");__name(normalizeFields,"normalizeFields");__name(referenceImportsFor,"referenceImportsFor");__name(collectFieldRuntimeTypeImports,"collectFieldRuntimeTypeImports");__name(runtimeTypeImportsFor,"runtimeTypeImportsFor");__name(schemaToModel,"schemaToModel");__name(syncSchemas,"syncSchemas")}});function renderCrossSurface(findings,p2,opts={}){let lines=[];lines.push(p2.bold("CROSS-SURFACE INTEGRITY")),lines.push(p2.dim(" references that span surfaces"));let errorGlyph=opts.ascii?"!!":"\u203C",arrow=opts.ascii?"->":"\u2192",sep2=opts.ascii?"|":"\xB7";for(let f of findings){let glyph=f.severity==="error"?p2.red("!"):p2.yellow(errorGlyph);lines.push(` ${glyph} ${f.description}`);let trail=`${f.source.surface}:${f.source.key} ${arrow} ${f.target.surface}:${f.target.key}`;lines.push(p2.dim(` ${trail}`)),f.actions.length>0&&lines.push(p2.dim(` actions: ${f.actions.join(` ${sep2} `)}`))}return lines.join(`
391
391
  `)}var init_cross_surface=__esm({"src/cli/utils/format/cross-surface.ts"(){__name(renderCrossSurface,"renderCrossSurface")}});function getTerminalWidth(){let w3=process.stdout.columns;return typeof w3=="number"&&w3>0?w3:100}function layoutKeyDetail(args){let{indent,key,keyLength,detail,detailLength=0,width}=args;if(!detail)return`${indent}${key}`;let minGap=args.minGap??2,used=indent.length+keyLength+minGap+detailLength;if(width<80||used>=width)return`${indent}${key}${" ".repeat(minGap)}${detail}`;let padding=width-indent.length-keyLength-detailLength;return`${indent}${key}${" ".repeat(padding)}${detail}`}var init_columns=__esm({"src/cli/utils/format/columns.ts"(){__name(getTerminalWidth,"getTerminalWidth");__name(layoutKeyDetail,"layoutKeyDetail")}});function shortId(id){return id.length>12?`${id.slice(0,8)}\u2026`:id}var assets,init_assets3=__esm({"src/cli/utils/format/surface-presenters/assets.ts"(){assets={label:"ASSETS",hint:"media library",emptyCopy:" (no asset changes)",keyFormatter:__name(item=>item.detail??item.key,"keyFormatter"),detailFormatter:__name(item=>{if(item.detail&&item.key!==item.detail)return shortId(item.key)},"detailFormatter")};__name(shortId,"shortId")}});var code,init_code=__esm({"src/cli/utils/format/surface-presenters/code.ts"(){code={label:"CODE",hint:"git workspace vs HEAD",emptyCopy:" (clean)"}}});var content,init_content=__esm({"src/cli/utils/format/surface-presenters/content.ts"(){content={label:"CONTENT",hint:"entries per collection",emptyCopy:" (no content changes)",groupBy:__name(item=>item.detail??"(unknown)","groupBy"),keyFormatter:__name(item=>{let idx=item.key.indexOf(":");return idx>0?item.key.slice(idx+1):item.key},"keyFormatter"),detailFormatter:__name(()=>{},"detailFormatter")}}});var forms,init_forms2=__esm({"src/cli/utils/format/surface-presenters/forms.ts"(){forms={label:"FORMS",hint:"schema changes",emptyCopy:" (no form changes)"}}});var schemas,init_schemas2=__esm({"src/cli/utils/format/surface-presenters/schemas.ts"(){schemas={label:"SCHEMAS",hint:"content types",emptyCopy:" (no schema changes)",groupBy:__name(item=>{let idx=item.key.indexOf(".");return idx>0?item.key.slice(0,idx):""},"groupBy"),keyFormatter:__name(item=>{let idx=item.key.indexOf(".");return idx>0?item.key.slice(idx+1):item.key},"keyFormatter")}}});var translations,init_translations=__esm({"src/cli/utils/format/surface-presenters/translations.ts"(){translations={label:"TRANSLATIONS",hint:"per locale",emptyCopy:" (no translation changes)",groupBy:__name(item=>item.detail??"(no locale)","groupBy"),keyFormatter:__name(item=>{let idx=item.key.indexOf(":");return idx>0?item.key.slice(idx+1):item.key},"keyFormatter"),detailFormatter:__name(()=>{},"detailFormatter")}}});var SURFACE_PRESENTERS,init_surface_presenters=__esm({"src/cli/utils/format/surface-presenters/index.ts"(){init_assets3();init_code();init_content();init_forms2();init_schemas2();init_translations();SURFACE_PRESENTERS={code,schemas,content,translations,assets,forms}}});function renderItem(item,p2,opts={}){let glyph=VERB_GLYPHS[item.verb]??"?",colored=item.verb==="added"?p2.green(glyph):item.verb==="removed"?p2.red(glyph):item.verb==="conflict"?p2.yellow(glyph):p2.blue(glyph),indent=opts.indent??" ",displayKey=opts.presenter?.keyFormatter?opts.presenter.keyFormatter(item):item.key,displayDetail=opts.presenter?.detailFormatter?opts.presenter.detailFormatter(item):item.detail,width=opts.width;if(item.origin===void 0)return layoutCore({indent,marker:"",markerLen:0,colored,displayKey,displayDetail,width,p:p2});let marker=item.origin==="local-uncommitted"?p2.yellow("*"):" ";return layoutCore({indent,marker,markerLen:1,colored,displayKey,displayDetail,width,p:p2})}function layoutCore(args){let{indent,marker,markerLen,colored,displayKey,displayDetail,width,p:p2}=args,prefix=`${marker}${colored} ${displayKey}`,prefixLen=markerLen+1+1+displayKey.length;return displayDetail?width===void 0?`${indent}${prefix}${p2.dim(` ${displayDetail}`)}`:layoutKeyDetail({indent,key:prefix,keyLength:prefixLen,detail:p2.dim(displayDetail),detailLength:displayDetail.length,width}):`${indent}${prefix}`}function renderSurface(delta,p2,opts={}){let display=SURFACE_DISPLAY[delta.surface],presenter=SURFACE_PRESENTERS[delta.surface],lines=[],includeHeader=opts.includeHeader??!0,maxItems=opts.maxItems??50,width=opts.width??getTerminalWidth();if(includeHeader&&(lines.push(p2.bold(display.label)),lines.push(p2.dim(` ${display.hint}`))),delta.status==="timed_out")return lines.push(p2.yellow(" (surface check timed out)")),lines.join(`
392
392
  `);if(delta.status==="failed")return lines.push(p2.red(` (surface check failed: ${delta.error??"unknown"})`)),lines.join(`
393
393
  `);if(delta.status==="unchanged"||delta.changedCount===0&&delta.conflictCount===0)return lines.push(p2.dim(display.emptyCopy)),lines.join(`
@@ -1187,7 +1187,7 @@ ${html3}`.toLowerCase();return haystack.includes("webflow")||haystack.includes("
1187
1187
  ${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(`
1188
1188
  `).filter(Boolean).map(line=>{let code2=line.slice(0,2),path53=line.slice(3).trim();return{verb:code2.startsWith("A")||code2.startsWith("?")?"added":code2.startsWith("D")?"removed":"changed",key:path53,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)}
1189
1189
 
1190
- ${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_project();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_dist();import fs50 from"node:fs";import path52 from"node:path";var import_index=__toESM(require_commander(),1),{program,createCommand,createArgument,createOption,CommanderError,InvalidArgumentError,InvalidOptionArgumentError,Command,Argument,Option,Help}=import_index.default;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");import fs9 from"node:fs";import path9 from"node:path";var import_yaml=__toESM(require_dist(),1);import{createHash}from"node:crypto";import{promises}from"node:fs";import path from"node:path";import{z}from"zod";var CapabilityTokenSchema=z.string().min(1).regex(/^(?:[a-z][a-z0-9_]*:[a-z][a-z0-9_]*(?::[a-z][a-z0-9_]*)?|[a-z][a-z0-9_]*:\*)$/,{error:"capabilities must be an exact token or namespace selector such as cms:* (lowercase + digits + underscores)"}),CapabilitiesFileSchema=z.array(CapabilityTokenSchema);import{z as z2}from"zod";var CronTriggerSchema=z2.object({type:z2.literal("schedule"),cron:z2.string().min(1,"cron expression required"),tz:z2.string().optional()}),ManualTriggerSchema=z2.object({type:z2.literal("manual")}),WebhookTriggerSchema=z2.object({type:z2.literal("webhook"),path:z2.string().min(1).regex(/^[a-z0-9][a-z0-9_/-]*$/i,"webhook path must be lowercase alphanumeric with optional / - _")}),TriggerSchema=z2.discriminatedUnion("type",[ManualTriggerSchema,CronTriggerSchema,WebhookTriggerSchema]),SubAgentRefSchema=z2.object({name:z2.string().min(1),capability_grant:z2.enum(["inherit","explicit"]).optional(),explicit_grants:z2.array(z2.string()).optional()}).refine(v=>v.capability_grant!=="explicit"||Array.isArray(v.explicit_grants)&&v.explicit_grants.length>0,{message:"`explicit_grants` is required when `capability_grant: explicit`",path:["explicit_grants"]}),CompositionConfigSchema=z2.object({"sub-agents":z2.array(SubAgentRefSchema)}),RuntimeConfigSchema=z2.object({cloud:z2.boolean().optional(),dev:z2.boolean().optional(),long_running:z2.boolean().optional(),max_credits:z2.number().int().min(1).optional(),max_steps:z2.number().int().min(1).optional()}),DataSourceSchema=z2.enum(["main","prod"]),ConfigValueKeySchema=z2.string().min(1).max(255).regex(/^[A-Z_][A-Z0-9_]*$/,"secret keys must be UPPER_SNAKE_CASE and start with a letter or underscore"),PUBLIC_CONFIG_PREFIX=/^(PUBLIC_|VITE_|NEXT_PUBLIC_)/,AgentSecretRequestSchema=z2.preprocess(value=>typeof value=="string"?{key:value}:value,z2.object({key:ConfigValueKeySchema.refine(key=>!PUBLIC_CONFIG_PREFIX.test(key),{message:"agent secrets cannot use public variable prefixes (PUBLIC_, VITE_, NEXT_PUBLIC_)"}),required:z2.boolean().default(!0),delivery:z2.literal("process_env").default("process_env")})),IntegrationKeySchema=z2.string().min(1).max(120).regex(/^[a-z][a-z0-9_-]*$/,"integration keys must be lowercase alphanumeric with optional _ or -"),IntegrationToolKeySchema=z2.string().min(1).max(120).regex(/^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)*$/,"integration tool keys must be lowercase dot-separated identifiers with optional _ or -"),IntegrationPolicyEntrySchema=z2.preprocess(value=>typeof value=="boolean"?{enabled:value}:value,z2.object({enabled:z2.boolean().default(!0),tools:z2.record(IntegrationToolKeySchema,z2.boolean()).optional()})),IntegrationPolicySchema=z2.record(IntegrationKeySchema,IntegrationPolicyEntrySchema),AgentConfigSchema=z2.object({version:z2.literal(1),description:z2.string().min(1).max(280).optional(),model:z2.string().trim().min(1).max(255).optional(),runtime:RuntimeConfigSchema.optional(),triggers:z2.array(TriggerSchema).optional(),composition:CompositionConfigSchema.optional(),data_sources:z2.array(DataSourceSchema).optional(),secrets:z2.array(AgentSecretRequestSchema).optional(),integrations:IntegrationPolicySchema.optional(),integration_policy:IntegrationPolicySchema.optional()}).refine(config=>!(config.integrations&&config.integration_policy),{message:"use either `integrations` or legacy `integration_policy`, not both",path:["integrations"]});var ENTRIES=[{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:"net:fetch",risk:"medium",declarable:!0,enforcedBy:"runtime",description:"Make outbound HTTP requests"},{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:long_running",risk:"high",declarable:!0,enforcedBy:"runtime",description:"Run autonomously past the default 30 min limit (up to 4h walltime / 12h ceiling)"},{token:"runtime:auto_merge",risk:"critical",declarable:!0,enforcedBy:"runtime",description:"Auto-merge trivial proposed branches to main without per-change human review"}],BY_TOKEN=new Map(ENTRIES.map(entry=>[entry.token,entry])),CAPABILITY_VOCABULARY=ENTRIES,CAPABILITY_NAMESPACE_SELECTOR=/^([a-z][a-z0-9_]*):\*$/;function expandCapabilitySelectors(selectors,vocabulary=CAPABILITY_VOCABULARY){let expanded=[],seen=new Set,add2=__name(token=>{seen.has(token)||(seen.add(token),expanded.push(token))},"add");for(let selector of selectors){let namespace=CAPABILITY_NAMESPACE_SELECTOR.exec(selector)?.[1];if(!namespace){add2(selector);continue}let matches=vocabulary.filter(definition=>definition.declarable&&definition.token.startsWith(`${namespace}:`));if(matches.length===0){add2(selector);continue}for(let match of matches)add2(match.token)}return expanded}__name(expandCapabilitySelectors,"expandCapabilitySelectors");function getCapability(token){return BY_TOKEN.get(token)??null}__name(getCapability,"getCapability");function isKnownCapability(token){return BY_TOKEN.has(token)}__name(isKnownCapability,"isKnownCapability");function isDeclarableCapability(token){return getCapability(token)?.declarable===!0}__name(isDeclarableCapability,"isDeclarableCapability");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 BundleParseError=class extends Error{static{__name(this,"BundleParseError")}constructor(bundlePath,file,message,cause){super(`[${file}] ${message}`),_define_property(this,"bundlePath",void 0),_define_property(this,"file",void 0),_define_property(this,"cause",void 0),this.name="BundleParseError",this.bundlePath=bundlePath,this.file=file,this.cause=cause}};async function fileExists(file){try{return(await promises.stat(file)).isFile()}catch{return!1}}__name(fileExists,"fileExists");async function readFileOrNull(file){try{return await promises.readFile(file,"utf8")}catch(err){if(err.code==="ENOENT")return null;throw err}}__name(readFileOrNull,"readFileOrNull");async function listDir(dir){try{return(await promises.readdir(dir,{withFileTypes:!0,recursive:!0})).filter(e=>e.isFile()).map(e=>{let parentPath=e.parentPath??e.path??dir;return path.relative(dir,path.join(parentPath,e.name))}).sort()}catch(err){if(err.code==="ENOENT")return[];throw err}}__name(listDir,"listDir");function parseYamlStrict(text3,file,bundlePath){try{return(0,import_yaml.parse)(text3)}catch(err){throw new BundleParseError(bundlePath,file,`invalid YAML: ${err.message}`,err)}}__name(parseYamlStrict,"parseYamlStrict");function formatZodIssue(issue){return`${issue.path.length===0?"(root)":issue.path.join(".")}: ${issue.message}`}__name(formatZodIssue,"formatZodIssue");async function parseBundle(bundlePath,opts={}){let name=path.basename(bundlePath),goalPath=path.join(bundlePath,"GOAL.md"),goal=await readFileOrNull(goalPath);if(goal===null)throw new BundleParseError(bundlePath,"GOAL.md","GOAL.md is required but missing");if(goal.trim().length===0)throw new BundleParseError(bundlePath,"GOAL.md","GOAL.md is empty");let configPath=path.join(bundlePath,"config.yaml"),configRaw=await readFileOrNull(configPath),config;if(configRaw===null){if(!opts.defaultConfig)throw new BundleParseError(bundlePath,"config.yaml","config.yaml is required but missing");config={version:1}}else{let yamlData=parseYamlStrict(configRaw,"config.yaml",bundlePath),parsed=AgentConfigSchema.safeParse(yamlData);if(!parsed.success){let issues=parsed.error.issues.map(formatZodIssue).join("; ");throw new BundleParseError(bundlePath,"config.yaml",`schema validation failed: ${issues}`)}config=parsed.data}let soul=await readFileOrNull(path.join(bundlePath,"SOUL.md")),capsPath=path.join(bundlePath,"capabilities.yaml"),capsRaw=await readFileOrNull(capsPath),capabilities=[];if(capsRaw!==null){let candidate=parseYamlStrict(capsRaw,"capabilities.yaml",bundlePath)??[],parsed=CapabilitiesFileSchema.safeParse(candidate);if(!parsed.success){let issues=parsed.error.issues.map(formatZodIssue).join("; ");throw new BundleParseError(bundlePath,"capabilities.yaml",`schema validation failed: ${issues} \u2014 file must be a bare YAML list of capability tokens`)}capabilities=expandCapabilitySelectors(parsed.data)}let[scripts2,references,assets3]=await Promise.all([listDir(path.join(bundlePath,"scripts")),listDir(path.join(bundlePath,"references")),listDir(path.join(bundlePath,"assets"))]),warnings=[],pluginsDir=path.join(bundlePath,"plugins");try{(await promises.stat(pluginsDir)).isDirectory()&&warnings.push({pointer:"plugins/",message:"`plugins/` is reserved for v1.x and will be ignored at runtime."})}catch{}let checksum=await computeBundleChecksum(bundlePath,{goal,soul,configRaw,capsRaw,scripts:scripts2,references,assets:assets3});return{name,path:bundlePath,goal,soul,config,capabilities,scripts:scripts2,references,assets:assets3,checksum,warnings}}__name(parseBundle,"parseBundle");async function computeBundleChecksum(bundlePath,parts){let hash=createHash("sha256");hash.update("GOAL.md\0"),hash.update(parts.goal),hash.update("\0config.yaml\0"),hash.update(parts.configRaw??""),parts.capsRaw!==null&&(hash.update("\0capabilities.yaml\0"),hash.update(parts.capsRaw)),parts.soul!==null&&(hash.update("\0SOUL.md\0"),hash.update(parts.soul));let dirs=[["scripts",parts.scripts],["references",parts.references],["assets",parts.assets]];for(let[dirName,files]of dirs)for(let rel of files){let filePath=path.join(bundlePath,dirName,rel);try{let buf=await promises.readFile(filePath);hash.update(`\0${dirName}/${rel}\0`),hash.update(buf)}catch{}}return hash.digest("hex")}__name(computeBundleChecksum,"computeBundleChecksum");async function listBundles(agentsDir){let entries2=[];try{entries2=await promises.readdir(agentsDir,{withFileTypes:!0})}catch(err){if(err.code==="ENOENT")return[];throw err}let bundles=[];for(let entry of entries2){if(!entry.isDirectory())continue;let bundlePath=path.join(agentsDir,entry.name);if(await fileExists(path.join(bundlePath,"GOAL.md")))try{bundles.push(await parseBundle(bundlePath))}catch{}}return bundles.sort((a,b)=>a.name.localeCompare(b.name))}__name(listBundles,"listBundles");function validateBundle(bundle,opts={}){let issues=[],available=new Map((opts.availableAgents??[]).map(b=>[b.name,b]));for(let i=0;i<bundle.capabilities.length;i++){let token=bundle.capabilities[i];if(token!==void 0){if(!isKnownCapability(token)){issues.push({pointer:`capabilities.yaml:[${i}]`,message:`unknown capability token: ${token}`,severity:"error"});continue}isDeclarableCapability(token)||issues.push({pointer:`capabilities.yaml:[${i}]`,message:`${token} is platform-internal; project-authored agents cannot declare it`,severity:"error"}),getCapability(token)?.risk==="critical"&&issues.push({pointer:`capabilities.yaml:[${i}]`,message:`${token} is critical-risk; requires project policy + install-time confirmation`,severity:"warning"})}}let subAgents=bundle.config.composition?.["sub-agents"]??[];subAgents.length>0&&!bundle.capabilities.includes("agent:delegate")&&issues.push({pointer:"capabilities.yaml",message:"`composition.sub-agents` is declared but `agent:delegate` capability is missing",severity:"error"});for(let i=0;i<subAgents.length;i++){let sub=subAgents[i];sub&&opts.availableAgents&&!available.has(sub.name)&&issues.push({pointer:`config.yaml:composition.sub-agents[${i}].name`,message:`sub-agent '${sub.name}' is not present in the project's agents directory`,severity:"error"})}if(opts.availableAgents&&subAgents.length>0){let cycle=detectCycle(bundle,available);cycle&&issues.push({pointer:"config.yaml:composition",message:`composition cycle detected: ${cycle.join(" \u2192 ")}`,severity:"error"})}let webhookPaths=new Set,triggers=bundle.config.triggers??[];for(let i=0;i<triggers.length;i++){let t2=triggers[i];t2&&t2.type==="webhook"&&(webhookPaths.has(t2.path)&&issues.push({pointer:`config.yaml:triggers[${i}].path`,message:`duplicate webhook path '${t2.path}' within bundle`,severity:"error"}),webhookPaths.add(t2.path))}return bundle.config.data_sources&&bundle.config.data_sources.length===0&&issues.push({pointer:"config.yaml:data_sources",message:'data_sources is empty; omit the field to default to ["main"]',severity:"warning"}),issues}__name(validateBundle,"validateBundle");function detectCycle(start,available){let color=new Map,parent2=new Map;function visit2(name){color.set(name,1);let children2=available.get(name)?.config.composition?.["sub-agents"]??[];for(let child of children2){if(!child)continue;let c2=color.get(child.name)??0;if(c2===1){let cycle=[child.name],curr=name;for(;curr&&curr!==child.name;)cycle.unshift(curr),curr=parent2.get(curr)??null;return cycle.unshift(child.name),cycle}if(c2===0&&available.has(child.name)){parent2.set(child.name,name);let found=visit2(child.name);if(found)return found}}return color.set(name,2),null}return __name(visit2,"visit"),visit2(start.name)}__name(detectCycle,"detectCycle");function agentIntegrationPolicy(config){return config.integrations??config.integration_policy??{}}__name(agentIntegrationPolicy,"agentIntegrationPolicy");function agentAllowsIntegrationTool(policy,integrationKey,toolKey){let entry=policy[integrationKey];return entry?.enabled?entry.tools===void 0||entry.tools[toolKey]===!0:!1}__name(agentAllowsIntegrationTool,"agentAllowsIntegrationTool");function enabledAgentIntegrationTools(entry,availableTools=[]){return entry?.enabled?entry.tools===void 0?[...availableTools].sort((a,b)=>a.localeCompare(b)):Object.entries(entry.tools??{}).filter(([,enabled])=>enabled).map(([tool])=>tool).sort((a,b)=>a.localeCompare(b)):[]}__name(enabledAgentIntegrationTools,"enabledAgentIntegrationTools");function _define_property2(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property2,"_define_property");var CapabilityDeniedError=class extends Error{static{__name(this,"CapabilityDeniedError")}constructor(required,granted){let def=getCapability(required),what=def?.description?` (${def.description})`:"";super(`capability '${required}'${what} denied \u2014 granted: [${granted.join(", ")}]`),_define_property2(this,"required",void 0),_define_property2(this,"granted",void 0),this.name="CapabilityDeniedError",this.required=required,this.granted=granted}};function assertCapability(required,granted){if(!granted.includes(required))throw new CapabilityDeniedError(required,granted)}__name(assertCapability,"assertCapability");function resolveSubCallCapabilities(parentGranted,subDeclared,ref){if((ref.capability_grant??"inherit")==="explicit"){let explicit=ref.explicit_grants??[];return subDeclared.filter(t2=>explicit.includes(t2))}return[...subDeclared]}__name(resolveSubCallCapabilities,"resolveSubCallCapabilities");function _define_property3(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property3,"_define_property");var BundleError=class extends Error{static{__name(this,"BundleError")}constructor(message,remediation,bundlePath){super(message),_define_property3(this,"remediation",void 0),_define_property3(this,"bundlePath",void 0),this.name=this.constructor.name,this.remediation=remediation,this.bundlePath=bundlePath}},BundleValidationError=class extends BundleError{static{__name(this,"BundleValidationError")}constructor(message,options={}){super(message,options.remediation??"Fix the file in the bundle and re-run `fimo agents validate`.",options.bundlePath),_define_property3(this,"code","bundle.validation"),_define_property3(this,"file",void 0),_define_property3(this,"cause",void 0),this.file=options.file,this.cause=options.cause}};var BundleInvalidCapabilityError=class extends BundleError{static{__name(this,"BundleInvalidCapabilityError")}constructor(token,reason,options={}){let remediation=reason==="runtime_only"?`'${token}' is reserved for the runtime \u2014 drop it from capabilities.yaml.`:options.suggestion?`Unknown capability '${token}'. Did you mean '${options.suggestion}'?`:`Unknown capability '${token}'. Run \`fimo agents list-capabilities\` to see the vocabulary.`;super(reason==="runtime_only"?`Capability '${token}' is runtime-orchestration-only and cannot be declared.`:`Capability '${token}' is not in the closed vocabulary.`,remediation,options.bundlePath),_define_property3(this,"code","bundle.invalid_capability"),_define_property3(this,"token",void 0),_define_property3(this,"reason",void 0),this.token=token,this.reason=reason}},BundleCompositionCycleError=class extends BundleError{static{__name(this,"BundleCompositionCycleError")}constructor(cycle,options={}){super(`Composition cycle detected: ${cycle.join(" \u2192 ")}`,"Break the cycle by removing one of the sub-agent references in the chain.",options.bundlePath),_define_property3(this,"code","bundle.composition_cycle"),_define_property3(this,"cycle",void 0),this.cycle=[...cycle]}},BundleTemplateNotFoundError=class extends BundleError{static{__name(this,"BundleTemplateNotFoundError")}constructor(templateName,available){super(`Template '${templateName}' not found.`,available.length>0?`Available templates: ${available.join(", ")}. Use \`fimo agents list-templates\` to see all options.`:"No templates are bundled with this CLI. Use the empty default by omitting --template."),_define_property3(this,"code","bundle.template_not_found"),_define_property3(this,"templateName",void 0),_define_property3(this,"available",void 0),this.templateName=templateName,this.available=[...available]}};function isBundleError(err){return err instanceof BundleError}__name(isBundleError,"isBundleError");function detectCompositionCycle(input){let{root:root2,agentMap}=input,WHITE=0,GRAY=1,BLACK=2,color=new Map,parent2=new Map,visit2=__name(name=>{color.set(name,GRAY);let children2=agentMap.get(name)?.config.composition?.["sub-agents"]??[];for(let child of children2){if(!child)continue;let c2=color.get(child.name)??WHITE;if(c2===GRAY){let cycle=[child.name],curr=name;for(;curr&&curr!==child.name;)cycle.unshift(curr),curr=parent2.get(curr)??null;return cycle.unshift(child.name),cycle}if(c2===WHITE&&agentMap.has(child.name)){parent2.set(child.name,name);let found=visit2(child.name);if(found)return found}}return color.set(name,BLACK),null},"visit");return visit2(root2.name)}__name(detectCompositionCycle,"detectCompositionCycle");function validateAgainstVocabulary(tokens,vocab=CAPABILITY_VOCABULARY){let byToken=new Map(vocab.map(v=>[v.token,v])),unknown=[],nonDeclarable=[],highRisk=[];for(let token of expandCapabilitySelectors(tokens,vocab)){let def=byToken.get(token);if(!def){unknown.push(token);continue}def.declarable||nonDeclarable.push(token),(def.risk==="high"||def.risk==="critical")&&highRisk.push(token)}return{ok:unknown.length===0&&nonDeclarable.length===0,unknown,nonDeclarable,highRisk}}__name(validateAgainstVocabulary,"validateAgainstVocabulary");function suggestCapability(token,vocab=CAPABILITY_VOCABULARY){let best=null,bestDistance=1/0;for(let def of vocab){let d3=levenshtein(token,def.token);d3<bestDistance&&(bestDistance=d3,best=def.token)}return bestDistance<=2?best:null}__name(suggestCapability,"suggestCapability");function levenshtein(a,b){if(a===b)return 0;let al=a.length,bl=b.length;if(al===0)return bl;if(bl===0)return al;let prev2=Array.from({length:bl+1},(_,i)=>i);for(let i=1;i<=al;i++){let curr=new Array(bl+1);curr[0]=i;for(let j2=1;j2<=bl;j2++){let cost=a[i-1]===b[j2-1]?0:1;curr[j2]=Math.min((prev2[j2]??0)+1,(curr[j2-1]??0)+1,(prev2[j2-1]??0)+cost)}prev2=curr}return prev2[bl]??0}__name(levenshtein,"levenshtein");import{z as z3}from"zod";var SurfaceGuardPolicySchema=z3.enum(["block","warn","allow"]),ClassificationSchema=z3.enum(["trivial","low_risk","needs_review"]),SurfaceGuardsSchema=z3.object({code:SurfaceGuardPolicySchema.optional(),content:SurfaceGuardPolicySchema.optional(),translations:SurfaceGuardPolicySchema.optional(),assets:SurfaceGuardPolicySchema.optional()}),AutoMergePolicySchema=z3.object({enabled:z3.boolean(),allowed_skills:z3.array(z3.string().min(1)).default([]),allowed_classifications:z3.array(ClassificationSchema).default([]),surface_guards:SurfaceGuardsSchema.default({})}),NotificationDigestSchema=z3.enum(["off","daily","weekly"]),NotificationFormatSchema=z3.object({markdown:z3.boolean().default(!0),html:z3.boolean().default(!1)}),NotificationsPolicySchema=z3.object({email_recipients:z3.array(z3.string().email("invalid email address")).default([]),format:NotificationFormatSchema.default({markdown:!0,html:!1}),digest:NotificationDigestSchema.default("off")}),FimoAgentsConfigSchema=z3.object({auto_merge:AutoMergePolicySchema.optional(),notifications:NotificationsPolicySchema.optional()}),FimoConfigSchema=z3.object({agents:FimoAgentsConfigSchema.optional()}).passthrough();function parseFimoConfig(jsonOrText,opts={}){let raw;if(typeof jsonOrText=="string")try{raw=JSON.parse(jsonOrText)}catch(err){throw new BundleValidationError(`${opts.path??".fimo/config.json"} is not valid JSON: ${err.message}`,{remediation:"Run the file through `jq .` or your editor JSON validator and fix the syntax.",file:opts.path??".fimo/config.json",cause:err})}else raw=jsonOrText;let parsed=FimoConfigSchema.safeParse(raw);if(!parsed.success){let issues=parsed.error.issues.map(i=>`${i.path.join(".")||"(root)"}: ${i.message}`).join("; ");throw new BundleValidationError(`${opts.path??".fimo/config.json"} schema validation failed: ${issues}`,{remediation:"See `.fimo/config.json` in the lifecycle docs (`fimo agents docs lifecycle` or visit lifecycle.html#config).",file:opts.path??".fimo/config.json"})}let data2=parsed.data;if(data2.agents?.auto_merge?.enabled===!0&&(data2.agents.auto_merge.allowed_classifications??[]).length===0)throw new BundleValidationError("`agents.auto_merge.enabled: true` but `allowed_classifications` is empty \u2014 nothing would ever auto-merge.",{remediation:'Either set `allowed_classifications: ["trivial"]` (or any subset) or set `enabled: false`.',file:opts.path??".fimo/config.json"});return data2}__name(parseFimoConfig,"parseFimoConfig");import{z as z4}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=z4.enum(Object.keys(VOCABULARY)),CapabilitiesArraySchema=z4.array(CapabilityToken);function isCapability(token){return Object.prototype.hasOwnProperty.call(VOCABULARY,token)}__name(isCapability,"isCapability");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={"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.history.list":"fimo:history:read","fimo.history.get":"fimo:history:read","net.fetch":"net:fetch","agent.delegate":"agent:delegate","runtime.long_running":"runtime:long_running","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");var import_yaml2=__toESM(require_dist(),1);function _define_property4(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property4,"_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_property4(this,"cap",void 0),_define_property4(this,"reason",void 0),_define_property4(this,"granted",void 0),_define_property4(this,"sessionId",void 0),_define_property4(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 composition_exports={};__export(composition_exports,{CompositionError:()=>CompositionError,InvalidExplicitGrantsError:()=>InvalidExplicitGrantsError,MAX_DELEGATION_DEPTH:()=>MAX_DELEGATION_DEPTH,MaxDelegationDepthError:()=>MaxDelegationDepthError,SubAgentInvocationError:()=>SubAgentInvocationError,SubAgentNotInProjectError:()=>SubAgentNotInProjectError,UnknownSubAgentError:()=>UnknownSubAgentError,createDelegateTool:()=>createDelegateTool,delegate:()=>delegate,detectCompositionCycle:()=>detectCompositionCycle,detectCycle:()=>detectCycle2,isCompositionError:()=>isCompositionError,resolveSubCallCapabilities:()=>resolveSubCallCapabilities2,resolveSubCallCapabilitiesLenient:()=>resolveSubCallCapabilities,resolveTransitiveCapabilities:()=>resolveTransitiveCapabilities,validateComposition:()=>validateComposition});function resolveTransitiveCapabilities(bundle,allBundles){let union=new Set,missing=[],visited=new Set,visit2=__name(b=>{if(visited.has(b.name))return;visited.add(b.name);for(let token of b.capabilities)isCapability(token)&&union.add(token);let subAgents=b.config.composition?.["sub-agents"]??[];for(let ref of subAgents){let sub=allBundles.get(ref.name);if(!sub){missing.includes(ref.name)||missing.push(ref.name);continue}visit2(sub)}},"visit");return visit2(bundle),{union:Array.from(union).sort(),missing}}__name(resolveTransitiveCapabilities,"resolveTransitiveCapabilities");function detectCycle2(rootKey,nodes){if(!new Map(nodes.map(n=>[n.key,n])).get(rootKey))return null;let bundleMap=new Map;for(let node of nodes)bundleMap.set(node.key,{name:node.key,capabilities:[],config:{version:1,composition:{"sub-agents":node.subAgentKeys.map(k=>({name:k}))}}});let root2=bundleMap.get(rootKey);return detectCompositionCycle({root:root2,agentMap:bundleMap})}__name(detectCycle2,"detectCycle");function validateComposition(root2,allBundles){let cycle=detectCompositionCycle({root:root2,agentMap:allBundles}),missing=[],invalidGrants=[],capUnion=new Set,visited=new Set,visit2=__name(bundle=>{if(visited.has(bundle.name))return;visited.add(bundle.name);for(let token of bundle.capabilities)isCapability(token)&&capUnion.add(token);let subAgents=bundle.config.composition?.["sub-agents"]??[];for(let ref of subAgents){let sub=allBundles.get(ref.name);if(!sub){missing.includes(ref.name)||missing.push(ref.name);continue}if(ref.capability_grant==="explicit"){let declaredSet=new Set(sub.capabilities),invalid=(ref.explicit_grants??[]).filter(t2=>!declaredSet.has(t2));invalid.length>0&&invalidGrants.push({subAgentName:ref.name,invalid,declared:[...sub.capabilities]})}visit2(sub)}},"visit");if(!cycle)visit2(root2);else for(let token of root2.capabilities)isCapability(token)&&capUnion.add(token);let declaredDelegate=root2.capabilities.includes("agent:delegate");return{cycle,missing,transitiveCapabilities:Array.from(capUnion).sort(),declaredDelegate,invalidGrants}}__name(validateComposition,"validateComposition");function _define_property5(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property5,"_define_property");var CompositionError=class extends Error{static{__name(this,"CompositionError")}},InvalidExplicitGrantsError=class extends CompositionError{static{__name(this,"InvalidExplicitGrantsError")}constructor(subAgentName,invalid,declared){super(`composition.sub-agents[name=${subAgentName}].explicit_grants references capabilities the sub-agent never declared: [${invalid.join(", ")}]. Declared by sub-agent: [${declared.join(", ")}]`),_define_property5(this,"code","composition.invalid_explicit_grants"),_define_property5(this,"subAgentName",void 0),_define_property5(this,"invalid",void 0),_define_property5(this,"declared",void 0),this.name="InvalidExplicitGrantsError",this.subAgentName=subAgentName,this.invalid=invalid,this.declared=declared}},SubAgentInvocationError=class extends CompositionError{static{__name(this,"SubAgentInvocationError")}constructor(subAgentName,cause){super(`sub-agent '${subAgentName}' threw during invocation: ${cause?.message??String(cause)}`),_define_property5(this,"code","composition.sub_agent_invocation_failed"),_define_property5(this,"subAgentName",void 0),this.name="SubAgentInvocationError",this.subAgentName=subAgentName,this.cause=cause}};function isCompositionError(err){return err instanceof CompositionError?!0:err instanceof Error?err.name==="MaxDelegationDepthError"||err.name==="UnknownSubAgentError"||err.name==="SubAgentNotInProjectError":!1}__name(isCompositionError,"isCompositionError");function resolveSubCallCapabilities2(input){let{parentCapabilities,subAgentDeclared,ref}=input;if((ref.capability_grant??"inherit")==="explicit"){let explicitGrants=ref.explicit_grants??[],declaredSet=new Set(subAgentDeclared),invalid=explicitGrants.filter(t2=>!declaredSet.has(t2));if(invalid.length>0)throw new InvalidExplicitGrantsError(ref.name,invalid,subAgentDeclared)}return resolveSubCallCapabilities(parentCapabilities,subAgentDeclared,ref)}__name(resolveSubCallCapabilities2,"resolveSubCallCapabilities");function _define_property6(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property6,"_define_property");var MAX_DELEGATION_DEPTH=5,MaxDelegationDepthError=class extends Error{static{__name(this,"MaxDelegationDepthError")}constructor(depth){super(`max delegation depth ${depth} reached (limit ${MAX_DELEGATION_DEPTH})`),_define_property6(this,"depth",void 0),this.name="MaxDelegationDepthError",this.depth=depth}},UnknownSubAgentError=class extends Error{static{__name(this,"UnknownSubAgentError")}constructor(name){super(`sub-agent '${name}' is not declared in composition.sub-agents`),_define_property6(this,"name_",void 0),this.name="UnknownSubAgentError",this.name_=name}},SubAgentNotInProjectError=class extends Error{static{__name(this,"SubAgentNotInProjectError")}constructor(name){super(`sub-agent '${name}' is declared but not present in agents/ directory`),_define_property6(this,"name_",void 0),this.name="SubAgentNotInProjectError",this.name_=name}};async function delegate(input,ctx,runSubAgent){if(assertCapability("agent:delegate",ctx.parentCapabilities),ctx.depth>=MAX_DELEGATION_DEPTH)throw new MaxDelegationDepthError(ctx.depth);let ref=(ctx.parentBundle.config.composition?.["sub-agents"]??[]).find(r=>r.name===input.name);if(!ref)throw new UnknownSubAgentError(input.name);let sub=ctx.projectBundles.find(b=>b.name===ref.name);if(!sub)throw new SubAgentNotInProjectError(ref.name);let subCallCapabilities=resolveSubCallCapabilities(ctx.parentCapabilities,sub.capabilities,ref);return{result:await runSubAgent(sub,subCallCapabilities,input.args),subCallCapabilities}}__name(delegate,"delegate");function createDelegateTool(opts){return __name(async function(input){let{session,runSubAgent,audit}=opts,started=Date.now(),parentCaps=session.capabilityStack[session.capabilityStack.length-1]??session.parentBundle.capabilities,ctx={parentBundle:session.parentBundle,parentCapabilities:parentCaps,depth:session.depth,projectBundles:session.projectBundles};try{let grantMode=(session.parentBundle.config.composition?.["sub-agents"]??[]).find(r=>r.name===input.name)?.capability_grant??"inherit";session.depth+=1;let result=await delegate(input,ctx,__name(async(sub,capabilities,args)=>{session.capabilityStack.push([...capabilities]);try{return await runSubAgent(sub,capabilities,args)}finally{session.capabilityStack.pop()}},"wrappedRunSubAgent"));return await audit?.emit({subAgentName:input.name,grantMode,resolvedCapabilities:result.subCallCapabilities,args:input.args,durationMs:Date.now()-started,depth:ctx.depth}),result}catch(err){let wrapped=err instanceof SubAgentInvocationError?err:new SubAgentInvocationError(input.name,err);throw await audit?.emit({subAgentName:input.name,grantMode:"inherit",resolvedCapabilities:[],args:input.args,durationMs:Date.now()-started,depth:ctx.depth,error:{name:err.name??"Error",message:err.message??String(err)}}),wrapped}finally{session.depth-=1}},"delegateFn")}__name(createDelegateTool,"createDelegateTool");init_dist();init_scaffold();import fs8 from"node:fs";import path8 from"node:path";init_dist();init_auth_errors();init_project();var NAME_RE=/^[a-z][a-z0-9-]*$/;function isValidAgentName(name){return name.length===0||name.length>64?!1:NAME_RE.test(name)}__name(isValidAgentName,"isValidAgentName");var InvalidAgentNameError=class extends Error{static{__name(this,"InvalidAgentNameError")}name="InvalidAgentNameError";attempted;constructor(attempted){super(`'${attempted}' is not a valid agent name. Names must be lowercase, start with a letter, and contain only letters/digits/hyphens.`),this.attempted=attempted}};function resolveProjectRoot(cwd=process.cwd()){let dir=path8.resolve(cwd);for(let i=0;i<8;i++){if(fs8.existsSync(resolveProjectConfigPath(dir))||fs8.existsSync(path8.join(dir,"package.json")))return dir;let parent2=path8.dirname(dir);if(parent2===dir)break;dir=parent2}throw new Error(`Could not find a project root (no Fimo config or package.json) under ${cwd}. Run \`fimo agents *\` from inside a project.`)}__name(resolveProjectRoot,"resolveProjectRoot");function resolveFimoProject(cwd=process.cwd()){let projectRoot=findProjectRoot(cwd);if(!projectRoot)return null;try{return{projectRoot,settings:loadProjectSettings(projectRoot)}}catch{return null}}__name(resolveFimoProject,"resolveFimoProject");function resolveAgentBundlesDir(projectRoot){return resolveProjectAgentsDir(projectRoot)}__name(resolveAgentBundlesDir,"resolveAgentBundlesDir");function printBundleError(command,err){if(rethrowCliAuthError(err),isBundleError(err)){let e=err,hintParts=[];e.remediation&&hintParts.push(`fix: ${e.remediation}`),e.bundlePath&&hintParts.push(`at: ${e.bundlePath}`),ui.error({command,code:"AGENT_BUNDLE_ERROR",message:e.message,hint:hintParts.length>0?hintParts.join(" \xB7 "):void 0})}else ui.error({command,code:"AGENT_BUNDLE_ERROR",message:err.message??String(err)})}__name(printBundleError,"printBundleError");async function createAgent(opts){if(!isValidAgentName(opts.name))throw new InvalidAgentNameError(opts.name);let cwd=opts.cwd??process.cwd(),projectRoot;if(opts.requireFimoProject){let resolved=resolveFimoProject(cwd);if(!resolved)return{ok:!1,error:"Not inside a linked Fimo project. Run from inside a Fimo project, or pass -C <dir>."};projectRoot=resolved.projectRoot}else projectRoot=resolveProjectRoot(cwd);let targetDir=path9.join(resolveAgentBundlesDir(projectRoot),opts.name);if(fs9.existsSync(targetDir))return{ok:!1,error:`${path9.relative(projectRoot,targetDir)}/ already exists. Pick a different name or remove the existing directory first.`};let templateName=opts.template??"_default",templateRoot;try{templateRoot=resolveAgentTemplate(templateName)}catch{let available=listAgentTemplates().map(t2=>t2.name);throw new BundleTemplateNotFoundError(templateName,available)}return await copyAgentTemplate(templateRoot,targetDir),opts.description!==void 0&&writeDescriptionToConfig(path9.join(targetDir,"config.yaml"),opts.description),{ok:!0,agentDir:targetDir}}__name(createAgent,"createAgent");function writeDescriptionToConfig(configPath,description){let content2=fs9.readFileSync(configPath,"utf8"),line=`description: ${JSON.stringify(description)}`,next2;/^description:.*$/m.test(content2)?next2=content2.replace(/^description:.*$/m,line):/^version:\s*\d+.*$/m.test(content2)?next2=content2.replace(/^(version:\s*\d+.*)$/m,`$1
1190
+ ${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_project();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_dist();import fs50 from"node:fs";import path52 from"node:path";var import_index=__toESM(require_commander(),1),{program,createCommand,createArgument,createOption,CommanderError,InvalidArgumentError,InvalidOptionArgumentError,Command,Argument,Option,Help}=import_index.default;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");import fs9 from"node:fs";import path9 from"node:path";var import_yaml=__toESM(require_dist(),1);import{createHash}from"node:crypto";import{promises}from"node:fs";import path from"node:path";import{z}from"zod";var CapabilityTokenSchema=z.string().min(1).regex(/^(?:[a-z][a-z0-9_]*:[a-z][a-z0-9_]*(?::[a-z][a-z0-9_]*)?|[a-z][a-z0-9_]*:\*)$/,{error:"capabilities must be an exact token or namespace selector such as cms:* (lowercase + digits + underscores)"}),CapabilitiesFileSchema=z.array(CapabilityTokenSchema);import{z as z2}from"zod";var CronTriggerSchema=z2.object({type:z2.literal("schedule"),cron:z2.string().min(1,"cron expression required"),tz:z2.string().optional()}),ManualTriggerSchema=z2.object({type:z2.literal("manual")}),WebhookTriggerSchema=z2.object({type:z2.literal("webhook"),path:z2.string().min(1).regex(/^[a-z0-9][a-z0-9_/-]*$/i,"webhook path must be lowercase alphanumeric with optional / - _")}),TriggerSchema=z2.discriminatedUnion("type",[ManualTriggerSchema,CronTriggerSchema,WebhookTriggerSchema]),SubAgentRefSchema=z2.object({name:z2.string().min(1),capability_grant:z2.enum(["inherit","explicit"]).optional(),explicit_grants:z2.array(z2.string()).optional()}).refine(v=>v.capability_grant!=="explicit"||Array.isArray(v.explicit_grants)&&v.explicit_grants.length>0,{message:"`explicit_grants` is required when `capability_grant: explicit`",path:["explicit_grants"]}),CompositionConfigSchema=z2.object({"sub-agents":z2.array(SubAgentRefSchema)}),RuntimeConfigSchema=z2.object({cloud:z2.boolean().optional(),dev:z2.boolean().optional(),long_running:z2.boolean().optional(),max_credits:z2.number().int().min(1).optional(),max_steps:z2.number().int().min(1).optional()}),DataSourceSchema=z2.enum(["main","prod"]),ConfigValueKeySchema=z2.string().min(1).max(255).regex(/^[A-Z_][A-Z0-9_]*$/,"secret keys must be UPPER_SNAKE_CASE and start with a letter or underscore"),PUBLIC_CONFIG_PREFIX=/^(PUBLIC_|VITE_|NEXT_PUBLIC_)/,AgentSecretRequestSchema=z2.preprocess(value=>typeof value=="string"?{key:value}:value,z2.object({key:ConfigValueKeySchema.refine(key=>!PUBLIC_CONFIG_PREFIX.test(key),{message:"agent secrets cannot use public variable prefixes (PUBLIC_, VITE_, NEXT_PUBLIC_)"}),required:z2.boolean().default(!0),delivery:z2.literal("process_env").default("process_env")})),IntegrationKeySchema=z2.string().min(1).max(120).regex(/^[a-z][a-z0-9_-]*$/,"integration keys must be lowercase alphanumeric with optional _ or -"),IntegrationToolKeySchema=z2.string().min(1).max(120).regex(/^[a-z][a-z0-9_-]*(?:\.[a-z][a-z0-9_-]*)*$/,"integration tool keys must be lowercase dot-separated identifiers with optional _ or -"),IntegrationPolicyEntrySchema=z2.preprocess(value=>typeof value=="boolean"?{enabled:value}:value,z2.object({enabled:z2.boolean().default(!0),tools:z2.record(IntegrationToolKeySchema,z2.boolean()).optional()})),IntegrationPolicySchema=z2.record(IntegrationKeySchema,IntegrationPolicyEntrySchema),AgentConfigSchema=z2.object({version:z2.literal(1),description:z2.string().min(1).max(280).optional(),model:z2.string().trim().min(1).max(255).optional(),runtime:RuntimeConfigSchema.optional(),triggers:z2.array(TriggerSchema).optional(),composition:CompositionConfigSchema.optional(),data_sources:z2.array(DataSourceSchema).optional(),secrets:z2.array(AgentSecretRequestSchema).optional(),integrations:IntegrationPolicySchema.optional(),integration_policy:IntegrationPolicySchema.optional()}).refine(config=>!(config.integrations&&config.integration_policy),{message:"use either `integrations` or legacy `integration_policy`, not both",path:["integrations"]});var ENTRIES=[{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:"net:fetch",risk:"medium",declarable:!0,enforcedBy:"runtime",description:"Make outbound HTTP requests"},{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:long_running",risk:"high",declarable:!0,enforcedBy:"runtime",description:"Run autonomously past the default 30 min limit (up to 4h walltime / 12h ceiling)"},{token:"runtime:auto_merge",risk:"critical",declarable:!0,enforcedBy:"runtime",description:"Auto-merge trivial proposed branches to main without per-change human review"}],BY_TOKEN=new Map(ENTRIES.map(entry=>[entry.token,entry])),CAPABILITY_VOCABULARY=ENTRIES,CAPABILITY_NAMESPACE_SELECTOR=/^([a-z][a-z0-9_]*):\*$/;function expandCapabilitySelectors(selectors,vocabulary=CAPABILITY_VOCABULARY){let expanded=[],seen=new Set,add2=__name(token=>{seen.has(token)||(seen.add(token),expanded.push(token))},"add");for(let selector of selectors){let namespace=CAPABILITY_NAMESPACE_SELECTOR.exec(selector)?.[1];if(!namespace){add2(selector);continue}let matches=vocabulary.filter(definition=>definition.declarable&&definition.token.startsWith(`${namespace}:`));if(matches.length===0){add2(selector);continue}for(let match of matches)add2(match.token)}return expanded}__name(expandCapabilitySelectors,"expandCapabilitySelectors");function getCapability(token){return BY_TOKEN.get(token)??null}__name(getCapability,"getCapability");function isKnownCapability(token){return BY_TOKEN.has(token)}__name(isKnownCapability,"isKnownCapability");function isDeclarableCapability(token){return getCapability(token)?.declarable===!0}__name(isDeclarableCapability,"isDeclarableCapability");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 BundleParseError=class extends Error{static{__name(this,"BundleParseError")}constructor(bundlePath,file,message,cause){super(`[${file}] ${message}`),_define_property(this,"bundlePath",void 0),_define_property(this,"file",void 0),_define_property(this,"cause",void 0),this.name="BundleParseError",this.bundlePath=bundlePath,this.file=file,this.cause=cause}};async function fileExists(file){try{return(await promises.stat(file)).isFile()}catch{return!1}}__name(fileExists,"fileExists");async function readFileOrNull(file){try{return await promises.readFile(file,"utf8")}catch(err){if(err.code==="ENOENT")return null;throw err}}__name(readFileOrNull,"readFileOrNull");async function listDir(dir){try{return(await promises.readdir(dir,{withFileTypes:!0,recursive:!0})).filter(e=>e.isFile()).map(e=>{let parentPath=e.parentPath??e.path??dir;return path.relative(dir,path.join(parentPath,e.name))}).sort()}catch(err){if(err.code==="ENOENT")return[];throw err}}__name(listDir,"listDir");function parseYamlStrict(text3,file,bundlePath){try{return(0,import_yaml.parse)(text3)}catch(err){throw new BundleParseError(bundlePath,file,`invalid YAML: ${err.message}`,err)}}__name(parseYamlStrict,"parseYamlStrict");function formatZodIssue(issue){return`${issue.path.length===0?"(root)":issue.path.join(".")}: ${issue.message}`}__name(formatZodIssue,"formatZodIssue");async function parseBundle(bundlePath,opts={}){let name=path.basename(bundlePath),goalPath=path.join(bundlePath,"GOAL.md"),goal=await readFileOrNull(goalPath);if(goal===null)throw new BundleParseError(bundlePath,"GOAL.md","GOAL.md is required but missing");if(goal.trim().length===0)throw new BundleParseError(bundlePath,"GOAL.md","GOAL.md is empty");let configPath=path.join(bundlePath,"config.yaml"),configRaw=await readFileOrNull(configPath),config;if(configRaw===null){if(!opts.defaultConfig)throw new BundleParseError(bundlePath,"config.yaml","config.yaml is required but missing");config={version:1}}else{let yamlData=parseYamlStrict(configRaw,"config.yaml",bundlePath),parsed=AgentConfigSchema.safeParse(yamlData);if(!parsed.success){let issues=parsed.error.issues.map(formatZodIssue).join("; ");throw new BundleParseError(bundlePath,"config.yaml",`schema validation failed: ${issues}`)}config=parsed.data}let soul=await readFileOrNull(path.join(bundlePath,"SOUL.md")),capsPath=path.join(bundlePath,"capabilities.yaml"),capsRaw=await readFileOrNull(capsPath),capabilities=[];if(capsRaw!==null){let candidate=parseYamlStrict(capsRaw,"capabilities.yaml",bundlePath)??[],parsed=CapabilitiesFileSchema.safeParse(candidate);if(!parsed.success){let issues=parsed.error.issues.map(formatZodIssue).join("; ");throw new BundleParseError(bundlePath,"capabilities.yaml",`schema validation failed: ${issues} \u2014 file must be a bare YAML list of capability tokens`)}capabilities=expandCapabilitySelectors(parsed.data)}let[scripts2,references,assets3]=await Promise.all([listDir(path.join(bundlePath,"scripts")),listDir(path.join(bundlePath,"references")),listDir(path.join(bundlePath,"assets"))]),warnings=[],pluginsDir=path.join(bundlePath,"plugins");try{(await promises.stat(pluginsDir)).isDirectory()&&warnings.push({pointer:"plugins/",message:"`plugins/` is reserved for v1.x and will be ignored at runtime."})}catch{}let checksum=await computeBundleChecksum(bundlePath,{goal,soul,configRaw,capsRaw,scripts:scripts2,references,assets:assets3});return{name,path:bundlePath,goal,soul,config,capabilities,scripts:scripts2,references,assets:assets3,checksum,warnings}}__name(parseBundle,"parseBundle");async function computeBundleChecksum(bundlePath,parts){let hash=createHash("sha256");hash.update("GOAL.md\0"),hash.update(parts.goal),hash.update("\0config.yaml\0"),hash.update(parts.configRaw??""),parts.capsRaw!==null&&(hash.update("\0capabilities.yaml\0"),hash.update(parts.capsRaw)),parts.soul!==null&&(hash.update("\0SOUL.md\0"),hash.update(parts.soul));let dirs=[["scripts",parts.scripts],["references",parts.references],["assets",parts.assets]];for(let[dirName,files]of dirs)for(let rel of files){let filePath=path.join(bundlePath,dirName,rel);try{let buf=await promises.readFile(filePath);hash.update(`\0${dirName}/${rel}\0`),hash.update(buf)}catch{}}return hash.digest("hex")}__name(computeBundleChecksum,"computeBundleChecksum");async function listBundles(agentsDir){let entries2=[];try{entries2=await promises.readdir(agentsDir,{withFileTypes:!0})}catch(err){if(err.code==="ENOENT")return[];throw err}let bundles=[];for(let entry of entries2){if(!entry.isDirectory())continue;let bundlePath=path.join(agentsDir,entry.name);if(await fileExists(path.join(bundlePath,"GOAL.md")))try{bundles.push(await parseBundle(bundlePath))}catch{}}return bundles.sort((a,b)=>a.name.localeCompare(b.name))}__name(listBundles,"listBundles");var AGENT_MODEL_IDS=["google/gemini-2.5-flash-lite","google/gemini-3.5-flash-lite","google/gemini-3.7-flash","google/gemini-3.6-flash","google/gemini-2.5-flash","google/gemini-3-flash","anthropic/claude-haiku-4.5","anthropic/claude-opus-4.6","anthropic/claude-opus-4.7","anthropic/claude-sonnet-5","anthropic/claude-opus-5","anthropic/claude-fable-5","google/gemini-3.1-flash-image-preview","openai/gpt-5.6-luna","openai/gpt-5.6-terra","openai/gpt-5.6-sol","xai/grok-4.6","deepseek/deepseek-v4-pro","minimax/minimax-m3","moonshotai/kimi-k3","zai/glm-5.2","zai/glm-5.3-flash","relace-search"],DEFAULT_AGENT_MODEL_ID="openai/gpt-5.6-luna";function isSupportedAgentModel(model){return AGENT_MODEL_IDS.includes(model)}__name(isSupportedAgentModel,"isSupportedAgentModel");function validateBundle(bundle,opts={}){let issues=[],available=new Map((opts.availableAgents??[]).map(b=>[b.name,b]));for(let i=0;i<bundle.capabilities.length;i++){let token=bundle.capabilities[i];if(token!==void 0){if(!isKnownCapability(token)){issues.push({pointer:`capabilities.yaml:[${i}]`,message:`unknown capability token: ${token}`,severity:"error"});continue}isDeclarableCapability(token)||issues.push({pointer:`capabilities.yaml:[${i}]`,message:`${token} is platform-internal; project-authored agents cannot declare it`,severity:"error"}),getCapability(token)?.risk==="critical"&&issues.push({pointer:`capabilities.yaml:[${i}]`,message:`${token} is critical-risk; requires project policy + install-time confirmation`,severity:"warning"})}}let model=bundle.config.model;model!==void 0&&!isSupportedAgentModel(model)&&issues.push({pointer:"config.yaml:model",message:`unsupported model '${model}'; omit the field to use ${DEFAULT_AGENT_MODEL_ID}, or pick one of: ${AGENT_MODEL_IDS.join(", ")}`,severity:"error"});let subAgents=bundle.config.composition?.["sub-agents"]??[];subAgents.length>0&&!bundle.capabilities.includes("agent:delegate")&&issues.push({pointer:"capabilities.yaml",message:"`composition.sub-agents` is declared but `agent:delegate` capability is missing",severity:"error"});for(let i=0;i<subAgents.length;i++){let sub=subAgents[i];sub&&opts.availableAgents&&!available.has(sub.name)&&issues.push({pointer:`config.yaml:composition.sub-agents[${i}].name`,message:`sub-agent '${sub.name}' is not present in the project's agents directory`,severity:"error"})}if(opts.availableAgents&&subAgents.length>0){let cycle=detectCycle(bundle,available);cycle&&issues.push({pointer:"config.yaml:composition",message:`composition cycle detected: ${cycle.join(" \u2192 ")}`,severity:"error"})}let webhookPaths=new Set,triggers=bundle.config.triggers??[];for(let i=0;i<triggers.length;i++){let t2=triggers[i];t2&&t2.type==="webhook"&&(webhookPaths.has(t2.path)&&issues.push({pointer:`config.yaml:triggers[${i}].path`,message:`duplicate webhook path '${t2.path}' within bundle`,severity:"error"}),webhookPaths.add(t2.path))}return bundle.config.data_sources&&bundle.config.data_sources.length===0&&issues.push({pointer:"config.yaml:data_sources",message:'data_sources is empty; omit the field to default to ["main"]',severity:"warning"}),issues}__name(validateBundle,"validateBundle");function detectCycle(start,available){let color=new Map,parent2=new Map;function visit2(name){color.set(name,1);let children2=available.get(name)?.config.composition?.["sub-agents"]??[];for(let child of children2){if(!child)continue;let c2=color.get(child.name)??0;if(c2===1){let cycle=[child.name],curr=name;for(;curr&&curr!==child.name;)cycle.unshift(curr),curr=parent2.get(curr)??null;return cycle.unshift(child.name),cycle}if(c2===0&&available.has(child.name)){parent2.set(child.name,name);let found=visit2(child.name);if(found)return found}}return color.set(name,2),null}return __name(visit2,"visit"),visit2(start.name)}__name(detectCycle,"detectCycle");function agentIntegrationPolicy(config){return config.integrations??config.integration_policy??{}}__name(agentIntegrationPolicy,"agentIntegrationPolicy");function agentAllowsIntegrationTool(policy,integrationKey,toolKey){let entry=policy[integrationKey];return entry?.enabled?entry.tools===void 0||entry.tools[toolKey]===!0:!1}__name(agentAllowsIntegrationTool,"agentAllowsIntegrationTool");function enabledAgentIntegrationTools(entry,availableTools=[]){return entry?.enabled?entry.tools===void 0?[...availableTools].sort((a,b)=>a.localeCompare(b)):Object.entries(entry.tools??{}).filter(([,enabled])=>enabled).map(([tool])=>tool).sort((a,b)=>a.localeCompare(b)):[]}__name(enabledAgentIntegrationTools,"enabledAgentIntegrationTools");function _define_property2(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property2,"_define_property");var CapabilityDeniedError=class extends Error{static{__name(this,"CapabilityDeniedError")}constructor(required,granted){let def=getCapability(required),what=def?.description?` (${def.description})`:"";super(`capability '${required}'${what} denied \u2014 granted: [${granted.join(", ")}]`),_define_property2(this,"required",void 0),_define_property2(this,"granted",void 0),this.name="CapabilityDeniedError",this.required=required,this.granted=granted}};function assertCapability(required,granted){if(!granted.includes(required))throw new CapabilityDeniedError(required,granted)}__name(assertCapability,"assertCapability");function resolveSubCallCapabilities(parentGranted,subDeclared,ref){if((ref.capability_grant??"inherit")==="explicit"){let explicit=ref.explicit_grants??[];return subDeclared.filter(t2=>explicit.includes(t2))}return[...subDeclared]}__name(resolveSubCallCapabilities,"resolveSubCallCapabilities");function _define_property3(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property3,"_define_property");var BundleError=class extends Error{static{__name(this,"BundleError")}constructor(message,remediation,bundlePath){super(message),_define_property3(this,"remediation",void 0),_define_property3(this,"bundlePath",void 0),this.name=this.constructor.name,this.remediation=remediation,this.bundlePath=bundlePath}},BundleValidationError=class extends BundleError{static{__name(this,"BundleValidationError")}constructor(message,options={}){super(message,options.remediation??"Fix the file in the bundle and re-run `fimo agents validate`.",options.bundlePath),_define_property3(this,"code","bundle.validation"),_define_property3(this,"file",void 0),_define_property3(this,"cause",void 0),this.file=options.file,this.cause=options.cause}};var BundleInvalidCapabilityError=class extends BundleError{static{__name(this,"BundleInvalidCapabilityError")}constructor(token,reason,options={}){let remediation=reason==="runtime_only"?`'${token}' is reserved for the runtime \u2014 drop it from capabilities.yaml.`:options.suggestion?`Unknown capability '${token}'. Did you mean '${options.suggestion}'?`:`Unknown capability '${token}'. Run \`fimo agents list-capabilities\` to see the vocabulary.`;super(reason==="runtime_only"?`Capability '${token}' is runtime-orchestration-only and cannot be declared.`:`Capability '${token}' is not in the closed vocabulary.`,remediation,options.bundlePath),_define_property3(this,"code","bundle.invalid_capability"),_define_property3(this,"token",void 0),_define_property3(this,"reason",void 0),this.token=token,this.reason=reason}},BundleCompositionCycleError=class extends BundleError{static{__name(this,"BundleCompositionCycleError")}constructor(cycle,options={}){super(`Composition cycle detected: ${cycle.join(" \u2192 ")}`,"Break the cycle by removing one of the sub-agent references in the chain.",options.bundlePath),_define_property3(this,"code","bundle.composition_cycle"),_define_property3(this,"cycle",void 0),this.cycle=[...cycle]}},BundleTemplateNotFoundError=class extends BundleError{static{__name(this,"BundleTemplateNotFoundError")}constructor(templateName,available){super(`Template '${templateName}' not found.`,available.length>0?`Available templates: ${available.join(", ")}. Use \`fimo agents list-templates\` to see all options.`:"No templates are bundled with this CLI. Use the empty default by omitting --template."),_define_property3(this,"code","bundle.template_not_found"),_define_property3(this,"templateName",void 0),_define_property3(this,"available",void 0),this.templateName=templateName,this.available=[...available]}};function isBundleError(err){return err instanceof BundleError}__name(isBundleError,"isBundleError");function detectCompositionCycle(input){let{root:root2,agentMap}=input,WHITE=0,GRAY=1,BLACK=2,color=new Map,parent2=new Map,visit2=__name(name=>{color.set(name,GRAY);let children2=agentMap.get(name)?.config.composition?.["sub-agents"]??[];for(let child of children2){if(!child)continue;let c2=color.get(child.name)??WHITE;if(c2===GRAY){let cycle=[child.name],curr=name;for(;curr&&curr!==child.name;)cycle.unshift(curr),curr=parent2.get(curr)??null;return cycle.unshift(child.name),cycle}if(c2===WHITE&&agentMap.has(child.name)){parent2.set(child.name,name);let found=visit2(child.name);if(found)return found}}return color.set(name,BLACK),null},"visit");return visit2(root2.name)}__name(detectCompositionCycle,"detectCompositionCycle");function validateAgainstVocabulary(tokens,vocab=CAPABILITY_VOCABULARY){let byToken=new Map(vocab.map(v=>[v.token,v])),unknown=[],nonDeclarable=[],highRisk=[];for(let token of expandCapabilitySelectors(tokens,vocab)){let def=byToken.get(token);if(!def){unknown.push(token);continue}def.declarable||nonDeclarable.push(token),(def.risk==="high"||def.risk==="critical")&&highRisk.push(token)}return{ok:unknown.length===0&&nonDeclarable.length===0,unknown,nonDeclarable,highRisk}}__name(validateAgainstVocabulary,"validateAgainstVocabulary");function suggestCapability(token,vocab=CAPABILITY_VOCABULARY){let best=null,bestDistance=1/0;for(let def of vocab){let d3=levenshtein(token,def.token);d3<bestDistance&&(bestDistance=d3,best=def.token)}return bestDistance<=2?best:null}__name(suggestCapability,"suggestCapability");function levenshtein(a,b){if(a===b)return 0;let al=a.length,bl=b.length;if(al===0)return bl;if(bl===0)return al;let prev2=Array.from({length:bl+1},(_,i)=>i);for(let i=1;i<=al;i++){let curr=new Array(bl+1);curr[0]=i;for(let j2=1;j2<=bl;j2++){let cost=a[i-1]===b[j2-1]?0:1;curr[j2]=Math.min((prev2[j2]??0)+1,(curr[j2-1]??0)+1,(prev2[j2-1]??0)+cost)}prev2=curr}return prev2[bl]??0}__name(levenshtein,"levenshtein");import{z as z3}from"zod";var SurfaceGuardPolicySchema=z3.enum(["block","warn","allow"]),ClassificationSchema=z3.enum(["trivial","low_risk","needs_review"]),SurfaceGuardsSchema=z3.object({code:SurfaceGuardPolicySchema.optional(),content:SurfaceGuardPolicySchema.optional(),translations:SurfaceGuardPolicySchema.optional(),assets:SurfaceGuardPolicySchema.optional()}),AutoMergePolicySchema=z3.object({enabled:z3.boolean(),allowed_skills:z3.array(z3.string().min(1)).default([]),allowed_classifications:z3.array(ClassificationSchema).default([]),surface_guards:SurfaceGuardsSchema.default({})}),NotificationDigestSchema=z3.enum(["off","daily","weekly"]),NotificationFormatSchema=z3.object({markdown:z3.boolean().default(!0),html:z3.boolean().default(!1)}),NotificationsPolicySchema=z3.object({email_recipients:z3.array(z3.string().email("invalid email address")).default([]),format:NotificationFormatSchema.default({markdown:!0,html:!1}),digest:NotificationDigestSchema.default("off")}),FimoAgentsConfigSchema=z3.object({auto_merge:AutoMergePolicySchema.optional(),notifications:NotificationsPolicySchema.optional()}),FimoConfigSchema=z3.object({agents:FimoAgentsConfigSchema.optional()}).passthrough();function parseFimoConfig(jsonOrText,opts={}){let raw;if(typeof jsonOrText=="string")try{raw=JSON.parse(jsonOrText)}catch(err){throw new BundleValidationError(`${opts.path??".fimo/config.json"} is not valid JSON: ${err.message}`,{remediation:"Run the file through `jq .` or your editor JSON validator and fix the syntax.",file:opts.path??".fimo/config.json",cause:err})}else raw=jsonOrText;let parsed=FimoConfigSchema.safeParse(raw);if(!parsed.success){let issues=parsed.error.issues.map(i=>`${i.path.join(".")||"(root)"}: ${i.message}`).join("; ");throw new BundleValidationError(`${opts.path??".fimo/config.json"} schema validation failed: ${issues}`,{remediation:"See `.fimo/config.json` in the lifecycle docs (`fimo agents docs lifecycle` or visit lifecycle.html#config).",file:opts.path??".fimo/config.json"})}let data2=parsed.data;if(data2.agents?.auto_merge?.enabled===!0&&(data2.agents.auto_merge.allowed_classifications??[]).length===0)throw new BundleValidationError("`agents.auto_merge.enabled: true` but `allowed_classifications` is empty \u2014 nothing would ever auto-merge.",{remediation:'Either set `allowed_classifications: ["trivial"]` (or any subset) or set `enabled: false`.',file:opts.path??".fimo/config.json"});return data2}__name(parseFimoConfig,"parseFimoConfig");import{z as z4}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=z4.enum(Object.keys(VOCABULARY)),CapabilitiesArraySchema=z4.array(CapabilityToken);function isCapability(token){return Object.prototype.hasOwnProperty.call(VOCABULARY,token)}__name(isCapability,"isCapability");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={"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.history.list":"fimo:history:read","fimo.history.get":"fimo:history:read","net.fetch":"net:fetch","agent.delegate":"agent:delegate","runtime.long_running":"runtime:long_running","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");var import_yaml2=__toESM(require_dist(),1);function _define_property4(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property4,"_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_property4(this,"cap",void 0),_define_property4(this,"reason",void 0),_define_property4(this,"granted",void 0),_define_property4(this,"sessionId",void 0),_define_property4(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 composition_exports={};__export(composition_exports,{CompositionError:()=>CompositionError,InvalidExplicitGrantsError:()=>InvalidExplicitGrantsError,MAX_DELEGATION_DEPTH:()=>MAX_DELEGATION_DEPTH,MaxDelegationDepthError:()=>MaxDelegationDepthError,SubAgentInvocationError:()=>SubAgentInvocationError,SubAgentNotInProjectError:()=>SubAgentNotInProjectError,UnknownSubAgentError:()=>UnknownSubAgentError,createDelegateTool:()=>createDelegateTool,delegate:()=>delegate,detectCompositionCycle:()=>detectCompositionCycle,detectCycle:()=>detectCycle2,isCompositionError:()=>isCompositionError,resolveSubCallCapabilities:()=>resolveSubCallCapabilities2,resolveSubCallCapabilitiesLenient:()=>resolveSubCallCapabilities,resolveTransitiveCapabilities:()=>resolveTransitiveCapabilities,validateComposition:()=>validateComposition});function resolveTransitiveCapabilities(bundle,allBundles){let union=new Set,missing=[],visited=new Set,visit2=__name(b=>{if(visited.has(b.name))return;visited.add(b.name);for(let token of b.capabilities)isCapability(token)&&union.add(token);let subAgents=b.config.composition?.["sub-agents"]??[];for(let ref of subAgents){let sub=allBundles.get(ref.name);if(!sub){missing.includes(ref.name)||missing.push(ref.name);continue}visit2(sub)}},"visit");return visit2(bundle),{union:Array.from(union).sort(),missing}}__name(resolveTransitiveCapabilities,"resolveTransitiveCapabilities");function detectCycle2(rootKey,nodes){if(!new Map(nodes.map(n=>[n.key,n])).get(rootKey))return null;let bundleMap=new Map;for(let node of nodes)bundleMap.set(node.key,{name:node.key,capabilities:[],config:{version:1,composition:{"sub-agents":node.subAgentKeys.map(k=>({name:k}))}}});let root2=bundleMap.get(rootKey);return detectCompositionCycle({root:root2,agentMap:bundleMap})}__name(detectCycle2,"detectCycle");function validateComposition(root2,allBundles){let cycle=detectCompositionCycle({root:root2,agentMap:allBundles}),missing=[],invalidGrants=[],capUnion=new Set,visited=new Set,visit2=__name(bundle=>{if(visited.has(bundle.name))return;visited.add(bundle.name);for(let token of bundle.capabilities)isCapability(token)&&capUnion.add(token);let subAgents=bundle.config.composition?.["sub-agents"]??[];for(let ref of subAgents){let sub=allBundles.get(ref.name);if(!sub){missing.includes(ref.name)||missing.push(ref.name);continue}if(ref.capability_grant==="explicit"){let declaredSet=new Set(sub.capabilities),invalid=(ref.explicit_grants??[]).filter(t2=>!declaredSet.has(t2));invalid.length>0&&invalidGrants.push({subAgentName:ref.name,invalid,declared:[...sub.capabilities]})}visit2(sub)}},"visit");if(!cycle)visit2(root2);else for(let token of root2.capabilities)isCapability(token)&&capUnion.add(token);let declaredDelegate=root2.capabilities.includes("agent:delegate");return{cycle,missing,transitiveCapabilities:Array.from(capUnion).sort(),declaredDelegate,invalidGrants}}__name(validateComposition,"validateComposition");function _define_property5(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property5,"_define_property");var CompositionError=class extends Error{static{__name(this,"CompositionError")}},InvalidExplicitGrantsError=class extends CompositionError{static{__name(this,"InvalidExplicitGrantsError")}constructor(subAgentName,invalid,declared){super(`composition.sub-agents[name=${subAgentName}].explicit_grants references capabilities the sub-agent never declared: [${invalid.join(", ")}]. Declared by sub-agent: [${declared.join(", ")}]`),_define_property5(this,"code","composition.invalid_explicit_grants"),_define_property5(this,"subAgentName",void 0),_define_property5(this,"invalid",void 0),_define_property5(this,"declared",void 0),this.name="InvalidExplicitGrantsError",this.subAgentName=subAgentName,this.invalid=invalid,this.declared=declared}},SubAgentInvocationError=class extends CompositionError{static{__name(this,"SubAgentInvocationError")}constructor(subAgentName,cause){super(`sub-agent '${subAgentName}' threw during invocation: ${cause?.message??String(cause)}`),_define_property5(this,"code","composition.sub_agent_invocation_failed"),_define_property5(this,"subAgentName",void 0),this.name="SubAgentInvocationError",this.subAgentName=subAgentName,this.cause=cause}};function isCompositionError(err){return err instanceof CompositionError?!0:err instanceof Error?err.name==="MaxDelegationDepthError"||err.name==="UnknownSubAgentError"||err.name==="SubAgentNotInProjectError":!1}__name(isCompositionError,"isCompositionError");function resolveSubCallCapabilities2(input){let{parentCapabilities,subAgentDeclared,ref}=input;if((ref.capability_grant??"inherit")==="explicit"){let explicitGrants=ref.explicit_grants??[],declaredSet=new Set(subAgentDeclared),invalid=explicitGrants.filter(t2=>!declaredSet.has(t2));if(invalid.length>0)throw new InvalidExplicitGrantsError(ref.name,invalid,subAgentDeclared)}return resolveSubCallCapabilities(parentCapabilities,subAgentDeclared,ref)}__name(resolveSubCallCapabilities2,"resolveSubCallCapabilities");function _define_property6(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__name(_define_property6,"_define_property");var MAX_DELEGATION_DEPTH=5,MaxDelegationDepthError=class extends Error{static{__name(this,"MaxDelegationDepthError")}constructor(depth){super(`max delegation depth ${depth} reached (limit ${MAX_DELEGATION_DEPTH})`),_define_property6(this,"depth",void 0),this.name="MaxDelegationDepthError",this.depth=depth}},UnknownSubAgentError=class extends Error{static{__name(this,"UnknownSubAgentError")}constructor(name){super(`sub-agent '${name}' is not declared in composition.sub-agents`),_define_property6(this,"name_",void 0),this.name="UnknownSubAgentError",this.name_=name}},SubAgentNotInProjectError=class extends Error{static{__name(this,"SubAgentNotInProjectError")}constructor(name){super(`sub-agent '${name}' is declared but not present in agents/ directory`),_define_property6(this,"name_",void 0),this.name="SubAgentNotInProjectError",this.name_=name}};async function delegate(input,ctx,runSubAgent){if(assertCapability("agent:delegate",ctx.parentCapabilities),ctx.depth>=MAX_DELEGATION_DEPTH)throw new MaxDelegationDepthError(ctx.depth);let ref=(ctx.parentBundle.config.composition?.["sub-agents"]??[]).find(r=>r.name===input.name);if(!ref)throw new UnknownSubAgentError(input.name);let sub=ctx.projectBundles.find(b=>b.name===ref.name);if(!sub)throw new SubAgentNotInProjectError(ref.name);let subCallCapabilities=resolveSubCallCapabilities(ctx.parentCapabilities,sub.capabilities,ref);return{result:await runSubAgent(sub,subCallCapabilities,input.args),subCallCapabilities}}__name(delegate,"delegate");function createDelegateTool(opts){return __name(async function(input){let{session,runSubAgent,audit}=opts,started=Date.now(),parentCaps=session.capabilityStack[session.capabilityStack.length-1]??session.parentBundle.capabilities,ctx={parentBundle:session.parentBundle,parentCapabilities:parentCaps,depth:session.depth,projectBundles:session.projectBundles};try{let grantMode=(session.parentBundle.config.composition?.["sub-agents"]??[]).find(r=>r.name===input.name)?.capability_grant??"inherit";session.depth+=1;let result=await delegate(input,ctx,__name(async(sub,capabilities,args)=>{session.capabilityStack.push([...capabilities]);try{return await runSubAgent(sub,capabilities,args)}finally{session.capabilityStack.pop()}},"wrappedRunSubAgent"));return await audit?.emit({subAgentName:input.name,grantMode,resolvedCapabilities:result.subCallCapabilities,args:input.args,durationMs:Date.now()-started,depth:ctx.depth}),result}catch(err){let wrapped=err instanceof SubAgentInvocationError?err:new SubAgentInvocationError(input.name,err);throw await audit?.emit({subAgentName:input.name,grantMode:"inherit",resolvedCapabilities:[],args:input.args,durationMs:Date.now()-started,depth:ctx.depth,error:{name:err.name??"Error",message:err.message??String(err)}}),wrapped}finally{session.depth-=1}},"delegateFn")}__name(createDelegateTool,"createDelegateTool");init_dist();init_scaffold();import fs8 from"node:fs";import path8 from"node:path";init_dist();init_auth_errors();init_project();var NAME_RE=/^[a-z][a-z0-9-]*$/;function isValidAgentName(name){return name.length===0||name.length>64?!1:NAME_RE.test(name)}__name(isValidAgentName,"isValidAgentName");var InvalidAgentNameError=class extends Error{static{__name(this,"InvalidAgentNameError")}name="InvalidAgentNameError";attempted;constructor(attempted){super(`'${attempted}' is not a valid agent name. Names must be lowercase, start with a letter, and contain only letters/digits/hyphens.`),this.attempted=attempted}};function resolveProjectRoot(cwd=process.cwd()){let dir=path8.resolve(cwd);for(let i=0;i<8;i++){if(fs8.existsSync(resolveProjectConfigPath(dir))||fs8.existsSync(path8.join(dir,"package.json")))return dir;let parent2=path8.dirname(dir);if(parent2===dir)break;dir=parent2}throw new Error(`Could not find a project root (no Fimo config or package.json) under ${cwd}. Run \`fimo agents *\` from inside a project.`)}__name(resolveProjectRoot,"resolveProjectRoot");function resolveFimoProject(cwd=process.cwd()){let projectRoot=findProjectRoot(cwd);if(!projectRoot)return null;try{return{projectRoot,settings:loadProjectSettings(projectRoot)}}catch{return null}}__name(resolveFimoProject,"resolveFimoProject");function resolveAgentBundlesDir(projectRoot){return resolveProjectAgentsDir(projectRoot)}__name(resolveAgentBundlesDir,"resolveAgentBundlesDir");function printBundleError(command,err){if(rethrowCliAuthError(err),isBundleError(err)){let e=err,hintParts=[];e.remediation&&hintParts.push(`fix: ${e.remediation}`),e.bundlePath&&hintParts.push(`at: ${e.bundlePath}`),ui.error({command,code:"AGENT_BUNDLE_ERROR",message:e.message,hint:hintParts.length>0?hintParts.join(" \xB7 "):void 0})}else ui.error({command,code:"AGENT_BUNDLE_ERROR",message:err.message??String(err)})}__name(printBundleError,"printBundleError");async function createAgent(opts){if(!isValidAgentName(opts.name))throw new InvalidAgentNameError(opts.name);let cwd=opts.cwd??process.cwd(),projectRoot;if(opts.requireFimoProject){let resolved=resolveFimoProject(cwd);if(!resolved)return{ok:!1,error:"Not inside a linked Fimo project. Run from inside a Fimo project, or pass -C <dir>."};projectRoot=resolved.projectRoot}else projectRoot=resolveProjectRoot(cwd);let targetDir=path9.join(resolveAgentBundlesDir(projectRoot),opts.name);if(fs9.existsSync(targetDir))return{ok:!1,error:`${path9.relative(projectRoot,targetDir)}/ already exists. Pick a different name or remove the existing directory first.`};let templateName=opts.template??"_default",templateRoot;try{templateRoot=resolveAgentTemplate(templateName)}catch{let available=listAgentTemplates().map(t2=>t2.name);throw new BundleTemplateNotFoundError(templateName,available)}return await copyAgentTemplate(templateRoot,targetDir),opts.description!==void 0&&writeDescriptionToConfig(path9.join(targetDir,"config.yaml"),opts.description),{ok:!0,agentDir:targetDir}}__name(createAgent,"createAgent");function writeDescriptionToConfig(configPath,description){let content2=fs9.readFileSync(configPath,"utf8"),line=`description: ${JSON.stringify(description)}`,next2;/^description:.*$/m.test(content2)?next2=content2.replace(/^description:.*$/m,line):/^version:\s*\d+.*$/m.test(content2)?next2=content2.replace(/^(version:\s*\d+.*)$/m,`$1
1191
1191
  ${line}`):next2=(content2.endsWith(`
1192
1192
  `)?content2:content2+`
1193
1193
  `)+line+`
@@ -1201,10 +1201,10 @@ ${renderDocument(document,{details:options.details===!0,agentName:name,sessionId
1201
1201
  Full report: fimo agents report ${target.agentName} --session ${target.sessionId} --details`}__name(renderDocument,"renderDocument");function readProjectId(projectRoot){try{return loadProjectSettings(projectRoot).projectId}catch{return}}__name(readProjectId,"readProjectId");init_esm();init_dist();init_dist2();init_config();init_sdk_transport();import{execFile}from"node:child_process";import path11 from"node:path";import{promisify}from"node:util";import{ZodError}from"zod";var execFileAsync=promisify(execFile);async function detectBundleDrift(projectRoot,agentName){let porcelain;try{let{stdout}=await execFileAsync("git",["status","--porcelain"],{cwd:projectRoot});porcelain=stdout}catch{return[]}if(porcelain.length===0)return[];let prefix=`${path11.relative(projectRoot,resolveAgentBundlesDir(projectRoot)).replace(/\\/g,"/")}/${agentName}/`;return porcelain.split(`
1202
1202
  `).map(line=>line.replace(/\r$/,"")).filter(line=>{if(line.length===0)return!1;let pathPart=line.slice(3),[from,to]=pathPart.split(" -> ");return(from?.startsWith(prefix)??!1)||(to?.startsWith(prefix)??!1)})}__name(detectBundleDrift,"detectBundleDrift");async function runAgent(opts){let cwd=opts.cwd??process.cwd(),fimoProject=resolveFimoProject(cwd),projectRoot=fimoProject?.projectRoot??resolveProjectRoot(cwd);if(!opts.skipDriftCheck){let driftLines=await detectBundleDrift(projectRoot,opts.name);if(driftLines.length>0)return{exitCode:1,driftLines}}let projectId=opts.projectId??fimoProject?.settings.projectId;if(!projectId)throw new Error("Could not determine project id. Pass --project <id>, or run from inside a linked Fimo project.");opts.branch!==void 0&&BranchSchema.parse(opts.branch);let operationInput=fimoOperations["agents.run"].inputSchema.parse({projectId,agentName:opts.name}),cfg=loadConfig(),fimo=createCliFimoClient(cfg);try{let{data:result}=await fimo.execute("agents.run",operationInput);return{exitCode:0,sessionId:"sessionId"in result?result.sessionId:void 0,skipped:"skipped"in result?result.skipped:void 0}}catch(err){if(err instanceof ApiRequestError)throw new Error(`Failed to run '${opts.name}' (HTTP ${err.status}): ${err.detail}`);if(err instanceof ZodError)return{exitCode:0};throw err}}__name(runAgent,"runAgent");async function runAgentCommand(name,options){try{let result=await runAgent({name,cwd:options.cwd,branch:options.branch,projectId:options.project,skipDriftCheck:options.skipDriftCheck});if(result.driftLines&&result.driftLines.length>0){ui.error({command:"agents run",code:"BUNDLE_DRIFT",message:`Bundle '${name}' has local changes that haven't been deployed:
1203
1203
  ${result.driftLines.map(l=>` ${l}`).join(`
1204
- `)}`,hint:"Run `fimo deploy` to push them first, or `fimo agents run --skip-drift-check` to dispatch the deployed version anyway."});return}if(result.skipped){ui.info({command:"agents run",message:`Dispatch was skipped: ${result.skipped}`});return}if(result.sessionId){ui.ok({command:"agents run",headline:`Triggered ${name} (session ${result.sessionId})`,details:{agent:name,session_id:result.sessionId},hint:`Watch progress: fimo agents runs ${name}`});return}ui.error({command:"agents run",code:"UNEXPECTED_RUN_RESPONSE",message:"Unexpected response from server (no sessionId, no skipped)."})}catch(err){printBundleError("agents run",err)}}__name(runAgentCommand,"runAgentCommand");init_dist();init_config();init_sdk_transport();init_project();async function agentRunsCommand(name,options){try{let pagination=parsePaginationOptions(options,{defaultLimit:20,maxLimit:200}),projectRoot=resolveProjectRoot(options.cwd??process.cwd()),projectId=options.project??readProjectId2(projectRoot);if(!projectId){ui.error({command:"agents runs",code:"NO_PROJECT_ID",message:"Could not determine project id.",hint:"Pass --project, or run from a linked Fimo project directory."});return}let cfg=loadConfig(),fimo=createCliFimoClient(cfg),branch=options.branch,page;try{page=await collectPaginatedItems({cursor:pagination.cursor,allPages:pagination.allPages,fetchPage:__name(async cursor=>{let pageNumber=parseCursorNumber(cursor,{defaultValue:1,minimum:1}),response=await fimo.execute("agents.runs",{projectId,agentName:name,branch,page:pageNumber,limit:pagination.limit});return{items:response.data,nextCursor:response.hasMore?String(response.page+1):null,total:response.total,page:response.page,totalPages:response.totalPages,hasMore:response.hasMore}},"fetchPage")})}catch(err){if(err instanceof ApiRequestError){ui.error({command:"agents runs",code:"AGENT_SESSIONS_FETCH_FAILED",message:`Failed to fetch sessions (HTTP ${err.status}): ${err.detail}`});return}throw err}let rows=page.items.map(session=>({id:session.id.slice(0,8),started:formatStartedAt(session.startedAt),duration:formatDuration(session.startedAt,session.finishedAt??session.cancelledAt),status:session.status,trigger:session.triggerKind,branch:session.branch,cost:`$${session.costUsd.toFixed(4)}`})),trailingArgs=[];branch&&trailingArgs.push("--branch",branch),options.project&&trailingArgs.push("--project",options.project),options.cwd&&trailingArgs.push("--cwd",options.cwd);let hint=page.nextCursor?buildPaginationHint(["fimo","agents","runs",name],{cursor:page.nextCursor,limit:pagination.limit,trailingArgs}):void 0,jsonData={items:page.items,nextCursor:page.nextCursor,total:page.total,page:page.page,totalPages:page.totalPages,hasMore:page.hasMore};if(rows.length===0){ui.info({command:"agents runs",message:`(no recent sessions for '${name}'${branch?` on Branch '${branch}'`:""})`,jsonData});return}ui.table({command:"agents runs",columns:[{key:"id",label:"ID"},{key:"started",label:"STARTED"},{key:"duration",label:"DURATION"},{key:"status",label:"STATUS"},{key:"trigger",label:"TRIGGER"},{key:"branch",label:"BRANCH"},{key:"cost",label:"COST"}],rows,jsonData,cellStyle:__name((row2,column)=>{if(column==="status")return statusRole(row2.status);if(column==="cost")return"dim"},"cellStyle"),...hint?{hint}:{}})}catch(err){if(err instanceof PaginationValidationError){ui.error({command:"agents runs",code:"AGENT_RUNS_INVALID_PAGINATION",message:err.message});return}printBundleError("agents runs",err)}}__name(agentRunsCommand,"agentRunsCommand");function readProjectId2(projectRoot){try{return loadProjectSettings(projectRoot).projectId}catch{return}}__name(readProjectId2,"readProjectId");function statusRole(status){switch(status){case"finished":return"success";case"errored":return"error";case"cancelled":return"warn";case"running":return"accent";default:return}}__name(statusRole,"statusRole");function formatStartedAt(startedAt){if(!startedAt)return"\u2014";let date=new Date(startedAt);return Number.isNaN(date.getTime())?"\u2014":date.toISOString().slice(0,16).replace("T"," ")}__name(formatStartedAt,"formatStartedAt");function formatDuration(startedAt,endedAt){if(!startedAt||!endedAt)return"\u2014";let start=new Date(startedAt),ms=new Date(endedAt).getTime()-start.getTime();if(Number.isNaN(ms)||ms<0)return"\u2014";if(ms<1e3)return`${ms}ms`;let secs=Math.floor(ms/1e3);if(secs<60)return`${secs}s`;let mins=Math.floor(secs/60),remainingSecs=secs%60;return`${mins}m${remainingSecs.toString().padStart(2,"0")}s`}__name(formatDuration,"formatDuration");init_dist();var import_yaml3=__toESM(require_dist(),1);import fs10 from"node:fs";import path12 from"node:path";var SECRET_KEY_RE=/^[A-Z_][A-Z0-9_]*$/,PUBLIC_CONFIG_PREFIX2=/^(PUBLIC_|VITE_|NEXT_PUBLIC_)/;async function agentSecretsListCommand(name,opts){try{let config=readAgentConfig(name,opts.cwd),secrets=normalizeSecrets(config.secrets);if(secrets.length===0){ui.info({command:"agents secrets list",message:`No secrets requested by agent '${name}'.`});return}ui.table({command:"agents secrets list",columns:[{key:"key",label:"KEY"},{key:"requirement",label:"REQUIREMENT"},{key:"delivery",label:"DELIVERY"}],rows:secrets.map(secret=>({key:secret.key,requirement:secret.required===!1?"optional":"required",delivery:secret.delivery??"process_env"}))})}catch(err){printBundleError("agents secrets list",err)}}__name(agentSecretsListCommand,"agentSecretsListCommand");async function agentSecretsAddCommand(name,key,opts){try{validateSecretKey(key);let{filePath,config}=readAgentConfigWithPath(name,opts.cwd),secrets=normalizeSecrets(config.secrets);secrets.some(secret=>secret.key===key)||(secrets.push({key,required:!opts.optional,delivery:"process_env"}),config.secrets=secrets,fs10.writeFileSync(filePath,(0,import_yaml3.stringify)(config))),ui.ok({command:"agents secrets add",headline:`Agent '${name}' now requests secret ${key}`,details:{agent:name,key,optional:opts.optional===!0}})}catch(err){printBundleError("agents secrets add",err)}}__name(agentSecretsAddCommand,"agentSecretsAddCommand");async function agentSecretsRemoveCommand(name,key,opts){try{let{filePath,config}=readAgentConfigWithPath(name,opts.cwd),after2=normalizeSecrets(config.secrets).filter(secret=>secret.key!==key);config.secrets=after2,fs10.writeFileSync(filePath,(0,import_yaml3.stringify)(config)),ui.ok({command:"agents secrets remove",headline:`Agent '${name}' no longer requests secret ${key}`,details:{agent:name,key}})}catch(err){printBundleError("agents secrets remove",err)}}__name(agentSecretsRemoveCommand,"agentSecretsRemoveCommand");function normalizeSecrets(raw){if(!Array.isArray(raw))return[];let out=[];for(let item of raw){if(typeof item=="string"){out.push({key:item,required:!0,delivery:"process_env"});continue}if(item&&typeof item=="object"&&typeof item.key=="string"){let entry=item;out.push({key:entry.key,required:typeof entry.required=="boolean"?entry.required:!0,delivery:(entry.delivery==="process_env","process_env")})}}return out}__name(normalizeSecrets,"normalizeSecrets");function validateSecretKey(key){if(!SECRET_KEY_RE.test(key))throw new Error(`Secret key '${key}' must be UPPER_SNAKE_CASE.`);if(PUBLIC_CONFIG_PREFIX2.test(key))throw new Error(`Secret key '${key}' uses a public variable prefix. Use project variables for public values.`)}__name(validateSecretKey,"validateSecretKey");function readAgentConfig(name,cwd){return readAgentConfigWithPath(name,cwd).config}__name(readAgentConfig,"readAgentConfig");function readAgentConfigWithPath(name,cwd){let projectRoot=resolveProjectRoot(cwd??process.cwd()),filePath=path12.join(resolveAgentBundlesDir(projectRoot),name,"config.yaml");if(!fs10.existsSync(filePath))throw new Error(`Agent '${name}' does not have a config.yaml at ${filePath}.`);let parsed=(0,import_yaml3.parse)(fs10.readFileSync(filePath,"utf8")),config=parsed&&typeof parsed=="object"&&!Array.isArray(parsed)?parsed:{};return{filePath,config}}__name(readAgentConfigWithPath,"readAgentConfigWithPath");init_dist();init_scaffold();async function listTemplatesCommand(){let templates=listAgentTemplates();if(templates.length===0){ui.info({command:"agents list-templates",message:"No agent templates bundled with this CLI."});return}ui.result({command:"agents list-templates",data:{templates},render:__name(()=>{let lines=["Available templates:"],longest=templates.reduce((acc,t2)=>Math.max(acc,t2.name.length),0);for(let t2 of templates){let padded=t2.name.padEnd(longest);lines.push(` ${padded} ${t2.goalFirstLine??"(no GOAL.md)"}`)}return lines.push(""),lines.push(" Use `fimo agents create <name> --template <template>` to scaffold."),lines.join(`
1204
+ `)}`,hint:"Run `fimo deploy` to push them first, or `fimo agents run --skip-drift-check` to dispatch the deployed version anyway."});return}if(result.skipped){ui.info({command:"agents run",message:`Dispatch was skipped: ${result.skipped}`});return}if(result.sessionId){ui.ok({command:"agents run",headline:`Triggered ${name} (session ${result.sessionId})`,details:{agent:name,session_id:result.sessionId},hint:`Watch progress: fimo agents runs ${name}`});return}ui.error({command:"agents run",code:"UNEXPECTED_RUN_RESPONSE",message:"Unexpected response from server (no sessionId, no skipped)."})}catch(err){printBundleError("agents run",err)}}__name(runAgentCommand,"runAgentCommand");init_dist();init_config();init_sdk_transport();init_project();async function agentRunsCommand(name,options){try{let pagination=parsePaginationOptions(options,{defaultLimit:20,maxLimit:200}),projectRoot=resolveProjectRoot(options.cwd??process.cwd()),projectId=options.project??readProjectId2(projectRoot);if(!projectId){ui.error({command:"agents runs",code:"NO_PROJECT_ID",message:"Could not determine project id.",hint:"Pass --project, or run from a linked Fimo project directory."});return}let cfg=loadConfig(),fimo=createCliFimoClient(cfg),branch=options.branch,page;try{page=await collectPaginatedItems({cursor:pagination.cursor,allPages:pagination.allPages,fetchPage:__name(async cursor=>{let pageNumber=parseCursorNumber(cursor,{defaultValue:1,minimum:1}),response=await fimo.execute("agents.runs",{projectId,agentName:name,branch,page:pageNumber,limit:pagination.limit});return{items:response.data,nextCursor:response.hasMore?String(response.page+1):null,total:response.total,page:response.page,totalPages:response.totalPages,hasMore:response.hasMore}},"fetchPage")})}catch(err){if(err instanceof ApiRequestError){ui.error({command:"agents runs",code:"AGENT_SESSIONS_FETCH_FAILED",message:`Failed to fetch sessions (HTTP ${err.status}): ${err.detail}`});return}throw err}let rows=page.items.map(session=>({id:session.id.slice(0,8),started:formatStartedAt(session.startedAt),duration:formatDuration(session.startedAt,session.finishedAt??session.cancelledAt),status:session.status,trigger:session.triggerKind,branch:session.branch,credits:session.creditsUsed==null?"\u2014":session.creditsUsed.toLocaleString("en-US")})),trailingArgs=[];branch&&trailingArgs.push("--branch",branch),options.project&&trailingArgs.push("--project",options.project),options.cwd&&trailingArgs.push("--cwd",options.cwd);let hint=page.nextCursor?buildPaginationHint(["fimo","agents","runs",name],{cursor:page.nextCursor,limit:pagination.limit,trailingArgs}):void 0,jsonData={items:page.items,nextCursor:page.nextCursor,total:page.total,page:page.page,totalPages:page.totalPages,hasMore:page.hasMore};if(rows.length===0){ui.info({command:"agents runs",message:`(no recent sessions for '${name}'${branch?` on Branch '${branch}'`:""})`,jsonData});return}ui.table({command:"agents runs",columns:[{key:"id",label:"ID"},{key:"started",label:"STARTED"},{key:"duration",label:"DURATION"},{key:"status",label:"STATUS"},{key:"trigger",label:"TRIGGER"},{key:"branch",label:"BRANCH"},{key:"credits",label:"CREDITS"}],rows,jsonData,cellStyle:__name((row2,column)=>{if(column==="status")return statusRole(row2.status);if(column==="credits")return"dim"},"cellStyle"),...hint?{hint}:{}})}catch(err){if(err instanceof PaginationValidationError){ui.error({command:"agents runs",code:"AGENT_RUNS_INVALID_PAGINATION",message:err.message});return}printBundleError("agents runs",err)}}__name(agentRunsCommand,"agentRunsCommand");function readProjectId2(projectRoot){try{return loadProjectSettings(projectRoot).projectId}catch{return}}__name(readProjectId2,"readProjectId");function statusRole(status){switch(status){case"finished":return"success";case"errored":return"error";case"cancelled":return"warn";case"running":return"accent";default:return}}__name(statusRole,"statusRole");function formatStartedAt(startedAt){if(!startedAt)return"\u2014";let date=new Date(startedAt);return Number.isNaN(date.getTime())?"\u2014":date.toISOString().slice(0,16).replace("T"," ")}__name(formatStartedAt,"formatStartedAt");function formatDuration(startedAt,endedAt){if(!startedAt||!endedAt)return"\u2014";let start=new Date(startedAt),ms=new Date(endedAt).getTime()-start.getTime();if(Number.isNaN(ms)||ms<0)return"\u2014";if(ms<1e3)return`${ms}ms`;let secs=Math.floor(ms/1e3);if(secs<60)return`${secs}s`;let mins=Math.floor(secs/60),remainingSecs=secs%60;return`${mins}m${remainingSecs.toString().padStart(2,"0")}s`}__name(formatDuration,"formatDuration");init_dist();var import_yaml3=__toESM(require_dist(),1);import fs10 from"node:fs";import path12 from"node:path";var SECRET_KEY_RE=/^[A-Z_][A-Z0-9_]*$/,PUBLIC_CONFIG_PREFIX2=/^(PUBLIC_|VITE_|NEXT_PUBLIC_)/;async function agentSecretsListCommand(name,opts){try{let config=readAgentConfig(name,opts.cwd),secrets=normalizeSecrets(config.secrets);if(secrets.length===0){ui.info({command:"agents secrets list",message:`No secrets requested by agent '${name}'.`});return}ui.table({command:"agents secrets list",columns:[{key:"key",label:"KEY"},{key:"requirement",label:"REQUIREMENT"},{key:"delivery",label:"DELIVERY"}],rows:secrets.map(secret=>({key:secret.key,requirement:secret.required===!1?"optional":"required",delivery:secret.delivery??"process_env"}))})}catch(err){printBundleError("agents secrets list",err)}}__name(agentSecretsListCommand,"agentSecretsListCommand");async function agentSecretsAddCommand(name,key,opts){try{validateSecretKey(key);let{filePath,config}=readAgentConfigWithPath(name,opts.cwd),secrets=normalizeSecrets(config.secrets);secrets.some(secret=>secret.key===key)||(secrets.push({key,required:!opts.optional,delivery:"process_env"}),config.secrets=secrets,fs10.writeFileSync(filePath,(0,import_yaml3.stringify)(config))),ui.ok({command:"agents secrets add",headline:`Agent '${name}' now requests secret ${key}`,details:{agent:name,key,optional:opts.optional===!0}})}catch(err){printBundleError("agents secrets add",err)}}__name(agentSecretsAddCommand,"agentSecretsAddCommand");async function agentSecretsRemoveCommand(name,key,opts){try{let{filePath,config}=readAgentConfigWithPath(name,opts.cwd),after2=normalizeSecrets(config.secrets).filter(secret=>secret.key!==key);config.secrets=after2,fs10.writeFileSync(filePath,(0,import_yaml3.stringify)(config)),ui.ok({command:"agents secrets remove",headline:`Agent '${name}' no longer requests secret ${key}`,details:{agent:name,key}})}catch(err){printBundleError("agents secrets remove",err)}}__name(agentSecretsRemoveCommand,"agentSecretsRemoveCommand");function normalizeSecrets(raw){if(!Array.isArray(raw))return[];let out=[];for(let item of raw){if(typeof item=="string"){out.push({key:item,required:!0,delivery:"process_env"});continue}if(item&&typeof item=="object"&&typeof item.key=="string"){let entry=item;out.push({key:entry.key,required:typeof entry.required=="boolean"?entry.required:!0,delivery:(entry.delivery==="process_env","process_env")})}}return out}__name(normalizeSecrets,"normalizeSecrets");function validateSecretKey(key){if(!SECRET_KEY_RE.test(key))throw new Error(`Secret key '${key}' must be UPPER_SNAKE_CASE.`);if(PUBLIC_CONFIG_PREFIX2.test(key))throw new Error(`Secret key '${key}' uses a public variable prefix. Use project variables for public values.`)}__name(validateSecretKey,"validateSecretKey");function readAgentConfig(name,cwd){return readAgentConfigWithPath(name,cwd).config}__name(readAgentConfig,"readAgentConfig");function readAgentConfigWithPath(name,cwd){let projectRoot=resolveProjectRoot(cwd??process.cwd()),filePath=path12.join(resolveAgentBundlesDir(projectRoot),name,"config.yaml");if(!fs10.existsSync(filePath))throw new Error(`Agent '${name}' does not have a config.yaml at ${filePath}.`);let parsed=(0,import_yaml3.parse)(fs10.readFileSync(filePath,"utf8")),config=parsed&&typeof parsed=="object"&&!Array.isArray(parsed)?parsed:{};return{filePath,config}}__name(readAgentConfigWithPath,"readAgentConfigWithPath");init_dist();init_scaffold();async function listTemplatesCommand(){let templates=listAgentTemplates();if(templates.length===0){ui.info({command:"agents list-templates",message:"No agent templates bundled with this CLI."});return}ui.result({command:"agents list-templates",data:{templates},render:__name(()=>{let lines=["Available templates:"],longest=templates.reduce((acc,t2)=>Math.max(acc,t2.name.length),0);for(let t2 of templates){let padded=t2.name.padEnd(longest);lines.push(` ${padded} ${t2.goalFirstLine??"(no GOAL.md)"}`)}return lines.push(""),lines.push(" Use `fimo agents create <name> --template <template>` to scaffold."),lines.join(`
1205
1205
  `)},"render")})}__name(listTemplatesCommand,"listTemplatesCommand");import fs11 from"node:fs";import path13 from"node:path";init_dist();init_auth();init_config();init_sdk_transport();init_project_context();init_project();async function runValidateAgents(opts){let projectRoot=resolveProjectRoot(opts.cwd??process.cwd()),agentsDir=resolveAgentBundlesDir(projectRoot),configPath=resolveProjectPolicyPath(projectRoot),policy=validatePolicy(configPath,projectRoot),bundleList=[];if(opts.name){if(!isValidAgentName(opts.name))return{ok:!1,policy,bundles:[{name:opts.name,ok:!1,phases:{parse:{ok:!1,issues:[{pointer:"name",message:`Invalid agent name '${opts.name}'.`}]},capabilities:{ok:!0,issues:[]},composition:{ok:!0,issues:[]},semantics:{ok:!0,issues:[]}},warnings:[]}]};let bundle=await safeParse(path13.join(agentsDir,opts.name));if(!bundle.ok)return{ok:!1,policy,bundles:[{name:opts.name,ok:!1,phases:{parse:{ok:!1,issues:[bundle.issue]},capabilities:{ok:!0,issues:[]},composition:{ok:!0,issues:[]},semantics:{ok:!0,issues:[]}},warnings:[]}]};bundleList=[bundle.bundle]}else bundleList=await listBundles(agentsDir);let reports=[],cloudNotifications=hasCloudNotificationRecipients(configPath);for(let bundle of bundleList){let report=validateOneBundle(bundle,bundleList);!cloudNotifications&&(bundle.config.triggers??[]).some(t2=>t2.type!=="manual")&&report.warnings.push({pointer:`${path13.basename(configPath)}:agents.notifications.email_recipients`,message:"Cloud triggers stay unwired until `agents.notifications.email_recipients` is non-empty (ADR-0009)."}),reports.push(report)}return{ok:(policy?.ok??!0)&&reports.every(r=>r.ok),policy,bundles:reports}}__name(runValidateAgents,"runValidateAgents");function hasCloudNotificationRecipients(policyPath){if(!fs11.existsSync(policyPath))return!1;try{return(parseFimoConfig(fs11.readFileSync(policyPath,"utf8"),{path:path13.basename(policyPath)}).agents?.notifications?.email_recipients??[]).length>0}catch{return!1}}__name(hasCloudNotificationRecipients,"hasCloudNotificationRecipients");function validatePolicy(policyPath,projectRoot){if(!fs11.existsSync(policyPath))return null;try{let text3=fs11.readFileSync(policyPath,"utf8");return parseFimoConfig(text3,{path:path13.relative(projectRoot,policyPath)}),{ok:!0,issues:[]}}catch(err){return{ok:!1,issues:[{pointer:path13.relative(projectRoot,policyPath),message:err.message,remediation:err.remediation}]}}}__name(validatePolicy,"validatePolicy");async function safeParse(bundlePath){try{return{ok:!0,bundle:await parseBundle(bundlePath)}}catch(err){return{ok:!1,issue:{pointer:path13.basename(bundlePath),message:err.message,remediation:err.remediation}}}}__name(safeParse,"safeParse");function validateOneBundle(bundle,allBundles){let phases={parse:{ok:!0,issues:[]},capabilities:{ok:!0,issues:[]},composition:{ok:!0,issues:[]},semantics:{ok:!0,issues:[]}},vocab=validateAgainstVocabulary(bundle.capabilities,CAPABILITY_VOCABULARY);for(let token of vocab.unknown){let suggestion=suggestCapability(token),err=new BundleInvalidCapabilityError(token,"unknown",{suggestion:suggestion??void 0});phases.capabilities.ok=!1,phases.capabilities.issues.push({pointer:`capabilities.yaml: ${token}`,message:err.message,remediation:err.remediation})}for(let token of vocab.nonDeclarable){let err=new BundleInvalidCapabilityError(token,"runtime_only");phases.capabilities.ok=!1,phases.capabilities.issues.push({pointer:`capabilities.yaml: ${token}`,message:err.message,remediation:err.remediation})}let agentMap=new Map(allBundles.map(b=>[b.name,b])),compositionResult=composition_exports.validateComposition(bundle,agentMap);if(compositionResult.cycle){let err=new BundleCompositionCycleError(compositionResult.cycle);phases.composition.ok=!1,phases.composition.issues.push({pointer:"config.yaml:composition",message:err.message,remediation:err.remediation})}for(let missingName of compositionResult.missing)phases.composition.ok=!1,phases.composition.issues.push({pointer:`config.yaml:composition.sub-agents[name=${missingName}]`,message:`Sub-agent '${missingName}' is referenced but not present in the project's agent-bundle directory.`,remediation:`Run \`fimo agents create ${missingName}\` or remove the reference from composition.sub-agents.`});for(let invalid of compositionResult.invalidGrants)phases.composition.ok=!1,phases.composition.issues.push({pointer:`config.yaml:composition.sub-agents[name=${invalid.subAgentName}].explicit_grants`,message:`explicit_grants references capabilities the sub-agent never declared: [${invalid.invalid.join(", ")}]. Declared: [${invalid.declared.join(", ")}].`,remediation:"Remove the undeclared tokens from explicit_grants, or add them to the sub-agent's capabilities.yaml."});if(!compositionResult.cycle){let cycle=detectCompositionCycle({root:bundle,agentMap});if(cycle){let err=new BundleCompositionCycleError(cycle);phases.composition.ok=!1,phases.composition.issues.push({pointer:"config.yaml:composition",message:err.message,remediation:err.remediation})}}let issues=validateBundle(bundle,{availableAgents:allBundles}),warnings=[...bundle.warnings];for(let issue of issues){if(issue.severity==="warning"){warnings.push({pointer:issue.pointer,message:issue.message});continue}issue.pointer.startsWith("capabilities.yaml")||issue.pointer.startsWith("config.yaml:composition")||(phases.semantics.ok=!1,phases.semantics.issues.push({pointer:issue.pointer,message:issue.message}))}let ok=phases.parse.ok&&phases.capabilities.ok&&phases.composition.ok&&phases.semantics.ok;return{name:bundle.name,ok,phases,warnings}}__name(validateOneBundle,"validateOneBundle");async function runAvailabilityChecks(cwd){let projectRoot=resolveProjectRoot(cwd),projectId;try{projectId=loadProjectSettings(projectRoot).projectId}catch{if(projectId=process.env.FIMO_PROJECT_ID?.trim()??"",!projectId)return{ok:!0,skippedReason:"not-linked",issues:[]}}if(!process.env.FIMO_API_TOKEN?.trim()&&!readCredentials())return{ok:!0,skippedReason:"not-signed-in",issues:[]};let integrations=createIntegrationService(loadConfig()),context=await getProjectContext({cwd:projectRoot}),fimo=createCliFimoClient(loadConfig(),context.branch),{environment}=await fimo.execute("environments.resolve",{projectId,branch:context.branch}),agentsDir=resolveAgentBundlesDir(projectRoot),bundles=await listBundles(agentsDir),issues=[],configPath=__name(agentName=>path13.relative(projectRoot,path13.join(agentsDir,agentName,"config.yaml")).replaceAll("\\","/"),"configPath"),integrationsByAgent=bundles.map(bundle=>({name:bundle.name,integrations:Object.entries(agentIntegrationPolicy(bundle.config)).map(([integrationKey,entry])=>({integrationKey,enabled:entry.enabled,tools:enabledAgentIntegrationTools(entry),allTools:entry.tools===void 0,toolsConfigured:entry.tools!==void 0})).filter(entry=>entry.enabled)})).filter(entry=>entry.integrations.length>0);if(integrationsByAgent.length>0){let statuses=await integrations.list(projectId),statusByKey=new Map(statuses.map(status=>[status.integrationKey,status])),infoByKey=new Map;for(let agent of integrationsByAgent)for(let integration of agent.integrations){let file=configPath(agent.name),status=statusByKey.get(integration.integrationKey);if(!status){issues.push({pointer:file,message:`${agent.name} allows unsupported integration ${integration.integrationKey}.`});continue}integration.toolsConfigured&&integration.tools.length===0&&issues.push({pointer:file,message:`${agent.name} enables ${integration.integrationKey}, but its tools map allows none. Remove the tools map to allow all available tools, or set at least one integrations.${integration.integrationKey}.tools.<tool>: true entry.`}),status.enabled||issues.push({pointer:file,message:`${agent.name} allows ${integration.integrationKey}, but the project integration is not enabled. Run: fimo integrations enable ${integration.integrationKey}`});let info=infoByKey.get(integration.integrationKey)??await integrations.getInfo(projectId,integration.integrationKey);infoByKey.set(integration.integrationKey,info);let knownTools=new Set(info.tools.map(tool=>tool.key)),effectiveTools=integration.allTools?[...knownTools]:integration.tools;for(let tool of effectiveTools)knownTools.has(tool)||issues.push({pointer:file,message:`${agent.name} allows unknown ${integration.integrationKey}.${tool} tool. Supported tools: ${[...knownTools].sort().join(", ")}`})}}let secretsByAgent=bundles.map(bundle=>({name:bundle.name,keys:(bundle.config.secrets??[]).filter(secret=>secret.required!==!1).map(secret=>secret.key)})).filter(entry=>entry.keys.length>0);if(secretsByAgent.length>0){let defined=new Set((await fimo.execute("secrets.list",{projectId,kind:"secret",environment})).map(secret=>secret.key));for(let entry of secretsByAgent)for(let key of entry.keys)defined.has(key)||issues.push({pointer:configPath(entry.name),message:`${entry.name} requires project secret ${key}, but it is not set. Run: fimo secrets add ${key} --stdin`})}return{ok:issues.length===0,skippedReason:null,issues}}__name(runAvailabilityChecks,"runAvailabilityChecks");async function validateAgentsCommand(opts){let report;try{report=await runValidateAgents(opts)}catch(err){throw printBundleError("agents validate",err),opts.noExit||(process.exitCode=1),err}return report.bundles.length===0&&!report.policy?(ui.info({command:"agents validate",message:"No bundles or Fimo project config found."}),report):(report.availability=await runAvailabilityChecks(opts.cwd??process.cwd()),report.availability.ok||(report.ok=!1),ui.result({command:"agents validate",data:report,render:__name(()=>renderReportHuman(report),"render")}),!report.ok&&!opts.noExit&&(process.exitCode=1),report)}__name(validateAgentsCommand,"validateAgentsCommand");function renderReportHuman(report){let lines=[];if(report.policy)if(report.policy.ok)lines.push(" \u2713 Fimo config policy ok");else{lines.push(" \u2717 Fimo config");for(let issue of report.policy.issues)lines.push(` \u2717 ${issue.message}`),issue.remediation&&lines.push(` fix: ${issue.remediation}`)}for(let bundle of report.bundles)if(bundle.ok){lines.push(` \u2713 ${bundle.name} all phases ok`);for(let w3 of bundle.warnings)lines.push(` ! ${w3.pointer}: ${w3.message}`)}else{lines.push(` \u2717 ${bundle.name}`);for(let phase of["parse","capabilities","composition","semantics"])for(let issue of bundle.phases[phase].issues)lines.push(` \u2717 [${phase}] ${issue.message}`),issue.remediation&&lines.push(` fix: ${issue.remediation}`)}if(report.availability)if(report.availability.skippedReason){let why=report.availability.skippedReason==="not-signed-in"?"not signed in \u2014 run `fimo login`":"no linked project";lines.push(` \u21B7 integrations & secrets \u2014 skipped (${why})`)}else if(report.availability.ok)lines.push(" \u2713 integrations & secrets available");else{lines.push(" \u2717 integrations & secrets");for(let issue of report.availability.issues)lines.push(` \u2717 ${issue.message}`)}return lines.join(`
1206
- `)}__name(renderReportHuman,"renderReportHuman");function registerAgentsCommands(program2){let agents=program2.command("agents").description("AI agent bundle management (M13)");agents.command("create <name>").description("Scaffold .fimo/agents/<name>/ from a template").option("--template <name>","Template to copy from (default: _default)").option("--description <text>","Short tagline written to config.yaml (one line, up to 280 chars)").option("-C, --cwd <dir>","Project directory").action((name,opts)=>createAgentCommand(name,opts)),agents.command("list").description("List agents declared under the project agents directory").option("-C, --cwd <dir>","Project directory").option("--project <id>","Project id (accepted for parity with cloud-scoped subcommands)").action(opts=>listAgentsCommand(opts)),agents.command("list-templates").alias("templates").description("List the bundled starter-catalog templates").action(()=>listTemplatesCommand()),agents.command("validate [name]").description("Validate one or every bundle (parse, capabilities, composition, policy)").option("--json","Emit structured ValidationReport (for CI)").option("-C, --cwd <dir>","Project directory").action(async(name,opts)=>{await validateAgentsCommand({name,json:opts.json,cwd:opts.cwd})}),agents.command("integrations <name>").description("Preview local integration access policy for an agent").option("--project <id>","Project id (defaults to the linked project in .fimo/project.json or legacy .fimo.settings.json)").option("-C, --cwd <dir>","Project directory").action((name,opts)=>agentIntegrationsCommand(name,opts)),agents.command("run <name>").description("Trigger a manual run on the server (returns sessionId)").option("--branch <branch>","Target Branch (default: main)").option("--project <id>","Project id (defaults to .fimo/project.json or legacy .fimo.settings.json projectId)").option("-C, --cwd <dir>","Project directory").option("--skip-drift-check","Dispatch even when the bundle has uncommitted local changes").action((name,opts)=>runAgentCommand(name,opts)),addPaginationOptions(agents.command("runs <name>").description("Paginated session list"),{defaultLimit:20,maxLimit:200}).option("--branch <branch>","Filter sessions to a specific Branch").option("--project <id>","Project id (defaults to the linked project in .fimo/project.json or legacy .fimo.settings.json)").option("-C, --cwd <dir>","Project directory").action((name,opts)=>agentRunsCommand(name,opts)),agents.command("report <name>").description("Print a run's report brief; latest run unless --session is given").option("--session <id>","Target a specific session id").option("--details","Print the report's full evidence section as well as its brief").option("--branch <branch>","Pick the latest run on a specific Branch").option("--project <id>","Project id (defaults to the linked project in .fimo/project.json or legacy .fimo.settings.json)").option("-C, --cwd <dir>","Project directory").action((name,opts)=>agentReportCommand(name,opts));let secrets=agents.command("secrets").description("Edit the secrets requested in an agent config.yaml");secrets.command("list <name>").description("List secret keys requested by an agent config").option("-C, --cwd <dir>","Project directory").action((name,opts)=>agentSecretsListCommand(name,opts)),secrets.command("add <name> <key>").description("Add a secret key request to an agent config").option("-C, --cwd <dir>","Project directory").option("--optional","Mark the secret as optional").action((name,key,opts)=>agentSecretsAddCommand(name,key,opts)),secrets.command("remove <name> <key>").alias("rm").description("Remove a secret key request from an agent config").option("-C, --cwd <dir>","Project directory").action((name,key,opts)=>agentSecretsRemoveCommand(name,key,opts))}__name(registerAgentsCommands,"registerAgentsCommands");init_dist();init_project_context();function parseRangeOptions(options){let params={};if(options.preset&&(params.preset=options.preset),options.groupBy&&(params.groupBy=options.groupBy),options.from&&(params.from=options.from),options.to&&(params.to=options.to),options.days!==void 0){let n=Number(options.days);if(!Number.isFinite(n))throw new Error(`Invalid --days value: ${options.days}`);params.days=n}return params}__name(parseRangeOptions,"parseRangeOptions");function renderPrettyJson(data2){return JSON.stringify(data2,null,2)}__name(renderPrettyJson,"renderPrettyJson");async function analyticsPageviewsCommand(options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd),{data:result}=await fimo.execute("analytics.pageviews",{projectId:ctx.projectId,branch:ctx.branch,...parseRangeOptions(options)});ui.result({command:"analytics pageviews",data:result,render:__name(()=>renderPrettyJson(result),"render")})}__name(analyticsPageviewsCommand,"analyticsPageviewsCommand");var TOP_DIMENSIONS=["pages","browsers","devices","countries","sources"];async function analyticsTopCommand(dimension,options,cmd){if(!TOP_DIMENSIONS.includes(dimension))throw new Error(`Unknown dimension: ${dimension}. Expected one of: ${TOP_DIMENSIONS.join(", ")}`);let{ctx,fimo}=await bootstrapProjectCommand(options,cmd),{items}=await fimo.execute("analytics.top",{projectId:ctx.projectId,branch:ctx.branch,dimension,...parseRangeOptions(options)}),limit;if(options.limit!==void 0){let n=Number(options.limit);if(!Number.isFinite(n)||n<1)throw new Error(`Invalid --limit value: ${options.limit}`);limit=n}let trimmed=limit!==void 0?items.slice(0,limit):items;ui.result({command:"analytics top",data:{dimension,items:trimmed},render:__name(()=>renderPrettyJson(trimmed),"render")})}__name(analyticsTopCommand,"analyticsTopCommand");async function analyticsAnnotationsListCommand(options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd),{annotations:annotations2}=await fimo.execute("analytics.annotationsList",{projectId:ctx.projectId,branch:ctx.branch,...parseRangeOptions(options)});ui.result({command:"analytics annotations list",data:{annotations:annotations2},render:__name(()=>renderPrettyJson(annotations2),"render")})}__name(analyticsAnnotationsListCommand,"analyticsAnnotationsListCommand");async function analyticsAnnotationsSetCommand(date,content2,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd),result=(await fimo.execute("analytics.annotationsSet",{projectId:ctx.projectId,branch:ctx.branch,date,content:content2}))?.data??null;ui.result({command:"analytics annotations set",data:result,render:__name(()=>renderPrettyJson(result),"render")})}__name(analyticsAnnotationsSetCommand,"analyticsAnnotationsSetCommand");async function analyticsAnnotationsDeleteCommand(date,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd);await fimo.execute("analytics.annotationsDelete",{projectId:ctx.projectId,branch:ctx.branch,date}),ui.ok({command:"analytics annotations delete",headline:`Deleted annotation for ${date}.`,details:{date}})}__name(analyticsAnnotationsDeleteCommand,"analyticsAnnotationsDeleteCommand");init_dist();import{spawn}from"node:child_process";import{mkdirSync,writeFileSync}from"node:fs";import{tmpdir}from"node:os";import{dirname,extname,isAbsolute,join as join2,resolve as resolvePath}from"node:path";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_project();function extensionFor(asset){let fromName=extname(asset.name);if(fromName&&fromName.length<=6)return fromName;let mime=asset.mimeType??"";return mime.startsWith("image/")?"."+(mime.split("/")[1]??"bin"):mime.startsWith("video/")?"."+(mime.split("/")[1]??"mp4"):mime.startsWith("audio/")?"."+(mime.split("/")[1]??"mp3"):""}__name(extensionFor,"extensionFor");function defaultDownloadPath(asset){let ext=extensionFor(asset);return join2(tmpdir(),"fimo-assets",`${asset.id}${ext}`)}__name(defaultDownloadPath,"defaultDownloadPath");async function downloadToPath(url,dest){let response=await fetch(url);if(!response.ok)throw new Error(`Failed to download asset: HTTP ${response.status} ${response.statusText}`);let arrayBuffer=await response.arrayBuffer();mkdirSync(dirname(dest),{recursive:!0}),writeFileSync(dest,new Uint8Array(arrayBuffer))}__name(downloadToPath,"downloadToPath");function spawnBrowser(url){let command=process.platform==="darwin"?"open":process.platform==="win32"?"start":"xdg-open";(process.platform==="win32"?spawn("cmd",["/c","start","",url],{detached:!0,stdio:"ignore"}):spawn(command,[url],{detached:!0,stdio:"ignore"})).unref()}__name(spawnBrowser,"spawnBrowser");function renderPrettyJson2(data2){return JSON.stringify(data2,null,2)}__name(renderPrettyJson2,"renderPrettyJson");async function assetsOpenCommand(id,options,cmd){if(options.download&&options.browser)throw new Error("--download and --browser are mutually exclusive \u2014 pick one");let{ctx,fimo}=await bootstrapProjectCommand(options,cmd);await requireOperation("assets.get",{projectId:ctx.projectId,branch:ctx.branch});let cwd=resolveProjectCwd(options.cwd),{data:asset}=await fimo.execute("assets.get",{projectId:ctx.projectId,branch:ctx.branch,id});if(asset.type==="folder")throw new Error(`Asset ${id} is a folder; can only open files`);if(!asset.url)throw new Error(`Asset ${id} has no public URL \u2014 it may not have finished uploading`);if(options.browser){spawnBrowser(asset.url);let payload2={opened:asset.url};ui.result({command:"assets open",data:payload2,render:__name(()=>renderPrettyJson2(payload2),"render")});return}if(options.download){let dest=options.path?isAbsolute(options.path)?options.path:resolvePath(cwd,options.path):defaultDownloadPath(asset);await downloadToPath(asset.url,dest);let payload2={id:asset.id,name:asset.name,mimeType:asset.mimeType,fileSize:asset.fileSize,url:asset.url,path:dest,width:asset.width??null,height:asset.height??null,altText:asset.altText??null,aiAltText:asset.aiAltText??null};ui.result({command:"assets open",data:payload2,render:__name(()=>renderPrettyJson2(payload2),"render")});return}let payload={id:asset.id,name:asset.name,mimeType:asset.mimeType,fileSize:asset.fileSize,url:asset.url,width:asset.width??null,height:asset.height??null,altText:asset.altText??null,caption:asset.caption??null,aiAltText:asset.aiAltText??null,aiCaption:asset.aiCaption??null,aiTags:asset.aiTags??null};ui.result({command:"assets open",data:payload,render:__name(()=>renderPrettyJson2(payload),"render")})}__name(assetsOpenCommand,"assetsOpenCommand");init_dist6();init_dist();init_config();import fs12 from"node:fs";import path14 from"node:path";import{z as z113}from"zod";init_esm();init_config();init_sdk_transport();function createContentTransferService(cfg=loadConfig(),branch){let transport=createCliHttpTransport(cfg,branch),tenantPath2=__name((projectId,route)=>`/api/tenant/${projectId}/branches/${encodeBranchPathSegment2(branch)}${route}`,"tenantPath");return{async listEntries(projectId,typeName,params){let query=params?`?${new URLSearchParams(params).toString()}`:"";return transport.request(tenantPath2(projectId,`/entries/${typeName}${query}`))},async listAssets(projectId,params){let query=params?`?${new URLSearchParams(params).toString()}`:"";return transport.request(tenantPath2(projectId,`/assets${query}`))},async uploadAsset(projectId,formData){return(await(await transport.response(tenantPath2(projectId,"/assets/upload"),{method:"POST",body:formData})).json()).data},async getAssetReferenceImpact(projectId,request){return(await(await transport.response(tenantPath2(projectId,"/assets/reference-impact"),{method:"POST",headers:{Accept:"application/x-ndjson","Content-Type":"application/json"},body:JSON.stringify(request)})).text()).split(`
1207
- `).filter(line=>line.trim().length>0).map(line=>AssetReferenceImpactEventDTOSchema.parse(JSON.parse(line)))},async createForm(projectId,data2){return(await transport.request(tenantPath2(projectId,"/forms"),{method:"POST",body:JSON.stringify(data2)})).data},async updateForm(projectId,id,data2){return(await transport.request(tenantPath2(projectId,`/forms/${id}`),{method:"PUT",body:JSON.stringify(data2)})).data}}}__name(createContentTransferService,"createContentTransferService");init_interactive();init_project_context();init_project();function renderPrettyJson3(data2){return JSON.stringify(data2,null,2)}__name(renderPrettyJson3,"renderPrettyJson");var bulkUploadItemSchema=z113.object({sourceId:z113.string().min(1),path:z113.string().min(1),name:z113.string().min(1).optional(),parentId:z113.string().min(1).optional(),folderPath:z113.string().min(1).optional()}).strict().refine(item=>!(item.parentId&&item.folderPath),{message:"Use either parentId or folderPath, not both"}),bulkUploadManifestSchema=z113.array(bulkUploadItemSchema).superRefine((items,ctx)=>{let seen=new Set;for(let[index2,item]of items.entries())seen.has(item.sourceId)&&ctx.addIssue({code:"custom",message:`Duplicate sourceId: ${item.sourceId}`,path:[index2,"sourceId"]}),seen.add(item.sourceId)});function buildAssetFormData(cwd,item){let filePath=path14.resolve(cwd,item.path);if(!fs12.existsSync(filePath))throw new Error(`File not found: ${filePath}`);let fileBuffer=fs12.readFileSync(filePath),fileName=path14.basename(filePath),formData=new FormData,mimeType=path14.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),formData}__name(buildAssetFormData,"buildAssetFormData");function readBulkUploadManifest(cwd,manifest){let manifestPath=path14.resolve(cwd,manifest);if(!fs12.existsSync(manifestPath))throw new Error(`Manifest not found: ${manifestPath}`);let parsed;try{parsed=JSON.parse(fs12.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(issue=>`${issue.path.join(".")||"manifest"}: ${issue.message}`);throw new Error(`Invalid asset manifest:
1206
+ `)}__name(renderReportHuman,"renderReportHuman");function registerAgentsCommands(program2){let agents=program2.command("agents").description("AI agent bundle management (M13)");agents.command("create <name>").description("Scaffold .fimo/agents/<name>/ from a template").option("--template <name>","Template to copy from (default: _default)").option("--description <text>","Short tagline written to config.yaml (one line, up to 280 chars)").option("-C, --cwd <dir>","Project directory").action((name,opts)=>createAgentCommand(name,opts)),agents.command("list").description("List agents declared under the project agents directory").option("-C, --cwd <dir>","Project directory").option("--project <id>","Project id (accepted for parity with cloud-scoped subcommands)").action(opts=>listAgentsCommand(opts)),agents.command("list-templates").alias("templates").description("List the bundled starter-catalog templates").action(()=>listTemplatesCommand()),agents.command("validate [name]").description("Validate one or every bundle (parse, capabilities, composition, policy)").option("--json","Emit structured ValidationReport (for CI)").option("-C, --cwd <dir>","Project directory").action(async(name,opts)=>{await validateAgentsCommand({name,json:opts.json,cwd:opts.cwd})}),agents.command("integrations <name>").description("Preview local integration access policy for an agent").option("--project <id>","Project id (defaults to the linked project in .fimo/project.json or legacy .fimo.settings.json)").option("-C, --cwd <dir>","Project directory").action((name,opts)=>agentIntegrationsCommand(name,opts)),agents.command("run <name>").description("Trigger a manual run on the server (returns sessionId)").option("--branch <branch>","Target Branch (default: main)").option("--project <id>","Project id (defaults to .fimo/project.json or legacy .fimo.settings.json projectId)").option("-C, --cwd <dir>","Project directory").option("--skip-drift-check","Dispatch even when the bundle has uncommitted local changes").action((name,opts)=>runAgentCommand(name,opts)),addPaginationOptions(agents.command("runs <name>").description("Paginated session list"),{defaultLimit:20,maxLimit:200}).option("--branch <branch>","Filter sessions to a specific Branch").option("--project <id>","Project id (defaults to the linked project in .fimo/project.json or legacy .fimo.settings.json)").option("-C, --cwd <dir>","Project directory").action((name,opts)=>agentRunsCommand(name,opts)),agents.command("report <name>").description("Print a run's report brief; latest run unless --session is given").option("--session <id>","Target a specific session id").option("--details","Print the report's full evidence section as well as its brief").option("--branch <branch>","Pick the latest run on a specific Branch").option("--project <id>","Project id (defaults to the linked project in .fimo/project.json or legacy .fimo.settings.json)").option("-C, --cwd <dir>","Project directory").action((name,opts)=>agentReportCommand(name,opts));let secrets=agents.command("secrets").description("Edit the secrets requested in an agent config.yaml");secrets.command("list <name>").description("List secret keys requested by an agent config").option("-C, --cwd <dir>","Project directory").action((name,opts)=>agentSecretsListCommand(name,opts)),secrets.command("add <name> <key>").description("Add a secret key request to an agent config").option("-C, --cwd <dir>","Project directory").option("--optional","Mark the secret as optional").action((name,key,opts)=>agentSecretsAddCommand(name,key,opts)),secrets.command("remove <name> <key>").alias("rm").description("Remove a secret key request from an agent config").option("-C, --cwd <dir>","Project directory").action((name,key,opts)=>agentSecretsRemoveCommand(name,key,opts))}__name(registerAgentsCommands,"registerAgentsCommands");init_dist();init_project_context();function parseRangeOptions(options){let params={};if(options.preset&&(params.preset=options.preset),options.groupBy&&(params.groupBy=options.groupBy),options.from&&(params.from=options.from),options.to&&(params.to=options.to),options.days!==void 0){let n=Number(options.days);if(!Number.isFinite(n))throw new Error(`Invalid --days value: ${options.days}`);params.days=n}return params}__name(parseRangeOptions,"parseRangeOptions");function renderPrettyJson(data2){return JSON.stringify(data2,null,2)}__name(renderPrettyJson,"renderPrettyJson");async function analyticsPageviewsCommand(options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd),{data:result}=await fimo.execute("analytics.pageviews",{projectId:ctx.projectId,branch:ctx.branch,...parseRangeOptions(options)});ui.result({command:"analytics pageviews",data:result,render:__name(()=>renderPrettyJson(result),"render")})}__name(analyticsPageviewsCommand,"analyticsPageviewsCommand");var TOP_DIMENSIONS=["pages","browsers","devices","countries","sources"];async function analyticsTopCommand(dimension,options,cmd){if(!TOP_DIMENSIONS.includes(dimension))throw new Error(`Unknown dimension: ${dimension}. Expected one of: ${TOP_DIMENSIONS.join(", ")}`);let{ctx,fimo}=await bootstrapProjectCommand(options,cmd),{items}=await fimo.execute("analytics.top",{projectId:ctx.projectId,branch:ctx.branch,dimension,...parseRangeOptions(options)}),limit;if(options.limit!==void 0){let n=Number(options.limit);if(!Number.isFinite(n)||n<1)throw new Error(`Invalid --limit value: ${options.limit}`);limit=n}let trimmed=limit!==void 0?items.slice(0,limit):items;ui.result({command:"analytics top",data:{dimension,items:trimmed},render:__name(()=>renderPrettyJson(trimmed),"render")})}__name(analyticsTopCommand,"analyticsTopCommand");async function analyticsAnnotationsListCommand(options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd),{annotations:annotations2}=await fimo.execute("analytics.annotationsList",{projectId:ctx.projectId,branch:ctx.branch,...parseRangeOptions(options)});ui.result({command:"analytics annotations list",data:{annotations:annotations2},render:__name(()=>renderPrettyJson(annotations2),"render")})}__name(analyticsAnnotationsListCommand,"analyticsAnnotationsListCommand");async function analyticsAnnotationsSetCommand(date,content2,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd),result=(await fimo.execute("analytics.annotationsSet",{projectId:ctx.projectId,branch:ctx.branch,date,content:content2}))?.data??null;ui.result({command:"analytics annotations set",data:result,render:__name(()=>renderPrettyJson(result),"render")})}__name(analyticsAnnotationsSetCommand,"analyticsAnnotationsSetCommand");async function analyticsAnnotationsDeleteCommand(date,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd);await fimo.execute("analytics.annotationsDelete",{projectId:ctx.projectId,branch:ctx.branch,date}),ui.ok({command:"analytics annotations delete",headline:`Deleted annotation for ${date}.`,details:{date}})}__name(analyticsAnnotationsDeleteCommand,"analyticsAnnotationsDeleteCommand");init_dist();import{spawn}from"node:child_process";import{mkdirSync,writeFileSync}from"node:fs";import{tmpdir}from"node:os";import{dirname,extname,isAbsolute,join as join2,resolve as resolvePath}from"node:path";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_project();function extensionFor(asset){let fromName=extname(asset.name);if(fromName&&fromName.length<=6)return fromName;let mime=asset.mimeType??"";return mime.startsWith("image/")?"."+(mime.split("/")[1]??"bin"):mime.startsWith("video/")?"."+(mime.split("/")[1]??"mp4"):mime.startsWith("audio/")?"."+(mime.split("/")[1]??"mp3"):""}__name(extensionFor,"extensionFor");function defaultDownloadPath(asset){let ext=extensionFor(asset);return join2(tmpdir(),"fimo-assets",`${asset.id}${ext}`)}__name(defaultDownloadPath,"defaultDownloadPath");async function downloadToPath(url,dest){let response=await fetch(url);if(!response.ok)throw new Error(`Failed to download asset: HTTP ${response.status} ${response.statusText}`);let arrayBuffer=await response.arrayBuffer();mkdirSync(dirname(dest),{recursive:!0}),writeFileSync(dest,new Uint8Array(arrayBuffer))}__name(downloadToPath,"downloadToPath");function spawnBrowser(url){let command=process.platform==="darwin"?"open":process.platform==="win32"?"start":"xdg-open";(process.platform==="win32"?spawn("cmd",["/c","start","",url],{detached:!0,stdio:"ignore"}):spawn(command,[url],{detached:!0,stdio:"ignore"})).unref()}__name(spawnBrowser,"spawnBrowser");function renderPrettyJson2(data2){return JSON.stringify(data2,null,2)}__name(renderPrettyJson2,"renderPrettyJson");async function assetsOpenCommand(id,options,cmd){if(options.download&&options.browser)throw new Error("--download and --browser are mutually exclusive \u2014 pick one");let{ctx,fimo}=await bootstrapProjectCommand(options,cmd);await requireOperation("assets.get",{projectId:ctx.projectId,branch:ctx.branch});let cwd=resolveProjectCwd(options.cwd),{data:asset}=await fimo.execute("assets.get",{projectId:ctx.projectId,branch:ctx.branch,id});if(asset.type==="folder")throw new Error(`Asset ${id} is a folder; can only open files`);if(!asset.url)throw new Error(`Asset ${id} has no public URL \u2014 it may not have finished uploading`);if(options.browser){spawnBrowser(asset.url);let payload2={opened:asset.url};ui.result({command:"assets open",data:payload2,render:__name(()=>renderPrettyJson2(payload2),"render")});return}if(options.download){let dest=options.path?isAbsolute(options.path)?options.path:resolvePath(cwd,options.path):defaultDownloadPath(asset);await downloadToPath(asset.url,dest);let payload2={id:asset.id,name:asset.name,mimeType:asset.mimeType,fileSize:asset.fileSize,url:asset.url,path:dest,width:asset.width??null,height:asset.height??null,altText:asset.altText??null,aiAltText:asset.aiAltText??null};ui.result({command:"assets open",data:payload2,render:__name(()=>renderPrettyJson2(payload2),"render")});return}let payload={id:asset.id,name:asset.name,mimeType:asset.mimeType,fileSize:asset.fileSize,url:asset.url,width:asset.width??null,height:asset.height??null,altText:asset.altText??null,caption:asset.caption??null,aiAltText:asset.aiAltText??null,aiCaption:asset.aiCaption??null,aiTags:asset.aiTags??null};ui.result({command:"assets open",data:payload,render:__name(()=>renderPrettyJson2(payload),"render")})}__name(assetsOpenCommand,"assetsOpenCommand");init_dist6();init_dist();init_config();import fs12 from"node:fs";import path14 from"node:path";import{z as z114}from"zod";init_esm();init_config();init_sdk_transport();function createContentTransferService(cfg=loadConfig(),branch){let transport=createCliHttpTransport(cfg,branch),tenantPath2=__name((projectId,route)=>`/api/tenant/${projectId}/branches/${encodeBranchPathSegment2(branch)}${route}`,"tenantPath");return{async listEntries(projectId,typeName,params){let query=params?`?${new URLSearchParams(params).toString()}`:"";return transport.request(tenantPath2(projectId,`/entries/${typeName}${query}`))},async listAssets(projectId,params){let query=params?`?${new URLSearchParams(params).toString()}`:"";return transport.request(tenantPath2(projectId,`/assets${query}`))},async uploadAsset(projectId,formData){return(await(await transport.response(tenantPath2(projectId,"/assets/upload"),{method:"POST",body:formData})).json()).data},async getAssetReferenceImpact(projectId,request){return(await(await transport.response(tenantPath2(projectId,"/assets/reference-impact"),{method:"POST",headers:{Accept:"application/x-ndjson","Content-Type":"application/json"},body:JSON.stringify(request)})).text()).split(`
1207
+ `).filter(line=>line.trim().length>0).map(line=>AssetReferenceImpactEventDTOSchema.parse(JSON.parse(line)))},async createForm(projectId,data2){return(await transport.request(tenantPath2(projectId,"/forms"),{method:"POST",body:JSON.stringify(data2)})).data},async updateForm(projectId,id,data2){return(await transport.request(tenantPath2(projectId,`/forms/${id}`),{method:"PUT",body:JSON.stringify(data2)})).data}}}__name(createContentTransferService,"createContentTransferService");init_interactive();init_project_context();init_project();function renderPrettyJson3(data2){return JSON.stringify(data2,null,2)}__name(renderPrettyJson3,"renderPrettyJson");var bulkUploadItemSchema=z114.object({sourceId:z114.string().min(1),path:z114.string().min(1),name:z114.string().min(1).optional(),parentId:z114.string().min(1).optional(),folderPath:z114.string().min(1).optional()}).strict().refine(item=>!(item.parentId&&item.folderPath),{message:"Use either parentId or folderPath, not both"}),bulkUploadManifestSchema=z114.array(bulkUploadItemSchema).superRefine((items,ctx)=>{let seen=new Set;for(let[index2,item]of items.entries())seen.has(item.sourceId)&&ctx.addIssue({code:"custom",message:`Duplicate sourceId: ${item.sourceId}`,path:[index2,"sourceId"]}),seen.add(item.sourceId)});function buildAssetFormData(cwd,item){let filePath=path14.resolve(cwd,item.path);if(!fs12.existsSync(filePath))throw new Error(`File not found: ${filePath}`);let fileBuffer=fs12.readFileSync(filePath),fileName=path14.basename(filePath),formData=new FormData,mimeType=path14.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),formData}__name(buildAssetFormData,"buildAssetFormData");function readBulkUploadManifest(cwd,manifest){let manifestPath=path14.resolve(cwd,manifest);if(!fs12.existsSync(manifestPath))throw new Error(`Manifest not found: ${manifestPath}`);let parsed;try{parsed=JSON.parse(fs12.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(issue=>`${issue.path.join(".")||"manifest"}: ${issue.message}`);throw new Error(`Invalid asset manifest:
1208
1208
  ${issues.join(`
1209
1209
  `)}`)}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 index2=nextIndex;nextIndex+=1,results[index2]=await run(items[index2])}})),results}__name(mapWithConcurrency,"mapWithConcurrency");async function assetsListCommand(options,cmd){let pagination=parsePaginationOptions(options,{defaultLimit:20,maxLimit:100,legacyCursor:"offset"}),{ctx}=await bootstrapProjectCommand(options,cmd),content2=createContentTransferService(loadConfig(),ctx.branch);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 params={};options.parentId&&(params.parentId=options.parentId),options.search&&(params.search=options.search),options.type&&(params.type=options.type),mimePrefix&&(params.mimePrefix=mimePrefix),options.sortBy&&(params.sortBy=options.sortBy),params.limit=String(pagination.limit);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 content2.listAssets(ctx.projectId,{...params,offset:String(offset)});return toOffsetPaginationPage(response)},"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=await content2.uploadAsset(ctx.projectId,buildAssetFormData(cwd,{path:file,name:options.name,parentId:options.parentId,folderPath:options.folderPath}));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 uploaded=await mapWithConcurrency(items,concurrency,async item=>{try{let asset=await content2.uploadAsset(ctx.projectId,buildAssetFormData(cwd,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)}}}),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(scope=>scope.referenceCount??scope.references.length,"scopeCount");function summarizeImpact(scopes){let counts=Object.fromEntries(scopes.map(scope=>[scope.scope,scopeCount(scope)])),referenceCount=scopes.reduce((total,scope)=>total+scopeCount(scope),0),codeReferenceCount=scopes.reduce((total,scope)=>total+(scope.codeReferenceCount??0),0);return{status:scopes.some(scope=>scope.coverage!=="complete"||scope.state==="failed")?"uncertain":referenceCount>0?"referenced":"no-references-found",coverage:Object.fromEntries(scopes.map(scope=>[scope.scope,scope.coverage])),counts,referenceCount,codeReferenceCount,scopes,otherBranches:{checked:!1,caveat:OTHER_BRANCHES_CAVEAT}}}__name(summarizeImpact,"summarizeImpact");async function loadAssetImpact(content2,projectId,id){let events=await content2.getAssetReferenceImpact(projectId,{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 project? This cannot be undone.`:`Permanently destroy asset ${id} across the project? 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_project_layout();import{execFileSync}from"node:child_process";import fs13 from"node:fs";import path15 from"node:path";var BRANCH_ID_REGEX2=/^[a-zA-Z0-9._/-]+$/;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)}__name(isValidBranch2,"isValidBranch");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")}__name(fnv1a82,"fnv1a8");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}__name(envResourceKey2,"envResourceKey");function buildTenantApiUrl2(projectId,branch,tenantApiBaseUrl){let url=new URL(tenantApiBaseUrl);return url.hostname=`${projectId}-${envResourceKey2(branch)}.${url.hostname}`,url.toString().replace(/\/$/,"")}__name(buildTenantApiUrl2,"buildTenantApiUrl");var 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"];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]))}}__name(buildLocalRuntimeEnv,"buildLocalRuntimeEnv");function resolveLocalRuntimeEnv(options){let root2=findProjectRoot2(options.cwd),link=root2?readProjectLink(root2):null;if(!root2||!link)return null;let branch=currentBranch2(root2);if(!branch)return null;let tenantApiUrl=buildTenantApiUrl2(link.projectId,branch,link.tenantApiBaseUrl);return{env:branch,tenantApiUrl,source:"branch",values:buildLocalRuntimeEnv({tenantApiUrl,branch}),link}}__name(resolveLocalRuntimeEnv,"resolveLocalRuntimeEnv");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}__name(findStaleFimoOverride,"findStaleFimoOverride");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.`}__name(staleOverrideMessage,"staleOverrideMessage");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}}__name(isFimoMintedTenantUrl,"isFimoMintedTenantUrl");function readLocalEnvFiles(cwd){let root2=findProjectRoot2(cwd)??cwd,values={};for(let file of[".env",".env.local"]){let filePath=path15.join(root2,file);if(fs13.existsSync(filePath))for(let line of fs13.readFileSync(filePath,"utf-8").split(/\r?\n/)){let trimmed=line.trim();if(!trimmed||trimmed.startsWith("#"))continue;let eq2=trimmed.indexOf("=");eq2<=0||(values[trimmed.slice(0,eq2).trim()]=trimmed.slice(eq2+1).trim().replace(/^['"]|['"]$/g,""))}}return values}__name(readLocalEnvFiles,"readLocalEnvFiles");function currentBranch2(root2){try{let branch=execFileSync("git",["symbolic-ref","--short","-q","HEAD"],{cwd:root2,stdio:["ignore","pipe","ignore"],encoding:"utf-8"}).trim();return branch&&isValidBranch2(branch)?branch:null}catch{return null}}__name(currentBranch2,"currentBranch");function findProjectRoot2(start){let dir=path15.resolve(start);for(;;){if(fs13.existsSync(path15.join(dir,CURRENT_PROJECT_LAYOUT.project))||fs13.existsSync(path15.join(dir,LEGACY_PROJECT_LAYOUT.project)))return dir;let parent2=path15.dirname(dir);if(parent2===dir)return null;dir=parent2}}__name(findProjectRoot2,"findProjectRoot");function readProjectLink(root2){for(let layout of[CURRENT_PROJECT_LAYOUT,LEGACY_PROJECT_LAYOUT]){let file=path15.join(root2,layout.project);if(fs13.existsSync(file))try{let parsed=JSON.parse(fs13.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}__name(readProjectLink,"readProjectLink");init_config();init_sdk_transport();init_sdk_transport();init_git();init_project_context();init_esm();function buildPreviewUrl(webUrl,projectId,branch){return new URL(`/preview/${encodeURIComponent(projectId)}/${encodeBranchPathSegment2(branch)}`,webUrl).toString()}__name(buildPreviewUrl,"buildPreviewUrl");function buildProjectPreviewUrl(webUrl,projectId,branch){return new URL(`/app/projects/${encodeURIComponent(projectId)}/branch/${encodeURIComponent(branch)}/preview`,webUrl).toString()}__name(buildProjectPreviewUrl,"buildProjectPreviewUrl");init_project();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:project}=await fimo.execute("projects.get",{projectId:ctx.projectId}),{data:created}=await fimo.execute("branches.create",{projectId:ctx.projectId,name,from:parentBranch}),createdBranch=branchNameOf(created),previewUrl=project.previewEnabled===!1?null:buildPreviewUrl(loadConfig().webUrl,ctx.projectId,createdBranch),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,preview_url:previewUrl,studio_url:studioUrl,dashboard_url:studioUrl}},render:__name(context=>renderBranchCreated({headline,parentBranch,previewUrl,studioUrl},context),"render")})}__name(branchCreateCommand,"branchCreateCommand");function renderBranchCreated(result,context){let lines=[`${context.ascii?"[ok]":"\u2713"} ${result.headline}`,` Parent: ${result.parentBranch}`];return result.previewUrl&&lines.push(` Preview: ${terminalLink("Open preview",result.previewUrl,context.hyperlinks)}`),lines.push(` Studio: ${terminalLink("Open in Studio",result.studioUrl,context.hyperlinks)}`),lines.join(`
1210
1210
  `)}__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,projectId,parentBranch,ctx,fromFlag){try{return await fimo.execute("branches.get",{projectId,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 project 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 project. The CLI resolved the parent from ${origin}. Fix: ${fixes.join(", or ")}.`}}}__name(validateParentBranch,"validateParentBranch");init_dist();init_config();init_project();function registerChannelsCommands(program2){program2.command("channels").description("Manage project channel bindings").addHelpText("after",`
@@ -1322,7 +1322,7 @@ Examples:
1322
1322
  fimo history restore <version-id> --yes
1323
1323
  `);addScopeOptions2(addPaginationOptions(history.command("list").description("List restore points for the current Branch"),{defaultLimit:20,maxLimit:100})).action((options,command)=>historyListCommand(options,command)),addScopeOptions2(history.command("show <versionId>").description("Show one restore point")).action((versionId,options,command)=>historyShowCommand(versionId,options,command)),addScopeOptions2(history.command("create <name>").description("Save the current code and content as a restore point").option("--description <text>","Optional description")).action((name,options,command)=>historyCreateCommand(name,options,command)),addScopeOptions2(history.command("restore <versionId>").description("Restore code and content from a restore point").option("-y, --yes","Skip the confirmation prompt")).action((versionId,options,command)=>historyRestoreCommand(versionId,options,command))}__name(registerHistoryCommands,"registerHistoryCommands");async function resolveScope(options,command){let branchOverride2=branchOverrideFromCommand(command),baseFimo=createCliFimoClient(loadConfig());if(options.project){let branch=branchOverride2??DEFAULT_BRANCH;if(!isValidBranch(branch))throw new Error(`Invalid Branch '${branch}'.`);return{fimo:createCliFimoClient(loadConfig(),branch),projectId:options.project,branch}}let context=await getProjectContext({cwd:options.cwd,branchOverride:branchOverride2,fimo:baseFimo});return{fimo:createCliFimoClient(loadConfig(),context.branch),projectId:context.projectId,branch:context.branch}}__name(resolveScope,"resolveScope");async function runHistoryCommand(command,operation){try{await operation()}catch(error){if(error instanceof ApiRequestError){ui.error({command,code:error.code??"HISTORY_REQUEST_FAILED",message:error.detail,...error.code==="HISTORY_BUSY"?{hint:"Retry after the current history operation finishes."}:error.code==="RESTORE_INCOMPLETE"?{hint:"Retry the restore after checking that active editors have stopped writing."}:{}});return}throw error}}__name(runHistoryCommand,"runHistoryCommand");async function historyListCommand(options,command){await runHistoryCommand("history list",async()=>{let scope=await resolveScope(options,command);await requireOperation("fimo.history.list",{projectId:scope.projectId,branch:scope.branch});let pagination=parsePaginationOptions(options,{defaultLimit:20,maxLimit:100}),[page,summary2]=await Promise.all([collectPaginatedItems({cursor:pagination.cursor,allPages:pagination.allPages,fetchPage:__name(cursor=>scope.fimo.execute("history.list",{projectId:scope.projectId,branch:scope.branch,limit:pagination.limit,cursor}),"fetchPage")}),scope.fimo.execute("history.summary",{projectId:scope.projectId,branch:scope.branch})]),result={...page,...summary2},hint=page.nextCursor?buildHistoryListHint(page.nextCursor,scope.branch,pagination.limit,options):void 0;ui.result({command:"history list",data:result,render:__name(()=>renderHistoryList(result,scope.branch),"render"),...hint?{hint}:{}})})}__name(historyListCommand,"historyListCommand");function buildHistoryListHint(nextCursor,branch,limit,options){let trailingArgs=["--branch",branch];return options.project&&trailingArgs.push("--project",options.project),options.cwd&&trailingArgs.push("--cwd",options.cwd),buildPaginationHint(["fimo","history","list"],{cursor:nextCursor,limit,trailingArgs})}__name(buildHistoryListHint,"buildHistoryListHint");async function historyShowCommand(versionId,options,command){await runHistoryCommand("history show",async()=>{let scope=await resolveScope(options,command);await requireOperation("fimo.history.get",{projectId:scope.projectId,branch:scope.branch});let version=await scope.fimo.execute("history.get",{projectId:scope.projectId,branch:scope.branch,versionId});ui.result({command:"history show",data:version,render:__name(()=>renderHistoryVersion(version,scope.branch),"render")})})}__name(historyShowCommand,"historyShowCommand");async function historyCreateCommand(name,options,command){await runHistoryCommand("history create",async()=>{let scope=await resolveScope(options,command),version=await scope.fimo.execute("history.create",{projectId:scope.projectId,branch:scope.branch,name,description:options.description});ui.ok({command:"history create",headline:`Saved restore point "${version.name}".`,details:{version_id:version.versionId,branch:scope.branch,env:scope.branch,created_at:formatTimestamp(version.createdAt)}})})}__name(historyCreateCommand,"historyCreateCommand");async function historyRestoreCommand(versionId,options,command){await runHistoryCommand("history restore",async()=>{let scope=await resolveScope(options,command),version=await scope.fimo.execute("history.get",{projectId:scope.projectId,branch:scope.branch,versionId});if(!options.yes){assertInteractive("Pass --yes to restore without a prompt.","history restore");let confirmed=await ot2({message:`Restore "${version.name}" on ${scope.branch}? Current code and content will be saved as a safety point first.`,initialValue:!1});if(q(confirmed)||!confirmed){ui.info({command:"history restore",message:"Cancelled."});return}}let result=await scope.fimo.execute("history.restore",{projectId:scope.projectId,branch:scope.branch,versionId});ui.ok({command:"history restore",headline:`Restored "${version.name}" on ${scope.branch}.`,details:{version_id:version.versionId,branch:scope.branch,env:scope.branch,duration_ms:result.durationMs??null},...result.warning?{warnings:[result.warning]}:{}})})}__name(historyRestoreCommand,"historyRestoreCommand");function renderHistoryList(result,branch){let lines=[`History \xB7 ${branch}`,""];if(result.items.length===0)lines.push("No restore points yet.");else{lines.push("ID CREATED KIND NAME");for(let version of result.items)lines.push(`${version.versionId.padEnd(36)} ${formatTimestamp(version.createdAt).padEnd(16)} ${version.kind.padEnd(15)} ${version.name}`)}return lines.push("",`Usage: ${result.usage.versionCount} restore points \xB7 ${formatBytes2(result.usage.snapshotBytes)} compressed`,`Retention: ${result.retentionDays} days`),lines.join(`
1324
1324
  `)}__name(renderHistoryList,"renderHistoryList");function renderHistoryVersion(version,branch){return[version.name,"",`Version ID: ${version.versionId}`,`Branch: ${branch}`,`Kind: ${version.kind}`,`Created: ${formatTimestamp(version.createdAt)}`,`Commit: ${version.commitHash}`,`Description: ${version.description??"None"}`].join(`
1325
- `)}__name(renderHistoryVersion,"renderHistoryVersion");function formatTimestamp(value){let date=value instanceof Date?value:new Date(value);return Number.isNaN(date.getTime())?String(value):date.toISOString().slice(0,16).replace("T"," ")}__name(formatTimestamp,"formatTimestamp");function formatBytes2(bytes){return bytes<1024?`${bytes} B`:bytes<1024*1024?`${(bytes/1024).toFixed(1)} KiB`:`${(bytes/(1024*1024)).toFixed(1)} MiB`}__name(formatBytes2,"formatBytes");init_esm();init_dist();init_config();init_sdk_transport();init_project_context();init_esm();import{z as z115}from"zod";var InboxAnswerError=class extends Error{static{__name(this,"InboxAnswerError")}code="INBOX_ANSWER_INVALID";hint;constructor(message,hint){super(message),this.name="InboxAnswerError",this.hint=hint}},CompactAnswerSchema=z115.object({answers:z115.array(z115.object({stepId:z115.string().min(1),selected:z115.array(z115.string().min(1)).optional(),note:z115.string().optional()}).strict()).min(1)}).strict(),SHAPE_HINT='Expected {"answers":[{"stepId":"<id>","selected":["<option label>"],"note":"<optional note>"}]}.';function parseCompactAnswer(raw){let json;try{json=JSON.parse(raw)}catch(error){throw new InboxAnswerError(`The answer is not valid JSON: ${error instanceof Error?error.message:String(error)}`,SHAPE_HINT)}let parsed=CompactAnswerSchema.safeParse(json);if(!parsed.success){let issue=parsed.error.issues[0],where=issue.path.length>0?`${issue.path.join(".")}: `:"";throw new InboxAnswerError(`The answer does not match the expected shape. ${where}${issue.message}`,SHAPE_HINT)}return parsed.data}__name(parseCompactAnswer,"parseCompactAnswer");function buildQuestionAnswer(form,compact){let byStepId=new Map;for(let item of compact.answers){if(byStepId.has(item.stepId))throw new InboxAnswerError(`The answer repeats step '${item.stepId}'. Answer each step once.`);byStepId.set(item.stepId,item)}let stepIds=form.steps.map(step=>step.id),unknown=[...byStepId.keys()].filter(stepId=>!stepIds.includes(stepId));if(unknown.length>0)throw new InboxAnswerError(`This question has no step '${unknown[0]}'.`,`Steps to answer: ${stepIds.join(", ")}.`);let missing=stepIds.filter(stepId=>!byStepId.has(stepId));if(missing.length>0)throw new InboxAnswerError(`The answer leaves ${missing.length===1?"step":"steps"} ${missing.map(id=>`'${id}'`).join(", ")} unanswered.`,'Every step needs an entry. Send an empty "selected" to decline a step that offers options.');let values=form.steps.map(step=>answerValueForStep(step,byStepId.get(step.id)));try{return{version:QUESTION_FORM_CONTRACT_VERSION,answer:buildChatFormAnswerMetadata(form,values)}}catch(error){throw new InboxAnswerError(`The answer was rejected by the question form contract: ${error instanceof Error?error.message:String(error)}`)}}__name(buildQuestionAnswer,"buildQuestionAnswer");function answerValueForStep(step,item){let stepId=step.id,isCapabilities=step.body.type==="capabilities",isText2=step.body.type==="text";if(isCapabilities&&item.selected===void 0)throw new InboxAnswerError(`Step '${stepId}' asks which capabilities to grant, and the answer does not say.`,'Send "selected": [] to approve none, or list the exact capability labels to approve.');let selected=item.selected??[];if(isText2&&selected.length>0)throw new InboxAnswerError(`Step '${stepId}' is answered in writing, not by picking. Use "note".`);if(new Set(selected).size!==selected.length)throw new InboxAnswerError(`Step '${stepId}' selects the same option twice.`);let offered=getChatFormOptionLabels(step.body),unknown=selected.filter(label=>!offered.includes(label));if(unknown.length>0)throw new InboxAnswerError(`Step '${stepId}' selects '${unknown[0]}', which it does not offer.`,`Options: ${offered.map(label=>`'${label}'`).join(", ")}.`);if(!step.multiSelect&&selected.length>1)throw new InboxAnswerError(`Step '${stepId}' takes a single option; the answer selects ${selected.length}.`);let freeText=item.note?.trim()??"";if(!isCapabilities&&selected.length===0&&freeText==="")throw new InboxAnswerError(`Step '${stepId}' has no answer.`,isText2?'Write the answer in "note".':'Select an option, write a "note", or both.');return{selectedLabels:selected,freeText}}__name(answerValueForStep,"answerValueForStep");var InboxCommandError=class extends Error{static{__name(this,"InboxCommandError")}code;hint;constructor(code2,message,hint){super(message),this.name="InboxCommandError",this.code=code2,this.hint=hint}};function registerInboxCommands(program2){let inbox=program2.command("inbox").description("Read Inbox notifications and answer the questions agents are waiting on").addHelpText("after",`
1325
+ `)}__name(renderHistoryVersion,"renderHistoryVersion");function formatTimestamp(value){let date=value instanceof Date?value:new Date(value);return Number.isNaN(date.getTime())?String(value):date.toISOString().slice(0,16).replace("T"," ")}__name(formatTimestamp,"formatTimestamp");function formatBytes2(bytes){return bytes<1024?`${bytes} B`:bytes<1024*1024?`${(bytes/1024).toFixed(1)} KiB`:`${(bytes/(1024*1024)).toFixed(1)} MiB`}__name(formatBytes2,"formatBytes");init_esm();init_dist();init_config();init_sdk_transport();init_project_context();init_esm();import{z as z116}from"zod";var InboxAnswerError=class extends Error{static{__name(this,"InboxAnswerError")}code="INBOX_ANSWER_INVALID";hint;constructor(message,hint){super(message),this.name="InboxAnswerError",this.hint=hint}},CompactAnswerSchema=z116.object({answers:z116.array(z116.object({stepId:z116.string().min(1),selected:z116.array(z116.string().min(1)).optional(),note:z116.string().optional()}).strict()).min(1)}).strict(),SHAPE_HINT='Expected {"answers":[{"stepId":"<id>","selected":["<option label>"],"note":"<optional note>"}]}.';function parseCompactAnswer(raw){let json;try{json=JSON.parse(raw)}catch(error){throw new InboxAnswerError(`The answer is not valid JSON: ${error instanceof Error?error.message:String(error)}`,SHAPE_HINT)}let parsed=CompactAnswerSchema.safeParse(json);if(!parsed.success){let issue=parsed.error.issues[0],where=issue.path.length>0?`${issue.path.join(".")}: `:"";throw new InboxAnswerError(`The answer does not match the expected shape. ${where}${issue.message}`,SHAPE_HINT)}return parsed.data}__name(parseCompactAnswer,"parseCompactAnswer");function buildQuestionAnswer(form,compact){let byStepId=new Map;for(let item of compact.answers){if(byStepId.has(item.stepId))throw new InboxAnswerError(`The answer repeats step '${item.stepId}'. Answer each step once.`);byStepId.set(item.stepId,item)}let stepIds=form.steps.map(step=>step.id),unknown=[...byStepId.keys()].filter(stepId=>!stepIds.includes(stepId));if(unknown.length>0)throw new InboxAnswerError(`This question has no step '${unknown[0]}'.`,`Steps to answer: ${stepIds.join(", ")}.`);let missing=stepIds.filter(stepId=>!byStepId.has(stepId));if(missing.length>0)throw new InboxAnswerError(`The answer leaves ${missing.length===1?"step":"steps"} ${missing.map(id=>`'${id}'`).join(", ")} unanswered.`,'Every step needs an entry. Send an empty "selected" to decline a step that offers options.');let values=form.steps.map(step=>answerValueForStep(step,byStepId.get(step.id)));try{return{version:QUESTION_FORM_CONTRACT_VERSION,answer:buildChatFormAnswerMetadata(form,values)}}catch(error){throw new InboxAnswerError(`The answer was rejected by the question form contract: ${error instanceof Error?error.message:String(error)}`)}}__name(buildQuestionAnswer,"buildQuestionAnswer");function answerValueForStep(step,item){let stepId=step.id,isCapabilities=step.body.type==="capabilities",isText2=step.body.type==="text";if(isCapabilities&&item.selected===void 0)throw new InboxAnswerError(`Step '${stepId}' asks which capabilities to grant, and the answer does not say.`,'Send "selected": [] to approve none, or list the exact capability labels to approve.');let selected=item.selected??[];if(isText2&&selected.length>0)throw new InboxAnswerError(`Step '${stepId}' is answered in writing, not by picking. Use "note".`);if(new Set(selected).size!==selected.length)throw new InboxAnswerError(`Step '${stepId}' selects the same option twice.`);let offered=getChatFormOptionLabels(step.body),unknown=selected.filter(label=>!offered.includes(label));if(unknown.length>0)throw new InboxAnswerError(`Step '${stepId}' selects '${unknown[0]}', which it does not offer.`,`Options: ${offered.map(label=>`'${label}'`).join(", ")}.`);if(!step.multiSelect&&selected.length>1)throw new InboxAnswerError(`Step '${stepId}' takes a single option; the answer selects ${selected.length}.`);let freeText=item.note?.trim()??"";if(!isCapabilities&&selected.length===0&&freeText==="")throw new InboxAnswerError(`Step '${stepId}' has no answer.`,isText2?'Write the answer in "note".':'Select an option, write a "note", or both.');return{selectedLabels:selected,freeText}}__name(answerValueForStep,"answerValueForStep");var InboxCommandError=class extends Error{static{__name(this,"InboxCommandError")}code;hint;constructor(code2,message,hint){super(message),this.name="InboxCommandError",this.code=code2,this.hint=hint}};function registerInboxCommands(program2){let inbox=program2.command("inbox").description("Read Inbox notifications and answer the questions agents are waiting on").addHelpText("after",`
1326
1326
  Examples:
1327
1327
  fimo inbox list
1328
1328
  fimo inbox list --topic agent_question --unread