codeam-cli 2.68.0 → 2.69.0
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 +6 -0
- package/dist/index.js +51 -9
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ 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.68.0] — 2026-08-29
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **cli:** Inspector de preview — proxy inyector, script y E2E en navegador (#665)
|
|
12
|
+
|
|
7
13
|
## [2.67.6] — 2026-08-27
|
|
8
14
|
|
|
9
15
|
### Fixed
|
package/dist/index.js
CHANGED
|
@@ -8081,7 +8081,7 @@ function readAnonId() {
|
|
|
8081
8081
|
}
|
|
8082
8082
|
function superProperties() {
|
|
8083
8083
|
return {
|
|
8084
|
-
cliVersion: true ? "2.
|
|
8084
|
+
cliVersion: true ? "2.69.0" : "0.0.0-dev",
|
|
8085
8085
|
nodeVersion: process.version,
|
|
8086
8086
|
platform: process.platform,
|
|
8087
8087
|
arch: process.arch,
|
|
@@ -8323,7 +8323,7 @@ var http = __toESM(require("http"));
|
|
|
8323
8323
|
// package.json
|
|
8324
8324
|
var package_default = {
|
|
8325
8325
|
name: "codeam-cli",
|
|
8326
|
-
version: "2.
|
|
8326
|
+
version: "2.69.0",
|
|
8327
8327
|
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.",
|
|
8328
8328
|
type: "commonjs",
|
|
8329
8329
|
main: "dist/index.js",
|
|
@@ -9859,7 +9859,7 @@ var CommandRelayService = class _CommandRelayService {
|
|
|
9859
9859
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
9860
9860
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
9861
9861
|
// pair/reconnect). Older backends ignore the extra field.
|
|
9862
|
-
..."2.
|
|
9862
|
+
..."2.69.0" ? { ideVersion: "2.69.0" } : {}
|
|
9863
9863
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
9864
9864
|
}
|
|
9865
9865
|
/**
|
|
@@ -22118,7 +22118,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
22118
22118
|
if (process.env.NODE_ENV === "test") return;
|
|
22119
22119
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
22120
22120
|
if (process.env.CI) return;
|
|
22121
|
-
const current2 = true ? "2.
|
|
22121
|
+
const current2 = true ? "2.69.0" : null;
|
|
22122
22122
|
if (!current2) return;
|
|
22123
22123
|
const cache = readCache();
|
|
22124
22124
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -22135,7 +22135,7 @@ function checkForUpdates() {
|
|
|
22135
22135
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
22136
22136
|
if (process.env.CI) return;
|
|
22137
22137
|
if (!process.stdout.isTTY) return;
|
|
22138
|
-
const current2 = true ? "2.
|
|
22138
|
+
const current2 = true ? "2.69.0" : null;
|
|
22139
22139
|
if (!current2) return;
|
|
22140
22140
|
const cache = readCache();
|
|
22141
22141
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -22158,7 +22158,7 @@ var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
|
22158
22158
|
var SELF_UPDATE_LS_TIMEOUT_MS = 15e3;
|
|
22159
22159
|
var SUDO_PREFLIGHT_TIMEOUT_MS = 5e3;
|
|
22160
22160
|
function currentCliVersion() {
|
|
22161
|
-
return true ? "2.
|
|
22161
|
+
return true ? "2.69.0" : null;
|
|
22162
22162
|
}
|
|
22163
22163
|
async function installedVersion(deps) {
|
|
22164
22164
|
const ls = await deps.run(
|
|
@@ -25453,10 +25453,33 @@ function inspectorClientSource(opts) {
|
|
|
25453
25453
|
return ALLOWED.indexOf(origin) !== -1;
|
|
25454
25454
|
}
|
|
25455
25455
|
|
|
25456
|
+
// \xBFEstamos dentro del WebView de la app movil?
|
|
25457
|
+
//
|
|
25458
|
+
// \u26A0\uFE0F En un WebView el documento es de NIVEL SUPERIOR, asi que
|
|
25459
|
+
// \`window.parent === window\` y la via del iframe no existe: el script
|
|
25460
|
+
// hablaba solo, y en movil el inspector no devolvia nada. React Native
|
|
25461
|
+
// expone su propio canal, que es el unico que sale de ahi.
|
|
25462
|
+
function rnBridge() {
|
|
25463
|
+
return typeof window.ReactNativeWebView !== 'undefined' &&
|
|
25464
|
+
window.ReactNativeWebView &&
|
|
25465
|
+
typeof window.ReactNativeWebView.postMessage === 'function'
|
|
25466
|
+
? window.ReactNativeWebView
|
|
25467
|
+
: null;
|
|
25468
|
+
}
|
|
25469
|
+
|
|
25456
25470
|
function send(type, payload) {
|
|
25457
|
-
if (!driver
|
|
25471
|
+
if (!driver) return;
|
|
25458
25472
|
var msg = { source: CHANNEL, type: type };
|
|
25459
25473
|
for (var k in payload) if (Object.prototype.hasOwnProperty.call(payload, k)) msg[k] = payload[k];
|
|
25474
|
+
|
|
25475
|
+
var rn = rnBridge();
|
|
25476
|
+
if (rn) {
|
|
25477
|
+
// El canal de RN transporta CADENAS, no objetos: pasarle el objeto
|
|
25478
|
+
// llega al otro lado como "[object Object]".
|
|
25479
|
+
rn.postMessage(JSON.stringify(msg));
|
|
25480
|
+
return;
|
|
25481
|
+
}
|
|
25482
|
+
if (window.parent === window) return;
|
|
25460
25483
|
window.parent.postMessage(msg, driver);
|
|
25461
25484
|
}
|
|
25462
25485
|
|
|
@@ -25603,6 +25626,25 @@ function inspectorClientSource(opts) {
|
|
|
25603
25626
|
if (data.type === 'enable') enable(e.origin);
|
|
25604
25627
|
else if (data.type === 'disable') disable();
|
|
25605
25628
|
});
|
|
25629
|
+
|
|
25630
|
+
/**
|
|
25631
|
+
* La puerta para React Native, que no puede usar \`postMessage\`.
|
|
25632
|
+
*
|
|
25633
|
+
* \u26A0\uFE0F Aqui NO hay lista blanca de origenes, y no es un descuido: quien
|
|
25634
|
+
* llama esto es la app anfitriona sobre SU PROPIO WebView, via
|
|
25635
|
+
* \`injectJavaScript\` \u2014 no hay un tercero al que filtrar. La lista blanca
|
|
25636
|
+
* protege el caso del iframe, donde cualquier pagina puede embeber el
|
|
25637
|
+
* preview y mandar mensajes; ese caso sigue exactamente igual de cerrado.
|
|
25638
|
+
*
|
|
25639
|
+
* Solo se expone donde ese puente existe, para no dejar en una pagina
|
|
25640
|
+
* normal una funcion global que encienda el inspector sin permiso.
|
|
25641
|
+
*/
|
|
25642
|
+
if (rnBridge()) {
|
|
25643
|
+
window.__codeamInspector = {
|
|
25644
|
+
enable: function () { enable('react-native'); },
|
|
25645
|
+
disable: disable,
|
|
25646
|
+
};
|
|
25647
|
+
}
|
|
25606
25648
|
} catch (e) {
|
|
25607
25649
|
// Pase lo que pase, la app del usuario sigue funcionando.
|
|
25608
25650
|
}
|
|
@@ -46333,7 +46375,7 @@ function checkChokidar() {
|
|
|
46333
46375
|
}
|
|
46334
46376
|
async function doctor(args2 = []) {
|
|
46335
46377
|
const json = args2.includes("--json");
|
|
46336
|
-
const cliVersion = true ? "2.
|
|
46378
|
+
const cliVersion = true ? "2.69.0" : "0.0.0-dev";
|
|
46337
46379
|
const apiBase2 = resolveApiBaseUrl();
|
|
46338
46380
|
const diagnosticId = (0, import_node_crypto13.randomUUID)();
|
|
46339
46381
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -46724,7 +46766,7 @@ async function mcpRun(args2) {
|
|
|
46724
46766
|
// src/commands/version.ts
|
|
46725
46767
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
46726
46768
|
function version2() {
|
|
46727
|
-
const v = true ? "2.
|
|
46769
|
+
const v = true ? "2.69.0" : "unknown";
|
|
46728
46770
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
46729
46771
|
}
|
|
46730
46772
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.69.0",
|
|
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",
|