@swifty.js/swifty 0.0.28 → 0.0.30

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 (37) hide show
  1. package/README.md +40 -38
  2. package/dist/{agent-3NON2EXE.js → agent-TCNIRVHD.js} +1 -1
  3. package/dist/anthropic-7RIVSEDF.js +4 -0
  4. package/dist/{checker-N5TIJEN5.js → checker-3LHDOATB.js} +1 -1
  5. package/dist/chunk-2IBMB3ZM.js +150 -0
  6. package/dist/chunk-AQ3A5CF4.js +5 -0
  7. package/dist/chunk-FA26MQ7K.js +257 -0
  8. package/dist/{chunk-JGSIQXEN.js → chunk-QFSCPD63.js} +1 -1
  9. package/dist/chunk-TKADLB2Q.js +4 -0
  10. package/dist/chunk-VA64DJNN.js +4 -0
  11. package/dist/lib/{agent-XYO2MXXK.js → agent-IRY7KR5D.js} +3 -3
  12. package/dist/lib/{anthropic-TGJGAP5R.js → anthropic-CL5IK7KN.js} +3 -3
  13. package/dist/lib/{checker-AXHPKVBY.js → checker-BS4MK3O6.js} +1 -1
  14. package/dist/lib/{chunk-2IVEVG5N.js → chunk-7QPDFSQE.js} +10 -17
  15. package/dist/lib/{chunk-P4F46PEF.js → chunk-I7OPU4K2.js} +48 -8
  16. package/dist/lib/{chunk-ALJAVRRX.js → chunk-IYPTOY3Y.js} +59 -19
  17. package/dist/lib/{chunk-DV6RV5WU.js → chunk-OOSNCCI7.js} +134 -258
  18. package/dist/lib/{chunk-FBSPZQGC.js → chunk-OQIQOU5S.js} +132 -73
  19. package/dist/lib/{chunk-IB5IQK2S.js → chunk-PIL7M52F.js} +2 -11
  20. package/dist/lib/{chunk-DJ6AILPN.js → chunk-RMB3J46W.js} +13 -16
  21. package/dist/lib/index.d.ts +387 -112
  22. package/dist/lib/index.js +1000 -1157
  23. package/dist/lib/{openai-5UCIIDPO.js → openai-LH4E7ZQS.js} +2 -2
  24. package/dist/lib/{tool-filter-R6HDDJHE.js → tool-filter-CS6W2GMU.js} +1 -1
  25. package/dist/main.js +186 -178
  26. package/dist/{openai-YLS2LUAI.js → openai-RZLCY55V.js} +15 -15
  27. package/dist/{server-GX72MJQF.js → server-IVIRQTO7.js} +17 -17
  28. package/dist/{tool-filter-VBP6WOGO.js → tool-filter-CG3KGQQW.js} +1 -1
  29. package/package.json +5 -4
  30. package/dist/anthropic-BJ5GN2VT.js +0 -4
  31. package/dist/chunk-D34FUVGU.js +0 -4
  32. package/dist/chunk-LZBOXJX2.js +0 -301
  33. package/dist/chunk-R63ASIIW.js +0 -407
  34. package/dist/chunk-WX3B64R4.js +0 -4
  35. package/dist/chunk-Y6SQB5FG.js +0 -4
  36. package/dist/glob.wasm +0 -0
  37. package/dist/lib/glob.wasm +0 -0
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire as __swiftyCreateRequire } from "node:module";
3
- const require = __swiftyCreateRequire(import.meta.url);
4
- import{D as n,I as S,b as g,c as _,d as b}from"./chunk-OTVZGPHD.js";import{existsSync as D,readFileSync as $}from"fs";import{homedir as L}from"os";import{join as h}from"path";function m(e){return!!e._zod}function l(e,o){return m(e)?g(e,o):e.safeParse(o)}async function pe(e,o){return m(e)?await _(e,o):await e.safeParseAsync(o)}function ue(e){if(!e)return;let o;if(m(e)?o=e._zod?.def?.shape:o=e.shape,!!o){if(typeof o=="function")try{return o()}catch{return}return o}}function de(e){if(m(e)){let i=e._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let t=e._def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}let r=e.value;if(r!==void 0)return r}var w=S({module:"config"}),j={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY","openai-compat":"OPENAI_API_KEY"};function V(e){return y.has(e)}var y=new Set(Object.keys(j)),p=class extends Error{constructor(o){super(o),this.name="ConfigError"}},T=n.object({name:n.string(),protocol:n.enum(["anthropic","openai","openai-compat"]),base_url:n.string(),model:n.string(),api_key:n.string().optional(),thinking:n.boolean().optional(),context_window:n.coerce.number().optional(),max_output_tokens:n.coerce.number().optional()}),K=!0,k=1e6,P=128e3;function A(e){return{...e,thinking:e.thinking??K,context_window:Y(e),max_output_tokens:F(e)}}function Y(e){return Number.isSafeInteger(e.context_window)&&(e.context_window??0)>0?e.context_window??k:k}function F(e){return Number.isSafeInteger(e.max_output_tokens)&&(e.max_output_tokens??0)>0?e.max_output_tokens??P:P}function Se(e){if(e.api_key)return e.api_key;let o=V(e.protocol)?j[e.protocol]:"";return o?process.env[o]??"":""}var O=n.object({name:n.string(),command:n.string().optional(),args:n.array(n.string()).optional(),url:n.string().optional(),transport:n.string().optional(),headers:n.record(n.string(),n.string()).optional(),env:n.record(n.string(),n.string()).optional()}),M=n.object({id:n.string().optional(),event:n.string(),condition:n.string().optional(),action:n.object({type:n.string(),command:n.string().optional(),url:n.string().optional(),method:n.string().optional(),prompt:n.string().optional()}),reject:n.boolean().optional(),once:n.boolean().optional(),async:n.boolean().optional(),on_error:n.string().optional()}),z=n.object({enabled:n.boolean().optional(),auto_allow:n.boolean().optional(),network_enabled:n.boolean().optional()}),H=n.looseObject({providers:n.array(T),permission_mode:n.string().optional(),mcp_servers:n.array(O).default([]),hooks:n.array(M).default([]),sandbox:z.optional(),enable_coordinator_mode:n.boolean().optional(),enable_fork:n.boolean().optional()});function we(e){return e.enable_fork!==!1}function B(e){return typeof e=="object"&&e!==null}function C(e){let o=$(e,"utf-8"),t=b.load(o);if(!B(t))return w.error({path:e},"invalid yaml"),{providers:[],mcp_servers:[],hooks:[]};let r=l(H,t);if(r.success){let f=r.data;return{...f,providers:f.providers.map(A)}}w.error({error:r.error},"config error");let a=[],i,c=[],s=[],d,v=!1,x=!0;if("providers"in t){let f=l(n.array(T),t.providers);f.success&&(a=f.data.map(A))}if("permission_mode"in t&&typeof t.permission_mode=="string"&&(i=t.permission_mode),"mcp_servers"in t){let f=l(n.array(O),t.mcp_servers);f.success&&(c=f.data)}if("hooks"in t){let f=l(n.array(M),t.hooks);f.success&&(s=f.data)}if("sandbox"in t){let f=l(z,t.sandbox);f.success&&(d=f.data)}return"enable_coordinator_mode"in t&&(v=!!t.enable_coordinator_mode),"enable_fork"in t&&(x=!!t.enable_fork),{providers:a,permission_mode:i,mcp_servers:c,hooks:s,sandbox:d,enable_coordinator_mode:v,enable_fork:x}}function W(e,o){if(o.providers.length>0&&(e.providers=o.providers),o.permission_mode&&(e.permission_mode=o.permission_mode),o.mcp_servers.length>0){let t=new Map;for(let r=0;r<e.mcp_servers.length;r++){let a=e.mcp_servers[r];t.set(a.name,r)}for(let r of o.mcp_servers){let a=t.get(r.name);a!==void 0?e.mcp_servers[a]=r:(e.mcp_servers.push(r),t.set(r.name,e.mcp_servers.length-1))}}return e.hooks=[...e.hooks,...o.hooks],o.sandbox&&(e.sandbox={...e.sandbox,...o.sandbox}),o.enable_coordinator_mode&&(e.enable_coordinator_mode=!0),o.enable_fork!==void 0&&(e.enable_fork=o.enable_fork),e}function E(e){if(e.providers.length===0)throw new p("At least one provider MUST be configured.");let o=["name","protocol","base_url","model"];for(let t=0;t<e.providers.length;t++){let r=e.providers[t],a={name:r.name,protocol:r.protocol,base_url:r.base_url,model:r.model},i=o.filter(c=>!a[c].trim());if(i.length>0)throw new p(`Provider #${String(t+1)}: missing fields: ${i.join(", ")}`);if(!y.has(r.protocol))throw new p(`Provider #${String(t+1)}: invalid protocol '${r.protocol}', MUST be one of: ${Array.from(y).join(", ")}`)}}function ke(e,o={}){if(e){let c=C(e);return(!o.allowEmptyProviders||c.providers.length>0)&&E(c),c}let t=process.cwd(),r=L(),a=[h(r,".swifty","config.yaml"),h(t,".swifty","config.yaml"),h(t,".swifty","config.local.yaml")],i=null;for(let c of a){if(!D(c))continue;let s=C(c);i?i=W(i,s):i=s}if(!i){if(o.allowEmptyProviders)return{providers:[],mcp_servers:[],hooks:[]};throw new p("No config file found, expected .swifty/config.y(a)ml under project or $HOME/.swifty/config.y(a)ml.")}return(!o.allowEmptyProviders||i.providers.length>0)&&E(i),i}var u=class extends Error{constructor(o){super(o),this.name="LLMError"}},I=class extends u{constructor(o){super(o),this.name="AuthenticationError"}},R=class extends u{retryAfter;constructor(o,t){super(o),this.name="RateLimitError",this.retryAfter=t}},N=class extends u{constructor(o){super(o),this.name="NetworkError"}},U=class extends u{constructor(o){super(o),this.name="ContextTooLongError"}};var Z="Tool execution was interrupted. The tool may or may not have completed; verify before relying on its effects.",Ce="The user rejected this tool use. Nothing was changed (for file edits, the new content was NOT written).";function Ee(e){let o=[];for(let t=0;t<e.length;t++){let r=e[t];if(r.role==="assistant"&&r.toolUses?.length){o.push(r);let a=new Set(r.toolUses.map(s=>s.toolUseId)),i=[],c=[];for(;t+1<e.length;){let s=e[t+1];if(s.role!=="user"||!s.toolResults?.length||s.toolUses?.length)break;t++,c.push(s);for(let d of s.toolResults)a.delete(d.toolUseId)&&i.push(d)}for(let s of a)i.push({toolUseId:s,content:Z,isError:!0});o.push({...c[0]??{role:"user",content:""},toolResults:i});for(let s of c.slice(1))(s.content.length>0||s.thinkingBlocks?.length)&&o.push({...s,toolResults:[]});continue}if((r.toolResults?.length??0)>0){if(r.content.length===0&&!r.toolUses?.length&&!r.thinkingBlocks?.length)continue;o.push({...r,toolResults:[]})}else o.push(r)}return o}export{l as a,pe as b,ue as c,de as d,T as e,K as f,k as g,P as h,Y as i,F as j,Se as k,we as l,ke as m,u as n,I as o,R as p,N as q,U as r,Ce as s,Ee as t};
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire as __swiftyCreateRequire } from "node:module";
3
- const require = __swiftyCreateRequire(import.meta.url);
4
- import{a as T,b as f}from"./chunk-E55KH72M.js";var c=class{tools=new Map;discovered=new Set;mcpLoadingMode="eager";exposeToolSearch=!1;exposeMcpCall=!1;register(e){this.tools.set(e.name,e)}get(e){return this.tools.get(e)}listTools(){return[...this.tools.values()]}getAllSchemas(e="anthropic"){let o=e==="openai"||e==="openai-compat",t=this.mcpLoadingMode==="native"&&!o,n=[];for(let s of this.tools.values()){if(s.name===T&&!this.exposeToolSearch||s.name===f&&!this.exposeMcpCall)continue;let a=!!s.deferred&&!this.discovered.has(s.name);if(a&&!t)continue;let r=s.schema();o?n.push({strict:!1,type:"function",name:r.name,description:r.description,parameters:r.input_schema,function:{name:r.name,description:r.description,parameters:r.input_schema}}):n.push(a?{...r,type:"custom",defer_loading:!0}:{...r,type:"custom"})}return n}getDeferredToolNames(){let e=[];for(let o of this.tools.values())o.deferred&&!this.discovered.has(o.name)&&e.push(o.name);return e.sort()}getDeferredTools(){return[...this.tools.values()].filter(e=>e.deferred&&!this.discovered.has(e.name))}searchDeferred(e,o=5){let t=e.toLowerCase(),n=[];for(let s of this.tools.values())if(!(!s.deferred||this.discovered.has(s.name))&&(s.name.toLowerCase().includes(t)||s.description.toLowerCase().includes(t))&&(n.push(s),n.length>=o))break;return n}findDeferredByNames(e){let o=new Map;for(let[t,n]of this.tools)o.set(t.toLowerCase(),n);return e.map(t=>o.get(t.toLowerCase())).filter(t=>t?.deferred??!1)}markDiscovered(e){this.discovered.add(e)}isDiscovered(e){return this.discovered.has(e)}};var h=new Set(["ExitPlanMode","Agent","AskUserQuestion","TaskStop"]),M=new Set(["TeamCreate","TeamDelete"]),m=new Set(["ExitPlanMode","Agent","AskUserQuestion","TaskStop"]),u=new Set(["ReadFile","Grep","Glob","Bash","PowerShell","EditFile","WriteFile","LoadSkill","SyntheticOutput","ToolSearch","EnterWorktree","ExitWorktree","McpCall"]);function g(i){return i.startsWith("mcp__")}function w(i,e,o,t,n=!1){let s=new Set(o??[]),a=new Set(e??[]),r=a.size>0&&!(a.size===1&&a.has("*")),p=new c;p.mcpLoadingMode=i.mcpLoadingMode;for(let d of i.listTools()){let l=d.name;if(g(l)){!s.has(l)&&(!r||a.has(l))&&p.register(d);continue}h.has(l)||n&&m.has(l)||t&&!u.has(l)||s.has(l)||r&&!a.has(l)||p.register(d)}return p}var A="agent:builtin:fork";function k(i){let e=new c;e.mcpLoadingMode=i.mcpLoadingMode;for(let o of i.listTools())if(o.name==="Agent"&&"querySource"in o){let t=Object.create(Object.getPrototypeOf(o),Object.getOwnPropertyDescriptors(o));t.querySource=A,e.register(t)}else e.register(o);return e}export{c as a,h as b,M as c,m as d,u as e,w as f,A as g,k as h};
package/dist/glob.wasm DELETED
Binary file
Binary file