codeam-cli 2.65.8 → 2.65.9

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.
Files changed (2) hide show
  1. package/dist/index.js +39 -11
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -8079,7 +8079,7 @@ function readAnonId() {
8079
8079
  }
8080
8080
  function superProperties() {
8081
8081
  return {
8082
- cliVersion: true ? "2.65.8" : "0.0.0-dev",
8082
+ cliVersion: true ? "2.65.9" : "0.0.0-dev",
8083
8083
  nodeVersion: process.version,
8084
8084
  platform: process.platform,
8085
8085
  arch: process.arch,
@@ -8260,7 +8260,7 @@ var os4 = __toESM(require("os"));
8260
8260
  // package.json
8261
8261
  var package_default = {
8262
8262
  name: "codeam-cli",
8263
- version: "2.65.8",
8263
+ version: "2.65.9",
8264
8264
  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.",
8265
8265
  type: "commonjs",
8266
8266
  main: "dist/index.js",
@@ -9761,7 +9761,7 @@ var CommandRelayService = class _CommandRelayService {
9761
9761
  // fresh + clear the "CLI update available" banner after a self-update
9762
9762
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
9763
9763
  // pair/reconnect). Older backends ignore the extra field.
9764
- ..."2.65.8" ? { ideVersion: "2.65.8" } : {}
9764
+ ..."2.65.9" ? { ideVersion: "2.65.9" } : {}
9765
9765
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
9766
9766
  }
9767
9767
  /**
@@ -21690,7 +21690,7 @@ async function autoUpgradeBeforeCriticalCommand() {
21690
21690
  if (process.env.NODE_ENV === "test") return;
21691
21691
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
21692
21692
  if (process.env.CI) return;
21693
- const current2 = true ? "2.65.8" : null;
21693
+ const current2 = true ? "2.65.9" : null;
21694
21694
  if (!current2) return;
21695
21695
  const cache = readCache();
21696
21696
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -21707,7 +21707,7 @@ function checkForUpdates() {
21707
21707
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
21708
21708
  if (process.env.CI) return;
21709
21709
  if (!process.stdout.isTTY) return;
21710
- const current2 = true ? "2.65.8" : null;
21710
+ const current2 = true ? "2.65.9" : null;
21711
21711
  if (!current2) return;
21712
21712
  const cache = readCache();
21713
21713
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -21727,7 +21727,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
21727
21727
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
21728
21728
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
21729
21729
  function currentCliVersion() {
21730
- return true ? "2.65.8" : null;
21730
+ return true ? "2.65.9" : null;
21731
21731
  }
21732
21732
  function runCmd(cmd, args2, timeoutMs) {
21733
21733
  return new Promise((resolve9) => {
@@ -36713,6 +36713,11 @@ ${tail}` : detail].join(
36713
36713
  "\n"
36714
36714
  );
36715
36715
  }
36716
+ function startupCredentialInvalidReason(agent, detail, recentStderr) {
36717
+ const haystack2 = `${detail}
36718
+ ${recentStderr}`;
36719
+ return agentHooks(agent)?.classifyStartupFailure?.(haystack2) === "ineligible_tier" ? "ineligible_tier" : null;
36720
+ }
36716
36721
  function budgetBubbleMessage(agent, period) {
36717
36722
  return `\u{1F4B8} **Headroom budget reached for the ${period} period.**
36718
36723
 
@@ -36752,7 +36757,11 @@ function adapterExitMessage(opts) {
36752
36757
  // src/agents/acp/backend-reports.ts
36753
36758
  async function reportCredentialInvalid(opts, fetchImpl = fetch) {
36754
36759
  const url2 = `${resolveApiBaseUrl()}/api/plugin/agents/${encodeURIComponent(opts.agent)}/credential-invalid`;
36755
- const body = JSON.stringify({ sessionId: opts.sessionId, pluginId: opts.pluginId });
36760
+ const body = JSON.stringify({
36761
+ sessionId: opts.sessionId,
36762
+ pluginId: opts.pluginId,
36763
+ ...opts.reason ? { reason: opts.reason } : {}
36764
+ });
36756
36765
  try {
36757
36766
  const makeHeaders = (token) => ({
36758
36767
  "Content-Type": "application/json",
@@ -39331,8 +39340,21 @@ var AcpHistory = class {
39331
39340
  ]);
39332
39341
  }
39333
39342
  };
39343
+ var _startupCredentialReportGuard = { reported: false };
39334
39344
  async function surfaceStartupFailure(opts) {
39335
39345
  const msg = startupFailureMessage(opts.agent, opts.detail, opts.recentStderr);
39346
+ const reason = startupCredentialInvalidReason(opts.agent, opts.detail, opts.recentStderr);
39347
+ if (reason !== null && !_startupCredentialReportGuard.reported && opts.sessionId && opts.pluginAuthToken) {
39348
+ _startupCredentialReportGuard.reported = true;
39349
+ void reportCredentialInvalid({
39350
+ agent: opts.agent,
39351
+ sessionId: opts.sessionId,
39352
+ pluginId: opts.pluginId,
39353
+ pluginAuthToken: opts.pluginAuthToken,
39354
+ pollSecret: opts.pollSecret,
39355
+ reason
39356
+ });
39357
+ }
39336
39358
  const publish = async () => {
39337
39359
  try {
39338
39360
  await opts.publisher.publishOutput({ type: "new_turn", done: false });
@@ -39537,7 +39559,10 @@ async function runAcpSession(opts) {
39537
39559
  pluginId: opts.pluginId,
39538
39560
  detail,
39539
39561
  recentStderr: recentStderr.join("\n"),
39540
- publisher
39562
+ publisher,
39563
+ sessionId: opts.sessionId,
39564
+ pluginAuthToken: opts.pluginAuthToken,
39565
+ pollSecret: opts.pollSecret
39541
39566
  });
39542
39567
  return;
39543
39568
  }
@@ -41981,7 +42006,10 @@ async function start(requestedAgent, presetSession) {
41981
42006
  pluginId,
41982
42007
  pluginAuthToken: session.pluginAuthToken,
41983
42008
  refreshAuthToken: () => fetchCurrentPluginAuthToken(session.id, pluginId, session.pollSecret)
41984
- })
42009
+ }),
42010
+ sessionId: session.id,
42011
+ pluginAuthToken: session.pluginAuthToken,
42012
+ pollSecret: session.pollSecret
41985
42013
  });
41986
42014
  return;
41987
42015
  }
@@ -44737,7 +44765,7 @@ function checkChokidar() {
44737
44765
  }
44738
44766
  async function doctor(args2 = []) {
44739
44767
  const json = args2.includes("--json");
44740
- const cliVersion = true ? "2.65.8" : "0.0.0-dev";
44768
+ const cliVersion = true ? "2.65.9" : "0.0.0-dev";
44741
44769
  const apiBase2 = resolveApiBaseUrl();
44742
44770
  const diagnosticId = (0, import_node_crypto13.randomUUID)();
44743
44771
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -45128,7 +45156,7 @@ async function mcpRun(args2) {
45128
45156
  // src/commands/version.ts
45129
45157
  var import_picocolors15 = __toESM(require("picocolors"));
45130
45158
  function version2() {
45131
- const v = true ? "2.65.8" : "unknown";
45159
+ const v = true ? "2.65.9" : "unknown";
45132
45160
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
45133
45161
  }
45134
45162
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.65.8",
3
+ "version": "2.65.9",
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",