evolve-sdk 0.0.55.dev1165__tar.gz → 0.0.55.dev1168__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.dev1165 → evolve_sdk-0.0.55.dev1168}/PKG-INFO +1 -1
  2. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/bridge/dist/bridge.bundle.cjs +1 -1
  3. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/__init__.py +1 -1
  4. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/hosted.py +21 -23
  5. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve_sdk.egg-info/PKG-INFO +1 -1
  6. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/pyproject.toml +1 -1
  7. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/LICENSE +0 -0
  8. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/MANIFEST.in +0 -0
  9. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/README.md +0 -0
  10. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/bridge/__init__.py +0 -0
  11. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/_http.py +0 -0
  12. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/agent.py +0 -0
  13. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/bridge.py +0 -0
  14. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/browser_credentials.py +0 -0
  15. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/browser_profiles.py +0 -0
  16. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/config.py +0 -0
  17. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/integrations.py +0 -0
  18. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/managed_secrets.py +0 -0
  19. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/pipeline/__init__.py +0 -0
  20. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/pipeline/pipeline.py +0 -0
  21. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/pipeline/types.py +0 -0
  22. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/prompts/__init__.py +0 -0
  23. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/prompts/agent_md/judge.md +0 -0
  24. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/prompts/agent_md/reduce.md +0 -0
  25. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/prompts/agent_md/verify.md +0 -0
  26. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/prompts/user/judge.md +0 -0
  27. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/prompts/user/retry_feedback.md +0 -0
  28. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/prompts/user/verify.md +0 -0
  29. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/py.typed +0 -0
  30. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/results.py +0 -0
  31. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/retry.py +0 -0
  32. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/schema.py +0 -0
  33. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/sessions_client.py +0 -0
  34. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/storage_client.py +0 -0
  35. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/swarm/__init__.py +0 -0
  36. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/swarm/results.py +0 -0
  37. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/swarm/swarm.py +0 -0
  38. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/swarm/types.py +0 -0
  39. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve/utils.py +0 -0
  40. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve_sdk.egg-info/SOURCES.txt +0 -0
  41. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve_sdk.egg-info/dependency_links.txt +0 -0
  42. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve_sdk.egg-info/requires.txt +0 -0
  43. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/evolve_sdk.egg-info/top_level.txt +0 -0
  44. {evolve_sdk-0.0.55.dev1165 → evolve_sdk-0.0.55.dev1168}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolve-sdk
