{"_id":"@bacnh85/pi-evolve","_rev":"12-6dbc2f35364e850b09959fc55b6c4e8e","name":"@bacnh85/pi-evolve","dist-tags":{"latest":"0.3.11"},"versions":{"0.2.1":{"name":"@bacnh85/pi-evolve","version":"0.2.1","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.2.1","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"cf2733f84a2919aecde7311ffdc26d8ebc902ddd","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.2.1.tgz","fileCount":10,"integrity":"sha512-WXbDVQfBLVcDttRkGgw5zGPqES2ug4THlDZAteLy/fMbPWNDU8FKUY0Krg55bcSTiIaF2U/EsT8VRRjH9F1qPQ==","signatures":[{"sig":"MEQCIFsBqKl478O3TDh7TQ9gMCBp7Jl3JlMAC6Q4sS++lPvMAiAPat5lMM7NSvmjYFw1B0wNAPdEJradcsmo3rlU1Zmsdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58401},"gitHead":"7831b5745aed34678f18e7c50d2a7777b853500c","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.2.1_1786438839472_0.9484552859932569","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bacnh85/pi-evolve","version":"0.3.0","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.3.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"287dbcc36c4f79f14d6bebe9cd402ffb7fd157d8","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.0.tgz","fileCount":10,"integrity":"sha512-CKWwDqoGaW95GA++ecJxryi0pDqpBJwmA7w1X5/jnmvnCXgtrpRAmqA7M0C6Pq24l85lyfH//KZwEsNqySDY2A==","signatures":[{"sig":"MEYCIQCL0x2gp2f7F5TehYAKOkXtmgRQejL4Ckg80xrF1FVYxgIhANSW3jHn6u9g8wiSEdwEAfERq19QWkVHprNxsc4wyIYI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68026},"gitHead":"7fb050afdb1279ad636e6ce67fe72dfdfc26dea8","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.3.0_1786456181923_0.06920211876074789","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@bacnh85/pi-evolve","version":"0.3.1","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.3.1","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"bd927ef18808c9addb4d13389ae29cdf081b3ab2","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.1.tgz","fileCount":10,"integrity":"sha512-AxTgcRTWxLMMBFgIo44i2C3TVvRVX1siKbwbpnhYrZjsNTpDqox41PjZK88GELGq1anXBjgDd9/05P6dRUe+3Q==","signatures":[{"sig":"MEQCICYfrEEliydkCTf3qdyOQHNL6nKrQH4FcqKttrLmHqdfAiAgxK7c/KhqRXzJXS2uKNzJfdvH5ux/9i/oMDJ2mEN8Ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74422},"gitHead":"2f77cdd3a2fde25a92240069ea1b15d28a9c07fc","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.3.1_1786497335157_0.6969434721469003","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@bacnh85/pi-evolve","version":"0.3.2","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.3.2","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"bad59c59956d3883386e7c796ac3172165374642","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.2.tgz","fileCount":10,"integrity":"sha512-3d2zN3+1u8mq/PdMwEGJ8gw1QtZH2gRV3qo4FyAbbKk5tHVh29SodBxUKYEZi23Yw8B284PyUa92GkiwmPrAJw==","signatures":[{"sig":"MEYCIQD0UxFX0WVp1S93NVMCjBQ1r/WoPsCcI2jxYvWRjIRmrAIhAIE/V7Bs41RFvwGxg5uQUq5h5czTURBrQ1XvN47D/2X4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78092},"gitHead":"2aae20ef38580222d5cd9161e6cb9db186507e35","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.3.2_1787112307227_0.06565547487071988","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@bacnh85/pi-evolve","version":"0.3.3","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.3.3","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"2b73e5922eaa098d267db2d3ff96a2755f05e7fa","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.3.tgz","fileCount":10,"integrity":"sha512-CNT0TYKV+AOj+WP+qQOt2yIX/Ku07NpYgqR2J0VnjBiy+iMvMSNmIfdVZXuArPprugSiptYhPEOZ+VzTU74zyA==","signatures":[{"sig":"MEUCIQDzhBicQOt/VWubyA5Yqy0IlC7s578cdz4rjQ9ajwC1GQIgb/HMJDhzctql0AvPdZU9/tOYvjvUCedRiIdqg2Z3u74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79152},"gitHead":"fc25702c6bed994da1dd5071c5ec8071bfd28393","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.3.3_1789204267481_0.9634079437523053","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@bacnh85/pi-evolve","version":"0.3.4","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.3.4","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"1f2a3a84244fec87705b72558397be6690db2acc","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.4.tgz","fileCount":10,"integrity":"sha512-mdICFXHFDIhd/PjEXvGo2z9Y+SseAVhdM/ytYju/NS9AxAqW2oc2eBbHwivX4LTcqsRblniBtFQjH6CHgcmF1Q==","signatures":[{"sig":"MEUCIQCMr9I8mlNIB2jYtWQFmJN10LV2XFXzcm2mHWqwzUsmsAIgFaXvO4HpnR2Z5HYkc1sco7xprbV+AJLBBy6asukWgbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAKXu/OlcLsSn/qj6vuoPNRwXYUzDdXnXfh1dzFaOYHPAiAM6aAS0EZ66DrUEUG5ln6DU3fiioPRLT3oSzoki47X1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80172},"gitHead":"b5330ac3d014f92dff97a2b90cd9ebdbf0de22fd","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.3.4_1789962677014_0.6829138527758982","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@bacnh85/pi-evolve","version":"0.3.5","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.3.5","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"d39ec63f7565683e5438e11057b09eb954d0a36e","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.5.tgz","fileCount":10,"integrity":"sha512-BFMzTcNpvgkt6YK3CQmy5/Nj9aHJkJlC8YniuOXkqaDihMIce4O3wsOXOFoqKeMkKJ1LVZUSzKK0V2jq7EUC3Q==","signatures":[{"sig":"MEYCIQD0Xm+TYoSpiliNe7MjtWZVbnH3W3in1KqEx8thZfOUAgIhAM2AH2sOlAIshqjwHTDgLFHz2HQ1FyGioVV7seaXL35J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE8qz8IFvKSdyGHCpflZ4vi4+7VyUm2gFFpRt9ml/PyaAiEA+wW595HaidvcLD8eK1AahkKI+XpoHEHd3RYlpTN7D7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81396},"gitHead":"e0ab9215e2df54e5fa42f1c6cc6f616124fdea95","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.3.5_1790123287347_0.07845197674615245","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@bacnh85/pi-evolve","version":"0.3.6","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.3.6","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"912f547c3487de7b1aa142c9108d66435d2f3868","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.6.tgz","fileCount":10,"integrity":"sha512-9yf60YIQwtoJ999UaBR7Z0rasZ+BnXISaf7CjOqXyN90cw+JimDnyQj5LqvkQYAMmRk+yUX+B6jD+QtFgbVX6g==","signatures":[{"sig":"MEQCIE48EOgfGM4GcjTvaFvNurlRHE/K/q7sIvia3FxvbtqXAiBFmatLKo/p12tCRWBW3e0v4743GEiyH49A6gObWLme6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF5pTp4X4XD43hWXPySn0KdOxaI0TMmYIa0wylb2leyHAiEAvooe5KeiyGUDRR/LL4/A7/fEBO7GWeKDUVvU4EG9Xyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82354},"gitHead":"47ee5073837a97916572d769f13d86f55d54ef00","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.3.6_1790209626135_0.3443298931479859","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@bacnh85/pi-evolve","version":"0.3.7","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.3.7","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"e3a6d49ace475d5483986ae9bf7e5c508e777072","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.7.tgz","fileCount":10,"integrity":"sha512-RwyAaKzT0pJ7DG4LKiQg7hMJtFoMqe4wnIHwITWCSt20QyNbBSEFxaCLGWIg8A4CbjvkXJJ4drzjmllVo0y3XA==","signatures":[{"sig":"MEYCIQCzWnxKhk4A7ffYNfcZUcfz0PuahEG/mNoxACKk7JD84wIhAIdr/Z3MOBtW78kQ3hYow1IzdwAETwgvmfVhPWDFKF6Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDg2W+s4USRFI4sjCidvhGVPeSMEoQhk0ld5/4L3b8VHwIgM464Y3a3A04AyAhGrT7N6YbEFfE81Rdc7y4izqJbRac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86126},"gitHead":"500cfa53e96e9ff2b5279062cba5fb58d44f2abf","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.3.7_1790296073051_0.3287882139645186","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@bacnh85/pi-evolve","version":"0.3.9","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.3.9","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"43aa1c23ea4d180592d10568fde508d78fbe9207","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.9.tgz","fileCount":10,"integrity":"sha512-Q1ajeqQje5wwsoJ2kgWGVgQkFEcn2s9ICDsahfDiNgj9FIlqSqfB1MJ7q/MuwAdyHFYlF20RESnSw9MX+0f0dQ==","signatures":[{"sig":"MEYCIQCV1kLk1yWdT/jnHUdLnZ4qpR5IGumgkjp5b4tuvYVvUAIhAJzGlyLxTXOPl4aAmZ+RUadGzJH1oscopTvmI48Hn8yJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDhZ3bu3Z7KwxYckm6A1OJnq3QcEzAWP9h6tJWWgzr+1AIhAOye8GXpqUMO5zG5UIcyBAy07cqDhP19NyVStJuYa2XV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88982},"gitHead":"edad246dd00bc061afdca0cd50782d3883535f96","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.3.9_1790387173487_0.8190323552393994","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@bacnh85/pi-evolve","version":"0.3.10","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"license":"MIT","_id":"@bacnh85/pi-evolve@0.3.10","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"dist":{"shasum":"fa71f9b9de054acab8c2bcd18509c09575f0fc0b","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.10.tgz","fileCount":10,"integrity":"sha512-p/oX1r26kAGhG2zem2QTMb1MSgwKN2otM0H5/NoGKETQISEHny51FJhgQejmv1vJFj2YV+n5rEVZ5/gdNs77rQ==","signatures":[{"sig":"MEUCIQDftrkHrviWftuXk+WfmhzWGmMxVRdzKqetqQEeXOsTfgIgYhCZsTbUpwOtTZY+DYmuKOwMak9kpx1iC7TSWB7BvKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCD3qgnkn57IY0BEMtibWgf6OPc2PuAun1ZCJx80z6ibQIgZz5qUMr/cpSxOMGMWMfz25JMWrLm/UZCxh/wmbdmPZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89423},"gitHead":"90930b50f5fc0a4491a748ee1692db40f7ec358a","scripts":{"test":"cd extensions && npx mocha"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-evolve_0.3.10_1790555275625_0.4663056234346783","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"pi":{"skills":["./skills"],"extensions":["./extensions/index.ts"]},"_id":"@bacnh85/pi-evolve@0.3.11","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"dist":{"shasum":"49e4c39b1ed10c5efedaad4d2086666c396ab0be","tarball":"https://registry.npmjs.org/@bacnh85/pi-evolve/-/pi-evolve-0.3.11.tgz","fileCount":10,"integrity":"sha512-eXazLxC6lqdWpoUwIKh9ODv4TaqOet7IeNF6pG0e+hi5MIav5uMJPLdb/49cDeqDoCm6TBUSbOU+N7nwLnjTiw==","signatures":[{"sig":"MEUCIQCwlgL/X5eh/qI8nJbkwxU1wfRoFgT2mqV1NqlndCR9yQIgET8arFUhlBxAAB2cEbf+1hk8Jrp+4O1YsNSuyXjZp9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDfvdqmGgiY4o4n9mv19H8HYcYmWCXkCg1ByDHekxfjwgIgCs7jj0pcIuEgIWOcz+Q9QTLCIYlGdJQ0/lF9Xv0FbPs="}],"unpackedSize":94966},"name":"@bacnh85/pi-evolve","gitHead":"5388a5f1987873fe1355064f72021452c4347c72","license":"MIT","scripts":{"test":"cd extensions && npx mocha"},"version":"0.3.11","_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"overrides":{"serialize-javascript":"7.0.7"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"_npmVersion":"10.9.8","description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","directories":{},"maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"_nodeVersion":"22.23.2","dependencies":{"@kalera/munin-sdk":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","chai":"^4.3.0","mocha":"^10.8.2","@types/node":"^20.0.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-evolve_0.3.11_1790729292922_0.040418596155733066"}}},"time":{"created":"2026-08-11T09:00:39.359Z","modified":"2026-09-30T00:48:13.144Z","0.2.1":"2026-08-11T09:00:39.604Z","0.3.0":"2026-08-11T13:49:42.090Z","0.3.1":"2026-08-12T01:15:35.348Z","0.3.2":"2026-08-19T04:05:07.370Z","0.3.3":"2026-09-12T09:11:07.629Z","0.3.4":"2026-09-21T03:51:17.105Z","0.3.5":"2026-09-23T00:28:07.438Z","0.3.6":"2026-09-24T00:27:06.223Z","0.3.7":"2026-09-25T00:27:53.128Z","0.3.9":"2026-09-26T01:46:13.602Z","0.3.10":"2026-09-28T00:27:55.718Z","0.3.11":"2026-09-30T00:48:13.001Z"},"bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"license":"MIT","homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-evolve","keywords":["pi-package","pi-extension","self-improvement","self-learning","trajectory","agent-memory"],"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-evolve"},"description":"Pi extension that adds a trajectory-based self-learning loop — automatic capture, reflection, and contextual injection of learnings.","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"readme":"# @bacnh85/pi-evolve\n\nTrajectory-based **self-learning loop** for the [Pi coding agent](https://github.com/earendil-works/pi-coding-agent): automatically captures tool-call trajectories, reflects on them to extract transferable learnings, persists them, and injects recent learnings into future sessions.\n\n> *pi-munin remembers. **pi-evolve** learns.*\n\nThis is the **active half** of agent self-improvement. [pi-munin](../pi-munin) is a passive memory store (the agent must decide to search and store); pi-evolve closes the loop — **capture → reflect → consolidate → inject** — that runs automatically on every turn.\n\n## How it works\n\n```\nCAPTURE (automatic, hooks)             REFLECT (agent tool)\n  tool_call  → record tool + input       evolve_reflect returns the live\n  tool_result → mark ok/err + category    trajectory + a prompt skeleton;\n  turn_end   → record usage               the model extracts 0-3 learnings.\n  agent_end  → seal snapshot                          │\n                                                       ▼\nCONSOLIDATE (agent tool)            INJECT (automatic, session start)\n  evolve_save → Munin (type:learning)   before_agent_start prepends a\n                or .pi/evolve/            \"Recent Learnings\" digest (last N)\n                learnings.jsonl           + the pi-evolve usage header.\n```\n\n## Install\n\n```\npi install npm:@bacnh85/pi-evolve\n```\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `evolve_reflect` | Extract transferable learnings from the recent trajectory. Returns the live current-buffer snapshot + a prompt skeleton for the model to produce 0-3 structured learnings (`strategy`/`recovery`/`optimization`). |\n| `evolve_save` | Persist a learning to Munin (tag `type:learning`) or local JSONL. |\n\n## Commands\n\n- `/evolve` — show buffer size, last seal, learnings written this session, active store backend.\n\n## Error triage (v0.3)\n\nWhen a tool call errors, pi-evolve augments the `tool_result` with an actionable\ndiagnosis and, when available, a stored fix:\n\n```\nread → error(ENOENT)\n  💡 Path missing or guessed. Discover the exact path with find first.\n  📚 Prior fix for similar issue: use fffind before read for fuzzy paths.\n```\n\n- **Static hint** — 8 error categories with action-oriented hints (adapted from\n  pi-model-tools' `categorizeToolError`).\n- **Stored-fix recall** — searches recovery learnings by the error text\n  (Munin search or local keyword rank), best-effort within 3s\n  (RECALL_TIMEOUT_MS).\n- **Repeat escalation** — same error ≥2× adds `You've hit X on Y N× — try a\n  different approach`.\n- **Plan-mode aware** — in pi-plan read-only mode, the `edit_mismatch` hint\n  defers the fix (\"apply the edit when you exit plan mode\") instead of\n  recommending a blocked action. `evolve_reflect` is allowed in plan mode;\n  `evolve_save` is blocked (it's a mutation).\n\n## Configuration\n\nOptional `evolve` key in `settings.json`:\n\n```json\n{\n  \"evolve\": {\n    \"enabled\": true,\n    \"autoInject\": true,\n    \"maxInject\": 3,\n    \"store\": \"auto\",\n    \"bufferCap\": 200,\n    \"localCap\": 500\n  }\n}\n```\n\n| key | default | meaning |\n|-----|---------|---------|\n| `enabled` | `true` | master switch for capture + inject |\n| `autoInject` | `true` | prepend learnings digest at session start |\n| `injectMode` | `\"both\"` | `recent` \\| `similar` \\| `both` — similar = search by the user prompt; both = similar first, recent fallback (v0.2) |\n| `maxInject` | `3` | max learnings in the digest |\n| `store` | `\"auto\"` | `munin` \\| `local` \\| `auto` (munin if configured, else local) |\n| `bufferCap` | `200` | max in-memory trajectory entries |\n| `localCap` | `500` | max JSONL entries (bounded at append) |\n| `autoReflect` | `true` | nudge at `agent_end` when a recovery pattern is detected (v0.2) |\n| `errorTriage` | `true` | master switch for error hints + recall + escalation (v0.3) |\n| `recallStoredFixes` | `true` | search stored learnings by error text on error (v0.3, Layer 2) |\n\n## Storage backends\n\n- **Munin configured** (`MUNIN_API_KEY` + `MUNIN_PROJECT` set via env or `.env.local`) → learnings stored with tag `type:learning,domain:<inferred>`, searchable via `munin_search`.\n- **Munin not configured** → local JSONL at `.pi/evolve/learnings.jsonl` (capped at `localCap`).\n- **Untrusted project** → local saves redirect to `<agentDir>/evolve/learnings.jsonl` (never into cwd).\n\n### Security (exfiltration guards, v0.3.2)\n\nMirrors pi-munin's guards so a Munin credential can never be redirected:\n\n- `MUNIN_BASE_URL` from the project's `.env`/`.env.local` (including the parent-dir walk) is only read when the project is **trusted** — an untrusted checkout can't redirect your shell-exported `MUNIN_API_KEY` to an attacker's server. Global `~/.pi/agent/.env*` and real env vars are always honored.\n- A `base_url` passed alongside `api_key`/`project` tool params is accepted (self-hosted servers fine); `base_url` **without** its own `api_key` is ignored.\n- `MUNIN_BASE_URL` must be a well-formed http(s) URL without embedded credentials, query, or fragment.\n\n## Safety\n\n- Input digests are **truncated to 200 chars and redacted** (API keys, tokens, Bearer headers → `[REDACTED]`) before reaching the buffer.\n- The trajectory buffer is **in-memory only**; sealed snapshots are short-lived.\n- Injection is **best-effort** — a read failure never breaks a session.\n\n## Design references\n\nImplements the *Trajectory-Informed Memory Generation* pattern (arXiv:2603.10600) within the *Scaffolding Improvement / Memory* axis of the self-improving-agents taxonomy (arXiv:2607.13104, [awesome-Self-Improving-Agents](https://github.com/selfimproving-agent/awesome-Self-Improving-Agents)). Scope is the pragmatic trajectory loop; DGM-style recursive self-modification (arXiv:2505.22954) is out of scope for v0.1.\n\n## Development\n\n```bash\ncd pi-evolve && npm test          # mocha + tsx\n```\n\nLicense: MIT.\n","readmeFilename":"README.md"}