codeden 0.7.0 → 0.7.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 (42) hide show
  1. package/README.md +7 -6
  2. package/dist/cli.js +1 -1
  3. package/dist/drizzle/20261113204236_rate_limit_percent_at/migration.sql +1 -0
  4. package/dist/drizzle/20261113204236_rate_limit_percent_at/snapshot.json +3795 -0
  5. package/dist/drizzle/20261113232208_project_agent_ci_env/migration.sql +1 -0
  6. package/dist/drizzle/20261113232208_project_agent_ci_env/snapshot.json +3805 -0
  7. package/dist/{main-BITVD_Bx.js → main-CQ8GZN1a.js} +4190 -8716
  8. package/dist/main-CQ8GZN1a.js.map +1 -0
  9. package/dist/{main-NN0iK2tB.js → main-CmfpUktR.js} +2 -2
  10. package/dist/{main-NN0iK2tB.js.map → main-CmfpUktR.js.map} +1 -1
  11. package/dist/{mediaType-N0hKQqG9.js → mediaType-BO241HQM.js} +2 -2
  12. package/dist/{mediaType-N0hKQqG9.js.map → mediaType-BO241HQM.js.map} +1 -1
  13. package/dist/runner-CuMDOUsF.js +12437 -0
  14. package/dist/runner-CuMDOUsF.js.map +1 -0
  15. package/dist/runner.js +1 -1
  16. package/dist/{server-test-BwyCFssm.js → server-test-DMfJ06eC.js} +4 -4
  17. package/dist/{server-test-BwyCFssm.js.map → server-test-DMfJ06eC.js.map} +1 -1
  18. package/dist/tree-BCLzc25P.js +39282 -0
  19. package/dist/tree-BCLzc25P.js.map +1 -0
  20. package/dist/web/assets/{core-EsMgAasL.js → core-CuVRWotY.js} +1 -1
  21. package/dist/web/assets/engine-oniguruma-BFyTGssM.js +1 -0
  22. package/dist/web/assets/{highlighted-body-JLMTFACH-Co1oXN1b.js → highlighted-body-JLMTFACH-B8aDq2rz.js} +1 -1
  23. package/dist/web/assets/{highlights-DUjJZrPQ.js → highlights-xc5aCl5X.js} +1 -1
  24. package/dist/web/assets/index-CJ9zzuOJ.js +943 -0
  25. package/dist/web/assets/index-DKQTOvuB.css +1 -0
  26. package/dist/web/assets/langs-D0QaNUlD.js +1 -0
  27. package/dist/web/assets/mermaid-WFAXDIZX-B5pkkoxg.js +1 -0
  28. package/dist/web/assets/{shiki-DP8JfDZC.js → shiki-4WIZJuXB.js} +2 -2
  29. package/dist/web/assets/{stream-tokenizer-IR1cpBIQ.js → stream-tokenizer-CWKaBp-T.js} +1 -1
  30. package/dist/web/assets/{themes-D2aixyve.js → themes-CCzWeLAX.js} +2 -2
  31. package/dist/web/index.html +2 -2
  32. package/package.json +1 -1
  33. package/dist/main-BITVD_Bx.js.map +0 -1
  34. package/dist/runner-CQYh087M.js +0 -26062
  35. package/dist/runner-CQYh087M.js.map +0 -1
  36. package/dist/tree-Bjv-rXir.js +0 -13917
  37. package/dist/tree-Bjv-rXir.js.map +0 -1
  38. package/dist/web/assets/engine-oniguruma-C2eJcn5h.js +0 -1
  39. package/dist/web/assets/index-29XyPQXD.css +0 -1
  40. package/dist/web/assets/index-DK4GsIYY.js +0 -943
  41. package/dist/web/assets/langs-BduZAjBk.js +0 -1
  42. package/dist/web/assets/mermaid-WFAXDIZX-D00b7K53.js +0 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # CodeDen
4
4
 
5
- **A local-first harness for coding agents.** Run Claude Code, Codex and OpenCode side by side in a calm, focused workspace, and when you're ready, let a small software factory work through your backlog while every step stays visible in GitHub.
5
+ **A local-first harness for coding agents.** Run Claude Code, Codex, OpenCode, Cursor and Gemini CLI side by side in a calm, focused workspace, and when you're ready, let a small software factory work through your backlog while every step stays visible in GitHub.
6
6
 
