{"_id":"@alexleekt/pi-bump","_rev":"7-5612a11e8af10dcd38a0fa2437ba6936","name":"@alexleekt/pi-bump","dist-tags":{"latest":"0.3.3"},"versions":{"0.1.0":{"name":"@alexleekt/pi-bump","version":"0.1.0","keywords":["pi-package","pi-extension","pi","bump","nudge","continue"],"author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"license":"MIT","_id":"@alexleekt/pi-bump@0.1.0","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-bump#readme","bugs":{"url":"https://github.com/alexleekt/pi-bump/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"03515edda836b8a9fb2619ddb727b2a359a2512c","tarball":"https://registry.npmjs.org/@alexleekt/pi-bump/-/pi-bump-0.1.0.tgz","fileCount":4,"integrity":"sha512-J+p8Gdr8oTyYSxD2yJsyZqBRuiZO50hSaTIMjbYwU9vBw7qaXjE6AUDZ2VepgAJNeDUqJ1PZzjHZR3VvNu6tGg==","signatures":[{"sig":"MEUCIQDT0sTwWW3SpUuuFr1ZrFD6+7Dckj+BWPwG4Au++HYsRgIgXyWEORAaDEINpgw3EJx4YVEtOtUQaKRNl6gp4xKRPok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4175},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"2b17d3d95be9f987cca06fbd6ffaf28c31db5fc8","scripts":{"check":"tsc --noEmit"},"_npmUser":{"name":"alexleekt","email":"stratrix@gmail.com"},"repository":{"url":"git+https://github.com/alexleekt/pi-bump.git","type":"git"},"_npmVersion":"11.13.0","description":"Double-Enter on empty chat to send 'bump' to the Pi agent.","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@earendil-works/pi-coding-agent":"^0.74.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-bump_0.1.0_1778921196559_0.8142539163154658","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@alexleekt/pi-bump","version":"0.2.0","keywords":["pi-package","pi-extension","pi","bump","nudge","continue"],"author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"license":"MIT","_id":"@alexleekt/pi-bump@0.2.0","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-bump#readme","bugs":{"url":"https://github.com/alexleekt/pi-bump/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"0cdc4d5bf0779d1c4d127295e19da687b79f7238","tarball":"https://registry.npmjs.org/@alexleekt/pi-bump/-/pi-bump-0.2.0.tgz","fileCount":4,"integrity":"sha512-14s8YnVpMGFaLF+qYwwxu9pAM6sjxD14I1IpX4Z3u1/DFzJZdRzCjeIRI6QM5ymzQLDtal+iMOPqwq+AaI340g==","signatures":[{"sig":"MEUCIAP0ZvRL19F+L1Cw4nZADPVv8bosHSWNBa7U36OcTmu6AiEA5tPCCxhzvtB3GTj3oqccSH112yq4lJ5VPAxcVo8k324=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-bump@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4695},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"e79fe90c90741e5ce1fbfc40ef591fc80d5bd19a","scripts":{"check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8922b1ae-8716-46ef-9edf-7c49376a31d8"}},"repository":{"url":"git+https://github.com/alexleekt/pi-bump.git","type":"git"},"_npmVersion":"11.12.1","description":"Double-Enter on empty chat to send a randomized nudge to the Pi agent.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@earendil-works/pi-coding-agent":"^0.74.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-bump_0.2.0_1778960843378_0.36029034612904653","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@alexleekt/pi-bump","version":"0.2.3","keywords":["pi-package","pi-extension","pi","bump","nudge","continue"],"author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"license":"MIT","_id":"@alexleekt/pi-bump@0.2.3","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-bump#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"561759cff11bbf5b486db99d5c21258e145a8501","tarball":"https://registry.npmjs.org/@alexleekt/pi-bump/-/pi-bump-0.2.3.tgz","fileCount":4,"integrity":"sha512-xHyqHWp4au3IFI9BVjVhaxxQmCdry930RCJhuRQCjHlI3EYgk1uMEmeVMWwLUM6ARo4HTfSHz5DZUAPL2oqsqA==","signatures":[{"sig":"MEQCICznQiS14hsdZNJgvq0ksp1JpR1MX1+wAUvPOaebUJGQAiAL4dqQLIXtvmCx1hElPJN0t5U14KbIwu/Sc5pH8JElSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-bump@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5247},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"63154db3430cab349ec72006ff05fa01a4d69e85","scripts":{"check":"tsc --noEmit","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a19d081b-2055-4508-8303-a50b7edd11e7"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.12.1","description":"Double-Enter on empty chat to send a randomized nudge to the Pi agent.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@alexleekt/pi-shared":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@biomejs/biome":"^2.4.15","@earendil-works/pi-coding-agent":"^0.74.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-bump_0.2.3_1778968016691_0.9213742281008177","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@alexleekt/pi-bump","version":"0.2.4","keywords":["pi-package","pi-extension","pi","bump","nudge","continue"],"author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"license":"MIT","_id":"@alexleekt/pi-bump@0.2.4","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-bump#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"81736d1491754ac0871965bef32bf524aa3de0d7","tarball":"https://registry.npmjs.org/@alexleekt/pi-bump/-/pi-bump-0.2.4.tgz","fileCount":4,"integrity":"sha512-vfw4t+dAxON4hvsMmkzWnZs0UX34g0MHyXKn8r4cDTlQu+Izm5cjTuXe9k4B8DDERjd62uGKrEzCYUqnQQUZSQ==","signatures":[{"sig":"MEQCIEhKy3FawSM2zYtrFOWhkm4dwqyLpL9ZmaLJmFT8HqkwAiB795BJELNJ4NV3GOP8cOfMo2llOp9370iev+CR+mh6Tg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-bump@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5252},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"217467245071d6386d358e22949af4ef0e7f95db","scripts":{"check":"tsc --noEmit","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a19d081b-2055-4508-8303-a50b7edd11e7"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.12.1","description":"Double-Enter on empty chat to send a randomized nudge to the Pi agent.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@alexleekt/pi-shared":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@biomejs/biome":"^2.4.15","@earendil-works/pi-coding-agent":"^0.74.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-bump_0.2.4_1778970143917_0.33314657622127686","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@alexleekt/pi-bump","version":"0.3.0","keywords":["pi-package","pi-extension","pi","bump","invisible","continue"],"author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"license":"MIT","_id":"@alexleekt/pi-bump@0.3.0","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-bump#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"63026005a5472b7c5ae1317b7f80585c151fbca6","tarball":"https://registry.npmjs.org/@alexleekt/pi-bump/-/pi-bump-0.3.0.tgz","fileCount":4,"integrity":"sha512-MZrGDv5PO/KGQlVaIq2l0IXVcfkemDh41w0i5Z21DrsxEOCgMqzE+1Frrasfgo0ddalz1lnDW6eIJqBB0JqEwA==","signatures":[{"sig":"MEQCIF13ifWONBDmkp9KzS+6teHAvL6acWb9FgSZTKNRCZOxAiALUHeEzCgHUug4Z2AdKdmkW6FxzJQueYt9IwdQfYDuqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-bump@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12064},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"e1cb0f8c2d9912a90621b74408bc2415c708cc07","scripts":{"check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a19d081b-2055-4508-8303-a50b7edd11e7"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.12.1","description":"Invisible continuation for the Pi agent. Double-tap Enter on empty chat to resume the agentic loop without sending the LLM a single token.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@alexleekt/pi-shared":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@earendil-works/pi-coding-agent":"^0.74.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-bump_0.3.0_1779082667091_0.30154327800007796","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@alexleekt/pi-bump","version":"0.3.2","keywords":["pi-package","pi-extension","pi","bump","invisible","continue"],"author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"license":"MIT","_id":"@alexleekt/pi-bump@0.3.2","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-bump#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"6c3d539b6fe9297504dceca99eef0197b3df2197","tarball":"https://registry.npmjs.org/@alexleekt/pi-bump/-/pi-bump-0.3.2.tgz","fileCount":4,"integrity":"sha512-ewV2gHFvccj6IXgNFzyhgM6U2NYoo2HmdJb7+hp8F4qCXq2vfywbeLGquk0LO75vYbZomIrI4uYqeh7F/00VUw==","signatures":[{"sig":"MEYCIQCTWWV5r1n90JgCnibw0PN0Yn2vUODbX2YWsuV6oThh3wIhANauLwaI2E/YIZH2EQp37IiGWZ41jtEFhWla3PQATkK4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-bump@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22951},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"dc1777f4e8d666048adf2999e7f3ce8be35a77cb","scripts":{"check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a19d081b-2055-4508-8303-a50b7edd11e7"}},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.12.1","description":"Invisible continuation for the Pi agent. Double-tap Enter on empty chat to resume the agentic loop without sending the LLM a single token.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@alexleekt/pi-shared":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@earendil-works/pi-coding-agent":"^0.74.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-bump_0.3.2_1779433683401_0.5726103331297743","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@alexleekt/pi-bump","version":"0.3.3","description":"Invisible continuation for the Pi agent. Double-tap Enter on empty chat to resume the agentic loop without sending the LLM a single token.","type":"module","license":"MIT","author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"keywords":["pi-package","pi-extension","pi","bump","invisible","continue"],"repository":{"type":"git","url":"git+https://github.com/alexleekt/pi-extensions.git"},"publishConfig":{"access":"public"},"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-bump#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"engines":{"node":">=18.0.0"},"pi":{"extensions":["./index.ts"]},"dependencies":{"@alexleekt/pi-shared":"^0.1.3"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*"},"devDependencies":{"@earendil-works/pi-coding-agent":"0.80.6","@earendil-works/pi-tui":"0.80.6","typescript":"^5.9.3"},"scripts":{"check":"tsc --noEmit"},"gitHead":"23b3fb3461b21094f23548f9eca0114730f81394","_id":"@alexleekt/pi-bump@0.3.3","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-Svr0MH/uwog+Z8C6ASTSlgbGSrWfLGbhz8krTzL/zgtsKXvwJ+iF69dv/KmJo//sq7lJnIh0+DNAg31enBWZrg==","shasum":"dcfd66e9d10797929721b4513702d3753c521a21","tarball":"https://registry.npmjs.org/@alexleekt/pi-bump/-/pi-bump-0.3.3.tgz","fileCount":4,"unpackedSize":22810,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-bump@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB6SbLLIfB9JZ4mU4EdtdpZYwAmCrHmtRgtOrh9nFq0ZAiBh3VPdJTCVEu8Gwc2DR5P/gw1WKr4ioyAMY5mUQE3eeg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a19d081b-2055-4508-8303-a50b7edd11e7"}},"directories":{},"maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-bump_0.3.3_1787966755919_0.8214519479627349"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-16T08:46:36.404Z","modified":"2026-08-29T01:25:56.388Z","0.1.0":"2026-05-16T08:46:36.692Z","0.2.0":"2026-05-16T19:47:23.520Z","0.2.3":"2026-05-16T21:46:56.829Z","0.2.4":"2026-05-16T22:22:24.072Z","0.3.0":"2026-05-18T05:37:47.225Z","0.3.2":"2026-05-22T07:08:03.548Z","0.3.3":"2026-08-29T01:25:56.056Z"},"bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"license":"MIT","homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-bump#readme","keywords":["pi-package","pi-extension","pi","bump","invisible","continue"],"repository":{"type":"git","url":"git+https://github.com/alexleekt/pi-extensions.git"},"description":"Invisible continuation for the Pi agent. Double-tap Enter on empty chat to resume the agentic loop without sending the LLM a single token.","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"readme":"# @alexleekt/pi-bump\n\n[![npm](https://img.shields.io/npm/v/@alexleekt/pi-bump)](https://www.npmjs.com/package/@alexleekt/pi-bump)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n**Invisible continuation for the Pi agent.**\n\nResume the agentic loop without sending the LLM a single token.\n\n## Usage\n\n### Double-tap Enter (quickest)\n\n1. Make sure the chat editor is **empty**\n2. Press **Enter twice** within ~300 ms\n3. The agent continues — the LLM sees nothing\n\n### `/continue` command\n\n| Command | What it does |\n|---------|-------------|\n| `/continue` | Resume the loop invisibly (or visibly if escalated) |\n| `/continue status` | Show if the agent is idle, busy, or escalated |\n| `/continue help` | Show available commands |\n\nBoth methods only fire when the agent is idle and no messages are pending.\n\n## How it works\n\n**Default (invisible)**: A hidden `customType` message is sent with `display: false`. The `context` handler replaces it with `\"Continue\"` before the LLM sees it. The LLM receives a clean semantic nudge and the chat stays uncluttered.\n\n**Escalated (visible)**: When loop detection notices the last two assistant responses had identical tool calls (or exact text duplicates), the *next* continue sends a real visible user message — exactly `\"Keep going.\"` — stronger signal, same goal.\n\nA `context` event handler proactively removes any leaked invisible markers as insurance. Real user input always resets escalation state.\n\n## Installation\n\n```bash\nnpm install -g @alexleekt/pi-bump\n```\n\nPi auto-discovers globally installed `pi-package` extensions.\n\nOr copy `index.ts` into `.pi/extensions/` (project) or `~/.pi/agent/extensions/` (global).\n\n## Debug mode\n\n```bash\nBUMP_DEBUG=1 pi\n```\n\nThen toggle per-session debugging with `/bump-debug-keypresses`:\n\n- **Enter** — triggers invisible continue + shows timing\n- **Backspace, Delete** — shows timing only\n- **Ctrl+Enter, Alt+Enter** — also monitored\n\nDebug mode resets when the session ends. Only available when `BUMP_DEBUG=1` is set.\n\n> **Note:** Debug mode monitors 5 keys (enter, backspace, delete, ctrl+enter, alt+enter). In normal mode, only Enter is monitored for performance. The other keys are only checked when debug mode is active for that session.\n\n## Performance\n\npi-bump is designed to stay out of the way:\n\n- **Minimal keystroke overhead** — In normal mode, only `Enter` is matched against incoming keystrokes. No `matchesKey()` calls for backspace, delete, or modifier keys unless debug mode is active.\n- **Zero-allocation context guard** — The `context` handler scans for invisible markers with `.some()` before allocating. In typical conversations (no invisible messages), no array is created.\n- **Synchronous state reset** — The `input` handler resets escalation state immediately (no microtask deferral), preventing false loop detection.\n\n## Hybrid Escalation Strategy (v0.3.1+)\n\n`pi-bump` uses a two-tier strategy to keep the agent moving without polluting the chat:\n\n1. **Invisible tier** (default) — sends a hidden `customType` message (`display: false`). The `context` handler replaces it with `\"Continue\"` for the LLM. Chat stays clean.\n2. **Visible tier** (escalation) — when loop detection sees identical tool calls (or exact text duplicates) across the last two assistant responses, the *next* continue sends a real visible user message — exactly `\"Keep going.\"` (the invisible LLM signal remains `\"Continue\"`).\n3. **Auto-reset** — a non-loop assistant response or real user input resets back to the invisible tier.\n\nThe visible tier only triggers when the invisible tier isn't breaking the loop — so most continues stay silent and seamless.\n\n## Acknowledgments\n\nThe invisible continuation technique was adapted from [pi-invisible-continue](https://github.com/monotykamary/pi-invisible-continue) by Tom X Nguyen.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}