{"_id":"@arcanemachine/pi-tree-editor","_rev":"10-f4a992e0363c0e690085e75333a419cb","name":"@arcanemachine/pi-tree-editor","dist-tags":{"latest":"0.1.9"},"versions":{"0.1.0":{"name":"@arcanemachine/pi-tree-editor","version":"0.1.0","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-tree-editor@0.1.0","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"8affb10d830f7af1a0917db6e37e1e2a2eb7049b","tarball":"https://registry.npmjs.org/@arcanemachine/pi-tree-editor/-/pi-tree-editor-0.1.0.tgz","fileCount":18,"integrity":"sha512-VeCuQG/IjGbARSouxVgPpijAlusjmyaR8CdO93ZGMR8+4Pk10eO9pu5BBAFn5zDuozv2682yiNrcgcqLdfHnQA==","signatures":[{"sig":"MEUCIQC20CsNLxwrpTnGGZDCZvq5YF29B4rL3hHmhq3QD3OLfQIgZ7w7gKvK1KYC2f03GTbU6o4pVRQVBRS/iCw62Jhfb60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215941},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"2c895b8a9cdbbf8deec90c0c5ef3263436e4a364","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-tree-editor.git","type":"git"},"_npmVersion":"11.13.0","description":"Safely edit Pi conversation history through the native tree selector","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-agent-core":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-tree-editor_0.1.0_1787016266294_0.6064956847276446","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@arcanemachine/pi-tree-editor","version":"0.1.1","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-tree-editor@0.1.1","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"745c5eac81d2f03de0bd8e2a6d03c6f2d6820995","tarball":"https://registry.npmjs.org/@arcanemachine/pi-tree-editor/-/pi-tree-editor-0.1.1.tgz","fileCount":18,"integrity":"sha512-WJekZxw/HoNLrsn++1ZzjRLl9uJogqoMsgT2LQ6PC1J5/sYlWoCfLgICOy9CltJS+i2zmRwl7dxgTb99XE8kdQ==","signatures":[{"sig":"MEQCIDf/i/9DmUVgHbroJFD3vkfK9jBC4GyoqMdAGnyrQq1yAiA07SuPdUDZLUXVa8RvCD+2v/xgvQKKNpxy73QEaf7m8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215711},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"da3e939b7565ab21ba905e20e5ce362fba89b589","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-tree-editor.git","type":"git"},"_npmVersion":"11.13.0","description":"Safely edit Pi conversation history through the native tree selector","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-agent-core":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-tree-editor_0.1.1_1787016874396_0.0930300906582191","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@arcanemachine/pi-tree-editor","version":"0.1.2","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-tree-editor@0.1.2","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"cdc16c6e02e3d71a1f83b4265a2ceddb7cbcf358","tarball":"https://registry.npmjs.org/@arcanemachine/pi-tree-editor/-/pi-tree-editor-0.1.2.tgz","fileCount":18,"integrity":"sha512-w1Kfd9ildaG+GFtJWjQa0jysReKLiKteVWU+Sv14viTxD8O6RS1vxkr7IX5W5rLCWmR1Qwhgm/G+ylVhLCrOEQ==","signatures":[{"sig":"MEUCICVSnT0BGn165RZ941KxRLnQJbG3hGe9C5ze9vjV/bq9AiEAsjBL8ElMmSJzNMTogrzJl2zsxfItJA3d9kT9ZmB8J/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215867},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"8e51d06a22fdaed0fa73c9a532c4d5e9932505ed","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-tree-editor.git","type":"git"},"_npmVersion":"11.13.0","description":"Safely edit Pi conversation history through the native tree selector","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-agent-core":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-tree-editor_0.1.2_1787017819680_0.756068494609579","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@arcanemachine/pi-tree-editor","version":"0.1.3","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-tree-editor@0.1.3","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"fa23a5cb602d90af891734244efbb1ee108d141e","tarball":"https://registry.npmjs.org/@arcanemachine/pi-tree-editor/-/pi-tree-editor-0.1.3.tgz","fileCount":18,"integrity":"sha512-mbqqrqQAoiNdM+vse5cmMLOdfGJGa10UHThp6eRHW1iCmNEUsV68OhE5CtQ5UJcNhHhGpscNfTkw9WB5OE00gg==","signatures":[{"sig":"MEUCIQD9oDPbRK1pntM3gWk5dre4lSeAdlBZT11rJZodjfZqGQIgYDIsSEgFM1a3WsUtfbw8c0MnJEXVA4DeJb6qMGTWRTQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217638},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"2b460b753f09de4514bf3277b146aa823caaa347","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-tree-editor.git","type":"git"},"_npmVersion":"11.13.0","description":"Safely edit Pi conversation history through the native tree selector","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-agent-core":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-tree-editor_0.1.3_1787186557387_0.522975279507317","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@arcanemachine/pi-tree-editor","version":"0.1.4","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-tree-editor@0.1.4","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"266dc397b88b218ec5c318e81fda4082d97a4b51","tarball":"https://registry.npmjs.org/@arcanemachine/pi-tree-editor/-/pi-tree-editor-0.1.4.tgz","fileCount":18,"integrity":"sha512-/2TH8kC3E2KtXuG4tCBARGJWm3hXtof1EorsEqtU/nmCEAVCkYjeM35rjvashJghW7fMmqZwbOZUKeBvFjo7kg==","signatures":[{"sig":"MEUCIQDbuojgpYgwK5YKyFNHtg0+nRMvzIm+jimexftdQxH0KgIgC7CPh42BJ4ooqkfm/aL2nOEqVMtQ4e/ETmJus6F2lKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217928},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"9c1c5e1d294b1877535683ca7ea2ee927d9b4844","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-tree-editor.git","type":"git"},"_npmVersion":"11.13.0","description":"Safely edit Pi conversation history through the native tree selector","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-agent-core":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-tree-editor_0.1.4_1787191638748_0.09172526370830769","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@arcanemachine/pi-tree-editor","version":"0.1.5","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-tree-editor@0.1.5","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"c881cbd503bab15db96e287c3bb8b339e647ccbe","tarball":"https://registry.npmjs.org/@arcanemachine/pi-tree-editor/-/pi-tree-editor-0.1.5.tgz","fileCount":18,"integrity":"sha512-cfHx4vJJRaD2zVF2arZEUMCyixKRySAbkAhqjaUT5frZndOyx4X9efj6DZuGWyoVfv2h5qj0L8PD5iGxc5M7pA==","signatures":[{"sig":"MEUCIQDV+ugFsVqj2bUId6SvACmFmdHtcgtKxPHA6/r/31/XyQIgDsYl1jFzYjLDmIw3i/cyPJ+vvCRD+xMP/z+rlsCsRgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":221449},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"0a3ed3f3bf7b23e1395880ed83891b59ecbbac7a","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-tree-editor.git","type":"git"},"_npmVersion":"11.13.0","description":"Safely edit Pi conversation history through the native tree selector","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-agent-core":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-tree-editor_0.1.5_1787213018223_0.5376701933425314","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@arcanemachine/pi-tree-editor","version":"0.1.6","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-tree-editor@0.1.6","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"f80bbf0686ffe8a81a9515849d5dbc7d3b88ac23","tarball":"https://registry.npmjs.org/@arcanemachine/pi-tree-editor/-/pi-tree-editor-0.1.6.tgz","fileCount":18,"integrity":"sha512-MWW7oP+GlC+/iqtE65v0x1ChgpC1aZTkKSYV0r7TD1m1/4xRW9L7lceKmTAEov4aGpAUTgOgcPr+kUTp4PSLeQ==","signatures":[{"sig":"MEYCIQD0cERHWBtBcFnP/CIZp3fHKzPE4LfqpfbInlVku3DpxAIhAIRnviK2A61Be1V+TAA+bMd6YmiQELB2837xayK6jMVy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":221523},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"bcc956052f6831c253fc100abd53fd33102027b9","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-tree-editor.git","type":"git"},"_npmVersion":"11.13.0","description":"Safely edit Pi conversation history through the native tree selector","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-agent-core":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-tree-editor_0.1.6_1787803307095_0.6422061174770877","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@arcanemachine/pi-tree-editor","version":"0.1.7","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-tree-editor@0.1.7","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"af9651d8ac0b2d74b0a27150e856a9893664ee11","tarball":"https://registry.npmjs.org/@arcanemachine/pi-tree-editor/-/pi-tree-editor-0.1.7.tgz","fileCount":18,"integrity":"sha512-PXnrHqPkvgWXwoj/2fNxJHMQsg616A9Mjd4B7Ww7YGiSxat31iPkwR72MGkA7bR5OssM9HjMpcVAyk/ATRvUKw==","signatures":[{"sig":"MEUCIQCfWkmkK0b/RLIcG20ej6XAPyI9/eENEwheOLVvVpczfwIgTaNjtjB44pKaA3xeYIorn6JX6sipu4CxpNqdiEBnHRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222723},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"aff88a0adaee8509ee7a01727f3051d16290380b","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-tree-editor.git","type":"git"},"_npmVersion":"11.13.0","description":"Safely edit Pi conversation history through the native tree selector","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-agent-core":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-tree-editor_0.1.7_1788317639081_0.6826962723012817","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@arcanemachine/pi-tree-editor","version":"0.1.8","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-tree-editor@0.1.8","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"62929e6cf0dfee10944ebc41a284ec2e6df463dc","tarball":"https://registry.npmjs.org/@arcanemachine/pi-tree-editor/-/pi-tree-editor-0.1.8.tgz","fileCount":18,"integrity":"sha512-YM4gxJpBtiassx02m3Bav/H7YHfG2H34BrnbMKsxqAlMxUnKYcTNE8PIB2LUBB/+24Yx43PiGxZJPytsVNA4fg==","signatures":[{"sig":"MEYCIQDGpkQpSIYcqwyQ01yIvwY7WagD8472PEvXc8Afi2FHsgIhAJS/8QN3YN04HVPiU522iyfuNTHsVwP/X3LTlMSX2q+B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223050},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"03959696cf5c8cff79e3bce11c786dcdb660348d","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","prepublishOnly":"npm run format:check && npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-tree-editor.git","type":"git"},"_npmVersion":"11.13.0","description":"Safely edit Pi conversation history through the native tree selector","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-agent-core":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-tree-editor_0.1.8_1788765801086_0.6773672554015022","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@arcanemachine/pi-tree-editor","version":"0.1.9","description":"Safely edit Pi conversation history through the native tree selector","type":"module","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"pi":{"extensions":["./src/index.ts"],"image":"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg"},"scripts":{"build":"tsc","watch":"tsc --watch","typecheck":"tsc --noEmit","test":"vitest run","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md IDEAS.md","prepublishOnly":"npm run format:check && npm run typecheck && npm run test && npm run build"},"author":{"name":"Nicholas Moen"},"license":"MIT","peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true},"@earendil-works/pi-tui":{"optional":true}},"devDependencies":{"@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-agent-core":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1","@earendil-works/pi-tui":"0.84.1","@types/node":"^25.3.3","prettier":"^3.8.3","typescript":"^5.9.3","vitest":"^4.1.6"},"repository":{"type":"git","url":"git+https://github.com/arcanemachine/pi-tree-editor.git"},"homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"engines":{"node":">=22.19.0"},"publishConfig":{"access":"public"},"gitHead":"12bc5bc2dd501cbc06b297ef3a09d8c03b8e1d6e","_id":"@arcanemachine/pi-tree-editor@0.1.9","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-6jLpKs2YcR0RYT5SfetR5h/O6rHrIZSlyE8TKxScCIpBIvLblC2juvpegdw+ggZ0N33vGWZA7agF6eo+QOPzhA==","shasum":"f8cb533381fdb1cee51e89c8e3cb1cbd0743b692","tarball":"https://registry.npmjs.org/@arcanemachine/pi-tree-editor/-/pi-tree-editor-0.1.9.tgz","fileCount":18,"unpackedSize":223907,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCyaPjs3ME4+fTnh+rpZEIEm+1jApxCU/Tz2vwCslDZSQIgQuNrTtmTVcykClb9zY0ck/UOX4f9Bdd6I1bOlie5O7Y="}]},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"directories":{},"maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-tree-editor_0.1.9_1788846553259_0.7842245224394355"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-18T01:24:26.075Z","modified":"2026-09-08T05:49:13.558Z","0.1.0":"2026-08-18T01:24:26.460Z","0.1.1":"2026-08-18T01:34:34.548Z","0.1.2":"2026-08-18T01:50:19.826Z","0.1.3":"2026-08-20T00:42:37.544Z","0.1.4":"2026-08-20T02:07:18.956Z","0.1.5":"2026-08-20T08:03:38.371Z","0.1.6":"2026-08-27T04:01:47.266Z","0.1.7":"2026-09-02T02:53:59.246Z","0.1.8":"2026-09-07T07:23:21.229Z","0.1.9":"2026-09-08T05:49:13.419Z"},"bugs":{"url":"https://github.com/arcanemachine/pi-tree-editor/issues"},"author":{"name":"Nicholas Moen"},"license":"MIT","homepage":"https://github.com/arcanemachine/pi-tree-editor#readme","keywords":["pi","pi-coding-agent","pi-extension","pi-package","conversation","session","tree"],"repository":{"type":"git","url":"git+https://github.com/arcanemachine/pi-tree-editor.git"},"description":"Safely edit Pi conversation history through the native tree selector","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"readme":"# pi-tree-editor\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/arcanemachine/pi-tree-editor/main/logo.jpg\" alt=\"pi-tree-editor logo\" width=\"250\" />\n</p>\n\n<p align=\"center\" style=\"margin-top: 1rem\">\n  <a href=\"https://asciinema.org/a/K1rtUpxP5iEpu9Mm\" target=\"_blank\">\n    Click here to see a demo!\n  </a>\n</p>\n\n## Intro\n\n`pi-tree-editor` is a [Pi](https://pi.dev) extension for editing conversation history from Pi's native `/tree` selector.\n\nStage changes, review them, and apply them to a new conversation branch. The original branch stays available and unchanged.\n\n> Like this extension? See [my other Pi extensions](https://github.com/arcanemachine/pi-projects).\n\n## Why?\n\nConversation context sometimes needs correction. You may want to:\n\n- fix an earlier user or assistant message;\n- remove an answer, reasoning block, message, or tool exchange;\n- add a missing user message, assistant message, or context note;\n- keep useful context while removing something misleading.\n\n`pi-tree-editor` does this inside the familiar tree interface instead of replacing it with a separate transcript editor.\n\n> This extension changes conversation context only. It does not restore files, Git state, processes, or other effects of earlier tool calls.\n\n## Installation\n\nInstall from npm:\n\n```bash\npi install npm:@arcanemachine/pi-tree-editor\n```\n\nTry it for one run without installing:\n\n```bash\npi -e npm:@arcanemachine/pi-tree-editor\n```\n\nYou can also install from GitHub or a local clone:\n\n```bash\npi install git:github.com/arcanemachine/pi-tree-editor\npi install /path/to/pi-tree-editor\n```\n\nFor development, load the source entry point directly:\n\n```bash\npi -e /path/to/pi-tree-editor/src/index.ts\n```\n\n## Usage\n\n1. Open `/tree`.\n2. Press `Tab` to enter tree-editor mode.\n3. Select a tree item and stage your changes.\n4. Press `Ctrl+S` to review and apply them.\n5. When no changes are staged, press `Tab` again to exit tree-editor mode.\n\n| Key       | Action                                                |\n| --------- | ----------------------------------------------------- |\n| `Tab`     | Enter or exit tree-editor mode when nothing is staged |\n| `e`       | Edit the selected item or content block               |\n| `d`       | Remove the selected block, message, or logical unit   |\n| `a`       | Insert after the selected item                        |\n| `Shift+A` | Insert before the selected item                       |\n| `u`       | Unstage changes for the selected item                 |\n| `r`       | Show or hide reasoning previews in editor mode        |\n| `Ctrl+S`  | Review and save staged changes, then reopen `/tree`   |\n| `Escape`  | Go back one level or leave the current flow           |\n\nUppercase aliases also work for `e`, `d`, `u`, and `r`; `Shift+A` is its own action. In normal tree mode, plain printable input and Backspace remain native search controls. While tree-editor mode is active, the current search query is preserved but paused: only the listed editor actions and native tree controls respond, while other printable input and Backspace are ignored. `Ctrl+S` is the only save shortcut.\n\n### Edit and remove\n\nPress `e` to edit a supported block. For assistant messages, the chooser lists reasoning blocks first and answer blocks second. Distinct blocks in the same message can be edited independently. Search remains frozen until you leave tree-editor mode, so you can safely type editor commands without changing the selected result.\n\nPress `d` on a compound assistant message to choose a reasoning block, an answer block, or the entire message. Tool calls, their results, and permitted extension or metadata entries recorded between them remain one indivisible unit.\n\nReasoning previews are hidden by default in both normal and editor modes. Press `r` in editor mode to show or hide them for the current visit. Staged reasoning markers remain visible when previews are hidden.\n\n### Insert\n\nPress `a` or `Shift+A`, then choose:\n\n1. User\n2. Assistant\n3. Context note\n\nThe default is User. The staged message appears as a selectable virtual row before anything is written to the session. Use `e` to revise it or `u` to unstage it.\n\nSynthetic assistant messages use the active model identity and contain plain answer text only. If Pi cannot provide the required model identity, assistant insertion is unavailable.\n\n### Stage and save\n\nChanges remain in memory until you save. Re-editing the same block replaces its earlier staged value, while compatible changes to different blocks can coexist. Whole-unit removal supersedes changes inside that unit.\n\nPress `Ctrl+S` to open the save menu. `Yes` is the default; after saving, the extension reopens a fresh `/tree` view on the new branch. `Cancel` returns to the tree with the staged changes intact. Saving from the exit confirmation returns to the conversation instead.\n\nEscape from a nested editor or confirmation returns to the previous menu. Escape from a top-level chooser returns to the tree. Leaving `/tree` with staged changes offers three choices: save and return to the conversation, keep editing, or abandon the staged changes.\n\nMultiline text uses Pi's native editor. Use `Shift+Enter` or `Ctrl+J` for a newline. Unchanged text preserves its original whitespace and newline form.\n\n## What can be edited\n\nSupported text includes:\n\n- user messages;\n- ordinary assistant answer blocks;\n- eligible assistant reasoning blocks;\n- visible custom messages and context notes;\n- compaction summaries;\n- branch summaries.\n\nA compound assistant message can keep, edit, or remove individual answer and reasoning blocks as long as at least one content block remains. You can remove the entire message instead when no content should remain.\n\nImages and untouched content blocks keep their original order and data. Tool arguments, tool results, redacted reasoning, malformed content, and unknown provider blocks cannot be edited internally. A complete tool exchange can still be removed as one logical unit.\n\n## Provider-signed content\n\nSome providers sign answer or reasoning blocks so they can verify them in later requests. Changing signed content while keeping its signature can make the next provider request fail.\n\nAn unsigned answer block remains editable when a different recognized block is signed. Reasoning editing is stricter: the message must be recognized, tool-free, non-redacted, and free of other signed answer or reasoning blocks.\n\nSelecting a directly signed answer or reasoning block opens a safe-default confirmation. If you continue, the extension creates an unsigned copy by removing only the selected block's signature. Removing a signed block uses the same explicit warning. Other blocks and signatures remain unchanged.\n\nAn unsigned copy may break provider continuity. The original branch remains available if the edited branch cannot continue. Signed tool calls, redacted reasoning, malformed signatures, and unknown provider content remain protected without an override.\n\n## How changes are applied\n\nAll changes use append-only, same-session, copy-on-write reconstruction:\n\n- Existing entries and session JSONL are never rewritten or deleted.\n- Staged rows do not enter the session before confirmation.\n- The unchanged prefix is retained.\n- The affected suffix is copied to a new branch with fresh entry IDs.\n- Parent links, tool exchanges, compaction references, images, opaque content, and untouched signatures are preserved and validated.\n- A content-free audit entry records IDs, operation types, lengths, counts, and warnings—not message text or signature values.\n- The original branch remains unchanged and accessible.\n\nIf applying a change fails, the extension returns to the original branch when possible. Persistence uses Pi's normal incremental append operations, so reconstruction is not crash-atomic.\n\n## Compatibility and fallback\n\nTested with Pi 0.84.1 and 0.84.3. Compatibility is based on the native capabilities the extension uses rather than a strict Pi version allowlist.\n\nIf those capabilities are unavailable or a runtime hook fails, the extension warns once and leaves native `/tree` available without partial augmentation.\n\n## Development\n\nNode.js 22.19.0 or later is required for package development.\n\n```bash\nnpm install --ignore-scripts --workspaces=false\nnpm run format:check\nnpm run typecheck\nnpm run test\nnpm run build\nnpm pack --dry-run\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}