codeam-cli 2.60.62 → 2.60.63

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.60.62] — 2026-07-15
8
+
9
+ ### Added
10
+
11
+ - **shared:** Add Linear as a live Agent Toolkit integration
12
+
7
13
  ## [2.60.61] — 2026-07-15
8
14
 
9
15
  ### Added
package/dist/index.js CHANGED
@@ -609,6 +609,56 @@ var INTEGRATION_REGISTRY = {
609
609
  }
610
610
  }
611
611
  }
612
+ },
613
+ slack: {
614
+ id: "slack",
615
+ name: "Slack",
616
+ icon: "slack",
617
+ // LIVE — the Slack app (OAuth v2, bot token) is registered and
618
+ // SLACK_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI are in Secret Manager
619
+ // (prod+dev). The backend SlackOAuthProvider is config-gated (503 if env
620
+ // unset) so this is safe even mid-rollout before the secrets mount.
621
+ enabled: true,
622
+ auth: {
623
+ kind: "oauth_redirect",
624
+ // Slack Bot Token Scopes (OAuth v2). Read + write across channels,
625
+ // groups, DMs: list/read history, post messages, react. `scope` is
626
+ // COMMA-separated in the authorize URL. ⚠️ Changing these requires the
627
+ // user to RE-INSTALL the Slack app — the bot token only carries the
628
+ // scopes granted at install time. The bot can only read channels it's
629
+ // been invited to (standard Slack bot behavior).
630
+ scopes: [
631
+ "channels:read",
632
+ "channels:history",
633
+ "groups:read",
634
+ "groups:history",
635
+ "chat:write",
636
+ "reactions:read",
637
+ "reactions:write",
638
+ "users:read",
639
+ "im:read",
640
+ "im:history",
641
+ "mpim:read",
642
+ "mpim:history"
643
+ ]
644
+ },
645
+ delivery: {
646
+ mcp: {
647
+ // Slack's official reference MCP server (Node). BYO-token headless: the
648
+ // OAuth v2 bot token (xoxb-…) is fed via SLACK_BOT_TOKEN and the team
649
+ // id via SLACK_TEAM_ID (env only, never argv). The server sends the
650
+ // token as `Authorization: Bearer`. Version PINNED; bump only after
651
+ // re-verifying headless. Tools: list_channels, post_message,
652
+ // reply_to_thread, add_reaction, get_channel_history,
653
+ // get_thread_replies, get_users, get_user_profile (read + write).
654
+ command: "npx",
655
+ args: ["-y", "@modelcontextprotocol/server-slack@2025.4.25"],
656
+ envMapping: {
657
+ SLACK_BOT_TOKEN: "accessToken",
658
+ SLACK_TEAM_ID: "teamId"
659
+ }
660
+ }
661
+ }
612
662
  }
613
663
  };
614
664
  function getIntegration(id) {
@@ -5837,7 +5887,7 @@ function readAnonId() {
5837
5887
  }
5838
5888
  function superProperties() {
5839
5889
  return {
5840
- cliVersion: true ? "2.60.62" : "0.0.0-dev",
5890
+ cliVersion: true ? "2.60.63" : "0.0.0-dev",
5841
5891
  nodeVersion: process.version,
5842
5892
  platform: process.platform,
5843
5893
  arch: process.arch,
@@ -6018,7 +6068,7 @@ var os4 = __toESM(require("os"));
6018
6068
  // package.json
6019
6069
  var package_default = {
6020
6070
  name: "codeam-cli",
6021
- version: "2.60.62",
6071
+ version: "2.60.63",
6022
6072
  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.",
6023
6073
  type: "commonjs",
6024
6074
  main: "dist/index.js",
@@ -7127,7 +7177,7 @@ var CommandRelayService = class {
7127
7177
  // fresh + clear the "CLI update available" banner after a self-update
7128
7178
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
7129
7179
  // pair/reconnect). Older backends ignore the extra field.
7130
- ..."2.60.62" ? { ideVersion: "2.60.62" } : {}
7180
+ ..."2.60.63" ? { ideVersion: "2.60.63" } : {}
7131
7181
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
7132
7182
  }
7133
7183
  /**
@@ -17704,7 +17754,7 @@ async function autoUpgradeBeforeCriticalCommand() {
17704
17754
  if (process.env.NODE_ENV === "test") return;
17705
17755
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
17706
17756
  if (process.env.CI) return;
17707
- const current = true ? "2.60.62" : null;
17757
+ const current = true ? "2.60.63" : null;
17708
17758
  if (!current) return;
17709
17759
  const cache = readCache();
17710
17760
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -17721,7 +17771,7 @@ function checkForUpdates() {
17721
17771
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
17722
17772
  if (process.env.CI) return;
17723
17773
  if (!process.stdout.isTTY) return;
17724
- const current = true ? "2.60.62" : null;
17774
+ const current = true ? "2.60.63" : null;
17725
17775
  if (!current) return;
17726
17776
  const cache = readCache();
17727
17777
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -17741,7 +17791,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
17741
17791
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
17742
17792
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
17743
17793
  function currentCliVersion() {
17744
- return true ? "2.60.62" : null;
17794
+ return true ? "2.60.63" : null;
17745
17795
  }
17746
17796
  function runCmd(cmd, args2, timeoutMs) {
17747
17797
  return new Promise((resolve7) => {
@@ -35170,7 +35220,7 @@ function checkChokidar() {
35170
35220
  }
35171
35221
  async function doctor(args2 = []) {
35172
35222
  const json = args2.includes("--json");
35173
- const cliVersion = true ? "2.60.62" : "0.0.0-dev";
35223
+ const cliVersion = true ? "2.60.63" : "0.0.0-dev";
35174
35224
  const apiBase2 = resolveApiBaseUrl();
35175
35225
  const diagnosticId = (0, import_node_crypto12.randomUUID)();
35176
35226
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -35647,7 +35697,7 @@ async function mcpRun(args2) {
35647
35697
  // src/commands/version.ts
35648
35698
  var import_picocolors15 = __toESM(require("picocolors"));
35649
35699
  function version2() {
35650
- const v = true ? "2.60.62" : "unknown";
35700
+ const v = true ? "2.60.63" : "unknown";
35651
35701
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
35652
35702
  }
35653
35703
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.60.62",
3
+ "version": "2.60.63",
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",