codeam-cli 2.61.64 → 2.61.66
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 +70 -21
- 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.65] — 2026-07-28
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **shared:** Enable Microsoft Teams (comms, OAuth Graph + teams MCP)
|
|
12
|
+
|
|
13
|
+
## [2.61.64] — 2026-07-28
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **shared:** Confluence catalog entry (docs) — alias of Atlassian/Jira
|
|
18
|
+
|
|
7
19
|
## [2.61.63] — 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",
|
|
@@ -1128,11 +1158,12 @@ var INTEGRATION_REGISTRY = {
|
|
|
1128
1158
|
name: "Figma",
|
|
1129
1159
|
icon: "figma",
|
|
1130
1160
|
category: "design",
|
|
1131
|
-
//
|
|
1132
|
-
//
|
|
1133
|
-
//
|
|
1134
|
-
//
|
|
1135
|
-
|
|
1161
|
+
// LIVE. OAuth is the PRIMARY flow (app pending Figma's review — until it
|
|
1162
|
+
// passes the authorize URL errors "OAuth app doesn't exist"), so a PAT
|
|
1163
|
+
// fallback (`apiKeyFallback`) ships alongside it and works TODAY: the user
|
|
1164
|
+
// pastes a Figma personal access token. Same OAuth-primary + PAT-secondary
|
|
1165
|
+
// shape as GitHub. Flip of the OAuth review is transparent (bead codeagent-m4ix).
|
|
1166
|
+
enabled: true,
|
|
1136
1167
|
auth: {
|
|
1137
1168
|
kind: "oauth_redirect",
|
|
1138
1169
|
// Granular READ-ONLY scopes (legacy `files:read` is deprecated for
|
|
@@ -1146,7 +1177,25 @@ var INTEGRATION_REGISTRY = {
|
|
|
1146
1177
|
"file_metadata:read",
|
|
1147
1178
|
"file_dev_resources:read",
|
|
1148
1179
|
"library_content:read"
|
|
1149
|
-
]
|
|
1180
|
+
],
|
|
1181
|
+
// SECONDARY: paste a Figma personal access token instead of OAuth. The
|
|
1182
|
+
// PAT uses the `X-Figma-Token` header, so the delivery env var differs
|
|
1183
|
+
// from OAuth (`FIGMA_API_KEY` vs `FIGMA_OAUTH_TOKEN`) — hence its own
|
|
1184
|
+
// envMapping, used when the credential was linked via PAT.
|
|
1185
|
+
apiKeyFallback: {
|
|
1186
|
+
fields: [
|
|
1187
|
+
{
|
|
1188
|
+
key: "accessToken",
|
|
1189
|
+
label: "Figma personal access token",
|
|
1190
|
+
placeholder: "figd_\u2026",
|
|
1191
|
+
secret: true,
|
|
1192
|
+
help: "Figma \u2192 Settings \u2192 Security \u2192 Personal access tokens (read-only scopes)."
|
|
1193
|
+
}
|
|
1194
|
+
],
|
|
1195
|
+
envMapping: {
|
|
1196
|
+
FIGMA_API_KEY: "accessToken"
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1150
1199
|
},
|
|
1151
1200
|
delivery: {
|
|
1152
1201
|
mcp: {
|
|
@@ -6939,7 +6988,7 @@ function readAnonId() {
|
|
|
6939
6988
|
}
|
|
6940
6989
|
function superProperties() {
|
|
6941
6990
|
return {
|
|
6942
|
-
cliVersion: true ? "2.61.
|
|
6991
|
+
cliVersion: true ? "2.61.66" : "0.0.0-dev",
|
|
6943
6992
|
nodeVersion: process.version,
|
|
6944
6993
|
platform: process.platform,
|
|
6945
6994
|
arch: process.arch,
|
|
@@ -7120,7 +7169,7 @@ var os4 = __toESM(require("os"));
|
|
|
7120
7169
|
// package.json
|
|
7121
7170
|
var package_default = {
|
|
7122
7171
|
name: "codeam-cli",
|
|
7123
|
-
version: "2.61.
|
|
7172
|
+
version: "2.61.66",
|
|
7124
7173
|
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.",
|
|
7125
7174
|
type: "commonjs",
|
|
7126
7175
|
main: "dist/index.js",
|
|
@@ -8292,7 +8341,7 @@ var CommandRelayService = class _CommandRelayService {
|
|
|
8292
8341
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
8293
8342
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
8294
8343
|
// pair/reconnect). Older backends ignore the extra field.
|
|
8295
|
-
..."2.61.
|
|
8344
|
+
..."2.61.66" ? { ideVersion: "2.61.66" } : {}
|
|
8296
8345
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
8297
8346
|
}
|
|
8298
8347
|
/**
|
|
@@ -19401,7 +19450,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
19401
19450
|
if (process.env.NODE_ENV === "test") return;
|
|
19402
19451
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
19403
19452
|
if (process.env.CI) return;
|
|
19404
|
-
const current = true ? "2.61.
|
|
19453
|
+
const current = true ? "2.61.66" : null;
|
|
19405
19454
|
if (!current) return;
|
|
19406
19455
|
const cache = readCache();
|
|
19407
19456
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -19418,7 +19467,7 @@ function checkForUpdates() {
|
|
|
19418
19467
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
19419
19468
|
if (process.env.CI) return;
|
|
19420
19469
|
if (!process.stdout.isTTY) return;
|
|
19421
|
-
const current = true ? "2.61.
|
|
19470
|
+
const current = true ? "2.61.66" : null;
|
|
19422
19471
|
if (!current) return;
|
|
19423
19472
|
const cache = readCache();
|
|
19424
19473
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -19438,7 +19487,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
|
|
|
19438
19487
|
var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
|
|
19439
19488
|
var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
19440
19489
|
function currentCliVersion() {
|
|
19441
|
-
return true ? "2.61.
|
|
19490
|
+
return true ? "2.61.66" : null;
|
|
19442
19491
|
}
|
|
19443
19492
|
function runCmd(cmd, args2, timeoutMs) {
|
|
19444
19493
|
return new Promise((resolve8) => {
|
|
@@ -39677,7 +39726,7 @@ function checkChokidar() {
|
|
|
39677
39726
|
}
|
|
39678
39727
|
async function doctor(args2 = []) {
|
|
39679
39728
|
const json = args2.includes("--json");
|
|
39680
|
-
const cliVersion = true ? "2.61.
|
|
39729
|
+
const cliVersion = true ? "2.61.66" : "0.0.0-dev";
|
|
39681
39730
|
const apiBase2 = resolveApiBaseUrl();
|
|
39682
39731
|
const diagnosticId = (0, import_node_crypto13.randomUUID)();
|
|
39683
39732
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -40199,7 +40248,7 @@ async function mcpRun(args2) {
|
|
|
40199
40248
|
// src/commands/version.ts
|
|
40200
40249
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
40201
40250
|
function version2() {
|
|
40202
|
-
const v = true ? "2.61.
|
|
40251
|
+
const v = true ? "2.61.66" : "unknown";
|
|
40203
40252
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
40204
40253
|
}
|
|
40205
40254
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.61.
|
|
3
|
+
"version": "2.61.66",
|
|
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",
|