@evolvingmachines/sdk 0.0.3 → 0.0.4

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 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:"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(`
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:"evolve-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:"evolve-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:"evolve-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:"evolve-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
 
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:"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(`
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:"evolve-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:"evolve-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:"evolve-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:"evolve-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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evolvingmachines/sdk",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "keywords": [
5
5
  "ai",
6
6
  "agents",