@crewx/sdk 0.9.0-rc.12 → 0.9.0-rc.121

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/README.md +1 -1
  2. package/dist/account/auth-client.d.ts +61 -0
  3. package/dist/account/auth-json-v2.d.ts +1 -0
  4. package/dist/account/auth-json.d.ts +30 -0
  5. package/dist/account/config.d.ts +37 -0
  6. package/dist/account/env-bootstrap.d.ts +11 -0
  7. package/dist/account/errors.d.ts +24 -0
  8. package/dist/account/index.d.ts +12 -0
  9. package/dist/account/index.js +2 -0
  10. package/dist/account/session-manager.d.ts +47 -0
  11. package/dist/activity-log/builder.d.ts +56 -6
  12. package/dist/agent/agent-list-view.d.ts +19 -0
  13. package/dist/boxing/box.types.d.ts +4 -0
  14. package/dist/config/canonicalize-agent-options.d.ts +18 -0
  15. package/dist/config/default-agent-models.d.ts +11 -0
  16. package/dist/config/global-settings.d.ts +33 -0
  17. package/dist/config/migrate-grok-mode.d.ts +6 -0
  18. package/dist/config/model-compat.d.ts +31 -0
  19. package/dist/config/models.generated.d.ts +37 -0
  20. package/dist/config/models.remote.d.ts +1 -0
  21. package/dist/config/overdrive.d.ts +7 -0
  22. package/dist/config/pricing.d.ts +6 -3
  23. package/dist/config/pricing.generated.d.ts +4 -0
  24. package/dist/config/pricing.types.d.ts +4 -0
  25. package/dist/config/timeout.config.d.ts +4 -0
  26. package/dist/config/wi-boards.d.ts +19 -0
  27. package/dist/context-budget/continuity.d.ts +61 -0
  28. package/dist/context-budget/index.d.ts +141 -0
  29. package/dist/conversation/index.d.ts +1 -1
  30. package/dist/conversation/sqlite-provider.d.ts +6 -2
  31. package/dist/conversation/to-template-messages.d.ts +9 -0
  32. package/dist/conversation/types.d.ts +47 -1
  33. package/dist/desktop/command-runner.d.ts +4 -0
  34. package/dist/desktop/default-adapters.d.ts +4 -0
  35. package/dist/desktop/global-install.d.ts +19 -0
  36. package/dist/desktop/index.d.ts +3 -0
  37. package/dist/desktop/index.js +3 -0
  38. package/dist/desktop/install.d.ts +5 -0
  39. package/dist/desktop/lnk.d.ts +22 -0
  40. package/dist/desktop/manifest.d.ts +21 -0
  41. package/dist/desktop/types.d.ts +67 -0
  42. package/dist/desktop/version.d.ts +1 -0
  43. package/dist/desktop/windows-paths.d.ts +21 -0
  44. package/dist/desktop/wrapper.d.ts +18 -0
  45. package/dist/esm/account/index.js +2 -0
  46. package/dist/esm/desktop/index.js +3 -0
  47. package/dist/esm/index.js +774 -210
  48. package/dist/esm/node/index.js +2 -0
  49. package/dist/esm/plugins/index.js +327 -205
  50. package/dist/esm/process/index.js +1 -0
  51. package/dist/esm/publish/index.js +2 -0
  52. package/dist/esm/repository/index.js +398 -198
  53. package/dist/esm/skills/index.js +1 -0
  54. package/dist/esm/testing/index.js +1 -1
  55. package/dist/events/types.d.ts +9 -0
  56. package/dist/facade/Crewx.d.ts +58 -5
  57. package/dist/facade/task-ticket.d.ts +14 -0
  58. package/dist/highlight/thread-highlight-prompt.d.ts +2 -0
  59. package/dist/highlight/thread-highlighter.d.ts +326 -0
  60. package/dist/index.browser.d.ts +15 -1
  61. package/dist/index.browser.js +6 -2
  62. package/dist/index.d.ts +116 -17
  63. package/dist/index.js +774 -210
  64. package/dist/internal/console-decoder.d.ts +38 -0
  65. package/dist/internal/windows-spawn.d.ts +10 -0
  66. package/dist/layout/types.d.ts +18 -1
  67. package/dist/lifecycle/process-lease.d.ts +80 -0
  68. package/dist/lifecycle/process-owner.d.ts +20 -0
  69. package/dist/lifecycle/task-heartbeat.d.ts +41 -0
  70. package/dist/lifecycle/task-stop.d.ts +82 -0
  71. package/dist/lifecycle/update-admission.d.ts +45 -0
  72. package/dist/local-server/base-url.d.ts +18 -0
  73. package/dist/local-server/index.d.ts +8 -0
  74. package/dist/local-server/opencode.d.ts +8 -0
  75. package/dist/local-server/probe.d.ts +3 -0
  76. package/dist/local-server/runtime.d.ts +26 -0
  77. package/dist/local-server/types.d.ts +43 -0
  78. package/dist/mcp-app/agent-access.d.ts +14 -0
  79. package/dist/mcp-app/apps-context.d.ts +6 -0
  80. package/dist/mcp-app/catalog.d.ts +7 -0
  81. package/dist/mcp-app/discovery.d.ts +108 -0
  82. package/dist/mcp-app/errors.d.ts +7 -0
  83. package/dist/mcp-app/index.d.ts +24 -0
  84. package/dist/mcp-app/installed-app-ref.d.ts +25 -0
  85. package/dist/mcp-app/model-context.d.ts +26 -0
  86. package/dist/mcp-app/node-app-discovery-fs.d.ts +20 -0
  87. package/dist/mcp-app/projection.d.ts +14 -0
  88. package/dist/mcp-app/registry.d.ts +19 -0
  89. package/dist/mcp-app/skill-backend.d.ts +48 -0
  90. package/dist/mcp-app/state-set.d.ts +9 -0
  91. package/dist/mcp-app/types.d.ts +394 -0
  92. package/dist/mcp-app/workspace-snapshot.d.ts +61 -0
  93. package/dist/migrations/0008_careful_black_bird.sql +17 -0
  94. package/dist/migrations/0009_hot_dark_phoenix.sql +1 -0
  95. package/dist/migrations/0010_analyze_stats.sql +6 -0
  96. package/dist/migrations/0011_far_black_tarantula.sql +1 -0
  97. package/dist/migrations/0012_blue_turbo.sql +23 -0
  98. package/dist/migrations/0013_hesitant_adam_destine.sql +15 -0
  99. package/dist/migrations/0014_organic_mongu.sql +73 -0
  100. package/dist/migrations/0015_panoramic_gorilla_man.sql +71 -0
  101. package/dist/migrations/0016_fuzzy_hemingway.sql +14 -0
  102. package/dist/migrations/0017_project_stage_sdk_migration.sql +29 -0
  103. package/dist/migrations/0018_bored_jackal.sql +33 -0
  104. package/dist/migrations/0019_backfill_task_thread_ids.sql +74 -0
  105. package/dist/migrations/0020_useful_iron_lad.sql +55 -0
  106. package/dist/migrations/0021_dashing_peter_quill.sql +51 -0
  107. package/dist/migrations/0022_wandering_bucky.sql +1 -0
  108. package/dist/migrations/0023_red_payback.sql +1 -0
  109. package/dist/migrations/0024_storage_metadata.sql +262 -0
  110. package/dist/migrations/0025_task_heartbeat.sql +8 -0
  111. package/dist/migrations/0025_thread_app_instance_ledger.sql +2 -0
  112. package/dist/migrations/0026_mcp_action_source.sql +47 -0
  113. package/dist/migrations/0027_task_stop_scope_cleanup.sql +5 -0
  114. package/dist/migrations/0027_ui_instance_active_unique.sql +2 -0
  115. package/dist/migrations/0029_nice_rhino.sql +1 -0
  116. package/dist/migrations/0031_petite_arclight.sql +6 -0
  117. package/dist/migrations/0032_ui_instance_opened_by.sql +1 -0
  118. package/dist/migrations/0033_thread_creator_boundary_guard.sql +38 -0
  119. package/dist/migrations/meta/0008_snapshot.json +1327 -0
  120. package/dist/migrations/meta/0009_snapshot.json +1335 -0
  121. package/dist/migrations/meta/0010_snapshot.json +1335 -0
  122. package/dist/migrations/meta/0011_snapshot.json +1342 -0
  123. package/dist/migrations/meta/0012_snapshot.json +1494 -0
  124. package/dist/migrations/meta/0013_snapshot.json +1592 -0
  125. package/dist/migrations/meta/0014_snapshot.json +1975 -0
  126. package/dist/migrations/meta/0015_snapshot.json +2315 -0
  127. package/dist/migrations/meta/0016_snapshot.json +2419 -0
  128. package/dist/migrations/meta/0017_snapshot.json +2419 -0
  129. package/dist/migrations/meta/0018_snapshot.json +2570 -0
  130. package/dist/migrations/meta/0020_snapshot.json +2895 -0
  131. package/dist/migrations/meta/0021_snapshot.json +3031 -0
  132. package/dist/migrations/meta/0022_snapshot.json +3039 -0
  133. package/dist/migrations/meta/0023_snapshot.json +3047 -0
  134. package/dist/migrations/meta/0029_snapshot.json +3206 -0
  135. package/dist/migrations/meta/0031_snapshot.json +3251 -0
  136. package/dist/migrations/meta/_journal.json +183 -1
  137. package/dist/node/index.d.ts +1 -0
  138. package/dist/node/index.js +2 -0
  139. package/dist/paths.d.ts +1 -0
  140. package/dist/plugin/types.d.ts +1 -0
  141. package/dist/plugins/index.d.ts +1 -1
  142. package/dist/plugins/index.js +327 -205
  143. package/dist/plugins/sqlite-tracing.d.ts +46 -0
  144. package/dist/process/index.d.ts +2 -0
  145. package/dist/process/index.js +1 -0
  146. package/dist/process/process-control.d.ts +41 -0
  147. package/dist/prompt/tag-names.d.ts +20 -0
  148. package/dist/provider/acp/connection.d.ts +6 -0
  149. package/dist/provider/acp/meta.d.ts +11 -0
  150. package/dist/provider/bridge.d.ts +7 -1
  151. package/dist/provider/classify-task-error.d.ts +2 -0
  152. package/dist/provider/cli/adapter.types.d.ts +14 -2
  153. package/dist/provider/cli/adapters/agent-call.util.d.ts +1 -1
  154. package/dist/provider/cli/adapters/cli-knob.util.d.ts +7 -0
  155. package/dist/provider/cli/adapters/codex-item.d.ts +1 -0
  156. package/dist/provider/cli/adapters/event-timestamp.util.d.ts +1 -0
  157. package/dist/provider/cli/adapters/grok.d.ts +2 -0
  158. package/dist/provider/cli/adapters/index.d.ts +5 -0
  159. package/dist/provider/cli/index.d.ts +3 -2
  160. package/dist/provider/cli/meta.d.ts +5 -0
  161. package/dist/provider/cli/protocol-envelope.d.ts +3 -0
  162. package/dist/provider/errors.d.ts +5 -1
  163. package/dist/provider/idle-watchdog.d.ts +19 -0
  164. package/dist/provider/models.d.ts +17 -12
  165. package/dist/provider/order.d.ts +1 -1
  166. package/dist/provider/parse-usage.d.ts +6 -0
  167. package/dist/provider/provider-selection.d.ts +8 -0
  168. package/dist/provider/redact-technical-message.d.ts +1 -0
  169. package/dist/provider/task-error.types.d.ts +17 -0
  170. package/dist/publish/constants.d.ts +6 -0
  171. package/dist/publish/errors.d.ts +7 -0
  172. package/dist/publish/index.d.ts +50 -0
  173. package/dist/publish/index.js +2 -0
  174. package/dist/publish/manifest.d.ts +47 -0
  175. package/dist/publish/marketplace-api.constants.d.ts +1 -0
  176. package/dist/publish/pack.d.ts +6 -0
  177. package/dist/publish/scan.d.ts +9 -0
  178. package/dist/publish/secrets.d.ts +6 -0
  179. package/dist/publish/upload.d.ts +19 -0
  180. package/dist/remote/execution-profile.d.ts +9 -0
  181. package/dist/remote/index.d.ts +1 -0
  182. package/dist/remote/types.d.ts +28 -0
  183. package/dist/repository/agent-suggestion.repository.d.ts +34 -0
  184. package/dist/repository/base-sqlite-repository.d.ts +1 -0
  185. package/dist/repository/common-code.repository.d.ts +45 -0
  186. package/dist/repository/db.d.ts +12 -1
  187. package/dist/repository/index.d.ts +38 -5
  188. package/dist/repository/index.js +398 -198
  189. package/dist/repository/notification.repository.d.ts +58 -0
  190. package/dist/repository/project.repository.d.ts +90 -0
  191. package/dist/repository/request-log.repository.d.ts +1 -0
  192. package/dist/repository/storage-metadata.repository.d.ts +64 -0
  193. package/dist/repository/task-log-migration.d.ts +74 -0
  194. package/dist/repository/task-log.repository.d.ts +44 -0
  195. package/dist/repository/task-status.d.ts +14 -0
  196. package/dist/repository/task.repository.d.ts +233 -7
  197. package/dist/repository/thread-history.repository.d.ts +193 -0
  198. package/dist/repository/thread-origin-verdict.d.ts +27 -0
  199. package/dist/repository/thread-title.types.d.ts +29 -0
  200. package/dist/repository/thread.repository.d.ts +47 -6
  201. package/dist/repository/usage-backfill.d.ts +62 -0
  202. package/dist/repository/usage-from-logs.d.ts +21 -0
  203. package/dist/repository/usage-report.repository.d.ts +27 -0
  204. package/dist/repository/workspace.repository.d.ts +3 -0
  205. package/dist/schema/agent-suggestions.d.ts +199 -0
  206. package/dist/schema/common-codes.d.ts +216 -0
  207. package/dist/schema/index.d.ts +11 -0
  208. package/dist/schema/notifications.d.ts +303 -0
  209. package/dist/schema/projects.d.ts +610 -0
  210. package/dist/schema/storage-metadata.d.ts +181 -0
  211. package/dist/schema/task-log-events.d.ts +119 -0
  212. package/dist/schema/tasks.d.ts +165 -0
  213. package/dist/schema/thread-creator-unverified.d.ts +45 -0
  214. package/dist/schema/thread-history.d.ts +734 -0
  215. package/dist/schema/threads.d.ts +59 -0
  216. package/dist/schema/ui-action-receipts.d.ts +303 -0
  217. package/dist/schema/ui-instances.d.ts +305 -0
  218. package/dist/schema/usage-reports.d.ts +252 -0
  219. package/dist/schema/workspaces.d.ts +17 -0
  220. package/dist/skills/index.d.ts +8 -0
  221. package/dist/skills/index.js +1 -0
  222. package/dist/skills/types.d.ts +18 -0
  223. package/dist/task-log/anchor-child-tasks.d.ts +7 -0
  224. package/dist/task-log/delegation-trailer.d.ts +34 -0
  225. package/dist/template/engine.d.ts +2 -2
  226. package/dist/template/helpers/exec.browser.d.ts +4 -3
  227. package/dist/template/helpers/exec.d.ts +4 -3
  228. package/dist/template/types.d.ts +20 -0
  229. package/dist/testing/index.js +1 -1
  230. package/dist/types/index.d.ts +1572 -3
  231. package/dist/types/task-log.types.d.ts +2 -0
  232. package/dist/ui-card/index.d.ts +2 -0
  233. package/dist/ui-card/legacy-card-parser.d.ts +11 -0
  234. package/dist/ui-instance/definition.d.ts +6 -0
  235. package/dist/ui-instance/errors.d.ts +17 -0
  236. package/dist/ui-instance/index.d.ts +9 -0
  237. package/dist/ui-instance/json.d.ts +8 -0
  238. package/dist/ui-instance/runtime.d.ts +18 -0
  239. package/dist/ui-instance/store.d.ts +142 -0
  240. package/dist/ui-instance/types.d.ts +260 -0
  241. package/dist/ui-plugin/index.d.ts +4 -0
  242. package/dist/ui-plugin/limits.d.ts +27 -0
  243. package/dist/ui-plugin/manifest.d.ts +3 -0
  244. package/dist/ui-plugin/types.d.ts +179 -0
  245. package/dist/ui-plugin/validator.d.ts +15 -0
  246. package/dist/utils/crewx-executable.d.ts +76 -0
  247. package/dist/utils/crewx-home.d.ts +1 -0
  248. package/dist/utils/env-defaults.d.ts +2 -0
  249. package/dist/utils/id.d.ts +1 -1
  250. package/dist/utils/local-identity.d.ts +2 -0
  251. package/dist/utils/runner-env.d.ts +3 -0
  252. package/dist/utils/timestamp.d.ts +1 -0
  253. package/dist/utils/workspace.d.ts +1 -0
  254. package/dist/wi/create.d.ts +48 -0
  255. package/dist/wi/select.d.ts +20 -0
  256. package/package.json +48 -2
  257. package/templates/agents/default.yaml +279 -127
  258. package/templates/documents/crewx-manual.md +138 -138
  259. package/templates/documents/crewx-quick-guide.md +1 -1
  260. package/templates/workflows/wi-default-flow.yaml +65 -0
  261. package/templates/workflows/wi-plan-flow.yaml +140 -0
