@swifty.js/swifty 0.0.25 → 0.0.26

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.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __swiftyCreateRequire } from "node:module";
3
3
  const require = __swiftyCreateRequire(import.meta.url);
4
- import{A as fi,G as bi,H as ue,I as me,J as gi,K as de,L as xe,M as hi,N as yi,O as ve,P as fe,Q as be,R as wi,T as ki,V as ji,W as Ei,X as qi,Y as Je,Z as Ke,_ as Si,a as We,aa as Ti,ba as Ci,ca as zi,d as xt,da as _i,ea as Pi,fa as Ai,ga as Ri,ha as Mi,i as ri,ia as Oi,j as Ze,ja as Li,k as Ye,ka as Fi,la as Ui,ma as Ni,na as Di,p as ci,r as pi,t as li,u as ui,v as mi,w as di,x as Ve,y as xi,z as vi}from"./chunk-EMNNDZ4Z.js";import{a as $e,b as Za}from"./chunk-XBHVVB5A.js";import{c as Ja}from"./chunk-5KXBVL2A.js";import{a as oi,b as ti,i as V}from"./chunk-VQUWSKQQ.js";import{a as O,e as Ka,f as Qa,g as ce,h as Be,i as ei,j as ai,k as pe,o as ii}from"./chunk-MWZIARZE.js";import{e as Xe,f as ni,g as si}from"./chunk-W37Y53LX.js";import"./chunk-FZPTNGTU.js";import{f as J}from"./chunk-NR62AA5K.js";import{b as Ya,e as Va}from"./chunk-QN27QEFS.js";import"./chunk-7MHXMDYC.js";import{D as q,I as re,J as H,R as Ge}from"./chunk-SIWLMWHH.js";import{a as le}from"./chunk-A2VR3BC4.js";import"./chunk-E55KH72M.js";import{a as x,b as l,d as dt}from"./chunk-X3UA5OZL.js";var Hi=l((Fl,Ii)=>{"use strict";Ii.exports=vt;function vt(e,a){if(!Array.isArray(e))throw new TypeError("arg must be an array of [ee, events...] arrays");for(var i=[],n=0;n<e.length;n++){var s=e[n];if(!Array.isArray(s)||s.length<2)throw new TypeError("each array member must be [ee, events...]");for(var o=s[0],t=1;t<s.length;t++){var r=s[t],c=ft(r,p);o.on(r,c),i.push({ee:o,event:r,fn:c})}}function p(){m(),a.apply(null,arguments)}function m(){for(var d,f=0;f<i.length;f++)d=i[f],d.ee.removeListener(d.event,d.fn)}function u(d){a=d}return u.cancel=m,u}function ft(e,a){return function(n){for(var s=new Array(arguments.length),o=this,t=e==="error"?n:null,r=0;r<s.length;r++)s[r]=arguments[r];a(t,o,e,s)}}});var ea=l((Ul,Qe)=>{"use strict";Qe.exports=gt;Qe.exports.isFinished=Bi;var $i=jt(),Gi=Hi(),bt=typeof setImmediate=="function"?setImmediate:function(e){process.nextTick(e.bind.apply(e,arguments))};function gt(e,a){return Bi(e)!==!1?(bt(a,null,e),e):(yt(e,Et(a)),e)}function Bi(e){var a=e.socket;if(typeof e.finished=="boolean")return!!(e.finished||a&&!a.writable);if(typeof e.complete=="boolean")return!!(e.upgrade||!a||!a.readable||e.complete&&!e.readable)}function ht(e,a){var i,n,s=!1;function o(r){i.cancel(),n.cancel(),s=!0,a(r)}i=n=Gi([[e,"end","finish"]],o);function t(r){e.removeListener("socket",t),!s&&i===n&&(n=Gi([[r,"error","close"]],o))}if(e.socket){t(e.socket);return}e.on("socket",t),e.socket===void 0&&kt(e,t)}function yt(e,a){var i=e.__onFinished;(!i||!i.queue)&&(i=e.__onFinished=wt(e),ht(e,i)),i.queue.push(a)}function wt(e){function a(i){if(e.__onFinished===a&&(e.__onFinished=null),!!a.queue){var n=a.queue;a.queue=null;for(var s=0;s<n.length;s++)n[s](i,e)}}return a.queue=[],a}function kt(e,a){var i=e.assignSocket;typeof i=="function"&&(e.assignSocket=function(s){i.call(this,s),a(s)})}function jt(){try{return x("async_hooks")}catch{return{}}}function Et(e){var a;return $i.AsyncResource&&(a=new $i.AsyncResource(e.name||"bound-anonymous-fn")),!a||!a.runInAsyncScope?e:a.runInAsyncScope.bind(a,e,null)}});var Wi=l((Nl,Xi)=>{"use strict";Xi.exports=qt;function qt(e){if(!Array.isArray(e))throw new TypeError("Middleware stack must be an array!");for(let a of e)if(typeof a!="function")throw new TypeError("Middleware must be composed of functions!");return function(a,i){let n=-1;return s(0);function s(o){if(o<=n)return Promise.reject(new Error("next() called multiple times"));n=o;let t=e[o];if(o===e.length&&(t=i),!t)return Promise.resolve();try{return Promise.resolve(t(a,s.bind(null,o+1)))}catch(r){return Promise.reject(r)}}}}});var Zi=l((Dl,St)=>{St.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}});var K=l((Il,Vi)=>{"use strict";var aa=Zi();Vi.exports=_;_.message=aa;_.code=Tt(aa);_.codes=Ct(aa);_.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};_.empty={204:!0,205:!0,304:!0};_.retry={502:!0,503:!0,504:!0};function Tt(e){var a={};return Object.keys(e).forEach(function(n){var s=e[n],o=Number(n);a[s.toLowerCase()]=o}),a}function Ct(e){return Object.keys(e).map(function(i){return Number(i)})}function zt(e){var a=e.toLowerCase();if(!Object.prototype.hasOwnProperty.call(_.code,a))throw new Error('invalid status message: "'+e+'"');return _.code[a]}function Yi(e){if(!Object.prototype.hasOwnProperty.call(_.message,e))throw new Error("invalid status code: "+e);return _.message[e]}function _(e){if(typeof e=="number")return Yi(e);if(typeof e!="string")throw new TypeError("code must be a number or string");var a=parseInt(e,10);return isNaN(a)?zt(e):Yi(a)}});var na=l((Hl,en)=>{"use strict";var _t=x("path").relative;en.exports=Ot;var Pt=process.cwd();function Ki(e,a){for(var i=e.split(/[ ,]+/),n=String(a).toLowerCase(),s=0;s<i.length;s++){var o=i[s];if(o&&(o==="*"||o.toLowerCase()===n))return!0}return!1}function At(e,a,i){var n=Object.getOwnPropertyDescriptor(e,a),s=n.value;return n.get=function(){return s},n.writable&&(n.set=function(t){return s=t}),delete n.value,delete n.writable,Object.defineProperty(e,a,n),n}function Rt(e){for(var a="",i=0;i<e;i++)a+=", arg"+i;return a.substr(2)}function Mt(e){var a=this.name+": "+this.namespace;this.message&&(a+=" deprecated "+this.message);for(var i=0;i<e.length;i++)a+=`
4
+ import{A as fi,G as bi,H as ue,I as me,J as gi,K as de,L as xe,M as hi,N as yi,O as ve,P as fe,Q as be,R as wi,T as ki,V as ji,W as Ei,X as qi,Y as Je,Z as Ke,_ as Si,a as We,aa as Ti,ba as Ci,ca as zi,d as xt,da as _i,ea as Pi,fa as Ai,ga as Ri,ha as Mi,i as ri,ia as Oi,j as Ze,ja as Li,k as Ye,ka as Fi,la as Ui,ma as Ni,na as Di,p as ci,r as pi,t as li,u as ui,v as mi,w as di,x as Ve,y as xi,z as vi}from"./chunk-RMMK4PO5.js";import{a as $e,b as Za}from"./chunk-XBHVVB5A.js";import{c as Ja}from"./chunk-5KXBVL2A.js";import{a as oi,b as ti,i as V}from"./chunk-VC6OXOMP.js";import{a as O,e as Ka,f as Qa,g as ce,h as Be,i as ei,j as ai,k as pe,o as ii}from"./chunk-MWZIARZE.js";import{e as Xe,f as ni,g as si}from"./chunk-W37Y53LX.js";import"./chunk-FZPTNGTU.js";import{f as J}from"./chunk-NR62AA5K.js";import{b as Ya,e as Va}from"./chunk-QN27QEFS.js";import"./chunk-7MHXMDYC.js";import{D as q,I as re,J as H,R as Ge}from"./chunk-SIWLMWHH.js";import{a as le}from"./chunk-A2VR3BC4.js";import"./chunk-E55KH72M.js";import{a as x,b as l,d as dt}from"./chunk-X3UA5OZL.js";var Hi=l((Fl,Ii)=>{"use strict";Ii.exports=vt;function vt(e,a){if(!Array.isArray(e))throw new TypeError("arg must be an array of [ee, events...] arrays");for(var i=[],n=0;n<e.length;n++){var s=e[n];if(!Array.isArray(s)||s.length<2)throw new TypeError("each array member must be [ee, events...]");for(var o=s[0],t=1;t<s.length;t++){var r=s[t],c=ft(r,p);o.on(r,c),i.push({ee:o,event:r,fn:c})}}function p(){m(),a.apply(null,arguments)}function m(){for(var d,f=0;f<i.length;f++)d=i[f],d.ee.removeListener(d.event,d.fn)}function u(d){a=d}return u.cancel=m,u}function ft(e,a){return function(n){for(var s=new Array(arguments.length),o=this,t=e==="error"?n:null,r=0;r<s.length;r++)s[r]=arguments[r];a(t,o,e,s)}}});var ea=l((Ul,Qe)=>{"use strict";Qe.exports=gt;Qe.exports.isFinished=Bi;var $i=jt(),Gi=Hi(),bt=typeof setImmediate=="function"?setImmediate:function(e){process.nextTick(e.bind.apply(e,arguments))};function gt(e,a){return Bi(e)!==!1?(bt(a,null,e),e):(yt(e,Et(a)),e)}function Bi(e){var a=e.socket;if(typeof e.finished=="boolean")return!!(e.finished||a&&!a.writable);if(typeof e.complete=="boolean")return!!(e.upgrade||!a||!a.readable||e.complete&&!e.readable)}function ht(e,a){var i,n,s=!1;function o(r){i.cancel(),n.cancel(),s=!0,a(r)}i=n=Gi([[e,"end","finish"]],o);function t(r){e.removeListener("socket",t),!s&&i===n&&(n=Gi([[r,"error","close"]],o))}if(e.socket){t(e.socket);return}e.on("socket",t),e.socket===void 0&&kt(e,t)}function yt(e,a){var i=e.__onFinished;(!i||!i.queue)&&(i=e.__onFinished=wt(e),ht(e,i)),i.queue.push(a)}function wt(e){function a(i){if(e.__onFinished===a&&(e.__onFinished=null),!!a.queue){var n=a.queue;a.queue=null;for(var s=0;s<n.length;s++)n[s](i,e)}}return a.queue=[],a}function kt(e,a){var i=e.assignSocket;typeof i=="function"&&(e.assignSocket=function(s){i.call(this,s),a(s)})}function jt(){try{return x("async_hooks")}catch{return{}}}function Et(e){var a;return $i.AsyncResource&&(a=new $i.AsyncResource(e.name||"bound-anonymous-fn")),!a||!a.runInAsyncScope?e:a.runInAsyncScope.bind(a,e,null)}});var Wi=l((Nl,Xi)=>{"use strict";Xi.exports=qt;function qt(e){if(!Array.isArray(e))throw new TypeError("Middleware stack must be an array!");for(let a of e)if(typeof a!="function")throw new TypeError("Middleware must be composed of functions!");return function(a,i){let n=-1;return s(0);function s(o){if(o<=n)return Promise.reject(new Error("next() called multiple times"));n=o;let t=e[o];if(o===e.length&&(t=i),!t)return Promise.resolve();try{return Promise.resolve(t(a,s.bind(null,o+1)))}catch(r){return Promise.reject(r)}}}}});var Zi=l((Dl,St)=>{St.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}});var K=l((Il,Vi)=>{"use strict";var aa=Zi();Vi.exports=_;_.message=aa;_.code=Tt(aa);_.codes=Ct(aa);_.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};_.empty={204:!0,205:!0,304:!0};_.retry={502:!0,503:!0,504:!0};function Tt(e){var a={};return Object.keys(e).forEach(function(n){var s=e[n],o=Number(n);a[s.toLowerCase()]=o}),a}function Ct(e){return Object.keys(e).map(function(i){return Number(i)})}function zt(e){var a=e.toLowerCase();if(!Object.prototype.hasOwnProperty.call(_.code,a))throw new Error('invalid status message: "'+e+'"');return _.code[a]}function Yi(e){if(!Object.prototype.hasOwnProperty.call(_.message,e))throw new Error("invalid status code: "+e);return _.message[e]}function _(e){if(typeof e=="number")return Yi(e);if(typeof e!="string")throw new TypeError("code must be a number or string");var a=parseInt(e,10);return isNaN(a)?zt(e):Yi(a)}});var na=l((Hl,en)=>{"use strict";var _t=x("path").relative;en.exports=Ot;var Pt=process.cwd();function Ki(e,a){for(var i=e.split(/[ ,]+/),n=String(a).toLowerCase(),s=0;s<i.length;s++){var o=i[s];if(o&&(o==="*"||o.toLowerCase()===n))return!0}return!1}function At(e,a,i){var n=Object.getOwnPropertyDescriptor(e,a),s=n.value;return n.get=function(){return s},n.writable&&(n.set=function(t){return s=t}),delete n.value,delete n.writable,Object.defineProperty(e,a,n),n}function Rt(e){for(var a="",i=0;i<e;i++)a+=", arg"+i;return a.substr(2)}function Mt(e){var a=this.name+": "+this.namespace;this.message&&(a+=" deprecated "+this.message);for(var i=0;i<e.length;i++)a+=`
5
5
  at `+e[i].toString();return a}function Ot(e){if(!e)throw new TypeError("argument namespace is required");var a=he(),i=$(a[1]),n=i[0];function s(o){ge.call(s,o)}return s._file=n,s._ignored=Ft(e),s._namespace=e,s._traced=Ut(e),s._warned=Object.create(null),s.function=Ht,s.property=$t,s}function Lt(e,a){var i=typeof e.listenerCount!="function"?e.listeners(a).length:e.listenerCount(a);return i>0}function Ft(e){if(process.noDeprecation)return!0;var a=process.env.NO_DEPRECATION||"";return Ki(a,e)}function Ut(e){if(process.traceDeprecation)return!0;var a=process.env.TRACE_DEPRECATION||"";return Ki(a,e)}function ge(e,a){var i=Lt(process,"deprecation");if(!(!i&&this._ignored)){var n,s,o,t,r=0,c=!1,p=he(),m=this._file;for(a?(t=a,o=$(p[1]),o.name=t.name,m=o[0]):(r=2,t=$(p[r]),o=t);r<p.length;r++)if(n=$(p[r]),s=n[0],s===m)c=!0;else if(s===this._file)m=this._file;else if(c)break;var u=n?t.join(":")+"__"+n.join(":"):void 0;if(!(u!==void 0&&u in this._warned)){this._warned[u]=!0;var d=e;if(d||(d=o===t||!o.name?Ji(t):Ji(o)),i){var f=Qi(this._namespace,d,p.slice(r));process.emit("deprecation",f);return}var g=process.stderr.isTTY?Dt:Nt,T=g.call(this,d,n,p.slice(r));process.stderr.write(T+`
6
6
  `,"utf8")}}}function $(e){var a=e.getFileName()||"<anonymous>",i=e.getLineNumber(),n=e.getColumnNumber();e.isEval()&&(a=e.getEvalOrigin()+", "+a);var s=[a,i,n];return s.callSite=e,s.name=e.getFunctionName(),s}function Ji(e){var a=e.callSite,i=e.name;i||(i="<anonymous@"+ia(e)+">");var n=a.getThis(),s=n&&a.getTypeName();return s==="Object"&&(s=void 0),s==="Function"&&(s=n.name||s),s&&a.getMethodName()?s+"."+i:i}function Nt(e,a,i){var n=new Date().toUTCString(),s=n+" "+this._namespace+" deprecated "+e;if(this._traced){for(var o=0;o<i.length;o++)s+=`
7
7
  at `+i[o].toString();return s}return a&&(s+=" at "+ia(a)),s}function Dt(e,a,i){var n="\x1B[36;1m"+this._namespace+"\x1B[22;39m \x1B[33;1mdeprecated\x1B[22;39m \x1B[0m"+e+"\x1B[39m";if(this._traced){for(var s=0;s<i.length;s++)n+=`
@@ -21,7 +21,7 @@ ${n.replace(/^/gm," ")}
21
21
  `)}static get default(){return Xo}};function tl(e){if(e.respond===!1)return;let a=e.res;if(!e.writable)return a.end();let i=e.body,n=e.status;if(Qp.empty[n])return e.body=null,a.end();if(e.method==="HEAD"){if(!a.headersSent&&!e.response.has("Content-Length")){let{length:o}=e.response;Number.isInteger(o)&&(e.length=o)}return a.end()}if(i==null)return e.response._explicitNullBody?(e.response.remove("Content-Type"),e.response.remove("Transfer-Encoding"),e.length=0,a.end()):(e.req.httpVersionMajor>=2?i=String(n):i=e.message||String(n),a.headersSent||(e.type="text",e.length=Buffer.byteLength(i)),a.end(i));if(Buffer.isBuffer(i)||typeof i=="string")return a.end(i);let s=null;if(i instanceof Blob?s=Fe.Readable.from(i.stream()):i instanceof ReadableStream?s=Fe.Readable.from(i):i instanceof Response?s=Fe.Readable.from(i?.body||""):sl(i)&&(s=i),s)return Fe.pipeline(s,a,o=>{o&&e.app.listenerCount("error")&&e.onerror(o)});i=JSON.stringify(i),a.headersSent||(e.length=Buffer.byteLength(i)),a.end(i)}La.exports.HttpError=el});import{readFileSync as El,existsSync as ql,statSync as Sl}from"fs";import{createServer as Tl}from"http";import{join as tt,extname as Cl,normalize as zl}from"path";import{cwd as ie}from"process";var Fa=dt(Wo(),1),Zo=Fa.default,Lu=Fa.default.HttpError;import{existsSync as Ua,statSync as Ko,readFileSync as Yo,writeFileSync as Qo,mkdirSync as rl,unlinkSync as cl,utimesSync as pl}from"fs";import{homedir as Vo}from"os";import{join as ae,basename as Jo}from"path";var et=re({module:"memory"}),ll=24,ul=5,ml=600*1e3,dl=".consolidate-lock",xl=3600*1e3,vl=200,Ne=class{client;workDir;lastScanAt=0;minHours;minSessions;appendSystem;constructor(a,i,n){this.client=a,this.workDir=i,this.minHours=n?.minHours??ll,this.minSessions=n?.minSessions??ul,this.appendSystem=n?.appendSystem}maybeRun(){let a=ae(this.workDir,".swifty","memory");if(!Ua(a))return Promise.resolve();let i=fl(a);if((Date.now()-i)/36e5<this.minHours)return Promise.resolve();let s=Date.now();if(s-this.lastScanAt<ml)return Promise.resolve();this.lastScanAt=s;let o=yl(this.workDir,i);if(o.length<this.minSessions)return Promise.resolve();let t=bl(a);return t===null||this.run(a,o,t).catch(()=>{gl(a,t)}),Promise.resolve()}async run(a,i,n){let s=ae(Vo(),".swifty","memory"),o=ae(this.workDir,".swifty","sessions"),t=wl(a,s,o,i),r=new le;r.register(new xe),r.register(new be),r.register(new me),r.register(new ve),r.register(new fe),r.register(new ue),r.register(new de);let c=new J(this.workDir,"bypassPermissions");c.allowExtraRoot(ae(Vo(),".swifty","memory"));let p=new O;p.addUserMessage(t);let m=new V({client:this.client,registry:r,checker:c,conversation:p,workDir:this.workDir,maxIterations:15});for await(let f of m.run());let d=kl(p.getMessages()).filter(f=>Jo(f)!=="MEMORY.md");if(d.length>0&&this.appendSystem){let f=d.map(g=>Jo(g));this.appendSystem(`Memory improved: ${f.join(", ")}`)}}};function Na(e){return ae(e,dl)}function fl(e){let a=Na(e);if(!Ua(a))return 0;try{return Ko(a).mtimeMs}catch{return 0}}function bl(e){let a=Na(e),i,n;if(Ua(a))try{i=Ko(a).mtimeMs;let s=Yo(a,"utf-8").trim(),o=parseInt(s,10);Number.isFinite(o)&&(n=o)}catch(s){et.error({err:s},"failed to read consolidation lock file")}if(i!==void 0&&Date.now()-i<xl&&n!==void 0&&hl(n))return null;rl(e,{recursive:!0}),Qo(a,String(process.pid));try{let s=Yo(a,"utf-8").trim();if(parseInt(s,10)!==process.pid)return null}catch{return null}return i??0}function gl(e,a){let i=Na(e);try{if(a===0){cl(i);return}Qo(i,"");let n=a/1e3;pl(i,n,n)}catch(n){et.error({err:n},"failed to rollback consolidation lock")}}function hl(e){try{return process.kill(e,0),!0}catch{return!1}}function yl(e,a){let i=pe(e),n=new Date(a);return i.filter(s=>s.modTime>n).map(s=>s.id)}function wl(e,a,i,n){let s=["# Dream: Memory Consolidation","","You are performing a dream \u2014 a reflective pass over your memory files. Synthesize what you've learned recently into durable, well-organized memories so that future sessions can orient quickly.","",`Project memory directory: \`${e}\``,`User memory directory: \`${a}\``,"The memory directory already exists \u2014 write to it directly.","",`Session transcripts: \`${i}\` (large JSONL files \u2014 grep narrowly, don't read whole files)`,"","---","","## Phase 1 \u2014 Orient","","- `ls` the memory directory to see what already exists","- Read `MEMORY.md` to understand the current index","- Skim existing topic files so you improve them rather than creating duplicates","","## Phase 2 \u2014 Gather recent signal","","Look for new information worth persisting:","","1. **Existing memories that drifted** \u2014 facts that contradict something you see in the codebase now","2. **Transcript search** \u2014 if you need specific context, grep the JSONL transcripts for narrow terms","","Don't exhaustively read transcripts. Look only for things you already suspect matter.","","## Phase 3 \u2014 Consolidate","","For each thing worth remembering, write or update a memory file. Each memory file uses YAML frontmatter with name, description, and metadata.type fields, followed by a Markdown body.","","Focus on:","- Merging new signal into existing topic files rather than creating near-duplicates",'- Converting relative dates ("yesterday", "last week") to absolute dates so they remain interpretable after time passes',"- Deleting contradicted facts \u2014 if today's investigation disproves an old memory, fix it at the source","","## Phase 4 \u2014 Prune and index","",`Update \`MEMORY.md\` so it stays under ${String(vl)} lines AND under ~25KB. It's an **index**, not a dump \u2014 each entry should be one line under ~150 characters: \`- [Title](file.md) \u2014 one-line hook\`. Never write memory content directly into it.`,"","- Remove pointers to memories that are now stale, wrong, or superseded","- Demote verbose entries: if an index line is over ~200 chars, it's carrying content that belongs in the topic file \u2014 shorten the line, move the detail","- Add pointers to newly important memories","- Resolve contradictions \u2014 if two files disagree, fix the wrong one","","---","","**Tool constraints for this run:** Bash/PowerShell are restricted to read-only commands (`ls`, `find`, `grep`, `cat`, `stat`, `wc`, `head`, `tail`, and similar). Anything that writes, redirects to a file, or modifies state will be denied.",""];if(n.length>0){s.push(`Sessions since last consolidation (${String(n.length)}):`);for(let o of n)s.push(`- ${o}`)}return s.push("","Return a brief summary of what you consolidated, updated, or pruned. If nothing changed (memories are already tight), say so."),s.join(`
22
22
  `)}function kl(e){let a=[],i=new Set;for(let n of e){if(n.role!=="assistant"||typeof n.content!="string")continue;let s=n.content.matchAll(/"file_path"\s*:\s*"([^"]+)"/g);for(let o of s)o[1]&&!i.has(o[1])&&(i.add(o[1]),a.push(o[1]))}return a}function jl(e){return e.length<=800?e:`${e.slice(0,800)}\u2026 (+${String(e.length-800)} chars)`}var De=class{constructor(a){this.log=a}log;onEvent(a){switch(a.type){case"tool_result":{if(!a.isError)return;let i=a.output;this.log.warn({event:"tool_result",tool:a.toolName,toolId:a.toolId,isError:!0,elapsedMs:Math.round(a.elapsed*1e3),outputChars:i.length,output:jl(i)});return}case"retry":this.log.warn({event:"retry",reason:a.reason,delayMs:a.delay});return;case"compact":this.log.warn({event:"compact",message:a.message});return;case"error":this.log.error({event:"error",err:a.error});return;default:return}}};var P=re({module:"remote"}),_l=q.object({type:q.string(),data:q.unknown()}),Pl=q.object({content:q.string()}),Al=q.object({id:q.string(),response:q.enum(["allow","deny","allowAlways"])}),Rl=q.object({id:q.string(),answers:q.record(q.string(),q.string())}),at=tt(import.meta.dirname,"fe","dist"),Ml={".html":"text/html; charset=utf-8",".js":"application/javascript; charset=utf-8",".css":"text/css; charset=utf-8",".png":"image/png",".svg":"image/svg+xml",".ico":"image/x-icon",".json":"application/json; charset=utf-8",".woff2":"font/woff2"};function it(e){let a=zl(e).replace(/^(\.\.[/\\])+/,""),i=tt(at,a);if(!i.startsWith(at)||!ql(i)||!Sl(i).isFile())return null;let n=El(i),s=Ml[Cl(i)]??"application/octet-stream";return{body:n,mime:s}}var Da=class{client;conv;registry;sessionId;fileHistory;fileStateCache;cmdRegistry;skillCatalog;activeSkills;toolFilter;mcpManager;hookEngine;recoveryState;teamManager;enableCoordinatorMode;forkDisabled;memoryManager;contextWindow;longTermMemoryInstructions;longTermMemoryMemoryContent;mcpInstructions;provider;workDir;abortController=null;constructor(a){this.client=a.client,this.conv=a.conv,this.registry=a.registry,this.sessionId=a.sessionId,this.fileHistory=a.fileHistory,this.fileStateCache=a.fileStateCache,this.cmdRegistry=a.cmdRegistry,this.skillCatalog=a.skillCatalog,this.activeSkills=a.activeSkills,this.toolFilter=a.toolFilter,this.mcpManager=a.mcpManager,this.hookEngine=a.hookEngine,this.recoveryState=a.recoveryState,this.teamManager=a.teamManager,this.enableCoordinatorMode=a.enableCoordinatorMode,this.forkDisabled=a.forkDisabled,this.memoryManager=a.memoryManager,this.contextWindow=a.contextWindow,this.longTermMemoryInstructions=a.longTermMemoryInstructions,this.longTermMemoryMemoryContent=a.longTermMemoryMemoryContent,this.mcpInstructions=a.mcpInstructions,this.provider=a.provider,this.workDir=a.workDir,this.abortController=null}async*run(a,i){this.conv.addUserMessage(a),this.mcpInstructions&&(this.conv.addSystemReminder(this.mcpInstructions),this.mcpInstructions=""),this.abortController=new AbortController;try{let n=new J(this.workDir,"default");yield*new V({client:this.client,registry:this.registry,checker:n,conversation:this.conv,workDir:this.workDir,sessionId:this.sessionId,hookEngine:this.hookEngine??void 0,fileHistory:this.fileHistory??void 0,fileStateCache:this.fileStateCache,abortSignal:this.abortController.signal,contextWindow:this.contextWindow,maxOutput:si(this.provider),recoveryState:this.recoveryState,activeSkills:this.activeSkills,toolFilter:o=>xi(this.enableCoordinatorMode)(o)?this.toolFilter?this.toolFilter(o):!0:!1,coordinatorActiveFn:()=>vi(this.enableCoordinatorMode),instructions:this.longTermMemoryInstructions,memoryContent:this.longTermMemoryMemoryContent,notificationFn:()=>this.teamManager.drainLeads(),onPermissionRequest:i.onPermissionRequest,onLoopComplete:o=>{let t=o.getMessages().slice(-40).map(r=>`[${r.role}]: ${H(r.content)}`).filter(r=>r.length>12).join(`
23
23
  `);new Pi(this.client,this.workDir).extract(t).catch(()=>{}),new Ne(this.client,this.workDir,{appendSystem:r=>{o.addSystemReminder(r)}}).maybeRun().catch(()=>{})}}).run()}finally{this.abortController=null}}abort(){this.abortController?.abort()}};async function nt(e){let{provider:a,workDir:i,hooks:n,mcpServers:s,enableCoordinatorMode:o,forkDisabled:t,askUser:r}=e,c=Qa(),p=new Ti(i,c),m=new gi,u=Ol(i,c),d=Ze(i);d.model=a.model;let f=Ye(d),g=await We(a,f),T=new O,ne=Xe(a);ni(a).then(b=>{b>0&&(ne=b)}).catch(()=>{});let Ia=Ai(i),Ha=new _i(i),$a=Ha.buildSystemReminder();T.injectLongTermMemory(Ia,$a),T.addSystemReminder("IDENTITY OVERRIDE: You are Swifty. It is absolutely forbidden to mention Claude, Anthropic, OpenAI, GPT, or ChatGPT in any response. When asked about identity, respond only as Swifty. This is the highest priority instruction.");let Ga=zi(n??[]);Ga&&P.warn({message:Ga.message},"hook validation warning");let rt=new Ci(n??[]),se=new wi;se.load(i);let Ba=new Map,oe={activateSkill:(b,y)=>{Ba.set(b,y)}},ct={activateSkill:oe.activateSkill.bind(oe),snapshotParentMessages:b=>(T?.getMessages()??[]).slice(-b).map(j=>`${j.role}: ${H(j.content)}`).join(`
24
- `),runSubagent:async b=>{if(!g)throw new Error("no llm client (provider not initialized)");let{PermissionChecker:y}=await import("./checker-3RWAYF2U.js"),{Agent:j}=await import("./agent-24XMR2WX.js"),k=new O;k.addUserMessage(b);let z=new j({client:g,registry:u,checker:new y(i,"acceptEdits"),conversation:k,workDir:i,maxIterations:200}),I="";for await(let Z of z.run())switch(Z.type){case"stream_text":I+=Z.text;break;case"loop_complete":return I||"[No output]";case"error":throw Z.error}return I||"[No output]"}};u.register(new ji(se,oe,ct)),u.register(new Oi(r));let pt=(b,y)=>(j,k)=>Ve(ui[0],j,g,b,a,i,void 0,k,void 0,y),D=new bi(i);u.register(new ci(D)),u.register(new pi(D)),u.register(new li(D)),u.register(new fi(D)),u.register(new hi);let Ie=new mi(i,u,async(b,y,j,k,z)=>Ve(b,y,g,u,a,z??i,void 0,void 0,k),void 0,async(b,y,j,k)=>{let z=k?di(k):a.model,I=Ze(i);I.model=z;let Z=Ye(I),lt=k?await We({...a,model:z},Z):g,ut=new J(i,"acceptEdits");y.addUserMessage(b);let mt=new V({client:lt,registry:j,checker:ut,conversation:y,workDir:i,maxIterations:200}),Y="";for await(let te of mt.run())switch(te.type){case"stream_text":Y+=te.text;break;case"loop_complete":return Y||"[No output]";case"error":return Y?`${Y}
24
+ `),runSubagent:async b=>{if(!g)throw new Error("no llm client (provider not initialized)");let{PermissionChecker:y}=await import("./checker-3RWAYF2U.js"),{Agent:j}=await import("./agent-GAABBZRW.js"),k=new O;k.addUserMessage(b);let z=new j({client:g,registry:u,checker:new y(i,"acceptEdits"),conversation:k,workDir:i,maxIterations:200}),I="";for await(let Z of z.run())switch(Z.type){case"stream_text":I+=Z.text;break;case"loop_complete":return I||"[No output]";case"error":throw Z.error}return I||"[No output]"}};u.register(new ji(se,oe,ct)),u.register(new Oi(r));let pt=(b,y)=>(j,k)=>Ve(ui[0],j,g,b,a,i,void 0,k,void 0,y),D=new bi(i);u.register(new ci(D)),u.register(new pi(D)),u.register(new li(D)),u.register(new fi(D)),u.register(new hi);let Ie=new mi(i,u,async(b,y,j,k,z)=>Ve(b,y,g,u,a,z??i,void 0,void 0,k),void 0,async(b,y,j,k)=>{let z=k?di(k):a.model,I=Ze(i);I.model=z;let Z=Ye(I),lt=k?await We({...a,model:z},Z):g,ut=new J(i,"acceptEdits");y.addUserMessage(b);let mt=new V({client:lt,registry:j,checker:ut,conversation:y,workDir:i,maxIterations:200}),Y="";for await(let te of mt.run())switch(te.type){case"stream_text":Y+=te.text;break;case"loop_complete":return Y||"[No output]";case"error":return Y?`${Y}
25
25
 
26
26
  [Error: ${te.error.message}]`:`Error: ${te.error.message}`}return Y||"[No output]"});Ie.forkDisabled=t??!1,Ie.setTeamManager(D,pt),u.register(Ie);let He=Ke();for(let b of Si(i))try{He.register(b)}catch{}Ll(se,oe,He);let Xa=null,Wa="";if(s&&s.length>0){let b=new ri;Xa=b;let y=await b.connectAll(s);for(let{serverName:j,tool:k}of y.tools){let z=b.getClient(j);z&&u.register(new Ya(z,j,k))}for(let{serverName:j,error:k}of y.errors)P.error({serverName:j,error:k},"MCP server connection error");y.tools.length>0&&Ja(u,a.base_url,Xe(a)),y.instructions.length>0&&(Wa=`# MCP Server Instructions
27
27
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swifty.js/swifty",
3
- "version": "0.0.25",
3
+ "version": "0.0.26",
4
4
  "description": "Swifty — CLI coding agent",
5
5
  "keywords": [
6
6
  "agent",
@@ -87,8 +87,8 @@
87
87
  "typescript": "^5.9.3",
88
88
  "typescript-eslint": "^8.65.0",
89
89
  "vitest": "^4.1.10",
90
- "@swifty.js/glob-wasm": "0.0.1",
91
- "@swifty.js/marked-terminal": "^0.0.1"
90
+ "@swifty.js/marked-terminal": "^0.0.1",
91
+ "@swifty.js/glob-wasm": "0.0.1"
92
92
  },
93
93
  "engines": {
94
94
  "node": ">=20"