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 +6 -0
- package/dist/index.js +58 -8
- 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.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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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",
|