codeam-cli 2.60.65 → 2.60.67
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 +87 -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.66] — 2026-07-15
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **shared:** Add Notion as a live Agent Toolkit integration
|
|
12
|
+
|
|
13
|
+
## [2.60.65] — 2026-07-15
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **cli:** At-least-once command delivery — dedupe + ack (bulletproof first-prompt loss)
|
|
18
|
+
|
|
7
19
|
## [2.60.64] — 2026-07-15
|
|
8
20
|
|
|
9
21
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -663,6 +663,85 @@ var INTEGRATION_REGISTRY = {
|
|
|
663
663
|
}
|
|
664
664
|
}
|
|
665
665
|
}
|
|
666
|
+
},
|
|
667
|
+
notion: {
|
|
668
|
+
id: "notion",
|
|
669
|
+
name: "Notion",
|
|
670
|
+
icon: "notion",
|
|
671
|
+
// LIVE — the Notion public OAuth integration is registered and
|
|
672
|
+
// NOTION_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI are in Secret Manager
|
|
673
|
+
// (prod+dev). The backend NotionOAuthProvider is config-gated (503 if env
|
|
674
|
+
// unset) so this is safe even mid-rollout before the secrets mount.
|
|
675
|
+
enabled: true,
|
|
676
|
+
auth: {
|
|
677
|
+
kind: "oauth_redirect",
|
|
678
|
+
// Notion does NOT use per-request OAuth scopes — access is governed by
|
|
679
|
+
// the integration's configured CAPABILITIES (read/update/insert content
|
|
680
|
+
// + read user info), set once on the Notion integration, not passed in
|
|
681
|
+
// the authorize URL. So there is no `scope` param to request here.
|
|
682
|
+
scopes: []
|
|
683
|
+
},
|
|
684
|
+
delivery: {
|
|
685
|
+
mcp: {
|
|
686
|
+
// Notion's OFFICIAL stdio MCP server (Node). BYO-token headless: the
|
|
687
|
+
// OAuth access token is fed via NOTION_TOKEN and the server sends it as
|
|
688
|
+
// `Authorization: Bearer` + `Notion-Version: 2022-06-28` (env only,
|
|
689
|
+
// never argv). No discriminator — the token alone authenticates its
|
|
690
|
+
// workspace. Version PINNED; bump only after re-verifying headless.
|
|
691
|
+
command: "npx",
|
|
692
|
+
args: ["-y", "@notionhq/notion-mcp-server@2.4.1"],
|
|
693
|
+
envMapping: {
|
|
694
|
+
NOTION_TOKEN: "accessToken"
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
},
|
|
699
|
+
azure_devops: {
|
|
700
|
+
id: "azure_devops",
|
|
701
|
+
name: "Azure DevOps",
|
|
702
|
+
icon: "azure_devops",
|
|
703
|
+
// LIVE — the FIRST api_key (PAT) integration. No OAuth: Azure DevOps OAuth
|
|
704
|
+
// apps are being sunset by Microsoft in favor of Entra ID, and PATs are the
|
|
705
|
+
// native, reliable ADO auth. The user pastes their org URL + a PAT; the
|
|
706
|
+
// backend validates against the ADO REST API and vaults it. No env secrets
|
|
707
|
+
// to configure (config-gated 503 doesn't apply — there's no OAuth app).
|
|
708
|
+
enabled: true,
|
|
709
|
+
auth: {
|
|
710
|
+
kind: "api_key",
|
|
711
|
+
fields: [
|
|
712
|
+
{
|
|
713
|
+
key: "orgUrl",
|
|
714
|
+
label: "Organization URL",
|
|
715
|
+
placeholder: "https://dev.azure.com/your-org",
|
|
716
|
+
secret: false,
|
|
717
|
+
help: "Your Azure DevOps organization URL \u2014 e.g. https://dev.azure.com/contoso"
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
key: "accessToken",
|
|
721
|
+
label: "Personal Access Token",
|
|
722
|
+
placeholder: "Paste your PAT",
|
|
723
|
+
secret: true,
|
|
724
|
+
help: "Create in Azure DevOps \u2192 User settings \u2192 Personal access tokens. Recommended scopes: Work Items (Read & Write), Code (Read), Build (Read), Project and Team (Read)."
|
|
725
|
+
}
|
|
726
|
+
]
|
|
727
|
+
},
|
|
728
|
+
delivery: {
|
|
729
|
+
mcp: {
|
|
730
|
+
// The @tiberriver256 ADO MCP server (Node) in PAT mode: the PAT is fed
|
|
731
|
+
// via AZURE_DEVOPS_PAT (Basic auth) + the org via AZURE_DEVOPS_ORG_URL
|
|
732
|
+
// (env only, never argv). AZURE_DEVOPS_AUTH_METHOD=pat pins the PAT path
|
|
733
|
+
// (the alternative, azure-identity, uses DefaultAzureCredential and
|
|
734
|
+
// would ignore our token). Version PINNED; bump only after re-verifying
|
|
735
|
+
// headless.
|
|
736
|
+
command: "npx",
|
|
737
|
+
args: ["-y", "@tiberriver256/mcp-server-azure-devops@0.1.46"],
|
|
738
|
+
envMapping: {
|
|
739
|
+
AZURE_DEVOPS_PAT: "accessToken",
|
|
740
|
+
AZURE_DEVOPS_ORG_URL: "orgUrl"
|
|
741
|
+
},
|
|
742
|
+
staticEnv: { AZURE_DEVOPS_AUTH_METHOD: "pat" }
|
|
743
|
+
}
|
|
744
|
+
}
|
|
666
745
|
}
|
|
667
746
|
};
|
|
668
747
|
function getIntegration(id) {
|
|
@@ -5891,7 +5970,7 @@ function readAnonId() {
|
|
|
5891
5970
|
}
|
|
5892
5971
|
function superProperties() {
|
|
5893
5972
|
return {
|
|
5894
|
-
cliVersion: true ? "2.60.
|
|
5973
|
+
cliVersion: true ? "2.60.67" : "0.0.0-dev",
|
|
5895
5974
|
nodeVersion: process.version,
|
|
5896
5975
|
platform: process.platform,
|
|
5897
5976
|
arch: process.arch,
|
|
@@ -6072,7 +6151,7 @@ var os4 = __toESM(require("os"));
|
|
|
6072
6151
|
// package.json
|
|
6073
6152
|
var package_default = {
|
|
6074
6153
|
name: "codeam-cli",
|
|
6075
|
-
version: "2.60.
|
|
6154
|
+
version: "2.60.67",
|
|
6076
6155
|
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.",
|
|
6077
6156
|
type: "commonjs",
|
|
6078
6157
|
main: "dist/index.js",
|
|
@@ -7215,7 +7294,7 @@ var CommandRelayService = class _CommandRelayService {
|
|
|
7215
7294
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
7216
7295
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
7217
7296
|
// pair/reconnect). Older backends ignore the extra field.
|
|
7218
|
-
..."2.60.
|
|
7297
|
+
..."2.60.67" ? { ideVersion: "2.60.67" } : {}
|
|
7219
7298
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
7220
7299
|
}
|
|
7221
7300
|
/**
|
|
@@ -17792,7 +17871,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
17792
17871
|
if (process.env.NODE_ENV === "test") return;
|
|
17793
17872
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
17794
17873
|
if (process.env.CI) return;
|
|
17795
|
-
const current = true ? "2.60.
|
|
17874
|
+
const current = true ? "2.60.67" : null;
|
|
17796
17875
|
if (!current) return;
|
|
17797
17876
|
const cache = readCache();
|
|
17798
17877
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -17809,7 +17888,7 @@ function checkForUpdates() {
|
|
|
17809
17888
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
17810
17889
|
if (process.env.CI) return;
|
|
17811
17890
|
if (!process.stdout.isTTY) return;
|
|
17812
|
-
const current = true ? "2.60.
|
|
17891
|
+
const current = true ? "2.60.67" : null;
|
|
17813
17892
|
if (!current) return;
|
|
17814
17893
|
const cache = readCache();
|
|
17815
17894
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -17829,7 +17908,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
|
|
|
17829
17908
|
var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
|
|
17830
17909
|
var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
17831
17910
|
function currentCliVersion() {
|
|
17832
|
-
return true ? "2.60.
|
|
17911
|
+
return true ? "2.60.67" : null;
|
|
17833
17912
|
}
|
|
17834
17913
|
function runCmd(cmd, args2, timeoutMs) {
|
|
17835
17914
|
return new Promise((resolve7) => {
|
|
@@ -35258,7 +35337,7 @@ function checkChokidar() {
|
|
|
35258
35337
|
}
|
|
35259
35338
|
async function doctor(args2 = []) {
|
|
35260
35339
|
const json = args2.includes("--json");
|
|
35261
|
-
const cliVersion = true ? "2.60.
|
|
35340
|
+
const cliVersion = true ? "2.60.67" : "0.0.0-dev";
|
|
35262
35341
|
const apiBase2 = resolveApiBaseUrl();
|
|
35263
35342
|
const diagnosticId = (0, import_node_crypto12.randomUUID)();
|
|
35264
35343
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -35735,7 +35814,7 @@ async function mcpRun(args2) {
|
|
|
35735
35814
|
// src/commands/version.ts
|
|
35736
35815
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
35737
35816
|
function version2() {
|
|
35738
|
-
const v = true ? "2.60.
|
|
35817
|
+
const v = true ? "2.60.67" : "unknown";
|
|
35739
35818
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
35740
35819
|
}
|
|
35741
35820
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.60.
|
|
3
|
+
"version": "2.60.67",
|
|
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",
|