3
- Version: 0.0.55.dev1165
3
+ Version: 0.0.55.dev1168
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 UA(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}=DA(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}=MA(e.keyType._def,t);return{...n,propertyNames:a}}}return n}function ere(e,t){if(t.mapStrategy==="record")return UA(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 tre(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 nre(e){return e.target==="openAi"?void 0:{not:Jr({...e,currentPath:[...e.currentPath,"not"]})}}function rre(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var UI={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function are(e,t){if(t.target==="openApi3")return ire(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 ire(e,t)}var ire=(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 sre(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 ore(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",AL(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 cre(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=Qat(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=Zat(e,t);return s!==void 0&&(r.additionalProperties=s),r}function Zat(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 Qat(e){try{return e.isOptional()}catch{return!0}}var lre=(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 ure=(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 dre(e,t){return gt(e.type._def,t)}function fre(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 pre(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 hre(e){return{not:Jr(e)}}function mre(e){return Jr(e)}var gre=(e,t)=>gt(e.innerType._def,t);var yre=(e,t,n)=>{switch(t){case Ue.ZodString:return DA(e,n);case Ue.ZodNumber:return ore(e,n);case Ue.ZodObject:return cre(e,n);case Ue.ZodBigInt:return Jne(e,n);case Ue.ZodBoolean:return Hne();case Ue.ZodDate:return NL(e,n);case Ue.ZodUndefined:return hre(n);case Ue.ZodNull:return rre(n);case Ue.ZodArray:return Gne(e,n);case Ue.ZodUnion:case Ue.ZodDiscriminatedUnion:return are(e,n);case Ue.ZodIntersection:return Xne(e,n);case Ue.ZodTuple:return pre(e,n);case Ue.ZodRecord:return UA(e,n);case Ue.ZodLiteral:return Zne(e,n);case Ue.ZodEnum:return Kne(e);case Ue.ZodNativeEnum:return tre(e);case Ue.ZodNullable:return sre(e,n);case Ue.ZodOptional:return lre(e,n);case Ue.ZodMap:return ere(e,n);case Ue.ZodSet:return fre(e,n);case Ue.ZodLazy:return()=>e.getter()._def;case Ue.ZodPromise:return dre(e,n);case Ue.ZodNaN:case Ue.ZodNever:return nre(n);case Ue.ZodEffects:return jne(e,n);case Ue.ZodAny:return Jr(n);case Ue.ZodUnknown:return mre(n);case Ue.ZodDefault:return Yne(e,n);case Ue.ZodBranded:return MA(e,n);case Ue.ZodReadonly:return gre(e,n);case Ue.ZodCatch:return Wne(e,n);case Ue.ZodPipeline:return ure(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!==Pne)return o}if(r&&!n){let o=est(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=yre(e,e.typeName,t),s=typeof i=="function"?gt(i(),t):i;if(s&&tst(e,t,s),t.postProcess){let o=t.postProcess(s,e,t);return a.jsonSchema=s,o}return a.jsonSchema=s,s}var est=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:OA(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}},tst=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n);var vre=(e,t)=>{let n=Cne(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 bre=vre;var rf=Ve(require("fs"),1),xXe=require("fs");rE();FT();eB();var BKe=["no-internet","pinned-context"],g5t={strict:{coerceTypes:!1,removeAdditional:!1,useDefaults:!1,allErrors:!0},loose:{coerceTypes:"array",removeAdditional:!1,useDefaults:!0,allErrors:!0}};var FKe=2e5;function y5t(e,t){return t??Vp[e]?.defaultReasoningEffort}function cB(e){return e!=="off"&&e!=="none"&&e!=="minimal"&&e!=="no-thinking"}function EXe(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 v5t(e){let t=EXe(e);return t?` --variant ${t} --thinking`:""}var Vp={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:"glm-5.3-flash-fireworks",modelId:"glm-5.3-flash-fireworks",description:"Zhipu GLM-5.3 Flash on Fireworks via the Evolve gateway"},{alias:"deepseek-v4-flash-vision",modelId:"deepseek-v4-flash-vision",description:"DeepSeek V4 Flash Vision (Fireworks) via the Evolve gateway"}],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:FKe}}},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=${FKe}`}},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 ${yO(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=yO(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=cB(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 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=v5t(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.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:"glm-5.3-flash-fireworks",modelId:"glm-5.3-flash-fireworks",description:"Zhipu GLM-5.3 Flash on Fireworks via the Evolve gateway"}],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","glm-5.3-flash":"openrouter/z-ai/glm-5.3-flash","glm-5.3-flash-fireworks":"glm-5.3-flash-fireworks","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 ${yO(r)} `:"";return`printf '%s' ${yO(e)} | droid ${l}exec ${f}--skip-permissions-unsafe --cwd ${o}/workspace --output-format stream-json --model ${yO(u)}${d}`}}};function xv(e){let t=Vp[e];if(!t)throw new Error(`Unknown agent type: ${e}`);return t}function b5t(e){return e in Vp}function Fp(e,t=qp){return e.replace(/^~/,t)}function yO(e){return`'${e.replace(/'/g,"'\\''")}'`}function jw(e,t=qp){let n=xv(e);return`${Fp(n.mcpConfig.settingsDir,t)}/${n.mcpConfig.filename}`}function Kw(e,t=qp){let n=xv(e);return Fp(n.mcpConfig.settingsDir,t)}function Ev(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 TXe(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 hB(e){for(let[t,n]of Object.entries(e))TXe(t,n)}function EO(e){return e.type?e.type:e.command?"stdio":"sse"}function S5t(e){let t=EO(e);return{...e,type:t}}function _5t(e){let{type:t,url:n,...r}=e;return EO(e)==="http"&&n?{httpUrl:n,...r}:n?{url:n,...r}:r}function w5t(e){return{type:EO(e),...e}}function I5t(e){let{type:t,...n}=e;return n.command?{...n,transport:"stdio"}:n.url&&(t==="http"||t==="sse")?{...n,transport:t}:n}function x5t(e){let t=EO(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 CZ(e,t,n,r,a){hB(n);let i=Kw(t,a),s=jw(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(!Ev(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 E5t(e,t,n,r){hB(n);let a=Kw("claude",r),i=jw("claude",r),s=Object.fromEntries(Object.entries(n).map(([c,l])=>[c,w5t(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(!Ev(c))throw c}o.enableAllProjectMcpServers=!0,await e.files.write(i,JSON.stringify(o,null,2))}async function T5t(e,t,n){await CZ(e,"gemini",t,S5t,n)}async function k5t(e,t,n){await CZ(e,"qwen",t,_5t,n)}async function LKe(e,t,n,r,a){let i=Kw(t,a),s=jw(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(!Ev(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 O5t(e,t,n){let r=Kw("qwen",n),a=jw("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(!Ev(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 A5t(e,t,n){await CZ(e,"kimi",t,I5t,n)}async function P5t(e,t,n){hB(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(!Ev(o))throw o}let s=Object.fromEntries(Object.entries(n).map(([o,c])=>[o,x5t(c)]));await e.files.write(a,JSON.stringify({...i,mcpServers:s},null,2))}async function R5t(e,t,n,r){let a=Fp(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 C5t(e,t,n){hB(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(!Ev(s))throw s}let i=Object.fromEntries(Object.entries(n).map(([s,o])=>[s,N5t(o)]));await e.files.write(r,JSON.stringify({...a,mcp:i},null,2))}function N5t(e){let t=EO(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 EZ(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function kXe(e,t,n){let r=e[t];if(r===void 0)return{};let a=EZ(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 TZ(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)=>TZ(i,t[s]));let n=EZ(e),r=EZ(t);if(!n||!r)return!1;let a=Object.keys(n);return a.length===Object.keys(r).length&&a.every(i=>i in r&&TZ(n[i],r[i]))}async function OXe(e,t){let n="";try{let r=await e.files.read(t);typeof r=="string"&&(n=r)}catch(r){if(!Ev(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 NZ(e,t,n){await e.files.write(t,Wv(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 UA(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}=DA(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}=MA(e.keyType._def,t);return{...n,propertyNames:a}}}return n}function ere(e,t){if(t.mapStrategy==="record")return UA(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 tre(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 nre(e){return e.target==="openAi"?void 0:{not:Jr({...e,currentPath:[...e.currentPath,"not"]})}}function rre(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var UI={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function are(e,t){if(t.target==="openApi3")return ire(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 ire(e,t)}var ire=(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 sre(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 ore(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",AL(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 cre(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=Qat(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=Zat(e,t);return s!==void 0&&(r.additionalProperties=s),r}function Zat(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 Qat(e){try{return e.isOptional()}catch{return!0}}var lre=(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 ure=(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 dre(e,t){return gt(e.type._def,t)}function fre(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 pre(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 hre(e){return{not:Jr(e)}}function mre(e){return Jr(e)}var gre=(e,t)=>gt(e.innerType._def,t);var yre=(e,t,n)=>{switch(t){case Ue.ZodString:return DA(e,n);case Ue.ZodNumber:return ore(e,n);case Ue.ZodObject:return cre(e,n);case Ue.ZodBigInt:return Jne(e,n);case Ue.ZodBoolean:return Hne();case Ue.ZodDate:return NL(e,n);case Ue.ZodUndefined:return hre(n);case Ue.ZodNull:return rre(n);case Ue.ZodArray:return Gne(e,n);case Ue.ZodUnion:case Ue.ZodDiscriminatedUnion:return are(e,n);case Ue.ZodIntersection:return Xne(e,n);case Ue.ZodTuple:return pre(e,n);case Ue.ZodRecord:return UA(e,n);case Ue.ZodLiteral:return Zne(e,n);case Ue.ZodEnum:return Kne(e);case Ue.ZodNativeEnum:return tre(e);case Ue.ZodNullable:return sre(e,n);case Ue.ZodOptional:return lre(e,n);case Ue.ZodMap:return ere(e,n);case Ue.ZodSet:return fre(e,n);case Ue.ZodLazy:return()=>e.getter()._def;case Ue.ZodPromise:return dre(e,n);case Ue.ZodNaN:case Ue.ZodNever:return nre(n);case Ue.ZodEffects:return jne(e,n);case Ue.ZodAny:return Jr(n);case Ue.ZodUnknown:return mre(n);case Ue.ZodDefault:return Yne(e,n);case Ue.ZodBranded:return MA(e,n);case Ue.ZodReadonly:return gre(e,n);case Ue.ZodCatch:return Wne(e,n);case Ue.ZodPipeline:return ure(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!==Pne)return o}if(r&&!n){let o=est(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=yre(e,e.typeName,t),s=typeof i=="function"?gt(i(),t):i;if(s&&tst(e,t,s),t.postProcess){let o=t.postProcess(s,e,t);return a.jsonSchema=s,o}return a.jsonSchema=s,s}var est=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:OA(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}},tst=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n);var vre=(e,t)=>{let n=Cne(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 bre=vre;var rf=Ve(require("fs"),1),xXe=require("fs");rE();FT();eB();var BKe=["no-internet","pinned-context"],g5t={strict:{coerceTypes:!1,removeAdditional:!1,useDefaults:!1,allErrors:!0},loose:{coerceTypes:"array",removeAdditional:!1,useDefaults:!0,allErrors:!0}};var FKe=2e5;function y5t(e,t){return t??Vp[e]?.defaultReasoningEffort}function cB(e){return e!=="off"&&e!=="none"&&e!=="minimal"&&e!=="no-thinking"}function EXe(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 v5t(e){let t=EXe(e);return t?` --variant ${t} --thinking`:""}var Vp={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:"deepseek-v4-flash-vision",modelId:"deepseek-v4-flash-vision",description:"DeepSeek V4 Flash Vision (Fireworks) via the Evolve gateway"}],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:FKe}}},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=${FKe}`}},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 ${yO(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=yO(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=cB(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)"}],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=v5t(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.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"}],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 ${yO(r)} `:"";return`printf '%s' ${yO(e)} | droid ${l}exec ${f}--skip-permissions-unsafe --cwd ${o}/workspace --output-format stream-json --model ${yO(u)}${d}`}}};function xv(e){let t=Vp[e];if(!t)throw new Error(`Unknown agent type: ${e}`);return t}function b5t(e){return e in Vp}function Fp(e,t=qp){return e.replace(/^~/,t)}function yO(e){return`'${e.replace(/'/g,"'\\''")}'`}function jw(e,t=qp){let n=xv(e);return`${Fp(n.mcpConfig.settingsDir,t)}/${n.mcpConfig.filename}`}function Kw(e,t=qp){let n=xv(e);return Fp(n.mcpConfig.settingsDir,t)}function Ev(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 TXe(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 hB(e){for(let[t,n]of Object.entries(e))TXe(t,n)}function EO(e){return e.type?e.type:e.command?"stdio":"sse"}function S5t(e){let t=EO(e);return{...e,type:t}}function _5t(e){let{type:t,url:n,...r}=e;return EO(e)==="http"&&n?{httpUrl:n,...r}:n?{url:n,...r}:r}function w5t(e){return{type:EO(e),...e}}function I5t(e){let{type:t,...n}=e;return n.command?{...n,transport:"stdio"}:n.url&&(t==="http"||t==="sse")?{...n,transport:t}:n}function x5t(e){let t=EO(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 CZ(e,t,n,r,a){hB(n);let i=Kw(t,a),s=jw(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(!Ev(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 E5t(e,t,n,r){hB(n);let a=Kw("claude",r),i=jw("claude",r),s=Object.fromEntries(Object.entries(n).map(([c,l])=>[c,w5t(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(!Ev(c))throw c}o.enableAllProjectMcpServers=!0,await e.files.write(i,JSON.stringify(o,null,2))}async function T5t(e,t,n){await CZ(e,"gemini",t,S5t,n)}async function k5t(e,t,n){await CZ(e,"qwen",t,_5t,n)}async function LKe(e,t,n,r,a){let i=Kw(t,a),s=jw(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(!Ev(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 O5t(e,t,n){let r=Kw("qwen",n),a=jw("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(!Ev(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 A5t(e,t,n){await CZ(e,"kimi",t,I5t,n)}async function P5t(e,t,n){hB(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(!Ev(o))throw o}let s=Object.fromEntries(Object.entries(n).map(([o,c])=>[o,x5t(c)]));await e.files.write(a,JSON.stringify({...i,mcpServers:s},null,2))}async function R5t(e,t,n,r){let a=Fp(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 C5t(e,t,n){hB(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(!Ev(s))throw s}let i=Object.fromEntries(Object.entries(n).map(([s,o])=>[s,N5t(o)]));await e.files.write(r,JSON.stringify({...a,mcp:i},null,2))}function N5t(e){let t=EO(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 EZ(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function kXe(e,t,n){let r=e[t];if(r===void 0)return{};let a=EZ(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 TZ(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)=>TZ(i,t[s]));let n=EZ(e),r=EZ(t);if(!n||!r)return!1;let a=Object.keys(n);return a.length===Object.keys(r).length&&a.every(i=>i in r&&TZ(n[i],r[i]))}async function OXe(e,t){let n="";try{let r=await e.files.read(t);typeof r=="string"&&(n=r)}catch(r){if(!Ev(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 NZ(e,t,n){await e.files.write(t,Wv(n).trimEnd()+`
679
679
  `)}function M5t(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 D5t(e,t,n){for(let[o,c]of Object.entries(t))TXe(o,c);let r=Kw("codex",n),a=jw("codex",n);await e.files.makeDir(r);let i=await OXe(e,a);i.experimental_use_rmcp_client===void 0&&(i.experimental_use_rmcp_client=!0);let s=kXe(i,"mcp_servers",a);i.mcp_servers=s;for(let[o,c]of Object.entries(t))s[o]===void 0&&(s[o]=M5t(o,c));await NZ(e,a,i)}async function VKe(e,t,n,r={},a){let i=Kw("codex",a),s=jw("codex",a);await e.files.makeDir(i);let o=await OXe(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=kXe(o,"model_providers",s);o.model_provider==="evolve-gateway"&&TZ(u["evolve-gateway"],l)||(o.model_provider="evolve-gateway",u["evolve-gateway"]=l,o.model_providers=u,await NZ(e,s,o))}async function U5t(e,t,n,r,a){let i=Fp(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 NZ(e,i,o)}async function B5t(e,t,n,r,a){if(!(!r||Object.keys(r).length===0))switch(e){case"claude":await E5t(t,n,r,a);break;case"codex":await D5t(t,r,a);break;case"gemini":await T5t(t,r,a);break;case"qwen":await k5t(t,r,a);break;case"kimi":await A5t(t,r,a);break;case"opencode":await C5t(t,n,r);break;case"droid":await P5t(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 F5t(){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":{if(l.is_error!==!0)return null;let d=(Array.isArray(l.errors)?l.errors:[]).filter(f=>typeof f=="string"&&f.length>0).join(`
680
680
  `);return[{sessionId:u,update:{sessionUpdate:"error",message:Gu([d,l.result,l.subtype],l),fatal:!0}}]}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 m=n(f);h={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;h={sessionUpdate:"tool_call_update",toolCallId:f.tool_use_id,status:"is_error"in f&&f.is_error?"failed":"completed",...r(f,m)};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+`
681
681
  `+c+(c.endsWith(`
@@ -472,7 +472,7 @@ async def list_checkpoints(
472
472
  await store.close()
473
473
 
474
474
 
475
- __version__ = '0.0.55.dev1165'
475
+ __version__ = '0.0.55.dev1168'
476
476
 
477
477
  __all__ = [
478
478
  # Main classes
@@ -1527,22 +1527,21 @@ class AnalyzeConfigInput(TypedDict, total=False):
1527
1527
  PRESENCE of this object is the switch: on ``jobs().start(analyze=...)``
1528
1528
  it arms the embedded trigger (each trial is analyzed server-side right
1529
1529
  after it settles; CANCELLED trials are skipped); ``{}`` is legal and
1530
- means "all defaults" — glm-5.3-flash-fireworks at its per-model
1531
- effort (max) over Harbor's default rubric (reward_hacking,
1532
- task_specification). The analyzer always runs the
1530
+ means "all defaults" — glm-5.3-flash at its per-model effort (max)
1531
+ over Harbor's default rubric (reward_hacking, task_specification). The analyzer always runs the
1533
1532
  claude-code harness in its own sealed sandbox — on the provider
1534
1533
  ``sandbox_provider`` names, or the platform's analysis default when it
1535
1534
  names none; its spend is capped per analysis and metered as its own
1536
1535
  line, never blended into the trial's own bill.
1537
1536
  """
1538
1537
  #: Model the analyzer agent runs — Harbor's ``--model``; the default is
1539
- #: glm-5.3-flash-fireworks on this platform's claude roster (GLM-5.3-Flash
1540
- #: served by Fireworks through the gateway route of that name; the
1541
- #: platform's ruling 2026-09-08: GLM-5.3-Flash on Fireworks at max, the
1542
- #: effort its published scores use; a recorded deviation from Harbor's
1543
- #: claude-haiku-4-5 default — analysis is input-dominated, and this is
1544
- #: the roster's intelligence-per-input-dollar pick at its published
1545
- #: effort; deepseek-v4-flash-vision, glm-5.3-flash and haiku stay as
1538
+ #: glm-5.3-flash on this platform's claude roster (GLM-5.3-Flash, served
1539
+ #: from Fireworks behind the gateway's plain name; the platform's ruling
1540
+ #: 2026-09-08: one GLM-5.3-Flash, from Fireworks, under the plain name,
1541
+ #: at max — the effort its published scores use; a recorded deviation
1542
+ #: from Harbor's claude-haiku-4-5 default — analysis is input-dominated,
1543
+ #: and this is the roster's intelligence-per-input-dollar pick at its
1544
+ #: published effort; deepseek-v4-flash-vision and haiku stay as
1546
1545
  #: alternatives, glm-5.3 to escalate).
1547
1546
  #: Same vocabulary as ``agents[].model_name``: either advertised
1548
1547
  #: spelling is accepted and stored as given (the default is the roster
@@ -1574,11 +1573,10 @@ class AnalyzeConfigInput(TypedDict, total=False):
1574
1573
  #: ``analyze['reasoning_efforts']``, an unknown value is refused
1575
1574
  #: ``invalid_input`` exactly as an arm's is. Omitted, the PER-MODEL
1576
1575
  #: default applies (``analyze['models'][i]['default_reasoning_effort']``:
1577
- #: max on glm-5.3-flash-fireworks, the default model — the platform's
1578
- #: ruling 2026-09-08, the effort its published scores use; high on
1579
- #: deepseek-v4-flash-vision; low on glm-5.3-flash the platform's
1580
- #: ruling for a model whose thinking Z.ai documents as forced, with no
1581
- #: levels — the claude harness default elsewhere). Always passed to the analyzer explicitly and
1576
+ #: max on glm-5.3-flash, the default model — the platform's ruling
1577
+ #: 2026-09-08, the effort its published scores use; high on
1578
+ #: deepseek-v4-flash-vision DeepSeek's own default; the claude harness
1579
+ #: default elsewhere). Always passed to the analyzer explicitly and
1582
1580
  #: recorded on the analysis (``TrialAnalysis['reasoning_effort']``). A
1583
1581
  #: hosted extension: Harbor's analyze has no effort option.
1584
1582
  reasoning_effort: str
@@ -6544,8 +6542,8 @@ class JobsClient:
6544
6542
  trigger (Harbor's ``harbor analyze`` vocabulary, the spec's
6545
6543
  AnalyzeConfigInput): PRESENCE is the switch — each trial is analyzed
6546
6544
  server-side right after it settles (CANCELLED trials are skipped),
6547
- ``{}`` means "all defaults" (glm-5.3-flash-fireworks at its
6548
- per-model effort, Harbor's default rubric), and the response
6545
+ ``{}`` means "all defaults" (glm-5.3-flash at its per-model
6546
+ effort, Harbor's default rubric), and the response
6549
6547
  echoes the RESOLVED policy as
6550
6548
  ``Job.analyze`` (:class:`AnalyzeConfig`); omitted, no embedded
6551
6549
  analysis runs and :meth:`analyze` remains the manual door. The five
@@ -7148,12 +7146,12 @@ class JobsClient:
7148
7146
  applies (daytona unless the operator retuned the fleet).
7149
7147
  ``reasoning_effort`` is the arms' effort vocabulary applied to the
7150
7148
  analyzer (``meta().analyze['reasoning_efforts']``); omitted, the
7151
- per-model default applies (max on glm-5.3-flash-fireworks, high on
7152
- deepseek-v4-flash-vision, low on glm-5.3-flash, the claude harness
7153
- default elsewhere) — the effort is always passed explicitly and
7154
- recorded on each analysis.
7155
- Every argument omitted means the defaults: glm-5.3-flash-fireworks
7156
- at max over Harbor's default rubric (reward_hacking,
7149
+ per-model default applies (max on glm-5.3-flash, high on
7150
+ deepseek-v4-flash-vision, the claude harness default elsewhere)
7151
+ the effort is always passed explicitly and recorded on each
7152
+ analysis.
7153
+ Every argument omitted means the defaults: glm-5.3-flash at max
7154
+ over Harbor's default rubric (reward_hacking,
7157
7155
  task_specification), on the platform's analysis default provider.
7158
7156
  CANCELLED trials are never analyzed.
7159
7157
  Which trials, and how wide, are Harbor's own analyze options with
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolve-sdk
3
- Version: 0.0.55.dev1165
3
+ Version: 0.0.55.dev1168
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.dev1165"
7
+ version = "0.0.55.dev1168"
8
8
  description = "Pythonic SDK for multi-agent orchestration in E2B sandboxes"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"