fimo 2.8.0-staging.4 → 2.8.0-staging.6

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
@@ -14,11 +14,11 @@ var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropD
14
14
  `);let label=initial,stopped=!1;return{update(next){label=next,stream.write(`${startGlyph} ${next}
15
15
  `)},succeed(message){stopped||(stopped=!0,message!==null&&stream.write(`${okGlyph} ${message??label}
16
16
  `))},fail(message){stopped||(stopped=!0,message!==null&&stream.write(`${failGlyph} ${message??label}
17
- `))},stop(){stopped=!0}}}function clearLine(stream){stream.write("\r\x1B[2K")}var FRAMES,FRAME_MS,NOOP,init_spinner=__esm({"../../packages/cli-kit/dist/spinner.js"(){"use strict";init_emitter();init_tty();FRAMES=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],FRAME_MS=80,NOOP={update(){},succeed(){},fail(){},stop(){}};__name(spinner,"spinner");__name(animatedSpinner,"animatedSpinner");__name(staticSpinner,"staticSpinner");__name(clearLine,"clearLine")}});function terminalLink(label,url,enabled){return CONTROL_CHARACTER.test(url)?label:!enabled||CONTROL_CHARACTER.test(label)||!isHttpUrl(url)?url:`${OSC}${url}\x1B\\${label}${OSC}\x1B\\`}function isHttpUrl(value){try{let url=new URL(value);return url.protocol==="http:"||url.protocol==="https:"}catch{return!1}}var OSC,CONTROL_CHARACTER,init_hyperlink=__esm({"../../packages/cli-kit/dist/hyperlink.js"(){"use strict";OSC="\x1B]8;;",CONTROL_CHARACTER=/[\u0000-\u001F\u007F]/;__name(terminalLink,"terminalLink");__name(isHttpUrl,"isHttpUrl")}});var dist_exports={};__export(dist_exports,{SCHEMA_VERSION:()=>SCHEMA_VERSION,_resetUiForTest:()=>_resetUiForTest,currentMode:()=>currentMode,displayWidth:()=>displayWidth,initUi:()=>initUi,isTtyStream:()=>isTtyStream,makePalette:()=>makePalette,makeSymbols:()=>makeSymbols,padToWidth:()=>padToWidth,resolveMode:()=>resolveMode,spinner:()=>spinner,stripAnsi:()=>stripAnsi,terminalLink:()=>terminalLink,ui:()=>ui});var init_dist=__esm({"../../packages/cli-kit/dist/index.js"(){"use strict";init_emitter();init_spinner();init_hyperlink();init_types();init_tty();init_colors();init_symbols();init_width()}});var require_error=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/lib/error.js"(exports2){var CommanderError2=class extends Error{static{__name(this,"CommanderError")}constructor(exitCode,code2,message){super(message),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=code2,this.exitCode=exitCode,this.nestedError=void 0}},InvalidArgumentError2=class extends CommanderError2{static{__name(this,"InvalidArgumentError")}constructor(message){super(1,"commander.invalidArgument",message),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};exports2.CommanderError=CommanderError2;exports2.InvalidArgumentError=InvalidArgumentError2}});var require_argument=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/lib/argument.js"(exports2){var{InvalidArgumentError:InvalidArgumentError2}=require_error(),Argument2=class{static{__name(this,"Argument")}constructor(name,description){switch(this.description=description||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,name[0]){case"<":this.required=!0,this._name=name.slice(1,-1);break;case"[":this.required=!1,this._name=name.slice(1,-1);break;default:this.required=!0,this._name=name;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(value,previous){return previous===this.defaultValue||!Array.isArray(previous)?[value]:previous.concat(value)}default(value,description){return this.defaultValue=value,this.defaultValueDescription=description,this}argParser(fn){return this.parseArg=fn,this}choices(values){return this.argChoices=values.slice(),this.parseArg=(arg,previous)=>{if(!this.argChoices.includes(arg))throw new InvalidArgumentError2(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(arg,previous):arg},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function humanReadableArgName(arg){let nameOutput=arg.name()+(arg.variadic===!0?"...":"");return arg.required?"<"+nameOutput+">":"["+nameOutput+"]"}__name(humanReadableArgName,"humanReadableArgName");exports2.Argument=Argument2;exports2.humanReadableArgName=humanReadableArgName}});var require_help=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/lib/help.js"(exports2){var{humanReadableArgName}=require_argument(),Help2=class{static{__name(this,"Help")}constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(contextOptions){this.helpWidth=this.helpWidth??contextOptions.helpWidth??80}visibleCommands(cmd){let visibleCommands=cmd.commands.filter(cmd2=>!cmd2._hidden),helpCommand=cmd._getHelpCommand();return helpCommand&&!helpCommand._hidden&&visibleCommands.push(helpCommand),this.sortSubcommands&&visibleCommands.sort((a,b)=>a.name().localeCompare(b.name())),visibleCommands}compareOptions(a,b){let getSortKey=__name(option2=>option2.short?option2.short.replace(/^-/,""):option2.long.replace(/^--/,""),"getSortKey");return getSortKey(a).localeCompare(getSortKey(b))}visibleOptions(cmd){let visibleOptions=cmd.options.filter(option2=>!option2.hidden),helpOption=cmd._getHelpOption();if(helpOption&&!helpOption.hidden){let removeShort=helpOption.short&&cmd._findOption(helpOption.short),removeLong=helpOption.long&&cmd._findOption(helpOption.long);!removeShort&&!removeLong?visibleOptions.push(helpOption):helpOption.long&&!removeLong?visibleOptions.push(cmd.createOption(helpOption.long,helpOption.description)):helpOption.short&&!removeShort&&visibleOptions.push(cmd.createOption(helpOption.short,helpOption.description))}return this.sortOptions&&visibleOptions.sort(this.compareOptions),visibleOptions}visibleGlobalOptions(cmd){if(!this.showGlobalOptions)return[];let globalOptions=[];for(let ancestorCmd=cmd.parent;ancestorCmd;ancestorCmd=ancestorCmd.parent){let visibleOptions=ancestorCmd.options.filter(option2=>!option2.hidden);globalOptions.push(...visibleOptions)}return this.sortOptions&&globalOptions.sort(this.compareOptions),globalOptions}visibleArguments(cmd){return cmd._argsDescription&&cmd.registeredArguments.forEach(argument=>{argument.description=argument.description||cmd._argsDescription[argument.name()]||""}),cmd.registeredArguments.find(argument=>argument.description)?cmd.registeredArguments:[]}subcommandTerm(cmd){let args=cmd.registeredArguments.map(arg=>humanReadableArgName(arg)).join(" ");return cmd._name+(cmd._aliases[0]?"|"+cmd._aliases[0]:"")+(cmd.options.length?" [options]":"")+(args?" "+args:"")}optionTerm(option2){return option2.flags}argumentTerm(argument){return argument.name()}longestSubcommandTermLength(cmd,helper){return helper.visibleCommands(cmd).reduce((max,command)=>Math.max(max,this.displayWidth(helper.styleSubcommandTerm(helper.subcommandTerm(command)))),0)}longestOptionTermLength(cmd,helper){return helper.visibleOptions(cmd).reduce((max,option2)=>Math.max(max,this.displayWidth(helper.styleOptionTerm(helper.optionTerm(option2)))),0)}longestGlobalOptionTermLength(cmd,helper){return helper.visibleGlobalOptions(cmd).reduce((max,option2)=>Math.max(max,this.displayWidth(helper.styleOptionTerm(helper.optionTerm(option2)))),0)}longestArgumentTermLength(cmd,helper){return helper.visibleArguments(cmd).reduce((max,argument)=>Math.max(max,this.displayWidth(helper.styleArgumentTerm(helper.argumentTerm(argument)))),0)}commandUsage(cmd){let cmdName=cmd._name;cmd._aliases[0]&&(cmdName=cmdName+"|"+cmd._aliases[0]);let ancestorCmdNames="";for(let ancestorCmd=cmd.parent;ancestorCmd;ancestorCmd=ancestorCmd.parent)ancestorCmdNames=ancestorCmd.name()+" "+ancestorCmdNames;return ancestorCmdNames+cmdName+" "+cmd.usage()}commandDescription(cmd){return cmd.description()}subcommandDescription(cmd){return cmd.summary()||cmd.description()}optionDescription(option2){let extraInfo=[];return option2.argChoices&&extraInfo.push(`choices: ${option2.argChoices.map(choice=>JSON.stringify(choice)).join(", ")}`),option2.defaultValue!==void 0&&(option2.required||option2.optional||option2.isBoolean()&&typeof option2.defaultValue=="boolean")&&extraInfo.push(`default: ${option2.defaultValueDescription||JSON.stringify(option2.defaultValue)}`),option2.presetArg!==void 0&&option2.optional&&extraInfo.push(`preset: ${JSON.stringify(option2.presetArg)}`),option2.envVar!==void 0&&extraInfo.push(`env: ${option2.envVar}`),extraInfo.length>0?`${option2.description} (${extraInfo.join(", ")})`:option2.description}argumentDescription(argument){let extraInfo=[];if(argument.argChoices&&extraInfo.push(`choices: ${argument.argChoices.map(choice=>JSON.stringify(choice)).join(", ")}`),argument.defaultValue!==void 0&&extraInfo.push(`default: ${argument.defaultValueDescription||JSON.stringify(argument.defaultValue)}`),extraInfo.length>0){let extraDescription=`(${extraInfo.join(", ")})`;return argument.description?`${argument.description} ${extraDescription}`:extraDescription}return argument.description}formatHelp(cmd,helper){let termWidth=helper.padWidth(cmd,helper),helpWidth=helper.helpWidth??80;function callFormatItem(term,description){return helper.formatItem(term,termWidth,description,helper)}__name(callFormatItem,"callFormatItem");let output=[`${helper.styleTitle("Usage:")} ${helper.styleUsage(helper.commandUsage(cmd))}`,""],commandDescription=helper.commandDescription(cmd);commandDescription.length>0&&(output=output.concat([helper.boxWrap(helper.styleCommandDescription(commandDescription),helpWidth),""]));let argumentList=helper.visibleArguments(cmd).map(argument=>callFormatItem(helper.styleArgumentTerm(helper.argumentTerm(argument)),helper.styleArgumentDescription(helper.argumentDescription(argument))));argumentList.length>0&&(output=output.concat([helper.styleTitle("Arguments:"),...argumentList,""]));let optionList=helper.visibleOptions(cmd).map(option2=>callFormatItem(helper.styleOptionTerm(helper.optionTerm(option2)),helper.styleOptionDescription(helper.optionDescription(option2))));if(optionList.length>0&&(output=output.concat([helper.styleTitle("Options:"),...optionList,""])),helper.showGlobalOptions){let globalOptionList=helper.visibleGlobalOptions(cmd).map(option2=>callFormatItem(helper.styleOptionTerm(helper.optionTerm(option2)),helper.styleOptionDescription(helper.optionDescription(option2))));globalOptionList.length>0&&(output=output.concat([helper.styleTitle("Global Options:"),...globalOptionList,""]))}let commandList=helper.visibleCommands(cmd).map(cmd2=>callFormatItem(helper.styleSubcommandTerm(helper.subcommandTerm(cmd2)),helper.styleSubcommandDescription(helper.subcommandDescription(cmd2))));return commandList.length>0&&(output=output.concat([helper.styleTitle("Commands:"),...commandList,""])),output.join(`
17
+ `))},stop(){stopped=!0}}}function clearLine(stream){stream.write("\r\x1B[2K")}var FRAMES,FRAME_MS,NOOP,init_spinner=__esm({"../../packages/cli-kit/dist/spinner.js"(){"use strict";init_emitter();init_tty();FRAMES=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],FRAME_MS=80,NOOP={update(){},succeed(){},fail(){},stop(){}};__name(spinner,"spinner");__name(animatedSpinner,"animatedSpinner");__name(staticSpinner,"staticSpinner");__name(clearLine,"clearLine")}});function terminalLink(label,url,enabled){return CONTROL_CHARACTER.test(url)?label:!enabled||CONTROL_CHARACTER.test(label)||!isHttpUrl(url)?url:`${OSC}${url}\x1B\\${label}${OSC}\x1B\\`}function isHttpUrl(value){try{let url=new URL(value);return url.protocol==="http:"||url.protocol==="https:"}catch{return!1}}var OSC,CONTROL_CHARACTER,init_hyperlink=__esm({"../../packages/cli-kit/dist/hyperlink.js"(){"use strict";OSC="\x1B]8;;",CONTROL_CHARACTER=/[\u0000-\u001F\u007F]/;__name(terminalLink,"terminalLink");__name(isHttpUrl,"isHttpUrl")}});var dist_exports={};__export(dist_exports,{SCHEMA_VERSION:()=>SCHEMA_VERSION,_resetUiForTest:()=>_resetUiForTest,currentMode:()=>currentMode,displayWidth:()=>displayWidth,initUi:()=>initUi,isTtyStream:()=>isTtyStream,makePalette:()=>makePalette,makeSymbols:()=>makeSymbols,padToWidth:()=>padToWidth,resolveMode:()=>resolveMode,spinner:()=>spinner,stripAnsi:()=>stripAnsi,terminalLink:()=>terminalLink,ui:()=>ui});var init_dist=__esm({"../../packages/cli-kit/dist/index.js"(){"use strict";init_emitter();init_spinner();init_hyperlink();init_types();init_tty();init_colors();init_symbols();init_width()}});var require_error=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/lib/error.js"(exports2){var CommanderError2=class extends Error{static{__name(this,"CommanderError")}constructor(exitCode,code2,message){super(message),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=code2,this.exitCode=exitCode,this.nestedError=void 0}},InvalidArgumentError2=class extends CommanderError2{static{__name(this,"InvalidArgumentError")}constructor(message){super(1,"commander.invalidArgument",message),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};exports2.CommanderError=CommanderError2;exports2.InvalidArgumentError=InvalidArgumentError2}});var require_argument=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/lib/argument.js"(exports2){var{InvalidArgumentError:InvalidArgumentError2}=require_error(),Argument2=class{static{__name(this,"Argument")}constructor(name,description){switch(this.description=description||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,name[0]){case"<":this.required=!0,this._name=name.slice(1,-1);break;case"[":this.required=!1,this._name=name.slice(1,-1);break;default:this.required=!0,this._name=name;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(value,previous){return previous===this.defaultValue||!Array.isArray(previous)?[value]:previous.concat(value)}default(value,description){return this.defaultValue=value,this.defaultValueDescription=description,this}argParser(fn){return this.parseArg=fn,this}choices(values){return this.argChoices=values.slice(),this.parseArg=(arg,previous)=>{if(!this.argChoices.includes(arg))throw new InvalidArgumentError2(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(arg,previous):arg},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function humanReadableArgName(arg){let nameOutput=arg.name()+(arg.variadic===!0?"...":"");return arg.required?"<"+nameOutput+">":"["+nameOutput+"]"}__name(humanReadableArgName,"humanReadableArgName");exports2.Argument=Argument2;exports2.humanReadableArgName=humanReadableArgName}});var require_help=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/lib/help.js"(exports2){var{humanReadableArgName}=require_argument(),Help2=class{static{__name(this,"Help")}constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(contextOptions){this.helpWidth=this.helpWidth??contextOptions.helpWidth??80}visibleCommands(cmd){let visibleCommands=cmd.commands.filter(cmd2=>!cmd2._hidden),helpCommand=cmd._getHelpCommand();return helpCommand&&!helpCommand._hidden&&visibleCommands.push(helpCommand),this.sortSubcommands&&visibleCommands.sort((a,b)=>a.name().localeCompare(b.name())),visibleCommands}compareOptions(a,b){let getSortKey=__name(option=>option.short?option.short.replace(/^-/,""):option.long.replace(/^--/,""),"getSortKey");return getSortKey(a).localeCompare(getSortKey(b))}visibleOptions(cmd){let visibleOptions=cmd.options.filter(option=>!option.hidden),helpOption=cmd._getHelpOption();if(helpOption&&!helpOption.hidden){let removeShort=helpOption.short&&cmd._findOption(helpOption.short),removeLong=helpOption.long&&cmd._findOption(helpOption.long);!removeShort&&!removeLong?visibleOptions.push(helpOption):helpOption.long&&!removeLong?visibleOptions.push(cmd.createOption(helpOption.long,helpOption.description)):helpOption.short&&!removeShort&&visibleOptions.push(cmd.createOption(helpOption.short,helpOption.description))}return this.sortOptions&&visibleOptions.sort(this.compareOptions),visibleOptions}visibleGlobalOptions(cmd){if(!this.showGlobalOptions)return[];let globalOptions=[];for(let ancestorCmd=cmd.parent;ancestorCmd;ancestorCmd=ancestorCmd.parent){let visibleOptions=ancestorCmd.options.filter(option=>!option.hidden);globalOptions.push(...visibleOptions)}return this.sortOptions&&globalOptions.sort(this.compareOptions),globalOptions}visibleArguments(cmd){return cmd._argsDescription&&cmd.registeredArguments.forEach(argument=>{argument.description=argument.description||cmd._argsDescription[argument.name()]||""}),cmd.registeredArguments.find(argument=>argument.description)?cmd.registeredArguments:[]}subcommandTerm(cmd){let args=cmd.registeredArguments.map(arg=>humanReadableArgName(arg)).join(" ");return cmd._name+(cmd._aliases[0]?"|"+cmd._aliases[0]:"")+(cmd.options.length?" [options]":"")+(args?" "+args:"")}optionTerm(option){return option.flags}argumentTerm(argument){return argument.name()}longestSubcommandTermLength(cmd,helper){return helper.visibleCommands(cmd).reduce((max,command)=>Math.max(max,this.displayWidth(helper.styleSubcommandTerm(helper.subcommandTerm(command)))),0)}longestOptionTermLength(cmd,helper){return helper.visibleOptions(cmd).reduce((max,option)=>Math.max(max,this.displayWidth(helper.styleOptionTerm(helper.optionTerm(option)))),0)}longestGlobalOptionTermLength(cmd,helper){return helper.visibleGlobalOptions(cmd).reduce((max,option)=>Math.max(max,this.displayWidth(helper.styleOptionTerm(helper.optionTerm(option)))),0)}longestArgumentTermLength(cmd,helper){return helper.visibleArguments(cmd).reduce((max,argument)=>Math.max(max,this.displayWidth(helper.styleArgumentTerm(helper.argumentTerm(argument)))),0)}commandUsage(cmd){let cmdName=cmd._name;cmd._aliases[0]&&(cmdName=cmdName+"|"+cmd._aliases[0]);let ancestorCmdNames="";for(let ancestorCmd=cmd.parent;ancestorCmd;ancestorCmd=ancestorCmd.parent)ancestorCmdNames=ancestorCmd.name()+" "+ancestorCmdNames;return ancestorCmdNames+cmdName+" "+cmd.usage()}commandDescription(cmd){return cmd.description()}subcommandDescription(cmd){return cmd.summary()||cmd.description()}optionDescription(option){let extraInfo=[];return option.argChoices&&extraInfo.push(`choices: ${option.argChoices.map(choice=>JSON.stringify(choice)).join(", ")}`),option.defaultValue!==void 0&&(option.required||option.optional||option.isBoolean()&&typeof option.defaultValue=="boolean")&&extraInfo.push(`default: ${option.defaultValueDescription||JSON.stringify(option.defaultValue)}`),option.presetArg!==void 0&&option.optional&&extraInfo.push(`preset: ${JSON.stringify(option.presetArg)}`),option.envVar!==void 0&&extraInfo.push(`env: ${option.envVar}`),extraInfo.length>0?`${option.description} (${extraInfo.join(", ")})`:option.description}argumentDescription(argument){let extraInfo=[];if(argument.argChoices&&extraInfo.push(`choices: ${argument.argChoices.map(choice=>JSON.stringify(choice)).join(", ")}`),argument.defaultValue!==void 0&&extraInfo.push(`default: ${argument.defaultValueDescription||JSON.stringify(argument.defaultValue)}`),extraInfo.length>0){let extraDescription=`(${extraInfo.join(", ")})`;return argument.description?`${argument.description} ${extraDescription}`:extraDescription}return argument.description}formatHelp(cmd,helper){let termWidth=helper.padWidth(cmd,helper),helpWidth=helper.helpWidth??80;function callFormatItem(term,description){return helper.formatItem(term,termWidth,description,helper)}__name(callFormatItem,"callFormatItem");let output=[`${helper.styleTitle("Usage:")} ${helper.styleUsage(helper.commandUsage(cmd))}`,""],commandDescription=helper.commandDescription(cmd);commandDescription.length>0&&(output=output.concat([helper.boxWrap(helper.styleCommandDescription(commandDescription),helpWidth),""]));let argumentList=helper.visibleArguments(cmd).map(argument=>callFormatItem(helper.styleArgumentTerm(helper.argumentTerm(argument)),helper.styleArgumentDescription(helper.argumentDescription(argument))));argumentList.length>0&&(output=output.concat([helper.styleTitle("Arguments:"),...argumentList,""]));let optionList=helper.visibleOptions(cmd).map(option=>callFormatItem(helper.styleOptionTerm(helper.optionTerm(option)),helper.styleOptionDescription(helper.optionDescription(option))));if(optionList.length>0&&(output=output.concat([helper.styleTitle("Options:"),...optionList,""])),helper.showGlobalOptions){let globalOptionList=helper.visibleGlobalOptions(cmd).map(option=>callFormatItem(helper.styleOptionTerm(helper.optionTerm(option)),helper.styleOptionDescription(helper.optionDescription(option))));globalOptionList.length>0&&(output=output.concat([helper.styleTitle("Global Options:"),...globalOptionList,""]))}let commandList=helper.visibleCommands(cmd).map(cmd2=>callFormatItem(helper.styleSubcommandTerm(helper.subcommandTerm(cmd2)),helper.styleSubcommandDescription(helper.subcommandDescription(cmd2))));return commandList.length>0&&(output=output.concat([helper.styleTitle("Commands:"),...commandList,""])),output.join(`
18
18
  `)}displayWidth(str){return stripColor(str).length}styleTitle(str){return str}styleUsage(str){return str.split(" ").map(word=>word==="[options]"?this.styleOptionText(word):word==="[command]"?this.styleSubcommandText(word):word[0]==="["||word[0]==="<"?this.styleArgumentText(word):this.styleCommandText(word)).join(" ")}styleCommandDescription(str){return this.styleDescriptionText(str)}styleOptionDescription(str){return this.styleDescriptionText(str)}styleSubcommandDescription(str){return this.styleDescriptionText(str)}styleArgumentDescription(str){return this.styleDescriptionText(str)}styleDescriptionText(str){return str}styleOptionTerm(str){return this.styleOptionText(str)}styleSubcommandTerm(str){return str.split(" ").map(word=>word==="[options]"?this.styleOptionText(word):word[0]==="["||word[0]==="<"?this.styleArgumentText(word):this.styleSubcommandText(word)).join(" ")}styleArgumentTerm(str){return this.styleArgumentText(str)}styleOptionText(str){return str}styleArgumentText(str){return str}styleSubcommandText(str){return str}styleCommandText(str){return str}padWidth(cmd,helper){return Math.max(helper.longestOptionTermLength(cmd,helper),helper.longestGlobalOptionTermLength(cmd,helper),helper.longestSubcommandTermLength(cmd,helper),helper.longestArgumentTermLength(cmd,helper))}preformatted(str){return/\n[^\S\r\n]/.test(str)}formatItem(term,termWidth,description,helper){let itemIndentStr=" ".repeat(2);if(!description)return itemIndentStr+term;let paddedTerm=term.padEnd(termWidth+term.length-helper.displayWidth(term)),spacerWidth=2,remainingWidth=(this.helpWidth??80)-termWidth-spacerWidth-2,formattedDescription;return remainingWidth<this.minWidthToWrap||helper.preformatted(description)?formattedDescription=description:formattedDescription=helper.boxWrap(description,remainingWidth).replace(/\n/g,`
19
19
  `+" ".repeat(termWidth+spacerWidth)),itemIndentStr+paddedTerm+" ".repeat(spacerWidth)+formattedDescription.replace(/\n/g,`
20
20
  ${itemIndentStr}`)}boxWrap(str,width){if(width<this.minWidthToWrap)return str;let rawLines=str.split(/\r\n|\n/),chunkPattern=/[\s]*[^\s]+/g,wrappedLines=[];return rawLines.forEach(line=>{let chunks=line.match(chunkPattern);if(chunks===null){wrappedLines.push("");return}let sumChunks=[chunks.shift()],sumWidth=this.displayWidth(sumChunks[0]);chunks.forEach(chunk=>{let visibleWidth=this.displayWidth(chunk);if(sumWidth+visibleWidth<=width){sumChunks.push(chunk),sumWidth+=visibleWidth;return}wrappedLines.push(sumChunks.join(""));let nextChunk=chunk.trimStart();sumChunks=[nextChunk],sumWidth=this.displayWidth(nextChunk)}),wrappedLines.push(sumChunks.join(""))}),wrappedLines.join(`
21
- `)}};function stripColor(str){let sgrPattern=/\x1b\[\d*(;\d*)*m/g;return str.replace(sgrPattern,"")}__name(stripColor,"stripColor");exports2.Help=Help2;exports2.stripColor=stripColor}});var require_option=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/lib/option.js"(exports2){var{InvalidArgumentError:InvalidArgumentError2}=require_error(),Option2=class{static{__name(this,"Option")}constructor(flags,description){this.flags=flags,this.description=description||"",this.required=flags.includes("<"),this.optional=flags.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(flags),this.mandatory=!1;let optionFlags=splitOptionFlags(flags);this.short=optionFlags.shortFlag,this.long=optionFlags.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0}default(value,description){return this.defaultValue=value,this.defaultValueDescription=description,this}preset(arg){return this.presetArg=arg,this}conflicts(names){return this.conflictsWith=this.conflictsWith.concat(names),this}implies(impliedOptionValues){let newImplied=impliedOptionValues;return typeof impliedOptionValues=="string"&&(newImplied={[impliedOptionValues]:!0}),this.implied=Object.assign(this.implied||{},newImplied),this}env(name){return this.envVar=name,this}argParser(fn){return this.parseArg=fn,this}makeOptionMandatory(mandatory=!0){return this.mandatory=!!mandatory,this}hideHelp(hide=!0){return this.hidden=!!hide,this}_concatValue(value,previous){return previous===this.defaultValue||!Array.isArray(previous)?[value]:previous.concat(value)}choices(values){return this.argChoices=values.slice(),this.parseArg=(arg,previous)=>{if(!this.argChoices.includes(arg))throw new InvalidArgumentError2(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(arg,previous):arg},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return this.negate?camelcase(this.name().replace(/^no-/,"")):camelcase(this.name())}is(arg){return this.short===arg||this.long===arg}isBoolean(){return!this.required&&!this.optional&&!this.negate}},DualOptions=class{static{__name(this,"DualOptions")}constructor(options){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,options.forEach(option2=>{option2.negate?this.negativeOptions.set(option2.attributeName(),option2):this.positiveOptions.set(option2.attributeName(),option2)}),this.negativeOptions.forEach((value,key)=>{this.positiveOptions.has(key)&&this.dualOptions.add(key)})}valueFromOption(value,option2){let optionKey=option2.attributeName();if(!this.dualOptions.has(optionKey))return!0;let preset=this.negativeOptions.get(optionKey).presetArg,negativeValue=preset!==void 0?preset:!1;return option2.negate===(negativeValue===value)}};function camelcase(str){return str.split("-").reduce((str2,word)=>str2+word[0].toUpperCase()+word.slice(1))}__name(camelcase,"camelcase");function splitOptionFlags(flags){let shortFlag,longFlag,shortFlagExp=/^-[^-]$/,longFlagExp=/^--[^-]/,flagParts=flags.split(/[ |,]+/).concat("guard");if(shortFlagExp.test(flagParts[0])&&(shortFlag=flagParts.shift()),longFlagExp.test(flagParts[0])&&(longFlag=flagParts.shift()),!shortFlag&&shortFlagExp.test(flagParts[0])&&(shortFlag=flagParts.shift()),!shortFlag&&longFlagExp.test(flagParts[0])&&(shortFlag=longFlag,longFlag=flagParts.shift()),flagParts[0].startsWith("-")){let unsupportedFlag=flagParts[0],baseError=`option creation failed due to '${unsupportedFlag}' in option flags '${flags}'`;throw/^-[^-][^-]/.test(unsupportedFlag)?new Error(`${baseError}
21
+ `)}};function stripColor(str){let sgrPattern=/\x1b\[\d*(;\d*)*m/g;return str.replace(sgrPattern,"")}__name(stripColor,"stripColor");exports2.Help=Help2;exports2.stripColor=stripColor}});var require_option=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/lib/option.js"(exports2){var{InvalidArgumentError:InvalidArgumentError2}=require_error(),Option2=class{static{__name(this,"Option")}constructor(flags,description){this.flags=flags,this.description=description||"",this.required=flags.includes("<"),this.optional=flags.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(flags),this.mandatory=!1;let optionFlags=splitOptionFlags(flags);this.short=optionFlags.shortFlag,this.long=optionFlags.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0}default(value,description){return this.defaultValue=value,this.defaultValueDescription=description,this}preset(arg){return this.presetArg=arg,this}conflicts(names){return this.conflictsWith=this.conflictsWith.concat(names),this}implies(impliedOptionValues){let newImplied=impliedOptionValues;return typeof impliedOptionValues=="string"&&(newImplied={[impliedOptionValues]:!0}),this.implied=Object.assign(this.implied||{},newImplied),this}env(name){return this.envVar=name,this}argParser(fn){return this.parseArg=fn,this}makeOptionMandatory(mandatory=!0){return this.mandatory=!!mandatory,this}hideHelp(hide=!0){return this.hidden=!!hide,this}_concatValue(value,previous){return previous===this.defaultValue||!Array.isArray(previous)?[value]:previous.concat(value)}choices(values){return this.argChoices=values.slice(),this.parseArg=(arg,previous)=>{if(!this.argChoices.includes(arg))throw new InvalidArgumentError2(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(arg,previous):arg},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return this.negate?camelcase(this.name().replace(/^no-/,"")):camelcase(this.name())}is(arg){return this.short===arg||this.long===arg}isBoolean(){return!this.required&&!this.optional&&!this.negate}},DualOptions=class{static{__name(this,"DualOptions")}constructor(options){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,options.forEach(option=>{option.negate?this.negativeOptions.set(option.attributeName(),option):this.positiveOptions.set(option.attributeName(),option)}),this.negativeOptions.forEach((value,key)=>{this.positiveOptions.has(key)&&this.dualOptions.add(key)})}valueFromOption(value,option){let optionKey=option.attributeName();if(!this.dualOptions.has(optionKey))return!0;let preset=this.negativeOptions.get(optionKey).presetArg,negativeValue=preset!==void 0?preset:!1;return option.negate===(negativeValue===value)}};function camelcase(str){return str.split("-").reduce((str2,word)=>str2+word[0].toUpperCase()+word.slice(1))}__name(camelcase,"camelcase");function splitOptionFlags(flags){let shortFlag,longFlag,shortFlagExp=/^-[^-]$/,longFlagExp=/^--[^-]/,flagParts=flags.split(/[ |,]+/).concat("guard");if(shortFlagExp.test(flagParts[0])&&(shortFlag=flagParts.shift()),longFlagExp.test(flagParts[0])&&(longFlag=flagParts.shift()),!shortFlag&&shortFlagExp.test(flagParts[0])&&(shortFlag=flagParts.shift()),!shortFlag&&longFlagExp.test(flagParts[0])&&(shortFlag=longFlag,longFlag=flagParts.shift()),flagParts[0].startsWith("-")){let unsupportedFlag=flagParts[0],baseError=`option creation failed due to '${unsupportedFlag}' in option flags '${flags}'`;throw/^-[^-][^-]/.test(unsupportedFlag)?new Error(`${baseError}
22
22
  - a short flag is a single dash and a single character
23
23
  - either use a single dash and a single character (for a short flag)
24
24
  - or use a double dash for a long option (and can have two, like '--ws, --workspace')`):shortFlagExp.test(unsupportedFlag)?new Error(`${baseError}
@@ -28,16 +28,16 @@ ${itemIndentStr}`)}boxWrap(str,width){if(width<this.minWidthToWrap)return str;le
28
28
  (Did you mean one of ${similar.join(", ")}?)`:similar.length===1?`
29
29
  (Did you mean ${similar[0]}?)`:""}__name(suggestSimilar,"suggestSimilar");exports2.suggestSimilar=suggestSimilar}});var require_command=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/lib/command.js"(exports2){var EventEmitter=__require("node:events").EventEmitter,childProcess2=__require("node:child_process"),path52=__require("node:path"),fs50=__require("node:fs"),process8=__require("node:process"),{Argument:Argument2,humanReadableArgName}=require_argument(),{CommanderError:CommanderError2}=require_error(),{Help:Help2,stripColor}=require_help(),{Option:Option2,DualOptions}=require_option(),{suggestSimilar}=require_suggestSimilar(),Command2=class _Command extends EventEmitter{static{__name(this,"Command")}constructor(name){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=name||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:__name(str=>process8.stdout.write(str),"writeOut"),writeErr:__name(str=>process8.stderr.write(str),"writeErr"),outputError:__name((str,write)=>write(str),"outputError"),getOutHelpWidth:__name(()=>process8.stdout.isTTY?process8.stdout.columns:void 0,"getOutHelpWidth"),getErrHelpWidth:__name(()=>process8.stderr.isTTY?process8.stderr.columns:void 0,"getErrHelpWidth"),getOutHasColors:__name(()=>useColor()??(process8.stdout.isTTY&&process8.stdout.hasColors?.()),"getOutHasColors"),getErrHasColors:__name(()=>useColor()??(process8.stderr.isTTY&&process8.stderr.hasColors?.()),"getErrHasColors"),stripColor:__name(str=>stripColor(str),"stripColor")},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(sourceCommand){return this._outputConfiguration=sourceCommand._outputConfiguration,this._helpOption=sourceCommand._helpOption,this._helpCommand=sourceCommand._helpCommand,this._helpConfiguration=sourceCommand._helpConfiguration,this._exitCallback=sourceCommand._exitCallback,this._storeOptionsAsProperties=sourceCommand._storeOptionsAsProperties,this._combineFlagAndOptionalValue=sourceCommand._combineFlagAndOptionalValue,this._allowExcessArguments=sourceCommand._allowExcessArguments,this._enablePositionalOptions=sourceCommand._enablePositionalOptions,this._showHelpAfterError=sourceCommand._showHelpAfterError,this._showSuggestionAfterError=sourceCommand._showSuggestionAfterError,this}_getCommandAndAncestors(){let result=[];for(let command=this;command;command=command.parent)result.push(command);return result}command(nameAndArgs,actionOptsOrExecDesc,execOpts){let desc=actionOptsOrExecDesc,opts=execOpts;typeof desc=="object"&&desc!==null&&(opts=desc,desc=null),opts=opts||{};let[,name,args]=nameAndArgs.match(/([^ ]+) *(.*)/),cmd=this.createCommand(name);return desc&&(cmd.description(desc),cmd._executableHandler=!0),opts.isDefault&&(this._defaultCommandName=cmd._name),cmd._hidden=!!(opts.noHelp||opts.hidden),cmd._executableFile=opts.executableFile||null,args&&cmd.arguments(args),this._registerCommand(cmd),cmd.parent=this,cmd.copyInheritedSettings(this),desc?this:cmd}createCommand(name){return new _Command(name)}createHelp(){return Object.assign(new Help2,this.configureHelp())}configureHelp(configuration){return configuration===void 0?this._helpConfiguration:(this._helpConfiguration=configuration,this)}configureOutput(configuration){return configuration===void 0?this._outputConfiguration:(Object.assign(this._outputConfiguration,configuration),this)}showHelpAfterError(displayHelp=!0){return typeof displayHelp!="string"&&(displayHelp=!!displayHelp),this._showHelpAfterError=displayHelp,this}showSuggestionAfterError(displaySuggestion=!0){return this._showSuggestionAfterError=!!displaySuggestion,this}addCommand(cmd,opts){if(!cmd._name)throw new Error(`Command passed to .addCommand() must have a name
30
30
  - specify the name in Command constructor or using .name()`);return opts=opts||{},opts.isDefault&&(this._defaultCommandName=cmd._name),(opts.noHelp||opts.hidden)&&(cmd._hidden=!0),this._registerCommand(cmd),cmd.parent=this,cmd._checkForBrokenPassThrough(),this}createArgument(name,description){return new Argument2(name,description)}argument(name,description,fn,defaultValue){let argument=this.createArgument(name,description);return typeof fn=="function"?argument.default(defaultValue).argParser(fn):argument.default(fn),this.addArgument(argument),this}arguments(names){return names.trim().split(/ +/).forEach(detail=>{this.argument(detail)}),this}addArgument(argument){let previousArgument=this.registeredArguments.slice(-1)[0];if(previousArgument&&previousArgument.variadic)throw new Error(`only the last argument can be variadic '${previousArgument.name()}'`);if(argument.required&&argument.defaultValue!==void 0&&argument.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${argument.name()}'`);return this.registeredArguments.push(argument),this}helpCommand(enableOrNameAndArgs,description){if(typeof enableOrNameAndArgs=="boolean")return this._addImplicitHelpCommand=enableOrNameAndArgs,this;enableOrNameAndArgs=enableOrNameAndArgs??"help [command]";let[,helpName,helpArgs]=enableOrNameAndArgs.match(/([^ ]+) *(.*)/),helpDescription=description??"display help for command",helpCommand=this.createCommand(helpName);return helpCommand.helpOption(!1),helpArgs&&helpCommand.arguments(helpArgs),helpDescription&&helpCommand.description(helpDescription),this._addImplicitHelpCommand=!0,this._helpCommand=helpCommand,this}addHelpCommand(helpCommand,deprecatedDescription){return typeof helpCommand!="object"?(this.helpCommand(helpCommand,deprecatedDescription),this):(this._addImplicitHelpCommand=!0,this._helpCommand=helpCommand,this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(event,listener){let allowedValues=["preSubcommand","preAction","postAction"];if(!allowedValues.includes(event))throw new Error(`Unexpected value for event passed to hook : '${event}'.
31
- Expecting one of '${allowedValues.join("', '")}'`);return this._lifeCycleHooks[event]?this._lifeCycleHooks[event].push(listener):this._lifeCycleHooks[event]=[listener],this}exitOverride(fn){return fn?this._exitCallback=fn:this._exitCallback=err=>{if(err.code!=="commander.executeSubCommandAsync")throw err},this}_exit(exitCode,code2,message){this._exitCallback&&this._exitCallback(new CommanderError2(exitCode,code2,message)),process8.exit(exitCode)}action(fn){let listener=__name(args=>{let expectedArgsCount=this.registeredArguments.length,actionArgs=args.slice(0,expectedArgsCount);return this._storeOptionsAsProperties?actionArgs[expectedArgsCount]=this:actionArgs[expectedArgsCount]=this.opts(),actionArgs.push(this),fn.apply(this,actionArgs)},"listener");return this._actionHandler=listener,this}createOption(flags,description){return new Option2(flags,description)}_callParseArg(target,value,previous,invalidArgumentMessage){try{return target.parseArg(value,previous)}catch(err){if(err.code==="commander.invalidArgument"){let message=`${invalidArgumentMessage} ${err.message}`;this.error(message,{exitCode:err.exitCode,code:err.code})}throw err}}_registerOption(option2){let matchingOption=option2.short&&this._findOption(option2.short)||option2.long&&this._findOption(option2.long);if(matchingOption){let matchingFlag=option2.long&&this._findOption(option2.long)?option2.long:option2.short;throw new Error(`Cannot add option '${option2.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${matchingFlag}'
32
- - already used by option '${matchingOption.flags}'`)}this.options.push(option2)}_registerCommand(command){let knownBy=__name(cmd=>[cmd.name()].concat(cmd.aliases()),"knownBy"),alreadyUsed=knownBy(command).find(name=>this._findCommand(name));if(alreadyUsed){let existingCmd=knownBy(this._findCommand(alreadyUsed)).join("|"),newCmd=knownBy(command).join("|");throw new Error(`cannot add command '${newCmd}' as already have command '${existingCmd}'`)}this.commands.push(command)}addOption(option2){this._registerOption(option2);let oname=option2.name(),name=option2.attributeName();if(option2.negate){let positiveLongFlag=option2.long.replace(/^--no-/,"--");this._findOption(positiveLongFlag)||this.setOptionValueWithSource(name,option2.defaultValue===void 0?!0:option2.defaultValue,"default")}else option2.defaultValue!==void 0&&this.setOptionValueWithSource(name,option2.defaultValue,"default");let handleOptionValue=__name((val,invalidValueMessage,valueSource)=>{val==null&&option2.presetArg!==void 0&&(val=option2.presetArg);let oldValue=this.getOptionValue(name);val!==null&&option2.parseArg?val=this._callParseArg(option2,val,oldValue,invalidValueMessage):val!==null&&option2.variadic&&(val=option2._concatValue(val,oldValue)),val==null&&(option2.negate?val=!1:option2.isBoolean()||option2.optional?val=!0:val=""),this.setOptionValueWithSource(name,val,valueSource)},"handleOptionValue");return this.on("option:"+oname,val=>{let invalidValueMessage=`error: option '${option2.flags}' argument '${val}' is invalid.`;handleOptionValue(val,invalidValueMessage,"cli")}),option2.envVar&&this.on("optionEnv:"+oname,val=>{let invalidValueMessage=`error: option '${option2.flags}' value '${val}' from env '${option2.envVar}' is invalid.`;handleOptionValue(val,invalidValueMessage,"env")}),this}_optionEx(config,flags,description,fn,defaultValue){if(typeof flags=="object"&&flags instanceof Option2)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let option2=this.createOption(flags,description);if(option2.makeOptionMandatory(!!config.mandatory),typeof fn=="function")option2.default(defaultValue).argParser(fn);else if(fn instanceof RegExp){let regex=fn;fn=__name((val,def)=>{let m=regex.exec(val);return m?m[0]:def},"fn"),option2.default(defaultValue).argParser(fn)}else option2.default(fn);return this.addOption(option2)}option(flags,description,parseArg,defaultValue){return this._optionEx({},flags,description,parseArg,defaultValue)}requiredOption(flags,description,parseArg,defaultValue){return this._optionEx({mandatory:!0},flags,description,parseArg,defaultValue)}combineFlagAndOptionalValue(combine=!0){return this._combineFlagAndOptionalValue=!!combine,this}allowUnknownOption(allowUnknown=!0){return this._allowUnknownOption=!!allowUnknown,this}allowExcessArguments(allowExcess=!0){return this._allowExcessArguments=!!allowExcess,this}enablePositionalOptions(positional=!0){return this._enablePositionalOptions=!!positional,this}passThroughOptions(passThrough=!0){return this._passThroughOptions=!!passThrough,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(storeAsProperties=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!storeAsProperties,this}getOptionValue(key){return this._storeOptionsAsProperties?this[key]:this._optionValues[key]}setOptionValue(key,value){return this.setOptionValueWithSource(key,value,void 0)}setOptionValueWithSource(key,value,source){return this._storeOptionsAsProperties?this[key]=value:this._optionValues[key]=value,this._optionValueSources[key]=source,this}getOptionValueSource(key){return this._optionValueSources[key]}getOptionValueSourceWithGlobals(key){let source;return this._getCommandAndAncestors().forEach(cmd=>{cmd.getOptionValueSource(key)!==void 0&&(source=cmd.getOptionValueSource(key))}),source}_prepareUserArgs(argv,parseOptions){if(argv!==void 0&&!Array.isArray(argv))throw new Error("first parameter to parse must be array or undefined");if(parseOptions=parseOptions||{},argv===void 0&&parseOptions.from===void 0){process8.versions?.electron&&(parseOptions.from="electron");let execArgv=process8.execArgv??[];(execArgv.includes("-e")||execArgv.includes("--eval")||execArgv.includes("-p")||execArgv.includes("--print"))&&(parseOptions.from="eval")}argv===void 0&&(argv=process8.argv),this.rawArgs=argv.slice();let userArgs;switch(parseOptions.from){case void 0:case"node":this._scriptPath=argv[1],userArgs=argv.slice(2);break;case"electron":process8.defaultApp?(this._scriptPath=argv[1],userArgs=argv.slice(2)):userArgs=argv.slice(1);break;case"user":userArgs=argv.slice(0);break;case"eval":userArgs=argv.slice(1);break;default:throw new Error(`unexpected parse option { from: '${parseOptions.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",userArgs}parse(argv,parseOptions){this._prepareForParse();let userArgs=this._prepareUserArgs(argv,parseOptions);return this._parseCommand([],userArgs),this}async parseAsync(argv,parseOptions){this._prepareForParse();let userArgs=this._prepareUserArgs(argv,parseOptions);return await this._parseCommand([],userArgs),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
31
+ Expecting one of '${allowedValues.join("', '")}'`);return this._lifeCycleHooks[event]?this._lifeCycleHooks[event].push(listener):this._lifeCycleHooks[event]=[listener],this}exitOverride(fn){return fn?this._exitCallback=fn:this._exitCallback=err=>{if(err.code!=="commander.executeSubCommandAsync")throw err},this}_exit(exitCode,code2,message){this._exitCallback&&this._exitCallback(new CommanderError2(exitCode,code2,message)),process8.exit(exitCode)}action(fn){let listener=__name(args=>{let expectedArgsCount=this.registeredArguments.length,actionArgs=args.slice(0,expectedArgsCount);return this._storeOptionsAsProperties?actionArgs[expectedArgsCount]=this:actionArgs[expectedArgsCount]=this.opts(),actionArgs.push(this),fn.apply(this,actionArgs)},"listener");return this._actionHandler=listener,this}createOption(flags,description){return new Option2(flags,description)}_callParseArg(target,value,previous,invalidArgumentMessage){try{return target.parseArg(value,previous)}catch(err){if(err.code==="commander.invalidArgument"){let message=`${invalidArgumentMessage} ${err.message}`;this.error(message,{exitCode:err.exitCode,code:err.code})}throw err}}_registerOption(option){let matchingOption=option.short&&this._findOption(option.short)||option.long&&this._findOption(option.long);if(matchingOption){let matchingFlag=option.long&&this._findOption(option.long)?option.long:option.short;throw new Error(`Cannot add option '${option.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${matchingFlag}'
32
+ - already used by option '${matchingOption.flags}'`)}this.options.push(option)}_registerCommand(command){let knownBy=__name(cmd=>[cmd.name()].concat(cmd.aliases()),"knownBy"),alreadyUsed=knownBy(command).find(name=>this._findCommand(name));if(alreadyUsed){let existingCmd=knownBy(this._findCommand(alreadyUsed)).join("|"),newCmd=knownBy(command).join("|");throw new Error(`cannot add command '${newCmd}' as already have command '${existingCmd}'`)}this.commands.push(command)}addOption(option){this._registerOption(option);let oname=option.name(),name=option.attributeName();if(option.negate){let positiveLongFlag=option.long.replace(/^--no-/,"--");this._findOption(positiveLongFlag)||this.setOptionValueWithSource(name,option.defaultValue===void 0?!0:option.defaultValue,"default")}else option.defaultValue!==void 0&&this.setOptionValueWithSource(name,option.defaultValue,"default");let handleOptionValue=__name((val,invalidValueMessage,valueSource)=>{val==null&&option.presetArg!==void 0&&(val=option.presetArg);let oldValue=this.getOptionValue(name);val!==null&&option.parseArg?val=this._callParseArg(option,val,oldValue,invalidValueMessage):val!==null&&option.variadic&&(val=option._concatValue(val,oldValue)),val==null&&(option.negate?val=!1:option.isBoolean()||option.optional?val=!0:val=""),this.setOptionValueWithSource(name,val,valueSource)},"handleOptionValue");return this.on("option:"+oname,val=>{let invalidValueMessage=`error: option '${option.flags}' argument '${val}' is invalid.`;handleOptionValue(val,invalidValueMessage,"cli")}),option.envVar&&this.on("optionEnv:"+oname,val=>{let invalidValueMessage=`error: option '${option.flags}' value '${val}' from env '${option.envVar}' is invalid.`;handleOptionValue(val,invalidValueMessage,"env")}),this}_optionEx(config,flags,description,fn,defaultValue){if(typeof flags=="object"&&flags instanceof Option2)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let option=this.createOption(flags,description);if(option.makeOptionMandatory(!!config.mandatory),typeof fn=="function")option.default(defaultValue).argParser(fn);else if(fn instanceof RegExp){let regex=fn;fn=__name((val,def)=>{let m=regex.exec(val);return m?m[0]:def},"fn"),option.default(defaultValue).argParser(fn)}else option.default(fn);return this.addOption(option)}option(flags,description,parseArg,defaultValue){return this._optionEx({},flags,description,parseArg,defaultValue)}requiredOption(flags,description,parseArg,defaultValue){return this._optionEx({mandatory:!0},flags,description,parseArg,defaultValue)}combineFlagAndOptionalValue(combine=!0){return this._combineFlagAndOptionalValue=!!combine,this}allowUnknownOption(allowUnknown=!0){return this._allowUnknownOption=!!allowUnknown,this}allowExcessArguments(allowExcess=!0){return this._allowExcessArguments=!!allowExcess,this}enablePositionalOptions(positional=!0){return this._enablePositionalOptions=!!positional,this}passThroughOptions(passThrough=!0){return this._passThroughOptions=!!passThrough,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(storeAsProperties=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!storeAsProperties,this}getOptionValue(key){return this._storeOptionsAsProperties?this[key]:this._optionValues[key]}setOptionValue(key,value){return this.setOptionValueWithSource(key,value,void 0)}setOptionValueWithSource(key,value,source){return this._storeOptionsAsProperties?this[key]=value:this._optionValues[key]=value,this._optionValueSources[key]=source,this}getOptionValueSource(key){return this._optionValueSources[key]}getOptionValueSourceWithGlobals(key){let source;return this._getCommandAndAncestors().forEach(cmd=>{cmd.getOptionValueSource(key)!==void 0&&(source=cmd.getOptionValueSource(key))}),source}_prepareUserArgs(argv,parseOptions){if(argv!==void 0&&!Array.isArray(argv))throw new Error("first parameter to parse must be array or undefined");if(parseOptions=parseOptions||{},argv===void 0&&parseOptions.from===void 0){process8.versions?.electron&&(parseOptions.from="electron");let execArgv=process8.execArgv??[];(execArgv.includes("-e")||execArgv.includes("--eval")||execArgv.includes("-p")||execArgv.includes("--print"))&&(parseOptions.from="eval")}argv===void 0&&(argv=process8.argv),this.rawArgs=argv.slice();let userArgs;switch(parseOptions.from){case void 0:case"node":this._scriptPath=argv[1],userArgs=argv.slice(2);break;case"electron":process8.defaultApp?(this._scriptPath=argv[1],userArgs=argv.slice(2)):userArgs=argv.slice(1);break;case"user":userArgs=argv.slice(0);break;case"eval":userArgs=argv.slice(1);break;default:throw new Error(`unexpected parse option { from: '${parseOptions.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",userArgs}parse(argv,parseOptions){this._prepareForParse();let userArgs=this._prepareUserArgs(argv,parseOptions);return this._parseCommand([],userArgs),this}async parseAsync(argv,parseOptions){this._prepareForParse();let userArgs=this._prepareUserArgs(argv,parseOptions);return await this._parseCommand([],userArgs),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
33
33
  - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(executableFile,executableDir,subcommandName){if(fs50.existsSync(executableFile))return;let executableDirMessage=executableDir?`searched for local subcommand relative to directory '${executableDir}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",executableMissing=`'${executableFile}' does not exist
34
34
  - if '${subcommandName}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
35
35
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
36
- - ${executableDirMessage}`;throw new Error(executableMissing)}_executeSubCommand(subcommand,args){args=args.slice();let launchWithNode=!1,sourceExt=[".js",".ts",".tsx",".mjs",".cjs"];function findFile(baseDir,baseName){let localBin=path52.resolve(baseDir,baseName);if(fs50.existsSync(localBin))return localBin;if(sourceExt.includes(path52.extname(baseName)))return;let foundExt=sourceExt.find(ext=>fs50.existsSync(`${localBin}${ext}`));if(foundExt)return`${localBin}${foundExt}`}__name(findFile,"findFile"),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let executableFile=subcommand._executableFile||`${this._name}-${subcommand._name}`,executableDir=this._executableDir||"";if(this._scriptPath){let resolvedScriptPath;try{resolvedScriptPath=fs50.realpathSync(this._scriptPath)}catch{resolvedScriptPath=this._scriptPath}executableDir=path52.resolve(path52.dirname(resolvedScriptPath),executableDir)}if(executableDir){let localFile=findFile(executableDir,executableFile);if(!localFile&&!subcommand._executableFile&&this._scriptPath){let legacyName=path52.basename(this._scriptPath,path52.extname(this._scriptPath));legacyName!==this._name&&(localFile=findFile(executableDir,`${legacyName}-${subcommand._name}`))}executableFile=localFile||executableFile}launchWithNode=sourceExt.includes(path52.extname(executableFile));let proc;process8.platform!=="win32"?launchWithNode?(args.unshift(executableFile),args=incrementNodeInspectorPort(process8.execArgv).concat(args),proc=childProcess2.spawn(process8.argv[0],args,{stdio:"inherit"})):proc=childProcess2.spawn(executableFile,args,{stdio:"inherit"}):(this._checkForMissingExecutable(executableFile,executableDir,subcommand._name),args.unshift(executableFile),args=incrementNodeInspectorPort(process8.execArgv).concat(args),proc=childProcess2.spawn(process8.execPath,args,{stdio:"inherit"})),proc.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(signal=>{process8.on(signal,()=>{proc.killed===!1&&proc.exitCode===null&&proc.kill(signal)})});let exitCallback=this._exitCallback;proc.on("close",code2=>{code2=code2??1,exitCallback?exitCallback(new CommanderError2(code2,"commander.executeSubCommandAsync","(close)")):process8.exit(code2)}),proc.on("error",err=>{if(err.code==="ENOENT")this._checkForMissingExecutable(executableFile,executableDir,subcommand._name);else if(err.code==="EACCES")throw new Error(`'${executableFile}' not executable`);if(!exitCallback)process8.exit(1);else{let wrappedError=new CommanderError2(1,"commander.executeSubCommandAsync","(error)");wrappedError.nestedError=err,exitCallback(wrappedError)}}),this.runningCommand=proc}_dispatchSubcommand(commandName2,operands,unknown){let subCommand=this._findCommand(commandName2);subCommand||this.help({error:!0}),subCommand._prepareForParse();let promiseChain;return promiseChain=this._chainOrCallSubCommandHook(promiseChain,subCommand,"preSubcommand"),promiseChain=this._chainOrCall(promiseChain,()=>{if(subCommand._executableHandler)this._executeSubCommand(subCommand,operands.concat(unknown));else return subCommand._parseCommand(operands,unknown)}),promiseChain}_dispatchHelpCommand(subcommandName){subcommandName||this.help();let subCommand=this._findCommand(subcommandName);return subCommand&&!subCommand._executableHandler&&subCommand.help(),this._dispatchSubcommand(subcommandName,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((arg,i)=>{arg.required&&this.args[i]==null&&this.missingArgument(arg.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let myParseArg=__name((argument,value,previous)=>{let parsedValue=value;if(value!==null&&argument.parseArg){let invalidValueMessage=`error: command-argument value '${value}' is invalid for argument '${argument.name()}'.`;parsedValue=this._callParseArg(argument,value,previous,invalidValueMessage)}return parsedValue},"myParseArg");this._checkNumberOfArguments();let processedArgs=[];this.registeredArguments.forEach((declaredArg,index)=>{let value=declaredArg.defaultValue;declaredArg.variadic?index<this.args.length?(value=this.args.slice(index),declaredArg.parseArg&&(value=value.reduce((processed,v)=>myParseArg(declaredArg,v,processed),declaredArg.defaultValue))):value===void 0&&(value=[]):index<this.args.length&&(value=this.args[index],declaredArg.parseArg&&(value=myParseArg(declaredArg,value,declaredArg.defaultValue))),processedArgs[index]=value}),this.processedArgs=processedArgs}_chainOrCall(promise,fn){return promise&&promise.then&&typeof promise.then=="function"?promise.then(()=>fn()):fn()}_chainOrCallHooks(promise,event){let result=promise,hooks=[];return this._getCommandAndAncestors().reverse().filter(cmd=>cmd._lifeCycleHooks[event]!==void 0).forEach(hookedCommand=>{hookedCommand._lifeCycleHooks[event].forEach(callback=>{hooks.push({hookedCommand,callback})})}),event==="postAction"&&hooks.reverse(),hooks.forEach(hookDetail=>{result=this._chainOrCall(result,()=>hookDetail.callback(hookDetail.hookedCommand,this))}),result}_chainOrCallSubCommandHook(promise,subCommand,event){let result=promise;return this._lifeCycleHooks[event]!==void 0&&this._lifeCycleHooks[event].forEach(hook=>{result=this._chainOrCall(result,()=>hook(this,subCommand))}),result}_parseCommand(operands,unknown){let parsed=this.parseOptions(unknown);if(this._parseOptionsEnv(),this._parseOptionsImplied(),operands=operands.concat(parsed.operands),unknown=parsed.unknown,this.args=operands.concat(unknown),operands&&this._findCommand(operands[0]))return this._dispatchSubcommand(operands[0],operands.slice(1),unknown);if(this._getHelpCommand()&&operands[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(operands[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(unknown),this._dispatchSubcommand(this._defaultCommandName,operands,unknown);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(parsed.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let checkForUnknownOptions=__name(()=>{parsed.unknown.length>0&&this.unknownOption(parsed.unknown[0])},"checkForUnknownOptions"),commandEvent=`command:${this.name()}`;if(this._actionHandler){checkForUnknownOptions(),this._processArguments();let promiseChain;return promiseChain=this._chainOrCallHooks(promiseChain,"preAction"),promiseChain=this._chainOrCall(promiseChain,()=>this._actionHandler(this.processedArgs)),this.parent&&(promiseChain=this._chainOrCall(promiseChain,()=>{this.parent.emit(commandEvent,operands,unknown)})),promiseChain=this._chainOrCallHooks(promiseChain,"postAction"),promiseChain}if(this.parent&&this.parent.listenerCount(commandEvent))checkForUnknownOptions(),this._processArguments(),this.parent.emit(commandEvent,operands,unknown);else if(operands.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",operands,unknown);this.listenerCount("command:*")?this.emit("command:*",operands,unknown):this.commands.length?this.unknownCommand():(checkForUnknownOptions(),this._processArguments())}else this.commands.length?(checkForUnknownOptions(),this.help({error:!0})):(checkForUnknownOptions(),this._processArguments())}_findCommand(name){if(name)return this.commands.find(cmd=>cmd._name===name||cmd._aliases.includes(name))}_findOption(arg){return this.options.find(option2=>option2.is(arg))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(cmd=>{cmd.options.forEach(anOption=>{anOption.mandatory&&cmd.getOptionValue(anOption.attributeName())===void 0&&cmd.missingMandatoryOptionValue(anOption)})})}_checkForConflictingLocalOptions(){let definedNonDefaultOptions=this.options.filter(option2=>{let optionKey=option2.attributeName();return this.getOptionValue(optionKey)===void 0?!1:this.getOptionValueSource(optionKey)!=="default"});definedNonDefaultOptions.filter(option2=>option2.conflictsWith.length>0).forEach(option2=>{let conflictingAndDefined=definedNonDefaultOptions.find(defined=>option2.conflictsWith.includes(defined.attributeName()));conflictingAndDefined&&this._conflictingOption(option2,conflictingAndDefined)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(cmd=>{cmd._checkForConflictingLocalOptions()})}parseOptions(argv){let operands=[],unknown=[],dest=operands,args=argv.slice();function maybeOption(arg){return arg.length>1&&arg[0]==="-"}__name(maybeOption,"maybeOption");let activeVariadicOption=null;for(;args.length;){let arg=args.shift();if(arg==="--"){dest===unknown&&dest.push(arg),dest.push(...args);break}if(activeVariadicOption&&!maybeOption(arg)){this.emit(`option:${activeVariadicOption.name()}`,arg);continue}if(activeVariadicOption=null,maybeOption(arg)){let option2=this._findOption(arg);if(option2){if(option2.required){let value=args.shift();value===void 0&&this.optionMissingArgument(option2),this.emit(`option:${option2.name()}`,value)}else if(option2.optional){let value=null;args.length>0&&!maybeOption(args[0])&&(value=args.shift()),this.emit(`option:${option2.name()}`,value)}else this.emit(`option:${option2.name()}`);activeVariadicOption=option2.variadic?option2:null;continue}}if(arg.length>2&&arg[0]==="-"&&arg[1]!=="-"){let option2=this._findOption(`-${arg[1]}`);if(option2){option2.required||option2.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${option2.name()}`,arg.slice(2)):(this.emit(`option:${option2.name()}`),args.unshift(`-${arg.slice(2)}`));continue}}if(/^--[^=]+=/.test(arg)){let index=arg.indexOf("="),option2=this._findOption(arg.slice(0,index));if(option2&&(option2.required||option2.optional)){this.emit(`option:${option2.name()}`,arg.slice(index+1));continue}}if(maybeOption(arg)&&(dest=unknown),(this._enablePositionalOptions||this._passThroughOptions)&&operands.length===0&&unknown.length===0){if(this._findCommand(arg)){operands.push(arg),args.length>0&&unknown.push(...args);break}else if(this._getHelpCommand()&&arg===this._getHelpCommand().name()){operands.push(arg),args.length>0&&operands.push(...args);break}else if(this._defaultCommandName){unknown.push(arg),args.length>0&&unknown.push(...args);break}}if(this._passThroughOptions){dest.push(arg),args.length>0&&dest.push(...args);break}dest.push(arg)}return{operands,unknown}}opts(){if(this._storeOptionsAsProperties){let result={},len=this.options.length;for(let i=0;i<len;i++){let key=this.options[i].attributeName();result[key]=key===this._versionOptionName?this._version:this[key]}return result}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((combinedOptions,cmd)=>Object.assign(combinedOptions,cmd.opts()),{})}error(message,errorOptions){this._outputConfiguration.outputError(`${message}
36
+ - ${executableDirMessage}`;throw new Error(executableMissing)}_executeSubCommand(subcommand,args){args=args.slice();let launchWithNode=!1,sourceExt=[".js",".ts",".tsx",".mjs",".cjs"];function findFile(baseDir,baseName){let localBin=path52.resolve(baseDir,baseName);if(fs50.existsSync(localBin))return localBin;if(sourceExt.includes(path52.extname(baseName)))return;let foundExt=sourceExt.find(ext=>fs50.existsSync(`${localBin}${ext}`));if(foundExt)return`${localBin}${foundExt}`}__name(findFile,"findFile"),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let executableFile=subcommand._executableFile||`${this._name}-${subcommand._name}`,executableDir=this._executableDir||"";if(this._scriptPath){let resolvedScriptPath;try{resolvedScriptPath=fs50.realpathSync(this._scriptPath)}catch{resolvedScriptPath=this._scriptPath}executableDir=path52.resolve(path52.dirname(resolvedScriptPath),executableDir)}if(executableDir){let localFile=findFile(executableDir,executableFile);if(!localFile&&!subcommand._executableFile&&this._scriptPath){let legacyName=path52.basename(this._scriptPath,path52.extname(this._scriptPath));legacyName!==this._name&&(localFile=findFile(executableDir,`${legacyName}-${subcommand._name}`))}executableFile=localFile||executableFile}launchWithNode=sourceExt.includes(path52.extname(executableFile));let proc;process8.platform!=="win32"?launchWithNode?(args.unshift(executableFile),args=incrementNodeInspectorPort(process8.execArgv).concat(args),proc=childProcess2.spawn(process8.argv[0],args,{stdio:"inherit"})):proc=childProcess2.spawn(executableFile,args,{stdio:"inherit"}):(this._checkForMissingExecutable(executableFile,executableDir,subcommand._name),args.unshift(executableFile),args=incrementNodeInspectorPort(process8.execArgv).concat(args),proc=childProcess2.spawn(process8.execPath,args,{stdio:"inherit"})),proc.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(signal=>{process8.on(signal,()=>{proc.killed===!1&&proc.exitCode===null&&proc.kill(signal)})});let exitCallback=this._exitCallback;proc.on("close",code2=>{code2=code2??1,exitCallback?exitCallback(new CommanderError2(code2,"commander.executeSubCommandAsync","(close)")):process8.exit(code2)}),proc.on("error",err=>{if(err.code==="ENOENT")this._checkForMissingExecutable(executableFile,executableDir,subcommand._name);else if(err.code==="EACCES")throw new Error(`'${executableFile}' not executable`);if(!exitCallback)process8.exit(1);else{let wrappedError=new CommanderError2(1,"commander.executeSubCommandAsync","(error)");wrappedError.nestedError=err,exitCallback(wrappedError)}}),this.runningCommand=proc}_dispatchSubcommand(commandName2,operands,unknown){let subCommand=this._findCommand(commandName2);subCommand||this.help({error:!0}),subCommand._prepareForParse();let promiseChain;return promiseChain=this._chainOrCallSubCommandHook(promiseChain,subCommand,"preSubcommand"),promiseChain=this._chainOrCall(promiseChain,()=>{if(subCommand._executableHandler)this._executeSubCommand(subCommand,operands.concat(unknown));else return subCommand._parseCommand(operands,unknown)}),promiseChain}_dispatchHelpCommand(subcommandName){subcommandName||this.help();let subCommand=this._findCommand(subcommandName);return subCommand&&!subCommand._executableHandler&&subCommand.help(),this._dispatchSubcommand(subcommandName,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((arg,i)=>{arg.required&&this.args[i]==null&&this.missingArgument(arg.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let myParseArg=__name((argument,value,previous)=>{let parsedValue=value;if(value!==null&&argument.parseArg){let invalidValueMessage=`error: command-argument value '${value}' is invalid for argument '${argument.name()}'.`;parsedValue=this._callParseArg(argument,value,previous,invalidValueMessage)}return parsedValue},"myParseArg");this._checkNumberOfArguments();let processedArgs=[];this.registeredArguments.forEach((declaredArg,index)=>{let value=declaredArg.defaultValue;declaredArg.variadic?index<this.args.length?(value=this.args.slice(index),declaredArg.parseArg&&(value=value.reduce((processed,v)=>myParseArg(declaredArg,v,processed),declaredArg.defaultValue))):value===void 0&&(value=[]):index<this.args.length&&(value=this.args[index],declaredArg.parseArg&&(value=myParseArg(declaredArg,value,declaredArg.defaultValue))),processedArgs[index]=value}),this.processedArgs=processedArgs}_chainOrCall(promise,fn){return promise&&promise.then&&typeof promise.then=="function"?promise.then(()=>fn()):fn()}_chainOrCallHooks(promise,event){let result=promise,hooks=[];return this._getCommandAndAncestors().reverse().filter(cmd=>cmd._lifeCycleHooks[event]!==void 0).forEach(hookedCommand=>{hookedCommand._lifeCycleHooks[event].forEach(callback=>{hooks.push({hookedCommand,callback})})}),event==="postAction"&&hooks.reverse(),hooks.forEach(hookDetail=>{result=this._chainOrCall(result,()=>hookDetail.callback(hookDetail.hookedCommand,this))}),result}_chainOrCallSubCommandHook(promise,subCommand,event){let result=promise;return this._lifeCycleHooks[event]!==void 0&&this._lifeCycleHooks[event].forEach(hook=>{result=this._chainOrCall(result,()=>hook(this,subCommand))}),result}_parseCommand(operands,unknown){let parsed=this.parseOptions(unknown);if(this._parseOptionsEnv(),this._parseOptionsImplied(),operands=operands.concat(parsed.operands),unknown=parsed.unknown,this.args=operands.concat(unknown),operands&&this._findCommand(operands[0]))return this._dispatchSubcommand(operands[0],operands.slice(1),unknown);if(this._getHelpCommand()&&operands[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(operands[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(unknown),this._dispatchSubcommand(this._defaultCommandName,operands,unknown);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(parsed.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let checkForUnknownOptions=__name(()=>{parsed.unknown.length>0&&this.unknownOption(parsed.unknown[0])},"checkForUnknownOptions"),commandEvent=`command:${this.name()}`;if(this._actionHandler){checkForUnknownOptions(),this._processArguments();let promiseChain;return promiseChain=this._chainOrCallHooks(promiseChain,"preAction"),promiseChain=this._chainOrCall(promiseChain,()=>this._actionHandler(this.processedArgs)),this.parent&&(promiseChain=this._chainOrCall(promiseChain,()=>{this.parent.emit(commandEvent,operands,unknown)})),promiseChain=this._chainOrCallHooks(promiseChain,"postAction"),promiseChain}if(this.parent&&this.parent.listenerCount(commandEvent))checkForUnknownOptions(),this._processArguments(),this.parent.emit(commandEvent,operands,unknown);else if(operands.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",operands,unknown);this.listenerCount("command:*")?this.emit("command:*",operands,unknown):this.commands.length?this.unknownCommand():(checkForUnknownOptions(),this._processArguments())}else this.commands.length?(checkForUnknownOptions(),this.help({error:!0})):(checkForUnknownOptions(),this._processArguments())}_findCommand(name){if(name)return this.commands.find(cmd=>cmd._name===name||cmd._aliases.includes(name))}_findOption(arg){return this.options.find(option=>option.is(arg))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(cmd=>{cmd.options.forEach(anOption=>{anOption.mandatory&&cmd.getOptionValue(anOption.attributeName())===void 0&&cmd.missingMandatoryOptionValue(anOption)})})}_checkForConflictingLocalOptions(){let definedNonDefaultOptions=this.options.filter(option=>{let optionKey=option.attributeName();return this.getOptionValue(optionKey)===void 0?!1:this.getOptionValueSource(optionKey)!=="default"});definedNonDefaultOptions.filter(option=>option.conflictsWith.length>0).forEach(option=>{let conflictingAndDefined=definedNonDefaultOptions.find(defined=>option.conflictsWith.includes(defined.attributeName()));conflictingAndDefined&&this._conflictingOption(option,conflictingAndDefined)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(cmd=>{cmd._checkForConflictingLocalOptions()})}parseOptions(argv){let operands=[],unknown=[],dest=operands,args=argv.slice();function maybeOption(arg){return arg.length>1&&arg[0]==="-"}__name(maybeOption,"maybeOption");let activeVariadicOption=null;for(;args.length;){let arg=args.shift();if(arg==="--"){dest===unknown&&dest.push(arg),dest.push(...args);break}if(activeVariadicOption&&!maybeOption(arg)){this.emit(`option:${activeVariadicOption.name()}`,arg);continue}if(activeVariadicOption=null,maybeOption(arg)){let option=this._findOption(arg);if(option){if(option.required){let value=args.shift();value===void 0&&this.optionMissingArgument(option),this.emit(`option:${option.name()}`,value)}else if(option.optional){let value=null;args.length>0&&!maybeOption(args[0])&&(value=args.shift()),this.emit(`option:${option.name()}`,value)}else this.emit(`option:${option.name()}`);activeVariadicOption=option.variadic?option:null;continue}}if(arg.length>2&&arg[0]==="-"&&arg[1]!=="-"){let option=this._findOption(`-${arg[1]}`);if(option){option.required||option.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${option.name()}`,arg.slice(2)):(this.emit(`option:${option.name()}`),args.unshift(`-${arg.slice(2)}`));continue}}if(/^--[^=]+=/.test(arg)){let index=arg.indexOf("="),option=this._findOption(arg.slice(0,index));if(option&&(option.required||option.optional)){this.emit(`option:${option.name()}`,arg.slice(index+1));continue}}if(maybeOption(arg)&&(dest=unknown),(this._enablePositionalOptions||this._passThroughOptions)&&operands.length===0&&unknown.length===0){if(this._findCommand(arg)){operands.push(arg),args.length>0&&unknown.push(...args);break}else if(this._getHelpCommand()&&arg===this._getHelpCommand().name()){operands.push(arg),args.length>0&&operands.push(...args);break}else if(this._defaultCommandName){unknown.push(arg),args.length>0&&unknown.push(...args);break}}if(this._passThroughOptions){dest.push(arg),args.length>0&&dest.push(...args);break}dest.push(arg)}return{operands,unknown}}opts(){if(this._storeOptionsAsProperties){let result={},len=this.options.length;for(let i=0;i<len;i++){let key=this.options[i].attributeName();result[key]=key===this._versionOptionName?this._version:this[key]}return result}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((combinedOptions,cmd)=>Object.assign(combinedOptions,cmd.opts()),{})}error(message,errorOptions){this._outputConfiguration.outputError(`${message}
37
37
  `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError=="string"?this._outputConfiguration.writeErr(`${this._showHelpAfterError}
38
38
  `):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
39
- `),this.outputHelp({error:!0}));let config=errorOptions||{},exitCode=config.exitCode||1,code2=config.code||"commander.error";this._exit(exitCode,code2,message)}_parseOptionsEnv(){this.options.forEach(option2=>{if(option2.envVar&&option2.envVar in process8.env){let optionKey=option2.attributeName();(this.getOptionValue(optionKey)===void 0||["default","config","env"].includes(this.getOptionValueSource(optionKey)))&&(option2.required||option2.optional?this.emit(`optionEnv:${option2.name()}`,process8.env[option2.envVar]):this.emit(`optionEnv:${option2.name()}`))}})}_parseOptionsImplied(){let dualHelper=new DualOptions(this.options),hasCustomOptionValue=__name(optionKey=>this.getOptionValue(optionKey)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(optionKey)),"hasCustomOptionValue");this.options.filter(option2=>option2.implied!==void 0&&hasCustomOptionValue(option2.attributeName())&&dualHelper.valueFromOption(this.getOptionValue(option2.attributeName()),option2)).forEach(option2=>{Object.keys(option2.implied).filter(impliedKey=>!hasCustomOptionValue(impliedKey)).forEach(impliedKey=>{this.setOptionValueWithSource(impliedKey,option2.implied[impliedKey],"implied")})})}missingArgument(name){let message=`error: missing required argument '${name}'`;this.error(message,{code:"commander.missingArgument"})}optionMissingArgument(option2){let message=`error: option '${option2.flags}' argument missing`;this.error(message,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(option2){let message=`error: required option '${option2.flags}' not specified`;this.error(message,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(option2,conflictingOption){let findBestOptionFromValue=__name(option3=>{let optionKey=option3.attributeName(),optionValue=this.getOptionValue(optionKey),negativeOption=this.options.find(target=>target.negate&&optionKey===target.attributeName()),positiveOption=this.options.find(target=>!target.negate&&optionKey===target.attributeName());return negativeOption&&(negativeOption.presetArg===void 0&&optionValue===!1||negativeOption.presetArg!==void 0&&optionValue===negativeOption.presetArg)?negativeOption:positiveOption||option3},"findBestOptionFromValue"),getErrorMessage=__name(option3=>{let bestOption=findBestOptionFromValue(option3),optionKey=bestOption.attributeName();return this.getOptionValueSource(optionKey)==="env"?`environment variable '${bestOption.envVar}'`:`option '${bestOption.flags}'`},"getErrorMessage"),message=`error: ${getErrorMessage(option2)} cannot be used with ${getErrorMessage(conflictingOption)}`;this.error(message,{code:"commander.conflictingOption"})}unknownOption(flag2){if(this._allowUnknownOption)return;let suggestion="";if(flag2.startsWith("--")&&this._showSuggestionAfterError){let candidateFlags=[],command=this;do{let moreFlags=command.createHelp().visibleOptions(command).filter(option2=>option2.long).map(option2=>option2.long);candidateFlags=candidateFlags.concat(moreFlags),command=command.parent}while(command&&!command._enablePositionalOptions);suggestion=suggestSimilar(flag2,candidateFlags)}let message=`error: unknown option '${flag2}'${suggestion}`;this.error(message,{code:"commander.unknownOption"})}_excessArguments(receivedArgs){if(this._allowExcessArguments)return;let expected=this.registeredArguments.length,s=expected===1?"":"s",message=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${expected} argument${s} but got ${receivedArgs.length}.`;this.error(message,{code:"commander.excessArguments"})}unknownCommand(){let unknownName=this.args[0],suggestion="";if(this._showSuggestionAfterError){let candidateNames=[];this.createHelp().visibleCommands(this).forEach(command=>{candidateNames.push(command.name()),command.alias()&&candidateNames.push(command.alias())}),suggestion=suggestSimilar(unknownName,candidateNames)}let message=`error: unknown command '${unknownName}'${suggestion}`;this.error(message,{code:"commander.unknownCommand"})}version(str,flags,description){if(str===void 0)return this._version;this._version=str,flags=flags||"-V, --version",description=description||"output the version number";let versionOption=this.createOption(flags,description);return this._versionOptionName=versionOption.attributeName(),this._registerOption(versionOption),this.on("option:"+versionOption.name(),()=>{this._outputConfiguration.writeOut(`${str}
40
- `),this._exit(0,"commander.version",str)}),this}description(str,argsDescription){return str===void 0&&argsDescription===void 0?this._description:(this._description=str,argsDescription&&(this._argsDescription=argsDescription),this)}summary(str){return str===void 0?this._summary:(this._summary=str,this)}alias(alias){if(alias===void 0)return this._aliases[0];let command=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(command=this.commands[this.commands.length-1]),alias===command._name)throw new Error("Command alias can't be the same as its name");let matchingCommand=this.parent?._findCommand(alias);if(matchingCommand){let existingCmd=[matchingCommand.name()].concat(matchingCommand.aliases()).join("|");throw new Error(`cannot add alias '${alias}' to command '${this.name()}' as already have command '${existingCmd}'`)}return command._aliases.push(alias),this}aliases(aliases){return aliases===void 0?this._aliases:(aliases.forEach(alias=>this.alias(alias)),this)}usage(str){if(str===void 0){if(this._usage)return this._usage;let args=this.registeredArguments.map(arg=>humanReadableArgName(arg));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?args:[]).join(" ")}return this._usage=str,this}name(str){return str===void 0?this._name:(this._name=str,this)}nameFromFilename(filename){return this._name=path52.basename(filename,path52.extname(filename)),this}executableDir(path53){return path53===void 0?this._executableDir:(this._executableDir=path53,this)}helpInformation(contextOptions){let helper=this.createHelp(),context=this._getOutputContext(contextOptions);helper.prepareContext({error:context.error,helpWidth:context.helpWidth,outputHasColors:context.hasColors});let text=helper.formatHelp(this,helper);return context.hasColors?text:this._outputConfiguration.stripColor(text)}_getOutputContext(contextOptions){contextOptions=contextOptions||{};let error=!!contextOptions.error,baseWrite,hasColors,helpWidth;return error?(baseWrite=__name(str=>this._outputConfiguration.writeErr(str),"baseWrite"),hasColors=this._outputConfiguration.getErrHasColors(),helpWidth=this._outputConfiguration.getErrHelpWidth()):(baseWrite=__name(str=>this._outputConfiguration.writeOut(str),"baseWrite"),hasColors=this._outputConfiguration.getOutHasColors(),helpWidth=this._outputConfiguration.getOutHelpWidth()),{error,write:__name(str=>(hasColors||(str=this._outputConfiguration.stripColor(str)),baseWrite(str)),"write"),hasColors,helpWidth}}outputHelp(contextOptions){let deprecatedCallback;typeof contextOptions=="function"&&(deprecatedCallback=contextOptions,contextOptions=void 0);let outputContext=this._getOutputContext(contextOptions),eventContext={error:outputContext.error,write:outputContext.write,command:this};this._getCommandAndAncestors().reverse().forEach(command=>command.emit("beforeAllHelp",eventContext)),this.emit("beforeHelp",eventContext);let helpInformation=this.helpInformation({error:outputContext.error});if(deprecatedCallback&&(helpInformation=deprecatedCallback(helpInformation),typeof helpInformation!="string"&&!Buffer.isBuffer(helpInformation)))throw new Error("outputHelp callback must return a string or a Buffer");outputContext.write(helpInformation),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",eventContext),this._getCommandAndAncestors().forEach(command=>command.emit("afterAllHelp",eventContext))}helpOption(flags,description){return typeof flags=="boolean"?(flags?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(flags=flags??"-h, --help",description=description??"display help for command",this._helpOption=this.createOption(flags,description),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(option2){return this._helpOption=option2,this}help(contextOptions){this.outputHelp(contextOptions);let exitCode=Number(process8.exitCode??0);exitCode===0&&contextOptions&&typeof contextOptions!="function"&&contextOptions.error&&(exitCode=1),this._exit(exitCode,"commander.help","(outputHelp)")}addHelpText(position,text){let allowedValues=["beforeAll","before","after","afterAll"];if(!allowedValues.includes(position))throw new Error(`Unexpected value for position to addHelpText.
39
+ `),this.outputHelp({error:!0}));let config=errorOptions||{},exitCode=config.exitCode||1,code2=config.code||"commander.error";this._exit(exitCode,code2,message)}_parseOptionsEnv(){this.options.forEach(option=>{if(option.envVar&&option.envVar in process8.env){let optionKey=option.attributeName();(this.getOptionValue(optionKey)===void 0||["default","config","env"].includes(this.getOptionValueSource(optionKey)))&&(option.required||option.optional?this.emit(`optionEnv:${option.name()}`,process8.env[option.envVar]):this.emit(`optionEnv:${option.name()}`))}})}_parseOptionsImplied(){let dualHelper=new DualOptions(this.options),hasCustomOptionValue=__name(optionKey=>this.getOptionValue(optionKey)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(optionKey)),"hasCustomOptionValue");this.options.filter(option=>option.implied!==void 0&&hasCustomOptionValue(option.attributeName())&&dualHelper.valueFromOption(this.getOptionValue(option.attributeName()),option)).forEach(option=>{Object.keys(option.implied).filter(impliedKey=>!hasCustomOptionValue(impliedKey)).forEach(impliedKey=>{this.setOptionValueWithSource(impliedKey,option.implied[impliedKey],"implied")})})}missingArgument(name){let message=`error: missing required argument '${name}'`;this.error(message,{code:"commander.missingArgument"})}optionMissingArgument(option){let message=`error: option '${option.flags}' argument missing`;this.error(message,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(option){let message=`error: required option '${option.flags}' not specified`;this.error(message,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(option,conflictingOption){let findBestOptionFromValue=__name(option2=>{let optionKey=option2.attributeName(),optionValue=this.getOptionValue(optionKey),negativeOption=this.options.find(target=>target.negate&&optionKey===target.attributeName()),positiveOption=this.options.find(target=>!target.negate&&optionKey===target.attributeName());return negativeOption&&(negativeOption.presetArg===void 0&&optionValue===!1||negativeOption.presetArg!==void 0&&optionValue===negativeOption.presetArg)?negativeOption:positiveOption||option2},"findBestOptionFromValue"),getErrorMessage=__name(option2=>{let bestOption=findBestOptionFromValue(option2),optionKey=bestOption.attributeName();return this.getOptionValueSource(optionKey)==="env"?`environment variable '${bestOption.envVar}'`:`option '${bestOption.flags}'`},"getErrorMessage"),message=`error: ${getErrorMessage(option)} cannot be used with ${getErrorMessage(conflictingOption)}`;this.error(message,{code:"commander.conflictingOption"})}unknownOption(flag2){if(this._allowUnknownOption)return;let suggestion="";if(flag2.startsWith("--")&&this._showSuggestionAfterError){let candidateFlags=[],command=this;do{let moreFlags=command.createHelp().visibleOptions(command).filter(option=>option.long).map(option=>option.long);candidateFlags=candidateFlags.concat(moreFlags),command=command.parent}while(command&&!command._enablePositionalOptions);suggestion=suggestSimilar(flag2,candidateFlags)}let message=`error: unknown option '${flag2}'${suggestion}`;this.error(message,{code:"commander.unknownOption"})}_excessArguments(receivedArgs){if(this._allowExcessArguments)return;let expected=this.registeredArguments.length,s=expected===1?"":"s",message=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${expected} argument${s} but got ${receivedArgs.length}.`;this.error(message,{code:"commander.excessArguments"})}unknownCommand(){let unknownName=this.args[0],suggestion="";if(this._showSuggestionAfterError){let candidateNames=[];this.createHelp().visibleCommands(this).forEach(command=>{candidateNames.push(command.name()),command.alias()&&candidateNames.push(command.alias())}),suggestion=suggestSimilar(unknownName,candidateNames)}let message=`error: unknown command '${unknownName}'${suggestion}`;this.error(message,{code:"commander.unknownCommand"})}version(str,flags,description){if(str===void 0)return this._version;this._version=str,flags=flags||"-V, --version",description=description||"output the version number";let versionOption=this.createOption(flags,description);return this._versionOptionName=versionOption.attributeName(),this._registerOption(versionOption),this.on("option:"+versionOption.name(),()=>{this._outputConfiguration.writeOut(`${str}
40
+ `),this._exit(0,"commander.version",str)}),this}description(str,argsDescription){return str===void 0&&argsDescription===void 0?this._description:(this._description=str,argsDescription&&(this._argsDescription=argsDescription),this)}summary(str){return str===void 0?this._summary:(this._summary=str,this)}alias(alias){if(alias===void 0)return this._aliases[0];let command=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(command=this.commands[this.commands.length-1]),alias===command._name)throw new Error("Command alias can't be the same as its name");let matchingCommand=this.parent?._findCommand(alias);if(matchingCommand){let existingCmd=[matchingCommand.name()].concat(matchingCommand.aliases()).join("|");throw new Error(`cannot add alias '${alias}' to command '${this.name()}' as already have command '${existingCmd}'`)}return command._aliases.push(alias),this}aliases(aliases){return aliases===void 0?this._aliases:(aliases.forEach(alias=>this.alias(alias)),this)}usage(str){if(str===void 0){if(this._usage)return this._usage;let args=this.registeredArguments.map(arg=>humanReadableArgName(arg));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?args:[]).join(" ")}return this._usage=str,this}name(str){return str===void 0?this._name:(this._name=str,this)}nameFromFilename(filename){return this._name=path52.basename(filename,path52.extname(filename)),this}executableDir(path53){return path53===void 0?this._executableDir:(this._executableDir=path53,this)}helpInformation(contextOptions){let helper=this.createHelp(),context=this._getOutputContext(contextOptions);helper.prepareContext({error:context.error,helpWidth:context.helpWidth,outputHasColors:context.hasColors});let text=helper.formatHelp(this,helper);return context.hasColors?text:this._outputConfiguration.stripColor(text)}_getOutputContext(contextOptions){contextOptions=contextOptions||{};let error=!!contextOptions.error,baseWrite,hasColors,helpWidth;return error?(baseWrite=__name(str=>this._outputConfiguration.writeErr(str),"baseWrite"),hasColors=this._outputConfiguration.getErrHasColors(),helpWidth=this._outputConfiguration.getErrHelpWidth()):(baseWrite=__name(str=>this._outputConfiguration.writeOut(str),"baseWrite"),hasColors=this._outputConfiguration.getOutHasColors(),helpWidth=this._outputConfiguration.getOutHelpWidth()),{error,write:__name(str=>(hasColors||(str=this._outputConfiguration.stripColor(str)),baseWrite(str)),"write"),hasColors,helpWidth}}outputHelp(contextOptions){let deprecatedCallback;typeof contextOptions=="function"&&(deprecatedCallback=contextOptions,contextOptions=void 0);let outputContext=this._getOutputContext(contextOptions),eventContext={error:outputContext.error,write:outputContext.write,command:this};this._getCommandAndAncestors().reverse().forEach(command=>command.emit("beforeAllHelp",eventContext)),this.emit("beforeHelp",eventContext);let helpInformation=this.helpInformation({error:outputContext.error});if(deprecatedCallback&&(helpInformation=deprecatedCallback(helpInformation),typeof helpInformation!="string"&&!Buffer.isBuffer(helpInformation)))throw new Error("outputHelp callback must return a string or a Buffer");outputContext.write(helpInformation),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",eventContext),this._getCommandAndAncestors().forEach(command=>command.emit("afterAllHelp",eventContext))}helpOption(flags,description){return typeof flags=="boolean"?(flags?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(flags=flags??"-h, --help",description=description??"display help for command",this._helpOption=this.createOption(flags,description),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(option){return this._helpOption=option,this}help(contextOptions){this.outputHelp(contextOptions);let exitCode=Number(process8.exitCode??0);exitCode===0&&contextOptions&&typeof contextOptions!="function"&&contextOptions.error&&(exitCode=1),this._exit(exitCode,"commander.help","(outputHelp)")}addHelpText(position,text){let allowedValues=["beforeAll","before","after","afterAll"];if(!allowedValues.includes(position))throw new Error(`Unexpected value for position to addHelpText.
41
41
  Expecting one of '${allowedValues.join("', '")}'`);let helpEvent=`${position}Help`;return this.on(helpEvent,context=>{let helpStr;typeof text=="function"?helpStr=text({error:context.error,command:context.command}):helpStr=text,helpStr&&context.write(`${helpStr}
42
42
  `)}),this}_outputHelpIfRequested(args){let helpOption=this._getHelpOption();helpOption&&args.find(arg=>helpOption.is(arg))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function incrementNodeInspectorPort(args){return args.map(arg=>{if(!arg.startsWith("--inspect"))return arg;let debugOption,debugHost="127.0.0.1",debugPort="9229",match;return(match=arg.match(/^(--inspect(-brk)?)$/))!==null?debugOption=match[1]:(match=arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(debugOption=match[1],/^\d+$/.test(match[3])?debugPort=match[3]:debugHost=match[3]):(match=arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(debugOption=match[1],debugHost=match[3],debugPort=match[4]),debugOption&&debugPort!=="0"?`${debugOption}=${debugHost}:${parseInt(debugPort)+1}`:arg})}__name(incrementNodeInspectorPort,"incrementNodeInspectorPort");function useColor(){if(process8.env.NO_COLOR||process8.env.FORCE_COLOR==="0"||process8.env.FORCE_COLOR==="false")return!1;if(process8.env.FORCE_COLOR||process8.env.CLICOLOR_FORCE!==void 0)return!0}__name(useColor,"useColor");exports2.Command=Command2;exports2.useColor=useColor}});var require_commander=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/index.js"(exports2){var{Argument:Argument2}=require_argument(),{Command:Command2}=require_command(),{CommanderError:CommanderError2,InvalidArgumentError:InvalidArgumentError2}=require_error(),{Help:Help2}=require_help(),{Option:Option2}=require_option();exports2.program=new Command2;exports2.createCommand=name=>new Command2(name);exports2.createOption=(flags,description)=>new Option2(flags,description);exports2.createArgument=(name,description)=>new Argument2(name,description);exports2.Command=Command2;exports2.Option=Option2;exports2.Argument=Argument2;exports2.Help=Help2;exports2.CommanderError=CommanderError2;exports2.InvalidArgumentError=InvalidArgumentError2;exports2.InvalidOptionArgumentError=InvalidArgumentError2}});var require_identity=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/nodes/identity.js"(exports2){"use strict";var ALIAS=Symbol.for("yaml.alias"),DOC=Symbol.for("yaml.document"),MAP=Symbol.for("yaml.map"),PAIR=Symbol.for("yaml.pair"),SCALAR=Symbol.for("yaml.scalar"),SEQ=Symbol.for("yaml.seq"),NODE_TYPE=Symbol.for("yaml.node.type"),isAlias=__name(node=>!!node&&typeof node=="object"&&node[NODE_TYPE]===ALIAS,"isAlias"),isDocument=__name(node=>!!node&&typeof node=="object"&&node[NODE_TYPE]===DOC,"isDocument"),isMap=__name(node=>!!node&&typeof node=="object"&&node[NODE_TYPE]===MAP,"isMap"),isPair=__name(node=>!!node&&typeof node=="object"&&node[NODE_TYPE]===PAIR,"isPair"),isScalar=__name(node=>!!node&&typeof node=="object"&&node[NODE_TYPE]===SCALAR,"isScalar"),isSeq=__name(node=>!!node&&typeof node=="object"&&node[NODE_TYPE]===SEQ,"isSeq");function isCollection(node){if(node&&typeof node=="object")switch(node[NODE_TYPE]){case MAP:case SEQ:return!0}return!1}__name(isCollection,"isCollection");function isNode(node){if(node&&typeof node=="object")switch(node[NODE_TYPE]){case ALIAS:case MAP:case SCALAR:case SEQ:return!0}return!1}__name(isNode,"isNode");var hasAnchor=__name(node=>(isScalar(node)||isCollection(node))&&!!node.anchor,"hasAnchor");exports2.ALIAS=ALIAS;exports2.DOC=DOC;exports2.MAP=MAP;exports2.NODE_TYPE=NODE_TYPE;exports2.PAIR=PAIR;exports2.SCALAR=SCALAR;exports2.SEQ=SEQ;exports2.hasAnchor=hasAnchor;exports2.isAlias=isAlias;exports2.isCollection=isCollection;exports2.isDocument=isDocument;exports2.isMap=isMap;exports2.isNode=isNode;exports2.isPair=isPair;exports2.isScalar=isScalar;exports2.isSeq=isSeq}});var require_visit=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/visit.js"(exports2){"use strict";var identity2=require_identity(),BREAK=Symbol("break visit"),SKIP=Symbol("skip children"),REMOVE=Symbol("remove node");function visit2(node,visitor){let visitor_=initVisitor(visitor);identity2.isDocument(node)?visit_(null,node.contents,visitor_,Object.freeze([node]))===REMOVE&&(node.contents=null):visit_(null,node,visitor_,Object.freeze([]))}__name(visit2,"visit");visit2.BREAK=BREAK;visit2.SKIP=SKIP;visit2.REMOVE=REMOVE;function visit_(key,node,visitor,path52){let ctrl=callVisitor(key,node,visitor,path52);if(identity2.isNode(ctrl)||identity2.isPair(ctrl))return replaceNode(key,path52,ctrl),visit_(key,ctrl,visitor,path52);if(typeof ctrl!="symbol"){if(identity2.isCollection(node)){path52=Object.freeze(path52.concat(node));for(let i=0;i<node.items.length;++i){let ci=visit_(i,node.items[i],visitor,path52);if(typeof ci=="number")i=ci-1;else{if(ci===BREAK)return BREAK;ci===REMOVE&&(node.items.splice(i,1),i-=1)}}}else if(identity2.isPair(node)){path52=Object.freeze(path52.concat(node));let ck=visit_("key",node.key,visitor,path52);if(ck===BREAK)return BREAK;ck===REMOVE&&(node.key=null);let cv=visit_("value",node.value,visitor,path52);if(cv===BREAK)return BREAK;cv===REMOVE&&(node.value=null)}}return ctrl}__name(visit_,"visit_");async function visitAsync(node,visitor){let visitor_=initVisitor(visitor);identity2.isDocument(node)?await visitAsync_(null,node.contents,visitor_,Object.freeze([node]))===REMOVE&&(node.contents=null):await visitAsync_(null,node,visitor_,Object.freeze([]))}__name(visitAsync,"visitAsync");visitAsync.BREAK=BREAK;visitAsync.SKIP=SKIP;visitAsync.REMOVE=REMOVE;async function visitAsync_(key,node,visitor,path52){let ctrl=await callVisitor(key,node,visitor,path52);if(identity2.isNode(ctrl)||identity2.isPair(ctrl))return replaceNode(key,path52,ctrl),visitAsync_(key,ctrl,visitor,path52);if(typeof ctrl!="symbol"){if(identity2.isCollection(node)){path52=Object.freeze(path52.concat(node));for(let i=0;i<node.items.length;++i){let ci=await visitAsync_(i,node.items[i],visitor,path52);if(typeof ci=="number")i=ci-1;else{if(ci===BREAK)return BREAK;ci===REMOVE&&(node.items.splice(i,1),i-=1)}}}else if(identity2.isPair(node)){path52=Object.freeze(path52.concat(node));let ck=await visitAsync_("key",node.key,visitor,path52);if(ck===BREAK)return BREAK;ck===REMOVE&&(node.key=null);let cv=await visitAsync_("value",node.value,visitor,path52);if(cv===BREAK)return BREAK;cv===REMOVE&&(node.value=null)}}return ctrl}__name(visitAsync_,"visitAsync_");function initVisitor(visitor){return typeof visitor=="object"&&(visitor.Collection||visitor.Node||visitor.Value)?Object.assign({Alias:visitor.Node,Map:visitor.Node,Scalar:visitor.Node,Seq:visitor.Node},visitor.Value&&{Map:visitor.Value,Scalar:visitor.Value,Seq:visitor.Value},visitor.Collection&&{Map:visitor.Collection,Seq:visitor.Collection},visitor):visitor}__name(initVisitor,"initVisitor");function callVisitor(key,node,visitor,path52){if(typeof visitor=="function")return visitor(key,node,path52);if(identity2.isMap(node))return visitor.Map?.(key,node,path52);if(identity2.isSeq(node))return visitor.Seq?.(key,node,path52);if(identity2.isPair(node))return visitor.Pair?.(key,node,path52);if(identity2.isScalar(node))return visitor.Scalar?.(key,node,path52);if(identity2.isAlias(node))return visitor.Alias?.(key,node,path52)}__name(callVisitor,"callVisitor");function replaceNode(key,path52,node){let parent=path52[path52.length-1];if(identity2.isCollection(parent))parent.items[key]=node;else if(identity2.isPair(parent))key==="key"?parent.key=node:parent.value=node;else if(identity2.isDocument(parent))parent.contents=node;else{let pt2=identity2.isAlias(parent)?"alias":"scalar";throw new Error(`Cannot replace node with ${pt2} parent`)}}__name(replaceNode,"replaceNode");exports2.visit=visit2;exports2.visitAsync=visitAsync}});var require_directives=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/doc/directives.js"(exports2){"use strict";var identity2=require_identity(),visit2=require_visit(),escapeChars={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},escapeTagName=__name(tn=>tn.replace(/[!,[\]{}]/g,ch=>escapeChars[ch]),"escapeTagName"),Directives=class _Directives{static{__name(this,"Directives")}constructor(yaml,tags){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},_Directives.defaultYaml,yaml),this.tags=Object.assign({},_Directives.defaultTags,tags)}clone(){let copy=new _Directives(this.yaml,this.tags);return copy.docStart=this.docStart,copy}atDocument(){let res=new _Directives(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:_Directives.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},_Directives.defaultTags);break}return res}add(line,onError){this.atNextDocument&&(this.yaml={explicit:_Directives.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},_Directives.defaultTags),this.atNextDocument=!1);let parts=line.trim().split(/[ \t]+/),name=parts.shift();switch(name){case"%TAG":{if(parts.length!==2&&(onError(0,"%TAG directive should contain exactly two parts"),parts.length<2))return!1;let[handle,prefix]=parts;return this.tags[handle]=prefix,!0}case"%YAML":{if(this.yaml.explicit=!0,parts.length!==1)return onError(0,"%YAML directive should contain exactly one part"),!1;let[version]=parts;if(version==="1.1"||version==="1.2")return this.yaml.version=version,!0;{let isValid=/^\d+\.\d+$/.test(version);return onError(6,`Unsupported YAML version ${version}`,isValid),!1}}default:return onError(0,`Unknown directive ${name}`,!0),!1}}tagName(source,onError){if(source==="!")return"!";if(source[0]!=="!")return onError(`Not a valid tag: ${source}`),null;if(source[1]==="<"){let verbatim=source.slice(2,-1);return verbatim==="!"||verbatim==="!!"?(onError(`Verbatim tags aren't resolved, so ${source} is invalid.`),null):(source[source.length-1]!==">"&&onError("Verbatim tags must end with a >"),verbatim)}let[,handle,suffix]=source.match(/^(.*!)([^!]*)$/s);suffix||onError(`The ${source} tag has no suffix`);let prefix=this.tags[handle];if(prefix)try{return prefix+decodeURIComponent(suffix)}catch(error){return onError(String(error)),null}return handle==="!"?source:(onError(`Could not resolve tag: ${source}`),null)}tagString(tag){for(let[handle,prefix]of Object.entries(this.tags))if(tag.startsWith(prefix))return handle+escapeTagName(tag.substring(prefix.length));return tag[0]==="!"?tag:`!<${tag}>`}toString(doc){let lines=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],tagEntries=Object.entries(this.tags),tagNames;if(doc&&tagEntries.length>0&&identity2.isNode(doc.contents)){let tags={};visit2.visit(doc.contents,(_key,node)=>{identity2.isNode(node)&&node.tag&&(tags[node.tag]=!0)}),tagNames=Object.keys(tags)}else tagNames=[];for(let[handle,prefix]of tagEntries)handle==="!!"&&prefix==="tag:yaml.org,2002:"||(!doc||tagNames.some(tn=>tn.startsWith(prefix)))&&lines.push(`%TAG ${handle} ${prefix}`);return lines.join(`
43
43
  `)}};Directives.defaultYaml={explicit:!1,version:"1.2"};Directives.defaultTags={"!!":"tag:yaml.org,2002:"};exports2.Directives=Directives}});var require_anchors=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/doc/anchors.js"(exports2){"use strict";var identity2=require_identity(),visit2=require_visit();function anchorIsValid(anchor){if(/[\x00-\x19\s,[\]{}]/.test(anchor)){let msg=`Anchor must not contain whitespace or control characters: ${JSON.stringify(anchor)}`;throw new Error(msg)}return!0}__name(anchorIsValid,"anchorIsValid");function anchorNames(root){let anchors=new Set;return visit2.visit(root,{Value(_key,node){node.anchor&&anchors.add(node.anchor)}}),anchors}__name(anchorNames,"anchorNames");function findNewAnchor(prefix,exclude){for(let i=1;;++i){let name=`${prefix}${i}`;if(!exclude.has(name))return name}}__name(findNewAnchor,"findNewAnchor");function createNodeAnchors(doc,prefix){let aliasObjects=[],sourceObjects=new Map,prevAnchors=null;return{onAnchor:__name(source=>{aliasObjects.push(source),prevAnchors??(prevAnchors=anchorNames(doc));let anchor=findNewAnchor(prefix,prevAnchors);return prevAnchors.add(anchor),anchor},"onAnchor"),setAnchors:__name(()=>{for(let source of aliasObjects){let ref=sourceObjects.get(source);if(typeof ref=="object"&&ref.anchor&&(identity2.isScalar(ref.node)||identity2.isCollection(ref.node)))ref.node.anchor=ref.anchor;else{let error=new Error("Failed to resolve repeated object (this should not happen)");throw error.source=source,error}}},"setAnchors"),sourceObjects}}__name(createNodeAnchors,"createNodeAnchors");exports2.anchorIsValid=anchorIsValid;exports2.anchorNames=anchorNames;exports2.createNodeAnchors=createNodeAnchors;exports2.findNewAnchor=findNewAnchor}});var require_applyReviver=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/doc/applyReviver.js"(exports2){"use strict";function applyReviver(reviver,obj,key,val){if(val&&typeof val=="object")if(Array.isArray(val))for(let i=0,len=val.length;i<len;++i){let v0=val[i],v1=applyReviver(reviver,val,String(i),v0);v1===void 0?delete val[i]:v1!==v0&&(val[i]=v1)}else if(val instanceof Map)for(let k of Array.from(val.keys())){let v0=val.get(k),v1=applyReviver(reviver,val,k,v0);v1===void 0?val.delete(k):v1!==v0&&val.set(k,v1)}else if(val instanceof Set)for(let v0 of Array.from(val)){let v1=applyReviver(reviver,val,v0,v0);v1===void 0?val.delete(v0):v1!==v0&&(val.delete(v0),val.add(v1))}else for(let[k,v0]of Object.entries(val)){let v1=applyReviver(reviver,val,k,v0);v1===void 0?delete val[k]:v1!==v0&&(val[k]=v1)}return reviver.call(obj,key,val)}__name(applyReviver,"applyReviver");exports2.applyReviver=applyReviver}});var require_toJS=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/nodes/toJS.js"(exports2){"use strict";var identity2=require_identity();function toJS(value,arg,ctx){if(Array.isArray(value))return value.map((v,i)=>toJS(v,String(i),ctx));if(value&&typeof value.toJSON=="function"){if(!ctx||!identity2.hasAnchor(value))return value.toJSON(arg,ctx);let data={aliasCount:0,count:1,res:void 0};ctx.anchors.set(value,data),ctx.onCreate=res2=>{data.res=res2,delete ctx.onCreate};let res=value.toJSON(arg,ctx);return ctx.onCreate&&ctx.onCreate(res),res}return typeof value=="bigint"&&!ctx?.keep?Number(value):value}__name(toJS,"toJS");exports2.toJS=toJS}});var require_Node=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/nodes/Node.js"(exports2){"use strict";var applyReviver=require_applyReviver(),identity2=require_identity(),toJS=require_toJS(),NodeBase=class{static{__name(this,"NodeBase")}constructor(type){Object.defineProperty(this,identity2.NODE_TYPE,{value:type})}clone(){let copy=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(copy.range=this.range.slice()),copy}toJS(doc,{mapAsMap,maxAliasCount,onAnchor,reviver}={}){if(!identity2.isDocument(doc))throw new TypeError("A document argument is required");let ctx={anchors:new Map,doc,keep:!0,mapAsMap:mapAsMap===!0,mapKeyWarned:!1,maxAliasCount:typeof maxAliasCount=="number"?maxAliasCount:100},res=toJS.toJS(this,"",ctx);if(typeof onAnchor=="function")for(let{count,res:res2}of ctx.anchors.values())onAnchor(res2,count);return typeof reviver=="function"?applyReviver.applyReviver(reviver,{"":res},"",res):res}};exports2.NodeBase=NodeBase}});var require_Alias=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/nodes/Alias.js"(exports2){"use strict";var anchors=require_anchors(),visit2=require_visit(),identity2=require_identity(),Node=require_Node(),toJS=require_toJS(),Alias=class extends Node.NodeBase{static{__name(this,"Alias")}constructor(source){super(identity2.ALIAS),this.source=source,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(doc,ctx){let nodes;ctx?.aliasResolveCache?nodes=ctx.aliasResolveCache:(nodes=[],visit2.visit(doc,{Node:__name((_key,node)=>{(identity2.isAlias(node)||identity2.hasAnchor(node))&&nodes.push(node)},"Node")}),ctx&&(ctx.aliasResolveCache=nodes));let found;for(let node of nodes){if(node===this)break;node.anchor===this.source&&(found=node)}return found}toJSON(_arg,ctx){if(!ctx)return{source:this.source};let{anchors:anchors2,doc,maxAliasCount}=ctx,source=this.resolve(doc,ctx);if(!source){let msg=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(msg)}let data=anchors2.get(source);if(data||(toJS.toJS(source,null,ctx),data=anchors2.get(source)),data?.res===void 0){let msg="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(msg)}if(maxAliasCount>=0&&(data.count+=1,data.aliasCount===0&&(data.aliasCount=getAliasCount(doc,source,anchors2)),data.count*data.aliasCount>maxAliasCount)){let msg="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(msg)}return data.res}toString(ctx,_onComment,_onChompKeep){let src=`*${this.source}`;if(ctx){if(anchors.anchorIsValid(this.source),ctx.options.verifyAliasOrder&&!ctx.anchors.has(this.source)){let msg=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(msg)}if(ctx.implicitKey)return`${src} `}return src}};function getAliasCount(doc,node,anchors2){if(identity2.isAlias(node)){let source=node.resolve(doc),anchor=anchors2&&source&&anchors2.get(source);return anchor?anchor.count*anchor.aliasCount:0}else if(identity2.isCollection(node)){let count=0;for(let item of node.items){let c2=getAliasCount(doc,item,anchors2);c2>count&&(count=c2)}return count}else if(identity2.isPair(node)){let kc=getAliasCount(doc,node.key,anchors2),vc=getAliasCount(doc,node.value,anchors2);return Math.max(kc,vc)}return 1}__name(getAliasCount,"getAliasCount");exports2.Alias=Alias}});var require_Scalar=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/nodes/Scalar.js"(exports2){"use strict";var identity2=require_identity(),Node=require_Node(),toJS=require_toJS(),isScalarValue=__name(value=>!value||typeof value!="function"&&typeof value!="object","isScalarValue"),Scalar=class extends Node.NodeBase{static{__name(this,"Scalar")}constructor(value){super(identity2.SCALAR),this.value=value}toJSON(arg,ctx){return ctx?.keep?this.value:toJS.toJS(this.value,arg,ctx)}toString(){return String(this.value)}};Scalar.BLOCK_FOLDED="BLOCK_FOLDED";Scalar.BLOCK_LITERAL="BLOCK_LITERAL";Scalar.PLAIN="PLAIN";Scalar.QUOTE_DOUBLE="QUOTE_DOUBLE";Scalar.QUOTE_SINGLE="QUOTE_SINGLE";exports2.Scalar=Scalar;exports2.isScalarValue=isScalarValue}});var require_createNode=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/doc/createNode.js"(exports2){"use strict";var Alias=require_Alias(),identity2=require_identity(),Scalar=require_Scalar(),defaultTagPrefix="tag:yaml.org,2002:";function findTagObject(value,tagName,tags){if(tagName){let match=tags.filter(t2=>t2.tag===tagName),tagObj=match.find(t2=>!t2.format)??match[0];if(!tagObj)throw new Error(`Tag ${tagName} not found`);return tagObj}return tags.find(t2=>t2.identify?.(value)&&!t2.format)}__name(findTagObject,"findTagObject");function createNode(value,tagName,ctx){if(identity2.isDocument(value)&&(value=value.contents),identity2.isNode(value))return value;if(identity2.isPair(value)){let map=ctx.schema[identity2.MAP].createNode?.(ctx.schema,null,ctx);return map.items.push(value),map}(value instanceof String||value instanceof Number||value instanceof Boolean||typeof BigInt<"u"&&value instanceof BigInt)&&(value=value.valueOf());let{aliasDuplicateObjects,onAnchor,onTagObj,schema,sourceObjects}=ctx,ref;if(aliasDuplicateObjects&&value&&typeof value=="object"){if(ref=sourceObjects.get(value),ref)return ref.anchor??(ref.anchor=onAnchor(value)),new Alias.Alias(ref.anchor);ref={anchor:null,node:null},sourceObjects.set(value,ref)}tagName?.startsWith("!!")&&(tagName=defaultTagPrefix+tagName.slice(2));let tagObj=findTagObject(value,tagName,schema.tags);if(!tagObj){if(value&&typeof value.toJSON=="function"&&(value=value.toJSON()),!value||typeof value!="object"){let node2=new Scalar.Scalar(value);return ref&&(ref.node=node2),node2}tagObj=value instanceof Map?schema[identity2.MAP]:Symbol.iterator in Object(value)?schema[identity2.SEQ]:schema[identity2.MAP]}onTagObj&&(onTagObj(tagObj),delete ctx.onTagObj);let node=tagObj?.createNode?tagObj.createNode(ctx.schema,value,ctx):typeof tagObj?.nodeClass?.from=="function"?tagObj.nodeClass.from(ctx.schema,value,ctx):new Scalar.Scalar(value);return tagName?node.tag=tagName:tagObj.default||(node.tag=tagObj.tag),ref&&(ref.node=node),node}__name(createNode,"createNode");exports2.createNode=createNode}});var require_Collection=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/nodes/Collection.js"(exports2){"use strict";var createNode=require_createNode(),identity2=require_identity(),Node=require_Node();function collectionFromPath(schema,path52,value){let v=value;for(let i=path52.length-1;i>=0;--i){let k=path52[i];if(typeof k=="number"&&Number.isInteger(k)&&k>=0){let a=[];a[k]=v,v=a}else v=new Map([[k,v]])}return createNode.createNode(v,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:__name(()=>{throw new Error("This should not happen, please report a bug.")},"onAnchor"),schema,sourceObjects:new Map})}__name(collectionFromPath,"collectionFromPath");var isEmptyPath=__name(path52=>path52==null||typeof path52=="object"&&!!path52[Symbol.iterator]().next().done,"isEmptyPath"),Collection=class extends Node.NodeBase{static{__name(this,"Collection")}constructor(type,schema){super(type),Object.defineProperty(this,"schema",{value:schema,configurable:!0,enumerable:!1,writable:!0})}clone(schema){let copy=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return schema&&(copy.schema=schema),copy.items=copy.items.map(it2=>identity2.isNode(it2)||identity2.isPair(it2)?it2.clone(schema):it2),this.range&&(copy.range=this.range.slice()),copy}addIn(path52,value){if(isEmptyPath(path52))this.add(value);else{let[key,...rest]=path52,node=this.get(key,!0);if(identity2.isCollection(node))node.addIn(rest,value);else if(node===void 0&&this.schema)this.set(key,collectionFromPath(this.schema,rest,value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`)}}deleteIn(path52){let[key,...rest]=path52;if(rest.length===0)return this.delete(key);let node=this.get(key,!0);if(identity2.isCollection(node))return node.deleteIn(rest);throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`)}getIn(path52,keepScalar){let[key,...rest]=path52,node=this.get(key,!0);return rest.length===0?!keepScalar&&identity2.isScalar(node)?node.value:node:identity2.isCollection(node)?node.getIn(rest,keepScalar):void 0}hasAllNullValues(allowScalar){return this.items.every(node=>{if(!identity2.isPair(node))return!1;let n=node.value;return n==null||allowScalar&&identity2.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(path52){let[key,...rest]=path52;if(rest.length===0)return this.has(key);let node=this.get(key,!0);return identity2.isCollection(node)?node.hasIn(rest):!1}setIn(path52,value){let[key,...rest]=path52;if(rest.length===0)this.set(key,value);else{let node=this.get(key,!0);if(identity2.isCollection(node))node.setIn(rest,value);else if(node===void 0&&this.schema)this.set(key,collectionFromPath(this.schema,rest,value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`)}}};exports2.Collection=Collection;exports2.collectionFromPath=collectionFromPath;exports2.isEmptyPath=isEmptyPath}});var require_stringifyComment=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/stringify/stringifyComment.js"(exports2){"use strict";var stringifyComment=__name(str=>str.replace(/^(?!$)(?: $)?/gm,"#"),"stringifyComment");function indentComment(comment,indent){return/^\n+$/.test(comment)?comment.substring(1):indent?comment.replace(/^(?! *$)/gm,indent):comment}__name(indentComment,"indentComment");var lineComment=__name((str,indent,comment)=>str.endsWith(`
@@ -177,8 +177,7 @@ ${end.comment}`:end.comment}this.doc.range[2]=end.offset;break}default:this.erro
177
177
  `)+1;for(;nl!==0;)this.onNewLine(this.offset+nl),nl=this.source.indexOf(`
178
178
  `,nl)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(map){let it2=map.items[map.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,it2.value){let end="end"in it2.value?it2.value.end:void 0;(Array.isArray(end)?end[end.length-1]:void 0)?.type==="comment"?end?.push(this.sourceToken):map.items.push({start:[this.sourceToken]})}else it2.sep?it2.sep.push(this.sourceToken):it2.start.push(this.sourceToken);return;case"space":case"comment":if(it2.value)map.items.push({start:[this.sourceToken]});else if(it2.sep)it2.sep.push(this.sourceToken);else{if(this.atIndentedComment(it2.start,map.indent)){let end=map.items[map.items.length-2]?.value?.end;if(Array.isArray(end)){Array.prototype.push.apply(end,it2.start),end.push(this.sourceToken),map.items.pop();return}}it2.start.push(this.sourceToken)}return}if(this.indent>=map.indent){let atMapIndent=!this.onKeyLine&&this.indent===map.indent,atNextItem=atMapIndent&&(it2.sep||it2.explicitKey)&&this.type!=="seq-item-ind",start=[];if(atNextItem&&it2.sep&&!it2.value){let nl=[];for(let i=0;i<it2.sep.length;++i){let st2=it2.sep[i];switch(st2.type){case"newline":nl.push(i);break;case"space":break;case"comment":st2.indent>map.indent&&(nl.length=0);break;default:nl.length=0}}nl.length>=2&&(start=it2.sep.splice(nl[1]))}switch(this.type){case"anchor":case"tag":atNextItem||it2.value?(start.push(this.sourceToken),map.items.push({start}),this.onKeyLine=!0):it2.sep?it2.sep.push(this.sourceToken):it2.start.push(this.sourceToken);return;case"explicit-key-ind":!it2.sep&&!it2.explicitKey?(it2.start.push(this.sourceToken),it2.explicitKey=!0):atNextItem||it2.value?(start.push(this.sourceToken),map.items.push({start,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(it2.explicitKey)if(it2.sep)if(it2.value)map.items.push({start:[],key:null,sep:[this.sourceToken]});else if(includesToken(it2.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]});else if(isFlowToken(it2.key)&&!includesToken(it2.sep,"newline")){let start2=getFirstKeyStartProps(it2.start),key=it2.key,sep2=it2.sep;sep2.push(this.sourceToken),delete it2.key,delete it2.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:start2,key,sep:sep2}]})}else start.length>0?it2.sep=it2.sep.concat(start,this.sourceToken):it2.sep.push(this.sourceToken);else if(includesToken(it2.start,"newline"))Object.assign(it2,{key:null,sep:[this.sourceToken]});else{let start2=getFirstKeyStartProps(it2.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:start2,key:null,sep:[this.sourceToken]}]})}else it2.sep?it2.value||atNextItem?map.items.push({start,key:null,sep:[this.sourceToken]}):includesToken(it2.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):it2.sep.push(this.sourceToken):Object.assign(it2,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let fs50=this.flowScalar(this.type);atNextItem||it2.value?(map.items.push({start,key:fs50,sep:[]}),this.onKeyLine=!0):it2.sep?this.stack.push(fs50):(Object.assign(it2,{key:fs50,sep:[]}),this.onKeyLine=!0);return}default:{let bv=this.startBlockValue(map);if(bv){if(bv.type==="block-seq"){if(!it2.explicitKey&&it2.sep&&!includesToken(it2.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else atMapIndent&&map.items.push({start});this.stack.push(bv);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(seq){let it2=seq.items[seq.items.length-1];switch(this.type){case"newline":if(it2.value){let end="end"in it2.value?it2.value.end:void 0;(Array.isArray(end)?end[end.length-1]:void 0)?.type==="comment"?end?.push(this.sourceToken):seq.items.push({start:[this.sourceToken]})}else it2.start.push(this.sourceToken);return;case"space":case"comment":if(it2.value)seq.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(it2.start,seq.indent)){let end=seq.items[seq.items.length-2]?.value?.end;if(Array.isArray(end)){Array.prototype.push.apply(end,it2.start),end.push(this.sourceToken),seq.items.pop();return}}it2.start.push(this.sourceToken)}return;case"anchor":case"tag":if(it2.value||this.indent<=seq.indent)break;it2.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==seq.indent)break;it2.value||includesToken(it2.start,"seq-item-ind")?seq.items.push({start:[this.sourceToken]}):it2.start.push(this.sourceToken);return}if(this.indent>seq.indent){let bv=this.startBlockValue(seq);if(bv){this.stack.push(bv);return}}yield*this.pop(),yield*this.step()}*flowCollection(fc){let it2=fc.items[fc.items.length-1];if(this.type==="flow-error-end"){let top;do yield*this.pop(),top=this.peek(1);while(top?.type==="flow-collection")}else if(fc.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!it2||it2.sep?fc.items.push({start:[this.sourceToken]}):it2.start.push(this.sourceToken);return;case"map-value-ind":!it2||it2.value?fc.items.push({start:[],key:null,sep:[this.sourceToken]}):it2.sep?it2.sep.push(this.sourceToken):Object.assign(it2,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!it2||it2.value?fc.items.push({start:[this.sourceToken]}):it2.sep?it2.sep.push(this.sourceToken):it2.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let fs50=this.flowScalar(this.type);!it2||it2.value?fc.items.push({start:[],key:fs50,sep:[]}):it2.sep?this.stack.push(fs50):Object.assign(it2,{key:fs50,sep:[]});return}case"flow-map-end":case"flow-seq-end":fc.end.push(this.sourceToken);return}let bv=this.startBlockValue(fc);bv?this.stack.push(bv):(yield*this.pop(),yield*this.step())}else{let parent=this.peek(2);if(parent.type==="block-map"&&(this.type==="map-value-ind"&&parent.indent===fc.indent||this.type==="newline"&&!parent.items[parent.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&parent.type!=="flow-collection"){let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);fixFlowSeqItems(fc);let sep2=fc.end.splice(1,fc.end.length);sep2.push(this.sourceToken);let map={type:"block-map",offset:fc.offset,indent:fc.indent,items:[{start,key:fc,sep:sep2}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=map}else yield*this.lineEnd(fc)}}flowScalar(type){if(this.onNewLine){let nl=this.source.indexOf(`
179
179
  `)+1;for(;nl!==0;)this.onNewLine(this.offset+nl),nl=this.source.indexOf(`
180
- `,nl)+1}return{type,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(parent){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return start.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(start,indent){return this.type!=="comment"||this.indent<=indent?!1:start.every(st2=>st2.type==="newline"||st2.type==="space")}*documentEnd(docEnd){this.type!=="doc-mode"&&(docEnd.end?docEnd.end.push(this.sourceToken):docEnd.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(token){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:token.end?token.end.push(this.sourceToken):token.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};exports2.Parser=Parser}});var require_public_api=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/public-api.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),errors=require_errors(),log=require_log(),identity2=require_identity(),lineCounter=require_line_counter(),parser=require_parser();function parseOptions(options){let prettyErrors=options.prettyErrors!==!1;return{lineCounter:options.lineCounter||prettyErrors&&new lineCounter.LineCounter||null,prettyErrors}}__name(parseOptions,"parseOptions");function parseAllDocuments(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),docs=Array.from(composer$1.compose(parser$1.parse(source)));if(prettyErrors&&lineCounter2)for(let doc of docs)doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2));return docs.length>0?docs:Object.assign([],{empty:!0},composer$1.streamInfo())}__name(parseAllDocuments,"parseAllDocuments");function parseDocument(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),doc=null;for(let _doc of composer$1.compose(parser$1.parse(source),!0,source.length))if(!doc)doc=_doc;else if(doc.options.logLevel!=="silent"){doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return prettyErrors&&lineCounter2&&(doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2))),doc}__name(parseDocument,"parseDocument");function parse12(src,reviver,options){let _reviver;typeof reviver=="function"?_reviver=reviver:options===void 0&&reviver&&typeof reviver=="object"&&(options=reviver);let doc=parseDocument(src,options);if(!doc)return null;if(doc.warnings.forEach(warning=>log.warn(doc.options.logLevel,warning)),doc.errors.length>0){if(doc.options.logLevel!=="silent")throw doc.errors[0];doc.errors=[]}return doc.toJS(Object.assign({reviver:_reviver},options))}__name(parse12,"parse");function stringify4(value,replacer,options){let _replacer=null;if(typeof replacer=="function"||Array.isArray(replacer)?_replacer=replacer:options===void 0&&replacer&&(options=replacer),typeof options=="string"&&(options=options.length),typeof options=="number"){let indent=Math.round(options);options=indent<1?void 0:indent>8?{indent:8}:{indent}}if(value===void 0){let{keepUndefined}=options??replacer??{};if(!keepUndefined)return}return identity2.isDocument(value)&&!_replacer?value.toString(options):new Document.Document(value,_replacer,options).toString(options)}__name(stringify4,"stringify");exports2.parse=parse12;exports2.parseAllDocuments=parseAllDocuments;exports2.parseDocument=parseDocument;exports2.stringify=stringify4}});var require_dist=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/index.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),Schema=require_Schema(),errors=require_errors(),Alias=require_Alias(),identity2=require_identity(),Pair=require_Pair(),Scalar=require_Scalar(),YAMLMap=require_YAMLMap(),YAMLSeq=require_YAMLSeq(),cst=require_cst(),lexer=require_lexer(),lineCounter=require_line_counter(),parser=require_parser(),publicApi=require_public_api(),visit2=require_visit();exports2.Composer=composer.Composer;exports2.Document=Document.Document;exports2.Schema=Schema.Schema;exports2.YAMLError=errors.YAMLError;exports2.YAMLParseError=errors.YAMLParseError;exports2.YAMLWarning=errors.YAMLWarning;exports2.Alias=Alias.Alias;exports2.isAlias=identity2.isAlias;exports2.isCollection=identity2.isCollection;exports2.isDocument=identity2.isDocument;exports2.isMap=identity2.isMap;exports2.isNode=identity2.isNode;exports2.isPair=identity2.isPair;exports2.isScalar=identity2.isScalar;exports2.isSeq=identity2.isSeq;exports2.Pair=Pair.Pair;exports2.Scalar=Scalar.Scalar;exports2.YAMLMap=YAMLMap.YAMLMap;exports2.YAMLSeq=YAMLSeq.YAMLSeq;exports2.CST=cst;exports2.Lexer=lexer.Lexer;exports2.LineCounter=lineCounter.LineCounter;exports2.Parser=parser.Parser;exports2.parse=publicApi.parse;exports2.parseAllDocuments=publicApi.parseAllDocuments;exports2.parseDocument=publicApi.parseDocument;exports2.stringify=publicApi.stringify;exports2.visit=visit2.visit;exports2.visitAsync=visit2.visitAsync}});import{createHash as createHash2}from"node:crypto";function normalizeApiUrl(input){let trimmed=input.trim();try{let url=new URL(trimmed),pathname=url.pathname.replace(/\/+$/,"");return`${url.protocol}//${url.host}${pathname}`}catch{return trimmed.replace(/\/+$/,"")}}function hashApiUrl(input){return createHash2("sha256").update(normalizeApiUrl(input)).digest("hex").slice(0,6)}function safeHostLabel(host){return host.replace(/:/g,"-").replace(/[^a-zA-Z0-9.-]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").toLowerCase()}function credentialsFilename(apiUrl){let normalized=normalizeApiUrl(apiUrl),hostLabel="unknown";try{hostLabel=safeHostLabel(new URL(normalized).host)}catch{}return hostLabel.length===0&&(hostLabel="unknown"),`${hostLabel}-${hashApiUrl(apiUrl)}.json`}var init_credentials_path=__esm({"src/cli/utils/credentials-path.ts"(){__name(normalizeApiUrl,"normalizeApiUrl");__name(hashApiUrl,"hashApiUrl");__name(safeHostLabel,"safeHostLabel");__name(credentialsFilename,"credentialsFilename")}});import fs2 from"node:fs";import{homedir}from"node:os";import path3,{join}from"node:path";import{fileURLToPath as fileURLToPath2}from"node:url";function readReleaseManifest(){try{let raw=fs2.readFileSync(RELEASE_FILE2,"utf8"),parsed=JSON.parse(raw),manifest={};return typeof parsed.apiUrl=="string"&&parsed.apiUrl.length>0&&(manifest.apiUrl=parsed.apiUrl),typeof parsed.webUrl=="string"&&parsed.webUrl.length>0&&(manifest.webUrl=parsed.webUrl),manifest}catch{return{}}}function loadConfig(){let baked=readReleaseManifest(),apiUrl=process.env.FIMO_API_URL?.trim()||baked.apiUrl||DEFAULT_API_URL,webUrl=process.env.FIMO_WEB_URL?.trim()||baked.webUrl||DEFAULT_WEB_URL,configDir=join(process.env.XDG_CONFIG_HOME||join(homedir(),".config"),"fimo"),credentialsDir=join(configDir,"credentials");return{apiUrl,webUrl,configDir,credentialsDir,credentialsFile:join(credentialsDir,credentialsFilename(apiUrl))}}var DEFAULT_API_URL,DEFAULT_WEB_URL,THIS_FILE,CLI_ROOT,RELEASE_FILE2,init_config=__esm({"src/cli/config.ts"(){init_credentials_path();DEFAULT_API_URL="http://localhost:3000",DEFAULT_WEB_URL="http://localhost:5173",THIS_FILE=fileURLToPath2(import.meta.url),CLI_ROOT=path3.resolve(path3.dirname(THIS_FILE),"..",".."),RELEASE_FILE2=path3.resolve(CLI_ROOT,"release.json");__name(readReleaseManifest,"readReleaseManifest");__name(loadConfig,"loadConfig")}});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(path52,query){let params=new URLSearchParams;for(let[key,value]of Object.entries(query))value!=null&&(Array.isArray(value)?value.length>0&&params.set(key,value.join(",")):params.set(key,String(value)));let queryString=params.toString();return queryString?`${path52}?${queryString}`:path52}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!=null&&input.offset!==void 0){context.addIssue({code:"custom",message:"Use either cursor or offset, not both.",path:["cursor"]});return}if(input.cursor!=null)try{decodePaginationCursor(input.cursor)}catch(error){context.addIssue({code:"custom",message:error instanceof Error?error.message:"Invalid pagination cursor.",path:["cursor"]})}}function encodePaginationCursor(offset){return btoa(JSON.stringify({v:1,offset})).replaceAll("+","-").replaceAll("/","_").replace(/=+$/,"")}function decodePaginationCursor(cursor){try{if(!/^[A-Za-z0-9_-]+$/.test(cursor))throw new Error("Invalid pagination cursor.");let base64=cursor.replaceAll("-","+").replaceAll("_","/"),value=JSON.parse(atob(base64.padEnd(Math.ceil(base64.length/4)*4,"=")));if(!value||typeof value!="object"||value.v!==1||!Number.isSafeInteger(value.offset)||value.offset<0)throw new Error("Invalid pagination cursor.");return value.offset}catch{throw new Error("Invalid pagination cursor.")}}function paginationOffset(input){return input.cursor==null?input.offset:decodePaginationCursor(input.cursor)}function numberedPaginationRefinement(input,context){input.cursor!=null&&input.page!==void 0&&context.addIssue({code:"custom",message:"Use either cursor or page, not both.",path:["cursor"]})}function paginationPage(input){return input.cursor==null?input.page:Number(input.cursor)}function pageSchema(itemSchema){return z5.object({items:z5.array(itemSchema),nextCursor:z5.string().nullable(),total:z5.number().int().nonnegative().optional()})}function projectOffsetPage(body){let{data,meta}=rawOffsetPageSchema.parse(body);return{items:data,nextCursor:meta.hasMore?encodePaginationCursor(meta.offset+meta.limit):null,total:meta.total}}function projectDetail(schema){return body=>{let projected=schema.safeParse(body);return projected.success?projected.data:schema.parse(responseData(body))}}function requiredBranch(branch){if(!branch)throw new Error("A Branch is required when sessionId is absent.");return branch}function projectFilesPath(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,numberedPaginationShape,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,name:z5.string().nullable().optional(),goal:z5.string().nullable().optional(),provenance:z5.object({source:z5.enum(["studio","slack","autonomous","mcp"]),creator:z5.object({kind:z5.enum(["user","slack","agent","oauth","conversation"]),id:z5.string()}),conversationId:z5.string().nullable(),runId:z5.string().nullable()}).nullable().optional(),createdBy:z5.string().optional(),createdAt:z5.iso.datetime().optional(),savedRevision:z5.string().nullable().optional(),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().nullable(),retention:z5.enum(["temporary","durable"]).optional(),visibility:z5.enum(["internal","user-visible"]).optional(),onExpire:z5.enum(["discard","keep"]),nextOperations:z5.array(z5.string())}),paginationShape={limit:z5.number().int().min(1).max(100).optional(),cursor:z5.string().min(1).nullable().optional().describe("Opaque nextCursor from the previous page. Omit or use null for the first page."),offset:z5.number().int().min(0).optional()};__name(paginationRefinement,"paginationRefinement");__name(encodePaginationCursor,"encodePaginationCursor");__name(decodePaginationCursor,"decodePaginationCursor");__name(paginationOffset,"paginationOffset");numberedPaginationShape={page:z5.number().int().positive().optional(),cursor:paginationShape.cursor.refine(cursor=>cursor==null||/^[1-9]\d*$/.test(cursor)&&Number.isSafeInteger(Number(cursor)),"Invalid pagination cursor.")};__name(numberedPaginationRefinement,"numberedPaginationRefinement");__name(paginationPage,"paginationPage");__name(pageSchema,"pageSchema");rawOffsetPageSchema=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.");let result=cliAgentSessionsPageSchema.parse({...page,data:page.data.map(value=>{let{env,...session}=value;return{...session,branch:session.branch??env}})});return{...result,items:result.data,nextCursor:result.hasMore?String(result.page+1):null}}function projectAgentStatus(body){let data=recordValue(responseData(body),"Expected an agent session response."),session=recordValue(data.session,"Expected an agent session.");if(!Array.isArray(data.checkpoints))throw new Error("Expected agent session checkpoints.");return agentStatusOutputSchema.parse({data:{session:{...session,branch:session.branch??session.env},checkpoints:data.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()})),availability:z6.enum(["available","pending_merge"]),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","agent-not-deployed","agent-config-invalid","manual-trigger-not-synced","trigger-not-wired","agent-paused","run-in-progress","task-branch-budget","insufficient-credits"])})])),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(),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(),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 cursor pagination; legacy page input remains supported.",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(),...numberedPaginationShape,limit:z6.number().int().min(1).max(200).optional()}).strict().superRefine(numberedPaginationRefinement),outputSchema:cliAgentSessionsPageSchema.extend({items:z6.array(cliAgentSessionSchema),nextCursor:z6.string().nullable()}),buildRequest:__name(({projectId,agentName,branch,status,page,cursor,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/agents/sessions"),{agent_name:agentName,env:branch,status,page:paginationPage({page,cursor}),limit})}),"buildRequest"),projectOutput:projectAgentSessionsPage}}}});import{z as z7}from"zod";function projectAnalyticsTop(body,input){let analytics2=analyticsApiResponseSchema.parse(body).data,field={pages:"topPages",browsers:"topBrowsers",devices:"topDevices",countries:"topCountries",sources:"topSources"}[input.dimension];return analyticsTopOutputSchema.parse({branch:input.branch,dimension:input.dimension,items:input.limit===void 0?analytics2[field]:analytics2[field].slice(0,input.limit)})}function projectAnalyticsAnnotations(body,input){let analytics2=analyticsApiResponseSchema.parse(body).data;return analyticsAnnotationsOutputSchema.parse({branch:input.branch,annotations:analytics2.annotations})}function projectAnalyticsAnnotation(body){return body===void 0?null:analyticsAnnotationResponseSchema.parse(body)}var analyticsReadBranchSchema,analyticsPresetSchema,analyticsGroupBySchema,analyticsDeviceSchema,analyticsRangeShape,analyticsRangeRefinement,analyticsAnnotationSchema,analyticsBreakdownSchema,analyticsPageBreakdownSchema,analyticsPageviewsSchema,analyticsApiResponseSchema,analyticsPageviewsResponseSchema,analyticsDimensionSchema,analyticsTopOutputSchema,analyticsAnnotationsOutputSchema,analyticsAnnotationResponseSchema,analyticsOperations,init_analytics=__esm({"../../packages/sdk/dist/operations/analytics.js"(){"use strict";init_common();analyticsReadBranchSchema=branchNameSchema.default("prod"),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"]),analyticsDeviceSchema=z7.enum(["bot","desktop","mobile","tablet"]),analyticsRangeShape={preset:analyticsPresetSchema.optional(),device:analyticsDeviceSchema.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}),deviceFilter:analyticsDeviceSchema.nullable().default(null),visitors:z7.number().int().nonnegative(),pageviews:z7.number().int().nonnegative(),botPageviews:z7.number().int().nonnegative().default(0),botVisitors:z7.number().int().nonnegative().default(0),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),topBots:z7.array(analyticsBreakdownSchema).default([]),topAiAssistants:z7.array(analyticsBreakdownSchema).default([]),topCountries:z7.array(analyticsBreakdownSchema),topSources:z7.array(analyticsBreakdownSchema),annotations:z7.array(analyticsAnnotationSchema)}),analyticsApiResponseSchema=createResponseSchema(analyticsPageviewsSchema),analyticsPageviewsResponseSchema=createResponseSchema(analyticsPageviewsSchema.extend({branch:branchNameSchema})),analyticsDimensionSchema=z7.enum(["pages","browsers","devices","countries","sources"]),analyticsTopOutputSchema=z7.object({branch:branchNameSchema,dimension:analyticsDimensionSchema,items:z7.array(z7.union([analyticsPageBreakdownSchema,analyticsBreakdownSchema]))}),analyticsAnnotationsOutputSchema=z7.object({branch:branchNameSchema,annotations:z7.array(analyticsAnnotationSchema)}),analyticsAnnotationResponseSchema=createResponseSchema(analyticsAnnotationSchema);__name(projectAnalyticsTop,"projectAnalyticsTop");__name(projectAnalyticsAnnotations,"projectAnalyticsAnnotations");__name(projectAnalyticsAnnotation,"projectAnalyticsAnnotation");analyticsOperations={"analytics.pageviews":{domain:"analytics",summary:"Read published-site pageviews, visitors, range, breakdowns, and annotations. Branch defaults to prod; explicit branches are honored. Preview traffic is not collected; a non-prod zero is not evidence of no published traffic.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:analyticsReadBranchSchema,...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsPageviewsResponseSchema,projectOutput:__name((body,input)=>{let response=analyticsApiResponseSchema.parse(body);return{...response,data:{...response.data,branch:input.branch}}},"projectOutput"),buildRequest:__name(({projectId,branch,preset,groupBy,from,to,days,device})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days,device})}),"buildRequest")},"analytics.top":{domain:"analytics",summary:"Read a ranked published-site analytics breakdown. Branch defaults to prod; explicit branches are honored. Preview traffic is not collected.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:analyticsReadBranchSchema,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,device})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days,device})}),"buildRequest"),projectOutput:projectAnalyticsTop},"analytics.annotationsList":{domain:"analytics",summary:"List analytics annotations in the selected range. Branch defaults to prod; explicit branches are honored. Writes still require their own Branch scope.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:analyticsReadBranchSchema,...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsAnnotationsOutputSchema,buildRequest:__name(({projectId,branch,preset,groupBy,from,to,days,device})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days,device})}),"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(),slug:z8.string(),tags:z8.array(z8.string()).nullable().optional(),createdAt:z8.string().nullable(),updatedAt:z8.string().nullable(),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().nullable().optional(),query:z8.string().trim().min(1).max(500).optional()}).strict().refine(input=>input.cursor==null||input.query===void 0,{message:"Use either cursor or query, not both."}),assetDerivedFileSchema=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(path52=>path52.split("/").some(segment=>segment.trim()),"Folder path must contain a folder name").refine(path52=>path52.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==null||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:cursor??void 0,query}}),"buildRequest")},"assets.generate":{domain:"assets",summary:"Generate an image or video asset and save it to the media library.",accessScope:"write",effect:"mutation",inputSchema:assetGenerationInputSchema,outputSchema: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 data=body.data.map(({env:_env,parentEnv:_parentEnv,...branch})=>branch);return z10.object({data:z10.array(branchSchema)}).parse({data})}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 data=z10.object({branch:branchSchema.optional(),env:branchSchema.optional(),conflicts:z10.number().int().nonnegative()}).parse(responseData(body)),branch=data.branch??data.env;if(!branch)throw new Error("Expected a synced Branch.");return{branch,conflicts:data.conflicts}},"projectOutput")},"branches.delete":{domain:"branches",summary:"Delete one durable 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:path52,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/diff/code/file"),{path:path52,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:path52})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,`/merge/${encodeURIComponent(from)}/conflict/code`),{path:path52})}),"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,locale,documentId})=>({method:"POST",path:tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}`),body:{data,locale,documentId}}),"buildRequest")},"entries.update":{domain:"entries",summary:"Update one entry of a content type on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema: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,locale})=>({method:"PUT",path:addQuery(tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale}),body:{data}}),"buildRequest")},"entries.updateFields":{domain:"entries",summary:"Update entry fields using the direct Branch entry payload.",accessScope:"write",effect:"mutation",inputSchema: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.`).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:path52})=>({method:"GET",path:addQuery(projectFilesPath(projectId,branch,sessionId,"/file"),{path:path52})}),"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:path52,content:content2,overwrite})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/write`),body:withoutUndefined({path:path52,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:path52,oldString,newString,replaceAll})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/edit`),body:withoutUndefined({path:path52,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:path52})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/delete`),body:{path:path52}}),"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(update=>update.name!==void 0||update.label!==void 0||update.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 update=FormUpdateSchema.safeParse({name:input.name,label:input.label,fields:input.fields});if(!update.success)for(let issue of update.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")},"forms.deleteSubmission":{domain:"forms",summary:"Permanently delete one submission for a form. This cannot be undone.",accessScope:"write",effect:"mutation",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:"DELETE",path:tenantPath(projectId,branch,`/forms/${encodeURIComponent(id)}/submissions/${encodeURIComponent(submissionId)}`)}),"buildRequest"),projectOutput:__name(body=>formSubmissionResponseSchema.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:paginationShape.cursor}).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:paginationShape.cursor}).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:paginationShape.cursor}).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 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","publication"])}).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:paginationShape.cursor}).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(),earned:z22.number().int().optional()})}),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,scheduleContextShape,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))},scheduleContextShape={projectId:uuidSchema,branch:branchNameSchema.optional()},schedulesOperations={"schedules.list":{domain:"schedules",summary:"List schedule records for one project Branch.",accessScope:"read",effect:"read",inputSchema:z24.object({...scheduleContextShape}).strict(),outputSchema:z24.array(scheduleSchema),buildRequest:__name(({projectId,branch})=>({method:"GET",context:{branch},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({...scheduleContextShape}).strict(),outputSchema:overviewSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",context:{branch},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({...scheduleContextShape,scheduleId:uuidSchema}).strict(),outputSchema:detailSchema,buildRequest:__name(({projectId,branch,scheduleId})=>({method:"GET",context:{branch},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({...scheduleContextShape,...scheduleWriteShape,enabled:z24.boolean().optional()}).strict(),outputSchema:scheduleSchema,buildRequest:__name(({projectId,branch,...body})=>({method:"POST",context:{branch},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({...scheduleContextShape,scheduleId:uuidSchema,name:scheduleWriteShape.name.optional(),cron:scheduleWriteShape.cron.optional(),command:scheduleWriteShape.command.optional(),secretKeys:scheduleWriteShape.secretKeys.optional()}).strict().refine(({projectId:_projectId,branch:_branch,scheduleId:_scheduleId,...update})=>Object.values(update).some(value=>value!==void 0),{message:"Pass at least one schedule field to update."}),outputSchema:scheduleSchema,buildRequest:__name(({projectId,branch,scheduleId,...update})=>({method:"PATCH",context:{branch},path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}`),body:withoutUndefined(update)}),"buildRequest"),projectOutput:projectSchedule},"schedules.setEnabled":{domain:"schedules",summary:"Pause or resume a recurring command schedule.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({...scheduleContextShape,scheduleId:uuidSchema,enabled:z24.boolean()}).strict(),outputSchema:scheduleSchema,buildRequest:__name(({projectId,branch,scheduleId,enabled})=>({method:"POST",context:{branch},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({...scheduleContextShape,scheduleId:uuidSchema}).strict(),outputSchema:runSchema,buildRequest:__name(({projectId,branch,scheduleId})=>({method:"POST",context:{branch},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({...scheduleContextShape,scheduleId:uuidSchema,limit:z24.number().int().min(1).max(100).optional(),cursor:paginationShape.cursor,status:runStatusSchema.optional()}).strict(),outputSchema:runsPageSchema,buildRequest:__name(({projectId,branch,scheduleId,limit,cursor,status})=>({method:"GET",context:{branch},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({...scheduleContextShape,runId:uuidSchema}).strict(),outputSchema:runDetailSchema,buildRequest:__name(({projectId,branch,runId})=>({method:"GET",context:{branch},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({...scheduleContextShape,scheduleId:uuidSchema}).strict(),outputSchema:z24.object({ok:z24.literal(!0)}),buildRequest:__name(({projectId,branch,scheduleId})=>({method:"DELETE",context:{branch},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 parent=current.parentBranch??current.parentEnv;current=parent?branches.find(candidate=>(candidate.branch??candidate.env)===parent):void 0}return{branch:input.branch,environment:"preview"}},"projectOutput")}}}});import{z as 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,index)=>{fieldPick.choice==="pick"&&fieldPick.pickedValue===void 0&&context.addIssue({code:"custom",message:"Pass pickedValue when choice is 'pick'.",path:["fieldPicks",index,"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. At capacity, Fimo cleans expired/leaked work, then the oldest inactive temporary work before refusing. Temporary expiry is a maximum lifetime, not guaranteed retention. Inspect your sessions and close unused work; durable work and active operations are not pressure-reclaimed.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,targetBranch:branchNameSchema.optional(),name:z27.string().trim().min(1).max(120).optional(),goal:z27.string().trim().min(1).max(500).optional()}).strict(),outputSchema:z27.object({session:sessionEnvelopeSchema,adopted:z27.boolean()}),buildRequest:__name(({projectId,targetBranch,name,goal})=>({method:"POST",path:managementProjectPath(projectId,"/sessions"),body:withoutUndefined({targetBranch,name,goal})}),"buildRequest")},"sessions.get":{domain:"sessions",summary:"Get one owned Fimo work session for lifecycle recovery.",accessScope:"code",effect:"read",inputSchema: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:"Discover work sessions. Defaults to mine; project lists authorized work within the connection's client boundary.",accessScope:"code",effect:"read",inputSchema:z27.object({projectId:uuidSchema,status:sessionStatusSchema.optional(),scope:z27.enum(["mine","project"]).optional(),cursor:paginationShape.cursor,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,scope})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/sessions"),{status,cursor,limit,scope})}),"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.save":{domain:"sessions",summary:"Checkpoint accumulated work in an owned session without validating, merging, or publishing it.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema,message:z27.string().min(1).max(1e3).optional()}).strict(),outputSchema:sessionEnvelopeSchema.extend({save:z27.object({tip:z27.string(),saved:z27.boolean()})}),buildRequest:__name(({projectId,sessionId,message})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/save`),body:withoutUndefined({message})}),"buildRequest")},"sessions.requestReview":{domain:"sessions",summary:"Save current work in one owned session and request human review. Keeps that same session visible and durable, with no expiry. Returns the saved revision and secure review URL. Does not merge, publish or finish a run. Retry unchanged work to reuse its review.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema,summary:z27.string().trim().min(1).max(240),targetBranch:branchNameSchema.optional()}).strict(),outputSchema:z27.object({requested:z27.literal(!0),alreadyRequested:z27.boolean(),reviewId:uuidSchema,reviewUrl:z27.url(),status:z27.literal("pending"),sessionId:uuidSchema,branch:branchNameSchema,targetBranch:branchNameSchema,revision:z27.string().min(1),savedRevision:z27.string().min(1),fingerprint:z27.string().min(1),visibility:z27.literal("user-visible"),retention:z27.literal("durable"),expiresAt:z27.null(),merged:z27.literal(!1),published:z27.literal(!1),links:z27.object({preview:z27.url(),changes:z27.url(),conversation:z27.url().nullable()})}),buildRequest:__name(({projectId,sessionId,summary:summary2,targetBranch})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/review`),body:withoutUndefined({summary:summary2,targetBranch})}),"buildRequest")},"sessions.setRetention":{domain:"sessions",summary:"Add exactly 1\u201330 whole days to the current expiry of temporary work. Repeat for more time; each request is bounded to that range, not the total. Returns actual expiry. Rejects unchanged with invalid_session_retention when the work is not temporary or has no deadline. Does not save, show, merge or publish; eligible early capacity cleanup still applies.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema,additionalDays:z27.number().int().min(1).max(30)}).strict(),outputSchema:sessionEnvelopeSchema.extend({retention:z27.literal("temporary"),visibility:z27.enum(["internal","user-visible"]),expiresAt:z27.iso.datetime()}),buildRequest:__name(({projectId,sessionId,additionalDays})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/retention`),body:{additionalDays}}),"buildRequest")},"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:paginationShape.cursor,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,locale})=>({method:"PUT",path:addQuery(tenantPath(projectId,branch,`/documents/${encodeURIComponent(typeName)}`),{locale}),body:{data}}),"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})=>({method:"POST",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/test`),body:data===void 0?{}:{data}}),"buildRequest"),projectOutput:__name(body=>deliverySchema.parse(responseData(body)),"projectOutput")},"webhooks.listDeliveries":{domain:"webhooks",summary:"List webhook delivery history with cursor pagination; legacy page input remains supported.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,...numberedPaginationShape,limit:z30.number().int().min(1).max(100).optional()}).strict().superRefine(numberedPaginationRefinement),outputSchema:deliveriesPageSchema.extend({nextCursor:z30.string().nullable()}),buildRequest:__name(({projectId,webhookId,page,cursor,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/deliveries`),{page:paginationPage({page,cursor}),limit})}),"buildRequest"),projectOutput:__name(body=>{let result=deliveriesPageSchema.parse(responseData(body));return{...result,nextCursor:result.pagination.hasMore?String(result.pagination.page+1):null}},"projectOutput")},"webhooks.getDelivery":{domain:"webhooks",summary:"Read one webhook delivery and all of its attempts.",accessScope:"read",effect:"read",inputSchema: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",io:"input"}),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 root=resolveGlobalFimoRoot();if(!root)return null;try{let pkg=JSON.parse(fs5.readFileSync(path5.join(root,"package.json"),"utf8"));return typeof pkg.version=="string"?pkg.version:null}catch{return null}}async function autoUpgradeGlobal(latest){if(!VERSION_PATTERN.test(latest))return!1;let lockDir=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:path52,message}=issue;return`${Array.isArray(path52)&&path52.length>0?`${path52.join(".")}: `:""}${typeof message=="string"?message:"Invalid value"}`}).join("; ")}function formatPartialResult(parsed){if(!parsed.partial||typeof parsed.partial!="object"||Array.isArray(parsed.partial))return null;let partial=parsed.partial,counts=["created","updated","deleted"].flatMap(action=>typeof partial[action]=="number"&&partial[action]>0?[`${partial[action]} ${action}`]:[]);return counts.length>0?`Partial result: ${counts.join(", ")}.`:null}function formatError(status,text,body){if(!text)return String(status);if(body&&typeof body=="object"&&!Array.isArray(body)){let parsed=body;if(typeof parsed.message=="string"&&parsed.message.length>0){let partial=formatPartialResult(parsed);return partial?`${parsed.message} ${partial}`:parsed.message}if(typeof parsed.error=="string"&&parsed.error.length>0)return parsed.error;if(parsed.error&&typeof parsed.error=="object"&&"message"in parsed.error&&typeof parsed.error.message=="string")return parsed.error.message;let zodIssues=formatZodIssues(parsed);if(zodIssues)return zodIssues}return text}async function parseError(response){let text=await response.text(),body;try{body=text?JSON.parse(text):void 0}catch{return{detail:formatError(response.status,text)}}let code2=body&&typeof body=="object"&&!Array.isArray(body)&&typeof body.code=="string"?body.code:void 0;return{detail:formatError(response.status,text,body),code:code2,body}}function throwUnauthorized(cfg,status){try{recordAuthFailure(cfg)}catch{}throw new UnauthorizedError(cfg.apiUrl,status)}async function throwPermissionDenied(cfg,response){let required=[],server={};try{let body=await response.json();required=Array.isArray(body.required)?body.required:body.required?[body.required]:[],typeof body.code=="string"&&body.code&&(server.code=body.code),typeof body.message=="string"&&body.message&&(server.detail=body.message)}catch{}throw new PermissionDeniedError(cfg.apiUrl,required,void 0,server)}function createCliHttpTransport(cfg=loadConfig(),branch){let authHeaders=__name((init,defaultJsonContentType)=>{let headers=new Headers(init.headers),token=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(path52,init={},defaultJsonContentType=!0)=>fimoFetch(`${cfg.apiUrl}${path52}`,{...init,headers:authHeaders(init,defaultJsonContentType)}),"send");return{async request(path52,init={},options={}){let response=await send(path52,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",path52,response.status,error.detail,error.code,error.body)}if(response.status!==204)return await response.json()},async response(path52,init={}){let response=await send(path52,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"} ${path52} 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,headers:!branch&&request.context?.branch!==void 0?{[FIMO_BRANCH_HEADER]:request.context.branch}:void 0,body:request.body===void 0?void 0:JSON.stringify(request.body)},{preserveForbidden:request.preserveForbidden}),"execute")}})}function requiredPermissions(body){let required=typeof body=="object"&&body!==null?body.required:void 0;return Array.isArray(required)?required.filter(value=>typeof value=="string"):typeof required=="string"?[required]:[]}var ApiRequestError,UnauthorizedError,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,path52,status,detail,code2,body){super(`API ${method} ${path52} failed: ${status} ${detail}`),this.name="ApiRequestError",this.method=method,this.path=path52,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;code;detail;constructor(apiUrl,required=[],message,server={}){let detail=required.length?` Missing permission: ${required.join(", ")}.`:"";super(message??`You don't have permission to do this on ${apiUrl}.${detail}`),this.name="PermissionDeniedError",this.apiUrl=apiUrl,this.required=required,this.code=server.code,this.detail=server.detail}},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),wrap=__name(style=>s=>on?`${ANSI[style]}${s}${ANSI.reset}`:s,"wrap");return{enabled:on,bold:wrap("bold"),dim:wrap("dim"),red:wrap("red"),green:wrap("green"),yellow:wrap("yellow"),blue:wrap("blue"),magenta:wrap("magenta"),cyan:wrap("cyan"),gray:wrap("gray")}}var ANSI,palette,init_color=__esm({"src/cli/utils/format/color.ts"(){ANSI={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",gray:"\x1B[90m"};__name(colorEnabled,"colorEnabled");__name(makeColorPalette,"makeColorPalette");palette=makeColorPalette()}});function 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 parent=path7.dirname(dir);if(parent===dir)return null;dir=parent}}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(data,schema){if(data==null)return data;if(schema instanceof z32.ZodOptional||schema instanceof z32.ZodNullable||schema instanceof z32.ZodDefault)return filterUnknownProperties(data,schema.unwrap());if(schema instanceof z32.ZodArray){if(!Array.isArray(data))return data;let itemSchema=schema.unwrap();return data.map(item=>filterUnknownProperties(item,itemSchema))}if(schema instanceof z32.ZodDiscriminatedUnion){if(typeof data!="object"||data===null)return data;let unionSchema=schema,discriminator=unionSchema.def.discriminator,discriminatorValue=data[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(data,matchingSchema):data}if(schema instanceof z32.ZodObject){if(typeof data!="object")return data;let shape=schema.shape,result={};for(let key in shape)if(Object.prototype.hasOwnProperty.call(data,key)){let fieldSchema=shape[key],fieldValue2=data[key];result[key]=filterUnknownProperties(fieldValue2,fieldSchema)}if(schema.def.catchall instanceof z32.ZodUnknown)for(let[key,value]of Object.entries(data))key in shape||(result[key]=value);return result}return data}function createObjectDTO(schema){return{schema,from(data){let filtered=filterUnknownProperties(data,schema);return schema.parse(filtered)},fromList(data){return data.map(item=>this.from(item))},safeParse(data){let filtered=filterUnknownProperties(data,schema);return schema.safeParse(filtered)},partial(){let partialSchema=schema.partial();return createObjectDTO(partialSchema)},pick(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),picked=schema.pick(mask);return createObjectDTO(picked)},omit(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),omitted=schema.omit(mask);return createObjectDTO(omitted)}}}function createDiscriminatedUnionDTO(schema){return{schema,from(data){let filtered=filterUnknownProperties(data,schema);return schema.parse(filtered)},fromList(data){return data.map(item=>this.from(item))},safeParse(data){let filtered=filterUnknownProperties(data,schema);return schema.safeParse(filtered)}}}function createDTO(schema){if(schema instanceof 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_UPLOAD_FILE_SIZE_BYTES,MAX_DOCUMENT_SIZE_BYTES,MAX_AUDIO_SIZE_BYTES,MAX_IMAGE_SIZE_BYTES,MAX_VIDEO_SIZE_BYTES,MAX_ARCHIVE_SIZE_BYTES,MAX_MODEL_SIZE_BYTES,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES,MODEL_MEDIA_TYPE,AttachmentModelMediaTypeSchema,MODEL_MIME_TYPES,MODEL_RENDER_VIEW_ANGLES,AttachmentModelRenderRequestSchema,AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema,AttachmentModelRenderResponseSchema,AttachmentModelRenderMeterSchema,ATTACHMENT_TYPES,ATTACHMENT_MIME_TYPES,ATTACHMENT_IMAGE_MIME_TYPES,ATTACHMENT_DOCUMENT_MIME_TYPES,ATTACHMENT_ARCHIVE_MIME_TYPES,ATTACHMENT_AUDIO_MIME_TYPES,ATTACHMENT_VIDEO_MIME_TYPES,ATTACHMENT_ACCEPT_EXTENSIONS,ATTACHMENT_ACCEPT_STRING,ATTACHMENT_DROPZONE_ACCEPT,EXTENSION_MIME_TYPES,init_attachments=__esm({"../../packages/api-contracts/dist/esm/types/attachments.js"(){"use strict";MB=1024*1024,MAX_UPLOAD_FILE_SIZE_BYTES=50*MB,MAX_DOCUMENT_SIZE_BYTES=5*MB,MAX_AUDIO_SIZE_BYTES=10*MB,MAX_IMAGE_SIZE_BYTES=20*MB,MAX_VIDEO_SIZE_BYTES=20*MB,MAX_ARCHIVE_SIZE_BYTES=20*MB,MAX_MODEL_SIZE_BYTES=20*MB,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES=20*MB,MODEL_MEDIA_TYPE={GLB:"model/gltf-binary",GLTF:"model/gltf+json",FBX:"model/fbx",OBJ:"model/obj",STL:"model/stl",PLY:"model/ply"},AttachmentModelMediaTypeSchema=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})])}});var init_realtime_room=__esm({"../../packages/api-contracts/dist/esm/types/realtime-room.js"(){"use strict";init_env()}});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,path52){let conditionPath=[...path52,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,path52)=>{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,path52));if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...path52,fieldName,variant.uid]);else walk(field.schema.fields,[...path52,fieldName])}},"walk");return walk(fields,[]),problems}function isBlocksUnion(schema){return"oneOf"in schema}function walkContentFields(fields,visit2){let walk=__name((currentFields,path52,structuredDepth,insideStructuredContent)=>{for(let[fieldName,field]of Object.entries(currentFields)){let fieldPath=[...path52,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[index,variant]of schema.oneOf.entries())seen.has(variant.uid)&&ctx.addIssue({code:"custom",path:["oneOf",index,"uid"],message:"Variant UIDs must be unique."}),seen.add(variant.uid)}),blocksFieldSchema=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","project_takedown","project_takedown_lift","organization_takedown","organization_takedown_lift","ops_access_change","ops_service_token_change","ops_project_search","ops_project_inspect","ops_project_chat_read","ops_recent_chat_read","ops_sentry_issue_change","ops_sentry_read","ops_logs_read","ops_trace_read","ops_posthog_milestones_read","ops_agent_trace_list","ops_agent_trace_read","ops_agent_trace_stats","ops_agent_health_read","ops_data_usage_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_intake_read","ops_pylon_queue_read","ops_support_report_change","ops_billing_read","ops_billing_agent_runtime_activate","ops_billing_entitlements_sync","ops_billing_cache_invalidate","ops_billing_dispatch_discard","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,LegacyAdoptionMutationInputSchema,LegacyAdoptionAbandonInputSchema,LegacyAdoptionActivationInputSchema,OpsServiceTokenInputSchema,OpsCustomerProjectInputSchema,OPS_INVESTIGATION_STATUSES,OpsInvestigationStatusSchema,OpsInvestigationCreateInputSchema,OpsInvestigationUpdateInputSchema,OPS_KNOWN_ISSUE_STATUSES,OpsKnownIssueStatusSchema,OpsKnownIssueCreateInputSchema,OpsKnownIssueUpdateInputSchema,OPS_VALIDATION_OUTCOMES,OpsValidationOutcomeSchema,OpsValidationRunInputSchema,OpsNotificationPreviewInputSchema,OpsPylonIssueIdSchema,OpsPylonReasonSchema,OpsPylonMessageSchema,OpsPylonMessageIdSchema,OpsPylonEmailListSchema,OpsPylonResolveInputSchema,OpsPylonNoteInputSchema,OpsPylonReplyPreviewInputSchema,OpsSentryIssueIdSchema,OpsSentryResolveInputSchema,OpsTraceIdSchema,OpsTraceReadInputSchema,OpsBraintrustSpanIdSchema,OpsAgentInvocationStatusSchema,OpsAgentTraceListInputSchema,OpsAgentTraceSpansInputSchema,OpsSpanBodyEdgeSchema,OpsAgentTraceSpanInputSchema,OpsAgentTraceMessagesInputSchema,OpsAgentHealthGroupBySchema,OpsAgentHealthInputSchema,OPS_DATA_USAGE_MAX_WINDOW_MS,OpsDataUsageGroupBySchema,OpsDataUsageInputSchema,OPS_CONTEXT_HEALTH_MAX_WINDOW_MS,OpsContextHealthInputSchema,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,OPS_POSTHOG_EVENTS,OPS_POSTHOG_QUESTION,OpsPosthogTimestampSchema,OpsPosthogMilestonesInputSchema,OpsPosthogFailureCodeSchema,OpsPosthogCoverageSchema,OpsPosthogCountsSchema,OpsPosthogMilestonesResponseSchema,OpsSessionHealthInputSchema,OpsProjectAnalyticsHealthInputSchema,init_ops=__esm({"../../packages/api-contracts/dist/esm/types/ops.js"(){"use strict";init_env();OPS_BACKEND_PROFILES=["local","staging","prod"],OpsBackendProfileSchema=z44.enum(OPS_BACKEND_PROFILES),OPS_PERMISSIONS=["ops:platform:legacy-adoption","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:posthog: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.filter(permission=>permission!=="ops:platform:legacy-adoption")},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)}),LegacyAdoptionMutationInputSchema=z44.object({reason:z44.string().trim().min(1).max(1e3),confirmProduction:z44.boolean().default(!1)}),LegacyAdoptionAbandonInputSchema=LegacyAdoptionMutationInputSchema.extend({recordId:z44.uuid()}),LegacyAdoptionActivationInputSchema=LegacyAdoptionMutationInputSchema.extend({oldDeployment:z44.string().trim().min(1).max(200),legacyWritersStopped:z44.literal(!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_DATA_USAGE_MAX_WINDOW_MS=10080*60*1e3,OpsDataUsageGroupBySchema=z44.enum(["operation","provider","day","organization","agent"]),OpsDataUsageInputSchema=z44.strictObject({organizationId:z44.string().trim().min(1).max(255).optional(),since:z44.coerce.date(),until:z44.coerce.date().optional(),groupBy:OpsDataUsageGroupBySchema.default("operation"),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"}).refine(input=>(input.until??new Date).getTime()-input.since.getTime()<=OPS_DATA_USAGE_MAX_WINDOW_MS,{path:["since"],message:"data usage window cannot exceed 7 days"}),OPS_CONTEXT_HEALTH_MAX_WINDOW_MS=10080*60*1e3,OpsContextHealthInputSchema=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().default(()=>new Date),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),correlateInvocations:z44.boolean().default(!1),correlationLimit:z44.coerce.number().int().min(1).max(100).default(25),reason:z44.string().trim().min(1).max(1e3)}).refine(input=>input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>input.until.getTime()-input.since.getTime()<=10080*60*1e3,{path:["since"],message:"provider error windows cannot exceed 7 days"}).refine(input=>!input.before||input.before>=input.since&&input.before<=input.until,{path:["before"],message:"before must be within the requested window"}),OpsBillingCacheInvalidateInputSchema=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)}),OPS_POSTHOG_EVENTS=["didCreateProject","didInitiateProject","didDeploy","didDeployProject","didFirstPublish"],OPS_POSTHOG_QUESTION="project-milestone-counts-v1",OpsPosthogTimestampSchema=z44.iso.datetime({offset:!0}).refine(value=>Number.isFinite(Date.parse(value))&&!/\.\d{3}\d*[1-9]\d*(?:Z|[+-]\d{2}:\d{2})$/.test(value),"A finite timestamp with at most millisecond precision is required").transform(value=>new Date(value).toISOString()),OpsPosthogMilestonesInputSchema=z44.strictObject({projectId:z44.uuid().transform(value=>value.toLowerCase()),from:OpsPosthogTimestampSchema,to:OpsPosthogTimestampSchema,reason:z44.string().trim().min(1).max(1e3)}).refine(value=>{let duration=Date.parse(value.to)-Date.parse(value.from);return duration>0&&duration<=1440*60*1e3},{message:"Window must satisfy from < to and be at most 24 hours",path:["to"]}),OpsPosthogFailureCodeSchema=z44.enum(["not_configured","unauthenticated","forbidden","backend_mismatch","invalid_request","provider_auth_failed","provider_project_unavailable","rate_limited","timeout","provider_error","capability_unavailable","invalid_response","incomplete","pending","audit_unavailable"]),OpsPosthogCoverageSchema=z44.strictObject({completeAggregate:z44.boolean(),truncated:z44.boolean().nullable(),sampled:z44.boolean().nullable(),pagination:z44.enum(["not_applicable","unexpected","unknown"]),providerFreshnessKnown:z44.literal(!1),providerAsOf:z44.null(),projectFilter:z44.literal("exact properties.projectId equality"),environmentFilterSupported:z44.literal(!1),excludesMissingProjectId:z44.literal(!0),transport:z44.literal("server"),consentCoverage:z44.literal("server-policy-not-browser-consent"),operationDedupeAvailable:z44.literal(!1)}),OpsPosthogCountsSchema=z44.array(z44.strictObject({event:z44.enum(OPS_POSTHOG_EVENTS),captureCount:z44.number().int().min(0).max(Number.MAX_SAFE_INTEGER)})).length(5).refine(counts=>counts.every((entry,i)=>entry.event===OPS_POSTHOG_EVENTS[i])),OpsPosthogMilestonesResponseSchema=z44.strictObject({schemaVersion:z44.literal(1),questionId:z44.literal(OPS_POSTHOG_QUESTION),backendProfile:OpsBackendProfileSchema,projectId:z44.uuid().nullable(),projectEnvironment:z44.literal("mixed_or_unrecorded"),window:z44.strictObject({from:z44.iso.datetime(),to:z44.iso.datetime(),bounds:z44.literal("[from,to)")}).nullable(),source:z44.literal("posthog"),sourceStatus:z44.enum(["available","unavailable","forbidden"]),failureCode:OpsPosthogFailureCodeSchema.nullable(),queriedAt:z44.iso.datetime(),auditId:z44.uuid().nullable(),counts:OpsPosthogCountsSchema.nullable(),coverage:OpsPosthogCoverageSchema}).superRefine((value,ctx)=>{(value.sourceStatus==="available"?value.counts===null||value.failureCode!==null||value.auditId===null||value.projectId===null||value.window===null||!value.coverage.completeAggregate||value.coverage.sampled!==!1||value.coverage.truncated!==!1||value.coverage.pagination!=="not_applicable":value.counts!==null||value.failureCode===null||value.coverage.completeAggregate)&&ctx.addIssue({code:"custom",message:"Invalid aggregate availability"})}),OpsSessionHealthInputSchema=z44.object({reason:z44.string().trim().min(1).max(1e3),limit:z44.number().int().min(1).max(100).default(25),checkProvider:z44.boolean().default(!1)}),OpsProjectAnalyticsHealthInputSchema=z44.object({branch:z44.string().trim().min(1).max(255),canaryPath:z44.string().max(300).regex(/^\/[a-zA-Z0-9/_-]*\?fimo_monitor=[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/).optional(),since:z44.iso.datetime({offset:!0}),until:z44.iso.datetime({offset:!0}),reason:z44.string().trim().min(1).max(1e3)}).strict().refine(input=>Date.parse(input.since)<=Date.parse(input.until),{path:["since"],message:"since must be before or equal to until"}).refine(input=>Date.parse(input.until)-Date.parse(input.since)<=10080*60*1e3,{path:["since"],message:"analytics health window cannot exceed 7 days"}).refine(input=>Date.parse(input.until)<=Date.now(),{path:["until"],message:"until cannot be in the future"}).transform(({since,until,...input})=>({...input,since:new Date(since),until:new Date(until)}))}});import{z as 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,index)=>{let selectedLabels=[...answers[index]?.selectedLabels??[]],freeText=answers[index]?.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}
181
- 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,index)=>{row2.cells.length!==table.columns.length&&ctx.addIssue({code:"custom",path:["rows",index,"cells"],message:`Every table row needs exactly ${table.columns.length} cells, one for each column.`})})}),CardsBlockSchema=BlockBaseSchema.extend({type: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(`
180
+ `,nl)+1}return{type,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(parent){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return start.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(start,indent){return this.type!=="comment"||this.indent<=indent?!1:start.every(st2=>st2.type==="newline"||st2.type==="space")}*documentEnd(docEnd){this.type!=="doc-mode"&&(docEnd.end?docEnd.end.push(this.sourceToken):docEnd.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(token){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:token.end?token.end.push(this.sourceToken):token.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};exports2.Parser=Parser}});var require_public_api=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/public-api.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),errors=require_errors(),log=require_log(),identity2=require_identity(),lineCounter=require_line_counter(),parser=require_parser();function parseOptions(options){let prettyErrors=options.prettyErrors!==!1;return{lineCounter:options.lineCounter||prettyErrors&&new lineCounter.LineCounter||null,prettyErrors}}__name(parseOptions,"parseOptions");function parseAllDocuments(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),docs=Array.from(composer$1.compose(parser$1.parse(source)));if(prettyErrors&&lineCounter2)for(let doc of docs)doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2));return docs.length>0?docs:Object.assign([],{empty:!0},composer$1.streamInfo())}__name(parseAllDocuments,"parseAllDocuments");function parseDocument(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),doc=null;for(let _doc of composer$1.compose(parser$1.parse(source),!0,source.length))if(!doc)doc=_doc;else if(doc.options.logLevel!=="silent"){doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return prettyErrors&&lineCounter2&&(doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2))),doc}__name(parseDocument,"parseDocument");function parse12(src,reviver,options){let _reviver;typeof reviver=="function"?_reviver=reviver:options===void 0&&reviver&&typeof reviver=="object"&&(options=reviver);let doc=parseDocument(src,options);if(!doc)return null;if(doc.warnings.forEach(warning=>log.warn(doc.options.logLevel,warning)),doc.errors.length>0){if(doc.options.logLevel!=="silent")throw doc.errors[0];doc.errors=[]}return doc.toJS(Object.assign({reviver:_reviver},options))}__name(parse12,"parse");function stringify4(value,replacer,options){let _replacer=null;if(typeof replacer=="function"||Array.isArray(replacer)?_replacer=replacer:options===void 0&&replacer&&(options=replacer),typeof options=="string"&&(options=options.length),typeof options=="number"){let indent=Math.round(options);options=indent<1?void 0:indent>8?{indent:8}:{indent}}if(value===void 0){let{keepUndefined}=options??replacer??{};if(!keepUndefined)return}return identity2.isDocument(value)&&!_replacer?value.toString(options):new Document.Document(value,_replacer,options).toString(options)}__name(stringify4,"stringify");exports2.parse=parse12;exports2.parseAllDocuments=parseAllDocuments;exports2.parseDocument=parseDocument;exports2.stringify=stringify4}});var require_dist=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/index.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),Schema=require_Schema(),errors=require_errors(),Alias=require_Alias(),identity2=require_identity(),Pair=require_Pair(),Scalar=require_Scalar(),YAMLMap=require_YAMLMap(),YAMLSeq=require_YAMLSeq(),cst=require_cst(),lexer=require_lexer(),lineCounter=require_line_counter(),parser=require_parser(),publicApi=require_public_api(),visit2=require_visit();exports2.Composer=composer.Composer;exports2.Document=Document.Document;exports2.Schema=Schema.Schema;exports2.YAMLError=errors.YAMLError;exports2.YAMLParseError=errors.YAMLParseError;exports2.YAMLWarning=errors.YAMLWarning;exports2.Alias=Alias.Alias;exports2.isAlias=identity2.isAlias;exports2.isCollection=identity2.isCollection;exports2.isDocument=identity2.isDocument;exports2.isMap=identity2.isMap;exports2.isNode=identity2.isNode;exports2.isPair=identity2.isPair;exports2.isScalar=identity2.isScalar;exports2.isSeq=identity2.isSeq;exports2.Pair=Pair.Pair;exports2.Scalar=Scalar.Scalar;exports2.YAMLMap=YAMLMap.YAMLMap;exports2.YAMLSeq=YAMLSeq.YAMLSeq;exports2.CST=cst;exports2.Lexer=lexer.Lexer;exports2.LineCounter=lineCounter.LineCounter;exports2.Parser=parser.Parser;exports2.parse=publicApi.parse;exports2.parseAllDocuments=publicApi.parseAllDocuments;exports2.parseDocument=publicApi.parseDocument;exports2.stringify=publicApi.stringify;exports2.visit=visit2.visit;exports2.visitAsync=visit2.visitAsync}});import{createHash as createHash2}from"node:crypto";function normalizeApiUrl(input){let trimmed=input.trim();try{let url=new URL(trimmed),pathname=url.pathname.replace(/\/+$/,"");return`${url.protocol}//${url.host}${pathname}`}catch{return trimmed.replace(/\/+$/,"")}}function hashApiUrl(input){return createHash2("sha256").update(normalizeApiUrl(input)).digest("hex").slice(0,6)}function safeHostLabel(host){return host.replace(/:/g,"-").replace(/[^a-zA-Z0-9.-]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").toLowerCase()}function credentialsFilename(apiUrl){let normalized=normalizeApiUrl(apiUrl),hostLabel="unknown";try{hostLabel=safeHostLabel(new URL(normalized).host)}catch{}return hostLabel.length===0&&(hostLabel="unknown"),`${hostLabel}-${hashApiUrl(apiUrl)}.json`}var init_credentials_path=__esm({"src/cli/utils/credentials-path.ts"(){__name(normalizeApiUrl,"normalizeApiUrl");__name(hashApiUrl,"hashApiUrl");__name(safeHostLabel,"safeHostLabel");__name(credentialsFilename,"credentialsFilename")}});import fs2 from"node:fs";import{homedir}from"node:os";import path3,{join}from"node:path";import{fileURLToPath as fileURLToPath2}from"node:url";function readReleaseManifest(){try{let raw=fs2.readFileSync(RELEASE_FILE2,"utf8"),parsed=JSON.parse(raw),manifest={};return typeof parsed.apiUrl=="string"&&parsed.apiUrl.length>0&&(manifest.apiUrl=parsed.apiUrl),typeof parsed.webUrl=="string"&&parsed.webUrl.length>0&&(manifest.webUrl=parsed.webUrl),manifest}catch{return{}}}function loadConfig(){let baked=readReleaseManifest(),apiUrl=process.env.FIMO_API_URL?.trim()||baked.apiUrl||DEFAULT_API_URL,webUrl=process.env.FIMO_WEB_URL?.trim()||baked.webUrl||DEFAULT_WEB_URL,configDir=join(process.env.XDG_CONFIG_HOME||join(homedir(),".config"),"fimo"),credentialsDir=join(configDir,"credentials");return{apiUrl,webUrl,configDir,credentialsDir,credentialsFile:join(credentialsDir,credentialsFilename(apiUrl))}}var DEFAULT_API_URL,DEFAULT_WEB_URL,THIS_FILE,CLI_ROOT,RELEASE_FILE2,init_config=__esm({"src/cli/config.ts"(){init_credentials_path();DEFAULT_API_URL="http://localhost:3000",DEFAULT_WEB_URL="http://localhost:5173",THIS_FILE=fileURLToPath2(import.meta.url),CLI_ROOT=path3.resolve(path3.dirname(THIS_FILE),"..",".."),RELEASE_FILE2=path3.resolve(CLI_ROOT,"release.json");__name(readReleaseManifest,"readReleaseManifest");__name(loadConfig,"loadConfig")}});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(path52,query){let params=new URLSearchParams;for(let[key,value]of Object.entries(query))value!=null&&(Array.isArray(value)?value.length>0&&params.set(key,value.join(",")):params.set(key,String(value)));let queryString=params.toString();return queryString?`${path52}?${queryString}`:path52}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!=null&&input.offset!==void 0){context.addIssue({code:"custom",message:"Use either cursor or offset, not both.",path:["cursor"]});return}if(input.cursor!=null)try{decodePaginationCursor(input.cursor)}catch(error){context.addIssue({code:"custom",message:error instanceof Error?error.message:"Invalid pagination cursor.",path:["cursor"]})}}function encodePaginationCursor(offset){return btoa(JSON.stringify({v:1,offset})).replaceAll("+","-").replaceAll("/","_").replace(/=+$/,"")}function decodePaginationCursor(cursor){try{if(!/^[A-Za-z0-9_-]+$/.test(cursor))throw new Error("Invalid pagination cursor.");let base64=cursor.replaceAll("-","+").replaceAll("_","/"),value=JSON.parse(atob(base64.padEnd(Math.ceil(base64.length/4)*4,"=")));if(!value||typeof value!="object"||value.v!==1||!Number.isSafeInteger(value.offset)||value.offset<0)throw new Error("Invalid pagination cursor.");return value.offset}catch{throw new Error("Invalid pagination cursor.")}}function paginationOffset(input){return input.cursor==null?input.offset:decodePaginationCursor(input.cursor)}function numberedPaginationRefinement(input,context){input.cursor!=null&&input.page!==void 0&&context.addIssue({code:"custom",message:"Use either cursor or page, not both.",path:["cursor"]})}function paginationPage(input){return input.cursor==null?input.page:Number(input.cursor)}function pageSchema(itemSchema){return z5.object({items:z5.array(itemSchema),nextCursor:z5.string().nullable(),total:z5.number().int().nonnegative().optional()})}function projectOffsetPage(body){let{data,meta}=rawOffsetPageSchema.parse(body);return{items:data,nextCursor:meta.hasMore?encodePaginationCursor(meta.offset+meta.limit):null,total:meta.total}}function projectDetail(schema){return body=>{let projected=schema.safeParse(body);return projected.success?projected.data:schema.parse(responseData(body))}}function requiredBranch(branch){if(!branch)throw new Error("A Branch is required when sessionId is absent.");return branch}function projectFilesPath(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,PROJECT_FILE_WRITE_MANY_MAX_FILES,PROJECT_FILE_WRITE_MANY_LIMIT_BYTES,sessionEnvelopeSchema,paginationShape,numberedPaginationShape,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,PROJECT_FILE_WRITE_MANY_MAX_FILES=100,PROJECT_FILE_WRITE_MANY_LIMIT_BYTES=1024*1024;__name(utf8Text,"utf8Text");__name(responseData,"responseData");__name(publicSurface,"publicSurface");__name(backendSurfaces,"backendSurfaces");__name(recordValue,"recordValue");sessionEnvelopeSchema=z5.object({sessionId:uuidSchema,projectId:uuidSchema,status:sessionStatusSchema,name:z5.string().nullable().optional(),goal:z5.string().nullable().optional(),provenance:z5.object({source:z5.enum(["studio","slack","autonomous","mcp"]),creator:z5.object({kind:z5.enum(["user","slack","agent","oauth","conversation"]),id:z5.string()}),conversationId:z5.string().nullable(),runId:z5.string().nullable()}).nullable().optional(),createdBy:z5.string().optional(),createdAt:z5.iso.datetime().optional(),savedRevision:z5.string().nullable().optional(),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().nullable(),retention:z5.enum(["temporary","durable"]).optional(),visibility:z5.enum(["internal","user-visible"]).optional(),onExpire:z5.enum(["discard","keep"]),nextOperations:z5.array(z5.string())}),paginationShape={limit:z5.number().int().min(1).max(100).optional(),cursor:z5.string().min(1).nullable().optional().describe("Opaque nextCursor from the previous page. Omit or use null for the first page."),offset:z5.number().int().min(0).optional()};__name(paginationRefinement,"paginationRefinement");__name(encodePaginationCursor,"encodePaginationCursor");__name(decodePaginationCursor,"decodePaginationCursor");__name(paginationOffset,"paginationOffset");numberedPaginationShape={page:z5.number().int().positive().optional(),cursor:paginationShape.cursor.refine(cursor=>cursor==null||/^[1-9]\d*$/.test(cursor)&&Number.isSafeInteger(Number(cursor)),"Invalid pagination cursor.")};__name(numberedPaginationRefinement,"numberedPaginationRefinement");__name(paginationPage,"paginationPage");__name(pageSchema,"pageSchema");rawOffsetPageSchema=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.");let result=cliAgentSessionsPageSchema.parse({...page,data:page.data.map(value=>{let{env,...session}=value;return{...session,branch:session.branch??env}})});return{...result,items:result.data,nextCursor:result.hasMore?String(result.page+1):null}}function projectAgentStatus(body){let data=recordValue(responseData(body),"Expected an agent session response."),session=recordValue(data.session,"Expected an agent session.");if(!Array.isArray(data.checkpoints))throw new Error("Expected agent session checkpoints.");return agentStatusOutputSchema.parse({data:{session:{...session,branch:session.branch??session.env},checkpoints:data.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()})),availability:z6.enum(["available","pending_merge"]),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","agent-not-deployed","agent-config-invalid","manual-trigger-not-synced","trigger-not-wired","agent-paused","run-in-progress","task-branch-budget","insufficient-credits"])})])),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(),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(),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 cursor pagination; legacy page input remains supported.",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(),...numberedPaginationShape,limit:z6.number().int().min(1).max(200).optional()}).strict().superRefine(numberedPaginationRefinement),outputSchema:cliAgentSessionsPageSchema.extend({items:z6.array(cliAgentSessionSchema),nextCursor:z6.string().nullable()}),buildRequest:__name(({projectId,agentName,branch,status,page,cursor,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/agents/sessions"),{agent_name:agentName,env:branch,status,page:paginationPage({page,cursor}),limit})}),"buildRequest"),projectOutput:projectAgentSessionsPage}}}});import{z as z7}from"zod";function projectAnalyticsTop(body,input){let analytics2=analyticsApiResponseSchema.parse(body).data,field={pages:"topPages",browsers:"topBrowsers",devices:"topDevices",countries:"topCountries",sources:"topSources"}[input.dimension];return analyticsTopOutputSchema.parse({branch:input.branch,dimension:input.dimension,items:input.limit===void 0?analytics2[field]:analytics2[field].slice(0,input.limit)})}function projectAnalyticsAnnotations(body,input){let analytics2=analyticsApiResponseSchema.parse(body).data;return analyticsAnnotationsOutputSchema.parse({branch:input.branch,annotations:analytics2.annotations})}function projectAnalyticsAnnotation(body){return body===void 0?null:analyticsAnnotationResponseSchema.parse(body)}var analyticsReadBranchSchema,analyticsPresetSchema,analyticsGroupBySchema,analyticsDeviceSchema,analyticsRangeShape,analyticsRangeRefinement,analyticsAnnotationSchema,analyticsBreakdownSchema,analyticsPageBreakdownSchema,analyticsPageviewsSchema,analyticsApiResponseSchema,analyticsPageviewsResponseSchema,analyticsDimensionSchema,analyticsTopOutputSchema,analyticsAnnotationsOutputSchema,analyticsAnnotationResponseSchema,analyticsOperations,init_analytics=__esm({"../../packages/sdk/dist/operations/analytics.js"(){"use strict";init_common();analyticsReadBranchSchema=branchNameSchema.default("prod"),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"]),analyticsDeviceSchema=z7.enum(["bot","desktop","mobile","tablet"]),analyticsRangeShape={preset:analyticsPresetSchema.optional(),device:analyticsDeviceSchema.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}),deviceFilter:analyticsDeviceSchema.nullable().default(null),visitors:z7.number().int().nonnegative(),pageviews:z7.number().int().nonnegative(),botPageviews:z7.number().int().nonnegative().default(0),botVisitors:z7.number().int().nonnegative().default(0),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),topBots:z7.array(analyticsBreakdownSchema).default([]),topAiAssistants:z7.array(analyticsBreakdownSchema).default([]),topCountries:z7.array(analyticsBreakdownSchema),topSources:z7.array(analyticsBreakdownSchema),annotations:z7.array(analyticsAnnotationSchema)}),analyticsApiResponseSchema=createResponseSchema(analyticsPageviewsSchema),analyticsPageviewsResponseSchema=createResponseSchema(analyticsPageviewsSchema.extend({branch:branchNameSchema})),analyticsDimensionSchema=z7.enum(["pages","browsers","devices","countries","sources"]),analyticsTopOutputSchema=z7.object({branch:branchNameSchema,dimension:analyticsDimensionSchema,items:z7.array(z7.union([analyticsPageBreakdownSchema,analyticsBreakdownSchema]))}),analyticsAnnotationsOutputSchema=z7.object({branch:branchNameSchema,annotations:z7.array(analyticsAnnotationSchema)}),analyticsAnnotationResponseSchema=createResponseSchema(analyticsAnnotationSchema);__name(projectAnalyticsTop,"projectAnalyticsTop");__name(projectAnalyticsAnnotations,"projectAnalyticsAnnotations");__name(projectAnalyticsAnnotation,"projectAnalyticsAnnotation");analyticsOperations={"analytics.pageviews":{domain:"analytics",summary:"Read published-site pageviews, visitors, range, breakdowns, and annotations. Branch defaults to prod; explicit branches are honored. Preview traffic is not collected; a non-prod zero is not evidence of no published traffic.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:analyticsReadBranchSchema,...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsPageviewsResponseSchema,projectOutput:__name((body,input)=>{let response=analyticsApiResponseSchema.parse(body);return{...response,data:{...response.data,branch:input.branch}}},"projectOutput"),buildRequest:__name(({projectId,branch,preset,groupBy,from,to,days,device})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days,device})}),"buildRequest")},"analytics.top":{domain:"analytics",summary:"Read a ranked published-site analytics breakdown. Branch defaults to prod; explicit branches are honored. Preview traffic is not collected.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:analyticsReadBranchSchema,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,device})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days,device})}),"buildRequest"),projectOutput:projectAnalyticsTop},"analytics.annotationsList":{domain:"analytics",summary:"List analytics annotations in the selected range. Branch defaults to prod; explicit branches are honored. Writes still require their own Branch scope.",accessScope:"read",effect:"read",inputSchema:z7.object({projectId:uuidSchema,branch:analyticsReadBranchSchema,...analyticsRangeShape}).strict().superRefine(analyticsRangeRefinement),outputSchema:analyticsAnnotationsOutputSchema,buildRequest:__name(({projectId,branch,preset,groupBy,from,to,days,device})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/analytics"),{preset,groupBy,from,to,days,device})}),"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(),slug:z8.string(),tags:z8.array(z8.string()).nullable().optional(),createdAt:z8.string().nullable(),updatedAt:z8.string().nullable(),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().nullable().optional(),query:z8.string().trim().min(1).max(500).optional()}).strict().refine(input=>input.cursor==null||input.query===void 0,{message:"Use either cursor or query, not both."}),assetDerivedFileSchema=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(path52=>path52.split("/").some(segment=>segment.trim()),"Folder path must contain a folder name").refine(path52=>path52.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==null||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:cursor??void 0,query}}),"buildRequest")},"assets.generate":{domain:"assets",summary:"Generate an image or video asset and save it to the media library.",accessScope:"write",effect:"mutation",inputSchema:assetGenerationInputSchema,outputSchema: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 data=body.data.map(({env:_env,parentEnv:_parentEnv,...branch})=>branch);return z10.object({data:z10.array(branchSchema)}).parse({data})}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 data=z10.object({branch:branchSchema.optional(),env:branchSchema.optional(),conflicts:z10.number().int().nonnegative()}).parse(responseData(body)),branch=data.branch??data.env;if(!branch)throw new Error("Expected a synced Branch.");return{branch,conflicts:data.conflicts}},"projectOutput")},"branches.delete":{domain:"branches",summary:"Delete one durable 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:path52,against})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,"/diff/code/file"),{path:path52,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:path52})=>({method:"GET",path:addQuery(managementBranchPath(projectId,branch,`/merge/${encodeURIComponent(from)}/conflict/code`),{path:path52})}),"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,locale,documentId})=>({method:"POST",path:tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}`),body:{data,locale,documentId}}),"buildRequest")},"entries.update":{domain:"entries",summary:"Update one entry of a content type on a Fimo Branch.",accessScope:"write",effect:"mutation",inputSchema: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,locale})=>({method:"PUT",path:addQuery(tenantPath(projectId,branch,`/entries/${encodeURIComponent(typeName)}/${encodeURIComponent(id)}`),{locale}),body:{data}}),"buildRequest")},"entries.updateFields":{domain:"entries",summary:"Update entry fields using the direct Branch entry payload.",accessScope:"write",effect:"mutation",inputSchema: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,fileWriteManyInputSchema,fileWriteManyOutputSchema,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.`).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()}),fileWriteManyInputSchema=z14.object({projectId:uuidSchema,sessionId:uuidSchema,files:z14.array(z14.object({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.`)}).strict()).min(1).max(PROJECT_FILE_WRITE_MANY_MAX_FILES).refine(files=>files.reduce((total,file)=>total+new TextEncoder().encode(file.content).byteLength,0)<=PROJECT_FILE_WRITE_MANY_LIMIT_BYTES,`Files exceed the ${PROJECT_FILE_WRITE_MANY_LIMIT_BYTES}-byte total write limit.`)}).strict(),fileWriteManyOutputSchema=sessionEnvelopeSchema.extend({files:z14.array(z14.object({path:z14.string(),created:z14.boolean()}).passthrough()),tip:z14.string().min(1)}),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:path52})=>({method:"GET",path:addQuery(projectFilesPath(projectId,branch,sessionId,"/file"),{path:path52})}),"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:path52,content:content2,overwrite})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/write`),body:withoutUndefined({path:path52,content:content2,overwrite})}),"buildRequest")},"files.writeMany":{domain:"files",summary:"Create or overwrite several safe text files in an owned work session as one saved change.",accessScope:"code",effect:"mutation",inputSchema:fileWriteManyInputSchema,outputSchema:fileWriteManyOutputSchema,buildRequest:__name(({projectId,sessionId,files})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/write-many`),body:{files}}),"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:path52,oldString,newString,replaceAll})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/edit`),body:withoutUndefined({path:path52,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:path52})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/files/delete`),body:{path:path52}}),"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(update=>update.name!==void 0||update.label!==void 0||update.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 update=FormUpdateSchema.safeParse({name:input.name,label:input.label,fields:input.fields});if(!update.success)for(let issue of update.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")},"forms.deleteSubmission":{domain:"forms",summary:"Permanently delete one submission for a form. This cannot be undone.",accessScope:"write",effect:"mutation",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:"DELETE",path:tenantPath(projectId,branch,`/forms/${encodeURIComponent(id)}/submissions/${encodeURIComponent(submissionId)}`)}),"buildRequest"),projectOutput:__name(body=>formSubmissionResponseSchema.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:paginationShape.cursor}).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,previewOpenOutputSchema,publishOutputSchema,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}),previewOpenOutputSchema=z18.object({url:z18.url(),expiresAt:z18.iso.datetime().nullable()}),publishOutputSchema=z18.object({success:z18.boolean(),message:z18.string().optional(),firstPublish:z18.boolean(),publicationId:z18.string().optional(),url:z18.string().nullable().optional()});__name(publicationRecord,"publicationRecord");__name(projectPublication,"projectPublication");__name(projectPublicationsPage,"projectPublicationsPage");__name(projectPublicationLogs,"projectPublicationLogs");__name(projectSandboxLogs,"projectSandboxLogs");hostingOperations={"publications.state":{domain:"publications",summary:"Read whether a 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:paginationShape.cursor}).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.publish":{domain:"publications",summary:"Publish the production source Branch and wait until the site is live; returns the live URL. Building can take a few minutes; if the call fails or times out, list the publications until the newest attempt is published or failed.",accessScope:"write",effect:"mutation",inputSchema:z18.object({projectId:uuidSchema,label:z18.string().trim().min(1).max(120).optional(),notes:z18.string().max(2e4).optional()}).strict(),outputSchema:publishOutputSchema,buildRequest:__name(({projectId,label,notes})=>({method:"POST",path:managementProjectPath(projectId,"/publish"),body:withoutUndefined({label,notes})}),"buildRequest"),projectOutput:__name(body=>publishOutputSchema.parse(responseData(body)),"projectOutput")},"publications.logs":{domain:"publications",summary:"Read a bounded sanitized build-log tail for one publication.",accessScope:"read",effect:"read",inputSchema: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:paginationShape.cursor}).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 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")},"preview.open":{domain:"preview",summary:"Start or reuse one Branch's preview sandbox and return its signed live URL. Pass a work session's workingBranch name to preview unmerged changes; the URL expires at expiresAt.",accessScope:"read",effect:"mutation",inputSchema:z18.object({projectId:uuidSchema,branch:branchNameSchema}).strict(),outputSchema:previewOpenOutputSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",path:managementBranchPath(projectId,branch,"/sandbox")}),"buildRequest"),projectOutput:__name(body=>previewOpenOutputSchema.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 agentQuestionSchema,projectPath2,notificationsOperations,init_notifications=__esm({"../../packages/sdk/dist/operations/notifications.js"(){"use strict";init_common();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={"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(),earned:z22.number().int().optional()})}),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. Pass starter to commit a runnable Fimo site template so sessions, preview and publish work immediately; use nextjs unless the user asks for another framework.",accessScope:"write",effect:"mutation",inputSchema:z23.object({organizationId:z23.string().min(1),displayName:z23.string().min(1).optional(),origin:z23.enum(["scratch","migration"]).optional(),starter:z23.enum(["nextjs","astro","react-router","vite","sveltekit"]).optional()}).strict(),outputSchema:projectResponseSchema,buildRequest:__name(({organizationId,displayName,origin,starter})=>({method:"POST",path:"/management/projects",body:withoutUndefined({organizationId,displayName,origin,starter,source:"cli"})}),"buildRequest")},"projects.transfer":{domain:"projects",summary:"Transfer one Fimo 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 someone by email to collaborate on a Fimo site with full, edit, comment or view access. They receive an email and join the site's members when they accept.",accessScope:"write",effect:"mutation",inputSchema: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,scheduleContextShape,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))},scheduleContextShape={projectId:uuidSchema,branch:branchNameSchema.optional()},schedulesOperations={"schedules.list":{domain:"schedules",summary:"List schedule records for one project Branch.",accessScope:"read",effect:"read",inputSchema:z24.object({...scheduleContextShape}).strict(),outputSchema:z24.array(scheduleSchema),buildRequest:__name(({projectId,branch})=>({method:"GET",context:{branch},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({...scheduleContextShape}).strict(),outputSchema:overviewSchema,buildRequest:__name(({projectId,branch})=>({method:"GET",context:{branch},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({...scheduleContextShape,scheduleId:uuidSchema}).strict(),outputSchema:detailSchema,buildRequest:__name(({projectId,branch,scheduleId})=>({method:"GET",context:{branch},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({...scheduleContextShape,...scheduleWriteShape,enabled:z24.boolean().optional()}).strict(),outputSchema:scheduleSchema,buildRequest:__name(({projectId,branch,...body})=>({method:"POST",context:{branch},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({...scheduleContextShape,scheduleId:uuidSchema,name:scheduleWriteShape.name.optional(),cron:scheduleWriteShape.cron.optional(),command:scheduleWriteShape.command.optional(),secretKeys:scheduleWriteShape.secretKeys.optional()}).strict().refine(({projectId:_projectId,branch:_branch,scheduleId:_scheduleId,...update})=>Object.values(update).some(value=>value!==void 0),{message:"Pass at least one schedule field to update."}),outputSchema:scheduleSchema,buildRequest:__name(({projectId,branch,scheduleId,...update})=>({method:"PATCH",context:{branch},path:managementProjectPath(projectId,`/schedules/${encodeURIComponent(scheduleId)}`),body:withoutUndefined(update)}),"buildRequest"),projectOutput:projectSchedule},"schedules.setEnabled":{domain:"schedules",summary:"Pause or resume a recurring command schedule.",accessScope:"agents",effect:"mutation",inputSchema:z24.object({...scheduleContextShape,scheduleId:uuidSchema,enabled:z24.boolean()}).strict(),outputSchema:scheduleSchema,buildRequest:__name(({projectId,branch,scheduleId,enabled})=>({method:"POST",context:{branch},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({...scheduleContextShape,scheduleId:uuidSchema}).strict(),outputSchema:runSchema,buildRequest:__name(({projectId,branch,scheduleId})=>({method:"POST",context:{branch},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({...scheduleContextShape,scheduleId:uuidSchema,limit:z24.number().int().min(1).max(100).optional(),cursor:paginationShape.cursor,status:runStatusSchema.optional()}).strict(),outputSchema:runsPageSchema,buildRequest:__name(({projectId,branch,scheduleId,limit,cursor,status})=>({method:"GET",context:{branch},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({...scheduleContextShape,runId:uuidSchema}).strict(),outputSchema:runDetailSchema,buildRequest:__name(({projectId,branch,runId})=>({method:"GET",context:{branch},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({...scheduleContextShape,scheduleId:uuidSchema}).strict(),outputSchema:z24.object({ok:z24.literal(!0)}),buildRequest:__name(({projectId,branch,scheduleId})=>({method:"DELETE",context:{branch},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 parent=current.parentBranch??current.parentEnv;current=parent?branches.find(candidate=>(candidate.branch??candidate.env)===parent):void 0}return{branch:input.branch,environment:"preview"}},"projectOutput")}}}});import{z as 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,projectScriptStatusSchema,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(),projectScriptStatusSchema=z27.enum(["passed","failed","unavailable"]),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()}),z27.object({operation:z27.literal("typecheck"),status:projectScriptStatusSchema,output:z27.string()}),z27.object({operation:z27.literal("lint"),status:projectScriptStatusSchema,output: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,index)=>{fieldPick.choice==="pick"&&fieldPick.pickedValue===void 0&&context.addIssue({code:"custom",message:"Pass pickedValue when choice is 'pick'.",path:["fieldPicks",index,"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. At capacity, Fimo cleans expired/leaked work, then the oldest inactive temporary work before refusing. Temporary expiry is a maximum lifetime, not guaranteed retention. Inspect your sessions and close unused work; durable work and active operations are not pressure-reclaimed.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,targetBranch:branchNameSchema.optional(),name:z27.string().trim().min(1).max(120).optional(),goal:z27.string().trim().min(1).max(500).optional()}).strict(),outputSchema:z27.object({session:sessionEnvelopeSchema,adopted:z27.boolean()}),buildRequest:__name(({projectId,targetBranch,name,goal})=>({method:"POST",path:managementProjectPath(projectId,"/sessions"),body:withoutUndefined({targetBranch,name,goal})}),"buildRequest")},"sessions.get":{domain:"sessions",summary:"Get one owned Fimo work session for lifecycle recovery.",accessScope:"code",effect:"read",inputSchema: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:"Discover work sessions. Defaults to mine; project lists authorized work within the connection's client boundary.",accessScope:"code",effect:"read",inputSchema:z27.object({projectId:uuidSchema,status:sessionStatusSchema.optional(),scope:z27.enum(["mine","project"]).optional(),cursor:paginationShape.cursor,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,scope})=>({method:"GET",path:addQuery(managementProjectPath(projectId,"/sessions"),{status,cursor,limit,scope})}),"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.requestReview":{domain:"sessions",summary:"Save current work in one owned session and request human review. Keeps that same session visible and durable, with no expiry. Returns the saved revision and secure review URL. Does not merge, publish or finish a run. Retry unchanged work to reuse its review.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema,summary:z27.string().trim().min(1).max(240),targetBranch:branchNameSchema.optional()}).strict(),outputSchema:z27.object({requested:z27.literal(!0),alreadyRequested:z27.boolean(),reviewId:uuidSchema,reviewUrl:z27.url(),status:z27.literal("pending"),sessionId:uuidSchema,branch:branchNameSchema,targetBranch:branchNameSchema,revision:z27.string().min(1),savedRevision:z27.string().min(1),fingerprint:z27.string().min(1),visibility:z27.literal("user-visible"),retention:z27.literal("durable"),expiresAt:z27.null(),merged:z27.literal(!1),published:z27.literal(!1),links:z27.object({preview:z27.url(),changes:z27.url(),conversation:z27.url().nullable()})}),buildRequest:__name(({projectId,sessionId,summary:summary2,targetBranch})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/review`),body:withoutUndefined({summary:summary2,targetBranch})}),"buildRequest")},"sessions.setRetention":{domain:"sessions",summary:"Add exactly 1\u201330 whole days to the current expiry of temporary work. Repeat for more time; each request is bounded to that range, not the total. Returns actual expiry. Rejects unchanged with invalid_session_retention when the work is not temporary or has no deadline. Does not save, show, merge or publish; eligible early capacity cleanup still applies.",accessScope:"code",effect:"mutation",inputSchema:z27.object({projectId:uuidSchema,sessionId:uuidSchema,additionalDays:z27.number().int().min(1).max(30)}).strict(),outputSchema:sessionEnvelopeSchema.extend({retention:z27.literal("temporary"),visibility:z27.enum(["internal","user-visible"]),expiresAt:z27.iso.datetime()}),buildRequest:__name(({projectId,sessionId,additionalDays})=>({method:"POST",path:managementProjectPath(projectId,`/sessions/${encodeURIComponent(sessionId)}/retention`),body:{additionalDays}}),"buildRequest")},"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', 'schemas_sync', or the project's own 'typecheck' or 'lint' script, which report their output without saving.",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:paginationShape.cursor,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,locale})=>({method:"PUT",path:addQuery(tenantPath(projectId,branch,`/documents/${encodeURIComponent(typeName)}`),{locale}),body:{data}}),"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})=>({method:"POST",path:managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/test`),body:data===void 0?{}:{data}}),"buildRequest"),projectOutput:__name(body=>deliverySchema.parse(responseData(body)),"projectOutput")},"webhooks.listDeliveries":{domain:"webhooks",summary:"List webhook delivery history with cursor pagination; legacy page input remains supported.",accessScope:"read",effect:"read",inputSchema:z30.object({projectId:uuidSchema,webhookId:uuidSchema,...numberedPaginationShape,limit:z30.number().int().min(1).max(100).optional()}).strict().superRefine(numberedPaginationRefinement),outputSchema:deliveriesPageSchema.extend({nextCursor:z30.string().nullable()}),buildRequest:__name(({projectId,webhookId,page,cursor,limit})=>({method:"GET",path:addQuery(managementProjectPath(projectId,`/webhooks/${encodeURIComponent(webhookId)}/deliveries`),{page:paginationPage({page,cursor}),limit})}),"buildRequest"),projectOutput:__name(body=>{let result=deliveriesPageSchema.parse(responseData(body));return{...result,nextCursor:result.pagination.hasMore?String(result.pagination.page+1):null}},"projectOutput")},"webhooks.getDelivery":{domain:"webhooks",summary:"Read one webhook delivery and all of its attempts.",accessScope:"read",effect:"read",inputSchema: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",io:"input"}),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 root=resolveGlobalFimoRoot();if(!root)return null;try{let pkg=JSON.parse(fs5.readFileSync(path5.join(root,"package.json"),"utf8"));return typeof pkg.version=="string"?pkg.version:null}catch{return null}}async function autoUpgradeGlobal(latest){if(!VERSION_PATTERN.test(latest))return!1;let lockDir=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:path52,message}=issue;return`${Array.isArray(path52)&&path52.length>0?`${path52.join(".")}: `:""}${typeof message=="string"?message:"Invalid value"}`}).join("; ")}function formatPartialResult(parsed){if(!parsed.partial||typeof parsed.partial!="object"||Array.isArray(parsed.partial))return null;let partial=parsed.partial,counts=["created","updated","deleted"].flatMap(action=>typeof partial[action]=="number"&&partial[action]>0?[`${partial[action]} ${action}`]:[]);return counts.length>0?`Partial result: ${counts.join(", ")}.`:null}function formatError(status,text,body){if(!text)return String(status);if(body&&typeof body=="object"&&!Array.isArray(body)){let parsed=body;if(typeof parsed.message=="string"&&parsed.message.length>0){let partial=formatPartialResult(parsed);return partial?`${parsed.message} ${partial}`:parsed.message}if(typeof parsed.error=="string"&&parsed.error.length>0)return parsed.error;if(parsed.error&&typeof parsed.error=="object"&&"message"in parsed.error&&typeof parsed.error.message=="string")return parsed.error.message;let zodIssues=formatZodIssues(parsed);if(zodIssues)return zodIssues}return text}async function parseError(response){let text=await response.text(),body;try{body=text?JSON.parse(text):void 0}catch{return{detail:formatError(response.status,text)}}let code2=body&&typeof body=="object"&&!Array.isArray(body)&&typeof body.code=="string"?body.code:void 0;return{detail:formatError(response.status,text,body),code:code2,body}}function throwUnauthorized(cfg,status){try{recordAuthFailure(cfg)}catch{}throw new UnauthorizedError(cfg.apiUrl,status)}async function throwPermissionDenied(cfg,response){let required=[],server={};try{let body=await response.json();required=Array.isArray(body.required)?body.required:body.required?[body.required]:[],typeof body.code=="string"&&body.code&&(server.code=body.code),typeof body.message=="string"&&body.message&&(server.detail=body.message)}catch{}throw new PermissionDeniedError(cfg.apiUrl,required,void 0,server)}function createCliHttpTransport(cfg=loadConfig(),branch){let authHeaders=__name((init,defaultJsonContentType)=>{let headers=new Headers(init.headers),token=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(path52,init={},defaultJsonContentType=!0)=>fimoFetch(`${cfg.apiUrl}${path52}`,{...init,headers:authHeaders(init,defaultJsonContentType)}),"send");return{async request(path52,init={},options={}){let response=await send(path52,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",path52,response.status,error.detail,error.code,error.body)}if(response.status!==204)return await response.json()},async response(path52,init={}){let response=await send(path52,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"} ${path52} 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,headers:!branch&&request.context?.branch!==void 0?{[FIMO_BRANCH_HEADER]:request.context.branch}:void 0,body:request.body===void 0?void 0:JSON.stringify(request.body)},{preserveForbidden:request.preserveForbidden}),"execute")}})}function requiredPermissions(body){let required=typeof body=="object"&&body!==null?body.required:void 0;return Array.isArray(required)?required.filter(value=>typeof value=="string"):typeof required=="string"?[required]:[]}var ApiRequestError,UnauthorizedError,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,path52,status,detail,code2,body){super(`API ${method} ${path52} failed: ${status} ${detail}`),this.name="ApiRequestError",this.method=method,this.path=path52,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;code;detail;constructor(apiUrl,required=[],message,server={}){let detail=required.length?` Missing permission: ${required.join(", ")}.`:"";super(message??`You don't have permission to do this on ${apiUrl}.${detail}`),this.name="PermissionDeniedError",this.apiUrl=apiUrl,this.required=required,this.code=server.code,this.detail=server.detail}},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),wrap=__name(style=>s=>on?`${ANSI[style]}${s}${ANSI.reset}`:s,"wrap");return{enabled:on,bold:wrap("bold"),dim:wrap("dim"),red:wrap("red"),green:wrap("green"),yellow:wrap("yellow"),blue:wrap("blue"),magenta:wrap("magenta"),cyan:wrap("cyan"),gray:wrap("gray")}}var ANSI,palette,init_color=__esm({"src/cli/utils/format/color.ts"(){ANSI={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",gray:"\x1B[90m"};__name(colorEnabled,"colorEnabled");__name(makeColorPalette,"makeColorPalette");palette=makeColorPalette()}});function 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 parent=path7.dirname(dir);if(parent===dir)return null;dir=parent}}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(data,schema){if(data==null)return data;if(schema instanceof z32.ZodOptional||schema instanceof z32.ZodNullable||schema instanceof z32.ZodDefault)return filterUnknownProperties(data,schema.unwrap());if(schema instanceof z32.ZodArray){if(!Array.isArray(data))return data;let itemSchema=schema.unwrap();return data.map(item=>filterUnknownProperties(item,itemSchema))}if(schema instanceof z32.ZodDiscriminatedUnion){if(typeof data!="object"||data===null)return data;let unionSchema=schema,discriminator=unionSchema.def.discriminator,discriminatorValue=data[discriminator],matchingSchema=unionSchema.options.find(option=>{let discriminatorField=option.shape[discriminator];return discriminatorField instanceof z32.ZodLiteral?discriminatorField.def.values.includes(discriminatorValue):!1});return matchingSchema?filterUnknownProperties(data,matchingSchema):data}if(schema instanceof z32.ZodObject){if(typeof data!="object")return data;let shape=schema.shape,result={};for(let key in shape)if(Object.prototype.hasOwnProperty.call(data,key)){let fieldSchema=shape[key],fieldValue2=data[key];result[key]=filterUnknownProperties(fieldValue2,fieldSchema)}if(schema.def.catchall instanceof z32.ZodUnknown)for(let[key,value]of Object.entries(data))key in shape||(result[key]=value);return result}return data}function createObjectDTO(schema){return{schema,from(data){let filtered=filterUnknownProperties(data,schema);return schema.parse(filtered)},fromList(data){return data.map(item=>this.from(item))},safeParse(data){let filtered=filterUnknownProperties(data,schema);return schema.safeParse(filtered)},partial(){let partialSchema=schema.partial();return createObjectDTO(partialSchema)},pick(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),picked=schema.pick(mask);return createObjectDTO(picked)},omit(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),omitted=schema.omit(mask);return createObjectDTO(omitted)}}}function createDiscriminatedUnionDTO(schema){return{schema,from(data){let filtered=filterUnknownProperties(data,schema);return schema.parse(filtered)},fromList(data){return data.map(item=>this.from(item))},safeParse(data){let filtered=filterUnknownProperties(data,schema);return schema.safeParse(filtered)}}}function createDTO(schema){if(schema instanceof 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_UPLOAD_FILE_SIZE_BYTES,MAX_DOCUMENT_SIZE_BYTES,MAX_AUDIO_SIZE_BYTES,MAX_IMAGE_SIZE_BYTES,MAX_VIDEO_SIZE_BYTES,MAX_ARCHIVE_SIZE_BYTES,MAX_MODEL_SIZE_BYTES,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES,MODEL_MEDIA_TYPE,AttachmentModelMediaTypeSchema,MODEL_MIME_TYPES,MODEL_RENDER_VIEW_ANGLES,AttachmentModelRenderRequestSchema,AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema,AttachmentModelRenderResponseSchema,AttachmentModelRenderMeterSchema,ATTACHMENT_TYPES,ATTACHMENT_MIME_TYPES,ATTACHMENT_IMAGE_MIME_TYPES,ATTACHMENT_DOCUMENT_MIME_TYPES,ATTACHMENT_ARCHIVE_MIME_TYPES,ATTACHMENT_AUDIO_MIME_TYPES,ATTACHMENT_VIDEO_MIME_TYPES,ATTACHMENT_ACCEPT_EXTENSIONS,ATTACHMENT_ACCEPT_STRING,ATTACHMENT_DROPZONE_ACCEPT,EXTENSION_MIME_TYPES,init_attachments=__esm({"../../packages/api-contracts/dist/esm/types/attachments.js"(){"use strict";MB=1024*1024,MAX_UPLOAD_FILE_SIZE_BYTES=50*MB,MAX_DOCUMENT_SIZE_BYTES=5*MB,MAX_AUDIO_SIZE_BYTES=10*MB,MAX_IMAGE_SIZE_BYTES=20*MB,MAX_VIDEO_SIZE_BYTES=20*MB,MAX_ARCHIVE_SIZE_BYTES=20*MB,MAX_MODEL_SIZE_BYTES=20*MB,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES=20*MB,MODEL_MEDIA_TYPE={GLB:"model/gltf-binary",GLTF:"model/gltf+json",FBX:"model/fbx",OBJ:"model/obj",STL:"model/stl",PLY:"model/ply"},AttachmentModelMediaTypeSchema=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_ANALYTICS_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_ANALYTICS_ENV_KEYS=["VITE_ENABLE_ANALYTICS","NEXT_PUBLIC_FIMO_ENABLE_ANALYTICS","NUXT_PUBLIC_FIMO_ENABLE_ANALYTICS","PUBLIC_FIMO_ENABLE_ANALYTICS"],FIMO_PREVIEW_SCRIPT_ENV_KEYS=["VITE_PREVIEW_SCRIPT_URL","VITE_FIMO_PREVIEW_SCRIPT_URL","NEXT_PUBLIC_FIMO_PREVIEW_SCRIPT_URL","NUXT_PUBLIC_FIMO_PREVIEW_SCRIPT_URL","PUBLIC_FIMO_PREVIEW_SCRIPT_URL","FIMO_PREVIEW_SCRIPT_URL"],FIMO_MANAGED_PROJECT_ENV_KEYS=["FIMO_API_URL","FIMO_API_TOKEN","FIMO_PROJECT_ID","FIMO_ENV","NEXT_PUBLIC_FIMO_ENV","FIMO_AGENT_SESSION","FIMO_DATA_SOURCES",...FIMO_CONTENT_API_ENV_KEYS,...FIMO_PREVIEW_SCRIPT_ENV_KEYS,...FIMO_ANALYTICS_ENV_KEYS,"VITE_FIMO_BRANCH","VITE_FIMO_IMAGE_HOSTS"],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})}});var init_realtime=__esm({"../../packages/api-contracts/dist/esm/types/realtime.js"(){"use strict";init_env()}});var init_realtime_room=__esm({"../../packages/api-contracts/dist/esm/types/realtime-room.js"(){"use strict";init_env()}});import{z as z40}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=z40.preprocess(referenceValuePreprocess,z40.object({documentId:z40.uuid()})),ReferenceInputValueSchema=z40.preprocess(referenceValuePreprocess,z40.union([z40.object({documentId:z40.uuid()}),z40.object({slug:z40.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=z40.preprocess(polymorphicReferenceValuePreprocess,z40.object({contentType:z40.string().min(1),documentId:z40.uuid()})),PolymorphicReferenceInputValueSchema=z40.preprocess(polymorphicReferenceValuePreprocess,z40.union([z40.object({contentType:z40.string().min(1),documentId:z40.uuid()}),z40.object({contentType:z40.string().min(1),slug:z40.string().min(1)})]))}});import{z as z41}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,path52){let conditionPath=[...path52,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,path52)=>{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,path52));if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...path52,fieldName,variant.uid]);else walk(field.schema.fields,[...path52,fieldName])}},"walk");return walk(fields,[]),problems}function isBlocksUnion(schema){return"oneOf"in schema}function walkContentFields(fields,visit2){let walk=__name((currentFields,path52,structuredDepth,insideStructuredContent)=>{for(let[fieldName,field]of Object.entries(currentFields)){let fieldPath=[...path52,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=z41.union([z41.object({field:z41.string().min(1),equals:z41.union([z41.string(),z41.number(),z41.boolean()])}).strict(),z41.object({field:z41.string().min(1),in:z41.array(z41.union([z41.string(),z41.number(),z41.boolean()])).min(1)}).strict()]),commonFieldShape={label:z41.string().min(1).optional(),description:z41.string().optional(),group:z41.union([z41.string().min(1),z41.array(z41.string().min(1)).min(1)]).optional(),editable:z41.boolean().optional(),required:z41.boolean().optional(),default:z41.unknown().optional(),showIf:z41.union([showIfClauseSchema,z41.array(showIfClauseSchema).min(1)]).optional(),showIfAny:z41.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=z41.object({...commonFieldShape,type:z41.enum(["string","text","richtext","media","number","boolean","date","datetime","json"]),min:z41.number().optional(),max:z41.number().optional(),minLength:z41.number().int().nonnegative().optional(),maxLength:z41.number().int().nonnegative().optional(),regex:z41.string().optional(),multiple:z41.boolean().optional(),allowedMimeTypes:z41.array(z41.string()).optional(),options:z41.array(z41.string().min(1)).min(1).optional(),unique:z41.boolean().optional(),i18n:z41.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=z41.object({...commonFieldShape,type:z41.literal("reference"),target:z41.string().regex(CONTENT_TYPE_NAME_PATTERN).optional(),targets:z41.array(z41.string().regex(CONTENT_TYPE_NAME_PATTERN)).min(1).optional(),many:z41.boolean().optional(),i18n:z41.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=z41.lazy(()=>contentFieldDefinitionSchema);__name(getConditionDefinition,"getConditionDefinition");__name(getConditionValues,"getConditionValues");__name(collectClauseProblems,"collectClauseProblems");__name(collectConditionProblems,"collectConditionProblems");blockFieldsSchema=z41.record(z41.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=z41.object({uid:z41.string().regex(CONTENT_TYPE_NAME_PATTERN),label:z41.string().min(1),description:z41.string().optional(),fields:blockFieldsSchema}).strict(),fixedBlocksSchema=z41.object({fields:blockFieldsSchema}).strict(),blocksSchema=z41.object({oneOf:z41.array(blockVariantSchema).min(1).max(MAX_BLOCK_VARIANTS)}).strict().superRefine((schema,ctx)=>{let seen=new Set;for(let[index,variant]of schema.oneOf.entries())seen.has(variant.uid)&&ctx.addIssue({code:"custom",path:["oneOf",index,"uid"],message:"Variant UIDs must be unique."}),seen.add(variant.uid)}),blocksFieldSchema=z41.object({...commonFieldShape,type:z41.literal("blocks"),min:z41.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),max:z41.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),schema:z41.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=z41.discriminatedUnion("type",[scalarFieldSchema,referenceFieldSchema,blocksFieldSchema]);__name(isBlocksUnion,"isBlocksUnion");__name(walkContentFields,"walkContentFields")}});import{z as z42}from"zod";var AUDIT_ACTIONS,AuditActionSchema,AUDIT_OUTCOMES,AuditOutcomeSchema,AUDIT_ACTOR_KINDS,AuditActorKindSchema,init_audit_log=__esm({"../../packages/api-contracts/dist/esm/types/audit-log.js"(){"use strict";AUDIT_ACTIONS=["env_create","env_delete","env_sync","capability_check","shell_exec","git_push","git_tag","git_merge","fimo_deploy","merge_decision","session_start","session_end","cost_breach","trigger_fire","schedule_notification_change","notification_preference_change","cutover_step","agent_delegate","version_restore","project_transfer","project_takedown","project_takedown_lift","organization_takedown","organization_takedown_lift","ops_access_change","ops_service_token_change","ops_project_search","ops_project_inspect","ops_project_chat_read","ops_recent_chat_read","ops_sentry_issue_change","ops_sentry_read","ops_logs_read","ops_trace_read","ops_posthog_milestones_read","ops_agent_trace_list","ops_agent_trace_read","ops_agent_trace_stats","ops_agent_health_read","ops_data_usage_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_intake_read","ops_pylon_queue_read","ops_support_report_change","ops_billing_read","ops_billing_agent_runtime_activate","ops_billing_entitlements_sync","ops_billing_cache_invalidate","ops_billing_dispatch_discard","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=z42.enum(AUDIT_ACTIONS),AUDIT_OUTCOMES=["success","denied","error"],AuditOutcomeSchema=z42.enum(AUDIT_OUTCOMES),AUDIT_ACTOR_KINDS=["user","agent","system"],AuditActorKindSchema=z42.enum(AUDIT_ACTOR_KINDS)}});import{z as z43}from"zod";var OPS_BACKEND_PROFILES,OpsBackendProfileSchema,OPS_PERMISSIONS,OpsPermissionSchema,OPS_PERMISSION_PRESETS,OPS_SERVICE_PERMISSION_PRESETS,OpsAccessGrantInputSchema,LegacyAdoptionMutationInputSchema,LegacyAdoptionAbandonInputSchema,LegacyAdoptionActivationInputSchema,OpsServiceTokenInputSchema,OpsCustomerProjectInputSchema,OPS_INVESTIGATION_STATUSES,OpsInvestigationStatusSchema,OpsInvestigationCreateInputSchema,OpsInvestigationUpdateInputSchema,OPS_KNOWN_ISSUE_STATUSES,OpsKnownIssueStatusSchema,OpsKnownIssueCreateInputSchema,OpsKnownIssueUpdateInputSchema,OPS_VALIDATION_OUTCOMES,OpsValidationOutcomeSchema,OpsValidationRunInputSchema,OpsNotificationPreviewInputSchema,OpsPylonIssueIdSchema,OpsPylonReasonSchema,OpsPylonMessageSchema,OpsPylonMessageIdSchema,OpsPylonEmailListSchema,OpsPylonResolveInputSchema,OpsPylonNoteInputSchema,OpsPylonReplyPreviewInputSchema,OpsSentryIssueIdSchema,OpsSentryResolveInputSchema,OpsTraceIdSchema,OpsTraceReadInputSchema,OpsBraintrustSpanIdSchema,OpsAgentInvocationStatusSchema,OpsAgentTraceListInputSchema,OpsAgentTraceSpansInputSchema,OpsSpanBodyEdgeSchema,OpsAgentTraceSpanInputSchema,OpsAgentTraceMessagesInputSchema,OpsAgentHealthGroupBySchema,OpsAgentHealthInputSchema,OPS_DATA_USAGE_MAX_WINDOW_MS,OpsDataUsageGroupBySchema,OpsDataUsageInputSchema,OPS_CONTEXT_HEALTH_MAX_WINDOW_MS,OpsContextHealthInputSchema,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,OPS_POSTHOG_EVENTS,OPS_POSTHOG_QUESTION,OpsPosthogTimestampSchema,OpsPosthogMilestonesInputSchema,OpsPosthogFailureCodeSchema,OpsPosthogCoverageSchema,OpsPosthogCountsSchema,OpsPosthogMilestonesResponseSchema,OpsSessionHealthInputSchema,OpsProjectAnalyticsHealthInputSchema,init_ops=__esm({"../../packages/api-contracts/dist/esm/types/ops.js"(){"use strict";init_env();OPS_BACKEND_PROFILES=["local","staging","prod"],OpsBackendProfileSchema=z43.enum(OPS_BACKEND_PROFILES),OPS_PERMISSIONS=["ops:platform:legacy-adoption","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:posthog: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=z43.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.filter(permission=>permission!=="ops:platform:legacy-adoption")},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=z43.object({permissions:z43.array(OpsPermissionSchema).min(1),backendProfiles:z43.array(OpsBackendProfileSchema).min(1),enabled:z43.boolean().default(!0)}),LegacyAdoptionMutationInputSchema=z43.object({reason:z43.string().trim().min(1).max(1e3),confirmProduction:z43.boolean().default(!1)}),LegacyAdoptionAbandonInputSchema=LegacyAdoptionMutationInputSchema.extend({recordId:z43.uuid()}),LegacyAdoptionActivationInputSchema=LegacyAdoptionMutationInputSchema.extend({oldDeployment:z43.string().trim().min(1).max(200),legacyWritersStopped:z43.literal(!0)}),OpsServiceTokenInputSchema=z43.object({name:z43.string().trim().min(1).max(120),permissions:z43.array(OpsPermissionSchema).min(1),backendProfiles:z43.array(OpsBackendProfileSchema).min(1),expiresAt:z43.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=z43.object({importanceReason:z43.string().trim().min(1).max(1e3),ownerUserId:z43.string().trim().min(1).nullable().optional(),framework:z43.string().trim().max(120).nullable().optional(),packageManager:z43.enum(["npm","pnpm","yarn","bun"]).nullable().optional(),notes:z43.string().trim().max(5e3).nullable().optional()}),OPS_INVESTIGATION_STATUSES=["open","investigating","awaiting_approval","resolved","monitoring","closed"],OpsInvestigationStatusSchema=z43.enum(OPS_INVESTIGATION_STATUSES),OpsInvestigationCreateInputSchema=z43.object({projectId:z43.uuid(),title:z43.string().trim().min(1).max(240),userReport:z43.string().trim().max(1e4).nullable().optional()}),OpsInvestigationUpdateInputSchema=z43.object({status:OpsInvestigationStatusSchema.optional(),hypothesis:z43.string().trim().max(1e4).nullable().optional(),outcome:z43.string().trim().max(1e4).nullable().optional(),evidence:z43.array(z43.record(z43.string(),z43.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=z43.enum(OPS_KNOWN_ISSUE_STATUSES),OpsKnownIssueCreateInputSchema=z43.object({fingerprint:z43.string().trim().min(1).max(240),title:z43.string().trim().min(1).max(240),description:z43.string().trim().min(1).max(1e4),affectedVersions:z43.array(z43.string().trim().min(1).max(120)).max(100).default([]),detectionQueries:z43.array(z43.string().trim().min(1).max(2e3)).max(50).default([]),fixedVersion:z43.string().trim().min(1).max(64).nullable().optional(),workaround:z43.string().trim().min(1).max(1e4).nullable().optional(),status:OpsKnownIssueStatusSchema.default("open")}),OpsKnownIssueUpdateInputSchema=OpsKnownIssueCreateInputSchema.omit({fingerprint:!0}).extend({affectedVersions:z43.array(z43.string().trim().min(1).max(120)).max(100),detectionQueries:z43.array(z43.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=z43.enum(OPS_VALIDATION_OUTCOMES),OpsValidationRunInputSchema=z43.object({changeReference:z43.string().trim().min(1).max(500),outcome:OpsValidationOutcomeSchema,summary:z43.string().trim().min(1).max(1e4),evidence:z43.array(z43.record(z43.string(),z43.unknown())).max(100).default([])}),OpsNotificationPreviewInputSchema=z43.object({recipientEmail:z43.email().optional(),subject:z43.string().trim().min(1).max(200).default("An update from Fimo"),message:z43.string().trim().min(1).max(5e3),locale:z43.string().trim().min(2).max(20),reason:z43.string().trim().min(1).max(1e3),acknowledgePolicy:z43.literal(!0)}),OpsPylonIssueIdSchema=z43.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsPylonReasonSchema=z43.string().trim().min(1).max(1e3),OpsPylonMessageSchema=z43.string().trim().min(1).max(5e3),OpsPylonMessageIdSchema=z43.string().trim().min(1).max(255),OpsPylonEmailListSchema=z43.array(z43.email()).max(50).default([]),OpsPylonResolveInputSchema=z43.object({reason:OpsPylonReasonSchema}),OpsPylonNoteInputSchema=z43.object({message:OpsPylonMessageSchema,reason:OpsPylonReasonSchema}),OpsPylonReplyPreviewInputSchema=z43.object({messageId:OpsPylonMessageIdSchema,message:OpsPylonMessageSchema,toEmails:OpsPylonEmailListSchema,ccEmails:OpsPylonEmailListSchema,bccEmails:OpsPylonEmailListSchema,reason:OpsPylonReasonSchema,acknowledgePolicy:z43.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=z43.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsSentryResolveInputSchema=z43.object({reason:z43.string().trim().min(1).max(1e3)}),OpsTraceIdSchema=z43.string().trim().regex(/^[a-fA-F0-9]{32}$/).transform(value=>value.toLowerCase()),OpsTraceReadInputSchema=z43.object({projectId:z43.uuid(),from:z43.coerce.date(),to:z43.coerce.date(),reason:z43.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=z43.string().trim().regex(/^[A-Za-z0-9_-]{1,200}$/),OpsAgentInvocationStatusSchema=z43.enum(["planned","running","finished","cancelled","errored","refused"]),OpsAgentTraceListInputSchema=z43.object({projectId:z43.uuid().optional(),organizationId:z43.string().trim().min(1).max(255).optional(),agentKey:z43.string().trim().min(1).max(120).optional(),threadId:z43.uuid().optional(),status:OpsAgentInvocationStatusSchema.optional(),since:z43.coerce.date().optional(),minCostUsd:z43.coerce.number().min(0).optional(),tracedOnly:z43.coerce.boolean().default(!1),limit:z43.coerce.number().int().min(1).max(100).default(25),reason:z43.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=z43.object({limit:z43.coerce.number().int().min(1).max(500).default(200),reason:z43.string().trim().min(1).max(1e3)}),OpsSpanBodyEdgeSchema=z43.enum(["start","end"]).default("start"),OpsAgentTraceSpanInputSchema=z43.object({maxChars:z43.coerce.number().int().min(500).max(2e5).default(2e4),edge:OpsSpanBodyEdgeSchema,reason:z43.string().trim().min(1).max(1e3)}),OpsAgentTraceMessagesInputSchema=z43.object({messageIndex:z43.coerce.number().int().min(0).optional(),maxChars:z43.coerce.number().int().min(500).max(2e5).default(2e4),reason:z43.string().trim().min(1).max(1e3)}),OpsAgentHealthGroupBySchema=z43.enum(["agent","status","branch","project","day"]),OpsAgentHealthInputSchema=z43.strictObject({projectId:z43.uuid().optional(),organizationId:z43.string().trim().min(1).max(255).optional(),branch:BranchSchema.optional(),agentKey:z43.string().trim().min(1).max(120).optional(),since:z43.coerce.date(),until:z43.coerce.date().optional(),groupBy:OpsAgentHealthGroupBySchema.default("agent"),includeChildren:z43.coerce.boolean().default(!1),limit:z43.coerce.number().int().min(1).max(200).default(50),reason:z43.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OPS_DATA_USAGE_MAX_WINDOW_MS=10080*60*1e3,OpsDataUsageGroupBySchema=z43.enum(["operation","provider","day","organization","agent"]),OpsDataUsageInputSchema=z43.strictObject({organizationId:z43.string().trim().min(1).max(255).optional(),since:z43.coerce.date(),until:z43.coerce.date().optional(),groupBy:OpsDataUsageGroupBySchema.default("operation"),limit:z43.coerce.number().int().min(1).max(200).default(50),reason:z43.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>(input.until??new Date).getTime()-input.since.getTime()<=OPS_DATA_USAGE_MAX_WINDOW_MS,{path:["since"],message:"data usage window cannot exceed 7 days"}),OPS_CONTEXT_HEALTH_MAX_WINDOW_MS=10080*60*1e3,OpsContextHealthInputSchema=z43.object({projectId:z43.uuid().optional(),since:z43.coerce.date(),until:z43.coerce.date().optional(),limit:z43.coerce.number().int().min(1).max(1e3).default(500),reason:z43.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=z43.enum(["model","provider","span","type"]),OpsSpanTypeSchema=z43.enum(["llm","tool","function","task","score","eval"]),OpsAgentTraceStatsInputSchema=z43.object({since:z43.coerce.date(),until:z43.coerce.date().optional(),groupBy:OpsAgentTraceStatsGroupBySchema.default("model"),spanType:OpsSpanTypeSchema.optional(),slowerThanSeconds:z43.coerce.number().min(0).optional(),limit:z43.coerce.number().int().min(1).max(200).default(50),reason:z43.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=z43.object({since:z43.coerce.date(),until:z43.coerce.date().default(()=>new Date),model:z43.string().trim().min(1).max(120).optional(),provider:z43.string().trim().min(1).max(120).optional(),spanType:OpsSpanTypeSchema.optional(),before:z43.coerce.date().optional(),limit:z43.coerce.number().int().min(1).max(1e3).default(500),sampleChars:z43.coerce.number().int().min(200).max(2e4).default(1200),correlateInvocations:z43.boolean().default(!1),correlationLimit:z43.coerce.number().int().min(1).max(100).default(25),reason:z43.string().trim().min(1).max(1e3)}).refine(input=>input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}).refine(input=>input.until.getTime()-input.since.getTime()<=10080*60*1e3,{path:["since"],message:"provider error windows cannot exceed 7 days"}).refine(input=>!input.before||input.before>=input.since&&input.before<=input.until,{path:["before"],message:"before must be within the requested window"}),OpsBillingCacheInvalidateInputSchema=z43.object({reason:z43.string().trim().min(1).max(1e3)}),OpsBillingEntitlementSyncInputSchema=z43.object({reason:z43.string().trim().min(1).max(500),apply:z43.boolean().default(!1),confirmProduction:z43.boolean().default(!1),cursor:z43.string().min(1).optional(),batchSize:z43.number().int().min(1).max(100).default(50),concurrency:z43.number().int().min(1).max(10).default(2)}),OPS_PROJECT_OPERATIONS=["runtime.bump","preview.restart","production.publish","agent-branch.discard"],OpsProjectOperationKindSchema=z43.enum(OPS_PROJECT_OPERATIONS),ExactVersionSchema=z43.string().trim().regex(/^\d+\.\d+\.\d+$/,"Expected an exact version such as 0.11.0"),OpsProjectOperationPlanInputSchema=z43.discriminatedUnion("kind",[z43.object({kind:z43.literal("runtime.bump"),targetVersion:ExactVersionSchema}),z43.object({kind:z43.literal("preview.restart")})]),OPS_MIGRATIONS=["project.v3-to-v4"],OpsMigrationIdSchema=z43.enum(OPS_MIGRATIONS),OPS_MIGRATION_PLAN_STATUSES=["applicable","not_applicable","unknown"],OpsMigrationPlanStatusSchema=z43.enum(OPS_MIGRATION_PLAN_STATUSES),OPS_MIGRATION_CHANGE_ACTIONS=["create","rewrite","delete"],OpsMigrationChangeActionSchema=z43.enum(OPS_MIGRATION_CHANGE_ACTIONS),OpsMigrationDryRunInputSchema=z43.object({migrationId:OpsMigrationIdSchema,projectEnv:z43.string().trim().min(1).max(255).default("main"),reason:z43.string().trim().min(1).max(1e3)}),OpsProjectFilePathSchema=z43.string().trim().min(1).max(1024),OpsProjectFileReasonSchema=z43.string().trim().min(1).max(1e3),OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES=["pnpm-lock.yaml","bun.lockb","bun.lock","yarn.lock","package-lock.json"],OpsProjectPackageManagerInspectInputSchema=z43.object({reason:OpsProjectFileReasonSchema}),OpsProjectFileReadInputSchema=z43.object({path:OpsProjectFilePathSchema,reason:OpsProjectFileReasonSchema}),OpsProjectFileGlobInputSchema=z43.object({pattern:z43.string().min(1).max(300).optional(),limit:z43.coerce.number().int().min(1).max(2e3).default(2e3),reason:OpsProjectFileReasonSchema}),OpsProjectFileGrepInputSchema=z43.object({pattern:z43.string().min(1).max(200),include:z43.string().min(1).max(300).optional(),caseInsensitive:z43.boolean().default(!1),maxMatches:z43.coerce.number().int().min(1).max(200).default(100),reason:OpsProjectFileReasonSchema}),OpsProjectFileWritePlanInputSchema=z43.object({path:OpsProjectFilePathSchema,content:z43.string().max(256*1024),overwrite:z43.boolean().default(!1),reason:OpsProjectFileReasonSchema}),OpsProjectFileWriteApplyInputSchema=OpsProjectFileWritePlanInputSchema.extend({planHash:z43.string().trim().length(64),consentReference:z43.string().trim().min(1).max(200).optional()}),OpsProjectOperationApplyInputSchema=z43.intersection(OpsProjectOperationPlanInputSchema,z43.object({planHash:z43.string().trim().length(64),reason:z43.string().trim().min(1).max(1e3),consentReference:z43.string().trim().min(1).max(200).optional()})),OpsProjectPublishApplyInputSchema=z43.object({planHash:z43.string().trim().length(64),reason:z43.string().trim().min(1).max(1e3),consentReference:z43.string({error:"Publishing on a customer's behalf requires a recorded consent reference"}).trim().min(1).max(200)}),OPS_POSTHOG_EVENTS=["didCreateProject","didInitiateProject","didDeploy","didDeployProject","didFirstPublish"],OPS_POSTHOG_QUESTION="project-milestone-counts-v1",OpsPosthogTimestampSchema=z43.iso.datetime({offset:!0}).refine(value=>Number.isFinite(Date.parse(value))&&!/\.\d{3}\d*[1-9]\d*(?:Z|[+-]\d{2}:\d{2})$/.test(value),"A finite timestamp with at most millisecond precision is required").transform(value=>new Date(value).toISOString()),OpsPosthogMilestonesInputSchema=z43.strictObject({projectId:z43.uuid().transform(value=>value.toLowerCase()),from:OpsPosthogTimestampSchema,to:OpsPosthogTimestampSchema,reason:z43.string().trim().min(1).max(1e3)}).refine(value=>{let duration=Date.parse(value.to)-Date.parse(value.from);return duration>0&&duration<=1440*60*1e3},{message:"Window must satisfy from < to and be at most 24 hours",path:["to"]}),OpsPosthogFailureCodeSchema=z43.enum(["not_configured","unauthenticated","forbidden","backend_mismatch","invalid_request","provider_auth_failed","provider_project_unavailable","rate_limited","timeout","provider_error","capability_unavailable","invalid_response","incomplete","pending","audit_unavailable"]),OpsPosthogCoverageSchema=z43.strictObject({completeAggregate:z43.boolean(),truncated:z43.boolean().nullable(),sampled:z43.boolean().nullable(),pagination:z43.enum(["not_applicable","unexpected","unknown"]),providerFreshnessKnown:z43.literal(!1),providerAsOf:z43.null(),projectFilter:z43.literal("exact properties.projectId equality"),environmentFilterSupported:z43.literal(!1),excludesMissingProjectId:z43.literal(!0),transport:z43.literal("server"),consentCoverage:z43.literal("server-policy-not-browser-consent"),operationDedupeAvailable:z43.literal(!1)}),OpsPosthogCountsSchema=z43.array(z43.strictObject({event:z43.enum(OPS_POSTHOG_EVENTS),captureCount:z43.number().int().min(0).max(Number.MAX_SAFE_INTEGER)})).length(5).refine(counts=>counts.every((entry,i)=>entry.event===OPS_POSTHOG_EVENTS[i])),OpsPosthogMilestonesResponseSchema=z43.strictObject({schemaVersion:z43.literal(1),questionId:z43.literal(OPS_POSTHOG_QUESTION),backendProfile:OpsBackendProfileSchema,projectId:z43.uuid().nullable(),projectEnvironment:z43.literal("mixed_or_unrecorded"),window:z43.strictObject({from:z43.iso.datetime(),to:z43.iso.datetime(),bounds:z43.literal("[from,to)")}).nullable(),source:z43.literal("posthog"),sourceStatus:z43.enum(["available","unavailable","forbidden"]),failureCode:OpsPosthogFailureCodeSchema.nullable(),queriedAt:z43.iso.datetime(),auditId:z43.uuid().nullable(),counts:OpsPosthogCountsSchema.nullable(),coverage:OpsPosthogCoverageSchema}).superRefine((value,ctx)=>{(value.sourceStatus==="available"?value.counts===null||value.failureCode!==null||value.auditId===null||value.projectId===null||value.window===null||!value.coverage.completeAggregate||value.coverage.sampled!==!1||value.coverage.truncated!==!1||value.coverage.pagination!=="not_applicable":value.counts!==null||value.failureCode===null||value.coverage.completeAggregate)&&ctx.addIssue({code:"custom",message:"Invalid aggregate availability"})}),OpsSessionHealthInputSchema=z43.object({reason:z43.string().trim().min(1).max(1e3),limit:z43.number().int().min(1).max(100).default(25),checkProvider:z43.boolean().default(!1)}),OpsProjectAnalyticsHealthInputSchema=z43.object({branch:z43.string().trim().min(1).max(255),canaryPath:z43.string().max(300).regex(/^\/[a-zA-Z0-9/_-]*\?fimo_monitor=[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/).optional(),since:z43.iso.datetime({offset:!0}),until:z43.iso.datetime({offset:!0}),reason:z43.string().trim().min(1).max(1e3)}).strict().refine(input=>Date.parse(input.since)<=Date.parse(input.until),{path:["since"],message:"since must be before or equal to until"}).refine(input=>Date.parse(input.until)-Date.parse(input.since)<=10080*60*1e3,{path:["since"],message:"analytics health window cannot exceed 7 days"}).refine(input=>Date.parse(input.until)<=Date.now(),{path:["until"],message:"until cannot be in the future"}).transform(({since,until,...input})=>({...input,since:new Date(since),until:new Date(until)}))}});import{z as z44}from"zod";function getChatFormOptionLabels(body){switch(body.type){case"choices":return body.actions.map(action=>action.label);case"cards":return body.items.map(item=>item.title);case"table":return body.rows.map(row2=>row2.cells[0]??"");case"assets":return body.items.map(item=>item.label??item.alt);case"capabilities":return body.items.map(item=>item.label);case"text":return[]}}var BlockSayActionSchema,BlockActionSchema,BlockAppActionSchema,BlockBaseSchema,ChoicesBlockSchema,TableRowTargetSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,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=z44.object({kind:z44.literal("say"),label:z44.string().trim().min(1).max(40,"Button labels must be 40 characters or fewer."),description:z44.string().min(1).max(240).optional(),message:z44.string().trim().min(1,"Every say button needs the sentence the user is saying by clicking.").max(2e3),style:z44.enum(["primary","default","ghost"]).optional()}),BlockActionSchema=BlockSayActionSchema,BlockAppActionSchema=z44.discriminatedUnion("command",[z44.object({kind:z44.literal("app"),command:z44.literal("publish")}).strict(),z44.object({kind:z44.literal("app"),command:z44.literal("connect"),integrationKey:z44.string().trim().min(1).max(80)}).strict()]),BlockBaseSchema=z44.object({fallback:z44.string().trim().min(1,"Every block needs a fallback line for clients that cannot render it.").max(500),title:z44.string().min(1).max(80).optional()}),ChoicesBlockSchema=BlockBaseSchema.extend({type:z44.literal("choices"),text:z44.string().max(500).optional(),actions:z44.array(BlockActionSchema).min(2,"A choices block needs 2 to 4 buttons.").max(4,"A choices block needs 2 to 4 buttons.")}),TableRowTargetSchema=z44.discriminatedUnion("kind",[z44.object({kind:z44.literal("entry"),collection:z44.string().min(1).max(80),entryId:z44.string().min(1).max(120)}),z44.object({kind:z44.literal("asset"),assetId:z44.string().min(1).max(120)}),z44.object({kind:z44.literal("url"),url:z44.url({protocol:/^https$/}).max(2e3)})]),TableBlockSchema=BlockBaseSchema.extend({type:z44.literal("table"),columns:z44.array(z44.object({label:z44.string().min(1).max(24)})).min(2).max(4),rows:z44.array(z44.object({cells:z44.array(z44.string().max(80)).min(2).max(4),target:TableRowTargetSchema.optional()})).min(1).max(8)}).superRefine((table,ctx)=>{table.rows.forEach((row2,index)=>{row2.cells.length!==table.columns.length&&ctx.addIssue({code:"custom",path:["rows",index,"cells"],message:`Every table row needs exactly ${table.columns.length} cells, one for each column.`})})}),CardsBlockSchema=BlockBaseSchema.extend({type:z44.literal("cards"),layout:z44.enum(["rail","stack"]).optional(),items:z44.array(z44.object({title:z44.string().min(1).max(60),subtitle:z44.string().min(1).max(120).optional(),imageUrl:z44.url({protocol:/^https$/}).max(2e3).optional(),action:BlockSayActionSchema.optional()})).min(2).max(6)}),EntryBlockSchema=BlockBaseSchema.extend({type:z44.literal("entry"),label:z44.string().min(1).max(80),collection:z44.string().min(1).max(80),entryId:z44.string().min(1).max(120),path:z44.string().min(1).max(120).optional()}),AssetsBlockSchema=BlockBaseSchema.extend({type:z44.literal("assets"),items:z44.array(z44.object({url:z44.url({protocol:/^https$/}).max(2e3),alt:z44.string().min(1).max(120),label:z44.string().min(1).max(60).optional()})).min(1).max(6)}),CalloutBlockSchema=BlockBaseSchema.extend({type:z44.literal("callout"),title:z44.string().min(1).max(80),text:z44.string().min(1).max(240),action:BlockAppActionSchema}).strict(),StatBlockSchema=BlockBaseSchema.extend({type:z44.literal("stat"),items:z44.array(z44.object({label:z44.string().min(1).max(24),value:z44.string().min(1).max(16),delta:z44.string().min(1).max(12).optional(),tone:z44.enum(["up","down","flat"]).optional()})).min(1).max(4)}),ChartBlockSchema=BlockBaseSchema.extend({type:z44.literal("chart"),unit:z44.string().min(1).max(12).optional(),points:z44.array(z44.object({label:z44.string().min(1).max(12),value:z44.number().finite().min(0).max(1e9)})).min(2).max(12)}),ChatDisplayBlockSchema=z44.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema]),TextBlockSchema=BlockBaseSchema.extend({type:z44.literal("text"),placeholder:z44.string().min(1).max(120).optional(),multiline:z44.boolean().optional()}).strict(),ChatFormStepIdSchema=z44.string().regex(/^[a-z0-9][a-z0-9_-]{0,39}$/,"Step ids are lowercase letters, digits, hyphen, or underscore (max 40)."),CapabilityRequestSchema=z44.object({id:ChatFormStepIdSchema,token:z44.string().regex(/^[a-z][a-z0-9_]*:[a-z][a-z0-9_]*(?::[a-z][a-z0-9_]*)?$/,"Capability tokens are verb:noun[:qualifier]."),label:z44.string().trim().min(1).max(60),reason:z44.string().trim().min(1).max(240)}).strict(),CapabilitiesBlockSchema=BlockBaseSchema.extend({type:z44.literal("capabilities"),items:z44.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=z44.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,AssetsBlockSchema,TextBlockSchema,CapabilitiesBlockSchema]);__name(getChatFormOptionLabels,"getChatFormOptionLabels");ChatFormStepSchema=z44.object({id:ChatFormStepIdSchema.optional(),question:z44.string().min(1).max(500),header:z44.string().min(1).max(25),body:ChatFormBodySchema,multiSelect:z44.boolean().optional(),recommended:z44.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:z44.literal("form"),steps:z44.array(ChatFormStepSchema).min(1).max(4)}),ChatBlockSchema=z44.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,FormBlockSchema]),ChatBlockToolInputSchema=z44.object({block:ChatBlockSchema}),ChatFormAnswerItemSchema=z44.object({stepId:ChatFormStepIdSchema.optional(),header:z44.string().min(1).max(25),question:z44.string().min(1).max(500),answer:z44.string().min(1),selectedLabels:z44.array(z44.string().min(1).max(120)).max(8),freeText:z44.string(),skipped:z44.boolean()}),ChatFormAnswerMetadataSchema=z44.object({toolCallId:z44.string().max(255).optional(),shortTitle:z44.string().max(80).optional(),questions:z44.array(ChatFormAnswerItemSchema).max(4)}),QUESTION_FORM_CONTRACT_VERSION=1,QuestionFormSnapshotSchema=z44.object({version:z44.literal(QUESTION_FORM_CONTRACT_VERSION),block:FormBlockSchema}).strict(),QuestionFormAnswerSnapshotSchema=z44.object({version:z44.literal(QUESTION_FORM_CONTRACT_VERSION),answer:ChatFormAnswerMetadataSchema}).strict(),ChatFormResponseSchema=ChatFormAnswerMetadataSchema.extend({toolCallId:z44.string().min(1).max(255),partial:z44.boolean().optional()})}});import{z as z45}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(`
182
181
  `)}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(`
183
182
  `)).join(`
184
183
 
@@ -196,7 +195,7 @@ ${block.code}
196
195
 
197
196
  `)}function flattenReportDocument(document){let sections=[`# ${document.title}`,...document.brief.map(reportBlockMarkdown)];return document.details.length>0&&sections.push(...document.details.map(reportBlockMarkdown)),sections.join(`
198
197
 
199
- `)}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,index)=>{point.value<0&&ctx.addIssue({code:"custom",path:["points",index,"value"],message:"A composition holds parts of one whole, so every value must be zero or more."})})}),ReportListBlockSchema=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,index)=>{row2.cells.length!==block.columns.length&&ctx.addIssue({code:"custom",path:["rows",index,"cells"],message:`Every row needs exactly ${block.columns.length} cells, one per column.`})})}),ReportMediaBlockSchema=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 isEntryParamBinding(binding){return binding!==void 0&&(binding.type??"entry")==="entry"}function pageRouteParamNames(path52){return[...path52.matchAll(/:([^/*]+)\*?/g)].map(match=>match[1])}function pageContentParamNames(path52,params){return pageRouteParamNames(path52).filter(param=>!LOCALE_PARAM_NAME.test(param)&&params?.[param]?.type!=="external")}function parsePageParamExpression(expression){let match=PARAM_EXPRESSION.exec(expression);return match?{param:match[1],field:match[2]}:null}function fieldValue(entry,fieldPath){let value=entry;for(let segment of fieldPath.split(".")){if(!value||typeof value!="object"||Array.isArray(value))return;value=value[segment]}return value}function queryValue(value){if(Array.isArray(value))return value.map(queryValue);if(value&&typeof value=="object"){let record=value;return typeof record.id=="string"?record.id:Object.fromEntries(Object.entries(record).map(([key,item])=>[key,queryValue(item)]))}return value===void 0?null:value}function resolveValue(value,params){if(typeof value=="string"&&value.startsWith("$params.")){let parsed=parsePageParamExpression(value);if(!parsed)return{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param:"",field:""}};let{param,field}=parsed,entry=params[param];if(!entry)return{ok:!1,error:{code:"PAGE_PARAM_NOT_SELECTED",expression:value,param,field}};let resolved=fieldValue(entry,field);return resolved==null||resolved===""?{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param,field}}:{ok:!0,value:queryValue(resolved)}}if(Array.isArray(value)){let resolved=[];for(let item of value){let result=resolveValue(item,params);if(!result.ok)return result;resolved.push(result.value)}return{ok:!0,value:resolved}}if(value&&typeof value=="object"){let resolved={};for(let[key,item]of Object.entries(value)){let result=resolveValue(item,params);if(!result.ok)return result;resolved[key]=result.value}return{ok:!0,value:resolved}}return{ok:!0,value}}function resolvePageSourceQuery(query={},params){let resolved=resolveValue(query,params);return resolved.ok?{ok:!0,query:resolved.value}:resolved}function pageSourceParamExpressions(value){return typeof value=="string"?value.startsWith("$params.")?[value]:[]:Array.isArray(value)?value.flatMap(pageSourceParamExpressions):value&&typeof value=="object"?Object.values(value).flatMap(pageSourceParamExpressions):[]}var LOCALE_PARAM_NAME,PARAM_EXPRESSION,init_page_sources=__esm({"../../packages/api-contracts/dist/esm/types/page-sources.js"(){"use strict";__name(isEntryParamBinding,"isEntryParamBinding");LOCALE_PARAM_NAME=/^(locale|lang|language)$/i;__name(pageRouteParamNames,"pageRouteParamNames");__name(pageContentParamNames,"pageContentParamNames");PARAM_EXPRESSION=/^\$params\.([A-Za-z_][\w-]*)\.([A-Za-z_][\w.-]*)$/;__name(parsePageParamExpression,"parsePageParamExpression");__name(fieldValue,"fieldValue");__name(queryValue,"queryValue");__name(resolveValue,"resolveValue");__name(resolvePageSourceQuery,"resolvePageSourceQuery");__name(pageSourceParamExpressions,"pageSourceParamExpressions")}});var init_project_files=__esm({"../../packages/api-contracts/dist/esm/types/project-files.js"(){"use strict"}});import{z as 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,PublishUpgradeRequiredSchema,ProjectLatestPublicationAttemptSchema,ProjectPublicationStateDTOSchema,ProjectPublicationStateDTO,PublishProjectRequestSchema,PublicationMutationDTOSchema,PublicationMutationDTO,ProjectPublicationStateResponseSchema,PublicationMutationResponseSchema,ProjectResponseSchema,ProjectWithPlanResponseSchema,init_project_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project.dto.js"(){"use strict";init_chat_block();init_common2();init_env();init_create_dto();init_response();PROJECT_CHAT_MANUAL_MODEL_IDS=["anthropic/claude-opus-5.5","anthropic/claude-opus-5","anthropic/claude-sonnet-5","anthropic/claude-fable-5","openai/gpt-5.6-luna","openai/gpt-5.6-terra","openai/gpt-5.6-sol","openai/gpt-6-astra","openai/gpt-6.1-sol","openai/gpt-6-sol","openai/gpt-6-luna","xai/grok-4.6","google/gemini-3.1-pro-preview","google/gemini-3.8-flash","google/gemini-3.7-flash","google/gemini-3.6-flash","google/gemini-3.5-flash-lite","zai/glm-5.2","zai/glm-5.3-flash","deepseek/deepseek-v4-pro","minimax/minimax-m3","moonshotai/kimi-k3"],ProjectChatManualModelIdSchema=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()})),PublishUpgradeRequiredSchema=z48.object({code:z48.literal("PUBLISH_UPGRADE_REQUIRED"),message:z48.string(),currentVersion:z48.number().int().positive(),targetVersion:z48.literal(4)}),ProjectLatestPublicationAttemptSchema=z48.object({publicationId:z48.uuid(),status:z48.enum(["queued","building","published","failed","canceled"]),failureCode:z48.string().nullable(),sourceBranch:z48.string(),createdAt:CommonSchemas.timestamp,finishedAt:CommonSchemas.timestamp.nullable()}),ProjectPublicationStateDTOSchema=z48.object({isPublished:z48.boolean(),publishedAt:CommonSchemas.timestamp.nullable(),publishedVersion:z48.string().nullable(),upgradeRequired:PublishUpgradeRequiredSchema.nullish(),hasActiveRelease:z48.boolean().optional(),latestAttempt:ProjectLatestPublicationAttemptSchema.nullish()}),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(),workSession:z49.object({sessionId:z49.uuid(),name:z49.string()}).optional()}),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,AgentListItemAvailabilitySchema,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()}),AgentListItemAvailabilitySchema=z55.enum(["available","pending_merge"]),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),availability:AgentListItemAvailabilitySchema,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,AgentDeleteResultSchema,AgentDeleteResultDTO,AgentDeleteResultResponseSchema,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),AgentDeleteResultSchema=z56.object({name:z56.string(),removedFiles:z56.number().int().positive(),commitSha:z56.string().nullable(),cancelledRuns:z56.number().int().nonnegative()}),AgentDeleteResultDTO=createDTO(AgentDeleteResultSchema),AgentDeleteResultResponseSchema=createResponseSchema2(AgentDeleteResultSchema)}});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","agent-not-deployed","agent-config-invalid","manual-trigger-not-synced","trigger-not-wired","agent-paused","run-in-progress","task-branch-budget","insufficient-credits"])}),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,AgentRuntimeRefusalKindSchema,AgentRunStopContextSchema,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),AgentRuntimeRefusalKindSchema=z59.enum(["plan_cannot_fund","consent_missing","budget_spent"]),AgentRunStopContextSchema=z59.object({kind:z59.literal("agent_runtime_allowance"),refusal:AgentRuntimeRefusalKindSchema,planCode:z59.string(),includedMs:z59.number().int().nonnegative(),resetsAt:z59.coerce.date(),rateUsdPerHour:z59.number().nullable()}),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(),lastCheckpointId:z59.uuid().nullable(),agentBranchId:z59.uuid().nullable(),parentSessionId:z59.uuid().nullable(),terminalReason:z59.string().nullable(),errorMessage:z59.string().nullable(),stopContext:AgentRunStopContextSchema.nullable().catch(null),reportDocument:StoredReportDocumentSchema.nullable(),reviewSummary:AgentSessionReviewSummarySchema.nullable(),reviewCaptureError:z59.string().nullable(),retainedBranch:BranchSchema.nullable().optional(),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,WorkSessionReviewSchema,RequestWorkSessionReviewSchema,WorkSessionReviewResultSchema,AgentBranchProposalDTOSchema,AgentBranchProposalDTO,DecideProposalRequestSchema,AgentBranchProposalResponseSchema,AgentBranchProposalsListResponseSchema,DecideProposalConflictResponseSchema,init_agent_proposal_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-proposal.dto.js"(){"use strict";init_create_dto();init_response();init_env_status_dto();AgentBranchClassificationSchema=z60.enum(["trivial","structural"]),AgentBranchDecidedPathSchema=z60.enum(["auto-merge","review-merged","review-discarded"]),WorkSessionReviewSchema=z60.object({sessionId:z60.uuid(),branch:z60.string().min(1),targetBranch:z60.string().min(1),revision:z60.string().min(1),fingerprint:z60.string().min(1),source:z60.enum(["studio","slack","autonomous","mcp"]),threadId:z60.uuid().nullable(),invocationId:z60.uuid().nullable(),conversationBranch:z60.string().nullable(),capturedAt:z60.string(),surfaces:z60.array(PerSurfaceDeltaSchema).optional(),counts:z60.record(z60.string(),z60.number().int().nonnegative())}),RequestWorkSessionReviewSchema=z60.strictObject({sessionId:z60.uuid(),summary:z60.string().trim().min(1).max(240),targetBranch:z60.string().trim().min(1).optional()}),WorkSessionReviewResultSchema=z60.object({requested:z60.literal(!0),alreadyRequested:z60.boolean(),reviewId:z60.uuid(),reviewUrl:z60.url(),status:z60.literal("pending"),sessionId:z60.uuid(),branch:z60.string(),targetBranch:z60.string(),revision:z60.string(),savedRevision:z60.string(),fingerprint:z60.string(),visibility:z60.literal("user-visible"),retention:z60.literal("durable"),expiresAt:z60.null(),merged:z60.literal(!1),published:z60.literal(!1),links:z60.object({preview:z60.url(),changes:z60.url(),conversation:z60.url().nullable()})}),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()),review:WorkSessionReviewSchema.optional(),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,index)=>{if(step.body.type!=="capabilities")return;let answered=answers.find(item=>item.stepId===step.id)??answers[index],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),sessionIds:z61.array(z61.uuid()).optional()}),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,OrganizationIntegrationConnectionStatusSchema,OrganizationIntegrationConnectionDTOSchema,OrganizationIntegrationConnectionDTO,ProjectIntegrationConnectionDTOSchema,ProjectIntegrationConnectionDTO,McpHeaderNameSchema,McpHeaderDefinitionSchema,McpSecretMapSchema,ConnectOrganizationIntegrationRequestSchema,ProjectIntegrationReturnPathSchema,IntegrationCustomIdentitySchema,ConnectProjectIntegrationRequestSchema,McpIntegrationAuthSchema,McpIntegrationSetupAuthSchema,AddProjectMcpIntegrationRequestSchema,AddProjectMcpIntegrationResponseBaseSchema,AddProjectMcpIntegrationResponseSchema,ReusableMcpServerAuthKindSchema,ReusableMcpServerDTOSchema,ReusableMcpServerDTO,SearchReusableMcpServersQuerySchema,ReuseProjectMcpIntegrationRequestSchema,LinearOAuthApplicationDistributionSchema,OrganizationLinearAppDTOSchema,OrganizationLinearAppDTO,CreateManagedLinearAppRequestSchema,UpdateManagedLinearAppRequestSchema,StartManagedLinearConnectRequestSchema,StartProjectIntegrationConnectResponseSchema,StartProjectIntegrationConnectResponseDTO,ProjectIntegrationConnectResponseSchema,BindProjectChannelRequestSchema,ListProjectChannelsQuerySchema,SearchProjectChannelsQuerySchema,ProjectChannelBindingDTOSchema,ProjectChannelBindingDTO,ProjectChannelCandidateAvailabilitySchema,ProjectChannelCandidateDTOSchema,ProjectChannelCandidateDTO,FirecrawlScrapeFormatsSchema,FirecrawlScrapeToolInputSchema,FirecrawlSearchToolInputSchema,FirecrawlDeveloperSearchToolInputSchema,FirecrawlResearchSearchToolInputSchema,FirecrawlResearchPaperToolInputSchema,FirecrawlResearchRelatedToolInputSchema,FirecrawlMapToolInputSchema,FirecrawlCrawlToolInputSchema,FirecrawlMonitorScheduleInputSchema,FirecrawlMonitorScrapeOptionsInputSchema,FirecrawlMonitorTargetInputSchema,FirecrawlMonitorCreateToolInputSchema,FirecrawlMonitorUpdateToolInputSchema,FirecrawlMonitorIdToolInputSchema,FirecrawlMonitorCheckToolInputSchema,RunProjectIntegrationToolRequestSchema,ProjectIntegrationToolRunUsageSchema,ProjectIntegrationToolRunBillingSchema,FirecrawlScrapeToolOutputSchema,FirecrawlSearchToolOutputSchema,FirecrawlResearchPaperSchema,FirecrawlResearchPassageSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlMonitorScheduleOutputSchema,FirecrawlMonitorTargetOutputSchema,FirecrawlMonitorOutputSchema,FirecrawlMonitorCheckOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema,FirecrawlToolKeySchema,FirecrawlToolOutputSchema,ProjectIntegrationToolRunBaseSchema,ProjectIntegrationToolRunDTOSchema,ProjectIntegrationToolRunDTO,IntegrationsListResponseSchema,IntegrationInfoResponseSchema,ProjectIntegrationStatusResponseSchema,ProjectIntegrationInstallationResponseSchema,ProjectIntegrationToolRunResponseSchema,StartProjectIntegrationConnectResponseResponseSchema,OrganizationIntegrationConnectionResponseSchema,ProjectIntegrationConnectionsResponseSchema,ProjectIntegrationConnectResponseResponseSchema,AddProjectMcpIntegrationResponseResponseSchema,ReusableMcpServersResponseSchema,ProjectChannelBindingResponseSchema,ProjectChannelBindingsResponseSchema,ProjectChannelCandidatesResponseSchema,init_integration_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/integration.dto.js"(){"use strict";init_create_dto();init_response();IntegrationAuthModeSchema=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(),connectionCapabilities:z62.object({customIdentityCreation:z62.boolean()}).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}),OrganizationIntegrationConnectionStatusSchema=z62.enum(["active","revoked"]),OrganizationIntegrationConnectionDTOSchema=z62.object({id:z62.uuid(),organizationId:z62.string().min(1),integrationKey:z62.string().min(1),registrationId:z62.uuid().nullable(),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),ProjectIntegrationConnectionDTOSchema=OrganizationIntegrationConnectionDTOSchema.extend({granted:z62.boolean(),isDefault:z62.boolean()}),ProjectIntegrationConnectionDTO=createDTO(ProjectIntegrationConnectionDTOSchema),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."),IntegrationCustomIdentitySchema=z62.object({displayName:z62.string().trim().min(1).max(35),backgroundColor:z62.string().regex(/^#[0-9a-fA-F]{6}$/).optional(),iconUrl:z62.string().url().max(2048).optional()}),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(),registrationId:z62.uuid().optional(),customIdentity:IntegrationCustomIdentitySchema.optional()})]).superRefine((value,ctx)=>{value.mode==="oauth"&&value.registrationId&&value.customIdentity&&ctx.addIssue({code:"custom",path:["registrationId"],message:"Choose an existing app identity or create a custom one, not both."}),value.mode==="personal"&&!!value.token==!!value.secrets&&ctx.addIssue({code:"custom",path:["token"],message:"Provide either one token or a complete MCP secret map."})}),McpIntegrationAuthSchema=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()}),LinearOAuthApplicationDistributionSchema=z62.enum(["private","public"]),OrganizationLinearAppDTOSchema=z62.object({id:z62.uuid(),displayName:z62.string().min(1),description:z62.string().nullable(),iconUrl:z62.string().nullable(),distribution:LinearOAuthApplicationDistributionSchema,status:z62.enum(["active","revoked"]),connectionIds:z62.array(z62.uuid()),createdAt:z62.coerce.date(),updatedAt:z62.coerce.date()}),OrganizationLinearAppDTO=createDTO(OrganizationLinearAppDTOSchema),CreateManagedLinearAppRequestSchema=z62.object({appName:z62.string().trim().min(2).max(80),description:z62.string().trim().max(1e3).optional(),iconUrl:z62.string().url().max(2048).optional()}),UpdateManagedLinearAppRequestSchema=CreateManagedLinearAppRequestSchema.partial().refine(input=>Object.keys(input).length>0,"At least one Linear app field is required."),StartManagedLinearConnectRequestSchema=z62.object({projectId:z62.uuid(),registrationId:z62.uuid(),returnTo:ProjectIntegrationReturnPathSchema.optional()}),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().nullable().optional(),reservedCredits:z62.number().nullable().optional(),actualCredits:z62.number().nullable().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(ProjectIntegrationConnectionDTOSchema)),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(),suspendedAt:z64.coerce.date().nullable().optional(),suspensionReason:z64.string().nullable().optional(),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,PUBLICATION_NOTIFICATION_TOPICS,NOTIFICATION_TOPICS,NotificationTopicSchema,NOTIFICATION_DELIVERY_CADENCES,NotificationDeliveryCadenceSchema,NOTIFICATION_CHANNELS,NotificationChannelSchema,NOTIFICATION_ACTOR_KINDS,NotificationActorKindSchema,NotificationActorSchema,NotificationSummarySchema,ReportBriefPayloadSchema,NotificationRunOutcomeSchema,NotificationRetainedReasonSchema,NotificationWorkSessionSchema,NotificationPayloadSchema,NotificationEnvelopeSchema,NotificationRecipientStateSchema,NotificationDeliveryStateSchema,NotificationDeliverySchema,NotificationPreferenceSchema,NotificationSubjectSchema,NotificationViewSchema,NotificationViewResponseSchema,NotificationListSchema,NotificationListResponseSchema,SupportedNotificationTopicsSchema,NotificationVisibilityQuerySchema,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),PUBLICATION_NOTIFICATION_TOPICS=["publication_failed"],NOTIFICATION_TOPICS=[...WORK_NOTIFICATION_TOPICS,...PUBLICATION_NOTIFICATION_TOPICS],NotificationTopicSchema=z65.enum(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"]),NotificationWorkSessionSchema=z65.object({sessionId:z65.uuid(),branch:z65.string().min(1),targetBranch:z65.string().min(1),revision:z65.string().min(1),fingerprint:z65.string().min(1)}),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().optional(),invocationId:z65.uuid().optional(),proposalId:z65.uuid().optional(),workSession:NotificationWorkSessionSchema.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(),z65.object({topic:z65.literal("publication_failed"),publicationId:z65.uuid(),sourceBranch:z65.string().trim().min(1).max(120),failureCode:z65.string().trim().min(1).max(64),failedAt:z65.iso.datetime(),firstPublication:z65.boolean()}).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().nullable(),invocationId:z65.uuid().nullable(),proposalId:z65.uuid().nullable(),workSession:NotificationWorkSessionSchema.optional(),reason:NotificationRetainedReasonSchema}).strict(),z65.object({kind:z65.literal("merge_conflict"),mergeId:z65.uuid(),threadId:z65.uuid().nullable()}).strict(),z65.object({kind:z65.literal("publication"),publicationId:z65.uuid()}).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),SupportedNotificationTopicsSchema=z65.string().max(500).transform(value=>value.split(",").map(topic=>topic.trim()).filter(topic=>NOTIFICATION_TOPICS.includes(topic))),NotificationVisibilityQuerySchema=z65.object({supportedTopics:SupportedNotificationTopicsSchema.optional()}),ListNotificationsQuerySchema=z65.object({supportedTopics:SupportedNotificationTopicsSchema.optional(),topic:NotificationTopicSchema.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","publishing","schedule","usage","question_digest","marketing"],NotificationPreferenceGroupSchema=z66.enum(NOTIFICATION_PREFERENCE_GROUPS),FIMO_TOGGLE_PREFERENCE_ENTRY_IDS=["work_review.agent_question","work_review.agent_conflict","publishing.publication_failed","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","publishing","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,PROJECT_ANALYTICS_DEVICE_FILTERS,ProjectPageviewAnalyticsDTOSchema,PROJECT_ANALYTICS_TRACKING_STATES,ProjectAnalyticsTrackingStatusDTOSchema,ProjectPageviewAnalyticsDTO,ProjectAnalyticsTrackingStatusDTO,ProjectAnalyticsAnnotationDTO,init_project_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-analytics.dto.js"(){"use strict";init_create_dto();PROJECT_ANALYTICS_PRESETS=["today","yesterday","this_week","this_month","last_7_days","last_30_days","last_90_days","last_week","last_month","last_quarter","last_year","custom"],PROJECT_ANALYTICS_GROUP_BY_OPTIONS=["day","week","month","quarter"],ProjectDailyVisitorsDTOSchema=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()}),PROJECT_ANALYTICS_DEVICE_FILTERS=["bot","desktop","mobile","tablet"],ProjectPageviewAnalyticsDTOSchema=z68.object({range:ProjectAnalyticsRangeDTOSchema,deviceFilter:z68.enum(PROJECT_ANALYTICS_DEVICE_FILTERS).nullable(),visitors:z68.number().int().nonnegative(),pageviews:z68.number().int().nonnegative(),botPageviews:z68.number().int().nonnegative(),botVisitors: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),topBots:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),topAiAssistants:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),topCountries:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),topSources:z68.array(ProjectAnalyticsBreakdownItemDTOSchema),annotations:z68.array(ProjectAnalyticsAnnotationDTOSchema)}),PROJECT_ANALYTICS_TRACKING_STATES=["observed","waiting","unavailable"],ProjectAnalyticsTrackingStatusDTOSchema=z68.object({state:z68.enum(PROJECT_ANALYTICS_TRACKING_STATES),lastEventAt:z68.string().nullable()}),ProjectPageviewAnalyticsDTO=createDTO(ProjectPageviewAnalyticsDTOSchema),ProjectAnalyticsTrackingStatusDTO=createDTO(ProjectAnalyticsTrackingStatusDTOSchema),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(),earned: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 BranchHostedPreviewStatusSchema,BranchHostedPreviewSchema,init_hosted_preview_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/hosted-preview.dto.js"(){"use strict";init_env();BranchHostedPreviewStatusSchema=z73.enum(["queued","building","ready","failed"]),BranchHostedPreviewSchema=z73.object({branch:BranchSchema,revision:z73.string().min(1).max(64).nullable(),generation:z73.string().min(1).max(64),status:BranchHostedPreviewStatusSchema,url:z73.url().nullable()})}});import{z as z74}from"zod";var PreviewUpgradeRequiredSchema,PreviewBridgePackageSchema,PreviewBridgeCapabilitySchema,SandboxSessionDTOSchema,SandboxSessionDTO,SandboxSessionResponseSchema,PreviewInstallApprovalTargetSchema,PreviewInstallRepairSchema,SandboxSessionInstallPolicyErrorSchema,SandboxPullPhaseSchema,SandboxPullFailureCodeSchema,SandboxPullFailureSchema,PreviewInstallPolicyApprovalRequestSchema,PreviewInstallPolicyApprovalEventSchema,init_sandbox_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/sandbox.dto.js"(){"use strict";init_create_dto();init_response();PreviewUpgradeRequiredSchema=z74.object({code:z74.literal("PREVIEW_UPGRADE_REQUIRED"),message:z74.string(),currentVersion:z74.number().int().positive(),targetVersion:z74.literal(4)}),PreviewBridgePackageSchema=z74.object({name:z74.string().min(1),version:z74.string().min(1)}),PreviewBridgeCapabilitySchema=z74.object({integrated:z74.boolean(),packages:z74.array(PreviewBridgePackageSchema)}),SandboxSessionDTOSchema=z74.object({url:z74.url(),expiresAt:z74.iso.datetime().nullable(),source:z74.enum(["sandbox","hosted"]).optional(),previewBridge:PreviewBridgeCapabilitySchema.optional()}),SandboxSessionDTO=createDTO(SandboxSessionDTOSchema),SandboxSessionResponseSchema=createResponseSchema2(SandboxSessionDTOSchema),PreviewInstallApprovalTargetSchema=z74.object({name:z74.string().min(1),locator:z74.string().min(1).optional(),source:z74.enum(["registry","tarball","unsupported"])}).refine(target=>target.source==="tarball"==(target.locator!==void 0),{message:"locator is present exactly when source is tarball"}),PreviewInstallRepairSchema=z74.object({kind:z74.literal("dependency_build_scripts_blocked"),packageManager:z74.enum(["pnpm","yarn","bun"]),packages:z74.array(z74.string()),targets:z74.array(PreviewInstallApprovalTargetSchema).optional(),configFile:z74.string(),approvalKey:z74.string(),command:z74.string().optional(),approval:z74.object({id:z74.uuid()}).optional()}),SandboxSessionInstallPolicyErrorSchema=z74.object({code:z74.literal("PREVIEW_INSTALL_POLICY_BLOCKED"),message:z74.string(),repair:PreviewInstallRepairSchema}),SandboxPullPhaseSchema=z74.enum(["acquire","pull","sync-env","install","restart","readiness"]),SandboxPullFailureCodeSchema=z74.enum(["sync_failed","readiness_failed","install_policy_blocked"]),SandboxPullFailureSchema=z74.object({message:z74.string(),code:SandboxPullFailureCodeSchema.optional().catch(void 0),phase:SandboxPullPhaseSchema.optional().catch(void 0),exitCode:z74.number().int().optional().catch(void 0),logTail:z74.array(z74.string()).optional().catch(void 0),logTailTruncated:z74.boolean().optional().catch(void 0),repair:PreviewInstallRepairSchema.optional().catch(void 0)}),PreviewInstallPolicyApprovalRequestSchema=z74.object({approvalId:z74.uuid()}),PreviewInstallPolicyApprovalEventSchema=z74.discriminatedUnion("type",[z74.object({type:z74.literal("progress"),step:z74.enum(["approval","install","restart","readiness"]),message:z74.string()}),z74.object({type:z74.literal("approved")}),z74.object({type:z74.literal("complete")}),z74.object({type:z74.literal("error"),code:z74.enum(["stale_approval","approval_failed","install_failed","restart_failed"]),message:z74.string()})])}});import{z as z75}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:z75.string(),slug:z75.string().nullable(),logo:z75.string().nullable(),metadata:z75.record(z75.string(),z75.unknown()).nullable()}),OrganizationDTO=createDTO(OrganizationDTOSchema),MemberUserDTOSchema=z75.object({id:z75.string(),name:z75.string(),email:z75.email(),image:z75.string().nullable()}),OrganizationMemberDTOSchema=z75.object({id:z75.string(),userId:z75.string(),organizationId:z75.string(),role:OrganizationRoleSchema,user:MemberUserDTOSchema,createdAt:z75.coerce.date()}),OrganizationMemberDTO=createDTO(OrganizationMemberDTOSchema)}});import{z as z76}from"zod";var CancellationReasonCodeSchema,CancellationFeedbackDTOSchema,CancellationFeedbackDTO,PlanMigrationAcceptDTOSchema,PlanMigrationPreviewDTOSchema,PlanMigrationPreviewDTO,PlanMigrationStateSchema,PlanMigrationOfferDTOSchema,PlanMigrationOfferDTO,AiCreditsEntitlementSchema,EntitlementsDTOSchema,MediaStorageUsageDTOSchema,MediaStorageUsageDTO,PendingPlanChangeDTOSchema,AutomaticSpendStopDTOSchema,HostingOverageStatusDTOSchema,HostingOverageStatusDTO,UpdateHostingOverageRequestSchema,SubscriptionDTOSchema,SubscriptionDTO,DailyCreditsStatusSchema,CreditBalanceDTOSchema,CreditBalanceDTO,MinimalCreditBalanceDTOSchema,MinimalCreditBalanceDTO,ProjectCreditBucketsDTOSchema,ProjectDailyCreditAllowanceDTOSchema,ProjectCreditBalanceDTOSchema,ProjectCreditBalanceDTO,AgentRuntimeUsageStateSchema,AgentRuntimeOverageRefusalSchema,AgentRuntimeOverageDTOSchema,AgentRuntimeUsageDTOSchema,AgentRuntimeUsageDTO,AutoRefillConfigDTOSchema,AutoRefillConfigDTO,UpdateAutoRefillDTOSchema,OptionalSpendRefusalSchema,CreditPurchasePricingDTOSchema,CreditPurchasePricingDTO,PurchaseCreditsDTOSchema,SuccessfulPurchaseDTOSchema,SuccessfulPurchaseDTO,PortalDTOSchema,PortalDTO,PaymentRecoveryInvoiceDTOSchema,PaymentRecoveryDTOSchema,PaymentRecoveryDTO,CreditBalanceResponseSchema,MinimalCreditBalanceResponseSchema,ProjectCreditBalanceResponseSchema,AutoRefillConfigResponseSchema,CreditPurchasePricingResponseSchema,SuccessfulPurchaseResponseSchema,SubscriptionResponseSchema,EntitlementsResponseSchema,PortalResponseSchema,PaymentRecoveryResponseSchema,init_billing_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/billing.dto.js"(){"use strict";init_common2();init_create_dto();init_response();CancellationReasonCodeSchema=z76.enum(["just_testing","too_expensive","not_using_enough","missing_features","bug_or_technical_issue","switching_to_another_tool","closing_or_pausing_business","other"]),CancellationFeedbackDTOSchema=z76.object({reason:CancellationReasonCodeSchema,details:z76.string().trim().max(1e3).nullable().optional().transform(value=>value||null)}).superRefine((value,ctx)=>{value.reason==="other"&&!value.details&&ctx.addIssue({code:z76.ZodIssueCode.custom,message:"Details are required when selecting other.",path:["details"]})}),CancellationFeedbackDTO=createDTO(CancellationFeedbackDTOSchema),PlanMigrationAcceptDTOSchema=z76.object({offerVersion:z76.string().trim().min(1),unusedPremiumCreditAmount:z76.number().int().nonnegative(),amountDueNow:z76.number().int().nonnegative(),renewsOn:z76.string()}),PlanMigrationPreviewDTOSchema=z76.object({currency:z76.string().trim().min(1),unusedPremiumCreditAmount:z76.number().int().nonnegative(),amountDueNow:z76.number().int().nonnegative(),startsAt:z76.string(),renewsAt:z76.string(),nextRenewalAmount:z76.number().int().nonnegative()}),PlanMigrationPreviewDTO=createDTO(PlanMigrationPreviewDTOSchema),PlanMigrationStateSchema=z76.enum(["legacy_active","notified","accepting","accepted","declining","free","expired","canceled"]),PlanMigrationOfferDTOSchema=z76.object({id:z76.string(),organizationId:z76.string(),legacySubscriptionId:z76.string(),offeredPlanCode:z76.string(),offeredPlanName:z76.string(),offeredPriceAmount:z76.number(),offeredCurrency:z76.string(),offerVersion:z76.string(),state:PlanMigrationStateSchema,checkoutToken:z76.string().nullable(),deadlineAt:z76.string(),transitions:z76.array(z76.object({event:z76.string(),fromState:PlanMigrationStateSchema,toState:PlanMigrationStateSchema,createdAt:z76.string()}))}),PlanMigrationOfferDTO=createDTO(PlanMigrationOfferDTOSchema),AiCreditsEntitlementSchema=z76.object({included:z76.number().optional(),unitPrice:z76.number().optional(),dailyCap:z76.number().nullable().optional()}),EntitlementsDTOSchema=z76.object({ai_credits:AiCreditsEntitlementSchema.optional(),analytics:z76.object({retentionDays:z76.number().int().positive(),canUseExtendedDateRanges:z76.boolean()}).optional(),history:z76.object({retentionDays:z76.number().int().positive()}).optional(),members:z76.object({canInvite:z76.boolean(),maxMembers:z76.number().int().positive().nullable()}).optional(),projects:z76.object({maxProjects:z76.number().int().positive().nullable()}).optional(),domains:z76.object({canUseCustomDomains:z76.boolean(),maxDomains:z76.number().int().nonnegative().nullable()}).optional(),media_storage:z76.object({limitBytes:z76.number().int().nonnegative()}).optional()}),MediaStorageUsageDTOSchema=z76.object({usedBytes:z76.number().int().nonnegative().nullable(),limitBytes:z76.number().int().nonnegative().nullable(),state:z76.enum(["ready","unavailable"]),measuredAt:z76.iso.datetime().nullable()}),MediaStorageUsageDTO=createDTO(MediaStorageUsageDTOSchema),PendingPlanChangeDTOSchema=z76.object({toPlanCode:TemplateCodeSchema,effectiveAt:z76.string(),scheduledAt:z76.string().nullable()}),AutomaticSpendStopDTOSchema=z76.object({fromPlanCode:TemplateCodeSchema,toPlanCode:TemplateCodeSchema,cutoffAt:z76.string(),spendStopped:z76.boolean(),settlementEndsAt:z76.string()}),HostingOverageStatusDTOSchema=z76.object({state:z76.enum(["ready","unavailable"]),planCode:z76.string(),overageAvailable:z76.boolean(),overageEnabled:z76.boolean(),monthlyCapUsd:z76.number().int().positive().nullable(),agentRuntimeEnabled:z76.boolean(),agentRuntimeAvailable:z76.boolean(),periodStart:z76.iso.datetime().nullable(),periodEnd:z76.iso.datetime().nullable(),usedBytes:z76.number().nonnegative().nullable(),includedBytes:z76.number().nonnegative().nullable(),overageBytes:z76.number().nonnegative(),currentOverageAmountMicros:z76.number().nonnegative().nullable(),agentRuntimeAmountMicros:z76.number().nonnegative().nullable(),totalExtraUsageAmountMicros:z76.number().nonnegative().nullable(),currency:z76.string().nullable(),status:z76.enum(["ok","near_limit","paused"])}),HostingOverageStatusDTO=createDTO(HostingOverageStatusDTOSchema),UpdateHostingOverageRequestSchema=z76.object({enabled:z76.boolean(),monthlyCapUsd:z76.number().int().positive().max(1e6).optional(),agentRuntimeEnabled:z76.boolean().optional()}).refine(value=>!value.enabled||value.monthlyCapUsd!==void 0,{message:"Enabling extra usage requires a monthly budget"}),SubscriptionDTOSchema=z76.object({id:z76.string(),external_id:z76.string(),customerId:z76.string(),planId:z76.string(),planCode:z76.union([TemplateCodeSchema,z76.literal("Unknown")]),currentPeriod:z76.object({start:z76.string(),end:z76.string().nullable()}),cancelAt:z76.string().nullable(),pendingPlanChange:PendingPlanChangeDTOSchema.nullable(),automaticSpendStop:AutomaticSpendStopDTOSchema.nullable(),entitlements:EntitlementsDTOSchema,currency:z76.string(),nextPaymentAt:z76.string().nullable(),baseAmount:z76.number().nullable()}),SubscriptionDTO=createDTO(SubscriptionDTOSchema),DailyCreditsStatusSchema=z76.object({totalCap:z76.number(),dailyCap:z76.number(),usedTotal:z76.number()}),CreditBalanceDTOSchema=z76.object({total:z76.number(),base:z76.number(),dailyBase:z76.number(),purchases:z76.number(),awards:z76.number(),daily:DailyCreditsStatusSchema.optional()}),CreditBalanceDTO=createDTO(CreditBalanceDTOSchema),MinimalCreditBalanceDTOSchema=z76.object({total:z76.number(),nearLimit:z76.boolean(),canChat:z76.boolean(),daily:DailyCreditsStatusSchema.optional()}),MinimalCreditBalanceDTO=createDTO(MinimalCreditBalanceDTOSchema),ProjectCreditBucketsDTOSchema=z76.object({dailyFreeAvailable:z76.number(),monthlyAvailable:z76.number(),purchasedAvailable:z76.number(),awardedAvailable:z76.number()}),ProjectDailyCreditAllowanceDTOSchema=z76.object({periodCap:z76.number(),dailyGrant:z76.number(),usedThisPeriod:z76.number(),remainingThisPeriod:z76.number()}),ProjectCreditBalanceDTOSchema=z76.object({projectId:z76.uuid(),organizationId:z76.string(),balance:z76.object({totalAvailable:z76.number(),nearLimit:z76.boolean(),canUseAi:z76.boolean(),buckets:ProjectCreditBucketsDTOSchema}),allowances:z76.object({dailyCredits:ProjectDailyCreditAllowanceDTOSchema.nullable()})}),ProjectCreditBalanceDTO=createDTO(ProjectCreditBalanceDTOSchema),AgentRuntimeUsageStateSchema=z76.enum(["ok","near_limit","exhausted"]),AgentRuntimeOverageRefusalSchema=z76.enum(["plan_unknown","plan_cannot_fund","pending_plan_exit","consent_missing"]),AgentRuntimeOverageDTOSchema=z76.object({available:z76.boolean(),enabled:z76.boolean(),status:z76.enum(["included","paid","paused"]),pauseReason:AgentRuntimeOverageRefusalSchema.nullable(),rateUsdPerHour:z76.number().nonnegative().nullable(),monthlyCapUsd:z76.number().positive().nullable(),consentedAt:z76.coerce.date().nullable(),billableMs:z76.number().int().nonnegative(),paidRemainingMs:z76.number().int().nonnegative(),projectedAmountUsd:z76.number().nonnegative().nullable()}),AgentRuntimeUsageDTOSchema=z76.object({planCode:z76.enum(["Free","PAYG","Premium","Pro"]),state:AgentRuntimeUsageStateSchema,usage:z76.object({source:z76.enum(["cached_subscription","free_fallback"]),settledMs:z76.number().int().nonnegative(),activeMs:z76.number().int().nonnegative(),reservedMs:z76.number().int().nonnegative().optional(),includedMs:z76.number().int().positive(),remainingMs:z76.number().int().nonnegative(),extraMs:z76.number().int().nonnegative(),resetsAt:z76.coerce.date()}),overage:AgentRuntimeOverageDTOSchema}),AgentRuntimeUsageDTO=createDTO(AgentRuntimeUsageDTOSchema),AutoRefillConfigDTOSchema=z76.discriminatedUnion("enabled",[z76.object({enabled:z76.literal(!0),thresholdUsd:z76.number().nonnegative(),refillAmountUsd:z76.number().nonnegative()}),z76.object({enabled:z76.literal(!1),thresholdUsd:z76.number().nonnegative().nullable(),refillAmountUsd:z76.null()})]),AutoRefillConfigDTO=createDTO(AutoRefillConfigDTOSchema),UpdateAutoRefillDTOSchema=z76.discriminatedUnion("enabled",[z76.object({enabled:z76.literal(!0),thresholdUsd:z76.number().min(.01).multipleOf(.01),refillAmountUsd:z76.number().min(.01).multipleOf(.01),expectedRateToken:z76.string().trim().min(1).max(40)}).strict(),z76.object({enabled:z76.literal(!1),thresholdUsd:z76.number().min(.01).multipleOf(.01),expectedRateToken:z76.string().trim().min(1).max(40).optional()}).strict()]),OptionalSpendRefusalSchema=z76.enum(["no_subscription","plan_cannot_fund","pending_plan_exit"]),CreditPurchasePricingDTOSchema=z76.object({planCode:z76.union([TemplateCodeSchema,z76.literal("Unknown")]).nullable(),canPurchase:z76.boolean(),refusalReason:OptionalSpendRefusalSchema.nullable(),creditsPerDollar:z76.number().int().positive(),minAmountUsd:z76.number().positive(),maxAmountUsd:z76.number().positive(),rateToken:z76.string().nullable()}),CreditPurchasePricingDTO=createDTO(CreditPurchasePricingDTOSchema),PurchaseCreditsDTOSchema=z76.object({amountUsd:z76.number(),idempotencyKey:z76.string().trim().min(8).max(120),expectedRateToken:z76.string().trim().min(1).max(40)}).strict(),SuccessfulPurchaseDTOSchema=z76.object({invoiceId:z76.string(),newBalance:z76.int(),creditCount:z76.int(),amountUsd:z76.number(),creditsPerDollar:z76.int()}),SuccessfulPurchaseDTO=createDTO(SuccessfulPurchaseDTOSchema),PortalDTOSchema=z76.object({url:z76.string()}),PortalDTO=createDTO(PortalDTOSchema),PaymentRecoveryInvoiceDTOSchema=z76.object({id:z76.string(),number:z76.string().nullable(),status:z76.string(),amountDue:z76.int(),currency:z76.string(),issuedAt:z76.string().nullable(),hostedInvoiceUrl:z76.string().nullable()}),PaymentRecoveryDTOSchema=z76.discriminatedUnion("status",[z76.object({status:z76.literal("eligible"),checkedAt:z76.string()}),z76.object({status:z76.literal("recovery_required"),checkedAt:z76.string(),invoice:PaymentRecoveryInvoiceDTOSchema,outstandingCount:z76.int().min(1)}),z76.object({status:z76.literal("unavailable"),checkedAt:z76.string(),reason:z76.enum(["provider_error","truncated","unattempted","foreign_invoice","unknown_status"])})]),PaymentRecoveryDTO=createDTO(PaymentRecoveryDTOSchema),CreditBalanceResponseSchema=createResponseSchema2(CreditBalanceDTOSchema),MinimalCreditBalanceResponseSchema=createResponseSchema2(MinimalCreditBalanceDTOSchema),ProjectCreditBalanceResponseSchema=createResponseSchema2(ProjectCreditBalanceDTOSchema),AutoRefillConfigResponseSchema=createResponseSchema2(AutoRefillConfigDTOSchema),CreditPurchasePricingResponseSchema=createResponseSchema2(CreditPurchasePricingDTOSchema),SuccessfulPurchaseResponseSchema=createResponseSchema2(SuccessfulPurchaseDTOSchema),SubscriptionResponseSchema=createResponseSchema2(SubscriptionDTOSchema),EntitlementsResponseSchema=createResponseSchema2(EntitlementsDTOSchema),PortalResponseSchema=createResponseSchema2(PortalDTOSchema),PaymentRecoveryResponseSchema=createResponseSchema2(PaymentRecoveryDTOSchema)}});import{z as z77}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=z77.object({brand:z77.string(),last4:z77.string(),exp:z77.string(),isDefault:z77.boolean()}),PaymentMethodDTO=createDTO(PaymentMethodDTOSchema)}});import{z as z78}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=z78.string().superRefine((path52,ctx)=>{let segments=path52.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=z78.object({type:z78.literal("renameField"),contentType:z78.string().regex(CONTENT_TYPE_NAME_PATTERN),from:SchemaFieldPathSchema,to:SchemaFieldPathSchema}).strict(),ContentTypeI18nSchema=z78.object({enabled:z78.boolean()}).strict(),ContentFieldGroupSchema=z78.object({id:z78.string().regex(CONTENT_FIELD_NAME_PATTERN),label:z78.string().min(1).max(255),default:z78.boolean().optional()}).strict(),ContentTypeDTOSchema=z78.object({id:z78.string(),name:z78.string(),label:z78.string(),isSingleton:z78.boolean(),i18n:ContentTypeI18nSchema,groups:z78.array(ContentFieldGroupSchema).default([]),fields:z78.record(z78.string(),FieldDefinitionSchema),createdAt:z78.string(),updatedAt:z78.string()}),ContentTypeDTO=createDTO(ContentTypeDTOSchema),SchemaDTOSchema=z78.object({contentTypes:z78.array(ContentTypeDTOSchema)}),SchemaDTO=createDTO(SchemaDTOSchema),EntryDTOSchema2=z78.object({id:z78.string(),entryId:z78.string(),documentId:z78.string(),slug:z78.string(),locale:z78.string().optional(),createdAt:z78.string(),updatedAt:z78.string(),__fimo:z78.object({contentType:z78.string()})}).passthrough(),EntryDTO=createDTO(EntryDTOSchema2),PaginatedEntriesDTOSchema2=z78.object({data:z78.array(EntryDTOSchema2),meta:z78.object({limit:z78.number(),offset:z78.number(),total:z78.number(),hasMore:z78.boolean()})}),PaginatedEntriesDTO=createDTO(PaginatedEntriesDTOSchema2),EntryCountDTOSchema=z78.object({contentType:z78.string(),count:z78.number()}),EntryCountDTO=createDTO(EntryCountDTOSchema),EntryCountsDTOSchema=z78.object({counts:z78.array(EntryCountDTOSchema)}),EntryCountsDTO=createDTO(EntryCountsDTOSchema),EntryTranslationGapDTOSchema=z78.object({count:z78.number().int().nonnegative(),sourceLocale:z78.string(),targetLocale:z78.string()}),EntryTranslationGapDTO=createDTO(EntryTranslationGapDTOSchema),EntryTranslationGapResponseSchema=createResponseSchema2(EntryTranslationGapDTOSchema),ContentTypeResponseSchema=createResponseSchema2(ContentTypeDTOSchema),ContentTypeListResponseSchema=createResponseSchema2(z78.array(ContentTypeDTOSchema)),SchemaResponseSchema=createResponseSchema2(SchemaDTOSchema),EntryResponseSchema2=createResponseSchema2(EntryDTOSchema2),EntryListResponseSchema=createResponseSchema2(z78.array(EntryDTOSchema2)),MAX_BULK_ENTRIES2=1e3,entryWhereScalarSchema2=z78.union([z78.string(),z78.number(),z78.boolean(),z78.null()]),entryWhereOperatorSchema2=z78.object({$eq:entryWhereScalarSchema2.optional(),$ne:entryWhereScalarSchema2.optional(),$gt:entryWhereScalarSchema2.optional(),$gte:entryWhereScalarSchema2.optional(),$lt:entryWhereScalarSchema2.optional(),$lte:entryWhereScalarSchema2.optional(),$in:z78.array(entryWhereScalarSchema2).optional(),$nin:z78.array(entryWhereScalarSchema2).optional(),$contains:z78.string().optional(),$startsWith:z78.string().optional(),$null:z78.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema2=z78.record(z78.string(),z78.union([entryWhereScalarSchema2,entryWhereOperatorSchema2])),EntryWhereSchema2=z78.record(z78.string(),z78.union([entryWhereScalarSchema2,entryWhereOperatorSchema2,nestedEntryWhereSchema2])),EntryMutationBodySchema2=z78.object({data:z78.record(z78.string(),z78.unknown()),locale:z78.string().min(1).optional(),documentId:z78.uuid().optional()}),entryIdsSchema=z78.array(z78.uuid()).min(1).max(MAX_BULK_ENTRIES2),EntrySqlQueryRequestSchema=z78.object({sql:z78.string().min(1)}),BulkCreateEntriesRequestSchema=z78.object({entries:z78.array(EntryMutationBodySchema2).min(1).max(MAX_BULK_ENTRIES2)}),BulkUpdateEntriesRequestSchema=z78.union([z78.object({ids:entryIdsSchema,body:EntryMutationBodySchema2}),z78.object({where:EntryWhereSchema2,body:EntryMutationBodySchema2}),z78.object({updates:z78.array(z78.object({id:z78.uuid(),body:EntryMutationBodySchema2})).min(1).max(MAX_BULK_ENTRIES2)})]),BulkDeleteEntriesRequestSchema=z78.union([z78.object({ids:entryIdsSchema,locale:z78.string().min(1).optional()}),z78.object({where:EntryWhereSchema2,locale:z78.string().min(1).optional()})]),EntrySqlQueryResponseSchema=z78.object({data:z78.array(z78.record(z78.string(),z78.unknown())),meta:z78.object({rowCount:z78.number().int().nonnegative(),truncated:z78.boolean()})}),EntrySqlQueryResponseDTO=createDTO(EntrySqlQueryResponseSchema),BulkCreateEntriesResponseSchema2=z78.object({data:z78.array(EntryDTOSchema2),meta:z78.object({created:z78.number().int().nonnegative()})}),BulkCreateEntriesResponseDTO=createDTO(BulkCreateEntriesResponseSchema2),BulkUpdateEntriesResponseSchema2=z78.object({data:z78.array(EntryDTOSchema2),meta:z78.object({updated:z78.number().int().nonnegative(),missing:z78.array(z78.string())})}),BulkUpdateEntriesResponseDTO=createDTO(BulkUpdateEntriesResponseSchema2),BulkDeleteEntriesResponseSchema2=z78.object({data:z78.array(EntryDTOSchema2),meta:z78.object({deleted:z78.number().int().nonnegative(),missing:z78.array(z78.string())})}),BulkDeleteEntriesResponseDTO=createDTO(BulkDeleteEntriesResponseSchema2)}});import{z as z79}from"zod";var UniqueConflictSchema,UniqueConflictErrorSchema,init_unique_conflict_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/unique-conflict.dto.js"(){"use strict";UniqueConflictSchema=z79.object({index:z79.number().int().nonnegative(),contentType:z79.string(),field:z79.string(),value:z79.string(),against:z79.enum(["stored","batch"]),ownerDocumentId:z79.uuid().optional(),ownerIndex:z79.number().int().nonnegative().optional()}),UniqueConflictErrorSchema=z79.object({code:z79.literal("unique_conflict"),message:z79.string(),conflicts:z79.array(UniqueConflictSchema),truncated:z79.boolean().optional()})}});import{z as z80}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=z80.object({kind:z80.literal("unique_conflict"),contentType:z80.string(),field:z80.string(),value:z80.string(),documentCount:z80.number().int().positive(),documentIds:z80.array(z80.uuid()),documentIdsTruncated:z80.boolean().optional()}),SchemaTransitionIssueSchema=UniqueConflictIssueSchema,SchemaTransitionRejectedErrorSchema=z80.object({code:z80.literal("schema_transition_rejected"),message:z80.string(),issues:z80.array(SchemaTransitionIssueSchema),truncated:z80.boolean().optional()})}});import{z as z81}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=z81.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_TYPE_NAME_PATTERN),CmsFieldNameSchema=z81.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_FIELD_NAME_PATTERN),CmsCollectionOrderSchema=z81.array(CmsContentTypeNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsFieldOrderSchema=z81.array(CmsFieldNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsListSortSchema=z81.object({field:CmsFieldNameSchema,direction:z81.enum(["asc","desc"])}),CmsDisplayDefaultsDTOSchema=z81.object({collectionOrder:CmsCollectionOrderSchema.nullable(),fieldOrders:z81.record(CmsContentTypeNameSchema,CmsFieldOrderSchema),listSorts:z81.record(CmsContentTypeNameSchema,CmsListSortSchema)}),CmsDisplayDefaultsDTO=createDTO(CmsDisplayDefaultsDTOSchema),CmsCollectionOrderRequestSchema=z81.object({order:CmsCollectionOrderSchema}),CmsFieldOrderRequestSchema=z81.object({order:CmsFieldOrderSchema}),CmsDisplayDefaultsResponseSchema=createResponseSchema2(CmsDisplayDefaultsDTOSchema)}});import{z as z82}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=z82.enum(MIGRATION_SOURCE_PLATFORMS)}});import{z as z83}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=z83.enum(CLIENT_TRACKED_EVENTS),TrackProjectEventRequestSchema=z83.object({event:ClientTrackedEventSchema,properties:z83.record(z83.string(),z83.unknown()).default({})})}});import{z as z84}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=z84.object({id:z84.string(),name:z84.string()}),AssetDTOSchema2=z84.object({id:z84.string(),name:z84.string(),type:AssetTypeSchema,originalFileName:z84.string().nullable(),parentId:z84.string().nullable(),mimeType:z84.string().nullable(),fileSize:z84.number().nullable(),url:z84.string().nullable(),storageKey:z84.string().nullable(),createdAt:z84.string(),updatedAt:z84.string(),altText:z84.string().nullable().optional(),caption:z84.string().nullable().optional(),aiCaption:z84.string().nullable().optional(),aiAltText:z84.string().nullable().optional(),aiTags:z84.array(z84.string()).nullable().optional(),aiPrimaryColor:z84.string().nullable().optional(),aiProcessingStatus:z84.string().nullable().optional(),width:z84.number().nullable().optional(),height:z84.number().nullable().optional(),path:z84.array(AssetPathItemSchema).optional(),hasChildren:z84.boolean().optional()}),AssetDTO=createDTO(AssetDTOSchema2),AssetTreeNodeDTOSchema=AssetDTOSchema2.extend({children:z84.lazy(()=>z84.array(AssetTreeNodeDTOSchema)).optional()}),AssetTreeNodeDTO=createDTO(AssetTreeNodeDTOSchema),AssetResponseSchema2=createResponseSchema2(AssetDTOSchema2),AssetListResponseSchema=createResponseSchema2(z84.array(AssetDTOSchema2)),MediaStorageLimitErrorSchema=z84.object({error:z84.string(),code:z84.literal("media_storage_limit_exceeded"),usedBytes:z84.number().int().nonnegative(),limitBytes:z84.number().int().positive(),incomingBytes:z84.number().int().nonnegative()}),AssetReferenceScopeSchema=z84.enum(["current","main","live"]),ASSET_REFERENCE_IMPACT_FILE_LIMIT=50,AssetReferenceImpactRequestSchema=z84.object({assetIds:z84.array(z84.uuid()).min(1).max(ASSET_REFERENCE_IMPACT_FILE_LIMIT),scopes:z84.array(AssetReferenceScopeSchema).min(1).optional()}),AssetReferenceImpactSelectionDTOSchema=z84.object({totalFiles:z84.number().int().nonnegative(),checkedFiles:z84.number().int().nonnegative(),limit:z84.number().int().positive()}),AssetReferenceFindingDTOSchema=z84.object({assetId:z84.uuid(),entryId:z84.string(),documentId:z84.string(),contentType:z84.string(),locale:z84.string().nullable(),slug:z84.string(),fieldPath:z84.string()}),AssetReferenceScopeResultDTOSchema=z84.object({scope:AssetReferenceScopeSchema,label:z84.string(),state:z84.enum(["available","not-published","failed"]),coverage:z84.enum(["complete","partial","failed"]),referenceCount:z84.number().int().nonnegative().optional(),codeReferenceCount:z84.number().int().nonnegative().optional(),referencedAssetIds:z84.array(z84.uuid()).optional(),references:z84.array(AssetReferenceFindingDTOSchema),reason:z84.enum(["timeout","unavailable"]).optional()}),AssetReferenceScopeResultDTO=createDTO(AssetReferenceScopeResultDTOSchema),AssetReferenceImpactEventDTOSchema=z84.discriminatedUnion("type",[z84.object({type:z84.literal("selection"),data:AssetReferenceImpactSelectionDTOSchema}),z84.object({type:z84.literal("scope"),data:AssetReferenceScopeResultDTOSchema}),z84.object({type:z84.literal("complete")})]),AssetReferenceImpactEventDTO=createDTO(AssetReferenceImpactEventDTOSchema),AssetReferenceReplacementRequestSchema=z84.object({replacementAssetId:z84.uuid()}),AssetReferenceReplacementResultSchema=z84.object({referencesReplaced:z84.number().int().nonnegative(),entriesChanged:z84.number().int().nonnegative()}),AssetReferenceReplacementResponseSchema=createResponseSchema2(AssetReferenceReplacementResultSchema),AssetReferenceReplacementPreviewResponseSchema=createResponseSchema2(AssetReferenceReplacementResultSchema),AssetCodeReferenceReplacementResultSchema=z84.object({referencesReplaced:z84.number().int().nonnegative(),filesChanged:z84.number().int().nonnegative(),commitSha:z84.string().nullable()}),AssetReferenceReplacementErrorCodeSchema=z84.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=z84.object({error:z84.string(),code:AssetReferenceReplacementErrorCodeSchema}),ASSET_REMOVAL_ASSET_LIMIT=200,AssetRemovalIntentSchema=z84.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=z84.object({intent:AssetRemovalIntentSchema,assetIds:z84.array(z84.uuid()).min(1).max(ASSET_REMOVAL_ASSET_LIMIT),replacementAssetId:z84.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=z84.object({id:z84.uuid(),intent:AssetRemovalIntentSchema,assetIds:z84.array(z84.uuid()),replacementAssetId:z84.uuid().nullable(),expiresAt:z84.iso.datetime(),undoable:z84.boolean(),requestedByMe:z84.boolean()}),AssetRemovalOperationDTO=createDTO(AssetRemovalOperationDTOSchema),AssetRemovalScheduleResultDTOSchema=AssetRemovalOperationDTOSchema.extend({codeReplacement:AssetCodeReferenceReplacementResultSchema.optional()}),AssetRemovalScheduleResultDTO=createDTO(AssetRemovalScheduleResultDTOSchema),AssetRemovalErrorCodeSchema=z84.enum(["asset_removal.asset_not_found","asset_removal.replacement_not_found","asset_removal.already_finalized"]),AssetRemovalErrorSchema=z84.object({error:z84.string(),code:AssetRemovalErrorCodeSchema})}});import{z as z85}from"zod";var TranslationDTOSchema2,TranslationDTO,init_translation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/translation.dto.js"(){"use strict";init_create_dto();TranslationDTOSchema2=z85.object({key:z85.string(),value:z85.string().optional(),defaultValue:z85.string(),locale:z85.string()}),TranslationDTO=createDTO(TranslationDTOSchema2)}});import{z as z86}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=z86.object({id:z86.string(),name:z86.string(),type:z86.enum(["file","folder"]),path:z86.string(),children:z86.lazy(()=>z86.array(DocumentNodeDTOSchema)).optional()}),DocumentTreeDTOSchema=z86.array(DocumentNodeDTOSchema),DocumentPathDTOSchema=z86.object({path:z86.string(),exists:z86.boolean(),type:z86.enum(["file","folder"]).optional()}),DocumentPathDTO=createDTO(DocumentPathDTOSchema),DocumentTreeResponseSchema=createResponseSchema2(DocumentTreeDTOSchema),DocumentPathResponseSchema=createResponseSchema2(DocumentPathDTOSchema)}});import{z as z87}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=z87.enum(["text","email","textarea","number","phone","url","select","checkbox","date","hidden","file"]),FormFieldValidationSchema=z87.object({minLength:z87.number().optional(),maxLength:z87.number().optional(),min:z87.number().optional(),max:z87.number().optional(),pattern:z87.string().optional(),maxFileSize:z87.number().optional(),accept:z87.array(z87.string()).optional()}),FormFieldSchema=z87.object({type:FormFieldTypeSchema,label:z87.string(),placeholder:z87.string().optional(),required:z87.boolean().optional(),defaultValue:z87.string().optional(),options:z87.array(z87.string()).optional(),validation:FormFieldValidationSchema.optional()}),FormFieldsSchema=z87.record(z87.string(),FormFieldSchema),FormContentSchema2=z87.object({name:z87.string().min(1).max(255),label:z87.string().min(1).max(255),fields:FormFieldsSchema}).strict(),FormUpdateSchema2=FormContentSchema2.partial().refine(update=>update.name!==void 0||update.label!==void 0||update.fields!==void 0,{message:"Pass at least one of name, label, or fields."})}});import{z as z88}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=z88.array(ProjectMessageDTOSchema),ChatMessagesPageDTOSchema=z88.object({items:z88.array(ProjectMessagePublicDTOSchema),nextCursor:z88.string().nullable()}),ChatLiveTurnDTOSchema=z88.object({invocationId:z88.string(),step:z88.enum(["preparing","working","compacting","merging"]),startedAt:z88.string(),continuesInvocationId:z88.string().nullable().optional()}),ChatLiveTurnStateDTOSchema=z88.object({threadId:z88.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable()}),ChatLiveTurnStateDTO=createDTO(ChatLiveTurnStateDTOSchema),ChatThreadMessageDTOSchema=z88.object({id:z88.string(),role:z88.enum(["user","assistant"]),parts:z88.array(z88.unknown()),metadata:z88.record(z88.string(),z88.unknown()).nullable(),versionId:z88.string().nullable().optional(),createdAt:z88.date().transform(value=>value.toISOString()),providerMessageId:z88.string().nullable().optional(),invocationId:z88.string().nullable().optional(),invocationStatus:z88.string().nullable().optional(),invocationTerminalReason:z88.string().nullable().optional()}),ChatAttentionDTOSchema=z88.object({type:z88.literal("merge_conflict"),merge:z88.object({mergeId:z88.string().uuid(),projectId:z88.string(),fromBranch:z88.string(),toBranch:z88.string()}),publishAfterMerge:z88.boolean()}),ChatThreadMessagesPageDTOSchema=z88.object({threadId:z88.string().nullable(),title:z88.string().nullable(),messages:z88.array(ChatThreadMessageDTOSchema),nextCursor:z88.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable().optional(),attention:ChatAttentionDTOSchema.nullable().optional()}),ChatReplayOutcomeDTOSchema=z88.object({kind:z88.literal("replay"),threadId:z88.string(),userMessageId:z88.string()}),ChatQueuedOutcomeDTOSchema=z88.object({kind:z88.literal("queued"),threadId:z88.string(),userMessageId:z88.string(),blockingRootId:z88.string()}),ChatBusyOutcomeDTOSchema=z88.object({kind:z88.literal("busy"),threadId:z88.string(),userMessageId:z88.string(),blockingRootId:z88.string().optional()}),ChatRefusedOutcomeDTOSchema=z88.object({kind:z88.literal("refused"),threadId:z88.string(),userMessageId:z88.string(),refusedInvocationId:z88.string(),terminalReason:z88.string()}),ChatNonStreamingOutcomeDTOSchema=z88.discriminatedUnion("kind",[ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema]),ChatDeletionDTOSchema=z88.object({success:z88.boolean(),deletedCount:z88.number()}),ChatDeletionDTO=createDTO(ChatDeletionDTOSchema),ChatMessageListResponseSchema=createResponseSchema2(ChatMessageListDTOSchema),ChatMessagesPageResponseSchema=createResponseSchema2(ChatMessagesPageDTOSchema),ChatDeletionResponseSchema=createResponseSchema2(ChatDeletionDTOSchema),ChatClearErrorDTOSchema=z88.object({code:z88.enum(["retained_conflict_busy","retained_conflict_cleanup_failed"]),message:z88.string()})}});import{z as z89}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=z89.object({url:z89.string().url(),key:z89.string(),size:z89.number(),contentType:z89.string(),uploadedAt:CommonSchemas.timestamp}),UploadResultDTO=createDTO(UploadResultDTOSchema),UploadResultResponseSchema=createResponseSchema2(UploadResultDTOSchema)}});import{z as z90}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=z90.object({canAccess:z90.boolean(),permissions:z90.record(z90.string(),z90.boolean()),role:z90.string().nullable()}),ServicePermissionsDTO=createDTO(ServicePermissionsDTOSchema),ServicePermissionsResponseSchema=createResponseSchema2(ServicePermissionsDTOSchema)}});import{z as z91}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:z91.string().trim().default(""),sort:z91.enum(["recent","name","relevance"]).default("recent"),category:z91.string().optional()})}});import{z as z92}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=z92.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),DomainSourceSchema=z92.enum(["fimo","external"]),PaymentStatusSchema=z92.enum(["pending","paid","failed","refunded"]),DomainDTOSchema=z92.object({id:z92.string().uuid(),domain:z92.string(),status:DomainStatusSchema,source:DomainSourceSchema,registrationDate:CommonSchemas.timestamp.nullable(),expirationDate:CommonSchemas.timestamp.nullable(),autoRenew:z92.boolean(),price:z92.number().int().nullable(),renewalPrice:z92.number().int().nullable(),paymentStatus:PaymentStatusSchema.nullable(),checkoutUrl:z92.string().nullable(),failureReason:z92.string().nullable(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),DomainDTO=createDTO(DomainDTOSchema),DomainSearchResultDTOSchema=z92.object({domain:z92.string(),available:z92.boolean(),premium:z92.boolean(),price:z92.number().nullable(),renewalPrice:z92.number().nullable(),purchaseType:z92.string().nullable()}),DomainSearchResultDTO=createDTO(DomainSearchResultDTOSchema),DomainPricingDTOSchema=z92.object({domain:z92.string(),price:z92.number().nullable(),renewalPrice:z92.number().nullable(),premium:z92.boolean(),allowedYears:z92.array(z92.number().int().positive())}),DomainPricingDTO=createDTO(DomainPricingDTOSchema),DomainContactSchema=z92.object({firstName:z92.string().max(100),lastName:z92.string().max(100),companyName:z92.string().max(100).optional(),address1:z92.string().max(255),address2:z92.string().max(255).optional(),city:z92.string().max(100),state:z92.string().max(100),zip:z92.string().max(20),country:z92.string().max(2),phone:z92.string().max(30),email:z92.union([z92.string().email().max(255),z92.literal("")])}),DomainContactDTO=createDTO(DomainContactSchema),UpdateDomainContactsRequestSchema=z92.object({firstName:z92.string().min(1).max(100),lastName:z92.string().min(1).max(100),companyName:z92.string().max(100).optional(),address1:z92.string().min(1).max(255),address2:z92.string().max(255).optional(),city:z92.string().min(1).max(100),state:z92.string().min(1).max(100),zip:z92.string().min(1).max(20),country:z92.string().min(1).max(2),phone:z92.string().min(1).max(30),email:z92.string().email().max(255)}),SearchDomainsRequestSchema=z92.object({keyword:z92.string().min(1).max(100),tldFilter:z92.array(z92.string()).optional()}),CheckAvailabilityRequestSchema=z92.object({domains:z92.array(z92.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=z92.string().min(1).max(255).regex(DOMAIN_NAME_REGEX,{message:"Invalid domain name"}),PurchaseDomainRequestSchema=z92.object({domain:DomainNameSchema,years:z92.number().int().min(1).max(10).optional().default(3),autoRenew:z92.boolean().optional().default(!0)}),UpdateDomainSettingsRequestSchema=z92.object({autoRenew:z92.boolean().optional()}),RenewDomainRequestSchema=z92.object({years:z92.number().int().min(1).max(10).optional().default(1),autoRenew:z92.boolean().optional().default(!0)}),DomainResponseSchema=createResponseSchema2(DomainDTOSchema),DomainListResponseSchema=createResponseSchema2(z92.array(DomainDTOSchema)),DomainSearchResultListResponseSchema=createResponseSchema2(z92.array(DomainSearchResultDTOSchema)),DomainPricingResponseSchema=createResponseSchema2(DomainPricingDTOSchema),DomainContactResponseSchema=createResponseSchema2(DomainContactSchema.nullable()),ContactVerificationStatusSchema=z92.object({verified:z92.boolean(),email:z92.string().nullable(),verifyBy:z92.string().nullable()}),ContactVerificationStatusResponseSchema=createResponseSchema2(ContactVerificationStatusSchema)}});import{z as z93}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=z93.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=z93.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=z93.object({txtName:z93.string().nullable().optional(),txtValue:z93.string().nullable().optional(),httpUrl:z93.string().nullable().optional(),httpBody:z93.string().nullable().optional(),cname:z93.string().nullable().optional(),cnameTarget:z93.string().nullable().optional()}),SSLValidationErrorSchema=z93.object({message:z93.string()}),OwnershipVerificationSchema=z93.object({type:z93.string(),name:z93.string(),value:z93.string()}),ProjectDomainSSLDTOSchema=z93.object({status:z93.string(),method:z93.string().nullable(),type:z93.string().nullable(),validationRecords:z93.array(SSLValidationRecordSchema).nullable().optional(),validationErrors:z93.array(SSLValidationErrorSchema).nullable().optional()}),DomainProviderSchema=z93.enum(["cloudflare","saas_custom_domains"]),DomainTypeSchema=z93.enum(["subdomain","apex"]),RedirectConfigSchema=z93.object({type:z93.enum(["apex_to_www","www_to_apex"]),linkedDomainId:z93.string()}).nullable().optional(),ProjectDomainDTOSchema=z93.object({id:z93.string(),hostname:z93.string(),status:z93.string(),ssl:ProjectDomainSSLDTOSchema,ownershipVerification:z93.array(OwnershipVerificationSchema).nullable().optional(),cnameTarget:z93.string(),scdCnameTarget:z93.string().optional(),apexTargets:z93.array(z93.string()),dnsAutoConfigured:z93.boolean(),createdAt:CommonSchemas.timestamp,provider:DomainProviderSchema,domainType:DomainTypeSchema,redirectConfig:RedirectConfigSchema,migrationStatus:z93.string().nullable().optional()}),ProjectDomainDTO=createDTO(ProjectDomainDTOSchema),ProjectDomainListResponseSchema=createResponseSchema2(z93.array(ProjectDomainDTOSchema)),ProjectDomainResponseSchema=createResponseSchema2(ProjectDomainDTOSchema),AddProjectDomainRequestSchema=z93.object({hostname:z93.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:z93.boolean().optional()}),CheckProjectDomainHostnameReasonSchema=z93.enum(["invalid_hostname","fimo_owned_hostname","reserved","taken_by_another_project","taken_by_this_project"]),CheckProjectDomainHostnameResponseSchema=createResponseSchema2(z93.object({available:z93.boolean(),reason:CheckProjectDomainHostnameReasonSchema.optional()})),DeleteProjectDomainResponseSchema=createResponseSchema2(z93.object({success:z93.boolean(),hostname:z93.string()}))}});import{z as z94}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=z94.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain"]),CheckProjectSubdomainResponseSchema=createResponseSchema2(z94.object({available:z94.boolean(),reason:SubdomainCheckReasonSchema.optional()})),UpdateProjectSubdomainRequestSchema=z94.object({slug:z94.string().min(1).max(63).regex(SUBDOMAIN_REGEX,{error:"Invalid subdomain shape"})}),UpdateProjectSubdomainErrorReasonSchema=z94.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain","kv_sync_failed","hosting_sync_failed"]),UpdateProjectSubdomainResponseSchema=createResponseSchema2(z94.object({subdomain:z94.string(),subdomainUpdatedAt:z94.coerce.date()})),SubdomainSuggestionsQuerySchema=z94.object({base:z94.string().max(100).optional(),max:z94.coerce.number().int().min(1).max(10).optional()}),SubdomainSuggestionsResponseSchema=createResponseSchema2(z94.object({suggestions:z94.array(z94.string())}))}});import{z as z95}from"zod";var PROJECT_TRANSFER_BLOCKER_CODES,ProjectTransferBlockerCodeSchema,ProjectTransferBlockerDTO,TransferProjectRequestSchema,ProjectTransferResultDTO,init_project_transfer_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-transfer.dto.js"(){"use strict";init_create_dto();PROJECT_TRANSFER_BLOCKER_CODES=["same_organization","concurrent_transfer","agent_work_in_flight","unsettled_agent_holds","unsettled_usage_ledger","project_integrations_present","source_registered_domain"],ProjectTransferBlockerCodeSchema=z95.enum(PROJECT_TRANSFER_BLOCKER_CODES),ProjectTransferBlockerDTO=createDTO(z95.object({code:ProjectTransferBlockerCodeSchema,message:z95.string(),count:z95.number().int().nonnegative().optional()})),TransferProjectRequestSchema=z95.object({targetOrganizationId:z95.string().min(1)}),ProjectTransferResultDTO=createDTO(z95.object({projectId:z95.string(),sourceOrganizationId:z95.string(),targetOrganizationId:z95.string(),movedThreads:z95.number().int().nonnegative(),revokedInvites:z95.number().int().nonnegative(),revokedGrants:z95.number().int().nonnegative(),preservedGrants:z95.number().int().nonnegative(),warnings:z95.array(z95.string())}))}});import{z as z96}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=z96.object({translated:z96.number().int().nonnegative(),total:z96.number().int().nonnegative()}),ProjectLocaleStatsItemSchema=z96.object({locale:z96.string(),isDefault:z96.boolean(),entries:ProjectLocaleCoverageSchema,labels:ProjectLocaleCoverageSchema}),ProjectLocaleStatsSchema=z96.object({defaultLocale:z96.string(),locales:z96.array(ProjectLocaleStatsItemSchema)}),ProjectLocaleStatsDTO=createDTO(ProjectLocaleStatsSchema),ProjectLocaleStatsResponseSchema2=createResponseSchema2(ProjectLocaleStatsSchema),AddProjectLocaleRequestSchema=z96.object({locale:z96.string().min(1).max(40)}),RemoveProjectLocaleParamsSchema=z96.object({locale:z96.string().min(1).max(40)}),ProjectLocaleMutationSchema=z96.object({locale:z96.string()}),ProjectLocaleMutationDTO=createDTO(ProjectLocaleMutationSchema),ProjectLocaleMutationResponseSchema2=createResponseSchema2(ProjectLocaleMutationSchema),RemoveProjectLocaleSchema=z96.object({locale:z96.string(),entriesDeleted:z96.number().int().nonnegative(),labelsDeleted:z96.number().int().nonnegative()}),RemoveProjectLocaleDTO=createDTO(RemoveProjectLocaleSchema),RemoveProjectLocaleResponseSchema2=createResponseSchema2(RemoveProjectLocaleSchema)}});import{z as z97}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=z97.enum(GENERATION_QUALITIES),GenerationTaskIdSchema=z97.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=z97.object({task:GenerationTaskIdSchema,quality:GenerationQualitySchema.optional(),costUsd:z97.number(),credits:z97.number().optional(),billingMode:z97.enum(["fimo-credits","provider-account"]).optional(),confidence:z97.enum(["exact","estimated","metered"]),basis:z97.string()}),GenerationTaskEstimateDTO=createDTO(GenerationTaskEstimateDTOSchema)}});import{z as z98}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=z98.object({options:z98.record(z98.string(),z98.unknown()),name:z98.string().optional(),parentId:z98.string().nullable().optional(),altText:z98.string().optional(),caption:z98.string().optional()}),GenerateRequestDTOSchema=GenerateRequestBaseSchema.extend({task:z98.string().min(1).optional(),model:z98.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=z98.object({jobId:z98.string(),status:z98.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema2.optional(),error:z98.string().nullable().optional(),credits:z98.number().optional(),costUsd:z98.number().optional(),billingMode:z98.enum(["fimo-credits","provider-account"]).optional(),task:GenerationTaskIdSchema.optional(),quality:GenerationQualitySchema.optional()}),GenerateResponseDTO=createDTO(GenerateResponseDataSchema),GenerateResponseSchema2=createResponseSchema2(GenerateResponseDataSchema),GenerateErrorSchema=z98.object({error:z98.string(),code:z98.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:z98.array(GenerationTaskIdSchema).optional(),availableModels:z98.array(z98.string()).optional(),issues:z98.array(z98.unknown()).optional()})}});import{z as z99}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=z99.enum(["string","number","integer","boolean","enum","array","unknown"]),FlagSpecSchema=z99.object({name:z99.string(),key:z99.string(),description:z99.string(),type:FlagTypeSchema,required:z99.boolean(),defaultValue:z99.unknown().optional(),enumValues:z99.array(z99.string()).optional(),isArray:z99.boolean()}),AssetModelPriceSchema=z99.object({unitPrice:z99.number(),unit:z99.string(),confidence:z99.enum(["exact","estimated","metered"])}),AssetModelDTOSchema=z99.object({id:z99.string(),shortName:z99.string(),provider:z99.string(),source:z99.string(),modality:z99.enum(["image","video","audio"]),tags:z99.array(z99.string()),displayName:z99.string(),description:z99.string(),flags:z99.array(FlagSpecSchema),price:AssetModelPriceSchema.nullable()}),AssetModelDTO=createDTO(AssetModelDTOSchema),AssetModelEstimateDTOSchema=z99.object({model:z99.string(),costUsd:z99.number(),credits:z99.number(),billingMode:z99.enum(["fimo-credits","provider-account"]),confidence:z99.enum(["exact","estimated","metered"]),basis:z99.string()}),AssetModelEstimateDTO=createDTO(AssetModelEstimateDTOSchema)}});import{z as z100}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=z100.object({tourId:z100.string(),version:z100.string(),status:z100.string(),completedAt:z100.coerce.date()}),UserTourDTO=createDTO(UserTourDTOSchema),UserTourResponseSchema=createResponseSchema2(UserTourDTOSchema),UserTourListResponseSchema=createResponseSchema2(z100.array(UserTourDTOSchema))}});import{z as z101}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=z101.enum(SUPPORT_REPORT_CATEGORIES.map(category=>category.value)),SUPPORT_REPORT_STATUSES=["new","in_progress","waiting","resolved","duplicate","irrelevant","ignored"],SupportReportStatusSchema=z101.enum(SUPPORT_REPORT_STATUSES),SupportReportSourceSchema=z101.enum(["app","cli","agent"]),SupportReportDeliveryStatusSchema=z101.enum(["pending","delivered","failed"]),SUPPORT_REPORT_LINK_KINDS=["linear","pylon","project","sentry","grafana","other"],SupportReportLinkKindSchema=z101.enum(SUPPORT_REPORT_LINK_KINDS),SupportReportEventKindSchema=z101.enum(["report_created","report_updated","message","link_added","link_removed","delivery"]),SupportReportActorKindSchema=z101.enum(["user","agent","system"]),SupportReportTagSchema=z101.string().trim().min(1).max(50),SupportReportHttpUrlSchema=z101.url({protocol:/^https?$/}).max(2e3),SupportReportContextInputSchema=z101.object({organization:z101.object({id:z101.string().trim().min(1).max(255),name:z101.string().trim().max(240).optional()}),project:z101.object({id:z101.uuid(),name:z101.string().trim().max(240).optional(),createdAt:z101.coerce.date().optional()}).optional(),environment:z101.string().trim().max(255).optional(),clientVersion:z101.string().trim().max(64).optional()}),CreateSupportReportInputSchema=z101.object({message:z101.string().trim().min(1).max(2e4),category:SupportReportCategorySchema,source:SupportReportSourceSchema.default("cli"),context:SupportReportContextInputSchema}),SupportReportListQuerySchema=z101.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),source:SupportReportSourceSchema.optional(),tag:SupportReportTagSchema.optional(),query:z101.string().trim().max(200).optional(),limit:z101.coerce.number().int().min(1).max(100).default(50),offset:z101.coerce.number().int().min(0).default(0)}),UpdateSupportReportInputSchema=z101.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),tags:z101.array(SupportReportTagSchema).max(20).optional(),duplicateOfReportId:z101.uuid().nullable().optional(),note:z101.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=z101.object({message:z101.string().trim().min(1).max(2e4)}),CreateSupportReportLinkInputSchema=z101.object({kind:SupportReportLinkKindSchema,label:z101.string().trim().min(1).max(240),url:SupportReportHttpUrlSchema,externalId:z101.string().trim().max(240).optional()}),SupportReportActorDTOSchema=z101.object({kind:SupportReportActorKindSchema,id:z101.string().nullable(),name:z101.string().nullable()}),SupportReportLinkDTOSchema=z101.object({id:z101.uuid(),kind:SupportReportLinkKindSchema,label:z101.string(),url:SupportReportHttpUrlSchema,externalId:z101.string().nullable(),addedBy:SupportReportActorDTOSchema,createdAt:z101.coerce.date()}),SupportReportLinkDTO=createDTO(SupportReportLinkDTOSchema),SupportReportEventDTOSchema=z101.object({id:z101.uuid(),kind:SupportReportEventKindSchema,body:z101.string().nullable(),metadata:z101.record(z101.string(),z101.unknown()),actor:SupportReportActorDTOSchema,createdAt:z101.coerce.date()}),SupportReportEventDTO=createDTO(SupportReportEventDTOSchema),SupportReportSummaryDTOSchema=z101.object({id:z101.uuid(),status:SupportReportStatusSchema,category:SupportReportCategorySchema,tags:z101.array(z101.string()),source:SupportReportSourceSchema,message:z101.string(),reporter:z101.object({id:z101.string().nullable(),name:z101.string().nullable(),email:z101.string().nullable()}),organization:z101.object({id:z101.string().nullable(),name:z101.string()}),project:z101.object({id:z101.uuid().nullable(),name:z101.string()}).nullable(),assignee:SupportReportActorDTOSchema.nullable(),delivery:z101.object({status:SupportReportDeliveryStatusSchema,pylonIssueId:z101.string().nullable(),pylonIssueUrl:SupportReportHttpUrlSchema.nullable(),error:z101.string().nullable(),deliveredAt:z101.coerce.date().nullable()}).nullable(),duplicateOfReportId:z101.uuid().nullable(),resolvedAt:z101.coerce.date().nullable(),createdAt:z101.coerce.date(),updatedAt:z101.coerce.date()}),SupportReportSummaryDTO=createDTO(SupportReportSummaryDTOSchema),SupportReportDetailDTOSchema=SupportReportSummaryDTOSchema.extend({environment:z101.string().nullable(),clientVersion:z101.string().nullable(),links:z101.array(SupportReportLinkDTOSchema),events:z101.array(SupportReportEventDTOSchema)}),SupportReportDetailDTO=createDTO(SupportReportDetailDTOSchema),SupportReportListDTOSchema=z101.object({reports:z101.array(SupportReportSummaryDTOSchema),total:z101.number().int().nonnegative(),statusCounts:z101.object({new:z101.number().int().nonnegative(),in_progress:z101.number().int().nonnegative(),waiting:z101.number().int().nonnegative(),resolved:z101.number().int().nonnegative(),duplicate:z101.number().int().nonnegative(),irrelevant:z101.number().int().nonnegative(),ignored:z101.number().int().nonnegative()}),limit:z101.number().int().positive(),offset:z101.number().int().nonnegative()}),SupportReportListDTO=createDTO(SupportReportListDTOSchema),CreateSupportReportResultDTOSchema=z101.object({id:z101.uuid(),deliveryStatus:SupportReportDeliveryStatusSchema,message:z101.string()}),CreateSupportReportResultDTO=createDTO(CreateSupportReportResultDTOSchema)}});import{z as z102}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=z102.iso.datetime({offset:!0}).pipe(z102.coerce.date()),OpsRecentChatInputSchema=z102.object({from:OpsChatTimestampInputSchema,to:OpsChatTimestampInputSchema.optional(),projectEnv:z102.string().trim().min(1).max(255).optional(),limit:z102.coerce.number().int().min(1).max(200).default(100),cursor:z102.string().trim().min(1).max(2e3).optional(),slim:z102.boolean().default(!0),reason:z102.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=z102.object({id:z102.string(),threadId:z102.string(),providerMessageId:z102.string().nullable(),invocationId:z102.string().nullable(),env:z102.string().nullable(),role:z102.string(),parts:z102.array(z102.record(z102.string(),z102.unknown())),metadata:z102.object({status:z102.string().optional(),traceUrl:z102.string().optional(),externalFileChanges:z102.array(z102.unknown()).optional()}),stats:z102.object({toolCount:z102.number().int().nonnegative(),failedToolCount:z102.number().int().nonnegative()}),createdAt:z102.iso.datetime({offset:!0}),project:z102.object({id:z102.string(),name:z102.string(),displayName:z102.string().nullable(),organizationId:z102.string().nullable()})}),OpsRecentChatResponseSchema=z102.object({target:z102.object({backendProfile:OpsBackendProfileSchema,projectEnv:z102.string().nullable()}),window:z102.object({from:z102.iso.datetime({offset:!0}),to:z102.iso.datetime({offset:!0})}),messages:z102.object({items:z102.array(OpsRecentChatMessageSchema),nextCursor:z102.string().nullable()})}),OpsRecentChatResponseDTO=createDTO(OpsRecentChatResponseSchema)}});import{z as z103}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=z103.object({backendProfile:OpsBackendProfileSchema,provider:z103.literal("sentry"),issueId:OpsSentryIssueIdSchema,status:z103.literal("resolved")}),OpsSentryIssueResolutionResponseDTO=createDTO(OpsSentryIssueResolutionResponseSchema),OpsSentryIssueResolutionErrorResponseSchema=z103.object({backendProfile:OpsBackendProfileSchema,provider:z103.literal("sentry"),issueId:OpsSentryIssueIdSchema,resolved:z103.literal(!1),reason:z103.string()}),OpsSentryIssueResolutionErrorResponseDTO=createDTO(OpsSentryIssueResolutionErrorResponseSchema)}});import{z as z104}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=z104.object({packageManager:z104.string().trim().min(1).max(200).nullable(),trackedLockfiles:z104.array(z104.enum(OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES)),sourceRevision:z104.string().trim().min(1)}),OpsProjectPackageManagerSchema=z104.object({target:z104.object({backendProfile:OpsBackendProfileSchema,projectId:z104.uuid(),projectEnv:z104.string().trim().min(1).max(255)}),...OpsProjectPackageManagerSummarySchema.shape}),OpsProjectPackageManagerDTO=createDTO(OpsProjectPackageManagerSchema)}});import{z as z105}from"zod";var OPS_AGENT_BRANCH_DISCARD_LIMIT,OpsAgentBranchAllowlistSchema,OpsAgentBranchRecoveredOwnerSchema,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=z105.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"}),OpsAgentBranchRecoveredOwnerSchema=z105.object({branch:BranchSchema,sessionId:z105.uuid()}),OpsAgentBranchDiscardPlanInputSchema=z105.object({branches:OpsAgentBranchAllowlistSchema,reason:z105.string().trim().min(1).max(1e3),recoveredOwners:z105.array(OpsAgentBranchRecoveredOwnerSchema).max(OPS_AGENT_BRANCH_DISCARD_LIMIT).optional()}).refine(input=>(input.recoveredOwners??[]).every(owner=>input.branches.includes(owner.branch)),{error:"every recovered owner must name a Branch from the allowlist",path:["recoveredOwners"]}).refine(input=>{let owners=input.recoveredOwners??[];return new Set(owners.map(owner=>owner.branch)).size===owners.length},{error:"recovered owners must not repeat a Branch",path:["recoveredOwners"]}).refine(input=>{let owners=input.recoveredOwners??[];return new Set(owners.map(owner=>owner.sessionId)).size===owners.length},{error:"recovered owners must not repeat a session",path:["recoveredOwners"]}),OpsAgentBranchDiscardApplyInputSchema=OpsAgentBranchDiscardPlanInputSchema.safeExtend({planHash:z105.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","recovery_direct_owner_present","recovery_session_not_found","recovery_session_not_project_agent_run","recovery_session_not_terminal","recovery_session_already_bound"],OpsAgentBranchDiscardBlockerSchema=z105.enum(OPS_AGENT_BRANCH_DISCARD_BLOCKERS)}});import{z as z106}from"zod";function createAgentRunWebhookEventDataSchema(status){return z106.object({run:z106.object({id:z106.string(),agentName:z106.string(),trigger:z106.string(),status:z106.literal(status),startedAt:z106.string().nullable(),finishedAt:z106.string().nullable(),reason:z106.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=z106.enum(WEBHOOK_EVENT_TYPES),WebhookEntryChangeActionSchema=z106.enum(["created","updated","deleted"]),WebhookEntryChangeReasonSchema=z106.enum(["entry_write","bulk_edit","environment_merge"]),WebhookEnvironmentScopeSchema=z106.enum(["main","all"]),WebhookEnvironmentSelectorSchema=z106.union([WebhookEnvironmentScopeSchema,EnvironmentKeySchema]),EntryChangedWebhookEventDataSchema=z106.object({reason:WebhookEntryChangeReasonSchema,operationId:z106.string().optional(),batch:z106.object({index:z106.number().int().positive(),total:z106.number().int().positive()}).optional(),changes:z106.array(z106.object({action:WebhookEntryChangeActionSchema,contentType:z106.string(),id:z106.string(),documentId:z106.string(),locale:z106.string().nullable()}))}),FormSubmittedWebhookEventDataSchema=z106.object({form:z106.object({id:z106.string(),label:z106.string()}),submission:z106.object({id:z106.string(),data:z106.record(z106.string(),z106.unknown()),submittedAt:z106.string()})}),PublishStartedWebhookEventDataSchema=z106.object({publication:z106.object({status:z106.literal("publishing"),startedAt:z106.string()})}),PublishSucceededWebhookEventDataSchema=z106.object({publication:z106.object({status:z106.literal("published"),url:z106.string(),publishedAt:z106.string(),firstPublish:z106.boolean()})}),PublishFailedWebhookEventDataSchema=z106.object({publication:z106.object({status:z106.literal("failed"),reason:z106.string()})}),PublishUnpublishedWebhookEventDataSchema=z106.object({publication:z106.object({previousUrl:z106.string(),unpublishedAt:z106.string()})});__name(createAgentRunWebhookEventDataSchema,"createAgentRunWebhookEventDataSchema");AgentReviewRequestedWebhookEventDataSchema=z106.object({review:z106.object({runId:z106.string(),agentName:z106.string(),reason:z106.string()}),source:z106.object({branch:z106.string(),revision:z106.string(),anchorBranch:z106.string()})}),AgentReviewResolvedWebhookEventDataSchema=z106.object({review:z106.object({id:z106.string(),runId:z106.string(),agentName:z106.string(),resolution:z106.string()})}),AnalyticsReportReadyWebhookEventDataSchema=z106.object({report:z106.object({weekStart:z106.string(),weekEnd:z106.string(),pageviews:z106.number(),visitors:z106.number(),previousPageviews:z106.number(),previousVisitors:z106.number()})}),MediaAssetWebhookEventDataSchema=z106.object({id:z106.string().nullable(),name:z106.string().nullable(),type:z106.string(),mimeType:z106.string().nullable(),fileSize:z106.number().nullable()}),MediaUploadedWebhookEventDataSchema=z106.object({asset:MediaAssetWebhookEventDataSchema,operation:z106.literal("uploaded")}),MediaUpdatedWebhookEventDataSchema=z106.object({asset:MediaAssetWebhookEventDataSchema,operation:z106.literal("updated")}),MediaDeletedWebhookEventDataSchema=z106.object({asset:MediaAssetWebhookEventDataSchema,operation:z106.literal("deleted")}),DomainCreatedWebhookEventDataSchema=z106.object({domain:z106.object({id:z106.string(),hostname:z106.string(),status:ProjectDomainStatusSchema,sslStatus:SSLStatusSchema})}),DomainDeletedWebhookEventDataSchema=z106.object({domain:z106.object({id:z106.string(),hostname:z106.string()})}),LabelChangedWebhookEventDataSchema=z106.object({changes:z106.array(z106.object({action:z106.enum(["created","updated","deleted"]),key:z106.string(),locale:z106.string(),value:z106.string().nullable()}))}),LocaleCreatedWebhookEventDataSchema=z106.object({locale:z106.object({code:z106.string(),isDefault:z106.boolean()})}),LocaleDefaultChangedWebhookEventDataSchema=z106.object({locale:z106.object({code:z106.string(),previousCode:z106.string()})}),LocaleDeletedWebhookEventDataSchema=z106.object({locale:z106.object({code:z106.string(),entriesDeleted:z106.number().int().nonnegative(),labelsDeleted:z106.number().int().nonnegative()})}),EnvironmentCreatedWebhookEventDataSchema=z106.object({environment:z106.object({name:BranchSchema,parent:BranchSchema})}),EnvironmentDeletedWebhookEventDataSchema=z106.object({environment:z106.object({name:BranchSchema})}),EnvironmentMergedWebhookEventDataSchema=z106.object({merge:z106.object({id:z106.string(),from:BranchSchema,to:BranchSchema,applied:z106.array(z106.object({surface:SurfaceNameSchema,count:z106.number().int().nonnegative()}))})}),BranchRestoredWebhookEventDataSchema=z106.object({branch:z106.object({name:BranchSchema}),version:z106.object({versionId:z106.uuid(),name:z106.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=z106.enum(["entries","forms","publish","agents","analytics","media","domains","labels","locales","environments"]),WebhookDestinationKindSchema=z106.enum(["custom","resend","github","slack"]),WebhookHeaderValueInputSchema=z106.discriminatedUnion("source",[z106.object({source:z106.literal("literal"),value:z106.string().min(1).max(4096).regex(/^[^\r\n]*$/)}),z106.object({source:z106.literal("secret"),key:z106.string().regex(/^[A-Z_][A-Z0-9_]*$/),prefix:z106.string().max(128).regex(/^[^\r\n]*$/).optional()})]),WebhookHeaderInputSchema=z106.object({name:z106.string().min(1).max(128),value:WebhookHeaderValueInputSchema}),WebhookHeaderDTOSchema=z106.object({name:z106.string(),source:z106.enum(["literal","secret"]),secretKey:z106.string().nullable(),secretPrefix:z106.string().nullable(),configured:z106.literal(!0)}),WebhookFilterSchema=z106.object({environment:WebhookEnvironmentSelectorSchema.optional(),formId:z106.string().min(1).max(255).optional(),agentName:z106.string().min(1).max(120).optional(),mediaType:z106.enum(["image","video","audio","document","other"]).optional(),action:WebhookEntryChangeActionSchema.optional(),contentType:z106.string().min(1).max(255).optional(),locale:z106.string().min(1).max(120).optional()}),JsonValueSchema=z106.lazy(()=>z106.union([z106.string(),z106.number(),z106.boolean(),z106.null(),z106.array(JsonValueSchema),z106.record(z106.string(),JsonValueSchema)])),CreateProjectWebhookRequestSchema=z106.object({name:z106.string().trim().min(1).max(120),eventType:WebhookEventTypeSchema,url:z106.url(),enabled:z106.boolean().optional().default(!0),filter:WebhookFilterSchema.optional().default({}),headers:z106.array(WebhookHeaderInputSchema).max(20).optional().default([]),bodyTemplate:JsonValueSchema.nullable().optional().default(null),signingEnabled:z106.boolean().optional().default(!0)}),UpdateProjectWebhookRequestSchema=z106.object({name:z106.string().trim().min(1).max(120).optional(),eventType:WebhookEventTypeSchema.optional(),url:z106.url().optional(),enabled:z106.boolean().optional(),filter:WebhookFilterSchema.optional(),headers:z106.array(WebhookHeaderInputSchema).max(20).optional(),bodyTemplate:JsonValueSchema.nullable().optional(),signingEnabled:z106.boolean().optional()}),TestProjectWebhookRequestSchema=z106.object({eventType:WebhookEventTypeSchema.optional(),data:z106.record(z106.string(),JsonValueSchema).optional()}),WebhookDeliveryStatusSchema=z106.enum(["pending","delivering","retrying","succeeded","failed"]),ProjectWebhookDTOSchema=BaseEntitySchema.extend({projectId:z106.uuid(),name:z106.string(),eventType:WebhookEventTypeSchema,enabled:z106.boolean(),destination:z106.object({host:z106.string(),maskedUrl:z106.string(),kind:WebhookDestinationKindSchema}),filter:WebhookFilterSchema,headers:z106.array(WebhookHeaderDTOSchema),bodyTemplate:JsonValueSchema.nullable(),signingEnabled:z106.boolean(),lastDeliveryStatus:WebhookDeliveryStatusSchema.nullable(),lastDeliveryAt:z106.coerce.date().nullable(),deliveryStats24h:z106.object({succeeded:z106.number().int().nonnegative(),failed:z106.number().int().nonnegative()})}),ProjectWebhookDTO=createDTO(ProjectWebhookDTOSchema),WebhookDeliveryDTOSchema=BaseEntitySchema.extend({webhookId:z106.uuid(),projectId:z106.uuid(),env:BranchSchema,environment:EnvironmentKeySchema,branch:BranchSchema,eventId:z106.uuid(),eventType:WebhookEventTypeSchema,eventVersion:z106.number().int().positive(),test:z106.boolean(),status:WebhookDeliveryStatusSchema,attemptCount:z106.number().int().nonnegative(),responseStatus:z106.number().int().nullable(),lastErrorCode:z106.string().nullable(),lastErrorMessage:z106.string().nullable(),payloadAvailable:z106.boolean(),destination:z106.object({host:z106.string(),maskedUrl:z106.string(),kind:WebhookDestinationKindSchema}),requestHeaders:z106.array(WebhookHeaderDTOSchema),requestBodyExcerpt:z106.string().nullable(),qstashMessageId:z106.string().nullable(),deliveredAt:z106.coerce.date().nullable()}),WebhookDeliveryDTO=createDTO(WebhookDeliveryDTOSchema),WebhookDeliveriesPageSchema=z106.object({items:z106.array(WebhookDeliveryDTOSchema),pagination:z106.object({page:z106.number().int().positive(),limit:z106.number().int().positive(),total:z106.number().int().nonnegative(),totalPages:z106.number().int().positive(),hasMore:z106.boolean()}),stats:z106.object({total:z106.number().int().nonnegative(),succeeded:z106.number().int().nonnegative(),failed:z106.number().int().nonnegative()})}),WebhookDeliveryAttemptDTOSchema=z106.object({id:z106.uuid(),deliveryId:z106.uuid(),attempt:z106.number().int().positive(),status:z106.enum(["delivering","succeeded","failed"]),responseStatus:z106.number().int().nullable(),durationMs:z106.number().int().nonnegative(),responseExcerpt:z106.string().nullable(),errorCode:z106.string().nullable(),errorMessage:z106.string().nullable(),createdAt:z106.coerce.date()}),WebhookDeliveryAttemptDTO=createDTO(WebhookDeliveryAttemptDTOSchema),ProjectWebhookResponseSchema=createResponseSchema2(ProjectWebhookDTOSchema),ProjectWebhooksListResponseSchema=createResponseSchema2(z106.array(ProjectWebhookDTOSchema)),WebhookDeliveriesListResponseSchema=createResponseSchema2(WebhookDeliveriesPageSchema),WebhookDeliveryAttemptsListResponseSchema=createResponseSchema2(z106.array(WebhookDeliveryAttemptDTOSchema))}});import{z as z107}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=z107.object({key:z107.literal("fimo-2"),enabled:z107.boolean(),dismissed:z107.boolean().default(!1),interacted:z107.boolean().default(!1)}),PreviewFeatureDTO=createDTO(PreviewFeatureDTOSchema)}});import{z as z108}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=z108.enum(["active","cancelled","draft","errored","paused","pending","voided"]),CreditBalanceBreakdownDTOSchema=z108.object({total:z108.number(),base:z108.number(),purchases:z108.number(),awards:z108.number()}),CreditBalanceBreakdownDTO=createDTO(CreditBalanceBreakdownDTOSchema),SubscriptionPlanDTOSchema=z108.object({id:z108.string(),name:z108.string()}),SubscriptionPlanDTO=createDTO(SubscriptionPlanDTOSchema),SubscriptionPaymentMethodDTOSchema=z108.object({type:z108.string(),brand:z108.string().nullable(),last4:z108.string().nullable(),expirationDate:z108.string().nullable()}),SubscriptionPaymentMethodDTO=createDTO(SubscriptionPaymentMethodDTOSchema),SubscriptionPricingDTOSchema=z108.object({currency:z108.string(),nextPaymentAmount:z108.number().nullable(),nextPaymentAt:z108.string().nullable(),billingInterval:z108.string().nullable(),totalAmount:z108.number().nullable(),discountAmount:z108.number().nullable()}),SubscriptionPricingDTO=createDTO(SubscriptionPricingDTOSchema),SubscriptionDetailsDTOSchema=z108.object({id:z108.string(),status:SubscriptionStatusSchema,plan:SubscriptionPlanDTOSchema.nullable(),currentPeriodStartedAt:z108.string().nullable(),currentPeriodEndsAt:z108.string().nullable(),renewsAt:z108.string().nullable(),cancelAt:z108.string().nullable(),renewAutomatically:z108.boolean(),pricing:SubscriptionPricingDTOSchema.nullable(),paymentMethod:SubscriptionPaymentMethodDTOSchema.nullable()}),SubscriptionDetailsDTO=createDTO(SubscriptionDetailsDTOSchema),CreditAlertDTOSchema=z108.object({type:z108.enum(["low_balance","critical_balance","approaching_limit"]),message:z108.string(),estimatedPromptsRemaining:z108.number().nullable(),avgCostPerPrompt:z108.number().nullable()}),CreditAlertDTO=createDTO(CreditAlertDTOSchema),PlanAllocationDTOSchema=z108.object({monthlyCredits:z108.number().nullable(),usedThisPeriod:z108.number(),remainingThisPeriod:z108.number()}),PlanAllocationDTO=createDTO(PlanAllocationDTOSchema),LatestCancellationDTOSchema=z108.object({organizationId:z108.string(),planCode:TemplateCodeSchema,reason:CancellationReasonCodeSchema,details:z108.string().nullable(),tenureDays:z108.number().int().nonnegative(),capturedAt:z108.string()}),LatestCancellationDTO=createDTO(LatestCancellationDTOSchema),OrganizationSubscriptionDTOSchema=z108.object({hasSubscription:z108.boolean(),subscription:SubscriptionDetailsDTOSchema.nullable(),credits:CreditBalanceBreakdownDTOSchema,planAllocation:PlanAllocationDTOSchema.nullable(),lowBalanceThreshold:z108.number().nullable(),alerts:z108.array(CreditAlertDTOSchema),portalUrl:z108.string().nullable(),latestCancellation:LatestCancellationDTOSchema.nullable()}),OrganizationSubscriptionDTO=createDTO(OrganizationSubscriptionDTOSchema),BaseCreditTopupRequestSchema=z108.object({creditCount:z108.number().int().positive(),expiresAt:z108.string().datetime().nullable().optional(),message:z108.string().nullable().optional()}),FreeCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z108.literal("free"),amountCents:z108.number().int().positive().nullable().optional()}),PurchaseCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z108.literal("purchase"),amountCents:z108.number().int().positive()}),CreditTopupRequestDTOSchema=z108.discriminatedUnion("type",[FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema]),CreditTopupRequestDTO=createDTO(CreditTopupRequestDTOSchema),CreditTopupResponseDTOSchema=z108.object({success:z108.boolean(),transactionId:z108.string().nullable(),newBalance:z108.number(),creditCount:z108.number(),type:z108.enum(["free","purchase"]),invoiceId:z108.string().nullable()}),CreditTopupResponseDTO=createDTO(CreditTopupResponseDTOSchema)}});import{z as z109}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=z109.object({totalCredits:z109.number(),totalCostUsd:z109.number(),totalMessages:z109.number(),avgCostPerMessage:z109.number(),periodStart:z109.string().nullable(),periodEnd:z109.string().nullable()}),UsageSummaryDTO=createDTO(UsageSummaryDTOSchema),UsageByProjectDTOSchema=z109.object({projectId:z109.string(),projectName:z109.string(),projectDisplayName:z109.string().nullable(),credits:z109.number(),costUsd:z109.number(),messages:z109.number(),percentage:z109.number()}),UsageByProjectDTO=createDTO(UsageByProjectDTOSchema),UsageByUserDTOSchema=z109.object({userId:z109.string(),userName:z109.string().nullable(),userEmail:z109.string().email().nullable(),credits:z109.number(),costUsd:z109.number(),messages:z109.number(),percentage:z109.number()}),UsageByUserDTO=createDTO(UsageByUserDTOSchema),UsageTimelineItemDTOSchema=z109.object({date:z109.string(),credits:z109.number(),costUsd:z109.number(),messages:z109.number()}),UsageTimelineItemDTO=createDTO(UsageTimelineItemDTOSchema),UsageByUserForProjectDTOSchema=z109.object({userId:z109.string(),userName:z109.string().nullable(),userEmail:z109.string().email().nullable(),credits:z109.number(),costUsd:z109.number(),messages:z109.number(),percentage:z109.number()}),UsageByUserForProjectDTO=createDTO(UsageByUserForProjectDTOSchema),ProjectUsageDetailDTOSchema=z109.object({projectId:z109.string(),projectName:z109.string(),projectDisplayName:z109.string().nullable(),summary:UsageSummaryDTOSchema,byUser:z109.array(UsageByUserForProjectDTOSchema),timeline:z109.array(UsageTimelineItemDTOSchema)}),ProjectUsageDetailDTO=createDTO(ProjectUsageDetailDTOSchema),OrganizationUsageDTOSchema=z109.object({summary:UsageSummaryDTOSchema,byProject:z109.array(UsageByProjectDTOSchema),byUser:z109.array(UsageByUserDTOSchema),timeline:z109.array(UsageTimelineItemDTOSchema)}),OrganizationUsageDTO=createDTO(OrganizationUsageDTOSchema)}});import{z as z110}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=z110.enum(["today","1d","7d","14d","30d","60d","90d"]),SortOrderSchema=z110.enum(["asc","desc"]),UsageAnalyticsQuerySchema=z110.object({startDate:z110.string().optional(),endDate:z110.string().optional(),preset:TimeRangePresetSchema.optional().default("30d"),page:z110.coerce.number().int().positive().default(1),limit:z110.coerce.number().int().positive().max(100).default(20),sortBy:z110.string().optional(),sortOrder:SortOrderSchema.optional().default("desc"),search:z110.string().optional(),activeOnly:z110.stringbool().optional().default(!0)}),UsageOverviewSummaryDTOSchema=z110.object({totalCredits:z110.number(),totalCostUsd:z110.number(),totalMessages:z110.number(),avgCostPerMessage:z110.number(),avgCreditsPerMessage:z110.number(),periodStart:z110.string(),periodEnd:z110.string(),creditsChange:z110.number().nullable(),costChange:z110.number().nullable(),messagesChange:z110.number().nullable(),unattributedCredits:z110.number(),unattributedCostUsd:z110.number(),unattributedMessages:z110.number()}),UsageOverviewSummaryDTO=createDTO(UsageOverviewSummaryDTOSchema),UsageTimelinePointDTOSchema=z110.object({date:z110.string(),credits:z110.number(),costUsd:z110.number(),messages:z110.number()}),UsageTimelinePointDTO=createDTO(UsageTimelinePointDTOSchema),OrganizationUsageRowDTOSchema=z110.object({organizationId:z110.string(),organizationName:z110.string(),credits:z110.number(),costUsd:z110.number(),messages:z110.number(),percentage:z110.number(),userCount:z110.number(),projectCount:z110.number()}),OrganizationUsageRowDTO=createDTO(OrganizationUsageRowDTOSchema),UserUsageRowDTOSchema=z110.object({userId:z110.string(),userName:z110.string().nullable(),userEmail:z110.string().nullable(),userImage:z110.string().nullable(),organizationId:z110.string().nullable(),organizationName:z110.string().nullable(),credits:z110.number(),costUsd:z110.number(),messages:z110.number(),percentage:z110.number(),projectCount:z110.number()}),UserUsageRowDTO=createDTO(UserUsageRowDTOSchema),ProjectUsageRowDTOSchema=z110.object({projectId:z110.string(),projectName:z110.string(),projectDisplayName:z110.string().nullable(),organizationId:z110.string(),organizationName:z110.string(),credits:z110.number(),costUsd:z110.number(),messages:z110.number(),percentage:z110.number(),userCount:z110.number()}),ProjectUsageRowDTO=createDTO(ProjectUsageRowDTOSchema),UsageDistributionItemDTOSchema=z110.object({id:z110.string(),name:z110.string(),value:z110.number(),percentage:z110.number()}),UsageDistributionItemDTO=createDTO(UsageDistributionItemDTOSchema),UsageHeatmapPointDTOSchema=z110.object({day:z110.number(),hour:z110.number(),value:z110.number()}),UsageHeatmapPointDTO=createDTO(UsageHeatmapPointDTOSchema),UsageOverviewResponseDTOSchema=z110.object({summary:UsageOverviewSummaryDTOSchema,timeline:z110.array(UsageTimelinePointDTOSchema),topOrganizations:z110.array(OrganizationUsageRowDTOSchema),topUsers:z110.array(UserUsageRowDTOSchema),topProjects:z110.array(ProjectUsageRowDTOSchema),creditDistribution:z110.array(UsageDistributionItemDTOSchema),userDistribution:z110.array(UsageDistributionItemDTOSchema),heatmap:z110.array(UsageHeatmapPointDTOSchema)}),UsageOverviewResponseDTO=createDTO(UsageOverviewResponseDTOSchema),UsagePaginationDTOSchema=z110.object({page:z110.number(),limit:z110.number(),totalItems:z110.number(),totalPages:z110.number(),hasMore:z110.boolean()}),UsagePaginationDTO=createDTO(UsagePaginationDTOSchema),UsageByOrganizationResponseDTOSchema=z110.object({organizations:z110.array(OrganizationUsageRowDTOSchema),top:z110.array(OrganizationUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByOrganizationResponseDTO=createDTO(UsageByOrganizationResponseDTOSchema),ExtendedUserUsageRowDTOSchema=UserUsageRowDTOSchema.extend({organizationCount:z110.number()}),ExtendedUserUsageRowDTO=createDTO(ExtendedUserUsageRowDTOSchema),UsageByUserResponseDTOSchema=z110.object({users:z110.array(ExtendedUserUsageRowDTOSchema),top:z110.array(ExtendedUserUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByUserResponseDTO=createDTO(UsageByUserResponseDTOSchema),ExtendedProjectUsageRowDTOSchema=ProjectUsageRowDTOSchema.extend({ownerId:z110.string(),ownerName:z110.string().nullable(),ownerEmail:z110.string().nullable()}),ExtendedProjectUsageRowDTO=createDTO(ExtendedProjectUsageRowDTOSchema),UsageByProjectResponseDTOSchema=z110.object({projects:z110.array(ExtendedProjectUsageRowDTOSchema),top:z110.array(ExtendedProjectUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByProjectResponseDTO=createDTO(UsageByProjectResponseDTOSchema),ExportFormatSchema=z110.enum(["csv","json"]),UsageExportQuerySchema=UsageAnalyticsQuerySchema.extend({format:ExportFormatSchema.default("csv"),type:z110.enum(["overview","organizations","users","projects"]).default("overview")}),PeekUsageMetricsDTOSchema=z110.object({credits:z110.number(),costUsd:z110.number(),messages:z110.number()}),PeekUsageMetricsDTO=createDTO(PeekUsageMetricsDTOSchema),OrganizationPeekDTOSchema=z110.object({id:z110.string(),name:z110.string(),createdAt:z110.string(),memberCount:z110.number(),projectCount:z110.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z110.array(UsageTimelinePointDTOSchema)}),OrganizationPeekDTO=createDTO(OrganizationPeekDTOSchema),UserPeekDTOSchema=z110.object({id:z110.string(),name:z110.string().nullable(),email:z110.string(),image:z110.string().nullable(),createdAt:z110.string(),organizationCount:z110.number(),projectCount:z110.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z110.array(UsageTimelinePointDTOSchema)}),UserPeekDTO=createDTO(UserPeekDTOSchema),ProjectPeekDTOSchema=z110.object({id:z110.string(),name:z110.string(),displayName:z110.string().nullable(),createdAt:z110.string(),organizationId:z110.string(),organizationName:z110.string(),ownerId:z110.string(),ownerName:z110.string().nullable(),ownerEmail:z110.string().nullable(),usage:PeekUsageMetricsDTOSchema,recentActivity:z110.array(UsageTimelinePointDTOSchema)}),ProjectPeekDTO=createDTO(ProjectPeekDTOSchema)}});import{z as z111}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=z111.enum(["running","completed","failed","stopped"]),PresetSandboxCommandSchema=z111.enum(["restart-dev-server","stop-dev-server","install-dependencies","reinstall-dependencies","build","typecheck"]),ExecuteSandboxCommandRequestDTOSchema=z111.object({command:z111.string().min(1).max(1e4),cwd:z111.string().optional(),projectBranch:BranchSchema.optional(),projectEnv:BranchSchema.optional(),env:z111.record(z111.string(),z111.string()).optional(),name:z111.string().optional(),waitForCompletion:z111.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=z111.object({identifier:z111.string(),status:SandboxProcessStatusSchema,command:z111.string().optional(),startedAt:z111.string().optional(),exitCode:z111.number().optional()}),SandboxProcessInfoDTO=createDTO(SandboxProcessInfoDTOSchema),SandboxProcessInfoResponseSchema=createResponseSchema2(SandboxProcessInfoDTOSchema),SandboxProcessListDTOSchema=z111.object({processes:z111.array(SandboxProcessInfoDTOSchema)}),SandboxProcessListDTO=createDTO(SandboxProcessListDTOSchema),SandboxProcessListResponseSchema=createResponseSchema2(SandboxProcessListDTOSchema),ExecuteSandboxCommandResponseDTOSchema=z111.object({processId:z111.string(),status:SandboxProcessStatusSchema}),ExecuteSandboxCommandResponseDTO=createDTO(ExecuteSandboxCommandResponseDTOSchema),PresetCommandResponseDTOSchema=z111.object({success:z111.boolean(),message:z111.string().optional()}),PresetCommandResponseDTO=createDTO(PresetCommandResponseDTOSchema),PresetCommandResponseSchema=createResponseSchema2(PresetCommandResponseDTOSchema)}});import{z as z112}from"zod";var WorkSessionVisibilitySchema,SessionSetRetentionSchema,init_work_sessions=__esm({"../../packages/api-contracts/dist/esm/work-sessions.js"(){"use strict";WorkSessionVisibilitySchema=z112.enum(["internal","user-visible"]),SessionSetRetentionSchema=z112.object({additionalDays:z112.number().int().min(1).max(30)}).strict()}});import{z as z113}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_realtime_room();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_hosted_preview_dto();init_sandbox_dto();init_organization_dto();init_billing_dto();init_payment_method_dto();init_user_dto();init_content_dto();init_unique_conflict_dto();init_schema_transition_rejected_dto();init_cms_display_defaults_dto();init_project_migration_dto();init_analytics_dto();init_asset_dto();init_translation_dto();init_document_dto();init_form_dto();init_chat_dto();init_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();init_work_sessions()}});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 commitSubjectOrNull(cwd,sha){try{return await runGit(["log","-1","--format=%s",sha,"--"],cwd)}catch{return null}}async function currentTagOrNull(cwd){try{return await runGit(["describe","--tags","--exact-match","HEAD"],cwd)||null}catch{return null}}function isReleaseTag(tag){return tag?/^release\/.+/.test(tag):!1}function classifyPushError(error){let stderr=extractStderr(error),lower=stderr.toLowerCase();return lower.includes("invalid or expired token")||lower.includes("expired token")||lower.includes("invalid token")||lower.includes("could not obtain git credentials")||lower.includes("not signed in")?{kind:"auth",stderr}:lower.includes("remote rejected")||lower.includes("protected")||lower.includes("no-push")||lower.includes("push declined")||lower.includes("not allowed to push")||lower.includes("permission to push")||lower.includes("forbidden")||lower.includes("403")?{kind:"protected",stderr}:lower.includes("non-fast-forward")||lower.includes("rejected")||lower.includes("fetch first")||lower.includes("updates were rejected")?{kind:"non-fast-forward",stderr}:lower.includes("authentication")||lower.includes("permission denied")?{kind:"auth",stderr}:lower.includes("could not resolve host")||lower.includes("timed out")||lower.includes("connection")?{kind:"network",stderr}:{kind:"unknown",stderr}}function gitErrorSummary(error){let lines=extractStderr(error).split(`
198
+ `)}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=z45.enum(REPORT_TONES),blockCommon={title:z45.string().trim().min(1).max(120).optional(),fallback:z45.string().trim().min(1).max(600).optional()},ReportTextBlockSchema=z45.object({type:z45.literal("text"),...blockCommon,text:z45.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=z45.object({type:z45.literal("metric"),...blockCommon,items:z45.array(z45.object({value:z45.string().trim().min(1).max(24),unit:z45.string().trim().min(1).max(12).optional(),label:z45.string().trim().min(1).max(160),note:z45.string().trim().min(1).max(300).optional()}).strict()).min(1).max(3),spark:z45.array(z45.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=z45.enum(REPORT_VIZ_KINDS),ReportVizBlockSchema=z45.object({type:z45.literal("viz"),...blockCommon,kind:ReportVizKindSchema.describe("bar: compare named quantities. line/area: change across an ordered sequence. composition: parts of one whole."),unit:z45.string().trim().min(1).max(12).optional(),points:z45.array(z45.object({label:z45.string().trim().min(1).max(24),value:z45.number().finite(),highlight:z45.boolean().optional()}).strict()).min(2).max(24),caption:z45.string().trim().min(1).max(600).optional()}).strict().describe("Only when comparison, relationship, distribution, persistence, or change over time is itself the point. Never decorative.").superRefine((block,ctx)=>{block.points.filter(point=>point.highlight).length>1&&ctx.addIssue({code:"custom",path:["points"],message:"Highlight at most one point."}),block.kind==="composition"&&block.points.forEach((point,index)=>{point.value<0&&ctx.addIssue({code:"custom",path:["points",index,"value"],message:"A composition holds parts of one whole, so every value must be zero or more."})})}),ReportListBlockSchema=z45.object({type:z45.literal("list"),...blockCommon,items:z45.array(z45.object({tone:ReportToneSchema.optional(),label:z45.string().trim().min(1).max(24).optional(),heading:z45.string().trim().min(1).max(160).describe("The human-visible result, action, or consequence, readable on its own."),body:z45.string().trim().min(1).max(1200).optional().describe("One short explanation of why it matters."),evidence:z45.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=z45.object({type:z45.literal("table"),...blockCommon,columns:z45.array(z45.object({label:z45.string().trim().min(1).max(32)}).strict()).min(1).max(6),rows:z45.array(z45.object({cells:z45.array(z45.object({text:z45.string().trim().max(160),tone:ReportToneSchema.optional()}).strict()).min(1).max(6)}).strict()).min(1).max(40),caption:z45.string().trim().min(1).max(600).optional()}).strict().describe("Repeated entities sharing the same attributes. Use instead of parallel prose.").superRefine((block,ctx)=>{block.rows.forEach((row2,index)=>{row2.cells.length!==block.columns.length&&ctx.addIssue({code:"custom",path:["rows",index,"cells"],message:`Every row needs exactly ${block.columns.length} cells, one per column.`})})}),ReportMediaBlockSchema=z45.object({type:z45.literal("media"),...blockCommon,assetId:z45.uuid(),alt:z45.string().trim().min(1).max(300),caption:z45.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=z45.object({type:z45.literal("links"),...blockCommon,items:z45.array(z45.object({label:z45.string().trim().min(1).max(120),url:z45.url({protocol:/^https$/}).max(2e3),description:z45.string().trim().min(1).max(300).optional()}).strict()).min(1).max(8)}).strict().describe("A destination, evidence source, or next action worth opening."),ReportCodeBlockSchema=z45.object({type:z45.literal("code"),...blockCommon,language:z45.string().regex(/^[a-z0-9+#-]{1,20}$/,"A language is a short lowercase token, e.g. ts, json, bash.").optional(),code:z45.string().min(1).max(REPORT_CODE_MAX_CHARS),caption:z45.string().trim().min(1).max(600).optional()}).strict().describe("An exact snippet that is decisive evidence. Never a log dump."),ReportBlockSchema=z45.discriminatedUnion("type",[ReportTextBlockSchema,ReportMetricBlockSchema,ReportListBlockSchema,ReportTableBlockSchema,ReportVizBlockSchema,ReportMediaBlockSchema,ReportLinksBlockSchema,ReportCodeBlockSchema]),ReportDocumentSchema=z45.object({title:z45.string().trim().min(1).max(REPORT_TITLE_MAX_CHARS),brief:z45.array(ReportBlockSchema).min(1).max(REPORT_BRIEF_MAX_BLOCKS),details:z45.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=z45.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=z45.preprocess(normalizeStoredBlocks,ReportBriefSchema),StoredReportDocumentSchema=z45.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 z46}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=z46.enum(["astro","nextjs","nuxtjs","react-router","remix","sveltekit","vite","vue"]),FimoRuntimeCommandsSchema=z46.object({dev:z46.string().trim().min(1).optional(),build:z46.string().trim().min(1).optional(),install:z46.string().trim().min(1).optional()}).strict(),FimoRuntimeConfigSchema=z46.object({framework:FimoFrameworkSchema.optional(),outputDirectory:z46.string().trim().min(1).optional(),commands:FimoRuntimeCommandsSchema.optional()}).strict(),FimoHostingConditionSchema=z46.object({type:z46.enum(["header","cookie","query","host"]),key:z46.string().min(1).optional(),value:z46.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:z46.array(FimoHostingConditionSchema).min(1).optional(),missing:z46.array(FimoHostingConditionSchema).min(1).optional()},FimoHostingRewriteSchema=z46.object({source:z46.string().min(1),destination:z46.string().min(1),...conditionFields}),FimoHostingRedirectSchema=z46.object({source:z46.string().min(1),destination:z46.string().min(1),permanent:z46.boolean().optional(),statusCode:z46.union([z46.literal(301),z46.literal(302),z46.literal(307),z46.literal(308)]).optional(),...conditionFields}),FimoHostingHeaderSchema=z46.object({source:z46.string().min(1),headers:z46.array(z46.object({key:z46.string().min(1),value:z46.string()})).min(1),...conditionFields}),FimoHostingConfigSchema=z46.object({rewrites:z46.array(FimoHostingRewriteSchema).optional(),redirects:z46.array(FimoHostingRedirectSchema).optional(),headers:z46.array(FimoHostingHeaderSchema).optional(),cleanUrls:z46.boolean().optional(),trailingSlash:z46.boolean().optional()}).strict(),FimoAppConfigSchema=z46.object({runtime:FimoRuntimeConfigSchema.optional(),hosting:FimoHostingConfigSchema.optional()}).passthrough().superRefine((config,context)=>{Object.hasOwn(config,"framework")&&context.addIssue({code:"custom",path:["framework"],message:"Use runtime.framework instead of the top-level framework field."})})}});function isEntryParamBinding(binding){return binding!==void 0&&(binding.type??"entry")==="entry"}function pageRouteParamNames(path52){return[...path52.matchAll(/:([^/*]+)\*?/g)].map(match=>match[1])}function pageContentParamNames(path52,params){return pageRouteParamNames(path52).filter(param=>!LOCALE_PARAM_NAME.test(param)&&params?.[param]?.type!=="external")}function parsePageParamExpression(expression){let match=PARAM_EXPRESSION.exec(expression);return match?{param:match[1],field:match[2]}:null}function fieldValue(entry,fieldPath){let value=entry;for(let segment of fieldPath.split(".")){if(!value||typeof value!="object"||Array.isArray(value))return;value=value[segment]}return value}function queryValue(value){if(Array.isArray(value))return value.map(queryValue);if(value&&typeof value=="object"){let record=value;return typeof record.id=="string"?record.id:Object.fromEntries(Object.entries(record).map(([key,item])=>[key,queryValue(item)]))}return value===void 0?null:value}function resolveValue(value,params){if(typeof value=="string"&&value.startsWith("$params.")){let parsed=parsePageParamExpression(value);if(!parsed)return{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param:"",field:""}};let{param,field}=parsed,entry=params[param];if(!entry)return{ok:!1,error:{code:"PAGE_PARAM_NOT_SELECTED",expression:value,param,field}};let resolved=fieldValue(entry,field);return resolved==null||resolved===""?{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param,field}}:{ok:!0,value:queryValue(resolved)}}if(Array.isArray(value)){let resolved=[];for(let item of value){let result=resolveValue(item,params);if(!result.ok)return result;resolved.push(result.value)}return{ok:!0,value:resolved}}if(value&&typeof value=="object"){let resolved={};for(let[key,item]of Object.entries(value)){let result=resolveValue(item,params);if(!result.ok)return result;resolved[key]=result.value}return{ok:!0,value:resolved}}return{ok:!0,value}}function resolvePageSourceQuery(query={},params){let resolved=resolveValue(query,params);return resolved.ok?{ok:!0,query:resolved.value}:resolved}function pageSourceParamExpressions(value){return typeof value=="string"?value.startsWith("$params.")?[value]:[]:Array.isArray(value)?value.flatMap(pageSourceParamExpressions):value&&typeof value=="object"?Object.values(value).flatMap(pageSourceParamExpressions):[]}var LOCALE_PARAM_NAME,PARAM_EXPRESSION,init_page_sources=__esm({"../../packages/api-contracts/dist/esm/types/page-sources.js"(){"use strict";__name(isEntryParamBinding,"isEntryParamBinding");LOCALE_PARAM_NAME=/^(locale|lang|language)$/i;__name(pageRouteParamNames,"pageRouteParamNames");__name(pageContentParamNames,"pageContentParamNames");PARAM_EXPRESSION=/^\$params\.([A-Za-z_][\w-]*)\.([A-Za-z_][\w.-]*)$/;__name(parsePageParamExpression,"parsePageParamExpression");__name(fieldValue,"fieldValue");__name(queryValue,"queryValue");__name(resolveValue,"resolveValue");__name(resolvePageSourceQuery,"resolvePageSourceQuery");__name(pageSourceParamExpressions,"pageSourceParamExpressions")}});var init_project_files=__esm({"../../packages/api-contracts/dist/esm/types/project-files.js"(){"use strict"}});import{z as z47}from"zod";var PROJECT_CHAT_MANUAL_MODEL_IDS,ProjectChatManualModelIdSchema,ProjectDTOSchema,ProjectDTO,UpdateProjectSettingsRequestSchema,ProjectWithPlanDTOSchema,ProjectWithPlanDTO,ProjectSummaryDTOSchema,ProjectSummaryDTO,ProjectUserDTOSchema,ProjectUserDTO,ProjectFileDTOSchema,ProjectFileDTO,ProjectChatMessageRole,ProjectMessageBaseSchema,MessageUserMetadataSchema,ProjectMessagePublicDTOSchema,ProjectMessagePublicDTO,ProjectMessageDTOSchema,ProjectVersionDTOSchema,ProjectVersionDTO,ProjectHistoryUsageDTOSchema,ProjectVersionPageDTOSchema,ProjectVersionPageDTO,ProjectHistorySummaryDTOSchema,ProjectHistorySummaryDTO,ProjectDocumentContentDTOSchema,ProjectDocumentContentDTO,ProjectListResponseSchema,ProjectVersionResponseSchema,ProjectVersionPageResponseSchema,ProjectHistorySummaryResponseSchema,VersionMutationResponseSchema,PublishUpgradeRequiredSchema,ProjectLatestPublicationAttemptSchema,ProjectPublicationStateDTOSchema,ProjectPublicationStateDTO,PublishProjectRequestSchema,PublicationMutationDTOSchema,PublicationMutationDTO,ProjectPublicationStateResponseSchema,PublicationMutationResponseSchema,ProjectResponseSchema,ProjectWithPlanResponseSchema,init_project_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project.dto.js"(){"use strict";init_chat_block();init_common2();init_env();init_create_dto();init_response();PROJECT_CHAT_MANUAL_MODEL_IDS=["anthropic/claude-opus-5.5","anthropic/claude-opus-5","anthropic/claude-sonnet-5","anthropic/claude-fable-5","openai/gpt-5.6-luna","openai/gpt-5.6-terra","openai/gpt-5.6-sol","openai/gpt-6-astra","openai/gpt-6.1-sol","openai/gpt-6-sol","openai/gpt-6-luna","xai/grok-4.6","google/gemini-3.1-pro-preview","google/gemini-3.8-flash","google/gemini-3.7-flash","google/gemini-3.6-flash","google/gemini-3.5-flash-lite","zai/glm-5.2","zai/glm-5.3-flash","deepseek/deepseek-v4-pro","minimax/minimax-m3","moonshotai/kimi-k3"],ProjectChatManualModelIdSchema=z47.enum(PROJECT_CHAT_MANUAL_MODEL_IDS),ProjectDTOSchema=BaseEntitySchema.extend({name:z47.string(),displayName:z47.string().nullable(),subdomain:z47.string().nullable().optional(),subdomainUpdatedAt:z47.date().nullable().optional(),organizationId:z47.string().nullable(),createdBy:z47.string().nullable(),defaultBranch:BranchSchema.default(DEFAULT_BRANCH),productionSourceBranch:BranchSchema.default(DEFAULT_BRANCH),previewEnabled:z47.boolean().default(!0),enabledChatModels:z47.array(ProjectChatManualModelIdSchema).nullable().default(null),status:ProjectStatusSchema,creationStatus:z47.string(),thumbnailUrl:z47.string().nullable(),publishedThumbnailUrl:z47.string().nullable(),category:z47.string().nullable(),snapshotUrl:z47.string().startsWith("/").optional(),appUrl:z47.string().nullable(),lastPublishedAt:z47.coerce.date()}),ProjectDTO=createDTO(ProjectDTOSchema),UpdateProjectSettingsRequestSchema=z47.object({name:z47.string().optional(),previewEnabled:z47.boolean().optional(),enabledChatModels:z47.array(ProjectChatManualModelIdSchema).optional(),productionSourceBranch:BranchSchema.optional(),syncConfig:z47.boolean().optional()}).strict(),ProjectWithPlanDTOSchema=ProjectDTOSchema.extend({planTier:z47.string().nullable()}),ProjectWithPlanDTO=createDTO(ProjectWithPlanDTOSchema),ProjectSummaryDTOSchema=z47.object({id:z47.uuid(),name:z47.string(),displayName:z47.string().nullable(),thumbnailUrl:z47.string().nullable(),category:z47.string().nullable()}),ProjectSummaryDTO=createDTO(ProjectSummaryDTOSchema),ProjectUserDTOSchema=z47.object({id:z47.string(),name:z47.string(),avatar:z47.string().nullable(),color:z47.object({bg:z47.string(),text:z47.string()})}),ProjectUserDTO=createDTO(ProjectUserDTOSchema),ProjectFileDTOSchema=z47.object({path:z47.string(),content:z47.string()}),ProjectFileDTO=createDTO(ProjectFileDTOSchema),ProjectChatMessageRole=z47.enum(["user","assistant","system"]),ProjectMessageBaseSchema=z47.object({id:z47.string(),messageId:z47.string(),versionId:z47.string().nullable(),role:ProjectChatMessageRole,parts:z47.array(z47.any()),createdAt:z47.coerce.date()}),MessageUserMetadataSchema=z47.object({id:z47.string(),name:z47.string().nullable().optional(),image:z47.string().nullable().optional()}).nullable().optional(),ProjectMessagePublicDTOSchema=ProjectMessageBaseSchema.extend({credits:z47.number(),metadata:z47.object({user:MessageUserMetadataSchema,changeManifest:z47.array(z47.any()).optional(),questionAnswer:ChatFormAnswerMetadataSchema.optional()}).nullable().optional()}),ProjectMessagePublicDTO=createDTO(ProjectMessagePublicDTOSchema),ProjectMessageDTOSchema=ProjectMessagePublicDTOSchema,ProjectVersionDTOSchema=z47.object({versionId:z47.uuid(),commitHash:z47.string(),name:z47.string(),description:z47.string().nullable(),kind:z47.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),createdAt:CommonSchemas.timestamp,expiresAt:CommonSchemas.timestamp}),ProjectVersionDTO=createDTO(ProjectVersionDTOSchema),ProjectHistoryUsageDTOSchema=z47.object({versionCount:z47.number().int().nonnegative(),snapshotBytes:z47.number().int().nonnegative()}),ProjectVersionPageDTOSchema=createCursorPageDataSchema(ProjectVersionDTOSchema),ProjectVersionPageDTO=createDTO(ProjectVersionPageDTOSchema),ProjectHistorySummaryDTOSchema=z47.object({usage:ProjectHistoryUsageDTOSchema,retentionDays:z47.number().int().positive()}),ProjectHistorySummaryDTO=createDTO(ProjectHistorySummaryDTOSchema),ProjectDocumentContentDTOSchema=z47.object({content:z47.string()}),ProjectDocumentContentDTO=createDTO(ProjectDocumentContentDTOSchema),ProjectListResponseSchema=createResponseSchema2(z47.array(ProjectDTOSchema)),ProjectVersionResponseSchema=createResponseSchema2(ProjectVersionDTOSchema),ProjectVersionPageResponseSchema=createCursorPaginatedResponseSchema(ProjectVersionDTOSchema),ProjectHistorySummaryResponseSchema=createResponseSchema2(ProjectHistorySummaryDTOSchema),VersionMutationResponseSchema=createResponseSchema2(z47.object({success:z47.boolean(),message:z47.string().optional(),warning:z47.string().optional(),durationMs:z47.number().int().nonnegative().optional()})),PublishUpgradeRequiredSchema=z47.object({code:z47.literal("PUBLISH_UPGRADE_REQUIRED"),message:z47.string(),currentVersion:z47.number().int().positive(),targetVersion:z47.literal(4)}),ProjectLatestPublicationAttemptSchema=z47.object({publicationId:z47.uuid(),status:z47.enum(["queued","building","published","failed","canceled"]),failureCode:z47.string().nullable(),sourceBranch:z47.string(),createdAt:CommonSchemas.timestamp,finishedAt:CommonSchemas.timestamp.nullable()}),ProjectPublicationStateDTOSchema=z47.object({isPublished:z47.boolean(),publishedAt:CommonSchemas.timestamp.nullable(),publishedVersion:z47.string().nullable(),upgradeRequired:PublishUpgradeRequiredSchema.nullish(),hasActiveRelease:z47.boolean().optional(),latestAttempt:ProjectLatestPublicationAttemptSchema.nullish()}),ProjectPublicationStateDTO=createDTO(ProjectPublicationStateDTOSchema),PublishProjectRequestSchema=z47.object({label:z47.string().trim().min(1).max(120).optional(),notes:z47.string().max(2e4).optional()}).strict(),PublicationMutationDTOSchema=z47.object({success:z47.boolean(),message:z47.string().optional(),publishedAt:CommonSchemas.timestamp.optional(),firstPublish:z47.boolean(),publicationId:z47.string().optional(),url:z47.string().nullable().optional()}),PublicationMutationDTO=createDTO(PublicationMutationDTOSchema),ProjectPublicationStateResponseSchema=createResponseSchema2(ProjectPublicationStateDTOSchema),PublicationMutationResponseSchema=createResponseSchema2(PublicationMutationDTOSchema),ProjectResponseSchema=createResponseSchema2(ProjectDTOSchema),ProjectWithPlanResponseSchema=createResponseSchema2(ProjectWithPlanDTOSchema)}});import{z as z48}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=z48.enum(["provisioning","active","deleted"]),ProjectBranchKindSchema=z48.enum(["user","agent-session"]),ProjectBranchDTOSchema=BaseEntitySchema.extend({projectId:z48.uuid(),branch:BranchSchema.optional(),status:ProjectBranchStatusSchema,kind:ProjectBranchKindSchema,parentBranch:BranchSchema.nullable().optional(),createdBy:z48.string().nullable(),deletedAt:z48.coerce.date().nullable(),env:BranchSchema,parentEnv:BranchSchema.nullable()}),ProjectBranchDTO=createDTO(ProjectBranchDTOSchema),ResolvedBranchEnvironmentDTOSchema=z48.object({id:z48.union([z48.literal(PREVIEW_ENVIRONMENT_KEY),z48.uuid()]),name:z48.string()}),ProjectBranchListItemDTOSchema=ProjectBranchDTOSchema.extend({resolvedEnvironment:ResolvedBranchEnvironmentDTOSchema.nullable(),workSession:z48.object({sessionId:z48.uuid(),name:z48.string()}).optional()}),ProjectBranchListItemDTO=createDTO(ProjectBranchListItemDTOSchema),CreateProjectBranchRequestInputSchema=z48.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=z48.object({from:BranchSchema.optional()}),ProjectBranchResponseSchema=createResponseSchema2(ProjectBranchDTOSchema),ProjectBranchesListResponseSchema=createResponseSchema2(z48.array(ProjectBranchListItemDTOSchema)),BranchSurfaceDiffSchema=z48.object({surface:z48.enum(["code","schemas","content","translations","assets","forms"]),status:z48.enum(["unchanged","changed","conflicting","missing-on-target"]),changedCount:z48.number().int().nonnegative(),conflictCount:z48.number().int().nonnegative()}),BranchDiffResultSchema=z48.object({fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),generatedAt:z48.coerce.date(),surfaces:z48.array(BranchSurfaceDiffSchema),fromEnv:BranchSchema,toEnv:BranchSchema}),BranchDiffResultDTO=createDTO(BranchDiffResultSchema)}});import{z as z49}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=z49.object({projectId:z49.uuid(),name:z49.string()}),ProductionEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z49.literal(PRODUCTION_ENVIRONMENT_KEY),kind:z49.literal("production"),sourceBranch:BranchSchema,isPublished:z49.boolean(),url:z49.string().nullable()}),PreviewEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z49.literal(PREVIEW_ENVIRONMENT_KEY),kind:z49.literal("preview"),matchedBranchCount:z49.number().int().nonnegative()}),CustomProjectEnvironmentDTOSchema=CustomEnvironmentSchema.extend({kind:z49.literal("custom"),matchedBranchCount:z49.number().int().nonnegative()}),ProjectEnvironmentDTOSchema=z49.discriminatedUnion("kind",[ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema]),ProjectEnvironmentDTO=createDTO(ProjectEnvironmentDTOSchema),CreateProjectEnvironmentRequestSchema=CustomEnvironmentSchema.pick({name:!0,branchPatterns:!0,description:!0}).extend({description:z49.string().trim().max(255).nullable().optional().default(null)}),ProjectEnvironmentsListResponseSchema=createResponseSchema2(z49.array(ProjectEnvironmentDTOSchema)),ProjectEnvironmentResponseSchema=createResponseSchema2(ProjectEnvironmentDTOSchema),DeleteProjectEnvironmentResultSchema=z49.object({deletedId:z49.uuid()}),DeleteProjectEnvironmentResponseSchema=createResponseSchema2(DeleteProjectEnvironmentResultSchema)}});import{z as z50}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=z50.object({kind:z50.enum(["variable","secret"]).optional(),environment:EnvironmentKeySchema}),ProjectSecretWriteRequestSchema=z50.object({kind:z50.enum(["variable","secret"]),value:z50.string(),environment:EnvironmentKeySchema}),CreateProjectSecretRequestSchema=ProjectSecretWriteRequestSchema.extend({key:z50.string().min(1).max(255)}),DeleteProjectSecretQuerySchema=z50.object({kind:z50.enum(["variable","secret"]),environment:EnvironmentKeySchema}),ProjectSecretMetadataDTOSchema=z50.object({id:z50.uuid(),projectId:z50.uuid(),key:z50.string(),kind:z50.literal("secret"),exposure:z50.literal("private"),environment:EnvironmentKeySchema,maskedValue:z50.string().optional(),createdAt:z50.date().transform(value=>value.toISOString()),updatedAt:z50.date().transform(value=>value.toISOString())}),ProjectSecretMetadataDTO=createDTO(ProjectSecretMetadataDTOSchema),ProjectSecretsListResponseSchema=createResponseSchema2(z50.array(ProjectSecretMetadataDTOSchema)),ProjectSecretResponseSchema=createResponseSchema2(ProjectSecretMetadataDTOSchema)}});import{z as z51}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=z51.object({success:z51.literal(!0),downloadUrl:z51.string(),expiresAt:z51.string(),fileSize:z51.number(),duration:z51.number()}),ExportProjectResponseDTO=createDTO(ExportProjectResponseDTOSchema),ImportProjectResultDTOSchema=z51.object({success:z51.literal(!0),projectId:z51.string(),projectName:z51.string(),displayName:z51.string(),projectUrl:z51.string(),duration:z51.number()}),ImportProjectResultDTO=createDTO(ImportProjectResultDTOSchema),ImportPreviewCountsDTOSchema=z51.object({contentTypes:z51.number(),entries:z51.number(),assets:z51.number(),translations:z51.number(),forms:z51.number(),codeFiles:z51.number(),assetFiles:z51.number()}),ImportPreviewSurfaceDTOSchema=z51.object({name:z51.string(),included:z51.boolean(),count:z51.number().optional(),note:z51.string().optional()}),ImportPreviewDTOSchema=z51.object({projectName:z51.string(),displayName:z51.string().nullable(),category:z51.string().nullable(),exportedAt:z51.string(),version:z51.string(),envScope:z51.enum(["main","tree"]),counts:ImportPreviewCountsDTOSchema,surfaces:z51.array(ImportPreviewSurfaceDTOSchema),fileSize:z51.number(),fileName:z51.string()}),ImportPreviewDTO=createDTO(ImportPreviewDTOSchema),ImportPreviewResponseDTOSchema=z51.object({success:z51.literal(!0),preview:ImportPreviewDTOSchema}),ImportPreviewResponseDTO=createDTO(ImportPreviewResponseDTOSchema)}});import{z as z52}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=z52.enum(["manual","schedule","webhook"]),ManualTriggerSchema2=z52.object({type:z52.literal("manual")}),ScheduleTriggerSchema=z52.object({type:z52.literal("schedule"),cron:z52.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:z52.string().optional()}),WebhookTriggerSchema2=z52.object({type:z52.literal("webhook"),path:z52.string().min(1).max(120).regex(/^[a-z0-9][a-z0-9_/-]*$/i,"webhook path must be lowercase alphanumeric with optional / - _")}),TriggerSchema2=z52.discriminatedUnion("type",[ManualTriggerSchema2,ScheduleTriggerSchema,WebhookTriggerSchema2])}});import{z as z53}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=z53.enum(["low","medium","high","critical"]),CapabilitySummaryEntrySchema=z53.object({token:z53.string().min(1),risk:CapabilityRiskTierSchema,description:z53.string()}),AgentSubAgentSummarySchema=z53.object({name:z53.string().min(1),grant:z53.enum(["inherit","explicit"]),effectiveCaps:z53.array(z53.string().min(1))}),AgentInstallSummaryDTOSchema=z53.object({agentName:z53.string().min(1),env:z53.string().min(1),declaredCapabilities:z53.array(CapabilitySummaryEntrySchema),transitiveCapabilities:z53.array(CapabilitySummaryEntrySchema),highRiskCapabilities:z53.array(CapabilitySummaryEntrySchema),criticalCapabilities:z53.array(CapabilitySummaryEntrySchema),subAgents:z53.array(AgentSubAgentSummarySchema),declaresDelegate:z53.boolean(),cycle:z53.array(z53.string()).nullable(),missingSubAgents:z53.array(z53.string()),warnings:z53.array(z53.string())}),AgentInstallSummaryDTO=createDTO(AgentInstallSummaryDTOSchema),AgentInstallSummaryResponseSchema=createResponseSchema2(AgentInstallSummaryDTOSchema)}});import{z as z54}from"zod";var AgentListItemTriggerSchema,AgentListItemTriggerStateSchema,AgentListItemAvailabilitySchema,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=z54.object({kind:TriggerKindSchema,summary:z54.string()}),AgentListItemTriggerStateSchema=z54.object({triggerIndex:z54.number().int().nonnegative(),triggerKind:TriggerKindSchema,enabled:z54.boolean(),wired:z54.boolean(),syncError:z54.string().nullable()}),AgentListItemAvailabilitySchema=z54.enum(["available","pending_merge"]),AgentListItemDTOSchema=z54.object({name:z54.string().min(1),description:z54.string().nullable(),goalFirstLine:z54.string().nullable(),declaredCapabilities:z54.array(CapabilitySummaryEntrySchema),triggers:z54.array(AgentListItemTriggerSchema),triggerStates:z54.array(AgentListItemTriggerStateSchema),availability:AgentListItemAvailabilitySchema,paused:z54.boolean(),nextRunAt:z54.coerce.date().nullable()}),AgentListItemDTO=createDTO(AgentListItemDTOSchema),AgentListResponseSchema=createResponseSchema2(z54.array(AgentListItemDTOSchema))}});import{z as z55}from"zod";var AgentControlResultSchema,AgentControlResultDTO,AgentControlResultResponseSchema,AgentDeleteResultSchema,AgentDeleteResultDTO,AgentDeleteResultResponseSchema,init_agent_control_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-control.dto.js"(){"use strict";init_create_dto();init_response();AgentControlResultSchema=z55.object({paused:z55.boolean(),cancelledRuns:z55.number().int().nonnegative(),stopIncomplete:z55.boolean()}),AgentControlResultDTO=createDTO(AgentControlResultSchema),AgentControlResultResponseSchema=createResponseSchema2(AgentControlResultSchema),AgentDeleteResultSchema=z55.object({name:z55.string(),removedFiles:z55.number().int().positive(),commitSha:z55.string().nullable(),cancelledRuns:z55.number().int().nonnegative()}),AgentDeleteResultDTO=createDTO(AgentDeleteResultSchema),AgentDeleteResultResponseSchema=createResponseSchema2(AgentDeleteResultSchema)}});import{z as z56}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=z56.object({args:z56.unknown().optional(),requestId:z56.string().min(1).max(128).optional()}),DispatchSkippedSchema=z56.object({skipped:z56.enum(["no-manual-trigger","agent-not-deployed","agent-config-invalid","manual-trigger-not-synced","trigger-not-wired","agent-paused","run-in-progress","task-branch-budget","insufficient-credits"])}),DispatchAcceptedSchema=z56.object({sessionId:z56.string().min(1)}),ManualRunResponseSchema=createResponseSchema2(z56.union([DispatchAcceptedSchema,DispatchSkippedSchema]))}});import{z as z57}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=z57.enum(["code","schemas","content","translations","assets","forms"]),SURFACE_NAMES=["code","schemas","content","translations","assets","forms"],SurfaceDeltaVerbSchema=z57.enum(["added","removed","changed","conflict"]),SurfaceItemOriginSchema=z57.enum(["committed-ahead","local-uncommitted"]),SurfaceDeltaItemSchema=z57.object({verb:SurfaceDeltaVerbSchema,key:z57.string(),detail:z57.string().optional(),origin:SurfaceItemOriginSchema.optional(),meta:z57.record(z57.string(),z57.unknown()).optional()}),PerSurfaceDeltaSchema=z57.object({surface:SurfaceNameSchema,status:z57.enum(["ok","timed_out","failed","unchanged"]),durationMs:z57.number().int().nonnegative().optional(),changedCount:z57.number().int().nonnegative(),conflictCount:z57.number().int().nonnegative(),items:z57.array(SurfaceDeltaItemSchema).max(1e3).optional(),truncated:z57.boolean().optional(),error:z57.string().optional()}),CrossSurfaceFindingSchema=z57.object({id:z57.string(),kind:z57.string(),description:z57.string(),severity:z57.enum(["warning","error"]),source:z57.object({surface:SurfaceNameSchema,key:z57.string()}),target:z57.object({surface:SurfaceNameSchema,key:z57.string()}),actions:z57.array(z57.enum(["restore-target","fix-source","ignore"])).min(1)}),StatusReportSchema=z57.object({branch:BranchSchema.optional(),env:BranchSchema,vs:BranchSchema,syncState:z57.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:z57.coerce.date(),surfaces:z57.array(PerSurfaceDeltaSchema),agents:z57.array(z57.object({id:z57.string(),name:z57.string(),status:z57.enum(["active","paused","failed"]),lastRunAt:z57.coerce.date().nullable()})).optional(),crossSurface:z57.array(CrossSurfaceFindingSchema).optional()}),StatusReportDTO=createDTO(StatusReportSchema),StatusReportResponseSchema=createResponseSchema2(StatusReportSchema),DiffReportSchema=z57.object({fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),fromEnv:BranchSchema,toEnv:BranchSchema,generatedAt:z57.coerce.date(),surfaces:z57.array(PerSurfaceDeltaSchema),crossSurface:z57.array(CrossSurfaceFindingSchema).optional(),fingerprint:z57.string()}),DiffReportDTO=createDTO(DiffReportSchema),DiffReportResponseSchema=createResponseSchema2(DiffReportSchema),CodeFileDiffSchema=z57.object({path:z57.string(),state:z57.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z57.string(),additions:z57.number().int().nonnegative(),deletions:z57.number().int().nonnegative()}),CodeFileDiffDTO=createDTO(CodeFileDiffSchema),CodeFileDiffResponseSchema=createResponseSchema2(CodeFileDiffSchema),CodeConflictBlobSchema=z57.object({oid:z57.string().optional(),content:z57.string().optional(),truncated:z57.boolean(),binary:z57.boolean()}),CodeConflictDetailSchema=z57.object({path:z57.string(),base:CodeConflictBlobSchema,ours:CodeConflictBlobSchema,theirs:CodeConflictBlobSchema,result:CodeConflictBlobSchema,sourceTipSha:z57.string(),targetTipSha:z57.string(),mergeBaseSha:z57.string().optional()}),CodeConflictDetailDTO=createDTO(CodeConflictDetailSchema),CodeConflictDetailResponseSchema=createResponseSchema2(CodeConflictDetailSchema),ContentEntrySnapshotSchema=z57.object({id:z57.string(),slug:z57.string(),contentType:z57.string(),data:z57.record(z57.string(),z57.unknown()),updatedAt:z57.coerce.date()}),ContentRowDiffSchema=z57.object({collection:z57.string(),rowId:z57.string(),parent:ContentEntrySnapshotSchema.nullable(),child:ContentEntrySnapshotSchema.nullable()}),ContentRowDiffDTO=createDTO(ContentRowDiffSchema),ContentRowDiffResponseSchema=createResponseSchema2(ContentRowDiffSchema),SchemaTypeSnapshotSchema=z57.object({name:z57.string(),label:z57.string(),isSingleton:z57.boolean(),fields:z57.record(z57.string(),z57.unknown())}),SchemaTypeDiffSchema=z57.object({typeName:z57.string(),parent:SchemaTypeSnapshotSchema.nullable(),child:SchemaTypeSnapshotSchema.nullable()}),SchemaTypeDiffDTO=createDTO(SchemaTypeDiffSchema),SchemaTypeDiffResponseSchema=createResponseSchema2(SchemaTypeDiffSchema),AssetSnapshotSchema=z57.object({id:z57.string(),name:z57.string(),type:z57.enum(["file","folder"]),mimeType:z57.string().nullable(),storageKey:z57.string().nullable(),url:z57.string().nullable(),fileSize:z57.number().nullable(),width:z57.number().nullable(),height:z57.number().nullable(),altText:z57.string().nullable(),caption:z57.string().nullable(),createdAt:z57.coerce.date(),updatedAt:z57.coerce.date()}),AssetDiffSchema=z57.object({assetId:z57.string(),parent:AssetSnapshotSchema.nullable(),child:AssetSnapshotSchema.nullable()}),AssetDiffDTO=createDTO(AssetDiffSchema),AssetDiffResponseSchema=createResponseSchema2(AssetDiffSchema),TranslationRowDiffSchema=z57.object({locale:z57.string(),key:z57.string(),parent:z57.string().nullable(),child:z57.string().nullable()}),TranslationRowDiffDTO=createDTO(TranslationRowDiffSchema),TranslationRowDiffResponseSchema=createResponseSchema2(TranslationRowDiffSchema),FormSchemaSnapshotSchema=z57.object({formName:z57.string(),label:z57.string().nullable(),schemaFingerprint:z57.string(),fields:z57.record(z57.string(),z57.unknown()),settings:z57.record(z57.string(),z57.unknown()).optional()}),FormSchemaDiffSchema=z57.object({formName:z57.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=z57.enum(CONFLICT_KINDS),ConflictSchema=z57.object({surface:SurfaceNameSchema,key:z57.string(),kind:ConflictKindSchema.optional(),description:z57.string(),parentValue:z57.unknown().optional(),childValue:z57.unknown().optional(),conflictingFields:z57.array(z57.string()).optional(),code:z57.object({path:z57.string(),unresolvable:z57.boolean().optional(),reason:z57.string().optional()}).optional()}),FieldPickSchema=z57.object({field:z57.string(),choice:z57.enum(["parent","child","pick","ai-pick"]),pickedValue:z57.unknown().optional(),aiSessionId:z57.string().optional()}),ConflictResolutionSchema=z57.object({surface:SurfaceNameSchema,key:z57.string(),choice:z57.enum(["parent","child","pick"]),pickedValue:z57.unknown().optional(),fieldPicks:z57.array(FieldPickSchema).optional()}),MergeResultSchema=z57.object({ok:z57.boolean(),mergeId:z57.string().uuid(),fromBranch:BranchSchema.optional(),toBranch:BranchSchema.optional(),fromEnv:BranchSchema,toEnv:BranchSchema,applied:z57.array(z57.object({surface:SurfaceNameSchema,count:z57.number().int().nonnegative()})),conflicts:z57.array(ConflictSchema).optional(),summary:z57.string().optional()}),MergeResultDTO=createDTO(MergeResultSchema),MergeResultResponseSchema=createResponseSchema2(MergeResultSchema),EngineStrategySchema=z57.enum(["ff-only","auto","theirs","ours","manual"]),VendorStrategySchema=z57.enum(["ff_only","ff_prefer","merge"]),MergeStrategySchema=z57.object({engine:EngineStrategySchema.optional(),vendor:VendorStrategySchema.optional(),squash:z57.boolean().optional()}),ResolvedStrategySchema=z57.object({engine:EngineStrategySchema,vendor:VendorStrategySchema,squash:z57.boolean()}),MergeRequestSchema=z57.object({from:BranchSchema,allowDirectMerge:z57.boolean().optional(),strategy:MergeStrategySchema.optional()}),MergeInitiateResultSchema=z57.object({mergeId:z57.string().uuid(),streamUrl:z57.string(),strategy:ResolvedStrategySchema,acceptedAt:z57.coerce.date()}),MergeInitiateResultDTO=createDTO(MergeInitiateResultSchema),MergeInitiateResponseSchema=createResponseSchema2(MergeInitiateResultSchema),MergeConflictsHydrationSchema=z57.object({mergeId:z57.string().uuid(),fromEnv:BranchSchema,toEnv:BranchSchema,status:z57.enum(["in_progress","complete","failed","rolled_back","conflicts"]),strategy:ResolvedStrategySchema,conflicts:z57.array(ConflictSchema),draftResolutions:z57.array(ConflictResolutionSchema),lastEditedBy:z57.string().nullable(),lastEditedAt:z57.coerce.date().nullable(),initiator:z57.object({userId:z57.string().nullable(),role:z57.string().nullable(),agentName:z57.string().nullable()})}),MergeConflictsHydrationDTO=createDTO(MergeConflictsHydrationSchema),MergeConflictsHydrationResponseSchema=createResponseSchema2(MergeConflictsHydrationSchema),MergeResolveDraftRequestSchema=z57.object({resolutions:z57.array(ConflictResolutionSchema)}),MergeResolveDraftResultSchema=z57.object({mergeId:z57.string().uuid(),draftResolutions:z57.array(ConflictResolutionSchema),lastEditedAt:z57.coerce.date(),lastEditedBy:z57.string()}),MergeResolveDraftResultDTO=createDTO(MergeResolveDraftResultSchema),MergeResolveRequestSchema=z57.object({mergeId:z57.string().uuid(),resolutions:z57.array(ConflictResolutionSchema)}),MergeCancelRequestSchema=z57.object({mergeId:z57.string().uuid()}),PublishReleaseRequestSchema=z57.object({version:z57.string().regex(/^v?\d+\.\d+\.\d+(-[\w.]+)?$/,"Use semver (v1.4.2 / 1.4.2 / 1.4.2-rc.1)"),notes:z57.string().max(2e4).optional()}),PublishReleaseResultSchema=z57.object({releaseTag:z57.string(),sha:z57.string(),publishedAt:z57.coerce.date()}),PublishReleaseResultDTO=createDTO(PublishReleaseResultSchema),PublishReleaseResponseSchema=createResponseSchema2(PublishReleaseResultSchema)}});import{z as z58}from"zod";var AgentSessionStatusSchema,AgentRunStatusSchema,AgentSessionsListQuerySchema,SessionMetricsSchema,AgentSessionReviewPublicationSchema,AgentSessionReviewSummarySchema,AgentSessionReviewSummaryDTO,AgentSessionReviewPayloadSchema,AgentSessionReviewPayloadDTO,AgentSessionReviewPayloadResponseSchema,AgentRuntimeRefusalKindSchema,AgentRunStopContextSchema,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=z58.enum(["planned","running","finished","cancelled","errored"]),AgentRunStatusSchema=z58.enum(["in-progress","done","merged","merge-required","needs-attention","needs-input","failed"]),AgentSessionsListQuerySchema=z58.strictObject({branch:BranchSchema.optional(),project_agents_only:z58.coerce.boolean().optional(),agent_name:z58.string().optional(),status:AgentSessionStatusSchema.optional(),run_status:AgentRunStatusSchema.optional(),since:z58.coerce.date().optional(),page:z58.coerce.number().int().positive().default(1),limit:z58.coerce.number().int().positive().max(200).default(25),cursor:z58.coerce.date().optional()}),SessionMetricsSchema=z58.object({cpuMs:z58.number().nonnegative().default(0),netBytes:z58.number().nonnegative().default(0),walltimeMs:z58.number().nonnegative().default(0),llmTokensIn:z58.number().nonnegative().optional(),llmTokensOut:z58.number().nonnegative().optional(),stepCount:z58.number().int().nonnegative().optional(),toolCallCounts:z58.record(z58.string().min(1).max(120),z58.number().int().nonnegative()).optional(),toolCallOutcomes:z58.array(z58.object({toolName:z58.string().min(1).max(120),success:z58.boolean(),code:z58.string().regex(/^[A-Z][A-Z0-9_]{0,63}$/).optional()})).max(512).optional(),finishAction:z58.enum(["merge","retain","discard"]).optional()}),AgentSessionReviewPublicationSchema=z58.enum(["pending","merged","conflict","not_published"]),AgentSessionReviewSummarySchema=z58.object({capturedAt:z58.coerce.date(),fingerprint:z58.string().min(1).max(256),counts:z58.object({code:z58.number().int().nonnegative(),content:z58.number().int().nonnegative(),schemas:z58.number().int().nonnegative(),labels:z58.number().int().nonnegative(),assets:z58.number().int().nonnegative().optional()}),publication:AgentSessionReviewPublicationSchema,mergeId:z58.uuid().nullable()}),AgentSessionReviewSummaryDTO=createDTO(AgentSessionReviewSummarySchema),AgentSessionReviewPayloadSchema=z58.object({diff:DiffReportSchema,code:z58.array(CodeFileDiffSchema.extend({raw:z58.string().max(24576)})).max(200),schemas:z58.array(SchemaTypeDiffSchema).max(200),content:z58.array(z58.object({key:z58.string().min(1).max(512),collection:z58.string().min(1).max(256),slug:z58.string().max(512).optional(),verb:z58.enum(["added","modified","deleted"]),fields:z58.array(z58.object({name:z58.string().min(1).max(256),before:z58.unknown().optional(),after:z58.unknown().optional()})).max(20)})).max(200),labels:z58.array(z58.object({key:z58.string().min(1).max(512),locale:z58.string().min(1).max(64).optional(),before:z58.unknown().nullable(),after:z58.unknown().nullable()})).max(200),assets:z58.array(z58.object({key:z58.string().min(1).max(512),name:z58.string().min(1).max(512),verb:z58.enum(["added","modified","deleted"]),before:AssetSnapshotSchema.nullable(),after:AssetSnapshotSchema.nullable()})).max(200).default([])}),AgentSessionReviewPayloadDTO=createDTO(AgentSessionReviewPayloadSchema),AgentSessionReviewPayloadResponseSchema=createResponseSchema2(AgentSessionReviewPayloadSchema),AgentRuntimeRefusalKindSchema=z58.enum(["plan_cannot_fund","consent_missing","budget_spent"]),AgentRunStopContextSchema=z58.object({kind:z58.literal("agent_runtime_allowance"),refusal:AgentRuntimeRefusalKindSchema,planCode:z58.string(),includedMs:z58.number().int().nonnegative(),resetsAt:z58.coerce.date(),rateUsdPerHour:z58.number().nullable()}),AgentSessionDTOSchema=z58.strictObject({id:z58.uuid(),projectId:z58.uuid(),branch:BranchSchema,agentName:z58.string().min(1),triggerKind:TriggerKindSchema,triggerPayload:z58.unknown().optional(),capabilities:z58.array(z58.string()).optional(),dataSources:z58.array(z58.string()).optional(),status:AgentSessionStatusSchema,sandboxId:z58.string().nullable(),startedAt:z58.coerce.date().nullable(),finishedAt:z58.coerce.date().nullable(),cancelledAt:z58.coerce.date().nullable(),costUsd:z58.number().nonnegative(),costCeilingUsd:z58.number().nonnegative(),creditsUsed:z58.number().int().nonnegative().nullable(),limitCredits:z58.number().int().nonnegative().nullable(),metrics:SessionMetricsSchema.nullable(),lastCheckpointId:z58.uuid().nullable(),agentBranchId:z58.uuid().nullable(),parentSessionId:z58.uuid().nullable(),terminalReason:z58.string().nullable(),errorMessage:z58.string().nullable(),stopContext:AgentRunStopContextSchema.nullable().catch(null),reportDocument:StoredReportDocumentSchema.nullable(),reviewSummary:AgentSessionReviewSummarySchema.nullable(),reviewCaptureError:z58.string().nullable(),retainedBranch:BranchSchema.nullable().optional(),createdAt:z58.coerce.date(),updatedAt:z58.coerce.date()}),AgentSessionDTO=createDTO(AgentSessionDTOSchema),AgentSessionCheckpointDTOSchema=z58.object({id:z58.uuid(),sessionId:z58.uuid(),checkpointIdx:z58.number().int().nonnegative(),payloadRef:z58.string(),payloadSizeBytes:z58.number().int().nonnegative(),checksum:z58.string().length(64),createdAt:z58.coerce.date()}),AgentSessionCheckpointDTO=createDTO(AgentSessionCheckpointDTOSchema),AgentSessionResponseSchema=createResponseSchema2(AgentSessionDTOSchema),AgentSessionsListResponseSchema=createPaginatedResponseSchema(AgentSessionDTOSchema),AgentSessionCheckpointsListResponseSchema=createResponseSchema2(z58.array(AgentSessionCheckpointDTOSchema)),AgentSessionWithCheckpointsResponseSchema=createResponseSchema2(z58.object({session:AgentSessionDTOSchema,checkpoints:z58.array(AgentSessionCheckpointDTOSchema)})),SessionErrorCodeSchema=z58.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=z58.object({reason:z58.string().min(1).max(120).optional()})}});import{z as z59}from"zod";var AgentBranchClassificationSchema,AgentBranchDecidedPathSchema,WorkSessionReviewSchema,RequestWorkSessionReviewSchema,WorkSessionReviewResultSchema,AgentBranchProposalDTOSchema,AgentBranchProposalDTO,DecideProposalRequestSchema,AgentBranchProposalResponseSchema,AgentBranchProposalsListResponseSchema,DecideProposalConflictResponseSchema,init_agent_proposal_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-proposal.dto.js"(){"use strict";init_create_dto();init_response();init_env_status_dto();AgentBranchClassificationSchema=z59.enum(["trivial","structural"]),AgentBranchDecidedPathSchema=z59.enum(["auto-merge","review-merged","review-discarded"]),WorkSessionReviewSchema=z59.object({sessionId:z59.uuid(),branch:z59.string().min(1),targetBranch:z59.string().min(1),revision:z59.string().min(1),fingerprint:z59.string().min(1),source:z59.enum(["studio","slack","autonomous","mcp"]),threadId:z59.uuid().nullable(),invocationId:z59.uuid().nullable(),conversationBranch:z59.string().nullable(),capturedAt:z59.string(),surfaces:z59.array(PerSurfaceDeltaSchema).optional(),counts:z59.record(z59.string(),z59.number().int().nonnegative())}),RequestWorkSessionReviewSchema=z59.strictObject({sessionId:z59.uuid(),summary:z59.string().trim().min(1).max(240),targetBranch:z59.string().trim().min(1).optional()}),WorkSessionReviewResultSchema=z59.object({requested:z59.literal(!0),alreadyRequested:z59.boolean(),reviewId:z59.uuid(),reviewUrl:z59.url(),status:z59.literal("pending"),sessionId:z59.uuid(),branch:z59.string(),targetBranch:z59.string(),revision:z59.string(),savedRevision:z59.string(),fingerprint:z59.string(),visibility:z59.literal("user-visible"),retention:z59.literal("durable"),expiresAt:z59.null(),merged:z59.literal(!1),published:z59.literal(!1),links:z59.object({preview:z59.url(),changes:z59.url(),conversation:z59.url().nullable()})}),AgentBranchProposalDTOSchema=z59.object({id:z59.uuid(),envId:z59.uuid(),sessionId:z59.uuid().nullable(),skillName:z59.string().min(1),classification:AgentBranchClassificationSchema,rationale:z59.string().nullable(),summary:z59.string().nullable(),surfaceDeltas:z59.record(z59.string(),z59.unknown()),review:WorkSessionReviewSchema.optional(),createdAt:z59.coerce.date(),decidedAt:z59.coerce.date().nullable(),decidedPath:AgentBranchDecidedPathSchema.nullable(),decidedBy:z59.string().nullable()}),AgentBranchProposalDTO=createDTO(AgentBranchProposalDTOSchema),DecideProposalRequestSchema=z59.object({path:z59.enum(["review-merged","review-discarded"])}),AgentBranchProposalResponseSchema=createResponseSchema2(AgentBranchProposalDTOSchema),AgentBranchProposalsListResponseSchema=createResponseSchema2(z59.array(AgentBranchProposalDTOSchema)),DecideProposalConflictResponseSchema=z59.object({code:z59.literal("merge_conflict"),message:z59.string(),conflicts:z59.record(z59.string(),z59.number().int().nonnegative())})}});import{z as z60}from"zod";var AGENT_QUESTION_STATES,AgentQuestionStateSchema,AgentQuestionFormSchema,AgentQuestionAskSchema,AgentQuestionRequestSchema,AgentQuestionSchema,AgentQuestionResponseSchema,RunAgentQuestionResponseSchema,AgentQuestionAttentionSchema,OpenAgentQuestionsResponseSchema,AnswerAgentQuestionResultSchema,AnswerAgentQuestionResponseSchema,init_agent_question_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-question.dto.js"(){"use strict";init_chat_block();init_response();AGENT_QUESTION_STATES=["open","answered","expired","cancelled","superseded"],AgentQuestionStateSchema=z60.enum(AGENT_QUESTION_STATES),AgentQuestionFormSchema=FormBlockSchema.extend({title:z60.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=z60.object({description:z60.string().trim().min(1).max(240),block:AgentQuestionFormSchema}).strict(),AgentQuestionRequestSchema=AgentQuestionAskSchema.extend({version:z60.literal(QUESTION_FORM_CONTRACT_VERSION),sessionIds:z60.array(z60.uuid()).optional()}),AgentQuestionSchema=z60.object({id:z60.uuid(),projectId:z60.uuid(),threadId:z60.uuid(),invocationId:z60.uuid(),agentKey:z60.string().min(1).max(120),anchorEnv:z60.string().min(1).max(64),retainedEnv:z60.string().min(1).max(64),state:AgentQuestionStateSchema,request:AgentQuestionRequestSchema,answer:QuestionFormAnswerSnapshotSchema.nullable(),answeredByUserId:z60.string().min(1).nullable(),continuationInvocationId:z60.uuid().nullable(),askedAt:z60.coerce.date(),expiresAt:z60.coerce.date(),closedAt:z60.coerce.date().nullable()}),AgentQuestionResponseSchema=createResponseSchema2(AgentQuestionSchema),RunAgentQuestionResponseSchema=createResponseSchema2(AgentQuestionSchema.nullable()),AgentQuestionAttentionSchema=z60.object({questionId:z60.uuid(),invocationId:z60.uuid(),askedAt:z60.coerce.date()}),OpenAgentQuestionsResponseSchema=createResponseSchema2(z60.array(AgentQuestionAttentionSchema)),AnswerAgentQuestionResultSchema=z60.object({question:AgentQuestionSchema,continuationInvocationId:z60.uuid(),deduped:z60.boolean()}),AnswerAgentQuestionResponseSchema=createResponseSchema2(AnswerAgentQuestionResultSchema)}});import{z as z61}from"zod";var IntegrationAuthModeSchema,IntegrationAuthKindSchema,IntegrationCredentialInputSchema,IntegrationCredentialUsageSchema,IntegrationToolEffectSchema,ProjectIntegrationCredentialStatusSchema,IntegrationAuthModeDTOSchema,IntegrationCredentialDefinitionDTOSchema,IntegrationToolDefinitionDTOSchema,IntegrationRecipeDTOSchema,IntegrationInfoDTOSchema,IntegrationInfoDTO,ProjectIntegrationStatusDTOSchema,ProjectIntegrationStatusDTO,ProjectIntegrationInstallationDTOSchema,ProjectIntegrationInstallationDTO,EnableProjectIntegrationRequestSchema,SwitchProjectIntegrationAuthRequestSchema,OrganizationIntegrationConnectionStatusSchema,OrganizationIntegrationConnectionDTOSchema,OrganizationIntegrationConnectionDTO,ProjectIntegrationConnectionDTOSchema,ProjectIntegrationConnectionDTO,McpHeaderNameSchema,McpHeaderDefinitionSchema,McpSecretMapSchema,ConnectOrganizationIntegrationRequestSchema,ProjectIntegrationReturnPathSchema,IntegrationCustomIdentitySchema,ConnectProjectIntegrationRequestSchema,McpIntegrationAuthSchema,McpIntegrationSetupAuthSchema,AddProjectMcpIntegrationRequestSchema,AddProjectMcpIntegrationResponseBaseSchema,AddProjectMcpIntegrationResponseSchema,ReusableMcpServerAuthKindSchema,ReusableMcpServerDTOSchema,ReusableMcpServerDTO,SearchReusableMcpServersQuerySchema,ReuseProjectMcpIntegrationRequestSchema,LinearOAuthApplicationDistributionSchema,OrganizationLinearAppDTOSchema,OrganizationLinearAppDTO,CreateManagedLinearAppRequestSchema,UpdateManagedLinearAppRequestSchema,StartManagedLinearConnectRequestSchema,StartProjectIntegrationConnectResponseSchema,StartProjectIntegrationConnectResponseDTO,ProjectIntegrationConnectResponseSchema,BindProjectChannelRequestSchema,ListProjectChannelsQuerySchema,SearchProjectChannelsQuerySchema,ProjectChannelBindingDTOSchema,ProjectChannelBindingDTO,ProjectChannelCandidateAvailabilitySchema,ProjectChannelCandidateDTOSchema,ProjectChannelCandidateDTO,FirecrawlScrapeFormatsSchema,FirecrawlScrapeToolInputSchema,FirecrawlSearchToolInputSchema,FirecrawlDeveloperSearchToolInputSchema,FirecrawlResearchSearchToolInputSchema,FirecrawlResearchPaperToolInputSchema,FirecrawlResearchRelatedToolInputSchema,FirecrawlMapToolInputSchema,FirecrawlCrawlToolInputSchema,FirecrawlMonitorScheduleInputSchema,FirecrawlMonitorScrapeOptionsInputSchema,FirecrawlMonitorTargetInputSchema,FirecrawlMonitorCreateToolInputSchema,FirecrawlMonitorUpdateToolInputSchema,FirecrawlMonitorIdToolInputSchema,FirecrawlMonitorCheckToolInputSchema,RunProjectIntegrationToolRequestSchema,ProjectIntegrationToolRunUsageSchema,ProjectIntegrationToolRunBillingSchema,FirecrawlScrapeToolOutputSchema,FirecrawlSearchToolOutputSchema,FirecrawlResearchPaperSchema,FirecrawlResearchPassageSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlMonitorScheduleOutputSchema,FirecrawlMonitorTargetOutputSchema,FirecrawlMonitorOutputSchema,FirecrawlMonitorCheckOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema,FirecrawlToolKeySchema,FirecrawlToolOutputSchema,ProjectIntegrationToolRunBaseSchema,ProjectIntegrationToolRunDTOSchema,ProjectIntegrationToolRunDTO,IntegrationsListResponseSchema,IntegrationInfoResponseSchema,ProjectIntegrationStatusResponseSchema,ProjectIntegrationInstallationResponseSchema,ProjectIntegrationToolRunResponseSchema,StartProjectIntegrationConnectResponseResponseSchema,OrganizationIntegrationConnectionResponseSchema,ProjectIntegrationConnectionsResponseSchema,ProjectIntegrationConnectResponseResponseSchema,AddProjectMcpIntegrationResponseResponseSchema,ReusableMcpServersResponseSchema,ProjectChannelBindingResponseSchema,ProjectChannelBindingsResponseSchema,ProjectChannelCandidatesResponseSchema,init_integration_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/integration.dto.js"(){"use strict";init_create_dto();init_response();IntegrationAuthModeSchema=z61.enum(["fimo","personal","oauth"]),IntegrationAuthKindSchema=z61.enum(["oauth","api_key","bot_token","basic"]),IntegrationCredentialInputSchema=z61.enum(["secret_text"]),IntegrationCredentialUsageSchema=z61.enum(["http_bearer","api_key"]),IntegrationToolEffectSchema=z61.enum(["read","write","delete","financial"]),ProjectIntegrationCredentialStatusSchema=z61.enum(["not_required","missing","configured"]),IntegrationAuthModeDTOSchema=z61.object({mode:IntegrationAuthModeSchema,label:z61.string().min(1),description:z61.string().min(1)}),IntegrationCredentialDefinitionDTOSchema=z61.object({id:z61.string().min(1),label:z61.string().min(1),input:IntegrationCredentialInputSchema,usage:IntegrationCredentialUsageSchema,required:z61.boolean()}),IntegrationToolDefinitionDTOSchema=z61.object({key:z61.string().min(1),name:z61.string().min(1),description:z61.string().min(1),effect:IntegrationToolEffectSchema}),IntegrationRecipeDTOSchema=z61.object({title:z61.string().min(1),description:z61.string().min(1),command:z61.string().min(1).optional()}),IntegrationInfoDTOSchema=z61.object({key:z61.string().min(1),name:z61.string().min(1),summary:z61.string().min(1),type:z61.enum(["native","mcp"]).optional(),url:z61.string().url().optional(),defaultAuthMode:IntegrationAuthModeSchema.nullable().optional(),authModes:z61.array(IntegrationAuthModeDTOSchema),credentials:z61.array(IntegrationCredentialDefinitionDTOSchema),tools:z61.array(IntegrationToolDefinitionDTOSchema),liveToolsStatus:z61.enum(["available","unavailable"]).optional(),connectionCapabilities:z61.object({customIdentityCreation:z61.boolean()}).optional(),recipes:z61.array(IntegrationRecipeDTOSchema)}),IntegrationInfoDTO=createDTO(IntegrationInfoDTOSchema),ProjectIntegrationStatusDTOSchema=z61.object({projectId:z61.uuid(),integrationKey:z61.string().min(1),name:z61.string().min(1),summary:z61.string().min(1),installed:z61.boolean(),enabled:z61.boolean(),setupState:z61.enum(["setup_required","ready","attention"]),authMode:IntegrationAuthModeSchema.nullable(),authModeLabel:z61.string().nullable(),connectionId:z61.uuid().nullable().optional(),connectionAlias:z61.string().min(1).nullable().optional(),connectionStatus:z61.enum(["active","revoked"]).nullable(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z61.array(z61.string()),installedAt:z61.coerce.date().nullable(),updatedAt:z61.coerce.date().nullable()}),ProjectIntegrationStatusDTO=createDTO(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationDTOSchema=z61.object({id:z61.uuid(),projectId:z61.uuid(),integrationKey:z61.string().min(1),enabled:z61.boolean(),authMode:IntegrationAuthModeSchema,authModeLabel:z61.string(),connectionId:z61.uuid().nullable().optional(),connectionAlias:z61.string().min(1).nullable().optional(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z61.array(z61.string()),createdAt:z61.coerce.date(),updatedAt:z61.coerce.date()}),ProjectIntegrationInstallationDTO=createDTO(ProjectIntegrationInstallationDTOSchema),EnableProjectIntegrationRequestSchema=z61.object({authMode:IntegrationAuthModeSchema.optional(),connectionAlias:z61.string().min(1).optional()}),SwitchProjectIntegrationAuthRequestSchema=z61.object({authMode:IntegrationAuthModeSchema}),OrganizationIntegrationConnectionStatusSchema=z61.enum(["active","revoked"]),OrganizationIntegrationConnectionDTOSchema=z61.object({id:z61.uuid(),organizationId:z61.string().min(1),integrationKey:z61.string().min(1),registrationId:z61.uuid().nullable(),alias:z61.string().min(1),authKind:IntegrationAuthKindSchema,externalAccountId:z61.string().min(1),externalAccountName:z61.string().nullable(),externalBotUserId:z61.string().nullable(),status:OrganizationIntegrationConnectionStatusSchema,scopes:z61.array(z61.string()),connectedAt:z61.coerce.date(),updatedAt:z61.coerce.date()}),OrganizationIntegrationConnectionDTO=createDTO(OrganizationIntegrationConnectionDTOSchema),ProjectIntegrationConnectionDTOSchema=OrganizationIntegrationConnectionDTOSchema.extend({granted:z61.boolean(),isDefault:z61.boolean()}),ProjectIntegrationConnectionDTO=createDTO(ProjectIntegrationConnectionDTOSchema),McpHeaderNameSchema=z61.string().trim().min(1).max(120).regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,"Header name is invalid."),McpHeaderDefinitionSchema=z61.object({name:McpHeaderNameSchema}),McpSecretMapSchema=z61.record(McpHeaderNameSchema,z61.string().min(1)),ConnectOrganizationIntegrationRequestSchema=z61.object({alias:z61.string().min(1).max(120).optional(),token:z61.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z61.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=z61.string().min(1).max(500).refine(value=>value.startsWith("/app/")&&!value.startsWith("//"),"Return path must be inside the Fimo app."),IntegrationCustomIdentitySchema=z61.object({displayName:z61.string().trim().min(1).max(35),backgroundColor:z61.string().regex(/^#[0-9a-fA-F]{6}$/).optional(),iconUrl:z61.string().url().max(2048).optional()}),ConnectProjectIntegrationRequestSchema=z61.discriminatedUnion("mode",[z61.object({mode:z61.literal("personal"),alias:z61.string().min(1).max(120),token:z61.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z61.boolean().optional()}),z61.object({mode:z61.literal("oauth"),returnTo:ProjectIntegrationReturnPathSchema.optional(),reconnect:z61.boolean().optional(),registrationId:z61.uuid().optional(),customIdentity:IntegrationCustomIdentitySchema.optional()})]).superRefine((value,ctx)=>{value.mode==="oauth"&&value.registrationId&&value.customIdentity&&ctx.addIssue({code:"custom",path:["registrationId"],message:"Choose an existing app identity or create a custom one, not both."}),value.mode==="personal"&&!!value.token==!!value.secrets&&ctx.addIssue({code:"custom",path:["token"],message:"Provide either one token or a complete MCP secret map."})}),McpIntegrationAuthSchema=z61.enum(["none","bearer","header"]),McpIntegrationSetupAuthSchema=z61.union([z61.literal("auto"),McpIntegrationAuthSchema]),AddProjectMcpIntegrationRequestSchema=z61.object({type:z61.literal("mcp"),name:z61.string().trim().min(1).max(120),url:z61.string().url(),auth:McpIntegrationSetupAuthSchema.default("auto"),returnTo:ProjectIntegrationReturnPathSchema.optional(),headers:z61.array(McpHeaderDefinitionSchema).min(1).max(20).optional(),secrets:McpSecretMapSchema.optional(),headerName:McpHeaderNameSchema.optional(),token:z61.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=z61.object({integrationKey:z61.string().min(1),status:ProjectIntegrationStatusDTOSchema,info:IntegrationInfoDTOSchema}),AddProjectMcpIntegrationResponseSchema=z61.discriminatedUnion("mode",[AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z61.literal("connected")}),AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z61.literal("oauth"),connectUrl:z61.string().url(),expiresAt:z61.coerce.date()})]),ReusableMcpServerAuthKindSchema=z61.enum(["none","bearer","header","oauth"]),ReusableMcpServerDTOSchema=z61.object({id:z61.uuid(),name:z61.string().min(1),host:z61.string().min(1),authKind:ReusableMcpServerAuthKindSchema,sourceProjectName:z61.string().min(1),availability:z61.enum(["available","unavailable"])}),ReusableMcpServerDTO=createDTO(ReusableMcpServerDTOSchema),SearchReusableMcpServersQuerySchema=z61.object({query:z61.string().trim().max(120).optional()}),ReuseProjectMcpIntegrationRequestSchema=z61.object({serverId:z61.uuid()}),LinearOAuthApplicationDistributionSchema=z61.enum(["private","public"]),OrganizationLinearAppDTOSchema=z61.object({id:z61.uuid(),displayName:z61.string().min(1),description:z61.string().nullable(),iconUrl:z61.string().nullable(),distribution:LinearOAuthApplicationDistributionSchema,status:z61.enum(["active","revoked"]),connectionIds:z61.array(z61.uuid()),createdAt:z61.coerce.date(),updatedAt:z61.coerce.date()}),OrganizationLinearAppDTO=createDTO(OrganizationLinearAppDTOSchema),CreateManagedLinearAppRequestSchema=z61.object({appName:z61.string().trim().min(2).max(80),description:z61.string().trim().max(1e3).optional(),iconUrl:z61.string().url().max(2048).optional()}),UpdateManagedLinearAppRequestSchema=CreateManagedLinearAppRequestSchema.partial().refine(input=>Object.keys(input).length>0,"At least one Linear app field is required."),StartManagedLinearConnectRequestSchema=z61.object({projectId:z61.uuid(),registrationId:z61.uuid(),returnTo:ProjectIntegrationReturnPathSchema.optional()}),StartProjectIntegrationConnectResponseSchema=z61.object({integrationKey:z61.string().min(1),connectUrl:z61.string().url(),expiresAt:z61.coerce.date()}),StartProjectIntegrationConnectResponseDTO=createDTO(StartProjectIntegrationConnectResponseSchema),ProjectIntegrationConnectResponseSchema=z61.discriminatedUnion("mode",[z61.object({mode:z61.literal("personal"),integrationKey:z61.string().min(1),connection:OrganizationIntegrationConnectionDTOSchema}),z61.object({mode:z61.literal("oauth"),integrationKey:z61.string().min(1),connectUrl:z61.string().url(),expiresAt:z61.coerce.date()})]),BindProjectChannelRequestSchema=z61.object({ref:z61.string().min(1),connectionAlias:z61.string().min(1).optional(),agentName:z61.string().min(1).max(160).nullable().optional(),force:z61.boolean().optional()}),ListProjectChannelsQuerySchema=z61.object({integrationKey:z61.string().min(1)}),SearchProjectChannelsQuerySchema=z61.object({integrationKey:z61.string().min(1),connectionAlias:z61.string().min(1),query:z61.string().max(160).optional()}),ProjectChannelBindingDTOSchema=z61.object({id:z61.uuid(),projectId:z61.uuid(),integrationKey:z61.string().min(1),connectionId:z61.uuid(),externalWorkspaceId:z61.string().min(1),externalChannelId:z61.string().min(1),externalChannelName:z61.string().nullable(),agentName:z61.string().nullable(),enabled:z61.boolean(),createdAt:z61.coerce.date(),updatedAt:z61.coerce.date()}),ProjectChannelBindingDTO=createDTO(ProjectChannelBindingDTOSchema),ProjectChannelCandidateAvailabilitySchema=z61.enum(["available","selected","used_by_project","unavailable"]),ProjectChannelCandidateDTOSchema=z61.object({id:z61.string().min(1),name:z61.string().min(1),visibility:z61.enum(["public","private"]),availability:ProjectChannelCandidateAvailabilitySchema,projectName:z61.string().min(1).nullable(),canMove:z61.boolean()}),ProjectChannelCandidateDTO=createDTO(ProjectChannelCandidateDTOSchema),FirecrawlScrapeFormatsSchema=z61.object({markdown:z61.boolean().optional(),summary:z61.boolean().optional(),links:z61.boolean().optional(),branding:z61.boolean().optional(),images:z61.boolean().optional(),html:z61.union([z61.literal("cleaned"),z61.literal("raw"),z61.boolean()]).optional(),json:z61.union([z61.boolean(),z61.object({prompt:z61.string().min(1).max(1e4),schema:z61.record(z61.string(),z61.unknown()).optional()})]).optional()}).default({markdown:!0}),FirecrawlScrapeToolInputSchema=z61.object({url:z61.string().url(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z61.boolean().optional(),timeoutMs:z61.number().int().positive().max(12e4).optional(),waitForMs:z61.number().int().min(0).max(3e4).optional(),maxAgeMs:z61.number().int().min(0).optional(),minAgeMs:z61.number().int().min(0).optional(),storeInCache:z61.boolean().optional(),proxy:z61.enum(["basic","enhanced","auto"]).optional(),mobile:z61.boolean().optional(),location:z61.object({country:z61.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z61.array(z61.string().min(1).max(35)).min(1).max(10).optional()}).optional()}),FirecrawlSearchToolInputSchema=z61.object({query:z61.string().min(1),maxResults:z61.number().int().positive().max(20).optional(),sources:z61.array(z61.enum(["web","news","images"])).min(1).max(3).optional(),categories:z61.array(z61.enum(["github","research","pdf"])).min(1).max(3).optional(),includeDomains:z61.array(z61.string().min(1).max(253)).min(1).max(100).optional(),excludeDomains:z61.array(z61.string().min(1).max(253)).min(1).max(100).optional(),timeRange:z61.enum(["hour","day","week","month","year"]).optional(),location:z61.string().min(1).max(160).optional(),country:z61.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code.").optional(),highlights:z61.boolean().optional(),timeoutMs:z61.number().int().positive().max(12e4).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."}),FirecrawlDeveloperSearchToolInputSchema=z61.object({query:z61.string().min(1).max(500),maxResults:z61.number().int().min(1).max(100).optional(),types:z61.array(z61.enum(["doc","issue","pull_request","readme"])).min(1).max(4).optional(),repos:z61.array(z61.string().min(1).max(512)).min(1).max(20).optional(),sources:z61.array(z61.string().min(1).max(512)).min(1).max(20).optional(),passages:z61.number().int().min(1).max(5).optional(),skills:z61.literal("only").optional(),language:z61.string().min(1).optional(),topic:z61.string().min(1).optional(),license:z61.string().min(1).optional(),minStars:z61.number().int().min(0).optional(),maxStars:z61.number().int().min(0).optional(),archived:z61.boolean().optional(),fork:z61.boolean().optional()}).refine(value=>value.minStars===void 0||value.maxStars===void 0||value.minStars<=value.maxStars,{message:"minStars must not exceed maxStars."}),FirecrawlResearchSearchToolInputSchema=z61.object({query:z61.string().min(1).max(500),maxResults:z61.number().int().min(1).max(500).optional(),authors:z61.array(z61.string().min(1)).min(1).optional(),categories:z61.array(z61.string().min(1)).min(1).optional(),from:z61.iso.date().optional(),to:z61.iso.date().optional()}),FirecrawlResearchPaperToolInputSchema=z61.object({paperId:z61.string().min(1).max(512),query:z61.string().min(1).max(500).optional(),maxPassages:z61.number().int().min(1).max(50).optional()}).refine(value=>value.query!==void 0||value.maxPassages===void 0,{message:"maxPassages requires query."}),FirecrawlResearchRelatedToolInputSchema=z61.object({paperId:z61.string().min(1).max(512),intent:z61.string().min(1).max(500),mode:z61.enum(["similar","citers","references"]).optional(),maxResults:z61.number().int().min(1).max(500).optional(),rerank:z61.boolean().optional(),anchors:z61.array(z61.string().min(1).max(512)).min(1).optional()}),FirecrawlMapToolInputSchema=z61.object({url:z61.string().url(),search:z61.string().min(1).optional(),limit:z61.number().int().positive().max(200).optional(),includeSubdomains:z61.boolean().optional(),timeoutMs:z61.number().int().positive().max(12e4).optional()}),FirecrawlCrawlToolInputSchema=z61.object({url:z61.string().url(),limit:z61.number().int().positive().max(20).optional(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z61.boolean().optional(),timeoutMs:z61.number().int().positive().max(12e4).optional()}),FirecrawlMonitorScheduleInputSchema=z61.object({text:z61.string().min(1).max(200).optional(),cron:z61.string().min(1).max(120).optional(),timezone:z61.string().min(1).max(80).optional()}).refine(value=>!!(value.text||value.cron),"Firecrawl monitor schedule needs text or cron."),FirecrawlMonitorScrapeOptionsInputSchema=z61.object({formats:FirecrawlScrapeFormatsSchema.optional(),onlyMainContent:z61.boolean().optional(),timeoutMs:z61.number().int().positive().max(12e4).optional(),waitForMs:z61.number().int().min(0).max(3e4).optional(),maxAgeMs:z61.number().int().min(0).optional(),minAgeMs:z61.number().int().min(0).optional(),storeInCache:z61.boolean().optional(),proxy:z61.enum(["basic","enhanced","auto"]).optional(),mobile:z61.boolean().optional(),location:z61.object({country:z61.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z61.array(z61.string().min(1).max(35)).min(1).max(10).optional()}).optional()}).optional(),FirecrawlMonitorTargetInputSchema=z61.union([z61.object({type:z61.enum(["scrape","crawl"]).default("scrape"),urls:z61.array(z61.string().url()).min(1).max(50),scrapeOptions:FirecrawlMonitorScrapeOptionsInputSchema}),z61.object({type:z61.literal("search"),queries:z61.array(z61.string().min(1).max(256)).min(1).max(12),searchWindow:z61.enum(["5m","15m","1h","6h","24h","7d"]).optional(),maxResults:z61.number().int().min(1).max(50).optional(),includeDomains:z61.array(z61.string().min(1).max(253)).min(1).max(50).optional(),excludeDomains:z61.array(z61.string().min(1).max(253)).min(1).max(50).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."})]),FirecrawlMonitorCreateToolInputSchema=z61.object({name:z61.string().min(1).max(256),schedule:FirecrawlMonitorScheduleInputSchema,targets:z61.array(FirecrawlMonitorTargetInputSchema).min(1).max(50),goal:z61.string().min(1).max(2e3).optional(),judgeEnabled:z61.boolean().optional(),retentionDays:z61.number().int().min(1).max(365).optional(),notification:z61.object({email:z61.object({enabled:z61.boolean().default(!0),recipients:z61.array(z61.string().email()).min(1).max(20),includeDiffs:z61.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=z61.object({monitorId:z61.string().uuid(),name:z61.string().min(1).max(256).optional(),schedule:FirecrawlMonitorScheduleInputSchema.optional(),targets:z61.array(FirecrawlMonitorTargetInputSchema).min(1).max(50).optional(),goal:z61.string().min(1).max(2e3).optional(),judgeEnabled:z61.boolean().optional(),retentionDays:z61.number().int().min(1).max(365).optional(),status:z61.enum(["active","paused"]).optional()}).refine(value=>Object.keys(value).some(key=>key!=="monitorId"),"Monitor update needs a changed field."),FirecrawlMonitorIdToolInputSchema=z61.object({monitorId:z61.string().uuid()}),FirecrawlMonitorCheckToolInputSchema=FirecrawlMonitorIdToolInputSchema.extend({checkId:z61.string().uuid()}),RunProjectIntegrationToolRequestSchema=z61.object({tool:z61.string().min(1),input:z61.record(z61.string(),z61.unknown()),connectionAlias:z61.string().min(1).optional()}),ProjectIntegrationToolRunUsageSchema=z61.object({provider:z61.string().min(1),providerCredits:z61.number().nonnegative().optional(),providerCostUsd:z61.number().nonnegative().optional(),requests:z61.number().int().nonnegative().optional()}),ProjectIntegrationToolRunBillingSchema=z61.object({credits:z61.number().int().nonnegative()}),FirecrawlScrapeToolOutputSchema=z61.object({url:z61.string(),provider:z61.literal("firecrawl"),title:z61.string().optional(),statusCode:z61.number().optional(),markdown:z61.string().optional(),summary:z61.string().optional(),links:z61.array(z61.string()).optional(),images:z61.array(z61.string()).optional(),html:z61.string().optional(),json:z61.unknown().optional(),branding:z61.record(z61.string(),z61.unknown()).optional(),warning:z61.string().optional()}),FirecrawlSearchToolOutputSchema=z61.object({query:z61.string(),provider:z61.literal("firecrawl"),warning:z61.string().optional(),results:z61.array(z61.object({title:z61.string(),url:z61.string(),snippet:z61.string().optional(),content:z61.string().optional(),score:z61.number().optional(),publishedAt:z61.string().optional()}))}),FirecrawlResearchPaperSchema=z61.object({paperId:z61.string(),primaryId:z61.string().optional(),ids:z61.record(z61.string(),z61.array(z61.string())).optional(),title:z61.string().optional(),abstract:z61.string().optional(),score:z61.number().optional()}).passthrough(),FirecrawlResearchPassageSchema=z61.object({text:z61.string(),score:z61.number().optional()}).passthrough(),FirecrawlDeveloperSearchToolOutputSchema=z61.object({provider:z61.literal("firecrawl"),results:z61.array(z61.object({id:z61.string(),type:z61.string().min(1).optional(),url:z61.string(),title:z61.string().optional(),passages:z61.array(z61.object({text:z61.string()}).passthrough())}).passthrough()),coverage:z61.record(z61.string(),z61.string()).optional(),reranked:z61.boolean().optional(),repos:z61.array(z61.record(z61.string(),z61.unknown())).optional(),sources:z61.array(z61.record(z61.string(),z61.unknown())).optional()}),FirecrawlResearchSearchToolOutputSchema=z61.object({provider:z61.literal("firecrawl"),results:z61.array(FirecrawlResearchPaperSchema)}),FirecrawlResearchPaperToolOutputSchema=z61.object({provider:z61.literal("firecrawl"),paper:z61.record(z61.string(),z61.unknown()),paperId:z61.string().optional(),query:z61.string().optional(),passages:z61.array(FirecrawlResearchPassageSchema).optional()}),FirecrawlResearchRelatedToolOutputSchema=z61.object({provider:z61.literal("firecrawl"),results:z61.array(FirecrawlResearchPaperSchema),poolSize:z61.number().int().nonnegative(),truncated:z61.boolean(),note:z61.string().nullable().optional()}),FirecrawlMapToolOutputSchema=z61.object({url:z61.string(),provider:z61.literal("firecrawl"),count:z61.number(),links:z61.array(z61.object({url:z61.string(),title:z61.string().optional(),description:z61.string().optional()}))}),FirecrawlCrawlToolOutputSchema=z61.object({url:z61.string(),provider:z61.literal("firecrawl"),total:z61.number(),pages:z61.array(z61.object({url:z61.string(),title:z61.string().optional(),statusCode:z61.number().optional(),markdown:z61.string().optional(),summary:z61.string().optional(),links:z61.array(z61.string()).optional(),images:z61.array(z61.string()).optional(),html:z61.string().optional(),warning:z61.string().optional()})),warning:z61.string().optional()}),FirecrawlMonitorScheduleOutputSchema=z61.object({cron:z61.string().optional(),text:z61.string().optional(),timezone:z61.string().optional()}).passthrough(),FirecrawlMonitorTargetOutputSchema=z61.object({id:z61.string().optional(),type:z61.enum(["scrape","crawl","search"]).optional(),urls:z61.array(z61.string()).optional(),queries:z61.array(z61.string()).optional(),searchWindow:z61.string().optional(),maxResults:z61.number().optional(),includeDomains:z61.array(z61.string()).optional(),excludeDomains:z61.array(z61.string()).optional(),scrapeOptions:z61.record(z61.string(),z61.unknown()).optional()}).passthrough(),FirecrawlMonitorOutputSchema=z61.object({id:z61.string(),name:z61.string(),status:z61.string().optional(),schedule:FirecrawlMonitorScheduleOutputSchema.optional(),nextRunAt:z61.string().nullable().optional(),lastRunAt:z61.string().nullable().optional(),currentCheckId:z61.string().nullable().optional(),targets:z61.array(FirecrawlMonitorTargetOutputSchema).optional(),goal:z61.string().nullable().optional(),judgeEnabled:z61.boolean().optional(),estimatedCreditsPerMonth:z61.number().optional(),createdAt:z61.string().optional(),updatedAt:z61.string().optional()}).passthrough(),FirecrawlMonitorCheckOutputSchema=z61.object({id:z61.string(),monitorId:z61.string(),scheduledFor:z61.string().nullable().optional(),startedAt:z61.string().nullable().optional(),finishedAt:z61.string().nullable().optional(),estimatedCredits:z61.number().nullable().optional(),reservedCredits:z61.number().nullable().optional(),actualCredits:z61.number().nullable().optional(),billingStatus:z61.string().nullable().optional(),summary:z61.object({totalPages:z61.number().optional(),same:z61.number().optional(),changed:z61.number().optional(),new:z61.number().optional(),removed:z61.number().optional(),error:z61.number().optional()}).passthrough().optional(),error:z61.string().nullable().optional(),createdAt:z61.string().optional(),updatedAt:z61.string().optional()}).passthrough(),FirecrawlMonitorListToolOutputSchema=z61.object({provider:z61.literal("firecrawl"),monitors:z61.array(FirecrawlMonitorOutputSchema)}),FirecrawlMonitorDetailToolOutputSchema=z61.object({provider:z61.literal("firecrawl"),monitor:FirecrawlMonitorOutputSchema}),FirecrawlMonitorDeleteToolOutputSchema=z61.object({provider:z61.literal("firecrawl"),monitorId:z61.string(),deleted:z61.boolean()}),FirecrawlMonitorChecksToolOutputSchema=z61.object({provider:z61.literal("firecrawl"),monitorId:z61.string(),checks:z61.array(FirecrawlMonitorCheckOutputSchema)}),FirecrawlMonitorCheckDetailToolOutputSchema=z61.object({provider:z61.literal("firecrawl"),monitorId:z61.string(),check:FirecrawlMonitorCheckOutputSchema,next:z61.string().optional()}),FirecrawlToolKeySchema=z61.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=z61.union([FirecrawlSearchToolOutputSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlScrapeToolOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema]),ProjectIntegrationToolRunBaseSchema=z61.object({projectId:z61.uuid(),integrationKey:z61.string().min(1),tool:z61.string().min(1),connectionAlias:z61.string().min(1).nullable().optional(),output:z61.record(z61.string(),z61.unknown()),executedAt:z61.coerce.date()}),ProjectIntegrationToolRunDTOSchema=z61.discriminatedUnion("authMode",[ProjectIntegrationToolRunBaseSchema.extend({authMode:z61.literal("fimo"),billing:ProjectIntegrationToolRunBillingSchema,usage:z61.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z61.literal("personal"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z61.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z61.literal("oauth"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z61.undefined().optional()})]),ProjectIntegrationToolRunDTO=createDTO(ProjectIntegrationToolRunDTOSchema),IntegrationsListResponseSchema=createResponseSchema2(z61.array(ProjectIntegrationStatusDTOSchema)),IntegrationInfoResponseSchema=createResponseSchema2(IntegrationInfoDTOSchema),ProjectIntegrationStatusResponseSchema=createResponseSchema2(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationResponseSchema=createResponseSchema2(ProjectIntegrationInstallationDTOSchema),ProjectIntegrationToolRunResponseSchema=createResponseSchema2(ProjectIntegrationToolRunDTOSchema),StartProjectIntegrationConnectResponseResponseSchema=createResponseSchema2(StartProjectIntegrationConnectResponseSchema),OrganizationIntegrationConnectionResponseSchema=createResponseSchema2(OrganizationIntegrationConnectionDTOSchema),ProjectIntegrationConnectionsResponseSchema=createResponseSchema2(z61.array(ProjectIntegrationConnectionDTOSchema)),ProjectIntegrationConnectResponseResponseSchema=createResponseSchema2(ProjectIntegrationConnectResponseSchema),AddProjectMcpIntegrationResponseResponseSchema=createResponseSchema2(AddProjectMcpIntegrationResponseSchema),ReusableMcpServersResponseSchema=createResponseSchema2(z61.array(ReusableMcpServerDTOSchema)),ProjectChannelBindingResponseSchema=createResponseSchema2(ProjectChannelBindingDTOSchema),ProjectChannelBindingsResponseSchema=createResponseSchema2(z61.array(ProjectChannelBindingDTOSchema)),ProjectChannelCandidatesResponseSchema=createResponseSchema2(z61.array(ProjectChannelCandidateDTOSchema))}});import{z as z62}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=z62.enum(SCHEDULE_NOTIFICATION_TOPICS),USER_MANAGED_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance","agent_runtime_allowance"],UserManagedNotificationTopicSchema=z62.enum(USER_MANAGED_NOTIFICATION_TOPICS),MAX_SCHEDULE_SUBSCRIBERS=5,ScheduleSubscriberDeliveryStateSchema=z62.enum(["deliverable","suppressed"]),ScheduleSubscriberCandidateSchema=z62.object({userId:z62.string().min(1),name:z62.string(),email:z62.string().min(1),subscribed:z62.boolean(),deliveryState:ScheduleSubscriberDeliveryStateSchema}),ScheduleNotificationSettingsSchema=z62.object({maxSubscribers:z62.number().int().positive(),subscriberCount:z62.number().int().nonnegative(),effectiveRecipientCount:z62.number().int().nonnegative(),currentUserSubscribed:z62.boolean(),candidates:z62.array(ScheduleSubscriberCandidateSchema).optional()}),ScheduleNotificationSettingsResponseSchema=createResponseSchema2(ScheduleNotificationSettingsSchema),UpdateScheduleSubscribersRequestSchema=z62.object({userIds:z62.array(z62.string().min(1)).max(MAX_SCHEDULE_SUBSCRIBERS).refine(userIds=>new Set(userIds).size===userIds.length,"Follower ids must be unique.")}),UserNotificationPreferenceSchema=z62.object({topic:UserManagedNotificationTopicSchema,enabled:z62.boolean(),source:z62.enum(["default","explicit"])}),SCHEDULE_OPT_OUT_LINK_ACTIONS=["unfollow_schedule","disable_topic"],ScheduleOptOutLinkActionSchema=z62.enum(SCHEDULE_OPT_OUT_LINK_ACTIONS),SCHEDULE_OPT_OUT_ACTIONS=["unfollow_schedule","unfollow_all_schedules","disable_topic"],ScheduleOptOutActionSchema=z62.enum(SCHEDULE_OPT_OUT_ACTIONS),ScheduleOptOutStateSchema=z62.object({action:ScheduleOptOutActionSchema,topic:ScheduleNotificationTopicSchema,scheduleName:z62.string().nullable(),maskedEmail:z62.string().min(1),applied:z62.boolean(),expiresAt:z62.coerce.date()}),ScheduleOptOutResponseSchema=createResponseSchema2(ScheduleOptOutStateSchema),FollowedScheduleSchema=z62.object({scheduleId:z62.string().min(1),scheduleName:z62.string(),projectId:z62.string().min(1),projectName:z62.string(),env:z62.string().min(1)}),FollowedSchedulesSchema=z62.object({schedules:z62.array(FollowedScheduleSchema)}),FollowedSchedulesResponseSchema=createResponseSchema2(FollowedSchedulesSchema)}});import{z as z63}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=z63.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=z63.enum(["ok","failed"]),ProjectScheduleDTOSchema=BaseEntitySchema.extend({projectId:z63.uuid(),env:z63.string().min(1),name:z63.string().min(1),cron:z63.string().min(1),command:z63.string().min(1),secretKeys:z63.array(z63.string().min(1)),enabled:z63.boolean(),lastRunAt:z63.coerce.date().nullable(),lastStatus:ProjectScheduleStatusSchema.nullable(),lastError:z63.string().nullable(),suspendedAt:z63.coerce.date().nullable().optional(),suspensionReason:z63.string().nullable().optional(),overPolicyReasons:z63.array(z63.string()).optional()}),ProjectScheduleDTO=createDTO(ProjectScheduleDTOSchema),CreateProjectScheduleRequestSchema=z63.object({name:z63.string().min(1).max(120),cron:z63.string().min(1).max(120),command:z63.string().min(1).max(500),secretKeys:z63.array(ProjectSecretKeySchema).default([]),enabled:z63.boolean().optional()}),UpdateProjectScheduleRequestSchema=z63.object({name:z63.string().min(1).max(120).optional(),cron:z63.string().min(1).max(120).optional(),command:z63.string().min(1).max(500).optional(),secretKeys:z63.array(ProjectSecretKeySchema).optional()}).refine(request=>Object.keys(request).length>0,"Pass at least one schedule field to update."),ProjectScheduleRunStatusSchema=z63.enum(["queued","running","succeeded","failed","skipped"]),ProjectScheduleRunTriggerSchema=z63.enum(["cron","ui","cli"]),ProjectScheduleRunSecretSnapshotStateSchema=z63.enum(["pending","resolved","failed"]),ProjectScheduleRunSecretResolutionSchema=z63.enum(["resolved","missing","deleted","recreated","rotated"]),ProjectSchedulePolicySchema=z63.object({maxRuns:z63.number().int().positive(),retentionDays:z63.number().int().positive().nullable(),outputRetentionDays:z63.number().int().positive(),maxOutputBytes:z63.number().int().positive()}),SchedulePolicyStateSchema=z63.enum(["ok","near_limit","exhausted","over_policy"]),ProjectSchedulePlanSnapshotSchema=z63.object({code:z63.enum(["Free","PAYG","Premium","Pro"]),source:z63.enum(["cached_subscription","free_fallback"]),activeSchedules:z63.object({used:z63.number().int().nonnegative(),limit:z63.number().int().nonnegative()}),minCadenceMinutes:z63.number().int().positive(),maxRunMs:z63.number().int().positive(),concurrency:z63.object({used:z63.number().int().nonnegative(),limit:z63.number().int().positive()}),compute:z63.object({settledMs:z63.number().int().nonnegative(),activeMs:z63.number().int().nonnegative(),reservedMs:z63.number().int().nonnegative().optional(),includedMs:z63.number().int().nonnegative(),remainingMs:z63.number().int().nonnegative(),resetsAt:z63.coerce.date()}),upgrade:z63.object({code:z63.literal("Pro"),activeSchedulesLimit:z63.number().int().positive(),minCadenceMinutes:z63.number().int().positive(),maxRunMs:z63.number().int().positive(),maxConcurrentRuns:z63.number().int().positive(),computeIncludedMs:z63.number().int().positive()}).optional(),state:SchedulePolicyStateSchema,overPolicyReasons:z63.array(z63.string())}),ProjectScheduleUsageSchema=z63.object({runCount:z63.number().int().nonnegative(),runsWithOutput:z63.number().int().nonnegative()}),ProjectScheduleRunDTOSchema=z63.object({id:z63.uuid(),scheduleId:z63.uuid(),projectId:z63.uuid(),env:z63.string().min(1),scheduleName:z63.string().min(1),command:z63.string().min(1),status:ProjectScheduleRunStatusSchema,trigger:ProjectScheduleRunTriggerSchema,triggeredBy:z63.object({id:z63.string().min(1),name:z63.string().min(1)}).nullable(),queuedAt:z63.coerce.date(),startedAt:z63.coerce.date().nullable(),finishedAt:z63.coerce.date().nullable(),exitCode:z63.number().int().nullable(),errorCode:z63.string().nullable(),error:z63.string().nullable(),outputBytes:z63.number().int().nonnegative(),outputTruncated:z63.boolean(),outputExpiresAt:z63.coerce.date().nullable(),metadataExpiresAt:z63.coerce.date().nullable()}),ProjectScheduleRunDTO=createDTO(ProjectScheduleRunDTOSchema),ProjectScheduleRunSecretSnapshotSchema=z63.object({state:ProjectScheduleRunSecretSnapshotStateSchema,capturedAt:z63.coerce.date().nullable(),items:z63.array(z63.object({key:z63.string().min(1),updatedAt:z63.coerce.date().nullable(),resolution:ProjectScheduleRunSecretResolutionSchema}))}),ProjectScheduleRunDetailDTOSchema=ProjectScheduleRunDTOSchema.extend({output:z63.string().nullable(),secretSnapshot:ProjectScheduleRunSecretSnapshotSchema}),ProjectScheduleRunDetailDTO=createDTO(ProjectScheduleRunDetailDTOSchema),RunProjectScheduleRequestSchema=z63.object({trigger:z63.enum(["ui","cli"])}),ProjectScheduleRunsQuerySchema=z63.object({limit:z63.coerce.number().int().min(1).max(100).default(25),cursor:z63.string().trim().min(1).optional(),status:ProjectScheduleRunStatusSchema.optional()}),ProjectScheduleResponseSchema=createResponseSchema2(ProjectScheduleDTOSchema),ProjectSchedulesListDataSchema=z63.object({items:z63.array(ProjectScheduleDTOSchema),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectSchedulesListResponseSchema=createResponseSchema2(z63.array(ProjectScheduleDTOSchema)),ProjectSchedulesOverviewResponseSchema=createResponseSchema2(ProjectSchedulesListDataSchema),ProjectScheduleDetailDataSchema=z63.object({schedule:ProjectScheduleDTOSchema,usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema,notifications:ScheduleNotificationSettingsSchema.optional()}),ProjectScheduleDetailResponseSchema=createResponseSchema2(ProjectScheduleDetailDataSchema),ProjectScheduleRunsPageSchema=z63.object({items:z63.array(ProjectScheduleRunDTOSchema),nextCursor:z63.string().nullable(),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectScheduleRunsResponseSchema=createResponseSchema2(ProjectScheduleRunsPageSchema),ProjectScheduleRunResponseSchema=createResponseSchema2(ProjectScheduleRunDTOSchema),ProjectScheduleRunDetailResponseSchema=createResponseSchema2(ProjectScheduleRunDetailDTOSchema)}});import{z as z64}from"zod";var WORK_NOTIFICATION_TOPICS,WorkNotificationTopicSchema,PUBLICATION_NOTIFICATION_TOPICS,NOTIFICATION_TOPICS,NotificationTopicSchema,NOTIFICATION_DELIVERY_CADENCES,NotificationDeliveryCadenceSchema,NOTIFICATION_CHANNELS,NotificationChannelSchema,NOTIFICATION_ACTOR_KINDS,NotificationActorKindSchema,NotificationActorSchema,NotificationSummarySchema,ReportBriefPayloadSchema,NotificationRunOutcomeSchema,NotificationRetainedReasonSchema,NotificationWorkSessionSchema,NotificationPayloadSchema,NotificationEnvelopeSchema,NotificationDeliveryStateSchema,NotificationDeliverySchema,NotificationPreferenceSchema,MAX_QUESTION_DIGEST_PAUSE_DAYS,QuestionDigestPreferenceSchema,init_notification_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/notification.dto.js"(){"use strict";init_agent_report();WORK_NOTIFICATION_TOPICS=["agent_question","agent_run_outcome","agent_retained_review","agent_conflict"],WorkNotificationTopicSchema=z64.enum(WORK_NOTIFICATION_TOPICS),PUBLICATION_NOTIFICATION_TOPICS=["publication_failed"],NOTIFICATION_TOPICS=[...WORK_NOTIFICATION_TOPICS,...PUBLICATION_NOTIFICATION_TOPICS],NotificationTopicSchema=z64.enum(NOTIFICATION_TOPICS),NOTIFICATION_DELIVERY_CADENCES=["immediate","daily","off"],NotificationDeliveryCadenceSchema=z64.enum(NOTIFICATION_DELIVERY_CADENCES),NOTIFICATION_CHANNELS=["email"],NotificationChannelSchema=z64.enum(NOTIFICATION_CHANNELS),NOTIFICATION_ACTOR_KINDS=["user","agent","system"],NotificationActorKindSchema=z64.enum(NOTIFICATION_ACTOR_KINDS),NotificationActorSchema=z64.discriminatedUnion("kind",[z64.object({kind:z64.literal("user"),userId:z64.string().min(1)}).strict(),z64.object({kind:z64.literal("agent"),agentKey:z64.string().min(1).max(120),agentId:z64.uuid().optional()}).strict(),z64.object({kind:z64.literal("system")}).strict()]),NotificationSummarySchema=z64.string().trim().min(1).max(1200),ReportBriefPayloadSchema={title:z64.string().trim().min(1).max(120).optional(),brief:StoredReportBriefSchema.optional()},NotificationRunOutcomeSchema=z64.enum(["completed","failed","cancelled"]),NotificationRetainedReasonSchema=z64.enum(["review","agent_requested","recovery"]),NotificationWorkSessionSchema=z64.object({sessionId:z64.uuid(),branch:z64.string().min(1),targetBranch:z64.string().min(1),revision:z64.string().min(1),fingerprint:z64.string().min(1)}),NotificationPayloadSchema=z64.discriminatedUnion("topic",[z64.object({topic:z64.literal("agent_question"),questionId:z64.uuid(),title:z64.string().trim().min(1).max(80),description:z64.string().trim().min(1).max(240)}).strict(),z64.object({topic:z64.literal("agent_run_outcome"),threadId:z64.uuid(),invocationId:z64.uuid(),outcome:NotificationRunOutcomeSchema,summary:NotificationSummarySchema,...ReportBriefPayloadSchema}).strict(),z64.object({topic:z64.literal("agent_retained_review"),threadId:z64.uuid().optional(),invocationId:z64.uuid().optional(),proposalId:z64.uuid().optional(),workSession:NotificationWorkSessionSchema.optional(),reason:NotificationRetainedReasonSchema,summary:NotificationSummarySchema,...ReportBriefPayloadSchema}).strict(),z64.object({topic:z64.literal("agent_conflict"),mergeId:z64.uuid(),threadId:z64.uuid().optional(),invocationId:z64.uuid().optional(),summary:NotificationSummarySchema.optional(),...ReportBriefPayloadSchema}).strict(),z64.object({topic:z64.literal("publication_failed"),publicationId:z64.uuid(),sourceBranch:z64.string().trim().min(1).max(120),failureCode:z64.string().trim().min(1).max(64),failedAt:z64.iso.datetime(),firstPublication:z64.boolean()}).strict()]),NotificationEnvelopeSchema=z64.object({id:z64.uuid(),projectId:z64.uuid(),sourceKey:z64.string().min(1).max(255),actor:NotificationActorSchema,payloadVersion:z64.literal(1),payload:NotificationPayloadSchema,createdAt:z64.coerce.date()}),NotificationDeliveryStateSchema=z64.enum(["pending","deferred","sent","suppressed","failed"]),NotificationDeliverySchema=z64.object({id:z64.uuid(),notificationRecipientId:z64.uuid(),projectId:z64.uuid(),channel:NotificationChannelSchema,state:NotificationDeliveryStateSchema,attemptCount:z64.number().int().nonnegative(),nextAttemptAt:z64.coerce.date().nullable(),lastAttemptAt:z64.coerce.date().nullable(),sentAt:z64.coerce.date().nullable(),failureCode:z64.string().max(80).nullable(),createdAt:z64.coerce.date(),updatedAt:z64.coerce.date()}),NotificationPreferenceSchema=z64.object({topic:WorkNotificationTopicSchema,channel:z64.literal("email"),enabled:z64.boolean(),cadence:NotificationDeliveryCadenceSchema.exclude(["off"]),effectiveCadence:NotificationDeliveryCadenceSchema,source:z64.enum(["default","explicit"])}),MAX_QUESTION_DIGEST_PAUSE_DAYS=90,QuestionDigestPreferenceSchema=z64.object({enabled:z64.boolean(),pausedUntil:z64.coerce.date().nullable(),source:z64.enum(["default","explicit"]).optional()})}});import{z as z65}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","publishing","schedule","usage","question_digest","marketing"],NotificationPreferenceGroupSchema=z65.enum(NOTIFICATION_PREFERENCE_GROUPS),FIMO_TOGGLE_PREFERENCE_ENTRY_IDS=["work_review.agent_question","work_review.agent_conflict","publishing.publication_failed","schedule.schedule_health","schedule.schedule_compute_allowance","usage.agent_runtime_allowance"],FimoTogglePreferenceEntryIdSchema=z65.enum(FIMO_TOGGLE_PREFERENCE_ENTRY_IDS),FIMO_DELIVERY_PREFERENCE_ENTRY_IDS=["work_review.agent_retained_review","work_review.agent_run_outcome"],FimoDeliveryPreferenceEntryIdSchema=z65.enum(FIMO_DELIVERY_PREFERENCE_ENTRY_IDS),QUESTION_DIGEST_PREFERENCE_ENTRY_ID="question_digest",MARKETING_PREFERENCE_ENTRY_PREFIX="marketing.",PreferenceSourceSchema=z65.enum(["default","explicit"]),EmailNotificationProviderSyncSchema=z65.enum(["synced","pending","unavailable"]),EmailNotificationPreferenceSchema=z65.object({enabled:z65.boolean(),source:PreferenceSourceSchema,providerSync:EmailNotificationProviderSyncSchema}).strict(),PROVIDER_SUBSCRIPTION_PLACEMENTS=["reports","product_news"],ProviderSubscriptionPlacementSchema=z65.enum(PROVIDER_SUBSCRIPTION_PLACEMENTS),PROVIDER_SUBSCRIPTION_SEMANTIC_IDS=["weekly_analytics"],ProviderSubscriptionSemanticIdSchema=z65.enum(PROVIDER_SUBSCRIPTION_SEMANTIC_IDS),NotificationPreferenceEntrySchema=z65.discriminatedUnion("kind",[z65.object({kind:z65.literal("toggle"),id:FimoTogglePreferenceEntryIdSchema,group:z65.enum(["work_review","publishing","schedule","usage"]),enabled:z65.boolean(),source:PreferenceSourceSchema}).strict(),z65.object({kind:z65.literal("delivery"),id:FimoDeliveryPreferenceEntryIdSchema,group:z65.literal("work_review"),cadence:NotificationDeliveryCadenceSchema,source:PreferenceSourceSchema}).strict(),z65.object({kind:z65.literal("pause_toggle"),id:z65.literal(QUESTION_DIGEST_PREFERENCE_ENTRY_ID),group:z65.literal("question_digest"),enabled:z65.boolean(),source:PreferenceSourceSchema,pausedUntil:z65.coerce.date().nullable()}).strict(),z65.object({kind:z65.literal("provider_subscription"),id:z65.string().startsWith(MARKETING_PREFERENCE_ENTRY_PREFIX),group:z65.literal("marketing"),name:z65.string(),description:z65.string().nullable(),placement:ProviderSubscriptionPlacementSchema,semanticId:ProviderSubscriptionSemanticIdSchema.nullable(),enabled:z65.boolean(),source:PreferenceSourceSchema}).strict()]),NotificationPreferenceCatalogSchema=z65.object({email:EmailNotificationPreferenceSchema,entries:z65.array(NotificationPreferenceEntrySchema),unavailableGroups:z65.array(NotificationPreferenceGroupSchema)}),NotificationPreferenceCatalogResponseSchema=createResponseSchema2(NotificationPreferenceCatalogSchema),NotificationPreferenceEntryResponseSchema=createResponseSchema2(NotificationPreferenceEntrySchema),UpdateEmailNotificationPreferenceRequestSchema=z65.object({enabled:z65.boolean()}).strict(),EmailNotificationPreferenceResponseSchema=createResponseSchema2(EmailNotificationPreferenceSchema),UpdateNotificationPreferenceEntryRequestSchema=z65.discriminatedUnion("kind",[z65.object({kind:z65.literal("toggle"),enabled:z65.boolean()}).strict(),z65.object({kind:z65.literal("delivery"),cadence:NotificationDeliveryCadenceSchema}).strict(),z65.object({kind:z65.literal("pause_toggle"),enabled:z65.boolean(),pauseDays:z65.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."),z65.object({kind:z65.literal("provider_subscription"),enabled:z65.boolean()}).strict()])}});import{z as z66}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=z66.object({surface:SurfaceNameSchema,key:z66.string(),label:z66.string()}),InlineSchema=z66.object({text:z66.string(),ref:DiffRefSchema.optional()}),SummaryBlockSchema=z66.discriminatedUnion("type",[z66.object({type:z66.literal("paragraph"),content:z66.array(InlineSchema).max(24)}),z66.object({type:z66.literal("preview"),ref:DiffRefSchema,caption:z66.string().optional()}),z66.object({type:z66.literal("code"),code:z66.string(),lang:z66.string().optional(),caption:z66.string().optional()}),z66.object({type:z66.literal("risk"),level:z66.enum(["warning","error"]),content:z66.array(InlineSchema).max(24)}),z66.object({type:z66.literal("list"),items:z66.array(z66.array(InlineSchema).max(24)).max(8)})]),EnvDiffSummarySchema=z66.object({headline:z66.string(),blocks:z66.array(SummaryBlockSchema).max(15)}),EnvDiffSummaryResultSchema=z66.object({summary:EnvDiffSummarySchema,fingerprint:z66.string(),generatedAt:z66.coerce.date(),cached:z66.boolean().optional(),credits:z66.number().int().nonnegative().optional()}),EnvDiffSummaryResultDTO=createDTO(EnvDiffSummaryResultSchema),EnvDiffSummaryResponseSchema=createResponseSchema2(EnvDiffSummaryResultSchema)}});import{z as z67}from"zod";var PROJECT_ANALYTICS_PRESETS,PROJECT_ANALYTICS_GROUP_BY_OPTIONS,ProjectDailyVisitorsDTOSchema,ProjectAnalyticsBreakdownItemDTOSchema,ProjectAnalyticsPageBreakdownItemDTOSchema,ProjectAnalyticsRangeDTOSchema,ProjectAnalyticsAnnotationDTOSchema,PROJECT_ANALYTICS_DEVICE_FILTERS,ProjectPageviewAnalyticsDTOSchema,PROJECT_ANALYTICS_TRACKING_STATES,ProjectAnalyticsTrackingStatusDTOSchema,ProjectPageviewAnalyticsDTO,ProjectAnalyticsTrackingStatusDTO,ProjectAnalyticsAnnotationDTO,init_project_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-analytics.dto.js"(){"use strict";init_create_dto();PROJECT_ANALYTICS_PRESETS=["today","yesterday","this_week","this_month","last_7_days","last_30_days","last_90_days","last_week","last_month","last_quarter","last_year","custom"],PROJECT_ANALYTICS_GROUP_BY_OPTIONS=["day","week","month","quarter"],ProjectDailyVisitorsDTOSchema=z67.object({date:z67.string(),visitors:z67.number().int().nonnegative()}),ProjectAnalyticsBreakdownItemDTOSchema=z67.object({key:z67.string(),visitors:z67.number().int().nonnegative(),pageviews:z67.number().int().nonnegative()}),ProjectAnalyticsPageBreakdownItemDTOSchema=z67.object({path:z67.string(),pageName:z67.string().nullable().optional(),visitors:z67.number().int().nonnegative(),pageviews:z67.number().int().nonnegative()}),ProjectAnalyticsRangeDTOSchema=z67.object({preset:z67.enum(PROJECT_ANALYTICS_PRESETS),requestedFrom:z67.string(),requestedTo:z67.string(),effectiveFrom:z67.string(),effectiveTo:z67.string(),isRetentionLimited:z67.boolean(),groupBy:z67.enum(PROJECT_ANALYTICS_GROUP_BY_OPTIONS)}),ProjectAnalyticsAnnotationDTOSchema=z67.object({date:z67.string(),content:z67.string(),updatedAt:z67.string(),updatedByUserId:z67.string()}),PROJECT_ANALYTICS_DEVICE_FILTERS=["bot","desktop","mobile","tablet"],ProjectPageviewAnalyticsDTOSchema=z67.object({range:ProjectAnalyticsRangeDTOSchema,deviceFilter:z67.enum(PROJECT_ANALYTICS_DEVICE_FILTERS).nullable(),visitors:z67.number().int().nonnegative(),pageviews:z67.number().int().nonnegative(),botPageviews:z67.number().int().nonnegative(),botVisitors:z67.number().int().nonnegative(),bounceRate:z67.number().min(0).max(100),viewsPerVisit:z67.number().nonnegative(),averageVisitDurationSeconds:z67.number().nonnegative(),visitorsSeries:z67.array(ProjectDailyVisitorsDTOSchema),topPages:z67.array(ProjectAnalyticsPageBreakdownItemDTOSchema),topBrowsers:z67.array(ProjectAnalyticsBreakdownItemDTOSchema),topDevices:z67.array(ProjectAnalyticsBreakdownItemDTOSchema),topBots:z67.array(ProjectAnalyticsBreakdownItemDTOSchema),topAiAssistants:z67.array(ProjectAnalyticsBreakdownItemDTOSchema),topCountries:z67.array(ProjectAnalyticsBreakdownItemDTOSchema),topSources:z67.array(ProjectAnalyticsBreakdownItemDTOSchema),annotations:z67.array(ProjectAnalyticsAnnotationDTOSchema)}),PROJECT_ANALYTICS_TRACKING_STATES=["observed","waiting","unavailable"],ProjectAnalyticsTrackingStatusDTOSchema=z67.object({state:z67.enum(PROJECT_ANALYTICS_TRACKING_STATES),lastEventAt:z67.string().nullable()}),ProjectPageviewAnalyticsDTO=createDTO(ProjectPageviewAnalyticsDTOSchema),ProjectAnalyticsTrackingStatusDTO=createDTO(ProjectAnalyticsTrackingStatusDTOSchema),ProjectAnalyticsAnnotationDTO=createDTO(ProjectAnalyticsAnnotationDTOSchema)}});import{z as z68}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=z68.object({id:z68.string(),email:z68.email(),roleKey:ProjectRoleKeySchema,status:ProjectInviteStatusSchema,expiresAt:z68.coerce.date(),createdAt:z68.coerce.date(),inviterUserId:z68.string()}),ProjectInviteDTO=createDTO(ProjectInviteDTOSchema),CreatedProjectInviteDTOSchema=z68.object({id:z68.string(),token:z68.string()}),CreatedProjectInviteDTO=createDTO(CreatedProjectInviteDTOSchema),AcceptedProjectInviteDTOSchema=z68.object({success:z68.boolean(),projectId:z68.string().optional()}),AcceptedProjectInviteDTO=createDTO(AcceptedProjectInviteDTOSchema)}});import{z as z69}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=z69.object({id:z69.string(),name:z69.string(),image:z69.string().nullable()}),PublicUserDTO=createDTO(PublicUserDTOSchema),ReferralCountCTOSchema=z69.object({count:z69.int()}),ReferralCountCTO=createDTO(ReferralCountCTOSchema),ReferralSummaryCTOSchema=z69.object({counts:z69.object({signed_up:z69.int(),activated:z69.int()}),credits:z69.object({total:z69.int(),earned:z69.int()})}),ReferralSummaryCTO=createDTO(ReferralSummaryCTOSchema),AuthenticatedUserDTOSchema=PublicUserDTOSchema.extend({email:z69.email(),emailVerified:z69.boolean(),createdAt:z69.coerce.date(),updatedAt:z69.coerce.date()}),AuthenticatedUserDTO=createDTO(AuthenticatedUserDTOSchema),AuthenticatedUserResponseSchema=createResponseSchema2(AuthenticatedUserDTOSchema),ReferralCountResponseSchema=createResponseSchema2(ReferralCountCTOSchema),ReferralSummaryResponseSchema=createResponseSchema2(ReferralSummaryCTOSchema)}});import{z as z70}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=z70.object({id:z70.string(),principalType:ProjectPrincipalTypeSchema,principalId:z70.string().nullable(),roleKey:ProjectRoleKeySchema,createdAt:z70.coerce.date(),expiresAt:z70.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=z70.enum(PROJECT_PERMISSION_KEYS),ProjectPermissionsDTOSchema=z70.object({role:ProjectRoleKeyWithSystemSchema.nullable(),permissions:z70.record(z70.string(),z70.boolean())}),ProjectPermissionsDTO=createDTO(ProjectPermissionsDTOSchema),ProjectAccessDTOSchema=z70.object({access:z70.array(ProjectAccessItemDTOSchema),invites:z70.array(ProjectInviteDTOSchema),organization:z70.object({name:z70.string().nullable(),logo:z70.string().nullable()}).nullable()}),ProjectAccessDTO=createDTO(ProjectAccessDTOSchema),AccessMutationResponseSchema=createResponseSchema2(z70.object({success:z70.boolean()})),InviteAcceptResponseSchema=createResponseSchema2(z70.object({success:z70.boolean(),projectId:z70.uuid()}))}});import{z as z71}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=z71.object({publicationStatus:PublicationStatusSchema,appUrl:z71.string().nullable(),lastPublishedAt:z71.string().nullable()}),PublicationStateDTO=createDTO(PublicationStateDTOSchema)}});import{z as z72}from"zod";var BranchHostedPreviewStatusSchema,BranchHostedPreviewSchema,init_hosted_preview_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/hosted-preview.dto.js"(){"use strict";init_env();BranchHostedPreviewStatusSchema=z72.enum(["queued","building","ready","failed"]),BranchHostedPreviewSchema=z72.object({branch:BranchSchema,revision:z72.string().min(1).max(64).nullable(),generation:z72.string().min(1).max(64),status:BranchHostedPreviewStatusSchema,url:z72.url().nullable()})}});import{z as z73}from"zod";var PreviewUpgradeRequiredSchema,PreviewBridgePackageSchema,PreviewBridgeCapabilitySchema,SandboxSessionDTOSchema,SandboxSessionDTO,SandboxSessionResponseSchema,PreviewInstallApprovalTargetSchema,PreviewInstallRepairSchema,SandboxSessionInstallPolicyErrorSchema,SandboxPullPhaseSchema,SandboxPullFailureCodeSchema,SandboxPullFailureSchema,PreviewInstallPolicyApprovalRequestSchema,PreviewInstallPolicyApprovalEventSchema,init_sandbox_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/sandbox.dto.js"(){"use strict";init_create_dto();init_response();PreviewUpgradeRequiredSchema=z73.object({code:z73.literal("PREVIEW_UPGRADE_REQUIRED"),message:z73.string(),currentVersion:z73.number().int().positive(),targetVersion:z73.literal(4)}),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().nullable(),source:z73.enum(["sandbox","hosted"]).optional(),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}),SandboxPullPhaseSchema=z73.enum(["acquire","pull","sync-env","install","restart","readiness"]),SandboxPullFailureCodeSchema=z73.enum(["sync_failed","readiness_failed","install_policy_blocked"]),SandboxPullFailureSchema=z73.object({message:z73.string(),code:SandboxPullFailureCodeSchema.optional().catch(void 0),phase:SandboxPullPhaseSchema.optional().catch(void 0),exitCode:z73.number().int().optional().catch(void 0),logTail:z73.array(z73.string()).optional().catch(void 0),logTailTruncated:z73.boolean().optional().catch(void 0),repair:PreviewInstallRepairSchema.optional().catch(void 0)}),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,AutomaticSpendStopDTOSchema,HostingOverageStatusDTOSchema,HostingOverageStatusDTO,UpdateHostingOverageRequestSchema,SubscriptionDTOSchema,SubscriptionDTO,DailyCreditsStatusSchema,CreditBalanceDTOSchema,CreditBalanceDTO,MinimalCreditBalanceDTOSchema,MinimalCreditBalanceDTO,ProjectCreditBucketsDTOSchema,ProjectDailyCreditAllowanceDTOSchema,ProjectCreditBalanceDTOSchema,ProjectCreditBalanceDTO,AgentRuntimeUsageStateSchema,AgentRuntimeOverageRefusalSchema,AgentRuntimeOverageDTOSchema,AgentRuntimeUsageDTOSchema,AgentRuntimeUsageDTO,AutoRefillConfigDTOSchema,AutoRefillConfigDTO,UpdateAutoRefillDTOSchema,OptionalSpendRefusalSchema,CreditPurchasePricingDTOSchema,CreditPurchasePricingDTO,PurchaseCreditsDTOSchema,SuccessfulPurchaseDTOSchema,SuccessfulPurchaseDTO,PortalDTOSchema,PortalDTO,PaymentRecoveryInvoiceDTOSchema,PaymentRecoveryDTOSchema,PaymentRecoveryDTO,CreditBalanceResponseSchema,MinimalCreditBalanceResponseSchema,ProjectCreditBalanceResponseSchema,AutoRefillConfigResponseSchema,CreditPurchasePricingResponseSchema,SuccessfulPurchaseResponseSchema,SubscriptionResponseSchema,EntitlementsResponseSchema,PortalResponseSchema,PaymentRecoveryResponseSchema,init_billing_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/billing.dto.js"(){"use strict";init_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()}),AutomaticSpendStopDTOSchema=z75.object({fromPlanCode:TemplateCodeSchema,toPlanCode:TemplateCodeSchema,cutoffAt:z75.string(),spendStopped:z75.boolean(),settlementEndsAt:z75.string()}),HostingOverageStatusDTOSchema=z75.object({state:z75.enum(["ready","unavailable"]),planCode:z75.string(),overageAvailable:z75.boolean(),overageEnabled:z75.boolean(),monthlyCapUsd:z75.number().int().positive().nullable(),agentRuntimeEnabled:z75.boolean(),agentRuntimeAvailable:z75.boolean(),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(),agentRuntimeAmountMicros:z75.number().nonnegative().nullable(),totalExtraUsageAmountMicros: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(),agentRuntimeEnabled:z75.boolean().optional()}).refine(value=>!value.enabled||value.monthlyCapUsd!==void 0,{message:"Enabling extra usage requires a monthly budget"}),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(),automaticSpendStop:AutomaticSpendStopDTOSchema.nullable(),entitlements:EntitlementsDTOSchema,currency:z75.string(),nextPaymentAt:z75.string().nullable(),baseAmount:z75.number().nullable()}),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"]),AgentRuntimeOverageRefusalSchema=z75.enum(["plan_unknown","plan_cannot_fund","pending_plan_exit","consent_missing"]),AgentRuntimeOverageDTOSchema=z75.object({available:z75.boolean(),enabled:z75.boolean(),status:z75.enum(["included","paid","paused"]),pauseReason:AgentRuntimeOverageRefusalSchema.nullable(),rateUsdPerHour:z75.number().nonnegative().nullable(),monthlyCapUsd:z75.number().positive().nullable(),consentedAt:z75.coerce.date().nullable(),billableMs:z75.number().int().nonnegative(),paidRemainingMs:z75.number().int().nonnegative(),projectedAmountUsd:z75.number().nonnegative().nullable()}),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(),extraMs:z75.number().int().nonnegative(),resetsAt:z75.coerce.date()}),overage:AgentRuntimeOverageDTOSchema}),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),expectedRateToken:z75.string().trim().min(1).max(40)}).strict(),z75.object({enabled:z75.literal(!1),thresholdUsd:z75.number().min(.01).multipleOf(.01),expectedRateToken:z75.string().trim().min(1).max(40).optional()}).strict()]),OptionalSpendRefusalSchema=z75.enum(["no_subscription","plan_cannot_fund","pending_plan_exit"]),CreditPurchasePricingDTOSchema=z75.object({planCode:z75.union([TemplateCodeSchema,z75.literal("Unknown")]).nullable(),canPurchase:z75.boolean(),refusalReason:OptionalSpendRefusalSchema.nullable(),creditsPerDollar:z75.number().int().positive(),minAmountUsd:z75.number().positive(),maxAmountUsd:z75.number().positive(),rateToken:z75.string().nullable()}),CreditPurchasePricingDTO=createDTO(CreditPurchasePricingDTOSchema),PurchaseCreditsDTOSchema=z75.object({amountUsd:z75.number(),idempotencyKey:z75.string().trim().min(8).max(120),expectedRateToken:z75.string().trim().min(1).max(40)}).strict(),SuccessfulPurchaseDTOSchema=z75.object({invoiceId:z75.string(),newBalance:z75.int(),creditCount:z75.int(),amountUsd:z75.number(),creditsPerDollar:z75.int()}),SuccessfulPurchaseDTO=createDTO(SuccessfulPurchaseDTOSchema),PortalDTOSchema=z75.object({url:z75.string()}),PortalDTO=createDTO(PortalDTOSchema),PaymentRecoveryInvoiceDTOSchema=z75.object({id:z75.string(),number:z75.string().nullable(),status:z75.string(),amountDue:z75.int(),currency:z75.string(),issuedAt:z75.string().nullable(),hostedInvoiceUrl:z75.string().nullable()}),PaymentRecoveryDTOSchema=z75.discriminatedUnion("status",[z75.object({status:z75.literal("eligible"),checkedAt:z75.string()}),z75.object({status:z75.literal("recovery_required"),checkedAt:z75.string(),invoice:PaymentRecoveryInvoiceDTOSchema,outstandingCount:z75.int().min(1)}),z75.object({status:z75.literal("unavailable"),checkedAt:z75.string(),reason:z75.enum(["provider_error","truncated","unattempted","foreign_invoice","unknown_status"])})]),PaymentRecoveryDTO=createDTO(PaymentRecoveryDTOSchema),CreditBalanceResponseSchema=createResponseSchema2(CreditBalanceDTOSchema),MinimalCreditBalanceResponseSchema=createResponseSchema2(MinimalCreditBalanceDTOSchema),ProjectCreditBalanceResponseSchema=createResponseSchema2(ProjectCreditBalanceDTOSchema),AutoRefillConfigResponseSchema=createResponseSchema2(AutoRefillConfigDTOSchema),CreditPurchasePricingResponseSchema=createResponseSchema2(CreditPurchasePricingDTOSchema),SuccessfulPurchaseResponseSchema=createResponseSchema2(SuccessfulPurchaseDTOSchema),SubscriptionResponseSchema=createResponseSchema2(SubscriptionDTOSchema),EntitlementsResponseSchema=createResponseSchema2(EntitlementsDTOSchema),PortalResponseSchema=createResponseSchema2(PortalDTOSchema),PaymentRecoveryResponseSchema=createResponseSchema2(PaymentRecoveryDTOSchema)}});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((path52,ctx)=>{let segments=path52.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(update=>update.name!==void 0||update.label!==void 0||update.fields!==void 0,{message:"Pass at least one of name, label, or fields."})}});import{z as z87}from"zod";var ChatMessageListDTOSchema,ChatMessagesPageDTOSchema,ChatLiveTurnDTOSchema,ChatLiveTurnStateDTOSchema,ChatLiveTurnStateDTO,ChatThreadMessageDTOSchema,ChatQueuedMessageDTOSchema,ChatAttentionDTOSchema,ChatThreadMessagesPageDTOSchema,ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema,ChatNonStreamingOutcomeDTOSchema,ProjectChatDTOSchema,ProjectChatListDTOSchema,ProjectChatCreatedDTOSchema,ProjectChatTitleSchema,ProjectChatStateSchema,ChatMessageListResponseSchema,ChatMessagesPageResponseSchema,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(),continuesInvocationId:z87.string().nullable().optional()}),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(),source:z87.string().nullable().optional(),invocationId:z87.string().nullable().optional(),invocationStatus:z87.string().nullable().optional(),invocationTerminalReason:z87.string().nullable().optional()}),ChatQueuedMessageDTOSchema=z87.object({id:z87.string(),parts:z87.array(z87.unknown()),metadata:z87.record(z87.string(),z87.unknown()).nullable(),providerMessageId:z87.string().nullable().optional(),source:z87.string().nullable().optional(),failed:z87.boolean(),queuedAt:z87.date().transform(value=>value.toISOString())}),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(),queue:z87.array(ChatQueuedMessageDTOSchema).optional(),queuePaused:z87.boolean().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().optional()}),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]),ProjectChatDTOSchema=z87.object({id:z87.string().uuid(),title:z87.string().nullable(),createdAt:z87.string(),lastMessageAt:z87.string().nullable(),preview:z87.string().nullable(),running:z87.boolean(),unread:z87.boolean(),pinned:z87.boolean(),archived:z87.boolean(),muted:z87.boolean()}),ProjectChatListDTOSchema=z87.object({chats:z87.array(ProjectChatDTOSchema)}),ProjectChatCreatedDTOSchema=z87.object({id:z87.string().uuid()}),ProjectChatTitleSchema=z87.string().trim().min(1).max(120),ProjectChatStateSchema=z87.object({read:z87.boolean(),pinned:z87.boolean(),archived:z87.boolean(),muted:z87.boolean()}).partial().refine(state=>Object.keys(state).length>0,"Set at least one of read, pinned, archived or muted"),ChatMessageListResponseSchema=createResponseSchema2(ChatMessageListDTOSchema),ChatMessagesPageResponseSchema=createResponseSchema2(ChatMessagesPageDTOSchema)}});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.enum(["apex_to_www","www_to_apex"]),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","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,OpsAgentBranchRecoveredOwnerSchema,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"}),OpsAgentBranchRecoveredOwnerSchema=z104.object({branch:BranchSchema,sessionId:z104.uuid()}),OpsAgentBranchDiscardPlanInputSchema=z104.object({branches:OpsAgentBranchAllowlistSchema,reason:z104.string().trim().min(1).max(1e3),recoveredOwners:z104.array(OpsAgentBranchRecoveredOwnerSchema).max(OPS_AGENT_BRANCH_DISCARD_LIMIT).optional()}).refine(input=>(input.recoveredOwners??[]).every(owner=>input.branches.includes(owner.branch)),{error:"every recovered owner must name a Branch from the allowlist",path:["recoveredOwners"]}).refine(input=>{let owners=input.recoveredOwners??[];return new Set(owners.map(owner=>owner.branch)).size===owners.length},{error:"recovered owners must not repeat a Branch",path:["recoveredOwners"]}).refine(input=>{let owners=input.recoveredOwners??[];return new Set(owners.map(owner=>owner.sessionId)).size===owners.length},{error:"recovered owners must not repeat a session",path:["recoveredOwners"]}),OpsAgentBranchDiscardApplyInputSchema=OpsAgentBranchDiscardPlanInputSchema.safeExtend({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","recovery_direct_owner_present","recovery_session_not_found","recovery_session_not_project_agent_run","recovery_session_not_terminal","recovery_session_already_bound"],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({runId:z105.string(),agentName:z105.string(),reason:z105.string()}),source:z105.object({branch:z105.string(),revision:z105.string(),anchorBranch:z105.string()})}),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 WorkSessionVisibilitySchema,SessionSetRetentionSchema,init_work_sessions=__esm({"../../packages/api-contracts/dist/esm/work-sessions.js"(){"use strict";WorkSessionVisibilitySchema=z111.enum(["internal","user-visible"]),SessionSetRetentionSchema=z111.object({additionalDays:z111.number().int().min(1).max(30)}).strict()}});import{z as z112}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_realtime_room();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_hosted_preview_dto();init_sandbox_dto();init_organization_dto();init_billing_dto();init_payment_method_dto();init_user_dto();init_content_dto();init_unique_conflict_dto();init_schema_transition_rejected_dto();init_cms_display_defaults_dto();init_project_migration_dto();init_analytics_dto();init_asset_dto();init_translation_dto();init_document_dto();init_form_dto();init_chat_dto();init_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();init_work_sessions()}});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 commitSubjectOrNull(cwd,sha){try{return await runGit(["log","-1","--format=%s",sha,"--"],cwd)}catch{return null}}async function currentTagOrNull(cwd){try{return await runGit(["describe","--tags","--exact-match","HEAD"],cwd)||null}catch{return null}}function isReleaseTag(tag){return tag?/^release\/.+/.test(tag):!1}function classifyPushError(error){let stderr=extractStderr(error),lower=stderr.toLowerCase();return lower.includes("invalid or expired token")||lower.includes("expired token")||lower.includes("invalid token")||lower.includes("could not obtain git credentials")||lower.includes("not signed in")?{kind:"auth",stderr}:lower.includes("remote rejected")||lower.includes("protected")||lower.includes("no-push")||lower.includes("push declined")||lower.includes("not allowed to push")||lower.includes("permission to push")||lower.includes("forbidden")||lower.includes("403")?{kind:"protected",stderr}:lower.includes("non-fast-forward")||lower.includes("rejected")||lower.includes("fetch first")||lower.includes("updates were rejected")?{kind:"non-fast-forward",stderr}:lower.includes("authentication")||lower.includes("permission denied")?{kind:"auth",stderr}:lower.includes("could not resolve host")||lower.includes("timed out")||lower.includes("connection")?{kind:"network",stderr}:{kind:"unknown",stderr}}function gitErrorSummary(error){let lines=extractStderr(error).split(`
200
199
  `).map(line=>line.trim()).filter(line=>line.length>0);return(lines.find(line=>line.startsWith("fatal:")||line.startsWith("error:"))??lines[0]??"git failed").replace(/\/\/[^/\s@]*@/g,"//")}function extractStderr(error){if(error&&typeof error=="object"&&"stderr"in error){let value=error.stderr;if(typeof value=="string")return value;if(Buffer.isBuffer(value))return value.toString("utf8")}return error instanceof Error?error.message:String(error)}var 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(commitSubjectOrNull,"commitSubjectOrNull");__name(currentTagOrNull,"currentTagOrNull");__name(isReleaseTag,"isReleaseTag");__name(classifyPushError,"classifyPushError");__name(gitErrorSummary,"gitErrorSummary");__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 if(opts.defaultBranch!==void 0)branch=opts.defaultBranch,source="default";else{let fromGit=await resolveBranchFromGit(cwd);if(fromGit)branch=fromGit.branch,source=fromGit.source,readOnly=fromGit.readOnly===!0;else{let fromEnvironment=resolveBranchFromEnvironment();if(!fromEnvironment)throw new GitBranchUndetectedError;branch=fromEnvironment,source="environment"}}if(opts.fimo&&branch!=="prod")try{let{data:branches}=await opts.fimo.execute("branches.list",{projectId:settings.projectId,includeAgentBranches:!0}),names=branches.map(candidate=>candidate.branch);if(!names.includes(branch)&&source==="flag")throw new BranchNotFoundError(branch,names)}catch(err){if(err instanceof BranchNotFoundError)throw err}return{projectId:settings.projectId,organizationId:settings.organizationId,name:settings.name,apiUrl:settings.apiUrl,branch,source,readOnly:readOnly||void 0}}function branchSourceBanner(ctx){let sourceHint=ctx.source==="flag"?"--branch":ctx.source==="branch"?"git branch":ctx.source==="tag"?"git tag":ctx.source==="default"?"command default":"FIMO_ENV",ro=ctx.readOnly?" \xB7 read-only":"";return`\u2192 Branch: ${ctx.branch} (from ${sourceHint}${ro})`}function branchOverrideFromCommand(cmd){let cur=cmd??void 0;for(;cur;){let branch=cur.opts().branch;if(typeof branch=="string"&&branch.length>0)return branch;cur=cur.parent??null}}async function bootstrapProjectCommand(options={},cmd,bootstrapOpts={}){let branchOverride2=branchOverrideFromCommand(cmd),cfg=loadConfig(),baseFimo=createCliFimoClient(cfg),ctx=await getProjectContext({cwd:options.cwd,branchOverride:branchOverride2,defaultBranch:bootstrapOpts.defaultBranch,fimo:baseFimo});if(!bootstrapOpts.quiet){let{currentMode:currentMode2}=await Promise.resolve().then(()=>(init_dist(),dist_exports));currentMode2().format==="pretty"&&process.stderr.write(`${branchSourceBanner(ctx)}
201
200
  `)}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 require_src=__commonJS({"../../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports2,module2){"use strict";var cursor={to(x,y2){return y2?`\x1B[${y2+1};${x+1}H`:`\x1B[${x+1}G`},move(x,y2){let ret="";return x<0?ret+=`\x1B[${-x}D`:x>0&&(ret+=`\x1B[${x}C`),y2<0?ret+=`\x1B[${-y2}A`:y2>0&&(ret+=`\x1B[${y2}B`),ret},up:__name((count=1)=>`\x1B[${count}A`,"up"),down:__name((count=1)=>`\x1B[${count}B`,"down"),forward:__name((count=1)=>`\x1B[${count}C`,"forward"),backward:__name((count=1)=>`\x1B[${count}D`,"backward"),nextLine:__name((count=1)=>"\x1B[E".repeat(count),"nextLine"),prevLine:__name((count=1)=>"\x1B[F".repeat(count),"prevLine"),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},scroll={up:__name((count=1)=>"\x1B[S".repeat(count),"up"),down:__name((count=1)=>"\x1B[T".repeat(count),"down")},erase={screen:"\x1B[2J",up:__name((count=1)=>"\x1B[1J".repeat(count),"up"),down:__name((count=1)=>"\x1B[J".repeat(count),"down"),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(count){let clear="";for(let i=0;i<count;i++)clear+=this.line+(i<count-1?cursor.up():"");return count&&(clear+=cursor.left),clear}};module2.exports={cursor,scroll,erase,beep:"\x07"}}});function recoverTenantApiBaseUrl(tenantApiUrl,projectId,branch){try{let normalized=tenantApiUrl.replace(/\/$/,""),url=new URL(normalized),prefix=`${projectId}-${envResourceKey(branch)}.`;if(!url.hostname.startsWith(prefix))return;url.hostname=url.hostname.slice(prefix.length);let base=url.toString().replace(/\/$/,"");return buildTenantApiUrl(projectId,branch,base)===normalized?base:void 0}catch{return}}function createIdentityService(cfg=loadConfig()){let transport=createCliHttpTransport(cfg);return{getCurrentSession(){return transport.request("/api/auth/get-session")}}}function createGitService(cfg=loadConfig(),headerBranch){let transport=createCliHttpTransport(cfg,headerBranch);return{async getRemote(projectId,branch){let body=await transport.request(`/api/management/projects/${projectId}/branches/${encodeURIComponent(branch)}/git-remote`,{},{preserveForbidden:!0});if(!body.data.tenantApiBaseUrl){let recovered=recoverTenantApiBaseUrl(body.data.tenantApiUrl,projectId,branch);if(recovered)return{...body.data,tenantApiBaseUrl:recovered}}return body.data},async getCredential(projectId,branch){return(await transport.request(`/api/management/projects/${projectId}/branches/${encodeURIComponent(branch)}/git-credential`,{},{preserveForbidden:!0})).data}}}function createPublicationControlService(cfg=loadConfig(),branch){let transport=createCliHttpTransport(cfg,branch);return{async publish(projectId,request={}){return(await transport.request(`/api/management/projects/${projectId}/publish`,{method:"POST",body:JSON.stringify(request)}))?.data?.publicationId??null},async unpublish(projectId){await transport.request(`/api/management/projects/${projectId}/unpublish`,{method:"POST"})}}}function publicationIdFromError(error){let body=error instanceof ApiRequestError?error.body:void 0;if(typeof body!="object"||body===null)return null;let candidate=body.publicationId;return typeof candidate=="string"?candidate:null}function transferBlockersFromError(error){let body=error instanceof ApiRequestError?error.body:void 0;if(typeof body!="object"||body===null)return[];let blockers=body.blockers;return Array.isArray(blockers)?blockers:[]}function createSandboxService(cfg=loadConfig(),headerBranch){let transport=createCliHttpTransport(cfg,headerBranch);return{async getHostedPreview(projectId,branch){return(await transport.request(`/api/management/projects/${projectId}/branches/${encodeBranchPathSegment2(branch)}/hosted-preview`)).data},async pull(projectId,onProgress,branch,options={}){let params=new URLSearchParams;options.noRestart&&params.set("noRestart","true"),options.wait!==void 0&&params.set("wait",String(options.wait));let search=params.toString(),response=await transport.response(`/api/management/projects/${projectId}/branches/${encodeURIComponent(branch)}/sandbox/pull${search?`?${search}`:""}`,{method:"POST",headers:{Accept:"text/event-stream"}});if(!response.body)throw new Error("Sandbox pull failed: empty response stream");let reader=response.body.getReader(),decoder=new TextDecoder,buffer="",failure=null,readiness=null,timings=null,completed=!1;try{for(;;){let{value,done}=await reader.read();if(done)break;buffer+=decoder.decode(value,{stream:!0});let separatorIndex=buffer.indexOf(`
202
201
 
@@ -476,13 +475,13 @@ ${result.driftLines.map(l=>` ${l}`).join(`
476
475
  `).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(`
477
476
  `);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(`
478
477
  `).slice(o);this.output.write(a.join(`
479
- `)),this._prevFrame=t2;return}}this.output.write(import_sisteransi.erase.down())}this.output.write(t2),this.state==="initial"&&(this.state="active"),this._prevFrame=t2}}};var Q=class extends p{static{__name(this,"Q")}get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t2){super(t2,!1),this.value=!!t2.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",e=>{this.output.write(import_sisteransi.cursor.move(0,-1)),this.value=e,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};var it=class extends p{static{__name(this,"it")}options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter(t2=>t2.disabled!==!0)}toggleAll(){let t2=this._enabledOptions,e=this.value!==void 0&&this.value.length===t2.length;this.value=e?[]:t2.map(s=>s.value)}toggleInvert(){let t2=this.value;if(!t2)return;let e=this._enabledOptions.filter(s=>!t2.includes(s.value));this.value=e.map(s=>s.value)}toggleValue(){this.value===void 0&&(this.value=[]);let t2=this.value.includes(this._value);this.value=t2?this.value.filter(e=>e!==this._value):[...this.value,this._value]}constructor(t2){super(t2,!1),this.options=t2.options,this.value=[...t2.initialValues??[]];let e=Math.max(this.options.findIndex(({value:s})=>s===t2.cursorAt),0);this.cursor=this.options[e].disabled?d(e,1,this.options):e,this.on("key",s=>{s==="a"&&this.toggleAll(),s==="i"&&this.toggleInvert()}),this.on("cursor",s=>{switch(s){case"left":case"up":this.cursor=d(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=d(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}},rt=class extends p{static{__name(this,"rt")}_mask="\u2022";get cursor(){return this._cursor}get masked(){return this.userInput.replaceAll(/./g,this._mask)}get userInputWithCursor(){if(this.state==="submit"||this.state==="cancel")return this.masked;let t2=this.userInput;if(this.cursor>=t2.length)return`${this.masked}${y(["inverse","hidden"],"_")}`;let e=this.masked,s=e.slice(0,this.cursor),i=e.slice(this.cursor);return`${s}${y("inverse",i[0])}${i.slice(1)}`}clear(){this._clearUserInput()}constructor({mask:t2,...e}){super(e),this._mask=t2??"\u2022",this.on("userInput",s=>{this._setValue(s)})}},nt=class extends p{static{__name(this,"nt")}options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(t2){super(t2,!1),this.options=t2.options;let e=this.options.findIndex(({value:i})=>i===t2.initialValue),s=e===-1?0:e;this.cursor=this.options[s].disabled?d(s,1,this.options):s,this.changeValue(),this.on("cursor",i=>{switch(i){case"left":case"up":this.cursor=d(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=d(this.cursor,1,this.options);break}this.changeValue()})}};var at=class extends p{static{__name(this,"at")}get userInputWithCursor(){if(this.state==="submit")return this.userInput;let t2=this.userInput;if(this.cursor>=t2.length)return`${this.userInput}\u2588`;let e=t2.slice(0,this.cursor),[s,...i]=t2.slice(this.cursor);return`${e}${y("inverse",s)}${i.join("")}`}get cursor(){return this._cursor}constructor(t2){super({...t2,initialUserInput:t2.initialUserInput??t2.initialValue}),this.on("userInput",e=>{this._setValue(e)}),this.on("finalize",()=>{this.value||(this.value=t2.defaultValue),this.value===void 0&&(this.value="")})}};import{styleText as t,stripVTControlCharacters as ne}from"node:util";import P2 from"node:process";var import_sisteransi2=__toESM(require_src(),1);function Ze(){return P2.platform!=="win32"?P2.env.TERM!=="linux":!!P2.env.CI||!!P2.env.WT_SESSION||!!P2.env.TERMINUS_SUBLIME||P2.env.ConEmuTask==="{cmd::Cmder}"||P2.env.TERM_PROGRAM==="Terminus-Sublime"||P2.env.TERM_PROGRAM==="vscode"||P2.env.TERM==="xterm-256color"||P2.env.TERM==="alacritty"||P2.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}__name(Ze,"Ze");var ee=Ze();var w2=__name((e,i)=>ee?e:i,"w"),_e=w2("\u25C6","*"),oe=w2("\u25A0","x"),ue=w2("\u25B2","x"),F=w2("\u25C7","o"),le=w2("\u250C","T"),d2=w2("\u2502","|"),E2=w2("\u2514","\u2014"),Ie=w2("\u2510","T"),Ee=w2("\u2518","\u2014"),z115=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(`
478
+ `)),this._prevFrame=t2;return}}this.output.write(import_sisteransi.erase.down())}this.output.write(t2),this.state==="initial"&&(this.state="active"),this._prevFrame=t2}}};var Q=class extends p{static{__name(this,"Q")}get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t2){super(t2,!1),this.value=!!t2.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",e=>{this.output.write(import_sisteransi.cursor.move(0,-1)),this.value=e,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};var it=class extends p{static{__name(this,"it")}options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter(t2=>t2.disabled!==!0)}toggleAll(){let t2=this._enabledOptions,e=this.value!==void 0&&this.value.length===t2.length;this.value=e?[]:t2.map(s=>s.value)}toggleInvert(){let t2=this.value;if(!t2)return;let e=this._enabledOptions.filter(s=>!t2.includes(s.value));this.value=e.map(s=>s.value)}toggleValue(){this.value===void 0&&(this.value=[]);let t2=this.value.includes(this._value);this.value=t2?this.value.filter(e=>e!==this._value):[...this.value,this._value]}constructor(t2){super(t2,!1),this.options=t2.options,this.value=[...t2.initialValues??[]];let e=Math.max(this.options.findIndex(({value:s})=>s===t2.cursorAt),0);this.cursor=this.options[e].disabled?d(e,1,this.options):e,this.on("key",s=>{s==="a"&&this.toggleAll(),s==="i"&&this.toggleInvert()}),this.on("cursor",s=>{switch(s){case"left":case"up":this.cursor=d(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=d(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}},rt=class extends p{static{__name(this,"rt")}_mask="\u2022";get cursor(){return this._cursor}get masked(){return this.userInput.replaceAll(/./g,this._mask)}get userInputWithCursor(){if(this.state==="submit"||this.state==="cancel")return this.masked;let t2=this.userInput;if(this.cursor>=t2.length)return`${this.masked}${y(["inverse","hidden"],"_")}`;let e=this.masked,s=e.slice(0,this.cursor),i=e.slice(this.cursor);return`${s}${y("inverse",i[0])}${i.slice(1)}`}clear(){this._clearUserInput()}constructor({mask:t2,...e}){super(e),this._mask=t2??"\u2022",this.on("userInput",s=>{this._setValue(s)})}},nt=class extends p{static{__name(this,"nt")}options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(t2){super(t2,!1),this.options=t2.options;let e=this.options.findIndex(({value:i})=>i===t2.initialValue),s=e===-1?0:e;this.cursor=this.options[s].disabled?d(s,1,this.options):s,this.changeValue(),this.on("cursor",i=>{switch(i){case"left":case"up":this.cursor=d(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=d(this.cursor,1,this.options);break}this.changeValue()})}};var at=class extends p{static{__name(this,"at")}get userInputWithCursor(){if(this.state==="submit")return this.userInput;let t2=this.userInput;if(this.cursor>=t2.length)return`${this.userInput}\u2588`;let e=t2.slice(0,this.cursor),[s,...i]=t2.slice(this.cursor);return`${e}${y("inverse",s)}${i.join("")}`}get cursor(){return this._cursor}constructor(t2){super({...t2,initialUserInput:t2.initialUserInput??t2.initialValue}),this.on("userInput",e=>{this._setValue(e)}),this.on("finalize",()=>{this.value||(this.value=t2.defaultValue),this.value===void 0&&(this.value="")})}};import{styleText as t,stripVTControlCharacters as ne}from"node:util";import P2 from"node:process";var import_sisteransi2=__toESM(require_src(),1);function Ze(){return P2.platform!=="win32"?P2.env.TERM!=="linux":!!P2.env.CI||!!P2.env.WT_SESSION||!!P2.env.TERMINUS_SUBLIME||P2.env.ConEmuTask==="{cmd::Cmder}"||P2.env.TERM_PROGRAM==="Terminus-Sublime"||P2.env.TERM_PROGRAM==="vscode"||P2.env.TERM==="xterm-256color"||P2.env.TERM==="alacritty"||P2.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}__name(Ze,"Ze");var ee=Ze();var w2=__name((e,i)=>ee?e:i,"w"),_e=w2("\u25C6","*"),oe=w2("\u25A0","x"),ue=w2("\u25B2","x"),F=w2("\u25C7","o"),le=w2("\u250C","T"),d2=w2("\u2502","|"),E2=w2("\u2514","\u2014"),Ie=w2("\u2510","T"),Ee=w2("\u2518","\u2014"),z114=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(`
480
479
  `);h.push(x),f+=x.length}if(f>$2){let b=0,x=0,G2=f,M2=e-v,R2=__name((j2,D)=>et2(h,G2,j2,D,$2),"R");m?({lineCount:G2,removals:b}=R2(0,M2),G2>$2&&({lineCount:G2,removals:x}=R2(M2+1,h.length))):({lineCount:G2,removals:x}=R2(M2+1,h.length),G2>$2&&({lineCount:G2,removals:b}=R2(0,M2))),b>0&&(m=!0,h.splice(0,b)),x>0&&(g=!0,h.splice(h.length-x,x))}let C2=[];m&&C2.push(l);for(let b of h)for(let x of b)C2.push(x);return g&&C2.push(l),C2},"Y");var ot2=__name(e=>{let i=e.active??"Yes",s=e.inactive??"No";return new Q({active:i,inactive:s,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let r=e.withGuide??u.withGuide,u2=`${V2(this.state)} `,n=r?`${t("gray",d2)} `:"",o=R(e.output,e.message,n,u2),c2=`${r?`${t("gray",d2)}
481
480
  `:""}${o}
482
481
  `,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?`
483
- ${t("gray",d2)}`:""}`}default:{let l=r?`${t("cyan",d2)} `:"",$2=r?t("cyan",E2):"";return`${c2}${l}${this.value?`${t("green",z115)} ${i}`:`${t("dim",H2)} ${t("dim",i)}`}${e.vertical?r?`
482
+ ${t("gray",d2)}`:""}`}default:{let l=r?`${t("cyan",d2)} `:"",$2=r?t("cyan",E2):"";return`${c2}${l}${this.value?`${t("green",z114)} ${i}`:`${t("dim",H2)} ${t("dim",i)}`}${e.vertical?r?`
484
483
  ${t("cyan",d2)} `:`
485
- `:` ${t("dim","/")} `}${this.value?`${t("dim",H2)} ${t("dim",s)}`:`${t("green",z115)} ${s}`}
484
+ `:` ${t("dim","/")} `}${this.value?`${t("dim",H2)} ${t("dim",s)}`:`${t("green",z114)} ${s}`}
486
485
  ${$2}
487
486
  `}}}}).prompt()},"ot");var O2={message:__name((e=[],{symbol:i=t("gray",d2),secondarySymbol:s=t("gray",d2),output:r=process.stdout,spacing:u2=1,withGuide:n}={})=>{let o=[],c2=n??u.withGuide,a=c2?s:"",l=c2?`${i} `:"",$2=c2?`${s} `:"";for(let p2=0;p2<u2;p2++)o.push(a);let y2=Array.isArray(e)?e:e.split(`
488
487
  `);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(`
@@ -508,7 +507,7 @@ ${o}
508
507
  `}}}}).prompt(),"bt");var Ve={light:w2("\u2500","-"),heavy:w2("\u2501","="),block:w2("\u2588","#")};var re=__name((e,i)=>e.includes(`
509
508
  `)?e.split(`
510
509
  `).map(s=>i(s)).join(`
511
- `):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",z115)} ${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)}
510
+ `):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",z114)} ${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)}
512
511
  `:""}${n}
513
512
  `;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?`
514
513
  ${t("gray",d2)}`:""}`}default:{let c2=s?`${t("cyan",d2)} `:"",a=s?t("cyan",E2):"",l=o.split(`
@@ -523,8 +522,8 @@ ${a}${o}
523
522
  `}case"submit":{let o=n?` ${t("dim",n)}`:"",c2=i?t("gray",d2):"";return`${s}${c2}${o}`}case"cancel":{let o=n?` ${t(["strikethrough","dim"],n)}`:"",c2=i?t("gray",d2):"";return`${s}${c2}${o}${n.trim()?`
524
523
  ${c2}`:""}`}default:{let o=i?`${t("cyan",d2)} `:"",c2=i?t("cyan",E2):"";return`${s}${o}${u2}
525
524
  ${c2}
526
- `}}}}).prompt(),"Ot");init_dist();init_config();import{z as z116}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 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(`
527
- `).filter(line=>line.trim().length>0).map(line=>AssetReferenceImpactEventDTOSchema.parse(JSON.parse(line)))},async createForm(projectId,data){return(await transport.request(tenantPath2(projectId,"/forms"),{method:"POST",body:JSON.stringify(data)})).data},async updateForm(projectId,id,data){return(await transport.request(tenantPath2(projectId,`/forms/${id}`),{method:"PUT",body:JSON.stringify(data)})).data}}}__name(createContentTransferService,"createContentTransferService");init_dist();function isInteractive(){return!!(process.stdin.isTTY&&process.stdout.isTTY)}__name(isInteractive,"isInteractive");function assertInteractive(hint,command="fimo"){currentMode().format==="json"&&(ui.error({command,code:"NON_INTERACTIVE_REFUSAL",message:"Cannot prompt in --json mode.",hint}),process.exit(1)),!isInteractive()&&(ui.error({command,code:"NON_INTERACTIVE_REFUSAL",message:"Cannot prompt in a non-interactive shell.",hint}),process.exit(1))}__name(assertInteractive,"assertInteractive");init_project_context();init_project();function renderPrettyJson3(data){return JSON.stringify(data,null,2)}__name(renderPrettyJson3,"renderPrettyJson");var bulkUploadItemSchema=z116.object({sourceId:z116.string().min(1),path:z116.string().min(1),name:z116.string().min(1).optional(),parentId:z116.string().min(1).optional(),folderPath:z116.string().min(1).optional()}).strict().refine(item=>!(item.parentId&&item.folderPath),{message:"Use either parentId or folderPath, not both"}),bulkUploadManifestSchema=z116.array(bulkUploadItemSchema).superRefine((items,ctx)=>{let seen=new Set;for(let[index,item]of items.entries())seen.has(item.sourceId)&&ctx.addIssue({code:"custom",message:`Duplicate sourceId: ${item.sourceId}`,path:[index,"sourceId"]}),seen.add(item.sourceId)});function buildAssetFormData(cwd,item){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:
525
+ `}}}}).prompt(),"Ot");init_dist();init_config();import{z as z115}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 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(`
526
+ `).filter(line=>line.trim().length>0).map(line=>AssetReferenceImpactEventDTOSchema.parse(JSON.parse(line)))},async createForm(projectId,data){return(await transport.request(tenantPath2(projectId,"/forms"),{method:"POST",body:JSON.stringify(data)})).data},async updateForm(projectId,id,data){return(await transport.request(tenantPath2(projectId,`/forms/${id}`),{method:"PUT",body:JSON.stringify(data)})).data}}}__name(createContentTransferService,"createContentTransferService");init_dist();function isInteractive(){return!!(process.stdin.isTTY&&process.stdout.isTTY)}__name(isInteractive,"isInteractive");function assertInteractive(hint,command="fimo"){currentMode().format==="json"&&(ui.error({command,code:"NON_INTERACTIVE_REFUSAL",message:"Cannot prompt in --json mode.",hint}),process.exit(1)),!isInteractive()&&(ui.error({command,code:"NON_INTERACTIVE_REFUSAL",message:"Cannot prompt in a non-interactive shell.",hint}),process.exit(1))}__name(assertInteractive,"assertInteractive");init_project_context();init_project();function renderPrettyJson3(data){return JSON.stringify(data,null,2)}__name(renderPrettyJson3,"renderPrettyJson");var bulkUploadItemSchema=z115.object({sourceId:z115.string().min(1),path:z115.string().min(1),name:z115.string().min(1).optional(),parentId:z115.string().min(1).optional(),folderPath:z115.string().min(1).optional()}).strict().refine(item=>!(item.parentId&&item.folderPath),{message:"Use either parentId or folderPath, not both"}),bulkUploadManifestSchema=z115.array(bulkUploadItemSchema).superRefine((items,ctx)=>{let seen=new Set;for(let[index,item]of items.entries())seen.has(item.sourceId)&&ctx.addIssue({code:"custom",message:`Duplicate sourceId: ${item.sourceId}`,path:[index,"sourceId"]}),seen.add(item.sourceId)});function buildAssetFormData(cwd,item){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:
528
527
  ${issues.join(`
529
528
  `)}`)}return result.data}__name(readBulkUploadManifest,"readBulkUploadManifest");function parseConcurrency(value){let concurrency=Number(value);if(!Number.isInteger(concurrency)||concurrency<1||concurrency>16)throw new Error("--concurrency must be an integer between 1 and 16");return concurrency}__name(parseConcurrency,"parseConcurrency");async function mapWithConcurrency(items,concurrency,run){let results=new Array(items.length),nextIndex=0;return await Promise.all(Array.from({length:Math.min(concurrency,items.length)},async()=>{for(;nextIndex<items.length;){let index=nextIndex;nextIndex+=1,results[index]=await run(items[index])}})),results}__name(mapWithConcurrency,"mapWithConcurrency");async function assetsListCommand(options,cmd){let pagination=parsePaginationOptions(options,{defaultLimit:20,maxLimit:100,legacyCursor:"offset"}),{ctx,fimo}=await bootstrapProjectCommand(options,cmd);await requireOperation("assets.list",{projectId:ctx.projectId,branch:ctx.branch});let mimePrefix=options.mimePrefix;mimePrefix||(options.image?mimePrefix="image/":options.video?mimePrefix="video/":options.audio&&(mimePrefix="audio/"));let initialOffset=parseCursorNumber(pagination.cursor,{defaultValue:0,minimum:0}),page=await collectPaginatedItems({cursor:pagination.cursor,allPages:pagination.allPages,fetchPage:__name(async cursor=>{let offset=parseCursorNumber(cursor,{defaultValue:0,minimum:0}),response=await fimo.execute("assets.list",{projectId:ctx.projectId,branch:ctx.branch,parentId:options.parentId||void 0,search:options.search||void 0,type:options.type||void 0,mimePrefix:mimePrefix||void 0,sortBy:options.sortBy||void 0,limit:pagination.limit,offset}),hasMore=response.nextCursor!==null;return{...response,nextCursor:hasMore?String(offset+pagination.limit):null,meta:{limit:pagination.limit,offset,total:response.total,hasMore}}},"fetchPage")}),result={data:page.items,items:page.items,nextCursor:page.nextCursor,total:page.total,meta:{...page.meta,offset:initialOffset,hasMore:page.nextCursor!==null}},trailingArgs=assetPaginationTrailingArgs(options,ctx.branch);ui.result({command:"assets list",data:result,render:__name(()=>renderPrettyJson3(result),"render"),...page.nextCursor?{hint:buildPaginationHint(["fimo","assets","list"],{cursor:page.nextCursor,limit:pagination.limit,trailingArgs})}:{}})}__name(assetsListCommand,"assetsListCommand");function assetPaginationTrailingArgs(options,branch){let args=[];for(let[flag2,value]of[["--branch",branch],["--parent-id",options.parentId],["--search",options.search],["--type",options.type],["--mime-prefix",options.mimePrefix],["--sort-by",options.sortBy],["--cwd",options.cwd]])value!==void 0&&args.push(flag2,value);for(let[flag2,enabled]of[["--image",options.image],["--video",options.video],["--audio",options.audio]])enabled&&args.push(flag2);return args}__name(assetPaginationTrailingArgs,"assetPaginationTrailingArgs");async function assetsUploadCommand(file,options,cmd){let{ctx}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0}),content2=createContentTransferService(loadConfig(),ctx.branch);await requireOperation("assets.upload",{projectId:ctx.projectId,branch:ctx.branch});let cwd=resolveProjectCwd(options.cwd);if(options.parentId&&options.folderPath)throw new Error("Use either --parent-id or --folder-path, not both");let result=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 root=findProjectRoot2(options.cwd),link=root?readProjectLink(root):null;if(!root||!link)return null;let branch=currentBranch2(root);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 root=findProjectRoot2(cwd)??cwd,values={};for(let file of[".env",".env.local"]){let filePath=path15.join(root,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 eq=trimmed.indexOf("=");eq<=0||(values[trimmed.slice(0,eq).trim()]=trimmed.slice(eq+1).trim().replace(/^['"]|['"]$/g,""))}}return values}__name(readLocalEnvFiles,"readLocalEnvFiles");function currentBranch2(root){try{let branch=execFileSync("git",["symbolic-ref","--short","-q","HEAD"],{cwd:root,stdio:["ignore","pipe","ignore"],encoding:"utf-8"}).trim();return branch&&isValidBranch2(branch)?branch:null}catch{return null}}__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 parent=path15.dirname(dir);if(parent===dir)return null;dir=parent}}__name(findProjectRoot2,"findProjectRoot");function readProjectLink(root){for(let layout of[CURRENT_PROJECT_LAYOUT,LEGACY_PROJECT_LAYOUT]){let file=path15.join(root,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();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:created}=await fimo.execute("branches.create",{projectId:ctx.projectId,name,from:parentBranch}),createdBranch=branchNameOf(created),studioUrl=buildProjectPreviewUrl(loadConfig().webUrl,ctx.projectId,createdBranch),headline=`Created Branch '${createdBranch}' (status: ${created.status})`;ui.result({command:"branch",data:{headline,details:{branch:createdBranch,parent_branch:parentBranch,env:createdBranch,parent_env:parentBranch,status:created.status,studio_url:studioUrl,dashboard_url:studioUrl}},render:__name(context=>renderBranchCreated({headline,parentBranch,studioUrl},context),"render")})}__name(branchCreateCommand,"branchCreateCommand");function renderBranchCreated(result,context){let lines=[`${context.ascii?"[ok]":"\u2713"} ${result.headline}`,` Parent: ${result.parentBranch}`];return lines.push(` Studio: ${terminalLink("Open in Studio",result.studioUrl,context.hyperlinks)}`),lines.join(`
530
529
  `)}__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",`
@@ -580,7 +579,7 @@ return __eta.res;
580
579
  `)}}return returnStr}__name(compileBody,"compileBody");function trimWS(str,config,wsLeft,wsRight){let leftTrim,rightTrim;return Array.isArray(config.autoTrim)?(leftTrim=config.autoTrim[1],rightTrim=config.autoTrim[0]):leftTrim=rightTrim=config.autoTrim,(wsLeft||wsLeft===!1)&&(leftTrim=wsLeft),(wsRight||wsRight===!1)&&(rightTrim=wsRight),!rightTrim&&!leftTrim?str:leftTrim==="slurp"&&rightTrim==="slurp"?str.trim():(leftTrim==="_"||leftTrim==="slurp"?str=str.trimStart():(leftTrim==="-"||leftTrim==="nl")&&(str=str.replace(/^(?:\r\n|\n|\r)/,"")),rightTrim==="_"||rightTrim==="slurp"?str=str.trimEnd():(rightTrim==="-"||rightTrim==="nl")&&(str=str.replace(/(?:\r\n|\n|\r)$/,"")),str)}__name(trimWS,"trimWS");var escMap={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function replaceChar(s){return escMap[s]}__name(replaceChar,"replaceChar");function XMLEscape(str){let newStr=String(str);return/[&<>"']/.test(newStr)?newStr.replace(/[&<>"']/g,replaceChar):newStr}__name(XMLEscape,"XMLEscape");var defaultConfig2={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,debug:!1,escapeFunction:XMLEscape,filterFunction:__name(val=>String(val),"filterFunction"),functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},templateLitReg=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,singleQuoteReg=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,doubleQuoteReg=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;function escapeRegExp(string){return string.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}__name(escapeRegExp,"escapeRegExp");function getLineNo(str,index){return str.slice(0,index).split(`
581
580
  `).length}__name(getLineNo,"getLineNo");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,`
582
581
  `).replace(/^\s+|\s+$/gm,"")),templateLitReg.lastIndex=0,singleQuoteReg.lastIndex=0,doubleQuoteReg.lastIndex=0;function pushString(strng,shouldTrimRightOfString){strng&&(strng=trimWS(strng,config,trimLeftOfNextStr,shouldTrimRightOfString),strng&&(strng=strng.replace(/\\|'/g,"\\$&").replace(/\r\n|\n|\r/g,"\\n"),buffer.push(strng)))}__name(pushString,"pushString");let prefixes=[parseOptions.exec,parseOptions.interpolate,parseOptions.raw].reduce(function(accumulator,prefix){return accumulator&&prefix?accumulator+"|"+escapeRegExp(prefix):prefix?escapeRegExp(prefix):accumulator},""),parseOpenReg=new RegExp(escapeRegExp(config.tags[0])+"(-|_)?\\s*("+prefixes+")?\\s*","g"),parseCloseReg=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+escapeRegExp(config.tags[1])+")","g"),m;for(;m=parseOpenReg.exec(str);){let precedingString=str.slice(lastIndex,m.index);lastIndex=m[0].length+m.index;let wsLeft=m[1],prefix=m[2]||"";pushString(precedingString,wsLeft),parseCloseReg.lastIndex=lastIndex;let closeTag,currentObj=!1;for(;closeTag=parseCloseReg.exec(str);)if(closeTag[1]){let content2=str.slice(lastIndex,closeTag.index);parseOpenReg.lastIndex=lastIndex=parseCloseReg.lastIndex,trimLeftOfNextStr=closeTag[2],currentObj={t:prefix===parseOptions.exec?"e":prefix===parseOptions.raw?"r":prefix===parseOptions.interpolate?"i":"",val:content2};break}else{let char=closeTag[0];if(char==="/*"){let commentCloseInd=str.indexOf("*/",parseCloseReg.lastIndex);commentCloseInd===-1&&ParseErr("unclosed comment",str,closeTag.index),parseCloseReg.lastIndex=commentCloseInd}else char==="'"?(singleQuoteReg.lastIndex=closeTag.index,singleQuoteReg.exec(str)?parseCloseReg.lastIndex=singleQuoteReg.lastIndex:ParseErr("unclosed string",str,closeTag.index)):char==='"'?(doubleQuoteReg.lastIndex=closeTag.index,doubleQuoteReg.exec(str)?parseCloseReg.lastIndex=doubleQuoteReg.lastIndex:ParseErr("unclosed string",str,closeTag.index)):char==="`"&&(templateLitReg.lastIndex=closeTag.index,templateLitReg.exec(str)?parseCloseReg.lastIndex=templateLitReg.lastIndex:ParseErr("unclosed string",str,closeTag.index))}currentObj?(config.debug&&(currentObj.lineNo=getLineNo(str,m.index)),buffer.push(currentObj)):ParseErr("unclosed tag",str,m.index)}if(pushString(str.slice(lastIndex,str.length),!1),config.plugins)for(let i=0;i<config.plugins.length;i++){let plugin=config.plugins[i];plugin.processAST&&(buffer=plugin.processAST(buffer,config))}return buffer}__name(parse6,"parse");function handleCache(template,options){let templateStore=options&&options.async?this.templatesAsync:this.templatesSync;if(this.resolvePath&&this.readFile&&!template.startsWith("@")){let templatePath2=options.filepath,cachedTemplate=templateStore.get(templatePath2);if(this.config.cache&&cachedTemplate)return cachedTemplate;{let templateString=this.readFile(templatePath2),templateFn=this.compile(templateString,options);return this.config.cache&&templateStore.define(templatePath2,templateFn),templateFn}}else{let cachedTemplate=templateStore.get(template);if(cachedTemplate)return cachedTemplate;throw new EtaNameResolutionError("Failed to get template '"+template+"'")}}__name(handleCache,"handleCache");function render(template,data,meta){let templateFn,options={...meta,async:!1};return typeof template=="string"?(this.resolvePath&&this.readFile&&!template.startsWith("@")&&(options.filepath=this.resolvePath(template,options)),templateFn=handleCache.call(this,template,options)):templateFn=template,templateFn.call(this,data,options)}__name(render,"render");function renderAsync(template,data,meta){let templateFn,options={...meta,async:!0};typeof template=="string"?(this.resolvePath&&this.readFile&&!template.startsWith("@")&&(options.filepath=this.resolvePath(template,options)),templateFn=handleCache.call(this,template,options)):templateFn=template;let res=templateFn.call(this,data,options);return Promise.resolve(res)}__name(renderAsync,"renderAsync");function renderString(template,data){let templateFn=this.compile(template,{async:!1});return render.call(this,templateFn,data)}__name(renderString,"renderString");function renderStringAsync(template,data){let templateFn=this.compile(template,{async:!0});return renderAsync.call(this,templateFn,data)}__name(renderStringAsync,"renderStringAsync");var Eta$1=class{static{__name(this,"Eta$1")}constructor(customConfig){this.config=void 0,this.RuntimeErr=RuntimeErr,this.compile=compile,this.compileToString=compileToString,this.compileBody=compileBody,this.parse=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)}}};function readFile2(path52){let res="";try{res=fs18.readFileSync(path52,"utf8")}catch(err){throw err?.code==="ENOENT"?new EtaFileResolutionError(`Could not find template: ${path52}`):err}return res}__name(readFile2,"readFile");function resolvePath2(templatePath2,options){let resolvedFilePath="",views=this.config.views;if(!views)throw new EtaFileResolutionError("Views directory is not defined");let baseFilePath=options&&options.filepath,defaultExtension=this.config.defaultExtension===void 0?".eta":this.config.defaultExtension,cacheIndex=JSON.stringify({filename:baseFilePath,path:templatePath2,views:this.config.views});if(templatePath2+=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`)}__name(resolvePath2,"resolvePath");function dirIsChild(parent,dir){let relative3=path21.relative(parent,dir);return relative3&&!relative3.startsWith("..")&&!path21.isAbsolute(relative3)}__name(dirIsChild,"dirIsChild");var absolutePathRegExp=/^\\|^\//,Eta=class extends Eta$1{static{__name(this,"Eta")}constructor(...args){super(...args),this.readFile=readFile2,this.resolvePath=resolvePath2}};import{existsSync as existsSync3}from"node:fs";import{dirname as dirname3,resolve as resolve3}from"node:path";import{fileURLToPath as fileURLToPath4}from"node:url";var HERE=dirname3(fileURLToPath4(import.meta.url)),IS_BUNDLED=existsSync3(resolve3(HERE,"bundle.json")),PACKAGE_ROOT2=IS_BUNDLED?resolve3(HERE,"..",".."):resolve3(HERE,"..","..","..");function assetPath(...segments){return resolve3(PACKAGE_ROOT2,"assets",...segments)}__name(assetPath,"assetPath");var FORMS_REL="src/forms";function getFormFiles(formsDir){return existsSync4(formsDir)?readdirSync2(formsDir).filter(f=>f.endsWith(".json")).map(f=>join5(formsDir,f)):[]}__name(getFormFiles,"getFormFiles");function readForm(path52){try{return JSON.parse(readFileSync4(path52,"utf-8"))}catch{return null}}__name(readForm,"readForm");function generateIndexContent(forms3){let lines=["// AUTO-GENERATED \u26A0\uFE0F \u2014 do not edit by hand",""];for(let form of forms3){let pascal=pascalCase(form.name),varName=pascal.charAt(0).toLowerCase()+pascal.slice(1);lines.push(`export { ${pascal}Schema, parse${pascal}FormData, submit${pascal}, FORM_ID as ${varName}FormId } from "./${form.name}";`),lines.push(`export type { ${pascal}Data } from "./${form.name}";`)}return lines.push(""),lines.join(`
583
- `)}__name(generateIndexContent,"generateIndexContent");function frameworkFormsTarget(framework){return framework==="nextjs"?"next":framework==="astro"?"astro":framework==="sveltekit"?"sveltekit":null}__name(frameworkFormsTarget,"frameworkFormsTarget");function hasPackageExport(cwd,entry){let slash=entry.indexOf("/"),name=slash===-1?entry:entry.slice(0,slash),subpath=slash===-1?".":`.${entry.slice(slash)}`,packagePath=join5(cwd,"node_modules",name,"package.json");if(!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}}__name(hasPackageExport,"hasPackageExport");function requiredFormEntries(target){return target==="next"?["fimo/forms","fimo-next","fimo-next/client"]:target==="sveltekit"?["fimo/forms","fimo-sveltekit"]:["fimo/forms",`fimo/${target}`]}__name(requiredFormEntries,"requiredFormEntries");function assertFrameworkRuntime(cwd,target){let missing=requiredFormEntries(target).filter(entry=>!hasPackageExport(cwd,entry));if(missing.length!==0)throw new Error(`Cannot generate ${target} form clients because the project cannot resolve ${missing.join(", ")}. Install the current Fimo packages, then run \`fimo validate\` again. No generated files were changed.`)}__name(assertFrameworkRuntime,"assertFrameworkRuntime");function generatedFormFiles(target){return target==="next"?[{suffix:".ts",runtimeImport:"fimo-next"},{suffix:".client.ts",runtimeImport:"fimo-next/client",clientDirective:"'use client';"}]:target==="astro"?[{suffix:".ts",runtimeImport:"fimo/astro"}]:target==="sveltekit"?[{suffix:".ts",runtimeImport:"fimo-sveltekit"}]:[]}__name(generatedFormFiles,"generatedFormFiles");function syncForms(options={}){let cwd=options.cwd??process.cwd(),log=__name(msg=>{options.verbose!==!1&&console.log(msg)},"log"),formsDir=resolve4(cwd,FORMS_REL),formFiles=getFormFiles(formsDir),target=frameworkFormsTarget(options.framework);target&&formFiles.length>0&&assertFrameworkRuntime(cwd,target);let legacyTemplateSource=readFileSync4(assetPath("content-templates","forms","react.eta"),"utf-8"),frameworkTemplateSource=target?readFileSync4(assetPath("content-templates","forms","framework.eta"),"utf-8"):null,outputFiles=generatedFormFiles(target),eta=new Eta({views:void 0,useWith:!0,varName:"it",autoEscape:!1}),expectedTsFiles=new Set,allForms=[],created=0,updated=0,deleted=0;for(let jsonPath of formFiles){let form=readForm(jsonPath);if(!form){console.error(`Failed to parse form: ${jsonPath}`);continue}form.name||(form.name=jsonPath.split("/").pop().replace(/\.json$/,"")),allForms.push(form);let formModel={...form,pascal:pascalCase(form.name)},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}}__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 z117}from"zod";var SCHEMAS_REL="src/schemas",GENERATED_REGISTRY_MARKER="// AUTO-GENERATED by `fimo` from src/schemas/*.json - DO NOT EDIT.",MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION="0.7.0",MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION="0.21.0-0",CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND="npm install fimo@latest",SCHEMA_DEFINITION_SCHEMA=z117.object({uid:z117.string().min(1),name:z117.string().min(1).optional(),isSingleton:z117.boolean().optional(),i18n:z117.object({enabled:z117.boolean().optional()}).optional(),groups:z117.array(z117.object({id:z117.string().min(1),label:z117.string().min(1),default:z117.boolean().optional()}).strict()).optional(),fields:z117.record(z117.string(),z117.unknown()).optional()}),RUNTIME_TYPE_IMPORT_ORDER=["Fields","FimoBoolean","FimoMedia","FimoPolymorphicReference","FimoReference","FimoRichText","FimoRichTextContent","FimoString","Populate","PopulatedResult","ProjectedWithPopulate","Query","Sort","Where","WithReferences"],CONTENT_TEMPLATE_PATHS={types:{current:"shared/types.eta",legacy:"types-template.eta"},sharedServer:{current:"shared/server.eta"},reactClient:{current:"react/client.eta",legacy:"hooks-template.eta"},nextServer:{current:"next/server.eta"},nextClient:{current:"next/client.eta"},svelteKitContent:{current:"sveltekit/content.eta"}};function getSchemaFiles(schemasDir){return existsSync5(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".json")).sort().map(f=>join6(schemasDir,f)):[]}__name(getSchemaFiles,"getSchemaFiles");function getGeneratedFiles(schemasDir){return existsSync5(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".ts")&&f!=="index.ts").map(f=>join6(schemasDir,f)):[]}__name(getGeneratedFiles,"getGeneratedFiles");function parseVersion(version){let match=/^(\d+)\.(\d+)\.(\d+)(?:-([^+]+))?(?:\+.*)?$/.exec(version);return match?{parts:[Number(match[1]),Number(match[2]),Number(match[3])],prerelease:match[4]!==void 0}:null}__name(parseVersion,"parseVersion");function isVersionAtLeast(version,minimum){let parsed=parseVersion(version),parsedMinimum=parseVersion(minimum);if(!parsed||!parsedMinimum)return!1;for(let index=0;index<parsed.parts.length;index++)if(parsed.parts[index]!==parsedMinimum.parts[index])return parsed.parts[index]>parsedMinimum.parts[index];return!parsed.prerelease||parsedMinimum.prerelease}__name(isVersionAtLeast,"isVersionAtLeast");function packageExportsSubpath(packageJson,subpath){if(!packageJson||typeof packageJson!="object"||Array.isArray(packageJson))return!1;let exports2=packageJson.exports;return!!(exports2&&typeof exports2=="object"&&!Array.isArray(exports2)&&Object.prototype.hasOwnProperty.call(exports2,subpath))}__name(packageExportsSubpath,"packageExportsSubpath");function readProjectPackage(cwd,name){let packagePath=join6(cwd,"node_modules",name,"package.json");if(!existsSync5(packagePath))return null;try{return JSON.parse(readFileSync5(packagePath,"utf-8"))}catch{return null}}__name(readProjectPackage,"readProjectPackage");function resolveProjectRuntime(cwd){let packagePath=join6(cwd,"node_modules","fimo","package.json");if(!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"),"."),providesLegacyNextRuntime:packageExportsSubpath(packageJson,"./next")&&packageExportsSubpath(packageJson,"./next/client"),providesNextRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),".")&&packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),"./client"),providesAstroRuntime:packageExportsSubpath(packageJson,"./astro"),providesSvelteKitRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-sveltekit"),".")}}__name(resolveProjectRuntime,"resolveProjectRuntime");function contentRuntimeImportFor(framework,runtime){return framework==="nextjs"?isVersionAtLeast(runtime.version,MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION)?"fimo-next":"fimo/next":framework==="astro"?"fimo/astro":framework==="sveltekit"||framework==="sveltekit-1"?"fimo-sveltekit":isVersionAtLeast(runtime.version,MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION)?"fimo-react":"fimo/ui"}__name(contentRuntimeImportFor,"contentRuntimeImportFor");function templatePath(runtime,templateName){let template=CONTENT_TEMPLATE_PATHS[templateName];if(runtime&&!isVersionAtLeast(runtime.version,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION)){let legacyPath="legacy"in template?template.legacy:template.current;return join6(runtime.packageRoot,"assets","content-templates",legacyPath)}return assetPath("content-templates",template.current)}__name(templatePath,"templatePath");function resolveSchemaGenerationTarget(runtimeImport,runtime){if(runtimeImport==="fimo/ui"&&isVersionAtLeast(runtime.version,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION)&&!runtime.providesLegacyReactRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the legacy fimo/ui export required by this React project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo/ui")return"react";if(runtimeImport==="fimo-react"&&!runtime.providesReactRuntime)throw new Error(`Cannot generate schema clients because the project does not provide the fimo-react package required by this React project. Install fimo-react@${runtime.version} alongside fimo, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-react")return"react";if(runtimeImport==="fimo/next"&&!runtime.providesLegacyNextRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the legacy fimo/next and fimo/next/client exports required by this Next.js project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-next"&&!runtime.providesNextRuntime)throw new Error(`Cannot generate schema clients because the project does not provide the fimo-next and fimo-next/client exports required by this Next.js project. Install fimo-next@${runtime.version} alongside fimo, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo/astro"&&!runtime.providesAstroRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the fimo/astro export required by this Astro project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-sveltekit"&&!runtime.providesSvelteKitRuntime)throw new Error(`Cannot generate schema clients because this SvelteKit project has no project-local fimo-sveltekit package. Run \`npm install fimo-sveltekit@${runtime.version}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);return runtimeImport==="fimo/next"||runtimeImport==="fimo-next"?"next":runtimeImport==="fimo/astro"?"astro":"sveltekit"}__name(resolveSchemaGenerationTarget,"resolveSchemaGenerationTarget");function templatesForTarget(target,runtime,runtimeImport){return target==="next"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport},{suffix:".ts",path:templatePath(runtime,"nextServer"),runtimeImport},{suffix:".client.ts",path:templatePath(runtime,"nextClient"),runtimeImport:`${runtimeImport}/client`}]:target==="astro"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo/astro"},{suffix:".ts",path:templatePath(runtime,"sharedServer"),runtimeImport:"fimo/astro"}]:target==="sveltekit"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo-sveltekit"},{suffix:".ts",path:templatePath(runtime,"svelteKitContent"),runtimeImport:"fimo-sveltekit"}]:[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport},{suffix:".ts",path:templatePath(runtime,"reactClient"),runtimeImport}]}__name(templatesForTarget,"templatesForTarget");function loadSchemas(schemaFiles){let errors=[],schemas3=[],outputOwners=new Map,registryOwners=new Map;for(let path52 of schemaFiles){let fileUid=basename(path52,".json"),pascal=pascalCase(fileUid),existingOwner=outputOwners.get(pascal);existingOwner&&existingOwner!==fileUid?errors.push(`${basename(path52)} 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(path52,"utf-8"))}catch(error){errors.push(`${basename(path52)} is invalid JSON: ${error instanceof Error?error.message:String(error)}`);continue}if(typeof parsed!="object"||parsed===null||Array.isArray(parsed)){errors.push(`${basename(path52)} must contain a JSON object.`);continue}let candidate=parsed;if(typeof candidate.uid!="string"||candidate.uid.length===0){errors.push(`${basename(path52)} is missing "uid". Set it to "${fileUid}".`);continue}if(candidate.uid!==fileUid){errors.push(`${basename(path52)} 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(path52)} 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(path52)} 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:
582
+ `)}__name(generateIndexContent,"generateIndexContent");function frameworkFormsTarget(framework){return framework==="nextjs"?"next":framework==="astro"?"astro":framework==="sveltekit"?"sveltekit":null}__name(frameworkFormsTarget,"frameworkFormsTarget");function hasPackageExport(cwd,entry){let slash=entry.indexOf("/"),name=slash===-1?entry:entry.slice(0,slash),subpath=slash===-1?".":`.${entry.slice(slash)}`,packagePath=join5(cwd,"node_modules",name,"package.json");if(!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}}__name(hasPackageExport,"hasPackageExport");function requiredFormEntries(target){return target==="next"?["fimo/forms","fimo-next","fimo-next/client"]:target==="sveltekit"?["fimo/forms","fimo-sveltekit"]:["fimo/forms",`fimo/${target}`]}__name(requiredFormEntries,"requiredFormEntries");function assertFrameworkRuntime(cwd,target){let missing=requiredFormEntries(target).filter(entry=>!hasPackageExport(cwd,entry));if(missing.length!==0)throw new Error(`Cannot generate ${target} form clients because the project cannot resolve ${missing.join(", ")}. Install the current Fimo packages, then run \`fimo validate\` again. No generated files were changed.`)}__name(assertFrameworkRuntime,"assertFrameworkRuntime");function generatedFormFiles(target){return target==="next"?[{suffix:".ts",runtimeImport:"fimo-next"},{suffix:".client.ts",runtimeImport:"fimo-next/client",clientDirective:"'use client';"}]:target==="astro"?[{suffix:".ts",runtimeImport:"fimo/astro"}]:target==="sveltekit"?[{suffix:".ts",runtimeImport:"fimo-sveltekit"}]:[]}__name(generatedFormFiles,"generatedFormFiles");function syncForms(options={}){let cwd=options.cwd??process.cwd(),log=__name(msg=>{options.verbose!==!1&&console.log(msg)},"log"),formsDir=resolve4(cwd,FORMS_REL),formFiles=getFormFiles(formsDir),target=frameworkFormsTarget(options.framework);target&&formFiles.length>0&&assertFrameworkRuntime(cwd,target);let legacyTemplateSource=readFileSync4(assetPath("content-templates","forms","react.eta"),"utf-8"),frameworkTemplateSource=target?readFileSync4(assetPath("content-templates","forms","framework.eta"),"utf-8"):null,outputFiles=generatedFormFiles(target),eta=new Eta({views:void 0,useWith:!0,varName:"it",autoEscape:!1}),expectedTsFiles=new Set,allForms=[],created=0,updated=0,deleted=0;for(let jsonPath of formFiles){let form=readForm(jsonPath);if(!form){console.error(`Failed to parse form: ${jsonPath}`);continue}form.name||(form.name=jsonPath.split("/").pop().replace(/\.json$/,"")),allForms.push(form);let formModel={...form,pascal:pascalCase(form.name)},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}}__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 z116}from"zod";var SCHEMAS_REL="src/schemas",GENERATED_REGISTRY_MARKER="// AUTO-GENERATED by `fimo` from src/schemas/*.json - DO NOT EDIT.",MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION="0.7.0",MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION="0.21.0-0",CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND="npm install fimo@latest",SCHEMA_DEFINITION_SCHEMA=z116.object({uid:z116.string().min(1),name:z116.string().min(1).optional(),isSingleton:z116.boolean().optional(),i18n:z116.object({enabled:z116.boolean().optional()}).optional(),groups:z116.array(z116.object({id:z116.string().min(1),label:z116.string().min(1),default:z116.boolean().optional()}).strict()).optional(),fields:z116.record(z116.string(),z116.unknown()).optional()}),RUNTIME_TYPE_IMPORT_ORDER=["Fields","FimoBoolean","FimoMedia","FimoPolymorphicReference","FimoReference","FimoRichText","FimoRichTextContent","FimoString","Populate","PopulatedResult","ProjectedWithPopulate","Query","Sort","Where","WithReferences"],CONTENT_TEMPLATE_PATHS={types:{current:"shared/types.eta",legacy:"types-template.eta"},sharedServer:{current:"shared/server.eta"},reactClient:{current:"react/client.eta",legacy:"hooks-template.eta"},nextServer:{current:"next/server.eta"},nextClient:{current:"next/client.eta"},svelteKitContent:{current:"sveltekit/content.eta"}};function getSchemaFiles(schemasDir){return existsSync5(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".json")).sort().map(f=>join6(schemasDir,f)):[]}__name(getSchemaFiles,"getSchemaFiles");function getGeneratedFiles(schemasDir){return existsSync5(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".ts")&&f!=="index.ts").map(f=>join6(schemasDir,f)):[]}__name(getGeneratedFiles,"getGeneratedFiles");function parseVersion(version){let match=/^(\d+)\.(\d+)\.(\d+)(?:-([^+]+))?(?:\+.*)?$/.exec(version);return match?{parts:[Number(match[1]),Number(match[2]),Number(match[3])],prerelease:match[4]!==void 0}:null}__name(parseVersion,"parseVersion");function isVersionAtLeast(version,minimum){let parsed=parseVersion(version),parsedMinimum=parseVersion(minimum);if(!parsed||!parsedMinimum)return!1;for(let index=0;index<parsed.parts.length;index++)if(parsed.parts[index]!==parsedMinimum.parts[index])return parsed.parts[index]>parsedMinimum.parts[index];return!parsed.prerelease||parsedMinimum.prerelease}__name(isVersionAtLeast,"isVersionAtLeast");function packageExportsSubpath(packageJson,subpath){if(!packageJson||typeof packageJson!="object"||Array.isArray(packageJson))return!1;let exports2=packageJson.exports;return!!(exports2&&typeof exports2=="object"&&!Array.isArray(exports2)&&Object.prototype.hasOwnProperty.call(exports2,subpath))}__name(packageExportsSubpath,"packageExportsSubpath");function readProjectPackage(cwd,name){let packagePath=join6(cwd,"node_modules",name,"package.json");if(!existsSync5(packagePath))return null;try{return JSON.parse(readFileSync5(packagePath,"utf-8"))}catch{return null}}__name(readProjectPackage,"readProjectPackage");function resolveProjectRuntime(cwd){let packagePath=join6(cwd,"node_modules","fimo","package.json");if(!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"),"."),providesLegacyNextRuntime:packageExportsSubpath(packageJson,"./next")&&packageExportsSubpath(packageJson,"./next/client"),providesNextRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),".")&&packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),"./client"),providesAstroRuntime:packageExportsSubpath(packageJson,"./astro"),providesSvelteKitRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-sveltekit"),".")}}__name(resolveProjectRuntime,"resolveProjectRuntime");function contentRuntimeImportFor(framework,runtime){return framework==="nextjs"?isVersionAtLeast(runtime.version,MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION)?"fimo-next":"fimo/next":framework==="astro"?"fimo/astro":framework==="sveltekit"||framework==="sveltekit-1"?"fimo-sveltekit":isVersionAtLeast(runtime.version,MINIMUM_FRAMEWORK_COMPANION_RUNTIME_VERSION)?"fimo-react":"fimo/ui"}__name(contentRuntimeImportFor,"contentRuntimeImportFor");function templatePath(runtime,templateName){let template=CONTENT_TEMPLATE_PATHS[templateName];if(runtime&&!isVersionAtLeast(runtime.version,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION)){let legacyPath="legacy"in template?template.legacy:template.current;return join6(runtime.packageRoot,"assets","content-templates",legacyPath)}return assetPath("content-templates",template.current)}__name(templatePath,"templatePath");function resolveSchemaGenerationTarget(runtimeImport,runtime){if(runtimeImport==="fimo/ui"&&isVersionAtLeast(runtime.version,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION)&&!runtime.providesLegacyReactRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the legacy fimo/ui export required by this React project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo/ui")return"react";if(runtimeImport==="fimo-react"&&!runtime.providesReactRuntime)throw new Error(`Cannot generate schema clients because the project does not provide the fimo-react package required by this React project. Install fimo-react@${runtime.version} alongside fimo, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-react")return"react";if(runtimeImport==="fimo/next"&&!runtime.providesLegacyNextRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the legacy fimo/next and fimo/next/client exports required by this Next.js project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-next"&&!runtime.providesNextRuntime)throw new Error(`Cannot generate schema clients because the project does not provide the fimo-next and fimo-next/client exports required by this Next.js project. Install fimo-next@${runtime.version} alongside fimo, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo/astro"&&!runtime.providesAstroRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the fimo/astro export required by this Astro project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-sveltekit"&&!runtime.providesSvelteKitRuntime)throw new Error(`Cannot generate schema clients because this SvelteKit project has no project-local fimo-sveltekit package. Run \`npm install fimo-sveltekit@${runtime.version}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);return runtimeImport==="fimo/next"||runtimeImport==="fimo-next"?"next":runtimeImport==="fimo/astro"?"astro":"sveltekit"}__name(resolveSchemaGenerationTarget,"resolveSchemaGenerationTarget");function templatesForTarget(target,runtime,runtimeImport){return target==="next"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport},{suffix:".ts",path:templatePath(runtime,"nextServer"),runtimeImport},{suffix:".client.ts",path:templatePath(runtime,"nextClient"),runtimeImport:`${runtimeImport}/client`}]:target==="astro"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo/astro"},{suffix:".ts",path:templatePath(runtime,"sharedServer"),runtimeImport:"fimo/astro"}]:target==="sveltekit"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo-sveltekit"},{suffix:".ts",path:templatePath(runtime,"svelteKitContent"),runtimeImport:"fimo-sveltekit"}]:[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport},{suffix:".ts",path:templatePath(runtime,"reactClient"),runtimeImport}]}__name(templatesForTarget,"templatesForTarget");function loadSchemas(schemaFiles){let errors=[],schemas3=[],outputOwners=new Map,registryOwners=new Map;for(let path52 of schemaFiles){let fileUid=basename(path52,".json"),pascal=pascalCase(fileUid),existingOwner=outputOwners.get(pascal);existingOwner&&existingOwner!==fileUid?errors.push(`${basename(path52)} 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(path52,"utf-8"))}catch(error){errors.push(`${basename(path52)} is invalid JSON: ${error instanceof Error?error.message:String(error)}`);continue}if(typeof parsed!="object"||parsed===null||Array.isArray(parsed)){errors.push(`${basename(path52)} must contain a JSON object.`);continue}let candidate=parsed;if(typeof candidate.uid!="string"||candidate.uid.length===0){errors.push(`${basename(path52)} is missing "uid". Set it to "${fileUid}".`);continue}if(candidate.uid!==fileUid){errors.push(`${basename(path52)} 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(path52)} 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(path52)} 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:
584
583
  - ${errors.join(`
585
584
  - `)}
586
585
  No generated files were changed.`);return schemas3}__name(loadSchemas,"loadSchemas");function renderContentRegistry(schemas3){let imports=schemas3.map(({pascal})=>`import * as ${pascal} from "./${pascal}";`).join(`
@@ -698,30 +697,16 @@ Examples:
698
697
  fimo history restore <version-id> --yes
699
698
  `);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(`
700
699
  `)}__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(`
701
- `)}__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 z118}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=z118.object({answers:z118.array(z118.object({stepId:z118.string().min(1),selected:z118.array(z118.string().min(1)).optional(),note:z118.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",isText=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(isText&&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.`,isText?'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",`
702
- Examples:
703
- fimo inbox list
704
- fimo inbox list --topic agent_question --unread
705
- fimo inbox get <notification-id>
706
- fimo inbox answer <notification-id> --body '{"answers":[{"stepId":"direction","selected":["Editorial studio"],"note":"Keep it calm."},{"stepId":"access","selected":[]}]}'
707
- `);addScopeOptions3(addPaginationOptions(inbox.command("list").description("List notifications, unread first").option("--topic <topic>",`Only one topic (${WORK_NOTIFICATION_TOPICS.join(", ")})`).option("--unread","Only unread notifications").option("--archived","Only archived notifications"),{defaultLimit:20,maxLimit:100})).action((options,command)=>inboxListCommand(options,command)),addScopeOptions3(inbox.command("get <notificationId>").description("Show one notification, with the stored form when it is a question")).action((notificationId,options,command)=>inboxGetCommand(notificationId,options,command)),addScopeOptions3(inbox.command("answer <notificationId>").description("Answer the question a notification points at, continuing the run that asked").option("--body <json>",'Compact answer JSON: {"answers":[{"stepId":"\u2026","selected":[\u2026],"note":"\u2026"}]}').option("--file <path>","Read the compact answer JSON from a file").option("--stdin","Read the compact answer JSON from stdin")).action((notificationId,options,command)=>inboxAnswerCommand(notificationId,options,command))}__name(registerInboxCommands,"registerInboxCommands");function addScopeOptions3(command){return command.option("--project <id>","Project id (defaults to the linked project)").option("-C, --cwd <dir>","Project directory")}__name(addScopeOptions3,"addScopeOptions");async function inboxListCommand(options,command){await runInboxCommand("inbox list",async()=>{let pagination=parsePaginationOptions(options,{defaultLimit:20,maxLimit:100}),topic=parseTopic(options.topic),{fimo,projectId}=await resolveInboxScope(options,command),page=await collectPaginatedItems({cursor:pagination.cursor,allPages:pagination.allPages,fetchPage:__name(cursor=>fetchInboxPage(fimo,projectId,{cursor,limit:pagination.limit,topic,unreadOnly:options.unread===!0,archived:options.archived===!0}),"fetchPage")}),result={items:page.items,nextCursor:page.nextCursor,unreadCount:page.unreadCount},hint=page.nextCursor?buildInboxListHint(page.nextCursor,pagination.limit,options):void 0;ui.result({command:"inbox list",data:result,render:__name(()=>renderInboxList(result),"render"),...hint?{hint}:{}})})}__name(inboxListCommand,"inboxListCommand");async function inboxGetCommand(notificationId,options,command){await runInboxCommand("inbox get",async()=>{let{fimo,projectId}=await resolveInboxScope(options,command),view=await fimo.execute("notifications.get",{projectId,notificationId}),question=view.subject.kind==="question"?await fimo.execute("questions.get",{projectId,questionId:view.subject.questionId}):null,result={notification:toListItem(view),question:question?toQuestionView(question):null};ui.result({command:"inbox get",data:result,render:__name(()=>renderInboxItem(result,notificationId),"render")})})}__name(inboxGetCommand,"inboxGetCommand");async function inboxAnswerCommand(notificationId,options,command){await runInboxCommand("inbox answer",async()=>{let compact=parseCompactAnswer(await readContentInputSource(options,message=>new InboxAnswerError(message))),{fimo,projectId}=await resolveInboxScope(options,command),view=await fimo.execute("notifications.get",{projectId,notificationId});if(view.subject.kind!=="question")throw new InboxCommandError("INBOX_NOT_A_QUESTION",`This notification is a ${topicLabel(view.notification.payload.topic).toLowerCase()}, not a question, so there is nothing to answer.`,"Run `fimo inbox list --topic agent_question` to find the questions waiting on an answer.");let question=await fimo.execute("questions.get",{projectId,questionId:view.subject.questionId});if(question.state!=="open")throw new InboxCommandError("INBOX_QUESTION_CLOSED",`This question is ${question.state} and cannot be answered again.`,"Run `fimo inbox get <notification-id>` to read the answer already on record.");let answer=buildQuestionAnswer(question.request.block,compact),submitted=await fimo.execute("questions.answer",{projectId,questionId:view.subject.questionId,answer}),result={notification:toListItem(view),state:submitted.question.state,answer:answeredSteps(submitted.question),capabilities:capabilityDecision(submitted.question),replay:submitted.deduped};ui.result({command:"inbox answer",data:result,render:__name(()=>renderInboxAnswer(result),"render")})})}__name(inboxAnswerCommand,"inboxAnswerCommand");var API_ERROR_CODES={notification_not_found:"INBOX_NOT_FOUND",question_not_found:"INBOX_NOT_FOUND",question_not_open:"INBOX_QUESTION_CLOSED",question_answer_mismatch:"INBOX_ANSWER_INVALID",invalid_notification_cursor:"INBOX_INVALID_CURSOR"};async function runInboxCommand(command,operation){try{await operation()}catch(error){if(error instanceof InboxCommandError||error instanceof InboxAnswerError){ui.error({command,code:error.code,message:error.message,...error.hint?{hint:error.hint}:{}});return}if(error instanceof ApiRequestError){ui.error({command,code:API_ERROR_CODES[error.code??""]??"INBOX_REQUEST_FAILED",message:error.detail});return}throw error}}__name(runInboxCommand,"runInboxCommand");async function resolveInboxScope(options,command){let fimo=createCliFimoClient(loadConfig());if(options.project)return{fimo,projectId:options.project};let ctx=await getProjectContext({cwd:options.cwd,branchOverride:branchOverrideFromCommand(command)});return{fimo,projectId:ctx.projectId}}__name(resolveInboxScope,"resolveInboxScope");function parseTopic(value){if(value!==void 0){if(!WORK_NOTIFICATION_TOPICS.includes(value))throw new InboxCommandError("INBOX_UNKNOWN_TOPIC",`'${value}' is not an Inbox topic.`,`Topics: ${WORK_NOTIFICATION_TOPICS.join(", ")}.`);return value}}__name(parseTopic,"parseTopic");function encodeInboxCursor(cursor){return Buffer.from(JSON.stringify(cursor)).toString("base64url")}__name(encodeInboxCursor,"encodeInboxCursor");function decodeInboxCursor(raw){if(raw===void 0)return{unread:!0};try{let parsed=JSON.parse(Buffer.from(raw,"base64url").toString());if(typeof parsed.unread!="boolean"||parsed.after!==void 0&&typeof parsed.after!="string")throw new Error("unreadable cursor");return{unread:parsed.unread,...parsed.after!==void 0?{after:parsed.after}:{}}}catch{throw new InboxCommandError("INBOX_INVALID_CURSOR","The list cursor is not readable.","Pass the `nextCursor` from the previous page, or start over without --cursor.")}}__name(decodeInboxCursor,"decodeInboxCursor");async function fetchInboxPage(fimo,projectId,input){let query={...input.topic?{topic:input.topic}:{},...input.archived?{archived:!0}:{}},start=decodeInboxCursor(input.cursor),first=await fimo.execute("notifications.list",{projectId,...query,unread:start.unread,limit:input.limit,...start.after!==void 0?{cursor:start.after}:{}}),items=first.items.map(toListItem);if(first.nextCursor)return{items,nextCursor:encodeInboxCursor({unread:start.unread,after:first.nextCursor}),unreadCount:first.unreadCount};if(!start.unread||input.unreadOnly)return{items,nextCursor:null,unreadCount:first.unreadCount};let remaining=input.limit-items.length;if(remaining<=0)return{items,nextCursor:encodeInboxCursor({unread:!1}),unreadCount:first.unreadCount};let rest=await fimo.execute("notifications.list",{projectId,...query,unread:!1,limit:remaining});return{items:[...items,...rest.items.map(toListItem)],nextCursor:rest.nextCursor?encodeInboxCursor({unread:!1,after:rest.nextCursor}):null,unreadCount:first.unreadCount}}__name(fetchInboxPage,"fetchInboxPage");function buildInboxListHint(nextCursor,limit,options){let trailingArgs=[];return options.topic&&trailingArgs.push("--topic",options.topic),options.unread&&trailingArgs.push("--unread"),options.archived&&trailingArgs.push("--archived"),options.project&&trailingArgs.push("--project",options.project),options.cwd&&trailingArgs.push("--cwd",options.cwd),buildPaginationHint(["fimo","inbox","list"],{cursor:nextCursor,limit,trailingArgs})}__name(buildInboxListHint,"buildInboxListHint");function toListItem(view){let{notification,recipient}=view,payload=notification.payload,summary2="summary"in payload?payload.summary??null:null;return{id:notification.id,topic:payload.topic,title:"title"in payload&&payload.title?payload.title:fallbackTitle(view),description:payload.topic==="agent_question"?payload.description:payload.topic==="publication_failed"?`Changes from ${payload.sourceBranch} were not published.`:summary2,from:actorName(notification.actor),receivedAt:isoTimestamp(notification.createdAt),read:!!recipient.readAt,archived:!!recipient.archivedAt}}__name(toListItem,"toListItem");function toQuestionView(question){return{state:question.state,agent:agentDisplayName(question.agentKey),askedAt:isoTimestamp(question.askedAt),expiresAt:isoTimestamp(question.expiresAt),description:question.request.description,form:question.request.block,answer:question.answer?answeredSteps(question):null,capabilities:capabilityDecision(question)}}__name(toQuestionView,"toQuestionView");function answeredSteps(question){return(question.answer?.answer.questions??[]).map(item=>({stepId:item.stepId??null,header:item.header,question:item.question,answer:item.answer,selected:item.selectedLabels,note:item.freeText}))}__name(answeredSteps,"answeredSteps");function capabilityDecision(question){let decision=agentQuestionCapabilityDecision(question.request,question.answer);return decision.requested.length===0?null:{approved:decision.approved,denied:decision.denied}}__name(capabilityDecision,"capabilityDecision");function agentDisplayName(agentKey){return/^project-agent:[^:]+:(.+)$/.exec(agentKey)?.[1]??agentKey}__name(agentDisplayName,"agentDisplayName");function actorName(actor){switch(actor.kind){case"agent":return agentDisplayName(actor.agentKey);case"user":return"A teammate";case"system":return"Fimo"}}__name(actorName,"actorName");function fallbackTitle(view){let who=actorName(view.notification.actor);switch(view.subject.kind){case"question":return`${who} is waiting on an answer`;case"run_outcome":return`${who} ${view.subject.outcome==="completed"?"finished a run":`${view.subject.outcome} a run`}`;case"retained_review":return`${who} left work for review`;case"merge_conflict":return`${who} hit a merge conflict`;case"publication":{let payload=view.notification.payload;return payload.topic==="publication_failed"&&payload.firstPublication?"Your website hasn't been published yet":"Your latest update couldn't be published"}}}__name(fallbackTitle,"fallbackTitle");function topicLabel(topic){switch(topic){case"agent_question":return"Question";case"agent_run_outcome":return"Run outcome";case"agent_retained_review":return"Work for review";case"agent_conflict":return"Merge conflict";case"publication_failed":return"Publication failure"}}__name(topicLabel,"topicLabel");function isoTimestamp(value){let date=value instanceof Date?value:new Date(value);return Number.isNaN(date.getTime())?String(value):date.toISOString()}__name(isoTimestamp,"isoTimestamp");function formatTimestamp2(value){return value.length>=16?value.slice(0,16).replace("T"," "):value}__name(formatTimestamp2,"formatTimestamp");function renderInboxList(result){let lines=[`Inbox \xB7 ${result.unreadCount} unread`,""];if(result.items.length===0)return lines.push("Nothing here."),lines.join(`
708
- `);for(let item of result.items)lines.push(`${item.read?" ":"*"} ${item.title}`,` ${topicLabel(item.topic)} \xB7 ${item.from} \xB7 ${formatTimestamp2(item.receivedAt)}${item.archived?" \xB7 archived":""}`),item.description&&lines.push(` ${item.description}`),lines.push(` fimo inbox get ${item.id}`,"");return lines.join(`
709
- `).trimEnd()}__name(renderInboxList,"renderInboxList");function renderInboxItem(result,notificationId){let{notification,question}=result,lines=[notification.title,`${topicLabel(notification.topic)} \xB7 ${notification.from} \xB7 ${formatTimestamp2(notification.receivedAt)}${notification.read?"":" \xB7 unread"}${notification.archived?" \xB7 archived":""}`];if(notification.description&&lines.push("",notification.description),!question)return lines.join(`
710
- `);if(lines.push("",`Question \xB7 ${question.state} \xB7 asked ${formatTimestamp2(question.askedAt)} \xB7 expires ${formatTimestamp2(question.expiresAt)}`,"",question.description),question.form.steps.forEach((step,index)=>{lines.push("",`Step ${index+1} \xB7 ${step.id} \xB7 ${step.header}`,` ${step.question}`),lines.push(...renderStepBody(step).map(line=>` ${line}`))}),question.answer){lines.push("","Answered:");for(let item of question.answer)lines.push(` ${item.header}: ${item.answer.replaceAll(`
711
- `," ")}`);return question.capabilities&&lines.push(` Capabilities approved: ${question.capabilities.approved.join(", ")||"none"}`,` Capabilities denied: ${question.capabilities.denied.join(", ")||"none"}`),lines.join(`
712
- `)}return question.state==="open"&&lines.push("","Answer with:",` fimo inbox answer ${notificationId} --body '${exampleAnswer(question.form)}'`),lines.join(`
713
- `)}__name(renderInboxItem,"renderInboxItem");function renderStepBody(step){let body=step.body;switch(body.type){case"text":return[`Write an answer${body.placeholder?` (${body.placeholder})`:""}.`];case"choices":return[pickLine(step),...body.actions.map(action=>option(action.label,action.description,step.recommended))];case"cards":return[pickLine(step),...body.items.map(item=>option(item.title,[item.subtitle,item.imageUrl].filter(Boolean).join(" \xB7 ")||void 0,step.recommended))];case"assets":return[pickLine(step),...body.items.map(item=>option(item.label??item.alt,`${item.alt} \xB7 ${item.url}`,step.recommended))];case"table":return[pickLine(step),` ${body.columns.map(column=>column.label).join(" \xB7 ")}`,...body.rows.map(row2=>option(row2.cells[0]??"",row2.cells.slice(1).join(" \xB7 ")||void 0,step.recommended))];case"capabilities":return["Approve any (an empty selection approves none):",...body.items.map(item=>option(item.label,item.reason,step.recommended))]}}__name(renderStepBody,"renderStepBody");function pickLine(step){return step.multiSelect?"Pick any:":"Pick one:"}__name(pickLine,"pickLine");function option(label,detail,recommended){return` - ${label}${label===recommended?" (recommended)":""}${detail?` \u2014 ${detail}`:""}`}__name(option,"option");function exampleAnswer(form){return JSON.stringify({answers:form.steps.map(step=>({stepId:step.id,selected:[],note:""}))})}__name(exampleAnswer,"exampleAnswer");function renderInboxAnswer(result){let lines=[result.replay?`Already answered: ${result.notification.title}. The run it continued is the same one.`:`Answered: ${result.notification.title}. The run continues with your answer.`,""];for(let item of result.answer)lines.push(`${item.header}: ${item.answer.replaceAll(`
714
- `," ")}`);return result.capabilities&&lines.push(`Capabilities approved: ${result.capabilities.approved.join(", ")||"none"}`,`Capabilities denied: ${result.capabilities.denied.join(", ")||"none"}`),lines.join(`
715
- `)}__name(renderInboxAnswer,"renderInboxAnswer");import fs36 from"node:fs";import path37 from"node:path";init_dist();init_auth();init_config();init_sdk_transport();import fs34 from"node:fs";import os2 from"node:os";import path34 from"node:path";var isPlainObject=__name(value=>value!==null&&typeof value=="object"&&!Array.isArray(value),"isPlainObject"),toErrorMessage=__name((error,fallback="Unknown error")=>error instanceof Error?error.message:fallback,"toErrorMessage");var import_yaml4=__toESM(require_dist3(),1);import{existsSync as existsSync9}from"node:fs";import{homedir as homedir2,platform as platform2,tmpdir as tmpdir2}from"node:os";import{basename as basename3,dirname as dirname6,isAbsolute as isAbsolute3,join as join10,normalize,relative as relative2,resolve as resolve8,sep}from"node:path";import{cp,lstat,mkdir,mkdtemp,readFile as readFile4,readdir,readlink,realpath,rm,stat,symlink,writeFile}from"node:fs/promises";import{spawn as spawn2}from"node:child_process";var xdgConfigHome=__name(()=>{let explicit=process.env.XDG_CONFIG_HOME?.trim();if(explicit)return explicit;if(platform2()==="win32"){let localAppData=process.env.LOCALAPPDATA?.trim();if(localAppData)return localAppData}return join10(homedir2(),".config")},"xdgConfigHome"),CANONICAL_SKILLS_DIR=".agents/skills",SKILL_MANIFEST_FILE="SKILL.md",DEFAULT_CLONE_TIMEOUT_MS=3e5,DEFAULT_FETCH_TIMEOUT_MS=3e4,MS_PER_SECOND=1e3,SKIP_DISCOVERY_DIRS=new Set(["node_modules",".git","dist","build","__pycache__","coverage",".next",".turbo"]),COPY_EXCLUDE_FILES=new Set(["metadata.json"]),COPY_EXCLUDE_DIRS=new Set([".git","__pycache__","__pypackages__"]),WELL_KNOWN_INDEX_FILE="index.json",WELL_KNOWN_PATHS=[".well-known/agent-skills",".well-known/skills"],home=homedir2(),configHome=xdgConfigHome(),codexHome=process.env.CODEX_HOME?.trim()||join10(home,".codex"),claudeHome=process.env.CLAUDE_CONFIG_DIR?.trim()||join10(home,".claude"),vibeHome=process.env.VIBE_HOME?.trim()||join10(home,".vibe"),resolveOpenClawGlobalSkillsDir=__name(()=>existsSync9(join10(home,".openclaw"))?join10(home,".openclaw/skills"):existsSync9(join10(home,".clawdbot"))?join10(home,".clawdbot/skills"):existsSync9(join10(home,".moltbot"))?join10(home,".moltbot/skills"):join10(home,".openclaw/skills"),"resolveOpenClawGlobalSkillsDir"),detectOpenClaw=__name(()=>existsSync9(join10(home,".openclaw"))||existsSync9(join10(home,".clawdbot"))||existsSync9(join10(home,".moltbot")),"detectOpenClaw"),skillAgents={adal:{name:"adal",displayName:"AdaL",skillsDir:".adal/skills",globalSkillsDir:join10(home,".adal/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".adal")),"detectInstalled")},"aider-desk":{name:"aider-desk",displayName:"AiderDesk",skillsDir:".aider-desk/skills",globalSkillsDir:join10(home,".aider-desk/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".aider-desk")),"detectInstalled")},amp:{name:"amp",displayName:"Amp",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"amp")),"detectInstalled"),isUniversal:!0},antigravity:{name:"antigravity",displayName:"Antigravity",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".gemini/antigravity/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".gemini/antigravity")),"detectInstalled"),isUniversal:!0},augment:{name:"augment",displayName:"Augment",skillsDir:".augment/skills",globalSkillsDir:join10(home,".augment/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".augment")),"detectInstalled")},bob:{name:"bob",displayName:"IBM Bob",skillsDir:".bob/skills",globalSkillsDir:join10(home,".bob/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".bob")),"detectInstalled")},"claude-code":{name:"claude-code",displayName:"Claude Code",skillsDir:".claude/skills",globalSkillsDir:join10(claudeHome,"skills"),detectInstalled:__name(async()=>existsSync9(claudeHome),"detectInstalled")},cline:{name:"cline",displayName:"Cline",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".cline")),"detectInstalled"),isUniversal:!0},"codearts-agent":{name:"codearts-agent",displayName:"CodeArts Agent",skillsDir:".codeartsdoer/skills",globalSkillsDir:join10(home,".codeartsdoer/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codeartsdoer")),"detectInstalled")},codebuddy:{name:"codebuddy",displayName:"CodeBuddy",skillsDir:".codebuddy/skills",globalSkillsDir:join10(home,".codebuddy/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".codebuddy"))||existsSync9(join10(home,".codebuddy")),"detectInstalled")},codemaker:{name:"codemaker",displayName:"Codemaker",skillsDir:".codemaker/skills",globalSkillsDir:join10(home,".codemaker/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codemaker")),"detectInstalled")},codestudio:{name:"codestudio",displayName:"Code Studio",skillsDir:".codestudio/skills",globalSkillsDir:join10(home,".codestudio/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codestudio")),"detectInstalled")},codex:{name:"codex",displayName:"Codex",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(codexHome,"skills"),detectInstalled:__name(async()=>existsSync9(codexHome)||existsSync9("/etc/codex"),"detectInstalled"),isUniversal:!0},"command-code":{name:"command-code",displayName:"Command Code",skillsDir:".commandcode/skills",globalSkillsDir:join10(home,".commandcode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".commandcode")),"detectInstalled")},continue:{name:"continue",displayName:"Continue",skillsDir:".continue/skills",globalSkillsDir:join10(home,".continue/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".continue"))||existsSync9(join10(home,".continue")),"detectInstalled")},cortex:{name:"cortex",displayName:"Cortex Code",skillsDir:".cortex/skills",globalSkillsDir:join10(home,".snowflake/cortex/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".snowflake/cortex")),"detectInstalled")},crush:{name:"crush",displayName:"Crush",skillsDir:".crush/skills",globalSkillsDir:join10(configHome,"crush/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"crush")),"detectInstalled")},cursor:{name:"cursor",displayName:"Cursor",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".cursor/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".cursor")),"detectInstalled"),isUniversal:!0},deepagents:{name:"deepagents",displayName:"Deep Agents",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".deepagents/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".deepagents")),"detectInstalled"),isUniversal:!0},devin:{name:"devin",displayName:"Devin",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"devin/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"devin")),"detectInstalled"),isUniversal:!0},dexto:{name:"dexto",displayName:"Dexto",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".dexto")),"detectInstalled"),isUniversal:!0},droid:{name:"droid",displayName:"Factory Droid",skillsDir:".factory/skills",globalSkillsDir:join10(home,".factory/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".factory")),"detectInstalled")},firebender:{name:"firebender",displayName:"Firebender",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".firebender/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".firebender")),"detectInstalled"),isUniversal:!0},forgecode:{name:"forgecode",displayName:"ForgeCode",skillsDir:".forge/skills",globalSkillsDir:join10(home,".forge/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".forge")),"detectInstalled")},"gemini-cli":{name:"gemini-cli",displayName:"Gemini CLI",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".gemini/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".gemini")),"detectInstalled"),isUniversal:!0},"github-copilot":{name:"github-copilot",displayName:"GitHub Copilot",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".copilot/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".copilot")),"detectInstalled"),isUniversal:!0},goose:{name:"goose",displayName:"Goose",skillsDir:".goose/skills",globalSkillsDir:join10(configHome,"goose/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"goose")),"detectInstalled")},"iflow-cli":{name:"iflow-cli",displayName:"iFlow CLI",skillsDir:".iflow/skills",globalSkillsDir:join10(home,".iflow/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".iflow")),"detectInstalled")},junie:{name:"junie",displayName:"Junie",skillsDir:".junie/skills",globalSkillsDir:join10(home,".junie/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".junie")),"detectInstalled")},kilo:{name:"kilo",displayName:"Kilo Code",skillsDir:".kilocode/skills",globalSkillsDir:join10(home,".kilocode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kilocode")),"detectInstalled")},"kimi-cli":{name:"kimi-cli",displayName:"Kimi Code CLI",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kimi")),"detectInstalled"),isUniversal:!0},"kiro-cli":{name:"kiro-cli",displayName:"Kiro CLI",skillsDir:".kiro/skills",globalSkillsDir:join10(home,".kiro/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kiro")),"detectInstalled")},kode:{name:"kode",displayName:"Kode",skillsDir:".kode/skills",globalSkillsDir:join10(home,".kode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kode")),"detectInstalled")},mcpjam:{name:"mcpjam",displayName:"MCPJam",skillsDir:".mcpjam/skills",globalSkillsDir:join10(home,".mcpjam/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".mcpjam")),"detectInstalled")},"mistral-vibe":{name:"mistral-vibe",displayName:"Mistral Vibe",skillsDir:".vibe/skills",globalSkillsDir:join10(vibeHome,"skills"),detectInstalled:__name(async()=>existsSync9(vibeHome),"detectInstalled")},mux:{name:"mux",displayName:"Mux",skillsDir:".mux/skills",globalSkillsDir:join10(home,".mux/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".mux")),"detectInstalled")},neovate:{name:"neovate",displayName:"Neovate",skillsDir:".neovate/skills",globalSkillsDir:join10(home,".neovate/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".neovate")),"detectInstalled")},openclaw:{name:"openclaw",displayName:"OpenClaw",skillsDir:"skills",globalSkillsDir:resolveOpenClawGlobalSkillsDir(),detectInstalled:__name(async()=>detectOpenClaw(),"detectInstalled")},opencode:{name:"opencode",displayName:"OpenCode",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"opencode/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"opencode")),"detectInstalled"),isUniversal:!0},openhands:{name:"openhands",displayName:"OpenHands",skillsDir:".openhands/skills",globalSkillsDir:join10(home,".openhands/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".openhands")),"detectInstalled")},pi:{name:"pi",displayName:"Pi",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".pi/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".pi")),"detectInstalled"),isUniversal:!0},pochi:{name:"pochi",displayName:"Pochi",skillsDir:".pochi/skills",globalSkillsDir:join10(home,".pochi/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".pochi")),"detectInstalled")},qoder:{name:"qoder",displayName:"Qoder",skillsDir:".qoder/skills",globalSkillsDir:join10(home,".qoder/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".qoder")),"detectInstalled")},"qwen-code":{name:"qwen-code",displayName:"Qwen Code",skillsDir:".qwen/skills",globalSkillsDir:join10(home,".qwen/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".qwen")),"detectInstalled")},replit:{name:"replit",displayName:"Replit",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".replit")),"detectInstalled"),isUniversal:!0},roo:{name:"roo",displayName:"Roo Code",skillsDir:".roo/skills",globalSkillsDir:join10(home,".roo/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".roo")),"detectInstalled")},rovodev:{name:"rovodev",displayName:"Rovo Dev",skillsDir:".rovodev/skills",globalSkillsDir:join10(home,".rovodev/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".rovodev")),"detectInstalled")},"tabnine-cli":{name:"tabnine-cli",displayName:"Tabnine CLI",skillsDir:".tabnine/agent/skills",globalSkillsDir:join10(home,".tabnine/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".tabnine")),"detectInstalled")},trae:{name:"trae",displayName:"Trae",skillsDir:".trae/skills",globalSkillsDir:join10(home,".trae/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".trae")),"detectInstalled")},"trae-cn":{name:"trae-cn",displayName:"Trae CN",skillsDir:".trae/skills",globalSkillsDir:join10(home,".trae-cn/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".trae-cn")),"detectInstalled")},universal:{name:"universal",displayName:"Universal",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>!1,"detectInstalled"),isUniversal:!0},warp:{name:"warp",displayName:"Warp",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".warp")),"detectInstalled"),isUniversal:!0},windsurf:{name:"windsurf",displayName:"Windsurf",skillsDir:".windsurf/skills",globalSkillsDir:join10(home,".codeium/windsurf/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codeium/windsurf")),"detectInstalled")},zencoder:{name:"zencoder",displayName:"Zencoder",skillsDir:".zencoder/skills",globalSkillsDir:join10(home,".zencoder/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".zencoder")),"detectInstalled")}},getSkillAgentConfig=__name(agentType=>skillAgents[agentType],"getSkillAgentConfig"),isUniversalSkillAgent=__name(agentType=>!!skillAgents[agentType].isUniversal,"isUniversalSkillAgent"),getSkillAgentDir=__name((agentType,options={})=>{let agent=skillAgents[agentType];return options.global??!1?agent.globalSkillsDir??join10(home,agent.skillsDir):join10(options.cwd??process.cwd(),agent.skillsDir)},"getSkillAgentDir"),agentConfigEntries=__name(()=>Object.values(skillAgents).map(config=>[config.name,config]),"agentConfigEntries"),getSkillAgentTypes=__name(()=>agentConfigEntries().map(([name])=>name),"getSkillAgentTypes"),isSkillAgentType=__name(value=>value in skillAgents,"isSkillAgentType"),getUniversalSkillAgents=__name(()=>agentConfigEntries().filter(([name,config])=>config.isUniversal&&name!=="universal").map(([name])=>name),"getUniversalSkillAgents");var detectInstalledSkillAgents=__name(async()=>(await Promise.all(Object.values(skillAgents).map(async config=>({name:config.name,installed:await config.detectInstalled()})))).filter(entry=>entry.installed).map(entry=>entry.name),"detectInstalledSkillAgents"),parseFrontmatter=__name(raw=>{let match=raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!match)return{data:{},content:raw};let parsed=(0,import_yaml4.parse)(match[1]??"");return{data:isPlainObject(parsed)?parsed:{},content:match[2]??""}},"parseFrontmatter"),sanitizeName=__name(name=>name.toLowerCase().replace(/[^a-z0-9._]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").substring(0,255)||"unnamed-skill","sanitizeName"),fetchSkillManifestFromUrl=__name(async url=>{let controller=new AbortController,timer=setTimeout(()=>controller.abort(),DEFAULT_FETCH_TIMEOUT_MS);try{let response=await fetch(url,{signal:controller.signal});if(!response.ok)throw new Error(`Failed to fetch ${url}: HTTP ${response.status}`);let content2=await response.text(),{data}=parseFrontmatter(content2);if(typeof data.name!="string"||!data.name)throw new Error(`Fetched SKILL.md has no "name" in its frontmatter: ${url}`);let skillName=sanitizeName(data.name),baseDir=await mkdtemp(join10(tmpdir2(),"agent-install-url-")),skillDir=join10(baseDir,skillName);return await mkdir(dirname6(join10(skillDir,SKILL_MANIFEST_FILE)),{recursive:!0}),await writeFile(join10(skillDir,SKILL_MANIFEST_FILE),content2,"utf-8"),baseDir}finally{clearTimeout(timer)}},"fetchSkillManifestFromUrl"),isPathSafe=__name((basePath,targetPath)=>{let normalizedBase=normalize(resolve8(basePath)),normalizedTarget=normalize(resolve8(targetPath));return normalizedTarget.startsWith(normalizedBase+sep)||normalizedTarget===normalizedBase},"isPathSafe"),stripTrailingSlash=__name(input=>input.endsWith("/")?input.slice(0,-1):input,"stripTrailingSlash"),TEMP_PREFIX="agent-install-well-known-",SKILL_NAME_PATTERN=/^[a-z0-9]([a-z0-9-]{0,62}[a-z0-9])?$/,WellKnownTimeoutError=class extends Error{static{__name(this,"WellKnownTimeoutError")}constructor(message){super(message),this.name="WellKnownTimeoutError"}},isValidWellKnownEntry=__name(value=>{if(!isPlainObject(value)||typeof value.name!="string"||!value.name||typeof value.description!="string"||!value.description||!Array.isArray(value.files)||value.files.length===0||value.name.length>1&&!SKILL_NAME_PATTERN.test(value.name)||value.name.length===1&&!/^[a-z0-9]$/.test(value.name))return!1;for(let file of value.files)if(typeof file!="string"||file.startsWith("/")||file.startsWith("\\")||file.includes(".."))return!1;return value.files.some(file=>typeof file=="string"&&file.toLowerCase()==="skill.md")},"isValidWellKnownEntry"),fetchOk=__name(async url=>{try{let response=await fetch(url,{signal:AbortSignal.timeout(DEFAULT_FETCH_TIMEOUT_MS)});return response.ok?response:null}catch(error){if(error instanceof DOMException&&error.name==="TimeoutError")throw new WellKnownTimeoutError(`Request timed out: ${url}`);return null}},"fetchOk"),buildIndexCandidates=__name(inputUrl=>{let parsed=new URL(inputUrl),basePath=stripTrailingSlash(parsed.pathname),candidates=[];for(let wellKnownPath of WELL_KNOWN_PATHS)candidates.push({indexUrl:`${parsed.protocol}//${parsed.host}${basePath}/${wellKnownPath}/${WELL_KNOWN_INDEX_FILE}`,baseUrl:`${parsed.protocol}//${parsed.host}${basePath}`,wellKnownPath}),basePath&&candidates.push({indexUrl:`${parsed.protocol}//${parsed.host}/${wellKnownPath}/${WELL_KNOWN_INDEX_FILE}`,baseUrl:`${parsed.protocol}//${parsed.host}`,wellKnownPath});return candidates},"buildIndexCandidates"),extractRequestedSkillName=__name(inputUrl=>{try{let name=new URL(inputUrl).pathname.match(/\/.well-known\/(?:agent-skills|skills)\/([^/]+)\/?$/)?.[1];return name&&name!=="index.json"?name:void 0}catch{return}},"extractRequestedSkillName"),validateIndexEntries=__name(payload=>{if(!isPlainObject(payload))return null;let{skills:skills2}=payload;return!Array.isArray(skills2)||!skills2.every(isValidWellKnownEntry)?null:skills2},"validateIndexEntries"),resolveIndex=__name(async inputUrl=>{for(let candidate of buildIndexCandidates(inputUrl)){let response=await fetchOk(candidate.indexUrl);if(!response)continue;let payload;try{payload=await response.json()}catch{continue}let entries2=validateIndexEntries(payload);if(entries2)return{entries:entries2,baseUrl:candidate.baseUrl,wellKnownPath:candidate.wellKnownPath,requestedSkillName:extractRequestedSkillName(inputUrl)}}return null},"resolveIndex"),writeSkillFiles=__name(async(resolved,entry,rootDir)=>{let skillDir=join10(rootDir,sanitizeName(entry.name));await mkdir(skillDir,{recursive:!0});let skillBaseUrl=`${stripTrailingSlash(resolved.baseUrl)}/${resolved.wellKnownPath}/${entry.name}`,installedAny=!1;return await Promise.all(entry.files.map(async relativePath=>{let targetPath=join10(skillDir,relativePath);if(!isPathSafe(skillDir,targetPath))return;let response=await fetchOk(`${skillBaseUrl}/${relativePath}`);if(!response)return;let content2=await response.text();await mkdir(dirname6(targetPath),{recursive:!0}),await writeFile(targetPath,content2,"utf-8"),installedAny=!0})),installedAny},"writeSkillFiles"),fetchWellKnownSkills=__name(async inputUrl=>{let resolved=await resolveIndex(inputUrl).catch(error=>{throw error instanceof WellKnownTimeoutError?new Error(`Timed out resolving well-known skills index at ${inputUrl}. Set the source's HTTP server to respond faster, or pass a local path.`):error});if(!resolved)throw new Error(`No /.well-known/agent-skills/index.json (or fallback /.well-known/skills/index.json) found at ${inputUrl}`);let entries2=resolved.requestedSkillName?resolved.entries.filter(entry=>entry.name===resolved.requestedSkillName):resolved.entries;if(entries2.length===0)throw new Error(resolved.requestedSkillName?`Skill "${resolved.requestedSkillName}" not found in well-known index at ${inputUrl}`:`Well-known index at ${inputUrl} declares no skills`);let baseDir=await mkdtemp(join10(tmpdir2(),TEMP_PREFIX));if(!(await Promise.all(entries2.map(entry=>writeSkillFiles(resolved,entry,baseDir)))).some(Boolean))throw new Error(`Failed to fetch any skill files from well-known index at ${inputUrl}`);return baseDir},"fetchWellKnownSkills"),readJsonObjectIfExists=__name(async path52=>{try{let content2=await readFile4(path52,"utf-8"),parsed=JSON.parse(content2);return isPlainObject(parsed)?parsed:null}catch{return null}},"readJsonObjectIfExists"),MARKETPLACE_RELATIVE_PATH=".claude-plugin/marketplace.json",PLUGIN_RELATIVE_PATH=".claude-plugin/plugin.json",PLUGIN_SKILLS_SUBDIR="skills",isClaudeRelativePath=__name(input=>typeof input=="string"&&input.startsWith("./"),"isClaudeRelativePath"),stringValueOrEmpty=__name(input=>typeof input=="string"?input:"","stringValueOrEmpty"),resolvePluginRoot=__name(manifest=>{if(!isPlainObject(manifest.metadata))return"";let rawPluginRoot=manifest.metadata.pluginRoot;return rawPluginRoot===void 0?"":isClaudeRelativePath(rawPluginRoot)?rawPluginRoot:null},"resolvePluginRoot"),collectPluginSkillSearchDirs=__name((basePath,pluginBase,rawSkills,searchDirs)=>{if(isPathSafe(basePath,pluginBase)){if(Array.isArray(rawSkills))for(let entry of rawSkills){if(!isClaudeRelativePath(entry))continue;let skillDir=dirname6(join10(pluginBase,entry));isPathSafe(basePath,skillDir)&&searchDirs.push(skillDir)}searchDirs.push(join10(pluginBase,PLUGIN_SKILLS_SUBDIR))}},"collectPluginSkillSearchDirs"),collectPluginGroupings=__name((basePath,pluginBase,pluginName,rawSkills,groupings)=>{if(!(!isPathSafe(basePath,pluginBase)||!Array.isArray(rawSkills)))for(let entry of rawSkills){if(!isClaudeRelativePath(entry))continue;let skillDir=join10(pluginBase,entry);isPathSafe(basePath,skillDir)&&groupings.set(resolve8(skillDir),pluginName)}},"collectPluginGroupings"),getPluginSkillPaths=__name(async basePath=>{let searchDirs=[],marketplace=await readJsonObjectIfExists(join10(basePath,MARKETPLACE_RELATIVE_PATH));if(marketplace){let pluginRoot=resolvePluginRoot(marketplace);if(pluginRoot!==null&&Array.isArray(marketplace.plugins))for(let plugin of marketplace.plugins)isPlainObject(plugin)&&(plugin.source!==void 0&&!isClaudeRelativePath(plugin.source)||collectPluginSkillSearchDirs(basePath,join10(basePath,pluginRoot,stringValueOrEmpty(plugin.source)),plugin.skills,searchDirs))}let single=await readJsonObjectIfExists(join10(basePath,PLUGIN_RELATIVE_PATH));return single&&collectPluginSkillSearchDirs(basePath,basePath,single.skills,searchDirs),searchDirs},"getPluginSkillPaths"),getPluginGroupings=__name(async basePath=>{let groupings=new Map,marketplace=await readJsonObjectIfExists(join10(basePath,MARKETPLACE_RELATIVE_PATH));if(marketplace){let pluginRoot=resolvePluginRoot(marketplace);if(pluginRoot!==null&&Array.isArray(marketplace.plugins))for(let plugin of marketplace.plugins)isPlainObject(plugin)&&(typeof plugin.name!="string"||!plugin.name||plugin.source!==void 0&&!isClaudeRelativePath(plugin.source)||collectPluginGroupings(basePath,join10(basePath,pluginRoot,stringValueOrEmpty(plugin.source)),plugin.name,plugin.skills,groupings))}let single=await readJsonObjectIfExists(join10(basePath,PLUGIN_RELATIVE_PATH));return single&&typeof single.name=="string"&&single.name&&collectPluginGroupings(basePath,basePath,single.name,single.skills,groupings),groupings},"getPluginGroupings"),CLONE_TIMEOUT_ENV_VAR="AGENT_INSTALL_CLONE_TIMEOUT_MS",LEGACY_CLONE_TIMEOUT_ENV_VAR="SKILL_INSTALL_CLONE_TIMEOUT_MS",TEMP_CLONE_PREFIX="agent-install-",GitCloneError=class extends Error{static{__name(this,"GitCloneError")}url;kind;constructor(message,url,kind="unknown"){super(message),this.name="GitCloneError",this.url=url,this.kind=kind}get isTimeout(){return this.kind==="timeout"}get isAuthError(){return this.kind==="auth"}},resolveCloneTimeoutMs=__name(()=>{let raw=process.env[CLONE_TIMEOUT_ENV_VAR]??process.env[LEGACY_CLONE_TIMEOUT_ENV_VAR];if(!raw)return DEFAULT_CLONE_TIMEOUT_MS;let parsed=Number.parseInt(raw,10);return Number.isFinite(parsed)&&parsed>0?parsed:DEFAULT_CLONE_TIMEOUT_MS},"resolveCloneTimeoutMs"),runGit2=__name((args,timeoutMs)=>new Promise(resolvePromise=>{let child=spawn2("git",args,{env:{...process.env,GIT_TERMINAL_PROMPT:"0",GIT_LFS_SKIP_SMUDGE:"1"}}),stderr="",timedOut=!1,timer=setTimeout(()=>{timedOut=!0,child.kill("SIGKILL")},timeoutMs);child.stderr.on("data",chunk=>{stderr+=chunk.toString()}),child.on("close",code2=>{clearTimeout(timer),resolvePromise({code:code2??1,stderr,timedOut})}),child.on("error",err=>{clearTimeout(timer),stderr+=err.message,resolvePromise({code:1,stderr,timedOut})})}),"runGit"),AUTH_ERROR_MARKERS=["Authentication failed","could not read Username","Permission denied","Repository not found"],isAuthErrorMessage=__name(stderr=>AUTH_ERROR_MARKERS.some(marker=>stderr.includes(marker)),"isAuthErrorMessage"),cloneRepo2=__name(async(url,ref)=>{let tempDir=await mkdtemp(join10(tmpdir2(),TEMP_CLONE_PREFIX)),timeoutMs=resolveCloneTimeoutMs(),args=["-c","filter.lfs.required=false","-c","filter.lfs.smudge=","-c","filter.lfs.clean=","-c","filter.lfs.process=","clone","--depth","1"];ref&&args.push("--branch",ref),args.push(url,tempDir);let{code:code2,stderr,timedOut}=await runGit2(args,timeoutMs);if(code2===0)return tempDir;throw await rm(tempDir,{recursive:!0,force:!0}).catch(()=>{}),timedOut?new GitCloneError([`Clone timed out after ${Math.round(timeoutMs/MS_PER_SECOND)}s. Common causes:`,` - Large repository: raise the timeout with ${CLONE_TIMEOUT_ENV_VAR}=600000 (10m)`," - Slow network: retry, or clone manually and pass the local path to 'skill add'"," - Private repo without credentials:"," - For SSH: ssh-add -l (to check loaded keys)"," - For HTTPS: gh auth status (if using GitHub CLI)"].join(`
700
+ `)}__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");import fs36 from"node:fs";import path37 from"node:path";init_dist();init_auth();init_config();init_sdk_transport();import fs34 from"node:fs";import os2 from"node:os";import path34 from"node:path";var isPlainObject=__name(value=>value!==null&&typeof value=="object"&&!Array.isArray(value),"isPlainObject"),toErrorMessage=__name((error,fallback="Unknown error")=>error instanceof Error?error.message:fallback,"toErrorMessage");var import_yaml4=__toESM(require_dist3(),1);import{existsSync as existsSync9}from"node:fs";import{homedir as homedir2,platform as platform2,tmpdir as tmpdir2}from"node:os";import{basename as basename3,dirname as dirname6,isAbsolute as isAbsolute3,join as join10,normalize,relative as relative2,resolve as resolve8,sep}from"node:path";import{cp,lstat,mkdir,mkdtemp,readFile as readFile4,readdir,readlink,realpath,rm,stat,symlink,writeFile}from"node:fs/promises";import{spawn as spawn2}from"node:child_process";var xdgConfigHome=__name(()=>{let explicit=process.env.XDG_CONFIG_HOME?.trim();if(explicit)return explicit;if(platform2()==="win32"){let localAppData=process.env.LOCALAPPDATA?.trim();if(localAppData)return localAppData}return join10(homedir2(),".config")},"xdgConfigHome"),CANONICAL_SKILLS_DIR=".agents/skills",SKILL_MANIFEST_FILE="SKILL.md",DEFAULT_CLONE_TIMEOUT_MS=3e5,DEFAULT_FETCH_TIMEOUT_MS=3e4,MS_PER_SECOND=1e3,SKIP_DISCOVERY_DIRS=new Set(["node_modules",".git","dist","build","__pycache__","coverage",".next",".turbo"]),COPY_EXCLUDE_FILES=new Set(["metadata.json"]),COPY_EXCLUDE_DIRS=new Set([".git","__pycache__","__pypackages__"]),WELL_KNOWN_INDEX_FILE="index.json",WELL_KNOWN_PATHS=[".well-known/agent-skills",".well-known/skills"],home=homedir2(),configHome=xdgConfigHome(),codexHome=process.env.CODEX_HOME?.trim()||join10(home,".codex"),claudeHome=process.env.CLAUDE_CONFIG_DIR?.trim()||join10(home,".claude"),vibeHome=process.env.VIBE_HOME?.trim()||join10(home,".vibe"),resolveOpenClawGlobalSkillsDir=__name(()=>existsSync9(join10(home,".openclaw"))?join10(home,".openclaw/skills"):existsSync9(join10(home,".clawdbot"))?join10(home,".clawdbot/skills"):existsSync9(join10(home,".moltbot"))?join10(home,".moltbot/skills"):join10(home,".openclaw/skills"),"resolveOpenClawGlobalSkillsDir"),detectOpenClaw=__name(()=>existsSync9(join10(home,".openclaw"))||existsSync9(join10(home,".clawdbot"))||existsSync9(join10(home,".moltbot")),"detectOpenClaw"),skillAgents={adal:{name:"adal",displayName:"AdaL",skillsDir:".adal/skills",globalSkillsDir:join10(home,".adal/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".adal")),"detectInstalled")},"aider-desk":{name:"aider-desk",displayName:"AiderDesk",skillsDir:".aider-desk/skills",globalSkillsDir:join10(home,".aider-desk/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".aider-desk")),"detectInstalled")},amp:{name:"amp",displayName:"Amp",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"amp")),"detectInstalled"),isUniversal:!0},antigravity:{name:"antigravity",displayName:"Antigravity",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".gemini/antigravity/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".gemini/antigravity")),"detectInstalled"),isUniversal:!0},augment:{name:"augment",displayName:"Augment",skillsDir:".augment/skills",globalSkillsDir:join10(home,".augment/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".augment")),"detectInstalled")},bob:{name:"bob",displayName:"IBM Bob",skillsDir:".bob/skills",globalSkillsDir:join10(home,".bob/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".bob")),"detectInstalled")},"claude-code":{name:"claude-code",displayName:"Claude Code",skillsDir:".claude/skills",globalSkillsDir:join10(claudeHome,"skills"),detectInstalled:__name(async()=>existsSync9(claudeHome),"detectInstalled")},cline:{name:"cline",displayName:"Cline",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".cline")),"detectInstalled"),isUniversal:!0},"codearts-agent":{name:"codearts-agent",displayName:"CodeArts Agent",skillsDir:".codeartsdoer/skills",globalSkillsDir:join10(home,".codeartsdoer/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codeartsdoer")),"detectInstalled")},codebuddy:{name:"codebuddy",displayName:"CodeBuddy",skillsDir:".codebuddy/skills",globalSkillsDir:join10(home,".codebuddy/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".codebuddy"))||existsSync9(join10(home,".codebuddy")),"detectInstalled")},codemaker:{name:"codemaker",displayName:"Codemaker",skillsDir:".codemaker/skills",globalSkillsDir:join10(home,".codemaker/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codemaker")),"detectInstalled")},codestudio:{name:"codestudio",displayName:"Code Studio",skillsDir:".codestudio/skills",globalSkillsDir:join10(home,".codestudio/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codestudio")),"detectInstalled")},codex:{name:"codex",displayName:"Codex",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(codexHome,"skills"),detectInstalled:__name(async()=>existsSync9(codexHome)||existsSync9("/etc/codex"),"detectInstalled"),isUniversal:!0},"command-code":{name:"command-code",displayName:"Command Code",skillsDir:".commandcode/skills",globalSkillsDir:join10(home,".commandcode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".commandcode")),"detectInstalled")},continue:{name:"continue",displayName:"Continue",skillsDir:".continue/skills",globalSkillsDir:join10(home,".continue/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".continue"))||existsSync9(join10(home,".continue")),"detectInstalled")},cortex:{name:"cortex",displayName:"Cortex Code",skillsDir:".cortex/skills",globalSkillsDir:join10(home,".snowflake/cortex/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".snowflake/cortex")),"detectInstalled")},crush:{name:"crush",displayName:"Crush",skillsDir:".crush/skills",globalSkillsDir:join10(configHome,"crush/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"crush")),"detectInstalled")},cursor:{name:"cursor",displayName:"Cursor",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".cursor/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".cursor")),"detectInstalled"),isUniversal:!0},deepagents:{name:"deepagents",displayName:"Deep Agents",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".deepagents/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".deepagents")),"detectInstalled"),isUniversal:!0},devin:{name:"devin",displayName:"Devin",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"devin/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"devin")),"detectInstalled"),isUniversal:!0},dexto:{name:"dexto",displayName:"Dexto",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".dexto")),"detectInstalled"),isUniversal:!0},droid:{name:"droid",displayName:"Factory Droid",skillsDir:".factory/skills",globalSkillsDir:join10(home,".factory/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".factory")),"detectInstalled")},firebender:{name:"firebender",displayName:"Firebender",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".firebender/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".firebender")),"detectInstalled"),isUniversal:!0},forgecode:{name:"forgecode",displayName:"ForgeCode",skillsDir:".forge/skills",globalSkillsDir:join10(home,".forge/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".forge")),"detectInstalled")},"gemini-cli":{name:"gemini-cli",displayName:"Gemini CLI",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".gemini/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".gemini")),"detectInstalled"),isUniversal:!0},"github-copilot":{name:"github-copilot",displayName:"GitHub Copilot",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".copilot/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".copilot")),"detectInstalled"),isUniversal:!0},goose:{name:"goose",displayName:"Goose",skillsDir:".goose/skills",globalSkillsDir:join10(configHome,"goose/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"goose")),"detectInstalled")},"iflow-cli":{name:"iflow-cli",displayName:"iFlow CLI",skillsDir:".iflow/skills",globalSkillsDir:join10(home,".iflow/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".iflow")),"detectInstalled")},junie:{name:"junie",displayName:"Junie",skillsDir:".junie/skills",globalSkillsDir:join10(home,".junie/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".junie")),"detectInstalled")},kilo:{name:"kilo",displayName:"Kilo Code",skillsDir:".kilocode/skills",globalSkillsDir:join10(home,".kilocode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kilocode")),"detectInstalled")},"kimi-cli":{name:"kimi-cli",displayName:"Kimi Code CLI",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kimi")),"detectInstalled"),isUniversal:!0},"kiro-cli":{name:"kiro-cli",displayName:"Kiro CLI",skillsDir:".kiro/skills",globalSkillsDir:join10(home,".kiro/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kiro")),"detectInstalled")},kode:{name:"kode",displayName:"Kode",skillsDir:".kode/skills",globalSkillsDir:join10(home,".kode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kode")),"detectInstalled")},mcpjam:{name:"mcpjam",displayName:"MCPJam",skillsDir:".mcpjam/skills",globalSkillsDir:join10(home,".mcpjam/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".mcpjam")),"detectInstalled")},"mistral-vibe":{name:"mistral-vibe",displayName:"Mistral Vibe",skillsDir:".vibe/skills",globalSkillsDir:join10(vibeHome,"skills"),detectInstalled:__name(async()=>existsSync9(vibeHome),"detectInstalled")},mux:{name:"mux",displayName:"Mux",skillsDir:".mux/skills",globalSkillsDir:join10(home,".mux/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".mux")),"detectInstalled")},neovate:{name:"neovate",displayName:"Neovate",skillsDir:".neovate/skills",globalSkillsDir:join10(home,".neovate/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".neovate")),"detectInstalled")},openclaw:{name:"openclaw",displayName:"OpenClaw",skillsDir:"skills",globalSkillsDir:resolveOpenClawGlobalSkillsDir(),detectInstalled:__name(async()=>detectOpenClaw(),"detectInstalled")},opencode:{name:"opencode",displayName:"OpenCode",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"opencode/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"opencode")),"detectInstalled"),isUniversal:!0},openhands:{name:"openhands",displayName:"OpenHands",skillsDir:".openhands/skills",globalSkillsDir:join10(home,".openhands/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".openhands")),"detectInstalled")},pi:{name:"pi",displayName:"Pi",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".pi/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".pi")),"detectInstalled"),isUniversal:!0},pochi:{name:"pochi",displayName:"Pochi",skillsDir:".pochi/skills",globalSkillsDir:join10(home,".pochi/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".pochi")),"detectInstalled")},qoder:{name:"qoder",displayName:"Qoder",skillsDir:".qoder/skills",globalSkillsDir:join10(home,".qoder/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".qoder")),"detectInstalled")},"qwen-code":{name:"qwen-code",displayName:"Qwen Code",skillsDir:".qwen/skills",globalSkillsDir:join10(home,".qwen/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".qwen")),"detectInstalled")},replit:{name:"replit",displayName:"Replit",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".replit")),"detectInstalled"),isUniversal:!0},roo:{name:"roo",displayName:"Roo Code",skillsDir:".roo/skills",globalSkillsDir:join10(home,".roo/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".roo")),"detectInstalled")},rovodev:{name:"rovodev",displayName:"Rovo Dev",skillsDir:".rovodev/skills",globalSkillsDir:join10(home,".rovodev/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".rovodev")),"detectInstalled")},"tabnine-cli":{name:"tabnine-cli",displayName:"Tabnine CLI",skillsDir:".tabnine/agent/skills",globalSkillsDir:join10(home,".tabnine/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".tabnine")),"detectInstalled")},trae:{name:"trae",displayName:"Trae",skillsDir:".trae/skills",globalSkillsDir:join10(home,".trae/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".trae")),"detectInstalled")},"trae-cn":{name:"trae-cn",displayName:"Trae CN",skillsDir:".trae/skills",globalSkillsDir:join10(home,".trae-cn/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".trae-cn")),"detectInstalled")},universal:{name:"universal",displayName:"Universal",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>!1,"detectInstalled"),isUniversal:!0},warp:{name:"warp",displayName:"Warp",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".warp")),"detectInstalled"),isUniversal:!0},windsurf:{name:"windsurf",displayName:"Windsurf",skillsDir:".windsurf/skills",globalSkillsDir:join10(home,".codeium/windsurf/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codeium/windsurf")),"detectInstalled")},zencoder:{name:"zencoder",displayName:"Zencoder",skillsDir:".zencoder/skills",globalSkillsDir:join10(home,".zencoder/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".zencoder")),"detectInstalled")}},getSkillAgentConfig=__name(agentType=>skillAgents[agentType],"getSkillAgentConfig"),isUniversalSkillAgent=__name(agentType=>!!skillAgents[agentType].isUniversal,"isUniversalSkillAgent"),getSkillAgentDir=__name((agentType,options={})=>{let agent=skillAgents[agentType];return options.global??!1?agent.globalSkillsDir??join10(home,agent.skillsDir):join10(options.cwd??process.cwd(),agent.skillsDir)},"getSkillAgentDir"),agentConfigEntries=__name(()=>Object.values(skillAgents).map(config=>[config.name,config]),"agentConfigEntries"),getSkillAgentTypes=__name(()=>agentConfigEntries().map(([name])=>name),"getSkillAgentTypes"),isSkillAgentType=__name(value=>value in skillAgents,"isSkillAgentType"),getUniversalSkillAgents=__name(()=>agentConfigEntries().filter(([name,config])=>config.isUniversal&&name!=="universal").map(([name])=>name),"getUniversalSkillAgents");var detectInstalledSkillAgents=__name(async()=>(await Promise.all(Object.values(skillAgents).map(async config=>({name:config.name,installed:await config.detectInstalled()})))).filter(entry=>entry.installed).map(entry=>entry.name),"detectInstalledSkillAgents"),parseFrontmatter=__name(raw=>{let match=raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!match)return{data:{},content:raw};let parsed=(0,import_yaml4.parse)(match[1]??"");return{data:isPlainObject(parsed)?parsed:{},content:match[2]??""}},"parseFrontmatter"),sanitizeName=__name(name=>name.toLowerCase().replace(/[^a-z0-9._]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").substring(0,255)||"unnamed-skill","sanitizeName"),fetchSkillManifestFromUrl=__name(async url=>{let controller=new AbortController,timer=setTimeout(()=>controller.abort(),DEFAULT_FETCH_TIMEOUT_MS);try{let response=await fetch(url,{signal:controller.signal});if(!response.ok)throw new Error(`Failed to fetch ${url}: HTTP ${response.status}`);let content2=await response.text(),{data}=parseFrontmatter(content2);if(typeof data.name!="string"||!data.name)throw new Error(`Fetched SKILL.md has no "name" in its frontmatter: ${url}`);let skillName=sanitizeName(data.name),baseDir=await mkdtemp(join10(tmpdir2(),"agent-install-url-")),skillDir=join10(baseDir,skillName);return await mkdir(dirname6(join10(skillDir,SKILL_MANIFEST_FILE)),{recursive:!0}),await writeFile(join10(skillDir,SKILL_MANIFEST_FILE),content2,"utf-8"),baseDir}finally{clearTimeout(timer)}},"fetchSkillManifestFromUrl"),isPathSafe=__name((basePath,targetPath)=>{let normalizedBase=normalize(resolve8(basePath)),normalizedTarget=normalize(resolve8(targetPath));return normalizedTarget.startsWith(normalizedBase+sep)||normalizedTarget===normalizedBase},"isPathSafe"),stripTrailingSlash=__name(input=>input.endsWith("/")?input.slice(0,-1):input,"stripTrailingSlash"),TEMP_PREFIX="agent-install-well-known-",SKILL_NAME_PATTERN=/^[a-z0-9]([a-z0-9-]{0,62}[a-z0-9])?$/,WellKnownTimeoutError=class extends Error{static{__name(this,"WellKnownTimeoutError")}constructor(message){super(message),this.name="WellKnownTimeoutError"}},isValidWellKnownEntry=__name(value=>{if(!isPlainObject(value)||typeof value.name!="string"||!value.name||typeof value.description!="string"||!value.description||!Array.isArray(value.files)||value.files.length===0||value.name.length>1&&!SKILL_NAME_PATTERN.test(value.name)||value.name.length===1&&!/^[a-z0-9]$/.test(value.name))return!1;for(let file of value.files)if(typeof file!="string"||file.startsWith("/")||file.startsWith("\\")||file.includes(".."))return!1;return value.files.some(file=>typeof file=="string"&&file.toLowerCase()==="skill.md")},"isValidWellKnownEntry"),fetchOk=__name(async url=>{try{let response=await fetch(url,{signal:AbortSignal.timeout(DEFAULT_FETCH_TIMEOUT_MS)});return response.ok?response:null}catch(error){if(error instanceof DOMException&&error.name==="TimeoutError")throw new WellKnownTimeoutError(`Request timed out: ${url}`);return null}},"fetchOk"),buildIndexCandidates=__name(inputUrl=>{let parsed=new URL(inputUrl),basePath=stripTrailingSlash(parsed.pathname),candidates=[];for(let wellKnownPath of WELL_KNOWN_PATHS)candidates.push({indexUrl:`${parsed.protocol}//${parsed.host}${basePath}/${wellKnownPath}/${WELL_KNOWN_INDEX_FILE}`,baseUrl:`${parsed.protocol}//${parsed.host}${basePath}`,wellKnownPath}),basePath&&candidates.push({indexUrl:`${parsed.protocol}//${parsed.host}/${wellKnownPath}/${WELL_KNOWN_INDEX_FILE}`,baseUrl:`${parsed.protocol}//${parsed.host}`,wellKnownPath});return candidates},"buildIndexCandidates"),extractRequestedSkillName=__name(inputUrl=>{try{let name=new URL(inputUrl).pathname.match(/\/.well-known\/(?:agent-skills|skills)\/([^/]+)\/?$/)?.[1];return name&&name!=="index.json"?name:void 0}catch{return}},"extractRequestedSkillName"),validateIndexEntries=__name(payload=>{if(!isPlainObject(payload))return null;let{skills:skills2}=payload;return!Array.isArray(skills2)||!skills2.every(isValidWellKnownEntry)?null:skills2},"validateIndexEntries"),resolveIndex=__name(async inputUrl=>{for(let candidate of buildIndexCandidates(inputUrl)){let response=await fetchOk(candidate.indexUrl);if(!response)continue;let payload;try{payload=await response.json()}catch{continue}let entries2=validateIndexEntries(payload);if(entries2)return{entries:entries2,baseUrl:candidate.baseUrl,wellKnownPath:candidate.wellKnownPath,requestedSkillName:extractRequestedSkillName(inputUrl)}}return null},"resolveIndex"),writeSkillFiles=__name(async(resolved,entry,rootDir)=>{let skillDir=join10(rootDir,sanitizeName(entry.name));await mkdir(skillDir,{recursive:!0});let skillBaseUrl=`${stripTrailingSlash(resolved.baseUrl)}/${resolved.wellKnownPath}/${entry.name}`,installedAny=!1;return await Promise.all(entry.files.map(async relativePath=>{let targetPath=join10(skillDir,relativePath);if(!isPathSafe(skillDir,targetPath))return;let response=await fetchOk(`${skillBaseUrl}/${relativePath}`);if(!response)return;let content2=await response.text();await mkdir(dirname6(targetPath),{recursive:!0}),await writeFile(targetPath,content2,"utf-8"),installedAny=!0})),installedAny},"writeSkillFiles"),fetchWellKnownSkills=__name(async inputUrl=>{let resolved=await resolveIndex(inputUrl).catch(error=>{throw error instanceof WellKnownTimeoutError?new Error(`Timed out resolving well-known skills index at ${inputUrl}. Set the source's HTTP server to respond faster, or pass a local path.`):error});if(!resolved)throw new Error(`No /.well-known/agent-skills/index.json (or fallback /.well-known/skills/index.json) found at ${inputUrl}`);let entries2=resolved.requestedSkillName?resolved.entries.filter(entry=>entry.name===resolved.requestedSkillName):resolved.entries;if(entries2.length===0)throw new Error(resolved.requestedSkillName?`Skill "${resolved.requestedSkillName}" not found in well-known index at ${inputUrl}`:`Well-known index at ${inputUrl} declares no skills`);let baseDir=await mkdtemp(join10(tmpdir2(),TEMP_PREFIX));if(!(await Promise.all(entries2.map(entry=>writeSkillFiles(resolved,entry,baseDir)))).some(Boolean))throw new Error(`Failed to fetch any skill files from well-known index at ${inputUrl}`);return baseDir},"fetchWellKnownSkills"),readJsonObjectIfExists=__name(async path52=>{try{let content2=await readFile4(path52,"utf-8"),parsed=JSON.parse(content2);return isPlainObject(parsed)?parsed:null}catch{return null}},"readJsonObjectIfExists"),MARKETPLACE_RELATIVE_PATH=".claude-plugin/marketplace.json",PLUGIN_RELATIVE_PATH=".claude-plugin/plugin.json",PLUGIN_SKILLS_SUBDIR="skills",isClaudeRelativePath=__name(input=>typeof input=="string"&&input.startsWith("./"),"isClaudeRelativePath"),stringValueOrEmpty=__name(input=>typeof input=="string"?input:"","stringValueOrEmpty"),resolvePluginRoot=__name(manifest=>{if(!isPlainObject(manifest.metadata))return"";let rawPluginRoot=manifest.metadata.pluginRoot;return rawPluginRoot===void 0?"":isClaudeRelativePath(rawPluginRoot)?rawPluginRoot:null},"resolvePluginRoot"),collectPluginSkillSearchDirs=__name((basePath,pluginBase,rawSkills,searchDirs)=>{if(isPathSafe(basePath,pluginBase)){if(Array.isArray(rawSkills))for(let entry of rawSkills){if(!isClaudeRelativePath(entry))continue;let skillDir=dirname6(join10(pluginBase,entry));isPathSafe(basePath,skillDir)&&searchDirs.push(skillDir)}searchDirs.push(join10(pluginBase,PLUGIN_SKILLS_SUBDIR))}},"collectPluginSkillSearchDirs"),collectPluginGroupings=__name((basePath,pluginBase,pluginName,rawSkills,groupings)=>{if(!(!isPathSafe(basePath,pluginBase)||!Array.isArray(rawSkills)))for(let entry of rawSkills){if(!isClaudeRelativePath(entry))continue;let skillDir=join10(pluginBase,entry);isPathSafe(basePath,skillDir)&&groupings.set(resolve8(skillDir),pluginName)}},"collectPluginGroupings"),getPluginSkillPaths=__name(async basePath=>{let searchDirs=[],marketplace=await readJsonObjectIfExists(join10(basePath,MARKETPLACE_RELATIVE_PATH));if(marketplace){let pluginRoot=resolvePluginRoot(marketplace);if(pluginRoot!==null&&Array.isArray(marketplace.plugins))for(let plugin of marketplace.plugins)isPlainObject(plugin)&&(plugin.source!==void 0&&!isClaudeRelativePath(plugin.source)||collectPluginSkillSearchDirs(basePath,join10(basePath,pluginRoot,stringValueOrEmpty(plugin.source)),plugin.skills,searchDirs))}let single=await readJsonObjectIfExists(join10(basePath,PLUGIN_RELATIVE_PATH));return single&&collectPluginSkillSearchDirs(basePath,basePath,single.skills,searchDirs),searchDirs},"getPluginSkillPaths"),getPluginGroupings=__name(async basePath=>{let groupings=new Map,marketplace=await readJsonObjectIfExists(join10(basePath,MARKETPLACE_RELATIVE_PATH));if(marketplace){let pluginRoot=resolvePluginRoot(marketplace);if(pluginRoot!==null&&Array.isArray(marketplace.plugins))for(let plugin of marketplace.plugins)isPlainObject(plugin)&&(typeof plugin.name!="string"||!plugin.name||plugin.source!==void 0&&!isClaudeRelativePath(plugin.source)||collectPluginGroupings(basePath,join10(basePath,pluginRoot,stringValueOrEmpty(plugin.source)),plugin.name,plugin.skills,groupings))}let single=await readJsonObjectIfExists(join10(basePath,PLUGIN_RELATIVE_PATH));return single&&typeof single.name=="string"&&single.name&&collectPluginGroupings(basePath,basePath,single.name,single.skills,groupings),groupings},"getPluginGroupings"),CLONE_TIMEOUT_ENV_VAR="AGENT_INSTALL_CLONE_TIMEOUT_MS",LEGACY_CLONE_TIMEOUT_ENV_VAR="SKILL_INSTALL_CLONE_TIMEOUT_MS",TEMP_CLONE_PREFIX="agent-install-",GitCloneError=class extends Error{static{__name(this,"GitCloneError")}url;kind;constructor(message,url,kind="unknown"){super(message),this.name="GitCloneError",this.url=url,this.kind=kind}get isTimeout(){return this.kind==="timeout"}get isAuthError(){return this.kind==="auth"}},resolveCloneTimeoutMs=__name(()=>{let raw=process.env[CLONE_TIMEOUT_ENV_VAR]??process.env[LEGACY_CLONE_TIMEOUT_ENV_VAR];if(!raw)return DEFAULT_CLONE_TIMEOUT_MS;let parsed=Number.parseInt(raw,10);return Number.isFinite(parsed)&&parsed>0?parsed:DEFAULT_CLONE_TIMEOUT_MS},"resolveCloneTimeoutMs"),runGit2=__name((args,timeoutMs)=>new Promise(resolvePromise=>{let child=spawn2("git",args,{env:{...process.env,GIT_TERMINAL_PROMPT:"0",GIT_LFS_SKIP_SMUDGE:"1"}}),stderr="",timedOut=!1,timer=setTimeout(()=>{timedOut=!0,child.kill("SIGKILL")},timeoutMs);child.stderr.on("data",chunk=>{stderr+=chunk.toString()}),child.on("close",code2=>{clearTimeout(timer),resolvePromise({code:code2??1,stderr,timedOut})}),child.on("error",err=>{clearTimeout(timer),stderr+=err.message,resolvePromise({code:1,stderr,timedOut})})}),"runGit"),AUTH_ERROR_MARKERS=["Authentication failed","could not read Username","Permission denied","Repository not found"],isAuthErrorMessage=__name(stderr=>AUTH_ERROR_MARKERS.some(marker=>stderr.includes(marker)),"isAuthErrorMessage"),cloneRepo2=__name(async(url,ref)=>{let tempDir=await mkdtemp(join10(tmpdir2(),TEMP_CLONE_PREFIX)),timeoutMs=resolveCloneTimeoutMs(),args=["-c","filter.lfs.required=false","-c","filter.lfs.smudge=","-c","filter.lfs.clean=","-c","filter.lfs.process=","clone","--depth","1"];ref&&args.push("--branch",ref),args.push(url,tempDir);let{code:code2,stderr,timedOut}=await runGit2(args,timeoutMs);if(code2===0)return tempDir;throw await rm(tempDir,{recursive:!0,force:!0}).catch(()=>{}),timedOut?new GitCloneError([`Clone timed out after ${Math.round(timeoutMs/MS_PER_SECOND)}s. Common causes:`,` - Large repository: raise the timeout with ${CLONE_TIMEOUT_ENV_VAR}=600000 (10m)`," - Slow network: retry, or clone manually and pass the local path to 'skill add'"," - Private repo without credentials:"," - For SSH: ssh-add -l (to check loaded keys)"," - For HTTPS: gh auth status (if using GitHub CLI)"].join(`
716
701
  `),url,"timeout"):isAuthErrorMessage(stderr)?new GitCloneError([`Authentication failed for ${url}.`," - For private repos, ensure you have access"," - For SSH: check your keys with 'ssh -T git@github.com'"," - For HTTPS: run 'gh auth login' or configure git credentials"].join(`
717
702
  `),url,"auth"):new GitCloneError(`Failed to clone ${url}: ${stderr.trim()||"unknown error"}`,url)},"cloneRepo"),cleanupTempDir=__name(async dir=>{let normalizedDir=normalize(resolve8(dir)),normalizedTmpDir=normalize(resolve8(tmpdir2()));if(!normalizedDir.startsWith(normalizedTmpDir+sep)&&normalizedDir!==normalizedTmpDir)throw new Error("Attempted to clean up directory outside of temp directory");await rm(dir,{recursive:!0,force:!0})},"cleanupTempDir"),getCanonicalSkillsDir=__name((isGlobal,cwd)=>join10(isGlobal?homedir2():cwd||process.cwd(),CANONICAL_SKILLS_DIR),"getCanonicalSkillsDir"),getSkillAgentBaseDir=__name((agentType,isGlobal,cwd)=>{if(isUniversalSkillAgent(agentType))return getCanonicalSkillsDir(isGlobal,cwd);let agent=getSkillAgentConfig(agentType),baseDir=isGlobal?homedir2():cwd||process.cwd();return isGlobal?agent.globalSkillsDir??join10(baseDir,agent.skillsDir):join10(baseDir,agent.skillsDir)},"getSkillAgentBaseDir"),cleanAndCreateDirectory=__name(async path52=>{await rm(path52,{recursive:!0,force:!0}).catch(()=>{}),await mkdir(path52,{recursive:!0})},"cleanAndCreateDirectory"),resolveSymlinkTarget=__name((linkPath,linkTarget)=>resolve8(dirname6(linkPath),linkTarget),"resolveSymlinkTarget"),resolveParentSymlinks=__name(async path52=>{let resolved=resolve8(path52),parentDir=dirname6(resolved),name=basename3(resolved);try{return join10(await realpath(parentDir),name)}catch{return resolved}},"resolveParentSymlinks"),isPathInsideBase=__name((basePath,targetPath)=>{let normalizedBase=resolve8(basePath),normalizedTarget=resolve8(targetPath);return normalizedTarget===normalizedBase||normalizedTarget.startsWith(normalizedBase+sep)},"isPathInsideBase"),copyDirectory=__name(async(src,dest,rootSrc=src)=>{await mkdir(dest,{recursive:!0});let entries2=await readdir(src,{withFileTypes:!0});await Promise.all(entries2.filter(entry=>!COPY_EXCLUDE_FILES.has(entry.name)&&!(entry.isDirectory()&&COPY_EXCLUDE_DIRS.has(entry.name))).map(async entry=>{let srcPath=join10(src,entry.name),destPath=join10(dest,entry.name);if(entry.isSymbolicLink()){let linkRealPath=await realpath(srcPath).catch(()=>null);if(!linkRealPath||!isPathInsideBase(rootSrc,linkRealPath))return;await cp(srcPath,destPath,{dereference:!0,recursive:!0});return}if(entry.isDirectory()){await copyDirectory(srcPath,destPath,rootSrc);return}await cp(srcPath,destPath,{dereference:!1,recursive:!0})}))},"copyDirectory"),isLoopError=__name(error=>!!(error&&typeof error=="object"&&"code"in error&&error.code==="ELOOP"),"isLoopError"),createSymlink=__name(async(target,linkPath)=>{try{let resolvedTarget=resolve8(target),resolvedLinkPath=resolve8(linkPath),[realTarget,realLinkPath]=await Promise.all([realpath(resolvedTarget).catch(()=>resolvedTarget),realpath(resolvedLinkPath).catch(()=>resolvedLinkPath)]);if(realTarget===realLinkPath)return!0;let[realTargetWithParents,realLinkPathWithParents]=await Promise.all([resolveParentSymlinks(target),resolveParentSymlinks(linkPath)]);if(realTargetWithParents===realLinkPathWithParents)return!0;try{if((await lstat(linkPath)).isSymbolicLink()){if(resolveSymlinkTarget(linkPath,await readlink(linkPath))===resolvedTarget)return!0;await rm(linkPath)}else await rm(linkPath,{recursive:!0})}catch(error){isLoopError(error)&&await rm(linkPath,{force:!0}).catch(()=>{})}let linkDir=dirname6(linkPath);return await mkdir(linkDir,{recursive:!0}),await symlink(relative2(await resolveParentSymlinks(linkDir),target),linkPath,platform2()==="win32"?"junction":void 0),!0}catch{return!1}},"createSymlink"),installByCopy=__name(async(skill,destination)=>(await cleanAndCreateDirectory(destination),await copyDirectory(skill.path,destination),{success:!0,path:destination,mode:"copy"}),"installByCopy"),installBySymlink=__name(async(skill,agentType,canonicalDir,agentDir,isGlobal)=>(await cleanAndCreateDirectory(canonicalDir),await copyDirectory(skill.path,canonicalDir),isGlobal&&isUniversalSkillAgent(agentType)?{success:!0,path:canonicalDir,canonicalPath:canonicalDir,mode:"symlink"}:await createSymlink(canonicalDir,agentDir)?{success:!0,path:agentDir,canonicalPath:canonicalDir,mode:"symlink"}:(await cleanAndCreateDirectory(agentDir),await copyDirectory(skill.path,agentDir),{success:!0,path:agentDir,canonicalPath:canonicalDir,mode:"symlink",symlinkFailed:!0})),"installBySymlink"),installSkillForAgent=__name(async(skill,agentType,options={})=>{let agent=skillAgents[agentType],isGlobal=options.global??!1,cwd=options.cwd||process.cwd(),installMode=options.mode??"symlink";if(isGlobal&&agent.globalSkillsDir===void 0)return{success:!1,path:"",mode:installMode,error:`${agent.displayName} does not support global skill installation`};let skillName=sanitizeName(skill.name||basename3(skill.path)),canonicalBase=getCanonicalSkillsDir(isGlobal,cwd),canonicalDir=join10(canonicalBase,skillName),agentBase=getSkillAgentBaseDir(agentType,isGlobal,cwd),agentDir=join10(agentBase,skillName);if(!isPathSafe(canonicalBase,canonicalDir)||!isPathSafe(agentBase,agentDir))return{success:!1,path:agentDir,mode:installMode,error:"Invalid skill name: potential path traversal detected"};try{return installMode==="copy"?await installByCopy(skill,agentDir):await installBySymlink(skill,agentType,canonicalDir,agentDir,isGlobal)}catch(error){return{success:!1,path:agentDir,mode:installMode,error:toErrorMessage(error)}}},"installSkillForAgent");var OSC_RE=/\x1b\][\s\S]*?(?:\x07|\x1b\\)/g,DCS_PM_APC_RE=/\x1b[P^_][\s\S]*?(?:\x1b\\)/g,CSI_RE=/\x1b\[[\x30-\x3f]*[\x20-\x2f]*[\x40-\x7e]/g,SIMPLE_ESC_RE=/\x1b[\x20-\x7e]/g,C1_RE=/[\x80-\x9f]/g,CONTROL_RE2=/[\x00-\x06\x07\x08\x0b\x0c\x0d-\x1a\x1c-\x1f\x7f]/g,stripTerminalEscapes=__name(input=>input.replace(OSC_RE,"").replace(DCS_PM_APC_RE,"").replace(CSI_RE,"").replace(SIMPLE_ESC_RE,"").replace(C1_RE,"").replace(CONTROL_RE2,""),"stripTerminalEscapes"),sanitizeMetadata=__name(input=>stripTerminalEscapes(input).replace(/[\r\n]+/g," ").trim(),"sanitizeMetadata"),PRIORITY_RELATIVE_PATHS=["","skills","skills/.curated","skills/.experimental","skills/.system",".agents/skills",".aider-desk/skills",".augment/skills",".bob/skills",".claude/skills",".cline/skills",".codeartsdoer/skills",".codebuddy/skills",".codemaker/skills",".codestudio/skills",".codex/skills",".commandcode/skills",".continue/skills",".cortex/skills",".crush/skills",".cursor/skills",".factory/skills",".forge/skills",".gemini/skills",".github/skills",".goose/skills",".iflow/skills",".junie/skills",".kilocode/skills",".kiro/skills",".kode/skills",".mcpjam/skills",".mux/skills",".neovate/skills",".openhands/skills",".pi/skills",".pochi/skills",".qoder/skills",".qwen/skills",".roo/skills",".rovodev/skills",".tabnine/agent/skills",".trae/skills",".vibe/skills",".windsurf/skills",".zencoder/skills"],hasSkillManifest=__name(async dir=>{try{return(await stat(join10(dir,SKILL_MANIFEST_FILE))).isFile()}catch{return!1}},"hasSkillManifest"),parseSkillManifest=__name(async manifestPath=>{try{let content2=await readFile4(manifestPath,"utf-8"),{data}=parseFrontmatter(content2);if(typeof data.name!="string"||typeof data.description!="string"||!data.name||!data.description)return null;let metadata=isPlainObject(data.metadata)?data.metadata:void 0;return{name:sanitizeMetadata(data.name),description:sanitizeMetadata(data.description),path:dirname6(manifestPath),rawContent:content2,metadata}}catch{return null}},"parseSkillManifest"),findSkillDirs=__name(async(dir,depth=0)=>{if(depth>5)return[];try{let[hasManifest,entries2]=await Promise.all([hasSkillManifest(dir),readdir(dir,{withFileTypes:!0}).catch(()=>[])]),currentDir=hasManifest?[dir]:[],subDirResults=await Promise.all(entries2.filter(entry=>entry.isDirectory()&&!SKIP_DISCOVERY_DIRS.has(entry.name)).map(entry=>findSkillDirs(join10(dir,entry.name),depth+1)));return[...currentDir,...subDirResults.flat()]}catch{return[]}},"findSkillDirs"),discoverSkills=__name(async(basePath,subpath,options)=>{if(subpath&&!isPathSafe(basePath,join10(basePath,subpath)))throw new Error(`Invalid subpath: "${subpath}" resolves outside the base directory. Subpath must not contain ".." segments that escape the base path.`);let searchPath=subpath?join10(basePath,subpath):basePath,seenNames=new Set,results=[],pluginGroupings=await getPluginGroupings(searchPath),enhanceSkill=__name(skill=>{let pluginName=pluginGroupings.get(resolve8(skill.path));return pluginName?{...skill,pluginName}:skill},"enhanceSkill"),pluginExtraDirs=await getPluginSkillPaths(searchPath);if(await hasSkillManifest(searchPath)){let skill=await parseSkillManifest(join10(searchPath,SKILL_MANIFEST_FILE));if(skill&&(results.push(enhanceSkill(skill)),seenNames.add(skill.name),!options?.fullDepth))return results}let prioritySearchDirs=[...PRIORITY_RELATIVE_PATHS.map(relative3=>relative3?join10(searchPath,relative3):searchPath),...pluginExtraDirs];for(let dir of prioritySearchDirs)try{let entries2=await readdir(dir,{withFileTypes:!0});for(let entry of entries2){if(!entry.isDirectory())continue;let skillDir=join10(dir,entry.name);if(!await hasSkillManifest(skillDir))continue;let skill=await parseSkillManifest(join10(skillDir,SKILL_MANIFEST_FILE));skill&&!seenNames.has(skill.name)&&(results.push(enhanceSkill(skill)),seenNames.add(skill.name))}}catch{}if(results.length===0||options?.fullDepth){let allSkillDirs=await findSkillDirs(searchPath);for(let skillDir of allSkillDirs){let skill=await parseSkillManifest(join10(skillDir,SKILL_MANIFEST_FILE));skill&&!seenNames.has(skill.name)&&(results.push(enhanceSkill(skill)),seenNames.add(skill.name))}}return results},"discoverSkills"),getSkillDisplayName=__name(skill=>skill.name||basename3(skill.path),"getSkillDisplayName"),filterSkillsByName=__name((skills2,inputNames)=>{let normalizedInputs=inputNames.map(inputName=>inputName.toLowerCase());return skills2.filter(skill=>{let name=skill.name.toLowerCase(),displayName=getSkillDisplayName(skill).toLowerCase();return normalizedInputs.some(inputName=>inputName===name||inputName===displayName)})},"filterSkillsByName"),escapeRegex=__name(input=>input.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"escapeRegex"),sanitizeSubpath=__name(subpath=>{let segments=subpath.replace(/\\/g,"/").split("/");for(let segment of segments)if(segment==="..")throw new Error(`Unsafe subpath: "${subpath}" contains path traversal segments. Subpaths must not contain ".." components.`);return subpath},"sanitizeSubpath"),HOST_CONFIGS=[{host:"github",domain:"github.com",prefix:"github:",treePrefix:"/tree/",anchorRepo:!1},{host:"gitlab",domain:"gitlab.com",prefix:"gitlab:",treePrefix:"/-/tree/",anchorRepo:!0}],HOST_BY_NAME=new Map(HOST_CONFIGS.map(config=>[config.host,config])),HOST_BY_DOMAIN=new Map(HOST_CONFIGS.map(config=>[config.domain,config])),SSH_URL_PATTERN=/^git@([^:]+):([^/]+)\/([^/]+?)(?:\.git)?$/,isLocalPath=__name(input=>isAbsolute3(input)||input.startsWith("./")||input.startsWith("../")||input==="."||input===".."||/^[a-zA-Z]:[/\\]/.test(input),"isLocalPath"),isShorthandCandidate=__name(input=>!input.includes(":")&&!input.startsWith(".")&&!input.startsWith("/"),"isShorthandCandidate"),buildHostedSource=__name(({host,owner,repo,ref,subpath,skillFilter})=>{let config=HOST_BY_NAME.get(host);if(!config)throw new Error(`Unknown host: ${host}`);let cleanRepo=repo.replace(/\.git$/,""),result={type:host,url:`https://${config.domain}/${owner}/${cleanRepo}.git`};return ref&&(result.ref=ref),subpath&&(result.subpath=sanitizeSubpath(subpath)),skillFilter&&(result.skillFilter=skillFilter),result},"buildHostedSource"),buildHostUrlPatterns=__name(config=>{let domain=escapeRegex(config.domain),treePrefix=escapeRegex(config.treePrefix),repoPattern=config.anchorRepo?`${domain}/([^/]+)/([^/]+?)(?:\\.git)?/?$`:`${domain}/([^/]+)/([^/]+)`;return{treeWithPath:new RegExp(`${domain}/([^/]+)/([^/]+)${treePrefix}([^/]+)/(.+)`),tree:new RegExp(`${domain}/([^/]+)/([^/]+)${treePrefix}([^/]+)$`),repo:new RegExp(repoPattern)}},"buildHostUrlPatterns"),HOST_URL_PATTERNS=new Map(HOST_CONFIGS.map(config=>[config.host,buildHostUrlPatterns(config)])),decodeFragmentValue=__name(value=>{try{return decodeURIComponent(value)}catch{return value}},"decodeFragmentValue"),looksLikeGitSource=__name(input=>{if(input.startsWith("git@")||HOST_CONFIGS.some(config=>input.startsWith(config.prefix)))return!0;if(input.startsWith("http://")||input.startsWith("https://"))try{let parsed=new URL(input),config=HOST_BY_DOMAIN.get(parsed.hostname);if(config){let treePrefix=escapeRegex(config.treePrefix);return new RegExp(`^/[^/]+/[^/]+(?:\\.git)?(?:${treePrefix}[^/]+(?:/.*)?)?/?$`).test(parsed.pathname)}}catch{return!1}return/^https?:\/\/.+\.git(?:$|[/?])/i.test(input)?!0:isShorthandCandidate(input)&&/^([^/]+)\/([^/]+)(?:\/(.+)|@(.+))?$/.test(input)},"looksLikeGitSource"),parseFragmentRef=__name(input=>{let hashIndex=input.indexOf("#");if(hashIndex<0)return{inputWithoutFragment:input};let inputWithoutFragment=input.slice(0,hashIndex),fragment=input.slice(hashIndex+1);if(!fragment||!looksLikeGitSource(inputWithoutFragment))return{inputWithoutFragment:input};let atIndex=fragment.indexOf("@");if(atIndex===-1)return{inputWithoutFragment,ref:decodeFragmentValue(fragment)};let ref=fragment.slice(0,atIndex),skillFilter=fragment.slice(atIndex+1);return{inputWithoutFragment,ref:ref?decodeFragmentValue(ref):void 0,skillFilter:skillFilter?decodeFragmentValue(skillFilter):void 0}},"parseFragmentRef"),isDirectSkillMdUrl=__name(input=>/^https?:\/\//.test(input)&&/\bSKILL\.md(?:$|\?|#)/i.test(input),"isDirectSkillMdUrl"),EXCLUDED_WELL_KNOWN_HOSTS=new Set(["raw.githubusercontent.com"]),isWellKnownCandidate=__name(input=>{if(!/^https?:\/\//.test(input))return!1;let parsed;try{parsed=new URL(input)}catch{return!1}return!(HOST_BY_DOMAIN.has(parsed.hostname)||EXCLUDED_WELL_KNOWN_HOSTS.has(parsed.hostname)||input.endsWith(".git")||isDirectSkillMdUrl(input))},"isWellKnownCandidate"),parseHostedShorthand=__name((rest,host,fragmentRef,fragmentSkillFilter)=>{let atSkillMatch=rest.match(/^([^/]+)\/([^/@]+)@(.+)$/);if(atSkillMatch){let[,owner,repo,skillFilter]=atSkillMatch;return buildHostedSource({host,owner,repo,ref:fragmentRef,skillFilter:fragmentSkillFilter??skillFilter})}let shorthandMatch=rest.match(/^([^/]+)\/([^/]+)(?:\/(.+?))?\/?$/);if(shorthandMatch){let[,owner,repo,subpath]=shorthandMatch;return buildHostedSource({host,owner,repo,ref:fragmentRef,subpath,skillFilter:fragmentSkillFilter})}return null},"parseHostedShorthand"),isHostnameAuthoritative=__name((input,expectedHostname)=>{if(!input.startsWith("http://")&&!input.startsWith("https://"))return!1;try{return new URL(input).hostname===expectedHostname}catch{return!1}},"isHostnameAuthoritative"),parseHostUrl=__name((input,host,fragmentRef)=>{let config=HOST_BY_NAME.get(host);if(!config||!isHostnameAuthoritative(input,config.domain))return null;let patterns=HOST_URL_PATTERNS.get(host);if(!patterns)return null;let treeWithPathMatch=input.match(patterns.treeWithPath);if(treeWithPathMatch){let[,owner,repo,ref,subpath]=treeWithPathMatch;return buildHostedSource({host,owner,repo,ref:ref||fragmentRef,subpath})}let treeMatch=input.match(patterns.tree);if(treeMatch){let[,owner,repo,ref]=treeMatch;return buildHostedSource({host,owner,repo,ref:ref||fragmentRef})}let repoMatch=input.match(patterns.repo);if(repoMatch){let[,owner,repo]=repoMatch;return buildHostedSource({host,owner,repo,ref:fragmentRef})}return null},"parseHostUrl"),parseSshUrl=__name((input,fragmentRef,fragmentSkillFilter)=>{let match=input.match(SSH_URL_PATTERN);if(!match)return null;let[,sshHost]=match,result={type:HOST_BY_DOMAIN.get(sshHost)?.host??"git",url:input};return fragmentRef&&(result.ref=fragmentRef),fragmentSkillFilter&&(result.skillFilter=fragmentSkillFilter),result},"parseSshUrl"),parseSkillSource=__name(input=>{if(!input||input.trim().length===0)throw new Error("Invalid skill source: input is empty. Expected a local path, owner/repo shorthand, or URL.");if(isLocalPath(input)){let resolvedPath=resolve8(input);return{type:"local",url:resolvedPath,localPath:resolvedPath}}let{inputWithoutFragment,ref:fragmentRef,skillFilter:fragmentSkillFilter}=parseFragmentRef(input),normalized=inputWithoutFragment;for(let config of HOST_CONFIGS)if(normalized.startsWith(config.prefix)){let result2=parseHostedShorthand(normalized.slice(config.prefix.length),config.host,fragmentRef,fragmentSkillFilter);if(result2)return result2}if(normalized.startsWith("git@")){let sshResult=parseSshUrl(normalized,fragmentRef,fragmentSkillFilter);if(sshResult)return sshResult}for(let config of HOST_CONFIGS){let result2=parseHostUrl(normalized,config.host,fragmentRef);if(result2)return result2}if(isDirectSkillMdUrl(normalized))return{type:"url",url:normalized};if(isShorthandCandidate(normalized)){let result2=parseHostedShorthand(normalized,"github",fragmentRef,fragmentSkillFilter);if(result2)return result2}if(isWellKnownCandidate(normalized)){let wellKnownResult={type:"well-known",url:normalized};return fragmentSkillFilter&&(wellKnownResult.skillFilter=fragmentSkillFilter),wellKnownResult}let result={type:"git",url:normalized};return fragmentRef&&(result.ref=fragmentRef),result},"parseSkillSource"),resolveSource=__name(async parsed=>{if(parsed.type==="local"){if(!parsed.localPath)throw new Error("Local source is missing a resolved path");return{basePath:parsed.localPath}}if(parsed.type==="url"){let baseDir=await fetchSkillManifestFromUrl(parsed.url);return{basePath:baseDir,cleanup:__name(()=>cleanupTempDir(baseDir),"cleanup")}}if(parsed.type==="well-known"){let baseDir=await fetchWellKnownSkills(parsed.url);return{basePath:baseDir,skillFilter:parsed.skillFilter,cleanup:__name(()=>cleanupTempDir(baseDir),"cleanup")}}let cloneDir=await cloneRepo2(parsed.url,parsed.ref);return{basePath:cloneDir,subpath:parsed.subpath,skillFilter:parsed.skillFilter,cleanup:__name(()=>cleanupTempDir(cloneDir),"cleanup")}},"resolveSource"),resolveTargetAgents=__name(async requested=>{if(requested&&requested.length>0)return requested;let installed=await detectInstalledSkillAgents();return installed.length>0?installed:getUniversalSkillAgents()},"resolveTargetAgents"),resolveSkillFilters=__name((explicit,fromSource)=>{if(explicit&&explicit.length>0)return explicit;if(fromSource)return[fromSource]},"resolveSkillFilters"),installSkillsFromSource=__name(async options=>{let resolved=await resolveSource(parseSkillSource(options.source));try{let filters=resolveSkillFilters(options.skills,resolved.skillFilter),discovered=await discoverSkills(resolved.basePath,resolved.subpath),skills2=filters?filterSkillsByName(discovered,filters):discovered;if(skills2.length===0)return{installed:[],failed:[],skills:[]};let targetAgents=await resolveTargetAgents(options.agents),installed=[],failed=[];for(let skill of skills2)for(let agent of targetAgents){let result=await installSkillForAgent(skill,agent,{global:options.global,cwd:options.cwd,mode:options.mode});result.success?installed.push({skill:skill.name,agent,path:result.path,canonicalPath:result.canonicalPath,mode:result.mode,symlinkFailed:result.symlinkFailed}):failed.push({skill:skill.name,agent,error:result.error??"Unknown error"})}return{installed,failed,skills:skills2}}finally{await resolved.cleanup?.().catch(()=>{})}},"installSkillsFromSource");var import_yaml5=__toESM(require_dist3(),1);import{existsSync as existsSync10,mkdirSync as mkdirSync4,readFileSync as readFileSync10,writeFileSync as writeFileSync4}from"node:fs";import{homedir as homedir3,platform as platform3}from"node:os";import{dirname as dirname7,join as join11}from"node:path";var CharacterCodes;(function(CharacterCodes2){CharacterCodes2[CharacterCodes2.lineFeed=10]="lineFeed",CharacterCodes2[CharacterCodes2.carriageReturn=13]="carriageReturn",CharacterCodes2[CharacterCodes2.space=32]="space",CharacterCodes2[CharacterCodes2._0=48]="_0",CharacterCodes2[CharacterCodes2._1=49]="_1",CharacterCodes2[CharacterCodes2._2=50]="_2",CharacterCodes2[CharacterCodes2._3=51]="_3",CharacterCodes2[CharacterCodes2._4=52]="_4",CharacterCodes2[CharacterCodes2._5=53]="_5",CharacterCodes2[CharacterCodes2._6=54]="_6",CharacterCodes2[CharacterCodes2._7=55]="_7",CharacterCodes2[CharacterCodes2._8=56]="_8",CharacterCodes2[CharacterCodes2._9=57]="_9",CharacterCodes2[CharacterCodes2.a=97]="a",CharacterCodes2[CharacterCodes2.b=98]="b",CharacterCodes2[CharacterCodes2.c=99]="c",CharacterCodes2[CharacterCodes2.d=100]="d",CharacterCodes2[CharacterCodes2.e=101]="e",CharacterCodes2[CharacterCodes2.f=102]="f",CharacterCodes2[CharacterCodes2.g=103]="g",CharacterCodes2[CharacterCodes2.h=104]="h",CharacterCodes2[CharacterCodes2.i=105]="i",CharacterCodes2[CharacterCodes2.j=106]="j",CharacterCodes2[CharacterCodes2.k=107]="k",CharacterCodes2[CharacterCodes2.l=108]="l",CharacterCodes2[CharacterCodes2.m=109]="m",CharacterCodes2[CharacterCodes2.n=110]="n",CharacterCodes2[CharacterCodes2.o=111]="o",CharacterCodes2[CharacterCodes2.p=112]="p",CharacterCodes2[CharacterCodes2.q=113]="q",CharacterCodes2[CharacterCodes2.r=114]="r",CharacterCodes2[CharacterCodes2.s=115]="s",CharacterCodes2[CharacterCodes2.t=116]="t",CharacterCodes2[CharacterCodes2.u=117]="u",CharacterCodes2[CharacterCodes2.v=118]="v",CharacterCodes2[CharacterCodes2.w=119]="w",CharacterCodes2[CharacterCodes2.x=120]="x",CharacterCodes2[CharacterCodes2.y=121]="y",CharacterCodes2[CharacterCodes2.z=122]="z",CharacterCodes2[CharacterCodes2.A=65]="A",CharacterCodes2[CharacterCodes2.B=66]="B",CharacterCodes2[CharacterCodes2.C=67]="C",CharacterCodes2[CharacterCodes2.D=68]="D",CharacterCodes2[CharacterCodes2.E=69]="E",CharacterCodes2[CharacterCodes2.F=70]="F",CharacterCodes2[CharacterCodes2.G=71]="G",CharacterCodes2[CharacterCodes2.H=72]="H",CharacterCodes2[CharacterCodes2.I=73]="I",CharacterCodes2[CharacterCodes2.J=74]="J",CharacterCodes2[CharacterCodes2.K=75]="K",CharacterCodes2[CharacterCodes2.L=76]="L",CharacterCodes2[CharacterCodes2.M=77]="M",CharacterCodes2[CharacterCodes2.N=78]="N",CharacterCodes2[CharacterCodes2.O=79]="O",CharacterCodes2[CharacterCodes2.P=80]="P",CharacterCodes2[CharacterCodes2.Q=81]="Q",CharacterCodes2[CharacterCodes2.R=82]="R",CharacterCodes2[CharacterCodes2.S=83]="S",CharacterCodes2[CharacterCodes2.T=84]="T",CharacterCodes2[CharacterCodes2.U=85]="U",CharacterCodes2[CharacterCodes2.V=86]="V",CharacterCodes2[CharacterCodes2.W=87]="W",CharacterCodes2[CharacterCodes2.X=88]="X",CharacterCodes2[CharacterCodes2.Y=89]="Y",CharacterCodes2[CharacterCodes2.Z=90]="Z",CharacterCodes2[CharacterCodes2.asterisk=42]="asterisk",CharacterCodes2[CharacterCodes2.backslash=92]="backslash",CharacterCodes2[CharacterCodes2.closeBrace=125]="closeBrace",CharacterCodes2[CharacterCodes2.closeBracket=93]="closeBracket",CharacterCodes2[CharacterCodes2.colon=58]="colon",CharacterCodes2[CharacterCodes2.comma=44]="comma",CharacterCodes2[CharacterCodes2.dot=46]="dot",CharacterCodes2[CharacterCodes2.doubleQuote=34]="doubleQuote",CharacterCodes2[CharacterCodes2.minus=45]="minus",CharacterCodes2[CharacterCodes2.openBrace=123]="openBrace",CharacterCodes2[CharacterCodes2.openBracket=91]="openBracket",CharacterCodes2[CharacterCodes2.plus=43]="plus",CharacterCodes2[CharacterCodes2.slash=47]="slash",CharacterCodes2[CharacterCodes2.formFeed=12]="formFeed",CharacterCodes2[CharacterCodes2.tab=9]="tab"})(CharacterCodes||(CharacterCodes={}));var cachedSpaces=new Array(20).fill(0).map((_,index)=>" ".repeat(index)),maxCachedValues=200,cachedBreakLinesWithSpaces={" ":{"\n":new Array(maxCachedValues).fill(0).map((_,index)=>`
718
703
  `+" ".repeat(index)),"\r":new Array(maxCachedValues).fill(0).map((_,index)=>"\r"+" ".repeat(index)),"\r\n":new Array(maxCachedValues).fill(0).map((_,index)=>`\r
719
704
  `+" ".repeat(index))}," ":{"\n":new Array(maxCachedValues).fill(0).map((_,index)=>`
720
705
  `+" ".repeat(index)),"\r":new Array(maxCachedValues).fill(0).map((_,index)=>"\r"+" ".repeat(index)),"\r\n":new Array(maxCachedValues).fill(0).map((_,index)=>`\r
721
- `+" ".repeat(index))}};var ParseOptions;(function(ParseOptions2){ParseOptions2.DEFAULT={allowTrailingComma:!1}})(ParseOptions||(ParseOptions={}));var ScanError;(function(ScanError2){ScanError2[ScanError2.None=0]="None",ScanError2[ScanError2.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",ScanError2[ScanError2.UnexpectedEndOfString=2]="UnexpectedEndOfString",ScanError2[ScanError2.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",ScanError2[ScanError2.InvalidUnicode=4]="InvalidUnicode",ScanError2[ScanError2.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",ScanError2[ScanError2.InvalidCharacter=6]="InvalidCharacter"})(ScanError||(ScanError={}));var SyntaxKind;(function(SyntaxKind2){SyntaxKind2[SyntaxKind2.OpenBraceToken=1]="OpenBraceToken",SyntaxKind2[SyntaxKind2.CloseBraceToken=2]="CloseBraceToken",SyntaxKind2[SyntaxKind2.OpenBracketToken=3]="OpenBracketToken",SyntaxKind2[SyntaxKind2.CloseBracketToken=4]="CloseBracketToken",SyntaxKind2[SyntaxKind2.CommaToken=5]="CommaToken",SyntaxKind2[SyntaxKind2.ColonToken=6]="ColonToken",SyntaxKind2[SyntaxKind2.NullKeyword=7]="NullKeyword",SyntaxKind2[SyntaxKind2.TrueKeyword=8]="TrueKeyword",SyntaxKind2[SyntaxKind2.FalseKeyword=9]="FalseKeyword",SyntaxKind2[SyntaxKind2.StringLiteral=10]="StringLiteral",SyntaxKind2[SyntaxKind2.NumericLiteral=11]="NumericLiteral",SyntaxKind2[SyntaxKind2.LineCommentTrivia=12]="LineCommentTrivia",SyntaxKind2[SyntaxKind2.BlockCommentTrivia=13]="BlockCommentTrivia",SyntaxKind2[SyntaxKind2.LineBreakTrivia=14]="LineBreakTrivia",SyntaxKind2[SyntaxKind2.Trivia=15]="Trivia",SyntaxKind2[SyntaxKind2.Unknown=16]="Unknown",SyntaxKind2[SyntaxKind2.EOF=17]="EOF"})(SyntaxKind||(SyntaxKind={}));var ParseErrorCode;(function(ParseErrorCode2){ParseErrorCode2[ParseErrorCode2.InvalidSymbol=1]="InvalidSymbol",ParseErrorCode2[ParseErrorCode2.InvalidNumberFormat=2]="InvalidNumberFormat",ParseErrorCode2[ParseErrorCode2.PropertyNameExpected=3]="PropertyNameExpected",ParseErrorCode2[ParseErrorCode2.ValueExpected=4]="ValueExpected",ParseErrorCode2[ParseErrorCode2.ColonExpected=5]="ColonExpected",ParseErrorCode2[ParseErrorCode2.CommaExpected=6]="CommaExpected",ParseErrorCode2[ParseErrorCode2.CloseBraceExpected=7]="CloseBraceExpected",ParseErrorCode2[ParseErrorCode2.CloseBracketExpected=8]="CloseBracketExpected",ParseErrorCode2[ParseErrorCode2.EndOfFileExpected=9]="EndOfFileExpected",ParseErrorCode2[ParseErrorCode2.InvalidCommentToken=10]="InvalidCommentToken",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfString=12]="UnexpectedEndOfString",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",ParseErrorCode2[ParseErrorCode2.InvalidUnicode=14]="InvalidUnicode",ParseErrorCode2[ParseErrorCode2.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",ParseErrorCode2[ParseErrorCode2.InvalidCharacter=16]="InvalidCharacter"})(ParseErrorCode||(ParseErrorCode={}));var import_toml=__toESM(require_toml(),1);var transformCodexServerConfig=__name(config=>{if(config.url){let remoteConfig={type:config.type||"http",url:config.url};return config.headers&&Object.keys(config.headers).length>0&&(remoteConfig.headers=config.headers),remoteConfig}let stdioConfig={command:config.command,args:config.args||[]};return config.env&&Object.keys(config.env).length>0&&(stdioConfig.env=config.env),stdioConfig},"transformCodexServerConfig");var transformGooseServerConfig=__name((serverName,config)=>config.url?{name:serverName,description:"",type:config.type==="sse"?"sse":"streamable_http",uri:config.url,headers:config.headers||{},enabled:!0,timeout:300}:{name:serverName,description:"",cmd:config.command,args:config.args||[],enabled:!0,envs:config.env||{},type:"stdio",timeout:300},"transformGooseServerConfig"),transformOpenCodeServerConfig=__name(config=>config.url?{type:"remote",url:config.url,enabled:!0,headers:config.headers}:{type:"local",command:[config.command,...config.args||[]],enabled:!0,environment:config.env||{}},"transformOpenCodeServerConfig"),transformVscodeServerConfig=__name(config=>{if(config.url){let remote={type:config.type||"http",url:config.url};return config.headers&&Object.keys(config.headers).length>0&&(remote.headers=config.headers),remote}let stdio={type:"stdio",command:config.command,args:config.args||[]};return config.env&&Object.keys(config.env).length>0&&(stdio.env=config.env),stdio},"transformVscodeServerConfig"),transformZedServerConfig=__name(config=>config.url?{source:"custom",type:config.type||"http",url:config.url,headers:config.headers||{}}:{source:"custom",command:config.command,args:config.args||[],env:config.env||{}},"transformZedServerConfig"),home2=homedir3(),getPlatformPaths=__name(()=>{let currentPlatform=platform3();if(currentPlatform==="win32"){let appData=process.env.APPDATA||join11(home2,"AppData","Roaming");return{appSupport:appData,vscodePath:join11(appData,"Code","User"),gooseConfigPath:join11(appData,"Block","goose","config","config.yaml")}}if(currentPlatform==="darwin")return{appSupport:join11(home2,"Library","Application Support"),vscodePath:join11(home2,"Library","Application Support","Code","User"),gooseConfigPath:join11(home2,".config","goose","config.yaml")};let configDir=process.env.XDG_CONFIG_HOME||join11(home2,".config");return{appSupport:configDir,vscodePath:join11(configDir,"Code","User"),gooseConfigPath:join11(configDir,"goose","config.yaml")}},"getPlatformPaths"),{appSupport,vscodePath,gooseConfigPath}=getPlatformPaths(),antigravityConfigPath=join11(home2,".gemini","antigravity","mcp_config.json"),clineCliConfigPath=join11(process.env.CLINE_DIR||join11(home2,".cline"),"data","settings","cline_mcp_settings.json"),clineExtensionConfigPath=join11(vscodePath,"globalStorage","saoudrizwan.claude-dev","settings","cline_mcp_settings.json"),copilotConfigPath=join11(home2,".copilot","mcp-config.json"),UNSUPPORTED_STDIO_MESSAGE="This agent supports only remote MCP servers (HTTP/SSE). Stdio commands are not supported.",ALL_TRANSPORTS=["stdio","http","sse"],mcpAgents={antigravity:{name:"antigravity",displayName:"Antigravity",globalConfigPath:antigravityConfigPath,configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".gemini","antigravity")),"detectGlobalInstall")},cline:{name:"cline",displayName:"Cline (VSCode extension)",globalConfigPath:clineExtensionConfigPath,configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(clineExtensionConfigPath),"detectGlobalInstall")},"cline-cli":{name:"cline-cli",displayName:"Cline CLI",globalConfigPath:clineCliConfigPath,configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".cline")),"detectGlobalInstall")},"claude-code":{name:"claude-code",displayName:"Claude Code",globalConfigPath:join11(home2,".claude.json"),projectConfigPath:".mcp.json",configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".claude.json")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".mcp.json")),"detectProjectInstall")},"claude-desktop":{name:"claude-desktop",displayName:"Claude Desktop",globalConfigPath:join11(appSupport,"Claude","claude_desktop_config.json"),configKey:"mcpServers",format:"jsonc",supportedTransports:["stdio"],unsupportedTransportMessage:"Claude Desktop currently supports only stdio MCP servers. Use a package name or command instead of a URL.",detectGlobalInstall:__name(()=>existsSync10(join11(appSupport,"Claude","claude_desktop_config.json")),"detectGlobalInstall")},codex:{name:"codex",displayName:"Codex",globalConfigPath:join11(process.env.CODEX_HOME?.trim()||join11(home2,".codex"),"config.toml"),projectConfigPath:".codex/config.toml",configKey:"mcp_servers",format:"toml",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(process.env.CODEX_HOME?.trim()||join11(home2,".codex")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".codex","config.toml")),"detectProjectInstall"),transformConfig:__name((_name,config)=>transformCodexServerConfig(config),"transformConfig")},cursor:{name:"cursor",displayName:"Cursor",globalConfigPath:join11(home2,".cursor","mcp.json"),projectConfigPath:".cursor/mcp.json",configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".cursor")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".cursor","mcp.json")),"detectProjectInstall")},"gemini-cli":{name:"gemini-cli",displayName:"Gemini CLI",globalConfigPath:join11(home2,".gemini","settings.json"),projectConfigPath:".gemini/settings.json",configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".gemini")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".gemini","settings.json")),"detectProjectInstall")},goose:{name:"goose",displayName:"Goose",globalConfigPath:gooseConfigPath,projectConfigPath:".goose/config.yaml",configKey:"extensions",format:"yaml",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(gooseConfigPath),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".goose","config.yaml")),"detectProjectInstall"),transformConfig:__name((name,config)=>transformGooseServerConfig(name,config),"transformConfig")},"github-copilot-cli":{name:"github-copilot-cli",displayName:"GitHub Copilot CLI",globalConfigPath:copilotConfigPath,projectConfigPath:".vscode/mcp.json",configKey:"mcpServers",projectConfigKey:"servers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(copilotConfigPath),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".vscode","mcp.json")),"detectProjectInstall"),transformConfig:__name((_name,config,context)=>context.global?config:transformVscodeServerConfig(config),"transformConfig")},mcporter:{name:"mcporter",displayName:"MCPorter",globalConfigPath:join11(home2,".mcporter","mcporter.json"),projectConfigPath:"config/mcporter.json",configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".mcporter")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,"config","mcporter.json")),"detectProjectInstall")},opencode:{name:"opencode",displayName:"OpenCode",globalConfigPath:join11(process.env.XDG_CONFIG_HOME||join11(home2,".config"),"opencode","opencode.json"),projectConfigPath:"opencode.json",configKey:"mcp",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(process.env.XDG_CONFIG_HOME||join11(home2,".config"),"opencode")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,"opencode.json")),"detectProjectInstall"),transformConfig:__name((_name,config)=>transformOpenCodeServerConfig(config),"transformConfig")},vscode:{name:"vscode",displayName:"VS Code",globalConfigPath:join11(vscodePath,"mcp.json"),projectConfigPath:".vscode/mcp.json",configKey:"servers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(vscodePath,"mcp.json")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".vscode","mcp.json")),"detectProjectInstall"),transformConfig:__name((_name,config)=>transformVscodeServerConfig(config),"transformConfig")},zed:{name:"zed",displayName:"Zed",globalConfigPath:join11(appSupport,"Zed","settings.json"),projectConfigPath:".zed/settings.json",configKey:"context_servers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,unsupportedTransportMessage:UNSUPPORTED_STDIO_MESSAGE,detectGlobalInstall:__name(()=>existsSync10(join11(appSupport,"Zed")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".zed","settings.json")),"detectProjectInstall"),transformConfig:__name((_name,config)=>transformZedServerConfig(config),"transformConfig")}};var ansi={reset:"\x1B[0m",dim:__name(s=>`\x1B[2m${s}\x1B[22m`,"dim"),gray:__name(s=>`\x1B[90m${s}\x1B[39m`,"gray"),cyan:__name(s=>`\x1B[36m${s}\x1B[39m`,"cyan"),green:__name(s=>`\x1B[32m${s}\x1B[39m`,"green"),yellow:__name(s=>`\x1B[33m${s}\x1B[39m`,"yellow"),strike:__name(s=>`\x1B[9m${s}\x1B[29m`,"strike")};function defaultFormatSelected(values,options){if(values.length===0)return ansi.dim("(none)");let labels2=values.map(v=>options.find(o=>o.value===v)?.label??String(v)),head=labels2.slice(0,3),tail=labels2.length>3?ansi.dim(` +${labels2.length-3} more`):"";return`${head.join(", ")}${tail}`}__name(defaultFormatSelected,"defaultFormatSelected");async function agentMultiselect(opts){let styleOption=__name((option2,isSelected,active)=>{let label=option2.label??String(option2.value??""),hint=option2.hint&&active?ansi.dim(` (${option2.hint})`):"";if(option2.disabled)return`${ansi.gray(J)} ${ansi.gray(ansi.strike(label))}`;let box=isSelected?ansi.green(U):active?ansi.cyan(te):ansi.dim(J);return active?`${box} ${label}${hint}`:`${box} ${ansi.dim(label)}`},"styleOption");return new it({options:opts.options,initialValues:opts.initialValues??[],required:opts.required??!1,render(){let header=`${ansi.gray(d2)}
706
+ `+" ".repeat(index))}};var ParseOptions;(function(ParseOptions2){ParseOptions2.DEFAULT={allowTrailingComma:!1}})(ParseOptions||(ParseOptions={}));var ScanError;(function(ScanError2){ScanError2[ScanError2.None=0]="None",ScanError2[ScanError2.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",ScanError2[ScanError2.UnexpectedEndOfString=2]="UnexpectedEndOfString",ScanError2[ScanError2.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",ScanError2[ScanError2.InvalidUnicode=4]="InvalidUnicode",ScanError2[ScanError2.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",ScanError2[ScanError2.InvalidCharacter=6]="InvalidCharacter"})(ScanError||(ScanError={}));var SyntaxKind;(function(SyntaxKind2){SyntaxKind2[SyntaxKind2.OpenBraceToken=1]="OpenBraceToken",SyntaxKind2[SyntaxKind2.CloseBraceToken=2]="CloseBraceToken",SyntaxKind2[SyntaxKind2.OpenBracketToken=3]="OpenBracketToken",SyntaxKind2[SyntaxKind2.CloseBracketToken=4]="CloseBracketToken",SyntaxKind2[SyntaxKind2.CommaToken=5]="CommaToken",SyntaxKind2[SyntaxKind2.ColonToken=6]="ColonToken",SyntaxKind2[SyntaxKind2.NullKeyword=7]="NullKeyword",SyntaxKind2[SyntaxKind2.TrueKeyword=8]="TrueKeyword",SyntaxKind2[SyntaxKind2.FalseKeyword=9]="FalseKeyword",SyntaxKind2[SyntaxKind2.StringLiteral=10]="StringLiteral",SyntaxKind2[SyntaxKind2.NumericLiteral=11]="NumericLiteral",SyntaxKind2[SyntaxKind2.LineCommentTrivia=12]="LineCommentTrivia",SyntaxKind2[SyntaxKind2.BlockCommentTrivia=13]="BlockCommentTrivia",SyntaxKind2[SyntaxKind2.LineBreakTrivia=14]="LineBreakTrivia",SyntaxKind2[SyntaxKind2.Trivia=15]="Trivia",SyntaxKind2[SyntaxKind2.Unknown=16]="Unknown",SyntaxKind2[SyntaxKind2.EOF=17]="EOF"})(SyntaxKind||(SyntaxKind={}));var ParseErrorCode;(function(ParseErrorCode2){ParseErrorCode2[ParseErrorCode2.InvalidSymbol=1]="InvalidSymbol",ParseErrorCode2[ParseErrorCode2.InvalidNumberFormat=2]="InvalidNumberFormat",ParseErrorCode2[ParseErrorCode2.PropertyNameExpected=3]="PropertyNameExpected",ParseErrorCode2[ParseErrorCode2.ValueExpected=4]="ValueExpected",ParseErrorCode2[ParseErrorCode2.ColonExpected=5]="ColonExpected",ParseErrorCode2[ParseErrorCode2.CommaExpected=6]="CommaExpected",ParseErrorCode2[ParseErrorCode2.CloseBraceExpected=7]="CloseBraceExpected",ParseErrorCode2[ParseErrorCode2.CloseBracketExpected=8]="CloseBracketExpected",ParseErrorCode2[ParseErrorCode2.EndOfFileExpected=9]="EndOfFileExpected",ParseErrorCode2[ParseErrorCode2.InvalidCommentToken=10]="InvalidCommentToken",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfString=12]="UnexpectedEndOfString",ParseErrorCode2[ParseErrorCode2.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",ParseErrorCode2[ParseErrorCode2.InvalidUnicode=14]="InvalidUnicode",ParseErrorCode2[ParseErrorCode2.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",ParseErrorCode2[ParseErrorCode2.InvalidCharacter=16]="InvalidCharacter"})(ParseErrorCode||(ParseErrorCode={}));var import_toml=__toESM(require_toml(),1);var transformCodexServerConfig=__name(config=>{if(config.url){let remoteConfig={type:config.type||"http",url:config.url};return config.headers&&Object.keys(config.headers).length>0&&(remoteConfig.headers=config.headers),remoteConfig}let stdioConfig={command:config.command,args:config.args||[]};return config.env&&Object.keys(config.env).length>0&&(stdioConfig.env=config.env),stdioConfig},"transformCodexServerConfig");var transformGooseServerConfig=__name((serverName,config)=>config.url?{name:serverName,description:"",type:config.type==="sse"?"sse":"streamable_http",uri:config.url,headers:config.headers||{},enabled:!0,timeout:300}:{name:serverName,description:"",cmd:config.command,args:config.args||[],enabled:!0,envs:config.env||{},type:"stdio",timeout:300},"transformGooseServerConfig"),transformOpenCodeServerConfig=__name(config=>config.url?{type:"remote",url:config.url,enabled:!0,headers:config.headers}:{type:"local",command:[config.command,...config.args||[]],enabled:!0,environment:config.env||{}},"transformOpenCodeServerConfig"),transformVscodeServerConfig=__name(config=>{if(config.url){let remote={type:config.type||"http",url:config.url};return config.headers&&Object.keys(config.headers).length>0&&(remote.headers=config.headers),remote}let stdio={type:"stdio",command:config.command,args:config.args||[]};return config.env&&Object.keys(config.env).length>0&&(stdio.env=config.env),stdio},"transformVscodeServerConfig"),transformZedServerConfig=__name(config=>config.url?{source:"custom",type:config.type||"http",url:config.url,headers:config.headers||{}}:{source:"custom",command:config.command,args:config.args||[],env:config.env||{}},"transformZedServerConfig"),home2=homedir3(),getPlatformPaths=__name(()=>{let currentPlatform=platform3();if(currentPlatform==="win32"){let appData=process.env.APPDATA||join11(home2,"AppData","Roaming");return{appSupport:appData,vscodePath:join11(appData,"Code","User"),gooseConfigPath:join11(appData,"Block","goose","config","config.yaml")}}if(currentPlatform==="darwin")return{appSupport:join11(home2,"Library","Application Support"),vscodePath:join11(home2,"Library","Application Support","Code","User"),gooseConfigPath:join11(home2,".config","goose","config.yaml")};let configDir=process.env.XDG_CONFIG_HOME||join11(home2,".config");return{appSupport:configDir,vscodePath:join11(configDir,"Code","User"),gooseConfigPath:join11(configDir,"goose","config.yaml")}},"getPlatformPaths"),{appSupport,vscodePath,gooseConfigPath}=getPlatformPaths(),antigravityConfigPath=join11(home2,".gemini","antigravity","mcp_config.json"),clineCliConfigPath=join11(process.env.CLINE_DIR||join11(home2,".cline"),"data","settings","cline_mcp_settings.json"),clineExtensionConfigPath=join11(vscodePath,"globalStorage","saoudrizwan.claude-dev","settings","cline_mcp_settings.json"),copilotConfigPath=join11(home2,".copilot","mcp-config.json"),UNSUPPORTED_STDIO_MESSAGE="This agent supports only remote MCP servers (HTTP/SSE). Stdio commands are not supported.",ALL_TRANSPORTS=["stdio","http","sse"],mcpAgents={antigravity:{name:"antigravity",displayName:"Antigravity",globalConfigPath:antigravityConfigPath,configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".gemini","antigravity")),"detectGlobalInstall")},cline:{name:"cline",displayName:"Cline (VSCode extension)",globalConfigPath:clineExtensionConfigPath,configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(clineExtensionConfigPath),"detectGlobalInstall")},"cline-cli":{name:"cline-cli",displayName:"Cline CLI",globalConfigPath:clineCliConfigPath,configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".cline")),"detectGlobalInstall")},"claude-code":{name:"claude-code",displayName:"Claude Code",globalConfigPath:join11(home2,".claude.json"),projectConfigPath:".mcp.json",configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".claude.json")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".mcp.json")),"detectProjectInstall")},"claude-desktop":{name:"claude-desktop",displayName:"Claude Desktop",globalConfigPath:join11(appSupport,"Claude","claude_desktop_config.json"),configKey:"mcpServers",format:"jsonc",supportedTransports:["stdio"],unsupportedTransportMessage:"Claude Desktop currently supports only stdio MCP servers. Use a package name or command instead of a URL.",detectGlobalInstall:__name(()=>existsSync10(join11(appSupport,"Claude","claude_desktop_config.json")),"detectGlobalInstall")},codex:{name:"codex",displayName:"Codex",globalConfigPath:join11(process.env.CODEX_HOME?.trim()||join11(home2,".codex"),"config.toml"),projectConfigPath:".codex/config.toml",configKey:"mcp_servers",format:"toml",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(process.env.CODEX_HOME?.trim()||join11(home2,".codex")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".codex","config.toml")),"detectProjectInstall"),transformConfig:__name((_name,config)=>transformCodexServerConfig(config),"transformConfig")},cursor:{name:"cursor",displayName:"Cursor",globalConfigPath:join11(home2,".cursor","mcp.json"),projectConfigPath:".cursor/mcp.json",configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".cursor")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".cursor","mcp.json")),"detectProjectInstall")},"gemini-cli":{name:"gemini-cli",displayName:"Gemini CLI",globalConfigPath:join11(home2,".gemini","settings.json"),projectConfigPath:".gemini/settings.json",configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".gemini")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".gemini","settings.json")),"detectProjectInstall")},goose:{name:"goose",displayName:"Goose",globalConfigPath:gooseConfigPath,projectConfigPath:".goose/config.yaml",configKey:"extensions",format:"yaml",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(gooseConfigPath),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".goose","config.yaml")),"detectProjectInstall"),transformConfig:__name((name,config)=>transformGooseServerConfig(name,config),"transformConfig")},"github-copilot-cli":{name:"github-copilot-cli",displayName:"GitHub Copilot CLI",globalConfigPath:copilotConfigPath,projectConfigPath:".vscode/mcp.json",configKey:"mcpServers",projectConfigKey:"servers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(copilotConfigPath),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".vscode","mcp.json")),"detectProjectInstall"),transformConfig:__name((_name,config,context)=>context.global?config:transformVscodeServerConfig(config),"transformConfig")},mcporter:{name:"mcporter",displayName:"MCPorter",globalConfigPath:join11(home2,".mcporter","mcporter.json"),projectConfigPath:"config/mcporter.json",configKey:"mcpServers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(home2,".mcporter")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,"config","mcporter.json")),"detectProjectInstall")},opencode:{name:"opencode",displayName:"OpenCode",globalConfigPath:join11(process.env.XDG_CONFIG_HOME||join11(home2,".config"),"opencode","opencode.json"),projectConfigPath:"opencode.json",configKey:"mcp",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(process.env.XDG_CONFIG_HOME||join11(home2,".config"),"opencode")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,"opencode.json")),"detectProjectInstall"),transformConfig:__name((_name,config)=>transformOpenCodeServerConfig(config),"transformConfig")},vscode:{name:"vscode",displayName:"VS Code",globalConfigPath:join11(vscodePath,"mcp.json"),projectConfigPath:".vscode/mcp.json",configKey:"servers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,detectGlobalInstall:__name(()=>existsSync10(join11(vscodePath,"mcp.json")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".vscode","mcp.json")),"detectProjectInstall"),transformConfig:__name((_name,config)=>transformVscodeServerConfig(config),"transformConfig")},zed:{name:"zed",displayName:"Zed",globalConfigPath:join11(appSupport,"Zed","settings.json"),projectConfigPath:".zed/settings.json",configKey:"context_servers",format:"jsonc",supportedTransports:ALL_TRANSPORTS,unsupportedTransportMessage:UNSUPPORTED_STDIO_MESSAGE,detectGlobalInstall:__name(()=>existsSync10(join11(appSupport,"Zed")),"detectGlobalInstall"),detectProjectInstall:__name(cwd=>existsSync10(join11(cwd,".zed","settings.json")),"detectProjectInstall"),transformConfig:__name((_name,config)=>transformZedServerConfig(config),"transformConfig")}};var ansi={reset:"\x1B[0m",dim:__name(s=>`\x1B[2m${s}\x1B[22m`,"dim"),gray:__name(s=>`\x1B[90m${s}\x1B[39m`,"gray"),cyan:__name(s=>`\x1B[36m${s}\x1B[39m`,"cyan"),green:__name(s=>`\x1B[32m${s}\x1B[39m`,"green"),yellow:__name(s=>`\x1B[33m${s}\x1B[39m`,"yellow"),strike:__name(s=>`\x1B[9m${s}\x1B[29m`,"strike")};function defaultFormatSelected(values,options){if(values.length===0)return ansi.dim("(none)");let labels2=values.map(v=>options.find(o=>o.value===v)?.label??String(v)),head=labels2.slice(0,3),tail=labels2.length>3?ansi.dim(` +${labels2.length-3} more`):"";return`${head.join(", ")}${tail}`}__name(defaultFormatSelected,"defaultFormatSelected");async function agentMultiselect(opts){let styleOption=__name((option,isSelected,active)=>{let label=option.label??String(option.value??""),hint=option.hint&&active?ansi.dim(` (${option.hint})`):"";if(option.disabled)return`${ansi.gray(J)} ${ansi.gray(ansi.strike(label))}`;let box=isSelected?ansi.green(U):active?ansi.cyan(te):ansi.dim(J);return active?`${box} ${label}${hint}`:`${box} ${ansi.dim(label)}`},"styleOption");return new it({options:opts.options,initialValues:opts.initialValues??[],required:opts.required??!1,render(){let header=`${ansi.gray(d2)}
722
707
  ${V2(this.state)} ${opts.message}
723
708
  `,selected=this.value??[];switch(this.state){case"submit":return`${header}${ansi.gray(d2)} ${ansi.dim(`${selected.length} items selected`)}`;case"cancel":return`${header}${ansi.gray(d2)} ${ansi.dim("cancelled")}`;default:{let color=this.state==="error"?ansi.yellow:ansi.cyan,barLeft=`${color(d2)} `,barEnd=color(E2),legendLine=`${barLeft}${ansi.dim("\u2191/\u2193 move \xB7 space toggle \xB7 a all \xB7 i invert \xB7 enter confirm")}`,errorLine=this.state==="error"&&this.error?[`${barLeft}${ansi.yellow(this.error)}`]:[],blank=barLeft,prefix=[...header.split(`
724
- `).filter(l=>l.length>0),legendLine,...errorLine,blank],selectedDisplay=opts.formatSelected?opts.formatSelected(selected,this.options):defaultFormatSelected(selected,this.options),selectedLine=`${barLeft}${ansi.dim("Selected:")} ${selectedDisplay}`,footer=[blank,selectedLine,barEnd],list=Y2({cursor:this.cursor,options:this.options,style:__name((option2,active)=>styleOption(option2,selected.some(v=>v===option2.value),active),"style"),maxItems:opts.maxItems,output:process.stdout,rowPadding:prefix.length+footer.length});return[...prefix,...list.map(line=>`${barLeft}${line}`),...footer].join(`
709
+ `).filter(l=>l.length>0),legendLine,...errorLine,blank],selectedDisplay=opts.formatSelected?opts.formatSelected(selected,this.options):defaultFormatSelected(selected,this.options),selectedLine=`${barLeft}${ansi.dim("Selected:")} ${selectedDisplay}`,footer=[blank,selectedLine,barEnd],list=Y2({cursor:this.cursor,options:this.options,style:__name((option,active)=>styleOption(option,selected.some(v=>v===option.value),active),"style"),maxItems:opts.maxItems,output:process.stdout,rowPadding:prefix.length+footer.length});return[...prefix,...list.map(line=>`${barLeft}${line}`),...footer].join(`
725
710
  `)}}}}).prompt()}__name(agentMultiselect,"agentMultiselect");var HERMES_AGENT="hermes",hermesHome=process.env.HERMES_HOME?.trim()||path34.join(os2.homedir(),".hermes");skillAgents[HERMES_AGENT]={name:HERMES_AGENT,displayName:"Hermes Agent",skillsDir:".hermes/skills",globalSkillsDir:path34.join(hermesHome,"skills"),detectInstalled:__name(async()=>fs34.existsSync(hermesHome),"detectInstalled")};var ENV_HINTS={CLAUDECODE:"claude-code",CLAUDE_CODE_ENTRYPOINT:"claude-code",CURSOR_TRACE_ID:"cursor"},POPULAR_AGENTS=["claude-code","cursor","codex","opencode",HERMES_AGENT],MAIN_AGENTS=["claude-code","cursor","codex"];function detectAgentsFromEnv(){let detected=new Set;for(let[envVar,agent]of Object.entries(ENV_HINTS)){let value=process.env[envVar];value&&value!=="0"&&value!=="false"&&detected.add(agent)}return[...detected]}__name(detectAgentsFromEnv,"detectAgentsFromEnv");function parseAgentsFlag(options){let fromAgents=(options.agents??"").split(",").map(s=>s.trim()).filter(Boolean),fromAgent=options.agent??[],all=[...fromAgents,...fromAgent];if(all.length===0)return null;if(all.length===1&&all[0]==="none")return"none";let valid=[],supportedIds=getSkillAgentTypes();for(let id of all)if(isSkillAgentType(id))valid.includes(id)||valid.push(id);else throw new Error(`Unknown agent: "${id}". Supported: ${supportedIds.join(", ")}`);return valid}__name(parseAgentsFlag,"parseAgentsFlag");function buildOption(id){let cfg=getSkillAgentConfig(id);return{value:id,label:cfg.displayName,hint:cfg.skillsDir?cfg.skillsDir:void 0}}__name(buildOption,"buildOption");async function promptInteractive(detected,message){let supported=new Set(getSkillAgentTypes().filter(id=>id!=="universal")),sortByDisplayName=__name((a,b)=>getSkillAgentConfig(a).displayName.localeCompare(getSkillAgentConfig(b).displayName),"sortByDisplayName"),popular=POPULAR_AGENTS.filter(id=>supported.has(id)),popularSet=new Set(popular),detectedExtra=detected.filter(id=>supported.has(id)&&!popularSet.has(id)).sort(sortByDisplayName),orderedAgents=[...popular,...detectedExtra],options=orderedAgents.map(id=>buildOption(id)),shown=new Set(orderedAgents),initialValues=MAIN_AGENTS.filter(id=>shown.has(id)),picked=await agentMultiselect({message,options,initialValues,required:!1,maxItems:10});return q(picked)&&(pt("Cancelled"),process.exit(0)),picked}__name(promptInteractive,"promptInteractive");function getSupportedAgentIds(){return getSkillAgentTypes().filter(id=>id!=="universal")}__name(getSupportedAgentIds,"getSupportedAgentIds");async function selectAgents(options,context={}){let explicit=parseAgentsFlag(options);if(explicit==="none")return[];if(explicit)return explicit;let fromEnv=detectAgentsFromEnv();if(fromEnv.length>0&&!process.stdout.isTTY)return fromEnv;let detected=await(context.detectFn??detectInstalledSkillAgents)();if(!process.stdout.isTTY){if(detected.length===0)throw new Error(`No agents detected and no --agents flag passed. Pass --agents=<comma-separated> with one or more of: ${getSkillAgentTypes().join(", ")}, or pass --agents=none to skip per-agent variants entirely.`);return detected}context.intro&&mt(context.intro);let message=context.promptMessage??"Install Fimo skills for which AI tools?";return promptInteractive(detected,message)}__name(selectAgents,"selectAgents");init_color();init_dist();import{randomBytes}from"node:crypto";import{createServer as createHttpServer}from"node:http";init_auth();init_config();init_sdk_transport();var CALLBACK_TIMEOUT_MS=300*1e3,LoginError=class extends Error{static{__name(this,"LoginError")}code;constructor(code2,message){super(message),this.name="LoginError",this.code=code2}};async function performBrowserLogin(cfg=loadConfig()){let state=randomBytes(16).toString("hex"),isPretty2=currentMode().format==="pretty",{server,port}=await startCallbackServer(),callbackUrl=`http://127.0.0.1:${port}/callback`,authUrl=new URL("/auth/cli",cfg.webUrl);authUrl.searchParams.set("callback",callbackUrl),authUrl.searchParams.set("state",state),isPretty2&&(process.stderr.write(`Opening ${authUrl.toString()}
726
711
  `),process.stderr.write(`If your browser does not open, copy the URL above.
727
712
  `)),await open_default(authUrl.toString()).catch(()=>{});let waitSp=spinner("Waiting for browser sign-in"),result;try{result=await waitForCallback(server,CALLBACK_TIMEOUT_MS),waitSp.succeed("Received one-time token")}catch(error){throw waitSp.fail(),server.close(),new LoginError("LOGIN_CALLBACK_FAILED",`Login timed out or failed: ${error.message}`)}if(result.state!==state)throw new LoginError("LOGIN_STATE_MISMATCH","State mismatch \u2014 aborting.");let verifySp=spinner("Verifying session"),response=await fetch(`${cfg.apiUrl}/api/auth/one-time-token/verify`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:result.token})});if(!response.ok){let detail=`${response.status} ${await response.text()}`;throw verifySp.fail(`Verify failed: ${detail}`),new LoginError("LOGIN_VERIFY_FAILED",`Verify failed: ${detail}`)}let body=await response.json(),user={id:body.user.id,email:body.user.email,name:body.user.name??""};writeCredentials({access_token:body.session.token,user},cfg),verifySp.succeed("Session verified");let orgSp=spinner("Selecting active organization"),activeOrganization=null,multipleOrgs=!1,orgError=null;try{let fimo=createCliFimoClient(cfg),{data:orgs2}=await fimo.execute("organizations.list",{}),sessionOrgId=body.session.activeOrganizationId??null,active=(sessionOrgId?orgs2.find(org=>org.id===sessionOrgId):void 0)??orgs2[0];active?(activeOrganization={id:active.id,name:active.name,slug:active.slug},writeCredentials({access_token:body.session.token,user,activeOrganization},cfg),multipleOrgs=orgs2.length>1,orgSp.succeed("Active organization selected")):orgSp.fail("No organization found for this account")}catch(error){orgError=error instanceof Error?error.message:String(error),orgSp.fail(`Could not fetch organizations: ${orgError}`)}return{token:body.session.token,user:{id:user.id,email:user.email,name:body.user.name??null},activeOrganization,multipleOrgs,orgError}}__name(performBrowserLogin,"performBrowserLogin");async function loginCommand(){let cfg=loadConfig(),result;try{result=await performBrowserLogin(cfg)}catch(error){if(error instanceof LoginError){ui.error({command:"login",code:error.code,message:error.message});return}throw error}let displayName=result.user.name||result.user.email;ui.result({command:"login",data:{user_id:result.user.id,email:result.user.email,name:result.user.name,active_organization_id:result.activeOrganization?.id??null,active_organization_name:result.activeOrganization?.name??null,active_organization_slug:result.activeOrganization?.slug??null,multiple_organizations:result.multipleOrgs,organization_error:result.orgError},render:__name(ctx=>{let palette2=makePalette(ctx.color),symbols=makeSymbols(ctx.ascii),lines=[`${palette2.success(symbols.ok)} Signed in as ${palette2.accent(displayName)}`];return result.activeOrganization&&lines.push(` ${palette2.dim("Active organization:")} ${result.activeOrganization.name}`),result.multipleOrgs&&(lines.push(""),lines.push(`${palette2.hint(symbols.hint)} ${palette2.hint("Run")} ${palette2.accent("fimo orgs switch")} ${palette2.hint("to change your active organization.")}`)),lines.join(`
@@ -880,11 +865,11 @@ Run \`fimo integrations <command> --help\` for command-specific help.
880
865
  `)}if(run.tool==="monitor.checks"){let output2=run.output;lines.push(`Monitor: ${output2.monitorId}`),lines.push(`Checks: ${output2.checks.length}`);for(let check of output2.checks.slice(0,20))lines.push(""),lines.push(`Check: ${check.id}`),typeof check.actualCredits=="number"&&lines.push(`Firecrawl credits: ${check.actualCredits}`),check.summary&&lines.push(`Summary: ${formatMonitorCheckSummary(check.summary)}`),check.error&&lines.push(`Error: ${check.error}`);return lines.join(`
881
866
  `)}if(run.tool==="monitor.run"||run.tool==="monitor.check"){let output2=run.output;return lines.push(`Monitor: ${output2.monitorId}`),lines.push(`Check: ${output2.check.id}`),typeof output2.check.actualCredits=="number"&&lines.push(`Firecrawl credits: ${output2.check.actualCredits}`),output2.check.summary&&lines.push(`Summary: ${formatMonitorCheckSummary(output2.check.summary)}`),output2.check.error&&lines.push(`Error: ${output2.check.error}`),output2.next&&lines.push(`Next: ${output2.next}`),lines.join(`
882
867
  `)}let output=run.output;return pushMonitorSummary(lines,output.monitor),lines.join(`
883
- `)}__name(renderMonitorToolRun,"renderMonitorToolRun");function pushMonitorSummary(lines,monitor){if(lines.push(""),lines.push(monitor.name),lines.push(`ID: ${monitor.id}`),monitor.status&&lines.push(`Status: ${monitor.status}`),monitor.schedule){let schedule=monitor.schedule.text??monitor.schedule.cron;schedule&&lines.push(`Schedule: ${schedule}${monitor.schedule.timezone?` (${monitor.schedule.timezone})`:""}`)}monitor.nextRunAt&&lines.push(`Next run: ${monitor.nextRunAt}`),typeof monitor.estimatedCreditsPerMonth=="number"&&lines.push(`Estimated Firecrawl credits/month: ${monitor.estimatedCreditsPerMonth}`)}__name(pushMonitorSummary,"pushMonitorSummary");function formatMonitorCheckSummary(summary2){return Object.entries(summary2).filter(([,value])=>typeof value=="number").map(([key,value])=>`${key}=${value}`).join(", ")}__name(formatMonitorCheckSummary,"formatMonitorCheckSummary");function baseRunLines(run){let lines=[`${run.integrationKey} ${run.tool}`];return pushRunMetadata(lines,run),lines}__name(baseRunLines,"baseRunLines");function pushRunMetadata(lines,run){if(run.connectionAlias&&lines.push(`Connection: ${run.connectionAlias}`),run.billing&&lines.push(`Fimo credits: ${run.billing.credits}`),run.usage){let usage=[typeof run.usage.providerCredits=="number"?`${run.usage.providerCredits} ${run.usage.provider} credits`:null,typeof run.usage.requests=="number"?`${run.usage.requests} request`:null].filter(value=>!!value);usage.length>0&&lines.push(`Provider usage: ${usage.join(", ")}`)}}__name(pushRunMetadata,"pushRunMetadata");function credentialStatusLabel(status){return status==="not_required"?"not required":status}__name(credentialStatusLabel,"credentialStatusLabel");function parseAuthMode(value){if(value==="api-key"||value==="token")return"personal";if(value==="fimo"||value==="personal"||value==="oauth")return value;throw new Error(`Unknown auth mode '${value}'. Use 'fimo', 'api-key', or 'oauth'.`)}__name(parseAuthMode,"parseAuthMode");function authKindCliLabel(kind){return kind.replace("_","-")}__name(authKindCliLabel,"authKindCliLabel");async function buildRunRequest(integration,tool,opts){if(opts.input!==void 0)return withRunConnection({tool,input:await readToolInput(opts.input,opts)},opts);if(integration.toLowerCase()!=="firecrawl")throw new Error(`Pass --input <json|@file|-> for ${integration}.${tool}. Provider-specific convenience flags are currently available for Firecrawl only.`);return buildFirecrawlRunRequest(tool,opts)}__name(buildRunRequest,"buildRunRequest");function buildFirecrawlRunRequest(tool,opts){let withConnection=__name(request=>withRunConnection(request,opts),"withConnection");switch(tool){case"search":if(!opts.query)throw new Error("Pass --query to search the web.");if(opts.includeDomains&&opts.excludeDomains)throw new Error("Choose --include-domains or --exclude-domains, not both.");return withConnection({tool:"search",input:{query:opts.query,maxResults:parseOptionalInt(opts.maxResults,"--max-results",1),sources:parseOptionalChoiceList(opts.sources,"--sources",["web","news","images"]),categories:parseOptionalChoiceList(opts.categories,"--categories",["github","research","pdf"]),includeDomains:opts.includeDomains?parseCsvList(opts.includeDomains):void 0,excludeDomains:opts.excludeDomains?parseCsvList(opts.excludeDomains):void 0,timeRange:parseFirecrawlFreshness(opts.freshness),location:opts.location,country:parseCountryCode(opts.country),highlights:opts.highlights,timeoutMs:parseOptionalInt(opts.timeoutMs,"--timeout-ms",1)}});case"scrape":if(!opts.url)throw new Error("Pass --url to scrape a page.");return withConnection({tool:"scrape",input:{url:opts.url,formats:parseFirecrawlFormats(opts.formats),onlyMainContent:opts.allContent?!1:void 0,timeoutMs:parseOptionalInt(opts.timeoutMs,"--timeout-ms",1),waitForMs:parseOptionalInt(opts.waitForMs,"--wait-for-ms",0)}});case"map":if(!opts.url)throw new Error("Pass --url to map a site.");return withConnection({tool:"map",input:{url:opts.url,search:opts.search,limit:parseOptionalInt(opts.limit,"--limit",1),includeSubdomains:opts.includeSubdomains,timeoutMs:parseOptionalInt(opts.timeoutMs,"--timeout-ms",1)}});case"crawl":if(!opts.url)throw new Error("Pass --url to crawl a site.");return withConnection({tool:"crawl",input:{url:opts.url,limit:parseOptionalInt(opts.limit,"--limit",1),formats:parseFirecrawlFormats(opts.formats),onlyMainContent:opts.allContent?!1:void 0,timeoutMs:parseOptionalInt(opts.timeoutMs,"--timeout-ms",1)}});case"monitor.create":{if(!opts.name)throw new Error("Pass --name to create a Firecrawl monitor.");if(!opts.url)throw new Error("Pass --url to create a Firecrawl monitor.");if(!opts.schedule)throw new Error("Pass --schedule to create a Firecrawl monitor.");let retentionDays=parseOptionalInt(opts.retentionDays,"--retention-days",1);if(retentionDays!==void 0&&retentionDays>365)throw new Error("--retention-days must be less than or equal to 365.");return withConnection({tool:"monitor.create",input:{name:opts.name,schedule:{text:opts.schedule,...opts.timezone?{timezone:opts.timezone}:{}},targets:[{type:parseFirecrawlMonitorTarget(opts.target),urls:parseCsvList(opts.url),scrapeOptions:{formats:parseFirecrawlFormats(opts.formats),onlyMainContent:opts.allContent?!1:void 0,timeoutMs:parseOptionalInt(opts.timeoutMs,"--timeout-ms",1),waitForMs:parseOptionalInt(opts.waitForMs,"--wait-for-ms",0)}}],...opts.goal?{goal:opts.goal}:{},...opts.judge?{judgeEnabled:!0}:{},...retentionDays!==void 0?{retentionDays}:{},...opts.emails?{notification:{email:{enabled:!0,recipients:parseCsvList(opts.emails),includeDiffs:!0}}}:{}}})}case"monitor.list":return withConnection({tool:"monitor.list",input:{}});case"monitor.get":case"monitor.pause":case"monitor.resume":case"monitor.delete":case"monitor.run":case"monitor.checks":{if(!opts.monitorId)throw new Error(`Pass --monitor-id to run ${tool}.`);return withConnection({tool,input:{monitorId:opts.monitorId}})}case"monitor.check":{if(!opts.monitorId)throw new Error("Pass --monitor-id to run monitor.check.");if(!opts.checkId)throw new Error("Pass --check-id to run monitor.check.");return withConnection({tool:"monitor.check",input:{monitorId:opts.monitorId,checkId:opts.checkId}})}default:throw new Error(`Unknown integration tool '${tool}'. Firecrawl supports search, scrape, map, crawl, and monitor.* tools.`)}}__name(buildFirecrawlRunRequest,"buildFirecrawlRunRequest");function withRunConnection(request,opts){let connectionAlias=opts.connection?.trim();return connectionAlias?{...request,connectionAlias}:request}__name(withRunConnection,"withRunConnection");async function readToolInput(value,opts){let raw=value;if(value==="-"){if(process.stdin.isTTY)throw new Error("Pipe JSON input to the command when using --input -.");raw=await readStdinValue()}else if(value.startsWith("@")){let file=value.slice(1);if(!file)throw new Error("Pass a file path after @ in --input @file.");let filePath=path38.resolve(resolveProjectCwd(opts.cwd),file);try{raw=fs37.readFileSync(filePath,"utf8")}catch(error){throw new Error(error instanceof Error?error.message:`Could not read ${filePath}.`)}}let parsed;try{parsed=JSON.parse(raw)}catch(error){throw new Error(`Integration tool input must be valid JSON: ${error instanceof Error?error.message:"parse failed"}`)}if(!parsed||typeof parsed!="object"||Array.isArray(parsed))throw new Error("Integration tool input must be a JSON object.");return parsed}__name(readToolInput,"readToolInput");function parseFirecrawlMonitorTarget(value){if(value===void 0||value==="scrape")return"scrape";if(value==="crawl")return"crawl";throw new Error("--target must be 'scrape' or 'crawl'.")}__name(parseFirecrawlMonitorTarget,"parseFirecrawlMonitorTarget");function parseCsvList(value){let parts=value.split(",").map(part=>part.trim()).filter(part=>part.length>0);if(parts.length===0)throw new Error("Expected at least one comma-separated value.");return parts}__name(parseCsvList,"parseCsvList");function parseOptionalChoiceList(value,option2,choices){if(value===void 0)return;let values=parseCsvList(value).map(item=>item.toLowerCase());for(let item of values)if(!choices.includes(item))throw new Error(`${option2} must contain only: ${choices.join(", ")}.`);return values}__name(parseOptionalChoiceList,"parseOptionalChoiceList");function parseFirecrawlFreshness(value){if(value!==void 0){if(value==="hour"||value==="day"||value==="week"||value==="month"||value==="year")return value;throw new Error("--freshness must be hour, day, week, month, or year.")}}__name(parseFirecrawlFreshness,"parseFirecrawlFreshness");function parseCountryCode(value){if(value!==void 0){if(!/^[A-Za-z]{2}$/.test(value))throw new Error("--country must be a two-letter country code.");return value.toUpperCase()}}__name(parseCountryCode,"parseCountryCode");function parseFirecrawlFormats(value){let result={},parts=(value??"markdown").split(",").map(part=>part.trim().toLowerCase()).filter(part=>part.length>0);for(let part of parts)switch(part){case"markdown":result.markdown=!0;break;case"summary":result.summary=!0;break;case"links":result.links=!0;break;case"images":result.images=!0;break;case"html":result.html="cleaned";break;case"raw-html":case"rawhtml":result.html="raw";break;default:throw new Error(`Unknown Firecrawl scrape format '${part}'. Use markdown, summary, links, images, html, or raw-html.`)}if(!Object.values(result).some(enabled=>!!enabled))throw new Error("Choose at least one Firecrawl scrape format.");return result}__name(parseFirecrawlFormats,"parseFirecrawlFormats");function parseOptionalInt(value,option2,min){if(value===void 0)return;let parsed=Number(value);if(!Number.isInteger(parsed)||parsed<min)throw new Error(`${option2} must be an integer greater than or equal to ${min}.`);return parsed}__name(parseOptionalInt,"parseOptionalInt");function trimContent(content2,maxLength){return content2.length<=maxLength?content2:`${content2.slice(0,maxLength).trimEnd()}
868
+ `)}__name(renderMonitorToolRun,"renderMonitorToolRun");function pushMonitorSummary(lines,monitor){if(lines.push(""),lines.push(monitor.name),lines.push(`ID: ${monitor.id}`),monitor.status&&lines.push(`Status: ${monitor.status}`),monitor.schedule){let schedule=monitor.schedule.text??monitor.schedule.cron;schedule&&lines.push(`Schedule: ${schedule}${monitor.schedule.timezone?` (${monitor.schedule.timezone})`:""}`)}monitor.nextRunAt&&lines.push(`Next run: ${monitor.nextRunAt}`),typeof monitor.estimatedCreditsPerMonth=="number"&&lines.push(`Estimated Firecrawl credits/month: ${monitor.estimatedCreditsPerMonth}`)}__name(pushMonitorSummary,"pushMonitorSummary");function formatMonitorCheckSummary(summary2){return Object.entries(summary2).filter(([,value])=>typeof value=="number").map(([key,value])=>`${key}=${value}`).join(", ")}__name(formatMonitorCheckSummary,"formatMonitorCheckSummary");function baseRunLines(run){let lines=[`${run.integrationKey} ${run.tool}`];return pushRunMetadata(lines,run),lines}__name(baseRunLines,"baseRunLines");function pushRunMetadata(lines,run){if(run.connectionAlias&&lines.push(`Connection: ${run.connectionAlias}`),run.billing&&lines.push(`Fimo credits: ${run.billing.credits}`),run.usage){let usage=[typeof run.usage.providerCredits=="number"?`${run.usage.providerCredits} ${run.usage.provider} credits`:null,typeof run.usage.requests=="number"?`${run.usage.requests} request`:null].filter(value=>!!value);usage.length>0&&lines.push(`Provider usage: ${usage.join(", ")}`)}}__name(pushRunMetadata,"pushRunMetadata");function credentialStatusLabel(status){return status==="not_required"?"not required":status}__name(credentialStatusLabel,"credentialStatusLabel");function parseAuthMode(value){if(value==="api-key"||value==="token")return"personal";if(value==="fimo"||value==="personal"||value==="oauth")return value;throw new Error(`Unknown auth mode '${value}'. Use 'fimo', 'api-key', or 'oauth'.`)}__name(parseAuthMode,"parseAuthMode");function authKindCliLabel(kind){return kind.replace("_","-")}__name(authKindCliLabel,"authKindCliLabel");async function buildRunRequest(integration,tool,opts){if(opts.input!==void 0)return withRunConnection({tool,input:await readToolInput(opts.input,opts)},opts);if(integration.toLowerCase()!=="firecrawl")throw new Error(`Pass --input <json|@file|-> for ${integration}.${tool}. Provider-specific convenience flags are currently available for Firecrawl only.`);return buildFirecrawlRunRequest(tool,opts)}__name(buildRunRequest,"buildRunRequest");function buildFirecrawlRunRequest(tool,opts){let withConnection=__name(request=>withRunConnection(request,opts),"withConnection");switch(tool){case"search":if(!opts.query)throw new Error("Pass --query to search the web.");if(opts.includeDomains&&opts.excludeDomains)throw new Error("Choose --include-domains or --exclude-domains, not both.");return withConnection({tool:"search",input:{query:opts.query,maxResults:parseOptionalInt(opts.maxResults,"--max-results",1),sources:parseOptionalChoiceList(opts.sources,"--sources",["web","news","images"]),categories:parseOptionalChoiceList(opts.categories,"--categories",["github","research","pdf"]),includeDomains:opts.includeDomains?parseCsvList(opts.includeDomains):void 0,excludeDomains:opts.excludeDomains?parseCsvList(opts.excludeDomains):void 0,timeRange:parseFirecrawlFreshness(opts.freshness),location:opts.location,country:parseCountryCode(opts.country),highlights:opts.highlights,timeoutMs:parseOptionalInt(opts.timeoutMs,"--timeout-ms",1)}});case"scrape":if(!opts.url)throw new Error("Pass --url to scrape a page.");return withConnection({tool:"scrape",input:{url:opts.url,formats:parseFirecrawlFormats(opts.formats),onlyMainContent:opts.allContent?!1:void 0,timeoutMs:parseOptionalInt(opts.timeoutMs,"--timeout-ms",1),waitForMs:parseOptionalInt(opts.waitForMs,"--wait-for-ms",0)}});case"map":if(!opts.url)throw new Error("Pass --url to map a site.");return withConnection({tool:"map",input:{url:opts.url,search:opts.search,limit:parseOptionalInt(opts.limit,"--limit",1),includeSubdomains:opts.includeSubdomains,timeoutMs:parseOptionalInt(opts.timeoutMs,"--timeout-ms",1)}});case"crawl":if(!opts.url)throw new Error("Pass --url to crawl a site.");return withConnection({tool:"crawl",input:{url:opts.url,limit:parseOptionalInt(opts.limit,"--limit",1),formats:parseFirecrawlFormats(opts.formats),onlyMainContent:opts.allContent?!1:void 0,timeoutMs:parseOptionalInt(opts.timeoutMs,"--timeout-ms",1)}});case"monitor.create":{if(!opts.name)throw new Error("Pass --name to create a Firecrawl monitor.");if(!opts.url)throw new Error("Pass --url to create a Firecrawl monitor.");if(!opts.schedule)throw new Error("Pass --schedule to create a Firecrawl monitor.");let retentionDays=parseOptionalInt(opts.retentionDays,"--retention-days",1);if(retentionDays!==void 0&&retentionDays>365)throw new Error("--retention-days must be less than or equal to 365.");return withConnection({tool:"monitor.create",input:{name:opts.name,schedule:{text:opts.schedule,...opts.timezone?{timezone:opts.timezone}:{}},targets:[{type:parseFirecrawlMonitorTarget(opts.target),urls:parseCsvList(opts.url),scrapeOptions:{formats:parseFirecrawlFormats(opts.formats),onlyMainContent:opts.allContent?!1:void 0,timeoutMs:parseOptionalInt(opts.timeoutMs,"--timeout-ms",1),waitForMs:parseOptionalInt(opts.waitForMs,"--wait-for-ms",0)}}],...opts.goal?{goal:opts.goal}:{},...opts.judge?{judgeEnabled:!0}:{},...retentionDays!==void 0?{retentionDays}:{},...opts.emails?{notification:{email:{enabled:!0,recipients:parseCsvList(opts.emails),includeDiffs:!0}}}:{}}})}case"monitor.list":return withConnection({tool:"monitor.list",input:{}});case"monitor.get":case"monitor.pause":case"monitor.resume":case"monitor.delete":case"monitor.run":case"monitor.checks":{if(!opts.monitorId)throw new Error(`Pass --monitor-id to run ${tool}.`);return withConnection({tool,input:{monitorId:opts.monitorId}})}case"monitor.check":{if(!opts.monitorId)throw new Error("Pass --monitor-id to run monitor.check.");if(!opts.checkId)throw new Error("Pass --check-id to run monitor.check.");return withConnection({tool:"monitor.check",input:{monitorId:opts.monitorId,checkId:opts.checkId}})}default:throw new Error(`Unknown integration tool '${tool}'. Firecrawl supports search, scrape, map, crawl, and monitor.* tools.`)}}__name(buildFirecrawlRunRequest,"buildFirecrawlRunRequest");function withRunConnection(request,opts){let connectionAlias=opts.connection?.trim();return connectionAlias?{...request,connectionAlias}:request}__name(withRunConnection,"withRunConnection");async function readToolInput(value,opts){let raw=value;if(value==="-"){if(process.stdin.isTTY)throw new Error("Pipe JSON input to the command when using --input -.");raw=await readStdinValue()}else if(value.startsWith("@")){let file=value.slice(1);if(!file)throw new Error("Pass a file path after @ in --input @file.");let filePath=path38.resolve(resolveProjectCwd(opts.cwd),file);try{raw=fs37.readFileSync(filePath,"utf8")}catch(error){throw new Error(error instanceof Error?error.message:`Could not read ${filePath}.`)}}let parsed;try{parsed=JSON.parse(raw)}catch(error){throw new Error(`Integration tool input must be valid JSON: ${error instanceof Error?error.message:"parse failed"}`)}if(!parsed||typeof parsed!="object"||Array.isArray(parsed))throw new Error("Integration tool input must be a JSON object.");return parsed}__name(readToolInput,"readToolInput");function parseFirecrawlMonitorTarget(value){if(value===void 0||value==="scrape")return"scrape";if(value==="crawl")return"crawl";throw new Error("--target must be 'scrape' or 'crawl'.")}__name(parseFirecrawlMonitorTarget,"parseFirecrawlMonitorTarget");function parseCsvList(value){let parts=value.split(",").map(part=>part.trim()).filter(part=>part.length>0);if(parts.length===0)throw new Error("Expected at least one comma-separated value.");return parts}__name(parseCsvList,"parseCsvList");function parseOptionalChoiceList(value,option,choices){if(value===void 0)return;let values=parseCsvList(value).map(item=>item.toLowerCase());for(let item of values)if(!choices.includes(item))throw new Error(`${option} must contain only: ${choices.join(", ")}.`);return values}__name(parseOptionalChoiceList,"parseOptionalChoiceList");function parseFirecrawlFreshness(value){if(value!==void 0){if(value==="hour"||value==="day"||value==="week"||value==="month"||value==="year")return value;throw new Error("--freshness must be hour, day, week, month, or year.")}}__name(parseFirecrawlFreshness,"parseFirecrawlFreshness");function parseCountryCode(value){if(value!==void 0){if(!/^[A-Za-z]{2}$/.test(value))throw new Error("--country must be a two-letter country code.");return value.toUpperCase()}}__name(parseCountryCode,"parseCountryCode");function parseFirecrawlFormats(value){let result={},parts=(value??"markdown").split(",").map(part=>part.trim().toLowerCase()).filter(part=>part.length>0);for(let part of parts)switch(part){case"markdown":result.markdown=!0;break;case"summary":result.summary=!0;break;case"links":result.links=!0;break;case"images":result.images=!0;break;case"html":result.html="cleaned";break;case"raw-html":case"rawhtml":result.html="raw";break;default:throw new Error(`Unknown Firecrawl scrape format '${part}'. Use markdown, summary, links, images, html, or raw-html.`)}if(!Object.values(result).some(enabled=>!!enabled))throw new Error("Choose at least one Firecrawl scrape format.");return result}__name(parseFirecrawlFormats,"parseFirecrawlFormats");function parseOptionalInt(value,option,min){if(value===void 0)return;let parsed=Number(value);if(!Number.isInteger(parsed)||parsed<min)throw new Error(`${option} must be an integer greater than or equal to ${min}.`);return parsed}__name(parseOptionalInt,"parseOptionalInt");function trimContent(content2,maxLength){return content2.length<=maxLength?content2:`${content2.slice(0,maxLength).trimEnd()}
884
869
  ...`}__name(trimContent,"trimContent");function trimSearchExcerpt(content2,maxLength=1200){if(content2.length<=maxLength)return content2;let candidate=content2.slice(0,maxLength+1),sentenceEnd=[...candidate.matchAll(/[.!?](?=\s|$)/g)].at(-1)?.index,cutoff=sentenceEnd!==void 0&&sentenceEnd>=maxLength*.6?sentenceEnd+1:maxLength;return`${candidate.slice(0,cutoff).trimEnd()}
885
870
  ...`}__name(trimSearchExcerpt,"trimSearchExcerpt");function resolveProjectId4(opts){if(opts.project)return opts.project;let cwd=resolveProjectCwd(opts.cwd);return loadProjectSettings(cwd).projectId}__name(resolveProjectId4,"resolveProjectId");function resolveOrganizationId(opts){if(opts.org)return opts.org;try{let cwd=resolveProjectCwd(opts.cwd),settings=loadProjectSettings(cwd);if(settings.organizationId)return settings.organizationId}catch{}let active=readCredentials()?.activeOrganization?.id;if(active)return active;throw new Error("No organization found. Run inside a Fimo project, pass --org <id>, or run `fimo switch`.")}__name(resolveOrganizationId,"resolveOrganizationId");async function resolveConnectionToken(opts){if(opts.token)return opts.token;if(opts.tokenStdin)return readStdinValue();assertInteractive("Pass --token-stdin or --token <value>.","integrations connect");let value=await bt({message:"Integration API token",validate:__name(input=>input?.trim().length?void 0:"token required","validate")});if(q(value))throw new Error("Cancelled.");return String(value)}__name(resolveConnectionToken,"resolveConnectionToken");async function readStdinValue(){if(process.stdin.isTTY)throw new Error("Pass a value or pipe one with --stdin.");let chunks=[];for await(let chunk of process.stdin)chunks.push(Buffer.isBuffer(chunk)?chunk:Buffer.from(chunk));return Buffer.concat(chunks).toString("utf8").replace(/\r?\n$/,"")}__name(readStdinValue,"readStdinValue");init_dist();init_auth();init_config();init_sdk_transport();init_project();var EMAIL_RE=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,ORGANIZATION_ROLE_OPTIONS=[{value:"member",label:"Member",hint:"Can create projects and view members"},{value:"admin",label:"Admin",hint:"Can manage members, settings, and projects"},{value:"owner",label:"Owner",hint:"Full control over the organization"}],PROJECT_ROLE_OPTIONS=[{value:"view",label:"Can view",hint:"Read-only access to the project"},{value:"comment",label:"Can comment",hint:"Read-only access, kept for people who already hold it"},{value:"edit",label:"Can edit",hint:"Can edit code, content, assets, and use AI chat"},{value:"full",label:"Full access",hint:"Can manage settings, sharing, and publishing"}],SELECTABLE_PROJECT_ROLES=["view","edit","full"];async function inviteCommand(options){let cfg=loadConfig();requireCredentials(cfg);let isPretty2=currentMode().format==="pretty";isPretty2&&mt("Invite a user to Fimo");let fimo=createCliFimoClient(cfg),target=await resolveInviteTarget(options.target);if(!target)return;if(target==="project"&&options.resend){ui.error({command:"invite",code:"RESEND_PROJECT_UNSUPPORTED",message:"`--resend` is only supported for organization invites."});return}let email=await resolveSingleEmail(options.email);if(!email)return;if(target==="organization"){let organization=await resolveOrganization2(fimo,options.org);if(!organization)return;let role2=await resolveOrganizationRole(options.role);if(!role2||(isPretty2&&wt(["Target: organization",`Organization: ${organization.name} (${organization.id})`,`Email: ${email}`,`Role: ${role2}`,options.resend?"Resend existing invite: yes":null].filter(Boolean).join(`
886
871
  `),"Review invite"),!await confirmInvite(options.yes)))return;let sp2=spinner(options.resend?"Resending invitation":"Sending invitation");try{await fimo.execute("organizations.invite",{organizationId:organization.id,email,role:role2,resend:options.resend}),sp2.succeed(options.resend?"Invitation resent":"Invitation sent")}catch(error){throw rethrowCliAuthError(error,()=>sp2.fail("Authentication required")),sp2.fail(options.resend?"Failed to resend invitation":"Failed to send invitation"),error}ui.ok({command:"invite",headline:`${options.resend?"Resent":"Sent"} organization invite to ${email} for ${organization.name} as ${role2}.`,details:{target:"organization",organization_id:organization.id,organization_name:organization.name,email,role:role2,resent:options.resend===!0}});return}let project=await resolveProject2(fimo,options);if(!project)return;let role=await resolveProjectRole(options.role);if(!role||(isPretty2&&wt(["Target: project",`Project: ${formatProjectLabel(project)} (${project.id})`,`Email: ${email}`,`Access: ${role}`].join(`
887
- `),"Review invite"),!await confirmInvite(options.yes)))return;let sp=spinner("Sending invitation");try{await fimo.execute("projects.invite",{projectId:project.id,email,role}),sp.succeed("Invitation sent")}catch(error){throw rethrowCliAuthError(error,()=>sp.fail("Authentication required")),sp.fail("Failed to send invitation"),error}ui.ok({command:"invite",headline:`Sent project invite to ${email} for ${formatProjectLabel(project)} as ${role}.`,details:{target:"project",project_id:project.id,project_name:project.name,email,role}})}__name(inviteCommand,"inviteCommand");async function resolveInviteTarget(targetArg){if(targetArg){let normalized=normalizeTarget(targetArg);return normalized||(ui.error({command:"invite",code:"INVALID_TARGET",message:`Unsupported target "${targetArg}".`,hint:'Use "organization" or "project".'}),null)}let selected=await _t({message:"Where do you want to invite this user?",initialValue:"project",options:[{value:"project",label:"Project",hint:"Invite someone to collaborate on a single project"},{value:"organization",label:"Organization",hint:"Invite someone to join the organization"}]});return q(selected)?(ui.info({command:"invite",message:"Cancelled."}),null):normalizeTarget(String(selected))}__name(resolveInviteTarget,"resolveInviteTarget");async function resolveSingleEmail(emailArg){let initialValue=emailArg?.trim();if(initialValue){let normalized=normalizeEmail(initialValue);return normalized||(ui.error({command:"invite",code:"INVALID_EMAIL",message:"Enter a single valid email address."}),null)}let email=await Ot({message:"Who do you want to invite?",placeholder:"jane@acme.com",validate:__name(value=>validateEmailInput(String(value??"")),"validate")});return q(email)?(ui.info({command:"invite",message:"Cancelled."}),null):normalizeEmail(String(email))}__name(resolveSingleEmail,"resolveSingleEmail");async function resolveOrganization2(fimo,explicitOrganizationId){if(explicitOrganizationId){let{data:orgs3}=await fimo.execute("organizations.list",{}),organization=orgs3.find(org=>org.id===explicitOrganizationId);return organization||(ui.error({command:"invite",code:"ORGANIZATION_NOT_FOUND",message:`Organization ${explicitOrganizationId} was not found in your account.`}),null)}let creds=readCredentials(loadConfig());if(creds?.activeOrganization)return creds.activeOrganization;let{data:orgs2}=await fimo.execute("organizations.list",{});if(orgs2.length===0)return ui.error({command:"invite",code:"NO_ORGANIZATIONS",message:"No organization found for this account."}),null;if(orgs2.length===1)return orgs2[0];let selected=await _t({message:"Select an organization",options:orgs2.map(org=>({value:org.id,label:org.name,hint:org.slug}))});return q(selected)?(ui.info({command:"invite",message:"Cancelled."}),null):orgs2.find(org=>org.id===selected)??null}__name(resolveOrganization2,"resolveOrganization");async function resolveOrganizationRole(roleArg){if(roleArg){let normalized=normalizeOrganizationRole(roleArg);return normalized||(ui.error({command:"invite",code:"INVALID_ROLE",message:`Unsupported organization role "${roleArg}".`,hint:"Use member, admin, or owner."}),null)}let selected=await _t({message:"Select the organization role",initialValue:"member",options:ORGANIZATION_ROLE_OPTIONS});return q(selected)?(ui.info({command:"invite",message:"Cancelled."}),null):normalizeOrganizationRole(String(selected))}__name(resolveOrganizationRole,"resolveOrganizationRole");async function resolveProjectRole(roleArg){if(roleArg){let normalized=normalizeProjectRole(roleArg);return normalized||(ui.error({command:"invite",code:"INVALID_ROLE",message:`Unsupported project access "${roleArg}".`,hint:"Use view, edit, or full."}),null)}let selected=await _t({message:"Select the project access level",initialValue:"edit",options:PROJECT_ROLE_OPTIONS.filter(option2=>SELECTABLE_PROJECT_ROLES.includes(option2.value))});return q(selected)?(ui.info({command:"invite",message:"Cancelled."}),null):normalizeProjectRole(String(selected))}__name(resolveProjectRole,"resolveProjectRole");async function resolveProject2(fimo,options){if(options.project)return(await fimo.execute("projects.get",{projectId:options.project})).data;if(!options.org){let local=tryLoadLocalProject(options.cwd);if(local?.projectId)return(await fimo.execute("projects.get",{projectId:local.projectId})).data}let organization=await resolveOrganization2(fimo,options.org);if(!organization)return null;let{data:portableProjects}=await fimo.execute("projects.list",{organizationId:organization.id}),projects2=portableProjects;if(projects2.length===0)return ui.error({command:"invite",code:"NO_PROJECTS_IN_ORGANIZATION",message:`No projects found in ${organization.name}.`}),null;if(projects2.length===1)return projects2[0];let selected=await _t({message:"Select a project",options:projects2.map(project=>({value:project.id,label:formatProjectLabel(project),hint:project.id}))});return q(selected)?(ui.info({command:"invite",message:"Cancelled."}),null):projects2.find(project=>project.id===selected)??null}__name(resolveProject2,"resolveProject");async function confirmInvite(skipPrompt){if(skipPrompt)return!0;let confirmed=await ot2({message:"Send this invitation now?",initialValue:!0});return q(confirmed)||!confirmed?(ui.info({command:"invite",message:"Cancelled."}),!1):!0}__name(confirmInvite,"confirmInvite");function tryLoadLocalProject(cwdOption){let cwd=resolveProjectCwd(cwdOption);try{return loadProjectSettings(cwd)}catch{return null}}__name(tryLoadLocalProject,"tryLoadLocalProject");function normalizeTarget(value){let normalized=value.trim().toLowerCase();return normalized==="organization"||normalized==="org"?"organization":normalized==="project"?"project":null}__name(normalizeTarget,"normalizeTarget");function normalizeOrganizationRole(value){let normalized=value.trim().toLowerCase();return ORGANIZATION_ROLE_OPTIONS.find(option2=>option2.value===normalized)?.value??null}__name(normalizeOrganizationRole,"normalizeOrganizationRole");function normalizeProjectRole(value){let normalized=value.trim().toLowerCase();return PROJECT_ROLE_OPTIONS.find(option2=>option2.value===normalized)?.value??null}__name(normalizeProjectRole,"normalizeProjectRole");function validateEmailInput(value){if(!normalizeEmail(value))return"Enter a single valid email address"}__name(validateEmailInput,"validateEmailInput");function normalizeEmail(value){let tokens=value.trim().split(/[,\s]+/).filter(Boolean);if(tokens.length!==1)return null;let[email]=tokens,normalized=email.toLowerCase();return EMAIL_RE.test(normalized)?normalized:null}__name(normalizeEmail,"normalizeEmail");function formatProjectLabel(project){return project.displayName?.trim()||project.name}__name(formatProjectLabel,"formatProjectLabel");init_dist();import fs38 from"node:fs";import path39 from"node:path";init_project_context();init_project();function renderPrettyJson7(data){return JSON.stringify(data,null,2)}__name(renderPrettyJson7,"renderPrettyJson");function dbLabelsRuntimeWarnings(cwd){let warning=getDbLabelsRuntimeWarning(resolveProjectCwd(cwd));return warning?[warning]:void 0}__name(dbLabelsRuntimeWarnings,"dbLabelsRuntimeWarnings");async function labelsListCommand(options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd);await requireOperation("i18n.list",{projectId:ctx.projectId,branch:ctx.branch});let{data:result}=await fimo.execute("labels.list",{projectId:ctx.projectId,branch:ctx.branch,locale:options.locale});ui.result({command:"labels list",data:result,render:__name(()=>renderPrettyJson7(result),"render")})}__name(labelsListCommand,"labelsListCommand");async function labelsSetCommand(key,valueArg,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0});await requireOperation("i18n.update",{projectId:ctx.projectId,branch:ctx.branch});let value=options.stdin?await readStdinValue2():options.value??valueArg??await readStdinValue2(),result=await fimo.execute("labels.set",{projectId:ctx.projectId,branch:ctx.branch,key,value,locale:options.locale});ui.result({command:"labels set",data:result,render:__name(()=>`Set ${key} (${result.locale})`,"render"),warnings:dbLabelsRuntimeWarnings(options.cwd)})}__name(labelsSetCommand,"labelsSetCommand");async function labelsSetManyCommand(options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0});await requireOperation("i18n.update",{projectId:ctx.projectId,branch:ctx.branch});let records=readLabelRecords(options).map(({key,value,locale})=>({key,value,locale:locale??options.locale})),result=await fimo.execute("labels.setMany",{projectId:ctx.projectId,branch:ctx.branch,records});ui.result({command:"labels set-many",data:{...result,locale:options.locale??result.defaultLocale,labels:records.length},render:__name(()=>`Set ${records.length} label${records.length===1?"":"s"} (${result.locales.join(", ")})`,"render"),warnings:dbLabelsRuntimeWarnings(options.cwd)})}__name(labelsSetManyCommand,"labelsSetManyCommand");async function labelsDeleteCommand(key,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0});await requireOperation("i18n.delete",{projectId:ctx.projectId,branch:ctx.branch});let result=await fimo.execute("labels.delete",{projectId:ctx.projectId,branch:ctx.branch,key,locale:options.locale});ui.result({command:"labels delete",data:result,render:__name(()=>`Deleted ${key} (${result.locale})`,"render"),warnings:dbLabelsRuntimeWarnings(options.cwd)})}__name(labelsDeleteCommand,"labelsDeleteCommand");function readLabelRecords(options){if(options.file&&options.data)throw new Error("Pass either --file or --data, not both.");if(!options.file&&!options.data)throw new Error("Pass --file <path> or --data <json>.");let raw=options.data??readLabelFile(options),parsed=JSON.parse(raw);if(Array.isArray(parsed))return parsed.map(item=>{if(!item||typeof item!="object")throw new Error("Label arrays must contain objects with key and value fields.");let record=item;if(typeof record.key!="string")throw new Error("Each label record must include a string key.");let value=record.value??record.defaultValue;if(typeof value!="string")throw new Error(`Label ${record.key} must include a string value.`);let locale;if(record.locale!==void 0){if(typeof record.locale!="string")throw new Error(`Label ${record.key} has a non-string locale.`);locale=record.locale}return{key:record.key,value,locale}});if(!parsed||typeof parsed!="object")throw new Error("Labels JSON must be an object map or an array of { key, value } records.");return Object.entries(parsed).map(([key,value])=>{if(typeof value!="string")throw new Error(`Label ${key} must be a string.`);return{key,value}})}__name(readLabelRecords,"readLabelRecords");function readLabelFile(options){let projectRoot=resolveProjectCwd(options.cwd),filePath=path39.resolve(projectRoot,options.file);return fs38.readFileSync(filePath,"utf8")}__name(readLabelFile,"readLabelFile");async function readStdinValue2(){if(process.stdin.isTTY)throw new Error("Pass a label value or pipe one with --stdin.");let chunks=[];for await(let chunk of process.stdin)chunks.push(Buffer.isBuffer(chunk)?chunk:Buffer.from(chunk));return Buffer.concat(chunks).toString("utf8").replace(/\r?\n$/,"")}__name(readStdinValue2,"readStdinValue");import path42 from"node:path";init_esm();init_dist();init_auth();init_config();init_sdk_transport();init_project_services();import fs39 from"node:fs";import path40 from"node:path";init_config();init_project();var BUILD_HOOKS={"react-router":[{files:["vite.config.ts","vite.config.mts","vite.config.js"],specifiers:["fimo-react-router/vite"],instruction:"add `fimo()` from `fimo-react-router/vite` to the Vite `plugins` array"}],vite:[{files:["vite.config.ts","vite.config.mts","vite.config.js"],specifiers:["fimo-react-router/vite","fimo-vite"],instruction:"add `fimo()` to the Vite `plugins` array, from `fimo-react-router/vite` in a React application or `fimo-vite` otherwise"}],astro:[{files:["astro.config.mjs","astro.config.ts","astro.config.js"],specifiers:["fimo-astro/config","fimo/astro/config"],instruction:"add `fimo()` from `fimo-astro/config` to `integrations`"}],nextjs:[{files:["next.config.ts","next.config.mjs","next.config.js"],specifiers:["fimo-next/config"],instruction:"wrap the exported config in `withFimo()` from `fimo-next/config`"}],sveltekit:[{files:["vite.config.ts","vite.config.js"],specifiers:["fimo-sveltekit/vite"],instruction:"add `fimo()` from `fimo-sveltekit/vite` to the Vite `plugins` array"},{files:["svelte.config.js","svelte.config.ts"],specifiers:["fimo-sveltekit/config"],instruction:"set `kit.adapter` to `fimo()` from `fimo-sveltekit/config`"}]};async function adoptApplication(targetDir){let detected=await detectProjectFramework(targetDir),framework=detected?.slug??null;if(!framework||!isTemplateFramework(framework)){let reason=detected?`${detected.name} is not a framework Fimo builds yet`:"No supported framework was detected here";return{framework,written:[],warnings:[`${reason} \u2014 linked without Fimo build setup. Supported: ${TEMPLATE_FRAMEWORKS.join(", ")}.`]}}let written=[],warnings=[],dependency=declareFimoDependency(targetDir);dependency==="written"?written.push("package.json"):dependency==="unreadable"&&warnings.push("Could not read package.json, so `fimo` was not added as a dependency. Add it yourself.");let config=recordRuntimeFramework(targetDir,framework);return config.written&&written.push(config.written),config.warning&&warnings.push(config.warning),warnings.push(...missingBuildHooks(targetDir,framework)),{framework,written,warnings}}__name(adoptApplication,"adoptApplication");function isTemplateFramework(slug){return TEMPLATE_FRAMEWORKS.includes(slug)}__name(isTemplateFramework,"isTemplateFramework");function declareFimoDependency(targetDir){let pkgPath=path40.join(targetDir,"package.json"),pkg;try{pkg=JSON.parse(fs39.readFileSync(pkgPath,"utf-8"))}catch{return"unreadable"}if(pkg.dependencies?.fimo||pkg.devDependencies?.fimo)return"unchanged";let pin=resolveFimoPin({devPackageRoot:CLI_ROOT});return pin?(pkg.dependencies=sortedKeys({...pkg.dependencies??{},fimo:pin}),fs39.writeFileSync(pkgPath,`${JSON.stringify(pkg,null,2)}
872
+ `),"Review invite"),!await confirmInvite(options.yes)))return;let sp=spinner("Sending invitation");try{await fimo.execute("projects.invite",{projectId:project.id,email,role}),sp.succeed("Invitation sent")}catch(error){throw rethrowCliAuthError(error,()=>sp.fail("Authentication required")),sp.fail("Failed to send invitation"),error}ui.ok({command:"invite",headline:`Sent project invite to ${email} for ${formatProjectLabel(project)} as ${role}.`,details:{target:"project",project_id:project.id,project_name:project.name,email,role}})}__name(inviteCommand,"inviteCommand");async function resolveInviteTarget(targetArg){if(targetArg){let normalized=normalizeTarget(targetArg);return normalized||(ui.error({command:"invite",code:"INVALID_TARGET",message:`Unsupported target "${targetArg}".`,hint:'Use "organization" or "project".'}),null)}let selected=await _t({message:"Where do you want to invite this user?",initialValue:"project",options:[{value:"project",label:"Project",hint:"Invite someone to collaborate on a single project"},{value:"organization",label:"Organization",hint:"Invite someone to join the organization"}]});return q(selected)?(ui.info({command:"invite",message:"Cancelled."}),null):normalizeTarget(String(selected))}__name(resolveInviteTarget,"resolveInviteTarget");async function resolveSingleEmail(emailArg){let initialValue=emailArg?.trim();if(initialValue){let normalized=normalizeEmail(initialValue);return normalized||(ui.error({command:"invite",code:"INVALID_EMAIL",message:"Enter a single valid email address."}),null)}let email=await Ot({message:"Who do you want to invite?",placeholder:"jane@acme.com",validate:__name(value=>validateEmailInput(String(value??"")),"validate")});return q(email)?(ui.info({command:"invite",message:"Cancelled."}),null):normalizeEmail(String(email))}__name(resolveSingleEmail,"resolveSingleEmail");async function resolveOrganization2(fimo,explicitOrganizationId){if(explicitOrganizationId){let{data:orgs3}=await fimo.execute("organizations.list",{}),organization=orgs3.find(org=>org.id===explicitOrganizationId);return organization||(ui.error({command:"invite",code:"ORGANIZATION_NOT_FOUND",message:`Organization ${explicitOrganizationId} was not found in your account.`}),null)}let creds=readCredentials(loadConfig());if(creds?.activeOrganization)return creds.activeOrganization;let{data:orgs2}=await fimo.execute("organizations.list",{});if(orgs2.length===0)return ui.error({command:"invite",code:"NO_ORGANIZATIONS",message:"No organization found for this account."}),null;if(orgs2.length===1)return orgs2[0];let selected=await _t({message:"Select an organization",options:orgs2.map(org=>({value:org.id,label:org.name,hint:org.slug}))});return q(selected)?(ui.info({command:"invite",message:"Cancelled."}),null):orgs2.find(org=>org.id===selected)??null}__name(resolveOrganization2,"resolveOrganization");async function resolveOrganizationRole(roleArg){if(roleArg){let normalized=normalizeOrganizationRole(roleArg);return normalized||(ui.error({command:"invite",code:"INVALID_ROLE",message:`Unsupported organization role "${roleArg}".`,hint:"Use member, admin, or owner."}),null)}let selected=await _t({message:"Select the organization role",initialValue:"member",options:ORGANIZATION_ROLE_OPTIONS});return q(selected)?(ui.info({command:"invite",message:"Cancelled."}),null):normalizeOrganizationRole(String(selected))}__name(resolveOrganizationRole,"resolveOrganizationRole");async function resolveProjectRole(roleArg){if(roleArg){let normalized=normalizeProjectRole(roleArg);return normalized||(ui.error({command:"invite",code:"INVALID_ROLE",message:`Unsupported project access "${roleArg}".`,hint:"Use view, edit, or full."}),null)}let selected=await _t({message:"Select the project access level",initialValue:"edit",options:PROJECT_ROLE_OPTIONS.filter(option=>SELECTABLE_PROJECT_ROLES.includes(option.value))});return q(selected)?(ui.info({command:"invite",message:"Cancelled."}),null):normalizeProjectRole(String(selected))}__name(resolveProjectRole,"resolveProjectRole");async function resolveProject2(fimo,options){if(options.project)return(await fimo.execute("projects.get",{projectId:options.project})).data;if(!options.org){let local=tryLoadLocalProject(options.cwd);if(local?.projectId)return(await fimo.execute("projects.get",{projectId:local.projectId})).data}let organization=await resolveOrganization2(fimo,options.org);if(!organization)return null;let{data:portableProjects}=await fimo.execute("projects.list",{organizationId:organization.id}),projects2=portableProjects;if(projects2.length===0)return ui.error({command:"invite",code:"NO_PROJECTS_IN_ORGANIZATION",message:`No projects found in ${organization.name}.`}),null;if(projects2.length===1)return projects2[0];let selected=await _t({message:"Select a project",options:projects2.map(project=>({value:project.id,label:formatProjectLabel(project),hint:project.id}))});return q(selected)?(ui.info({command:"invite",message:"Cancelled."}),null):projects2.find(project=>project.id===selected)??null}__name(resolveProject2,"resolveProject");async function confirmInvite(skipPrompt){if(skipPrompt)return!0;let confirmed=await ot2({message:"Send this invitation now?",initialValue:!0});return q(confirmed)||!confirmed?(ui.info({command:"invite",message:"Cancelled."}),!1):!0}__name(confirmInvite,"confirmInvite");function tryLoadLocalProject(cwdOption){let cwd=resolveProjectCwd(cwdOption);try{return loadProjectSettings(cwd)}catch{return null}}__name(tryLoadLocalProject,"tryLoadLocalProject");function normalizeTarget(value){let normalized=value.trim().toLowerCase();return normalized==="organization"||normalized==="org"?"organization":normalized==="project"?"project":null}__name(normalizeTarget,"normalizeTarget");function normalizeOrganizationRole(value){let normalized=value.trim().toLowerCase();return ORGANIZATION_ROLE_OPTIONS.find(option=>option.value===normalized)?.value??null}__name(normalizeOrganizationRole,"normalizeOrganizationRole");function normalizeProjectRole(value){let normalized=value.trim().toLowerCase();return PROJECT_ROLE_OPTIONS.find(option=>option.value===normalized)?.value??null}__name(normalizeProjectRole,"normalizeProjectRole");function validateEmailInput(value){if(!normalizeEmail(value))return"Enter a single valid email address"}__name(validateEmailInput,"validateEmailInput");function normalizeEmail(value){let tokens=value.trim().split(/[,\s]+/).filter(Boolean);if(tokens.length!==1)return null;let[email]=tokens,normalized=email.toLowerCase();return EMAIL_RE.test(normalized)?normalized:null}__name(normalizeEmail,"normalizeEmail");function formatProjectLabel(project){return project.displayName?.trim()||project.name}__name(formatProjectLabel,"formatProjectLabel");init_dist();import fs38 from"node:fs";import path39 from"node:path";init_project_context();init_project();function renderPrettyJson7(data){return JSON.stringify(data,null,2)}__name(renderPrettyJson7,"renderPrettyJson");function dbLabelsRuntimeWarnings(cwd){let warning=getDbLabelsRuntimeWarning(resolveProjectCwd(cwd));return warning?[warning]:void 0}__name(dbLabelsRuntimeWarnings,"dbLabelsRuntimeWarnings");async function labelsListCommand(options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd);await requireOperation("i18n.list",{projectId:ctx.projectId,branch:ctx.branch});let{data:result}=await fimo.execute("labels.list",{projectId:ctx.projectId,branch:ctx.branch,locale:options.locale});ui.result({command:"labels list",data:result,render:__name(()=>renderPrettyJson7(result),"render")})}__name(labelsListCommand,"labelsListCommand");async function labelsSetCommand(key,valueArg,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0});await requireOperation("i18n.update",{projectId:ctx.projectId,branch:ctx.branch});let value=options.stdin?await readStdinValue2():options.value??valueArg??await readStdinValue2(),result=await fimo.execute("labels.set",{projectId:ctx.projectId,branch:ctx.branch,key,value,locale:options.locale});ui.result({command:"labels set",data:result,render:__name(()=>`Set ${key} (${result.locale})`,"render"),warnings:dbLabelsRuntimeWarnings(options.cwd)})}__name(labelsSetCommand,"labelsSetCommand");async function labelsSetManyCommand(options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0});await requireOperation("i18n.update",{projectId:ctx.projectId,branch:ctx.branch});let records=readLabelRecords(options).map(({key,value,locale})=>({key,value,locale:locale??options.locale})),result=await fimo.execute("labels.setMany",{projectId:ctx.projectId,branch:ctx.branch,records});ui.result({command:"labels set-many",data:{...result,locale:options.locale??result.defaultLocale,labels:records.length},render:__name(()=>`Set ${records.length} label${records.length===1?"":"s"} (${result.locales.join(", ")})`,"render"),warnings:dbLabelsRuntimeWarnings(options.cwd)})}__name(labelsSetManyCommand,"labelsSetManyCommand");async function labelsDeleteCommand(key,options,cmd){let{ctx,fimo}=await bootstrapProjectCommand(options,cmd,{refuseReadOnly:!0});await requireOperation("i18n.delete",{projectId:ctx.projectId,branch:ctx.branch});let result=await fimo.execute("labels.delete",{projectId:ctx.projectId,branch:ctx.branch,key,locale:options.locale});ui.result({command:"labels delete",data:result,render:__name(()=>`Deleted ${key} (${result.locale})`,"render"),warnings:dbLabelsRuntimeWarnings(options.cwd)})}__name(labelsDeleteCommand,"labelsDeleteCommand");function readLabelRecords(options){if(options.file&&options.data)throw new Error("Pass either --file or --data, not both.");if(!options.file&&!options.data)throw new Error("Pass --file <path> or --data <json>.");let raw=options.data??readLabelFile(options),parsed=JSON.parse(raw);if(Array.isArray(parsed))return parsed.map(item=>{if(!item||typeof item!="object")throw new Error("Label arrays must contain objects with key and value fields.");let record=item;if(typeof record.key!="string")throw new Error("Each label record must include a string key.");let value=record.value??record.defaultValue;if(typeof value!="string")throw new Error(`Label ${record.key} must include a string value.`);let locale;if(record.locale!==void 0){if(typeof record.locale!="string")throw new Error(`Label ${record.key} has a non-string locale.`);locale=record.locale}return{key:record.key,value,locale}});if(!parsed||typeof parsed!="object")throw new Error("Labels JSON must be an object map or an array of { key, value } records.");return Object.entries(parsed).map(([key,value])=>{if(typeof value!="string")throw new Error(`Label ${key} must be a string.`);return{key,value}})}__name(readLabelRecords,"readLabelRecords");function readLabelFile(options){let projectRoot=resolveProjectCwd(options.cwd),filePath=path39.resolve(projectRoot,options.file);return fs38.readFileSync(filePath,"utf8")}__name(readLabelFile,"readLabelFile");async function readStdinValue2(){if(process.stdin.isTTY)throw new Error("Pass a label value or pipe one with --stdin.");let chunks=[];for await(let chunk of process.stdin)chunks.push(Buffer.isBuffer(chunk)?chunk:Buffer.from(chunk));return Buffer.concat(chunks).toString("utf8").replace(/\r?\n$/,"")}__name(readStdinValue2,"readStdinValue");import path42 from"node:path";init_esm();init_dist();init_auth();init_config();init_sdk_transport();init_project_services();import fs39 from"node:fs";import path40 from"node:path";init_config();init_project();var BUILD_HOOKS={"react-router":[{files:["vite.config.ts","vite.config.mts","vite.config.js"],specifiers:["fimo-react-router/vite"],instruction:"add `fimo()` from `fimo-react-router/vite` to the Vite `plugins` array"}],vite:[{files:["vite.config.ts","vite.config.mts","vite.config.js"],specifiers:["fimo-react-router/vite","fimo-vite"],instruction:"add `fimo()` to the Vite `plugins` array, from `fimo-react-router/vite` in a React application or `fimo-vite` otherwise"}],astro:[{files:["astro.config.mjs","astro.config.ts","astro.config.js"],specifiers:["fimo-astro/config","fimo/astro/config"],instruction:"add `fimo()` from `fimo-astro/config` to `integrations`"}],nextjs:[{files:["next.config.ts","next.config.mjs","next.config.js"],specifiers:["fimo-next/config"],instruction:"wrap the exported config in `withFimo()` from `fimo-next/config`"}],sveltekit:[{files:["vite.config.ts","vite.config.js"],specifiers:["fimo-sveltekit/vite"],instruction:"add `fimo()` from `fimo-sveltekit/vite` to the Vite `plugins` array"},{files:["svelte.config.js","svelte.config.ts"],specifiers:["fimo-sveltekit/config"],instruction:"set `kit.adapter` to `fimo()` from `fimo-sveltekit/config`"}]};async function adoptApplication(targetDir){let detected=await detectProjectFramework(targetDir),framework=detected?.slug??null;if(!framework||!isTemplateFramework(framework)){let reason=detected?`${detected.name} is not a framework Fimo builds yet`:"No supported framework was detected here";return{framework,written:[],warnings:[`${reason} \u2014 linked without Fimo build setup. Supported: ${TEMPLATE_FRAMEWORKS.join(", ")}.`]}}let written=[],warnings=[],dependency=declareFimoDependency(targetDir);dependency==="written"?written.push("package.json"):dependency==="unreadable"&&warnings.push("Could not read package.json, so `fimo` was not added as a dependency. Add it yourself.");let config=recordRuntimeFramework(targetDir,framework);return config.written&&written.push(config.written),config.warning&&warnings.push(config.warning),warnings.push(...missingBuildHooks(targetDir,framework)),{framework,written,warnings}}__name(adoptApplication,"adoptApplication");function isTemplateFramework(slug){return TEMPLATE_FRAMEWORKS.includes(slug)}__name(isTemplateFramework,"isTemplateFramework");function declareFimoDependency(targetDir){let pkgPath=path40.join(targetDir,"package.json"),pkg;try{pkg=JSON.parse(fs39.readFileSync(pkgPath,"utf-8"))}catch{return"unreadable"}if(pkg.dependencies?.fimo||pkg.devDependencies?.fimo)return"unchanged";let pin=resolveFimoPin({devPackageRoot:CLI_ROOT});return pin?(pkg.dependencies=sortedKeys({...pkg.dependencies??{},fimo:pin}),fs39.writeFileSync(pkgPath,`${JSON.stringify(pkg,null,2)}
888
873
  `),"written"):"unchanged"}__name(declareFimoDependency,"declareFimoDependency");function sortedKeys(deps){return Object.fromEntries(Object.entries(deps).sort(([a],[b])=>a.localeCompare(b)))}__name(sortedKeys,"sortedKeys");function recordRuntimeFramework(targetDir,framework){let configPath=resolveProjectConfigPath(targetDir),relative3=path40.relative(targetDir,configPath);if(!fs39.existsSync(configPath)){let fresh={runtime:{framework},version:"4"};return fs39.mkdirSync(path40.dirname(configPath),{recursive:!0}),fs39.writeFileSync(configPath,`${JSON.stringify(fresh,null,2)}
889
874
  `),{written:relative3,warning:null}}let config;try{config=JSON.parse(fs39.readFileSync(configPath,"utf-8"))}catch{return{written:null,warning:`${relative3} is not valid JSON, so its runtime framework could not be verified or updated.`}}return config.runtime?.framework?{written:null,warning:config.runtime.framework===framework?null:`${relative3} declares runtime.framework as ${config.runtime.framework}, but the application was detected as ${framework}. Resolve the mismatch before deploying.`}:(config.runtime={...config.runtime,framework},fs39.writeFileSync(configPath,`${JSON.stringify(config,null,2)}
890
875
  `),{written:relative3,warning:null})}__name(recordRuntimeFramework,"recordRuntimeFramework");function missingBuildHooks(targetDir,framework){let warnings=[];for(let hook of BUILD_HOOKS[framework]){let file=hook.files.find(candidate=>fs39.existsSync(path40.join(targetDir,candidate)));if(!file){warnings.push(`This application has no ${hook.files[0]} \u2014 ${hook.instruction} when you add one.`);continue}let source=fs39.readFileSync(path40.join(targetDir,file),"utf-8");hook.specifiers.some(specifier=>source.includes(specifier))||warnings.push(`${file} does not use \`${hook.specifiers[0]}\` \u2014 ${hook.instruction}.`)}return warnings}__name(missingBuildHooks,"missingBuildHooks");import fs40 from"node:fs";import path41 from"node:path";function removeSeededBranchResidue(targetDir,link){let removed=[],urlKeys=new Set(LOCAL_CONTENT_API_ENV_KEYS),selectorKeys=new Set(LOCAL_ENV_SELECTOR_KEYS);for(let file of[".env",".env.local"]){let filePath=path41.join(targetDir,file);if(!fs40.existsSync(filePath))continue;let original=fs40.readFileSync(filePath,"utf-8"),eol=original.includes(`\r
@@ -931,7 +916,7 @@ Run \`fimo mcp <command> --help\` for command-specific help.
931
916
  `)}__name(renderPublicationList,"renderPublicationList");function renderPublication(publication){let lines=[`Publication: ${publication.id}`,`Status: ${publication.status}`,`Source: ${publication.source.branch} -> ${publication.source.targetEnv}`,`Started: ${publication.createdAt}`,`Finished: ${publication.finishedAt??"still running"}`];return publication.label&&lines.push(`Label: ${publication.label}`),publication.source.commit&&lines.push(`Commit: ${publication.source.commit}`),(publication.source.framework||publication.source.configVersion)&&lines.push(`Project: ${publication.source.framework??"unknown framework"}, config v${publication.source.configVersion??"?"}`),publication.url&&lines.push(`URL: ${publication.url}`),publication.failureCode&&lines.push(`Failure: ${publication.failureCode}`),publication.notes&&lines.push(`Notes: ${publication.notes}`),lines.join(`
932
917
  `)}__name(renderPublication,"renderPublication");function renderPublicationLogs(page){let count=page.events.length,lines=[`Publication ${page.publicationId}: ${count} ${count===1?"event":"events"}`];lines.push("");for(let event of page.events)lines.push(`${logMarker(event)}${event.message}`);return lines.join(`
933
918
  `)}__name(renderPublicationLogs,"renderPublicationLogs");function logMarker(event){switch(event.stream){case"command":return"$ ";case"stderr":case"error":return"! ";case"status":return"# ";default:return" "}}__name(logMarker,"logMarker");function buildOlderHint2(cursor,limit,options){let trailingArgs=[];return options.cwd&&trailingArgs.push("--cwd",options.cwd),buildPaginationHint(["fimo","publish","list"],{cursor,limit,trailingArgs},"Older")}__name(buildOlderHint2,"buildOlderHint");function errorMessage4(error){return error instanceof Error?error.message:String(error)}__name(errorMessage4,"errorMessage");init_esm();init_dist();init_config();init_sdk_transport();init_project_services();init_branch_checkout();init_git();init_project_context();init_project();var PUBLISH_SUBCOMMANDS=new Set(["list","inspect","logs"]),GLOBAL_VALUE_OPTIONS=new Set(["--branch"]),PUBLISH_VALUE_OPTIONS=new Set(["-C","--cwd","--label","--notes"]);function hasRemovedPublishVersion(argv){let commandIndex=-1;for(let index=2;index<argv.length;index+=1){let arg=argv[index];if(GLOBAL_VALUE_OPTIONS.has(arg))index+=1;else if(!arg.startsWith("-")){commandIndex=index;break}}if(commandIndex===-1||argv[commandIndex]!=="publish")return!1;for(let index=commandIndex+1;index<argv.length;index+=1){let arg=argv[index];if(PUBLISH_VALUE_OPTIONS.has(arg)){index+=1;continue}if(arg==="--version"||arg.startsWith("--version="))return!0;if(PUBLISH_SUBCOMMANDS.has(arg))return!1}return!1}__name(hasRemovedPublishVersion,"hasRemovedPublishVersion");function rejectRemovedPublishVersion(){ui.error({command:"publish",code:"PUBLISH_VERSION_REMOVED",message:"--version is no longer supported. Fimo assigns every publication a stable ID.",hint:"Use `--label <text>` if you want a human-readable publication annotation."})}__name(rejectRemovedPublishVersion,"rejectRemovedPublishVersion");async function publishCommand(options,cmd){if(options.version!==void 0){rejectRemovedPublishVersion();return}if(process.env.FIMO_MIGRATION_NO_DEPLOY==="1"){ui.error({command:"publish",code:"MIGRATION_DEPLOY_BLOCKED",message:"Publishing is disabled while a migration is running.",hint:"Finish local migration and QA first, then request deployment separately."});return}let program2=cmd?.parent??cmd,branchOverride2=branchOverrideFromCommand(program2),ctx=await getProjectContext({cwd:options.cwd,branchOverride:branchOverride2}),cwd=resolveProjectCwd(options.cwd),fimo=createCliFimoClient(loadConfig(),ctx.branch),publication=createPublicationControlService(loadConfig(),ctx.branch),{data:project}=await fimo.execute("projects.get",{projectId:ctx.projectId}),productionSourceBranch=project.productionSourceBranch??DEFAULT_BRANCH;if(ctx.branch!==productionSourceBranch){ui.error({command:"publish",code:"PUBLISH_REQUIRES_SOURCE_BRANCH",message:`Refusing to publish from Branch '${ctx.branch}'. Production publishes from '${productionSourceBranch}'.`,hint:`Switch Branches first: \`fimo checkout ${productionSourceBranch}\`.`});return}let source=await inspectSource(cwd,ctx),warnings=publishSourceWarnings(source,ctx.branch);for(let warning of warnings)ui.warn({command:"publish",message:warning});if(!options.skipValidate){let sp=spinner("Running lint + codegen + smoke checks"),report=await runValidate({cwd,branchOverride:branchOverride2});if(!report.ok){sp.fail("Validation failed"),ui.result({command:"publish",data:{stage:"validate",report},render:__name(()=>formatReportHuman(report),"render")}),process.exitCode=report.exitCode;return}sp.succeed("Validation passed")}let request={...options.label===void 0?{}:{label:options.label},...options.notes===void 0?{}:{notes:options.notes}},publishSp=spinner("Publishing (this can take a few minutes)"),publicationId;try{publicationId=await publication.publish(ctx.projectId,request)}catch(error){if(error instanceof PermissionDeniedError&&error.code==="project_taken_down"&&error.detail){publishSp.fail("Publishing is disabled"),ui.error({command:"publish",code:"PUBLISH_DISABLED",message:error.detail});return}rethrowCliAuthError(error,()=>publishSp.fail("Authentication required")),publishSp.fail();let failedPublicationId=publicationIdFromError(error);ui.error({command:"publish",code:"PUBLISH_FAILED",message:`Publish failed: ${errorMessage5(error)}`,...failedPublicationId?{details:{publication_id:failedPublicationId},hint:`Run \`fimo publish inspect ${failedPublicationId}\` for the recorded attempt.`}:{}});return}publishSp.succeed("Published");let[appUrl,built]=await Promise.all([fimo.execute("projects.get",{projectId:ctx.projectId}).then(({data})=>data.appUrl??null).catch(()=>null),builtCommit(fimo,ctx.projectId,publicationId,cwd)]),resultWarnings=[...warnings,...builtCommitWarnings(source,built,publicationId,ctx.branch)];ui.ok({command:"publish",headline:appUrl?`Live at ${appUrl}`:"Published.",details:{publication_id:publicationId,app_url:appUrl,...built===null?{}:{source_commit:built.commit},...built?.subject==null?{}:{source_commit_subject:built.subject},...options.label===void 0?{}:{label:options.label}},...resultWarnings.length>0?{warnings:resultWarnings}:{},...publicationId?{hint:`Inspect it with \`fimo publish inspect ${publicationId}\`.`}:{}})}__name(publishCommand,"publishCommand");async function inspectSource(cwd,ctx){try{let remote=await createGitService(loadConfig(),ctx.branch).getRemote(ctx.projectId,ctx.branch);return await inspectPublishSource({cwd,remoteBranch:remote.branch,remoteUrl:remote.url})}catch(error){return rethrowCliAuthError(error),{status:"unavailable",reason:`the Fimo remote could not be resolved (${errorMessage5(error)})`}}}__name(inspectSource,"inspectSource");function publishSourceWarnings(source,branch){if(source.status==="unavailable")return[`Could not compare this checkout with fimo/${branch}: ${source.reason}. Publishing whatever the Fimo remote holds; local commits that were never deployed are not included.`];let warnings=[];if(source.unpushed>0){let plural=source.unpushed===1?"commit is":"commits are";warnings.push(`${source.unpushed} local ${plural} not on fimo/${branch} and will not be published. \`fimo publish\` never pushes; run \`fimo deploy --publish\` to push and publish your local commits.`)}return source.dirty&&warnings.push("Uncommitted changes in the working tree are not published. Commit them and deploy first."),warnings}__name(publishSourceWarnings,"publishSourceWarnings");async function builtCommit(fimo,projectId,publicationId,cwd){if(!publicationId)return null;try{let{source}=await fimo.execute("publications.get",{projectId,publicationId});return source.commit?{commit:source.commit,subject:await commitSubjectOrNull(cwd,source.commit)}:null}catch{return null}}__name(builtCommit,"builtCommit");function builtCommitWarnings(source,built,publicationId,branch){return built===null?["Could not confirm which commit this publication built."+(publicationId?` Run \`fimo publish inspect ${publicationId}\` to read it from the record.`:"")]:source.status==="known"&&source.remoteHead!==built.commit?[`fimo/${branch} moved while this command ran: the local comparison used ${source.remoteHead.slice(0,7)}, but the publish built ${built.commit.slice(0,7)}.`]:[]}__name(builtCommitWarnings,"builtCommitWarnings");function errorMessage5(error){return error instanceof Error?error.message:String(error)}__name(errorMessage5,"errorMessage");init_dist();init_auth();init_config();init_sdk_transport();init_project_services();async function referralLinkCommand(){let currentUser=await resolveCurrentCliUser("referral link");if(!currentUser)return;let cfg=loadConfig(),referralLink=new URL(`/invite/${encodeURIComponent(currentUser.id)}`,cfg.webUrl).toString();ui.raw({command:"referral link",value:referralLink,field:"url"})}__name(referralLinkCommand,"referralLinkCommand");async function referralStatsCommand(){let currentUser=await resolveCurrentCliUser("referral stats");if(!currentUser)return;let cfg=loadConfig(),summary2=await createCliFimoClient(cfg).execute("referrals.summary",{userId:currentUser.id}),totalReferrals=summary2.counts.signed_up+summary2.counts.activated;ui.kv({command:"referral stats",headline:`Referral stats for ${currentUser.name||currentUser.email}`,fields:{total_referrals:totalReferrals,signed_up:summary2.counts.signed_up,activated:summary2.counts.activated,ai_credits_earned:summary2.credits.total}})}__name(referralStatsCommand,"referralStatsCommand");async function resolveCurrentCliUser(command){let cfg=loadConfig(),creds=requireCredentials(cfg);if(creds.user?.id)return creds.user;let session=await createIdentityService(cfg).getCurrentSession();return session?.user?.id?(writeCredentials({...creds,user:{id:session.user.id,email:session.user.email,name:session.user.name??""}},cfg),{id:session.user.id,email:session.user.email,name:session.user.name??""}):(ui.error({command,code:"SESSION_USER_MISSING",message:"Could not resolve the current user.",hint:"Run `fimo login` again."}),null)}__name(resolveCurrentCliUser,"resolveCurrentCliUser");init_dist();import fs45 from"node:fs";import path46 from"node:path";async function rulesSyncCommand(options={}){let cwd=path46.resolve(options.cwd??process.cwd()),agentsMdPath=path46.join(cwd,"AGENTS.md");if(!fs45.existsSync(agentsMdPath)){ui.error({command:"rules sync",code:"NO_AGENTS_MD",message:`No AGENTS.md found in ${cwd}.`,hint:"Run `fimo create` to scaffold a project, or create AGENTS.md manually before running `fimo rules sync`."});return}let selectedAgents;try{selectedAgents=await selectAgents(options,{promptMessage:"Which agents do you want to sync rules for?",detectFn:__name(()=>Promise.resolve(detectAgentsInProject(cwd)),"detectFn")})}catch(err){ui.error({command:"rules sync",code:"AGENT_SELECTION_FAILED",message:err instanceof Error?err.message:String(err)});return}if(selectedAgents.length===0){ui.result({command:"rules sync",data:{synced:[]},render:__name(()=>"Nothing to sync.","render")});return}let result=syncPerAgentVariants(cwd,selectedAgents),agentsWithVariants=new Set(["claude-code","cursor","windsurf","gemini-cli"]),noVariantAgents=selectedAgents.filter(a=>!agentsWithVariants.has(a)),data={synced:result.perAgentVariants,skipped:result.perAgentVariantsSkipped,nativeAgentsMd:noVariantAgents};ui.result({command:"rules sync",data,render:__name(()=>{let lines=[];return result.perAgentVariants.length>0&&lines.push(`Wrote: ${result.perAgentVariants.join(", ")}`),result.perAgentVariantsSkipped.length>0&&lines.push(`Skipped (already exist, preserved): ${result.perAgentVariantsSkipped.join(", ")}`),noVariantAgents.length>0&&lines.push(`${noVariantAgents.join(", ")}: read AGENTS.md natively \u2014 no extra file needed.`),lines.length===0?"Nothing to do.":(result.perAgentVariantsSkipped.length>0&&(lines.push(""),lines.push("Note: existing files are preserved. To regenerate a stale variant, delete it first then re-run `fimo rules sync`.")),lines.join(`
934
- `))},"render")})}__name(rulesSyncCommand,"rulesSyncCommand");init_esm();init_dist();init_config();init_sdk_transport();init_project_context();init_project();var UUID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,RUN_POLL_INTERVAL_MS=2e3,RUN_POLL_TIMEOUT_MS=1800*1e3,TERMINAL_RUN_STATUSES=["succeeded","failed","skipped"];function withLegacyEnvironment(value){let{branch,...record}=value;return{...record,env:branch}}__name(withLegacyEnvironment,"withLegacyEnvironment");var ScheduleCommandError=class extends Error{static{__name(this,"ScheduleCommandError")}code;constructor(code2,message){super(message),this.name="ScheduleCommandError",this.code=code2}};function collect3(value,previous){return[...previous??[],value]}__name(collect3,"collect");function addScopeOptions4(command){return command.option("--branch <branch>","Target a specific Fimo Branch (defaults to the current git branch)").option("--project <id>","Project id (defaults to the locally linked project)").option("-C, --cwd <dir>","Project directory")}__name(addScopeOptions4,"addScopeOptions");function registerSchedulesCommands(program2){let schedules=program2.command("schedules").description("Manage recurring project commands").addHelpText("after",`
919
+ `))},"render")})}__name(rulesSyncCommand,"rulesSyncCommand");init_esm();init_dist();init_config();init_sdk_transport();init_project_context();init_project();var UUID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,RUN_POLL_INTERVAL_MS=2e3,RUN_POLL_TIMEOUT_MS=1800*1e3,TERMINAL_RUN_STATUSES=["succeeded","failed","skipped"];function withLegacyEnvironment(value){let{branch,...record}=value;return{...record,env:branch}}__name(withLegacyEnvironment,"withLegacyEnvironment");var ScheduleCommandError=class extends Error{static{__name(this,"ScheduleCommandError")}code;constructor(code2,message){super(message),this.name="ScheduleCommandError",this.code=code2}};function collect3(value,previous){return[...previous??[],value]}__name(collect3,"collect");function addScopeOptions3(command){return command.option("--branch <branch>","Target a specific Fimo Branch (defaults to the current git branch)").option("--project <id>","Project id (defaults to the locally linked project)").option("-C, --cwd <dir>","Project directory")}__name(addScopeOptions3,"addScopeOptions");function registerSchedulesCommands(program2){let schedules=program2.command("schedules").description("Manage recurring project commands").addHelpText("after",`
935
920
  Examples:
936
921
  fimo schedules create nightly --cron "0 2 * * *" --do "fimo validate" --secret CMS_TOKEN
937
922
  fimo schedules list
@@ -949,7 +934,7 @@ Limits:
949
934
  Use \`fimo schedules list\` or \`show\` for the current policy and reset state.
950
935
 
951
936
  Run \`fimo schedules <command> --help\` for command-specific help.
952
- `);addScopeOptions4(schedules.command("create <name>").description("Create a scheduled command").requiredOption("--cron <expr>",'Cron expression, e.g. "0 2 * * *"').requiredOption("--do <command>","Command to run inside the Branch").option("--secret <key>","Expose a project secret to the command; repeat for multiple keys",collect3).option("--paused","Save the schedule paused; it never runs until resumed and does not use an active slot")).action((name,opts)=>createCommand3(name,opts)),addScopeOptions4(schedules.command("list").description("List schedules for a Branch")).action(opts=>listCommand4(opts)),addScopeOptions4(schedules.command("show <schedule>").description("Show a schedule configuration")).action((schedule,opts)=>showCommand(schedule,opts)),addScopeOptions4(schedules.command("update <schedule>").description("Update a schedule configuration").option("--name <name>","Change the schedule name").option("--cron <expr>","Change the cron expression").option("--do <command>","Change the command").option("--secret <key>","Replace exposed project secrets; repeat for multiple keys",collect3).option("--clear-secrets","Remove all project secrets from the schedule")).action((schedule,opts)=>updateCommand2(schedule,opts)),addScopeOptions4(schedules.command("run <schedule>").description("Run a schedule now").option("--no-wait","Return after the run is queued")).action((schedule,opts)=>runCommand2(schedule,opts)),addScopeOptions4(schedules.command("pause <schedule>").description("Pause future cron runs")).action((schedule,opts)=>toggleCommand(schedule,!1,opts)),addScopeOptions4(schedules.command("resume <schedule>").description("Resume future cron runs")).action((schedule,opts)=>toggleCommand(schedule,!0,opts));let runs=addScopeOptions4(addPaginationOptions(schedules.command("runs [schedule]").description("List runs for a schedule"),{defaultLimit:20,maxLimit:100,legacyAll:!0}).option("--status <status>","Filter by queued, running, succeeded, failed, or skipped"));runs.action((schedule,opts,command)=>{if(!schedule){command.help();return}return runsCommand(schedule,opts)}),addScopeOptions4(runs.command("show <runId>").description("Show run details and captured output")).action((runId,opts,command)=>runShowCommand(runId,{...command.parent?.opts(),...opts})),addScopeOptions4(schedules.command("delete <schedule>").description("Delete a schedule")).action((schedule,opts)=>deleteCommand2(schedule,opts))}__name(registerSchedulesCommands,"registerSchedulesCommands");async function resolveScope3(op,opts){let branch=opts.branch;if(!branch)try{branch=(await getProjectContext({cwd:opts.cwd})).branch}catch(error){if(!opts.project)throw error;branch=DEFAULT_BRANCH}let projectId=opts.project??loadProjectSettings(resolveProjectCwd(opts.cwd)).projectId;return await requireOperation(op,{projectId,branch}),{projectId,branch,fimo:createCliFimoClient(loadConfig(),branch)}}__name(resolveScope3,"resolveScope");async function resolveScheduleId(fimo,projectId,reference){if(UUID_PATTERN.test(reference))return reference;let schedule=(await fimo.execute("schedules.list",{projectId})).find(candidate=>candidate.name===reference);if(!schedule)throw new ScheduleCommandError("SCHEDULE_NOT_FOUND",`Schedule '${reference}' was not found in this Branch.`);return schedule.id}__name(resolveScheduleId,"resolveScheduleId");async function createCommand3(name,opts){let parsed=CreateProjectScheduleRequestSchema.safeParse({name,cron:opts.cron,command:opts.do,secretKeys:opts.secret??[],...opts.paused?{enabled:!1}:{}});if(!parsed.success)throw new ScheduleCommandError("SCHEDULE_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid schedule.");let{projectId,fimo}=await resolveScope3("schedules.create",opts),schedule;try{schedule=await fimo.execute("schedules.create",{projectId,...parsed.data})}catch(error){if(renderSchedulePolicyRefusal("schedules create",error,"create"))return;throw error}renderSchedule("schedules create",withLegacyEnvironment(schedule))}__name(createCommand3,"createCommand");async function listCommand4(opts){let{projectId,fimo}=await resolveScope3("schedules.list",opts),data=await fimo.execute("schedules.overview",{projectId});renderScheduleList("schedules list",{...data,items:data.items.map(withLegacyEnvironment)})}__name(listCommand4,"listCommand");async function showCommand(reference,opts){let{projectId,fimo}=await resolveScope3("schedules.get",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference),data=await fimo.execute("schedules.get",{projectId,scheduleId});renderScheduleDetail("schedules show",{...data,schedule:withLegacyEnvironment(data.schedule)})}__name(showCommand,"showCommand");async function updateCommand2(reference,opts){if(opts.secret!==void 0&&opts.clearSecrets)throw new ScheduleCommandError("SCHEDULE_VALIDATION_FAILED","Use either --secret or --clear-secrets, not both.");let request={...opts.name!==void 0?{name:opts.name}:{},...opts.cron!==void 0?{cron:opts.cron}:{},...opts.do!==void 0?{command:opts.do}:{},...opts.clearSecrets?{secretKeys:[]}:opts.secret!==void 0?{secretKeys:opts.secret}:{}},parsed=UpdateProjectScheduleRequestSchema.safeParse(request);if(!parsed.success)throw new ScheduleCommandError("SCHEDULE_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid schedule update.");let{projectId,fimo}=await resolveScope3("schedules.update",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference);try{renderSchedule("schedules update",withLegacyEnvironment(await fimo.execute("schedules.update",{projectId,scheduleId,...parsed.data})))}catch(error){if(renderSchedulePolicyRefusal("schedules update",error,"update"))return;throw error}}__name(updateCommand2,"updateCommand");async function toggleCommand(reference,enabled,opts){let command=enabled?"schedules resume":"schedules pause",{projectId,fimo}=await resolveScope3(enabled?"schedules.resume":"schedules.pause",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference),schedule;try{schedule=await fimo.execute("schedules.setEnabled",{projectId,scheduleId,enabled})}catch(error){if(renderSchedulePolicyRefusal(command,error,"resume"))return;throw error}renderSchedule(command,withLegacyEnvironment(schedule))}__name(toggleCommand,"toggleCommand");async function runCommand2(reference,opts){let{projectId,fimo}=await resolveScope3("schedules.run",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference),run;try{run=await fimo.execute("schedules.run",{projectId,scheduleId})}catch(error){if(renderSchedulePolicyRefusal("schedules run",error,"run"))return;if(error instanceof ApiRequestError&&error.status===409&&error.code==="run_in_progress"){let activeRunId=readActiveRunId(error.body);ui.error({command:"schedules run",code:"SCHEDULE_RUN_IN_PROGRESS",message:activeRunId?`Schedule already has an active run: ${activeRunId}`:"Schedule already has an active run.",hint:activeRunId?`Inspect it with: fimo schedules runs show ${activeRunId}`:void 0});return}throw error}if(opts.wait===!1){renderRun("schedules run",withLegacyEnvironment(run));return}let progress=spinner(`Run ${run.id} is ${run.status}`),deadline=Date.now()+RUN_POLL_TIMEOUT_MS,detail=await fimo.execute("schedules.getRun",{projectId,runId:run.id});for(;!TERMINAL_RUN_STATUSES.includes(detail.status)&&Date.now()<deadline;)progress.update(`Run ${run.id} is ${detail.status}`),await new Promise(resolve10=>setTimeout(resolve10,RUN_POLL_INTERVAL_MS)),detail=await fimo.execute("schedules.getRun",{projectId,runId:run.id});if(progress.stop(),!TERMINAL_RUN_STATUSES.includes(detail.status))throw new ScheduleCommandError("SCHEDULE_RUN_TIMEOUT",`Run ${run.id} did not finish within ${RUN_POLL_TIMEOUT_MS/6e4} minutes.`);if(detail.status!=="succeeded"){let error=detail.error??"No error details were returned.";ui.error({command:"schedules run",code:"SCHEDULE_RUN_FAILED",message:`Schedule run ${detail.id} finished with status ${detail.status}: ${error}`,hint:`Inspect run ${detail.id} (status: ${detail.status}, error: ${error}) with: fimo schedules runs show ${detail.id}`});return}renderRunDetail("schedules run",withLegacyEnvironment(detail))}__name(runCommand2,"runCommand");async function runsCommand(reference,opts){let pagination=parsePaginationOptions(opts,{defaultLimit:20,maxLimit:100}),parsed=ProjectScheduleRunsQuerySchema.safeParse({limit:pagination.limit,cursor:pagination.cursor,status:opts.status});if(!parsed.success)throw new ScheduleCommandError("SCHEDULE_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid run query.");let{projectId,branch,fimo}=await resolveScope3("schedules.runs.list",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference),page=await collectPaginatedItems({cursor:pagination.cursor,allPages:pagination.allPages,fetchPage:__name(cursor=>fimo.execute("schedules.listRuns",{projectId,scheduleId,limit:parsed.data.limit,cursor,status:parsed.data.status}),"fetchPage")}),trailingArgs=[];opts.status&&trailingArgs.push("--status",opts.status),trailingArgs.push("--branch",branch),opts.project&&trailingArgs.push("--project",opts.project),opts.cwd&&trailingArgs.push("--cwd",opts.cwd),renderRuns("schedules runs",{...page,items:page.items.map(withLegacyEnvironment)},page.nextCursor?buildPaginationHint(["fimo","schedules","runs",reference],{cursor:page.nextCursor,limit:pagination.limit,trailingArgs}):void 0)}__name(runsCommand,"runsCommand");async function runShowCommand(runId,opts){let{projectId,fimo}=await resolveScope3("schedules.runs.get",opts);renderRunDetail("schedules runs show",withLegacyEnvironment(await fimo.execute("schedules.getRun",{projectId,runId})))}__name(runShowCommand,"runShowCommand");async function deleteCommand2(reference,opts){let{projectId,fimo}=await resolveScope3("schedules.delete",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference),result=await fimo.execute("schedules.delete",{projectId,scheduleId});ui.result({command:"schedules delete",data:result,render:__name(()=>`Deleted schedule ${reference} (${scheduleId})`,"render")})}__name(deleteCommand2,"deleteCommand");function renderSchedulePolicyRefusal(command,error,context){if(!(error instanceof ApiRequestError)||!error.code)return!1;let presentation={active_schedule_limit_reached:{code:"SCHEDULE_LIMIT_REACHED",hint:context==="create"?"Pause another schedule, or re-run with --paused to save this one as a draft. Upgrade your plan for more active schedules.":"Pause another schedule first, then resume this one. Upgrade your plan for more active schedules."},cadence_too_frequent:{code:"SCHEDULE_CADENCE_TOO_FREQUENT",hint:"Pick a less frequent --cron expression; `fimo schedules list` shows your plan cadence floor. Upgrade your plan if you need a more frequent schedule."},allowance_exhausted:{code:"SCHEDULE_COMPUTE_EXHAUSTED",hint:"Cron runs are skipped and manual runs are rejected until the cycle resets; `fimo schedules list` shows the reset time. Editing schedules still works. Upgrade your plan for more schedule compute."},concurrency_limited:{code:"SCHEDULE_CONCURRENCY_LIMITED",hint:"Wait for a running schedule in this organization to finish, then retry. Upgrade your plan for more concurrent runs."},invalid_cron:{code:"SCHEDULE_INVALID_CRON",hint:"Use standard five-field cron syntax: minute hour day-of-month month day-of-week (for example, `0 2 * * *`)."}}[error.code];if(!presentation)return!1;let serverMessage=error.body&&typeof error.body=="object"&&typeof error.body.message=="string"?error.body.message:error.detail;return ui.error({command,code:presentation.code,message:serverMessage,hint:presentation.hint}),!0}__name(renderSchedulePolicyRefusal,"renderSchedulePolicyRefusal");function formatPlanMinutes(minutes){return minutes%60===0&&minutes>=60?`${minutes/60} h`:`${minutes} min`}__name(formatPlanMinutes,"formatPlanMinutes");function formatPlanMs(ms){return formatPlanMinutes(Math.round(ms/6e4))}__name(formatPlanMs,"formatPlanMs");function planStateNote(plan){switch(plan.state){case"near_limit":return"Over 80% of the compute cycle is used.";case"exhausted":return`Compute is exhausted. Cron runs are skipped and manual runs are rejected until ${String(plan.compute.resetsAt)}. Editing schedules still works.`;case"over_policy":return`Some schedules exceed the current plan limits (${plan.overPolicyReasons.join(", ")}). They keep running; enabling more or making them more frequent is blocked.`;default:return null}}__name(planStateNote,"planStateNote");function planFields(plan){return{Plan:plan.code,"Active schedules":`${plan.activeSchedules.used} of ${plan.activeSchedules.limit}`,"Cadence floor":`every ${formatPlanMinutes(plan.minCadenceMinutes)} or less often`,"Max run time":formatPlanMs(plan.maxRunMs),"Concurrent runs":`${plan.concurrency.used} of ${plan.concurrency.limit}`,"Compute used":`${formatPlanMs(plan.compute.settledMs+plan.compute.activeMs)} of ${formatPlanMs(plan.compute.includedMs)}${plan.compute.activeMs>0?` (${formatPlanMs(plan.compute.activeMs)} active)`:""}`,"Cycle resets":String(plan.compute.resetsAt)}}__name(planFields,"planFields");function renderSchedule(command,schedule){ui.result({command,data:schedule,render:__name(()=>renderFields({ID:schedule.id,Name:schedule.name,Branch:schedule.env,Cron:schedule.cron,Command:schedule.command,Enabled:schedule.enabled?"yes":"no",Secrets:schedule.secretKeys.join(", ")||"none"}),"render")})}__name(renderSchedule,"renderSchedule");function renderScheduleList(command,data){ui.result({command,data,render:__name(()=>{let table=renderTable(["ID","NAME","CRON","COMMAND","ENABLED","LAST STATUS","POLICY"],data.items.map(schedule=>[schedule.id,schedule.name,schedule.cron,schedule.command,schedule.enabled?"yes":"no",schedule.lastStatus??"",schedule.overPolicyReasons?.join(", ")??""])),note=planStateNote(data.plan);return`${table}
937
+ `);addScopeOptions3(schedules.command("create <name>").description("Create a scheduled command").requiredOption("--cron <expr>",'Cron expression, e.g. "0 2 * * *"').requiredOption("--do <command>","Command to run inside the Branch").option("--secret <key>","Expose a project secret to the command; repeat for multiple keys",collect3).option("--paused","Save the schedule paused; it never runs until resumed and does not use an active slot")).action((name,opts)=>createCommand3(name,opts)),addScopeOptions3(schedules.command("list").description("List schedules for a Branch")).action(opts=>listCommand4(opts)),addScopeOptions3(schedules.command("show <schedule>").description("Show a schedule configuration")).action((schedule,opts)=>showCommand(schedule,opts)),addScopeOptions3(schedules.command("update <schedule>").description("Update a schedule configuration").option("--name <name>","Change the schedule name").option("--cron <expr>","Change the cron expression").option("--do <command>","Change the command").option("--secret <key>","Replace exposed project secrets; repeat for multiple keys",collect3).option("--clear-secrets","Remove all project secrets from the schedule")).action((schedule,opts)=>updateCommand2(schedule,opts)),addScopeOptions3(schedules.command("run <schedule>").description("Run a schedule now").option("--no-wait","Return after the run is queued")).action((schedule,opts)=>runCommand2(schedule,opts)),addScopeOptions3(schedules.command("pause <schedule>").description("Pause future cron runs")).action((schedule,opts)=>toggleCommand(schedule,!1,opts)),addScopeOptions3(schedules.command("resume <schedule>").description("Resume future cron runs")).action((schedule,opts)=>toggleCommand(schedule,!0,opts));let runs=addScopeOptions3(addPaginationOptions(schedules.command("runs [schedule]").description("List runs for a schedule"),{defaultLimit:20,maxLimit:100,legacyAll:!0}).option("--status <status>","Filter by queued, running, succeeded, failed, or skipped"));runs.action((schedule,opts,command)=>{if(!schedule){command.help();return}return runsCommand(schedule,opts)}),addScopeOptions3(runs.command("show <runId>").description("Show run details and captured output")).action((runId,opts,command)=>runShowCommand(runId,{...command.parent?.opts(),...opts})),addScopeOptions3(schedules.command("delete <schedule>").description("Delete a schedule")).action((schedule,opts)=>deleteCommand2(schedule,opts))}__name(registerSchedulesCommands,"registerSchedulesCommands");async function resolveScope3(op,opts){let branch=opts.branch;if(!branch)try{branch=(await getProjectContext({cwd:opts.cwd})).branch}catch(error){if(!opts.project)throw error;branch=DEFAULT_BRANCH}let projectId=opts.project??loadProjectSettings(resolveProjectCwd(opts.cwd)).projectId;return await requireOperation(op,{projectId,branch}),{projectId,branch,fimo:createCliFimoClient(loadConfig(),branch)}}__name(resolveScope3,"resolveScope");async function resolveScheduleId(fimo,projectId,reference){if(UUID_PATTERN.test(reference))return reference;let schedule=(await fimo.execute("schedules.list",{projectId})).find(candidate=>candidate.name===reference);if(!schedule)throw new ScheduleCommandError("SCHEDULE_NOT_FOUND",`Schedule '${reference}' was not found in this Branch.`);return schedule.id}__name(resolveScheduleId,"resolveScheduleId");async function createCommand3(name,opts){let parsed=CreateProjectScheduleRequestSchema.safeParse({name,cron:opts.cron,command:opts.do,secretKeys:opts.secret??[],...opts.paused?{enabled:!1}:{}});if(!parsed.success)throw new ScheduleCommandError("SCHEDULE_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid schedule.");let{projectId,fimo}=await resolveScope3("schedules.create",opts),schedule;try{schedule=await fimo.execute("schedules.create",{projectId,...parsed.data})}catch(error){if(renderSchedulePolicyRefusal("schedules create",error,"create"))return;throw error}renderSchedule("schedules create",withLegacyEnvironment(schedule))}__name(createCommand3,"createCommand");async function listCommand4(opts){let{projectId,fimo}=await resolveScope3("schedules.list",opts),data=await fimo.execute("schedules.overview",{projectId});renderScheduleList("schedules list",{...data,items:data.items.map(withLegacyEnvironment)})}__name(listCommand4,"listCommand");async function showCommand(reference,opts){let{projectId,fimo}=await resolveScope3("schedules.get",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference),data=await fimo.execute("schedules.get",{projectId,scheduleId});renderScheduleDetail("schedules show",{...data,schedule:withLegacyEnvironment(data.schedule)})}__name(showCommand,"showCommand");async function updateCommand2(reference,opts){if(opts.secret!==void 0&&opts.clearSecrets)throw new ScheduleCommandError("SCHEDULE_VALIDATION_FAILED","Use either --secret or --clear-secrets, not both.");let request={...opts.name!==void 0?{name:opts.name}:{},...opts.cron!==void 0?{cron:opts.cron}:{},...opts.do!==void 0?{command:opts.do}:{},...opts.clearSecrets?{secretKeys:[]}:opts.secret!==void 0?{secretKeys:opts.secret}:{}},parsed=UpdateProjectScheduleRequestSchema.safeParse(request);if(!parsed.success)throw new ScheduleCommandError("SCHEDULE_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid schedule update.");let{projectId,fimo}=await resolveScope3("schedules.update",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference);try{renderSchedule("schedules update",withLegacyEnvironment(await fimo.execute("schedules.update",{projectId,scheduleId,...parsed.data})))}catch(error){if(renderSchedulePolicyRefusal("schedules update",error,"update"))return;throw error}}__name(updateCommand2,"updateCommand");async function toggleCommand(reference,enabled,opts){let command=enabled?"schedules resume":"schedules pause",{projectId,fimo}=await resolveScope3(enabled?"schedules.resume":"schedules.pause",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference),schedule;try{schedule=await fimo.execute("schedules.setEnabled",{projectId,scheduleId,enabled})}catch(error){if(renderSchedulePolicyRefusal(command,error,"resume"))return;throw error}renderSchedule(command,withLegacyEnvironment(schedule))}__name(toggleCommand,"toggleCommand");async function runCommand2(reference,opts){let{projectId,fimo}=await resolveScope3("schedules.run",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference),run;try{run=await fimo.execute("schedules.run",{projectId,scheduleId})}catch(error){if(renderSchedulePolicyRefusal("schedules run",error,"run"))return;if(error instanceof ApiRequestError&&error.status===409&&error.code==="run_in_progress"){let activeRunId=readActiveRunId(error.body);ui.error({command:"schedules run",code:"SCHEDULE_RUN_IN_PROGRESS",message:activeRunId?`Schedule already has an active run: ${activeRunId}`:"Schedule already has an active run.",hint:activeRunId?`Inspect it with: fimo schedules runs show ${activeRunId}`:void 0});return}throw error}if(opts.wait===!1){renderRun("schedules run",withLegacyEnvironment(run));return}let progress=spinner(`Run ${run.id} is ${run.status}`),deadline=Date.now()+RUN_POLL_TIMEOUT_MS,detail=await fimo.execute("schedules.getRun",{projectId,runId:run.id});for(;!TERMINAL_RUN_STATUSES.includes(detail.status)&&Date.now()<deadline;)progress.update(`Run ${run.id} is ${detail.status}`),await new Promise(resolve10=>setTimeout(resolve10,RUN_POLL_INTERVAL_MS)),detail=await fimo.execute("schedules.getRun",{projectId,runId:run.id});if(progress.stop(),!TERMINAL_RUN_STATUSES.includes(detail.status))throw new ScheduleCommandError("SCHEDULE_RUN_TIMEOUT",`Run ${run.id} did not finish within ${RUN_POLL_TIMEOUT_MS/6e4} minutes.`);if(detail.status!=="succeeded"){let error=detail.error??"No error details were returned.";ui.error({command:"schedules run",code:"SCHEDULE_RUN_FAILED",message:`Schedule run ${detail.id} finished with status ${detail.status}: ${error}`,hint:`Inspect run ${detail.id} (status: ${detail.status}, error: ${error}) with: fimo schedules runs show ${detail.id}`});return}renderRunDetail("schedules run",withLegacyEnvironment(detail))}__name(runCommand2,"runCommand");async function runsCommand(reference,opts){let pagination=parsePaginationOptions(opts,{defaultLimit:20,maxLimit:100}),parsed=ProjectScheduleRunsQuerySchema.safeParse({limit:pagination.limit,cursor:pagination.cursor,status:opts.status});if(!parsed.success)throw new ScheduleCommandError("SCHEDULE_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid run query.");let{projectId,branch,fimo}=await resolveScope3("schedules.runs.list",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference),page=await collectPaginatedItems({cursor:pagination.cursor,allPages:pagination.allPages,fetchPage:__name(cursor=>fimo.execute("schedules.listRuns",{projectId,scheduleId,limit:parsed.data.limit,cursor,status:parsed.data.status}),"fetchPage")}),trailingArgs=[];opts.status&&trailingArgs.push("--status",opts.status),trailingArgs.push("--branch",branch),opts.project&&trailingArgs.push("--project",opts.project),opts.cwd&&trailingArgs.push("--cwd",opts.cwd),renderRuns("schedules runs",{...page,items:page.items.map(withLegacyEnvironment)},page.nextCursor?buildPaginationHint(["fimo","schedules","runs",reference],{cursor:page.nextCursor,limit:pagination.limit,trailingArgs}):void 0)}__name(runsCommand,"runsCommand");async function runShowCommand(runId,opts){let{projectId,fimo}=await resolveScope3("schedules.runs.get",opts);renderRunDetail("schedules runs show",withLegacyEnvironment(await fimo.execute("schedules.getRun",{projectId,runId})))}__name(runShowCommand,"runShowCommand");async function deleteCommand2(reference,opts){let{projectId,fimo}=await resolveScope3("schedules.delete",opts),scheduleId=await resolveScheduleId(fimo,projectId,reference),result=await fimo.execute("schedules.delete",{projectId,scheduleId});ui.result({command:"schedules delete",data:result,render:__name(()=>`Deleted schedule ${reference} (${scheduleId})`,"render")})}__name(deleteCommand2,"deleteCommand");function renderSchedulePolicyRefusal(command,error,context){if(!(error instanceof ApiRequestError)||!error.code)return!1;let presentation={active_schedule_limit_reached:{code:"SCHEDULE_LIMIT_REACHED",hint:context==="create"?"Pause another schedule, or re-run with --paused to save this one as a draft. Upgrade your plan for more active schedules.":"Pause another schedule first, then resume this one. Upgrade your plan for more active schedules."},cadence_too_frequent:{code:"SCHEDULE_CADENCE_TOO_FREQUENT",hint:"Pick a less frequent --cron expression; `fimo schedules list` shows your plan cadence floor. Upgrade your plan if you need a more frequent schedule."},allowance_exhausted:{code:"SCHEDULE_COMPUTE_EXHAUSTED",hint:"Cron runs are skipped and manual runs are rejected until the cycle resets; `fimo schedules list` shows the reset time. Editing schedules still works. Upgrade your plan for more schedule compute."},concurrency_limited:{code:"SCHEDULE_CONCURRENCY_LIMITED",hint:"Wait for a running schedule in this organization to finish, then retry. Upgrade your plan for more concurrent runs."},invalid_cron:{code:"SCHEDULE_INVALID_CRON",hint:"Use standard five-field cron syntax: minute hour day-of-month month day-of-week (for example, `0 2 * * *`)."}}[error.code];if(!presentation)return!1;let serverMessage=error.body&&typeof error.body=="object"&&typeof error.body.message=="string"?error.body.message:error.detail;return ui.error({command,code:presentation.code,message:serverMessage,hint:presentation.hint}),!0}__name(renderSchedulePolicyRefusal,"renderSchedulePolicyRefusal");function formatPlanMinutes(minutes){return minutes%60===0&&minutes>=60?`${minutes/60} h`:`${minutes} min`}__name(formatPlanMinutes,"formatPlanMinutes");function formatPlanMs(ms){return formatPlanMinutes(Math.round(ms/6e4))}__name(formatPlanMs,"formatPlanMs");function planStateNote(plan){switch(plan.state){case"near_limit":return"Over 80% of the compute cycle is used.";case"exhausted":return`Compute is exhausted. Cron runs are skipped and manual runs are rejected until ${String(plan.compute.resetsAt)}. Editing schedules still works.`;case"over_policy":return`Some schedules exceed the current plan limits (${plan.overPolicyReasons.join(", ")}). They keep running; enabling more or making them more frequent is blocked.`;default:return null}}__name(planStateNote,"planStateNote");function planFields(plan){return{Plan:plan.code,"Active schedules":`${plan.activeSchedules.used} of ${plan.activeSchedules.limit}`,"Cadence floor":`every ${formatPlanMinutes(plan.minCadenceMinutes)} or less often`,"Max run time":formatPlanMs(plan.maxRunMs),"Concurrent runs":`${plan.concurrency.used} of ${plan.concurrency.limit}`,"Compute used":`${formatPlanMs(plan.compute.settledMs+plan.compute.activeMs)} of ${formatPlanMs(plan.compute.includedMs)}${plan.compute.activeMs>0?` (${formatPlanMs(plan.compute.activeMs)} active)`:""}`,"Cycle resets":String(plan.compute.resetsAt)}}__name(planFields,"planFields");function renderSchedule(command,schedule){ui.result({command,data:schedule,render:__name(()=>renderFields({ID:schedule.id,Name:schedule.name,Branch:schedule.env,Cron:schedule.cron,Command:schedule.command,Enabled:schedule.enabled?"yes":"no",Secrets:schedule.secretKeys.join(", ")||"none"}),"render")})}__name(renderSchedule,"renderSchedule");function renderScheduleList(command,data){ui.result({command,data,render:__name(()=>{let table=renderTable(["ID","NAME","CRON","COMMAND","ENABLED","LAST STATUS","POLICY"],data.items.map(schedule=>[schedule.id,schedule.name,schedule.cron,schedule.command,schedule.enabled?"yes":"no",schedule.lastStatus??"",schedule.overPolicyReasons?.join(", ")??""])),note=planStateNote(data.plan);return`${table}
953
938
 
954
939
  ${renderFields(planFields(data.plan))}${note?`
955
940
 
@@ -975,7 +960,7 @@ Report: ${result.id}
975
960
  Project: ${reportContext.projectName}
976
961
  Environment: ${reportContext.environment}`,"render")})}catch(error){rethrowCliAuthError(error),ui.error({command:"support report",code:"SUPPORT_REPORT_FAILED",message:error instanceof Error?error.message:"The support report could not be sent.",hint:"Try again later, or contact Fimo support through the app."})}}__name(supportReportCommand,"supportReportCommand");function resolveSupportMessage(messageParts,messageFile){if(messageParts.length>0&&messageFile)return ui.error({command:"support report",code:"SUPPORT_MESSAGE_CONFLICT",message:"Pass the report as text or with --message-file, not both."}),null;let message=messageParts.join(" ").trim();if(messageFile)try{message=readFileSync12(path48.resolve(messageFile),"utf8").trim()}catch(error){return ui.error({command:"support report",code:"SUPPORT_MESSAGE_READ_FAILED",message:error instanceof Error?error.message:"The report file could not be read."}),null}return message||(ui.error({command:"support report",code:"SUPPORT_MESSAGE_REQUIRED",message:"Describe what went wrong or which capability is missing, or pass --message-file <path>."}),null)}__name(resolveSupportMessage,"resolveSupportMessage");function buildSupportMessage(context){return[context.message,"","Fimo CLI context",`Project: ${context.projectName} (${context.projectId})`,`Environment: ${context.environment}`,`Fimo CLI: ${context.cliVersion}`].join(`
977
962
  `)}__name(buildSupportMessage,"buildSupportMessage");init_dist();init_auth();init_config();init_sdk_transport();async function switchCommand(options={}){let cfg=loadConfig(),creds=requireCredentials(cfg),fimo=createCliFimoClient(cfg),{data:orgs2}=await fimo.execute("organizations.list",{});if(orgs2.length===0){ui.error({command:"orgs switch",code:"NO_ORGANIZATIONS",message:"No organization found for this account."});return}if(options.org){let target2=orgs2.find(org=>org.id===options.org)??orgs2.find(org=>org.slug===options.org);if(!target2){ui.error({command:"orgs switch",code:"ORGANIZATION_NOT_FOUND",message:`No organization matched "${options.org}".`,hint:"Run `fimo orgs list` to see available orgs."});return}setActiveOrganization({id:target2.id,name:target2.name,slug:target2.slug},cfg),ui.ok({command:"orgs switch",headline:`Active organization: ${target2.name}`,details:{id:target2.id,name:target2.name,slug:target2.slug}});return}assertInteractive("Pass --org <id-or-slug>.","orgs switch"),mt("Switch active organization");let currentId=creds.activeOrganization?.id,selected=await _t({message:"Select an organization",initialValue:currentId,options:orgs2.map(org=>({value:org.id,label:org.name,hint:org.id===currentId?"current":org.slug}))});if(q(selected)){ui.info({command:"orgs switch",message:"Cancelled."});return}let target=orgs2.find(org=>org.id===selected);if(!target){ui.error({command:"orgs switch",code:"ORGANIZATION_NOT_FOUND",message:"Selected organization not found."});return}setActiveOrganization({id:target.id,name:target.name,slug:target.slug},cfg),ui.ok({command:"orgs switch",headline:`Active organization: ${target.name}`,details:{id:target.id,name:target.name,slug:target.slug}})}__name(switchCommand,"switchCommand");import fs48 from"node:fs";import path50 from"node:path";init_dist();init_git();init_project();import fs47 from"node:fs";import path49 from"node:path";function expectedFimoPackages(framework,usesReact){switch(framework){case"react-router":return["fimo","fimo-react","fimo-vite","fimo-react-router"];case"vite":return usesReact?["fimo","fimo-react","fimo-vite","fimo-react-router"]:["fimo","fimo-vite"];case"nextjs":return["fimo","fimo-react","fimo-next"];case"astro":return["fimo","fimo-astro"];case"sveltekit":return["fimo","fimo-sveltekit"];default:return["fimo"]}}__name(expectedFimoPackages,"expectedFimoPackages");var RETIRED_IMPORT_MAPPINGS=[{from:"fimo/ui",to:"fimo-react"},{from:"fimo/next",to:"fimo-next"},{from:"fimo/next/client",to:"fimo-next/client"},{from:"fimo/next/config",to:"fimo-next/config"},{from:"fimo/react-router",to:"fimo-react-router"},{from:"fimo/react-router/routes",to:"fimo-react-router/routes"},{from:"fimo/react-router/preset",to:"fimo-react-router/preset"},{from:"fimo/sveltekit",to:"fimo-sveltekit"},{from:"fimo/sveltekit/components",to:"fimo-sveltekit/components"},{from:"fimo/sveltekit/internal",to:"fimo-sveltekit/internal"},{from:"fimo/sveltekit/vite",to:"fimo-sveltekit/vite"},{from:"fimo/sveltekit/config",to:"fimo-sveltekit/config"},{from:"fimo/vite",to:{react:"fimo-react-router/vite",default:"fimo-vite"}}],MANUAL_REVIEW_IMPORTS=[{specifier:"fimo/astro/config",note:'fimo/astro/config stays valid for the provider-neutral Studio integration; only Fimo hosting for Astro moved to fimo-astro/config. Review astro.config.* and switch to `import { fimo } from "fimo-astro/config"` only if the project deploys through Fimo.'}];function migrationNote(...lines){return lines.join(`
978
- `)}__name(migrationNote,"migrationNote");var UPDATE_MIGRATIONS=[{version:"1.0.0",summary:"First stable release. The single fimo package splits into fimo plus per-framework companion packages, all released at the same version.",codemods:["retired-imports"],breakingChanges:[migrationNote("React components, React Router providers, and the Vite integration moved to framework packages. The update installs any missing packages before rewriting these imports.","","Before:","","```tsx","import { Label, Text } from 'fimo/ui';","import { FimoProviders } from 'fimo/react-router';","```","","After:","","```tsx","import { Label, Text } from 'fimo-react';","import { FimoProviders } from 'fimo-react-router';","```","","Update the Vite integration too:","","```ts","import { reactRouter } from '@react-router/dev/vite';","import { fimo } from 'fimo-react-router/vite';","import { defineConfig } from 'vite';","","export default defineConfig({"," plugins: [reactRouter(), fimo({ sitemap: true })],","});","```"),migrationNote("Next.js code moves from `fimo/next` to `fimo-next`. The update adds and installs `fimo-next` and `fimo-react` if they are missing, then rewrites the retired imports. Server and client imports remain separate.","","Before:","","```tsx","import { FimoProvider, getLabels } from 'fimo/next';","import { Text, useLabels } from 'fimo/next/client';","```","","After:","","```tsx","import { FimoProvider, getLabels } from 'fimo-next';","import { Text, useLabels } from 'fimo-next/client';","```","","Configure hosted previews through `fimo-next/config`:","","```ts","import type { NextConfig } from 'next';","import { withFimo } from 'fimo-next/config';","","const nextConfig: NextConfig = {};","","export default withFimo(nextConfig);","```"),migrationNote("Astro configuration depends on where the application is hosted, so the update reports `fimo/astro/config` for manual review instead of replacing it.","","For Fimo hosting or the Fimo server adapter:","","```js","import { fimo } from 'fimo-astro/config';","```","","For a static Astro project hosted elsewhere, keep:","","```js","import { fimo } from 'fimo/astro/config';","```","","Astro content APIs and components remain in `fimo`:","","```astro","---","import { getLabels } from 'fimo/astro';","import { Image, RichText, Text } from 'fimo/astro/components';","---","```"),migrationNote("SvelteKit integrations move from `fimo/sveltekit` to `fimo-sveltekit`. The update installs `fimo-sveltekit` if it is missing and rewrites the direct imports.","","Before:","","```ts","import { createFimo } from 'fimo/sveltekit';","import { fimo } from 'fimo/sveltekit/vite';","```","","After:","","```ts","import { createFimo } from 'fimo-sveltekit';","import { fimo } from 'fimo-sveltekit/vite';","```","","Update the root provider too:","","```svelte",'<script lang="ts">'," import { FimoProvider } from 'fimo-sveltekit/components';","</script>","```"),migrationNote("React Router projects using `fimo/react-router/routes` need a route-ownership migration after the compatibility import rewrite. Load the dedicated reference before changing the route configuration:","","```bash","npx fimo@latest skills get fimo-code --ref migrations/react-router-route-ownership","```")],improvements:[migrationNote("Framework code now has explicit import paths for each runtime:","","```ts","import { Text } from 'fimo-react'; // React components","import { getLabels } from 'fimo-next'; // Next.js server code","import { useLabels } from 'fimo-next/client'; // Next.js client code","import { createFimo } from 'fimo-sveltekit'; // SvelteKit server code","```"),"`fimo update` handles package additions and direct import rewrites. It leaves conditional migrations, including Astro hosting and React Router route ownership, as explicit manual steps."],recommendations:[migrationNote("Keep `fimo validate --json` at the beginning of the existing build command:","","```json","{",' "scripts": {',' "build": "fimo validate --json && vite build"'," }","}","```","","Preserve the framework build command. For example, use `next build` for Next.js and `astro build` for Astro."),migrationNote("Record the exact package-manager version and commit its lockfile:","","```json","{",' "packageManager": "pnpm@10.26.0"',"}","```"),migrationNote("Load the detected framework reference before completing manual changes, then run the project build:","","```bash","npx fimo@latest skills get fimo-code --ref frameworks/next","npx fimo@latest skills get fimo-code --ref frameworks/astro","npx fimo@latest skills get fimo-code --ref frameworks/sveltekit","npx fimo@latest skills get fimo-code --ref frameworks/react-router","npx fimo@latest skills get fimo-code --ref frameworks/vite-react","pnpm build","```")]},{version:"2.2.0",summary:"Media fields store asset references and load current asset facts only when a read requests them.",codemods:[],breakingChanges:[],improvements:[migrationNote("Media metadata is opt-in.","","Without `populate`:","","```ts","const article = await Article.getBySlug('hello');","// article.cover:","// { id?: string; url: string; alt?: string }","```","","Add `populate` when this read needs asset metadata:","","```ts","const article = await Article.getBySlug('hello', { populate: ['cover'] as const });","// article.cover:","// { id?: string; url: string; alt?: string; name?: string; mime?: string; width?: number; height?: number }","```","","Lists use the same option:","","```ts","const page = await Article.list({ populate: ['cover'] as const });","// page.items[0].cover has the populated shape above","```","","The fields marked `?` may be missing for external, missing, or incomplete assets."),migrationNote("Writes keep the reference and optional entry alt text:","","```ts","await Article.create({ cover: { id: 'asset_123', alt: 'Hero' } });","```","","Do not write asset metadata; Fimo reads it when you populate.")],recommendations:["Add `populate` only to reads that use current media metadata. Leave other reads unchanged."]},{version:"2.8.0",summary:"Standalone analytics is available without replacing existing tracking.",codemods:[],breakingChanges:[],improvements:["Existing analytics tracking remains supported. If your website already tracks visits through Fimo, keep that integration. You do not need to add an analytics component.","If your project already declares fimo-analytics, the update keeps it aligned with your other Fimo packages."],recommendations:[migrationNote("If your website has no tracker, upgrading alone does not enable analytics. To add it, load the setup instructions:","","```bash","fimo skills get fimo-code --ref analytics","```","","Check for an existing tracker before adding one to avoid counting visits twice. After updating, build and publish your website, then verify that new pageviews appear in Studio. Existing analytics history remains available.")]}];function migrationsForTarget(target){return UPDATE_MIGRATIONS.filter(entry=>compareVersions(entry.version,target)<=0)}__name(migrationsForTarget,"migrationsForTarget");function updateGuidanceCommand(){return"npx fimo@latest skills get fimo-cli --ref update"}__name(updateGuidanceCommand,"updateGuidanceCommand");var EXACT_VERSION_PATTERN=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/;function compareVersions(a,b){let parse12=__name(value=>value.split("-")[0].split(".").map(Number),"parse"),[aMajor,aMinor,aPatch]=parse12(a),[bMajor,bMinor,bPatch]=parse12(b);return aMajor-bMajor||aMinor-bMinor||aPatch-bPatch}__name(compareVersions,"compareVersions");var OWNED_DIST_TAGS=new Set(["latest","staging","experimental"]);function classifyDepValue(value){return value.startsWith("file:")||/r2\.dev\/cli\//.test(value)||value.endsWith(".tgz")?"dev-pin":/^[\^~]?\d+\.\d+\.\d+/.test(value)||OWNED_DIST_TAGS.has(value)?"owned":"bespoke"}__name(classifyDepValue,"classifyDepValue");function planPackageChanges(pkg,target,expected){let changes=[],blockers=[],declared=new Set,fimoSection=null;for(let section2 of["dependencies","devDependencies"]){let deps=pkg[section2];if(deps)for(let name of FIMO_PACKAGES){let current=deps[name];if(typeof current!="string")continue;declared.add(name),name==="fimo"&&fimoSection===null&&(fimoSection=section2);let targetPin=deriveFimoPackagePin(name,target),kind=classifyDepValue(current);if(kind!=="owned"){let reason=kind==="dev-pin"?`"${current}" selects a development build; \`fimo update\` never replaces it. Publish and repin through the development channel, or set an exact version yourself first.`:`"${current}" is not a version this CLI manages; update it yourself first.`;changes.push({name,section:section2,from:current,to:null,action:"blocked",reason}),blockers.push({code:kind==="dev-pin"?"DEV_PIN":"BESPOKE_PIN",message:`${section2}.${name}: ${reason}`});continue}if(current===targetPin){changes.push({name,section:section2,from:current,to:current,action:"unchanged"});continue}changes.push({name,section:section2,from:current,to:targetPin,action:"update"})}}for(let name of expected)declared.has(name)||changes.push({name,section:fimoSection??"dependencies",from:null,to:deriveFimoPackagePin(name,target),action:"add"});return{changes,blockers}}__name(planPackageChanges,"planPackageChanges");function applyPackageChanges(pkg,changes){let changed=!1;for(let change of changes){if(change.action!=="update"&&change.action!=="add"||change.to===null)continue;let deps=pkg[change.section]??={};deps[change.name]!==change.to&&(deps[change.name]=change.to,changed=!0)}return changed}__name(applyPackageChanges,"applyPackageChanges");var KNOWN_FRAMEWORKS=["react-router","vite","astro","nextjs","sveltekit"],COMPANION_FRAMEWORKS=[["fimo-react-router","react-router"],["fimo-next","nextjs"],["fimo-sveltekit","sveltekit"],["fimo-astro","astro"],["fimo-vite","vite"]];function resolveUpdateFramework(detectedSlug,pkg){let deps={...pkg.dependencies,...pkg.devDependencies},has=__name(name=>typeof deps[name]=="string","has"),framework=KNOWN_FRAMEWORKS.find(slug=>slug===detectedSlug)??null;framework||(framework=COMPANION_FRAMEWORKS.find(([companion])=>has(companion))?.[1]??null);let usesReact=framework==="react-router"||framework==="nextjs"||has("react")||has("fimo-react");return{framework,usesReact,label:framework==="vite"?usesReact?"vite (react)":"vite":framework??"unknown"}}__name(resolveUpdateFramework,"resolveUpdateFramework");var SKIPPED_DIRECTORIES=new Set(["node_modules","dist","build","out","coverage","vendor"]),SOURCE_EXTENSIONS=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs",".svelte",".astro",".vue",".mdx"]),MAX_FILE_BYTES=1024*1024;function escapeRegExp2(value){return value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}__name(escapeRegExp2,"escapeRegExp");function replacementFor(mapping,usesReact){return typeof mapping.to=="string"?mapping.to:usesReact?mapping.to.react:mapping.to.default}__name(replacementFor,"replacementFor");function listSourceFiles(root){let files=[],walk=__name(dir=>{let entries2;try{entries2=fs47.readdirSync(dir,{withFileTypes:!0})}catch{return}for(let entry of entries2){if(entry.isDirectory()){!entry.name.startsWith(".")&&!SKIPPED_DIRECTORIES.has(entry.name)&&walk(path49.join(dir,entry.name));continue}entry.isFile()&&SOURCE_EXTENSIONS.has(path49.extname(entry.name))&&files.push(path49.join(dir,entry.name))}},"walk");return walk(root),files.sort()}__name(listSourceFiles,"listSourceFiles");function runRetiredImportsCodemod(options){let{cwd,usesReact,write}=options,changedFiles=[],manualFollowUps=[],files=listSourceFiles(cwd),mappings=[...RETIRED_IMPORT_MAPPINGS].sort((a,b)=>b.from.length-a.from.length);for(let filePath of files){let source;try{if(fs47.statSync(filePath).size>MAX_FILE_BYTES)continue;source=fs47.readFileSync(filePath,"utf8")}catch{continue}if(!source.includes("fimo/"))continue;let relative3=path49.relative(cwd,filePath)||filePath,updated=source,replacements=[];for(let mapping of mappings){let to=replacementFor(mapping,usesReact),pattern=new RegExp(`(['"])${escapeRegExp2(mapping.from)}\\1`,"g"),count=0;updated=updated.replace(pattern,(_match,quote)=>(count+=1,`${quote}${to}${quote}`)),count>0&&replacements.push({from:mapping.from,to,count}),updated.includes(`\`${mapping.from}\``)&&manualFollowUps.push({file:relative3,specifier:mapping.from,note:`Found \`${mapping.from}\` in a template literal; replace it with \`${to}\` manually.`})}for(let manual of MANUAL_REVIEW_IMPORTS)new RegExp(`['"\`]${escapeRegExp2(manual.specifier)}['"\`]`).test(updated)&&manualFollowUps.push({file:relative3,specifier:manual.specifier,note:manual.note});replacements.length>0&&(changedFiles.push({file:relative3,replacements}),write&&fs47.writeFileSync(filePath,updated))}return{id:"retired-imports",filesScanned:files.length,changedFiles,manualFollowUps}}__name(runRetiredImportsCodemod,"runRetiredImportsCodemod");function renderMigrationGuidance(migration){return[migration.breakingChanges.length>0?`### Breaking changes
963
+ `)}__name(migrationNote,"migrationNote");var UPDATE_MIGRATIONS=[{version:"1.0.0",summary:"First stable release. The single fimo package splits into fimo plus per-framework companion packages, all released at the same version.",codemods:["retired-imports"],breakingChanges:[migrationNote("React components, React Router providers, and the Vite integration moved to framework packages. The update installs any missing packages before rewriting these imports.","","Before:","","```tsx","import { Label, Text } from 'fimo/ui';","import { FimoProviders } from 'fimo/react-router';","```","","After:","","```tsx","import { Label, Text } from 'fimo-react';","import { FimoProviders } from 'fimo-react-router';","```","","Update the Vite integration too:","","```ts","import { reactRouter } from '@react-router/dev/vite';","import { fimo } from 'fimo-react-router/vite';","import { defineConfig } from 'vite';","","export default defineConfig({"," plugins: [reactRouter(), fimo({ sitemap: true })],","});","```"),migrationNote("Next.js code moves from `fimo/next` to `fimo-next`. The update adds and installs `fimo-next` and `fimo-react` if they are missing, then rewrites the retired imports. Server and client imports remain separate.","","Before:","","```tsx","import { FimoProvider, getLabels } from 'fimo/next';","import { Text, useLabels } from 'fimo/next/client';","```","","After:","","```tsx","import { FimoProvider, getLabels } from 'fimo-next';","import { Text, useLabels } from 'fimo-next/client';","```","","Configure hosted previews through `fimo-next/config`:","","```ts","import type { NextConfig } from 'next';","import { withFimo } from 'fimo-next/config';","","const nextConfig: NextConfig = {};","","export default withFimo(nextConfig);","```"),migrationNote("Astro configuration depends on where the application is hosted, so the update reports `fimo/astro/config` for manual review instead of replacing it.","","For Fimo hosting or the Fimo server adapter:","","```js","import { fimo } from 'fimo-astro/config';","```","","For a static Astro project hosted elsewhere, keep:","","```js","import { fimo } from 'fimo/astro/config';","```","","Astro content APIs and components remain in `fimo`:","","```astro","---","import { getLabels } from 'fimo/astro';","import { Image, RichText, Text } from 'fimo/astro/components';","---","```"),migrationNote("SvelteKit integrations move from `fimo/sveltekit` to `fimo-sveltekit`. The update installs `fimo-sveltekit` if it is missing and rewrites the direct imports.","","Before:","","```ts","import { createFimo } from 'fimo/sveltekit';","import { fimo } from 'fimo/sveltekit/vite';","```","","After:","","```ts","import { createFimo } from 'fimo-sveltekit';","import { fimo } from 'fimo-sveltekit/vite';","```","","Update the root provider too:","","```svelte",'<script lang="ts">'," import { FimoProvider } from 'fimo-sveltekit/components';","</script>","```"),migrationNote("React Router projects using `fimo/react-router/routes` need a route-ownership migration after the compatibility import rewrite. Load the dedicated reference before changing the route configuration:","","```bash","npx fimo@latest skills get fimo-code --ref migrations/react-router-route-ownership","```")],improvements:[migrationNote("Framework code now has explicit import paths for each runtime:","","```ts","import { Text } from 'fimo-react'; // React components","import { getLabels } from 'fimo-next'; // Next.js server code","import { useLabels } from 'fimo-next/client'; // Next.js client code","import { createFimo } from 'fimo-sveltekit'; // SvelteKit server code","```"),"`fimo update` handles package additions and direct import rewrites. It leaves conditional migrations, including Astro hosting and React Router route ownership, as explicit manual steps."],recommendations:[migrationNote("Keep `fimo validate --json` at the beginning of the existing build command:","","```json","{",' "scripts": {',' "build": "fimo validate --json && vite build"'," }","}","```","","Preserve the framework build command. For example, use `next build` for Next.js and `astro build` for Astro."),migrationNote("Record the exact package-manager version and commit its lockfile:","","```json","{",' "packageManager": "pnpm@10.26.0"',"}","```"),migrationNote("Load the detected framework reference before completing manual changes, then run the project build:","","```bash","npx fimo@latest skills get fimo-code --ref frameworks/next","npx fimo@latest skills get fimo-code --ref frameworks/astro","npx fimo@latest skills get fimo-code --ref frameworks/sveltekit","npx fimo@latest skills get fimo-code --ref frameworks/react-router","npx fimo@latest skills get fimo-code --ref frameworks/vite-react","pnpm build","```")]},{version:"2.2.0",summary:"Media fields store asset references and load current asset facts only when a read requests them.",codemods:[],breakingChanges:[],improvements:[migrationNote("Media metadata is opt-in.","","Without `populate`:","","```ts","const article = await Article.getBySlug('hello');","// article.cover:","// { id?: string; url: string; alt?: string }","```","","Add `populate` when this read needs asset metadata:","","```ts","const article = await Article.getBySlug('hello', { populate: ['cover'] as const });","// article.cover:","// { id?: string; url: string; alt?: string; name?: string; mime?: string; width?: number; height?: number }","```","","Lists use the same option:","","```ts","const page = await Article.list({ populate: ['cover'] as const });","// page.items[0].cover has the populated shape above","```","","The fields marked `?` may be missing for external, missing, or incomplete assets."),migrationNote("Writes keep the reference and optional entry alt text:","","```ts","await Article.create({ cover: { id: 'asset_123', alt: 'Hero' } });","```","","Do not write asset metadata; Fimo reads it when you populate.")],recommendations:["Add `populate` only to reads that use current media metadata. Leave other reads unchanged."]},{version:"2.8.0",summary:"Pageview tracking works the same in every framework: mount `<Analytics />` once.",codemods:[],breakingChanges:[],improvements:[migrationNote("Every framework, React Router included, tracks pageviews with one component. It needs no configuration on Fimo hosting:","","```tsx","import { Analytics } from 'fimo-analytics/react-router'; // or /next, /react, /vue","","<Analytics />","```"),"If your project already declares fimo-analytics, the update keeps it aligned with your other Fimo packages."],recommendations:[migrationNote("React Router and Vite + React: `FimoProviders` no longer sends pageviews. Add `fimo-analytics` and mount `<Analytics />` inside the router to keep tracking.","","Other frameworks: new projects declare `fimo-analytics` and mount `<Analytics />` in the root layout. If your website has no tracker, add both to match; upgrading alone does not enable analytics.","","Setup instructions:","","```bash","fimo skills get fimo-code --ref analytics","```","","Then publish your website and check that new pageviews appear in Studio. Existing analytics history remains available.")]}];function migrationsForTarget(target){return UPDATE_MIGRATIONS.filter(entry=>compareVersions(entry.version,target)<=0)}__name(migrationsForTarget,"migrationsForTarget");function updateGuidanceCommand(){return"npx fimo@latest skills get fimo-cli --ref update"}__name(updateGuidanceCommand,"updateGuidanceCommand");var EXACT_VERSION_PATTERN=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/;function compareVersions(a,b){let parse12=__name(value=>value.split("-")[0].split(".").map(Number),"parse"),[aMajor,aMinor,aPatch]=parse12(a),[bMajor,bMinor,bPatch]=parse12(b);return aMajor-bMajor||aMinor-bMinor||aPatch-bPatch}__name(compareVersions,"compareVersions");var OWNED_DIST_TAGS=new Set(["latest","staging","experimental"]);function classifyDepValue(value){return value.startsWith("file:")||/r2\.dev\/cli\//.test(value)||value.endsWith(".tgz")?"dev-pin":/^[\^~]?\d+\.\d+\.\d+/.test(value)||OWNED_DIST_TAGS.has(value)?"owned":"bespoke"}__name(classifyDepValue,"classifyDepValue");function planPackageChanges(pkg,target,expected){let changes=[],blockers=[],declared=new Set,fimoSection=null;for(let section2 of["dependencies","devDependencies"]){let deps=pkg[section2];if(deps)for(let name of FIMO_PACKAGES){let current=deps[name];if(typeof current!="string")continue;declared.add(name),name==="fimo"&&fimoSection===null&&(fimoSection=section2);let targetPin=deriveFimoPackagePin(name,target),kind=classifyDepValue(current);if(kind!=="owned"){let reason=kind==="dev-pin"?`"${current}" selects a development build; \`fimo update\` never replaces it. Publish and repin through the development channel, or set an exact version yourself first.`:`"${current}" is not a version this CLI manages; update it yourself first.`;changes.push({name,section:section2,from:current,to:null,action:"blocked",reason}),blockers.push({code:kind==="dev-pin"?"DEV_PIN":"BESPOKE_PIN",message:`${section2}.${name}: ${reason}`});continue}if(current===targetPin){changes.push({name,section:section2,from:current,to:current,action:"unchanged"});continue}changes.push({name,section:section2,from:current,to:targetPin,action:"update"})}}for(let name of expected)declared.has(name)||changes.push({name,section:fimoSection??"dependencies",from:null,to:deriveFimoPackagePin(name,target),action:"add"});return{changes,blockers}}__name(planPackageChanges,"planPackageChanges");function applyPackageChanges(pkg,changes){let changed=!1;for(let change of changes){if(change.action!=="update"&&change.action!=="add"||change.to===null)continue;let deps=pkg[change.section]??={};deps[change.name]!==change.to&&(deps[change.name]=change.to,changed=!0)}return changed}__name(applyPackageChanges,"applyPackageChanges");var KNOWN_FRAMEWORKS=["react-router","vite","astro","nextjs","sveltekit"],COMPANION_FRAMEWORKS=[["fimo-react-router","react-router"],["fimo-next","nextjs"],["fimo-sveltekit","sveltekit"],["fimo-astro","astro"],["fimo-vite","vite"]];function resolveUpdateFramework(detectedSlug,pkg){let deps={...pkg.dependencies,...pkg.devDependencies},has=__name(name=>typeof deps[name]=="string","has"),framework=KNOWN_FRAMEWORKS.find(slug=>slug===detectedSlug)??null;framework||(framework=COMPANION_FRAMEWORKS.find(([companion])=>has(companion))?.[1]??null);let usesReact=framework==="react-router"||framework==="nextjs"||has("react")||has("fimo-react");return{framework,usesReact,label:framework==="vite"?usesReact?"vite (react)":"vite":framework??"unknown"}}__name(resolveUpdateFramework,"resolveUpdateFramework");var SKIPPED_DIRECTORIES=new Set(["node_modules","dist","build","out","coverage","vendor"]),SOURCE_EXTENSIONS=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs",".svelte",".astro",".vue",".mdx"]),MAX_FILE_BYTES=1024*1024;function escapeRegExp2(value){return value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}__name(escapeRegExp2,"escapeRegExp");function replacementFor(mapping,usesReact){return typeof mapping.to=="string"?mapping.to:usesReact?mapping.to.react:mapping.to.default}__name(replacementFor,"replacementFor");function listSourceFiles(root){let files=[],walk=__name(dir=>{let entries2;try{entries2=fs47.readdirSync(dir,{withFileTypes:!0})}catch{return}for(let entry of entries2){if(entry.isDirectory()){!entry.name.startsWith(".")&&!SKIPPED_DIRECTORIES.has(entry.name)&&walk(path49.join(dir,entry.name));continue}entry.isFile()&&SOURCE_EXTENSIONS.has(path49.extname(entry.name))&&files.push(path49.join(dir,entry.name))}},"walk");return walk(root),files.sort()}__name(listSourceFiles,"listSourceFiles");function runRetiredImportsCodemod(options){let{cwd,usesReact,write}=options,changedFiles=[],manualFollowUps=[],files=listSourceFiles(cwd),mappings=[...RETIRED_IMPORT_MAPPINGS].sort((a,b)=>b.from.length-a.from.length);for(let filePath of files){let source;try{if(fs47.statSync(filePath).size>MAX_FILE_BYTES)continue;source=fs47.readFileSync(filePath,"utf8")}catch{continue}if(!source.includes("fimo/"))continue;let relative3=path49.relative(cwd,filePath)||filePath,updated=source,replacements=[];for(let mapping of mappings){let to=replacementFor(mapping,usesReact),pattern=new RegExp(`(['"])${escapeRegExp2(mapping.from)}\\1`,"g"),count=0;updated=updated.replace(pattern,(_match,quote)=>(count+=1,`${quote}${to}${quote}`)),count>0&&replacements.push({from:mapping.from,to,count}),updated.includes(`\`${mapping.from}\``)&&manualFollowUps.push({file:relative3,specifier:mapping.from,note:`Found \`${mapping.from}\` in a template literal; replace it with \`${to}\` manually.`})}for(let manual of MANUAL_REVIEW_IMPORTS)new RegExp(`['"\`]${escapeRegExp2(manual.specifier)}['"\`]`).test(updated)&&manualFollowUps.push({file:relative3,specifier:manual.specifier,note:manual.note});replacements.length>0&&(changedFiles.push({file:relative3,replacements}),write&&fs47.writeFileSync(filePath,updated))}return{id:"retired-imports",filesScanned:files.length,changedFiles,manualFollowUps}}__name(runRetiredImportsCodemod,"runRetiredImportsCodemod");function renderMigrationGuidance(migration){return[migration.breakingChanges.length>0?`### Breaking changes
979
964
 
980
965
  ${migration.breakingChanges.join(`
981
966
 
@@ -992,7 +977,7 @@ ${migration.recommendations.join(`
992
977
  `)}__name(renderMigrationGuidance,"renderMigrationGuidance");function buildMigrationReports(migrations,codemodPreview){return migrations.map(migration=>({version:migration.version,summary:migration.summary,migrate:renderMigrationGuidance(migration),codemods:codemodPreview&&migration.codemods.includes(codemodPreview.id)?[codemodPreview]:[]}))}__name(buildMigrationReports,"buildMigrationReports");function replaceMigrationCodemod(reports,codemodResult){if(codemodResult)for(let migration of reports)migration.codemods=migration.codemods.map(codemod=>codemod.id===codemodResult.id?codemodResult:codemod)}__name(replaceMigrationCodemod,"replaceMigrationCodemod");async function updateCommand3(version,options){let target=version.trim().replace(/^v/,"");if(!EXACT_VERSION_PATTERN.test(target)){ui.error({command:"update",code:"UPDATE_TARGET_INVALID",message:`"${version}" is not an exact version.`,hint:"Pass the exact release to update to, for example `fimo update 1.0.0`. Ranges and dist-tags are not accepted."});return}let cwd=resolveProjectCwd(options.cwd),packagePath=path50.join(cwd,"package.json"),pkg;try{pkg=JSON.parse(fs48.readFileSync(packagePath,"utf8"))}catch{ui.error({command:"update",code:"UPDATE_NO_FIMO_DEP",message:`No readable package.json at ${packagePath}.`,hint:"Run `fimo update` from a project directory (or pass -C <dir>)."});return}let declaredFimo=pkg.dependencies?.fimo??pkg.devDependencies?.fimo??null;if(typeof declaredFimo!="string"){ui.error({command:"update",code:"UPDATE_NO_FIMO_DEP",message:"This project does not declare a `fimo` dependency.",hint:"`fimo update` updates a project that already uses Fimo. Use `fimo init` or `fimo link` to set one up."});return}let detected=await detectProjectFramework(cwd).catch(()=>null),framework=resolveUpdateFramework(detected?.slug??null,pkg),expected=expectedFimoPackages(framework.framework,framework.usesReact),{changes,blockers}=planPackageChanges(pkg,target,expected),inRepo=await isGitRepo(cwd);inRepo&&await hasUncommittedChanges(cwd)&&options.allowDirty!==!0&&blockers.push({code:"DIRTY_WORKTREE",message:"The working tree has uncommitted changes. Commit or stash them so the update lands as its own reviewable change, or pass --allow-dirty."});let migrations=migrationsForTarget(target),runsRetiredImports=migrations.some(entry=>entry.codemods.includes("retired-imports")),codemodPreview=runsRetiredImports?runRetiredImportsCodemod({cwd,usesReact:framework.usesReact,write:!1}):null,manualSteps=[];if(inRepo||manualSteps.push("Not a git checkout \u2014 review and version the changes yourself after the update."),codemodPreview)for(let followUp of codemodPreview.manualFollowUps)manualSteps.push(`${followUp.file}: ${followUp.note}`);if(manualSteps.push("Run the project dev or build script afterwards to confirm the app still works."),migrations.length===0){let newest=UPDATE_MIGRATIONS.at(-1);manualSteps.push(`No bundled migration notes cover ${target}${newest?` (newest known release notes: ${newest.version})`:""}; only dependency pinning applies.`)}let report={from:{declared:declaredFimo,installed:readInstalledFimoVersion(cwd)},to:target,framework:{name:framework.framework,label:framework.label,usesReact:framework.usesReact},mode:"plan",applied:!1,packages:changes,blockers,migrations:buildMigrationReports(migrations,codemodPreview),manualSteps,install:{status:"skipped",packageManager:null,reason:"not applied"},validation:{status:"skipped",reason:"not applied",errors:0},guidance:{reference:"fimo skills get fimo-cli --ref update",command:updateGuidanceCommand()}};if(options.dryRun===!0){report.mode="dry-run",emitReport(report);return}if((currentMode().format==="json"||!isInteractive())&&options.apply!==!0){emitReport(report,"Nothing was written. Re-run with --apply to update the project.");return}if(blockers.length>0){let dirtyOnly=blockers.every(blocker=>blocker.code==="DIRTY_WORKTREE");ui.error({command:"update",code:dirtyOnly?"UPDATE_DIRTY_WORKTREE":"UPDATE_BLOCKED",message:blockers.map(blocker=>blocker.message).join(`
993
978
  `),hint:dirtyOnly?"Commit or stash first, or re-run with --allow-dirty. Use --dry-run to inspect the plan.":"Resolve the pins above, or use --dry-run to inspect the full plan."});return}if(options.apply!==!0){wt(renderUpdateReport(report),`fimo update ${target}`);let answer=await ot2({message:`Apply these changes and update to fimo@${target}?`});if(q(answer)||answer!==!0){ui.error({command:"update",code:"UPDATE_CANCELLED",message:"Update cancelled \u2014 nothing was written."});return}}report.mode="apply",applyPackageChanges(pkg,changes)&&fs48.writeFileSync(packagePath,`${JSON.stringify(pkg,null,2)}
994
979
  `);let codemodResult=runsRetiredImports?runRetiredImportsCodemod({cwd,usesReact:framework.usesReact,write:!0}):null;replaceMigrationCodemod(report.migrations,codemodResult),report.applied=!0,report.install=await runInstall(cwd,options),report.validation=await runValidation(cwd,options,report.install.status);let hint;report.install.status==="failed"?(hint="Dependency installation failed \u2014 fix the install, then re-run `fimo validate`.",process.exitCode=1):report.validation.status==="failed"&&(hint="Validation failed after the update \u2014 fix the reported errors, then re-run `fimo validate`.",process.exitCode=1),emitReport(report,hint)}__name(updateCommand3,"updateCommand");function readInstalledFimoVersion(cwd){try{let installed=JSON.parse(fs48.readFileSync(path50.join(cwd,"node_modules","fimo","package.json"),"utf8"));return typeof installed.version=="string"?installed.version:null}catch{return null}}__name(readInstalledFimoVersion,"readInstalledFimoVersion");async function runInstall(cwd,options){if(options.install===!1)return{status:"skipped",packageManager:null,reason:"--no-install"};let contract=await resolvePackageManagerContract(cwd),manager=null;if(contract.status==="declared"?manager=contract.packageManager.split("@")[0]:contract.status==="inferred"&&(manager=contract.manager),!manager)return{status:"skipped",packageManager:null,reason:contract.status==="unresolved"?contract.message:"No package-manager signal in this directory; run the install yourself."};let result=await installDependencies(manager,cwd);return{status:result.installed?"installed":"failed",packageManager:manager,reason:result.error}}__name(runInstall,"runInstall");async function runValidation(cwd,options,installStatus){if(options.validate===!1)return{status:"skipped",reason:"--no-validate",errors:0};if(installStatus==="failed")return{status:"skipped",reason:"dependency installation failed",errors:0};try{let result=await runValidate({cwd}),errors=Object.values(result.phases).reduce((total,phase)=>total+phase.errors.length,0);return result.ok?{status:"passed",reason:null,errors:0}:{status:"failed",reason:"fimo validate reported errors \u2014 run `fimo validate` for details",errors}}catch(error){return{status:"failed",reason:`fimo validate could not run: ${error instanceof Error?error.message:String(error)}`,errors:0}}}__name(runValidation,"runValidation");function emitReport(report,hint){ui.result({command:"update",data:report,render:__name(()=>renderUpdateReport(report),"render"),...hint?{hint}:{}})}__name(emitReport,"emitReport");function section(title,lines){return lines.length===0?[]:["",`${title}:`,...lines.map(line=>` - ${line}`)]}__name(section,"section");function renderUpdateReport(report){let lines=[],fromLabel=report.from.installed?`${report.from.declared} (installed ${report.from.installed})`:`${report.from.declared}`;lines.push(`Update fimo ${fromLabel} -> ${report.to}`),lines.push(`Framework: ${report.framework.label}`);let packageLines=report.packages.filter(change=>change.action!=="unchanged").map(change=>change.action==="add"?`${change.name}: add ${change.to} (${change.section})`:change.action==="blocked"?`${change.name}: kept at ${change.from} \u2014 ${change.reason??"blocked"}`:`${change.name}: ${change.from} -> ${change.to}`);lines.push(...section("Packages",packageLines.length>0?packageLines:["already up to date"]));for(let migration of report.migrations){lines.push("",`Migration ${migration.version}: ${migration.summary}`),migration.migrate&&lines.push("",migration.migrate);for(let codemod of migration.codemods){let changeLines=codemod.changedFiles.map(file=>{let detail=file.replacements.map(r=>`${r.from} -> ${r.to} (${r.count})`).join(", ");return`${file.file}: ${detail}`});lines.push(...section(`Codemod ${codemod.id} (${codemod.filesScanned} files scanned)`,changeLines.length>0?changeLines:["no retired imports found"]))}}if(lines.push(...section("Blockers",report.blockers.map(blocker=>blocker.message))),lines.push(...section("Manual steps",report.manualSteps)),report.mode==="apply"){let installLine=report.install.status==="installed"?`installed with ${report.install.packageManager}`:`${report.install.status}${report.install.reason?` (${report.install.reason})`:""}`,validationLine=report.validation.status==="failed"?`failed${report.validation.errors>0?` (${report.validation.errors} errors)`:""}${report.validation.reason?` \u2014 ${report.validation.reason}`:""}`:`${report.validation.status}${report.validation.reason?` (${report.validation.reason})`:""}`;lines.push("",`Install: ${installLine}`,`Validation: ${validationLine}`)}else lines.push("",report.mode==="dry-run"?"Dry run \u2014 nothing was written.":"Plan only \u2014 nothing was written.");return lines.push("",`Detailed guidance: ${report.guidance.command}`),lines.join(`
995
- `)}__name(renderUpdateReport,"renderUpdateReport");init_esm();init_dist();init_config();init_sdk_transport();import{readFile as readFile6}from"node:fs/promises";import{resolve as resolve9}from"node:path";init_project_context();init_project();var WebhookCommandError=class extends Error{static{__name(this,"WebhookCommandError")}code;constructor(code2,message){super(message),this.name="WebhookCommandError",this.code=code2}};function addScopeOptions5(command){return command.option("--project <id>","Project id (defaults to the locally linked project)").option("-C, --cwd <dir>","Project directory")}__name(addScopeOptions5,"addScopeOptions");function collect4(value,previous){return[...previous??[],value]}__name(collect4,"collect");function registerWebhooksCommands(program2){let webhooks=program2.command("webhooks").description("Manage outbound project webhooks").addHelpText("after",`
980
+ `)}__name(renderUpdateReport,"renderUpdateReport");init_esm();init_dist();init_config();init_sdk_transport();import{readFile as readFile6}from"node:fs/promises";import{resolve as resolve9}from"node:path";init_project_context();init_project();var WebhookCommandError=class extends Error{static{__name(this,"WebhookCommandError")}code;constructor(code2,message){super(message),this.name="WebhookCommandError",this.code=code2}};function addScopeOptions4(command){return command.option("--project <id>","Project id (defaults to the locally linked project)").option("-C, --cwd <dir>","Project directory")}__name(addScopeOptions4,"addScopeOptions");function collect4(value,previous){return[...previous??[],value]}__name(collect4,"collect");function registerWebhooksCommands(program2){let webhooks=program2.command("webhooks").description("Manage outbound project webhooks").addHelpText("after",`
996
981
  Examples:
997
982
  fimo webhooks events
998
983
  fimo webhooks events form.submitted
@@ -1002,10 +987,10 @@ Examples:
1002
987
  fimo webhooks deliveries <webhook-id>
1003
988
 
1004
989
  Header values use Name=secret:KEY, Name=bearer:KEY, Name=token:KEY, or Name=literal:value. There are no CLI presets: pass the provider request explicitly.
1005
- `);addScopeOptions5(webhooks.command("events [eventType]").description("List events or describe one event and its example payload")).action((eventType,opts,command)=>eventsCommand(eventType,opts,command)),addScopeOptions5(webhooks.command("list").description("List project webhooks")).action((opts,command)=>listCommand5(opts,command)),addScopeOptions5(webhooks.command("get <webhookId>").description("Show a webhook configuration")).action((webhookId,opts,command)=>getCommand(webhookId,opts,command)),addScopeOptions5(webhooks.command("create <name>").description("Create an outbound webhook").requiredOption("--event <event>","Event type, for example form.submitted").requiredOption("--url <url>","HTTPS destination URL").option("--header <name=source:value>","Add a literal or secret-backed header; repeat for multiple headers",collect4).option("--body <json|@file|->","Custom JSON payload inline, from @file, or stdin with -").option("--form <id>","Only form.submitted events for this form id").option("--agent <name>","Only agent events for this agent name").option("--media-type <type>","Only media events for image, video, audio, document, or other").option("--action <action>","Only entry.changed events with created, updated, or deleted entries").option("--content-type <name>","Only entry.changed events for this content type").option("--locale <locale>","Only entry.changed events for this locale").option("--environments <selector>","Deliver from main, all Branches, Production, Automatic previews, or a custom Environment id","main").option("--disabled","Create the webhook disabled").option("--no-signing","Do not add X-Fimo-Signature headers")).action((name,opts,command)=>createCommand4(name,opts,command)),addScopeOptions5(webhooks.command("update <webhookId>").description("Update an outbound webhook").option("--name <name>","Change the webhook name").option("--event <event>","Change the event type").option("--url <url>","Change the HTTPS destination URL").option("--header <name=source:value>","Replace headers; repeat for multiple headers",collect4).option("--clear-headers","Remove all configured destination headers").option("--body <json|@file|->","Replace the custom payload inline, from @file, or stdin with -").option("--default-body","Send the full event envelope instead of a custom template").option("--form <id>","Filter form.submitted by form id").option("--agent <name>","Filter agent events by agent name").option("--media-type <type>","Filter media events by media type").option("--action <action>","Filter entry.changed by created, updated, or deleted").option("--content-type <name>","Filter entry.changed by content type").option("--locale <locale>","Filter entry.changed by locale").option("--environments <selector>","Deliver from main, all Branches, Production, Automatic previews, or a custom Environment id").option("--clear-filter","Remove all event filters").option("--enabled <on|off>","Enable or disable delivery").option("--signing <on|off>","Enable or disable X-Fimo-Signature headers")).action((webhookId,opts,command)=>updateCommand4(webhookId,opts,command)),addScopeOptions5(webhooks.command("delete <webhookId>").description("Delete an outbound webhook")).action((webhookId,opts,command)=>deleteCommand3(webhookId,opts,command)),addScopeOptions5(webhooks.command("test <webhookId>").description("Queue a test delivery using example event data").option("--data <json>","Override the event data with a JSON object").option("--wait","Wait up to 60 seconds for the delivery to succeed or fail")).action((webhookId,opts,command)=>testCommand(webhookId,opts,command)),addScopeOptions5(addPaginationOptions(webhooks.command("deliveries <webhookId>").description("List recent webhook deliveries"),{defaultLimit:50,maxLimit:100})).action((webhookId,opts,command)=>deliveriesCommand(webhookId,opts,command)),addScopeOptions5(webhooks.command("delivery <webhookId> <deliveryId>").description("Show a delivery and all attempts")).action((webhookId,deliveryId,opts,command)=>deliveryCommand(webhookId,deliveryId,opts,command)),addScopeOptions5(webhooks.command("retry <webhookId> <deliveryId>").description("Retry an exhausted failed delivery now")).action((webhookId,deliveryId,opts,command)=>retryCommand2(webhookId,deliveryId,opts,command)),addScopeOptions5(webhooks.command("rotate-secret <webhookId>").description("Rotate and reveal a new signing secret once")).action((webhookId,opts,command)=>rotateSecretCommand(webhookId,opts,command))}__name(registerWebhooksCommands,"registerWebhooksCommands");async function resolveScope4(op,opts,_command){let scope;if(opts.project)scope={projectId:opts.project};else{let ctx=await getProjectContext({cwd:opts.cwd});scope={projectId:ctx.projectId,branch:ctx.branch}}return await requireOperation(op,scope),{...scope,fimo:createCliFimoClient(loadConfig())}}__name(resolveScope4,"resolveScope");async function eventsCommand(eventType,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.events",opts,command),events=await fimo.execute("webhooks.events",{projectId});if(eventType){let event=events.find(candidate=>candidate.type===eventType);if(!event)throw new WebhookCommandError("WEBHOOK_EVENT_NOT_FOUND",`Unknown webhook event '${eventType}'.`);renderJson("webhooks events",event);return}ui.table({command:"webhooks events",columns:[{key:"event",label:"EVENT"},{key:"family",label:"FAMILY"},{key:"description",label:"DESCRIPTION"},{key:"variables",label:"VARIABLES"}],rows:events.map(event=>({event:event.type,family:event.family,description:event.description,variables:event.variables.join(", ")}))})}__name(eventsCommand,"eventsCommand");async function listCommand5(opts,command){let{fimo,projectId}=await resolveScope4("webhooks.list",opts,command),webhooks=await fimo.execute("webhooks.list",{projectId});ui.table({command:"webhooks list",columns:[{key:"id",label:"ID"},{key:"name",label:"NAME"},{key:"event",label:"EVENT"},{key:"destination",label:"DESTINATION"},{key:"enabled",label:"ENABLED"},{key:"last",label:"LAST DELIVERY"}],rows:webhooks.map(webhook=>({id:webhook.id,name:webhook.name,event:webhook.eventType,destination:webhook.destination.maskedUrl,enabled:webhook.enabled?"yes":"no",last:webhook.lastDeliveryStatus??""}))})}__name(listCommand5,"listCommand");async function getCommand(webhookId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.get",opts,command);renderJson("webhooks get",await fimo.execute("webhooks.get",{projectId,webhookId}))}__name(getCommand,"getCommand");async function createCommand4(name,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.create",opts,command),parsed=CreateProjectWebhookRequestSchema.safeParse({name,eventType:opts.event,url:opts.url,enabled:!opts.disabled,filter:createFilter(opts),headers:parseHeaders(opts.header),bodyTemplate:opts.body===void 0?null:await parseJsonInput(opts.body,"--body",opts.cwd),signingEnabled:opts.signing!==!1});if(!parsed.success)throw new WebhookCommandError("WEBHOOK_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid webhook.");let result=await fimo.execute("webhooks.create",{projectId,webhook:parsed.data});renderJson("webhooks create",{webhook:result.webhook,signingSecret:result.signingSecret,note:"Save the signing secret now. Fimo will not show this value again."})}__name(createCommand4,"createCommand");async function updateCommand4(webhookId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.update",opts,command);if(opts.header&&opts.clearHeaders)throw new WebhookCommandError("WEBHOOK_FLAGS_CONFLICT","Use either --header or --clear-headers, not both.");if(opts.body!==void 0&&opts.defaultBody)throw new WebhookCommandError("WEBHOOK_FLAGS_CONFLICT","Use either --body or --default-body, not both.");let current=await fimo.execute("webhooks.get",{projectId,webhookId}),filter=createUpdateFilter(current,opts),request={...opts.name!==void 0?{name:opts.name}:{},...opts.event!==void 0?{eventType:opts.event}:{},...opts.url!==void 0?{url:opts.url}:{},...opts.header!==void 0||opts.clearHeaders?{headers:parseHeaders(opts.header)}:{},...opts.body!==void 0?{bodyTemplate:await parseJsonInput(opts.body,"--body",opts.cwd)}:{},...opts.defaultBody?{bodyTemplate:null}:{},...filter?{filter}:{},...opts.enabled!==void 0?{enabled:parseOnOff(opts.enabled,"--enabled")}:{},...opts.signing!==void 0?{signingEnabled:parseOnOff(opts.signing,"--signing")}:{}},parsed=UpdateProjectWebhookRequestSchema.safeParse(request);if(!parsed.success)throw new WebhookCommandError("WEBHOOK_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid webhook.");if(Object.keys(parsed.data).length===0)throw new WebhookCommandError("WEBHOOK_UPDATE_EMPTY","Pass at least one field to update.");renderJson("webhooks update",await fimo.execute("webhooks.update",{projectId,webhookId,webhook:parsed.data}))}__name(updateCommand4,"updateCommand");async function deleteCommand3(webhookId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.delete",opts,command);await fimo.execute("webhooks.delete",{projectId,webhookId}),ui.ok({command:"webhooks delete",headline:`Deleted webhook ${webhookId}`,details:{project_id:projectId,webhook_id:webhookId}})}__name(deleteCommand3,"deleteCommand");async function testCommand(webhookId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.test",opts,command),data=opts.data===void 0?void 0:parseJsonObject3(opts.data,"--data"),delivery=await fimo.execute("webhooks.test",{projectId,webhookId,data});if(opts.wait){let deadline=Date.now()+6e4;for(;!["succeeded","failed"].includes(delivery.status)&&Date.now()<deadline;)await new Promise(resolveWait=>setTimeout(resolveWait,500)),delivery=(await fimo.execute("webhooks.getDelivery",{projectId,webhookId,deliveryId:delivery.id})).delivery;if(!["succeeded","failed"].includes(delivery.status))throw new WebhookCommandError("WEBHOOK_DELIVERY_TIMEOUT",`Delivery ${delivery.id} did not finish within 60 seconds.`)}renderJson("webhooks test",delivery)}__name(testCommand,"testCommand");async function deliveriesCommand(webhookId,opts,command){let pagination;try{pagination=parsePaginationOptions(opts,{defaultLimit:50,maxLimit:100}),pagination.cursor!==void 0&&parseCursorNumber(pagination.cursor,{defaultValue:1,minimum:1})}catch(error){throw error instanceof PaginationValidationError?new WebhookCommandError(error.kind==="invalid_limit"?"WEBHOOK_LIMIT_INVALID":"WEBHOOK_CURSOR_INVALID",error.message):error}let{fimo,projectId}=await resolveScope4("webhooks.deliveries.list",opts,command),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("webhooks.listDeliveries",{projectId,webhookId,page:pageNumber,limit:pagination.limit});return{items:response.items,nextCursor:response.pagination.hasMore?String(response.pagination.page+1):null,total:response.pagination.total,pagination:response.pagination,stats:response.stats}},"fetchPage")}),trailingArgs=[];opts.project&&trailingArgs.push("--project",opts.project),opts.cwd&&trailingArgs.push("--cwd",opts.cwd);let rows=page.items.map(delivery=>({id:delivery.id,event:delivery.eventType,status:delivery.status,attempts:delivery.attemptCount,response:delivery.responseStatus??"",created:String(delivery.createdAt)})),hint=page.nextCursor?buildPaginationHint(["fimo","webhooks","deliveries",webhookId],{cursor:page.nextCursor,limit:pagination.limit,trailingArgs}):void 0;ui.table({command:"webhooks deliveries",columns:[{key:"id",label:"DELIVERY"},{key:"event",label:"EVENT"},{key:"status",label:"STATUS"},{key:"attempts",label:"ATTEMPTS"},{key:"response",label:"RESPONSE"},{key:"created",label:"CREATED"}],rows,jsonData:{items:page.items,nextCursor:page.nextCursor,total:page.total,pagination:page.pagination,stats:page.stats},...hint?{hint}:{}})}__name(deliveriesCommand,"deliveriesCommand");async function deliveryCommand(webhookId,deliveryId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.deliveries.get",opts,command);renderJson("webhooks delivery",await fimo.execute("webhooks.getDelivery",{projectId,webhookId,deliveryId}))}__name(deliveryCommand,"deliveryCommand");async function retryCommand2(webhookId,deliveryId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.deliveries.retry",opts,command);renderJson("webhooks retry",await fimo.execute("webhooks.retryDelivery",{projectId,webhookId,deliveryId}))}__name(retryCommand2,"retryCommand");async function rotateSecretCommand(webhookId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.rotate_secret",opts,command),signingSecret=await fimo.execute("webhooks.rotateSecret",{projectId,webhookId});renderJson("webhooks rotate-secret",{webhookId,signingSecret,note:"Save the signing secret now. Fimo will not show this value again."})}__name(rotateSecretCommand,"rotateSecretCommand");function createFilter(opts){return parseFilter({...opts.environments?{environment:opts.environments}:{},...opts.form?{formId:opts.form}:{},...opts.agent?{agentName:opts.agent}:{},...opts.mediaType?{mediaType:opts.mediaType}:{},...opts.action?{action:opts.action}:{},...opts.contentType?{contentType:opts.contentType}:{},...opts.locale?{locale:opts.locale}:{}})}__name(createFilter,"createFilter");function parseFilter(value){let parsed=WebhookFilterSchema.safeParse(value);if(!parsed.success)throw new WebhookCommandError("WEBHOOK_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid webhook filter.");return parsed.data}__name(parseFilter,"parseFilter");function hasFilterOptions(opts){return!!(opts.clearFilter||opts.environments||opts.form||opts.agent||opts.mediaType||opts.action||opts.contentType||opts.locale)}__name(hasFilterOptions,"hasFilterOptions");function createUpdateFilter(current,opts){if(!hasFilterOptions(opts))return;if(opts.clearFilter)return createFilter({environments:opts.environments??"main"});let environment=opts.environments??current.filter.environment??"main";return!(opts.form||opts.agent||opts.mediaType||opts.action||opts.contentType||opts.locale)?parseFilter({...current.filter,environment}):createFilter({...opts,environments:environment})}__name(createUpdateFilter,"createUpdateFilter");function parseHeaders(values){return(values??[]).map(entry=>{let separator=entry.indexOf("=");if(separator<=0)throw new WebhookCommandError("WEBHOOK_HEADER_INVALID",`Invalid --header '${entry}'. Use Name=secret:KEY, Name=bearer:KEY, Name=token:KEY, or Name=literal:value.`);let name=entry.slice(0,separator).trim(),encoded=entry.slice(separator+1);if(encoded.startsWith("secret:"))return{name,value:{source:"secret",key:encoded.slice(7)}};if(encoded.startsWith("bearer:"))return{name,value:{source:"secret",key:encoded.slice(7),prefix:"Bearer "}};if(encoded.startsWith("token:"))return{name,value:{source:"secret",key:encoded.slice(6),prefix:"token "}};if(encoded.startsWith("literal:"))return{name,value:{source:"literal",value:encoded.slice(8)}};throw new WebhookCommandError("WEBHOOK_HEADER_INVALID",`Invalid --header '${entry}'. Use Name=secret:KEY, Name=bearer:KEY, Name=token:KEY, or Name=literal:value.`)})}__name(parseHeaders,"parseHeaders");function parseJson(value,flag2){try{return JSON.parse(value)}catch{throw new WebhookCommandError("WEBHOOK_JSON_INVALID",`${flag2} must be valid JSON. Quote the value so your shell passes it as one argument.`)}}__name(parseJson,"parseJson");async function parseJsonInput(value,flag2,cwd){let input=value;if(value==="-")input=await readStdin2();else if(value.startsWith("@")){let path52=resolve9(resolveProjectCwd(cwd),value.slice(1));try{input=await readFile6(path52,"utf8")}catch{throw new WebhookCommandError("WEBHOOK_INPUT_READ_FAILED",`Could not read ${flag2} input from '${path52}'.`)}}return parseJson(input,flag2)}__name(parseJsonInput,"parseJsonInput");async function readStdin2(){let input="";process.stdin.setEncoding("utf8");for await(let chunk of process.stdin)input+=chunk;return input}__name(readStdin2,"readStdin");function parseJsonObject3(value,flag2){let parsed=parseJson(value,flag2);if(!parsed||typeof parsed!="object"||Array.isArray(parsed))throw new WebhookCommandError("WEBHOOK_DATA_INVALID",`${flag2} must be a JSON object.`);return parsed}__name(parseJsonObject3,"parseJsonObject");function parseOnOff(value,flag2){if(value==="on")return!0;if(value==="off")return!1;throw new WebhookCommandError("WEBHOOK_TOGGLE_INVALID",`${flag2} must be 'on' or 'off'.`)}__name(parseOnOff,"parseOnOff");function renderJson(command,data){ui.result({command,data,render:__name(()=>JSON.stringify(data,null,2),"render")})}__name(renderJson,"renderJson");init_dist();init_auth();async function whoamiCommand(){let creds=requireCredentials();if(!creds.user){ui.error({command:"whoami",code:"NOT_AUTHENTICATED",message:"Could not resolve the current user from local credentials.",hint:"Run `fimo login` again."});return}let displayName=creds.user.name||creds.user.email,activeOrganization=creds.activeOrganization?.name??null;ui.kv({command:"whoami",headline:`Signed in as ${displayName} (${creds.user.email})`,fields:{user:displayName,email:creds.user.email,active_organization:activeOrganization},hint:activeOrganization===null?"Run `fimo orgs switch` to pick an active organization.":void 0})}__name(whoamiCommand,"whoamiCommand");init_config();var TOP_LEVEL_HELP_GROUPS=[{title:"Account",commands:["login","logout","whoami"]},{title:"Project lifecycle",commands:["create","migrate","deploy","logs","validate","update","describe"]},{title:"Projects & teams",commands:["projects","orgs","invite","credits","referral","rename","delete","unpublish"]},{title:"Environments & releases",commands:["environments","status","branch","checkout","switch","pull","diff","merge","publish","preview"]},{title:"Content & media",commands:["schemas","entries","forms","translations","assets","generate","models"]},{title:"Domains & analytics",commands:["domains","analytics"]},{title:"Agents & integrations",commands:["agents","inbox","skills","rules","integrations","channels","mcp"]},{title:"Configuration",commands:["vars","secrets"]},{title:"Help",commands:["support","help"]}];function configureGroupedHelp(program2){program2.configureHelp({...program2.configureHelp(),formatHelp:__name((cmd,helper)=>formatHelpWithGroupedCommands(cmd,helper,TOP_LEVEL_HELP_GROUPS),"formatHelp")})}__name(configureGroupedHelp,"configureGroupedHelp");function formatHelpWithGroupedCommands(cmd,helper,groups){let termWidth=helper.padWidth(cmd,helper),helpWidth=helper.helpWidth??80,formatItem=__name((term,description)=>helper.formatItem(term,termWidth,description,helper),"formatItem"),output=[`${helper.styleTitle("Usage:")} ${helper.styleUsage(helper.commandUsage(cmd))}`,""],commandDescription=helper.commandDescription(cmd);commandDescription.length>0&&(output=output.concat([helper.boxWrap(helper.styleCommandDescription(commandDescription),helpWidth),""]));let argumentList=helper.visibleArguments(cmd).map(argument=>formatItem(helper.styleArgumentTerm(helper.argumentTerm(argument)),helper.styleArgumentDescription(helper.argumentDescription(argument))));argumentList.length>0&&(output=output.concat([helper.styleTitle("Arguments:"),...argumentList,""]));let optionList=helper.visibleOptions(cmd).map(option2=>formatItem(helper.styleOptionTerm(helper.optionTerm(option2)),helper.styleOptionDescription(helper.optionDescription(option2))));if(optionList.length>0&&(output=output.concat([helper.styleTitle("Options:"),...optionList,""])),helper.showGlobalOptions){let globalOptionList=helper.visibleGlobalOptions(cmd).map(option2=>formatItem(helper.styleOptionTerm(helper.optionTerm(option2)),helper.styleOptionDescription(helper.optionDescription(option2))));globalOptionList.length>0&&(output=output.concat([helper.styleTitle("Global Options:"),...globalOptionList,""]))}let commandSections=formatGroupedCommandSections(cmd,helper,groups,termWidth);return commandSections.length>0&&(output=output.concat([helper.styleTitle("Commands:"),...commandSections,""])),output.join(`
990
+ `);addScopeOptions4(webhooks.command("events [eventType]").description("List events or describe one event and its example payload")).action((eventType,opts,command)=>eventsCommand(eventType,opts,command)),addScopeOptions4(webhooks.command("list").description("List project webhooks")).action((opts,command)=>listCommand5(opts,command)),addScopeOptions4(webhooks.command("get <webhookId>").description("Show a webhook configuration")).action((webhookId,opts,command)=>getCommand(webhookId,opts,command)),addScopeOptions4(webhooks.command("create <name>").description("Create an outbound webhook").requiredOption("--event <event>","Event type, for example form.submitted").requiredOption("--url <url>","HTTPS destination URL").option("--header <name=source:value>","Add a literal or secret-backed header; repeat for multiple headers",collect4).option("--body <json|@file|->","Custom JSON payload inline, from @file, or stdin with -").option("--form <id>","Only form.submitted events for this form id").option("--agent <name>","Only agent events for this agent name").option("--media-type <type>","Only media events for image, video, audio, document, or other").option("--action <action>","Only entry.changed events with created, updated, or deleted entries").option("--content-type <name>","Only entry.changed events for this content type").option("--locale <locale>","Only entry.changed events for this locale").option("--environments <selector>","Deliver from main, all Branches, Production, Automatic previews, or a custom Environment id","main").option("--disabled","Create the webhook disabled").option("--no-signing","Do not add X-Fimo-Signature headers")).action((name,opts,command)=>createCommand4(name,opts,command)),addScopeOptions4(webhooks.command("update <webhookId>").description("Update an outbound webhook").option("--name <name>","Change the webhook name").option("--event <event>","Change the event type").option("--url <url>","Change the HTTPS destination URL").option("--header <name=source:value>","Replace headers; repeat for multiple headers",collect4).option("--clear-headers","Remove all configured destination headers").option("--body <json|@file|->","Replace the custom payload inline, from @file, or stdin with -").option("--default-body","Send the full event envelope instead of a custom template").option("--form <id>","Filter form.submitted by form id").option("--agent <name>","Filter agent events by agent name").option("--media-type <type>","Filter media events by media type").option("--action <action>","Filter entry.changed by created, updated, or deleted").option("--content-type <name>","Filter entry.changed by content type").option("--locale <locale>","Filter entry.changed by locale").option("--environments <selector>","Deliver from main, all Branches, Production, Automatic previews, or a custom Environment id").option("--clear-filter","Remove all event filters").option("--enabled <on|off>","Enable or disable delivery").option("--signing <on|off>","Enable or disable X-Fimo-Signature headers")).action((webhookId,opts,command)=>updateCommand4(webhookId,opts,command)),addScopeOptions4(webhooks.command("delete <webhookId>").description("Delete an outbound webhook")).action((webhookId,opts,command)=>deleteCommand3(webhookId,opts,command)),addScopeOptions4(webhooks.command("test <webhookId>").description("Queue a test delivery using example event data").option("--data <json>","Override the event data with a JSON object").option("--wait","Wait up to 60 seconds for the delivery to succeed or fail")).action((webhookId,opts,command)=>testCommand(webhookId,opts,command)),addScopeOptions4(addPaginationOptions(webhooks.command("deliveries <webhookId>").description("List recent webhook deliveries"),{defaultLimit:50,maxLimit:100})).action((webhookId,opts,command)=>deliveriesCommand(webhookId,opts,command)),addScopeOptions4(webhooks.command("delivery <webhookId> <deliveryId>").description("Show a delivery and all attempts")).action((webhookId,deliveryId,opts,command)=>deliveryCommand(webhookId,deliveryId,opts,command)),addScopeOptions4(webhooks.command("retry <webhookId> <deliveryId>").description("Retry an exhausted failed delivery now")).action((webhookId,deliveryId,opts,command)=>retryCommand2(webhookId,deliveryId,opts,command)),addScopeOptions4(webhooks.command("rotate-secret <webhookId>").description("Rotate and reveal a new signing secret once")).action((webhookId,opts,command)=>rotateSecretCommand(webhookId,opts,command))}__name(registerWebhooksCommands,"registerWebhooksCommands");async function resolveScope4(op,opts,_command){let scope;if(opts.project)scope={projectId:opts.project};else{let ctx=await getProjectContext({cwd:opts.cwd});scope={projectId:ctx.projectId,branch:ctx.branch}}return await requireOperation(op,scope),{...scope,fimo:createCliFimoClient(loadConfig())}}__name(resolveScope4,"resolveScope");async function eventsCommand(eventType,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.events",opts,command),events=await fimo.execute("webhooks.events",{projectId});if(eventType){let event=events.find(candidate=>candidate.type===eventType);if(!event)throw new WebhookCommandError("WEBHOOK_EVENT_NOT_FOUND",`Unknown webhook event '${eventType}'.`);renderJson("webhooks events",event);return}ui.table({command:"webhooks events",columns:[{key:"event",label:"EVENT"},{key:"family",label:"FAMILY"},{key:"description",label:"DESCRIPTION"},{key:"variables",label:"VARIABLES"}],rows:events.map(event=>({event:event.type,family:event.family,description:event.description,variables:event.variables.join(", ")}))})}__name(eventsCommand,"eventsCommand");async function listCommand5(opts,command){let{fimo,projectId}=await resolveScope4("webhooks.list",opts,command),webhooks=await fimo.execute("webhooks.list",{projectId});ui.table({command:"webhooks list",columns:[{key:"id",label:"ID"},{key:"name",label:"NAME"},{key:"event",label:"EVENT"},{key:"destination",label:"DESTINATION"},{key:"enabled",label:"ENABLED"},{key:"last",label:"LAST DELIVERY"}],rows:webhooks.map(webhook=>({id:webhook.id,name:webhook.name,event:webhook.eventType,destination:webhook.destination.maskedUrl,enabled:webhook.enabled?"yes":"no",last:webhook.lastDeliveryStatus??""}))})}__name(listCommand5,"listCommand");async function getCommand(webhookId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.get",opts,command);renderJson("webhooks get",await fimo.execute("webhooks.get",{projectId,webhookId}))}__name(getCommand,"getCommand");async function createCommand4(name,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.create",opts,command),parsed=CreateProjectWebhookRequestSchema.safeParse({name,eventType:opts.event,url:opts.url,enabled:!opts.disabled,filter:createFilter(opts),headers:parseHeaders(opts.header),bodyTemplate:opts.body===void 0?null:await parseJsonInput(opts.body,"--body",opts.cwd),signingEnabled:opts.signing!==!1});if(!parsed.success)throw new WebhookCommandError("WEBHOOK_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid webhook.");let result=await fimo.execute("webhooks.create",{projectId,webhook:parsed.data});renderJson("webhooks create",{webhook:result.webhook,signingSecret:result.signingSecret,note:"Save the signing secret now. Fimo will not show this value again."})}__name(createCommand4,"createCommand");async function updateCommand4(webhookId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.update",opts,command);if(opts.header&&opts.clearHeaders)throw new WebhookCommandError("WEBHOOK_FLAGS_CONFLICT","Use either --header or --clear-headers, not both.");if(opts.body!==void 0&&opts.defaultBody)throw new WebhookCommandError("WEBHOOK_FLAGS_CONFLICT","Use either --body or --default-body, not both.");let current=await fimo.execute("webhooks.get",{projectId,webhookId}),filter=createUpdateFilter(current,opts),request={...opts.name!==void 0?{name:opts.name}:{},...opts.event!==void 0?{eventType:opts.event}:{},...opts.url!==void 0?{url:opts.url}:{},...opts.header!==void 0||opts.clearHeaders?{headers:parseHeaders(opts.header)}:{},...opts.body!==void 0?{bodyTemplate:await parseJsonInput(opts.body,"--body",opts.cwd)}:{},...opts.defaultBody?{bodyTemplate:null}:{},...filter?{filter}:{},...opts.enabled!==void 0?{enabled:parseOnOff(opts.enabled,"--enabled")}:{},...opts.signing!==void 0?{signingEnabled:parseOnOff(opts.signing,"--signing")}:{}},parsed=UpdateProjectWebhookRequestSchema.safeParse(request);if(!parsed.success)throw new WebhookCommandError("WEBHOOK_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid webhook.");if(Object.keys(parsed.data).length===0)throw new WebhookCommandError("WEBHOOK_UPDATE_EMPTY","Pass at least one field to update.");renderJson("webhooks update",await fimo.execute("webhooks.update",{projectId,webhookId,webhook:parsed.data}))}__name(updateCommand4,"updateCommand");async function deleteCommand3(webhookId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.delete",opts,command);await fimo.execute("webhooks.delete",{projectId,webhookId}),ui.ok({command:"webhooks delete",headline:`Deleted webhook ${webhookId}`,details:{project_id:projectId,webhook_id:webhookId}})}__name(deleteCommand3,"deleteCommand");async function testCommand(webhookId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.test",opts,command),data=opts.data===void 0?void 0:parseJsonObject3(opts.data,"--data"),delivery=await fimo.execute("webhooks.test",{projectId,webhookId,data});if(opts.wait){let deadline=Date.now()+6e4;for(;!["succeeded","failed"].includes(delivery.status)&&Date.now()<deadline;)await new Promise(resolveWait=>setTimeout(resolveWait,500)),delivery=(await fimo.execute("webhooks.getDelivery",{projectId,webhookId,deliveryId:delivery.id})).delivery;if(!["succeeded","failed"].includes(delivery.status))throw new WebhookCommandError("WEBHOOK_DELIVERY_TIMEOUT",`Delivery ${delivery.id} did not finish within 60 seconds.`)}renderJson("webhooks test",delivery)}__name(testCommand,"testCommand");async function deliveriesCommand(webhookId,opts,command){let pagination;try{pagination=parsePaginationOptions(opts,{defaultLimit:50,maxLimit:100}),pagination.cursor!==void 0&&parseCursorNumber(pagination.cursor,{defaultValue:1,minimum:1})}catch(error){throw error instanceof PaginationValidationError?new WebhookCommandError(error.kind==="invalid_limit"?"WEBHOOK_LIMIT_INVALID":"WEBHOOK_CURSOR_INVALID",error.message):error}let{fimo,projectId}=await resolveScope4("webhooks.deliveries.list",opts,command),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("webhooks.listDeliveries",{projectId,webhookId,page:pageNumber,limit:pagination.limit});return{items:response.items,nextCursor:response.pagination.hasMore?String(response.pagination.page+1):null,total:response.pagination.total,pagination:response.pagination,stats:response.stats}},"fetchPage")}),trailingArgs=[];opts.project&&trailingArgs.push("--project",opts.project),opts.cwd&&trailingArgs.push("--cwd",opts.cwd);let rows=page.items.map(delivery=>({id:delivery.id,event:delivery.eventType,status:delivery.status,attempts:delivery.attemptCount,response:delivery.responseStatus??"",created:String(delivery.createdAt)})),hint=page.nextCursor?buildPaginationHint(["fimo","webhooks","deliveries",webhookId],{cursor:page.nextCursor,limit:pagination.limit,trailingArgs}):void 0;ui.table({command:"webhooks deliveries",columns:[{key:"id",label:"DELIVERY"},{key:"event",label:"EVENT"},{key:"status",label:"STATUS"},{key:"attempts",label:"ATTEMPTS"},{key:"response",label:"RESPONSE"},{key:"created",label:"CREATED"}],rows,jsonData:{items:page.items,nextCursor:page.nextCursor,total:page.total,pagination:page.pagination,stats:page.stats},...hint?{hint}:{}})}__name(deliveriesCommand,"deliveriesCommand");async function deliveryCommand(webhookId,deliveryId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.deliveries.get",opts,command);renderJson("webhooks delivery",await fimo.execute("webhooks.getDelivery",{projectId,webhookId,deliveryId}))}__name(deliveryCommand,"deliveryCommand");async function retryCommand2(webhookId,deliveryId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.deliveries.retry",opts,command);renderJson("webhooks retry",await fimo.execute("webhooks.retryDelivery",{projectId,webhookId,deliveryId}))}__name(retryCommand2,"retryCommand");async function rotateSecretCommand(webhookId,opts,command){let{fimo,projectId}=await resolveScope4("webhooks.rotate_secret",opts,command),signingSecret=await fimo.execute("webhooks.rotateSecret",{projectId,webhookId});renderJson("webhooks rotate-secret",{webhookId,signingSecret,note:"Save the signing secret now. Fimo will not show this value again."})}__name(rotateSecretCommand,"rotateSecretCommand");function createFilter(opts){return parseFilter({...opts.environments?{environment:opts.environments}:{},...opts.form?{formId:opts.form}:{},...opts.agent?{agentName:opts.agent}:{},...opts.mediaType?{mediaType:opts.mediaType}:{},...opts.action?{action:opts.action}:{},...opts.contentType?{contentType:opts.contentType}:{},...opts.locale?{locale:opts.locale}:{}})}__name(createFilter,"createFilter");function parseFilter(value){let parsed=WebhookFilterSchema.safeParse(value);if(!parsed.success)throw new WebhookCommandError("WEBHOOK_VALIDATION_FAILED",parsed.error.issues[0]?.message??"Invalid webhook filter.");return parsed.data}__name(parseFilter,"parseFilter");function hasFilterOptions(opts){return!!(opts.clearFilter||opts.environments||opts.form||opts.agent||opts.mediaType||opts.action||opts.contentType||opts.locale)}__name(hasFilterOptions,"hasFilterOptions");function createUpdateFilter(current,opts){if(!hasFilterOptions(opts))return;if(opts.clearFilter)return createFilter({environments:opts.environments??"main"});let environment=opts.environments??current.filter.environment??"main";return!(opts.form||opts.agent||opts.mediaType||opts.action||opts.contentType||opts.locale)?parseFilter({...current.filter,environment}):createFilter({...opts,environments:environment})}__name(createUpdateFilter,"createUpdateFilter");function parseHeaders(values){return(values??[]).map(entry=>{let separator=entry.indexOf("=");if(separator<=0)throw new WebhookCommandError("WEBHOOK_HEADER_INVALID",`Invalid --header '${entry}'. Use Name=secret:KEY, Name=bearer:KEY, Name=token:KEY, or Name=literal:value.`);let name=entry.slice(0,separator).trim(),encoded=entry.slice(separator+1);if(encoded.startsWith("secret:"))return{name,value:{source:"secret",key:encoded.slice(7)}};if(encoded.startsWith("bearer:"))return{name,value:{source:"secret",key:encoded.slice(7),prefix:"Bearer "}};if(encoded.startsWith("token:"))return{name,value:{source:"secret",key:encoded.slice(6),prefix:"token "}};if(encoded.startsWith("literal:"))return{name,value:{source:"literal",value:encoded.slice(8)}};throw new WebhookCommandError("WEBHOOK_HEADER_INVALID",`Invalid --header '${entry}'. Use Name=secret:KEY, Name=bearer:KEY, Name=token:KEY, or Name=literal:value.`)})}__name(parseHeaders,"parseHeaders");function parseJson(value,flag2){try{return JSON.parse(value)}catch{throw new WebhookCommandError("WEBHOOK_JSON_INVALID",`${flag2} must be valid JSON. Quote the value so your shell passes it as one argument.`)}}__name(parseJson,"parseJson");async function parseJsonInput(value,flag2,cwd){let input=value;if(value==="-")input=await readStdin2();else if(value.startsWith("@")){let path52=resolve9(resolveProjectCwd(cwd),value.slice(1));try{input=await readFile6(path52,"utf8")}catch{throw new WebhookCommandError("WEBHOOK_INPUT_READ_FAILED",`Could not read ${flag2} input from '${path52}'.`)}}return parseJson(input,flag2)}__name(parseJsonInput,"parseJsonInput");async function readStdin2(){let input="";process.stdin.setEncoding("utf8");for await(let chunk of process.stdin)input+=chunk;return input}__name(readStdin2,"readStdin");function parseJsonObject3(value,flag2){let parsed=parseJson(value,flag2);if(!parsed||typeof parsed!="object"||Array.isArray(parsed))throw new WebhookCommandError("WEBHOOK_DATA_INVALID",`${flag2} must be a JSON object.`);return parsed}__name(parseJsonObject3,"parseJsonObject");function parseOnOff(value,flag2){if(value==="on")return!0;if(value==="off")return!1;throw new WebhookCommandError("WEBHOOK_TOGGLE_INVALID",`${flag2} must be 'on' or 'off'.`)}__name(parseOnOff,"parseOnOff");function renderJson(command,data){ui.result({command,data,render:__name(()=>JSON.stringify(data,null,2),"render")})}__name(renderJson,"renderJson");init_dist();init_auth();async function whoamiCommand(){let creds=requireCredentials();if(!creds.user){ui.error({command:"whoami",code:"NOT_AUTHENTICATED",message:"Could not resolve the current user from local credentials.",hint:"Run `fimo login` again."});return}let displayName=creds.user.name||creds.user.email,activeOrganization=creds.activeOrganization?.name??null;ui.kv({command:"whoami",headline:`Signed in as ${displayName} (${creds.user.email})`,fields:{user:displayName,email:creds.user.email,active_organization:activeOrganization},hint:activeOrganization===null?"Run `fimo orgs switch` to pick an active organization.":void 0})}__name(whoamiCommand,"whoamiCommand");init_config();var TOP_LEVEL_HELP_GROUPS=[{title:"Account",commands:["login","logout","whoami"]},{title:"Project lifecycle",commands:["create","migrate","deploy","logs","validate","update","describe"]},{title:"Projects & teams",commands:["projects","orgs","invite","credits","referral","rename","delete","unpublish"]},{title:"Environments & releases",commands:["environments","status","branch","checkout","switch","pull","diff","merge","publish","preview"]},{title:"Content & media",commands:["schemas","entries","forms","translations","assets","generate","models"]},{title:"Domains & analytics",commands:["domains","analytics"]},{title:"Agents & integrations",commands:["agents","skills","rules","integrations","channels","mcp"]},{title:"Configuration",commands:["vars","secrets"]},{title:"Help",commands:["support","help"]}];function configureGroupedHelp(program2){program2.configureHelp({...program2.configureHelp(),formatHelp:__name((cmd,helper)=>formatHelpWithGroupedCommands(cmd,helper,TOP_LEVEL_HELP_GROUPS),"formatHelp")})}__name(configureGroupedHelp,"configureGroupedHelp");function formatHelpWithGroupedCommands(cmd,helper,groups){let termWidth=helper.padWidth(cmd,helper),helpWidth=helper.helpWidth??80,formatItem=__name((term,description)=>helper.formatItem(term,termWidth,description,helper),"formatItem"),output=[`${helper.styleTitle("Usage:")} ${helper.styleUsage(helper.commandUsage(cmd))}`,""],commandDescription=helper.commandDescription(cmd);commandDescription.length>0&&(output=output.concat([helper.boxWrap(helper.styleCommandDescription(commandDescription),helpWidth),""]));let argumentList=helper.visibleArguments(cmd).map(argument=>formatItem(helper.styleArgumentTerm(helper.argumentTerm(argument)),helper.styleArgumentDescription(helper.argumentDescription(argument))));argumentList.length>0&&(output=output.concat([helper.styleTitle("Arguments:"),...argumentList,""]));let optionList=helper.visibleOptions(cmd).map(option=>formatItem(helper.styleOptionTerm(helper.optionTerm(option)),helper.styleOptionDescription(helper.optionDescription(option))));if(optionList.length>0&&(output=output.concat([helper.styleTitle("Options:"),...optionList,""])),helper.showGlobalOptions){let globalOptionList=helper.visibleGlobalOptions(cmd).map(option=>formatItem(helper.styleOptionTerm(helper.optionTerm(option)),helper.styleOptionDescription(helper.optionDescription(option))));globalOptionList.length>0&&(output=output.concat([helper.styleTitle("Global Options:"),...globalOptionList,""]))}let commandSections=formatGroupedCommandSections(cmd,helper,groups,termWidth);return commandSections.length>0&&(output=output.concat([helper.styleTitle("Commands:"),...commandSections,""])),output.join(`
1006
991
  `)}__name(formatHelpWithGroupedCommands,"formatHelpWithGroupedCommands");function formatGroupedCommandSections(cmd,helper,groups,termWidth){let visibleCommands=helper.visibleCommands(cmd);if(visibleCommands.length===0)return[];let commandByName=new Map(visibleCommands.map(command=>[command.name(),command])),renderedNames=new Set,sections=[];for(let group of groups){let rows=group.commands.map(name=>commandByName.get(name)).filter(command=>command!==void 0).map(command=>(renderedNames.add(command.name()),indentBlock(helper.formatItem(helper.styleSubcommandTerm(helper.subcommandTerm(command)),termWidth,helper.styleSubcommandDescription(helper.subcommandDescription(command)),helper))));rows.length>0&&(sections.length>0&&sections.push(""),sections.push(` ${group.title}:`,...rows))}let ungroupedRows=visibleCommands.filter(command=>!renderedNames.has(command.name())).map(command=>indentBlock(helper.formatItem(helper.styleSubcommandTerm(helper.subcommandTerm(command)),termWidth,helper.styleSubcommandDescription(helper.subcommandDescription(command)),helper)));return ungroupedRows.length>0&&(sections.length>0&&sections.push(""),sections.push(" Other commands:",...ungroupedRows)),sections}__name(formatGroupedCommandSections,"formatGroupedCommandSections");function indentBlock(value){return value.split(`
1007
992
  `).map(line=>` ${line}`).join(`
1008
- `)}__name(indentBlock,"indentBlock");init_sdk_transport();init_project_context();function computeVersionString(){let pkgVersion="0.0.0";try{let pkg=JSON.parse(fs49.readFileSync(path51.join(CLI_ROOT,"package.json"),"utf8"));typeof pkg.version=="string"&&pkg.version.length>0&&(pkgVersion=pkg.version)}catch{}let releaseId;try{let release=JSON.parse(fs49.readFileSync(path51.join(CLI_ROOT,"release.json"),"utf8"));typeof release.id=="string"&&release.id.length>0&&(releaseId=release.id)}catch{}let{apiUrl}=loadConfig(),detailParts=[];return releaseId&&detailParts.push(`release ${releaseId}`),detailParts.push(apiUrl),`fimo ${pkgVersion} (${detailParts.join(", ")})`}__name(computeVersionString,"computeVersionString");program.name("fimo").description("Fimo CLI").version(computeVersionString()).option("--branch <name>","Override the target Branch (analytics reads default to prod; other commands use the current Git branch or FIMO_ENV)").option("--json","Emit one structured JSON envelope per command (for tools / agents). FIMO_OUTPUT=json env also enables this.").option("--no-color","Disable colour in pretty mode (NO_COLOR env var also honoured)").option("--ascii","Use ASCII fallbacks for unicode glyphs (\u2713 \u2192 [ok], etc.) - for legacy terminals").hook("preAction",thisCommand=>{let opts=thisCommand.optsWithGlobals();initUi({json:opts.json===!0,noColor:opts.color===!1,ascii:opts.ascii===!0,jsonEnvVar:"FIMO_OUTPUT",asciiEnvVar:"FIMO_ASCII"})});program.command("login").description("Sign in through your browser").action(loginCommand);program.command("logout").description("Revoke the current session and clear local credentials").action(logoutCommand);program.command("whoami").description("Show the current signed-in user").action(whoamiCommand);registerProjectSecretsCommands(program);registerIntegrationsCommands(program);registerMcpCommands(program);registerChannelsCommands(program);registerSchedulesCommands(program);registerHistoryCommands(program);registerInboxCommands(program);registerSupportCommands(program);registerWebhooksCommands(program);registerLocalesCommands(program);registerEnvironmentsCommands(program);program.command("invite").description("Invite a user to an organization or project").option("--target <target>","Invite target: organization or project").option("--org <organizationId>","Organization ID (defaults to active when needed)").option("--project <projectId>","Project ID (defaults to the current project when available)").option("--email <email>","Email address of the user to invite").option("--role <role>","Role or access level to grant").option("-C, --cwd <dir>","Project directory used to resolve the current project").option("-y, --yes","Skip the confirmation prompt").option("--resend","Resend an existing pending organization invite").action(inviteCommand);program.command("clone").description("Clone an existing Fimo project locally").argument("[projectId]","Project ID to clone").argument("[dir]","Target directory (defaults to the project name)").option("--branch <name>","Branch to clone (defaults to main)").action(cloneCommand);program.command("link").description("Link the current application to a Fimo project, in place (repairs an existing link)").argument("[projectId]","Project ID to link (defaults to the linked project, else prompts)").option("--branch <name>","Branch to link (defaults to the current git branch, else main)").option("--relink","Replace an existing link to a different project").option("-C, --cwd <dir>","Application directory").action(linkCommand);program.command("init").description("Set up a Fimo project locally: sign in, create or link a project, install deps and skills").argument("[dir]","Target directory").option("--project-id <id>","Link an existing project instead of creating a new one").option("--org <organizationId>","Target organization ID when creating (recommended for agents and CI)").option("--branch <name>","Branch to check out when linking an existing project (defaults to main)").option("--framework <framework>","Project scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to nextjs)").option("--template-root <path>","Override template directory when creating").option("--package-manager <pm>","Install dependencies with: npm | pnpm | yarn | bun").option("--install","Install dependencies after checkout").option("--no-install","Skip dependency installation after checkout").option("--skills","Install the global Fimo skill for your AI coding agents").option("--no-skills","Skip installing the global Fimo skill").option("--agents <list>",'Comma-separated list of AI agents to install the global Fimo skill for (e.g. claude-code,cursor). Pass "none" to skip.').option("-a, --agent <id>","Repeatable: pass once per agent (-a claude-code -a cursor)",(value,prev=[])=>[...prev,value]).option("-y, --yes","Run non-interactively using defaults (no prompts)").action(initCommand);var migrate=program.command("migrate").description("Set up a Fimo project as the target of an agent-driven migration").action(()=>{migrate.help()});migrate.command("init").description("Set up the migration target: link or create its Fimo project, scaffold it, and push the first commit").argument("[dir]","Target Fimo project directory (creates one if empty/missing)").option("-C, --cwd <dir>","Existing project directory when omitting [dir]").option("--project-id <projectId>","Link an owner-supplied existing project (delegates to `fimo init`)").option("--org <organizationId>","Target organization ID when creating a new project").option("--framework <framework>","Project scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to react-router)").option("--template-root <path>","Override template directory when creating a new project").option("--install","Install dependencies after scaffolding a new project").option("--no-install","Skip dependency installation after scaffolding a new project").option("--agents <list>","Comma-separated list of AI agents to set up when creating a new project (e.g. claude-code,cursor)").option("-a, --agent <id>","Repeatable: pass once per agent (-a claude-code -a cursor)",(value,prev=[])=>[...prev,value]).option("--mode <mode>","Project skill install method for newly created projects: symlink | copy").option("--source-platform <platform>","Where the site comes from: webflow | framer | squarespace | wix | carrd | wordpress | nextjs | astro | react-router | other").option("--json","Output the setup receipt as JSON").action((dir,_options,command)=>migrateInitCommand(dir,command.optsWithGlobals()));program.command("deploy").description("Push the current Branch to Fimo and deploy to Preview (use --publish from the Production source)").option("-C, --cwd <dir>","Run against this directory instead of cwd").option("--publish","Also publish the new version after deploying to preview").option("-m, --message <msg>","Commit message for any uncommitted changes").option("--no-restart","Don't restart the sandbox dev server after pull \u2014 rely on Vite HMR. Use when only HMR-safe files changed (components/pages/styles/content). See the `fimo` skill for when to use this.").option("--no-wait","Don't wait for the deployed preview to serve a page. Validation, push, and sandbox sync are still waited for; the result reports readiness as skipped. Not a substitute for --no-restart.").option("--force","Deploy even if validation fails (escape hatch; may still fail later in the sandbox)").action(deployCommand);addPaginationOptions(program.command("logs").description("Show the current Branch sandbox's dependency-install and dev-server output (newest first)"),{defaultLimit:200,maxLimit:1e3,legacyCursor:"before"}).option("-C, --cwd <dir>","Run against this directory instead of cwd").addHelpText("after",`
993
+ `)}__name(indentBlock,"indentBlock");init_sdk_transport();init_project_context();function computeVersionString(){let pkgVersion="0.0.0";try{let pkg=JSON.parse(fs49.readFileSync(path51.join(CLI_ROOT,"package.json"),"utf8"));typeof pkg.version=="string"&&pkg.version.length>0&&(pkgVersion=pkg.version)}catch{}let releaseId;try{let release=JSON.parse(fs49.readFileSync(path51.join(CLI_ROOT,"release.json"),"utf8"));typeof release.id=="string"&&release.id.length>0&&(releaseId=release.id)}catch{}let{apiUrl}=loadConfig(),detailParts=[];return releaseId&&detailParts.push(`release ${releaseId}`),detailParts.push(apiUrl),`fimo ${pkgVersion} (${detailParts.join(", ")})`}__name(computeVersionString,"computeVersionString");program.name("fimo").description("Fimo CLI").version(computeVersionString()).option("--branch <name>","Override the target Branch (analytics reads default to prod; other commands use the current Git branch or FIMO_ENV)").option("--json","Emit one structured JSON envelope per command (for tools / agents). FIMO_OUTPUT=json env also enables this.").option("--no-color","Disable colour in pretty mode (NO_COLOR env var also honoured)").option("--ascii","Use ASCII fallbacks for unicode glyphs (\u2713 \u2192 [ok], etc.) - for legacy terminals").hook("preAction",thisCommand=>{let opts=thisCommand.optsWithGlobals();initUi({json:opts.json===!0,noColor:opts.color===!1,ascii:opts.ascii===!0,jsonEnvVar:"FIMO_OUTPUT",asciiEnvVar:"FIMO_ASCII"})});program.command("login").description("Sign in through your browser").action(loginCommand);program.command("logout").description("Revoke the current session and clear local credentials").action(logoutCommand);program.command("whoami").description("Show the current signed-in user").action(whoamiCommand);registerProjectSecretsCommands(program);registerIntegrationsCommands(program);registerMcpCommands(program);registerChannelsCommands(program);registerSchedulesCommands(program);registerHistoryCommands(program);registerSupportCommands(program);registerWebhooksCommands(program);registerLocalesCommands(program);registerEnvironmentsCommands(program);program.command("invite").description("Invite a user to an organization or project").option("--target <target>","Invite target: organization or project").option("--org <organizationId>","Organization ID (defaults to active when needed)").option("--project <projectId>","Project ID (defaults to the current project when available)").option("--email <email>","Email address of the user to invite").option("--role <role>","Role or access level to grant").option("-C, --cwd <dir>","Project directory used to resolve the current project").option("-y, --yes","Skip the confirmation prompt").option("--resend","Resend an existing pending organization invite").action(inviteCommand);program.command("clone").description("Clone an existing Fimo project locally").argument("[projectId]","Project ID to clone").argument("[dir]","Target directory (defaults to the project name)").option("--branch <name>","Branch to clone (defaults to main)").action(cloneCommand);program.command("link").description("Link the current application to a Fimo project, in place (repairs an existing link)").argument("[projectId]","Project ID to link (defaults to the linked project, else prompts)").option("--branch <name>","Branch to link (defaults to the current git branch, else main)").option("--relink","Replace an existing link to a different project").option("-C, --cwd <dir>","Application directory").action(linkCommand);program.command("init").description("Set up a Fimo project locally: sign in, create or link a project, install deps and skills").argument("[dir]","Target directory").option("--project-id <id>","Link an existing project instead of creating a new one").option("--org <organizationId>","Target organization ID when creating (recommended for agents and CI)").option("--branch <name>","Branch to check out when linking an existing project (defaults to main)").option("--framework <framework>","Project scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to nextjs)").option("--template-root <path>","Override template directory when creating").option("--package-manager <pm>","Install dependencies with: npm | pnpm | yarn | bun").option("--install","Install dependencies after checkout").option("--no-install","Skip dependency installation after checkout").option("--skills","Install the global Fimo skill for your AI coding agents").option("--no-skills","Skip installing the global Fimo skill").option("--agents <list>",'Comma-separated list of AI agents to install the global Fimo skill for (e.g. claude-code,cursor). Pass "none" to skip.').option("-a, --agent <id>","Repeatable: pass once per agent (-a claude-code -a cursor)",(value,prev=[])=>[...prev,value]).option("-y, --yes","Run non-interactively using defaults (no prompts)").action(initCommand);var migrate=program.command("migrate").description("Set up a Fimo project as the target of an agent-driven migration").action(()=>{migrate.help()});migrate.command("init").description("Set up the migration target: link or create its Fimo project, scaffold it, and push the first commit").argument("[dir]","Target Fimo project directory (creates one if empty/missing)").option("-C, --cwd <dir>","Existing project directory when omitting [dir]").option("--project-id <projectId>","Link an owner-supplied existing project (delegates to `fimo init`)").option("--org <organizationId>","Target organization ID when creating a new project").option("--framework <framework>","Project scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to react-router)").option("--template-root <path>","Override template directory when creating a new project").option("--install","Install dependencies after scaffolding a new project").option("--no-install","Skip dependency installation after scaffolding a new project").option("--agents <list>","Comma-separated list of AI agents to set up when creating a new project (e.g. claude-code,cursor)").option("-a, --agent <id>","Repeatable: pass once per agent (-a claude-code -a cursor)",(value,prev=[])=>[...prev,value]).option("--mode <mode>","Project skill install method for newly created projects: symlink | copy").option("--source-platform <platform>","Where the site comes from: webflow | framer | squarespace | wix | carrd | wordpress | nextjs | astro | react-router | other").option("--json","Output the setup receipt as JSON").action((dir,_options,command)=>migrateInitCommand(dir,command.optsWithGlobals()));program.command("deploy").description("Push the current Branch to Fimo and deploy to Preview (use --publish from the Production source)").option("-C, --cwd <dir>","Run against this directory instead of cwd").option("--publish","Also publish the new version after deploying to preview").option("-m, --message <msg>","Commit message for any uncommitted changes").option("--no-restart","Don't restart the sandbox dev server after pull \u2014 rely on Vite HMR. Use when only HMR-safe files changed (components/pages/styles/content). See the `fimo` skill for when to use this.").option("--no-wait","Don't wait for the deployed preview to serve a page. Validation, push, and sandbox sync are still waited for; the result reports readiness as skipped. Not a substitute for --no-restart.").option("--force","Deploy even if validation fails (escape hatch; may still fail later in the sandbox)").action(deployCommand);addPaginationOptions(program.command("logs").description("Show the current Branch sandbox's dependency-install and dev-server output (newest first)"),{defaultLimit:200,maxLimit:1e3,legacyCursor:"before"}).option("-C, --cwd <dir>","Run against this directory instead of cwd").addHelpText("after",`
1009
994
  Logs come from the sandbox's own process buffers, so they end when the sandbox does.
1010
995
  There is no --follow; re-run the command instead.
1011
996
  `).action(logsCommand);program.command("validate").description("Run all checks and sync local state with the Fimo backend").option("-C, --cwd <dir>","Run against this directory instead of cwd").option("--json","Emit structured JSON output (for CI / agents)").action(validateCommand);program.command("update").description("Update this checkout's Fimo packages to an exact release and apply the bundled migrations").argument("<version>","Exact target version, for example 1.0.0").option("-C, --cwd <dir>","Run against this directory instead of cwd").option("--dry-run","Show the update plan without writing anything").option("--apply","Apply without prompting (required in --json / non-interactive shells)").option("--allow-dirty","Skip the clean-working-tree check").option("--no-install","Skip dependency installation after applying").option("--no-validate","Skip `fimo validate` after applying").action(updateCommand3);program.command("describe [path]").description("Print a structured snapshot of the current Fimo project (read-only)").option("-C, --cwd <dir>","Run against this directory instead of cwd").option("--depth <n>","Tree depth (default 3). Ignored when --full is set.").option("--full","Disable depth and width truncation (still respects the 10k-entry cap)").option("--json","Emit structured JSON output (for CI / agents)").action(describeCommand);program.command("credits").description("Show the current project credit balance").option("-C, --cwd <dir>","Project directory").option("--project <projectId>","Project ID (defaults to the current project)").option("--json","Emit structured JSON output").action(creditsCommand);program.command("delete").description("Delete the current linked project").option("-C, --cwd <dir>","Project directory").option("-y, --yes","Skip confirmation prompt").action(options=>projectsDeleteCommand(void 0,options));program.command("unpublish").description("Unpublish the current project").option("-C, --cwd <dir>","Project directory").action(options=>projectsUnpublishCommand(void 0,options));program.command("rename").description("Set the display name of the current project").argument("<name>",'New display name (e.g. "Acme Blog")').option("-C, --cwd <dir>","Project directory").action((name,options)=>projectsRenameCommand(name,void 0,options));var orgs=program.command("orgs").description("Manage organizations");orgs.command("list").description("List organizations you belong to").action(orgsListCommand);orgs.command("switch").description("Switch the active organization used by `fimo init`").option("--org <id-or-slug>","Switch to this organization without prompting").action(switchCommand);orgs.command("members").description("List members of an organization (defaults to the active org)").option("--org <organizationId>","Organization ID (defaults to active)").action(orgsMembersCommand);var referral=program.command("referral").description("Share and inspect your referral program tools");referral.command("link").description("Print your referral link").action(referralLinkCommand);referral.command("stats").description("Show your referral stats").action(referralStatsCommand);var projects=program.command("projects").description("Manage projects across an organization");projects.command("list").description("List projects in an organization (defaults to the active org)").option("--org <organizationId>","Organization ID (defaults to active)").action(projectsListCommand);projects.command("create").description("Scaffold a new project (alias of `fimo init`)").argument("[dir]","Target directory").option("--org <organizationId>","Target organization ID (auto if you belong to one)").option("--framework <framework>","Project scaffold: react-router | vite | astro | nextjs | sveltekit (defaults to nextjs)").option("--template-root <path>","Override template directory").option("--package-manager <pm>","Install dependencies with: npm | pnpm | yarn | bun").option("--install","Install dependencies after scaffolding").option("--no-install","Skip dependency installation after scaffolding").action(initCommand);projects.command("clone").description("Clone an existing Fimo project locally").argument("[projectId]","Project ID to clone").argument("[dir]","Target directory (defaults to the project name)").option("--branch <name>","Branch to clone (defaults to main)").action(cloneCommand);projects.command("delete").description("Delete a project (defaults to the current linked project)").argument("[projectId]","Explicit project ID").option("-C, --cwd <dir>","Project directory").option("-y, --yes","Skip confirmation prompt").action(projectsDeleteCommand);projects.command("publish").description("Publish a project (defaults to the current project)").argument("[projectId]","Explicit project ID").option("-C, --cwd <dir>","Project directory").action(projectsPublishCommand);projects.command("unpublish").description("Unpublish a project (defaults to the current project)").argument("[projectId]","Explicit project ID").option("-C, --cwd <dir>","Project directory").action(projectsUnpublishCommand);projects.command("rename").description("Set the display name of a project (defaults to the current project)").argument("<name>",'New display name (e.g. "Acme Blog")').argument("[projectId]","Explicit project ID").option("-C, --cwd <dir>","Project directory").action(projectsRenameCommand);projects.command("transfer").description("Move a project to another organization you administer (defaults to the current project)").argument("[projectId]","Explicit project ID").option("--to <organization>","Destination organization ID or slug").option("-C, --cwd <dir>","Project directory").option("-y, --yes","Skip confirmation prompt").action(projectsTransferCommand);var domains=program.command("domains").description("Manage your default URL and custom domains");domains.command("list").alias("ls").description("Show the default URL and any custom domains").option("--project <projectId>","Project ID (defaults to the current project)").option("-C, --cwd <dir>","Project directory").option("--json","Output as JSON").action(domainsListCommand);domains.command("rename-default").description("Rename your default URL (the <slug>.fimo.site subdomain Fimo provides)").argument("<slug>",'New slug (e.g. "acme-coffee")').option("--project <projectId>","Project ID (defaults to the current project)").option("-C, --cwd <dir>","Project directory").option("--json","Output as JSON").action(domainsRenameDefaultCommand);domains.command("suggest-default").description("Suggest available default URLs; pick one to claim (or list with --json)").option("--base <text>","Override the base text used to generate suggestions (defaults to your project display name)").option("--max <n>","Number of suggestions to fetch (1\u201310, default 5)").option("--pick <slug-or-index>","Non-interactive: claim this suggestion by slug or numeric index").option("--project <projectId>","Project ID (defaults to the current project)").option("-C, --cwd <dir>","Project directory").option("--json","Output as JSON (no prompt, no claim)").action(domainsSuggestDefaultCommand);domains.command("add").description("Attach a custom domain to your project (requires an eligible plan)").argument("<hostname>",'The hostname to attach (e.g. "blog.example.com")').option("--redirect-www","Also configure an apex \u2192 www redirect").option("--wait [duration]","Poll until DNS is verified (e.g. --wait, --wait 10m)").option("--project <projectId>","Project ID (defaults to the current project)").option("-C, --cwd <dir>","Project directory").option("--json","Output the resulting domain record as JSON after instructions").action(domainsAddCommand);domains.command("remove").alias("rm").description("Detach a custom domain by hostname or ID").argument("<hostname-or-id>","Hostname or domain ID").option("-y, --yes","Skip the confirmation prompt").option("--project <projectId>","Project ID (defaults to the current project)").option("-C, --cwd <dir>","Project directory").action(domainsRemoveCommand);domains.command("refresh").description("Re-check DNS and SSL status for a custom domain").argument("<hostname-or-id>","Hostname or domain ID").option("--wait [duration]","Poll until SSL is active (default; pass --no-wait to print one snapshot)").option("--no-wait","Print the refreshed status once and exit").option("--project <projectId>","Project ID (defaults to the current project)").option("-C, --cwd <dir>","Project directory").option("--json","Output the resulting domain record as JSON").action(domainsRefreshCommand);domains.command("search").description("Search for available domain names to buy through Fimo").argument("<keyword>",'Search keyword (e.g. "acme coffee")').option("--tld <list>",'Restrict TLDs (comma-separated, e.g. "com,io,dev")').option("--max-price <amount>","Filter results to this purchase price ceiling (in dollars)").option("--limit <n>","Truncate to the first N results (default 20)").option("--json","Output as JSON").action(domainsSearchCommand);domains.command("pricing").description("Show the price for a specific domain (purchase + renewal)").argument("<domain>",'Domain name (e.g. "example.com")').option("--years <n>","Multiply purchase price by this many years (default 1)").option("--json","Output as JSON").action(domainsPricingCommand);domains.command("buy").description("Buy a domain through Fimo. Creates a checkout invoice; no charge until you pay it in the browser.").argument("<domain>",'Domain name to register (e.g. "example.com")').option("--years <n>","Years to register for (default uses the TLD minimum)").option("--auto-renew","Enable auto-renewal (default)").option("--no-auto-renew","Disable auto-renewal \u2014 domain will not renew automatically").option("-y, --yes","Skip the interactive confirmation prompt").option("--open","Open the checkout URL in your browser after creating the invoice").option("--wait [duration]","Poll until payment completes and registration succeeds").option("--org <organizationId>","Organization ID (defaults to the current project's org)").option("-C, --cwd <dir>","Project directory used to resolve the org").option("--json","Output the resulting invoice record as JSON").action(domainsBuyCommand);domains.command("owned").description("List domains your organization has registered through Fimo").option("--org <organizationId>","Organization ID (defaults to the current project's org)").option("--status <list>",'Filter by status (comma-separated, e.g. "owned,pending_payment")').option("--limit <n>","Truncate to the first N results").option("-C, --cwd <dir>","Project directory used to resolve the org").option("--json","Output as JSON").action(domainsOwnedCommand);var scripts=program.command("scripts",{hidden:!0}).description("Internal/advanced primitives. Most users want `fimo validate`.");scripts.command("sync-schemas").description("Regenerate TypeScript clients for src/schemas/*.json").option("-C, --cwd <dir>","Project directory").action(syncSchemasCommand);scripts.command("sync-forms").description("Regenerate TypeScript clients for src/forms/*.json").option("-C, --cwd <dir>","Project directory").action(syncFormsCommand);scripts.command("validate-route-metadata").description("Cross-validate src/routes.ts against .fimo/config.json#routes (v4)").option("-C, --cwd <dir>","Project directory").action(validateRouteMetadataCommand);scripts.command("extract-translations").description("Legacy local helper: scan src/ for literal t() label keys").option("-C, --cwd <dir>","Project directory").action(extractTranslationsCommand);scripts.command("lint").description("Lint project files (translation keys + oxlint)").argument("[path]","Single file to lint (omit for whole project)").option("-C, --cwd <dir>","Project directory").action(lintCommand);program.command("export-static",{hidden:!0}).description("Post-build: remove dist/server and preserve dist/client assets (after react-router build)").option("-C, --cwd <dir>","Project directory").action(exportStaticCommand);program.command("resolve-routes",{hidden:!0}).description("Map changed files back to affected preview routes").argument("[files...]","Changed files to resolve").option("-C, --cwd <dir>","Project directory").action(resolveRoutesCommand);var branchCmd=program.command("branch").description("List, create, or delete Branches (a Branch = git branch + its own Neon DB + sandbox)").argument("[name]","Branch name (omit to list)").option("-v, --verbose","Include deleted Branches").option("--all","Also list Fimo's own agent Branches (task/*), normally hidden").option("-d, --delete","Delete the named Branch (drops sandbox + Neon branch + R2 prefix)").option("--from <branch>","Parent Branch to fork from when creating (defaults to current)").action(async(name,_options,command)=>{if(!name){await branchListCommand(command);return}if(command.opts().delete){await branchDeleteCommand(name,command);return}await branchCreateCommand(name,command)});program.command("checkout").description("Switch to a Branch (or create + switch with -b)").argument("<name>","Branch name").option("-b, --create","Create the Branch if it does not exist").option("--from <branch>","Parent Branch (only with -b)").action(checkoutCommand);program.command("switch").description("Alias for `fimo checkout` (switch Branches)").argument("<name>","Branch name").action(checkoutCommand);program.command("pull").description("Sync the current Branch's data plane from its parent").option("--from <branch>","Sync from an explicit ancestor (defaults to declared parent)").action(pullCommand);program.command("diff").description("Two-Branch diff across all surfaces").argument("[from]","From Branch (defaults to the current Branch)").argument("[to]","To Branch (defaults to main)").option("-C, --cwd <dir>","Project directory").option("--surface <name>","Limit to a single surface (code | schemas | content | ...)").option("--key <key>","Drill into one item within --surface (W2 \u2014 per-item before/after)").option("--all","Render the full item list, bypassing the per-surface cap").option("--json","Emit raw JSON instead of the rendered report").option("--no-color","Disable ANSI colour output").action(diffCommand);program.command("merge").description("Merge another Branch into the current one (multi-surface, atomic, with conflict resolver)").argument("<from>","Source Branch").option("-C, --cwd <dir>","Project directory").option("--allow-direct-merge","Override the main-branch protected-flow gate").option("-y, --yes","Accept parent-wins for every conflict (non-interactive)").option("--resume","Resume an in-flight merge from its persisted draft (W3.6)").option("--json","Emit raw JSON instead of the rendered report").option("--no-color","Disable ANSI colour output").action(mergeCommand);var publish=program.command("publish").description("Publish main using a stable Fimo publication ID").option("-C, --cwd <dir>","Project directory").option("--label <text>","Optional human-readable publication label").option("--notes <text>","Optional publication notes (markdown)").option("--skip-validate","Skip the lint + codegen + smoke pre-checks (operator override)").action(publishCommand);addPaginationOptions(publish.command("list").description("Publication attempts for the current project, newest first"),{defaultLimit:20,maxLimit:100,legacyCursor:"before"}).option("-C, --cwd <dir>","Project directory").action(publishListCommand);publish.command("inspect").description("One publication attempt in full, including why it failed").argument("<publicationId>","Fimo publication id").option("-C, --cwd <dir>","Project directory").action(publishInspectCommand);publish.command("logs").description("Read a publication's build log from its hosting provider").argument("<publicationId>","Fimo publication id").option("-C, --cwd <dir>","Project directory").option("--limit <n>","Events to return (1-1000, default 200)").action(publishLogsCommand);program.command("status").description("Multi-surface Branch status \u2014 the showcase command").option("-C, --cwd <dir>","Project directory").option("--short","One-line summary per surface (no bodies)").option("--json","Emit raw JSON instead of the rendered report").option("--vs <branch>","Comparison target (defaults to the parent Branch or main)").option("--no-color","Disable ANSI colour output").option("--code","Limit to the code surface").option("--content","Limit to the content surface").option("--i18n","Limit to the translations surface").option("--assets","Limit to the assets surface").option("--forms","Limit to the forms surface").option("--all","Render the full item list, bypassing the per-surface cap").action(statusCommand2);registerAgentsCommands(program);registerPreviewCommands(program);program.addCommand(new Command("git-credential").argument("<operation>","get | store | erase (git credential protocol)").description("Internal git credential helper (invoked by git)").action(gitCredentialCommand),{hidden:!0});registerGenerate(program);registerMediaTaskCommands(program);var schemas2=program.command("schemas").description("Manage content-type schemas");schemas2.command("list").description("List all registered schemas").option("-C, --cwd <dir>","Project directory").action(schemaListCommand);schemas2.command("get").description("Get a schema by type name").argument("<typeName>","Content type name (e.g. BlogPost)").option("-C, --cwd <dir>","Project directory").action(schemaGetCommand);schemas2.command("push").description("Push schema JSON files to the API (create or update)").argument("[typeName]","Schema name to push (omit to push all)").option("-C, --cwd <dir>","Project directory").option("--rename <from=to>","Preserve a renamed field (repeatable, supports nested paths)",(value,previous)=>[...previous,value],[]).action(schemaPushCommand);schemas2.command("delete").description("Delete a schema by type name").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Project directory").action(schemaDeleteCommand);var entries=program.command("entries").description("Manage content entries");addPaginationOptions(entries.command("list").description("List entries of a content type"),{defaultLimit:20,maxLimit:100,legacyCursor:"offset"}).argument("<typeName>","Content type name").option("-C, --cwd <dir>","Project directory").option("--search <query>","Search query").option("--where <json>",`JSON filter object, e.g. '{"featured":true}'`).option("--sort <field>","Sort field, prefix with - for descending").option("--fields <fields>","Comma-separated fields to return, e.g. slug,title,excerpt").option("--populate <fields>","Comma-separated reference, media, or blocks fields to populate, e.g. author,cover").option("--locale <locale>","Locale to list (default en)").option("--sort-by <field>","Sort field").option("--sort-direction <dir>","Sort direction (asc|desc)").action(entriesListCommand);entries.command("get").description("Get a single entry").argument("<typeName>","Content type name").argument("<id>","Entry ID").option("-C, --cwd <dir>","Project directory").option("--locale <locale>","Entry locale (defaults to the project locale)").option("--populate <fields>","Comma-separated reference, media, or blocks fields to populate, e.g. author,cover").action(entriesGetCommand);entries.command("create").description("Create a new entry").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Project directory").requiredOption("--body <json>","Entry JSON body (slug + data)").option("--locale <locale>","Entry locale (default en)").option("--document-id <id>","Document ID shared by localized variants").action(entriesCreateCommand);entries.command("update").description("Update an existing entry").argument("<typeName>","Content type name").argument("<id>","Entry ID").option("-C, --cwd <dir>","Project directory").requiredOption("--body <json>","Updated entry JSON body").option("--locale <locale>","Entry locale (defaults to the project locale)").action(entriesUpdateCommand);entries.command("delete").description("Delete an entry").argument("<typeName>","Content type name").argument("<id>","Entry ID").option("-C, --cwd <dir>","Project directory").option("--locale <locale>","Entry locale (defaults to the project locale)").action(entriesDeleteCommand);entries.command("query").description("Run a read-only SQL query over the entries table").option("-C, --cwd <dir>","Project directory").option("--sql <query>","SQL SELECT query").option("--file <path>","Read the SQL query from a file").option("--stdin","Read the SQL query from stdin").action(entriesQueryCommand);entries.command("bulk-create").description("Create multiple entries").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Project directory").option("--body <json>","JSON array of entry bodies").option("--file <path>","Read entry bodies from a JSON file").option("--stdin","Read entry bodies from stdin").option("--upsert-by <field>","Update or create by a stable data field (migration imports prefer slug)").option("--chunk-size <count>","Entries per request (default 100, maximum 1000)").action(entriesBulkCreateCommand);entries.command("bulk-update").description("Update multiple entries").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Project directory").option("--ids <ids>","Comma-separated IDs").option("--where <json>",`JSON filter object, e.g. '{"status":"draft"}'`).option("--body <json>","Updated entry JSON body").option("--file <path>","Read per-entry updates from a JSON file").option("--stdin","Read per-entry updates from stdin").action(entriesBulkUpdateCommand);entries.command("bulk-delete").description("Delete multiple entries").argument("<typeName>","Content type name").option("-C, --cwd <dir>","Project directory").option("--ids <ids>","Comma-separated IDs").option("--where <json>",`JSON filter object, e.g. '{"archived":true}'`).option("--locale <locale>","Entry locale (defaults to the project locale)").action(entriesBulkDeleteCommand);var singles=program.command("singles").description("Manage single content types");singles.command("get").description("Get a Single").argument("<typeName>","Single type name").option("-C, --cwd <dir>","Project directory").option("--locale <locale>","Single locale (defaults to the project locale)").option("--populate <fields>","Comma-separated reference, media, or blocks fields to populate").action(singlesGetCommand);singles.command("update").description("Update a Single").argument("<typeName>","Single type name").option("-C, --cwd <dir>","Project directory").option("--body <json>","Updated Single JSON body").option("--file <path>","Read the updated Single JSON body from a file").option("--stdin","Read the updated Single JSON body from stdin").option("--locale <locale>","Single locale (defaults to the project locale)").action(singlesUpdateCommand);var assets2=program.command("assets").description("Manage media assets");addPaginationOptions(assets2.command("list").description("List assets"),{defaultLimit:20,maxLimit:100,legacyCursor:"offset"}).option("-C, --cwd <dir>","Project directory").option("--parent-id <id>","Filter by parent folder").option("--search <query>","Search across name, alt text, caption, and AI-generated alt / caption (case-insensitive)").option("--type <type>","Filter by entry type (file|folder)").option("--image","Filter to image MIME types (shortcut for --mime-prefix image/)").option("--video","Filter to video MIME types (shortcut for --mime-prefix video/)").option("--audio","Filter to audio MIME types (shortcut for --mime-prefix audio/)").option("--mime-prefix <prefix>",'Filter by MIME type prefix (e.g. "image/png")').option("--sort-by <field>","Sort field").action(assetsListCommand);assets2.command("read").description("Read canonical asset text or ask one targeted question").argument("<id>","Asset ID").option("-C, --cwd <dir>","Project directory").option("--cursor <next-cursor>","Continue an exact read from a previous nextCursor").option("--query <question>","Ask one targeted model-backed question").action(assetsReadCommand);assets2.command("upload").description("Upload a file to the media library").argument("<file>","Path to the file to upload").option("-C, --cwd <dir>","Project directory").option("--name <name>","Asset display name").option("--parent-id <id>","Target folder ID").option("--folder-path <path>","Target folder path, creating missing folders").action(assetsUploadCommand);assets2.command("bulk-upload").description("Upload files from a structured JSON manifest").requiredOption("--file <path>","JSON manifest path").option("-C, --cwd <dir>","Project directory").option("--concurrency <n>","Maximum parallel uploads","4").action(assetsBulkUploadCommand);var modelsCmd=new Command("models").description("Browse available media generation models");program.addCommand(modelsCmd,{hidden:!0});modelsCmd.command("list").description("List Fal models enabled for this project").option("-C, --cwd <dir>","Project directory").option("--modality <m>","Filter by modality (image | video | audio)").option("--search <query>","Search names and descriptions").option("--category <category>","Filter by Fal media category").option("--tag <t>","Filter by tag (repeatable; AND semantics \u2014 model must have every tag)",(value,previous)=>[...previous,value],[]).option("--extended","Per-model card: alias, provider, tags, price, best-for, flags").option("--json","Machine-readable JSON output").action(modelsListCommand);modelsCmd.command("show").description("Show a Fal model and its available flags").argument("<key>","Namespaced model id from `fimo models list`").option("-C, --cwd <dir>","Project directory").option("--json","Machine-readable JSON output (includes the per-model flag list)").action(modelsShowCommand);assets2.command("create-folder").description("Create a folder in the media library").argument("<name>","Folder name").option("-C, --cwd <dir>","Project directory").option("--parent-id <id>","Parent folder ID").action(assetsCreateFolderCommand);assets2.command("move").description("Move an asset to a different folder").argument("<id>","Asset ID").option("-C, --cwd <dir>","Project directory").requiredOption("--parent-id <id>",'Target folder ID (use "null" for root)').action(assetsMoveCommand);assets2.command("usage").description("Check Current, Main, and Live structured-reference impact").argument("<id>","Asset ID").option("-C, --cwd <dir>","Project directory").action(assetsUsageCommand);assets2.command("replace").description("Replace structured references in the Current Branch").argument("<id>","Source asset ID").requiredOption("--with <id>","Replacement asset ID").option("-C, --cwd <dir>","Project directory").action(assetsReplaceCommand);assets2.command("remove").alias("delete").description("Safely remove an asset from the current Branch").argument("<id>","Asset ID").option("-C, --cwd <dir>","Project directory").option("--replace-with <id>","Replace references before removal (Current Branch content and source; every Branch and Live with --permanent)").option("--without-checking","Skip reference guidance before environment removal").option("--permanent","Destroy the asset across the project").option("-y, --yes","Skip confirmation for permanent destruction").action(assetsRemoveCommand);assets2.command("open").description("Fetch asset metadata; optionally download locally or open in default viewer").argument("<id>","Asset ID").option("-C, --cwd <dir>","Project directory").option("--download","Download the asset bytes to a local file and print the path").option("--browser","Open the asset URL in the OS default viewer (open / xdg-open / start)").option("--path <path>","Override download destination (default: <tmpdir>/fimo-assets/<id>.<ext>). Implies --download.").action((id,options,cmd)=>(options.path&&!options.download&&(options.download=!0),assetsOpenCommand(id,options,cmd)));var forms2=program.command("forms").description("Manage forms");forms2.command("list").description("List all forms").option("-C, --cwd <dir>","Project directory").action(formsListCommand);forms2.command("get").description("Get a form by ID").argument("<id>","Form ID").option("-C, --cwd <dir>","Project directory").action(formsGetCommand);forms2.command("push").description("Push form JSON files to the API (create or update, patches id back)").argument("[formName]","Form name to push (omit to push all)").option("-C, --cwd <dir>","Project directory").action(formsPushCommand);forms2.command("delete").description("Delete a form").argument("<id>","Form ID").option("-C, --cwd <dir>","Project directory").action(formsDeleteCommand);var supportedAgentsHelp=`