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 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.65" : "0.0.0-dev",
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.65",
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.65" ? { ideVersion: "2.60.65" } : {}
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.65" : null;
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.65" : null;
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.65" : null;
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.65" : "0.0.0-dev";
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.65" : "unknown";
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.65",
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",