codeam-cli 2.23.36 → 2.24.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/CHANGELOG.md +16 -0
- package/README.md +4 -0
- package/dist/index.js +14 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,22 @@ All notable changes to `codeam-cli` are documented here.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [2.23.37] — 2026-05-31
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Drop ignored paths in file-watcher + turn aggregator
|
|
12
|
+
|
|
13
|
+
## [2.23.36] — 2026-05-31
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **cli:** Move bracketed-paste into Claude strategy + agent-leak hook
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **cli:** Suppress bogus terminal-turn from Claude's ghost-text
|
|
22
|
+
|
|
7
23
|
## [2.23.35] — 2026-05-31
|
|
8
24
|
|
|
9
25
|
### Changed
|
package/README.md
CHANGED
|
@@ -49,14 +49,18 @@ That's it. Open the [CodeAgent Mobile app](https://codeagent-mobile.com), enter
|
|
|
49
49
|
| `codeam <agent>` | Start a specific agent — `codeam claude`, `codeam codex`, … |
|
|
50
50
|
| `codeam pair` | Pair a new mobile device (6-character code or QR, interactive agent picker) |
|
|
51
51
|
| `codeam pair --agent <id>` | Pair non-interactively for a specific agent (`claude`, `codex`, …) — useful in scripts |
|
|
52
|
+
| `codeam pair-auto` | redeem a one-shot auto-pair token from `--token`, `--token-file`, or `CODEAM_AUTO_TOKEN` |
|
|
53
|
+
| `codeam link <agent>` | capture local credentials for `<agent>` and store them for cloud workspace reuse |
|
|
52
54
|
| `codeam sessions` | List all paired devices |
|
|
53
55
|
| `codeam sessions switch` | Choose which paired session the next `codeam` invocation will use |
|
|
54
56
|
| `codeam sessions delete <session-id>` | Forget a specific paired session (leaves the others intact) |
|
|
55
57
|
| `codeam status` | Show connection status |
|
|
58
|
+
| `codeam doctor` | run environment, install, and pairing diagnostics (`--json` for machine-readable output) |
|
|
56
59
|
| `codeam logout` | Remove all paired sessions |
|
|
57
60
|
| `codeam deploy` | Provision a cloud workspace (GitHub Codespaces) and pair it to your phone |
|
|
58
61
|
| `codeam deploy ls` (alias `list`) | List the cloud workspaces you've deployed (and which still have a session running) |
|
|
59
62
|
| `codeam deploy stop` (alias `remove`) | Pick a deployed workspace and stop its codeam session (and optionally the workspace itself) |
|
|
63
|
+
| `codeam completion <shell>` | print shell completions for `<shell>` (`bash`, `zsh`, or `fish`) |
|
|
60
64
|
| `codeam --version`, `-v` | Print the installed CLI version |
|
|
61
65
|
| `codeam --help`, `-h` | Show usage and the full command list |
|
|
62
66
|
|
package/dist/index.js
CHANGED
|
@@ -441,7 +441,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
|
|
|
441
441
|
// package.json
|
|
442
442
|
var package_default = {
|
|
443
443
|
name: "codeam-cli",
|
|
444
|
-
version: "2.
|
|
444
|
+
version: "2.24.0",
|
|
445
445
|
description: "Workflow-continuity bridge for AI coding agents. Wrap Claude Code or Codex in a PTY and supervise, approve, and redirect the session from any device \u2014 async. The terminal companion for CodeAgent Mobile.",
|
|
446
446
|
type: "commonjs",
|
|
447
447
|
main: "dist/index.js",
|
|
@@ -5774,7 +5774,7 @@ function readAnonId() {
|
|
|
5774
5774
|
}
|
|
5775
5775
|
function superProperties() {
|
|
5776
5776
|
return {
|
|
5777
|
-
cliVersion: true ? "2.
|
|
5777
|
+
cliVersion: true ? "2.24.0" : "0.0.0-dev",
|
|
5778
5778
|
nodeVersion: process.version,
|
|
5779
5779
|
platform: process.platform,
|
|
5780
5780
|
arch: process.arch,
|
|
@@ -12840,6 +12840,13 @@ function detectFileStatus(rawLines) {
|
|
|
12840
12840
|
return "modified";
|
|
12841
12841
|
}
|
|
12842
12842
|
|
|
12843
|
+
// src/services/file-watcher/ignored-paths.ts
|
|
12844
|
+
var IGNORED_PATH_PATTERN = /(^|[\\/])(?:\.git|\.next|\.expo|\.turbo|\.cache|\.parcel-cache|\.vercel|\.idea|\.vscode|node_modules|dist|build|out|coverage|target|__pycache__|\.gradle|Pods|DerivedData|\.dart_tool|venv|\.venv|\.tox|\.mypy_cache|\.pytest_cache|\.DS_Store|Thumbs\.db)([\\/]|$)/i;
|
|
12845
|
+
function isIgnoredFilePath(filePath) {
|
|
12846
|
+
if (!filePath || filePath.length === 0) return true;
|
|
12847
|
+
return IGNORED_PATH_PATTERN.test(filePath);
|
|
12848
|
+
}
|
|
12849
|
+
|
|
12843
12850
|
// src/services/file-watcher/transport.ts
|
|
12844
12851
|
var http5 = __toESM(require("http"));
|
|
12845
12852
|
var https5 = __toESM(require("https"));
|
|
@@ -13121,6 +13128,7 @@ var FileWatcherService = class {
|
|
|
13121
13128
|
*/
|
|
13122
13129
|
schedule(absPath, changeType) {
|
|
13123
13130
|
if (this.stopped) return;
|
|
13131
|
+
if (isIgnoredFilePath(absPath)) return;
|
|
13124
13132
|
const existing = this.pending.get(absPath);
|
|
13125
13133
|
if (existing) clearTimeout(existing.timer);
|
|
13126
13134
|
const timer = setTimeout(() => {
|
|
@@ -13516,6 +13524,7 @@ async function collectRepoChangeset(opts) {
|
|
|
13516
13524
|
const numstat = parseNumstat(numstatRaw ?? "");
|
|
13517
13525
|
const entries = [];
|
|
13518
13526
|
for (const row of parseStatus(status2)) {
|
|
13527
|
+
if (isIgnoredFilePath(row.filePath)) continue;
|
|
13519
13528
|
const stats = numstat.get(row.filePath) ?? { added: 0, removed: 0 };
|
|
13520
13529
|
entries.push({
|
|
13521
13530
|
filePath: row.filePath,
|
|
@@ -19244,7 +19253,7 @@ function checkChokidar() {
|
|
|
19244
19253
|
}
|
|
19245
19254
|
async function doctor(args2 = []) {
|
|
19246
19255
|
const json = args2.includes("--json");
|
|
19247
|
-
const cliVersion = true ? "2.
|
|
19256
|
+
const cliVersion = true ? "2.24.0" : "0.0.0-dev";
|
|
19248
19257
|
const apiBase = resolveApiBaseUrl();
|
|
19249
19258
|
const diagnosticId = (0, import_node_crypto6.randomUUID)();
|
|
19250
19259
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -19443,7 +19452,7 @@ async function completion(args2) {
|
|
|
19443
19452
|
// src/commands/version.ts
|
|
19444
19453
|
var import_picocolors13 = __toESM(require("picocolors"));
|
|
19445
19454
|
function version2() {
|
|
19446
|
-
const v = true ? "2.
|
|
19455
|
+
const v = true ? "2.24.0" : "unknown";
|
|
19447
19456
|
console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
|
|
19448
19457
|
}
|
|
19449
19458
|
|
|
@@ -19671,7 +19680,7 @@ function checkForUpdates() {
|
|
|
19671
19680
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
19672
19681
|
if (process.env.CI) return;
|
|
19673
19682
|
if (!process.stdout.isTTY) return;
|
|
19674
|
-
const current = true ? "2.
|
|
19683
|
+
const current = true ? "2.24.0" : null;
|
|
19675
19684
|
if (!current) return;
|
|
19676
19685
|
const cache = readCache();
|
|
19677
19686
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.24.0",
|
|
4
4
|
"description": "Workflow-continuity bridge for AI coding agents. Wrap Claude Code or Codex in a PTY and supervise, approve, and redirect the session from any device — async. The terminal companion for CodeAgent Mobile.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/index.js",
|