@agiflowai/cli 0.0.3 → 0.0.4

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.cjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const e=require(`./container-w-iFgBFu.cjs`);require(`reflect-metadata/lite`);let t=require(`commander`),n=require(`dotenv`);n=e.r(n,1);var r=process.stdout.write.bind(process.stdout);process.stdout.write=()=>!0;try{n.default.config({debug:!1})}finally{process.stdout.write=r}async function i(){let n=new t.Command,r=new Set([`automation`,`project`,`task`,`work-unit`,`member`,`task-comment`]),i=process.argv.slice(2).some(e=>r.has(e)),a=process.stderr.write.bind(process.stderr);n.name(`agiflow-cli`).description(`Command-line interface for Agiflow workflow and artifact management`).option(`-v, --verbose`,`enable verbose logging`).option(`--debug`,`enable debug mode`),n.exitOverride(),n.configureOutput({writeErr:e=>{i||a(e)}});let o=e.t.get(e.n.AuthCommand),s=e.t.get(e.n.WorkflowCommand),c=e.t.get(e.n.ArtifactCommand),l=e.t.get(e.n.AutomationCommand),u=e.t.get(e.n.ProjectCommand),d=e.t.get(e.n.TaskCommand),f=e.t.get(e.n.WorkUnitCommand),p=e.t.get(e.n.MemberCommand),m=e.t.get(e.n.TaskCommentCommand);o.register(n),s.register(n),c.register(n),l.register(n),u.register(n),d.register(n),f.register(n),p.register(n),m.register(n);try{await n.parseAsync(process.argv)}catch(e){if(e instanceof t.CommanderError&&e.code===`commander.helpDisplayed`&&process.exit(e.exitCode),i){let t=e instanceof Error?e.message:String(e);console.log(JSON.stringify({error:t},null,2)),process.exit(1)}console.error(`[cli] error`,e.message),n.opts().debug&&e instanceof Error&&console.error(e.stack),process.exit(1)}}i();
2
+ const e=require("./container-CdrWCxTR.cjs");require("reflect-metadata/lite");let t=require("commander"),n=require("dotenv");n=e.r(n,1);var r=process.stdout.write.bind(process.stdout);process.stdout.write=()=>!0;try{n.default.config({debug:!1})}finally{process.stdout.write=r}async function i(){let n=new t.Command,r=new Set([`automation`,`project`,`task`,`work-unit`,`member`,`task-comment`]),i=process.argv.slice(2).some(e=>r.has(e)),a=process.stderr.write.bind(process.stderr);n.name(`agiflow-cli`).description(`Command-line interface for Agiflow workflow and artifact management`).option(`-v, --verbose`,`enable verbose logging`).option(`--debug`,`enable debug mode`),n.exitOverride(),n.configureOutput({writeErr:e=>{i||a(e)}});let o=e.t.get(e.n.AuthCommand),s=e.t.get(e.n.WorkflowCommand),c=e.t.get(e.n.ArtifactCommand),l=e.t.get(e.n.AutomationCommand),u=e.t.get(e.n.ProjectCommand),d=e.t.get(e.n.TaskCommand),f=e.t.get(e.n.WorkUnitCommand),p=e.t.get(e.n.MemberCommand),m=e.t.get(e.n.TaskCommentCommand);o.register(n),s.register(n),c.register(n),l.register(n),u.register(n),d.register(n),f.register(n),p.register(n),m.register(n);try{await n.parseAsync(process.argv)}catch(e){if(e instanceof t.CommanderError&&e.code===`commander.helpDisplayed`&&process.exit(e.exitCode),i){let t=e instanceof Error?e.message:String(e);console.log(JSON.stringify({error:t},null,2)),process.exit(1)}console.error(`[cli] error`,e.message),n.opts().debug&&e instanceof Error&&console.error(e.stack),process.exit(1)}}i();
@@ -0,0 +1,7 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));require("reflect-metadata/lite");let c=require("commander"),l=require("inversify"),u=require("zod"),d=require("pino");d=s(d,1);let f=require("fs");f=s(f,1);let p=require("path");p=s(p,1);let m=require("os");m=s(m,1);let h=require("crypto"),g=require("child_process");var ee=u.z.string().url();u.z.object({VITE_INJECT_BACKEND_AGIFLOW_API_ENDPOINT:u.z.string().trim().optional()});function te(e=process.env,t={BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_AUTO_AGIFLOW_CLI_DOCKER_ENDPOINT:``,VITE_AUTO_AGIFLOW_CLI_ENDPOINT:``,VITE_AUTO_AGIFLOW_CLI_PROXY_ENDPOINT:``,VITE_INJECT_BACKEND_AGIFLOW_API_ENDPOINT:`https://api.agiflow.io`}){let n=[t.VITE_INJECT_BACKEND_AGIFLOW_API_ENDPOINT,e.VITE_INJECT_BACKEND_AGIFLOW_API_ENDPOINT,e.INJECT_BACKEND_AGIFLOW_API_ENDPOINT,e.BACKEND_AGIFLOW_API_ENDPOINT];for(let e of n){let t=ee.safeParse(typeof e==`string`?e.trim():e);if(t.success)return t.data}throw Error(`Missing Agiflow API endpoint. Set VITE_INJECT_BACKEND_AGIFLOW_API_ENDPOINT, INJECT_BACKEND_AGIFLOW_API_ENDPOINT, or BACKEND_AGIFLOW_API_ENDPOINT.`)}function _(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var ne=`serverUrl`,re=class{config=new Map;get(e){return this.config.get(e)}set(e,t){this.config.set(e,t)}has(e){return this.config.has(e)}getServerUrl(){let e=this.get(ne);if(e)return e;let t=te();return this.set(ne,t),t}};re=_([(0,l.injectable)()],re);function v(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}var ie=class{logger;constructor(){this.logger=(0,d.default)({level:process.env.LOG_LEVEL||`info`,transport:{target:`pino-pretty`,options:{colorize:!0,translateTime:`SYS:standard`,ignore:`pid,hostname`}}})}debug(e,t){this.logger.debug(t,e)}info(e,t){this.logger.info(t,e)}warn(e,t){this.logger.warn(t,e)}error(e,t){this.logger.error(t,e)}};ie=_([(0,l.injectable)(),v(`design:paramtypes`,[])],ie);var ae=class{filePath;constructor(){this.filePath=p.default.join(m.default.homedir(),`.agiflow`,`credentials.json`)}async load(e={}){let t=this.readStoredFile();if(!t)return null;if(e.scope===`global`)return t.global??null;let n=this.getRepositoryScopeKey();return t.repositories?.[n]??t.global??null}async setApiKey(e,t={}){let n=this.readStoredFile()??{version:2},r=await this.load(t),i=r?.organizationId===e.organizationId,a={apiKey:e.apiKey,organizationId:e.organizationId,keyId:e.keyId,deviceId:e.deviceId??(i?r?.deviceId:void 0),deviceGuid:e.deviceGuid??r?.deviceGuid,expiresAt:e.expiresAt};this.setCredentials(n,t,a),this.writeStoredFile(n)}async getApiKey(e={}){return process.env.AGIFLOW_API_KEY||((await this.load(e))?.apiKey??null)}async getOrganizationId(e={}){return process.env.AGIFLOW_ORGANIZATION_ID||((await this.load(e))?.organizationId??null)}async getProjectId(){return process.env.AGIFLOW_PROJECT_ID??null}async getTaskId(){return process.env.AGIFLOW_TASK_ID??null}async getWorkUnitId(){return process.env.AGIFLOW_WORK_UNIT_ID??null}async getDeviceId(e={}){return process.env.AGIFLOW_DEVICE_ID||((await this.load(e))?.deviceId??null)}async getDeviceGuid(e={}){return process.env.AGIFLOW_DEVICE_GUID||((await this.load(e))?.deviceGuid??null)}async setDeviceIdentity(e,t,n={}){let r=await this.load(n);if(!r)throw Error(`No credentials found. Run authentication first.`);let i=this.readStoredFile()??{version:2};this.setCredentials(i,n,{...r,deviceId:e,deviceGuid:t}),this.writeStoredFile(i)}async clear(e={}){try{let t=this.readStoredFile();if(!t)return;this.deleteCredentials(t,e),this.writeStoredFile(t)}catch{process.stderr.write(`[CredentialsService] failed to remove stored credentials
2
+ `)}}async buildAuthHeaders(e={}){let t=await this.getApiKey(e);if(!t)throw Error(`No API key found. Set AGIFLOW_API_KEY or run authentication.`);return{"x-api-key":t}}readStoredFile(){try{if(!f.default.existsSync(this.filePath))return null;let e=JSON.parse(f.default.readFileSync(this.filePath,`utf-8`));if(this.isStoredCredentialsFile(e))return e;if(this.isStoredCredentials(e))return{version:2,global:e}}catch{process.stderr.write(`[CredentialsService] credentials file is malformed, continuing without stored credentials
3
+ `)}return null}writeStoredFile(e){let t=this.compactStoredFile(e);if(!t.global&&!t.repositories){f.default.existsSync(this.filePath)&&f.default.unlinkSync(this.filePath);return}f.default.mkdirSync(p.default.dirname(this.filePath),{recursive:!0}),f.default.writeFileSync(this.filePath,`${JSON.stringify(t,null,2)}\n`,{mode:384})}setCredentials(e,t,n){if(t.scope===`global`){e.global=n;return}let r=this.getRepositoryScopeKey();e.repositories={...e.repositories,[r]:n}}deleteCredentials(e,t){if(t.scope===`global`){delete e.global;return}let n=this.getRepositoryScopeKey();e.repositories&&delete e.repositories[n]}compactStoredFile(e){let t=e.repositories?Object.fromEntries(Object.entries(e.repositories).filter(([,e])=>e)):void 0;return{version:2,...e.global?{global:e.global}:{},...t&&Object.keys(t).length>0?{repositories:t}:{}}}getRepositoryScopeKey(){return this.normalizePath(this.findGitRoot(process.cwd())??process.cwd())}findGitRoot(e){let t=p.default.resolve(e);for(;;){if(f.default.existsSync(p.default.join(t,`.git`)))return t;let e=p.default.dirname(t);if(e===t)return null;t=e}}normalizePath(e){let t=p.default.resolve(e),n=f.default.existsSync(t)?f.default.realpathSync.native(t):t,r=p.default.normalize(n).replace(RegExp(`${this.escapeRegExp(p.default.sep)}+$`),``);return process.platform===`win32`?r.toLowerCase():r}escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}isStoredCredentialsFile(e){if(!this.isRecord(e)||e.version!==2)return!1;let t=e.global,n=e.repositories;return(t===void 0||this.isStoredCredentials(t))&&(n===void 0||this.isRecord(n)&&Object.values(n).every(e=>this.isStoredCredentials(e)))}isStoredCredentials(e){return this.isRecord(e)&&typeof e.apiKey==`string`&&typeof e.organizationId==`string`&&(e.keyId===void 0||typeof e.keyId==`string`)&&(e.deviceId===void 0||typeof e.deviceId==`string`)&&(e.deviceGuid===void 0||typeof e.deviceGuid==`string`)&&(e.expiresAt===void 0||typeof e.expiresAt==`number`)}isRecord(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}};ae=_([(0,l.injectable)(),v(`design:paramtypes`,[])],ae);var y={Logger:Symbol.for(`Logger`),ConfigManager:Symbol.for(`ConfigManager`),CredentialsService:Symbol.for(`CredentialsService`),DeviceCodeAuthService:Symbol.for(`DeviceCodeAuthService`)};function b(e,t){return function(n,r){t(n,r,e)}}var oe=`agent-cli`,se=`0.0.1`,ce=`openid profile email`,le=`urn:ietf:params:oauth:grant-type:device_code`,ue=class{configManager;constructor(e){this.configManager=e}async requestDeviceCode(e=ce){return await this.postJson(`/api/v1/auth/device/code`,void 0,{client_id:oe,scope:e})}async pollForToken(e,t,n){let r=t;for(;;){if(n?.signal?.aborted)throw Error(`Polling aborted`);await this.sleep(r*1e3);let t=await fetch(this.url(`/api/v1/auth/device/token`),{method:`POST`,headers:this.headers(),body:JSON.stringify({grant_type:le,device_code:e,client_id:oe})});if(t.ok)return await t.json();let i=await this.parseError(t);switch(i.error){case`authorization_pending`:n?.onPending?.();break;case`slow_down`:r+=5,n?.onSlowDown?.();break;case`access_denied`:throw Error(`Authorization denied by user`);case`expired_token`:throw Error(`Device code expired. Please start the authorization process again.`);default:throw Error(i.error_description||i.message||`Token request failed: ${t.status}`)}}}async listOrganizationsWithAccessToken(e){return(await this.getJson(`/api/v1/cli/organizations`,{Authorization:`Bearer ${e}`})).organizations??[]}async listOrganizationsWithApiKey(e){return(await this.getJson(`/api/v1/cli/organizations`,{"x-api-key":e})).organizations??[]}async exchangeForAgentApiKey(e,t){let n=await this.postJson(`/api/v1/cli/exchange-for-agent`,{Authorization:`Bearer ${e}`},{organizationId:t});return{apiKey:n.api_key,keyId:n.key_id,organizationId:n.organization_id,organizationName:n.organization_name,agentUserId:n.agent_user_id,expiresAt:n.expires_at}}async getJson(e,t){let n=await fetch(this.url(e),{method:`GET`,headers:this.headers(t)});return this.parseResponse(n)}async postJson(e,t,n){let r=await fetch(this.url(e),{method:`POST`,headers:this.headers(t),body:JSON.stringify(n)});return this.parseResponse(r)}async parseResponse(e){let t=await e.json().catch(()=>({}));if(!e.ok){let n=t;throw Error(n.error_description||n.message||n.error||e.statusText)}return t}async parseError(e){return await e.json().catch(()=>({}))}headers(e){return{"Content-Type":`application/json`,Accept:`application/json`,"x-client-type":oe,"x-client-version":se,...e}}url(e){return`${this.configManager.getServerUrl().replace(/\/$/,``)}${e}`}sleep(e){return new Promise(t=>setTimeout(t,e))}};ue=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),v(`design:paramtypes`,[Object])],ue);var x=new l.Container;x.bind(y.Logger).to(ie).inSingletonScope(),x.bind(y.ConfigManager).to(re).inSingletonScope(),x.bind(y.CredentialsService).to(ae).inSingletonScope(),x.bind(y.DeviceCodeAuthService).to(ue).inSingletonScope();var de=10,fe=(e=0)=>t=>`\u001B[${t+e}m`,pe=(e=0)=>t=>`\u001B[${38+e};5;${t}m`,me=(e=0)=>(t,n,r)=>`\u001B[${38+e};2;${t};${n};${r}m`,S={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(S.modifier);var he=Object.keys(S.color),ge=Object.keys(S.bgColor);[...he,...ge];function _e(){let e=new Map;for(let[t,n]of Object.entries(S)){for(let[t,r]of Object.entries(n))S[t]={open:`\u001B[${r[0]}m`,close:`\u001B[${r[1]}m`},n[t]=S[t],e.set(r[0],r[1]);Object.defineProperty(S,t,{value:n,enumerable:!1})}return Object.defineProperty(S,"codes",{value:e,enumerable:!1}),S.color.close=`\x1B[39m`,S.bgColor.close=`\x1B[49m`,S.color.ansi=fe(),S.color.ansi256=pe(),S.color.ansi16m=me(),S.bgColor.ansi=fe(de),S.bgColor.ansi256=pe(de),S.bgColor.ansi16m=me(de),Object.defineProperties(S,{rgbToAnsi256:{value(e,t,n){return e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(e){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>S.rgbToAnsi256(...S.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,t,n)=>S.ansi256ToAnsi(S.rgbToAnsi256(e,t,n)),enumerable:!1},hexToAnsi:{value:e=>S.ansi256ToAnsi(S.hexToAnsi256(e)),enumerable:!1}}),S}var C=_e(),w=(()=>{if(!(`navigator`in globalThis))return 0;if(globalThis.navigator.userAgentData){let e=navigator.userAgentData.brands.find(({brand:e})=>e===`Chromium`);if(e&&e.version>93)return 3}return+!!/\b(Chrome|Chromium)\//.test(globalThis.navigator.userAgent)})(),ve=w!==0&&{level:w,hasBasic:!0,has256:w>=2,has16m:w>=3},ye={stdout:ve,stderr:ve};function be(e,t,n){let r=e.indexOf(t);if(r===-1)return e;let i=t.length,a=0,o=``;do o+=e.slice(a,r)+t+n,a=r+i,r=e.indexOf(t,a);while(r!==-1);return o+=e.slice(a),o}function xe(e,t,n,r){let i=0,a=``;do{let o=e[r-1]===`\r`;a+=e.slice(i,o?r-1:r)+t+(o?`\r
4
+ `:`
5
+ `)+n,i=r+1,r=e.indexOf(`
6
+ `,i)}while(r!==-1);return a+=e.slice(i),a}var{stdout:Se,stderr:Ce}=ye,we=Symbol(`GENERATOR`),T=Symbol(`STYLER`),E=Symbol(`IS_EMPTY`),Te=[`ansi`,`ansi`,`ansi256`,`ansi16m`],D=Object.create(null),Ee=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let n=Se?Se.level:0;e.level=t.level===void 0?n:t.level},De=e=>{let t=(...e)=>e.join(` `);return Ee(t,e),Object.setPrototypeOf(t,O.prototype),t};function O(e){return De(e)}Object.setPrototypeOf(O.prototype,Function.prototype);for(let[e,t]of Object.entries(C))D[e]={get(){let n=k(this,Ae(t.open,t.close,this[T]),this[E]);return Object.defineProperty(this,e,{value:n}),n}};D.visible={get(){let e=k(this,this[T],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var Oe=(e,t,n,...r)=>e===`rgb`?t===`ansi16m`?C[n].ansi16m(...r):t===`ansi256`?C[n].ansi256(C.rgbToAnsi256(...r)):C[n].ansi(C.rgbToAnsi(...r)):e===`hex`?Oe(`rgb`,t,n,...C.hexToRgb(...r)):C[n][e](...r);for(let e of[`rgb`,`hex`,`ansi256`]){D[e]={get(){let{level:t}=this;return function(...n){let r=Ae(Oe(e,Te[t],`color`,...n),C.color.close,this[T]);return k(this,r,this[E])}}};let t=`bg`+e[0].toUpperCase()+e.slice(1);D[t]={get(){let{level:t}=this;return function(...n){let r=Ae(Oe(e,Te[t],`bgColor`,...n),C.bgColor.close,this[T]);return k(this,r,this[E])}}}}var ke=Object.defineProperties(()=>{},{...D,level:{enumerable:!0,get(){return this[we].level},set(e){this[we].level=e}}}),Ae=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},k=(e,t,n)=>{let r=(...e)=>je(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,ke),r[we]=e,r[T]=t,r[E]=n,r},je=(e,t)=>{if(e.level<=0||!t)return e[E]?``:t;let n=e[T];if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.includes(`\x1B`))for(;n!==void 0;)t=be(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
7
+ `);return a!==-1&&(t=xe(t,i,r,a)),r+t+i};Object.defineProperties(O.prototype,D);var A=O();O({level:Ce?Ce.level:0});var Me=`0.0.1`,Ne=class{credentialsService;authService;configManager;constructor(e,t,n){this.credentialsService=e,this.authService=t,this.configManager=n}register(e){e.command(`login`).description(`Authenticate agiflow-cli`).option(`--api-key <apiKey>`,`Use an existing Agiflow API key`).option(`--org <organizationId>`,`Organization ID to store with credentials`).option(`--global`,`Store credentials globally instead of scoping them to the current repository`).option(`--format <format>`,`Output format (text|json)`,`text`).action(async e=>{await this.run(e.format,async()=>{let t=e.apiKey?await this.loginWithApiKey(e):await this.loginWithDeviceCode(e);this.printLoginResult(t,e.format)})}),e.command(`logout`).description(`Remove stored agiflow-cli credentials`).option(`--global`,`Remove global credentials instead of credentials scoped to the current repository`).option(`--format <format>`,`Output format (text|json)`,`text`).action(async e=>{await this.run(e.format,async()=>{if(await this.credentialsService.clear(this.getCredentialsScope(e)),e.format===`json`){this.printJson({loggedOut:!0});return}console.log(A.green(`Logged out`))})})}async loginWithApiKey(e){if(!e.apiKey)throw Error(`API key is required.`);let t=await this.authService.listOrganizationsWithApiKey(e.apiKey),n=await this.resolveOrganization(t,e.org,e.format);return await this.credentialsService.setApiKey({apiKey:e.apiKey,organizationId:n.id},this.getCredentialsScope(e)),await this.ensureDeviceIdentity(e.apiKey,n.id,this.getCredentialsScope(e)),{authenticated:!0,source:`api-key`,organizationId:n.id,organizationName:n.name}}async loginWithDeviceCode(e){let t=await this.authService.requestDeviceCode(),n=t.verification_uri_complete||`${t.verification_uri}?user_code=${t.user_code}`;this.printProgress(e.format,`Open ${n}`),this.printProgress(e.format,`Enter code ${t.user_code}`);let r=await this.authService.pollForToken(t.device_code,t.interval??5),i=await this.authService.listOrganizationsWithAccessToken(r.access_token),a=await this.resolveOrganization(i,e.org,e.format),o=await this.authService.exchangeForAgentApiKey(r.access_token,a.id);return await this.credentialsService.setApiKey({apiKey:o.apiKey,keyId:o.keyId,organizationId:o.organizationId,expiresAt:o.expiresAt},this.getCredentialsScope(e)),await this.ensureDeviceIdentity(o.apiKey,o.organizationId,this.getCredentialsScope(e)),{authenticated:!0,source:`device-code`,organizationId:o.organizationId,organizationName:o.organizationName,expiresAt:o.expiresAt}}async resolveOrganization(e,t,n){if(e.length===0)throw Error(`No organizations are available for these credentials.`);if(t){let n=e.find(e=>e.id===t);if(!n)throw Error(`Organization ${t} is not available for these credentials.`);return n}if(e.length===1)return e[0];if(!process.stdin.isTTY||!process.stdout.isTTY)throw Error(`Multiple organizations are available. Pass --org <organizationId> in non-interactive mode.`);let{select:r}=await import(`@inquirer/prompts`),i=await r({message:`Select an organization`,choices:e.map(e=>({name:`${e.name}${e.slug?` (${e.slug})`:``}`,value:e.id}))});return this.printProgress(n,`Selected organization ${i}`),e.find(e=>e.id===i)??e[0]}async run(e,t){try{this.validateFormat(e),await t()}catch(t){let n=t instanceof Error?t.message:String(t);e===`json`?this.printJson({error:n}):console.error(A.red(`Error:`),n),process.exit(1)}}async ensureDeviceIdentity(e,t,n){let r=await this.credentialsService.getDeviceGuid(n)||`cli-${(0,h.randomUUID)()}`,i=this.configManager.getServerUrl().replace(/\/$/,``),a=await fetch(`${i}/api/v1/organizations/${t}/devices`,{method:`POST`,headers:{"x-api-key":e,"x-client-type":`agent-cli`,"x-client-version":Me,"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({name:m.default.hostname(),deviceGuid:r,type:`cli`,platform:process.platform,version:Me})}),o=await a.json().catch(()=>({}));if(!a.ok){let e=typeof o==`object`&&o&&`message`in o?String(o.message):a.statusText;throw Error(e)}if(!o||typeof o!=`object`||!(`id`in o)||typeof o.id!=`string`)throw Error(`Device registration response did not include a device ID.`);await this.credentialsService.setDeviceIdentity(o.id,r,n)}getCredentialsScope(e){return e.global?{scope:`global`}:{scope:`repository`}}validateFormat(e){if(e&&e!==`text`&&e!==`json`)throw Error(`Only text and json formats are supported.`)}printLoginResult(e,t){if(t===`json`){this.printJson(e);return}console.log(A.green(`Authenticated`)),console.log(`Organization: ${e.organizationName} (${e.organizationId})`)}printProgress(e,t){if(e===`json`){console.error(t);return}console.log(t)}printJson(e){console.log(JSON.stringify(e,null,2))}};Ne=_([(0,l.injectable)(),b(0,(0,l.inject)(y.CredentialsService)),b(1,(0,l.inject)(y.DeviceCodeAuthService)),b(2,(0,l.inject)(y.ConfigManager)),v(`design:paramtypes`,[Object,Object,Object])],Ne);var Pe=class e{static instance;authProviders=new Map;defaultNamespace=`default`;constructor(){}static getInstance(){return e.instance||=new e,e.instance}setAuthProvider(e,t=this.defaultNamespace){this.authProviders.set(t,e)}getAuthProvider(e=this.defaultNamespace){return this.authProviders.get(e)||null}removeAuthProvider(e=this.defaultNamespace){this.authProviders.delete(e)}async getSession(e=this.defaultNamespace){let t=this.authProviders.get(e);return t?t.getSession():null}async refreshSession(e=this.defaultNamespace){let t=this.authProviders.get(e);return t?t.refreshSession():null}hasAuthProvider(e=this.defaultNamespace){return this.authProviders.has(e)}getNamespaces(){return Array.from(this.authProviders.keys())}}.getInstance(),Fe=class e{static instance;configs=new Map;defaultNamespace=`default`;constructor(){}static getInstance(){return e.instance||=new e,e.instance}setConfig(e,t=this.defaultNamespace){this.configs.set(t,e)}getConfig(e=this.defaultNamespace){return this.configs.get(e)||null}updateConfig(e,t=this.defaultNamespace){let n=this.configs.get(t);n?this.configs.set(t,{...n,...e,headers:{...n.headers,...e.headers}}):this.configs.set(t,e)}removeConfig(e=this.defaultNamespace){this.configs.delete(e)}getBaseUrl(e=this.defaultNamespace){return this.configs.get(e)?.baseUrl||null}getHeaders(e=this.defaultNamespace){return this.configs.get(e)?.headers||null}getApiKey(e=this.defaultNamespace){return this.configs.get(e)?.apiKey||null}hasConfig(e=this.defaultNamespace){return this.configs.has(e)}getNamespaces(){return Array.from(this.configs.keys())}}.getInstance(),Ie=`default`,Le=1,Re=300,j=`Content-Type`,ze=`application/json`,Be=`X-API-KEY`,Ve=`Authorization`,He=`Bearer`,Ue=401,We=429,Ge=503,Ke=500,qe=400,Je=500,Ye=`text/`,Xe=.5,Ze=.5,Qe=class extends Error{status;statusText;data;constructor(e,t,n,r){super(e),this.status=t,this.statusText=n,this.data=r,this.name=`OpenapiRequestError`}},$e=class{baseUrl;apiKey;headers;authProvider;authNamespace;configNamespace;useGlobalAuthProvider;useGlobalConfig;retryConfig;requestInterceptor;constructor(e={}){this.authProvider=e.authProvider,this.authNamespace=e.authNamespace??Ie,this.configNamespace=e.configNamespace??Ie,this.useGlobalAuthProvider=e.useGlobalAuthProvider??!0,this.useGlobalConfig=e.useGlobalConfig??!0,this.retryConfig={maxRetries:e.retryConfig?.maxRetries??Le,baseDelay:e.retryConfig?.baseDelay??Re},this.requestInterceptor=e.requestInterceptor??null;let t=this.getEffectiveConfig(e);if(!t.baseUrl&&!this.useGlobalConfig)throw Error(`baseUrl is required for OpenapiClient (either in options or global config)`);this.baseUrl=t.baseUrl,this.apiKey=t.apiKey,this.headers=t.headers}getEffectiveConfig(e){let t=this.useGlobalConfig?Fe.getConfig(this.configNamespace):null;return{baseUrl:e.baseUrl||t?.baseUrl||``,headers:{...t?.headers,...e.headers},apiKey:e.apiKey??t?.apiKey}}getRuntimeConfig(){return this.getEffectiveConfig({baseUrl:this.baseUrl,headers:this.headers,apiKey:this.apiKey})}getEffectiveAuthProvider(){return this.authProvider?this.authProvider:this.useGlobalAuthProvider?Pe.getAuthProvider(this.authNamespace):null}async setAuthHeader(e){let t=this.getEffectiveAuthProvider();if(!t)return;let n=await t.getSession();n?.data?.session?.access_token&&(e[Ve]=`${He} ${n.data.session.access_token}`)}buildUrl(e,t,n,r){let i=t;if(n)for(let[e,t]of Object.entries(n))i=i.replace(`{${e}}`,encodeURIComponent(String(t)));if(r){let e=new URLSearchParams;for(let[t,n]of Object.entries(r))n!=null&&e.append(t,String(n));let t=e.toString();t&&(i+=(i.includes(`?`)?`&`:`?`)+t)}return new URL(i,e).toString()}createCustomFetch(){return async(e,t)=>{let n=t||{};n.headers||={},n.credentials=`include`,`Content-Type`in n.headers||(n.headers[j]=ze),n.headers[j]===void 0&&delete n.headers[j];let r=this.getRuntimeConfig();r.apiKey&&(n.headers[Be]=r.apiKey),t?.skipAuth||await this.setAuthHeader(n.headers);let i=await fetch(e,n),a=this.getEffectiveAuthProvider();if(i.status===Ue&&a&&!t?.skipAuth&&(await a.refreshSession())?.data?.session)if(await this.setAuthHeader(n.headers),t?.skipRetry)i=await fetch(e,n);else{let{maxRetries:t,baseDelay:r}=this.retryConfig,a=null;for(let o=0;o<t;o++)try{if(i=await fetch(e,n),i.status>=qe&&i.status<Je&&i.status!==We)return i;if(i.status===We||i.status===Ge||i.status>=Ke){a=Error(`HTTP status ${i.status}`);let e=r*2**o*(Xe+Math.random()*Ze);await new Promise(t=>setTimeout(t,e));continue}return i}catch(e){if(a=e instanceof Error?e:Error(String(e)),o<t-1){let e=r*2**o*(Xe+Math.random()*Ze);await new Promise(t=>setTimeout(t,e))}}throw a||Error(`Request failed after retries`)}return i}}createFormFetch(){return async(e,t)=>{let n=t||{};n.headers||={},n.credentials=`include`;let r=this.getRuntimeConfig();r.apiKey&&(n.headers[Be]=r.apiKey),t?.skipAuth||await this.setAuthHeader(n.headers);let i=await fetch(e,n),a=this.getEffectiveAuthProvider();return i.status===Ue&&a&&!t?.skipAuth&&(await a.refreshSession())?.data?.session&&(await this.setAuthHeader(n.headers),i=await fetch(e,n)),i}}async request(e,t){let{method:n,params:r,query:i,body:a,headers:o,skipAuth:s,skipRetry:c}=t;if(this.requestInterceptor){let n=await this.requestInterceptor(e,{path:e,...t});if(n)return n}let l=this.getRuntimeConfig();if(!l.baseUrl)throw Error(`baseUrl is required for OpenapiClient (either in options or global config)`);let u=this.buildUrl(l.baseUrl,e,r,i),d={...l.headers,...o},f={method:n,headers:d,skipAuth:s,skipRetry:c};a&&n!==`GET`&&n!==`HEAD`&&(a instanceof FormData||typeof a==`object`&&a&&typeof a.append==`function`&&typeof a.entries==`function`&&a.constructor?.name===`FormData`?(f.body=a,d[j]=void 0):(f.body=JSON.stringify(a),d[j]=ze));let p=await this.createCustomFetch()(u,f),m,h=p.headers.get(`content-type`);if(m=h?.includes(ze)?await p.json():h?.includes(Ye)?await p.text():await p.blob(),!p.ok)throw new Qe(`HTTP ${p.status}: ${p.statusText}`,p.status,p.statusText,m);return{data:m,status:p.status,statusText:p.statusText,headers:p.headers}}},et=`backend-agiflow-api`,tt=e=>{Fe.setConfig(e,et)},M=((e={})=>new $e({...e,authNamespace:et,configNamespace:et}))(),nt=`0.0.1`,N=class{configManager;credentialsService;constructor(e,t){this.configManager=e,this.credentialsService=t}addEnvIdOption(e,t,n,r){return e.addOption(this.buildEnvIdOption(t,n,r)),e}buildEnvIdOption(e,t,n){let r=new c.Option(e,t);return process.env[n]&&r.hideHelp(),r}async setupClient(){let e=this.configManager.getServerUrl(),t=await this.credentialsService.getApiKey();if(!t)throw Error(`No API key found. Set AGIFLOW_API_KEY or run authentication.`);tt({baseUrl:e,apiKey:t,headers:{"x-client-type":`agent-cli`,"x-client-version":nt}})}handleError(e,t){let n=t instanceof Error?t.message:String(t);console.error(A.red(`✗`),e,n),process.exit(1)}async runJsonOnly(e){try{await e()}catch(e){let t=e instanceof Error?e.message:String(e),n=e&&typeof e==`object`&&`data`in e?e.data:void 0;this.printJson(n===void 0?{error:t}:{error:t,details:n}),process.exit(1)}}requireJsonFormat(e,t=`this command`){if((e??`json`)!==`json`)throw Error(`Only --format json is supported for ${t}.`)}printJson(e){console.log(JSON.stringify(e,null,2))}async resolveOrganizationId(e){return this.resolveRequiredId(e,()=>this.credentialsService.getOrganizationId(),`organization ID`,`--org`)}async resolveProjectIdOption(e){return this.resolveRequiredId(e,()=>this.credentialsService.getProjectId(),`project ID`,`--project`)}async resolveTaskIdOption(e){return this.resolveRequiredId(e,()=>this.credentialsService.getTaskId(),`task ID`,`--task`)}async resolveWorkUnitIdOption(e){return this.resolveRequiredId(e,()=>this.credentialsService.getWorkUnitId(),`work unit ID`,`--work-unit`)}async resolveRequiredId(e,t,n,r){if(e)return e;let i=await t();if(i)return i;throw Error(`Missing ${n}. Pass ${r} or set the matching AGIFLOW_* environment variable.`)}parseJsonFlag(e,t){if(e)try{return JSON.parse(e)}catch{throw Error(`${t} must be valid JSON.`)}}parseCsv(e){if(!e)return;let t=(Array.isArray(e)?e:e.split(`,`)).map(e=>e.trim()).filter(Boolean);return t.length>0?t:void 0}parseNumber(e,t){if(e===void 0)return t;let n=Number(e);if(!Number.isFinite(n))throw Error(`Expected a numeric value, received "${e}".`);return n}},rt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows`,{method:`GET`,params:e,query:t})).data,it=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows`,{method:`POST`,params:e,body:t})).data,at=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/check`,{method:`GET`,params:e,query:t})).data,ot=async e=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/{id}`,{method:`GET`,params:e})).data,st=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/{id}`,{method:`PATCH`,params:e,body:t})).data,ct=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/{id}/release`,{method:`POST`,params:e,body:t})).data,lt=`AGIFLOW_ORGANIZATION_ID`,ut=`AGIFLOW_PROJECT_ID`,dt=`AGIFLOW_TASK_ID`,ft=`AGIFLOW_WORK_UNIT_ID`,pt=class extends N{constructor(e,t){super(e,t)}register(e){let t=e.command(`workflow`).description(`Manage workflow locks`);this.addWorkflowScopeOptions(t.command(`create`).description(`Acquire a workflow lock`)).requiredOption(`--name <name>`,`Workflow name`).addOption(this.envOption(`--work-unit <workUnitId>`,`Work unit ID`,ft)).addOption(this.envOption(`--task <taskId>`,`Task ID`,dt)).option(`--context <json>`,`Context data as JSON string`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveWorkflowScope(e),r=await this.resolveWorkflowTarget(e),i=await it({organizationId:t,projectId:n},{name:e.name,workUnitId:r.workUnitId,taskId:r.taskId,contextData:e.context});console.log(A.green(`✓`),`Workflow lock acquired`),console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to acquire workflow lock`,e)}}),this.addWorkflowScopeOptions(t.command(`get <id>`).description(`Get workflow details`)).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveWorkflowScope(t),i=await ot({organizationId:n,projectId:r,id:e});console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to get workflow`,e)}}),this.addWorkflowScopeOptions(t.command(`list`).description(`List workflows`)).option(`--status <status>`,`Filter by status (running|completed|failed)`).option(`--limit <limit>`,`Max results`,`20`).option(`--offset <offset>`,`Offset for pagination`,`0`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveWorkflowScope(e),r=await rt({organizationId:t,projectId:n},{status:e.status,limit:Number(e.limit),offset:Number(e.offset)});console.log(JSON.stringify(r,null,2))}catch(e){this.handleError(`Failed to list workflows`,e)}}),this.addWorkflowScopeOptions(t.command(`update <id>`).description(`Update workflow metadata`)).option(`--name <name>`,`New workflow name`).option(`--context <json>`,`Updated context data as JSON string`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveWorkflowScope(t),i={};t.name&&(i.name=t.name),t.context&&(i.contextData=t.context);let a=await st({organizationId:n,projectId:r,id:e},i);console.log(A.green(`✓`),`Workflow updated`),console.log(JSON.stringify(a,null,2))}catch(e){this.handleError(`Failed to update workflow`,e)}}),this.addWorkflowScopeOptions(t.command(`release <id>`).description(`Release a workflow lock`)).requiredOption(`--status <status>`,`Release status (completed|failed)`).option(`--error <error>`,`Error message (when status is failed)`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveWorkflowScope(t),i=await ct({organizationId:n,projectId:r,id:e},{status:t.status,error:t.error});console.log(A.green(`✓`),`Workflow lock released`),console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to release workflow lock`,e)}}),this.addWorkflowScopeOptions(t.command(`check`).description(`Check if a workflow lock exists`)).addOption(this.envOption(`--work-unit <workUnitId>`,`Work unit ID`,ft)).addOption(this.envOption(`--task <taskId>`,`Task ID`,dt)).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveWorkflowScope(e),r=await this.resolveWorkflowTarget(e),i=await at({organizationId:t,projectId:n},{workUnitId:r.workUnitId,taskId:r.taskId});console.log(A.green(`✓`),`Lock found`),console.log(JSON.stringify(i,null,2))}catch(e){if(e instanceof Error&&e.message.includes(`404`)){console.log(JSON.stringify({}));return}this.handleError(`Failed to check workflow lock`,e)}})}addWorkflowScopeOptions(e){return e.addOption(this.envOption(`--org <organizationId>`,`Organization ID`,lt)).addOption(this.envOption(`--project <projectId>`,`Project ID`,ut))}envOption(e,t,n){return this.buildEnvIdOption(e,t,n)}async resolveWorkflowScope(e){return{org:await this.resolveOrganizationId(e.org),project:await this.resolveProjectIdOption(e.project)}}async resolveWorkflowTarget(e){if(e.workUnit)return{workUnitId:e.workUnit};if(e.task)return{taskId:e.task};let t=await this.credentialsService.getWorkUnitId();if(t)return{workUnitId:t};let n=await this.credentialsService.getTaskId();return n?{taskId:n}:{}}};pt=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],pt);var mt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects`,{method:`GET`,params:e,query:t})).data,ht=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects`,{method:`POST`,params:e,body:t})).data,gt=async e=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{id}`,{method:`GET`,params:e})).data,_t=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{id}`,{method:`PATCH`,params:e,body:t})).data,vt=async e=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{id}`,{method:`DELETE`,params:e})).data,yt=async e=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts`,{method:`GET`,params:e})).data,bt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts`,{method:`DELETE`,params:e,query:t})).data,xt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/download`,{method:`GET`,params:e,query:t})).data,St=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/upload-url`,{method:`GET`,params:e,query:t})).data,Ct=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/complete`,{method:`POST`,params:e,body:t})).data,wt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/seed`,{method:`POST`,params:e,body:t})).data,Tt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/tasks`,{method:`GET`,params:e,query:t})).data,Et=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/artifacts`,{method:`PATCH`,params:e,body:t})).data,Dt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/statuses/{statusId}/tasks/reorder`,{method:`POST`,params:e,body:t})).data,Ot=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks`,{method:`GET`,params:e,query:t})).data,kt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks`,{method:`POST`,params:e,body:t})).data,At=async e=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}`,{method:`GET`,params:e})).data,jt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}`,{method:`PATCH`,params:e,body:t})).data,Mt=async e=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}`,{method:`DELETE`,params:e})).data,Nt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}/move`,{method:`POST`,params:e,body:t})).data,Pt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/work-units/{workUnitId}/artifacts`,{method:`PATCH`,params:e,body:t})).data,Ft=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units`,{method:`GET`,params:e,query:t})).data,It=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units`,{method:`POST`,params:e,body:t})).data,Lt=async e=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}`,{method:`GET`,params:e})).data,Rt=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}`,{method:`PATCH`,params:e,body:t})).data,zt=async e=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}`,{method:`DELETE`,params:e})).data,Bt=async e=>(await M.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}/progress`,{method:`GET`,params:e})).data,Vt=`AGIFLOW_ORGANIZATION_ID`,Ht=`AGIFLOW_PROJECT_ID`,Ut=`AGIFLOW_TASK_ID`,Wt=`AGIFLOW_WORK_UNIT_ID`,Gt=class extends N{constructor(e,t){super(e,t)}register(e){let t=e.command(`artifact`).description(`Manage project artifacts`);this.addArtifactScopeOptions(t.command(`upload <file>`).description(`Upload an artifact (3-step: get presigned URL, PUT to storage, mark complete)`)).option(`--name <name>`,`Artifact name (defaults to filename)`).option(`--type <type>`,`Content type`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t),i=p.default.resolve(e);f.default.existsSync(i)||(console.error(A.red(`✗`),`File not found: ${i}`),process.exit(1));let a=t.name??p.default.basename(i),o=f.default.readFileSync(i),s=f.default.statSync(i).size;console.log(A.blue(`↑`),`Uploading ${a} (${s} bytes)...`);let{url:c,key:l}=await St({organizationId:n,id:r},{filename:a,contentType:t.type}),u=await fetch(c,{method:`PUT`,body:o,headers:{"Content-Type":t.type??`application/octet-stream`}});if(!u.ok)throw Error(`Upload failed with status ${u.status}`);await Ct({organizationId:n,id:r},{key:l}),console.log(A.green(`✓`),`Artifact uploaded: ${l}`)}catch(e){this.handleError(`Failed to upload artifact`,e)}}),this.addArtifactScopeOptions(t.command(`download <key>`).description(`Download an artifact by key`)).option(`-o, --output <path>`,`Output file path`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t),i=(await xt({organizationId:n,id:r},{key:e})).url,a=await fetch(i);if(!a.ok)throw Error(`Download failed with status ${a.status}`);let o=Buffer.from(await a.arrayBuffer()),s=t.output??e;f.default.writeFileSync(s,o),console.log(A.green(`✓`),`Downloaded to ${s}`)}catch(e){this.handleError(`Failed to download artifact`,e)}}),this.addArtifactScopeOptions(t.command(`list`).description(`List project artifacts`)).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveArtifactScope(e),r=await yt({organizationId:t,id:n});console.log(JSON.stringify(r,null,2))}catch(e){this.handleError(`Failed to list artifacts`,e)}}),this.addArtifactScopeOptions(t.command(`get <key>`).description(`Get artifact details by key`)).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t),i=(await yt({organizationId:n,id:r})).items.find(t=>t.key===e||t.id===e);i||(console.error(A.red(`✗`),`Artifact not found: ${e}`),process.exit(1)),console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to get artifact`,e)}}),this.addArtifactScopeOptions(t.command(`delete <key>`).description(`Delete an artifact by key`)).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t);await bt({organizationId:n,id:r},{key:e}),console.log(A.green(`✓`),`Artifact deleted: ${e}`)}catch(e){this.handleError(`Failed to delete artifact`,e)}}),t.command(`link <key>`).description(`Link artifact to a work unit or task`).addOption(this.buildEnvIdOption(`--org <organizationId>`,`Organization ID`,Vt)).addOption(this.buildEnvIdOption(`--work-unit <workUnitId>`,`Work unit ID to link`,Wt)).addOption(this.buildEnvIdOption(`--task <taskId>`,`Task ID to link`,Ut)).action(async(e,t)=>{try{await this.setupClient();let n=await this.resolveOrganizationId(t.org),r=!!t.task,i=!!t.workUnit;if(r&&i){console.error(A.red(`✗`),`Specify exactly one of --task or --work-unit, not both`),process.exit(1);return}if(!r&&!i){console.error(A.red(`✗`),`Specify exactly one of --task or --work-unit`),process.exit(1);return}if(r){let r=await this.resolveTaskIdOption(t.task);await Et({organizationId:n,taskId:r},{action:`attach`,artifactId:e}),console.log(JSON.stringify({artifactKey:e,linkedTo:{type:`task`,id:r}},null,2))}else{let r=await this.resolveWorkUnitIdOption(t.workUnit);await Pt({organizationId:n,workUnitId:r},{action:`attach`,artifactId:e}),console.log(JSON.stringify({artifactKey:e,linkedTo:{type:`work-unit`,id:r}},null,2))}}catch(e){this.handleError(`Failed to link artifact`,e)}}),this.addArtifactScopeOptions(t.command(`seed`).description(`Seed artifacts from a JSON file`)).requiredOption(`--file <path>`,`Path to JSON file containing seed data`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveArtifactScope(e),r=p.default.resolve(e.file);if(!f.default.existsSync(r)){console.error(A.red(`✗`),`File not found: ${r}`),process.exit(1);return}let i=f.default.readFileSync(r,`utf-8`),a;try{a=JSON.parse(i)}catch{console.error(A.red(`✗`),`Invalid JSON in ${r}`),process.exit(1);return}let o=await wt({organizationId:t,id:n},a);console.log(JSON.stringify(o,null,2))}catch(e){this.handleError(`Failed to seed artifacts`,e)}}),this.addArtifactScopeOptions(t.command(`update <artifactId>`).description(`Update artifact metadata`)).option(`--name <name>`,`New artifact name`).action((e,t)=>{console.log(A.yellow(`⚠`),`Artifact update endpoint not yet available in API`)})}addArtifactScopeOptions(e){return e.addOption(this.buildEnvIdOption(`--org <organizationId>`,`Organization ID`,Vt)).addOption(this.buildEnvIdOption(`--project <projectId>`,`Project ID`,Ht))}async resolveArtifactScope(e){return{org:await this.resolveOrganizationId(e.org),project:await this.resolveProjectIdOption(e.project)}}};Gt=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],Gt);var Kt=class e{command;constructor(e){this.command=e}static for(t){return new e(t)}fromSchemaGroups(e){for(let t of e)this.addGroup(t);return this.command}addGroup(e){let t=u.z.toJSONSchema(e.schema),n=new Set(t.required??[]);for(let r of e.options){let e=r.source??r.name,i=t.properties?.[e],a=i?.cli,o=r.parse??a?.parse??qt(i),s=i?.description??Zt(e),l=r.defaultValue??Jt(i),u=r.valueName??a?.valueName??e,d=r.flag??a?.flag??`--${Xt(r.name)}`,f=r.envVars??(r.envVar?[r.envVar]:[]),p=f.length>0?!1:r.required??(l===void 0&&n.has(e)),m=o===`boolean`?d:`${d} <${u}>`,h=Yt(o),g=new c.Option(m,s);if(f.some(e=>process.env[e])&&g.hideHelp(),p){h&&g.argParser(h),this.command.addOption(g.makeOptionMandatory());continue}h?(g.argParser(h),l!==void 0&&g.default(l),this.command.addOption(g)):(l===void 0||g.default(l),this.command.addOption(g))}}},qt=e=>e&&(Array.isArray(e.type)?e.type.find(e=>e!==`null`):e.type)===`boolean`?`boolean`:`string`,Jt=e=>{if(typeof e?.default==`string`||typeof e?.default==`boolean`)return e.default;if(typeof e?.default==`number`)return String(e.default)},Yt=e=>{if(e===`csv`)return e=>e.split(`,`).map(e=>e.trim()).filter(Boolean);if(e===`json`)return e=>JSON.parse(e)},Xt=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/_/g,`-`).toLowerCase(),Zt=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase()),Qt=`0.0.1`,P=`AGIFLOW_ORGANIZATION_ID`,F=`AGIFLOW_PROJECT_ID`,$t=`AGIFLOW_TASK_ID`,en=`AGIFLOW_WORK_UNIT_ID`,tn=(e,t)=>{let n={AGIFLOW_ORGANIZATION_ID:t.org,AGIFLOW_PROJECT_ID:t.project,AGIFLOW_JOB_KIND:e.kind,AGIFLOW_JOB_ID:e.id,AGIFLOW_JOB_SLUG:e.slug??``,AGIFLOW_JOB_TITLE:e.title??``,AGIFLOW_WORKFLOW_ID:t.workflowId,AGIFLOW_JOB_CONTEXT_FILE:t.contextFile};return e.kind===`work-unit`?n[en]=e.id:n[$t]=e.id,n},I=u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID`)}),nn=u.z.object({jobKind:u.z.enum([`work-unit`,`task`]).describe(`Job kind (work-unit|task)`),jobId:u.z.string().min(1).describe(`Job ID`)}),rn=u.z.object({format:u.z.literal(`json`).default(`json`).describe(`Output format`)}),L=(e,t)=>Kt.for(e).fromSchemaGroups([...t,{schema:rn,options:[{name:`format`,required:!1,defaultValue:`json`}]}]),an=class extends N{constructor(e,t){super(e,t)}register(e){let t=e.command(`automation`).description(`Automation JSON commands`);t.command(`list-jobs`).description(`List runnable or claimed automation jobs`).option(`--status <statuses>`,`Comma-separated job statuses`,`planning,todo`),L(t.commands.at(-1),[{schema:I,options:[{name:`org`,source:`organizationId`,envVar:P},{name:`project`,source:`projectId`,envVar:F}]},{schema:u.z.object({limit:u.z.string().default(`50`).describe(`Max results`),claimed:u.z.boolean().optional().describe(`List claimed running jobs`),deviceId:u.z.string().optional().describe(`Filter claimed jobs by device ID`)}),options:[{name:`limit`,required:!1,defaultValue:`50`},{name:`claimed`,required:!1},{name:`deviceId`,flag:`--device-id`,required:!1}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=await this.requestJson({org:t,project:n,path:`/jobs`,query:{status:e.status,limit:Number(e.limit),claimed:!!e.claimed,deviceId:e.deviceId,format:`json`}});this.printJson(r)})}),t.command(`get-job`).description(`Get a normalized automation job`),L(t.commands.at(-1),[{schema:I,options:[{name:`org`,source:`organizationId`,envVar:P},{name:`project`,source:`projectId`,envVar:F}]},{schema:nn,options:[{name:`jobKind`,flag:`--job-kind`},{name:`jobId`,flag:`--job-id`,envVars:[en,$t]}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=this.resolveJobKind(e.jobKind),i=await this.resolveJobId(e.jobId,r),a=await this.requestJson({org:t,project:n,path:`/jobs/get`,query:{jobKind:r,jobId:i,format:`json`}});this.printJson(a)})}),t.command(`claim-job`).description(`Claim an automation job`),L(t.commands.at(-1),[{schema:I,options:[{name:`org`,source:`organizationId`,envVar:P},{name:`project`,source:`projectId`,envVar:F}]},{schema:nn.extend({name:u.z.string().min(1).describe(`Run name`),deviceId:u.z.string().optional().describe(`Device ID running the job`)}),options:[{name:`jobKind`,flag:`--job-kind`},{name:`jobId`,flag:`--job-id`,envVars:[en,$t]},{name:`name`},{name:`deviceId`,flag:`--device-id`,required:!1}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=this.resolveJobKind(e.jobKind),i=await this.resolveJobId(e.jobId,r),a=await this.requestJson({org:t,project:n,path:`/jobs/claim`,method:`POST`,body:{jobKind:r,jobId:i,name:e.name,deviceId:e.deviceId}});this.printJson(a)})}),t.command(`release-job`).description(`Release a claimed automation job`),L(t.commands.at(-1),[{schema:I,options:[{name:`org`,source:`organizationId`,envVar:P},{name:`project`,source:`projectId`,envVar:F}]},{schema:u.z.object({workflowId:u.z.string().min(1).describe(`Workflow lock ID`),status:u.z.enum([`completed`,`failed`]).describe(`Release status (completed|failed)`),error:u.z.string().optional().describe(`Error message for failed runs`)}),options:[{name:`workflowId`,flag:`--workflow-id`},{name:`status`},{name:`error`,required:!1}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=await this.requestJson({org:t,project:n,path:`/jobs/release`,method:`POST`,body:{workflowId:e.workflowId,status:e.status,error:e.error}});this.printJson(r)})}),t.command(`dispatch`).description(`Poll ready jobs and hand each off to a consumer command (long-lived)`),L(t.commands.at(-1),[{schema:I,options:[{name:`org`,source:`organizationId`,envVar:P},{name:`project`,source:`projectId`,envVar:F}]},{schema:u.z.object({handler:u.z.string().min(1).describe(`Consumer command run per claimed job`),status:u.z.string().default(`planning,todo`).describe(`Comma-separated job statuses to poll`),maxConcurrent:u.z.string().default(`2`).describe(`Max concurrent in-flight handlers`),interval:u.z.string().default(`1200`).describe(`Seconds between polls`),limit:u.z.string().default(`50`).describe(`Jobs fetched per poll`),once:u.z.boolean().optional().describe(`Run a single poll pass then drain and exit`),deviceId:u.z.string().optional().describe(`Device ID for claim attribution`)}),options:[{name:`handler`},{name:`status`,required:!1,defaultValue:`planning,todo`},{name:`maxConcurrent`,flag:`--max-concurrent`,required:!1,defaultValue:`2`},{name:`interval`,required:!1,defaultValue:`1200`},{name:`limit`,required:!1,defaultValue:`50`},{name:`once`,required:!1},{name:`deviceId`,flag:`--device-id`,required:!1}]}]).action(async e=>{try{await this.runDispatch(e)}catch(e){this.logDispatch(`fatal: ${e instanceof Error?e.message:String(e)}`),process.exit(1)}})}async runDispatch(e){let{org:t,project:n}=await this.resolveAutomationRoute(e);if(!e.handler)throw Error(`Missing --handler. Pass the consumer command to run per job.`);let r={org:t,project:n,handler:e.handler,statuses:e.status??`planning,todo`,limit:Number(e.limit??`50`),maxConcurrent:Math.max(1,Number(e.maxConcurrent??`2`)),deviceId:e.deviceId,inFlight:new Map},i=Math.max(0,Number(e.interval??`1200`))*1e3,a={requested:!1},o=()=>{a.requested=!0,this.logDispatch(`shutdown requested; draining in-flight handlers`)};process.once(`SIGINT`,o),process.once(`SIGTERM`,o),this.logDispatch(`started org=${t} project=${n} status=${r.statuses} maxConcurrent=${r.maxConcurrent} interval=${i/1e3}s${e.once?` (once)`:``}`);try{do{try{await this.dispatchPass(r)}catch(e){this.logDispatch(`poll error: ${e instanceof Error?e.message:String(e)}`)}if(e.once||a.requested)break;await this.sleep(i,a)}while(!a.requested)}finally{process.off(`SIGINT`,o),process.off(`SIGTERM`,o),await Promise.allSettled(r.inFlight.values())}}async dispatchPass(e){let t=e.maxConcurrent-e.inFlight.size;if(t<=0){this.logDispatch(`at capacity (${e.inFlight.size}/${e.maxConcurrent}); skipping poll`);return}let n=await this.requestJson({org:e.org,project:e.project,path:`/jobs`,query:{status:e.statuses,limit:e.limit,claimed:!1,format:`json`}}),r=this.extractJobs(n),i=0;for(let n of r){if(i>=t)break;if(e.inFlight.has(n.id))continue;let r=await this.claimJobForDispatch(e,n);if(!r)continue;i+=1;let a=this.handleClaimedJob(e,n,r).finally(()=>{e.inFlight.delete(n.id)});e.inFlight.set(n.id,a)}}async claimJobForDispatch(e,t){let n=await this.requestJson({org:e.org,project:e.project,path:`/jobs/claim`,method:`POST`,body:{jobKind:t.kind,jobId:t.id,name:t.slug,deviceId:e.deviceId}});return n&&typeof n==`object`&&n.claimed===!0&&n.workflowId?String(n.workflowId):(this.logDispatch(`skip ${t.kind} ${t.slug}: not claimed (held elsewhere)`),null)}async handleClaimedJob(e,t,n){this.logDispatch(`claimed ${t.kind} ${t.slug} (workflow ${n}); running handler`);let r=this.writeJobContext(e.project,t),i=tn(t,{org:e.org,project:e.project,workflowId:n,contextFile:r}),a=0,o;try{a=await this.spawnHandler(e.handler,i)}catch(e){a=1,o=e instanceof Error?e.message:String(e)}finally{this.removeJobContext(r)}let s=a===0?`completed`:`failed`;!o&&a!==0&&(o=`handler exited with code ${a}`),await this.releaseDispatch(e,n,s,o),this.logDispatch(`released ${t.kind} ${t.slug} as ${s}${o?`: ${o}`:``}`)}async releaseDispatch(e,t,n,r){try{await this.requestJson({org:e.org,project:e.project,path:`/jobs/release`,method:`POST`,body:{workflowId:t,status:n,error:r}})}catch(e){this.logDispatch(`release failed for workflow ${t}: ${e instanceof Error?e.message:String(e)}`)}}spawnHandler(e,t){return new Promise((n,r)=>{let i=(0,g.spawn)(e,{shell:!0,stdio:[`ignore`,`inherit`,`inherit`],env:{...process.env,...t}});i.on(`error`,r),i.on(`close`,e=>n(e??0))})}writeJobContext(e,t){let n=p.default.join(m.default.homedir(),`.agiflow`,`dispatch`,this.slugifyName(e));(0,f.mkdirSync)(n,{recursive:!0});let r=p.default.join(n,`${t.slug||t.id}.json`);return(0,f.writeFileSync)(r,JSON.stringify(t,null,2),`utf8`),r}removeJobContext(e){try{(0,f.rmSync)(e,{force:!0})}catch{}}extractJobs(e){return e&&typeof e==`object`&&Array.isArray(e.items)?e.items:[]}logDispatch(e){console.error(`[dispatch] ${e}`)}async sleep(e,t){let n=0;for(;n<e&&!t.requested;){let t=Math.min(1e3,e-n);await new Promise(e=>setTimeout(e,t)),n+=t}}async resolveAutomationRoute(e){return{org:await this.resolveOrganizationId(e.org),project:await this.resolveProjectIdOption(e.project)}}resolveJobKind(e){if(e===`work-unit`||e===`task`)return e;throw Error(`Missing job kind. Pass --job-kind work-unit|task.`)}async resolveJobId(e,t){return e||(t===`work-unit`?this.resolveWorkUnitIdOption(void 0):this.resolveTaskIdOption(void 0))}slugifyName(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);if(!t)throw Error(`Name must contain at least one letter or number.`);return t}async requestJson(e){return this.requestUrlJson(`${this.configManager.getServerUrl().replace(/\/$/,``)}/api/v1/organizations/${e.org}/projects/${e.project}/automation${e.path}`,e)}async requestUrlJson(e,t){let n=await this.credentialsService.getApiKey();if(!n)throw Error(`No API key found. Set AGIFLOW_API_KEY or run authentication.`);let r=new URL(e);for(let[e,n]of Object.entries(t.query??{}))n!==void 0&&r.searchParams.set(e,String(n));let i=await fetch(r,{method:t.method??`GET`,headers:{"x-api-key":n,"x-client-type":`agent-cli`,"x-client-version":Qt,"Content-Type":`application/json`,Accept:`application/json`},body:t.body?JSON.stringify(t.body):void 0}),a=await i.json().catch(()=>({}));if(!i.ok){let e=typeof a==`object`&&a&&`message`in a?String(a.message):i.statusText;throw Error(e)}return a}};an=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],an),u.z.enum([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`OPTIONS`,`HEAD`]);var on=u.z.union([u.z.literal(200),u.z.literal(201),u.z.literal(204),u.z.literal(400),u.z.literal(401),u.z.literal(403),u.z.literal(404),u.z.literal(409),u.z.literal(422),u.z.literal(500),u.z.literal(502),u.z.literal(503)]);u.z.enum([`application/json`,`application/xml`,`text/plain`,`multipart/form-data`]),u.z.object({error:u.z.string(),message:u.z.string().optional(),statusCode:on,details:u.z.record(u.z.string(),u.z.unknown()).optional()}),u.z.object({total:u.z.number(),limit:u.z.number(),offset:u.z.number(),hasNext:u.z.boolean().optional(),hasPrev:u.z.boolean().optional()});var sn=u.z.object({id:u.z.enum([`apple`,`google`,`github`]),displayName:u.z.string(),flow:u.z.enum([`native-id-token`,`oauth-browser`])}).strict();u.z.object({emailPassword:u.z.boolean(),providers:u.z.array(sn)}).strict(),u.z.object({ok:u.z.boolean()}).strict(),u.z.object({name:u.z.string().min(2).max(80),email:u.z.string().max(160).email(),subject:u.z.string().min(2).max(120),message:u.z.string().min(10).max(4e3)}).strict();var cn=u.z.object({id:u.z.string(),name:u.z.string(),slug:u.z.string().nullable(),role:u.z.string()}).strict();u.z.object({organizations:u.z.array(cn)}).strict(),u.z.object({api_key:u.z.string().describe(`The API key for the agent`),key_id:u.z.string().describe(`ID of the API key`),organization_id:u.z.string().describe(`Organization ID`),organization_name:u.z.string().describe(`Organization name`),agent_user_id:u.z.string().describe(`User ID of the agent`),expires_at:u.z.number().describe(`Expiration timestamp in milliseconds`)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID to exchange token for`)}).strict(),u.z.object({success:u.z.boolean(),message:u.z.string()}).strict();var ln=u.z.object({organizationId:u.z.string(),projectId:u.z.string().nullable(),workUnitId:u.z.string().nullable(),taskId:u.z.string().nullable(),resourcePath:u.z.string(),scopes:u.z.string().nullable(),clientId:u.z.string(),expiresAt:u.z.string()}).strict(),un=u.z.object({id:u.z.string(),name:u.z.string(),slug:u.z.string(),role:u.z.string()}).strict();u.z.object({resourceContext:ln.nullable(),organizations:u.z.array(un)}).strict();var dn=u.z.object({code_challenge:u.z.string().min(1)}).strict();u.z.object({success:u.z.boolean(),resourcePath:u.z.string(),organizationId:u.z.string(),projectId:u.z.string().nullable(),workUnitId:u.z.string().nullable(),taskId:u.z.string().nullable()}).strict(),u.z.object({codeChallenge:u.z.string().min(1),organizationId:u.z.string().optional(),clientId:u.z.string().optional(),projectId:u.z.string().optional(),workUnitId:u.z.string().optional(),taskId:u.z.string().optional()}).strict(),u.z.object({id:u.z.string(),name:u.z.string(),slug:u.z.string()}),u.z.object({name:u.z.string().min(2).max(80).describe(`Organization display name`)}).strict(),u.z.object({version:u.z.string()}).strict();var R=u.z.object({}).strict();u.z.object({version:u.z.string()}).strict();var z=u.z.object({}).strict();u.z.object({mcpServers:u.z.object({})}).strict();var fn=u.z.object({id:u.z.string(),mcpServerId:u.z.string(),serverName:u.z.string(),description:u.z.string().nullable(),isInternal:u.z.boolean(),scope:u.z.enum([`global`,`organization`,`project`,`task`]),isEnabled:u.z.boolean(),hasProgressiveDisclosure:u.z.boolean(),progressiveDisclosure:u.z.boolean(),disabledTools:u.z.array(u.z.string()).nullable(),disabledResources:u.z.array(u.z.string()).nullable(),serverConfig:u.z.object({}).nullable(),priority:u.z.number()}).strict();u.z.object({servers:u.z.array(fn),projectId:u.z.string().optional()}).strict();var pn=u.z.object({projectId:u.z.string().optional(),taskId:u.z.string().optional(),workUnitId:u.z.string().optional()}).strict();u.z.object({id:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string(),serverConfig:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledTools:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledResources:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),isEnabled:u.z.boolean(),priority:u.z.number().min(-9007199254740991).max(9007199254740991).int(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),mcpServerId:u.z.string().min(1),serverConfig:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledTools:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResources:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().optional(),priority:u.z.number().min(-9007199254740991).max(9007199254740991).int().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({serverName:u.z.string(),isEnabled:u.z.boolean(),disabledTools:u.z.array(u.z.string()).nullable(),disabledResources:u.z.array(u.z.string()).nullable(),serverConfig:u.z.object({}),priority:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),serverName:u.z.string().min(1)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1)}).strict(),u.z.object({serverConfig:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledTools:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResources:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().optional(),priority:u.z.number().min(-9007199254740991).max(9007199254740991).int().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({id:u.z.string(),organizationId:u.z.string(),projectId:u.z.string().nullable(),taskId:u.z.string().nullable(),workUnitId:u.z.string().nullable(),progressiveDisclosure:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}).strict();var B=u.z.object({projectId:u.z.string().optional(),taskId:u.z.string().optional(),workUnitId:u.z.string().optional()}).strict();u.z.object({progressiveDisclosure:u.z.boolean()}).strict(),u.z.object({progressiveDisclosure:u.z.boolean()}).strict();var mn=u.z.object({id:u.z.string(),organizationId:u.z.string().nullable(),serverName:u.z.string(),displayName:u.z.string(),description:u.z.string().nullable(),isInternal:u.z.boolean(),serverConfig:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),availableTools:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),availableResources:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({items:u.z.array(mn)}).strict();var hn=u.z.union([u.z.object({type:u.z.string(),command:u.z.string().min(1),args:u.z.array(u.z.string()).optional(),env:u.z.object({}).optional()}).strict(),u.z.object({type:u.z.string(),url:u.z.string().url(),headers:u.z.object({}).optional()}).strict()]);u.z.object({serverName:u.z.string().min(1),displayName:u.z.string().min(1),description:u.z.string().optional(),serverConfig:hn}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1)}).strict(),u.z.object({serverName:u.z.string().min(1).optional(),displayName:u.z.string().min(1).optional(),description:u.z.string().optional(),serverConfig:hn.optional()}).strict(),u.z.object({mcpServers:u.z.object({})}).strict(),u.z.object({taskId:u.z.string().min(1)}).strict(),u.z.object({id:u.z.string(),taskId:u.z.string(),projectId:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string(),serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),isEnabled:u.z.boolean().nullable(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({taskId:u.z.string(),projectId:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string().min(1),serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().nullable().optional(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({serverName:u.z.string(),isEnabled:u.z.boolean(),disabledTools:u.z.array(u.z.string()).nullable(),disabledResources:u.z.array(u.z.string()).nullable(),serverConfig:u.z.object({}),priority:u.z.number()}).strict(),u.z.object({taskId:u.z.string().min(1),id:u.z.string().min(1)}).strict(),u.z.object({serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().nullable().optional(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({mcpServers:u.z.object({})}).strict(),u.z.object({workUnitId:u.z.string().min(1)}).strict(),u.z.object({id:u.z.string(),workUnitId:u.z.string(),projectId:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string(),serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),isEnabled:u.z.boolean().nullable(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({workUnitId:u.z.string().min(1),id:u.z.string().min(1)}).strict(),u.z.object({serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().nullable().optional(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),workUnitId:u.z.string().min(1)}).strict();var gn=u.z.object({id:u.z.string(),title:u.z.string(),slug:u.z.string(),description:u.z.string().nullable(),projectId:u.z.string(),parentWorkUnitId:u.z.string().nullable(),type:u.z.enum([`epic`,`feature`,`initiative`]).nullable(),priority:u.z.enum([`low`,`medium`,`high`]).nullable(),statusId:u.z.string().nullable(),status:u.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`]).nullable(),ownerId:u.z.string(),estimatedEffort:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),startDate:u.z.string().nullable(),targetDate:u.z.string().nullable(),completedAt:u.z.string().nullable(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),taskCount:u.z.number().optional().describe(`Number of tasks in this work unit`)}).strict(),_n=u.z.object({title:u.z.string().min(1).max(255).optional().describe(`Work unit title`),slug:u.z.string().optional().describe(`Work unit slug`),description:u.z.string().nullable().optional(),parentWorkUnitId:u.z.string().nullable().optional(),type:u.z.enum([`epic`,`feature`,`initiative`]).nullable().optional(),priority:u.z.enum([`low`,`medium`,`high`]).nullable().optional(),statusId:u.z.string().nullable().optional(),status:u.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`]).nullable().optional(),ownerId:u.z.string().min(1).optional().describe(`Owner member ID`),estimatedEffort:u.z.number().min(0).max(9007199254740991).int().nullable().optional(),startDate:u.z.string().nullable().optional(),targetDate:u.z.string().nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict();u.z.object({action:u.z.union([u.z.string(),u.z.string(),u.z.string()]),artifactId:u.z.string().min(1)}).strict();var vn=u.z.object({id:u.z.string(),organizationId:u.z.string().nullable(),projectId:u.z.string().nullable(),isStartedState:u.z.boolean(),isCompletionState:u.z.boolean(),isTerminalState:u.z.boolean(),isBlockedState:u.z.boolean(),isAgentPickable:u.z.boolean(),key:u.z.string(),name:u.z.string(),description:u.z.string().nullable(),position:u.z.number().min(-9007199254740991).max(9007199254740991).int(),color:u.z.string().nullable(),isActive:u.z.boolean(),isDefault:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({items:u.z.array(vn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1).optional()}).strict(),u.z.object({statusIds:u.z.array(u.z.string().min(1))}).strict(),u.z.object({organizationId:u.z.string().min(1).nullable().optional(),projectId:u.z.string().nullable().optional(),isStartedState:u.z.boolean().optional(),isCompletionState:u.z.boolean().optional(),isTerminalState:u.z.boolean().optional(),isBlockedState:u.z.boolean().optional(),isAgentPickable:u.z.boolean().optional(),key:u.z.string().min(1).max(50),name:u.z.string().min(1).max(100),description:u.z.string().max(500).nullable().optional(),position:u.z.number().min(0).max(9007199254740991).int().optional(),color:u.z.string().nullable().optional(),isActive:u.z.boolean().optional(),isDefault:u.z.boolean().optional()}).strict();var yn=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),search:u.z.string().optional(),sort:u.z.enum([`createdAt`,`updatedAt`,`name`,`position`,`key`]),order:u.z.enum([`asc`,`desc`])}).strict();u.z.object({projectId:u.z.string().nullable().optional(),isStartedState:u.z.boolean().optional(),isCompletionState:u.z.boolean().optional(),isTerminalState:u.z.boolean().optional(),isBlockedState:u.z.boolean().optional(),isAgentPickable:u.z.boolean().optional(),key:u.z.string().min(1).max(50).optional(),name:u.z.string().min(1).max(100).optional(),description:u.z.string().max(500).nullable().optional(),position:u.z.number().min(0).max(9007199254740991).int().optional(),color:u.z.string().nullable().optional(),isActive:u.z.boolean().optional(),isDefault:u.z.boolean().optional()}).strict();var bn=u.z.object({id:u.z.string(),organizationId:u.z.string().nullable(),name:u.z.string(),displayName:u.z.string(),description:u.z.string().nullable(),executable:u.z.string(),defaultArgs:u.z.string().nullable(),isEnabled:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`)}).strict(),u.z.object({name:u.z.string().min(1).max(255),displayName:u.z.string().min(1).max(255),description:u.z.string().optional(),executable:u.z.string().min(1).max(255),defaultArgs:u.z.string().optional(),isEnabled:u.z.boolean()}).strict(),u.z.object({items:u.z.array(bn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var xn=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),search:u.z.string().optional(),sort:u.z.enum([`createdAt`,`updatedAt`,`name`,`displayName`]),order:u.z.enum([`asc`,`desc`]),isEnabled:u.z.boolean()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1)}).strict(),u.z.object({name:u.z.string().min(1).max(255).optional(),displayName:u.z.string().min(1).max(255).optional(),description:u.z.string().optional(),executable:u.z.string().min(1).max(255).optional(),defaultArgs:u.z.string().optional(),isEnabled:u.z.boolean().optional()}).strict();var Sn=u.z.object({id:u.z.string(),organizationId:u.z.string(),agentTypeId:u.z.string(),name:u.z.string(),description:u.z.string().nullable(),isActive:u.z.boolean(),isDefault:u.z.boolean(),metadata:u.z.object({}).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`)}).strict(),u.z.object({agentTypeId:u.z.string().min(1),name:u.z.string().min(1).max(255),description:u.z.string().max(1e3).nullable().optional(),isDefault:u.z.boolean()}).strict(),u.z.object({items:u.z.array(Sn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Cn=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),search:u.z.string().optional(),sort:u.z.enum([`createdAt`,`updatedAt`,`name`]),order:u.z.enum([`asc`,`desc`])}).strict(),wn=u.z.object({agentTypeId:u.z.string().min(1)}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string()}).strict(),u.z.object({}),u.z.object({name:u.z.string().min(1).max(255).optional(),description:u.z.string().max(1e3).nullable().optional(),isDefault:u.z.boolean().optional()}).strict(),u.z.object({}).strict();var Tn=u.z.object({id:u.z.string(),profileId:u.z.string(),credentialType:u.z.string(),customName:u.z.string().nullable(),r2Key:u.z.string(),size:u.z.number().max(9007199254740991).int(),checksum:u.z.string(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string(),type:u.z.enum([`gemini`,`codex`,`custom`]).optional()}).strict();var En=u.z.object({originalSize:u.z.number().max(9007199254740991).int(),fileCount:u.z.number().min(0).max(9007199254740991).int(),checksum:u.z.string().min(64).max(64)}).strict();u.z.object({credentialType:u.z.enum([`gemini`,`codex`,`custom`]),customName:u.z.string().min(1).max(255).optional(),data:u.z.string().min(1),metadata:En}).strict(),u.z.object({items:u.z.array(Tn),total:u.z.number().min(0).max(9007199254740991).int()}).strict();var Dn=u.z.object({download:u.z.boolean()}).strict(),On=u.z.object({id:u.z.string(),agentProfileId:u.z.string(),key:u.z.string(),value:u.z.string(),description:u.z.string().nullable(),isRequired:u.z.boolean(),isSecret:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.array(On),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),profileId:u.z.string()}).strict(),u.z.object({}),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),profileId:u.z.string(),key:u.z.string()}).strict(),u.z.object({key:u.z.string().min(1).max(255),value:u.z.string().min(1),description:u.z.string().max(1e3).optional(),isRequired:u.z.boolean(),isSecret:u.z.boolean()}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({variables:u.z.array(u.z.object({key:u.z.string().min(1).max(255),value:u.z.string().min(1),description:u.z.string().max(1e3).optional(),isRequired:u.z.boolean(),isSecret:u.z.boolean()}).strict())}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string()}).strict(),u.z.object({url:u.z.string().url(),state:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),provider:u.z.enum([`github`,`gitlab`])}).strict(),u.z.object({redirectUri:u.z.string().url()}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({code:u.z.string().min(1),state:u.z.string().min(1)}).strict();var kn=u.z.object({id:u.z.string(),organizationId:u.z.string(),provider:u.z.enum([`github`,`gitlab`]),scopes:u.z.array(u.z.string()),metadata:u.z.object({}).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.array(kn),u.z.object({});var An=u.z.object({id:u.z.number(),name:u.z.string(),fullName:u.z.string(),cloneUrl:u.z.string(),sshUrl:u.z.string(),defaultBranch:u.z.string(),private:u.z.boolean(),owner:u.z.object({login:u.z.string(),avatarUrl:u.z.string().nullable()}).strict(),description:u.z.string().nullable(),updatedAt:u.z.string()}).strict();u.z.object({items:u.z.array(An),total:u.z.number()}).strict();var jn=u.z.object({type:u.z.enum([`all`,`owner`,`public`,`private`,`member`]),sort:u.z.enum([`created`,`updated`,`pushed`,`full_name`]),direction:u.z.enum([`asc`,`desc`]),per_page:u.z.number().min(1).max(100),page:u.z.number().min(1)}).strict(),Mn=u.z.object({name:u.z.string(),protected:u.z.boolean()}).strict();u.z.object({items:u.z.array(Mn),total:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),owner:u.z.string().min(1),repo:u.z.string().min(1)}).strict();var Nn=u.z.object({per_page:u.z.number().min(1).max(100),page:u.z.number().min(1)}).strict(),Pn=u.z.object({id:u.z.string(),name:u.z.string(),type:u.z.enum([`cli`,`desktop`,`mobile`,`web`]),platform:u.z.string().optional(),version:u.z.string().optional(),metadata:u.z.object({}).optional(),is_active:u.z.boolean(),last_seen_at:u.z.string().datetime().optional(),created_at:u.z.string().datetime(),updated_at:u.z.string().datetime(),agentTypes:u.z.array(u.z.object({agentTypeId:u.z.string(),name:u.z.string(),displayName:u.z.string(),description:u.z.string().nullable(),executable:u.z.string(),defaultArgs:u.z.string().nullable(),isEnabled:u.z.boolean(),hostEnabled:u.z.boolean(),dockerEnabled:u.z.boolean(),hostAuthed:u.z.boolean(),dockerAuthed:u.z.boolean()}).strict()).optional(),activeDaemon:u.z.object({id:u.z.string(),status:u.z.string(),lastHeartbeat:u.z.string().datetime(),isActive:u.z.boolean()}).strict().nullable().optional()}).strict();u.z.object({devices:u.z.array(Pn),total:u.z.number()}).strict(),u.z.object({name:u.z.string().min(1),deviceGuid:u.z.string().min(1).optional(),type:u.z.enum([`cli`,`desktop`,`mobile`,`web`]),platform:u.z.string().optional(),version:u.z.string().optional(),metadata:u.z.object({}).optional(),agentTypes:u.z.array(u.z.object({agentType:u.z.string().min(1),hostEnabled:u.z.boolean(),dockerEnabled:u.z.boolean(),hostAuthed:u.z.boolean(),dockerAuthed:u.z.boolean()}).strict()).optional()}).strict(),u.z.object({name:u.z.string().min(1).optional(),metadata:u.z.object({}).optional(),is_active:u.z.boolean().optional()}).strict();var Fn=u.z.object({id:u.z.string(),deviceId:u.z.string(),agentTypeId:u.z.string(),hostEnabled:u.z.boolean(),dockerEnabled:u.z.boolean(),hostAuthed:u.z.boolean(),dockerAuthed:u.z.boolean(),createdAt:u.z.string().datetime(),updatedAt:u.z.string().datetime()}).strict();u.z.object({items:u.z.array(Fn),total:u.z.number()}).strict();var In=u.z.object({deviceId:u.z.string().optional(),agentTypeId:u.z.string().optional(),hostEnabled:u.z.boolean().optional(),dockerEnabled:u.z.boolean().optional(),hostAuthed:u.z.boolean().optional(),dockerAuthed:u.z.boolean().optional(),limit:u.z.number().min(1).max(100),offset:u.z.number().min(0)}).strict();u.z.object({deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1),hostEnabled:u.z.boolean(),dockerEnabled:u.z.boolean(),hostAuthed:u.z.boolean(),dockerAuthed:u.z.boolean()}).strict(),u.z.object({hostEnabled:u.z.boolean().optional(),dockerEnabled:u.z.boolean().optional(),hostAuthed:u.z.boolean().optional(),dockerAuthed:u.z.boolean().optional()}).strict(),u.z.object({hostEnabled:u.z.boolean().optional(),dockerEnabled:u.z.boolean().optional(),hostAuthed:u.z.boolean().optional(),dockerAuthed:u.z.boolean().optional()}).strict();var Ln=u.z.object({id:u.z.string(),name:u.z.string(),email:u.z.string(),emailVerified:u.z.boolean(),image:u.z.string().nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),twoFactorEnabled:u.z.boolean().nullable(),lastLoginMethod:u.z.string().nullable()}).strict(),Rn=u.z.object({id:u.z.string(),organizationId:u.z.string(),userId:u.z.string(),role:u.z.string(),createdAt:u.z.string(),description:u.z.string().nullable(),prompt:u.z.string().nullable()}).strict(),zn=u.z.object({user:Ln,member:Rn}).strict();u.z.object({members:u.z.array(zn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Bn=u.z.object({limit:u.z.number().min(1).max(100).int().describe(`Max results`),offset:u.z.number().min(0).max(9007199254740991).int().describe(`Result offset`),sortBy:u.z.enum([`createdAt`,`name`,`email`]),sortDirection:u.z.enum([`asc`,`desc`]),filterField:u.z.enum([`role`,`createdAt`]).optional(),filterOperator:u.z.enum([`eq`,`ne`,`gt`,`gte`,`lt`,`lte`,`in`,`nin`,`contains`]).optional(),filterValue:u.z.string().optional()}).strict();u.z.object({created:u.z.array(zn),errors:u.z.array(u.z.object({name:u.z.string(),error:u.z.string()}).strict()).optional()}).strict();var Vn=u.z.object({email:u.z.string().email().optional().describe(`Existing user email`),name:u.z.string().min(1).max(255).describe(`Agent member name`),description:u.z.string().optional().describe(`Agent description`),prompt:u.z.string().optional().describe(`Agent prompt`)}).strict();u.z.object({agents:u.z.array(Vn)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1)}).strict(),u.z.object({name:u.z.string().min(1).max(255).optional(),description:u.z.string().optional(),prompt:u.z.string().optional()}).strict(),u.z.object({success:u.z.boolean(),message:u.z.string()}).strict();var Hn=u.z.object({id:u.z.string(),teamId:u.z.string(),userId:u.z.string(),createdAt:u.z.string(),user:u.z.object({id:u.z.string(),name:u.z.string(),email:u.z.string(),image:u.z.string().nullable().optional()}).strict().optional()}).strict();u.z.object({members:u.z.array(Hn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),teamId:u.z.string().min(1)}).strict();var Un=u.z.object({limit:u.z.number().min(1).max(100).int(),offset:u.z.number().min(0).max(9007199254740991).int()}).strict();u.z.object({userId:u.z.string().min(1)}).strict(),u.z.object({success:u.z.boolean(),message:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),teamId:u.z.string().min(1),userId:u.z.string().min(1)}).strict();var Wn=u.z.object({id:u.z.string(),teamId:u.z.string(),projectId:u.z.string(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({projects:u.z.array(Wn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),teamId:u.z.string().min(1)}).strict();var Gn=u.z.object({limit:u.z.number().min(1).max(100).int(),offset:u.z.number().min(0).max(9007199254740991).int()}).strict();u.z.object({projectId:u.z.string().min(1)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),teamId:u.z.string().min(1),projectId:u.z.string().min(1)}).strict();var Kn=u.z.object({id:u.z.string(),key:u.z.string().optional().describe(`Only returned on creation`),name:u.z.string().optional(),prefix:u.z.string().optional(),start:u.z.string().optional().describe(`First characters of the key`),referenceId:u.z.string(),expiresAt:u.z.string().optional(),createdAt:u.z.string(),lastRequest:u.z.string().optional(),remaining:u.z.number().optional(),rateLimitEnabled:u.z.boolean(),permissions:u.z.object({}).optional(),metadata:u.z.object({}).optional()}).strict();u.z.object({name:u.z.string().min(1).max(255).optional().describe(`Optional name for the API key`),expiresIn:u.z.number().optional().describe(`Expiration time in seconds`),userId:u.z.string().optional().describe(`Optional user ID - defaults to authenticated user if not provided`),prefix:u.z.string().optional().describe(`Prefix for the API key`),remaining:u.z.number().optional().describe(`Number of requests remaining`),metadata:u.z.object({}).optional().describe(`Additional metadata for the API key`),refillAmount:u.z.number().optional().describe(`Amount to refill on interval`),refillInterval:u.z.number().optional().describe(`Refill interval in milliseconds`),rateLimitTimeWindow:u.z.number().optional().describe(`Rate limit time window in ms`),rateLimitMax:u.z.number().optional().describe(`Maximum requests in time window`),rateLimitEnabled:u.z.boolean().optional().describe(`Enable rate limiting`),permissions:u.z.object({}).optional().describe(`Permissions for the API key`)}).strict(),u.z.object({items:u.z.array(Kn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var qn=u.z.object({userId:u.z.string().optional().describe(`Filter by user ID`),includeExpired:u.z.boolean().optional().describe(`Include expired keys`),limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),search:u.z.string().optional(),sort:u.z.enum([`createdAt`,`updatedAt`,`name`,`lastRequest`]),order:u.z.enum([`asc`,`desc`])}).strict();u.z.object({id:u.z.string()}).strict();var Jn=u.z.object({id:u.z.string(),activityType:u.z.enum([`ai_completion`,`task_created`,`task_updated`,`task_completed`,`task_assigned`,`task_deleted`,`work_unit_created`,`work_unit_updated`,`work_unit_deleted`,`branch_created`,`collaboration`,`project_created`,`project_updated`,`agent_started`,`agent_stopped`,`agent_error`,`comment_added`,`device_connected`,`device_disconnected`,`member_joined`,`member_left`]),title:u.z.string(),description:u.z.string().nullable(),organizationId:u.z.string(),projectId:u.z.string().nullable(),taskId:u.z.string().nullable(),memberId:u.z.string().nullable(),agentSessionId:u.z.string().nullable(),deviceId:u.z.string().nullable(),daemonId:u.z.string().nullable(),metadata:u.z.object({duration:u.z.string().optional(),success:u.z.boolean().optional(),errorMessage:u.z.string().optional(),priority:u.z.enum([`low`,`medium`,`high`]).optional(),estimatedHours:u.z.number().nullable().optional(),previousStatus:u.z.string().optional(),newStatus:u.z.string().optional(),assignedFrom:u.z.string().optional(),assignedTo:u.z.string().optional(),branch:u.z.string().optional(),commits:u.z.number().nullable().optional(),repository:u.z.string().optional(),participants:u.z.number().nullable().optional(),messages:u.z.number().nullable().optional(),discussionTopic:u.z.string().optional(),agentType:u.z.string().optional(),executionTime:u.z.number().nullable().optional(),resourcesUsed:u.z.object({cpu:u.z.number().nullable().optional(),memory:u.z.number().nullable().optional()}).strict().optional(),oldValue:u.z.any().optional(),newValue:u.z.any().optional(),changes:u.z.object({}).optional(),tags:u.z.array(u.z.string()).optional(),relatedEntityId:u.z.string().optional(),relatedEntityType:u.z.string().optional()}).strict().nullable(),ipAddress:u.z.string().nullable(),userAgent:u.z.string().nullable(),createdAt:u.z.string()}).strict();u.z.object({items:u.z.array(Jn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`)}).strict();var Yn=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),activityType:u.z.enum([`ai_completion`,`task_created`,`task_updated`,`task_completed`,`task_assigned`,`task_deleted`,`work_unit_created`,`work_unit_updated`,`work_unit_deleted`,`branch_created`,`collaboration`,`project_created`,`project_updated`,`agent_started`,`agent_stopped`,`agent_error`,`comment_added`,`device_connected`,`device_disconnected`,`member_joined`,`member_left`]).optional(),projectId:u.z.string().optional(),taskId:u.z.string().optional(),memberId:u.z.string().optional(),agentSessionId:u.z.string().optional(),deviceId:u.z.string().optional(),daemonId:u.z.string().optional(),sort:u.z.enum([`createdAt`,`activityType`,`title`]),order:u.z.enum([`asc`,`desc`]),search:u.z.string().optional()}).strict(),Xn=u.z.object({activityType:u.z.enum([`ai_completion`,`task_created`,`task_updated`,`task_completed`,`task_assigned`,`task_deleted`,`work_unit_created`,`work_unit_updated`,`work_unit_deleted`,`branch_created`,`collaboration`,`project_created`,`project_updated`,`agent_started`,`agent_stopped`,`agent_error`,`comment_added`,`device_connected`,`device_disconnected`,`member_joined`,`member_left`]),title:u.z.string().min(1),description:u.z.string().optional(),projectId:u.z.string().optional(),taskId:u.z.string().optional(),memberId:u.z.string().optional(),agentSessionId:u.z.string().optional(),deviceId:u.z.string().optional(),daemonId:u.z.string().optional(),metadata:u.z.object({duration:u.z.string().optional(),success:u.z.boolean().optional(),errorMessage:u.z.string().optional(),priority:u.z.enum([`low`,`medium`,`high`]).optional(),estimatedHours:u.z.number().nullable().optional(),previousStatus:u.z.string().optional(),newStatus:u.z.string().optional(),assignedFrom:u.z.string().optional(),assignedTo:u.z.string().optional(),branch:u.z.string().optional(),commits:u.z.number().nullable().optional(),repository:u.z.string().optional(),participants:u.z.number().nullable().optional(),messages:u.z.number().nullable().optional(),discussionTopic:u.z.string().optional(),agentType:u.z.string().optional(),executionTime:u.z.number().nullable().optional(),resourcesUsed:u.z.object({cpu:u.z.number().nullable().optional(),memory:u.z.number().nullable().optional()}).strict().optional(),oldValue:u.z.any().optional(),newValue:u.z.any().optional(),changes:u.z.object({}).optional(),tags:u.z.array(u.z.string()).optional(),relatedEntityId:u.z.string().optional(),relatedEntityType:u.z.string().optional()}).strict().optional(),ipAddress:u.z.string().optional(),userAgent:u.z.string().optional()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),activityId:u.z.string().min(1)}).strict(),u.z.object({title:u.z.string().min(1).optional(),description:u.z.string().optional(),metadata:u.z.object({duration:u.z.string().optional(),success:u.z.boolean().optional(),errorMessage:u.z.string().optional(),priority:u.z.enum([`low`,`medium`,`high`]).optional(),estimatedHours:u.z.number().nullable().optional(),previousStatus:u.z.string().optional(),newStatus:u.z.string().optional(),assignedFrom:u.z.string().optional(),assignedTo:u.z.string().optional(),branch:u.z.string().optional(),commits:u.z.number().nullable().optional(),repository:u.z.string().optional(),participants:u.z.number().nullable().optional(),messages:u.z.number().nullable().optional(),discussionTopic:u.z.string().optional(),agentType:u.z.string().optional(),executionTime:u.z.number().nullable().optional(),resourcesUsed:u.z.object({cpu:u.z.number().nullable().optional(),memory:u.z.number().nullable().optional()}).strict().optional(),oldValue:u.z.any().optional(),newValue:u.z.any().optional(),changes:u.z.object({}).optional(),tags:u.z.array(u.z.string()).optional(),relatedEntityId:u.z.string().optional(),relatedEntityType:u.z.string().optional()}).strict().optional()}).strict(),u.z.object({ok:u.z.boolean()}).strict(),u.z.object({kind:u.z.enum([`feedback`,`content_report`,`user_report`]),subject:u.z.string().min(2).max(120),message:u.z.string().min(10).max(4e3),targetType:u.z.enum([`task`,`comment`,`artifact`,`member`,`project`,`workspace`]).optional(),targetId:u.z.string().min(1).max(160).optional(),reportedMemberId:u.z.string().min(1).max(160).optional(),muteRequested:u.z.boolean().optional()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),taskId:u.z.string().min(1).describe(`Task ID or slug`)}).strict();var Zn=u.z.object({id:u.z.string(),title:u.z.string(),slug:u.z.string(),description:u.z.string().nullable(),projectId:u.z.string(),workUnitId:u.z.string().nullable(),statusId:u.z.string(),assigneeId:u.z.string().nullable(),creatorId:u.z.string(),position:u.z.number().min(-9007199254740991).max(9007199254740991).int(),priority:u.z.enum([`low`,`medium`,`high`]),dueDate:u.z.string().nullable(),startedAt:u.z.string().nullable(),completedAt:u.z.string().nullable(),acceptanceCriteria:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),tags:u.z.array(u.z.string()).nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),status:u.z.object({id:u.z.string(),key:u.z.string(),name:u.z.string(),description:u.z.string().nullable(),position:u.z.number(),color:u.z.string().nullable(),isActive:u.z.boolean(),isDefault:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict().nullable().optional(),project:u.z.object({id:u.z.string(),name:u.z.string(),description:u.z.string().nullable()}).strict().nullable().optional(),assignee:u.z.object({id:u.z.string(),name:u.z.string(),email:u.z.string(),role:u.z.string()}).strict().nullable().optional(),workUnit:u.z.object({id:u.z.string(),title:u.z.string(),slug:u.z.string(),type:u.z.string().nullable(),priority:u.z.string().nullable(),status:u.z.string().nullable()}).strict().nullable().optional()}).strict();u.z.object({items:u.z.array(Zn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Qn=u.z.object({limit:u.z.number().min(1).max(100).describe(`Max results`),offset:u.z.number().min(0).describe(`Result offset`),search:u.z.string().optional().describe(`Search tasks`),sort:u.z.enum([`createdAt`,`updatedAt`,`title`,`position`,`priority`,`dueDate`]).describe(`Sort field`),order:u.z.enum([`asc`,`desc`]).describe(`Sort order`),columnId:u.z.string().optional(),statusId:u.z.string().optional(),statusIds:u.z.array(u.z.string()).optional().describe(`Comma-separated status IDs`),workUnitId:u.z.string().optional().describe(`Work unit ID`),assigneeId:u.z.string().optional().describe(`Assignee member ID`),priority:u.z.enum([`low`,`medium`,`high`]).optional().describe(`Task priority`),projectId:u.z.string().optional().describe(`Project ID`),tags:u.z.array(u.z.string()).optional().describe(`Comma-separated tags`),statusFilter:u.z.enum([`active`,`all`]).describe(`Status filter`)}).strict(),$n=u.z.object({title:u.z.string().min(1).max(255).optional().describe(`Task title`),slug:u.z.string().optional().describe(`Task slug`),description:u.z.string().nullable().optional(),workUnitId:u.z.string().nullable().optional(),statusId:u.z.string().min(1).optional(),assigneeId:u.z.string().nullable().optional(),position:u.z.number().min(0).max(9007199254740991).int().optional().describe(`Task position`),priority:u.z.enum([`low`,`medium`,`high`]).optional().describe(`Task priority`),dueDate:u.z.string().nullable().optional(),acceptanceCriteria:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),tags:u.z.array(u.z.string()).nullable().nullable().optional()}).strict(),er=u.z.object({id:u.z.string(),key:u.z.string(),name:u.z.string(),size:u.z.number(),contentType:u.z.string().optional(),isPreviewable:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({items:u.z.array(er),total:u.z.number()}).strict();var tr=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0)}).strict();u.z.object({url:u.z.string(),expiresIn:u.z.number()}).strict();var nr=u.z.object({key:u.z.string().min(1)}).strict(),rr=u.z.object({x:u.z.number().min(0).max(1).describe(`Left edge as fraction 0-1`),y:u.z.number().min(0).max(1).describe(`Top edge as fraction 0-1`),width:u.z.number().min(0).max(1).describe(`Width as fraction 0-1`),height:u.z.number().min(0).max(1).describe(`Height as fraction 0-1`)}).strict();u.z.object({action:u.z.union([u.z.string(),u.z.string()]),artifactId:u.z.string().min(1),clip:rr.optional()}).strict(),u.z.object({action:u.z.union([u.z.string(),u.z.string(),u.z.string()]),artifactId:u.z.string().min(1)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),statusId:u.z.string().min(1)}).strict();var ir=u.z.object({taskIds:u.z.array(u.z.string().min(1))}).strict(),ar=u.z.object({id:u.z.string(),taskId:u.z.string(),memberId:u.z.string(),assigneeId:u.z.string().nullable(),content:u.z.string(),info:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),member:u.z.object({id:u.z.string(),name:u.z.string().nullable(),email:u.z.string()}).strict().nullable(),assignee:u.z.object({id:u.z.string(),name:u.z.string().nullable(),email:u.z.string()}).strict().nullable()}).strict(),or=u.z.object({assigneeId:u.z.string().nullable().nullable().optional(),content:u.z.string().min(1).max(1e4).describe(`Comment content`),info:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict();u.z.object({items:u.z.array(ar),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var sr=u.z.object({limit:u.z.number().min(1).max(100).describe(`Max results`),offset:u.z.number().min(0).describe(`Result offset`),sort:u.z.enum([`createdAt`,`updatedAt`]).describe(`Sort field`),order:u.z.enum([`asc`,`desc`]).describe(`Sort order`)}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),taskId:u.z.string().min(1).describe(`Task ID or slug`),commentId:u.z.string().min(1).describe(`Comment ID`)}).strict();var cr=u.z.object({assigneeId:u.z.string().nullable().nullable().optional(),content:u.z.string().min(1).max(1e4).optional().describe(`Comment content`),info:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict();u.z.object({mcpServers:u.z.object({})}).strict(),u.z.object({projectId:u.z.string().min(1)}).strict(),u.z.object({id:u.z.string(),projectId:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string(),serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),isEnabled:u.z.boolean().nullable(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({projectId:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string().min(1),serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().nullable().optional(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({serverName:u.z.string(),isEnabled:u.z.boolean(),disabledTools:u.z.array(u.z.string()).nullable(),disabledResources:u.z.array(u.z.string()).nullable(),serverConfig:u.z.object({}),priority:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1),id:u.z.string().min(1)}).strict(),u.z.object({serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().nullable().optional(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`),workUnitId:u.z.string().min(1).describe(`Work unit ID or slug`)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`)}).strict(),u.z.object({title:u.z.string().min(1).max(255).describe(`Work unit title`),slug:u.z.string().optional().describe(`Work unit slug`),description:u.z.string().nullable().optional(),projectId:u.z.string().min(1).optional(),parentWorkUnitId:u.z.string().nullable().optional(),type:u.z.enum([`epic`,`feature`,`initiative`]).nullable().optional(),priority:u.z.enum([`low`,`medium`,`high`]).nullable().optional(),statusId:u.z.string().nullable().optional(),status:u.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`]).nullable().optional(),ownerId:u.z.string().min(1).optional().describe(`Owner member ID`),estimatedEffort:u.z.number().min(0).max(9007199254740991).int().nullable().optional(),startDate:u.z.string().nullable().optional(),targetDate:u.z.string().nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({items:u.z.array(gn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var lr=u.z.object({limit:u.z.number().min(1).max(100).describe(`Max results`),offset:u.z.number().min(0).describe(`Result offset`),search:u.z.string().optional().describe(`Search work units`),sort:u.z.enum([`createdAt`,`updatedAt`,`title`,`priority`,`targetDate`]).describe(`Sort field`),order:u.z.enum([`asc`,`desc`]).describe(`Sort order`),type:u.z.enum([`epic`,`feature`,`initiative`]).optional().describe(`Work unit type`),priority:u.z.enum([`low`,`medium`,`high`]).optional().describe(`Work unit priority`),statuses:u.z.array(u.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`])).optional().describe(`Comma-separated work unit statuses`),statusId:u.z.string().optional().describe(`Kanban status ID`),excludeStatus:u.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`]).optional().describe(`Exclude status`),ownerId:u.z.string().optional().describe(`Owner member ID`),parentWorkUnitId:u.z.string().optional().describe(`Parent work unit ID`)}).strict();u.z.object({progress:u.z.number().describe(`Overall progress percentage (0-100)`),completedTasks:u.z.number().describe(`Number of completed direct tasks`),totalTasks:u.z.number().describe(`Total number of direct tasks`),completedChildWorkUnits:u.z.number().describe(`Number of completed child work units`),totalChildWorkUnits:u.z.number().describe(`Total number of child work units`)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`),taskId:u.z.string().min(1)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`)}).strict();var ur=u.z.object({title:u.z.string().min(1).max(255).describe(`Task title`),slug:u.z.string().optional().describe(`Task slug`),description:u.z.string().nullable().optional(),projectId:u.z.string().min(1).optional(),workUnitId:u.z.string().nullable().optional(),statusId:u.z.string().min(1).optional(),assigneeId:u.z.string().nullable().optional(),position:u.z.number().min(0).max(9007199254740991).int().optional().describe(`Task position`),priority:u.z.enum([`low`,`medium`,`high`]).optional().describe(`Task priority`),dueDate:u.z.string().nullable().optional(),acceptanceCriteria:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),tags:u.z.array(u.z.string()).nullable().nullable().optional()}).strict(),dr=u.z.object({columnId:u.z.string().min(1),position:u.z.number().min(0).max(9007199254740991).int()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1)}).strict();var fr=u.z.object({sessionId:u.z.string().optional(),transportType:u.z.string().optional()}).strict(),pr=u.z.object({id:u.z.string(),environmentId:u.z.string(),key:u.z.string(),value:u.z.string(),description:u.z.string().nullable(),isSecret:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.array(pr),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`),environmentId:u.z.string().min(1)}).strict(),u.z.object({}),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`),environmentId:u.z.string().min(1),key:u.z.string().min(1)}).strict(),u.z.object({value:u.z.string().min(1),description:u.z.string().optional(),isSecret:u.z.boolean()}).strict(),u.z.object({entries:u.z.array(u.z.object({key:u.z.string().min(1).max(255),value:u.z.string().min(1),description:u.z.string().optional(),isSecret:u.z.boolean()}).strict())}).strict();var mr=u.z.object({id:u.z.string(),projectId:u.z.string(),name:u.z.string(),key:u.z.string(),type:u.z.string(),description:u.z.string().nullable(),isDefault:u.z.boolean(),permissions:u.z.string(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.array(mr);var hr=u.z.object({read:u.z.array(u.z.string()),write:u.z.array(u.z.string())}).strict();u.z.object({name:u.z.string().min(1).max(255),key:u.z.string().min(1).max(255),type:u.z.enum([`development`,`staging`,`production`,`custom`]),description:u.z.string().nullable().optional(),isDefault:u.z.boolean(),permissions:hr.optional()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`),environmentId:u.z.string().min(1)}).strict(),u.z.object({name:u.z.string().min(1).max(255).optional(),key:u.z.string().min(1).max(255).optional(),type:u.z.enum([`development`,`staging`,`production`,`custom`]).optional(),description:u.z.string().nullable().optional(),isDefault:u.z.boolean().optional(),permissions:hr.optional()}).strict(),u.z.object({message:u.z.string()}).strict();var gr=u.z.object({id:u.z.string(),organizationId:u.z.string(),projectId:u.z.string(),workUnitId:u.z.string().nullable(),taskId:u.z.string().nullable(),deviceId:u.z.string().nullable(),daemonId:u.z.string().nullable(),name:u.z.string(),status:u.z.enum([`running`,`completed`,`failed`]),contextData:u.z.string().nullable(),error:u.z.string().nullable(),startedAt:u.z.string(),completedAt:u.z.string().nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),_r=u.z.object({id:u.z.string(),name:u.z.string(),startedAt:u.z.string()}).strict();u.z.object({error:u.z.string(),holder:_r}).strict(),u.z.object({name:u.z.string().min(1),workUnitId:u.z.string().optional(),taskId:u.z.string().optional(),deviceId:u.z.string().optional(),daemonId:u.z.string().optional(),contextData:u.z.string().optional()}).strict(),u.z.object({items:u.z.array(gr),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var vr=u.z.object({status:u.z.enum([`running`,`completed`,`failed`]).optional(),deviceId:u.z.string().optional(),daemonId:u.z.string().optional(),limit:u.z.number().min(1).max(100).optional(),offset:u.z.number().min(0).optional()}).strict(),yr=u.z.object({workUnitId:u.z.string().optional(),taskId:u.z.string().optional()}).strict();u.z.object({id:u.z.string().min(1)}).strict(),u.z.object({name:u.z.string().min(1).optional(),contextData:u.z.string().nullable().optional()}).strict(),u.z.object({status:u.z.enum([`completed`,`failed`]),error:u.z.string().optional()}).strict();var br=u.z.enum([`work-unit`,`task`]),xr=u.z.object({id:u.z.string(),kind:br,slug:u.z.string(),title:u.z.string(),description:u.z.string().nullable(),status:u.z.string(),priority:u.z.string().nullable(),createdAt:u.z.string(),payload:u.z.object({})}).strict();u.z.object({items:u.z.array(xr)}).strict();var Sr=u.z.object({jobKind:br,jobId:u.z.string().min(1),format:u.z.string()}).strict();u.z.object({claimed:u.z.boolean(),workflowId:u.z.string().optional(),job:xr.nullable().optional(),holder:u.z.object({id:u.z.string(),name:u.z.string(),deviceId:u.z.string().nullable(),startedAt:u.z.string()}).strict().optional()}).strict(),u.z.object({jobKind:br,jobId:u.z.string().min(1),name:u.z.string().min(1),deviceId:u.z.string().optional()}).strict(),u.z.object({released:u.z.boolean(),workflowId:u.z.string(),status:u.z.enum([`completed`,`failed`]),job:xr.nullable()}).strict(),u.z.object({workflowId:u.z.string().min(1),status:u.z.enum([`completed`,`failed`]),error:u.z.string().optional()}).strict();var Cr=u.z.object({key:u.z.string(),name:u.z.string(),color:u.z.string(),position:u.z.number()}).strict(),wr=u.z.object({id:u.z.string(),name:u.z.string(),description:u.z.string(),icon:u.z.string(),color:u.z.string(),isBuiltIn:u.z.boolean(),statusCount:u.z.number(),starterTaskCount:u.z.number(),statuses:u.z.array(Cr)}).strict();u.z.object({templates:u.z.array(wr)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1).describe(`Project ID or slug`)}).strict(),u.z.object({id:u.z.string(),name:u.z.string(),slug:u.z.string(),key:u.z.string(),description:u.z.string().nullable(),organizationId:u.z.string(),ownerId:u.z.string(),path:u.z.string().nullable(),templateId:u.z.string().nullable(),hooks:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),color:u.z.string().nullable(),icon:u.z.string().nullable(),isArchived:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({error:u.z.string(),message:u.z.string(),feature:u.z.enum([`seats`,`projects`,`apiKeys`,`mcpServers`]),plan:u.z.string(),limit:u.z.number(),used:u.z.number(),upgradeRequired:u.z.boolean()}).strict();var Tr=u.z.object({name:u.z.string().min(1).max(255).describe(`Project name`),slug:u.z.string().optional().describe(`Project slug`),description:u.z.string().nullable().optional(),organizationId:u.z.string().optional(),path:u.z.string().nullable().optional(),templateId:u.z.string().nullable().optional(),hooks:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),color:u.z.string().nullable().optional(),icon:u.z.string().nullable().optional()}).strict(),Er=u.z.object({id:u.z.string(),title:u.z.string(),value:u.z.number(),change:u.z.string(),trend:u.z.enum([`up`,`down`,`neutral`]),period:u.z.string()}).strict();u.z.object({activeProjects:u.z.number(),tasksInProgress:u.z.number(),completedTasks:u.z.number(),blockedTasks:u.z.number(),stats:u.z.array(Er)}).strict();var Dr=u.z.object({period:u.z.enum([`7`,`30`,`90`])}).strict();u.z.object({items:u.z.array(vn),total:u.z.number(),limit:u.z.number().optional(),offset:u.z.number().optional()}).strict();var Or=u.z.object({id:u.z.string(),name:u.z.string(),email:u.z.string(),role:u.z.string()}).strict().nullable(),kr=u.z.object({id:u.z.string(),name:u.z.string(),slug:u.z.string(),key:u.z.string(),description:u.z.string().nullable(),organizationId:u.z.string(),path:u.z.string().nullable(),templateId:u.z.string().nullable(),hooks:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),color:u.z.string().nullable(),icon:u.z.string().nullable(),isArchived:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string(),owner:Or}).strict();u.z.object({items:u.z.array(kr),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Ar=u.z.object({limit:u.z.number().min(1).max(100).describe(`Max results`),offset:u.z.number().min(0).describe(`Result offset`),search:u.z.string().optional().describe(`Search projects`),sort:u.z.enum([`createdAt`,`updatedAt`,`name`]).describe(`Sort field`),order:u.z.enum([`asc`,`desc`]).describe(`Sort order`)}).strict(),jr=u.z.object({name:u.z.string().min(1).max(255).optional().describe(`Project name`),slug:u.z.string().optional().describe(`Project slug`),description:u.z.string().nullable().optional(),organizationId:u.z.string().optional(),path:u.z.string().nullable().optional(),templateId:u.z.string().nullable().optional(),hooks:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),color:u.z.string().nullable().optional(),icon:u.z.string().nullable().optional(),isArchived:u.z.boolean().optional().describe(`Whether project is archived`)}).strict(),V=u.z.object({id:u.z.string(),key:u.z.string(),name:u.z.string(),status:u.z.enum([`pending`,`uploaded`]),size:u.z.number().nullable(),contentType:u.z.string().optional(),isPreviewable:u.z.boolean(),labels:u.z.array(u.z.string()).nullable().optional(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({items:u.z.array(V),total:u.z.number()}).strict(),u.z.object({url:u.z.string(),expiresIn:u.z.number()}).strict();var Mr=u.z.object({key:u.z.string().min(1)}).strict();u.z.object({url:u.z.string(),key:u.z.string(),artifact:V}).strict();var Nr=u.z.object({filename:u.z.string().min(1),contentType:u.z.string().optional()}).strict();u.z.object({artifact:V}).strict(),u.z.object({key:u.z.string().min(1)}).strict(),u.z.object({items:u.z.array(V)}).strict();var Pr=u.z.object({key:u.z.string().min(1),name:u.z.string().min(1),status:u.z.enum([`pending`,`uploaded`]),size:u.z.number().nullable().optional(),contentType:u.z.string().optional(),isPreviewable:u.z.boolean(),labels:u.z.array(u.z.string()).nullable().optional()}).strict();u.z.object({items:u.z.array(Pr)}).strict();var Fr=u.z.object({key:u.z.string().min(1)}).strict();u.z.object({balanceCents:u.z.number(),monthlyIncludedMinutes:u.z.number(),usedIncludedMinutes:u.z.number(),includedMinutesRemaining:u.z.number(),autoRechargeEnabled:u.z.boolean(),autoRechargeThresholdCents:u.z.number(),autoRechargeAmountCents:u.z.number(),overdraftLimitCents:u.z.number(),includedMinutesResetAt:u.z.string().nullable()}).strict(),u.z.object({organizationId:u.z.string().min(1)}).strict(),u.z.object({checkoutUrl:u.z.string().url(),sessionId:u.z.string()}).strict(),u.z.object({amountCents:u.z.number().min(500).max(1e5),successUrl:u.z.string().url(),cancelUrl:u.z.string().url()}).strict(),u.z.object({enabled:u.z.boolean(),thresholdCents:u.z.number().min(0).max(1e5).optional(),amountCents:u.z.number().min(500).max(1e5).optional()}).strict();var Ir=u.z.object({id:u.z.string(),type:u.z.enum([`top_up`,`auto_recharge`,`usage`,`refund`,`subscription_credit`,`adjustment`]),amountCents:u.z.number(),balanceAfterCents:u.z.number(),usageMinutes:u.z.number().nullable(),pricePerMinuteCents:u.z.number().nullable(),referenceType:u.z.string().nullable(),referenceId:u.z.string().nullable(),createdAt:u.z.string()}).strict();u.z.object({items:u.z.array(Ir),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Lr=u.z.object({limit:u.z.number().min(1).max(100).optional(),offset:u.z.number().min(0).optional(),type:u.z.enum([`top_up`,`auto_recharge`,`usage`,`refund`,`subscription_credit`,`adjustment`]).optional(),startDate:u.z.string().optional(),endDate:u.z.string().optional()}).strict();u.z.object({periodStart:u.z.string(),periodEnd:u.z.string(),totalMinutes:u.z.number(),includedMinutesUsed:u.z.number(),paidMinutesUsed:u.z.number(),totalChargedCents:u.z.number(),sandboxCount:u.z.number()}).strict();var Rr=u.z.object({startDate:u.z.string().min(1),endDate:u.z.string().min(1)}).strict(),zr=u.z.object({planKey:u.z.string(),name:u.z.string(),pricePerSeatCents:u.z.number(),billingInterval:u.z.enum([`month`,`year`]),includedMinutesPerSeat:u.z.number(),stripePriceId:u.z.string().nullable()}).strict();u.z.object({plans:u.z.array(zr)}).strict(),u.z.object({hasSubscription:u.z.boolean(),planKey:u.z.string().nullable(),planName:u.z.string().nullable(),seatCount:u.z.number(),memberCount:u.z.number(),currentPeriodStart:u.z.string().nullable(),currentPeriodEnd:u.z.string().nullable(),cancelAtPeriodEnd:u.z.boolean(),stripeSubscriptionId:u.z.string().nullable(),includedMinutes:u.z.number(),usedMinutes:u.z.number(),remainingMinutes:u.z.number()}).strict(),u.z.object({redirectUrl:u.z.string().nullable(),sessionId:u.z.string().nullable()}).strict(),u.z.object({planKey:u.z.string().min(1),discountCode:u.z.string().optional()}).strict(),u.z.object({currentSeats:u.z.number(),newSeats:u.z.number(),amountDue:u.z.number().nullable(),subtotal:u.z.number().nullable(),total:u.z.number().nullable(),prorationDate:u.z.number().nullable()}).strict();var Br=u.z.object({seatCount:u.z.number().min(1)}).strict();u.z.object({success:u.z.boolean(),newSeatCount:u.z.number(),includedMinutes:u.z.number()}).strict(),u.z.object({seatCount:u.z.number().min(1)}).strict(),u.z.object({success:u.z.boolean(),cancelAtPeriodEnd:u.z.boolean(),periodEnd:u.z.string().nullable()}).strict(),u.z.object({success:u.z.boolean(),message:u.z.string()}).strict(),u.z.object({plan:u.z.string(),projects:u.z.object({used:u.z.number(),limit:u.z.number()}).strict(),apiKeys:u.z.object({used:u.z.number(),limit:u.z.number()}).strict(),mcpServers:u.z.object({used:u.z.number(),limit:u.z.number()}).strict(),seats:u.z.object({used:u.z.number(),limit:u.z.number()}).strict()}).strict();var Vr=u.z.object({id:u.z.string(),agentSessionId:u.z.string(),workUnitId:u.z.string().nullable(),taskId:u.z.string().nullable(),projectId:u.z.string(),organizationId:u.z.string(),sandboxInstanceId:u.z.string().nullable(),containerId:u.z.string().nullable(),processId:u.z.string().nullable(),status:u.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]),autoTerminate:u.z.boolean(),timeoutMinutes:u.z.number().min(-9007199254740991).max(9007199254740991).int(),command:u.z.string(),workingDirectory:u.z.string().nullable(),exitCode:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),previewUrl:u.z.string().nullable(),errorMessage:u.z.string().nullable(),startedAt:u.z.string().nullable(),completedAt:u.z.string().nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),agentSession:u.z.object({id:u.z.string(),status:u.z.string(),currentAgentType:u.z.string().nullable()}).strict().nullable().optional(),workUnit:u.z.object({id:u.z.string(),title:u.z.string(),status:u.z.string()}).strict().nullable().optional(),project:u.z.object({id:u.z.string(),name:u.z.string()}).strict().nullable().optional()}).strict();u.z.object({items:u.z.array(Vr),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1)}).strict();var Hr=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),status:u.z.union([u.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]),u.z.array(u.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]))]).optional(),projectId:u.z.string().optional(),workUnitId:u.z.string().optional(),agentSessionId:u.z.string().optional()}).strict();u.z.object({id:u.z.string(),status:u.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]),sandboxInstanceId:u.z.string().nullable(),containerId:u.z.string().nullable(),previewUrl:u.z.string().nullable(),exitCode:u.z.number().nullable(),errorMessage:u.z.string().nullable(),startedAt:u.z.string().nullable(),completedAt:u.z.string().nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),sandboxId:u.z.string().min(1)}).strict(),u.z.object({message:u.z.string(),sandboxId:u.z.string(),status:u.z.string()}).strict(),u.z.object({message:u.z.string(),port:u.z.number(),url:u.z.string().optional()}).strict(),u.z.object({organizationId:u.z.string().min(1),sandboxId:u.z.string().min(1),port:u.z.number().min(1024).max(65535).int()}).strict(),u.z.object({message:u.z.string(),port:u.z.number()}).strict();var Ur=u.z.object({port:u.z.number(),url:u.z.string().optional()}).strict();u.z.object({ports:u.z.array(Ur)}).strict(),u.z.object({organizationId:u.z.string().min(1),sandboxId:u.z.string().min(1)}).strict(),u.z.object({organizationId:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({received:u.z.boolean(),duplicate:u.z.boolean().optional(),ignored:u.z.boolean().optional()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({priceKey:u.z.string().min(1).describe(`Stripe price lookup key`),mode:u.z.enum([`payment`,`subscription`]).describe(`Checkout mode`),discountCode:u.z.string().optional().describe(`Optional discount/promotion code`)}).strict(),u.z.object({redirectUrl:u.z.string().url().describe(`URL to redirect user to Stripe checkout`)}).strict(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({sessionId:u.z.string().min(1),organizationId:u.z.string()}),u.z.object({id:u.z.string().describe(`Session ID`),status:u.z.string().nullable().describe(`Session status`),payment_status:u.z.string().describe(`Payment status`),invoice:u.z.object({}).nullable().describe(`Invoice details`)}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({url:u.z.string().url().describe(`URL to Stripe billing portal`)}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({id:u.z.string().describe(`Customer ID`),customerId:u.z.string().nullable().describe(`Stripe customer ID (null for free tier without payment info)`),organizationId:u.z.string().describe(`Organization ID`),email:u.z.string().nullable().describe(`Customer email`),name:u.z.string().nullable().describe(`Customer name`),subscriptionId:u.z.string().nullable().describe(`Active subscription ID`),subscriptionStatus:u.z.string().nullable().describe(`Current subscription status`),planKey:u.z.enum([`free`,`basic_monthly`,`basic_yearly`]).describe(`Current subscription plan`),seatCount:u.z.number().describe(`Number of seats in subscription`),currentPeriodEnd:u.z.string().nullable().describe(`End date of current billing period (renewal date)`),cancelAtPeriodEnd:u.z.boolean().describe(`Whether subscription is scheduled to cancel at period end`),createdAt:u.z.string().describe(`Customer creation date`),updatedAt:u.z.string().describe(`Customer last update date`)}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({received:u.z.boolean(),duplicate:u.z.boolean().optional(),ignored:u.z.boolean().optional()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...dn.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...z.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...z.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...z.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...z.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...z.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...z.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({...pn.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),serverName:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...B.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...B.shape}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...B.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...B.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var Wr=u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),Gr=u.z.object({...lr.shape});u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict();var H=u.z.object({organizationId:u.z.string(),projectId:u.z.string(),workUnitId:u.z.string()});u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),workUnitId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),workUnitId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),workUnitId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict();var Kr=u.z.object({organizationId:u.z.string()});u.z.object({...yn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...xn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Cn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...wn.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string(),type:u.z.string()}),u.z.object({...Dn.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string(),type:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string(),key:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string(),key:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string(),key:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),provider:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),provider:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),provider:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),provider:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),provider:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({...jn.shape}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),owner:u.z.string(),repo:u.z.string()}),u.z.object({...Nn.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1)}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string()}),u.z.object({...In.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),deviceId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({...In.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1)}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1)}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1)}),u.z.object({error:u.z.string()}).strict();var qr=u.z.object({organizationId:u.z.string().min(1)}),Jr=u.z.object({...Bn.shape});u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string()}),u.z.object({...Un.shape}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string(),userId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string()}),u.z.object({...Gn.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...qn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Yn.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({stats:u.z.array(u.z.object({activityType:u.z.string(),count:u.z.number()}).strict()),total:u.z.number()}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0)}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.array(Xn),u.z.array(Jn),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),activityId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),activityId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),activityId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict();var Yr=u.z.object({organizationId:u.z.string()}),Xr=u.z.object({...Qn.shape});u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({period:u.z.enum([`7d`,`30d`,`3m`,`12m`])}),u.z.object({items:u.z.array(u.z.object({period:u.z.string(),aiCompleted:u.z.number(),humanCompleted:u.z.number(),totalTasks:u.z.number(),totalCost:u.z.number()}).strict()),summary:u.z.object({totalCost:u.z.number(),totalTasks:u.z.number(),monthlyGrowth:u.z.number()}).strict()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.object({...tr.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.object({...nr.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),statusId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict();var Zr=u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),Qr=u.z.object({...Qn.shape});u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict();var $r=u.z.object({organizationId:u.z.string(),projectId:u.z.string(),taskId:u.z.string()});u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var ei=u.z.object({organizationId:u.z.string(),projectId:u.z.string(),taskId:u.z.string()});u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var ti=u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),ni=u.z.object({...sr.shape});u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var ri=u.z.object({organizationId:u.z.string(),taskId:u.z.string(),commentId:u.z.string()});u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),commentId:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),commentId:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({...fr.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string(),key:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string(),key:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string(),key:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),projectId:u.z.string().min(1)}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),projectId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({...vr.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({...yr.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({...Sr.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict();var ii=u.z.object({organizationId:u.z.string()}),ai=u.z.object({...Ar.shape});u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({...Dr.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var oi=u.z.object({organizationId:u.z.string(),id:u.z.string()});u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({...Fr.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({...Mr.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({...Nr.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Lr.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Rr.shape}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Br.shape}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Hr.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string(),port:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string(),port:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var si=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/members`,{method:`GET`,params:e,query:t})).data,ci=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/members/agents`,{method:`POST`,params:e,body:t})).data,li=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments`,{method:`GET`,params:e,query:t})).data,ui=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments`,{method:`POST`,params:e,body:t})).data,di=async e=>(await M.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments/{commentId}`,{method:`GET`,params:e})).data,fi=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments/{commentId}`,{method:`PATCH`,params:e,body:t})).data,pi=async e=>(await M.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments/{commentId}`,{method:`DELETE`,params:e})).data,mi=async(e,t)=>(await M.request(`/api/v1/organizations/{organizationId}/task-statuses`,{method:`GET`,params:e,query:t})).data,hi=`AGIFLOW_ORGANIZATION_ID`,gi=`AGIFLOW_PROJECT_ID`,_i=`AGIFLOW_TASK_ID`,vi=`AGIFLOW_WORK_UNIT_ID`,yi=u.z.object({format:u.z.literal(`json`).default(`json`).describe(`Output format`)}),bi=u.z.object({tasksJson:u.z.string().min(1).describe(`Array of task objects or { "tasks": [...] }`)}),xi=u.z.object({workUnitsJson:u.z.string().min(1).describe(`Array of work unit objects or { "workUnits": [...] }`)}),Si=u.z.object({status:u.z.string().optional().describe(`Task status name, key, or ID`),assignee:u.z.string().optional().describe(`Assignee member ID, name, or email`),workUnit:u.z.string().optional().describe(`Work unit ID`),acceptanceCriteriaJson:u.z.string().optional().describe(`Acceptance criteria JSON`),testCasesJson:u.z.string().optional().describe(`Test cases JSON`),devInfoJson:u.z.string().optional().describe(`Development info JSON`)}),Ci=u.z.object({status:u.z.string().optional().describe(`Comma-separated status names, keys, or IDs`),assignee:u.z.string().optional().describe(`Assignee member ID, name, or email`),workUnit:u.z.string().optional().describe(`Work unit ID`)}),wi=u.z.object({devInfoJson:u.z.string().optional().describe(`Development info JSON`),testCasesJson:u.z.string().optional().describe(`Test cases JSON`)}),Ti=u.z.object({assignee:u.z.string().optional().describe(`Assignee member ID, name, or email`),infoJson:u.z.string().optional().describe(`Comment info JSON`)}),U=()=>({name:`org`,source:`organizationId`,envVar:hi}),W=(e=`projectId`)=>({name:`project`,source:e,valueName:`projectIdOrSlug`,envVar:gi}),G=()=>({name:`task`,source:`taskId`,valueName:`taskIdOrSlug`,envVar:_i}),K=()=>({name:`workUnit`,source:`workUnitId`,flag:`--work-unit`,valueName:`workUnitIdOrSlug`,envVar:vi}),q=(...e)=>e,J=(e=[],t={})=>[{name:`limit`,required:!1,defaultValue:t.limit??`20`},{name:`offset`,required:!1,defaultValue:t.offset??`0`},{name:`search`,required:!1},{name:`sort`,required:!1,defaultValue:t.sort??`createdAt`},{name:`order`,required:!1,defaultValue:t.order??`desc`},...e.map(e=>({...e,required:e.required??!1}))],Y=(e,t)=>Kt.for(e).fromSchemaGroups([...t,{schema:yi,options:[{name:`format`,required:!1,defaultValue:`json`}]}]),X=e=>{let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t},Ei=(e,t)=>{let n=e&&typeof e==`object`&&t in e?e[t]:e;if(!Array.isArray(n))throw Error(`Expected ${t} JSON to be an array or an object containing ${t}.`);return n.map((e,n)=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t}[${n}] must be an object.`);return e})},Z=class extends N{async resolveOrgOption(e){return this.resolveOrganizationId(e.org)}async resolveProjectOption(e){return this.resolveProjectIdOption(e.project)}async resolveProjectRoute(e){let t=await this.resolveOrgOption(e),n=await this.resolveProjectOption(e);return{org:t,projectId:await this.resolveProjectId(t,n)}}async resolveTaskOption(e){return this.resolveTaskIdOption(e.task)}async resolveWorkUnitOption(e){return this.resolveWorkUnitIdOption(e.workUnit)}async resolveProjectId(e,t){return(await gt({organizationId:e,id:t})).id}async resolveStatusId(e,t){let n=(await mi({organizationId:e})).items??[],r=t.toLowerCase(),i=n.find(e=>e.id===t||e.key.toLowerCase()===r||e.name.toLowerCase()===r);if(!i)throw Error(`Task status "${t}" was not found.`);return i.id}async resolveMemberId(e,t){if(!t)return;let n=await si({organizationId:e},{limit:100,offset:0,sortBy:`createdAt`,sortDirection:`desc`}),r=t.toLowerCase(),i=n.members.find(e=>{let n=e.member?.id,i=e.user?.name?.toLowerCase(),a=e.user?.email?.toLowerCase();return n===t||i===r||a===r});if(!i?.member?.id)throw Error(`Member "${t}" was not found.`);return i.member.id}baseListOptions(e){return X({limit:this.parseNumber(e.limit,20),offset:this.parseNumber(e.offset,0),sort:e.sort,order:e.order,search:e.search})}},Di=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`project`).description(`Project JSON commands`);Y(t.command(`create`).description(`Create a project`),q({schema:ii,options:[U()]},{schema:Tr,options:[{name:`name`},{name:`description`},{name:`slug`},{name:`path`},{name:`color`},{name:`icon`}]})).action(e=>this.create(e)),Y(t.command(`list`).description(`List projects`),q({schema:ii,options:[U()]},{schema:ai,options:J()})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a project by ID or slug`),q({schema:oi,options:[U(),W(`projectIdOrSlug`)]})).action(e=>this.get(e)),Y(t.command(`update`).description(`Update a project`),q({schema:oi,options:[U(),W(`projectIdOrSlug`)]},{schema:jr,options:[{name:`name`},{name:`description`},{name:`slug`},{name:`path`},{name:`color`},{name:`icon`},{name:`archived`,source:`isArchived`}]})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a project`),q({schema:oi,options:[U(),W(`projectIdOrSlug`)]})).action(e=>this.delete(e))}async create(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=X({name:e.name,description:e.description,slug:e.slug,path:e.path,color:e.color,icon:e.icon}),r=await ht({organizationId:t},n);this.printJson({project:r})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=this.baseListOptions(e),r=await mt({organizationId:t},n);this.printJson({projects:r.items,total:r.total,limit:r.limit,offset:r.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await gt({organizationId:await this.resolveOrgOption(e),id:await this.resolveProjectOption(e)});this.printJson({project:t})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveProjectOption(e),r=await this.resolveProjectId(t,n),i=X({name:e.name,description:e.description,slug:e.slug,path:e.path,color:e.color,icon:e.icon,isArchived:e.archived===!0?!0:void 0}),a=await _t({organizationId:t,id:r},i);this.printJson({project:a})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveProjectOption(e),r=await this.resolveProjectId(t,n);await vt({organizationId:t,id:r}),this.printJson({deleted:!0,project:{id:r}})})}};Di=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],Di);var Oi=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`task`).description(`Task JSON commands`),n=[U(),W()],r=[{name:`title`},{name:`description`},{name:`priority`},{name:`position`},{name:`dueDate`,flag:`--due-date`},{name:`tags`}],i=[{name:`status`},{name:`assignee`},{name:`workUnit`,flag:`--work-unit`},{name:`acceptanceCriteriaJson`,flag:`--acceptance-criteria-json`},{name:`testCasesJson`,flag:`--test-cases-json`},{name:`devInfoJson`,flag:`--dev-info-json`}];Y(t.command(`create`).description(`Create a task`),q({schema:Zr,options:n},{schema:ur,options:r},{schema:Si,options:i})).action(e=>this.create(e)),Y(t.command(`batch-create`).description(`Create multiple tasks`),q({schema:Zr,options:n},{schema:bi,options:[{name:`tasksJson`,flag:`--tasks-json`}]})).action(e=>this.batchCreate(e)),Y(t.command(`list`).description(`List project tasks`),q({schema:Zr,options:n},{schema:Qr,options:J([{name:`statusFilter`,flag:`--status-filter`},{name:`priority`},{name:`tags`}])},{schema:Ci,options:[{name:`status`},{name:`assignee`},{name:`workUnit`,flag:`--work-unit`}]})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a task by ID or slug`),q({schema:$r,options:[...n,G()]})).action(e=>this.get(e)),Y(t.command(`active`).description(`List active organization tasks`),q({schema:Yr,options:[U()]},{schema:Xr,options:J([{name:`project`,source:`projectId`},{name:`priority`},{name:`assigneeId`,flag:`--assignee-id`}])})).action(e=>this.active(e)),Y(t.command(`update`).description(`Update a task`),q({schema:$r,options:[...n,G()]},{schema:$n,options:r},{schema:Si,options:i})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a task`),q({schema:$r,options:[...n,G()]})).action(e=>this.delete(e)),Y(t.command(`reorder`).description(`Reorder tasks within a status`),q({schema:Yr,options:[U()]},{schema:u.z.object({status:u.z.string().min(1).describe(`Status name, key, or ID`)}),options:[{name:`status`}]},{schema:ir,options:[{name:`taskIds`,flag:`--task-ids`,parse:`csv`}]})).action(e=>this.reorder(e)),Y(t.command(`move`).description(`Move a task to a different column/position`),q({schema:ei,options:[...n,G()]},{schema:dr,options:[{name:`column`,source:`columnId`},{name:`position`}]})).action(e=>this.move(e)),Y(t.command(`status`).description(`Task status commands`).command(`list`).description(`List available task statuses`),q({schema:Kr,options:[U()]})).action(e=>this.statusList(e))}async buildTaskPayload(e){let t=typeof e.status==`string`?e.status:void 0,n=typeof e.assignee==`string`?e.assignee:void 0,r=String(e.org),i=t?await this.resolveStatusId(r,t):void 0,a=await this.resolveMemberId(r,n);return X({title:e.title,description:e.description,statusId:i,priority:e.priority,position:typeof e.position==`string`?this.parseNumber(e.position,0):e.position,dueDate:e.dueDate,tags:this.parseCsv(typeof e.tags==`string`?e.tags:void 0),assigneeId:a,workUnitId:e.workUnit??e.workUnitId,acceptanceCriteria:this.parseJsonFlag(typeof e.acceptanceCriteriaJson==`string`?e.acceptanceCriteriaJson:void 0,`--acceptance-criteria-json`),testCases:this.parseJsonFlag(typeof e.testCasesJson==`string`?e.testCasesJson:void 0,`--test-cases-json`),devInfo:this.parseJsonFlag(typeof e.devInfoJson==`string`?e.devInfoJson:void 0,`--dev-info-json`)})}async create(e){await this.runJsonOnly(async()=>{if(this.requireJsonFormat(e.format,`task commands`),await this.setupClient(),!e.title)throw Error(`--title is required.`);let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await kt({organizationId:t,projectId:n},await this.buildTaskPayload({...e,org:t}));this.printJson({task:r})})}async batchCreate(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=Ei(this.parseJsonFlag(e.tasksJson,`--tasks-json`),`tasks`),i=[];for(let e of r){let r=await kt({organizationId:t,projectId:n},await this.buildTaskPayload({...e,org:t}));i.push(r)}this.printJson({tasks:i,total:i.length})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=this.parseCsv(e.status),i=r?await Promise.all(r.map(e=>this.resolveStatusId(t,e))):void 0,a=await this.resolveMemberId(t,e.assignee),o=X({...this.baseListOptions(e),statusFilter:e.statusFilter,columnId:i?.length===1?i[0]:void 0,statusIds:i,workUnitId:e.workUnit,assigneeId:a,priority:e.priority,tags:this.parseCsv(e.tags)}),s=await Ot({organizationId:t,projectId:n},o);this.printJson({tasks:s.items,total:s.total,limit:s.limit,offset:s.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await At({organizationId:t,projectId:n,taskId:await this.resolveTaskOption(e)});this.printJson({task:r})})}async active(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=X({...this.baseListOptions(e),statusFilter:`active`,priority:e.priority,assigneeId:e.assigneeId});if(e.project){let r=await Ot({organizationId:t,projectId:await this.resolveProjectId(t,e.project)},n);this.printJson({tasks:r.items,total:r.total,limit:r.limit,offset:r.offset});return}let r=await Tt({organizationId:t},n);this.printJson({tasks:r.items,total:r.total,limit:r.limit,offset:r.offset})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await jt({organizationId:t,projectId:n,taskId:await this.resolveTaskOption(e)},await this.buildTaskPayload({...e,org:t}));this.printJson({task:r})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await this.resolveTaskOption(e);await Mt({organizationId:t,projectId:n,taskId:r}),this.printJson({deleted:!0,task:{id:r}})})}async reorder(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveStatusId(t,e.status),r=this.parseCsv(e.taskIds);if(!r?.length)throw Error(`--task-ids must contain at least one task ID.`);await Dt({organizationId:t,statusId:n},{taskIds:r}),this.printJson({reordered:!0,statusId:n,taskIds:r})})}async move(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await this.resolveTaskOption(e);if(!e.column)throw Error(`--column is required.`);let i={columnId:e.column,position:this.parseNumber(e.position,0)},a=await Nt({organizationId:t,projectId:n,taskId:r},i);this.printJson({task:a})})}async statusList(e){await this.runJsonOnly(async()=>{await this.setupClient();let t=await mi({organizationId:await this.resolveOrgOption(e)});if(e.format===`table`){let e=t.items??[],n=[`id`,`key`,`name`],r=e.map(e=>[e.id,e.key,e.name]);console.log(n.join(` `));for(let e of r)console.log(e.join(` `));return}this.printJson({statuses:t.items,total:t.total})})}};Oi=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],Oi);var ki=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`work-unit`).description(`Work unit JSON commands`),n=[U(),W()],r=[{name:`title`},{name:`description`},{name:`type`},{name:`priority`},{name:`status`},{name:`ownerId`,flag:`--owner-id`},{name:`parentWorkUnitId`,flag:`--parent-work-unit-id`},{name:`estimatedEffort`,flag:`--estimated-effort`},{name:`startDate`,flag:`--start-date`},{name:`targetDate`,flag:`--target-date`}];Y(t.command(`batch-create`).description(`Create multiple work units`),q({schema:Wr,options:n},{schema:xi,options:[{name:`workUnitsJson`,flag:`--work-units-json`}]})).action(e=>this.batchCreate(e)),Y(t.command(`list`).description(`List project work units`),q({schema:Wr,options:n},{schema:Gr,options:J([{name:`status`,source:`statuses`},{name:`excludeStatus`,flag:`--exclude-status`},{name:`type`},{name:`priority`},{name:`ownerId`,flag:`--owner-id`},{name:`parentWorkUnitId`,flag:`--parent-work-unit-id`}])})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a work unit by ID or slug`),q({schema:H,options:[...n,K()]})).action(e=>this.get(e)),Y(t.command(`update`).description(`Update a work unit`),q({schema:H,options:[...n,K()]},{schema:_n,options:r},{schema:wi,options:[{name:`devInfoJson`,flag:`--dev-info-json`},{name:`testCasesJson`,flag:`--test-cases-json`}]})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a work unit`),q({schema:H,options:[...n,K()]})).action(e=>this.delete(e)),Y(t.command(`progress`).description(`Get work unit progress`),q({schema:H,options:[...n,K()]})).action(e=>this.progress(e))}buildPayload(e){return X({title:e.title,description:e.description,type:e.type,priority:e.priority,status:e.status,ownerId:e.ownerId,parentWorkUnitId:e.parentWorkUnitId,estimatedEffort:typeof e.estimatedEffort==`string`?this.parseNumber(e.estimatedEffort,0):e.estimatedEffort,startDate:e.startDate,targetDate:e.targetDate,devInfo:this.parseJsonFlag(typeof e.devInfoJson==`string`?e.devInfoJson:void 0,`--dev-info-json`),testCases:this.parseJsonFlag(typeof e.testCasesJson==`string`?e.testCasesJson:void 0,`--test-cases-json`)})}async batchCreate(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=Ei(this.parseJsonFlag(e.workUnitsJson,`--work-units-json`),`workUnits`),i=[];for(let e of r){let r=await It({organizationId:t,projectId:n},this.buildPayload(e)),a=Array.isArray(e.taskIds)?e.taskIds.filter(e=>typeof e==`string`):[];for(let e of a)await jt({organizationId:t,projectId:n,taskId:e},{workUnitId:r.id});i.push(r)}this.printJson({workUnits:i,total:i.length})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=X({...this.baseListOptions(e),statuses:this.parseCsv(e.status),excludeStatus:e.excludeStatus,type:e.type,priority:e.priority,ownerId:e.ownerId,parentWorkUnitId:e.parentWorkUnitId}),i=await Ft({organizationId:t,projectId:n},r);this.printJson({workUnits:i.items,total:i.total,limit:i.limit,offset:i.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await Lt({organizationId:t,projectId:n,workUnitId:await this.resolveWorkUnitOption(e)});this.printJson({workUnit:r})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await Rt({organizationId:t,projectId:n,workUnitId:await this.resolveWorkUnitOption(e)},this.buildPayload(e));this.printJson({workUnit:r})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await this.resolveWorkUnitOption(e);await zt({organizationId:t,projectId:n,workUnitId:r}),this.printJson({deleted:!0,workUnit:{id:r}})})}async progress(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await Bt({organizationId:t,projectId:n,workUnitId:await this.resolveWorkUnitOption(e)});this.printJson({progress:r})})}};ki=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],ki);var Ai=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`member`).description(`Agent member JSON commands`);Y(t.command(`list`).description(`List agent members`),q({schema:qr,options:[U()]},{schema:Jr,options:[{name:`limit`,required:!1,defaultValue:`100`},{name:`offset`,required:!1,defaultValue:`0`}]})).action(e=>this.list(e)),Y(t.command(`create`).description(`Create an agent member`),q({schema:qr,options:[U()]},{schema:Vn,options:[{name:`email`},{name:`name`},{name:`description`},{name:`prompt`}]})).action(e=>this.create(e))}normalizeMembers(e){return e.filter(e=>e.member?.role===`agent`)}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`member commands`),await this.setupClient();let t=await si({organizationId:await this.resolveOrgOption(e)},{limit:this.parseNumber(e.limit,100),offset:this.parseNumber(e.offset,0),sortBy:`createdAt`,sortDirection:`desc`,filterField:`role`,filterOperator:`eq`,filterValue:`agent`});this.printJson({members:this.normalizeMembers(t.members),total:t.total,limit:t.limit,offset:t.offset})})}async create(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`member commands`),await this.setupClient();let t=await ci({organizationId:await this.resolveOrgOption(e)},{agents:[X({email:e.email,name:e.name,description:e.description,prompt:e.prompt})]});this.printJson({member:t.created[0]??null,errors:t.errors??[]})})}};Ai=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],Ai);var ji=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`task-comment`).description(`Task comment JSON commands`),n=[U(),G()];Y(t.command(`create`).description(`Create a task comment`),q({schema:ti,options:n},{schema:or,options:[{name:`content`}]},{schema:Ti,options:[{name:`assignee`},{name:`infoJson`,flag:`--info-json`}]})).action(e=>this.create(e)),Y(t.command(`list`).description(`List task comments`),q({schema:ti,options:n},{schema:ni,options:[{name:`limit`,required:!1,defaultValue:`20`},{name:`offset`,required:!1,defaultValue:`0`},{name:`sort`,required:!1,defaultValue:`createdAt`},{name:`order`,required:!1,defaultValue:`asc`}]})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a task comment`),q({schema:ri,options:[...n,{name:`comment`,source:`commentId`}]})).action(e=>this.get(e)),Y(t.command(`update`).description(`Update a task comment`),q({schema:ri,options:[...n,{name:`comment`,source:`commentId`}]},{schema:cr,options:[{name:`content`}]},{schema:Ti,options:[{name:`assignee`},{name:`infoJson`,flag:`--info-json`}]})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a task comment`),q({schema:ri,options:[...n,{name:`comment`,source:`commentId`}]})).action(e=>this.delete(e))}async buildPayload(e){let t=await this.resolveOrgOption(e);return X({content:e.content,assigneeId:await this.resolveMemberId(t,e.assignee),info:this.parseJsonFlag(e.infoJson,`--info-json`)})}async create(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await ui({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e)},await this.buildPayload(e));this.printJson({comment:t})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveTaskOption(e),r=this.baseListOptions(e),i=await li({organizationId:t,taskId:n},r);this.printJson({comments:i.items,total:i.total,limit:i.limit,offset:i.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await di({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e),commentId:e.comment});this.printJson({comment:t})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await fi({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e),commentId:e.comment},await this.buildPayload(e));this.printJson({comment:t})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient(),await pi({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e),commentId:e.comment}),this.printJson({deleted:!0,comment:{id:e.comment}})})}};ji=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],ji);var Q={AuthCommand:Symbol.for(`CLI.AuthCommand`),WorkflowCommand:Symbol.for(`CLI.WorkflowCommand`),ArtifactCommand:Symbol.for(`CLI.ArtifactCommand`),AutomationCommand:Symbol.for(`CLI.AutomationCommand`),ProjectCommand:Symbol.for(`CLI.ProjectCommand`),TaskCommand:Symbol.for(`CLI.TaskCommand`),WorkUnitCommand:Symbol.for(`CLI.WorkUnitCommand`),MemberCommand:Symbol.for(`CLI.MemberCommand`),TaskCommentCommand:Symbol.for(`CLI.TaskCommentCommand`)},$=new l.Container({parent:x});$.bind(Q.AuthCommand).to(Ne),$.bind(Q.WorkflowCommand).to(pt),$.bind(Q.ArtifactCommand).to(Gt),$.bind(Q.AutomationCommand).to(an),$.bind(Q.ProjectCommand).to(Di),$.bind(Q.TaskCommand).to(Oi),$.bind(Q.WorkUnitCommand).to(ki),$.bind(Q.MemberCommand).to(Ai),$.bind(Q.TaskCommentCommand).to(ji),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}});
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./container-w-iFgBFu.cjs`);exports.CLI_TYPES=e.n,exports.cliContainer=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./container-CdrWCxTR.cjs");exports.CLI_TYPES=e.n,exports.cliContainer=e.t;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agiflowai/cli",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "Command-line interface for Agiflow workflow and artifact management",
5
5
  "bin": {
6
6
  "agiflow-cli": "./dist/cli.cjs"
@@ -1,7 +0,0 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));require(`reflect-metadata/lite`);let c=require(`commander`),l=require(`inversify`),u=require(`zod`),d=require(`pino`);d=s(d,1);let f=require(`fs`);f=s(f,1);let p=require(`path`);p=s(p,1);let m=require(`os`);m=s(m,1);let h=require(`crypto`);var g=u.z.string().url();u.z.object({VITE_INJECT_BACKEND_AGIFLOW_API_ENDPOINT:u.z.string().trim().optional()});function ee(e=process.env,t={BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_AUTO_AGIFLOW_CLI_DOCKER_ENDPOINT:``,VITE_AUTO_AGIFLOW_CLI_ENDPOINT:``,VITE_AUTO_AGIFLOW_CLI_PROXY_ENDPOINT:``,VITE_INJECT_BACKEND_AGIFLOW_API_ENDPOINT:`https://api.agiflow.io`}){let n=[t.VITE_INJECT_BACKEND_AGIFLOW_API_ENDPOINT,e.VITE_INJECT_BACKEND_AGIFLOW_API_ENDPOINT,e.INJECT_BACKEND_AGIFLOW_API_ENDPOINT,e.BACKEND_AGIFLOW_API_ENDPOINT];for(let e of n){let t=g.safeParse(typeof e==`string`?e.trim():e);if(t.success)return t.data}throw Error(`Missing Agiflow API endpoint. Set VITE_INJECT_BACKEND_AGIFLOW_API_ENDPOINT, INJECT_BACKEND_AGIFLOW_API_ENDPOINT, or BACKEND_AGIFLOW_API_ENDPOINT.`)}function _(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var te=`serverUrl`,ne=class{config=new Map;get(e){return this.config.get(e)}set(e,t){this.config.set(e,t)}has(e){return this.config.has(e)}getServerUrl(){let e=this.get(te);if(e)return e;let t=ee();return this.set(te,t),t}};ne=_([(0,l.injectable)()],ne);function v(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}var re=class{logger;constructor(){this.logger=(0,d.default)({level:process.env.LOG_LEVEL||`info`,transport:{target:`pino-pretty`,options:{colorize:!0,translateTime:`SYS:standard`,ignore:`pid,hostname`}}})}debug(e,t){this.logger.debug(t,e)}info(e,t){this.logger.info(t,e)}warn(e,t){this.logger.warn(t,e)}error(e,t){this.logger.error(t,e)}};re=_([(0,l.injectable)(),v(`design:paramtypes`,[])],re);var ie=class{filePath;constructor(){this.filePath=p.default.join(m.default.homedir(),`.agiflow`,`credentials.json`)}async load(e={}){let t=this.readStoredFile();if(!t)return null;if(e.scope===`global`)return t.global??null;let n=this.getRepositoryScopeKey();return t.repositories?.[n]??t.global??null}async setApiKey(e,t={}){let n=this.readStoredFile()??{version:2},r=await this.load(t),i=r?.organizationId===e.organizationId,a={apiKey:e.apiKey,organizationId:e.organizationId,keyId:e.keyId,deviceId:e.deviceId??(i?r?.deviceId:void 0),deviceGuid:e.deviceGuid??r?.deviceGuid,expiresAt:e.expiresAt};this.setCredentials(n,t,a),this.writeStoredFile(n)}async getApiKey(e={}){return process.env.AGIFLOW_API_KEY||((await this.load(e))?.apiKey??null)}async getOrganizationId(e={}){return process.env.AGIFLOW_ORGANIZATION_ID||((await this.load(e))?.organizationId??null)}async getProjectId(){return process.env.AGIFLOW_PROJECT_ID??null}async getTaskId(){return process.env.AGIFLOW_TASK_ID??null}async getWorkUnitId(){return process.env.AGIFLOW_WORK_UNIT_ID??null}async getDeviceId(e={}){return process.env.AGIFLOW_DEVICE_ID||((await this.load(e))?.deviceId??null)}async getDeviceGuid(e={}){return process.env.AGIFLOW_DEVICE_GUID||((await this.load(e))?.deviceGuid??null)}async setDeviceIdentity(e,t,n={}){let r=await this.load(n);if(!r)throw Error(`No credentials found. Run authentication first.`);let i=this.readStoredFile()??{version:2};this.setCredentials(i,n,{...r,deviceId:e,deviceGuid:t}),this.writeStoredFile(i)}async clear(e={}){try{let t=this.readStoredFile();if(!t)return;this.deleteCredentials(t,e),this.writeStoredFile(t)}catch{process.stderr.write(`[CredentialsService] failed to remove stored credentials
2
- `)}}async buildAuthHeaders(e={}){let t=await this.getApiKey(e);if(!t)throw Error(`No API key found. Set AGIFLOW_API_KEY or run authentication.`);return{"x-api-key":t}}readStoredFile(){try{if(!f.default.existsSync(this.filePath))return null;let e=JSON.parse(f.default.readFileSync(this.filePath,`utf-8`));if(this.isStoredCredentialsFile(e))return e;if(this.isStoredCredentials(e))return{version:2,global:e}}catch{process.stderr.write(`[CredentialsService] credentials file is malformed, continuing without stored credentials
3
- `)}return null}writeStoredFile(e){let t=this.compactStoredFile(e);if(!t.global&&!t.repositories){f.default.existsSync(this.filePath)&&f.default.unlinkSync(this.filePath);return}f.default.mkdirSync(p.default.dirname(this.filePath),{recursive:!0}),f.default.writeFileSync(this.filePath,`${JSON.stringify(t,null,2)}\n`,{mode:384})}setCredentials(e,t,n){if(t.scope===`global`){e.global=n;return}let r=this.getRepositoryScopeKey();e.repositories={...e.repositories,[r]:n}}deleteCredentials(e,t){if(t.scope===`global`){delete e.global;return}let n=this.getRepositoryScopeKey();e.repositories&&delete e.repositories[n]}compactStoredFile(e){let t=e.repositories?Object.fromEntries(Object.entries(e.repositories).filter(([,e])=>e)):void 0;return{version:2,...e.global?{global:e.global}:{},...t&&Object.keys(t).length>0?{repositories:t}:{}}}getRepositoryScopeKey(){return this.normalizePath(this.findGitRoot(process.cwd())??process.cwd())}findGitRoot(e){let t=p.default.resolve(e);for(;;){if(f.default.existsSync(p.default.join(t,`.git`)))return t;let e=p.default.dirname(t);if(e===t)return null;t=e}}normalizePath(e){let t=p.default.resolve(e),n=f.default.existsSync(t)?f.default.realpathSync.native(t):t,r=p.default.normalize(n).replace(RegExp(`${this.escapeRegExp(p.default.sep)}+$`),``);return process.platform===`win32`?r.toLowerCase():r}escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}isStoredCredentialsFile(e){if(!this.isRecord(e)||e.version!==2)return!1;let t=e.global,n=e.repositories;return(t===void 0||this.isStoredCredentials(t))&&(n===void 0||this.isRecord(n)&&Object.values(n).every(e=>this.isStoredCredentials(e)))}isStoredCredentials(e){return this.isRecord(e)&&typeof e.apiKey==`string`&&typeof e.organizationId==`string`&&(e.keyId===void 0||typeof e.keyId==`string`)&&(e.deviceId===void 0||typeof e.deviceId==`string`)&&(e.deviceGuid===void 0||typeof e.deviceGuid==`string`)&&(e.expiresAt===void 0||typeof e.expiresAt==`number`)}isRecord(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}};ie=_([(0,l.injectable)(),v(`design:paramtypes`,[])],ie);var y={Logger:Symbol.for(`Logger`),ConfigManager:Symbol.for(`ConfigManager`),CredentialsService:Symbol.for(`CredentialsService`),DeviceCodeAuthService:Symbol.for(`DeviceCodeAuthService`)};function b(e,t){return function(n,r){t(n,r,e)}}var ae=`agent-cli`,oe=process.env.npm_package_version||`0.0.1`,se=`openid profile email`,ce=`urn:ietf:params:oauth:grant-type:device_code`,le=class{configManager;constructor(e){this.configManager=e}async requestDeviceCode(e=se){return await this.postJson(`/api/v1/auth/device/code`,void 0,{client_id:ae,scope:e})}async pollForToken(e,t,n){let r=t;for(;;){if(n?.signal?.aborted)throw Error(`Polling aborted`);await this.sleep(r*1e3);let t=await fetch(this.url(`/api/v1/auth/device/token`),{method:`POST`,headers:this.headers(),body:JSON.stringify({grant_type:ce,device_code:e,client_id:ae})});if(t.ok)return await t.json();let i=await this.parseError(t);switch(i.error){case`authorization_pending`:n?.onPending?.();break;case`slow_down`:r+=5,n?.onSlowDown?.();break;case`access_denied`:throw Error(`Authorization denied by user`);case`expired_token`:throw Error(`Device code expired. Please start the authorization process again.`);default:throw Error(i.error_description||i.message||`Token request failed: ${t.status}`)}}}async listOrganizationsWithAccessToken(e){return(await this.getJson(`/api/v1/cli/organizations`,{Authorization:`Bearer ${e}`})).organizations??[]}async listOrganizationsWithApiKey(e){return(await this.getJson(`/api/v1/cli/organizations`,{"x-api-key":e})).organizations??[]}async exchangeForAgentApiKey(e,t){let n=await this.postJson(`/api/v1/cli/exchange-for-agent`,{Authorization:`Bearer ${e}`},{organizationId:t});return{apiKey:n.api_key,keyId:n.key_id,organizationId:n.organization_id,organizationName:n.organization_name,agentUserId:n.agent_user_id,expiresAt:n.expires_at}}async getJson(e,t){let n=await fetch(this.url(e),{method:`GET`,headers:this.headers(t)});return this.parseResponse(n)}async postJson(e,t,n){let r=await fetch(this.url(e),{method:`POST`,headers:this.headers(t),body:JSON.stringify(n)});return this.parseResponse(r)}async parseResponse(e){let t=await e.json().catch(()=>({}));if(!e.ok){let n=t;throw Error(n.error_description||n.message||n.error||e.statusText)}return t}async parseError(e){return await e.json().catch(()=>({}))}headers(e){return{"Content-Type":`application/json`,Accept:`application/json`,"x-client-type":ae,"x-client-version":oe,...e}}url(e){return`${this.configManager.getServerUrl().replace(/\/$/,``)}${e}`}sleep(e){return new Promise(t=>setTimeout(t,e))}};le=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),v(`design:paramtypes`,[Object])],le);var x=new l.Container;x.bind(y.Logger).to(re).inSingletonScope(),x.bind(y.ConfigManager).to(ne).inSingletonScope(),x.bind(y.CredentialsService).to(ie).inSingletonScope(),x.bind(y.DeviceCodeAuthService).to(le).inSingletonScope();var ue=10,de=(e=0)=>t=>`\u001B[${t+e}m`,fe=(e=0)=>t=>`\u001B[${38+e};5;${t}m`,pe=(e=0)=>(t,n,r)=>`\u001B[${38+e};2;${t};${n};${r}m`,S={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(S.modifier);var me=Object.keys(S.color),he=Object.keys(S.bgColor);[...me,...he];function ge(){let e=new Map;for(let[t,n]of Object.entries(S)){for(let[t,r]of Object.entries(n))S[t]={open:`\u001B[${r[0]}m`,close:`\u001B[${r[1]}m`},n[t]=S[t],e.set(r[0],r[1]);Object.defineProperty(S,t,{value:n,enumerable:!1})}return Object.defineProperty(S,`codes`,{value:e,enumerable:!1}),S.color.close=`\x1B[39m`,S.bgColor.close=`\x1B[49m`,S.color.ansi=de(),S.color.ansi256=fe(),S.color.ansi16m=pe(),S.bgColor.ansi=de(ue),S.bgColor.ansi256=fe(ue),S.bgColor.ansi16m=pe(ue),Object.defineProperties(S,{rgbToAnsi256:{value(e,t,n){return e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(e){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>S.rgbToAnsi256(...S.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,t,n)=>S.ansi256ToAnsi(S.rgbToAnsi256(e,t,n)),enumerable:!1},hexToAnsi:{value:e=>S.ansi256ToAnsi(S.hexToAnsi256(e)),enumerable:!1}}),S}var C=ge(),_e=(()=>{if(!(`navigator`in globalThis))return 0;if(globalThis.navigator.userAgentData){let e=navigator.userAgentData.brands.find(({brand:e})=>e===`Chromium`);if(e&&e.version>93)return 3}return+!!/\b(Chrome|Chromium)\//.test(globalThis.navigator.userAgent)})(),ve=_e!==0&&{level:_e,hasBasic:!0,has256:_e>=2,has16m:_e>=3},ye={stdout:ve,stderr:ve};function be(e,t,n){let r=e.indexOf(t);if(r===-1)return e;let i=t.length,a=0,o=``;do o+=e.slice(a,r)+t+n,a=r+i,r=e.indexOf(t,a);while(r!==-1);return o+=e.slice(a),o}function xe(e,t,n,r){let i=0,a=``;do{let o=e[r-1]===`\r`;a+=e.slice(i,o?r-1:r)+t+(o?`\r
4
- `:`
5
- `)+n,i=r+1,r=e.indexOf(`
6
- `,i)}while(r!==-1);return a+=e.slice(i),a}var{stdout:Se,stderr:Ce}=ye,we=Symbol(`GENERATOR`),w=Symbol(`STYLER`),T=Symbol(`IS_EMPTY`),Te=[`ansi`,`ansi`,`ansi256`,`ansi16m`],E=Object.create(null),Ee=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let n=Se?Se.level:0;e.level=t.level===void 0?n:t.level},De=e=>{let t=(...e)=>e.join(` `);return Ee(t,e),Object.setPrototypeOf(t,D.prototype),t};function D(e){return De(e)}Object.setPrototypeOf(D.prototype,Function.prototype);for(let[e,t]of Object.entries(C))E[e]={get(){let n=O(this,Ae(t.open,t.close,this[w]),this[T]);return Object.defineProperty(this,e,{value:n}),n}};E.visible={get(){let e=O(this,this[w],!0);return Object.defineProperty(this,`visible`,{value:e}),e}};var Oe=(e,t,n,...r)=>e===`rgb`?t===`ansi16m`?C[n].ansi16m(...r):t===`ansi256`?C[n].ansi256(C.rgbToAnsi256(...r)):C[n].ansi(C.rgbToAnsi(...r)):e===`hex`?Oe(`rgb`,t,n,...C.hexToRgb(...r)):C[n][e](...r);for(let e of[`rgb`,`hex`,`ansi256`]){E[e]={get(){let{level:t}=this;return function(...n){let r=Ae(Oe(e,Te[t],`color`,...n),C.color.close,this[w]);return O(this,r,this[T])}}};let t=`bg`+e[0].toUpperCase()+e.slice(1);E[t]={get(){let{level:t}=this;return function(...n){let r=Ae(Oe(e,Te[t],`bgColor`,...n),C.bgColor.close,this[w]);return O(this,r,this[T])}}}}var ke=Object.defineProperties(()=>{},{...E,level:{enumerable:!0,get(){return this[we].level},set(e){this[we].level=e}}}),Ae=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},O=(e,t,n)=>{let r=(...e)=>je(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,ke),r[we]=e,r[w]=t,r[T]=n,r},je=(e,t)=>{if(e.level<=0||!t)return e[T]?``:t;let n=e[w];if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.includes(`\x1B`))for(;n!==void 0;)t=be(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
7
- `);return a!==-1&&(t=xe(t,i,r,a)),r+t+i};Object.defineProperties(D.prototype,E);var k=D();D({level:Ce?Ce.level:0});var Me=class{credentialsService;authService;configManager;constructor(e,t,n){this.credentialsService=e,this.authService=t,this.configManager=n}register(e){e.command(`login`).description(`Authenticate agiflow-cli`).option(`--api-key <apiKey>`,`Use an existing Agiflow API key`).option(`--org <organizationId>`,`Organization ID to store with credentials`).option(`--global`,`Store credentials globally instead of scoping them to the current repository`).option(`--format <format>`,`Output format (text|json)`,`text`).action(async e=>{await this.run(e.format,async()=>{let t=e.apiKey?await this.loginWithApiKey(e):await this.loginWithDeviceCode(e);this.printLoginResult(t,e.format)})}),e.command(`logout`).description(`Remove stored agiflow-cli credentials`).option(`--global`,`Remove global credentials instead of credentials scoped to the current repository`).option(`--format <format>`,`Output format (text|json)`,`text`).action(async e=>{await this.run(e.format,async()=>{if(await this.credentialsService.clear(this.getCredentialsScope(e)),e.format===`json`){this.printJson({loggedOut:!0});return}console.log(k.green(`Logged out`))})})}async loginWithApiKey(e){if(!e.apiKey)throw Error(`API key is required.`);let t=await this.authService.listOrganizationsWithApiKey(e.apiKey),n=await this.resolveOrganization(t,e.org,e.format);return await this.credentialsService.setApiKey({apiKey:e.apiKey,organizationId:n.id},this.getCredentialsScope(e)),await this.ensureDeviceIdentity(e.apiKey,n.id,this.getCredentialsScope(e)),{authenticated:!0,source:`api-key`,organizationId:n.id,organizationName:n.name}}async loginWithDeviceCode(e){let t=await this.authService.requestDeviceCode(),n=t.verification_uri_complete||`${t.verification_uri}?user_code=${t.user_code}`;this.printProgress(e.format,`Open ${n}`),this.printProgress(e.format,`Enter code ${t.user_code}`);let r=await this.authService.pollForToken(t.device_code,t.interval??5),i=await this.authService.listOrganizationsWithAccessToken(r.access_token),a=await this.resolveOrganization(i,e.org,e.format),o=await this.authService.exchangeForAgentApiKey(r.access_token,a.id);return await this.credentialsService.setApiKey({apiKey:o.apiKey,keyId:o.keyId,organizationId:o.organizationId,expiresAt:o.expiresAt},this.getCredentialsScope(e)),await this.ensureDeviceIdentity(o.apiKey,o.organizationId,this.getCredentialsScope(e)),{authenticated:!0,source:`device-code`,organizationId:o.organizationId,organizationName:o.organizationName,expiresAt:o.expiresAt}}async resolveOrganization(e,t,n){if(e.length===0)throw Error(`No organizations are available for these credentials.`);if(t){let n=e.find(e=>e.id===t);if(!n)throw Error(`Organization ${t} is not available for these credentials.`);return n}if(e.length===1)return e[0];if(!process.stdin.isTTY||!process.stdout.isTTY)throw Error(`Multiple organizations are available. Pass --org <organizationId> in non-interactive mode.`);let{select:r}=await import(`@inquirer/prompts`),i=await r({message:`Select an organization`,choices:e.map(e=>({name:`${e.name}${e.slug?` (${e.slug})`:``}`,value:e.id}))});return this.printProgress(n,`Selected organization ${i}`),e.find(e=>e.id===i)??e[0]}async run(e,t){try{this.validateFormat(e),await t()}catch(t){let n=t instanceof Error?t.message:String(t);e===`json`?this.printJson({error:n}):console.error(k.red(`Error:`),n),process.exit(1)}}async ensureDeviceIdentity(e,t,n){let r=await this.credentialsService.getDeviceGuid(n)||`cli-${(0,h.randomUUID)()}`,i=this.configManager.getServerUrl().replace(/\/$/,``),a=await fetch(`${i}/api/v1/organizations/${t}/devices`,{method:`POST`,headers:{"x-api-key":e,"x-client-type":`agent-cli`,"x-client-version":process.env.npm_package_version||`0.0.1`,"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({name:m.default.hostname(),deviceGuid:r,type:`cli`,platform:process.platform,version:process.env.npm_package_version||`0.0.1`})}),o=await a.json().catch(()=>({}));if(!a.ok){let e=typeof o==`object`&&o&&`message`in o?String(o.message):a.statusText;throw Error(e)}if(!o||typeof o!=`object`||!(`id`in o)||typeof o.id!=`string`)throw Error(`Device registration response did not include a device ID.`);await this.credentialsService.setDeviceIdentity(o.id,r,n)}getCredentialsScope(e){return e.global?{scope:`global`}:{scope:`repository`}}validateFormat(e){if(e&&e!==`text`&&e!==`json`)throw Error(`Only text and json formats are supported.`)}printLoginResult(e,t){if(t===`json`){this.printJson(e);return}console.log(k.green(`Authenticated`)),console.log(`Organization: ${e.organizationName} (${e.organizationId})`)}printProgress(e,t){if(e===`json`){console.error(t);return}console.log(t)}printJson(e){console.log(JSON.stringify(e,null,2))}};Me=_([(0,l.injectable)(),b(0,(0,l.inject)(y.CredentialsService)),b(1,(0,l.inject)(y.DeviceCodeAuthService)),b(2,(0,l.inject)(y.ConfigManager)),v(`design:paramtypes`,[Object,Object,Object])],Me);var Ne=class e{static instance;authProviders=new Map;defaultNamespace=`default`;constructor(){}static getInstance(){return e.instance||=new e,e.instance}setAuthProvider(e,t=this.defaultNamespace){this.authProviders.set(t,e)}getAuthProvider(e=this.defaultNamespace){return this.authProviders.get(e)||null}removeAuthProvider(e=this.defaultNamespace){this.authProviders.delete(e)}async getSession(e=this.defaultNamespace){let t=this.authProviders.get(e);return t?t.getSession():null}async refreshSession(e=this.defaultNamespace){let t=this.authProviders.get(e);return t?t.refreshSession():null}hasAuthProvider(e=this.defaultNamespace){return this.authProviders.has(e)}getNamespaces(){return Array.from(this.authProviders.keys())}}.getInstance(),Pe=class e{static instance;configs=new Map;defaultNamespace=`default`;constructor(){}static getInstance(){return e.instance||=new e,e.instance}setConfig(e,t=this.defaultNamespace){this.configs.set(t,e)}getConfig(e=this.defaultNamespace){return this.configs.get(e)||null}updateConfig(e,t=this.defaultNamespace){let n=this.configs.get(t);n?this.configs.set(t,{...n,...e,headers:{...n.headers,...e.headers}}):this.configs.set(t,e)}removeConfig(e=this.defaultNamespace){this.configs.delete(e)}getBaseUrl(e=this.defaultNamespace){return this.configs.get(e)?.baseUrl||null}getHeaders(e=this.defaultNamespace){return this.configs.get(e)?.headers||null}getApiKey(e=this.defaultNamespace){return this.configs.get(e)?.apiKey||null}hasConfig(e=this.defaultNamespace){return this.configs.has(e)}getNamespaces(){return Array.from(this.configs.keys())}}.getInstance(),Fe=`default`,Ie=1,Le=300,A=`Content-Type`,Re=`application/json`,ze=`X-API-KEY`,Be=`Authorization`,Ve=`Bearer`,He=401,Ue=429,We=503,Ge=500,Ke=400,qe=500,Je=`text/`,Ye=.5,Xe=.5,Ze=class extends Error{status;statusText;data;constructor(e,t,n,r){super(e),this.status=t,this.statusText=n,this.data=r,this.name=`OpenapiRequestError`}},Qe=class{baseUrl;apiKey;headers;authProvider;authNamespace;configNamespace;useGlobalAuthProvider;useGlobalConfig;retryConfig;requestInterceptor;constructor(e={}){this.authProvider=e.authProvider,this.authNamespace=e.authNamespace??Fe,this.configNamespace=e.configNamespace??Fe,this.useGlobalAuthProvider=e.useGlobalAuthProvider??!0,this.useGlobalConfig=e.useGlobalConfig??!0,this.retryConfig={maxRetries:e.retryConfig?.maxRetries??Ie,baseDelay:e.retryConfig?.baseDelay??Le},this.requestInterceptor=e.requestInterceptor??null;let t=this.getEffectiveConfig(e);if(!t.baseUrl&&!this.useGlobalConfig)throw Error(`baseUrl is required for OpenapiClient (either in options or global config)`);this.baseUrl=t.baseUrl,this.apiKey=t.apiKey,this.headers=t.headers}getEffectiveConfig(e){let t=this.useGlobalConfig?Pe.getConfig(this.configNamespace):null;return{baseUrl:e.baseUrl||t?.baseUrl||``,headers:{...t?.headers,...e.headers},apiKey:e.apiKey??t?.apiKey}}getRuntimeConfig(){return this.getEffectiveConfig({baseUrl:this.baseUrl,headers:this.headers,apiKey:this.apiKey})}getEffectiveAuthProvider(){return this.authProvider?this.authProvider:this.useGlobalAuthProvider?Ne.getAuthProvider(this.authNamespace):null}async setAuthHeader(e){let t=this.getEffectiveAuthProvider();if(!t)return;let n=await t.getSession();n?.data?.session?.access_token&&(e[Be]=`${Ve} ${n.data.session.access_token}`)}buildUrl(e,t,n,r){let i=t;if(n)for(let[e,t]of Object.entries(n))i=i.replace(`{${e}}`,encodeURIComponent(String(t)));if(r){let e=new URLSearchParams;for(let[t,n]of Object.entries(r))n!=null&&e.append(t,String(n));let t=e.toString();t&&(i+=(i.includes(`?`)?`&`:`?`)+t)}return new URL(i,e).toString()}createCustomFetch(){return async(e,t)=>{let n=t||{};n.headers||={},n.credentials=`include`,`Content-Type`in n.headers||(n.headers[A]=Re),n.headers[A]===void 0&&delete n.headers[A];let r=this.getRuntimeConfig();r.apiKey&&(n.headers[ze]=r.apiKey),t?.skipAuth||await this.setAuthHeader(n.headers);let i=await fetch(e,n),a=this.getEffectiveAuthProvider();if(i.status===He&&a&&!t?.skipAuth&&(await a.refreshSession())?.data?.session)if(await this.setAuthHeader(n.headers),t?.skipRetry)i=await fetch(e,n);else{let{maxRetries:t,baseDelay:r}=this.retryConfig,a=null;for(let o=0;o<t;o++)try{if(i=await fetch(e,n),i.status>=Ke&&i.status<qe&&i.status!==Ue)return i;if(i.status===Ue||i.status===We||i.status>=Ge){a=Error(`HTTP status ${i.status}`);let e=r*2**o*(Ye+Math.random()*Xe);await new Promise(t=>setTimeout(t,e));continue}return i}catch(e){if(a=e instanceof Error?e:Error(String(e)),o<t-1){let e=r*2**o*(Ye+Math.random()*Xe);await new Promise(t=>setTimeout(t,e))}}throw a||Error(`Request failed after retries`)}return i}}createFormFetch(){return async(e,t)=>{let n=t||{};n.headers||={},n.credentials=`include`;let r=this.getRuntimeConfig();r.apiKey&&(n.headers[ze]=r.apiKey),t?.skipAuth||await this.setAuthHeader(n.headers);let i=await fetch(e,n),a=this.getEffectiveAuthProvider();return i.status===He&&a&&!t?.skipAuth&&(await a.refreshSession())?.data?.session&&(await this.setAuthHeader(n.headers),i=await fetch(e,n)),i}}async request(e,t){let{method:n,params:r,query:i,body:a,headers:o,skipAuth:s,skipRetry:c}=t;if(this.requestInterceptor){let n=await this.requestInterceptor(e,{path:e,...t});if(n)return n}let l=this.getRuntimeConfig();if(!l.baseUrl)throw Error(`baseUrl is required for OpenapiClient (either in options or global config)`);let u=this.buildUrl(l.baseUrl,e,r,i),d={...l.headers,...o},f={method:n,headers:d,skipAuth:s,skipRetry:c};a&&n!==`GET`&&n!==`HEAD`&&(a instanceof FormData||typeof a==`object`&&a&&typeof a.append==`function`&&typeof a.entries==`function`&&a.constructor?.name===`FormData`?(f.body=a,d[A]=void 0):(f.body=JSON.stringify(a),d[A]=Re));let p=await this.createCustomFetch()(u,f),m,h=p.headers.get(`content-type`);if(m=h?.includes(Re)?await p.json():h?.includes(Je)?await p.text():await p.blob(),!p.ok)throw new Ze(`HTTP ${p.status}: ${p.statusText}`,p.status,p.statusText,m);return{data:m,status:p.status,statusText:p.statusText,headers:p.headers}}},$e=`backend-agiflow-api`,et=e=>{Pe.setConfig(e,$e)},j=((e={})=>new Qe({...e,authNamespace:$e,configNamespace:$e}))(),M=class{configManager;credentialsService;constructor(e,t){this.configManager=e,this.credentialsService=t}addEnvIdOption(e,t,n,r){return e.addOption(this.buildEnvIdOption(t,n,r)),e}buildEnvIdOption(e,t,n){let r=new c.Option(e,t);return process.env[n]&&r.hideHelp(),r}async setupClient(){let e=this.configManager.getServerUrl(),t=await this.credentialsService.getApiKey();if(!t)throw Error(`No API key found. Set AGIFLOW_API_KEY or run authentication.`);et({baseUrl:e,apiKey:t,headers:{"x-client-type":`agent-cli`,"x-client-version":process.env.npm_package_version||`0.0.1`}})}handleError(e,t){let n=t instanceof Error?t.message:String(t);console.error(k.red(`✗`),e,n),process.exit(1)}async runJsonOnly(e){try{await e()}catch(e){let t=e instanceof Error?e.message:String(e),n=e&&typeof e==`object`&&`data`in e?e.data:void 0;this.printJson(n===void 0?{error:t}:{error:t,details:n}),process.exit(1)}}requireJsonFormat(e,t=`this command`){if((e??`json`)!==`json`)throw Error(`Only --format json is supported for ${t}.`)}printJson(e){console.log(JSON.stringify(e,null,2))}async resolveOrganizationId(e){return this.resolveRequiredId(e,()=>this.credentialsService.getOrganizationId(),`organization ID`,`--org`)}async resolveProjectIdOption(e){return this.resolveRequiredId(e,()=>this.credentialsService.getProjectId(),`project ID`,`--project`)}async resolveTaskIdOption(e){return this.resolveRequiredId(e,()=>this.credentialsService.getTaskId(),`task ID`,`--task`)}async resolveWorkUnitIdOption(e){return this.resolveRequiredId(e,()=>this.credentialsService.getWorkUnitId(),`work unit ID`,`--work-unit`)}async resolveRequiredId(e,t,n,r){if(e)return e;let i=await t();if(i)return i;throw Error(`Missing ${n}. Pass ${r} or set the matching AGIFLOW_* environment variable.`)}parseJsonFlag(e,t){if(e)try{return JSON.parse(e)}catch{throw Error(`${t} must be valid JSON.`)}}parseCsv(e){if(!e)return;let t=(Array.isArray(e)?e:e.split(`,`)).map(e=>e.trim()).filter(Boolean);return t.length>0?t:void 0}parseNumber(e,t){if(e===void 0)return t;let n=Number(e);if(!Number.isFinite(n))throw Error(`Expected a numeric value, received "${e}".`);return n}},tt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows`,{method:`GET`,params:e,query:t})).data,nt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows`,{method:`POST`,params:e,body:t})).data,rt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/check`,{method:`GET`,params:e,query:t})).data,it=async e=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/{id}`,{method:`GET`,params:e})).data,at=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/{id}`,{method:`PATCH`,params:e,body:t})).data,ot=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/{id}/release`,{method:`POST`,params:e,body:t})).data,st=`AGIFLOW_ORGANIZATION_ID`,ct=`AGIFLOW_PROJECT_ID`,lt=`AGIFLOW_TASK_ID`,ut=`AGIFLOW_WORK_UNIT_ID`,dt=class extends M{constructor(e,t){super(e,t)}register(e){let t=e.command(`workflow`).description(`Manage workflow locks`);this.addWorkflowScopeOptions(t.command(`create`).description(`Acquire a workflow lock`)).requiredOption(`--name <name>`,`Workflow name`).addOption(this.envOption(`--work-unit <workUnitId>`,`Work unit ID`,ut)).addOption(this.envOption(`--task <taskId>`,`Task ID`,lt)).option(`--context <json>`,`Context data as JSON string`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveWorkflowScope(e),r=await this.resolveWorkflowTarget(e),i=await nt({organizationId:t,projectId:n},{name:e.name,workUnitId:r.workUnitId,taskId:r.taskId,contextData:e.context});console.log(k.green(`✓`),`Workflow lock acquired`),console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to acquire workflow lock`,e)}}),this.addWorkflowScopeOptions(t.command(`get <id>`).description(`Get workflow details`)).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveWorkflowScope(t),i=await it({organizationId:n,projectId:r,id:e});console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to get workflow`,e)}}),this.addWorkflowScopeOptions(t.command(`list`).description(`List workflows`)).option(`--status <status>`,`Filter by status (running|completed|failed)`).option(`--limit <limit>`,`Max results`,`20`).option(`--offset <offset>`,`Offset for pagination`,`0`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveWorkflowScope(e),r=await tt({organizationId:t,projectId:n},{status:e.status,limit:Number(e.limit),offset:Number(e.offset)});console.log(JSON.stringify(r,null,2))}catch(e){this.handleError(`Failed to list workflows`,e)}}),this.addWorkflowScopeOptions(t.command(`update <id>`).description(`Update workflow metadata`)).option(`--name <name>`,`New workflow name`).option(`--context <json>`,`Updated context data as JSON string`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveWorkflowScope(t),i={};t.name&&(i.name=t.name),t.context&&(i.contextData=t.context);let a=await at({organizationId:n,projectId:r,id:e},i);console.log(k.green(`✓`),`Workflow updated`),console.log(JSON.stringify(a,null,2))}catch(e){this.handleError(`Failed to update workflow`,e)}}),this.addWorkflowScopeOptions(t.command(`release <id>`).description(`Release a workflow lock`)).requiredOption(`--status <status>`,`Release status (completed|failed)`).option(`--error <error>`,`Error message (when status is failed)`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveWorkflowScope(t),i=await ot({organizationId:n,projectId:r,id:e},{status:t.status,error:t.error});console.log(k.green(`✓`),`Workflow lock released`),console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to release workflow lock`,e)}}),this.addWorkflowScopeOptions(t.command(`check`).description(`Check if a workflow lock exists`)).addOption(this.envOption(`--work-unit <workUnitId>`,`Work unit ID`,ut)).addOption(this.envOption(`--task <taskId>`,`Task ID`,lt)).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveWorkflowScope(e),r=await this.resolveWorkflowTarget(e),i=await rt({organizationId:t,projectId:n},{workUnitId:r.workUnitId,taskId:r.taskId});console.log(k.green(`✓`),`Lock found`),console.log(JSON.stringify(i,null,2))}catch(e){if(e instanceof Error&&e.message.includes(`404`)){console.log(JSON.stringify({}));return}this.handleError(`Failed to check workflow lock`,e)}})}addWorkflowScopeOptions(e){return e.addOption(this.envOption(`--org <organizationId>`,`Organization ID`,st)).addOption(this.envOption(`--project <projectId>`,`Project ID`,ct))}envOption(e,t,n){return this.buildEnvIdOption(e,t,n)}async resolveWorkflowScope(e){return{org:await this.resolveOrganizationId(e.org),project:await this.resolveProjectIdOption(e.project)}}async resolveWorkflowTarget(e){if(e.workUnit)return{workUnitId:e.workUnit};if(e.task)return{taskId:e.task};let t=await this.credentialsService.getWorkUnitId();if(t)return{workUnitId:t};let n=await this.credentialsService.getTaskId();return n?{taskId:n}:{}}};dt=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],dt);var ft=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects`,{method:`GET`,params:e,query:t})).data,pt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects`,{method:`POST`,params:e,body:t})).data,mt=async e=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{id}`,{method:`GET`,params:e})).data,ht=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{id}`,{method:`PATCH`,params:e,body:t})).data,gt=async e=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{id}`,{method:`DELETE`,params:e})).data,_t=async e=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts`,{method:`GET`,params:e})).data,vt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts`,{method:`DELETE`,params:e,query:t})).data,yt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/download`,{method:`GET`,params:e,query:t})).data,bt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/upload-url`,{method:`GET`,params:e,query:t})).data,xt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/complete`,{method:`POST`,params:e,body:t})).data,St=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/seed`,{method:`POST`,params:e,body:t})).data,Ct=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/tasks`,{method:`GET`,params:e,query:t})).data,wt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/artifacts`,{method:`PATCH`,params:e,body:t})).data,Tt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/statuses/{statusId}/tasks/reorder`,{method:`POST`,params:e,body:t})).data,Et=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks`,{method:`GET`,params:e,query:t})).data,Dt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks`,{method:`POST`,params:e,body:t})).data,Ot=async e=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}`,{method:`GET`,params:e})).data,kt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}`,{method:`PATCH`,params:e,body:t})).data,At=async e=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}`,{method:`DELETE`,params:e})).data,jt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}/move`,{method:`POST`,params:e,body:t})).data,Mt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/work-units/{workUnitId}/artifacts`,{method:`PATCH`,params:e,body:t})).data,Nt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units`,{method:`GET`,params:e,query:t})).data,Pt=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units`,{method:`POST`,params:e,body:t})).data,Ft=async e=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}`,{method:`GET`,params:e})).data,It=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}`,{method:`PATCH`,params:e,body:t})).data,Lt=async e=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}`,{method:`DELETE`,params:e})).data,Rt=async e=>(await j.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}/progress`,{method:`GET`,params:e})).data,zt=`AGIFLOW_ORGANIZATION_ID`,Bt=`AGIFLOW_PROJECT_ID`,Vt=`AGIFLOW_TASK_ID`,Ht=`AGIFLOW_WORK_UNIT_ID`,Ut=class extends M{constructor(e,t){super(e,t)}register(e){let t=e.command(`artifact`).description(`Manage project artifacts`);this.addArtifactScopeOptions(t.command(`upload <file>`).description(`Upload an artifact (3-step: get presigned URL, PUT to storage, mark complete)`)).option(`--name <name>`,`Artifact name (defaults to filename)`).option(`--type <type>`,`Content type`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t),i=p.default.resolve(e);f.default.existsSync(i)||(console.error(k.red(`✗`),`File not found: ${i}`),process.exit(1));let a=t.name??p.default.basename(i),o=f.default.readFileSync(i),s=f.default.statSync(i).size;console.log(k.blue(`↑`),`Uploading ${a} (${s} bytes)...`);let{url:c,key:l}=await bt({organizationId:n,id:r},{filename:a,contentType:t.type}),u=await fetch(c,{method:`PUT`,body:o,headers:{"Content-Type":t.type??`application/octet-stream`}});if(!u.ok)throw Error(`Upload failed with status ${u.status}`);await xt({organizationId:n,id:r},{key:l}),console.log(k.green(`✓`),`Artifact uploaded: ${l}`)}catch(e){this.handleError(`Failed to upload artifact`,e)}}),this.addArtifactScopeOptions(t.command(`download <key>`).description(`Download an artifact by key`)).option(`-o, --output <path>`,`Output file path`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t),i=(await yt({organizationId:n,id:r},{key:e})).url,a=await fetch(i);if(!a.ok)throw Error(`Download failed with status ${a.status}`);let o=Buffer.from(await a.arrayBuffer()),s=t.output??e;f.default.writeFileSync(s,o),console.log(k.green(`✓`),`Downloaded to ${s}`)}catch(e){this.handleError(`Failed to download artifact`,e)}}),this.addArtifactScopeOptions(t.command(`list`).description(`List project artifacts`)).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveArtifactScope(e),r=await _t({organizationId:t,id:n});console.log(JSON.stringify(r,null,2))}catch(e){this.handleError(`Failed to list artifacts`,e)}}),this.addArtifactScopeOptions(t.command(`get <key>`).description(`Get artifact details by key`)).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t),i=(await _t({organizationId:n,id:r})).items.find(t=>t.key===e||t.id===e);i||(console.error(k.red(`✗`),`Artifact not found: ${e}`),process.exit(1)),console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to get artifact`,e)}}),this.addArtifactScopeOptions(t.command(`delete <key>`).description(`Delete an artifact by key`)).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t);await vt({organizationId:n,id:r},{key:e}),console.log(k.green(`✓`),`Artifact deleted: ${e}`)}catch(e){this.handleError(`Failed to delete artifact`,e)}}),t.command(`link <key>`).description(`Link artifact to a work unit or task`).addOption(this.buildEnvIdOption(`--org <organizationId>`,`Organization ID`,zt)).addOption(this.buildEnvIdOption(`--work-unit <workUnitId>`,`Work unit ID to link`,Ht)).addOption(this.buildEnvIdOption(`--task <taskId>`,`Task ID to link`,Vt)).action(async(e,t)=>{try{await this.setupClient();let n=await this.resolveOrganizationId(t.org),r=!!t.task,i=!!t.workUnit;if(r&&i){console.error(k.red(`✗`),`Specify exactly one of --task or --work-unit, not both`),process.exit(1);return}if(!r&&!i){console.error(k.red(`✗`),`Specify exactly one of --task or --work-unit`),process.exit(1);return}if(r){let r=await this.resolveTaskIdOption(t.task);await wt({organizationId:n,taskId:r},{action:`attach`,artifactId:e}),console.log(JSON.stringify({artifactKey:e,linkedTo:{type:`task`,id:r}},null,2))}else{let r=await this.resolveWorkUnitIdOption(t.workUnit);await Mt({organizationId:n,workUnitId:r},{action:`attach`,artifactId:e}),console.log(JSON.stringify({artifactKey:e,linkedTo:{type:`work-unit`,id:r}},null,2))}}catch(e){this.handleError(`Failed to link artifact`,e)}}),this.addArtifactScopeOptions(t.command(`seed`).description(`Seed artifacts from a JSON file`)).requiredOption(`--file <path>`,`Path to JSON file containing seed data`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveArtifactScope(e),r=p.default.resolve(e.file);if(!f.default.existsSync(r)){console.error(k.red(`✗`),`File not found: ${r}`),process.exit(1);return}let i=f.default.readFileSync(r,`utf-8`),a;try{a=JSON.parse(i)}catch{console.error(k.red(`✗`),`Invalid JSON in ${r}`),process.exit(1);return}let o=await St({organizationId:t,id:n},a);console.log(JSON.stringify(o,null,2))}catch(e){this.handleError(`Failed to seed artifacts`,e)}}),this.addArtifactScopeOptions(t.command(`update <artifactId>`).description(`Update artifact metadata`)).option(`--name <name>`,`New artifact name`).action((e,t)=>{console.log(k.yellow(`⚠`),`Artifact update endpoint not yet available in API`)})}addArtifactScopeOptions(e){return e.addOption(this.buildEnvIdOption(`--org <organizationId>`,`Organization ID`,zt)).addOption(this.buildEnvIdOption(`--project <projectId>`,`Project ID`,Bt))}async resolveArtifactScope(e){return{org:await this.resolveOrganizationId(e.org),project:await this.resolveProjectIdOption(e.project)}}};Ut=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],Ut);var Wt=class e{command;constructor(e){this.command=e}static for(t){return new e(t)}fromSchemaGroups(e){for(let t of e)this.addGroup(t);return this.command}addGroup(e){let t=u.z.toJSONSchema(e.schema),n=new Set(t.required??[]);for(let r of e.options){let e=r.source??r.name,i=t.properties?.[e],a=i?.cli,o=r.parse??a?.parse??Gt(i),s=i?.description??Yt(e),l=r.defaultValue??Kt(i),u=r.valueName??a?.valueName??e,d=r.flag??a?.flag??`--${Jt(r.name)}`,f=r.envVars??(r.envVar?[r.envVar]:[]),p=f.length>0?!1:r.required??(l===void 0&&n.has(e)),m=o===`boolean`?d:`${d} <${u}>`,h=qt(o),g=new c.Option(m,s);if(f.some(e=>process.env[e])&&g.hideHelp(),p){h&&g.argParser(h),this.command.addOption(g.makeOptionMandatory());continue}h?(g.argParser(h),l!==void 0&&g.default(l),this.command.addOption(g)):(l===void 0||g.default(l),this.command.addOption(g))}}},Gt=e=>e&&(Array.isArray(e.type)?e.type.find(e=>e!==`null`):e.type)===`boolean`?`boolean`:`string`,Kt=e=>{if(typeof e?.default==`string`||typeof e?.default==`boolean`)return e.default;if(typeof e?.default==`number`)return String(e.default)},qt=e=>{if(e===`csv`)return e=>e.split(`,`).map(e=>e.trim()).filter(Boolean);if(e===`json`)return e=>JSON.parse(e)},Jt=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/_/g,`-`).toLowerCase(),Yt=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase()),N=`AGIFLOW_ORGANIZATION_ID`,P=`AGIFLOW_PROJECT_ID`,Xt=`AGIFLOW_TASK_ID`,Zt=`AGIFLOW_WORK_UNIT_ID`,F=u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID`)}),Qt=u.z.object({jobKind:u.z.enum([`work-unit`,`task`]).describe(`Job kind (work-unit|task)`),jobId:u.z.string().min(1).describe(`Job ID`)}),$t=u.z.object({format:u.z.literal(`json`).default(`json`).describe(`Output format`)}),I=(e,t)=>Wt.for(e).fromSchemaGroups([...t,{schema:$t,options:[{name:`format`,required:!1,defaultValue:`json`}]}]),en=class extends M{constructor(e,t){super(e,t)}register(e){let t=e.command(`automation`).description(`Automation JSON commands`);t.command(`list-jobs`).description(`List runnable or claimed automation jobs`).option(`--status <statuses>`,`Comma-separated job statuses`,`planning,todo`),I(t.commands.at(-1),[{schema:F,options:[{name:`org`,source:`organizationId`,envVar:N},{name:`project`,source:`projectId`,envVar:P}]},{schema:u.z.object({limit:u.z.string().default(`50`).describe(`Max results`),claimed:u.z.boolean().optional().describe(`List claimed running jobs`),deviceId:u.z.string().optional().describe(`Filter claimed jobs by device ID`),daemonId:u.z.string().optional().describe(`Filter claimed jobs by daemon ID`),daemon:u.z.string().optional().describe(`Filter claimed jobs by daemon name`)}),options:[{name:`limit`,required:!1,defaultValue:`50`},{name:`claimed`,required:!1},{name:`deviceId`,flag:`--device-id`,required:!1},{name:`daemonId`,flag:`--daemon-id`,required:!1},{name:`daemon`,required:!1}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=e.daemon?this.slugifyName(e.daemon):void 0,i=r?await this.resolveDeviceId(e.deviceId):e.deviceId,a=await this.requestJson({org:t,project:n,path:`/jobs`,query:{status:e.status,limit:Number(e.limit),claimed:!!e.claimed,deviceId:i,daemonId:e.daemonId,daemonName:r,format:`json`}});this.printJson(a)})}),t.command(`get-job`).description(`Get a normalized automation job`),I(t.commands.at(-1),[{schema:F,options:[{name:`org`,source:`organizationId`,envVar:N},{name:`project`,source:`projectId`,envVar:P}]},{schema:Qt,options:[{name:`jobKind`,flag:`--job-kind`},{name:`jobId`,flag:`--job-id`,envVars:[Zt,Xt]}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=this.resolveJobKind(e.jobKind),i=await this.resolveJobId(e.jobId,r),a=await this.requestJson({org:t,project:n,path:`/jobs/get`,query:{jobKind:r,jobId:i,format:`json`}});this.printJson(a)})}),t.command(`claim-job`).description(`Claim an automation job`),I(t.commands.at(-1),[{schema:F,options:[{name:`org`,source:`organizationId`,envVar:N},{name:`project`,source:`projectId`,envVar:P}]},{schema:Qt.extend({name:u.z.string().min(1).describe(`Run name`),deviceId:u.z.string().optional().describe(`Device ID running the job`),daemonId:u.z.string().optional().describe(`Daemon ID running the job`),daemon:u.z.string().optional().describe(`Daemon name running the job`)}),options:[{name:`jobKind`,flag:`--job-kind`},{name:`jobId`,flag:`--job-id`,envVars:[Zt,Xt]},{name:`name`},{name:`deviceId`,flag:`--device-id`,required:!1},{name:`daemonId`,flag:`--daemon-id`,required:!1},{name:`daemon`,required:!1}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=this.resolveJobKind(e.jobKind),i=await this.resolveJobId(e.jobId,r),a=e.daemon?await this.ensureDaemon(t,e.daemon,e.deviceId):void 0,o=await this.requestJson({org:t,project:n,path:`/jobs/claim`,method:`POST`,body:{jobKind:r,jobId:i,name:e.name,deviceId:a?.deviceId??e.deviceId,daemonId:e.daemonId,daemonName:a?.name}});this.printJson(o)})}),t.command(`release-job`).description(`Release a claimed automation job`),I(t.commands.at(-1),[{schema:F,options:[{name:`org`,source:`organizationId`,envVar:N},{name:`project`,source:`projectId`,envVar:P}]},{schema:u.z.object({workflowId:u.z.string().min(1).describe(`Workflow lock ID`),status:u.z.enum([`completed`,`failed`]).describe(`Release status (completed|failed)`),error:u.z.string().optional().describe(`Error message for failed runs`)}),options:[{name:`workflowId`,flag:`--workflow-id`},{name:`status`},{name:`error`,required:!1}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=await this.requestJson({org:t,project:n,path:`/jobs/release`,method:`POST`,body:{workflowId:e.workflowId,status:e.status,error:e.error}});this.printJson(r)})})}async resolveAutomationRoute(e){return{org:await this.resolveOrganizationId(e.org),project:await this.resolveProjectIdOption(e.project)}}resolveJobKind(e){if(e===`work-unit`||e===`task`)return e;throw Error(`Missing job kind. Pass --job-kind work-unit|task.`)}async resolveJobId(e,t){return e||(t===`work-unit`?this.resolveWorkUnitIdOption(void 0):this.resolveTaskIdOption(void 0))}async resolveDeviceId(e){if(e)return e;let t=await this.credentialsService.getDeviceId();if(t)return t;throw Error(`Missing device ID. Run login again or pass --device-id when using --daemon.`)}slugifyName(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);if(!t)throw Error(`Daemon name must contain at least one letter or number.`);return t}async ensureDaemon(e,t,n){let r=await this.resolveDeviceId(n),i=this.slugifyName(t),a=await this.requestOrgJson({org:e,path:`/daemons`,method:`POST`,body:{name:i,deviceId:r,hostname:m.default.hostname(),platform:process.platform,agentTypes:[{agentType:process.env.AGIFLOW_AGENT_TYPE||`codex`}]}});if(!a||typeof a!=`object`||!(`id`in a))throw Error(`Daemon registration response did not include a daemon ID.`);return{id:String(a.id),deviceId:r,name:i}}async requestJson(e){return this.requestUrlJson(`${this.configManager.getServerUrl().replace(/\/$/,``)}/api/v1/organizations/${e.org}/projects/${e.project}/automation${e.path}`,e)}async requestOrgJson(e){return this.requestUrlJson(`${this.configManager.getServerUrl().replace(/\/$/,``)}/api/v1/organizations/${e.org}${e.path}`,e)}async requestUrlJson(e,t){let n=await this.credentialsService.getApiKey();if(!n)throw Error(`No API key found. Set AGIFLOW_API_KEY or run authentication.`);let r=new URL(e);for(let[e,n]of Object.entries(t.query??{}))n!==void 0&&r.searchParams.set(e,String(n));let i=await fetch(r,{method:t.method??`GET`,headers:{"x-api-key":n,"x-client-type":`agent-cli`,"x-client-version":process.env.npm_package_version||`0.0.1`,"Content-Type":`application/json`,Accept:`application/json`},body:t.body?JSON.stringify(t.body):void 0}),a=await i.json().catch(()=>({}));if(!i.ok){let e=typeof a==`object`&&a&&`message`in a?String(a.message):i.statusText;throw Error(e)}return a}};en=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],en),u.z.enum([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`OPTIONS`,`HEAD`]);var tn=u.z.union([u.z.literal(200),u.z.literal(201),u.z.literal(204),u.z.literal(400),u.z.literal(401),u.z.literal(403),u.z.literal(404),u.z.literal(409),u.z.literal(422),u.z.literal(500),u.z.literal(502),u.z.literal(503)]);u.z.enum([`application/json`,`application/xml`,`text/plain`,`multipart/form-data`]),u.z.object({error:u.z.string(),message:u.z.string().optional(),statusCode:tn,details:u.z.record(u.z.string(),u.z.unknown()).optional()}),u.z.object({total:u.z.number(),limit:u.z.number(),offset:u.z.number(),hasNext:u.z.boolean().optional(),hasPrev:u.z.boolean().optional()});var nn=u.z.object({id:u.z.string(),name:u.z.string(),slug:u.z.string().nullable(),role:u.z.string()}).strict();u.z.object({organizations:u.z.array(nn)}).strict(),u.z.object({api_key:u.z.string().describe(`The API key for the agent`),key_id:u.z.string().describe(`ID of the API key`),organization_id:u.z.string().describe(`Organization ID`),organization_name:u.z.string().describe(`Organization name`),agent_user_id:u.z.string().describe(`User ID of the agent`),expires_at:u.z.number().describe(`Expiration timestamp in milliseconds`)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID to exchange token for`)}).strict(),u.z.object({success:u.z.boolean(),message:u.z.string()}).strict();var rn=u.z.object({organizationId:u.z.string(),projectId:u.z.string().nullable(),workUnitId:u.z.string().nullable(),taskId:u.z.string().nullable(),resourcePath:u.z.string(),scopes:u.z.string().nullable(),clientId:u.z.string(),expiresAt:u.z.string()}).strict(),an=u.z.object({id:u.z.string(),name:u.z.string(),slug:u.z.string(),role:u.z.string()}).strict();u.z.object({resourceContext:rn.nullable(),organizations:u.z.array(an)}).strict();var on=u.z.object({code_challenge:u.z.string().min(1)}).strict();u.z.object({success:u.z.boolean(),resourcePath:u.z.string(),organizationId:u.z.string(),projectId:u.z.string().nullable(),workUnitId:u.z.string().nullable(),taskId:u.z.string().nullable()}).strict(),u.z.object({codeChallenge:u.z.string().min(1),organizationId:u.z.string().optional(),clientId:u.z.string().optional(),projectId:u.z.string().optional(),workUnitId:u.z.string().optional(),taskId:u.z.string().optional()}).strict(),u.z.object({id:u.z.string(),name:u.z.string(),slug:u.z.string()}),u.z.object({name:u.z.string().min(2).max(80).describe(`Organization display name`)}).strict(),u.z.object({version:u.z.string()}).strict();var L=u.z.object({}).strict();u.z.object({version:u.z.string()}).strict();var R=u.z.object({}).strict();u.z.object({mcpServers:u.z.object({})}).strict();var sn=u.z.object({id:u.z.string(),mcpServerId:u.z.string(),serverName:u.z.string(),description:u.z.string().nullable(),isInternal:u.z.boolean(),scope:u.z.enum([`global`,`organization`,`project`,`task`]),isEnabled:u.z.boolean(),hasProgressiveDisclosure:u.z.boolean(),progressiveDisclosure:u.z.boolean(),disabledTools:u.z.array(u.z.string()).nullable(),disabledResources:u.z.array(u.z.string()).nullable(),serverConfig:u.z.object({}).nullable(),priority:u.z.number()}).strict();u.z.object({servers:u.z.array(sn),projectId:u.z.string().optional()}).strict();var cn=u.z.object({projectId:u.z.string().optional(),taskId:u.z.string().optional(),workUnitId:u.z.string().optional()}).strict();u.z.object({id:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string(),serverConfig:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledTools:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledResources:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),isEnabled:u.z.boolean(),priority:u.z.number().min(-9007199254740991).max(9007199254740991).int(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),mcpServerId:u.z.string().min(1),serverConfig:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledTools:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResources:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().optional(),priority:u.z.number().min(-9007199254740991).max(9007199254740991).int().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({serverName:u.z.string(),isEnabled:u.z.boolean(),disabledTools:u.z.array(u.z.string()).nullable(),disabledResources:u.z.array(u.z.string()).nullable(),serverConfig:u.z.object({}),priority:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),serverName:u.z.string().min(1)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1)}).strict(),u.z.object({serverConfig:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledTools:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResources:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().optional(),priority:u.z.number().min(-9007199254740991).max(9007199254740991).int().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({id:u.z.string(),organizationId:u.z.string(),projectId:u.z.string().nullable(),taskId:u.z.string().nullable(),workUnitId:u.z.string().nullable(),progressiveDisclosure:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}).strict();var z=u.z.object({projectId:u.z.string().optional(),taskId:u.z.string().optional(),workUnitId:u.z.string().optional()}).strict();u.z.object({progressiveDisclosure:u.z.boolean()}).strict(),u.z.object({progressiveDisclosure:u.z.boolean()}).strict();var ln=u.z.object({id:u.z.string(),organizationId:u.z.string().nullable(),serverName:u.z.string(),displayName:u.z.string(),description:u.z.string().nullable(),isInternal:u.z.boolean(),serverConfig:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),availableTools:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),availableResources:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({items:u.z.array(ln)}).strict();var un=u.z.union([u.z.object({type:u.z.string(),command:u.z.string().min(1),args:u.z.array(u.z.string()).optional(),env:u.z.object({}).optional()}).strict(),u.z.object({type:u.z.string(),url:u.z.string().url(),headers:u.z.object({}).optional()}).strict()]);u.z.object({serverName:u.z.string().min(1),displayName:u.z.string().min(1),description:u.z.string().optional(),serverConfig:un}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1)}).strict(),u.z.object({serverName:u.z.string().min(1).optional(),displayName:u.z.string().min(1).optional(),description:u.z.string().optional(),serverConfig:un.optional()}).strict(),u.z.object({mcpServers:u.z.object({})}).strict(),u.z.object({taskId:u.z.string().min(1)}).strict(),u.z.object({id:u.z.string(),taskId:u.z.string(),projectId:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string(),serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),isEnabled:u.z.boolean().nullable(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({taskId:u.z.string(),projectId:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string().min(1),serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().nullable().optional(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({serverName:u.z.string(),isEnabled:u.z.boolean(),disabledTools:u.z.array(u.z.string()).nullable(),disabledResources:u.z.array(u.z.string()).nullable(),serverConfig:u.z.object({}),priority:u.z.number()}).strict(),u.z.object({taskId:u.z.string().min(1),id:u.z.string().min(1)}).strict(),u.z.object({serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().nullable().optional(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({mcpServers:u.z.object({})}).strict(),u.z.object({workUnitId:u.z.string().min(1)}).strict(),u.z.object({id:u.z.string(),workUnitId:u.z.string(),projectId:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string(),serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),isEnabled:u.z.boolean().nullable(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({workUnitId:u.z.string().min(1),id:u.z.string().min(1)}).strict(),u.z.object({serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().nullable().optional(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),workUnitId:u.z.string().min(1)}).strict();var dn=u.z.object({id:u.z.string(),title:u.z.string(),slug:u.z.string(),description:u.z.string().nullable(),projectId:u.z.string(),parentWorkUnitId:u.z.string().nullable(),type:u.z.enum([`epic`,`feature`,`initiative`]).nullable(),priority:u.z.enum([`low`,`medium`,`high`]).nullable(),statusId:u.z.string().nullable(),status:u.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`]).nullable(),ownerId:u.z.string(),estimatedEffort:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),startDate:u.z.string().nullable(),targetDate:u.z.string().nullable(),completedAt:u.z.string().nullable(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),taskCount:u.z.number().optional().describe(`Number of tasks in this work unit`)}).strict(),fn=u.z.object({title:u.z.string().min(1).max(255).optional().describe(`Work unit title`),slug:u.z.string().optional().describe(`Work unit slug`),description:u.z.string().nullable().optional(),parentWorkUnitId:u.z.string().nullable().optional(),type:u.z.enum([`epic`,`feature`,`initiative`]).nullable().optional(),priority:u.z.enum([`low`,`medium`,`high`]).nullable().optional(),statusId:u.z.string().nullable().optional(),status:u.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`]).nullable().optional(),ownerId:u.z.string().min(1).optional().describe(`Owner member ID`),estimatedEffort:u.z.number().min(0).max(9007199254740991).int().nullable().optional(),startDate:u.z.string().nullable().optional(),targetDate:u.z.string().nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict();u.z.object({action:u.z.union([u.z.string(),u.z.string(),u.z.string()]),artifactId:u.z.string().min(1)}).strict();var pn=u.z.object({id:u.z.string(),organizationId:u.z.string().nullable(),projectId:u.z.string().nullable(),isStartedState:u.z.boolean(),isCompletionState:u.z.boolean(),isTerminalState:u.z.boolean(),isBlockedState:u.z.boolean(),isAgentPickable:u.z.boolean(),key:u.z.string(),name:u.z.string(),description:u.z.string().nullable(),position:u.z.number().min(-9007199254740991).max(9007199254740991).int(),color:u.z.string().nullable(),isActive:u.z.boolean(),isDefault:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({items:u.z.array(pn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1).optional()}).strict(),u.z.object({statusIds:u.z.array(u.z.string().min(1))}).strict(),u.z.object({organizationId:u.z.string().min(1).nullable().optional(),projectId:u.z.string().nullable().optional(),isStartedState:u.z.boolean().optional(),isCompletionState:u.z.boolean().optional(),isTerminalState:u.z.boolean().optional(),isBlockedState:u.z.boolean().optional(),isAgentPickable:u.z.boolean().optional(),key:u.z.string().min(1).max(50),name:u.z.string().min(1).max(100),description:u.z.string().max(500).nullable().optional(),position:u.z.number().min(0).max(9007199254740991).int().optional(),color:u.z.string().nullable().optional(),isActive:u.z.boolean().optional(),isDefault:u.z.boolean().optional()}).strict();var mn=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),search:u.z.string().optional(),sort:u.z.enum([`createdAt`,`updatedAt`,`name`,`position`,`key`]),order:u.z.enum([`asc`,`desc`])}).strict();u.z.object({projectId:u.z.string().nullable().optional(),isStartedState:u.z.boolean().optional(),isCompletionState:u.z.boolean().optional(),isTerminalState:u.z.boolean().optional(),isBlockedState:u.z.boolean().optional(),isAgentPickable:u.z.boolean().optional(),key:u.z.string().min(1).max(50).optional(),name:u.z.string().min(1).max(100).optional(),description:u.z.string().max(500).nullable().optional(),position:u.z.number().min(0).max(9007199254740991).int().optional(),color:u.z.string().nullable().optional(),isActive:u.z.boolean().optional(),isDefault:u.z.boolean().optional()}).strict();var hn=u.z.object({id:u.z.string(),deviceId:u.z.string(),organizationId:u.z.string(),memberId:u.z.string().nullable(),name:u.z.string(),status:u.z.enum([`starting`,`idle`,`busy`,`offline`]),hostname:u.z.string().nullable(),platform:u.z.string().nullable(),path:u.z.string().nullable(),lastHeartbeat:u.z.string(),createdAt:u.z.string(),updatedAt:u.z.string(),device:u.z.object({id:u.z.string(),deviceGuid:u.z.string(),organizationId:u.z.string(),memberId:u.z.string().nullable(),hostname:u.z.string().nullable(),platform:u.z.string().nullable(),architecture:u.z.string().nullable(),capabilities:u.z.array(u.z.string()).nullable(),firstSeen:u.z.string(),lastSeen:u.z.string(),metadata:u.z.object({}).nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),deviceAgentTypes:u.z.array(u.z.object({id:u.z.string(),deviceId:u.z.string(),agentTypeId:u.z.string(),hostEnabled:u.z.boolean(),dockerEnabled:u.z.boolean(),hostAuthed:u.z.boolean(),dockerAuthed:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string(),agentType:u.z.object({id:u.z.string(),organizationId:u.z.string().nullable(),name:u.z.string(),displayName:u.z.string(),description:u.z.string().nullable(),executable:u.z.string(),defaultArgs:u.z.string().nullable(),isEnabled:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict().nullable()}).strict())}).strict().nullable()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`)}).strict(),u.z.object({name:u.z.string().min(1).optional(),deviceId:u.z.string().min(1).optional(),deviceGuid:u.z.string().min(1).optional(),hostname:u.z.string().optional(),platform:u.z.string().optional(),workingDirectory:u.z.string().optional(),agentTypes:u.z.array(u.z.object({agentType:u.z.string().min(1),hostEnabled:u.z.boolean(),dockerEnabled:u.z.boolean(),hostAuthed:u.z.boolean(),dockerAuthed:u.z.boolean()}).strict()).optional()}).strict(),u.z.object({items:u.z.array(hn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var gn=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),status:u.z.enum([`starting`,`idle`,`busy`,`offline`]).optional(),search:u.z.string().optional(),sort:u.z.enum([`createdAt`,`updatedAt`,`lastHeartbeat`,`status`]),order:u.z.enum([`asc`,`desc`])}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),daemonId:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string()}).strict(),u.z.object({status:u.z.enum([`starting`,`idle`,`busy`,`offline`]).optional(),lastHeartbeat:u.z.string().optional(),name:u.z.string().optional(),hostname:u.z.string().optional(),platform:u.z.string().optional(),path:u.z.string().optional()}).strict();var _n=u.z.object({id:u.z.string(),organizationId:u.z.string().nullable(),name:u.z.string(),displayName:u.z.string(),description:u.z.string().nullable(),executable:u.z.string(),defaultArgs:u.z.string().nullable(),isEnabled:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`)}).strict(),u.z.object({name:u.z.string().min(1).max(255),displayName:u.z.string().min(1).max(255),description:u.z.string().optional(),executable:u.z.string().min(1).max(255),defaultArgs:u.z.string().optional(),isEnabled:u.z.boolean()}).strict(),u.z.object({items:u.z.array(_n),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var vn=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),search:u.z.string().optional(),sort:u.z.enum([`createdAt`,`updatedAt`,`name`,`displayName`]),order:u.z.enum([`asc`,`desc`]),isEnabled:u.z.boolean()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1)}).strict(),u.z.object({name:u.z.string().min(1).max(255).optional(),displayName:u.z.string().min(1).max(255).optional(),description:u.z.string().optional(),executable:u.z.string().min(1).max(255).optional(),defaultArgs:u.z.string().optional(),isEnabled:u.z.boolean().optional()}).strict();var yn=u.z.object({id:u.z.string(),organizationId:u.z.string(),agentTypeId:u.z.string(),name:u.z.string(),description:u.z.string().nullable(),isActive:u.z.boolean(),isDefault:u.z.boolean(),metadata:u.z.object({}).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`)}).strict(),u.z.object({agentTypeId:u.z.string().min(1),name:u.z.string().min(1).max(255),description:u.z.string().max(1e3).nullable().optional(),isDefault:u.z.boolean()}).strict(),u.z.object({items:u.z.array(yn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var bn=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),search:u.z.string().optional(),sort:u.z.enum([`createdAt`,`updatedAt`,`name`]),order:u.z.enum([`asc`,`desc`])}).strict(),xn=u.z.object({agentTypeId:u.z.string().min(1)}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string()}).strict(),u.z.object({}),u.z.object({name:u.z.string().min(1).max(255).optional(),description:u.z.string().max(1e3).nullable().optional(),isDefault:u.z.boolean().optional()}).strict(),u.z.object({}).strict();var Sn=u.z.object({id:u.z.string(),profileId:u.z.string(),credentialType:u.z.string(),customName:u.z.string().nullable(),r2Key:u.z.string(),size:u.z.number().max(9007199254740991).int(),checksum:u.z.string(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string(),type:u.z.enum([`gemini`,`codex`,`custom`]).optional()}).strict();var Cn=u.z.object({originalSize:u.z.number().max(9007199254740991).int(),fileCount:u.z.number().min(0).max(9007199254740991).int(),checksum:u.z.string().min(64).max(64)}).strict();u.z.object({credentialType:u.z.enum([`gemini`,`codex`,`custom`]),customName:u.z.string().min(1).max(255).optional(),data:u.z.string().min(1),metadata:Cn}).strict(),u.z.object({items:u.z.array(Sn),total:u.z.number().min(0).max(9007199254740991).int()}).strict();var wn=u.z.object({download:u.z.boolean()}).strict(),Tn=u.z.object({id:u.z.string(),agentProfileId:u.z.string(),key:u.z.string(),value:u.z.string(),description:u.z.string().nullable(),isRequired:u.z.boolean(),isSecret:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.array(Tn),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),profileId:u.z.string()}).strict(),u.z.object({}),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),profileId:u.z.string(),key:u.z.string()}).strict(),u.z.object({key:u.z.string().min(1).max(255),value:u.z.string().min(1),description:u.z.string().max(1e3).optional(),isRequired:u.z.boolean(),isSecret:u.z.boolean()}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({variables:u.z.array(u.z.object({key:u.z.string().min(1).max(255),value:u.z.string().min(1),description:u.z.string().max(1e3).optional(),isRequired:u.z.boolean(),isSecret:u.z.boolean()}).strict())}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string()}).strict(),u.z.object({url:u.z.string().url(),state:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),provider:u.z.enum([`github`,`gitlab`])}).strict(),u.z.object({redirectUri:u.z.string().url()}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({code:u.z.string().min(1),state:u.z.string().min(1)}).strict();var En=u.z.object({id:u.z.string(),organizationId:u.z.string(),provider:u.z.enum([`github`,`gitlab`]),scopes:u.z.array(u.z.string()),metadata:u.z.object({}).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.array(En),u.z.object({});var Dn=u.z.object({id:u.z.number(),name:u.z.string(),fullName:u.z.string(),cloneUrl:u.z.string(),sshUrl:u.z.string(),defaultBranch:u.z.string(),private:u.z.boolean(),owner:u.z.object({login:u.z.string(),avatarUrl:u.z.string().nullable()}).strict(),description:u.z.string().nullable(),updatedAt:u.z.string()}).strict();u.z.object({items:u.z.array(Dn),total:u.z.number()}).strict();var On=u.z.object({type:u.z.enum([`all`,`owner`,`public`,`private`,`member`]),sort:u.z.enum([`created`,`updated`,`pushed`,`full_name`]),direction:u.z.enum([`asc`,`desc`]),per_page:u.z.number().min(1).max(100),page:u.z.number().min(1)}).strict(),kn=u.z.object({name:u.z.string(),protected:u.z.boolean()}).strict();u.z.object({items:u.z.array(kn),total:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),owner:u.z.string().min(1),repo:u.z.string().min(1)}).strict();var An=u.z.object({per_page:u.z.number().min(1).max(100),page:u.z.number().min(1)}).strict(),jn=u.z.object({id:u.z.string(),name:u.z.string(),type:u.z.enum([`cli`,`desktop`,`mobile`,`web`]),platform:u.z.string().optional(),version:u.z.string().optional(),metadata:u.z.object({}).optional(),is_active:u.z.boolean(),last_seen_at:u.z.string().datetime().optional(),created_at:u.z.string().datetime(),updated_at:u.z.string().datetime(),agentTypes:u.z.array(u.z.object({agentTypeId:u.z.string(),name:u.z.string(),displayName:u.z.string(),description:u.z.string().nullable(),executable:u.z.string(),defaultArgs:u.z.string().nullable(),isEnabled:u.z.boolean(),hostEnabled:u.z.boolean(),dockerEnabled:u.z.boolean(),hostAuthed:u.z.boolean(),dockerAuthed:u.z.boolean()}).strict()).optional(),activeDaemon:u.z.object({id:u.z.string(),status:u.z.string(),lastHeartbeat:u.z.string().datetime(),isActive:u.z.boolean()}).strict().nullable().optional()}).strict();u.z.object({devices:u.z.array(jn),total:u.z.number()}).strict(),u.z.object({name:u.z.string().min(1),deviceGuid:u.z.string().min(1).optional(),type:u.z.enum([`cli`,`desktop`,`mobile`,`web`]),platform:u.z.string().optional(),version:u.z.string().optional(),metadata:u.z.object({}).optional(),agentTypes:u.z.array(u.z.object({agentType:u.z.string().min(1),hostEnabled:u.z.boolean(),dockerEnabled:u.z.boolean(),hostAuthed:u.z.boolean(),dockerAuthed:u.z.boolean()}).strict()).optional()}).strict(),u.z.object({name:u.z.string().min(1).optional(),metadata:u.z.object({}).optional(),is_active:u.z.boolean().optional()}).strict();var Mn=u.z.object({id:u.z.string(),deviceId:u.z.string(),agentTypeId:u.z.string(),hostEnabled:u.z.boolean(),dockerEnabled:u.z.boolean(),hostAuthed:u.z.boolean(),dockerAuthed:u.z.boolean(),createdAt:u.z.string().datetime(),updatedAt:u.z.string().datetime()}).strict();u.z.object({items:u.z.array(Mn),total:u.z.number()}).strict();var Nn=u.z.object({deviceId:u.z.string().optional(),agentTypeId:u.z.string().optional(),hostEnabled:u.z.boolean().optional(),dockerEnabled:u.z.boolean().optional(),hostAuthed:u.z.boolean().optional(),dockerAuthed:u.z.boolean().optional(),limit:u.z.number().min(1).max(100),offset:u.z.number().min(0)}).strict();u.z.object({deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1),hostEnabled:u.z.boolean(),dockerEnabled:u.z.boolean(),hostAuthed:u.z.boolean(),dockerAuthed:u.z.boolean()}).strict(),u.z.object({hostEnabled:u.z.boolean().optional(),dockerEnabled:u.z.boolean().optional(),hostAuthed:u.z.boolean().optional(),dockerAuthed:u.z.boolean().optional()}).strict(),u.z.object({hostEnabled:u.z.boolean().optional(),dockerEnabled:u.z.boolean().optional(),hostAuthed:u.z.boolean().optional(),dockerAuthed:u.z.boolean().optional()}).strict();var Pn=u.z.object({id:u.z.string(),name:u.z.string(),email:u.z.string(),emailVerified:u.z.boolean(),image:u.z.string().nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),twoFactorEnabled:u.z.boolean().nullable(),lastLoginMethod:u.z.string().nullable()}).strict(),Fn=u.z.object({id:u.z.string(),organizationId:u.z.string(),userId:u.z.string(),role:u.z.string(),createdAt:u.z.string(),description:u.z.string().nullable(),prompt:u.z.string().nullable()}).strict(),In=u.z.object({user:Pn,member:Fn}).strict();u.z.object({members:u.z.array(In),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Ln=u.z.object({limit:u.z.number().min(1).max(100).int().describe(`Max results`),offset:u.z.number().min(0).max(9007199254740991).int().describe(`Result offset`),sortBy:u.z.enum([`createdAt`,`name`,`email`]),sortDirection:u.z.enum([`asc`,`desc`]),filterField:u.z.enum([`role`,`createdAt`]).optional(),filterOperator:u.z.enum([`eq`,`ne`,`gt`,`gte`,`lt`,`lte`,`in`,`nin`,`contains`]).optional(),filterValue:u.z.string().optional()}).strict();u.z.object({created:u.z.array(In),errors:u.z.array(u.z.object({name:u.z.string(),error:u.z.string()}).strict()).optional()}).strict();var Rn=u.z.object({email:u.z.string().email().optional().describe(`Existing user email`),name:u.z.string().min(1).max(255).describe(`Agent member name`),description:u.z.string().optional().describe(`Agent description`),prompt:u.z.string().optional().describe(`Agent prompt`)}).strict();u.z.object({agents:u.z.array(Rn)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1)}).strict(),u.z.object({name:u.z.string().min(1).max(255).optional(),description:u.z.string().optional(),prompt:u.z.string().optional()}).strict(),u.z.object({success:u.z.boolean(),message:u.z.string()}).strict();var zn=u.z.object({id:u.z.string(),teamId:u.z.string(),userId:u.z.string(),createdAt:u.z.string(),user:u.z.object({id:u.z.string(),name:u.z.string(),email:u.z.string(),image:u.z.string().nullable().optional()}).strict().optional()}).strict();u.z.object({members:u.z.array(zn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),teamId:u.z.string().min(1)}).strict();var Bn=u.z.object({limit:u.z.number().min(1).max(100).int(),offset:u.z.number().min(0).max(9007199254740991).int()}).strict();u.z.object({userId:u.z.string().min(1)}).strict(),u.z.object({success:u.z.boolean(),message:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),teamId:u.z.string().min(1),userId:u.z.string().min(1)}).strict();var Vn=u.z.object({id:u.z.string(),teamId:u.z.string(),projectId:u.z.string(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({projects:u.z.array(Vn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),teamId:u.z.string().min(1)}).strict();var Hn=u.z.object({limit:u.z.number().min(1).max(100).int(),offset:u.z.number().min(0).max(9007199254740991).int()}).strict();u.z.object({projectId:u.z.string().min(1)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),teamId:u.z.string().min(1),projectId:u.z.string().min(1)}).strict();var Un=u.z.object({id:u.z.string(),key:u.z.string().optional().describe(`Only returned on creation`),name:u.z.string().optional(),prefix:u.z.string().optional(),start:u.z.string().optional().describe(`First characters of the key`),referenceId:u.z.string(),expiresAt:u.z.string().optional(),createdAt:u.z.string(),lastRequest:u.z.string().optional(),remaining:u.z.number().optional(),rateLimitEnabled:u.z.boolean(),permissions:u.z.object({}).optional(),metadata:u.z.object({}).optional()}).strict();u.z.object({name:u.z.string().min(1).max(255).optional().describe(`Optional name for the API key`),expiresIn:u.z.number().optional().describe(`Expiration time in seconds`),userId:u.z.string().optional().describe(`Optional user ID - defaults to authenticated user if not provided`),prefix:u.z.string().optional().describe(`Prefix for the API key`),remaining:u.z.number().optional().describe(`Number of requests remaining`),metadata:u.z.object({}).optional().describe(`Additional metadata for the API key`),refillAmount:u.z.number().optional().describe(`Amount to refill on interval`),refillInterval:u.z.number().optional().describe(`Refill interval in milliseconds`),rateLimitTimeWindow:u.z.number().optional().describe(`Rate limit time window in ms`),rateLimitMax:u.z.number().optional().describe(`Maximum requests in time window`),rateLimitEnabled:u.z.boolean().optional().describe(`Enable rate limiting`),permissions:u.z.object({}).optional().describe(`Permissions for the API key`)}).strict(),u.z.object({items:u.z.array(Un),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Wn=u.z.object({userId:u.z.string().optional().describe(`Filter by user ID`),includeExpired:u.z.boolean().optional().describe(`Include expired keys`),limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),search:u.z.string().optional(),sort:u.z.enum([`createdAt`,`updatedAt`,`name`,`lastRequest`]),order:u.z.enum([`asc`,`desc`])}).strict();u.z.object({id:u.z.string()}).strict();var Gn=u.z.object({id:u.z.string(),activityType:u.z.enum([`ai_completion`,`task_created`,`task_updated`,`task_completed`,`task_assigned`,`task_deleted`,`work_unit_created`,`work_unit_updated`,`work_unit_deleted`,`branch_created`,`collaboration`,`project_created`,`project_updated`,`agent_started`,`agent_stopped`,`agent_error`,`comment_added`,`device_connected`,`device_disconnected`,`member_joined`,`member_left`]),title:u.z.string(),description:u.z.string().nullable(),organizationId:u.z.string(),projectId:u.z.string().nullable(),taskId:u.z.string().nullable(),memberId:u.z.string().nullable(),agentSessionId:u.z.string().nullable(),deviceId:u.z.string().nullable(),daemonId:u.z.string().nullable(),metadata:u.z.object({duration:u.z.string().optional(),success:u.z.boolean().optional(),errorMessage:u.z.string().optional(),priority:u.z.enum([`low`,`medium`,`high`]).optional(),estimatedHours:u.z.number().nullable().optional(),previousStatus:u.z.string().optional(),newStatus:u.z.string().optional(),assignedFrom:u.z.string().optional(),assignedTo:u.z.string().optional(),branch:u.z.string().optional(),commits:u.z.number().nullable().optional(),repository:u.z.string().optional(),participants:u.z.number().nullable().optional(),messages:u.z.number().nullable().optional(),discussionTopic:u.z.string().optional(),agentType:u.z.string().optional(),executionTime:u.z.number().nullable().optional(),resourcesUsed:u.z.object({cpu:u.z.number().nullable().optional(),memory:u.z.number().nullable().optional()}).strict().optional(),oldValue:u.z.any().optional(),newValue:u.z.any().optional(),changes:u.z.object({}).optional(),tags:u.z.array(u.z.string()).optional(),relatedEntityId:u.z.string().optional(),relatedEntityType:u.z.string().optional()}).strict().nullable(),ipAddress:u.z.string().nullable(),userAgent:u.z.string().nullable(),createdAt:u.z.string()}).strict();u.z.object({items:u.z.array(Gn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`)}).strict();var Kn=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),activityType:u.z.enum([`ai_completion`,`task_created`,`task_updated`,`task_completed`,`task_assigned`,`task_deleted`,`work_unit_created`,`work_unit_updated`,`work_unit_deleted`,`branch_created`,`collaboration`,`project_created`,`project_updated`,`agent_started`,`agent_stopped`,`agent_error`,`comment_added`,`device_connected`,`device_disconnected`,`member_joined`,`member_left`]).optional(),projectId:u.z.string().optional(),taskId:u.z.string().optional(),memberId:u.z.string().optional(),agentSessionId:u.z.string().optional(),deviceId:u.z.string().optional(),daemonId:u.z.string().optional(),sort:u.z.enum([`createdAt`,`activityType`,`title`]),order:u.z.enum([`asc`,`desc`]),search:u.z.string().optional()}).strict(),qn=u.z.object({activityType:u.z.enum([`ai_completion`,`task_created`,`task_updated`,`task_completed`,`task_assigned`,`task_deleted`,`work_unit_created`,`work_unit_updated`,`work_unit_deleted`,`branch_created`,`collaboration`,`project_created`,`project_updated`,`agent_started`,`agent_stopped`,`agent_error`,`comment_added`,`device_connected`,`device_disconnected`,`member_joined`,`member_left`]),title:u.z.string().min(1),description:u.z.string().optional(),projectId:u.z.string().optional(),taskId:u.z.string().optional(),memberId:u.z.string().optional(),agentSessionId:u.z.string().optional(),deviceId:u.z.string().optional(),daemonId:u.z.string().optional(),metadata:u.z.object({duration:u.z.string().optional(),success:u.z.boolean().optional(),errorMessage:u.z.string().optional(),priority:u.z.enum([`low`,`medium`,`high`]).optional(),estimatedHours:u.z.number().nullable().optional(),previousStatus:u.z.string().optional(),newStatus:u.z.string().optional(),assignedFrom:u.z.string().optional(),assignedTo:u.z.string().optional(),branch:u.z.string().optional(),commits:u.z.number().nullable().optional(),repository:u.z.string().optional(),participants:u.z.number().nullable().optional(),messages:u.z.number().nullable().optional(),discussionTopic:u.z.string().optional(),agentType:u.z.string().optional(),executionTime:u.z.number().nullable().optional(),resourcesUsed:u.z.object({cpu:u.z.number().nullable().optional(),memory:u.z.number().nullable().optional()}).strict().optional(),oldValue:u.z.any().optional(),newValue:u.z.any().optional(),changes:u.z.object({}).optional(),tags:u.z.array(u.z.string()).optional(),relatedEntityId:u.z.string().optional(),relatedEntityType:u.z.string().optional()}).strict().optional(),ipAddress:u.z.string().optional(),userAgent:u.z.string().optional()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),activityId:u.z.string().min(1)}).strict(),u.z.object({title:u.z.string().min(1).optional(),description:u.z.string().optional(),metadata:u.z.object({duration:u.z.string().optional(),success:u.z.boolean().optional(),errorMessage:u.z.string().optional(),priority:u.z.enum([`low`,`medium`,`high`]).optional(),estimatedHours:u.z.number().nullable().optional(),previousStatus:u.z.string().optional(),newStatus:u.z.string().optional(),assignedFrom:u.z.string().optional(),assignedTo:u.z.string().optional(),branch:u.z.string().optional(),commits:u.z.number().nullable().optional(),repository:u.z.string().optional(),participants:u.z.number().nullable().optional(),messages:u.z.number().nullable().optional(),discussionTopic:u.z.string().optional(),agentType:u.z.string().optional(),executionTime:u.z.number().nullable().optional(),resourcesUsed:u.z.object({cpu:u.z.number().nullable().optional(),memory:u.z.number().nullable().optional()}).strict().optional(),oldValue:u.z.any().optional(),newValue:u.z.any().optional(),changes:u.z.object({}).optional(),tags:u.z.array(u.z.string()).optional(),relatedEntityId:u.z.string().optional(),relatedEntityType:u.z.string().optional()}).strict().optional()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),taskId:u.z.string().min(1).describe(`Task ID or slug`)}).strict();var Jn=u.z.object({id:u.z.string(),title:u.z.string(),slug:u.z.string(),description:u.z.string().nullable(),projectId:u.z.string(),workUnitId:u.z.string().nullable(),statusId:u.z.string(),assigneeId:u.z.string().nullable(),creatorId:u.z.string(),position:u.z.number().min(-9007199254740991).max(9007199254740991).int(),priority:u.z.enum([`low`,`medium`,`high`]),dueDate:u.z.string().nullable(),startedAt:u.z.string().nullable(),completedAt:u.z.string().nullable(),acceptanceCriteria:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),tags:u.z.array(u.z.string()).nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),status:u.z.object({id:u.z.string(),key:u.z.string(),name:u.z.string(),description:u.z.string().nullable(),position:u.z.number(),color:u.z.string().nullable(),isActive:u.z.boolean(),isDefault:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict().nullable().optional(),project:u.z.object({id:u.z.string(),name:u.z.string(),description:u.z.string().nullable()}).strict().nullable().optional(),assignee:u.z.object({id:u.z.string(),name:u.z.string(),email:u.z.string(),role:u.z.string()}).strict().nullable().optional(),workUnit:u.z.object({id:u.z.string(),title:u.z.string(),slug:u.z.string(),type:u.z.string().nullable(),priority:u.z.string().nullable(),status:u.z.string().nullable()}).strict().nullable().optional()}).strict();u.z.object({items:u.z.array(Jn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Yn=u.z.object({limit:u.z.number().min(1).max(100).describe(`Max results`),offset:u.z.number().min(0).describe(`Result offset`),search:u.z.string().optional().describe(`Search tasks`),sort:u.z.enum([`createdAt`,`updatedAt`,`title`,`position`,`priority`,`dueDate`]).describe(`Sort field`),order:u.z.enum([`asc`,`desc`]).describe(`Sort order`),columnId:u.z.string().optional(),statusId:u.z.string().optional(),statusIds:u.z.array(u.z.string()).optional().describe(`Comma-separated status IDs`),workUnitId:u.z.string().optional().describe(`Work unit ID`),assigneeId:u.z.string().optional().describe(`Assignee member ID`),priority:u.z.enum([`low`,`medium`,`high`]).optional().describe(`Task priority`),projectId:u.z.string().optional().describe(`Project ID`),tags:u.z.array(u.z.string()).optional().describe(`Comma-separated tags`),statusFilter:u.z.enum([`active`,`all`]).describe(`Status filter`)}).strict(),Xn=u.z.object({title:u.z.string().min(1).max(255).optional().describe(`Task title`),slug:u.z.string().optional().describe(`Task slug`),description:u.z.string().nullable().optional(),workUnitId:u.z.string().nullable().optional(),statusId:u.z.string().min(1).optional(),assigneeId:u.z.string().nullable().optional(),position:u.z.number().min(0).max(9007199254740991).int().optional().describe(`Task position`),priority:u.z.enum([`low`,`medium`,`high`]).optional().describe(`Task priority`),dueDate:u.z.string().nullable().optional(),acceptanceCriteria:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),tags:u.z.array(u.z.string()).nullable().nullable().optional()}).strict(),Zn=u.z.object({id:u.z.string(),key:u.z.string(),name:u.z.string(),size:u.z.number(),contentType:u.z.string().optional(),isPreviewable:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({items:u.z.array(Zn),total:u.z.number()}).strict();var Qn=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0)}).strict();u.z.object({url:u.z.string(),expiresIn:u.z.number()}).strict();var $n=u.z.object({key:u.z.string().min(1)}).strict();u.z.object({action:u.z.union([u.z.string(),u.z.string(),u.z.string()]),artifactId:u.z.string().min(1)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),statusId:u.z.string().min(1)}).strict();var er=u.z.object({taskIds:u.z.array(u.z.string().min(1))}).strict(),tr=u.z.object({id:u.z.string(),taskId:u.z.string(),memberId:u.z.string(),assigneeId:u.z.string().nullable(),content:u.z.string(),info:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),member:u.z.object({id:u.z.string(),name:u.z.string().nullable(),email:u.z.string()}).strict().nullable(),assignee:u.z.object({id:u.z.string(),name:u.z.string().nullable(),email:u.z.string()}).strict().nullable()}).strict(),nr=u.z.object({assigneeId:u.z.string().nullable().nullable().optional(),content:u.z.string().min(1).max(1e4).describe(`Comment content`),info:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict();u.z.object({items:u.z.array(tr),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var rr=u.z.object({limit:u.z.number().min(1).max(100).describe(`Max results`),offset:u.z.number().min(0).describe(`Result offset`),sort:u.z.enum([`createdAt`,`updatedAt`]).describe(`Sort field`),order:u.z.enum([`asc`,`desc`]).describe(`Sort order`)}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),taskId:u.z.string().min(1).describe(`Task ID or slug`),commentId:u.z.string().min(1).describe(`Comment ID`)}).strict();var ir=u.z.object({assigneeId:u.z.string().nullable().nullable().optional(),content:u.z.string().min(1).max(1e4).optional().describe(`Comment content`),info:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict();u.z.object({mcpServers:u.z.object({})}).strict(),u.z.object({projectId:u.z.string().min(1)}).strict(),u.z.object({id:u.z.string(),projectId:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string(),serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),isEnabled:u.z.boolean().nullable(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({projectId:u.z.string(),organizationId:u.z.string(),mcpServerId:u.z.string().min(1),serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().nullable().optional(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({serverName:u.z.string(),isEnabled:u.z.boolean(),disabledTools:u.z.array(u.z.string()).nullable(),disabledResources:u.z.array(u.z.string()).nullable(),serverConfig:u.z.object({}),priority:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1),id:u.z.string().min(1)}).strict(),u.z.object({serverConfigOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledToolsOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),disabledResourcesOverride:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),isEnabled:u.z.boolean().nullable().optional(),priorityOverride:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`),workUnitId:u.z.string().min(1).describe(`Work unit ID or slug`)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`)}).strict(),u.z.object({title:u.z.string().min(1).max(255).describe(`Work unit title`),slug:u.z.string().optional().describe(`Work unit slug`),description:u.z.string().nullable().optional(),projectId:u.z.string().min(1).optional(),parentWorkUnitId:u.z.string().nullable().optional(),type:u.z.enum([`epic`,`feature`,`initiative`]).nullable().optional(),priority:u.z.enum([`low`,`medium`,`high`]).nullable().optional(),statusId:u.z.string().nullable().optional(),status:u.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`]).nullable().optional(),ownerId:u.z.string().min(1).optional().describe(`Owner member ID`),estimatedEffort:u.z.number().min(0).max(9007199254740991).int().nullable().optional(),startDate:u.z.string().nullable().optional(),targetDate:u.z.string().nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional()}).strict(),u.z.object({items:u.z.array(dn),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var ar=u.z.object({limit:u.z.number().min(1).max(100).describe(`Max results`),offset:u.z.number().min(0).describe(`Result offset`),search:u.z.string().optional().describe(`Search work units`),sort:u.z.enum([`createdAt`,`updatedAt`,`title`,`priority`,`targetDate`]).describe(`Sort field`),order:u.z.enum([`asc`,`desc`]).describe(`Sort order`),type:u.z.enum([`epic`,`feature`,`initiative`]).optional().describe(`Work unit type`),priority:u.z.enum([`low`,`medium`,`high`]).optional().describe(`Work unit priority`),statuses:u.z.array(u.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`])).optional().describe(`Comma-separated work unit statuses`),statusId:u.z.string().optional().describe(`Kanban status ID`),excludeStatus:u.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`]).optional().describe(`Exclude status`),ownerId:u.z.string().optional().describe(`Owner member ID`),parentWorkUnitId:u.z.string().optional().describe(`Parent work unit ID`)}).strict();u.z.object({progress:u.z.number().describe(`Overall progress percentage (0-100)`),completedTasks:u.z.number().describe(`Number of completed direct tasks`),totalTasks:u.z.number().describe(`Total number of direct tasks`),completedChildWorkUnits:u.z.number().describe(`Number of completed child work units`),totalChildWorkUnits:u.z.number().describe(`Total number of child work units`)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`),taskId:u.z.string().min(1)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`)}).strict();var or=u.z.object({title:u.z.string().min(1).max(255).describe(`Task title`),slug:u.z.string().optional().describe(`Task slug`),description:u.z.string().nullable().optional(),projectId:u.z.string().min(1).optional(),workUnitId:u.z.string().nullable().optional(),statusId:u.z.string().min(1).optional(),assigneeId:u.z.string().nullable().optional(),position:u.z.number().min(0).max(9007199254740991).int().optional().describe(`Task position`),priority:u.z.enum([`low`,`medium`,`high`]).optional().describe(`Task priority`),dueDate:u.z.string().nullable().optional(),acceptanceCriteria:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),testCases:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),tags:u.z.array(u.z.string()).nullable().nullable().optional()}).strict(),sr=u.z.object({columnId:u.z.string().min(1),position:u.z.number().min(0).max(9007199254740991).int()}).strict(),cr=u.z.object({id:u.z.string(),taskId:u.z.string().nullable(),projectId:u.z.string().nullable(),workUnitId:u.z.string().nullable(),organizationId:u.z.string(),deviceId:u.z.string().nullable(),daemonId:u.z.string().nullable(),status:u.z.enum([`starting`,`idle`,`paused`,`stopped`,`error`]),currentAgentType:u.z.string().nullable(),contextData:u.z.object({conversationSessionId:u.z.string().optional(),workingDirectory:u.z.string().optional(),environment:u.z.object({}).optional(),args:u.z.array(u.z.string()).optional(),commands:u.z.array(u.z.string()).optional(),mcps:u.z.any().optional(),docker:u.z.boolean().optional(),autonomous:u.z.boolean().optional(),terminalCols:u.z.number().optional(),terminalRows:u.z.number().optional(),worktree:u.z.union([u.z.boolean(),u.z.object({branch:u.z.string().optional(),name:u.z.string().optional()}).strict()]).optional()}).strict().nullable().optional(),totalCost:u.z.number().nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),lastViewed:u.z.string().nullable(),agentType:u.z.object({id:u.z.string(),name:u.z.string(),displayName:u.z.string(),description:u.z.string().nullable(),executable:u.z.string(),isEnabled:u.z.boolean()}).strict().nullable().optional(),task:u.z.object({id:u.z.string(),title:u.z.string(),description:u.z.string().nullable(),priority:u.z.string().nullable(),statusId:u.z.string()}).strict().nullable().optional(),project:u.z.object({id:u.z.string(),name:u.z.string(),description:u.z.string().nullable(),color:u.z.string().nullable(),isArchived:u.z.boolean()}).strict().nullable().optional(),workUnit:u.z.object({id:u.z.string(),title:u.z.string(),description:u.z.string().nullable(),type:u.z.string(),priority:u.z.string().nullable(),status:u.z.string()}).strict().nullable().optional()}).strict();u.z.object({taskId:u.z.string().optional(),projectId:u.z.string().optional(),workUnitId:u.z.string().optional(),contextData:u.z.object({conversationSessionId:u.z.string().optional(),workingDirectory:u.z.string().optional(),environment:u.z.object({}).optional(),args:u.z.array(u.z.string()).optional(),commands:u.z.array(u.z.string()).optional(),mcps:u.z.any().optional(),docker:u.z.boolean().optional(),autonomous:u.z.boolean().optional(),terminalCols:u.z.number().optional(),terminalRows:u.z.number().optional(),worktree:u.z.union([u.z.boolean(),u.z.object({branch:u.z.string().optional(),name:u.z.string().optional()}).strict()]).optional()}).strict().optional()}).strict(),u.z.object({items:u.z.array(cr),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var B=u.z.object({limit:u.z.number().min(1).max(100).optional(),offset:u.z.number().min(0).optional(),search:u.z.string().optional(),sort:u.z.enum([`createdAt`,`updatedAt`,`name`]).optional(),order:u.z.enum([`asc`,`desc`]).optional(),status:u.z.enum([`starting`,`idle`,`paused`,`stopped`,`error`]).optional()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),agentSessionId:u.z.string().min(1)}).strict(),u.z.object({status:u.z.enum([`starting`,`idle`,`paused`,`stopped`,`error`]).optional(),daemonId:u.z.string().optional(),currentAgentType:u.z.string().optional(),contextData:u.z.object({conversationSessionId:u.z.string().optional(),workingDirectory:u.z.string().optional(),environment:u.z.object({}).optional(),args:u.z.array(u.z.string()).optional(),commands:u.z.array(u.z.string()).optional(),mcps:u.z.any().optional(),docker:u.z.boolean().optional(),autonomous:u.z.boolean().optional(),terminalCols:u.z.number().optional(),terminalRows:u.z.number().optional(),worktree:u.z.union([u.z.boolean(),u.z.object({branch:u.z.string().optional(),name:u.z.string().optional()}).strict()]).optional()}).strict().optional(),lastViewed:u.z.string().optional()}).strict(),u.z.object({daemonId:u.z.string().optional(),currentAgentType:u.z.string().min(1),contextData:u.z.object({conversationSessionId:u.z.string().optional(),workingDirectory:u.z.string().optional(),environment:u.z.object({}).optional(),args:u.z.array(u.z.string()).optional(),commands:u.z.array(u.z.string()).optional(),mcps:u.z.any().optional(),docker:u.z.boolean().optional(),autonomous:u.z.boolean().optional(),terminalCols:u.z.number().optional(),terminalRows:u.z.number().optional(),worktree:u.z.union([u.z.boolean(),u.z.object({branch:u.z.string().optional(),name:u.z.string().optional()}).strict()]).optional()}).strict().optional(),executionMode:u.z.enum([`daemon`,`acp-cloud`,`acp-local`])}).strict(),u.z.object({contextData:u.z.object({conversationSessionId:u.z.string().optional(),workingDirectory:u.z.string().optional(),environment:u.z.object({}).optional(),args:u.z.array(u.z.string()).optional(),commands:u.z.array(u.z.string()).optional(),mcps:u.z.any().optional(),docker:u.z.boolean().optional(),autonomous:u.z.boolean().optional(),terminalCols:u.z.number().optional(),terminalRows:u.z.number().optional(),worktree:u.z.union([u.z.boolean(),u.z.object({branch:u.z.string().optional(),name:u.z.string().optional()}).strict()]).optional()}).strict().optional()}).strict(),u.z.object({command:u.z.string(),description:u.z.string(),environment:u.z.object({}),sessionId:u.z.string()}).strict(),u.z.object({agentTypeId:u.z.string().min(1),agentProfileId:u.z.string().optional(),workingDirectory:u.z.string().optional()}).strict(),u.z.object({success:u.z.boolean()}).strict(),u.z.object({messages:u.z.array(u.z.object({role:u.z.enum([`user`,`assistant`]),content:u.z.array(u.z.any())}).strict()),acpSessionId:u.z.string().min(1)}).strict(),u.z.object({acpSessionId:u.z.string().min(1)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1)}).strict();var lr=u.z.object({sessionId:u.z.string().optional(),transportType:u.z.string().optional()}).strict(),ur=u.z.object({id:u.z.string(),environmentId:u.z.string(),key:u.z.string(),value:u.z.string(),description:u.z.string().nullable(),isSecret:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.array(ur),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`),environmentId:u.z.string().min(1)}).strict(),u.z.object({}),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`),environmentId:u.z.string().min(1),key:u.z.string().min(1)}).strict(),u.z.object({value:u.z.string().min(1),description:u.z.string().optional(),isSecret:u.z.boolean()}).strict(),u.z.object({entries:u.z.array(u.z.object({key:u.z.string().min(1).max(255),value:u.z.string().min(1),description:u.z.string().optional(),isSecret:u.z.boolean()}).strict())}).strict();var dr=u.z.object({id:u.z.string(),projectId:u.z.string(),name:u.z.string(),key:u.z.string(),type:u.z.string(),description:u.z.string().nullable(),isDefault:u.z.boolean(),permissions:u.z.string(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.array(dr);var fr=u.z.object({read:u.z.array(u.z.string()),write:u.z.array(u.z.string())}).strict();u.z.object({name:u.z.string().min(1).max(255),key:u.z.string().min(1).max(255),type:u.z.enum([`development`,`staging`,`production`,`custom`]),description:u.z.string().nullable().optional(),isDefault:u.z.boolean(),permissions:fr.optional()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),projectId:u.z.string().min(1).describe(`Project ID or slug`),environmentId:u.z.string().min(1)}).strict(),u.z.object({name:u.z.string().min(1).max(255).optional(),key:u.z.string().min(1).max(255).optional(),type:u.z.enum([`development`,`staging`,`production`,`custom`]).optional(),description:u.z.string().nullable().optional(),isDefault:u.z.boolean().optional(),permissions:fr.optional()}).strict(),u.z.object({message:u.z.string()}).strict();var pr=u.z.object({id:u.z.string(),organizationId:u.z.string(),projectId:u.z.string(),workUnitId:u.z.string().nullable(),taskId:u.z.string().nullable(),deviceId:u.z.string().nullable(),daemonId:u.z.string().nullable(),name:u.z.string(),status:u.z.enum([`running`,`completed`,`failed`]),contextData:u.z.string().nullable(),error:u.z.string().nullable(),startedAt:u.z.string(),completedAt:u.z.string().nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),mr=u.z.object({id:u.z.string(),name:u.z.string(),startedAt:u.z.string()}).strict();u.z.object({error:u.z.string(),holder:mr}).strict(),u.z.object({name:u.z.string().min(1),workUnitId:u.z.string().optional(),taskId:u.z.string().optional(),deviceId:u.z.string().optional(),daemonId:u.z.string().optional(),contextData:u.z.string().optional()}).strict(),u.z.object({items:u.z.array(pr),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var hr=u.z.object({status:u.z.enum([`running`,`completed`,`failed`]).optional(),deviceId:u.z.string().optional(),daemonId:u.z.string().optional(),limit:u.z.number().min(1).max(100).optional(),offset:u.z.number().min(0).optional()}).strict(),gr=u.z.object({workUnitId:u.z.string().optional(),taskId:u.z.string().optional()}).strict();u.z.object({id:u.z.string().min(1)}).strict(),u.z.object({name:u.z.string().min(1).optional(),contextData:u.z.string().nullable().optional()}).strict(),u.z.object({status:u.z.enum([`completed`,`failed`]),error:u.z.string().optional()}).strict();var _r=u.z.enum([`work-unit`,`task`]),vr=u.z.object({id:u.z.string(),kind:_r,slug:u.z.string(),title:u.z.string(),description:u.z.string().nullable(),status:u.z.string(),priority:u.z.string().nullable(),createdAt:u.z.string(),payload:u.z.object({})}).strict();u.z.object({items:u.z.array(vr)}).strict();var yr=u.z.object({jobKind:_r,jobId:u.z.string().min(1),format:u.z.string()}).strict();u.z.object({claimed:u.z.boolean(),workflowId:u.z.string().optional(),job:vr.nullable().optional(),holder:u.z.object({id:u.z.string(),name:u.z.string(),deviceId:u.z.string().nullable(),daemonId:u.z.string().nullable(),startedAt:u.z.string()}).strict().optional()}).strict(),u.z.object({jobKind:_r,jobId:u.z.string().min(1),name:u.z.string().min(1),deviceId:u.z.string().optional(),daemonId:u.z.string().optional(),daemonName:u.z.string().optional()}).strict(),u.z.object({released:u.z.boolean(),workflowId:u.z.string(),status:u.z.enum([`completed`,`failed`]),job:vr.nullable()}).strict(),u.z.object({workflowId:u.z.string().min(1),status:u.z.enum([`completed`,`failed`]),error:u.z.string().optional()}).strict();var br=u.z.object({name:u.z.string(),color:u.z.string()}).strict(),xr=u.z.object({id:u.z.string(),name:u.z.string(),description:u.z.string(),icon:u.z.string(),color:u.z.string(),statuses:u.z.array(br)}).strict();u.z.object({templates:u.z.array(xr)}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),id:u.z.string().min(1).describe(`Project ID or slug`)}).strict(),u.z.object({id:u.z.string(),name:u.z.string(),slug:u.z.string(),key:u.z.string(),description:u.z.string().nullable(),organizationId:u.z.string(),ownerId:u.z.string(),path:u.z.string().nullable(),templateId:u.z.string().nullable(),hooks:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),color:u.z.string().nullable(),icon:u.z.string().nullable(),isArchived:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({error:u.z.string(),message:u.z.string(),feature:u.z.enum([`seats`,`projects`,`apiKeys`,`mcpServers`]),plan:u.z.string(),limit:u.z.number(),used:u.z.number(),upgradeRequired:u.z.boolean()}).strict();var Sr=u.z.object({name:u.z.string().min(1).max(255).describe(`Project name`),slug:u.z.string().optional().describe(`Project slug`),description:u.z.string().nullable().optional(),organizationId:u.z.string().optional(),path:u.z.string().nullable().optional(),templateId:u.z.string().nullable().optional(),hooks:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),color:u.z.string().nullable().optional(),icon:u.z.string().nullable().optional()}).strict(),Cr=u.z.object({id:u.z.string(),title:u.z.string(),value:u.z.number(),change:u.z.string(),trend:u.z.enum([`up`,`down`,`neutral`]),period:u.z.string()}).strict();u.z.object({activeProjects:u.z.number(),tasksInProgress:u.z.number(),completedTasks:u.z.number(),blockedTasks:u.z.number(),stats:u.z.array(Cr)}).strict();var wr=u.z.object({period:u.z.enum([`7`,`30`,`90`])}).strict();u.z.object({items:u.z.array(pn),total:u.z.number(),limit:u.z.number().optional(),offset:u.z.number().optional()}).strict();var Tr=u.z.object({id:u.z.string(),name:u.z.string(),email:u.z.string(),role:u.z.string()}).strict().nullable(),Er=u.z.object({id:u.z.string(),name:u.z.string(),slug:u.z.string(),key:u.z.string(),description:u.z.string().nullable(),organizationId:u.z.string(),path:u.z.string().nullable(),templateId:u.z.string().nullable(),hooks:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable(),color:u.z.string().nullable(),icon:u.z.string().nullable(),isArchived:u.z.boolean(),createdAt:u.z.string(),updatedAt:u.z.string(),owner:Tr}).strict();u.z.object({items:u.z.array(Er),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Dr=u.z.object({limit:u.z.number().min(1).max(100).describe(`Max results`),offset:u.z.number().min(0).describe(`Result offset`),search:u.z.string().optional().describe(`Search projects`),sort:u.z.enum([`createdAt`,`updatedAt`,`name`]).describe(`Sort field`),order:u.z.enum([`asc`,`desc`]).describe(`Sort order`)}).strict(),Or=u.z.object({name:u.z.string().min(1).max(255).optional().describe(`Project name`),slug:u.z.string().optional().describe(`Project slug`),description:u.z.string().nullable().optional(),organizationId:u.z.string().optional(),path:u.z.string().nullable().optional(),templateId:u.z.string().nullable().optional(),hooks:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),devInfo:u.z.union([u.z.union([u.z.string(),u.z.number(),u.z.boolean(),u.z.any()]),u.z.object({}),u.z.array(u.z.any())]).nullable().optional(),color:u.z.string().nullable().optional(),icon:u.z.string().nullable().optional(),isArchived:u.z.boolean().optional().describe(`Whether project is archived`)}).strict(),V=u.z.object({id:u.z.string(),key:u.z.string(),name:u.z.string(),status:u.z.enum([`pending`,`uploaded`]),size:u.z.number().nullable(),contentType:u.z.string().optional(),isPreviewable:u.z.boolean(),labels:u.z.array(u.z.string()).nullable().optional(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({items:u.z.array(V),total:u.z.number()}).strict(),u.z.object({url:u.z.string(),expiresIn:u.z.number()}).strict();var kr=u.z.object({key:u.z.string().min(1)}).strict();u.z.object({url:u.z.string(),key:u.z.string(),artifact:V}).strict();var Ar=u.z.object({filename:u.z.string().min(1),contentType:u.z.string().optional()}).strict();u.z.object({artifact:V}).strict(),u.z.object({key:u.z.string().min(1)}).strict(),u.z.object({items:u.z.array(V)}).strict();var jr=u.z.object({key:u.z.string().min(1),name:u.z.string().min(1),status:u.z.enum([`pending`,`uploaded`]),size:u.z.number().nullable().optional(),contentType:u.z.string().optional(),isPreviewable:u.z.boolean(),labels:u.z.array(u.z.string()).nullable().optional()}).strict();u.z.object({items:u.z.array(jr)}).strict();var Mr=u.z.object({key:u.z.string().min(1)}).strict();u.z.object({balanceCents:u.z.number(),monthlyIncludedMinutes:u.z.number(),usedIncludedMinutes:u.z.number(),includedMinutesRemaining:u.z.number(),autoRechargeEnabled:u.z.boolean(),autoRechargeThresholdCents:u.z.number(),autoRechargeAmountCents:u.z.number(),overdraftLimitCents:u.z.number(),includedMinutesResetAt:u.z.string().nullable()}).strict(),u.z.object({organizationId:u.z.string().min(1)}).strict(),u.z.object({checkoutUrl:u.z.string().url(),sessionId:u.z.string()}).strict(),u.z.object({amountCents:u.z.number().min(500).max(1e5),successUrl:u.z.string().url(),cancelUrl:u.z.string().url()}).strict(),u.z.object({enabled:u.z.boolean(),thresholdCents:u.z.number().min(0).max(1e5).optional(),amountCents:u.z.number().min(500).max(1e5).optional()}).strict();var Nr=u.z.object({id:u.z.string(),type:u.z.enum([`top_up`,`auto_recharge`,`usage`,`refund`,`subscription_credit`,`adjustment`]),amountCents:u.z.number(),balanceAfterCents:u.z.number(),usageMinutes:u.z.number().nullable(),pricePerMinuteCents:u.z.number().nullable(),referenceType:u.z.string().nullable(),referenceId:u.z.string().nullable(),createdAt:u.z.string()}).strict();u.z.object({items:u.z.array(Nr),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Pr=u.z.object({limit:u.z.number().min(1).max(100).optional(),offset:u.z.number().min(0).optional(),type:u.z.enum([`top_up`,`auto_recharge`,`usage`,`refund`,`subscription_credit`,`adjustment`]).optional(),startDate:u.z.string().optional(),endDate:u.z.string().optional()}).strict();u.z.object({periodStart:u.z.string(),periodEnd:u.z.string(),totalMinutes:u.z.number(),includedMinutesUsed:u.z.number(),paidMinutesUsed:u.z.number(),totalChargedCents:u.z.number(),sandboxCount:u.z.number()}).strict();var Fr=u.z.object({startDate:u.z.string().min(1),endDate:u.z.string().min(1)}).strict(),Ir=u.z.object({planKey:u.z.string(),name:u.z.string(),pricePerSeatCents:u.z.number(),billingInterval:u.z.enum([`month`,`year`]),includedMinutesPerSeat:u.z.number(),stripePriceId:u.z.string().nullable()}).strict();u.z.object({plans:u.z.array(Ir)}).strict(),u.z.object({hasSubscription:u.z.boolean(),planKey:u.z.string().nullable(),planName:u.z.string().nullable(),seatCount:u.z.number(),memberCount:u.z.number(),currentPeriodStart:u.z.string().nullable(),currentPeriodEnd:u.z.string().nullable(),cancelAtPeriodEnd:u.z.boolean(),stripeSubscriptionId:u.z.string().nullable(),includedMinutes:u.z.number(),usedMinutes:u.z.number(),remainingMinutes:u.z.number()}).strict(),u.z.object({redirectUrl:u.z.string().nullable(),sessionId:u.z.string().nullable()}).strict(),u.z.object({planKey:u.z.string().min(1),discountCode:u.z.string().optional()}).strict(),u.z.object({currentSeats:u.z.number(),newSeats:u.z.number(),amountDue:u.z.number().nullable(),subtotal:u.z.number().nullable(),total:u.z.number().nullable(),prorationDate:u.z.number().nullable()}).strict();var Lr=u.z.object({seatCount:u.z.number().min(1)}).strict();u.z.object({success:u.z.boolean(),newSeatCount:u.z.number(),includedMinutes:u.z.number()}).strict(),u.z.object({seatCount:u.z.number().min(1)}).strict(),u.z.object({success:u.z.boolean(),cancelAtPeriodEnd:u.z.boolean(),periodEnd:u.z.string().nullable()}).strict(),u.z.object({success:u.z.boolean(),message:u.z.string()}).strict(),u.z.object({plan:u.z.string(),projects:u.z.object({used:u.z.number(),limit:u.z.number()}).strict(),apiKeys:u.z.object({used:u.z.number(),limit:u.z.number()}).strict(),mcpServers:u.z.object({used:u.z.number(),limit:u.z.number()}).strict(),seats:u.z.object({used:u.z.number(),limit:u.z.number()}).strict()}).strict();var Rr=u.z.object({id:u.z.string(),agentSessionId:u.z.string(),workUnitId:u.z.string().nullable(),taskId:u.z.string().nullable(),projectId:u.z.string(),organizationId:u.z.string(),sandboxInstanceId:u.z.string().nullable(),containerId:u.z.string().nullable(),processId:u.z.string().nullable(),status:u.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]),autoTerminate:u.z.boolean(),timeoutMinutes:u.z.number().min(-9007199254740991).max(9007199254740991).int(),command:u.z.string(),workingDirectory:u.z.string().nullable(),exitCode:u.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),previewUrl:u.z.string().nullable(),errorMessage:u.z.string().nullable(),startedAt:u.z.string().nullable(),completedAt:u.z.string().nullable(),createdAt:u.z.string(),updatedAt:u.z.string(),agentSession:u.z.object({id:u.z.string(),status:u.z.string(),currentAgentType:u.z.string().nullable()}).strict().nullable().optional(),workUnit:u.z.object({id:u.z.string(),title:u.z.string(),status:u.z.string()}).strict().nullable().optional(),project:u.z.object({id:u.z.string(),name:u.z.string()}).strict().nullable().optional()}).strict();u.z.object({items:u.z.array(Rr),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict(),u.z.object({organizationId:u.z.string().min(1)}).strict();var zr=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),status:u.z.union([u.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]),u.z.array(u.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]))]).optional(),projectId:u.z.string().optional(),workUnitId:u.z.string().optional(),agentSessionId:u.z.string().optional()}).strict();u.z.object({id:u.z.string(),status:u.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]),sandboxInstanceId:u.z.string().nullable(),containerId:u.z.string().nullable(),previewUrl:u.z.string().nullable(),exitCode:u.z.number().nullable(),errorMessage:u.z.string().nullable(),startedAt:u.z.string().nullable(),completedAt:u.z.string().nullable(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),sandboxId:u.z.string().min(1)}).strict(),u.z.object({message:u.z.string(),sandboxId:u.z.string(),status:u.z.string()}).strict(),u.z.object({message:u.z.string(),port:u.z.number(),url:u.z.string().optional()}).strict(),u.z.object({organizationId:u.z.string().min(1),sandboxId:u.z.string().min(1),port:u.z.number().min(1024).max(65535).int()}).strict(),u.z.object({message:u.z.string(),port:u.z.number()}).strict();var Br=u.z.object({port:u.z.number(),url:u.z.string().optional()}).strict();u.z.object({ports:u.z.array(Br)}).strict(),u.z.object({organizationId:u.z.string().min(1),sandboxId:u.z.string().min(1)}).strict();var Vr=u.z.object({id:u.z.string(),mId:u.z.string().nullable().optional(),sessionId:u.z.string(),memberId:u.z.string().nullable(),messageType:u.z.enum([`input`,`output`,`error`,`system`]),parts:u.z.array(u.z.union([u.z.object({type:u.z.string(),text:u.z.string()}).strict(),u.z.object({type:u.z.string(),reasoning:u.z.string(),details:u.z.array(u.z.union([u.z.object({type:u.z.string(),text:u.z.string(),signature:u.z.string().optional()}).strict(),u.z.object({type:u.z.string(),data:u.z.string()}).strict()])).optional()}).strict(),u.z.object({type:u.z.string(),toolInvocation:u.z.union([u.z.object({toolCallId:u.z.string(),toolName:u.z.string(),args:u.z.any(),state:u.z.string(),step:u.z.number().optional()}).strict(),u.z.object({toolCallId:u.z.string(),toolName:u.z.string(),args:u.z.any(),state:u.z.string(),step:u.z.number().optional()}).strict(),u.z.object({toolCallId:u.z.string(),toolName:u.z.string(),args:u.z.any(),result:u.z.any(),state:u.z.string(),step:u.z.number().optional()}).strict()]),input:u.z.object({completed:u.z.boolean(),component:u.z.union([u.z.object({name:u.z.string(),props:u.z.object({options:u.z.array(u.z.object({label:u.z.string(),value:u.z.union([u.z.string(),u.z.number()]),selected:u.z.boolean().optional()}).strict())}).strict()}).strict(),u.z.object({name:u.z.string(),props:u.z.object({}).strict()}).strict()])}).strict().optional(),jsx:u.z.string().optional().describe(`UI rendering`)}).strict(),u.z.object({type:u.z.string(),source:u.z.object({type:u.z.string(),content:u.z.string()}).strict()}).strict(),u.z.object({type:u.z.string(),mimeType:u.z.string(),data:u.z.string()}).strict(),u.z.object({type:u.z.string(),text:u.z.string(),error:u.z.any().optional()}).strict(),u.z.object({type:u.z.string()}).strict(),u.z.object({type:u.z.string(),toolResponse:u.z.object({toolCallId:u.z.string(),result:u.z.any()}).strict()}).strict()])),contentSize:u.z.number().nullable(),timestamp:u.z.string(),metadata:u.z.object({}).nullable(),raw:u.z.any().nullable().optional(),createdAt:u.z.string(),updatedAt:u.z.string()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),agentSessionId:u.z.string().min(1)}).strict(),u.z.object({messageType:u.z.enum([`input`,`output`,`error`,`system`]),parts:u.z.array(u.z.union([u.z.object({type:u.z.string(),text:u.z.string()}).strict(),u.z.object({type:u.z.string(),reasoning:u.z.string(),details:u.z.array(u.z.union([u.z.object({type:u.z.string(),text:u.z.string(),signature:u.z.string().optional()}).strict(),u.z.object({type:u.z.string(),data:u.z.string()}).strict()])).optional()}).strict(),u.z.object({type:u.z.string(),toolInvocation:u.z.union([u.z.object({toolCallId:u.z.string(),toolName:u.z.string(),args:u.z.any(),state:u.z.string(),step:u.z.number().optional()}).strict(),u.z.object({toolCallId:u.z.string(),toolName:u.z.string(),args:u.z.any(),state:u.z.string(),step:u.z.number().optional()}).strict(),u.z.object({toolCallId:u.z.string(),toolName:u.z.string(),args:u.z.any(),result:u.z.any(),state:u.z.string(),step:u.z.number().optional()}).strict()]),input:u.z.object({completed:u.z.boolean(),component:u.z.union([u.z.object({name:u.z.string(),props:u.z.object({options:u.z.array(u.z.object({label:u.z.string(),value:u.z.union([u.z.string(),u.z.number()]),selected:u.z.boolean().optional()}).strict())}).strict()}).strict(),u.z.object({name:u.z.string(),props:u.z.object({}).strict()}).strict()])}).strict().optional(),jsx:u.z.string().optional().describe(`UI rendering`)}).strict(),u.z.object({type:u.z.string(),source:u.z.object({type:u.z.string(),content:u.z.string()}).strict()}).strict(),u.z.object({type:u.z.string(),mimeType:u.z.string(),data:u.z.string()}).strict(),u.z.object({type:u.z.string(),text:u.z.string(),error:u.z.any().optional()}).strict(),u.z.object({type:u.z.string()}).strict(),u.z.object({type:u.z.string(),toolResponse:u.z.object({toolCallId:u.z.string(),result:u.z.any()}).strict()}).strict()])),metadata:u.z.object({}).optional(),mId:u.z.string().optional(),raw:u.z.any().optional()}).strict(),u.z.object({id:u.z.string(),messageId:u.z.string()}).strict(),u.z.object({messageType:u.z.enum([`output`]),metadata:u.z.object({}).optional(),mId:u.z.string().optional(),raw:u.z.any().optional()}).strict(),u.z.object({messageId:u.z.string(),success:u.z.boolean()}).strict(),u.z.object({toolName:u.z.string(),toolArgs:u.z.any(),input:u.z.object({completed:u.z.boolean(),component:u.z.union([u.z.object({name:u.z.string(),props:u.z.object({options:u.z.array(u.z.object({label:u.z.string(),value:u.z.union([u.z.string(),u.z.number()]),selected:u.z.boolean().optional()}).strict())}).strict()}).strict(),u.z.object({name:u.z.string(),props:u.z.object({}).strict()}).strict()])}).strict()}).strict(),u.z.object({success:u.z.boolean(),messageId:u.z.string().optional(),hasPendingApprovals:u.z.boolean()}).strict(),u.z.object({notificationType:u.z.string().optional(),message:u.z.string().optional(),metadata:u.z.object({}).optional()}).strict(),u.z.object({success:u.z.boolean(),messageId:u.z.string(),toolName:u.z.string(),updated:u.z.boolean()}).strict(),u.z.object({toolName:u.z.string(),toolResult:u.z.any(),toolUseId:u.z.string().optional()}).strict(),u.z.object({items:u.z.array(Vr),total:u.z.number(),limit:u.z.number(),offset:u.z.number()}).strict();var Hr=u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0),messageType:u.z.enum([`input`,`output`,`error`,`system`,`permission-input`]).optional(),sort:u.z.enum([`timestamp`,`createdAt`,`updatedAt`]),order:u.z.enum([`asc`,`desc`]),mId:u.z.string().optional()}).strict();u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),agentSessionId:u.z.string().min(1),id:u.z.string().min(1)}).strict(),u.z.object({parts:u.z.array(u.z.union([u.z.object({type:u.z.string(),text:u.z.string()}).strict(),u.z.object({type:u.z.string(),reasoning:u.z.string(),details:u.z.array(u.z.union([u.z.object({type:u.z.string(),text:u.z.string(),signature:u.z.string().optional()}).strict(),u.z.object({type:u.z.string(),data:u.z.string()}).strict()])).optional()}).strict(),u.z.object({type:u.z.string(),toolInvocation:u.z.union([u.z.object({toolCallId:u.z.string(),toolName:u.z.string(),args:u.z.any(),state:u.z.string(),step:u.z.number().optional()}).strict(),u.z.object({toolCallId:u.z.string(),toolName:u.z.string(),args:u.z.any(),state:u.z.string(),step:u.z.number().optional()}).strict(),u.z.object({toolCallId:u.z.string(),toolName:u.z.string(),args:u.z.any(),result:u.z.any(),state:u.z.string(),step:u.z.number().optional()}).strict()]),input:u.z.object({completed:u.z.boolean(),component:u.z.union([u.z.object({name:u.z.string(),props:u.z.object({options:u.z.array(u.z.object({label:u.z.string(),value:u.z.union([u.z.string(),u.z.number()]),selected:u.z.boolean().optional()}).strict())}).strict()}).strict(),u.z.object({name:u.z.string(),props:u.z.object({}).strict()}).strict()])}).strict().optional(),jsx:u.z.string().optional().describe(`UI rendering`)}).strict(),u.z.object({type:u.z.string(),source:u.z.object({type:u.z.string(),content:u.z.string()}).strict()}).strict(),u.z.object({type:u.z.string(),mimeType:u.z.string(),data:u.z.string()}).strict(),u.z.object({type:u.z.string(),text:u.z.string(),error:u.z.any().optional()}).strict(),u.z.object({type:u.z.string()}).strict(),u.z.object({type:u.z.string(),toolResponse:u.z.object({toolCallId:u.z.string(),result:u.z.any()}).strict()}).strict()])).optional(),metadata:u.z.object({}).optional(),mId:u.z.string().optional(),raw:u.z.any().optional(),toolName:u.z.string().optional(),toolResult:u.z.any().optional()}).strict(),u.z.object({messageId:u.z.string(),toolName:u.z.string(),approved:u.z.boolean(),autoApproved:u.z.boolean()}).strict(),u.z.object({toolName:u.z.string(),approved:u.z.boolean(),autoApprove:u.z.boolean()}).strict(),u.z.object({messageId:u.z.string(),approved:u.z.boolean(),feedback:u.z.any().optional()}).strict(),u.z.object({toolCallId:u.z.string(),approved:u.z.boolean().optional(),result:u.z.any().optional()}).strict();var Ur=u.z.object({id:u.z.string(),sessionId:u.z.string(),data:u.z.string(),createdAt:u.z.string()}).strict();u.z.object({items:u.z.array(Ur),total:u.z.number(),hasMore:u.z.boolean()}).strict(),u.z.object({organizationId:u.z.string().min(1).describe(`Organization ID`),agentSessionId:u.z.string().min(1)}).strict();var Wr=u.z.object({limit:u.z.number().min(1).max(1e3),offset:u.z.number().min(0)}).strict();u.z.object({organizationId:u.z.string()}).strict(),u.z.object({received:u.z.boolean(),duplicate:u.z.boolean().optional(),ignored:u.z.boolean().optional()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({priceKey:u.z.string().min(1).describe(`Stripe price lookup key`),mode:u.z.enum([`payment`,`subscription`]).describe(`Checkout mode`),discountCode:u.z.string().optional().describe(`Optional discount/promotion code`)}).strict(),u.z.object({redirectUrl:u.z.string().url().describe(`URL to redirect user to Stripe checkout`)}).strict(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({sessionId:u.z.string().min(1),organizationId:u.z.string()}),u.z.object({id:u.z.string().describe(`Session ID`),status:u.z.string().nullable().describe(`Session status`),payment_status:u.z.string().describe(`Payment status`),invoice:u.z.object({}).nullable().describe(`Invoice details`)}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({url:u.z.string().url().describe(`URL to Stripe billing portal`)}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({id:u.z.string().describe(`Customer ID`),customerId:u.z.string().nullable().describe(`Stripe customer ID (null for free tier without payment info)`),organizationId:u.z.string().describe(`Organization ID`),email:u.z.string().nullable().describe(`Customer email`),name:u.z.string().nullable().describe(`Customer name`),subscriptionId:u.z.string().nullable().describe(`Active subscription ID`),subscriptionStatus:u.z.string().nullable().describe(`Current subscription status`),planKey:u.z.enum([`free`,`basic_monthly`,`basic_yearly`]).describe(`Current subscription plan`),seatCount:u.z.number().describe(`Number of seats in subscription`),currentPeriodEnd:u.z.string().nullable().describe(`End date of current billing period (renewal date)`),cancelAtPeriodEnd:u.z.boolean().describe(`Whether subscription is scheduled to cancel at period end`),createdAt:u.z.string().describe(`Customer creation date`),updatedAt:u.z.string().describe(`Customer last update date`)}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({received:u.z.boolean(),duplicate:u.z.boolean().optional(),ignored:u.z.boolean().optional()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...on.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...R.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({version:u.z.string()}),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({...L.shape}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({...cn.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),serverName:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...z.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...z.shape}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...z.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...z.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var Gr=u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),Kr=u.z.object({...ar.shape});u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict();var H=u.z.object({organizationId:u.z.string(),projectId:u.z.string(),workUnitId:u.z.string()});u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),workUnitId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),workUnitId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),workUnitId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict();var qr=u.z.object({organizationId:u.z.string()});u.z.object({...mn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...gn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),daemonId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...vn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...bn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...xn.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string(),type:u.z.string()}),u.z.object({...wn.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string(),type:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string(),key:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string(),key:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string(),key:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),profileId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),provider:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),provider:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),provider:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),provider:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),provider:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({...On.shape}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),owner:u.z.string(),repo:u.z.string()}),u.z.object({...An.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1)}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string()}),u.z.object({...Nn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1),deviceId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),deviceId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({...Nn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1)}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceAgentTypeId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1)}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1),agentTypeId:u.z.string().min(1)}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),deviceId:u.z.string().min(1)}),u.z.object({error:u.z.string()}).strict();var Jr=u.z.object({organizationId:u.z.string().min(1)}),Yr=u.z.object({...Ln.shape});u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string()}),u.z.object({...Bn.shape}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string(),userId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string()}),u.z.object({...Hn.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),teamId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Wn.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Kn.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({stats:u.z.array(u.z.object({activityType:u.z.string(),count:u.z.number()}).strict()),total:u.z.number()}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({limit:u.z.number().min(1).max(100),offset:u.z.number().min(0)}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.array(qn),u.z.array(Gn),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),activityId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),activityId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),activityId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var Xr=u.z.object({organizationId:u.z.string()}),Zr=u.z.object({...Yn.shape});u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({period:u.z.enum([`7d`,`30d`,`3m`,`12m`])}),u.z.object({items:u.z.array(u.z.object({period:u.z.string(),aiCompleted:u.z.number(),humanCompleted:u.z.number(),totalTasks:u.z.number(),totalCost:u.z.number()}).strict()),summary:u.z.object({totalCost:u.z.number(),totalTasks:u.z.number(),monthlyGrowth:u.z.number()}).strict()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.object({...Qn.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.object({...$n.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),statusId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.void(),u.z.object({error:u.z.string()}).strict();var Qr=u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),$r=u.z.object({...Yn.shape});u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict();var ei=u.z.object({organizationId:u.z.string(),projectId:u.z.string(),taskId:u.z.string()});u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var ti=u.z.object({organizationId:u.z.string(),projectId:u.z.string(),taskId:u.z.string()});u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var ni=u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),ri=u.z.object({...rr.shape});u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var ii=u.z.object({organizationId:u.z.string(),taskId:u.z.string(),commentId:u.z.string()});u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),commentId:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),commentId:u.z.string()}),u.z.void(),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({...B.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),agentSessionId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...B.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.object({...B.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),agentSessionId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),taskId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.object({...B.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),agentSessionId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),workUnitId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({...lr.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string(),key:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string(),key:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string(),key:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),projectId:u.z.string().min(1)}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1),projectId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),environmentId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({...hr.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({...gr.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.object({...yr.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),projectId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict();var ai=u.z.object({organizationId:u.z.string()}),oi=u.z.object({...Dr.shape});u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string().min(1)}),u.z.object({...wr.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var si=u.z.object({organizationId:u.z.string(),id:u.z.string()});u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({...Mr.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({...kr.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.object({...Ar.shape}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),id:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Pr.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Fr.shape}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...Lr.shape}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.void(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({...zr.shape}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string()}),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string(),port:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string(),port:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),sandboxId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string()}),u.z.object({...Hr.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string()}),u.z.void(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string(),id:u.z.string()}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict(),u.z.object({organizationId:u.z.string(),agentSessionId:u.z.string()}),u.z.object({...Wr.shape}),u.z.object({message:u.z.string()}).strict(),u.z.object({error:u.z.string()}).strict();var ci=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/members`,{method:`GET`,params:e,query:t})).data,li=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/members/agents`,{method:`POST`,params:e,body:t})).data,ui=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments`,{method:`GET`,params:e,query:t})).data,di=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments`,{method:`POST`,params:e,body:t})).data,fi=async e=>(await j.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments/{commentId}`,{method:`GET`,params:e})).data,pi=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments/{commentId}`,{method:`PATCH`,params:e,body:t})).data,mi=async e=>(await j.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments/{commentId}`,{method:`DELETE`,params:e})).data,hi=async(e,t)=>(await j.request(`/api/v1/organizations/{organizationId}/task-statuses`,{method:`GET`,params:e,query:t})).data,gi=`AGIFLOW_ORGANIZATION_ID`,_i=`AGIFLOW_PROJECT_ID`,vi=`AGIFLOW_TASK_ID`,yi=`AGIFLOW_WORK_UNIT_ID`,bi=u.z.object({format:u.z.literal(`json`).default(`json`).describe(`Output format`)}),xi=u.z.object({tasksJson:u.z.string().min(1).describe(`Array of task objects or { "tasks": [...] }`)}),Si=u.z.object({workUnitsJson:u.z.string().min(1).describe(`Array of work unit objects or { "workUnits": [...] }`)}),Ci=u.z.object({status:u.z.string().optional().describe(`Task status name, key, or ID`),assignee:u.z.string().optional().describe(`Assignee member ID, name, or email`),workUnit:u.z.string().optional().describe(`Work unit ID`),acceptanceCriteriaJson:u.z.string().optional().describe(`Acceptance criteria JSON`),testCasesJson:u.z.string().optional().describe(`Test cases JSON`),devInfoJson:u.z.string().optional().describe(`Development info JSON`)}),wi=u.z.object({status:u.z.string().optional().describe(`Comma-separated status names, keys, or IDs`),assignee:u.z.string().optional().describe(`Assignee member ID, name, or email`),workUnit:u.z.string().optional().describe(`Work unit ID`)}),Ti=u.z.object({devInfoJson:u.z.string().optional().describe(`Development info JSON`),testCasesJson:u.z.string().optional().describe(`Test cases JSON`)}),Ei=u.z.object({assignee:u.z.string().optional().describe(`Assignee member ID, name, or email`),infoJson:u.z.string().optional().describe(`Comment info JSON`)}),U=()=>({name:`org`,source:`organizationId`,envVar:gi}),W=(e=`projectId`)=>({name:`project`,source:e,valueName:`projectIdOrSlug`,envVar:_i}),G=()=>({name:`task`,source:`taskId`,valueName:`taskIdOrSlug`,envVar:vi}),K=()=>({name:`workUnit`,source:`workUnitId`,flag:`--work-unit`,valueName:`workUnitIdOrSlug`,envVar:yi}),q=(...e)=>e,J=(e=[],t={})=>[{name:`limit`,required:!1,defaultValue:t.limit??`20`},{name:`offset`,required:!1,defaultValue:t.offset??`0`},{name:`search`,required:!1},{name:`sort`,required:!1,defaultValue:t.sort??`createdAt`},{name:`order`,required:!1,defaultValue:t.order??`desc`},...e.map(e=>({...e,required:e.required??!1}))],Y=(e,t)=>Wt.for(e).fromSchemaGroups([...t,{schema:bi,options:[{name:`format`,required:!1,defaultValue:`json`}]}]),X=e=>{let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t},Di=(e,t)=>{let n=e&&typeof e==`object`&&t in e?e[t]:e;if(!Array.isArray(n))throw Error(`Expected ${t} JSON to be an array or an object containing ${t}.`);return n.map((e,n)=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t}[${n}] must be an object.`);return e})},Z=class extends M{async resolveOrgOption(e){return this.resolveOrganizationId(e.org)}async resolveProjectOption(e){return this.resolveProjectIdOption(e.project)}async resolveProjectRoute(e){let t=await this.resolveOrgOption(e),n=await this.resolveProjectOption(e);return{org:t,projectId:await this.resolveProjectId(t,n)}}async resolveTaskOption(e){return this.resolveTaskIdOption(e.task)}async resolveWorkUnitOption(e){return this.resolveWorkUnitIdOption(e.workUnit)}async resolveProjectId(e,t){return(await mt({organizationId:e,id:t})).id}async resolveStatusId(e,t){let n=(await hi({organizationId:e})).items??[],r=t.toLowerCase(),i=n.find(e=>e.id===t||e.key.toLowerCase()===r||e.name.toLowerCase()===r);if(!i)throw Error(`Task status "${t}" was not found.`);return i.id}async resolveMemberId(e,t){if(!t)return;let n=await ci({organizationId:e},{limit:100,offset:0,sortBy:`createdAt`,sortDirection:`desc`}),r=t.toLowerCase(),i=n.members.find(e=>{let n=e.member?.id,i=e.user?.name?.toLowerCase(),a=e.user?.email?.toLowerCase();return n===t||i===r||a===r});if(!i?.member?.id)throw Error(`Member "${t}" was not found.`);return i.member.id}baseListOptions(e){return X({limit:this.parseNumber(e.limit,20),offset:this.parseNumber(e.offset,0),sort:e.sort,order:e.order,search:e.search})}},Oi=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`project`).description(`Project JSON commands`);Y(t.command(`create`).description(`Create a project`),q({schema:ai,options:[U()]},{schema:Sr,options:[{name:`name`},{name:`description`},{name:`slug`},{name:`path`},{name:`color`},{name:`icon`}]})).action(e=>this.create(e)),Y(t.command(`list`).description(`List projects`),q({schema:ai,options:[U()]},{schema:oi,options:J()})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a project by ID or slug`),q({schema:si,options:[U(),W(`projectIdOrSlug`)]})).action(e=>this.get(e)),Y(t.command(`update`).description(`Update a project`),q({schema:si,options:[U(),W(`projectIdOrSlug`)]},{schema:Or,options:[{name:`name`},{name:`description`},{name:`slug`},{name:`path`},{name:`color`},{name:`icon`},{name:`archived`,source:`isArchived`}]})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a project`),q({schema:si,options:[U(),W(`projectIdOrSlug`)]})).action(e=>this.delete(e))}async create(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=X({name:e.name,description:e.description,slug:e.slug,path:e.path,color:e.color,icon:e.icon}),r=await pt({organizationId:t},n);this.printJson({project:r})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=this.baseListOptions(e),r=await ft({organizationId:t},n);this.printJson({projects:r.items,total:r.total,limit:r.limit,offset:r.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await mt({organizationId:await this.resolveOrgOption(e),id:await this.resolveProjectOption(e)});this.printJson({project:t})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveProjectOption(e),r=await this.resolveProjectId(t,n),i=X({name:e.name,description:e.description,slug:e.slug,path:e.path,color:e.color,icon:e.icon,isArchived:e.archived===!0?!0:void 0}),a=await ht({organizationId:t,id:r},i);this.printJson({project:a})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveProjectOption(e),r=await this.resolveProjectId(t,n);await gt({organizationId:t,id:r}),this.printJson({deleted:!0,project:{id:r}})})}};Oi=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],Oi);var ki=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`task`).description(`Task JSON commands`),n=[U(),W()],r=[{name:`title`},{name:`description`},{name:`priority`},{name:`position`},{name:`dueDate`,flag:`--due-date`},{name:`tags`}],i=[{name:`status`},{name:`assignee`},{name:`workUnit`,flag:`--work-unit`},{name:`acceptanceCriteriaJson`,flag:`--acceptance-criteria-json`},{name:`testCasesJson`,flag:`--test-cases-json`},{name:`devInfoJson`,flag:`--dev-info-json`}];Y(t.command(`create`).description(`Create a task`),q({schema:Qr,options:n},{schema:or,options:r},{schema:Ci,options:i})).action(e=>this.create(e)),Y(t.command(`batch-create`).description(`Create multiple tasks`),q({schema:Qr,options:n},{schema:xi,options:[{name:`tasksJson`,flag:`--tasks-json`}]})).action(e=>this.batchCreate(e)),Y(t.command(`list`).description(`List project tasks`),q({schema:Qr,options:n},{schema:$r,options:J([{name:`statusFilter`,flag:`--status-filter`},{name:`priority`},{name:`tags`}])},{schema:wi,options:[{name:`status`},{name:`assignee`},{name:`workUnit`,flag:`--work-unit`}]})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a task by ID or slug`),q({schema:ei,options:[...n,G()]})).action(e=>this.get(e)),Y(t.command(`active`).description(`List active organization tasks`),q({schema:Xr,options:[U()]},{schema:Zr,options:J([{name:`project`,source:`projectId`},{name:`priority`},{name:`assigneeId`,flag:`--assignee-id`}])})).action(e=>this.active(e)),Y(t.command(`update`).description(`Update a task`),q({schema:ei,options:[...n,G()]},{schema:Xn,options:r},{schema:Ci,options:i})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a task`),q({schema:ei,options:[...n,G()]})).action(e=>this.delete(e)),Y(t.command(`reorder`).description(`Reorder tasks within a status`),q({schema:Xr,options:[U()]},{schema:u.z.object({status:u.z.string().min(1).describe(`Status name, key, or ID`)}),options:[{name:`status`}]},{schema:er,options:[{name:`taskIds`,flag:`--task-ids`,parse:`csv`}]})).action(e=>this.reorder(e)),Y(t.command(`move`).description(`Move a task to a different column/position`),q({schema:ti,options:[...n,G()]},{schema:sr,options:[{name:`column`,source:`columnId`},{name:`position`}]})).action(e=>this.move(e)),Y(t.command(`status`).description(`Task status commands`).command(`list`).description(`List available task statuses`),q({schema:qr,options:[U()]})).action(e=>this.statusList(e))}async buildTaskPayload(e){let t=typeof e.status==`string`?e.status:void 0,n=typeof e.assignee==`string`?e.assignee:void 0,r=String(e.org),i=t?await this.resolveStatusId(r,t):void 0,a=await this.resolveMemberId(r,n);return X({title:e.title,description:e.description,statusId:i,priority:e.priority,position:typeof e.position==`string`?this.parseNumber(e.position,0):e.position,dueDate:e.dueDate,tags:this.parseCsv(typeof e.tags==`string`?e.tags:void 0),assigneeId:a,workUnitId:e.workUnit??e.workUnitId,acceptanceCriteria:this.parseJsonFlag(typeof e.acceptanceCriteriaJson==`string`?e.acceptanceCriteriaJson:void 0,`--acceptance-criteria-json`),testCases:this.parseJsonFlag(typeof e.testCasesJson==`string`?e.testCasesJson:void 0,`--test-cases-json`),devInfo:this.parseJsonFlag(typeof e.devInfoJson==`string`?e.devInfoJson:void 0,`--dev-info-json`)})}async create(e){await this.runJsonOnly(async()=>{if(this.requireJsonFormat(e.format,`task commands`),await this.setupClient(),!e.title)throw Error(`--title is required.`);let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await Dt({organizationId:t,projectId:n},await this.buildTaskPayload({...e,org:t}));this.printJson({task:r})})}async batchCreate(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=Di(this.parseJsonFlag(e.tasksJson,`--tasks-json`),`tasks`),i=[];for(let e of r){let r=await Dt({organizationId:t,projectId:n},await this.buildTaskPayload({...e,org:t}));i.push(r)}this.printJson({tasks:i,total:i.length})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=this.parseCsv(e.status),i=r?await Promise.all(r.map(e=>this.resolveStatusId(t,e))):void 0,a=await this.resolveMemberId(t,e.assignee),o=X({...this.baseListOptions(e),statusFilter:e.statusFilter,columnId:i?.length===1?i[0]:void 0,statusIds:i,workUnitId:e.workUnit,assigneeId:a,priority:e.priority,tags:this.parseCsv(e.tags)}),s=await Et({organizationId:t,projectId:n},o);this.printJson({tasks:s.items,total:s.total,limit:s.limit,offset:s.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await Ot({organizationId:t,projectId:n,taskId:await this.resolveTaskOption(e)});this.printJson({task:r})})}async active(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=X({...this.baseListOptions(e),statusFilter:`active`,priority:e.priority,assigneeId:e.assigneeId});if(e.project){let r=await Et({organizationId:t,projectId:await this.resolveProjectId(t,e.project)},n);this.printJson({tasks:r.items,total:r.total,limit:r.limit,offset:r.offset});return}let r=await Ct({organizationId:t},n);this.printJson({tasks:r.items,total:r.total,limit:r.limit,offset:r.offset})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await kt({organizationId:t,projectId:n,taskId:await this.resolveTaskOption(e)},await this.buildTaskPayload({...e,org:t}));this.printJson({task:r})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await this.resolveTaskOption(e);await At({organizationId:t,projectId:n,taskId:r}),this.printJson({deleted:!0,task:{id:r}})})}async reorder(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveStatusId(t,e.status),r=this.parseCsv(e.taskIds);if(!r?.length)throw Error(`--task-ids must contain at least one task ID.`);await Tt({organizationId:t,statusId:n},{taskIds:r}),this.printJson({reordered:!0,statusId:n,taskIds:r})})}async move(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await this.resolveTaskOption(e);if(!e.column)throw Error(`--column is required.`);let i={columnId:e.column,position:this.parseNumber(e.position,0)},a=await jt({organizationId:t,projectId:n,taskId:r},i);this.printJson({task:a})})}async statusList(e){await this.runJsonOnly(async()=>{await this.setupClient();let t=await hi({organizationId:await this.resolveOrgOption(e)});if(e.format===`table`){let e=t.items??[],n=[`id`,`key`,`name`],r=e.map(e=>[e.id,e.key,e.name]);console.log(n.join(` `));for(let e of r)console.log(e.join(` `));return}this.printJson({statuses:t.items,total:t.total})})}};ki=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],ki);var Ai=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`work-unit`).description(`Work unit JSON commands`),n=[U(),W()],r=[{name:`title`},{name:`description`},{name:`type`},{name:`priority`},{name:`status`},{name:`ownerId`,flag:`--owner-id`},{name:`parentWorkUnitId`,flag:`--parent-work-unit-id`},{name:`estimatedEffort`,flag:`--estimated-effort`},{name:`startDate`,flag:`--start-date`},{name:`targetDate`,flag:`--target-date`}];Y(t.command(`batch-create`).description(`Create multiple work units`),q({schema:Gr,options:n},{schema:Si,options:[{name:`workUnitsJson`,flag:`--work-units-json`}]})).action(e=>this.batchCreate(e)),Y(t.command(`list`).description(`List project work units`),q({schema:Gr,options:n},{schema:Kr,options:J([{name:`status`,source:`statuses`},{name:`excludeStatus`,flag:`--exclude-status`},{name:`type`},{name:`priority`},{name:`ownerId`,flag:`--owner-id`},{name:`parentWorkUnitId`,flag:`--parent-work-unit-id`}])})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a work unit by ID or slug`),q({schema:H,options:[...n,K()]})).action(e=>this.get(e)),Y(t.command(`update`).description(`Update a work unit`),q({schema:H,options:[...n,K()]},{schema:fn,options:r},{schema:Ti,options:[{name:`devInfoJson`,flag:`--dev-info-json`},{name:`testCasesJson`,flag:`--test-cases-json`}]})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a work unit`),q({schema:H,options:[...n,K()]})).action(e=>this.delete(e)),Y(t.command(`progress`).description(`Get work unit progress`),q({schema:H,options:[...n,K()]})).action(e=>this.progress(e))}buildPayload(e){return X({title:e.title,description:e.description,type:e.type,priority:e.priority,status:e.status,ownerId:e.ownerId,parentWorkUnitId:e.parentWorkUnitId,estimatedEffort:typeof e.estimatedEffort==`string`?this.parseNumber(e.estimatedEffort,0):e.estimatedEffort,startDate:e.startDate,targetDate:e.targetDate,devInfo:this.parseJsonFlag(typeof e.devInfoJson==`string`?e.devInfoJson:void 0,`--dev-info-json`),testCases:this.parseJsonFlag(typeof e.testCasesJson==`string`?e.testCasesJson:void 0,`--test-cases-json`)})}async batchCreate(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=Di(this.parseJsonFlag(e.workUnitsJson,`--work-units-json`),`workUnits`),i=[];for(let e of r){let r=await Pt({organizationId:t,projectId:n},this.buildPayload(e)),a=Array.isArray(e.taskIds)?e.taskIds.filter(e=>typeof e==`string`):[];for(let e of a)await kt({organizationId:t,projectId:n,taskId:e},{workUnitId:r.id});i.push(r)}this.printJson({workUnits:i,total:i.length})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=X({...this.baseListOptions(e),statuses:this.parseCsv(e.status),excludeStatus:e.excludeStatus,type:e.type,priority:e.priority,ownerId:e.ownerId,parentWorkUnitId:e.parentWorkUnitId}),i=await Nt({organizationId:t,projectId:n},r);this.printJson({workUnits:i.items,total:i.total,limit:i.limit,offset:i.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await Ft({organizationId:t,projectId:n,workUnitId:await this.resolveWorkUnitOption(e)});this.printJson({workUnit:r})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await It({organizationId:t,projectId:n,workUnitId:await this.resolveWorkUnitOption(e)},this.buildPayload(e));this.printJson({workUnit:r})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await this.resolveWorkUnitOption(e);await Lt({organizationId:t,projectId:n,workUnitId:r}),this.printJson({deleted:!0,workUnit:{id:r}})})}async progress(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await Rt({organizationId:t,projectId:n,workUnitId:await this.resolveWorkUnitOption(e)});this.printJson({progress:r})})}};Ai=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],Ai);var ji=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`member`).description(`Agent member JSON commands`);Y(t.command(`list`).description(`List agent members`),q({schema:Jr,options:[U()]},{schema:Yr,options:[{name:`limit`,required:!1,defaultValue:`100`},{name:`offset`,required:!1,defaultValue:`0`}]})).action(e=>this.list(e)),Y(t.command(`create`).description(`Create an agent member`),q({schema:Jr,options:[U()]},{schema:Rn,options:[{name:`email`},{name:`name`},{name:`description`},{name:`prompt`}]})).action(e=>this.create(e))}normalizeMembers(e){return e.filter(e=>e.member?.role===`agent`)}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`member commands`),await this.setupClient();let t=await ci({organizationId:await this.resolveOrgOption(e)},{limit:this.parseNumber(e.limit,100),offset:this.parseNumber(e.offset,0),sortBy:`createdAt`,sortDirection:`desc`,filterField:`role`,filterOperator:`eq`,filterValue:`agent`});this.printJson({members:this.normalizeMembers(t.members),total:t.total,limit:t.limit,offset:t.offset})})}async create(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`member commands`),await this.setupClient();let t=await li({organizationId:await this.resolveOrgOption(e)},{agents:[X({email:e.email,name:e.name,description:e.description,prompt:e.prompt})]});this.printJson({member:t.created[0]??null,errors:t.errors??[]})})}};ji=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],ji);var Mi=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`task-comment`).description(`Task comment JSON commands`),n=[U(),G()];Y(t.command(`create`).description(`Create a task comment`),q({schema:ni,options:n},{schema:nr,options:[{name:`content`}]},{schema:Ei,options:[{name:`assignee`},{name:`infoJson`,flag:`--info-json`}]})).action(e=>this.create(e)),Y(t.command(`list`).description(`List task comments`),q({schema:ni,options:n},{schema:ri,options:[{name:`limit`,required:!1,defaultValue:`20`},{name:`offset`,required:!1,defaultValue:`0`},{name:`sort`,required:!1,defaultValue:`createdAt`},{name:`order`,required:!1,defaultValue:`asc`}]})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a task comment`),q({schema:ii,options:[...n,{name:`comment`,source:`commentId`}]})).action(e=>this.get(e)),Y(t.command(`update`).description(`Update a task comment`),q({schema:ii,options:[...n,{name:`comment`,source:`commentId`}]},{schema:ir,options:[{name:`content`}]},{schema:Ei,options:[{name:`assignee`},{name:`infoJson`,flag:`--info-json`}]})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a task comment`),q({schema:ii,options:[...n,{name:`comment`,source:`commentId`}]})).action(e=>this.delete(e))}async buildPayload(e){let t=await this.resolveOrgOption(e);return X({content:e.content,assigneeId:await this.resolveMemberId(t,e.assignee),info:this.parseJsonFlag(e.infoJson,`--info-json`)})}async create(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await di({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e)},await this.buildPayload(e));this.printJson({comment:t})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveTaskOption(e),r=this.baseListOptions(e),i=await ui({organizationId:t,taskId:n},r);this.printJson({comments:i.items,total:i.total,limit:i.limit,offset:i.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await fi({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e),commentId:e.comment});this.printJson({comment:t})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await pi({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e),commentId:e.comment},await this.buildPayload(e));this.printJson({comment:t})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient(),await mi({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e),commentId:e.comment}),this.printJson({deleted:!0,comment:{id:e.comment}})})}};Mi=_([(0,l.injectable)(),b(0,(0,l.inject)(y.ConfigManager)),b(1,(0,l.inject)(y.CredentialsService)),v(`design:paramtypes`,[Object,Object])],Mi);var Q={AuthCommand:Symbol.for(`CLI.AuthCommand`),WorkflowCommand:Symbol.for(`CLI.WorkflowCommand`),ArtifactCommand:Symbol.for(`CLI.ArtifactCommand`),AutomationCommand:Symbol.for(`CLI.AutomationCommand`),ProjectCommand:Symbol.for(`CLI.ProjectCommand`),TaskCommand:Symbol.for(`CLI.TaskCommand`),WorkUnitCommand:Symbol.for(`CLI.WorkUnitCommand`),MemberCommand:Symbol.for(`CLI.MemberCommand`),TaskCommentCommand:Symbol.for(`CLI.TaskCommentCommand`)},$=new l.Container({parent:x});$.bind(Q.AuthCommand).to(Me),$.bind(Q.WorkflowCommand).to(dt),$.bind(Q.ArtifactCommand).to(Ut),$.bind(Q.AutomationCommand).to(en),$.bind(Q.ProjectCommand).to(Oi),$.bind(Q.TaskCommand).to(ki),$.bind(Q.WorkUnitCommand).to(Ai),$.bind(Q.MemberCommand).to(ji),$.bind(Q.TaskCommentCommand).to(Mi),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return $}});