{"_id":"pi-aftc-toolset","_rev":"37-785eda1a8113a45172fee7cd4f50a370","name":"pi-aftc-toolset","dist-tags":{"latest":"1.22.0"},"versions":{"1.0.0":{"name":"pi-aftc-toolset","version":"1.0.0","keywords":["pi-package"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.0.0","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"9923628fe09e50254fc18faf2191ee58cb4a9c6d","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.0.0.tgz","fileCount":27,"integrity":"sha512-kn/eiItlJJg89OY+2YAiJe0/WfUbOnlUlHLyvtVdT87hS6ifhF92yPbCWql+wFGg3Ii1fOqPL7E2ZPlOR1oPPA==","signatures":[{"sig":"MEUCICdGsaooe8UG2+cAP180IRjgOp075YTb6noqs664bECYAiEAn78QFnwP6SyXpMFpfpJQdOvK7vbfBbw7w3UZeidmVvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65458863},"gitHead":"48de1602646f2c4d48d7c5c01572668224acc664","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.15.0","description":"AFTC productivity toolset for pi — footer diagnostics, SQLite model usage reports, cache analysis, input shortcuts, cache-audit skill, theme, and SSH tools backed by a PyQt6 GUI.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.0.0_1782172874128_0.8718297947159823","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"pi-aftc-toolset","version":"1.1.0","keywords":["pi-package"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.1.0","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"b2b08dfd24fba99f1965058c1a00758891436fd9","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.1.0.tgz","fileCount":27,"integrity":"sha512-pkYsb12nphwdCXv77FM+q5Sdr3VLWngcP+sXhux7mFVpamUjv1Jtem+lqd31K5KOdtFr2xkOrmIoQmphmbNgyw==","signatures":[{"sig":"MEQCIG34euN1moihSSgsQSSgNVOL6c5DcWxiv1Q/qjM/VhdOAiBzTf3FlLptY9E2aW2Jg3r3BtvPzUMbizCU0tktvEgJIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65464758},"gitHead":"48326fdcd1e332ee687e6299498617cd5e984c16","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.15.0","description":"AFTC productivity toolset for pi — footer diagnostics, SQLite model usage reports, cache analysis, input shortcuts, cache-audit skill, theme, and SSH tools backed by a PyQt6 GUI.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.1.0_1782174134037_0.27908274337985306","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"pi-aftc-toolset","version":"1.2.4","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.2.4","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"1b34ee5488d6ddeb1522a5b54e275db23777dc19","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.2.4.tgz","fileCount":57,"integrity":"sha512-9E9UV+MSNTYjr7hjkg7pSw5VSUI44QwvNUSrJxHAkzKK1lof0fpgzMrgzHB0fVwTgP2SdCyF8L4I7JahIYgtZg==","signatures":[{"sig":"MEUCIC0qKybQzm6DUBjTpoIY6GwqskyYiuQULpDuuOMfE9hbAiEAqkZ3DkZ1Dxv3+gQKOZFta6hKdxRNqpEWOuF34kE91GI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65807162},"gitHead":"643afe968921432531bc888db1547aabfbc0c902","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC productivity toolset for pi — footer diagnostics, SQLite model usage reports, cache analysis, input shortcuts, cache-audit skill, theme, and SSH tools backed by a PyQt6 GUI.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.2.4_1783045954180_0.5337160418632412","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"pi-aftc-toolset","version":"1.3.1","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.3.1","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"13d833625f9d00989f19bfb4815055148f785673","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.3.1.tgz","fileCount":62,"integrity":"sha512-n+KJrAYt6kHZCJQVnFHLvyO4V/O1HuJhNK3hWEfhwuJyiFyexnx2IWJHdtZOO0F8PE51pcSBBZSnq5mvJ+h6yg==","signatures":[{"sig":"MEYCIQCMCsHUIO+i2I0fUdhqxJsVjaAf7+j/kO7wz3fM94Q2nAIhAKDJ4JjujEdeg+B9ieW5K+9z5y3da5y8fV0eNTBczdZf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65814263},"gitHead":"aed49a57ce24adb77da04fd07c6043af911dd0be","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC productivity toolset for pi — footer diagnostics, SQLite model usage reports, cache analysis, input shortcuts, cache-audit skill, theme, and SSH tools backed by a PyQt6 GUI.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.3.1_1783080335084_0.010336505208870417","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"pi-aftc-toolset","version":"1.4.0","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.4.0","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"2551eac1095728bae6f6d4bf27329ee29d917a17","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.4.0.tgz","fileCount":120,"integrity":"sha512-MKI5p5jkKsCOSx8yEeHdVgxFt7CDLj0VOeWhfnYR8V1O15+Fwd+MDk2aB6/nbi+/g+EzCNXWRZq2K8WPRBitVQ==","signatures":[{"sig":"MEUCIBhYW2rkDOartNKOPfE/IiLo7uD2DoeaZhGZf1JxRjt1AiEAjwU8Tlx7TpMGChgNBI4qZG8Pyv+GPWcfRTfxZ0HF4ZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66032471},"gitHead":"613e2793b49a10d32bbf3eb92f2217e3dbbe05e2","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC productivity toolset for pi — footer diagnostics, SQLite model usage reports, cache analysis, input shortcuts, cache-audit skill, theme, and SSH tools backed by a PyQt6 GUI.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.4.0_1783115402038_0.3275736632660624","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"pi-aftc-toolset","version":"1.5.0","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.5.0","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"56874344e2d20b005e95f8396646e3b6f2eab9f8","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.5.0.tgz","fileCount":130,"integrity":"sha512-sbgVgTFB/iEUYLqX3omsZN1QqwxkbGeBbi/V6MUhgEVVthbFieGubu8SepuONIHHvISTcDmePbfAO81rfSulCg==","signatures":[{"sig":"MEUCIQDHqViDCuFhiZ7OwuaulqSSO+E9XFre/7/t5mtdcUsqJAIgEAq4bBvcZ9eOp7EfWJtW5co5J1BKNwCWUaFVGt4CWEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66115644},"gitHead":"8e50c0c0d4fe712bf179d309e3c9c1e87a3ed2f1","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC productivity toolset for pi — footer diagnostics, SQLite model usage reports, cache analysis, input shortcuts, cache-audit skill, theme, and SSH tools backed by a PyQt6 GUI.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.5.0_1783139873080_0.334691518807571","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"pi-aftc-toolset","version":"1.5.1","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.5.1","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"12f78933c9428415b152399350d5a482e59ff78f","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.5.1.tgz","fileCount":132,"integrity":"sha512-/KfSz9l9l+qKD/0p6bS7wU5ppgmeRAKzIx01cVPg0QDiuXlybr2QghjVvoPznX0T2Q7YjPPKgzpKfEMiktmxpQ==","signatures":[{"sig":"MEYCIQCRaYgcjf8/6vf8SAXZ5T2aVl5kZUVtlOVnH+U3eIrjPQIhALMu7+UIqXwKhm5WmrsEhi4tqYU7aRyHFtvdy6Uh096t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66142447},"gitHead":"9381b5543ce84f142aea3c7559a4b01b6279dc4f","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC productivity toolset for pi — footer diagnostics, SQLite model usage reports, cache analysis, input shortcuts, cache-audit skill, theme, and SSH tools backed by a PyQt6 GUI.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.5.1_1783713122915_0.7540288149188068","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"pi-aftc-toolset","version":"1.5.2","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.5.2","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"9fb4d7722a0372ce6ab5caf1f859b223721dbe4b","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.5.2.tgz","fileCount":130,"integrity":"sha512-tavns5cVTqTox02b0AmNvsRbpqAzWVGATdt45lReFqXTKXM00d73O2bxuzoCA9obs9rESGARsVA/9ZiSQtS4kA==","signatures":[{"sig":"MEUCIF2xI+CuB2iEvJC9zFZpueKr5ansc7JBnaHISRNWyOuIAiEAlW3GOYMxnT+/pkO59dt21XbvNnv54xPKNgFhhzbD0m4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66139106},"gitHead":"ce615dfa13c9c12d6cbdc24996dd472fd30e294f","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC productivity toolset for pi — footer widget with usage costs, cache analysis, turns, context window time, diagnostics etc. Additional input shortcuts, SSH via a Python GUI (PyQt6 GUI) isolating ssh credentials from pi and any AI model, a collection o","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.5.2_1783714475843_0.8414763922391055","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"pi-aftc-toolset","version":"1.6.0","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.6.0","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"3ec1dd52a2fc11ce0cd9d92420a6025cac37a2f6","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.6.0.tgz","fileCount":135,"integrity":"sha512-LiQc6JHVWfaWD/Snjr4aPx9OLrUVdulS51eHlko7Bgnco1SuAakTj7/GiiyZqIJlflWTgHLZC4/7Yzivd41qzA==","signatures":[{"sig":"MEUCIQC/iHYo6CmhauVVODCZb2zOJPStgbRToseUr6OGkWHHjwIga9GH3WBOFEBn/Lw5aqVvYaWf3ZaDt+Ai0dktVm/RfBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66169283},"gitHead":"f160ef73ae66c7bd283cb1489bf64852c26723d6","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC toolset: Footer widget with usage costs, cache, turns, ctx window I/O analysis etc. Additional shortcuts, SSH via a PyQt6 GUI isolating SSH credentials from pi and any AI model, skills (designed for low context), 3 themes and more.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.6.0_1783737245745_0.6628045691823115","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"pi-aftc-toolset","version":"1.6.1","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.6.1","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"8acdbe2461163789b8cc92e645ee63c9e56fb77c","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.6.1.tgz","fileCount":135,"integrity":"sha512-VTCRKscSjAFPd6nkU/LxcYP92qLzaHG40bfl3LgFQfla/0+Oaos3bt+ZeEwIICZIp8ZTtvArg/I6wQWgNVYeww==","signatures":[{"sig":"MEUCIBUrDrsfGo0oQVVXi5WfKYA5YSXnlbTVXDj+H/orQDGGAiEAxZm+9eiHfPEpcZfCABc4i+qI/XDlCPykcb2f4JuhJgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66155928},"gitHead":"73bce4e08f194a170efc5a7157988b7b70240617","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC toolset: Footer widget with usage costs, cache, turns, ctx window I/O analysis etc. Additional shortcuts, SSH via a PyQt6 GUI isolating SSH credentials from pi and any AI model, skills (designed for low context), 3 themes and more.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.6.1_1783738335123_0.14627154506785534","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"pi-aftc-toolset","version":"1.7.0","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.7.0","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"8657063f1f431a966e3f269abf783eb60e7ccfd5","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.7.0.tgz","fileCount":138,"integrity":"sha512-1arG2rT0rlQDe3CNdQkFlwkpv9XsUAq6pphNDGwWwdId2yH6YJ2vIfJ+a4o+Nx4QEqi21kyIbDvNnKI+zN5KzA==","signatures":[{"sig":"MEUCIG8PcFF1qSMOsdzGKaDfm89seLXPmFdrBKfQrkQNzgNvAiEA5IgIDk+ujykngqH4p6T+NH4XdunCw+IVVdCu3VQVyzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66219054},"gitHead":"c8c806958bc39929aa2fbf6c2e87ccada2e191dd","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC toolset: Footer widget with usage costs, cache, turns, ctx window I/O analysis etc. Additional shortcuts, SSH via a PyQt6 GUI isolating SSH credentials from pi and any AI model, skills (designed for low context), 3 themes and more.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.7.0_1783876661442_0.4486532460224164","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"pi-aftc-toolset","version":"1.7.1","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.7.1","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"d3d9cbf50db2efdf19b1ad95c665e4397233af31","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.7.1.tgz","fileCount":107,"integrity":"sha512-L5WybVOaNEgXlHU+vRxs7Hj3R9NYxn4WeysTkGEerMxg8Y9vxmoATNLJ4n7Zx7Pag86nuU0mZmHGR6ggoDQfkQ==","signatures":[{"sig":"MEQCIGML+wZM/i9GDEhyJlAuaI3pDSWhNvP9qKq1OzNhIPgzAiA+AUvXa/K1Ma1GppC10gA62zd8V31cLnnJG6UdL+QCMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":585456},"gitHead":"d1d69313e93ba83d3787da21d28e18a46a85ea64","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC toolset: Footer widget with usage costs, cache, turns, ctx window I/O analysis etc. Additional shortcuts, SSH via a PyQt6 GUI isolating SSH credentials from pi and any AI model, skills (designed for low context), 3 themes and more.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.7.1_1783892567797_0.5452247291518024","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"pi-aftc-toolset","version":"1.7.2","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.7.2","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"afec093d4a4eea131501ba491324206c093ee5e0","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.7.2.tgz","fileCount":85,"integrity":"sha512-Xl0u+4fPQ8/npjewpTgCp0aux414typkJr3DmVJK+4dud7Fxsr+wfAaPwce9YFiHbm7uqyc58DXAdlUXwCuOLA==","signatures":[{"sig":"MEYCIQDk1y+hoGugtTvvKoUpY1g5kYEuhjD1B1L52QRHSXBQ5wIhAL6OGfzI45SLvvbI6PFTyz/EcV/YxWPXGCL2mgEzegIq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":689149},"gitHead":"eb624c5497ded7998d4ee43457b3f9cddb30a628","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"11.18.0","description":"AFTC toolset: Footer widget with usage costs, cache, turns, ctx window I/O analysis etc. Additional shortcuts, SSH via a PyQt6 GUI isolating SSH credentials from pi and any AI model, skills (designed for low context), 3 themes and more.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.7.2_1783919171934_0.21366352069950012","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"pi-aftc-toolset","version":"1.8.2","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.8.2","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"e0dd32d25270b0d8178eabd98e48b92a91d87b1a","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.8.2.tgz","fileCount":131,"integrity":"sha512-BnY6CqoPhKmfrBkvIF9DEcKEhgq4YD4THPwn5j3jhtmQlTnDzIx7zJMEtNqu6BNb/uULnHZLAVMOBpgPWnD3nQ==","signatures":[{"sig":"MEUCIHIqNwKynGJp30TT0YarHWwgK981gy25hgCwDo6EajGaAiEA0PeThjpXixGaT082aNLKb7lGfgcft3fmK9mtr4+qek4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1173252},"gitHead":"8baffad8d383c94402ec301be6b9fb40c55380c2","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"AFTC toolset: Footer widget with usage costs, cache, turns, ctx window I/O analysis etc. Additional shortcuts, new fully-featured isolated SSH (model never gets access details), skills (designed for low context), 3 themes and more.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.8.2_1784390738468_0.47133903388842624","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"pi-aftc-toolset","version":"1.9.0","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.9.0","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"0438db4472537c02059352ad71759c05dd4c70bc","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.9.0.tgz","fileCount":135,"integrity":"sha512-t6IdkDSp5fcUypB23Q2GpZRhgjsB1620Jq+NW6xSzd4FwK6GdZGscdC4MfN1Of4Nptvqs952uCZcXnr9uKAJxg==","signatures":[{"sig":"MEUCIQDq62paYJCu6fvfQFRiY/VYi6kd1V3/DE8lyEvc1pKn+wIgaHs3mEva1E7so/qB1sFjMx1/RgJwZdphMfaD6qgmqRU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1887746},"gitHead":"70a2f502cbf0ad5b48a2f0fa8af77df084031334","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"AFTC toolset: Footer widget with usage costs, cache, turns, ctx window etc. Generated usage reports, fully-featured isolated SSH (secure from imodels), skills (designed for low context), 3 themes, prompt repeater, shortcuts and more.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.9.0_1784401966671_0.23122121060180856","host":"s3://npm-registry-packages-npm-production"}},"1.13.4":{"name":"pi-aftc-toolset","version":"1.13.4","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.13.4","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"6f73f0970b6cf6d7ad1313eaa160b83b0cf3bbaf","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.13.4.tgz","fileCount":298,"integrity":"sha512-DSj6Zb1ayevM1UFcj05/JuL/45+VxHfrBN/l3Nnsswz+uYNWBYMSgJxUl/kYkGWJBtNCsO97c5fWzq9rTccj3Q==","signatures":[{"sig":"MEUCIBxSUx6N9IyQ+yUf4vc58fg2ek0zf4rYh7PxcXzeRD1sAiEAk+eQdg6P5n6E6NAfz47bVlvfZAybTzhs6GG7RjYz1p4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4680077},"gitHead":"a3a43c0cbdc33725e0918e75a49ccc97fc18cd86","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"AFTC toolset: Footer widget with usage costs, cache, turns, ctx window etc. Generated usage reports, fully-featured isolated SSH (secure from imodels), skills (designed for low context), 3 themes, prompt repeater, shortcuts and more.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.13.4_1785169364762_0.5563685022727884","host":"s3://npm-registry-packages-npm-production"}},"1.13.7":{"name":"pi-aftc-toolset","version":"1.13.7","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.13.7","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"c701202de10f30bd86a4a27cd3c32916d1bfdace","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.13.7.tgz","fileCount":300,"integrity":"sha512-MaUx3ccnTBVjMY4rdNaiQa+gV5AoNjqfqNtxBu7tAz1TL4qtJBcEHoqygOVPnm1yavUVPQXgkZqSxh8j0SHdaA==","signatures":[{"sig":"MEUCIAI/c9usBitHIDbvNNBNzTq9Y5d44ecpTG7kizOACoDGAiEA9G+NWv4PjLkdVvqq7M5NXz9YFp1vt9XuA8OFN/t1Wjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4703812},"gitHead":"c4f4da76bf647ea3650183bbd6be69a2120c55ad","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Footer widget with costs, cache, turns, ctx window tracking etc. Detailed usage reports, Isolated SSH, Self learning & injecting issues & solutions, various skills, 3 themes, prompt repeater, shortcuts and more.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.13.7_1785175676340_0.6669948812302064","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"pi-aftc-toolset","version":"1.18.0","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.18.0","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"16f9cbf16dffd438afc422ccf82cfc2f09a1d624","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.18.0.tgz","fileCount":360,"integrity":"sha512-MOzKNn/TmeI9pXPKioFIr6eOPwct9DE3W6f35zewtwObM+4i41JF5m+JyMxpTHkJlLikHxa4RNnMm6L1Jcmbpg==","signatures":[{"sig":"MEUCIQDxqJpSg4G4WttCjtb6xHc/5fkLReh4iJCGVjJZ4CrS1QIgY3QzCac/l2aqL2wgV4BBNgxUDg1K0X85XKul9kk/VVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5907539},"gitHead":"fa08b8c4f29b7734e1043f3b428c77c58de2a1f2","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Footer widget with costs, cache, turns, ctx window tracking etc. Detailed usage reports, Isolated SSH, Self learning & injecting issues & solutions, various skills, 3 themes, prompt repeater, shortcuts and more.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.18.0_1785708427991_0.7162732508346117","host":"s3://npm-registry-packages-npm-production"}},"1.18.6":{"name":"pi-aftc-toolset","version":"1.18.6","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.18.6","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"691552802f64b1138ce1c9cbf3b8ebfedd1c41cc","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.18.6.tgz","fileCount":360,"integrity":"sha512-IgWA/LjvIfcgRxW4MXfm0hGmusJTOX3byEczZpFDjQnZnicb6GEo7idLBUOMhdpklgPawQ+vq+trkT5j0ztBBg==","signatures":[{"sig":"MEUCIGeyx7XvRkK7GC9Msi0DwhSF6K91sNH4boR8jK1VxJAoAiEA+dSWGteyoQCki//T+sv779BGkbeBskNTMTWacOT1hXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5862812},"gitHead":"4578377a0b7fdc47ae1e4f34f3aac5a76a094dc8","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Footer widget with costs, cache, turns, ctx window tracking etc. Detailed usage reports, Isolated SSH, Self learning & injecting issues & solutions, various skills, 3 themes, prompt repeater, shortcuts and more.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.18.6_1785773215130_0.3574298303377057","host":"s3://npm-registry-packages-npm-production"}},"1.18.7":{"name":"pi-aftc-toolset","version":"1.18.7","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.18.7","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"c55a61bc200c6aa43f70f15c563f1b58b65b1a3e","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.18.7.tgz","fileCount":360,"integrity":"sha512-yAlDz3yehsRQHHzqwHZBDHJ7/4ml7pm3guyV7purwdo2cZ0MlBdWwworQ2lhDdWgY4JpeR6850dVuTB+rQHXIg==","signatures":[{"sig":"MEYCIQCBZl8ANz20RPaNoPGXbFh5kZAtrZ/UW5A9mpgaua0EkAIhAJQvwng9tTkP4dAi7klsOOEZAmM6TsRaGAy+LwITFlgs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5863168},"gitHead":"e60a40f32f8432a032e30edda4a3565f34998d16","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Footer widget with costs, cache, turns, ctx window tracking etc. Detailed usage reports, Isolated SSH, Self learning & injecting issues & solutions, various skills, 3 themes, prompt repeater, shortcuts and more.","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.18.7_1785774950065_0.3693733154147498","host":"s3://npm-registry-packages-npm-production"}},"1.19.4":{"name":"pi-aftc-toolset","version":"1.19.4","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.19.4","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"13b7ef7f624e5ccc7bb699bc81ca95a849756374","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.19.4.tgz","fileCount":369,"integrity":"sha512-F0T3cXued2FeDt81AVS1PIQ+NkloKBKNpxZ2fcMfSrXxd4sVNqKYkIenhbPBJjuOJs6GZ8YgTozkpHyV3aPMOw==","signatures":[{"sig":"MEUCIQD+mDT2AbzcdfxLSAtaNsak5YoKyOGBseHNtv66fWfYngIgSs3TnYmXa5IYPeALEOUSMlEKNJUzYmRR+969BabqPCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6022757},"gitHead":"e1cc29ace5696a63e9532ddeef89c65cb589bfc1","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Footer stats bar (model, costs, cache, turns etc). Usage reports & stats. Isolated SSH. Persistent self-educating cache-aware skills on demand (codex). Audio notifications. Documentation generator (docx). Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.19.4_1785907058773_0.38789682956184324","host":"s3://npm-registry-packages-npm-production"}},"1.19.7":{"name":"pi-aftc-toolset","version":"1.19.7","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.19.7","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"ef06ec2bbd0f6fda45b8ab8920cbbd22766975e1","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.19.7.tgz","fileCount":371,"integrity":"sha512-r1tYE216igm+tHUKyMy8+omcZ3g+K7+EachTzDHAxMW/5p1rHTZzw2ZkU8+ZZT1wZsgQ3gnm6avmirU3RkkTXA==","signatures":[{"sig":"MEUCIQCJDosjqKXn9EG40h7RnarkeD2Z+jZdvvFysSapAji6TwIgL7KbmzixsB3wy/jCO+Z+5pzYc08riJtJ34StgmrTc8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6131140},"gitHead":"00b7b0c23c1f0c1c770977e428ce6c544491d45b","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Footer stats bar (model, costs, cache, turns etc). Usage reports & stats. Isolated SSH. Persistent self-educating cache-aware skills on demand (codex). Audio notifications. Documentation generator (docx). Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.19.7_1785913785460_0.1251694602985134","host":"s3://npm-registry-packages-npm-production"}},"1.19.8":{"name":"pi-aftc-toolset","version":"1.19.8","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.19.8","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"053a2c7ad617bdb64a2633b3714732575a420c57","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.19.8.tgz","fileCount":373,"integrity":"sha512-6wRtpPvQkzV1G2HL9yWGwyFVbEwfT8FrygfHQSJHsgZmrQdhpCIty/AKqVVrI4q7pzkfKcD3ghYcZv/KNmxCqQ==","signatures":[{"sig":"MEUCIDlJWsGWHlVtQxVBf3y//nNzKsZtazWHAz0m0DCE+yMMAiEAq6jlndKoAam1F0uRWpLsMf4glT9f7RmrwBIEhMDDaQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6062707},"gitHead":"f6d2abc213cd28a3652b264acd4af7f678398f74","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.19.8_1785917791211_0.05947528728229923","host":"s3://npm-registry-packages-npm-production"}},"1.19.10":{"name":"pi-aftc-toolset","version":"1.19.10","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.19.10","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"4644624dddebbea3acc85f7eba43c8f8c590e035","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.19.10.tgz","fileCount":374,"integrity":"sha512-y3jCHYgcTWm5ee+ofHB3OXdG44FVa6zj4i4oUplqlG5+iy8yGNLbk2YST2OeWioM/CJl0ItG9mydbOET4Y/KTQ==","signatures":[{"sig":"MEUCIQDp6LY/dB32hWQyzNV7Lzxyx700HwI57A3snZwZXdwZbAIgOgQ9u5MPtDGlJ45+qxRJ5fS0eEbWpIdR0K3JPjaN54E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6022651},"gitHead":"9c7d6a0dce1194a994417280c632886b2ec71be5","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.19.10_1785939046432_0.07256515859438184","host":"s3://npm-registry-packages-npm-production"}},"1.19.11":{"name":"pi-aftc-toolset","version":"1.19.11","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.19.11","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"be335aaa02590bd119b77be02a346ad4f8f9f696","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.19.11.tgz","fileCount":466,"integrity":"sha512-PwyrPo9VGdGzql7y9Px5PpT5pbg9X957aZbaor3GvSC1ifYPhNSgG7cddH5ScYZGJTmpR6dMozqvkitJ/jQkIA==","signatures":[{"sig":"MEUCIQCAHUr98BoBiAlvr4749FDsJQnQRo7InmQ6TIAjf84aGAIgLNAcShec+Sz3IDD0vNTkC8/Xx/pBcgwjjRJ5gdCuJWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6309687},"gitHead":"e06a8f4b2cce763bc99c63080df2aaa0d7efd6fc","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.19.11_1785976451310_0.7965655202154833","host":"s3://npm-registry-packages-npm-production"}},"1.19.12":{"name":"pi-aftc-toolset","version":"1.19.12","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.19.12","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"5b46062c0ec62f1e5e5ee0ca1f9694e646104fa4","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.19.12.tgz","fileCount":474,"integrity":"sha512-b01/muxUxYwJ/CzE2P58093D0n/sl2MCL6c3bAk6TB/uyxitPPr3jg9CrBGstUyLO/mNnifjSSJWo1WtHg5RzA==","signatures":[{"sig":"MEUCID63w5YpAgbNafsCow2JUdc/V4fnPeTGWZnGbYcqlZ46AiEAhKOexsLZ8LWZWOCX2JTh9Dmci80EBtQ4XavdR6ZpkFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6335530},"gitHead":"3233b63d5b1ba228c203480e2e49afc6b5df62cf","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.19.12_1786030115625_0.6889756572444923","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"pi-aftc-toolset","version":"1.20.0","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.20.0","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"8ea579f0cbf43efc5c57ed962f8c7185c846b646","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.20.0.tgz","fileCount":527,"integrity":"sha512-TYpQObU5KGmR1hC/bTVfuw/fselPTmbb2Qs+XdTKckLFsriiIGHCLOgEx9OiC+Mxn2FXfUX7sLwEN0QG3u6+zg==","signatures":[{"sig":"MEQCIFQ1xXxzJ9erOTG+BhT8tAKC1FHWGsCAflr1pYISYs2eAiAgionVUQC2C8AsA8inhF+d6NX6IIQjC+sU/dMuV3FLIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6967668},"gitHead":"9231054cdddd324f70bdcc3591368a348739e43d","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.20.0_1786121312242_0.07085787842976199","host":"s3://npm-registry-packages-npm-production"}},"1.20.1":{"name":"pi-aftc-toolset","version":"1.20.1","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.20.1","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"a283c57f070e69077a4b8f92c4e0eb1f360c95b8","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.20.1.tgz","fileCount":527,"integrity":"sha512-DF6QUicaZdZdOztGBnWoKD93PX1m9JExAPCQSFLbGhuqHgKnaaUei4oJ6TeSwzdUrMRZ/86SjBUqYzW9AzlZyQ==","signatures":[{"sig":"MEQCIAGmHUCnWFMOJa5ey0fvzsqt3DYUn1+kAfIPbsYLeK/DAiAC5Ovuu2LbtxqWByHDEWRirboyanurXNi3FZ5km9QwRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6968936},"gitHead":"5950c3744548ea9fd4c380d4bc07490154e8d194","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.20.1_1786125098887_0.7327697180631052","host":"s3://npm-registry-packages-npm-production"}},"1.20.2":{"name":"pi-aftc-toolset","version":"1.20.2","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.20.2","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"5bc4ac44809763535040e8cad86cccc958484f1b","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.20.2.tgz","fileCount":527,"integrity":"sha512-wuHsFgXmSxrmYVFQDH7pB7rBbD+ju/DF3DLmM9Ln9bm3jHV3Kezlfj0xMZx77JkOnal7iwxVFbbVFk4QmHh74w==","signatures":[{"sig":"MEYCIQCMrHClWcJ4QX5OqMFtV9PeWslu6YF/ZWQjtM3xJiBnbAIhAPR8FkPDnRUuKbXnHAnrBuf2B1D3j6ig58nOq50NFQni","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6969017},"gitHead":"ff057be36d321022f2a5ba0bcc1709cbcaab8b77","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.20.2_1786125711964_0.3939908603349247","host":"s3://npm-registry-packages-npm-production"}},"1.20.7":{"name":"pi-aftc-toolset","version":"1.20.7","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.20.7","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"4388469f0fc96d22cb9d8bfdc801578ed3df2f75","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.20.7.tgz","fileCount":526,"integrity":"sha512-DAjbPslvJl16KOr4O8HmsjM8tuXS4eBBHqWjjiJHDi/YTN/fnemEwJ0K5Bt8tecgfHCpZtnuJMVBkNWURKfHvw==","signatures":[{"sig":"MEUCIQD8h4DoTLO/MLSxOzSqkdBI6pbQcGAlB3AKTO4qZ72SRgIgBsDIUBq+684NVaBM4I3nvyBgb4EA+5yWY1xM+LyjbgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7049772},"gitHead":"57c27e16e1187ca5b18661ebe9b29790ec667e40","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.20.7_1786318615881_0.7312173646743929","host":"s3://npm-registry-packages-npm-production"}},"1.21.4":{"name":"pi-aftc-toolset","version":"1.21.4","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.21.4","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"74982e7be983c678da99ed0e9cc0bbc9421864a1","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.21.4.tgz","fileCount":529,"integrity":"sha512-MjLJ1IBrcsTIKntoQ7L/WDcON4Q7HW8gyxrTCxjwY97NHB9PIOhBJ3gRQKj6EGWO4zBqUe9D8DX4VQLDOu2s6A==","signatures":[{"sig":"MEUCIAhz5TJKXa6x6xupGUC9TQtA5o3tcIO4a/t5nd1PLTNmAiEAp3eOoTaHK24IitZnUZWX6jCqM+V0yE5+qN4b7MdL/+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7130863},"gitHead":"8faf6d74a8de89e2db26d2729acef710f5975266","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.21.4_1786401907370_0.44747701931879114","host":"s3://npm-registry-packages-npm-production"}},"1.21.8":{"name":"pi-aftc-toolset","version":"1.21.8","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.21.8","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"473aece86b38f2aa5822ffa382d8177631fec782","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.21.8.tgz","fileCount":534,"integrity":"sha512-RNcCy01ia2WqTUvq7EdP4G5ceNRyw3My0xx7GxD1soOoY2EnWgqFdS4oAFyUNYW9PC7ZjVZt/8rnEjp9eSpPIA==","signatures":[{"sig":"MEUCIAiS8GMjVscaR/lyi8mOtvox/7LR9c8Sqkbkxovz+z+8AiEA0XPbMXuuU9eZd0vPL2r8bWWkdSuDFyseutICi5YXzPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7168029},"gitHead":"fc3fd426aed7b468b7c08c292dcaeb3ff391db1b","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.21.8_1786431406803_0.2277253243233841","host":"s3://npm-registry-packages-npm-production"}},"1.21.10":{"name":"pi-aftc-toolset","version":"1.21.10","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"MIT","_id":"pi-aftc-toolset@1.21.10","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"310f835618ce34a02c9b52dd8c6223d5035744da","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.21.10.tgz","fileCount":536,"integrity":"sha512-OjbGvi1lMzWeGh3fOrH9B0/BHRiJksb4CZWYUcFPl3/s6lymlSmJtuunHflASrhs8YoMgZYvOUKSSeaDAgo06w==","signatures":[{"sig":"MEQCIA5wbemKWXR9TIUSXytCHcHnlgy8BnBaGqrYke75mu5IAiATG+fb35Z9k9t/aDiQv5Kv83FV4TJzYPtvRocm3EeLFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7429050},"gitHead":"9018e72246030716c4f1478ec13833a29f316036","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.21.10_1786454616734_0.13606699980922254","host":"s3://npm-registry-packages-npm-production"}},"1.21.15":{"name":"pi-aftc-toolset","version":"1.21.15","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"author":{"name":"Darcey Lloyd"},"license":"Elastic-2.0","_id":"pi-aftc-toolset@1.21.15","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"pi":{"skills":["./skills"],"themes":["./themes"],"extensions":["./extensions"]},"dist":{"shasum":"118d74459d2bbcafc54b3acbd4bfa6b88f43a3e5","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.21.15.tgz","fileCount":559,"integrity":"sha512-R8CqY1dKVghDaLDmVNRBgJu4suS+wI4Z423Mq5MBNK6epEPmubWmhQf+QplodC2AdZKv5fFn707j71XIkIS1hA==","signatures":[{"sig":"MEYCIQDNbxUgkRv86UTMcovHIkRRfqc27kKgmvS9dp7iEeH8GQIhAIt/nDRaiTCm/f9tvEuA4pKyJkuRbV/+3Fy2I/Hr+aQY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7779669},"gitHead":"466fefe65990ec99966dc5b326219ee4a02e8533","_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"repository":{"url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git","type":"git"},"_npmVersion":"12.0.1","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","directories":{},"_nodeVersion":"26.3.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-aftc-toolset_1.21.15_1787077180808_0.4342695822033933","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"pi-aftc-toolset","version":"1.22.0","description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"pi":{"extensions":["./extensions"],"skills":["./skills"],"themes":["./themes"]},"author":{"name":"Darcey Lloyd"},"license":"Elastic-2.0","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git"},"bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*","typebox":"*"},"dependencies":{"adm-zip":"^0.6.0","better-sqlite3":"12.11.1"},"allowScripts":{"better-sqlite3@12.11.1":true},"gitHead":"6c244e8811257078cd1f72acc2da6bc46f2d858c","_id":"pi-aftc-toolset@1.22.0","_nodeVersion":"26.3.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-sj/qzV+e6q5LVx976MMeRYuJgRgqiWlxpfhK3D7Z6FCIcHF5y/7dj58sIfRSBzsDiiaHdYngI0I2mPbogKMdQg==","shasum":"676d46684adb9bfc9b98aa4001375c2fcf299d5e","tarball":"https://registry.npmjs.org/pi-aftc-toolset/-/pi-aftc-toolset-1.22.0.tgz","fileCount":473,"unpackedSize":7323156,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA/Oj4KvI9/CqzgqBHELvm/0W+ySXSkPZgjC2BDQiCzpAiB/58xpLYkReRJ1q8keuvrIH4AdH7EVPwfQCO2ETOO0vA=="}]},"_npmUser":{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"},"directories":{},"maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-aftc-toolset_1.22.0_1787160173104_0.32136733865382894"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-23T00:01:14.070Z","modified":"2026-08-19T17:22:53.511Z","1.0.0":"2026-06-23T00:01:14.580Z","1.1.0":"2026-06-23T00:22:14.506Z","1.2.4":"2026-07-03T02:32:34.624Z","1.3.1":"2026-07-03T12:05:35.551Z","1.4.0":"2026-07-03T21:50:02.600Z","1.5.0":"2026-07-04T04:37:53.493Z","1.5.1":"2026-07-10T19:52:03.366Z","1.5.2":"2026-07-10T20:14:36.294Z","1.6.0":"2026-07-11T02:34:06.316Z","1.6.1":"2026-07-11T02:52:15.830Z","1.7.0":"2026-07-12T17:17:41.895Z","1.7.1":"2026-07-12T21:42:47.971Z","1.7.2":"2026-07-13T05:06:12.132Z","1.8.2":"2026-07-18T16:05:38.699Z","1.9.0":"2026-07-18T19:12:46.846Z","1.13.4":"2026-07-27T16:22:44.985Z","1.13.7":"2026-07-27T18:07:56.578Z","1.18.0":"2026-08-02T22:07:08.220Z","1.18.6":"2026-08-03T16:06:55.383Z","1.18.7":"2026-08-03T16:35:50.409Z","1.19.4":"2026-08-05T05:17:39.069Z","1.19.7":"2026-08-05T07:09:45.738Z","1.19.8":"2026-08-05T08:16:31.468Z","1.19.10":"2026-08-05T14:10:46.666Z","1.19.11":"2026-08-06T00:34:11.580Z","1.19.12":"2026-08-06T15:28:35.851Z","1.20.0":"2026-08-07T16:48:32.530Z","1.20.1":"2026-08-07T17:51:39.135Z","1.20.2":"2026-08-07T18:01:52.203Z","1.20.7":"2026-08-09T23:36:56.113Z","1.21.4":"2026-08-10T22:45:07.620Z","1.21.7":"2026-08-11T06:47:31.438Z","1.21.8":"2026-08-11T06:56:47.103Z","1.21.10":"2026-08-11T13:23:36.983Z","1.21.15":"2026-08-18T18:19:41.207Z","1.22.0":"2026-08-19T17:22:53.360Z"},"bugs":{"url":"https://github.com/DarceyLloyd/pi-aftc-toolset/issues"},"author":{"name":"Darcey Lloyd"},"license":"Elastic-2.0","homepage":"https://github.com/DarceyLloyd/pi-aftc-toolset#readme","keywords":["pi-package","pi","pi-aftc-toolset","extension"],"repository":{"type":"git","url":"git+https://github.com/DarceyLloyd/pi-aftc-toolset.git"},"description":"Stats bar. Isolated SSH. Documentation generation (docx). Persistent self-educating cache-aware skills on demand (codex). Usage reports. Audio notifications. Shortcuts. Skills. Themes ++","maintainers":[{"name":"darceylloyd","email":"darcey.lloyd@gmail.com"}],"readme":"# **pi-aftc-toolset**\n\n<!-- last-reviewed: 2026-08-11 -->\n\n[![Donate with PayPal](https://img.shields.io/badge/Donate-PayPal-0070BA?logo=paypal&logoColor=white)](https://www.paypal.com/donate/?business=darcey.lloyd@gmail.com) or at least give me a star...\n\n\n\n[![GitHub Stars](https://img.shields.io/github/stars/DarceyLloyd/pi-aftc-toolset?style=flat&color=FFD700&logo=starship&logoColor=white)](https://github.com/DarceyLloyd/pi-aftc-toolset/stargazers) [![GitHub Forks](https://img.shields.io/github/forks/DarceyLloyd/pi-aftc-toolset?style=flat&color=0891b2&logo=github&logoColor=white)](https://github.com/DarceyLloyd/pi-aftc-toolset/network) \n[![NPM](https://nodei.co/npm/pi-aftc-toolset.svg?style=shields&data=v,u,d)](https://nodei.co/npm/pi-aftc-toolset/)\n\n\n\n\n---\n\n\n\n## **Install**\n\n```bash\npi install npm:pi-aftc-toolset\n```\n\nThen in pi:\n\n```text\n/aftc-install     # installs better-sqlite3 + packaged SSH carrier deps (python)\n/reload\n```\n\n> **Runtime dependencies:** `pi install` does not install all the required\n> runtime deps. Run `/aftc-install` after extension installation.\n\n---\n\n<br><br>\n\n## **Footer widget**\n\n![Footer widget](images/footer-widget.png)\n\nA themed dashboard bar below the editor (`/aftc-footer` to configure:\nenable, averages line, timeframe). Lines 1-4 always available; line 5 only\nfor supported subscription providers; line 6 only while Sub Agents (/007)\nis enabled.\n\n### Line 1 - what's happening right now\n\nModel name + thinking level, context window size with pi's own context-use\n%, last-turn cache hit vs session average (with trend arrow), and the\nsession's cached vs new token split.\n\n### Line 2 - your money and prompts\n\nUser vs AI prompt counts, last turn cost, live Task Time, Session Time\n(wall-clock since your first prompt) and Session Time Cost.\n\n### Line 3 - speed and tools\n\nTurn thinking time and response time (last + averages), active tool count\nwith estimated schema tokens, and skills used/available.\n\n### Line 4 - long-term averages\n\nPrefixed with the chosen window (eg `3 Day Averages:`), from the persistent\nusage DB: total cost, window prompt sums (User/AI), average cache hit %,\nand Avg Task Time (completed tasks only). 19 windows via `/aftc-footer` →\nSet averages timeframe: ten rolling \"Last …\" windows (1h-72h) and nine\ncalendar-anchored windows (1 Day → 1 Year).\n\n### Line 5 - subscription quota (some providers only)\n\n5-hour rolling + weekly allowance usage with live reset countdowns.\nSupported: ChatGPT/Codex (OAuth), Anthropic (OAuth subscription headers),\nMiniMax Token Plan, ZAI/GLM Coding Plan, Kimi for Coding. All other\nproviders: the line stays hidden — and it hides immediately when you\nswitch to a model whose provider reports no allowance. The numbers\nrefresh after every prompt, on model changes, and on a gentle 60-second\nbackground poll, so you can check what you have left BEFORE starting a\nbig task (the poll backs off automatically if the provider's usage\nendpoint is failing or has no credentials).\n\n### Line 6 - sub agents (only while /007 is enabled)\n\nAlways visible while the Sub Agents feature is on: runs active vs max\nconcurrent, this session's total sub-agent cost, the average task time of\ncompleted runs, and which agents are running right now (each with its\ncontext-window %).\n\n---\n\n<br><br>\n\n## **SSH**\n\nOperate remote servers from pi - model tools for the AI, slash commands\nfor you, a full-screen interactive terminal for hands-on work. Everything\nruns through a packaged Python (Paramiko) carrier over local stdio - it\nopens **no** listening socket.\n\n### Ensure dependencies are installed\n\n```text\n/aftc-install\n```\n\nInstalls/verifies the carrier environment: Python 3 + `uv` + `uv sync\n--locked` of the packaged sidecar.\n\n### **SSH commands**\n\n| Command | What it does |\n| --- | --- |\n| `/ssh-cm` (alias `/ssh-connection-manager`) | Full-screen connection manager: add / edit / delete saved connections |\n| `/ssh-connect [name]` | Connect a saved connection (quotes for names with spaces; no name → picker) |\n| `/ssh-connections` | List saved connection names |\n| `/ssh-status` | Show connection status |\n| `/ssh-select [id]` | Select the active session for local commands |\n| `/ssh-disconnect [id]` | Disconnect a session |\n| `/ssh-shell` | Open the full-screen interactive terminal on the selected session |\n| `/ssh-close-shell <id>` | Close an interactive shell |\n| `/ssh-interrupt <id>` | Send Ctrl+C + Ctrl+D recovery keys to a shell |\n| `/ssh-upload <local> <remote> [--preserve]` | Upload a file (overwrite confirmation; `--preserve` keeps attrs) |\n| `/ssh-download <remote> <local> [--preserve]` | Download a file (overwrite confirmation) |\n| `/ssh-rename <from> <to>` | Rename a remote path after confirmation |\n| `/ssh-auto-accept-session-on` / `-off` | Trust NEW host keys without asking / restore the prompt (changed keys are always rejected) |\n| `/ssh-help` | SSH workflow guidance |\n\n### How to manage connections\n\n`/ssh-cm` opens the connection manager: `[ Add new connection ]`,\n`[ Edit ]`, `[ Delete ]`. The add dialog collects name, username, host,\nport (22), timeout (30 s), optional key path and optional password (saved\nlocally, never exposed to the model).\n\n### How to connect\n\n`/ssh-connect [name]` - or just ask the model, which uses `ssh_connect`.\nNew host keys ask for approval (or auto-accept when enabled).\n\n### How to disconnect\n\n`/ssh-disconnect [id]` - or the model's `ssh_disconnect`. Idle carriers are\nreaped automatically and re-spawned on demand.\n\n### Run commands and pick a session\n\n`/ssh-select` chooses the session the local commands act on. For driven\nwork, the model uses `ssh_run` (bounded, 120 s max timeout, optional\nbounded stdin - never for credentials).\n\n### Interactive shells\n\n`/ssh-shell` opens a full-screen terminal (nano, vim, htop, top, less all\nrender properly). All keys go to the remote program - including Esc;\n**Ctrl+] exits locally**. The model drives programs through\n`ssh_open_shell` + `ssh_send_keys` / `ssh_paste` / `ssh_peek` /\n`ssh_resize` / `ssh_interrupt` / `ssh_close`.\n\n### Transfer files\n\n`/ssh-upload` + `/ssh-download` (or the model's `ssh_upload` /\n`ssh_download`): files or whole directory trees, symlinks never followed,\ncancellable, `--preserve` restores timestamps/permissions.\n\n### Manage remote files\n\nModel tools: `ssh_list_dir`, `ssh_read_file`, `ssh_stat`, `ssh_write_file`,\n`ssh_mkdir`, `ssh_rename`, `ssh_remove` - every mutation needs local-user\napproval.\n\n### Model tools\n\n20 tools: `ssh_status`, `ssh_connect`, `ssh_disconnect`, `ssh_run`,\n`ssh_open_shell`, `ssh_send_keys`, `ssh_paste`, `ssh_resize`, `ssh_close`,\n`ssh_peek`, `ssh_interrupt`, `ssh_upload`, `ssh_download`, `ssh_list_dir`,\n`ssh_read_file`, `ssh_stat`, `ssh_write_file`, `ssh_mkdir`, `ssh_rename`,\n`ssh_remove`. A bundled `ssh` skill teaches the model the workflow.\n\n### Credential isolation\n\nConnections are saved in your local `ssh.json`; the model only ever sees\nsaved NAMES and opaque session/shell ids. Credentials are collected by\nlocal prompts, all model-facing output is redacted, and errors are mapped\nto safe categories (timeout, cancelled, not connected, unavailable) - no\nhost/port/key diagnostics ever reach the model.\n\n\n---\n\n<br><br>\n\n\n\n## **aftc-codex (PI skills on steroids - codex knowledge base)**\n\nAn OPT-IN, self-educating knowledge base: the core rules + thinking\nguidance + a generated resource list ride your system prompt, and the model\nfetches topic docs on demand with `codex_load` (aliases: ts, py, js;\nspecials: rules, guidance, list, markdown). It ships with only the core\nrules and guidance - no ready-made topic docs. The knowledge base is yours\nto build: as you work it learns your usage patterns and the kinds of\nprojects you build, so it adapts to you rather than inheriting the\nextension author's habits and AI-usage style.\n\n**Context cost - what you should know before enabling:**\n\n- **Just turning it on costs nothing** - in a normal (TUI) session the codex\n  only loads once you run `/codex-init`; the fresh-session \"AFTC CODEX\"\n  banner is display-only and never reaches the model. (Print/headless mode\n  auto-preps, so the cost starts there without any command.)\n- **After `/codex-init` (prepped)**, the rules + thought guidance + resource\n  list ride the **cached system prompt prefix: roughly 50 KB (~12-13K\n  tokens) on every turn**, plus the AI loads the detected project topics'\n  docs into the chat. It is cache-friendly (byte-stable - cache-hits after\n  the first turn) but it occupies window space and counts toward your usage\n  every turn.\n- **Loading 1 to 5 resources is light; loading 20 can be costly** - load\n  what the current task needs, not everything at once.\n- **Tip: create a `plan.md` and a `tasks.md` first** so you can maximise\n  your use of the codex skills.\n\n- `/codex` - settings menu (enable, guidance inject, auto-detect & load,\n  auto insert of the codex stack into AGENTS.md, resources & updates).\n- `/codex-enable` / `/codex-disable` - turn the knowledge base on/off.\n- `/codex-init` / `/codex-refresh` - prep the session (auto-detects your\n  project's stack and loads the relevant docs) / strip + re-prep.\n- `/codex-status` - state and resource counts.\n- `/codex-list` - scrollable full-screen list of every available codex\n  resource (first item highlighted, ↑/↓ to move, type to filter; the\n  Documentation & Planning guide is pinned at the top; headless prints).\n- `/codex-load` - pick one codex resource to load from a menu (type to\n  filter); Enter picks it and the menu closes - the AI loads it right\n  away - works even in rules-only /\n  un-prepped sessions (it's the same as telling the AI \"codex load\n  <resource>\").\n- `/codex-install` - wipe the codex and restore the shipped basics (rules\n  + guidance; your resources folder starts empty).\n- `/codex-learn` - record durable lessons via the `codex_add_entry` /\n  `codex_edit_entry` / `codex_remove_entry` tools (IDs generated, formats\n  validated, generality + secrets guards enforced).\n- `/codex-inject-rules` - session-only critical-rules injection (works\n  even when disabled; cleared by `/new`).\n\nYour live copy lives in your data dir (`aftc-codex/`). It ships with only\nthe core rules + guidance - the topic docs are yours to build with\n`/codex-learn` (or `codex_add_entry`), and your resources are never touched\nby an update.\n\n---\n\n<br><br>\n\n## **Usage report**\n\n`/usage-report` seeds a small report web app into your data dir\n(`usage-report/`), generates a fresh `data.json` from your recorded\nusage, and starts a bundled local server in its own terminal window -\nyour browser opens automatically. No internet needed: Chart.js ships\nwith the app. Close the server window (or Ctrl+C) to stop it; it also\nshuts itself down after 30 minutes idle. Requires Node.js (you have it\nif pi runs). Every assistant turn is recorded as metrics only -\n**never prompt or response text**. `/usage-clear` wipes the database\nbehind a confirmation.\n\n### Overview\n\n![Overview tab](images/ur-overview.png)\n\nSix headline cards (all-time totals and averages): total cost, cost per\ncompleted task, user prompts, the User/AI prompt ratio, the worst token\nburner and average cache hit — followed by a 30-day spend chart, a\ncost-share doughnut with a window selector, and a six-pane period summary\n(last 24 hours / last 3 days / last week / this week / this month / last\nmonth), each pane naming the best and worst models for cost, task time,\nprompting efficiency and cache.\n\n### Costs Per Model\n\n![Costs Per Model tab](images/ur-costs-per-model.png)\n\nThe hero/shame ranking: a per-model sortable table with a period selector\nshowing average cost per turn, average task cost, User/AI prompts, cache,\ncontext use, errors and task time — with verdict badges that call out the\nbest and worst model per metric (\"why\" tooltips on hover).\n\n### Thinking levels\n\n![Thinking levels tab](images/ur-thinking-levels.png)\n\nThe same per-model table broken down by thinking level (one row per\nmodel × thinking-level combination): cost, task cost, User/AI prompts,\ncache, think and response times, and task time — sortable, with a period\nselector.\n\n### Timings\n\n![Timings tab](images/ur-timings.png)\n\nTask Time analysis: average and longest task, turns per task, error and\nabort counts, task time by model, a daily average chart, where the time\ngoes (thinking vs responding), user- vs AI-turn timings, and the top-10\nlongest completed tasks.\n\n### Projections\n\n![Projections tab](images/ur-projections.png)\n\nUsage-rate cost projections: average $/turn and $/task, tasks per active\nday, and projected 7/30/90/365-day spend built from your own pace — per\nmodel and overall, with a period selector. Zero-cost models are excluded.\n\n### Context & Allowance\n\n![Context & Allowance tab](images/ur-context-allowance.png)\n\nContext-window pressure: 5h/7d token burn, the 1M-window rate, context\nused before and after each task, % of window, tasks until the window\nfills — plus the provider-reported 5h / weekly allowance consumed per\ntask (Codex, Claude, MiniMax, Z.ai GLM and Kimi only; other providers\nshow N/A).\n\n### Errors\n\n![Errors tab](images/ur-errors.png)\n\nFailed calls per model × error type (rate limit, overloaded, not found,\nauth, timeout, network) with a fair error rate over completed tasks — your\nown aborts are a stat on Timings, not errors. The failed-calls-by-model\nchart reports model + provider (thinking levels are merged — a failed\ncall is a provider issue). Below that, a **Tool errors**\nsection lists failed tool calls (wrong args, stale edit anchors, bad regex,\nmissing files, timeouts) with repeat-mistake highlighting; the example\ncolumn is sanitized before it reaches the report — no file paths, URLs or\nproject code, capped at 100 characters.\n\n\n---\n\n<br><br>\n\n## **/docx project documentation generator**\n\nRegenerates a project's full documentation set: a fresh GitHub README\n(written last), plus `./docx/` - master document, structure map, and a\nmirrored tree of ID-prefixed deep docs - per the shipped documentation\nguide. Before anything is generated, existing documentation is moved to\n`./docx/old_docs/` (zipped into `./docx/backups/` as a timestamped backup\nat the end); AGENTS.md is edited in place, never replaced.\n\n> **WARNING: this will re-write readme.md** (AGENTS.md is edited in place,\n> never replaced) **and move all existing documentation** - your docs folder\n> moves to `./docx/old_docs/`, zipped into `./docx/backups/` when the run\n> completes. **Run `/new` first, then `/docx`** - a fresh session means no\n> compaction risk mid-generation and no prior conversation steering the\n> docs. Expect a **LONG wait** on larger projects: measured runs used only\n> 5-8% of a 1M-token window and even large projects stayed under 20%, but\n> the bigger and more complex the project, the longer it takes.\n\n```text\n/docx                # confirmations + project-type picker (auto-detect pre-selected)\n/docx --yes          # headless: skip confirmations\n/docx --type <key>   # headless: pick the prompt pack\n```\n\nAlready have a `./docx/` set? `/docx-update` reconciles it with the source\ninstead of regenerating: new files get docs, removed files lose theirs,\ndrifted docs are corrected in place, and your README is fact-checked\nWITHOUT being rewritten (same gates, confirmations and backup).\n\nSafeguards: refuses at ≥25% context use (compaction-corruption risk),\nadvises `/new` at ≥20%, verified backup counts, sub-project folders stay\nread-only.\n\n\n---\n\n<br><br>\n\n## **Think-tag processing**\n\nModels that emit thinking as inline `<think>…</think>` text tags (the\nDeepSeek/Qwen convention) get those tags converted into pi's native\ncollapsible thinking blocks at message-finalize time. Off by default:\n`/aftc-enable-think-processing` / `/aftc-disable-think-processing`. Safe by\nconstruction: skips messages that already have thinking blocks, errored /\naborted turns, and provider-signed text.\n\n---\n\n<br><br>\n\n## **Cache diagnostics**\n\nEverything the footer shows, on demand:\n\n- `/cache-profile` - per-tool schema token costs, skills loaded, cache\n  prefix shape (system/tools/prefix hashes), churn analysis.\n- `/cache-stats` - session cache statistics, cache-write ROI (net saved,\n  payback turns), cost burn rate.\n- `/cache-reset` - zero the accumulators (debugging).\n- `/cls` - clear the terminal screen.\n\nHit-rate formula: `cacheRead / (cacheRead + input)` - pi's `input` is NEW\nprompt tokens only. Prefix churn (system prompt or tool schema changes\nbreaking the cache) is detected per turn and warned.\n\n---\n\n<br><br>\n\n## **run_script (reliable large scripts)**\n\nThe `run_script` model tool writes the script body to a temp file and runs\n`bash <file>` - no inline-size limit, working around pi's bash-tool\ntruncation bug (a few KB+ inline commands get silently cut). Bash-only\n(git-bash on Windows); default timeout 120 s, max 1800 s. Toggle:\n`/run-script-on` / `/run-script-off` (default on).\n\n\n---\n\n<br><br>\n\n## **Background Terminals (/bt)**\n\nStart long-running shell commands in the background and keep working while\nthey run. The model uses `bg_start` / `bg_status` / `bg_list` / `bg_kill`;\nyou use `/bt` — a scrollable list of the running terminals: Enter on a row\nasks \"yes/no\" and stops that terminal, the `TERMINATE ALL` row at the top\nstops everything at once, Esc closes. No stdin,\nsession-scoped (killed on /new or /reload), max 8 at once, off by default\n(`/bt-on` then `/reload`). A one-line widget shows how many are running.\n\n---\n\n<br><br>\n\n## **Copy All (/copy-all)**\n\n`/copy-all` copies every previous user and assistant message in the current\nthread to the clipboard, joined with `---` separators (thinking excluded,\nbounded to 2 MB).\n\n---\n\n<br><br>\n\n## **File Search**\n\nFirst-class file finding and content search. `fd` finds files/directories\nby name, extension, glob, type and depth; `rg` searches file contents with\nregex or literal text, smart-case, gitignore-aware. Both shell out to the\nRust `fd` / `ripgrep` binaries (fast, accurate, cross-platform) - install\nthem via your package manager and the tools just work (a missing binary\ngives a clear install hint). Toggle: `/file-search-on` / `/file-search-off`\n(default on). Every failed run lands in the report's Tool-errors section.\n\n---\n\n<br><br>\n\n## Sub Agents (/007)\n\nDelegate focused work to isolated child pi processes. Each sub-agent runs in\nits own fresh context window with a profile-locked toolset and hands back a\nbounded report - your main session stays clean. Nine built-in agents ship\n(worker, planner, researcher, reviewer, explorer, advisor, documenter,\ndesigner, tester); make your own in your agents folder (a guide file lives\nthere too).\n\n- **Off by default** - enable and configure via `/007` - Settings.\n- `/007` is the main menu: browse agents, active work, settings, guide.\n- `/007-status` shows a live table of running agents.\n- The footer (line 6) shows what sub-agents are running while /007 is enabled.\n- Your agents live in your data dir (`subagents/`); `/007-edit` tweaks them.\n\n---\n\n<br><br>\n\n## **AFTC Resume (/aftc-resume-save /aftc-resume)**\n\nHand work off between context windows. As you work, when you want a clean\nhandoff point - or before the context window gets unwieldy - run\n`/aftc-resume-save`:\n\n1. An existing `aftc-resume.md` is renamed to a timestamped snapshot\n   (`aftc-resume-<last-modified>.md`) so old states are never lost.\n2. The model stops and writes the handoff file (`./aftc-resume.md`): Goal,\n   Current State, Decisions Made, Knowledge Learned, Key Files, Tasks &\n   Progress (referencing `tasks.md` when you follow one), Next Steps, Open\n   Questions.\n3. The toolset merges a `## Resume metadata` block (project, saved time,\n   codex resources loaded, status) and verifies the save.\n\nThen `/new`, and run `/aftc-resume` to restore your knowledge in the fresh\nwindow:\n\n- The model reads `aftc-resume.md` first.\n- Codex resources listed in the handoff are re-loaded via `codex_load`\n  (only when codex is enabled - the flow works with it on or off; key files\n  are always the fallback).\n- It reads BOTH docx docs (`docx/project_documentation.md` and\n  `docx/project_map.md` - each only when present) and re-reads AGENTS.md.\n- It confirms it is up to speed in a few short lines and then waits for\n  your direction — it does NOT continue the saved task on its own. The\n  handoff's Next Steps are reference; say something like \"continue the\n  saved work\" when you want it to pick the task back up.\n\nNotes:\n\n- **The `/new` is always yours** - the toolset never starts a session on its\n  own.\n- When the work described in the handoff is complete, the model flips its\n  `status:` line to `completed`, so a stale handoff is recognisable.\n- The handoff + snapshots are transient work state - add `aftc-resume.md`\n  (and `aftc-resume-*.md`) to `.gitignore`, `.npmignore` and\n  `.dockerignore` if you commit or publish the project (this package's own\n  repo ships these rules in all three).\n\n---\n\n<br><br>\n\n## Audio notifications\n\nPlay event sounds as pi works - enabled via the `/aftc-audio-notifications`\nsettings hub, which also has per-category sound pickers and an \"open sounds\ndir\" option. Off by default (fresh installs are silent).\n\n- Sounds fire for: startup, when the agent asks a question, task complete,\n  error, aborted, and when context-window usage crosses 25% / 50% / 75%.\n- `/aftc-notify-time [sec]` sets the minimum task duration before the\n  completion sound plays (0 disables it).\n- Context-window alerts fire on the way UP past a threshold and stay quiet\n  until usage genuinely drops back below it - reloading or resuming never\n  replays them.\n\n---\n\n<br><br>\n\n## Keyboard shortcuts\n\n| Shortcut | Action |\n| --- | --- |\n| `Alt+C` | Clear the input editor |\n| `Alt+N` | Insert a newline at the cursor |\n| `Alt+X` | Cut all input text to the clipboard |\n| `Ctrl+T` | Toggle thinking blocks (pi built-in) |\n\n---\n\n<br><br>\n\n## Bundled themes\n\n- **aftc-orange-viz** - orange-accented variant of the sea-shells palette (the AFTC default, recommended).\n- **cache-viz** - cache-focused green/cyan colour scheme.\n- **aftc-black-n-blue** - dark blue accents on black.\n\nSwitch themes with `/theme`.\n\n\n---\n\n<br><br>\n\n## Bundled skills\n\n34 skills ship with the package - activate with `/skill:<name>`:\n\n- **Workflows:** `cache-audit`, `bulk-read`, `aftc-codex`, `ssh`, `tmux`\n- **Languages:** `typescript`, `javascript-mjs`, `javascript-transpiled`,\n  `python`, `go`, `php`, `pinescript`, `bash`, `bat`, `ps1`, `markdown`,\n  `csharp`\n- **Frameworks/runtimes:** `react`, `vue`, `angular`, `web-frontend`,\n  `bun`, `deno`, `nodejs`\n- **Styling/markup:** `html`, `css`, `scss`\n- **Ops:** `docker`, `devops`, `nginx`, `linux`, `godot`\n- **Media:** `ffmpeg`\n\n\n\n---\n\n<br><br>\n\n## Slash Commands\n\nRun `/aftc-help` inside pi for the same list grouped by category.\n\n### General\n\n| Command | What it does |\n| --- | --- |\n| `/aftc-help` | Grouped command/shortcut reference |\n| `/tools` | Scrollable list of every tool available to pi (built-in + extensions) |\n| `/aftc-install` | Install runtime deps (SQLite + packaged SSH carrier) |\n| `/aftc-response-divider` | Toggle the themed divider above each assistant reply |\n| `/aftc-intro-off` | Disable the AFTC text startup animation |\n| `/aftc-intro-on` | Enable and play the AFTC text startup animation |\n| `/cls` | Clear the terminal |\n| `/theme` | Open a theme picker (arrow keys, page jumps, live preview, pre-selects active theme) |\n| `/run-script-on` | Enable the `run_script` tool (reliable large-script execution); `/reload` to apply |\n| `/run-script-off` | Disable the `run_script` tool (eg once pi fixes its bash truncation); `/reload` to apply |\n| `/aftc-debug-log-on` | Turn on `[aftc-toolset]` diagnostic console output (off by default; errors always print) |\n| `/aftc-debug-log-off` | Turn diagnostic console output back off |\n| `/aftc-cut-input` | Cut all input-editor text to the clipboard (same as `Alt+X`) |\n| `/docx [--yes] [--type <key>]` | Regenerate the project's full documentation set into `./docx/`; old docs zipped into `docx/backups/` (`--yes` skips the confirmations, `--type` picks the prompt pack) |\n| `/docx-update [--yes] [--type <key>]` | Reconcile an existing `./docx/` set with the source: mint/retire docs, fix drift, fact-check the README without rewriting it |\n| `/aftc-resume-save` | Stop current work and write `./aftc-resume.md` (handoff file: goal, current state, knowledge learned, key files, next steps). An existing handoff is kept as a timestamped snapshot - nothing is overwritten. Then `/new` + `/aftc-resume` to continue in a fresh window |\n| `/aftc-resume` | Restore the saved knowledge: the model reads `./aftc-resume.md`, re-loads its codex resources (codex on) and key files, reads the project's docx docs and AGENTS.md, confirms it is up to speed, then waits for your direction |\n| `/copy-all` | Copy all user/assistant messages in the thread to the clipboard |\n| `/file-search-on` | Enable the fd + rg search tools (`/reload` to apply) |\n| `/file-search-off` | Disable the fd + rg search tools (`/reload` to apply) |\n\n### Interrupt\n\n| Command | What it does |\n| --- | --- |\n| `/aftc-stop` | Abort the current agent operation |\n| `/stfu` | Short alias for `/aftc-stop` |\n\n### Navigation\n\n| Command | What it does |\n| --- | --- |\n| `/dir` (alias `/ls`) | Show the current directory name + platform-native listing |\n| `/cwd` | Show the current working directory as an inline card |\n| `/qd` | Quick dir access menu: open the users data dir or the `.pi` dir |\n\n### Footer, cache, timing\n\n| Command | What it does |\n| --- | --- |\n| `/aftc-footer` | Open the footer dashboard menu: Enable footer (ON/OFF), Show recorded averages (ON/OFF - the line-4 averages), Set averages timeframe (19 rolling / calendar windows) |\n| `/cache-profile` | Per-tool token costs, prefix shape, churn analysis |\n| `/cache-stats` | Current-context cache diagnostics + cost rate |\n| `/cache-reset` | Zero accumulators and timer (debugging) |\n\n### SSH\n\nSee the [SSH](#ssh) section for the full command reference, model tools, and workflows.\n\n### Usage\n\n| Command | What it does |\n| --- | --- |\n| `/usage-report` | Seed the report web app, generate a fresh `data.json`, start the local server (browser opens) |\n| `/usage-clear` | Delete all SQLite rows (with confirmation) |\n\n### Replay\n\n| Command | What it does |\n| --- | --- |\n| `/save-replay-prompt <text>` | Save `<text>` as a replay prompt (persists across reload/sessions) and add a visual save confirmation to conversation history |\n| `/replay` | Re-execute the saved prompt as a fresh user message (queued as follow-up when busy) |\n| `/r` | Short alias for `/replay` - same action, fewer keystrokes |\n\n### Model behaviour\n\n| Command | What it does |\n| --- | --- |\n| `/keep-it-short` | Send a fixed \"be concise\" instruction prompt to the active model (queued as follow-up when busy) |\n| `/kis` | Short alias for `/keep-it-short` - same action, fewer keystrokes |\n\n### Thinking\n\n| Command | What it does |\n| --- | --- |\n| `/aftc-enable-think-processing` | Turn on inline `<think>…</think>` tag parsing (off by default; `/reload` to apply) |\n| `/aftc-disable-think-processing` | Turn off inline `<think>…</think>` tag parsing (`/reload` to apply) |\n\n### Background terminals\n\n| Command | What it does |\n| --- | --- |\n| `/bt` | List running background terminals (scrollable); Enter stops one after a yes/no confirm, `TERMINATE ALL` stops them all |\n| `/bt-on` | Enable the background terminals feature (`/reload` to apply) |\n| `/bt-off` | Disable the background terminals feature (`/reload` to apply) |\n\n### Sub Agents\n\n| Command | What it does |\n| --- | --- |\n| `/007` | Main menu: browse agents, active work, settings, guide, enable/disable |\n| `/007-status` | Live table of running agents (state, elapsed, context %) |\n| `/007-kill [id]` | Kill running agents (multi-select, or a single run id) |\n| `/007-edit [name]` | Agent picker → options menu (feature toggles, edit raw file, reset to default) |\n| `/007-reset <name>` | Reset an agent to the shipped default (with confirmation) |\n| `/007-install` | Seed the built-in agents into your agents folder |\n| `/007-sync` | Merge improved shipped agents in without touching your edits |\n| `/007-open-agent-dir` | Open your agents folder in the OS file manager |\n| `/007-guide` | The sub-agents walkthrough |\n| `/007-settings` | Presets, concurrency, budgets, watchdogs, footer line |\n| `/007-doctor` | Check your sub-agents setup |\n\n### Audio notification\n\n| Command | What it does |\n| --- | --- |\n| `/aftc-audio-notifications` (alias `/aftc-notifications`) | Settings hub: enable toggle + per-category sound pickers (startup, question, task-complete, error, aborted, context 25/50/75%) + open the sounds dir |\n| `/aftc-notify-time [sec]` | Show or set the minimum task duration before the completion sound (0 disables) |\n\n### aftc-codex\n\nSee the [aftc-codex](#aftc-codex-knowledge-base) section - `/codex`,\n`/codex-enable`, `/codex-disable`, `/codex-init`, `/codex-refresh`,\n`/codex-status`, `/codex-list`, `/codex-load`, `/codex-install`,\n`/codex-learn`, `/codex-inject-rules` (+ `/aftc-codex-*` full names).\n\n### Providers\n\nCurrently **disabled** - pi now registers providers natively. The module stays in the package and can be re-enabled in a future release.\n\n---\n\n<br><br>\n\n## PI AFTC Toolset Defaults\n\n| Feature | Default state |\n| --- | --- |\n| Footer widget | Enabled |\n| Footer averages line (line 4) | Enabled |\n| Footer timeframe | 3 Days |\n| SSH | Available (command-driven) |\n| Usage recording | Enabled (when SQLite installed) |\n| aftc-codex knowledge base | Disabled |\n| Codex guidance inject / auto-load | Enabled (once codex is on) |\n| Audio notifications | Disabled (fresh installs silent) |\n| run_script tool | Enabled |\n| Background terminals | Disabled |\n| File search (fd + rg) | Enabled |\n| Think-tag processing | Disabled |\n| Sub Agents (/007) | Disabled |\n| Response divider | Enabled |\n| AFTC text intro | Enabled |\n| Debug logging (stdout chatter) | Disabled (errors always print) |\n\n---\n\n<br><br>\n\n## Data location\n\nThe toolset stores its runtime data - usage history (`turns.db`), preferences (`config.json`), saved SSH connections (`ssh.json`), the live codex (`aftc-codex/`), sub-agent config and agents (`subagents-config.json`, `subagents/`), the debug log (`debug.log`) and the report web app (`usage-report/` with its generated `data.json`) - in a per-user folder **outside** the installed package, so it survives `pi update`. Location per operating system:\n\n| OS | Data folder |\n| --- | --- |\n| **Windows** | `%APPDATA%\\pi-aftc-toolset\\data\\` (eg `C:\\Users\\<you>\\AppData\\Roaming\\pi-aftc-toolset\\data\\`) |\n| **Linux** | `$XDG_DATA_HOME/pi-aftc-toolset/data/`, falling back to `~/.local/share/pi-aftc-toolset/data/` |\n| **macOS** | `~/Library/Application Support/pi-aftc-toolset/data/` |\n\nSet the `AFTC_TOOLSET_DATA_ROOT` environment variable to override the location (used by tests and power users). `/qd` opens the folder in your file manager.\n\n> **Uninstall note:** this folder lives outside the package, so `pi remove` does **not** delete it - your usage history and preferences remain after uninstall. Delete the folder above manually for a full clean-up.\n\n---\n\n<br><br>\n\n## Updating\n\n```bash\npi update npm:pi-aftc-toolset\n```\n\nor install a pinned GitHub release:\n\n```bash\npi install git:github.com/DarceyLloyd/pi-aftc-toolset@v<version>\n```\n\nThen `/reload` in pi. When an update ships new codex rules or guidance, the\nshipped copy is refreshed in your live codex automatically on startup - your\nown codex resources are never touched.\n\n---\n\n<br><br>\n\n## Uninstall\n\n```bash\npi remove npm:pi-aftc-toolset          # global\npi remove npm:pi-aftc-toolset -l       # project-local\n```\n\nor if you installed via GitHub:\n\n```bash\npi remove git:github.com/DarceyLloyd/pi-aftc-toolset\n```\n\nThen `/reload` or restart pi.\n\n---\n\n<br><br>\n\n## Advanced installation\n\n### npm variants\n\n```bash\npi install npm:pi-aftc-toolset          # global\npi install npm:pi-aftc-toolset -l       # project-local\npi -e npm:pi-aftc-toolset               # ephemeral (current session only)\n```\n\n### GitHub variants\n\n```bash\npi install git:github.com/DarceyLloyd/pi-aftc-toolset         # latest main\npi install git:github.com/DarceyLloyd/pi-aftc-toolset@v1.6.0  # pinned release\npi install git:github.com/DarceyLloyd/pi-aftc-toolset -l      # project-local\n```\n\n> GitHub installs skip npm post-install hooks - run `/aftc-install` once after the first install.\n\n### Local clone\n\n```bash\ngit clone https://github.com/DarceyLloyd/pi-aftc-toolset.git\npi install /path/to/pi-aftc-toolset -l\n```\n\n---\n\n<br><br>\n\n## Dependency installer\n\n`/aftc-install` (see [Slash Commands](#slash-commands)) installs and verifies:\n\n- `better-sqlite3` via `npm install`\n- Packaged SSH carrier dependencies via `uv sync --locked`\n- The platform-native `uv` executable, using `uv.exe` on Windows and `uv` on Linux and macOS\n- A Python 3 interpreter (`py`/`python` on Windows, `python3`/`python` elsewhere)\n\nIf Node, Python, or `uv` is missing it reports platform-specific recovery guidance without exposing saved connection data.\n\nReload pi afterwards. The footer works without SQLite, but usage recording, reporting, and SSH require `/aftc-install`.\n\n---\n\n<br><br>\n\n## Requirements\n\n- pi CLI (developed against 0.83.0)\n- Node.js / npm\n- Providers that expose `usage.cacheRead` and `usage.cacheWrite` for full cache metrics (other providers may show zero / incomplete cache values)\n- Python 3.10+ and uv for the packaged SSH carrier. `/aftc-install` verifies the carrier environment.\n\n---\n\n<br><br>\n\n## Development\n\nInstall from a clone:\n\n```bash\npi install /path/to/pi-aftc-toolset -l\n```\n\nAfter edits, reload pi with `/reload`. Full developer documentation\n(workflow, release discipline, architecture) lives in `./docx/`; how to\nrun the tests (which suites, timeouts, the full-suite policy) is in\nAGENTS.md.\n\n---\n\n<br><br>\n\n## Project map (lite)\n\n```\npi-aftc-toolset\n|- 1 Extension source (extensions/aftc-toolset)   all feature modules\n|    UI framework · Footer/cache/usage · Feature modules\n|    SSH (+ Python carrier) · aftc-codex · docx generator · Sub Agents (007)\n|- 2 Packaging & shipped assets (data, skills, themes, release scripts)\n\\- 3 Project website & feedback (dev.aftc.uk/)\n```\n\n---\n\n<br><br>\n\n## Persistent files\n\nRuntime data lives in a per-user folder **outside** the installed package\n(see [Data location](#data-location)), so it survives `pi update`. Every\nfile is created lazily from built-in defaults - none of it is shipped or\ncommitted, and the whole data dir is excluded from git and npm publishing.\n\n| File | Purpose |\n| --- | --- |\n| `config.json` | Cross-session user preferences: footer (on/off, averages line on/off, timeframe window), response divider, think-tag processing, intro animation, audio notifications, replay prompt, run_script tool and aftc-codex switches. Created with defaults on first access; only re-written when a value actually changes. |\n| `ssh.json` | Local SSH connection metadata (name, username, host, port, timeout, optional key path, optional saved password) + new-host-key auto-accept flag. Local-only, never shipped. |\n| `turns.db` | SQLite usage database (turns + tasks tables - metrics only, never prompt text) |\n| `usage-report/` | Seeded report web app + freshly generated `data.json` (your recorded usage) |\n| `debug.log` | Rotating `[aftc-toolset]` diagnostic log (5 MB cap + one `.old` generation) |\n| `aftc-codex/` | Your live codex knowledge base (ships the core rules + guidance; the topic docs are yours to build) |\n| `subagents-config.json` | Sub Agents (/007) preferences: presets, concurrency, budgets, watchdogs |\n| `subagents/` | Your live sub-agents (seeded built-ins you can edit) + per-run records |\n\n**Your data survives updates.** Because the data dir is outside the\npackage, `pi update` no longer wipes it. Upgrading from a version that\nstored data inside the install folder moves any still-present files over\nautomatically on first run (data already lost to an older update can't be\nrecovered).\n\nIn-memory only (per-session, not persisted): cache accumulators, model info, per-turn timings, context-window clock start time.\n\nSSH sessions, shell buffers, credentials, and carrier processes are in-memory only and are cleared during shutdown.\n<br><br>\n\n---\n## Project documentation\n\n*For more details please see [docx/project_documentation.md](docx/project_documentation.md) and [docx/project_map.md](docx/project_map.md).*\n\n---\n\n\n<br><br>\n\n---\n\n<br><br>\n\n# License\n\n[Elastic License 2.0](./LICENSE) - Author <Darcey.Lloyd@gmail.com>\n\nSource-available: you may use, modify and build on this software freely,\nbut you may not resell it or provide it to third parties as a hosted or\nmanaged service.\n","readmeFilename":"README.md"}