makecoder 4.1.19 → 4.1.20
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/coder.js +26 -26
- package/dist/darwin-arm64/cc.js +2 -2
- package/dist/darwin-x64/cc.js +2 -2
- package/dist/linux-arm64/cc.js +2 -2
- package/dist/linux-x64/cc.js +2 -2
- package/dist/win32-x64/cc.js +2 -2
- package/package.json +5 -5
package/dist/coder.js
CHANGED
|
@@ -11,30 +11,30 @@ var cd=Object.create;var vo=Object.defineProperty;var ld=Object.getOwnPropertyDe
|
|
|
11
11
|
${e[s+1]}`,e;let r=e.indexOf("--append-system-prompt-file");if(r!==-1&&r+1<e.length){let n="";try{n=_d.readFileSync(e[r+1],"utf8")}catch{return e}return e.splice(r,2,"--append-system-prompt",`${Or}
|
|
12
12
|
|
|
13
13
|
${n}`),e}return[...e,"--append-system-prompt",Or]}jo.exports={withRuntimePrompt:kd}});var Fo=k((s0,Go)=>{var xd=as(),{spawn:Sd,execFileSync:Id}=require("child_process"),Ds=require("path"),cs=require("fs"),{withRuntimePrompt:Cd}=Mo(),Dr=class extends xd{constructor(){let e=`${process.platform}-${process.arch}`;super({name:"Claude Code (bun)",executablePaths:[`${e}/cc.js`,`../dist/${e}/cc.js`,`/tmp/claude-code-${e}/package/extracted/src/entrypoints/cc.js`],globalSubPath:`${e}/cc.js`,environmentVariables:s=>({ANTHROPIC_BASE_URL:`${s}/claude`,ANTHROPIC_API_KEY:"null",DISABLE_TELEMETRY:!0,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:!0,DISABLE_COST_WARNINGS:!0,DISABLE_NON_ESSENTIAL_MODEL_CALLS:!0,CODER_BASE_URL:s,CLAUDE_CODE_ATTRIBUTION_HEADER:"0",DISABLE_INSTALLATION_CHECKS:"1",DISABLE_AUTOUPDATER:"1",ANTHROPIC_DEFAULT_HAIKU_MODEL:"claude-haiku-4-5"})})}_resolveBunPath(){let e=process.platform==="win32",s=e?"bun.exe":"bun",r=process.env.HOME||process.env.USERPROFILE||"";try{return Id(s,["--version"],{stdio:"ignore"}),s}catch{}if(r){let o=Ds.join(r,".bun","bin",s);if(cs.existsSync(o))return o}if(r){let o=Ds.join(r,".local","bin",s);if(cs.existsSync(o))return o}try{let o=require.resolve(`bun/${e?"bin/bun.exe":"bin/bun"}`);if(cs.existsSync(o))return o}catch{}let n=this._getBunPlatformPackage();if(n)try{let o=Ds.dirname(require.resolve(`${n}/package.json`)),i=Ds.join(o,"bin",s);if(cs.existsSync(i))return i}catch{}throw new Error(["bun is not installed.","","Tried (in order):"," 1. `bun` on PATH"," 2. ~/.bun/bin/bun"," 3. ~/.local/bin/bun"," 4. require.resolve('bun/bin/bun') \u2014 npm-installed bun package"," 5. @oven-sh/bun-<platform> tarball \u2014 npm platform package","","Fixes:"," - npm install -g bun"," - curl -fsSL https://bun.sh/install | bash (then open a new shell)"," - re-run `npm install -g makecoder` with --verbose to see why the"," bundled bun postinstall failed (network / proxy / mirror issues"," silently skip optionalDependencies)."].join(`
|
|
14
|
-
`))}_getBunPlatformPackage(){let e=process.platform,s=process.arch;return{"darwin-arm64":"@oven-sh/bun-darwin-aarch64","darwin-x64":"@oven-sh/bun-darwin-x64","linux-arm64":"@oven-sh/bun-linux-aarch64","linux-x64":"@oven-sh/bun-linux-x64","win32-x64":"@oven-sh/bun-windows-x64"}[`${e}-${s}`]||null}async launch(e={}){let{remainingArgs:s=[],coderBaseUrl:r,apikey:n=null,extraEnv:o={}}=e,i=this.findExecutablePath(),a=this._resolveBunPath();return process.env.CODER_DEBUG&&(console.log(`executablePath (bun): ${i}`),console.log(`bunPath: ${a}`)),new Promise((c,l)=>{let u={...process.env,...this.config.environmentVariables(r),CODER_EXECPATH:cs.realpathSync(process.argv[1]),...o};n&&(u.CODER_APIKEY=n);let d=Cd(s),f=Sd(a,[i,...d],{env:u,stdio:"inherit"});f.on("error",h=>{h.code==="ENOENT"?console.error("bun binary not found. Install it with: npm install -g bun or curl -fsSL https://bun.sh/install | bash"):console.error(`Failed to start bun: ${h.message}`),l(h)}),f.on("exit",h=>c(h)),process.on("SIGINT",()=>{}),process.on("SIGTERM",()=>{f.kill("SIGTERM"),setTimeout(()=>{f.killed||f.kill("SIGKILL")},8e3)})})}};Go.exports=Dr});var Vo=k((r0,Zo)=>{var{execFileSync:Rr,spawnSync:je}=require("child_process"),Ed=require("readline"),J=require("path"),O=require("fs"),Lr=require("os"),Ad=require("crypto"),Td=["opus4.8","claude-opus-4-7","claude-sonnet-4-6","claude-haiku-4-5-20251001"],Ye="/Applications/Claude.app",$d=`${Ye}/Contents/Resources/app.asar`,Pr="1.12603.1",Rs="https://cdn.makecoder.com/cdnuploads/claude-app/Claude-darwin-universal-1.12603.1.dmg",Nr=class{constructor(){this.name="Claude Desktop (3p)",this.userData=J.join(Lr.homedir(),"Library","Application Support","Claude-3p"),this.backupDir=`${this.userData}.coder-backup`}async launch(e={}){if(process.platform!=="darwin")return console.error("coder claude app \u76EE\u524D\u4EC5\u652F\u6301 macOS\u3002"),1;let{remainingArgs:s=[],coderBaseUrl:r,apikey:n=null}=e,o=(s[0]||"setup").toLowerCase();try{if(o==="restore")return this._restore();if(o==="status")return this._status();if(o==="setup"){if(O.existsSync(Ye)){let i=await this._ensureInstalledAppVersion();if(i!==0)return i}else{let i=this._ensureClaudeAppInstalled();if(i!==0)return i}return await this._setup(r,n)}return console.error(`\u672A\u77E5\u5B50\u547D\u4EE4\uFF1A${o}\uFF08\u53EF\u7528\uFF1Asetup | restore | status\uFF09`),1}catch(i){return console.error(`Error: ${i.message}`),process.env.CODER_DEBUG&&console.error(i.stack),1}}async _setup(e,s){if(!s)return console.error("\u7F3A\u5C11 API Key\u3002\u8BF7\u5148 `coder auth login` \u6216\u7528 --apikey \u63D0\u4F9B\u3002"),1;let r=this._detectRequiredVersion();if(!r)return console.error("\u65E0\u6CD5\u8BC6\u522B Claude Desktop \u7248\u672C\uFF0C\u8BF7\u786E\u8BA4\u5DF2\u5B89\u88C5\u6700\u65B0\u7248 Claude\u3002"),1;let{exec:n,entry:o}=this._resolveCoderEntry();return console.log("\u6B63\u5728\u914D\u7F6E Claude Desktop\u2026"),this._quitApp(),this._backupOnce(),this._writeDeploymentMode(),this._writeGatewayConfig(e,s),this._installShim(r,{exec:n,entry:o,apikey:s,coderBaseUrl:e}),this._openApp(),console.log("\u2705 Claude Desktop \u5DF2\u63A5\u5165 coder\uFF0C\u6B63\u5728\u542F\u52A8\u3002"),console.log(" \u8FD8\u539F\uFF1Acoder claude app restore"),0}_ensureClaudeAppInstalled(){console.log("\u672A\u68C0\u6D4B\u5230 Claude Desktop\uFF0C\u6B63\u5728\u4E0B\u8F7D\u5B89\u88C5\u2026");let e=J.join(Lr.tmpdir(),`claude-app-${process.pid}-${Date.now()}.dmg`),s=null;try{if(je("curl",["-fL","--retry","2","-o",e,Rs],{stdio:process.env.CODER_DEBUG?"inherit":["ignore","ignore","inherit"]}).status!==0||!O.existsSync(e))return console.error(`\u4E0B\u8F7D Claude \u5B89\u88C5\u5305\u5931\u8D25\uFF08${Rs}\uFF09\u3002`),1;let n=je("hdiutil",["attach",e,"-nobrowse","-readonly"],{encoding:"utf8"});if(n.status!==0)return console.error("\u6302\u8F7D Claude \u5B89\u88C5\u5305\u5931\u8D25\u3002"),1;let o=n.stdout.match(/(\/Volumes\/[^\n]+)\s*$/m);if(s=o?o[1].trim():null,!s)return console.error("\u65E0\u6CD5\u89E3\u6790 DMG \u6302\u8F7D\u70B9\u3002"),1;let i=J.join(s,"Claude.app");return O.existsSync(i)?je("ditto",[i,Ye],{stdio:"inherit"}).status!==0?(console.error("\u62F7\u8D1D Claude.app \u5230 /Applications \u5931\u8D25\uFF08\u53EF\u80FD\u9700\u8981\u6743\u9650\uFF09\u3002"),1):(console.log("\u2705 Claude Desktop \u5B89\u88C5\u5B8C\u6210\u3002"),0):(console.error(`DMG \u5185\u672A\u627E\u5230 Claude.app\uFF08${i}\uFF09\u3002`),1)}finally{s&&je("hdiutil",["detach",s,"-quiet"],{stdio:"ignore"});try{O.rmSync(e,{force:!0})}catch{}}}async _ensureInstalledAppVersion(){let e=this._readInstalledAppVersion();return e?Ud(e,Pr)?(console.error(`\u68C0\u6D4B\u5230 Claude Desktop \u7248\u672C\u8F83\u65E7\uFF1A\u5F53\u524D ${e}\uFF0C\u63A8\u8350 ${Pr}\u3002`),console.error("\u5EFA\u8BAE\u73B0\u5728\u5347\u7EA7\uFF0C\u4EE5\u4FDD\u6301 Desktop 3p \u914D\u7F6E\u3001CCD shim \u4E0E makecoder \u517C\u5BB9\u3002"),await this._confirmUpgrade()?this._upgradeClaudeApp():(console.error("\u7EE7\u7EED\u4F7F\u7528\u5DF2\u5B89\u88C5\u7684\u65E7\u7248 Claude Desktop\u3002"),0)):0:(process.env.CODER_DEBUG&&console.error(`[claude app] \u65E0\u6CD5\u8BFB\u53D6 ${Ye} \u7684\u7248\u672C\u53F7\uFF0C\u8DF3\u8FC7\u5347\u7EA7\u68C0\u67E5\u3002`),0)}_readInstalledAppVersion(){let e=J.join(Ye,"Contents","Info.plist");if(!O.existsSync(e))return null;try{return Rr("plutil",["-extract","CFBundleShortVersionString","raw","-o","-",e],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch(s){return process.env.CODER_DEBUG&&console.error(`[claude app] plutil \u8BFB\u53D6\u7248\u672C\u5931\u8D25: ${s.message}`),null}}async _confirmUpgrade(){if(!process.stdin.isTTY||!process.stdout.isTTY)return console.error("\u5F53\u524D\u4E0D\u662F\u4EA4\u4E92\u5F0F\u7EC8\u7AEF\uFF0C\u9ED8\u8BA4\u6267\u884C\u5347\u7EA7\u3002\u8BBE\u7F6E CODER_CLAUDE_APP_AUTO_UPGRADE=0 \u53EF\u8DF3\u8FC7\u3002"),process.env.CODER_CLAUDE_APP_AUTO_UPGRADE!=="0";let e=await new Promise(s=>{let r=Ed.createInterface({input:process.stdin,output:process.stderr});r.question("\u662F\u5426\u73B0\u5728\u5347\u7EA7 Claude Desktop\uFF1F[Y/n] ",n=>{r.close(),s(n.trim().toLowerCase())})});return e===""||e==="y"||e==="yes"}_upgradeClaudeApp(){console.error(`\u6B63\u5728\u5347\u7EA7 Claude Desktop\uFF1A${Ye}`),this._quitApp();let e=J.join(Lr.tmpdir(),`claude-app-upgrade-${process.pid}-${Date.now()}.dmg`),s=null;try{if(je("curl",["-fL","--retry","2","-o",e,Rs],{stdio:process.env.CODER_DEBUG?"inherit":["ignore","ignore","inherit"]}).status!==0||!O.existsSync(e))return console.error(`\u4E0B\u8F7D Claude \u5B89\u88C5\u5305\u5931\u8D25\uFF08${Rs}\uFF09\u3002`),1;let n=je("hdiutil",["attach",e,"-nobrowse","-readonly"],{encoding:"utf8"});if(n.status!==0)return console.error("\u6302\u8F7D Claude \u5B89\u88C5\u5305\u5931\u8D25\u3002"),process.env.CODER_DEBUG&&n.stderr&&console.error(n.stderr.trim()),1;if(s=vd(n.stdout),!s)return console.error("\u65E0\u6CD5\u89E3\u6790 DMG \u6302\u8F7D\u70B9\u3002"),1;let o=Od(s,"Claude.app");return o?this._replaceAppBundle(o,Ye)?(console.error(`Claude Desktop \u5DF2\u5347\u7EA7\u5230 ${Pr}\u3002`),0):1:(console.error("DMG \u5185\u672A\u627E\u5230 Claude.app\u3002"),1)}finally{s&&je("hdiutil",["detach",s,"-quiet"],{stdio:"ignore"});try{O.rmSync(e,{force:!0})}catch{}}}_replaceAppBundle(e,s){let r=`${s}.coder-upgrade-backup`;try{return O.rmSync(r,{recursive:!0,force:!0}),O.renameSync(s,r),je("ditto",[e,s],{stdio:"inherit"}).status===0?(O.rmSync(r,{recursive:!0,force:!0}),!0):(console.error(`\u5B89\u88C5\u65B0\u7248 Claude Desktop \u5931\u8D25\uFF1A${s}`),O.rmSync(s,{recursive:!0,force:!0}),O.renameSync(r,s),console.error("\u5DF2\u6062\u590D\u65E7\u7248 Claude Desktop\u3002"),!1)}catch(n){if(console.error(`\u66FF\u6362 Claude Desktop \u5931\u8D25\uFF1A${n.message}`),!O.existsSync(s)&&O.existsSync(r))try{O.renameSync(r,s),console.error("\u5DF2\u6062\u590D\u65E7\u7248 Claude Desktop\u3002")}catch(o){console.error(`\u6062\u590D\u65E7\u7248 Claude Desktop \u5931\u8D25\uFF1A${o.message}`)}return!1}}_detectRequiredVersion(){try{let s=O.readFileSync($d).toString("latin1").match(/"version":"([0-9][0-9.]*)","manifest"/);return s?s[1]:null}catch(e){return process.env.CODER_DEBUG&&console.error(`[claude app] \u8BFB\u53D6 asar \u5931\u8D25: ${e.message}`),null}}_resolveCoderEntry(){let e=O.realpathSync(process.execPath),s=O.realpathSync(process.argv[1]);return process.env.CODER_DEBUG&&(console.log(`[claude app] exec=${e}`),console.log(`[claude app] entry=${s}`)),{exec:e,entry:s}}_backupOnce(){O.existsSync(this.backupDir)||O.existsSync(this.userData)&&(O.cpSync(this.userData,this.backupDir,{recursive:!0}),process.env.CODER_DEBUG&&console.log(`[claude app] \u5DF2\u5907\u4EFD -> ${this.backupDir}`))}_writeDeploymentMode(){O.mkdirSync(this.userData,{recursive:!0});let e=J.join(this.userData,"claude_desktop_config.json"),s={};try{s=JSON.parse(O.readFileSync(e,"utf8"))}catch{}s.deploymentMode="3p",O.writeFileSync(e,JSON.stringify(s,null,2))}_writeGatewayConfig(e,s){let r=J.join(this.userData,"configLibrary");O.mkdirSync(r,{recursive:!0});let n=Ad.randomUUID().toLowerCase(),o={inferenceProvider:"gateway",inferenceCredentialKind:"static",inferenceGatewayBaseUrl:`${e}/claude`,inferenceGatewayAuthScheme:"x-api-key",inferenceGatewayApiKey:s,modelDiscoveryEnabled:!1,inferenceModels:Td};O.writeFileSync(J.join(r,`${n}.json`),JSON.stringify(o,null,2)),O.writeFileSync(J.join(r,"_meta.json"),JSON.stringify({appliedId:n,entries:[{id:n,name:"Coder Gateway"}]},null,2)),process.env.CODER_DEBUG&&console.log(`[claude app] gateway \u914D\u7F6E uuid=${n}`)}_resolveShimBinary(){let e=`darwin-${process.arch}`,s=J.join(e,"ccd-shim"),r=require.main&&require.main.filename&&J.dirname(require.main.filename)||__dirname,n=[J.resolve(r,s),J.resolve(r,"../dist",s),J.resolve(__dirname,"../../../dist",s)],o=J.dirname(process.execPath);n.push(J.join(o,"..","lib","node_modules","makecoder","dist",e,"ccd-shim"),J.join(o,"node_modules","makecoder","dist",e,"ccd-shim"));for(let i of n)if(O.existsSync(i))return i;throw new Error(`\u672A\u627E\u5230 CCD shim\uFF08dist/${e}/ccd-shim\uFF09\u3002\u8BF7\u91CD\u65B0\u5B89\u88C5 makecoder \u6216\u672C\u5730\u6267\u884C \`make fetch_tools\`\u3002`)}_shimInstallDir(e){return J.join(this.userData,"claude-code",e,"claude.app","Contents","MacOS")}_installShim(e,{exec:s,entry:r,apikey:n,coderBaseUrl:o}){let i=this._resolveShimBinary(),a=this._shimInstallDir(e);O.mkdirSync(a,{recursive:!0});let c=J.join(a,"claude");O.copyFileSync(i,c),O.chmodSync(c,493);let l=`exec=${s}
|
|
14
|
+
`))}_getBunPlatformPackage(){let e=process.platform,s=process.arch;return{"darwin-arm64":"@oven-sh/bun-darwin-aarch64","darwin-x64":"@oven-sh/bun-darwin-x64","linux-arm64":"@oven-sh/bun-linux-aarch64","linux-x64":"@oven-sh/bun-linux-x64","win32-x64":"@oven-sh/bun-windows-x64"}[`${e}-${s}`]||null}async launch(e={}){let{remainingArgs:s=[],coderBaseUrl:r,apikey:n=null,extraEnv:o={}}=e,i=this.findExecutablePath(),a=this._resolveBunPath();return process.env.CODER_DEBUG&&(console.log(`executablePath (bun): ${i}`),console.log(`bunPath: ${a}`)),new Promise((c,l)=>{let u={...process.env,...this.config.environmentVariables(r),CODER_EXECPATH:cs.realpathSync(process.argv[1]),...o};n&&(u.CODER_APIKEY=n);let d=Cd(s),f=Sd(a,[i,...d],{env:u,stdio:"inherit"});f.on("error",h=>{h.code==="ENOENT"?console.error("bun binary not found. Install it with: npm install -g bun or curl -fsSL https://bun.sh/install | bash"):console.error(`Failed to start bun: ${h.message}`),l(h)}),f.on("exit",h=>c(h)),process.on("SIGINT",()=>{}),process.on("SIGTERM",()=>{f.kill("SIGTERM"),setTimeout(()=>{f.killed||f.kill("SIGKILL")},8e3)})})}};Go.exports=Dr});var Vo=k((r0,Zo)=>{var{execFileSync:Rr,spawnSync:Me}=require("child_process"),Ed=require("readline"),J=require("path"),O=require("fs"),Lr=require("os"),Ad=require("crypto"),Td=["opus4.8","claude-opus-4-7","claude-sonnet-4-6","claude-haiku-4-5-20251001"],Ye="/Applications/Claude.app",$d=`${Ye}/Contents/Resources/app.asar`,Pr="1.12603.1",Rs="https://cdn.makecoder.com/cdnuploads/claude-app/Claude-darwin-universal-1.12603.1.dmg",Nr=class{constructor(){this.name="Claude Desktop (3p)",this.userData=J.join(Lr.homedir(),"Library","Application Support","Claude-3p"),this.backupDir=`${this.userData}.coder-backup`}async launch(e={}){if(process.platform!=="darwin")return console.error("coder claude app \u76EE\u524D\u4EC5\u652F\u6301 macOS\u3002"),1;let{remainingArgs:s=[],coderBaseUrl:r,apikey:n=null}=e,o=(s[0]||"setup").toLowerCase();try{if(o==="restore")return this._restore();if(o==="status")return this._status();if(o==="setup"){if(O.existsSync(Ye)){let i=await this._ensureInstalledAppVersion();if(i!==0)return i}else{let i=this._ensureClaudeAppInstalled();if(i!==0)return i}return await this._setup(r,n)}return console.error(`\u672A\u77E5\u5B50\u547D\u4EE4\uFF1A${o}\uFF08\u53EF\u7528\uFF1Asetup | restore | status\uFF09`),1}catch(i){return console.error(`Error: ${i.message}`),process.env.CODER_DEBUG&&console.error(i.stack),1}}async _setup(e,s){if(!s)return console.error("\u7F3A\u5C11 API Key\u3002\u8BF7\u5148 `coder auth login` \u6216\u7528 --apikey \u63D0\u4F9B\u3002"),1;let r=this._detectRequiredVersion();if(!r)return console.error("\u65E0\u6CD5\u8BC6\u522B Claude Desktop \u7248\u672C\uFF0C\u8BF7\u786E\u8BA4\u5DF2\u5B89\u88C5\u6700\u65B0\u7248 Claude\u3002"),1;let{exec:n,entry:o}=this._resolveCoderEntry();return console.log("\u6B63\u5728\u914D\u7F6E Claude Desktop\u2026"),this._quitApp(),this._backupOnce(),this._writeDeploymentMode(),this._writeGatewayConfig(e,s),this._installShim(r,{exec:n,entry:o,apikey:s,coderBaseUrl:e}),this._openApp(),console.log("\u2705 Claude Desktop \u5DF2\u63A5\u5165 coder\uFF0C\u6B63\u5728\u542F\u52A8\u3002"),console.log(" \u8FD8\u539F\uFF1Acoder claude app restore"),0}_ensureClaudeAppInstalled(){console.log("\u672A\u68C0\u6D4B\u5230 Claude Desktop\uFF0C\u6B63\u5728\u4E0B\u8F7D\u5B89\u88C5\u2026");let e=J.join(Lr.tmpdir(),`claude-app-${process.pid}-${Date.now()}.dmg`),s=null;try{if(Me("curl",["-fL","--retry","2","-o",e,Rs],{stdio:process.env.CODER_DEBUG?"inherit":["ignore","ignore","inherit"]}).status!==0||!O.existsSync(e))return console.error(`\u4E0B\u8F7D Claude \u5B89\u88C5\u5305\u5931\u8D25\uFF08${Rs}\uFF09\u3002`),1;let n=Me("hdiutil",["attach",e,"-nobrowse","-readonly"],{encoding:"utf8"});if(n.status!==0)return console.error("\u6302\u8F7D Claude \u5B89\u88C5\u5305\u5931\u8D25\u3002"),1;let o=n.stdout.match(/(\/Volumes\/[^\n]+)\s*$/m);if(s=o?o[1].trim():null,!s)return console.error("\u65E0\u6CD5\u89E3\u6790 DMG \u6302\u8F7D\u70B9\u3002"),1;let i=J.join(s,"Claude.app");return O.existsSync(i)?Me("ditto",[i,Ye],{stdio:"inherit"}).status!==0?(console.error("\u62F7\u8D1D Claude.app \u5230 /Applications \u5931\u8D25\uFF08\u53EF\u80FD\u9700\u8981\u6743\u9650\uFF09\u3002"),1):(console.log("\u2705 Claude Desktop \u5B89\u88C5\u5B8C\u6210\u3002"),0):(console.error(`DMG \u5185\u672A\u627E\u5230 Claude.app\uFF08${i}\uFF09\u3002`),1)}finally{s&&Me("hdiutil",["detach",s,"-quiet"],{stdio:"ignore"});try{O.rmSync(e,{force:!0})}catch{}}}async _ensureInstalledAppVersion(){let e=this._readInstalledAppVersion();return e?Ud(e,Pr)?(console.error(`\u68C0\u6D4B\u5230 Claude Desktop \u7248\u672C\u8F83\u65E7\uFF1A\u5F53\u524D ${e}\uFF0C\u63A8\u8350 ${Pr}\u3002`),console.error("\u5EFA\u8BAE\u73B0\u5728\u5347\u7EA7\uFF0C\u4EE5\u4FDD\u6301 Desktop 3p \u914D\u7F6E\u3001CCD shim \u4E0E makecoder \u517C\u5BB9\u3002"),await this._confirmUpgrade()?this._upgradeClaudeApp():(console.error("\u7EE7\u7EED\u4F7F\u7528\u5DF2\u5B89\u88C5\u7684\u65E7\u7248 Claude Desktop\u3002"),0)):0:(process.env.CODER_DEBUG&&console.error(`[claude app] \u65E0\u6CD5\u8BFB\u53D6 ${Ye} \u7684\u7248\u672C\u53F7\uFF0C\u8DF3\u8FC7\u5347\u7EA7\u68C0\u67E5\u3002`),0)}_readInstalledAppVersion(){let e=J.join(Ye,"Contents","Info.plist");if(!O.existsSync(e))return null;try{return Rr("plutil",["-extract","CFBundleShortVersionString","raw","-o","-",e],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch(s){return process.env.CODER_DEBUG&&console.error(`[claude app] plutil \u8BFB\u53D6\u7248\u672C\u5931\u8D25: ${s.message}`),null}}async _confirmUpgrade(){if(!process.stdin.isTTY||!process.stdout.isTTY)return console.error("\u5F53\u524D\u4E0D\u662F\u4EA4\u4E92\u5F0F\u7EC8\u7AEF\uFF0C\u9ED8\u8BA4\u6267\u884C\u5347\u7EA7\u3002\u8BBE\u7F6E CODER_CLAUDE_APP_AUTO_UPGRADE=0 \u53EF\u8DF3\u8FC7\u3002"),process.env.CODER_CLAUDE_APP_AUTO_UPGRADE!=="0";let e=await new Promise(s=>{let r=Ed.createInterface({input:process.stdin,output:process.stderr});r.question("\u662F\u5426\u73B0\u5728\u5347\u7EA7 Claude Desktop\uFF1F[Y/n] ",n=>{r.close(),s(n.trim().toLowerCase())})});return e===""||e==="y"||e==="yes"}_upgradeClaudeApp(){console.error(`\u6B63\u5728\u5347\u7EA7 Claude Desktop\uFF1A${Ye}`),this._quitApp();let e=J.join(Lr.tmpdir(),`claude-app-upgrade-${process.pid}-${Date.now()}.dmg`),s=null;try{if(Me("curl",["-fL","--retry","2","-o",e,Rs],{stdio:process.env.CODER_DEBUG?"inherit":["ignore","ignore","inherit"]}).status!==0||!O.existsSync(e))return console.error(`\u4E0B\u8F7D Claude \u5B89\u88C5\u5305\u5931\u8D25\uFF08${Rs}\uFF09\u3002`),1;let n=Me("hdiutil",["attach",e,"-nobrowse","-readonly"],{encoding:"utf8"});if(n.status!==0)return console.error("\u6302\u8F7D Claude \u5B89\u88C5\u5305\u5931\u8D25\u3002"),process.env.CODER_DEBUG&&n.stderr&&console.error(n.stderr.trim()),1;if(s=vd(n.stdout),!s)return console.error("\u65E0\u6CD5\u89E3\u6790 DMG \u6302\u8F7D\u70B9\u3002"),1;let o=Od(s,"Claude.app");return o?this._replaceAppBundle(o,Ye)?(console.error(`Claude Desktop \u5DF2\u5347\u7EA7\u5230 ${Pr}\u3002`),0):1:(console.error("DMG \u5185\u672A\u627E\u5230 Claude.app\u3002"),1)}finally{s&&Me("hdiutil",["detach",s,"-quiet"],{stdio:"ignore"});try{O.rmSync(e,{force:!0})}catch{}}}_replaceAppBundle(e,s){let r=`${s}.coder-upgrade-backup`;try{return O.rmSync(r,{recursive:!0,force:!0}),O.renameSync(s,r),Me("ditto",[e,s],{stdio:"inherit"}).status===0?(O.rmSync(r,{recursive:!0,force:!0}),!0):(console.error(`\u5B89\u88C5\u65B0\u7248 Claude Desktop \u5931\u8D25\uFF1A${s}`),O.rmSync(s,{recursive:!0,force:!0}),O.renameSync(r,s),console.error("\u5DF2\u6062\u590D\u65E7\u7248 Claude Desktop\u3002"),!1)}catch(n){if(console.error(`\u66FF\u6362 Claude Desktop \u5931\u8D25\uFF1A${n.message}`),!O.existsSync(s)&&O.existsSync(r))try{O.renameSync(r,s),console.error("\u5DF2\u6062\u590D\u65E7\u7248 Claude Desktop\u3002")}catch(o){console.error(`\u6062\u590D\u65E7\u7248 Claude Desktop \u5931\u8D25\uFF1A${o.message}`)}return!1}}_detectRequiredVersion(){try{let s=O.readFileSync($d).toString("latin1").match(/"version":"([0-9][0-9.]*)","manifest"/);return s?s[1]:null}catch(e){return process.env.CODER_DEBUG&&console.error(`[claude app] \u8BFB\u53D6 asar \u5931\u8D25: ${e.message}`),null}}_resolveCoderEntry(){let e=O.realpathSync(process.execPath),s=O.realpathSync(process.argv[1]);return process.env.CODER_DEBUG&&(console.log(`[claude app] exec=${e}`),console.log(`[claude app] entry=${s}`)),{exec:e,entry:s}}_backupOnce(){O.existsSync(this.backupDir)||O.existsSync(this.userData)&&(O.cpSync(this.userData,this.backupDir,{recursive:!0}),process.env.CODER_DEBUG&&console.log(`[claude app] \u5DF2\u5907\u4EFD -> ${this.backupDir}`))}_writeDeploymentMode(){O.mkdirSync(this.userData,{recursive:!0});let e=J.join(this.userData,"claude_desktop_config.json"),s={};try{s=JSON.parse(O.readFileSync(e,"utf8"))}catch{}s.deploymentMode="3p",O.writeFileSync(e,JSON.stringify(s,null,2))}_writeGatewayConfig(e,s){let r=J.join(this.userData,"configLibrary");O.mkdirSync(r,{recursive:!0});let n=Ad.randomUUID().toLowerCase(),o={inferenceProvider:"gateway",inferenceCredentialKind:"static",inferenceGatewayBaseUrl:`${e}/claude`,inferenceGatewayAuthScheme:"x-api-key",inferenceGatewayApiKey:s,modelDiscoveryEnabled:!1,inferenceModels:Td};O.writeFileSync(J.join(r,`${n}.json`),JSON.stringify(o,null,2)),O.writeFileSync(J.join(r,"_meta.json"),JSON.stringify({appliedId:n,entries:[{id:n,name:"Coder Gateway"}]},null,2)),process.env.CODER_DEBUG&&console.log(`[claude app] gateway \u914D\u7F6E uuid=${n}`)}_resolveShimBinary(){let e=`darwin-${process.arch}`,s=J.join(e,"ccd-shim"),r=require.main&&require.main.filename&&J.dirname(require.main.filename)||__dirname,n=[J.resolve(r,s),J.resolve(r,"../dist",s),J.resolve(__dirname,"../../../dist",s)],o=J.dirname(process.execPath);n.push(J.join(o,"..","lib","node_modules","makecoder","dist",e,"ccd-shim"),J.join(o,"node_modules","makecoder","dist",e,"ccd-shim"));for(let i of n)if(O.existsSync(i))return i;throw new Error(`\u672A\u627E\u5230 CCD shim\uFF08dist/${e}/ccd-shim\uFF09\u3002\u8BF7\u91CD\u65B0\u5B89\u88C5 makecoder \u6216\u672C\u5730\u6267\u884C \`make fetch_tools\`\u3002`)}_shimInstallDir(e){return J.join(this.userData,"claude-code",e,"claude.app","Contents","MacOS")}_installShim(e,{exec:s,entry:r,apikey:n,coderBaseUrl:o}){let i=this._resolveShimBinary(),a=this._shimInstallDir(e);O.mkdirSync(a,{recursive:!0});let c=J.join(a,"claude");O.copyFileSync(i,c),O.chmodSync(c,493);let l=`exec=${s}
|
|
15
15
|
entry=${r}
|
|
16
16
|
apikey=${n}
|
|
17
17
|
baseurl=${o}
|
|
18
|
-
`;O.writeFileSync(`${c}.conf`,l),O.writeFileSync(J.join(this.userData,"claude-code",e,".verified"),""),process.env.CODER_DEBUG&&console.log(`[claude app] shim \u5B89\u88C5 -> ${c}`)}_quitApp(){try{Rr("osascript",["-e",'quit app "Claude"'],{stdio:"ignore"})}catch{}
|
|
18
|
+
`;O.writeFileSync(`${c}.conf`,l),O.writeFileSync(J.join(this.userData,"claude-code",e,".verified"),""),process.env.CODER_DEBUG&&console.log(`[claude app] shim \u5B89\u88C5 -> ${c}`)}_quitApp(){try{Rr("osascript",["-e",'quit app "Claude"'],{stdio:"ignore"})}catch{}Me("sleep",["2"])}_openApp(){try{Rr("open",["-a","Claude"],{stdio:"ignore"})}catch(e){console.error(`\u65E0\u6CD5\u542F\u52A8 Claude\uFF1A${e.message}\uFF08\u8BF7\u624B\u52A8\u6253\u5F00\uFF09`)}}_restore(){return O.existsSync(this.backupDir)?(this._quitApp(),O.rmSync(this.userData,{recursive:!0,force:!0}),O.cpSync(this.backupDir,this.userData,{recursive:!0}),O.rmSync(this.backupDir,{recursive:!0,force:!0}),console.log("\u2705 \u5DF2\u8FD8\u539F Claude Desktop \u914D\u7F6E\uFF08\u91CD\u542F App \u751F\u6548\uFF09\u3002"),0):(console.error(`\u672A\u627E\u5230\u5907\u4EFD\u76EE\u5F55\uFF1A${this.backupDir}`),console.error("\u53EF\u80FD\u4ECE\u672A\u6267\u884C\u8FC7 setup\uFF0C\u6216\u5907\u4EFD\u5DF2\u88AB\u5220\u9664\u3002"),1)}_status(){let e=this._detectRequiredVersion(),s=null;try{s=JSON.parse(O.readFileSync(J.join(this.userData,"claude_desktop_config.json"),"utf8")).deploymentMode}catch{}let r=null;try{let i=JSON.parse(O.readFileSync(J.join(this.userData,"configLibrary","_meta.json"),"utf8"));r=JSON.parse(O.readFileSync(J.join(this.userData,"configLibrary",`${i.appliedId}.json`),"utf8")).inferenceGatewayBaseUrl}catch{}let n=e&&O.existsSync(J.join(this._shimInstallDir(e),"claude.conf"));return s==="3p"&&r&&n?(console.log("\u2705 Claude Desktop \u5DF2\u63A5\u5165 coder"),console.log(` API: ${r}`)):console.log("Claude Desktop \u672A\u63A5\u5165 coder\uFF08\u8FD0\u884C coder claude app \u63A5\u5165\uFF09"),process.env.CODER_DEBUG&&(console.log(`
|
|
19
19
|
[debug]`),console.log(` claude.app: ${Ye}`),console.log(` requiredVersion: ${e||"(\u63A2\u6D4B\u5931\u8D25)"}`),console.log(` deploymentMode: ${s||"(\u672A\u8BBE\u7F6E)"}`),console.log(` gateway baseUrl: ${r||"(\u65E0)"}`),console.log(` shim installed: ${n?"yes":"no"}`),console.log(` backup: ${O.existsSync(this.backupDir)?"yes":"no"}`)),0}};function Ud(t,e){let s=Bo(t),r=Bo(e),n=Math.max(s.length,r.length);for(let o=0;o<n;o++){let i=s[o]||0,a=r[o]||0;if(i<a)return!0;if(i>a)return!1}return!1}function Bo(t){return String(t).replace(/^v/i,"").split(".").map(e=>Number.parseInt(e,10)).map(e=>Number.isFinite(e)?e:0)}function vd(t){let e=String(t||"").split(/\r?\n/);for(let s of e){if(!s.includes("/Volumes/"))continue;let n=s.split(" ").find(i=>i.trim().startsWith("/Volumes/"));if(n)return n.trim();let o=s.match(/(\/Volumes\/.+)$/);if(o)return o[1].trim()}return null}function Od(t,e){let s=J.join(t,e);if(O.existsSync(s))return s;for(let r of O.readdirSync(t)){let n=J.join(t,r);if(r.endsWith(".app")&&O.statSync(n).isDirectory())return n}return null}Zo.exports=Nr});var Ko=k((n0,Wo)=>{var Dd=as(),qr=class extends Dd{constructor(){super({name:"Gemini",executablePaths:["gemini/gemini.js","../dist/gemini/gemini.js"],globalSubPath:"gemini/gemini.js",environmentVariables:e=>({GOOGLE_GEMINI_BASE_URL:`${e}/gemini`,GEMINI_API_KEY:"null",GOOGLE_API_KEY:"null",GOOGLE_CLOUD_PROJECT:"coder",GOOGLE_CLOUD_LOCATION:"coder",USE_VERTEX:!0,GEMINI_TELEMETRY_ENABLED:"false",GEMINI_TELEMETRY_LOG_PROMPTS:"false"})})}};Wo.exports=qr});var Ls=k((o0,zo)=>{var{CODER_RUNTIME_PROMPT:Rd}=vr(),Ld={"linux-x64":"makecoder-bin-linux-x64","linux-arm64":"makecoder-bin-linux-arm64","darwin-arm64":"makecoder-bin-darwin-arm64","win32-x64":"makecoder-bin-win-x64"};function Pd(t){return["-c",`openai_base_url="${t}/codex"`,"-c","analytics.enabled=false","-c","feedback.enabled=false","-c","check_for_update_on_startup=false","-c",'otel.exporter="none"',"-c",'otel.trace_exporter="none"',"-c",'otel.metrics_exporter="none"',"-c",`developer_instructions=${Rd}`]}zo.exports={PLATFORM_PACKAGE:Ld,buildConfigOverrides:Pd}});var Ho=k((i0,Jo)=>{var Nd=as(),{buildConfigOverrides:qd}=Ls(),jr=class extends Nd{constructor(){super({name:"Codex",executablePaths:["codex.mjs","../dist/codex.mjs"],globalSubPath:"codex.mjs",environmentVariables:()=>({CODEX_DISABLE_WEBSOCKET:"1"})})}async launch(e={}){let{remainingArgs:s=[],coderBaseUrl:r}=e,n=qd(r);return await super.launch({...e,remainingArgs:[...n,...s]})}};Jo.exports=jr});var ei=k((a0,Qo)=>{var{execFileSync:Ps,spawnSync:Ns}=require("child_process"),jd=require("readline"),Gr=require("os"),ie=require("path"),ee=require("fs"),Md=as(),{buildConfigOverrides:Gd}=Ls(),Mr="26.609.41114",Yo={arm64:"https://cdn.makecoder.com/cdnuploads/codex-app/Codex-darwin-arm64-26.609.41114.dmg",x64:"https://cdn.makecoder.com/cdnuploads/codex-app/Codex-darwin-x64-26.609.41114.dmg"},qs="Codex.app",Fd=[ie.join("/Applications",qs),ie.join(Gr.homedir(),"Applications",qs)],Bd=5e3,Fr=class extends Md{constructor(){super({name:"Codex",executablePaths:["codex.mjs","../dist/codex.mjs"],globalSubPath:"codex.mjs",environmentVariables:()=>({CODEX_DISABLE_WEBSOCKET:"1"})})}async launch(e={}){let{remainingArgs:s=[],coderBaseUrl:r,apikey:n=null}=e,o=Gd(r),i=await this._ensureInstalledAppVersion();if(i!==0)return i;let a=this._injectDesktopEnv(n,r),c=this._withDownloadUrlMirror(s);try{return await super.launch({...e,remainingArgs:[...o,...c]})}finally{a&&(await new Promise(l=>setTimeout(l,Bd)),this._removeDesktopEnv(a))}}_withDownloadUrlMirror(e){if(process.platform!=="darwin"||e.includes("--download-url"))return e;let s=Yo[process.arch];return s?(process.env.CODER_DEBUG&&console.log(`[codex app] \u6CE8\u5165 --download-url ${s}`),[...e,"--download-url",s]):e}async _ensureInstalledAppVersion(){if(process.platform!=="darwin")return 0;let e=Yo[process.arch];if(!e)return 0;let s=this._findInstalledAppPath();if(!s)return 0;let r=this._readInstalledAppVersion(s);return r?Zd(r,Mr)?(console.error(`\u68C0\u6D4B\u5230 Codex Desktop \u7248\u672C\u8F83\u65E7\uFF1A\u5F53\u524D ${r}\uFF0C\u63A8\u8350 ${Mr}\u3002`),console.error("\u5EFA\u8BAE\u73B0\u5728\u5347\u7EA7\uFF0C\u4EE5\u4FDD\u6301\u684C\u9762\u7AEF\u534F\u8BAE\u3001\u5185\u7F6E codex \u4E0E makecoder shim \u517C\u5BB9\u3002"),await this._confirmUpgrade()?this._upgradeInstalledApp(s,e):(console.error("\u7EE7\u7EED\u4F7F\u7528\u5DF2\u5B89\u88C5\u7684\u65E7\u7248 Codex Desktop\u3002"),0)):0:(process.env.CODER_DEBUG&&console.error(`[codex app] \u65E0\u6CD5\u8BFB\u53D6 ${s} \u7684\u7248\u672C\u53F7\uFF0C\u8DF3\u8FC7\u5347\u7EA7\u68C0\u67E5\u3002`),0)}_findInstalledAppPath(){return Fd.find(e=>ee.existsSync(e))||null}_readInstalledAppVersion(e){let s=ie.join(e,"Contents","Info.plist");if(!ee.existsSync(s))return null;try{return Ps("plutil",["-extract","CFBundleShortVersionString","raw","-o","-",s],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch(r){return process.env.CODER_DEBUG&&console.error(`[codex app] plutil \u8BFB\u53D6\u7248\u672C\u5931\u8D25: ${r.message}`),null}}async _confirmUpgrade(){if(!process.stdin.isTTY||!process.stdout.isTTY)return console.error("\u5F53\u524D\u4E0D\u662F\u4EA4\u4E92\u5F0F\u7EC8\u7AEF\uFF0C\u9ED8\u8BA4\u6267\u884C\u5347\u7EA7\u3002\u8BBE\u7F6E CODER_CODEX_APP_AUTO_UPGRADE=0 \u53EF\u8DF3\u8FC7\u3002"),process.env.CODER_CODEX_APP_AUTO_UPGRADE!=="0";let e=await new Promise(s=>{let r=jd.createInterface({input:process.stdin,output:process.stderr});r.question("\u662F\u5426\u73B0\u5728\u5347\u7EA7 Codex Desktop\uFF1F[Y/n] ",n=>{r.close(),s(n.trim().toLowerCase())})});return e===""||e==="y"||e==="yes"}_upgradeInstalledApp(e,s){console.error(`\u6B63\u5728\u5347\u7EA7 Codex Desktop\uFF1A${e}`),this._quitApp();let r=ee.mkdtempSync(ie.join(Gr.tmpdir(),"codex-app-upgrade-")),n=ie.join(r,"Codex.dmg"),o=null;try{if(Ns("curl",["-fL","--retry","2","-o",n,s],{stdio:process.env.CODER_DEBUG?"inherit":["ignore","ignore","inherit"]}).status!==0||!ee.existsSync(n))return console.error(`\u4E0B\u8F7D Codex Desktop \u5B89\u88C5\u5305\u5931\u8D25\uFF1A${s}`),1;let a=Ns("hdiutil",["attach",n,"-nobrowse","-readonly"],{encoding:"utf8"});if(a.status!==0)return console.error("\u6302\u8F7D Codex Desktop \u5B89\u88C5\u5305\u5931\u8D25\u3002"),process.env.CODER_DEBUG&&a.stderr&&console.error(a.stderr.trim()),1;if(o=Vd(a.stdout),!o)return console.error("\u65E0\u6CD5\u89E3\u6790 Codex Desktop \u5B89\u88C5\u5305\u6302\u8F7D\u70B9\u3002"),1;let c=this._findAppInMount(o);return c?this._replaceAppBundle(c,e)?(console.error(`Codex Desktop \u5DF2\u5347\u7EA7\u5230 ${Mr}\u3002`),0):1:(console.error(`DMG \u5185\u672A\u627E\u5230 ${qs}\u3002`),1)}catch(i){return console.error(`\u5347\u7EA7 Codex Desktop \u5931\u8D25\uFF1A${i.message}`),process.env.CODER_DEBUG&&console.error(i.stack),1}finally{o&&Ns("hdiutil",["detach",o,"-quiet"],{stdio:"ignore"});try{ee.rmSync(r,{recursive:!0,force:!0})}catch{}}}_replaceAppBundle(e,s){let r=`${s}.coder-upgrade-backup`;try{return ee.rmSync(r,{recursive:!0,force:!0}),ee.renameSync(s,r),Ns("ditto",[e,s],{stdio:"inherit"}).status===0?(ee.rmSync(r,{recursive:!0,force:!0}),!0):(console.error(`\u5B89\u88C5\u65B0\u7248 Codex Desktop \u5931\u8D25\uFF1A${s}`),ee.rmSync(s,{recursive:!0,force:!0}),ee.renameSync(r,s),console.error("\u5DF2\u6062\u590D\u65E7\u7248 Codex Desktop\u3002"),!1)}catch(n){if(console.error(`\u66FF\u6362 Codex Desktop \u5931\u8D25\uFF1A${n.message}`),!ee.existsSync(s)&&ee.existsSync(r))try{ee.renameSync(r,s),console.error("\u5DF2\u6062\u590D\u65E7\u7248 Codex Desktop\u3002")}catch(o){console.error(`\u6062\u590D\u65E7\u7248 Codex Desktop \u5931\u8D25\uFF1A${o.message}`)}return!1}}_quitApp(){try{Ps("osascript",["-e",'quit app "Codex"'],{stdio:"ignore"})}catch{}}_findAppInMount(e){let s=ie.join(e,qs);if(ee.existsSync(s))return s;for(let r of ee.readdirSync(e)){let n=ie.join(e,r);if(r.endsWith(".app")&&ee.statSync(n).isDirectory())return n}return null}_resolveShimBinary(){let e=`darwin-${process.arch}`,s=ie.join(e,"cdx-shim"),r=require.main&&require.main.filename&&ie.dirname(require.main.filename)||__dirname,n=[ie.resolve(r,s),ie.resolve(r,"../dist",s),ie.resolve(__dirname,"../../../dist",s)],o=ie.dirname(process.execPath);n.push(ie.join(o,"..","lib","node_modules","makecoder","dist",e,"cdx-shim"),ie.join(o,"node_modules","makecoder","dist",e,"cdx-shim"));for(let i of n)if(ee.existsSync(i))return i;throw new Error(`\u672A\u627E\u5230 cdx-shim\uFF08dist/${e}/cdx-shim\uFF09\u3002\u8BF7\u91CD\u65B0\u5B89\u88C5 makecoder \u6216\u672C\u5730\u6267\u884C \`make fetch_tools\`\u3002`)}_resolveCoderEntry(){return{exec:ee.realpathSync(process.execPath),entry:ee.realpathSync(process.argv[1])}}_installShim({apikey:e,coderBaseUrl:s}){let r=this._resolveShimBinary(),{exec:n,entry:o}=this._resolveCoderEntry(),i=process.env.CODER_PROFILE,a=i?`.coder.${i}`:".coder",c=ie.join(Gr.homedir(),a,"codex-app");ee.mkdirSync(c,{recursive:!0,mode:448});let l=ie.join(c,"cdx-shim");ee.copyFileSync(r,l),ee.chmodSync(l,493);let u=`exec=${n}
|
|
20
20
|
entry=${o}
|
|
21
21
|
apikey=${e||""}
|
|
22
22
|
baseurl=${s||""}
|
|
23
23
|
`;return ee.writeFileSync(`${l}.conf`,u,{mode:384}),process.env.CODER_DEBUG&&(console.log(`[codex app] cdx-shim \u5DF2\u5B89\u88C5: ${l}`),console.log(`[codex app] exec=${n} entry=${o}`)),l}_injectDesktopEnv(e,s){if(process.platform!=="darwin")return null;let r;try{r=this._installShim({apikey:e,coderBaseUrl:s})}catch(i){return process.env.CODER_DEBUG&&console.log(`[codex app] \u5B89\u88C5 cdx-shim \u5931\u8D25\uFF0C\u8DF3\u8FC7 CODEX_CLI_PATH \u6CE8\u5165\uFF1B\u684C\u9762 App \u5C06\u4F7F\u7528\u81EA\u5E26 codex\uFF08\u4E0D\u8D70\u4EE3\u7406\uFF09: ${i.message}`),null}let n={CODEX_CLI_PATH:r};e&&(n.CODER_APIKEY=e);let o=[];for(let[i,a]of Object.entries(n))try{Ps("launchctl",["setenv",i,a],{stdio:"ignore"}),o.push(i)}catch(c){process.env.CODER_DEBUG&&console.log(`[codex app] launchctl setenv ${i} \u5931\u8D25: ${c.message}`)}return process.env.CODER_DEBUG&&o.length&&console.log(`[codex app] \u5DF2\u6CE8\u5165 launchd \u73AF\u5883\u53D8\u91CF: ${o.join(", ")} (shim: ${r})`),o.length?o:null}_removeDesktopEnv(e){for(let s of e)try{Ps("launchctl",["unsetenv",s],{stdio:"ignore"})}catch(r){process.env.CODER_DEBUG&&console.log(`[codex app] launchctl unsetenv ${s} \u5931\u8D25: ${r.message}`)}}};function Zd(t,e){let s=Xo(t),r=Xo(e),n=Math.max(s.length,r.length);for(let o=0;o<n;o++){let i=s[o]||0,a=r[o]||0;if(i<a)return!0;if(i>a)return!1}return!1}function Xo(t){return String(t).replace(/^v/i,"").split(".").map(e=>Number.parseInt(e,10)).map(e=>Number.isFinite(e)?e:0)}function Vd(t){let e=String(t||"").split(/\r?\n/);for(let s of e){if(!s.includes("/Volumes/"))continue;let n=s.split(" ").find(i=>i.trim().startsWith("/Volumes/"));if(n)return n.trim();let o=s.match(/(\/Volumes\/.+)$/);if(o)return o[1].trim()}return null}Qo.exports=Fr});var Ms=k((c0,ni)=>{var Wd=Fo(),Kd=Vo(),zd=Ko(),Jd=Ho(),Hd=ei();function ti(){let t=new Wd;if(process.env.CODER_DEBUG)try{console.error(`[DEBUG] ClaudeBunLauncher selected, executable: ${t.findExecutablePath()}`)}catch(e){console.error(`[DEBUG] ClaudeBunLauncher executable not yet resolved: ${e.message}`)}return t}var js={claude:{aliases:["claude"],description:"Claude Code \u667A\u80FD\u4F53\uFF08\u9ED8\u8BA4\uFF09",create:ti,mapArgs:t=>t},"claude-app":{aliases:["claude-app"],description:"\u914D\u7F6E Claude Desktop\uFF08macOS\uFF09\u8D70 coder API\uFF1Asetup|restore|status",create:()=>new Kd,mapArgs:t=>t},codex:{aliases:["codex"],description:"OpenAI Codex \u667A\u80FD\u4F53",create:()=>new Jd,mapArgs:t=>t},"codex-app":{aliases:["codex-app"],description:"\u914D\u7F6E Codex Desktop\uFF08macOS\uFF09\u8D70 coder API",create:()=>new Hd,mapArgs:t=>["app",...t]},gemini:{aliases:["gemini"],description:"Gemini \u667A\u80FD\u4F53",create:()=>new zd,mapArgs:t=>t}},si=Object.keys(js),Yd=new Set(["claude","codex","gemini"]);function Xd(t){return Object.prototype.hasOwnProperty.call(js,t)}function ri(t){return js[t]||null}async function Qd(t,e,s){let r=ri(t);return r?await r.create().launch({remainingArgs:r.mapArgs(e),coderBaseUrl:s.getCoderBaseUrl(),apikey:s.getApiKey()}):(s.fail(`unknown agent: ${t}`,`available: ${si.join(" | ")}`),1)}ni.exports={AGENTS:js,AGENT_NAMES:si,SHORTCUTS:Yd,isAgentName:Xd,getAgent:ri,launchAgent:Qd,createClaudeLauncher:ti}});var ci=k((l0,ai)=>{var ls=require("fs"),oi=require("path"),{spawn:ii}=require("child_process"),Br=class{constructor(){this.extensionId="codev.codev-background";let e=require.main?oi.dirname(require.main.filename):__dirname;this.extensionPath=oi.resolve(e,"vendor/claude-code.vsix"),this._codeCommand=null}async resolveCodeCommand(){if(this._codeCommand)return this._codeCommand;if(process.env.IS_AISTUDIO==="True"){let e="/usr/lib/aistudio/lib/vscode/bin/remote-cli/aistudio";if(ls.existsSync(e))try{return ls.accessSync(e,ls.constants.F_OK|ls.constants.X_OK),this._codeCommand=e,process.env.CODER_DEBUG&&console.log(`Using AI Studio VSCode path: ${e}`),this._codeCommand}catch(s){process.env.CODER_DEBUG&&console.log(`AI Studio path exists but not executable: ${s.message}`)}else process.env.CODER_DEBUG&&console.log(`AI Studio path not found: ${e}`)}try{let{spawn:e}=require("child_process");return new Promise(s=>{let r=e("which",["code"],{stdio:["ignore","pipe","ignore"]}),n="";r.stdout.on("data",o=>{n+=o.toString().trim()}),r.on("close",o=>{o===0&&n?(this._codeCommand=n,process.env.CODER_DEBUG&&console.log(`Resolved code command path: ${n}`),s(this._codeCommand)):(this._codeCommand="code",s(this._codeCommand))}),r.on("error",()=>{this._codeCommand="code",s(this._codeCommand)}),setTimeout(()=>{r.kill(),this._codeCommand="code",s(this._codeCommand)},3e3)})}catch{return this._codeCommand="code",this._codeCommand}}async shouldInstallExtension(){try{return process.env.IS_AISTUDIO!=="True"?(process.env.CODER_DEBUG&&console.log("Not in AI Studio environment (IS_AISTUDIO!=True), skipping extension installation"),!1):await this.isVSCodeAvailable()?await this.isExtensionInstalled()?(process.env.CODER_DEBUG&&console.log(`Extension ${this.extensionId} already installed`),!1):!!ls.existsSync(this.extensionPath):(process.env.CODER_DEBUG&&console.log("VSCode not available, skipping extension installation"),!1)}catch(e){return process.env.CODER_DEBUG&&console.error(`Error checking extension installation status: ${e.message}`),!1}}async installExtension(){try{return console.log("Installing Codev VSCode extension..."),await this.executeVSCodeCommand(["--install-extension",this.extensionPath])?(console.log("\u2705 Codev VSCode extension installed successfully"),!0):(console.warn("\u274C Failed to install Codev VSCode extension"),!1)}catch(e){return console.warn(`Error installing VSCode extension: ${e.message}`),!1}}async isVSCodeAvailable(){try{let e=process.env.IS_AISTUDIO==="True"?["--help"]:["--version"],s=await this.executeVSCodeCommand(e,{timeout:1e4});if(process.env.CODER_DEBUG&&(console.log(`VSCode availability check (${e.join(" ")}): ${s?"available":"unavailable"}`),process.env.IS_AISTUDIO==="True")){let{spawn:r}=require("child_process");try{r("which",["code"],{stdio:["ignore","pipe","ignore"]}).stdout.on("data",o=>{console.log("which code:",o.toString().trim())})}catch(n){console.log("which command failed:",n.message)}}return s}catch(e){return process.env.CODER_DEBUG&&console.error("VSCode availability check error:",e.message),!1}}async isExtensionInstalled(){let e=await this.resolveCodeCommand();try{return new Promise(s=>{try{let r={stdio:["ignore","pipe","ignore"],shell:!1,env:{...process.env,PATH:process.env.PATH,HOME:process.env.HOME,USER:process.env.USER}};process.env.CODER_DEBUG&&console.log(`Spawning: ${e} --list-extensions`);let n=ii(e,["--list-extensions"],r),o="";n.stdout.on("data",i=>{o+=i.toString()}),n.on("close",i=>{if(i===0){let a=o.split(`
|
|
24
|
-
`).map(c=>c.trim());s(a.includes(this.extensionId))}else s(!1)}),n.on("error",i=>{process.env.CODER_DEBUG&&(console.error("VSCode list extensions error:",i.message),console.error("Error code:",i.code),console.error("Error errno:",i.errno),console.error("Error syscall:",i.syscall)),s(!1)}),setTimeout(()=>{try{n.kill()}catch{}s(!1)},1e4)}catch(r){process.env.CODER_DEBUG&&console.error("Failed to spawn VSCode list extensions:",r.message),s(!1)}})}catch{return!1}}async executeVSCodeCommand(e,s={}){let r=await this.resolveCodeCommand();return new Promise(n=>{try{let o={stdio:"ignore",shell:!1,env:{...process.env,PATH:process.env.PATH,HOME:process.env.HOME,USER:process.env.USER}};process.env.CODER_DEBUG&&console.log(`Spawning: ${r} ${e.join(" ")}`);let i=ii(r,e,o);i.on("close",c=>{n(c===0)}),i.on("error",c=>{process.env.CODER_DEBUG&&(console.error("VSCode command error:",c.message),console.error("Error code:",c.code),console.error("Error errno:",c.errno),console.error("Error syscall:",c.syscall)),n(!1)});let a=s.timeout||3e4;setTimeout(()=>{try{i.kill()}catch{}n(!1)},a)}catch(o){process.env.CODER_DEBUG&&console.error("Failed to spawn VSCode command:",o.message),n(!1)}})}async ensureExtensionInstalled(){try{process.env.CODER_DEBUG&&console.log("VSCode Extension Service: Checking extension status..."),await this.shouldInstallExtension()&&await this.installExtension()}catch(e){process.env.CODER_DEBUG&&console.error("VSCode Extension Service Error:",e)}}};ai.exports=Br});var Lt=k((u0,ef)=>{ef.exports={name:"makecoder",version:"4.1.
|
|
24
|
+
`).map(c=>c.trim());s(a.includes(this.extensionId))}else s(!1)}),n.on("error",i=>{process.env.CODER_DEBUG&&(console.error("VSCode list extensions error:",i.message),console.error("Error code:",i.code),console.error("Error errno:",i.errno),console.error("Error syscall:",i.syscall)),s(!1)}),setTimeout(()=>{try{n.kill()}catch{}s(!1)},1e4)}catch(r){process.env.CODER_DEBUG&&console.error("Failed to spawn VSCode list extensions:",r.message),s(!1)}})}catch{return!1}}async executeVSCodeCommand(e,s={}){let r=await this.resolveCodeCommand();return new Promise(n=>{try{let o={stdio:"ignore",shell:!1,env:{...process.env,PATH:process.env.PATH,HOME:process.env.HOME,USER:process.env.USER}};process.env.CODER_DEBUG&&console.log(`Spawning: ${r} ${e.join(" ")}`);let i=ii(r,e,o);i.on("close",c=>{n(c===0)}),i.on("error",c=>{process.env.CODER_DEBUG&&(console.error("VSCode command error:",c.message),console.error("Error code:",c.code),console.error("Error errno:",c.errno),console.error("Error syscall:",c.syscall)),n(!1)});let a=s.timeout||3e4;setTimeout(()=>{try{i.kill()}catch{}n(!1)},a)}catch(o){process.env.CODER_DEBUG&&console.error("Failed to spawn VSCode command:",o.message),n(!1)}})}async ensureExtensionInstalled(){try{process.env.CODER_DEBUG&&console.log("VSCode Extension Service: Checking extension status..."),await this.shouldInstallExtension()&&await this.installExtension()}catch(e){process.env.CODER_DEBUG&&console.error("VSCode Extension Service Error:",e)}}};ai.exports=Br});var Lt=k((u0,ef)=>{ef.exports={name:"makecoder",version:"4.1.20",description:"MakeCoder Coder: AI Agent Runtime OS that runs and orchestrates Claude Code, Codex, Gemini and more across CLI, API, Web and chat",main:"./dist/coder.js",bin:{coder:"./dist/coder.js"},scripts:{test:"node --test test/*.test.js",start:"node ./src/coder.js",build:"node scripts/build.js","build:clean":"node scripts/build.js --clean","build:dev":"node scripts/build.js --no-minify --sourcemap",postinstall:"node scripts/postinstall.js"},keywords:["ai-agent-runtime","agent-os","ai","cli","claude","gemini","codex","agent","orchestration","llm"],author:"makecoder",license:"MIT",repository:{type:"git",url:"https://github.com/makecoderai/coder.git"},homepage:"https://github.com/makecoderai/coder",dependencies:{bun:">=1.3.12",commander:"^15.0.0","node-fetch":"^3.3.2",open:"^10.1.0",ws:"^8.21.0",zod:"^3.25.76"},engines:{node:">=20.0.0"},devDependencies:{chokidar:"^4.0.3"},files:["dist","scripts/postinstall.js"]}});var ui=k((d0,li)=>{var Zr=require("crypto"),{URL:tf}=require("url"),Vr=class{static generateSignature(e,s,r,n){try{let o=new tf(e),i=Buffer.from(o.pathname),a=Buffer.from(i),c=s?typeof s=="string"?Buffer.from(s):Buffer.from(JSON.stringify(s)):Buffer.alloc(0),l=Buffer.concat([a,c,Buffer.from(n)]),u=Zr.createHmac("sha256",r);return u.update(l),u.digest("hex")}catch(o){throw new Error(`Failed to generate signature: ${o.message}`)}}static validateSignature(e,s,r,n,o){return this.generateSignature(e,s,r,n)===o}static generateTimestamp(){return Date.now().toString()}static generateStrongPassword(e=16){let s="abcdefghijkmnpqrstuvwxyz",r="ABCDEFGHJKLMNPQRSTUVWXYZ",n="23456789",o="!@#$%^&*-_=+",i=s+r+n+o;e<8&&(e=8);let a=l=>l[Zr.randomBytes(1)[0]%l.length],c=[a(s),a(r),a(n),a(o)];for(;c.length<e;)c.push(a(i));for(let l=c.length-1;l>0;l--){let u=Zr.randomBytes(1)[0]%(l+1);[c[l],c[u]]=[c[u],c[l]]}return c.join("")}};li.exports=Vr});var Gs=k((f0,pi)=>{var sf=require("https"),{URL:rf}=require("url"),di="https://makecoder.com/bigapis/auth/v1",nf="https://makecoder.com/bigapis/kbb2/v1",of="https://makecoder.com/wiki/api",Wr=class{constructor(e){this.token=e}request(e,s,r,n){return new Promise((o,i)=>{let a=n||di,c=new rf(`${a}${s}`),l={"Content-Type":"application/json",Authorization:`Bearer ${this.token}`},u=null;r!=null&&(u=JSON.stringify(r),l["Content-Length"]=Buffer.byteLength(u));let d=sf.request({hostname:c.hostname,port:c.port||443,path:c.pathname+c.search,method:e,headers:l},f=>{let h="";f.on("data",g=>h+=g),f.on("end",()=>o({status:f.statusCode,body:h}))});d.on("error",i),u&&d.write(u),d.end()})}};function fi(t){try{return JSON.parse(t)}catch{return null}}function af(t){return t===401?2:t===403?5:t===404?4:t===409?6:1}function cf(t){let e=fi(t);return e?.message?e.message:e?.error?e.error:(t||"").slice(0,200)||"\u8BF7\u6C42\u5931\u8D25"}pi.exports={TeamHttp:Wr,parseJson:fi,exitCodeForStatus:af,errorMessage:cf,API_BASE:di,BIGKBB_BASE:nf,WIKI_API_BASE:of}});var hi=k((p0,mi)=>{var Kr=t=>String(t??"").replace(/\|/g,"\\|").replace(/\n/g," ");function lf(t,e,s={}){let{labels:r={},empty:n="\uFF08\u7A7A\uFF09"}=s;if(!e||!e.length){t.emit(n);return}if(t.isJson){t.emit(e);return}let o=Object.keys(e[0]),a=[`| ${o.map(c=>r[c]||c).map(Kr).join(" | ")} |`,`| ${o.map(()=>"---").join(" | ")} |`,...e.map(c=>`| ${o.map(l=>Kr(c[l])).join(" | ")} |`)];t.emit(a.join(`
|
|
25
25
|
`))}function uf(t,e,s=null){if(t.isJson){let r={};for(let[n,o]of e)r[n]=o;s&&typeof s=="object"&&Object.assign(r,s),t.emit(r);return}t.emit(e.map(([r,n,o])=>`${o||r}: ${n??""}`).join(`
|
|
26
26
|
`))}mi.exports={emitTable:lf,emitDetails:uf,escCell:Kr}});var wi=k((h0,_i)=>{var{TeamHttp:m0,parseJson:df,exitCodeForStatus:ff,errorMessage:pf,BIGKBB_BASE:mf,WIKI_API_BASE:hf}=Gs();function ot(t,e,s,r=1){t.fail(e,s);let n=new Error("__handled__");throw n.handled=!0,n.code=r,n}function gi(t,e){ot(t,pf(e.body),gf(e.status),ff(e.status))}function gf(t){if(t===401)return"\u5148\u767B\u5F55: coder auth login --apikey <ak>.<sk>";if(t===403)return"\u6743\u9650\u4E0D\u8DB3\uFF0C\u9700\u56E2\u961F owner / manager\uFF1B\u786E\u8BA4\u5F53\u524D\u56E2\u961F: coder team current";if(t===404)return"\u786E\u8BA4 id \u6B63\u786E\uFF0C\u6216\u7528 coder team list / members \u67E5\u627E"}function yi(t,e){if(e)return e;let s=t.ctx.getTeam?t.ctx.getTeam():null;return s&&s.id?s.id:null}function yf(t,e){let s=yi(t,e);return s||ot(t.ctx,"\u672A\u6307\u5B9A teamId \u4E14\u65E0\u9ED8\u8BA4\u56E2\u961F","\u8FD0\u884C coder team use <id> \u8BBE\u9ED8\u8BA4\u56E2\u961F\uFF0C\u6216\u52A0 --team <id> / \u4F4D\u7F6E\u53C2\u6570",3),s}async function _f(t,e){let s=encodeURIComponent(JSON.stringify({id__in:[e]})),r;try{r=await t.http.request("GET",`/team?constraints=${s}`)}catch(i){ot(t.ctx,`\u7F51\u7EDC\u9519\u8BEF ${i.message}`,void 0,1)}r.status!==200&&gi(t.ctx,r);let n=df(r.body),o=n&&n.data&&n.data.items||[];return o.length||ot(t.ctx,`\u56E2\u961F ${e} \u4E0D\u5B58\u5728`,"\u8FD0\u884C coder team list \u67E5\u770B\u53EF\u7528\u56E2\u961F",4),o[0]}function wf(t){return Array.isArray(t.members)?t.members:[]}function bf(t,e,s,r){let n=e.find(o=>o.user_id===s||o.id===s||o.username===s);return n||ot(t.ctx,`\u6210\u5458 '${s}' \u4E0D\u5728\u56E2\u961F '${r||""}' \u4E2D`,"\u8FD0\u884C coder team members \u67E5\u770B\u6210\u5458\uFF0Cuser_id / username \u5747\u53EF",4),n}function kf(t,e){return e?t.filter(s=>s.user_type===e):t}function xf(t,e){e&&e!=="human"&&e!=="ai"&&ot(t.ctx,`--type \u4EC5\u652F\u6301 human \u6216 ai\uFF0C\u6536\u5230 '${e}'`,void 0,3)}function Sf(t,e){let s=t.config&&t.config.metadata&&t.config.metadata.created_by;if(!s)return"";let r=e.find(n=>n.user_id===s);return r?r.nickname?`${r.username}(${r.nickname})`:r.username:s}function If(t){return t==="mentor"?"admin":"member"}async function Cf(t,e,s){try{let r=await t.http.request("POST",`/${e}`,s,hf);(r.status<200||r.status>=300)&&process.stderr.write(`Warning: \u77E5\u8BC6\u5E93\u540C\u6B65\u5931\u8D25 (${e}): HTTP ${r.status}
|
|
27
27
|
`)}catch(r){process.stderr.write(`Warning: \u77E5\u8BC6\u5E93\u540C\u6B65\u5931\u8D25 (${e}): ${r.message}
|
|
28
|
-
`)}}_i.exports={abort:ot,abortOnHttp:gi,resolveTeamId:yi,requireTeamId:yf,fetchTeam:_f,teamMembers:wf,findMember:bf,filterMembersByType:kf,validateType:xf,resolveMentorUsername:Sf,toWikiGroupRole:If,wikiSync:Cf,BIGKBB_BASE:mf}});var Jr=k((g0,Ci)=>{var us=require("fs"),it=require("path"),Ef=ui(),{parseJson:
|
|
29
|
-
`));return 10}async function Of(t){let e=encodeURIComponent(JSON.stringify({filter_is_joined:!0})),s=await ue(t,"GET",`/team?constraints=${e}&page=1&size=200`);s.status!==200&&ce(t.ctx,s);let r=
|
|
28
|
+
`)}}_i.exports={abort:ot,abortOnHttp:gi,resolveTeamId:yi,requireTeamId:yf,fetchTeam:_f,teamMembers:wf,findMember:bf,filterMembersByType:kf,validateType:xf,resolveMentorUsername:Sf,toWikiGroupRole:If,wikiSync:Cf,BIGKBB_BASE:mf}});var Jr=k((g0,Ci)=>{var us=require("fs"),it=require("path"),Ef=ui(),{parseJson:Ge}=Gs(),{emitTable:Fs,emitDetails:me}=hi(),{abort:j,abortOnHttp:ce,requireTeamId:bi,fetchTeam:De,teamMembers:Re,findMember:Pt,filterMembersByType:Af,validateType:Tf,resolveMentorUsername:ki,toWikiGroupRole:xi,wikiSync:Nt,BIGKBB_BASE:$f}=wi(),se=(t,e)=>{let s=t.indexOf(e);return s!==-1?t[s+1]:void 0},Si=(t,...e)=>{for(let s of e){let r=se(t,s);if(r!==void 0)return r}},ds=(t,...e)=>t.some(s=>e.includes(s));function Bs(t,{boolFlags:e=[],valueFlags:s=[]}={}){let r=[];for(let n=0;n<t.length;n++){let o=t[n];if(!e.includes(o)){if(s.includes(o)){n++;continue}o&&o.startsWith("--")||r.push(o)}}return r}function le(t){return bi(t,se(t.args,"--team"))}async function ue(t,e,s,r,n){try{return await t.http.request(e,s,r,n)}catch(o){j(t.ctx,`\u7F51\u7EDC\u9519\u8BEF ${o.message}`,void 0,1)}}var at={id:"ID",name:"\u540D\u79F0",members:"\u6210\u5458\u6570",points:"\u79EF\u5206",team:"\u56E2\u961F",description:"\u63CF\u8FF0",points_expire_at:"\u79EF\u5206\u6709\u6548\u671F",active:"\u6FC0\u6D3B",username:"\u7528\u6237\u540D",user_id:"\u7528\u6237ID",type:"\u7C7B\u578B",role:"\u89D2\u8272",nickname:"\u6635\u79F0",introduction:"\u7B80\u4ECB",mentor:"\u5BFC\u5E08",status:"\u72B6\u6001",joined_at:"\u52A0\u5165\u65F6\u95F4",im_bindings:"IM\u7ED1\u5B9A",password:"\u5BC6\u7801",quota:"\u914D\u989D",credentials:"\u51ED\u636E",group:"\u5C0F\u7EC4",group_id:"\u5C0F\u7EC4ID",created_at:"\u521B\u5EFA\u65F6\u95F4",members_total:"\u6210\u5458\u6570",endpoint:"endpoint",confirm:"\u786E\u8BA4"};function Uf(t,e){return{username:t.username||"",user_id:t.user_id||"",type:t.user_type||"",role:t.role||"",nickname:t.nickname||"",introduction:t.introduction||"",mentor:ki(t,e),points:t.points==null?"\u221E":String(t.points),joined_at:(t.created_at||"").slice(0,10)}}function vf(t){return[...t].sort((e,s)=>{let r=e.user_type==="ai"?0:1,n=s.user_type==="ai"?0:1;return r!==n?r-n:(e.username||"").localeCompare(s.username||"")})}function zr(t,e){if(t.ctx.isJson){let s={pending_confirmation:!0};for(let[r,n]of e)s[r]=n;t.ctx.emit(s)}else t.ctx.emit(e.map(([s,r,n])=>`${n||at[s]||s}: ${r??""}`).join(`
|
|
29
|
+
`));return 10}async function Of(t){let e=encodeURIComponent(JSON.stringify({filter_is_joined:!0})),s=await ue(t,"GET",`/team?constraints=${e}&page=1&size=200`);s.status!==200&&ce(t.ctx,s);let r=Ge(s.body);(!r||!r.data)&&j(t.ctx,"\u54CD\u5E94\u89E3\u6790\u5931\u8D25",void 0,1);let n=r.data.items||[];return Fs(t.ctx,n.map(o=>({id:o.id||"",name:o.name||"",members:(o.members_count??o.member_count??"")+"",points:o.points!=null?String(o.points):""})),{labels:at,empty:"\u4F60\u8FD8\u6CA1\u6709\u52A0\u5165\u4EFB\u4F55\u56E2\u961F"}),0}async function Df(t){let e=t.ctx.getTeam?t.ctx.getTeam():null;return!e||!e.id?(t.ctx.emit("\u672A\u8BBE\u7F6E\u9ED8\u8BA4\u56E2\u961F\uFF0C\u8FD0\u884C coder team use <teamId> \u6765\u8BBE\u7F6E"),0):(me(t.ctx,[["name",e.name||"","\u9ED8\u8BA4\u56E2\u961F"],["id",e.id,"teamId"]]),0)}async function Rf(t){let e=t.arg;e||j(t.ctx,"\u7F3A\u5C11 teamId \u53C2\u6570","\u7528\u6CD5: coder team use <teamId>",3);let s=encodeURIComponent(JSON.stringify({filter_is_joined:!0})),r=await ue(t,"GET",`/team?constraints=${s}&page=1&size=200`);r.status!==200&&ce(t.ctx,r);let n=Ge(r.body),i=(n&&n.data&&n.data.items||[]).find(a=>a.id===e);return i||j(t.ctx,`\u56E2\u961F '${e}' \u4E0D\u5728\u4F60\u5DF2\u52A0\u5165\u7684\u5217\u8868\u4E2D`,"\u8FD0\u884C coder team list \u67E5\u770B\u53EF\u7528\u56E2\u961F",4),t.ctx.setTeam(i.id,i.name||"")||j(t.ctx,"\u5199\u5165\u914D\u7F6E\u5931\u8D25",void 0,1),t.ctx.setTeamManual(!0),me(t.ctx,[["name",i.name||"","\u5DF2\u5207\u6362\u9ED8\u8BA4\u56E2\u961F"],["id",i.id,"teamId"]]),0}async function Lf(t){let e=bi(t,t.arg||se(t.args,"--team")),s=await De(t,e),r=Re(s),n=r.filter(i=>i.user_type==="ai").length,o=r.filter(i=>i.user_type==="human").length;return me(t.ctx,[["team",`${s.name} (${s.id})`,"\u56E2\u961F"],["description",s.description||"","\u63CF\u8FF0"],["points",s.points??"","\u79EF\u5206"],["points_expire_at",s.points_expire_at||"","\u79EF\u5206\u6709\u6548\u671F"],["active",s.is_active?"yes":"no","\u6FC0\u6D3B"],["members",`${r.length} (ai=${n}, human=${o})`,"\u6210\u5458"]],t.ctx.isJson?{id:s.id,name:s.name,members_total:r.length,members_ai:n,members_human:o}:null),0}async function Pf(t){let e=se(t.args,"--type")||null;Tf(t,e);let s=Si(t.args,"-q","--query")||null,r=le(t),n=await De(t,r),o=Re(n),i=Af(o,e);if(s){let c=s.toLowerCase();i=i.filter(l=>[l.username,l.user_id,l.id,l.nickname,l.introduction].map(u=>(u||"").toLowerCase()).some(u=>u.includes(c)))}let a=s?`\u672A\u5339\u914D\u5230 '${s}'`:e?`\u65E0 ${e} \u7C7B\u578B\u6210\u5458`:"\u56E2\u961F\u6682\u65E0\u6210\u5458";return Fs(t.ctx,vf(i).map(c=>Uf(c,o)),{labels:at,empty:a}),0}async function Nf(t){let e=t.arg;e||j(t.ctx,"\u7F3A\u5C11 userId|username \u53C2\u6570","\u7528\u6CD5: coder team members info <userId|username>",3);let s=le(t),r=await De(t,s),n=Re(r),o=Pt(t,n,e,r.name);return me(t.ctx,[["username",o.username||""],["user_id",o.user_id||""],["type",o.user_type||""],["role",o.role||""],["nickname",o.nickname||""],["introduction",o.introduction||""],["mentor",ki(o,n)],["status",o.status||""],["points",o.points==null?"\u221E":o.points],["joined_at",o.created_at||""],["im_bindings",o.im_bindings&&o.im_bindings.length?o.im_bindings.map(i=>i.channel).join(","):""]].map(([i,a])=>[i,a,at[i]]),t.ctx.isJson?o:null),0}function qf(t){let e=it.resolve(t);for((!us.existsSync(e)||!us.statSync(e).isDirectory())&&(e=it.dirname(e));e&&e!==it.dirname(e);){if(us.existsSync(it.join(e,".git")))return!0;e=it.dirname(e)}return!1}async function jf(t){let e=se(t.args,"--type")||"human";e!=="human"&&e!=="ai"&&j(t.ctx,`--type \u4EC5\u652F\u6301 human \u6216 ai\uFF0C\u6536\u5230 '${e}'`,void 0,3);let s=se(t.args,"--password")||null,r=se(t.args,"--phone")||null,n=se(t.args,"--points"),o=se(t.args,"--save-to")||null,i=se(t.args,"--nickname")||null,a=se(t.args,"--mentor")||null,c=t.arg;c||j(t.ctx,"\u7F3A\u5C11 username \u53C2\u6570","\u7528\u6CD5: coder team members create <username> [...]",3);let l=le(t);if(e==="human"&&!r&&j(t.ctx,"\u521B\u5EFA human \u6210\u5458\u5FC5\u987B\u63D0\u4F9B --phone <phone>",void 0,3),o){let w=it.resolve(o);qf(w)&&j(t.ctx,`--save-to \u8DEF\u5F84\u5728 git \u4ED3\u5E93\u5185\uFF08${w}\uFF09`,"\u6362\u5230\u4ED3\u5E93\u5916\u7684\u8DEF\u5F84\uFF0C\u907F\u514D\u51ED\u636E\u88AB\u8BEF\u63D0\u4EA4",3)}let u=null;if(n!=null){let w=Number(n);Number.isFinite(w)||j(t.ctx,`--points \u5E94\u4E3A\u6570\u5B57\uFF0C\u6536\u5230 '${n}'`,void 0,3),u=w}let d=s||Ef.generateStrongPassword(16),f=!s,h={payload:{username:c,password:d,phone:r||null,team_id:l,points:u,user_type:e,...i?{nickname:i}:{},...e==="ai"&&a?{config:{metadata:{created_by:a}}}:{}},auto_login:!1,auth_name:"UserPass"},g=await ue(t,"POST","/users",h);(g.status<200||g.status>=300)&&ce(t.ctx,g);let _=null;if(o){let w=it.resolve(o),x=`# Coder team member credentials
|
|
30
30
|
# Created: ${new Date().toISOString()}
|
|
31
31
|
username: ${c}
|
|
32
32
|
password: ${d}
|
|
33
33
|
team_id: ${l}
|
|
34
34
|
type: ${e}
|
|
35
35
|
`;try{us.writeFileSync(w,x,{mode:384});try{us.chmodSync(w,384)}catch{}_=w}catch(P){process.stderr.write(`Warning: \u4FDD\u5B58\u51ED\u636E\u5931\u8D25 ${P.message}
|
|
36
|
-
`)}}return me(t.ctx,[["username",c,"\u7528\u6237\u540D"],["password",`${d}${f?" (\u968F\u673A\u751F\u6210\uFF0C\u8BF7\u59A5\u5584\u4FDD\u7BA1)":""}`,"\u5BC6\u7801"],["team_id",l,"teamId"],["type",e,"\u7C7B\u578B"],["nickname",i||"","\u6635\u79F0"],["mentor",a||"","\u5BFC\u5E08"],["credentials",_?`\u5DF2\u4FDD\u5B58\u5230 ${_} (mode 0600)\uFF0C\u5EFA\u8BAE\u52A0\u5165 .gitignore`:"\u4EE5\u4E0A\u4EC5\u663E\u793A\u4E00\u6B21\uFF0C\u672A --save-to \u65F6\u8BF7\u7ACB\u5373\u8BB0\u5F55","\u51ED\u636E"]],t.ctx.isJson?{username:c,password:d,team_id:l,user_type:e,saved_to:_}:null),0}async function Mf(t){let e=se(t.args,"--nickname"),s=se(t.args,"--mentor"),r=ds(t.args,"--clear-mentor"),n=t.arg;n||
|
|
37
|
-
`))}return 0}async function Yf(t){let e=Bs(t.args,{valueFlags:["--team","--role"]}),s=e[0];s||
|
|
36
|
+
`)}}return me(t.ctx,[["username",c,"\u7528\u6237\u540D"],["password",`${d}${f?" (\u968F\u673A\u751F\u6210\uFF0C\u8BF7\u59A5\u5584\u4FDD\u7BA1)":""}`,"\u5BC6\u7801"],["team_id",l,"teamId"],["type",e,"\u7C7B\u578B"],["nickname",i||"","\u6635\u79F0"],["mentor",a||"","\u5BFC\u5E08"],["credentials",_?`\u5DF2\u4FDD\u5B58\u5230 ${_} (mode 0600)\uFF0C\u5EFA\u8BAE\u52A0\u5165 .gitignore`:"\u4EE5\u4E0A\u4EC5\u663E\u793A\u4E00\u6B21\uFF0C\u672A --save-to \u65F6\u8BF7\u7ACB\u5373\u8BB0\u5F55","\u51ED\u636E"]],t.ctx.isJson?{username:c,password:d,team_id:l,user_type:e,saved_to:_}:null),0}async function Mf(t){let e=se(t.args,"--nickname"),s=se(t.args,"--mentor"),r=ds(t.args,"--clear-mentor"),n=t.arg;n||j(t.ctx,"\u7F3A\u5C11 userId|username \u53C2\u6570","\u7528\u6CD5: coder team members update <userId|username> [--nickname <n>] [--mentor <userId|username>]",3),e===void 0&&s===void 0&&!r&&j(t.ctx,"\u81F3\u5C11\u9700\u8981 --nickname / --mentor / --clear-mentor \u4E4B\u4E00",void 0,3);let o=le(t),i=await De(t,o),a=Re(i),c=Pt(t,a,n,i.name),l={};if(e!==void 0&&(l.nickname=e),r)l.created_by=null;else if(s!==void 0){let f=a.find(h=>h.user_id===s||h.username===s);f||j(t.ctx,`mentor '${s}' \u4E0D\u5728\u56E2\u961F\u4E2D`,"\u8FD0\u884C coder team members \u67E5\u770B\u6210\u5458",4),l.created_by=f.user_id}let u=await ue(t,"PATCH",`/team/${o}/ai_users/${c.user_id}`,l);(u.status<200||u.status>=300)&&ce(t.ctx,u);let d=[["username",`${c.username} (${c.user_id})`,"\u5DF2\u66F4\u65B0\u6210\u5458"]];return e!==void 0&&d.push(["nickname",e,"\u6635\u79F0"]),r?d.push(["mentor","(\u5DF2\u6E05\u9664)","\u5BFC\u5E08"]):s!==void 0&&d.push(["mentor",s,"\u5BFC\u5E08"]),me(t.ctx,d,t.ctx.isJson?{user_id:c.user_id,team_id:o}:null),0}async function Gf(t){let e=se(t.args,"--points"),s=t.arg;s||j(t.ctx,"\u7F3A\u5C11 userId|username \u53C2\u6570","\u7528\u6CD5: coder team members set-points <userId|username> --points <n|unlimited>",3),e===void 0&&j(t.ctx,"\u7F3A\u5C11 --points <n|unlimited>","\u6570\u5B57=\u914D\u989D\u4E0A\u9650\uFF1Bunlimited=\u4E0D\u9650\u91CF\uFF08\u7EE7\u627F\u56E2\u961F\u6C60\uFF09",3);let r;if(e==="unlimited")r=null;else{let d=Number(e);(!Number.isFinite(d)||d<0)&&j(t.ctx,`--points \u5E94\u4E3A\u975E\u8D1F\u6570\u5B57\u6216 unlimited\uFF0C\u6536\u5230 '${e}'`,void 0,3),r=d}let n=le(t),o=await De(t,n),i=Pt(t,Re(o),s,o.name),a=`/refactor/coder/teams/${n}/members/${i.user_id}/points`,c=r===null?"\u4E0D\u9650\u91CF\uFF08\u7EE7\u627F\u56E2\u961F\u6C60\uFF09":String(r),l=await ue(t,"POST",a,{points:r},$f);(l.status<200||l.status>=300)&&ce(t.ctx,l);let u=Ge(l.body);return u&&u.code!==void 0&&u.code!==0&&u.code!==null&&j(t.ctx,`\u540E\u7AEF\u8FD4\u56DE code=${u.code} message=${u.message||""}`,void 0,1),me(t.ctx,[["username",`${i.username} (${i.user_id})`,"\u5DF2\u8BBE\u7F6E\u79EF\u5206\u914D\u989D"],["quota",c,"\u914D\u989D"]],t.ctx.isJson?{user_id:i.user_id,team_id:n,points:r}:null),0}async function Ff(t){let e=ds(t.args,"--yes","-y"),s=t.arg;s||j(t.ctx,"\u7F3A\u5C11 userId|username \u53C2\u6570","\u7528\u6CD5: coder team members delete <userId|username> [--yes]",3);let r=le(t),n=await De(t,r),o=Pt(t,Re(n),s,n.name);if(!e)return zr(t,[["username",`${o.username} (user_id=${o.user_id}, role=${o.role})`,"\u5C06\u5220\u9664\u6210\u5458"],["team",`${n.name} (${r})`,"\u4ECE\u56E2\u961F"],["endpoint",`DELETE /team/${r}/members/${o.id}`],["confirm","\u9AD8\u5F71\u54CD\u64CD\u4F5C\uFF0C\u52A0 --yes \u624D\u4F1A\u6267\u884C"]]);let i=await ue(t,"DELETE",`/team/${r}/members/${o.id}`);return(i.status<200||i.status>=300)&&ce(t.ctx,i),me(t.ctx,[["username",`${o.username} (${o.user_id})`,"\u5DF2\u5220\u9664\u6210\u5458"],["team",n.name,"\u4ECE\u56E2\u961F"]],t.ctx.isJson?{deleted:!0,user_id:o.user_id,team_id:r}:null),0}async function Ii(t,e,s){let r=await ue(t,"GET",`/team/${e}/groups/${s}/members`);(r.status<200||r.status>=300)&&ce(t.ctx,r);let n=Ge(r.body);return n&&(n.data||n)||[]}async function Bf(t){let e=le(t),s=await ue(t,"GET",`/team/${e}/groups`);(s.status<200||s.status>=300)&&ce(t.ctx,s);let r=Ge(s.body),n=r&&(r.data||r)||[];return Fs(t.ctx,n.map(o=>({id:o.id||"",name:o.name||"",description:o.description||"",created_at:(o.created_at||"").slice(0,10)})),{labels:at,empty:"\u6682\u65E0\u5C0F\u7EC4"}),0}async function Zf(t){let e=t.arg;e||j(t.ctx,"\u7F3A\u5C11 groupId \u53C2\u6570","\u7528\u6CD5: coder team groups info <groupId>",3);let s=le(t),r=await ue(t,"GET",`/team/${s}/groups`);(r.status<200||r.status>=300)&&ce(t.ctx,r);let o=(Ge(r.body)?.data||[]).find(a=>a.id===e);o||j(t.ctx,`\u5C0F\u7EC4 '${e}' \u4E0D\u5728\u56E2\u961F\u4E2D`,"\u8FD0\u884C coder team groups \u67E5\u770B\u5C0F\u7EC4",4);let i=await Ii(t,s,e);return me(t.ctx,[["group",`${o.name} (${o.id})`,"\u5C0F\u7EC4"],["description",o.description||"","\u63CF\u8FF0"],["team_id",s,"teamId"],["members_total",i.length,"\u6210\u5458\u6570"]],t.ctx.isJson?{id:o.id,name:o.name,members:i,members_total:i.length}:null),0}async function Vf(t){let e=t.arg;e||j(t.ctx,"\u7F3A\u5C11 groupId \u53C2\u6570","\u7528\u6CD5: coder team groups members <groupId>",3);let s=le(t),r=await De(t,s),n=new Map(Re(r).map(i=>[i.user_id,i])),o=await Ii(t,s,e);return Fs(t.ctx,o.map(i=>{let a=n.get(i.user_id)||{};return{username:a.username||"",user_id:i.user_id||"",type:a.user_type||"",role:i.role||"",nickname:a.nickname||""}}),{labels:at,empty:"\u5C0F\u7EC4\u6682\u65E0\u6210\u5458"}),0}async function Wf(t){let e=se(t.args,"--description"),s=t.arg;s||j(t.ctx,"\u7F3A\u5C11 name \u53C2\u6570","\u7528\u6CD5: coder team groups create <name> [--description <d>]",3);let r=le(t),n={name:s};e&&(n.description=e);let o=await ue(t,"POST",`/team/${r}/groups`,n);(o.status<200||o.status>=300)&&ce(t.ctx,o);let a=((Ge(o.body)||{}).data||Ge(o.body)||{}).id;return a&&await Nt(t,"sync.upsertGroup",{teamId:r,externalGroupId:a,name:s,description:e||void 0}),me(t.ctx,[["group",`${s} (${a})`,"\u5DF2\u521B\u5EFA\u5C0F\u7EC4"]],t.ctx.isJson?{id:a,team_id:r,name:s,description:e||null}:null),0}async function Kf(t){let e=se(t.args,"--name"),s=se(t.args,"--description"),r=t.arg;r||j(t.ctx,"\u7F3A\u5C11 groupId \u53C2\u6570","\u7528\u6CD5: coder team groups update <groupId> [--name <n>] [--description <d>]",3);let n=le(t);e===void 0&&s===void 0&&j(t.ctx,"\u81F3\u5C11\u9700\u8981 --name \u6216 --description",void 0,3);let o={};e!==void 0&&(o.name=e),s!==void 0&&(o.description=s);let i=await ue(t,"PATCH",`/team/${n}/groups/${r}`,o);(i.status<200||i.status>=300)&&ce(t.ctx,i);let a=Ge(i.body)?.data||{},c=e!==void 0?e:a.name;c&&await Nt(t,"sync.upsertGroup",{teamId:n,externalGroupId:r,name:c,description:s!==void 0?s:a.description||void 0});let l=[["group",r,"\u5DF2\u66F4\u65B0\u5C0F\u7EC4"]];return e!==void 0&&l.push(["name",e,"\u540D\u79F0"]),s!==void 0&&l.push(["description",s,"\u63CF\u8FF0"]),me(t.ctx,l,t.ctx.isJson?{id:r,team_id:n,...o}:null),0}async function zf(t){let e=ds(t.args,"--yes","-y"),s=t.arg;s||j(t.ctx,"\u7F3A\u5C11 groupId \u53C2\u6570","\u7528\u6CD5: coder team groups delete <groupId> [--yes]",3);let r=le(t);if(!e)return zr(t,[["group",s,"\u5C06\u5220\u9664\u5C0F\u7EC4"],["endpoint",`DELETE /team/${r}/groups/${s}`],["confirm","\u9AD8\u5F71\u54CD\u64CD\u4F5C\uFF08\u5C06\u6E05\u9664\u8BE5\u5C0F\u7EC4\u6240\u6709\u6210\u5458\u5173\u7CFB\uFF09\uFF0C\u52A0 --yes \u624D\u4F1A\u6267\u884C"]]);let n=await ue(t,"DELETE",`/team/${r}/groups/${s}`);return(n.status<200||n.status>=300)&&ce(t.ctx,n),await Nt(t,"sync.deleteGroup",{teamId:r,externalGroupId:s}),me(t.ctx,[["group",s,"\u5DF2\u5220\u9664\u5C0F\u7EC4"]],t.ctx.isJson?{deleted:!0,id:s,team_id:r}:null),0}function Jf(t,e,s){return s.split(",").map(n=>n.trim()).filter(Boolean).map(n=>{let o=e.find(i=>i.user_id===n||i.username===n||i.id===n);return o||j(t.ctx,`\u6210\u5458 '${n}' \u4E0D\u5728\u56E2\u961F\u4E2D`,"\u8FD0\u884C coder team members \u67E5\u770B\u6210\u5458",4),o})}async function Hf(t){let e=se(t.args,"--role")||"member",s=Bs(t.args,{valueFlags:["--team","--role"]}),r=s[0];r||j(t.ctx,"\u7F3A\u5C11 groupId \u53C2\u6570","\u7528\u6CD5: coder team groups add-member <groupId> <userIds> [--role member|mentor]\uFF08userIds \u9017\u53F7\u5206\u9694\uFF0Cuser_id \u6216 username \u5747\u53EF\uFF09",3);let n=s[1];n||j(t.ctx,"\u7F3A\u5C11 userIds \u53C2\u6570\uFF08\u9017\u53F7\u5206\u9694\uFF0C\u652F\u6301 user_id / username\uFF09",void 0,3);let o=le(t);e!=="member"&&e!=="mentor"&&j(t.ctx,`--role \u4EC5\u652F\u6301 member|mentor\uFF0C\u6536\u5230 '${e}'`,void 0,3);let i=await De(t,o),a=Jf(t,Re(i),n),c=await ue(t,"POST",`/team/${o}/groups/${r}/members`,{user_ids:a.map(l=>l.user_id),role:e});if((c.status<200||c.status>=300)&&ce(t.ctx,c),await Nt(t,"sync.upsertGroupMembers",{teamId:o,externalGroupId:r,members:a.map(l=>({externalUserId:l.user_id,username:l.username||l.user_id,role:xi(e)}))}),t.ctx.isJson)t.ctx.emit({team_id:o,group_id:r,added:a.map(l=>({user_id:l.user_id,username:l.username})),role:e});else{let l=[`\u5DF2\u6DFB\u52A0 ${a.length} \u540D\u6210\u5458\u5230\u5C0F\u7EC4 ${r} (role=${e})`];for(let u of a)l.push(` - ${u.username} (${u.user_id})`);t.ctx.emit(l.join(`
|
|
37
|
+
`))}return 0}async function Yf(t){let e=Bs(t.args,{valueFlags:["--team","--role"]}),s=e[0];s||j(t.ctx,"\u7F3A\u5C11 groupId \u53C2\u6570","\u7528\u6CD5: coder team groups set-role <groupId> <userId|username> <member|mentor>",3);let r=e[1],n=e[2]||se(t.args,"--role");(!r||!n)&&j(t.ctx,"\u7528\u6CD5: coder team groups set-role <groupId> <userId|username> <member|mentor>",void 0,3),n!=="member"&&n!=="mentor"&&j(t.ctx,`role \u4EC5\u652F\u6301 member|mentor\uFF0C\u6536\u5230 '${n}'`,void 0,3);let o=le(t),i=await De(t,o),a=Pt(t,Re(i),r,i.name),c=await ue(t,"PATCH",`/team/${o}/groups/${s}/members/${a.user_id}`,{role:n});return(c.status<200||c.status>=300)&&ce(t.ctx,c),await Nt(t,"sync.upsertGroupMembers",{teamId:o,externalGroupId:s,members:[{externalUserId:a.user_id,username:a.username||a.user_id,role:xi(n)}]}),me(t.ctx,[["username",`${a.username} (${a.user_id})`,"\u5DF2\u8BBE\u7F6E\u5C0F\u7EC4\u89D2\u8272"],["group",s,"\u5C0F\u7EC4"],["role",n,"\u89D2\u8272"]],t.ctx.isJson?{team_id:o,group_id:s,user_id:a.user_id,role:n}:null),0}async function Xf(t){let e=ds(t.args,"--yes","-y"),s=Bs(t.args,{boolFlags:["--yes","-y"],valueFlags:["--team"]}),r=s[0];r||j(t.ctx,"\u7F3A\u5C11 groupId \u53C2\u6570","\u7528\u6CD5: coder team groups remove-member <groupId> <userId|username> [--yes]",3);let n=s[1];n||j(t.ctx,"\u7F3A\u5C11 userId|username \u53C2\u6570",void 0,3);let o=le(t),i=await De(t,o),a=Pt(t,Re(i),n,i.name);if(!e)return zr(t,[["username",`${a.username} (${a.user_id})`,"\u5C06\u4ECE\u5C0F\u7EC4\u79FB\u9664"],["group",r,"\u5C0F\u7EC4"],["endpoint",`DELETE /team/${o}/groups/${r}/members/${a.user_id}`],["confirm","\u9AD8\u5F71\u54CD\u64CD\u4F5C\uFF0C\u52A0 --yes \u624D\u4F1A\u6267\u884C"]]);let c=await ue(t,"DELETE",`/team/${o}/groups/${r}/members/${a.user_id}`);return(c.status<200||c.status>=300)&&ce(t.ctx,c),await Nt(t,"sync.removeGroupMember",{teamId:o,externalGroupId:r,externalUserId:a.user_id}),me(t.ctx,[["username",`${a.username} (${a.user_id})`,"\u5DF2\u4ECE\u5C0F\u7EC4\u79FB\u9664"],["group",r,"\u5C0F\u7EC4"]],t.ctx.isJson?{removed:!0,user_id:a.user_id,group_id:r,team_id:o}:null),0}Ci.exports={list:Of,current:Df,use:Rf,info:Lf,members:{list:Pf,info:Nf,create:jf,update:Mf,"set-points":Gf,delete:Ff},groups:{list:Bf,info:Zf,members:Vf,create:Wf,update:Kf,delete:zf,"add-member":Hf,"set-role":Yf,"remove-member":Xf},_internal:{positionals:Bs,flag:se,flagAny:Si,hasFlag:ds,LABELS:at}}});var Hr=k((y0,Ei)=>{function Qf(){return process.env.CODER_NESTED==="1"||!process.stdout.isTTY}Ei.exports={shouldSuppressUpdateNotice:Qf}});var Vs=k((_0,Qr)=>{var Yr=require("https"),X=require("fs"),de=require("path"),Zs=require("os"),{shouldSuppressUpdateNotice:ep}=Hr(),ct="https://makecoder.com/skillhub",tp=["add","remove","update","check-updates","search","list","my-skills","publish","unpublish"],Xr=class{constructor(e,s){this.argParser=e||null,this.teamService=s||null}_defaultNamespace(){let e=this.argParser?this.argParser.getTeam():null;return e&&e.id?e.id.slice(0,8):null}_resolveNamespace(e){let s=e||this._defaultNamespace()||"global",r=s.startsWith("@")?s.slice(1):s;return r.length>8&&r.includes("-")?r.slice(0,8):r}getSkillDirs(){let e=Zs.homedir();return[de.join(e,".agents","skills")]}_request(e,s,r){return new Promise((n,o)=>{let i=new URL(`${ct}${s}`),a={hostname:i.hostname,port:i.port||443,path:i.pathname+i.search,method:e,headers:r?{Authorization:`Bearer ${r}`}:{}},c=Yr.request(a,l=>{if(l.statusCode>=300&&l.statusCode<400&&l.headers.location)return this._request(e,l.headers.location,r).then(n).catch(o);let u="";l.on("data",d=>u+=d),l.on("end",()=>n({status:l.statusCode,body:u}))});c.on("error",o),c.end()})}fetchWithAuth(e,s){return new Promise((r,n)=>{let o=new URL(e),i={hostname:o.hostname,port:o.port||443,path:o.pathname+o.search,method:"GET",headers:s?{Authorization:`Bearer ${s}`}:{}};Yr.get(i,a=>{if(a.statusCode>=300&&a.statusCode<400&&a.headers.location)return this.fetchWithAuth(a.headers.location,s).then(r).catch(n);let c="";a.on("data",l=>{c+=l}),a.on("end",()=>r({status:a.statusCode,body:c}))}).on("error",n)})}async handle({skillsSubcommand:e,skillsArg:s,skillsRemainingArgs:r,apikey:n}){if(!e||e==="--help"||e==="-h")return this.showHelp(),0;if(e==="publish")return await this.publish(r||[],n);if(e==="unpublish")return await this.unpublish(s,n);if(e==="list")return await this.listTeamSkills(r||[],n);if(e==="my-skills")return await this.listMySkills(r||[],n);if(e==="check-updates"){let o=this.getInstalledSkills();if(o.length===0)return console.log("\u6CA1\u6709\u5DF2\u5B89\u88C5\u7684 skill"),0;console.log(`\u{1F50D} \u68C0\u67E5 ${o.length} \u4E2A skill \u7684\u66F4\u65B0...`);let i=await this.checkUpdates(n);if(i.length===0)console.log("\u2705 \u6240\u6709 skill \u5747\u4E3A\u6700\u65B0\u7248\u672C");else{console.log(`
|
|
38
38
|
\u53D1\u73B0 ${i.length} \u4E2A\u53EF\u66F4\u65B0\u7684 skill:
|
|
39
39
|
`);for(let a of i)console.log(` ${a.name.padEnd(24)} ${a.localVersion} \u2192 ${a.remoteVersion}`);console.log("\n\u8FD0\u884C `coder skills update` \u66F4\u65B0\u5168\u90E8")}return 0}if(s&&e!=="search"&&!/^[@a-zA-Z0-9_\-/.]+$/.test(s))return console.error("\u274C skill \u540D\u79F0\u5305\u542B\u975E\u6CD5\u5B57\u7B26"),1;if(e==="search")return s?await this.search(s):(console.error("\u274C \u8BF7\u6307\u5B9A\u641C\u7D22\u5173\u952E\u8BCD"),1);if(e==="remove")return s?this.remove(s):(console.error("\u274C \u8BF7\u6307\u5B9A skill \u540D\u79F0"),1);if(e==="add")return s?n?await this.install(s,n):(console.error("\u274C \u7F3A\u5C11 API Key\uFF0C\u8BF7\u5148\u767B\u5F55: coder auth login"),1):(console.error("\u274C \u8BF7\u6307\u5B9A skill \u540D\u79F0"),1);if(e==="update"){if(!n)return console.error("\u274C \u7F3A\u5C11 API Key\uFF0C\u8BF7\u5148\u767B\u5F55: coder auth login"),1;if(s)return await this.install(s,n);console.log("\u{1F50D} \u68C0\u67E5\u53EF\u66F4\u65B0\u7684 skill...");let o=await this.checkUpdates(n);if(o.length===0)return console.log("\u2705 \u6240\u6709 skill \u5747\u4E3A\u6700\u65B0\u7248\u672C"),0;console.log(`\u{1F4E6} \u53D1\u73B0 ${o.length} \u4E2A\u53EF\u66F4\u65B0\u7684 skill\uFF0C\u5F00\u59CB\u66F4\u65B0...
|
|
40
40
|
`);let i=0,a=0,c=!1;for(let l of o){let u=await this.install(l.name,n);u==="EACCES"?(c=!0,a++):u!==0?a++:i++}console.log(`
|
|
@@ -52,10 +52,10 @@ type: ${e}
|
|
|
52
52
|
`))}function dp(t,e,s=1/0){if(!Array.isArray(e)||!e.length){t.emit("\uFF08\u7A7A\uFF09");return}if(t.isJson){t.emit(e);return}let r=[],n=(o,i,a)=>{o.forEach((c,l)=>{let u=l===o.length-1,d=u?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 ",f=c.url?`${cp}${c.url}`:lp(c.id);r.push(`${i}${d}${c.title||c.id} ${f}`),c.children?.length&&a+1<s&&n(c.children,i+(u?" ":"\u2502 "),a+1)})};n(e,"",0),t.emit(r.join(`
|
|
53
53
|
`))}function fp(t,e,s=null){if(t.isJson){let r={};for(let[n,o]of e)r[n]=o;s&&typeof s=="object"&&Object.assign(r,s),t.emit(r);return}t.emit(e.map(([r,n,o])=>`${o||r}: ${n??""}`).join(`
|
|
54
54
|
`))}var Li={title:"\u6807\u9898",name:"\u540D\u79F0",description:"\u63CF\u8FF0",permission:"\u6743\u9650",deleted_at:"\u5220\u9664\u65F6\u95F4",created_at:"\u521B\u5EFA\u65F6\u95F4",time:"\u65F6\u95F4",email:"\u90AE\u7BB1",role:"\u89D2\u8272",members:"\u6210\u5458\u6570",count:"\u6B21\u6570",latest:"\u6700\u8FD1",document:"\u6587\u6863",event:"\u4E8B\u4EF6",collection:"\u96C6\u5408",type:"\u7C7B\u578B",state:"\u72B6\u6001",filename:"\u6587\u4EF6\u540D",size:"\u5927\u5C0F",author:"\u4F5C\u8005",content:"\u5185\u5BB9",icon:"\u56FE\u6807\u540D",keywords:"\u5173\u952E\u8BCD",published:"\u5DF2\u53D1\u5E03"};Pi.exports={emitTable:up,emitTree:dp,emitDetails:fp,escCell:rn,LABELS:Li}});var an=k((x0,qi)=>{var{emitTable:Ni,emitDetails:pp,emitTree:mp,LABELS:hp}=nn(),{docUrl:gp,colUrl:yp}=fs(),fe=t=>t?.data||[],qt=t=>t?.data?.memberships||t?.data?.groupMemberships||t?.data||[],re=(t,e,s)=>(r,n)=>Ni(r,(t(n)||[]).map(e),{labels:hp,empty:s}),lt=t=>(e,s)=>pp(e,t(s.data)),q=t=>(e,s)=>e.emit(typeof t=="function"?t(s):t),T=(t,e)=>{let s=t.indexOf(e);return s!==-1?t[s+1]:void 0},on=t=>({id:t.id,title:t.title,url:gp(t.urlId||t.id)}),_p={"collection-info":{endpoint:"collections.info",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",body:t=>({id:t}),render:lt(t=>[["id",t.id],["name",t.name,"\u540D\u79F0"],["description",t.description||"","\u63CF\u8FF0"],["permission",t.permission||"null","\u6743\u9650"],["url",yp(t.urlId||t.id)]])},"collection-members":{endpoint:"collections.memberships",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",body:(t,e)=>{let s={id:t};return T(e,"--query")&&(s.query=T(e,"--query")),T(e,"--permission")&&(s.permission=T(e,"--permission")),s},render:re(qt,t=>({userId:t.userId||"",name:t.user?.name||"",permission:t.permission||""}),"\u6682\u65E0\u6210\u5458")},"collection-add-user":{endpoint:"collections.add_user",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>{let s={id:t,userId:e[1]};return T(e,"--permission")&&(s.permission=T(e,"--permission")),s},render:q("\u5DF2\u6DFB\u52A0\u7528\u6237\u5230\u96C6\u5408")},"collection-remove-user":{endpoint:"collections.remove_user",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>({id:t,userId:e[1]}),expectOk:!0,render:q("\u5DF2\u4ECE\u96C6\u5408\u79FB\u9664\u7528\u6237")},"collection-add-group":{endpoint:"collections.add_group",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>{let s={id:t,groupId:e[1]};return T(e,"--permission")&&(s.permission=T(e,"--permission")),s},render:q("\u5DF2\u6DFB\u52A0\u7FA4\u7EC4\u5230\u96C6\u5408")},"collection-remove-group":{endpoint:"collections.remove_group",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>({id:t,groupId:e[1]}),expectOk:!0,render:q("\u5DF2\u4ECE\u96C6\u5408\u79FB\u9664\u7FA4\u7EC4")},"collection-group-members":{endpoint:"collections.group_memberships",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",body:t=>({id:t}),render:re(qt,t=>({groupId:t.groupId||"",name:t.group?.name||"",permission:t.permission||""}),"\u6682\u65E0\u7FA4\u7EC4\u6210\u5458")},"collection-export":{endpoint:"collections.export",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",body:(t,e)=>{let s={id:t};return T(e,"--format")&&(s.format=T(e,"--format")),s},render:q(t=>`\u5BFC\u51FA\u4EFB\u52A1\u5DF2\u521B\u5EFA: ${t.data?.id||""}`)},"export-all":{endpoint:"collections.export_all",body:(t,e)=>{let s={};return T(e,"--format")&&(s.format=T(e,"--format")),s},render:q(t=>`\u5168\u91CF\u5BFC\u51FA\u4EFB\u52A1\u5DF2\u521B\u5EFA: ${t.data?.id||""}`)},"collection-move":{endpoint:"collections.move",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u76EE\u6807 index\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>({id:t,index:e[1]}),render:q("\u96C6\u5408\u5DF2\u79FB\u52A8")},archived:{endpoint:"documents.archived",resolve:[{flag:"--collection",kind:"col"}],body:(t,e)=>{let s={};return T(e,"--collection")&&(s.collectionId=T(e,"--collection")),T(e,"--sort")&&(s.sort=T(e,"--sort")),T(e,"--direction")&&(s.direction=T(e,"--direction")),s},render:re(fe,on,"\u6682\u65E0\u5DF2\u5F52\u6863\u6587\u6863")},deleted:{endpoint:"documents.deleted",body:(t,e)=>{let s={};return T(e,"--sort")&&(s.sort=T(e,"--sort")),T(e,"--direction")&&(s.direction=T(e,"--direction")),s},render:re(fe,t=>({id:t.id,title:t.title,deleted_at:t.deletedAt||""}),"\u6682\u65E0\u5DF2\u5220\u9664\u6587\u6863")},insights:{endpoint:"documents.insights",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:(t,e)=>{let s={id:t};return T(e,"--start-date")&&(s.startDate=T(e,"--start-date")),T(e,"--end-date")&&(s.endDate=T(e,"--end-date")),s},render:re(fe,t=>({userId:t.userId||"",name:t.user?.name||"",time:t.createdAt||""}),"\u6682\u65E0\u8BBF\u95EE\u6570\u636E")},export:{endpoint:"documents.export",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:(t,e)=>({id:t,includeChildDocuments:e.includes("--include-children")}),render:(t,e)=>{let s=e.data;t.emit(s)}},"search-titles":{endpoint:"documents.search_titles",req:"\u8BF7\u6307\u5B9A\u641C\u7D22\u5173\u952E\u8BCD",body:(t,e)=>({query:[t,...e.slice(1)].join(" ")}),render:re(fe,on,"\u672A\u627E\u5230\u5339\u914D\u6807\u9898")},duplicate:{endpoint:"documents.duplicate",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",resolve:[{flag:"--collection",kind:"col"},{flag:"--parent",kind:"doc"}],body:(t,e)=>{let s={id:t};return T(e,"--title")&&(s.title=T(e,"--title")),T(e,"--collection")&&(s.collectionId=T(e,"--collection")),T(e,"--parent")&&(s.parentDocumentId=T(e,"--parent")),e.includes("--recursive")&&(s.recursive=!0),e.includes("--publish")&&(s.publish=!0),s},render:q(t=>{let e=(t.data?.documents||[])[0];return e?`\u6587\u6863\u5DF2\u590D\u5236: ${e.id} \u2014 ${e.title}`:"\u6587\u6863\u5DF2\u590D\u5236"})},unpublish:{endpoint:"documents.unpublish",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:t=>({id:t}),render:q("\u6587\u6863\u5DF2\u53D6\u6D88\u53D1\u5E03")},templatize:{endpoint:"documents.templatize",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",resolve:[{flag:"--collection",kind:"col"}],body:(t,e)=>{let s={id:t,publish:!0};return T(e,"--collection")&&(s.collectionId=T(e,"--collection")),s},render:q(t=>`\u5DF2\u8F6C\u4E3A\u6A21\u677F: ${t.data.id}`)},"doc-members":{endpoint:"documents.memberships",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:t=>({id:t}),render:re(qt,t=>({userId:t.userId||"",name:t.user?.name||"",permission:t.permission||""}),"\u6682\u65E0\u6210\u5458")},"doc-add-user":{endpoint:"documents.add_user",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>{let s={id:t,userId:e[1]};return T(e,"--permission")&&(s.permission=T(e,"--permission")),s},render:q("\u5DF2\u6DFB\u52A0\u7528\u6237\u5230\u6587\u6863")},"doc-remove-user":{endpoint:"documents.remove_user",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>({id:t,userId:e[1]}),expectOk:!0,render:q("\u5DF2\u4ECE\u6587\u6863\u79FB\u9664\u7528\u6237")},"doc-add-group":{endpoint:"documents.add_group",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>{let s={id:t,groupId:e[1]};return T(e,"--permission")&&(s.permission=T(e,"--permission")),s},render:q("\u5DF2\u6DFB\u52A0\u7FA4\u7EC4\u5230\u6587\u6863")},"doc-remove-group":{endpoint:"documents.remove_group",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>({id:t,groupId:e[1]}),expectOk:!0,render:q("\u5DF2\u4ECE\u6587\u6863\u79FB\u9664\u7FA4\u7EC4")},"doc-group-members":{endpoint:"documents.group_memberships",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:t=>({id:t}),render:re(qt,t=>({groupId:t.groupId||"",name:t.group?.name||"",permission:t.permission||""}),"\u6682\u65E0\u7FA4\u7EC4\u6210\u5458")},"empty-trash":{endpoint:"documents.empty_trash",body:()=>({}),expectOk:!0,render:q("\u56DE\u6536\u7AD9\u5DF2\u6E05\u7A7A")},"sub-docs":{endpoint:"documents.documents",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:t=>({id:t}),render:(t,e)=>mp(t,e.data?.children||[])},shares:{endpoint:"shares.list",resolve:[{flag:"--document",kind:"doc"}],body:(t,e)=>{let s={};return T(e,"--document")&&(s.documentId=T(e,"--document")),s},render:re(fe,t=>({shareId:t.id,document:t.documentTitle||t.documentId||"",published:t.published?"\u662F":"\u5426",url:t.url||""}),"\u6682\u65E0\u5206\u4EAB")},"share-info":{endpoint:"shares.info",req:"\u8BF7\u6307\u5B9A\u5206\u4EAB id\uFF08UUID\uFF0C\u6765\u81EA shares \u5217\u8868\uFF09",body:t=>({id:t}),render:lt(t=>[["id",t.id],["document",t.documentTitle||t.documentId||"","\u6587\u6863"],["published",t.published?"\u662F":"\u5426","\u5DF2\u53D1\u5E03"],["url",t.url||""]])},share:{endpoint:"shares.create",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:(t,e)=>({documentId:t,published:e.includes("--published"),includeChildDocuments:e.includes("--include-children")}),render:q(t=>`\u5206\u4EAB\u5DF2\u521B\u5EFA: ${t.data.id}
|
|
55
|
-
${t.data.url||""}`)},"share-update":{endpoint:"shares.update",req:"\u8BF7\u6307\u5B9A\u5206\u4EAB id\uFF08UUID\uFF09",body:(t,e)=>{let s={id:t};return e.includes("--published")&&(s.published=!0),e.includes("--no-published")&&(s.published=!1),e.includes("--include-children")&&(s.includeChildDocuments=!0),s},render:q("\u5206\u4EAB\u5DF2\u66F4\u65B0")},unshare:{endpoint:"shares.revoke",req:"\u8BF7\u6307\u5B9A\u5206\u4EAB id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u5206\u4EAB\u5DF2\u64A4\u9500")},users:{endpoint:"users.list",body:(t,e)=>{let s={};return T(e,"--query")&&(s.query=T(e,"--query")),T(e,"--filter")&&(s.filter=T(e,"--filter")),s},render:re(fe,t=>({id:t.id,name:t.name,email:t.email||"",role:t.role||""}),"\u6682\u65E0\u7528\u6237")},"user-info":{endpoint:"users.info",req:"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08UUID\uFF09",body:t=>({id:t}),render:lt(t=>[["id",t.id],["name",t.name,"\u59D3\u540D"],["email",t.email||"","\u90AE\u7BB1"],["role",t.role||"","\u89D2\u8272"]])},invite:{endpoint:"users.invite",reqArgs:(t,e)=>!(T(e,"--email")||t)&&"\u8BF7\u6307\u5B9A\u90AE\u7BB1\uFF08\u7B2C\u4E00\u4E2A\u53C2\u6570\u6216 --email\uFF09",body:(t,e)=>{let s=T(e,"--email")||t,r=T(e,"--name")||e[1],n=T(e,"--role")||e[2];return{invites:[{email:s,name:r,role:n}]}},render:(t,e)=>{let s=e.data||[];if(!s.length)return t.emit("\u9080\u8BF7\u5DF2\u53D1\u9001");Ni(t,s.map(r=>({id:r.id,email:r.email||"",name:r.name||""})))}},"user-update-role":{endpoint:"users.update_role",req:"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08UUID\uFF09",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u89D2\u8272\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF1Aadmin|member|viewer\uFF09",body:(t,e)=>({id:t,role:e[1]}),render:q("\u7528\u6237\u89D2\u8272\u5DF2\u66F4\u65B0")},"user-suspend":{endpoint:"users.suspend",req:"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08UUID\uFF09",body:t=>({id:t}),render:q("\u7528\u6237\u5DF2\u6682\u505C")},"user-activate":{endpoint:"users.activate",req:"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08UUID\uFF09",body:t=>({id:t}),render:q("\u7528\u6237\u5DF2\u6FC0\u6D3B")},groups:{endpoint:"groups.list",body:(t,e)=>{let s={};return T(e,"--query")&&(s.query=T(e,"--query")),s},render:re(fe,t=>({id:t.id,name:t.name,members:t.memberCount??""}),"\u6682\u65E0\u7FA4\u7EC4")},"group-info":{endpoint:"groups.info",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",body:t=>({id:t}),render:lt(t=>[["id",t.id],["name",t.name,"\u540D\u79F0"],["members",t.memberCount??"","\u6210\u5458"]])},"create-group":{endpoint:"groups.create",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4\u540D\u79F0",body:(t,e)=>({name:[t,...e.slice(1)].join(" ")}),render:q(t=>`\u7FA4\u7EC4\u5DF2\u521B\u5EFA: ${t.data.id} \u2014 ${t.data.name}`)},"update-group":{endpoint:"groups.update",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",body:(t,e)=>{let s={id:t};return T(e,"--name")&&(s.name=T(e,"--name")),s},render:q("\u7FA4\u7EC4\u5DF2\u66F4\u65B0")},"delete-group":{endpoint:"groups.delete",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u7FA4\u7EC4\u5DF2\u5220\u9664")},"group-members":{endpoint:"groups.memberships",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",body:t=>({id:t}),render:re(qt,t=>({userId:t.userId||t.user?.id||"",name:t.user?.name||""}),"\u6682\u65E0\u6210\u5458")},"group-add-user":{endpoint:"groups.add_user",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>({id:t,userId:e[1]}),render:q("\u5DF2\u6DFB\u52A0\u7528\u6237\u5230\u7FA4\u7EC4")},"group-remove-user":{endpoint:"groups.remove_user",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>({id:t,userId:e[1]}),expectOk:!0,render:q("\u5DF2\u4ECE\u7FA4\u7EC4\u79FB\u9664\u7528\u6237")},views:{endpoint:"views.list",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:t=>({documentId:t}),render:re(fe,t=>({userId:t.userId||"",name:t.user?.name||"",count:t.count??"",latest:t.updatedAt||""}),"\u6682\u65E0\u6D4F\u89C8\u8BB0\u5F55")},view:{endpoint:"views.create",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:t=>({documentId:t}),render:q("\u6D4F\u89C8\u5DF2\u8BB0\u5F55")},subscriptions:{endpoint:"subscriptions.list",id:"doc",resolve:[{flag:"--collection",kind:"col"}],reqArgs:(t,e)=>!t&&e.indexOf("--collection")===-1&&"\u8BF7\u6307\u5B9A\u6587\u6863 id \u6216 --collection <id>",body:(t,e)=>{let s={event:"documents.update"};return t&&(s.documentId=t),T(e,"--collection")&&(s.collectionId=T(e,"--collection")),s},render:re(fe,t=>({id:t.id,document:t.documentId||"",event:t.event||""}),"\u6682\u65E0\u8BA2\u9605")},subscribe:{endpoint:"subscriptions.create",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:t=>({documentId:t,event:"documents.update"}),render:q(t=>`\u5DF2\u8BA2\u9605: ${t.data.id}`)},unsubscribe:{endpoint:"subscriptions.delete",req:"\u8BF7\u6307\u5B9A\u8BA2\u9605 id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u5DF2\u53D6\u6D88\u8BA2\u9605")},events:{endpoint:"events.list",resolve:[{flag:"--document",kind:"doc"},{flag:"--collection",kind:"col"}],body:(t,e)=>{let s={};return T(e,"--actor")&&(s.actorId=T(e,"--actor")),T(e,"--document")&&(s.documentId=T(e,"--document")),T(e,"--collection")&&(s.collectionId=T(e,"--collection")),T(e,"--type")&&(s.name=T(e,"--type")),s},render:re(fe,t=>({event:t.name||"",actorId:t.actorId||"",time:t.createdAt||""}),"\u6682\u65E0\u4E8B\u4EF6")},templates:{endpoint:"templates.list",resolve:[{flag:"--collection",kind:"col"}],body:(t,e)=>{let s={};return T(e,"--collection")&&(s.collectionId=T(e,"--collection")),s},render:re(fe,t=>({id:t.id,title:t.title,collection:t.collectionId||""}),"\u6682\u65E0\u6A21\u677F")},"template-info":{endpoint:"templates.info",req:"\u8BF7\u6307\u5B9A\u6A21\u677F id\uFF08UUID\uFF09",body:t=>({id:t}),render:lt(t=>[["id",t.id],["title",t.title,"\u6807\u9898"],["collection",t.collectionId||"","\u96C6\u5408"]])},"create-template":{endpoint:"templates.create",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u6A21\u677F\u6807\u9898\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>{let s=T(e,"--text")||"";return{collectionId:t,title:e[1],data:{type:"doc",content:s?[{type:"paragraph",content:[{type:"text",text:s}]}]:[]}}},render:q(t=>`\u6A21\u677F\u5DF2\u521B\u5EFA: ${t.data.id} \u2014 ${t.data.title}`)},"update-template":{endpoint:"templates.update",req:"\u8BF7\u6307\u5B9A\u6A21\u677F id\uFF08UUID\uFF09",body:(t,e)=>{let s={id:t};T(e,"--title")&&(s.title=T(e,"--title"));let r=T(e,"--text");return r!==void 0&&(s.data={type:"doc",content:[{type:"paragraph",content:[{type:"text",text:r}]}]}),s},render:q("\u6A21\u677F\u5DF2\u66F4\u65B0")},"delete-template":{endpoint:"templates.delete",req:"\u8BF7\u6307\u5B9A\u6A21\u677F id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u6A21\u677F\u5DF2\u5220\u9664")},"duplicate-template":{endpoint:"templates.duplicate",req:"\u8BF7\u6307\u5B9A\u6A21\u677F id\uFF08UUID\uFF09",body:(t,e)=>{let s={id:t};return T(e,"--title")&&(s.title=T(e,"--title")),s},render:q(t=>`\u6A21\u677F\u5DF2\u590D\u5236: ${t.data.id} \u2014 ${t.data.title}`)},"file-ops":{endpoint:"fileOperations.list",body:(t,e)=>{let s={};return T(e,"--type")&&(s.type=T(e,"--type")),s},render:re(fe,t=>({id:t.id,type:t.type||"",state:t.state||"",time:t.createdAt||""}),"\u6682\u65E0\u6587\u4EF6\u64CD\u4F5C\u8BB0\u5F55")},"file-op-info":{endpoint:"fileOperations.info",req:"\u8BF7\u6307\u5B9A\u6587\u4EF6\u64CD\u4F5C id\uFF08UUID\uFF09",body:t=>({id:t}),render:lt(t=>[["id",t.id],["type",t.type||"","\u7C7B\u578B"],["state",t.state||"","\u72B6\u6001"],["time",t.createdAt||"","\u65F6\u95F4"]])},"file-op-delete":{endpoint:"fileOperations.delete",req:"\u8BF7\u6307\u5B9A\u6587\u4EF6\u64CD\u4F5C id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u6587\u4EF6\u64CD\u4F5C\u8BB0\u5F55\u5DF2\u5220\u9664")},reactions:{endpoint:"reactions.list",req:"\u8BF7\u6307\u5B9A\u8BC4\u8BBA id\uFF08UUID\uFF09",body:t=>({commentId:t}),render:re(fe,t=>({emoji:t.emoji||"",userId:t.userId||"",name:t.user?.name||""}),"\u6682\u65E0\u53CD\u5E94")},attachments:{endpoint:"attachments.list",id:"doc",body:t=>t?{documentId:t}:{},render:re(fe,t=>({id:t.id,filename:t.name,type:t.contentType||"",size:t.size?`${Math.round(t.size/1024)}KB`:"",url:t.url||""}),"\u6682\u65E0\u9644\u4EF6")},"delete-attachment":{endpoint:"attachments.delete",req:"\u8BF7\u6307\u5B9A\u9644\u4EF6 id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u9644\u4EF6\u5DF2\u5220\u9664")}};qi.exports={COMMANDS:_p,list:re,details:lt,ok:q,flag:T,items:fe,memberships:qt,docRow:on}});var Mi=k((S0,ji)=>{var wp=[{name:"academicCap",keywords:"\u5B66\u4E60 \u6559\u5B66 \u8BFE\u7A0B \u6307\u5357 \u6559\u7A0B \u57F9\u8BAD \u5165\u95E8"},{name:"beaker",keywords:"\u5B9E\u9A8C\u5BA4 \u7814\u7A76 \u5B9E\u9A8C \u6D4B\u8BD5"},{name:"bicycle",keywords:"\u81EA\u884C\u8F66 \u9A91\u884C"},{name:"bookmark",keywords:"\u4E66\u7B7E \u6536\u85CF"},{name:"browser",keywords:"\u6D4F\u89C8\u5668 \u7F51\u9875 \u5E94\u7528"},{name:"buildingBlocks",keywords:"\u79EF\u6728 \u6A21\u5757 \u4EA7\u54C1 \u539F\u578B"},{name:"camera",keywords:"\u76F8\u673A \u7167\u7247 \u56FE\u7247"},{name:"carrot",keywords:"\u98DF\u7269 \u852C\u83DC \u519C\u4EA7\u54C1"},{name:"clock",keywords:"\u65F6\u949F \u65F6\u95F4"},{name:"cloud",keywords:"\u4E91 \u4E91\u670D\u52A1 \u57FA\u7840\u8BBE\u65BD"},{name:"code",keywords:"\u4EE3\u7801 \u5F00\u53D1 \u7F16\u7A0B \u5DE5\u7A0B API"},{name:"coins",keywords:"\u91D1\u5E01 \u91D1\u94B1 \u8D22\u52A1 \u9500\u552E \u6536\u5165 \u73B0\u91D1"},{name:"collection",keywords:"\u96C6\u5408 \u6587\u4EF6\u5939"},{name:"database",keywords:"\u6570\u636E\u5E93 \u670D\u52A1\u5668 \u8FD0\u7EF4"},{name:"done",keywords:"\u5B8C\u6210 \u6210\u529F \u52FE\u9009 \u7ED3\u675F"},{name:"email",keywords:"\u90AE\u4EF6 \u90AE\u7BB1"},{name:"eye",keywords:"\u773C\u775B \u67E5\u770B \u9884\u89C8"},{name:"feedback",keywords:"\u53CD\u9988 \u5E2E\u52A9 \u652F\u6301 FAQ"},{name:"flame",keywords:"\u706B\u7130 \u70ED\u95E8"},{name:"globe",keywords:"\u5730\u7403 \u7FFB\u8BD1 \u56FD\u9645\u5316"},{name:"graph",keywords:"\u56FE\u8868 \u5206\u6790 \u6570\u636E \u7EDF\u8BA1"},{name:"hashtag",keywords:"\u6807\u7B7E \u8BDD\u9898 \u793E\u4EA4\u5A92\u4F53"},{name:"icecream",keywords:"\u51B0\u6DC7\u6DCB \u751C\u70B9 \u98DF\u7269"},{name:"image",keywords:"\u56FE\u7247 \u56FE\u50CF \u7167\u7247"},{name:"info",keywords:"\u4FE1\u606F \u8BF4\u660E"},{name:"internet",keywords:"\u7F51\u7EDC \u5168\u7403 \u4E92\u8054\u7F51"},{name:"leaf",keywords:"\u53F6\u5B50 \u690D\u7269 \u81EA\u7136 \u751F\u6001 \u73AF\u5883"},{name:"letter",keywords:"\u5B57\u6BCD \u4FE1\u4EF6"},{name:"library",keywords:"\u56FE\u4E66\u9986 \u6587\u5E93 \u5F52\u6863"},{name:"lightbulb",keywords:"\u706F\u6CE1 \u60F3\u6CD5 \u521B\u610F"},{name:"lightning",keywords:"\u95EA\u7535 \u5FEB\u901F"},{name:"math",keywords:"\u6570\u5B66 \u516C\u5F0F"},{name:"moon",keywords:"\u6708\u4EAE \u591C\u665A \u6697\u8272"},{name:"notepad",keywords:"\u8BB0\u4E8B\u672C \u7B14\u8BB0 \u65E5\u5FD7 \u5199\u4F5C"},{name:"padlock",keywords:"\u9501 \u79C1\u5BC6 \u5B89\u5168 \u8BA4\u8BC1 \u6743\u9650"},{name:"palette",keywords:"\u8C03\u8272\u677F \u8BBE\u8BA1 \u827A\u672F \u54C1\u724C"},{name:"pencil",keywords:"\u94C5\u7B14 \u5199\u4F5C \u535A\u5BA2 \u6587\u7AE0"},{name:"plane",keywords:"\u98DE\u673A \u65C5\u884C \u51FA\u884C \u5047\u671F"},{name:"promote",keywords:"\u63A8\u5E7F \u8425\u9500 \u5BA3\u4F20"},{name:"question",keywords:"\u95EE\u9898 \u5E2E\u52A9 \u652F\u6301 FAQ"},{name:"ramen",keywords:"\u62C9\u9762 \u6C64 \u98DF\u7269 \u9910\u996E"},{name:"server",keywords:"\u670D\u52A1\u5668 \u8FD0\u7EF4 \u57FA\u7840\u8BBE\u65BD"},{name:"shapes",keywords:"\u5F62\u72B6 \u79EF\u6728 \u73A9\u5177"},{name:"smiley",keywords:"\u7B11\u8138 \u8868\u60C5 \u5F00\u5FC3"},{name:"sport",keywords:"\u8FD0\u52A8 \u6237\u5916 \u6E38\u620F"},{name:"sun",keywords:"\u592A\u9633 \u767D\u5929 \u5929\u6C14"},{name:"target",keywords:"\u76EE\u6807 \u9500\u552E \u6307\u6807"},{name:"team",keywords:"\u56E2\u961F \u7EC4\u7EC7 \u529E\u516C\u5BA4"},{name:"terminal",keywords:"\u7EC8\u7AEF \u547D\u4EE4\u884C \u4EE3\u7801"},{name:"thumbsup",keywords:"\u70B9\u8D5E \u6536\u85CF \u793E\u4EA4 \u6295\u7968"},{name:"tools",keywords:"\u5DE5\u5177 \u8BBE\u7F6E \u914D\u7F6E"},{name:"truck",keywords:"\u5361\u8F66 \u8FD0\u8F93 \u7269\u6D41"},{name:"vehicle",keywords:"\u8F66\u8F86 \u4EA4\u901A \u51FA\u884C"},{name:"warning",keywords:"\u8B66\u544A \u63D0\u793A \u9519\u8BEF"}];ji.exports={ICON_LIST:wp}});var un=k((I0,Ki)=>{var Ks=require("fs"),ps=require("path"),{docUrl:jt,colUrl:cn,errorMessage:bp}=fs(),{emitTable:Re,emitTree:kp,emitDetails:ms}=nn(),{ICON_LIST:Gi}=Mi(),ne=(t,e)=>{let s=t.indexOf(e);return s!==-1?t[s+1]:void 0},xp=(t,e=[])=>{let s=[];for(let r=0;r<t.length;r++){if(t[r].startsWith("--")){e.includes(t[r])&&r++;continue}s.push(t[r])}return s};async function G(t,e,s,{allowNoData:r=!1}={}){let n=await t.http.postJson(e,s,{allowNoData:r});if(!n.ok){t.ctx.fail(bp(n.body),void 0);let o=new Error("__handled__");throw o.handled=!0,o}return n.json}var zs=t=>({id:t.id,title:t.title,url:jt(t.urlId||t.id)});async function Sp(t){let{ctx:e,http:s,resolver:r,arg:n,args:o}=t,i=o.indexOf("-d"),a=i!==-1?parseInt(o[i+1],10):null;if(!n){let u=await G(t,"collections.list",{});return Re(e,(u.data||[]).filter(d=>!d?.isShared).map(d=>({id:d.id,name:d.name,description:d.description||"",url:cn(d.urlId||d.id)})),"\u6682\u65E0\u96C6\u5408"),0}let c=await r.toColUuid(n);if(a===null){let u=await G(t,"documents.list",{collectionId:c,sort:"updatedAt",direction:"DESC"});return Re(e,(u.data||[]).map(zs),"\u6682\u65E0\u6587\u6863"),0}let l=await G(t,"collections.documents",{id:c});return kp(e,l.data||[],a===-1?1/0:a),0}async function Ip(t){let{ctx:e,arg:s}=t,r=[...t.args],n=(_,w)=>{let x=r.indexOf(_);if(x===-1)return w;let P=r[x+1];return r.splice(x,2),P??w},o=n("--permission","read_write"),i=n("--icon"),a=n("--color"),c=n("--sort-field"),l=n("--sort-direction"),u=n("--index"),d=s||r[0];if(!d)return e.fail("\u8BF7\u6307\u5B9A\u96C6\u5408\u540D\u79F0",'\u7528\u6CD5: coder wiki create-collection "<\u540D\u79F0>" [\u63CF\u8FF0]'),1;let f=r.slice(1).filter(_=>!_.startsWith("--")).join(" "),h={name:d,description:f,sharing:!0};h.permission=o==="null"||o==="none"?null:o,i&&(h.icon=i),a&&(h.color=a),(c||l)&&(h.sort={field:c||"index",direction:l||"asc"}),u&&(h.index=u);let g=await G(t,"collections.create",h);return ms(e,[["collection",`${g.data.id} \u2014 ${g.data.name}`,"\u96C6\u5408\u5DF2\u521B\u5EFA"],["url",cn(g.data.urlId||g.data.id)]]),0}async function Cp(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u96C6\u5408 id","coder wiki list \u67E5\u770B\u96C6\u5408"),1;let i={id:await s.toColUuid(r)};if(ne(n,"--name")&&(i.name=ne(n,"--name")),ne(n,"--description")&&(i.description=ne(n,"--description")),n.indexOf("--permission")!==-1){let c=ne(n,"--permission");i.permission=c==="null"||c==="none"?null:c}if(ne(n,"--color")&&(i.color=ne(n,"--color")),n.indexOf("--sharing")!==-1&&(i.sharing=ne(n,"--sharing")==="true"),Object.keys(i).length<=1)return e.fail("\u8BF7\u81F3\u5C11\u6307\u5B9A\u4E00\u4E2A\u8981\u66F4\u65B0\u7684\u5B57\u6BB5","\u53EF\u7528: --name --description --permission --color --sharing"),1;let a=await G(t,"collections.update",i);return e.emit(`\u96C6\u5408\u5DF2\u66F4\u65B0: ${a.data.id} \u2014 ${a.data.name}`),0}async function ln(t,e,s,{allowNoData:r=!1}={}){let{ctx:n,resolver:o,arg:i}=t;if(!i)return n.fail("\u8BF7\u6307\u5B9A\u96C6\u5408 id","coder wiki list \u67E5\u770B\u96C6\u5408"),1;let a=await o.toColUuid(i);return await G(t,e,{id:a},{allowNoData:r}),n.emit(s),0}var Ep=t=>ln(t,"collections.delete","\u96C6\u5408\u5DF2\u5220\u9664",{allowNoData:!0}),Ap=t=>ln(t,"collections.archive","\u96C6\u5408\u5DF2\u5F52\u6863"),Tp=t=>ln(t,"collections.restore","\u96C6\u5408\u5DF2\u6062\u590D");async function $p(t){let{ctx:e,resolver:s,arg:r}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / \u6D4F\u89C8\u5668 URL"),1;let n=await s.toDocUuid(r),i=(await G(t,"documents.info",{id:n})).data;return ms(e,[["title",i.title,"\u6807\u9898"],["id",i.id],["collection",i.collectionId,"\u96C6\u5408"],["updated_at",i.updatedAt,"\u66F4\u65B0"],["url",jt(i.urlId||i.id)]]),!e.isJson&&i.text&&e.emit(`
|
|
56
|
-
${i.text}`),0}function Bi(t,e){let s=ps.resolve(e);if(!Ks.existsSync(s))return t.ctx.fail(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${s}`,"\u786E\u8BA4\u8DEF\u5F84\u6B63\u786E"),null;let r=Ks.readFileSync(s,"utf8"),n=r.match(/^#\s+(.+)/m);return n?{title:n[1].trim(),text:r.replace(/^#\s+.+\n?/,"").trimStart()}:(t.ctx.fail("\u6587\u4EF6\u7F3A\u5C11 H1 \u6807\u9898\uFF08# \u6807\u9898\uFF09","\u5728 Markdown \u9876\u90E8\u52A0\u4E00\u884C # \u6807\u9898"),null)}async function Up(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u96C6\u5408 id","coder wiki publish <\u96C6\u5408> <\u6807\u9898> [\u6B63\u6587] | <\u96C6\u5408> --file <path> [--parent <doc>] [--index <n>] [--after <doc>]"),1;let o=await s.toColUuid(r),i,a,c=ne(n,"--parent")?await s.toDocUuid(ne(n,"--parent")):void 0,l=await Vi(t,o);if(!l.ok)return 1;let u=l.index;l.parentDocumentId&&!c&&(c=l.parentDocumentId);let d=!1;if(n.indexOf("--file")!==-1){let x=ne(n,"--file");d=x&&ps.extname(x).toLowerCase()===".mdx";let P=Bi(t,x);if(!P)return 1;({title:i,text:a}=P)}else if(i=n[1],a=n.slice(2).join(" "),!i)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863\u6807\u9898","coder wiki publish <\u96C6\u5408> <\u6807\u9898> [\u6B63\u6587]"),1;let f={collectionId:o,title:i,text:"",publish:!0};c&&(f.parentDocumentId=c),d&&(f.format="mdx");let g=(await G(t,"documents.create",f)).data.id,_={id:g,title:i,text:a,publish:!0};d&&(_.format="mdx");let w=await G(t,"documents.update",_);if(u!==void 0){let x={id:g,collectionId:o,index:u};c&&(x.parentDocumentId=c),await G(t,"documents.move",x)}return ms(e,[["title",w.data.title,"\u6587\u6863\u5DF2\u53D1\u5E03"],["id",g],["url",jt(w.data.urlId||g)]]),0}function Zi(t,e,s=null){if(!Array.isArray(t))return null;for(let r=0;r<t.length;r++){if(t[r].id===e)return{index:r,parentDocumentId:s};if(t[r].children?.length){let n=Zi(t[r].children,e,t[r].id);if(n)return n}}return null}async function Vi(t,e){let{ctx:s,resolver:r,args:n}=t,o=ne(n,"--after");if(n.indexOf("--after")!==-1){if(!o)return s.fail("\u8BF7\u6307\u5B9A --after \u7684\u6587\u6863","\u4F20 UUID / urlId / URL"),{ok:!1};let i=await r.toDocUuid(o),a=await G(t,"collections.documents",{id:e}),c=Zi(a.data,i);return c?{ok:!0,index:c.index+1,parentDocumentId:c.parentDocumentId}:(s.fail(`\u96C6\u5408\u4E2D\u672A\u627E\u5230\u6587\u6863 ${o}`,"\u786E\u8BA4\u8BE5\u6587\u6863\u5C5E\u4E8E\u6B64\u96C6\u5408"),{ok:!1})}if(n.indexOf("--index")!==-1){let i=parseInt(ne(n,"--index"),10);return isNaN(i)||i<0?(s.fail("--index \u9700\u4E3A\u975E\u8D1F\u6574\u6570","\u4F8B\u5982 --index 3"),{ok:!1}):{ok:!0,index:i}}return{ok:!0}}async function vp(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","coder wiki update <\u6587\u6863> <\u6807\u9898> [\u6B63\u6587] | <\u6587\u6863> --file <path>"),1;let o=await s.toDocUuid(r),i,a,c=!1;if(n.indexOf("--file")!==-1){let d=ne(n,"--file");c=d&&ps.extname(d).toLowerCase()===".mdx";let f=Bi(t,d);if(!f)return 1;({title:i,text:a}=f)}else if(i=n[1],a=n.slice(2).join(" "),!i)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863\u6807\u9898","coder wiki update <\u6587\u6863> <\u6807\u9898> [\u6B63\u6587]"),1;let l={id:o,title:i,publish:!0};a&&(l.text=a),c&&(l.format="mdx");let u=await G(t,"documents.update",l);return e.emit(`\u6587\u6863\u5DF2\u66F4\u65B0: ${u.data.title}`),0}async function Op(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / URL"),1;let o=await s.toDocUuid(r),i=n.includes("--permanent");return await G(t,"documents.delete",{id:o,...i?{permanent:!0}:{}},{allowNoData:!0}),e.emit(`\u6587\u6863\u5DF2${i?"\u6C38\u4E45":""}\u5220\u9664`),0}async function Dp(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","coder wiki move <\u6587\u6863> [\u96C6\u5408] [\u7236\u6587\u6863] [--index <n>] [--after <doc>]"),1;let o=await s.toDocUuid(r),i=xp(n,["--index","--after"]),a=i[1]?await s.toColUuid(i[1]):void 0,c=i[2]?await s.toDocUuid(i[2]):void 0;a||(a=(await G(t,"documents.info",{id:o})).data.collectionId);let l=await Vi(t,a);if(!l.ok)return 1;let u=l.index;l.parentDocumentId&&c===void 0&&(c=l.parentDocumentId);let d={id:o,collectionId:a,index:u!==void 0?u:0};return c!==void 0&&(d.parentDocumentId=c),await G(t,"documents.move",d),e.emit("\u6587\u6863\u5DF2\u79FB\u52A8"),0}async function Rp(t,e,s){let{ctx:r,resolver:n,arg:o}=t;if(!o)return r.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / URL"),1;let i=await n.toDocUuid(o);return await G(t,e,{id:i}),r.emit(s),0}var Lp=t=>Rp(t,"documents.archive","\u6587\u6863\u5DF2\u5F52\u6863");async function Pp(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / URL"),1;let i={id:await s.toDocUuid(r)};return ne(n,"--revision")&&(i.revisionId=ne(n,"--revision")),ne(n,"--collection")&&(i.collectionId=await s.toColUuid(ne(n,"--collection"))),await G(t,"documents.restore",i),e.emit("\u6587\u6863\u5DF2\u6062\u590D"),0}async function Np(t){let{ctx:e,resolver:s,arg:r}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / URL"),1;let n=await s.toDocUuid(r),o=await G(t,"revisions.list",{documentId:n,sort:"createdAt",direction:"DESC"});return
|
|
57
|
-
${n.text}`),0}async function jp(t){let e=await G(t,"documents.drafts",{sort:"updatedAt",direction:"DESC"});return
|
|
58
|
-
`)),0):(e.emit("\u6682\u65E0\u8BC4\u8BBA"),0)}async function Jp(t){let{ctx:e,resolver:s,arg:r,args:n}=t,o=n.slice(1).join(" ");if(!r||!o)return e.fail("\u7528\u6CD5: coder wiki comment <\u6587\u6863> <\u5185\u5BB9>","\u53EF\u4F20 UUID / urlId / URL"),1;let i=await s.toDocUuid(r),a=await G(t,"comments.create",{documentId:i,text:o});return e.emit(`\u8BC4\u8BBA\u5DF2\u53D1\u5E03: ${a.data.id}`),0}function Fi(t){return t?.content?t.content.flatMap(e=>e.content||[]).filter(e=>e.type==="text").map(e=>e.text).join(""):""}function Hp(t){let{ctx:e,arg:s,args:r}=t,n=ne(r,"--query")||s||"",o=n?Gi.filter(i=>i.name.toLowerCase().includes(n.toLowerCase())||i.keywords.toLowerCase().includes(n.toLowerCase())):Gi;return o.length?(
|
|
55
|
+
${t.data.url||""}`)},"share-update":{endpoint:"shares.update",req:"\u8BF7\u6307\u5B9A\u5206\u4EAB id\uFF08UUID\uFF09",body:(t,e)=>{let s={id:t};return e.includes("--published")&&(s.published=!0),e.includes("--no-published")&&(s.published=!1),e.includes("--include-children")&&(s.includeChildDocuments=!0),s},render:q("\u5206\u4EAB\u5DF2\u66F4\u65B0")},unshare:{endpoint:"shares.revoke",req:"\u8BF7\u6307\u5B9A\u5206\u4EAB id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u5206\u4EAB\u5DF2\u64A4\u9500")},users:{endpoint:"users.list",body:(t,e)=>{let s={};return T(e,"--query")&&(s.query=T(e,"--query")),T(e,"--filter")&&(s.filter=T(e,"--filter")),s},render:re(fe,t=>({id:t.id,name:t.name,email:t.email||"",role:t.role||""}),"\u6682\u65E0\u7528\u6237")},"user-info":{endpoint:"users.info",req:"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08UUID\uFF09",body:t=>({id:t}),render:lt(t=>[["id",t.id],["name",t.name,"\u59D3\u540D"],["email",t.email||"","\u90AE\u7BB1"],["role",t.role||"","\u89D2\u8272"]])},invite:{endpoint:"users.invite",reqArgs:(t,e)=>!(T(e,"--email")||t)&&"\u8BF7\u6307\u5B9A\u90AE\u7BB1\uFF08\u7B2C\u4E00\u4E2A\u53C2\u6570\u6216 --email\uFF09",body:(t,e)=>{let s=T(e,"--email")||t,r=T(e,"--name")||e[1],n=T(e,"--role")||e[2];return{invites:[{email:s,name:r,role:n}]}},render:(t,e)=>{let s=e.data||[];if(!s.length)return t.emit("\u9080\u8BF7\u5DF2\u53D1\u9001");Ni(t,s.map(r=>({id:r.id,email:r.email||"",name:r.name||""})))}},"user-update-role":{endpoint:"users.update_role",req:"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08UUID\uFF09",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u89D2\u8272\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF1Aadmin|member|viewer\uFF09",body:(t,e)=>({id:t,role:e[1]}),render:q("\u7528\u6237\u89D2\u8272\u5DF2\u66F4\u65B0")},"user-suspend":{endpoint:"users.suspend",req:"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08UUID\uFF09",body:t=>({id:t}),render:q("\u7528\u6237\u5DF2\u6682\u505C")},"user-activate":{endpoint:"users.activate",req:"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08UUID\uFF09",body:t=>({id:t}),render:q("\u7528\u6237\u5DF2\u6FC0\u6D3B")},groups:{endpoint:"groups.list",body:(t,e)=>{let s={};return T(e,"--query")&&(s.query=T(e,"--query")),s},render:re(fe,t=>({id:t.id,name:t.name,members:t.memberCount??""}),"\u6682\u65E0\u7FA4\u7EC4")},"group-info":{endpoint:"groups.info",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",body:t=>({id:t}),render:lt(t=>[["id",t.id],["name",t.name,"\u540D\u79F0"],["members",t.memberCount??"","\u6210\u5458"]])},"create-group":{endpoint:"groups.create",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4\u540D\u79F0",body:(t,e)=>({name:[t,...e.slice(1)].join(" ")}),render:q(t=>`\u7FA4\u7EC4\u5DF2\u521B\u5EFA: ${t.data.id} \u2014 ${t.data.name}`)},"update-group":{endpoint:"groups.update",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",body:(t,e)=>{let s={id:t};return T(e,"--name")&&(s.name=T(e,"--name")),s},render:q("\u7FA4\u7EC4\u5DF2\u66F4\u65B0")},"delete-group":{endpoint:"groups.delete",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u7FA4\u7EC4\u5DF2\u5220\u9664")},"group-members":{endpoint:"groups.memberships",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",body:t=>({id:t}),render:re(qt,t=>({userId:t.userId||t.user?.id||"",name:t.user?.name||""}),"\u6682\u65E0\u6210\u5458")},"group-add-user":{endpoint:"groups.add_user",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>({id:t,userId:e[1]}),render:q("\u5DF2\u6DFB\u52A0\u7528\u6237\u5230\u7FA4\u7EC4")},"group-remove-user":{endpoint:"groups.remove_user",req:"\u8BF7\u6307\u5B9A\u7FA4\u7EC4 id\uFF08UUID\uFF09",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u7528\u6237 id\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>({id:t,userId:e[1]}),expectOk:!0,render:q("\u5DF2\u4ECE\u7FA4\u7EC4\u79FB\u9664\u7528\u6237")},views:{endpoint:"views.list",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:t=>({documentId:t}),render:re(fe,t=>({userId:t.userId||"",name:t.user?.name||"",count:t.count??"",latest:t.updatedAt||""}),"\u6682\u65E0\u6D4F\u89C8\u8BB0\u5F55")},view:{endpoint:"views.create",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:t=>({documentId:t}),render:q("\u6D4F\u89C8\u5DF2\u8BB0\u5F55")},subscriptions:{endpoint:"subscriptions.list",id:"doc",resolve:[{flag:"--collection",kind:"col"}],reqArgs:(t,e)=>!t&&e.indexOf("--collection")===-1&&"\u8BF7\u6307\u5B9A\u6587\u6863 id \u6216 --collection <id>",body:(t,e)=>{let s={event:"documents.update"};return t&&(s.documentId=t),T(e,"--collection")&&(s.collectionId=T(e,"--collection")),s},render:re(fe,t=>({id:t.id,document:t.documentId||"",event:t.event||""}),"\u6682\u65E0\u8BA2\u9605")},subscribe:{endpoint:"subscriptions.create",id:"doc",req:"\u8BF7\u6307\u5B9A\u6587\u6863 id",body:t=>({documentId:t,event:"documents.update"}),render:q(t=>`\u5DF2\u8BA2\u9605: ${t.data.id}`)},unsubscribe:{endpoint:"subscriptions.delete",req:"\u8BF7\u6307\u5B9A\u8BA2\u9605 id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u5DF2\u53D6\u6D88\u8BA2\u9605")},events:{endpoint:"events.list",resolve:[{flag:"--document",kind:"doc"},{flag:"--collection",kind:"col"}],body:(t,e)=>{let s={};return T(e,"--actor")&&(s.actorId=T(e,"--actor")),T(e,"--document")&&(s.documentId=T(e,"--document")),T(e,"--collection")&&(s.collectionId=T(e,"--collection")),T(e,"--type")&&(s.name=T(e,"--type")),s},render:re(fe,t=>({event:t.name||"",actorId:t.actorId||"",time:t.createdAt||""}),"\u6682\u65E0\u4E8B\u4EF6")},templates:{endpoint:"templates.list",resolve:[{flag:"--collection",kind:"col"}],body:(t,e)=>{let s={};return T(e,"--collection")&&(s.collectionId=T(e,"--collection")),s},render:re(fe,t=>({id:t.id,title:t.title,collection:t.collectionId||""}),"\u6682\u65E0\u6A21\u677F")},"template-info":{endpoint:"templates.info",req:"\u8BF7\u6307\u5B9A\u6A21\u677F id\uFF08UUID\uFF09",body:t=>({id:t}),render:lt(t=>[["id",t.id],["title",t.title,"\u6807\u9898"],["collection",t.collectionId||"","\u96C6\u5408"]])},"create-template":{endpoint:"templates.create",id:"col",req:"\u8BF7\u6307\u5B9A\u96C6\u5408 id",reqArgs:(t,e)=>!e[1]&&"\u8BF7\u6307\u5B9A\u6A21\u677F\u6807\u9898\uFF08\u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF09",body:(t,e)=>{let s=T(e,"--text")||"";return{collectionId:t,title:e[1],data:{type:"doc",content:s?[{type:"paragraph",content:[{type:"text",text:s}]}]:[]}}},render:q(t=>`\u6A21\u677F\u5DF2\u521B\u5EFA: ${t.data.id} \u2014 ${t.data.title}`)},"update-template":{endpoint:"templates.update",req:"\u8BF7\u6307\u5B9A\u6A21\u677F id\uFF08UUID\uFF09",body:(t,e)=>{let s={id:t};T(e,"--title")&&(s.title=T(e,"--title"));let r=T(e,"--text");return r!==void 0&&(s.data={type:"doc",content:[{type:"paragraph",content:[{type:"text",text:r}]}]}),s},render:q("\u6A21\u677F\u5DF2\u66F4\u65B0")},"delete-template":{endpoint:"templates.delete",req:"\u8BF7\u6307\u5B9A\u6A21\u677F id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u6A21\u677F\u5DF2\u5220\u9664")},"duplicate-template":{endpoint:"templates.duplicate",req:"\u8BF7\u6307\u5B9A\u6A21\u677F id\uFF08UUID\uFF09",body:(t,e)=>{let s={id:t};return T(e,"--title")&&(s.title=T(e,"--title")),s},render:q(t=>`\u6A21\u677F\u5DF2\u590D\u5236: ${t.data.id} \u2014 ${t.data.title}`)},"file-ops":{endpoint:"fileOperations.list",body:(t,e)=>{let s={};return T(e,"--type")&&(s.type=T(e,"--type")),s},render:re(fe,t=>({id:t.id,type:t.type||"",state:t.state||"",time:t.createdAt||""}),"\u6682\u65E0\u6587\u4EF6\u64CD\u4F5C\u8BB0\u5F55")},"file-op-info":{endpoint:"fileOperations.info",req:"\u8BF7\u6307\u5B9A\u6587\u4EF6\u64CD\u4F5C id\uFF08UUID\uFF09",body:t=>({id:t}),render:lt(t=>[["id",t.id],["type",t.type||"","\u7C7B\u578B"],["state",t.state||"","\u72B6\u6001"],["time",t.createdAt||"","\u65F6\u95F4"]])},"file-op-delete":{endpoint:"fileOperations.delete",req:"\u8BF7\u6307\u5B9A\u6587\u4EF6\u64CD\u4F5C id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u6587\u4EF6\u64CD\u4F5C\u8BB0\u5F55\u5DF2\u5220\u9664")},reactions:{endpoint:"reactions.list",req:"\u8BF7\u6307\u5B9A\u8BC4\u8BBA id\uFF08UUID\uFF09",body:t=>({commentId:t}),render:re(fe,t=>({emoji:t.emoji||"",userId:t.userId||"",name:t.user?.name||""}),"\u6682\u65E0\u53CD\u5E94")},attachments:{endpoint:"attachments.list",id:"doc",body:t=>t?{documentId:t}:{},render:re(fe,t=>({id:t.id,filename:t.name,type:t.contentType||"",size:t.size?`${Math.round(t.size/1024)}KB`:"",url:t.url||""}),"\u6682\u65E0\u9644\u4EF6")},"delete-attachment":{endpoint:"attachments.delete",req:"\u8BF7\u6307\u5B9A\u9644\u4EF6 id\uFF08UUID\uFF09",body:t=>({id:t}),expectOk:!0,render:q("\u9644\u4EF6\u5DF2\u5220\u9664")}};qi.exports={COMMANDS:_p,list:re,details:lt,ok:q,flag:T,items:fe,memberships:qt,docRow:on}});var Mi=k((S0,ji)=>{var wp=[{name:"academicCap",keywords:"\u5B66\u4E60 \u6559\u5B66 \u8BFE\u7A0B \u6307\u5357 \u6559\u7A0B \u57F9\u8BAD \u5165\u95E8"},{name:"beaker",keywords:"\u5B9E\u9A8C\u5BA4 \u7814\u7A76 \u5B9E\u9A8C \u6D4B\u8BD5"},{name:"bicycle",keywords:"\u81EA\u884C\u8F66 \u9A91\u884C"},{name:"bookmark",keywords:"\u4E66\u7B7E \u6536\u85CF"},{name:"browser",keywords:"\u6D4F\u89C8\u5668 \u7F51\u9875 \u5E94\u7528"},{name:"buildingBlocks",keywords:"\u79EF\u6728 \u6A21\u5757 \u4EA7\u54C1 \u539F\u578B"},{name:"camera",keywords:"\u76F8\u673A \u7167\u7247 \u56FE\u7247"},{name:"carrot",keywords:"\u98DF\u7269 \u852C\u83DC \u519C\u4EA7\u54C1"},{name:"clock",keywords:"\u65F6\u949F \u65F6\u95F4"},{name:"cloud",keywords:"\u4E91 \u4E91\u670D\u52A1 \u57FA\u7840\u8BBE\u65BD"},{name:"code",keywords:"\u4EE3\u7801 \u5F00\u53D1 \u7F16\u7A0B \u5DE5\u7A0B API"},{name:"coins",keywords:"\u91D1\u5E01 \u91D1\u94B1 \u8D22\u52A1 \u9500\u552E \u6536\u5165 \u73B0\u91D1"},{name:"collection",keywords:"\u96C6\u5408 \u6587\u4EF6\u5939"},{name:"database",keywords:"\u6570\u636E\u5E93 \u670D\u52A1\u5668 \u8FD0\u7EF4"},{name:"done",keywords:"\u5B8C\u6210 \u6210\u529F \u52FE\u9009 \u7ED3\u675F"},{name:"email",keywords:"\u90AE\u4EF6 \u90AE\u7BB1"},{name:"eye",keywords:"\u773C\u775B \u67E5\u770B \u9884\u89C8"},{name:"feedback",keywords:"\u53CD\u9988 \u5E2E\u52A9 \u652F\u6301 FAQ"},{name:"flame",keywords:"\u706B\u7130 \u70ED\u95E8"},{name:"globe",keywords:"\u5730\u7403 \u7FFB\u8BD1 \u56FD\u9645\u5316"},{name:"graph",keywords:"\u56FE\u8868 \u5206\u6790 \u6570\u636E \u7EDF\u8BA1"},{name:"hashtag",keywords:"\u6807\u7B7E \u8BDD\u9898 \u793E\u4EA4\u5A92\u4F53"},{name:"icecream",keywords:"\u51B0\u6DC7\u6DCB \u751C\u70B9 \u98DF\u7269"},{name:"image",keywords:"\u56FE\u7247 \u56FE\u50CF \u7167\u7247"},{name:"info",keywords:"\u4FE1\u606F \u8BF4\u660E"},{name:"internet",keywords:"\u7F51\u7EDC \u5168\u7403 \u4E92\u8054\u7F51"},{name:"leaf",keywords:"\u53F6\u5B50 \u690D\u7269 \u81EA\u7136 \u751F\u6001 \u73AF\u5883"},{name:"letter",keywords:"\u5B57\u6BCD \u4FE1\u4EF6"},{name:"library",keywords:"\u56FE\u4E66\u9986 \u6587\u5E93 \u5F52\u6863"},{name:"lightbulb",keywords:"\u706F\u6CE1 \u60F3\u6CD5 \u521B\u610F"},{name:"lightning",keywords:"\u95EA\u7535 \u5FEB\u901F"},{name:"math",keywords:"\u6570\u5B66 \u516C\u5F0F"},{name:"moon",keywords:"\u6708\u4EAE \u591C\u665A \u6697\u8272"},{name:"notepad",keywords:"\u8BB0\u4E8B\u672C \u7B14\u8BB0 \u65E5\u5FD7 \u5199\u4F5C"},{name:"padlock",keywords:"\u9501 \u79C1\u5BC6 \u5B89\u5168 \u8BA4\u8BC1 \u6743\u9650"},{name:"palette",keywords:"\u8C03\u8272\u677F \u8BBE\u8BA1 \u827A\u672F \u54C1\u724C"},{name:"pencil",keywords:"\u94C5\u7B14 \u5199\u4F5C \u535A\u5BA2 \u6587\u7AE0"},{name:"plane",keywords:"\u98DE\u673A \u65C5\u884C \u51FA\u884C \u5047\u671F"},{name:"promote",keywords:"\u63A8\u5E7F \u8425\u9500 \u5BA3\u4F20"},{name:"question",keywords:"\u95EE\u9898 \u5E2E\u52A9 \u652F\u6301 FAQ"},{name:"ramen",keywords:"\u62C9\u9762 \u6C64 \u98DF\u7269 \u9910\u996E"},{name:"server",keywords:"\u670D\u52A1\u5668 \u8FD0\u7EF4 \u57FA\u7840\u8BBE\u65BD"},{name:"shapes",keywords:"\u5F62\u72B6 \u79EF\u6728 \u73A9\u5177"},{name:"smiley",keywords:"\u7B11\u8138 \u8868\u60C5 \u5F00\u5FC3"},{name:"sport",keywords:"\u8FD0\u52A8 \u6237\u5916 \u6E38\u620F"},{name:"sun",keywords:"\u592A\u9633 \u767D\u5929 \u5929\u6C14"},{name:"target",keywords:"\u76EE\u6807 \u9500\u552E \u6307\u6807"},{name:"team",keywords:"\u56E2\u961F \u7EC4\u7EC7 \u529E\u516C\u5BA4"},{name:"terminal",keywords:"\u7EC8\u7AEF \u547D\u4EE4\u884C \u4EE3\u7801"},{name:"thumbsup",keywords:"\u70B9\u8D5E \u6536\u85CF \u793E\u4EA4 \u6295\u7968"},{name:"tools",keywords:"\u5DE5\u5177 \u8BBE\u7F6E \u914D\u7F6E"},{name:"truck",keywords:"\u5361\u8F66 \u8FD0\u8F93 \u7269\u6D41"},{name:"vehicle",keywords:"\u8F66\u8F86 \u4EA4\u901A \u51FA\u884C"},{name:"warning",keywords:"\u8B66\u544A \u63D0\u793A \u9519\u8BEF"}];ji.exports={ICON_LIST:wp}});var un=k((I0,Ki)=>{var Ks=require("fs"),ps=require("path"),{docUrl:jt,colUrl:cn,errorMessage:bp}=fs(),{emitTable:Le,emitTree:kp,emitDetails:ms}=nn(),{ICON_LIST:Gi}=Mi(),ne=(t,e)=>{let s=t.indexOf(e);return s!==-1?t[s+1]:void 0},xp=(t,e=[])=>{let s=[];for(let r=0;r<t.length;r++){if(t[r].startsWith("--")){e.includes(t[r])&&r++;continue}s.push(t[r])}return s};async function G(t,e,s,{allowNoData:r=!1}={}){let n=await t.http.postJson(e,s,{allowNoData:r});if(!n.ok){t.ctx.fail(bp(n.body),void 0);let o=new Error("__handled__");throw o.handled=!0,o}return n.json}var zs=t=>({id:t.id,title:t.title,url:jt(t.urlId||t.id)});async function Sp(t){let{ctx:e,http:s,resolver:r,arg:n,args:o}=t,i=o.indexOf("-d"),a=i!==-1?parseInt(o[i+1],10):null;if(!n){let u=await G(t,"collections.list",{});return Le(e,(u.data||[]).filter(d=>!d?.isShared).map(d=>({id:d.id,name:d.name,description:d.description||"",url:cn(d.urlId||d.id)})),"\u6682\u65E0\u96C6\u5408"),0}let c=await r.toColUuid(n);if(a===null){let u=await G(t,"documents.list",{collectionId:c,sort:"updatedAt",direction:"DESC"});return Le(e,(u.data||[]).map(zs),"\u6682\u65E0\u6587\u6863"),0}let l=await G(t,"collections.documents",{id:c});return kp(e,l.data||[],a===-1?1/0:a),0}async function Ip(t){let{ctx:e,arg:s}=t,r=[...t.args],n=(_,w)=>{let x=r.indexOf(_);if(x===-1)return w;let P=r[x+1];return r.splice(x,2),P??w},o=n("--permission","read_write"),i=n("--icon"),a=n("--color"),c=n("--sort-field"),l=n("--sort-direction"),u=n("--index"),d=s||r[0];if(!d)return e.fail("\u8BF7\u6307\u5B9A\u96C6\u5408\u540D\u79F0",'\u7528\u6CD5: coder wiki create-collection "<\u540D\u79F0>" [\u63CF\u8FF0]'),1;let f=r.slice(1).filter(_=>!_.startsWith("--")).join(" "),h={name:d,description:f,sharing:!0};h.permission=o==="null"||o==="none"?null:o,i&&(h.icon=i),a&&(h.color=a),(c||l)&&(h.sort={field:c||"index",direction:l||"asc"}),u&&(h.index=u);let g=await G(t,"collections.create",h);return ms(e,[["collection",`${g.data.id} \u2014 ${g.data.name}`,"\u96C6\u5408\u5DF2\u521B\u5EFA"],["url",cn(g.data.urlId||g.data.id)]]),0}async function Cp(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u96C6\u5408 id","coder wiki list \u67E5\u770B\u96C6\u5408"),1;let i={id:await s.toColUuid(r)};if(ne(n,"--name")&&(i.name=ne(n,"--name")),ne(n,"--description")&&(i.description=ne(n,"--description")),n.indexOf("--permission")!==-1){let c=ne(n,"--permission");i.permission=c==="null"||c==="none"?null:c}if(ne(n,"--color")&&(i.color=ne(n,"--color")),n.indexOf("--sharing")!==-1&&(i.sharing=ne(n,"--sharing")==="true"),Object.keys(i).length<=1)return e.fail("\u8BF7\u81F3\u5C11\u6307\u5B9A\u4E00\u4E2A\u8981\u66F4\u65B0\u7684\u5B57\u6BB5","\u53EF\u7528: --name --description --permission --color --sharing"),1;let a=await G(t,"collections.update",i);return e.emit(`\u96C6\u5408\u5DF2\u66F4\u65B0: ${a.data.id} \u2014 ${a.data.name}`),0}async function ln(t,e,s,{allowNoData:r=!1}={}){let{ctx:n,resolver:o,arg:i}=t;if(!i)return n.fail("\u8BF7\u6307\u5B9A\u96C6\u5408 id","coder wiki list \u67E5\u770B\u96C6\u5408"),1;let a=await o.toColUuid(i);return await G(t,e,{id:a},{allowNoData:r}),n.emit(s),0}var Ep=t=>ln(t,"collections.delete","\u96C6\u5408\u5DF2\u5220\u9664",{allowNoData:!0}),Ap=t=>ln(t,"collections.archive","\u96C6\u5408\u5DF2\u5F52\u6863"),Tp=t=>ln(t,"collections.restore","\u96C6\u5408\u5DF2\u6062\u590D");async function $p(t){let{ctx:e,resolver:s,arg:r}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / \u6D4F\u89C8\u5668 URL"),1;let n=await s.toDocUuid(r),i=(await G(t,"documents.info",{id:n})).data;return ms(e,[["title",i.title,"\u6807\u9898"],["id",i.id],["collection",i.collectionId,"\u96C6\u5408"],["updated_at",i.updatedAt,"\u66F4\u65B0"],["url",jt(i.urlId||i.id)]]),!e.isJson&&i.text&&e.emit(`
|
|
56
|
+
${i.text}`),0}function Bi(t,e){let s=ps.resolve(e);if(!Ks.existsSync(s))return t.ctx.fail(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${s}`,"\u786E\u8BA4\u8DEF\u5F84\u6B63\u786E"),null;let r=Ks.readFileSync(s,"utf8"),n=r.match(/^#\s+(.+)/m);return n?{title:n[1].trim(),text:r.replace(/^#\s+.+\n?/,"").trimStart()}:(t.ctx.fail("\u6587\u4EF6\u7F3A\u5C11 H1 \u6807\u9898\uFF08# \u6807\u9898\uFF09","\u5728 Markdown \u9876\u90E8\u52A0\u4E00\u884C # \u6807\u9898"),null)}async function Up(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u96C6\u5408 id","coder wiki publish <\u96C6\u5408> <\u6807\u9898> [\u6B63\u6587] | <\u96C6\u5408> --file <path> [--parent <doc>] [--index <n>] [--after <doc>]"),1;let o=await s.toColUuid(r),i,a,c=ne(n,"--parent")?await s.toDocUuid(ne(n,"--parent")):void 0,l=await Vi(t,o);if(!l.ok)return 1;let u=l.index;l.parentDocumentId&&!c&&(c=l.parentDocumentId);let d=!1;if(n.indexOf("--file")!==-1){let x=ne(n,"--file");d=x&&ps.extname(x).toLowerCase()===".mdx";let P=Bi(t,x);if(!P)return 1;({title:i,text:a}=P)}else if(i=n[1],a=n.slice(2).join(" "),!i)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863\u6807\u9898","coder wiki publish <\u96C6\u5408> <\u6807\u9898> [\u6B63\u6587]"),1;let f={collectionId:o,title:i,text:"",publish:!0};c&&(f.parentDocumentId=c),d&&(f.format="mdx");let g=(await G(t,"documents.create",f)).data.id,_={id:g,title:i,text:a,publish:!0};d&&(_.format="mdx");let w=await G(t,"documents.update",_);if(u!==void 0){let x={id:g,collectionId:o,index:u};c&&(x.parentDocumentId=c),await G(t,"documents.move",x)}return ms(e,[["title",w.data.title,"\u6587\u6863\u5DF2\u53D1\u5E03"],["id",g],["url",jt(w.data.urlId||g)]]),0}function Zi(t,e,s=null){if(!Array.isArray(t))return null;for(let r=0;r<t.length;r++){if(t[r].id===e)return{index:r,parentDocumentId:s};if(t[r].children?.length){let n=Zi(t[r].children,e,t[r].id);if(n)return n}}return null}async function Vi(t,e){let{ctx:s,resolver:r,args:n}=t,o=ne(n,"--after");if(n.indexOf("--after")!==-1){if(!o)return s.fail("\u8BF7\u6307\u5B9A --after \u7684\u6587\u6863","\u4F20 UUID / urlId / URL"),{ok:!1};let i=await r.toDocUuid(o),a=await G(t,"collections.documents",{id:e}),c=Zi(a.data,i);return c?{ok:!0,index:c.index+1,parentDocumentId:c.parentDocumentId}:(s.fail(`\u96C6\u5408\u4E2D\u672A\u627E\u5230\u6587\u6863 ${o}`,"\u786E\u8BA4\u8BE5\u6587\u6863\u5C5E\u4E8E\u6B64\u96C6\u5408"),{ok:!1})}if(n.indexOf("--index")!==-1){let i=parseInt(ne(n,"--index"),10);return isNaN(i)||i<0?(s.fail("--index \u9700\u4E3A\u975E\u8D1F\u6574\u6570","\u4F8B\u5982 --index 3"),{ok:!1}):{ok:!0,index:i}}return{ok:!0}}async function vp(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","coder wiki update <\u6587\u6863> <\u6807\u9898> [\u6B63\u6587] | <\u6587\u6863> --file <path>"),1;let o=await s.toDocUuid(r),i,a,c=!1;if(n.indexOf("--file")!==-1){let d=ne(n,"--file");c=d&&ps.extname(d).toLowerCase()===".mdx";let f=Bi(t,d);if(!f)return 1;({title:i,text:a}=f)}else if(i=n[1],a=n.slice(2).join(" "),!i)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863\u6807\u9898","coder wiki update <\u6587\u6863> <\u6807\u9898> [\u6B63\u6587]"),1;let l={id:o,title:i,publish:!0};a&&(l.text=a),c&&(l.format="mdx");let u=await G(t,"documents.update",l);return e.emit(`\u6587\u6863\u5DF2\u66F4\u65B0: ${u.data.title}`),0}async function Op(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / URL"),1;let o=await s.toDocUuid(r),i=n.includes("--permanent");return await G(t,"documents.delete",{id:o,...i?{permanent:!0}:{}},{allowNoData:!0}),e.emit(`\u6587\u6863\u5DF2${i?"\u6C38\u4E45":""}\u5220\u9664`),0}async function Dp(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","coder wiki move <\u6587\u6863> [\u96C6\u5408] [\u7236\u6587\u6863] [--index <n>] [--after <doc>]"),1;let o=await s.toDocUuid(r),i=xp(n,["--index","--after"]),a=i[1]?await s.toColUuid(i[1]):void 0,c=i[2]?await s.toDocUuid(i[2]):void 0;a||(a=(await G(t,"documents.info",{id:o})).data.collectionId);let l=await Vi(t,a);if(!l.ok)return 1;let u=l.index;l.parentDocumentId&&c===void 0&&(c=l.parentDocumentId);let d={id:o,collectionId:a,index:u!==void 0?u:0};return c!==void 0&&(d.parentDocumentId=c),await G(t,"documents.move",d),e.emit("\u6587\u6863\u5DF2\u79FB\u52A8"),0}async function Rp(t,e,s){let{ctx:r,resolver:n,arg:o}=t;if(!o)return r.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / URL"),1;let i=await n.toDocUuid(o);return await G(t,e,{id:i}),r.emit(s),0}var Lp=t=>Rp(t,"documents.archive","\u6587\u6863\u5DF2\u5F52\u6863");async function Pp(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / URL"),1;let i={id:await s.toDocUuid(r)};return ne(n,"--revision")&&(i.revisionId=ne(n,"--revision")),ne(n,"--collection")&&(i.collectionId=await s.toColUuid(ne(n,"--collection"))),await G(t,"documents.restore",i),e.emit("\u6587\u6863\u5DF2\u6062\u590D"),0}async function Np(t){let{ctx:e,resolver:s,arg:r}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / URL"),1;let n=await s.toDocUuid(r),o=await G(t,"revisions.list",{documentId:n,sort:"createdAt",direction:"DESC"});return Le(e,(o.data||[]).map(i=>({revisionId:i.id,name:i.name||"",created_at:i.createdAt})),"\u6682\u65E0\u5386\u53F2\u7248\u672C"),0}async function qp(t){let{ctx:e,arg:s}=t;if(!s)return e.fail("\u8BF7\u6307\u5B9A\u7248\u672C id\uFF08UUID\uFF0C\u6765\u81EA revisions \u5217\u8868\uFF09","coder wiki revisions <\u6587\u6863>"),1;let n=(await G(t,"revisions.info",{id:s})).data;return ms(e,[["revisionId",n.id,"\u7248\u672C id"],["name",n.name||"","\u7248\u672C\u540D"],["documentId",n.documentId,"\u6587\u6863 id"],["created_at",n.createdAt,"\u521B\u5EFA\u65F6\u95F4"]]),!e.isJson&&n.text&&e.emit(`
|
|
57
|
+
${n.text}`),0}async function jp(t){let e=await G(t,"documents.drafts",{sort:"updatedAt",direction:"DESC"});return Le(t.ctx,(e.data||[]).map(zs),"\u6682\u65E0\u8349\u7A3F"),0}async function Mp(t){let e=await G(t,"documents.viewed",{sort:"updatedAt",direction:"DESC"});return Le(t.ctx,(e.data||[]).map(zs),"\u6682\u65E0\u6D4F\u89C8\u8BB0\u5F55"),0}async function Gp(t){let{ctx:e,arg:s,args:r}=t;if(!s)return e.fail("\u8BF7\u6307\u5B9A\u641C\u7D22\u5173\u952E\u8BCD","coder wiki search <\u5173\u952E\u8BCD>"),1;let n=[s,...r.slice(1)].join(" "),i=(await G(t,"documents.search",{query:n,snippetMinWords:20,snippetMaxWords:30})).data||[];return Le(e,i.map(a=>zs(a.document||a)),`\u6CA1\u6709\u627E\u5230\u4E0E "${n}" \u76F8\u5173\u7684\u6587\u6863`),0}async function Fp(t){let{ctx:e}=t,s=await G(t,"stars.list",{}),r=s.data?.stars||[],n={};for(let o of s.data?.documents||[])n[o.id]=o;return Le(e,r.map(o=>{let i=o.documentId?n[o.documentId]:null;return{starId:o.id,title:i?.title||o.collectionId||o.documentId||"",url:i?jt(i.urlId||i.id):o.collectionId?cn(o.collectionId):o.documentId?jt(o.documentId):""}}),"\u6682\u65E0\u6536\u85CF"),0}async function Bp(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863\u6216\u96C6\u5408 id","\u96C6\u5408\u7528 --collection \u6807\u8BB0"),1;let o=n.includes("--collection"),i=o?await s.toColUuid(r):await s.toDocUuid(r);return await G(t,"stars.create",o?{collectionId:i}:{documentId:i}),e.emit("\u5DF2\u6536\u85CF"),0}async function Zp(t){let{ctx:e,arg:s}=t;return s?(await G(t,"stars.delete",{id:s},{allowNoData:!0}),e.emit("\u5DF2\u53D6\u6D88\u6536\u85CF"),0):(e.fail("\u8BF7\u6307\u5B9A\u6536\u85CF id\uFF08starId\uFF0C\u6765\u81EA stars \u5217\u8868\uFF09","coder wiki stars"),1)}async function Vp(t){let{ctx:e,resolver:s,arg:r}=t,n=r?{collectionId:await s.toColUuid(r)}:{},o=await G(t,"pins.list",n),i=o.data?.pins||[],a={};for(let c of o.data?.documents||[])a[c.id]=c;return Le(e,i.map(c=>{let l=c.documentId?a[c.documentId]:null;return{pinId:c.id,title:l?.title||c.documentId,url:jt(l?.urlId||c.documentId)}}),"\u6682\u65E0\u7F6E\u9876"),0}async function Wp(t){let{ctx:e,resolver:s,arg:r,args:n}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","coder wiki pin <\u6587\u6863> [\u96C6\u5408]"),1;let i={documentId:await s.toDocUuid(r)};n[1]&&(i.collectionId=await s.toColUuid(n[1]));let a=await G(t,"pins.create",i);return e.emit(`\u5DF2\u7F6E\u9876: ${a.data.id}`),0}async function Kp(t){let{ctx:e,arg:s}=t;return s?(await G(t,"pins.delete",{id:s},{allowNoData:!0}),e.emit("\u5DF2\u53D6\u6D88\u7F6E\u9876"),0):(e.fail("\u8BF7\u6307\u5B9A\u7F6E\u9876 id\uFF08pinId\uFF0C\u6765\u81EA pins \u5217\u8868\uFF09","coder wiki pins"),1)}async function zp(t){let{ctx:e,resolver:s,arg:r}=t;if(!r)return e.fail("\u8BF7\u6307\u5B9A\u6587\u6863 id","\u53EF\u4F20 UUID / urlId / URL"),1;let n=await s.toDocUuid(r),i=(await G(t,"comments.list",{documentId:n,sort:"createdAt",direction:"ASC"})).data||[];return i.length?(e.isJson?Le(e,i.map(a=>({id:a.id,author:a.createdBy?.name||"?",content:Fi(a.data)}))):e.emit(i.map(a=>` [${a.id}] ${a.createdBy?.name||"?"}: ${Fi(a.data)}`).join(`
|
|
58
|
+
`)),0):(e.emit("\u6682\u65E0\u8BC4\u8BBA"),0)}async function Jp(t){let{ctx:e,resolver:s,arg:r,args:n}=t,o=n.slice(1).join(" ");if(!r||!o)return e.fail("\u7528\u6CD5: coder wiki comment <\u6587\u6863> <\u5185\u5BB9>","\u53EF\u4F20 UUID / urlId / URL"),1;let i=await s.toDocUuid(r),a=await G(t,"comments.create",{documentId:i,text:o});return e.emit(`\u8BC4\u8BBA\u5DF2\u53D1\u5E03: ${a.data.id}`),0}function Fi(t){return t?.content?t.content.flatMap(e=>e.content||[]).filter(e=>e.type==="text").map(e=>e.text).join(""):""}function Hp(t){let{ctx:e,arg:s,args:r}=t,n=ne(r,"--query")||s||"",o=n?Gi.filter(i=>i.name.toLowerCase().includes(n.toLowerCase())||i.keywords.toLowerCase().includes(n.toLowerCase())):Gi;return o.length?(Le(e,o.map(i=>({icon:i.name,keywords:i.keywords}))),e.isJson||e.emit(`
|
|
59
59
|
\u7528\u6CD5: coder wiki create-collection "<\u540D\u79F0>" --icon ${o[0].name}
|
|
60
60
|
\u63D0\u793A: \u4E5F\u53EF\u76F4\u63A5\u7528 emoji\uFF0C\u5982 --icon \u{1F4DA}`),0):(e.emit(`\u6CA1\u6709\u627E\u5230\u4E0E "${n}" \u76F8\u5173\u7684\u56FE\u6807`),0)}async function Yp(t){let{ctx:e,http:s,resolver:r,arg:n,args:o}=t,i=o[1];if(!n||!i)return e.fail("\u7528\u6CD5: coder wiki upload <\u6587\u6863> <\u6587\u4EF6\u8DEF\u5F84>","\u53EF\u4F20 UUID / urlId / URL"),1;let a=await r.toDocUuid(n),c=ps.resolve(i);if(!Ks.existsSync(c))return e.fail(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${c}`,"\u786E\u8BA4\u8DEF\u5F84\u6B63\u786E"),1;let l=Ks.readFileSync(c),u=ps.basename(c),d=Qp(c),f=await G(t,"attachments.create",{name:u,documentId:a,size:l.length,contentType:d,preset:"documentAttachment"}),{uploadUrl:h,form:g,attachment:_}=f.data,w=await em(h,g,l,u,d);return w.status>=300?(e.fail(`\u4E0A\u4F20\u5931\u8D25 (HTTP ${w.status}): ${w.body.slice(0,200)}`,"\u68C0\u67E5\u7F51\u7EDC\u6216\u6587\u4EF6\u5927\u5C0F"),1):(Wi(e,_,d),0)}async function Xp(t){let{ctx:e,resolver:s,arg:r,args:n}=t,o=n[1];if(!r||!o)return e.fail("\u7528\u6CD5: coder wiki upload-url <\u6587\u6863> <url>","\u53EF\u4F20 UUID / urlId / URL"),1;let i=await s.toDocUuid(r),a=await G(t,"attachments.createFromUrl",{url:o,documentId:i,preset:"documentAttachment"});return Wi(e,a.data,a.data.contentType),0}function Wi(t,e,s){let r=(s||"").startsWith("image/")?``:`[${e.name}](${e.url})`;ms(t,[["filename",e.name,"\u9644\u4EF6\u5DF2\u4E0A\u4F20"],["id",e.id],["url",e.url],["markdown",r]])}function Qp(t){let e=t.split(".").pop().toLowerCase();return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",pdf:"application/pdf",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",txt:"text/plain",md:"text/markdown",csv:"text/csv",zip:"application/zip",tar:"application/x-tar",gz:"application/gzip",mp4:"video/mp4",mov:"video/quicktime",avi:"video/x-msvideo",mp3:"audio/mpeg",wav:"audio/wav",json:"application/json",xml:"application/xml"}[e]||"application/octet-stream"}function em(t,e,s,r,n){return new Promise((o,i)=>{let a=`----FormBoundary${Math.random().toString(36).slice(2)}${Date.now()}`,c=[];for(let[_,w]of Object.entries(e))c.push(Buffer.from(`--${a}\r
|
|
61
61
|
Content-Disposition: form-data; name="${_}"\r
|
|
@@ -103,14 +103,14 @@ _${t}() {
|
|
|
103
103
|
compadd -- "\${reply[@]}"
|
|
104
104
|
}
|
|
105
105
|
compdef _${t} ${t}
|
|
106
|
-
`}la.exports={zshScript:rm}});var pa=k((T0,fa)=>{var Js=require("fs"),nm=require("os"),
|
|
106
|
+
`}la.exports={zshScript:rm}});var pa=k((T0,fa)=>{var Js=require("fs"),nm=require("os"),Fe=require("path"),{bashScript:om}=ca(),{zshScript:im}=ua(),Hs=["bash","zsh","fish"];function pn(){let t=(process.env.SHELL||"").split("/").pop();return Hs.includes(t)?t:"bash"}function mn(t){return t==="bash"?om():t==="zsh"?im():t==="fish"?am():null}function am(t="coder"){return`# fish completion for ${t}
|
|
107
107
|
function __${t}_complete
|
|
108
108
|
set -l tokens (commandline -opc) (commandline -ct)
|
|
109
109
|
${t} __complete -- $tokens[2..-1] 2>/dev/null
|
|
110
110
|
end
|
|
111
111
|
complete -c ${t} -f -a '(__${t}_complete)'
|
|
112
|
-
`}function cm(t){let e=nm.homedir();if(t==="bash"){let s=
|
|
113
|
-
source "${r}"`}}if(t==="fish"){let s=
|
|
112
|
+
`}function cm(t){let e=nm.homedir();if(t==="bash"){let s=Fe.join(e,".coder","completions"),r=Fe.join(s,"coder.bash"),n=[Fe.join(e,".bashrc"),Fe.join(e,".bash_profile")];return{dir:s,file:r,rcs:n,sourceLine:`source "${r}"`}}if(t==="zsh"){let s=Fe.join(e,".coder","completions"),r=Fe.join(s,"coder.zsh");return{dir:s,file:r,rcs:[Fe.join(e,".zshrc")],sourceLine:`autoload -Uz compinit && compinit
|
|
113
|
+
source "${r}"`}}if(t==="fish"){let s=Fe.join(e,".config","fish","completions"),r=Fe.join(s,"coder.fish");return{dir:s,file:r,rcs:[],sourceLine:null}}return null}var da="# >>> coder completion >>>",lm="# <<< coder completion <<<";function um(t,e){let s="";try{s=Js.readFileSync(t,"utf8")}catch{s=""}if(s.includes(da))return!1;let r=`
|
|
114
114
|
${da}
|
|
115
115
|
${e}
|
|
116
116
|
${lm}
|
|
@@ -282,13 +282,13 @@ ${lm}
|
|
|
282
282
|
coder auth status # \u67E5\u770B\u767B\u5F55\u72B6\u6001
|
|
283
283
|
|
|
284
284
|
\u83B7\u53D6 API Key: https://makecoder.com/my/apikeys
|
|
285
|
-
`)}};xa.exports=yn});var gs=k(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.getParsedType=H.ZodParsedType=H.objectUtil=H.util=void 0;var _n;(function(t){t.assertEqual=n=>{};function e(n){}t.assertIs=e;function s(n){throw new Error}t.assertNever=s,t.arrayToEnum=n=>{let o={};for(let i of n)o[i]=i;return o},t.getValidEnumValues=n=>{let o=t.objectKeys(n).filter(a=>typeof n[n[a]]!="number"),i={};for(let a of o)i[a]=n[a];return t.objectValues(i)},t.objectValues=n=>t.objectKeys(n).map(function(o){return n[o]}),t.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{let o=[];for(let i in n)Object.prototype.hasOwnProperty.call(n,i)&&o.push(i);return o},t.find=(n,o)=>{for(let i of n)if(o(i))return i},t.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&Number.isFinite(n)&&Math.floor(n)===n;function r(n,o=" | "){return n.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}t.joinValues=r,t.jsonStringifyReplacer=(n,o)=>typeof o=="bigint"?o.toString():o})(_n||(H.util=_n={}));var Ia;(function(t){t.mergeShapes=(e,s)=>({...e,...s})})(Ia||(H.objectUtil=Ia={}));H.ZodParsedType=_n.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]);var xm=t=>{switch(typeof t){case"undefined":return H.ZodParsedType.undefined;case"string":return H.ZodParsedType.string;case"number":return Number.isNaN(t)?H.ZodParsedType.nan:H.ZodParsedType.number;case"boolean":return H.ZodParsedType.boolean;case"function":return H.ZodParsedType.function;case"bigint":return H.ZodParsedType.bigint;case"symbol":return H.ZodParsedType.symbol;case"object":return Array.isArray(t)?H.ZodParsedType.array:t===null?H.ZodParsedType.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?H.ZodParsedType.promise:typeof Map<"u"&&t instanceof Map?H.ZodParsedType.map:typeof Set<"u"&&t instanceof Set?H.ZodParsedType.set:typeof Date<"u"&&t instanceof Date?H.ZodParsedType.date:H.ZodParsedType.object;default:return H.ZodParsedType.unknown}};H.getParsedType=xm});var Ys=k(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.ZodError=Xe.quotelessJson=Xe.ZodIssueCode=void 0;var Ca=gs();Xe.ZodIssueCode=Ca.util.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);var Sm=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:");Xe.quotelessJson=Sm;var ys=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let s=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,s):this.__proto__=s,this.name="ZodError",this.issues=e}format(e){let s=e||function(o){return o.message},r={_errors:[]},n=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(n);else if(i.code==="invalid_return_type")n(i.returnTypeError);else if(i.code==="invalid_arguments")n(i.argumentsError);else if(i.path.length===0)r._errors.push(s(i));else{let a=r,c=0;for(;c<i.path.length;){let l=i.path[c];c===i.path.length-1?(a[l]=a[l]||{_errors:[]},a[l]._errors.push(s(i))):a[l]=a[l]||{_errors:[]},a=a[l],c++}}};return n(this),r}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ca.util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=s=>s.message){let s={},r=[];for(let n of this.issues)if(n.path.length>0){let o=n.path[0];s[o]=s[o]||[],s[o].push(e(n))}else r.push(e(n));return{formErrors:r,fieldErrors:s}}get formErrors(){return this.flatten()}};Xe.ZodError=ys;ys.create=t=>new ys(t)});var bn=k(wn=>{"use strict";Object.defineProperty(wn,"__esModule",{value:!0});var ae=Ys(),ut=gs(),Im=(t,e)=>{let s;switch(t.code){case ae.ZodIssueCode.invalid_type:t.received===ut.ZodParsedType.undefined?s="Required":s=`Expected ${t.expected}, received ${t.received}`;break;case ae.ZodIssueCode.invalid_literal:s=`Invalid literal value, expected ${JSON.stringify(t.expected,ut.util.jsonStringifyReplacer)}`;break;case ae.ZodIssueCode.unrecognized_keys:s=`Unrecognized key(s) in object: ${ut.util.joinValues(t.keys,", ")}`;break;case ae.ZodIssueCode.invalid_union:s="Invalid input";break;case ae.ZodIssueCode.invalid_union_discriminator:s=`Invalid discriminator value. Expected ${ut.util.joinValues(t.options)}`;break;case ae.ZodIssueCode.invalid_enum_value:s=`Invalid enum value. Expected ${ut.util.joinValues(t.options)}, received '${t.received}'`;break;case ae.ZodIssueCode.invalid_arguments:s="Invalid function arguments";break;case ae.ZodIssueCode.invalid_return_type:s="Invalid function return type";break;case ae.ZodIssueCode.invalid_date:s="Invalid date";break;case ae.ZodIssueCode.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(s=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(s=`${s} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?s=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?s=`Invalid input: must end with "${t.validation.endsWith}"`:ut.util.assertNever(t.validation):t.validation!=="regex"?s=`Invalid ${t.validation}`:s="Invalid";break;case ae.ZodIssueCode.too_small:t.type==="array"?s=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?s=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?s=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?s=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?s=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:s="Invalid input";break;case ae.ZodIssueCode.too_big:t.type==="array"?s=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?s=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?s=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?s=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?s=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:s="Invalid input";break;case ae.ZodIssueCode.custom:s="Invalid input";break;case ae.ZodIssueCode.invalid_intersection_types:s="Intersection results could not be merged";break;case ae.ZodIssueCode.not_multiple_of:s=`Number must be a multiple of ${t.multipleOf}`;break;case ae.ZodIssueCode.not_finite:s="Number must be finite";break;default:s=e.defaultError,ut.util.assertNever(t)}return{message:s}};wn.default=Im});var Xs=k(Qe=>{"use strict";var Cm=Qe&&Qe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Qe,"__esModule",{value:!0});Qe.defaultErrorMap=void 0;Qe.setErrorMap=Em;Qe.getErrorMap=Am;var Ea=Cm(bn());Qe.defaultErrorMap=Ea.default;var Aa=Ea.default;function Em(t){Aa=t}function Am(){return Aa}});var xn=k(B=>{"use strict";var Tm=B&&B.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(B,"__esModule",{value:!0});B.isAsync=B.isValid=B.isDirty=B.isAborted=B.OK=B.DIRTY=B.INVALID=B.ParseStatus=B.EMPTY_PATH=B.makeIssue=void 0;B.addIssueToContext=vm;var $m=Xs(),Ta=Tm(bn()),Um=t=>{let{data:e,path:s,errorMaps:r,issueData:n}=t,o=[...s,...n.path||[]],i={...n,path:o};if(n.message!==void 0)return{...n,path:o,message:n.message};let a="",c=r.filter(l=>!!l).slice().reverse();for(let l of c)a=l(i,{data:e,defaultError:a}).message;return{...n,path:o,message:a}};B.makeIssue=Um;B.EMPTY_PATH=[];function vm(t,e){let s=(0,$m.getErrorMap)(),r=(0,B.makeIssue)({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,s,s===Ta.default?void 0:Ta.default].filter(n=>!!n)});t.common.issues.push(r)}var kn=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,s){let r=[];for(let n of s){if(n.status==="aborted")return B.INVALID;n.status==="dirty"&&e.dirty(),r.push(n.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,s){let r=[];for(let n of s){let o=await n.key,i=await n.value;r.push({key:o,value:i})}return t.mergeObjectSync(e,r)}static mergeObjectSync(e,s){let r={};for(let n of s){let{key:o,value:i}=n;if(o.status==="aborted"||i.status==="aborted")return B.INVALID;o.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||n.alwaysSet)&&(r[o.value]=i.value)}return{status:e.value,value:r}}};B.ParseStatus=kn;B.INVALID=Object.freeze({status:"aborted"});var Om=t=>({status:"dirty",value:t});B.DIRTY=Om;var Dm=t=>({status:"valid",value:t});B.OK=Dm;var Rm=t=>t.status==="aborted";B.isAborted=Rm;var Lm=t=>t.status==="dirty";B.isDirty=Lm;var Pm=t=>t.status==="valid";B.isValid=Pm;var Nm=t=>typeof Promise<"u"&&t instanceof Promise;B.isAsync=Nm});var Ua=k($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0})});var Oa=k(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.errorUtil=void 0;var va;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(va||(Qs.errorUtil=va={}))});var Za=k(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.discriminatedUnion=p.date=p.boolean=p.bigint=p.array=p.any=p.coerce=p.ZodFirstPartyTypeKind=p.late=p.ZodSchema=p.Schema=p.ZodReadonly=p.ZodPipeline=p.ZodBranded=p.BRAND=p.ZodNaN=p.ZodCatch=p.ZodDefault=p.ZodNullable=p.ZodOptional=p.ZodTransformer=p.ZodEffects=p.ZodPromise=p.ZodNativeEnum=p.ZodEnum=p.ZodLiteral=p.ZodLazy=p.ZodFunction=p.ZodSet=p.ZodMap=p.ZodRecord=p.ZodTuple=p.ZodIntersection=p.ZodDiscriminatedUnion=p.ZodUnion=p.ZodObject=p.ZodArray=p.ZodVoid=p.ZodNever=p.ZodUnknown=p.ZodAny=p.ZodNull=p.ZodUndefined=p.ZodSymbol=p.ZodDate=p.ZodBoolean=p.ZodBigInt=p.ZodNumber=p.ZodString=p.ZodType=void 0;p.NEVER=p.void=p.unknown=p.union=p.undefined=p.tuple=p.transformer=p.symbol=p.string=p.strictObject=p.set=p.record=p.promise=p.preprocess=p.pipeline=p.ostring=p.optional=p.onumber=p.oboolean=p.object=p.number=p.nullable=p.null=p.never=p.nativeEnum=p.nan=p.map=p.literal=p.lazy=p.intersection=p.instanceof=p.function=p.enum=p.effect=void 0;p.datetimeRegex=Na;p.custom=ja;var S=Ys(),er=Xs(),$=Oa(),m=xn(),I=gs(),ke=class{constructor(e,s,r,n){this._cachedPath=[],this.parent=e,this.data=s,this._path=r,this._key=n}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Da=(t,e)=>{if((0,m.isValid)(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let s=new S.ZodError(t.common.issues);return this._error=s,this._error}}};function R(t){if(!t)return{};let{errorMap:e,invalid_type_error:s,required_error:r,description:n}=t;if(e&&(s||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:(i,a)=>{let{message:c}=t;return i.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:c??s??a.defaultError}},description:n}}var L=class{get description(){return this._def.description}_getType(e){return(0,I.getParsedType)(e.data)}_getOrReturnCtx(e,s){return s||{common:e.parent.common,data:e.data,parsedType:(0,I.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new m.ParseStatus,ctx:{common:e.parent.common,data:e.data,parsedType:(0,I.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let s=this._parse(e);if((0,m.isAsync)(s))throw new Error("Synchronous parse encountered promise.");return s}_parseAsync(e){let s=this._parse(e);return Promise.resolve(s)}parse(e,s){let r=this.safeParse(e,s);if(r.success)return r.data;throw r.error}safeParse(e,s){let r={common:{issues:[],async:s?.async??!1,contextualErrorMap:s?.errorMap},path:s?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,I.getParsedType)(e)},n=this._parseSync({data:e,path:r.path,parent:r});return Da(r,n)}"~validate"(e){let s={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,I.getParsedType)(e)};if(!this["~standard"].async)try{let r=this._parseSync({data:e,path:[],parent:s});return(0,m.isValid)(r)?{value:r.value}:{issues:s.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),s.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:s}).then(r=>(0,m.isValid)(r)?{value:r.value}:{issues:s.common.issues})}async parseAsync(e,s){let r=await this.safeParseAsync(e,s);if(r.success)return r.data;throw r.error}async safeParseAsync(e,s){let r={common:{issues:[],contextualErrorMap:s?.errorMap,async:!0},path:s?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,I.getParsedType)(e)},n=this._parse({data:e,path:r.path,parent:r}),o=await((0,m.isAsync)(n)?n:Promise.resolve(n));return Da(r,o)}refine(e,s){let r=n=>typeof s=="string"||typeof s>"u"?{message:s}:typeof s=="function"?s(n):s;return this._refinement((n,o)=>{let i=e(n),a=()=>o.addIssue({code:S.ZodIssueCode.custom,...r(n)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,s){return this._refinement((r,n)=>e(r)?!0:(n.addIssue(typeof s=="function"?s(r,n):s),!1))}_refinement(e){return new ye({schema:this,typeName:v.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:s=>this["~validate"](s)}}optional(){return be.create(this,this._def)}nullable(){return Pe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Ze.create(this)}promise(){return st.create(this,this._def)}or(e){return yt.create([this,e],this._def)}and(e){return _t.create(this,e,this._def)}transform(e){return new ye({...R(this._def),schema:this,typeName:v.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let s=typeof e=="function"?e:()=>e;return new St({...R(this._def),innerType:this,defaultValue:s,typeName:v.ZodDefault})}brand(){return new _s({typeName:v.ZodBranded,type:this,...R(this._def)})}catch(e){let s=typeof e=="function"?e:()=>e;return new It({...R(this._def),innerType:this,catchValue:s,typeName:v.ZodCatch})}describe(e){let s=this.constructor;return new s({...this._def,description:e})}pipe(e){return ws.create(this,e)}readonly(){return Ct.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};p.ZodType=L;p.Schema=L;p.ZodSchema=L;var qm=/^c[^\s-]{8,}$/i,jm=/^[0-9a-z]+$/,Mm=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Gm=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Fm=/^[a-z0-9_-]{21}$/i,Bm=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Zm=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Vm=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Wm="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Sn,Km=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,zm=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Jm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Hm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ym=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Xm=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,La="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Qm=new RegExp(`^${La}$`);function Pa(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let s=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${s}`}function eh(t){return new RegExp(`^${Pa(t)}$`)}function Na(t){let e=`${La}T${Pa(t)}`,s=[];return s.push(t.local?"Z?":"Z"),t.offset&&s.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${s.join("|")})`,new RegExp(`^${e}$`)}function th(t,e){return!!((e==="v4"||!e)&&Km.test(t)||(e==="v6"||!e)&&Jm.test(t))}function sh(t,e){if(!Bm.test(t))return!1;try{let[s]=t.split(".");if(!s)return!1;let r=s.replace(/-/g,"+").replace(/_/g,"/").padEnd(s.length+(4-s.length%4)%4,"="),n=JSON.parse(atob(r));return!(typeof n!="object"||n===null||"typ"in n&&n?.typ!=="JWT"||!n.alg||e&&n.alg!==e)}catch{return!1}}function rh(t,e){return!!((e==="v4"||!e)&&zm.test(t)||(e==="v6"||!e)&&Hm.test(t))}var et=class t extends L{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==I.ZodParsedType.string){let o=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(o,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.string,received:o.parsedType}),m.INVALID}let r=new m.ParseStatus,n;for(let o of this._def.checks)if(o.kind==="min")e.data.length<o.value&&(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")e.data.length>o.value&&(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=e.data.length>o.value,a=e.data.length<o.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Vm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"email",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Sn||(Sn=new RegExp(Wm,"u")),Sn.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"emoji",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Gm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"uuid",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")Fm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"nanoid",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")qm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"cuid",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")jm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"cuid2",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")Mm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"ulid",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"url",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"regex",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?e.data=e.data.trim():o.kind==="includes"?e.data.includes(o.value,o.position)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?e.data=e.data.toLowerCase():o.kind==="toUpperCase"?e.data=e.data.toUpperCase():o.kind==="startsWith"?e.data.startsWith(o.value)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?e.data.endsWith(o.value)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?Na(o).test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?Qm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?eh(o).test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?Zm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"duration",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?th(e.data,o.version)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"ip",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?sh(e.data,o.alg)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"jwt",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?rh(e.data,o.version)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"cidr",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?Ym.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"base64",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?Xm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"base64url",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):I.util.assertNever(o);return{status:r.value,value:e.data}}_regex(e,s,r){return this.refinement(n=>e.test(n),{validation:s,code:S.ZodIssueCode.invalid_string,...$.errorUtil.errToObj(r)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...$.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:"url",...$.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...$.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...$.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...$.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...$.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...$.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...$.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...$.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...$.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...$.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...$.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...$.errorUtil.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...$.errorUtil.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...$.errorUtil.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...$.errorUtil.errToObj(e)})}regex(e,s){return this._addCheck({kind:"regex",regex:e,...$.errorUtil.errToObj(s)})}includes(e,s){return this._addCheck({kind:"includes",value:e,position:s?.position,...$.errorUtil.errToObj(s?.message)})}startsWith(e,s){return this._addCheck({kind:"startsWith",value:e,...$.errorUtil.errToObj(s)})}endsWith(e,s){return this._addCheck({kind:"endsWith",value:e,...$.errorUtil.errToObj(s)})}min(e,s){return this._addCheck({kind:"min",value:e,...$.errorUtil.errToObj(s)})}max(e,s){return this._addCheck({kind:"max",value:e,...$.errorUtil.errToObj(s)})}length(e,s){return this._addCheck({kind:"length",value:e,...$.errorUtil.errToObj(s)})}nonempty(e){return this.min(1,$.errorUtil.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxLength(){let e=null;for(let s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}};p.ZodString=et;et.create=t=>new et({checks:[],typeName:v.ZodString,coerce:t?.coerce??!1,...R(t)});function nh(t,e){let s=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,n=s>r?s:r,o=Number.parseInt(t.toFixed(n).replace(".","")),i=Number.parseInt(e.toFixed(n).replace(".",""));return o%i/10**n}var dt=class t extends L{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==I.ZodParsedType.number){let o=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(o,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.number,received:o.parsedType}),m.INVALID}let r,n=new m.ParseStatus;for(let o of this._def.checks)o.kind==="int"?I.util.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:"integer",received:"float",message:o.message}),n.dirty()):o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),n.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),n.dirty()):o.kind==="multipleOf"?nh(e.data,o.value)!==0&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.not_multiple_of,multipleOf:o.value,message:o.message}),n.dirty()):o.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.not_finite,message:o.message}),n.dirty()):I.util.assertNever(o);return{status:n.value,value:e.data}}gte(e,s){return this.setLimit("min",e,!0,$.errorUtil.toString(s))}gt(e,s){return this.setLimit("min",e,!1,$.errorUtil.toString(s))}lte(e,s){return this.setLimit("max",e,!0,$.errorUtil.toString(s))}lt(e,s){return this.setLimit("max",e,!1,$.errorUtil.toString(s))}setLimit(e,s,r,n){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:r,message:$.errorUtil.toString(n)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:$.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:$.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:$.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:$.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:$.errorUtil.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:$.errorUtil.toString(s)})}finite(e){return this._addCheck({kind:"finite",message:$.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:$.errorUtil.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:$.errorUtil.toString(e)})}get minValue(){let e=null;for(let s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxValue(){let e=null;for(let s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&I.util.isInteger(e.value))}get isFinite(){let e=null,s=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(s===null||r.value>s)&&(s=r.value):r.kind==="max"&&(e===null||r.value<e)&&(e=r.value)}return Number.isFinite(s)&&Number.isFinite(e)}};p.ZodNumber=dt;dt.create=t=>new dt({checks:[],typeName:v.ZodNumber,coerce:t?.coerce||!1,...R(t)});var ft=class t extends L{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==I.ZodParsedType.bigint)return this._getInvalidInput(e);let r,n=new m.ParseStatus;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),n.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),n.dirty()):o.kind==="multipleOf"?e.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.not_multiple_of,multipleOf:o.value,message:o.message}),n.dirty()):I.util.assertNever(o);return{status:n.value,value:e.data}}_getInvalidInput(e){let s=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.bigint,received:s.parsedType}),m.INVALID}gte(e,s){return this.setLimit("min",e,!0,$.errorUtil.toString(s))}gt(e,s){return this.setLimit("min",e,!1,$.errorUtil.toString(s))}lte(e,s){return this.setLimit("max",e,!0,$.errorUtil.toString(s))}lt(e,s){return this.setLimit("max",e,!1,$.errorUtil.toString(s))}setLimit(e,s,r,n){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:r,message:$.errorUtil.toString(n)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:$.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:$.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:$.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:$.errorUtil.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:$.errorUtil.toString(s)})}get minValue(){let e=null;for(let s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxValue(){let e=null;for(let s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}};p.ZodBigInt=ft;ft.create=t=>new ft({checks:[],typeName:v.ZodBigInt,coerce:t?.coerce??!1,...R(t)});var pt=class extends L{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==I.ZodParsedType.boolean){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.boolean,received:r.parsedType}),m.INVALID}return(0,m.OK)(e.data)}};p.ZodBoolean=pt;pt.create=t=>new pt({typeName:v.ZodBoolean,coerce:t?.coerce||!1,...R(t)});var mt=class t extends L{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==I.ZodParsedType.date){let o=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(o,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.date,received:o.parsedType}),m.INVALID}if(Number.isNaN(e.data.getTime())){let o=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(o,{code:S.ZodIssueCode.invalid_date}),m.INVALID}let r=new m.ParseStatus,n;for(let o of this._def.checks)o.kind==="min"?e.data.getTime()<o.value&&(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?e.data.getTime()>o.value&&(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):I.util.assertNever(o);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,s){return this._addCheck({kind:"min",value:e.getTime(),message:$.errorUtil.toString(s)})}max(e,s){return this._addCheck({kind:"max",value:e.getTime(),message:$.errorUtil.toString(s)})}get minDate(){let e=null;for(let s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e!=null?new Date(e):null}};p.ZodDate=mt;mt.create=t=>new mt({checks:[],coerce:t?.coerce||!1,typeName:v.ZodDate,...R(t)});var Gt=class extends L{_parse(e){if(this._getType(e)!==I.ZodParsedType.symbol){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.symbol,received:r.parsedType}),m.INVALID}return(0,m.OK)(e.data)}};p.ZodSymbol=Gt;Gt.create=t=>new Gt({typeName:v.ZodSymbol,...R(t)});var ht=class extends L{_parse(e){if(this._getType(e)!==I.ZodParsedType.undefined){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.undefined,received:r.parsedType}),m.INVALID}return(0,m.OK)(e.data)}};p.ZodUndefined=ht;ht.create=t=>new ht({typeName:v.ZodUndefined,...R(t)});var gt=class extends L{_parse(e){if(this._getType(e)!==I.ZodParsedType.null){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.null,received:r.parsedType}),m.INVALID}return(0,m.OK)(e.data)}};p.ZodNull=gt;gt.create=t=>new gt({typeName:v.ZodNull,...R(t)});var tt=class extends L{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,m.OK)(e.data)}};p.ZodAny=tt;tt.create=t=>new tt({typeName:v.ZodAny,...R(t)});var Be=class extends L{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,m.OK)(e.data)}};p.ZodUnknown=Be;Be.create=t=>new Be({typeName:v.ZodUnknown,...R(t)});var Ee=class extends L{_parse(e){let s=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.never,received:s.parsedType}),m.INVALID}};p.ZodNever=Ee;Ee.create=t=>new Ee({typeName:v.ZodNever,...R(t)});var Ft=class extends L{_parse(e){if(this._getType(e)!==I.ZodParsedType.undefined){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.void,received:r.parsedType}),m.INVALID}return(0,m.OK)(e.data)}};p.ZodVoid=Ft;Ft.create=t=>new Ft({typeName:v.ZodVoid,...R(t)});var Ze=class t extends L{_parse(e){let{ctx:s,status:r}=this._processInputParams(e),n=this._def;if(s.parsedType!==I.ZodParsedType.array)return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.array,received:s.parsedType}),m.INVALID;if(n.exactLength!==null){let i=s.data.length>n.exactLength.value,a=s.data.length<n.exactLength.value;(i||a)&&((0,m.addIssueToContext)(s,{code:i?S.ZodIssueCode.too_big:S.ZodIssueCode.too_small,minimum:a?n.exactLength.value:void 0,maximum:i?n.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:n.exactLength.message}),r.dirty())}if(n.minLength!==null&&s.data.length<n.minLength.value&&((0,m.addIssueToContext)(s,{code:S.ZodIssueCode.too_small,minimum:n.minLength.value,type:"array",inclusive:!0,exact:!1,message:n.minLength.message}),r.dirty()),n.maxLength!==null&&s.data.length>n.maxLength.value&&((0,m.addIssueToContext)(s,{code:S.ZodIssueCode.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),r.dirty()),s.common.async)return Promise.all([...s.data].map((i,a)=>n.type._parseAsync(new ke(s,i,s.path,a)))).then(i=>m.ParseStatus.mergeArray(r,i));let o=[...s.data].map((i,a)=>n.type._parseSync(new ke(s,i,s.path,a)));return m.ParseStatus.mergeArray(r,o)}get element(){return this._def.type}min(e,s){return new t({...this._def,minLength:{value:e,message:$.errorUtil.toString(s)}})}max(e,s){return new t({...this._def,maxLength:{value:e,message:$.errorUtil.toString(s)}})}length(e,s){return new t({...this._def,exactLength:{value:e,message:$.errorUtil.toString(s)}})}nonempty(e){return this.min(1,e)}};p.ZodArray=Ze;Ze.create=(t,e)=>new Ze({type:t,minLength:null,maxLength:null,exactLength:null,typeName:v.ZodArray,...R(e)});function Mt(t){if(t instanceof he){let e={};for(let s in t.shape){let r=t.shape[s];e[s]=be.create(Mt(r))}return new he({...t._def,shape:()=>e})}else return t instanceof Ze?new Ze({...t._def,type:Mt(t.element)}):t instanceof be?be.create(Mt(t.unwrap())):t instanceof Pe?Pe.create(Mt(t.unwrap())):t instanceof Le?Le.create(t.items.map(e=>Mt(e))):t}var he=class t extends L{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),s=I.util.objectKeys(e);return this._cached={shape:e,keys:s},this._cached}_parse(e){if(this._getType(e)!==I.ZodParsedType.object){let l=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(l,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.object,received:l.parsedType}),m.INVALID}let{status:r,ctx:n}=this._processInputParams(e),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ee&&this._def.unknownKeys==="strip"))for(let l in n.data)i.includes(l)||a.push(l);let c=[];for(let l of i){let u=o[l],d=n.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new ke(n,d,n.path,l)),alwaysSet:l in n.data})}if(this._def.catchall instanceof Ee){let l=this._def.unknownKeys;if(l==="passthrough")for(let u of a)c.push({key:{status:"valid",value:u},value:{status:"valid",value:n.data[u]}});else if(l==="strict")a.length>0&&((0,m.addIssueToContext)(n,{code:S.ZodIssueCode.unrecognized_keys,keys:a}),r.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let l=this._def.catchall;for(let u of a){let d=n.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new ke(n,d,n.path,u)),alwaysSet:u in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let l=[];for(let u of c){let d=await u.key,f=await u.value;l.push({key:d,value:f,alwaysSet:u.alwaysSet})}return l}).then(l=>m.ParseStatus.mergeObjectSync(r,l)):m.ParseStatus.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(e){return $.errorUtil.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(s,r)=>{let n=this._def.errorMap?.(s,r).message??r.defaultError;return s.code==="unrecognized_keys"?{message:$.errorUtil.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:v.ZodObject})}setKey(e,s){return this.augment({[e]:s})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let s={};for(let r of I.util.objectKeys(e))e[r]&&this.shape[r]&&(s[r]=this.shape[r]);return new t({...this._def,shape:()=>s})}omit(e){let s={};for(let r of I.util.objectKeys(this.shape))e[r]||(s[r]=this.shape[r]);return new t({...this._def,shape:()=>s})}deepPartial(){return Mt(this)}partial(e){let s={};for(let r of I.util.objectKeys(this.shape)){let n=this.shape[r];e&&!e[r]?s[r]=n:s[r]=n.optional()}return new t({...this._def,shape:()=>s})}required(e){let s={};for(let r of I.util.objectKeys(this.shape))if(e&&!e[r])s[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof be;)o=o._def.innerType;s[r]=o}return new t({...this._def,shape:()=>s})}keyof(){return qa(I.util.objectKeys(this.shape))}};p.ZodObject=he;he.create=(t,e)=>new he({shape:()=>t,unknownKeys:"strip",catchall:Ee.create(),typeName:v.ZodObject,...R(e)});he.strictCreate=(t,e)=>new he({shape:()=>t,unknownKeys:"strict",catchall:Ee.create(),typeName:v.ZodObject,...R(e)});he.lazycreate=(t,e)=>new he({shape:t,unknownKeys:"strip",catchall:Ee.create(),typeName:v.ZodObject,...R(e)});var yt=class extends L{_parse(e){let{ctx:s}=this._processInputParams(e),r=this._def.options;function n(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return s.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new S.ZodError(a.ctx.common.issues));return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_union,unionErrors:i}),m.INVALID}if(s.common.async)return Promise.all(r.map(async o=>{let i={...s,common:{...s.common,issues:[]},parent:null};return{result:await o._parseAsync({data:s.data,path:s.path,parent:i}),ctx:i}})).then(n);{let o,i=[];for(let c of r){let l={...s,common:{...s.common,issues:[]},parent:null},u=c._parseSync({data:s.data,path:s.path,parent:l});if(u.status==="valid")return u;u.status==="dirty"&&!o&&(o={result:u,ctx:l}),l.common.issues.length&&i.push(l.common.issues)}if(o)return s.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(c=>new S.ZodError(c));return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_union,unionErrors:a}),m.INVALID}}get options(){return this._def.options}};p.ZodUnion=yt;yt.create=(t,e)=>new yt({options:t,typeName:v.ZodUnion,...R(e)});var Fe=t=>t instanceof wt?Fe(t.schema):t instanceof ye?Fe(t.innerType()):t instanceof bt?[t.value]:t instanceof kt?t.options:t instanceof xt?I.util.objectValues(t.enum):t instanceof St?Fe(t._def.innerType):t instanceof ht?[void 0]:t instanceof gt?[null]:t instanceof be?[void 0,...Fe(t.unwrap())]:t instanceof Pe?[null,...Fe(t.unwrap())]:t instanceof _s||t instanceof Ct?Fe(t.unwrap()):t instanceof It?Fe(t._def.innerType):[],tr=class t extends L{_parse(e){let{ctx:s}=this._processInputParams(e);if(s.parsedType!==I.ZodParsedType.object)return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.object,received:s.parsedType}),m.INVALID;let r=this.discriminator,n=s.data[r],o=this.optionsMap.get(n);return o?s.common.async?o._parseAsync({data:s.data,path:s.path,parent:s}):o._parseSync({data:s.data,path:s.path,parent:s}):((0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),m.INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,s,r){let n=new Map;for(let o of s){let i=Fe(o.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of i){if(n.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);n.set(a,o)}}return new t({typeName:v.ZodDiscriminatedUnion,discriminator:e,options:s,optionsMap:n,...R(r)})}};p.ZodDiscriminatedUnion=tr;function In(t,e){let s=(0,I.getParsedType)(t),r=(0,I.getParsedType)(e);if(t===e)return{valid:!0,data:t};if(s===I.ZodParsedType.object&&r===I.ZodParsedType.object){let n=I.util.objectKeys(e),o=I.util.objectKeys(t).filter(a=>n.indexOf(a)!==-1),i={...t,...e};for(let a of o){let c=In(t[a],e[a]);if(!c.valid)return{valid:!1};i[a]=c.data}return{valid:!0,data:i}}else if(s===I.ZodParsedType.array&&r===I.ZodParsedType.array){if(t.length!==e.length)return{valid:!1};let n=[];for(let o=0;o<t.length;o++){let i=t[o],a=e[o],c=In(i,a);if(!c.valid)return{valid:!1};n.push(c.data)}return{valid:!0,data:n}}else return s===I.ZodParsedType.date&&r===I.ZodParsedType.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var _t=class extends L{_parse(e){let{status:s,ctx:r}=this._processInputParams(e),n=(o,i)=>{if((0,m.isAborted)(o)||(0,m.isAborted)(i))return m.INVALID;let a=In(o.value,i.value);return a.valid?(((0,m.isDirty)(o)||(0,m.isDirty)(i))&&s.dirty(),{status:s.value,value:a.data}):((0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_intersection_types}),m.INVALID)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,i])=>n(o,i)):n(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};p.ZodIntersection=_t;_t.create=(t,e,s)=>new _t({left:t,right:e,typeName:v.ZodIntersection,...R(s)});var Le=class t extends L{_parse(e){let{status:s,ctx:r}=this._processInputParams(e);if(r.parsedType!==I.ZodParsedType.array)return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.array,received:r.parsedType}),m.INVALID;if(r.data.length<this._def.items.length)return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),m.INVALID;!this._def.rest&&r.data.length>this._def.items.length&&((0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),s.dirty());let o=[...r.data].map((i,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new ke(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>m.ParseStatus.mergeArray(s,i)):m.ParseStatus.mergeArray(s,o)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};p.ZodTuple=Le;Le.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Le({items:t,typeName:v.ZodTuple,rest:null,...R(e)})};var sr=class t extends L{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:s,ctx:r}=this._processInputParams(e);if(r.parsedType!==I.ZodParsedType.object)return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.object,received:r.parsedType}),m.INVALID;let n=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)n.push({key:o._parse(new ke(r,a,r.path,a)),value:i._parse(new ke(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?m.ParseStatus.mergeObjectAsync(s,n):m.ParseStatus.mergeObjectSync(s,n)}get element(){return this._def.valueType}static create(e,s,r){return s instanceof L?new t({keyType:e,valueType:s,typeName:v.ZodRecord,...R(r)}):new t({keyType:et.create(),valueType:e,typeName:v.ZodRecord,...R(s)})}};p.ZodRecord=sr;var Bt=class extends L{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:s,ctx:r}=this._processInputParams(e);if(r.parsedType!==I.ZodParsedType.map)return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.map,received:r.parsedType}),m.INVALID;let n=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,c],l)=>({key:n._parse(new ke(r,a,r.path,[l,"key"])),value:o._parse(new ke(r,c,r.path,[l,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of i){let l=await c.key,u=await c.value;if(l.status==="aborted"||u.status==="aborted")return m.INVALID;(l.status==="dirty"||u.status==="dirty")&&s.dirty(),a.set(l.value,u.value)}return{status:s.value,value:a}})}else{let a=new Map;for(let c of i){let l=c.key,u=c.value;if(l.status==="aborted"||u.status==="aborted")return m.INVALID;(l.status==="dirty"||u.status==="dirty")&&s.dirty(),a.set(l.value,u.value)}return{status:s.value,value:a}}}};p.ZodMap=Bt;Bt.create=(t,e,s)=>new Bt({valueType:e,keyType:t,typeName:v.ZodMap,...R(s)});var Zt=class t extends L{_parse(e){let{status:s,ctx:r}=this._processInputParams(e);if(r.parsedType!==I.ZodParsedType.set)return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.set,received:r.parsedType}),m.INVALID;let n=this._def;n.minSize!==null&&r.data.size<n.minSize.value&&((0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_small,minimum:n.minSize.value,type:"set",inclusive:!0,exact:!1,message:n.minSize.message}),s.dirty()),n.maxSize!==null&&r.data.size>n.maxSize.value&&((0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),s.dirty());let o=this._def.valueType;function i(c){let l=new Set;for(let u of c){if(u.status==="aborted")return m.INVALID;u.status==="dirty"&&s.dirty(),l.add(u.value)}return{status:s.value,value:l}}let a=[...r.data.values()].map((c,l)=>o._parse(new ke(r,c,r.path,l)));return r.common.async?Promise.all(a).then(c=>i(c)):i(a)}min(e,s){return new t({...this._def,minSize:{value:e,message:$.errorUtil.toString(s)}})}max(e,s){return new t({...this._def,maxSize:{value:e,message:$.errorUtil.toString(s)}})}size(e,s){return this.min(e,s).max(e,s)}nonempty(e){return this.min(1,e)}};p.ZodSet=Zt;Zt.create=(t,e)=>new Zt({valueType:t,minSize:null,maxSize:null,typeName:v.ZodSet,...R(e)});var rr=class t extends L{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:s}=this._processInputParams(e);if(s.parsedType!==I.ZodParsedType.function)return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.function,received:s.parsedType}),m.INVALID;function r(a,c){return(0,m.makeIssue)({data:a,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,(0,er.getErrorMap)(),er.defaultErrorMap].filter(l=>!!l),issueData:{code:S.ZodIssueCode.invalid_arguments,argumentsError:c}})}function n(a,c){return(0,m.makeIssue)({data:a,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,(0,er.getErrorMap)(),er.defaultErrorMap].filter(l=>!!l),issueData:{code:S.ZodIssueCode.invalid_return_type,returnTypeError:c}})}let o={errorMap:s.common.contextualErrorMap},i=s.data;if(this._def.returns instanceof st){let a=this;return(0,m.OK)(async function(...c){let l=new S.ZodError([]),u=await a._def.args.parseAsync(c,o).catch(h=>{throw l.addIssue(r(c,h)),l}),d=await Reflect.apply(i,this,u);return await a._def.returns._def.type.parseAsync(d,o).catch(h=>{throw l.addIssue(n(d,h)),l})})}else{let a=this;return(0,m.OK)(function(...c){let l=a._def.args.safeParse(c,o);if(!l.success)throw new S.ZodError([r(c,l.error)]);let u=Reflect.apply(i,this,l.data),d=a._def.returns.safeParse(u,o);if(!d.success)throw new S.ZodError([n(u,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Le.create(e).rest(Be.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,s,r){return new t({args:e||Le.create([]).rest(Be.create()),returns:s||Be.create(),typeName:v.ZodFunction,...R(r)})}};p.ZodFunction=rr;var wt=class extends L{get schema(){return this._def.getter()}_parse(e){let{ctx:s}=this._processInputParams(e);return this._def.getter()._parse({data:s.data,path:s.path,parent:s})}};p.ZodLazy=wt;wt.create=(t,e)=>new wt({getter:t,typeName:v.ZodLazy,...R(e)});var bt=class extends L{_parse(e){if(e.data!==this._def.value){let s=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(s,{received:s.data,code:S.ZodIssueCode.invalid_literal,expected:this._def.value}),m.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}};p.ZodLiteral=bt;bt.create=(t,e)=>new bt({value:t,typeName:v.ZodLiteral,...R(e)});function qa(t,e){return new kt({values:t,typeName:v.ZodEnum,...R(e)})}var kt=class t extends L{_parse(e){if(typeof e.data!="string"){let s=this._getOrReturnCtx(e),r=this._def.values;return(0,m.addIssueToContext)(s,{expected:I.util.joinValues(r),received:s.parsedType,code:S.ZodIssueCode.invalid_type}),m.INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let s=this._getOrReturnCtx(e),r=this._def.values;return(0,m.addIssueToContext)(s,{received:s.data,code:S.ZodIssueCode.invalid_enum_value,options:r}),m.INVALID}return(0,m.OK)(e.data)}get options(){return this._def.values}get enum(){let e={};for(let s of this._def.values)e[s]=s;return e}get Values(){let e={};for(let s of this._def.values)e[s]=s;return e}get Enum(){let e={};for(let s of this._def.values)e[s]=s;return e}extract(e,s=this._def){return t.create(e,{...this._def,...s})}exclude(e,s=this._def){return t.create(this.options.filter(r=>!e.includes(r)),{...this._def,...s})}};p.ZodEnum=kt;kt.create=qa;var xt=class extends L{_parse(e){let s=I.util.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==I.ZodParsedType.string&&r.parsedType!==I.ZodParsedType.number){let n=I.util.objectValues(s);return(0,m.addIssueToContext)(r,{expected:I.util.joinValues(n),received:r.parsedType,code:S.ZodIssueCode.invalid_type}),m.INVALID}if(this._cache||(this._cache=new Set(I.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let n=I.util.objectValues(s);return(0,m.addIssueToContext)(r,{received:r.data,code:S.ZodIssueCode.invalid_enum_value,options:n}),m.INVALID}return(0,m.OK)(e.data)}get enum(){return this._def.values}};p.ZodNativeEnum=xt;xt.create=(t,e)=>new xt({values:t,typeName:v.ZodNativeEnum,...R(e)});var st=class extends L{unwrap(){return this._def.type}_parse(e){let{ctx:s}=this._processInputParams(e);if(s.parsedType!==I.ZodParsedType.promise&&s.common.async===!1)return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.promise,received:s.parsedType}),m.INVALID;let r=s.parsedType===I.ZodParsedType.promise?s.data:Promise.resolve(s.data);return(0,m.OK)(r.then(n=>this._def.type.parseAsync(n,{path:s.path,errorMap:s.common.contextualErrorMap})))}};p.ZodPromise=st;st.create=(t,e)=>new st({type:t,typeName:v.ZodPromise,...R(e)});var ye=class extends L{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===v.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:s,ctx:r}=this._processInputParams(e),n=this._def.effect||null,o={addIssue:i=>{(0,m.addIssueToContext)(r,i),i.fatal?s.abort():s.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),n.type==="preprocess"){let i=n.transform(r.data,o);if(r.common.async)return Promise.resolve(i).then(async a=>{if(s.value==="aborted")return m.INVALID;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?m.INVALID:c.status==="dirty"||s.value==="dirty"?(0,m.DIRTY)(c.value):c});{if(s.value==="aborted")return m.INVALID;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?m.INVALID:a.status==="dirty"||s.value==="dirty"?(0,m.DIRTY)(a.value):a}}if(n.type==="refinement"){let i=a=>{let c=n.refinement(a,o);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?m.INVALID:(a.status==="dirty"&&s.dirty(),i(a.value),{status:s.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?m.INVALID:(a.status==="dirty"&&s.dirty(),i(a.value).then(()=>({status:s.value,value:a.value}))))}if(n.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!(0,m.isValid)(i))return m.INVALID;let a=n.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:s.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>(0,m.isValid)(i)?Promise.resolve(n.transform(i.value,o)).then(a=>({status:s.value,value:a})):m.INVALID);I.util.assertNever(n)}};p.ZodEffects=ye;p.ZodTransformer=ye;ye.create=(t,e,s)=>new ye({schema:t,typeName:v.ZodEffects,effect:e,...R(s)});ye.createWithPreprocess=(t,e,s)=>new ye({schema:e,effect:{type:"preprocess",transform:t},typeName:v.ZodEffects,...R(s)});var be=class extends L{_parse(e){return this._getType(e)===I.ZodParsedType.undefined?(0,m.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};p.ZodOptional=be;be.create=(t,e)=>new be({innerType:t,typeName:v.ZodOptional,...R(e)});var Pe=class extends L{_parse(e){return this._getType(e)===I.ZodParsedType.null?(0,m.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};p.ZodNullable=Pe;Pe.create=(t,e)=>new Pe({innerType:t,typeName:v.ZodNullable,...R(e)});var St=class extends L{_parse(e){let{ctx:s}=this._processInputParams(e),r=s.data;return s.parsedType===I.ZodParsedType.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:s.path,parent:s})}removeDefault(){return this._def.innerType}};p.ZodDefault=St;St.create=(t,e)=>new St({innerType:t,typeName:v.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...R(e)});var It=class extends L{_parse(e){let{ctx:s}=this._processInputParams(e),r={...s,common:{...s.common,issues:[]}},n=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return(0,m.isAsync)(n)?n.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new S.ZodError(r.common.issues)},input:r.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new S.ZodError(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};p.ZodCatch=It;It.create=(t,e)=>new It({innerType:t,typeName:v.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...R(e)});var Vt=class extends L{_parse(e){if(this._getType(e)!==I.ZodParsedType.nan){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.nan,received:r.parsedType}),m.INVALID}return{status:"valid",value:e.data}}};p.ZodNaN=Vt;Vt.create=t=>new Vt({typeName:v.ZodNaN,...R(t)});p.BRAND=Symbol("zod_brand");var _s=class extends L{_parse(e){let{ctx:s}=this._processInputParams(e),r=s.data;return this._def.type._parse({data:r,path:s.path,parent:s})}unwrap(){return this._def.type}};p.ZodBranded=_s;var ws=class t extends L{_parse(e){let{status:s,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?m.INVALID:o.status==="dirty"?(s.dirty(),(0,m.DIRTY)(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let n=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return n.status==="aborted"?m.INVALID:n.status==="dirty"?(s.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:r.path,parent:r})}}static create(e,s){return new t({in:e,out:s,typeName:v.ZodPipeline})}};p.ZodPipeline=ws;var Ct=class extends L{_parse(e){let s=this._def.innerType._parse(e),r=n=>((0,m.isValid)(n)&&(n.value=Object.freeze(n.value)),n);return(0,m.isAsync)(s)?s.then(n=>r(n)):r(s)}unwrap(){return this._def.innerType}};p.ZodReadonly=Ct;Ct.create=(t,e)=>new Ct({innerType:t,typeName:v.ZodReadonly,...R(e)});function Ra(t,e){let s=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof s=="string"?{message:s}:s}function ja(t,e={},s){return t?tt.create().superRefine((r,n)=>{let o=t(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=Ra(e,r),c=a.fatal??s??!0;n.addIssue({code:"custom",...a,fatal:c})}});if(!o){let i=Ra(e,r),a=i.fatal??s??!0;n.addIssue({code:"custom",...i,fatal:a})}}):tt.create()}p.late={object:he.lazycreate};var v;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(v||(p.ZodFirstPartyTypeKind=v={}));var oh=(t,e={message:`Input not instance of ${t.name}`})=>ja(s=>s instanceof t,e);p.instanceof=oh;var Ma=et.create;p.string=Ma;var Ga=dt.create;p.number=Ga;var ih=Vt.create;p.nan=ih;var ah=ft.create;p.bigint=ah;var Fa=pt.create;p.boolean=Fa;var ch=mt.create;p.date=ch;var lh=Gt.create;p.symbol=lh;var uh=ht.create;p.undefined=uh;var dh=gt.create;p.null=dh;var fh=tt.create;p.any=fh;var ph=Be.create;p.unknown=ph;var mh=Ee.create;p.never=mh;var hh=Ft.create;p.void=hh;var gh=Ze.create;p.array=gh;var yh=he.create;p.object=yh;var _h=he.strictCreate;p.strictObject=_h;var wh=yt.create;p.union=wh;var bh=tr.create;p.discriminatedUnion=bh;var kh=_t.create;p.intersection=kh;var xh=Le.create;p.tuple=xh;var Sh=sr.create;p.record=Sh;var Ih=Bt.create;p.map=Ih;var Ch=Zt.create;p.set=Ch;var Eh=rr.create;p.function=Eh;var Ah=wt.create;p.lazy=Ah;var Th=bt.create;p.literal=Th;var $h=kt.create;p.enum=$h;var Uh=xt.create;p.nativeEnum=Uh;var vh=st.create;p.promise=vh;var Ba=ye.create;p.effect=Ba;p.transformer=Ba;var Oh=be.create;p.optional=Oh;var Dh=Pe.create;p.nullable=Dh;var Rh=ye.createWithPreprocess;p.preprocess=Rh;var Lh=ws.create;p.pipeline=Lh;var Ph=()=>Ma().optional();p.ostring=Ph;var Nh=()=>Ga().optional();p.onumber=Nh;var qh=()=>Fa().optional();p.oboolean=qh;p.coerce={string:(t=>et.create({...t,coerce:!0})),number:(t=>dt.create({...t,coerce:!0})),boolean:(t=>pt.create({...t,coerce:!0})),bigint:(t=>ft.create({...t,coerce:!0})),date:(t=>mt.create({...t,coerce:!0}))};p.NEVER=m.INVALID});var Cn=k(xe=>{"use strict";var jh=xe&&xe.__createBinding||(Object.create?(function(t,e,s,r){r===void 0&&(r=s);var n=Object.getOwnPropertyDescriptor(e,s);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[s]}}),Object.defineProperty(t,r,n)}):(function(t,e,s,r){r===void 0&&(r=s),t[r]=e[s]})),Wt=xe&&xe.__exportStar||function(t,e){for(var s in t)s!=="default"&&!Object.prototype.hasOwnProperty.call(e,s)&&jh(e,t,s)};Object.defineProperty(xe,"__esModule",{value:!0});Wt(Xs(),xe);Wt(xn(),xe);Wt(Ua(),xe);Wt(gs(),xe);Wt(Za(),xe);Wt(Ys(),xe)});var Ka=k(ge=>{"use strict";var Va=ge&&ge.__createBinding||(Object.create?(function(t,e,s,r){r===void 0&&(r=s);var n=Object.getOwnPropertyDescriptor(e,s);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[s]}}),Object.defineProperty(t,r,n)}):(function(t,e,s,r){r===void 0&&(r=s),t[r]=e[s]})),Mh=ge&&ge.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Gh=ge&&ge.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var s in t)s!=="default"&&Object.prototype.hasOwnProperty.call(t,s)&&Va(e,t,s);return Mh(e,t),e},Fh=ge&&ge.__exportStar||function(t,e){for(var s in t)s!=="default"&&!Object.prototype.hasOwnProperty.call(e,s)&&Va(e,t,s)};Object.defineProperty(ge,"__esModule",{value:!0});ge.z=void 0;var Wa=Gh(Cn());ge.z=Wa;Fh(Cn(),ge);ge.default=Wa});var nr=k((B0,Ya)=>{var En=null;function An(){return En||(En=Ka().z),En}function za(){return An().string().trim().refine(t=>{let e=t.indexOf(".");return e>0&&e<t.length-1},{message:"API Key \u683C\u5F0F\u9519\u8BEF\uFF0C\u5E94\u4E3A <ak>.<sk>"})}function Ja(){return An().string().refine(t=>{try{return JSON.parse(t),!0}catch{return!1}},{message:"--meta-data \u4E0D\u662F\u5408\u6CD5\u7684 JSON"})}function Ha(){return An().string().trim().refine(t=>/^https?:\/\/[^\s]+$/i.test(t),{message:"registry \u5FC5\u987B\u662F http(s):// \u5F00\u5934\u7684 URL"})}function Bh(t){let e=za().safeParse(t);return e.success?{ok:!0,value:e.data}:{ok:!1,error:e.error.issues[0].message}}function Zh(t){let e=Ja().safeParse(t);return e.success?{ok:!0,value:e.data}:{ok:!1,error:e.error.issues[0].message}}function Vh(t){let e=Ha().safeParse(t);return e.success?{ok:!0,value:e.data}:{ok:!1,error:e.error.issues[0].message}}Ya.exports={apiKeySchema:za,pubMetaDataSchema:Ja,registrySchema:Ha,validateApiKey:Bh,validatePubMetaData:Zh,validateRegistry:Vh}});var Qa=k((Z0,Xa)=>{var Wh=Sa(),{validateApiKey:Kh}=nr();function zh(t,e){let s=new Wh(e),r=t.command("auth").description("\u7BA1\u7406\u8EAB\u4EFD\u9A8C\u8BC1\u51ED\u8BC1");r.command("login").description("\u767B\u5F55 MakeCoder\uFF08\u6D4F\u89C8\u5668\u6216\u7EC8\u7AEF\u8F93\u5165 API Key\uFF09").option("--apikey <key>","\u76F4\u63A5\u63D0\u4F9B API Key\uFF08\u683C\u5F0F: <ak>.<sk>\uFF09").action(async n=>{if(n.apikey){let o=Kh(n.apikey);if(!o.ok){e.fail(o.error,"API Key \u5F62\u5982 <ak>.<sk>\uFF0C\u83B7\u53D6: https://makecoder.com/my/apikeys"),process.exitCode=1;return}process.exitCode=await s.handle({authSubcommand:"login",authRemainingArgs:["--apikey",o.value],coderBaseUrl:e.getCoderBaseUrl()})||0;return}if(e.isNonInteractive){e.fail("missing credentials","run `coder auth login --apikey <ak>.<sk>`"),process.exitCode=1;return}process.exitCode=await s.handle({authSubcommand:"login",authRemainingArgs:[],coderBaseUrl:e.getCoderBaseUrl()})||0}),r.command("logout").description("\u9000\u51FA\u767B\u5F55\uFF0C\u6E05\u9664\u5DF2\u4FDD\u5B58\u7684 API Key").action(async()=>{process.exitCode=await s.handle({authSubcommand:"logout"})||0}),r.command("status").description("\u67E5\u770B\u5F53\u524D\u767B\u5F55\u72B6\u6001").action(async()=>{process.exitCode=await s.handle({authSubcommand:"status"})||0})}Xa.exports={register:zh}});var sc=k((V0,tc)=>{var Ae=require("fs"),Et=require("path"),Jh=require("readline"),{execSync:or}=require("child_process"),ec=require("os"),Tn=class{constructor(){this.serverUrl="https://makecoder.com/bigapis/codev/v1/coderpub"}getClaudeJsonlPath(e,s=!1){let r=e.replace(/[/_]/g,"-"),n=Et.join(ec.homedir(),".claude","projects",r);if(s&&(console.log(`
|
|
286
|
-
\u{1F4C2} [allow-clone] \u67E5\u627E JSONL \u6587\u4EF6...`),console.log(` \u9879\u76EE\u76EE\u5F55: ${e}`),console.log(` Claude \u9879\u76EE\u540D: ${r}`),console.log(` Claude \u9879\u76EE\u76EE\u5F55: ${n}`)),!
|
|
287
|
-
\u{1F504} [allow-clone] \u5F00\u59CB\u5904\u7406 AI \u751F\u6210\u8BB0\u5F55...`);let c=this.getClaudeJsonlPath(e,!0);if(c){let l=Et.join(n,"coder.pub.jsonl"),d=(
|
|
288
|
-
\u{1F4E6} [allow-clone] \u6253\u5305 JSONL \u6587\u4EF6...`),console.log(` \u6E90\u6587\u4EF6: ${c}`),console.log(` \u6587\u4EF6\u5927\u5C0F: ${d} KB`),console.log(` \u4E34\u65F6\u6587\u4EF6: ${l}`),
|
|
285
|
+
`)}};xa.exports=yn});var gs=k(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.getParsedType=H.ZodParsedType=H.objectUtil=H.util=void 0;var _n;(function(t){t.assertEqual=n=>{};function e(n){}t.assertIs=e;function s(n){throw new Error}t.assertNever=s,t.arrayToEnum=n=>{let o={};for(let i of n)o[i]=i;return o},t.getValidEnumValues=n=>{let o=t.objectKeys(n).filter(a=>typeof n[n[a]]!="number"),i={};for(let a of o)i[a]=n[a];return t.objectValues(i)},t.objectValues=n=>t.objectKeys(n).map(function(o){return n[o]}),t.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{let o=[];for(let i in n)Object.prototype.hasOwnProperty.call(n,i)&&o.push(i);return o},t.find=(n,o)=>{for(let i of n)if(o(i))return i},t.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&Number.isFinite(n)&&Math.floor(n)===n;function r(n,o=" | "){return n.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}t.joinValues=r,t.jsonStringifyReplacer=(n,o)=>typeof o=="bigint"?o.toString():o})(_n||(H.util=_n={}));var Ia;(function(t){t.mergeShapes=(e,s)=>({...e,...s})})(Ia||(H.objectUtil=Ia={}));H.ZodParsedType=_n.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]);var xm=t=>{switch(typeof t){case"undefined":return H.ZodParsedType.undefined;case"string":return H.ZodParsedType.string;case"number":return Number.isNaN(t)?H.ZodParsedType.nan:H.ZodParsedType.number;case"boolean":return H.ZodParsedType.boolean;case"function":return H.ZodParsedType.function;case"bigint":return H.ZodParsedType.bigint;case"symbol":return H.ZodParsedType.symbol;case"object":return Array.isArray(t)?H.ZodParsedType.array:t===null?H.ZodParsedType.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?H.ZodParsedType.promise:typeof Map<"u"&&t instanceof Map?H.ZodParsedType.map:typeof Set<"u"&&t instanceof Set?H.ZodParsedType.set:typeof Date<"u"&&t instanceof Date?H.ZodParsedType.date:H.ZodParsedType.object;default:return H.ZodParsedType.unknown}};H.getParsedType=xm});var Ys=k(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.ZodError=Xe.quotelessJson=Xe.ZodIssueCode=void 0;var Ca=gs();Xe.ZodIssueCode=Ca.util.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);var Sm=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:");Xe.quotelessJson=Sm;var ys=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let s=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,s):this.__proto__=s,this.name="ZodError",this.issues=e}format(e){let s=e||function(o){return o.message},r={_errors:[]},n=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(n);else if(i.code==="invalid_return_type")n(i.returnTypeError);else if(i.code==="invalid_arguments")n(i.argumentsError);else if(i.path.length===0)r._errors.push(s(i));else{let a=r,c=0;for(;c<i.path.length;){let l=i.path[c];c===i.path.length-1?(a[l]=a[l]||{_errors:[]},a[l]._errors.push(s(i))):a[l]=a[l]||{_errors:[]},a=a[l],c++}}};return n(this),r}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ca.util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=s=>s.message){let s={},r=[];for(let n of this.issues)if(n.path.length>0){let o=n.path[0];s[o]=s[o]||[],s[o].push(e(n))}else r.push(e(n));return{formErrors:r,fieldErrors:s}}get formErrors(){return this.flatten()}};Xe.ZodError=ys;ys.create=t=>new ys(t)});var bn=k(wn=>{"use strict";Object.defineProperty(wn,"__esModule",{value:!0});var ae=Ys(),ut=gs(),Im=(t,e)=>{let s;switch(t.code){case ae.ZodIssueCode.invalid_type:t.received===ut.ZodParsedType.undefined?s="Required":s=`Expected ${t.expected}, received ${t.received}`;break;case ae.ZodIssueCode.invalid_literal:s=`Invalid literal value, expected ${JSON.stringify(t.expected,ut.util.jsonStringifyReplacer)}`;break;case ae.ZodIssueCode.unrecognized_keys:s=`Unrecognized key(s) in object: ${ut.util.joinValues(t.keys,", ")}`;break;case ae.ZodIssueCode.invalid_union:s="Invalid input";break;case ae.ZodIssueCode.invalid_union_discriminator:s=`Invalid discriminator value. Expected ${ut.util.joinValues(t.options)}`;break;case ae.ZodIssueCode.invalid_enum_value:s=`Invalid enum value. Expected ${ut.util.joinValues(t.options)}, received '${t.received}'`;break;case ae.ZodIssueCode.invalid_arguments:s="Invalid function arguments";break;case ae.ZodIssueCode.invalid_return_type:s="Invalid function return type";break;case ae.ZodIssueCode.invalid_date:s="Invalid date";break;case ae.ZodIssueCode.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(s=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(s=`${s} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?s=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?s=`Invalid input: must end with "${t.validation.endsWith}"`:ut.util.assertNever(t.validation):t.validation!=="regex"?s=`Invalid ${t.validation}`:s="Invalid";break;case ae.ZodIssueCode.too_small:t.type==="array"?s=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?s=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?s=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?s=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?s=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:s="Invalid input";break;case ae.ZodIssueCode.too_big:t.type==="array"?s=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?s=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?s=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?s=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?s=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:s="Invalid input";break;case ae.ZodIssueCode.custom:s="Invalid input";break;case ae.ZodIssueCode.invalid_intersection_types:s="Intersection results could not be merged";break;case ae.ZodIssueCode.not_multiple_of:s=`Number must be a multiple of ${t.multipleOf}`;break;case ae.ZodIssueCode.not_finite:s="Number must be finite";break;default:s=e.defaultError,ut.util.assertNever(t)}return{message:s}};wn.default=Im});var Xs=k(Qe=>{"use strict";var Cm=Qe&&Qe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Qe,"__esModule",{value:!0});Qe.defaultErrorMap=void 0;Qe.setErrorMap=Em;Qe.getErrorMap=Am;var Ea=Cm(bn());Qe.defaultErrorMap=Ea.default;var Aa=Ea.default;function Em(t){Aa=t}function Am(){return Aa}});var xn=k(B=>{"use strict";var Tm=B&&B.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(B,"__esModule",{value:!0});B.isAsync=B.isValid=B.isDirty=B.isAborted=B.OK=B.DIRTY=B.INVALID=B.ParseStatus=B.EMPTY_PATH=B.makeIssue=void 0;B.addIssueToContext=vm;var $m=Xs(),Ta=Tm(bn()),Um=t=>{let{data:e,path:s,errorMaps:r,issueData:n}=t,o=[...s,...n.path||[]],i={...n,path:o};if(n.message!==void 0)return{...n,path:o,message:n.message};let a="",c=r.filter(l=>!!l).slice().reverse();for(let l of c)a=l(i,{data:e,defaultError:a}).message;return{...n,path:o,message:a}};B.makeIssue=Um;B.EMPTY_PATH=[];function vm(t,e){let s=(0,$m.getErrorMap)(),r=(0,B.makeIssue)({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,s,s===Ta.default?void 0:Ta.default].filter(n=>!!n)});t.common.issues.push(r)}var kn=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,s){let r=[];for(let n of s){if(n.status==="aborted")return B.INVALID;n.status==="dirty"&&e.dirty(),r.push(n.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,s){let r=[];for(let n of s){let o=await n.key,i=await n.value;r.push({key:o,value:i})}return t.mergeObjectSync(e,r)}static mergeObjectSync(e,s){let r={};for(let n of s){let{key:o,value:i}=n;if(o.status==="aborted"||i.status==="aborted")return B.INVALID;o.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||n.alwaysSet)&&(r[o.value]=i.value)}return{status:e.value,value:r}}};B.ParseStatus=kn;B.INVALID=Object.freeze({status:"aborted"});var Om=t=>({status:"dirty",value:t});B.DIRTY=Om;var Dm=t=>({status:"valid",value:t});B.OK=Dm;var Rm=t=>t.status==="aborted";B.isAborted=Rm;var Lm=t=>t.status==="dirty";B.isDirty=Lm;var Pm=t=>t.status==="valid";B.isValid=Pm;var Nm=t=>typeof Promise<"u"&&t instanceof Promise;B.isAsync=Nm});var Ua=k($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0})});var Oa=k(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.errorUtil=void 0;var va;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(va||(Qs.errorUtil=va={}))});var Za=k(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.discriminatedUnion=p.date=p.boolean=p.bigint=p.array=p.any=p.coerce=p.ZodFirstPartyTypeKind=p.late=p.ZodSchema=p.Schema=p.ZodReadonly=p.ZodPipeline=p.ZodBranded=p.BRAND=p.ZodNaN=p.ZodCatch=p.ZodDefault=p.ZodNullable=p.ZodOptional=p.ZodTransformer=p.ZodEffects=p.ZodPromise=p.ZodNativeEnum=p.ZodEnum=p.ZodLiteral=p.ZodLazy=p.ZodFunction=p.ZodSet=p.ZodMap=p.ZodRecord=p.ZodTuple=p.ZodIntersection=p.ZodDiscriminatedUnion=p.ZodUnion=p.ZodObject=p.ZodArray=p.ZodVoid=p.ZodNever=p.ZodUnknown=p.ZodAny=p.ZodNull=p.ZodUndefined=p.ZodSymbol=p.ZodDate=p.ZodBoolean=p.ZodBigInt=p.ZodNumber=p.ZodString=p.ZodType=void 0;p.NEVER=p.void=p.unknown=p.union=p.undefined=p.tuple=p.transformer=p.symbol=p.string=p.strictObject=p.set=p.record=p.promise=p.preprocess=p.pipeline=p.ostring=p.optional=p.onumber=p.oboolean=p.object=p.number=p.nullable=p.null=p.never=p.nativeEnum=p.nan=p.map=p.literal=p.lazy=p.intersection=p.instanceof=p.function=p.enum=p.effect=void 0;p.datetimeRegex=Na;p.custom=ja;var S=Ys(),er=Xs(),$=Oa(),m=xn(),I=gs(),xe=class{constructor(e,s,r,n){this._cachedPath=[],this.parent=e,this.data=s,this._path=r,this._key=n}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Da=(t,e)=>{if((0,m.isValid)(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let s=new S.ZodError(t.common.issues);return this._error=s,this._error}}};function R(t){if(!t)return{};let{errorMap:e,invalid_type_error:s,required_error:r,description:n}=t;if(e&&(s||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:(i,a)=>{let{message:c}=t;return i.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:c??s??a.defaultError}},description:n}}var L=class{get description(){return this._def.description}_getType(e){return(0,I.getParsedType)(e.data)}_getOrReturnCtx(e,s){return s||{common:e.parent.common,data:e.data,parsedType:(0,I.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new m.ParseStatus,ctx:{common:e.parent.common,data:e.data,parsedType:(0,I.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let s=this._parse(e);if((0,m.isAsync)(s))throw new Error("Synchronous parse encountered promise.");return s}_parseAsync(e){let s=this._parse(e);return Promise.resolve(s)}parse(e,s){let r=this.safeParse(e,s);if(r.success)return r.data;throw r.error}safeParse(e,s){let r={common:{issues:[],async:s?.async??!1,contextualErrorMap:s?.errorMap},path:s?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,I.getParsedType)(e)},n=this._parseSync({data:e,path:r.path,parent:r});return Da(r,n)}"~validate"(e){let s={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,I.getParsedType)(e)};if(!this["~standard"].async)try{let r=this._parseSync({data:e,path:[],parent:s});return(0,m.isValid)(r)?{value:r.value}:{issues:s.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),s.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:s}).then(r=>(0,m.isValid)(r)?{value:r.value}:{issues:s.common.issues})}async parseAsync(e,s){let r=await this.safeParseAsync(e,s);if(r.success)return r.data;throw r.error}async safeParseAsync(e,s){let r={common:{issues:[],contextualErrorMap:s?.errorMap,async:!0},path:s?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,I.getParsedType)(e)},n=this._parse({data:e,path:r.path,parent:r}),o=await((0,m.isAsync)(n)?n:Promise.resolve(n));return Da(r,o)}refine(e,s){let r=n=>typeof s=="string"||typeof s>"u"?{message:s}:typeof s=="function"?s(n):s;return this._refinement((n,o)=>{let i=e(n),a=()=>o.addIssue({code:S.ZodIssueCode.custom,...r(n)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,s){return this._refinement((r,n)=>e(r)?!0:(n.addIssue(typeof s=="function"?s(r,n):s),!1))}_refinement(e){return new ye({schema:this,typeName:v.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:s=>this["~validate"](s)}}optional(){return ke.create(this,this._def)}nullable(){return Ne.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Ve.create(this)}promise(){return st.create(this,this._def)}or(e){return yt.create([this,e],this._def)}and(e){return _t.create(this,e,this._def)}transform(e){return new ye({...R(this._def),schema:this,typeName:v.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let s=typeof e=="function"?e:()=>e;return new St({...R(this._def),innerType:this,defaultValue:s,typeName:v.ZodDefault})}brand(){return new _s({typeName:v.ZodBranded,type:this,...R(this._def)})}catch(e){let s=typeof e=="function"?e:()=>e;return new It({...R(this._def),innerType:this,catchValue:s,typeName:v.ZodCatch})}describe(e){let s=this.constructor;return new s({...this._def,description:e})}pipe(e){return ws.create(this,e)}readonly(){return Ct.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};p.ZodType=L;p.Schema=L;p.ZodSchema=L;var qm=/^c[^\s-]{8,}$/i,jm=/^[0-9a-z]+$/,Mm=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Gm=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Fm=/^[a-z0-9_-]{21}$/i,Bm=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Zm=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Vm=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Wm="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Sn,Km=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,zm=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Jm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Hm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ym=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Xm=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,La="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Qm=new RegExp(`^${La}$`);function Pa(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let s=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${s}`}function eh(t){return new RegExp(`^${Pa(t)}$`)}function Na(t){let e=`${La}T${Pa(t)}`,s=[];return s.push(t.local?"Z?":"Z"),t.offset&&s.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${s.join("|")})`,new RegExp(`^${e}$`)}function th(t,e){return!!((e==="v4"||!e)&&Km.test(t)||(e==="v6"||!e)&&Jm.test(t))}function sh(t,e){if(!Bm.test(t))return!1;try{let[s]=t.split(".");if(!s)return!1;let r=s.replace(/-/g,"+").replace(/_/g,"/").padEnd(s.length+(4-s.length%4)%4,"="),n=JSON.parse(atob(r));return!(typeof n!="object"||n===null||"typ"in n&&n?.typ!=="JWT"||!n.alg||e&&n.alg!==e)}catch{return!1}}function rh(t,e){return!!((e==="v4"||!e)&&zm.test(t)||(e==="v6"||!e)&&Hm.test(t))}var et=class t extends L{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==I.ZodParsedType.string){let o=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(o,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.string,received:o.parsedType}),m.INVALID}let r=new m.ParseStatus,n;for(let o of this._def.checks)if(o.kind==="min")e.data.length<o.value&&(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")e.data.length>o.value&&(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=e.data.length>o.value,a=e.data.length<o.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Vm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"email",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Sn||(Sn=new RegExp(Wm,"u")),Sn.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"emoji",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Gm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"uuid",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")Fm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"nanoid",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")qm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"cuid",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")jm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"cuid2",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")Mm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"ulid",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"url",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"regex",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?e.data=e.data.trim():o.kind==="includes"?e.data.includes(o.value,o.position)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?e.data=e.data.toLowerCase():o.kind==="toUpperCase"?e.data=e.data.toUpperCase():o.kind==="startsWith"?e.data.startsWith(o.value)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?e.data.endsWith(o.value)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?Na(o).test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?Qm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?eh(o).test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?Zm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"duration",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?th(e.data,o.version)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"ip",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?sh(e.data,o.alg)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"jwt",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?rh(e.data,o.version)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"cidr",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?Ym.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"base64",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?Xm.test(e.data)||(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{validation:"base64url",code:S.ZodIssueCode.invalid_string,message:o.message}),r.dirty()):I.util.assertNever(o);return{status:r.value,value:e.data}}_regex(e,s,r){return this.refinement(n=>e.test(n),{validation:s,code:S.ZodIssueCode.invalid_string,...$.errorUtil.errToObj(r)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...$.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:"url",...$.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...$.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...$.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...$.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...$.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...$.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...$.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...$.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...$.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...$.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...$.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...$.errorUtil.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...$.errorUtil.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...$.errorUtil.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...$.errorUtil.errToObj(e)})}regex(e,s){return this._addCheck({kind:"regex",regex:e,...$.errorUtil.errToObj(s)})}includes(e,s){return this._addCheck({kind:"includes",value:e,position:s?.position,...$.errorUtil.errToObj(s?.message)})}startsWith(e,s){return this._addCheck({kind:"startsWith",value:e,...$.errorUtil.errToObj(s)})}endsWith(e,s){return this._addCheck({kind:"endsWith",value:e,...$.errorUtil.errToObj(s)})}min(e,s){return this._addCheck({kind:"min",value:e,...$.errorUtil.errToObj(s)})}max(e,s){return this._addCheck({kind:"max",value:e,...$.errorUtil.errToObj(s)})}length(e,s){return this._addCheck({kind:"length",value:e,...$.errorUtil.errToObj(s)})}nonempty(e){return this.min(1,$.errorUtil.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxLength(){let e=null;for(let s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}};p.ZodString=et;et.create=t=>new et({checks:[],typeName:v.ZodString,coerce:t?.coerce??!1,...R(t)});function nh(t,e){let s=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,n=s>r?s:r,o=Number.parseInt(t.toFixed(n).replace(".","")),i=Number.parseInt(e.toFixed(n).replace(".",""));return o%i/10**n}var dt=class t extends L{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==I.ZodParsedType.number){let o=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(o,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.number,received:o.parsedType}),m.INVALID}let r,n=new m.ParseStatus;for(let o of this._def.checks)o.kind==="int"?I.util.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:"integer",received:"float",message:o.message}),n.dirty()):o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),n.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),n.dirty()):o.kind==="multipleOf"?nh(e.data,o.value)!==0&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.not_multiple_of,multipleOf:o.value,message:o.message}),n.dirty()):o.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.not_finite,message:o.message}),n.dirty()):I.util.assertNever(o);return{status:n.value,value:e.data}}gte(e,s){return this.setLimit("min",e,!0,$.errorUtil.toString(s))}gt(e,s){return this.setLimit("min",e,!1,$.errorUtil.toString(s))}lte(e,s){return this.setLimit("max",e,!0,$.errorUtil.toString(s))}lt(e,s){return this.setLimit("max",e,!1,$.errorUtil.toString(s))}setLimit(e,s,r,n){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:r,message:$.errorUtil.toString(n)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:$.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:$.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:$.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:$.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:$.errorUtil.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:$.errorUtil.toString(s)})}finite(e){return this._addCheck({kind:"finite",message:$.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:$.errorUtil.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:$.errorUtil.toString(e)})}get minValue(){let e=null;for(let s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxValue(){let e=null;for(let s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&I.util.isInteger(e.value))}get isFinite(){let e=null,s=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(s===null||r.value>s)&&(s=r.value):r.kind==="max"&&(e===null||r.value<e)&&(e=r.value)}return Number.isFinite(s)&&Number.isFinite(e)}};p.ZodNumber=dt;dt.create=t=>new dt({checks:[],typeName:v.ZodNumber,coerce:t?.coerce||!1,...R(t)});var ft=class t extends L{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==I.ZodParsedType.bigint)return this._getInvalidInput(e);let r,n=new m.ParseStatus;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),n.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),n.dirty()):o.kind==="multipleOf"?e.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.not_multiple_of,multipleOf:o.value,message:o.message}),n.dirty()):I.util.assertNever(o);return{status:n.value,value:e.data}}_getInvalidInput(e){let s=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.bigint,received:s.parsedType}),m.INVALID}gte(e,s){return this.setLimit("min",e,!0,$.errorUtil.toString(s))}gt(e,s){return this.setLimit("min",e,!1,$.errorUtil.toString(s))}lte(e,s){return this.setLimit("max",e,!0,$.errorUtil.toString(s))}lt(e,s){return this.setLimit("max",e,!1,$.errorUtil.toString(s))}setLimit(e,s,r,n){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:r,message:$.errorUtil.toString(n)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:$.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:$.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:$.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:$.errorUtil.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:$.errorUtil.toString(s)})}get minValue(){let e=null;for(let s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxValue(){let e=null;for(let s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}};p.ZodBigInt=ft;ft.create=t=>new ft({checks:[],typeName:v.ZodBigInt,coerce:t?.coerce??!1,...R(t)});var pt=class extends L{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==I.ZodParsedType.boolean){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.boolean,received:r.parsedType}),m.INVALID}return(0,m.OK)(e.data)}};p.ZodBoolean=pt;pt.create=t=>new pt({typeName:v.ZodBoolean,coerce:t?.coerce||!1,...R(t)});var mt=class t extends L{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==I.ZodParsedType.date){let o=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(o,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.date,received:o.parsedType}),m.INVALID}if(Number.isNaN(e.data.getTime())){let o=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(o,{code:S.ZodIssueCode.invalid_date}),m.INVALID}let r=new m.ParseStatus,n;for(let o of this._def.checks)o.kind==="min"?e.data.getTime()<o.value&&(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?e.data.getTime()>o.value&&(n=this._getOrReturnCtx(e,n),(0,m.addIssueToContext)(n,{code:S.ZodIssueCode.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):I.util.assertNever(o);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,s){return this._addCheck({kind:"min",value:e.getTime(),message:$.errorUtil.toString(s)})}max(e,s){return this._addCheck({kind:"max",value:e.getTime(),message:$.errorUtil.toString(s)})}get minDate(){let e=null;for(let s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e!=null?new Date(e):null}};p.ZodDate=mt;mt.create=t=>new mt({checks:[],coerce:t?.coerce||!1,typeName:v.ZodDate,...R(t)});var Gt=class extends L{_parse(e){if(this._getType(e)!==I.ZodParsedType.symbol){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.symbol,received:r.parsedType}),m.INVALID}return(0,m.OK)(e.data)}};p.ZodSymbol=Gt;Gt.create=t=>new Gt({typeName:v.ZodSymbol,...R(t)});var ht=class extends L{_parse(e){if(this._getType(e)!==I.ZodParsedType.undefined){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.undefined,received:r.parsedType}),m.INVALID}return(0,m.OK)(e.data)}};p.ZodUndefined=ht;ht.create=t=>new ht({typeName:v.ZodUndefined,...R(t)});var gt=class extends L{_parse(e){if(this._getType(e)!==I.ZodParsedType.null){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.null,received:r.parsedType}),m.INVALID}return(0,m.OK)(e.data)}};p.ZodNull=gt;gt.create=t=>new gt({typeName:v.ZodNull,...R(t)});var tt=class extends L{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,m.OK)(e.data)}};p.ZodAny=tt;tt.create=t=>new tt({typeName:v.ZodAny,...R(t)});var Ze=class extends L{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,m.OK)(e.data)}};p.ZodUnknown=Ze;Ze.create=t=>new Ze({typeName:v.ZodUnknown,...R(t)});var Ae=class extends L{_parse(e){let s=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.never,received:s.parsedType}),m.INVALID}};p.ZodNever=Ae;Ae.create=t=>new Ae({typeName:v.ZodNever,...R(t)});var Ft=class extends L{_parse(e){if(this._getType(e)!==I.ZodParsedType.undefined){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.void,received:r.parsedType}),m.INVALID}return(0,m.OK)(e.data)}};p.ZodVoid=Ft;Ft.create=t=>new Ft({typeName:v.ZodVoid,...R(t)});var Ve=class t extends L{_parse(e){let{ctx:s,status:r}=this._processInputParams(e),n=this._def;if(s.parsedType!==I.ZodParsedType.array)return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.array,received:s.parsedType}),m.INVALID;if(n.exactLength!==null){let i=s.data.length>n.exactLength.value,a=s.data.length<n.exactLength.value;(i||a)&&((0,m.addIssueToContext)(s,{code:i?S.ZodIssueCode.too_big:S.ZodIssueCode.too_small,minimum:a?n.exactLength.value:void 0,maximum:i?n.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:n.exactLength.message}),r.dirty())}if(n.minLength!==null&&s.data.length<n.minLength.value&&((0,m.addIssueToContext)(s,{code:S.ZodIssueCode.too_small,minimum:n.minLength.value,type:"array",inclusive:!0,exact:!1,message:n.minLength.message}),r.dirty()),n.maxLength!==null&&s.data.length>n.maxLength.value&&((0,m.addIssueToContext)(s,{code:S.ZodIssueCode.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),r.dirty()),s.common.async)return Promise.all([...s.data].map((i,a)=>n.type._parseAsync(new xe(s,i,s.path,a)))).then(i=>m.ParseStatus.mergeArray(r,i));let o=[...s.data].map((i,a)=>n.type._parseSync(new xe(s,i,s.path,a)));return m.ParseStatus.mergeArray(r,o)}get element(){return this._def.type}min(e,s){return new t({...this._def,minLength:{value:e,message:$.errorUtil.toString(s)}})}max(e,s){return new t({...this._def,maxLength:{value:e,message:$.errorUtil.toString(s)}})}length(e,s){return new t({...this._def,exactLength:{value:e,message:$.errorUtil.toString(s)}})}nonempty(e){return this.min(1,e)}};p.ZodArray=Ve;Ve.create=(t,e)=>new Ve({type:t,minLength:null,maxLength:null,exactLength:null,typeName:v.ZodArray,...R(e)});function Mt(t){if(t instanceof he){let e={};for(let s in t.shape){let r=t.shape[s];e[s]=ke.create(Mt(r))}return new he({...t._def,shape:()=>e})}else return t instanceof Ve?new Ve({...t._def,type:Mt(t.element)}):t instanceof ke?ke.create(Mt(t.unwrap())):t instanceof Ne?Ne.create(Mt(t.unwrap())):t instanceof Pe?Pe.create(t.items.map(e=>Mt(e))):t}var he=class t extends L{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),s=I.util.objectKeys(e);return this._cached={shape:e,keys:s},this._cached}_parse(e){if(this._getType(e)!==I.ZodParsedType.object){let l=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(l,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.object,received:l.parsedType}),m.INVALID}let{status:r,ctx:n}=this._processInputParams(e),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ae&&this._def.unknownKeys==="strip"))for(let l in n.data)i.includes(l)||a.push(l);let c=[];for(let l of i){let u=o[l],d=n.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new xe(n,d,n.path,l)),alwaysSet:l in n.data})}if(this._def.catchall instanceof Ae){let l=this._def.unknownKeys;if(l==="passthrough")for(let u of a)c.push({key:{status:"valid",value:u},value:{status:"valid",value:n.data[u]}});else if(l==="strict")a.length>0&&((0,m.addIssueToContext)(n,{code:S.ZodIssueCode.unrecognized_keys,keys:a}),r.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let l=this._def.catchall;for(let u of a){let d=n.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new xe(n,d,n.path,u)),alwaysSet:u in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let l=[];for(let u of c){let d=await u.key,f=await u.value;l.push({key:d,value:f,alwaysSet:u.alwaysSet})}return l}).then(l=>m.ParseStatus.mergeObjectSync(r,l)):m.ParseStatus.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(e){return $.errorUtil.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(s,r)=>{let n=this._def.errorMap?.(s,r).message??r.defaultError;return s.code==="unrecognized_keys"?{message:$.errorUtil.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:v.ZodObject})}setKey(e,s){return this.augment({[e]:s})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let s={};for(let r of I.util.objectKeys(e))e[r]&&this.shape[r]&&(s[r]=this.shape[r]);return new t({...this._def,shape:()=>s})}omit(e){let s={};for(let r of I.util.objectKeys(this.shape))e[r]||(s[r]=this.shape[r]);return new t({...this._def,shape:()=>s})}deepPartial(){return Mt(this)}partial(e){let s={};for(let r of I.util.objectKeys(this.shape)){let n=this.shape[r];e&&!e[r]?s[r]=n:s[r]=n.optional()}return new t({...this._def,shape:()=>s})}required(e){let s={};for(let r of I.util.objectKeys(this.shape))if(e&&!e[r])s[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof ke;)o=o._def.innerType;s[r]=o}return new t({...this._def,shape:()=>s})}keyof(){return qa(I.util.objectKeys(this.shape))}};p.ZodObject=he;he.create=(t,e)=>new he({shape:()=>t,unknownKeys:"strip",catchall:Ae.create(),typeName:v.ZodObject,...R(e)});he.strictCreate=(t,e)=>new he({shape:()=>t,unknownKeys:"strict",catchall:Ae.create(),typeName:v.ZodObject,...R(e)});he.lazycreate=(t,e)=>new he({shape:t,unknownKeys:"strip",catchall:Ae.create(),typeName:v.ZodObject,...R(e)});var yt=class extends L{_parse(e){let{ctx:s}=this._processInputParams(e),r=this._def.options;function n(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return s.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new S.ZodError(a.ctx.common.issues));return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_union,unionErrors:i}),m.INVALID}if(s.common.async)return Promise.all(r.map(async o=>{let i={...s,common:{...s.common,issues:[]},parent:null};return{result:await o._parseAsync({data:s.data,path:s.path,parent:i}),ctx:i}})).then(n);{let o,i=[];for(let c of r){let l={...s,common:{...s.common,issues:[]},parent:null},u=c._parseSync({data:s.data,path:s.path,parent:l});if(u.status==="valid")return u;u.status==="dirty"&&!o&&(o={result:u,ctx:l}),l.common.issues.length&&i.push(l.common.issues)}if(o)return s.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(c=>new S.ZodError(c));return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_union,unionErrors:a}),m.INVALID}}get options(){return this._def.options}};p.ZodUnion=yt;yt.create=(t,e)=>new yt({options:t,typeName:v.ZodUnion,...R(e)});var Be=t=>t instanceof wt?Be(t.schema):t instanceof ye?Be(t.innerType()):t instanceof bt?[t.value]:t instanceof kt?t.options:t instanceof xt?I.util.objectValues(t.enum):t instanceof St?Be(t._def.innerType):t instanceof ht?[void 0]:t instanceof gt?[null]:t instanceof ke?[void 0,...Be(t.unwrap())]:t instanceof Ne?[null,...Be(t.unwrap())]:t instanceof _s||t instanceof Ct?Be(t.unwrap()):t instanceof It?Be(t._def.innerType):[],tr=class t extends L{_parse(e){let{ctx:s}=this._processInputParams(e);if(s.parsedType!==I.ZodParsedType.object)return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.object,received:s.parsedType}),m.INVALID;let r=this.discriminator,n=s.data[r],o=this.optionsMap.get(n);return o?s.common.async?o._parseAsync({data:s.data,path:s.path,parent:s}):o._parseSync({data:s.data,path:s.path,parent:s}):((0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),m.INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,s,r){let n=new Map;for(let o of s){let i=Be(o.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of i){if(n.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);n.set(a,o)}}return new t({typeName:v.ZodDiscriminatedUnion,discriminator:e,options:s,optionsMap:n,...R(r)})}};p.ZodDiscriminatedUnion=tr;function In(t,e){let s=(0,I.getParsedType)(t),r=(0,I.getParsedType)(e);if(t===e)return{valid:!0,data:t};if(s===I.ZodParsedType.object&&r===I.ZodParsedType.object){let n=I.util.objectKeys(e),o=I.util.objectKeys(t).filter(a=>n.indexOf(a)!==-1),i={...t,...e};for(let a of o){let c=In(t[a],e[a]);if(!c.valid)return{valid:!1};i[a]=c.data}return{valid:!0,data:i}}else if(s===I.ZodParsedType.array&&r===I.ZodParsedType.array){if(t.length!==e.length)return{valid:!1};let n=[];for(let o=0;o<t.length;o++){let i=t[o],a=e[o],c=In(i,a);if(!c.valid)return{valid:!1};n.push(c.data)}return{valid:!0,data:n}}else return s===I.ZodParsedType.date&&r===I.ZodParsedType.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var _t=class extends L{_parse(e){let{status:s,ctx:r}=this._processInputParams(e),n=(o,i)=>{if((0,m.isAborted)(o)||(0,m.isAborted)(i))return m.INVALID;let a=In(o.value,i.value);return a.valid?(((0,m.isDirty)(o)||(0,m.isDirty)(i))&&s.dirty(),{status:s.value,value:a.data}):((0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_intersection_types}),m.INVALID)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,i])=>n(o,i)):n(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};p.ZodIntersection=_t;_t.create=(t,e,s)=>new _t({left:t,right:e,typeName:v.ZodIntersection,...R(s)});var Pe=class t extends L{_parse(e){let{status:s,ctx:r}=this._processInputParams(e);if(r.parsedType!==I.ZodParsedType.array)return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.array,received:r.parsedType}),m.INVALID;if(r.data.length<this._def.items.length)return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),m.INVALID;!this._def.rest&&r.data.length>this._def.items.length&&((0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),s.dirty());let o=[...r.data].map((i,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new xe(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>m.ParseStatus.mergeArray(s,i)):m.ParseStatus.mergeArray(s,o)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};p.ZodTuple=Pe;Pe.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Pe({items:t,typeName:v.ZodTuple,rest:null,...R(e)})};var sr=class t extends L{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:s,ctx:r}=this._processInputParams(e);if(r.parsedType!==I.ZodParsedType.object)return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.object,received:r.parsedType}),m.INVALID;let n=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)n.push({key:o._parse(new xe(r,a,r.path,a)),value:i._parse(new xe(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?m.ParseStatus.mergeObjectAsync(s,n):m.ParseStatus.mergeObjectSync(s,n)}get element(){return this._def.valueType}static create(e,s,r){return s instanceof L?new t({keyType:e,valueType:s,typeName:v.ZodRecord,...R(r)}):new t({keyType:et.create(),valueType:e,typeName:v.ZodRecord,...R(s)})}};p.ZodRecord=sr;var Bt=class extends L{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:s,ctx:r}=this._processInputParams(e);if(r.parsedType!==I.ZodParsedType.map)return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.map,received:r.parsedType}),m.INVALID;let n=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,c],l)=>({key:n._parse(new xe(r,a,r.path,[l,"key"])),value:o._parse(new xe(r,c,r.path,[l,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of i){let l=await c.key,u=await c.value;if(l.status==="aborted"||u.status==="aborted")return m.INVALID;(l.status==="dirty"||u.status==="dirty")&&s.dirty(),a.set(l.value,u.value)}return{status:s.value,value:a}})}else{let a=new Map;for(let c of i){let l=c.key,u=c.value;if(l.status==="aborted"||u.status==="aborted")return m.INVALID;(l.status==="dirty"||u.status==="dirty")&&s.dirty(),a.set(l.value,u.value)}return{status:s.value,value:a}}}};p.ZodMap=Bt;Bt.create=(t,e,s)=>new Bt({valueType:e,keyType:t,typeName:v.ZodMap,...R(s)});var Zt=class t extends L{_parse(e){let{status:s,ctx:r}=this._processInputParams(e);if(r.parsedType!==I.ZodParsedType.set)return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.set,received:r.parsedType}),m.INVALID;let n=this._def;n.minSize!==null&&r.data.size<n.minSize.value&&((0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_small,minimum:n.minSize.value,type:"set",inclusive:!0,exact:!1,message:n.minSize.message}),s.dirty()),n.maxSize!==null&&r.data.size>n.maxSize.value&&((0,m.addIssueToContext)(r,{code:S.ZodIssueCode.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),s.dirty());let o=this._def.valueType;function i(c){let l=new Set;for(let u of c){if(u.status==="aborted")return m.INVALID;u.status==="dirty"&&s.dirty(),l.add(u.value)}return{status:s.value,value:l}}let a=[...r.data.values()].map((c,l)=>o._parse(new xe(r,c,r.path,l)));return r.common.async?Promise.all(a).then(c=>i(c)):i(a)}min(e,s){return new t({...this._def,minSize:{value:e,message:$.errorUtil.toString(s)}})}max(e,s){return new t({...this._def,maxSize:{value:e,message:$.errorUtil.toString(s)}})}size(e,s){return this.min(e,s).max(e,s)}nonempty(e){return this.min(1,e)}};p.ZodSet=Zt;Zt.create=(t,e)=>new Zt({valueType:t,minSize:null,maxSize:null,typeName:v.ZodSet,...R(e)});var rr=class t extends L{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:s}=this._processInputParams(e);if(s.parsedType!==I.ZodParsedType.function)return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.function,received:s.parsedType}),m.INVALID;function r(a,c){return(0,m.makeIssue)({data:a,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,(0,er.getErrorMap)(),er.defaultErrorMap].filter(l=>!!l),issueData:{code:S.ZodIssueCode.invalid_arguments,argumentsError:c}})}function n(a,c){return(0,m.makeIssue)({data:a,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,(0,er.getErrorMap)(),er.defaultErrorMap].filter(l=>!!l),issueData:{code:S.ZodIssueCode.invalid_return_type,returnTypeError:c}})}let o={errorMap:s.common.contextualErrorMap},i=s.data;if(this._def.returns instanceof st){let a=this;return(0,m.OK)(async function(...c){let l=new S.ZodError([]),u=await a._def.args.parseAsync(c,o).catch(h=>{throw l.addIssue(r(c,h)),l}),d=await Reflect.apply(i,this,u);return await a._def.returns._def.type.parseAsync(d,o).catch(h=>{throw l.addIssue(n(d,h)),l})})}else{let a=this;return(0,m.OK)(function(...c){let l=a._def.args.safeParse(c,o);if(!l.success)throw new S.ZodError([r(c,l.error)]);let u=Reflect.apply(i,this,l.data),d=a._def.returns.safeParse(u,o);if(!d.success)throw new S.ZodError([n(u,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Pe.create(e).rest(Ze.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,s,r){return new t({args:e||Pe.create([]).rest(Ze.create()),returns:s||Ze.create(),typeName:v.ZodFunction,...R(r)})}};p.ZodFunction=rr;var wt=class extends L{get schema(){return this._def.getter()}_parse(e){let{ctx:s}=this._processInputParams(e);return this._def.getter()._parse({data:s.data,path:s.path,parent:s})}};p.ZodLazy=wt;wt.create=(t,e)=>new wt({getter:t,typeName:v.ZodLazy,...R(e)});var bt=class extends L{_parse(e){if(e.data!==this._def.value){let s=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(s,{received:s.data,code:S.ZodIssueCode.invalid_literal,expected:this._def.value}),m.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}};p.ZodLiteral=bt;bt.create=(t,e)=>new bt({value:t,typeName:v.ZodLiteral,...R(e)});function qa(t,e){return new kt({values:t,typeName:v.ZodEnum,...R(e)})}var kt=class t extends L{_parse(e){if(typeof e.data!="string"){let s=this._getOrReturnCtx(e),r=this._def.values;return(0,m.addIssueToContext)(s,{expected:I.util.joinValues(r),received:s.parsedType,code:S.ZodIssueCode.invalid_type}),m.INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let s=this._getOrReturnCtx(e),r=this._def.values;return(0,m.addIssueToContext)(s,{received:s.data,code:S.ZodIssueCode.invalid_enum_value,options:r}),m.INVALID}return(0,m.OK)(e.data)}get options(){return this._def.values}get enum(){let e={};for(let s of this._def.values)e[s]=s;return e}get Values(){let e={};for(let s of this._def.values)e[s]=s;return e}get Enum(){let e={};for(let s of this._def.values)e[s]=s;return e}extract(e,s=this._def){return t.create(e,{...this._def,...s})}exclude(e,s=this._def){return t.create(this.options.filter(r=>!e.includes(r)),{...this._def,...s})}};p.ZodEnum=kt;kt.create=qa;var xt=class extends L{_parse(e){let s=I.util.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==I.ZodParsedType.string&&r.parsedType!==I.ZodParsedType.number){let n=I.util.objectValues(s);return(0,m.addIssueToContext)(r,{expected:I.util.joinValues(n),received:r.parsedType,code:S.ZodIssueCode.invalid_type}),m.INVALID}if(this._cache||(this._cache=new Set(I.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let n=I.util.objectValues(s);return(0,m.addIssueToContext)(r,{received:r.data,code:S.ZodIssueCode.invalid_enum_value,options:n}),m.INVALID}return(0,m.OK)(e.data)}get enum(){return this._def.values}};p.ZodNativeEnum=xt;xt.create=(t,e)=>new xt({values:t,typeName:v.ZodNativeEnum,...R(e)});var st=class extends L{unwrap(){return this._def.type}_parse(e){let{ctx:s}=this._processInputParams(e);if(s.parsedType!==I.ZodParsedType.promise&&s.common.async===!1)return(0,m.addIssueToContext)(s,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.promise,received:s.parsedType}),m.INVALID;let r=s.parsedType===I.ZodParsedType.promise?s.data:Promise.resolve(s.data);return(0,m.OK)(r.then(n=>this._def.type.parseAsync(n,{path:s.path,errorMap:s.common.contextualErrorMap})))}};p.ZodPromise=st;st.create=(t,e)=>new st({type:t,typeName:v.ZodPromise,...R(e)});var ye=class extends L{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===v.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:s,ctx:r}=this._processInputParams(e),n=this._def.effect||null,o={addIssue:i=>{(0,m.addIssueToContext)(r,i),i.fatal?s.abort():s.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),n.type==="preprocess"){let i=n.transform(r.data,o);if(r.common.async)return Promise.resolve(i).then(async a=>{if(s.value==="aborted")return m.INVALID;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?m.INVALID:c.status==="dirty"||s.value==="dirty"?(0,m.DIRTY)(c.value):c});{if(s.value==="aborted")return m.INVALID;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?m.INVALID:a.status==="dirty"||s.value==="dirty"?(0,m.DIRTY)(a.value):a}}if(n.type==="refinement"){let i=a=>{let c=n.refinement(a,o);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?m.INVALID:(a.status==="dirty"&&s.dirty(),i(a.value),{status:s.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?m.INVALID:(a.status==="dirty"&&s.dirty(),i(a.value).then(()=>({status:s.value,value:a.value}))))}if(n.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!(0,m.isValid)(i))return m.INVALID;let a=n.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:s.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>(0,m.isValid)(i)?Promise.resolve(n.transform(i.value,o)).then(a=>({status:s.value,value:a})):m.INVALID);I.util.assertNever(n)}};p.ZodEffects=ye;p.ZodTransformer=ye;ye.create=(t,e,s)=>new ye({schema:t,typeName:v.ZodEffects,effect:e,...R(s)});ye.createWithPreprocess=(t,e,s)=>new ye({schema:e,effect:{type:"preprocess",transform:t},typeName:v.ZodEffects,...R(s)});var ke=class extends L{_parse(e){return this._getType(e)===I.ZodParsedType.undefined?(0,m.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};p.ZodOptional=ke;ke.create=(t,e)=>new ke({innerType:t,typeName:v.ZodOptional,...R(e)});var Ne=class extends L{_parse(e){return this._getType(e)===I.ZodParsedType.null?(0,m.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};p.ZodNullable=Ne;Ne.create=(t,e)=>new Ne({innerType:t,typeName:v.ZodNullable,...R(e)});var St=class extends L{_parse(e){let{ctx:s}=this._processInputParams(e),r=s.data;return s.parsedType===I.ZodParsedType.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:s.path,parent:s})}removeDefault(){return this._def.innerType}};p.ZodDefault=St;St.create=(t,e)=>new St({innerType:t,typeName:v.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...R(e)});var It=class extends L{_parse(e){let{ctx:s}=this._processInputParams(e),r={...s,common:{...s.common,issues:[]}},n=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return(0,m.isAsync)(n)?n.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new S.ZodError(r.common.issues)},input:r.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new S.ZodError(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};p.ZodCatch=It;It.create=(t,e)=>new It({innerType:t,typeName:v.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...R(e)});var Vt=class extends L{_parse(e){if(this._getType(e)!==I.ZodParsedType.nan){let r=this._getOrReturnCtx(e);return(0,m.addIssueToContext)(r,{code:S.ZodIssueCode.invalid_type,expected:I.ZodParsedType.nan,received:r.parsedType}),m.INVALID}return{status:"valid",value:e.data}}};p.ZodNaN=Vt;Vt.create=t=>new Vt({typeName:v.ZodNaN,...R(t)});p.BRAND=Symbol("zod_brand");var _s=class extends L{_parse(e){let{ctx:s}=this._processInputParams(e),r=s.data;return this._def.type._parse({data:r,path:s.path,parent:s})}unwrap(){return this._def.type}};p.ZodBranded=_s;var ws=class t extends L{_parse(e){let{status:s,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?m.INVALID:o.status==="dirty"?(s.dirty(),(0,m.DIRTY)(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let n=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return n.status==="aborted"?m.INVALID:n.status==="dirty"?(s.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:r.path,parent:r})}}static create(e,s){return new t({in:e,out:s,typeName:v.ZodPipeline})}};p.ZodPipeline=ws;var Ct=class extends L{_parse(e){let s=this._def.innerType._parse(e),r=n=>((0,m.isValid)(n)&&(n.value=Object.freeze(n.value)),n);return(0,m.isAsync)(s)?s.then(n=>r(n)):r(s)}unwrap(){return this._def.innerType}};p.ZodReadonly=Ct;Ct.create=(t,e)=>new Ct({innerType:t,typeName:v.ZodReadonly,...R(e)});function Ra(t,e){let s=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof s=="string"?{message:s}:s}function ja(t,e={},s){return t?tt.create().superRefine((r,n)=>{let o=t(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=Ra(e,r),c=a.fatal??s??!0;n.addIssue({code:"custom",...a,fatal:c})}});if(!o){let i=Ra(e,r),a=i.fatal??s??!0;n.addIssue({code:"custom",...i,fatal:a})}}):tt.create()}p.late={object:he.lazycreate};var v;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(v||(p.ZodFirstPartyTypeKind=v={}));var oh=(t,e={message:`Input not instance of ${t.name}`})=>ja(s=>s instanceof t,e);p.instanceof=oh;var Ma=et.create;p.string=Ma;var Ga=dt.create;p.number=Ga;var ih=Vt.create;p.nan=ih;var ah=ft.create;p.bigint=ah;var Fa=pt.create;p.boolean=Fa;var ch=mt.create;p.date=ch;var lh=Gt.create;p.symbol=lh;var uh=ht.create;p.undefined=uh;var dh=gt.create;p.null=dh;var fh=tt.create;p.any=fh;var ph=Ze.create;p.unknown=ph;var mh=Ae.create;p.never=mh;var hh=Ft.create;p.void=hh;var gh=Ve.create;p.array=gh;var yh=he.create;p.object=yh;var _h=he.strictCreate;p.strictObject=_h;var wh=yt.create;p.union=wh;var bh=tr.create;p.discriminatedUnion=bh;var kh=_t.create;p.intersection=kh;var xh=Pe.create;p.tuple=xh;var Sh=sr.create;p.record=Sh;var Ih=Bt.create;p.map=Ih;var Ch=Zt.create;p.set=Ch;var Eh=rr.create;p.function=Eh;var Ah=wt.create;p.lazy=Ah;var Th=bt.create;p.literal=Th;var $h=kt.create;p.enum=$h;var Uh=xt.create;p.nativeEnum=Uh;var vh=st.create;p.promise=vh;var Ba=ye.create;p.effect=Ba;p.transformer=Ba;var Oh=ke.create;p.optional=Oh;var Dh=Ne.create;p.nullable=Dh;var Rh=ye.createWithPreprocess;p.preprocess=Rh;var Lh=ws.create;p.pipeline=Lh;var Ph=()=>Ma().optional();p.ostring=Ph;var Nh=()=>Ga().optional();p.onumber=Nh;var qh=()=>Fa().optional();p.oboolean=qh;p.coerce={string:(t=>et.create({...t,coerce:!0})),number:(t=>dt.create({...t,coerce:!0})),boolean:(t=>pt.create({...t,coerce:!0})),bigint:(t=>ft.create({...t,coerce:!0})),date:(t=>mt.create({...t,coerce:!0}))};p.NEVER=m.INVALID});var Cn=k(Se=>{"use strict";var jh=Se&&Se.__createBinding||(Object.create?(function(t,e,s,r){r===void 0&&(r=s);var n=Object.getOwnPropertyDescriptor(e,s);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[s]}}),Object.defineProperty(t,r,n)}):(function(t,e,s,r){r===void 0&&(r=s),t[r]=e[s]})),Wt=Se&&Se.__exportStar||function(t,e){for(var s in t)s!=="default"&&!Object.prototype.hasOwnProperty.call(e,s)&&jh(e,t,s)};Object.defineProperty(Se,"__esModule",{value:!0});Wt(Xs(),Se);Wt(xn(),Se);Wt(Ua(),Se);Wt(gs(),Se);Wt(Za(),Se);Wt(Ys(),Se)});var Ka=k(ge=>{"use strict";var Va=ge&&ge.__createBinding||(Object.create?(function(t,e,s,r){r===void 0&&(r=s);var n=Object.getOwnPropertyDescriptor(e,s);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[s]}}),Object.defineProperty(t,r,n)}):(function(t,e,s,r){r===void 0&&(r=s),t[r]=e[s]})),Mh=ge&&ge.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Gh=ge&&ge.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var s in t)s!=="default"&&Object.prototype.hasOwnProperty.call(t,s)&&Va(e,t,s);return Mh(e,t),e},Fh=ge&&ge.__exportStar||function(t,e){for(var s in t)s!=="default"&&!Object.prototype.hasOwnProperty.call(e,s)&&Va(e,t,s)};Object.defineProperty(ge,"__esModule",{value:!0});ge.z=void 0;var Wa=Gh(Cn());ge.z=Wa;Fh(Cn(),ge);ge.default=Wa});var nr=k((B0,Ya)=>{var En=null;function An(){return En||(En=Ka().z),En}function za(){return An().string().trim().refine(t=>{let e=t.indexOf(".");return e>0&&e<t.length-1},{message:"API Key \u683C\u5F0F\u9519\u8BEF\uFF0C\u5E94\u4E3A <ak>.<sk>"})}function Ja(){return An().string().refine(t=>{try{return JSON.parse(t),!0}catch{return!1}},{message:"--meta-data \u4E0D\u662F\u5408\u6CD5\u7684 JSON"})}function Ha(){return An().string().trim().refine(t=>/^https?:\/\/[^\s]+$/i.test(t),{message:"registry \u5FC5\u987B\u662F http(s):// \u5F00\u5934\u7684 URL"})}function Bh(t){let e=za().safeParse(t);return e.success?{ok:!0,value:e.data}:{ok:!1,error:e.error.issues[0].message}}function Zh(t){let e=Ja().safeParse(t);return e.success?{ok:!0,value:e.data}:{ok:!1,error:e.error.issues[0].message}}function Vh(t){let e=Ha().safeParse(t);return e.success?{ok:!0,value:e.data}:{ok:!1,error:e.error.issues[0].message}}Ya.exports={apiKeySchema:za,pubMetaDataSchema:Ja,registrySchema:Ha,validateApiKey:Bh,validatePubMetaData:Zh,validateRegistry:Vh}});var Qa=k((Z0,Xa)=>{var Wh=Sa(),{validateApiKey:Kh}=nr();function zh(t,e){let s=new Wh(e),r=t.command("auth").description("\u7BA1\u7406\u8EAB\u4EFD\u9A8C\u8BC1\u51ED\u8BC1");r.command("login").description("\u767B\u5F55 MakeCoder\uFF08\u6D4F\u89C8\u5668\u6216\u7EC8\u7AEF\u8F93\u5165 API Key\uFF09").option("--apikey <key>","\u76F4\u63A5\u63D0\u4F9B API Key\uFF08\u683C\u5F0F: <ak>.<sk>\uFF09").action(async n=>{if(n.apikey){let o=Kh(n.apikey);if(!o.ok){e.fail(o.error,"API Key \u5F62\u5982 <ak>.<sk>\uFF0C\u83B7\u53D6: https://makecoder.com/my/apikeys"),process.exitCode=1;return}process.exitCode=await s.handle({authSubcommand:"login",authRemainingArgs:["--apikey",o.value],coderBaseUrl:e.getCoderBaseUrl()})||0;return}if(e.isNonInteractive){e.fail("missing credentials","run `coder auth login --apikey <ak>.<sk>`"),process.exitCode=1;return}process.exitCode=await s.handle({authSubcommand:"login",authRemainingArgs:[],coderBaseUrl:e.getCoderBaseUrl()})||0}),r.command("logout").description("\u9000\u51FA\u767B\u5F55\uFF0C\u6E05\u9664\u5DF2\u4FDD\u5B58\u7684 API Key").action(async()=>{process.exitCode=await s.handle({authSubcommand:"logout"})||0}),r.command("status").description("\u67E5\u770B\u5F53\u524D\u767B\u5F55\u72B6\u6001").action(async()=>{process.exitCode=await s.handle({authSubcommand:"status"})||0})}Xa.exports={register:zh}});var sc=k((V0,tc)=>{var Te=require("fs"),Et=require("path"),Jh=require("readline"),{execSync:or}=require("child_process"),ec=require("os"),Tn=class{constructor(){this.serverUrl="https://makecoder.com/bigapis/codev/v1/coderpub"}getClaudeJsonlPath(e,s=!1){let r=e.replace(/[/_]/g,"-"),n=Et.join(ec.homedir(),".claude","projects",r);if(s&&(console.log(`
|
|
286
|
+
\u{1F4C2} [allow-clone] \u67E5\u627E JSONL \u6587\u4EF6...`),console.log(` \u9879\u76EE\u76EE\u5F55: ${e}`),console.log(` Claude \u9879\u76EE\u540D: ${r}`),console.log(` Claude \u9879\u76EE\u76EE\u5F55: ${n}`)),!Te.existsSync(n))return s&&console.log(" \u274C Claude \u9879\u76EE\u76EE\u5F55\u4E0D\u5B58\u5728"),null;s&&console.log(" \u2713 Claude \u9879\u76EE\u76EE\u5F55\u5B58\u5728");try{let o=Te.readdirSync(n).filter(i=>i.endsWith(".jsonl")).map(i=>({name:i,path:Et.join(n,i),mtime:Te.statSync(Et.join(n,i)).mtime,size:Te.statSync(Et.join(n,i)).size})).sort((i,a)=>a.mtime-i.mtime);return s&&(console.log(` \u627E\u5230 ${o.length} \u4E2A JSONL \u6587\u4EF6:`),o.forEach((i,a)=>{let c=(i.size/1024).toFixed(2),l=i.mtime.toLocaleString(),u=a===0?" <- \u6700\u65B0":"";console.log(` ${a+1}. ${i.name} (${c} KB, ${l})${u}`)})),o.length>0?(s&&console.log(` \u2713 \u9009\u62E9\u6700\u65B0\u6587\u4EF6: ${o[0].name}`),o[0].path):(s&&console.log(" \u274C \u76EE\u5F55\u4E2D\u6CA1\u6709 JSONL \u6587\u4EF6"),null)}catch(o){return s&&console.log(` \u274C \u8BFB\u53D6\u76EE\u5F55\u5931\u8D25: ${o.message}`),null}}async promptForName(){let e=Jh.createInterface({input:process.stdin,output:process.stdout});return new Promise((s,r)=>{e.question("\u8BF7\u8F93\u5165\u9879\u76EE\u540D\u79F0 (name): ",n=>{e.close();let o=n.trim();if(!o){r(new Error("\u9879\u76EE\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A"));return}if(!/^[a-zA-Z0-9_-]+$/.test(o)){r(new Error("\u9879\u76EE\u540D\u79F0\u53EA\u80FD\u5305\u542B\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u4E0B\u5212\u7EBF\u548C\u8FDE\u5B57\u7B26"));return}s(o)})})}async createZip(e,s={}){let{allowClone:r=!1}=s,n=ec.tmpdir(),o=`coder-pub-${Date.now()}.zip`,i=Et.join(n,o);try{let a=!1;if(Te.existsSync(Et.join(e,".git")))try{or(`git archive -o "${i}" HEAD`,{cwd:e,stdio:"pipe"}),console.log("\u{1F4E6} \u4F7F\u7528 git archive \u521B\u5EFA\u538B\u7F29\u5305\uFF08\u5DF2\u6392\u9664 .gitignore \u4E2D\u7684\u6587\u4EF6\uFF09"),a=!0}catch{console.log("\u26A0\uFE0F git archive \u5931\u8D25\uFF0C\u4F7F\u7528\u666E\u901A zip \u547D\u4EE4")}if(!a){let l=[".git/*","node_modules/*",".env",".env.*","*.log",".DS_Store"].map(u=>`-x "${u}"`).join(" ");or(`zip -r "${i}" . ${l}`,{cwd:e,stdio:"pipe"}),console.log("\u{1F4E6} \u5DF2\u521B\u5EFA\u538B\u7F29\u5305")}if(r){console.log(`
|
|
287
|
+
\u{1F504} [allow-clone] \u5F00\u59CB\u5904\u7406 AI \u751F\u6210\u8BB0\u5F55...`);let c=this.getClaudeJsonlPath(e,!0);if(c){let l=Et.join(n,"coder.pub.jsonl"),d=(Te.statSync(c).size/1024).toFixed(2);console.log(`
|
|
288
|
+
\u{1F4E6} [allow-clone] \u6253\u5305 JSONL \u6587\u4EF6...`),console.log(` \u6E90\u6587\u4EF6: ${c}`),console.log(` \u6587\u4EF6\u5927\u5C0F: ${d} KB`),console.log(` \u4E34\u65F6\u6587\u4EF6: ${l}`),Te.copyFileSync(c,l),console.log(" \u2713 \u5DF2\u590D\u5236\u5230\u4E34\u65F6\u76EE\u5F55"),console.log(` \u76EE\u6807 ZIP: ${i}`),console.log(" \u76EE\u6807\u6587\u4EF6\u540D: coder.pub.jsonl"),or(`zip -j "${i}" "${l}"`,{stdio:"pipe"}),console.log(" \u2713 \u5DF2\u6DFB\u52A0\u5230 ZIP \u5305"),Te.unlinkSync(l),console.log(" \u2713 \u5DF2\u6E05\u7406\u4E34\u65F6\u6587\u4EF6"),console.log(`\u{1F4CB} [allow-clone] AI \u751F\u6210\u8BB0\u5F55\u5904\u7406\u5B8C\u6210 (coder.pub.jsonl)
|
|
289
289
|
`)}else console.log(`\u26A0\uFE0F [allow-clone] \u672A\u627E\u5230 Claude Code \u751F\u6210\u8BB0\u5F55
|
|
290
|
-
`)}return i}catch(a){throw new Error(`\u521B\u5EFA\u538B\u7F29\u5305\u5931\u8D25: ${a.message}`)}}async upload(e,s,r,n,o=!1){let i=n?`${n}/coderpub`:this.serverUrl,a=r;console.log("\u{1F4E4} \u6B63\u5728\u4E0A\u4F20\u5230\u670D\u52A1\u5668..."),o&&(console.log(` \u670D\u52A1\u5668\u5730\u5740: ${i}`),console.log(` \u9879\u76EE\u540D\u79F0: ${s}`),console.log(` ZIP \u6587\u4EF6: ${e}`));try{let c=`curl -s -X POST "${i}" -H "Authorization: Bearer ${a}" -F "name=${s}" -F "zip_file=@${e}"`;o&&console.log(" \u6267\u884C\u4E0A\u4F20\u547D\u4EE4...");let l=or(c,{encoding:"utf-8",stdio:["pipe","pipe","pipe"]});return o&&console.log(" \u2713 \u4E0A\u4F20\u5B8C\u6210\uFF0C\u89E3\u6790\u54CD\u5E94..."),JSON.parse(l)}catch(c){if(c.stdout)try{return JSON.parse(c.stdout)}catch{throw new Error(`\u4E0A\u4F20\u5931\u8D25: ${c.message}`)}throw new Error(`\u4E0A\u4F20\u5931\u8D25: ${c.message}`)}}cleanup(e){try{
|
|
291
|
-
\u{1F680} \u6B63\u5728\u53D1\u5E03\u9879\u76EE: ${o}`),console.log(`\u{1F4C1} \u76EE\u5F55: ${process.cwd()}`),n&&console.log("\u{1F513} allow-clone: \u542F\u7528 (\u5C06\u5305\u542B AI \u751F\u6210\u8BB0\u5F55)"),console.log(),i=await this.createZip(process.cwd(),{allowClone:n});let c=(
|
|
290
|
+
`)}return i}catch(a){throw new Error(`\u521B\u5EFA\u538B\u7F29\u5305\u5931\u8D25: ${a.message}`)}}async upload(e,s,r,n,o=!1){let i=n?`${n}/coderpub`:this.serverUrl,a=r;console.log("\u{1F4E4} \u6B63\u5728\u4E0A\u4F20\u5230\u670D\u52A1\u5668..."),o&&(console.log(` \u670D\u52A1\u5668\u5730\u5740: ${i}`),console.log(` \u9879\u76EE\u540D\u79F0: ${s}`),console.log(` ZIP \u6587\u4EF6: ${e}`));try{let c=`curl -s -X POST "${i}" -H "Authorization: Bearer ${a}" -F "name=${s}" -F "zip_file=@${e}"`;o&&console.log(" \u6267\u884C\u4E0A\u4F20\u547D\u4EE4...");let l=or(c,{encoding:"utf-8",stdio:["pipe","pipe","pipe"]});return o&&console.log(" \u2713 \u4E0A\u4F20\u5B8C\u6210\uFF0C\u89E3\u6790\u54CD\u5E94..."),JSON.parse(l)}catch(c){if(c.stdout)try{return JSON.parse(c.stdout)}catch{throw new Error(`\u4E0A\u4F20\u5931\u8D25: ${c.message}`)}throw new Error(`\u4E0A\u4F20\u5931\u8D25: ${c.message}`)}}cleanup(e){try{Te.existsSync(e)&&Te.unlinkSync(e)}catch{}}async publish(e){let{apikey:s,coderBaseUrl:r,allowClone:n}=e,{name:o}=e,i=null;try{o||(o=await this.promptForName()),console.log(`
|
|
291
|
+
\u{1F680} \u6B63\u5728\u53D1\u5E03\u9879\u76EE: ${o}`),console.log(`\u{1F4C1} \u76EE\u5F55: ${process.cwd()}`),n&&console.log("\u{1F513} allow-clone: \u542F\u7528 (\u5C06\u5305\u542B AI \u751F\u6210\u8BB0\u5F55)"),console.log(),i=await this.createZip(process.cwd(),{allowClone:n});let c=(Te.statSync(i).size/(1024*1024)).toFixed(2);console.log(`\u{1F4CA} \u538B\u7F29\u5305\u5927\u5C0F: ${c} MB`),n&&console.log(`
|
|
292
292
|
\u{1F310} [allow-clone] \u5F00\u59CB\u4E0A\u4F20\u5230\u670D\u52A1\u5668...`);let l=await this.upload(i,o,s,r,n);return l.code===0?(console.log(`
|
|
293
293
|
\u2705 \u53D1\u5E03\u6210\u529F!`),console.log(`\u{1F4CC} \u7248\u672C: ${l.data.version}`),console.log(`\u{1F310} \u8BBF\u95EE\u5730\u5740: https://${o}.coder.pub/`),0):(console.error(`
|
|
294
294
|
\u274C \u53D1\u5E03\u5931\u8D25: ${l.message||l.reason}`),1)}catch(a){return console.error(`
|
|
@@ -370,7 +370,7 @@ Autopilot instructions:
|
|
|
370
370
|
`}function _y(t){let e;if(t.resource_type==="github_repo"){let s=typeof t.resource_ref=="string"?JSON.parse(t.resource_ref||"{}"):t.resource_ref||{};e=`**GitHub repo**: ${s.url||""}`,s.default_branch_hint&&(e+=` (default branch: \`${s.default_branch_hint}\`)`)}else{let s=typeof t.resource_ref=="string"?t.resource_ref:JSON.stringify(t.resource_ref||{});e=`**${t.resource_type}**: \`${s}\``}return t.label&&(e+=` \u2014 ${t.label}`),e}zc.exports={injectRuntimeConfig:my,cleanupRuntimeConfig:hy}});var tl=k((lx,el)=>{var wy=require("os");function by(t){return t.chat_session_id?Sy(t):t.trigger_comment_id?xy(t):t.autopilot_run_id?Iy(t):t.quick_create_prompt?Cy(t):ky(t)}function ky(t){let e=[];return e.push(`You are running as a local coding agent for a Multica workspace.
|
|
371
371
|
`),t.issue_id&&(e.push(`Your assigned issue ID is: ${t.issue_id}
|
|
372
372
|
`),e.push(`Start by running \`coder flow issue get ${t.issue_id}\` to understand your task, then complete it.`),e.push(`For comment history, run \`coder flow issue comment list ${t.issue_id}\` to read the full discussion.
|
|
373
|
-
`)),e.join(`
|
|
373
|
+
`),e.push(`When you finish, post your result as a comment on the issue using \`coder flow issue comment add ${t.issue_id} --content-stdin\` with a HEREDOC. Do NOT return the result as plain text output \u2014 use the comment tool instead.`)),e.join(`
|
|
374
374
|
`)}function xy(t){let e=[];if(e.push(`You are running as a local coding agent for a Multica workspace.
|
|
375
375
|
`),t.issue_id&&e.push(`Your assigned issue ID is: ${t.issue_id}
|
|
376
376
|
`),t.trigger_comment_content){let r="A user";t.trigger_author_type==="agent"&&(r=`Another agent (${t.trigger_author_name||"another agent"})`),e.push(`[NEW COMMENT] ${r} just left a new comment. Focus on THIS comment \u2014 do not confuse it with previous ones:
|
|
@@ -490,21 +490,21 @@ name: ${e}
|
|
|
490
490
|
`),e.push(`The following skills are available to you:
|
|
491
491
|
`);for(let r of s)e.push(`- **${r.name}**`);e.push("")}return e.join(`
|
|
492
492
|
`)+`
|
|
493
|
-
`}function Fy(t,e){let s=e.project_id||"",r=e.project_resources||[];if(!s&&!r.length)return;let n=te.join(t,".multica","project");Z.mkdirSync(n,{recursive:!0});let o={project_id:s,project_title:e.project_title||"",resources:r.length?r:[]},i=te.join(n,"resources.json");Z.existsSync(i)||Z.writeFileSync(i,JSON.stringify(o,null,2),"utf8")}function By(t,e){if(!t.gcEnabled)return;let s=t.workspacesRoot;if(!Z.existsSync(s))return;let r=Date.now(),n;try{n=Z.readdirSync(s)}catch{return}for(let o of n){if(o===".repos")continue;let i=te.join(s,o),a;try{a=Z.readdirSync(i)}catch{continue}let c=0;for(let l of a){let u=te.join(i,l);if(!Z.statSync(u,{throwIfNoEntry:!1})?.isDirectory()||e&&e.has(u))continue;let d=te.join(u,".gc_meta.json"),f=null;try{f=JSON.parse(Z.readFileSync(d,"utf8"))}catch{}if(!f){let w=Z.statSync(u,{throwIfNoEntry:!1});if(w&&r-w.mtimeMs>(t.gcOrphanTtl||72*36e5))try{Z.rmSync(u,{recursive:!0,force:!0}),c++}catch{}continue}let h=f.completed_at||0;if(!h)continue;if(r-h>(t.gcTtl||864e5)){try{Z.rmSync(u,{recursive:!0,force:!0}),c++}catch{}continue}let g=t.gcArtifactTtl||12*36e5,_=t.gcArtifactPatterns;g>0&&_&&_.length>0&&r-h>g&&rl(u,_)}if(c>0)try{Z.readdirSync(i).length===0&&Z.rmdirSync(i)}catch{}}}function rl(t,e){if(!t||!e||!e.length)return;let s=new Set(e.map(n=>n.trim()).filter(n=>n&&!n.includes("/")&&!n.includes("\\")));if(!s.size)return;let r=te.resolve(t);nl(r,r,s)}function nl(t,e,s){let r;try{r=Z.readdirSync(e,{withFileTypes:!0})}catch{return}for(let n of r){if(!n.isDirectory()||n.name===".git")continue;let o=te.join(e,n.name);try{if(Z.lstatSync(o).isSymbolicLink())continue}catch{continue}let i=te.relative(t,o);if(!(!i||i.startsWith("..")))if(s.has(n.name))try{Z.rmSync(o,{recursive:!0,force:!0})}catch{}else nl(t,o,s)}}function Zy(t,{status:e,taskId:s}){try{Z.writeFileSync(te.join(t,".gc_meta.json"),JSON.stringify({task_id:s,status:e,completed_at:Date.now()}),"utf8")}catch{}}function Vy(t,e){if(!e.keepEnvAfterTask)try{Z.rmSync(t,{recursive:!0,force:!0})}catch{}}ol.exports={taskPaths:Ay,prepareWorkdir:Ty,writeSkillFiles:$y,writeIssueContext:qy,writeProjectResources:Fy,runGc:By,cleanTaskArtifacts:rl,writeGcMeta:Zy,cleanupWorkdir:Vy}});var Jn=k((dx,cl)=>{var{spawn:Wy,execFileSync:Ky}=require("child_process"),{injectRuntimeConfig:zy,cleanupRuntimeConfig:il}=Jc(),{buildPrompt:Jy}=tl(),{taskPaths:Hy,prepareWorkdir:Yy,writeSkillFiles:Xy,writeIssueContext:Qy,writeProjectResources:e_,writeGcMeta:al,cleanupWorkdir:t_}=Kn(),s_=new Set(["HOME","PATH","USER","SHELL","TERM","CODEX_HOME","CURSOR_DATA_DIR","OPENCLAW_CONFIG_PATH","OPENCLAW_INCLUDE_ROOTS"]),Ss=new Set;function r_(){return Ss}async function n_(t,e,s,r,n=0){let{rootDir:o,workDir:i}=Hy(t,s),a=s.id?s.id.slice(0,8):"?",c=s.issue_id||s.issueId||"",l=s.agent_id||s.agentId||"",u=s.agent?.name||"";r(`[task ${a}] start slot=${n} issue=${c} agent=${l}(${u})`),r(`[task ${a}] workDir=${i}`),Ss.add(o);try{await e.taskStart(s.id),r(`[task ${a}] taskStart OK`)}catch(
|
|
493
|
+
`}function Fy(t,e){let s=e.project_id||"",r=e.project_resources||[];if(!s&&!r.length)return;let n=te.join(t,".multica","project");Z.mkdirSync(n,{recursive:!0});let o={project_id:s,project_title:e.project_title||"",resources:r.length?r:[]},i=te.join(n,"resources.json");Z.existsSync(i)||Z.writeFileSync(i,JSON.stringify(o,null,2),"utf8")}function By(t,e){if(!t.gcEnabled)return;let s=t.workspacesRoot;if(!Z.existsSync(s))return;let r=Date.now(),n;try{n=Z.readdirSync(s)}catch{return}for(let o of n){if(o===".repos")continue;let i=te.join(s,o),a;try{a=Z.readdirSync(i)}catch{continue}let c=0;for(let l of a){let u=te.join(i,l);if(!Z.statSync(u,{throwIfNoEntry:!1})?.isDirectory()||e&&e.has(u))continue;let d=te.join(u,".gc_meta.json"),f=null;try{f=JSON.parse(Z.readFileSync(d,"utf8"))}catch{}if(!f){let w=Z.statSync(u,{throwIfNoEntry:!1});if(w&&r-w.mtimeMs>(t.gcOrphanTtl||72*36e5))try{Z.rmSync(u,{recursive:!0,force:!0}),c++}catch{}continue}let h=f.completed_at||0;if(!h)continue;if(r-h>(t.gcTtl||864e5)){try{Z.rmSync(u,{recursive:!0,force:!0}),c++}catch{}continue}let g=t.gcArtifactTtl||12*36e5,_=t.gcArtifactPatterns;g>0&&_&&_.length>0&&r-h>g&&rl(u,_)}if(c>0)try{Z.readdirSync(i).length===0&&Z.rmdirSync(i)}catch{}}}function rl(t,e){if(!t||!e||!e.length)return;let s=new Set(e.map(n=>n.trim()).filter(n=>n&&!n.includes("/")&&!n.includes("\\")));if(!s.size)return;let r=te.resolve(t);nl(r,r,s)}function nl(t,e,s){let r;try{r=Z.readdirSync(e,{withFileTypes:!0})}catch{return}for(let n of r){if(!n.isDirectory()||n.name===".git")continue;let o=te.join(e,n.name);try{if(Z.lstatSync(o).isSymbolicLink())continue}catch{continue}let i=te.relative(t,o);if(!(!i||i.startsWith("..")))if(s.has(n.name))try{Z.rmSync(o,{recursive:!0,force:!0})}catch{}else nl(t,o,s)}}function Zy(t,{status:e,taskId:s}){try{Z.writeFileSync(te.join(t,".gc_meta.json"),JSON.stringify({task_id:s,status:e,completed_at:Date.now()}),"utf8")}catch{}}function Vy(t,e){if(!e.keepEnvAfterTask)try{Z.rmSync(t,{recursive:!0,force:!0})}catch{}}ol.exports={taskPaths:Ay,prepareWorkdir:Ty,writeSkillFiles:$y,writeIssueContext:qy,writeProjectResources:Fy,runGc:By,cleanTaskArtifacts:rl,writeGcMeta:Zy,cleanupWorkdir:Vy}});var Jn=k((dx,cl)=>{var{spawn:Wy,execFileSync:Ky}=require("child_process"),{injectRuntimeConfig:zy,cleanupRuntimeConfig:il}=Jc(),{buildPrompt:Jy}=tl(),{taskPaths:Hy,prepareWorkdir:Yy,writeSkillFiles:Xy,writeIssueContext:Qy,writeProjectResources:e_,writeGcMeta:al,cleanupWorkdir:t_}=Kn(),s_=new Set(["HOME","PATH","USER","SHELL","TERM","CODEX_HOME","CURSOR_DATA_DIR","OPENCLAW_CONFIG_PATH","OPENCLAW_INCLUDE_ROOTS"]),Ss=new Set;function r_(){return Ss}async function n_(t,e,s,r,n=0){let{rootDir:o,workDir:i}=Hy(t,s),a=s.id?s.id.slice(0,8):"?",c=s.issue_id||s.issueId||"",l=s.agent_id||s.agentId||"",u=s.agent?.name||"";r(`[task ${a}] start slot=${n} issue=${c} agent=${l}(${u})`),r(`[task ${a}] workDir=${i}`),Ss.add(o);try{await e.taskStart(s.id),r(`[task ${a}] taskStart OK`)}catch(M){r(`[task ${a}] taskStart failed: ${M.message}`)}try{Yy(i),Xy(i,s),Qy(i,s),e_(i,s),zy(i,s),r(`[task ${a}] workdir prepared`)}catch(M){r(`[task ${a}] workdir prep failed: ${M.message}`),Ss.delete(o),await zn(e,s.id,`workdir preparation failed: ${M.message}`);return}let d=Jy(s);r(`[task ${a}] prompt length=${d.length} chars`);let f=s.auth_token||t.token||"",h=o_(t,s,f,n),{cmd:g,args:_}=i_(t,s),w=s.agent?.provider||"claude";r(`[task ${a}] spawn provider=${w} cmd=${g} args=${_.join(" ")}`);let x=new AbortController,P=x.signal;l_(e,s.id,a,P,r);let W=null,D=null,N=[],K={seq:0,pendingText:"",pendingThinking:"",callIdToTool:{},sessionId:null,finalOutput:""};try{W=await a_({cmd:g,args:_,cwd:i,env:h,prompt:d,taskId:s.id,cancelSignal:P},{onLine:(M,be)=>{let ve=c_(M,K,pe=>{if(pe.type==="tool_use"){let Oe=JSON.stringify(pe.input||{}).slice(0,200);r(`[task ${a}] tool_use tool=${pe.tool} input=${Oe}`)}else if(pe.type==="tool_result"){let Oe=(pe.output||"").slice(0,120).replace(/\n/g,"\\n");r(`[task ${a}] tool_result tool=${pe.tool} output=${Oe}`)}else if(pe.type==="result"){let Oe=(pe.content||"").slice(0,200).replace(/\n/g,"\\n");r(`[task ${a}] result output=${Oe}`)}});if(K.sessionId&&!D&&(D=K.sessionId,r(`[task ${a}] session pinned sessionId=${D}`),e.taskSession(s.id,{sessionId:D,workDir:i}).catch(()=>{})),!ve)return;let Os=Array.isArray(ve)?ve:[ve];if(N.push(...Os),N.length>=5){let pe=N.splice(0);e.taskMessages(s.id,pe).catch(()=>{})}},agentTimeout:t.agentTimeout,log:r}),r(`[task ${a}] agent exited exitCode=${W}`)}catch(M){r(`[task ${a}] agent error: ${M.message}`),x.abort(),il(i),al(o,{status:"failed",taskId:s.id}),Ss.delete(o),await zn(e,s.id,M.message,D,i);return}x.abort();let F=pr(K);F.length&&N.push(...F),N.length>0&&(r(`[task ${a}] flushing ${N.length} remaining message(s)`),await e.taskMessages(s.id,N).catch(()=>{})),il(i),al(o,{status:W===0?"completed":"failed",taskId:s.id}),Ss.delete(o),t_(o,t);let z="";try{let M=Ky("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:i,timeout:5e3,stdio:["ignore","pipe","ignore"]}).toString().trim();M&&M!=="HEAD"&&(z=M)}catch{}if(W===0){let M=s.issue_id?"":K.finalOutput;r(`[task ${a}] complete output_len=${K.finalOutput.length} send_output=${!!M} branch=${z||"(none)"}`),await e.taskComplete(s.id,{output:M,sessionId:D,workDir:i,branchName:z}).then(be=>r(`[task ${a}] taskComplete reported status=${be?.status??"ok"}`)).catch(be=>r(`[task ${a}] taskComplete report failed: ${be.message}`))}else r(`[task ${a}] failed (exit ${W})`),await zn(e,s.id,`agent exited with code ${W}`,D,i)}function o_(t,e,s,r){let n=Object.assign({},process.env);n.MULTICA_TOKEN=s,n.CODER_APIKEY=s,n.MULTICA_SERVER_URL=t.serverUrl,n.MULTICA_DAEMON_PORT=String(t.healthPort||19514),n.MULTICA_WORKSPACE_ID=e.workspace_id||"",n.MULTICA_AGENT_NAME=e.agent?.name||"",n.MULTICA_AGENT_ID=e.agent_id||e.agent?.id||"",n.MULTICA_TASK_ID=e.id,n.MULTICA_TASK_SLOT=String(r),e.autopilot_run_id&&(n.MULTICA_AUTOPILOT_RUN_ID=e.autopilot_run_id),e.autopilot_id&&(n.MULTICA_AUTOPILOT_ID=e.autopilot_id);let o=require("path").dirname(require("path").resolve(process.argv[1]));o&&!n.PATH.startsWith(o)&&(n.PATH=`${o}:${n.PATH}`);let i=e.agent?.custom_env||{};for(let[a,c]of Object.entries(i))a.startsWith("MULTICA_")||s_.has(a)||(n[a]=c);if(e.agent?.model&&(n.ANTHROPIC_MODEL=e.agent.model),e.quick_create_prompt){n.MULTICA_QUICK_CREATE_TASK_ID=e.id||"";let a=e.quick_create_attachment_ids;Array.isArray(a)&&a.length>0&&(n.MULTICA_QUICK_CREATE_ATTACHMENT_IDS=JSON.stringify(a))}return n}function i_(t,e){return(e.agent?.provider||"claude")==="codex"?{cmd:t.codexPath,args:["agent","codex"]}:{cmd:t.claudePath,args:["agent","claude","-p","--output-format","stream-json","--input-format","stream-json","--verbose","--strict-mcp-config","--permission-mode","bypassPermissions","--disallowedTools","AskUserQuestion"]}}function a_({cmd:t,args:e,cwd:s,env:r,prompt:n,taskId:o,agentTimeout:i,cancelSignal:a},{onLine:c,log:l}){return new Promise((u,d)=>{let f=Wy(t,e,{cwd:s,env:r,stdio:["pipe","pipe","pipe"]}),h=null;i>0&&(h=setTimeout(()=>{l(`[task ${o}] agent timeout after ${i}ms`),f.kill("SIGTERM"),setTimeout(()=>f.kill("SIGKILL"),5e3)},i));let g=()=>{l(`[task ${o}] cancelled server-side, interrupting agent`),f.kill("SIGTERM"),setTimeout(()=>{try{f.kill("SIGKILL")}catch{}},5e3)};a&&a.addEventListener("abort",g,{once:!0});let _="";f.stdout.on("data",x=>{_+=x.toString();let P=_.split(`
|
|
494
494
|
`);_=P.pop();for(let W of P)W.trim()&&c(W)}),f.stderr.on("data",x=>{let P=x.toString();if(!P.trim())return;let W=P.trimEnd().split(`
|
|
495
495
|
`),D=W.slice(0,3).join(`
|
|
496
496
|
`),N=W.length>3?` ... (${W.length-3} more lines)`:"";l(`[task ${o}] stderr: ${D}${N}`)}),f.on("error",x=>{h&&clearTimeout(h),a&&a.removeEventListener("abort",g),d(x)}),f.on("close",x=>{h&&clearTimeout(h),a&&a.removeEventListener("abort",g),_.trim()&&c(_),u(x||0)});let w=JSON.stringify({type:"user",message:{role:"user",content:[{type:"text",text:n}]}})+`
|
|
497
|
-
`;f.stdin.write(w),f.stdin.end()})}function c_(t,e,s){let r;try{r=JSON.parse(t)}catch{return null}if(!r||typeof r!="object")return null;let n=r.type;if(n==="system"&&r.session_id&&!e.sessionId&&(e.sessionId=r.session_id),n==="assistant"){let o=r.message||{},i=Array.isArray(o.content)?o.content:[];for(let a of i)if(a.type==="text"&&a.text)e.pendingText+=a.text;else if(a.type==="thinking"&&a.thinking)e.pendingThinking+=a.thinking;else if(a.type==="tool_use"){let c=pr(e),l=++e.seq;return c.push({seq:l,type:"tool_use",tool:a.name||"",input:a.input||{}}),a.id&&(e.callIdToTool[a.id]=a.name||""),s&&s({type:"tool_use",tool:a.name||"",input:a.input||{}}),c.length?c:null}return null}if(n==="tool_result"){let o=pr(e),i=++e.seq,a="",c=r.content;typeof c=="string"?a=c:Array.isArray(c)&&(a=c.map(u=>u.text||u.content||"").join("")),a.length>8192&&(a=a.slice(0,8192));let l=r.tool_name||(r.tool_use_id?e.callIdToTool[r.tool_use_id]:"")||"";return o.push({seq:i,type:"tool_result",tool:l,output:a}),s&&s({type:"tool_result",tool:l,output:a}),o.length?o:null}if(n==="result"){let o=pr(e),i=++e.seq,a=r.result||r.content||"";return a&&(o.push({seq:i,type:"text",content:a}),e.finalOutput=a),s&&s({type:"result",content:a}),o.length?o:null}return null}function pr(t){let e=[];return t.pendingThinking&&(e.push({seq:++t.seq,type:"thinking",content:t.pendingThinking}),t.pendingThinking=""),t.pendingText&&(e.push({seq:++t.seq,type:"text",content:t.pendingText}),t.pendingText=""),e}async function zn(t,e,s,r,n){try{await t.taskFail(e,{error:s,sessionId:r,workDir:n})}catch(o){}}function l_(t,e,s,r,n){let o=new Set(["completed","failed","cancelled"]),i=5e3,a=async()=>{if(!r.aborted){try{let l=(await t.taskStatus(e))?.status||"";if(o.has(l)){n(`[task ${s}] server status=${l}, interrupting agent`),r.dispatchEvent(new Event("abort"));return}}catch(c){if(c.isTaskNotFound){n(`[task ${s}] task gone server-side, interrupting agent`),r.dispatchEvent(new Event("abort"));return}}r.aborted||setTimeout(a,i)}};setTimeout(a,i)}cl.exports={runTask:n_,getActiveWorkdirs:r_}});var Yn=k((fx,ll)=>{var{runTask:u_}=Jn(),Hn=class{constructor(e,s,r,n){this.cfg=e,this.client=s,this.runtimeId=r,this.log=n,this._running=!1,this._taskCount=0,this._slotCounter=0,this._wakeupResolve=null}get activeTaskCount(){return this._taskCount}start(e){this._running=!0,this._loop(e)}wakeup(){this._wakeupResolve&&(this._wakeupResolve(),this._wakeupResolve=null)}async _loop(e){for(this.log(`[poller ${this.runtimeId.slice(0,8)}] started`);this._running&&(!e||!e.aborted);){try{if(this._taskCount>=this.cfg.maxConcurrentTasks){this.log(`[poller ${this.runtimeId.slice(0,8)}] at capacity (${this._taskCount}/${this.cfg.maxConcurrentTasks}), sleeping`),await this._sleep(e);continue}this.log(`[poller ${this.runtimeId.slice(0,8)}] claiming task (active=${this._taskCount})`);let s=await this.client.claimTask(this.runtimeId);if(s){let r=this._slotCounter++;this._taskCount++;let n=s.id?s.id.slice(0,8):"?",o=s.issue_id||s.issueId||"";this.log(`[poller ${this.runtimeId.slice(0,8)}] claimed task=${n} issue=${o} slot=${r} (active=${this._taskCount})`),this._runTask(s,r).finally(()=>{this._taskCount--,this.log(`[poller ${this.runtimeId.slice(0,8)}] task=${n} finished (active=${this._taskCount})`)});continue}else this.log(`[poller ${this.runtimeId.slice(0,8)}] no task available`)}catch(s){this.log(`[poller ${this.runtimeId.slice(0,8)}] claim error: ${s.message}`)}await this._sleep(e)}this.log(`[poller ${this.runtimeId.slice(0,8)}] stopped`)}_sleep(e){return new Promise(s=>{this._wakeupResolve=s;let r=d_(this.cfg.pollInterval||3e4),n=setTimeout(()=>{this._wakeupResolve=null,s()},r),o=()=>{clearTimeout(n),this._wakeupResolve=null,s()};e&&e.addEventListener("abort",o,{once:!0})})}async _runTask(e,s){try{await u_(this.cfg,this.client,e,this.log,s)}catch(r){this.log(`[poller ${this.runtimeId.slice(0,8)}] task ${e.id} uncaught: ${r.message}`)}}stop(){this._running=!1,this.wakeup()}};function d_(t){return Math.max(1e3,t+(Math.random()-.5)*t*.2)}ll.exports={Poller:Hn}});var dl=k((px,ul)=>{var f_=require("https"),p_=require("http"),{URL:m_}=require("url"),h_={claude:[{id:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",provider:"anthropic",default:!0},{id:"claude-opus-4-8",label:"Claude Opus 4.8",provider:"anthropic"},{id:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5",provider:"anthropic"}],codex:[{id:"gpt-5.5",label:"GPT-5.5",provider:"openai",default:!0},{id:"o3",label:"o3",provider:"openai"}]};async function g_(t,e){let s=(t||"https://api.makecoder.com/v1").replace(/\/+$/,""),r=new m_(`${s}/claudeproxy/v1/models`),n=r.protocol==="http:"?p_:f_;return new Promise(o=>{let i={"Content-Type":"application/json"};e&&(i.Authorization=`Bearer ${e}`);let a=n.request({hostname:r.hostname,port:r.port||(r.protocol==="http:"?80:443),path:r.pathname+r.search,method:"GET",headers:i,timeout:5e3},c=>{let l="";c.on("data",u=>l+=u),c.on("end",()=>{try{let u=JSON.parse(l);if(u.code===0&&Array.isArray(u.data?.models)){let d=u.data.models.filter(f=>f.id).sort((f,h)=>f.id.localeCompare(h.id)).map((f,h)=>({id:f.id,label:f.name??f.id,provider:f.provider||"anthropic",...h===0?{default:!0}:{}}));o(d)}else o(null)}catch{o(null)}})});a.on("error",()=>o(null)),a.on("timeout",()=>{a.destroy(),o(null)}),a.end()})}async function y_(t,e,s,r,n,o){n(`[model-list] runtime=${e} request=${s} provider=${r}`);let i=null;if(r==="claude"&&(i=await g_(o||t.serverUrl,t.token),n(i?`[model-list] fetched ${i.length} models from API`:"[model-list] API unavailable, using fallback list")),i||(i=h_[r]||null),!i){await t.reportModelListResult(e,s,{status:"failed",error:`no model catalog for provider "${r}"`});return}try{await t.reportModelListResult(e,s,{status:"completed",models:i,supported:!0}),n(`[model-list] reported ${i.length} models for runtime=${e}`)}catch(a){n(`[model-list] report failed: ${a.message}`)}}ul.exports={handleModelList:y_}});var ml=k((mx,pl)=>{var{handleModelList:__}=dl(),Xn=class{constructor(e,s,r,n,o,i){this.cfg=e,this.client=s,this.getRuntimeIds=r,this.log=n,this.onRuntimeGone=o,this.getRuntimeProvider=i||(()=>"claude"),this._timer=null,this._beatCount=0}start(e){let s=this.cfg.heartbeatInterval||15e3,r=async()=>{if(e&&e.aborted)return;let n=this.getRuntimeIds();this._beatCount++;for(let o of n)try{let i=await this.client.heartbeat(o);if(i&&i.runtime_gone?(this.log(`[heartbeat] runtime ${o} gone, re-registering`),this.onRuntimeGone&&this.onRuntimeGone(o)):this._beatCount%10===0&&this.log(`[heartbeat] ok runtime=${o.slice(0,8)} count=${this._beatCount}`),i&&i.pending_model_list){let a=this.getRuntimeProvider(o);this.log(`[heartbeat] pending_model_list runtime=${o.slice(0,8)} requestId=${i.pending_model_list.id}`),__(this.client,o,i.pending_model_list.id,a,this.log,this.cfg.coderBaseUrl).catch(c=>this.log(`[heartbeat] model-list error: ${c.message}`))}}catch(i){this.log(`[heartbeat] error for ${o}: ${i.message}`)}(!e||!e.aborted)&&(this._timer=setTimeout(r,fl(s)))};this._timer=setTimeout(r,fl(s))}stop(){this._timer&&(clearTimeout(this._timer),this._timer=null)}};function fl(t){return Math.max(1e3,t+(Math.random()-.5)*t*.2)}pl.exports={Heartbeat:Xn}});var Ve=k((hx,yl)=>{"use strict";var hl=["nodebuffer","arraybuffer","fragments"],gl=typeof Blob<"u";gl&&hl.push("blob");yl.exports={BINARY_TYPES:hl,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:gl,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var Is=k((gx,mr)=>{"use strict";var{EMPTY_BUFFER:w_}=Ve(),Qn=Buffer[Symbol.species];function b_(t,e){if(t.length===0)return w_;if(t.length===1)return t[0];let s=Buffer.allocUnsafe(e),r=0;for(let n=0;n<t.length;n++){let o=t[n];s.set(o,r),r+=o.length}return r<e?new Qn(s.buffer,s.byteOffset,r):s}function _l(t,e,s,r,n){for(let o=0;o<n;o++)s[r+o]=t[o]^e[o&3]}function wl(t,e){for(let s=0;s<t.length;s++)t[s]^=e[s&3]}function k_(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function eo(t){if(eo.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new Qn(t):ArrayBuffer.isView(t)?e=new Qn(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),eo.readOnly=!1),e}mr.exports={concat:b_,mask:_l,toArrayBuffer:k_,toBuffer:eo,unmask:wl};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");mr.exports.mask=function(e,s,r,n,o){o<48?_l(e,s,r,n,o):t.mask(e,s,r,n,o)},mr.exports.unmask=function(e,s){e.length<32?wl(e,s):t.unmask(e,s)}}catch{}});var xl=k((yx,kl)=>{"use strict";var bl=Symbol("kDone"),to=Symbol("kRun"),so=class{constructor(e){this[bl]=()=>{this.pending--,this[to]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[to]()}[to](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[bl])}}};kl.exports=so});var Qt=k((_x,El)=>{"use strict";var Cs=require("zlib"),Sl=Is(),x_=xl(),{kStatusCode:Il}=Ve(),S_=Buffer[Symbol.species],I_=Buffer.from([0,0,255,255]),gr=Symbol("permessage-deflate"),We=Symbol("total-length"),Yt=Symbol("callback"),rt=Symbol("buffers"),Xt=Symbol("error"),hr,ro=class{constructor(e){if(this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!hr){let s=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;hr=new x_(s)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[Yt];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let s=this._options,r=e.find(n=>!(s.serverNoContextTakeover===!1&&n.server_no_context_takeover||n.server_max_window_bits&&(s.serverMaxWindowBits===!1||typeof s.serverMaxWindowBits=="number"&&s.serverMaxWindowBits>n.server_max_window_bits)||typeof s.clientMaxWindowBits=="number"&&!n.client_max_window_bits));if(!r)throw new Error("None of the extension offers can be accepted");return s.serverNoContextTakeover&&(r.server_no_context_takeover=!0),s.clientNoContextTakeover&&(r.client_no_context_takeover=!0),typeof s.serverMaxWindowBits=="number"&&(r.server_max_window_bits=s.serverMaxWindowBits),typeof s.clientMaxWindowBits=="number"?r.client_max_window_bits=s.clientMaxWindowBits:(r.client_max_window_bits===!0||s.clientMaxWindowBits===!1)&&delete r.client_max_window_bits,r}acceptAsClient(e){let s=e[0];if(this._options.clientNoContextTakeover===!1&&s.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!s.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(s.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&s.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return s}normalizeParams(e){return e.forEach(s=>{Object.keys(s).forEach(r=>{let n=s[r];if(n.length>1)throw new Error(`Parameter "${r}" must have only a single value`);if(n=n[0],r==="client_max_window_bits"){if(n!==!0){let o=+n;if(!Number.isInteger(o)||o<8||o>15)throw new TypeError(`Invalid value for parameter "${r}": ${n}`);n=o}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${r}": ${n}`)}else if(r==="server_max_window_bits"){let o=+n;if(!Number.isInteger(o)||o<8||o>15)throw new TypeError(`Invalid value for parameter "${r}": ${n}`);n=o}else if(r==="client_no_context_takeover"||r==="server_no_context_takeover"){if(n!==!0)throw new TypeError(`Invalid value for parameter "${r}": ${n}`)}else throw new Error(`Unknown parameter "${r}"`);s[r]=n})}),e}decompress(e,s,r){hr.add(n=>{this._decompress(e,s,(o,i)=>{n(),r(o,i)})})}compress(e,s,r){hr.add(n=>{this._compress(e,s,(o,i)=>{n(),r(o,i)})})}_decompress(e,s,r){let n=this._isServer?"client":"server";if(!this._inflate){let o=`${n}_max_window_bits`,i=typeof this.params[o]!="number"?Cs.Z_DEFAULT_WINDOWBITS:this.params[o];this._inflate=Cs.createInflateRaw({...this._options.zlibInflateOptions,windowBits:i}),this._inflate[gr]=this,this._inflate[We]=0,this._inflate[rt]=[],this._inflate.on("error",E_),this._inflate.on("data",Cl)}this._inflate[Yt]=r,this._inflate.write(e),s&&this._inflate.write(I_),this._inflate.flush(()=>{let o=this._inflate[Xt];if(o){this._inflate.close(),this._inflate=null,r(o);return}let i=Sl.concat(this._inflate[rt],this._inflate[We]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[We]=0,this._inflate[rt]=[],s&&this.params[`${n}_no_context_takeover`]&&this._inflate.reset()),r(null,i)})}_compress(e,s,r){let n=this._isServer?"server":"client";if(!this._deflate){let o=`${n}_max_window_bits`,i=typeof this.params[o]!="number"?Cs.Z_DEFAULT_WINDOWBITS:this.params[o];this._deflate=Cs.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:i}),this._deflate[We]=0,this._deflate[rt]=[],this._deflate.on("data",C_)}this._deflate[Yt]=r,this._deflate.write(e),this._deflate.flush(Cs.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let o=Sl.concat(this._deflate[rt],this._deflate[We]);s&&(o=new S_(o.buffer,o.byteOffset,o.length-4)),this._deflate[Yt]=null,this._deflate[We]=0,this._deflate[rt]=[],s&&this.params[`${n}_no_context_takeover`]&&this._deflate.reset(),r(null,o)})}};El.exports=ro;function C_(t){this[rt].push(t),this[We]+=t.length}function Cl(t){if(this[We]+=t.length,this[gr]._maxPayload<1||this[We]<=this[gr]._maxPayload){this[rt].push(t);return}this[Xt]=new RangeError("Max payload size exceeded"),this[Xt].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[Xt][Il]=1009,this.removeListener("data",Cl),this.reset()}function E_(t){if(this[gr]._inflate=null,this[Xt]){this[Yt](this[Xt]);return}t[Il]=1007,this[Yt](t)}});var es=k((wx,yr)=>{"use strict";var{isUtf8:Al}=require("buffer"),{hasBlob:A_}=Ve(),T_=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function $_(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function no(t){let e=t.length,s=0;for(;s<e;)if((t[s]&128)===0)s++;else if((t[s]&224)===192){if(s+1===e||(t[s+1]&192)!==128||(t[s]&254)===192)return!1;s+=2}else if((t[s]&240)===224){if(s+2>=e||(t[s+1]&192)!==128||(t[s+2]&192)!==128||t[s]===224&&(t[s+1]&224)===128||t[s]===237&&(t[s+1]&224)===160)return!1;s+=3}else if((t[s]&248)===240){if(s+3>=e||(t[s+1]&192)!==128||(t[s+2]&192)!==128||(t[s+3]&192)!==128||t[s]===240&&(t[s+1]&240)===128||t[s]===244&&t[s+1]>143||t[s]>244)return!1;s+=4}else return!1;return!0}function U_(t){return A_&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}yr.exports={isBlob:U_,isValidStatusCode:$_,isValidUTF8:no,tokenChars:T_};if(Al)yr.exports.isValidUTF8=function(t){return t.length<24?no(t):Al(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=require("utf-8-validate");yr.exports.isValidUTF8=function(e){return e.length<32?no(e):t(e)}}catch{}});var lo=k((bx,Rl)=>{"use strict";var{Writable:v_}=require("stream"),Tl=Qt(),{BINARY_TYPES:O_,EMPTY_BUFFER:$l,kStatusCode:D_,kWebSocket:R_}=Ve(),{concat:oo,toArrayBuffer:L_,unmask:P_}=Is(),{isValidStatusCode:N_,isValidUTF8:Ul}=es(),_r=Buffer[Symbol.species],Se=0,vl=1,Ol=2,Dl=3,io=4,ao=5,wr=6,co=class extends v_{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||O_[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxBufferedChunks=e.maxBufferedChunks|0,this._maxFragments=e.maxFragments|0,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[R_]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=Se}_write(e,s,r){if(this._opcode===8&&this._state==Se)return r();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){r(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(r)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let r=this._buffers[0];return this._buffers[0]=new _r(r.buffer,r.byteOffset+e,r.length-e),new _r(r.buffer,r.byteOffset,e)}let s=Buffer.allocUnsafe(e);do{let r=this._buffers[0],n=s.length-e;e>=r.length?s.set(this._buffers.shift(),n):(s.set(new Uint8Array(r.buffer,r.byteOffset,e),n),this._buffers[0]=new _r(r.buffer,r.byteOffset+e,r.length-e)),e-=r.length}while(e>0);return s}startLoop(e){this._loop=!0;do switch(this._state){case Se:this.getInfo(e);break;case vl:this.getPayloadLength16(e);break;case Ol:this.getPayloadLength64(e);break;case Dl:this.getMask();break;case io:this.getData(e);break;case ao:case wr:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let s=this.consume(2);if((s[0]&48)!==0){let n=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(n);return}let r=(s[0]&64)===64;if(r&&!this._extensions[Tl.extensionName]){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(this._fin=(s[0]&128)===128,this._opcode=s[0]&15,this._payloadLength=s[1]&127,this._opcode===0){if(r){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(!this._fragmented){let n=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}this._compressed=r}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let n=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(n);return}if(r){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let n=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(n);return}}else{let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(s[1]&128)===128,this._isServer){if(!this._masked){let n=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(n);return}}else if(this._masked){let n=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(n);return}this._payloadLength===126?this._state=vl:this._payloadLength===127?this._state=Ol:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let s=this.consume(8),r=s.readUInt32BE(0);if(r>Math.pow(2,21)-1){let n=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(n);return}this._payloadLength=r*Math.pow(2,32)+s.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let s=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(s);return}this._masked?this._state=Dl:this._state=io}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=io}getData(e){let s=$l;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}s=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&P_(s,this._mask)}if(this._opcode>7){this.controlMessage(s,e);return}if(this._compressed){this._state=ao,this.decompress(s,e);return}if(s.length){if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let r=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");e(r);return}this._messageLength=this._totalPayloadLength,this._fragments.push(s)}this.dataMessage(e)}decompress(e,s){this._extensions[Tl.extensionName].decompress(e,this._fin,(n,o)=>{if(n)return s(n);if(o.length){if(this._messageLength+=o.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let i=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");s(i);return}if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let i=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");s(i);return}this._fragments.push(o)}this.dataMessage(s),this._state===Se&&this.startLoop(s)})}dataMessage(e){if(!this._fin){this._state=Se;return}let s=this._messageLength,r=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let n;this._binaryType==="nodebuffer"?n=oo(r,s):this._binaryType==="arraybuffer"?n=L_(oo(r,s)):this._binaryType==="blob"?n=new Blob(r):n=r,this._allowSynchronousEvents?(this.emit("message",n,!0),this._state=Se):(this._state=wr,setImmediate(()=>{this.emit("message",n,!0),this._state=Se,this.startLoop(e)}))}else{let n=oo(r,s);if(!this._skipUTF8Validation&&!Ul(n)){let o=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(o);return}this._state===ao||this._allowSynchronousEvents?(this.emit("message",n,!1),this._state=Se):(this._state=wr,setImmediate(()=>{this.emit("message",n,!1),this._state=Se,this.startLoop(e)}))}}controlMessage(e,s){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,$l),this.end();else{let r=e.readUInt16BE(0);if(!N_(r)){let o=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");s(o);return}let n=new _r(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!Ul(n)){let o=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");s(o);return}this._loop=!1,this.emit("conclude",r,n),this.end()}this._state=Se;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=Se):(this._state=wr,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=Se,this.startLoop(s)}))}createError(e,s,r,n,o){this._loop=!1,this._errored=!0;let i=new e(r?`Invalid WebSocket frame: ${s}`:s);return Error.captureStackTrace(i,this.createError),i.code=o,i[D_]=n,i}};Rl.exports=co});var po=k((xx,Nl)=>{"use strict";var{Duplex:kx}=require("stream"),{randomFillSync:q_}=require("crypto"),{types:{isUint8Array:j_}}=require("util"),Ll=Qt(),{EMPTY_BUFFER:M_,kWebSocket:G_,NOOP:F_}=Ve(),{isBlob:ts,isValidStatusCode:B_}=es(),{mask:Pl,toBuffer:$t}=Is(),Ie=Symbol("kByteLength"),Z_=Buffer.alloc(4),br=8*1024,Ut,ss=br,Te=0,V_=1,W_=2,uo=class t{constructor(e,s,r){this._extensions=s||{},r&&(this._generateMask=r,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=Te,this.onerror=F_,this[G_]=void 0}static frame(e,s){let r,n=!1,o=2,i=!1;s.mask&&(r=s.maskBuffer||Z_,s.generateMask?s.generateMask(r):(ss===br&&(Ut===void 0&&(Ut=Buffer.alloc(br)),q_(Ut,0,br),ss=0),r[0]=Ut[ss++],r[1]=Ut[ss++],r[2]=Ut[ss++],r[3]=Ut[ss++]),i=(r[0]|r[1]|r[2]|r[3])===0,o=6);let a;typeof e=="string"?(!s.mask||i)&&s[Ie]!==void 0?a=s[Ie]:(e=Buffer.from(e),a=e.length):(a=e.length,n=s.mask&&s.readOnly&&!i);let c=a;a>=65536?(o+=8,c=127):a>125&&(o+=2,c=126);let l=Buffer.allocUnsafe(n?a+o:o);return l[0]=s.fin?s.opcode|128:s.opcode,s.rsv1&&(l[0]|=64),l[1]=c,c===126?l.writeUInt16BE(a,2):c===127&&(l[2]=l[3]=0,l.writeUIntBE(a,4,6)),s.mask?(l[1]|=128,l[o-4]=r[0],l[o-3]=r[1],l[o-2]=r[2],l[o-1]=r[3],i?[l,e]:n?(Pl(e,r,l,o,a),[l]):(Pl(e,r,e,0,a),[l,e])):[l,e]}close(e,s,r,n){let o;if(e===void 0)o=M_;else{if(typeof e!="number"||!B_(e))throw new TypeError("First argument must be a valid error code number");if(s===void 0||!s.length)o=Buffer.allocUnsafe(2),o.writeUInt16BE(e,0);else{let a=Buffer.byteLength(s);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");if(o=Buffer.allocUnsafe(2+a),o.writeUInt16BE(e,0),typeof s=="string")o.write(s,2);else if(j_(s))o.set(s,2);else throw new TypeError("Second argument must be a string or a Uint8Array")}}let i={[Ie]:o.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==Te?this.enqueue([this.dispatch,o,!1,i,n]):this.sendFrame(t.frame(o,i),n)}ping(e,s,r){let n,o;if(typeof e=="string"?(n=Buffer.byteLength(e),o=!1):ts(e)?(n=e.size,o=!1):(e=$t(e),n=e.length,o=$t.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let i={[Ie]:n,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:9,readOnly:o,rsv1:!1};ts(e)?this._state!==Te?this.enqueue([this.getBlobData,e,!1,i,r]):this.getBlobData(e,!1,i,r):this._state!==Te?this.enqueue([this.dispatch,e,!1,i,r]):this.sendFrame(t.frame(e,i),r)}pong(e,s,r){let n,o;if(typeof e=="string"?(n=Buffer.byteLength(e),o=!1):ts(e)?(n=e.size,o=!1):(e=$t(e),n=e.length,o=$t.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let i={[Ie]:n,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:10,readOnly:o,rsv1:!1};ts(e)?this._state!==Te?this.enqueue([this.getBlobData,e,!1,i,r]):this.getBlobData(e,!1,i,r):this._state!==Te?this.enqueue([this.dispatch,e,!1,i,r]):this.sendFrame(t.frame(e,i),r)}send(e,s,r){let n=this._extensions[Ll.extensionName],o=s.binary?2:1,i=s.compress,a,c;typeof e=="string"?(a=Buffer.byteLength(e),c=!1):ts(e)?(a=e.size,c=!1):(e=$t(e),a=e.length,c=$t.readOnly),this._firstFragment?(this._firstFragment=!1,i&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(i=a>=n._threshold),this._compress=i):(i=!1,o=0),s.fin&&(this._firstFragment=!0);let l={[Ie]:a,fin:s.fin,generateMask:this._generateMask,mask:s.mask,maskBuffer:this._maskBuffer,opcode:o,readOnly:c,rsv1:i};ts(e)?this._state!==Te?this.enqueue([this.getBlobData,e,this._compress,l,r]):this.getBlobData(e,this._compress,l,r):this._state!==Te?this.enqueue([this.dispatch,e,this._compress,l,r]):this.dispatch(e,this._compress,l,r)}getBlobData(e,s,r,n){this._bufferedBytes+=r[Ie],this._state=W_,e.arrayBuffer().then(o=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(fo,this,a,n);return}this._bufferedBytes-=r[Ie];let i=$t(o);s?this.dispatch(i,s,r,n):(this._state=Te,this.sendFrame(t.frame(i,r),n),this.dequeue())}).catch(o=>{process.nextTick(K_,this,o,n)})}dispatch(e,s,r,n){if(!s){this.sendFrame(t.frame(e,r),n);return}let o=this._extensions[Ll.extensionName];this._bufferedBytes+=r[Ie],this._state=V_,o.compress(e,r.fin,(i,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");fo(this,c,n);return}this._bufferedBytes-=r[Ie],this._state=Te,r.readOnly=!1,this.sendFrame(t.frame(a,r),n),this.dequeue()})}dequeue(){for(;this._state===Te&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][Ie],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][Ie],this._queue.push(e)}sendFrame(e,s){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],s),this._socket.uncork()):this._socket.write(e[0],s)}};Nl.exports=uo;function fo(t,e,s){typeof s=="function"&&s(e);for(let r=0;r<t._queue.length;r++){let n=t._queue[r],o=n[n.length-1];typeof o=="function"&&o(e)}}function K_(t,e,s){fo(t,e,s),t.onerror(e)}});var Wl=k((Sx,Vl)=>{"use strict";var{kForOnEventAttribute:Es,kListener:mo}=Ve(),ql=Symbol("kCode"),jl=Symbol("kData"),Ml=Symbol("kError"),Gl=Symbol("kMessage"),Fl=Symbol("kReason"),rs=Symbol("kTarget"),Bl=Symbol("kType"),Zl=Symbol("kWasClean"),Ke=class{constructor(e){this[rs]=null,this[Bl]=e}get target(){return this[rs]}get type(){return this[Bl]}};Object.defineProperty(Ke.prototype,"target",{enumerable:!0});Object.defineProperty(Ke.prototype,"type",{enumerable:!0});var vt=class extends Ke{constructor(e,s={}){super(e),this[ql]=s.code===void 0?0:s.code,this[Fl]=s.reason===void 0?"":s.reason,this[Zl]=s.wasClean===void 0?!1:s.wasClean}get code(){return this[ql]}get reason(){return this[Fl]}get wasClean(){return this[Zl]}};Object.defineProperty(vt.prototype,"code",{enumerable:!0});Object.defineProperty(vt.prototype,"reason",{enumerable:!0});Object.defineProperty(vt.prototype,"wasClean",{enumerable:!0});var ns=class extends Ke{constructor(e,s={}){super(e),this[Ml]=s.error===void 0?null:s.error,this[Gl]=s.message===void 0?"":s.message}get error(){return this[Ml]}get message(){return this[Gl]}};Object.defineProperty(ns.prototype,"error",{enumerable:!0});Object.defineProperty(ns.prototype,"message",{enumerable:!0});var As=class extends Ke{constructor(e,s={}){super(e),this[jl]=s.data===void 0?null:s.data}get data(){return this[jl]}};Object.defineProperty(As.prototype,"data",{enumerable:!0});var z_={addEventListener(t,e,s={}){for(let n of this.listeners(t))if(!s[Es]&&n[mo]===e&&!n[Es])return;let r;if(t==="message")r=function(o,i){let a=new As("message",{data:i?o:o.toString()});a[rs]=this,kr(e,this,a)};else if(t==="close")r=function(o,i){let a=new vt("close",{code:o,reason:i.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[rs]=this,kr(e,this,a)};else if(t==="error")r=function(o){let i=new ns("error",{error:o,message:o.message});i[rs]=this,kr(e,this,i)};else if(t==="open")r=function(){let o=new Ke("open");o[rs]=this,kr(e,this,o)};else return;r[Es]=!!s[Es],r[mo]=e,s.once?this.once(t,r):this.on(t,r)},removeEventListener(t,e){for(let s of this.listeners(t))if(s[mo]===e&&!s[Es]){this.removeListener(t,s);break}}};Vl.exports={CloseEvent:vt,ErrorEvent:ns,Event:Ke,EventTarget:z_,MessageEvent:As};function kr(t,e,s){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,s):t.call(e,s)}});var xr=k((Ix,Kl)=>{"use strict";var{tokenChars:Ts}=es();function Ne(t,e,s){t[e]===void 0?t[e]=[s]:t[e].push(s)}function J_(t){let e=Object.create(null),s=Object.create(null),r=!1,n=!1,o=!1,i,a,c=-1,l=-1,u=-1,d=0;for(;d<t.length;d++)if(l=t.charCodeAt(d),i===void 0)if(u===-1&&Ts[l]===1)c===-1&&(c=d);else if(d!==0&&(l===32||l===9))u===-1&&c!==-1&&(u=d);else if(l===59||l===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);u===-1&&(u=d);let h=t.slice(c,u);l===44?(Ne(e,h,s),s=Object.create(null)):i=h,c=u=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);else if(a===void 0)if(u===-1&&Ts[l]===1)c===-1&&(c=d);else if(l===32||l===9)u===-1&&c!==-1&&(u=d);else if(l===59||l===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);u===-1&&(u=d),Ne(s,t.slice(c,u),!0),l===44&&(Ne(e,i,s),s=Object.create(null),i=void 0),c=u=-1}else if(l===61&&c!==-1&&u===-1)a=t.slice(c,d),c=u=-1;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(n){if(Ts[l]!==1)throw new SyntaxError(`Unexpected character at index ${d}`);c===-1?c=d:r||(r=!0),n=!1}else if(o)if(Ts[l]===1)c===-1&&(c=d);else if(l===34&&c!==-1)o=!1,u=d;else if(l===92)n=!0;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(l===34&&t.charCodeAt(d-1)===61)o=!0;else if(u===-1&&Ts[l]===1)c===-1&&(c=d);else if(c!==-1&&(l===32||l===9))u===-1&&(u=d);else if(l===59||l===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);u===-1&&(u=d);let h=t.slice(c,u);r&&(h=h.replace(/\\/g,""),r=!1),Ne(s,a,h),l===44&&(Ne(e,i,s),s=Object.create(null),i=void 0),a=void 0,c=u=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);if(c===-1||o||l===32||l===9)throw new SyntaxError("Unexpected end of input");u===-1&&(u=d);let f=t.slice(c,u);return i===void 0?Ne(e,f,s):(a===void 0?Ne(s,f,!0):r?Ne(s,a,f.replace(/\\/g,"")):Ne(s,a,f),Ne(e,i,s)),e}function H_(t){return Object.keys(t).map(e=>{let s=t[e];return Array.isArray(s)||(s=[s]),s.map(r=>[e].concat(Object.keys(r).map(n=>{let o=r[n];return Array.isArray(o)||(o=[o]),o.map(i=>i===!0?n:`${n}=${i}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Kl.exports={format:H_,parse:J_}});var Er=k((Ax,ou)=>{"use strict";var Y_=require("events"),X_=require("https"),Q_=require("http"),Hl=require("net"),ew=require("tls"),{randomBytes:tw,createHash:sw}=require("crypto"),{Duplex:Cx,Readable:Ex}=require("stream"),{URL:ho}=require("url"),nt=Qt(),rw=lo(),nw=po(),{isBlob:ow}=es(),{BINARY_TYPES:zl,CLOSE_TIMEOUT:iw,EMPTY_BUFFER:Sr,GUID:aw,kForOnEventAttribute:go,kListener:cw,kStatusCode:lw,kWebSocket:oe,NOOP:Yl}=Ve(),{EventTarget:{addEventListener:uw,removeEventListener:dw}}=Wl(),{format:fw,parse:pw}=xr(),{toBuffer:mw}=Is(),Xl=Symbol("kAborted"),yo=[8,13],ze=["CONNECTING","OPEN","CLOSING","CLOSED"],hw=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Q=class t extends Y_{constructor(e,s,r){super(),this._binaryType=zl[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=Sr,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,s===void 0?s=[]:Array.isArray(s)||(typeof s=="object"&&s!==null?(r=s,s=[]):s=[s]),Ql(this,e,s,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){zl.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,s,r){let n=new rw({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:r.maxBufferedChunks,maxFragments:r.maxFragments,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),o=new nw(e,this._extensions,r.generateMask);this._receiver=n,this._sender=o,this._socket=e,n[oe]=this,o[oe]=this,e[oe]=this,n.on("conclude",_w),n.on("drain",ww),n.on("error",bw),n.on("message",kw),n.on("ping",xw),n.on("pong",Sw),o.onerror=Iw,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),s.length>0&&e.unshift(s),e.on("close",su),e.on("data",Cr),e.on("end",ru),e.on("error",nu),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[nt.extensionName]&&this._extensions[nt.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,s){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){_e(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,s,!this._isServer,r=>{r||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),tu(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,s,r){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(r=e,e=s=void 0):typeof s=="function"&&(r=s,s=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){_o(this,e,r);return}s===void 0&&(s=!this._isServer),this._sender.ping(e||Sr,s,r)}pong(e,s,r){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(r=e,e=s=void 0):typeof s=="function"&&(r=s,s=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){_o(this,e,r);return}s===void 0&&(s=!this._isServer),this._sender.pong(e||Sr,s,r)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,s,r){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof s=="function"&&(r=s,s={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){_o(this,e,r);return}let n={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...s};this._extensions[nt.extensionName]||(n.compress=!1),this._sender.send(e||Sr,n,r)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){_e(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(Q,"CONNECTING",{enumerable:!0,value:ze.indexOf("CONNECTING")});Object.defineProperty(Q.prototype,"CONNECTING",{enumerable:!0,value:ze.indexOf("CONNECTING")});Object.defineProperty(Q,"OPEN",{enumerable:!0,value:ze.indexOf("OPEN")});Object.defineProperty(Q.prototype,"OPEN",{enumerable:!0,value:ze.indexOf("OPEN")});Object.defineProperty(Q,"CLOSING",{enumerable:!0,value:ze.indexOf("CLOSING")});Object.defineProperty(Q.prototype,"CLOSING",{enumerable:!0,value:ze.indexOf("CLOSING")});Object.defineProperty(Q,"CLOSED",{enumerable:!0,value:ze.indexOf("CLOSED")});Object.defineProperty(Q.prototype,"CLOSED",{enumerable:!0,value:ze.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(Q.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(Q.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[go])return e[cw];return null},set(e){for(let s of this.listeners(t))if(s[go]){this.removeListener(t,s);break}typeof e=="function"&&this.addEventListener(t,e,{[go]:!0})}})});Q.prototype.addEventListener=uw;Q.prototype.removeEventListener=dw;ou.exports=Q;function Ql(t,e,s,r){let n={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:iw,protocolVersion:yo[1],maxBufferedChunks:1048576,maxFragments:131072,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=n.autoPong,t._closeTimeout=n.closeTimeout,!yo.includes(n.protocolVersion))throw new RangeError(`Unsupported protocol version: ${n.protocolVersion} (supported versions: ${yo.join(", ")})`);let o;if(e instanceof ho)o=e;else try{o=new ho(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}o.protocol==="http:"?o.protocol="ws:":o.protocol==="https:"&&(o.protocol="wss:"),t._url=o.href;let i=o.protocol==="wss:",a=o.protocol==="ws+unix:",c;if(o.protocol!=="ws:"&&!i&&!a?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:a&&!o.pathname?c="The URL's pathname is empty":o.hash&&(c="The URL contains a fragment identifier"),c){let _=new SyntaxError(c);if(t._redirects===0)throw _;Ir(t,_);return}let l=i?443:80,u=tw(16).toString("base64"),d=i?X_.request:Q_.request,f=new Set,h;if(n.createConnection=n.createConnection||(i?yw:gw),n.defaultPort=n.defaultPort||l,n.port=o.port||l,n.host=o.hostname.startsWith("[")?o.hostname.slice(1,-1):o.hostname,n.headers={...n.headers,"Sec-WebSocket-Version":n.protocolVersion,"Sec-WebSocket-Key":u,Connection:"Upgrade",Upgrade:"websocket"},n.path=o.pathname+o.search,n.timeout=n.handshakeTimeout,n.perMessageDeflate&&(h=new nt({...n.perMessageDeflate,isServer:!1,maxPayload:n.maxPayload}),n.headers["Sec-WebSocket-Extensions"]=fw({[nt.extensionName]:h.offer()})),s.length){for(let _ of s){if(typeof _!="string"||!hw.test(_)||f.has(_))throw new SyntaxError("An invalid or duplicated subprotocol was specified");f.add(_)}n.headers["Sec-WebSocket-Protocol"]=s.join(",")}if(n.origin&&(n.protocolVersion<13?n.headers["Sec-WebSocket-Origin"]=n.origin:n.headers.Origin=n.origin),(o.username||o.password)&&(n.auth=`${o.username}:${o.password}`),a){let _=n.path.split(":");n.socketPath=_[0],n.path=_[1]}let g;if(n.followRedirects){if(t._redirects===0){t._originalIpc=a,t._originalSecure=i,t._originalHostOrSocketPath=a?n.socketPath:o.host;let _=r&&r.headers;if(r={...r,headers:{}},_)for(let[w,x]of Object.entries(_))r.headers[w.toLowerCase()]=x}else if(t.listenerCount("redirect")===0){let _=a?t._originalIpc?n.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:o.host===t._originalHostOrSocketPath;(!_||t._originalSecure&&!i)&&(delete n.headers.authorization,delete n.headers.cookie,_||delete n.headers.host,n.auth=void 0)}n.auth&&!r.headers.authorization&&(r.headers.authorization="Basic "+Buffer.from(n.auth).toString("base64")),g=t._req=d(n),t._redirects&&t.emit("redirect",t.url,g)}else g=t._req=d(n);n.timeout&&g.on("timeout",()=>{_e(t,g,"Opening handshake has timed out")}),g.on("error",_=>{g===null||g[Xl]||(g=t._req=null,Ir(t,_))}),g.on("response",_=>{let w=_.headers.location,x=_.statusCode;if(w&&n.followRedirects&&x>=300&&x<400){if(++t._redirects>n.maxRedirects){_e(t,g,"Maximum redirects exceeded");return}g.abort();let P;try{P=new ho(w,e)}catch{let D=new SyntaxError(`Invalid URL: ${w}`);Ir(t,D);return}Ql(t,P,s,r)}else t.emit("unexpected-response",g,_)||_e(t,g,`Unexpected server response: ${_.statusCode}`)}),g.on("upgrade",(_,w,x)=>{if(t.emit("upgrade",_),t.readyState!==Q.CONNECTING)return;g=t._req=null;let P=_.headers.upgrade;if(P===void 0||P.toLowerCase()!=="websocket"){_e(t,w,"Invalid Upgrade header");return}let W=sw("sha1").update(u+aw).digest("base64");if(_.headers["sec-websocket-accept"]!==W){_e(t,w,"Invalid Sec-WebSocket-Accept header");return}let D=_.headers["sec-websocket-protocol"],N;if(D!==void 0?f.size?f.has(D)||(N="Server sent an invalid subprotocol"):N="Server sent a subprotocol but none was requested":f.size&&(N="Server sent no subprotocol"),N){_e(t,w,N);return}D&&(t._protocol=D);let K=_.headers["sec-websocket-extensions"];if(K!==void 0){if(!h){_e(t,w,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let F;try{F=pw(K)}catch{_e(t,w,"Invalid Sec-WebSocket-Extensions header");return}let z=Object.keys(F);if(z.length!==1||z[0]!==nt.extensionName){_e(t,w,"Server indicated an extension that was not requested");return}try{h.accept(F[nt.extensionName])}catch{_e(t,w,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[nt.extensionName]=h}t.setSocket(w,x,{allowSynchronousEvents:n.allowSynchronousEvents,generateMask:n.generateMask,maxBufferedChunks:n.maxBufferedChunks,maxFragments:n.maxFragments,maxPayload:n.maxPayload,skipUTF8Validation:n.skipUTF8Validation})}),n.finishRequest?n.finishRequest(g,t):g.end()}function Ir(t,e){t._readyState=Q.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function gw(t){return t.path=t.socketPath,Hl.connect(t)}function yw(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Hl.isIP(t.host)?"":t.host),ew.connect(t)}function _e(t,e,s){t._readyState=Q.CLOSING;let r=new Error(s);Error.captureStackTrace(r,_e),e.setHeader?(e[Xl]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(Ir,t,r)):(e.destroy(r),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function _o(t,e,s){if(e){let r=ow(e)?e.size:mw(e).length;t._socket?t._sender._bufferedBytes+=r:t._bufferedAmount+=r}if(s){let r=new Error(`WebSocket is not open: readyState ${t.readyState} (${ze[t.readyState]})`);process.nextTick(s,r)}}function _w(t,e){let s=this[oe];s._closeFrameReceived=!0,s._closeMessage=e,s._closeCode=t,s._socket[oe]!==void 0&&(s._socket.removeListener("data",Cr),process.nextTick(eu,s._socket),t===1005?s.close():s.close(t,e))}function ww(){let t=this[oe];t.isPaused||t._socket.resume()}function bw(t){let e=this[oe];e._socket[oe]!==void 0&&(e._socket.removeListener("data",Cr),process.nextTick(eu,e._socket),e.close(t[lw])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Jl(){this[oe].emitClose()}function kw(t,e){this[oe].emit("message",t,e)}function xw(t){let e=this[oe];e._autoPong&&e.pong(t,!this._isServer,Yl),e.emit("ping",t)}function Sw(t){this[oe].emit("pong",t)}function eu(t){t.resume()}function Iw(t){let e=this[oe];e.readyState!==Q.CLOSED&&(e.readyState===Q.OPEN&&(e._readyState=Q.CLOSING,tu(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function tu(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),t._closeTimeout)}function su(){let t=this[oe];if(this.removeListener("close",su),this.removeListener("data",Cr),this.removeListener("end",ru),t._readyState=Q.CLOSING,!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);t._receiver.write(e)}t._receiver.end(),this[oe]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",Jl),t._receiver.on("finish",Jl))}function Cr(t){this[oe]._receiver.write(t)||this.pause()}function ru(){let t=this[oe];t._readyState=Q.CLOSING,t._receiver.end(),this.end()}function nu(){let t=this[oe];this.removeListener("error",nu),this.on("error",Yl),t&&(t._readyState=Q.CLOSING,this.destroy())}});var lu=k(($x,cu)=>{"use strict";var Tx=Er(),{Duplex:Cw}=require("stream");function iu(t){t.emit("close")}function Ew(){!this.destroyed&&this._writableState.finished&&this.destroy()}function au(t){this.removeListener("error",au),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function Aw(t,e){let s=!0,r=new Cw({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(o,i){let a=!i&&r._readableState.objectMode?o.toString():o;r.push(a)||t.pause()}),t.once("error",function(o){r.destroyed||(s=!1,r.destroy(o))}),t.once("close",function(){r.destroyed||r.push(null)}),r._destroy=function(n,o){if(t.readyState===t.CLOSED){o(n),process.nextTick(iu,r);return}let i=!1;t.once("error",function(c){i=!0,o(c)}),t.once("close",function(){i||o(n),process.nextTick(iu,r)}),s&&t.terminate()},r._final=function(n){if(t.readyState===t.CONNECTING){t.once("open",function(){r._final(n)});return}t._socket!==null&&(t._socket._writableState.finished?(n(),r._readableState.endEmitted&&r.destroy()):(t._socket.once("finish",function(){n()}),t.close()))},r._read=function(){t.isPaused&&t.resume()},r._write=function(n,o,i){if(t.readyState===t.CONNECTING){t.once("open",function(){r._write(n,o,i)});return}t.send(n,i)},r.on("end",Ew),r.on("error",au),r}cu.exports=Aw});var wo=k((Ux,uu)=>{"use strict";var{tokenChars:Tw}=es();function $w(t){let e=new Set,s=-1,r=-1,n=0;for(n;n<t.length;n++){let i=t.charCodeAt(n);if(r===-1&&Tw[i]===1)s===-1&&(s=n);else if(n!==0&&(i===32||i===9))r===-1&&s!==-1&&(r=n);else if(i===44){if(s===-1)throw new SyntaxError(`Unexpected character at index ${n}`);r===-1&&(r=n);let a=t.slice(s,r);if(e.has(a))throw new SyntaxError(`The "${a}" subprotocol is duplicated`);e.add(a),s=r=-1}else throw new SyntaxError(`Unexpected character at index ${n}`)}if(s===-1||r!==-1)throw new SyntaxError("Unexpected end of input");let o=t.slice(s,n);if(e.has(o))throw new SyntaxError(`The "${o}" subprotocol is duplicated`);return e.add(o),e}uu.exports={parse:$w}});var yu=k((Ox,gu)=>{"use strict";var Uw=require("events"),Ar=require("http"),{Duplex:vx}=require("stream"),{createHash:vw}=require("crypto"),du=xr(),Ot=Qt(),Ow=wo(),Dw=Er(),{CLOSE_TIMEOUT:Rw,GUID:Lw,kWebSocket:Pw}=Ve(),Nw=/^[+/0-9A-Za-z]{22}==$/,fu=0,pu=1,hu=2,bo=class extends Uw{constructor(e,s){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:1024*1024,maxFragments:128*1024,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Rw,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Dw,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=Ar.createServer((r,n)=>{let o=Ar.STATUS_CODES[426];n.writeHead(426,{"Content-Length":o.length,"Content-Type":"text/plain"}),n.end(o)}),this._server.listen(e.port,e.host,e.backlog,s)):e.server&&(this._server=e.server),this._server){let r=this.emit.bind(this,"connection");this._removeListeners=qw(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(n,o,i)=>{this.handleUpgrade(n,o,i,r)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=fu}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===hu){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick($s,this);return}if(e&&this.once("close",e),this._state!==pu)if(this._state=pu,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick($s,this):process.nextTick($s,this);else{let s=this._server;this._removeListeners(),this._removeListeners=this._server=null,s.close(()=>{$s(this)})}}shouldHandle(e){if(this.options.path){let s=e.url.indexOf("?");if((s!==-1?e.url.slice(0,s):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,s,r,n){s.on("error",mu);let o=e.headers["sec-websocket-key"],i=e.headers.upgrade,a=+e.headers["sec-websocket-version"];if(e.method!=="GET"){Dt(this,e,s,405,"Invalid HTTP method");return}if(i===void 0||i.toLowerCase()!=="websocket"){Dt(this,e,s,400,"Invalid Upgrade header");return}if(o===void 0||!Nw.test(o)){Dt(this,e,s,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){Dt(this,e,s,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){Us(s,400);return}let c=e.headers["sec-websocket-protocol"],l=new Set;if(c!==void 0)try{l=Ow.parse(c)}catch{Dt(this,e,s,400,"Invalid Sec-WebSocket-Protocol header");return}let u=e.headers["sec-websocket-extensions"],d={};if(this.options.perMessageDeflate&&u!==void 0){let f=new Ot({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let h=du.parse(u);h[Ot.extensionName]&&(f.accept(h[Ot.extensionName]),d[Ot.extensionName]=f)}catch{Dt(this,e,s,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let f={origin:e.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(f,(h,g,_,w)=>{if(!h)return Us(s,g||401,_,w);this.completeUpgrade(d,o,l,e,s,r,n)});return}if(!this.options.verifyClient(f))return Us(s,401)}this.completeUpgrade(d,o,l,e,s,r,n)}completeUpgrade(e,s,r,n,o,i,a){if(!o.readable||!o.writable)return o.destroy();if(o[Pw])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>fu)return Us(o,503);let l=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${vw("sha1").update(s+Lw).digest("base64")}`],u=new this.options.WebSocket(null,void 0,this.options);if(r.size){let d=this.options.handleProtocols?this.options.handleProtocols(r,n):r.values().next().value;d&&(l.push(`Sec-WebSocket-Protocol: ${d}`),u._protocol=d)}if(e[Ot.extensionName]){let d=e[Ot.extensionName].params,f=du.format({[Ot.extensionName]:[d]});l.push(`Sec-WebSocket-Extensions: ${f}`),u._extensions=e}this.emit("headers",l,n),o.write(l.concat(`\r
|
|
497
|
+
`;f.stdin.write(w),f.stdin.end()})}function c_(t,e,s){let r;try{r=JSON.parse(t)}catch{return null}if(!r||typeof r!="object")return null;let n=r.type;if(n==="system"&&r.session_id&&!e.sessionId&&(e.sessionId=r.session_id),n==="assistant"){let o=r.message||{},i=Array.isArray(o.content)?o.content:[];for(let a of i)if(a.type==="text"&&a.text)e.pendingText+=a.text;else if(a.type==="thinking"&&a.thinking)e.pendingThinking+=a.thinking;else if(a.type==="tool_use"){let c=pr(e),l=++e.seq;return c.push({seq:l,type:"tool_use",tool:a.name||"",input:a.input||{}}),a.id&&(e.callIdToTool[a.id]=a.name||""),s&&s({type:"tool_use",tool:a.name||"",input:a.input||{}}),c.length?c:null}return null}if(n==="tool_result"){let o=pr(e),i=++e.seq,a="",c=r.content;typeof c=="string"?a=c:Array.isArray(c)&&(a=c.map(u=>u.text||u.content||"").join("")),a.length>8192&&(a=a.slice(0,8192));let l=r.tool_name||(r.tool_use_id?e.callIdToTool[r.tool_use_id]:"")||"";return o.push({seq:i,type:"tool_result",tool:l,output:a}),s&&s({type:"tool_result",tool:l,output:a}),o.length?o:null}if(n==="result"){let o=pr(e),i=++e.seq,a=r.result||r.content||"";return a&&(o.push({seq:i,type:"text",content:a}),e.finalOutput=a),s&&s({type:"result",content:a}),o.length?o:null}return null}function pr(t){let e=[];return t.pendingThinking&&(e.push({seq:++t.seq,type:"thinking",content:t.pendingThinking}),t.pendingThinking=""),t.pendingText&&(e.push({seq:++t.seq,type:"text",content:t.pendingText}),t.pendingText=""),e}async function zn(t,e,s,r,n){try{await t.taskFail(e,{error:s,sessionId:r,workDir:n})}catch(o){}}function l_(t,e,s,r,n){let o=new Set(["completed","failed","cancelled"]),i=5e3,a=async()=>{if(!r.aborted){try{let l=(await t.taskStatus(e))?.status||"";if(o.has(l)){n(`[task ${s}] server status=${l}, interrupting agent`),r.dispatchEvent(new Event("abort"));return}}catch(c){if(c.isTaskNotFound){n(`[task ${s}] task gone server-side, interrupting agent`),r.dispatchEvent(new Event("abort"));return}}r.aborted||setTimeout(a,i)}};setTimeout(a,i)}cl.exports={runTask:n_,getActiveWorkdirs:r_}});var Yn=k((fx,ll)=>{var{runTask:u_}=Jn(),Hn=class{constructor(e,s,r,n){this.cfg=e,this.client=s,this.runtimeId=r,this.log=n,this._running=!1,this._taskCount=0,this._slotCounter=0,this._wakeupResolve=null}get activeTaskCount(){return this._taskCount}start(e){this._running=!0,this._loop(e)}wakeup(){this._wakeupResolve&&(this._wakeupResolve(),this._wakeupResolve=null)}async _loop(e){for(this.log(`[poller ${this.runtimeId.slice(0,8)}] started`);this._running&&(!e||!e.aborted);){try{if(this._taskCount>=this.cfg.maxConcurrentTasks){this.log(`[poller ${this.runtimeId.slice(0,8)}] at capacity (${this._taskCount}/${this.cfg.maxConcurrentTasks}), sleeping`),await this._sleep(e);continue}this.log(`[poller ${this.runtimeId.slice(0,8)}] claiming task (active=${this._taskCount})`);let s=await this.client.claimTask(this.runtimeId);if(s){let r=this._slotCounter++;this._taskCount++;let n=s.id?s.id.slice(0,8):"?",o=s.issue_id||s.issueId||"";this.log(`[poller ${this.runtimeId.slice(0,8)}] claimed task=${n} issue=${o} slot=${r} (active=${this._taskCount})`),this._runTask(s,r).finally(()=>{this._taskCount--,this.log(`[poller ${this.runtimeId.slice(0,8)}] task=${n} finished (active=${this._taskCount})`)});continue}else this.log(`[poller ${this.runtimeId.slice(0,8)}] no task available`)}catch(s){this.log(`[poller ${this.runtimeId.slice(0,8)}] claim error: ${s.message}`)}await this._sleep(e)}this.log(`[poller ${this.runtimeId.slice(0,8)}] stopped`)}_sleep(e){return new Promise(s=>{this._wakeupResolve=s;let r=d_(this.cfg.pollInterval||3e4),n=setTimeout(()=>{this._wakeupResolve=null,s()},r),o=()=>{clearTimeout(n),this._wakeupResolve=null,s()};e&&e.addEventListener("abort",o,{once:!0})})}async _runTask(e,s){try{await u_(this.cfg,this.client,e,this.log,s)}catch(r){this.log(`[poller ${this.runtimeId.slice(0,8)}] task ${e.id} uncaught: ${r.message}`)}}stop(){this._running=!1,this.wakeup()}};function d_(t){return Math.max(1e3,t+(Math.random()-.5)*t*.2)}ll.exports={Poller:Hn}});var dl=k((px,ul)=>{var f_=require("https"),p_=require("http"),{URL:m_}=require("url"),h_={claude:[{id:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",provider:"anthropic",default:!0},{id:"claude-opus-4-8",label:"Claude Opus 4.8",provider:"anthropic"},{id:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5",provider:"anthropic"}],codex:[{id:"gpt-5.5",label:"GPT-5.5",provider:"openai",default:!0},{id:"o3",label:"o3",provider:"openai"}]};async function g_(t,e){let s=(t||"https://api.makecoder.com/v1").replace(/\/+$/,""),r=new m_(`${s}/claudeproxy/v1/models`),n=r.protocol==="http:"?p_:f_;return new Promise(o=>{let i={"Content-Type":"application/json"};e&&(i.Authorization=`Bearer ${e}`);let a=n.request({hostname:r.hostname,port:r.port||(r.protocol==="http:"?80:443),path:r.pathname+r.search,method:"GET",headers:i,timeout:5e3},c=>{let l="";c.on("data",u=>l+=u),c.on("end",()=>{try{let u=JSON.parse(l);if(u.code===0&&Array.isArray(u.data?.models)){let d=u.data.models.filter(f=>f.id).sort((f,h)=>f.id.localeCompare(h.id)).map((f,h)=>({id:f.id,label:f.name??f.id,provider:f.provider||"anthropic",...h===0?{default:!0}:{}}));o(d)}else o(null)}catch{o(null)}})});a.on("error",()=>o(null)),a.on("timeout",()=>{a.destroy(),o(null)}),a.end()})}async function y_(t,e,s,r,n,o){n(`[model-list] runtime=${e} request=${s} provider=${r}`);let i=null;if(r==="claude"&&(i=await g_(o||t.serverUrl,t.token),n(i?`[model-list] fetched ${i.length} models from API`:"[model-list] API unavailable, using fallback list")),i||(i=h_[r]||null),!i){await t.reportModelListResult(e,s,{status:"failed",error:`no model catalog for provider "${r}"`});return}try{await t.reportModelListResult(e,s,{status:"completed",models:i,supported:!0}),n(`[model-list] reported ${i.length} models for runtime=${e}`)}catch(a){n(`[model-list] report failed: ${a.message}`)}}ul.exports={handleModelList:y_}});var ml=k((mx,pl)=>{var{handleModelList:__}=dl(),Xn=class{constructor(e,s,r,n,o,i){this.cfg=e,this.client=s,this.getRuntimeIds=r,this.log=n,this.onRuntimeGone=o,this.getRuntimeProvider=i||(()=>"claude"),this._timer=null,this._beatCount=0}start(e){let s=this.cfg.heartbeatInterval||15e3,r=async()=>{if(e&&e.aborted)return;let n=this.getRuntimeIds();this._beatCount++;for(let o of n)try{let i=await this.client.heartbeat(o);if(i&&i.runtime_gone?(this.log(`[heartbeat] runtime ${o} gone, re-registering`),this.onRuntimeGone&&this.onRuntimeGone(o)):this._beatCount%10===0&&this.log(`[heartbeat] ok runtime=${o.slice(0,8)} count=${this._beatCount}`),i&&i.pending_model_list){let a=this.getRuntimeProvider(o);this.log(`[heartbeat] pending_model_list runtime=${o.slice(0,8)} requestId=${i.pending_model_list.id}`),__(this.client,o,i.pending_model_list.id,a,this.log,this.cfg.coderBaseUrl).catch(c=>this.log(`[heartbeat] model-list error: ${c.message}`))}}catch(i){this.log(`[heartbeat] error for ${o}: ${i.message}`)}(!e||!e.aborted)&&(this._timer=setTimeout(r,fl(s)))};this._timer=setTimeout(r,fl(s))}stop(){this._timer&&(clearTimeout(this._timer),this._timer=null)}};function fl(t){return Math.max(1e3,t+(Math.random()-.5)*t*.2)}pl.exports={Heartbeat:Xn}});var We=k((hx,yl)=>{"use strict";var hl=["nodebuffer","arraybuffer","fragments"],gl=typeof Blob<"u";gl&&hl.push("blob");yl.exports={BINARY_TYPES:hl,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:gl,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var Is=k((gx,mr)=>{"use strict";var{EMPTY_BUFFER:w_}=We(),Qn=Buffer[Symbol.species];function b_(t,e){if(t.length===0)return w_;if(t.length===1)return t[0];let s=Buffer.allocUnsafe(e),r=0;for(let n=0;n<t.length;n++){let o=t[n];s.set(o,r),r+=o.length}return r<e?new Qn(s.buffer,s.byteOffset,r):s}function _l(t,e,s,r,n){for(let o=0;o<n;o++)s[r+o]=t[o]^e[o&3]}function wl(t,e){for(let s=0;s<t.length;s++)t[s]^=e[s&3]}function k_(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function eo(t){if(eo.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new Qn(t):ArrayBuffer.isView(t)?e=new Qn(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),eo.readOnly=!1),e}mr.exports={concat:b_,mask:_l,toArrayBuffer:k_,toBuffer:eo,unmask:wl};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");mr.exports.mask=function(e,s,r,n,o){o<48?_l(e,s,r,n,o):t.mask(e,s,r,n,o)},mr.exports.unmask=function(e,s){e.length<32?wl(e,s):t.unmask(e,s)}}catch{}});var xl=k((yx,kl)=>{"use strict";var bl=Symbol("kDone"),to=Symbol("kRun"),so=class{constructor(e){this[bl]=()=>{this.pending--,this[to]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[to]()}[to](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[bl])}}};kl.exports=so});var Qt=k((_x,El)=>{"use strict";var Cs=require("zlib"),Sl=Is(),x_=xl(),{kStatusCode:Il}=We(),S_=Buffer[Symbol.species],I_=Buffer.from([0,0,255,255]),gr=Symbol("permessage-deflate"),Ke=Symbol("total-length"),Yt=Symbol("callback"),rt=Symbol("buffers"),Xt=Symbol("error"),hr,ro=class{constructor(e){if(this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!hr){let s=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;hr=new x_(s)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[Yt];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let s=this._options,r=e.find(n=>!(s.serverNoContextTakeover===!1&&n.server_no_context_takeover||n.server_max_window_bits&&(s.serverMaxWindowBits===!1||typeof s.serverMaxWindowBits=="number"&&s.serverMaxWindowBits>n.server_max_window_bits)||typeof s.clientMaxWindowBits=="number"&&!n.client_max_window_bits));if(!r)throw new Error("None of the extension offers can be accepted");return s.serverNoContextTakeover&&(r.server_no_context_takeover=!0),s.clientNoContextTakeover&&(r.client_no_context_takeover=!0),typeof s.serverMaxWindowBits=="number"&&(r.server_max_window_bits=s.serverMaxWindowBits),typeof s.clientMaxWindowBits=="number"?r.client_max_window_bits=s.clientMaxWindowBits:(r.client_max_window_bits===!0||s.clientMaxWindowBits===!1)&&delete r.client_max_window_bits,r}acceptAsClient(e){let s=e[0];if(this._options.clientNoContextTakeover===!1&&s.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!s.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(s.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&s.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return s}normalizeParams(e){return e.forEach(s=>{Object.keys(s).forEach(r=>{let n=s[r];if(n.length>1)throw new Error(`Parameter "${r}" must have only a single value`);if(n=n[0],r==="client_max_window_bits"){if(n!==!0){let o=+n;if(!Number.isInteger(o)||o<8||o>15)throw new TypeError(`Invalid value for parameter "${r}": ${n}`);n=o}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${r}": ${n}`)}else if(r==="server_max_window_bits"){let o=+n;if(!Number.isInteger(o)||o<8||o>15)throw new TypeError(`Invalid value for parameter "${r}": ${n}`);n=o}else if(r==="client_no_context_takeover"||r==="server_no_context_takeover"){if(n!==!0)throw new TypeError(`Invalid value for parameter "${r}": ${n}`)}else throw new Error(`Unknown parameter "${r}"`);s[r]=n})}),e}decompress(e,s,r){hr.add(n=>{this._decompress(e,s,(o,i)=>{n(),r(o,i)})})}compress(e,s,r){hr.add(n=>{this._compress(e,s,(o,i)=>{n(),r(o,i)})})}_decompress(e,s,r){let n=this._isServer?"client":"server";if(!this._inflate){let o=`${n}_max_window_bits`,i=typeof this.params[o]!="number"?Cs.Z_DEFAULT_WINDOWBITS:this.params[o];this._inflate=Cs.createInflateRaw({...this._options.zlibInflateOptions,windowBits:i}),this._inflate[gr]=this,this._inflate[Ke]=0,this._inflate[rt]=[],this._inflate.on("error",E_),this._inflate.on("data",Cl)}this._inflate[Yt]=r,this._inflate.write(e),s&&this._inflate.write(I_),this._inflate.flush(()=>{let o=this._inflate[Xt];if(o){this._inflate.close(),this._inflate=null,r(o);return}let i=Sl.concat(this._inflate[rt],this._inflate[Ke]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Ke]=0,this._inflate[rt]=[],s&&this.params[`${n}_no_context_takeover`]&&this._inflate.reset()),r(null,i)})}_compress(e,s,r){let n=this._isServer?"server":"client";if(!this._deflate){let o=`${n}_max_window_bits`,i=typeof this.params[o]!="number"?Cs.Z_DEFAULT_WINDOWBITS:this.params[o];this._deflate=Cs.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:i}),this._deflate[Ke]=0,this._deflate[rt]=[],this._deflate.on("data",C_)}this._deflate[Yt]=r,this._deflate.write(e),this._deflate.flush(Cs.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let o=Sl.concat(this._deflate[rt],this._deflate[Ke]);s&&(o=new S_(o.buffer,o.byteOffset,o.length-4)),this._deflate[Yt]=null,this._deflate[Ke]=0,this._deflate[rt]=[],s&&this.params[`${n}_no_context_takeover`]&&this._deflate.reset(),r(null,o)})}};El.exports=ro;function C_(t){this[rt].push(t),this[Ke]+=t.length}function Cl(t){if(this[Ke]+=t.length,this[gr]._maxPayload<1||this[Ke]<=this[gr]._maxPayload){this[rt].push(t);return}this[Xt]=new RangeError("Max payload size exceeded"),this[Xt].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[Xt][Il]=1009,this.removeListener("data",Cl),this.reset()}function E_(t){if(this[gr]._inflate=null,this[Xt]){this[Yt](this[Xt]);return}t[Il]=1007,this[Yt](t)}});var es=k((wx,yr)=>{"use strict";var{isUtf8:Al}=require("buffer"),{hasBlob:A_}=We(),T_=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function $_(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function no(t){let e=t.length,s=0;for(;s<e;)if((t[s]&128)===0)s++;else if((t[s]&224)===192){if(s+1===e||(t[s+1]&192)!==128||(t[s]&254)===192)return!1;s+=2}else if((t[s]&240)===224){if(s+2>=e||(t[s+1]&192)!==128||(t[s+2]&192)!==128||t[s]===224&&(t[s+1]&224)===128||t[s]===237&&(t[s+1]&224)===160)return!1;s+=3}else if((t[s]&248)===240){if(s+3>=e||(t[s+1]&192)!==128||(t[s+2]&192)!==128||(t[s+3]&192)!==128||t[s]===240&&(t[s+1]&240)===128||t[s]===244&&t[s+1]>143||t[s]>244)return!1;s+=4}else return!1;return!0}function U_(t){return A_&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}yr.exports={isBlob:U_,isValidStatusCode:$_,isValidUTF8:no,tokenChars:T_};if(Al)yr.exports.isValidUTF8=function(t){return t.length<24?no(t):Al(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=require("utf-8-validate");yr.exports.isValidUTF8=function(e){return e.length<32?no(e):t(e)}}catch{}});var lo=k((bx,Rl)=>{"use strict";var{Writable:v_}=require("stream"),Tl=Qt(),{BINARY_TYPES:O_,EMPTY_BUFFER:$l,kStatusCode:D_,kWebSocket:R_}=We(),{concat:oo,toArrayBuffer:L_,unmask:P_}=Is(),{isValidStatusCode:N_,isValidUTF8:Ul}=es(),_r=Buffer[Symbol.species],Ie=0,vl=1,Ol=2,Dl=3,io=4,ao=5,wr=6,co=class extends v_{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||O_[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxBufferedChunks=e.maxBufferedChunks|0,this._maxFragments=e.maxFragments|0,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[R_]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=Ie}_write(e,s,r){if(this._opcode===8&&this._state==Ie)return r();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){r(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(r)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let r=this._buffers[0];return this._buffers[0]=new _r(r.buffer,r.byteOffset+e,r.length-e),new _r(r.buffer,r.byteOffset,e)}let s=Buffer.allocUnsafe(e);do{let r=this._buffers[0],n=s.length-e;e>=r.length?s.set(this._buffers.shift(),n):(s.set(new Uint8Array(r.buffer,r.byteOffset,e),n),this._buffers[0]=new _r(r.buffer,r.byteOffset+e,r.length-e)),e-=r.length}while(e>0);return s}startLoop(e){this._loop=!0;do switch(this._state){case Ie:this.getInfo(e);break;case vl:this.getPayloadLength16(e);break;case Ol:this.getPayloadLength64(e);break;case Dl:this.getMask();break;case io:this.getData(e);break;case ao:case wr:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let s=this.consume(2);if((s[0]&48)!==0){let n=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(n);return}let r=(s[0]&64)===64;if(r&&!this._extensions[Tl.extensionName]){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(this._fin=(s[0]&128)===128,this._opcode=s[0]&15,this._payloadLength=s[1]&127,this._opcode===0){if(r){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(!this._fragmented){let n=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}this._compressed=r}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let n=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(n);return}if(r){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let n=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(n);return}}else{let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(s[1]&128)===128,this._isServer){if(!this._masked){let n=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(n);return}}else if(this._masked){let n=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(n);return}this._payloadLength===126?this._state=vl:this._payloadLength===127?this._state=Ol:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let s=this.consume(8),r=s.readUInt32BE(0);if(r>Math.pow(2,21)-1){let n=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(n);return}this._payloadLength=r*Math.pow(2,32)+s.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let s=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(s);return}this._masked?this._state=Dl:this._state=io}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=io}getData(e){let s=$l;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}s=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&P_(s,this._mask)}if(this._opcode>7){this.controlMessage(s,e);return}if(this._compressed){this._state=ao,this.decompress(s,e);return}if(s.length){if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let r=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");e(r);return}this._messageLength=this._totalPayloadLength,this._fragments.push(s)}this.dataMessage(e)}decompress(e,s){this._extensions[Tl.extensionName].decompress(e,this._fin,(n,o)=>{if(n)return s(n);if(o.length){if(this._messageLength+=o.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let i=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");s(i);return}if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let i=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");s(i);return}this._fragments.push(o)}this.dataMessage(s),this._state===Ie&&this.startLoop(s)})}dataMessage(e){if(!this._fin){this._state=Ie;return}let s=this._messageLength,r=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let n;this._binaryType==="nodebuffer"?n=oo(r,s):this._binaryType==="arraybuffer"?n=L_(oo(r,s)):this._binaryType==="blob"?n=new Blob(r):n=r,this._allowSynchronousEvents?(this.emit("message",n,!0),this._state=Ie):(this._state=wr,setImmediate(()=>{this.emit("message",n,!0),this._state=Ie,this.startLoop(e)}))}else{let n=oo(r,s);if(!this._skipUTF8Validation&&!Ul(n)){let o=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(o);return}this._state===ao||this._allowSynchronousEvents?(this.emit("message",n,!1),this._state=Ie):(this._state=wr,setImmediate(()=>{this.emit("message",n,!1),this._state=Ie,this.startLoop(e)}))}}controlMessage(e,s){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,$l),this.end();else{let r=e.readUInt16BE(0);if(!N_(r)){let o=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");s(o);return}let n=new _r(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!Ul(n)){let o=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");s(o);return}this._loop=!1,this.emit("conclude",r,n),this.end()}this._state=Ie;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=Ie):(this._state=wr,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=Ie,this.startLoop(s)}))}createError(e,s,r,n,o){this._loop=!1,this._errored=!0;let i=new e(r?`Invalid WebSocket frame: ${s}`:s);return Error.captureStackTrace(i,this.createError),i.code=o,i[D_]=n,i}};Rl.exports=co});var po=k((xx,Nl)=>{"use strict";var{Duplex:kx}=require("stream"),{randomFillSync:q_}=require("crypto"),{types:{isUint8Array:j_}}=require("util"),Ll=Qt(),{EMPTY_BUFFER:M_,kWebSocket:G_,NOOP:F_}=We(),{isBlob:ts,isValidStatusCode:B_}=es(),{mask:Pl,toBuffer:$t}=Is(),Ce=Symbol("kByteLength"),Z_=Buffer.alloc(4),br=8*1024,Ut,ss=br,$e=0,V_=1,W_=2,uo=class t{constructor(e,s,r){this._extensions=s||{},r&&(this._generateMask=r,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=$e,this.onerror=F_,this[G_]=void 0}static frame(e,s){let r,n=!1,o=2,i=!1;s.mask&&(r=s.maskBuffer||Z_,s.generateMask?s.generateMask(r):(ss===br&&(Ut===void 0&&(Ut=Buffer.alloc(br)),q_(Ut,0,br),ss=0),r[0]=Ut[ss++],r[1]=Ut[ss++],r[2]=Ut[ss++],r[3]=Ut[ss++]),i=(r[0]|r[1]|r[2]|r[3])===0,o=6);let a;typeof e=="string"?(!s.mask||i)&&s[Ce]!==void 0?a=s[Ce]:(e=Buffer.from(e),a=e.length):(a=e.length,n=s.mask&&s.readOnly&&!i);let c=a;a>=65536?(o+=8,c=127):a>125&&(o+=2,c=126);let l=Buffer.allocUnsafe(n?a+o:o);return l[0]=s.fin?s.opcode|128:s.opcode,s.rsv1&&(l[0]|=64),l[1]=c,c===126?l.writeUInt16BE(a,2):c===127&&(l[2]=l[3]=0,l.writeUIntBE(a,4,6)),s.mask?(l[1]|=128,l[o-4]=r[0],l[o-3]=r[1],l[o-2]=r[2],l[o-1]=r[3],i?[l,e]:n?(Pl(e,r,l,o,a),[l]):(Pl(e,r,e,0,a),[l,e])):[l,e]}close(e,s,r,n){let o;if(e===void 0)o=M_;else{if(typeof e!="number"||!B_(e))throw new TypeError("First argument must be a valid error code number");if(s===void 0||!s.length)o=Buffer.allocUnsafe(2),o.writeUInt16BE(e,0);else{let a=Buffer.byteLength(s);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");if(o=Buffer.allocUnsafe(2+a),o.writeUInt16BE(e,0),typeof s=="string")o.write(s,2);else if(j_(s))o.set(s,2);else throw new TypeError("Second argument must be a string or a Uint8Array")}}let i={[Ce]:o.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==$e?this.enqueue([this.dispatch,o,!1,i,n]):this.sendFrame(t.frame(o,i),n)}ping(e,s,r){let n,o;if(typeof e=="string"?(n=Buffer.byteLength(e),o=!1):ts(e)?(n=e.size,o=!1):(e=$t(e),n=e.length,o=$t.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let i={[Ce]:n,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:9,readOnly:o,rsv1:!1};ts(e)?this._state!==$e?this.enqueue([this.getBlobData,e,!1,i,r]):this.getBlobData(e,!1,i,r):this._state!==$e?this.enqueue([this.dispatch,e,!1,i,r]):this.sendFrame(t.frame(e,i),r)}pong(e,s,r){let n,o;if(typeof e=="string"?(n=Buffer.byteLength(e),o=!1):ts(e)?(n=e.size,o=!1):(e=$t(e),n=e.length,o=$t.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let i={[Ce]:n,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:10,readOnly:o,rsv1:!1};ts(e)?this._state!==$e?this.enqueue([this.getBlobData,e,!1,i,r]):this.getBlobData(e,!1,i,r):this._state!==$e?this.enqueue([this.dispatch,e,!1,i,r]):this.sendFrame(t.frame(e,i),r)}send(e,s,r){let n=this._extensions[Ll.extensionName],o=s.binary?2:1,i=s.compress,a,c;typeof e=="string"?(a=Buffer.byteLength(e),c=!1):ts(e)?(a=e.size,c=!1):(e=$t(e),a=e.length,c=$t.readOnly),this._firstFragment?(this._firstFragment=!1,i&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(i=a>=n._threshold),this._compress=i):(i=!1,o=0),s.fin&&(this._firstFragment=!0);let l={[Ce]:a,fin:s.fin,generateMask:this._generateMask,mask:s.mask,maskBuffer:this._maskBuffer,opcode:o,readOnly:c,rsv1:i};ts(e)?this._state!==$e?this.enqueue([this.getBlobData,e,this._compress,l,r]):this.getBlobData(e,this._compress,l,r):this._state!==$e?this.enqueue([this.dispatch,e,this._compress,l,r]):this.dispatch(e,this._compress,l,r)}getBlobData(e,s,r,n){this._bufferedBytes+=r[Ce],this._state=W_,e.arrayBuffer().then(o=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(fo,this,a,n);return}this._bufferedBytes-=r[Ce];let i=$t(o);s?this.dispatch(i,s,r,n):(this._state=$e,this.sendFrame(t.frame(i,r),n),this.dequeue())}).catch(o=>{process.nextTick(K_,this,o,n)})}dispatch(e,s,r,n){if(!s){this.sendFrame(t.frame(e,r),n);return}let o=this._extensions[Ll.extensionName];this._bufferedBytes+=r[Ce],this._state=V_,o.compress(e,r.fin,(i,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");fo(this,c,n);return}this._bufferedBytes-=r[Ce],this._state=$e,r.readOnly=!1,this.sendFrame(t.frame(a,r),n),this.dequeue()})}dequeue(){for(;this._state===$e&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][Ce],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][Ce],this._queue.push(e)}sendFrame(e,s){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],s),this._socket.uncork()):this._socket.write(e[0],s)}};Nl.exports=uo;function fo(t,e,s){typeof s=="function"&&s(e);for(let r=0;r<t._queue.length;r++){let n=t._queue[r],o=n[n.length-1];typeof o=="function"&&o(e)}}function K_(t,e,s){fo(t,e,s),t.onerror(e)}});var Wl=k((Sx,Vl)=>{"use strict";var{kForOnEventAttribute:Es,kListener:mo}=We(),ql=Symbol("kCode"),jl=Symbol("kData"),Ml=Symbol("kError"),Gl=Symbol("kMessage"),Fl=Symbol("kReason"),rs=Symbol("kTarget"),Bl=Symbol("kType"),Zl=Symbol("kWasClean"),ze=class{constructor(e){this[rs]=null,this[Bl]=e}get target(){return this[rs]}get type(){return this[Bl]}};Object.defineProperty(ze.prototype,"target",{enumerable:!0});Object.defineProperty(ze.prototype,"type",{enumerable:!0});var vt=class extends ze{constructor(e,s={}){super(e),this[ql]=s.code===void 0?0:s.code,this[Fl]=s.reason===void 0?"":s.reason,this[Zl]=s.wasClean===void 0?!1:s.wasClean}get code(){return this[ql]}get reason(){return this[Fl]}get wasClean(){return this[Zl]}};Object.defineProperty(vt.prototype,"code",{enumerable:!0});Object.defineProperty(vt.prototype,"reason",{enumerable:!0});Object.defineProperty(vt.prototype,"wasClean",{enumerable:!0});var ns=class extends ze{constructor(e,s={}){super(e),this[Ml]=s.error===void 0?null:s.error,this[Gl]=s.message===void 0?"":s.message}get error(){return this[Ml]}get message(){return this[Gl]}};Object.defineProperty(ns.prototype,"error",{enumerable:!0});Object.defineProperty(ns.prototype,"message",{enumerable:!0});var As=class extends ze{constructor(e,s={}){super(e),this[jl]=s.data===void 0?null:s.data}get data(){return this[jl]}};Object.defineProperty(As.prototype,"data",{enumerable:!0});var z_={addEventListener(t,e,s={}){for(let n of this.listeners(t))if(!s[Es]&&n[mo]===e&&!n[Es])return;let r;if(t==="message")r=function(o,i){let a=new As("message",{data:i?o:o.toString()});a[rs]=this,kr(e,this,a)};else if(t==="close")r=function(o,i){let a=new vt("close",{code:o,reason:i.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[rs]=this,kr(e,this,a)};else if(t==="error")r=function(o){let i=new ns("error",{error:o,message:o.message});i[rs]=this,kr(e,this,i)};else if(t==="open")r=function(){let o=new ze("open");o[rs]=this,kr(e,this,o)};else return;r[Es]=!!s[Es],r[mo]=e,s.once?this.once(t,r):this.on(t,r)},removeEventListener(t,e){for(let s of this.listeners(t))if(s[mo]===e&&!s[Es]){this.removeListener(t,s);break}}};Vl.exports={CloseEvent:vt,ErrorEvent:ns,Event:ze,EventTarget:z_,MessageEvent:As};function kr(t,e,s){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,s):t.call(e,s)}});var xr=k((Ix,Kl)=>{"use strict";var{tokenChars:Ts}=es();function qe(t,e,s){t[e]===void 0?t[e]=[s]:t[e].push(s)}function J_(t){let e=Object.create(null),s=Object.create(null),r=!1,n=!1,o=!1,i,a,c=-1,l=-1,u=-1,d=0;for(;d<t.length;d++)if(l=t.charCodeAt(d),i===void 0)if(u===-1&&Ts[l]===1)c===-1&&(c=d);else if(d!==0&&(l===32||l===9))u===-1&&c!==-1&&(u=d);else if(l===59||l===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);u===-1&&(u=d);let h=t.slice(c,u);l===44?(qe(e,h,s),s=Object.create(null)):i=h,c=u=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);else if(a===void 0)if(u===-1&&Ts[l]===1)c===-1&&(c=d);else if(l===32||l===9)u===-1&&c!==-1&&(u=d);else if(l===59||l===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);u===-1&&(u=d),qe(s,t.slice(c,u),!0),l===44&&(qe(e,i,s),s=Object.create(null),i=void 0),c=u=-1}else if(l===61&&c!==-1&&u===-1)a=t.slice(c,d),c=u=-1;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(n){if(Ts[l]!==1)throw new SyntaxError(`Unexpected character at index ${d}`);c===-1?c=d:r||(r=!0),n=!1}else if(o)if(Ts[l]===1)c===-1&&(c=d);else if(l===34&&c!==-1)o=!1,u=d;else if(l===92)n=!0;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(l===34&&t.charCodeAt(d-1)===61)o=!0;else if(u===-1&&Ts[l]===1)c===-1&&(c=d);else if(c!==-1&&(l===32||l===9))u===-1&&(u=d);else if(l===59||l===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);u===-1&&(u=d);let h=t.slice(c,u);r&&(h=h.replace(/\\/g,""),r=!1),qe(s,a,h),l===44&&(qe(e,i,s),s=Object.create(null),i=void 0),a=void 0,c=u=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);if(c===-1||o||l===32||l===9)throw new SyntaxError("Unexpected end of input");u===-1&&(u=d);let f=t.slice(c,u);return i===void 0?qe(e,f,s):(a===void 0?qe(s,f,!0):r?qe(s,a,f.replace(/\\/g,"")):qe(s,a,f),qe(e,i,s)),e}function H_(t){return Object.keys(t).map(e=>{let s=t[e];return Array.isArray(s)||(s=[s]),s.map(r=>[e].concat(Object.keys(r).map(n=>{let o=r[n];return Array.isArray(o)||(o=[o]),o.map(i=>i===!0?n:`${n}=${i}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Kl.exports={format:H_,parse:J_}});var Er=k((Ax,ou)=>{"use strict";var Y_=require("events"),X_=require("https"),Q_=require("http"),Hl=require("net"),ew=require("tls"),{randomBytes:tw,createHash:sw}=require("crypto"),{Duplex:Cx,Readable:Ex}=require("stream"),{URL:ho}=require("url"),nt=Qt(),rw=lo(),nw=po(),{isBlob:ow}=es(),{BINARY_TYPES:zl,CLOSE_TIMEOUT:iw,EMPTY_BUFFER:Sr,GUID:aw,kForOnEventAttribute:go,kListener:cw,kStatusCode:lw,kWebSocket:oe,NOOP:Yl}=We(),{EventTarget:{addEventListener:uw,removeEventListener:dw}}=Wl(),{format:fw,parse:pw}=xr(),{toBuffer:mw}=Is(),Xl=Symbol("kAborted"),yo=[8,13],Je=["CONNECTING","OPEN","CLOSING","CLOSED"],hw=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Q=class t extends Y_{constructor(e,s,r){super(),this._binaryType=zl[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=Sr,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,s===void 0?s=[]:Array.isArray(s)||(typeof s=="object"&&s!==null?(r=s,s=[]):s=[s]),Ql(this,e,s,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){zl.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,s,r){let n=new rw({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:r.maxBufferedChunks,maxFragments:r.maxFragments,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),o=new nw(e,this._extensions,r.generateMask);this._receiver=n,this._sender=o,this._socket=e,n[oe]=this,o[oe]=this,e[oe]=this,n.on("conclude",_w),n.on("drain",ww),n.on("error",bw),n.on("message",kw),n.on("ping",xw),n.on("pong",Sw),o.onerror=Iw,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),s.length>0&&e.unshift(s),e.on("close",su),e.on("data",Cr),e.on("end",ru),e.on("error",nu),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[nt.extensionName]&&this._extensions[nt.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,s){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){_e(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,s,!this._isServer,r=>{r||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),tu(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,s,r){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(r=e,e=s=void 0):typeof s=="function"&&(r=s,s=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){_o(this,e,r);return}s===void 0&&(s=!this._isServer),this._sender.ping(e||Sr,s,r)}pong(e,s,r){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(r=e,e=s=void 0):typeof s=="function"&&(r=s,s=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){_o(this,e,r);return}s===void 0&&(s=!this._isServer),this._sender.pong(e||Sr,s,r)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,s,r){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof s=="function"&&(r=s,s={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){_o(this,e,r);return}let n={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...s};this._extensions[nt.extensionName]||(n.compress=!1),this._sender.send(e||Sr,n,r)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){_e(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(Q,"CONNECTING",{enumerable:!0,value:Je.indexOf("CONNECTING")});Object.defineProperty(Q.prototype,"CONNECTING",{enumerable:!0,value:Je.indexOf("CONNECTING")});Object.defineProperty(Q,"OPEN",{enumerable:!0,value:Je.indexOf("OPEN")});Object.defineProperty(Q.prototype,"OPEN",{enumerable:!0,value:Je.indexOf("OPEN")});Object.defineProperty(Q,"CLOSING",{enumerable:!0,value:Je.indexOf("CLOSING")});Object.defineProperty(Q.prototype,"CLOSING",{enumerable:!0,value:Je.indexOf("CLOSING")});Object.defineProperty(Q,"CLOSED",{enumerable:!0,value:Je.indexOf("CLOSED")});Object.defineProperty(Q.prototype,"CLOSED",{enumerable:!0,value:Je.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(Q.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(Q.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[go])return e[cw];return null},set(e){for(let s of this.listeners(t))if(s[go]){this.removeListener(t,s);break}typeof e=="function"&&this.addEventListener(t,e,{[go]:!0})}})});Q.prototype.addEventListener=uw;Q.prototype.removeEventListener=dw;ou.exports=Q;function Ql(t,e,s,r){let n={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:iw,protocolVersion:yo[1],maxBufferedChunks:1048576,maxFragments:131072,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=n.autoPong,t._closeTimeout=n.closeTimeout,!yo.includes(n.protocolVersion))throw new RangeError(`Unsupported protocol version: ${n.protocolVersion} (supported versions: ${yo.join(", ")})`);let o;if(e instanceof ho)o=e;else try{o=new ho(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}o.protocol==="http:"?o.protocol="ws:":o.protocol==="https:"&&(o.protocol="wss:"),t._url=o.href;let i=o.protocol==="wss:",a=o.protocol==="ws+unix:",c;if(o.protocol!=="ws:"&&!i&&!a?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:a&&!o.pathname?c="The URL's pathname is empty":o.hash&&(c="The URL contains a fragment identifier"),c){let _=new SyntaxError(c);if(t._redirects===0)throw _;Ir(t,_);return}let l=i?443:80,u=tw(16).toString("base64"),d=i?X_.request:Q_.request,f=new Set,h;if(n.createConnection=n.createConnection||(i?yw:gw),n.defaultPort=n.defaultPort||l,n.port=o.port||l,n.host=o.hostname.startsWith("[")?o.hostname.slice(1,-1):o.hostname,n.headers={...n.headers,"Sec-WebSocket-Version":n.protocolVersion,"Sec-WebSocket-Key":u,Connection:"Upgrade",Upgrade:"websocket"},n.path=o.pathname+o.search,n.timeout=n.handshakeTimeout,n.perMessageDeflate&&(h=new nt({...n.perMessageDeflate,isServer:!1,maxPayload:n.maxPayload}),n.headers["Sec-WebSocket-Extensions"]=fw({[nt.extensionName]:h.offer()})),s.length){for(let _ of s){if(typeof _!="string"||!hw.test(_)||f.has(_))throw new SyntaxError("An invalid or duplicated subprotocol was specified");f.add(_)}n.headers["Sec-WebSocket-Protocol"]=s.join(",")}if(n.origin&&(n.protocolVersion<13?n.headers["Sec-WebSocket-Origin"]=n.origin:n.headers.Origin=n.origin),(o.username||o.password)&&(n.auth=`${o.username}:${o.password}`),a){let _=n.path.split(":");n.socketPath=_[0],n.path=_[1]}let g;if(n.followRedirects){if(t._redirects===0){t._originalIpc=a,t._originalSecure=i,t._originalHostOrSocketPath=a?n.socketPath:o.host;let _=r&&r.headers;if(r={...r,headers:{}},_)for(let[w,x]of Object.entries(_))r.headers[w.toLowerCase()]=x}else if(t.listenerCount("redirect")===0){let _=a?t._originalIpc?n.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:o.host===t._originalHostOrSocketPath;(!_||t._originalSecure&&!i)&&(delete n.headers.authorization,delete n.headers.cookie,_||delete n.headers.host,n.auth=void 0)}n.auth&&!r.headers.authorization&&(r.headers.authorization="Basic "+Buffer.from(n.auth).toString("base64")),g=t._req=d(n),t._redirects&&t.emit("redirect",t.url,g)}else g=t._req=d(n);n.timeout&&g.on("timeout",()=>{_e(t,g,"Opening handshake has timed out")}),g.on("error",_=>{g===null||g[Xl]||(g=t._req=null,Ir(t,_))}),g.on("response",_=>{let w=_.headers.location,x=_.statusCode;if(w&&n.followRedirects&&x>=300&&x<400){if(++t._redirects>n.maxRedirects){_e(t,g,"Maximum redirects exceeded");return}g.abort();let P;try{P=new ho(w,e)}catch{let D=new SyntaxError(`Invalid URL: ${w}`);Ir(t,D);return}Ql(t,P,s,r)}else t.emit("unexpected-response",g,_)||_e(t,g,`Unexpected server response: ${_.statusCode}`)}),g.on("upgrade",(_,w,x)=>{if(t.emit("upgrade",_),t.readyState!==Q.CONNECTING)return;g=t._req=null;let P=_.headers.upgrade;if(P===void 0||P.toLowerCase()!=="websocket"){_e(t,w,"Invalid Upgrade header");return}let W=sw("sha1").update(u+aw).digest("base64");if(_.headers["sec-websocket-accept"]!==W){_e(t,w,"Invalid Sec-WebSocket-Accept header");return}let D=_.headers["sec-websocket-protocol"],N;if(D!==void 0?f.size?f.has(D)||(N="Server sent an invalid subprotocol"):N="Server sent a subprotocol but none was requested":f.size&&(N="Server sent no subprotocol"),N){_e(t,w,N);return}D&&(t._protocol=D);let K=_.headers["sec-websocket-extensions"];if(K!==void 0){if(!h){_e(t,w,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let F;try{F=pw(K)}catch{_e(t,w,"Invalid Sec-WebSocket-Extensions header");return}let z=Object.keys(F);if(z.length!==1||z[0]!==nt.extensionName){_e(t,w,"Server indicated an extension that was not requested");return}try{h.accept(F[nt.extensionName])}catch{_e(t,w,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[nt.extensionName]=h}t.setSocket(w,x,{allowSynchronousEvents:n.allowSynchronousEvents,generateMask:n.generateMask,maxBufferedChunks:n.maxBufferedChunks,maxFragments:n.maxFragments,maxPayload:n.maxPayload,skipUTF8Validation:n.skipUTF8Validation})}),n.finishRequest?n.finishRequest(g,t):g.end()}function Ir(t,e){t._readyState=Q.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function gw(t){return t.path=t.socketPath,Hl.connect(t)}function yw(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Hl.isIP(t.host)?"":t.host),ew.connect(t)}function _e(t,e,s){t._readyState=Q.CLOSING;let r=new Error(s);Error.captureStackTrace(r,_e),e.setHeader?(e[Xl]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(Ir,t,r)):(e.destroy(r),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function _o(t,e,s){if(e){let r=ow(e)?e.size:mw(e).length;t._socket?t._sender._bufferedBytes+=r:t._bufferedAmount+=r}if(s){let r=new Error(`WebSocket is not open: readyState ${t.readyState} (${Je[t.readyState]})`);process.nextTick(s,r)}}function _w(t,e){let s=this[oe];s._closeFrameReceived=!0,s._closeMessage=e,s._closeCode=t,s._socket[oe]!==void 0&&(s._socket.removeListener("data",Cr),process.nextTick(eu,s._socket),t===1005?s.close():s.close(t,e))}function ww(){let t=this[oe];t.isPaused||t._socket.resume()}function bw(t){let e=this[oe];e._socket[oe]!==void 0&&(e._socket.removeListener("data",Cr),process.nextTick(eu,e._socket),e.close(t[lw])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Jl(){this[oe].emitClose()}function kw(t,e){this[oe].emit("message",t,e)}function xw(t){let e=this[oe];e._autoPong&&e.pong(t,!this._isServer,Yl),e.emit("ping",t)}function Sw(t){this[oe].emit("pong",t)}function eu(t){t.resume()}function Iw(t){let e=this[oe];e.readyState!==Q.CLOSED&&(e.readyState===Q.OPEN&&(e._readyState=Q.CLOSING,tu(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function tu(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),t._closeTimeout)}function su(){let t=this[oe];if(this.removeListener("close",su),this.removeListener("data",Cr),this.removeListener("end",ru),t._readyState=Q.CLOSING,!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);t._receiver.write(e)}t._receiver.end(),this[oe]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",Jl),t._receiver.on("finish",Jl))}function Cr(t){this[oe]._receiver.write(t)||this.pause()}function ru(){let t=this[oe];t._readyState=Q.CLOSING,t._receiver.end(),this.end()}function nu(){let t=this[oe];this.removeListener("error",nu),this.on("error",Yl),t&&(t._readyState=Q.CLOSING,this.destroy())}});var lu=k(($x,cu)=>{"use strict";var Tx=Er(),{Duplex:Cw}=require("stream");function iu(t){t.emit("close")}function Ew(){!this.destroyed&&this._writableState.finished&&this.destroy()}function au(t){this.removeListener("error",au),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function Aw(t,e){let s=!0,r=new Cw({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(o,i){let a=!i&&r._readableState.objectMode?o.toString():o;r.push(a)||t.pause()}),t.once("error",function(o){r.destroyed||(s=!1,r.destroy(o))}),t.once("close",function(){r.destroyed||r.push(null)}),r._destroy=function(n,o){if(t.readyState===t.CLOSED){o(n),process.nextTick(iu,r);return}let i=!1;t.once("error",function(c){i=!0,o(c)}),t.once("close",function(){i||o(n),process.nextTick(iu,r)}),s&&t.terminate()},r._final=function(n){if(t.readyState===t.CONNECTING){t.once("open",function(){r._final(n)});return}t._socket!==null&&(t._socket._writableState.finished?(n(),r._readableState.endEmitted&&r.destroy()):(t._socket.once("finish",function(){n()}),t.close()))},r._read=function(){t.isPaused&&t.resume()},r._write=function(n,o,i){if(t.readyState===t.CONNECTING){t.once("open",function(){r._write(n,o,i)});return}t.send(n,i)},r.on("end",Ew),r.on("error",au),r}cu.exports=Aw});var wo=k((Ux,uu)=>{"use strict";var{tokenChars:Tw}=es();function $w(t){let e=new Set,s=-1,r=-1,n=0;for(n;n<t.length;n++){let i=t.charCodeAt(n);if(r===-1&&Tw[i]===1)s===-1&&(s=n);else if(n!==0&&(i===32||i===9))r===-1&&s!==-1&&(r=n);else if(i===44){if(s===-1)throw new SyntaxError(`Unexpected character at index ${n}`);r===-1&&(r=n);let a=t.slice(s,r);if(e.has(a))throw new SyntaxError(`The "${a}" subprotocol is duplicated`);e.add(a),s=r=-1}else throw new SyntaxError(`Unexpected character at index ${n}`)}if(s===-1||r!==-1)throw new SyntaxError("Unexpected end of input");let o=t.slice(s,n);if(e.has(o))throw new SyntaxError(`The "${o}" subprotocol is duplicated`);return e.add(o),e}uu.exports={parse:$w}});var yu=k((Ox,gu)=>{"use strict";var Uw=require("events"),Ar=require("http"),{Duplex:vx}=require("stream"),{createHash:vw}=require("crypto"),du=xr(),Ot=Qt(),Ow=wo(),Dw=Er(),{CLOSE_TIMEOUT:Rw,GUID:Lw,kWebSocket:Pw}=We(),Nw=/^[+/0-9A-Za-z]{22}==$/,fu=0,pu=1,hu=2,bo=class extends Uw{constructor(e,s){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:1024*1024,maxFragments:128*1024,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Rw,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Dw,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=Ar.createServer((r,n)=>{let o=Ar.STATUS_CODES[426];n.writeHead(426,{"Content-Length":o.length,"Content-Type":"text/plain"}),n.end(o)}),this._server.listen(e.port,e.host,e.backlog,s)):e.server&&(this._server=e.server),this._server){let r=this.emit.bind(this,"connection");this._removeListeners=qw(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(n,o,i)=>{this.handleUpgrade(n,o,i,r)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=fu}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===hu){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick($s,this);return}if(e&&this.once("close",e),this._state!==pu)if(this._state=pu,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick($s,this):process.nextTick($s,this);else{let s=this._server;this._removeListeners(),this._removeListeners=this._server=null,s.close(()=>{$s(this)})}}shouldHandle(e){if(this.options.path){let s=e.url.indexOf("?");if((s!==-1?e.url.slice(0,s):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,s,r,n){s.on("error",mu);let o=e.headers["sec-websocket-key"],i=e.headers.upgrade,a=+e.headers["sec-websocket-version"];if(e.method!=="GET"){Dt(this,e,s,405,"Invalid HTTP method");return}if(i===void 0||i.toLowerCase()!=="websocket"){Dt(this,e,s,400,"Invalid Upgrade header");return}if(o===void 0||!Nw.test(o)){Dt(this,e,s,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){Dt(this,e,s,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){Us(s,400);return}let c=e.headers["sec-websocket-protocol"],l=new Set;if(c!==void 0)try{l=Ow.parse(c)}catch{Dt(this,e,s,400,"Invalid Sec-WebSocket-Protocol header");return}let u=e.headers["sec-websocket-extensions"],d={};if(this.options.perMessageDeflate&&u!==void 0){let f=new Ot({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let h=du.parse(u);h[Ot.extensionName]&&(f.accept(h[Ot.extensionName]),d[Ot.extensionName]=f)}catch{Dt(this,e,s,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let f={origin:e.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(f,(h,g,_,w)=>{if(!h)return Us(s,g||401,_,w);this.completeUpgrade(d,o,l,e,s,r,n)});return}if(!this.options.verifyClient(f))return Us(s,401)}this.completeUpgrade(d,o,l,e,s,r,n)}completeUpgrade(e,s,r,n,o,i,a){if(!o.readable||!o.writable)return o.destroy();if(o[Pw])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>fu)return Us(o,503);let l=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${vw("sha1").update(s+Lw).digest("base64")}`],u=new this.options.WebSocket(null,void 0,this.options);if(r.size){let d=this.options.handleProtocols?this.options.handleProtocols(r,n):r.values().next().value;d&&(l.push(`Sec-WebSocket-Protocol: ${d}`),u._protocol=d)}if(e[Ot.extensionName]){let d=e[Ot.extensionName].params,f=du.format({[Ot.extensionName]:[d]});l.push(`Sec-WebSocket-Extensions: ${f}`),u._extensions=e}this.emit("headers",l,n),o.write(l.concat(`\r
|
|
498
498
|
`).join(`\r
|
|
499
499
|
`)),o.removeListener("error",mu),u.setSocket(o,i,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxBufferedChunks:this.options.maxBufferedChunks,maxFragments:this.options.maxFragments,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(u),u.on("close",()=>{this.clients.delete(u),this._shouldEmitClose&&!this.clients.size&&process.nextTick($s,this)})),a(u,n)}};gu.exports=bo;function qw(t,e){for(let s of Object.keys(e))t.on(s,e[s]);return function(){for(let r of Object.keys(e))t.removeListener(r,e[r])}}function $s(t){t._state=hu,t.emit("close")}function mu(){this.destroy()}function Us(t,e,s,r){s=s||Ar.STATUS_CODES[e],r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(s),...r},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${Ar.STATUS_CODES[e]}\r
|
|
500
500
|
`+Object.keys(r).map(n=>`${n}: ${r[n]}`).join(`\r
|
|
501
501
|
`)+`\r
|
|
502
502
|
\r
|
|
503
|
-
`+s)}function Dt(t,e,s,r,n,o){if(t.listenerCount("wsClientError")){let i=new Error(n);Error.captureStackTrace(i,Dt),t.emit("wsClientError",i,s,e)}else Us(s,r,n,o)}});var bu=k((Dx,wu)=>{"use strict";var jw=lu(),Mw=xr(),Gw=Qt(),Fw=lo(),Bw=po(),Zw=wo(),$e=Er(),_u=yu();$e.createWebSocketStream=jw;$e.extension=Mw;$e.PerMessageDeflate=Gw;$e.Receiver=Fw;$e.Sender=Bw;$e.Server=_u;$e.subprotocol=Zw;$e.WebSocket=$e;$e.WebSocketServer=_u;wu.exports=$e});var Su=k((Px,xu)=>{var Rx=require("https"),Lx=require("http"),ko=class{constructor(e,s,r,n,o,i){this.cfg=e,this.token=s,this.cliVersion=r||"dev",this.onWakeup=n,this.onHeartbeatAck=o,this.log=i,this._running=!1,this._ws=null,this._backoff=1e3,this._abortSignal=null,this._getRuntimeIds=null}start(e,s){this._running=!0,this._abortSignal=e,this._getRuntimeIds=s,this._loop()}stop(){if(this._running=!1,this._ws){try{this._ws.close()}catch{}this._ws=null}}async _loop(){for(;this._running&&(!this._abortSignal||!this._abortSignal.aborted);){let e=this._getRuntimeIds?this._getRuntimeIds():[];if(e.length===0){await ku(2e3);continue}try{await this._connect(e),this._backoff=1e3}catch(s){if(!this._running)return;this.log(`[wakeup] ws unavailable (${s.message}); polling fallback active, retry in ${this._backoff}ms`)}if(!this._running)return;await ku(Vw(this._backoff)),this._backoff<3e4&&(this._backoff=Math.min(this._backoff*2,3e4))}}_buildWsUrl(e){let r=(this.cfg.serverUrl||"https://flow.makecoder.com").replace(/\/+$/,"").replace(/^https?:\/\//,o=>o==="https://"?"wss://":"ws://"),n=[...e].sort().join(",");return`${r}/api/daemon/ws?runtime_ids=${encodeURIComponent(n)}`}async _connect(e){let s=this._buildWsUrl(e),r;try{r=bu()}catch{throw new Error("ws module not available \u2014 install with: npm install ws")}return new Promise((n,o)=>{let i={Authorization:`Bearer ${this.token}`,"X-Client-Platform":"daemon","X-Client-Version":this.cliVersion},a=new r(s,{headers:i,handshakeTimeout:1e4});this._ws=a;let c=()=>{try{a.close()}catch{}};this._abortSignal&&this._abortSignal.addEventListener("abort",c,{once:!0});let l=null,u=()=>{let f=this._getRuntimeIds?this._getRuntimeIds():[];for(let h of f)try{a.send(JSON.stringify({type:"daemon:heartbeat",payload:{runtime_id:h,supports_batch_import:!0}}))}catch{}},d=()=>{l&&(clearInterval(l),l=null)};a.on("open",()=>{this.log(`[wakeup] websocket connected (${e.length} runtimes)`),this._backoff=1e3,u();let f=this.cfg.heartbeatInterval||15e3;l=setInterval(u,f),this.onWakeup("")}),a.on("message",f=>{try{let h=JSON.parse(f.toString());this._handleMessage(h)}catch(h){this.log(`[wakeup] invalid message: ${h.message}`)}}),a.on("error",f=>{d(),this._abortSignal&&this._abortSignal.removeEventListener("abort",c),this._ws=null,o(f)}),a.on("close",(f,h)=>{d(),this._abortSignal&&this._abortSignal.removeEventListener("abort",c),this._ws=null,this._running&&this.log(`[wakeup] websocket closed (${f})`),n()})})}_handleMessage(e){let s=e.type;if(s==="daemon:task_available"){let r=e.payload||{},n=r.runtime_id||"",o=r.task_id||"";this.log(`[wakeup] task_available runtimeId=${n} taskId=${o}`),this.onWakeup(n)}else s==="daemon:heartbeat_ack"&&this.onHeartbeatAck&&this.onHeartbeatAck(e.payload||{})}};function ku(t){return new Promise(e=>setTimeout(e,t))}function Vw(t){return Math.max(500,t+(Math.random()-.5)*t*.2)}xu.exports={TaskWakeupLoop:ko}});var $u=k((Nx,Tu)=>{var xo=require("os"),{HealthServer:Ww}=ks(),{DaemonClient:Kw}=Zc(),{Poller:Iu}=Yn(),{Heartbeat:zw}=ml(),{TaskWakeupLoop:Jw}=Su(),{loadOrCreateDaemonId:Hw}=Ht(),{runGc:Cu}=Kn(),{getActiveWorkdirs:Eu}=Jn(),Au=4320*60*1e3,So=class{constructor(e,s){this.cfg=e,this.log=s||console.error,this._runtimeIds=[],this._runtimeProviders={},this._workspaceForRuntime={},this._pollers={},this._heartbeat=null,this._wakeupLoop=null,this._health=null,this._client=null,this._daemonId=null}async run(e){let s=this.cfg,r=e&&typeof e.abort=="function"?e:null,n=r?r.signal:e;this._health=new Ww(s.healthPort||19514),this._health.setShutdown(()=>{r?r.abort():process.emit("SIGTERM")}),this._health.start(),this._daemonId=Hw(s.daemonId),this._health.daemonId=this._daemonId,this._client=new Kw(s.serverUrl,s.token,s.cliVersion||"dev"),this.log(`[daemon] starting id=${this._daemonId} server=${s.serverUrl} version=${s.cliVersion||"dev"}`),this.log(`[daemon] config: pollInterval=${s.pollInterval}ms heartbeatInterval=${s.heartbeatInterval}ms maxConcurrentTasks=${s.maxConcurrentTasks}`);try{let i=await this._client.renewToken();i?.renewed&&this.log(`[daemon] token renewed expires_at=${i.expires_at}`)}catch(i){this.log(`[daemon] token renewal preflight skipped: ${i.message}`)}let o=[];try{this.log(`[daemon] fetching workspaces from ${s.serverUrl}/api/workspaces`),o=await this._client.getWorkspaces(),this.log(`[daemon] found ${o.length} workspace(s): ${o.map(i=>i.id||i.name).join(", ")||"(none)"}`)}catch(i){this.log(`[daemon] getWorkspaces error: ${i.message}`)}this._health.workspaces=o.map(i=>i.id||i.name||"");for(let i of o)await this._registerWorkspace(i);this._runtimeIds.length===0&&this.log("[daemon] WARNING: no runtimes registered \u2014 tasks cannot be claimed"),this._health.agents=this._runtimeIds.map(i=>`claude:${i}`),this._health.status="running",this._startGcLoop(s,n);for(let i of this._runtimeIds){let a=new Iu(s,this._client,i,this.log);this._pollers[i]=a,a.start(n)}this.log(`[daemon] started ${Object.keys(this._pollers).length} poller(s)`),this._wakeupLoop=new Jw(s,s.token,s.cliVersion||"dev",i=>{if(i){let a=this._pollers[i];if(a)this.log(`[daemon] wakeup signal for runtime=${i.slice(0,8)}`),a.wakeup();else{this.log(`[daemon] wakeup signal for unknown runtime=${i.slice(0,8)}, fanning out`);for(let c of Object.values(this._pollers))c.wakeup()}}else for(let a of Object.values(this._pollers))a.wakeup()},i=>{i&&i.runtime_gone&&i.runtime_id&&(this.log(`[daemon] heartbeat_ack: runtime ${i.runtime_id} gone`),this._handleRuntimeGone(i.runtime_id))},this.log),this._wakeupLoop.start(n,()=>this._runtimeIds),this._heartbeat=new zw(s,this._client,()=>this._runtimeIds,this.log,i=>this._handleRuntimeGone(i),i=>this._runtimeProviders[i]||"claude"),this._heartbeat.start(n),this._startWorkspaceSyncLoop(n),this._startTokenRenewalLoop(n),this.log("[daemon] running \u2014 waiting for tasks"),await Yw(n),this.log("[daemon] shutting down"),this._heartbeat.stop(),this._wakeupLoop.stop();for(let i of Object.values(this._pollers))i.stop();if(this._runtimeIds.length)try{await this._client.deregister(this._runtimeIds),this.log(`[daemon] deregistered ${this._runtimeIds.length} runtime(s)`)}catch(i){this.log(`[daemon] deregister error: ${i.message}`)}this._health.close(),this.log("[daemon] stopped")}async _registerWorkspace(e){try{this.log(`[daemon] registering runtime for workspace=${e.id||e.name} deviceName=${this.cfg.deviceName||xo.hostname()}`);let r=((await this._client.register({workspaceId:e.id,daemonId:this._daemonId,deviceName:this.cfg.deviceName||xo.hostname(),cliVersion:this.cfg.cliVersion||"dev",runtimes:[{name:this.cfg.runtimeName||`Claude (${xo.hostname()})`,type:"claude",version:this.cfg.cliVersion||"dev",status:"online"}]}))?.runtimes||[]).map(n=>n.id).filter(Boolean);for(let n of r)this._runtimeProviders[n]="claude",this._workspaceForRuntime[n]=e.id||"";this._runtimeIds.push(...r),this.log(`[daemon] registered workspace=${e.id} runtimeIds=[${r.join(", ")}]`);for(let n of r)try{await this._client.recoverOrphans(n),this.log(`[daemon] recover-orphans OK runtime=${n.slice(0,8)}`)}catch(o){this.log(`[daemon] recover-orphans failed runtime=${n.slice(0,8)}: ${o.message}`)}}catch(s){this.log(`[daemon] register error workspace=${e.id}: ${s.message}`)}}async _handleRuntimeGone(e){let s=this._runtimeIds.indexOf(e);s!==-1&&this._runtimeIds.splice(s,1);let r=this._runtimeProviders[e]||"claude";delete this._runtimeProviders[e];let n=this._pollers[e];n&&(n.stop(),delete this._pollers[e]),this.log(`[daemon] runtime ${e.slice(0,8)} gone (provider=${r}), re-registering`);try{let o=await this._client.getWorkspaces();for(let i of o){let a=this._runtimeIds.length;await this._registerWorkspace(i);let c=this._runtimeIds.slice(a);for(let l of c){let u=new Iu(this.cfg,this._client,l,this.log);this._pollers[l]=u,u.start()}}}catch(o){this.log(`[daemon] re-register after runtime_gone failed: ${o.message}`)}}_startWorkspaceSyncLoop(e){let r=async()=>{if(!(e&&e.aborted)){try{let n=await this._client.getWorkspaces();for(let o of n){let i=o.id||o.name||"";if(!this._runtimeIds.some(c=>this._workspaceForRuntime&&this._workspaceForRuntime[c]===i)){let c=this._runtimeIds.length;await this._registerWorkspace(o);let l=this._runtimeIds.slice(c);for(let u of l)if(!this._pollers[u]){let{Poller:d}=Yn(),f=new d(this.cfg,this._client,u,this.log);this._pollers[u]=f,f.start(e),this.log(`[daemon] workspace-sync: started poller for new runtime=${u.slice(0,8)}`)}}}}catch(n){this.log(`[daemon] workspace-sync error: ${n.message}`)}(!e||!e.aborted)&&setTimeout(r,3e4)}};setTimeout(r,3e4)}_startGcLoop(e,s){if(!e.gcEnabled)return;let r=e.gcInterval||36e5,n=setTimeout(()=>{if(s&&s.aborted)return;Cu(e,Eu());let o=setInterval(()=>{if(s&&s.aborted){clearInterval(o);return}Cu(e,Eu())},r);s&&s.addEventListener("abort",()=>clearInterval(o),{once:!0})},3e4);s&&s.addEventListener("abort",()=>clearTimeout(n),{once:!0})}_startTokenRenewalLoop(e){let s=async()=>{if(!(e&&e.aborted)){try{let r=await this._client.renewToken();r?.renewed&&this.log(`[daemon] token renewed expires_at=${r.expires_at}`)}catch(r){this.log(`[daemon] token renewal failed: ${r.message}`)}(!e||!e.aborted)&&setTimeout(s,Au)}};setTimeout(s,Au)}};function Yw(t){return new Promise(e=>{if(!t){process.once("SIGINT",e),process.once("SIGTERM",e);return}if(t.aborted)return e();t.addEventListener("abort",e,{once:!0})})}Tu.exports={DaemonProcess:So}});var Zu=k((qx,Bu)=>{var{emitTable:Y,emitDetails:V}=Rc(),{abort:y,send:C,ensureOk:E,flag:b,positionals:Ce,requireWorkspaceId:A}=Nc();function qu(t,{full:e=!1,actors:s=null}={}){let r=t.assignee||(t.assignee_id?`${t.assignee_type||""}:${t.assignee_id}`:""),n=r;if(s&&r){let o=r.indexOf(":"),i=o!==-1?r.slice(o+1):r,a=s.get(i);a&&(n=a.name)}return{key:t.key||t.identifier||"",...e?{id:t.id||""}:{},title:t.title||"",status:t.status||"",priority:t.priority||"",assignee:n}}async function ju(t,e){let s=await C(t,"GET","/api/agents"),r=E(t,s)||{},n=Array.isArray(r)?r:r.agents||[],o=String(e).toLowerCase(),i=n.find(a=>a.id===e||(a.slug||"").toLowerCase()===o||(a.name||"").toLowerCase()===o);return i||y(t.ctx,`agent '${e}' \u4E0D\u5B58\u5728`,"\u8FD0\u884C coder flow agent list \u67E5\u770B\u53EF\u7528 agent",4),i.id}var U={id:"ID",key:"Key",name:"\u540D\u79F0",slug:"Slug",title:"\u6807\u9898",status:"\u72B6\u6001",priority:"\u4F18\u5148\u7EA7",assignee:"\u8D1F\u8D23\u4EBA",description:"\u63CF\u8FF0",current:"\u5F53\u524D",start_date:"\u5F00\u59CB\u65E5\u671F",due_date:"\u622A\u6B62\u65E5\u671F",created_at:"\u521B\u5EFA\u65F6\u95F4",updated_at:"\u66F4\u65B0\u65F6\u95F4",author:"\u4F5C\u8005",content:"\u5185\u5BB9",agent:"Agent",deleted:"\u5DF2\u5220\u9664"},we={status:{backlog:"\u5F85\u89C4\u5212",todo:"\u5F85\u529E",in_progress:"\u8FDB\u884C\u4E2D",in_review:"\u8BC4\u5BA1\u4E2D",done:"\u5DF2\u5B8C\u6210",cancelled:"\u5DF2\u53D6\u6D88",open:"\u5F00\u653E",closed:"\u5DF2\u5173\u95ED",active:"\u6D3B\u8DC3",inactive:"\u505C\u7528",archived:"\u5DF2\u5F52\u6863",planned:"\u89C4\u5212\u4E2D",started:"\u5DF2\u542F\u52A8",on_hold:"\u6401\u7F6E",idle:"\u7A7A\u95F2",busy:"\u5FD9\u788C",running:"\u8FD0\u884C\u4E2D",queued:"\u6392\u961F\u4E2D",pending:"\u7B49\u5F85\u4E2D",paused:"\u5DF2\u6682\u505C",stopped:"\u5DF2\u505C\u6B62",completed:"\u5DF2\u5B8C\u6210",failed:"\u5931\u8D25",success:"\u6210\u529F",error:"\u9519\u8BEF"},priority:{none:"\u65E0",low:"\u4F4E",medium:"\u4E2D",high:"\u9AD8",urgent:"\u7D27\u6025"}};async function Co(t,e,s){if(t.ctx.isJson||!s)return null;let r=await t.http.getWorkspaceSlug();return r?`${t.http.baseUrl}/${r}/${e}/${s}`:null}async function Eo(t,e,s){if(t.ctx.isJson)return null;let r=await t.http.getWorkspaceSlug();return r?s.map(n=>n&&n.id?`${t.http.baseUrl}/${r}/${e}/${n.id}`:null):null}async function Xw(t){A(t);let e=new URLSearchParams;e.set("workspace_id",t.http.workspaceId);let s=b(t.args,"--status"),r=b(t.args,"--priority"),n=b(t.args,"--limit"),o=b(t.args,"--offset");s&&e.set("status",s),r&&e.set("priority",r),n&&e.set("limit",n),o&&e.set("offset",o);let i=t.args.includes("--full-id"),[a,c]=await Promise.all([C(t,"GET",`/api/issues?${e.toString()}`),t.ctx.isJson?Promise.resolve(null):t.http.getActorLookup()]),l=E(t,a)||{},u=Array.isArray(l)?l:l.issues||[],d=await Eo(t,"issues",u),f=c?u.map(h=>{let g=h.assignee||(h.assignee_id?`${h.assignee_type||""}:${h.assignee_id}`:"");if(!g)return null;let _=g.indexOf(":"),w=_!==-1?g.slice(_+1):g;return c.get(w)?.url||null}):null;return Y(t.ctx,u.map(h=>qu(h,{full:i,actors:c})),{labels:U,values:we,linkCol:"key",rowLinks:d,colLinks:f?{col:"assignee",links:f}:void 0,empty:"\u65E0 issue"}),0}async function Uu(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue get <id|KEY>",3),A(t);let[s,r]=await Promise.all([C(t,"GET",`/api/issues/${encodeURIComponent(e)}`),t.ctx.isJson?Promise.resolve(null):t.http.getActorLookup()]),n=E(t,s)||{},o=await Co(t,"issues",n.id),i=n.assignee||(n.assignee_id?`${n.assignee_type||""}:${n.assignee_id}`:""),a=i,c=null;if(r&&i){let l=i.indexOf(":"),u=l!==-1?i.slice(l+1):i,d=r.get(u);d&&(a=d.name,c=d.url)}return V(t.ctx,[["key",n.key||n.identifier||""],["id",n.id||""],["title",n.title||""],["status",n.status||""],["priority",n.priority||""],["assignee",a],["start_date",n.start_date||""],["due_date",n.due_date||""],["description",n.description||""]],null,{labels:U,values:we,link:o?{key:"key",url:o}:null,fieldLinks:c?{assignee:c}:null}),0}async function Qw(t){let e=A(t),s=b(t.args,"--title");s||y(t.ctx,"\u7F3A\u5C11 --title","\u7528\u6CD5: coder flow issue create --title <t>",3);let r={workspace_id:e,title:s},n=b(t.args,"--description"),o=b(t.args,"--priority"),i=b(t.args,"--status"),a=b(t.args,"--project"),c=b(t.args,"--parent"),l=b(t.args,"--agent")||b(t.args,"--assignee"),u=b(t.args,"--assignee-id");n!==void 0&&(r.description=n),o!==void 0&&(r.priority=o),i!==void 0&&(r.status=i),a!==void 0&&(r.project_id=a),c!==void 0&&(r.parent_id=c),u!==void 0?r.assignee_id=u:l!==void 0&&(r.assignee_type="agent",r.assignee_id=await ju(t,l));let d=process.env.MULTICA_QUICK_CREATE_TASK_ID;d&&(r.origin_type="quick_create",r.origin_id=d);let f=await C(t,"POST","/api/issues",r),h=E(t,f)||{};return V(t.ctx,[["key",h.key||h.identifier||""],["id",h.id||""],["title",h.title||s],["status",h.status||""]],null,{labels:U,values:we}),0}async function Ao(t,e,s,r){let n=await C(t,"PUT",`/api/issues/${encodeURIComponent(e)}`,s),o=E(t,n)||{},i=await Co(t,"issues",o.id);return V(t.ctx,r(o),null,{labels:U,values:we,link:i?{key:"key",url:i}:null}),0}async function eb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue update <id|KEY> ...",3),A(t);let s={},r=b(t.args,"--title"),n=b(t.args,"--description"),o=b(t.args,"--priority"),i=b(t.args,"--status");return r!==void 0&&(s.title=r),n!==void 0&&(s.description=n),o!==void 0&&(s.priority=o),i!==void 0&&(s.status=i),Object.keys(s).length||y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u66F4\u65B0\u5B57\u6BB5","\u81F3\u5C11\u7ED9\u4E00\u4E2A --title/--description/--priority/--status",3),Ao(t,e,s,a=>[["key",a.key||a.identifier||e],["title",a.title||""],["status",a.status||""],["priority",a.priority||""]])}async function tb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue status <id|KEY> --set <status>",3);let s=b(t.args,"--set")||b(t.args,"--status");return s||y(t.ctx,"\u7F3A\u5C11 --set <status>","\u7528\u6CD5: coder flow issue status <id|KEY> --set <status>",3),A(t),Ao(t,e,{status:s},r=>[["key",r.key||r.identifier||e],["status",r.status||s]])}async function sb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue assign <id|KEY> --agent <slug>",3),A(t);let s=b(t.args,"--agent")||b(t.args,"--to"),r=t.args.includes("--unassign"),n;return r?n={assignee_type:null,assignee_id:null}:(s||y(t.ctx,"\u7F3A\u5C11 --agent <slug>","\u6216\u7528 --unassign \u53D6\u6D88\u6307\u6D3E",3),n={assignee_type:"agent",assignee_id:await ju(t,s)}),Ao(t,e,n,o=>[["key",o.key||o.identifier||e],["status",o.status||""],["assignee",o.assignee_id?`${o.assignee_type||""}:${o.assignee_id}`:""]])}async function rb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11\u641C\u7D22\u5173\u952E\u8BCD","\u7528\u6CD5: coder flow issue search <query>",3),A(t);let s=new URLSearchParams;s.set("q",e),s.set("workspace_id",t.http.workspaceId);let r=b(t.args,"--limit");r&&s.set("limit",r),t.args.includes("--include-closed")&&s.set("include_closed","true");let n=await C(t,"GET",`/api/issues/search?${s.toString()}`),o=E(t,n)||{},i=Array.isArray(o)?o:o.issues||[],a=await Eo(t,"issues",i);return Y(t.ctx,i.map(c=>qu(c)),{labels:U,values:we,linkCol:"key",rowLinks:a,empty:"\u65E0\u5339\u914D issue"}),0}async function nb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue comment list <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/comments`),r=E(t,s)||{},n=Array.isArray(r)?r:r.comments||[];return Y(t.ctx,n.map(o=>({id:o.id||"",author:o.author_id||o.user_id||"",created_at:o.created_at||"",content:o.content||""})),{labels:U,empty:"\u65E0\u8BC4\u8BBA"}),0}async function ob(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue comment add <id|KEY> --content <text>",3),A(t);let s=b(t.args,"--content")||b(t.args,"--body");s||y(t.ctx,"\u7F3A\u5C11 --content",null,3);let r={content:s},n=b(t.args,"--parent");n&&(r.parent_id=n);let o=await C(t,"POST",`/api/issues/${encodeURIComponent(e)}/comments`,r),i=E(t,o)||{};return V(t.ctx,[["id",i.id||""],["content",i.content||s]],null,{labels:U}),0}async function ib(t){let e=Ce(t.args,{valueFlags:[]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow issue comment delete <issue-id> <comment-id>",3),A(t);let n=await C(t,"DELETE",`/api/issues/${encodeURIComponent(s)}/comments/${encodeURIComponent(r)}`);return E(t,n),t.ctx.emit(t.ctx.isJson?{deleted:r}:`\u8BC4\u8BBA ${r} \u5DF2\u5220\u9664`),0}async function ab(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue subscriber list <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/subscribers`),r=E(t,s)||{},n=Array.isArray(r)?r:r.subscribers||[];return Y(t.ctx,n.map(o=>({id:o.id||"",name:o.name||"",type:o.type||""})),{labels:U,empty:"\u65E0\u8BA2\u9605\u8005"}),0}async function cb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue subscriber add <id|KEY> [--user <name>]",3),A(t);let s={},r=b(t.args,"--user-id"),n=b(t.args,"--user");r?s.user_id=r:n&&(s.user=n);let o=await C(t,"POST",`/api/issues/${encodeURIComponent(e)}/subscribers`,s),i=E(t,o)||{};return t.ctx.emit(t.ctx.isJson?i:`\u5DF2\u8BA2\u9605 issue ${e}`),0}async function lb(t){let s=Ce(t.args,{valueFlags:["--user-id","--user"]})[0];s||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue subscriber remove <id|KEY>",3),A(t);let r={},n=b(t.args,"--user-id"),o=b(t.args,"--user");n?r.user_id=n:o&&(r.user=o);let i=await C(t,"DELETE",`/api/issues/${encodeURIComponent(s)}/subscribers`,r);return E(t,i),t.ctx.emit(t.ctx.isJson?{unsubscribed:!0}:`\u5DF2\u53D6\u6D88\u8BA2\u9605 issue ${s}`),0}async function ub(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue pull-requests <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/pull-requests`),r=E(t,s)||{},n=Array.isArray(r)?r:r.pull_requests||[];return Y(t.ctx,n.map(o=>({id:o.id||"",title:o.title||"",url:o.url||"",status:o.status||""})),{labels:U,empty:"\u65E0\u5173\u8054 PR"}),0}async function db(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 task-id","\u7528\u6CD5: coder flow issue run-messages <task-id> [--since <seq>]",3),A(t);let s=new URLSearchParams,r=b(t.args,"--issue"),n=b(t.args,"--since");r&&s.set("issue_id",r),n&&s.set("since",n);let o=s.toString(),i=await C(t,"GET",`/api/tasks/${encodeURIComponent(e)}/messages${o?"?"+o:""}`),a=E(t,i)||{},c=Array.isArray(a)?a:a.messages||[];return t.ctx.isJson?(t.ctx.emit(c),0):(Y(t.ctx,c.map(l=>({seq:String(l.seq??l.sequence??""),type:l.type||l.role||"",content:(l.content||l.output||"").slice(0,100)})),{labels:{seq:"Seq",type:"\u7C7B\u578B",content:"\u5185\u5BB9"},empty:"\u65E0\u6D88\u606F"}),0)}async function fb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 task-id","\u7528\u6CD5: coder flow issue cancel-task <task-id>",3),A(t);let s={},r=b(t.args,"--issue");r&&(s.issue_id=r);let n=await C(t,"POST",`/api/tasks/${encodeURIComponent(e)}/cancel`,s),o=E(t,n)||{};return V(t.ctx,[["id",o.id||e],["status",o.status||""]],null,{labels:U}),0}async function pb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue runs <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/task-runs`),r=E(t,s)||{},n=Array.isArray(r)?r:r.runs||r.tasks||[];return Y(t.ctx,n.map(o=>({id:o.id||"",status:o.status||"",agent:o.agent_id||o.assignee_id||"",created_at:o.created_at||""})),{labels:U,values:we,empty:"\u65E0\u4EFB\u52A1\u5386\u53F2"}),0}async function mb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue rerun <id|KEY>",3),A(t);let s=await C(t,"POST",`/api/issues/${encodeURIComponent(e)}/rerun`,{}),r=E(t,s)||{};return V(t.ctx,[["id",r.id||""],["status",r.status||""]],null,{labels:U,values:we}),0}function vs(t,e){return e.map(s=>[s,t[s]??""])}function os(t,e,s,{webPath:r=null,linkCol:n=null}={}){return async o=>{A(o);let i=new URLSearchParams;i.set("workspace_id",o.http.workspaceId);let a=await C(o,"GET",`/api/${t}?${i.toString()}`),c=E(o,a)||{},l=Array.isArray(c)?c:c[e]||[],u=r?await Eo(o,r,l):null;return Y(o.ctx,l.map(d=>{let f={};for(let h of s)f[h]=d[h]??"";return f}),{labels:U,values:we,linkCol:n,rowLinks:u,empty:`\u65E0 ${t}`}),0}}function qe(t,e,{webPath:s=null,linkCol:r=null}={}){return async n=>{let o=n.arg;o||y(n.ctx,`\u7F3A\u5C11 ${t} \u6807\u8BC6`,"\u7528\u6CD5: coder flow ... get <id>",3),A(n);let i=await C(n,"GET",`/api/${t}/${encodeURIComponent(o)}`),a=E(n,i)||{},c=s?await Co(n,s,a.id):null;return V(n.ctx,vs(a,e),null,{labels:U,values:we,link:c&&r?{key:r,url:c}:null}),0}}function Tr(t){return async e=>{let s=e.arg;if(s||y(e.ctx,`\u7F3A\u5C11 ${t} \u6807\u8BC6`,"\u7528\u6CD5: coder flow ... delete <id>",3),A(e),!e.args.includes("--yes"))return e.ctx.emit(`\u5C06\u5220\u9664 ${t}/${s}\uFF08\u9AD8\u5F71\u54CD\uFF09\u3002\u786E\u8BA4\u8BF7\u52A0 --yes`),10;let r=await C(e,"DELETE",`/api/${t}/${encodeURIComponent(s)}`);return E(e,r),e.ctx.emit(e.ctx.isJson?{deleted:s}:`\u5DF2\u5220\u9664 ${s}`),0}}function Je(t,e,s,r,{withWorkspace:n=!1,idArg:o=!1}={}){return async i=>{let a=A(i),c=`/api/${t}`;if(o){let h=i.arg;h||y(i.ctx,`\u7F3A\u5C11 ${t} \u6807\u8BC6`,"\u7528\u6CD5: coder flow ... <verb> <id> ...",3),c+=`/${encodeURIComponent(h)}`}let l={};n&&(l.workspace_id=a);for(let[h,g]of s){let _=b(i.args,`--${h}`);_!==void 0&&(l[g]=_)}Object.keys(l).filter(h=>h!=="workspace_id").length||y(i.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5",`\u7ED9\u51FA ${s.map(h=>"--"+h[0]).join(" / ")}`,3);let d=await C(i,e,c,l),f=E(i,d)||{};return V(i.ctx,vs(f,r),null,{labels:U,values:we}),0}}function Io(t,e,s){return async r=>{let n=r.arg;n||y(r.ctx,`\u7F3A\u5C11 ${t} \u6807\u8BC6`,`\u7528\u6CD5: coder flow ... ${e} <id>`,3),A(r);let o=await C(r,"POST",`/api/${t}/${encodeURIComponent(n)}/${e}`,{}),i=E(r,o)||{};return V(r.ctx,vs(i,s),null,{labels:U,values:we}),0}}function vu(t,e,s,r){return async n=>{let o=n.arg;o||y(n.ctx,`\u7F3A\u5C11 ${t} \u6807\u8BC6`,"\u7528\u6CD5: coder flow ... <verb> <id>",3),A(n);let i=await C(n,"GET",`/api/${t}/${encodeURIComponent(o)}/${e}`),a=E(n,i)||{},c=Array.isArray(a)?a:a[s]||[];return Y(n.ctx,c.map(l=>{let u={};for(let d of r)u[d]=l[d]??"";return u}),{labels:U,values:we,empty:"\uFF08\u7A7A\uFF09"}),0}}async function hb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue label list <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/labels`),r=E(t,s)||{},n=Array.isArray(r)?r:r.labels||[];return Y(t.ctx,n.map(o=>({id:o.id||"",name:o.name||"",color:o.color||""})),{labels:U,empty:"\u65E0\u6807\u7B7E"}),0}async function gb(t){let e=Ce(t.args,{valueFlags:[]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow issue label add <issue-id> <label-id>",3),A(t);let n=await C(t,"POST",`/api/issues/${encodeURIComponent(s)}/labels`,{label_id:r}),o=E(t,n)||{},i=Array.isArray(o)?o:o.labels||[];return Y(t.ctx,i.map(a=>({id:a.id||"",name:a.name||"",color:a.color||""})),{labels:U,empty:"\u65E0\u6807\u7B7E"}),0}async function yb(t){let e=Ce(t.args,{valueFlags:[]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow issue label remove <issue-id> <label-id>",3),A(t);let n=await C(t,"DELETE",`/api/issues/${encodeURIComponent(s)}/labels/${encodeURIComponent(r)}`);return E(t,n),t.ctx.emit(t.ctx.isJson?{removed:r}:`\u6807\u7B7E ${r} \u5DF2\u4ECE issue ${s} \u79FB\u9664`),0}async function _b(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue metadata list <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/metadata`),r=E(t,s)||{},n=r.metadata||r||{};if(t.ctx.isJson)return t.ctx.emit(n),0;let o=Object.entries(n).map(([i,a])=>({key:i,value:String(a),type:typeof a}));return Y(t.ctx,o,{labels:U,empty:"\u65E0 metadata"}),0}async function wb(t){let e=t.arg,s=b(t.args,"--key");e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue metadata get <id|KEY> --key <key>",3),s||y(t.ctx,"\u7F3A\u5C11 --key","\u7528\u6CD5: coder flow issue metadata get <id|KEY> --key <key>",3),A(t);let r=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/metadata`),n=E(t,r)||{},o=n.metadata||n||{};s in o||y(t.ctx,`metadata key '${s}' \u4E0D\u5B58\u5728`,null,4);let i=o[s];return t.ctx.isJson?(t.ctx.emit(i),0):(V(t.ctx,[["key",s],["value",String(i)],["type",typeof i]],null,{labels:U}),0)}async function bb(t){let e=t.arg,s=b(t.args,"--key"),r=b(t.args,"--value"),n=b(t.args,"--type");e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue metadata set <id|KEY> --key <k> --value <v>",3),s||y(t.ctx,"\u7F3A\u5C11 --key",null,3),r===void 0&&y(t.ctx,"\u7F3A\u5C11 --value",null,3),A(t);let o=r;if(!n||n==="auto")try{o=JSON.parse(r)}catch{o=r}else n==="string"?o=r:n==="number"?(o=Number(r),Number.isNaN(o)&&y(t.ctx,`'${r}' \u4E0D\u662F\u6709\u6548\u6570\u5B57`,null,3)):n==="bool"&&(r!=="true"&&r!=="false"&&y(t.ctx,`'${r}' \u4E0D\u662F\u6709\u6548\u5E03\u5C14\uFF08true/false\uFF09`,null,3),o=r==="true");let i=await C(t,"PUT",`/api/issues/${encodeURIComponent(e)}/metadata/${encodeURIComponent(s)}`,{value:o}),a=E(t,i)||{},c=a.metadata||a||{};if(t.ctx.isJson)return t.ctx.emit(c),0;let l=Object.entries(c).map(([u,d])=>({key:u,value:String(d),type:typeof d}));return Y(t.ctx,l,{labels:U,empty:"\uFF08\u7A7A\uFF09"}),0}async function kb(t){let e=t.arg,s=b(t.args,"--key");e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue metadata delete <id|KEY> --key <k>",3),s||y(t.ctx,"\u7F3A\u5C11 --key",null,3),A(t);let r=await C(t,"DELETE",`/api/issues/${encodeURIComponent(e)}/metadata/${encodeURIComponent(s)}`);return E(t,r),t.ctx.emit(t.ctx.isJson?{deleted:s}:`metadata key '${s}' \u5DF2\u5220\u9664`),0}async function xb(t){let e=t.arg;if(e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue delete <id|KEY> [--yes]",3),A(t),!t.args.includes("--yes"))return t.ctx.emit(`\u5C06\u5220\u9664 issue/${e}\uFF08\u9AD8\u5F71\u54CD\uFF09\u3002\u786E\u8BA4\u8BF7\u52A0 --yes`),10;let s=await C(t,"DELETE",`/api/issues/${encodeURIComponent(e)}`);return E(t,s),t.ctx.emit(t.ctx.isJson?{deleted:e}:`issue ${e} \u5DF2\u5220\u9664`),0}async function Sb(t){A(t);let e=new URLSearchParams({workspace_id:t.http.workspaceId}),s=await C(t,"GET",`/api/labels?${e.toString()}`),r=E(t,s)||{},n=Array.isArray(r)?r:r.labels||[];return Y(t.ctx,n.map(o=>({id:o.id||"",name:o.name||"",color:o.color||"",created_at:o.created_at||""})),{labels:U,empty:"\u65E0 label"}),0}async function Ou(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 label id","\u7528\u6CD5: coder flow label get <id>",3),A(t);let s=await C(t,"GET",`/api/labels/${encodeURIComponent(e)}`),r=E(t,s)||{};return V(t.ctx,[["id",r.id||""],["name",r.name||""],["color",r.color||""],["created_at",r.created_at||""]],null,{labels:U}),0}async function Ib(t){let e=b(t.args,"--name"),s=b(t.args,"--color");e||y(t.ctx,"\u7F3A\u5C11 --name","\u7528\u6CD5: coder flow label create --name <n> --color <#hex>",3),s||y(t.ctx,"\u7F3A\u5C11 --color\uFF08\u683C\u5F0F: #3b82f6\uFF09",null,3),A(t);let r=await C(t,"POST","/api/labels",{name:e,color:s}),n=E(t,r)||{};return V(t.ctx,[["id",n.id||""],["name",n.name||""],["color",n.color||""]],null,{labels:U}),0}async function Cb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 label id","\u7528\u6CD5: coder flow label update <id> [--name <n>] [--color <#>]",3),A(t);let s={},r=b(t.args,"--name"),n=b(t.args,"--color");r!==void 0&&(s.name=r),n!==void 0&&(s.color=n),Object.keys(s).length||y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5","--name / --color",3);let o=await C(t,"PUT",`/api/labels/${encodeURIComponent(e)}`,s),i=E(t,o)||{};return V(t.ctx,[["id",i.id||""],["name",i.name||""],["color",i.color||""]],null,{labels:U}),0}async function Eb(t){let e=t.arg;if(e||y(t.ctx,"\u7F3A\u5C11 label id","\u7528\u6CD5: coder flow label delete <id> [--yes]",3),A(t),!t.args.includes("--yes"))return t.ctx.emit(`\u5C06\u5220\u9664 label/${e}\uFF08\u9AD8\u5F71\u54CD\uFF09\u3002\u786E\u8BA4\u8BF7\u52A0 --yes`),10;let s=await C(t,"DELETE",`/api/labels/${encodeURIComponent(e)}`);return E(t,s),t.ctx.emit(t.ctx.isJson?{deleted:e}:`label ${e} \u5DF2\u5220\u9664`),0}async function Ab(t){let e=A(t),s=b(t.args,"--name");s||y(t.ctx,"--name \u662F\u5FC5\u586B\u9879",null,3);let r=b(t.args,"--runtime-id");r||y(t.ctx,"--runtime-id \u662F\u5FC5\u586B\u9879",null,3);let n={workspace_id:e,name:s,runtime_id:r};for(let[c,l]of[["description","description"],["instructions","instructions"],["model","model"],["thinking-level","thinking_level"],["visibility","visibility"],["max-concurrent-tasks","max_concurrent_tasks"]]){let u=b(t.args,`--${c}`);u!==void 0&&(n[l]=u)}let o=await C(t,"POST","/api/agents",n),i=E(t,o)||{},a=b(t.args,"--skill-ids");if(a&&i.id){let c=a.split(",").map(l=>l.trim()).filter(Boolean);if(c.length){let l=await C(t,"PUT",`/api/agents/${encodeURIComponent(i.id)}/skills`,{skill_ids:c});E(t,l)}}return V(t.ctx,vs(i,["id","name","model","runtime_id"]),null,{labels:U,values:we}),0}async function Tb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 agent \u6807\u8BC6","\u7528\u6CD5: coder flow agent skills list <id>",3),A(t);let s=await C(t,"GET",`/api/agents/${encodeURIComponent(e)}/skills`),r=E(t,s)||{},n=Array.isArray(r)?r:r.skills||[];return Y(t.ctx,n.map(o=>({id:o.id||"",name:o.name||"",description:o.description||""})),{labels:U,empty:"\u65E0 skill"}),0}async function $b(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 agent \u6807\u8BC6","\u7528\u6CD5: coder flow agent skills add <agent-id> --skill-ids <id1,id2>",3),A(t);let s=(b(t.args,"--skill-ids")||"").split(",").map(o=>o.trim()).filter(Boolean);s.length||y(t.ctx,"\u7F3A\u5C11 --skill-ids",null,3);let r=await C(t,"POST",`/api/agents/${encodeURIComponent(e)}/skills/add`,{skill_ids:s}),n=E(t,r)||{};return t.ctx.emit(t.ctx.isJson?n:`skill \u5DF2\u6DFB\u52A0\u5230 agent ${e}`),0}async function Ub(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 agent \u6807\u8BC6","\u7528\u6CD5: coder flow agent skills set <agent-id> --skill-ids <id1,id2>",3),A(t);let s=b(t.args,"--skill-ids")||"",r=s?s.split(",").map(i=>i.trim()).filter(Boolean):[],n=await C(t,"PUT",`/api/agents/${encodeURIComponent(e)}/skills`,{skill_ids:r}),o=E(t,n)||{};return t.ctx.emit(t.ctx.isJson?o:`agent ${e} \u7684 skill \u5DF2\u66F4\u65B0`),0}async function vb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 agent \u6807\u8BC6","\u7528\u6CD5: coder flow agent env get <id>",3),A(t);let s=await C(t,"GET",`/api/agents/${encodeURIComponent(e)}/env`),r=E(t,s)||{},n=r.env||r||{};if(t.ctx.isJson)return t.ctx.emit(n),0;let o=Object.entries(n).map(([i,a])=>({key:i,value:String(a)}));return Y(t.ctx,o,{labels:U,empty:"\u65E0\u73AF\u5883\u53D8\u91CF"}),0}async function Ob(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 agent \u6807\u8BC6",`\u7528\u6CD5: coder flow agent env set <id> --custom-env '{"KEY":"val"}'`,3),A(t);let s=b(t.args,"--custom-env");s||y(t.ctx,"\u7F3A\u5C11 --custom-env\uFF08JSON \u5BF9\u8C61\uFF09",null,3);let r;try{r=JSON.parse(s)}catch{y(t.ctx,"--custom-env \u4E0D\u662F\u6709\u6548 JSON",null,3)}let n=await C(t,"PUT",`/api/agents/${encodeURIComponent(e)}/env`,{env:r}),o=E(t,n)||{};return t.ctx.emit(t.ctx.isJson?o:`agent ${e} \u7684\u73AF\u5883\u53D8\u91CF\u5DF2\u66F4\u65B0`),0}async function Db(t){let e=t.arg,s=b(t.args,"--set")||b(t.args,"--status");e||y(t.ctx,"\u7F3A\u5C11 project \u6807\u8BC6","\u7528\u6CD5: coder flow project status <id> --set <status>",3),s||y(t.ctx,"\u7F3A\u5C11 --set <status>",null,3),A(t);let r=await C(t,"PUT",`/api/projects/${encodeURIComponent(e)}`,{status:s}),n=E(t,r)||{};return V(t.ctx,[["id",n.id||""],["title",n.title||""],["status",n.status||""]],null,{labels:U}),0}async function Rb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 project \u6807\u8BC6","\u7528\u6CD5: coder flow project resource list <project-id>",3),A(t);let s=await C(t,"GET",`/api/projects/${encodeURIComponent(e)}/resources`),r=E(t,s)||{},n=Array.isArray(r)?r:r.resources||[];return Y(t.ctx,n.map(o=>({id:o.id||"",resource_type:o.resource_type||"",label:o.label||""})),{labels:U,empty:"\u65E0\u8D44\u6E90"}),0}async function Lb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 project \u6807\u8BC6","\u7528\u6CD5: coder flow project resource add <project-id> --type <t> --url <u>",3),A(t);let s=b(t.args,"--type")||"github_repo",r=b(t.args,"--url"),n=b(t.args,"--local-path"),o=b(t.args,"--daemon-id"),i=b(t.args,"--label"),a;if(s==="github_repo"){r||y(t.ctx,"github_repo \u9700\u8981 --url",null,3),a={url:r};let d=b(t.args,"--default-branch-hint");d&&(a.default_branch_hint=d)}else s==="local_directory"?((!n||!o)&&y(t.ctx,"local_directory \u9700\u8981 --local-path \u548C --daemon-id",null,3),a={local_path:n,daemon_id:o}):y(t.ctx,`\u672A\u77E5 resource type '${s}'\uFF1B\u652F\u6301: github_repo, local_directory`,null,3);let c={resource_type:s,resource_ref:a};i&&(c.label=i);let l=await C(t,"POST",`/api/projects/${encodeURIComponent(e)}/resources`,c),u=E(t,l)||{};return V(t.ctx,[["id",u.id||""],["resource_type",u.resource_type||""]],null,{labels:U}),0}async function Pb(t){let e=Ce(t.args,{valueFlags:[]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow project resource remove <project-id> <resource-id>",3),A(t);let n=await C(t,"DELETE",`/api/projects/${encodeURIComponent(s)}/resources/${encodeURIComponent(r)}`);return E(t,n),t.ctx.emit(t.ctx.isJson?{removed:r}:`resource ${r} \u5DF2\u4ECE project ${s} \u79FB\u9664`),0}async function Nb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 squad \u6807\u8BC6","\u7528\u6CD5: coder flow squad member list <squad-id>",3),A(t);let s=await C(t,"GET",`/api/squads/${encodeURIComponent(e)}/members`),r=E(t,s)||{},n=Array.isArray(r)?r:r.members||[];return Y(t.ctx,n.map(o=>({member_id:o.member_id||"",member_type:o.member_type||"",role:o.role||""})),{labels:U,empty:"\u65E0\u6210\u5458"}),0}async function qb(t){let e=t.arg,s=b(t.args,"--member-id"),r=b(t.args,"--type")||"agent",n=b(t.args,"--role")||"member";e||y(t.ctx,"\u7F3A\u5C11 squad \u6807\u8BC6","\u7528\u6CD5: coder flow squad member add <squad-id> --member-id <id> [--type agent|member] [--role <r>]",3),s||y(t.ctx,"\u7F3A\u5C11 --member-id",null,3),A(t);let o={member_type:r,member_id:s,role:n},i=await C(t,"POST",`/api/squads/${encodeURIComponent(e)}/members`,o),a=E(t,i)||{};return t.ctx.emit(t.ctx.isJson?a:`\u6210\u5458 ${s} \u5DF2\u52A0\u5165 squad ${e}`),0}async function jb(t){let e=t.arg,s=b(t.args,"--member-id"),r=b(t.args,"--member-type")||"agent",n=b(t.args,"--role");e||y(t.ctx,"\u7F3A\u5C11 squad \u6807\u8BC6","\u7528\u6CD5: coder flow squad member set-role <squad-id> --member-id <id> --role <r>",3),s||y(t.ctx,"\u7F3A\u5C11 --member-id",null,3),n||y(t.ctx,"\u7F3A\u5C11 --role",null,3),A(t);let o={member_type:r,member_id:s,role:n},i=await C(t,"PATCH",`/api/squads/${encodeURIComponent(e)}/members/role`,o),a=E(t,i)||{};return t.ctx.emit(t.ctx.isJson?a:`\u6210\u5458 ${s} \u7684\u89D2\u8272\u5DF2\u66F4\u65B0\u4E3A ${n}`),0}async function Mb(t){let e=t.arg,s=b(t.args,"--member-id"),r=b(t.args,"--type")||"agent";e||y(t.ctx,"\u7F3A\u5C11 squad \u6807\u8BC6","\u7528\u6CD5: coder flow squad member remove <squad-id> --member-id <id>",3),s||y(t.ctx,"\u7F3A\u5C11 --member-id",null,3),A(t);let n={member_type:r,member_id:s},o=await C(t,"DELETE",`/api/squads/${encodeURIComponent(e)}/members`,n);return E(t,o),t.ctx.emit(t.ctx.isJson?{removed:s}:`\u6210\u5458 ${s} \u5DF2\u4ECE squad ${e} \u79FB\u9664`),0}async function Gb(t){let e=t.arg,s=t.args.find(i=>!i.startsWith("-")&&i!==e)||b(t.args,"--outcome");e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow squad activity <issue-id> <outcome> [--reason <r>]",3),(!s||!["action","no_action","failed"].includes(s))&&y(t.ctx,"outcome \u5FC5\u987B\u662F action / no_action / failed",null,3),A(t);let r=b(t.args,"--reason")||"",n=await C(t,"POST",`/api/issues/${encodeURIComponent(e)}/squad-evaluated`,{outcome:s,reason:r}),o=E(t,n)||{};return t.ctx.emit(t.ctx.isJson?o:`squad \u8BC4\u4F30\u5DF2\u8BB0\u5F55: ${s}\uFF08issue ${e}\uFF09`),0}async function Fb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 autopilot \u6807\u8BC6","\u7528\u6CD5: coder flow autopilot trigger-add <id> --kind schedule --cron '0 9 * * *'",3),A(t);let s=b(t.args,"--kind")||"schedule";s!=="schedule"&&s!=="webhook"&&y(t.ctx,"--kind \u987B\u4E3A schedule \u6216 webhook",null,3);let r={kind:s};if(s==="schedule"){let a=b(t.args,"--cron");a||y(t.ctx,"schedule trigger \u9700\u8981 --cron",null,3),r.cron_expression=a;let c=b(t.args,"--timezone");c&&(r.timezone=c)}let n=b(t.args,"--label");n&&(r.label=n);let o=await C(t,"POST",`/api/autopilots/${encodeURIComponent(e)}/triggers`,r),i=E(t,o)||{};return V(t.ctx,[["id",i.id||""],["kind",i.kind||""],["label",i.label||""]],null,{labels:U}),0}async function Bb(t){let e=Ce(t.args,{valueFlags:["--cron","--timezone","--label"]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow autopilot trigger-update <autopilot-id> <trigger-id> [--cron ...] [--enabled true|false]",3),A(t);let n={},o=b(t.args,"--cron"),i=b(t.args,"--timezone"),a=b(t.args,"--label"),c=b(t.args,"--enabled");o!==void 0&&(n.cron_expression=o),i!==void 0&&(n.timezone=i),a!==void 0&&(n.label=a),c!==void 0&&(n.enabled=c==="true"),Object.keys(n).length||y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5","--cron / --timezone / --label / --enabled",3);let l=await C(t,"PATCH",`/api/autopilots/${encodeURIComponent(s)}/triggers/${encodeURIComponent(r)}`,n),u=E(t,l)||{};return V(t.ctx,[["id",u.id||""],["kind",u.kind||""]],null,{labels:U}),0}async function Zb(t){let e=Ce(t.args,{valueFlags:[]}),s=e[0],r=e[1];if((!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow autopilot trigger-delete <autopilot-id> <trigger-id>",3),A(t),!t.args.includes("--yes"))return t.ctx.emit(`\u5C06\u5220\u9664 trigger ${r}\uFF08\u9AD8\u5F71\u54CD\uFF09\u3002\u786E\u8BA4\u8BF7\u52A0 --yes`),10;let n=await C(t,"DELETE",`/api/autopilots/${encodeURIComponent(s)}/triggers/${encodeURIComponent(r)}`);return E(t,n),t.ctx.emit(t.ctx.isJson?{deleted:r}:`trigger ${r} \u5DF2\u5220\u9664`),0}async function Vb(t){let e=Ce(t.args,{valueFlags:[]}),s=e[0],r=e[1];if((!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow autopilot trigger-rotate-url <autopilot-id> <trigger-id> [--yes]",3),A(t),!t.args.includes("--yes"))return t.ctx.emit("\u6B64\u64CD\u4F5C\u5C06\u7ACB\u5373\u4F7F\u5F53\u524D webhook URL \u5931\u6548\u3002\u786E\u8BA4\u8BF7\u52A0 --yes"),10;let n=await C(t,"POST",`/api/autopilots/${encodeURIComponent(s)}/triggers/${encodeURIComponent(r)}/rotate-webhook-token`,{}),o=E(t,n)||{};return V(t.ctx,[["id",o.id||""],["webhook_url",o.webhook_url||""]],null,{labels:U}),0}async function Wb(t){A(t);let e=b(t.args,"--url");e||y(t.ctx,"\u7F3A\u5C11 --url","\u7528\u6CD5: coder flow skill import --url <url> [--on-conflict fail|overwrite|rename|skip]",3);let s=b(t.args,"--on-conflict")||"fail";["fail","overwrite","rename","skip"].includes(s)||y(t.ctx,"--on-conflict \u987B\u4E3A fail / overwrite / rename / skip",null,3);let r=await C(t,"POST","/api/skills/import",{url:e,on_conflict:s}),n=E(t,r)||{};return V(t.ctx,[["id",n.id||n.skill?.id||""],["name",n.name||n.skill?.name||""],["status",n.status||"created"]],null,{labels:U}),0}async function Kb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11\u641C\u7D22\u8BCD","\u7528\u6CD5: coder flow skill search <query>",3),A(t);let s=await C(t,"GET",`/api/skills/search?q=${encodeURIComponent(e)}`),r=E(t,s)||{},n=Array.isArray(r)?r:r.results||[];return Y(t.ctx,n.map(o=>({name:o.name||"",url:o.url||"",source:o.source||"",description:o.description||""})),{labels:U,empty:"\u65E0\u5339\u914D skill"}),0}async function zb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 skill \u6807\u8BC6","\u7528\u6CD5: coder flow skill files list <skill-id>",3),A(t);let s=await C(t,"GET",`/api/skills/${encodeURIComponent(e)}/files`),r=E(t,s)||{},n=Array.isArray(r)?r:r.files||[];return Y(t.ctx,n.map(o=>({id:o.id||"",path:o.path||"",updated_at:o.updated_at||""})),{labels:U,empty:"\u65E0\u6587\u4EF6"}),0}async function Jb(t){let e=t.arg,s=b(t.args,"--path"),r=b(t.args,"--content");e||y(t.ctx,"\u7F3A\u5C11 skill \u6807\u8BC6","\u7528\u6CD5: coder flow skill files upsert <skill-id> --path <p> --content <c>",3),s||y(t.ctx,"\u7F3A\u5C11 --path",null,3),r||y(t.ctx,"\u7F3A\u5C11 --content",null,3),A(t);let n=await C(t,"PUT",`/api/skills/${encodeURIComponent(e)}/files`,{path:s,content:r}),o=E(t,n)||{};return V(t.ctx,[["id",o.id||""],["path",o.path||s]],null,{labels:U}),0}async function Hb(t){let e=Ce(t.args,{valueFlags:[]}),s=e[0],r=e[1];if((!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow skill files delete <skill-id> <file-id>",3),A(t),!t.args.includes("--yes"))return t.ctx.emit(`\u5C06\u5220\u9664 skill file ${r}\uFF08\u9AD8\u5F71\u54CD\uFF09\u3002\u786E\u8BA4\u8BF7\u52A0 --yes`),10;let n=await C(t,"DELETE",`/api/skills/${encodeURIComponent(s)}/files/${encodeURIComponent(r)}`);return E(t,n),t.ctx.emit(t.ctx.isJson?{deleted:r}:`skill file ${r} \u5DF2\u5220\u9664`),0}async function Du(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 runtime \u6807\u8BC6","\u7528\u6CD5: coder flow runtime get <id>",3),A(t);let s=new URLSearchParams;s.set("workspace_id",t.http.workspaceId);let r=await C(t,"GET",`/api/runtimes?${s.toString()}`),n=E(t,r)||{},i=(Array.isArray(n)?n:n.runtimes||[]).find(c=>c.id===e||c.name===e);i||y(t.ctx,`runtime \u4E0D\u5B58\u5728: ${e}`,null,4);let a=["id","name","status","provider","device_info","runtime_mode","visibility","last_seen_at","created_at"];return V(t.ctx,vs(i,a),null,{labels:U}),0}async function Yb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 runtime \u6807\u8BC6","\u7528\u6CD5: coder flow runtime usage <id> [--days <n>]",3),A(t);let s=b(t.args,"--days")||"90",r=await C(t,"GET",`/api/runtimes/${encodeURIComponent(e)}/usage?days=${s}`),n=E(t,r)||{},o=Array.isArray(n)?n:n.usage||[];return Y(t.ctx,o.map(i=>({date:i.date||"",provider:i.provider||"",model:i.model||"",input_tokens:String(i.input_tokens??""),output_tokens:String(i.output_tokens??"")})),{labels:U,empty:"\u65E0\u7528\u91CF\u6570\u636E"}),0}async function Xb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 runtime \u6807\u8BC6","\u7528\u6CD5: coder flow runtime activity <id>",3),A(t);let s=await C(t,"GET",`/api/runtimes/${encodeURIComponent(e)}/activity`),r=E(t,s)||{},n=Array.isArray(r)?r:r.activity||[];return Y(t.ctx,n.map(o=>({hour:o.hour||"",count:String(o.count??"")})),{labels:U,empty:"\u65E0\u6D3B\u52A8\u6570\u636E"}),0}async function Qb(t){let e=t.arg,s=b(t.args,"--target-version");e||y(t.ctx,"\u7F3A\u5C11 runtime \u6807\u8BC6","\u7528\u6CD5: coder flow runtime initiate-update <id> --target-version <v>",3),s||y(t.ctx,"\u7F3A\u5C11 --target-version",null,3),A(t);let r=await C(t,"POST",`/api/runtimes/${encodeURIComponent(e)}/update`,{target_version:s}),n=E(t,r)||{};return V(t.ctx,[["id",n.id||""],["status",n.status||""]],null,{labels:U}),0}async function ek(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 runtime \u6807\u8BC6","\u7528\u6CD5: coder flow runtime models <id>",3),A(t);let s=await C(t,"POST",`/api/runtimes/${encodeURIComponent(e)}/models`,{}),n=(E(t,s)||{}).id;n||y(t.ctx,"\u670D\u52A1\u7AEF\u672A\u8FD4\u56DE request id",null,1);let o=9e4,i=2e3,a=Date.now()+o,c;for(;Date.now()<a;){await new Promise(h=>setTimeout(h,i));let u=await C(t,"GET",`/api/runtimes/${encodeURIComponent(e)}/models/${encodeURIComponent(n)}`),d=E(t,u)||{},f=d.status;if(f==="completed"){c=d;break}(f==="failed"||f==="timeout")&&y(t.ctx,`\u83B7\u53D6\u6A21\u578B\u5217\u8868\u5931\u8D25: ${d.error||f}`,null,1)}if(c||y(t.ctx,"\u83B7\u53D6\u6A21\u578B\u5217\u8868\u8D85\u65F6\uFF08runtime \u672A\u54CD\u5E94\uFF09",null,1),!c.supported)return t.ctx.emit(t.ctx.isJson?{supported:!1,models:[]}:"\u8BE5 runtime \u4E0D\u652F\u6301\u6A21\u578B\u9009\u62E9"),0;let l=c.models||[];return t.ctx.isJson?(t.ctx.emit({supported:!0,models:l}),0):(Y(t.ctx,l.map(u=>({id:u.id||"",label:u.label||"",provider:u.provider||"",default:u.default?"\u2713":"",thinking:u.thinking?(u.thinking.supported_levels||[]).join(","):""})),{labels:{id:"Model ID",label:"\u540D\u79F0",provider:"Provider",default:"\u9ED8\u8BA4",thinking:"Thinking"},empty:"\u65E0\u53EF\u7528\u6A21\u578B"}),0)}async function tk(t){A(t);let e=await C(t,"GET","/api/workspaces"),s=E(t,e)||{},r=Array.isArray(s)?s:s.workspaces||[];return Y(t.ctx,r.map(n=>({id:n.id||"",name:n.name||"",slug:n.slug||""})),{labels:U,empty:"\u65E0 workspace"}),0}async function Ru(t){A(t);let e=t.arg||t.http.workspaceId,s=await C(t,"GET",`/api/workspaces/${encodeURIComponent(e)}`),r=E(t,s)||{};return V(t.ctx,[["id",r.id||""],["name",r.name||""],["slug",r.slug||""],["description",r.description||""]],null,{labels:U}),0}async function sk(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 workspace id/slug","\u7528\u6CD5: coder flow workspace switch <id|slug>",3),A(t);let s=await C(t,"GET",`/api/workspaces/${encodeURIComponent(e)}`),r=E(t,s)||{};return t.ctx.setTeam&&t.ctx.setTeam(r.id,r.name||""),t.ctx.emit(t.ctx.isJson?r:`\u5DF2\u5207\u6362\u5230 workspace: ${r.name||r.id}`),0}async function rk(t){let e=t.arg||t.http.workspaceId;A(t);let s={},r=b(t.args,"--name"),n=b(t.args,"--description"),o=b(t.args,"--context"),i=b(t.args,"--issue-prefix");r!==void 0&&(s.name=r),n!==void 0&&(s.description=n),o!==void 0&&(s.context=o),i!==void 0&&(s.issue_prefix=i),Object.keys(s).length||y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5","--name / --description / --context / --issue-prefix",3);let a=await C(t,"PATCH",`/api/workspaces/${encodeURIComponent(e)}`,s),c=E(t,a)||{};return V(t.ctx,[["id",c.id||""],["name",c.name||""],["slug",c.slug||""]],null,{labels:U}),0}async function nk(t){let e=t.arg||t.http.workspaceId;A(t);let s=await C(t,"GET",`/api/workspaces/${encodeURIComponent(e)}/members`),r=E(t,s)||{},n=Array.isArray(r)?r:r.members||[];return Y(t.ctx,n.map(o=>({id:o.id||"",name:o.name||o.username||"",role:o.role||""})),{labels:U,empty:"\u65E0\u6210\u5458"}),0}async function ok(t){A(t);let e=await C(t,"GET",`/api/workspaces/${t.http.workspaceId}/repos`),s=E(t,e)||{},r=Array.isArray(s)?s:s.repos||s.repositories||[];return Y(t.ctx,r.map(n=>({url:n.url||"",description:n.description||""})),{labels:U,empty:"\u65E0 repo"}),0}async function ik(t){A(t);let e=Ce(t.args,{valueFlags:["--description"]}),s=b(t.args,"--description");e.length||y(t.ctx,"\u7F3A\u5C11 repo URL","\u7528\u6CD5: coder flow repo add <url> [<url>...]",3);let r=e.map(i=>s&&e.length===1?{url:i,description:s}:{url:i}),n=await C(t,"POST",`/api/workspaces/${t.http.workspaceId}/repos`,{repos:r}),o=E(t,n)||{};return t.ctx.emit(t.ctx.isJson?o:`${e.length} \u4E2A repo \u5DF2\u6DFB\u52A0`),0}async function Lu(t){A(t);let e=Ce(t.args,{valueFlags:[]});e.length||y(t.ctx,"\u7F3A\u5C11 repo URL","\u7528\u6CD5: coder flow repo remove <url> [<url>...]",3);let s=await C(t,"DELETE",`/api/workspaces/${t.http.workspaceId}/repos`,{urls:e}),r=E(t,s)||{};return t.ctx.emit(t.ctx.isJson?r:`${e.length} \u4E2A repo \u5DF2\u79FB\u9664`),0}async function ak(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 repo URL","\u7528\u6CD5: coder flow repo checkout <url> [--ref <branch>]",3),A(t);let s={url:e},r=b(t.args,"--ref");r&&(s.ref=r);let n=await C(t,"POST",`/api/workspaces/${t.http.workspaceId}/repos/checkout`,s),o=E(t,n)||{};return V(t.ctx,[["path",o.path||""],["url",e]],null,{labels:U}),0}async function ck(t){A(t);let e=await C(t,"GET","/api/me"),s=E(t,e)||{};return V(t.ctx,[["id",s.id||""],["name",s.name||s.display_name||""],["email",s.email||""],["description",s.description||s.profile_description||""]],null,{labels:U}),0}async function lk(t){A(t);let e={},s=b(t.args,"--description");t.args.includes("--clear")?e.profile_description="":s!==void 0?e.profile_description=s:y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5","--description <text> \u6216 --clear",3);let n=await C(t,"PATCH","/api/me",e),o=E(t,n)||{};return V(t.ctx,[["id",o.id||""],["description",o.description||o.profile_description||""]],null,{labels:U}),0}async function uk(t){let e=Ce(t.args,{valueFlags:["--url","--ref","--label","--position","--default-branch-hint","--local-path","--daemon-id","--ref-label"]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow project resource update <project-id> <resource-id> [--url <u>] [--label <l>]",3),A(t);let n={},o=b(t.args,"--url"),i=b(t.args,"--ref"),a=b(t.args,"--label"),c=b(t.args,"--position");if(i)try{n.resource_ref=JSON.parse(i)}catch{y(t.ctx,"--ref \u4E0D\u662F\u6709\u6548 JSON",null,3)}else if(o){n.resource_ref={url:o};let d=b(t.args,"--default-branch-hint");d&&(n.resource_ref.default_branch_hint=d)}a!==void 0&&(n.label=a),c!==void 0&&(n.position=Number(c)),Object.keys(n).length||y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5","--url / --ref / --label / --position",3);let l=await C(t,"PUT",`/api/projects/${encodeURIComponent(s)}/resources/${encodeURIComponent(r)}`,n),u=E(t,l)||{};return V(t.ctx,[["id",u.id||""],["resource_type",u.resource_type||""],["label",u.label||""]],null,{labels:U}),0}async function Mu(t){let{spawn:e}=require("child_process"),{checkHealth:s}=ks(),{daemonLogPath:r,writePid:n}=Ht(),{loadConfig:o}=Mn(),i=require("fs"),a=require("path"),c=t.args.includes("--foreground"),l=r(),u=10*1024*1024,d=5;function f(){try{if(!i.existsSync(l)||i.statSync(l).size<u)return;let F=`${l}.${d}`;i.existsSync(F)&&i.unlinkSync(F);for(let z=d-1;z>=1;z--){let j=`${l}.${z}`;i.existsSync(j)&&i.renameSync(j,`${l}.${z+1}`)}i.renameSync(l,`${l}.1`)}catch{}}function h(F=new Date){let z=(pe,ve=2)=>String(pe).padStart(ve,"0"),j=-F.getTimezoneOffset(),He=j>=0?"+":"-",Ue=z(Math.floor(Math.abs(j)/60)),Os=z(Math.abs(j)%60);return`${F.getFullYear()}-${z(F.getMonth()+1)}-${z(F.getDate())} ${z(F.getHours())}:${z(F.getMinutes())}:${z(F.getSeconds())}.${z(F.getMilliseconds(),3)} ${He}${Ue}:${Os}`}if(c){let{DaemonProcess:F}=$u(),z=mk(t),j=o(z);j.token=t.ctx.getApiKey?t.ctx.getApiKey():null,j.coderBaseUrl=t.ctx.baseUrl||j.coderBaseUrl,i.mkdirSync(a.dirname(l),{recursive:!0}),f();let He=pe=>{f();let ve=`[${h()}] ${pe}
|
|
504
|
-
`;try{i.appendFileSync(l,
|
|
503
|
+
`+s)}function Dt(t,e,s,r,n,o){if(t.listenerCount("wsClientError")){let i=new Error(n);Error.captureStackTrace(i,Dt),t.emit("wsClientError",i,s,e)}else Us(s,r,n,o)}});var bu=k((Dx,wu)=>{"use strict";var jw=lu(),Mw=xr(),Gw=Qt(),Fw=lo(),Bw=po(),Zw=wo(),Ue=Er(),_u=yu();Ue.createWebSocketStream=jw;Ue.extension=Mw;Ue.PerMessageDeflate=Gw;Ue.Receiver=Fw;Ue.Sender=Bw;Ue.Server=_u;Ue.subprotocol=Zw;Ue.WebSocket=Ue;Ue.WebSocketServer=_u;wu.exports=Ue});var Su=k((Px,xu)=>{var Rx=require("https"),Lx=require("http"),ko=class{constructor(e,s,r,n,o,i){this.cfg=e,this.token=s,this.cliVersion=r||"dev",this.onWakeup=n,this.onHeartbeatAck=o,this.log=i,this._running=!1,this._ws=null,this._backoff=1e3,this._abortSignal=null,this._getRuntimeIds=null}start(e,s){this._running=!0,this._abortSignal=e,this._getRuntimeIds=s,this._loop()}stop(){if(this._running=!1,this._ws){try{this._ws.close()}catch{}this._ws=null}}async _loop(){for(;this._running&&(!this._abortSignal||!this._abortSignal.aborted);){let e=this._getRuntimeIds?this._getRuntimeIds():[];if(e.length===0){await ku(2e3);continue}try{await this._connect(e),this._backoff=1e3}catch(s){if(!this._running)return;this.log(`[wakeup] ws unavailable (${s.message}); polling fallback active, retry in ${this._backoff}ms`)}if(!this._running)return;await ku(Vw(this._backoff)),this._backoff<3e4&&(this._backoff=Math.min(this._backoff*2,3e4))}}_buildWsUrl(e){let r=(this.cfg.serverUrl||"https://flow.makecoder.com").replace(/\/+$/,"").replace(/^https?:\/\//,o=>o==="https://"?"wss://":"ws://"),n=[...e].sort().join(",");return`${r}/api/daemon/ws?runtime_ids=${encodeURIComponent(n)}`}async _connect(e){let s=this._buildWsUrl(e),r;try{r=bu()}catch{throw new Error("ws module not available \u2014 install with: npm install ws")}return new Promise((n,o)=>{let i={Authorization:`Bearer ${this.token}`,"X-Client-Platform":"daemon","X-Client-Version":this.cliVersion},a=new r(s,{headers:i,handshakeTimeout:1e4});this._ws=a;let c=()=>{try{a.close()}catch{}};this._abortSignal&&this._abortSignal.addEventListener("abort",c,{once:!0});let l=null,u=()=>{let f=this._getRuntimeIds?this._getRuntimeIds():[];for(let h of f)try{a.send(JSON.stringify({type:"daemon:heartbeat",payload:{runtime_id:h,supports_batch_import:!0}}))}catch{}},d=()=>{l&&(clearInterval(l),l=null)};a.on("open",()=>{this.log(`[wakeup] websocket connected (${e.length} runtimes)`),this._backoff=1e3,u();let f=this.cfg.heartbeatInterval||15e3;l=setInterval(u,f),this.onWakeup("")}),a.on("message",f=>{try{let h=JSON.parse(f.toString());this._handleMessage(h)}catch(h){this.log(`[wakeup] invalid message: ${h.message}`)}}),a.on("error",f=>{d(),this._abortSignal&&this._abortSignal.removeEventListener("abort",c),this._ws=null,o(f)}),a.on("close",(f,h)=>{d(),this._abortSignal&&this._abortSignal.removeEventListener("abort",c),this._ws=null,this._running&&this.log(`[wakeup] websocket closed (${f})`),n()})})}_handleMessage(e){let s=e.type;if(s==="daemon:task_available"){let r=e.payload||{},n=r.runtime_id||"",o=r.task_id||"";this.log(`[wakeup] task_available runtimeId=${n} taskId=${o}`),this.onWakeup(n)}else s==="daemon:heartbeat_ack"&&this.onHeartbeatAck&&this.onHeartbeatAck(e.payload||{})}};function ku(t){return new Promise(e=>setTimeout(e,t))}function Vw(t){return Math.max(500,t+(Math.random()-.5)*t*.2)}xu.exports={TaskWakeupLoop:ko}});var $u=k((Nx,Tu)=>{var xo=require("os"),{HealthServer:Ww}=ks(),{DaemonClient:Kw}=Zc(),{Poller:Iu}=Yn(),{Heartbeat:zw}=ml(),{TaskWakeupLoop:Jw}=Su(),{loadOrCreateDaemonId:Hw}=Ht(),{runGc:Cu}=Kn(),{getActiveWorkdirs:Eu}=Jn(),Au=4320*60*1e3,So=class{constructor(e,s){this.cfg=e,this.log=s||console.error,this._runtimeIds=[],this._runtimeProviders={},this._workspaceForRuntime={},this._pollers={},this._heartbeat=null,this._wakeupLoop=null,this._health=null,this._client=null,this._daemonId=null}async run(e){let s=this.cfg,r=e&&typeof e.abort=="function"?e:null,n=r?r.signal:e;this._health=new Ww(s.healthPort||19514),this._health.setShutdown(()=>{r?r.abort():process.emit("SIGTERM")}),this._health.start(),this._daemonId=Hw(s.daemonId),this._health.daemonId=this._daemonId,this._client=new Kw(s.serverUrl,s.token,s.cliVersion||"dev"),this.log(`[daemon] starting id=${this._daemonId} server=${s.serverUrl} version=${s.cliVersion||"dev"}`),this.log(`[daemon] config: pollInterval=${s.pollInterval}ms heartbeatInterval=${s.heartbeatInterval}ms maxConcurrentTasks=${s.maxConcurrentTasks}`);try{let i=await this._client.renewToken();i?.renewed&&this.log(`[daemon] token renewed expires_at=${i.expires_at}`)}catch(i){this.log(`[daemon] token renewal preflight skipped: ${i.message}`)}let o=[];try{this.log(`[daemon] fetching workspaces from ${s.serverUrl}/api/workspaces`),o=await this._client.getWorkspaces(),this.log(`[daemon] found ${o.length} workspace(s): ${o.map(i=>i.id||i.name).join(", ")||"(none)"}`)}catch(i){this.log(`[daemon] getWorkspaces error: ${i.message}`)}this._health.workspaces=o.map(i=>i.id||i.name||"");for(let i of o)await this._registerWorkspace(i);this._runtimeIds.length===0&&this.log("[daemon] WARNING: no runtimes registered \u2014 tasks cannot be claimed"),this._health.agents=this._runtimeIds.map(i=>`claude:${i}`),this._health.status="running",this._startGcLoop(s,n);for(let i of this._runtimeIds){let a=new Iu(s,this._client,i,this.log);this._pollers[i]=a,a.start(n)}this.log(`[daemon] started ${Object.keys(this._pollers).length} poller(s)`),this._wakeupLoop=new Jw(s,s.token,s.cliVersion||"dev",i=>{if(i){let a=this._pollers[i];if(a)this.log(`[daemon] wakeup signal for runtime=${i.slice(0,8)}`),a.wakeup();else{this.log(`[daemon] wakeup signal for unknown runtime=${i.slice(0,8)}, fanning out`);for(let c of Object.values(this._pollers))c.wakeup()}}else for(let a of Object.values(this._pollers))a.wakeup()},i=>{i&&i.runtime_gone&&i.runtime_id&&(this.log(`[daemon] heartbeat_ack: runtime ${i.runtime_id} gone`),this._handleRuntimeGone(i.runtime_id))},this.log),this._wakeupLoop.start(n,()=>this._runtimeIds),this._heartbeat=new zw(s,this._client,()=>this._runtimeIds,this.log,i=>this._handleRuntimeGone(i),i=>this._runtimeProviders[i]||"claude"),this._heartbeat.start(n),this._startWorkspaceSyncLoop(n),this._startTokenRenewalLoop(n),this.log("[daemon] running \u2014 waiting for tasks"),await Yw(n),this.log("[daemon] shutting down"),this._heartbeat.stop(),this._wakeupLoop.stop();for(let i of Object.values(this._pollers))i.stop();if(this._runtimeIds.length)try{await this._client.deregister(this._runtimeIds),this.log(`[daemon] deregistered ${this._runtimeIds.length} runtime(s)`)}catch(i){this.log(`[daemon] deregister error: ${i.message}`)}this._health.close(),this.log("[daemon] stopped")}async _registerWorkspace(e){try{this.log(`[daemon] registering runtime for workspace=${e.id||e.name} deviceName=${this.cfg.deviceName||xo.hostname()}`);let r=((await this._client.register({workspaceId:e.id,daemonId:this._daemonId,deviceName:this.cfg.deviceName||xo.hostname(),cliVersion:this.cfg.cliVersion||"dev",runtimes:[{name:this.cfg.runtimeName||`Claude (${xo.hostname()})`,type:"claude",version:this.cfg.cliVersion||"dev",status:"online"}]}))?.runtimes||[]).map(n=>n.id).filter(Boolean);for(let n of r)this._runtimeProviders[n]="claude",this._workspaceForRuntime[n]=e.id||"";this._runtimeIds.push(...r),this.log(`[daemon] registered workspace=${e.id} runtimeIds=[${r.join(", ")}]`);for(let n of r)try{await this._client.recoverOrphans(n),this.log(`[daemon] recover-orphans OK runtime=${n.slice(0,8)}`)}catch(o){this.log(`[daemon] recover-orphans failed runtime=${n.slice(0,8)}: ${o.message}`)}}catch(s){this.log(`[daemon] register error workspace=${e.id}: ${s.message}`)}}async _handleRuntimeGone(e){let s=this._runtimeIds.indexOf(e);s!==-1&&this._runtimeIds.splice(s,1);let r=this._runtimeProviders[e]||"claude";delete this._runtimeProviders[e];let n=this._pollers[e];n&&(n.stop(),delete this._pollers[e]),this.log(`[daemon] runtime ${e.slice(0,8)} gone (provider=${r}), re-registering`);try{let o=await this._client.getWorkspaces();for(let i of o){let a=this._runtimeIds.length;await this._registerWorkspace(i);let c=this._runtimeIds.slice(a);for(let l of c){let u=new Iu(this.cfg,this._client,l,this.log);this._pollers[l]=u,u.start()}}}catch(o){this.log(`[daemon] re-register after runtime_gone failed: ${o.message}`)}}_startWorkspaceSyncLoop(e){let r=async()=>{if(!(e&&e.aborted)){try{let n=await this._client.getWorkspaces();for(let o of n){let i=o.id||o.name||"";if(!this._runtimeIds.some(c=>this._workspaceForRuntime&&this._workspaceForRuntime[c]===i)){let c=this._runtimeIds.length;await this._registerWorkspace(o);let l=this._runtimeIds.slice(c);for(let u of l)if(!this._pollers[u]){let{Poller:d}=Yn(),f=new d(this.cfg,this._client,u,this.log);this._pollers[u]=f,f.start(e),this.log(`[daemon] workspace-sync: started poller for new runtime=${u.slice(0,8)}`)}}}}catch(n){this.log(`[daemon] workspace-sync error: ${n.message}`)}(!e||!e.aborted)&&setTimeout(r,3e4)}};setTimeout(r,3e4)}_startGcLoop(e,s){if(!e.gcEnabled)return;let r=e.gcInterval||36e5,n=setTimeout(()=>{if(s&&s.aborted)return;Cu(e,Eu());let o=setInterval(()=>{if(s&&s.aborted){clearInterval(o);return}Cu(e,Eu())},r);s&&s.addEventListener("abort",()=>clearInterval(o),{once:!0})},3e4);s&&s.addEventListener("abort",()=>clearTimeout(n),{once:!0})}_startTokenRenewalLoop(e){let s=async()=>{if(!(e&&e.aborted)){try{let r=await this._client.renewToken();r?.renewed&&this.log(`[daemon] token renewed expires_at=${r.expires_at}`)}catch(r){this.log(`[daemon] token renewal failed: ${r.message}`)}(!e||!e.aborted)&&setTimeout(s,Au)}};setTimeout(s,Au)}};function Yw(t){return new Promise(e=>{if(!t){process.once("SIGINT",e),process.once("SIGTERM",e);return}if(t.aborted)return e();t.addEventListener("abort",e,{once:!0})})}Tu.exports={DaemonProcess:So}});var Zu=k((qx,Bu)=>{var{emitTable:Y,emitDetails:V}=Rc(),{abort:y,send:C,ensureOk:E,flag:b,positionals:Ee,requireWorkspaceId:A}=Nc();function qu(t,{full:e=!1,actors:s=null}={}){let r=t.assignee||(t.assignee_id?`${t.assignee_type||""}:${t.assignee_id}`:""),n=r;if(s&&r){let o=r.indexOf(":"),i=o!==-1?r.slice(o+1):r,a=s.get(i);a&&(n=a.name)}return{key:t.key||t.identifier||"",...e?{id:t.id||""}:{},title:t.title||"",status:t.status||"",priority:t.priority||"",assignee:n}}async function ju(t,e){let s=await C(t,"GET","/api/agents"),r=E(t,s)||{},n=Array.isArray(r)?r:r.agents||[],o=String(e).toLowerCase(),i=n.find(a=>a.id===e||(a.slug||"").toLowerCase()===o||(a.name||"").toLowerCase()===o);return i||y(t.ctx,`agent '${e}' \u4E0D\u5B58\u5728`,"\u8FD0\u884C coder flow agent list \u67E5\u770B\u53EF\u7528 agent",4),i.id}var U={id:"ID",key:"Key",name:"\u540D\u79F0",slug:"Slug",title:"\u6807\u9898",status:"\u72B6\u6001",priority:"\u4F18\u5148\u7EA7",assignee:"\u8D1F\u8D23\u4EBA",description:"\u63CF\u8FF0",current:"\u5F53\u524D",start_date:"\u5F00\u59CB\u65E5\u671F",due_date:"\u622A\u6B62\u65E5\u671F",created_at:"\u521B\u5EFA\u65F6\u95F4",updated_at:"\u66F4\u65B0\u65F6\u95F4",author:"\u4F5C\u8005",content:"\u5185\u5BB9",agent:"Agent",deleted:"\u5DF2\u5220\u9664"},we={status:{backlog:"\u5F85\u89C4\u5212",todo:"\u5F85\u529E",in_progress:"\u8FDB\u884C\u4E2D",in_review:"\u8BC4\u5BA1\u4E2D",done:"\u5DF2\u5B8C\u6210",cancelled:"\u5DF2\u53D6\u6D88",open:"\u5F00\u653E",closed:"\u5DF2\u5173\u95ED",active:"\u6D3B\u8DC3",inactive:"\u505C\u7528",archived:"\u5DF2\u5F52\u6863",planned:"\u89C4\u5212\u4E2D",started:"\u5DF2\u542F\u52A8",on_hold:"\u6401\u7F6E",idle:"\u7A7A\u95F2",busy:"\u5FD9\u788C",running:"\u8FD0\u884C\u4E2D",queued:"\u6392\u961F\u4E2D",pending:"\u7B49\u5F85\u4E2D",paused:"\u5DF2\u6682\u505C",stopped:"\u5DF2\u505C\u6B62",completed:"\u5DF2\u5B8C\u6210",failed:"\u5931\u8D25",success:"\u6210\u529F",error:"\u9519\u8BEF"},priority:{none:"\u65E0",low:"\u4F4E",medium:"\u4E2D",high:"\u9AD8",urgent:"\u7D27\u6025"}};async function Co(t,e,s){if(t.ctx.isJson||!s)return null;let r=await t.http.getWorkspaceSlug();return r?`${t.http.baseUrl}/${r}/${e}/${s}`:null}async function Eo(t,e,s){if(t.ctx.isJson)return null;let r=await t.http.getWorkspaceSlug();return r?s.map(n=>n&&n.id?`${t.http.baseUrl}/${r}/${e}/${n.id}`:null):null}async function Xw(t){A(t);let e=new URLSearchParams;e.set("workspace_id",t.http.workspaceId);let s=b(t.args,"--status"),r=b(t.args,"--priority"),n=b(t.args,"--limit"),o=b(t.args,"--offset");s&&e.set("status",s),r&&e.set("priority",r),n&&e.set("limit",n),o&&e.set("offset",o);let i=t.args.includes("--full-id"),[a,c]=await Promise.all([C(t,"GET",`/api/issues?${e.toString()}`),t.ctx.isJson?Promise.resolve(null):t.http.getActorLookup()]),l=E(t,a)||{},u=Array.isArray(l)?l:l.issues||[],d=await Eo(t,"issues",u),f=c?u.map(h=>{let g=h.assignee||(h.assignee_id?`${h.assignee_type||""}:${h.assignee_id}`:"");if(!g)return null;let _=g.indexOf(":"),w=_!==-1?g.slice(_+1):g;return c.get(w)?.url||null}):null;return Y(t.ctx,u.map(h=>qu(h,{full:i,actors:c})),{labels:U,values:we,linkCol:"key",rowLinks:d,colLinks:f?{col:"assignee",links:f}:void 0,empty:"\u65E0 issue"}),0}async function Uu(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue get <id|KEY>",3),A(t);let[s,r]=await Promise.all([C(t,"GET",`/api/issues/${encodeURIComponent(e)}`),t.ctx.isJson?Promise.resolve(null):t.http.getActorLookup()]),n=E(t,s)||{},o=await Co(t,"issues",n.id),i=n.assignee||(n.assignee_id?`${n.assignee_type||""}:${n.assignee_id}`:""),a=i,c=null;if(r&&i){let l=i.indexOf(":"),u=l!==-1?i.slice(l+1):i,d=r.get(u);d&&(a=d.name,c=d.url)}return V(t.ctx,[["key",n.key||n.identifier||""],["id",n.id||""],["title",n.title||""],["status",n.status||""],["priority",n.priority||""],["assignee",a],["start_date",n.start_date||""],["due_date",n.due_date||""],["description",n.description||""]],null,{labels:U,values:we,link:o?{key:"key",url:o}:null,fieldLinks:c?{assignee:c}:null}),0}async function Qw(t){let e=A(t),s=b(t.args,"--title");s||y(t.ctx,"\u7F3A\u5C11 --title","\u7528\u6CD5: coder flow issue create --title <t>",3);let r={workspace_id:e,title:s},n=b(t.args,"--description"),o=b(t.args,"--priority"),i=b(t.args,"--status"),a=b(t.args,"--project"),c=b(t.args,"--parent"),l=b(t.args,"--agent")||b(t.args,"--assignee"),u=b(t.args,"--assignee-id");n!==void 0&&(r.description=n),o!==void 0&&(r.priority=o),i!==void 0&&(r.status=i),a!==void 0&&(r.project_id=a),c!==void 0&&(r.parent_id=c),u!==void 0?r.assignee_id=u:l!==void 0&&(r.assignee_type="agent",r.assignee_id=await ju(t,l));let d=process.env.MULTICA_QUICK_CREATE_TASK_ID;d&&(r.origin_type="quick_create",r.origin_id=d);let f=await C(t,"POST","/api/issues",r),h=E(t,f)||{};return V(t.ctx,[["key",h.key||h.identifier||""],["id",h.id||""],["title",h.title||s],["status",h.status||""]],null,{labels:U,values:we}),0}async function Ao(t,e,s,r){let n=await C(t,"PUT",`/api/issues/${encodeURIComponent(e)}`,s),o=E(t,n)||{},i=await Co(t,"issues",o.id);return V(t.ctx,r(o),null,{labels:U,values:we,link:i?{key:"key",url:i}:null}),0}async function eb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue update <id|KEY> ...",3),A(t);let s={},r=b(t.args,"--title"),n=b(t.args,"--description"),o=b(t.args,"--priority"),i=b(t.args,"--status");return r!==void 0&&(s.title=r),n!==void 0&&(s.description=n),o!==void 0&&(s.priority=o),i!==void 0&&(s.status=i),Object.keys(s).length||y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u66F4\u65B0\u5B57\u6BB5","\u81F3\u5C11\u7ED9\u4E00\u4E2A --title/--description/--priority/--status",3),Ao(t,e,s,a=>[["key",a.key||a.identifier||e],["title",a.title||""],["status",a.status||""],["priority",a.priority||""]])}async function tb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue status <id|KEY> --set <status>",3);let s=b(t.args,"--set")||b(t.args,"--status");return s||y(t.ctx,"\u7F3A\u5C11 --set <status>","\u7528\u6CD5: coder flow issue status <id|KEY> --set <status>",3),A(t),Ao(t,e,{status:s},r=>[["key",r.key||r.identifier||e],["status",r.status||s]])}async function sb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue assign <id|KEY> --agent <slug>",3),A(t);let s=b(t.args,"--agent")||b(t.args,"--to"),r=t.args.includes("--unassign"),n;return r?n={assignee_type:null,assignee_id:null}:(s||y(t.ctx,"\u7F3A\u5C11 --agent <slug>","\u6216\u7528 --unassign \u53D6\u6D88\u6307\u6D3E",3),n={assignee_type:"agent",assignee_id:await ju(t,s)}),Ao(t,e,n,o=>[["key",o.key||o.identifier||e],["status",o.status||""],["assignee",o.assignee_id?`${o.assignee_type||""}:${o.assignee_id}`:""]])}async function rb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11\u641C\u7D22\u5173\u952E\u8BCD","\u7528\u6CD5: coder flow issue search <query>",3),A(t);let s=new URLSearchParams;s.set("q",e),s.set("workspace_id",t.http.workspaceId);let r=b(t.args,"--limit");r&&s.set("limit",r),t.args.includes("--include-closed")&&s.set("include_closed","true");let n=await C(t,"GET",`/api/issues/search?${s.toString()}`),o=E(t,n)||{},i=Array.isArray(o)?o:o.issues||[],a=await Eo(t,"issues",i);return Y(t.ctx,i.map(c=>qu(c)),{labels:U,values:we,linkCol:"key",rowLinks:a,empty:"\u65E0\u5339\u914D issue"}),0}async function nb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue comment list <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/comments`),r=E(t,s)||{},n=Array.isArray(r)?r:r.comments||[];return Y(t.ctx,n.map(o=>({id:o.id||"",author:o.author_id||o.user_id||"",created_at:o.created_at||"",content:o.content||""})),{labels:U,empty:"\u65E0\u8BC4\u8BBA"}),0}async function ob(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue comment add <id|KEY> --content <text>",3),A(t);let s=b(t.args,"--content")||b(t.args,"--body");s||y(t.ctx,"\u7F3A\u5C11 --content",null,3);let r={content:s},n=b(t.args,"--parent");n&&(r.parent_id=n);let o=await C(t,"POST",`/api/issues/${encodeURIComponent(e)}/comments`,r),i=E(t,o)||{};return V(t.ctx,[["id",i.id||""],["content",i.content||s]],null,{labels:U}),0}async function ib(t){let e=Ee(t.args,{valueFlags:[]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow issue comment delete <issue-id> <comment-id>",3),A(t);let n=await C(t,"DELETE",`/api/issues/${encodeURIComponent(s)}/comments/${encodeURIComponent(r)}`);return E(t,n),t.ctx.emit(t.ctx.isJson?{deleted:r}:`\u8BC4\u8BBA ${r} \u5DF2\u5220\u9664`),0}async function ab(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue subscriber list <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/subscribers`),r=E(t,s)||{},n=Array.isArray(r)?r:r.subscribers||[];return Y(t.ctx,n.map(o=>({id:o.id||"",name:o.name||"",type:o.type||""})),{labels:U,empty:"\u65E0\u8BA2\u9605\u8005"}),0}async function cb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue subscriber add <id|KEY> [--user <name>]",3),A(t);let s={},r=b(t.args,"--user-id"),n=b(t.args,"--user");r?s.user_id=r:n&&(s.user=n);let o=await C(t,"POST",`/api/issues/${encodeURIComponent(e)}/subscribers`,s),i=E(t,o)||{};return t.ctx.emit(t.ctx.isJson?i:`\u5DF2\u8BA2\u9605 issue ${e}`),0}async function lb(t){let s=Ee(t.args,{valueFlags:["--user-id","--user"]})[0];s||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue subscriber remove <id|KEY>",3),A(t);let r={},n=b(t.args,"--user-id"),o=b(t.args,"--user");n?r.user_id=n:o&&(r.user=o);let i=await C(t,"DELETE",`/api/issues/${encodeURIComponent(s)}/subscribers`,r);return E(t,i),t.ctx.emit(t.ctx.isJson?{unsubscribed:!0}:`\u5DF2\u53D6\u6D88\u8BA2\u9605 issue ${s}`),0}async function ub(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue pull-requests <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/pull-requests`),r=E(t,s)||{},n=Array.isArray(r)?r:r.pull_requests||[];return Y(t.ctx,n.map(o=>({id:o.id||"",title:o.title||"",url:o.url||"",status:o.status||""})),{labels:U,empty:"\u65E0\u5173\u8054 PR"}),0}async function db(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 task-id","\u7528\u6CD5: coder flow issue run-messages <task-id> [--since <seq>]",3),A(t);let s=new URLSearchParams,r=b(t.args,"--issue"),n=b(t.args,"--since");r&&s.set("issue_id",r),n&&s.set("since",n);let o=s.toString(),i=await C(t,"GET",`/api/tasks/${encodeURIComponent(e)}/messages${o?"?"+o:""}`),a=E(t,i)||{},c=Array.isArray(a)?a:a.messages||[];return t.ctx.isJson?(t.ctx.emit(c),0):(Y(t.ctx,c.map(l=>({seq:String(l.seq??l.sequence??""),type:l.type||l.role||"",content:(l.content||l.output||"").slice(0,100)})),{labels:{seq:"Seq",type:"\u7C7B\u578B",content:"\u5185\u5BB9"},empty:"\u65E0\u6D88\u606F"}),0)}async function fb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 task-id","\u7528\u6CD5: coder flow issue cancel-task <task-id>",3),A(t);let s={},r=b(t.args,"--issue");r&&(s.issue_id=r);let n=await C(t,"POST",`/api/tasks/${encodeURIComponent(e)}/cancel`,s),o=E(t,n)||{};return V(t.ctx,[["id",o.id||e],["status",o.status||""]],null,{labels:U}),0}async function pb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue runs <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/task-runs`),r=E(t,s)||{},n=Array.isArray(r)?r:r.runs||r.tasks||[];return Y(t.ctx,n.map(o=>({id:o.id||"",status:o.status||"",agent:o.agent_id||o.assignee_id||"",created_at:o.created_at||""})),{labels:U,values:we,empty:"\u65E0\u4EFB\u52A1\u5386\u53F2"}),0}async function mb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue rerun <id|KEY>",3),A(t);let s=await C(t,"POST",`/api/issues/${encodeURIComponent(e)}/rerun`,{}),r=E(t,s)||{};return V(t.ctx,[["id",r.id||""],["status",r.status||""]],null,{labels:U,values:we}),0}function vs(t,e){return e.map(s=>[s,t[s]??""])}function os(t,e,s,{webPath:r=null,linkCol:n=null}={}){return async o=>{A(o);let i=new URLSearchParams;i.set("workspace_id",o.http.workspaceId);let a=await C(o,"GET",`/api/${t}?${i.toString()}`),c=E(o,a)||{},l=Array.isArray(c)?c:c[e]||[],u=r?await Eo(o,r,l):null;return Y(o.ctx,l.map(d=>{let f={};for(let h of s)f[h]=d[h]??"";return f}),{labels:U,values:we,linkCol:n,rowLinks:u,empty:`\u65E0 ${t}`}),0}}function je(t,e,{webPath:s=null,linkCol:r=null}={}){return async n=>{let o=n.arg;o||y(n.ctx,`\u7F3A\u5C11 ${t} \u6807\u8BC6`,"\u7528\u6CD5: coder flow ... get <id>",3),A(n);let i=await C(n,"GET",`/api/${t}/${encodeURIComponent(o)}`),a=E(n,i)||{},c=s?await Co(n,s,a.id):null;return V(n.ctx,vs(a,e),null,{labels:U,values:we,link:c&&r?{key:r,url:c}:null}),0}}function Tr(t){return async e=>{let s=e.arg;if(s||y(e.ctx,`\u7F3A\u5C11 ${t} \u6807\u8BC6`,"\u7528\u6CD5: coder flow ... delete <id>",3),A(e),!e.args.includes("--yes"))return e.ctx.emit(`\u5C06\u5220\u9664 ${t}/${s}\uFF08\u9AD8\u5F71\u54CD\uFF09\u3002\u786E\u8BA4\u8BF7\u52A0 --yes`),10;let r=await C(e,"DELETE",`/api/${t}/${encodeURIComponent(s)}`);return E(e,r),e.ctx.emit(e.ctx.isJson?{deleted:s}:`\u5DF2\u5220\u9664 ${s}`),0}}function He(t,e,s,r,{withWorkspace:n=!1,idArg:o=!1}={}){return async i=>{let a=A(i),c=`/api/${t}`;if(o){let h=i.arg;h||y(i.ctx,`\u7F3A\u5C11 ${t} \u6807\u8BC6`,"\u7528\u6CD5: coder flow ... <verb> <id> ...",3),c+=`/${encodeURIComponent(h)}`}let l={};n&&(l.workspace_id=a);for(let[h,g]of s){let _=b(i.args,`--${h}`);_!==void 0&&(l[g]=_)}Object.keys(l).filter(h=>h!=="workspace_id").length||y(i.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5",`\u7ED9\u51FA ${s.map(h=>"--"+h[0]).join(" / ")}`,3);let d=await C(i,e,c,l),f=E(i,d)||{};return V(i.ctx,vs(f,r),null,{labels:U,values:we}),0}}function Io(t,e,s){return async r=>{let n=r.arg;n||y(r.ctx,`\u7F3A\u5C11 ${t} \u6807\u8BC6`,`\u7528\u6CD5: coder flow ... ${e} <id>`,3),A(r);let o=await C(r,"POST",`/api/${t}/${encodeURIComponent(n)}/${e}`,{}),i=E(r,o)||{};return V(r.ctx,vs(i,s),null,{labels:U,values:we}),0}}function vu(t,e,s,r){return async n=>{let o=n.arg;o||y(n.ctx,`\u7F3A\u5C11 ${t} \u6807\u8BC6`,"\u7528\u6CD5: coder flow ... <verb> <id>",3),A(n);let i=await C(n,"GET",`/api/${t}/${encodeURIComponent(o)}/${e}`),a=E(n,i)||{},c=Array.isArray(a)?a:a[s]||[];return Y(n.ctx,c.map(l=>{let u={};for(let d of r)u[d]=l[d]??"";return u}),{labels:U,values:we,empty:"\uFF08\u7A7A\uFF09"}),0}}async function hb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue label list <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/labels`),r=E(t,s)||{},n=Array.isArray(r)?r:r.labels||[];return Y(t.ctx,n.map(o=>({id:o.id||"",name:o.name||"",color:o.color||""})),{labels:U,empty:"\u65E0\u6807\u7B7E"}),0}async function gb(t){let e=Ee(t.args,{valueFlags:[]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow issue label add <issue-id> <label-id>",3),A(t);let n=await C(t,"POST",`/api/issues/${encodeURIComponent(s)}/labels`,{label_id:r}),o=E(t,n)||{},i=Array.isArray(o)?o:o.labels||[];return Y(t.ctx,i.map(a=>({id:a.id||"",name:a.name||"",color:a.color||""})),{labels:U,empty:"\u65E0\u6807\u7B7E"}),0}async function yb(t){let e=Ee(t.args,{valueFlags:[]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow issue label remove <issue-id> <label-id>",3),A(t);let n=await C(t,"DELETE",`/api/issues/${encodeURIComponent(s)}/labels/${encodeURIComponent(r)}`);return E(t,n),t.ctx.emit(t.ctx.isJson?{removed:r}:`\u6807\u7B7E ${r} \u5DF2\u4ECE issue ${s} \u79FB\u9664`),0}async function _b(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue metadata list <id|KEY>",3),A(t);let s=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/metadata`),r=E(t,s)||{},n=r.metadata||r||{};if(t.ctx.isJson)return t.ctx.emit(n),0;let o=Object.entries(n).map(([i,a])=>({key:i,value:String(a),type:typeof a}));return Y(t.ctx,o,{labels:U,empty:"\u65E0 metadata"}),0}async function wb(t){let e=t.arg,s=b(t.args,"--key");e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue metadata get <id|KEY> --key <key>",3),s||y(t.ctx,"\u7F3A\u5C11 --key","\u7528\u6CD5: coder flow issue metadata get <id|KEY> --key <key>",3),A(t);let r=await C(t,"GET",`/api/issues/${encodeURIComponent(e)}/metadata`),n=E(t,r)||{},o=n.metadata||n||{};s in o||y(t.ctx,`metadata key '${s}' \u4E0D\u5B58\u5728`,null,4);let i=o[s];return t.ctx.isJson?(t.ctx.emit(i),0):(V(t.ctx,[["key",s],["value",String(i)],["type",typeof i]],null,{labels:U}),0)}async function bb(t){let e=t.arg,s=b(t.args,"--key"),r=b(t.args,"--value"),n=b(t.args,"--type");e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue metadata set <id|KEY> --key <k> --value <v>",3),s||y(t.ctx,"\u7F3A\u5C11 --key",null,3),r===void 0&&y(t.ctx,"\u7F3A\u5C11 --value",null,3),A(t);let o=r;if(!n||n==="auto")try{o=JSON.parse(r)}catch{o=r}else n==="string"?o=r:n==="number"?(o=Number(r),Number.isNaN(o)&&y(t.ctx,`'${r}' \u4E0D\u662F\u6709\u6548\u6570\u5B57`,null,3)):n==="bool"&&(r!=="true"&&r!=="false"&&y(t.ctx,`'${r}' \u4E0D\u662F\u6709\u6548\u5E03\u5C14\uFF08true/false\uFF09`,null,3),o=r==="true");let i=await C(t,"PUT",`/api/issues/${encodeURIComponent(e)}/metadata/${encodeURIComponent(s)}`,{value:o}),a=E(t,i)||{},c=a.metadata||a||{};if(t.ctx.isJson)return t.ctx.emit(c),0;let l=Object.entries(c).map(([u,d])=>({key:u,value:String(d),type:typeof d}));return Y(t.ctx,l,{labels:U,empty:"\uFF08\u7A7A\uFF09"}),0}async function kb(t){let e=t.arg,s=b(t.args,"--key");e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue metadata delete <id|KEY> --key <k>",3),s||y(t.ctx,"\u7F3A\u5C11 --key",null,3),A(t);let r=await C(t,"DELETE",`/api/issues/${encodeURIComponent(e)}/metadata/${encodeURIComponent(s)}`);return E(t,r),t.ctx.emit(t.ctx.isJson?{deleted:s}:`metadata key '${s}' \u5DF2\u5220\u9664`),0}async function xb(t){let e=t.arg;if(e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow issue delete <id|KEY> [--yes]",3),A(t),!t.args.includes("--yes"))return t.ctx.emit(`\u5C06\u5220\u9664 issue/${e}\uFF08\u9AD8\u5F71\u54CD\uFF09\u3002\u786E\u8BA4\u8BF7\u52A0 --yes`),10;let s=await C(t,"DELETE",`/api/issues/${encodeURIComponent(e)}`);return E(t,s),t.ctx.emit(t.ctx.isJson?{deleted:e}:`issue ${e} \u5DF2\u5220\u9664`),0}async function Sb(t){A(t);let e=new URLSearchParams({workspace_id:t.http.workspaceId}),s=await C(t,"GET",`/api/labels?${e.toString()}`),r=E(t,s)||{},n=Array.isArray(r)?r:r.labels||[];return Y(t.ctx,n.map(o=>({id:o.id||"",name:o.name||"",color:o.color||"",created_at:o.created_at||""})),{labels:U,empty:"\u65E0 label"}),0}async function Ou(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 label id","\u7528\u6CD5: coder flow label get <id>",3),A(t);let s=await C(t,"GET",`/api/labels/${encodeURIComponent(e)}`),r=E(t,s)||{};return V(t.ctx,[["id",r.id||""],["name",r.name||""],["color",r.color||""],["created_at",r.created_at||""]],null,{labels:U}),0}async function Ib(t){let e=b(t.args,"--name"),s=b(t.args,"--color");e||y(t.ctx,"\u7F3A\u5C11 --name","\u7528\u6CD5: coder flow label create --name <n> --color <#hex>",3),s||y(t.ctx,"\u7F3A\u5C11 --color\uFF08\u683C\u5F0F: #3b82f6\uFF09",null,3),A(t);let r=await C(t,"POST","/api/labels",{name:e,color:s}),n=E(t,r)||{};return V(t.ctx,[["id",n.id||""],["name",n.name||""],["color",n.color||""]],null,{labels:U}),0}async function Cb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 label id","\u7528\u6CD5: coder flow label update <id> [--name <n>] [--color <#>]",3),A(t);let s={},r=b(t.args,"--name"),n=b(t.args,"--color");r!==void 0&&(s.name=r),n!==void 0&&(s.color=n),Object.keys(s).length||y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5","--name / --color",3);let o=await C(t,"PUT",`/api/labels/${encodeURIComponent(e)}`,s),i=E(t,o)||{};return V(t.ctx,[["id",i.id||""],["name",i.name||""],["color",i.color||""]],null,{labels:U}),0}async function Eb(t){let e=t.arg;if(e||y(t.ctx,"\u7F3A\u5C11 label id","\u7528\u6CD5: coder flow label delete <id> [--yes]",3),A(t),!t.args.includes("--yes"))return t.ctx.emit(`\u5C06\u5220\u9664 label/${e}\uFF08\u9AD8\u5F71\u54CD\uFF09\u3002\u786E\u8BA4\u8BF7\u52A0 --yes`),10;let s=await C(t,"DELETE",`/api/labels/${encodeURIComponent(e)}`);return E(t,s),t.ctx.emit(t.ctx.isJson?{deleted:e}:`label ${e} \u5DF2\u5220\u9664`),0}async function Ab(t){let e=A(t),s=b(t.args,"--name");s||y(t.ctx,"--name \u662F\u5FC5\u586B\u9879",null,3);let r=b(t.args,"--runtime-id");r||y(t.ctx,"--runtime-id \u662F\u5FC5\u586B\u9879",null,3);let n={workspace_id:e,name:s,runtime_id:r};for(let[c,l]of[["description","description"],["instructions","instructions"],["model","model"],["thinking-level","thinking_level"],["visibility","visibility"],["max-concurrent-tasks","max_concurrent_tasks"]]){let u=b(t.args,`--${c}`);u!==void 0&&(n[l]=u)}let o=await C(t,"POST","/api/agents",n),i=E(t,o)||{},a=b(t.args,"--skill-ids");if(a&&i.id){let c=a.split(",").map(l=>l.trim()).filter(Boolean);if(c.length){let l=await C(t,"PUT",`/api/agents/${encodeURIComponent(i.id)}/skills`,{skill_ids:c});E(t,l)}}return V(t.ctx,vs(i,["id","name","model","runtime_id"]),null,{labels:U,values:we}),0}async function Tb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 agent \u6807\u8BC6","\u7528\u6CD5: coder flow agent skills list <id>",3),A(t);let s=await C(t,"GET",`/api/agents/${encodeURIComponent(e)}/skills`),r=E(t,s)||{},n=Array.isArray(r)?r:r.skills||[];return Y(t.ctx,n.map(o=>({id:o.id||"",name:o.name||"",description:o.description||""})),{labels:U,empty:"\u65E0 skill"}),0}async function $b(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 agent \u6807\u8BC6","\u7528\u6CD5: coder flow agent skills add <agent-id> --skill-ids <id1,id2>",3),A(t);let s=(b(t.args,"--skill-ids")||"").split(",").map(o=>o.trim()).filter(Boolean);s.length||y(t.ctx,"\u7F3A\u5C11 --skill-ids",null,3);let r=await C(t,"POST",`/api/agents/${encodeURIComponent(e)}/skills/add`,{skill_ids:s}),n=E(t,r)||{};return t.ctx.emit(t.ctx.isJson?n:`skill \u5DF2\u6DFB\u52A0\u5230 agent ${e}`),0}async function Ub(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 agent \u6807\u8BC6","\u7528\u6CD5: coder flow agent skills set <agent-id> --skill-ids <id1,id2>",3),A(t);let s=b(t.args,"--skill-ids")||"",r=s?s.split(",").map(i=>i.trim()).filter(Boolean):[],n=await C(t,"PUT",`/api/agents/${encodeURIComponent(e)}/skills`,{skill_ids:r}),o=E(t,n)||{};return t.ctx.emit(t.ctx.isJson?o:`agent ${e} \u7684 skill \u5DF2\u66F4\u65B0`),0}async function vb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 agent \u6807\u8BC6","\u7528\u6CD5: coder flow agent env get <id>",3),A(t);let s=await C(t,"GET",`/api/agents/${encodeURIComponent(e)}/env`),r=E(t,s)||{},n=r.env||r||{};if(t.ctx.isJson)return t.ctx.emit(n),0;let o=Object.entries(n).map(([i,a])=>({key:i,value:String(a)}));return Y(t.ctx,o,{labels:U,empty:"\u65E0\u73AF\u5883\u53D8\u91CF"}),0}async function Ob(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 agent \u6807\u8BC6",`\u7528\u6CD5: coder flow agent env set <id> --custom-env '{"KEY":"val"}'`,3),A(t);let s=b(t.args,"--custom-env");s||y(t.ctx,"\u7F3A\u5C11 --custom-env\uFF08JSON \u5BF9\u8C61\uFF09",null,3);let r;try{r=JSON.parse(s)}catch{y(t.ctx,"--custom-env \u4E0D\u662F\u6709\u6548 JSON",null,3)}let n=await C(t,"PUT",`/api/agents/${encodeURIComponent(e)}/env`,{env:r}),o=E(t,n)||{};return t.ctx.emit(t.ctx.isJson?o:`agent ${e} \u7684\u73AF\u5883\u53D8\u91CF\u5DF2\u66F4\u65B0`),0}async function Db(t){let e=t.arg,s=b(t.args,"--set")||b(t.args,"--status");e||y(t.ctx,"\u7F3A\u5C11 project \u6807\u8BC6","\u7528\u6CD5: coder flow project status <id> --set <status>",3),s||y(t.ctx,"\u7F3A\u5C11 --set <status>",null,3),A(t);let r=await C(t,"PUT",`/api/projects/${encodeURIComponent(e)}`,{status:s}),n=E(t,r)||{};return V(t.ctx,[["id",n.id||""],["title",n.title||""],["status",n.status||""]],null,{labels:U}),0}async function Rb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 project \u6807\u8BC6","\u7528\u6CD5: coder flow project resource list <project-id>",3),A(t);let s=await C(t,"GET",`/api/projects/${encodeURIComponent(e)}/resources`),r=E(t,s)||{},n=Array.isArray(r)?r:r.resources||[];return Y(t.ctx,n.map(o=>({id:o.id||"",resource_type:o.resource_type||"",label:o.label||""})),{labels:U,empty:"\u65E0\u8D44\u6E90"}),0}async function Lb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 project \u6807\u8BC6","\u7528\u6CD5: coder flow project resource add <project-id> --type <t> --url <u>",3),A(t);let s=b(t.args,"--type")||"github_repo",r=b(t.args,"--url"),n=b(t.args,"--local-path"),o=b(t.args,"--daemon-id"),i=b(t.args,"--label"),a;if(s==="github_repo"){r||y(t.ctx,"github_repo \u9700\u8981 --url",null,3),a={url:r};let d=b(t.args,"--default-branch-hint");d&&(a.default_branch_hint=d)}else s==="local_directory"?((!n||!o)&&y(t.ctx,"local_directory \u9700\u8981 --local-path \u548C --daemon-id",null,3),a={local_path:n,daemon_id:o}):y(t.ctx,`\u672A\u77E5 resource type '${s}'\uFF1B\u652F\u6301: github_repo, local_directory`,null,3);let c={resource_type:s,resource_ref:a};i&&(c.label=i);let l=await C(t,"POST",`/api/projects/${encodeURIComponent(e)}/resources`,c),u=E(t,l)||{};return V(t.ctx,[["id",u.id||""],["resource_type",u.resource_type||""]],null,{labels:U}),0}async function Pb(t){let e=Ee(t.args,{valueFlags:[]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow project resource remove <project-id> <resource-id>",3),A(t);let n=await C(t,"DELETE",`/api/projects/${encodeURIComponent(s)}/resources/${encodeURIComponent(r)}`);return E(t,n),t.ctx.emit(t.ctx.isJson?{removed:r}:`resource ${r} \u5DF2\u4ECE project ${s} \u79FB\u9664`),0}async function Nb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 squad \u6807\u8BC6","\u7528\u6CD5: coder flow squad member list <squad-id>",3),A(t);let s=await C(t,"GET",`/api/squads/${encodeURIComponent(e)}/members`),r=E(t,s)||{},n=Array.isArray(r)?r:r.members||[];return Y(t.ctx,n.map(o=>({member_id:o.member_id||"",member_type:o.member_type||"",role:o.role||""})),{labels:U,empty:"\u65E0\u6210\u5458"}),0}async function qb(t){let e=t.arg,s=b(t.args,"--member-id"),r=b(t.args,"--type")||"agent",n=b(t.args,"--role")||"member";e||y(t.ctx,"\u7F3A\u5C11 squad \u6807\u8BC6","\u7528\u6CD5: coder flow squad member add <squad-id> --member-id <id> [--type agent|member] [--role <r>]",3),s||y(t.ctx,"\u7F3A\u5C11 --member-id",null,3),A(t);let o={member_type:r,member_id:s,role:n},i=await C(t,"POST",`/api/squads/${encodeURIComponent(e)}/members`,o),a=E(t,i)||{};return t.ctx.emit(t.ctx.isJson?a:`\u6210\u5458 ${s} \u5DF2\u52A0\u5165 squad ${e}`),0}async function jb(t){let e=t.arg,s=b(t.args,"--member-id"),r=b(t.args,"--member-type")||"agent",n=b(t.args,"--role");e||y(t.ctx,"\u7F3A\u5C11 squad \u6807\u8BC6","\u7528\u6CD5: coder flow squad member set-role <squad-id> --member-id <id> --role <r>",3),s||y(t.ctx,"\u7F3A\u5C11 --member-id",null,3),n||y(t.ctx,"\u7F3A\u5C11 --role",null,3),A(t);let o={member_type:r,member_id:s,role:n},i=await C(t,"PATCH",`/api/squads/${encodeURIComponent(e)}/members/role`,o),a=E(t,i)||{};return t.ctx.emit(t.ctx.isJson?a:`\u6210\u5458 ${s} \u7684\u89D2\u8272\u5DF2\u66F4\u65B0\u4E3A ${n}`),0}async function Mb(t){let e=t.arg,s=b(t.args,"--member-id"),r=b(t.args,"--type")||"agent";e||y(t.ctx,"\u7F3A\u5C11 squad \u6807\u8BC6","\u7528\u6CD5: coder flow squad member remove <squad-id> --member-id <id>",3),s||y(t.ctx,"\u7F3A\u5C11 --member-id",null,3),A(t);let n={member_type:r,member_id:s},o=await C(t,"DELETE",`/api/squads/${encodeURIComponent(e)}/members`,n);return E(t,o),t.ctx.emit(t.ctx.isJson?{removed:s}:`\u6210\u5458 ${s} \u5DF2\u4ECE squad ${e} \u79FB\u9664`),0}async function Gb(t){let e=t.arg,s=t.args.find(i=>!i.startsWith("-")&&i!==e)||b(t.args,"--outcome");e||y(t.ctx,"\u7F3A\u5C11 issue \u6807\u8BC6","\u7528\u6CD5: coder flow squad activity <issue-id> <outcome> [--reason <r>]",3),(!s||!["action","no_action","failed"].includes(s))&&y(t.ctx,"outcome \u5FC5\u987B\u662F action / no_action / failed",null,3),A(t);let r=b(t.args,"--reason")||"",n=await C(t,"POST",`/api/issues/${encodeURIComponent(e)}/squad-evaluated`,{outcome:s,reason:r}),o=E(t,n)||{};return t.ctx.emit(t.ctx.isJson?o:`squad \u8BC4\u4F30\u5DF2\u8BB0\u5F55: ${s}\uFF08issue ${e}\uFF09`),0}async function Fb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 autopilot \u6807\u8BC6","\u7528\u6CD5: coder flow autopilot trigger-add <id> --kind schedule --cron '0 9 * * *'",3),A(t);let s=b(t.args,"--kind")||"schedule";s!=="schedule"&&s!=="webhook"&&y(t.ctx,"--kind \u987B\u4E3A schedule \u6216 webhook",null,3);let r={kind:s};if(s==="schedule"){let a=b(t.args,"--cron");a||y(t.ctx,"schedule trigger \u9700\u8981 --cron",null,3),r.cron_expression=a;let c=b(t.args,"--timezone");c&&(r.timezone=c)}let n=b(t.args,"--label");n&&(r.label=n);let o=await C(t,"POST",`/api/autopilots/${encodeURIComponent(e)}/triggers`,r),i=E(t,o)||{};return V(t.ctx,[["id",i.id||""],["kind",i.kind||""],["label",i.label||""]],null,{labels:U}),0}async function Bb(t){let e=Ee(t.args,{valueFlags:["--cron","--timezone","--label"]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow autopilot trigger-update <autopilot-id> <trigger-id> [--cron ...] [--enabled true|false]",3),A(t);let n={},o=b(t.args,"--cron"),i=b(t.args,"--timezone"),a=b(t.args,"--label"),c=b(t.args,"--enabled");o!==void 0&&(n.cron_expression=o),i!==void 0&&(n.timezone=i),a!==void 0&&(n.label=a),c!==void 0&&(n.enabled=c==="true"),Object.keys(n).length||y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5","--cron / --timezone / --label / --enabled",3);let l=await C(t,"PATCH",`/api/autopilots/${encodeURIComponent(s)}/triggers/${encodeURIComponent(r)}`,n),u=E(t,l)||{};return V(t.ctx,[["id",u.id||""],["kind",u.kind||""]],null,{labels:U}),0}async function Zb(t){let e=Ee(t.args,{valueFlags:[]}),s=e[0],r=e[1];if((!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow autopilot trigger-delete <autopilot-id> <trigger-id>",3),A(t),!t.args.includes("--yes"))return t.ctx.emit(`\u5C06\u5220\u9664 trigger ${r}\uFF08\u9AD8\u5F71\u54CD\uFF09\u3002\u786E\u8BA4\u8BF7\u52A0 --yes`),10;let n=await C(t,"DELETE",`/api/autopilots/${encodeURIComponent(s)}/triggers/${encodeURIComponent(r)}`);return E(t,n),t.ctx.emit(t.ctx.isJson?{deleted:r}:`trigger ${r} \u5DF2\u5220\u9664`),0}async function Vb(t){let e=Ee(t.args,{valueFlags:[]}),s=e[0],r=e[1];if((!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow autopilot trigger-rotate-url <autopilot-id> <trigger-id> [--yes]",3),A(t),!t.args.includes("--yes"))return t.ctx.emit("\u6B64\u64CD\u4F5C\u5C06\u7ACB\u5373\u4F7F\u5F53\u524D webhook URL \u5931\u6548\u3002\u786E\u8BA4\u8BF7\u52A0 --yes"),10;let n=await C(t,"POST",`/api/autopilots/${encodeURIComponent(s)}/triggers/${encodeURIComponent(r)}/rotate-webhook-token`,{}),o=E(t,n)||{};return V(t.ctx,[["id",o.id||""],["webhook_url",o.webhook_url||""]],null,{labels:U}),0}async function Wb(t){A(t);let e=b(t.args,"--url");e||y(t.ctx,"\u7F3A\u5C11 --url","\u7528\u6CD5: coder flow skill import --url <url> [--on-conflict fail|overwrite|rename|skip]",3);let s=b(t.args,"--on-conflict")||"fail";["fail","overwrite","rename","skip"].includes(s)||y(t.ctx,"--on-conflict \u987B\u4E3A fail / overwrite / rename / skip",null,3);let r=await C(t,"POST","/api/skills/import",{url:e,on_conflict:s}),n=E(t,r)||{};return V(t.ctx,[["id",n.id||n.skill?.id||""],["name",n.name||n.skill?.name||""],["status",n.status||"created"]],null,{labels:U}),0}async function Kb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11\u641C\u7D22\u8BCD","\u7528\u6CD5: coder flow skill search <query>",3),A(t);let s=await C(t,"GET",`/api/skills/search?q=${encodeURIComponent(e)}`),r=E(t,s)||{},n=Array.isArray(r)?r:r.results||[];return Y(t.ctx,n.map(o=>({name:o.name||"",url:o.url||"",source:o.source||"",description:o.description||""})),{labels:U,empty:"\u65E0\u5339\u914D skill"}),0}async function zb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 skill \u6807\u8BC6","\u7528\u6CD5: coder flow skill files list <skill-id>",3),A(t);let s=await C(t,"GET",`/api/skills/${encodeURIComponent(e)}/files`),r=E(t,s)||{},n=Array.isArray(r)?r:r.files||[];return Y(t.ctx,n.map(o=>({id:o.id||"",path:o.path||"",updated_at:o.updated_at||""})),{labels:U,empty:"\u65E0\u6587\u4EF6"}),0}async function Jb(t){let e=t.arg,s=b(t.args,"--path"),r=b(t.args,"--content");e||y(t.ctx,"\u7F3A\u5C11 skill \u6807\u8BC6","\u7528\u6CD5: coder flow skill files upsert <skill-id> --path <p> --content <c>",3),s||y(t.ctx,"\u7F3A\u5C11 --path",null,3),r||y(t.ctx,"\u7F3A\u5C11 --content",null,3),A(t);let n=await C(t,"PUT",`/api/skills/${encodeURIComponent(e)}/files`,{path:s,content:r}),o=E(t,n)||{};return V(t.ctx,[["id",o.id||""],["path",o.path||s]],null,{labels:U}),0}async function Hb(t){let e=Ee(t.args,{valueFlags:[]}),s=e[0],r=e[1];if((!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow skill files delete <skill-id> <file-id>",3),A(t),!t.args.includes("--yes"))return t.ctx.emit(`\u5C06\u5220\u9664 skill file ${r}\uFF08\u9AD8\u5F71\u54CD\uFF09\u3002\u786E\u8BA4\u8BF7\u52A0 --yes`),10;let n=await C(t,"DELETE",`/api/skills/${encodeURIComponent(s)}/files/${encodeURIComponent(r)}`);return E(t,n),t.ctx.emit(t.ctx.isJson?{deleted:r}:`skill file ${r} \u5DF2\u5220\u9664`),0}async function Du(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 runtime \u6807\u8BC6","\u7528\u6CD5: coder flow runtime get <id>",3),A(t);let s=new URLSearchParams;s.set("workspace_id",t.http.workspaceId);let r=await C(t,"GET",`/api/runtimes?${s.toString()}`),n=E(t,r)||{},i=(Array.isArray(n)?n:n.runtimes||[]).find(c=>c.id===e||c.name===e);i||y(t.ctx,`runtime \u4E0D\u5B58\u5728: ${e}`,null,4);let a=["id","name","status","provider","device_info","runtime_mode","visibility","last_seen_at","created_at"];return V(t.ctx,vs(i,a),null,{labels:U}),0}async function Yb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 runtime \u6807\u8BC6","\u7528\u6CD5: coder flow runtime usage <id> [--days <n>]",3),A(t);let s=b(t.args,"--days")||"90",r=await C(t,"GET",`/api/runtimes/${encodeURIComponent(e)}/usage?days=${s}`),n=E(t,r)||{},o=Array.isArray(n)?n:n.usage||[];return Y(t.ctx,o.map(i=>({date:i.date||"",provider:i.provider||"",model:i.model||"",input_tokens:String(i.input_tokens??""),output_tokens:String(i.output_tokens??"")})),{labels:U,empty:"\u65E0\u7528\u91CF\u6570\u636E"}),0}async function Xb(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 runtime \u6807\u8BC6","\u7528\u6CD5: coder flow runtime activity <id>",3),A(t);let s=await C(t,"GET",`/api/runtimes/${encodeURIComponent(e)}/activity`),r=E(t,s)||{},n=Array.isArray(r)?r:r.activity||[];return Y(t.ctx,n.map(o=>({hour:o.hour||"",count:String(o.count??"")})),{labels:U,empty:"\u65E0\u6D3B\u52A8\u6570\u636E"}),0}async function Qb(t){let e=t.arg,s=b(t.args,"--target-version");e||y(t.ctx,"\u7F3A\u5C11 runtime \u6807\u8BC6","\u7528\u6CD5: coder flow runtime initiate-update <id> --target-version <v>",3),s||y(t.ctx,"\u7F3A\u5C11 --target-version",null,3),A(t);let r=await C(t,"POST",`/api/runtimes/${encodeURIComponent(e)}/update`,{target_version:s}),n=E(t,r)||{};return V(t.ctx,[["id",n.id||""],["status",n.status||""]],null,{labels:U}),0}async function ek(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 runtime \u6807\u8BC6","\u7528\u6CD5: coder flow runtime models <id>",3),A(t);let s=await C(t,"POST",`/api/runtimes/${encodeURIComponent(e)}/models`,{}),n=(E(t,s)||{}).id;n||y(t.ctx,"\u670D\u52A1\u7AEF\u672A\u8FD4\u56DE request id",null,1);let o=9e4,i=2e3,a=Date.now()+o,c;for(;Date.now()<a;){await new Promise(h=>setTimeout(h,i));let u=await C(t,"GET",`/api/runtimes/${encodeURIComponent(e)}/models/${encodeURIComponent(n)}`),d=E(t,u)||{},f=d.status;if(f==="completed"){c=d;break}(f==="failed"||f==="timeout")&&y(t.ctx,`\u83B7\u53D6\u6A21\u578B\u5217\u8868\u5931\u8D25: ${d.error||f}`,null,1)}if(c||y(t.ctx,"\u83B7\u53D6\u6A21\u578B\u5217\u8868\u8D85\u65F6\uFF08runtime \u672A\u54CD\u5E94\uFF09",null,1),!c.supported)return t.ctx.emit(t.ctx.isJson?{supported:!1,models:[]}:"\u8BE5 runtime \u4E0D\u652F\u6301\u6A21\u578B\u9009\u62E9"),0;let l=c.models||[];return t.ctx.isJson?(t.ctx.emit({supported:!0,models:l}),0):(Y(t.ctx,l.map(u=>({id:u.id||"",label:u.label||"",provider:u.provider||"",default:u.default?"\u2713":"",thinking:u.thinking?(u.thinking.supported_levels||[]).join(","):""})),{labels:{id:"Model ID",label:"\u540D\u79F0",provider:"Provider",default:"\u9ED8\u8BA4",thinking:"Thinking"},empty:"\u65E0\u53EF\u7528\u6A21\u578B"}),0)}async function tk(t){A(t);let e=await C(t,"GET","/api/workspaces"),s=E(t,e)||{},r=Array.isArray(s)?s:s.workspaces||[];return Y(t.ctx,r.map(n=>({id:n.id||"",name:n.name||"",slug:n.slug||""})),{labels:U,empty:"\u65E0 workspace"}),0}async function Ru(t){A(t);let e=t.arg||t.http.workspaceId,s=await C(t,"GET",`/api/workspaces/${encodeURIComponent(e)}`),r=E(t,s)||{};return V(t.ctx,[["id",r.id||""],["name",r.name||""],["slug",r.slug||""],["description",r.description||""]],null,{labels:U}),0}async function sk(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 workspace id/slug","\u7528\u6CD5: coder flow workspace switch <id|slug>",3),A(t);let s=await C(t,"GET",`/api/workspaces/${encodeURIComponent(e)}`),r=E(t,s)||{};return t.ctx.setTeam&&t.ctx.setTeam(r.id,r.name||""),t.ctx.emit(t.ctx.isJson?r:`\u5DF2\u5207\u6362\u5230 workspace: ${r.name||r.id}`),0}async function rk(t){let e=t.arg||t.http.workspaceId;A(t);let s={},r=b(t.args,"--name"),n=b(t.args,"--description"),o=b(t.args,"--context"),i=b(t.args,"--issue-prefix");r!==void 0&&(s.name=r),n!==void 0&&(s.description=n),o!==void 0&&(s.context=o),i!==void 0&&(s.issue_prefix=i),Object.keys(s).length||y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5","--name / --description / --context / --issue-prefix",3);let a=await C(t,"PATCH",`/api/workspaces/${encodeURIComponent(e)}`,s),c=E(t,a)||{};return V(t.ctx,[["id",c.id||""],["name",c.name||""],["slug",c.slug||""]],null,{labels:U}),0}async function nk(t){let e=t.arg||t.http.workspaceId;A(t);let s=await C(t,"GET",`/api/workspaces/${encodeURIComponent(e)}/members`),r=E(t,s)||{},n=Array.isArray(r)?r:r.members||[];return Y(t.ctx,n.map(o=>({id:o.id||"",name:o.name||o.username||"",role:o.role||""})),{labels:U,empty:"\u65E0\u6210\u5458"}),0}async function ok(t){A(t);let e=await C(t,"GET",`/api/workspaces/${t.http.workspaceId}/repos`),s=E(t,e)||{},r=Array.isArray(s)?s:s.repos||s.repositories||[];return Y(t.ctx,r.map(n=>({url:n.url||"",description:n.description||""})),{labels:U,empty:"\u65E0 repo"}),0}async function ik(t){A(t);let e=Ee(t.args,{valueFlags:["--description"]}),s=b(t.args,"--description");e.length||y(t.ctx,"\u7F3A\u5C11 repo URL","\u7528\u6CD5: coder flow repo add <url> [<url>...]",3);let r=e.map(i=>s&&e.length===1?{url:i,description:s}:{url:i}),n=await C(t,"POST",`/api/workspaces/${t.http.workspaceId}/repos`,{repos:r}),o=E(t,n)||{};return t.ctx.emit(t.ctx.isJson?o:`${e.length} \u4E2A repo \u5DF2\u6DFB\u52A0`),0}async function Lu(t){A(t);let e=Ee(t.args,{valueFlags:[]});e.length||y(t.ctx,"\u7F3A\u5C11 repo URL","\u7528\u6CD5: coder flow repo remove <url> [<url>...]",3);let s=await C(t,"DELETE",`/api/workspaces/${t.http.workspaceId}/repos`,{urls:e}),r=E(t,s)||{};return t.ctx.emit(t.ctx.isJson?r:`${e.length} \u4E2A repo \u5DF2\u79FB\u9664`),0}async function ak(t){let e=t.arg;e||y(t.ctx,"\u7F3A\u5C11 repo URL","\u7528\u6CD5: coder flow repo checkout <url> [--ref <branch>]",3),A(t);let s={url:e},r=b(t.args,"--ref");r&&(s.ref=r);let n=await C(t,"POST",`/api/workspaces/${t.http.workspaceId}/repos/checkout`,s),o=E(t,n)||{};return V(t.ctx,[["path",o.path||""],["url",e]],null,{labels:U}),0}async function ck(t){A(t);let e=await C(t,"GET","/api/me"),s=E(t,e)||{};return V(t.ctx,[["id",s.id||""],["name",s.name||s.display_name||""],["email",s.email||""],["description",s.description||s.profile_description||""]],null,{labels:U}),0}async function lk(t){A(t);let e={},s=b(t.args,"--description");t.args.includes("--clear")?e.profile_description="":s!==void 0?e.profile_description=s:y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5","--description <text> \u6216 --clear",3);let n=await C(t,"PATCH","/api/me",e),o=E(t,n)||{};return V(t.ctx,[["id",o.id||""],["description",o.description||o.profile_description||""]],null,{labels:U}),0}async function uk(t){let e=Ee(t.args,{valueFlags:["--url","--ref","--label","--position","--default-branch-hint","--local-path","--daemon-id","--ref-label"]}),s=e[0],r=e[1];(!s||!r)&&y(t.ctx,"\u7F3A\u5C11\u53C2\u6570","\u7528\u6CD5: coder flow project resource update <project-id> <resource-id> [--url <u>] [--label <l>]",3),A(t);let n={},o=b(t.args,"--url"),i=b(t.args,"--ref"),a=b(t.args,"--label"),c=b(t.args,"--position");if(i)try{n.resource_ref=JSON.parse(i)}catch{y(t.ctx,"--ref \u4E0D\u662F\u6709\u6548 JSON",null,3)}else if(o){n.resource_ref={url:o};let d=b(t.args,"--default-branch-hint");d&&(n.resource_ref.default_branch_hint=d)}a!==void 0&&(n.label=a),c!==void 0&&(n.position=Number(c)),Object.keys(n).length||y(t.ctx,"\u672A\u63D0\u4F9B\u4EFB\u4F55\u5B57\u6BB5","--url / --ref / --label / --position",3);let l=await C(t,"PUT",`/api/projects/${encodeURIComponent(s)}/resources/${encodeURIComponent(r)}`,n),u=E(t,l)||{};return V(t.ctx,[["id",u.id||""],["resource_type",u.resource_type||""],["label",u.label||""]],null,{labels:U}),0}async function Mu(t){let{spawn:e}=require("child_process"),{checkHealth:s}=ks(),{daemonLogPath:r,writePid:n}=Ht(),{loadConfig:o}=Mn(),i=require("fs"),a=require("path"),c=t.args.includes("--foreground"),l=r(),u=10*1024*1024,d=5;function f(){try{if(!i.existsSync(l)||i.statSync(l).size<u)return;let F=`${l}.${d}`;i.existsSync(F)&&i.unlinkSync(F);for(let z=d-1;z>=1;z--){let M=`${l}.${z}`;i.existsSync(M)&&i.renameSync(M,`${l}.${z+1}`)}i.renameSync(l,`${l}.1`)}catch{}}function h(F=new Date){let z=(pe,Oe=2)=>String(pe).padStart(Oe,"0"),M=-F.getTimezoneOffset(),be=M>=0?"+":"-",ve=z(Math.floor(Math.abs(M)/60)),Os=z(Math.abs(M)%60);return`${F.getFullYear()}-${z(F.getMonth()+1)}-${z(F.getDate())} ${z(F.getHours())}:${z(F.getMinutes())}:${z(F.getSeconds())}.${z(F.getMilliseconds(),3)} ${be}${ve}:${Os}`}if(c){let{DaemonProcess:F}=$u(),z=mk(t),M=o(z);M.token=t.ctx.getApiKey?t.ctx.getApiKey():null,M.coderBaseUrl=t.ctx.baseUrl||M.coderBaseUrl,i.mkdirSync(a.dirname(l),{recursive:!0}),f();let be=pe=>{f();let Oe=`[${h()}] ${pe}
|
|
504
|
+
`;try{i.appendFileSync(l,Oe)}catch{}process.stderr.isTTY&&process.stderr.write(Oe)};be(`[daemon] pid=${process.pid} node=${process.version} platform=${process.platform}`),be(`[daemon] log=${l} maxSize=${u/1024/1024}MB keep=${d}`),n(process.pid);let ve=new AbortController;return process.once("SIGINT",()=>ve.abort()),process.once("SIGTERM",()=>ve.abort()),await new F(M,be).run(ve),0}let g=19514,_=await s(g);(_.status==="running"||_.status==="starting")&&y(t.ctx,`daemon \u5DF2\u5728\u8FD0\u884C (pid ${_.pid})`,"\u7528 coder flow daemon restart \u91CD\u542F",1);let w=process.argv[0],x=process.argv[1],P=["flow","daemon","start","--foreground",...t.args.filter(F=>F!=="--foreground")];i.mkdirSync(a.dirname(l),{recursive:!0}),f();let W=i.openSync(l,"a"),D=e(w,[x,...P],{detached:!0,stdio:["ignore",W,"ignore"],env:Object.assign({},process.env,{CODER_APIKEY:t.ctx.getApiKey?t.ctx.getApiKey():process.env.CODER_APIKEY||""})});i.closeSync(W),D.unref(),n(D.pid);let N=Date.now()+45e3,K=!1;for(;Date.now()<N;)if(await To(500),(await s(g)).status==="running"){K=!0;break}return K?t.ctx.emit(`Daemon \u5DF2\u542F\u52A8 (pid ${D.pid})\u3002\u65E5\u5FD7: ${l}`):t.ctx.emit(`Daemon \u672A\u80FD\u5728 45s \u5185\u5C31\u7EEA\uFF0C\u68C0\u67E5\u65E5\u5FD7: ${l}`),0}async function Gu(t){let{checkHealth:e,requestShutdown:s}=ks(),{removePid:r}=Ht(),n=await e();if(n.status!=="running"&&n.status!=="starting")return t.ctx.emit("Daemon \u672A\u8FD0\u884C"),0;try{await s()}catch{if(n.pid)try{process.kill(n.pid,"SIGTERM")}catch{}}let o=Date.now()+15e3;for(;Date.now()<o;){await To(500);let i=await e();if(i.status!=="running"&&i.status!=="starting")return r(),t.ctx.emit("Daemon \u5DF2\u505C\u6B62"),0}return t.ctx.emit("Daemon \u4ECD\u5728\u505C\u6B62\u4E2D\uFF08\u53EF\u80FD\u6709\u4EFB\u52A1\u5728\u6267\u884C\uFF09"),0}async function dk(t){return await Gu(t),await To(1e3),Mu(t)}async function Pu(t){let{checkHealth:e}=ks(),{daemonLogPath:s}=Ht(),r=await e();return t.ctx.isJson?(t.ctx.emit(r),0):(r.status==="running"?(t.ctx.emit(`Daemon: \u8FD0\u884C\u4E2D (pid ${r.pid}, uptime ${r.uptime})`),Array.isArray(r.agents)&&r.agents.length&&t.ctx.emit(`Agents: ${r.agents.join(", ")}`),t.ctx.emit(`Workspaces: ${Array.isArray(r.workspaces)?r.workspaces.length:0}`)):r.status==="starting"?t.ctx.emit(`Daemon: \u542F\u52A8\u4E2D (pid ${r.pid})`):(t.ctx.emit("Daemon: \u672A\u8FD0\u884C"),t.ctx.emit(`\u65E5\u5FD7: ${s()}`)),0)}async function fk(t){let e=require("fs"),{daemonLogPath:s}=Ht(),r=s();e.existsSync(r)||y(t.ctx,`\u65E5\u5FD7\u6587\u4EF6\u4E0D\u5B58\u5728: ${r}`,"\u5148\u542F\u52A8 daemon: coder flow daemon start",4);let n=t.args.includes("-f")||t.args.includes("--follow"),o=t.args.find((l,u)=>(l==="-n"||l==="--lines")&&t.args[u+1])&&t.args[t.args.findIndex(l=>l==="-n"||l==="--lines")+1]||"50",i=parseInt(o,10)||50,c=e.readFileSync(r,"utf8").split(`
|
|
505
505
|
`).filter(l=>l).slice(-i);for(let l of c)t.ctx.emit(l);if(n){let l=e.statSync(r).size,u=setInterval(()=>{let d=e.statSync(r);if(d.size>l){let f=Buffer.alloc(d.size-l),h=e.openSync(r,"r");e.readSync(h,f,0,f.length,l),e.closeSync(h),l=d.size,f.toString().split(`
|
|
506
506
|
`).forEach(g=>{g&&t.ctx.emit(g)})}},500);process.once("SIGINT",()=>clearInterval(u)),await new Promise(()=>{})}return 0}async function pk(t){let e=require("fs"),s=require("path"),r=require("os"),n=t.args.find((u,d)=>u==="--workspaces-root"&&t.args[d+1])&&t.args[t.args.findIndex(u=>u==="--workspaces-root")+1]||process.env.MULTICA_WORKSPACES_ROOT||s.join(r.homedir(),"multica_workspaces");if(!e.existsSync(n))return t.ctx.isJson?(t.ctx.emit({workspaces_root:n,total_bytes:0,tasks:[]}),0):(t.ctx.emit(`Workspaces root: ${n}`),t.ctx.emit("(no task directories)"),0);let o=[],i=0;for(let u of e.readdirSync(n)){if(u===".repos")continue;let d=s.join(n,u);if(e.statSync(d).isDirectory())for(let f of e.readdirSync(d)){let h=s.join(d,f);if(!e.statSync(h).isDirectory())continue;let g=Fu(h);i+=g,o.push({path:`${u}/${f}`,size:g})}}o.sort((u,d)=>d.size-u.size);let a=t.args[t.args.findIndex(u=>u==="--top")+1],c=a?parseInt(a,10):0,l=c>0?o.slice(0,c):o;if(t.ctx.isJson)return t.ctx.emit({workspaces_root:n,total_bytes:i,tasks:o}),0;if(t.ctx.emit(`Workspaces root: ${n}`),!l.length)return t.ctx.emit("(no task directories)"),0;for(let u of l)t.ctx.emit(` ${u.path.padEnd(40)} ${Nu(u.size)}`);return t.ctx.emit(`
|
|
507
|
-
Total: ${Nu(i)} across ${o.length} task(s)`),0}function Fu(t){let e=require("fs"),s=require("path"),r=0;try{for(let n of e.readdirSync(t,{withFileTypes:!0})){if(n.name===".git")continue;let o=s.join(t,n.name);if(n.isDirectory())r+=Fu(o);else if(n.isFile())try{r+=e.statSync(o).size}catch{}}}catch{}return r}function Nu(t){return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KiB`:t<1073741824?`${(t/1048576).toFixed(1)} MiB`:`${(t/1073741824).toFixed(1)} GiB`}function mk(t){let{parseDuration:e}=Mn(),s={},r=n=>{let o=t.args.indexOf(n);return o!==-1?t.args[o+1]:void 0};return r("--daemon-id")&&(s.daemonId=r("--daemon-id")),r("--device-name")&&(s.deviceName=r("--device-name")),r("--runtime-name")&&(s.runtimeName=r("--runtime-name")),r("--poll-interval")&&(s.pollInterval=e(r("--poll-interval"),3e4)),r("--heartbeat-interval")&&(s.heartbeatInterval=e(r("--heartbeat-interval"),15e3)),r("--max-concurrent-tasks")&&(s.maxConcurrentTasks=parseInt(r("--max-concurrent-tasks"),10)),s}function To(t){return new Promise(e=>setTimeout(e,t))}async function hk(t){let e=require("fs"),s=require("path"),r=t.arg;r||y(t.ctx,"\u7F3A\u5C11 attachment id","\u7528\u6CD5: coder flow attachment download <id> [-o <dir>]",3),A(t);let n=await C(t,"GET",`/api/attachments/${encodeURIComponent(r)}`),o=E(t,n)||{},i=o.download_url;i||y(t.ctx,"attachment \u65E0 download_url",null,4);let a=s.basename(o.filename||r),c=b(t.args,"-o")||b(t.args,"--output-dir")||".",l=s.join(c,a),u=await new Promise((f,h)=>{(i.startsWith("https")?require("https"):require("http")).get(i,_=>{let w=[];_.on("data",x=>w.push(x)),_.on("end",()=>f(Buffer.concat(w))),_.on("error",h)}).on("error",h)});e.mkdirSync(c,{recursive:!0}),e.writeFileSync(l,u);let d=s.resolve(l);return t.ctx.emit(t.ctx.isJson?{id:o.id||r,filename:a,path:d}:`\u5DF2\u4E0B\u8F7D: ${d}`),0}Bu.exports={LABELS:U,issue:{list:Xw,get:Uu,info:Uu,create:Qw,update:eb,delete:xb,status:tb,assign:sb,search:rb,runs:pb,rerun:mb,"pull-requests":ub,"run-messages":db,"cancel-task":fb,comment:{list:nb,add:ob,delete:ib},label:{list:hb,add:gb,remove:yb},metadata:{list:_b,get:wb,set:bb,delete:kb},subscriber:{list:ab,add:cb,remove:lb}},label:{list:Sb,get:Ou,info:Ou,create:Ib,update:Cb,delete:Eb},agent:{list:os("agents","agents",["id","name","status"],{webPath:"agents",linkCol:"name"}),get:
|
|
507
|
+
Total: ${Nu(i)} across ${o.length} task(s)`),0}function Fu(t){let e=require("fs"),s=require("path"),r=0;try{for(let n of e.readdirSync(t,{withFileTypes:!0})){if(n.name===".git")continue;let o=s.join(t,n.name);if(n.isDirectory())r+=Fu(o);else if(n.isFile())try{r+=e.statSync(o).size}catch{}}}catch{}return r}function Nu(t){return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KiB`:t<1073741824?`${(t/1048576).toFixed(1)} MiB`:`${(t/1073741824).toFixed(1)} GiB`}function mk(t){let{parseDuration:e}=Mn(),s={},r=n=>{let o=t.args.indexOf(n);return o!==-1?t.args[o+1]:void 0};return r("--daemon-id")&&(s.daemonId=r("--daemon-id")),r("--device-name")&&(s.deviceName=r("--device-name")),r("--runtime-name")&&(s.runtimeName=r("--runtime-name")),r("--poll-interval")&&(s.pollInterval=e(r("--poll-interval"),3e4)),r("--heartbeat-interval")&&(s.heartbeatInterval=e(r("--heartbeat-interval"),15e3)),r("--max-concurrent-tasks")&&(s.maxConcurrentTasks=parseInt(r("--max-concurrent-tasks"),10)),s}function To(t){return new Promise(e=>setTimeout(e,t))}async function hk(t){let e=require("fs"),s=require("path"),r=t.arg;r||y(t.ctx,"\u7F3A\u5C11 attachment id","\u7528\u6CD5: coder flow attachment download <id> [-o <dir>]",3),A(t);let n=await C(t,"GET",`/api/attachments/${encodeURIComponent(r)}`),o=E(t,n)||{},i=o.download_url;i||y(t.ctx,"attachment \u65E0 download_url",null,4);let a=s.basename(o.filename||r),c=b(t.args,"-o")||b(t.args,"--output-dir")||".",l=s.join(c,a),u=await new Promise((f,h)=>{(i.startsWith("https")?require("https"):require("http")).get(i,_=>{let w=[];_.on("data",x=>w.push(x)),_.on("end",()=>f(Buffer.concat(w))),_.on("error",h)}).on("error",h)});e.mkdirSync(c,{recursive:!0}),e.writeFileSync(l,u);let d=s.resolve(l);return t.ctx.emit(t.ctx.isJson?{id:o.id||r,filename:a,path:d}:`\u5DF2\u4E0B\u8F7D: ${d}`),0}Bu.exports={LABELS:U,issue:{list:Xw,get:Uu,info:Uu,create:Qw,update:eb,delete:xb,status:tb,assign:sb,search:rb,runs:pb,rerun:mb,"pull-requests":ub,"run-messages":db,"cancel-task":fb,comment:{list:nb,add:ob,delete:ib},label:{list:hb,add:gb,remove:yb},metadata:{list:_b,get:wb,set:bb,delete:kb},subscriber:{list:ab,add:cb,remove:lb}},label:{list:Sb,get:Ou,info:Ou,create:Ib,update:Cb,delete:Eb},agent:{list:os("agents","agents",["id","name","status"],{webPath:"agents",linkCol:"name"}),get:je("agents",["id","name","status","description"],{webPath:"agents",linkCol:"name"}),info:je("agents",["id","name","status","description"],{webPath:"agents",linkCol:"name"}),create:Ab,update:He("agents","PUT",[["name","name"],["description","description"],["instructions","instructions"],["runtime-id","runtime_id"],["model","model"],["thinking-level","thinking_level"],["visibility","visibility"],["max-concurrent-tasks","max_concurrent_tasks"]],["id","name","model","runtime_id"],{idArg:!0}),archive:Io("agents","archive",["id","name","status"]),restore:Io("agents","restore",["id","name","status"]),tasks:vu("agents","tasks","tasks",["id","status","created_at"]),skills:{list:Tb,add:$b,set:Ub},env:{get:vb,set:Ob}},project:{list:os("projects","projects",["id","title","status"],{webPath:"projects",linkCol:"title"}),get:je("projects",["id","title","status","description"],{webPath:"projects",linkCol:"title"}),info:je("projects",["id","title","status","description"],{webPath:"projects",linkCol:"title"}),create:He("projects","POST",[["name","title"],["title","title"],["description","description"]],["id","title"],{withWorkspace:!0}),update:He("projects","PUT",[["name","title"],["title","title"],["description","description"],["status","status"]],["id","title"],{idArg:!0}),delete:Tr("projects"),status:Db,resource:{list:Rb,add:Lb,update:uk,remove:Pb}},squad:{list:os("squads","squads",["id","name"],{webPath:"squads",linkCol:"name"}),get:je("squads",["id","name","description"],{webPath:"squads",linkCol:"name"}),info:je("squads",["id","name","description"],{webPath:"squads",linkCol:"name"}),create:He("squads","POST",[["name","name"],["description","description"]],["id","name"],{withWorkspace:!0}),update:He("squads","PUT",[["name","name"],["description","description"]],["id","name"],{idArg:!0}),delete:Tr("squads"),activity:Gb,member:{list:Nb,add:qb,remove:Mb,"set-role":jb}},autopilot:{list:os("autopilots","autopilots",["id","title","status"],{webPath:"autopilots",linkCol:"title"}),get:je("autopilots",["id","title","status","description"],{webPath:"autopilots",linkCol:"title"}),info:je("autopilots",["id","title","status","description"],{webPath:"autopilots",linkCol:"title"}),create:He("autopilots","POST",[["name","title"],["title","title"],["description","description"]],["id","title"],{withWorkspace:!0}),update:He("autopilots","PUT",[["name","title"],["title","title"],["description","description"]],["id","title"],{idArg:!0}),delete:Tr("autopilots"),runs:vu("autopilots","runs","runs",["id","status","created_at"]),trigger:Io("autopilots","trigger",["id","status"]),"trigger-add":Fb,"trigger-update":Bb,"trigger-delete":Zb,"trigger-rotate-url":Vb},skill:{list:os("skills","skills",["id","name"],{webPath:"skills",linkCol:"name"}),get:je("skills",["id","name","description"],{webPath:"skills",linkCol:"name"}),info:je("skills",["id","name","description"],{webPath:"skills",linkCol:"name"}),create:He("skills","POST",[["name","name"],["description","description"]],["id","name"],{withWorkspace:!0}),update:He("skills","PUT",[["name","name"],["description","description"]],["id","name"],{idArg:!0}),delete:Tr("skills"),import:Wb,search:Kb,files:{list:zb,upsert:Jb,delete:Hb}},runtime:{list:os("runtimes","runtimes",["id","name","status"]),get:Du,info:Du,models:ek,usage:Yb,activity:Xb,update:Qb},workspace:{list:tk,get:Ru,info:Ru,switch:sk,update:rk,member:{list:nk}},repo:{list:ok,add:ik,remove:Lu,rm:Lu,checkout:ak},user:{profile:{get:ck,update:lk}},attachment:{download:hk},daemon:{list:Pu,start:Mu,stop:Gu,restart:dk,status:Pu,logs:fk,"disk-usage":pk}}});var zu=k((jx,Ku)=>{function Vu(t){let e=["USAGE"," coder flow <command> <subcommand> [flags]","","CORE COMMANDS"," agent: Work with agents"," autopilot: Manage autopilots (scheduled/triggered agent automations)"," issue: Work with issues"," label: Work with issue labels"," project: Work with projects"," repo: Work with repositories"," skill: Work with skills"," squad: Work with squads"," workspace: Work with workspaces","","RUNTIME COMMANDS"," daemon: Control the local agent runtime daemon"," runtime: Work with agent runtimes","","ADDITIONAL COMMANDS"," attachment: Work with attachments"," user: Work with your user account","","GLOBAL FLAGS"," --team <id> Specify team as workspace (default: coder team current)"," --workspace <id> Alias for --team"," --format json Structured JSON output (default: text)","","ENVIRONMENT VARIABLES"," MULTICA_BASE_URL Override the Multica server URL"," CODER_APIKEY API key (shared with coder auth)","","EXAMPLES"," $ coder team current # confirm current team (= multica workspace)"," $ coder flow issue list --format json"," $ coder flow issue get MUL-123"," $ coder flow agent list"," $ coder flow runtime list","","LEARN MORE"," Use `coder flow <command> --help` for more information about a command."];t.emit(e.join(`
|
|
508
508
|
`))}function Wu(t,e){let r={issue:["Work with issues","","USAGE"," coder flow issue <command> [flags]","","COMMANDS"," assign: Assign an issue to a member, agent, or squad"," cancel-task: Cancel a running or queued task"," comment: Work with issue comments"," create: Create a new issue"," delete: Delete an issue"," get: Get issue details"," label: Manage labels on an issue"," list: List issues in the workspace"," metadata: Manage per-issue metadata (KV)"," pull-requests: List pull requests linked to an issue"," rerun: Re-enqueue an issue as a fresh task"," run-messages: List messages for an execution"," runs: List execution history for an issue"," search: Search issues by title or description"," status: Change issue status"," subscriber: Work with issue subscribers"," update: Update an issue"],agent:["Work with agents","","USAGE"," coder flow agent <command> [flags]","","COMMANDS"," archive: Archive an agent"," create: Create a new agent"," env: Read and update an agent's custom environment variables (audited)"," get: Get agent details"," list: List agents in the workspace"," restore: Restore an archived agent"," skills: Manage agent skill assignments"," tasks: List tasks for an agent"," update: Update an agent","","SUBCOMMANDS (skills)"," skills list <agent-id> List skills assigned to agent"," skills add <agent-id> --skill-ids <id1,id2> Add skills (keeps existing)"," skills set <agent-id> --skill-ids <id1,id2> Replace all skills (pass empty to clear)"],project:["Work with projects","","USAGE"," coder flow project <command> [flags]","","COMMANDS"," create: Create a new project"," delete: Delete a project"," get: Get project details"," list: List projects in the workspace"," resource: Manage resources attached to a project"," status: Change project status"," update: Update a project"],label:["Work with issue labels","","USAGE"," coder flow label <command> [flags]","","COMMANDS"," create: Create a new label"," delete: Delete a label"," get: Get label details"," list: List labels in the workspace"," update: Update a label"],autopilot:["Manage autopilots (scheduled/triggered agent automations)","","USAGE"," coder flow autopilot <command> [flags]","","COMMANDS"," create: Create a new autopilot"," delete: Delete an autopilot"," get: Get autopilot details (includes triggers)"," list: List autopilots in the workspace"," runs: List execution history for an autopilot"," trigger: Manually trigger an autopilot to run once"," trigger-add: Add a schedule or webhook trigger to an autopilot"," trigger-delete: Delete a trigger"," trigger-rotate-url: Rotate the webhook URL of a webhook trigger"," trigger-update: Update an existing trigger"," update: Update an autopilot"],squad:["Work with squads","","USAGE"," coder flow squad <command> [flags]","","COMMANDS"," activity: Record a squad leader evaluation on an issue"," create: Create a new squad"," delete: Delete a squad (requires --yes)"," get: Get squad details"," list: List squads in the workspace"," member: Work with squad members"," update: Update a squad"],skill:["Work with skills","","USAGE"," coder flow skill <command> [flags]","","COMMANDS"," create: Create a new skill"," delete: Delete a skill"," files: Work with skill files"," get: Get skill details (includes files)"," import: Import a skill from a URL (clawhub.ai, skills.sh, or github.com)"," list: List skills in the workspace"," search: Search for installable skills"," update: Update a skill"],runtime:["Work with agent runtimes","","USAGE"," coder flow runtime <command> [flags]","","COMMANDS"," activity: Get hourly task activity for a runtime"," get: Get runtime details"," list: List runtimes in the workspace"," models: List available models for a runtime (async, polls until ready)"," update: Initiate a CLI update on a runtime"," usage: Get token usage for a runtime"],workspace:["Work with workspaces","","USAGE"," coder flow workspace <command> [flags]","","COMMANDS"," get: Get workspace details"," list: List all workspaces you belong to"," member: Manage workspace members"," switch: Set the default workspace"," update: Update workspace metadata (admin/owner only)"],repo:["Work with repositories","","USAGE"," coder flow repo <command> [flags]","","COMMANDS"," add: Add repositories to the workspace registry"," checkout: Check out a repository into the working directory"," list: List workspace repositories"," remove: Remove repositories from the workspace registry"],user:["Work with your user account","","USAGE"," coder flow user <command> [flags]","","COMMANDS"," profile: Get or update your personal profile"],attachment:["Work with attachments","","USAGE"," coder flow attachment <command> [flags]","","COMMANDS"," download: Download an attachment to a local file"],daemon:["Control the local agent runtime daemon","","USAGE"," coder flow daemon <command> [flags]","","COMMANDS"," disk-usage: Show workspace disk usage"," logs: Show daemon logs [-f] [-n <lines>]"," restart: Restart the daemon"," start: Start the daemon [--foreground] [--daemon-id] [--device-name]"," [--runtime-name] [--poll-interval] [--heartbeat-interval]"," [--max-concurrent-tasks]"," status: Show daemon status [--format json]"," stop: Stop the running daemon","","ENVIRONMENT VARIABLES"," MULTICA_SERVER_URL Server URL (default: https://flow.makecoder.com)"," MULTICA_DAEMON_POLL_INTERVAL Task poll interval (default: 30s)"," MULTICA_DAEMON_HEARTBEAT_INTERVAL Heartbeat interval (default: 15s)"," MULTICA_DAEMON_MAX_CONCURRENT_TASKS Max parallel tasks (default: 20)"," MULTICA_WORKSPACES_ROOT Workdir root (default: ~/multica_workspaces)"]}[e];r?t.emit(r.join(`
|
|
509
509
|
`)):Vu(t)}var gk={issue:{list:["List issues in the workspace","","USAGE"," coder flow issue list [flags]","","FLAGS"," --status <string> Filter by status (backlog|todo|in_progress|in_review|done|cancelled)"," --priority <string> Filter by priority (none|low|medium|high|urgent)"," --limit <n> Max results"," --offset <n> Pagination offset"," --full-id Include full UUID in output"],get:["Get issue details","","USAGE"," coder flow issue get <id|KEY>","","ARGS"," <id|KEY> Issue UUID or short key (e.g. MUL-123)"],create:["Create a new issue","","USAGE"," coder flow issue create --title <title> [flags]","","FLAGS"," --title <string> Issue title (required)"," --description <string> Issue description"," --priority <string> none | low | medium | high | urgent"," --status <string> Initial status"," --project <id> Project ID to assign to"," --agent <slug> Assign to agent (by name or ID); alias: --assignee"],update:["Update an issue","","USAGE"," coder flow issue update <id|KEY> [flags]","","ARGS"," <id|KEY> Issue UUID or short key","","FLAGS"," --title <string> New title"," --description <string> New description"," --priority <string> none | low | medium | high | urgent"," --status <string> New status"],delete:["Delete an issue","","USAGE"," coder flow issue delete <id|KEY> [--yes]","","ARGS"," <id|KEY> Issue UUID or short key","","FLAGS"," --yes Skip confirmation (high-impact operation)"],status:["Change issue status","","USAGE"," coder flow issue status <id|KEY> --set <status>","","ARGS"," <id|KEY> Issue UUID or short key","","FLAGS"," --set <string> New status (required); alias: --status"],assign:["Assign an issue to a member, agent, or squad","","USAGE"," coder flow issue assign <id|KEY> --agent <slug>"," coder flow issue assign <id|KEY> --unassign","","ARGS"," <id|KEY> Issue UUID or short key","","FLAGS"," --agent <slug> Assign to agent by name or ID; alias: --to"," --unassign Remove current assignee"],search:["Search issues by title or description","","USAGE"," coder flow issue search <query> [flags]","","ARGS"," <query> Search keyword","","FLAGS"," --limit <n> Max results"," --include-closed Include closed/cancelled issues"],runs:["List execution history for an issue","","USAGE"," coder flow issue runs <id|KEY>","","ARGS"," <id|KEY> Issue UUID or short key"],rerun:["Re-enqueue an issue as a fresh task","","USAGE"," coder flow issue rerun <id|KEY>","","ARGS"," <id|KEY> Issue UUID or short key"],"pull-requests":["List pull requests linked to an issue","","USAGE"," coder flow issue pull-requests <id|KEY>","","ARGS"," <id|KEY> Issue UUID or short key"],"run-messages":["List messages for an execution (task run)","","USAGE"," coder flow issue run-messages <task-id> [flags]","","ARGS"," <task-id> Task run UUID","","FLAGS"," --issue <id> Filter to a specific issue"," --since <seq> Return messages with sequence > seq"],"cancel-task":["Cancel a running or queued task","","USAGE"," coder flow issue cancel-task <task-id> [flags]","","ARGS"," <task-id> Task run UUID","","FLAGS"," --issue <id> Issue ID (optional context)"],comment:["Work with issue comments","","USAGE"," coder flow issue comment <subcommand> ...","","SUBCOMMANDS"," list <id|KEY> List comments on an issue"," add <id|KEY> --content <text> Add a comment"," delete <issue-id> <comment-id> Delete a comment"],"comment list":["List comments on an issue","","USAGE"," coder flow issue comment list <id|KEY>"],"comment add":["Add a comment to an issue","","USAGE"," coder flow issue comment add <id|KEY> --content <text> [flags]","","ARGS"," <id|KEY> Issue UUID or short key","","FLAGS"," --content <string> Comment text (required); alias: --body"," --parent <id> Parent comment ID (for threads)"],"comment delete":["Delete a comment","","USAGE"," coder flow issue comment delete <issue-id> <comment-id>"],label:["Manage labels on an issue","","USAGE"," coder flow issue label <subcommand> ...","","SUBCOMMANDS"," list <issue-id> List labels on an issue"," add <issue-id> <label-id> Add a label"," remove <issue-id> <label-id> Remove a label"],"label list":["List labels on an issue","","USAGE"," coder flow issue label list <id|KEY>"],"label add":["Add a label to an issue","","USAGE"," coder flow issue label add <issue-id> <label-id>"],"label remove":["Remove a label from an issue","","USAGE"," coder flow issue label remove <issue-id> <label-id>"],metadata:["Manage per-issue metadata (KV store)","","USAGE"," coder flow issue metadata <subcommand> ...","","SUBCOMMANDS"," list <id|KEY> List all KV entries"," get <id|KEY> --key <k> Get a single value"," set <id|KEY> --key <k> --value <v> Set a value (auto-typed)"," delete <id|KEY> --key <k> Delete a key"],"metadata list":["List metadata for an issue","","USAGE"," coder flow issue metadata list <id|KEY>"],"metadata get":["Get a metadata value","","USAGE"," coder flow issue metadata get <id|KEY> --key <key>","","FLAGS"," --key <string> Metadata key (required)"],"metadata set":["Set a metadata value","","USAGE"," coder flow issue metadata set <id|KEY> --key <k> --value <v> [flags]","","FLAGS"," --key <string> Metadata key (required)"," --value <string> Value (required; auto-parsed as JSON number/bool/string)"," --type <string> Force type: auto | string | number | bool"],"metadata delete":["Delete a metadata key","","USAGE"," coder flow issue metadata delete <id|KEY> --key <key>","","FLAGS"," --key <string> Metadata key (required)"],subscriber:["Work with issue subscribers","","USAGE"," coder flow issue subscriber <subcommand> ...","","SUBCOMMANDS"," list <id|KEY> List subscribers"," add <id|KEY> [--user <name>] Subscribe (self or a user)"," remove <id|KEY> [--user <name>] Unsubscribe"],"subscriber list":["List subscribers for an issue","","USAGE"," coder flow issue subscriber list <id|KEY>"],"subscriber add":["Subscribe to an issue","","USAGE"," coder flow issue subscriber add <id|KEY> [flags]","","FLAGS"," --user <name> User display name or username"," --user-id <uuid> User UUID"],"subscriber remove":["Unsubscribe from an issue","","USAGE"," coder flow issue subscriber remove <id|KEY> [flags]","","FLAGS"," --user <name> User display name or username"," --user-id <uuid> User UUID"]},agent:{list:["List agents in the workspace","","USAGE"," coder flow agent list"],get:["Get agent details","","USAGE"," coder flow agent get <id>","","ARGS"," <id> Agent UUID or name"],create:["Create a new agent","","USAGE"," coder flow agent create --name <name> --runtime-id <id> [flags]","","FLAGS"," --name <string> Agent name (required)"," --runtime-id <uuid> Runtime to bind (required)"," --description <string> Agent description"," --instructions <string> System instructions"," --model <string> Model ID (run `coder flow runtime models <id>` to list)"," --thinking-level <string> Thinking level: low | medium | high"," --visibility <string> private (default) | workspace"," --max-concurrent-tasks <n> Max parallel tasks (default 6)"," --skill-ids <id1,id2,...> Skill IDs to assign on create (comma-separated)"],update:["Update an agent","","USAGE"," coder flow agent update <id> [flags]","","ARGS"," <id> Agent UUID or name","","FLAGS"," --name <string> New name"," --description <string> New description"," --instructions <string> New system instructions"," --runtime-id <uuid> New runtime"," --model <string> New model"," --thinking-level <string> low | medium | high"," --visibility <string> private | workspace"," --max-concurrent-tasks <n> Max parallel tasks"],archive:["Archive an agent","","USAGE"," coder flow agent archive <id>"],restore:["Restore an archived agent","","USAGE"," coder flow agent restore <id>"],tasks:["List tasks for an agent","","USAGE"," coder flow agent tasks <id>"],skills:["Manage agent skill assignments","","USAGE"," coder flow agent skills <subcommand> ...","","SUBCOMMANDS"," list <agent-id> List skills assigned to agent"," add <agent-id> --skill-ids <id1,id2> Add skills (keeps existing)"," set <agent-id> --skill-ids <id1,id2> Replace all skills (empty to clear)"],"skills list":["List skills assigned to an agent","","USAGE"," coder flow agent skills list <agent-id>"],"skills add":["Add skills to an agent (keeps existing)","","USAGE"," coder flow agent skills add <agent-id> --skill-ids <id1,id2>","","FLAGS"," --skill-ids <csv> Comma-separated skill UUIDs (required)"],"skills set":["Replace all skills on an agent","","USAGE"," coder flow agent skills set <agent-id> --skill-ids <id1,id2>","","FLAGS"," --skill-ids <csv> Comma-separated skill UUIDs (empty string to clear all)"],env:["Read and update an agent's custom environment variables","","USAGE"," coder flow agent env <subcommand> ...","","SUBCOMMANDS"," get <agent-id> List env vars"," set <agent-id> --custom-env '{...}' Replace env vars (JSON object)"],"env get":["Get agent environment variables","","USAGE"," coder flow agent env get <agent-id>"],"env set":["Set agent environment variables","","USAGE"," coder flow agent env set <agent-id> --custom-env <json>","","FLAGS",` --custom-env <json> Full env as JSON object, e.g. '{"KEY":"val"}' (required)`]},project:{list:["List projects in the workspace","","USAGE"," coder flow project list"],get:["Get project details","","USAGE"," coder flow project get <id>"],create:["Create a new project","","USAGE"," coder flow project create --title <title> [flags]","","FLAGS"," --title <string> Project title (required); alias: --name"," --description <string> Project description"],update:["Update a project","","USAGE"," coder flow project update <id> [flags]","","FLAGS"," --title <string> New title; alias: --name"," --description <string> New description"," --status <string> New status"],delete:["Delete a project","","USAGE"," coder flow project delete <id> [--yes]","","FLAGS"," --yes Skip confirmation"],status:["Change project status","","USAGE"," coder flow project status <id> --set <status>","","FLAGS"," --set <string> New status (required); alias: --status"],resource:["Manage resources attached to a project","","USAGE"," coder flow project resource <subcommand> ...","","SUBCOMMANDS"," list <project-id> List resources"," add <project-id> --url <u> Add a github_repo resource"," update <project-id> <resource-id> [flags] Update a resource"," remove <project-id> <resource-id> Remove a resource"],"resource list":["List resources in a project","","USAGE"," coder flow project resource list <project-id>"],"resource add":["Add a resource to a project","","USAGE"," coder flow project resource add <project-id> [flags]","","FLAGS"," --type <string> Resource type: github_repo (default) | local_directory"," --url <string> GitHub repo URL (github_repo)"," --default-branch-hint <string> Default branch override"," --local-path <string> Local path (local_directory)"," --daemon-id <string> Daemon ID (local_directory)"," --label <string> Display label"],"resource update":["Update a project resource","","USAGE"," coder flow project resource update <project-id> <resource-id> [flags]","","FLAGS"," --url <string> New URL"," --label <string> New label"," --position <n> New position"],"resource remove":["Remove a resource from a project","","USAGE"," coder flow project resource remove <project-id> <resource-id>"]},label:{list:["List labels in the workspace","","USAGE"," coder flow label list"],get:["Get label details","","USAGE"," coder flow label get <id>"],create:["Create a new label","","USAGE"," coder flow label create --name <n> --color <#hex>","","FLAGS"," --name <string> Label name (required)"," --color <string> Hex color code, e.g. #3b82f6 (required)"],update:["Update a label","","USAGE"," coder flow label update <id> [flags]","","FLAGS"," --name <string> New name"," --color <string> New hex color"],delete:["Delete a label","","USAGE"," coder flow label delete <id> [--yes]","","FLAGS"," --yes Skip confirmation"]},autopilot:{list:["List autopilots in the workspace","","USAGE"," coder flow autopilot list"],get:["Get autopilot details (includes triggers)","","USAGE"," coder flow autopilot get <id>"],create:["Create a new autopilot","","USAGE"," coder flow autopilot create --title <title> [flags]","","FLAGS"," --title <string> Title (required); alias: --name"," --description <string> Description"],update:["Update an autopilot","","USAGE"," coder flow autopilot update <id> [flags]","","FLAGS"," --title <string> New title"," --description <string> New description"],delete:["Delete an autopilot","","USAGE"," coder flow autopilot delete <id> [--yes]","","FLAGS"," --yes Skip confirmation"],runs:["List execution history for an autopilot","","USAGE"," coder flow autopilot runs <id>"],trigger:["Manually trigger an autopilot to run once","","USAGE"," coder flow autopilot trigger <id>"],"trigger-add":["Add a schedule or webhook trigger to an autopilot","","USAGE"," coder flow autopilot trigger-add <id> --kind schedule --cron '0 9 * * *'"," coder flow autopilot trigger-add <id> --kind webhook","","ARGS"," <id> Autopilot UUID","","FLAGS"," --kind <string> schedule | webhook (required)"," --cron <expr> Cron expression for schedule triggers, e.g. '0 9 * * *'"," --timezone <string> Timezone for cron (e.g. Asia/Shanghai)"," --label <string> Display label"],"trigger-update":["Update an existing trigger","","USAGE"," coder flow autopilot trigger-update <autopilot-id> <trigger-id> [flags]","","FLAGS"," --cron <expr> New cron expression"," --timezone <string> New timezone"," --label <string> New label"," --enabled true|false Enable or disable"],"trigger-delete":["Delete a trigger","","USAGE"," coder flow autopilot trigger-delete <autopilot-id> <trigger-id> [--yes]","","FLAGS"," --yes Skip confirmation"],"trigger-rotate-url":["Rotate the webhook URL of a webhook trigger","","USAGE"," coder flow autopilot trigger-rotate-url <autopilot-id> <trigger-id> [--yes]","","FLAGS"," --yes Confirm URL rotation (old URL becomes invalid immediately)"]},squad:{list:["List squads in the workspace","","USAGE"," coder flow squad list"],get:["Get squad details","","USAGE"," coder flow squad get <id>"],create:["Create a new squad","","USAGE"," coder flow squad create --name <name> [flags]","","FLAGS"," --name <string> Squad name (required)"," --description <string> Description"],update:["Update a squad","","USAGE"," coder flow squad update <id> [flags]","","FLAGS"," --name <string> New name"," --description <string> New description"],delete:["Delete a squad (requires --yes)","","USAGE"," coder flow squad delete <id> --yes","","FLAGS"," --yes Confirm deletion"],activity:["Record a squad leader evaluation on an issue","","USAGE"," coder flow squad activity <issue-id> <outcome> [flags]","","ARGS"," <issue-id> Issue UUID or short key"," <outcome> action | no_action | failed","","FLAGS"," --reason <string> Evaluation reason"],member:["Work with squad members","","USAGE"," coder flow squad member <subcommand> ...","","SUBCOMMANDS"," list <squad-id> List members"," add <squad-id> --member-id <id> [--type] [--role] Add a member"," remove <squad-id> --member-id <id> Remove a member"," set-role <squad-id> --member-id <id> --role <r> Change a member's role"],"member list":["List squad members","","USAGE"," coder flow squad member list <squad-id>"],"member add":["Add a member to a squad","","USAGE"," coder flow squad member add <squad-id> --member-id <id> [flags]","","FLAGS"," --member-id <uuid> Member UUID (required)"," --type <string> agent (default) | member"," --role <string> Role (default: member)"],"member remove":["Remove a member from a squad","","USAGE"," coder flow squad member remove <squad-id> --member-id <id>","","FLAGS"," --member-id <uuid> Member UUID (required)"," --type <string> agent (default) | member"],"member set-role":["Change a squad member's role","","USAGE"," coder flow squad member set-role <squad-id> --member-id <id> --role <r>","","FLAGS"," --member-id <uuid> Member UUID (required)"," --role <string> New role (required)"," --member-type <string> agent (default) | member"]},skill:{list:["List skills in the workspace","","USAGE"," coder flow skill list"],get:["Get skill details (includes files)","","USAGE"," coder flow skill get <id>"],create:["Create a new skill","","USAGE"," coder flow skill create --name <n> [flags]","","FLAGS"," --name <string> Skill name (required)"," --description <string> Description"],update:["Update a skill","","USAGE"," coder flow skill update <id> [flags]","","FLAGS"," --name <string> New name"," --description <string> New description"],delete:["Delete a skill","","USAGE"," coder flow skill delete <id> [--yes]","","FLAGS"," --yes Skip confirmation"],import:["Import a skill from a URL","","USAGE"," coder flow skill import --url <url> [flags]","","FLAGS"," --url <string> Source URL: clawhub.ai, skills.sh, or github.com (required)"," --on-conflict <string> fail (default) | overwrite | rename | skip"],search:["Search for installable skills","","USAGE"," coder flow skill search <query>","","ARGS"," <query> Search keyword"],files:["Work with skill files","","USAGE"," coder flow skill files <subcommand> ...","","SUBCOMMANDS"," list <skill-id> List files"," upsert <skill-id> --path <p> --content <c> Create or update a file"," delete <skill-id> <file-id> [--yes] Delete a file"],"files list":["List files in a skill","","USAGE"," coder flow skill files list <skill-id>"],"files upsert":["Create or update a skill file","","USAGE"," coder flow skill files upsert <skill-id> --path <p> --content <c>","","FLAGS"," --path <string> File path within the skill (required)"," --content <string> File content (required)"],"files delete":["Delete a skill file","","USAGE"," coder flow skill files delete <skill-id> <file-id> [--yes]","","FLAGS"," --yes Skip confirmation"]},runtime:{list:["List runtimes in the workspace","","USAGE"," coder flow runtime list"],get:["Get runtime details","","USAGE"," coder flow runtime get <id>","","ARGS"," <id> Runtime UUID or name"],models:["List available models for a runtime (async, polls until ready)","","USAGE"," coder flow runtime models <id>","","ARGS"," <id> Runtime UUID or name"],usage:["Get token usage for a runtime","","USAGE"," coder flow runtime usage <id> [flags]","","ARGS"," <id> Runtime UUID or name","","FLAGS"," --days <n> Number of days to include (default 90)"],activity:["Get hourly task activity for a runtime","","USAGE"," coder flow runtime activity <id>"],update:["Initiate a CLI update on a runtime","","USAGE"," coder flow runtime update <id> --target-version <v>","","FLAGS"," --target-version <string> Target version to update to (required)"]},workspace:{list:["List all workspaces you belong to","","USAGE"," coder flow workspace list"],get:["Get workspace details","","USAGE"," coder flow workspace get [id]","","ARGS"," [id] Workspace UUID or slug (default: current workspace)"],switch:["Set the default workspace","","USAGE"," coder flow workspace switch <id|slug>"],update:["Update workspace metadata (admin/owner only)","","USAGE"," coder flow workspace update [id] [flags]","","FLAGS"," --name <string> New workspace name"," --description <string> New description"," --context <string> New context string"," --issue-prefix <string> Issue key prefix"],member:["Manage workspace members","","USAGE"," coder flow workspace member list [workspace-id]"],"member list":["List workspace members","","USAGE"," coder flow workspace member list [workspace-id]"]},repo:{list:["List workspace repositories","","USAGE"," coder flow repo list"],add:["Add repositories to the workspace registry","","USAGE"," coder flow repo add <url> [<url>...] [flags]","","ARGS"," <url>... One or more repository URLs","","FLAGS"," --description <string> Description (only applied when adding a single repo)"],remove:["Remove repositories from the workspace registry","","USAGE"," coder flow repo remove <url> [<url>...]","","ARGS"," <url>... One or more repository URLs"],checkout:["Check out a repository into the working directory","","USAGE"," coder flow repo checkout <url> [flags]","","ARGS"," <url> Repository URL","","FLAGS"," --ref <string> Branch, tag, or commit to check out"]},user:{profile:["Get or update your personal profile","","USAGE"," coder flow user profile get"," coder flow user profile update --description <text>"," coder flow user profile update --clear"],"profile get":["Get your personal profile","","USAGE"," coder flow user profile get"],"profile update":["Update your personal profile","","USAGE"," coder flow user profile update --description <text>"," coder flow user profile update --clear","","FLAGS"," --description <string> New profile description"," --clear Clear the profile description"]},attachment:{download:["Download an attachment to a local file","","USAGE"," coder flow attachment download <id> [flags]","","ARGS"," <id> Attachment UUID","","FLAGS"," -o, --output-dir <dir> Directory to save file (default: current directory)"]},daemon:{start:["Start the daemon","","USAGE"," coder flow daemon start [flags]","","FLAGS"," --foreground Run in foreground (no daemonize)"," --daemon-id <string> Override daemon ID"," --device-name <string> Override device name"," --runtime-name <string> Override runtime name"," --poll-interval <duration> Task poll interval (default 30s)"," --heartbeat-interval <dur> Heartbeat interval (default 15s)"," --max-concurrent-tasks <n> Max parallel tasks (default 20)"],stop:["Stop the running daemon","","USAGE"," coder flow daemon stop"],restart:["Restart the daemon","","USAGE"," coder flow daemon restart"],status:["Show daemon status","","USAGE"," coder flow daemon status [flags]","","FLAGS"," --format json JSON output"],logs:["Show daemon logs","","USAGE"," coder flow daemon logs [flags]","","FLAGS"," -f, --follow Follow log output"," -n, --lines <n> Number of recent lines to show (default 50)"],"disk-usage":["Show workspace disk usage","","USAGE"," coder flow daemon disk-usage [flags]","","FLAGS"," --workspaces-root <dir> Custom workspaces root directory"," --top <n> Show only the top N entries by size"]}};function yk(t,e,s,r){let n=gk[e]||{},o=r&&n[`${s} ${r}`]||n[s];o?t.emit(o.join(`
|
|
510
510
|
`)):Wu(t,e)}Ku.exports={showHelp:Vu,showResourceHelp:Wu,showVerbHelp:yk}});var Hu=k((Gx,Ju)=>{var{MulticaHttp:_k,parseJson:Mx}=Ln(),wk=Zu(),{showHelp:bk,showResourceHelp:kk,showVerbHelp:xk}=zu(),Sk=new Set(["--format","--apikey"]);function Ik(t){let e=[];for(let s=0;s<t.length;s++){if(Sk.has(t[s])){s++;continue}e.push(t[s])}return e}var Ck=new Set(["issue","agent","project","label","skill","squad","autopilot","runtime","workspace","repo","user","attachment","daemon"]),Ek=new Set(["daemon"]),$o=class{constructor(e){this.ctx=e||null,this.teamService=null}async handle({multicaSubcommand:e,multicaRemainingArgs:s,apikey:r}){let n=this.ctx;if(!e||e==="--help"||e==="-h")return bk(n),0;let o=r;if(!o)return n.fail("\u7F3A\u5C11 API Key","\u5148\u767B\u5F55: coder auth login --apikey <ak>.<sk>"),2;let i=e;if(!Ck.has(i))return n.fail(`\u672A\u77E5\u547D\u4EE4: coder flow ${i}`,"\u67E5\u770B\u5168\u90E8\u547D\u4EE4: coder flow --help"),3;let a=Ik(s||[]);if(a.length===0||a[0]==="--help"||a[0]==="-h")return kk(n,i),0;if(a.includes("--help")||a.includes("-h")){let x=a[0],P=a[1]&&!a[1].startsWith("-")?a[1]:null;return xk(n,i,x,P),0}let{teamId:c,remaining:l}=this._extractWorkspaceFlag(a),u=Ek.has(i)?null:await this._resolveWorkspace(c,o),d=this._resolve(i,l);if(d.error)return n.fail(d.error,"\u67E5\u770B\u5168\u90E8\u547D\u4EE4: coder flow --help"),3;let f=n.getMulticaBaseUrl?n.getMulticaBaseUrl():null,h=new _k(o,f,u),{fn:g,args:_}=d,w={ctx:n,http:h,args:_,arg:_[0]};try{return await g(w)||0}catch(x){return x&&x.handled?x.code||1:(n.fail(x.message||String(x),x.hint),1)}}_resolve(e,s){let r=wk[e];if(!r)return{error:`\u8D44\u6E90 ${e} \u6682\u672A\u5B9E\u73B0`};let n=s[0];if(!n||n.startsWith("-")){let i=r.list||r.get;return i?{fn:i,args:s}:{error:`${e} \u7F3A\u5C11\u9ED8\u8BA4\u52A8\u8BCD`}}let o=r[n];if(!o){let i=Object.keys(r).join(" | ");return{error:`\u672A\u77E5 ${e} \u52A8\u8BCD: ${n}\uFF08\u53EF\u7528: ${i}\uFF09`}}if(typeof o=="object"&&o!==null&&typeof o!="function"){let i=s[1];if(!i||i.startsWith("-")){let c=o.list||o.get;return c?{fn:c,args:s.slice(1)}:{error:`${e} ${n} \u7F3A\u5C11\u9ED8\u8BA4\u52A8\u8BCD`}}let a=o[i];if(!a){let c=Object.keys(o).join(" | ");return{error:`\u672A\u77E5 ${e} ${n} \u52A8\u8BCD: ${i}\uFF08\u53EF\u7528: ${c}\uFF09`}}return{fn:a,args:s.slice(2)}}return{fn:o,args:s.slice(1)}}_extractWorkspaceFlag(e){for(let s of["--workspace","--team"]){let r=e.indexOf(s);if(r!==-1&&e[r+1])return{teamId:e[r+1],remaining:[...e.slice(0,r),...e.slice(r+2)]}}return{teamId:null,remaining:e}}async _resolveWorkspace(e,s){if(e)return e;let r=this.ctx,n=r.getTeam?r.getTeam():null;if(n&&n.id)return n.id;if(this.teamService&&r.getTeamManual&&!r.getTeamManual())try{let o=encodeURIComponent(JSON.stringify({filter_is_joined:!0})),i=await this.teamService.request("GET",`/team?constraints=${o}&page=1&size=200`,s);if(i.status===200){let c=this.teamService.parseJson(i.body)?.data?.items||[];if(c.length)return r.setTeam(c[0].id,c[0].name||""),c[0].id}}catch{}return null}};Ju.exports=$o});var Xu=k((Fx,Yu)=>{var Ak=Hu(),Tk=ar();function $k(t,e){let s=new Ak(e);return s.teamService=new Tk(e),t.command("flow [args...]").description("\u64CD\u4F5C Coder Flow\uFF08issue/agent \u7B49\uFF09").allowUnknownOption().helpOption(!1).action(async r=>{let n=r||[],o=await s.handle({multicaSubcommand:n[0],multicaRemainingArgs:n.slice(1),apikey:e.getApiKey()});process.exitCode=o||0}),s}Yu.exports={register:$k}});var sd=k((Bx,td)=>{var Uk=Vs(),vk=ar();function ed(t,e,s){let[r,n]=e;return{[`${t}Subcommand`]:r,[`${t}Arg`]:n,[`${t}RemainingArgs`]:e.slice(1),apikey:s.getApiKey(),coderBaseUrl:s.getCoderBaseUrl()}}function Qu(t,e,s){t.command(`${s.name} [args...]`).description(s.describe).allowUnknownOption().helpOption(!1).action(async r=>{let n=await s.service.handle(ed(s.prefix,r||[],e));process.exitCode=n||0})}function Ok(t,e){let s=new vk(e),r=new Uk(e);return r.teamService=s,Qu(t,e,{name:"team",describe:"\u7BA1\u7406\u56E2\u961F\u4E0E\u6210\u5458\uFF08\u9762\u5411 AI\uFF09",prefix:"team",service:s}),Qu(t,e,{name:"skills",describe:"\u7BA1\u7406 Claude Code skills",prefix:"skills",service:r}),{teamService:s,skillsService:r}}td.exports={register:Ok,buildHandleArgs:ed}});var nd=k((Zx,rd)=>{var Dk=ga(),Rk=Qa(),Lk=nc(),Pk=pc(),Nk=Ac(),qk=Xu(),jk=sd();function Mk(t,e){return Dk.register(t,e),Rk.register(t,e),Lk.register(t,e),Pk.register(t,e),Nk.register(t,e),qk.register(t,e),{domains:jk.register(t,e)}}rd.exports={registerAll:Mk}});var ad=k((Vx,id)=>{var{CoderContext:od}=Lo(),{SHORTCUTS:Gk,isAgentName:Fk,launchAgent:Bk}=Ms(),Zk=ci(),{version:Vk}=Lt(),Uo=class{constructor(){this.vscodeExtensionService=new Zk}_readGlobalOptions(e){let s=null,r=null;for(let n=0;n<e.length;n++)e[n]==="--format"&&e[n+1]?s=e[n+1]:e[n]==="--apikey"&&e[n+1]&&(r=e[n+1]);return{format:s,apikey:r}}_leadingCompletionFlag(e){let s=new Set(["--format","--apikey"]);for(let r=0;r<e.length;r++){let n=e[r];if(n==="--install-completion"||n==="--show-completion")return n;if(s.has(n)){r++;continue}if(!n.startsWith("-"))return null}return null}async run(e=process.argv.slice(2)){if(e[0]==="__complete"){let{complete:i}=ia();return i(e.slice(1))}let s=this._leadingCompletionFlag(e);if(s){let i=this._readGlobalOptions(e),a=new od(i),{installCompletion:c,showCompletion:l}=pa(),u=e.indexOf(s),d=e[u+1]&&!e[u+1].startsWith("-")?e[u+1]:null;return s==="--install-completion"?c(a,d):l(a,d)}try{await this.vscodeExtensionService.ensureExtensionInstalled()}catch(i){process.env.CODER_DEBUG&&console.error("VSCode Extension Service Error:",i)}let r=this._readGlobalOptions(e),n=new od(r),o=e[0];return o?Gk.has(o)&&Fk(o)?await this._launchShortcut(o,e.slice(1),n):await this._runCommander(e,n):await this._launchShortcut("claude",[],n)}async _launchShortcut(e,s,r){let n=r.getApiKey();return n?(this._notifySkillUpdates(n),await Bk(e,s,r)||0):(r.fail("missing credentials","run `coder auth login --apikey <ak>.<sk>`\uFF08\u83B7\u53D6: https://makecoder.com/my/apikeys\uFF09"),1)}_notifySkillUpdates(e){try{let s=Vs();new s(null).notifyAndRefreshUpdates(e)}catch{}}async _runCommander(e,s){let{Command:r}=require("commander"),{registerAll:n}=nd(),o=new r;return o.name("coder").description("Coder \u2014 AI Agent Runtime OS\uFF08AI\u667A\u80FD\u4F53\u64CD\u4F5C\u7CFB\u7EDF\uFF09").version(Vk,"-v, --version","\u663E\u793A\u7248\u672C\u53F7").helpOption("-h, --help","\u663E\u793A\u5E2E\u52A9\u4FE1\u606F").enablePositionalOptions().addHelpText("after",["","\u5FEB\u6377\u65B9\u5F0F:"," coder \u7B49\u540C coder agent claude"," coder claude ... \u7B49\u540C coder agent claude ..."," coder codex ... \u7B49\u540C coder agent codex ..."," coder gemini ... \u7B49\u540C coder agent gemini ...","",`\u914D\u7F6E\u6587\u4EF6: ${s.configPath}`].join(`
|