@crewx/sdk 0.9.0-rc.159 → 0.9.0-rc.160
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/context-budget/continuity.d.ts +2 -0
- package/dist/context-budget/index.d.ts +2 -1
- package/dist/conversation/types.d.ts +10 -0
- package/dist/esm/index.js +310 -326
- package/dist/esm/plugins/index.js +84 -84
- package/dist/esm/publish/index.js +2 -2
- package/dist/esm/repository/index.js +173 -173
- package/dist/esm/skills/index.js +2 -2
- package/dist/events/types.d.ts +7 -0
- package/dist/facade/Crewx.d.ts +2 -1
- package/dist/index.browser.d.ts +2 -0
- package/dist/index.browser.js +4 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.js +237 -253
- package/dist/mcp-app/app-handoff.d.ts +109 -0
- package/dist/mcp-app/apps-context.d.ts +13 -1
- package/dist/mcp-app/card-handler.d.ts +7 -0
- package/dist/mcp-app/index.d.ts +5 -1
- package/dist/mcp-app/prompt-cards.d.ts +28 -0
- package/dist/mcp-app/types.d.ts +16 -0
- package/dist/mcp-app/workspace-snapshot.d.ts +1 -0
- package/dist/migrations/0040_task_provider_inputs.sql +53 -0
- package/dist/migrations/meta/0040_snapshot.json +3759 -0
- package/dist/migrations/meta/_journal.json +7 -0
- package/dist/plugins/index.js +84 -84
- package/dist/publish/index.js +2 -2
- package/dist/repository/index.d.ts +2 -1
- package/dist/repository/index.js +130 -130
- package/dist/repository/task.repository.d.ts +26 -1
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/task-provider-inputs.d.ts +100 -0
- package/dist/schema/tasks.d.ts +855 -1
- package/dist/skills/index.js +2 -2
- package/dist/template/helpers/format-conversation.d.ts +1 -0
- package/dist/types/index.d.ts +4 -0
- package/package.json +1 -1
- package/templates/agents/default.yaml +8 -1
package/dist/events/types.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface TaskStartEvent extends BaseEvent {
|
|
|
13
13
|
provider?: string;
|
|
14
14
|
codingAgentCommand?: string;
|
|
15
15
|
renderedPrompt?: string;
|
|
16
|
+
securityKey?: string | null;
|
|
16
17
|
metadata?: Record<string, unknown>;
|
|
17
18
|
threadId?: string;
|
|
18
19
|
platform?: Platform;
|
|
@@ -26,6 +27,11 @@ export interface TaskStartEvent extends BaseEvent {
|
|
|
26
27
|
rootTraceId?: string;
|
|
27
28
|
callerAgentId?: string | null;
|
|
28
29
|
}
|
|
30
|
+
export interface TaskProviderInputEvent extends BaseEvent {
|
|
31
|
+
runEpoch: number;
|
|
32
|
+
input: string;
|
|
33
|
+
keyWrapSkipped: boolean;
|
|
34
|
+
}
|
|
29
35
|
export interface TaskEndEvent extends BaseEvent {
|
|
30
36
|
agentRef: string;
|
|
31
37
|
mode: 'query' | 'execute';
|
|
@@ -98,6 +104,7 @@ export interface CrewxEvents {
|
|
|
98
104
|
'task:start': TaskStartEvent;
|
|
99
105
|
'task:end': TaskEndEvent;
|
|
100
106
|
'task:output': TaskOutputEvent;
|
|
107
|
+
'task:provider-input': TaskProviderInputEvent;
|
|
101
108
|
'tool:observed:before': ToolBeforeEvent;
|
|
102
109
|
'tool:observed:after': ToolAfterEvent;
|
|
103
110
|
'adapter:lifecycle': AdapterLifecycleEvent;
|
package/dist/facade/Crewx.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { CustomLayoutDefinition, LayoutCapabilities } from '../layout/types
|
|
|
9
9
|
import type { ConversationThreadState, SemanticContinuityContext, TemplateMessage } from '../conversation/types';
|
|
10
10
|
import type { HandlerOptions, CrewxHandler } from '../server/handler';
|
|
11
11
|
import type { RemoteProviderConfig } from '../remote/types.js';
|
|
12
|
-
import type { McpAppStateDescriptor } from '../mcp-app/types.js';
|
|
12
|
+
import type { McpAppLayoutSnapshot, McpAppStateDescriptor } from '../mcp-app/types.js';
|
|
13
13
|
import type { McpAppModelContext } from '../mcp-app/model-context.js';
|
|
14
14
|
import type { CrewxAppCatalogOptions, CrewxAppCatalogResult } from '../mcp-app/types.js';
|
|
15
15
|
import type { McpAppsContext } from '../mcp-app/apps-context.js';
|
|
@@ -52,6 +52,7 @@ export interface RenderAgentPromptOptions {
|
|
|
52
52
|
threadState?: ConversationThreadState;
|
|
53
53
|
mcpAppProjections?: readonly McpAppStateDescriptor[];
|
|
54
54
|
mcpAppModelContext?: McpAppModelContext;
|
|
55
|
+
appLayoutSnapshot?: McpAppLayoutSnapshot;
|
|
55
56
|
mcpAppAvailable?: McpAppsContext['available'];
|
|
56
57
|
threadId?: string;
|
|
57
58
|
}
|
package/dist/index.browser.d.ts
CHANGED
|
@@ -23,3 +23,5 @@ export { MCP_APP_HOST_TOOL_ALLOWLIST } from './mcp-app/types.js';
|
|
|
23
23
|
export type { CrewxAppCapability, CrewxAppCatalogOptions, CrewxAppCatalogResult, CrewxAppDefinitionHashInput, CrewxAppDefinitionSummary, CrewxAppDiagnostic, CrewxAppDiagnosticCode, CrewxAppDiagnosticSource, CrewxAppInstalledProjection, CrewxAppLocalDefinitionRef, CrewxAppOrigin, CrewxAppOwnership, CrewxAppShareability, CrewxAppSharingAvailability, CrewxAppSummary, McpAppHostToolName, } from './mcp-app/types.js';
|
|
24
24
|
export { UI_CONTENT_MEDIA_TYPES, buildMcpAppContentActions, contentActionsMatch, isMcpAppContentActions, isUiContentMediaType, isValidUiAppInstanceId, } from './mcp-app/content-declarations.js';
|
|
25
25
|
export type { McpAppContentActionDeclaration, McpAppContentActions, UiContentMediaType, } from './mcp-app/content-declarations.js';
|
|
26
|
+
export { CREWX_OPEN_APP_CAPABILITY, CREWX_OPEN_APP_CAPABILITY_VERSION, CREWX_OPEN_APP_MAX_JSON_DEPTH, CREWX_OPEN_APP_MAX_PARAMS_BYTES, CREWX_OPEN_APP_METHOD, CREWX_OPEN_APP_STATUS_METHOD, CREWX_OPEN_APP_SUCCESS_STATUSES, CrewxOpenAppError, UI_APP_OPEN_CAUSE_CODES, UI_APP_OPEN_ERROR_CODES, canonicalCrewxOpenAppPayload, createCrewxOpenAppCapabilityDeclaration, createCrewxOpenAppErrorResult, createCrewxOpenAppRequestId, createCrewxOpenAppSuccessResult, decideCrewxOpenAppOpen, decideCrewxOpenAppStatus, isSameCrewxOpenAppSourceBinding, parseCrewxOpenAppCapabilityDeclaration, parseCrewxOpenAppRequest, parseCrewxOpenAppResult, parseCrewxOpenAppStatusRequest, resolveCrewxOpenAppActionOutcome, } from './mcp-app/app-handoff.js';
|
|
27
|
+
export type { CrewxOpenAppAction, CrewxOpenAppActionOutcome, CrewxOpenAppCapabilityDeclaration, CrewxOpenAppDecisionInput, CrewxOpenAppErrorResult, CrewxOpenAppIdempotencyDecision, CrewxOpenAppLedgerLookup, CrewxOpenAppLedgerRecord, CrewxOpenAppReceiptLookup, CrewxOpenAppRequest, CrewxOpenAppResult, CrewxOpenAppSourceBinding, CrewxOpenAppStatusRequest, CrewxOpenAppSuccessResult, CrewxOpenAppSuccessStatus, UiAppOpenCauseCode, UiAppOpenErrorCode, } from './mcp-app/app-handoff.js';
|
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
|
-
`);T=
|
|
1
|
+
import {load}from'js-yaml';import'js-tiktoken';import'js-tiktoken/lite';import Rt from'js-tiktoken/ranks/o200k_base';import {z as z$1}from'zod';var x=class extends Error{constructor(t,n){let r=n.length>0?` Available: ${n.join(", ")}`:"";super(`Agent not found: "${t}".${r}`),this.name="AgentNotFoundError";}},Je={claude:{id:"claude",provider:"cli/claude"},copilot:{id:"copilot",provider:"cli/copilot"},codex:{id:"codex",provider:"cli/codex"}};function Y(e,t){let n=e.startsWith("@")?e.slice(1):e,r=t.find(i=>i.id===n);if(r)return r;let o=Je[n];if(o)return o;throw new x(e,t.map(i=>i.id))}var m=class extends Error{constructor(n,r,o){super(n);this.providerStr=r;this.name="ProviderError",this.code=o?.code??"UNKNOWN",this.kind=o?.kind??(this.code==="UNKNOWN"?"transient":void 0),this.retryAfterMs=o?.retryAfterMs;}providerStr;code;kind;retryAfterMs;stdout};var Ee=new Map;function K(e,t){Ee.set(e,t);}function U(e){let t=e.split("/");if(t.length!==2)throw new m(`Invalid provider format: "${e}". Expected namespace/id (e.g., api/webllm)`,e);let[n,r]=t,o=Ee.get(n);if(o)return o(r,e);throw new m(`Unsupported provider namespace: "${n}". Register a factory with registerProviderFactory('${n}', factory).`,e)}var et=new Function("u","return import(u)"),Q=class e{_agents;_config;_tools=new Map;_apiProviders=new Map;constructor(t,n){this._agents=new Map(t.map(r=>[r.id,r])),this._config=n;}static async fromConfig(t,n){let r=new e(t.agents??[],t),o=t.agents??[],i=d=>Array.isArray(d.provider)?d.provider[0]:d.provider,a=o.filter(d=>i(d)==="api/webllm"),s=o.filter(d=>i(d)==="api/openrouter");if(a.length>0&&await r._initWebLLM(a,n?.onProgress),s.length>0){if(!n?.openrouterApiKey)throw new Error("openrouterApiKey is required when using api/openrouter provider");r._initOpenRouter(s,n.openrouterApiKey);}return r._apiProviders.size>0&&K("api",(d,l)=>{let c=r._apiProviders.get(d);if(!c)throw new m(`Unknown api provider: ${d}`,l);return c}),r}async _initWebLLM(t,n){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not available. Chrome 113+ or Edge 113+ required.");let r=await et("https://esm.run/@mlc-ai/web-llm"),o=t[0]?.inline?.model??"gemma-2-2b-it-q4f16_1-MLC",i=await r.CreateMLCEngine(o,{initProgressCallback:n?s=>n(s):void 0}),a=[];this._apiProviders.set("webllm",{async query(s,d){let l=[];d?.systemPrompt&&l.push({role:"system",content:d.systemPrompt}),l.push(...a),l.push({role:"user",content:s});let c="",A=await i.chat.completions.create({messages:l,stream:true,temperature:.7,max_tokens:4096});for await(let T of A){let g=T.choices?.[0]?.delta?.content??"";c+=g,d?.onOutput&&d.onOutput(c,"stdout");}return a.push({role:"user",content:s}),a.push({role:"assistant",content:c}),c},async execute(s,d){return this.query(s,d)}});}_initOpenRouter(t,n){let r=t[0]?.inline?.model??"google/gemma-2-2b-it",o=[];this._apiProviders.set("openrouter",{async query(i,a){let s=[];a?.systemPrompt&&s.push({role:"system",content:a.systemPrompt}),s.push(...o),s.push({role:"user",content:i});let d=await fetch("https://openrouter.ai/api/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({model:a?.model||r,messages:s,stream:true})});if(!d.ok){let g=await d.text();throw new Error(`OpenRouter API error (${d.status}): ${g}`)}let l=d.body.getReader(),c=new TextDecoder,A="",T="";for(;;){let{done:g,value:$}=await l.read();if(g)break;T+=c.decode($,{stream:true});let Ie=T.split(`
|
|
2
|
+
`);T=Ie.pop();for(let Ze of Ie){let X=Ze.trim();if(!X||!X.startsWith("data: "))continue;let _e=X.slice(6);if(_e!=="[DONE]")try{let xe=JSON.parse(_e).choices?.[0]?.delta?.content??"";A+=xe,xe&&a?.onOutput&&a.onOutput(A,"stdout");}catch{}}}return o.push({role:"user",content:i}),o.push({role:"assistant",content:A}),A},async execute(i,a){return this.query(i,a)}});}get agents(){return this._agents}get config(){return this._config}get tools(){return this._tools}registerTool(t,n){this._tools.set(t,{name:t,...n});}async query(t,n,r){let o=Date.now(),i;try{i=Y(t,Array.from(this._agents.values()));}catch(g){if(g instanceof x)return {ok:false,data:"",error:{code:"AGENT_NOT_FOUND",message:g.message},meta:{agentId:t.replace(/^@/,""),provider:"",durationMs:Date.now()-o}};throw g}let a=Array.isArray(i.provider)?i.provider[0]??"api/default":i.provider,s=r?.provider??a,d=r?.model??i.inline?.model,l=i.options,c=l&&typeof l=="object"&&!Array.isArray(l)?l.query:void 0,A=c&&typeof c=="object"&&!Array.isArray(c)&&typeof c.mode=="string"&&c.mode.trim()||void 0,T;try{T=U(s);}catch(g){return {ok:false,data:"",error:{code:"PROVIDER_ERROR",message:g.message,...g instanceof m?{providerCode:g.code}:{}},meta:{agentId:i.id,provider:s,model:d,durationMs:Date.now()-o}}}try{return {ok:!0,data:await T.query(n,{model:d,context:r?.context,systemPrompt:i.inline?.system_prompt??i.inline?.prompt,onOutput:r?.onOutput?$=>r.onOutput($):void 0}),meta:{agentId:i.id,provider:s,model:d,durationMs:Date.now()-o}}}catch(g){return {ok:false,data:"",error:{code:"QUERY_FAILED",message:g.message,...g instanceof m?{providerCode:g.code}:{},...A?{mode:A}:{}},meta:{agentId:i.id,provider:s,model:d,durationMs:Date.now()-o}}}}async execute(t,n,r){let o=Date.now(),i;try{i=Y(t,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:t.replace(/^@/,""),provider:"",durationMs:Date.now()-o}};throw c}let a=Array.isArray(i.provider)?i.provider[0]??"api/default":i.provider,s=r?.provider??a,d=r?.model??i.inline?.model,l;try{l=U(s);}catch(c){return {ok:false,data:"",error:{code:"PROVIDER_ERROR",message:c.message,...c instanceof m?{providerCode:c.code}:{}},meta:{agentId:i.id,provider:s,model:d,durationMs:Date.now()-o}}}try{return {ok:!0,data:await l.execute(n,{model:d,context:r?.context,systemPrompt:i.inline?.system_prompt??i.inline?.prompt}),meta:{agentId:i.id,provider:s,model:d,durationMs:Date.now()-o}}}catch(c){return {ok:false,data:"",error:{code:"EXECUTE_FAILED",message:c.message,...c instanceof m?{providerCode:c.code}:{}},meta:{agentId:i.id,provider:s,model:d,durationMs:Date.now()-o}}}}};var f="[REDACTED]",Ce="[PATH]";function Z(e){if(typeof e!="string")return;let t=e.trim();if(t)return t=t.replace(/^\s*at\s+[^\r\n]+(?:\r?\n|$)/gim,""),t=t.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 ${f}]`),t=nt(t),t=t.replace(/\b(?:Bearer|Basic)\s+[A-Za-z0-9._~+\-/]+=*/gi,`${f}`),t=t.replace(/\bsk-[A-Za-z0-9][A-Za-z0-9_-]*/g,f),t=t.replace(/\bghp_[A-Za-z0-9][A-Za-z0-9_-]*/g,f),t=t.replace(/\bxoxb-[A-Za-z0-9-]+/g,f),t=t.replace(/\bxoxp-[A-Za-z0-9-]+/g,f),t=t.replace(/\bAKIA[0-9A-Z]{12,}\b/g,f),t=t.replace(/\bgithub_pat_[A-Za-z0-9_]+/g,f),t=t.replace(/\bgho_[A-Za-z0-9_]+/g,f),t=t.replace(/\bAIza[A-Za-z0-9_-]{20,}\b/g,f),t=t.replace(/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g,f),t=t.replace(/\b(?:authorization|api[_ -]?key|access[_ -]?token|auth[_ -]?token|refresh[_ -]?token|token|secret|password)\s*([:=])\s*["']?[^\s,;&"']+/gi,(n,r)=>`${f}${r}${f}`),t=t.replace(/([?&](?:api[_-]?key|access[_-]?token|token)=)[^&\s]+/gi,`$1${f}`),t=t.replace(/(?:\/(?:Users|home|private|var\/folders|tmp|workspace|workspaces|Volumes|opt|etc|srv|Applications)\/[^\s"'`),;]+)/g,Ce),t=t.replace(/\b[A-Z]:\\(?:Users|home|Windows|Program Files|workspace|workspaces)\\[^\s"'`),;]*/gi,Ce),t=t.replace(/[\r\n]{3,}/g,`
|
|
3
3
|
|
|
4
|
-
`).trim(),
|
|
4
|
+
`).trim(),tt(t,1024)||void 0}function tt(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 nt(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=rt(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 ${g}]`,r=s;}return n+e.slice(r)}function be(e,t){let n=e[t];if(n==='"'||n==="'")return we(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 p=r.pop();if(s==="}"&&p!=="{"||s==="]"&&p!=="[")return -1;if(r.length===0)return a+1}return -1}function we(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 De=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"]),Se=new Set(["plan","plan-auto","read-only"]),Ue={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"},Le=[{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 Ne(e){try{if(!A(e)||e.status!=="failed")return H();let t=Be(e.error);if(V(t.message))return H();let n=m(e.providerId)??t.provider??null,r=je(e.logs),o=de(t.code);if(o)return M(o,n,t.message,t);let i=b(t.providerCode)??b(t.code),a=i?z(i,t.message,{exitCode:$e(e.exitCode),mode:t.mode,fromProviderCodeField:!!t.providerCode}):void 0;if(a)return M(a,n,t.message,t,i);let s=He(r);if(!Fe(t)&&s&&(s.type==="user_stop"||V(s.message)))return H();if(s){let l=Ge(s.code,s.providerCode,s.message);if(l)return M(l,n,s.message??t.message,t,s.providerCode??s.code,s,s.structuredFailure?"terminal":"envelope")}let p=ze(t.message,r);return p?M(p.code,n,p.message,t,p.terminal?.providerCode??p.terminal?.code,p.terminal,p.terminal?.structuredFailure?"terminal":"envelope"):M("PROCESS_FAILED",n,t.message,t)}catch{return {errorCode:"PROCESS_FAILED",errorProvider:null}}}function H(){return {errorCode:null,errorProvider:null}}function M(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 y=t?.startsWith("cli/")?t.slice(4):void 0;y&&(s.cliName=y);}let p=a==="terminal"?n:r?.message,l=a==="terminal"?i?.structuredFailure?p:void 0:r?.isEnvelope?p:void 0,c=j(l);return c&&(s.technicalMessage=c),Object.keys(s).length>0?{errorCode:e,errorProvider:t,errorMeta:s}:{errorCode:e,errorProvider:t}}function Be(e){let t=typeof e=="string"?_(e):e;return A(t)?{isEnvelope:true,code:m(t.code),providerCode:m(t.providerCode),message:m(t.message)??m(t.error),provider:m(t.provider)??m(t.errorProvider),model:m(t.model),mode:m(t.mode)}:{isEnvelope:false,...typeof e=="string"&&e.trim()?{message:e.trim()}:{}}}function _(e){try{return JSON.parse(e)}catch{return}}function Fe(e){return !!(e.code||e.providerCode||e.message)}function je(e){let t=[];if(typeof e=="string"){let n=_(e);if(Array.isArray(n))t.push(...n);else for(let r of e.split(/\r?\n/)){let o=_(r.trim());o!==void 0&&t.push(o);}}else Array.isArray(e)?t.push(...e):A(e)&&t.push(e);return t.flatMap(x)}function x(e){if(!A(e))return [];let t=m(e.type),n=m(e.message);if(n&&!t){let o=_(n);if(Array.isArray(o))return o.flatMap(x);if(A(o))return x(o);let i=n.split(/\r?\n/).map(a=>_(a.trim())).filter(a=>A(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=ae(e.rate_limit_info);return m(o?.status)!=="rejected"?[]:[{type:t,code:"RATE_LIMITED",message:C(o?.message,e.message),resetAt:We(o?.resetsAt),rank:4,structuredFailure:true}]}if(t==="turn.failed"||t==="error"){let o=ae(e.error),i=C(o?.message,o?.detail,e.message,e.errorMessage,e.content),a=C(o?.code,e.code,e.errorCode);return [{type:t,code:a,providerCode:C(o?.providerCode,e.providerCode),message:i,rank:t==="turn.failed"?3:2,structuredFailure:true}]}if(t==="text"&&typeof e.content=="string"){let o=_(e.content);if(A(o))return x(o)}let r=C(e.errorMessage,e.content);return r&&V(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 He(e){return [...e].sort((t,n)=>n.rank-t.rank)[0]}function Ge(e,t,n){let r=de(e);if(r)return r;if(e){let o=z(e,n);if(o)return o}if(t){let o=z(t,n);if(o)return o}return G(n)}function ze(e,t){let n=G(e);if(n)return {code:n,message:e};for(let r of [...t].sort((o,i)=>i.rank-o.rank)){let o=G(r.message);if(o)return {code:o,message:r.message,terminal:r}}}function G(e){if(!(typeof e!="string"||!e.trim()))return Le.find(t=>t.pattern.test(e))?.code}function z(e,t,n){let r=b(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&&Ve(n.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return Ue[r]}function de(e){let t=b(e);return t&&De.has(t)?t:void 0}function b(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function Ve(e){return typeof e=="string"&&Se.has(e.trim().toLowerCase())}function V(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 A(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ae(e){return A(e)?e:void 0}function m(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function We(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function $e(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function C(...e){return e.map(m).find(t=>!!t)}var qe=["none","minimal","low","medium","high","xhigh","max","ultra"],Ke={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 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-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"]}]}},W={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(w).map(([e,t])=>[e,t.models]));var Qe="claude-opus-4-8",Ze="claude-opus-4-8[1m]",pe=[{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 Je=new Map(pe.map(({baseModelId:e,catalogModelId:t})=>[e,t]));function ce(e){return Je.get(e)??e}var le=[{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"}],et=new Map(le.map(({legacyId:e,model:t,effort:n})=>[e,n===void 0?{model:t}:{model:t,effort:n}]));function ue(e){if(!e)return {};let t=et.get(e);return t?{...t}:{model:e}}function $(e,t){return e==="antigravity"||e==="cli/antigravity"?ue(t):t===void 0?{}:{model:ce(t)}}var ge=30,fe=80;Object.keys(nt.special_tokens);var rt=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()),ot=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),it=z$1.object({id:z$1.string(),name:z$1.string().optional(),role:z$1.string().optional(),team:z$1.string().optional(),provider:z$1.union([z$1.string(),z$1.array(z$1.string())]),working_directory:z$1.string().optional(),description:z$1.string().optional(),tags:z$1.array(z$1.string()).optional(),inline:rt.optional(),skills:ot}).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 st=z$1.number().finite().int().min(ge).max(fe),at=z$1.object({inputBudgetPercent:st.optional()}).catchall(z$1.unknown()),dt=z$1.object({continuity:at.optional()}).catchall(z$1.unknown()),pt=z$1.object({bin_resolution:z$1.enum(["global_first","local_first"]).optional(),dreaming:dt.optional(),wi:z$1.object({boards:z$1.array(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()),me=z$1.object({agents:z$1.array(it).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());var E=class extends Error{constructor(n,r){super(n);this.cause=r;this.name="ConfigLoadError";}cause};function lt(e){if(!e||typeof e!="string"||!e.trim())throw new E("YAML content must be a non-empty string");let t;try{t=load(e);}catch(o){throw new E(`YAML parse error: ${o.message}`,o)}let n=ut(t),r=me.safeParse(n);if(!r.success)throw new E(`Config validation error: ${r.error.message}`);return r.data}function ut(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 ft(e){return gt[e]??e}var mt="crewx:fs:",q=class{prefix;store;constructor(t){this.prefix=t?.prefix??mt,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 K=["codex","claude","grok","opencode","antigravity","copilot"];function yt(e){let t=e.indexOf("/");return t===-1?e:e.slice(t+1)}function Y(e){let t=yt(e),n=K.indexOf(t);return n===-1?K.length:n}function ht(e,t){return Y(e)-Y(t)}var Tt=new Set(["claude","copilot","codex","grok","opencode"]);function At(e){if(!e)return "";if(e.startsWith("acp/")){let t=e.slice(4);if(Tt.has(t))return `cli/${t}`}return e}function D(e){return {mode:e.mode,effort:e.effort}}function It(e){let t=W.providers[e];if(!t)return;let n=e.startsWith("cli/")?e.slice(4):e,r=w[n]?.models.find(a=>a.recommended===true&&a.tier==="balanced")?.id??t.model,o={query:D(t.query),execute:D(t.execute)},i={query:D(t.query),execute:D(t.execute)};return {planner:{model:t.model,...o},worker:{model:r,...i}}}var he=["urgent","high","medium","low"],Te=["investigating","in-progress","in-review","on-hold","done"],v="custom:";var xt=new Set(he),_t=new Set(Te),Et={urgent:"U \uAE34\uAE09 Urgent",high:"P0 \uAE09\uD568 High",medium:"P1 \uC911\uC694 Medium",low:"P2 \uBCF4\uD1B5 Low"},X={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 ye(e,t){return !t||t.includes(e)?t??e:`${e} ${t}`}function Q(e){return typeof e=="string"&&xt.has(e)}function Z(e){if(typeof e!="string")return false;if(_t.has(e))return true;if(e.startsWith("c_"))return e.length>2;if(!e.startsWith(v))return false;let t=e.slice(v.length);return t.length>=1&&t.length<=20}function Ae(e){if(e.startsWith(v))return e.slice(v.length)}function J(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 Mt(e){let t=J(e);return !!t&&Object.prototype.hasOwnProperty.call(t,"threadTitle")}function Ie(e){let t=J(e);if(!t)return {};let n=t.threadTitle;if(!n||typeof n!="object"||Array.isArray(n))return {};let r=n,o={};return Q(r.priority)&&(o.priority=r.priority),Z(r.state)&&(o.state=r.state),o}function Ct(e,t){let n=J(e)??{},r={...Ie(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 vt(e,t=new Map){let n=[];return e.priority&&n.push(ye(Et[e.priority],t.get(e.priority))),e.state&&(e.state.startsWith(v)?n.push(Ae(e.state)??""):X[e.state]?n.push(ye(X[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(X[e.state]??"")),n.filter(Boolean).join(" ")}function xe(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 Pt(e){return xe(e,Q)}function kt(e){return xe(e,Z)}function Rt(e,t){return t?e?t.values.has(e):t.includeNone:true}var Ot=["crewx_app_terminal_connect","crewx_app_html_viewer_open"];var ee=["text/plain","application/json"];var bt=["__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(bt);var _e=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/;var wt=/^uic_[A-Za-z0-9_-]+$/,Dt=/^[0-9a-f]{64}$/,h="MCP App content declarations are invalid";function k(e){return typeof e=="string"&&ee.includes(e)}function Ee(e){return typeof e=="string"&&e.length<=128&&wt.test(e)}function St(e,t){try{let n=t,r=P(n,"actions");if(!Ce(r))throw new Error(h);let o=[];for(let a of Object.keys(r)){let s=P(r,a);if(s===null||typeof s!="object"||Array.isArray(s))throw new Error(h);let p=Object.getOwnPropertyDescriptor(s,"content");if(p===void 0)continue;if(!Object.hasOwn(p,"value"))throw new Error(h);let l=Lt(p.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:P(n,"id"),version:P(n,"version"),hash:P(n,"hash")},actions:o};if(!te(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 te(e){try{if(!S(e,["schemaVersion","instanceId","definition","actions"]))return !1;let t=e;if(t.schemaVersion!==1||!Ee(t.instanceId)||!Ft(t.definition))return !1;let n=t.actions;if(!Vt(n)||n.length===0)return !1;let r;for(let o=0;o<n.length;o+=1){let i=n[o];if(!jt(i)||r!==void 0&&!(r<i.actionId))return !1;r=i.actionId;}return !0}catch{return false}}function Ut(e,t,n){return te(e)?e.instanceId===t&&e.definition.id===n.id&&e.definition.version===n.version&&e.definition.hash===n.hash:false}function Lt(e){if(!R(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:Nt(t.in)}:{},...r?{out:Bt(t.out)}:{}}}function Nt(e){if(!R(e,["mediaType","required"],["mediaType"]))throw new Error(h);let t=e,n=t.mediaType,r=Object.hasOwn(t,"required")?t.required:false;if(!k(n)||typeof r!="boolean")throw new Error(h);return {mediaType:n,required:r}}function Bt(e){if(!R(e,["mediaType","range"],["mediaType"]))throw new Error(h);let t=e,n=t.mediaType,r=Object.hasOwn(t,"range")?t.range:false;if(!k(n)||typeof r!="boolean")throw new Error(h);return {mediaType:n,range:r}}function Ft(e){if(!S(e,["id","version","hash"]))return false;let t=e;return Me(t.id)&&zt(t.version)&&typeof t.hash=="string"&&Dt.test(t.hash)}function jt(e){if(!R(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"||!Me(n)||!r&&!o||r&&!Ht(t.in)||o&&!Gt(t.out))}function Ht(e){if(!S(e,["mediaType","required"]))return false;let t=e;return k(t.mediaType)&&typeof t.required=="boolean"}function Gt(e){if(!S(e,["mediaType","range"]))return false;let t=e;return k(t.mediaType)&&typeof t.range=="boolean"}function Me(e){return typeof e=="string"&&_e.test(e)}function zt(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function Vt(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 S(e,t){return R(e,t,t)}function R(e,t,n=[]){if(!Ce(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 Ce(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function P(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}export{le as ANTIGRAVITY_MODEL_COMPATIBILITY,Te as BUILTIN_THREAD_STATES,q as BrowserFsAdapter,pe as CLAUDE_MODEL_COMPATIBILITY_PAIRS,Qe as CLAUDE_OPUS_4_8_BASE_MODEL_ID,Ze as CLAUDE_OPUS_4_8_LEGACY_MODEL_ID,E as ConfigLoadError,F as Crewx,qe as EFFORT_LEVELS,Ot as MCP_APP_HOST_TOOL_ALLOWLIST,Ke as PROVIDER_ARGV_EFFORTS,K as PROVIDER_ORDER,f as ProviderError,he as THREAD_PRIORITIES,ee as UI_CONTENT_MEDIA_TYPES,St as buildMcpAppContentActions,Ne as classifyTaskError,ht as compareProviders,Ut as contentActionsMatch,O as createProvider,Ae as customStateLabel,It as getDefaultAgentProfile,Mt as hasThreadTitleKey,te as isMcpAppContentActions,Q as isThreadPriority,Z as isThreadState,k as isUiContentMediaType,Ee as isValidUiAppInstanceId,Rt as matchesThreadTitleFilter,Ct as mergeThreadTitleMeta,ft as normalizeClaudeMode,At as normalizeProviderId,Pt as parseThreadPriorityFilter,kt as parseThreadStateFilter,lt as parseYamlContent,Y as providerRank,Ie as readThreadTitleMeta,j as redactTechnicalMessage,B as registerProviderFactory,ue as resolveAntigravityModel,ce as resolveCatalogModelId,$ as resolveProviderCatalogModel,vt as threadTitleSearchHaystack};
|
|
6
|
+
`,i):e.length;n+=e.slice(r,o.index),n+=`[HTTP BODY ${f}]`,r=s;}return n+e.slice(r)}function rt(e,t){let n=e[t];if(n==='"'||n==="'")return ot(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 ot(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 it=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"]),st=new Set(["plan","plan-auto","read-only"]),at={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"},pt=[{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 dt(e){try{if(!I(e)||e.status!=="failed")return J();let t=ct(e.error);if(ne(t.message))return J();let n=y(e.providerId)??t.provider??null,r=ut(e.logs),o=Oe(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:ht(e.exitCode),mode:t.mode,fromProviderCodeField:!!t.providerCode}):void 0;if(a)return R(a,n,t.message,t,i);let s=gt(r);if(!lt(t)&&s&&(s.type==="user_stop"||ne(s.message)))return J();if(s){let l=ft(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=mt(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 ct(e){let t=typeof e=="string"?C(e):e;return I(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 lt(e){return !!(e.code||e.providerCode||e.message)}function ut(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):I(e)&&t.push(e);return t.flatMap(E)}function E(e){if(!I(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(E);if(I(o))return E(o);let i=n.split(/\r?\n/).map(a=>C(a.trim())).filter(a=>I(a));return i.length>0?i.flatMap(E):e.level==="stderr"?[{type:"stderr",message:n,rank:1,structuredFailure:false}]:E({type:"info",content:n})}if(t==="rate_limit_event"){let o=Pe(e.rate_limit_info);return y(o?.status)!=="rejected"?[]:[{type:t,code:"RATE_LIMITED",message:w(o?.message,e.message),resetAt:At(o?.resetsAt),rank:4,structuredFailure:true}]}if(t==="turn.failed"||t==="error"){let o=Pe(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(I(o))return E(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 gt(e){return [...e].sort((t,n)=>n.rank-t.rank)[0]}function ft(e,t,n){let r=Oe(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 mt(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 pt.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&&yt(n.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return at[r]}function Oe(e){let t=N(e);return t&&it.has(t)?t:void 0}function N(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function yt(e){return typeof e=="string"&&st.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 I(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pe(e){return I(e)?e:void 0}function y(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function At(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function ht(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function w(...e){return e.map(y).find(t=>!!t)}var Tt=["none","minimal","low","medium","high","xhigh","max","ultra"],It={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 Et="claude-opus-4-8",Ct="claude-opus-4-8[1m]",Me=[{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 Pt=new Map(Me.map(({baseModelId:e,catalogModelId:t})=>[e,t]));function Re(e){return Pt.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"}],Ot=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=Ot.get(e);return t?{...t}:{model:e}}function oe(e,t){return e==="antigravity"||e==="cli/antigravity"?ke(t):t===void 0?{}:{model:Re(t)}}var ve=30,be=80;Object.keys(Rt.special_tokens);var wt=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()),kt=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),vt=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:wt.optional(),skills:kt}).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 bt=z$1.number().finite().int().min(ve).max(be),St=z$1.object({inputBudgetPercent:bt.optional()}).catchall(z$1.unknown()),Dt=z$1.object({continuity:St.optional()}).catchall(z$1.unknown()),Ut=z$1.object({bin_resolution:z$1.enum(["global_first","local_first"]).optional(),dreaming:Dt.optional(),wi:z$1.object({boards:z$1.array(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()),Se=z$1.object({agents:z$1.array(vt).optional(),hooks:z$1.array(z$1.unknown()).optional(),settings:Ut.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 Lt(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=Bt(t),r=Se.safeParse(n);if(!r.success)throw new P(`Config validation error: ${r.error.message}`);return r.data}function Bt(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 Ft={auto:"default"};function jt(e){return Ft[e]??e}var Ht="crewx:fs:",ie=class{prefix;store;constructor(t){this.prefix=t?.prefix??Ht,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 Gt(e){let t=e.indexOf("/");return t===-1?e:e.slice(t+1)}function ae(e){let t=Gt(e),n=se.indexOf(t);return n===-1?se.length:n}function zt(e,t){return ae(e)-ae(t)}var Vt=new Set(["claude","copilot","codex","grok","opencode"]);function Wt(e){if(!e)return "";if(e.startsWith("acp/")){let t=e.slice(4);if(Vt.has(t))return `cli/${t}`}return e}function B(e){return {mode:e.mode,effort:e.effort}}function qt(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 Ue=["urgent","high","medium","low"],Ne=["investigating","in-progress","in-review","on-hold","done"],k="custom:";var $t=new Set(Ue),Xt=new Set(Ne),Yt={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 De(e,t){return !t||t.includes(e)?t??e:`${e} ${t}`}function de(e){return typeof e=="string"&&$t.has(e)}function ce(e){if(typeof e!="string")return false;if(Xt.has(e))return true;if(e.startsWith("c_"))return e.length>2;if(!e.startsWith(k))return false;let t=e.slice(k.length);return t.length>=1&&t.length<=20}function Le(e){if(e.startsWith(k))return e.slice(k.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 Kt(e){let t=le(e);return !!t&&Object.prototype.hasOwnProperty.call(t,"threadTitle")}function Be(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 Qt(e,t){let n=le(e)??{},r={...Be(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 Zt(e,t=new Map){let n=[];return e.priority&&n.push(De(Yt[e.priority],t.get(e.priority))),e.state&&(e.state.startsWith(k)?n.push(Le(e.state)??""):pe[e.state]?n.push(De(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 Fe(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 Jt(e){return Fe(e,de)}function en(e){return Fe(e,ce)}function tn(e,t){return t?e?t.values.has(e):t.includeNone:true}var nn=["crewx_app_terminal_connect","crewx_app_html_viewer_open"];var ue=["text/plain","application/json"];var rn=["__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(rn);var je=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/;var on=/^uic_[A-Za-z0-9_-]+$/,sn=/^[0-9a-f]{64}$/,h="MCP App content declarations are invalid";function b(e){return typeof e=="string"&&ue.includes(e)}function F(e){return typeof e=="string"&&e.length<=128&&on.test(e)}function an(e,t){try{let n=t,r=v(n,"actions");if(!Ge(r))throw new Error(h);let o=[];for(let a of Object.keys(r)){let s=v(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=dn(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:v(n,"id"),version:v(n,"version"),hash:v(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||!F(t.instanceId)||!un(t.definition))return !1;let n=t.actions;if(!An(n)||n.length===0)return !1;let r;for(let o=0;o<n.length;o+=1){let i=n[o];if(!gn(i)||r!==void 0&&!(r<i.actionId))return !1;r=i.actionId;}return !0}catch{return false}}function pn(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 dn(e){if(!S(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:cn(t.in)}:{},...r?{out:ln(t.out)}:{}}}function cn(e){if(!S(e,["mediaType","required"],["mediaType"]))throw new Error(h);let t=e,n=t.mediaType,r=Object.hasOwn(t,"required")?t.required:false;if(!b(n)||typeof r!="boolean")throw new Error(h);return {mediaType:n,required:r}}function ln(e){if(!S(e,["mediaType","range"],["mediaType"]))throw new Error(h);let t=e,n=t.mediaType,r=Object.hasOwn(t,"range")?t.range:false;if(!b(n)||typeof r!="boolean")throw new Error(h);return {mediaType:n,range:r}}function un(e){if(!j(e,["id","version","hash"]))return false;let t=e;return He(t.id)&&yn(t.version)&&typeof t.hash=="string"&&sn.test(t.hash)}function gn(e){if(!S(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"||!He(n)||!r&&!o||r&&!fn(t.in)||o&&!mn(t.out))}function fn(e){if(!j(e,["mediaType","required"]))return false;let t=e;return b(t.mediaType)&&typeof t.required=="boolean"}function mn(e){if(!j(e,["mediaType","range"]))return false;let t=e;return b(t.mediaType)&&typeof t.range=="boolean"}function He(e){return typeof e=="string"&&je.test(e)}function yn(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function An(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 S(e,t,t)}function S(e,t,n=[]){if(!Ge(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 Ge(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function v(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 hn="crewx/openApp",me=1,Tn="ui/crewx-open-app",In="ui/crewx-open-app-status",Ve=32768,We=8,ye=["opened","completed","pending"],Ae=["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"],he=["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"},_n=/^[A-Za-z0-9-]{8,64}$/,xn=/^[A-Za-z0-9_-]{1,128}$/,z=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/,En=new TextEncoder,ze=/\p{Surrogate}/u,Cn=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"||!_n.test(e))&&u(),e}function M(e){(typeof e!="string"||!xn.test(e))&&u();let t=e.indexOf("_");return (t<0||t===e.length-1)&&u(),q(e.slice(0,t)),e}function qe(e){return M(e).slice(0,e.indexOf("_"))}function $e(e){return F(e)||u(),e}function O(e,t){let n=t.find(r=>r===e);return n===void 0&&u(),n}function fe(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 ze.test(e)&&u(),JSON.stringify(e);if(t>We&&u(),Array.isArray(e)){let o=[];for(let i=0;i<e.length;i+=1)D(e,String(i))||u(),o.push(fe(e[i],t+1));return `[${o.join(",")}]`}W(e)||u();let n=e;return `{${Object.keys(n).sort().map(o=>((Cn.has(o)||ze.test(o))&&u(),`${JSON.stringify(o)}:${fe(n[o],t+1)}`)).join(",")}}`}function Pn(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 Xe(e){return {version:me,sessionId:q(e)}}function On(e){let t=_(e,["version","sessionId"]);return t.version!==me&&u(),Xe(q(t.sessionId))}function Mn(e,t){return typeof t!="string"&&u(),M(`${q(e)}_${t}`)}function Ye(e){let t=fe(Pn(e),1);return En.encode(t).byteLength>Ve&&u(),t}function Rn(e){return JSON.parse(Ye(e))}function wn(e){let t=_(e,["requestId"]);return {requestId:M(t.requestId)}}function Ke(e){return {status:O(e.status,ye),appId:V(e.appId,z),instanceId:$e(e.instanceId),requestId:M(e.requestId)}}function Qe(e,t){let n=O(e,Ae);return t===void 0?{isError:true,_meta:{errorCode:n}}:{isError:true,_meta:{errorCode:n,causeCode:O(t,he)}}}function kn(e){if(W(e)||u(),D(e,"isError")){let n=_(e,["isError","_meta"]);n.isError!==true&&u();let r=_(n._meta,["errorCode"],["causeCode"]);return Qe(O(r.errorCode,Ae),D(r,"causeCode")?O(r.causeCode,he):void 0)}let t=_(e,["status","appId","instanceId","requestId"]);return Ke({status:O(t.status,ye),appId:V(t.appId,z),instanceId:$e(t.instanceId),requestId:M(t.requestId)})}function H(e,t){return {state:"failed",errorCode:e,causeCode:t}}function vn(e){if(e.kind==="pending"||e.status==="requested")return {state:"pending"};if(e.outcome==="succeeded")return {state:"completed"};switch(e.outcome){case "rejected":return H("UI_APP_OPEN_REJECTED","RECEIPT_REJECTED");case "conflicted":return H("UI_APP_OPEN_STALE","RECEIPT_CONFLICTED");case "expired":return H("UI_APP_OPEN_STALE","RECEIPT_EXPIRED");default:return H("UI_APP_OPEN_FAILED","RECEIPT_FAILED")}}function Te(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 bn(e){if(qe(e.requestId)!==e.activeSessionId)return "stale";let{lookup:t}=e;return t.kind==="absent"?t.capacity==="full"?"busy":"new":Te(t.record.source,e.source)&&t.record.payloadDigest===e.payloadDigest?"known":"conflict"}function Sn(e){return qe(e.requestId)!==e.activeSessionId||e.lookup.kind!=="present"?"stale":Te(e.lookup.record.source,e.source)?"known":"stale"}export{we as ANTIGRAVITY_MODEL_COMPATIBILITY,Ne as BUILTIN_THREAD_STATES,ie as BrowserFsAdapter,Me as CLAUDE_MODEL_COMPATIBILITY_PAIRS,Et as CLAUDE_OPUS_4_8_BASE_MODEL_ID,Ct as CLAUDE_OPUS_4_8_LEGACY_MODEL_ID,hn as CREWX_OPEN_APP_CAPABILITY,me as CREWX_OPEN_APP_CAPABILITY_VERSION,We as CREWX_OPEN_APP_MAX_JSON_DEPTH,Ve as CREWX_OPEN_APP_MAX_PARAMS_BYTES,Tn as CREWX_OPEN_APP_METHOD,In as CREWX_OPEN_APP_STATUS_METHOD,ye as CREWX_OPEN_APP_SUCCESS_STATUSES,P as ConfigLoadError,Q as Crewx,G as CrewxOpenAppError,Tt as EFFORT_LEVELS,nn as MCP_APP_HOST_TOOL_ALLOWLIST,It as PROVIDER_ARGV_EFFORTS,se as PROVIDER_ORDER,m as ProviderError,Ue as THREAD_PRIORITIES,he as UI_APP_OPEN_CAUSE_CODES,Ae as UI_APP_OPEN_ERROR_CODES,ue as UI_CONTENT_MEDIA_TYPES,an as buildMcpAppContentActions,Ye as canonicalCrewxOpenAppPayload,dt as classifyTaskError,zt as compareProviders,pn as contentActionsMatch,Xe as createCrewxOpenAppCapabilityDeclaration,Qe as createCrewxOpenAppErrorResult,Mn as createCrewxOpenAppRequestId,Ke as createCrewxOpenAppSuccessResult,U as createProvider,Le as customStateLabel,bn as decideCrewxOpenAppOpen,Sn as decideCrewxOpenAppStatus,qt as getDefaultAgentProfile,Kt as hasThreadTitleKey,ge as isMcpAppContentActions,Te as isSameCrewxOpenAppSourceBinding,de as isThreadPriority,ce as isThreadState,b as isUiContentMediaType,F as isValidUiAppInstanceId,tn as matchesThreadTitleFilter,Qt as mergeThreadTitleMeta,jt as normalizeClaudeMode,Wt as normalizeProviderId,On as parseCrewxOpenAppCapabilityDeclaration,Rn as parseCrewxOpenAppRequest,kn as parseCrewxOpenAppResult,wn as parseCrewxOpenAppStatusRequest,Jt as parseThreadPriorityFilter,en as parseThreadStateFilter,Lt as parseYamlContent,ae as providerRank,Be as readThreadTitleMeta,Z as redactTechnicalMessage,K as registerProviderFactory,ke as resolveAntigravityModel,Re as resolveCatalogModelId,vn as resolveCrewxOpenAppActionOutcome,oe as resolveProviderCatalogModel,Zt as threadTitleSearchHaystack};
|
package/dist/index.d.ts
CHANGED
|
@@ -16,8 +16,8 @@ export type { UiAuditSnapshotInput, UiDefinitionLineageEntry, UiDefinitionLineag
|
|
|
16
16
|
export type { UiRuntimeErrorCode } from './ui-instance/index.js';
|
|
17
17
|
export { findProjectionViolations } from './ui-instance/json.js';
|
|
18
18
|
export type { FindProjectionViolationsOptions, ProjectionRule, ProjectionViolation, } from './ui-instance/json.js';
|
|
19
|
-
export { MAX_HTML_LENGTH, MCP_APP_HOST_TOOL_ALLOWLIST, MCP_CORE_TOOL_NAMES, MCP_APP_LOCAL_RESOURCE_MIME_TYPE, MCP_APP_RESOURCE_MIME_TYPE, MCP_APP_RESOURCE_URI_PREFIX, McpAppContractError, resolveAgentAccess, listMcpAppAgentActions, MCP_APP_PROJECTION_MAX_BYTES, MCP_APP_MODEL_CONTEXT_MAX_ARRAY_LENGTH, MCP_APP_MODEL_CONTEXT_MAX_BYTES, MCP_APP_MODEL_CONTEXT_MAX_DEPTH, MCP_APP_MODEL_CONTEXT_MAX_STRING_LENGTH, buildMcpAppStateDescriptor, buildMcpAppStateProjections, projectMcpAppSummaryState, attachAvailableApps, buildMcpAppsContext, createBuiltinMcpAppRegistry, buildMcpAppLocalRegistration, buildMcpAppBundleRegistrationInput, buildMcpAppBundleAgentActionDescriptors, planProductBundleLegacyToolNames, productAppBundleReservations, createMcpAppLocalRegistration, registerLocalMcpApp, createMcpAppWorkspaceRegistry, createWorkspaceAppRegistry, createWorkspaceMcpAppRegistry, buildInstalledAppRef, createMcpAppRegistry, createMcpAppToolResult, makeUiUri, resolveMcpAppFixedResultCall, INSTALLED_APP_ENTRY, InstalledAppRefError, registerMcpApp, requireMcpAppResource, resolveLocalMcpAppResource, resolveMcpAppResource, serializeMcpAppStateJson, serializeMcpAppStateXml, sanitizeMcpAppModelContext, serializeMcpAppModelContextXml, toMcpAppToolRegistration, validateInstalledAppRef, AppDiscoveryFsError, NodeAppDiscoveryFs, NodeAppDiscoveryFsAdapter, defaultAppDiscoveryFs, defaultNodeAppDiscoveryFs, deriveWorkspaceAppToolName, deriveWorkspaceAppToolNames, createWorkspaceAppScanCache, discoverWorkspaceAppCandidates, discoverWorkspaceApps, loadProductAppBundleAssets, createWorkspaceAppCatalog, discoverWorkspaceAppCatalog, hashAppDefinition, hashCrewxAppDefinition, listWorkspaceApps, buildWorkspaceAppSnapshot, discoverWorkspaceAppSnapshot, reconfirmWorkspaceAppSnapshot, LOCAL_APP_TOOL_PREFIX, MCP_APP_WORKSPACE_TOOL_PREFIX, scanWorkspaceApps, WORKSPACE_APP_TOOL_PREFIX, SKILL_BACKEND_DEFAULT_TIMEOUT_MS, SKILL_BACKEND_INHERITED_ENV_ALLOWLIST, SKILL_BACKEND_MAX_INPUT_BYTES, SKILL_BACKEND_MAX_OUTPUT_BYTES, SKILL_BACKEND_CONTENT_SCHEMA_VERSION, SKILL_BACKEND_SCHEMA_VERSION, buildSkillBackendHandler, buildSkillBackendChildEnvironment, buildVerifiedBundleSkillBackendHandler, buildMcpAppContentActions, contentActionsMatch, UI_CONTENT_ERROR_CODES, UI_CONTENT_MAX_BYTES, UI_CONTENT_MAX_LINES, UI_CONTENT_MAX_MEMORY_BYTES, UI_CONTENT_MEDIA_TYPES, UI_CONTENT_OUTPUT_TTL_MS, UI_CONTENT_TICKET_TTL_MS, UiContentChannelError, contentBindingMatches, countContentLines, decodeContentUtf8, isUiContentDeclaration, isUiContentMediaType, isMcpAppContentActions, isUiContentRangeRequest, isValidUiAppInstanceId, isValidUiThreadIdentity, sha256Content, validateContentBytes, validateContentFrame, externalResourceCheckItems, inspectSkillBackendOutput, scanExternalResources, } from './mcp-app/index.js';
|
|
20
|
-
export type { AppDevCheckItem, ExternalResourceFinding, ExternalResourceKind, InspectSkillBackendOutputOptions, ScanExternalResourcesOptions, AppDiscoveryBytes, AppDiscoveryDiagnostic, AppDiscoveryDirectoryEntry, AppDiscoveryDirectoryEntryKind, AppDiscoveryDirectoryListing, AppDiscoveryFileSystem, AppDiscoveryFileFingerprint, AppDiscoveryFsErrorCode, AppDiscoveryMaybePromise, AppDiscoveryRootIdentity, AppDiscoveryOptions, McpAppDiscoveryDiagnostic, WorkspaceAppBuiltinCatalog, WorkspaceAppCandidate, WorkspaceAppDiscoveryIncompleteReason, WorkspaceAppDiscoveryOptions, WorkspaceAppDiscoveryResult, WorkspaceAppDiscoverySource, WorkspaceAppDiagnostic, WorkspaceAppDiagnosticCode, WorkspaceAppResourceSnapshot, WorkspaceAppScanCache, WorkspaceAppReservedCatalog, WorkspaceAppSource, WorkspaceAppToolNames, ProductAppBundleDefinitionIdentity, ProductAppBundleFileHash, ProductAppBundleIndex, ProductAppBundleInput, ProductAppBundlePackageIndex, ProductAppBundleReservations, ProductAppBundleProvenance, ProductAppBundleSnapshotMetadata, ProductAppBundleAsset, ProductAppBundleAssetCatalog, ProductAppBundleAssetLoadOptions, WorkspaceAppAsset, WorkspaceAppAssetCatalog, WorkspaceAppAssetDescriptorV1, WorkspaceAppAssetLocator, CrewxAppBuiltinCatalog, CrewxAppCapability, CrewxAppCatalogOptions, CrewxAppCatalogResult, CrewxAppDefinitionHashInput, CrewxAppDefinitionSummary, CrewxAppDiagnostic, CrewxAppDiagnosticCode, CrewxAppDiagnosticSource, CrewxAppInstalledProjection, CrewxAppLocalDefinitionRef, CrewxAppOrigin, CrewxAppOwnership, CrewxAppShareability, CrewxAppSharingAvailability, CrewxAppSummary, McpAppActionDispatcherToolInput, McpAppActionToolDescriptor, McpAppActionToolInput, McpAppButtonDescriptor, McpAppButtonInput, McpAppContractErrorCode, McpAppDescriptor, McpAppDescriptorInput, McpAppInputSchema, McpAppTone, McpUiResourceCsp, McpAppRegistry, McpAppResource, McpAppServerStateInput, McpAppStateDescriptor, McpAppStateProjections, McpAppsContext, McpAppsContextOptions, McpAppModelContext, McpAppModelContextInput, McpAppHostToolInput, McpAppHostToolName, McpCoreToolName, McpAppReadToolInput, McpAppSingleActionToolInput, McpAppToolCommonInput, McpAppToolDescriptor, McpAppFixedResult, McpAppFixedResultCall, McpAppFixedResultInvalidParams, McpAppFixedResultResolution, McpAppFixedResultUnavailable, McpAppToolInput, McpAppToolMetadata, McpAppToolRegistration, McpAppToolResult, McpAppToolVisibility, McpAppInstanceResourceBinding, McpAppMcpResourceBinding, McpAppResourceBinding, McpAppLocalResource, McpAppLocalRegistrationInput, McpAppLocalReadToolDescriptor, McpAppLocalActionToolDescriptor, McpAppLocalSingleActionToolDescriptor, McpAppLocalHostToolDescriptor, McpAppLocalToolDiagnostic, McpAppAgentAccess, McpAppAgentAccessAction, McpAppVerifiedBundleAccessContext, McpAppLocalToolDescriptor, McpAppLocalRegistration, McpAppBuiltinRegistration, McpAppResolvedRegistration, McpAppLocalLauncher, McpAppBuiltinLauncher, McpAppLauncher, WorkspaceAppLauncher, WorkspaceAppResolvedRegistration, McpAppWorkspaceRegistry, WorkspaceAppRegistry, McpAppWorkspaceRegistryInput, WorkspaceAppSnapshot, WorkspaceAppSnapshotBuildOptions, WorkspaceAppSnapshotOptions, WorkspaceAppSnapshotReconfirmResult, WorkspaceAppSnapshotResource, WorkspaceAppSnapshotInitialState, WorkspaceAppInitialState, BuildInstalledAppRefInput, InstalledAppPackageFile, InstalledAppRef, InstalledAppRefErrorCode, SkillBackendExecutionPort, SkillBackendExecutionRequest, SkillBackendExecutionResponse, SkillBackendHandlerBuildInput, SkillBackendInfrastructureErrorCode, SkillBackendPayload, SkillBackendChildEnvironment, VerifiedBundleSkillBackendBuildInput, VerifiedBundleSkillRunnerPort, VerifiedBundleSkillSpawnRequest, McpAppRegistryOptions, McpAppBundleHostToolTemplate, McpAppBundleAgentActionDescriptor, SkillBackendPayloadV1, SkillBackendPayloadV2, SkillBackendContentInputHeader, SkillBackendContentOutputHeader, ContentFrame, McpAppContentActionDeclaration, McpAppContentActions, UiActionContentDeclaration, UiContentBinding, UiContentChannelPort, UiContentErrorCode, UiContentInputDeclaration, UiContentInputTicket, UiContentMediaType, UiContentOutputDeclaration, UiContentRange, UiContentRangeRequest, ValidateContentFrameOptions, } from './mcp-app/index.js';
|
|
19
|
+
export { MAX_HTML_LENGTH, MCP_APP_HOST_TOOL_ALLOWLIST, MCP_CORE_TOOL_NAMES, MCP_APP_LOCAL_RESOURCE_MIME_TYPE, MCP_APP_RESOURCE_MIME_TYPE, MCP_APP_RESOURCE_URI_PREFIX, McpAppContractError, resolveAgentAccess, listMcpAppAgentActions, MCP_APP_CARD_HANDLERS, isMcpAppCardHandler, isMcpAppCardAction, MCP_APP_PROJECTION_MAX_BYTES, MCP_APP_MODEL_CONTEXT_MAX_ARRAY_LENGTH, MCP_APP_MODEL_CONTEXT_MAX_BYTES, MCP_APP_MODEL_CONTEXT_MAX_DEPTH, MCP_APP_MODEL_CONTEXT_MAX_STRING_LENGTH, buildMcpAppStateDescriptor, buildMcpAppStateProjections, projectMcpAppSummaryState, attachAvailableApps, buildMcpAppsContext, createBuiltinMcpAppRegistry, buildMcpAppLocalRegistration, buildMcpAppBundleRegistrationInput, buildMcpAppBundleAgentActionDescriptors, planProductBundleLegacyToolNames, productAppBundleReservations, createMcpAppLocalRegistration, registerLocalMcpApp, createMcpAppWorkspaceRegistry, createWorkspaceAppRegistry, createWorkspaceMcpAppRegistry, buildInstalledAppRef, createMcpAppRegistry, createMcpAppToolResult, makeUiUri, resolveMcpAppFixedResultCall, INSTALLED_APP_ENTRY, InstalledAppRefError, registerMcpApp, requireMcpAppResource, resolveLocalMcpAppResource, resolveMcpAppResource, serializeMcpAppStateJson, serializeMcpAppStateXml, sanitizeMcpAppModelContext, serializeMcpAppModelContextXml, toMcpAppToolRegistration, validateInstalledAppRef, AppDiscoveryFsError, NodeAppDiscoveryFs, NodeAppDiscoveryFsAdapter, defaultAppDiscoveryFs, defaultNodeAppDiscoveryFs, deriveWorkspaceAppToolName, deriveWorkspaceAppToolNames, createWorkspaceAppScanCache, discoverWorkspaceAppCandidates, discoverWorkspaceApps, loadProductAppBundleAssets, createWorkspaceAppCatalog, discoverWorkspaceAppCatalog, hashAppDefinition, hashCrewxAppDefinition, listWorkspaceApps, buildWorkspaceAppSnapshot, discoverWorkspaceAppSnapshot, reconfirmWorkspaceAppSnapshot, LOCAL_APP_TOOL_PREFIX, MCP_APP_WORKSPACE_TOOL_PREFIX, scanWorkspaceApps, WORKSPACE_APP_TOOL_PREFIX, SKILL_BACKEND_DEFAULT_TIMEOUT_MS, SKILL_BACKEND_INHERITED_ENV_ALLOWLIST, SKILL_BACKEND_MAX_INPUT_BYTES, SKILL_BACKEND_MAX_OUTPUT_BYTES, SKILL_BACKEND_CONTENT_SCHEMA_VERSION, SKILL_BACKEND_SCHEMA_VERSION, buildSkillBackendHandler, buildSkillBackendChildEnvironment, buildVerifiedBundleSkillBackendHandler, buildMcpAppContentActions, contentActionsMatch, UI_CONTENT_ERROR_CODES, UI_CONTENT_MAX_BYTES, UI_CONTENT_MAX_LINES, UI_CONTENT_MAX_MEMORY_BYTES, UI_CONTENT_MEDIA_TYPES, UI_CONTENT_OUTPUT_TTL_MS, UI_CONTENT_TICKET_TTL_MS, UiContentChannelError, contentBindingMatches, countContentLines, decodeContentUtf8, isUiContentDeclaration, isUiContentMediaType, isMcpAppContentActions, isUiContentRangeRequest, isValidUiAppInstanceId, isValidUiThreadIdentity, sha256Content, validateContentBytes, validateContentFrame, externalResourceCheckItems, inspectSkillBackendOutput, scanExternalResources, } from './mcp-app/index.js';
|
|
20
|
+
export type { AppDevCheckItem, ExternalResourceFinding, ExternalResourceKind, InspectSkillBackendOutputOptions, ScanExternalResourcesOptions, AppDiscoveryBytes, AppDiscoveryDiagnostic, AppDiscoveryDirectoryEntry, AppDiscoveryDirectoryEntryKind, AppDiscoveryDirectoryListing, AppDiscoveryFileSystem, AppDiscoveryFileFingerprint, AppDiscoveryFsErrorCode, AppDiscoveryMaybePromise, AppDiscoveryRootIdentity, AppDiscoveryOptions, McpAppDiscoveryDiagnostic, WorkspaceAppBuiltinCatalog, WorkspaceAppCandidate, WorkspaceAppDiscoveryIncompleteReason, WorkspaceAppDiscoveryOptions, WorkspaceAppDiscoveryResult, WorkspaceAppDiscoverySource, WorkspaceAppDiagnostic, WorkspaceAppDiagnosticCode, WorkspaceAppResourceSnapshot, WorkspaceAppScanCache, WorkspaceAppReservedCatalog, WorkspaceAppSource, WorkspaceAppToolNames, ProductAppBundleDefinitionIdentity, ProductAppBundleFileHash, ProductAppBundleIndex, ProductAppBundleInput, ProductAppBundlePackageIndex, ProductAppBundleReservations, ProductAppBundleProvenance, ProductAppBundleSnapshotMetadata, ProductAppBundleAsset, ProductAppBundleAssetCatalog, ProductAppBundleAssetLoadOptions, WorkspaceAppAsset, WorkspaceAppAssetCatalog, WorkspaceAppAssetDescriptorV1, WorkspaceAppAssetLocator, CrewxAppBuiltinCatalog, CrewxAppCapability, CrewxAppCatalogOptions, CrewxAppCatalogResult, CrewxAppDefinitionHashInput, CrewxAppDefinitionSummary, CrewxAppDiagnostic, CrewxAppDiagnosticCode, CrewxAppDiagnosticSource, CrewxAppInstalledProjection, CrewxAppLocalDefinitionRef, CrewxAppOrigin, CrewxAppOwnership, CrewxAppShareability, CrewxAppSharingAvailability, CrewxAppSummary, McpAppActionDispatcherToolInput, McpAppActionToolDescriptor, McpAppActionToolInput, McpAppButtonDescriptor, McpAppButtonInput, McpAppContractErrorCode, McpAppDescriptor, McpAppDescriptorInput, McpAppInputSchema, McpAppTone, McpUiResourceCsp, McpAppRegistry, McpAppResource, McpAppServerStateInput, McpAppStateDescriptor, McpAppStateProjections, McpAppLayoutSnapshot, McpAppPromptResult, McpAppPromptStatus, McpAppWindowState, McpAppStateView, McpAppsContext, McpAppsContextOptions, McpAppModelContext, McpAppModelContextInput, McpAppHostToolInput, McpAppHostToolName, McpCoreToolName, McpAppReadToolInput, McpAppSingleActionToolInput, McpAppToolCommonInput, McpAppToolDescriptor, McpAppFixedResult, McpAppFixedResultCall, McpAppFixedResultInvalidParams, McpAppFixedResultResolution, McpAppFixedResultUnavailable, McpAppToolInput, McpAppToolMetadata, McpAppToolRegistration, McpAppToolResult, McpAppToolVisibility, McpAppInstanceResourceBinding, McpAppMcpResourceBinding, McpAppResourceBinding, McpAppLocalResource, McpAppLocalRegistrationInput, McpAppLocalReadToolDescriptor, McpAppLocalActionToolDescriptor, McpAppLocalSingleActionToolDescriptor, McpAppLocalHostToolDescriptor, McpAppLocalToolDiagnostic, McpAppAgentAccess, McpAppAgentAccessAction, McpAppVerifiedBundleAccessContext, McpAppCardHandler, McpAppLocalToolDescriptor, McpAppLocalRegistration, McpAppBuiltinRegistration, McpAppResolvedRegistration, McpAppLocalLauncher, McpAppBuiltinLauncher, McpAppLauncher, WorkspaceAppLauncher, WorkspaceAppResolvedRegistration, McpAppWorkspaceRegistry, WorkspaceAppRegistry, McpAppWorkspaceRegistryInput, WorkspaceAppSnapshot, WorkspaceAppSnapshotBuildOptions, WorkspaceAppSnapshotOptions, WorkspaceAppSnapshotReconfirmResult, WorkspaceAppSnapshotResource, WorkspaceAppSnapshotInitialState, WorkspaceAppInitialState, BuildInstalledAppRefInput, InstalledAppPackageFile, InstalledAppRef, InstalledAppRefErrorCode, SkillBackendExecutionPort, SkillBackendExecutionRequest, SkillBackendExecutionResponse, SkillBackendHandlerBuildInput, SkillBackendInfrastructureErrorCode, SkillBackendPayload, SkillBackendChildEnvironment, VerifiedBundleSkillBackendBuildInput, VerifiedBundleSkillRunnerPort, VerifiedBundleSkillSpawnRequest, McpAppRegistryOptions, McpAppBundleHostToolTemplate, McpAppBundleAgentActionDescriptor, SkillBackendPayloadV1, SkillBackendPayloadV2, SkillBackendContentInputHeader, SkillBackendContentOutputHeader, ContentFrame, McpAppContentActionDeclaration, McpAppContentActions, UiActionContentDeclaration, UiContentBinding, UiContentChannelPort, UiContentErrorCode, UiContentInputDeclaration, UiContentInputTicket, UiContentMediaType, UiContentOutputDeclaration, UiContentRange, UiContentRangeRequest, ValidateContentFrameOptions, } from './mcp-app/index.js';
|
|
21
21
|
export { APP_MANIFEST_FILE, APP_MANIFEST_FILES, APP_TOOLS_FILE, APP_MANIFEST_PASSTHROUGH_KEYS, APP_MANIFEST_REQUIRED_KEYS, CREWX_META_NAMESPACE, CREWX_META_OPTIONAL_KEYS, CREWX_META_REQUIRED_KEYS, LEGACY_APP_MANIFEST_FILE, MCPB_MANIFEST_KEYS, MCPB_MANIFEST_VERSION, appManifestDefinitionHash, canonicalManifestJson, isAppSemver, manifestHash, normalizeManifest, resolveAppManifest, UiPluginValidationError, validateInitialState, validateManifest, validatePayload, } from './ui-plugin/index.js';
|
|
22
22
|
export type { AppManifestFailure, AppManifestFileBytes, AppManifestFileName, AppManifestFileResult, AppManifestIdentity, AppManifestOptions, AppManifestReason, AppManifestRejection, AppManifestRejectionCode, AppManifestResult, AppManifestSource, AppToolsFileName, } from './ui-plugin/index.js';
|
|
23
23
|
export { APP_TOOLS_SCHEMA_VERSION, APP_TOOL_ENTRY } from './app/tool-mode.js';
|
|
@@ -29,7 +29,7 @@ export { DEFAULT_PUBLISH_MAX_BYTES, DEFAULT_PUBLISH_MAX_FILES, packApp, packPubl
|
|
|
29
29
|
export type { BuildAppManifestOptions, BuildManifestOptions, CreateArchiveOptions, ExcludedEntry, ManifestFile, PublishAppManifest, PublishErrorCode, PublishManifest, PublishOptions, PublishPlan, PublishTemplateManifest, PublishUploadOptions, PublishUploadResult, ScanResult, SecretFinding, } from './publish/index.js';
|
|
30
30
|
export { CrewxPlugin } from './plugin';
|
|
31
31
|
export { TypedEventEmitter } from './events/TypedEventEmitter';
|
|
32
|
-
export type { CrewxEvents, CrewxEventName, CrewxEventPayload, BaseEvent, ActorKind, TaskStartEvent, TaskEndEvent, TaskOutputEvent, AdapterLifecycleEvent, AdapterMessageEvent, UnsubscribeFn, } from './events/types';
|
|
32
|
+
export type { CrewxEvents, CrewxEventName, CrewxEventPayload, BaseEvent, ActorKind, TaskStartEvent, TaskEndEvent, TaskOutputEvent, TaskProviderInputEvent, AdapterLifecycleEvent, AdapterMessageEvent, UnsubscribeFn, } from './events/types';
|
|
33
33
|
export type { LayoutSpec, RenderAgentPromptOptions, SkillEntry } from './facade/Crewx';
|
|
34
34
|
export { LayoutLoader } from './layout/loader';
|
|
35
35
|
export { LayoutRenderer } from './layout/renderer';
|
|
@@ -84,7 +84,7 @@ export { DEFAULT_INPUT_BUDGET_PERCENT, MIN_INPUT_BUDGET_PERCENT, MAX_INPUT_BUDGE
|
|
|
84
84
|
export type { InputBudgetUnresolvedReason, TokenizerFallbackReason, ResolveInputBudgetOptions, TokenizerOptions, TokenizerMetadata, ResolvedInputBudget, UnresolvedInputBudget, ResolveInputBudgetResult, ContextBudgetPhase, ProviderInitialInputFraming, ContextBudgetManifest, TokenCountResult, TokenCounter, ContextBudgetLayoutCapability, ContextBudgetActivityDegradation, ContextBudgetAssemblyErrorCode, } from './context-budget';
|
|
85
85
|
export { ContextBudgetLayoutError, DEFAULT_HIGHLIGHT_BUDGET_PERCENT, DEFAULT_PROTECTED_TURN_COUNT, MAX_ACTIVE_HIGHLIGHT_CHARS, MAX_ACTIVE_HIGHLIGHTS, MAX_THREAD_STATE_VALUE_CHARS, MAX_THREAD_TITLE_CHARS, buildSemanticContinuityContext, buildThreadStateContext, getConversationMessageTaskId, groupConversationTurns, materializeConversationTurn, selectConversationHighlights, selectConversationTurns, } from './context-budget';
|
|
86
86
|
export type { BuildSemanticContinuityContextOptions, ConversationHighlightSelection, ConversationTurn, ConversationTurnSelection, GroupedConversationTurns, SelectConversationHighlightsOptions, SelectConversationTurnsOptions, } from './context-budget';
|
|
87
|
-
export type { ConversationHighlight, ConversationMessage, ConversationSemanticContinuityContext, ConversationThreadState, ConversationThreadStateValue, ConversationThread, FetchHistoryOptions, IConversationHistoryProvider, Platform, SemanticContinuityContext, TemplateMessage, ThreadStateContext, } from './conversation/types.js';
|
|
87
|
+
export type { ConversationHighlight, ConversationMessage, ConversationSemanticContinuityContext, ConversationThreadState, ConversationThreadStateValue, ConversationThread, FetchHistoryOptions, IConversationHistoryProvider, Platform, SemanticContinuityContext, TemplateMessage, TemplateAppCard, ThreadStateContext, } from './conversation/types.js';
|
|
88
88
|
export { MAX_THREAD_HIGHLIGHTS_PER_THREAD, MAX_THREAD_HIGHLIGHTS_PER_RUN, MAX_THREAD_HIGHLIGHT_REGENERATION_CANDIDATES, MAX_THREAD_HIGHLIGHT_PROMPT_LENGTH, MAX_THREAD_HIGHLIGHT_TURN_TEXT_LENGTH, THREAD_HIGHLIGHT_CONSOLIDATION_PROMPT_INSTRUCTIONS, THREAD_HIGHLIGHT_PROMPT_INSTRUCTIONS, THREAD_HIGHLIGHTER_AGENT_ID, THREAD_HIGHLIGHTER_PROVIDER_ORDER, ThreadHighlightGenerationError, ThreadHighlightGenerator, ThreadHighlighter, ThreadHighlightConsolidationItemSchema, ThreadHighlightConsolidationResponseSchema, ThreadHighlightInputValidationError, ThreadHighlightItemSchema, ThreadHighlightOutputValidationError, ThreadHighlightResponseSchema, buildThreadHighlightPrompt, buildThreadHighlightConsolidationPrompt, consolidateThreadHighlights, detectThreadHighlightBatches, generateThreadHighlightBatches, generateThreadHighlights, parseThreadHighlightResponse, parseThreadHighlightConsolidationResponse, redactThreadHighlightSecrets, } from './highlight/thread-highlighter.js';
|
|
89
89
|
export type { ThreadHighlightConsolidationHighlight, ThreadHighlightConsolidationInput, ThreadHighlightConsolidationItem, ThreadHighlightConsolidationOptions, ThreadHighlightConsolidationResponse, ThreadHighlightConsolidationResult, ThreadHighlightConsolidationSuccess, ThreadHighlightFailureCode, ThreadHighlightBatchDetectionResult, ThreadHighlightBatchDetectionSuccess, ThreadHighlightBatchDetectorOptions, ThreadHighlightGenerationFailure, ThreadHighlightGenerationFailureResult, ThreadHighlightGenerationInput, ThreadHighlightGenerationResult, ThreadHighlightGenerationSuccess, ThreadHighlightGeneratorOptions, ThreadHighlightItem, ThreadHighlightRegenerationInput, ThreadHighlightProviderAttempt, ThreadHighlightProviderAttemptOutcome, ThreadHighlightProviderId, ThreadHighlightResponse, ThreadHighlightTaskTurn, ThreadHighlightWriter, } from './highlight/thread-highlighter.js';
|
|
90
90
|
export { createProvider, ProviderError, ClientToolCallRequiredError, registerProviderFactory, mergeAdditionalArgs } from './provider/bridge';
|
|
@@ -151,6 +151,7 @@ export type { StopTaskGenerationForInstructionOptions, StopTaskOptions, StopTask
|
|
|
151
151
|
export { isTaskRetryableByDefault, LEGACY_TASK_TERMINAL_ERROR_PATTERNS, normalizeTaskRow, normalizeTaskStatus, readTaskTerminalReason, storedTaskStatusesFor, TASK_TERMINAL_STATUSES, TASK_TERMINAL_STORED_STATUSES, } from './repository/task-status.js';
|
|
152
152
|
export type { TaskStatus, TaskStatusInput, TaskTerminalReason, TaskTerminalStatus, } from './repository/task-status.js';
|
|
153
153
|
export type { TaskRow, TaskKillResult, TaskKillStatus } from './repository/task.repository.js';
|
|
154
|
+
export type { ProviderInputEpochEntry, ProviderInputRecord } from './repository/task.repository.js';
|
|
154
155
|
export { runHeartbeatTick, startTaskHeartbeat, stopTaskHeartbeat, TASK_STOP_POLL_INTERVAL_MS, taskHeartbeatRegistry, } from './lifecycle/task-heartbeat.js';
|
|
155
156
|
export type { HeartbeatTickResult, TaskHeartbeatHandle, TaskHeartbeatOptions, TaskHeartbeatRow, } from './lifecycle/task-heartbeat.js';
|
|
156
157
|
export { checkProcessOwnership, checkProcessOwnershipAsync, probeProcessLiveness, terminateProcessTree, UNIX_PROCESS_POLL_INTERVAL_MS, UNIX_SIGKILL_CONFIRM_MS, UNIX_SIGTERM_GRACE_MS, } from './process/process-control.js';
|