@hir4ta/mneme 0.18.0 → 0.18.2

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,4 +1,4 @@
1
- import{i as zt,r as ot,R as Di,c as On,a as En,b as $i,o as ji,m as zn,d as Rn,g as Fi}from"./index-EMvn4VEa.js";function Ui(e,n){let r=0;for(let i of e)(i=+i)&&(r+=i);return r}var In=180/Math.PI,Xe={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Pr(e,n,r,i,o,a){var s,u,f;return(s=Math.sqrt(e*e+n*n))&&(e/=s,n/=s),(f=e*r+n*i)&&(r-=e*f,i-=n*f),(u=Math.sqrt(r*r+i*i))&&(r/=u,i/=u,f/=u),e*i<n*r&&(e=-e,n=-n,f=-f,s=-s),{translateX:o,translateY:a,rotate:Math.atan2(n,e)*In,skewX:Math.atan(f)*In,scaleX:s,scaleY:u}}var fe;function Li(e){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return n.isIdentity?Xe:Pr(n.a,n.b,n.c,n.d,n.e,n.f)}function qi(e){return e==null||(fe||(fe=document.createElementNS("http://www.w3.org/2000/svg","g")),fe.setAttribute("transform",e),!(e=fe.transform.baseVal.consolidate()))?Xe:(e=e.matrix,Pr(e.a,e.b,e.c,e.d,e.e,e.f))}function Or(e,n,r,i){function o(l){return l.length?l.pop()+" ":""}function a(l,h,c,d,p,y){if(l!==c||h!==d){var m=p.push("translate(",null,n,null,r);y.push({i:m-4,x:zt(l,c)},{i:m-2,x:zt(h,d)})}else(c||d)&&p.push("translate("+c+n+d+r)}function s(l,h,c,d){l!==h?(l-h>180?h+=360:h-l>180&&(l+=360),d.push({i:c.push(o(c)+"rotate(",null,i)-2,x:zt(l,h)})):h&&c.push(o(c)+"rotate("+h+i)}function u(l,h,c,d){l!==h?d.push({i:c.push(o(c)+"skewX(",null,i)-2,x:zt(l,h)}):h&&c.push(o(c)+"skewX("+h+i)}function f(l,h,c,d,p,y){if(l!==c||h!==d){var m=p.push(o(p)+"scale(",null,",",null,")");y.push({i:m-4,x:zt(l,c)},{i:m-2,x:zt(h,d)})}else(c!==1||d!==1)&&p.push(o(p)+"scale("+c+","+d+")")}return function(l,h){var c=[],d=[];return l=e(l),h=e(h),a(l.translateX,l.translateY,h.translateX,h.translateY,c,d),s(l.rotate,h.rotate,c,d),u(l.skewX,h.skewX,c,d),f(l.scaleX,l.scaleY,h.scaleX,h.scaleY,c,d),l=h=null,function(p){for(var y=-1,m=d.length,_;++y<m;)c[(_=d[y]).i]=_.x(p);return c.join("")}}}var Hi=Or(Li,"px, ","px)","deg)"),Vi=Or(qi,", ",")",")"),Gi=1e-12;function Nn(e){return((e=Math.exp(e))+1/e)/2}function Wi(e){return((e=Math.exp(e))-1/e)/2}function Bi(e){return((e=Math.exp(2*e))-1)/(e+1)}const Xi=(function e(n,r,i){function o(a,s){var u=a[0],f=a[1],l=a[2],h=s[0],c=s[1],d=s[2],p=h-u,y=c-f,m=p*p+y*y,_,g;if(m<Gi)g=Math.log(d/l)/n,_=function(S){return[u+S*p,f+S*y,l*Math.exp(n*S*g)]};else{var w=Math.sqrt(m),C=(d*d-l*l+i*m)/(2*l*r*w),b=(d*d-l*l-i*m)/(2*d*r*w),x=Math.log(Math.sqrt(C*C+1)-C),A=Math.log(Math.sqrt(b*b+1)-b);g=(A-x)/n,_=function(S){var T=S*g,R=Nn(x),O=l/(r*w)*(R*Bi(n*T+x)-Wi(x));return[u+O*p,f+O*y,l*R/Nn(n*T+x)]}}return _.duration=g*1e3*n/Math.SQRT2,_}return o.rho=function(a){var s=Math.max(.001,+a),u=s*s,f=u*u;return e(s,u,f)},o})(Math.SQRT2,2,4);function Yi(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i,o,a,s,u=[],f=!0,l=!1;try{if(a=(r=r.call(e)).next,n===0){if(Object(r)!==r)return;f=!1}else for(;!(f=(i=a.call(r)).done)&&(u.push(i.value),u.length!==n);f=!0);}catch(h){l=!0,o=h}finally{try{if(!f&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(l)throw o}}return u}}function Zi(e,n,r){return n=io(n),n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function Dn(e,n){return Ji(e)||Yi(e,n)||Er(e,n)||no()}function Ki(e){return Qi(e)||to(e)||Er(e)||eo()}function Qi(e){if(Array.isArray(e))return Ye(e)}function Ji(e){if(Array.isArray(e))return e}function to(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Er(e,n){if(e){if(typeof e=="string")return Ye(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ye(e,n)}}function Ye(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=new Array(n);r<n;r++)i[r]=e[r];return i}function eo(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1
+ import{i as zt,r as ot,R as Di,c as On,a as En,b as $i,o as ji,m as zn,d as Rn,g as Fi}from"./index-CVJnAGLW.js";function Ui(e,n){let r=0;for(let i of e)(i=+i)&&(r+=i);return r}var In=180/Math.PI,Xe={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Pr(e,n,r,i,o,a){var s,u,f;return(s=Math.sqrt(e*e+n*n))&&(e/=s,n/=s),(f=e*r+n*i)&&(r-=e*f,i-=n*f),(u=Math.sqrt(r*r+i*i))&&(r/=u,i/=u,f/=u),e*i<n*r&&(e=-e,n=-n,f=-f,s=-s),{translateX:o,translateY:a,rotate:Math.atan2(n,e)*In,skewX:Math.atan(f)*In,scaleX:s,scaleY:u}}var fe;function Li(e){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return n.isIdentity?Xe:Pr(n.a,n.b,n.c,n.d,n.e,n.f)}function qi(e){return e==null||(fe||(fe=document.createElementNS("http://www.w3.org/2000/svg","g")),fe.setAttribute("transform",e),!(e=fe.transform.baseVal.consolidate()))?Xe:(e=e.matrix,Pr(e.a,e.b,e.c,e.d,e.e,e.f))}function Or(e,n,r,i){function o(l){return l.length?l.pop()+" ":""}function a(l,h,c,d,p,y){if(l!==c||h!==d){var m=p.push("translate(",null,n,null,r);y.push({i:m-4,x:zt(l,c)},{i:m-2,x:zt(h,d)})}else(c||d)&&p.push("translate("+c+n+d+r)}function s(l,h,c,d){l!==h?(l-h>180?h+=360:h-l>180&&(l+=360),d.push({i:c.push(o(c)+"rotate(",null,i)-2,x:zt(l,h)})):h&&c.push(o(c)+"rotate("+h+i)}function u(l,h,c,d){l!==h?d.push({i:c.push(o(c)+"skewX(",null,i)-2,x:zt(l,h)}):h&&c.push(o(c)+"skewX("+h+i)}function f(l,h,c,d,p,y){if(l!==c||h!==d){var m=p.push(o(p)+"scale(",null,",",null,")");y.push({i:m-4,x:zt(l,c)},{i:m-2,x:zt(h,d)})}else(c!==1||d!==1)&&p.push(o(p)+"scale("+c+","+d+")")}return function(l,h){var c=[],d=[];return l=e(l),h=e(h),a(l.translateX,l.translateY,h.translateX,h.translateY,c,d),s(l.rotate,h.rotate,c,d),u(l.skewX,h.skewX,c,d),f(l.scaleX,l.scaleY,h.scaleX,h.scaleY,c,d),l=h=null,function(p){for(var y=-1,m=d.length,_;++y<m;)c[(_=d[y]).i]=_.x(p);return c.join("")}}}var Hi=Or(Li,"px, ","px)","deg)"),Vi=Or(qi,", ",")",")"),Gi=1e-12;function Nn(e){return((e=Math.exp(e))+1/e)/2}function Wi(e){return((e=Math.exp(e))-1/e)/2}function Bi(e){return((e=Math.exp(2*e))-1)/(e+1)}const Xi=(function e(n,r,i){function o(a,s){var u=a[0],f=a[1],l=a[2],h=s[0],c=s[1],d=s[2],p=h-u,y=c-f,m=p*p+y*y,_,g;if(m<Gi)g=Math.log(d/l)/n,_=function(S){return[u+S*p,f+S*y,l*Math.exp(n*S*g)]};else{var w=Math.sqrt(m),C=(d*d-l*l+i*m)/(2*l*r*w),b=(d*d-l*l-i*m)/(2*d*r*w),x=Math.log(Math.sqrt(C*C+1)-C),A=Math.log(Math.sqrt(b*b+1)-b);g=(A-x)/n,_=function(S){var T=S*g,R=Nn(x),O=l/(r*w)*(R*Bi(n*T+x)-Wi(x));return[u+O*p,f+O*y,l*R/Nn(n*T+x)]}}return _.duration=g*1e3*n/Math.SQRT2,_}return o.rho=function(a){var s=Math.max(.001,+a),u=s*s,f=u*u;return e(s,u,f)},o})(Math.SQRT2,2,4);function Yi(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i,o,a,s,u=[],f=!0,l=!1;try{if(a=(r=r.call(e)).next,n===0){if(Object(r)!==r)return;f=!1}else for(;!(f=(i=a.call(r)).done)&&(u.push(i.value),u.length!==n);f=!0);}catch(h){l=!0,o=h}finally{try{if(!f&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(l)throw o}}return u}}function Zi(e,n,r){return n=io(n),n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function Dn(e,n){return Ji(e)||Yi(e,n)||Er(e,n)||no()}function Ki(e){return Qi(e)||to(e)||Er(e)||eo()}function Qi(e){if(Array.isArray(e))return Ye(e)}function Ji(e){if(Array.isArray(e))return e}function to(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Er(e,n){if(e){if(typeof e=="string")return Ye(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ye(e,n)}}function Ye(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=new Array(n);r<n;r++)i[r]=e[r];return i}function eo(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
2
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function no(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
3
3
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ro(e,n){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,n);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function io(e){var n=ro(e,"string");return typeof n=="symbol"?n:String(n)}var oo=function(n,r){var i=new Set(r);return Object.assign.apply(Object,[{}].concat(Ki(Object.entries(n).filter(function(o){var a=Dn(o,1),s=a[0];return!i.has(s)}).map(function(o){var a=Dn(o,2),s=a[0],u=a[1];return Zi({},s,u)}))))};function Ze(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r<n;r++)i[r]=e[r];return i}function ao(e){if(Array.isArray(e))return e}function so(e){if(Array.isArray(e))return Ze(e)}function uo(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function lo(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i,o,a,s,u=[],f=!0,l=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(f=(i=a.call(r)).done)&&(u.push(i.value),u.length!==n);f=!0);}catch(h){l=!0,o=h}finally{try{if(!f&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(l)throw o}}return u}}function fo(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
4
4
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function co(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
@@ -6,7 +6,7 @@
6
6
  <title>mneme - Dashboard</title>
7
7
  <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32-max.png" />
8
8
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
9
- <script type="module" crossorigin src="/assets/index-EMvn4VEa.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-CVJnAGLW.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="/assets/index-BgqCALAg.css">
11
11
  </head>
12
12
  <body>
package/dist/server.js CHANGED
@@ -3181,8 +3181,17 @@ function writeDecisionIndexForMonth(mnemeDir2, year, month, index) {
3181
3181
  }
3182
3182
  function rebuildSessionIndexForMonth(mnemeDir2, year, month) {
3183
3183
  const index = buildSessionIndexForMonth(mnemeDir2, year, month);
3184
+ const indexPath = path2.join(
3185
+ mnemeDir2,
3186
+ INDEXES_DIR,
3187
+ "sessions",
3188
+ year,
3189
+ `${month}.json`
3190
+ );
3184
3191
  if (index.items.length > 0) {
3185
3192
  writeSessionIndexForMonth(mnemeDir2, year, month, index);
3193
+ } else if (fs3.existsSync(indexPath)) {
3194
+ fs3.unlinkSync(indexPath);
3186
3195
  }
3187
3196
  return index;
3188
3197
  }
@@ -3611,7 +3620,7 @@ app.delete("/api/sessions/:id", async (c) => {
3611
3620
  if (!filePath) {
3612
3621
  return c.json({ error: "Session not found" }, 404);
3613
3622
  }
3614
- safeParseJsonFile(filePath);
3623
+ const sessionData = safeParseJsonFile(filePath);
3615
3624
  const db = openLocalDatabase(getProjectRoot());
3616
3625
  let interactionCount = 0;
3617
3626
  if (db) {
@@ -3633,6 +3642,12 @@ app.delete("/api/sessions/:id", async (c) => {
3633
3642
  if (fs4.existsSync(linkPath)) {
3634
3643
  fs4.unlinkSync(linkPath);
3635
3644
  }
3645
+ if (sessionData?.createdAt) {
3646
+ const date = new Date(sessionData.createdAt);
3647
+ const year = date.getFullYear().toString();
3648
+ const month = (date.getMonth() + 1).toString().padStart(2, "0");
3649
+ rebuildSessionIndexForMonth(mnemeDir2, year, month);
3650
+ }
3636
3651
  }
3637
3652
  return c.json({
3638
3653
  deleted: dryRun ? 0 : 1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hir4ta/mneme",
3
- "version": "0.18.0",
3
+ "version": "0.18.2",
4
4
  "description": "Long-term memory plugin for Claude Code - automated session saving, recording technical decisions, and web dashboard",
5
5
  "keywords": [
6
6
  "claude",