@evolvingmachines/sdk 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var events=require('events'),Ht=require('ajv'),Et=require('zod-to-json-schema'),P=require('fs'),Y=require('path'),promises=require('fs/promises'),os=require('os'),crypto=require('crypto'),core=require('@composio/core'),zod=require('zod');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Ht__default=/*#__PURE__*/_interopDefault(Ht);var Et__default=/*#__PURE__*/_interopDefault(Et);var P__namespace=/*#__PURE__*/_interopNamespace(P);var Y__namespace=/*#__PURE__*/_interopNamespace(Y);var bt={CLAUDE:"claude",CODEX:"codex",GEMINI:"gemini",QWEN:"qwen"},me={strict:{coerceTypes:false,removeAdditional:false,useDefaults:false,allErrors:true},loose:{coerceTypes:"array",removeAdditional:false,useDefaults:true,allErrors:true}};var fe={claude:{templateId:"
|
|
1
|
+
'use strict';var events=require('events'),Ht=require('ajv'),Et=require('zod-to-json-schema'),P=require('fs'),Y=require('path'),promises=require('fs/promises'),os=require('os'),crypto=require('crypto'),core=require('@composio/core'),zod=require('zod');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Ht__default=/*#__PURE__*/_interopDefault(Ht);var Et__default=/*#__PURE__*/_interopDefault(Et);var P__namespace=/*#__PURE__*/_interopNamespace(P);var Y__namespace=/*#__PURE__*/_interopNamespace(Y);var bt={CLAUDE:"claude",CODEX:"codex",GEMINI:"gemini",QWEN:"qwen"},me={strict:{coerceTypes:false,removeAdditional:false,useDefaults:false,allErrors:true},loose:{coerceTypes:"array",removeAdditional:false,useDefaults:true,allErrors:true}};var fe={claude:{templateId:"swarmkit-all",apiKeyEnv:"ANTHROPIC_API_KEY",oauthEnv:"CLAUDE_CODE_OAUTH_TOKEN",baseUrlEnv:"ANTHROPIC_BASE_URL",defaultModel:"opus",models:[{alias:"opus",modelId:"claude-opus-4-5-20251101",description:"Complex reasoning, R&D, architecting"},{alias:"sonnet",modelId:"claude-sonnet-4-5-20250929",description:"Daily coding, features, tests"},{alias:"haiku",modelId:"claude-haiku-4-5-20251001",description:"Quick tasks, syntax correction"}],systemPromptFile:"CLAUDE.md",mcpConfig:{settingsDir:"~/.claude",filename:"settings.json",format:"json",projectConfig:true},availableBetas:{CONTEXT_1M:"context-1m-2025-08-07"},skillsConfig:{sourceDir:"/home/user/.evolve/skills",targetDir:"/home/user/.claude/skills"},buildCommand:({prompt:c,model:e,isResume:n,betas:s})=>{let r=n?"--continue ":"",o=s?.length?`--betas ${s.join(",")} `:"";return `echo "${c}" | claude -p ${r}${o}--model ${e} --output-format stream-json --verbose --dangerously-skip-permissions`}},codex:{templateId:"swarmkit-all",apiKeyEnv:"OPENAI_API_KEY",baseUrlEnv:"OPENAI_BASE_URL",defaultModel:"gpt-5.2",models:[{alias:"gpt-5.2",modelId:"gpt-5.2",description:"Base model"},{alias:"gpt-5.2-codex",modelId:"gpt-5.2-codex",description:"Code-optimized"},{alias:"gpt-5.1-codex-max",modelId:"gpt-5.1-codex-max",description:"Best reasoning (xhigh effort)"},{alias:"gpt-5.1-mini",modelId:"gpt-5.1-mini",description:"Smaller/faster"}],systemPromptFile:"AGENTS.md",mcpConfig:{settingsDir:"~/.codex",filename:"config.toml",format:"toml"},skillsConfig:{sourceDir:"/home/user/.evolve/skills",targetDir:"/home/user/.codex/skills"},setupCommand:`printf '%s\\n' "$OPENAI_API_KEY" | codex login --with-api-key`,buildCommand:({prompt:c,model:e,isResume:n,reasoningEffort:s})=>{let r=s?` -c model_reasoning_effort="${s}"`:"";return `printf '%s' "${c}" | codex exec --model ${e}${r} --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check --json${n?" resume --last":""}`}},gemini:{templateId:"swarmkit-all",apiKeyEnv:"GEMINI_API_KEY",baseUrlEnv:"GOOGLE_GEMINI_BASE_URL",defaultModel:"gemini-3-flash-preview",models:[{alias:"gemini-3-pro-preview",modelId:"gemini-3-pro-preview",description:"Latest pro preview"},{alias:"gemini-3-flash-preview",modelId:"gemini-3-flash-preview",description:"Latest flash preview"},{alias:"gemini-2.5-pro",modelId:"gemini-2.5-pro",description:"Complex tasks, deep reasoning"},{alias:"gemini-2.5-flash",modelId:"gemini-2.5-flash",description:"Balance speed/reasoning"},{alias:"gemini-2.5-flash-lite",modelId:"gemini-2.5-flash-lite",description:"Simple tasks, fastest"}],systemPromptFile:"GEMINI.md",mcpConfig:{settingsDir:"~/.gemini",filename:"settings.json",format:"json"},skillsConfig:{sourceDir:"/home/user/.evolve/skills",targetDir:"/home/user/.gemini/skills"},usePassthroughGateway:true,buildCommand:({prompt:c,model:e,isResume:n})=>`gemini "${c}" ${n?"--resume latest ":""}--model ${e} --yolo --output-format stream-json`},qwen:{templateId:"swarmkit-all",apiKeyEnv:"OPENAI_API_KEY",baseUrlEnv:"OPENAI_BASE_URL",defaultModel:"qwen3-coder-plus",models:[{alias:"qwen3-coder-plus",modelId:"qwen3-coder-plus",description:"Code generation, debugging"},{alias:"qwen3-vl-plus",modelId:"qwen3-vl-plus",description:"Vision + language, multimodal"}],systemPromptFile:"QWEN.md",mcpConfig:{settingsDir:"~/.qwen",filename:"settings.json",format:"json"},skillsConfig:{sourceDir:"/home/user/.evolve/skills",targetDir:"/home/user/.qwen/skills",enableFlag:"--experimental-skills"},defaultBaseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1",buildCommand:({prompt:c,model:e,isResume:n,isDirectMode:s,skills:r})=>{let o=n?"--continue ":"",a=r?.length?"--experimental-skills ":"",l=s||e.startsWith("dashscope/")?e:`dashscope/${e}`;return `qwen "${c}" ${o}${a}--model ${l} --yolo --output-format stream-json`}}};function M(c){let e=fe[c];if(!e)throw new Error(`Unknown agent type: ${c}`);return e}function wt(c){return c in fe}function ge(c){return c.replace(/^~/,"/home/user")}function $(c){let e=M(c);return `${ge(e.mcpConfig.settingsDir)}/${e.mcpConfig.filename}`}function U(c){let e=M(c);return ge(e.mcpConfig.settingsDir)}function V(c){if(c instanceof Error){let e=c.message.toLowerCase();return e.includes("not found")||e.includes("enoent")||e.includes("no such file")||e.includes("does not exist")}return false}function he(c,e){let n=[e.command,e.url].filter(Boolean);if(n.length===0)throw new Error(`MCP server "${c}" must specify command or url`);if(n.length>1)throw new Error(`MCP server "${c}" cannot specify both command and url`)}function ye(c){for(let[e,n]of Object.entries(c))he(e,n);}function ve(c){return c.type?c.type:c.command?"stdio":"sse"}function Ct(c){let e=ve(c);return {...c,type:e}}function St(c){let{type:e,url:n,...s}=c;return ve(c)==="http"&&n?{httpUrl:n,...s}:n?{url:n,...s}:s}function kt(c){return {type:ve(c),...c}}async function Fe(c,e,n,s){ye(n);let r=U(e),o=$(e);await c.files.makeDir(r);let a={};try{let i=await c.files.read(o);typeof i=="string"&&(a=JSON.parse(i));}catch(i){if(!V(i))throw i}let l=Object.fromEntries(Object.entries(n).map(([i,p])=>[i,s(p)]));await c.files.write(o,JSON.stringify({...a,mcpServers:l},null,2));}async function Q(c,e,n){ye(n);let s=U("claude"),r=$("claude"),o=Object.fromEntries(Object.entries(n).map(([l,i])=>[l,kt(i)]));await c.files.write(`${e}/.mcp.json`,JSON.stringify({mcpServers:o},null,2)),await c.files.makeDir(s);let a={};try{let l=await c.files.read(r);typeof l=="string"&&(a=JSON.parse(l));}catch(l){if(!V(l))throw l}a.enableAllProjectMcpServers=true,await c.files.write(r,JSON.stringify(a,null,2));}async function X(c,e){await Fe(c,"gemini",e,Ct);}async function ee(c,e){await Fe(c,"qwen",e,St);}function _(c){return typeof c=="string"?`"${c.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:Array.isArray(c)?`[${c.map(e=>_(e)).join(", ")}]`:typeof c=="object"&&c!==null?`{ ${Object.entries(c).map(([n,s])=>`${n} = ${_(s)}`).join(", ")} }`:typeof c=="boolean"?c?"true":"false":String(c)}async function te(c,e){for(let[i,p]of Object.entries(e))he(i,p);let n=U("codex"),s=$("codex");await c.files.makeDir(n);let r="";try{let i=await c.files.read(s);typeof i=="string"&&(r=i);}catch(i){if(!V(i))throw i}let o=[],a=[];r.includes("experimental_use_rmcp_client")||(o.push("# Enable improved RMCP client (recommended)"),o.push("experimental_use_rmcp_client = true")),r.includes("[mcp_servers]")||a.push("[mcp_servers]","");for(let[i,p]of Object.entries(e)){if(r.includes(`[mcp_servers.${i}]`))continue;a.push(`[mcp_servers.${i}]`);let t=p.type??(p.command?"stdio":"http");if(t==="http"||t==="sse"||!!p.url){if(!p.url)throw new Error(`MCP server "${i}" is missing url for ${t} transport`);a.push(`url = ${_(p.url)}`),p.bearerTokenEnvVar&&a.push(`bearer_token_env_var = ${_(p.bearerTokenEnvVar)}`);let d=p.httpHeaders??p.headers;d&&Object.keys(d).length>0&&a.push(`http_headers = ${_(d)}`),p.envHttpHeaders&&Object.keys(p.envHttpHeaders).length>0&&a.push(`env_http_headers = ${_(p.envHttpHeaders)}`);}else a.push(`command = ${_(p.command)}`),p.args&&p.args.length>0&&a.push(`args = ${_(p.args)}`),p.cwd&&a.push(`cwd = ${_(p.cwd)}`);p.env&&Object.keys(p.env).length>0&&a.push(`env = ${_(p.env)}`),p.envVars&&p.envVars.length>0&&a.push(`env_vars = ${_(p.envVars)}`),a.push("");}let l=[r.trim(),o.join(`
|
|
2
2
|
`),a.join(`
|
|
3
3
|
`)].filter(i=>i.length>0);await c.files.write(s,l.join(`
|
|
4
4
|
|
|
@@ -17,7 +17,7 @@ ${d}
|
|
|
17
17
|
\`\`\``:d}});else if(Array.isArray(d)){for(let f of d)if(f.type==="text"){let h=f.text;m.push({type:"content",content:{type:"text",text:u?`\`\`\`
|
|
18
18
|
${h}
|
|
19
19
|
\`\`\``:h}});}}return {sessionUpdate:"tool_call_update",toolCallId:t,status:u?"failed":"completed",content:m}}function i(p,t){let u=_t[p]||"other",d=[],m=[],f=p;switch(p){case "Read":case "read_file":f=`Read ${t.file_path||t.absolute_path||"file"}`,(t.file_path||t.absolute_path)&&m.push({path:t.file_path||t.absolute_path});break;case "Write":case "write_file":f=`Write ${t.file_path||"file"}`,t.file_path&&(m.push({path:t.file_path}),d.push({type:"diff",path:t.file_path,oldText:null,newText:t.content||""}));break;case "Edit":case "edit_file":f=`Edit ${t.file_path||"file"}`,t.file_path&&m.push({path:t.file_path});break;case "Bash":case "shell":case "run_shell_command":f=t.command?`\`${t.command}\``:"Run command",t.description&&d.push({type:"content",content:{type:"text",text:t.description}});break;case "WebFetch":f=t.url?`Fetch ${t.url}`:"Web fetch";break;case "WebSearch":case "brave_web_search":f=t.query?`"${t.query}"`:"Web search";break;case "Glob":f=`Find ${t.pattern||"files"}`,t.path&&m.push({path:t.path});break;case "Grep":f=`grep "${t.pattern||""}"`;break;case "LS":case "list_directory":f=`List ${t.path||"directory"}`,t.path&&m.push({path:t.path});break;case "Task":f=t.description||"Subagent task";break;case "TodoWrite":f="Update todos";break;case "ExitPlanMode":f="Exit plan mode";break;default:f=p;}return {title:f,kind:u,content:d,locations:m}}}function $e(c){return oe()(c)}function I(c){switch(c){case "claude":return ne();case "codex":return se();case "gemini":return ie();case "qwen":return oe();default:return ()=>null}}function Rt(c,e){let n=e.trim();return n?I(c)(n):null}function Pt(c,e){let n=[],s=e.split(`
|
|
20
|
-
`),r=I(c);for(let o of s){let a=o.trim();if(!a)continue;let l=r(a);l&&n.push(...l);}return n}function K(){return process.env.EVOLVE_GATEWAY_URL||"https://
|
|
20
|
+
`),r=I(c);for(let o of s){let a=o.trim();if(!a)continue;let l=r(a);l&&n.push(...l);}return n}function K(){return process.env.EVOLVE_GATEWAY_URL||"https://swarmkit-gateway-692833842999.us-central1.run.app"}function Ue(){return `${K()}`}function Be(){return `${K()}/e2b`}function Ne(c){return {"browser-use":{type:"http",url:`${K()}/browser_use/mcp`,headers:{"x-litellm-api-key":`Bearer ${c}`}}}}var O="EVOLVE_API_KEY",re="E2B_API_KEY",je="claude",W=36e5,Le=4,be=100,Ve="/home/user/workspace",J="https://dashboard.evolvingmachines.ai",Ke=".evolve-sdk/observability/sessions",We=100,Je=5e3,ae=3,we=1e3;function R(c){return c!==null&&typeof c=="object"&&"safeParse"in c&&typeof c.safeParse=="function"}function B(c){return JSON.stringify(Et__default.default(c,{target:"jsonSchema7"}),null,2)}function N(c){return JSON.stringify(c,null,2)}function Ye(c,e=false){let n={};function s(r,o){for(let a of P__namespace.readdirSync(r)){let l=Y__namespace.join(r,a),i=o?`${o}/${a}`:a;P__namespace.statSync(l).isDirectory()?e&&s(l,i):n[i]=P__namespace.readFileSync(l);}}return s(c,""),n}function Ge(c,e){for(let[n,s]of Object.entries(e)){let r=Y__namespace.join(c,n),o=Y__namespace.dirname(r);P__namespace.mkdirSync(o,{recursive:true});let a;s instanceof ArrayBuffer||s instanceof Uint8Array?a=Buffer.from(s):a=s,P__namespace.writeFileSync(r,a);}}function Ce(c){let e=c?.type??je,n=M(e);if(c?.oauthToken){if(e!=="claude")throw new Error(`oauthToken is only supported for claude agent (Claude Max subscription), not ${e}. Use providerApiKey for ${e} instead.`);return {type:e,apiKey:c.oauthToken,isDirectMode:true,isOAuth:true,model:c.model,reasoningEffort:c.reasoningEffort,betas:c.betas}}if(c?.providerApiKey){let a=c.providerBaseUrl??process.env[n.baseUrlEnv]??n.defaultBaseUrl;return {type:e,apiKey:c.providerApiKey,baseUrl:a,isDirectMode:true,model:c.model,reasoningEffort:c.reasoningEffort,betas:c.betas}}if(c?.apiKey)return {type:e,apiKey:c.apiKey,isDirectMode:false,model:c.model,reasoningEffort:c.reasoningEffort,betas:c.betas};let s=process.env[O];if(s)return {type:e,apiKey:s,isDirectMode:false,model:c?.model,reasoningEffort:c?.reasoningEffort,betas:c?.betas};let r=process.env[n.apiKeyEnv];if(r){let a=process.env[n.baseUrlEnv]??n.defaultBaseUrl;return {type:e,apiKey:r,baseUrl:a,isDirectMode:true,model:c?.model,reasoningEffort:c?.reasoningEffort,betas:c?.betas}}if(n.oauthEnv){let a=process.env[n.oauthEnv];if(a)return {type:e,apiKey:a,isDirectMode:true,isOAuth:true,model:c?.model,reasoningEffort:c?.reasoningEffort,betas:c?.betas}}let o=n.oauthEnv?`, oauthToken (Claude Max), or ${n.oauthEnv}`:"";throw new Error(`No API key found for ${e}. Set apiKey (gateway), providerApiKey (direct)${o}, or ${O} / ${n.apiKeyEnv} env var.`)}async function Se(){let c=process.env[O];if(c)try{let{createE2BProvider:n}=await import('@evolvingmachines/e2b');return process.env.E2B_API_URL=Be(),n({apiKey:c})}catch(n){let s=n;throw s.message?.includes("Cannot find module")||s.message?.includes("MODULE_NOT_FOUND")?new Error(`${O} is set but @evolvingmachines/e2b failed to load.
|
|
21
21
|
Try reinstalling: npm install @evolvingmachines/sdk`):s}let e=process.env[re];if(e)try{let{createE2BProvider:n}=await import('@evolvingmachines/e2b');return n({apiKey:e})}catch(n){let s=n;throw s.message?.includes("Cannot find module")||s.message?.includes("MODULE_NOT_FOUND")?new Error(`${re} is set but @evolvingmachines/e2b failed to load.
|
|
22
22
|
Try reinstalling: npm install @evolvingmachines/sdk`):s}throw new Error(`No sandbox provider configured. Either:
|
|
23
23
|
1. Set ${O} environment variable (recommended, get key at https://dashboard.evolvingmachines.ai)
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {EventEmitter}from'events';import Ht from'ajv';import Et from'zod-to-json-schema';import*as P from'fs';import*as Y from'path';import {join}from'path';import {mkdir,appendFile}from'fs/promises';import {homedir}from'os';import {randomBytes}from'crypto';import {Composio,AuthScheme}from'@composio/core';import {z as z$1}from'zod';var bt={CLAUDE:"claude",CODEX:"codex",GEMINI:"gemini",QWEN:"qwen"},me={strict:{coerceTypes:false,removeAdditional:false,useDefaults:false,allErrors:true},loose:{coerceTypes:"array",removeAdditional:false,useDefaults:true,allErrors:true}};var fe={claude:{templateId:"
|
|
1
|
+
import {EventEmitter}from'events';import Ht from'ajv';import Et from'zod-to-json-schema';import*as P from'fs';import*as Y from'path';import {join}from'path';import {mkdir,appendFile}from'fs/promises';import {homedir}from'os';import {randomBytes}from'crypto';import {Composio,AuthScheme}from'@composio/core';import {z as z$1}from'zod';var bt={CLAUDE:"claude",CODEX:"codex",GEMINI:"gemini",QWEN:"qwen"},me={strict:{coerceTypes:false,removeAdditional:false,useDefaults:false,allErrors:true},loose:{coerceTypes:"array",removeAdditional:false,useDefaults:true,allErrors:true}};var fe={claude:{templateId:"swarmkit-all",apiKeyEnv:"ANTHROPIC_API_KEY",oauthEnv:"CLAUDE_CODE_OAUTH_TOKEN",baseUrlEnv:"ANTHROPIC_BASE_URL",defaultModel:"opus",models:[{alias:"opus",modelId:"claude-opus-4-5-20251101",description:"Complex reasoning, R&D, architecting"},{alias:"sonnet",modelId:"claude-sonnet-4-5-20250929",description:"Daily coding, features, tests"},{alias:"haiku",modelId:"claude-haiku-4-5-20251001",description:"Quick tasks, syntax correction"}],systemPromptFile:"CLAUDE.md",mcpConfig:{settingsDir:"~/.claude",filename:"settings.json",format:"json",projectConfig:true},availableBetas:{CONTEXT_1M:"context-1m-2025-08-07"},skillsConfig:{sourceDir:"/home/user/.evolve/skills",targetDir:"/home/user/.claude/skills"},buildCommand:({prompt:c,model:e,isResume:n,betas:s})=>{let r=n?"--continue ":"",o=s?.length?`--betas ${s.join(",")} `:"";return `echo "${c}" | claude -p ${r}${o}--model ${e} --output-format stream-json --verbose --dangerously-skip-permissions`}},codex:{templateId:"swarmkit-all",apiKeyEnv:"OPENAI_API_KEY",baseUrlEnv:"OPENAI_BASE_URL",defaultModel:"gpt-5.2",models:[{alias:"gpt-5.2",modelId:"gpt-5.2",description:"Base model"},{alias:"gpt-5.2-codex",modelId:"gpt-5.2-codex",description:"Code-optimized"},{alias:"gpt-5.1-codex-max",modelId:"gpt-5.1-codex-max",description:"Best reasoning (xhigh effort)"},{alias:"gpt-5.1-mini",modelId:"gpt-5.1-mini",description:"Smaller/faster"}],systemPromptFile:"AGENTS.md",mcpConfig:{settingsDir:"~/.codex",filename:"config.toml",format:"toml"},skillsConfig:{sourceDir:"/home/user/.evolve/skills",targetDir:"/home/user/.codex/skills"},setupCommand:`printf '%s\\n' "$OPENAI_API_KEY" | codex login --with-api-key`,buildCommand:({prompt:c,model:e,isResume:n,reasoningEffort:s})=>{let r=s?` -c model_reasoning_effort="${s}"`:"";return `printf '%s' "${c}" | codex exec --model ${e}${r} --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check --json${n?" resume --last":""}`}},gemini:{templateId:"swarmkit-all",apiKeyEnv:"GEMINI_API_KEY",baseUrlEnv:"GOOGLE_GEMINI_BASE_URL",defaultModel:"gemini-3-flash-preview",models:[{alias:"gemini-3-pro-preview",modelId:"gemini-3-pro-preview",description:"Latest pro preview"},{alias:"gemini-3-flash-preview",modelId:"gemini-3-flash-preview",description:"Latest flash preview"},{alias:"gemini-2.5-pro",modelId:"gemini-2.5-pro",description:"Complex tasks, deep reasoning"},{alias:"gemini-2.5-flash",modelId:"gemini-2.5-flash",description:"Balance speed/reasoning"},{alias:"gemini-2.5-flash-lite",modelId:"gemini-2.5-flash-lite",description:"Simple tasks, fastest"}],systemPromptFile:"GEMINI.md",mcpConfig:{settingsDir:"~/.gemini",filename:"settings.json",format:"json"},skillsConfig:{sourceDir:"/home/user/.evolve/skills",targetDir:"/home/user/.gemini/skills"},usePassthroughGateway:true,buildCommand:({prompt:c,model:e,isResume:n})=>`gemini "${c}" ${n?"--resume latest ":""}--model ${e} --yolo --output-format stream-json`},qwen:{templateId:"swarmkit-all",apiKeyEnv:"OPENAI_API_KEY",baseUrlEnv:"OPENAI_BASE_URL",defaultModel:"qwen3-coder-plus",models:[{alias:"qwen3-coder-plus",modelId:"qwen3-coder-plus",description:"Code generation, debugging"},{alias:"qwen3-vl-plus",modelId:"qwen3-vl-plus",description:"Vision + language, multimodal"}],systemPromptFile:"QWEN.md",mcpConfig:{settingsDir:"~/.qwen",filename:"settings.json",format:"json"},skillsConfig:{sourceDir:"/home/user/.evolve/skills",targetDir:"/home/user/.qwen/skills",enableFlag:"--experimental-skills"},defaultBaseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1",buildCommand:({prompt:c,model:e,isResume:n,isDirectMode:s,skills:r})=>{let o=n?"--continue ":"",a=r?.length?"--experimental-skills ":"",l=s||e.startsWith("dashscope/")?e:`dashscope/${e}`;return `qwen "${c}" ${o}${a}--model ${l} --yolo --output-format stream-json`}}};function M(c){let e=fe[c];if(!e)throw new Error(`Unknown agent type: ${c}`);return e}function wt(c){return c in fe}function ge(c){return c.replace(/^~/,"/home/user")}function $(c){let e=M(c);return `${ge(e.mcpConfig.settingsDir)}/${e.mcpConfig.filename}`}function U(c){let e=M(c);return ge(e.mcpConfig.settingsDir)}function V(c){if(c instanceof Error){let e=c.message.toLowerCase();return e.includes("not found")||e.includes("enoent")||e.includes("no such file")||e.includes("does not exist")}return false}function he(c,e){let n=[e.command,e.url].filter(Boolean);if(n.length===0)throw new Error(`MCP server "${c}" must specify command or url`);if(n.length>1)throw new Error(`MCP server "${c}" cannot specify both command and url`)}function ye(c){for(let[e,n]of Object.entries(c))he(e,n);}function ve(c){return c.type?c.type:c.command?"stdio":"sse"}function Ct(c){let e=ve(c);return {...c,type:e}}function St(c){let{type:e,url:n,...s}=c;return ve(c)==="http"&&n?{httpUrl:n,...s}:n?{url:n,...s}:s}function kt(c){return {type:ve(c),...c}}async function Fe(c,e,n,s){ye(n);let r=U(e),o=$(e);await c.files.makeDir(r);let a={};try{let i=await c.files.read(o);typeof i=="string"&&(a=JSON.parse(i));}catch(i){if(!V(i))throw i}let l=Object.fromEntries(Object.entries(n).map(([i,p])=>[i,s(p)]));await c.files.write(o,JSON.stringify({...a,mcpServers:l},null,2));}async function Q(c,e,n){ye(n);let s=U("claude"),r=$("claude"),o=Object.fromEntries(Object.entries(n).map(([l,i])=>[l,kt(i)]));await c.files.write(`${e}/.mcp.json`,JSON.stringify({mcpServers:o},null,2)),await c.files.makeDir(s);let a={};try{let l=await c.files.read(r);typeof l=="string"&&(a=JSON.parse(l));}catch(l){if(!V(l))throw l}a.enableAllProjectMcpServers=true,await c.files.write(r,JSON.stringify(a,null,2));}async function X(c,e){await Fe(c,"gemini",e,Ct);}async function ee(c,e){await Fe(c,"qwen",e,St);}function _(c){return typeof c=="string"?`"${c.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:Array.isArray(c)?`[${c.map(e=>_(e)).join(", ")}]`:typeof c=="object"&&c!==null?`{ ${Object.entries(c).map(([n,s])=>`${n} = ${_(s)}`).join(", ")} }`:typeof c=="boolean"?c?"true":"false":String(c)}async function te(c,e){for(let[i,p]of Object.entries(e))he(i,p);let n=U("codex"),s=$("codex");await c.files.makeDir(n);let r="";try{let i=await c.files.read(s);typeof i=="string"&&(r=i);}catch(i){if(!V(i))throw i}let o=[],a=[];r.includes("experimental_use_rmcp_client")||(o.push("# Enable improved RMCP client (recommended)"),o.push("experimental_use_rmcp_client = true")),r.includes("[mcp_servers]")||a.push("[mcp_servers]","");for(let[i,p]of Object.entries(e)){if(r.includes(`[mcp_servers.${i}]`))continue;a.push(`[mcp_servers.${i}]`);let t=p.type??(p.command?"stdio":"http");if(t==="http"||t==="sse"||!!p.url){if(!p.url)throw new Error(`MCP server "${i}" is missing url for ${t} transport`);a.push(`url = ${_(p.url)}`),p.bearerTokenEnvVar&&a.push(`bearer_token_env_var = ${_(p.bearerTokenEnvVar)}`);let d=p.httpHeaders??p.headers;d&&Object.keys(d).length>0&&a.push(`http_headers = ${_(d)}`),p.envHttpHeaders&&Object.keys(p.envHttpHeaders).length>0&&a.push(`env_http_headers = ${_(p.envHttpHeaders)}`);}else a.push(`command = ${_(p.command)}`),p.args&&p.args.length>0&&a.push(`args = ${_(p.args)}`),p.cwd&&a.push(`cwd = ${_(p.cwd)}`);p.env&&Object.keys(p.env).length>0&&a.push(`env = ${_(p.env)}`),p.envVars&&p.envVars.length>0&&a.push(`env_vars = ${_(p.envVars)}`),a.push("");}let l=[r.trim(),o.join(`
|
|
2
2
|
`),a.join(`
|
|
3
3
|
`)].filter(i=>i.length>0);await c.files.write(s,l.join(`
|
|
4
4
|
|
|
@@ -17,7 +17,7 @@ ${d}
|
|
|
17
17
|
\`\`\``:d}});else if(Array.isArray(d)){for(let f of d)if(f.type==="text"){let h=f.text;m.push({type:"content",content:{type:"text",text:u?`\`\`\`
|
|
18
18
|
${h}
|
|
19
19
|
\`\`\``:h}});}}return {sessionUpdate:"tool_call_update",toolCallId:t,status:u?"failed":"completed",content:m}}function i(p,t){let u=_t[p]||"other",d=[],m=[],f=p;switch(p){case "Read":case "read_file":f=`Read ${t.file_path||t.absolute_path||"file"}`,(t.file_path||t.absolute_path)&&m.push({path:t.file_path||t.absolute_path});break;case "Write":case "write_file":f=`Write ${t.file_path||"file"}`,t.file_path&&(m.push({path:t.file_path}),d.push({type:"diff",path:t.file_path,oldText:null,newText:t.content||""}));break;case "Edit":case "edit_file":f=`Edit ${t.file_path||"file"}`,t.file_path&&m.push({path:t.file_path});break;case "Bash":case "shell":case "run_shell_command":f=t.command?`\`${t.command}\``:"Run command",t.description&&d.push({type:"content",content:{type:"text",text:t.description}});break;case "WebFetch":f=t.url?`Fetch ${t.url}`:"Web fetch";break;case "WebSearch":case "brave_web_search":f=t.query?`"${t.query}"`:"Web search";break;case "Glob":f=`Find ${t.pattern||"files"}`,t.path&&m.push({path:t.path});break;case "Grep":f=`grep "${t.pattern||""}"`;break;case "LS":case "list_directory":f=`List ${t.path||"directory"}`,t.path&&m.push({path:t.path});break;case "Task":f=t.description||"Subagent task";break;case "TodoWrite":f="Update todos";break;case "ExitPlanMode":f="Exit plan mode";break;default:f=p;}return {title:f,kind:u,content:d,locations:m}}}function $e(c){return oe()(c)}function I(c){switch(c){case "claude":return ne();case "codex":return se();case "gemini":return ie();case "qwen":return oe();default:return ()=>null}}function Rt(c,e){let n=e.trim();return n?I(c)(n):null}function Pt(c,e){let n=[],s=e.split(`
|
|
20
|
-
`),r=I(c);for(let o of s){let a=o.trim();if(!a)continue;let l=r(a);l&&n.push(...l);}return n}function K(){return process.env.EVOLVE_GATEWAY_URL||"https://
|
|
20
|
+
`),r=I(c);for(let o of s){let a=o.trim();if(!a)continue;let l=r(a);l&&n.push(...l);}return n}function K(){return process.env.EVOLVE_GATEWAY_URL||"https://swarmkit-gateway-692833842999.us-central1.run.app"}function Ue(){return `${K()}`}function Be(){return `${K()}/e2b`}function Ne(c){return {"browser-use":{type:"http",url:`${K()}/browser_use/mcp`,headers:{"x-litellm-api-key":`Bearer ${c}`}}}}var O="EVOLVE_API_KEY",re="E2B_API_KEY",je="claude",W=36e5,Le=4,be=100,Ve="/home/user/workspace",J="https://dashboard.evolvingmachines.ai",Ke=".evolve-sdk/observability/sessions",We=100,Je=5e3,ae=3,we=1e3;function R(c){return c!==null&&typeof c=="object"&&"safeParse"in c&&typeof c.safeParse=="function"}function B(c){return JSON.stringify(Et(c,{target:"jsonSchema7"}),null,2)}function N(c){return JSON.stringify(c,null,2)}function Ye(c,e=false){let n={};function s(r,o){for(let a of P.readdirSync(r)){let l=Y.join(r,a),i=o?`${o}/${a}`:a;P.statSync(l).isDirectory()?e&&s(l,i):n[i]=P.readFileSync(l);}}return s(c,""),n}function Ge(c,e){for(let[n,s]of Object.entries(e)){let r=Y.join(c,n),o=Y.dirname(r);P.mkdirSync(o,{recursive:true});let a;s instanceof ArrayBuffer||s instanceof Uint8Array?a=Buffer.from(s):a=s,P.writeFileSync(r,a);}}function Ce(c){let e=c?.type??je,n=M(e);if(c?.oauthToken){if(e!=="claude")throw new Error(`oauthToken is only supported for claude agent (Claude Max subscription), not ${e}. Use providerApiKey for ${e} instead.`);return {type:e,apiKey:c.oauthToken,isDirectMode:true,isOAuth:true,model:c.model,reasoningEffort:c.reasoningEffort,betas:c.betas}}if(c?.providerApiKey){let a=c.providerBaseUrl??process.env[n.baseUrlEnv]??n.defaultBaseUrl;return {type:e,apiKey:c.providerApiKey,baseUrl:a,isDirectMode:true,model:c.model,reasoningEffort:c.reasoningEffort,betas:c.betas}}if(c?.apiKey)return {type:e,apiKey:c.apiKey,isDirectMode:false,model:c.model,reasoningEffort:c.reasoningEffort,betas:c.betas};let s=process.env[O];if(s)return {type:e,apiKey:s,isDirectMode:false,model:c?.model,reasoningEffort:c?.reasoningEffort,betas:c?.betas};let r=process.env[n.apiKeyEnv];if(r){let a=process.env[n.baseUrlEnv]??n.defaultBaseUrl;return {type:e,apiKey:r,baseUrl:a,isDirectMode:true,model:c?.model,reasoningEffort:c?.reasoningEffort,betas:c?.betas}}if(n.oauthEnv){let a=process.env[n.oauthEnv];if(a)return {type:e,apiKey:a,isDirectMode:true,isOAuth:true,model:c?.model,reasoningEffort:c?.reasoningEffort,betas:c?.betas}}let o=n.oauthEnv?`, oauthToken (Claude Max), or ${n.oauthEnv}`:"";throw new Error(`No API key found for ${e}. Set apiKey (gateway), providerApiKey (direct)${o}, or ${O} / ${n.apiKeyEnv} env var.`)}async function Se(){let c=process.env[O];if(c)try{let{createE2BProvider:n}=await import('@evolvingmachines/e2b');return process.env.E2B_API_URL=Be(),n({apiKey:c})}catch(n){let s=n;throw s.message?.includes("Cannot find module")||s.message?.includes("MODULE_NOT_FOUND")?new Error(`${O} is set but @evolvingmachines/e2b failed to load.
|
|
21
21
|
Try reinstalling: npm install @evolvingmachines/sdk`):s}let e=process.env[re];if(e)try{let{createE2BProvider:n}=await import('@evolvingmachines/e2b');return n({apiKey:e})}catch(n){let s=n;throw s.message?.includes("Cannot find module")||s.message?.includes("MODULE_NOT_FOUND")?new Error(`${re} is set but @evolvingmachines/e2b failed to load.
|
|
22
22
|
Try reinstalling: npm install @evolvingmachines/sdk`):s}throw new Error(`No sandbox provider configured. Either:
|
|
23
23
|
1. Set ${O} environment variable (recommended, get key at https://dashboard.evolvingmachines.ai)
|