evolve-sdk 0.0.55.dev1267__tar.gz → 0.0.55.dev1272__tar.gz

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 (44) hide show
  1. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/PKG-INFO +1 -1
  2. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/bridge/dist/bridge.bundle.cjs +1 -1
  3. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/__init__.py +1 -1
  4. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/config.py +1 -1
  5. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve_sdk.egg-info/PKG-INFO +1 -1
  6. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/pyproject.toml +1 -1
  7. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/LICENSE +0 -0
  8. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/MANIFEST.in +0 -0
  9. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/README.md +0 -0
  10. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/bridge/__init__.py +0 -0
  11. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/_http.py +0 -0
  12. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/agent.py +0 -0
  13. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/bridge.py +0 -0
  14. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/browser_credentials.py +0 -0
  15. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/browser_profiles.py +0 -0
  16. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/hosted.py +0 -0
  17. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/integrations.py +0 -0
  18. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/managed_secrets.py +0 -0
  19. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/pipeline/__init__.py +0 -0
  20. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/pipeline/pipeline.py +0 -0
  21. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/pipeline/types.py +0 -0
  22. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/prompts/__init__.py +0 -0
  23. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/prompts/agent_md/judge.md +0 -0
  24. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/prompts/agent_md/reduce.md +0 -0
  25. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/prompts/agent_md/verify.md +0 -0
  26. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/prompts/user/judge.md +0 -0
  27. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/prompts/user/retry_feedback.md +0 -0
  28. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/prompts/user/verify.md +0 -0
  29. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/py.typed +0 -0
  30. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/results.py +0 -0
  31. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/retry.py +0 -0
  32. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/schema.py +0 -0
  33. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/sessions_client.py +0 -0
  34. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/storage_client.py +0 -0
  35. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/swarm/__init__.py +0 -0
  36. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/swarm/results.py +0 -0
  37. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/swarm/swarm.py +0 -0
  38. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/swarm/types.py +0 -0
  39. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve/utils.py +0 -0
  40. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve_sdk.egg-info/SOURCES.txt +0 -0
  41. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve_sdk.egg-info/dependency_links.txt +0 -0
  42. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve_sdk.egg-info/requires.txt +0 -0
  43. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/evolve_sdk.egg-info/top_level.txt +0 -0
  44. {evolve_sdk-0.0.55.dev1267 → evolve_sdk-0.0.55.dev1272}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolve-sdk
3
- Version: 0.0.55.dev1267
3
+ Version: 0.0.55.dev1272
4
4
  Summary: Pythonic SDK for multi-agent orchestration in E2B sandboxes
5
5
  Author-email: "Swarmlink, Inc." <brandomagnani@evolvingmachines.ai>
6
6
  License: Apache-2.0
@@ -675,7 +675,7 @@ if __name__ == "__main__":
675
675
  ]))`;continue}else if(r[c]==="$"){a+=`($|(?=[\r
676
676
  ]))`;continue}}if(n.s&&r[c]==="."){a+=s?`${r[c]}\r
