evolve-sdk 0.0.52.dev871__tar.gz → 0.0.52.dev877__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 (43) hide show
  1. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/PKG-INFO +1 -1
  2. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/bridge/dist/bridge.bundle.cjs +1 -1
  3. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/__init__.py +1 -1
  4. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve_sdk.egg-info/PKG-INFO +1 -1
  5. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/pyproject.toml +1 -1
  6. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/LICENSE +0 -0
  7. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/MANIFEST.in +0 -0
  8. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/README.md +0 -0
  9. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/bridge/__init__.py +0 -0
  10. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/_http.py +0 -0
  11. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/agent.py +0 -0
  12. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/bridge.py +0 -0
  13. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/browser_credentials.py +0 -0
  14. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/browser_profiles.py +0 -0
  15. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/config.py +0 -0
  16. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/hosted.py +0 -0
  17. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/integrations.py +0 -0
  18. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/managed_secrets.py +0 -0
  19. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/pipeline/__init__.py +0 -0
  20. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/pipeline/pipeline.py +0 -0
  21. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/pipeline/types.py +0 -0
  22. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/prompts/__init__.py +0 -0
  23. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/prompts/agent_md/judge.md +0 -0
  24. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/prompts/agent_md/reduce.md +0 -0
  25. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/prompts/agent_md/verify.md +0 -0
  26. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/prompts/user/judge.md +0 -0
  27. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/prompts/user/retry_feedback.md +0 -0
  28. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/prompts/user/verify.md +0 -0
  29. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/results.py +0 -0
  30. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/retry.py +0 -0
  31. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/schema.py +0 -0
  32. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/sessions_client.py +0 -0
  33. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/storage_client.py +0 -0
  34. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/swarm/__init__.py +0 -0
  35. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/swarm/results.py +0 -0
  36. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/swarm/swarm.py +0 -0
  37. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/swarm/types.py +0 -0
  38. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve/utils.py +0 -0
  39. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve_sdk.egg-info/SOURCES.txt +0 -0
  40. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve_sdk.egg-info/dependency_links.txt +0 -0
  41. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve_sdk.egg-info/requires.txt +0 -0
  42. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/evolve_sdk.egg-info/top_level.txt +0 -0
  43. {evolve_sdk-0.0.52.dev871 → evolve_sdk-0.0.52.dev877}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolve-sdk
3
- Version: 0.0.52.dev871
3
+ Version: 0.0.52.dev877
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
@@ -671,7 +671,7 @@ if __name__ == "__main__":
671
671
  ]))`;continue}else if(r[c]==="$"){a+=`($|(?=[\r
672
672
  ]))`;continue}}if(n.s&&r[c]==="."){a+=s?`${r[c]}\r
