codeam-cli 2.26.10 → 2.26.11
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 +28 -5
- package/dist/postinstall.js +33 -0
- 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.26.10] — 2026-06-03
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Cloudflared DNS probe is best-effort, no longer fails the preview (#243)
|
|
12
|
+
|
|
7
13
|
## [2.26.9] — 2026-06-03
|
|
8
14
|
|
|
9
15
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -472,7 +472,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
|
|
|
472
472
|
// package.json
|
|
473
473
|
var package_default = {
|
|
474
474
|
name: "codeam-cli",
|
|
475
|
-
version: "2.26.
|
|
475
|
+
version: "2.26.11",
|
|
476
476
|
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.",
|
|
477
477
|
type: "commonjs",
|
|
478
478
|
main: "dist/index.js",
|
|
@@ -5829,7 +5829,7 @@ function readAnonId() {
|
|
|
5829
5829
|
}
|
|
5830
5830
|
function superProperties() {
|
|
5831
5831
|
return {
|
|
5832
|
-
cliVersion: true ? "2.26.
|
|
5832
|
+
cliVersion: true ? "2.26.11" : "0.0.0-dev",
|
|
5833
5833
|
nodeVersion: process.version,
|
|
5834
5834
|
platform: process.platform,
|
|
5835
5835
|
arch: process.arch,
|
|
@@ -16899,6 +16899,15 @@ var previewStartH = (ctx, _cmd, parsed) => {
|
|
|
16899
16899
|
return;
|
|
16900
16900
|
}
|
|
16901
16901
|
const pluginAuthToken = ctx.pluginAuthToken;
|
|
16902
|
+
const emitProgress = (step, message) => {
|
|
16903
|
+
void postPreviewEvent({
|
|
16904
|
+
sessionId: ctx.sessionId,
|
|
16905
|
+
pluginId: ctx.pluginId,
|
|
16906
|
+
pluginAuthToken,
|
|
16907
|
+
type: "preview_progress",
|
|
16908
|
+
payload: { step, message, timestamp: Date.now() }
|
|
16909
|
+
});
|
|
16910
|
+
};
|
|
16902
16911
|
void (async () => {
|
|
16903
16912
|
void postPreviewEvent({
|
|
16904
16913
|
sessionId: ctx.sessionId,
|
|
@@ -16907,7 +16916,9 @@ var previewStartH = (ctx, _cmd, parsed) => {
|
|
|
16907
16916
|
type: "preview_starting",
|
|
16908
16917
|
payload: { framework: detection.framework, port: detection.port }
|
|
16909
16918
|
});
|
|
16919
|
+
emitProgress("ENV_DETECTED", `${detection.framework}`);
|
|
16910
16920
|
for (const setup of detection.setup_commands ?? []) {
|
|
16921
|
+
emitProgress("SETUP_RUN", `${setup.cmd} ${setup.args.join(" ")}`);
|
|
16911
16922
|
const exitCode = await runOnce(setup.cmd, setup.args, process.cwd(), detection.env);
|
|
16912
16923
|
if (exitCode !== 0) {
|
|
16913
16924
|
void postPreviewEvent({
|
|
@@ -16923,11 +16934,17 @@ var previewStartH = (ctx, _cmd, parsed) => {
|
|
|
16923
16934
|
return;
|
|
16924
16935
|
}
|
|
16925
16936
|
}
|
|
16937
|
+
emitProgress(
|
|
16938
|
+
"BOOT_SEQUENCE",
|
|
16939
|
+
`${detection.command} ${detection.args.join(" ")}`
|
|
16940
|
+
);
|
|
16926
16941
|
const devServer = (0, import_child_process15.spawn)(detection.command, detection.args, {
|
|
16927
16942
|
cwd: process.cwd(),
|
|
16928
16943
|
env: { ...process.env, ...detection.env ?? {} },
|
|
16929
16944
|
stdio: ["ignore", "pipe", "pipe"]
|
|
16930
16945
|
});
|
|
16946
|
+
emitProgress("BIND_PORT", String(detection.port));
|
|
16947
|
+
emitProgress("WAITING_FOR_READY", detection.ready_pattern);
|
|
16931
16948
|
let readyMatched = false;
|
|
16932
16949
|
let expoUrl = null;
|
|
16933
16950
|
const readyRe = new RegExp(detection.ready_pattern);
|
|
@@ -16969,6 +16986,11 @@ var previewStartH = (ctx, _cmd, parsed) => {
|
|
|
16969
16986
|
});
|
|
16970
16987
|
return;
|
|
16971
16988
|
}
|
|
16989
|
+
emitProgress("READY_DETECTED", `port ${detection.port}`);
|
|
16990
|
+
emitProgress(
|
|
16991
|
+
"TUNNEL_STARTING",
|
|
16992
|
+
detection.framework === "Expo" ? "Expo (self-tunnelled)" : isCodespaceSession() ? "GitHub Codespaces public port" : "cloudflared quick tunnel"
|
|
16993
|
+
);
|
|
16972
16994
|
let tunnel = null;
|
|
16973
16995
|
let url;
|
|
16974
16996
|
if (detection.framework === "Expo") {
|
|
@@ -17083,6 +17105,7 @@ var previewStartH = (ctx, _cmd, parsed) => {
|
|
|
17083
17105
|
void waitForCloudflaredReady(parsedUrl, 3e4).then(() => log.info("preview", `cloudflared probe: ${parsedUrl} reachable from CLI host`)).catch((e) => log.info("preview", `cloudflared probe: ${String(e.message)} (non-fatal)`));
|
|
17084
17106
|
url = parsedUrl;
|
|
17085
17107
|
}
|
|
17108
|
+
emitProgress("TUNNEL_READY", url);
|
|
17086
17109
|
registerPreview(ctx.sessionId, {
|
|
17087
17110
|
sessionId: ctx.sessionId,
|
|
17088
17111
|
devServer,
|
|
@@ -20137,7 +20160,7 @@ function checkChokidar() {
|
|
|
20137
20160
|
}
|
|
20138
20161
|
async function doctor(args2 = []) {
|
|
20139
20162
|
const json = args2.includes("--json");
|
|
20140
|
-
const cliVersion = true ? "2.26.
|
|
20163
|
+
const cliVersion = true ? "2.26.11" : "0.0.0-dev";
|
|
20141
20164
|
const apiBase = resolveApiBaseUrl();
|
|
20142
20165
|
const diagnosticId = (0, import_node_crypto6.randomUUID)();
|
|
20143
20166
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -20336,7 +20359,7 @@ async function completion(args2) {
|
|
|
20336
20359
|
// src/commands/version.ts
|
|
20337
20360
|
var import_picocolors13 = __toESM(require("picocolors"));
|
|
20338
20361
|
function version2() {
|
|
20339
|
-
const v = true ? "2.26.
|
|
20362
|
+
const v = true ? "2.26.11" : "unknown";
|
|
20340
20363
|
console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
|
|
20341
20364
|
}
|
|
20342
20365
|
|
|
@@ -20564,7 +20587,7 @@ function checkForUpdates() {
|
|
|
20564
20587
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
20565
20588
|
if (process.env.CI) return;
|
|
20566
20589
|
if (!process.stdout.isTTY) return;
|
|
20567
|
-
const current = true ? "2.26.
|
|
20590
|
+
const current = true ? "2.26.11" : null;
|
|
20568
20591
|
if (!current) return;
|
|
20569
20592
|
const cache = readCache();
|
|
20570
20593
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
// src/postinstall.ts
|
|
5
|
+
var c = {
|
|
6
|
+
reset: "\x1B[0m",
|
|
7
|
+
bold: "\x1B[1m",
|
|
8
|
+
dim: "\x1B[2m",
|
|
9
|
+
green: "\x1B[32m",
|
|
10
|
+
cyan: "\x1B[36m",
|
|
11
|
+
violet: "\x1B[35m",
|
|
12
|
+
white: "\x1B[97m"
|
|
13
|
+
};
|
|
14
|
+
var lines = [
|
|
15
|
+
"",
|
|
16
|
+
` ${c.violet}${c.bold}codeam-cli${c.reset} ${c.dim}\u2014 Claude Code remote control${c.reset}`,
|
|
17
|
+
"",
|
|
18
|
+
` ${c.dim}1.${c.reset} Pair your phone:`,
|
|
19
|
+
` ${c.cyan}codeam pair${c.reset}`,
|
|
20
|
+
"",
|
|
21
|
+
` ${c.dim}2.${c.reset} Launch Claude Code with mobile control:`,
|
|
22
|
+
` ${c.cyan}codeam${c.reset}`,
|
|
23
|
+
"",
|
|
24
|
+
` ${c.dim}Other commands:${c.reset}`,
|
|
25
|
+
` ${c.white}codeam sessions${c.reset} ${c.dim}list paired devices${c.reset}`,
|
|
26
|
+
` ${c.white}codeam status${c.reset} ${c.dim}show connection info${c.reset}`,
|
|
27
|
+
` ${c.white}codeam logout${c.reset} ${c.dim}remove all sessions${c.reset}`,
|
|
28
|
+
"",
|
|
29
|
+
` ${c.dim}Requires Claude Code:${c.reset} ${c.green}npm install -g @anthropic-ai/claude-code${c.reset}`,
|
|
30
|
+
` ${c.dim}Mobile app:${c.reset} ${c.green}https://www.codeagent-mobile.com${c.reset}`,
|
|
31
|
+
""
|
|
32
|
+
];
|
|
33
|
+
process.stdout.write(lines.join("\n") + "\n");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.26.
|
|
3
|
+
"version": "2.26.11",
|
|
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",
|