acuvo-code 0.6.0 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ENTERPRISE.md +3 -3
- package/lib/input-box.mjs +20 -1
- package/lib/model.mjs +1524 -1490
- package/lib/session.mjs +207 -4
- package/lib/turn.mjs +16 -3
- package/package.json +1 -1
package/ENTERPRISE.md
CHANGED
|
@@ -189,7 +189,7 @@ are the numbers to quote. Counting is the first thing a reviewer does.
|
|
|
189
189
|
|
|
190
190
|
⚠️ **This said "18 shipped files", then "41", then "90", then "101", then "108", and every
|
|
191
191
|
one went stale in turn.** The package ships **120 files — 118 in `lib/`, 2 in
|
|
192
|
-
`bin/` — about
|
|
192
|
+
`bin/` — about 78511 lines**, with **238 test files** beside them (counted 2026-08-22).
|
|
193
193
|
|
|
194
194
|
⭐ **AND THE 108 WENT STALE IN THE MOST INSTRUCTIVE WAY POSSIBLE: THREE OF THE FILES IT
|
|
195
195
|
MISSED WERE REACHABLE FROM NOTHING.** `wiring-reach.test.mjs` was naming
|
|
@@ -203,7 +203,7 @@ exactly the kind of number this section warns about.
|
|
|
203
203
|
allowlist also carries **`test/`, `ENTERPRISE.md` and `ROADMAP.md`**, and the published
|
|
204
204
|
tarball is **265 files, 5.1 MB unpacked — 182 of them tests against 98 of `lib/`.** That is
|
|
205
205
|
deliberate, not drift (commit `ed08f2710`, *"ship the tests, and add CI that would have
|
|
206
|
-
caught the false green"*): a document that invites you to audit
|
|
206
|
+
caught the false green"*): a document that invites you to audit 78511 lines and then ships
|
|
207
207
|
you the source without the tests is asking to be taken on trust, which is the one thing this
|
|
208
208
|
file refuses to ask for. ⭐ **Run them yourself: `npm test` inside the installed package.**
|
|
209
209
|
The stale sentence is the more interesting failure — it under-claimed, so nobody would ever
|
|
@@ -892,7 +892,7 @@ For completeness, the properties none of them offers:
|
|
|
892
892
|
(`lib/media.mjs`), and generates imagery with no configuration and no account
|
|
893
893
|
(`lib/imagegen.mjs`) — critiqued before it is accepted, and reported as unreviewed when
|
|
894
894
|
no critic is available.
|
|
895
|
-
- ⭐ **Zero dependencies.** The entire auditable surface is 120 files and
|
|
895
|
+
- ⭐ **Zero dependencies.** The entire auditable surface is 120 files and 78511 lines,
|
|
896
896
|
and there is no `node_modules` behind it. (Counted 2026-08-22 from
|
|
897
897
|
`lib/*.mjs` + `bin/*.mjs`; `test/docs-truth.test.mjs` fails the build if this number
|
|
898
898
|
drifts, which is why it went 18 → 41 → 46 → 52 → 53 → 57 → 60 → 61 → 62 → 65 → 66 → 69 → 70 → 71 → 72 → 73 → 80 → 84 → 90 → 100 → 101 → 102 → 103 → 107 → 108 → 111 as modules landed (111 = the three that were WRITTEN and imported by nothing — `python.mjs`, `cache-floor.mjs`, `plan-coherence.mjs`; 108 = `warm-provider.mjs`, which keeps a session on the upstream that holds its prompt cache; 107 = `login.mjs`, the command that stores an Acuvo credential — until it existed, `writeAccount` was called by nothing and every user fell through to BYOK). ⚠️ Two of those three landed on this count while remaining UNREACHABLE, which is the sharpest illustration this document has that a file count is a claim about bytes, never about capability. ⭐ A
|
package/lib/input-box.mjs
CHANGED
|
@@ -528,7 +528,26 @@ export function pinRegion(output, { rows = 2, env = process.env } = {}) {
|
|
|
528
528
|
* screen. Both are needed and the order matters: erase the history, erase the
|
|
529
529
|
* screen, then home.
|
|
530
530
|
*/
|
|
531
|
-
|
|
531
|
+
/**
|
|
532
|
+
* ── ⚠️⚠️ THE CANONICAL CLEAR, IN THE CANONICAL ORDER — TWICE WRONG BEFORE ──
|
|
533
|
+
*
|
|
534
|
+
* Roman, twice: *"you have to scroll down to see the prompt area."*
|
|
535
|
+
*
|
|
536
|
+
* What `clear` itself emits is `ESC[H ESC[2J ESC[3J` — HOME FIRST, then erase
|
|
537
|
+
* the screen, then erase the scrollback. I had `3J 2J` with the home last, and
|
|
538
|
+
* the order is not cosmetic: erasing scrollback while the cursor is still
|
|
539
|
+
* parked in it leaves the viewport anchored to a region that no longer exists,
|
|
540
|
+
* so the terminal keeps showing the old shell output and our banner and prompt
|
|
541
|
+
* sit below the fold.
|
|
542
|
+
*
|
|
543
|
+
* ⭐ HOME FIRST puts the viewport at the top of the buffer BEFORE anything is
|
|
544
|
+
* erased, so there is nowhere stale for it to stay.
|
|
545
|
+
*
|
|
546
|
+
* ⚠️ AND THE SCROLL REGION IS SET LAST. Setting a region while the cursor is
|
|
547
|
+
* outside it is undefined across terminals — some clamp, some ignore it. Clear
|
|
548
|
+
* completely, then declare the region, then place the cursor inside it.
|
|
549
|
+
*/
|
|
550
|
+
output.write(`${CSI}H${CSI}2J${CSI}3J${CSI}1;${bottom}r${CSI}1;1H`);
|
|
532
551
|
|
|
533
552
|
const release = () => {
|
|
534
553
|
if (released) return;
|