@threadbase-sh/streamer 1.64.0 → 1.66.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/dist/api/handlers/sessions.handlers.d.ts +6 -0
- package/dist/api/handlers/sessions.handlers.d.ts.map +1 -1
- package/dist/api/routes/misc.routes.d.ts.map +1 -1
- package/dist/api/types/api-deps.d.ts +2 -0
- package/dist/api/types/api-deps.d.ts.map +1 -1
- package/dist/cli.cjs +346 -16
- package/dist/cli.cjs.map +1 -1
- package/dist/index.cjs +346 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +334 -4
- package/dist/index.js.map +1 -1
- package/dist/server-wiring.d.ts +7 -0
- package/dist/server-wiring.d.ts.map +1 -1
- package/dist/server.d.ts +15 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/services/host-pressure/hostPressure.d.ts +83 -0
- package/dist/services/host-pressure/hostPressure.d.ts.map +1 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -222,6 +222,12 @@ export declare class SessionHandlers {
|
|
|
222
222
|
private shouldForgetEmptySession;
|
|
223
223
|
private hasCachedConversationFor;
|
|
224
224
|
private forgetEmptyStoppedSession;
|
|
225
|
+
/**
|
|
226
|
+
* Same empty-unused check stop uses (promptCount === 0 and no cache row,
|
|
227
|
+
* including boundConversationId / resumedFromConversationId). Safe after
|
|
228
|
+
* putOnHold: the runner may already have dropped the live session.
|
|
229
|
+
*/
|
|
230
|
+
forgetIfEmptyUnused(sessionId: string): void;
|
|
225
231
|
handleAdopt(sessionId: string, res: ServerResponse): Promise<void>;
|
|
226
232
|
handleStartSession(req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
227
233
|
handleSetSessionName(sessionId: string, req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.handlers.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/sessions.handlers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sessions.handlers.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/sessions.handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/misc.routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAa5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAiDjD;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,mBAAmB,EAAE,OAAO,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,cAAc,CAahB;AAED,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAkBvC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,GAAG,cAAc,CAmB3E;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,SAAS,CAe9D;AAYD,eAAO,MAAM,gBAAgB,SACrB,IAAI,CACR,OAAO,EACL,WAAW,GACX,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,aAAa,GACb,UAAU,GACV,yBAAyB,GACzB,oBAAoB,CACvB,
|
|
1
|
+
{"version":3,"file":"misc.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/misc.routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAa5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAiDjD;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,mBAAmB,EAAE,OAAO,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,cAAc,CAahB;AAED,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAkBvC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,GAAG,cAAc,CAmB3E;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,SAAS,CAe9D;AAYD,eAAO,MAAM,gBAAgB,SACrB,IAAI,CACR,OAAO,EACL,WAAW,GACX,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,aAAa,GACb,UAAU,GACV,yBAAyB,GACzB,oBAAoB,CACvB,wDAgOF,CAAC"}
|
|
@@ -16,6 +16,7 @@ import type { RuntimeStore } from "../../db/runtime-store";
|
|
|
16
16
|
import type { FeatureFlagDefinition, FeatureFlagId, FeatureFlagSource, ResolvedFeatureFlags } from "../../feature-flags";
|
|
17
17
|
import type { LiveSessionManager } from "../../live-session-manager";
|
|
18
18
|
import type { CacheIntegrityMonitor } from "../../services/cache-integrity/cacheIntegrityMonitor";
|
|
19
|
+
import type { HostPressureMonitor } from "../../services/host-pressure/hostPressure";
|
|
19
20
|
import type { Principal } from "../../services/security/capabilities";
|
|
20
21
|
import type { ReconcileVerdict } from "../../services/sessions/reconcileSessions";
|
|
21
22
|
import type { SessionStore } from "../../session-store";
|
|
@@ -52,6 +53,7 @@ export type ApiDeps = {
|
|
|
52
53
|
wsHub: WSHub;
|
|
53
54
|
cache: () => ConversationCache | null;
|
|
54
55
|
cacheMonitor: () => CacheIntegrityMonitor | null;
|
|
56
|
+
hostPressureMonitor: () => HostPressureMonitor | null;
|
|
55
57
|
/** Push registration + delivery state (C7). Null when the cache DB is unavailable. */
|
|
56
58
|
pushRepo: () => PushRepository | null;
|
|
57
59
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-deps.d.ts","sourceRoot":"","sources":["../../../src/api/types/api-deps.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-deps.d.ts","sourceRoot":"","sources":["../../../src/api/types/api-deps.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.cjs
CHANGED
|
@@ -132336,7 +132336,7 @@ var import_events2 = require("events");
|
|
|
132336
132336
|
var import_fs39 = require("fs");
|
|
132337
132337
|
var import_promises16 = require("fs/promises");
|
|
132338
132338
|
var import_http = require("http");
|
|
132339
|
-
var
|
|
132339
|
+
var import_os18 = require("os");
|
|
132340
132340
|
var import_path35 = require("path");
|
|
132341
132341
|
|
|
132342
132342
|
// src/agent/agent-client.ts
|
|
@@ -135120,7 +135120,7 @@ function redactPath(path2) {
|
|
|
135120
135120
|
function worstStatus(checks) {
|
|
135121
135121
|
const rank = { ok: 0, unknown: 1, degraded: 2, failed: 3 };
|
|
135122
135122
|
return checks.reduce(
|
|
135123
|
-
(
|
|
135123
|
+
(worst2, c) => rank[c.status] > rank[worst2] ? c.status : worst2,
|
|
135124
135124
|
"ok"
|
|
135125
135125
|
);
|
|
135126
135126
|
}
|
|
@@ -136034,7 +136034,12 @@ var createMiscRoutes = (deps) => {
|
|
|
136034
136034
|
// Whether to encrypt to this server. Additive, same contract as `push`:
|
|
136035
136035
|
// absent means an older server, which a client must read as "unknown" and
|
|
136036
136036
|
// resolve as today's plaintext path — never as a reason to fail.
|
|
136037
|
-
e2ee: describeE2eeCapability(deps.featureFlagsConfig().values.e2ee)
|
|
136037
|
+
e2ee: describeE2eeCapability(deps.featureFlagsConfig().values.e2ee),
|
|
136038
|
+
// This build samples cheap host signals and pushes `host_pressure` when
|
|
136039
|
+
// the box is starved. Additive capability flag only — live readings stay
|
|
136040
|
+
// off this polled endpoint. Absent means an older server that never
|
|
136041
|
+
// samples. Informational: pressure never holds, kills, or refuses sessions.
|
|
136042
|
+
hostPressure: true
|
|
136038
136043
|
});
|
|
136039
136044
|
});
|
|
136040
136045
|
app.get("/api/profiles", (c) => c.json([]));
|
|
@@ -148735,6 +148740,19 @@ var SessionHandlers = class {
|
|
|
148735
148740
|
sessions: this.sessionStore.list(this.deps.ptyAttachedIds())
|
|
148736
148741
|
});
|
|
148737
148742
|
}
|
|
148743
|
+
/**
|
|
148744
|
+
* Same empty-unused check stop uses (promptCount === 0 and no cache row,
|
|
148745
|
+
* including boundConversationId / resumedFromConversationId). Safe after
|
|
148746
|
+
* putOnHold: the runner may already have dropped the live session.
|
|
148747
|
+
*/
|
|
148748
|
+
forgetIfEmptyUnused(sessionId) {
|
|
148749
|
+
const live = this.ptyManager.getSession(sessionId);
|
|
148750
|
+
const stored = this.sessionStore.getManaged(sessionId);
|
|
148751
|
+
const session = live ?? stored;
|
|
148752
|
+
if (!session) return;
|
|
148753
|
+
if (!this.shouldForgetEmptySession(session)) return;
|
|
148754
|
+
this.forgetEmptyStoppedSession(sessionId);
|
|
148755
|
+
}
|
|
148738
148756
|
async handleAdopt(sessionId, res) {
|
|
148739
148757
|
const discovered = await discoverClaudeProcesses();
|
|
148740
148758
|
this.sessionStore.setDiscovered(discovered);
|
|
@@ -151118,6 +151136,7 @@ function createLiveSessionOptions(deps) {
|
|
|
151118
151136
|
void deps.liveActivityNotifier()?.onStatusChange(session, previousStatus);
|
|
151119
151137
|
void deps.waitingInputNotifier()?.onStatusChange(session, previousStatus);
|
|
151120
151138
|
deps.sessionStatusBus.emit(`status:${session.id}`, session.status, session);
|
|
151139
|
+
deps.maybeFireHoldWhenIdle?.(session);
|
|
151121
151140
|
}
|
|
151122
151141
|
};
|
|
151123
151142
|
}
|
|
@@ -151141,6 +151160,7 @@ function createApiDeps(deps) {
|
|
|
151141
151160
|
wsHub: deps.wsHub,
|
|
151142
151161
|
cache: () => deps.cache(),
|
|
151143
151162
|
cacheMonitor: () => deps.cacheMonitor(),
|
|
151163
|
+
hostPressureMonitor: () => deps.hostPressureMonitor(),
|
|
151144
151164
|
pushRepo: () => deps.pushRepo(),
|
|
151145
151165
|
liveActivityPushEnabled: () => deps.liveActivityPushEnabled(),
|
|
151146
151166
|
devicesRepo: () => deps.devicesRepo(),
|
|
@@ -151191,6 +151211,8 @@ function createApiDeps(deps) {
|
|
|
151191
151211
|
}
|
|
151192
151212
|
const alertMsg = deps.cacheMonitor()?.wsMessage();
|
|
151193
151213
|
if (alertMsg) deps.wsHub.unicast(ws2, alertMsg);
|
|
151214
|
+
const pressureMsg = deps.hostPressureMonitor()?.wsMessage();
|
|
151215
|
+
if (pressureMsg) deps.wsHub.unicast(ws2, pressureMsg);
|
|
151194
151216
|
},
|
|
151195
151217
|
handleWsMessage: async (ws2, raw2, principal) => {
|
|
151196
151218
|
const deny = (type, required2) => {
|
|
@@ -151266,7 +151288,20 @@ function createApiDeps(deps) {
|
|
|
151266
151288
|
deny(msg.type, "session:control");
|
|
151267
151289
|
return;
|
|
151268
151290
|
}
|
|
151269
|
-
|
|
151291
|
+
const when = msg.when;
|
|
151292
|
+
if (when === void 0 || when === "grace") {
|
|
151293
|
+
deps.startGraceTimer(msg.sessionId, deps.ptyGracePeriodMs);
|
|
151294
|
+
return;
|
|
151295
|
+
}
|
|
151296
|
+
if (when === "waiting_input") {
|
|
151297
|
+
deps.armHoldWhenIdle(msg.sessionId);
|
|
151298
|
+
return;
|
|
151299
|
+
}
|
|
151300
|
+
deps.log().warn(`[pty.hold_when_unknown] hold_session when=${String(when)}`, {
|
|
151301
|
+
event: "pty.hold_when_unknown",
|
|
151302
|
+
sessionId: msg.sessionId,
|
|
151303
|
+
when
|
|
151304
|
+
});
|
|
151270
151305
|
}
|
|
151271
151306
|
} catch {
|
|
151272
151307
|
}
|
|
@@ -151802,6 +151837,221 @@ function pruneAgentConversations(cache) {
|
|
|
151802
151837
|
return { scanned: rows.length, pruned, missing };
|
|
151803
151838
|
}
|
|
151804
151839
|
|
|
151840
|
+
// src/services/host-pressure/hostPressure.ts
|
|
151841
|
+
var import_os16 = require("os");
|
|
151842
|
+
var import_perf_hooks = require("perf_hooks");
|
|
151843
|
+
var HOST_PRESSURE_SAMPLE_MS = 5e3;
|
|
151844
|
+
var HOST_PRESSURE_BARS = {
|
|
151845
|
+
memFreeRatio: {
|
|
151846
|
+
enterElevated: 0.15,
|
|
151847
|
+
leaveElevated: 0.17,
|
|
151848
|
+
enterCritical: 0.08,
|
|
151849
|
+
leaveCritical: 0.15
|
|
151850
|
+
},
|
|
151851
|
+
eventLoopP99Ms: {
|
|
151852
|
+
enterElevated: 100,
|
|
151853
|
+
leaveElevated: 80,
|
|
151854
|
+
enterCritical: 250,
|
|
151855
|
+
leaveCritical: 100
|
|
151856
|
+
},
|
|
151857
|
+
loadPerCpu: {
|
|
151858
|
+
enterElevated: 1.25,
|
|
151859
|
+
leaveElevated: 1.05,
|
|
151860
|
+
enterCritical: 2,
|
|
151861
|
+
leaveCritical: 1.25
|
|
151862
|
+
},
|
|
151863
|
+
// win32 has no loadavg. Busy ratio from os.cpus()[].times deltas is 0–1, so
|
|
151864
|
+
// it cannot reuse loadPerCpu's 2.0 critical bar. Reason on the wire stays `load`.
|
|
151865
|
+
cpuBusy: {
|
|
151866
|
+
enterElevated: 0.85,
|
|
151867
|
+
leaveElevated: 0.7,
|
|
151868
|
+
enterCritical: 0.97,
|
|
151869
|
+
leaveCritical: 0.85
|
|
151870
|
+
},
|
|
151871
|
+
liveAgentsPair: 4
|
|
151872
|
+
};
|
|
151873
|
+
var REASON_ORDER = ["memory", "event_loop", "load", "agents"];
|
|
151874
|
+
var RANK = { ok: 0, elevated: 1, critical: 2 };
|
|
151875
|
+
function worst(levels) {
|
|
151876
|
+
return levels.reduce(
|
|
151877
|
+
(acc, level) => RANK[level] > RANK[acc] ? level : acc,
|
|
151878
|
+
"ok"
|
|
151879
|
+
);
|
|
151880
|
+
}
|
|
151881
|
+
function schmittLowIsWorse(value, previous, enterElevated, leaveElevated, enterCritical, leaveCritical) {
|
|
151882
|
+
if (previous === "critical") {
|
|
151883
|
+
if (value < leaveCritical) return "critical";
|
|
151884
|
+
if (value < leaveElevated) return "elevated";
|
|
151885
|
+
return "ok";
|
|
151886
|
+
}
|
|
151887
|
+
if (previous === "elevated") {
|
|
151888
|
+
if (value < enterCritical) return "critical";
|
|
151889
|
+
if (value < leaveElevated) return "elevated";
|
|
151890
|
+
return "ok";
|
|
151891
|
+
}
|
|
151892
|
+
if (value < enterCritical) return "critical";
|
|
151893
|
+
if (value < enterElevated) return "elevated";
|
|
151894
|
+
return "ok";
|
|
151895
|
+
}
|
|
151896
|
+
function schmittHighIsWorse(value, previous, enterElevated, leaveElevated, enterCritical, leaveCritical) {
|
|
151897
|
+
if (previous === "critical") {
|
|
151898
|
+
if (value > leaveCritical) return "critical";
|
|
151899
|
+
if (value > leaveElevated) return "elevated";
|
|
151900
|
+
return "ok";
|
|
151901
|
+
}
|
|
151902
|
+
if (previous === "elevated") {
|
|
151903
|
+
if (value > enterCritical) return "critical";
|
|
151904
|
+
if (value > leaveElevated) return "elevated";
|
|
151905
|
+
return "ok";
|
|
151906
|
+
}
|
|
151907
|
+
if (value > enterCritical) return "critical";
|
|
151908
|
+
if (value > enterElevated) return "elevated";
|
|
151909
|
+
return "ok";
|
|
151910
|
+
}
|
|
151911
|
+
function timesTotal(times) {
|
|
151912
|
+
return times.user + times.nice + times.sys + times.idle + times.irq;
|
|
151913
|
+
}
|
|
151914
|
+
function hostPressureOs(platform3) {
|
|
151915
|
+
if (platform3 === "darwin" || platform3 === "linux" || platform3 === "win32") return platform3;
|
|
151916
|
+
return void 0;
|
|
151917
|
+
}
|
|
151918
|
+
function cpuBusyRatio(previous, next) {
|
|
151919
|
+
if (!previous || previous.length === 0 || next.length === 0 || previous.length !== next.length) {
|
|
151920
|
+
return 0;
|
|
151921
|
+
}
|
|
151922
|
+
let idle = 0;
|
|
151923
|
+
let total = 0;
|
|
151924
|
+
for (let i = 0; i < next.length; i++) {
|
|
151925
|
+
const dt2 = timesTotal(next[i]) - timesTotal(previous[i]);
|
|
151926
|
+
if (dt2 <= 0) continue;
|
|
151927
|
+
total += dt2;
|
|
151928
|
+
idle += Math.max(0, next[i].idle - previous[i].idle);
|
|
151929
|
+
}
|
|
151930
|
+
if (total <= 0) return 0;
|
|
151931
|
+
return 1 - idle / total;
|
|
151932
|
+
}
|
|
151933
|
+
function classifyHostPressure(sample, previous, platform3) {
|
|
151934
|
+
const memRaw = schmittLowIsWorse(
|
|
151935
|
+
sample.memFreeRatio,
|
|
151936
|
+
previous,
|
|
151937
|
+
HOST_PRESSURE_BARS.memFreeRatio.enterElevated,
|
|
151938
|
+
HOST_PRESSURE_BARS.memFreeRatio.leaveElevated,
|
|
151939
|
+
HOST_PRESSURE_BARS.memFreeRatio.enterCritical,
|
|
151940
|
+
HOST_PRESSURE_BARS.memFreeRatio.leaveCritical
|
|
151941
|
+
);
|
|
151942
|
+
const mem = platform3 === "darwin" && memRaw === "critical" ? "elevated" : memRaw;
|
|
151943
|
+
const eventLoop = schmittHighIsWorse(
|
|
151944
|
+
sample.eventLoopP99Ms,
|
|
151945
|
+
previous,
|
|
151946
|
+
HOST_PRESSURE_BARS.eventLoopP99Ms.enterElevated,
|
|
151947
|
+
HOST_PRESSURE_BARS.eventLoopP99Ms.leaveElevated,
|
|
151948
|
+
HOST_PRESSURE_BARS.eventLoopP99Ms.enterCritical,
|
|
151949
|
+
HOST_PRESSURE_BARS.eventLoopP99Ms.leaveCritical
|
|
151950
|
+
);
|
|
151951
|
+
const ncpu = sample.ncpu > 0 ? sample.ncpu : 1;
|
|
151952
|
+
const windows = platform3 === "win32";
|
|
151953
|
+
const loadValue = windows ? sample.cpuBusyRatio ?? 0 : sample.load1 / ncpu;
|
|
151954
|
+
const loadBars = windows ? HOST_PRESSURE_BARS.cpuBusy : HOST_PRESSURE_BARS.loadPerCpu;
|
|
151955
|
+
const load = schmittHighIsWorse(
|
|
151956
|
+
loadValue,
|
|
151957
|
+
previous,
|
|
151958
|
+
loadBars.enterElevated,
|
|
151959
|
+
loadBars.leaveElevated,
|
|
151960
|
+
loadBars.enterCritical,
|
|
151961
|
+
loadBars.leaveCritical
|
|
151962
|
+
);
|
|
151963
|
+
const resourceLevel = worst([mem, eventLoop, load]);
|
|
151964
|
+
const agentsPair = sample.liveAgents >= HOST_PRESSURE_BARS.liveAgentsPair && resourceLevel !== "ok";
|
|
151965
|
+
const level = resourceLevel;
|
|
151966
|
+
const firing = [];
|
|
151967
|
+
if (mem !== "ok") firing.push("memory");
|
|
151968
|
+
if (eventLoop !== "ok") firing.push("event_loop");
|
|
151969
|
+
if (load !== "ok") firing.push("load");
|
|
151970
|
+
if (agentsPair) firing.push("agents");
|
|
151971
|
+
const reasons = REASON_ORDER.filter((reason) => firing.includes(reason));
|
|
151972
|
+
return { level, reasons };
|
|
151973
|
+
}
|
|
151974
|
+
var HostPressureMonitor = class {
|
|
151975
|
+
constructor(opts) {
|
|
151976
|
+
this.opts = opts;
|
|
151977
|
+
}
|
|
151978
|
+
opts;
|
|
151979
|
+
timer = null;
|
|
151980
|
+
level = "ok";
|
|
151981
|
+
lastWarning = null;
|
|
151982
|
+
start() {
|
|
151983
|
+
this.opts.histogram?.enable();
|
|
151984
|
+
if (this.timer) return;
|
|
151985
|
+
const intervalMs = this.opts.intervalMs ?? HOST_PRESSURE_SAMPLE_MS;
|
|
151986
|
+
this.timer = setInterval(() => this.tick(), intervalMs);
|
|
151987
|
+
this.timer.unref?.();
|
|
151988
|
+
}
|
|
151989
|
+
tick() {
|
|
151990
|
+
const sample = this.opts.readSample();
|
|
151991
|
+
const platform3 = this.opts.platform ?? process.platform;
|
|
151992
|
+
const classified = classifyHostPressure(sample, this.level, platform3);
|
|
151993
|
+
if (classified.level === this.level) return;
|
|
151994
|
+
this.level = classified.level;
|
|
151995
|
+
const updatedAt = (this.opts.now ?? (() => /* @__PURE__ */ new Date()))().toISOString();
|
|
151996
|
+
if (classified.level === "ok") {
|
|
151997
|
+
this.lastWarning = null;
|
|
151998
|
+
this.opts.wsHub.broadcast({ type: "host_pressure_cleared", updatedAt });
|
|
151999
|
+
return;
|
|
152000
|
+
}
|
|
152001
|
+
const os3 = hostPressureOs(platform3);
|
|
152002
|
+
const message = {
|
|
152003
|
+
type: "host_pressure",
|
|
152004
|
+
level: classified.level,
|
|
152005
|
+
reasons: classified.reasons,
|
|
152006
|
+
liveAgents: sample.liveAgents,
|
|
152007
|
+
updatedAt,
|
|
152008
|
+
...os3 ? { os: os3 } : {}
|
|
152009
|
+
};
|
|
152010
|
+
this.lastWarning = message;
|
|
152011
|
+
this.opts.wsHub.broadcast(message);
|
|
152012
|
+
}
|
|
152013
|
+
wsMessage() {
|
|
152014
|
+
return this.lastWarning;
|
|
152015
|
+
}
|
|
152016
|
+
dispose() {
|
|
152017
|
+
if (this.timer) {
|
|
152018
|
+
clearInterval(this.timer);
|
|
152019
|
+
this.timer = null;
|
|
152020
|
+
}
|
|
152021
|
+
this.opts.histogram?.disable();
|
|
152022
|
+
}
|
|
152023
|
+
};
|
|
152024
|
+
function createHostPressureMonitor(wsHub, liveAgents) {
|
|
152025
|
+
const histogram = (0, import_perf_hooks.monitorEventLoopDelay)({ resolution: 20 });
|
|
152026
|
+
const windows = process.platform === "win32";
|
|
152027
|
+
let prevCpuTimes = null;
|
|
152028
|
+
const monitor = new HostPressureMonitor({
|
|
152029
|
+
wsHub,
|
|
152030
|
+
histogram,
|
|
152031
|
+
readSample: () => {
|
|
152032
|
+
const eventLoopP99Ms = histogram.percentile(99) / 1e6;
|
|
152033
|
+
histogram.reset();
|
|
152034
|
+
const total = (0, import_os16.totalmem)();
|
|
152035
|
+
const cpuList = (0, import_os16.cpus)();
|
|
152036
|
+
const sample = {
|
|
152037
|
+
liveAgents: liveAgents(),
|
|
152038
|
+
memFreeRatio: total > 0 ? (0, import_os16.freemem)() / total : 1,
|
|
152039
|
+
eventLoopP99Ms,
|
|
152040
|
+
load1: (0, import_os16.loadavg)()[0],
|
|
152041
|
+
ncpu: cpuList.length
|
|
152042
|
+
};
|
|
152043
|
+
if (windows) {
|
|
152044
|
+
const cpuTimes = cpuList.map((cpu) => cpu.times);
|
|
152045
|
+
sample.cpuBusyRatio = cpuBusyRatio(prevCpuTimes, cpuTimes);
|
|
152046
|
+
prevCpuTimes = cpuTimes;
|
|
152047
|
+
}
|
|
152048
|
+
return sample;
|
|
152049
|
+
}
|
|
152050
|
+
});
|
|
152051
|
+
monitor.start();
|
|
152052
|
+
return monitor;
|
|
152053
|
+
}
|
|
152054
|
+
|
|
151805
152055
|
// src/services/push/expoPushSender.ts
|
|
151806
152056
|
init_logger();
|
|
151807
152057
|
var log5 = getLogger("expo-push");
|
|
@@ -153345,7 +153595,7 @@ function discoveredToResponse(d, conversationId) {
|
|
|
153345
153595
|
|
|
153346
153596
|
// src/session-watchers.ts
|
|
153347
153597
|
var import_fs38 = require("fs");
|
|
153348
|
-
var
|
|
153598
|
+
var import_os17 = require("os");
|
|
153349
153599
|
var import_path34 = require("path");
|
|
153350
153600
|
init_logger();
|
|
153351
153601
|
var SessionWatchers = class {
|
|
@@ -153428,7 +153678,7 @@ var SessionWatchers = class {
|
|
|
153428
153678
|
// was passed to Claude via --session-id so the filename matches from the start.
|
|
153429
153679
|
watchForJsonl(sessionId, projectPath) {
|
|
153430
153680
|
const encoded = projectPath.replace(/[/\\:.]/g, "-");
|
|
153431
|
-
const projectsDir = (0, import_path34.join)((0,
|
|
153681
|
+
const projectsDir = (0, import_path34.join)((0, import_os17.homedir)(), ".claude", "projects", encoded);
|
|
153432
153682
|
const expectedFile = `${sessionId}.jsonl`;
|
|
153433
153683
|
const filePath = (0, import_path34.join)(projectsDir, expectedFile);
|
|
153434
153684
|
const deadline = Date.now() + 12e4;
|
|
@@ -153866,6 +154116,10 @@ var StreamerServer = class {
|
|
|
153866
154116
|
// Consecutive grace-timer defers for a still-`running` session (see
|
|
153867
154117
|
// GRACE_MAX_DEFERS). Reset when a subscriber reconnects or the PTY settles.
|
|
153868
154118
|
ptyGraceDeferCounts = /* @__PURE__ */ new Map();
|
|
154119
|
+
// Session ids that should be putOnHold at the next waiting_input/idle.
|
|
154120
|
+
// Same lifetime as ptyGraceTimers: in-memory, dropped on close/restart.
|
|
154121
|
+
// Last writer wins against the grace timer — never both armed.
|
|
154122
|
+
holdWhenIdle = /* @__PURE__ */ new Set();
|
|
153869
154123
|
// Map of sessionId → set of subscribed WS clients
|
|
153870
154124
|
sessionSubscribers = /* @__PURE__ */ new Map();
|
|
153871
154125
|
// sessionId → wall-clock ms of the last PTY chunk. Written from onOutput for
|
|
@@ -153891,6 +154145,7 @@ var StreamerServer = class {
|
|
|
153891
154145
|
wsToClientId = /* @__PURE__ */ new Map();
|
|
153892
154146
|
cache = null;
|
|
153893
154147
|
cacheMonitor = null;
|
|
154148
|
+
hostPressureMonitor = null;
|
|
153894
154149
|
projectsRepo = null;
|
|
153895
154150
|
conversationsRepo = null;
|
|
153896
154151
|
sessionsRepo = null;
|
|
@@ -153955,7 +154210,7 @@ var StreamerServer = class {
|
|
|
153955
154210
|
this.skipStartupWarmup = config2.skipStartupWarmup ?? false;
|
|
153956
154211
|
this.autoResumeOnBoot = config2.autoResumeOnBoot ?? false;
|
|
153957
154212
|
this.scanProfiles = config2.scanProfiles;
|
|
153958
|
-
this.codexRoots = config2.codexRoots ?? [(0, import_path35.join)((0,
|
|
154213
|
+
this.codexRoots = config2.codexRoots ?? [(0, import_path35.join)((0, import_os18.homedir)(), ".codex", "sessions")];
|
|
153959
154214
|
this.ptyGracePeriodMs = config2.ptyGracePeriodMs ?? DEFAULT_PTY_GRACE_PERIOD_MS;
|
|
153960
154215
|
this.defaultSystemPrompt = config2.defaultSystemPrompt ?? DEFAULT_SYSTEM_PROMPT;
|
|
153961
154216
|
const flagResolution = resolveFeatureFlags({
|
|
@@ -153972,7 +154227,7 @@ var StreamerServer = class {
|
|
|
153972
154227
|
this.claudeFlagsPersistable = config2.claudeFlags === void 0;
|
|
153973
154228
|
this.claudeFlags = config2.claudeFlags ?? loadClaudeFlags();
|
|
153974
154229
|
this.claudeExtraArgs = config2.claudeExtraArgs ?? loadClaudeExtraArgs();
|
|
153975
|
-
this.cacheDir = config2.cacheDir ?? loadCacheDir() ?? (0, import_path35.join)((0,
|
|
154230
|
+
this.cacheDir = config2.cacheDir ?? loadCacheDir() ?? (0, import_path35.join)((0, import_os18.homedir)(), ".threadbase", "cache");
|
|
153976
154231
|
this.runtimeDbPath = resolveRuntimeDbPath(config2.runtimeDbPath);
|
|
153977
154232
|
this.tailSize = config2.tailSize ?? loadTailSize() ?? 10;
|
|
153978
154233
|
this.directoryDebounceMs = parseDirScanDebounceEnv(process.env.THREADBASE_DIR_SCAN_DEBOUNCE_MS) ?? config2.directoryScanDebounceMs ?? 1e3;
|
|
@@ -154093,7 +154348,8 @@ var StreamerServer = class {
|
|
|
154093
154348
|
waitingInputNotifier: () => this.waitingInputNotifier,
|
|
154094
154349
|
ptyAttachedIds: () => this.ptyAttachedIds(),
|
|
154095
154350
|
cancelPendingQuestion: (sessionId) => this.cancelPendingQuestion(sessionId),
|
|
154096
|
-
rememberSelfPtyEnded: (conversationId) => this.rememberSelfPtyEnded(conversationId)
|
|
154351
|
+
rememberSelfPtyEnded: (conversationId) => this.rememberSelfPtyEnded(conversationId),
|
|
154352
|
+
maybeFireHoldWhenIdle: (session) => this.maybeFireHoldWhenIdle(session)
|
|
154097
154353
|
})
|
|
154098
154354
|
);
|
|
154099
154355
|
this.sessionWatchers = new SessionWatchers({
|
|
@@ -154240,6 +154496,7 @@ var StreamerServer = class {
|
|
|
154240
154496
|
// reset-and-rescan, and tests swap methods on the server instance.
|
|
154241
154497
|
cache: () => this.cache,
|
|
154242
154498
|
cacheMonitor: () => this.cacheMonitor,
|
|
154499
|
+
hostPressureMonitor: () => this.hostPressureMonitor,
|
|
154243
154500
|
pushRepo: () => this.pushRepo,
|
|
154244
154501
|
liveActivityPushEnabled: () => this.liveActivityNotifier !== null,
|
|
154245
154502
|
devicesRepo: () => this.devicesRepo,
|
|
@@ -154256,6 +154513,7 @@ var StreamerServer = class {
|
|
|
154256
154513
|
currentWarmupState: () => this.currentWarmupState(),
|
|
154257
154514
|
addSessionSubscriber: (sessionId, ws2) => this.addSessionSubscriber(sessionId, ws2),
|
|
154258
154515
|
startGraceTimer: (sessionId, delayMs) => this.startGraceTimer(sessionId, delayMs),
|
|
154516
|
+
armHoldWhenIdle: (sessionId) => this.armHoldWhenIdle(sessionId),
|
|
154259
154517
|
handleSessionsCount: (res) => this.handleSessionsCount(res),
|
|
154260
154518
|
applyLiveSessionSetting: (id, req, res, setting) => this.applyLiveSessionSetting(id, req, res, setting),
|
|
154261
154519
|
handlePairStart: (res) => this.handlePairStart(res),
|
|
@@ -154375,6 +154633,13 @@ var StreamerServer = class {
|
|
|
154375
154633
|
this.ptyGraceTimers.delete(sessionId);
|
|
154376
154634
|
}
|
|
154377
154635
|
this.ptyGraceDeferCounts.delete(sessionId);
|
|
154636
|
+
if (this.holdWhenIdle.delete(sessionId)) {
|
|
154637
|
+
this.log.info(
|
|
154638
|
+
`[hold-when-idle] cancelled ${sessionId} (subscribe)`,
|
|
154639
|
+
{ sessionId, event: "pty.hold_when_idle_cancel", reason: "subscribe" },
|
|
154640
|
+
"pino"
|
|
154641
|
+
);
|
|
154642
|
+
}
|
|
154378
154643
|
}
|
|
154379
154644
|
/**
|
|
154380
154645
|
* Bring up Live Activity push, if credentials are present (Feature 12).
|
|
@@ -154402,14 +154667,14 @@ var StreamerServer = class {
|
|
|
154402
154667
|
}
|
|
154403
154668
|
this.apnsClient = new ApnsClient(creds);
|
|
154404
154669
|
const sender = new LiveActivitySender(this.apnsClient, pushRepo);
|
|
154405
|
-
const serverId = process.env.THREADBASE_INSTANCE_ID ?? (0,
|
|
154406
|
-
this.liveActivityNotifier = new LiveActivityNotifier(sender, serverId, (0,
|
|
154670
|
+
const serverId = process.env.THREADBASE_INSTANCE_ID ?? (0, import_os18.hostname)();
|
|
154671
|
+
this.liveActivityNotifier = new LiveActivityNotifier(sender, serverId, (0, import_os18.hostname)());
|
|
154407
154672
|
this.liveActivityRenewal = new LiveActivityRenewalScheduler({
|
|
154408
154673
|
repo: pushRepo,
|
|
154409
154674
|
sender,
|
|
154410
154675
|
sessionStore: this.sessionStore,
|
|
154411
154676
|
serverId,
|
|
154412
|
-
serverLabel: (0,
|
|
154677
|
+
serverLabel: (0, import_os18.hostname)()
|
|
154413
154678
|
});
|
|
154414
154679
|
this.liveActivityRenewal.start();
|
|
154415
154680
|
this.log.info("Live Activity push enabled", {
|
|
@@ -154429,7 +154694,7 @@ var StreamerServer = class {
|
|
|
154429
154694
|
*/
|
|
154430
154695
|
initWaitingInputPush(pushRepo) {
|
|
154431
154696
|
const sender = new ExpoPushSender(pushRepo, process.env.THREADBASE_EXPO_ACCESS_TOKEN);
|
|
154432
|
-
const serverId = process.env.THREADBASE_INSTANCE_ID ?? (0,
|
|
154697
|
+
const serverId = process.env.THREADBASE_INSTANCE_ID ?? (0, import_os18.hostname)();
|
|
154433
154698
|
this.waitingInputNotifier = new WaitingInputNotifier(
|
|
154434
154699
|
sender,
|
|
154435
154700
|
serverId,
|
|
@@ -154482,6 +154747,7 @@ var StreamerServer = class {
|
|
|
154482
154747
|
return reaped;
|
|
154483
154748
|
}
|
|
154484
154749
|
startGraceTimer(sessionId, delayMs) {
|
|
154750
|
+
this.holdWhenIdle.delete(sessionId);
|
|
154485
154751
|
const existing = this.ptyGraceTimers.get(sessionId);
|
|
154486
154752
|
if (existing) clearTimeout(existing);
|
|
154487
154753
|
const timer = setTimeout(() => {
|
|
@@ -154523,6 +154789,63 @@ var StreamerServer = class {
|
|
|
154523
154789
|
}, delayMs);
|
|
154524
154790
|
this.ptyGraceTimers.set(sessionId, timer);
|
|
154525
154791
|
}
|
|
154792
|
+
clearGrace(sessionId) {
|
|
154793
|
+
const existing = this.ptyGraceTimers.get(sessionId);
|
|
154794
|
+
if (existing) {
|
|
154795
|
+
clearTimeout(existing);
|
|
154796
|
+
this.ptyGraceTimers.delete(sessionId);
|
|
154797
|
+
}
|
|
154798
|
+
this.ptyGraceDeferCounts.delete(sessionId);
|
|
154799
|
+
}
|
|
154800
|
+
/**
|
|
154801
|
+
* Arm the in-app "Kill on idle" latch: hold now if already settled, otherwise
|
|
154802
|
+
* on the next running → waiting_input (or idle). No grace delay, no defer cap.
|
|
154803
|
+
* A subscribed leaving socket must not block an immediate hold.
|
|
154804
|
+
*/
|
|
154805
|
+
armHoldWhenIdle(sessionId) {
|
|
154806
|
+
if (!this.ptyManager.hasSession(sessionId)) return;
|
|
154807
|
+
this.clearGrace(sessionId);
|
|
154808
|
+
const status = this.ptyManager.getSession(sessionId)?.status ?? this.sessionStore.getManaged(sessionId)?.status;
|
|
154809
|
+
if (status === "waiting_input" || status === "idle") {
|
|
154810
|
+
this.holdWhenIdle.delete(sessionId);
|
|
154811
|
+
this.ptyManager.putOnHold(sessionId);
|
|
154812
|
+
this.forgetIfEmptyUnused(sessionId);
|
|
154813
|
+
return;
|
|
154814
|
+
}
|
|
154815
|
+
this.holdWhenIdle.add(sessionId);
|
|
154816
|
+
this.log.info(
|
|
154817
|
+
`[hold-when-idle] armed ${sessionId}`,
|
|
154818
|
+
{ sessionId, event: "pty.hold_when_idle_armed" },
|
|
154819
|
+
"pino"
|
|
154820
|
+
);
|
|
154821
|
+
}
|
|
154822
|
+
/**
|
|
154823
|
+
* Fire the Kill-on-idle latch from the shared onStatusChange funnel.
|
|
154824
|
+
* Delete first so the ensuing idle transition cannot re-enter.
|
|
154825
|
+
*/
|
|
154826
|
+
maybeFireHoldWhenIdle(session) {
|
|
154827
|
+
if (session.status !== "waiting_input" && session.status !== "idle") return;
|
|
154828
|
+
if (!this.holdWhenIdle.has(session.id)) return;
|
|
154829
|
+
this.holdWhenIdle.delete(session.id);
|
|
154830
|
+
if (this.hasSessionSubscriber(session.id)) {
|
|
154831
|
+
this.log.info(
|
|
154832
|
+
`[hold-when-idle] cancelled ${session.id} (subscriber)`,
|
|
154833
|
+
{ sessionId: session.id, event: "pty.hold_when_idle_cancel", reason: "subscriber" },
|
|
154834
|
+
"pino"
|
|
154835
|
+
);
|
|
154836
|
+
return;
|
|
154837
|
+
}
|
|
154838
|
+
this.log.info(
|
|
154839
|
+
`[hold-when-idle] holding ${session.id}`,
|
|
154840
|
+
{ sessionId: session.id, event: "pty.hold_when_idle_fire" },
|
|
154841
|
+
"pino"
|
|
154842
|
+
);
|
|
154843
|
+
this.ptyManager.putOnHold(session.id);
|
|
154844
|
+
this.forgetIfEmptyUnused(session.id);
|
|
154845
|
+
}
|
|
154846
|
+
forgetIfEmptyUnused(sessionId) {
|
|
154847
|
+
this.sessionHandlers.forgetIfEmptyUnused(sessionId);
|
|
154848
|
+
}
|
|
154526
154849
|
get port() {
|
|
154527
154850
|
const addr = this.httpServer.address();
|
|
154528
154851
|
return typeof addr === "object" && addr ? addr.port : 0;
|
|
@@ -154601,7 +154924,7 @@ var StreamerServer = class {
|
|
|
154601
154924
|
let sessions = null;
|
|
154602
154925
|
for (let attempt = 0; attempt < 2; attempt += 1) {
|
|
154603
154926
|
const transport = await connectOrSpawnHost({
|
|
154604
|
-
instanceId: process.env.THREADBASE_INSTANCE_ID ?? (0,
|
|
154927
|
+
instanceId: process.env.THREADBASE_INSTANCE_ID ?? (0, import_os18.hostname)()
|
|
154605
154928
|
});
|
|
154606
154929
|
try {
|
|
154607
154930
|
sessions = await this.ptyManager.useRemoteRunner(transport);
|
|
@@ -154648,6 +154971,10 @@ var StreamerServer = class {
|
|
|
154648
154971
|
this.idleReaperTimer = setInterval(() => this.reapIdleSessions(), IDLE_REAP_SWEEP_MS);
|
|
154649
154972
|
this.idleReaperTimer.unref?.();
|
|
154650
154973
|
}
|
|
154974
|
+
this.hostPressureMonitor = createHostPressureMonitor(
|
|
154975
|
+
this.wsHub,
|
|
154976
|
+
() => this.ptyAttachedIds().size
|
|
154977
|
+
);
|
|
154651
154978
|
const warmUp = new Promise((resolveWarm) => {
|
|
154652
154979
|
{
|
|
154653
154980
|
this.log.info(`Streamer server listening on port ${port}`, {
|
|
@@ -154955,10 +155282,13 @@ var StreamerServer = class {
|
|
|
154955
155282
|
async close() {
|
|
154956
155283
|
for (const timer of this.ptyGraceTimers.values()) clearTimeout(timer);
|
|
154957
155284
|
this.ptyGraceTimers.clear();
|
|
155285
|
+
this.holdWhenIdle.clear();
|
|
154958
155286
|
if (this.idleReaperTimer) {
|
|
154959
155287
|
clearInterval(this.idleReaperTimer);
|
|
154960
155288
|
this.idleReaperTimer = null;
|
|
154961
155289
|
}
|
|
155290
|
+
this.hostPressureMonitor?.dispose();
|
|
155291
|
+
this.hostPressureMonitor = null;
|
|
154962
155292
|
this.lastAgentChunkAt.clear();
|
|
154963
155293
|
this.terminalSeq.clear();
|
|
154964
155294
|
if (this.ptyManager.isRemote()) this.ptyManager.dispose();
|
|
@@ -155152,7 +155482,7 @@ var StreamerServer = class {
|
|
|
155152
155482
|
deviceToken: device.deviceToken,
|
|
155153
155483
|
capabilities: device.capabilities,
|
|
155154
155484
|
publicUrl: this.publicUrl,
|
|
155155
|
-
machineName: (0,
|
|
155485
|
+
machineName: (0, import_os18.hostname)(),
|
|
155156
155486
|
serverVersion: getVersion()
|
|
155157
155487
|
})
|
|
155158
155488
|
);
|
|
@@ -155186,7 +155516,7 @@ var StreamerServer = class {
|
|
|
155186
155516
|
// Released builds that predate that fix DO still adopt it, so changing
|
|
155187
155517
|
// this value moves where old devices talk. It is not a free field.
|
|
155188
155518
|
publicUrl: this.publicUrl,
|
|
155189
|
-
machineName: (0,
|
|
155519
|
+
machineName: (0, import_os18.hostname)(),
|
|
155190
155520
|
...device && {
|
|
155191
155521
|
deviceId: device.deviceId,
|
|
155192
155522
|
deviceToken: device.deviceToken,
|