codeam-cli 2.61.63 → 2.61.65
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 +73 -15
- 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.61.64] — 2026-07-28
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **shared:** Confluence catalog entry (docs) — alias of Atlassian/Jira
|
|
12
|
+
|
|
13
|
+
## [2.61.63] — 2026-07-28
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **shared:** Supabase integration (database, OAuth)
|
|
18
|
+
|
|
7
19
|
## [2.61.62] — 2026-07-28
|
|
8
20
|
|
|
9
21
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -851,13 +851,43 @@ var INTEGRATION_REGISTRY = {
|
|
|
851
851
|
name: "Microsoft Teams",
|
|
852
852
|
icon: "microsoft_teams",
|
|
853
853
|
category: "comms",
|
|
854
|
-
//
|
|
855
|
-
// agent
|
|
856
|
-
//
|
|
857
|
-
//
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
854
|
+
// LIVE — Microsoft identity platform v2.0 OAuth (multi-tenant, Confidential).
|
|
855
|
+
// The agent reads chats/channels + posts AS THE USER over Microsoft Graph.
|
|
856
|
+
// MS_TEAMS_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI are in Secret Manager (prod+dev);
|
|
857
|
+
// the backend TeamsOAuthProvider is config-gated (503 if env unset).
|
|
858
|
+
// ⚠️ Chat.* + ChannelMessage.Read.All (`.All`) require TENANT-ADMIN consent
|
|
859
|
+
// (MC1163922, Oct-2025) — the connecting user must be an org admin, or their
|
|
860
|
+
// IT admin approves the app for the tenant. Not a self-serve funnel like Slack.
|
|
861
|
+
enabled: true,
|
|
862
|
+
auth: {
|
|
863
|
+
kind: "oauth_redirect",
|
|
864
|
+
// Delegated Microsoft Graph scopes. `offline_access` → rotating refresh
|
|
865
|
+
// (Teams access tokens are ~1h). ⚠️ Changing these requires the user to
|
|
866
|
+
// RE-LINK — the token carries only the scopes granted at link time.
|
|
867
|
+
scopes: [
|
|
868
|
+
"User.Read",
|
|
869
|
+
"User.ReadBasic.All",
|
|
870
|
+
"Team.ReadBasic.All",
|
|
871
|
+
"Channel.ReadBasic.All",
|
|
872
|
+
"ChannelMessage.Read.All",
|
|
873
|
+
"ChannelMessage.Send",
|
|
874
|
+
"Chat.Read",
|
|
875
|
+
"Chat.ReadWrite",
|
|
876
|
+
"offline_access"
|
|
877
|
+
]
|
|
878
|
+
},
|
|
879
|
+
delivery: {
|
|
880
|
+
mcp: {
|
|
881
|
+
// @floriscornel/teams-mcp (Node): BYO Graph access token via AUTH_TOKEN
|
|
882
|
+
// (env only, never argv). Headless. Version PINNED; bump only after
|
|
883
|
+
// re-verifying headless. Tools: get/send channel + chat messages, replies.
|
|
884
|
+
command: "npx",
|
|
885
|
+
args: ["-y", "@floriscornel/teams-mcp@0.9.0"],
|
|
886
|
+
envMapping: {
|
|
887
|
+
AUTH_TOKEN: "accessToken"
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
}
|
|
861
891
|
},
|
|
862
892
|
google_chat: {
|
|
863
893
|
id: "google_chat",
|
|
@@ -1466,6 +1496,34 @@ var INTEGRATION_REGISTRY = {
|
|
|
1466
1496
|
}
|
|
1467
1497
|
}
|
|
1468
1498
|
}
|
|
1499
|
+
},
|
|
1500
|
+
confluence: {
|
|
1501
|
+
id: "confluence",
|
|
1502
|
+
name: "Confluence",
|
|
1503
|
+
icon: "confluence",
|
|
1504
|
+
category: "docs",
|
|
1505
|
+
// Confluence is served by the SAME Atlassian OAuth + the SAME `mcp-atlassian`
|
|
1506
|
+
// server as Jira (the `jira` entry already requests Confluence scopes). This
|
|
1507
|
+
// entry is a DISPLAY ALIAS so Confluence is explicit in the Knowledge tab: it
|
|
1508
|
+
// BORROWS jira's vaulted credential (`aliasOf: 'jira'`) and has no link flow of
|
|
1509
|
+
// its own — connecting Atlassian (the Jira/Atlassian card) lights it up, and
|
|
1510
|
+
// the backend resolves its token by delegating to `jira`.
|
|
1511
|
+
enabled: true,
|
|
1512
|
+
auth: { kind: "derived", aliasOf: "jira" },
|
|
1513
|
+
delivery: {
|
|
1514
|
+
mcp: {
|
|
1515
|
+
// Same mcp-atlassian server + BYO-token env as Jira — it exposes the
|
|
1516
|
+
// Confluence tools when the deploy selects Confluence without Jira. If
|
|
1517
|
+
// BOTH are selected the deploy manifest dedupes identical MCP specs.
|
|
1518
|
+
command: "uvx",
|
|
1519
|
+
args: ["mcp-atlassian==0.22.1"],
|
|
1520
|
+
envMapping: {
|
|
1521
|
+
ATLASSIAN_OAUTH_ACCESS_TOKEN: "accessToken",
|
|
1522
|
+
ATLASSIAN_OAUTH_CLOUD_ID: "cloudId"
|
|
1523
|
+
},
|
|
1524
|
+
staticEnv: { ATLASSIAN_OAUTH_ENABLE: "true" }
|
|
1525
|
+
}
|
|
1526
|
+
}
|
|
1469
1527
|
}
|
|
1470
1528
|
};
|
|
1471
1529
|
function getIntegration(id) {
|
|
@@ -6911,7 +6969,7 @@ function readAnonId() {
|
|
|
6911
6969
|
}
|
|
6912
6970
|
function superProperties() {
|
|
6913
6971
|
return {
|
|
6914
|
-
cliVersion: true ? "2.61.
|
|
6972
|
+
cliVersion: true ? "2.61.65" : "0.0.0-dev",
|
|
6915
6973
|
nodeVersion: process.version,
|
|
6916
6974
|
platform: process.platform,
|
|
6917
6975
|
arch: process.arch,
|
|
@@ -7092,7 +7150,7 @@ var os4 = __toESM(require("os"));
|
|
|
7092
7150
|
// package.json
|
|
7093
7151
|
var package_default = {
|
|
7094
7152
|
name: "codeam-cli",
|
|
7095
|
-
version: "2.61.
|
|
7153
|
+
version: "2.61.65",
|
|
7096
7154
|
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.",
|
|
7097
7155
|
type: "commonjs",
|
|
7098
7156
|
main: "dist/index.js",
|
|
@@ -8264,7 +8322,7 @@ var CommandRelayService = class _CommandRelayService {
|
|
|
8264
8322
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
8265
8323
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
8266
8324
|
// pair/reconnect). Older backends ignore the extra field.
|
|
8267
|
-
..."2.61.
|
|
8325
|
+
..."2.61.65" ? { ideVersion: "2.61.65" } : {}
|
|
8268
8326
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
8269
8327
|
}
|
|
8270
8328
|
/**
|
|
@@ -19373,7 +19431,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
19373
19431
|
if (process.env.NODE_ENV === "test") return;
|
|
19374
19432
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
19375
19433
|
if (process.env.CI) return;
|
|
19376
|
-
const current = true ? "2.61.
|
|
19434
|
+
const current = true ? "2.61.65" : null;
|
|
19377
19435
|
if (!current) return;
|
|
19378
19436
|
const cache = readCache();
|
|
19379
19437
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -19390,7 +19448,7 @@ function checkForUpdates() {
|
|
|
19390
19448
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
19391
19449
|
if (process.env.CI) return;
|
|
19392
19450
|
if (!process.stdout.isTTY) return;
|
|
19393
|
-
const current = true ? "2.61.
|
|
19451
|
+
const current = true ? "2.61.65" : null;
|
|
19394
19452
|
if (!current) return;
|
|
19395
19453
|
const cache = readCache();
|
|
19396
19454
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -19410,7 +19468,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
|
|
|
19410
19468
|
var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
|
|
19411
19469
|
var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
19412
19470
|
function currentCliVersion() {
|
|
19413
|
-
return true ? "2.61.
|
|
19471
|
+
return true ? "2.61.65" : null;
|
|
19414
19472
|
}
|
|
19415
19473
|
function runCmd(cmd, args2, timeoutMs) {
|
|
19416
19474
|
return new Promise((resolve8) => {
|
|
@@ -39649,7 +39707,7 @@ function checkChokidar() {
|
|
|
39649
39707
|
}
|
|
39650
39708
|
async function doctor(args2 = []) {
|
|
39651
39709
|
const json = args2.includes("--json");
|
|
39652
|
-
const cliVersion = true ? "2.61.
|
|
39710
|
+
const cliVersion = true ? "2.61.65" : "0.0.0-dev";
|
|
39653
39711
|
const apiBase2 = resolveApiBaseUrl();
|
|
39654
39712
|
const diagnosticId = (0, import_node_crypto13.randomUUID)();
|
|
39655
39713
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -40171,7 +40229,7 @@ async function mcpRun(args2) {
|
|
|
40171
40229
|
// src/commands/version.ts
|
|
40172
40230
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
40173
40231
|
function version2() {
|
|
40174
|
-
const v = true ? "2.61.
|
|
40232
|
+
const v = true ? "2.61.65" : "unknown";
|
|
40175
40233
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
40176
40234
|
}
|
|
40177
40235
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.61.
|
|
3
|
+
"version": "2.61.65",
|
|
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",
|