673
673
  `:`[${r[c]}\r
674
- ]`;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 IA(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===Be.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]})??zr(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===Be.ZodString&&e.keyType._def.checks?.length){let{type:r,...a}=wA(e.keyType._def,t);return{...n,propertyNames:a}}else{if(e.keyType?._def.typeName===Be.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===Be.ZodBranded&&e.keyType._def.type._def.typeName===Be.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...a}=_A(e.keyType._def,t);return{...n,propertyNames:a}}}return n}function une(e,t){if(t.mapStrategy==="record")return IA(e,t);let n=gt(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||zr(t),r=gt(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||zr(t);return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}function dne(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 fne(e){return e.target==="openAi"?void 0:{not:zr({...e,currentPath:[...e.currentPath,"not"]})}}function pne(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var SI={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function mne(e,t){if(t.target==="openApi3")return hne(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in SI&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((a,i)=>{let s=SI[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 hne(e,t)}var hne=(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 gne(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:SI[e.innerType._def.typeName],nullable:!0}:{type:[SI[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 yne(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 vne(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=yit(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=git(e,t);return s!==void 0&&(r.additionalProperties=s),r}function git(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 yit(e){try{return e.isOptional()}catch{return!0}}var bne=(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:zr(t)},n]}:zr(t)};var Sne=(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 _ne(e,t){return gt(e.type._def,t)}function wne(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 Ine(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 xne(e){return{not:zr(e)}}function Ene(e){return zr(e)}var Tne=(e,t)=>gt(e.innerType._def,t);var kne=(e,t,n)=>{switch(t){case Be.ZodString:return wA(e,n);case Be.ZodNumber:return yne(e,n);case Be.ZodObject:return vne(e,n);case Be.ZodBigInt:return tne(e,n);case Be.ZodBoolean:return nne();case Be.ZodDate:return fL(e,n);case Be.ZodUndefined:return xne(n);case Be.ZodNull:return pne(n);case Be.ZodArray:return ene(e,n);case Be.ZodUnion:case Be.ZodDiscriminatedUnion:return mne(e,n);case Be.ZodIntersection:return one(e,n);case Be.ZodTuple:return Ine(e,n);case Be.ZodRecord:return IA(e,n);case Be.ZodLiteral:return cne(e,n);case Be.ZodEnum:return sne(e);case Be.ZodNativeEnum:return dne(e);case Be.ZodNullable:return gne(e,n);case Be.ZodOptional:return bne(e,n);case Be.ZodMap:return une(e,n);case Be.ZodSet:return wne(e,n);case Be.ZodLazy:return()=>e.getter()._def;case Be.ZodPromise:return _ne(e,n);case Be.ZodNaN:case Be.ZodNever:return fne(n);case Be.ZodEffects:return ane(e,n);case Be.ZodAny:return zr(n);case Be.ZodUnknown:return Ene(n);case Be.ZodDefault:return ine(e,n);case Be.ZodBranded:return _A(e,n);case Be.ZodReadonly:return Tne(e,n);case Be.ZodCatch:return rne(e,n);case Be.ZodPipeline:return Sne(e,n);case Be.ZodFunction:case Be.ZodVoid:case Be.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!==Vte)return o}if(r&&!n){let o=vit(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=kne(e,e.typeName,t),s=typeof i=="function"?gt(i(),t):i;if(s&&bit(e,t,s),t.postProcess){let o=t.postProcess(s,e,t);return a.jsonSchema=s,o}return a.jsonSchema=s,s}var vit=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:mA(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`),zr(t)):t.$refStrategy==="seen"?zr(t):void 0}},bit=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n);var One=(e,t)=>{let n=$te(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)??zr(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)??zr(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 Ane=One;var Xd=Ve(require("fs"),1),aZ=require("fs");qx();_T();qU();var dje=require("stream"),fje=require("stream/promises");var IKe=["no-internet","pinned-context"],wWt={strict:{coerceTypes:!1,removeAdditional:!1,useDefaults:!1,allErrors:!0},loose:{coerceTypes:"array",removeAdditional:!1,useDefaults:!0,allErrors:!0}};var xKe=2e5;function IWt(e,t){return t??Cp[e]?.defaultReasoningEffort}function KU(e){return e!=="off"&&e!=="none"&&e!=="minimal"&&e!=="no-thinking"}function pje(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 xWt(e){let t=pje(e);return t?` --variant ${t} --thinking`:""}var Cp={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"}],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:xKe}}},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=${xKe}`}},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.6-flash",models:[{alias:"gemini-3.6-flash",modelId:"gemini-3.6-flash",description:"Newest stable workhorse: 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 ${iO(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=Np})=>{let a=t?"--continue ":"",i=iO(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=KU(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.2",modelId:"openrouter/z-ai/glm-5.2",description:"Zhipu GLM-5.2 via OpenRouter"}],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=xWt(i);if(a)return`OPENCODE_PERMISSION='{"*":"allow"}' opencode run ${s}--model litellm/${t} --format json${o} "${e}" < /dev/null`;let c=t.startsWith("openrouter/")?t:`openrouter/${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.2",modelId:"glm-5.2",description:"Factory-managed Droid Core GLM-5.2"}],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.2":"openrouter/z-ai/glm-5.2","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=Np})=>{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 ${iO(r)} `:"";return`printf '%s' ${iO(e)} | droid ${l}exec ${f}--skip-permissions-unsafe --cwd ${o}/workspace --output-format stream-json --model ${iO(u)}${d}`}}};function gv(e){let t=Cp[e];if(!t)throw new Error(`Unknown agent type: ${e}`);return t}function EWt(e){return e in Cp}function Pp(e,t=Np){return e.replace(/^~/,t)}function iO(e){return`'${e.replace(/'/g,"'\\''")}'`}function Dw(e,t=Np){let n=gv(e);return`${Pp(n.mcpConfig.settingsDir,t)}/${n.mcpConfig.filename}`}function Uw(e,t=Np){let n=gv(e);return Pp(n.mcpConfig.settingsDir,t)}function yv(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 hje(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 tB(e){for(let[t,n]of Object.entries(e))hje(t,n)}function pO(e){return e.type?e.type:e.command?"stdio":"sse"}function TWt(e){let t=pO(e);return{...e,type:t}}function kWt(e){let{type:t,url:n,...r}=e;return pO(e)==="http"&&n?{httpUrl:n,...r}:n?{url:n,...r}:r}function OWt(e){return{type:pO(e),...e}}function AWt(e){let{type:t,...n}=e;return n.command?{...n,transport:"stdio"}:n.url&&(t==="http"||t==="sse")?{...n,transport:t}:n}function PWt(e){let t=pO(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 sZ(e,t,n,r,a){tB(n);let i=Uw(t,a),s=Dw(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(!yv(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 RWt(e,t,n,r){tB(n);let a=Uw("claude",r),i=Dw("claude",r),s=Object.fromEntries(Object.entries(n).map(([c,l])=>[c,OWt(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(!yv(c))throw c}o.enableAllProjectMcpServers=!0,await e.files.write(i,JSON.stringify(o,null,2))}async function CWt(e,t,n){await sZ(e,"gemini",t,TWt,n)}async function NWt(e,t,n){await sZ(e,"qwen",t,kWt,n)}async function EKe(e,t,n,r,a){let i=Uw(t,a),s=Dw(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(!yv(f))throw f}let c=n.split("."),l=o;for(let f=0;f<c.length-1;f++){let h=c[f];(typeof l[h]!="object"||l[h]===null)&&(l[h]={}),l=l[h]}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 MWt(e,t,n){let r=Uw("qwen",n),a=Dw("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(!yv(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 DWt(e,t,n){await sZ(e,"kimi",t,AWt,n)}async function UWt(e,t,n){tB(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(!yv(o))throw o}let s=Object.fromEntries(Object.entries(n).map(([o,c])=>[o,PWt(c)]));await e.files.write(a,JSON.stringify({...i,mcpServers:s},null,2))}async function BWt(e,t,n,r){let a=Pp(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 FWt(e,t,n){tB(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(!yv(s))throw s}let i=Object.fromEntries(Object.entries(n).map(([s,o])=>[s,LWt(o)]));await e.files.write(r,JSON.stringify({...a,mcp:i},null,2))}function LWt(e){let t=pO(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 QX(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function mje(e,t,n){let r=e[t];if(r===void 0)return{};let a=QX(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 eZ(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)=>eZ(i,t[s]));let n=QX(e),r=QX(t);if(!n||!r)return!1;let a=Object.keys(n);return a.length===Object.keys(r).length&&a.every(i=>i in r&&eZ(n[i],r[i]))}async function gje(e,t){let n="";try{let r=await e.files.read(t);typeof r=="string"&&(n=r)}catch(r){if(!yv(r))throw r;return{}}if(!n.trim())return{};try{return km(n)}catch(r){throw new Error(`Failed to parse TOML at ${t}: ${r.message}`)}}async function oZ(e,t,n){await e.files.write(t,Fv(n).trimEnd()+`
674
+ ]`;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 IA(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===Be.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]})??zr(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===Be.ZodString&&e.keyType._def.checks?.length){let{type:r,...a}=wA(e.keyType._def,t);return{...n,propertyNames:a}}else{if(e.keyType?._def.typeName===Be.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===Be.ZodBranded&&e.keyType._def.type._def.typeName===Be.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...a}=_A(e.keyType._def,t);return{...n,propertyNames:a}}}return n}function une(e,t){if(t.mapStrategy==="record")return IA(e,t);let n=gt(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||zr(t),r=gt(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||zr(t);return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}function dne(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 fne(e){return e.target==="openAi"?void 0:{not:zr({...e,currentPath:[...e.currentPath,"not"]})}}function pne(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var SI={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function mne(e,t){if(t.target==="openApi3")return hne(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in SI&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((a,i)=>{let s=SI[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 hne(e,t)}var hne=(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 gne(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:SI[e.innerType._def.typeName],nullable:!0}:{type:[SI[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 yne(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 vne(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=yit(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=git(e,t);return s!==void 0&&(r.additionalProperties=s),r}function git(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 yit(e){try{return e.isOptional()}catch{return!0}}var bne=(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:zr(t)},n]}:zr(t)};var Sne=(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 _ne(e,t){return gt(e.type._def,t)}function wne(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 Ine(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 xne(e){return{not:zr(e)}}function Ene(e){return zr(e)}var Tne=(e,t)=>gt(e.innerType._def,t);var kne=(e,t,n)=>{switch(t){case Be.ZodString:return wA(e,n);case Be.ZodNumber:return yne(e,n);case Be.ZodObject:return vne(e,n);case Be.ZodBigInt:return tne(e,n);case Be.ZodBoolean:return nne();case Be.ZodDate:return fL(e,n);case Be.ZodUndefined:return xne(n);case Be.ZodNull:return pne(n);case Be.ZodArray:return ene(e,n);case Be.ZodUnion:case Be.ZodDiscriminatedUnion:return mne(e,n);case Be.ZodIntersection:return one(e,n);case Be.ZodTuple:return Ine(e,n);case Be.ZodRecord:return IA(e,n);case Be.ZodLiteral:return cne(e,n);case Be.ZodEnum:return sne(e);case Be.ZodNativeEnum:return dne(e);case Be.ZodNullable:return gne(e,n);case Be.ZodOptional:return bne(e,n);case Be.ZodMap:return une(e,n);case Be.ZodSet:return wne(e,n);case Be.ZodLazy:return()=>e.getter()._def;case Be.ZodPromise:return _ne(e,n);case Be.ZodNaN:case Be.ZodNever:return fne(n);case Be.ZodEffects:return ane(e,n);case Be.ZodAny:return zr(n);case Be.ZodUnknown:return Ene(n);case Be.ZodDefault:return ine(e,n);case Be.ZodBranded:return _A(e,n);case Be.ZodReadonly:return Tne(e,n);case Be.ZodCatch:return rne(e,n);case Be.ZodPipeline:return Sne(e,n);case Be.ZodFunction:case Be.ZodVoid:case Be.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!==Vte)return o}if(r&&!n){let o=vit(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=kne(e,e.typeName,t),s=typeof i=="function"?gt(i(),t):i;if(s&&bit(e,t,s),t.postProcess){let o=t.postProcess(s,e,t);return a.jsonSchema=s,o}return a.jsonSchema=s,s}var vit=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:mA(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`),zr(t)):t.$refStrategy==="seen"?zr(t):void 0}},bit=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n);var One=(e,t)=>{let n=$te(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)??zr(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)??zr(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 Ane=One;var Xd=Ve(require("fs"),1),aZ=require("fs");qx();_T();qU();var dje=require("stream"),fje=require("stream/promises");var IKe=["no-internet","pinned-context"],wWt={strict:{coerceTypes:!1,removeAdditional:!1,useDefaults:!1,allErrors:!0},loose:{coerceTypes:"array",removeAdditional:!1,useDefaults:!0,allErrors:!0}};var xKe=2e5;function IWt(e,t){return t??Cp[e]?.defaultReasoningEffort}function KU(e){return e!=="off"&&e!=="none"&&e!=="minimal"&&e!=="no-thinking"}function pje(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 xWt(e){let t=pje(e);return t?` --variant ${t} --thinking`:""}var Cp={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"}],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:xKe}}},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=${xKe}`}},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 ${iO(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=Np})=>{let a=t?"--continue ":"",i=iO(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=KU(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.2",modelId:"openrouter/z-ai/glm-5.2",description:"Zhipu GLM-5.2 via OpenRouter"}],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=xWt(i);if(a)return`OPENCODE_PERMISSION='{"*":"allow"}' opencode run ${s}--model litellm/${t} --format json${o} "${e}" < /dev/null`;let c=t.startsWith("openrouter/")?t:`openrouter/${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.2",modelId:"glm-5.2",description:"Factory-managed Droid Core GLM-5.2"}],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.2":"openrouter/z-ai/glm-5.2","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=Np})=>{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 ${iO(r)} `:"";return`printf '%s' ${iO(e)} | droid ${l}exec ${f}--skip-permissions-unsafe --cwd ${o}/workspace --output-format stream-json --model ${iO(u)}${d}`}}};function gv(e){let t=Cp[e];if(!t)throw new Error(`Unknown agent type: ${e}`);return t}function EWt(e){return e in Cp}function Pp(e,t=Np){return e.replace(/^~/,t)}function iO(e){return`'${e.replace(/'/g,"'\\''")}'`}function Dw(e,t=Np){let n=gv(e);return`${Pp(n.mcpConfig.settingsDir,t)}/${n.mcpConfig.filename}`}function Uw(e,t=Np){let n=gv(e);return Pp(n.mcpConfig.settingsDir,t)}function yv(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 hje(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 tB(e){for(let[t,n]of Object.entries(e))hje(t,n)}function pO(e){return e.type?e.type:e.command?"stdio":"sse"}function TWt(e){let t=pO(e);return{...e,type:t}}function kWt(e){let{type:t,url:n,...r}=e;return pO(e)==="http"&&n?{httpUrl:n,...r}:n?{url:n,...r}:r}function OWt(e){return{type:pO(e),...e}}function AWt(e){let{type:t,...n}=e;return n.command?{...n,transport:"stdio"}:n.url&&(t==="http"||t==="sse")?{...n,transport:t}:n}function PWt(e){let t=pO(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 sZ(e,t,n,r,a){tB(n);let i=Uw(t,a),s=Dw(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(!yv(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 RWt(e,t,n,r){tB(n);let a=Uw("claude",r),i=Dw("claude",r),s=Object.fromEntries(Object.entries(n).map(([c,l])=>[c,OWt(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(!yv(c))throw c}o.enableAllProjectMcpServers=!0,await e.files.write(i,JSON.stringify(o,null,2))}async function CWt(e,t,n){await sZ(e,"gemini",t,TWt,n)}async function NWt(e,t,n){await sZ(e,"qwen",t,kWt,n)}async function EKe(e,t,n,r,a){let i=Uw(t,a),s=Dw(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(!yv(f))throw f}let c=n.split("."),l=o;for(let f=0;f<c.length-1;f++){let h=c[f];(typeof l[h]!="object"||l[h]===null)&&(l[h]={}),l=l[h]}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 MWt(e,t,n){let r=Uw("qwen",n),a=Dw("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(!yv(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 DWt(e,t,n){await sZ(e,"kimi",t,AWt,n)}async function UWt(e,t,n){tB(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(!yv(o))throw o}let s=Object.fromEntries(Object.entries(n).map(([o,c])=>[o,PWt(c)]));await e.files.write(a,JSON.stringify({...i,mcpServers:s},null,2))}async function BWt(e,t,n,r){let a=Pp(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 FWt(e,t,n){tB(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(!yv(s))throw s}let i=Object.fromEntries(Object.entries(n).map(([s,o])=>[s,LWt(o)]));await e.files.write(r,JSON.stringify({...a,mcp:i},null,2))}function LWt(e){let t=pO(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 QX(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function mje(e,t,n){let r=e[t];if(r===void 0)return{};let a=QX(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 eZ(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)=>eZ(i,t[s]));let n=QX(e),r=QX(t);if(!n||!r)return!1;let a=Object.keys(n);return a.length===Object.keys(r).length&&a.every(i=>i in r&&eZ(n[i],r[i]))}async function gje(e,t){let n="";try{let r=await e.files.read(t);typeof r=="string"&&(n=r)}catch(r){if(!yv(r))throw r;return{}}if(!n.trim())return{};try{return km(n)}catch(r){throw new Error(`Failed to parse TOML at ${t}: ${r.message}`)}}async function oZ(e,t,n){await e.files.write(t,Fv(n).trimEnd()+`
675
675
  `)}function VWt(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 qWt(e,t,n){for(let[o,c]of Object.entries(t))hje(o,c);let r=Uw("codex",n),a=Dw("codex",n);await e.files.makeDir(r);let i=await gje(e,a);i.experimental_use_rmcp_client===void 0&&(i.experimental_use_rmcp_client=!0);let s=mje(i,"mcp_servers",a);i.mcp_servers=s;for(let[o,c]of Object.entries(t))s[o]===void 0&&(s[o]=VWt(o,c));await oZ(e,a,i)}async function TKe(e,t,n,r={},a){let i=Uw("codex",a),s=Dw("codex",a);await e.files.makeDir(i);let o=await gje(e,s),c={...n?{[Lu]:n.sessionTagEnv,[Mp]: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=mje(o,"model_providers",s);o.model_provider==="evolve-gateway"&&eZ(u["evolve-gateway"],l)||(o.model_provider="evolve-gateway",u["evolve-gateway"]=l,o.model_providers=u,await oZ(e,s,o))}async function $Wt(e,t,n,r,a){let i=Pp(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 oZ(e,i,o)}async function zWt(e,t,n,r,a){if(!(!r||Object.keys(r).length===0))switch(e){case"claude":await RWt(t,n,r,a);break;case"codex":await qWt(t,r,a);break;case"gemini":await CWt(t,r,a);break;case"qwen":await NWt(t,r,a);break;case"kimi":await DWt(t,r,a);break;case"opencode":await FWt(t,n,r);break;case"droid":await UWt(t,n,r);break;default:throw new Error(`Unknown agent type for MCP config: ${e}`)}}function GWt(){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":return t(l.message?.content,"assistant",u);case"user":{let d=l.message?.content;return typeof d=="string"||Array.isArray(d)&&d.length===1&&d[0].type==="text"?null:t(d,"user",u)}case"result":return null;default:return null}};function t(c,l,u){if(typeof c=="string")return l==="user"?null:[{sessionId:u,update:{sessionUpdate:"agent_message_chunk",content:{type:"text",text:c}}}];if(!c||!Array.isArray(c))return null;let d=[];for(let f of c){let h=null;switch(f.type){case"text":case"text_delta":if(l==="user")break;h={sessionUpdate:"agent_message_chunk",content:{type:"text",text:f.text}};break;case"image":if(l==="user")break;h={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":h={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)&&(h={sessionUpdate:"plan",entries:s(f.input)});else{let g=n(f);h={sessionUpdate:"tool_call",toolCallId:f.id,status:"pending",...g}}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 g=e[f.tool_use_id];if(!g||(delete e[f.tool_use_id],g.name==="TodoWrite"))break;h={sessionUpdate:"tool_call_update",toolCallId:f.tool_use_id,status:"is_error"in f&&f.is_error?"failed":"completed",...r(f,g)};break}}h&&d.push({sessionId:u,update:h})}return d.length>0?d:null}function n(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",h=d.slice(2).join("__")||l;return{title:`${f}: ${h}`,kind:"other",content:[],rawInput:u}}return{title:l||"Unknown Tool",kind:"other",content:[],rawInput:u}}}function r(c,l){let u=c.content;switch(l?.name){case"Read":return Array.isArray(u)&&u.length>0?{content:u.map(d=>({type:"content",content:d.type==="text"?{type:"text",text:o(d.text)}:i(d,!1)}))}:typeof u=="string"&&u.length>0?{content:[{type:"content",content:{type:"text",text:o(u)}}]}:{};case"Edit":case"Write":case"Bash":return a(u,c.is_error||!1);case"ExitPlanMode":return{title:"Exited Plan Mode"};default:return a(u,"is_error"in c?c.is_error:!1)}}function a(c,l=!1){return Array.isArray(c)&&c.length>0?{content:c.map(u=>({type:"content",content:i(u,l)}))}:typeof c=="string"&&c.length>0?{content:[{type:"content",content:{type:"text",text:l?"```\n"+c+"\n```":c}}]}:{}}function i(c,l){if(c.type==="text")return l?{type:"text",text:"```\n"+c.text+"\n```"}:{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 s(c){return c.todos.map(l=>({content:l.content,status:l.status||"pending",priority:"medium"}))}function o(c){let l="```",u=Array.from(c.matchAll(/^```+/gm));for(let[d]of u)for(;d.length>=l.length;)l+="`";return l+`
676
676
  `+c+(c.endsWith(`
677
677
  `)?"":`
@@ -406,7 +406,7 @@ async def list_checkpoints(
406
406
  await store.close()
407
407
 
408
408
 
409
- __version__ = '0.0.52.dev871'
409
+ __version__ = '0.0.52.dev877'
410
410
 
411
411
  __all__ = [
412
412
  # Main classes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolve-sdk
3
- Version: 0.0.52.dev871
3
+ Version: 0.0.52.dev877
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.52.dev871"
7
+ version = "0.0.52.dev877"
8
8
  description = "Pythonic SDK for multi-agent orchestration in E2B sandboxes"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"