{"_id":"@bacnh85/pi-checkpoint","_rev":"10-ea512958f79e536393931680ed253ada","name":"@bacnh85/pi-checkpoint","dist-tags":{"latest":"0.1.9"},"versions":{"0.1.0":{"name":"@bacnh85/pi-checkpoint","version":"0.1.0","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"license":"MIT","_id":"@bacnh85/pi-checkpoint@0.1.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.js"]},"dist":{"shasum":"da526b90943da525707ab1622f2515d9002972c9","tarball":"https://registry.npmjs.org/@bacnh85/pi-checkpoint/-/pi-checkpoint-0.1.0.tgz","fileCount":5,"integrity":"sha512-G8PN5vsBpOHTrWrBLMl9+H36tORsE+y6mafLYO/YzoaCnRJvalLgYG+AUebptNMuG7lQF5ts11ysBIX/7cBY3Q==","signatures":[{"sig":"MEQCIDDEm4gPL+E5onP9qfSJH9qfSJ0QYKz0P0BbOWcUio9NAiBtV9pYjFoyF3MF/X262Pmjr+Buo5NXa+SmvWLMDBdQdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10068},"gitHead":"d85605e70d509cba6cdd414473defc5348168194","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-checkpoint_0.1.0_1786205304973_0.40967577290655766","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bacnh85/pi-checkpoint","version":"0.1.1","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"license":"MIT","_id":"@bacnh85/pi-checkpoint@0.1.1","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.js"]},"dist":{"shasum":"939dfc9a9423417dcce0ad128ddb8dc4ddaed269","tarball":"https://registry.npmjs.org/@bacnh85/pi-checkpoint/-/pi-checkpoint-0.1.1.tgz","fileCount":5,"integrity":"sha512-7QeNAJ9A8u//tZ9bkuUDF7TMuN/FB0J1PusloVxcxYZ6Fsd4wMuGAs/1cngSo166TzTWGexwKcRuXsMwuBLXlg==","signatures":[{"sig":"MEUCIQCLvnxjTNynQyjHFqzY7A4JumjHJUdhXxK+XZ9RFjPP5gIgW5msJ8pkDHdiesGUBVOOlAYzFChsBJ9b3WFsIS3Mxqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHVA0I7tEEGjBZWIwBV6edUVwWHvMZh5RhPGv0yoQY7NAiBGyZLL0ITQmlQSM7nJft0hGhjvfmpds6HJ9joE1GhvjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10410},"gitHead":"fb130ee80571d4a6ec161fe7d7736085f32eff74","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-checkpoint_0.1.1_1788013522609_0.0738586454026291","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bacnh85/pi-checkpoint","version":"0.1.2","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"license":"MIT","_id":"@bacnh85/pi-checkpoint@0.1.2","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.js"]},"dist":{"shasum":"ece97e310a5799e99964a0191594413ed8738460","tarball":"https://registry.npmjs.org/@bacnh85/pi-checkpoint/-/pi-checkpoint-0.1.2.tgz","fileCount":5,"integrity":"sha512-AVbKnu7jfiCPfRUccrK1ijzLIJcYCfgVeBoMwcYVUdKsxUHi+8vso9OldqFExK2Ni3jf54wJV/Yw1XdKcC4dlg==","signatures":[{"sig":"MEUCIGgA0rxZ1LxO1hAlR1Byu+BS6zAT+n576DaRdJV/YjUxAiEAwaXLuGwFgDeqRTvxds4CXDRn8arfKmbRTZVr81jG8cE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDiFbExoY7xHOaEZKLyT+n3NstnoLv2TA81OnPLvlRhbwIgEf0iBfboljqlvHTZeQu+Fspj5qbXFNZwyVcCY9ngxHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12382},"gitHead":"fc25702c6bed994da1dd5071c5ec8071bfd28393","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-checkpoint_0.1.2_1789204332844_0.20975204174415585","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bacnh85/pi-checkpoint","version":"0.1.3","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"license":"MIT","_id":"@bacnh85/pi-checkpoint@0.1.3","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.js"]},"dist":{"shasum":"e65a728cdefbe9a858071f2c4a69809da4630292","tarball":"https://registry.npmjs.org/@bacnh85/pi-checkpoint/-/pi-checkpoint-0.1.3.tgz","fileCount":5,"integrity":"sha512-DOiz8qqWxXjEANw/3tV8iWyg5+sVidQ3tc/9aEYH6AE965uS3S5PydBkjz3pkvdhlE9m5mlIUTk4rZyXmr26Sg==","signatures":[{"sig":"MEUCIQDs8n1Azn0pNOri/dP4L6BCVBwjvXjtrjI+8Oo5GTvDDwIgcAMMsJboYjztRnFZwdqRYHTeQhzWSUvNsIKJVXDT8q4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDGLieVTK3YNS/MqZQA7LSgdH3E0GsvErdpGrSZK8KoEAiBhz+Lece+zG3G2yBUZcKYdu+A82blvAgnNB+M76noH5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14146},"gitHead":"d00c3deaa5f3423b44adc2e160397b2feaf8465f","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-checkpoint_0.1.3_1789881008450_0.49509711352863106","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bacnh85/pi-checkpoint","version":"0.1.4","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"license":"MIT","_id":"@bacnh85/pi-checkpoint@0.1.4","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.js"]},"dist":{"shasum":"ab32aefea5e84560ee10808604094a008e67bb0c","tarball":"https://registry.npmjs.org/@bacnh85/pi-checkpoint/-/pi-checkpoint-0.1.4.tgz","fileCount":5,"integrity":"sha512-ym5pfW0+MrIZogFLRu2bj3/06YP8rYavOwae7rxW4rDaKtWZ9z4HbuZUk9tOIx+NiwxYxOBoOeyAnag2H8wtHw==","signatures":[{"sig":"MEUCICYTpL1wdr/Z8cLpsYhJbVi9NIRPx1pSBrJ4ug4V6K+2AiEA2CdrcTefT7YSjrh5sHzrLFitmUN9VLIfmBwdGx8cSi4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBR6GMtf1JyUtXhljLqdu/peT7XnV5Zy66e9gUaRr/spAiAhBPBjY2NYPJFq0TPTLp1XwiidyCxxcI17OFhfP7nidg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14839},"gitHead":"b5330ac3d014f92dff97a2b90cd9ebdbf0de22fd","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-checkpoint_0.1.4_1789962628945_0.9717425423296655","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bacnh85/pi-checkpoint","version":"0.1.5","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"license":"MIT","_id":"@bacnh85/pi-checkpoint@0.1.5","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.js"]},"dist":{"shasum":"57748b395b96dee8f238a72b606558da5438843a","tarball":"https://registry.npmjs.org/@bacnh85/pi-checkpoint/-/pi-checkpoint-0.1.5.tgz","fileCount":5,"integrity":"sha512-9EyDC6sC3IMwq4Je9lfVXAHsFKAuQiWgGpOa+DMOFOMd2Q4LHeHyE0vQsOoCuFmAwwZWCYPnR+kS27pw72C/Bg==","signatures":[{"sig":"MEUCIQCugQ3Qvn1UHf6+rZcpvWYt6OyKCzZL9Iy53k30WhjwBgIgQwr8Aw92eDeBhFwJsZqHUVXcVLO+ivJP9Xk3U9AG96E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDyyA9XEDDxAq+V8utnksC+8BsmtaxwKS5SAjlZVJDkzwIhAIpRoGdTZ3YBBU40VaNEj7IMsrCzwC8Tnmc3HN3zE0Gq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17161},"gitHead":"e0ab9215e2df54e5fa42f1c6cc6f616124fdea95","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-checkpoint_0.1.5_1790123275973_0.35783788442324527","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bacnh85/pi-checkpoint","version":"0.1.6","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"license":"MIT","_id":"@bacnh85/pi-checkpoint@0.1.6","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.js"]},"dist":{"shasum":"a45a9383f0c78b65443b303a78cdcd9c2db3158f","tarball":"https://registry.npmjs.org/@bacnh85/pi-checkpoint/-/pi-checkpoint-0.1.6.tgz","fileCount":5,"integrity":"sha512-A0hIqq1LJw8/vqSYeRJxCpAZJ+cKEoSm+06GPqVmCFG9tstWMm8wNl9P27P2gK/b21LspeX/jfbRlnxzTHwwMA==","signatures":[{"sig":"MEYCIQDOqYDoJITZ1luw/R7NlP25QnMMN6CHVSoRpSsoAuuBWwIhANm5B7dxvZXTjtOTzTgMchiYunkx56wR2JCaLXRAzOGO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD5z/WPD9rel1c654qEoa3UrLuxp+Wsk7W75OBoIHhvYQIgLspTpIkbhna0atnyFG857egVurANM6pSOCSeXlKL+i0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18076},"gitHead":"47ee5073837a97916572d769f13d86f55d54ef00","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-checkpoint_0.1.6_1790209613619_0.19567085777772308","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@bacnh85/pi-checkpoint","version":"0.1.7","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"license":"MIT","_id":"@bacnh85/pi-checkpoint@0.1.7","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.js"]},"dist":{"shasum":"cb9bc4d6be792d1a74db88aeefa65d7f3832979b","tarball":"https://registry.npmjs.org/@bacnh85/pi-checkpoint/-/pi-checkpoint-0.1.7.tgz","fileCount":5,"integrity":"sha512-x9eEpkLOOYds8elWBzuh39wNYI8aItgNdg/wWNjWhcyydn+V57WObags7d1uV26/1iCbxYcGHVtez7KIEZ3sug==","signatures":[{"sig":"MEUCIFJoqK33bsn250M1r5R7p8OJ4Nm7zuikCL7+JNaYuYv0AiEAos06f2IiF1sFU2kVXE3VYIKDgdmNa655rnYE3XnR23A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDyNFlmNbjvFvilNJ9Y4W3S6/gebHJusyo274OjJ49uBQIhAOvb5bwrwGNqDTTCztzauMeakJPo6Qag6EcQPExJE+0t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21281},"gitHead":"500cfa53e96e9ff2b5279062cba5fb58d44f2abf","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-checkpoint_0.1.7_1790296069899_0.9651609293988188","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@bacnh85/pi-checkpoint","version":"0.1.8","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"license":"MIT","_id":"@bacnh85/pi-checkpoint@0.1.8","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.js"]},"dist":{"shasum":"00f54a883849961143d09618dcfb315327132f94","tarball":"https://registry.npmjs.org/@bacnh85/pi-checkpoint/-/pi-checkpoint-0.1.8.tgz","fileCount":5,"integrity":"sha512-pf7UPlOeN9qK1xyQ0IjdGhtyjQkHfCOEpFAyOadgUQpxD3pL+nHl5SgsBJSOsE3Een1zwM9o2xQ8xGMrNLwurw==","signatures":[{"sig":"MEYCIQDblzd3WEVCk9Y73kB3QHrGqBBQRdS3p/EZm9F+dtRKrwIhANxGM1XqOVKM8/GMh2j+GDIXSg1IMNjuybv+j8PTeaTr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCeOG3gOKGCYQUD10qrnP+CYUGbwZ7v/k+mS12pAtDXPAIgegrD3gUO2v4xdvBWQSPQnmA2wxxAApVuRLJQAdN7kIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21749},"gitHead":"90930b50f5fc0a4491a748ee1692db40f7ec358a","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-checkpoint_0.1.8_1790555341877_0.34608903829427384","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"pi":{"extensions":["./extensions/index.js"]},"_id":"@bacnh85/pi-checkpoint@0.1.9","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"dist":{"shasum":"5c5d8601b990abc76fa058a2f4978050029189c7","tarball":"https://registry.npmjs.org/@bacnh85/pi-checkpoint/-/pi-checkpoint-0.1.9.tgz","fileCount":5,"integrity":"sha512-xJsoT8o4ml7sOTh1Ped/9RxzElrhFiKLrrtFy+qebX2vro/y5nDTiwDBrfmwPklAdmim8GIPBz6YCsWvz4d8IQ==","signatures":[{"sig":"MEQCIE2bApTUZQXqWySX8HA9tFVMnw3skDwOMHOe3ci3ORQPAiBUp1WzTz6QgZkb0XBD5bf/HQqcqXMwwB/oe/9kj0uDyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAKnrhkXEgdk8gUnkb+desmpE/jLfVBuvWXVlFfnHLf1AiB+8iSwlNsklQ5qona6DNfrhbzkPypz9hS8mXxUuCaP2Q=="}],"unpackedSize":23570},"name":"@bacnh85/pi-checkpoint","gitHead":"5388a5f1987873fe1355064f72021452c4347c72","license":"MIT","scripts":{"test":"node --test extensions/test/*.test.js"},"version":"0.1.9","_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","directories":{},"maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-checkpoint_0.1.9_1790729296785_0.6801103166851519"}}},"time":{"created":"2026-08-08T16:08:24.799Z","modified":"2026-09-30T00:48:17.011Z","0.1.0":"2026-08-08T16:08:25.170Z","0.1.1":"2026-08-29T14:25:22.695Z","0.1.2":"2026-09-12T09:12:12.939Z","0.1.3":"2026-09-20T05:10:08.553Z","0.1.4":"2026-09-21T03:50:29.040Z","0.1.5":"2026-09-23T00:27:56.075Z","0.1.6":"2026-09-24T00:26:53.730Z","0.1.7":"2026-09-25T00:27:50.013Z","0.1.8":"2026-09-28T00:29:01.977Z","0.1.9":"2026-09-30T00:48:16.876Z"},"bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"license":"MIT","homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-checkpoint","keywords":["pi-package","pi","checkpoint","undo","redo","git","snapshot","rollback"],"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"description":"Git-backed undo/redo for Pi — snapshots file state at each turn into a dedicated ref namespace, so /undo rolls back the last message AND its file changes. Fills PI's gap vs OpenCode's git-backed /undo /redo (PI has conversation-level /tree but not file-st","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"readme":"# pi-checkpoint\n\nGit-backed undo/redo for [Pi](https://pi.dev).\n\nSnapshots file state into a dedicated ref namespace at the start of each turn, so `/undo` rolls back the last message **and** its file changes together. Fills Pi's gap vs OpenCode's git-backed `/undo`/`/redo` — Pi has conversation-level `/tree`/`/fork`/`/clone` but no file-state snapshots tied to turns.\n\n## Install\n\n```bash\npi install npm:@bacnh85/pi-checkpoint\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `/undo [n]` | Restore file state to `n` turns ago (default 1) |\n| `/redo [n]` | Re-apply file changes after `/undo` |\n| `/checkpoint` | Show the checkpoint stack for this session |\n\n## How it works\n\n- Once per user turn (at the turn's first `turn_start`), captures the working/index tree via `git stash create` (which does **not** touch your stash list) and stores it under `refs/pi-checkpoints/<sessionId>/<n>`. Continuation rounds within the same turn are not re-snapshotted, and hostless sessions (a2a inbound children) are skipped.\n- `/undo` pops snapshots into a redo buffer and restores the prior checkpoint with `git checkout <ref> -- .` (tracked files only; untracked files are left alone).\n- `/redo` re-applies from the redo buffer.\n- Uses a dedicated ref namespace so it **never** touches your working refs, branches, or stash.\n\n## Requirements\n\n- The project must be a **git repository**. Outside a git repo, the commands no-op gracefully with a notification.\n\n## Why\n\nPi's `/tree` lets you navigate conversation history, but if the agent made 20 edits across 8 files and you want to roll back one message, you'd manually `git stash` or `git checkout` — disconnected from the conversation. `pi-checkpoint` ties file state to turns so `/undo` is a single command.\n\n## Caveats\n\n- Snapshots are per-session and in-memory; they are not persisted across Pi restarts (the git refs are, but the undo/redo stack resets). After a Pi restart the stack is **empty** even though ref numbering continues: a resumed session reuses the same sessionId and **continues numbering from the highest existing ref** (`<sid>/<max+1>`, so old restore points are never overwritten), but `/undo` reports nothing until new turns have been snapshotted.\n- Restore is tracked-files-only. Untracked files created during the undone turn remain until you remove them — and tracked files that were **added** during the undone turn also remain after restore (`git checkout <ref> -- .` only updates paths tracked at the snapshot; files newly added to the index stay behind). Remove them manually if unwanted.\n- Checkpoint refs are pruned on `session_start` when older than **30 days** (`refs/pi-checkpoints/<sid>/<n>`, by commit date); older restore points are deleted permanently.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}