codeep 2.13.2 → 2.15.0
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/README.md +35 -24
- package/dist/acp/commands.js +22 -1
- package/dist/acp/server.js +278 -251
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.js +2 -2
- package/dist/config/providers.js +35 -22
- package/dist/renderer/App.d.ts +0 -30
- package/dist/renderer/App.js +149 -659
- package/dist/renderer/agentExecution.d.ts +2 -1
- package/dist/renderer/agentExecution.js +10 -6
- package/dist/renderer/commands/helpers.d.ts +63 -0
- package/dist/renderer/commands/helpers.js +108 -0
- package/dist/renderer/commands/registry.js +5 -0
- package/dist/renderer/commands.d.ts +4 -0
- package/dist/renderer/commands.js +183 -64
- package/dist/renderer/components/ActionFormatting.d.ts +17 -0
- package/dist/renderer/components/ActionFormatting.js +67 -0
- package/dist/renderer/components/Autocomplete.d.ts +33 -0
- package/dist/renderer/components/Autocomplete.js +40 -0
- package/dist/renderer/components/Intro.d.ts +9 -0
- package/dist/renderer/components/Intro.js +5 -15
- package/dist/renderer/components/MessageFormatter.d.ts +96 -0
- package/dist/renderer/components/MessageFormatter.js +375 -0
- package/dist/renderer/components/Permission.d.ts +4 -0
- package/dist/renderer/components/Permission.js +1 -1
- package/dist/renderer/components/Status.d.ts +4 -0
- package/dist/renderer/components/Status.js +2 -3
- package/dist/renderer/components/WelcomeFormatter.d.ts +19 -0
- package/dist/renderer/components/WelcomeFormatter.js +79 -0
- package/dist/renderer/components/uiConstants.d.ts +8 -0
- package/dist/renderer/components/uiConstants.js +24 -0
- package/dist/renderer/inputParsing.d.ts +22 -0
- package/dist/renderer/inputParsing.js +28 -0
- package/dist/renderer/layout.d.ts +215 -0
- package/dist/renderer/layout.js +326 -0
- package/dist/renderer/main.d.ts +2 -1
- package/dist/renderer/main.js +45 -10
- package/dist/renderer/ollamaHint.d.ts +12 -0
- package/dist/renderer/ollamaHint.js +29 -0
- package/dist/utils/agentChat.js +28 -2
- package/dist/utils/codeepCloud.d.ts +54 -0
- package/dist/utils/codeepCloud.js +95 -0
- package/dist/utils/export.d.ts +12 -0
- package/dist/utils/export.js +3 -3
- package/dist/utils/hooks.d.ts +26 -0
- package/dist/utils/hooks.js +69 -1
- package/dist/utils/keychain.js +45 -29
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.js +1 -1
- package/dist/utils/mcpConfig.d.ts +26 -0
- package/dist/utils/mcpConfig.js +109 -4
- package/dist/utils/skillBundles.d.ts +14 -0
- package/dist/utils/skillBundles.js +3 -3
- package/dist/utils/skillBundlesCloud.d.ts +7 -0
- package/dist/utils/skillBundlesCloud.js +1 -1
- package/dist/utils/tokenTracker.d.ts +30 -3
- package/dist/utils/tokenTracker.js +71 -13
- package/dist/utils/toolParsing.d.ts +11 -0
- package/dist/utils/toolParsing.js +6 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -23,27 +23,14 @@
|
|
|
23
23
|
<a href="https://github.com/VladoIvankovic/Codeep"><img src="https://img.shields.io/github/stars/VladoIvankovic/Codeep?style=social" alt="GitHub stars"></a>
|
|
24
24
|
</p>
|
|
25
25
|
|
|
26
|
-
## Upgrading
|
|
26
|
+
## Upgrading
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
1. **MCP `clientInfo` version bumped from `1.4.0` → `2.0.0`.** If you
|
|
35
|
-
maintain a custom MCP server that allowlists Codeep by version
|
|
36
|
-
string, update your check.
|
|
37
|
-
2. **`McpServer` protocol shape** in ACP now has `command?`, `args?`,
|
|
38
|
-
`url?`, `headers?` (transport-agnostic for stdio + Streamable HTTP).
|
|
39
|
-
The old required-`command` shape is still accepted — parser handles
|
|
40
|
-
both — but new clients should emit the optional shape.
|
|
41
|
-
|
|
42
|
-
See [CHANGELOG.md](CHANGELOG.md#200--2026-05-18) for the full list of
|
|
43
|
-
additions (full MCP support, OpenRouter provider with authoritative
|
|
44
|
-
per-call cost, Claude-Code-compatible skill bundles + web marketplace,
|
|
45
|
-
custom slash commands, lifecycle hooks, checkpoints, `/cost`,
|
|
46
|
-
`/compact`, and more).
|
|
28
|
+
Running `npm install -g codeep@latest` picks up the new version — config,
|
|
29
|
+
saved profiles, project memory, MCP servers, and skill bundles all carry
|
|
30
|
+
over. Breaking changes (if any) are listed at the top of each release in
|
|
31
|
+
[CHANGELOG.md](CHANGELOG.md); the last breaking change was
|
|
32
|
+
[2.0.0](CHANGELOG.md#200--2026-05-18) (MCP `clientInfo` version bump,
|
|
33
|
+
transport-agnostic `McpServer` shape).
|
|
47
34
|
|
|
48
35
|
## Features
|
|
49
36
|
|
|
@@ -77,6 +64,7 @@ When started in a project directory, Codeep automatically:
|
|
|
77
64
|
- **AI session titles** - Sessions auto-title themselves with an LLM one-liner ("OAuth2 migration for auth module") instead of a truncated first message. This makes one small background API call per session; turn it off with the `autoSessionTitle` setting (`/settings`) if you prefer zero unsolicited calls
|
|
78
65
|
- **Search current session** - Find text in the open conversation with `/search`
|
|
79
66
|
- **Cross-session recall** - `/recall <query>` searches across **all** saved sessions, ranked by relevance + recency. Add `--resume` to load the top match, or `--summarize` for an LLM recap of what you accomplished across matches
|
|
67
|
+
- **Cross-device resume (`/cloud`)** - Sessions you run on one device (CLI, Mac app, VS Code) sync to `codeep.dev`. `/cloud` lists them and pulls the selected one back locally, so you can start a session on your desktop and continue on your laptop. Run `codeep account` once to link your devices; scoped to the current project when one is open.
|
|
80
68
|
- **Export** - Save to Markdown, JSON, or plain text
|
|
81
69
|
- `/cost` - Per-session token usage and estimated cost (per provider/model)
|
|
82
70
|
- `/compact [keepN]` - AI-summarize older messages to free up context (keeps last N, default 4)
|
|
@@ -358,10 +346,11 @@ You write safe, reversible DB migrations…
|
|
|
358
346
|
**Guaranteed review:** enable **Agent Auto-Review** in `/settings` (`agentAutoReview`) and after any run that changes files, Codeep automatically delegates to the `reviewer` and appends its findings — a review stage that always happens. Off by default.
|
|
359
347
|
|
|
360
348
|
### Project Rules
|
|
361
|
-
Define project-specific instructions that the AI always follows. Create a rules file in your project root:
|
|
349
|
+
Define project-specific instructions that the AI always follows. Create a rules file in your project root (first non-empty file wins):
|
|
362
350
|
|
|
363
351
|
- **`.codeep/rules.md`** - Primary location (inside `.codeep/` folder)
|
|
364
352
|
- **`CODEEP.md`** - Alternative location (project root, similar to `CLAUDE.md` or `.cursorrules`)
|
|
353
|
+
- **`AGENTS.md`** - Cross-tool standard (works with Claude Code, Cursor, Kilo Code — no duplication needed)
|
|
365
354
|
|
|
366
355
|
The rules file content is automatically included in every system prompt — both chat and agent mode. Use it to define:
|
|
367
356
|
|
|
@@ -469,11 +458,12 @@ Full spec coverage in 2.0.0 — stdio and Streamable HTTP transports,
|
|
|
469
458
|
tools / resources / prompts / sampling, capability negotiation with
|
|
470
459
|
`roots`, auto-restart on crash, mid-run catalog refresh.
|
|
471
460
|
|
|
472
|
-
**
|
|
461
|
+
**Four ways to wire MCP servers** (all merge; project > `.mcp.json` > global > ACP wins last):
|
|
473
462
|
|
|
474
463
|
1. **Project config** — `.codeep/mcp_servers.json` (committed with the repo)
|
|
475
|
-
2.
|
|
476
|
-
3. **
|
|
464
|
+
2. **`.mcp.json`** — cross-tool standard at the workspace root (works with Claude Code, Cursor, Kilo Code — point everyone at the same file)
|
|
465
|
+
3. **Global config** — `~/.codeep/mcp_servers.json` (per machine)
|
|
466
|
+
4. **ACP client config** — Zed / Claude Desktop pass `mcpServers` on `session/new`
|
|
477
467
|
|
|
478
468
|
Two transports per entry, mutually exclusive:
|
|
479
469
|
|
|
@@ -573,6 +563,26 @@ cloned repo's hooks are **not** run until you approve the workspace. Run
|
|
|
573
563
|
own projects just need a one-time `/hooks trust`. Global `~/.codeep/hooks/` are
|
|
574
564
|
never run for the same reason.
|
|
575
565
|
|
|
566
|
+
#### Windows notes
|
|
567
|
+
|
|
568
|
+
Lifecycle hooks are POSIX shell (`.sh`) scripts:
|
|
569
|
+
|
|
570
|
+
- **macOS / Linux** — run directly (via the script's shebang). No setup.
|
|
571
|
+
- **Windows** — a `.sh` needs a POSIX `sh`. Install [Git for Windows](https://git-scm.com/download/win)
|
|
572
|
+
(it ships `sh.exe`) and Codeep runs `.sh` hooks through it automatically — no
|
|
573
|
+
PATH tweaking needed if Git is installed to its default location. **Without a
|
|
574
|
+
POSIX shell**, `/hooks` and the welcome banner report an explicit
|
|
575
|
+
*"cannot run on this system"* state and hooks are skipped — they never block a
|
|
576
|
+
tool call or commit, and the rest of Codeep is unaffected. (`.ps1`/`.cmd` hooks
|
|
577
|
+
are not executed; keep hook logic in `.sh`.)
|
|
578
|
+
|
|
579
|
+
Everything else is **Node-native and shell-independent on Windows**: project
|
|
580
|
+
rules (`AGENTS.md` / `CODEEP.md` / `.codeep/rules.md`), custom slash commands
|
|
581
|
+
(`.codeep/commands/*.md`), and skill bundles (`.codeep/skills/`) are Markdown;
|
|
582
|
+
MCP config (`.mcp.json` / `.codeep/mcp_servers.json`) is JSON. MCP servers spawn
|
|
583
|
+
via their configured `command` — `npx` resolves through `npx.cmd`, and a custom
|
|
584
|
+
`command` like `python` just needs to be on your PATH.
|
|
585
|
+
|
|
576
586
|
### Skill Bundles (new in 2.0)
|
|
577
587
|
Beyond the built-in skills and custom slash commands, Codeep now supports
|
|
578
588
|
**structured skill bundles** — directory-based capability packs the agent
|
|
@@ -1024,6 +1034,7 @@ After installation, `codeep` is available globally in your terminal. Simply run
|
|
|
1024
1034
|
|---------|-------------|
|
|
1025
1035
|
| `/sessions` | List and load saved sessions |
|
|
1026
1036
|
| `/sessions delete <name>` | Delete a specific session |
|
|
1037
|
+
| `/cloud` | List and resume sessions synced from other devices |
|
|
1027
1038
|
| `/rename <name>` | Rename current session |
|
|
1028
1039
|
| `/search <term>` | Search through chat history |
|
|
1029
1040
|
| `/export` | Export chat to MD/JSON/TXT format |
|
package/dist/acp/commands.js
CHANGED
|
@@ -1023,8 +1023,29 @@ Anything else the agent should know — edge cases, gotchas, things to double-ch
|
|
|
1023
1023
|
}
|
|
1024
1024
|
case 'mcp': {
|
|
1025
1025
|
const sub = args[0]?.toLowerCase();
|
|
1026
|
-
const { addProjectMcpServer, removeProjectMcpServer, loadMcpServerConfig } = await import('../utils/mcpConfig.js');
|
|
1026
|
+
const { addProjectMcpServer, removeProjectMcpServer, loadMcpServerConfig, loadMcpServerConfigSplit, isWorkspaceMcpTrusted, trustWorkspaceMcp, untrustWorkspaceMcp } = await import('../utils/mcpConfig.js');
|
|
1027
1027
|
const { registerSessionServers } = await import('../utils/mcpRegistry.js');
|
|
1028
|
+
if (sub === 'trust') {
|
|
1029
|
+
if (isWorkspaceMcpTrusted(session.workspaceRoot)) {
|
|
1030
|
+
return { handled: true, response: '_Workspace MCP servers are already trusted here._' };
|
|
1031
|
+
}
|
|
1032
|
+
trustWorkspaceMcp(session.workspaceRoot);
|
|
1033
|
+
const { workspace } = loadMcpServerConfigSplit(session.workspaceRoot);
|
|
1034
|
+
if (workspace.length === 0) {
|
|
1035
|
+
return { handled: true, response: '_Workspace trusted — no workspace MCP servers defined yet._' };
|
|
1036
|
+
}
|
|
1037
|
+
onChunk(`_Workspace trusted. Spawning ${workspace.length} MCP server(s)…_\n\n`);
|
|
1038
|
+
const merged = loadMcpServerConfig(session.workspaceRoot);
|
|
1039
|
+
const { registered, errors } = await registerSessionServers(session.sessionId, merged, { workspaceRoot: session.workspaceRoot });
|
|
1040
|
+
const lines = [`Trusted workspace MCP servers (${registered.length} tool(s) available).`];
|
|
1041
|
+
for (const e of errors)
|
|
1042
|
+
lines.push(`- \`${e.server}\` failed: ${e.error}`);
|
|
1043
|
+
return { handled: true, response: lines.join('\n') };
|
|
1044
|
+
}
|
|
1045
|
+
if (sub === 'untrust') {
|
|
1046
|
+
untrustWorkspaceMcp(session.workspaceRoot);
|
|
1047
|
+
return { handled: true, response: '_Workspace MCP trust revoked — workspace servers won\'t spawn for new sessions._' };
|
|
1048
|
+
}
|
|
1028
1049
|
if (sub === 'add') {
|
|
1029
1050
|
// /mcp add <name> <command> [args...]
|
|
1030
1051
|
const name = args[1];
|