@crewx/sdk 0.9.0-rc.161 → 0.9.0-rc.163

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.
Files changed (34) hide show
  1. package/dist/agent-interceptor/chain.d.ts +25 -0
  2. package/dist/agent-interceptor/index.d.ts +6 -0
  3. package/dist/agent-interceptor/model-runner.d.ts +19 -0
  4. package/dist/agent-interceptor/program-runner.d.ts +13 -0
  5. package/dist/agent-interceptor/protocol.d.ts +68 -0
  6. package/dist/agent-interceptor/run-stop.d.ts +3 -0
  7. package/dist/agent-interceptor/schema.d.ts +267 -0
  8. package/dist/agent-interceptor/types.d.ts +88 -0
  9. package/dist/esm/index.js +305 -297
  10. package/dist/esm/plugins/index.js +86 -81
  11. package/dist/esm/publish/index.js +1 -1
  12. package/dist/esm/repository/index.js +98 -93
  13. package/dist/esm/skills/index.js +1 -1
  14. package/dist/events/types.d.ts +12 -0
  15. package/dist/facade/Crewx.d.ts +9 -0
  16. package/dist/index.browser.js +1 -1
  17. package/dist/index.d.ts +6 -1
  18. package/dist/index.js +307 -299
  19. package/dist/plugins/index.js +83 -78
  20. package/dist/provider/bridge.d.ts +5 -1
  21. package/dist/provider/cli/adapter.types.d.ts +9 -0
  22. package/dist/provider-account/accounts.d.ts +15 -0
  23. package/dist/provider-account/index.d.ts +5 -0
  24. package/dist/provider-account/registry.d.ts +30 -0
  25. package/dist/provider-account/types.d.ts +40 -0
  26. package/dist/publish/index.js +1 -1
  27. package/dist/repository/index.js +99 -94
  28. package/dist/repository/task.repository.d.ts +7 -0
  29. package/dist/repository/thread.repository.d.ts +1 -0
  30. package/dist/skills/index.js +1 -1
  31. package/dist/types/index.d.ts +33 -0
  32. package/dist/types/task-log.types.d.ts +3 -1
  33. package/dist/utils/id.d.ts +1 -1
  34. package/package.json +1 -1
@@ -31,6 +31,17 @@ export interface TaskProviderInputEvent extends BaseEvent {
31
31
  runEpoch: number;
32
32
  input: string;
33
33
  keyWrapSkipped: boolean;
34
+ interceptedRequest?: boolean;
35
+ }
36
+ export interface TaskRunUpdateEvent extends BaseEvent {
37
+ agentRef: string;
38
+ runEpoch: number;
39
+ pid?: number;
40
+ model?: string;
41
+ renderedPrompt?: string;
42
+ securityKey?: string;
43
+ codingAgentCommand?: string;
44
+ metadata?: Record<string, unknown>;
34
45
  }
