codeam-cli 2.39.84 → 2.39.86
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/dist/index.js +33 -18
- 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.39.85] — 2026-06-23
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Isolate house agent's Claude config on self-hosted boxes
|
|
12
|
+
|
|
13
|
+
## [2.39.84] — 2026-06-22
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **cli:** Agent-agnostic credential validation in codeam link
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **cli:** Make self-hosted git credential helper + gh install OS-agnostic
|
|
22
|
+
|
|
7
23
|
## [2.39.83] — 2026-06-22
|
|
8
24
|
|
|
9
25
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -5390,7 +5390,7 @@ function readAnonId() {
|
|
|
5390
5390
|
}
|
|
5391
5391
|
function superProperties() {
|
|
5392
5392
|
return {
|
|
5393
|
-
cliVersion: true ? "2.39.
|
|
5393
|
+
cliVersion: true ? "2.39.86" : "0.0.0-dev",
|
|
5394
5394
|
nodeVersion: process.version,
|
|
5395
5395
|
platform: process.platform,
|
|
5396
5396
|
arch: process.arch,
|
|
@@ -5549,7 +5549,7 @@ var os4 = __toESM(require("os"));
|
|
|
5549
5549
|
// package.json
|
|
5550
5550
|
var package_default = {
|
|
5551
5551
|
name: "codeam-cli",
|
|
5552
|
-
version: "2.39.
|
|
5552
|
+
version: "2.39.86",
|
|
5553
5553
|
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.",
|
|
5554
5554
|
type: "commonjs",
|
|
5555
5555
|
main: "dist/index.js",
|
|
@@ -17704,7 +17704,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
17704
17704
|
if (process.env.NODE_ENV === "test") return;
|
|
17705
17705
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
17706
17706
|
if (process.env.CI) return;
|
|
17707
|
-
const current = true ? "2.39.
|
|
17707
|
+
const current = true ? "2.39.86" : null;
|
|
17708
17708
|
if (!current) return;
|
|
17709
17709
|
const cache = readCache();
|
|
17710
17710
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -17721,7 +17721,7 @@ function checkForUpdates() {
|
|
|
17721
17721
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
17722
17722
|
if (process.env.CI) return;
|
|
17723
17723
|
if (!process.stdout.isTTY) return;
|
|
17724
|
-
const current = true ? "2.39.
|
|
17724
|
+
const current = true ? "2.39.86" : null;
|
|
17725
17725
|
if (!current) return;
|
|
17726
17726
|
const cache = readCache();
|
|
17727
17727
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -18159,7 +18159,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process14.s
|
|
|
18159
18159
|
detached: false
|
|
18160
18160
|
});
|
|
18161
18161
|
function currentCliVersion() {
|
|
18162
|
-
return true ? "2.39.
|
|
18162
|
+
return true ? "2.39.86" : null;
|
|
18163
18163
|
}
|
|
18164
18164
|
function runCmd(cmd, args2, timeoutMs) {
|
|
18165
18165
|
return new Promise((resolve7) => {
|
|
@@ -18554,6 +18554,12 @@ var HostAgentSupervisor = class {
|
|
|
18554
18554
|
API_TIMEOUT_MS: "3000000",
|
|
18555
18555
|
CODEAM_AUTO_TOKEN: payload.autoPairToken
|
|
18556
18556
|
};
|
|
18557
|
+
const houseConfigDir = path46.join(os33.homedir(), ".codeam", "house-claude");
|
|
18558
|
+
try {
|
|
18559
|
+
fs40.mkdirSync(houseConfigDir, { recursive: true, mode: 448 });
|
|
18560
|
+
} catch {
|
|
18561
|
+
}
|
|
18562
|
+
childEnv.CLAUDE_CONFIG_DIR = houseConfigDir;
|
|
18557
18563
|
extraArgs = [`--agent=${agentKind || "claude"}`];
|
|
18558
18564
|
} else {
|
|
18559
18565
|
const auth = await this.resolveAgentAuth(this.identity, payload.sealedAgentAuth);
|
|
@@ -24525,6 +24531,22 @@ function failureBubble(opts) {
|
|
|
24525
24531
|
if (!opts.hadText) return TURN_FAILURE_MESSAGE;
|
|
24526
24532
|
return null;
|
|
24527
24533
|
}
|
|
24534
|
+
async function reportCredentialInvalid(opts, fetchImpl = fetch) {
|
|
24535
|
+
try {
|
|
24536
|
+
await fetchImpl(
|
|
24537
|
+
`${resolveApiBaseUrl()}/api/plugin/agents/${encodeURIComponent(opts.agent)}/credential-invalid`,
|
|
24538
|
+
{
|
|
24539
|
+
method: "POST",
|
|
24540
|
+
headers: {
|
|
24541
|
+
"Content-Type": "application/json",
|
|
24542
|
+
"X-Plugin-Auth-Token": opts.pluginAuthToken
|
|
24543
|
+
},
|
|
24544
|
+
body: JSON.stringify({ sessionId: opts.sessionId, pluginId: opts.pluginId })
|
|
24545
|
+
}
|
|
24546
|
+
);
|
|
24547
|
+
} catch {
|
|
24548
|
+
}
|
|
24549
|
+
}
|
|
24528
24550
|
async function handleGetConversation(args2) {
|
|
24529
24551
|
const { relay, commandId, jsonlHistory, acpSessionId } = args2;
|
|
24530
24552
|
try {
|
|
@@ -24613,17 +24635,7 @@ async function runAcpSession(opts) {
|
|
|
24613
24635
|
log.warn("acpRunner", `adapter died code=${code} signal=${signal}; shutting down session`);
|
|
24614
24636
|
const authFail = looksLikeAuthFailure(recentStderr.join("\n"));
|
|
24615
24637
|
if (authFail) {
|
|
24616
|
-
void
|
|
24617
|
-
`${resolveApiBaseUrl()}/api/plugin/agents/${encodeURIComponent(opts.agent)}/credential-invalid`,
|
|
24618
|
-
{
|
|
24619
|
-
method: "POST",
|
|
24620
|
-
headers: {
|
|
24621
|
-
"Content-Type": "application/json",
|
|
24622
|
-
"X-Plugin-Auth-Token": opts.pluginAuthToken
|
|
24623
|
-
},
|
|
24624
|
-
body: JSON.stringify({ sessionId: opts.sessionId, pluginId: opts.pluginId })
|
|
24625
|
-
}
|
|
24626
|
-
).catch(() => void 0);
|
|
24638
|
+
void reportCredentialInvalid(opts);
|
|
24627
24639
|
}
|
|
24628
24640
|
void streaming.closeAll().then(
|
|
24629
24641
|
() => publisher.publishOutput({
|
|
@@ -24816,6 +24828,9 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
|
|
|
24816
24828
|
history.appendAgentReply(bubble);
|
|
24817
24829
|
void history.flush();
|
|
24818
24830
|
}
|
|
24831
|
+
if (bubble === AUTH_FAILURE_MESSAGE) {
|
|
24832
|
+
void reportCredentialInvalid(opts);
|
|
24833
|
+
}
|
|
24819
24834
|
await relay.sendResult(cmd.id, "failed", { error: detail });
|
|
24820
24835
|
}
|
|
24821
24836
|
return;
|
|
@@ -28964,7 +28979,7 @@ function checkChokidar() {
|
|
|
28964
28979
|
}
|
|
28965
28980
|
async function doctor(args2 = []) {
|
|
28966
28981
|
const json = args2.includes("--json");
|
|
28967
|
-
const cliVersion = true ? "2.39.
|
|
28982
|
+
const cliVersion = true ? "2.39.86" : "0.0.0-dev";
|
|
28968
28983
|
const apiBase2 = resolveApiBaseUrl();
|
|
28969
28984
|
const diagnosticId = (0, import_node_crypto8.randomUUID)();
|
|
28970
28985
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -29163,7 +29178,7 @@ async function completion(args2) {
|
|
|
29163
29178
|
// src/commands/version.ts
|
|
29164
29179
|
var import_picocolors14 = __toESM(require("picocolors"));
|
|
29165
29180
|
function version2() {
|
|
29166
|
-
const v = true ? "2.39.
|
|
29181
|
+
const v = true ? "2.39.86" : "unknown";
|
|
29167
29182
|
console.log(`${import_picocolors14.default.bold("codeam-cli")} ${import_picocolors14.default.cyan(v)}`);
|
|
29168
29183
|
}
|
|
29169
29184
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.39.
|
|
3
|
+
"version": "2.39.86",
|
|
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",
|