aicodeman 0.9.13 → 0.9.14
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/README.md +1 -0
- package/README.zh-CN.md +1 -0
- package/dist/config/hook-secret.d.ts +28 -0
- package/dist/config/hook-secret.d.ts.map +1 -0
- package/dist/config/hook-secret.js +63 -0
- package/dist/config/hook-secret.js.map +1 -0
- package/dist/hooks-config.d.ts +3 -2
- package/dist/hooks-config.d.ts.map +1 -1
- package/dist/hooks-config.js +10 -2
- package/dist/hooks-config.js.map +1 -1
- package/dist/session-cli-builder.d.ts.map +1 -1
- package/dist/session-cli-builder.js +5 -0
- package/dist/session-cli-builder.js.map +1 -1
- package/dist/session.d.ts +1 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +45 -0
- package/dist/session.js.map +1 -1
- package/dist/tmux-manager.d.ts.map +1 -1
- package/dist/tmux-manager.js +3 -0
- package/dist/tmux-manager.js.map +1 -1
- package/dist/web/middleware/auth.d.ts +9 -1
- package/dist/web/middleware/auth.d.ts.map +1 -1
- package/dist/web/middleware/auth.js +58 -8
- package/dist/web/middleware/auth.js.map +1 -1
- package/dist/web/network-auth-policy.d.ts +6 -0
- package/dist/web/network-auth-policy.d.ts.map +1 -1
- package/dist/web/network-auth-policy.js +10 -0
- package/dist/web/network-auth-policy.js.map +1 -1
- package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
- package/dist/web/public/app.a23f8bf6.js.gz +0 -0
- package/dist/web/public/constants.8fa1a65f.js.gz +0 -0
- package/dist/web/public/image-input.0ea86695.js.gz +0 -0
- package/dist/web/public/index.html +21 -16
- package/dist/web/public/index.html.br +0 -0
- package/dist/web/public/index.html.gz +0 -0
- package/dist/web/public/input-cjk.b8686b5e.js.gz +0 -0
- package/dist/web/public/keyboard-accessory.bc753cc7.js.gz +0 -0
- package/dist/web/public/mobile-handlers.763a7439.js.gz +0 -0
- package/dist/web/public/mobile.c7513aed.css +1 -0
- package/dist/web/public/mobile.c7513aed.css.br +0 -0
- package/dist/web/public/mobile.c7513aed.css.gz +0 -0
- package/dist/web/public/notification-manager.9c984ac2.js.gz +0 -0
- package/dist/web/public/orchestrator-panel.js.gz +0 -0
- package/dist/web/public/panels-ui.6bb3169f.js.gz +0 -0
- package/dist/web/public/ralph-panel.6de2d0f8.js.gz +0 -0
- package/dist/web/public/ralph-wizard.13a1831e.js.gz +0 -0
- package/dist/web/public/respawn-ui.2d249da9.js.gz +0 -0
- package/dist/web/public/session-ui.34f25fdf.js.gz +0 -0
- package/dist/web/public/{settings-ui.de9ba1ae.js → settings-ui.3a341938.js} +3 -3
- package/dist/web/public/settings-ui.3a341938.js.br +0 -0
- package/dist/web/public/settings-ui.3a341938.js.gz +0 -0
- package/dist/web/public/{styles.3db29e83.css → styles.c14ecd8a.css} +1 -1
- package/dist/web/public/styles.c14ecd8a.css.br +0 -0
- package/dist/web/public/{styles.3db29e83.css.gz → styles.c14ecd8a.css.gz} +0 -0
- package/dist/web/public/subagent-windows.a366a4ad.js.gz +0 -0
- package/dist/web/public/sw.js.gz +0 -0
- package/dist/web/public/terminal-ui.1f5b45cf.js +3 -0
- package/dist/web/public/terminal-ui.1f5b45cf.js.br +0 -0
- package/dist/web/public/terminal-ui.1f5b45cf.js.gz +0 -0
- package/dist/web/public/upload.html.gz +0 -0
- package/dist/web/public/vendor/marked.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.137ad9f0.js.gz +0 -0
- package/dist/web/public/vendor/xterm.css.gz +0 -0
- package/dist/web/public/vendor/xterm.min.js.gz +0 -0
- package/dist/web/public/voice-input.085e9e73.js.gz +0 -0
- package/dist/web/routes/session-routes.d.ts.map +1 -1
- package/dist/web/routes/session-routes.js +34 -1
- package/dist/web/routes/session-routes.js.map +1 -1
- package/dist/web/routes/system-routes.d.ts.map +1 -1
- package/dist/web/routes/system-routes.js +19 -0
- package/dist/web/routes/system-routes.js.map +1 -1
- package/dist/web/server.d.ts +1 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +11 -1
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
- package/dist/web/public/mobile.da662a7b.css +0 -1
- package/dist/web/public/mobile.da662a7b.css.br +0 -0
- package/dist/web/public/mobile.da662a7b.css.gz +0 -0
- package/dist/web/public/settings-ui.de9ba1ae.js.br +0 -0
- package/dist/web/public/settings-ui.de9ba1ae.js.gz +0 -0
- package/dist/web/public/styles.3db29e83.css.br +0 -0
- package/dist/web/public/terminal-ui.0e930cb3.js +0 -3
- package/dist/web/public/terminal-ui.0e930cb3.js.br +0 -0
- package/dist/web/public/terminal-ui.0e930cb3.js.gz +0 -0
package/README.md
CHANGED
|
@@ -214,6 +214,7 @@ WATCHING → IDLE DETECTED → SEND UPDATE → /clear → /init → CONTINUE →
|
|
|
214
214
|
```
|
|
215
215
|
|
|
216
216
|
- **Multi-layer idle detection** — completion messages, AI-powered idle check, output silence, token stability
|
|
217
|
+
- **Auto-resume on usage limit** *(opt-in, off by default)* — when Claude halts on a subscription limit ("You've hit your limit · resets 3pm"), Codeman parses the reset time, waits it out plus a 2-minute safety buffer, then dismisses the rate-limit dialog and sends `continue` — so an overnight run survives the 5-hour window instead of stalling until morning. Recognizes every Claude Code limit-message format, retries if still limited, survives Codeman restarts, and holds respawn cycles while paused so `/clear` can't wipe the waiting conversation. Enable per session at the top of the Respawn tab
|
|
217
218
|
- **Circuit breaker** — prevents respawn thrashing when Claude is stuck (CLOSED -> HALF_OPEN -> OPEN states, tracks consecutive no-progress and repeated errors)
|
|
218
219
|
- **Health scoring** — 0-100 health score with component scores for cycle success, circuit breaker state, iteration progress, and stuck recovery
|
|
219
220
|
- **Built-in presets** — `solo-work` (3s idle, 60min), `subagent-workflow` (45s, 240min), `team-lead` (90s, 480min), `ralph-todo` (8s, 480min), `overnight-autonomous` (10s, 480min)
|
package/README.zh-CN.md
CHANGED
|
@@ -216,6 +216,7 @@ WATCHING → IDLE DETECTED → SEND UPDATE → /clear → /init → CONTINUE →
|
|
|
216
216
|
```
|
|
217
217
|
|
|
218
218
|
- **多层空闲检测** —— 完成消息、AI 驱动的空闲检查、输出静默、token 稳定性
|
|
219
|
+
- **用量限额自动恢复**(*可选,默认关闭*)—— 当 Claude 因订阅用量限额而停止("You've hit your limit · resets 3pm")时,Codeman 会解析重置时间,等到限额刷新(外加 2 分钟安全缓冲)后自动关闭限额对话框并发送 `continue`,让通宵任务平稳跨过 5 小时窗口而不是停摆到早晨。可识别 Claude Code 各版本的全部限额消息格式;若仍受限会自动重试;计划在 Codeman 重启后依然生效;暂停期间会阻止重生循环,避免 `/clear` 清掉等待中的对话。在会话 Respawn 标签页顶部按会话启用
|
|
219
220
|
- **熔断器** —— 当 Claude 卡住时防止重生抖动(CLOSED → HALF_OPEN → OPEN 状态,跟踪连续无进展与重复错误)
|
|
220
221
|
- **健康评分** —— 0–100 健康分,分项涵盖循环成功率、熔断器状态、迭代进展与卡死恢复
|
|
221
222
|
- **内置预设** —— `solo-work`(3s 空闲,60min)、`subagent-workflow`(45s,240min)、`team-lead`(90s,480min)、`ralph-todo`(8s,480min)、`overnight-autonomous`(10s,480min)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Per-instance shared hook secret (COD-54).
|
|
3
|
+
*
|
|
4
|
+
* Claude Code hooks POST to `/api/hook-event` with no Basic-Auth credentials,
|
|
5
|
+
* relying on a localhost bypass in `web/middleware/auth.ts`. That bypass is safe
|
|
6
|
+
* for loopback-only deploys, but a `cloudflared --url http://127.0.0.1:port`
|
|
7
|
+
* tunnel proxies internet traffic INTO the loopback origin, so tunneled requests
|
|
8
|
+
* arrive with `req.ip === 127.0.0.1` and would otherwise pass the bypass and
|
|
9
|
+
* drive respawn/Ralph signals unauthenticated.
|
|
10
|
+
*
|
|
11
|
+
* To close that hole WITHOUT breaking the loop's own (credential-less) hook
|
|
12
|
+
* channel, every locally-generated hook command now presents a per-instance
|
|
13
|
+
* shared secret in the `X-Codeman-Hook-Secret` header. The middleware requires
|
|
14
|
+
* a matching secret for the bypass WHEN A TUNNEL IS RUNNING. Tunneled internet
|
|
15
|
+
* traffic can't know the secret; local hooks (which we generate) do.
|
|
16
|
+
*
|
|
17
|
+
* Storage mirrors the VAPID-key pattern in `push-store.ts`: a small file under
|
|
18
|
+
* the instance data dir (`dataPath('hook-secret')`), read-if-present /
|
|
19
|
+
* generate-if-missing, stable across restarts. 256 bits of hex.
|
|
20
|
+
*/
|
|
21
|
+
/** HTTP header local hooks use to present the shared secret. */
|
|
22
|
+
export declare const HOOK_SECRET_HEADER = "X-Codeman-Hook-Secret";
|
|
23
|
+
/**
|
|
24
|
+
* Return this instance's hook secret, generating and persisting it on first use.
|
|
25
|
+
* Stable across restarts. Cached in-process after the first read.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getHookSecret(): string;
|
|
28
|
+
//# sourceMappingURL=hook-secret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-secret.d.ts","sourceRoot":"","sources":["../../src/config/hook-secret.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,gEAAgE;AAChE,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAO1D;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CA6BtC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Per-instance shared hook secret (COD-54).
|
|
3
|
+
*
|
|
4
|
+
* Claude Code hooks POST to `/api/hook-event` with no Basic-Auth credentials,
|
|
5
|
+
* relying on a localhost bypass in `web/middleware/auth.ts`. That bypass is safe
|
|
6
|
+
* for loopback-only deploys, but a `cloudflared --url http://127.0.0.1:port`
|
|
7
|
+
* tunnel proxies internet traffic INTO the loopback origin, so tunneled requests
|
|
8
|
+
* arrive with `req.ip === 127.0.0.1` and would otherwise pass the bypass and
|
|
9
|
+
* drive respawn/Ralph signals unauthenticated.
|
|
10
|
+
*
|
|
11
|
+
* To close that hole WITHOUT breaking the loop's own (credential-less) hook
|
|
12
|
+
* channel, every locally-generated hook command now presents a per-instance
|
|
13
|
+
* shared secret in the `X-Codeman-Hook-Secret` header. The middleware requires
|
|
14
|
+
* a matching secret for the bypass WHEN A TUNNEL IS RUNNING. Tunneled internet
|
|
15
|
+
* traffic can't know the secret; local hooks (which we generate) do.
|
|
16
|
+
*
|
|
17
|
+
* Storage mirrors the VAPID-key pattern in `push-store.ts`: a small file under
|
|
18
|
+
* the instance data dir (`dataPath('hook-secret')`), read-if-present /
|
|
19
|
+
* generate-if-missing, stable across restarts. 256 bits of hex.
|
|
20
|
+
*/
|
|
21
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
22
|
+
import { randomBytes } from 'node:crypto';
|
|
23
|
+
import { getDataDir, dataPath } from './instance.js';
|
|
24
|
+
/** HTTP header local hooks use to present the shared secret. */
|
|
25
|
+
export const HOOK_SECRET_HEADER = 'X-Codeman-Hook-Secret';
|
|
26
|
+
/** Number of random bytes in the secret (256 bits → 64 hex chars). */
|
|
27
|
+
const SECRET_BYTES = 32;
|
|
28
|
+
let cachedSecret = null;
|
|
29
|
+
/**
|
|
30
|
+
* Return this instance's hook secret, generating and persisting it on first use.
|
|
31
|
+
* Stable across restarts. Cached in-process after the first read.
|
|
32
|
+
*/
|
|
33
|
+
export function getHookSecret() {
|
|
34
|
+
if (cachedSecret)
|
|
35
|
+
return cachedSecret;
|
|
36
|
+
const secretFile = dataPath('hook-secret');
|
|
37
|
+
if (existsSync(secretFile)) {
|
|
38
|
+
try {
|
|
39
|
+
const raw = readFileSync(secretFile, 'utf-8').trim();
|
|
40
|
+
if (raw) {
|
|
41
|
+
cachedSecret = raw;
|
|
42
|
+
return cachedSecret;
|
|
43
|
+
}
|
|
44
|
+
// Empty/whitespace file — fall through and regenerate.
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Unreadable — fall through and regenerate.
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const secret = randomBytes(SECRET_BYTES).toString('hex');
|
|
51
|
+
try {
|
|
52
|
+
mkdirSync(getDataDir(), { recursive: true });
|
|
53
|
+
// Owner-only perms — the secret gates the hook bypass.
|
|
54
|
+
writeFileSync(secretFile, secret, { mode: 0o600 });
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// Best-effort persistence: even if the write fails we still return a usable
|
|
58
|
+
// secret for this process so hooks/middleware agree within this run.
|
|
59
|
+
}
|
|
60
|
+
cachedSecret = secret;
|
|
61
|
+
return cachedSecret;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=hook-secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-secret.js","sourceRoot":"","sources":["../../src/config/hook-secret.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErD,gEAAgE;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAE1D,sEAAsE;AACtE,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,GAAG,EAAE,CAAC;gBACR,YAAY,GAAG,GAAG,CAAC;gBACnB,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,uDAAuD;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,uDAAuD;QACvD,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;QAC5E,qEAAqE;IACvE,CAAC;IACD,YAAY,GAAG,MAAM,CAAC;IACtB,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
package/dist/hooks-config.d.ts
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generates `.claude/settings.local.json` with hook definitions that POST
|
|
5
5
|
* to Codeman's `/api/hook-event` endpoint when Claude Code fires hooks.
|
|
6
|
-
* Uses `$CODEMAN_API_URL
|
|
7
|
-
* managed session) so the config is static per case
|
|
6
|
+
* Uses `$CODEMAN_API_URL`, `$CODEMAN_SESSION_ID`, and `$CODEMAN_HOOK_SECRET_FILE`
|
|
7
|
+
* env vars (set on every managed session) so the config is static per case
|
|
8
|
+
* directory and free of secret values.
|
|
8
9
|
*
|
|
9
10
|
* Key exports:
|
|
10
11
|
* - `generateHooksConfig()` — returns hooks object for settings.local.json
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-config.d.ts","sourceRoot":"","sources":["../src/hooks-config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hooks-config.d.ts","sourceRoot":"","sources":["../src/hooks-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AASH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAmD1E;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BvG;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BxG;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB3F;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBtE"}
|
package/dist/hooks-config.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generates `.claude/settings.local.json` with hook definitions that POST
|
|
5
5
|
* to Codeman's `/api/hook-event` endpoint when Claude Code fires hooks.
|
|
6
|
-
* Uses `$CODEMAN_API_URL
|
|
7
|
-
* managed session) so the config is static per case
|
|
6
|
+
* Uses `$CODEMAN_API_URL`, `$CODEMAN_SESSION_ID`, and `$CODEMAN_HOOK_SECRET_FILE`
|
|
7
|
+
* env vars (set on every managed session) so the config is static per case
|
|
8
|
+
* directory and free of secret values.
|
|
8
9
|
*
|
|
9
10
|
* Key exports:
|
|
10
11
|
* - `generateHooksConfig()` — returns hooks object for settings.local.json
|
|
@@ -37,10 +38,17 @@ import { HOOK_TIMEOUT_MS } from './config/auth-config.js';
|
|
|
37
38
|
export function generateHooksConfig() {
|
|
38
39
|
// Read Claude Code's stdin JSON and forward it as the data field.
|
|
39
40
|
// Falls back to empty object if stdin is unavailable or malformed.
|
|
41
|
+
// COD-54: present the per-instance hook secret so the bypass keeps working while
|
|
42
|
+
// a tunnel is running. The value is read from the secret file AT EXECUTION TIME
|
|
43
|
+
// (path via $CODEMAN_HOOK_SECRET_FILE, set in every managed session's env), so it
|
|
44
|
+
// never lands in this config and rotation needs no respawn. If the var/file is
|
|
45
|
+
// missing the header is empty — the middleware then allows the request only on
|
|
46
|
+
// the plain loopback bypass (tunnel down), same as pre-secret behavior.
|
|
40
47
|
const curlCmd = (event) => `HOOK_DATA=$(cat 2>/dev/null || echo '{}'); ` +
|
|
41
48
|
`printf '{"event":"${event}","sessionId":"%s","data":%s}' "$CODEMAN_SESSION_ID" "$HOOK_DATA" | ` +
|
|
42
49
|
`curl -s -X POST "$CODEMAN_API_URL/api/hook-event" ` +
|
|
43
50
|
`-H 'Content-Type: application/json' ` +
|
|
51
|
+
`-H "X-Codeman-Hook-Secret: $(cat "$CODEMAN_HOOK_SECRET_FILE" 2>/dev/null)" ` +
|
|
44
52
|
`--data @- ` +
|
|
45
53
|
`2>/dev/null || true`;
|
|
46
54
|
return {
|
package/dist/hooks-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-config.js","sourceRoot":"","sources":["../src/hooks-config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hooks-config.js","sourceRoot":"","sources":["../src/hooks-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-cli-builder.d.ts","sourceRoot":"","sources":["../src/session-cli-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"session-cli-builder.d.ts","sourceRoot":"","sources":["../src/session-cli-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAyB1D;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,CAGjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,WAAW,GACnB,MAAM,EAAE,CAKV;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAOxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAgBpF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAStE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAYnF"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { isEffortLevel } from './types.js';
|
|
11
11
|
import { getAugmentedPath } from './utils/index.js';
|
|
12
|
+
import { dataPath } from './config/instance.js';
|
|
12
13
|
/**
|
|
13
14
|
* Build Claude CLI permission flags based on the configured mode.
|
|
14
15
|
* Returns an array of args to pass to the CLI.
|
|
@@ -102,6 +103,8 @@ export function buildClaudeEnv(sessionId) {
|
|
|
102
103
|
CODEMAN_MUX: '1',
|
|
103
104
|
CODEMAN_SESSION_ID: sessionId,
|
|
104
105
|
CODEMAN_API_URL: process.env.CODEMAN_API_URL || 'http://localhost:3000',
|
|
106
|
+
// Path only (not the secret value) — hook curls cat it at execution time (COD-54)
|
|
107
|
+
CODEMAN_HOOK_SECRET_FILE: dataPath('hook-secret'),
|
|
105
108
|
};
|
|
106
109
|
}
|
|
107
110
|
/**
|
|
@@ -136,6 +139,8 @@ export function buildShellEnv(sessionId) {
|
|
|
136
139
|
CODEMAN_MUX: '1',
|
|
137
140
|
CODEMAN_SESSION_ID: sessionId,
|
|
138
141
|
CODEMAN_API_URL: process.env.CODEMAN_API_URL || 'http://localhost:3000',
|
|
142
|
+
// Path only (not the secret value) — hook curls cat it at execution time (COD-54)
|
|
143
|
+
CODEMAN_HOOK_SECRET_FILE: dataPath('hook-secret'),
|
|
139
144
|
};
|
|
140
145
|
}
|
|
141
146
|
//# sourceMappingURL=session-cli-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-cli-builder.js","sourceRoot":"","sources":["../src/session-cli-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-cli-builder.js","sourceRoot":"","sources":["../src/session-cli-builder.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts
CHANGED
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/session.js
CHANGED
|
@@ -167,6 +167,9 @@ export class Session extends EventEmitter {
|
|
|
167
167
|
_messages = [];
|
|
168
168
|
_lineBuffer = '';
|
|
169
169
|
_lineBufferFlushTimer = null;
|
|
170
|
+
// Codex only: trailing partial CSI held back so sequences split across PTY
|
|
171
|
+
// chunks can't slip past the alt-screen/scrollback strip (see _handleTerminalOutput)
|
|
172
|
+
_codexSeqCarry = '';
|
|
170
173
|
resolvePromise = null;
|
|
171
174
|
rejectPromise = null;
|
|
172
175
|
_promptResolved = false; // Guard against race conditions in runPrompt
|
|
@@ -842,6 +845,47 @@ export class Session extends EventEmitter {
|
|
|
842
845
|
return { isRestored };
|
|
843
846
|
}
|
|
844
847
|
_handleTerminalOutput(data) {
|
|
848
|
+
// Codex emits sequences that wipe xterm.js scrollback, plus mouse-tracking
|
|
849
|
+
// enables that hijack the scroll wheel so the user can't reach scrollback:
|
|
850
|
+
// - \x1b[?1049h / \x1b[?47h / \x1b[?1047h: switch to the alt buffer (no
|
|
851
|
+
// scrollback) — \x1b[?...l switches back.
|
|
852
|
+
// - \x1b[3J: erase saved lines (scrollback). (\x1b[2J / \x1b[J — erase
|
|
853
|
+
// the visible viewport — are left intact; the TUI repaints those rows.)
|
|
854
|
+
// - \x1b[?1000h / 1002h / 1003h / 1005h / 1006h / 1007h: mouse-tracking
|
|
855
|
+
// modes (X10, button-event, any-event, UTF-8, SGR, alt-scroll). Once on,
|
|
856
|
+
// xterm.js forwards wheel events to codex instead of scrolling the
|
|
857
|
+
// viewport, so the conversation is in scrollback but unreachable.
|
|
858
|
+
// (Focus events at ?1004 are left alone — codeman uses them for
|
|
859
|
+
// active-tab detection.)
|
|
860
|
+
// Strip them at the source so neither the persisted buffer nor the live
|
|
861
|
+
// SSE/WS stream carries them, keeping everything in the main buffer with
|
|
862
|
+
// scrollback intact. Codex's cursor-positioned redraws overwrite only the
|
|
863
|
+
// cells they actually target, so the non-erased rows keep their content.
|
|
864
|
+
if (this.mode === 'codex') {
|
|
865
|
+
// Reassemble sequences split across PTY chunk boundaries first: a chunk
|
|
866
|
+
// ending mid-sequence ('\x1b[?104' now, '9h' next) would slip past the
|
|
867
|
+
// strip below and leave xterm stuck in the scrollback-less alt buffer
|
|
868
|
+
// until the next buffer replay. Hold back an incomplete digit-only CSI
|
|
869
|
+
// tail (≤7 chars — the longest strippable intro is '\x1b[?1049') and
|
|
870
|
+
// prepend it to the next chunk; complete sequences are never held.
|
|
871
|
+
data = this._codexSeqCarry + data;
|
|
872
|
+
this._codexSeqCarry = '';
|
|
873
|
+
// eslint-disable-next-line no-control-regex
|
|
874
|
+
const splitTail = data.match(/\x1b(?:\[\??[0-9]{0,4})?$/);
|
|
875
|
+
if (splitTail) {
|
|
876
|
+
this._codexSeqCarry = splitTail[0];
|
|
877
|
+
data = data.slice(0, -splitTail[0].length);
|
|
878
|
+
if (!data)
|
|
879
|
+
return;
|
|
880
|
+
}
|
|
881
|
+
data = data
|
|
882
|
+
// eslint-disable-next-line no-control-regex
|
|
883
|
+
.replace(/\x1b\[\?(?:47|1047|1049)[hl]/g, '')
|
|
884
|
+
// eslint-disable-next-line no-control-regex
|
|
885
|
+
.replace(/\x1b\[3J/g, '')
|
|
886
|
+
// eslint-disable-next-line no-control-regex
|
|
887
|
+
.replace(/\x1b\[\?(?:1000|1001|1002|1003|1005|1006|1007)[hl]/g, '');
|
|
888
|
+
}
|
|
845
889
|
// BufferAccumulator handles auto-trimming when max size exceeded
|
|
846
890
|
this._terminalBuffer.append(data);
|
|
847
891
|
this._lastActivityAt = Date.now();
|
|
@@ -1410,6 +1454,7 @@ export class Session extends EventEmitter {
|
|
|
1410
1454
|
this._errorBuffer = '';
|
|
1411
1455
|
this._messages = [];
|
|
1412
1456
|
this._lineBuffer = '';
|
|
1457
|
+
this._codexSeqCarry = '';
|
|
1413
1458
|
this._lastActivityAt = Date.now();
|
|
1414
1459
|
}
|
|
1415
1460
|
_clearAllTimers() {
|