codeam-cli 2.49.0 → 2.49.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/CHANGELOG.md +25 -0
- package/dist/index.js +17 -8
- package/dist/postinstall.js +33 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,31 @@ 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.49.1] — 2026-06-27
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Resolve headroom agent from running session, not just payload
|
|
12
|
+
|
|
13
|
+
## [2.49.0] — 2026-06-27
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **cli:** Parameterize setupHeadroomForSelfHosted (extras + progress + config backup)
|
|
18
|
+
- **cli:** Headroom_configure handler + configure service + postHeadroomEvent
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- **cli:** Widen sendResult to unknown (drop unsafe casts) + guard agentId + unref stopProxy
|
|
23
|
+
- **cli:** Persistent-container disable phase + validated casts + exclude test driver
|
|
24
|
+
- **cli:** Headroom stopProxy survives missing pkill + procps in int-test image
|
|
25
|
+
- **cli:** Surface driver errors + bake headroom deps into int-test image
|
|
26
|
+
- **workflow:** Reuse prebuilt headroom image in int test + apt retry (no double build)
|
|
27
|
+
|
|
28
|
+
### Tests
|
|
29
|
+
|
|
30
|
+
- **cli:** Real Docker integration test for Headroom on-demand enable/disable
|
|
31
|
+
|
|
7
32
|
## [2.48.1] — 2026-06-26
|
|
8
33
|
|
|
9
34
|
### Fixed
|
package/dist/index.js
CHANGED
|
@@ -5397,7 +5397,7 @@ function readAnonId() {
|
|
|
5397
5397
|
}
|
|
5398
5398
|
function superProperties() {
|
|
5399
5399
|
return {
|
|
5400
|
-
cliVersion: true ? "2.49.
|
|
5400
|
+
cliVersion: true ? "2.49.2" : "0.0.0-dev",
|
|
5401
5401
|
nodeVersion: process.version,
|
|
5402
5402
|
platform: process.platform,
|
|
5403
5403
|
arch: process.arch,
|
|
@@ -5578,7 +5578,7 @@ var os4 = __toESM(require("os"));
|
|
|
5578
5578
|
// package.json
|
|
5579
5579
|
var package_default = {
|
|
5580
5580
|
name: "codeam-cli",
|
|
5581
|
-
version: "2.49.
|
|
5581
|
+
version: "2.49.2",
|
|
5582
5582
|
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.",
|
|
5583
5583
|
type: "commonjs",
|
|
5584
5584
|
main: "dist/index.js",
|
|
@@ -14747,7 +14747,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
14747
14747
|
if (process.env.NODE_ENV === "test") return;
|
|
14748
14748
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
14749
14749
|
if (process.env.CI) return;
|
|
14750
|
-
const current = true ? "2.49.
|
|
14750
|
+
const current = true ? "2.49.2" : null;
|
|
14751
14751
|
if (!current) return;
|
|
14752
14752
|
const cache = readCache();
|
|
14753
14753
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -14764,7 +14764,7 @@ function checkForUpdates() {
|
|
|
14764
14764
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
14765
14765
|
if (process.env.CI) return;
|
|
14766
14766
|
if (!process.stdout.isTTY) return;
|
|
14767
|
-
const current = true ? "2.49.
|
|
14767
|
+
const current = true ? "2.49.2" : null;
|
|
14768
14768
|
if (!current) return;
|
|
14769
14769
|
const cache = readCache();
|
|
14770
14770
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -15259,7 +15259,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process14.s
|
|
|
15259
15259
|
detached: false
|
|
15260
15260
|
});
|
|
15261
15261
|
function currentCliVersion() {
|
|
15262
|
-
return true ? "2.49.
|
|
15262
|
+
return true ? "2.49.2" : null;
|
|
15263
15263
|
}
|
|
15264
15264
|
function runCmd(cmd, args2, timeoutMs) {
|
|
15265
15265
|
return new Promise((resolve7) => {
|
|
@@ -18181,7 +18181,7 @@ var headroomConfigureH = async (ctx, cmd, parsed) => {
|
|
|
18181
18181
|
return;
|
|
18182
18182
|
}
|
|
18183
18183
|
const savingsIngestUrl = parsed.savingsIngestUrl;
|
|
18184
|
-
let rawAgentId = typeof parsed.agentId === "string" ? parsed.agentId : "";
|
|
18184
|
+
let rawAgentId = ctx.agentId || (typeof parsed.agentId === "string" ? parsed.agentId : "");
|
|
18185
18185
|
if (rawAgentId === "claude_code") rawAgentId = "claude";
|
|
18186
18186
|
let configuredAgent = rawAgentId;
|
|
18187
18187
|
if (!configuredAgent) {
|
|
@@ -19418,6 +19418,9 @@ async function startInfraOnly(agentId) {
|
|
|
19418
19418
|
keepAliveCtx,
|
|
19419
19419
|
pluginId,
|
|
19420
19420
|
sessionId: session.id,
|
|
19421
|
+
// No-agent mode — there's no running agent to report. Headroom/agent
|
|
19422
|
+
// commands are filtered out by INFRA_ONLY_COMMAND_TYPES before dispatch.
|
|
19423
|
+
agentId: "",
|
|
19421
19424
|
pluginAuthToken: session.pluginAuthToken ?? void 0
|
|
19422
19425
|
};
|
|
19423
19426
|
const relay = new CommandRelayService(
|
|
@@ -26315,6 +26318,11 @@ function buildLegacyContextForACP(opts, relay, runtime) {
|
|
|
26315
26318
|
keepAliveCtx: null,
|
|
26316
26319
|
pluginId: opts.pluginId,
|
|
26317
26320
|
sessionId: opts.sessionId,
|
|
26321
|
+
// The running ACP agent (claude/codex/gemini/cursor). REQUIRED: headroom_configure
|
|
26322
|
+
// resolves the agent from ctx.agentId; without it the enable gate sees '' and
|
|
26323
|
+
// returns {supported:false} for a real Claude session (the `as unknown` cast
|
|
26324
|
+
// below previously hid this missing field from the type checker).
|
|
26325
|
+
agentId: opts.agent,
|
|
26318
26326
|
pluginAuthToken: opts.pluginAuthToken
|
|
26319
26327
|
};
|
|
26320
26328
|
}
|
|
@@ -27573,6 +27581,7 @@ async function start(requestedAgent) {
|
|
|
27573
27581
|
keepAliveCtx,
|
|
27574
27582
|
pluginId,
|
|
27575
27583
|
sessionId: session.id,
|
|
27584
|
+
agentId: session.agent,
|
|
27576
27585
|
pluginAuthToken: session.pluginAuthToken ?? void 0
|
|
27577
27586
|
};
|
|
27578
27587
|
const relay = new CommandRelayService(pluginId, async (cmd) => {
|
|
@@ -30192,7 +30201,7 @@ function checkChokidar() {
|
|
|
30192
30201
|
}
|
|
30193
30202
|
async function doctor(args2 = []) {
|
|
30194
30203
|
const json = args2.includes("--json");
|
|
30195
|
-
const cliVersion = true ? "2.49.
|
|
30204
|
+
const cliVersion = true ? "2.49.2" : "0.0.0-dev";
|
|
30196
30205
|
const apiBase2 = resolveApiBaseUrl();
|
|
30197
30206
|
const diagnosticId = (0, import_node_crypto8.randomUUID)();
|
|
30198
30207
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -30391,7 +30400,7 @@ async function completion(args2) {
|
|
|
30391
30400
|
// src/commands/version.ts
|
|
30392
30401
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
30393
30402
|
function version2() {
|
|
30394
|
-
const v = true ? "2.49.
|
|
30403
|
+
const v = true ? "2.49.2" : "unknown";
|
|
30395
30404
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
30396
30405
|
}
|
|
30397
30406
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
// src/postinstall.ts
|
|
5
|
+
var c = {
|
|
6
|
+
reset: "\x1B[0m",
|
|
7
|
+
bold: "\x1B[1m",
|
|
8
|
+
dim: "\x1B[2m",
|
|
9
|
+
green: "\x1B[32m",
|
|
10
|
+
cyan: "\x1B[36m",
|
|
11
|
+
violet: "\x1B[35m",
|
|
12
|
+
white: "\x1B[97m"
|
|
13
|
+
};
|
|
14
|
+
var lines = [
|
|
15
|
+
"",
|
|
16
|
+
` ${c.violet}${c.bold}codeam-cli${c.reset} ${c.dim}\u2014 Claude Code remote control${c.reset}`,
|
|
17
|
+
"",
|
|
18
|
+
` ${c.dim}1.${c.reset} Pair your phone:`,
|
|
19
|
+
` ${c.cyan}codeam pair${c.reset}`,
|
|
20
|
+
"",
|
|
21
|
+
` ${c.dim}2.${c.reset} Launch Claude Code with mobile control:`,
|
|
22
|
+
` ${c.cyan}codeam${c.reset}`,
|
|
23
|
+
"",
|
|
24
|
+
` ${c.dim}Other commands:${c.reset}`,
|
|
25
|
+
` ${c.white}codeam sessions${c.reset} ${c.dim}list paired devices${c.reset}`,
|
|
26
|
+
` ${c.white}codeam status${c.reset} ${c.dim}show connection info${c.reset}`,
|
|
27
|
+
` ${c.white}codeam logout${c.reset} ${c.dim}remove all sessions${c.reset}`,
|
|
28
|
+
"",
|
|
29
|
+
` ${c.dim}Requires Claude Code:${c.reset} ${c.green}npm install -g @anthropic-ai/claude-code${c.reset}`,
|
|
30
|
+
` ${c.dim}Mobile app:${c.reset} ${c.green}https://www.codeagent-mobile.com${c.reset}`,
|
|
31
|
+
""
|
|
32
|
+
];
|
|
33
|
+
process.stdout.write(lines.join("\n") + "\n");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.49.
|
|
3
|
+
"version": "2.49.2",
|
|
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",
|