7
7
  [![Website](https://img.shields.io/badge/website-codeden.app-e8a33d)](https://www.codeden.app)
8
8
  [![npm](https://img.shields.io/npm/v/codeden?color=e8a33d&label=npm)](https://www.npmjs.com/package/codeden)
@@ -18,7 +18,7 @@
18
18
  npx codeden
19
19
  ```
20
20
 
21
- That's the whole install. CodeDen starts a local server, opens your browser on an already signed-in URL, and reuses the Claude Code, Codex, OpenCode, GitHub and git setup you already have. No accounts, no license keys, no hosted backend, no telemetry.
21
+ That's the whole install. CodeDen starts a local server, opens your browser on an already signed-in URL, and reuses the Claude Code, Codex, OpenCode, Cursor, Gemini CLI, GitHub and git setup you already have. No accounts, no license keys, no hosted backend, no telemetry.
22
22
 
23
23
  Prefer an app? **[Download the desktop app](https://github.com/leonvanzyl/codeden/releases/latest)** for Windows, macOS or Linux: the same CodeDen in its own window, with a tray icon, notifications and automatic updates, and no Node.js needed. See [The desktop app](https://github.com/leonvanzyl/codeden/blob/main/docs/desktop.md).
24
24
 
@@ -45,7 +45,7 @@ Prefer an app? **[Download the desktop app](https://github.com/leonvanzyl/codede
45
45
  |---|---|
46
46
  | **Node.js 24+** | `node --version` |
47
47
  | **git** | with `user.name` and `user.email` set |
48
- | **An agent CLI, signed in** | [Claude Code](https://docs.claude.com/en/docs/claude-code) (`claude`), [Codex CLI](https://developers.openai.com/codex/cli) (`codex`) and/or [OpenCode](https://opencode.ai) 2.2+ (`opencode`). At least one is required |
48
+ | **An agent CLI, signed in** | [Claude Code](https://docs.claude.com/en/docs/claude-code) (`claude`), [Codex CLI](https://developers.openai.com/codex/cli) (`codex`), [OpenCode](https://opencode.ai) 2.2+ (`opencode`), the [Cursor CLI](https://cursor.com/docs/cli/overview) (`agent`) and/or [Gemini CLI](https://geminicli.com) 0.68+ (`gemini`). At least one is required |
49
49
  | **GitHub CLI** *(optional)* | `gh auth login` unlocks issues, pull requests, evidence and the factory. Local-only folders work without it |
50
50
  | **Edge or Chrome** *(optional)* | for the browser panel and the agents' browser tools |
51
51
 
@@ -57,7 +57,7 @@ npx codeden # or: npm i -g codeden && codeden
57
57
 
58
58
  Or install the **desktop app** from the [latest release](https://github.com/leonvanzyl/codeden/releases/latest) (`CodeDen-Setup-<version>.exe` on Windows, a `.dmg` on macOS, an AppImage or `.deb` on Linux). It needs no Node.js, uses the same data as `npx codeden` (`~/.codeden`), lives in the tray and updates itself. Builds without a publisher signature show a warning the first time you open them: on Windows choose **More info › Run anyway**; on macOS open CodeDen once, then choose **Open Anyway** under **System Settings › Privacy & Security**. If macOS says the app is "damaged", see [Unsigned builds](https://github.com/leonvanzyl/codeden/blob/main/docs/desktop.md#unsigned-builds).
59
59
 
60
- 1. The **setup checklist** detects Claude Code, Codex, OpenCode, GitHub, your git identity and a browser, and only asks about what's missing. Each failed check has one fix: an install command, or a **Sign in** button that runs the tool's own login in an embedded terminal.
60
+ 1. The **setup checklist** detects Claude Code, Codex, OpenCode, Cursor, Gemini CLI, GitHub, your git identity and a browser, and only asks about what's missing. Each failed check has one fix: an install command, or a **Sign in** button that runs the tool's own login in an embedded terminal.
61
61
  2. **Add a project:** pick a local folder (a server-side folder picker) or paste a GitHub URL to clone.
62
62
  3. **Start a session.** The agent works in its own git worktree and branch, so your checkout is never touched.
63
63
 
@@ -108,6 +108,7 @@ Everything an agent touches, next to the chat:
108
108
  - **Diffs and checkpoints.** Every turn is snapshotted into a hidden git ref, so you get exact per-turn and whole-session diffs and can restore files to any earlier turn. Commit and push from the git bar.
109
109
  - **Diff comments.** Comment on the agent's changes line by line, then send them all back as one message. [Comment on lines](https://github.com/leonvanzyl/codeden/blob/main/docs/workbench.md#comment-on-lines).
110
110
  - **Fork a session**, or fork from an earlier turn, to try another approach with the same conversation and code while the original carries on. [Fork a session](https://github.com/leonvanzyl/codeden/blob/main/docs/workbench.md#fork-a-session).
111
+ - **Hand a session off** to another provider (or a fresh conversation) when one hits its limit or you want a second opinion: the new session gets the same code and a brief of the work so far. [Hand a session off](https://github.com/leonvanzyl/codeden/blob/main/docs/workbench.md#hand-a-session-off).
111
112
  - **Plan mode** (Claude Code). The agent explores and proposes a plan, and only starts changing code once you approve it. [Plan mode](https://github.com/leonvanzyl/codeden/blob/main/docs/security.md#plan-mode).
112
113
  - **Files.** A file tree and a syntax-highlighted viewer for the session's worktree.
113
114
  - **Terminal.** Real PTY terminals owned by the runner, so they survive server restarts.
@@ -165,7 +166,7 @@ When an agent finishes, CodeDen suggests two to four next prompts as one-click c
165
166
  ```
166
167
 
167
168
  - **Two processes.** The **server** owns the database, orchestration, the inbox, automations and GitHub sync, and serves the UI. The **runner** hosts the agent processes, terminals, the browser and git. If the server restarts (an update, a crash), running agents keep going; the runner journals their events until the server is back.
168
- - **Real SDKs and protocols.** Claude Code runs through the Claude Agent SDK using your installed `claude` binary; Codex runs through `codex app-server` over JSON-RPC; OpenCode runs as a private `opencode serve` per session, over its HTTP API and event stream. No scraped terminal output.
169
+ - **Real SDKs and protocols.** Claude Code runs through the Claude Agent SDK using your installed `claude` binary; Codex runs through `codex app-server` over JSON-RPC; OpenCode runs as a private `opencode serve` per session, over its HTTP API and event stream; Cursor and Gemini CLI run through their Agent Client Protocol servers (`agent acp`, `gemini --acp`). No scraped terminal output.
169
170
  - **Everything is an event.** Agent activity is an append-only event log in SQLite, so every action can be seen, replayed and traced to an issue, branch or PR.
170
171
  - **Agents reach CodeDen through MCP.** Each session gets a role-scoped token for CodeDen's internal MCP server (`report_progress`, `ask_user`, `create_pull_request`, `attach_evidence`, the browser tools, `generate_image`, ...). Tools outside a role are never listed.
171
172
 
@@ -268,7 +269,7 @@ CodeDen checks npm for a new version when it starts and every 6 hours (only the
268
269
  ## FAQ
269
270
 
270
271
  **Do I need API keys?**
271
- No. CodeDen runs your installed `claude`, `codex` and `opencode` CLIs, which use their own logins, including claude.ai and ChatGPT subscriptions. CodeDen never implements a login of its own and never asks for a credential it can already use. API keys are an optional extra for Gemini or OpenAI image generation and cloud voice. Check your provider's terms for how your plan may be used.
272
+ No. CodeDen runs your installed `claude`, `codex`, `opencode`, `agent` (Cursor) and `gemini` CLIs, which use their own logins, including claude.ai, ChatGPT, Cursor and Google subscriptions. CodeDen never implements a login of its own and never asks for a credential it can already use. API keys are an optional extra for Gemini or OpenAI image generation and cloud voice. Check your provider's terms for how your plan may be used.
272
273
 
273
274
  **Where does my data go?**
274
275
  It stays on your machine, in `~/.codeden/`. CodeDen has no account system and no hosted backend. The only network traffic is what you set up: your agents talking to their providers, GitHub (through your `gh` login), and the optional image and voice engines you enable.
package/dist/cli.js CHANGED
@@ -242,7 +242,7 @@ async function run() {
242
242
  console.log(selfVersion);
243
243
  process.exit(0);
244
244
  }
245
- await import("./main-BITVD_Bx.js");
245
+ await import("./main-CQ8GZN1a.js");
246
246
  }
247
247
  /** Settles once this copy's CLI has loaded (an older launcher that switched here awaits it). */
248
248
  const started = run();
@@ -0,0 +1 @@
1
+ ALTER TABLE `rate_limit_windows` ADD `used_percent_at` text;