codeam-cli 2.60.62 → 2.60.64
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 +12 -0
- package/dist/index.js +62 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@ 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.63] — 2026-07-15
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **shared:** Add Slack as a live Agent Toolkit integration
|
|
12
|
+
|
|
13
|
+
## [2.60.62] — 2026-07-15
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **shared:** Add Linear as a live Agent Toolkit integration
|
|
18
|
+
|
|
7
19
|
## [2.60.61] — 2026-07-15
|
|
8
20
|
|
|
9
21
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -609,6 +609,60 @@ 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, USER token — the agent acts AS THE USER)
|
|
618
|
+
// is registered and
|
|
619
|
+
// SLACK_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI are in Secret Manager
|
|
620
|
+
// (prod+dev). The backend SlackOAuthProvider is config-gated (503 if env
|
|
621
|
+
// unset) so this is safe even mid-rollout before the secrets mount.
|
|
622
|
+
enabled: true,
|
|
623
|
+
auth: {
|
|
624
|
+
kind: "oauth_redirect",
|
|
625
|
+
// Slack USER Token Scopes (OAuth v2). Read + write across channels,
|
|
626
|
+
// groups, DMs: list/read history, post messages, react — all AS THE USER.
|
|
627
|
+
// The backend provider requests these under `user_scope` (comma-separated)
|
|
628
|
+
// and stores the authed_user `xoxp-…` token, so the agent sees everything
|
|
629
|
+
// the user sees (no bot needs to be invited to channels). ⚠️ Changing
|
|
630
|
+
// these requires the user to RE-AUTHORIZE the Slack app.
|
|
631
|
+
scopes: [
|
|
632
|
+
"channels:read",
|
|
633
|
+
"channels:history",
|
|
634
|
+
"groups:read",
|
|
635
|
+
"groups:history",
|
|
636
|
+
"chat:write",
|
|
637
|
+
"reactions:read",
|
|
638
|
+
"reactions:write",
|
|
639
|
+
"users:read",
|
|
640
|
+
"im:read",
|
|
641
|
+
"im:history",
|
|
642
|
+
"mpim:read",
|
|
643
|
+
"mpim:history",
|
|
644
|
+
// Message search across the user's channels/DMs (a user-only scope).
|
|
645
|
+
"search:read"
|
|
646
|
+
]
|
|
647
|
+
},
|
|
648
|
+
delivery: {
|
|
649
|
+
mcp: {
|
|
650
|
+
// Slack's official reference MCP server (Node). BYO-token headless: the
|
|
651
|
+
// OAuth v2 USER token (xoxp-…) is fed via SLACK_BOT_TOKEN (the server's
|
|
652
|
+
// env var name — it sends whatever token as `Authorization: Bearer`, and
|
|
653
|
+
// Slack's Web API accepts a user token there) and the team id via
|
|
654
|
+
// SLACK_TEAM_ID (env only, never argv). Version PINNED; bump only after
|
|
655
|
+
// re-verifying headless. Tools: list_channels, post_message,
|
|
656
|
+
// reply_to_thread, add_reaction, get_channel_history,
|
|
657
|
+
// get_thread_replies, get_users, get_user_profile (read + write).
|
|
658
|
+
command: "npx",
|
|
659
|
+
args: ["-y", "@modelcontextprotocol/server-slack@2025.4.25"],
|
|
660
|
+
envMapping: {
|
|
661
|
+
SLACK_BOT_TOKEN: "accessToken",
|
|
662
|
+
SLACK_TEAM_ID: "teamId"
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
}
|
|
612
666
|
}
|
|
613
667
|
};
|
|
614
668
|
function getIntegration(id) {
|
|
@@ -5837,7 +5891,7 @@ function readAnonId() {
|
|
|
5837
5891
|
}
|
|
5838
5892
|
function superProperties() {
|
|
5839
5893
|
return {
|
|
5840
|
-
cliVersion: true ? "2.60.
|
|
5894
|
+
cliVersion: true ? "2.60.64" : "0.0.0-dev",
|
|
5841
5895
|
nodeVersion: process.version,
|
|
5842
5896
|
platform: process.platform,
|
|
5843
5897
|
arch: process.arch,
|
|
@@ -6018,7 +6072,7 @@ var os4 = __toESM(require("os"));
|
|
|
6018
6072
|
// package.json
|
|
6019
6073
|
var package_default = {
|
|
6020
6074
|
name: "codeam-cli",
|
|
6021
|
-
version: "2.60.
|
|
6075
|
+
version: "2.60.64",
|
|
6022
6076
|
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
6077
|
type: "commonjs",
|
|
6024
6078
|
main: "dist/index.js",
|
|
@@ -7127,7 +7181,7 @@ var CommandRelayService = class {
|
|
|
7127
7181
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
7128
7182
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
7129
7183
|
// pair/reconnect). Older backends ignore the extra field.
|
|
7130
|
-
..."2.60.
|
|
7184
|
+
..."2.60.64" ? { ideVersion: "2.60.64" } : {}
|
|
7131
7185
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
7132
7186
|
}
|
|
7133
7187
|
/**
|
|
@@ -17704,7 +17758,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
17704
17758
|
if (process.env.NODE_ENV === "test") return;
|
|
17705
17759
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
17706
17760
|
if (process.env.CI) return;
|
|
17707
|
-
const current = true ? "2.60.
|
|
17761
|
+
const current = true ? "2.60.64" : null;
|
|
17708
17762
|
if (!current) return;
|
|
17709
17763
|
const cache = readCache();
|
|
17710
17764
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -17721,7 +17775,7 @@ function checkForUpdates() {
|
|
|
17721
17775
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
17722
17776
|
if (process.env.CI) return;
|
|
17723
17777
|
if (!process.stdout.isTTY) return;
|
|
17724
|
-
const current = true ? "2.60.
|
|
17778
|
+
const current = true ? "2.60.64" : null;
|
|
17725
17779
|
if (!current) return;
|
|
17726
17780
|
const cache = readCache();
|
|
17727
17781
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -17741,7 +17795,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
|
|
|
17741
17795
|
var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
|
|
17742
17796
|
var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
17743
17797
|
function currentCliVersion() {
|
|
17744
|
-
return true ? "2.60.
|
|
17798
|
+
return true ? "2.60.64" : null;
|
|
17745
17799
|
}
|
|
17746
17800
|
function runCmd(cmd, args2, timeoutMs) {
|
|
17747
17801
|
return new Promise((resolve7) => {
|
|
@@ -35170,7 +35224,7 @@ function checkChokidar() {
|
|
|
35170
35224
|
}
|
|
35171
35225
|
async function doctor(args2 = []) {
|
|
35172
35226
|
const json = args2.includes("--json");
|
|
35173
|
-
const cliVersion = true ? "2.60.
|
|
35227
|
+
const cliVersion = true ? "2.60.64" : "0.0.0-dev";
|
|
35174
35228
|
const apiBase2 = resolveApiBaseUrl();
|
|
35175
35229
|
const diagnosticId = (0, import_node_crypto12.randomUUID)();
|
|
35176
35230
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -35647,7 +35701,7 @@ async function mcpRun(args2) {
|
|
|
35647
35701
|
// src/commands/version.ts
|
|
35648
35702
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
35649
35703
|
function version2() {
|
|
35650
|
-
const v = true ? "2.60.
|
|
35704
|
+
const v = true ? "2.60.64" : "unknown";
|
|
35651
35705
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
35652
35706
|
}
|
|
35653
35707
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.60.
|
|
3
|
+
"version": "2.60.64",
|
|
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",
|