677
677
  `:`[${r[c]}\r
678
- ]`;continue}a+=r[c],r[c]==="\\"?i=!0:s&&r[c]==="]"?s=!1:!s&&r[c]==="["&&(s=!0)}try{new RegExp(a)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return a}function BA(e,t){if(t.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),t.target==="openApi3"&&e.keyType?._def.typeName===Ue.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((r,a)=>({...r,[a]:gt(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",a]})??Jr(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:"object",additionalProperties:gt(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if(t.target==="openApi3")return n;if(e.keyType?._def.typeName===Ue.ZodString&&e.keyType._def.checks?.length){let{type:r,...a}=UA(e.keyType._def,t);return{...n,propertyNames:a}}else{if(e.keyType?._def.typeName===Ue.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===Ue.ZodBranded&&e.keyType._def.type._def.typeName===Ue.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...a}=DA(e.keyType._def,t);return{...n,propertyNames:a}}}return n}function are(e,t){if(t.mapStrategy==="record")return BA(e,t);let n=gt(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||Jr(t),r=gt(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||Jr(t);return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}function sre(e){let t=e.values,r=Object.keys(e.values).filter(i=>typeof t[t[i]]!="number").map(i=>t[i]),a=Array.from(new Set(r.map(i=>typeof i)));return{type:a.length===1?a[0]==="string"?"string":"number":["string","number"],enum:r}}function ore(e){return e.target==="openAi"?void 0:{not:Jr({...e,currentPath:[...e.currentPath,"not"]})}}function cre(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var UI={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function ure(e,t){if(t.target==="openApi3")return lre(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in UI&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((a,i)=>{let s=UI[i._def.typeName];return s&&!a.includes(s)?[...a,s]:a},[]);return{type:r.length>1?r:r[0]}}else if(n.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){let r=n.reduce((a,i)=>{let s=typeof i._def.value;switch(s){case"string":case"number":case"boolean":return[...a,s];case"bigint":return[...a,"integer"];case"object":if(i._def.value===null)return[...a,"null"];case"symbol":case"undefined":case"function":default:return a}},[]);if(r.length===n.length){let a=r.filter((i,s,o)=>o.indexOf(i)===s);return{type:a.length>1?a:a[0],enum:n.reduce((i,s)=>i.includes(s._def.value)?i:[...i,s._def.value],[])}}}else if(n.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:n.reduce((r,a)=>[...r,...a._def.values.filter(i=>!r.includes(i))],[])};return lre(e,t)}var lre=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((r,a)=>gt(r._def,{...t,currentPath:[...t.currentPath,"anyOf",`${a}`]})).filter(r=>!!r&&(!t.strictUnions||typeof r=="object"&&Object.keys(r).length>0));return n.length?{anyOf:n}:void 0};function dre(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:UI[e.innerType._def.typeName],nullable:!0}:{type:[UI[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let r=gt(e.innerType._def,{...t,currentPath:[...t.currentPath]});return r&&"$ref"in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}let n=gt(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return n&&{anyOf:[n,{type:"null"}]}}function fre(e,t){let n={type:"number"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"int":n.type="integer",CL(n,"type",r.message,t);break;case"min":t.target==="jsonSchema7"?r.inclusive?yn(n,"minimum",r.value,r.message,t):yn(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),yn(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?yn(n,"maximum",r.value,r.message,t):yn(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),yn(n,"maximum",r.value,r.message,t));break;case"multipleOf":yn(n,"multipleOf",r.value,r.message,t);break}return n}function pre(e,t){let n=t.target==="openAi",r={type:"object",properties:{}},a=[],i=e.shape();for(let o in i){let c=i[o];if(c===void 0||c._def===void 0)continue;let l=ist(c);l&&n&&(c._def.typeName==="ZodOptional"&&(c=c._def.innerType),c.isNullable()||(c=c.nullable()),l=!1);let u=gt(c._def,{...t,currentPath:[...t.currentPath,"properties",o],propertyPath:[...t.currentPath,"properties",o]});u!==void 0&&(r.properties[o]=u,l||a.push(o))}a.length&&(r.required=a);let s=rst(e,t);return s!==void 0&&(r.additionalProperties=s),r}function rst(e,t){if(e.catchall._def.typeName!=="ZodNever")return gt(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function ist(e){try{return e.isOptional()}catch{return!0}}var hre=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return gt(e.innerType._def,t);let n=gt(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:Jr(t)},n]}:Jr(t)};var mre=(e,t)=>{if(t.pipeStrategy==="input")return gt(e.in._def,t);if(t.pipeStrategy==="output")return gt(e.out._def,t);let n=gt(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),r=gt(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",n?"1":"0"]});return{allOf:[n,r].filter(a=>a!==void 0)}};function gre(e,t){return gt(e.type._def,t)}function yre(e,t){let r={type:"array",uniqueItems:!0,items:gt(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&yn(r,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&yn(r,"maxItems",e.maxSize.value,e.maxSize.message,t),r}function vre(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((n,r)=>gt(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[]),additionalItems:gt(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((n,r)=>gt(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[])}}function bre(e){return{not:Jr(e)}}function Sre(e){return Jr(e)}var _re=(e,t)=>gt(e.innerType._def,t);var wre=(e,t,n)=>{switch(t){case Ue.ZodString:return UA(e,n);case Ue.ZodNumber:return fre(e,n);case Ue.ZodObject:return pre(e,n);case Ue.ZodBigInt:return Kne(e,n);case Ue.ZodBoolean:return Xne();case Ue.ZodDate:return UL(e,n);case Ue.ZodUndefined:return bre(n);case Ue.ZodNull:return cre(n);case Ue.ZodArray:return Yne(e,n);case Ue.ZodUnion:case Ue.ZodDiscriminatedUnion:return ure(e,n);case Ue.ZodIntersection:return nre(e,n);case Ue.ZodTuple:return vre(e,n);case Ue.ZodRecord:return BA(e,n);case Ue.ZodLiteral:return rre(e,n);case Ue.ZodEnum:return tre(e);case Ue.ZodNativeEnum:return sre(e);case Ue.ZodNullable:return dre(e,n);case Ue.ZodOptional:return hre(e,n);case Ue.ZodMap:return are(e,n);case Ue.ZodSet:return yre(e,n);case Ue.ZodLazy:return()=>e.getter()._def;case Ue.ZodPromise:return gre(e,n);case Ue.ZodNaN:case Ue.ZodNever:return ore(n);case Ue.ZodEffects:return ere(e,n);case Ue.ZodAny:return Jr(n);case Ue.ZodUnknown:return Sre(n);case Ue.ZodDefault:return Qne(e,n);case Ue.ZodBranded:return DA(e,n);case Ue.ZodReadonly:return _re(e,n);case Ue.ZodCatch:return Zne(e,n);case Ue.ZodPipeline:return mre(e,n);case Ue.ZodFunction:case Ue.ZodVoid:case Ue.ZodSymbol:return;default:return(r=>{})(t)}};function gt(e,t,n=!1){let r=t.seen.get(e);if(t.override){let o=t.override?.(e,t,r,n);if(o!==Dne)return o}if(r&&!n){let o=ast(r,t);if(o!==void 0)return o}let a={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,a);let i=wre(e,e.typeName,t),s=typeof i=="function"?gt(i(),t):i;if(s&&sst(e,t,s),t.postProcess){let o=t.postProcess(s,e,t);return a.jsonSchema=s,o}return a.jsonSchema=s,s}var ast=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:AA(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every((n,r)=>t.currentPath[r]===n)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),Jr(t)):t.$refStrategy==="seen"?Jr(t):void 0}},sst=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n);var Ire=(e,t)=>{let n=Bne(t),r=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((c,[l,u])=>({...c,[l]:gt(u._def,{...n,currentPath:[...n.basePath,n.definitionPath,l]},!0)??Jr(n)}),{}):void 0,a=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,i=gt(e._def,a===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,a]},!1)??Jr(n),s=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;s!==void 0&&(i.title=s),n.flags.hasReferencedOpenAiAnyType&&(r||(r={}),r[n.openAiAnyTypeName]||(r[n.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:n.$refStrategy==="relative"?"1":[...n.basePath,n.definitionPath,n.openAiAnyTypeName].join("/")}}));let o=a===void 0?r?{...i,[n.definitionPath]:r}:i:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,a].join("/"),[n.definitionPath]:{...r,[a]:i}};return n.target==="jsonSchema7"?o.$schema="http://json-schema.org/draft-07/schema#":(n.target==="jsonSchema2019-09"||n.target==="openAi")&&(o.$schema="https://json-schema.org/draft/2019-09/schema#"),n.target==="openAi"&&("anyOf"in o||"oneOf"in o||"allOf"in o||"type"in o&&Array.isArray(o.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),o};var xre=Ire;var af=Ve(require("fs"),1),OXe=require("fs");rE();FT();nB();var zKe=["no-internet","pinned-context"],I5t={strict:{coerceTypes:!1,removeAdditional:!1,useDefaults:!1,allErrors:!0},loose:{coerceTypes:"array",removeAdditional:!1,useDefaults:!0,allErrors:!0}};var GKe=2e5;function x5t(e,t){return t??sf[e]?.defaultReasoningEffort}function lB(e){return e!=="off"&&e!=="none"&&e!=="minimal"&&e!=="no-thinking"}function AXe(e){if(!(e==="off"||e==="none"||e==="no-thinking"))return!e||e==="thinking"||e==="medium"?"medium":e==="low"||e==="minimal"?"minimal":e==="xhigh"?"max":e}function E5t(e){let t=AXe(e);return t?` --variant ${t} --thinking`:""}var sf={claude:{image:"evolve-all",apiKeyEnv:"ANTHROPIC_API_KEY",effortSupport:"level",oauthEnv:"CLAUDE_CODE_OAUTH_TOKEN",baseUrlEnv:"ANTHROPIC_BASE_URL",customHeadersEnv:"ANTHROPIC_CUSTOM_HEADERS",defaultModel:"opus",defaultReasoningEffort:"high",models:[{alias:"fable",modelId:"claude-fable-5",description:"Highest capability, long-horizon agentic work"},{alias:"opus",modelId:"claude-opus-5",description:"Complex reasoning, R&D, architecting"},{alias:"sonnet",modelId:"claude-sonnet-5",description:"Daily coding, features, tests"},{alias:"haiku",modelId:"claude-haiku-4-5-20251001",description:"Quick tasks, syntax correction"},{alias:"opus[1m]",modelId:"opus[1m]",description:"Complex reasoning with 1M context window"},{alias:"sonnet[1m]",modelId:"sonnet[1m]",description:"Daily coding with 1M context window"},{alias:"glm-5.3",modelId:"glm-5.3",description:"Zhipu GLM-5.3 via the Evolve gateway"},{alias:"glm-5.3-flash",modelId:"glm-5.3-flash",description:"Zhipu GLM-5.3 Flash via the Evolve gateway"},{alias:"openrouter/deepseek/deepseek-v4.1-flash",modelId:"openrouter/deepseek/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via OpenRouter"},{alias:"fireworks/deepseek-v4.1-flash",modelId:"fireworks/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via Fireworks"}],systemPromptFile:"CLAUDE.md",mcpConfig:{settingsDir:"~/.claude",filename:"settings.json",format:"json",projectConfig:!0},nativeConfig:{format:"json",path:"~/.claude/evolve-user-settings.json",delivery:"settings-flag"},presets:{"no-internet":{configStamp:{permissions:{deny:["WebSearch","WebFetch"]}}},"pinned-context":{configStamp:{autoCompactEnabled:!0,autoCompactWindow:GKe}}},skillsConfig:{targetDir:"~/.claude/skills"},buildCommand:({prompt:e,model:t,isResume:n,reasoningEffort:r,nativeConfigPath:a})=>{let i=n?"--continue ":"",s=r?` --effort ${r}`:"",o=a?` --settings ${a}`:"";return`echo "${e}" | claude -p ${i}--model ${t}${s}${o} --output-format stream-json --verbose --dangerously-skip-permissions`}},codex:{image:"evolve-all",apiKeyEnv:"OPENAI_API_KEY",oauthEnv:"CODEX_OAUTH_FILE_PATH",effortSupport:"level",oauthFileName:"auth.json",baseUrlEnv:"OPENAI_BASE_URL",defaultModel:"gpt-5.6-sol",defaultReasoningEffort:"high",models:[{alias:"gpt-5.6-sol",modelId:"gpt-5.6-sol",description:"Newest frontier flagship"},{alias:"gpt-5.6-terra",modelId:"gpt-5.6-terra",description:"Balances intelligence and cost"},{alias:"gpt-5.6-luna",modelId:"gpt-5.6-luna",description:"High-volume, cost-sensitive tier"},{alias:"gpt-5.5",modelId:"gpt-5.5",description:"Previous frontier model"},{alias:"gpt-5.3-codex",modelId:"gpt-5.3-codex",description:"Industry-leading code-optimized"}],systemPromptFile:"AGENTS.md",mcpConfig:{settingsDir:"~/.codex",filename:"config.toml",format:"toml"},nativeConfig:{format:"toml",path:"~/.codex/config.toml",delivery:"base-file"},presets:{"no-internet":{commandFlags:" -c web_search=disabled"},"pinned-context":{commandFlags:` -c model_context_window=${GKe}`}},skillsConfig:{targetDir:"~/.codex/skills"},spendTrackingEnvs:{sessionTagEnv:"EVOLVE_LITELLM_CUSTOMER_ID",runTagEnv:"EVOLVE_LITELLM_TAGS"},setupCommand:`printf '%s\\n' "$OPENAI_API_KEY" | codex login --with-api-key`,buildCommand:({prompt:e,model:t,isResume:n,reasoningEffort:r,presetFlags:a})=>{let i=r?` -c model_reasoning_effort="${r}"`:"";return`printf '%s' "${e}" | codex exec --model ${t}${i}${a??""} --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check --json${n?" resume --last":""}`}},gemini:{image:"evolve-all",apiKeyEnv:"GEMINI_API_KEY",effortSupport:"none",oauthEnv:"GEMINI_OAUTH_FILE_PATH",oauthFileName:"oauth_creds.json",oauthActivationEnv:{key:"GOOGLE_GENAI_USE_GCA",value:"true"},baseUrlEnv:"GOOGLE_GEMINI_BASE_URL",defaultModel:"gemini-3.5-flash",models:[{alias:"gemini-3.5-flash",modelId:"gemini-3.5-flash",description:"Latest flash the stable gemini CLI serves: coding + agentic planning"},{alias:"gemini-3.5-flash-lite",modelId:"gemini-3.5-flash-lite",description:"Most cost-effective 3.5-class model"},{alias:"gemini-3.1-pro-preview",modelId:"gemini-3.1-pro-preview",description:"Latest pro, complex agentic + coding"}],systemPromptFile:"GEMINI.md",mcpConfig:{settingsDir:"~/.gemini",filename:"settings.json",format:"json"},skillsConfig:{targetDir:"~/.gemini/skills"},customHeadersEnv:"GEMINI_CLI_CUSTOM_HEADERS",customHeadersFormat:"comma",gatewayPath:"/gemini",buildCommand:({prompt:e,model:t,isResume:n})=>`gemini ${n?"--resume latest ":""}--prompt ${vO(e)} --model ${t} --yolo --output-format stream-json`},qwen:{image:"evolve-all",apiKeyEnv:"OPENAI_API_KEY",baseUrlEnv:"OPENAI_BASE_URL",effortSupport:"binary",defaultModel:"qwen3.7-max",defaultReasoningEffort:"thinking",models:[{alias:"qwen3.7-max",modelId:"qwen3.7-max",description:"Strongest reasoning and coding option"},{alias:"qwen3.7-plus",modelId:"qwen3.7-plus",description:"Latest balanced Qwen Cloud recommendation"},{alias:"qwen3.6-flash",modelId:"qwen3.6-flash",description:"Fast and cost-effective option"}],systemPromptFile:"QWEN.md",mcpConfig:{settingsDir:"~/.qwen",filename:"settings.json",format:"json"},skillsConfig:{targetDir:"~/.qwen/skills"},spendTrackingJsonConfig:{headersPath:"model.generationConfig.customHeaders"},gatewayModelAliases:{"qwen3.7-max":"dashscope/qwen3.7-max","qwen3.7-plus":"dashscope/qwen3.7-plus","qwen3.6-flash":"dashscope/qwen3.6-flash"},defaultBaseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1",buildCommand:({prompt:e,model:t,isResume:n,isDirectMode:r})=>{let a=n?"--continue ":"",i=r||t.startsWith("dashscope/")?t:`dashscope/${t}`;return`qwen "${e}" ${a}--auth-type openai --model ${i} --yolo --output-format stream-json`}},kimi:{image:"evolve-all",apiKeyEnv:"KIMI_API_KEY",effortSupport:"level",baseUrlEnv:"KIMI_BASE_URL",defaultModel:"kimi-k3",defaultReasoningEffort:"max",models:[{alias:"kimi-k3",modelId:"moonshot/kimi-k3",description:"Latest flagship: 1M context, always-on thinking",maxContextSize:1048576},{alias:"kimi-k2.7-code",modelId:"moonshot/kimi-k2.7-code",description:"Latest coding-specialized standard model"},{alias:"kimi-k3-raptor",modelId:"kimi-k3-raptor",description:"Evolve-managed Kimi K3 Raptor route for latency-sensitive agent runs",maxContextSize:1048576},{alias:"kimi-k2p7-code-raptor",modelId:"kimi-k2p7-code-raptor",description:"Evolve-managed Kimi K2.7 Code Raptor route for latency-sensitive agent runs"}],systemPromptFile:"AGENTS.md",mcpConfig:{settingsDir:"~/.kimi-code",filename:"mcp.json",format:"json"},skillsConfig:{targetDir:"~/.kimi-code/skills"},defaultBaseUrl:"https://api.moonshot.ai/v1",spendTrackingTomlProvider:{configPath:"~/.kimi-code/config.toml",providerName:"evolve-gateway",modelName:"evolve-default",maxContextSize:262144},checkpointExcludes:[".kimi-code/config.toml"],gatewayModelAliases:{"kimi-k3":"moonshot/kimi-k3","kimi-k2.7-code":"moonshot/kimi-k2.7-code","kimi-k3-raptor":"kimi-k3-raptor","kimi-k2p7-code-raptor":"kimi-k2p7-code-raptor"},buildCommand:({prompt:e,isResume:t,reasoningEffort:n,homeDir:r=qp})=>{let a=t?"--continue ":"",i=vO(e),s=`--config-file ${r}/.kimi-code/config.toml`,o=`$(if [ -f ${r}/.kimi-code/mcp.json ]; then printf ' --mcp-config-file ${r}/.kimi-code/mcp.json'; fi)`,c=lB(n)?"":" --no-thinking";return`if kimi --help 2>&1 | grep -q -- '--print'; then kimi --print ${a}${s}${o}${c} -p ${i} --output-format stream-json; else kimi ${a}-p ${i} --output-format stream-json; fi`}},opencode:{image:"evolve-all",apiKeyEnv:"OPENROUTER_API_KEY",effortSupport:"level",baseUrlEnv:"OPENAI_BASE_URL",defaultModel:"openrouter/anthropic/claude-opus-5",defaultReasoningEffort:"high",providerEnvMap:{openrouter:{keyEnv:"OPENROUTER_API_KEY"}},gatewayConfigEnv:"OPENCODE_CONFIG_CONTENT",models:[{alias:"openrouter/anthropic/claude-fable-5",modelId:"openrouter/anthropic/claude-fable-5",description:"Anthropic Fable via OpenRouter"},{alias:"openrouter/anthropic/claude-opus-5",modelId:"openrouter/anthropic/claude-opus-5",description:"Anthropic Opus 5 via OpenRouter"},{alias:"openrouter/anthropic/claude-sonnet-5",modelId:"openrouter/anthropic/claude-sonnet-5",description:"Anthropic Sonnet 5 via OpenRouter"},{alias:"openrouter/anthropic/claude-haiku-4.5",modelId:"openrouter/anthropic/claude-haiku-4.5",description:"Anthropic Haiku via OpenRouter"},{alias:"openrouter/openai/gpt-5.6-sol",modelId:"openrouter/openai/gpt-5.6-sol",description:"OpenAI GPT-5.6 Sol via OpenRouter"},{alias:"openrouter/openai/gpt-5.6-terra",modelId:"openrouter/openai/gpt-5.6-terra",description:"OpenAI GPT-5.6 Terra via OpenRouter"},{alias:"openrouter/openai/gpt-5.6-luna",modelId:"openrouter/openai/gpt-5.6-luna",description:"OpenAI GPT-5.6 Luna via OpenRouter"},{alias:"openrouter/google/gemini-3.6-flash",modelId:"openrouter/google/gemini-3.6-flash",description:"Gemini 3.6 Flash via OpenRouter"},{alias:"openrouter/qwen/qwen3.7-max",modelId:"openrouter/qwen/qwen3.7-max",description:"Qwen 3.7 Max via OpenRouter"},{alias:"openrouter/moonshotai/kimi-k3",modelId:"openrouter/moonshotai/kimi-k3",description:"Kimi K3 via OpenRouter"},{alias:"openrouter/z-ai/glm-5.3",modelId:"openrouter/z-ai/glm-5.3",description:"Zhipu GLM-5.3 via OpenRouter"},{alias:"openrouter/z-ai/glm-5.3-flash",modelId:"openrouter/z-ai/glm-5.3-flash",description:"Zhipu GLM-5.3 Flash (OpenRouter id; the Evolve gateway serves it from Fireworks)"},{alias:"openrouter/deepseek/deepseek-v4.1-flash",modelId:"openrouter/deepseek/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via OpenRouter"},{alias:"fireworks/deepseek-v4.1-flash",modelId:"fireworks/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via Fireworks"}],systemPromptFile:"AGENTS.md",mcpConfig:{settingsDir:".",filename:"opencode.json",format:"json"},skillsConfig:{targetDir:"~/.agents/skills"},checkpointDirs:["~/.local/share/opencode","~/.config/opencode","~/.local/state/opencode"],buildCommand:({prompt:e,model:t,isResume:n,isDirectMode:r,isExternalGateway:a,reasoningEffort:i})=>{let s=n?"--continue ":"",o=E5t(i);if(a)return`OPENCODE_PERMISSION='{"*":"allow"}' opencode run ${s}--model litellm/${t} --format json${o} "${e}" < /dev/null`;let c=T5t(t);return r?`OPENCODE_PERMISSION='{"*":"allow"}' opencode run ${s}--model ${c} --format json${o} "${e}" < /dev/null`:`OPENCODE_PERMISSION='{"*":"allow"}' opencode run ${s}--model litellm/${c} --format json${o} "${e}" < /dev/null`}},droid:{image:"evolve-all",apiKeyEnv:"FACTORY_API_KEY",effortSupport:"level",defaultModel:"claude-opus-5",defaultReasoningEffort:"high",models:[{alias:"claude-fable-5",modelId:"claude-fable-5",description:"Factory-managed Claude Fable 5"},{alias:"claude-opus-5",modelId:"claude-opus-5",description:"Factory-managed Claude Opus 5"},{alias:"claude-sonnet-5",modelId:"claude-sonnet-5",description:"Factory-managed Claude Sonnet 5"},{alias:"claude-haiku-4-5",modelId:"claude-haiku-4-5-20251001",description:"Factory-managed Claude Haiku 4.5"},{alias:"gpt-5.6-sol",modelId:"gpt-5.6-sol",description:"Factory-managed GPT-5.6 Sol"},{alias:"gpt-5.6-terra",modelId:"gpt-5.6-terra",description:"Factory-managed GPT-5.6 Terra"},{alias:"gpt-5.6-luna",modelId:"gpt-5.6-luna",description:"Factory-managed GPT-5.6 Luna"},{alias:"gemini-3.6-flash",modelId:"gemini-3.6-flash",description:"Factory-managed Gemini 3.6 Flash"},{alias:"qwen3.7-max",modelId:"qwen3.7-max",description:"Qwen 3.7 Max via the Evolve gateway"},{alias:"kimi-k3",modelId:"kimi-k3",description:"Factory-managed Droid Core Kimi K3"},{alias:"glm-5.3",modelId:"glm-5.3",description:"Zhipu GLM-5.3 via the Evolve gateway"},{alias:"glm-5.3-flash",modelId:"glm-5.3-flash",description:"Zhipu GLM-5.3 Flash via the Evolve gateway"},{alias:"openrouter/deepseek/deepseek-v4.1-flash",modelId:"openrouter/deepseek/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via OpenRouter"},{alias:"fireworks/deepseek-v4.1-flash",modelId:"fireworks/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via Fireworks"}],systemPromptFile:"AGENTS.md",mcpConfig:{settingsDir:"~/.factory",filename:"mcp.json",format:"json"},skillsConfig:{targetDir:"~/.factory/skills"},skipApiKeyEnvInGateway:!0,gatewayModelAliases:{"kimi-k3":"moonshot/kimi-k3","glm-5.3":"openrouter/z-ai/glm-5.3","qwen3.7-max":"dashscope/qwen3.7-max"},droidGatewaySettings:{settingsPath:"~/.factory/evolve-settings.json",displayName:"Evolve Gateway",provider:"generic-chat-completion-api",maxOutputTokens:32768},checkpointDirs:["~/.factory"],buildCommand:({prompt:e,model:t,isResume:n,sessionId:r,reasoningEffort:a,isDirectMode:i,isExternalGateway:s,homeDir:o=qp})=>{let c=!i||s,l=c?`--settings ${o}/.factory/evolve-settings.json `:"",u=c?"custom:Evolve-Gateway-0":t,d=a?` --reasoning-effort ${a}`:"",f=n&&r?`--session-id ${vO(r)} `:"";return`printf '%s' ${vO(e)} | droid ${l}exec ${f}--skip-permissions-unsafe --cwd ${o}/workspace --output-format stream-json --model ${vO(u)}${d}`}}};function Tv(e){let t=sf[e];if(!t)throw new Error(`Unknown agent type: ${e}`);return t}function pB(e,t){if(e.models.some(a=>a.alias===t||a.modelId===t))return!0;let n=e.gatewayModelAliases;if(n&&(t in n||Object.values(n).includes(t)))return!0;let r=e.directModelAliases;return!!(r&&(t in r||Object.values(r).includes(t)))}function T5t(e){return e.startsWith("openrouter/")||pB(sf.opencode,e)?e:`openrouter/${e}`}function k5t(e){return e in sf}function Lp(e,t=qp){return e.replace(/^~/,t)}function vO(e){return`'${e.replace(/'/g,"'\\''")}'`}function Yw(e,t=qp){let n=Tv(e);return`${Lp(n.mcpConfig.settingsDir,t)}/${n.mcpConfig.filename}`}function Kw(e,t=qp){let n=Tv(e);return Lp(n.mcpConfig.settingsDir,t)}function kv(e){if(e instanceof Error){let t=e.message.toLowerCase();return t.includes("not found")||t.includes("enoent")||t.includes("no such file")||t.includes("does not exist")}return!1}function PXe(e,t){let n=[t.command,t.url].filter(Boolean);if(n.length===0)throw new Error(`MCP server "${e}" must specify command or url`);if(n.length>1)throw new Error(`MCP server "${e}" cannot specify both command and url`)}function gB(e){for(let[t,n]of Object.entries(e))PXe(t,n)}function TO(e){return e.type?e.type:e.command?"stdio":"sse"}function O5t(e){let t=TO(e);return{...e,type:t}}function A5t(e){let{type:t,url:n,...r}=e;return TO(e)==="http"&&n?{httpUrl:n,...r}:n?{url:n,...r}:r}function P5t(e){return{type:TO(e),...e}}function R5t(e){let{type:t,...n}=e;return n.command?{...n,transport:"stdio"}:n.url&&(t==="http"||t==="sse")?{...n,transport:t}:n}function C5t(e){let t=TO(e),{type:n,httpHeaders:r,envHttpHeaders:a,bearerTokenEnvVar:i,envVars:s,...o}=e;if(t==="stdio"&&e.command)return{type:"stdio",...o};if(e.url){let c={...o,type:t==="sse"?"sse":"http",url:e.url},l=e.headers??r;return l&&Object.keys(l).length>0&&(c.headers=l),c}return{type:t==="stdio"?"stdio":"http",...o}}async function UZ(e,t,n,r,a){gB(n);let i=Kw(t,a),s=Yw(t,a);await e.files.makeDir(i);let o={};try{let l=await e.files.read(s);typeof l=="string"&&(o=JSON.parse(l))}catch(l){if(!kv(l))throw l}let c=Object.fromEntries(Object.entries(n).map(([l,u])=>[l,r(u)]));await e.files.write(s,JSON.stringify({...o,mcpServers:c},null,2))}async function N5t(e,t,n,r){gB(n);let a=Kw("claude",r),i=Yw("claude",r),s=Object.fromEntries(Object.entries(n).map(([c,l])=>[c,P5t(l)]));await e.files.write(`${t}/.mcp.json`,JSON.stringify({mcpServers:s},null,2)),await e.files.makeDir(a);let o={};try{let c=await e.files.read(i);typeof c=="string"&&(o=JSON.parse(c))}catch(c){if(!kv(c))throw c}o.enableAllProjectMcpServers=!0,await e.files.write(i,JSON.stringify(o,null,2))}async function M5t(e,t,n){await UZ(e,"gemini",t,O5t,n)}async function D5t(e,t,n){await UZ(e,"qwen",t,A5t,n)}async function JKe(e,t,n,r,a){let i=Kw(t,a),s=Yw(t,a);await e.files.makeDir(i);let o={};try{let f=await e.files.read(s);typeof f=="string"&&(o=JSON.parse(f))}catch(f){if(!kv(f))throw f}let c=n.split("."),l=o;for(let f=0;f<c.length-1;f++){let p=c[f];(typeof l[p]!="object"||l[p]===null)&&(l[p]={}),l=l[p]}let u=c[c.length-1],d=typeof l[u]=="object"&&l[u]!==null?l[u]:{};l[u]={...d,...r},await e.files.write(s,JSON.stringify(o,null,2))}async function U5t(e,t,n){let r=Kw("qwen",n),a=Yw("qwen",n);await e.files.makeDir(r);let i={};try{let l=await e.files.read(a);typeof l=="string"&&(i=JSON.parse(l))}catch(l){if(!kv(l))throw l}let s=i.model??{},o=s.generationConfig??{},c=o.extra_body??{};i.model={...s,generationConfig:{...o,extra_body:{...c,enable_thinking:t}}},await e.files.write(a,JSON.stringify(i,null,2))}async function B5t(e,t,n){await UZ(e,"kimi",t,R5t,n)}async function F5t(e,t,n){gB(n);let r=`${t}/.factory`,a=`${r}/mcp.json`;await e.files.makeDir(r);let i={};try{let o=await e.files.read(a);typeof o=="string"&&(i=JSON.parse(o))}catch(o){if(!kv(o))throw o}let s=Object.fromEntries(Object.entries(n).map(([o,c])=>[o,C5t(c)]));await e.files.write(a,JSON.stringify({...i,mcpServers:s},null,2))}async function L5t(e,t,n,r){let a=Lp(t.settingsPath,r),i=a.slice(0,a.lastIndexOf("/"));await e.files.makeDir(i);let s={cloudSessionSync:!1,customModels:[{model:t.model,displayName:t.displayName,baseUrl:t.baseUrl,apiKey:`\${${t.apiKeyEnv}}`,provider:t.provider,...t.maxOutputTokens!==void 0&&{maxOutputTokens:t.maxOutputTokens},extraHeaders:n}]};await e.files.write(a,JSON.stringify(s,null,2))}async function V5t(e,t,n){gB(n);let r=`${t}/opencode.json`,a={};try{let s=await e.files.read(r);typeof s=="string"&&(a=JSON.parse(s))}catch(s){if(!kv(s))throw s}let i=Object.fromEntries(Object.entries(n).map(([s,o])=>[s,q5t(o)]));await e.files.write(r,JSON.stringify({...a,mcp:i},null,2))}function q5t(e){let t=TO(e);if(t==="stdio"&&e.command){let n={type:"local",command:e.args?[e.command,...e.args]:[e.command]};return e.env&&Object.keys(e.env).length>0&&(n.environment=e.env),n}if(e.url){let n={type:"remote",url:e.url};return e.headers&&Object.keys(e.headers).length>0&&(n.headers=e.headers),n}return{type:t==="stdio"?"local":"remote",...e}}function OZ(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function RXe(e,t,n){let r=e[t];if(r===void 0)return{};let a=OZ(r);if(!a){let i=Array.isArray(r)?"an array":`a ${typeof r}`;throw new Error(`Refusing to rewrite "${t}" in ${n}: expected a TOML table, found ${i}`)}return a}function AZ(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((i,s)=>AZ(i,t[s]));let n=OZ(e),r=OZ(t);if(!n||!r)return!1;let a=Object.keys(n);return a.length===Object.keys(r).length&&a.every(i=>i in r&&AZ(n[i],r[i]))}async function CXe(e,t){let n="";try{let r=await e.files.read(t);typeof r=="string"&&(n=r)}catch(r){if(!kv(r))throw r;return{}}if(!n.trim())return{};try{return Bm(n)}catch(r){throw new Error(`Failed to parse TOML at ${t}: ${r.message}`)}}async function BZ(e,t,n){await e.files.write(t,Yv(n).trimEnd()+`
678
+ ]`;continue}a+=r[c],r[c]==="\\"?i=!0:s&&r[c]==="]"?s=!1:!s&&r[c]==="["&&(s=!0)}try{new RegExp(a)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return a}function BA(e,t){if(t.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),t.target==="openApi3"&&e.keyType?._def.typeName===Ue.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((r,a)=>({...r,[a]:gt(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",a]})??Jr(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:"object",additionalProperties:gt(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if(t.target==="openApi3")return n;if(e.keyType?._def.typeName===Ue.ZodString&&e.keyType._def.checks?.length){let{type:r,...a}=UA(e.keyType._def,t);return{...n,propertyNames:a}}else{if(e.keyType?._def.typeName===Ue.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===Ue.ZodBranded&&e.keyType._def.type._def.typeName===Ue.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...a}=DA(e.keyType._def,t);return{...n,propertyNames:a}}}return n}function are(e,t){if(t.mapStrategy==="record")return BA(e,t);let n=gt(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||Jr(t),r=gt(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||Jr(t);return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}function sre(e){let t=e.values,r=Object.keys(e.values).filter(i=>typeof t[t[i]]!="number").map(i=>t[i]),a=Array.from(new Set(r.map(i=>typeof i)));return{type:a.length===1?a[0]==="string"?"string":"number":["string","number"],enum:r}}function ore(e){return e.target==="openAi"?void 0:{not:Jr({...e,currentPath:[...e.currentPath,"not"]})}}function cre(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var UI={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function ure(e,t){if(t.target==="openApi3")return lre(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in UI&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((a,i)=>{let s=UI[i._def.typeName];return s&&!a.includes(s)?[...a,s]:a},[]);return{type:r.length>1?r:r[0]}}else if(n.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){let r=n.reduce((a,i)=>{let s=typeof i._def.value;switch(s){case"string":case"number":case"boolean":return[...a,s];case"bigint":return[...a,"integer"];case"object":if(i._def.value===null)return[...a,"null"];case"symbol":case"undefined":case"function":default:return a}},[]);if(r.length===n.length){let a=r.filter((i,s,o)=>o.indexOf(i)===s);return{type:a.length>1?a:a[0],enum:n.reduce((i,s)=>i.includes(s._def.value)?i:[...i,s._def.value],[])}}}else if(n.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:n.reduce((r,a)=>[...r,...a._def.values.filter(i=>!r.includes(i))],[])};return lre(e,t)}var lre=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((r,a)=>gt(r._def,{...t,currentPath:[...t.currentPath,"anyOf",`${a}`]})).filter(r=>!!r&&(!t.strictUnions||typeof r=="object"&&Object.keys(r).length>0));return n.length?{anyOf:n}:void 0};function dre(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:UI[e.innerType._def.typeName],nullable:!0}:{type:[UI[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let r=gt(e.innerType._def,{...t,currentPath:[...t.currentPath]});return r&&"$ref"in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}let n=gt(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return n&&{anyOf:[n,{type:"null"}]}}function fre(e,t){let n={type:"number"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"int":n.type="integer",CL(n,"type",r.message,t);break;case"min":t.target==="jsonSchema7"?r.inclusive?yn(n,"minimum",r.value,r.message,t):yn(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),yn(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?yn(n,"maximum",r.value,r.message,t):yn(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),yn(n,"maximum",r.value,r.message,t));break;case"multipleOf":yn(n,"multipleOf",r.value,r.message,t);break}return n}function pre(e,t){let n=t.target==="openAi",r={type:"object",properties:{}},a=[],i=e.shape();for(let o in i){let c=i[o];if(c===void 0||c._def===void 0)continue;let l=ist(c);l&&n&&(c._def.typeName==="ZodOptional"&&(c=c._def.innerType),c.isNullable()||(c=c.nullable()),l=!1);let u=gt(c._def,{...t,currentPath:[...t.currentPath,"properties",o],propertyPath:[...t.currentPath,"properties",o]});u!==void 0&&(r.properties[o]=u,l||a.push(o))}a.length&&(r.required=a);let s=rst(e,t);return s!==void 0&&(r.additionalProperties=s),r}function rst(e,t){if(e.catchall._def.typeName!=="ZodNever")return gt(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function ist(e){try{return e.isOptional()}catch{return!0}}var hre=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return gt(e.innerType._def,t);let n=gt(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:Jr(t)},n]}:Jr(t)};var mre=(e,t)=>{if(t.pipeStrategy==="input")return gt(e.in._def,t);if(t.pipeStrategy==="output")return gt(e.out._def,t);let n=gt(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),r=gt(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",n?"1":"0"]});return{allOf:[n,r].filter(a=>a!==void 0)}};function gre(e,t){return gt(e.type._def,t)}function yre(e,t){let r={type:"array",uniqueItems:!0,items:gt(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&yn(r,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&yn(r,"maxItems",e.maxSize.value,e.maxSize.message,t),r}function vre(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((n,r)=>gt(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[]),additionalItems:gt(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((n,r)=>gt(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[])}}function bre(e){return{not:Jr(e)}}function Sre(e){return Jr(e)}var _re=(e,t)=>gt(e.innerType._def,t);var wre=(e,t,n)=>{switch(t){case Ue.ZodString:return UA(e,n);case Ue.ZodNumber:return fre(e,n);case Ue.ZodObject:return pre(e,n);case Ue.ZodBigInt:return Kne(e,n);case Ue.ZodBoolean:return Xne();case Ue.ZodDate:return UL(e,n);case Ue.ZodUndefined:return bre(n);case Ue.ZodNull:return cre(n);case Ue.ZodArray:return Yne(e,n);case Ue.ZodUnion:case Ue.ZodDiscriminatedUnion:return ure(e,n);case Ue.ZodIntersection:return nre(e,n);case Ue.ZodTuple:return vre(e,n);case Ue.ZodRecord:return BA(e,n);case Ue.ZodLiteral:return rre(e,n);case Ue.ZodEnum:return tre(e);case Ue.ZodNativeEnum:return sre(e);case Ue.ZodNullable:return dre(e,n);case Ue.ZodOptional:return hre(e,n);case Ue.ZodMap:return are(e,n);case Ue.ZodSet:return yre(e,n);case Ue.ZodLazy:return()=>e.getter()._def;case Ue.ZodPromise:return gre(e,n);case Ue.ZodNaN:case Ue.ZodNever:return ore(n);case Ue.ZodEffects:return ere(e,n);case Ue.ZodAny:return Jr(n);case Ue.ZodUnknown:return Sre(n);case Ue.ZodDefault:return Qne(e,n);case Ue.ZodBranded:return DA(e,n);case Ue.ZodReadonly:return _re(e,n);case Ue.ZodCatch:return Zne(e,n);case Ue.ZodPipeline:return mre(e,n);case Ue.ZodFunction:case Ue.ZodVoid:case Ue.ZodSymbol:return;default:return(r=>{})(t)}};function gt(e,t,n=!1){let r=t.seen.get(e);if(t.override){let o=t.override?.(e,t,r,n);if(o!==Dne)return o}if(r&&!n){let o=ast(r,t);if(o!==void 0)return o}let a={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,a);let i=wre(e,e.typeName,t),s=typeof i=="function"?gt(i(),t):i;if(s&&sst(e,t,s),t.postProcess){let o=t.postProcess(s,e,t);return a.jsonSchema=s,o}return a.jsonSchema=s,s}var ast=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:AA(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every((n,r)=>t.currentPath[r]===n)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),Jr(t)):t.$refStrategy==="seen"?Jr(t):void 0}},sst=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n);var Ire=(e,t)=>{let n=Bne(t),r=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((c,[l,u])=>({...c,[l]:gt(u._def,{...n,currentPath:[...n.basePath,n.definitionPath,l]},!0)??Jr(n)}),{}):void 0,a=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,i=gt(e._def,a===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,a]},!1)??Jr(n),s=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;s!==void 0&&(i.title=s),n.flags.hasReferencedOpenAiAnyType&&(r||(r={}),r[n.openAiAnyTypeName]||(r[n.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:n.$refStrategy==="relative"?"1":[...n.basePath,n.definitionPath,n.openAiAnyTypeName].join("/")}}));let o=a===void 0?r?{...i,[n.definitionPath]:r}:i:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,a].join("/"),[n.definitionPath]:{...r,[a]:i}};return n.target==="jsonSchema7"?o.$schema="http://json-schema.org/draft-07/schema#":(n.target==="jsonSchema2019-09"||n.target==="openAi")&&(o.$schema="https://json-schema.org/draft/2019-09/schema#"),n.target==="openAi"&&("anyOf"in o||"oneOf"in o||"allOf"in o||"type"in o&&Array.isArray(o.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),o};var xre=Ire;var af=Ve(require("fs"),1),OXe=require("fs");rE();FT();nB();var zKe=["no-internet","pinned-context"],I5t={strict:{coerceTypes:!1,removeAdditional:!1,useDefaults:!1,allErrors:!0},loose:{coerceTypes:"array",removeAdditional:!1,useDefaults:!0,allErrors:!0}};var GKe=2e5;function x5t(e,t){return t??sf[e]?.defaultReasoningEffort}function lB(e){return e!=="off"&&e!=="none"&&e!=="minimal"&&e!=="no-thinking"}function AXe(e){if(!(e==="off"||e==="none"||e==="no-thinking"))return!e||e==="thinking"||e==="medium"?"medium":e==="low"||e==="minimal"?"minimal":e==="xhigh"?"max":e}function E5t(e){let t=AXe(e);return t?` --variant ${t} --thinking`:""}var sf={claude:{image:"evolve-all",apiKeyEnv:"ANTHROPIC_API_KEY",effortSupport:"level",oauthEnv:"CLAUDE_CODE_OAUTH_TOKEN",baseUrlEnv:"ANTHROPIC_BASE_URL",customHeadersEnv:"ANTHROPIC_CUSTOM_HEADERS",defaultModel:"opus",defaultReasoningEffort:"high",models:[{alias:"fable",modelId:"claude-fable-5-1",description:"Highest capability, long-horizon agentic work"},{alias:"claude-fable-5",modelId:"claude-fable-5",description:"Claude Fable 5 (legacy)"},{alias:"opus",modelId:"claude-opus-5",description:"Complex reasoning, R&D, architecting"},{alias:"sonnet",modelId:"claude-sonnet-5",description:"Daily coding, features, tests"},{alias:"haiku",modelId:"claude-haiku-4-5-20251001",description:"Quick tasks, syntax correction"},{alias:"opus[1m]",modelId:"opus[1m]",description:"Complex reasoning with 1M context window"},{alias:"sonnet[1m]",modelId:"sonnet[1m]",description:"Daily coding with 1M context window"},{alias:"glm-5.3",modelId:"glm-5.3",description:"Zhipu GLM-5.3 via the Evolve gateway"},{alias:"glm-5.3-flash",modelId:"glm-5.3-flash",description:"Zhipu GLM-5.3 Flash via the Evolve gateway"},{alias:"openrouter/deepseek/deepseek-v4.1-flash",modelId:"openrouter/deepseek/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via OpenRouter"},{alias:"fireworks/deepseek-v4.1-flash",modelId:"fireworks/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via Fireworks"}],systemPromptFile:"CLAUDE.md",mcpConfig:{settingsDir:"~/.claude",filename:"settings.json",format:"json",projectConfig:!0},nativeConfig:{format:"json",path:"~/.claude/evolve-user-settings.json",delivery:"settings-flag"},presets:{"no-internet":{configStamp:{permissions:{deny:["WebSearch","WebFetch"]}}},"pinned-context":{configStamp:{autoCompactEnabled:!0,autoCompactWindow:GKe}}},skillsConfig:{targetDir:"~/.claude/skills"},buildCommand:({prompt:e,model:t,isResume:n,reasoningEffort:r,nativeConfigPath:a})=>{let i=n?"--continue ":"",s=r?` --effort ${r}`:"",o=a?` --settings ${a}`:"";return`echo "${e}" | claude -p ${i}--model ${t}${s}${o} --output-format stream-json --verbose --dangerously-skip-permissions`}},codex:{image:"evolve-all",apiKeyEnv:"OPENAI_API_KEY",oauthEnv:"CODEX_OAUTH_FILE_PATH",effortSupport:"level",oauthFileName:"auth.json",baseUrlEnv:"OPENAI_BASE_URL",defaultModel:"gpt-5.6-sol",defaultReasoningEffort:"high",models:[{alias:"gpt-6-astra",modelId:"gpt-6-astra",description:"Newest frontier flagship"},{alias:"gpt-5.6-sol",modelId:"gpt-5.6-sol",description:"GPT-5.6 flagship (previous generation)"},{alias:"gpt-5.6-terra",modelId:"gpt-5.6-terra",description:"Balances intelligence and cost"},{alias:"gpt-5.6-luna",modelId:"gpt-5.6-luna",description:"High-volume, cost-sensitive tier"},{alias:"gpt-5.5",modelId:"gpt-5.5",description:"GPT-5.5 frontier model (two generations back)"},{alias:"gpt-5.3-codex",modelId:"gpt-5.3-codex",description:"Industry-leading code-optimized"}],systemPromptFile:"AGENTS.md",mcpConfig:{settingsDir:"~/.codex",filename:"config.toml",format:"toml"},nativeConfig:{format:"toml",path:"~/.codex/config.toml",delivery:"base-file"},presets:{"no-internet":{commandFlags:" -c web_search=disabled"},"pinned-context":{commandFlags:` -c model_context_window=${GKe}`}},skillsConfig:{targetDir:"~/.codex/skills"},spendTrackingEnvs:{sessionTagEnv:"EVOLVE_LITELLM_CUSTOMER_ID",runTagEnv:"EVOLVE_LITELLM_TAGS"},setupCommand:`printf '%s\\n' "$OPENAI_API_KEY" | codex login --with-api-key`,buildCommand:({prompt:e,model:t,isResume:n,reasoningEffort:r,presetFlags:a})=>{let i=r?` -c model_reasoning_effort="${r}"`:"";return`printf '%s' "${e}" | codex exec --model ${t}${i}${a??""} --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check --json${n?" resume --last":""}`}},gemini:{image:"evolve-all",apiKeyEnv:"GEMINI_API_KEY",effortSupport:"none",oauthEnv:"GEMINI_OAUTH_FILE_PATH",oauthFileName:"oauth_creds.json",oauthActivationEnv:{key:"GOOGLE_GENAI_USE_GCA",value:"true"},baseUrlEnv:"GOOGLE_GEMINI_BASE_URL",defaultModel:"gemini-3.5-flash",models:[{alias:"gemini-3.5-flash",modelId:"gemini-3.5-flash",description:"Latest flash the stable gemini CLI serves: coding + agentic planning"},{alias:"gemini-3.5-flash-lite",modelId:"gemini-3.5-flash-lite",description:"Most cost-effective 3.5-class model"},{alias:"gemini-3.1-pro-preview",modelId:"gemini-3.1-pro-preview",description:"Latest pro, complex agentic + coding"}],systemPromptFile:"GEMINI.md",mcpConfig:{settingsDir:"~/.gemini",filename:"settings.json",format:"json"},skillsConfig:{targetDir:"~/.gemini/skills"},customHeadersEnv:"GEMINI_CLI_CUSTOM_HEADERS",customHeadersFormat:"comma",gatewayPath:"/gemini",buildCommand:({prompt:e,model:t,isResume:n})=>`gemini ${n?"--resume latest ":""}--prompt ${vO(e)} --model ${t} --yolo --output-format stream-json`},qwen:{image:"evolve-all",apiKeyEnv:"OPENAI_API_KEY",baseUrlEnv:"OPENAI_BASE_URL",effortSupport:"binary",defaultModel:"qwen3.7-max",defaultReasoningEffort:"thinking",models:[{alias:"qwen3.7-max",modelId:"qwen3.7-max",description:"Strongest reasoning and coding option"},{alias:"qwen3.7-plus",modelId:"qwen3.7-plus",description:"Latest balanced Qwen Cloud recommendation"},{alias:"qwen3.6-flash",modelId:"qwen3.6-flash",description:"Fast and cost-effective option"}],systemPromptFile:"QWEN.md",mcpConfig:{settingsDir:"~/.qwen",filename:"settings.json",format:"json"},skillsConfig:{targetDir:"~/.qwen/skills"},spendTrackingJsonConfig:{headersPath:"model.generationConfig.customHeaders"},gatewayModelAliases:{"qwen3.7-max":"dashscope/qwen3.7-max","qwen3.7-plus":"dashscope/qwen3.7-plus","qwen3.6-flash":"dashscope/qwen3.6-flash"},defaultBaseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1",buildCommand:({prompt:e,model:t,isResume:n,isDirectMode:r})=>{let a=n?"--continue ":"",i=r||t.startsWith("dashscope/")?t:`dashscope/${t}`;return`qwen "${e}" ${a}--auth-type openai --model ${i} --yolo --output-format stream-json`}},kimi:{image:"evolve-all",apiKeyEnv:"KIMI_API_KEY",effortSupport:"level",baseUrlEnv:"KIMI_BASE_URL",defaultModel:"kimi-k3",defaultReasoningEffort:"max",models:[{alias:"kimi-k3",modelId:"moonshot/kimi-k3",description:"Latest flagship: 1M context, always-on thinking",maxContextSize:1048576},{alias:"kimi-k2.7-code",modelId:"moonshot/kimi-k2.7-code",description:"Latest coding-specialized standard model"},{alias:"kimi-k3-raptor",modelId:"kimi-k3-raptor",description:"Evolve-managed Kimi K3 Raptor route for latency-sensitive agent runs",maxContextSize:1048576},{alias:"kimi-k2p7-code-raptor",modelId:"kimi-k2p7-code-raptor",description:"Evolve-managed Kimi K2.7 Code Raptor route for latency-sensitive agent runs"}],systemPromptFile:"AGENTS.md",mcpConfig:{settingsDir:"~/.kimi-code",filename:"mcp.json",format:"json"},skillsConfig:{targetDir:"~/.kimi-code/skills"},defaultBaseUrl:"https://api.moonshot.ai/v1",spendTrackingTomlProvider:{configPath:"~/.kimi-code/config.toml",providerName:"evolve-gateway",modelName:"evolve-default",maxContextSize:262144},checkpointExcludes:[".kimi-code/config.toml"],gatewayModelAliases:{"kimi-k3":"moonshot/kimi-k3","kimi-k2.7-code":"moonshot/kimi-k2.7-code","kimi-k3-raptor":"kimi-k3-raptor","kimi-k2p7-code-raptor":"kimi-k2p7-code-raptor"},buildCommand:({prompt:e,isResume:t,reasoningEffort:n,homeDir:r=qp})=>{let a=t?"--continue ":"",i=vO(e),s=`--config-file ${r}/.kimi-code/config.toml`,o=`$(if [ -f ${r}/.kimi-code/mcp.json ]; then printf ' --mcp-config-file ${r}/.kimi-code/mcp.json'; fi)`,c=lB(n)?"":" --no-thinking";return`if kimi --help 2>&1 | grep -q -- '--print'; then kimi --print ${a}${s}${o}${c} -p ${i} --output-format stream-json; else kimi ${a}-p ${i} --output-format stream-json; fi`}},opencode:{image:"evolve-all",apiKeyEnv:"OPENROUTER_API_KEY",effortSupport:"level",baseUrlEnv:"OPENAI_BASE_URL",defaultModel:"openrouter/anthropic/claude-opus-5",defaultReasoningEffort:"high",providerEnvMap:{openrouter:{keyEnv:"OPENROUTER_API_KEY"}},gatewayConfigEnv:"OPENCODE_CONFIG_CONTENT",models:[{alias:"openrouter/anthropic/claude-fable-5.1",modelId:"openrouter/anthropic/claude-fable-5.1",description:"Anthropic Fable 5.1 via OpenRouter"},{alias:"openrouter/anthropic/claude-fable-5",modelId:"openrouter/anthropic/claude-fable-5",description:"Anthropic Fable 5 via OpenRouter (legacy)"},{alias:"openrouter/anthropic/claude-opus-5",modelId:"openrouter/anthropic/claude-opus-5",description:"Anthropic Opus 5 via OpenRouter"},{alias:"openrouter/anthropic/claude-sonnet-5",modelId:"openrouter/anthropic/claude-sonnet-5",description:"Anthropic Sonnet 5 via OpenRouter"},{alias:"openrouter/anthropic/claude-haiku-4.5",modelId:"openrouter/anthropic/claude-haiku-4.5",description:"Anthropic Haiku via OpenRouter"},{alias:"openrouter/openai/gpt-6-astra",modelId:"openrouter/openai/gpt-6-astra",description:"OpenAI GPT-6 Astra via OpenRouter"},{alias:"openrouter/openai/gpt-5.6-sol",modelId:"openrouter/openai/gpt-5.6-sol",description:"OpenAI GPT-5.6 Sol via OpenRouter"},{alias:"openrouter/openai/gpt-5.6-terra",modelId:"openrouter/openai/gpt-5.6-terra",description:"OpenAI GPT-5.6 Terra via OpenRouter"},{alias:"openrouter/openai/gpt-5.6-luna",modelId:"openrouter/openai/gpt-5.6-luna",description:"OpenAI GPT-5.6 Luna via OpenRouter"},{alias:"openrouter/google/gemini-3.6-flash",modelId:"openrouter/google/gemini-3.6-flash",description:"Gemini 3.6 Flash via OpenRouter"},{alias:"openrouter/qwen/qwen3.7-max",modelId:"openrouter/qwen/qwen3.7-max",description:"Qwen 3.7 Max via OpenRouter"},{alias:"openrouter/moonshotai/kimi-k3",modelId:"openrouter/moonshotai/kimi-k3",description:"Kimi K3 via OpenRouter"},{alias:"openrouter/z-ai/glm-5.3",modelId:"openrouter/z-ai/glm-5.3",description:"Zhipu GLM-5.3 via OpenRouter"},{alias:"openrouter/z-ai/glm-5.3-flash",modelId:"openrouter/z-ai/glm-5.3-flash",description:"Zhipu GLM-5.3 Flash (OpenRouter id; the Evolve gateway serves it from Fireworks)"},{alias:"openrouter/deepseek/deepseek-v4.1-flash",modelId:"openrouter/deepseek/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via OpenRouter"},{alias:"fireworks/deepseek-v4.1-flash",modelId:"fireworks/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via Fireworks"}],systemPromptFile:"AGENTS.md",mcpConfig:{settingsDir:".",filename:"opencode.json",format:"json"},skillsConfig:{targetDir:"~/.agents/skills"},checkpointDirs:["~/.local/share/opencode","~/.config/opencode","~/.local/state/opencode"],buildCommand:({prompt:e,model:t,isResume:n,isDirectMode:r,isExternalGateway:a,reasoningEffort:i})=>{let s=n?"--continue ":"",o=E5t(i);if(a)return`OPENCODE_PERMISSION='{"*":"allow"}' opencode run ${s}--model litellm/${t} --format json${o} "${e}" < /dev/null`;let c=T5t(t);return r?`OPENCODE_PERMISSION='{"*":"allow"}' opencode run ${s}--model ${c} --format json${o} "${e}" < /dev/null`:`OPENCODE_PERMISSION='{"*":"allow"}' opencode run ${s}--model litellm/${c} --format json${o} "${e}" < /dev/null`}},droid:{image:"evolve-all",apiKeyEnv:"FACTORY_API_KEY",effortSupport:"level",defaultModel:"claude-opus-5",defaultReasoningEffort:"high",models:[{alias:"claude-fable-5.1",modelId:"claude-fable-5-1",description:"Factory-managed Claude Fable 5.1"},{alias:"claude-fable-5",modelId:"claude-fable-5",description:"Factory-managed Claude Fable 5 (legacy)"},{alias:"claude-opus-5",modelId:"claude-opus-5",description:"Factory-managed Claude Opus 5"},{alias:"claude-sonnet-5",modelId:"claude-sonnet-5",description:"Factory-managed Claude Sonnet 5"},{alias:"claude-haiku-4-5",modelId:"claude-haiku-4-5-20251001",description:"Factory-managed Claude Haiku 4.5"},{alias:"gpt-6-astra",modelId:"gpt-6-astra",description:"Factory-managed GPT-6 Astra"},{alias:"gpt-5.6-sol",modelId:"gpt-5.6-sol",description:"Factory-managed GPT-5.6 Sol"},{alias:"gpt-5.6-terra",modelId:"gpt-5.6-terra",description:"Factory-managed GPT-5.6 Terra"},{alias:"gpt-5.6-luna",modelId:"gpt-5.6-luna",description:"Factory-managed GPT-5.6 Luna"},{alias:"gemini-3.6-flash",modelId:"gemini-3.6-flash",description:"Factory-managed Gemini 3.6 Flash"},{alias:"qwen3.7-max",modelId:"qwen3.7-max",description:"Qwen 3.7 Max via the Evolve gateway"},{alias:"kimi-k3",modelId:"kimi-k3",description:"Factory-managed Droid Core Kimi K3"},{alias:"glm-5.3",modelId:"glm-5.3",description:"Zhipu GLM-5.3 via the Evolve gateway"},{alias:"glm-5.3-flash",modelId:"glm-5.3-flash",description:"Zhipu GLM-5.3 Flash via the Evolve gateway"},{alias:"openrouter/deepseek/deepseek-v4.1-flash",modelId:"openrouter/deepseek/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via OpenRouter"},{alias:"fireworks/deepseek-v4.1-flash",modelId:"fireworks/deepseek-v4.1-flash",description:"DeepSeek V4.1 Flash via Fireworks"}],systemPromptFile:"AGENTS.md",mcpConfig:{settingsDir:"~/.factory",filename:"mcp.json",format:"json"},skillsConfig:{targetDir:"~/.factory/skills"},skipApiKeyEnvInGateway:!0,gatewayModelAliases:{"claude-fable-5.1":"claude-fable-5-1","kimi-k3":"moonshot/kimi-k3","glm-5.3":"openrouter/z-ai/glm-5.3","qwen3.7-max":"dashscope/qwen3.7-max"},droidGatewaySettings:{settingsPath:"~/.factory/evolve-settings.json",displayName:"Evolve Gateway",provider:"generic-chat-completion-api",maxOutputTokens:32768},checkpointDirs:["~/.factory"],buildCommand:({prompt:e,model:t,isResume:n,sessionId:r,reasoningEffort:a,isDirectMode:i,isExternalGateway:s,homeDir:o=qp})=>{let c=!i||s,l=c?`--settings ${o}/.factory/evolve-settings.json `:"",u=c?"custom:Evolve-Gateway-0":t,d=a?` --reasoning-effort ${a}`:"",f=n&&r?`--session-id ${vO(r)} `:"";return`printf '%s' ${vO(e)} | droid ${l}exec ${f}--skip-permissions-unsafe --cwd ${o}/workspace --output-format stream-json --model ${vO(u)}${d}`}}};function Tv(e){let t=sf[e];if(!t)throw new Error(`Unknown agent type: ${e}`);return t}function pB(e,t){if(e.models.some(a=>a.alias===t||a.modelId===t))return!0;let n=e.gatewayModelAliases;if(n&&(t in n||Object.values(n).includes(t)))return!0;let r=e.directModelAliases;return!!(r&&(t in r||Object.values(r).includes(t)))}function T5t(e){return e.startsWith("openrouter/")||pB(sf.opencode,e)?e:`openrouter/${e}`}function k5t(e){return e in sf}function Lp(e,t=qp){return e.replace(/^~/,t)}function vO(e){return`'${e.replace(/'/g,"'\\''")}'`}function Yw(e,t=qp){let n=Tv(e);return`${Lp(n.mcpConfig.settingsDir,t)}/${n.mcpConfig.filename}`}function Kw(e,t=qp){let n=Tv(e);return Lp(n.mcpConfig.settingsDir,t)}function kv(e){if(e instanceof Error){let t=e.message.toLowerCase();return t.includes("not found")||t.includes("enoent")||t.includes("no such file")||t.includes("does not exist")}return!1}function PXe(e,t){let n=[t.command,t.url].filter(Boolean);if(n.length===0)throw new Error(`MCP server "${e}" must specify command or url`);if(n.length>1)throw new Error(`MCP server "${e}" cannot specify both command and url`)}function gB(e){for(let[t,n]of Object.entries(e))PXe(t,n)}function TO(e){return e.type?e.type:e.command?"stdio":"sse"}function O5t(e){let t=TO(e);return{...e,type:t}}function A5t(e){let{type:t,url:n,...r}=e;return TO(e)==="http"&&n?{httpUrl:n,...r}:n?{url:n,...r}:r}function P5t(e){return{type:TO(e),...e}}function R5t(e){let{type:t,...n}=e;return n.command?{...n,transport:"stdio"}:n.url&&(t==="http"||t==="sse")?{...n,transport:t}:n}function C5t(e){let t=TO(e),{type:n,httpHeaders:r,envHttpHeaders:a,bearerTokenEnvVar:i,envVars:s,...o}=e;if(t==="stdio"&&e.command)return{type:"stdio",...o};if(e.url){let c={...o,type:t==="sse"?"sse":"http",url:e.url},l=e.headers??r;return l&&Object.keys(l).length>0&&(c.headers=l),c}return{type:t==="stdio"?"stdio":"http",...o}}async function UZ(e,t,n,r,a){gB(n);let i=Kw(t,a),s=Yw(t,a);await e.files.makeDir(i);let o={};try{let l=await e.files.read(s);typeof l=="string"&&(o=JSON.parse(l))}catch(l){if(!kv(l))throw l}let c=Object.fromEntries(Object.entries(n).map(([l,u])=>[l,r(u)]));await e.files.write(s,JSON.stringify({...o,mcpServers:c},null,2))}async function N5t(e,t,n,r){gB(n);let a=Kw("claude",r),i=Yw("claude",r),s=Object.fromEntries(Object.entries(n).map(([c,l])=>[c,P5t(l)]));await e.files.write(`${t}/.mcp.json`,JSON.stringify({mcpServers:s},null,2)),await e.files.makeDir(a);let o={};try{let c=await e.files.read(i);typeof c=="string"&&(o=JSON.parse(c))}catch(c){if(!kv(c))throw c}o.enableAllProjectMcpServers=!0,await e.files.write(i,JSON.stringify(o,null,2))}async function M5t(e,t,n){await UZ(e,"gemini",t,O5t,n)}async function D5t(e,t,n){await UZ(e,"qwen",t,A5t,n)}async function JKe(e,t,n,r,a){let i=Kw(t,a),s=Yw(t,a);await e.files.makeDir(i);let o={};try{let f=await e.files.read(s);typeof f=="string"&&(o=JSON.parse(f))}catch(f){if(!kv(f))throw f}let c=n.split("."),l=o;for(let f=0;f<c.length-1;f++){let p=c[f];(typeof l[p]!="object"||l[p]===null)&&(l[p]={}),l=l[p]}let u=c[c.length-1],d=typeof l[u]=="object"&&l[u]!==null?l[u]:{};l[u]={...d,...r},await e.files.write(s,JSON.stringify(o,null,2))}async function U5t(e,t,n){let r=Kw("qwen",n),a=Yw("qwen",n);await e.files.makeDir(r);let i={};try{let l=await e.files.read(a);typeof l=="string"&&(i=JSON.parse(l))}catch(l){if(!kv(l))throw l}let s=i.model??{},o=s.generationConfig??{},c=o.extra_body??{};i.model={...s,generationConfig:{...o,extra_body:{...c,enable_thinking:t}}},await e.files.write(a,JSON.stringify(i,null,2))}async function B5t(e,t,n){await UZ(e,"kimi",t,R5t,n)}async function F5t(e,t,n){gB(n);let r=`${t}/.factory`,a=`${r}/mcp.json`;await e.files.makeDir(r);let i={};try{let o=await e.files.read(a);typeof o=="string"&&(i=JSON.parse(o))}catch(o){if(!kv(o))throw o}let s=Object.fromEntries(Object.entries(n).map(([o,c])=>[o,C5t(c)]));await e.files.write(a,JSON.stringify({...i,mcpServers:s},null,2))}async function L5t(e,t,n,r){let a=Lp(t.settingsPath,r),i=a.slice(0,a.lastIndexOf("/"));await e.files.makeDir(i);let s={cloudSessionSync:!1,customModels:[{model:t.model,displayName:t.displayName,baseUrl:t.baseUrl,apiKey:`\${${t.apiKeyEnv}}`,provider:t.provider,...t.maxOutputTokens!==void 0&&{maxOutputTokens:t.maxOutputTokens},extraHeaders:n}]};await e.files.write(a,JSON.stringify(s,null,2))}async function V5t(e,t,n){gB(n);let r=`${t}/opencode.json`,a={};try{let s=await e.files.read(r);typeof s=="string"&&(a=JSON.parse(s))}catch(s){if(!kv(s))throw s}let i=Object.fromEntries(Object.entries(n).map(([s,o])=>[s,q5t(o)]));await e.files.write(r,JSON.stringify({...a,mcp:i},null,2))}function q5t(e){let t=TO(e);if(t==="stdio"&&e.command){let n={type:"local",command:e.args?[e.command,...e.args]:[e.command]};return e.env&&Object.keys(e.env).length>0&&(n.environment=e.env),n}if(e.url){let n={type:"remote",url:e.url};return e.headers&&Object.keys(e.headers).length>0&&(n.headers=e.headers),n}return{type:t==="stdio"?"local":"remote",...e}}function OZ(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function RXe(e,t,n){let r=e[t];if(r===void 0)return{};let a=OZ(r);if(!a){let i=Array.isArray(r)?"an array":`a ${typeof r}`;throw new Error(`Refusing to rewrite "${t}" in ${n}: expected a TOML table, found ${i}`)}return a}function AZ(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((i,s)=>AZ(i,t[s]));let n=OZ(e),r=OZ(t);if(!n||!r)return!1;let a=Object.keys(n);return a.length===Object.keys(r).length&&a.every(i=>i in r&&AZ(n[i],r[i]))}async function CXe(e,t){let n="";try{let r=await e.files.read(t);typeof r=="string"&&(n=r)}catch(r){if(!kv(r))throw r;return{}}if(!n.trim())return{};try{return Bm(n)}catch(r){throw new Error(`Failed to parse TOML at ${t}: ${r.message}`)}}async function BZ(e,t,n){await e.files.write(t,Yv(n).trimEnd()+`
679
679
  `)}function $5t(e,t){let n={},r=t.type??(t.command?"stdio":"http");if(r==="http"||r==="sse"||t.url){if(!t.url)throw new Error(`MCP server "${e}" is missing url for ${r} transport`);n.url=t.url,t.bearerTokenEnvVar&&(n.bearer_token_env_var=t.bearerTokenEnvVar);let a=t.httpHeaders??t.headers;a&&Object.keys(a).length>0&&(n.http_headers=a),t.envHttpHeaders&&Object.keys(t.envHttpHeaders).length>0&&(n.env_http_headers=t.envHttpHeaders)}else n.command=t.command,t.args&&t.args.length>0&&(n.args=t.args),t.cwd&&(n.cwd=t.cwd);return t.env&&Object.keys(t.env).length>0&&(n.env=t.env),t.envVars&&t.envVars.length>0&&(n.env_vars=t.envVars),n}async function z5t(e,t,n){for(let[o,c]of Object.entries(t))PXe(o,c);let r=Kw("codex",n),a=Yw("codex",n);await e.files.makeDir(r);let i=await CXe(e,a);i.experimental_use_rmcp_client===void 0&&(i.experimental_use_rmcp_client=!0);let s=RXe(i,"mcp_servers",a);i.mcp_servers=s;for(let[o,c]of Object.entries(t))s[o]===void 0&&(s[o]=$5t(o,c));await BZ(e,a,i)}async function HKe(e,t,n,r={},a){let i=Kw("codex",a),s=Yw("codex",a);await e.files.makeDir(i);let o=await CXe(e,s),c={...n?{[Wu]:n.sessionTagEnv,[$p]:n.runTagEnv}:{},...r},l={name:"Evolve Gateway",base_url:t,env_key:"OPENAI_API_KEY",wire_api:"responses",...Object.keys(c).length>0?{env_http_headers:c}:{}},u=RXe(o,"model_providers",s);o.model_provider==="evolve-gateway"&&AZ(u["evolve-gateway"],l)||(o.model_provider="evolve-gateway",u["evolve-gateway"]=l,o.model_providers=u,await BZ(e,s,o))}async function G5t(e,t,n,r,a){let i=Lp(t.configPath,a),s=i.slice(0,i.lastIndexOf("/"));await e.files.makeDir(s);let o={default_model:t.modelName,default_thinking:r.defaultThinking,default_permission_mode:"auto",thinking:{mode:r.defaultThinking?"on":"off",...r.defaultThinking&&r.thinkingEffort?{effort:r.thinkingEffort}:{}},providers:{[t.providerName]:{type:"kimi",base_url:r.baseUrl,api_key:r.apiKey,custom_headers:n}},models:{[t.modelName]:{provider:t.providerName,model:r.model,max_context_size:t.maxContextSize,capabilities:["image_in","thinking"]}}};await BZ(e,i,o)}async function J5t(e,t,n,r,a){if(!(!r||Object.keys(r).length===0))switch(e){case"claude":await N5t(t,n,r,a);break;case"codex":await z5t(t,r,a);break;case"gemini":await M5t(t,r,a);break;case"qwen":await D5t(t,r,a);break;case"kimi":await B5t(t,r,a);break;case"opencode":await V5t(t,n,r);break;case"droid":await F5t(t,n,r);break;default:throw new Error(`Unknown agent type for MCP config: ${e}`)}}function Gu(e,t){for(let n of e)if(typeof n=="string"&&n.length>0)return n;try{let n=JSON.stringify(t);if(typeof n=="string"&&n.length>0)return n}catch{}return String(t)}function iB(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function PZ(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,n=iB(t.input_tokens),r=iB(t.output_tokens),a=iB(t.cache_read_input_tokens),i=iB(t.cache_creation_input_tokens),s={};(n!==void 0||a!==void 0||i!==void 0)&&(s.promptTokens=(n??0)+(a??0)+(i??0)),r!==void 0&&(s.completionTokens=r),a!==void 0&&(s.cachedTokens=a);let o={};for(let[c,l]of Object.entries(t))c==="input_tokens"||c==="output_tokens"||l!=null&&(o[c]=l);return Object.keys(o).length>0&&(s.extra=o),s}function yB(e){if(typeof e=="string"&&e.length>0&&!Number.isNaN(Date.parse(e)))return e;if(typeof e=="number"&&Number.isFinite(e))return new Date(e).toISOString()}function H5t(){let e={};return function(c){let l;try{l=JSON.parse(c)}catch{return null}if(l._meta||l._prompt)return null;let u=l.session_id;switch(l.type){case"system":return null;case"assistant":{let d=n(l.message?.content,"assistant")??[],f=PZ(l.message?.usage);return f&&d.push({sessionUpdate:"usage",scope:"call",usage:f}),t(d,l,u)}case"user":{let d=l.message?.content;if(typeof d=="string"||Array.isArray(d)&&d.length===1&&d[0].type==="text")return null;let f=l.tool_use_result??l.toolUseResult;return t(n(d,"user",f),l,u)}case"result":{let d=[],f=typeof l.total_cost_usd=="number"&&Number.isFinite(l.total_cost_usd)?l.total_cost_usd:void 0,p=PZ(l.usage)??(f!==void 0?{}:null);if(p&&(f!==void 0&&(p.costUsd=f),d.push({sessionUpdate:"usage",scope:"run",usage:p})),l.is_error===!0){let m=(Array.isArray(l.errors)?l.errors:[]).filter(y=>typeof y=="string"&&y.length>0).join(`