@@ -1,2 +1,6 @@
1
- import {load}from'js-yaml';import {z as z$1}from'zod';var m=class extends Error{constructor(e,r){let t=r.length>0?` Available: ${r.join(", ")}`:"";super(`Agent not found: "${e}".${t}`),this.name="AgentNotFoundError";}},D={claude:{id:"claude",provider:"cli/claude"},copilot:{id:"copilot",provider:"cli/copilot"},codex:{id:"codex",provider:"cli/codex"}};function w(s,e){let r=s.startsWith("@")?s.slice(1):s,t=e.find(o=>o.id===r);if(t)return t;let i=D[r];if(i)return i;throw new m(s,e.map(o=>o.id))}var l=class extends Error{constructor(r,t,i){super(r);this.providerStr=t;this.name="ProviderError",this.code=i?.code??"UNKNOWN",this.kind=i?.kind??(this.code==="UNKNOWN"?"transient":void 0),this.retryAfterMs=i?.retryAfterMs;}providerStr;code;kind;retryAfterMs};var I=new Map;function P(s,e){I.set(s,e);}function x(s){let e=s.split("/");if(e.length!==2)throw new l(`Invalid provider format: "${s}". Expected namespace/id (e.g., api/webllm)`,s);let[r,t]=e,i=I.get(r);if(i)return i(t,s);throw new l(`Unsupported provider namespace: "${r}". Register a factory with registerProviderFactory('${r}', factory).`,s)}var j=new Function("u","return import(u)"),A=class s{_agents;_config;_tools=new Map;_apiProviders=new Map;constructor(e,r){this._agents=new Map(e.map(t=>[t.id,t])),this._config=r;}static async fromConfig(e,r){let t=new s(e.agents??[],e),i=e.agents??[],o=a=>Array.isArray(a.provider)?a.provider[0]:a.provider,d=i.filter(a=>o(a)==="api/webllm"),c=i.filter(a=>o(a)==="api/openrouter");if(d.length>0&&await t._initWebLLM(d,r?.onProgress),c.length>0){if(!r?.openrouterApiKey)throw new Error("openrouterApiKey is required when using api/openrouter provider");t._initOpenRouter(c,r.openrouterApiKey);}return t._apiProviders.size>0&&P("api",(a,g)=>{let p=t._apiProviders.get(a);if(!p)throw new l(`Unknown api provider: ${a}`,g);return p}),t}async _initWebLLM(e,r){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not available. Chrome 113+ or Edge 113+ required.");let t=await j("https://esm.run/@mlc-ai/web-llm"),i=e[0]?.inline?.model??"gemma-2-2b-it-q4f16_1-MLC",o=await t.CreateMLCEngine(i,{initProgressCallback:r?c=>r(c):void 0}),d=[];this._apiProviders.set("webllm",{async query(c,a){let g=[];a?.systemPrompt&&g.push({role:"system",content:a.systemPrompt}),g.push(...d),g.push({role:"user",content:c});let p="",u=await o.chat.completions.create({messages:g,stream:true,temperature:.7,max_tokens:4096});for await(let y of u){let v=y.choices?.[0]?.delta?.content??"";p+=v,a?.onOutput&&a.onOutput(p,"stdout");}return d.push({role:"user",content:c}),d.push({role:"assistant",content:p}),p},async execute(c,a){return this.query(c,a)}});}_initOpenRouter(e,r){let t=e[0]?.inline?.model??"google/gemma-2-2b-it",i=[];this._apiProviders.set("openrouter",{async query(o,d){let c=[];d?.systemPrompt&&c.push({role:"system",content:d.systemPrompt}),c.push(...i),c.push({role:"user",content:o});let a=await fetch("https://openrouter.ai/api/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json"},body:JSON.stringify({model:d?.model||t,messages:c,stream:true})});if(!a.ok){let v=await a.text();throw new Error(`OpenRouter API error (${a.status}): ${v}`)}let g=a.body.getReader(),p=new TextDecoder,u="",y="";for(;;){let{done:v,value:T}=await g.read();if(v)break;y+=p.decode(T,{stream:true});let O=y.split(`
2
- `);y=O.pop();for(let M of O){let h=M.trim();if(!h||!h.startsWith("data: "))continue;let k=h.slice(6);if(k!=="[DONE]")try{let b=JSON.parse(k).choices?.[0]?.delta?.content??"";u+=b,b&&d?.onOutput&&d.onOutput(u,"stdout");}catch{}}}return i.push({role:"user",content:o}),i.push({role:"assistant",content:u}),u},async execute(o,d){return this.query(o,d)}});}get agents(){return this._agents}get config(){return this._config}get tools(){return this._tools}registerTool(e,r){this._tools.set(e,{name:e,...r});}async query(e,r,t){let i=Date.now(),o;try{o=w(e,Array.from(this._agents.values()));}catch(p){if(p instanceof m)return {ok:false,data:"",error:{code:"AGENT_NOT_FOUND",message:p.message},meta:{agentId:e.replace(/^@/,""),provider:"",durationMs:Date.now()-i}};throw p}let d=Array.isArray(o.provider)?o.provider[0]??"api/default":o.provider,c=t?.provider??d,a=t?.model??o.inline?.model,g;try{g=x(c);}catch(p){return {ok:false,data:"",error:{code:"PROVIDER_ERROR",message:p.message},meta:{agentId:o.id,provider:c,model:a,durationMs:Date.now()-i}}}try{return {ok:!0,data:await g.query(r,{model:a,context:t?.context,systemPrompt:o.inline?.system_prompt??o.inline?.prompt,onOutput:t?.onOutput?u=>t.onOutput(u):void 0}),meta:{agentId:o.id,provider:c,model:a,durationMs:Date.now()-i}}}catch(p){return {ok:false,data:"",error:{code:"QUERY_FAILED",message:p.message},meta:{agentId:o.id,provider:c,model:a,durationMs:Date.now()-i}}}}async execute(e,r,t){let i=Date.now(),o;try{o=w(e,Array.from(this._agents.values()));}catch(p){if(p instanceof m)return {ok:false,data:"",error:{code:"AGENT_NOT_FOUND",message:p.message},meta:{agentId:e.replace(/^@/,""),provider:"",durationMs:Date.now()-i}};throw p}let d=Array.isArray(o.provider)?o.provider[0]??"api/default":o.provider,c=t?.provider??d,a=t?.model??o.inline?.model,g;try{g=x(c);}catch(p){return {ok:false,data:"",error:{code:"PROVIDER_ERROR",message:p.message},meta:{agentId:o.id,provider:c,model:a,durationMs:Date.now()-i}}}try{return {ok:!0,data:await g.execute(r,{model:a,context:t?.context,systemPrompt:o.inline?.system_prompt??o.inline?.prompt}),meta:{agentId:o.id,provider:c,model:a,durationMs:Date.now()-i}}}catch(p){return {ok:false,data:"",error:{code:"EXECUTE_FAILED",message:p.message},meta:{agentId:o.id,provider:c,model:a,durationMs:Date.now()-i}}}}};var F=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()})]).optional()}).catchall(z$1.unknown()),U=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),N=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:F.optional(),skills:U}).catchall(z$1.unknown()),_=z$1.object({agents:z$1.array(N).optional(),hooks:z$1.array(z$1.unknown()).optional(),settings:z$1.record(z$1.unknown()).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 f=class extends Error{constructor(r,t){super(r);this.cause=t;this.name="ConfigLoadError";}cause};function S(s){if(!s||typeof s!="string"||!s.trim())throw new f("YAML content must be a non-empty string");let e;try{e=load(s);}catch(i){throw new f(`YAML parse error: ${i.message}`,i)}let r=Q(e),t=_.safeParse(r);if(!t.success)throw new f(`Config validation error: ${t.error.message}`);return t.data}function Q(s){if(!s||typeof s!="object")return {agents:[]};let e=s;if(e.agents&&typeof e.agents=="object"&&!Array.isArray(e.agents)){let r=e.agents,t=Object.entries(r).map(([i,o])=>({id:i,...o&&typeof o=="object"?o:{}}));return {...e,agents:t}}return e.agents?e:{...e,agents:[]}}var $="crewx:fs:",E=class{prefix;store;constructor(e){this.prefix=e?.prefix??$,this.store=e?.storage??new Map;}async readFile(e){let r=this.toKey(e),t=this.store.get(r);if(t===void 0)throw new Error(`BrowserFsAdapter: file not found: ${e}`);return t}async exists(e){return this.store.has(this.toKey(e))}resolvePath(...e){let r=e.map(d=>d.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),t=r.split("/"),i=[];for(let d of t)d==="."||d===""||(d===".."?i.pop():i.push(d));let o=i.join("/");return r.startsWith("/")?`/${o}`:o}isAbsolute(e){return e.startsWith("/")}setItem(e,r){this.store.set(this.toKey(e),r);}removeItem(e){this.store.delete(this.toKey(e));}keys(){return Array.from(this.store.keys()).filter(e=>e.startsWith(this.prefix)).map(e=>e.slice(this.prefix.length))}async readdir(e){let r=e.replace(/\\/g,"/").replace(/\/$/,""),t=this.toKey(r+"/"),i=[];for(let o of this.store.keys())if(o.startsWith(t)){let c=o.slice(t.length).split("/")[0];c&&!i.includes(c)&&i.push(c);}return i}toKey(e){return `${this.prefix}${e.replace(/\\/g,"/")}`}};var C=["codex","claude","opencode","antigravity","copilot"];function K(s){let e=s.indexOf("/");return e===-1?s:s.slice(e+1)}function R(s){let e=K(s),r=C.indexOf(e);return r===-1?C.length:r}function B(s,e){return R(s)-R(e)}var W=new Set(["claude","copilot","codex","opencode"]);function z(s){if(!s)return "";if(s.startsWith("acp/")){let e=s.slice(4);if(W.has(e))return `cli/${e}`}return s}export{E as BrowserFsAdapter,f as ConfigLoadError,A as Crewx,C as PROVIDER_ORDER,l as ProviderError,B as compareProviders,x as createProvider,z as normalizeProviderId,S as parseYamlContent,R as providerRank,P as registerProviderFactory};
1
+ import {load}from'js-yaml';import'js-tiktoken';import'js-tiktoken/lite';import Ve from'js-tiktoken/ranks/o200k_base';import {z as z$1}from'zod';var x=class extends Error{constructor(e,n){let r=n.length>0?` Available: ${n.join(", ")}`:"";super(`Agent not found: "${e}".${r}`),this.name="AgentNotFoundError";}},ye={claude:{id:"claude",provider:"cli/claude"},copilot:{id:"copilot",provider:"cli/copilot"},codex:{id:"codex",provider:"cli/codex"}};function w(t,e){let n=t.startsWith("@")?t.slice(1):t,r=e.find(i=>i.id===n);if(r)return r;let o=ye[n];if(o)return o;throw new x(t,e.map(i=>i.id))}var f=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 Z=new Map;function D(t,e){Z.set(t,e);}function _(t){let e=t.split("/");if(e.length!==2)throw new f(`Invalid provider format: "${t}". Expected namespace/id (e.g., api/webllm)`,t);let[n,r]=e,o=Z.get(n);if(o)return o(r,t);throw new f(`Unsupported provider namespace: "${n}". Register a factory with registerProviderFactory('${n}', factory).`,t)}var he=new Function("u","return import(u)"),S=class t{_agents;_config;_tools=new Map;_apiProviders=new Map;constructor(e,n){this._agents=new Map(e.map(r=>[r.id,r])),this._config=n;}static async fromConfig(e,n){let r=new t(e.agents??[],e),o=e.agents??[],i=p=>Array.isArray(p.provider)?p.provider[0]:p.provider,d=o.filter(p=>i(p)==="api/webllm"),s=o.filter(p=>i(p)==="api/openrouter");if(d.length>0&&await r._initWebLLM(d,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&&D("api",(p,c)=>{let l=r._apiProviders.get(p);if(!l)throw new f(`Unknown api provider: ${p}`,c);return l}),r}async _initWebLLM(e,n){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not available. Chrome 113+ or Edge 113+ required.");let r=await he("https://esm.run/@mlc-ai/web-llm"),o=e[0]?.inline?.model??"gemma-2-2b-it-q4f16_1-MLC",i=await r.CreateMLCEngine(o,{initProgressCallback:n?s=>n(s):void 0}),d=[];this._apiProviders.set("webllm",{async query(s,p){let c=[];p?.systemPrompt&&c.push({role:"system",content:p.systemPrompt}),c.push(...d),c.push({role:"user",content:s});let l="",y=await i.chat.completions.create({messages:c,stream:true,temperature:.7,max_tokens:4096});for await(let h of y){let u=h.choices?.[0]?.delta?.content??"";l+=u,p?.onOutput&&p.onOutput(l,"stdout");}return d.push({role:"user",content:s}),d.push({role:"assistant",content:l}),l},async execute(s,p){return this.query(s,p)}});}_initOpenRouter(e,n){let r=e[0]?.inline?.model??"google/gemma-2-2b-it",o=[];this._apiProviders.set("openrouter",{async query(i,d){let s=[];d?.systemPrompt&&s.push({role:"system",content:d.systemPrompt}),s.push(...o),s.push({role:"user",content:i});let p=await fetch("https://openrouter.ai/api/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({model:d?.model||r,messages:s,stream:true})});if(!p.ok){let u=await p.text();throw new Error(`OpenRouter API error (${p.status}): ${u}`)}let c=p.body.getReader(),l=new TextDecoder,y="",h="";for(;;){let{done:u,value:O}=await c.read();if(u)break;h+=l.decode(O,{stream:true});let Y=h.split(`
2
+ `);h=Y.pop();for(let me of Y){let b=me.trim();if(!b||!b.startsWith("data: "))continue;let Q=b.slice(6);if(Q!=="[DONE]")try{let X=JSON.parse(Q).choices?.[0]?.delta?.content??"";y+=X,X&&d?.onOutput&&d.onOutput(y,"stdout");}catch{}}}return o.push({role:"user",content:i}),o.push({role:"assistant",content:y}),y},async execute(i,d){return this.query(i,d)}});}get agents(){return this._agents}get config(){return this._config}get tools(){return this._tools}registerTool(e,n){this._tools.set(e,{name:e,...n});}async query(e,n,r){let o=Date.now(),i;try{i=w(e,Array.from(this._agents.values()));}catch(u){if(u instanceof x)return {ok:false,data:"",error:{code:"AGENT_NOT_FOUND",message:u.message},meta:{agentId:e.replace(/^@/,""),provider:"",durationMs:Date.now()-o}};throw u}let d=Array.isArray(i.provider)?i.provider[0]??"api/default":i.provider,s=r?.provider??d,p=r?.model??i.inline?.model,c=i.options,l=c&&typeof c=="object"&&!Array.isArray(c)?c.query:void 0,y=l&&typeof l=="object"&&!Array.isArray(l)&&typeof l.mode=="string"&&l.mode.trim()||void 0,h;try{h=_(s);}catch(u){return {ok:false,data:"",error:{code:"PROVIDER_ERROR",message:u.message,...u instanceof f?{providerCode:u.code}:{}},meta:{agentId:i.id,provider:s,model:p,durationMs:Date.now()-o}}}try{return {ok:!0,data:await h.query(n,{model:p,context:r?.context,systemPrompt:i.inline?.system_prompt??i.inline?.prompt,onOutput:r?.onOutput?O=>r.onOutput(O):void 0}),meta:{agentId:i.id,provider:s,model:p,durationMs:Date.now()-o}}}catch(u){return {ok:false,data:"",error:{code:"QUERY_FAILED",message:u.message,...u instanceof f?{providerCode:u.code}:{},...y?{mode:y}:{}},meta:{agentId:i.id,provider:s,model:p,durationMs:Date.now()-o}}}}async execute(e,n,r){let o=Date.now(),i;try{i=w(e,Array.from(this._agents.values()));}catch(l){if(l instanceof x)return {ok:false,data:"",error:{code:"AGENT_NOT_FOUND",message:l.message},meta:{agentId:e.replace(/^@/,""),provider:"",durationMs:Date.now()-o}};throw l}let d=Array.isArray(i.provider)?i.provider[0]??"api/default":i.provider,s=r?.provider??d,p=r?.model??i.inline?.model,c;try{c=_(s);}catch(l){return {ok:false,data:"",error:{code:"PROVIDER_ERROR",message:l.message,...l instanceof f?{providerCode:l.code}:{}},meta:{agentId:i.id,provider:s,model:p,durationMs:Date.now()-o}}}try{return {ok:!0,data:await c.execute(n,{model:p,context:r?.context,systemPrompt:i.inline?.system_prompt??i.inline?.prompt}),meta:{agentId:i.id,provider:s,model:p,durationMs:Date.now()-o}}}catch(l){return {ok:false,data:"",error:{code:"EXECUTE_FAILED",message:l.message,...l instanceof f?{providerCode:l.code}:{}},meta:{agentId:i.id,provider:s,model:p,durationMs:Date.now()-o}}}}};var g="[REDACTED]",J="[PATH]";function L(t){if(typeof t!="string")return;let e=t.trim();if(e)return e=e.replace(/^\s*at\s+[^\r\n]+(?:\r?\n|$)/gim,""),e=e.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 ${g}]`),e=xe(e),e=e.replace(/\b(?:Bearer|Basic)\s+[A-Za-z0-9._~+\-/]+=*/gi,`${g}`),e=e.replace(/\bsk-[A-Za-z0-9][A-Za-z0-9_-]*/g,g),e=e.replace(/\bghp_[A-Za-z0-9][A-Za-z0-9_-]*/g,g),e=e.replace(/\bxoxb-[A-Za-z0-9-]+/g,g),e=e.replace(/\bxoxp-[A-Za-z0-9-]+/g,g),e=e.replace(/\bAKIA[0-9A-Z]{12,}\b/g,g),e=e.replace(/\bgithub_pat_[A-Za-z0-9_]+/g,g),e=e.replace(/\bgho_[A-Za-z0-9_]+/g,g),e=e.replace(/\bAIza[A-Za-z0-9_-]{20,}\b/g,g),e=e.replace(/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g,g),e=e.replace(/\b(?:authorization|api[_ -]?key|access[_ -]?token|auth[_ -]?token|refresh[_ -]?token|token|secret|password)\s*([:=])\s*["']?[^\s,;&"']+/gi,(n,r)=>`${g}${r}${g}`),e=e.replace(/([?&](?:api[_-]?key|access[_-]?token|token)=)[^&\s]+/gi,`$1${g}`),e=e.replace(/(?:\/(?:Users|home|private|var\/folders|tmp|workspace|workspaces|Volumes|opt|etc|srv|Applications)\/[^\s"'`),;]+)/g,J),e=e.replace(/\b[A-Z]:\\(?:Users|home|Windows|Program Files|workspace|workspaces)\\[^\s"'`),;]*/gi,J),e=e.replace(/[\r\n]{3,}/g,`
3
+
4
+ `).trim(),Te(e,1024)||void 0}function Te(t,e){let n=new TextEncoder;if(n.encode(t).byteLength<=e)return t;let r="",o=0;for(let i of t){let d=n.encode(i).byteLength;if(o+d>e)break;r+=i,o+=d;}return r}function xe(t){let e=/\b(?:request|response|http)?\s*body\s*[:=]\s*/gim,n="",r=0,o;for(;(o=e.exec(t))!==null;){if(o.index<r)continue;let i=o.index+o[0].length,d=Ae(t,i),s=d>=0?d:t.indexOf(`
5
+ `,i)>=0?t.indexOf(`
6
+ `,i):t.length;n+=t.slice(r,o.index),n+=`[HTTP BODY ${g}]`,r=s;}return n+t.slice(r)}function Ae(t,e){let n=t[e];if(n==='"'||n==="'")return Ee(t,e,n);if(n!=="{"&&n!=="[")return -1;let r=[],o,i=false;for(let d=e;d<t.length;d+=1){let s=t[d];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 d+1}return -1}function Ee(t,e,n){let r=false;for(let o=e+1;o<t.length;o+=1){let i=t[o];if(r)r=false;else if(i==="\\")r=true;else if(i===n)return o+1}return -1}var Ie=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"]),Ce=new Set(["plan","plan-auto","read-only"]),ve={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"},Me=[{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:"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 _e(t){try{if(!T(t)||t.status!=="failed")return U();let e=ke(t.error);if(F(e.message))return U();let n=m(t.providerId)??e.provider??null,r=Re(t.logs),o=te(e.code);if(o)return C(o,n,e.message,e);let i=k(e.providerCode)??k(e.code),d=i?B(i,e.message,{exitCode:Le(t.exitCode),mode:e.mode,fromProviderCodeField:!!e.providerCode}):void 0;if(d)return C(d,n,e.message,e,i);let s=Oe(r);if(!Pe(e)&&s&&(s.type==="user_stop"||F(s.message)))return U();if(s){let c=be(s.code,s.providerCode,s.message);if(c)return C(c,n,s.message??e.message,e,s.providerCode??s.code,s,s.structuredFailure?"terminal":"envelope")}let p=we(e.message,r);return p?C(p.code,n,p.message,e,p.terminal?.providerCode??p.terminal?.code,p.terminal,p.terminal?.structuredFailure?"terminal":"envelope"):C("PROCESS_FAILED",n,e.message,e)}catch{return {errorCode:"PROCESS_FAILED",errorProvider:null}}}function U(){return {errorCode:null,errorProvider:null}}function C(t,e,n,r,o,i,d="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),t==="CLI_NOT_AVAILABLE"||t==="CLI_UPDATE_REQUIRED"){let y=e?.startsWith("cli/")?e.slice(4):void 0;y&&(s.cliName=y);}let p=d==="terminal"?n:r?.message,c=d==="terminal"?i?.structuredFailure?p:void 0:r?.isEnvelope?p:void 0,l=L(c);return l&&(s.technicalMessage=l),Object.keys(s).length>0?{errorCode:t,errorProvider:e,errorMeta:s}:{errorCode:t,errorProvider:e}}function ke(t){let e=typeof t=="string"?E(t):t;return T(e)?{isEnvelope:true,code:m(e.code),providerCode:m(e.providerCode),message:m(e.message)??m(e.error),provider:m(e.provider)??m(e.errorProvider),model:m(e.model),mode:m(e.mode)}:{isEnvelope:false,...typeof t=="string"&&t.trim()?{message:t.trim()}:{}}}function E(t){try{return JSON.parse(t)}catch{return}}function Pe(t){return !!(t.code||t.providerCode||t.message)}function Re(t){let e=[];if(typeof t=="string"){let n=E(t);if(Array.isArray(n))e.push(...n);else for(let r of t.split(/\r?\n/)){let o=E(r.trim());o!==void 0&&e.push(o);}}else Array.isArray(t)?e.push(...t):T(t)&&e.push(t);return e.flatMap(A)}function A(t){if(!T(t))return [];let e=m(t.type),n=m(t.message);if(n&&!e){let o=E(n);if(Array.isArray(o))return o.flatMap(A);if(T(o))return A(o);let i=n.split(/\r?\n/).map(d=>E(d.trim())).filter(d=>T(d));return i.length>0?i.flatMap(A):t.level==="stderr"?[{type:"stderr",message:n,rank:1,structuredFailure:false}]:A({type:"info",content:n})}if(e==="rate_limit_event"){let o=ee(t.rate_limit_info);return m(o?.status)!=="rejected"?[]:[{type:e,code:"RATE_LIMITED",message:v(o?.message,t.message),resetAt:Se(o?.resetsAt),rank:4,structuredFailure:true}]}if(e==="turn.failed"||e==="error"){let o=ee(t.error),i=v(o?.message,o?.detail,t.message,t.errorMessage,t.content),d=v(o?.code,t.code,t.errorCode);return [{type:e,code:d,providerCode:v(o?.providerCode,t.providerCode),message:i,rank:e==="turn.failed"?3:2,structuredFailure:true}]}if(e==="text"&&typeof t.content=="string"){let o=E(t.content);if(T(o))return A(o)}let r=v(t.errorMessage,t.content);return r&&F(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 Oe(t){return [...t].sort((e,n)=>n.rank-e.rank)[0]}function be(t,e,n){let r=te(t);if(r)return r;if(t){let o=B(t,n);if(o)return o}if(e){let o=B(e,n);if(o)return o}return N(n)}function we(t,e){let n=N(t);if(n)return {code:n,message:t};for(let r of [...e].sort((o,i)=>i.rank-o.rank)){let o=N(r.message);if(o)return {code:o,message:r.message,terminal:r}}}function N(t){if(!(typeof t!="string"||!t.trim()))return Me.find(e=>e.pattern.test(t))?.code}function B(t,e,n){let r=k(t)??t;if(r==="MODEL_UNAVAILABLE")return /(?:capacity|overloaded|busy)/i.test(e??"")?"MODEL_AT_CAPACITY":"MODEL_NOT_SUPPORTED";if(r==="EMPTY_OUTPUT"&&n?.fromProviderCodeField===true&&n.exitCode===0&&De(n.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return ve[r]}function te(t){let e=k(t);return e&&Ie.has(e)?e:void 0}function k(t){return typeof t=="string"&&t.trim()?t.trim().toUpperCase():void 0}function De(t){return typeof t=="string"&&Ce.has(t.trim().toLowerCase())}function F(t){return t?/\b(?:stopped|killed|aborted|cancelled|canceled)\s+by\s+user\b/i.test(t)||/사용자에 의해 중지됨/.test(t)||/\b(?:SIGTERM\s+143|143\s+SIGTERM)\b/i.test(t):false}function T(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ee(t){return T(t)?t:void 0}function m(t){return typeof t=="string"&&t.trim()?t.trim():void 0}function Se(t){return typeof t=="string"||typeof t=="number"&&Number.isFinite(t)?t:void 0}function Le(t){return typeof t=="number"&&Number.isInteger(t)?t:void 0}function v(...t){return t.map(m).find(e=>!!e)}var Ue=["none","minimal","low","medium","high","xhigh","max","ultra"],Ne={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 P={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",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced",recommended:true},{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-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":{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-4-5":{effort:[]}},providerOptions:[]},codex:{models:[{id:"gpt-6-astra",name:"GPT-6 Astra",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-6-sol",name:"GPT-6 Sol",contextWindowTokens:105e4,tier:"balanced",recommended:true},{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"},{id:"gpt-5.5",name:"GPT-5.5",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4",name:"GPT-5.4",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",contextWindowTokens:4e5,tier:"speed"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",contextWindowTokens:4e5,tier:"flagship"},{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",contextWindowTokens:128e3,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-sol":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"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"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"gpt-5.5",name:"GPT-5.5",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4",name:"GPT-5.4",contextWindowTokens:105e4,tier:"flagship"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"}],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.5-flash",name:"Gemini 3.5 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"]}]}},H={providers:{"cli/codex":{model:"gpt-6-sol",query:{mode:"agent",effort:"high"},execute:{mode:"agent-full-access",effort:"xhigh"}},"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(P).map(([t,e])=>[t,e.models]));var He="claude-opus-4-8",Ge="claude-opus-4-8[1m]",ne=[{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(ne.map(({baseModelId:t,catalogModelId:e})=>[t,e]));function re(t){return je.get(t)??t}var oe=[{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"}],ze=new Map(oe.map(({legacyId:t,model:e,effort:n})=>[t,n===void 0?{model:e}:{model:e,effort:n}]));function ie(t){if(!t)return {};let e=ze.get(t);return e?{...e}:{model:t}}function G(t,e){return t==="antigravity"||t==="cli/antigravity"?ie(e):e===void 0?{}:{model:re(e)}}var se=30,ae=80;Object.keys(Ve.special_tokens);var $e=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()),qe=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),Ke=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:$e.optional(),skills:qe}).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 Ye=z$1.number().finite().int().min(se).max(ae),Qe=z$1.object({inputBudgetPercent:Ye.optional()}).catchall(z$1.unknown()),Xe=z$1.object({continuity:Qe.optional()}).catchall(z$1.unknown()),Ze=z$1.object({bin_resolution:z$1.enum(["global_first","local_first"]).optional(),dreaming:Xe.optional(),wi:z$1.object({boards:z$1.array(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()),de=z$1.object({agents:z$1.array(Ke).optional(),hooks:z$1.array(z$1.unknown()).optional(),settings:Ze.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 I=class extends Error{constructor(n,r){super(n);this.cause=r;this.name="ConfigLoadError";}cause};function et(t){if(!t||typeof t!="string"||!t.trim())throw new I("YAML content must be a non-empty string");let e;try{e=load(t);}catch(o){throw new I(`YAML parse error: ${o.message}`,o)}let n=tt(e),r=de.safeParse(n);if(!r.success)throw new I(`Config validation error: ${r.error.message}`);return r.data}function tt(t){if(!t||typeof t!="object")return {agents:[]};let e=t;if(e.agents&&typeof e.agents=="object"&&!Array.isArray(e.agents)){let n=e.agents,r=Object.entries(n).map(([o,i])=>({id:o,...i&&typeof i=="object"?i:{}}));return {...e,agents:r}}return e.agents?e:{...e,agents:[]}}var nt={auto:"default"};function rt(t){return nt[t]??t}var ot="crewx:fs:",j=class{prefix;store;constructor(e){this.prefix=e?.prefix??ot,this.store=e?.storage??new Map;}async readFile(e){let n=this.toKey(e),r=this.store.get(n);if(r===void 0)throw new Error(`BrowserFsAdapter: file not found: ${e}`);return r}async exists(e){return this.store.has(this.toKey(e))}resolvePath(...e){let n=e.map(d=>d.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),r=n.split("/"),o=[];for(let d of r)d==="."||d===""||(d===".."?o.pop():o.push(d));let i=o.join("/");return n.startsWith("/")?`/${i}`:i}isAbsolute(e){return e.startsWith("/")}setItem(e,n){this.store.set(this.toKey(e),n);}removeItem(e){this.store.delete(this.toKey(e));}keys(){return Array.from(this.store.keys()).filter(e=>e.startsWith(this.prefix)).map(e=>e.slice(this.prefix.length))}async readdir(e){let n=e.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(e){return `${this.prefix}${e.replace(/\\/g,"/")}`}};var z=["codex","claude","grok","opencode","antigravity","copilot"];function it(t){let e=t.indexOf("/");return e===-1?t:t.slice(e+1)}function W(t){let e=it(t),n=z.indexOf(e);return n===-1?z.length:n}function st(t,e){return W(t)-W(e)}var at=new Set(["claude","copilot","codex","grok","opencode"]);function dt(t){if(!t)return "";if(t.startsWith("acp/")){let e=t.slice(4);if(at.has(e))return `cli/${e}`}return t}function R(t){return {mode:t.mode,effort:t.effort}}function pt(t){let e=H.providers[t];if(!e)return;let n=t.startsWith("cli/")?t.slice(4):t,r=P[n]?.models.find(d=>d.recommended===true&&d.tier==="balanced")?.id??e.model,o={query:R(e.query),execute:R(e.execute)},i={query:R(e.query),execute:R(e.execute)};return {planner:{model:e.model,...o},worker:{model:r,...i}}}var le=["urgent","high","medium","low"],ce=["investigating","in-progress","in-review","on-hold","done"],M="custom:";var lt=new Set(le),ct=new Set(ce),ut={urgent:"U \uAE34\uAE09 Urgent",high:"P0 \uAE09\uD568 High",medium:"P1 \uC911\uC694 Medium",low:"P2 \uBCF4\uD1B5 Low"},V={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 pe(t,e){return !e||e.includes(t)?e??t:`${t} ${e}`}function $(t){return typeof t=="string"&&lt.has(t)}function q(t){if(typeof t!="string")return false;if(ct.has(t))return true;if(t.startsWith("c_"))return t.length>2;if(!t.startsWith(M))return false;let e=t.slice(M.length);return e.length>=1&&e.length<=20}function ue(t){if(t.startsWith(M))return t.slice(M.length)}function K(t){if(!t)return null;try{let e=JSON.parse(t);return !e||typeof e!="object"||Array.isArray(e)?null:e}catch{return null}}function gt(t){let e=K(t);return !!e&&Object.prototype.hasOwnProperty.call(e,"threadTitle")}function ge(t){let e=K(t);if(!e)return {};let n=e.threadTitle;if(!n||typeof n!="object"||Array.isArray(n))return {};let r=n,o={};return $(r.priority)&&(o.priority=r.priority),q(r.state)&&(o.state=r.state),o}function ft(t,e){let n=K(t)??{},r={...ge(t)};return e.priority===null?delete r.priority:e.priority!==void 0&&(r.priority=e.priority),e.state===null?delete r.state:e.state!==void 0&&(r.state=e.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 mt(t,e=new Map){let n=[];return t.priority&&n.push(pe(ut[t.priority],e.get(t.priority))),t.state&&(t.state.startsWith(M)?n.push(ue(t.state)??""):V[t.state]?n.push(pe(V[t.state],e.get(t.state))):e.has(t.state)?n.push(t.state,e.get(t.state)??""):t.state.startsWith("c_")?n.push(t.state):n.push(V[t.state]??"")),n.filter(Boolean).join(" ")}function fe(t,e){if(!t||t.trim().length===0)return;let n=new Set,r=false,o=false;for(let i of t.split(",")){let d=i.trim();if(d){if(d==="none"){r=true,o=true;continue}e(d)&&(n.add(d),o=true);}}if(o)return {values:n,includeNone:r}}function yt(t){return fe(t,$)}function ht(t){return fe(t,q)}function Tt(t,e){return e?t?e.values.has(t):e.includeNone:true}var xt=["crewx_app_terminal_connect","crewx_app_html_viewer_open"];export{oe as ANTIGRAVITY_MODEL_COMPATIBILITY,ce as BUILTIN_THREAD_STATES,j as BrowserFsAdapter,ne as CLAUDE_MODEL_COMPATIBILITY_PAIRS,He as CLAUDE_OPUS_4_8_BASE_MODEL_ID,Ge as CLAUDE_OPUS_4_8_LEGACY_MODEL_ID,I as ConfigLoadError,S as Crewx,Ue as EFFORT_LEVELS,xt as MCP_APP_HOST_TOOL_ALLOWLIST,Ne as PROVIDER_ARGV_EFFORTS,z as PROVIDER_ORDER,f as ProviderError,le as THREAD_PRIORITIES,_e as classifyTaskError,st as compareProviders,_ as createProvider,ue as customStateLabel,pt as getDefaultAgentProfile,gt as hasThreadTitleKey,$ as isThreadPriority,q as isThreadState,Tt as matchesThreadTitleFilter,ft as mergeThreadTitleMeta,rt as normalizeClaudeMode,dt as normalizeProviderId,yt as parseThreadPriorityFilter,ht as parseThreadStateFilter,et as parseYamlContent,W as providerRank,ge as readThreadTitleMeta,L as redactTechnicalMessage,D as registerProviderFactory,ie as resolveAntigravityModel,re as resolveCatalogModelId,G as resolveProviderCatalogModel,mt as threadTitleSearchHaystack};
package/dist/index.d.ts CHANGED
@@ -1,57 +1,126 @@
1
- export { Crewx } from './facade/Crewx';
1
+ export { Crewx, loadAgentSkills } from './facade/Crewx';
2
2
  export type { ToolDefinition } from './facade/Crewx';
3
+ export { resolveTaskTicketEnv } from './facade/task-ticket.js';
4
+ export type { TaskTicketGrant, TaskTicketIssuer, TaskTicketRequest } from './facade/task-ticket.js';
5
+ export { discover as discoverSkills, findEntrypoint, resolve as resolveSkill, } from './skills/index.js';
6
+ export type { SkillDefinition, SkillFrontmatter, SkillFrontmatterReadResult } from './skills/index.js';
7
+ export type { ActionReceipt, ActionReceiptOutcome, CreateUiInstanceInput, JsonObject, JsonPrimitive, JsonValue, UiActionHandlerContext, UiActionHandlerRegistration, UiActionHandlerResult, UiActionEnvelope, UiActionConfirmation, UiActor, UiDefinition, UiDefinitionAction, UiDefinitionDisplayMode, UiDefinitionInput, UiDefinitionRef, UiDefinitionUsage, UiProjectionPolicy, UiExecutionContext, UiAuthenticatedActor, UiTaskActorSnapshot, UiAuthenticatedExecutionContext, UiApprovalRequestContext, UiApprovalDecisionProvenance, UiApprovalPendingReceipt, UiApprovalRequestReceiptResult, UiAuthenticatedGrantPolicy, UiServerRuntimeFacade, UiServerRuntimeOptions, UiAgentContextProjection, UiExternalActionHandlerRegistration, UiInstance, UiInstanceStatus, UiLocalGrantPolicy, UiRuntimeFacade, UiRuntimeOptions, UiStateActionHandlerRegistration, } from './ui-instance/types.js';
8
+ export { isUiAuthenticatedActor } from './ui-instance/types.js';
9
+ export type { UiRuntimeStoreOptions } from './ui-instance/runtime.js';
10
+ export { UiInstanceStore, openUiInstanceReadStore, UiRuntimeError, hashUiDefinition, projectSafeJsonObject, redactJsonPaths, createUiServerRuntime, resolveUiEffectiveCapabilities, } from './ui-instance/index.js';
11
+ export type { UiAuditSnapshotInput, UiInstanceReadStore } from './ui-instance/index.js';
12
+ export type { UiRuntimeErrorCode } from './ui-instance/index.js';
13
+ export { MAX_HTML_LENGTH, MCP_APP_HOST_TOOL_ALLOWLIST, MCP_APP_LOCAL_RESOURCE_MIME_TYPE, MCP_APP_RESOURCE_MIME_TYPE, MCP_APP_RESOURCE_URI_PREFIX, McpAppContractError, resolveAgentAccess, 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, buildMcpAppsContext, buildTerminalMcpAppStateDescriptor, buildTerminalMcpAppStateProjections, createBuiltinMcpAppRegistry, buildMcpAppLocalRegistration, createMcpAppLocalRegistration, registerLocalMcpApp, createMcpAppWorkspaceRegistry, createWorkspaceAppRegistry, createWorkspaceMcpAppRegistry, buildInstalledAppRef, createMcpAppRegistry, createMcpAppToolResult, INSTALLED_APP_ENTRY, InstalledAppRefError, registerMcpApp, requireMcpAppResource, resolveLocalMcpAppResource, resolveMcpAppResource, serializeMcpAppStateJson, serializeMcpAppStateXml, sanitizeMcpAppModelContext, serializeMcpAppModelContextXml, toMcpAppToolRegistration, validateInstalledAppRef, AppDiscoveryFsError, NodeAppDiscoveryFs, NodeAppDiscoveryFsAdapter, defaultAppDiscoveryFs, defaultNodeAppDiscoveryFs, deriveWorkspaceAppToolName, deriveWorkspaceAppToolNames, discoverWorkspaceAppCandidates, discoverWorkspaceApps, 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_MAX_INPUT_BYTES, SKILL_BACKEND_MAX_OUTPUT_BYTES, SKILL_BACKEND_SCHEMA_VERSION, buildSkillBackendHandler, } from './mcp-app/index.js';
14
+ export type { AppDiscoveryBytes, AppDiscoveryDiagnostic, AppDiscoveryDirectoryEntry, AppDiscoveryDirectoryEntryKind, AppDiscoveryDirectoryListing, AppDiscoveryFileSystem, AppDiscoveryFsErrorCode, AppDiscoveryMaybePromise, AppDiscoveryOptions, McpAppDiscoveryDiagnostic, WorkspaceAppBuiltinCatalog, WorkspaceAppCandidate, WorkspaceAppDiscoveryIncompleteReason, WorkspaceAppDiscoveryOptions, WorkspaceAppDiscoveryResult, WorkspaceAppDiagnostic, WorkspaceAppDiagnosticCode, WorkspaceAppResourceSnapshot, WorkspaceAppReservedCatalog, WorkspaceAppSource, WorkspaceAppToolNames, 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, McpAppModelContext, McpAppModelContextInput, McpAppHostToolInput, McpAppHostToolName, McpAppReadToolInput, McpAppSingleActionToolInput, McpAppToolCommonInput, McpAppToolDescriptor, McpAppToolInput, McpAppToolMetadata, McpAppToolRegistration, McpAppToolResult, McpAppToolVisibility, McpAppInstanceResourceBinding, McpAppMcpResourceBinding, McpAppResourceBinding, McpAppLocalResource, McpAppLocalRegistrationInput, McpAppLocalReadToolDescriptor, McpAppLocalActionToolDescriptor, McpAppLocalSingleActionToolDescriptor, McpAppLocalToolDiagnostic, McpAppAgentAccess, McpAppAgentAccessAction, 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, } from './mcp-app/index.js';
15
+ export { canonicalManifestJson, manifestHash, normalizeManifest, UiPluginValidationError, validateInitialState, validateManifest, validatePayload, } from './ui-plugin/index.js';
16
+ export { UI_PLUGIN_CAPABILITY_PATTERN, UI_PLUGIN_HANDLER_PATTERN, UI_PLUGIN_IDENTIFIER_PATTERN, UI_PLUGIN_MAX_CANDIDATE_DEPTH, UI_PLUGIN_MAX_ACTIONS, UI_PLUGIN_MAX_ARRAY_LENGTH, UI_PLUGIN_MAX_COMMAND_LENGTH, UI_PLUGIN_MAX_COMMAND_PARTS, UI_PLUGIN_MAX_DISCOVERED_APPS, UI_PLUGIN_MAX_DISCOVERY_TIME_MS, UI_PLUGIN_MAX_HEIGHT, UI_PLUGIN_MAX_INITIAL_STATE_BYTES, UI_PLUGIN_MAX_JSON_DEPTH, UI_PLUGIN_MAX_MANIFEST_BYTES, UI_PLUGIN_MAX_PROJECTION_PATHS, UI_PLUGIN_MAX_SCHEMA_DEPTH, UI_PLUGIN_MAX_SCHEMA_PROPERTIES, UI_PLUGIN_MAX_STRING_LENGTH, UI_PLUGIN_MAX_SUBTREE_BYTES, UI_PLUGIN_MAX_SURFACES, UI_PLUGIN_RESERVED_STATE_KEYS, UI_PLUGIN_SAFE_PATH_PATTERN, UI_PLUGIN_SAFE_PATH_SEGMENT_PATTERN, UI_PLUGIN_SKILL_TOKEN_PATTERN, UI_PLUGIN_SURFACES, UI_PLUGIN_TONES, isUiPluginReservedStateKey, } from './ui-plugin/index.js';
17
+ export type { UiPluginActivation, UiPluginCardShellNode, UiPluginFieldSchema, UiPluginHeadingNode, UiPluginLabeledTextNode, UiPluginLayoutNode, UiPluginLayout, UiPluginManifest, UiPluginAction, UiPluginBackend, UiPluginCoreBackend, UiPluginInputSchema, UiPluginJsonSchema, UiPluginJsonSchemaType, UiPluginManifestMode, UiPluginManifestV1, UiPluginManifestV2, UiPluginNormalizedManifestV2, UiPluginNormalizedV2, UiPluginMetaBannerNode, UiPluginPayload, UiPluginPayloadValue, UiPluginPrimitive, UiPluginSchemaType, UiPluginSchema, UiPluginStep, UiPluginStepFlowNode, UiPluginStepListSchema, UiPluginTextListNode, UiPluginTextListSchema, UiPluginTextSchema, UiPluginProjectionPolicy, UiPluginResourceMetadata, UiPluginResourceRef, UiPluginSize, UiPluginSkillBackend, UiPluginSurface, UiPluginTone, UiPluginHandlerMetadata, UiPluginValidationErrorCode, UiPluginValidationOptions, } from './ui-plugin/index.js';
18
+ export { DEFAULT_PUBLISH_MAX_BYTES, DEFAULT_PUBLISH_MAX_FILES, packApp, packPublish, packTemplate, planPublish, PublishError, uploadToMarketplace, } from './publish/index.js';
19
+ export type { BuildAppManifestOptions, BuildManifestOptions, CreateArchiveOptions, ExcludedEntry, ManifestFile, PublishAppManifest, PublishErrorCode, PublishManifest, PublishOptions, PublishPlan, PublishTemplateManifest, PublishUploadOptions, PublishUploadResult, ScanResult, SecretFinding, } from './publish/index.js';
3
20
  export { CrewxPlugin } from './plugin';
4
21
  export { TypedEventEmitter } from './events/TypedEventEmitter';
5
- export type { CrewxEvents, CrewxEventName, CrewxEventPayload, BaseEvent, TaskStartEvent, TaskEndEvent, TaskOutputEvent, AdapterLifecycleEvent, AdapterMessageEvent, UnsubscribeFn, } from './events/types';
22
+ export type { CrewxEvents, CrewxEventName, CrewxEventPayload, BaseEvent, ActorKind, TaskStartEvent, TaskEndEvent, TaskOutputEvent, AdapterLifecycleEvent, AdapterMessageEvent, UnsubscribeFn, } from './events/types';
6
23
  export type { LayoutSpec, RenderAgentPromptOptions, SkillEntry } from './facade/Crewx';
7
24
  export { LayoutLoader } from './layout/loader';
8
25
  export { LayoutRenderer } from './layout/renderer';
9
26
  export type { RenderOptions } from './layout/renderer';
10
27
  export { PropsValidator } from './layout/props-validator';
11
- export type { LayoutDefinition, CustomLayoutDefinition, InlineLayoutSpec, LoaderOptions, RenderContext, PropSchema, ValidationResult, ValidationError, TemplateVars, RawLayoutYaml, } from './layout/types';
28
+ export type { LayoutDefinition, LayoutCapabilities, CustomLayoutDefinition, InlineLayoutSpec, LoaderOptions, RenderContext, PropSchema, ValidationResult, ValidationError, TemplateVars, RawLayoutYaml, } from './layout/types';
12
29
  export { LayoutLoadError, PropsValidationError } from './layout/types';
13
30
  export { TemplateEngine } from './template/engine';
14
31
  export type { ExecPolicy, TemplateContext, TemplateEngineOptions } from './template/types';
32
+ export { PROMPT_TAGS, LEGACY_PROMPT_TAGS } from './prompt/tag-names';
15
33
  export { DocumentLoader } from './template/loader/DocumentLoader';
16
34
  export type { IFsAdapter } from './platform/IFsAdapter';
17
35
  export { NodeFsAdapter, defaultFsAdapter } from './platform/NodeFsAdapter';
18
36
  export { BrowserFsAdapter } from './platform/BrowserFsAdapter';
19
37
  export { truncateHelper, lengthHelper, escapeHandlebarsHelper, formatFileSizeHelper, formatTimestampHelper, } from './template/helpers/p1p2';
20
38
  export { setAuditVerbose } from './template/helpers/exec';
21
- export type { AgentConfig, CrewxProjectConfig, CrewxOptions, QueryOptions, QueryResult, ExecuteOptions, ExecuteResult, TraceContext, YamlHookEntry, GuideRule, } from './types';
22
- export { AgentSkillsSchema } from './types';
39
+ export type { AgentConfig, CrewxProjectConfig, CrewxOptions, QueryOptions, QueryResult, ExecuteOptions, ExecuteResult, ContextMode, CanResumeSessionReason, CanResumeSessionParams, CanResumeSessionResult, TraceContext, TaskActor, YamlHookEntry, GuideRule, WiBoardConfig, } from './types';
40
+ export { AgentSkillsSchema, WiBoardSchema } from './types';
23
41
  export { loadYamlFile, parseYamlContent, ConfigLoadError } from './config/loader';
42
+ export { resolveWiBoards, isReservedWiBoardId, WI_BOARD_ID_PATTERN, DEFAULT_WI_BOARD_ID, ARCHIVE_WI_BOARD_ID, DEFAULT_WI_WORKFLOW_ID, WI_PLAN_WORKFLOW_ID, WI_DEFAULT_FLOW_FILENAME, WI_PLAN_FLOW_FILENAME, } from './config/wi-boards';
43
+ export type { ResolvedWiBoard } from './config/wi-boards';
44
+ export { createWorkInstruction, createWorkInstructionBatch, WiCreateError, } from './wi/create';
45
+ export type { WiCreateInput, WiBatchCreateInput, WiBatchCreateResult, WiCreatedDetail, WiCreatedSummary, WiStatus as SdkWiStatus, } from './wi/create';
46
+ export { selectNextWi } from './wi/select';
47
+ export type { SelectNextWiResult, WiSummary as SelectableWiSummary, WiSelectableStatus, } from './wi/select';
48
+ export { createGlobalSettingsStore } from './config/global-settings';
49
+ export type { GlobalSettings, GlobalSettingsStore, DeepPartial, CreateGlobalSettingsStoreOptions } from './config/global-settings';
50
+ export { DEFAULT_LOCAL_SERVER_PROBE_TIMEOUT_MS, isAllowedLocalServerIp, parseLocalServerBaseUrl, probeLocalServer, buildLocalServerOpenCodeOverlay, LocalServerOpenCodeOverlayError, } from './local-server';
51
+ export type { LocalServerBaseUrlErrorCode, LocalServerBaseUrlFailure, LocalServerBaseUrlOptions, LocalServerBaseUrlResult, LocalServerBaseUrlSuccess, LocalServerHostClass, LocalServerDefinition, LocalServerFetch, LocalServerKind, LocalServerModel, LocalServerOpenCodeOverlay, LocalServerOpenCodeOverlayErrorCode, LocalServerProbeOptions, LocalServerProbeReason, LocalServerProbeResponse, LocalServerProbeResult, LocalServerSettings, } from './local-server';
24
52
  export { resolveOverdrive, parseOverdriveProfile, parseOverdriveSignal, } from './config/overdrive';
25
53
  export type { OverdriveProfile, OverdriveSignal, OverdriveSignalInput, OverdriveResolution, } from './config/overdrive';
54
+ export { migrateGrokLegacyMode } from './config/migrate-grok-mode';
55
+ export type { GrokSandbox, GrokNativeOptions } from './config/migrate-grok-mode';
56
+ export { canonicalizeAgentOptions, normalizeClaudeMode } from './config/canonicalize-agent-options';
57
+ export type { AgentOptionsLike, CanonicalizeAgentOptionsInput, CanonicalizeAgentOptionsResult, } from './config/canonicalize-agent-options';
58
+ export { ANTIGRAVITY_MODEL_COMPATIBILITY, CLAUDE_MODEL_COMPATIBILITY_PAIRS, CLAUDE_OPUS_4_8_BASE_MODEL_ID, CLAUDE_OPUS_4_8_LEGACY_MODEL_ID, resolveAntigravityModel, resolveCatalogModelId, resolveProviderCatalogModel, } from './config/model-compat';
59
+ export type { AntigravityResolvedModel } from './config/model-compat';
26
60
  export { initPricingRemote } from './config/pricing.remote';
61
+ export type { ModelApiPricing } from './config/pricing.types';
27
62
  export { initModelsRemote } from './config/models.remote';
28
63
  export { resolveAgent, AgentNotFoundError } from './agent/resolver';
29
64
  export { resolveAgentSkills } from './agent/resolve-skills';
30
65
  export { PROVIDER_ORDER, providerRank, compareProviders, normalizeProviderId } from './provider/order';
31
- export { getProviderModels, getClaudeModels, getCodexModels, getCopilotModels, getAntigravityModels, setModelsOverride, clearModelsOverride, mergeModels, type ModelCatalogEntry, } from './provider/models';
66
+ export { getProviderModels, getClaudeModels, getCodexModels, getCopilotModels, getAntigravityModels, setModelsOverride, clearModelsOverride, mergeModels, type ModelCatalogEntry, type ModelMergeEntry, type ModelTier, type ProviderOptionSpec, } from './provider/models';
67
+ export { getDefaultAgentProfile } from './config/default-agent-models.js';
68
+ export type { DefaultAgentProfile, DefaultAgentStage } from './config/default-agent-models.js';
69
+ export { isProviderAvailable } from './provider/provider-selection';
70
+ export type { ProviderAvailabilityDeps } from './provider/provider-selection';
71
+ export { EFFORT_LEVELS, PROVIDER_ARGV_EFFORTS } from './config/models.generated.js';
72
+ export type { EffortLevel, KnownEffortLevel } from './config/models.generated.js';
73
+ export { DEFAULT_INPUT_BUDGET_PERCENT, MIN_INPUT_BUDGET_PERCENT, MAX_INPUT_BUDGET_PERCENT, INPUT_BUDGET_TOKENIZER_ENCODING, FRESH_PROVIDER_INITIAL_INPUT_FRAMING, RESUME_PROVIDER_INITIAL_INPUT_FRAMING, normalizeInputBudgetProvider, resolveTokenizerMetadata, countTokens, createTokenCounter, resolveInputBudget, } from './context-budget';
74
+ export type { InputBudgetUnresolvedReason, TokenizerFallbackReason, ResolveInputBudgetOptions, TokenizerOptions, TokenizerMetadata, ResolvedInputBudget, UnresolvedInputBudget, ResolveInputBudgetResult, ContextBudgetPhase, ProviderInitialInputFraming, ContextBudgetManifest, TokenCountResult, TokenCounter, ContextBudgetLayoutCapability, ContextBudgetActivityDegradation, ContextBudgetAssemblyErrorCode, } from './context-budget';
75
+ 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';
76
+ export type { BuildSemanticContinuityContextOptions, ConversationHighlightSelection, ConversationTurn, ConversationTurnSelection, GroupedConversationTurns, SelectConversationHighlightsOptions, SelectConversationTurnsOptions, } from './context-budget';
77
+ export type { ConversationHighlight, ConversationMessage, ConversationSemanticContinuityContext, ConversationThreadState, ConversationThreadStateValue, ConversationThread, FetchHistoryOptions, IConversationHistoryProvider, Platform, SemanticContinuityContext, TemplateMessage, ThreadStateContext, } from './conversation/types.js';
78
+ 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';
79
+ 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';
32
80
  export { createProvider, ProviderError, ClientToolCallRequiredError, registerProviderFactory, mergeAdditionalArgs } from './provider/bridge';
33
81
  export type { ProviderRuntime, ProviderQueryOptions, ProviderFactory, ProviderUsage, ClientToolCall, ContinuationState, AdditionalArgsProvider } from './provider/bridge';
34
82
  export { VercelProviderRuntime } from './provider/vercel-runtime';
35
83
  export type { VercelProviderConfig } from './provider/vercel-runtime';
36
84
  export { registerApiProviders } from './provider/register-api';
37
85
  export * from './provider/acp/index.js';
38
- export type { CliProviderAdapter } from './provider/cli/adapter.types';
86
+ export type { CliProviderAdapter, ParseEventContext } from './provider/cli/adapter.types';
39
87
  export { RateLimitError } from './provider/cli/adapter.types';
40
- export { BUILTIN_ADAPTERS, claudeAdapter, copilotAdapter, codexAdapter, opencodeAdapter } from './provider/cli/adapters/index';
88
+ export { BUILTIN_ADAPTERS, claudeAdapter, copilotAdapter, codexAdapter, opencodeAdapter, grokAdapter } from './provider/cli/adapters/index';
41
89
  export { queryAllCliProviderMetas, queryOpencodeModels } from './provider/cli/meta';
90
+ export { isMetadataOnlyProtocolLine, isProtocolOnlyText, shouldSkipRawStdoutJsonFallback, } from './provider/cli/protocol-envelope';
91
+ export { ConsoleDecoder, decodeConsoleBuffer, decodeConsoleBufferAsync, getWindowsConsoleCodePage, parseWindowsConsoleCodePage, primeWindowsConsoleCodePage, } from './internal/console-decoder';
92
+ export type { ConsoleBufferDecodeOptions, ConsoleDecoderOptions, } from './internal/console-decoder';
42
93
  export { createDelegateTool } from './tools/delegate';
43
- export { resolveTemplatesPath, resolveDefaultAgentsYaml } from './paths';
44
- export { resolveCrewxCli, resolveCrewxWorkspace } from './utils/env-defaults';
94
+ export { resolveTemplatesPath, resolveDefaultAgentsYaml, resolveWorkflowTemplatesPath } from './paths';
95
+ export { resolveCrewxCli, resolveCrewxCliArgv, resolveCrewxWorkspace, } from './utils/env-defaults';
96
+ export { createCrewxChildInvocation, crewxCliShimFingerprint, formatCrewxExecutableArgv, formatCrewxExecutableFailure, getCrewxStableEntrypoint, isRotatingInstallPath, isVolatilePath, materializeCrewxCliShim, materializeCrewxStableEntrypoint, resolveCrewxExecutable, } from './utils/crewx-executable';
97
+ export type { CrewxChildInvocation, CrewxChildInvocationOptions, CrewxElectronRuntimeContext, CrewxElectronRuntimePredicate, CrewxExecutableAttempt, CrewxExecutableFailure, CrewxExecutablePathLookupOptions, CrewxExecutablePathLookupResult, CrewxExecutableResolution, CrewxExecutableResolverOptions, CrewxExecutableStage, CrewxExecutableSuccess, CrewxRequiredEnv, CrewxCliShim, CrewxCliShimOptions, CrewxStableEntrypointOptions, } from './utils/crewx-executable';
98
+ export { getCrewxHome } from './utils/crewx-home';
99
+ export { CREWX_RUNNER_IDENTITY_ENV, withoutCrewxRootContext, withoutCrewxRunnerIdentity, } from './utils/runner-env';
45
100
  export { generateId, generateFingerprint } from './utils/id';
46
101
  export type { EntityPrefix, PrefixedId } from './utils/id';
47
- export { hashWorkspaceId, normalizeWorkspacePath } from './utils/workspace';
48
- export { formatTimestamp } from './utils/timestamp';
102
+ export { acquireDurableQuiesceMarker, admitDurableTask, DEFAULT_CLI_ADMISSION_TIMEOUT_MS, isDurablyQuiescing, isProcessAlive, readDurableQuiesceMarkerOwner, readUpdateAdmissionReservations, reconcileDurableQuiesceMarkerIfOwnerDead, releaseDurableQuiesceMarker, releaseUpdateAdmissionReservation, reserveUpdateAdmission, resolveUpdateAdmissionReservationDir, resolveUpdateQuiesceLockFile, UPDATE_ADMISSION_RESERVATION_DIRNAME, UPDATE_ADMISSION_SCOPE_ENV, UPDATE_QUIESCE_LOCK_FILENAME, } from './lifecycle/update-admission.js';
103
+ export type { AdmissionMarkerResult, DurableQuiesceMarkerState, DurableTaskAdmission, ReconcileOutcome, UpdateAdmissionReservationEntry, } from './lifecycle/update-admission.js';
104
+ export { acquireProcessLease, getProcessStartIdentity, getProcessStartTime, readProcessLease, reclaimProcessLease, releaseProcessLease, renewProcessLease, resolveProcessLeasePath, PROCESS_LEASE_FILENAME, } from './lifecycle/process-lease.js';
105
+ export type { ProcessLeaseAcquireResult, ProcessLeaseClock, ProcessLeaseHandle, ProcessLeaseMutationOptions, ProcessLeaseOptions, ProcessLeasePathOptions, ProcessLeaseProcessProbe, ProcessLeaseReason, ProcessLeaseReadResult, ProcessLeaseRecord, ProcessLeaseReclaimOptions, } from './lifecycle/process-lease.js';
106
+ export { hashWorkspaceId, normalizeWorkspacePath, resolveWorkspaceOwnerPath, slugify } from './utils/workspace';
107
+ export { formatTimestamp, formatDisplayTimestamp } from './utils/timestamp';
49
108
  export type { TaskLogEntry, TaskLogEntryType } from './types/task-log.types';
109
+ export { anchorChildTasks } from './task-log/anchor-child-tasks';
110
+ export type { AnchorChildInput } from './task-log/anchor-child-tasks';
111
+ export { DELEGATION_RESULT_MARKER, DELEGATION_RESULT_PREFIX, consumeDelegationResult, formatDelegationResult, formatDelegationTrailer, isDelegationResult, parseDelegationResult, parseDelegationTrailer, stripDelegationResult, stripDelegationTrailer, } from './task-log/delegation-trailer';
112
+ export type { ConsumedDelegationResult, DelegationResult, DelegationResultInput, ParsedDelegationResult, } from './task-log/delegation-trailer';
113
+ export { extractLegacyWorkflowRunId, scanLegacyUiCardAt, scanLegacyUiCardTags, } from './ui-card/index';
114
+ export type { LegacyUiCardTag } from './ui-card/index';
115
+ export { classifyTaskError } from './provider/classify-task-error';
116
+ export { redactTechnicalMessage } from './provider/redact-technical-message';
117
+ export type { TaskErrorCode, TaskErrorMeta, TaskErrorProjection } from './provider/task-error.types';
50
118
  export { SdkBoxService } from './boxing/box.service';
51
119
  export { buildContext } from './boxing/context-builder';
52
120
  export type { IBoxStorage, ITaskReader, ITokenizer } from './boxing/box-storage.interface';
53
121
  export type { BoxRow, BoxSummary, BoxResponse as SdkBoxResponse, InsertBoxData, CreateBoxParams, ThreadMessage as BoxingThreadMessage, ContextBuildParams, ContextBuildResponse, } from './boxing/box.types';
54
- export { parseStdoutEvent } from './provider/cli/adapters/index.js';
122
+ export { parseStdoutEvent, createLogParseSession } from './provider/cli/adapters/index.js';
123
+ export type { LogParseSession } from './provider/cli/adapters/index.js';
55
124
  export { parseUsage } from './provider/parse-usage';
56
125
  export type { ParsedUsage } from './provider/parse-usage';
57
126
  export { ParallelRunner, ParallelRunnerTimeoutError } from './parallel/parallel-runner';
@@ -62,17 +131,44 @@ export { AgentRuntime } from './parallel/agent-runtime';
62
131
  export type { AgentResult, AgentQueryRequest, AgentExecuteRequest } from './parallel/agent-runtime';
63
132
  export { PluginProviderRuntime, createPluginProviderFactory } from './plugin/plugin-provider';
64
133
  export type { PluginProviderConfig } from './plugin/types';
65
- export { TaskRepository } from './repository/task.repository.js';
66
- export type { TaskRow } from './repository/task.repository.js';
134
+ export { DEFAULT_TASK_REAPER_TICK_INTERVAL_MS, mergeTerminalReason, TaskRepository, TASK_HEARTBEAT_HARD_STALE_MS, TASK_HEARTBEAT_INTERVAL_MS, TASK_HEARTBEAT_STALE_MS, resolveTaskHeartbeatHardStaleMs, resolveTaskHeartbeatIntervalMs, resolveTaskHeartbeatStaleMs, } from './repository/task.repository.js';
135
+ export type { ReapOrphanedTasksOptions } from './repository/task.repository.js';
136
+ export type { FinalizeTaskStopOptions, TaskStopMethod, TaskStopOrigin, TaskStopRequestContext, TaskStopRequestResult, } from './repository/task.repository.js';
137
+ export { INSTRUCTION_STOP_EPOCH_MISMATCH, INSTRUCTION_STOP_GENERATION_ALREADY_SETTLED, INSTRUCTION_STOP_PROCESS_TERMINATION_FAILED, INSTRUCTION_STOP_REQUEST_FAILED, INSTRUCTION_STOP_SETTLE_CAS_FAILED, INSTRUCTION_STOP_TARGET_PID_MISSING, INSTRUCTION_STOP_WORKSPACE_MISMATCH, stopTask, resolveTaskStopMethod, TASK_STOP_DEFAULT_GRACE_MS, TASK_STOP_DEFAULT_POLL_MS, TASK_STOP_OWNED_PROCESS_MARKERS, } from './lifecycle/task-stop.js';
138
+ export type { StopTaskGenerationForInstructionOptions, StopTaskOptions, StopTaskProcessControl, StopTaskResult, StopTaskStatus, } from './lifecycle/task-stop.js';
139
+ export { LEGACY_TASK_TERMINAL_ERROR_PATTERNS, normalizeTaskStatus, TASK_TERMINAL_STATUSES, } from './repository/task-status.js';
140
+ export type { TaskStatus, TaskStatusInput, TaskTerminalReason, TaskTerminalStatus, } from './repository/task-status.js';
141
+ export type { TaskRow, TaskKillResult, TaskKillStatus } from './repository/task.repository.js';
142
+ export { runHeartbeatTick, startTaskHeartbeat, stopTaskHeartbeat, TASK_STOP_POLL_INTERVAL_MS, taskHeartbeatRegistry, } from './lifecycle/task-heartbeat.js';
143
+ export type { HeartbeatTickResult, TaskHeartbeatHandle, TaskHeartbeatOptions, TaskHeartbeatRow, } from './lifecycle/task-heartbeat.js';
144
+ export { checkProcessOwnership, checkProcessOwnershipAsync, probeProcessLiveness, terminateProcessTree, UNIX_PROCESS_POLL_INTERVAL_MS, UNIX_SIGKILL_CONFIRM_MS, UNIX_SIGTERM_GRACE_MS, } from './process/process-control.js';
145
+ export type { ProcessCommandLineResult, ProcessCommandResult, ProcessCommandRunner, ProcessCommandRunnerAsync, ProcessControlOptions, ProcessLiveness, ProcessOwnership, ProcessTerminationResult, ProcessTerminationStatus, } from './process/process-control.js';
67
146
  export { SpanRepository } from './repository/span.repository.js';
68
147
  export type { SpanRow } from './repository/span.repository.js';
148
+ export { COMMON_CODE_COLORS, COMMON_CODE_GROUPS, CommonCodeRepository, CommonCodeRepositoryError, generateCommonCodeId, } from './repository/common-code.repository.js';
149
+ export type { CommonCodeColor, CommonCodeErrorReason, CommonCodeGroup, CreateThreadStateInput, UpdateCommonCodeDisplayInput, } from './repository/common-code.repository.js';
150
+ export type { CommonCode, NewCommonCode } from './schema/common-codes.js';
151
+ export { StorageMetadataRepository } from './repository/storage-metadata.repository.js';
152
+ export { STORAGE_METADATA_KINDS, STORAGE_METADATA_UNITS, } from './repository/storage-metadata.repository.js';
153
+ export type { StorageMetadataAge, StorageMetadataAggregateRow, StorageMetadataBatchResult, StorageMetadataCutoffs, StorageMetadataKind, StorageMetadataReadiness, StorageMetadataSnapshot, StorageMetadataUnit, StorageMetadataUnitReadiness, StorageMetadataVerificationMismatch, } from './repository/storage-metadata.repository.js';
154
+ export { ThreadRepository, ThreadTitleMetadataPatchError, } from './repository/thread.repository.js';
155
+ export type { ThreadRow, NewThread, ThreadTitleMetadataPatch, ThreadTitleMetadataPatchResult, ThreadTitleMetadataPatchErrorReason, } from './repository/thread.repository.js';
156
+ export { ThreadHistoryConflictError, ThreadHighlightConflictError, ThreadHighlightRegenerationConflictError, ThreadHistoryRepository, } from './repository/thread-history.repository.js';
157
+ export { THREAD_HIGHLIGHT_DELETION_REASON_REGENERATION_REPLACED, THREAD_HIGHLIGHT_REGENERATION_COMMIT_FAILED, THREAD_HIGHLIGHT_REGENERATION_DETECTION_FAILED, THREAD_HIGHLIGHT_REGENERATION_INTERRUPTED, THREAD_HIGHLIGHT_REGENERATION_NO_ELIGIBLE_TURNS, } from './repository/thread-history.repository.js';
158
+ export type { CompleteThreadHighlightRegenerationInput, CompleteThreadHighlightRegenerationResult, CreateThreadHighlightRegenerationRunInput, CreateThreadHighlightRegenerationRunResult, CreateThreadHighlightInput, DismissThreadHighlightInput, FailThreadHighlightRegenerationRunInput, ListActiveHighlightsOptions, ThreadActorInput, ThreadHighlightDeletionReason, ThreadHighlightEligibleTurn, ThreadHighlightRegenerationCandidate, ThreadHighlightRegenerationErrorCode, ThreadSnapshot, ThreadSnapshotMutationInput, ThreadTimeline, ThreadTimelineOptions, ThreadTimelineQuery, UpdateThreadHighlightInput, } from './repository/thread-history.repository.js';
159
+ export { BUILTIN_THREAD_STATES, THREAD_PRIORITIES, customStateLabel, hasThreadTitleKey, isThreadPriority, isThreadState, matchesThreadTitleFilter, mergeThreadTitleMeta, parseThreadPriorityFilter, parseThreadStateFilter, readThreadTitleMeta, threadTitleSearchHaystack, } from './repository/thread-title.types.js';
160
+ export type { BuiltinThreadState, LegacyThreadState, StableThreadState, ThreadPriority, ThreadState, ThreadTitleFilter, ThreadTitleMeta, ThreadTitlePatch, } from './repository/thread-title.types.js';
161
+ export { THREAD_ACTOR_TYPES, THREAD_EVENT_TYPES, THREAD_HIGHLIGHT_KINDS, THREAD_HIGHLIGHT_SOURCES, THREAD_HIGHLIGHT_STATUSES, THREAD_HIGHLIGHT_RUN_STATUSES, } from './schema/thread-history.js';
162
+ export type { NewThreadEvent, NewThreadHighlight, NewThreadHighlightRun, ThreadActorType, ThreadEvent, ThreadEventType, ThreadHighlight, ThreadHighlightKind, ThreadHighlightSource, ThreadHighlightStatus, ThreadHighlightRun, ThreadHighlightRunStatus, } from './schema/thread-history.js';
69
163
  export { RemoteProviderRuntime, createRemoteProviderFactory } from './remote/remote-provider';
70
164
  export { RemoteAgentManager } from './remote/remote-agent-manager';
71
165
  export { McpHttpTransport } from './remote/remote-transport';
72
- export type { RemoteTransport, RemoteAgentConfig, RemoteProviderConfig, RemoteAgentQueryRequest, RemoteAgentExecuteRequest, RemoteAgentResponse, McpJsonRpcRequest, McpJsonRpcResponse, RemoteAgentDescriptor, } from './remote/types';
166
+ export { resolveAgentExecutionProfile, resolveAgentExecutionProfiles, } from './remote/execution-profile';
167
+ export type { RemoteTransport, RemoteAgentConfig, RemoteProviderConfig, RemoteAgentQueryRequest, RemoteAgentExecuteRequest, RemoteAgentResponse, McpJsonRpcRequest, McpJsonRpcResponse, RemoteAgentDescriptor, AgentExecutionProfile, AgentExecutionProfileSlot, AgentExecutionProfileStatus, AgentExecutionProfileErrorCode, } from './remote/types';
73
168
  export { createHandler } from './server/handler';
74
169
  export type { HandlerOptions, CrewxHandler } from './server/handler';
75
170
  export type { AuthOptions } from './server/auth';
171
+ export * from './account/index';
76
172
  export { YamlHookPlugin, validateHooksSchema } from './hooks/yaml-plugin';
77
173
  export type { YamlHookConfig } from './hooks/yaml-plugin';
78
174
  export * from './conversation/index.js';
@@ -83,5 +179,8 @@ export { createScopedAdapterStore } from './adapter/scoped-store';
83
179
  export { createAdapterContext, runInSyncWindow, getSyncWindowStore } from './adapter/context-builder';
84
180
  export type { SyncWindow, AdapterContextOptions } from './adapter/context-builder';
85
181
  export type { ChannelAdapterPluginSpec } from './adapter/plugin-helper';
86
- export { resolveWindowsSpawnProgram, materializeWindowsSpawnProgram, resolveWindowsExecutablePath, } from './internal/windows-spawn';
182
+ export { resolveExecutablePath, resolveWindowsSpawnProgram, materializeWindowsSpawnProgram, resolveWindowsExecutablePath, } from './internal/windows-spawn';
87
183
  export type { WindowsSpawnProgram, WindowsSpawnInvocation, ResolveWindowsSpawnProgramParams, } from './internal/windows-spawn';
184
+ export { filterAgentConfigs, formatAgentList } from './agent/agent-list-view';
185
+ export type { AgentListFilters, AgentListSnapshot, AgentListFormatOptions } from './agent/agent-list-view';
186
+ export type { PromptListResolver } from './template/types';