aicodeman 0.9.11 → 0.9.13
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 +6 -6
- package/README.zh-CN.md +6 -6
- package/dist/respawn-controller.d.ts.map +1 -1
- package/dist/respawn-controller.js +12 -0
- package/dist/respawn-controller.js.map +1 -1
- package/dist/session-auto-ops.d.ts +43 -1
- package/dist/session-auto-ops.d.ts.map +1 -1
- package/dist/session-auto-ops.js +162 -1
- package/dist/session-auto-ops.js.map +1 -1
- package/dist/session.d.ts +40 -4
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +84 -5
- package/dist/session.js.map +1 -1
- package/dist/types/session.d.ts +4 -0
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js.map +1 -1
- package/dist/usage-limit-patterns.d.ts +48 -0
- package/dist/usage-limit-patterns.d.ts.map +1 -0
- package/dist/usage-limit-patterns.js +184 -0
- package/dist/usage-limit-patterns.js.map +1 -0
- package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
- package/dist/web/public/app.a23f8bf6.js +35 -0
- package/dist/web/public/app.a23f8bf6.js.br +0 -0
- package/dist/web/public/app.a23f8bf6.js.gz +0 -0
- package/dist/web/public/{constants.74211deb.js → constants.8fa1a65f.js} +4 -0
- package/dist/web/public/constants.8fa1a65f.js.br +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 +25 -25
- 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.d54d97d6.js → mobile-handlers.763a7439.js} +10 -2
- package/dist/web/public/mobile-handlers.763a7439.js.br +0 -0
- package/dist/web/public/mobile-handlers.763a7439.js.gz +0 -0
- package/dist/web/public/mobile.da662a7b.css +1 -0
- package/dist/web/public/mobile.da662a7b.css.br +0 -0
- package/dist/web/public/mobile.da662a7b.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.512816d8.js → session-ui.34f25fdf.js} +1 -1
- package/dist/web/public/session-ui.34f25fdf.js.br +0 -0
- package/dist/web/public/session-ui.34f25fdf.js.gz +0 -0
- package/dist/web/public/{settings-ui.21b009ca.js → settings-ui.de9ba1ae.js} +8 -8
- 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 +1 -0
- package/dist/web/public/styles.3db29e83.css.br +0 -0
- package/dist/web/public/styles.3db29e83.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.0e930cb3.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 +18 -1
- package/dist/web/routes/session-routes.js.map +1 -1
- package/dist/web/routes/ws-routes.d.ts.map +1 -1
- package/dist/web/routes/ws-routes.js +7 -0
- package/dist/web/routes/ws-routes.js.map +1 -1
- package/dist/web/schemas.d.ts +4 -0
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +4 -0
- package/dist/web/schemas.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +6 -0
- package/dist/web/server.js.map +1 -1
- package/dist/web/session-listener-wiring.d.ts +11 -0
- package/dist/web/session-listener-wiring.d.ts.map +1 -1
- package/dist/web/session-listener-wiring.js +25 -0
- package/dist/web/session-listener-wiring.js.map +1 -1
- package/dist/web/sse-events.d.ts +9 -0
- package/dist/web/sse-events.d.ts.map +1 -1
- package/dist/web/sse-events.js +9 -0
- package/dist/web/sse-events.js.map +1 -1
- package/package.json +1 -1
- package/dist/web/public/app.a8663e79.js +0 -35
- package/dist/web/public/app.a8663e79.js.br +0 -0
- package/dist/web/public/app.a8663e79.js.gz +0 -0
- package/dist/web/public/constants.74211deb.js.br +0 -0
- package/dist/web/public/constants.74211deb.js.gz +0 -0
- package/dist/web/public/mobile-handlers.d54d97d6.js.br +0 -0
- package/dist/web/public/mobile-handlers.d54d97d6.js.gz +0 -0
- package/dist/web/public/mobile.959f6fe2.css +0 -1
- package/dist/web/public/mobile.959f6fe2.css.br +0 -0
- package/dist/web/public/mobile.959f6fe2.css.gz +0 -0
- package/dist/web/public/session-ui.512816d8.js.br +0 -0
- package/dist/web/public/session-ui.512816d8.js.gz +0 -0
- package/dist/web/public/settings-ui.21b009ca.js.br +0 -0
- package/dist/web/public/settings-ui.21b009ca.js.gz +0 -0
- package/dist/web/public/styles.f3a0faa3.css +0 -1
- package/dist/web/public/styles.f3a0faa3.css.br +0 -0
- package/dist/web/public/styles.f3a0faa3.css.gz +0 -0
package/dist/session-auto-ops.js
CHANGED
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Auto-compact and auto-
|
|
2
|
+
* @fileoverview Auto-compact, auto-clear, and auto-resume automation for Session.
|
|
3
3
|
*
|
|
4
4
|
* Monitors token counts and triggers /compact or /clear commands when
|
|
5
5
|
* configurable thresholds are reached. Waits for Claude to be idle
|
|
6
6
|
* before sending commands, with retry logic and mutual exclusion
|
|
7
7
|
* (compact and clear never run simultaneously).
|
|
8
8
|
*
|
|
9
|
+
* Also implements auto-resume on usage limit ("token pause" control):
|
|
10
|
+
* when enabled and Claude stops on a usage-limit message ("5-hour limit
|
|
11
|
+
* reached ∙ resets 8pm" and friends — see usage-limit-patterns.ts), a timer
|
|
12
|
+
* is armed for the parsed reset time plus a safety buffer, then Escape
|
|
13
|
+
* (dismisses the rate-limit options dialog if open) and a "continue" prompt
|
|
14
|
+
* are sent so work resumes automatically. If the session is still limited,
|
|
15
|
+
* the fresh limit message re-arms the scheduler — that retry loop is the
|
|
16
|
+
* safety net for clock skew and parse imprecision.
|
|
17
|
+
*
|
|
9
18
|
* @module session-auto-ops
|
|
10
19
|
*/
|
|
11
20
|
import { EventEmitter } from 'node:events';
|
|
21
|
+
import { detectUsageLimitPause } from './usage-limit-patterns.js';
|
|
12
22
|
// ============================================================================
|
|
13
23
|
// Timing Constants
|
|
14
24
|
// ============================================================================
|
|
@@ -56,6 +66,21 @@ async function executeWhenIdle(action, isActive, isWorking, isStopped, retryMs,
|
|
|
56
66
|
}
|
|
57
67
|
}
|
|
58
68
|
}
|
|
69
|
+
// ============================================================================
|
|
70
|
+
// Auto-resume (usage-limit pause) constants
|
|
71
|
+
// ============================================================================
|
|
72
|
+
/** Safety buffer after the stated reset time before resuming (2 minutes) */
|
|
73
|
+
const RESUME_BUFFER_MS = 2 * 60_000;
|
|
74
|
+
/** Minimum delay before an overdue resume fires (lets output settle) */
|
|
75
|
+
const RESUME_MIN_DELAY_MS = 5_000;
|
|
76
|
+
/** Retry interval when the reset time is stale/past (5 minutes) */
|
|
77
|
+
const RESUME_RETRY_MS = 5 * 60_000;
|
|
78
|
+
/** Re-detections scheduling within this window of the current schedule are ignored */
|
|
79
|
+
const RESUME_DEDUP_TOLERANCE_MS = 90_000;
|
|
80
|
+
/** Delay between Escape (dialog dismiss) and the resume prompt */
|
|
81
|
+
const RESUME_ESC_DELAY_MS = 600;
|
|
82
|
+
/** Prompt sent to resume work after the limit resets */
|
|
83
|
+
const RESUME_PROMPT = 'continue';
|
|
59
84
|
/** Minimum valid threshold for auto-clear/compact (1000 tokens) */
|
|
60
85
|
const MIN_AUTO_THRESHOLD = 1000;
|
|
61
86
|
/** Maximum valid threshold for auto-clear/compact (500k tokens) */
|
|
@@ -86,6 +111,15 @@ export class SessionAutoOps extends EventEmitter {
|
|
|
86
111
|
_autoClearEnabled = false;
|
|
87
112
|
_isClearing = false;
|
|
88
113
|
_autoClearTimer = null;
|
|
114
|
+
// Auto-resume (usage-limit pause) state
|
|
115
|
+
_autoResumeEnabled = false;
|
|
116
|
+
_autoResumeTimer = null;
|
|
117
|
+
/** Esc→continue gap timer; detections must NOT cancel a resume in flight */
|
|
118
|
+
_resumeFollowupTimer = null;
|
|
119
|
+
/** When the scheduled resume fires (epoch ms), null when not armed */
|
|
120
|
+
_autoResumeAt = null;
|
|
121
|
+
_limitPaused = false;
|
|
122
|
+
_resumeAttempts = 0;
|
|
89
123
|
callbacks;
|
|
90
124
|
constructor(callbacks, config) {
|
|
91
125
|
super();
|
|
@@ -148,6 +182,132 @@ export class SessionAutoOps extends EventEmitter {
|
|
|
148
182
|
}
|
|
149
183
|
}
|
|
150
184
|
// ============================================================================
|
|
185
|
+
// Auto-resume (usage-limit pause) — getters/setters
|
|
186
|
+
// ============================================================================
|
|
187
|
+
get autoResumeEnabled() {
|
|
188
|
+
return this._autoResumeEnabled;
|
|
189
|
+
}
|
|
190
|
+
/** When the scheduled resume fires (epoch ms), or null when not armed. */
|
|
191
|
+
get autoResumeAt() {
|
|
192
|
+
return this._autoResumeAt;
|
|
193
|
+
}
|
|
194
|
+
/** True while the session is believed to be paused on a usage limit. */
|
|
195
|
+
get isLimitPaused() {
|
|
196
|
+
return this._limitPaused;
|
|
197
|
+
}
|
|
198
|
+
setAutoResume(enabled) {
|
|
199
|
+
this._autoResumeEnabled = enabled;
|
|
200
|
+
if (!enabled) {
|
|
201
|
+
this._cancelAutoResume('disabled');
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Restore auto-resume state after a Codeman restart. A persisted pending
|
|
206
|
+
* schedule is re-armed; an overdue one fires shortly after boot (the limit
|
|
207
|
+
* footer won't reprint on its own, so without this the pause would stall).
|
|
208
|
+
*/
|
|
209
|
+
restoreAutoResume(enabled, resumeAt) {
|
|
210
|
+
this._autoResumeEnabled = enabled;
|
|
211
|
+
if (!enabled || !resumeAt)
|
|
212
|
+
return;
|
|
213
|
+
const now = Date.now();
|
|
214
|
+
this._scheduleResume(Math.max(resumeAt, now + RESUME_MIN_DELAY_MS), resumeAt, 'restored');
|
|
215
|
+
}
|
|
216
|
+
// ============================================================================
|
|
217
|
+
// Auto-resume — detection and scheduling
|
|
218
|
+
// ============================================================================
|
|
219
|
+
/**
|
|
220
|
+
* Scan cleaned terminal output for a usage-limit pause message and (re)arm
|
|
221
|
+
* the resume schedule. Called from the session's throttled parser path.
|
|
222
|
+
*/
|
|
223
|
+
processCleanData(cleanData) {
|
|
224
|
+
if (!this._autoResumeEnabled || this.callbacks.isStopped())
|
|
225
|
+
return;
|
|
226
|
+
// A resume is in flight (Esc sent, continue pending): output from our own
|
|
227
|
+
// Escape can redraw the stale limit footer — don't let it re-arm and
|
|
228
|
+
// cancel the continue. Fresh evidence arrives after the prompt is sent.
|
|
229
|
+
if (this._resumeFollowupTimer)
|
|
230
|
+
return;
|
|
231
|
+
const detection = detectUsageLimitPause(cleanData);
|
|
232
|
+
if (!detection)
|
|
233
|
+
return;
|
|
234
|
+
const now = Date.now();
|
|
235
|
+
const overdue = detection.resetAt <= now;
|
|
236
|
+
const fireAt = overdue
|
|
237
|
+
? now + RESUME_RETRY_MS // stale reset time → gentle retry loop
|
|
238
|
+
: Math.max(detection.resetAt + RESUME_BUFFER_MS, now + RESUME_MIN_DELAY_MS);
|
|
239
|
+
if (this._autoResumeTimer && this._autoResumeAt !== null) {
|
|
240
|
+
// Already armed: the footer redraws constantly, so ignore re-detections
|
|
241
|
+
// that land on (or later than) the current schedule. Only an EARLIER
|
|
242
|
+
// parsed time replaces it — an overdue retry never preempts a real one.
|
|
243
|
+
if (overdue || fireAt >= this._autoResumeAt - RESUME_DEDUP_TOLERANCE_MS)
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
this._scheduleResume(fireAt, detection.resetAt, detection.matched);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Claude started working — the limit is lifted (or the user resumed
|
|
250
|
+
* manually), so any pending auto-resume is obsolete.
|
|
251
|
+
*/
|
|
252
|
+
notifyWorking() {
|
|
253
|
+
this._resumeAttempts = 0;
|
|
254
|
+
if (!this._limitPaused && !this._autoResumeTimer && !this._resumeFollowupTimer)
|
|
255
|
+
return;
|
|
256
|
+
this._cancelAutoResume('working');
|
|
257
|
+
}
|
|
258
|
+
_scheduleResume(fireAt, resetAt, matched) {
|
|
259
|
+
if (this._autoResumeTimer) {
|
|
260
|
+
clearTimeout(this._autoResumeTimer);
|
|
261
|
+
this._autoResumeTimer = null;
|
|
262
|
+
}
|
|
263
|
+
this._limitPaused = true;
|
|
264
|
+
this._autoResumeAt = fireAt;
|
|
265
|
+
const delay = Math.max(fireAt - Date.now(), 0);
|
|
266
|
+
console.log(`[SessionAutoOps ${this.callbacks.getSessionId()}] Usage-limit pause detected ("${matched.slice(0, 60)}"), auto-resume in ${Math.round(delay / 60000)}min`);
|
|
267
|
+
this._autoResumeTimer = setTimeout(() => void this._fireResume(), delay);
|
|
268
|
+
this.emit('limitPauseScheduled', { resetAt, resumeAt: fireAt, matched });
|
|
269
|
+
}
|
|
270
|
+
async _fireResume() {
|
|
271
|
+
this._autoResumeTimer = null;
|
|
272
|
+
if (!this._autoResumeEnabled || this.callbacks.isStopped())
|
|
273
|
+
return;
|
|
274
|
+
if (this.callbacks.isWorking()) {
|
|
275
|
+
// Session resumed on its own (or via the user) — nothing to do.
|
|
276
|
+
this._cancelAutoResume('working');
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
this._resumeAttempts++;
|
|
280
|
+
const attempt = this._resumeAttempts;
|
|
281
|
+
this._limitPaused = false; // optimistic: a fresh limit message re-arms us
|
|
282
|
+
this._autoResumeAt = null;
|
|
283
|
+
// Escape first: dismisses the rate-limit options dialog if Claude opened
|
|
284
|
+
// one (harmless at an idle prompt), then the resume prompt after a beat.
|
|
285
|
+
await this.callbacks.writeCommand('\x1b');
|
|
286
|
+
this._resumeFollowupTimer = setTimeout(() => {
|
|
287
|
+
this._resumeFollowupTimer = null;
|
|
288
|
+
if (this.callbacks.isStopped())
|
|
289
|
+
return;
|
|
290
|
+
void this.callbacks.writeCommand(`${RESUME_PROMPT}\r`);
|
|
291
|
+
this.emit('limitResume', { attempt });
|
|
292
|
+
}, RESUME_ESC_DELAY_MS);
|
|
293
|
+
}
|
|
294
|
+
_cancelAutoResume(reason) {
|
|
295
|
+
const wasArmed = this._autoResumeTimer !== null || this._resumeFollowupTimer !== null || this._limitPaused;
|
|
296
|
+
if (this._autoResumeTimer) {
|
|
297
|
+
clearTimeout(this._autoResumeTimer);
|
|
298
|
+
this._autoResumeTimer = null;
|
|
299
|
+
}
|
|
300
|
+
if (this._resumeFollowupTimer) {
|
|
301
|
+
clearTimeout(this._resumeFollowupTimer);
|
|
302
|
+
this._resumeFollowupTimer = null;
|
|
303
|
+
}
|
|
304
|
+
this._limitPaused = false;
|
|
305
|
+
this._autoResumeAt = null;
|
|
306
|
+
if (wasArmed && reason !== 'stopped') {
|
|
307
|
+
this.emit('limitResumeCancelled', { reason });
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
// ============================================================================
|
|
151
311
|
// Threshold checks
|
|
152
312
|
// ============================================================================
|
|
153
313
|
/**
|
|
@@ -224,6 +384,7 @@ export class SessionAutoOps extends EventEmitter {
|
|
|
224
384
|
this._autoClearTimer = null;
|
|
225
385
|
}
|
|
226
386
|
this._isClearing = false;
|
|
387
|
+
this._cancelAutoResume('stopped');
|
|
227
388
|
}
|
|
228
389
|
}
|
|
229
390
|
//# sourceMappingURL=session-auto-ops.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-auto-ops.js","sourceRoot":"","sources":["../src/session-auto-ops.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-auto-ops.js","sourceRoot":"","sources":["../src/session-auto-ops.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts
CHANGED
|
@@ -304,6 +304,14 @@ export declare class Session extends EventEmitter {
|
|
|
304
304
|
get autoCompactEnabled(): boolean;
|
|
305
305
|
get autoCompactPrompt(): string;
|
|
306
306
|
setAutoCompact(enabled: boolean, threshold?: number, prompt?: string): void;
|
|
307
|
+
get autoResumeEnabled(): boolean;
|
|
308
|
+
/** When the scheduled usage-limit auto-resume fires (epoch ms), or null. */
|
|
309
|
+
get autoResumeAt(): number | null;
|
|
310
|
+
/** True while the session is paused on a Claude usage limit (auto-resume armed). */
|
|
311
|
+
get isLimitPaused(): boolean;
|
|
312
|
+
setAutoResume(enabled: boolean): void;
|
|
313
|
+
/** Restore auto-resume state (and a pending schedule) after Codeman restart. */
|
|
314
|
+
restoreAutoResume(enabled: boolean, resumeAt?: number): void;
|
|
307
315
|
get imageWatcherEnabled(): boolean;
|
|
308
316
|
set imageWatcherEnabled(enabled: boolean);
|
|
309
317
|
get flickerFilterEnabled(): boolean;
|
|
@@ -378,6 +386,8 @@ export declare class Session extends EventEmitter {
|
|
|
378
386
|
autoCompactEnabled?: boolean;
|
|
379
387
|
autoCompactThreshold?: number;
|
|
380
388
|
autoCompactPrompt?: string;
|
|
389
|
+
autoResumeEnabled?: boolean;
|
|
390
|
+
autoResumeAt?: number;
|
|
381
391
|
imageWatcherEnabled?: boolean;
|
|
382
392
|
inputTokens?: number;
|
|
383
393
|
outputTokens?: number;
|
|
@@ -464,6 +474,8 @@ export declare class Session extends EventEmitter {
|
|
|
464
474
|
autoCompactEnabled?: boolean;
|
|
465
475
|
autoCompactThreshold?: number;
|
|
466
476
|
autoCompactPrompt?: string;
|
|
477
|
+
autoResumeEnabled?: boolean;
|
|
478
|
+
autoResumeAt?: number;
|
|
467
479
|
imageWatcherEnabled?: boolean;
|
|
468
480
|
inputTokens?: number;
|
|
469
481
|
outputTokens?: number;
|
|
@@ -649,19 +661,43 @@ export declare class Session extends EventEmitter {
|
|
|
649
661
|
* boundary — untyped (legacy/API) resizes bypass claims by design.
|
|
650
662
|
*/
|
|
651
663
|
private _desktopSizeClaims;
|
|
664
|
+
/**
|
|
665
|
+
* A desktop sizing claim only blocks small-viewport resizes while the
|
|
666
|
+
* desktop is RECENTLY ACTIVE (claim registration or typed input within this
|
|
667
|
+
* window). An abandoned-but-connected desktop tab (left open at home, screen
|
|
668
|
+
* locked) must not hold a phone's view hostage: without this, the phone
|
|
669
|
+
* renders a desktop-width stream in a narrow xterm — mid-word wraps, tmux
|
|
670
|
+
* dot-fill, and Ink overdraw soup (the 0.9.8–0.9.12 mobile regression).
|
|
671
|
+
*/
|
|
672
|
+
private static readonly DESKTOP_CLAIM_IDLE_MS;
|
|
673
|
+
/** Last evidence of a live desktop user (claim registered / typed input). */
|
|
674
|
+
private _lastDesktopActivityAt;
|
|
675
|
+
/** Last desktop-typed dimensions, for re-asserting after a mobile override. */
|
|
676
|
+
private _lastDesktopDims;
|
|
677
|
+
/** True while a small viewport reflowed the pane past an idle desktop claim. */
|
|
678
|
+
private _mobileSizeOverride;
|
|
652
679
|
/** Register a live desktop sizing claim (see _desktopSizeClaims). */
|
|
653
680
|
claimDesktopSizing(token: symbol): void;
|
|
654
681
|
/** Release a desktop sizing claim when its connection goes away. */
|
|
655
682
|
releaseDesktopSizing(token: symbol): void;
|
|
683
|
+
/**
|
|
684
|
+
* Record desktop user activity (typed input over a claim-holding socket).
|
|
685
|
+
* If a phone reflowed the pane while the desktop was idle, the desktop
|
|
686
|
+
* layout is restored — "whoever is actively using the session wins".
|
|
687
|
+
*/
|
|
688
|
+
noteDesktopActivity(): void;
|
|
656
689
|
/**
|
|
657
690
|
* Resizes the PTY terminal dimensions.
|
|
658
691
|
* Skips the resize if dimensions haven't changed to avoid triggering
|
|
659
692
|
* unnecessary Ink full-screen redraws (visible flicker on tab switch).
|
|
660
693
|
*
|
|
661
|
-
* Arbitration: while a desktop connection holds a sizing claim
|
|
662
|
-
*
|
|
663
|
-
*
|
|
664
|
-
*
|
|
694
|
+
* Arbitration: while a desktop connection holds a sizing claim AND has been
|
|
695
|
+
* active within DESKTOP_CLAIM_IDLE_MS, resizes from small viewports
|
|
696
|
+
* (mobile/tablet) are ignored — shrink AND grow would both reflow the
|
|
697
|
+
* desktop view. Once the desktop goes idle, a phone may take the pane (the
|
|
698
|
+
* desktop re-asserts its size on its next typed input via
|
|
699
|
+
* noteDesktopActivity). Without a desktop connected, small viewports
|
|
700
|
+
* control the PTY size freely.
|
|
665
701
|
*
|
|
666
702
|
* @param cols - Number of columns (width in characters)
|
|
667
703
|
* @param rows - Number of rows (height in lines)
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,UAAU,EAIV,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/session.js
CHANGED
|
@@ -40,6 +40,7 @@ import { MAX_TERMINAL_BUFFER_SIZE, TRIM_TERMINAL_TO as TERMINAL_BUFFER_TRIM_SIZE
|
|
|
40
40
|
import { EXEC_TIMEOUT_MS } from './config/exec-timeout.js';
|
|
41
41
|
import { buildInteractiveArgs, buildPromptArgs, buildClaudeEnv, buildMuxAttachEnv, buildShellEnv, } from './session-cli-builder.js';
|
|
42
42
|
import { SessionAutoOps } from './session-auto-ops.js';
|
|
43
|
+
import { detectUsageLimitPause } from './usage-limit-patterns.js';
|
|
43
44
|
import { SessionTaskCache } from './session-task-cache.js';
|
|
44
45
|
/** Line buffer flush interval (100ms) - forces processing of partial lines */
|
|
45
46
|
const LINE_BUFFER_FLUSH_INTERVAL = 100;
|
|
@@ -349,6 +350,9 @@ export class Session extends EventEmitter {
|
|
|
349
350
|
this._totalOutputTokens = 0;
|
|
350
351
|
this.emit('autoClear', data);
|
|
351
352
|
});
|
|
353
|
+
this._autoOps.on('limitPauseScheduled', (data) => this.emit('limitPauseScheduled', data));
|
|
354
|
+
this._autoOps.on('limitResume', (data) => this.emit('limitResume', data));
|
|
355
|
+
this._autoOps.on('limitResumeCancelled', (data) => this.emit('limitResumeCancelled', data));
|
|
352
356
|
}
|
|
353
357
|
get status() {
|
|
354
358
|
return this._status;
|
|
@@ -597,6 +601,34 @@ export class Session extends EventEmitter {
|
|
|
597
601
|
setAutoCompact(enabled, threshold, prompt) {
|
|
598
602
|
this._autoOps.setAutoCompact(enabled, threshold, prompt);
|
|
599
603
|
}
|
|
604
|
+
get autoResumeEnabled() {
|
|
605
|
+
return this._autoOps.autoResumeEnabled;
|
|
606
|
+
}
|
|
607
|
+
/** When the scheduled usage-limit auto-resume fires (epoch ms), or null. */
|
|
608
|
+
get autoResumeAt() {
|
|
609
|
+
return this._autoOps.autoResumeAt;
|
|
610
|
+
}
|
|
611
|
+
/** True while the session is paused on a Claude usage limit (auto-resume armed). */
|
|
612
|
+
get isLimitPaused() {
|
|
613
|
+
return this._autoOps.isLimitPaused;
|
|
614
|
+
}
|
|
615
|
+
setAutoResume(enabled) {
|
|
616
|
+
this._autoOps.setAutoResume(enabled);
|
|
617
|
+
// Users typically enable this WHILE a session already sits paused — the
|
|
618
|
+
// limit footer won't reprint on its own, so scan the recent buffer once.
|
|
619
|
+
// Only a future reset time counts: stale scrollback must not arm a resume.
|
|
620
|
+
if (enabled && !isExternalCliMode(this.mode)) {
|
|
621
|
+
const tail = this._terminalBuffer.value.slice(-8192).replace(ANSI_ESCAPE_PATTERN_FULL, '');
|
|
622
|
+
const detection = detectUsageLimitPause(tail);
|
|
623
|
+
if (detection && detection.resetAt > Date.now()) {
|
|
624
|
+
this._autoOps.processCleanData(tail);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
/** Restore auto-resume state (and a pending schedule) after Codeman restart. */
|
|
629
|
+
restoreAutoResume(enabled, resumeAt) {
|
|
630
|
+
this._autoOps.restoreAutoResume(enabled, resumeAt);
|
|
631
|
+
}
|
|
600
632
|
get imageWatcherEnabled() {
|
|
601
633
|
return this._imageWatcherEnabled;
|
|
602
634
|
}
|
|
@@ -634,6 +666,8 @@ export class Session extends EventEmitter {
|
|
|
634
666
|
autoCompactEnabled: this._autoOps.autoCompactEnabled,
|
|
635
667
|
autoCompactThreshold: this._autoOps.autoCompactThreshold,
|
|
636
668
|
autoCompactPrompt: this._autoOps.autoCompactPrompt,
|
|
669
|
+
autoResumeEnabled: this._autoOps.autoResumeEnabled,
|
|
670
|
+
autoResumeAt: this._autoOps.autoResumeAt ?? undefined,
|
|
637
671
|
imageWatcherEnabled: this._imageWatcherEnabled,
|
|
638
672
|
totalCost: this._totalCost,
|
|
639
673
|
inputTokens: this._totalInputTokens,
|
|
@@ -996,6 +1030,7 @@ export class Session extends EventEmitter {
|
|
|
996
1030
|
this._isWorking = true;
|
|
997
1031
|
this._status = 'busy';
|
|
998
1032
|
this.emit('working');
|
|
1033
|
+
this._autoOps.notifyWorking();
|
|
999
1034
|
}
|
|
1000
1035
|
this._awaitingIdleConfirmation = false;
|
|
1001
1036
|
if (this.activityTimeout)
|
|
@@ -1098,6 +1133,10 @@ export class Session extends EventEmitter {
|
|
|
1098
1133
|
if (this._bashToolParser.enabled) {
|
|
1099
1134
|
this._bashToolParser.processCleanData(getCleanData());
|
|
1100
1135
|
}
|
|
1136
|
+
// Usage-limit pause detection (auto-resume on usage limit)
|
|
1137
|
+
if (this._autoOps.autoResumeEnabled) {
|
|
1138
|
+
this._autoOps.processCleanData(getCleanData());
|
|
1139
|
+
}
|
|
1101
1140
|
// Parse token count from status line (e.g., "123.4k tokens" or "5234 tokens")
|
|
1102
1141
|
if (rawData.includes('token')) {
|
|
1103
1142
|
this.parseTokensFromStatusLine(getCleanData());
|
|
@@ -1121,6 +1160,7 @@ export class Session extends EventEmitter {
|
|
|
1121
1160
|
this._isWorking = true;
|
|
1122
1161
|
this._status = 'busy';
|
|
1123
1162
|
this.emit('working');
|
|
1163
|
+
this._autoOps.notifyWorking();
|
|
1124
1164
|
this._awaitingIdleConfirmation = false;
|
|
1125
1165
|
if (this.activityTimeout)
|
|
1126
1166
|
clearTimeout(this.activityTimeout);
|
|
@@ -1747,31 +1787,70 @@ export class Session extends EventEmitter {
|
|
|
1747
1787
|
* boundary — untyped (legacy/API) resizes bypass claims by design.
|
|
1748
1788
|
*/
|
|
1749
1789
|
_desktopSizeClaims = new Set();
|
|
1790
|
+
/**
|
|
1791
|
+
* A desktop sizing claim only blocks small-viewport resizes while the
|
|
1792
|
+
* desktop is RECENTLY ACTIVE (claim registration or typed input within this
|
|
1793
|
+
* window). An abandoned-but-connected desktop tab (left open at home, screen
|
|
1794
|
+
* locked) must not hold a phone's view hostage: without this, the phone
|
|
1795
|
+
* renders a desktop-width stream in a narrow xterm — mid-word wraps, tmux
|
|
1796
|
+
* dot-fill, and Ink overdraw soup (the 0.9.8–0.9.12 mobile regression).
|
|
1797
|
+
*/
|
|
1798
|
+
static DESKTOP_CLAIM_IDLE_MS = 90_000;
|
|
1799
|
+
/** Last evidence of a live desktop user (claim registered / typed input). */
|
|
1800
|
+
_lastDesktopActivityAt = 0;
|
|
1801
|
+
/** Last desktop-typed dimensions, for re-asserting after a mobile override. */
|
|
1802
|
+
_lastDesktopDims = null;
|
|
1803
|
+
/** True while a small viewport reflowed the pane past an idle desktop claim. */
|
|
1804
|
+
_mobileSizeOverride = false;
|
|
1750
1805
|
/** Register a live desktop sizing claim (see _desktopSizeClaims). */
|
|
1751
1806
|
claimDesktopSizing(token) {
|
|
1752
1807
|
this._desktopSizeClaims.add(token);
|
|
1808
|
+
this._lastDesktopActivityAt = Date.now();
|
|
1753
1809
|
}
|
|
1754
1810
|
/** Release a desktop sizing claim when its connection goes away. */
|
|
1755
1811
|
releaseDesktopSizing(token) {
|
|
1756
1812
|
this._desktopSizeClaims.delete(token);
|
|
1757
1813
|
}
|
|
1814
|
+
/**
|
|
1815
|
+
* Record desktop user activity (typed input over a claim-holding socket).
|
|
1816
|
+
* If a phone reflowed the pane while the desktop was idle, the desktop
|
|
1817
|
+
* layout is restored — "whoever is actively using the session wins".
|
|
1818
|
+
*/
|
|
1819
|
+
noteDesktopActivity() {
|
|
1820
|
+
this._lastDesktopActivityAt = Date.now();
|
|
1821
|
+
if (this._mobileSizeOverride && this._lastDesktopDims) {
|
|
1822
|
+
this._mobileSizeOverride = false;
|
|
1823
|
+
this.resize(this._lastDesktopDims.cols, this._lastDesktopDims.rows, { viewportType: 'desktop' });
|
|
1824
|
+
}
|
|
1825
|
+
}
|
|
1758
1826
|
/**
|
|
1759
1827
|
* Resizes the PTY terminal dimensions.
|
|
1760
1828
|
* Skips the resize if dimensions haven't changed to avoid triggering
|
|
1761
1829
|
* unnecessary Ink full-screen redraws (visible flicker on tab switch).
|
|
1762
1830
|
*
|
|
1763
|
-
* Arbitration: while a desktop connection holds a sizing claim
|
|
1764
|
-
*
|
|
1765
|
-
*
|
|
1766
|
-
*
|
|
1831
|
+
* Arbitration: while a desktop connection holds a sizing claim AND has been
|
|
1832
|
+
* active within DESKTOP_CLAIM_IDLE_MS, resizes from small viewports
|
|
1833
|
+
* (mobile/tablet) are ignored — shrink AND grow would both reflow the
|
|
1834
|
+
* desktop view. Once the desktop goes idle, a phone may take the pane (the
|
|
1835
|
+
* desktop re-asserts its size on its next typed input via
|
|
1836
|
+
* noteDesktopActivity). Without a desktop connected, small viewports
|
|
1837
|
+
* control the PTY size freely.
|
|
1767
1838
|
*
|
|
1768
1839
|
* @param cols - Number of columns (width in characters)
|
|
1769
1840
|
* @param rows - Number of rows (height in lines)
|
|
1770
1841
|
*/
|
|
1771
1842
|
resize(cols, rows, options = {}) {
|
|
1772
1843
|
const isSmallViewport = options.viewportType === 'mobile' || options.viewportType === 'tablet';
|
|
1844
|
+
if (options.viewportType === 'desktop') {
|
|
1845
|
+
this._lastDesktopDims = { cols, rows };
|
|
1846
|
+
this._lastDesktopActivityAt = Date.now();
|
|
1847
|
+
this._mobileSizeOverride = false;
|
|
1848
|
+
}
|
|
1773
1849
|
if (isSmallViewport && this._desktopSizeClaims.size > 0) {
|
|
1774
|
-
|
|
1850
|
+
if (Date.now() - this._lastDesktopActivityAt < Session.DESKTOP_CLAIM_IDLE_MS) {
|
|
1851
|
+
return;
|
|
1852
|
+
}
|
|
1853
|
+
this._mobileSizeOverride = true;
|
|
1775
1854
|
}
|
|
1776
1855
|
if (this.ptyProcess && (cols !== this._ptyCols || rows !== this._ptyRows)) {
|
|
1777
1856
|
this._ptyCols = cols;
|