680
680
  `);d.push({sessionUpdate:"error",message:Gu([m,l.result,l.subtype],l),fatal:!0})}return t(d,l,u)}default:return null}};function t(c,l,u){if(!c||c.length===0)return null;let d=l.message,f=yB(l.timestamp),p=typeof d?.model=="string"&&d.model?d.model:void 0,m=typeof d?.id=="string"&&d.id?d.id:void 0,y=typeof l.parent_tool_use_id=="string"&&l.parent_tool_use_id?l.parent_tool_use_id:void 0,b={};for(let v of["stop_reason","stop_sequence","requestId"]){let S=d?.[v];S!=null&&(b[v]=S)}return c.map(v=>({sessionId:u,update:v,...f!==void 0?{timestamp:f}:{},...p!==void 0?{model:p}:{},...m!==void 0?{messageId:m}:{},...y!==void 0?{parentToolCallId:y}:{},...Object.keys(b).length>0?{extra:b}:{}}))}function n(c,l,u){if(typeof c=="string")return l==="user"?null:[{sessionUpdate:"agent_message_chunk",content:{type:"text",text:c}}];if(!c||!Array.isArray(c))return null;let d=[];for(let f of c){let p=null;switch(f.type){case"text":case"text_delta":if(l==="user")break;p={sessionUpdate:"agent_message_chunk",content:{type:"text",text:f.text}};break;case"image":if(l==="user")break;p={sessionUpdate:"agent_message_chunk",content:{type:"image",data:f.source?.type==="base64"?f.source.data:"",mimeType:f.source?.type==="base64"?f.source.media_type:"",uri:f.source?.type==="url"?f.source.url:void 0}};break;case"thinking":case"thinking_delta":p={sessionUpdate:"agent_thought_chunk",content:{type:"text",text:f.thinking}};break;case"tool_use":case"server_tool_use":case"mcp_tool_use":{if(e[f.id]=f,f.name==="TodoWrite")Array.isArray(f.input?.todos)&&(p={sessionUpdate:"plan",entries:o(f.input)});else{let m=r(f);p={sessionUpdate:"tool_call",toolCallId:f.id,status:"pending",...m,toolName:f.name}}break}case"tool_result":case"tool_search_tool_result":case"web_fetch_tool_result":case"web_search_tool_result":case"code_execution_tool_result":case"bash_code_execution_tool_result":case"text_editor_code_execution_tool_result":case"mcp_tool_result":{let m=e[f.tool_use_id];if(!m||(delete e[f.tool_use_id],m.name==="TodoWrite"))break;p={sessionUpdate:"tool_call_update",toolCallId:f.tool_use_id,status:"is_error"in f&&f.is_error?"failed":"completed",...a(f,m),...u!=null?{rawOutput:u}:{}};break}}p&&d.push(p)}return d.length>0?d:null}function r(c){let l=c.name,u=c.input||{};switch(l){case"Task":return{title:u.description||"Task",kind:"think",content:u.prompt?[{type:"content",content:{type:"text",text:u.prompt}}]:[],rawInput:u};case"NotebookRead":return{title:u.notebook_path?`Read Notebook ${u.notebook_path}`:"Read Notebook",kind:"read",content:[],locations:u.notebook_path?[{path:u.notebook_path}]:[],rawInput:u};case"NotebookEdit":return{title:u.notebook_path?`Edit Notebook ${u.notebook_path}`:"Edit Notebook",kind:"edit",content:u.new_source?[{type:"content",content:{type:"text",text:u.new_source}}]:[],locations:u.notebook_path?[{path:u.notebook_path}]:[],rawInput:u};case"Bash":return{title:u.command?"`"+u.command.replaceAll("`","\\`")+"`":"Terminal",kind:"execute",content:u.description?[{type:"content",content:{type:"text",text:u.description}}]:[],rawInput:u};case"BashOutput":return{title:"Tail Logs",kind:"execute",content:[],rawInput:u};case"KillShell":return{title:"Kill Process",kind:"execute",content:[],rawInput:u};case"Read":{let d="";return u.limit?d=" ("+((u.offset??0)+1)+" - "+((u.offset??0)+u.limit)+")":u.offset&&(d=" (from line "+(u.offset+1)+")"),{title:"Read "+(u.file_path??"File")+d,kind:"read",content:[],locations:u.file_path?[{path:u.file_path,line:u.offset??0}]:[],rawInput:u}}case"LS":return{title:u.path?`List \`${u.path}\` directory`:"List current directory",kind:"search",content:[],locations:[],rawInput:u};case"Edit":{let d=u.file_path;return{title:d?`Edit \`${d}\``:"Edit",kind:"edit",content:d?[{type:"diff",path:d,oldText:u.old_string??null,newText:u.new_string??""}]:[],locations:d?[{path:d}]:[],rawInput:u}}case"Write":return{title:u.file_path?`Write ${u.file_path}`:"Write",kind:"edit",content:u.file_path?[{type:"diff",path:u.file_path,oldText:null,newText:u.content??""}]:[],locations:u.file_path?[{path:u.file_path}]:[],rawInput:u};case"Glob":{let d="Find";return u.path&&(d+=` \`${u.path}\``),u.pattern&&(d+=` \`${u.pattern}\``),{title:d,kind:"search",content:[],locations:u.path?[{path:u.path}]:[],rawInput:u}}case"Grep":{let d="grep";return u["-i"]&&(d+=" -i"),u["-n"]&&(d+=" -n"),u["-A"]!==void 0&&(d+=` -A ${u["-A"]}`),u["-B"]!==void 0&&(d+=` -B ${u["-B"]}`),u["-C"]!==void 0&&(d+=` -C ${u["-C"]}`),u.output_mode==="files_with_matches"?d+=" -l":u.output_mode==="count"&&(d+=" -c"),u.head_limit!==void 0&&(d+=` | head -${u.head_limit}`),u.glob&&(d+=` --include="${u.glob}"`),u.type&&(d+=` --type=${u.type}`),u.multiline&&(d+=" -P"),d+=` "${u.pattern??""}"`,u.path&&(d+=` ${u.path}`),{title:d,kind:"search",content:[],rawInput:u}}case"WebFetch":return{title:u.url?`Fetch ${u.url}`:"Fetch",kind:"fetch",content:u.prompt?[{type:"content",content:{type:"text",text:u.prompt}}]:[],rawInput:u};case"WebSearch":{let d=`"${u.query??""}"`;return u.allowed_domains?.length>0&&(d+=` (allowed: ${u.allowed_domains.join(", ")})`),u.blocked_domains?.length>0&&(d+=` (blocked: ${u.blocked_domains.join(", ")})`),{title:d,kind:"fetch",content:[],rawInput:u}}case"TodoWrite":return{title:Array.isArray(u.todos)?`Update TODOs: ${u.todos.map(d=>d.content).join(", ")}`:"Update TODOs",kind:"think",content:[],rawInput:u};case"ExitPlanMode":return{title:"Ready to code?",kind:"switch_mode",content:u.plan?[{type:"content",content:{type:"text",text:u.plan}}]:[],rawInput:u};default:if(l?.startsWith("mcp__")){let d=l.split("__"),f=d[1]||"mcp",p=d.slice(2).join("__")||l;return{title:`${f}: ${p}`,kind:"other",content:[],rawInput:u}}return{title:l||"Unknown Tool",kind:"other",content:[],rawInput:u}}}function a(c,l){return l?.name==="ExitPlanMode"?{title:"Exited Plan Mode"}:i(c.content)}function i(c){return Array.isArray(c)&&c.length>0?{content:c.map(l=>({type:"content",content:s(l)}))}:typeof c=="string"&&c.length>0?{content:[{type:"content",content:{type:"text",text:c}}]}:{}}function s(c){if(c.type==="text")return{type:"text",text:c.text};if(c.type==="image"){if(c.data&&c.mimeType)return{type:"image",data:c.data,mimeType:c.mimeType};if(c.source?.type==="base64")return{type:"image",data:c.source.data||"",mimeType:c.source.media_type||""};if(c.source?.type==="url")return{type:"image",data:"",mimeType:"",uri:c.source.url}}return c}function o(c){return c.todos.map(l=>({content:l.content,status:l.status||"pending",priority:"medium"}))}}function W5t(){let e;return function(c){let l;try{l=JSON.parse(c)}catch{return null}if(l._meta||l._prompt)return null;let u=[];switch(l.type){case"thread.started":return typeof l.thread_id=="string"&&l.thread_id&&(e=l.thread_id),null;case"turn.started":return null;case"turn.completed":{let d=t(l.usage);if(!d)return null;u.push({update:{sessionUpdate:"usage",scope:"run",usage:d}});break}case"error":{let d=Gu([l.message],l);u.push({update:{sessionUpdate:"error",message:d,fatal:!1}});break}case"turn.failed":{let d=Gu([l.error?.message],l.error??l);u.push({update:{sessionUpdate:"error",message:d,fatal:!0}});break}case"item.started":{let d=l.item;if(!d)return null;let f=n(d);f&&u.push({update:f});break}case"item.updated":{let d=l.item;if(!d)return null;let f=r(d);f&&u.push({update:f});break}case"item.completed":{let d=l.item;if(!d)return null;let f=a(d);f&&u.push({update:f});break}default:return null}return u.length===0?null:e===void 0?u:u.map(d=>({sessionId:e,...d}))};function t(c){if(!c||typeof c!="object"||Array.isArray(c))return null;let l=c,u=b=>typeof b=="number"&&Number.isFinite(b)?b:void 0,d={},f=u(l.input_tokens),p=u(l.output_tokens),m=u(l.cached_input_tokens);f!==void 0&&(d.promptTokens=f),p!==void 0&&(d.completionTokens=p),m!==void 0&&(d.cachedTokens=m);let y={};for(let[b,v]of Object.entries(l))b==="input_tokens"||b==="output_tokens"||b==="cached_input_tokens"||v!=null&&(y[b]=v);return Object.keys(y).length>0&&(d.extra=y),d}function n(c){let l=c.id;switch(c.type){case"mcp_tool_call":return`${c.server}${c.tool}`,{sessionUpdate:"tool_call",toolCallId:l,title:`${c.server}: ${c.tool}`,toolName:`mcp__${c.server}__${c.tool}`,kind:"other",status:"in_progress",rawInput:c.arguments,content:[]};case"command_execution":return c.command,{sessionUpdate:"tool_call",toolCallId:l,title:c.command?`\`${c.command}\``:"Execute Command",toolName:"command_execution",kind:"execute",status:"in_progress",rawInput:{command:c.command},content:[]};case"web_search":return c.query,{sessionUpdate:"tool_call",toolCallId:l,title:`Search: ${c.query??""}`,toolName:"web_search",kind:"fetch",status:"in_progress",content:[]};case"todo_list":return{sessionUpdate:"plan",entries:o(c.items)};default:return null}}function r(c){return c.type==="todo_list"?{sessionUpdate:"plan",entries:o(c.items)}:null}function a(c){let l=c.id;switch(c.type){case"error":return{sessionUpdate:"error",message:Gu([c.message],c),fatal:!1};case"reasoning":return{sessionUpdate:"agent_thought_chunk",content:{type:"text",text:c.text??c.summary?.join(`
681
681
  `)??c.content?.join(`
@@ -500,7 +500,7 @@ async def list_checkpoints(
500
500
  await store.close()
501
501
 
502
502
 
503
- __version__ = '0.0.55.dev1267'
503
+ __version__ = '0.0.55.dev1272'
504
504
 
505
505
  __all__ = [
506
506
  # Main classes
@@ -204,7 +204,7 @@ class AgentConfig:
204
204
  provider_api_key: Provider API key for direct mode / BYOK (defaults to provider env var)
205
205
  oauth_token: OAuth token for Claude Max subscription (defaults to CLAUDE_CODE_OAUTH_TOKEN env var)
206
206
  provider_base_url: Provider base URL for direct mode (auto-detected for Qwen)
207
- model: Model name (optional - uses agent's default if not specified). Use 'fable' for Claude Fable 5 or 'sonnet[1m]' / 'opus[1m]' for 1M context window (Claude only).
207
+ model: Model name (optional - uses agent's default if not specified). Use 'fable' for Claude Fable 5.1 or 'sonnet[1m]' / 'opus[1m]' for 1M context window (Claude only).
208
208
  reasoning_effort: Reasoning effort for models that support it (optional)
209
209
  max_context_size: Context/completion ceiling for CLIs that must be told one
210
210
  (Kimi Code reads it as max_context_size and sends it as the request's
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolve-sdk
3
- Version: 0.0.55.dev1267
3
+ Version: 0.0.55.dev1272
4
4
  Summary: Pythonic SDK for multi-agent orchestration in E2B sandboxes
5
5
  Author-email: "Swarmlink, Inc." <brandomagnani@evolvingmachines.ai>
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "evolve-sdk"
7
- version = "0.0.55.dev1267"
7
+ version = "0.0.55.dev1272"
8
8
  description = "Pythonic SDK for multi-agent orchestration in E2B sandboxes"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"