{"_id":"@alma-harness/memory","_rev":"11-e04ec46f183abf61b0c138dbf9ae190a","name":"@alma-harness/memory","dist-tags":{"latest":"0.10.0"},"versions":{"0.1.0":{"name":"@alma-harness/memory","version":"0.1.0","license":"Apache-2.0","_id":"@alma-harness/memory@0.1.0","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"9ca6983a82ff165483f7da68dd3b8b0927668f38","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.1.0.tgz","fileCount":11,"integrity":"sha512-/iREXZwjvWUQe1INVBjFpNZjX06NYKWWNLsf45ZYks7kfKYihkoZW+2QuX2NwrURyOGx9DWiQVJWHrn5fEo6ZA==","signatures":[{"sig":"MEUCIQC9lK+ey8e7CAzUQn96D2RPsJlrZF5A78riF3cnH5WBewIgcWxAkP2JDDjgQ+FPXE1124MV/dVVoddUK0VuCsD11e4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186945},"main":"./dist/index.js","type":"module","_from":"file:alma-harness-memory-0.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/22e3df0f9696a2aac9588cbab2d2fa21/alma-harness-memory-0.1.0.tgz","_integrity":"sha512-/iREXZwjvWUQe1INVBjFpNZjX06NYKWWNLsf45ZYks7kfKYihkoZW+2QuX2NwrURyOGx9DWiQVJWHrn5fEo6ZA==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1"},"peerDependencies":{"@alma-harness/core":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.1.0_1788211400053_0.5940707155204077","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@alma-harness/memory","version":"0.2.0","license":"Apache-2.0","_id":"@alma-harness/memory@0.2.0","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"a321d64b6659ac94f6f877eb6cbb80eb7c482670","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.2.0.tgz","fileCount":11,"integrity":"sha512-gIi4TGWJjK2slq7KR7yZbomeFw6WRpNTEVy9W5YAA6YWdQz9enHrDx+errGFPp1K/rwzX7rCS7FHi6HgGwwLeQ==","signatures":[{"sig":"MEQCIACwZYtcLDxvi8lDO1dYjC1PZNbuupcPuPDCGTDtglJeAiBpnPMxoUeDl6ZHsny91D1VcluEK4Sa6FH3TlV+BnX0cA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238117},"main":"./dist/index.js","type":"module","_from":"file:alma-harness-memory-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/84dbdef24c4cec440388784a2f5cd876/alma-harness-memory-0.2.0.tgz","_integrity":"sha512-gIi4TGWJjK2slq7KR7yZbomeFw6WRpNTEVy9W5YAA6YWdQz9enHrDx+errGFPp1K/rwzX7rCS7FHi6HgGwwLeQ==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1","@alma-harness/loop":"0.2.0"},"peerDependencies":{"@alma-harness/core":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.2.0_1788446554500_0.4611577009702965","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@alma-harness/memory","version":"0.3.0","license":"Apache-2.0","_id":"@alma-harness/memory@0.3.0","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"1cb17cecfb58973bfd8ad5c84b34e7195f261431","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.3.0.tgz","fileCount":11,"integrity":"sha512-zm+jaJQMwyBZCtOdazIR8JhL7eHTkJV8tOX4zsGQi96QK9dG8hhRHyR8FzddfbPkTpfNtgegpjSLu9iAYgK3hg==","signatures":[{"sig":"MEQCIEUG0D55bqVV/uiiVP9Bsf5sM+oG3wulfcS60ipPRfhXAiBZ83LO2uySP77OzIgoP0DoibB6qiMlB6m0LRMZJ6lawQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238140},"main":"./dist/index.js","type":"module","_from":"file:alma-harness-memory-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/b59c4cebae4849c9659a8e02b0b95ec1/alma-harness-memory-0.3.0.tgz","_integrity":"sha512-zm+jaJQMwyBZCtOdazIR8JhL7eHTkJV8tOX4zsGQi96QK9dG8hhRHyR8FzddfbPkTpfNtgegpjSLu9iAYgK3hg==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1","@alma-harness/loop":"0.3.0"},"peerDependencies":{"@alma-harness/core":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.3.0_1788455646644_0.5652283762122929","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@alma-harness/memory","version":"0.4.0","license":"Apache-2.0","_id":"@alma-harness/memory@0.4.0","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"9528c771e3a053f428c3f47bcc09aee4f40686d0","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.4.0.tgz","fileCount":11,"integrity":"sha512-cKWSnIOAwPeoPMItKWoKhdU/bx0a+GYePBYMTw3ZW549x1GxTBU8qDIu+Q6FMB1CIJIeFQsbvHRcpEPWbeuCEg==","signatures":[{"sig":"MEYCIQDKFKwjxhKaU8b6rTEEGTmzIggymJoyjPJ9eycYx04/KAIhAPuMAqWibHYuMMVF5IoVBKMALR7ZuinPcXf9QE5XifhX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238140},"main":"./dist/index.js","type":"module","_from":"file:alma-harness-memory-0.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/aa864eeab2381a4fe2404dbee85c797a/alma-harness-memory-0.4.0.tgz","_integrity":"sha512-cKWSnIOAwPeoPMItKWoKhdU/bx0a+GYePBYMTw3ZW549x1GxTBU8qDIu+Q6FMB1CIJIeFQsbvHRcpEPWbeuCEg==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1","@alma-harness/loop":"0.4.0"},"peerDependencies":{"@alma-harness/core":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.4.0_1788462111850_0.45027639595436053","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@alma-harness/memory","version":"0.5.0","license":"Apache-2.0","_id":"@alma-harness/memory@0.5.0","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"df6c16d63283a7fb174e3f4e319de51c01b1180e","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.5.0.tgz","fileCount":11,"integrity":"sha512-dl4l/34YW8n7rCG0ofCL9EQBlA7Y0t9oS/dYpNmLnZ+KMqScAB8nrIAU4x9SnM4XhynWFU80GfJ0+CgDiduoeQ==","signatures":[{"sig":"MEQCIBu5SCzlfldd8c7oZ6vKuZSsaSe6hO3lOePFK4TeKrrJAiB7zKYr91g9QKPcPhHbfgKE1EgYpkSNyZbFusFmRrSn/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238140},"main":"./dist/index.js","type":"module","_from":"file:alma-harness-memory-0.5.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/04d4c05917b75c86680d1829a6f7eb35/alma-harness-memory-0.5.0.tgz","_integrity":"sha512-dl4l/34YW8n7rCG0ofCL9EQBlA7Y0t9oS/dYpNmLnZ+KMqScAB8nrIAU4x9SnM4XhynWFU80GfJ0+CgDiduoeQ==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1","@alma-harness/loop":"0.5.0"},"peerDependencies":{"@alma-harness/core":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.5.0_1788472617098_0.585128134727219","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@alma-harness/memory","version":"0.6.0","license":"Apache-2.0","_id":"@alma-harness/memory@0.6.0","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"be8e9eff37f2135015006bdce22fe9ba3ae88c09","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.6.0.tgz","fileCount":12,"integrity":"sha512-j0HYWSsrY+yHv9o4Q4bEBFkTgiEha13d8XcHs+DeXnaDTGdUuhRz3uO1D2gwyAsyBnKUkOe91EL5hjqXiJA6lA==","signatures":[{"sig":"MEYCIQDQ4NIZHN4LY61CY/i/J52RivDf3R4VmG60PqYosLGYUgIhAO0mY7eFAgNFbuOaHUX03OK90NYOEStizm8aHb7JLOkt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271548},"main":"./dist/index.js","type":"module","_from":"file:alma-harness-memory-0.6.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/780305b1c61554a8bc6df907c9a5d193/alma-harness-memory-0.6.0.tgz","_integrity":"sha512-j0HYWSsrY+yHv9o4Q4bEBFkTgiEha13d8XcHs+DeXnaDTGdUuhRz3uO1D2gwyAsyBnKUkOe91EL5hjqXiJA6lA==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1","@alma-harness/loop":"0.6.0"},"peerDependencies":{"@alma-harness/core":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.6.0_1788902327173_0.2580796151294904","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@alma-harness/memory","version":"0.6.1","license":"Apache-2.0","_id":"@alma-harness/memory@0.6.1","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"8de03103ee9a3c76737562eb602deb1a823c1734","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.6.1.tgz","fileCount":12,"integrity":"sha512-gwpCetnFtaaNdy3p+/DjjU/vg0P4uqx48YKZG9+4YB2Je7XTevC7XR8FZG9M3koNUjGoSMc+mC6QkL769TnzbA==","signatures":[{"sig":"MEQCIBw+PJGkwrUwhDxEC525kJFO7xAIFBKWPpuKm8M8PnGNAiBptlBGGzRkHKsvG+ux87mGxdPVwz+tr3kuax4SQaqS0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271548},"main":"./dist/index.js","type":"module","_from":"file:alma-harness-memory-0.6.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/2ad9c36563378280bf56e95f77af8598/alma-harness-memory-0.6.1.tgz","_integrity":"sha512-gwpCetnFtaaNdy3p+/DjjU/vg0P4uqx48YKZG9+4YB2Je7XTevC7XR8FZG9M3koNUjGoSMc+mC6QkL769TnzbA==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1","@alma-harness/loop":"0.6.1"},"peerDependencies":{"@alma-harness/core":"^0.6.1"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.6.1_1788905831164_0.06272006534624075","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@alma-harness/memory","version":"0.7.0","license":"Apache-2.0","_id":"@alma-harness/memory@0.7.0","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"6616faf4321eb1440e98d34c18f6eb53159d48c2","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.7.0.tgz","fileCount":15,"integrity":"sha512-7zRudSCcyp7Fzna881qFIQT6HM84dI9ubJBJMJVjl9JGlX7qnPyW1gI02V+c2Vv31icW2U2M9hfhYXcJI/CdqA==","signatures":[{"sig":"MEUCIFlZciMst+mYQfVJC/6P+F0Geq5uFOO7UjHlbBm/USSCAiEA2CprK2jbcLGr0UACBxSlFIjPVpGJDOIaxWc0siKPaw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346013},"main":"./dist/index.js","type":"module","_from":"file:alma-harness-memory-0.7.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./context":{"types":"./dist/context.d.ts","default":"./dist/context.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/4c23e9b6aa6af0703c13db0010118c33/alma-harness-memory-0.7.0.tgz","_integrity":"sha512-7zRudSCcyp7Fzna881qFIQT6HM84dI9ubJBJMJVjl9JGlX7qnPyW1gI02V+c2Vv31icW2U2M9hfhYXcJI/CdqA==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1","@alma-harness/loop":"0.7.0"},"peerDependencies":{"@alma-harness/core":"^0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.7.0_1789137035711_0.9309895624360061","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@alma-harness/memory","version":"0.8.0","license":"Apache-2.0","_id":"@alma-harness/memory@0.8.0","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"c0f03c87eee620e1b45fe35c7291e996d0de98ee","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.8.0.tgz","fileCount":15,"integrity":"sha512-DfP1GlZZp7Om4AU8aYpXbvzEIrR9MkrcIUh54JYdPgRBOoyn6Gx/mWcrJ4A3ahRYGgvCWKYyE4bRaDXZjfWZBQ==","signatures":[{"sig":"MEUCIQDHf3ndKoiFZNcPC4JGHU9KmIWp6hgyrT/qnuztrdtqzAIge9OxGk0bvOKZ5jJnUpeXXLjVBN9ZgX2V6HAY2aULeCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346013},"main":"./dist/index.js","type":"module","_from":"file:alma-harness-memory-0.8.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./context":{"types":"./dist/context.d.ts","default":"./dist/context.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/770a3b1a70b47bd7587cc862f7c4e777/alma-harness-memory-0.8.0.tgz","_integrity":"sha512-DfP1GlZZp7Om4AU8aYpXbvzEIrR9MkrcIUh54JYdPgRBOoyn6Gx/mWcrJ4A3ahRYGgvCWKYyE4bRaDXZjfWZBQ==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1","@alma-harness/loop":"0.8.0"},"peerDependencies":{"@alma-harness/core":"^0.8.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.8.0_1789155222617_0.13725982334227727","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@alma-harness/memory","version":"0.9.0","license":"Apache-2.0","_id":"@alma-harness/memory@0.9.0","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"4858be49d5954ddbb2459aa8e16740a99044e166","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.9.0.tgz","fileCount":15,"integrity":"sha512-OBzZgQhLfGDEppD9ScVHNdecWArtlKo7J/NGDmMr1IYa6uqn/NoiuOUa4Ax9pP+Mu6A8y9lCLUWDC5j78n4cag==","signatures":[{"sig":"MEUCIQCJ1haL7QfJNy/Lr5OS0vINkofpHx+wIyjCyeOr+HX+gQIgPBDTmuugUNPkR5Leh+ZCbLt79Q/4pNMAExq+Ua+RfjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCfSfgcIsvB1klyJTVDfPefvRkQ1yMK7an3VhmcvN7ZAQIhAKUpxr0V4eYE/Yv3uIzEmXINCNMiksBo2yDeJnRKx+KX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346013},"main":"./dist/index.js","type":"module","_from":"file:alma-harness-memory-0.9.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./context":{"types":"./dist/context.d.ts","default":"./dist/context.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/80cd5eef52e4e4c3ca84d8567b028dee/alma-harness-memory-0.9.0.tgz","_integrity":"sha512-OBzZgQhLfGDEppD9ScVHNdecWArtlKo7J/NGDmMr1IYa6uqn/NoiuOUa4Ax9pP+Mu6A8y9lCLUWDC5j78n4cag==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1","@alma-harness/loop":"0.9.0"},"peerDependencies":{"@alma-harness/core":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.9.0_1789655984226_0.5136975763407148","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"_id":"@alma-harness/memory@0.10.0","bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"dist":{"shasum":"c013f625d4bded1a178c08848e54bb4f5fae27cb","tarball":"https://registry.npmjs.org/@alma-harness/memory/-/memory-0.10.0.tgz","fileCount":15,"integrity":"sha512-ZcD25MlNK9dyXwwYhfvBKGnfBMGvgVuA6jhxgGe5EysuRTDO0XIK5l4MQmdQzl6Qv4dAwtU46ctKSzKmadEqDA==","signatures":[{"sig":"MEUCIQCmpxAD8IRoW50x24FknuQg+03qR00fLJDSQ55UVQrGXgIgBh+tVi+W75bSYGB4EY7N8xb2gX0FDuSBWuCmySNNEiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCoo9+nKkAdBehtnq9bKv44UN6eQ04poDk6Qt11gmXsMgIhAJkyXN9qBgFSad1rKi3ZH0NsG4dzcSTud/8nxAZgNmeg"}],"unpackedSize":346016},"main":"./dist/index.js","name":"@alma-harness/memory","type":"module","_from":"file:alma-harness-memory-0.10.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./context":{"types":"./dist/context.d.ts","default":"./dist/context.js"},"./testing":{"types":"./dist/testing/index.d.ts","default":"./dist/testing/index.js"}},"license":"Apache-2.0","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"version":"0.10.0","_npmUser":{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"},"homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","_resolved":"/private/var/folders/zc/snhwcnp15dj2hk0k9_g1fh3h0000gn/T/3fedf6da12c304112c229e51c94745e9/alma-harness-memory-0.10.0.tgz","_integrity":"sha512-ZcD25MlNK9dyXwwYhfvBKGnfBMGvgVuA6jhxgGe5EysuRTDO0XIK5l4MQmdQzl6Qv4dAwtU46ctKSzKmadEqDA==","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"_npmVersion":"11.18.0","description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","directories":{},"maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"_nodeVersion":"26.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.1.0","@anthropic-ai/sdk":"^0.117.1","@alma-harness/loop":"0.10.0"},"peerDependencies":{"@alma-harness/core":"^0.10.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/memory_0.10.0_1789675295287_0.13915894147390295"}}},"time":{"created":"2026-08-31T21:23:19.841Z","modified":"2026-09-17T20:01:35.581Z","0.1.0":"2026-08-31T21:23:20.265Z","0.2.0":"2026-09-03T14:42:34.645Z","0.3.0":"2026-09-03T17:14:06.804Z","0.4.0":"2026-09-03T19:01:51.999Z","0.5.0":"2026-09-03T21:56:57.240Z","0.6.0":"2026-09-08T21:18:47.329Z","0.6.1":"2026-09-08T22:17:11.363Z","0.7.0":"2026-09-11T14:30:35.872Z","0.8.0":"2026-09-11T19:33:42.750Z","0.9.0":"2026-09-17T14:39:44.351Z","0.10.0":"2026-09-17T20:01:35.387Z"},"bugs":{"url":"https://github.com/FabioFernandesCarneiro/alma/issues"},"license":"Apache-2.0","homepage":"https://github.com/FabioFernandesCarneiro/alma#readme","repository":{"url":"git+https://github.com/FabioFernandesCarneiro/alma.git","type":"git","directory":"packages/memory"},"description":"Alma memory layers: episodes, consolidated profile, budgeted recall, consolidation, structural erasure.","maintainers":[{"name":"fabiofernandescarneiro","email":"fabiofernandescarneiro@gmail.com"}],"readme":"# @alma-harness/memory\n\nThe memory layers of [Alma](https://github.com/FabioFernandesCarneiro/alma):\nepisodes, a consolidated profile, budgeted recall, and structural erasure.\n\n> **Status: pre-1.0.** The API is still moving; see the\n> [roadmap](../../docs/architecture.md#12-adoption-roadmap) for where it stands.\n\n## What it owns\n\nTwo tiers, two enrichment jobs, one budget.\n\n- **Enrichment** (`createGovernedMemoryEnrichment`) — background extraction and\n  consolidation over governed single-call or batch execution. Stable run and input\n  identities retain the original plan, receipt and application result. Neutral\n  preparation/application helpers own transcript filtering and MODEL writes;\n  identity, confidence, provenance and erasure guards remain in the stores.\n  The old `createMemoryEnrichment` job bridge and its types have been removed.\n\n- **Recall** (`createRecallAssembler`) — the *push*: a token-budgeted block\n  assembled from the profile and the episodes the turn steers toward. One\n  budget covers the whole block; per-tier caps grew until nobody could say what\n  the block cost in total.\n- **The two tools** (`createMemoryTools`) — the *pull*: `search_memory` and\n  `remember`, registered like any other tool, so scope is bound by closure, the\n  trail is automatic and sensitivity is enforced at dispatch. `remember` always\n  writes an episode, so what the model records is reachable by session erasure.\n- **Erasure** (`createMemoryErasure`) — backend-neutral composition over the\n  storage seams: tombstone → provenance → derived invalidation, every declared\n  copy surface reported, and an audit trail that survives a partial failure.\n  The conversation log is a declared surface whether or not you wire\n  `sessions` — `search_memory` results and `remember` arguments are copies —\n  so an erasure that cannot reach it reports `complete: false`. A product that\n  registers no memory tool states `conversationCopies: \"none\"`. The stored\n  replies of idempotent turns are a surface of the same class (spec:\n  erasure-reaches-the-claims): wire `turns` to reach them, or state\n  `turnRecords: \"none\"` only when the host has no historical claims. The `turns`\n  option accepts an erase-only `LegacyTurnClaimsErasure`, not a coordination store.\n\n- **The shared behavior every adapter must use** (relocated from core by the\n  core-split spec): validation and `MEMORY_LIMITS`, deterministic ids\n  (`deriveEpisodeId`, `deriveFactId`), the three-case confidence rule\n  (`decideObservation`), the reference lexical ranking (`rankEpisodes`) with\n  its tokenizer (`tokenizeMemoryText`: lowercase stems for Portuguese and\n  English inflection, character bigrams for scripts without word boundaries,\n  every term a substring of the text — spec: search-that-finds), and the\n  anti-injection framing (`frameRecalledContent`). One implementation, so\n  backends cannot drift.\n\nStorage lives behind the contracts in `@alma-harness/core`; the reference\nadapters are in `@alma-harness/postgres`; the in-memory reference stores ship\nat `@alma-harness/memory/testing`, and the contract suites that pin every\nnormative rule at `@alma-harness/testing`.\n\n## What it must never do\n\n- Return recalled content unframed. Memory is untrusted input — it was written\n  by a model, from what a user said — and ships inside a frame that says so.\n- Let a reader run uncapped. What a reader returns is persisted in the session\n  and re-sent on every later step.\n- Write the protected identity namespace from the model path, under any\n  spelling.\n- Report an erasure complete when a declared copy surface went unreached.\n\n## Documentation\n\n[Docs index](../../docs/README.md) · [Invariants §8](../../docs/invariants.md)\n· [Memory charter](../../docs/specs/010-memory.md)\n· [Storage tier](../../docs/specs/011-memory-storage.md)\n· [On the turn path](../../docs/specs/012-memory-turn-path.md)\n\nApache-2.0\n\n### Scoped execution results (spec 081)\n\n`ExecutionResultStoreBase` shares closed-envelope validation and transitions with\nPostgreSQL; `InMemoryExecutionResultStore` is exported from `./testing` (its\n`withPolicy` creates a policy view over the same reference records). Constructors\nrequire `{ maxSensitivity, maxRetentionMs, maxChars }`. The host calls `prepare`\n**before reading context**. `put` cannot create a reservation or revive a tombstone.\nExpiry starts at preparation, never at replay. `purgeExpired(scope, { limit })`\nphysically blanks bounded batches; the host must schedule it from its scope inventory.\n\nWire `results` into `createMemoryErasure`: this implies `resultRecords: \"results\"`.\nA declared but missing store reports incomplete; legacy compositions default to\n`\"none\"`. Sessions/all reach `executions:results`; episode-only erasure cannot.\nPartial result failures await an audit event and throw. Store-level `erase` alone\nis not an audited host workflow. Narrowing policy can refuse pending/available\nrecords, but cannot prevent erasure or physical expiry. Governed runners reserve before input reads;\nhosts must register every result namespace for erasure.\n\n`@alma-harness/memory/context` owns the pure long-context view, tail selection and\nsummary framing helpers. It imports core only; the loop owns rotation timing and\nsummary execution. Historical loop exports remain compatible (spec: long-context-helper-ownership).\n\n### Named result namespaces\n\nFor canonical conversations, register every physical namespace explicitly:\n\n```ts\nconst erasure = createMemoryErasure({ episodes, profile, watermarks, audit,\n  sessions: runtime.stores.sessions, turnRecords: \"none\", // Fresh canonical host only.\n  resultSurfaces: [\n    { name: \"steps\", store: runtime.stores.step.results },\n    { name: \"roots\", store: runtime.stores.rootResults },\n  ] });\n```\n\n`resultSurfaces` is exclusive with `results` and `resultRecords`, including explicit\nundefined options. Supply 1–16 entries with unique names matching `[a-z0-9_-]{1,64}`.\nRegistration snapshots names and bound erase methods; sparse arrays, unknown fields,\naccessors and invalid methods are rejected at construction without invoking them.\nAn entry without a store declares an unreached namespace. Reports name each\n`executions:results/<name>`. Sessions/all erase in declaration order; episode-only\nselectors leave result copies unreached. Any missing surface means incomplete.\nFailure awaits a metadata-only `partial-results-failed` audit and throws; retry\nfinishes the pass without reviving tombstones. The legacy single-store API is unchanged.\n\nQuiesce the host before erasure. There is no global admission barrier or transaction\nacross stores; tombstones protect reserved identities, not new work. Keep financial\nand admission evidence. Mixed hosts must register legacy `turns` too rather than\nclaim `turnRecords: \"none\"`. A completed root whose output was erased stays\nunavailable on read/retry and does not regenerate content.\n\n### Neutral enrichment preparation and application\n\n`createMemoryEnrichmentSteps({ episodes, profile, sessions, ...behaviorOptions })`\nprovides the shared algorithms used by the governed workflow\n(spec: neutral-enrichment-plans):\n\n- `prepareExtract(scope, sessionId)` returns `{ sessionId, messagesRead, prompt? }`.\n  No prompt means an empty transcript.\n- `prepareConsolidate(scope, since?)` returns `{ episodeIds, prompt? }`, retaining\n  the original uncited episode window; no prompt means nothing is new.\n- `applyExtract(scope, prepared, text)` returns the episode/importance or skipped\n  decision; `applyConsolidate(scope, prepared, text)` returns read/proposed/merged\n  counts and rejected/skipped decisions. Run IDs, timestamps and costs belong to\n  the caller's execution/reporting layer.\n\nThese trusted host capabilities do not admit work, call providers, charge or\ncertify output. Before preparing, a governed host must acquire execution authority\nand reserve its plan/result surfaces. Before applying a delayed response it must\nverify the original scope/config/input binding and freshly authorize retained\noutput. Preserve and protect the original plan; do not reload today's episodes\nas the citation window of yesterday's response. Caller mutations after invocation\ncannot redirect the captured scope/session/window. Memory writes retain their\nexisting identity, confidence, validation and tombstoned-citation guards.\n\nPlans contain sensitive prompts and require explicit retention and erasure in the\nadopting host. This API alone supplies no durable run identity or application\ntransaction. `applyExtract` propagates storage failures as uncertain writes; only\nlocal validation is a rejected decision. The removed legacy bridge cannot convert\na lost write acknowledgement into a clean refusal.\n\n### Governed enrichment workflow\n\n`createGovernedMemoryEnrichment` claims a stable run before reading context and\nreserves separate plan/report result stores. Supply the existing memory stores,\na trusted `EnrichmentExecution` adapter over governed single-call or batch,\n`RoutineRunStore`, configRevision, retention, timeout and metadata-only error\nobserver. `extract(scope, sessionId, { runId, inputRevision })`,\n`consolidate(scope, { runId, inputRevision, since? })` and `read(request)` preserve\nthe original plan, caller binding and settled receipt. See spec:\n**governed-memory-enrichment** and Prumo P4 for an executable composition.\n\nViews distinguish completed reports, pending batch, reconciliation_required and\nunavailable. A pending retry collects its original operation; only one collector\nclaims application. Completed retries never reread context or apply again.\nA running record after a crash or lost acknowledgement requires operator inspection,\neven when the memory store may already have written. No lease takeover or automatic\nreapplication is provided. The original preparation timestamp reaches append and\nobserve, preserving erasure watermarks. Known costs come from original receipts;\nonly proved empty/no-dispatch work has a zero-cost skipped report.\n\nRegister plans, outputs and reports as distinct erasure surfaces. Prumo invalidates\nall enrichment copies for the same org/user on a session erasure because a\nconsolidation can combine sessions. Quiescence is required; this does not create a\nglobal barrier. Receipts remain for accounting; expired or erased copies never\nregenerate. Config, mode or input changes under the same logical run conflict.\n\nFor retained historical SQL replies, wire `PostgresLegacyTurnClaims` from postgres. Its absence remains a declared unreached `turns:claims` surface; it does not disappear because the old executor was removed.\n","readmeFilename":"README.md"}