35
46
  export interface TaskEndEvent extends BaseEvent {
36
47
  agentRef: string;
@@ -105,6 +116,7 @@ export interface CrewxEvents {
105
116
  'task:end': TaskEndEvent;
106
117
  'task:output': TaskOutputEvent;
107
118
  'task:provider-input': TaskProviderInputEvent;
119
+ 'task:run-update': TaskRunUpdateEvent;
108
120
  'tool:observed:before': ToolBeforeEvent;
109
121
  'tool:observed:after': ToolAfterEvent;
110
122
  'adapter:lifecycle': AdapterLifecycleEvent;
@@ -1,4 +1,5 @@
1
1
  import type { AgentListSnapshot } from '../agent/agent-list-view';
2
+ import { type InterceptorLaneRun, type InterceptorPhase } from '../agent-interceptor';
2
3
  import { TypedEventEmitter } from '../events/TypedEventEmitter';
3
4
  import type { CrewxPlugin } from '../plugin';
4
5
  import type { IFsAdapter } from '../platform/IFsAdapter';
@@ -71,11 +72,14 @@ export declare class Crewx extends TypedEventEmitter {
71
72
  private readonly _activeAdapters;
72
73
  private readonly _pendingThreads;
73
74
  private readonly _activeTasks;
75
+ private readonly _activeInterceptorPids;
76
+ private readonly _interceptorRunTaskIds;
74
77
  private readonly _remoteFactory?;
75
78
  private readonly _taskTicketIssuer?;
76
79
  private readonly _remoteTargets;
77
80
  private readonly _detachedRemoteTargets;
78
81
  private readonly _additionalArgsProvider?;
82
+ private readonly _onRateLimitObserved?;
79
83
  private _globalSettings?;
80
84
  private readonly _callerIdentityOverrides;
81
85
  private constructor();
@@ -162,8 +166,13 @@ export declare class Crewx extends TypedEventEmitter {
162
166
  protected emit<K extends CrewxEventName>(event: K, payload: CrewxEventPayload<K>): void;
163
167
  private emitToolEvents;
164
168
  private emitTaskLogEntries;
169
+ private emitInterceptorSteps;
170
+ private interceptorRunContext;
165
171
  private tryParseJson;
172
+ private _resolveRunAccount;
173
+ private _reportRateLimit;
166
174
  query(agentRef: string, message: string, options?: QueryOptions): Promise<QueryResult>;
175
+ testAgentInterceptors(agentRef: string, phase: InterceptorPhase, text: string): Promise<InterceptorLaneRun | undefined>;
167
176
  continueQuery(threadId: string, toolResults: Array<{
168
177
  toolCallId: string;
169
178
  result: unknown;
@@ -3,4 +3,4 @@ import {load}from'js-yaml';import'js-tiktoken';import'js-tiktoken/lite';import k
3
3
 
4
4
  `).trim(),ot(t,1024)||void 0}function ot(e,t){let n=new TextEncoder;if(n.encode(e).byteLength<=t)return e;let r="",o=0;for(let i of e){let a=n.encode(i).byteLength;if(o+a>t)break;r+=i,o+=a;}return r}function it(e){let t=/\b(?:request|response|http)?\s*body\s*[:=]\s*/gim,n="",r=0,o;for(;(o=t.exec(e))!==null;){if(o.index<r)continue;let i=o.index+o[0].length,a=st(e,i),s=a>=0?a:e.indexOf(`
5
5
  `,i)>=0?e.indexOf(`
6
- `,i):e.length;n+=e.slice(r,o.index),n+=`[HTTP BODY ${f}]`,r=s;}return n+e.slice(r)}function st(e,t){let n=e[t];if(n==='"'||n==="'")return at(e,t,n);if(n!=="{"&&n!=="[")return -1;let r=[],o,i=false;for(let a=t;a<e.length;a+=1){let s=e[a];if(o){i?i=false:s==="\\"?i=true:s===o&&(o=void 0);continue}if(s==='"'||s==="'"){o=s;continue}if(s==="{"||s==="["){r.push(s);continue}if(s!=="}"&&s!=="]")continue;let d=r.pop();if(s==="}"&&d!=="{"||s==="]"&&d!=="[")return -1;if(r.length===0)return a+1}return -1}function at(e,t,n){let r=false;for(let o=t+1;o<e.length;o+=1){let i=e[o];if(r)r=false;else if(i==="\\")r=true;else if(i===n)return o+1}return -1}var pt=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"]),dt=new Set(["plan","plan-auto","read-only"]),ct={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"},lt=[{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 ut(e){try{if(!E(e)||e.status!=="failed")return J();let t=gt(e.error);if(ne(t.message))return J();let n=y(e.providerId)??t.provider??null,r=mt(e.logs),o=Me(t.code);if(o)return R(o,n,t.message,t);let i=N(t.providerCode)??N(t.code),a=i?te(i,t.message,{exitCode:_t(e.exitCode),mode:t.mode,fromProviderCodeField:!!t.providerCode}):void 0;if(a)return R(a,n,t.message,t,i);let s=yt(r);if(!ft(t)&&s&&(s.type==="user_stop"||ne(s.message)))return J();if(s){let l=At(s.code,s.providerCode,s.message);if(l)return R(l,n,s.message??t.message,t,s.providerCode??s.code,s,s.structuredFailure?"terminal":"envelope")}let d=ht(t.message,r);return d?R(d.code,n,d.message,t,d.terminal?.providerCode??d.terminal?.code,d.terminal,d.terminal?.structuredFailure?"terminal":"envelope"):R("PROCESS_FAILED",n,t.message,t)}catch{return {errorCode:"PROCESS_FAILED",errorProvider:null}}}function J(){return {errorCode:null,errorProvider:null}}function R(e,t,n,r,o,i,a="envelope"){let s={};if(i?.resetAt!==void 0&&(s.resetAt=i.resetAt),r?.model&&(s.model=r.model),r?.mode&&(s.mode=r.mode),i?.type&&(s.upstreamType=i.type),o&&(s.upstreamCode=o),e==="CLI_NOT_AVAILABLE"||e==="CLI_UPDATE_REQUIRED"){let A=t?.startsWith("cli/")?t.slice(4):void 0;A&&(s.cliName=A);}let d=a==="terminal"?n:r?.message,l=a==="terminal"?i?.structuredFailure?d:void 0:r?.isEnvelope?d:void 0,c=Z(l);return c&&(s.technicalMessage=c),Object.keys(s).length>0?{errorCode:e,errorProvider:t,errorMeta:s}:{errorCode:e,errorProvider:t}}function gt(e){let t=typeof e=="string"?C(e):e;return E(t)?{isEnvelope:true,code:y(t.code),providerCode:y(t.providerCode),message:y(t.message)??y(t.error),provider:y(t.provider)??y(t.errorProvider),model:y(t.model),mode:y(t.mode)}:{isEnvelope:false,...typeof e=="string"&&e.trim()?{message:e.trim()}:{}}}function C(e){try{return JSON.parse(e)}catch{return}}function ft(e){return !!(e.code||e.providerCode||e.message)}function mt(e){let t=[];if(typeof e=="string"){let n=C(e);if(Array.isArray(n))t.push(...n);else for(let r of e.split(/\r?\n/)){let o=C(r.trim());o!==void 0&&t.push(o);}}else Array.isArray(e)?t.push(...e):E(e)&&t.push(e);return t.flatMap(x)}function x(e){if(!E(e))return [];let t=y(e.type),n=y(e.message);if(n&&!t){let o=C(n);if(Array.isArray(o))return o.flatMap(x);if(E(o))return x(o);let i=n.split(/\r?\n/).map(a=>C(a.trim())).filter(a=>E(a));return i.length>0?i.flatMap(x):e.level==="stderr"?[{type:"stderr",message:n,rank:1,structuredFailure:false}]:x({type:"info",content:n})}if(t==="rate_limit_event"){let o=Oe(e.rate_limit_info);return y(o?.status)!=="rejected"?[]:[{type:t,code:"RATE_LIMITED",message:S(o?.message,e.message),resetAt:Et(o?.resetsAt),rank:4,structuredFailure:true}]}if(t==="turn.failed"||t==="error"){let o=Oe(e.error),i=S(o?.message,o?.detail,e.message,e.errorMessage,e.content),a=S(o?.code,e.code,e.errorCode);return [{type:t,code:a,providerCode:S(o?.providerCode,e.providerCode),message:i,rank:t==="turn.failed"?3:2,structuredFailure:true}]}if(t==="text"&&typeof e.content=="string"){let o=C(e.content);if(E(o))return x(o)}let r=S(e.errorMessage,e.content);return r&&ne(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 yt(e){return [...e].sort((t,n)=>n.rank-t.rank)[0]}function At(e,t,n){let r=Me(e);if(r)return r;if(e){let o=te(e,n);if(o)return o}if(t){let o=te(t,n);if(o)return o}return ee(n)}function ht(e,t){let n=ee(e);if(n)return {code:n,message:e};for(let r of [...t].sort((o,i)=>i.rank-o.rank)){let o=ee(r.message);if(o)return {code:o,message:r.message,terminal:r}}}function ee(e){if(!(typeof e!="string"||!e.trim()))return lt.find(t=>t.pattern.test(e))?.code}function te(e,t,n){let r=N(e)??e;if(r==="MODEL_UNAVAILABLE")return /(?:capacity|overloaded|busy)/i.test(t??"")?"MODEL_AT_CAPACITY":"MODEL_NOT_SUPPORTED";if(r==="EMPTY_OUTPUT"&&n?.fromProviderCodeField===true&&n.exitCode===0&&Tt(n.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return ct[r]}function Me(e){let t=N(e);return t&&pt.has(t)?t:void 0}function N(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function Tt(e){return typeof e=="string"&&dt.has(e.trim().toLowerCase())}function ne(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 E(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Oe(e){return E(e)?e:void 0}function y(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function Et(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function _t(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function S(...e){return e.map(y).find(t=>!!t)}var It=["none","minimal","low","medium","high","xhigh","max","ultra"],xt={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 L={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-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-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:[],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.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-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",contextWindowTokens:1e6,tier:"flagship"},{id:"gpt-oss-120b",name:"GPT-OSS 120B",contextWindowTokens:128e3,tier:"balanced"}],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.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-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"]}]}},re={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(L).map(([e,t])=>[e,t.models]));var Ot="claude-opus-4-8",Mt="claude-opus-4-8[1m]",Re=[{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 Rt=new Map(Re.map(({baseModelId:e,catalogModelId:t})=>[e,t]));function Se(e){return Rt.get(e)??e}var we=[{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"}],St=new Map(we.map(({legacyId:e,model:t,effort:n})=>[e,n===void 0?{model:t}:{model:t,effort:n}]));function ke(e){if(!e)return {};let t=St.get(e);return t?{...t}:{model:e}}function oe(e,t){return e==="antigravity"||e==="cli/antigravity"?ke(t):t===void 0?{}:{model:Se(t)}}var ve=30,be=80;Object.keys(kt.special_tokens);var vt=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()),bt=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),Dt=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())]),working_directory:z$1.string().optional(),description:z$1.string().optional(),tags:z$1.array(z$1.string()).optional(),inline:vt.optional(),skills:bt}).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 Ut=z$1.number().finite().int().min(ve).max(be),Nt=z$1.object({inputBudgetPercent:Ut.optional()}).catchall(z$1.unknown()),Lt=z$1.object({continuity:Nt.optional()}).catchall(z$1.unknown()),Bt=z$1.object({bin_resolution:z$1.enum(["global_first","local_first"]).optional(),dreaming:Lt.optional(),wi:z$1.object({boards:z$1.array(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()),De=z$1.object({agents:z$1.array(Dt).optional(),hooks:z$1.array(z$1.unknown()).optional(),settings:Bt.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());var P=class extends Error{constructor(n,r){super(n);this.cause=r;this.name="ConfigLoadError";}cause};function jt(e){if(!e||typeof e!="string"||!e.trim())throw new P("YAML content must be a non-empty string");let t;try{t=load(e);}catch(o){throw new P(`YAML parse error: ${o.message}`,o)}let n=Ft(t),r=De.safeParse(n);if(!r.success)throw new P(`Config validation error: ${r.error.message}`);return r.data}function Ft(e){if(!e||typeof e!="object")return {agents:[]};let t=e;if(t.agents&&typeof t.agents=="object"&&!Array.isArray(t.agents)){let n=t.agents,r=Object.entries(n).map(([o,i])=>({id:o,...i&&typeof i=="object"?i:{}}));return {...t,agents:r}}return t.agents?t:{...t,agents:[]}}var Gt={auto:"default"};function zt(e){return Gt[e]??e}var Vt="crewx:fs:",ie=class{prefix;store;constructor(t){this.prefix=t?.prefix??Vt,this.store=t?.storage??new Map;}async readFile(t){let n=this.toKey(t),r=this.store.get(n);if(r===void 0)throw new Error(`BrowserFsAdapter: file not found: ${t}`);return r}async exists(t){return this.store.has(this.toKey(t))}resolvePath(...t){let n=t.map(a=>a.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),r=n.split("/"),o=[];for(let a of r)a==="."||a===""||(a===".."?o.pop():o.push(a));let i=o.join("/");return n.startsWith("/")?`/${i}`:i}isAbsolute(t){return t.startsWith("/")}setItem(t,n){this.store.set(this.toKey(t),n);}removeItem(t){this.store.delete(this.toKey(t));}keys(){return Array.from(this.store.keys()).filter(t=>t.startsWith(this.prefix)).map(t=>t.slice(this.prefix.length))}async readdir(t){let n=t.replace(/\\/g,"/").replace(/\/$/,""),r=this.toKey(n+"/"),o=[];for(let i of this.store.keys())if(i.startsWith(r)){let s=i.slice(r.length).split("/")[0];s&&!o.includes(s)&&o.push(s);}return o}toKey(t){return `${this.prefix}${t.replace(/\\/g,"/")}`}};var se=["codex","claude","grok","opencode","antigravity","copilot"];function Wt(e){let t=e.indexOf("/");return t===-1?e:e.slice(t+1)}function ae(e){let t=Wt(e),n=se.indexOf(t);return n===-1?se.length:n}function qt(e,t){return ae(e)-ae(t)}var $t=new Set(["claude","copilot","codex","grok","opencode"]);function Xt(e){if(!e)return "";if(e.startsWith("acp/")){let t=e.slice(4);if($t.has(t))return `cli/${t}`}return e}function B(e){return {mode:e.mode,effort:e.effort}}function Kt(e){let t=re.providers[e];if(!t)return;let n=e.startsWith("cli/")?e.slice(4):e,r=L[n]?.models.find(a=>a.recommended===true&&a.tier==="balanced")?.id??t.model,o={query:B(t.query),execute:B(t.execute)},i={query:B(t.query),execute:B(t.execute)};return {planner:{model:t.model,...o},worker:{model:r,...i}}}var Ne=["urgent","high","medium","low"],Le=["investigating","in-progress","in-review","on-hold","done"],w="custom:";var Yt=new Set(Ne),Qt=new Set(Le),Zt={urgent:"U \uAE34\uAE09 Urgent",high:"P0 \uAE09\uD568 High",medium:"P1 \uC911\uC694 Medium",low:"P2 \uBCF4\uD1B5 Low"},pe={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 Ue(e,t){return !t||t.includes(e)?t??e:`${e} ${t}`}function de(e){return typeof e=="string"&&Yt.has(e)}function ce(e){if(typeof e!="string")return false;if(Qt.has(e))return true;if(e.startsWith("c_"))return e.length>2;if(!e.startsWith(w))return false;let t=e.slice(w.length);return t.length>=1&&t.length<=20}function Be(e){if(e.startsWith(w))return e.slice(w.length)}function le(e){if(!e)return null;try{let t=JSON.parse(e);return !t||typeof t!="object"||Array.isArray(t)?null:t}catch{return null}}function Jt(e){let t=le(e);return !!t&&Object.prototype.hasOwnProperty.call(t,"threadTitle")}function He(e){let t=le(e);if(!t)return {};let n=t.threadTitle;if(!n||typeof n!="object"||Array.isArray(n))return {};let r=n,o={};return de(r.priority)&&(o.priority=r.priority),ce(r.state)&&(o.state=r.state),o}function en(e,t){let n=le(e)??{},r={...He(e)};return t.priority===null?delete r.priority:t.priority!==void 0&&(r.priority=t.priority),t.state===null?delete r.state:t.state!==void 0&&(r.state=t.state),r.priority===void 0&&r.state===void 0?delete n.threadTitle:n.threadTitle=r,Object.keys(n).length===0?null:JSON.stringify(n)}function tn(e,t=new Map){let n=[];return e.priority&&n.push(Ue(Zt[e.priority],t.get(e.priority))),e.state&&(e.state.startsWith(w)?n.push(Be(e.state)??""):pe[e.state]?n.push(Ue(pe[e.state],t.get(e.state))):t.has(e.state)?n.push(e.state,t.get(e.state)??""):e.state.startsWith("c_")?n.push(e.state):n.push(pe[e.state]??"")),n.filter(Boolean).join(" ")}function je(e,t){if(!e||e.trim().length===0)return;let n=new Set,r=false,o=false;for(let i of e.split(",")){let a=i.trim();if(a){if(a==="none"){r=true,o=true;continue}t(a)&&(n.add(a),o=true);}}if(o)return {values:n,includeNone:r}}function nn(e){return je(e,de)}function rn(e){return je(e,ce)}function on(e,t){return t?e?t.values.has(e):t.includeNone:true}var sn=["crewx_app_terminal_connect","crewx_app_html_viewer_open"];var ue=["text/plain","application/json"];var an=["__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(an);var Fe=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/;var pn=/^uic_[A-Za-z0-9_-]+$/,dn=/^[0-9a-f]{64}$/,h="MCP App content declarations are invalid";function v(e){return typeof e=="string"&&ue.includes(e)}function H(e){return typeof e=="string"&&e.length<=128&&pn.test(e)}function cn(e,t){try{let n=t,r=k(n,"actions");if(!ze(r))throw new Error(h);let o=[];for(let a of Object.keys(r)){let s=k(r,a);if(s===null||typeof s!="object"||Array.isArray(s))throw new Error(h);let d=Object.getOwnPropertyDescriptor(s,"content");if(d===void 0)continue;if(!Object.hasOwn(d,"value"))throw new Error(h);let l=un(d.value);o.push({actionId:a,...l});}if(o.length===0)return;o.sort((a,s)=>a.actionId<s.actionId?-1:a.actionId>s.actionId?1:0);let i={schemaVersion:1,instanceId:e,definition:{id:k(n,"id"),version:k(n,"version"),hash:k(n,"hash")},actions:o};if(!ge(i))throw new Error(h);for(let a of o)a.in!==void 0&&Object.freeze(a.in),a.out!==void 0&&Object.freeze(a.out),Object.freeze(a);return Object.freeze(o),Object.freeze(i.definition),Object.freeze(i)}catch{throw new Error(h)}}function ge(e){try{if(!j(e,["schemaVersion","instanceId","definition","actions"]))return !1;let t=e;if(t.schemaVersion!==1||!H(t.instanceId)||!mn(t.definition))return !1;let n=t.actions;if(!En(n)||n.length===0)return !1;let r;for(let o=0;o<n.length;o+=1){let i=n[o];if(!yn(i)||r!==void 0&&!(r<i.actionId))return !1;r=i.actionId;}return !0}catch{return false}}function ln(e,t,n){return ge(e)?e.instanceId===t&&e.definition.id===n.id&&e.definition.version===n.version&&e.definition.hash===n.hash:false}function un(e){if(!b(e,["in","out"]))throw new Error(h);let t=e,n=Object.hasOwn(t,"in"),r=Object.hasOwn(t,"out");if(!n&&!r)throw new Error(h);return {...n?{in:gn(t.in)}:{},...r?{out:fn(t.out)}:{}}}function gn(e){if(!b(e,["mediaType","required"],["mediaType"]))throw new Error(h);let t=e,n=t.mediaType,r=Object.hasOwn(t,"required")?t.required:false;if(!v(n)||typeof r!="boolean")throw new Error(h);return {mediaType:n,required:r}}function fn(e){if(!b(e,["mediaType","range"],["mediaType"]))throw new Error(h);let t=e,n=t.mediaType,r=Object.hasOwn(t,"range")?t.range:false;if(!v(n)||typeof r!="boolean")throw new Error(h);return {mediaType:n,range:r}}function mn(e){if(!j(e,["id","version","hash"]))return false;let t=e;return Ge(t.id)&&Tn(t.version)&&typeof t.hash=="string"&&dn.test(t.hash)}function yn(e){if(!b(e,["actionId","in","out"],["actionId"]))return false;let t=e,n=t.actionId,r=Object.hasOwn(t,"in"),o=Object.hasOwn(t,"out");return !(typeof n!="string"||!Ge(n)||!r&&!o||r&&!An(t.in)||o&&!hn(t.out))}function An(e){if(!j(e,["mediaType","required"]))return false;let t=e;return v(t.mediaType)&&typeof t.required=="boolean"}function hn(e){if(!j(e,["mediaType","range"]))return false;let t=e;return v(t.mediaType)&&typeof t.range=="boolean"}function Ge(e){return typeof e=="string"&&Fe.test(e)}function Tn(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function En(e){if(!Array.isArray(e))return false;let t=Reflect.ownKeys(e);if(t.length!==e.length+1||t[e.length]!=="length")return false;for(let n=0;n<e.length;n+=1){if(t[n]!==String(n))return false;let r=Object.getOwnPropertyDescriptor(e,String(n));if(r===void 0||!Object.hasOwn(r,"value"))return false}return true}function j(e,t){return b(e,t,t)}function b(e,t,n=[]){if(!ze(e))return false;let r=Reflect.ownKeys(e);if(r.length>t.length||r.length<n.length)return false;for(let o of r){if(typeof o!="string"||!t.includes(o))return false;let i=Object.getOwnPropertyDescriptor(e,o);if(i===void 0||!Object.hasOwn(i,"value"))return false}return n.every(o=>Object.hasOwn(e,o))}function ze(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function k(e,t){if(e===null||typeof e!="object")return;let n=Object.getOwnPropertyDescriptor(e,t);return n!==void 0&&Object.hasOwn(n,"value")?n.value:void 0}var Ve=[5,15,30,60],fe=Object.freeze({min:15e3,max:6e5,default:3e5}),_n=1;var In="exit 78",We=["standby","disabled","draining","degraded"],xn=["cron","cron_manual","app_enable"],Cn=/^[A-Z][A-Z0-9_]{0,63}$/u;function Pn(e){return typeof e=="string"&&Cn.test(e)}function On(e){return Ve.includes(e)}function Mn(e){return Number.isSafeInteger(e)&&e>=fe.min&&e<=fe.max}function Rn(e){return We.includes(e)}var Sn="crewx/openApp",ye=1,wn="ui/crewx-open-app",kn="ui/crewx-open-app-status",$e=32768,Xe=8,Ae=["opened","completed","pending"],he=["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"],Te=["RECEIPT_FAILED","RECEIPT_REJECTED","RECEIPT_CONFLICTED","RECEIPT_EXPIRED","LEDGER_MISSING","LEDGER_EXPIRED"],G=class extends Error{constructor(n,r){super(n);this.errorCode=n;this.causeCode=r;}errorCode;causeCode;name="CrewxOpenAppError"},vn=/^[A-Za-z0-9-]{8,64}$/,bn=/^[A-Za-z0-9_-]{1,128}$/,z=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/,Dn=new TextEncoder,qe=/\p{Surrogate}/u,Un=new Set(["__proto__","constructor","prototype"]);function u(){throw new G("UI_APP_OPEN_INVALID")}function D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function W(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function _(e,t,n=[]){W(e)||u();let r=new Set([...t,...n]);for(let o of Object.keys(e))r.has(o)||u();for(let o of t)D(e,o)||u();return e}function V(e,t){return (typeof e!="string"||!t.test(e))&&u(),e}function q(e){return (typeof e!="string"||!vn.test(e))&&u(),e}function M(e){(typeof e!="string"||!bn.test(e))&&u();let t=e.indexOf("_");return (t<0||t===e.length-1)&&u(),q(e.slice(0,t)),e}function Ke(e){return M(e).slice(0,e.indexOf("_"))}function Ye(e){return H(e)||u(),e}function O(e,t){let n=t.find(r=>r===e);return n===void 0&&u(),n}function me(e,t){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 qe.test(e)&&u(),JSON.stringify(e);if(t>Xe&&u(),Array.isArray(e)){let o=[];for(let i=0;i<e.length;i+=1)D(e,String(i))||u(),o.push(me(e[i],t+1));return `[${o.join(",")}]`}W(e)||u();let n=e;return `{${Object.keys(n).sort().map(o=>((Un.has(o)||qe.test(o))&&u(),`${JSON.stringify(o)}:${me(n[o],t+1)}`)).join(",")}}`}function Nn(e){let t=_(e,["requestId","appId"],["action"]),n=M(t.requestId),r=V(t.appId,z);if(!D(t,"action"))return {requestId:n,appId:r};let o=_(t.action,["actionId","input"]),i=o.input;return W(i)||u(),{requestId:n,appId:r,action:{actionId:V(o.actionId,z),input:i}}}function Qe(e){return {version:ye,sessionId:q(e)}}function Ln(e){let t=_(e,["version","sessionId"]);return t.version!==ye&&u(),Qe(q(t.sessionId))}function Bn(e,t){return typeof t!="string"&&u(),M(`${q(e)}_${t}`)}function Ze(e){let t=me(Nn(e),1);return Dn.encode(t).byteLength>$e&&u(),t}function Hn(e){return JSON.parse(Ze(e))}function jn(e){let t=_(e,["requestId"]);return {requestId:M(t.requestId)}}function Je(e){return {status:O(e.status,Ae),appId:V(e.appId,z),instanceId:Ye(e.instanceId),requestId:M(e.requestId)}}function et(e,t){let n=O(e,he);return t===void 0?{isError:true,_meta:{errorCode:n}}:{isError:true,_meta:{errorCode:n,causeCode:O(t,Te)}}}function Fn(e){if(W(e)||u(),D(e,"isError")){let n=_(e,["isError","_meta"]);n.isError!==true&&u();let r=_(n._meta,["errorCode"],["causeCode"]);return et(O(r.errorCode,he),D(r,"causeCode")?O(r.causeCode,Te):void 0)}let t=_(e,["status","appId","instanceId","requestId"]);return Je({status:O(t.status,Ae),appId:V(t.appId,z),instanceId:Ye(t.instanceId),requestId:M(t.requestId)})}function F(e,t){return {state:"failed",errorCode:e,causeCode:t}}function Gn(e){if(e.kind==="pending"||e.status==="requested")return {state:"pending"};if(e.outcome==="succeeded")return {state:"completed"};switch(e.outcome){case "rejected":return F("UI_APP_OPEN_REJECTED","RECEIPT_REJECTED");case "conflicted":return F("UI_APP_OPEN_STALE","RECEIPT_CONFLICTED");case "expired":return F("UI_APP_OPEN_STALE","RECEIPT_EXPIRED");default:return F("UI_APP_OPEN_FAILED","RECEIPT_FAILED")}}function Ee(e,t){return e.workspaceId===t.workspaceId&&e.threadId===t.threadId&&e.instanceId===t.instanceId&&e.definition.id===t.definition.id&&e.definition.version===t.definition.version&&e.definition.hash===t.definition.hash&&e.entryHash===t.entryHash}function zn(e){if(Ke(e.requestId)!==e.activeSessionId)return "stale";let{lookup:t}=e;return t.kind==="absent"?t.capacity==="full"?"busy":"new":Ee(t.record.source,e.source)&&t.record.payloadDigest===e.payloadDigest?"known":"conflict"}function Vn(e){return Ke(e.requestId)!==e.activeSessionId||e.lookup.kind!=="present"?"stale":Ee(e.lookup.record.source,e.source)?"known":"stale"}export{we as ANTIGRAVITY_MODEL_COMPATIBILITY,In as APP_SCHEDULE_INERT_COMMAND,Ve as APP_SCHEDULE_INTERVALS_MINUTES,_n as APP_SCHEDULE_MAX_PER_APP,We as APP_SCHEDULE_PERIODIC_REASONS,fe as APP_SCHEDULE_TIMEOUT_MS,Le as BUILTIN_THREAD_STATES,ie as BrowserFsAdapter,Re as CLAUDE_MODEL_COMPATIBILITY_PAIRS,Ot as CLAUDE_OPUS_4_8_BASE_MODEL_ID,Mt as CLAUDE_OPUS_4_8_LEGACY_MODEL_ID,Sn as CREWX_OPEN_APP_CAPABILITY,ye as CREWX_OPEN_APP_CAPABILITY_VERSION,Xe as CREWX_OPEN_APP_MAX_JSON_DEPTH,$e as CREWX_OPEN_APP_MAX_PARAMS_BYTES,wn as CREWX_OPEN_APP_METHOD,kn as CREWX_OPEN_APP_STATUS_METHOD,Ae as CREWX_OPEN_APP_SUCCESS_STATUSES,P as ConfigLoadError,Q as Crewx,G as CrewxOpenAppError,It as EFFORT_LEVELS,sn as MCP_APP_HOST_TOOL_ALLOWLIST,xt as PROVIDER_ARGV_EFFORTS,se as PROVIDER_ORDER,m as ProviderError,xn as SCHEDULE_TRIGGERS,Ne as THREAD_PRIORITIES,Te as UI_APP_OPEN_CAUSE_CODES,he as UI_APP_OPEN_ERROR_CODES,ue as UI_CONTENT_MEDIA_TYPES,cn as buildMcpAppContentActions,Ze as canonicalCrewxOpenAppPayload,ut as classifyTaskError,qt as compareProviders,ln as contentActionsMatch,Qe as createCrewxOpenAppCapabilityDeclaration,et as createCrewxOpenAppErrorResult,Bn as createCrewxOpenAppRequestId,Je as createCrewxOpenAppSuccessResult,U as createProvider,Be as customStateLabel,zn as decideCrewxOpenAppOpen,Vn as decideCrewxOpenAppStatus,Kt as getDefaultAgentProfile,Jt as hasThreadTitleKey,Pn as isAppScheduleCode,On as isAppScheduleIntervalMinutes,Rn as isAppSchedulePeriodicReason,Mn as isAppScheduleTimeoutMs,ge as isMcpAppContentActions,Ee as isSameCrewxOpenAppSourceBinding,de as isThreadPriority,ce as isThreadState,v as isUiContentMediaType,H as isValidUiAppInstanceId,on as matchesThreadTitleFilter,en as mergeThreadTitleMeta,zt as normalizeClaudeMode,Xt as normalizeProviderId,Ln as parseCrewxOpenAppCapabilityDeclaration,Hn as parseCrewxOpenAppRequest,Fn as parseCrewxOpenAppResult,jn as parseCrewxOpenAppStatusRequest,nn as parseThreadPriorityFilter,rn as parseThreadStateFilter,jt as parseYamlContent,ae as providerRank,He as readThreadTitleMeta,Z as redactTechnicalMessage,Y as registerProviderFactory,ke as resolveAntigravityModel,Se as resolveCatalogModelId,Gn as resolveCrewxOpenAppActionOutcome,oe as resolveProviderCatalogModel,tn as threadTitleSearchHaystack};
6
+ `,i):e.length;n+=e.slice(r,o.index),n+=`[HTTP BODY ${f}]`,r=s;}return n+e.slice(r)}function st(e,t){let n=e[t];if(n==='"'||n==="'")return at(e,t,n);if(n!=="{"&&n!=="[")return -1;let r=[],o,i=false;for(let a=t;a<e.length;a+=1){let s=e[a];if(o){i?i=false:s==="\\"?i=true:s===o&&(o=void 0);continue}if(s==='"'||s==="'"){o=s;continue}if(s==="{"||s==="["){r.push(s);continue}if(s!=="}"&&s!=="]")continue;let d=r.pop();if(s==="}"&&d!=="{"||s==="]"&&d!=="[")return -1;if(r.length===0)return a+1}return -1}function at(e,t,n){let r=false;for(let o=t+1;o<e.length;o+=1){let i=e[o];if(r)r=false;else if(i==="\\")r=true;else if(i===n)return o+1}return -1}var pt=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"]),dt=new Set(["plan","plan-auto","read-only"]),ct={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"},lt=[{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 ut(e){try{if(!E(e)||e.status!=="failed")return J();let t=gt(e.error);if(ne(t.message))return J();let n=y(e.providerId)??t.provider??null,r=mt(e.logs),o=Me(t.code);if(o)return R(o,n,t.message,t);let i=L(t.providerCode)??L(t.code),a=i?te(i,t.message,{exitCode:_t(e.exitCode),mode:t.mode,fromProviderCodeField:!!t.providerCode}):void 0;if(a)return R(a,n,t.message,t,i);let s=yt(r);if(!ft(t)&&s&&(s.type==="user_stop"||ne(s.message)))return J();if(s){let l=At(s.code,s.providerCode,s.message);if(l)return R(l,n,s.message??t.message,t,s.providerCode??s.code,s,s.structuredFailure?"terminal":"envelope")}let d=ht(t.message,r);return d?R(d.code,n,d.message,t,d.terminal?.providerCode??d.terminal?.code,d.terminal,d.terminal?.structuredFailure?"terminal":"envelope"):R("PROCESS_FAILED",n,t.message,t)}catch{return {errorCode:"PROCESS_FAILED",errorProvider:null}}}function J(){return {errorCode:null,errorProvider:null}}function R(e,t,n,r,o,i,a="envelope"){let s={};if(i?.resetAt!==void 0&&(s.resetAt=i.resetAt),r?.model&&(s.model=r.model),r?.mode&&(s.mode=r.mode),i?.type&&(s.upstreamType=i.type),o&&(s.upstreamCode=o),e==="CLI_NOT_AVAILABLE"||e==="CLI_UPDATE_REQUIRED"){let A=t?.startsWith("cli/")?t.slice(4):void 0;A&&(s.cliName=A);}let d=a==="terminal"?n:r?.message,l=a==="terminal"?i?.structuredFailure?d:void 0:r?.isEnvelope?d:void 0,c=Z(l);return c&&(s.technicalMessage=c),Object.keys(s).length>0?{errorCode:e,errorProvider:t,errorMeta:s}:{errorCode:e,errorProvider:t}}function gt(e){let t=typeof e=="string"?C(e):e;return E(t)?{isEnvelope:true,code:y(t.code),providerCode:y(t.providerCode),message:y(t.message)??y(t.error),provider:y(t.provider)??y(t.errorProvider),model:y(t.model),mode:y(t.mode)}:{isEnvelope:false,...typeof e=="string"&&e.trim()?{message:e.trim()}:{}}}function C(e){try{return JSON.parse(e)}catch{return}}function ft(e){return !!(e.code||e.providerCode||e.message)}function mt(e){let t=[];if(typeof e=="string"){let n=C(e);if(Array.isArray(n))t.push(...n);else for(let r of e.split(/\r?\n/)){let o=C(r.trim());o!==void 0&&t.push(o);}}else Array.isArray(e)?t.push(...e):E(e)&&t.push(e);return t.flatMap(x)}function x(e){if(!E(e))return [];let t=y(e.type),n=y(e.message);if(n&&!t){let o=C(n);if(Array.isArray(o))return o.flatMap(x);if(E(o))return x(o);let i=n.split(/\r?\n/).map(a=>C(a.trim())).filter(a=>E(a));return i.length>0?i.flatMap(x):e.level==="stderr"?[{type:"stderr",message:n,rank:1,structuredFailure:false}]:x({type:"info",content:n})}if(t==="rate_limit_event"){let o=Oe(e.rate_limit_info);return y(o?.status)!=="rejected"?[]:[{type:t,code:"RATE_LIMITED",message:w(o?.message,e.message),resetAt:Et(o?.resetsAt),rank:4,structuredFailure:true}]}if(t==="turn.failed"||t==="error"){let o=Oe(e.error),i=w(o?.message,o?.detail,e.message,e.errorMessage,e.content),a=w(o?.code,e.code,e.errorCode);return [{type:t,code:a,providerCode:w(o?.providerCode,e.providerCode),message:i,rank:t==="turn.failed"?3:2,structuredFailure:true}]}if(t==="text"&&typeof e.content=="string"){let o=C(e.content);if(E(o))return x(o)}let r=w(e.errorMessage,e.content);return r&&ne(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 yt(e){return [...e].sort((t,n)=>n.rank-t.rank)[0]}function At(e,t,n){let r=Me(e);if(r)return r;if(e){let o=te(e,n);if(o)return o}if(t){let o=te(t,n);if(o)return o}return ee(n)}function ht(e,t){let n=ee(e);if(n)return {code:n,message:e};for(let r of [...t].sort((o,i)=>i.rank-o.rank)){let o=ee(r.message);if(o)return {code:o,message:r.message,terminal:r}}}function ee(e){if(!(typeof e!="string"||!e.trim()))return lt.find(t=>t.pattern.test(e))?.code}function te(e,t,n){let r=L(e)??e;if(r==="MODEL_UNAVAILABLE")return /(?:capacity|overloaded|busy)/i.test(t??"")?"MODEL_AT_CAPACITY":"MODEL_NOT_SUPPORTED";if(r==="EMPTY_OUTPUT"&&n?.fromProviderCodeField===true&&n.exitCode===0&&Tt(n.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return ct[r]}function Me(e){let t=L(e);return t&&pt.has(t)?t:void 0}function L(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function Tt(e){return typeof e=="string"&&dt.has(e.trim().toLowerCase())}function ne(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 E(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Oe(e){return E(e)?e:void 0}function y(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function Et(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function _t(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function w(...e){return e.map(y).find(t=>!!t)}var It=["none","minimal","low","medium","high","xhigh","max","ultra"],xt={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 N={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-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-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:[],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.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-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",contextWindowTokens:1e6,tier:"flagship"},{id:"gpt-oss-120b",name:"GPT-OSS 120B",contextWindowTokens:128e3,tier:"balanced"}],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.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-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"]}]}},re={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(N).map(([e,t])=>[e,t.models]));var Ot="claude-opus-4-8",Mt="claude-opus-4-8[1m]",Re=[{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 Rt=new Map(Re.map(({baseModelId:e,catalogModelId:t})=>[e,t]));function we(e){return Rt.get(e)??e}var Se=[{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"}],wt=new Map(Se.map(({legacyId:e,model:t,effort:n})=>[e,n===void 0?{model:t}:{model:t,effort:n}]));function ke(e){if(!e)return {};let t=wt.get(e);return t?{...t}:{model:e}}function oe(e,t){return e==="antigravity"||e==="cli/antigravity"?ke(t):t===void 0?{}:{model:we(t)}}var ve=30,be=80;Object.keys(kt.special_tokens);var vt=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()),bt=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),Dt=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:vt.optional(),skills:bt,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 Ut=z$1.number().finite().int().min(ve).max(be),Lt=z$1.object({inputBudgetPercent:Ut.optional()}).catchall(z$1.unknown()),Nt=z$1.object({continuity:Lt.optional()}).catchall(z$1.unknown()),Bt=z$1.object({bin_resolution:z$1.enum(["global_first","local_first"]).optional(),dreaming:Nt.optional(),wi:z$1.object({boards:z$1.array(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()),De=z$1.object({agents:z$1.array(Dt).optional(),hooks:z$1.array(z$1.unknown()).optional(),settings:Bt.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());var P=class extends Error{constructor(n,r){super(n);this.cause=r;this.name="ConfigLoadError";}cause};function jt(e){if(!e||typeof e!="string"||!e.trim())throw new P("YAML content must be a non-empty string");let t;try{t=load(e);}catch(o){throw new P(`YAML parse error: ${o.message}`,o)}let n=Ft(t),r=De.safeParse(n);if(!r.success)throw new P(`Config validation error: ${r.error.message}`);return r.data}function Ft(e){if(!e||typeof e!="object")return {agents:[]};let t=e;if(t.agents&&typeof t.agents=="object"&&!Array.isArray(t.agents)){let n=t.agents,r=Object.entries(n).map(([o,i])=>({id:o,...i&&typeof i=="object"?i:{}}));return {...t,agents:r}}return t.agents?t:{...t,agents:[]}}var Gt={auto:"default"};function zt(e){return Gt[e]??e}var Vt="crewx:fs:",ie=class{prefix;store;constructor(t){this.prefix=t?.prefix??Vt,this.store=t?.storage??new Map;}async readFile(t){let n=this.toKey(t),r=this.store.get(n);if(r===void 0)throw new Error(`BrowserFsAdapter: file not found: ${t}`);return r}async exists(t){return this.store.has(this.toKey(t))}resolvePath(...t){let n=t.map(a=>a.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),r=n.split("/"),o=[];for(let a of r)a==="."||a===""||(a===".."?o.pop():o.push(a));let i=o.join("/");return n.startsWith("/")?`/${i}`:i}isAbsolute(t){return t.startsWith("/")}setItem(t,n){this.store.set(this.toKey(t),n);}removeItem(t){this.store.delete(this.toKey(t));}keys(){return Array.from(this.store.keys()).filter(t=>t.startsWith(this.prefix)).map(t=>t.slice(this.prefix.length))}async readdir(t){let n=t.replace(/\\/g,"/").replace(/\/$/,""),r=this.toKey(n+"/"),o=[];for(let i of this.store.keys())if(i.startsWith(r)){let s=i.slice(r.length).split("/")[0];s&&!o.includes(s)&&o.push(s);}return o}toKey(t){return `${this.prefix}${t.replace(/\\/g,"/")}`}};var se=["codex","claude","grok","opencode","antigravity","copilot"];function Wt(e){let t=e.indexOf("/");return t===-1?e:e.slice(t+1)}function ae(e){let t=Wt(e),n=se.indexOf(t);return n===-1?se.length:n}function qt(e,t){return ae(e)-ae(t)}var $t=new Set(["claude","copilot","codex","grok","opencode"]);function Xt(e){if(!e)return "";if(e.startsWith("acp/")){let t=e.slice(4);if($t.has(t))return `cli/${t}`}return e}function B(e){return {mode:e.mode,effort:e.effort}}function Kt(e){let t=re.providers[e];if(!t)return;let n=e.startsWith("cli/")?e.slice(4):e,r=N[n]?.models.find(a=>a.recommended===true&&a.tier==="balanced")?.id??t.model,o={query:B(t.query),execute:B(t.execute)},i={query:B(t.query),execute:B(t.execute)};return {planner:{model:t.model,...o},worker:{model:r,...i}}}var Le=["urgent","high","medium","low"],Ne=["investigating","in-progress","in-review","on-hold","done"],S="custom:";var Yt=new Set(Le),Qt=new Set(Ne),Zt={urgent:"U \uAE34\uAE09 Urgent",high:"P0 \uAE09\uD568 High",medium:"P1 \uC911\uC694 Medium",low:"P2 \uBCF4\uD1B5 Low"},pe={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 Ue(e,t){return !t||t.includes(e)?t??e:`${e} ${t}`}function de(e){return typeof e=="string"&&Yt.has(e)}function ce(e){if(typeof e!="string")return false;if(Qt.has(e))return true;if(e.startsWith("c_"))return e.length>2;if(!e.startsWith(S))return false;let t=e.slice(S.length);return t.length>=1&&t.length<=20}function Be(e){if(e.startsWith(S))return e.slice(S.length)}function le(e){if(!e)return null;try{let t=JSON.parse(e);return !t||typeof t!="object"||Array.isArray(t)?null:t}catch{return null}}function Jt(e){let t=le(e);return !!t&&Object.prototype.hasOwnProperty.call(t,"threadTitle")}function He(e){let t=le(e);if(!t)return {};let n=t.threadTitle;if(!n||typeof n!="object"||Array.isArray(n))return {};let r=n,o={};return de(r.priority)&&(o.priority=r.priority),ce(r.state)&&(o.state=r.state),o}function en(e,t){let n=le(e)??{},r={...He(e)};return t.priority===null?delete r.priority:t.priority!==void 0&&(r.priority=t.priority),t.state===null?delete r.state:t.state!==void 0&&(r.state=t.state),r.priority===void 0&&r.state===void 0?delete n.threadTitle:n.threadTitle=r,Object.keys(n).length===0?null:JSON.stringify(n)}function tn(e,t=new Map){let n=[];return e.priority&&n.push(Ue(Zt[e.priority],t.get(e.priority))),e.state&&(e.state.startsWith(S)?n.push(Be(e.state)??""):pe[e.state]?n.push(Ue(pe[e.state],t.get(e.state))):t.has(e.state)?n.push(e.state,t.get(e.state)??""):e.state.startsWith("c_")?n.push(e.state):n.push(pe[e.state]??"")),n.filter(Boolean).join(" ")}function je(e,t){if(!e||e.trim().length===0)return;let n=new Set,r=false,o=false;for(let i of e.split(",")){let a=i.trim();if(a){if(a==="none"){r=true,o=true;continue}t(a)&&(n.add(a),o=true);}}if(o)return {values:n,includeNone:r}}function nn(e){return je(e,de)}function rn(e){return je(e,ce)}function on(e,t){return t?e?t.values.has(e):t.includeNone:true}var sn=["crewx_app_terminal_connect","crewx_app_html_viewer_open"];var ue=["text/plain","application/json"];var an=["__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(an);var Fe=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/;var pn=/^uic_[A-Za-z0-9_-]+$/,dn=/^[0-9a-f]{64}$/,h="MCP App content declarations are invalid";function v(e){return typeof e=="string"&&ue.includes(e)}function H(e){return typeof e=="string"&&e.length<=128&&pn.test(e)}function cn(e,t){try{let n=t,r=k(n,"actions");if(!ze(r))throw new Error(h);let o=[];for(let a of Object.keys(r)){let s=k(r,a);if(s===null||typeof s!="object"||Array.isArray(s))throw new Error(h);let d=Object.getOwnPropertyDescriptor(s,"content");if(d===void 0)continue;if(!Object.hasOwn(d,"value"))throw new Error(h);let l=un(d.value);o.push({actionId:a,...l});}if(o.length===0)return;o.sort((a,s)=>a.actionId<s.actionId?-1:a.actionId>s.actionId?1:0);let i={schemaVersion:1,instanceId:e,definition:{id:k(n,"id"),version:k(n,"version"),hash:k(n,"hash")},actions:o};if(!ge(i))throw new Error(h);for(let a of o)a.in!==void 0&&Object.freeze(a.in),a.out!==void 0&&Object.freeze(a.out),Object.freeze(a);return Object.freeze(o),Object.freeze(i.definition),Object.freeze(i)}catch{throw new Error(h)}}function ge(e){try{if(!j(e,["schemaVersion","instanceId","definition","actions"]))return !1;let t=e;if(t.schemaVersion!==1||!H(t.instanceId)||!mn(t.definition))return !1;let n=t.actions;if(!En(n)||n.length===0)return !1;let r;for(let o=0;o<n.length;o+=1){let i=n[o];if(!yn(i)||r!==void 0&&!(r<i.actionId))return !1;r=i.actionId;}return !0}catch{return false}}function ln(e,t,n){return ge(e)?e.instanceId===t&&e.definition.id===n.id&&e.definition.version===n.version&&e.definition.hash===n.hash:false}function un(e){if(!b(e,["in","out"]))throw new Error(h);let t=e,n=Object.hasOwn(t,"in"),r=Object.hasOwn(t,"out");if(!n&&!r)throw new Error(h);return {...n?{in:gn(t.in)}:{},...r?{out:fn(t.out)}:{}}}function gn(e){if(!b(e,["mediaType","required"],["mediaType"]))throw new Error(h);let t=e,n=t.mediaType,r=Object.hasOwn(t,"required")?t.required:false;if(!v(n)||typeof r!="boolean")throw new Error(h);return {mediaType:n,required:r}}function fn(e){if(!b(e,["mediaType","range"],["mediaType"]))throw new Error(h);let t=e,n=t.mediaType,r=Object.hasOwn(t,"range")?t.range:false;if(!v(n)||typeof r!="boolean")throw new Error(h);return {mediaType:n,range:r}}function mn(e){if(!j(e,["id","version","hash"]))return false;let t=e;return Ge(t.id)&&Tn(t.version)&&typeof t.hash=="string"&&dn.test(t.hash)}function yn(e){if(!b(e,["actionId","in","out"],["actionId"]))return false;let t=e,n=t.actionId,r=Object.hasOwn(t,"in"),o=Object.hasOwn(t,"out");return !(typeof n!="string"||!Ge(n)||!r&&!o||r&&!An(t.in)||o&&!hn(t.out))}function An(e){if(!j(e,["mediaType","required"]))return false;let t=e;return v(t.mediaType)&&typeof t.required=="boolean"}function hn(e){if(!j(e,["mediaType","range"]))return false;let t=e;return v(t.mediaType)&&typeof t.range=="boolean"}function Ge(e){return typeof e=="string"&&Fe.test(e)}function Tn(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function En(e){if(!Array.isArray(e))return false;let t=Reflect.ownKeys(e);if(t.length!==e.length+1||t[e.length]!=="length")return false;for(let n=0;n<e.length;n+=1){if(t[n]!==String(n))return false;let r=Object.getOwnPropertyDescriptor(e,String(n));if(r===void 0||!Object.hasOwn(r,"value"))return false}return true}function j(e,t){return b(e,t,t)}function b(e,t,n=[]){if(!ze(e))return false;let r=Reflect.ownKeys(e);if(r.length>t.length||r.length<n.length)return false;for(let o of r){if(typeof o!="string"||!t.includes(o))return false;let i=Object.getOwnPropertyDescriptor(e,o);if(i===void 0||!Object.hasOwn(i,"value"))return false}return n.every(o=>Object.hasOwn(e,o))}function ze(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function k(e,t){if(e===null||typeof e!="object")return;let n=Object.getOwnPropertyDescriptor(e,t);return n!==void 0&&Object.hasOwn(n,"value")?n.value:void 0}var Ve=[5,15,30,60],fe=Object.freeze({min:15e3,max:6e5,default:3e5}),_n=1;var In="exit 78",We=["standby","disabled","draining","degraded"],xn=["cron","cron_manual","app_enable"],Cn=/^[A-Z][A-Z0-9_]{0,63}$/u;function Pn(e){return typeof e=="string"&&Cn.test(e)}function On(e){return Ve.includes(e)}function Mn(e){return Number.isSafeInteger(e)&&e>=fe.min&&e<=fe.max}function Rn(e){return We.includes(e)}var wn="crewx/openApp",ye=1,Sn="ui/crewx-open-app",kn="ui/crewx-open-app-status",$e=32768,Xe=8,Ae=["opened","completed","pending"],he=["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"],Te=["RECEIPT_FAILED","RECEIPT_REJECTED","RECEIPT_CONFLICTED","RECEIPT_EXPIRED","LEDGER_MISSING","LEDGER_EXPIRED"],G=class extends Error{constructor(n,r){super(n);this.errorCode=n;this.causeCode=r;}errorCode;causeCode;name="CrewxOpenAppError"},vn=/^[A-Za-z0-9-]{8,64}$/,bn=/^[A-Za-z0-9_-]{1,128}$/,z=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/,Dn=new TextEncoder,qe=/\p{Surrogate}/u,Un=new Set(["__proto__","constructor","prototype"]);function u(){throw new G("UI_APP_OPEN_INVALID")}function D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function W(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function _(e,t,n=[]){W(e)||u();let r=new Set([...t,...n]);for(let o of Object.keys(e))r.has(o)||u();for(let o of t)D(e,o)||u();return e}function V(e,t){return (typeof e!="string"||!t.test(e))&&u(),e}function q(e){return (typeof e!="string"||!vn.test(e))&&u(),e}function M(e){(typeof e!="string"||!bn.test(e))&&u();let t=e.indexOf("_");return (t<0||t===e.length-1)&&u(),q(e.slice(0,t)),e}function Ke(e){return M(e).slice(0,e.indexOf("_"))}function Ye(e){return H(e)||u(),e}function O(e,t){let n=t.find(r=>r===e);return n===void 0&&u(),n}function me(e,t){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 qe.test(e)&&u(),JSON.stringify(e);if(t>Xe&&u(),Array.isArray(e)){let o=[];for(let i=0;i<e.length;i+=1)D(e,String(i))||u(),o.push(me(e[i],t+1));return `[${o.join(",")}]`}W(e)||u();let n=e;return `{${Object.keys(n).sort().map(o=>((Un.has(o)||qe.test(o))&&u(),`${JSON.stringify(o)}:${me(n[o],t+1)}`)).join(",")}}`}function Ln(e){let t=_(e,["requestId","appId"],["action"]),n=M(t.requestId),r=V(t.appId,z);if(!D(t,"action"))return {requestId:n,appId:r};let o=_(t.action,["actionId","input"]),i=o.input;return W(i)||u(),{requestId:n,appId:r,action:{actionId:V(o.actionId,z),input:i}}}function Qe(e){return {version:ye,sessionId:q(e)}}function Nn(e){let t=_(e,["version","sessionId"]);return t.version!==ye&&u(),Qe(q(t.sessionId))}function Bn(e,t){return typeof t!="string"&&u(),M(`${q(e)}_${t}`)}function Ze(e){let t=me(Ln(e),1);return Dn.encode(t).byteLength>$e&&u(),t}function Hn(e){return JSON.parse(Ze(e))}function jn(e){let t=_(e,["requestId"]);return {requestId:M(t.requestId)}}function Je(e){return {status:O(e.status,Ae),appId:V(e.appId,z),instanceId:Ye(e.instanceId),requestId:M(e.requestId)}}function et(e,t){let n=O(e,he);return t===void 0?{isError:true,_meta:{errorCode:n}}:{isError:true,_meta:{errorCode:n,causeCode:O(t,Te)}}}function Fn(e){if(W(e)||u(),D(e,"isError")){let n=_(e,["isError","_meta"]);n.isError!==true&&u();let r=_(n._meta,["errorCode"],["causeCode"]);return et(O(r.errorCode,he),D(r,"causeCode")?O(r.causeCode,Te):void 0)}let t=_(e,["status","appId","instanceId","requestId"]);return Je({status:O(t.status,Ae),appId:V(t.appId,z),instanceId:Ye(t.instanceId),requestId:M(t.requestId)})}function F(e,t){return {state:"failed",errorCode:e,causeCode:t}}function Gn(e){if(e.kind==="pending"||e.status==="requested")return {state:"pending"};if(e.outcome==="succeeded")return {state:"completed"};switch(e.outcome){case "rejected":return F("UI_APP_OPEN_REJECTED","RECEIPT_REJECTED");case "conflicted":return F("UI_APP_OPEN_STALE","RECEIPT_CONFLICTED");case "expired":return F("UI_APP_OPEN_STALE","RECEIPT_EXPIRED");default:return F("UI_APP_OPEN_FAILED","RECEIPT_FAILED")}}function Ee(e,t){return e.workspaceId===t.workspaceId&&e.threadId===t.threadId&&e.instanceId===t.instanceId&&e.definition.id===t.definition.id&&e.definition.version===t.definition.version&&e.definition.hash===t.definition.hash&&e.entryHash===t.entryHash}function zn(e){if(Ke(e.requestId)!==e.activeSessionId)return "stale";let{lookup:t}=e;return t.kind==="absent"?t.capacity==="full"?"busy":"new":Ee(t.record.source,e.source)&&t.record.payloadDigest===e.payloadDigest?"known":"conflict"}function Vn(e){return Ke(e.requestId)!==e.activeSessionId||e.lookup.kind!=="present"?"stale":Ee(e.lookup.record.source,e.source)?"known":"stale"}export{Se as ANTIGRAVITY_MODEL_COMPATIBILITY,In as APP_SCHEDULE_INERT_COMMAND,Ve as APP_SCHEDULE_INTERVALS_MINUTES,_n as APP_SCHEDULE_MAX_PER_APP,We as APP_SCHEDULE_PERIODIC_REASONS,fe as APP_SCHEDULE_TIMEOUT_MS,Ne as BUILTIN_THREAD_STATES,ie as BrowserFsAdapter,Re as CLAUDE_MODEL_COMPATIBILITY_PAIRS,Ot as CLAUDE_OPUS_4_8_BASE_MODEL_ID,Mt as CLAUDE_OPUS_4_8_LEGACY_MODEL_ID,wn as CREWX_OPEN_APP_CAPABILITY,ye as CREWX_OPEN_APP_CAPABILITY_VERSION,Xe as CREWX_OPEN_APP_MAX_JSON_DEPTH,$e as CREWX_OPEN_APP_MAX_PARAMS_BYTES,Sn as CREWX_OPEN_APP_METHOD,kn as CREWX_OPEN_APP_STATUS_METHOD,Ae as CREWX_OPEN_APP_SUCCESS_STATUSES,P as ConfigLoadError,Q as Crewx,G as CrewxOpenAppError,It as EFFORT_LEVELS,sn as MCP_APP_HOST_TOOL_ALLOWLIST,xt as PROVIDER_ARGV_EFFORTS,se as PROVIDER_ORDER,m as ProviderError,xn as SCHEDULE_TRIGGERS,Le as THREAD_PRIORITIES,Te as UI_APP_OPEN_CAUSE_CODES,he as UI_APP_OPEN_ERROR_CODES,ue as UI_CONTENT_MEDIA_TYPES,cn as buildMcpAppContentActions,Ze as canonicalCrewxOpenAppPayload,ut as classifyTaskError,qt as compareProviders,ln as contentActionsMatch,Qe as createCrewxOpenAppCapabilityDeclaration,et as createCrewxOpenAppErrorResult,Bn as createCrewxOpenAppRequestId,Je as createCrewxOpenAppSuccessResult,U as createProvider,Be as customStateLabel,zn as decideCrewxOpenAppOpen,Vn as decideCrewxOpenAppStatus,Kt as getDefaultAgentProfile,Jt as hasThreadTitleKey,Pn as isAppScheduleCode,On as isAppScheduleIntervalMinutes,Rn as isAppSchedulePeriodicReason,Mn as isAppScheduleTimeoutMs,ge as isMcpAppContentActions,Ee as isSameCrewxOpenAppSourceBinding,de as isThreadPriority,ce as isThreadState,v as isUiContentMediaType,H as isValidUiAppInstanceId,on as matchesThreadTitleFilter,en as mergeThreadTitleMeta,zt as normalizeClaudeMode,Xt as normalizeProviderId,Nn as parseCrewxOpenAppCapabilityDeclaration,Hn as parseCrewxOpenAppRequest,Fn as parseCrewxOpenAppResult,jn as parseCrewxOpenAppStatusRequest,nn as parseThreadPriorityFilter,rn as parseThreadStateFilter,jt as parseYamlContent,ae as providerRank,He as readThreadTitleMeta,Z as redactTechnicalMessage,Y as registerProviderFactory,ke as resolveAntigravityModel,we as resolveCatalogModelId,Gn as resolveCrewxOpenAppActionOutcome,oe as resolveProviderCatalogModel,tn as threadTitleSearchHaystack};
package/dist/index.d.ts CHANGED
@@ -52,9 +52,14 @@ export { NodeFsAdapter, defaultFsAdapter } from './platform/NodeFsAdapter';
52
52
  export { BrowserFsAdapter } from './platform/BrowserFsAdapter';
53
53
  export { truncateHelper, lengthHelper, escapeHandlebarsHelper, formatFileSizeHelper, formatTimestampHelper, } from './template/helpers/p1p2';
54
54
  export { setAuditVerbose } from './template/helpers/exec';
55
- export type { AgentConfig, CrewxProjectConfig, CrewxOptions, QueryOptions, QueryResult, ExecuteOptions, ExecuteResult, ContextMode, CanResumeSessionReason, CanResumeSessionParams, CanResumeSessionResult, TraceContext, TaskActor, YamlHookEntry, GuideRule, WiBoardConfig, } from './types';
55
+ export type { AgentConfig, CrewxProjectConfig, CrewxOptions, QueryOptions, QueryResult, ExecuteOptions, ExecuteResult, ContextMode, CanResumeSessionReason, CanResumeSessionParams, CanResumeSessionResult, TraceContext, TaskActor, YamlHookEntry, GuideRule, WiBoardConfig, ProviderRateLimitObservation, } from './types';
56
56
  export { AgentSkillsSchema, WiBoardSchema } from './types';
57
+ export { addAiAccount, applyAiAccountEnv, aiAccountEnvPlan, defaultAiAccountDir, getLoginInvocation, getStatusInvocation, listAiAccounts, loadProviderAccountsRegistry, providerAccountsRegistryPath, providerAccountsRoot, removeAiAccount, resolveAiAccountForRun, setActiveAiAccount, AiAccountError, AI_ACCOUNT_PROVIDERS, CLAUDE_ACCOUNT_STRIPPED_ENV, DEFAULT_AI_ACCOUNT_ID, } from './provider-account';
58
+ export type { AddedAiAccount, AiAccountEnvPlan, AiAccountErrorCode, AiAccountInvocation, AiAccountProvider, AiAccountSummary, ProviderAccountsRegistry, RemovedAiAccount, ResolveAiAccountInput, ResolvedAiAccount, StoredAiAccount, } from './provider-account';
59
+ export type { ProviderRateLimitWindow, ProviderRateLimitWindows } from './provider/cli/adapter.types';
57
60
  export { loadYamlFile, parseYamlContent, ConfigLoadError } from './config/loader';
61
+ export { AgentInterceptorChain, AgentInterceptorConfigError, parseAgentInterceptorItems, INTERCEPTOR_BLOCKED, INTERCEPTOR_CONFIG_INVALID, } from './agent-interceptor';
62
+ export type { AgentInterceptorItem, InterceptorInvocation, InterceptorLaneRun, InterceptorOutcome, InterceptorPhase, InterceptorRunContext, InterceptorStepLog, InterceptorVerdict, } from './agent-interceptor';
58
63
  export { resolveWiBoards, isReservedWiBoardId, WI_BOARD_ID_PATTERN, DEFAULT_WI_BOARD_ID, ARCHIVE_WI_BOARD_ID, DEFAULT_WI_WORKFLOW_ID, WI_PLAN_WORKFLOW_ID, WI_DEFAULT_FLOW_FILENAME, WI_PLAN_FLOW_FILENAME, } from './config/wi-boards';
59
64
  export type { ResolvedWiBoard } from './config/wi-boards';
60
65
  export { createWorkInstruction, createWorkInstructionBatch, WiCreateError, } from './wi/create';