@askalf/dario 4.3.1 → 4.4.1

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.
Files changed (2) hide show
  1. package/README.md +22 -10
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -147,7 +147,15 @@ The 2026-06-15 split is announced. The wire-shape changes that arrive between re
147
147
 
148
148
  **Three undisclosed wire-shape changes in one CC release. Three dario releases the same evening, 13 minutes apart.** The interactive Claude Code TUI is what makes this visible to you in real time — Hits tab shows the request shape going out, the rate-limit bucket coming back, and dario's auto-retry decision in between. v4.0.0 went live 2026-05-16T11:46:01Z; the drift cadence is the same as it's been since v3.22.
149
149
 
150
- [`.github/workflows/cc-drift-watch.yml`](./.github/workflows/cc-drift-watch.yml) (cron `0 * * * *`) checks each new CC npm release for differences in the captured wire shape and auto-drafts a fix PR. [`.github/workflows/cc-drift-auto-release.yml`](./.github/workflows/cc-drift-auto-release.yml) merges and ships within minutes. **Anthropic doesn't publish a wire-level changelog for subscribers. dario is one.**
150
+ **Then it got worse.** v4.2.1 (2026-05-17) shipped receipts for a more aggressive class: **same CC binary, different wire output 24 hours apart.** Same `claude.exe` on disk that produced template A yesterday produces template B today three slot diffs in one 24h window (`output_config.effort` default flipped `medium` `high` → `xhigh`, `context-1m-2025-08-07` beta back in the header set, system_prompt -354 chars), zero changelog entries from Anthropic, no npm version bump anywhere. Anthropic ships wire-shape changes through CC's **remote configuration**, not just through CC npm releases.
151
+
152
+ **Two classes of drift, two watchers, both auto-detecting.**
153
+
154
+ - **Class A — npm-release drift.** [`cc-drift-watch.yml`](./.github/workflows/cc-drift-watch.yml) (cron `0 * * * *`) catches each new CC release on github-hosted runners. [`cc-drift-auto-release.yml`](./.github/workflows/cc-drift-auto-release.yml) merges and ships within minutes.
155
+ - **Class B — same-binary remote-config drift** *(new in v4.2.2)*. [`cc-drift-template-watch.yml`](./.github/workflows/cc-drift-template-watch.yml) (cron `*/30 * * * *`) runs on a self-hosted runner with a real authenticated CC install, captures live every 30 min, and opens an issue the moment the bundled template stops matching what CC is currently sending. This is the only way to catch the class — github-hosted has no Pro/Max subscription session, no OAuth credential, no way to capture from real CC. Setup: [`docs/drift-monitor.md`](./docs/drift-monitor.md).
156
+ - **PR-time compat gate** *(new in v4.3.0)*. [`compat-test-self-hosted.yml`](./.github/workflows/compat-test-self-hosted.yml) runs `test/compat.mjs` against a live `dario proxy --passthrough` on the same runner — wire-shape regressions fail the merge check **before** they ship.
157
+
158
+ **Anthropic doesn't publish a wire-level changelog for subscribers. dario is one.**
151
159
 
152
160
  ---
153
161
 
@@ -348,7 +356,7 @@ The tool doesn't know. The backend doesn't know. Dario is the seam.
348
356
  ## Capabilities
349
357
 
350
358
  - **Interactive TUI (v4).** `dario` with no args opens a full-screen control panel: live request stream, per-model burn-rate, rate-limit utilization bars, billing bucket breakdown, in-place config editor that writes to `~/.dario/config.json`. The visible interface that turns subscription accounting from "log files" into "watch it happen."
