{"_id":"@99percentpeople/pi-background-tasks","_rev":"27-f1dc3e2d1959c6a37858d588bd7080bb","name":"@99percentpeople/pi-background-tasks","dist-tags":{"latest":"2.1.1"},"versions":{"1.0.0":{"name":"@99percentpeople/pi-background-tasks","version":"1.0.0","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.0.0","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"4601f153ccce2e4c91504bd8e242bad021aa25a5","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.0.0.tgz","fileCount":4,"integrity":"sha512-pVan6GHJaVOOj8LAonnNGZ04AuppRAZCCpETVRkLKj0l0oADv6ziOAH3+e8tFjvqMBv0Kqtxw/MRGa4C+rRU4A==","signatures":[{"sig":"MEUCIQDiWEYybUI91QlGAUhl0nMN90s2aZocIb0GJm5kkzQ2sgIgXwviwjb4ocEEwOz0RmlUhRvHzwq40MTaB8MG6kY0w6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67899},"type":"module","gitHead":"c5fc7dd1fb8361281d18188c519879f7fc0bff9a","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"99percentpeople","email":"myzzzyearz@outlook.com"},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.9.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.14.0","dependencies":{"node-pty":"1.1.0","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.0.0_1784194730124_0.9701735330705006","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@99percentpeople/pi-background-tasks","version":"1.0.1","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.0.1","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"52357b1c67a56ad59296d3f7cf0e2d7acb34b8c4","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.0.1.tgz","fileCount":4,"integrity":"sha512-vre7A4px4Fy64Nv3rqYboMdtIRt0zv12cw3zYTQe09qeBJB/pODeMToU7uhB5l/c2ysbonUPzN4GOG4fku4yQA==","signatures":[{"sig":"MEYCIQDCcuydHIHTImU7WaNZ2e7QEz3bePnP7slQd7D5NQIB0gIhANq9YiE+vdZguT+MjSutjEmnO7u1aZS8Y8Z3tmvacZmf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69832},"type":"module","gitHead":"49a21375484e6660c633cef7fec80d4e934d4c2e","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"99percentpeople","email":"myzzzyearz@outlook.com"},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.9.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.14.0","dependencies":{"node-pty":"1.1.0","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.0.1_1784196315699_0.29601339453977404","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@99percentpeople/pi-background-tasks","version":"1.0.2","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.0.2","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"009468d986286248a6683f3da4d82e1a52506419","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.0.2.tgz","fileCount":4,"integrity":"sha512-cd9qCw1GnKCuAxQgTwrphgMt9vmCT+FYAljtAAjyt/J5Deb9Vw+uWj3eqPXqPQjSi4ZLk4XpoC4GgQlv31NA1w==","signatures":[{"sig":"MEQCIFEhBuT9qbkIXSrWcQwVjHKRioQV0T+YUoMwwD8j9h9LAiBSfsORQOrU0RbE1KKYFYII3LLnLrUm/4XQdm/U0cqLZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76188},"type":"module","gitHead":"bec9cf1fe554153b8260acfb9cfac98eeada9b61","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"99percentpeople","email":"myzzzyearz@outlook.com"},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.9.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.14.0","dependencies":{"node-pty":"1.1.0","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.0.2_1784251743134_0.6983530558169286","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@99percentpeople/pi-background-tasks","version":"1.0.3","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.0.3","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"eb3c20b8387e1f209b5fef6a853f4972673da164","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.0.3.tgz","fileCount":4,"integrity":"sha512-yloK/+dXy1xV8/wfiuZyCcZ65f/7l4k0eoodawOcibSs4quIsYUje19Yj5MIbLgWit35Q9NG50zO4108YjenyA==","signatures":[{"sig":"MEYCIQDmfhTxqWTthvzOk/qE9UE6T1St198FT89APYiV+OMlCwIhAN4Arf9UJcikYJfjSNNVACIyLFFm0y/RDnN4S47y22Tf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80413},"type":"module","gitHead":"a5b4140c3624f6c08fe7acf951bde1fb90eaa8ef","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.1.0","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.0.3_1784257600965_0.0953331832348785","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@99percentpeople/pi-background-tasks","version":"1.0.4","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.0.4","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"3b6c923e9aea668e79031cf52bbe4c138c7a8727","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.0.4.tgz","fileCount":4,"integrity":"sha512-MCKCoW2UADO6KiWCgeLTmFaaZwLF+ZBfDMk275pHpQ3ZtWFeH0rQvT8h1otHOzdqjpmo9LY3vKrJYSp/TQymDQ==","signatures":[{"sig":"MEUCIQCYbcEMOIl6H+cjyrwCbxzmIap3e7tVHQnEV1Q2CUI05AIgKCeZ+Zn5Z6N5COpYtSPKfC5TXsr7Sw3R7Xj2P4BJp9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":82004},"type":"module","gitHead":"295fd9ffda8ae06e36ced256b0a311170cd35770","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.1.0","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.0.4_1784277943922_0.49661708429806994","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@99percentpeople/pi-background-tasks","version":"1.1.0","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.1.0","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"a0f4cf2d4294b5e322fa83a1bdb29f2e2f6c5d6d","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.1.0.tgz","fileCount":4,"integrity":"sha512-ZgKc2G949XKnxgjQ7GuORQnK0rVeXxNhHcgZ4NpwE5nrsHqFO6gAsmHBIfdVDhdrD1TQ66kIsKxITwzuAvM55g==","signatures":[{"sig":"MEUCIHBHd5+7L5d++pTKLCLhhvHl1uN23plwATgYhuP4lO2GAiEA28eV/6wmxY1aD5XNAPwyOYP7Rm3HS/jblz+HfnztePY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100987},"type":"module","gitHead":"9bc14e25b853a2b0b79b93c478533234a44c2ecc","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.1.0","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.1.0_1784390175034_0.03661708597092006","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@99percentpeople/pi-background-tasks","version":"1.1.1","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.1.1","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"1c7c1ca5cd7707b9de2d18e50d99b774053fa5fb","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.1.1.tgz","fileCount":4,"integrity":"sha512-pQCiS3tNvIucCUPbj389RX1RZMbZ9mBVPgCFz1zoae0n50GUB2Mcaef6RM4sHGK9diRZEPZ9hLkl+Q41SaGHNA==","signatures":[{"sig":"MEUCICRigyUOO5R6TxTJD4C1D+VJ5SOY6JIPxVCwDrL3im17AiEA7T0bi3dx2zhYsbD2qoZKV+doEEoP8hkGjolCD6FaBWA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101323},"type":"module","gitHead":"18f6f534c1ddc4bc5ba8f3bafd776038051f2224","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.1.0","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.1.1_1784393019719_0.9543565150136453","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@99percentpeople/pi-background-tasks","version":"1.1.2","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.1.2","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"278849d71492fcf4e23522f723e6a6846f9f806d","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.1.2.tgz","fileCount":4,"integrity":"sha512-bLibJGmYwZOWlPJiEIRqLp/2UUUoGi52uI029TW2mqTWQFR4if8moZmv1ewloqOdg2pu4pDDLh13ETr03w/pXg==","signatures":[{"sig":"MEUCIDMnEs0fHuuzbg51ktmQSD/zu+3h4eUNUWePTq9p1Or7AiEA2Goin8tY7JkRBadmGg/fXMTE9V16Rwin9E4Rz/pYZso=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102907},"type":"module","gitHead":"8fe39430ef1bc62b7bde0babdaebe1b8fd01055a","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.1.0","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.1.2_1784468507476_0.930745431137854","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@99percentpeople/pi-background-tasks","version":"1.1.3","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.1.3","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"a18888aeba86fd7ca206272e564b9cc235d9ae41","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.1.3.tgz","fileCount":4,"integrity":"sha512-js6ydmBK4t7+KtS2GlVvmdFkpcNqY4iu5YmJzL/a03+wWUAhMDkWBTEyHRayQXjWGbZiJTDi2gQpzdt2Rzx1fQ==","signatures":[{"sig":"MEYCIQCCbCwJB5cQXYftewVzdhwuXuGyKEgdAslwaWsjEJfWIQIhAO8WD+17oVqqI3xDtsWtLBF3Y01sJvBAIuqxaJInSuIs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":115150},"type":"module","gitHead":"a2207b5f97c34a9cffb62806d8a4196ee3c24f2c","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.1.0","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.1.3_1784516987048_0.3383296099288926","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@99percentpeople/pi-background-tasks","version":"1.1.4","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.1.4","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"cb4d404f98825e977fe99e61ea9bb31c89321979","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.1.4.tgz","fileCount":4,"integrity":"sha512-l+uc8YANFo336m5chd9aGXd676hZmegu/aIeRbS8F8fa/94R+XDO9JvLK5ytpI/fMOMuKLsCMt6L4/yDTEHHxg==","signatures":[{"sig":"MEQCIFdFv3fP1qdWQVkt3t7XszJz4ZYMkkPWqPdDXzye28ufAiAtOos+uecTmwTTH+8a/msnEAjcIgxdhYVNZ6Hdy7p+1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":115158},"type":"module","gitHead":"8324b875a6580f872d6f6c8faf8f41ad0ef1cbc4","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.1.4_1784708298128_0.3526377321346186","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.0","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.0","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"886e19c11ac84bdf2e5e977bc9763ad545f96025","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.0.tgz","fileCount":4,"integrity":"sha512-W7Q3BnKYkXPH3hbXjX6cWe/CH+rma/Q7ApAaMoeeqAKit7Z/KIW4YBPZeXryXrync8Roia8PZi/e9NDYMLC1Nw==","signatures":[{"sig":"MEYCIQDfO90nXZSU9KdJzWarxaH9dH4ovpmT9+MmHoypA0FCrAIhAPlqk6/CtuHv1CqgwVOlgrbU+VJnNQ2QOo5qFvGm2nQo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116168},"type":"module","gitHead":"e07e0438f5febd306acd9597ff8e3ff09a9b155a","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.0_1784788968438_0.24494526532953476","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.1","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.1","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"79ff6cf8b0858fad7dca6041d5bf103ab273b144","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.1.tgz","fileCount":4,"integrity":"sha512-hRX1RBFggFFSUJ4EjzySvUQ8R56lXSSLrI2SdYSN/cs/VscUVXf23m3bSlSdVHZGbtymImxH9otR0bYgxm4MhA==","signatures":[{"sig":"MEYCIQCP2ReYo727KtTGr9N2wRfbK+pxvQRzl0pcIXHaLoQ76AIhAP7BXVYL7g2bA4k8OuiHD9oGX6JV6BmghxO8BNdCxWWk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119155},"type":"module","gitHead":"bb14a5b2495b0a93270c142da85676e57dabf1e7","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.1_1785214955708_0.30620970640830425","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.2","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.2","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"0af003c4c25db1f4d6a0ad598c91d061640bb675","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.2.tgz","fileCount":4,"integrity":"sha512-RM+K70h/Tm38VaJPvWYGyOt6QrfxhepDDm0okhc2WFboTyk2wggLorBp4p2dhpNBeujxrUjfFsSUcYgV224I6A==","signatures":[{"sig":"MEUCIE7xj/mHBKCtI7qIghSVH5jBPQSUh5Pec5VfuS0ZQRAsAiEAihRgxuvOjvuftDXfDdgMtbdVso8/e8hJfyoUSFBl9x0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119677},"type":"module","gitHead":"d4d91dd00e8769a04c525471107ecc3b0893e408","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.2_1785295024792_0.02735809988389115","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.3","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.3","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"a5c6421399a8bec7f2595d79b8dfb5259ce1a8d0","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.3.tgz","fileCount":4,"integrity":"sha512-J+NEj+3Y98bZ8wdpZ0Qp9IpmTh7zNTe0iDaMDOsVWfMCHgcXLdmq644p2GmXbzJs0EjmkIFFTyLPMnoV+xWvgQ==","signatures":[{"sig":"MEQCIA4Op8m5cr3gUgI1L2LfgQlgyt+ywWXWf+IC0rvU31WoAiBZIp/3/d/lLDQzicrQ+cDoLmulqcpJpMSv5/D6YssJvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119807},"type":"module","gitHead":"09ccb14eb64b8e8053f7361f53005e2c6d79b7f3","scripts":{"prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.3_1785381852479_0.12944491865871965","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.4","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.4","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"c8bc66d9489122ad48b7699fdc2f738adf3f075f","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.4.tgz","fileCount":5,"integrity":"sha512-DOgpmGjwj66sLruEyz6vlW8faK77XS9OKS2/XI/M0cwPkGNab85FYKdHywNN5/kM1CbHGpuQ17sXosU7lx4kUA==","signatures":[{"sig":"MEYCIQDxZ5W2MwTvxTHFSmzy7YEd3rQAyb8PbaZHr0i0PC1TAQIhAMmynBDCZf+s00IL9+yo6NX1ptRDAgAW91RmdrAVeiEU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":283393},"type":"module","gitHead":"b01a46896668a3092656b86841488f17ac886979","scripts":{"build":"bun run ../../scripts/build-package.ts","prepack":"bun run build","prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.4_1785395903306_0.48203235992652926","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.5","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.5","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./dist/index.ts"]},"dist":{"shasum":"5fff5e1c890a9d6c0d676458eed972c55d4907ca","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.5.tgz","fileCount":5,"integrity":"sha512-cTB5CCuPnHmkk1ZC+zBmMGuuKbpbPVvb/k/gamBzfhcfWgYz4zmiFxsJI17gPbU3ttjrrkcXtJ0ajxwUlnVCng==","signatures":[{"sig":"MEUCIQDNBy5fh3IOKGB+zIpaQDwnJab/RGEXj1UXvlA1p02CDAIgJEU94jzzPeMeykyFZqwygbwI9zdXDjENJsC6pHIpzro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":283393},"type":"module","gitHead":"0d85185fc1af2c66df54fcd9347c6e53d10e83f6","scripts":{"build":"bun run ../../scripts/build-package.ts","prepack":"bun run build","prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.5_1785411522022_0.9569036412105851","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.6","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.6","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./dist/index.ts"]},"dist":{"shasum":"e02e576eb1d00836900e426ba51da90767884424","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.6.tgz","fileCount":5,"integrity":"sha512-gGvz60TZfbRPU7zxI3mysNSQcphRhYATPnveDuFdTc0V7vD23x/HbXr0/Gqa3GSOVdNzWiBu2lUMiaDAeub7Jw==","signatures":[{"sig":"MEUCIDu4juk6+0no0D0KyaSBfuzPVSnpeZKleqAQSnvRIAe7AiEA/Cavg0n0r1VnAI8HwKN3nAKNrd/ZCW87nzWr0P1I8/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":283622},"type":"module","gitHead":"568ca054f98b5bb1e9413cd6ff4eb8a36a063608","scripts":{"build":"bun run ../../scripts/build-package.ts","prepack":"bun run build","prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.6_1785500958179_0.5420002134781365","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.7","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.7","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./dist/index.ts"]},"dist":{"shasum":"b068abf1550cf17467e8e45652fc27e1f7b9b8dc","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.7.tgz","fileCount":5,"integrity":"sha512-iLVYEjTfDrdz+s9RdQ8+C6tNwEiNKtcEky2lY9Y28U+oRr64F/T620qaCSMuuaRS0fwfDVcSlSOJSuwZbGWR7g==","signatures":[{"sig":"MEYCIQDnVkziGK3FVaZmUs6PsehUBJCoFxxx3PfV14NeErT9WgIhAKtqogaDQFKq4fXWtUQxW+ELfxo3+3SqSih+iNS5M3JU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285290},"type":"module","gitHead":"8e807d48d1d05b29c0517900c8d0a3962693f808","scripts":{"build":"bun run ../../scripts/build-package.ts","prepack":"bun run build","prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.7_1785591069780_0.9120489603119959","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.8","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.8","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./dist/index.ts"]},"dist":{"shasum":"103ebb1f40451a22a123032e3dbf1318bccef1e4","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.8.tgz","fileCount":5,"integrity":"sha512-ATMyDc6Mq9BhTQYuhDILTZnToh5ATL+MNgcb7rsvxXmmh2WdOExm29/HKODdQ4DH+Tqec/QZkGeow9Nl+xJmBQ==","signatures":[{"sig":"MEUCIQCbILVon6zOa7ca5R0bLNhG6yENB+y7N5pHrDv7Yx45zgIgNpRvJ4IlTwJU/mgtJSLn5iqKeMPtohIR4yXUpOPFm70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285693},"type":"module","gitHead":"f9a96a438dbe56f1cab04e5b5392e5494bb7d686","scripts":{"build":"bun run ../../scripts/build-package.ts","prepack":"bun run build","prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.8_1785607689637_0.06010954779848565","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.9","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.9","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./dist/index.ts"]},"dist":{"shasum":"e709040bb9bdb6c9fcd780163301bead2a5d772b","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.9.tgz","fileCount":5,"integrity":"sha512-HxIN08YbwLaM3i8D57PSnyFeTavph4ONQKLGD8fhl73REwdU6deNFkMNHstFiPuy8Ai9qBkOQv2+L7TCOvN2TQ==","signatures":[{"sig":"MEUCIBzkNPNMMxQbbDxJ6jAc2dV49HxPbuO0Jg5FYBByQG1oAiEA2ZAbvr/EnGjvSTjd+y+TREy3wblYZI+i5ZUreUBkM5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":303320},"type":"module","gitHead":"b2bbc4fd54063723c4880503166272c0965e7e1f","scripts":{"build":"bun run ../../scripts/build-package.ts","prepack":"bun run build","prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.9_1785767130970_0.34033042555863724","host":"s3://npm-registry-packages-npm-production"}},"1.2.10":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.10","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.10","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./dist/index.ts"]},"dist":{"shasum":"737692bbad5bbd6769f067c4dea634509056ac2a","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.10.tgz","fileCount":5,"integrity":"sha512-653lxIKy2nD4+5E1t4OSBIGCIiqpGiglz/0wFo5BClMQCT9llsHrakzhWgDYzPHeFXzarpNO0RHGFDGFrZaHkQ==","signatures":[{"sig":"MEYCIQDdfMOHfBPA/2uNJC1gEoER/WG0MOK4B7RRH+fJHARPYgIhALY9RnufD2eUwAj9eB7JQ5FVXfBGMHfbAfvJup4NLM0y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":307331},"type":"module","gitHead":"0fa510de5b4c3d7ce9b67939223ef113adc93cc2","scripts":{"build":"bun run ../../scripts/build-package.ts","prepack":"bun run build","prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.10_1785895889930_0.4259122447535586","host":"s3://npm-registry-packages-npm-production"}},"1.2.11":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.11","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.11","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./dist/index.ts"]},"dist":{"shasum":"6df336200d242a43e16596cf21131d951d6e2f63","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.11.tgz","fileCount":5,"integrity":"sha512-TKNJwCvJMocMEXHIb0sEI7a6Qrv6UpYbqO5ERoQQkfk0nv/1yFyZoRUdZFLkOzF/f0FpYp4QqnT7Z9QRWtHtvw==","signatures":[{"sig":"MEQCIHvpc7jq+XdHKwsohguIJ4vnj1Ow4OVv61AD7gteKlVfAiAHrRFOB320pUONQK/FobPcPIQnRrJZQZqZowTiV+6iQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":321573},"type":"module","gitHead":"b09917113595308f8757954ace16f706d3ed28c3","scripts":{"build":"bun run ../../scripts/build-package.ts","prepack":"bun run build","prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.11_1785919978436_0.7771641133860676","host":"s3://npm-registry-packages-npm-production"}},"1.2.12":{"name":"@99percentpeople/pi-background-tasks","version":"1.2.12","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@1.2.12","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./dist/index.ts"]},"dist":{"shasum":"3c8b84505183b9d4a16840bf6b6986b430f808eb","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-1.2.12.tgz","fileCount":5,"integrity":"sha512-bPAfVqIe+v+ZhtG9IJ/QBMn2dyTjSaG/vFem1w0YPOeRoLTBC8ESyY3YKPI/D96mkjfOeagPvfEmxe2Ds9Rvsw==","signatures":[{"sig":"MEUCIQDu6V566+diJjYl7QMxHars296fhaDkWsAPZ8udsOyh1QIgG1We20/hmn+9iQqaMxs1mz1KgbciFNlIsGvipJpodgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@1.2.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":322180},"type":"module","gitHead":"48fe5887b68a2a221ed4ba50ff1696748fe30ca5","scripts":{"build":"bun run ../../scripts/build-package.ts","prepack":"bun run build","prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background tasks, explicit waits, logs, signals, and PTY/TUI support for Pi","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_1.2.12_1785922004873_0.23550058178920685","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@99percentpeople/pi-background-tasks","version":"2.0.0","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui","ssh","remote-terminal"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@2.0.0","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./dist/index.ts"]},"dist":{"shasum":"5cf8beadb397efbb0125c7155063d0f31b3a3b8f","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-2.0.0.tgz","fileCount":5,"integrity":"sha512-3AKOQ2PtT0eDS40EXNYNzbI9rDvB1JiuNhXfvuNs85LKn01r/snxwqehbqLCz8WwPMkhAm+TDYWqDzURYmaNIQ==","signatures":[{"sig":"MEUCIQDq1MOlhzGjn8mPdYw7Dwk8PdXmr0D4DDzWZ4aUYPUVsAIgWadLzfgpnifFyCcri9Rmplh7KfC57Z3P1SgOVX+aDnk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":360289},"type":"module","gitHead":"0d231ab3a6a438eff933532cd9c9e698d553f977","scripts":{"build":"bun run ../../scripts/build-package.ts","prepack":"bun run build","prepublishOnly":"bun run --cwd ../.. check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background commands and attachable PTY/TUI sessions for Pi, with SSH Remote integration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_2.0.0_1785945615752_0.4393278398692122","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@99percentpeople/pi-background-tasks","version":"2.0.1","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui","ssh","remote-terminal"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@2.0.1","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"225f6ef29ca5b31561829d8197c08ac7d0d2c142","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-2.0.1.tgz","fileCount":5,"integrity":"sha512-Pk0gIKnI8JjkNr/8F6ccbQlULJwD0LkAu7SZm+8IFoj1zf3SnQ3GYVDgvbVZpxyJb29tFp7jeOONZ6efCQ5vDA==","signatures":[{"sig":"MEUCIQCfkZSEFr4RHg73oiNTFafxm3KznQaT7UOvHG1DRAqMDQIgdknEvT0SQfOc2xRLx5Ir+5784L4EcFzvSKBf3VYJUhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":289732},"type":"module","gitHead":"e9fb82fa5b14fd22f55feb487bbb814e1ab45206","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background commands and attachable PTY/TUI sessions for Pi, with SSH Remote integration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_2.0.1_1786199265343_0.30194331433735044","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@99percentpeople/pi-background-tasks","version":"2.1.0","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui","ssh","remote-terminal"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-background-tasks@2.1.0","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"90543178f2295db9a022d4b31306212466f82a5b","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-2.1.0.tgz","fileCount":5,"integrity":"sha512-N74i75R7qgXT1RXVF+SA4iMYBhbHS5rPe7+rHXw9oMZCl9leqkWFNu/11gdhCUY1hgmyGqqZ5xxKcHJBMiCzng==","signatures":[{"sig":"MEUCIQD7Kpl1rFC1qfpEAZOAiguMoQ5Dq/8LbFUjnzLFwzqFCgIgBldxLAMthfk7F5mGSnX3XneldyWLpZsFc2jIZSfQG20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":296611},"type":"module","gitHead":"5e888a6a889405475c38e6955f2068adee3402d3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/background-tasks"},"_npmVersion":"11.16.0","description":"Background commands and attachable PTY/TUI sessions for Pi, with SSH Remote integration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"1.2.0-beta.14","@xterm/headless":"6.0.0","@xterm/addon-serialize":"0.14.0","@99percentpeople/pi-shared-settings":"0.1.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"trustedDependencies":["node-pty"],"_npmOperationalInternal":{"tmp":"tmp/pi-background-tasks_2.1.0_1786328987328_0.9350199273356405","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@99percentpeople/pi-background-tasks","version":"2.1.1","description":"Background commands and attachable PTY/TUI sessions for Pi, with SSH Remote integration","type":"module","pi":{"extensions":["./index.min.js"]},"keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui","ssh","remote-terminal"],"author":{"name":"99percentpeople"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/99percentpeople/pi-extensions.git","directory":"extensions/background-tasks"},"bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*","typebox":"*"},"dependencies":{"@xterm/addon-serialize":"0.14.0","@xterm/headless":"6.0.0","node-pty":"1.2.0-beta.14"},"trustedDependencies":["node-pty"],"gitHead":"555160c2730fc23372cd23eaf6f3faaad1d6565f","_id":"@99percentpeople/pi-background-tasks@2.1.1","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-XvjIMVaugLsLC7U0O8TZU4i+wBg4doGMQXGA8bel2+noWtzRQ0QgcTH3aNulF2E+zvN7FQ56YH5g+wK1Psg7LQ==","shasum":"befe98e0eef1e718c9e1d95593debebec4391842","tarball":"https://registry.npmjs.org/@99percentpeople/pi-background-tasks/-/pi-background-tasks-2.1.1.tgz","fileCount":5,"unpackedSize":324764,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-background-tasks@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBoGImfS1z6CQhr/C6dHlrhsVYkwV1nLlkEZxCq2qQEbAiB5t+AQfzDewqGuhEn2gYGL17rBNFLOeJm8ldsAIDsyJw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f8124b1c-3a73-4bba-af06-3ae3777dc5b6"}},"directories":{},"maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-background-tasks_2.1.1_1786728450349_0.13317414784826598"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-16T09:38:49.982Z","modified":"2026-08-14T17:27:30.795Z","1.0.0":"2026-07-16T09:38:50.296Z","1.0.1":"2026-07-16T10:05:15.837Z","1.0.2":"2026-07-17T01:29:03.255Z","1.0.3":"2026-07-17T03:06:41.109Z","1.0.4":"2026-07-17T08:45:44.077Z","1.1.0":"2026-07-18T15:56:15.218Z","1.1.1":"2026-07-18T16:43:39.867Z","1.1.2":"2026-07-19T13:41:47.590Z","1.1.3":"2026-07-20T03:09:47.169Z","1.1.4":"2026-07-22T08:18:18.268Z","1.2.0":"2026-07-23T06:42:48.566Z","1.2.1":"2026-07-28T05:02:35.824Z","1.2.2":"2026-07-29T03:17:04.923Z","1.2.3":"2026-07-30T03:24:12.608Z","1.2.4":"2026-07-30T07:18:23.462Z","1.2.5":"2026-07-30T11:38:42.197Z","1.2.6":"2026-07-31T12:29:18.355Z","1.2.7":"2026-08-01T13:31:09.937Z","1.2.8":"2026-08-01T18:08:09.779Z","1.2.9":"2026-08-03T14:25:31.190Z","1.2.10":"2026-08-05T02:11:30.103Z","1.2.11":"2026-08-05T08:52:58.625Z","1.2.12":"2026-08-05T09:26:45.297Z","2.0.0":"2026-08-05T16:00:15.908Z","2.0.1":"2026-08-08T14:27:45.503Z","2.1.0":"2026-08-10T02:29:47.455Z","2.1.1":"2026-08-14T17:27:30.490Z"},"bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"author":{"name":"99percentpeople"},"license":"MIT","homepage":"https://github.com/99percentpeople/pi-extensions#background-tasks","keywords":["pi-package","pi","coding-agent","background-tasks","pty","tui","ssh","remote-terminal"],"repository":{"type":"git","url":"git+https://github.com/99percentpeople/pi-extensions.git","directory":"extensions/background-tasks"},"description":"Background commands and attachable PTY/TUI sessions for Pi, with SSH Remote integration","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"readme":"# @99percentpeople/pi-background-tasks\n\nRun long-lived commands and full-screen terminal applications alongside the\n[Pi coding agent](https://pi.dev/) without blocking the conversation. Use it\nlocally for builds, servers, tests, and TUIs—or combine it with\n[`@99percentpeople/pi-ssh-remote`](https://www.npmjs.com/package/@99percentpeople/pi-ssh-remote)\nto run and interact with the same workloads on a remote Unix or Windows host.\n\nJust ask Pi to *\"start the dev server in the background\"* and keep chatting.\n`bg_*` tools start, wait on, inspect, interact with, and stop tasks;\n`/bg-attach` opens a live terminal (`Ctrl+]` detaches without stopping it).\n\n## Demo\n\nAsk Pi to start a server in the background—the task keeps running while you\nchat, and the status widget tracks it:\n\n![background-tasks demo](https://raw.githubusercontent.com/99percentpeople/pi-extensions/master/promo/demo/background-tasks.gif)\n\nThe same start → attach → detach workflow works for a remote TUI when SSH Remote\nis active—here, `htop` runs in a remote PTY:\n\n![background-tasks SSH Remote htop demo](https://raw.githubusercontent.com/99percentpeople/pi-extensions/master/promo/demo/ssh-remote-htop.gif)\n\n## Highlights\n\n- Keep Pi responsive while builds, servers, watchers, tests, REPLs, and TUIs run\n- Choose lightweight pipe logging or a real PTY with a parsed terminal screen\n- Attach and detach without pausing, restarting, or reconnecting the child\n- Forward PTY keyboard, mouse, focus, and resize events\n- Retain output while detached and replay it before seamlessly following live data\n- Track status, duration, environment, and optional output in a compact widget\n- Address tasks by stable, unique names as well as generated IDs\n- Compose start, wait, logs, input, signals, and termination without polling\n- Route tasks through named shell providers such as SSH Remote and Pwsh Adapter\n- Keep remote tasks bound to their original host and cwd across workspace switches\n- Reconcile SSH transport loss before reporting a remote task as finished\n\n## Contents\n\n- [Install](#install)\n- [Quick start](#quick-start)\n- [Run a remote TUI over SSH](#run-a-remote-tui-over-ssh)\n- [Tool ordering and parallelism](#tool-ordering-and-parallelism)\n- [Pipe and PTY modes](#pipe-and-pty-modes)\n- [Live attach and final snapshots](#live-attach-and-final-snapshots)\n- [Output retention and cleanup](#output-retention-and-cleanup)\n- [Sending input and keys](#sending-input-and-keys)\n- [Shell and platform behavior](#shell-and-platform-behavior)\n- [Shell adapter protocol v2](#shell-adapter-protocol-v2)\n\n## Install\n\nFor local background commands and TUIs:\n\n```bash\npi install npm:@99percentpeople/pi-background-tasks\n```\n\nAdd SSH Remote when tasks should run in the active remote workspace:\n\n```bash\npi install npm:@99percentpeople/pi-ssh-remote\n```\n\n> **Native `node-pty` dependency:** `pnpm` and `bun` may report\n> `Ignored build scripts: node-pty`. On platforms covered by node-pty's shipped\n> prebuilt binaries, the warning alone is not an installation failure and no\n> approval is required. A source build on an unsupported platform still needs\n> the package manager to allow node-pty's install script.\n\nThe packages are independent: Background Tasks works locally by itself, while\nSSH Remote automatically registers a higher-priority remote provider when both\nare installed. Background Tasks 2.x uses shell adapter protocol v2. Pair it with\nSSH Remote 0.5.0 or newer and, on Windows, Pwsh Adapter 1.1.0 or newer. Legacy\nunnamed providers are rejected so a remote launch cannot silently fall back to\nthe local machine. Update installed adapters before updating Background Tasks.\nSee the\n[SSH Remote documentation](https://github.com/99percentpeople/pi-extensions/tree/master/extensions/ssh-remote)\nfor target, authentication, and transport setup.\n\nDuring local extension development:\n\n```bash\npi -e ./extensions/background-tasks/index.ts\n```\n\n## Quick start\n\nDescribe the desired outcome naturally:\n\n```text\nRun the development server in the background and tell me when it is ready.\nStart lazygit in a background PTY named local-git so I can attach to it.\nRun the test suite in the background and inspect the failures when it exits.\n```\n\nBackground execution is appropriate when the user asks for it, the process must\nremain available for later interaction, or Pi can perform useful independent\nwork while it runs. Runtime alone is not a reason to use these tools. If Pi\nneeds a command's result before it can continue, it should use the foreground\n`bash` tool with an appropriate timeout instead of emulating synchronous\nexecution with `bg_start` → `bg_wait` → `bg_logs`.\n\nThe model can start, wait for, inspect, signal, and stop tasks. Model-facing\ntools have narrow responsibilities: `bg_wait` reports completion plus the latest\npipe log line, `bg_status` reports metadata plus the latest pipe log line,\n`bg_logs` reads full retained output, and `bg_kill` reports termination.\nEvery model-facing `id` accepts either the generated task ID or its unique,\ncase-insensitive name. Users normally need only these interactive commands:\n\n```text\n/bg-attach <task-id>\n/bg-kill <task-id>\n```\n\nOmit the task ID to choose from an interactive list. Press `Ctrl+]` to leave\nan attached console without stopping its task.\n\n## Run a remote TUI over SSH\n\nWith both packages installed, remote TUI execution uses the same Pi conversation\nand the same Background Tasks UI:\n\n```text\n/ssh-connect devbox:/srv/project\n```\n\nThen ask Pi:\n\n```text\nStart lazygit in a background PTY named remote-git so I can attach to it.\n```\n\nRun `/bg-attach` and select `remote-git` from the task list, or pass the task\nID shown by `bg_start`:\n\n```text\n/bg-attach <task-id>\n```\n\nThe PTY is created locally around the system OpenSSH client, while SSH allocates\nthe terminal on `devbox` and starts `lazygit` in `/srv/project`. The attached\nscreen forwards keyboard, mouse, focus, and resize events. Press `Ctrl+]` to\nreturn to Pi; `lazygit` keeps running remotely and its terminal state continues\nto be retained. You can keep chatting, change the SSH cwd, switch hosts, or\nreturn to the local workspace—the existing task stays bound to\n`SSH devbox:/srv/project`. The model can continue addressing it by the unique\nname `remote-git`, and `/bg-attach` keeps it in the interactive task list.\n\nOther useful remote PTY prompts include:\n\n```text\nStart htop in a remote background PTY named host-monitor.\nRun nvim README.md in a background PTY and let me attach.\nStart k9s remotely in a background PTY named cluster-ui.\n```\n\nImportant details:\n\n- The task must use PTY mode; full-screen TUIs are not interactive in pipe mode.\n- The program must be installed on the remote host.\n- Remote jobs always use the local system OpenSSH client. They reuse SSH\n  Remote's managed ControlMaster when available; otherwise configure key or\n  agent authentication. Foreground passwords are never copied into background\n  processes.\n- Detaching with `Ctrl+]` leaves the task running, but Pi session shutdown still\n  terminates it. This extension is background task management, not a persistent\n  remote service or terminal multiplexer.\n\n## Tool ordering and parallelism\n\nBackground tool calls that target the same task reference in one model response\nexecute strictly in source order. A reference can be the generated ID or the\nunique task name. `bg_start` joins the same ordering chain by name, so the model\ndoes not need to spend a separate round learning the generated ID before it can\ncompose the rest of a finite workflow:\n\n```text\nbg_start(name=A) → bg_wait(id=A)                    # start, finish, latest pipe log line\nbg_start(name=A) → bg_wait(id=A) → bg_logs(id=A)   # add full/multiline or PTY output\nbg_status(A)                                        # status plus latest pipe log line\nbg_send(A) → bg_wait(A) → bg_logs(A)               # interact, wait, then read full output\nbg_kill(A) → bg_logs(A)                             # terminate, then read final output\n```\n\nThe model should emit each complete chain in one response instead of waiting for\none tool result before emitting the next call. Calls for different tasks remain\nindependent and execute in parallel. Ordering is intentional:\n`bg_logs(A) → bg_wait(A)` reads available output first and only then waits.\nMultiple chains such as `bg_wait(A) → bg_logs(A)` and\n`bg_wait(B) → bg_logs(B)` can run concurrently. A `bg_status` call without an\nID is a global snapshot and is not part of any single-task chain.\n\n## Pipe and PTY modes\n\n| | Pipe mode | PTY mode |\n| --- | --- | --- |\n| Best for | Builds, servers, scripts, tests, and watchers | TUIs, REPLs, debuggers, and terminal-aware programs |\n| Output model | Separate stdout and stderr logs | One terminal screen with ANSI control sequences interpreted |\n| Attached view | Combined stdout/stderr in arrival order | Live virtual terminal |\n| Direct attached input | Read-only; send stdin through Pi | Keyboard and mouse input are forwarded |\n| Resize behavior | Local console reflow only | Debounced terminal and child-process resize |\n\nPipe mode is the simpler default for commands that only need reliable logs.\nPTY mode sets up a real pseudo-terminal, so programs can detect terminal\ncapabilities, redraw their screen, request mouse tracking, and respond to window\nsize changes as they would in a standalone terminal.\n\n## Live attach and final snapshots\n\nEach task owns a virtual console from the moment it starts. Output is processed\ncontinuously whether attached or not. When `/bg-attach` opens the console, it\nfirst renders the retained terminal buffer and buffers only the small amount of\noutput arriving during that replay. The child process is never paused and its\nstdout or stderr is never reconnected to the physical terminal.\n\nFor PTY applications, attach forwards keyboard input and terminal resize events.\nExtended mouse encodings, including SGR and SGR pixel mode, are restored when\nthe application enables them. Mouse tracking, encodings, and focus modes are\nreset on detach so terminal state does not leak back into Pi.\n\nIf a task exits while attached, the console stays open until `Ctrl+]`:\n\n- pipe mode appends a completion message;\n- PTY mode overlays the message in the bottom-right corner without changing the\n  application's final screen.\n\nThe completion message exists only on the user's physical terminal. It is not\nwritten into retained logs, `bg_logs`, or the final virtual-terminal snapshot.\nA finished task can be attached again in read-only mode while its snapshot is\nstill retained.\n\n## Status widget\n\nPi displays background tasks below the editor with their status, duration, and\noptional latest pipe output. The collapsed widget shows only the task totals by\ndefault, or it can show 1, 3, or 5 prioritized task rows. Running tasks are\nselected before the most recently finished tasks while preserving task order.\nPi's standard tool expansion shortcut (`Ctrl+O` by default) reveals the complete\ntask list. Output previews can be disabled or limited to failures, finished\npipe tasks, or all pipe tasks. Finished PTY tasks stay compact because their\nfinal screen remains available through attach or explicit logs.\n\nThe header uses separate colors for the total, running, and finished counts so\nactive work stands out without making the whole widget look like a warning.\nWhen a shell adapter supplies an execution label, task rows show it inline—for\nexample `SSH devbox:/srv/project`. Running durations and recent output refresh\nwithout repeatedly registering a new widget.\n\n## Output retention and cleanup\n\nWithin the current session, a running task continues across ordinary agent\nruns and remains available to the background tools. Reloading or shutting down\nthe session terminates running tasks.\n\nIf a task finishes before the current agent run settles, its final status and\nretained output remain available only for the rest of that run and are normally\nremoved before the next run starts. Only a task that is still running when the\nagent settles and then finishes while the agent is idle remains available\nthroughout the next agent run. It can be inspected multiple times during that\nrun and is normally removed before the following run.\n\nOnce removed, the old task ID is no longer available through attach, status,\nlogs, or wait operations. Task names must be unique (case-insensitively) among\nall retained running and finished tasks; a name becomes available again when its\nold task is removed by this cleanup lifecycle. Completed snapshots are\ncheckpointed as hidden Pi session entries, so reloading the extension or\nnavigating the session tree does not clear them early. Cleanup writes a matching\nsession event, so an expired snapshot cannot reappear after another reload.\n\nLive pipe stdout and stderr remain in memory and are capped at 4 MiB each, with\nthe oldest bytes discarded when that limit is reached. A persisted pipe\nsnapshot keeps the latest 500 lines, capped at 256 KiB per stream. The attached\nconsole snapshot keeps 200 lines of scrollback and is capped at 512 KiB. No task\noutput is written to a temporary disk directory. This is not persistent job\nmanagement: reload restores only completed read-only snapshots, while session\nshutdown still terminates running processes and disposes live virtual terminals\nso it does not leave orphaned tasks.\n\n## Sending input and keys\n\nPi can send ordinary text, terminal keys, or signals without opening an attached\nconsole. Text is exact and never implies Enter. Special keys use `<...>` tokens:\n\n```text\n<C-o>filename.txt<Enter>\n<Esc>iHello<Enter>\n<Down*3><Enter>\n```\n\nThe input syntax supports Ctrl+A-Z and Ctrl punctuation, Alt/Meta combinations,\narrows, navigation keys, Insert/Delete, F1-F12, Space, Enter, Escape, Tab, and\nBackspace. Modifiers can be combined, such as `<C-A-d>` or `<S-A-Left>`, and\nkey repetition uses forms such as `<Down*3>`. Use `\\<` for a literal `<` and\n`\\\\` for a literal backslash.\n\nPipe attachments do not forward keyboard input directly, but Pi can still send\nstdin through the background task interface. PTY attachments forward input\ninteractively and the same key syntax remains available for model-driven input.\n\nThe signal input accepts a portable named-signal vocabulary and validates each\nrequest against the task's actual execution environment. Local Unix tasks use\ntheir process group; a shell adapter can instead declare a process, process\ngroup, or process-tree target with its own supported signals. SSH Remote uses\nthis path so signals reach the remote process group or Windows process tree\ninstead of merely killing the local `ssh` transport. Signal behavior remains\nplatform-specific, and unsupported requests return an explicit error. Use the\ndedicated kill operation when the goal is reliable process-tree termination.\n\n## Output inspection\n\nFor pipe tasks, `bg_wait` and `bg_status` include the latest non-empty log line\nand identify whether it came from stdout or stderr. The same value is available\nas `latestLog` in tool details; a status list includes it per task. They omit the\nfield when no pipe output is available and never expose a PTY terminal snapshot.\n\nUse `bg_logs` when one latest line is insufficient or any PTY output is needed.\nPipe tasks retain stdout and stderr separately, while PTY tasks expose the parsed\nterminal buffer rather than raw ANSI escape sequences. Omitting `stream` works\nin both modes: pipe tasks return stdout and stderr, and PTY tasks return terminal\noutput. Use `tail` or `from_line`/`max_lines` to select the retained range. An\nempty running task reports `(no output yet)`; once it finishes, the same empty\nlog is reported as `(no output)` (or `(no terminal output)` for PTY mode).\n\n`bg_kill` still returns no process output. Emit `bg_logs` after `bg_wait`,\n`bg_status`, or `bg_kill` only when fuller pipe output or PTY terminal output is\nneeded.\n\n## Pi capabilities\n\nThe extension exposes a compact set of model-facing operations: start, wait,\nstatus, logs, send, and kill. Each operation has one responsibility, while\nsame-reference source ordering—including `bg_start` by unique name—composes a\ncomplete workflow in one model response without sacrificing parallel execution\nacross tasks. Users can usually describe the desired outcome in natural\nlanguage instead of calling these operations manually. While a tool call is\nstreaming, fields appear only after the model writes them; missing arguments are\nomitted rather than rendered as placeholders.\n\n## Shell and platform behavior\n\nBackground commands follow Pi's configured Bash resolution and command prefix,\nso they use the same syntax as the built-in `bash` tool. On Windows this means\nPi's configured `shellPath`, Git Bash, or a `bash.exe` found on `PATH`, rather\nthan `cmd.exe`.\n\nInstalling `@99percentpeople/pi-pwsh-adapter` explicitly switches both Pi's\nbuilt-in shell tool and background tasks to PowerShell syntax.\n\nInstalling\n[`@99percentpeople/pi-ssh-remote`](https://www.npmjs.com/package/@99percentpeople/pi-ssh-remote)\nregisters a higher-priority OpenSSH provider for pipe and PTY tasks whenever an\nSSH workspace is active. Commands, including full-screen PTY applications, run\nin the remote cwd; an explicit `bg_start.cwd` is mapped into the remote\nworkspace without requiring that absolute directory to exist locally. See\n[Run a remote TUI over SSH](#run-a-remote-tui-over-ssh) for a complete example.\n\nSSH launches are tagged with an immutable environment such as\n`SSH devbox:/srv/project`. `bg_start`, `bg_wait`, `bg_status`, `bg_logs`,\n`bg_send`, and `bg_kill` return that location in their task information, and\nfinished snapshots retain it across extension reloads. A running task stays in\nthe environment where it started; later tasks follow SSH host, cwd, and\nlocal/remote transitions.\n\nSSH task signals use a short control connection associated with the immutable\nlaunch host. A task lease keeps its launch-time ControlMaster available across\nworkspace switches and shutdown-handler ordering; when no managed master\nexists, the adapter retries with key or agent authentication. Foreground\npasswords are not copied into background or signal processes. On Unix the\ncontrol request targets the recorded remote process group; Windows termination\nuses the recorded remote process tree. This keeps\n`bg_send` signals, `bg_kill`, and normal Pi shutdown from treating termination\nof the local SSH transport as proof that the remote command exited. If an\nadapter cannot confirm cleanup after its local transport disappears, the task\nenters `disconnected`: retained logs remain readable and adapter signals can be\nretried, but stdin is unavailable until the task is terminated or confirmed\nfinished.\n\n### Shell adapter protocol v2\n\nShell adapters can register independently instead of competing through\nlast-writer-wins state:\n\n```ts\npi.events.emit(\"bg:register\", {\n  id: \"my-adapter\",\n  priority: 50,\n  resolveShell,\n  spawn,       // optional, scoped to this provider\n  ptySpawn,    // optional, scoped to this provider\n  onRegistered: ({ protocolVersion, taskControl }) => {},\n});\n```\n\nFor each launch, an adapter may return `control` alongside `file`, `args`, and\n`env`. A control must implement async `sendSignal`, `probe`, `onTransportExit`,\nand `dispose`; it may also declare `supportedSignals`, `terminatingSignals`,\nthe signal target (`process`, `process group`, or `process tree`), and stdin\navailability. Signals receive the tool's `AbortSignal`. The control remains bound\nto the task after its local launcher exits, allowing remote cleanup without\nmistaking transport termination for process termination.\n\nNamed providers are queried by descending priority and fall through when their\nresolver returns `undefined`; throwing fails closed. Every registration requires\nan `id` and `resolveShell`; unnamed v1 registrations are rejected. Providers\ncan unregister with\n`pi.events.emit(\"bg:unregister\", { id })`. SSH task-control safety requires\nprotocol v2, so SSH Remote blocks new remote `bg_start` calls when an older\nBackground Tasks build is detected. `bg_send.signal` exposes a portable\nlocal/remote signal vocabulary and validates each request against the selected\ntask's capabilities rather than Pi's local operating system alone. Native\nWindows `ssh.exe -n` pipe launches advertise stdin as unavailable and direct\ninteractive input to PTY mode instead of reporting a misleading successful\nwrite.\n\nPipe-task completion follows the tracked process's `exit` event rather than the\nstdio `close` event. Launch failures are finalized by the pre-spawn `error`\nevent, while `close` is used only to persist any output drained after process\nexit. This matters on Windows, where a descendant can keep a pipe handle open\nafter the shell PID has already exited; the task status still transitions out\nof `running`, so later status or kill operations do not target a nonexistent\nprocess.\n\n## Source layout and build\n\nThe extension source is split by responsibility while keeping `index.ts` as the\nsmall public entry point:\n\n- `extension.ts` wires lifecycle events, settings, tools, and commands\n- `runtime.ts` owns task state, shell providers, process control, logs, and snapshots\n- `tools.ts` and `commands.ts` register the model-facing and interactive APIs\n- `attachment.ts` handles live/final terminal attachment\n- `widget.ts` renders and refreshes task status\n- `input.ts` parses model-driven text and terminal key sequences\n- `types.ts` and `memory-log-store.ts` contain shared contracts and storage\n\nThe normal package build follows local imports and bundles these modules into one\nminified runtime entry, so the published extension still loads a single file:\n\n```bash\nbun run --cwd extensions/background-tasks build\n# dist/background-tasks/index.min.js\n```\n\nThe linked source map retains the original module paths for debugging; the\nindividual TypeScript implementation files are not required at runtime.\n\n## Native dependency\n\nPTY support uses `node-pty`. If a compatible prebuilt binary is unavailable,\ninstallation may require Python and a native C/C++ build toolchain. On macOS\nthis generally means Xcode command-line tools; Windows builds may require Visual\nStudio C++ and the Windows SDK. Pipe mode does not require a pseudo-terminal at\nruntime, but `node-pty` is still installed as a package dependency.\n\n## Shared settings\n\nUse the shared `/99settings` menu to configure the number of task rows shown in\nthe collapsed widget and which pipe tasks include their latest output. Defaults\npreserve the compact summary-only widget and finished-task output previews.\nOperational commands such as `/bg-attach` and `/bg-kill` remain separate.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}