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 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.0" : "0.0.0-dev",
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.0",
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.0" ? { ideVersion: "2.75.0" } : {}
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.0" : null;
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.0" : null;
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.0" : null;
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.0" : "0.0.0-dev";
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.0" : "unknown";
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.0",
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",