@crewx/sdk 0.9.0-rc.200 → 0.9.0-rc.202
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/agent-interceptor/schema.d.ts +12 -12
- package/dist/config/models.generated.d.ts +2 -2
- package/dist/config/pricing.generated.d.ts +2 -2
- package/dist/esm/index.js +301 -282
- package/dist/esm/plugins/index.js +106 -87
- package/dist/esm/repository/index.js +166 -147
- package/dist/esm/testing/index.js +1 -1
- package/dist/index.browser.js +4 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +307 -288
- package/dist/plugins/index.js +110 -91
- package/dist/provider/cli/adapter.types.d.ts +1 -0
- package/dist/provider/cli/adapters/opencode-data-dir.d.ts +17 -0
- package/dist/provider/errors.d.ts +7 -1
- package/dist/provider/safe-opencode-text.d.ts +2 -0
- package/dist/provider/task-error.types.d.ts +4 -1
- package/dist/repository/index.js +161 -142
- package/dist/testing/index.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
function f(){let e=[];return {events:e,async log(t,o){e.push({event:t,payload:o});}}}function h(){let e={debug:[],info:[],warn:[],error:[]};return {entries:e,debug(t,o){e.debug.push({msg:t,meta:o});},info(t,o){e.info.push({msg:t,meta:o});},warn(t,o){e.warn.push({msg:t,meta:o});},error(t,o){e.error.push({msg:t,meta:o});}}}function A(){let e=200,t,o,n={},i={status(r){return e=r,i},set(r,a){return n[r]=a,i},send(r){return o=r,i},json(r){return t=r,i},end(){return i},getStatusCode:()=>e,getJsonBody:()=>t,getSentBody:()=>o,getHeaders:()=>({...n})};return i}function x(){let e=[];return {routes:e,registerRoute(o,n,i){e.push({path:o,handler:n,opts:i});},async simulate(o,n,i=Buffer.alloc(0),r={},a={},p={}){let c=e.find(m=>m.path===n);if(!c)return {status:404,body:{error:"Not found"},headers:{}};let g={method:o,url:n,headers:r,body:i,params:a,query:p},l=A();return await c.handler(g,l),{status:l.getStatusCode(),body:l.getJsonBody()??l.getSentBody(),headers:l.getHeaders()}}}}function k(e){let t=new Map,o=n=>n.startsWith(`${e}::`)?n:`${e}::${n}`;return {async get(n){let i=t.get(o(n));return i?i.value:void 0},async set(n,i){t.set(o(n),{value:i});},async delete(n){return t.delete(o(n))},async list(n){let i=n?o(n):`${e}::`,r=[];for(let a of t.keys())a.startsWith(i)&&r.push(a.slice(e.length+2));return r}}}function y(e){return k(e)}function M(){let e=new Map;return {blobs:e,async put(t,o,n){return e.set(t,{data:o,contentType:n}),t},async get(t){let o=e.get(t);return o?o.data:void 0},async delete(t){return e.delete(t)}}}function C(e){let t=e.instanceId??"mock-instance",o=f(),n=h(),i=x(),r=y(t),a=M(),p=[],c=[],g=[],l={run:async()=>({output:""}),...e.agentRunner},m=new AbortController,P=async u=>(p.push(u),{accepted:true}),v=async u=>(c.push(u),{accepted:true}),E=async(u,R)=>{g.push({messageId:u,patch:R});},I=async u=>({userId:u,displayName:u}),b=async()=>{},O=async()=>({messageId:"mock-proactive",sentAt:Date.now()});return {instanceId:t,installationId:e.installationId,config:e.config,capabilities:new Set(e.capabilities??[]),log:n,agentRunner:l,db:r,storage:a,audit:o,abortSignal:e.abortSignal??m.signal,httpRouter:i,router:i,inbound:P,emitEvent:v,updateMessage:E,resolveUser:I,respondSync:b,proactive:O,inboundCalls:p,emittedEvents:c,sentMessages:g}}function D(){}var w={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/deepseek-v4.1-flash",name:"DeepSeek V4.1 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"]}]}};Object.fromEntries(Object.entries(w).map(([e,t])=>[e,t.models]));var _=[{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]"}];new Map(_.map(({baseModelId:e,catalogModelId:t})=>[e,t]));var G=[{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"}];new Map(G.map(({legacyId:e,model:t,effort:o})=>[e,o===void 0?{model:t}:{model:t,effort:o}]));function B(){}export{f as createMockAudit,C as createMockContext,h as createMockLogger,x as createMockRouter,M as createMockStorage,y as createMockStore,B as resetModelsOverride,D as resetPricingOverride};
|
|
1
|
+
function f(){let e=[];return {events:e,async log(t,o){e.push({event:t,payload:o});}}}function h(){let e={debug:[],info:[],warn:[],error:[]};return {entries:e,debug(t,o){e.debug.push({msg:t,meta:o});},info(t,o){e.info.push({msg:t,meta:o});},warn(t,o){e.warn.push({msg:t,meta:o});},error(t,o){e.error.push({msg:t,meta:o});}}}function A(){let e=200,t,o,n={},i={status(r){return e=r,i},set(r,a){return n[r]=a,i},send(r){return o=r,i},json(r){return t=r,i},end(){return i},getStatusCode:()=>e,getJsonBody:()=>t,getSentBody:()=>o,getHeaders:()=>({...n})};return i}function x(){let e=[];return {routes:e,registerRoute(o,n,i){e.push({path:o,handler:n,opts:i});},async simulate(o,n,i=Buffer.alloc(0),r={},a={},p={}){let c=e.find(m=>m.path===n);if(!c)return {status:404,body:{error:"Not found"},headers:{}};let g={method:o,url:n,headers:r,body:i,params:a,query:p},l=A();return await c.handler(g,l),{status:l.getStatusCode(),body:l.getJsonBody()??l.getSentBody(),headers:l.getHeaders()}}}}function k(e){let t=new Map,o=n=>n.startsWith(`${e}::`)?n:`${e}::${n}`;return {async get(n){let i=t.get(o(n));return i?i.value:void 0},async set(n,i){t.set(o(n),{value:i});},async delete(n){return t.delete(o(n))},async list(n){let i=n?o(n):`${e}::`,r=[];for(let a of t.keys())a.startsWith(i)&&r.push(a.slice(e.length+2));return r}}}function y(e){return k(e)}function M(){let e=new Map;return {blobs:e,async put(t,o,n){return e.set(t,{data:o,contentType:n}),t},async get(t){let o=e.get(t);return o?o.data:void 0},async delete(t){return e.delete(t)}}}function C(e){let t=e.instanceId??"mock-instance",o=f(),n=h(),i=x(),r=y(t),a=M(),p=[],c=[],g=[],l={run:async()=>({output:""}),...e.agentRunner},m=new AbortController,P=async u=>(p.push(u),{accepted:true}),v=async u=>(c.push(u),{accepted:true}),E=async(u,R)=>{g.push({messageId:u,patch:R});},I=async u=>({userId:u,displayName:u}),b=async()=>{},O=async()=>({messageId:"mock-proactive",sentAt:Date.now()});return {instanceId:t,installationId:e.installationId,config:e.config,capabilities:new Set(e.capabilities??[]),log:n,agentRunner:l,db:r,storage:a,audit:o,abortSignal:e.abortSignal??m.signal,httpRouter:i,router:i,inbound:P,emitEvent:v,updateMessage:E,resolveUser:I,respondSync:b,proactive:O,inboundCalls:p,emittedEvents:c,sentMessages:g}}function D(){}var w={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"]}]}};Object.fromEntries(Object.entries(w).map(([e,t])=>[e,t.models]));var _=[{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]"}];new Map(_.map(({baseModelId:e,catalogModelId:t})=>[e,t]));var G=[{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"}];new Map(G.map(({legacyId:e,model:t,effort:o})=>[e,o===void 0?{model:t}:{model:t,effort:o}]));function B(){}export{f as createMockAudit,C as createMockContext,h as createMockLogger,x as createMockRouter,M as createMockStorage,y as createMockStore,B as resetModelsOverride,D as resetPricingOverride};
|
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 mt 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";}},wn={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=wn[t];if(o)return o;throw new x(e,n.map(i=>i.id))}function Dn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Nn(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function we(e){if(!Dn(e)||Nn(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 Un(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 Ln(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=Un(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=Ln(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 Bn=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=Bn.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 jn=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 jn("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 f=E.choices?.[0]?.delta?.content??"";c+=f,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 f=await p.text();throw new Error(`OpenRouter API error (${p.status}): ${f}`)}let l=p.body.getReader(),c=new TextDecoder,m="",E="";for(;;){let{done:f,value:$}=await l.read();if(f)break;E+=c.decode($,{stream:true});let ve=E.split(`
|
|
2
|
+
`);E=ve.pop();for(let kn of ve){let X=kn.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(f){if(f instanceof x)return {ok:false,data:"",error:{code:"AGENT_NOT_FOUND",message:f.message},meta:{agentId:n.replace(/^@/,""),provider:"",durationMs:Date.now()-o}};throw f}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(f){return {ok:false,data:"",error:{code:"PROVIDER_ERROR",message:f.message,...f instanceof h?{providerCode:f.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(f){return {ok:false,data:"",error:{code:"QUERY_FAILED",message:f.message,...f instanceof h?{providerCode:f.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=Hn(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(),Fn(n,1024)||void 0}function Fn(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 Hn(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=Gn(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 ${m}]`,r=a;}return t+e.slice(r)}function Bn(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}var Fn=new Set(["USAGE_LIMITED","CONTEXT_WINDOW_EXCEEDED","INPUT_TOO_LARGE","MODEL_NOT_SUPPORTED","MODEL_AT_CAPACITY","AUTH_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"]),Hn=new Set(["plan","plan-auto","read-only"]),Gn={QUOTA_EXHAUSTED:"USAGE_LIMITED",RATE_LIMITED:"USAGE_LIMITED",AUTH_REQUIRED:"AUTH_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"},Jn=[{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 Vn(e){try{if(!I(e)||e.status!=="failed")return ne();let n=zn(e.error);if(oe(n.message))return ne();let t=A(e.providerId)??n.provider??null,r=Wn(e.logs),o=Ge(n.code);if(o)return M(o,t,n.message,n);let i=U(n.providerCode)??U(n.code),s=i?re(i,n.message,{exitCode:Qn(e.exitCode),mode:n.mode,fromProviderCodeField:!!n.providerCode}):void 0;if(s)return M(s,t,n.message,n,i);let a=$n(r);if(!qn(n)&&a&&(a.type==="user_stop"||oe(a.message)))return ne();if(a){let l=Xn(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=Yn(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?.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 h=n?.startsWith("cli/")?n.slice(4):void 0;h&&(a.cliName=h);}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 zn(e){let n=typeof e=="string"?C(e):e;return I(n)?{isEnvelope:true,code:A(n.code),providerCode:A(n.providerCode),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 qn(e){return !!(e.code||e.providerCode||e.message)}function Wn(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=He(e.rate_limit_info);return A(o?.status)!=="rejected"?[]:[{type:n,code:"RATE_LIMITED",message:v(o?.message,e.message),resetAt:Zn(o?.resetsAt),rank:4,structuredFailure:true}]}if(n==="turn.failed"||n==="error"){let o=He(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 $n(e){return [...e].sort((n,t)=>t.rank-n.rank)[0]}function Xn(e,n,t){let r=Ge(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 Yn(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 Jn.find(n=>n.pattern.test(e))?.code}function re(e,n,t){let r=U(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&&Kn(t.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return Gn[r]}function Ge(e){let n=U(e);return n&&Fn.has(n)?n:void 0}function U(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function Kn(e){return typeof e=="string"&&Hn.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 He(e){return I(e)?e:void 0}function A(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function Zn(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function Qn(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function v(...e){return e.map(A).find(n=>!!n)}var et=["none","minimal","low","medium","high","xhigh","max","ultra"],nt={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/deepseek-v4.1-flash",name:"DeepSeek V4.1 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"}}}}};Object.fromEntries(Object.entries(B).map(([e,n])=>[e,n.models]));var ot="claude-opus-4-8",it="claude-opus-4-8[1m]",Je=[{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 st=new Map(Je.map(({baseModelId:e,catalogModelId:n})=>[e,n]));function Ve(e){return st.get(e)??e}var ze=[{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"}],at=new Map(ze.map(({legacyId:e,model:n,effort:t})=>[e,t===void 0?{model:n}:{model:n,effort:t}]));function qe(e){if(!e)return {};let n=at.get(e);return n?{...n}:{model:e}}function se(e,n){return e==="antigravity"||e==="cli/antigravity"?qe(n):n===void 0?{}:{model:Ve(n)}}var We=30,$e=80;Object.keys(pt.special_tokens);var ct=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(),lt=z$1.object({kind:z$1.literal("custom"),run:z$1.string().min(1)}).strict(),Xe=z$1.object({strategy:z$1.enum(["round-robin","weighted"]),chain:z$1.array(lt).optional(),candidates:z$1.array(ct).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 ut=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()),ft=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),gt=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:ut.optional(),skills:ft,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 mt=z$1.number().finite().int().min(We).max($e),yt=z$1.object({inputBudgetPercent:mt.optional()}).catchall(z$1.unknown()),At=z$1.object({continuity:yt.optional()}).catchall(z$1.unknown()),ht=z$1.object({bin_resolution:z$1.enum(["global_first","local_first"]).optional(),dreaming:At.optional(),wi:z$1.object({boards:z$1.array(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()),Ye=z$1.object({agents:z$1.array(gt).optional(),routes:z$1.record(Xe).optional(),hooks:z$1.array(z$1.unknown()).optional(),settings:ht.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 Et(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=It(n),r=Ye.safeParse(t);if(!r.success)throw new O(`Config validation error: ${r.error.message}`);return r.data}function It(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 Tt={auto:"default"};function xt(e){return Tt[e]??e}var Pt="crewx:fs:",ae=class{prefix;store;constructor(n){this.prefix=n?.prefix??Pt,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 Ct(e){let n=e.indexOf("/");return n===-1?e:e.slice(n+1)}function pe(e){let n=Ct(e),t=de.indexOf(n);return t===-1?de.length:t}function Ot(e,n){return pe(e)-pe(n)}var Rt=new Set(["claude","copilot","codex","grok","opencode"]);function bt(e){if(!e)return "";if(e.startsWith("acp/")){let n=e.slice(4);if(Rt.has(n))return `cli/${n}`}return e}function j(e){return {mode:e.mode,effort:e.effort}}function Mt(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 Ze=["urgent","high","medium","low"],Qe=["investigating","in-progress","in-review","on-hold","done"],S="custom:";var vt=new Set(Ze),St=new Set(Qe),kt={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 Ke(e,n){return !n||n.includes(e)?n??e:`${e} ${n}`}function le(e){return typeof e=="string"&&vt.has(e)}function ue(e){if(typeof e!="string")return false;if(St.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 en(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 wt(e){let n=fe(e);return !!n&&Object.prototype.hasOwnProperty.call(n,"threadTitle")}function nn(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 Dt(e,n){let t=fe(e)??{},r={...nn(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 Nt(e,n=new Map){let t=[];return e.priority&&t.push(Ke(kt[e.priority],n.get(e.priority))),e.state&&(e.state.startsWith(S)?t.push(en(e.state)??""):ce[e.state]?t.push(Ke(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 tn(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 Lt(e){return tn(e,le)}function Ut(e){return tn(e,ue)}function Bt(e,n){return n?e?n.values.has(e):n.includeNone:true}var jt=["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 Ft=["__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(Ft);var rn=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/;var Ht=/^uic_[A-Za-z0-9_-]+$/,Gt=/^[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&&Ht.test(e)}function Jt(e,n){try{let t=n,r=k(t,"actions");if(!sn(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=zt(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)||!$t(n.definition))return !1;let t=n.actions;if(!Qt(t)||t.length===0)return !1;let r;for(let o=0;o<t.length;o+=1){let i=t[o];if(!Xt(i)||r!==void 0&&!(r<i.actionId))return !1;r=i.actionId;}return !0}catch{return false}}function Vt(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 zt(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:Wt(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 Wt(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 $t(e){if(!H(e,["id","version","hash"]))return false;let n=e;return on(n.id)&&Zt(n.version)&&typeof n.hash=="string"&&Gt.test(n.hash)}function Xt(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"||!on(t)||!r&&!o||r&&!Yt(n.in)||o&&!Kt(n.out))}function Yt(e){if(!H(e,["mediaType","required"]))return false;let n=e;return w(n.mediaType)&&typeof n.required=="boolean"}function Kt(e){if(!H(e,["mediaType","range"]))return false;let n=e;return w(n.mediaType)&&typeof n.range=="boolean"}function on(e){return typeof e=="string"&&rn.test(e)}function Zt(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function Qt(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(!sn(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 sn(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 an=[5,15,30,60],ye=Object.freeze({min:15e3,max:6e5,default:3e5}),er=1;var nr="exit 78",dn=["standby","disabled","draining","degraded"],tr=["cron","cron_manual","app_enable"],rr=/^[A-Z][A-Z0-9_]{0,63}$/u;function or(e){return typeof e=="string"&&rr.test(e)}function ir(e){return an.includes(e)}function sr(e){return Number.isSafeInteger(e)&&e>=ye.min&&e<=ye.max}function ar(e){return dn.includes(e)}var pn={refCodePoints:200,refSegments:3},dr=/^[\p{L}\p{N}][\p{L}\p{N}\p{M}_-]{0,99}$/u;function pr(e){let n=e.normalize("NFC");if([...n].length>pn.refCodePoints)return;let t=n.split("/");if(t.length>pn.refSegments)return;let r=t[t.length-1];return r.endsWith(".md")&&[...t.slice(0,-1),r.slice(0,-3)].every(i=>dr.test(i))?n:void 0}var Ae=Object.freeze({min:6e4,max:18e5,default:6e5}),cr=1,cn="crewx/appJobs",ln=1,he=["starting","running","stopping","finished"],_e=["succeeded","failed","timed_out","cancelled","shutdown","interrupted"],Ee=["cancelled","timed_out","shutdown"],Ie=["manual","schedule"],lr=/^[a-z][a-z0-9_]{0,63}$/u,ur=/^[A-Z][A-Z0-9_]{0,63}$/u,un=["start","status","cancel"],fn=["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"],fr="APP_JOB_RUN_REQUIRED";function gr(e){return Number.isSafeInteger(e)&&e>=Ae.min&&e<=Ae.max}function Te(e){return typeof e=="string"&&ur.test(e)}function xe(e){return typeof e=="string"&&lr.test(e)}function gn(e){return un.includes(e)}function mr(e){return e?.some(({name:n,version:t})=>n===cn&&t===ln)===true}var yr="CREWX_APP_JOB_CHANNEL",Ar=1,hr=4096,_r=1e4,Er=5e3;var Ir=/^[A-Za-z0-9._:-]{1,128}$/u,Tr=64,xr=2147483647;function Pr(e){return e==="schedule"?"schedule":"manual"}function Cr(e){return Or(e)}function Or(e){let n=hn(e)?e:void 0;if(n===void 0||!An(n,["handle","state","stopReason","trigger","outcome","phase","completed","total","resumable","lastHeartbeatAt","startedAt","finishedAt","errorCode","recoverable"],[]))return;let t=Rr(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||mn(n.completed))||!(n.total===null||mn(n.total))||typeof n.resumable!="boolean"||!yn(n.lastHeartbeatAt)||!_n(n.startedAt)||!yn(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 Rr(e){if(!(!hn(e)||!An(e,["runId","generation"],[]))&&!(typeof e.runId!="string"||!Ir.test(e.runId)||!br(e.generation)))return {runId:e.runId,generation:e.generation}}function An(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 hn(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function br(e){return Number.isSafeInteger(e)&&e>=1&&e<=xr}function mn(e){return Number.isSafeInteger(e)&&e>=0}function _n(e){return typeof e=="string"&&e.length>0&&e.length<=Tr}function yn(e){return e===null||_n(e)}var Mr="crewx/openApp",Ce=1,vr="ui/crewx-open-app",Sr="ui/crewx-open-app-status",In=32768,Tn=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"},kr=/^[A-Za-z0-9-]{8,64}$/,wr=/^[A-Za-z0-9_-]{1,128}$/,V=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/,Dr=new TextEncoder,En=/\p{Surrogate}/u,Nr=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 z(e,n){return (typeof e!="string"||!n.test(e))&&u(),e}function W(e){return (typeof e!="string"||!kr.test(e))&&u(),e}function b(e){(typeof e!="string"||!wr.test(e))&&u();let n=e.indexOf("_");return (n<0||n===e.length-1)&&u(),W(e.slice(0,n)),e}function xn(e){return b(e).slice(0,e.indexOf("_"))}function Pn(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 En.test(e)&&u(),JSON.stringify(e);if(n>Tn&&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=>((Nr.has(o)||En.test(o))&&u(),`${JSON.stringify(o)}:${Pe(t[o],n+1)}`)).join(",")}}`}function Lr(e){let n=T(e,["requestId","appId"],["action"]),t=b(n.requestId),r=z(n.appId,V);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:z(o.actionId,V),input:i}}}function Cn(e){return {version:Ce,sessionId:W(e)}}function Ur(e){let n=T(e,["version","sessionId"]);return n.version!==Ce&&u(),Cn(W(n.sessionId))}function Br(e,n){return typeof n!="string"&&u(),b(`${W(e)}_${n}`)}function On(e){let n=Pe(Lr(e),1);return Dr.encode(n).byteLength>In&&u(),n}function jr(e){return JSON.parse(On(e))}function Fr(e){let n=T(e,["requestId"]);return {requestId:b(n.requestId)}}function Rn(e){return {status:R(e.status,Oe),appId:z(e.appId,V),instanceId:Pn(e.instanceId),requestId:b(e.requestId)}}function bn(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 Hr(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 bn(R(r.errorCode,Re),N(r,"causeCode")?R(r.causeCode,be):void 0)}let n=T(e,["status","appId","instanceId","requestId"]);return Rn({status:R(n.status,Oe),appId:z(n.appId,V),instanceId:Pn(n.instanceId),requestId:b(n.requestId)})}function G(e,n){return {state:"failed",errorCode:e,causeCode:n}}function Gr(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 Jr(e){if(xn(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 Vr(e){return xn(e.requestId)!==e.activeSessionId||e.lookup.kind!=="present"?"stale":Me(e.lookup.record.source,e.source)?"known":"stale"}export{ze as ANTIGRAVITY_MODEL_COMPATIBILITY,Er as APP_JOB_BRIDGE_DRAIN_TIMEOUT_MS,yr as APP_JOB_BRIDGE_ENV,hr as APP_JOB_BRIDGE_MAX_LINE_BYTES,_r as APP_JOB_BRIDGE_REPLY_TIMEOUT_MS,Ar as APP_JOB_BRIDGE_VERSION,cn as APP_JOB_CAPABILITY,ln as APP_JOB_CAPABILITY_VERSION,Ae as APP_JOB_DEADLINE_MS,cr as APP_JOB_MAX_PER_APP,un as APP_JOB_OPERATIONS,_e as APP_JOB_OUTCOMES,fn as APP_JOB_REFUSAL_CODES,fr as APP_JOB_RUN_REQUIRED,he as APP_JOB_STATES,Ee as APP_JOB_STOP_REASONS,Ie as APP_JOB_TRIGGERS,nr as APP_SCHEDULE_INERT_COMMAND,an as APP_SCHEDULE_INTERVALS_MINUTES,er as APP_SCHEDULE_MAX_PER_APP,dn as APP_SCHEDULE_PERIODIC_REASONS,ye as APP_SCHEDULE_TIMEOUT_MS,Qe as BUILTIN_THREAD_STATES,ae as BrowserFsAdapter,Je as CLAUDE_MODEL_COMPATIBILITY_PAIRS,ot as CLAUDE_OPUS_4_8_BASE_MODEL_ID,it as CLAUDE_OPUS_4_8_LEGACY_MODEL_ID,Mr as CREWX_OPEN_APP_CAPABILITY,Ce as CREWX_OPEN_APP_CAPABILITY_VERSION,Tn as CREWX_OPEN_APP_MAX_JSON_DEPTH,In as CREWX_OPEN_APP_MAX_PARAMS_BYTES,vr as CREWX_OPEN_APP_METHOD,Sr as CREWX_OPEN_APP_STATUS_METHOD,Oe as CREWX_OPEN_APP_SUCCESS_STATUSES,O as ConfigLoadError,Q as Crewx,J as CrewxOpenAppError,et as EFFORT_LEVELS,jt as MCP_APP_HOST_TOOL_ALLOWLIST,nt as PROVIDER_ARGV_EFFORTS,de as PROVIDER_ORDER,y as ProviderError,tr as SCHEDULE_TRIGGERS,Ze as THREAD_PRIORITIES,be as UI_APP_OPEN_CAUSE_CODES,Re as UI_APP_OPEN_ERROR_CODES,ge as UI_CONTENT_MEDIA_TYPES,Pr as appJobTriggerForActor,Jt as buildMcpAppContentActions,On as canonicalCrewxOpenAppPayload,Vn as classifyTaskError,Ot as compareProviders,Vt as contentActionsMatch,Cn as createCrewxOpenAppCapabilityDeclaration,bn as createCrewxOpenAppErrorResult,Br as createCrewxOpenAppRequestId,Rn as createCrewxOpenAppSuccessResult,L as createProvider,en as customStateLabel,Jr as decideCrewxOpenAppOpen,Vr as decideCrewxOpenAppStatus,Mt as getDefaultAgentProfile,mr as hasAppJobCapability,wt as hasThreadTitleKey,Te as isAppJobCode,gr as isAppJobDeadlineMs,gn as isAppJobOperation,xe as isAppJobPhase,or as isAppScheduleCode,ir as isAppScheduleIntervalMinutes,ar as isAppSchedulePeriodicReason,sr as isAppScheduleTimeoutMs,me as isMcpAppContentActions,Me as isSameCrewxOpenAppSourceBinding,le as isThreadPriority,ue as isThreadState,w as isUiContentMediaType,F as isValidUiAppInstanceId,Bt as matchesThreadTitleFilter,Dt as mergeThreadTitleMeta,pr as normalizeAppFilesRef,xt as normalizeClaudeMode,bt as normalizeProviderId,Cr as parseAppJobView,Ur as parseCrewxOpenAppCapabilityDeclaration,jr as parseCrewxOpenAppRequest,Hr as parseCrewxOpenAppResult,Fr as parseCrewxOpenAppStatusRequest,Lt as parseThreadPriorityFilter,Ut as parseThreadStateFilter,Et as parseYamlContent,pe as providerRank,nn as readThreadTitleMeta,ee as redactTechnicalMessage,Z as registerProviderFactory,qe as resolveAntigravityModel,Ve as resolveCatalogModelId,Gr as resolveCrewxOpenAppActionOutcome,se as resolveProviderCatalogModel,Nt as threadTitleSearchHaystack};
|
|
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};
|
package/dist/index.d.ts
CHANGED
|
@@ -118,6 +118,7 @@ export type { CliProviderAdapter, ParseEventContext } from './provider/cli/adapt
|
|
|
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
120
|
export { queryAllCliProviderMetas, queryOpencodeModels } from './provider/cli/meta';
|
|
121
|
+
export { getOpenCodeDataDir, getOpenCodeDataEnv } from './provider/cli/adapters/opencode-data-dir';
|
|
121
122
|
export { isMetadataOnlyProtocolLine, isProtocolOnlyText, shouldSkipRawStdoutJsonFallback, } from './provider/cli/protocol-envelope';
|
|
122
123
|
export { ConsoleDecoder, decodeConsoleBuffer, decodeConsoleBufferAsync, getWindowsConsoleCodePage, parseWindowsConsoleCodePage, primeWindowsConsoleCodePage, } from './internal/console-decoder';
|
|
123
124
|
export type { ConsoleBufferDecodeOptions, ConsoleDecoderOptions, } from './internal/console-decoder';
|