351
- - **Hourly drift detection.** [`cc-drift-watch.yml`](./.github/workflows/cc-drift-watch.yml) checks each new CC npm release for changes in the captured wire shape (system prompt content, tool catalog, header set, body field order, beta flags), auto-drafts a fix PR, auto-merges on CI green. Median time from CC release dario release is under one hour. The receipt: this week's three v3.38.x releases shipped within hours of CC v2.1.142.
359
+ - **Two-class drift detection.** [`cc-drift-watch.yml`](./.github/workflows/cc-drift-watch.yml) catches **Class A** (new CC npm releases) hourly on a github-hosted runner; auto-drafts + auto-merges a fix PR; median CC release dario release under one hour. [`cc-drift-template-watch.yml`](./.github/workflows/cc-drift-template-watch.yml) *(new in v4.2.2)* catches **Class B** (same-binary remote-config drift Anthropic changing wire output *without* bumping the npm version, first documented in [CHANGELOG v4.2.1](./CHANGELOG.md#421---2026-05-17)) every 30 min on a self-hosted runner with a real authenticated CC. [`compat-test-self-hosted.yml`](./.github/workflows/compat-test-self-hosted.yml) *(new in v4.3.0)* runs the full compat suite against a live proxy on every PR that touches the wire-shape surface regressions fail the merge check before they ship. Walkthrough: [`docs/drift-monitor.md`](./docs/drift-monitor.md).
352
360
  - **Multi-account pool.** Drop 2+ Claude accounts in `~/.dario/accounts/` and pool mode auto-activates: every request routes to the account with the most headroom, multi-turn sessions pin to one account so the prompt cache survives, in-flight 429s fail over to a peer before your client sees an error. `dario accounts add work` / `dario accounts add personal`. → [`docs/multi-account-pool.md`](./docs/multi-account-pool.md)
353
361
  - **Behavioral stealth (`--stealth`).** Static wire fidelity covers *what* the request looks like; `--stealth` adds *when* it arrives — response-length-correlated think time and 1.2–4.2s session-start latency, the inter-arrival pattern real interactive sessions have and agent loops don't. → [`docs/wire-fidelity.md`](./docs/wire-fidelity.md)
354
362
  - **Runs any non-Claude-Code agent.** A 64-entry schema-verified `TOOL_MAP` pre-maps Cline, Roo, Kilo, Cursor, Windsurf, Continue, Copilot, OpenHands, OpenClaw, Hermes, [hands](https://github.com/askalf/hands) tool names to CC's native set. No flag, no validator errors. → [`docs/integrations/agent-compat.md`](./docs/integrations/agent-compat.md)
@@ -495,13 +503,17 @@ MIT — see [LICENSE](LICENSE) and [DISCLAIMER.md](DISCLAIMER.md).
495
503
 
496
504
  ## Also by askalf
497
505
 
506
+ Ordered by relevance to a dario reader — projects that route through dario first, Claude Code ecosystem second, supporting infrastructure last.
507
+
498
508
  | Project | What it does |
499
509
  |---|---|
500
- | [arnie](https://github.com/askalf/arnie) | Portable IT troubleshooting companion — networking, AD, package managers, log triage |
501
- | [browser-bridge](https://github.com/askalf/browser-bridge) | Stealth headless Chromium in a container, CDP on 9222 |
502
- | [claude-bridge](https://github.com/askalf/claude-bridge) | Bridge Claude Code sessions to Discord |
503
- | [deepdive](https://github.com/askalf/deepdive) | Local research agent plan search fetch synthesize, cited answers |
504
- | [git-providers](https://github.com/askalf/git-providers) | Unified GitHub + GitLab + Bitbucket Cloud clients behind one interface |
505
- | [hands](https://github.com/askalf/hands) | Cross-platform computer-use agent mouse, keyboard, screen |
506
- | [install-kit](https://github.com/askalf/install-kit) | curl-pipe-bash template for self-hosted Docker apps |
507
- | [pgflex](https://github.com/askalf/pgflex) | One Postgres API, two modes (real PG PGlite WASM) |
510
+ | [arnie](https://github.com/askalf/arnie) | Portable IT troubleshooting agent — networking, AD, package managers, log triage. Routes through dario for subscription billing. |
511
+ | [hands](https://github.com/askalf/hands) | Cross-platform computer-use agent your LLM on your mouse, keyboard, and screen. Windows + macOS + Linux. Routes through dario or any Anthropic-compat. |
512
+ | [deepdive](https://github.com/askalf/deepdive) | Local research agent. One command, cited answer. Plan → search → headless fetch → extract → synthesize. Every LLM call through your own router. |
513
+ | [claude-sync](https://github.com/askalf/claude-sync) | Sync Claude Code sessions across machines. Pack a CC session into a portable `.ccsync` file, ship it via Dropbox / iCloud / USB, unpack on the other side. |
514
+ | [claude-bridge](https://github.com/askalf/claude-bridge) | Bridge Claude Code sessions to Discord. Stay in sync with your CC instances from your phone. |
515
+ | [browser-bridge](https://github.com/askalf/browser-bridge) | Stealth headless Chromium in a container, CDP on 9222. Connect from Playwright, Puppeteer, MCP browser tools, any agent that wants a remote browser. |
516
+ | [install-kit](https://github.com/askalf/install-kit) | curl-pipe-bash template for self-hosted Docker apps — banner, prereq probes, `.env` scaffolding with crypto-rand secrets, healthcheck wait loop. |
517
+ | [pgflex](https://github.com/askalf/pgflex) | One Postgres API, two modes real PostgreSQL for production, PGlite (in-process WASM) for standalone / dev. Same SQL, drop the server when you don't need it. |
518
+ | [redisflex](https://github.com/askalf/redisflex) | One Redis API, two modes — ioredis for production, in-process Map+EventEmitter for dev. Includes a BullMQ-shaped in-memory queue. |
519
+ | [git-providers](https://github.com/askalf/git-providers) | One `GitProvider` interface for GitHub + GitLab + Bitbucket Cloud, plus a 44-entry api-key-provider taxonomy (cloud / CI / monitoring / analytics / ...). |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askalf/dario",
3
- "version": "4.3.1",
3
+ "version": "4.4.1",
4
4
  "description": "Use your Claude Pro/Max subscription in any tool — Cursor, Cline, Aider, the Agent SDK, your scripts — at subscription pricing, not per-token API bills. One local Anthropic + OpenAI-compatible endpoint.",
5
5
  "type": "module",
6
6
  "bin": {