codeam-cli 2.75.0 → 2.75.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.
- package/CHANGELOG.md +6 -0
- package/dist/index.js +23 -12
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ 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.75.0] — 2026-09-12
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **shared:** Managed provider ids in @codeam/shared; CLI runs them on the house rail (#751)
|
|
12
|
+
|
|
7
13
|
## [2.74.14] — 2026-09-11
|
|
8
14
|
|
|
9
15
|
### Fixed
|
package/dist/index.js
CHANGED
|
@@ -10237,7 +10237,7 @@ function readAnonId() {
|
|
|
10237
10237
|
}
|
|
10238
10238
|
function superProperties() {
|
|
10239
10239
|
return {
|
|
10240
|
-
cliVersion: true ? "2.75.
|
|
10240
|
+
cliVersion: true ? "2.75.1" : "0.0.0-dev",
|
|
10241
10241
|
nodeVersion: process.version,
|
|
10242
10242
|
platform: process.platform,
|
|
10243
10243
|
arch: process.arch,
|
|
@@ -10479,7 +10479,7 @@ var http = __toESM(require("http"));
|
|
|
10479
10479
|
// package.json
|
|
10480
10480
|
var package_default = {
|
|
10481
10481
|
name: "codeam-cli",
|
|
10482
|
-
version: "2.75.
|
|
10482
|
+
version: "2.75.1",
|
|
10483
10483
|
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.",
|
|
10484
10484
|
type: "commonjs",
|
|
10485
10485
|
main: "dist/index.js",
|
|
@@ -12170,7 +12170,7 @@ var CommandRelayService = class _CommandRelayService {
|
|
|
12170
12170
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
12171
12171
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
12172
12172
|
// pair/reconnect). Older backends ignore the extra field.
|
|
12173
|
-
..."2.75.
|
|
12173
|
+
..."2.75.1" ? { ideVersion: "2.75.1" } : {}
|
|
12174
12174
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
12175
12175
|
}
|
|
12176
12176
|
/**
|
|
@@ -24501,7 +24501,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
24501
24501
|
if (process.env.NODE_ENV === "test") return;
|
|
24502
24502
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
24503
24503
|
if (process.env.CI) return;
|
|
24504
|
-
const current2 = true ? "2.75.
|
|
24504
|
+
const current2 = true ? "2.75.1" : null;
|
|
24505
24505
|
if (!current2) return;
|
|
24506
24506
|
const cache = readCache();
|
|
24507
24507
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -24518,7 +24518,7 @@ function checkForUpdates() {
|
|
|
24518
24518
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
24519
24519
|
if (process.env.CI) return;
|
|
24520
24520
|
if (!process.stdout.isTTY) return;
|
|
24521
|
-
const current2 = true ? "2.75.
|
|
24521
|
+
const current2 = true ? "2.75.1" : null;
|
|
24522
24522
|
if (!current2) return;
|
|
24523
24523
|
const cache = readCache();
|
|
24524
24524
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -24541,7 +24541,7 @@ var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
|
24541
24541
|
var SELF_UPDATE_LS_TIMEOUT_MS = 15e3;
|
|
24542
24542
|
var SUDO_PREFLIGHT_TIMEOUT_MS = 5e3;
|
|
24543
24543
|
function currentCliVersion() {
|
|
24544
|
-
return true ? "2.75.
|
|
24544
|
+
return true ? "2.75.1" : null;
|
|
24545
24545
|
}
|
|
24546
24546
|
async function installedVersion(deps) {
|
|
24547
24547
|
const ls = await deps.run(
|
|
@@ -43208,6 +43208,15 @@ async function getConversationH(ctx) {
|
|
|
43208
43208
|
}
|
|
43209
43209
|
async function listModelsH(ctx) {
|
|
43210
43210
|
const { cmd, relay, client: client3 } = ctx;
|
|
43211
|
+
const wireId = ctx.currentHouseWireId?.();
|
|
43212
|
+
if (ctx.currentIsHouse?.() && isManagedProviderId(wireId) && wireId !== "managed-claude") {
|
|
43213
|
+
const pinned = process.env.ANTHROPIC_MODEL?.trim() || client3.getCurrentModelId() || wireId;
|
|
43214
|
+
await relay.sendResult(cmd.id, "completed", {
|
|
43215
|
+
models: [{ id: pinned, label: MANAGED_PROVIDER_DISPLAY_NAMES[wireId] }],
|
|
43216
|
+
currentModelId: pinned
|
|
43217
|
+
});
|
|
43218
|
+
return;
|
|
43219
|
+
}
|
|
43211
43220
|
await relay.sendResult(cmd.id, "completed", {
|
|
43212
43221
|
models: client3.getAvailableModels(),
|
|
43213
43222
|
currentModelId: client3.getCurrentModelId()
|
|
@@ -44360,6 +44369,8 @@ async function runAcpSession(opts) {
|
|
|
44360
44369
|
};
|
|
44361
44370
|
let client3 = new AcpClient(clientOptions);
|
|
44362
44371
|
let _budgetReachedPosted = false;
|
|
44372
|
+
const initialWireId = houseRailWireId(process.env);
|
|
44373
|
+
const initialManagedId = isHouseProxyEnv(process.env) && isManagedProviderId(initialWireId) ? initialWireId : null;
|
|
44363
44374
|
const makeBudgetRecovery = () => createBudgetRecovery({
|
|
44364
44375
|
publishText: (text) => publisher.publishOutput({ type: "text", content: text, done: true }),
|
|
44365
44376
|
publishSelectPrompt: (question, options) => publisher.publishOutput({
|
|
@@ -44376,7 +44387,7 @@ async function runAcpSession(opts) {
|
|
|
44376
44387
|
appendAgentReply: (text) => history.appendAgentReply(text),
|
|
44377
44388
|
flushHistory: () => void history.flush(),
|
|
44378
44389
|
relaunchProxyWithoutBudget,
|
|
44379
|
-
agentId: opts.agent,
|
|
44390
|
+
agentId: initialManagedId ?? opts.agent,
|
|
44380
44391
|
log: (msg) => log.info("acpRunner", msg)
|
|
44381
44392
|
});
|
|
44382
44393
|
let budgetRecovery = makeBudgetRecovery();
|
|
@@ -44424,7 +44435,7 @@ async function runAcpSession(opts) {
|
|
|
44424
44435
|
showRelayNotice();
|
|
44425
44436
|
void publisher.publishOutput({
|
|
44426
44437
|
type: "agent_banner",
|
|
44427
|
-
agentId: opts.agent,
|
|
44438
|
+
agentId: initialManagedId ?? opts.agent,
|
|
44428
44439
|
// "Welcome back!" ONLY when we actually resumed a prior conversation.
|
|
44429
44440
|
// A fresh pairing is somebody's FIRST turn — greeting them with "back"
|
|
44430
44441
|
// is plainly wrong and was the top confusion in new-user recordings.
|
|
@@ -44433,7 +44444,7 @@ async function runAcpSession(opts) {
|
|
|
44433
44444
|
// (codex-acp returns `currentModelId` on newSession; claude /
|
|
44434
44445
|
// gemini adapters omit it). Falls back to `<display name>`
|
|
44435
44446
|
// alone so the card never renders with a dangling separator.
|
|
44436
|
-
subtitle: buildBannerSubtitle(opts.agent, acpSessionId, handshakeModel, handshakeTier),
|
|
44447
|
+
subtitle: initialManagedId ? `${MANAGED_PROVIDER_DISPLAY_NAMES[initialManagedId]} \xB7 ${MANAGED_AGENT_SUBTITLE}` : buildBannerSubtitle(opts.agent, acpSessionId, handshakeModel, handshakeTier),
|
|
44437
44448
|
// A human location, NOT the raw cwd. On a self-hosted box the cwd is
|
|
44438
44449
|
// `/home/box/.codeam/self-hosted/<uuid>` and on a codespace it's a UUID
|
|
44439
44450
|
// directory — both are noise to the user and leak internal layout.
|
|
@@ -44479,7 +44490,7 @@ async function runAcpSession(opts) {
|
|
|
44479
44490
|
sessionId: opts.sessionId,
|
|
44480
44491
|
pluginId: opts.pluginId,
|
|
44481
44492
|
pluginAuthToken: opts.pluginAuthToken,
|
|
44482
|
-
agentId: opts.agent
|
|
44493
|
+
agentId: initialManagedId ?? opts.agent
|
|
44483
44494
|
});
|
|
44484
44495
|
void turnFiles.flushTurn().catch(() => {
|
|
44485
44496
|
});
|
|
@@ -49946,7 +49957,7 @@ function checkChokidar() {
|
|
|
49946
49957
|
}
|
|
49947
49958
|
async function doctor(args2 = []) {
|
|
49948
49959
|
const json = args2.includes("--json");
|
|
49949
|
-
const cliVersion = true ? "2.75.
|
|
49960
|
+
const cliVersion = true ? "2.75.1" : "0.0.0-dev";
|
|
49950
49961
|
const apiBase2 = resolveApiBaseUrl();
|
|
49951
49962
|
const diagnosticId = (0, import_node_crypto13.randomUUID)();
|
|
49952
49963
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -50470,7 +50481,7 @@ async function mcpWarm(argv = [], opts = {}) {
|
|
|
50470
50481
|
// src/commands/version.ts
|
|
50471
50482
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
50472
50483
|
function version2() {
|
|
50473
|
-
const v = true ? "2.75.
|
|
50484
|
+
const v = true ? "2.75.1" : "unknown";
|
|
50474
50485
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
50475
50486
|
}
|
|
50476
50487
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.75.
|
|
3
|
+
"version": "2.75.1",
|
|
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",
|