@crewx/sdk 0.9.0-rc.202 → 0.9.0-rc.204
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/esm/index.js +288 -288
- package/dist/esm/plugins/index.js +92 -92
- package/dist/esm/repository/index.js +146 -146
- package/dist/index.browser.js +4 -4
- package/dist/index.d.ts +3 -3
- package/dist/index.js +293 -293
- package/dist/migrations/0049_blue_sleepwalker.sql +25 -0
- package/dist/migrations/meta/0049_snapshot.json +5165 -0
- package/dist/migrations/meta/_journal.json +7 -0
- package/dist/plugins/index.js +97 -97
- package/dist/provider/cli/meta.d.ts +1 -0
- package/dist/repository/index.js +148 -148
- package/dist/route/decide.d.ts +2 -0
- package/dist/route/index.d.ts +2 -2
- package/dist/route/sqlite-store.d.ts +3 -2
- package/dist/route/store.d.ts +7 -4
- package/dist/route/types.d.ts +111 -18
- package/dist/schema/model-routes.d.ts +58 -1
- package/dist/types/index.d.ts +35 -370
- package/dist/ui-plugin/app-manifest.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.browser.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {load}from'js-yaml';import'js-tiktoken';import'js-tiktoken/lite';import
|
|
2
|
-
`);E=ve.pop();for(let
|
|
1
|
+
import {load}from'js-yaml';import'js-tiktoken';import'js-tiktoken/lite';import yt from'js-tiktoken/ranks/o200k_base';import {z as z$1}from'zod';var x=class extends Error{constructor(n,t){let r=t.length>0?` Available: ${t.join(", ")}`:"";super(`Agent not found: "${n}".${r}`),this.name="AgentNotFoundError";}},Dn={claude:{id:"claude",provider:"cli/claude"},copilot:{id:"copilot",provider:"cli/copilot"},codex:{id:"codex",provider:"cli/codex"}};function Y(e,n){let t=e.startsWith("@")?e.slice(1):e,r=n.find(i=>i.id===t);if(r)return r;let o=Dn[t];if(o)return o;throw new x(e,n.map(i=>i.id))}function Nn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Un(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function we(e){if(!Nn(e)||Un(e,"grok"))return e;let n=e.mode,t;switch(n){case "agent":t={...e,grok:{alwaysApprove:true,sandbox:"workspace"}},delete t.mode;break;case "agent-full-access":case "yolo":t={...e,grok:{alwaysApprove:true,sandbox:"off"}},delete t.mode;break;case "read-only":case "plan":t={...e,mode:"plan",grok:{alwaysApprove:false,sandbox:"read-only"}};break;default:return e}return t}function K(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function De(e){if(e)return e.slice(e.lastIndexOf("/")+1)}function Ln(e,n){let t=e.providerOptions;if(K(t)){let i=De(n),s=i?t[i]:void 0;return K(s)?{...s}:{...t}}let r=De(n),o=r?e[r]:void 0;return K(o)?{...o}:void 0}function Bn(e){if(!e||typeof e!="object"||Array.isArray(e))return;let n=e,t=typeof n.provider=="string"?n.provider.trim():void 0,r=t?.slice(t.lastIndexOf("/")+1)==="grok",o=Object.prototype.hasOwnProperty.call(n,"grok")||Object.prototype.hasOwnProperty.call(n,"providerOptions"),i=r&&!o?we(n):n,s={};typeof i.provider=="string"&&i.provider.trim()&&(s.provider=i.provider.trim()),typeof i.model=="string"&&i.model.trim()&&(s.model=i.model.trim()),typeof i.mode=="string"&&i.mode.trim()&&(s.mode=i.mode.trim()),typeof i.effort=="string"&&i.effort.trim()&&(s.effort=i.effort.trim());let a=Ln(i,s.provider);return a&&(s.providerOptions=a),s}function Ne(e){if(e==null||e===false)return {active:false};if(e===true)return {active:true};if(typeof e=="object"){let n=e.mode;return {active:true,mode:n==="count"||n==="latch"?n:void 0}}return {active:false}}function Ue(e,n,t,r){if(!r.active)return {active:false,crossProvider:false};if(!e||typeof e!="object"||Array.isArray(e))return {active:false,crossProvider:false};let i=e[n];if(!i||typeof i!="object"||Array.isArray(i))return {active:false,crossProvider:false};let s=Bn(i.overdrive);if(!s||!s.provider||!s.model)return {active:false,crossProvider:false};let a=s.provider!==t;return {active:true,provider:s.provider,model:s.model,mode:s.mode,effort:s.effort,crossProvider:a,providerOptions:s.providerOptions}}function Le(e,n){if(!e||typeof e!="object"||Array.isArray(e))return {};let r=e[n];if(!r||typeof r!="object"||Array.isArray(r))return {};let o=r,i={};return o.provider!==void 0&&(typeof o.provider=="string"?o.provider.trim()&&(i.provider=o.provider.trim()):console.warn(`[crewx] options.${n}.provider must be a single string; ignoring non-string value (${JSON.stringify(o.provider)})`)),typeof o.model=="string"&&o.model.trim()&&(i.model=o.model.trim()),i}var jn=new Set(["ACCOUNT_SETTING_REQUIRED","MODEL_RETIRED","SUBSCRIPTION_REQUIRED"]),h=class extends Error{constructor(t,r,o){super(t);this.providerStr=r;this.name="ProviderError",this.code=o?.code??"UNKNOWN",this.kind=jn.has(this.code)?"config":o?.kind??(this.code==="UNKNOWN"?"transient":void 0),this.retryAfterMs=o?.retryAfterMs,this.settingReason=o?.settingReason,this.replacementModel=o?.replacementModel,this.providerReason=o?.providerReason;}providerStr;code;kind;retryAfterMs;settingReason;replacementModel;providerReason;stdout};var Be=new Map;function Q(e,n){Be.set(e,n);}function U(e){let n=e.split("/");if(n.length!==2)throw new h(`Invalid provider format: "${e}". Expected namespace/id (e.g., api/webllm)`,e);let[t,r]=n,o=Be.get(t);if(o)return o(r,e);throw new h(`Unsupported provider namespace: "${t}". Register a factory with registerProviderFactory('${t}', factory).`,e)}function je(e,n,t){let r=Array.isArray(e.provider)?e.provider[0]??"api/default":e.provider,o=e.inline?.model;if(!o?.startsWith("route/"))return {provider:t.provider??r,model:t.model??o};let i=e.options,s=Ue(i,n,r,Ne(t.overdrive));if(s.active&&s.model?.startsWith("route/"))return {provider:r,error:{code:"invalid_route_config",message:"Boost model must be concrete; route references belong in agent inline.model"}};let a=Le(i,n),p=a.model&&!a.model.startsWith("route/")?a.model:void 0;return t.model!==void 0||t.provider!==void 0||s.active||p!==void 0?{provider:s.active?s.provider??r:t.provider??a.provider??r,model:s.active?s.model:t.model??p}:{provider:r,error:{code:"ROUTE_UNAVAILABLE",message:"Model routes require the Node SDK runtime."}}}var Fn=new Function("u","return import(u)"),Z=class e{_agents;_config;_tools=new Map;_apiProviders=new Map;constructor(n,t){this._agents=new Map(n.map(r=>[r.id,r])),this._config=t;}static async fromConfig(n,t){let r=new e(n.agents??[],n),o=n.agents??[],i=p=>Array.isArray(p.provider)?p.provider[0]:p.provider,s=o.filter(p=>i(p)==="api/webllm"),a=o.filter(p=>i(p)==="api/openrouter");if(s.length>0&&await r._initWebLLM(s,t?.onProgress),a.length>0){if(!t?.openrouterApiKey)throw new Error("openrouterApiKey is required when using api/openrouter provider");r._initOpenRouter(a,t.openrouterApiKey);}return r._apiProviders.size>0&&Q("api",(p,l)=>{let c=r._apiProviders.get(p);if(!c)throw new h(`Unknown api provider: ${p}`,l);return c}),r}async _initWebLLM(n,t){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not available. Chrome 113+ or Edge 113+ required.");let r=await Fn("https://esm.run/@mlc-ai/web-llm"),o=n.find(a=>a.inline?.model&&!a.inline.model.startsWith("route/"))?.inline?.model??"gemma-2-2b-it-q4f16_1-MLC",i=await r.CreateMLCEngine(o,{initProgressCallback:t?a=>t(a):void 0}),s=[];this._apiProviders.set("webllm",{async query(a,p){let l=[];p?.systemPrompt&&l.push({role:"system",content:p.systemPrompt}),l.push(...s),l.push({role:"user",content:a});let c="",m=await i.chat.completions.create({messages:l,stream:true,temperature:.7,max_tokens:4096});for await(let E of m){let g=E.choices?.[0]?.delta?.content??"";c+=g,p?.onOutput&&p.onOutput(c,"stdout");}return s.push({role:"user",content:a}),s.push({role:"assistant",content:c}),c},async execute(a,p){return this.query(a,p)}});}_initOpenRouter(n,t){let r=n.find(i=>i.inline?.model&&!i.inline.model.startsWith("route/"))?.inline?.model??"google/gemma-2-2b-it",o=[];this._apiProviders.set("openrouter",{async query(i,s){let a=[];s?.systemPrompt&&a.push({role:"system",content:s.systemPrompt}),a.push(...o),a.push({role:"user",content:i});let p=await fetch("https://openrouter.ai/api/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify({model:s?.model||r,messages:a,stream:true})});if(!p.ok){let g=await p.text();throw new Error(`OpenRouter API error (${p.status}): ${g}`)}let l=p.body.getReader(),c=new TextDecoder,m="",E="";for(;;){let{done:g,value:$}=await l.read();if(g)break;E+=c.decode($,{stream:true});let ve=E.split(`
|
|
2
|
+
`);E=ve.pop();for(let wn of ve){let X=wn.trim();if(!X||!X.startsWith("data: "))continue;let Se=X.slice(6);if(Se!=="[DONE]")try{let ke=JSON.parse(Se).choices?.[0]?.delta?.content??"";m+=ke,ke&&s?.onOutput&&s.onOutput(m,"stdout");}catch{}}}return o.push({role:"user",content:i}),o.push({role:"assistant",content:m}),m},async execute(i,s){return this.query(i,s)}});}get agents(){return this._agents}get config(){return this._config}get tools(){return this._tools}registerTool(n,t){this._tools.set(n,{name:n,...t});}async query(n,t,r){let o=Date.now();if(r?.model?.startsWith("route/"))return {ok:false,data:"",error:{code:"ROUTE_UNAVAILABLE",message:"Model routes require the Node SDK runtime."},meta:{agentId:n.replace(/^@/,""),provider:"",durationMs:Date.now()-o}};let i;try{i=Y(n,Array.from(this._agents.values()));}catch(g){if(g instanceof x)return {ok:false,data:"",error:{code:"AGENT_NOT_FOUND",message:g.message},meta:{agentId:n.replace(/^@/,""),provider:"",durationMs:Date.now()-o}};throw g}let s=je(i,"query",r??{});if(s.error)return {ok:false,data:"",error:s.error,meta:{agentId:i.id,provider:s.provider,durationMs:Date.now()-o}};let a=s.provider,p=s.model,l=i.options,c=l&&typeof l=="object"&&!Array.isArray(l)?l.query:void 0,m=c&&typeof c=="object"&&!Array.isArray(c)&&typeof c.mode=="string"&&c.mode.trim()||void 0,E;try{E=U(a);}catch(g){return {ok:false,data:"",error:{code:"PROVIDER_ERROR",message:g.message,...g instanceof h?{providerCode:g.code}:{}},meta:{agentId:i.id,provider:a,model:p,durationMs:Date.now()-o}}}try{return {ok:!0,data:await E.query(t,{model:p,context:r?.context,systemPrompt:i.inline?.system_prompt??i.inline?.prompt,onOutput:r?.onOutput?$=>r.onOutput($):void 0}),meta:{agentId:i.id,provider:a,model:p,durationMs:Date.now()-o}}}catch(g){return {ok:false,data:"",error:{code:"QUERY_FAILED",message:g.message,...g instanceof h?{providerCode:g.code}:{},...m?{mode:m}:{}},meta:{agentId:i.id,provider:a,model:p,durationMs:Date.now()-o}}}}async execute(n,t,r){let o=Date.now();if(r?.model?.startsWith("route/"))return {ok:false,data:"",error:{code:"ROUTE_UNAVAILABLE",message:"Model routes require the Node SDK runtime."},meta:{agentId:n.replace(/^@/,""),provider:"",durationMs:Date.now()-o}};let i;try{i=Y(n,Array.from(this._agents.values()));}catch(c){if(c instanceof x)return {ok:false,data:"",error:{code:"AGENT_NOT_FOUND",message:c.message},meta:{agentId:n.replace(/^@/,""),provider:"",durationMs:Date.now()-o}};throw c}let s=je(i,"execute",r??{});if(s.error)return {ok:false,data:"",error:s.error,meta:{agentId:i.id,provider:s.provider,durationMs:Date.now()-o}};let a=s.provider,p=s.model,l;try{l=U(a);}catch(c){return {ok:false,data:"",error:{code:"PROVIDER_ERROR",message:c.message,...c instanceof h?{providerCode:c.code}:{}},meta:{agentId:i.id,provider:a,model:p,durationMs:Date.now()-o}}}try{return {ok:!0,data:await l.execute(t,{model:p,context:r?.context,systemPrompt:i.inline?.system_prompt??i.inline?.prompt}),meta:{agentId:i.id,provider:a,model:p,durationMs:Date.now()-o}}}catch(c){return {ok:false,data:"",error:{code:"EXECUTE_FAILED",message:c.message,...c instanceof h?{providerCode:c.code}:{}},meta:{agentId:i.id,provider:a,model:p,durationMs:Date.now()-o}}}}};var y="[REDACTED]",Fe="[PATH]";function ee(e){if(typeof e!="string")return;let n=e.trim();if(n)return n=n.replace(/^\s*at\s+[^\r\n]+(?:\r?\n|$)/gim,""),n=n.replace(/(^|[\r\n])\s*(?:authorization|proxy-authorization|x-api-key|x-goog-api-key|x-auth-token|cookie|set-cookie)\s*:\s*[^\r\n]*/gim,`$1[HTTP HEADER ${y}]`),n=Gn(n),n=n.replace(/\b(?:Bearer|Basic)\s+[A-Za-z0-9._~+\-/]+=*/gi,`${y}`),n=n.replace(/\bsk-[A-Za-z0-9][A-Za-z0-9_-]*/g,y),n=n.replace(/\bghp_[A-Za-z0-9][A-Za-z0-9_-]*/g,y),n=n.replace(/\bxoxb-[A-Za-z0-9-]+/g,y),n=n.replace(/\bxoxp-[A-Za-z0-9-]+/g,y),n=n.replace(/\bAKIA[0-9A-Z]{12,}\b/g,y),n=n.replace(/\bgithub_pat_[A-Za-z0-9_]+/g,y),n=n.replace(/\bgho_[A-Za-z0-9_]+/g,y),n=n.replace(/\bAIza[A-Za-z0-9_-]{20,}\b/g,y),n=n.replace(/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g,y),n=n.replace(/\b(?:authorization|api[_ -]?key|access[_ -]?token|auth[_ -]?token|refresh[_ -]?token|token|secret|password)\s*([:=])\s*["']?[^\s,;&"']+/gi,(t,r)=>`${y}${r}${y}`),n=n.replace(/([?&](?:api[_-]?key|access[_-]?token|token)=)[^&\s]+/gi,`$1${y}`),n=n.replace(/(?:\/(?:Users|home|private|var\/folders|tmp|workspace|workspaces|Volumes|opt|etc|srv|Applications)\/[^\s"'`),;]+)/g,Fe),n=n.replace(/\b[A-Z]:\\(?:Users|home|Windows|Program Files|workspace|workspaces)\\[^\s"'`),;]*/gi,Fe),n=n.replace(/[\r\n]{3,}/g,`
|
|
3
3
|
|
|
4
|
-
`).trim(),
|
|
4
|
+
`).trim(),Hn(n,1024)||void 0}function Hn(e,n){let t=new TextEncoder;if(t.encode(e).byteLength<=n)return e;let r="",o=0;for(let i of e){let s=t.encode(i).byteLength;if(o+s>n)break;r+=i,o+=s;}return r}function Gn(e){let n=/\b(?:request|response|http)?\s*body\s*[:=]\s*/gim,t="",r=0,o;for(;(o=n.exec(e))!==null;){if(o.index<r)continue;let i=o.index+o[0].length,s=Jn(e,i),a=s>=0?s:e.indexOf(`
|
|
5
5
|
`,i)>=0?e.indexOf(`
|
|
6
|
-
`,i):e.length;t+=e.slice(r,o.index),t+=`[HTTP BODY ${y}]`,r=a;}return t+e.slice(r)}function Gn(e,n){let t=e[n];if(t==='"'||t==="'")return Jn(e,n,t);if(t!=="{"&&t!=="[")return -1;let r=[],o,i=false;for(let s=n;s<e.length;s+=1){let a=e[s];if(o){i?i=false:a==="\\"?i=true:a===o&&(o=void 0);continue}if(a==='"'||a==="'"){o=a;continue}if(a==="{"||a==="["){r.push(a);continue}if(a!=="}"&&a!=="]")continue;let p=r.pop();if(a==="}"&&p!=="{"||a==="]"&&p!=="[")return -1;if(r.length===0)return s+1}return -1}function Jn(e,n,t){let r=false;for(let o=n+1;o<e.length;o+=1){let i=e[o];if(r)r=false;else if(i==="\\")r=true;else if(i===t)return o+1}return -1}function He(e,n=240){if(typeof e!="string")return;let t=e.split(/\r?\n/).map(r=>r.trim()).find(r=>r&&!/^at\s+/.test(r));if(t)return t.replace(/\u001b\[[0-?]*[ -/]*[@-~]/g,"").replace(/(^|[\s"'(=])((?:[A-Za-z]:[\\/]|\/)(?:[^\s"'`()\[\]{}]+[\\/])*[^\s"'`()\[\]{}]+)/g,"$1[path]").slice(0,n).trim()}function Ge(e){let n=He(e);if(n)return He(n.replace(/^Upstream request failed:\s*/i,""),200)}var zn=new Set(["USAGE_LIMITED","CONTEXT_WINDOW_EXCEEDED","INPUT_TOO_LARGE","MODEL_NOT_SUPPORTED","MODEL_AT_CAPACITY","AUTH_REQUIRED","ACCOUNT_SETTING_REQUIRED","MODEL_RETIRED","SUBSCRIPTION_REQUIRED","CLI_NOT_AVAILABLE","CLI_UPDATE_REQUIRED","AGENT_NOT_FOUND","PERMISSION_OR_TRUST","TIMEOUT_OR_STUCK","NETWORK_OR_PROVIDER_TRANSIENT","PROVIDER_CONFIGURATION","AGENT_MODE_RESTRICTED","PROCESS_FAILED"]),Vn=new Set(["plan","plan-auto","read-only"]),qn={QUOTA_EXHAUSTED:"USAGE_LIMITED",RATE_LIMITED:"USAGE_LIMITED",AUTH_REQUIRED:"AUTH_REQUIRED",ACCOUNT_SETTING_REQUIRED:"ACCOUNT_SETTING_REQUIRED",MODEL_RETIRED:"MODEL_RETIRED",SUBSCRIPTION_REQUIRED:"SUBSCRIPTION_REQUIRED",TIMEOUT_IDLE:"TIMEOUT_OR_STUCK",TIMEOUT_TOTAL:"TIMEOUT_OR_STUCK",TIMEOUT_RESUME:"NETWORK_OR_PROVIDER_TRANSIENT",PROVIDER_NOT_FOUND:"PROVIDER_CONFIGURATION",INVALID_PROVIDER_FORMAT:"PROVIDER_CONFIGURATION",PROVIDER_CRASHED:"PROCESS_FAILED",EMPTY_OUTPUT:"PROCESS_FAILED"},Wn=[{code:"USAGE_LIMITED",pattern:/(?:rate[ _-]?limit|quota|usage[ /_-]?limit|usage exhausted|too many requests|429\b)/i},{code:"CONTEXT_WINDOW_EXCEEDED",pattern:/context (?:window|length)|maximum context|context[_ -]?window[_ -]?exceeded|too many tokens/i},{code:"INPUT_TOO_LARGE",pattern:/input[_ -]?(?:is[_ -]?)?too[_ -]?large|prompt (?:is )?too (?:large|long)|request[_ -]?(?:is[_ -]?)?too[_ -]?large|payload[_ -]?(?:is[_ -]?)?too[_ -]?large|maximum input/i},{code:"MODEL_AT_CAPACITY",pattern:/(?:model|service|provider).*(?:at capacity|overloaded|temporarily busy)|at capacity|overloaded/i},{code:"MODEL_NOT_SUPPORTED",pattern:/(?:model|invalid_request_error).*(?:not[ _-]?supported|unsupported|does[ _-]?not[ _-]?exist|not[ _-]?found|invalid)|model[_-]?not[_-]?(?:found|supported)/i},{code:"MODEL_NOT_SUPPORTED",pattern:/\bunrecognized_model\b/i},{code:"AUTH_REQUIRED",pattern:/(?:401\b|unauthori[sz]ed|not logged in|login required|sign[ -]?in required|api key (?:is )?(?:missing|invalid|required)|authentication required)/i},{code:"CLI_UPDATE_REQUIRED",pattern:/(?:requires? a newer version|update (?:your )?cli|cli version.*(?:old|outdated|unsupported)|version mismatch)/i},{code:"CLI_NOT_AVAILABLE",pattern:/(?:ENOENT|command not found|executable.*not found|cli.*(?:not installed|unavailable)|is .* installed\?)/i},{code:"AGENT_NOT_FOUND",pattern:/agent[_ -]?not[_ -]?found|unknown agent/i},{code:"PERMISSION_OR_TRUST",pattern:/(?:permission denied|operation not permitted|workspace trust|not trusted|access denied|EACCES|EPERM)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:resume failed|failed .*resum(?:e|ing)|after resuming the session|재개 실패|세션 재개)/i},{code:"TIMEOUT_OR_STUCK",pattern:/(?:timeout|timed out|took too long|stuck|idle timeout|ETIMEDOUT)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:network (?:unreachable|error)|connection (?:reset|refused|closed)|ECONN(?:RESET|REFUSED|ABORTED)|service unavailable|upstream.*(?:5\d\d|error)|provider.*(?:5\d\d|unavailable|down)|\b5\d\d\b)/i},{code:"PROVIDER_CONFIGURATION",pattern:/(?:invalid provider|unsupported provider|provider namespace|provider configuration|provider config|missing provider)/i}];function $n(e){try{if(!I(e)||e.status!=="failed")return ne();let n=Xn(e.error);if(oe(n.message))return ne();let t=A(e.providerId)??n.provider??null,r=Kn(e.logs),o=ze(n.code);if(o)return M(o,t,n.message,n);let i=L(n.providerCode)??L(n.code),s=i?re(i,n.message,{exitCode:it(e.exitCode),mode:n.mode,fromProviderCodeField:!!n.providerCode}):void 0;if(s)return M(s,t,n.message,n,i);let a=Qn(r);if(!Yn(n)&&a&&(a.type==="user_stop"||oe(a.message)))return ne();if(a){let l=Zn(a.code,a.providerCode,a.message);if(l)return M(l,t,a.message??n.message,n,a.providerCode??a.code,a,a.structuredFailure?"terminal":"envelope")}let p=et(n.message,r);return p?M(p.code,t,p.message,n,p.terminal?.providerCode??p.terminal?.code,p.terminal,p.terminal?.structuredFailure?"terminal":"envelope"):M("PROCESS_FAILED",t,n.message,n)}catch{return {errorCode:"PROCESS_FAILED",errorProvider:null}}}function ne(){return {errorCode:null,errorProvider:null}}function M(e,n,t,r,o,i,s="envelope"){let a={};if(i?.resetAt!==void 0?a.resetAt=i.resetAt:r?.resetAt!==void 0?a.resetAt=r.resetAt:r?.retryAfterMs!==void 0&&(a.resetAt=Date.now()+r.retryAfterMs),e==="ACCOUNT_SETTING_REQUIRED"&&r?.settingReason&&(a.settingReason=r.settingReason),e==="MODEL_RETIRED"&&r?.replacementModel&&(a.replacementModel=r.replacementModel),e==="ACCOUNT_SETTING_REQUIRED"||e==="MODEL_RETIRED"||e==="SUBSCRIPTION_REQUIRED"){let m=Ge(r?.providerReason);m&&(a.providerReason=m);}if(r?.model&&(a.model=r.model),r?.mode&&(a.mode=r.mode),i?.type&&(a.upstreamType=i.type),o&&(a.upstreamCode=o),e==="CLI_NOT_AVAILABLE"||e==="CLI_UPDATE_REQUIRED"){let m=n?.startsWith("cli/")?n.slice(4):void 0;m&&(a.cliName=m);}let p=s==="terminal"?t:r?.message,l=s==="terminal"?i?.structuredFailure?p:void 0:r?.isEnvelope?p:void 0,c=ee(l);return c&&(a.technicalMessage=c),Object.keys(a).length>0?{errorCode:e,errorProvider:n,errorMeta:a}:{errorCode:e,errorProvider:n}}function Xn(e){let n=typeof e=="string"?C(e):e;return I(n)?{isEnvelope:true,code:A(n.code),providerCode:A(n.providerCode),settingReason:rt(n.settingReason),replacementModel:ot(n.replacementModel),providerReason:A(n.providerReason),retryAfterMs:tt(n.retryAfterMs),resetAt:Ve(n.resetAt),message:A(n.message)??A(n.error),provider:A(n.provider)??A(n.errorProvider),model:A(n.model),mode:A(n.mode)}:{isEnvelope:false,...typeof e=="string"&&e.trim()?{message:e.trim()}:{}}}function C(e){try{return JSON.parse(e)}catch{return}}function Yn(e){return !!(e.code||e.providerCode||e.message)}function Kn(e){let n=[];if(typeof e=="string"){let t=C(e);if(Array.isArray(t))n.push(...t);else for(let r of e.split(/\r?\n/)){let o=C(r.trim());o!==void 0&&n.push(o);}}else Array.isArray(e)?n.push(...e):I(e)&&n.push(e);return n.flatMap(P)}function P(e){if(!I(e))return [];let n=A(e.type),t=A(e.message);if(t&&!n){let o=C(t);if(Array.isArray(o))return o.flatMap(P);if(I(o))return P(o);let i=t.split(/\r?\n/).map(s=>C(s.trim())).filter(s=>I(s));return i.length>0?i.flatMap(P):e.level==="stderr"?[{type:"stderr",message:t,rank:1,structuredFailure:false}]:P({type:"info",content:t})}if(n==="rate_limit_event"){let o=Je(e.rate_limit_info);return A(o?.status)!=="rejected"?[]:[{type:n,code:"RATE_LIMITED",message:v(o?.message,e.message),resetAt:Ve(o?.resetsAt),rank:4,structuredFailure:true}]}if(n==="turn.failed"||n==="error"){let o=Je(e.error),i=v(o?.message,o?.detail,e.message,e.errorMessage,e.content),s=v(o?.code,e.code,e.errorCode);return [{type:n,code:s,providerCode:v(o?.providerCode,e.providerCode),message:i,rank:n==="turn.failed"?3:2,structuredFailure:true}]}if(n==="text"&&typeof e.content=="string"){let o=C(e.content);if(I(o))return P(o)}let r=v(e.errorMessage,e.content);return r&&oe(r)?[{type:"user_stop",message:r,rank:1,structuredFailure:false}]:r&&/(?:turn\.failed|type:error)/i.test(r)?[{type:r.match(/turn\.failed/i)?"turn.failed":"error",message:r,rank:3,structuredFailure:false}]:[]}function Qn(e){return [...e].sort((n,t)=>t.rank-n.rank)[0]}function Zn(e,n,t){let r=ze(e);if(r)return r;if(e){let o=re(e,t);if(o)return o}if(n){let o=re(n,t);if(o)return o}return te(t)}function et(e,n){let t=te(e);if(t)return {code:t,message:e};for(let r of [...n].sort((o,i)=>i.rank-o.rank)){let o=te(r.message);if(o)return {code:o,message:r.message,terminal:r}}}function te(e){if(!(typeof e!="string"||!e.trim()))return Wn.find(n=>n.pattern.test(e))?.code}function re(e,n,t){let r=L(e)??e;if(r==="MODEL_UNAVAILABLE")return /(?:capacity|overloaded|busy)/i.test(n??"")?"MODEL_AT_CAPACITY":"MODEL_NOT_SUPPORTED";if(r==="EMPTY_OUTPUT"&&t?.fromProviderCodeField===true&&t.exitCode===0&&nt(t.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return qn[r]}function ze(e){let n=L(e);return n&&zn.has(n)?n:void 0}function L(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function nt(e){return typeof e=="string"&&Vn.has(e.trim().toLowerCase())}function oe(e){return e?/\b(?:stopped|killed|aborted|cancelled|canceled)\s+by\s+user\b/i.test(e)||/사용자에 의해 중지됨/.test(e)||/\b(?:SIGTERM\s+143|143\s+SIGTERM)\b/i.test(e):false}function I(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Je(e){return I(e)?e:void 0}function A(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function Ve(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function tt(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function rt(e){return e==="region"||e==="training_consent"||e==="access"||e==="other"?e:void 0}function ot(e){return typeof e=="string"&&/^[A-Za-z0-9._/-]{1,128}$/.test(e)?e:void 0}function it(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function v(...e){return e.map(A).find(n=>!!n)}var st=["none","minimal","low","medium","high","xhigh","max","ultra"],at={claude:["low","medium","high","xhigh","max"],codex:["none","minimal","low","medium","high","xhigh","max","ultra"],opencode:[],copilot:["none","low","medium","high","xhigh","max"],antigravity:["low","medium","high"],grok:["low","medium","high","xhigh"]};var B={claude:{models:[{id:"claude-fable-5-1",name:"Claude Fable 5.1",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-fable-5",name:"Claude Fable 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-5-5",name:"Claude Opus 5.5",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-opus-5",name:"Claude Opus 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-opus-4-8[1m]",name:"Claude Opus 4.8",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-7[1m]",name:"Claude Opus 4.7",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-6[1m]",name:"Claude Opus 4.6",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-4-6[1m]",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",contextWindowTokens:1e6,tier:"speed"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindowTokens:2e5,tier:"speed"}],modes:[{id:"default",name:"Default",description:"Uses Claude's default permission handling with normal approval prompts."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without approval; other permission checks remain in place."},{id:"plan",name:"Plan",description:"Keeps Claude in plan mode so it can inspect and propose changes without applying them."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permissions; only pre-approved tool actions can proceed."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Claude permission checks so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"claude-fable-5-1":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-fable-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-opus-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-8[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-7[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-sonnet-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-haiku-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-haiku-4-5":{effort:[]}},providerOptions:[]},codex:{models:[{id:"gpt-6-astra",name:"GPT-6 Astra",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-6.1-sol",name:"GPT-6.1 Sol",contextWindowTokens:105e4,tier:"balanced",recommended:true},{id:"gpt-6.1-terra",name:"GPT-6.1 Terra",contextWindowTokens:5e5,tier:"balanced"},{id:"gpt-6-sol",name:"GPT-6 Sol",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-6-luna",name:"GPT-6 Luna",contextWindowTokens:105e4,tier:"speed",recommended:true},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindowTokens:105e4,tier:"speed"}],modes:[{id:"agent",name:"Agent",description:"Uses the workspace-write sandbox; can read and modify workspace files without full machine access."},{id:"read-only",name:"Read Only",description:"Uses the read-only sandbox; can inspect files but cannot write to the workspace."},{id:"plan",name:"Plan",description:"Uses the read-only sandbox for planning and inspection; cannot write to the workspace."},{id:"agent-full-access",name:"Agent Full Access",description:"Bypasses approvals and the sandbox; can access and modify files beyond the workspace."},{id:"yolo",name:"YOLO",description:"Bypasses approvals and the sandbox for unrestricted execution and full filesystem access."}],effort:["minimal","low","medium","high"],modelOverrides:{"gpt-6-astra":{effort:["low","medium","high","xhigh","max"],defaultEffort:"xhigh"},"gpt-6.1-sol":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-6.1-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"max"},"gpt-6-sol":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"max"},"gpt-6-luna":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-5.6-sol":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"xhigh"},"gpt-5.6-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"high"},"gpt-5.6-luna":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-5.5":{effort:["low","medium","high","xhigh"],defaultEffort:"high"}},providerOptions:[]},opencode:{models:[],suggestedModels:[{id:"opencode-go/glm-5.3-flash",name:"GLM-5.3 Flash",contextWindowTokens:1e6,tier:"speed",recommended:true},{id:"opencode-go/qwen3.8-flash",name:"Qwen3.8 Flash",contextWindowTokens:1e6,tier:"speed",recommended:true},{id:"opencode-go/minimax-m3",name:"MiniMax M3",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"opencode-go/kimi-k2.7-code",name:"Kimi K2.7 Code",contextWindowTokens:262144,tier:"balanced",recommended:true}],modes:[{id:"plan",name:"Plan",description:"Uses the plan agent without --auto; planning follows standard approval behavior."},{id:"plan-auto",name:"Plan \xB7 Auto",description:"Uses the plan agent with --auto; planning uses automatic approvals."},{id:"build",name:"Build",description:"Uses the build agent without --auto; work follows standard approval behavior."},{id:"build-auto",name:"Build \xB7 Auto",description:"Uses the build agent with --auto; work uses automatic approvals."}],effort:[],modelOverrides:{},providerOptions:[]},copilot:{models:[{id:"auto",name:"Auto"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"}],modes:[{id:"interactive",name:"Interactive",description:"Passes --mode interactive; tool access follows Copilot's interactive mode behavior."},{id:"plan",name:"Plan",description:"Passes --mode plan; planning and permission behavior follow Copilot's plan mode."},{id:"autopilot",name:"Autopilot",description:"Passes --mode autopilot; execution behavior follows Copilot's autonomous mode."}],effort:["none","low","medium","high","xhigh","max"],modelOverrides:{},providerOptions:[]},antigravity:{models:[{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",tier:"balanced"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"},{id:"claude-sonnet-5-5-medium",name:"Claude Sonnet 5.5",tier:"balanced"},{id:"claude-opus-5-5-medium",name:"Claude Opus 5.5",tier:"flagship"},{id:"gemini-4-argon",name:"Gemini 4 Argon",tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Antigravity's default permission handling. No extra permission flags are passed."},{id:"plan",name:"Plan",description:"Passes --mode plan. This turns on /plan; it is not a Claude-style permission mode."},{id:"acceptEdits",name:"Accept Edits",description:"Passes --mode accept-edits."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Passes --dangerously-skip-permissions so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"gemini-3.8-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.7-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.6-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.5-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.1-pro":{effort:["low","high"],defaultEffort:"high"},"claude-sonnet-5-5-medium":{effort:["low","medium","high"],defaultEffort:"medium"},"claude-opus-5-5-medium":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-4-argon":{effort:["low","medium","high"],defaultEffort:"high"},"claude-sonnet-4-6":{effort:[]},"claude-opus-4-6-thinking":{effort:[]},"gpt-oss-120b":{effort:["medium"],defaultEffort:"medium"}},providerOptions:[]},grok:{models:[{id:"grok-4.7",name:"Grok 4.7",contextWindowTokens:5e5,tier:"flagship",recommended:true},{id:"grok-4.6",name:"Grok 4.6",contextWindowTokens:5e5,tier:"flagship"},{id:"grok-4.5",name:"Grok 4.5",contextWindowTokens:5e5,tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Grok's default permission handling."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without changing the selected sandbox profile."},{id:"auto",name:"Auto",description:"Uses Grok automatic permission handling."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permission before tool execution."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Grok permission checks for tool execution."},{id:"plan",name:"Plan",description:"Keeps Grok in planning mode without applying changes."}],effort:["low","medium","high"],modelOverrides:{"grok-4.7":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.6":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.5":{effort:["low","medium","high"],defaultEffort:"high"}},providerOptions:[{key:"alwaysApprove",type:"boolean"},{key:"sandbox",type:"enum",values:["workspace","read-only","off"]}]}},ie={providers:{"cli/codex":{model:"gpt-6.1-sol",query:{mode:"agent",effort:"high"},execute:{mode:"agent-full-access",effort:"high"}},"cli/claude":{model:"claude-opus-5-5",query:{mode:"default",effort:"high"},execute:{mode:"bypassPermissions",effort:"xhigh"}},"cli/grok":{model:"grok-4.7",query:{mode:"default",effort:"high",providerOptions:{alwaysApprove:true,sandbox:"off"}},execute:{mode:"bypassPermissions",effort:"xhigh",providerOptions:{alwaysApprove:true,sandbox:"off"}}},"cli/antigravity":{model:"gemini-3.8-flash",query:{mode:"default",effort:"medium"},execute:{mode:"bypassPermissions",effort:"medium"}}}};Object.fromEntries(Object.entries(B).map(([e,n])=>[e,n.models]));var ct="claude-opus-4-8",lt="claude-opus-4-8[1m]",qe=[{baseModelId:"claude-opus-4-8",catalogModelId:"claude-opus-4-8[1m]"},{baseModelId:"claude-opus-4-7",catalogModelId:"claude-opus-4-7[1m]"},{baseModelId:"claude-opus-4-6",catalogModelId:"claude-opus-4-6[1m]"},{baseModelId:"claude-sonnet-4-6",catalogModelId:"claude-sonnet-4-6[1m]"}];var ut=new Map(qe.map(({baseModelId:e,catalogModelId:n})=>[e,n]));function We(e){return ut.get(e)??e}var $e=[{legacyId:"Gemini 3.7 Flash (High)",model:"gemini-3.7-flash",effort:"high"},{legacyId:"Gemini 3.7 Flash (Medium)",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"Gemini 3.7 Flash (Low)",model:"gemini-3.7-flash",effort:"low"},{legacyId:"Gemini 3.6 Flash (High)",model:"gemini-3.6-flash",effort:"high"},{legacyId:"Gemini 3.6 Flash (Medium)",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"Gemini 3.6 Flash (Low)",model:"gemini-3.6-flash",effort:"low"},{legacyId:"Gemini 3.5 Flash (Medium)",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"Gemini 3.5 Flash (High)",model:"gemini-3.5-flash",effort:"high"},{legacyId:"Gemini 3.5 Flash (Low)",model:"gemini-3.5-flash",effort:"low"},{legacyId:"Gemini 3.1 Pro (Low)",model:"gemini-3.1-pro",effort:"low"},{legacyId:"Gemini 3.1 Pro (High)",model:"gemini-3.1-pro",effort:"high"},{legacyId:"Claude Sonnet 4.6 (Thinking)",model:"claude-sonnet-4-6"},{legacyId:"Claude Opus 4.6 (Thinking)",model:"claude-opus-4-6-thinking"},{legacyId:"GPT-OSS 120B (Medium)",model:"gpt-oss-120b",effort:"medium"},{legacyId:"gemini-3.7-flash-high",model:"gemini-3.7-flash",effort:"high"},{legacyId:"gemini-3.7-flash-medium",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"gemini-3.7-flash-low",model:"gemini-3.7-flash",effort:"low"},{legacyId:"gemini-3.6-flash-high",model:"gemini-3.6-flash",effort:"high"},{legacyId:"gemini-3.6-flash-medium",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"gemini-3.6-flash-low",model:"gemini-3.6-flash",effort:"low"},{legacyId:"gemini-3.5-flash-high",model:"gemini-3.5-flash",effort:"high"},{legacyId:"gemini-3.5-flash-medium",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"gemini-3.5-flash-low",model:"gemini-3.5-flash",effort:"low"},{legacyId:"gemini-3.1-pro-high",model:"gemini-3.1-pro",effort:"high"},{legacyId:"gemini-3.1-pro-low",model:"gemini-3.1-pro",effort:"low"},{legacyId:"gpt-oss-120b-medium",model:"gpt-oss-120b",effort:"medium"}],ft=new Map($e.map(({legacyId:e,model:n,effort:t})=>[e,t===void 0?{model:n}:{model:n,effort:t}]));function Xe(e){if(!e)return {};let n=ft.get(e);return n?{...n}:{model:e}}function se(e,n){return e==="antigravity"||e==="cli/antigravity"?Xe(n):n===void 0?{}:{model:We(n)}}var Ye=30,Ke=80;Object.keys(mt.special_tokens);var yt=z$1.object({id:z$1.string().min(1),provider:z$1.string().min(1),model:z$1.string().min(1),weight:z$1.number().finite().int().min(1).default(1),account:z$1.string().min(1).optional()}).strict(),At=z$1.object({kind:z$1.literal("custom"),run:z$1.string().min(1)}).strict(),Qe=z$1.object({strategy:z$1.enum(["round-robin","weighted"]),chain:z$1.array(At).optional(),candidates:z$1.array(yt).min(1).max(8),sticky:z$1.enum(["conversation","none"]).default("conversation"),defaultCandidate:z$1.string().min(1).optional()}).strict().superRefine((e,n)=>{let t=new Set;e.candidates.forEach((r,o)=>{t.has(r.id)&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["candidates",o,"id"],message:`Duplicate route candidate id: ${r.id}`}),t.add(r.id);}),e.defaultCandidate&&!t.has(e.defaultCandidate)&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["defaultCandidate"],message:`Unknown default route candidate: ${e.defaultCandidate}`});});var ht=z$1.object({model:z$1.string().optional(),system_prompt:z$1.string().optional(),prompt:z$1.string().optional(),layout:z$1.union([z$1.string(),z$1.object({id:z$1.string(),props:z$1.record(z$1.unknown()).optional()}),z$1.object({props:z$1.record(z$1.unknown())}),z$1.object({template:z$1.string(),capabilities:z$1.object({semanticContinuity:z$1.boolean().optional(),continuity:z$1.boolean().optional(),continuitySlot:z$1.string().optional(),slot:z$1.string().optional()}).optional()})]).optional()}).catchall(z$1.unknown()),_t=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),Et=z$1.object({id:z$1.string(),name:z$1.string().optional(),role:z$1.string().optional(),team:z$1.string().optional(),provider:z$1.union([z$1.string(),z$1.array(z$1.string())]),provider_account:z$1.string().min(1).optional(),working_directory:z$1.string().optional(),description:z$1.string().optional(),tags:z$1.array(z$1.string()).optional(),inline:ht.optional(),skills:_t,interceptors:z$1.unknown().optional()}).catchall(z$1.unknown());z$1.object({id:z$1.string(),name:z$1.string(),workflow_id:z$1.string(),description:z$1.string().optional(),goal_id:z$1.string().optional()});var It=z$1.number().finite().int().min(Ye).max(Ke),Tt=z$1.object({inputBudgetPercent:It.optional()}).catchall(z$1.unknown()),xt=z$1.object({continuity:Tt.optional()}).catchall(z$1.unknown()),Pt=z$1.object({bin_resolution:z$1.enum(["global_first","local_first"]).optional(),dreaming:xt.optional(),wi:z$1.object({boards:z$1.array(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()),Ze=z$1.object({agents:z$1.array(Et).optional(),routes:z$1.record(Qe).optional(),hooks:z$1.array(z$1.unknown()).optional(),settings:Pt.optional(),skills:z$1.unknown().optional(),layouts:z$1.record(z$1.unknown()).optional(),documents:z$1.record(z$1.unknown()).optional()}).catchall(z$1.unknown()).superRefine((e,n)=>{for(let[t,r]of (e.agents??[]).entries()){let o=r.inline?.model;if(!o?.startsWith("route/"))continue;let i=o.slice(6);(!i||!e.routes?.[i])&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["agents",t,"inline","model"],message:`Agent '${r.id}' references unknown model route '${i}'`});}});var O=class extends Error{constructor(t,r){super(t);this.cause=r;this.name="ConfigLoadError";}cause};function Ot(e){if(!e||typeof e!="string"||!e.trim())throw new O("YAML content must be a non-empty string");let n;try{n=load(e);}catch(o){throw new O(`YAML parse error: ${o.message}`,o)}let t=Rt(n),r=Ze.safeParse(t);if(!r.success)throw new O(`Config validation error: ${r.error.message}`);return r.data}function Rt(e){if(!e||typeof e!="object")return {agents:[]};let n=e;if(n.agents&&typeof n.agents=="object"&&!Array.isArray(n.agents)){let t=n.agents,r=Object.entries(t).map(([o,i])=>({id:o,...i&&typeof i=="object"?i:{}}));return {...n,agents:r}}return n.agents?n:{...n,agents:[]}}var bt={auto:"default"};function Mt(e){return bt[e]??e}var vt="crewx:fs:",ae=class{prefix;store;constructor(n){this.prefix=n?.prefix??vt,this.store=n?.storage??new Map;}async readFile(n){let t=this.toKey(n),r=this.store.get(t);if(r===void 0)throw new Error(`BrowserFsAdapter: file not found: ${n}`);return r}async exists(n){return this.store.has(this.toKey(n))}resolvePath(...n){let t=n.map(s=>s.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),r=t.split("/"),o=[];for(let s of r)s==="."||s===""||(s===".."?o.pop():o.push(s));let i=o.join("/");return t.startsWith("/")?`/${i}`:i}isAbsolute(n){return n.startsWith("/")}setItem(n,t){this.store.set(this.toKey(n),t);}removeItem(n){this.store.delete(this.toKey(n));}keys(){return Array.from(this.store.keys()).filter(n=>n.startsWith(this.prefix)).map(n=>n.slice(this.prefix.length))}async readdir(n){let t=n.replace(/\\/g,"/").replace(/\/$/,""),r=this.toKey(t+"/"),o=[];for(let i of this.store.keys())if(i.startsWith(r)){let a=i.slice(r.length).split("/")[0];a&&!o.includes(a)&&o.push(a);}return o}toKey(n){return `${this.prefix}${n.replace(/\\/g,"/")}`}};var de=["codex","claude","grok","opencode","antigravity","copilot"];function St(e){let n=e.indexOf("/");return n===-1?e:e.slice(n+1)}function pe(e){let n=St(e),t=de.indexOf(n);return t===-1?de.length:t}function kt(e,n){return pe(e)-pe(n)}var wt=new Set(["claude","copilot","codex","grok","opencode"]);function Dt(e){if(!e)return "";if(e.startsWith("acp/")){let n=e.slice(4);if(wt.has(n))return `cli/${n}`}return e}function j(e){return {mode:e.mode,effort:e.effort}}function Nt(e){let n=ie.providers[e];if(!n)return;let t=e.startsWith("cli/")?e.slice(4):e,r=B[t]?.models.find(s=>s.recommended===true&&s.tier==="balanced")?.id??n.model,o={query:j(n.query),execute:j(n.execute)},i={query:j(n.query),execute:j(n.execute)};return {planner:{model:n.model,...o},worker:{model:r,...i}}}var nn=["urgent","high","medium","low"],tn=["investigating","in-progress","in-review","on-hold","done"],S="custom:";var Ut=new Set(nn),Lt=new Set(tn),Bt={urgent:"U \uAE34\uAE09 Urgent",high:"P0 \uAE09\uD568 High",medium:"P1 \uC911\uC694 Medium",low:"P2 \uBCF4\uD1B5 Low"},ce={investigating:"\uC870\uC0AC\uC911 Looking into","in-progress":"\uC9C4\uD589\uC911 In progress","in-review":"\uAC80\uD1A0\uC911 In review","on-hold":"\uBCF4\uB958 On hold",done:"\uC644\uB8CC Done"};function en(e,n){return !n||n.includes(e)?n??e:`${e} ${n}`}function le(e){return typeof e=="string"&&Ut.has(e)}function ue(e){if(typeof e!="string")return false;if(Lt.has(e))return true;if(e.startsWith("c_"))return e.length>2;if(!e.startsWith(S))return false;let n=e.slice(S.length);return n.length>=1&&n.length<=20}function rn(e){if(e.startsWith(S))return e.slice(S.length)}function fe(e){if(!e)return null;try{let n=JSON.parse(e);return !n||typeof n!="object"||Array.isArray(n)?null:n}catch{return null}}function jt(e){let n=fe(e);return !!n&&Object.prototype.hasOwnProperty.call(n,"threadTitle")}function on(e){let n=fe(e);if(!n)return {};let t=n.threadTitle;if(!t||typeof t!="object"||Array.isArray(t))return {};let r=t,o={};return le(r.priority)&&(o.priority=r.priority),ue(r.state)&&(o.state=r.state),o}function Ft(e,n){let t=fe(e)??{},r={...on(e)};return n.priority===null?delete r.priority:n.priority!==void 0&&(r.priority=n.priority),n.state===null?delete r.state:n.state!==void 0&&(r.state=n.state),r.priority===void 0&&r.state===void 0?delete t.threadTitle:t.threadTitle=r,Object.keys(t).length===0?null:JSON.stringify(t)}function Ht(e,n=new Map){let t=[];return e.priority&&t.push(en(Bt[e.priority],n.get(e.priority))),e.state&&(e.state.startsWith(S)?t.push(rn(e.state)??""):ce[e.state]?t.push(en(ce[e.state],n.get(e.state))):n.has(e.state)?t.push(e.state,n.get(e.state)??""):e.state.startsWith("c_")?t.push(e.state):t.push(ce[e.state]??"")),t.filter(Boolean).join(" ")}function sn(e,n){if(!e||e.trim().length===0)return;let t=new Set,r=false,o=false;for(let i of e.split(",")){let s=i.trim();if(s){if(s==="none"){r=true,o=true;continue}n(s)&&(t.add(s),o=true);}}if(o)return {values:t,includeNone:r}}function Gt(e){return sn(e,le)}function Jt(e){return sn(e,ue)}function zt(e,n){return n?e?n.values.has(e):n.includeNone:true}var Vt=["crewx_app_terminal_connect","crewx_app_html_viewer_open","crewx_app_browser","crewx_files_list","crewx_files_read","crewx_files_write","crewx_docs_share"];var ge=["text/plain","application/json"];var qt=["__proto__","prototype","constructor","proof","token","secret","password","cookie","authorization","private_key","private-key","stack","exception","plugin_text","url","uri","endpoint","path","filename","filepath","cwd","shell","directory","dir","folder"];new Set(qt);var an=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/;var Wt=/^uic_[A-Za-z0-9_-]+$/,$t=/^[0-9a-f]{64}$/,_="MCP App content declarations are invalid";function w(e){return typeof e=="string"&&ge.includes(e)}function F(e){return typeof e=="string"&&e.length<=128&&Wt.test(e)}function Xt(e,n){try{let t=n,r=k(t,"actions");if(!pn(r))throw new Error(_);let o=[];for(let s of Object.keys(r)){let a=k(r,s);if(a===null||typeof a!="object"||Array.isArray(a))throw new Error(_);let p=Object.getOwnPropertyDescriptor(a,"content");if(p===void 0)continue;if(!Object.hasOwn(p,"value"))throw new Error(_);let l=Kt(p.value);o.push({actionId:s,...l});}if(o.length===0)return;o.sort((s,a)=>s.actionId<a.actionId?-1:s.actionId>a.actionId?1:0);let i={schemaVersion:1,instanceId:e,definition:{id:k(t,"id"),version:k(t,"version"),hash:k(t,"hash")},actions:o};if(!me(i))throw new Error(_);for(let s of o)s.in!==void 0&&Object.freeze(s.in),s.out!==void 0&&Object.freeze(s.out),Object.freeze(s);return Object.freeze(o),Object.freeze(i.definition),Object.freeze(i)}catch{throw new Error(_)}}function me(e){try{if(!H(e,["schemaVersion","instanceId","definition","actions"]))return !1;let n=e;if(n.schemaVersion!==1||!F(n.instanceId)||!er(n.definition))return !1;let t=n.actions;if(!ir(t)||t.length===0)return !1;let r;for(let o=0;o<t.length;o+=1){let i=t[o];if(!nr(i)||r!==void 0&&!(r<i.actionId))return !1;r=i.actionId;}return !0}catch{return false}}function Yt(e,n,t){return me(e)?e.instanceId===n&&e.definition.id===t.id&&e.definition.version===t.version&&e.definition.hash===t.hash:false}function Kt(e){if(!D(e,["in","out"]))throw new Error(_);let n=e,t=Object.hasOwn(n,"in"),r=Object.hasOwn(n,"out");if(!t&&!r)throw new Error(_);return {...t?{in:Qt(n.in)}:{},...r?{out:Zt(n.out)}:{}}}function Qt(e){if(!D(e,["mediaType","required"],["mediaType"]))throw new Error(_);let n=e,t=n.mediaType,r=Object.hasOwn(n,"required")?n.required:false;if(!w(t)||typeof r!="boolean")throw new Error(_);return {mediaType:t,required:r}}function Zt(e){if(!D(e,["mediaType","range"],["mediaType"]))throw new Error(_);let n=e,t=n.mediaType,r=Object.hasOwn(n,"range")?n.range:false;if(!w(t)||typeof r!="boolean")throw new Error(_);return {mediaType:t,range:r}}function er(e){if(!H(e,["id","version","hash"]))return false;let n=e;return dn(n.id)&&or(n.version)&&typeof n.hash=="string"&&$t.test(n.hash)}function nr(e){if(!D(e,["actionId","in","out"],["actionId"]))return false;let n=e,t=n.actionId,r=Object.hasOwn(n,"in"),o=Object.hasOwn(n,"out");return !(typeof t!="string"||!dn(t)||!r&&!o||r&&!tr(n.in)||o&&!rr(n.out))}function tr(e){if(!H(e,["mediaType","required"]))return false;let n=e;return w(n.mediaType)&&typeof n.required=="boolean"}function rr(e){if(!H(e,["mediaType","range"]))return false;let n=e;return w(n.mediaType)&&typeof n.range=="boolean"}function dn(e){return typeof e=="string"&&an.test(e)}function or(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function ir(e){if(!Array.isArray(e))return false;let n=Reflect.ownKeys(e);if(n.length!==e.length+1||n[e.length]!=="length")return false;for(let t=0;t<e.length;t+=1){if(n[t]!==String(t))return false;let r=Object.getOwnPropertyDescriptor(e,String(t));if(r===void 0||!Object.hasOwn(r,"value"))return false}return true}function H(e,n){return D(e,n,n)}function D(e,n,t=[]){if(!pn(e))return false;let r=Reflect.ownKeys(e);if(r.length>n.length||r.length<t.length)return false;for(let o of r){if(typeof o!="string"||!n.includes(o))return false;let i=Object.getOwnPropertyDescriptor(e,o);if(i===void 0||!Object.hasOwn(i,"value"))return false}return t.every(o=>Object.hasOwn(e,o))}function pn(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function k(e,n){if(e===null||typeof e!="object")return;let t=Object.getOwnPropertyDescriptor(e,n);return t!==void 0&&Object.hasOwn(t,"value")?t.value:void 0}var cn=[5,15,30,60],ye=Object.freeze({min:15e3,max:6e5,default:3e5}),sr=1;var ar="exit 78",ln=["standby","disabled","draining","degraded"],dr=["cron","cron_manual","app_enable"],pr=/^[A-Z][A-Z0-9_]{0,63}$/u;function cr(e){return typeof e=="string"&&pr.test(e)}function lr(e){return cn.includes(e)}function ur(e){return Number.isSafeInteger(e)&&e>=ye.min&&e<=ye.max}function fr(e){return ln.includes(e)}var un={refCodePoints:200,refSegments:3},gr=/^[\p{L}\p{N}][\p{L}\p{N}\p{M}_-]{0,99}$/u;function mr(e){let n=e.normalize("NFC");if([...n].length>un.refCodePoints)return;let t=n.split("/");if(t.length>un.refSegments)return;let r=t[t.length-1];return r.endsWith(".md")&&[...t.slice(0,-1),r.slice(0,-3)].every(i=>gr.test(i))?n:void 0}var Ae=Object.freeze({min:6e4,max:18e5,default:6e5}),yr=1,fn="crewx/appJobs",gn=1,he=["starting","running","stopping","finished"],_e=["succeeded","failed","timed_out","cancelled","shutdown","interrupted"],Ee=["cancelled","timed_out","shutdown"],Ie=["manual","schedule"],Ar=/^[a-z][a-z0-9_]{0,63}$/u,hr=/^[A-Z][A-Z0-9_]{0,63}$/u,mn=["start","status","cancel"],yn=["APP_JOB_NOT_DECLARED","APP_JOB_NOT_AUTHORIZED","APP_JOB_SELF_START","APP_JOB_OWNER_INVALID","APP_JOB_DEFINITION_INVALID","APP_JOB_DEFINITION_CHANGED","APP_JOB_DEADLINE_INVALID","APP_JOB_SHUTTING_DOWN","APP_JOB_OWNER_MISMATCH","APP_JOB_STALE_HANDLE","APP_JOB_NOT_ACTIVE","APP_JOB_NOT_GRANTED"],_r="APP_JOB_RUN_REQUIRED";function Er(e){return Number.isSafeInteger(e)&&e>=Ae.min&&e<=Ae.max}function Te(e){return typeof e=="string"&&hr.test(e)}function xe(e){return typeof e=="string"&&Ar.test(e)}function An(e){return mn.includes(e)}function Ir(e){return e?.some(({name:n,version:t})=>n===fn&&t===gn)===true}var Tr="CREWX_APP_JOB_CHANNEL",xr=1,Pr=4096,Cr=1e4,Or=5e3;var Rr=/^[A-Za-z0-9._:-]{1,128}$/u,br=64,Mr=2147483647;function vr(e){return e==="schedule"?"schedule":"manual"}function Sr(e){return kr(e)}function kr(e){let n=In(e)?e:void 0;if(n===void 0||!En(n,["handle","state","stopReason","trigger","outcome","phase","completed","total","resumable","lastHeartbeatAt","startedAt","finishedAt","errorCode","recoverable"],[]))return;let t=wr(n.handle),r=n.stopReason,o=n.outcome,i=n.phase,s=n.errorCode,a=n.recoverable;if(!(t===void 0||!he.includes(n.state)||!(r===null||Ee.includes(r))||r!==null&&n.state!=="stopping"||!Ie.includes(n.trigger)||!(o===null||_e.includes(o))||!(i===null||xe(i))||!(n.completed===null||hn(n.completed))||!(n.total===null||hn(n.total))||typeof n.resumable!="boolean"||!_n(n.lastHeartbeatAt)||!Tn(n.startedAt)||!_n(n.finishedAt)||!(s===null||Te(s))||!(a===null||typeof a=="boolean")))return {handle:t,state:n.state,stopReason:r,trigger:n.trigger,outcome:o,phase:i,completed:n.completed,total:n.total,resumable:n.resumable,lastHeartbeatAt:n.lastHeartbeatAt,startedAt:n.startedAt,finishedAt:n.finishedAt,errorCode:s,recoverable:a}}function wr(e){if(!(!In(e)||!En(e,["runId","generation"],[]))&&!(typeof e.runId!="string"||!Rr.test(e.runId)||!Dr(e.generation)))return {runId:e.runId,generation:e.generation}}function En(e,n,t){let r=new Set([...n,...t]);return Object.keys(e).every(o=>r.has(o))&&n.every(o=>Object.hasOwn(e,o))}function In(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function Dr(e){return Number.isSafeInteger(e)&&e>=1&&e<=Mr}function hn(e){return Number.isSafeInteger(e)&&e>=0}function Tn(e){return typeof e=="string"&&e.length>0&&e.length<=br}function _n(e){return e===null||Tn(e)}var Nr="crewx/openApp",Ce=1,Ur="ui/crewx-open-app",Lr="ui/crewx-open-app-status",Pn=32768,Cn=8,Oe=["opened","completed","pending"],Re=["UI_APP_OPEN_INVALID","UI_APP_OPEN_UNAVAILABLE","UI_APP_OPEN_GESTURE_REQUIRED","UI_APP_OPEN_STALE","UI_APP_OPEN_BUSY","UI_APP_OPEN_REJECTED","UI_APP_OPEN_FAILED","UI_APP_OPEN_REQUEST_ID_CONFLICT"],be=["RECEIPT_FAILED","RECEIPT_REJECTED","RECEIPT_CONFLICTED","RECEIPT_EXPIRED","LEDGER_MISSING","LEDGER_EXPIRED"],J=class extends Error{constructor(t,r){super(t);this.errorCode=t;this.causeCode=r;}errorCode;causeCode;name="CrewxOpenAppError"},Br=/^[A-Za-z0-9-]{8,64}$/,jr=/^[A-Za-z0-9_-]{1,128}$/,z=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/,Fr=new TextEncoder,xn=/\p{Surrogate}/u,Hr=new Set(["__proto__","constructor","prototype"]);function u(){throw new J("UI_APP_OPEN_INVALID")}function N(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function q(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function T(e,n,t=[]){q(e)||u();let r=new Set([...n,...t]);for(let o of Object.keys(e))r.has(o)||u();for(let o of n)N(e,o)||u();return e}function V(e,n){return (typeof e!="string"||!n.test(e))&&u(),e}function W(e){return (typeof e!="string"||!Br.test(e))&&u(),e}function b(e){(typeof e!="string"||!jr.test(e))&&u();let n=e.indexOf("_");return (n<0||n===e.length-1)&&u(),W(e.slice(0,n)),e}function On(e){return b(e).slice(0,e.indexOf("_"))}function Rn(e){return F(e)||u(),e}function R(e,n){let t=n.find(r=>r===e);return t===void 0&&u(),t}function Pe(e,n){if(e===null)return "null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return Number.isFinite(e)||u(),JSON.stringify(e);if(typeof e=="string")return xn.test(e)&&u(),JSON.stringify(e);if(n>Cn&&u(),Array.isArray(e)){let o=[];for(let i=0;i<e.length;i+=1)N(e,String(i))||u(),o.push(Pe(e[i],n+1));return `[${o.join(",")}]`}q(e)||u();let t=e;return `{${Object.keys(t).sort().map(o=>((Hr.has(o)||xn.test(o))&&u(),`${JSON.stringify(o)}:${Pe(t[o],n+1)}`)).join(",")}}`}function Gr(e){let n=T(e,["requestId","appId"],["action"]),t=b(n.requestId),r=V(n.appId,z);if(!N(n,"action"))return {requestId:t,appId:r};let o=T(n.action,["actionId","input"]),i=o.input;return q(i)||u(),{requestId:t,appId:r,action:{actionId:V(o.actionId,z),input:i}}}function bn(e){return {version:Ce,sessionId:W(e)}}function Jr(e){let n=T(e,["version","sessionId"]);return n.version!==Ce&&u(),bn(W(n.sessionId))}function zr(e,n){return typeof n!="string"&&u(),b(`${W(e)}_${n}`)}function Mn(e){let n=Pe(Gr(e),1);return Fr.encode(n).byteLength>Pn&&u(),n}function Vr(e){return JSON.parse(Mn(e))}function qr(e){let n=T(e,["requestId"]);return {requestId:b(n.requestId)}}function vn(e){return {status:R(e.status,Oe),appId:V(e.appId,z),instanceId:Rn(e.instanceId),requestId:b(e.requestId)}}function Sn(e,n){let t=R(e,Re);return n===void 0?{isError:true,_meta:{errorCode:t}}:{isError:true,_meta:{errorCode:t,causeCode:R(n,be)}}}function Wr(e){if(q(e)||u(),N(e,"isError")){let t=T(e,["isError","_meta"]);t.isError!==true&&u();let r=T(t._meta,["errorCode"],["causeCode"]);return Sn(R(r.errorCode,Re),N(r,"causeCode")?R(r.causeCode,be):void 0)}let n=T(e,["status","appId","instanceId","requestId"]);return vn({status:R(n.status,Oe),appId:V(n.appId,z),instanceId:Rn(n.instanceId),requestId:b(n.requestId)})}function G(e,n){return {state:"failed",errorCode:e,causeCode:n}}function $r(e){if(e.kind==="pending"||e.status==="requested")return {state:"pending"};if(e.outcome==="succeeded")return {state:"completed"};switch(e.outcome){case "rejected":return G("UI_APP_OPEN_REJECTED","RECEIPT_REJECTED");case "conflicted":return G("UI_APP_OPEN_STALE","RECEIPT_CONFLICTED");case "expired":return G("UI_APP_OPEN_STALE","RECEIPT_EXPIRED");default:return G("UI_APP_OPEN_FAILED","RECEIPT_FAILED")}}function Me(e,n){return e.workspaceId===n.workspaceId&&e.threadId===n.threadId&&e.instanceId===n.instanceId&&e.definition.id===n.definition.id&&e.definition.version===n.definition.version&&e.definition.hash===n.definition.hash&&e.entryHash===n.entryHash}function Xr(e){if(On(e.requestId)!==e.activeSessionId)return "stale";let{lookup:n}=e;return n.kind==="absent"?n.capacity==="full"?"busy":"new":Me(n.record.source,e.source)&&n.record.payloadDigest===e.payloadDigest?"known":"conflict"}function Yr(e){return On(e.requestId)!==e.activeSessionId||e.lookup.kind!=="present"?"stale":Me(e.lookup.record.source,e.source)?"known":"stale"}export{$e as ANTIGRAVITY_MODEL_COMPATIBILITY,Or as APP_JOB_BRIDGE_DRAIN_TIMEOUT_MS,Tr as APP_JOB_BRIDGE_ENV,Pr as APP_JOB_BRIDGE_MAX_LINE_BYTES,Cr as APP_JOB_BRIDGE_REPLY_TIMEOUT_MS,xr as APP_JOB_BRIDGE_VERSION,fn as APP_JOB_CAPABILITY,gn as APP_JOB_CAPABILITY_VERSION,Ae as APP_JOB_DEADLINE_MS,yr as APP_JOB_MAX_PER_APP,mn as APP_JOB_OPERATIONS,_e as APP_JOB_OUTCOMES,yn as APP_JOB_REFUSAL_CODES,_r as APP_JOB_RUN_REQUIRED,he as APP_JOB_STATES,Ee as APP_JOB_STOP_REASONS,Ie as APP_JOB_TRIGGERS,ar as APP_SCHEDULE_INERT_COMMAND,cn as APP_SCHEDULE_INTERVALS_MINUTES,sr as APP_SCHEDULE_MAX_PER_APP,ln as APP_SCHEDULE_PERIODIC_REASONS,ye as APP_SCHEDULE_TIMEOUT_MS,tn as BUILTIN_THREAD_STATES,ae as BrowserFsAdapter,qe as CLAUDE_MODEL_COMPATIBILITY_PAIRS,ct as CLAUDE_OPUS_4_8_BASE_MODEL_ID,lt as CLAUDE_OPUS_4_8_LEGACY_MODEL_ID,Nr as CREWX_OPEN_APP_CAPABILITY,Ce as CREWX_OPEN_APP_CAPABILITY_VERSION,Cn as CREWX_OPEN_APP_MAX_JSON_DEPTH,Pn as CREWX_OPEN_APP_MAX_PARAMS_BYTES,Ur as CREWX_OPEN_APP_METHOD,Lr as CREWX_OPEN_APP_STATUS_METHOD,Oe as CREWX_OPEN_APP_SUCCESS_STATUSES,O as ConfigLoadError,Z as Crewx,J as CrewxOpenAppError,st as EFFORT_LEVELS,Vt as MCP_APP_HOST_TOOL_ALLOWLIST,at as PROVIDER_ARGV_EFFORTS,de as PROVIDER_ORDER,h as ProviderError,dr as SCHEDULE_TRIGGERS,nn as THREAD_PRIORITIES,be as UI_APP_OPEN_CAUSE_CODES,Re as UI_APP_OPEN_ERROR_CODES,ge as UI_CONTENT_MEDIA_TYPES,vr as appJobTriggerForActor,Xt as buildMcpAppContentActions,Mn as canonicalCrewxOpenAppPayload,$n as classifyTaskError,kt as compareProviders,Yt as contentActionsMatch,bn as createCrewxOpenAppCapabilityDeclaration,Sn as createCrewxOpenAppErrorResult,zr as createCrewxOpenAppRequestId,vn as createCrewxOpenAppSuccessResult,U as createProvider,rn as customStateLabel,Xr as decideCrewxOpenAppOpen,Yr as decideCrewxOpenAppStatus,Nt as getDefaultAgentProfile,Ir as hasAppJobCapability,jt as hasThreadTitleKey,Te as isAppJobCode,Er as isAppJobDeadlineMs,An as isAppJobOperation,xe as isAppJobPhase,cr as isAppScheduleCode,lr as isAppScheduleIntervalMinutes,fr as isAppSchedulePeriodicReason,ur as isAppScheduleTimeoutMs,me as isMcpAppContentActions,Me as isSameCrewxOpenAppSourceBinding,le as isThreadPriority,ue as isThreadState,w as isUiContentMediaType,F as isValidUiAppInstanceId,zt as matchesThreadTitleFilter,Ft as mergeThreadTitleMeta,mr as normalizeAppFilesRef,Mt as normalizeClaudeMode,Dt as normalizeProviderId,Sr as parseAppJobView,Jr as parseCrewxOpenAppCapabilityDeclaration,Vr as parseCrewxOpenAppRequest,Wr as parseCrewxOpenAppResult,qr as parseCrewxOpenAppStatusRequest,Gt as parseThreadPriorityFilter,Jt as parseThreadStateFilter,Ot as parseYamlContent,pe as providerRank,on as readThreadTitleMeta,ee as redactTechnicalMessage,Q as registerProviderFactory,Xe as resolveAntigravityModel,We as resolveCatalogModelId,$r as resolveCrewxOpenAppActionOutcome,se as resolveProviderCatalogModel,Ht as threadTitleSearchHaystack};
|
|
6
|
+
`,i):e.length;t+=e.slice(r,o.index),t+=`[HTTP BODY ${y}]`,r=a;}return t+e.slice(r)}function Jn(e,n){let t=e[n];if(t==='"'||t==="'")return zn(e,n,t);if(t!=="{"&&t!=="[")return -1;let r=[],o,i=false;for(let s=n;s<e.length;s+=1){let a=e[s];if(o){i?i=false:a==="\\"?i=true:a===o&&(o=void 0);continue}if(a==='"'||a==="'"){o=a;continue}if(a==="{"||a==="["){r.push(a);continue}if(a!=="}"&&a!=="]")continue;let p=r.pop();if(a==="}"&&p!=="{"||a==="]"&&p!=="[")return -1;if(r.length===0)return s+1}return -1}function zn(e,n,t){let r=false;for(let o=n+1;o<e.length;o+=1){let i=e[o];if(r)r=false;else if(i==="\\")r=true;else if(i===t)return o+1}return -1}function He(e,n=240){if(typeof e!="string")return;let t=e.split(/\r?\n/).map(r=>r.trim()).find(r=>r&&!/^at\s+/.test(r));if(t)return t.replace(/\u001b\[[0-?]*[ -/]*[@-~]/g,"").replace(/(^|[\s"'(=])((?:[A-Za-z]:[\\/]|\/)(?:[^\s"'`()\[\]{}]+[\\/])*[^\s"'`()\[\]{}]+)/g,"$1[path]").slice(0,n).trim()}function Ge(e){let n=He(e);if(n)return He(n.replace(/^Upstream request failed:\s*/i,""),200)}var Vn=new Set(["USAGE_LIMITED","CONTEXT_WINDOW_EXCEEDED","INPUT_TOO_LARGE","MODEL_NOT_SUPPORTED","MODEL_AT_CAPACITY","AUTH_REQUIRED","ACCOUNT_SETTING_REQUIRED","MODEL_RETIRED","SUBSCRIPTION_REQUIRED","CLI_NOT_AVAILABLE","CLI_UPDATE_REQUIRED","AGENT_NOT_FOUND","PERMISSION_OR_TRUST","TIMEOUT_OR_STUCK","NETWORK_OR_PROVIDER_TRANSIENT","PROVIDER_CONFIGURATION","AGENT_MODE_RESTRICTED","PROCESS_FAILED"]),qn=new Set(["plan","plan-auto","read-only"]),Wn={QUOTA_EXHAUSTED:"USAGE_LIMITED",RATE_LIMITED:"USAGE_LIMITED",AUTH_REQUIRED:"AUTH_REQUIRED",ACCOUNT_SETTING_REQUIRED:"ACCOUNT_SETTING_REQUIRED",MODEL_RETIRED:"MODEL_RETIRED",SUBSCRIPTION_REQUIRED:"SUBSCRIPTION_REQUIRED",TIMEOUT_IDLE:"TIMEOUT_OR_STUCK",TIMEOUT_TOTAL:"TIMEOUT_OR_STUCK",TIMEOUT_RESUME:"NETWORK_OR_PROVIDER_TRANSIENT",PROVIDER_NOT_FOUND:"PROVIDER_CONFIGURATION",INVALID_PROVIDER_FORMAT:"PROVIDER_CONFIGURATION",PROVIDER_CRASHED:"PROCESS_FAILED",EMPTY_OUTPUT:"PROCESS_FAILED"},$n=[{code:"USAGE_LIMITED",pattern:/(?:rate[ _-]?limit|quota|usage[ /_-]?limit|usage exhausted|too many requests|429\b)/i},{code:"CONTEXT_WINDOW_EXCEEDED",pattern:/context (?:window|length)|maximum context|context[_ -]?window[_ -]?exceeded|too many tokens/i},{code:"INPUT_TOO_LARGE",pattern:/input[_ -]?(?:is[_ -]?)?too[_ -]?large|prompt (?:is )?too (?:large|long)|request[_ -]?(?:is[_ -]?)?too[_ -]?large|payload[_ -]?(?:is[_ -]?)?too[_ -]?large|maximum input/i},{code:"MODEL_AT_CAPACITY",pattern:/(?:model|service|provider).*(?:at capacity|overloaded|temporarily busy)|at capacity|overloaded/i},{code:"MODEL_NOT_SUPPORTED",pattern:/(?:model|invalid_request_error).*(?:not[ _-]?supported|unsupported|does[ _-]?not[ _-]?exist|not[ _-]?found|invalid)|model[_-]?not[_-]?(?:found|supported)/i},{code:"MODEL_NOT_SUPPORTED",pattern:/\bunrecognized_model\b/i},{code:"AUTH_REQUIRED",pattern:/(?:401\b|unauthori[sz]ed|not logged in|login required|sign[ -]?in required|api key (?:is )?(?:missing|invalid|required)|authentication required)/i},{code:"CLI_UPDATE_REQUIRED",pattern:/(?:requires? a newer version|update (?:your )?cli|cli version.*(?:old|outdated|unsupported)|version mismatch)/i},{code:"CLI_NOT_AVAILABLE",pattern:/(?:ENOENT|command not found|executable.*not found|cli.*(?:not installed|unavailable)|is .* installed\?)/i},{code:"AGENT_NOT_FOUND",pattern:/agent[_ -]?not[_ -]?found|unknown agent/i},{code:"PERMISSION_OR_TRUST",pattern:/(?:permission denied|operation not permitted|workspace trust|not trusted|access denied|EACCES|EPERM)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:resume failed|failed .*resum(?:e|ing)|after resuming the session|재개 실패|세션 재개)/i},{code:"TIMEOUT_OR_STUCK",pattern:/(?:timeout|timed out|took too long|stuck|idle timeout|ETIMEDOUT)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:network (?:unreachable|error)|connection (?:reset|refused|closed)|ECONN(?:RESET|REFUSED|ABORTED)|service unavailable|upstream.*(?:5\d\d|error)|provider.*(?:5\d\d|unavailable|down)|\b5\d\d\b)/i},{code:"PROVIDER_CONFIGURATION",pattern:/(?:invalid provider|unsupported provider|provider namespace|provider configuration|provider config|missing provider)/i}];function Xn(e){try{if(!I(e)||e.status!=="failed")return ne();let n=Yn(e.error);if(oe(n.message))return ne();let t=A(e.providerId)??n.provider??null,r=Qn(e.logs),o=ze(n.code);if(o)return M(o,t,n.message,n);let i=L(n.providerCode)??L(n.code),s=i?re(i,n.message,{exitCode:st(e.exitCode),mode:n.mode,fromProviderCodeField:!!n.providerCode}):void 0;if(s)return M(s,t,n.message,n,i);let a=Zn(r);if(!Kn(n)&&a&&(a.type==="user_stop"||oe(a.message)))return ne();if(a){let l=et(a.code,a.providerCode,a.message);if(l)return M(l,t,a.message??n.message,n,a.providerCode??a.code,a,a.structuredFailure?"terminal":"envelope")}let p=nt(n.message,r);return p?M(p.code,t,p.message,n,p.terminal?.providerCode??p.terminal?.code,p.terminal,p.terminal?.structuredFailure?"terminal":"envelope"):M("PROCESS_FAILED",t,n.message,n)}catch{return {errorCode:"PROCESS_FAILED",errorProvider:null}}}function ne(){return {errorCode:null,errorProvider:null}}function M(e,n,t,r,o,i,s="envelope"){let a={};if(i?.resetAt!==void 0?a.resetAt=i.resetAt:r?.resetAt!==void 0?a.resetAt=r.resetAt:r?.retryAfterMs!==void 0&&(a.resetAt=Date.now()+r.retryAfterMs),e==="ACCOUNT_SETTING_REQUIRED"&&r?.settingReason&&(a.settingReason=r.settingReason),e==="MODEL_RETIRED"&&r?.replacementModel&&(a.replacementModel=r.replacementModel),e==="ACCOUNT_SETTING_REQUIRED"||e==="MODEL_RETIRED"||e==="SUBSCRIPTION_REQUIRED"){let m=Ge(r?.providerReason);m&&(a.providerReason=m);}if(r?.model&&(a.model=r.model),r?.mode&&(a.mode=r.mode),i?.type&&(a.upstreamType=i.type),o&&(a.upstreamCode=o),e==="CLI_NOT_AVAILABLE"||e==="CLI_UPDATE_REQUIRED"){let m=n?.startsWith("cli/")?n.slice(4):void 0;m&&(a.cliName=m);}let p=s==="terminal"?t:r?.message,l=s==="terminal"?i?.structuredFailure?p:void 0:r?.isEnvelope?p:void 0,c=ee(l);return c&&(a.technicalMessage=c),Object.keys(a).length>0?{errorCode:e,errorProvider:n,errorMeta:a}:{errorCode:e,errorProvider:n}}function Yn(e){let n=typeof e=="string"?C(e):e;return I(n)?{isEnvelope:true,code:A(n.code),providerCode:A(n.providerCode),settingReason:ot(n.settingReason),replacementModel:it(n.replacementModel),providerReason:A(n.providerReason),retryAfterMs:rt(n.retryAfterMs),resetAt:Ve(n.resetAt),message:A(n.message)??A(n.error),provider:A(n.provider)??A(n.errorProvider),model:A(n.model),mode:A(n.mode)}:{isEnvelope:false,...typeof e=="string"&&e.trim()?{message:e.trim()}:{}}}function C(e){try{return JSON.parse(e)}catch{return}}function Kn(e){return !!(e.code||e.providerCode||e.message)}function Qn(e){let n=[];if(typeof e=="string"){let t=C(e);if(Array.isArray(t))n.push(...t);else for(let r of e.split(/\r?\n/)){let o=C(r.trim());o!==void 0&&n.push(o);}}else Array.isArray(e)?n.push(...e):I(e)&&n.push(e);return n.flatMap(P)}function P(e){if(!I(e))return [];let n=A(e.type),t=A(e.message);if(t&&!n){let o=C(t);if(Array.isArray(o))return o.flatMap(P);if(I(o))return P(o);let i=t.split(/\r?\n/).map(s=>C(s.trim())).filter(s=>I(s));return i.length>0?i.flatMap(P):e.level==="stderr"?[{type:"stderr",message:t,rank:1,structuredFailure:false}]:P({type:"info",content:t})}if(n==="rate_limit_event"){let o=Je(e.rate_limit_info);return A(o?.status)!=="rejected"?[]:[{type:n,code:"RATE_LIMITED",message:v(o?.message,e.message),resetAt:Ve(o?.resetsAt),rank:4,structuredFailure:true}]}if(n==="turn.failed"||n==="error"){let o=Je(e.error),i=v(o?.message,o?.detail,e.message,e.errorMessage,e.content),s=v(o?.code,e.code,e.errorCode);return [{type:n,code:s,providerCode:v(o?.providerCode,e.providerCode),message:i,rank:n==="turn.failed"?3:2,structuredFailure:true}]}if(n==="text"&&typeof e.content=="string"){let o=C(e.content);if(I(o))return P(o)}let r=v(e.errorMessage,e.content);return r&&oe(r)?[{type:"user_stop",message:r,rank:1,structuredFailure:false}]:r&&/(?:turn\.failed|type:error)/i.test(r)?[{type:r.match(/turn\.failed/i)?"turn.failed":"error",message:r,rank:3,structuredFailure:false}]:[]}function Zn(e){return [...e].sort((n,t)=>t.rank-n.rank)[0]}function et(e,n,t){let r=ze(e);if(r)return r;if(e){let o=re(e,t);if(o)return o}if(n){let o=re(n,t);if(o)return o}return te(t)}function nt(e,n){let t=te(e);if(t)return {code:t,message:e};for(let r of [...n].sort((o,i)=>i.rank-o.rank)){let o=te(r.message);if(o)return {code:o,message:r.message,terminal:r}}}function te(e){if(!(typeof e!="string"||!e.trim()))return $n.find(n=>n.pattern.test(e))?.code}function re(e,n,t){let r=L(e)??e;if(r==="MODEL_UNAVAILABLE")return /(?:capacity|overloaded|busy)/i.test(n??"")?"MODEL_AT_CAPACITY":"MODEL_NOT_SUPPORTED";if(r==="EMPTY_OUTPUT"&&t?.fromProviderCodeField===true&&t.exitCode===0&&tt(t.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return Wn[r]}function ze(e){let n=L(e);return n&&Vn.has(n)?n:void 0}function L(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function tt(e){return typeof e=="string"&&qn.has(e.trim().toLowerCase())}function oe(e){return e?/\b(?:stopped|killed|aborted|cancelled|canceled)\s+by\s+user\b/i.test(e)||/사용자에 의해 중지됨/.test(e)||/\b(?:SIGTERM\s+143|143\s+SIGTERM)\b/i.test(e):false}function I(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Je(e){return I(e)?e:void 0}function A(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function Ve(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function rt(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function ot(e){return e==="region"||e==="training_consent"||e==="access"||e==="other"?e:void 0}function it(e){return typeof e=="string"&&/^[A-Za-z0-9._/-]{1,128}$/.test(e)?e:void 0}function st(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function v(...e){return e.map(A).find(n=>!!n)}var at=["none","minimal","low","medium","high","xhigh","max","ultra"],dt={claude:["low","medium","high","xhigh","max"],codex:["none","minimal","low","medium","high","xhigh","max","ultra"],opencode:[],copilot:["none","low","medium","high","xhigh","max"],antigravity:["low","medium","high"],grok:["low","medium","high","xhigh"]};var B={claude:{models:[{id:"claude-fable-5-1",name:"Claude Fable 5.1",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-fable-5",name:"Claude Fable 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-5-5",name:"Claude Opus 5.5",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-opus-5",name:"Claude Opus 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-opus-4-8[1m]",name:"Claude Opus 4.8",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-7[1m]",name:"Claude Opus 4.7",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-6[1m]",name:"Claude Opus 4.6",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-4-6[1m]",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",contextWindowTokens:1e6,tier:"speed"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindowTokens:2e5,tier:"speed"}],modes:[{id:"default",name:"Default",description:"Uses Claude's default permission handling with normal approval prompts."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without approval; other permission checks remain in place."},{id:"plan",name:"Plan",description:"Keeps Claude in plan mode so it can inspect and propose changes without applying them."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permissions; only pre-approved tool actions can proceed."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Claude permission checks so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"claude-fable-5-1":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-fable-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-opus-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-8[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-7[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-sonnet-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-haiku-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-haiku-4-5":{effort:[]}},providerOptions:[]},codex:{models:[{id:"gpt-6-astra",name:"GPT-6 Astra",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-6.1-sol",name:"GPT-6.1 Sol",contextWindowTokens:105e4,tier:"balanced",recommended:true},{id:"gpt-6.1-terra",name:"GPT-6.1 Terra",contextWindowTokens:5e5,tier:"balanced"},{id:"gpt-6-sol",name:"GPT-6 Sol",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-6-luna",name:"GPT-6 Luna",contextWindowTokens:105e4,tier:"speed",recommended:true},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindowTokens:105e4,tier:"speed"}],modes:[{id:"agent",name:"Agent",description:"Uses the workspace-write sandbox; can read and modify workspace files without full machine access."},{id:"read-only",name:"Read Only",description:"Uses the read-only sandbox; can inspect files but cannot write to the workspace."},{id:"plan",name:"Plan",description:"Uses the read-only sandbox for planning and inspection; cannot write to the workspace."},{id:"agent-full-access",name:"Agent Full Access",description:"Bypasses approvals and the sandbox; can access and modify files beyond the workspace."},{id:"yolo",name:"YOLO",description:"Bypasses approvals and the sandbox for unrestricted execution and full filesystem access."}],effort:["minimal","low","medium","high"],modelOverrides:{"gpt-6-astra":{effort:["low","medium","high","xhigh","max"],defaultEffort:"xhigh"},"gpt-6.1-sol":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-6.1-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"max"},"gpt-6-sol":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"max"},"gpt-6-luna":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-5.6-sol":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"xhigh"},"gpt-5.6-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"high"},"gpt-5.6-luna":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-5.5":{effort:["low","medium","high","xhigh"],defaultEffort:"high"}},providerOptions:[]},opencode:{models:[],suggestedModels:[{id:"opencode-go/glm-5.3-flash",name:"GLM-5.3 Flash",contextWindowTokens:1e6,tier:"speed",recommended:true},{id:"opencode-go/qwen3.8-flash",name:"Qwen3.8 Flash",contextWindowTokens:1e6,tier:"speed",recommended:true},{id:"opencode-go/minimax-m3",name:"MiniMax M3",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"opencode-go/kimi-k2.7-code",name:"Kimi K2.7 Code",contextWindowTokens:262144,tier:"balanced",recommended:true}],modes:[{id:"plan",name:"Plan",description:"Uses the plan agent without --auto; planning follows standard approval behavior."},{id:"plan-auto",name:"Plan \xB7 Auto",description:"Uses the plan agent with --auto; planning uses automatic approvals."},{id:"build",name:"Build",description:"Uses the build agent without --auto; work follows standard approval behavior."},{id:"build-auto",name:"Build \xB7 Auto",description:"Uses the build agent with --auto; work uses automatic approvals."}],effort:[],modelOverrides:{},providerOptions:[]},copilot:{models:[{id:"auto",name:"Auto"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"}],modes:[{id:"interactive",name:"Interactive",description:"Passes --mode interactive; tool access follows Copilot's interactive mode behavior."},{id:"plan",name:"Plan",description:"Passes --mode plan; planning and permission behavior follow Copilot's plan mode."},{id:"autopilot",name:"Autopilot",description:"Passes --mode autopilot; execution behavior follows Copilot's autonomous mode."}],effort:["none","low","medium","high","xhigh","max"],modelOverrides:{},providerOptions:[]},antigravity:{models:[{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",tier:"balanced"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"},{id:"claude-sonnet-5-5-medium",name:"Claude Sonnet 5.5",tier:"balanced"},{id:"claude-opus-5-5-medium",name:"Claude Opus 5.5",tier:"flagship"},{id:"gemini-4-argon",name:"Gemini 4 Argon",tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Antigravity's default permission handling. No extra permission flags are passed."},{id:"plan",name:"Plan",description:"Passes --mode plan. This turns on /plan; it is not a Claude-style permission mode."},{id:"acceptEdits",name:"Accept Edits",description:"Passes --mode accept-edits."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Passes --dangerously-skip-permissions so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"gemini-3.8-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.7-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.6-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.5-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.1-pro":{effort:["low","high"],defaultEffort:"high"},"claude-sonnet-5-5-medium":{effort:["low","medium","high"],defaultEffort:"medium"},"claude-opus-5-5-medium":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-4-argon":{effort:["low","medium","high"],defaultEffort:"high"},"claude-sonnet-4-6":{effort:[]},"claude-opus-4-6-thinking":{effort:[]},"gpt-oss-120b":{effort:["medium"],defaultEffort:"medium"}},providerOptions:[]},grok:{models:[{id:"grok-4.7",name:"Grok 4.7",contextWindowTokens:5e5,tier:"flagship",recommended:true},{id:"grok-4.6",name:"Grok 4.6",contextWindowTokens:5e5,tier:"flagship"},{id:"grok-4.5",name:"Grok 4.5",contextWindowTokens:5e5,tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Grok's default permission handling."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without changing the selected sandbox profile."},{id:"auto",name:"Auto",description:"Uses Grok automatic permission handling."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permission before tool execution."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Grok permission checks for tool execution."},{id:"plan",name:"Plan",description:"Keeps Grok in planning mode without applying changes."}],effort:["low","medium","high"],modelOverrides:{"grok-4.7":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.6":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.5":{effort:["low","medium","high"],defaultEffort:"high"}},providerOptions:[{key:"alwaysApprove",type:"boolean"},{key:"sandbox",type:"enum",values:["workspace","read-only","off"]}]}},ie={providers:{"cli/codex":{model:"gpt-6.1-sol",query:{mode:"agent",effort:"high"},execute:{mode:"agent-full-access",effort:"high"}},"cli/claude":{model:"claude-opus-5-5",query:{mode:"default",effort:"high"},execute:{mode:"bypassPermissions",effort:"xhigh"}},"cli/grok":{model:"grok-4.7",query:{mode:"default",effort:"high",providerOptions:{alwaysApprove:true,sandbox:"off"}},execute:{mode:"bypassPermissions",effort:"xhigh",providerOptions:{alwaysApprove:true,sandbox:"off"}}},"cli/antigravity":{model:"gemini-3.8-flash",query:{mode:"default",effort:"medium"},execute:{mode:"bypassPermissions",effort:"medium"}}}};Object.fromEntries(Object.entries(B).map(([e,n])=>[e,n.models]));var lt="claude-opus-4-8",ut="claude-opus-4-8[1m]",qe=[{baseModelId:"claude-opus-4-8",catalogModelId:"claude-opus-4-8[1m]"},{baseModelId:"claude-opus-4-7",catalogModelId:"claude-opus-4-7[1m]"},{baseModelId:"claude-opus-4-6",catalogModelId:"claude-opus-4-6[1m]"},{baseModelId:"claude-sonnet-4-6",catalogModelId:"claude-sonnet-4-6[1m]"}];var ft=new Map(qe.map(({baseModelId:e,catalogModelId:n})=>[e,n]));function We(e){return ft.get(e)??e}var $e=[{legacyId:"Gemini 3.7 Flash (High)",model:"gemini-3.7-flash",effort:"high"},{legacyId:"Gemini 3.7 Flash (Medium)",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"Gemini 3.7 Flash (Low)",model:"gemini-3.7-flash",effort:"low"},{legacyId:"Gemini 3.6 Flash (High)",model:"gemini-3.6-flash",effort:"high"},{legacyId:"Gemini 3.6 Flash (Medium)",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"Gemini 3.6 Flash (Low)",model:"gemini-3.6-flash",effort:"low"},{legacyId:"Gemini 3.5 Flash (Medium)",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"Gemini 3.5 Flash (High)",model:"gemini-3.5-flash",effort:"high"},{legacyId:"Gemini 3.5 Flash (Low)",model:"gemini-3.5-flash",effort:"low"},{legacyId:"Gemini 3.1 Pro (Low)",model:"gemini-3.1-pro",effort:"low"},{legacyId:"Gemini 3.1 Pro (High)",model:"gemini-3.1-pro",effort:"high"},{legacyId:"Claude Sonnet 4.6 (Thinking)",model:"claude-sonnet-4-6"},{legacyId:"Claude Opus 4.6 (Thinking)",model:"claude-opus-4-6-thinking"},{legacyId:"GPT-OSS 120B (Medium)",model:"gpt-oss-120b",effort:"medium"},{legacyId:"gemini-3.7-flash-high",model:"gemini-3.7-flash",effort:"high"},{legacyId:"gemini-3.7-flash-medium",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"gemini-3.7-flash-low",model:"gemini-3.7-flash",effort:"low"},{legacyId:"gemini-3.6-flash-high",model:"gemini-3.6-flash",effort:"high"},{legacyId:"gemini-3.6-flash-medium",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"gemini-3.6-flash-low",model:"gemini-3.6-flash",effort:"low"},{legacyId:"gemini-3.5-flash-high",model:"gemini-3.5-flash",effort:"high"},{legacyId:"gemini-3.5-flash-medium",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"gemini-3.5-flash-low",model:"gemini-3.5-flash",effort:"low"},{legacyId:"gemini-3.1-pro-high",model:"gemini-3.1-pro",effort:"high"},{legacyId:"gemini-3.1-pro-low",model:"gemini-3.1-pro",effort:"low"},{legacyId:"gpt-oss-120b-medium",model:"gpt-oss-120b",effort:"medium"}],gt=new Map($e.map(({legacyId:e,model:n,effort:t})=>[e,t===void 0?{model:n}:{model:n,effort:t}]));function Xe(e){if(!e)return {};let n=gt.get(e);return n?{...n}:{model:e}}function se(e,n){return e==="antigravity"||e==="cli/antigravity"?Xe(n):n===void 0?{}:{model:We(n)}}var Ye=30,Ke=80;Object.keys(yt.special_tokens);var Qe=z$1.object({id:z$1.string().min(1),provider:z$1.string().min(1),model:z$1.string().min(1),weight:z$1.number().finite().int().min(1).default(1),account:z$1.string().min(1).optional()}).strict();var At=z$1.object({kind:z$1.literal("custom"),run:z$1.string().min(1)}).strict(),ht=z$1.object({name:z$1.string().min(1).max(60).optional(),strategy:z$1.enum(["round-robin","weighted"]),chain:z$1.array(At).optional(),models:z$1.array(Qe).min(1).max(8).optional(),candidates:z$1.array(Qe).min(1).max(8).optional(),sticky:z$1.enum(["conversation","none"]).default("conversation"),defaultModel:z$1.string().min(1).optional(),defaultCandidate:z$1.string().min(1).optional()}).strict().superRefine((e,n)=>{e.models!==void 0&&e.candidates!==void 0&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["models"],message:'Cannot specify both "models" and legacy "candidates".'}),e.defaultModel!==void 0&&e.defaultCandidate!==void 0&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["defaultModel"],message:'Cannot specify both "defaultModel" and legacy "defaultCandidate".'});let t=e.models??e.candidates;if(!t){n.addIssue({code:z$1.ZodIssueCode.custom,path:["models"],message:"At least one model is required."});return}let r=new Set;t.forEach((i,s)=>{r.has(i.id)&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["models",s,"id"],message:`Duplicate route model id: ${i.id}`}),r.add(i.id);});let o=e.defaultModel??e.defaultCandidate;o&&!r.has(o)&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["defaultModel"],message:`Unknown defaultModel for route: ${o}`});}),Ze=ht.transform(e=>{let{candidates:n,defaultCandidate:t,...r}=e,o=e.defaultModel??e.defaultCandidate,i={...r,models:e.models??e.candidates??[],...o===void 0?{}:{defaultModel:o}};return Object.defineProperty(i,"candidates",{configurable:false,enumerable:false,value:i.models,writable:false}),o!==void 0&&Object.defineProperty(i,"defaultCandidate",{configurable:false,enumerable:false,value:o,writable:false}),i});var _t=z$1.object({model:z$1.string().optional(),system_prompt:z$1.string().optional(),prompt:z$1.string().optional(),layout:z$1.union([z$1.string(),z$1.object({id:z$1.string(),props:z$1.record(z$1.unknown()).optional()}),z$1.object({props:z$1.record(z$1.unknown())}),z$1.object({template:z$1.string(),capabilities:z$1.object({semanticContinuity:z$1.boolean().optional(),continuity:z$1.boolean().optional(),continuitySlot:z$1.string().optional(),slot:z$1.string().optional()}).optional()})]).optional()}).catchall(z$1.unknown()),Et=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),It=z$1.object({id:z$1.string(),name:z$1.string().optional(),role:z$1.string().optional(),team:z$1.string().optional(),provider:z$1.union([z$1.string(),z$1.array(z$1.string())]),provider_account:z$1.string().min(1).optional(),working_directory:z$1.string().optional(),description:z$1.string().optional(),tags:z$1.array(z$1.string()).optional(),inline:_t.optional(),skills:Et,interceptors:z$1.unknown().optional()}).catchall(z$1.unknown());z$1.object({id:z$1.string(),name:z$1.string(),workflow_id:z$1.string(),description:z$1.string().optional(),goal_id:z$1.string().optional()});var Tt=z$1.number().finite().int().min(Ye).max(Ke),xt=z$1.object({inputBudgetPercent:Tt.optional()}).catchall(z$1.unknown()),Pt=z$1.object({continuity:xt.optional()}).catchall(z$1.unknown()),Ct=z$1.object({bin_resolution:z$1.enum(["global_first","local_first"]).optional(),dreaming:Pt.optional(),wi:z$1.object({boards:z$1.array(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()),en=z$1.object({agents:z$1.array(It).optional(),routes:z$1.record(Ze).optional(),hooks:z$1.array(z$1.unknown()).optional(),settings:Ct.optional(),skills:z$1.unknown().optional(),layouts:z$1.record(z$1.unknown()).optional(),documents:z$1.record(z$1.unknown()).optional()}).catchall(z$1.unknown()).superRefine((e,n)=>{for(let[t,r]of (e.agents??[]).entries()){let o=r.inline?.model;if(!o?.startsWith("route/"))continue;let i=o.slice(6);(!i||!e.routes?.[i])&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["agents",t,"inline","model"],message:`Agent '${r.id}' references unknown model route '${i}'`});}});var O=class extends Error{constructor(t,r){super(t);this.cause=r;this.name="ConfigLoadError";}cause};function Rt(e){if(!e||typeof e!="string"||!e.trim())throw new O("YAML content must be a non-empty string");let n;try{n=load(e);}catch(o){throw new O(`YAML parse error: ${o.message}`,o)}let t=bt(n),r=en.safeParse(t);if(!r.success)throw new O(`Config validation error: ${r.error.message}`);return r.data}function bt(e){if(!e||typeof e!="object")return {agents:[]};let n=e;if(n.agents&&typeof n.agents=="object"&&!Array.isArray(n.agents)){let t=n.agents,r=Object.entries(t).map(([o,i])=>({id:o,...i&&typeof i=="object"?i:{}}));return {...n,agents:r}}return n.agents?n:{...n,agents:[]}}var Mt={auto:"default"};function vt(e){return Mt[e]??e}var St="crewx:fs:",ae=class{prefix;store;constructor(n){this.prefix=n?.prefix??St,this.store=n?.storage??new Map;}async readFile(n){let t=this.toKey(n),r=this.store.get(t);if(r===void 0)throw new Error(`BrowserFsAdapter: file not found: ${n}`);return r}async exists(n){return this.store.has(this.toKey(n))}resolvePath(...n){let t=n.map(s=>s.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),r=t.split("/"),o=[];for(let s of r)s==="."||s===""||(s===".."?o.pop():o.push(s));let i=o.join("/");return t.startsWith("/")?`/${i}`:i}isAbsolute(n){return n.startsWith("/")}setItem(n,t){this.store.set(this.toKey(n),t);}removeItem(n){this.store.delete(this.toKey(n));}keys(){return Array.from(this.store.keys()).filter(n=>n.startsWith(this.prefix)).map(n=>n.slice(this.prefix.length))}async readdir(n){let t=n.replace(/\\/g,"/").replace(/\/$/,""),r=this.toKey(t+"/"),o=[];for(let i of this.store.keys())if(i.startsWith(r)){let a=i.slice(r.length).split("/")[0];a&&!o.includes(a)&&o.push(a);}return o}toKey(n){return `${this.prefix}${n.replace(/\\/g,"/")}`}};var de=["codex","claude","grok","opencode","antigravity","copilot"];function kt(e){let n=e.indexOf("/");return n===-1?e:e.slice(n+1)}function pe(e){let n=kt(e),t=de.indexOf(n);return t===-1?de.length:t}function wt(e,n){return pe(e)-pe(n)}var Dt=new Set(["claude","copilot","codex","grok","opencode"]);function Nt(e){if(!e)return "";if(e.startsWith("acp/")){let n=e.slice(4);if(Dt.has(n))return `cli/${n}`}return e}function j(e){return {mode:e.mode,effort:e.effort}}function Ut(e){let n=ie.providers[e];if(!n)return;let t=e.startsWith("cli/")?e.slice(4):e,r=B[t]?.models.find(s=>s.recommended===true&&s.tier==="balanced")?.id??n.model,o={query:j(n.query),execute:j(n.execute)},i={query:j(n.query),execute:j(n.execute)};return {planner:{model:n.model,...o},worker:{model:r,...i}}}var tn=["urgent","high","medium","low"],rn=["investigating","in-progress","in-review","on-hold","done"],S="custom:";var Lt=new Set(tn),Bt=new Set(rn),jt={urgent:"U \uAE34\uAE09 Urgent",high:"P0 \uAE09\uD568 High",medium:"P1 \uC911\uC694 Medium",low:"P2 \uBCF4\uD1B5 Low"},ce={investigating:"\uC870\uC0AC\uC911 Looking into","in-progress":"\uC9C4\uD589\uC911 In progress","in-review":"\uAC80\uD1A0\uC911 In review","on-hold":"\uBCF4\uB958 On hold",done:"\uC644\uB8CC Done"};function nn(e,n){return !n||n.includes(e)?n??e:`${e} ${n}`}function le(e){return typeof e=="string"&&Lt.has(e)}function ue(e){if(typeof e!="string")return false;if(Bt.has(e))return true;if(e.startsWith("c_"))return e.length>2;if(!e.startsWith(S))return false;let n=e.slice(S.length);return n.length>=1&&n.length<=20}function on(e){if(e.startsWith(S))return e.slice(S.length)}function fe(e){if(!e)return null;try{let n=JSON.parse(e);return !n||typeof n!="object"||Array.isArray(n)?null:n}catch{return null}}function Ft(e){let n=fe(e);return !!n&&Object.prototype.hasOwnProperty.call(n,"threadTitle")}function sn(e){let n=fe(e);if(!n)return {};let t=n.threadTitle;if(!t||typeof t!="object"||Array.isArray(t))return {};let r=t,o={};return le(r.priority)&&(o.priority=r.priority),ue(r.state)&&(o.state=r.state),o}function Ht(e,n){let t=fe(e)??{},r={...sn(e)};return n.priority===null?delete r.priority:n.priority!==void 0&&(r.priority=n.priority),n.state===null?delete r.state:n.state!==void 0&&(r.state=n.state),r.priority===void 0&&r.state===void 0?delete t.threadTitle:t.threadTitle=r,Object.keys(t).length===0?null:JSON.stringify(t)}function Gt(e,n=new Map){let t=[];return e.priority&&t.push(nn(jt[e.priority],n.get(e.priority))),e.state&&(e.state.startsWith(S)?t.push(on(e.state)??""):ce[e.state]?t.push(nn(ce[e.state],n.get(e.state))):n.has(e.state)?t.push(e.state,n.get(e.state)??""):e.state.startsWith("c_")?t.push(e.state):t.push(ce[e.state]??"")),t.filter(Boolean).join(" ")}function an(e,n){if(!e||e.trim().length===0)return;let t=new Set,r=false,o=false;for(let i of e.split(",")){let s=i.trim();if(s){if(s==="none"){r=true,o=true;continue}n(s)&&(t.add(s),o=true);}}if(o)return {values:t,includeNone:r}}function Jt(e){return an(e,le)}function zt(e){return an(e,ue)}function Vt(e,n){return n?e?n.values.has(e):n.includeNone:true}var qt=["crewx_app_terminal_connect","crewx_app_html_viewer_open","crewx_app_browser","crewx_files_list","crewx_files_read","crewx_files_write","crewx_docs_share"];var ge=["text/plain","application/json"];var Wt=["__proto__","prototype","constructor","proof","token","secret","password","cookie","authorization","private_key","private-key","stack","exception","plugin_text","url","uri","endpoint","path","filename","filepath","cwd","shell","directory","dir","folder"];new Set(Wt);var dn=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/;var $t=/^uic_[A-Za-z0-9_-]+$/,Xt=/^[0-9a-f]{64}$/,_="MCP App content declarations are invalid";function w(e){return typeof e=="string"&&ge.includes(e)}function F(e){return typeof e=="string"&&e.length<=128&&$t.test(e)}function Yt(e,n){try{let t=n,r=k(t,"actions");if(!cn(r))throw new Error(_);let o=[];for(let s of Object.keys(r)){let a=k(r,s);if(a===null||typeof a!="object"||Array.isArray(a))throw new Error(_);let p=Object.getOwnPropertyDescriptor(a,"content");if(p===void 0)continue;if(!Object.hasOwn(p,"value"))throw new Error(_);let l=Qt(p.value);o.push({actionId:s,...l});}if(o.length===0)return;o.sort((s,a)=>s.actionId<a.actionId?-1:s.actionId>a.actionId?1:0);let i={schemaVersion:1,instanceId:e,definition:{id:k(t,"id"),version:k(t,"version"),hash:k(t,"hash")},actions:o};if(!me(i))throw new Error(_);for(let s of o)s.in!==void 0&&Object.freeze(s.in),s.out!==void 0&&Object.freeze(s.out),Object.freeze(s);return Object.freeze(o),Object.freeze(i.definition),Object.freeze(i)}catch{throw new Error(_)}}function me(e){try{if(!H(e,["schemaVersion","instanceId","definition","actions"]))return !1;let n=e;if(n.schemaVersion!==1||!F(n.instanceId)||!nr(n.definition))return !1;let t=n.actions;if(!sr(t)||t.length===0)return !1;let r;for(let o=0;o<t.length;o+=1){let i=t[o];if(!tr(i)||r!==void 0&&!(r<i.actionId))return !1;r=i.actionId;}return !0}catch{return false}}function Kt(e,n,t){return me(e)?e.instanceId===n&&e.definition.id===t.id&&e.definition.version===t.version&&e.definition.hash===t.hash:false}function Qt(e){if(!D(e,["in","out"]))throw new Error(_);let n=e,t=Object.hasOwn(n,"in"),r=Object.hasOwn(n,"out");if(!t&&!r)throw new Error(_);return {...t?{in:Zt(n.in)}:{},...r?{out:er(n.out)}:{}}}function Zt(e){if(!D(e,["mediaType","required"],["mediaType"]))throw new Error(_);let n=e,t=n.mediaType,r=Object.hasOwn(n,"required")?n.required:false;if(!w(t)||typeof r!="boolean")throw new Error(_);return {mediaType:t,required:r}}function er(e){if(!D(e,["mediaType","range"],["mediaType"]))throw new Error(_);let n=e,t=n.mediaType,r=Object.hasOwn(n,"range")?n.range:false;if(!w(t)||typeof r!="boolean")throw new Error(_);return {mediaType:t,range:r}}function nr(e){if(!H(e,["id","version","hash"]))return false;let n=e;return pn(n.id)&&ir(n.version)&&typeof n.hash=="string"&&Xt.test(n.hash)}function tr(e){if(!D(e,["actionId","in","out"],["actionId"]))return false;let n=e,t=n.actionId,r=Object.hasOwn(n,"in"),o=Object.hasOwn(n,"out");return !(typeof t!="string"||!pn(t)||!r&&!o||r&&!rr(n.in)||o&&!or(n.out))}function rr(e){if(!H(e,["mediaType","required"]))return false;let n=e;return w(n.mediaType)&&typeof n.required=="boolean"}function or(e){if(!H(e,["mediaType","range"]))return false;let n=e;return w(n.mediaType)&&typeof n.range=="boolean"}function pn(e){return typeof e=="string"&&dn.test(e)}function ir(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function sr(e){if(!Array.isArray(e))return false;let n=Reflect.ownKeys(e);if(n.length!==e.length+1||n[e.length]!=="length")return false;for(let t=0;t<e.length;t+=1){if(n[t]!==String(t))return false;let r=Object.getOwnPropertyDescriptor(e,String(t));if(r===void 0||!Object.hasOwn(r,"value"))return false}return true}function H(e,n){return D(e,n,n)}function D(e,n,t=[]){if(!cn(e))return false;let r=Reflect.ownKeys(e);if(r.length>n.length||r.length<t.length)return false;for(let o of r){if(typeof o!="string"||!n.includes(o))return false;let i=Object.getOwnPropertyDescriptor(e,o);if(i===void 0||!Object.hasOwn(i,"value"))return false}return t.every(o=>Object.hasOwn(e,o))}function cn(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function k(e,n){if(e===null||typeof e!="object")return;let t=Object.getOwnPropertyDescriptor(e,n);return t!==void 0&&Object.hasOwn(t,"value")?t.value:void 0}var ln=[5,15,30,60],ye=Object.freeze({min:15e3,max:6e5,default:3e5}),ar=1;var dr="exit 78",un=["standby","disabled","draining","degraded"],pr=["cron","cron_manual","app_enable"],cr=/^[A-Z][A-Z0-9_]{0,63}$/u;function lr(e){return typeof e=="string"&&cr.test(e)}function ur(e){return ln.includes(e)}function fr(e){return Number.isSafeInteger(e)&&e>=ye.min&&e<=ye.max}function gr(e){return un.includes(e)}var fn={refCodePoints:200,refSegments:3},mr=/^[\p{L}\p{N}][\p{L}\p{N}\p{M}_-]{0,99}$/u;function yr(e){let n=e.normalize("NFC");if([...n].length>fn.refCodePoints)return;let t=n.split("/");if(t.length>fn.refSegments)return;let r=t[t.length-1];return r.endsWith(".md")&&[...t.slice(0,-1),r.slice(0,-3)].every(i=>mr.test(i))?n:void 0}var Ae=Object.freeze({min:6e4,max:18e5,default:6e5}),Ar=1,gn="crewx/appJobs",mn=1,he=["starting","running","stopping","finished"],_e=["succeeded","failed","timed_out","cancelled","shutdown","interrupted"],Ee=["cancelled","timed_out","shutdown"],Ie=["manual","schedule"],hr=/^[a-z][a-z0-9_]{0,63}$/u,_r=/^[A-Z][A-Z0-9_]{0,63}$/u,yn=["start","status","cancel"],An=["APP_JOB_NOT_DECLARED","APP_JOB_NOT_AUTHORIZED","APP_JOB_SELF_START","APP_JOB_OWNER_INVALID","APP_JOB_DEFINITION_INVALID","APP_JOB_DEFINITION_CHANGED","APP_JOB_DEADLINE_INVALID","APP_JOB_SHUTTING_DOWN","APP_JOB_OWNER_MISMATCH","APP_JOB_STALE_HANDLE","APP_JOB_NOT_ACTIVE","APP_JOB_NOT_GRANTED"],Er="APP_JOB_RUN_REQUIRED";function Ir(e){return Number.isSafeInteger(e)&&e>=Ae.min&&e<=Ae.max}function Te(e){return typeof e=="string"&&_r.test(e)}function xe(e){return typeof e=="string"&&hr.test(e)}function hn(e){return yn.includes(e)}function Tr(e){return e?.some(({name:n,version:t})=>n===gn&&t===mn)===true}var xr="CREWX_APP_JOB_CHANNEL",Pr=1,Cr=4096,Or=1e4,Rr=5e3;var br=/^[A-Za-z0-9._:-]{1,128}$/u,Mr=64,vr=2147483647;function Sr(e){return e==="schedule"?"schedule":"manual"}function kr(e){return wr(e)}function wr(e){let n=Tn(e)?e:void 0;if(n===void 0||!In(n,["handle","state","stopReason","trigger","outcome","phase","completed","total","resumable","lastHeartbeatAt","startedAt","finishedAt","errorCode","recoverable"],[]))return;let t=Dr(n.handle),r=n.stopReason,o=n.outcome,i=n.phase,s=n.errorCode,a=n.recoverable;if(!(t===void 0||!he.includes(n.state)||!(r===null||Ee.includes(r))||r!==null&&n.state!=="stopping"||!Ie.includes(n.trigger)||!(o===null||_e.includes(o))||!(i===null||xe(i))||!(n.completed===null||_n(n.completed))||!(n.total===null||_n(n.total))||typeof n.resumable!="boolean"||!En(n.lastHeartbeatAt)||!xn(n.startedAt)||!En(n.finishedAt)||!(s===null||Te(s))||!(a===null||typeof a=="boolean")))return {handle:t,state:n.state,stopReason:r,trigger:n.trigger,outcome:o,phase:i,completed:n.completed,total:n.total,resumable:n.resumable,lastHeartbeatAt:n.lastHeartbeatAt,startedAt:n.startedAt,finishedAt:n.finishedAt,errorCode:s,recoverable:a}}function Dr(e){if(!(!Tn(e)||!In(e,["runId","generation"],[]))&&!(typeof e.runId!="string"||!br.test(e.runId)||!Nr(e.generation)))return {runId:e.runId,generation:e.generation}}function In(e,n,t){let r=new Set([...n,...t]);return Object.keys(e).every(o=>r.has(o))&&n.every(o=>Object.hasOwn(e,o))}function Tn(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function Nr(e){return Number.isSafeInteger(e)&&e>=1&&e<=vr}function _n(e){return Number.isSafeInteger(e)&&e>=0}function xn(e){return typeof e=="string"&&e.length>0&&e.length<=Mr}function En(e){return e===null||xn(e)}var Ur="crewx/openApp",Ce=1,Lr="ui/crewx-open-app",Br="ui/crewx-open-app-status",Cn=32768,On=8,Oe=["opened","completed","pending"],Re=["UI_APP_OPEN_INVALID","UI_APP_OPEN_UNAVAILABLE","UI_APP_OPEN_GESTURE_REQUIRED","UI_APP_OPEN_STALE","UI_APP_OPEN_BUSY","UI_APP_OPEN_REJECTED","UI_APP_OPEN_FAILED","UI_APP_OPEN_REQUEST_ID_CONFLICT"],be=["RECEIPT_FAILED","RECEIPT_REJECTED","RECEIPT_CONFLICTED","RECEIPT_EXPIRED","LEDGER_MISSING","LEDGER_EXPIRED"],J=class extends Error{constructor(t,r){super(t);this.errorCode=t;this.causeCode=r;}errorCode;causeCode;name="CrewxOpenAppError"},jr=/^[A-Za-z0-9-]{8,64}$/,Fr=/^[A-Za-z0-9_-]{1,128}$/,z=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/,Hr=new TextEncoder,Pn=/\p{Surrogate}/u,Gr=new Set(["__proto__","constructor","prototype"]);function f(){throw new J("UI_APP_OPEN_INVALID")}function N(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function q(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function T(e,n,t=[]){q(e)||f();let r=new Set([...n,...t]);for(let o of Object.keys(e))r.has(o)||f();for(let o of n)N(e,o)||f();return e}function V(e,n){return (typeof e!="string"||!n.test(e))&&f(),e}function W(e){return (typeof e!="string"||!jr.test(e))&&f(),e}function b(e){(typeof e!="string"||!Fr.test(e))&&f();let n=e.indexOf("_");return (n<0||n===e.length-1)&&f(),W(e.slice(0,n)),e}function Rn(e){return b(e).slice(0,e.indexOf("_"))}function bn(e){return F(e)||f(),e}function R(e,n){let t=n.find(r=>r===e);return t===void 0&&f(),t}function Pe(e,n){if(e===null)return "null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return Number.isFinite(e)||f(),JSON.stringify(e);if(typeof e=="string")return Pn.test(e)&&f(),JSON.stringify(e);if(n>On&&f(),Array.isArray(e)){let o=[];for(let i=0;i<e.length;i+=1)N(e,String(i))||f(),o.push(Pe(e[i],n+1));return `[${o.join(",")}]`}q(e)||f();let t=e;return `{${Object.keys(t).sort().map(o=>((Gr.has(o)||Pn.test(o))&&f(),`${JSON.stringify(o)}:${Pe(t[o],n+1)}`)).join(",")}}`}function Jr(e){let n=T(e,["requestId","appId"],["action"]),t=b(n.requestId),r=V(n.appId,z);if(!N(n,"action"))return {requestId:t,appId:r};let o=T(n.action,["actionId","input"]),i=o.input;return q(i)||f(),{requestId:t,appId:r,action:{actionId:V(o.actionId,z),input:i}}}function Mn(e){return {version:Ce,sessionId:W(e)}}function zr(e){let n=T(e,["version","sessionId"]);return n.version!==Ce&&f(),Mn(W(n.sessionId))}function Vr(e,n){return typeof n!="string"&&f(),b(`${W(e)}_${n}`)}function vn(e){let n=Pe(Jr(e),1);return Hr.encode(n).byteLength>Cn&&f(),n}function qr(e){return JSON.parse(vn(e))}function Wr(e){let n=T(e,["requestId"]);return {requestId:b(n.requestId)}}function Sn(e){return {status:R(e.status,Oe),appId:V(e.appId,z),instanceId:bn(e.instanceId),requestId:b(e.requestId)}}function kn(e,n){let t=R(e,Re);return n===void 0?{isError:true,_meta:{errorCode:t}}:{isError:true,_meta:{errorCode:t,causeCode:R(n,be)}}}function $r(e){if(q(e)||f(),N(e,"isError")){let t=T(e,["isError","_meta"]);t.isError!==true&&f();let r=T(t._meta,["errorCode"],["causeCode"]);return kn(R(r.errorCode,Re),N(r,"causeCode")?R(r.causeCode,be):void 0)}let n=T(e,["status","appId","instanceId","requestId"]);return Sn({status:R(n.status,Oe),appId:V(n.appId,z),instanceId:bn(n.instanceId),requestId:b(n.requestId)})}function G(e,n){return {state:"failed",errorCode:e,causeCode:n}}function Xr(e){if(e.kind==="pending"||e.status==="requested")return {state:"pending"};if(e.outcome==="succeeded")return {state:"completed"};switch(e.outcome){case "rejected":return G("UI_APP_OPEN_REJECTED","RECEIPT_REJECTED");case "conflicted":return G("UI_APP_OPEN_STALE","RECEIPT_CONFLICTED");case "expired":return G("UI_APP_OPEN_STALE","RECEIPT_EXPIRED");default:return G("UI_APP_OPEN_FAILED","RECEIPT_FAILED")}}function Me(e,n){return e.workspaceId===n.workspaceId&&e.threadId===n.threadId&&e.instanceId===n.instanceId&&e.definition.id===n.definition.id&&e.definition.version===n.definition.version&&e.definition.hash===n.definition.hash&&e.entryHash===n.entryHash}function Yr(e){if(Rn(e.requestId)!==e.activeSessionId)return "stale";let{lookup:n}=e;return n.kind==="absent"?n.capacity==="full"?"busy":"new":Me(n.record.source,e.source)&&n.record.payloadDigest===e.payloadDigest?"known":"conflict"}function Kr(e){return Rn(e.requestId)!==e.activeSessionId||e.lookup.kind!=="present"?"stale":Me(e.lookup.record.source,e.source)?"known":"stale"}export{$e as ANTIGRAVITY_MODEL_COMPATIBILITY,Rr as APP_JOB_BRIDGE_DRAIN_TIMEOUT_MS,xr as APP_JOB_BRIDGE_ENV,Cr as APP_JOB_BRIDGE_MAX_LINE_BYTES,Or as APP_JOB_BRIDGE_REPLY_TIMEOUT_MS,Pr as APP_JOB_BRIDGE_VERSION,gn as APP_JOB_CAPABILITY,mn as APP_JOB_CAPABILITY_VERSION,Ae as APP_JOB_DEADLINE_MS,Ar as APP_JOB_MAX_PER_APP,yn as APP_JOB_OPERATIONS,_e as APP_JOB_OUTCOMES,An as APP_JOB_REFUSAL_CODES,Er as APP_JOB_RUN_REQUIRED,he as APP_JOB_STATES,Ee as APP_JOB_STOP_REASONS,Ie as APP_JOB_TRIGGERS,dr as APP_SCHEDULE_INERT_COMMAND,ln as APP_SCHEDULE_INTERVALS_MINUTES,ar as APP_SCHEDULE_MAX_PER_APP,un as APP_SCHEDULE_PERIODIC_REASONS,ye as APP_SCHEDULE_TIMEOUT_MS,rn as BUILTIN_THREAD_STATES,ae as BrowserFsAdapter,qe as CLAUDE_MODEL_COMPATIBILITY_PAIRS,lt as CLAUDE_OPUS_4_8_BASE_MODEL_ID,ut as CLAUDE_OPUS_4_8_LEGACY_MODEL_ID,Ur as CREWX_OPEN_APP_CAPABILITY,Ce as CREWX_OPEN_APP_CAPABILITY_VERSION,On as CREWX_OPEN_APP_MAX_JSON_DEPTH,Cn as CREWX_OPEN_APP_MAX_PARAMS_BYTES,Lr as CREWX_OPEN_APP_METHOD,Br as CREWX_OPEN_APP_STATUS_METHOD,Oe as CREWX_OPEN_APP_SUCCESS_STATUSES,O as ConfigLoadError,Z as Crewx,J as CrewxOpenAppError,at as EFFORT_LEVELS,qt as MCP_APP_HOST_TOOL_ALLOWLIST,dt as PROVIDER_ARGV_EFFORTS,de as PROVIDER_ORDER,h as ProviderError,pr as SCHEDULE_TRIGGERS,tn as THREAD_PRIORITIES,be as UI_APP_OPEN_CAUSE_CODES,Re as UI_APP_OPEN_ERROR_CODES,ge as UI_CONTENT_MEDIA_TYPES,Sr as appJobTriggerForActor,Yt as buildMcpAppContentActions,vn as canonicalCrewxOpenAppPayload,Xn as classifyTaskError,wt as compareProviders,Kt as contentActionsMatch,Mn as createCrewxOpenAppCapabilityDeclaration,kn as createCrewxOpenAppErrorResult,Vr as createCrewxOpenAppRequestId,Sn as createCrewxOpenAppSuccessResult,U as createProvider,on as customStateLabel,Yr as decideCrewxOpenAppOpen,Kr as decideCrewxOpenAppStatus,Ut as getDefaultAgentProfile,Tr as hasAppJobCapability,Ft as hasThreadTitleKey,Te as isAppJobCode,Ir as isAppJobDeadlineMs,hn as isAppJobOperation,xe as isAppJobPhase,lr as isAppScheduleCode,ur as isAppScheduleIntervalMinutes,gr as isAppSchedulePeriodicReason,fr as isAppScheduleTimeoutMs,me as isMcpAppContentActions,Me as isSameCrewxOpenAppSourceBinding,le as isThreadPriority,ue as isThreadState,w as isUiContentMediaType,F as isValidUiAppInstanceId,Vt as matchesThreadTitleFilter,Ht as mergeThreadTitleMeta,yr as normalizeAppFilesRef,vt as normalizeClaudeMode,Nt as normalizeProviderId,kr as parseAppJobView,zr as parseCrewxOpenAppCapabilityDeclaration,qr as parseCrewxOpenAppRequest,$r as parseCrewxOpenAppResult,Wr as parseCrewxOpenAppStatusRequest,Jt as parseThreadPriorityFilter,zt as parseThreadStateFilter,Rt as parseYamlContent,pe as providerRank,sn as readThreadTitleMeta,ee as redactTechnicalMessage,Q as registerProviderFactory,Xe as resolveAntigravityModel,We as resolveCatalogModelId,Xr as resolveCrewxOpenAppActionOutcome,se as resolveProviderCatalogModel,Gt as threadTitleSearchHaystack};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { Crewx, loadAgentSkills } from './facade/Crewx';
|
|
2
2
|
export type { ToolDefinition } from './facade/Crewx';
|
|
3
|
-
export { RouteConfigSchema, RouteCandidateConfigSchema, RouteLinkConfigSchema, RouteError, RouteRunnerError, RouteDecisionService, RouteSqliteStore, MemoryRouteStore, builtInStrategy, roundRobin, smoothWeighted, fnRunner, procRunner, evaluateRouteEligibility, previewRoute, routeConfigRevision, } from './route/index.js';
|
|
4
|
-
export type { RouteBlockedCause, RouteCandidate, RouteCandidateConfig, RouteConfig, RouteContext, RouteDecision, RouteFunction, RouteHealth, RouteLinkConfig, RouteLinkError, RouteMode, RouteOutput, RoutePassOutput, RouteQuotaObservation, RouteRequest, RouteRunner, RouteErrorCode, RouteRunnerErrorCode, ProcRunnerOptions, RouteDecisionServiceOptions, RoutePreviewItem, RecordRouteQuotaFailureInput, RouteEligibilityResult, RouteDecisionCommit, RouteCommitResult, RouteStateSnapshot, RouteSelectOutput, RouteDecisionStore, RouteObservationSource, } from './route/index.js';
|
|
3
|
+
export { RouteConfigSchema, RouteModelConfigSchema, RouteCandidateConfigSchema, RouteLinkConfigSchema, RouteError, RouteRunnerError, RouteDecisionService, RouteSqliteStore, MemoryRouteStore, builtInStrategy, roundRobin, smoothWeighted, fnRunner, procRunner, evaluateRouteEligibility, previewRoute, routeConfigRevision, } from './route/index.js';
|
|
4
|
+
export type { RouteBlockedCause, RouteModel, RouteModelConfig, RouteCandidate, RouteCandidateConfig, RouteConfig, RouteContext, RouteDecision, RouteFunction, RouteHealth, RouteLinkConfig, RouteLinkError, RouteMode, RouteOutput, RoutePassOutput, RouteQuotaObservation, RouteRequest, RouteRunner, RouteErrorCode, RouteRunnerErrorCode, ProcRunnerOptions, RouteDecisionServiceOptions, RoutePreviewItem, RecordRouteQuotaFailureInput, RouteEligibilityResult, RouteDecisionCommit, RouteCommitResult, RouteStateSnapshot, RouteSelectOutput, RouteDecisionStore, RouteObservationSource, } from './route/index.js';
|
|
5
5
|
export { resolveTaskTicketEnv } from './facade/task-ticket.js';
|
|
6
6
|
export type { TaskTicketGrant, TaskTicketIssuer, TaskTicketRequest } from './facade/task-ticket.js';
|
|
7
7
|
export { getVerifiedProductAppBundleExecutable } from './mcp-app/bundle-provenance.js';
|
|
@@ -117,7 +117,7 @@ export * from './provider/acp/index.js';
|
|
|
117
117
|
export type { CliProviderAdapter, ParseEventContext } from './provider/cli/adapter.types';
|
|
118
118
|
export { RateLimitError } from './provider/cli/adapter.types';
|
|
119
119
|
export { BUILTIN_ADAPTERS, claudeAdapter, copilotAdapter, codexAdapter, opencodeAdapter, grokAdapter } from './provider/cli/adapters/index';
|
|
120
|
-
export { queryAllCliProviderMetas, queryOpencodeModels } from './provider/cli/meta';
|
|
120
|
+
export { queryAllCliProviderMetas, queryOpencodeModels, queryOpencodeModelEfforts } from './provider/cli/meta';
|
|
121
121
|
export { getOpenCodeDataDir, getOpenCodeDataEnv } from './provider/cli/adapters/opencode-data-dir';
|
|
122
122
|
export { isMetadataOnlyProtocolLine, isProtocolOnlyText, shouldSkipRawStdoutJsonFallback, } from './provider/cli/protocol-envelope';
|
|
123
123
|
export { ConsoleDecoder, decodeConsoleBuffer, decodeConsoleBufferAsync, getWindowsConsoleCodePage, parseWindowsConsoleCodePage, primeWindowsConsoleCodePage, } from './internal/console-decoder';
|