@threadbase-sh/streamer 1.65.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.
@@ -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,wDA2NF,CAAC"}
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":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AACnG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EACV,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,MAAM;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3D,iBAAiB,EAAE,MAAM;QACvB,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;QACpC,MAAM,EAAE,gBAAgB,CAAC;QACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,oBAAoB,EAAE,CACpB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,GAAG,SAAS,KAC1B;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAChF,kBAAkB,EAAE,MAAM;QACxB,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;QAC3C,MAAM,EAAE,oBAAoB,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;KACnD,CAAC;IACF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IACjD,sFAAsF;IACtF,QAAQ,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;IACtC;;;;;OAKG;IACH,uBAAuB,EAAE,MAAM,OAAO,CAAC;IAEvC,0EAA0E;IAC1E,WAAW,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAC5C,YAAY,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAC;IAC9C,iBAAiB,EAAE,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACxD,YAAY,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAC;IAC9C,iBAAiB,EAAE,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACxD,8FAA8F;IAC9F,YAAY,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;IACxC,0DAA0D;IAC1D,mBAAmB,EAAE,MAAM,yBAAyB,GAAG,IAAI,CAAC;IAC5D,8EAA8E;IAC9E,eAAe,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACrD,cAAc,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAElC,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,mBAAmB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACnD,uBAAuB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACjE,qBAAqB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACrD,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IAClE,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjG,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/D,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,oBAAoB,EAAE,CACpB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,qBAAqB,EAAE,CACrB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,sBAAsB,EAAE,CACtB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F,YAAY,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,kBAAkB,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjF,uBAAuB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,qBAAqB,EAAE,CACrB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,cAAc,EACnB,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7F,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5D,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IAClE,yBAAyB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACnE,eAAe,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,kBAAkB,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAI1E,YAAY,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IACpF,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC;IAEvC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC"}
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 import_os17 = require("os");
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
- (worst, c) => rank[c.status] > rank[worst] ? c.status : worst,
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([]));
@@ -151155,6 +151160,7 @@ function createApiDeps(deps) {
151155
151160
  wsHub: deps.wsHub,
151156
151161
  cache: () => deps.cache(),
151157
151162
  cacheMonitor: () => deps.cacheMonitor(),
151163
+ hostPressureMonitor: () => deps.hostPressureMonitor(),
151158
151164
  pushRepo: () => deps.pushRepo(),
151159
151165
  liveActivityPushEnabled: () => deps.liveActivityPushEnabled(),
151160
151166
  devicesRepo: () => deps.devicesRepo(),
@@ -151205,6 +151211,8 @@ function createApiDeps(deps) {
151205
151211
  }
151206
151212
  const alertMsg = deps.cacheMonitor()?.wsMessage();
151207
151213
  if (alertMsg) deps.wsHub.unicast(ws2, alertMsg);
151214
+ const pressureMsg = deps.hostPressureMonitor()?.wsMessage();
151215
+ if (pressureMsg) deps.wsHub.unicast(ws2, pressureMsg);
151208
151216
  },
151209
151217
  handleWsMessage: async (ws2, raw2, principal) => {
151210
151218
  const deny = (type, required2) => {
@@ -151829,6 +151837,221 @@ function pruneAgentConversations(cache) {
151829
151837
  return { scanned: rows.length, pruned, missing };
151830
151838
  }
151831
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
+
151832
152055
  // src/services/push/expoPushSender.ts
151833
152056
  init_logger();
151834
152057
  var log5 = getLogger("expo-push");
@@ -153372,7 +153595,7 @@ function discoveredToResponse(d, conversationId) {
153372
153595
 
153373
153596
  // src/session-watchers.ts
153374
153597
  var import_fs38 = require("fs");
153375
- var import_os16 = require("os");
153598
+ var import_os17 = require("os");
153376
153599
  var import_path34 = require("path");
153377
153600
  init_logger();
153378
153601
  var SessionWatchers = class {
@@ -153455,7 +153678,7 @@ var SessionWatchers = class {
153455
153678
  // was passed to Claude via --session-id so the filename matches from the start.
153456
153679
  watchForJsonl(sessionId, projectPath) {
153457
153680
  const encoded = projectPath.replace(/[/\\:.]/g, "-");
153458
- const projectsDir = (0, import_path34.join)((0, import_os16.homedir)(), ".claude", "projects", encoded);
153681
+ const projectsDir = (0, import_path34.join)((0, import_os17.homedir)(), ".claude", "projects", encoded);
153459
153682
  const expectedFile = `${sessionId}.jsonl`;
153460
153683
  const filePath = (0, import_path34.join)(projectsDir, expectedFile);
153461
153684
  const deadline = Date.now() + 12e4;
@@ -153922,6 +154145,7 @@ var StreamerServer = class {
153922
154145
  wsToClientId = /* @__PURE__ */ new Map();
153923
154146
  cache = null;
153924
154147
  cacheMonitor = null;
154148
+ hostPressureMonitor = null;
153925
154149
  projectsRepo = null;
153926
154150
  conversationsRepo = null;
153927
154151
  sessionsRepo = null;
@@ -153986,7 +154210,7 @@ var StreamerServer = class {
153986
154210
  this.skipStartupWarmup = config2.skipStartupWarmup ?? false;
153987
154211
  this.autoResumeOnBoot = config2.autoResumeOnBoot ?? false;
153988
154212
  this.scanProfiles = config2.scanProfiles;
153989
- this.codexRoots = config2.codexRoots ?? [(0, import_path35.join)((0, import_os17.homedir)(), ".codex", "sessions")];
154213
+ this.codexRoots = config2.codexRoots ?? [(0, import_path35.join)((0, import_os18.homedir)(), ".codex", "sessions")];
153990
154214
  this.ptyGracePeriodMs = config2.ptyGracePeriodMs ?? DEFAULT_PTY_GRACE_PERIOD_MS;
153991
154215
  this.defaultSystemPrompt = config2.defaultSystemPrompt ?? DEFAULT_SYSTEM_PROMPT;
153992
154216
  const flagResolution = resolveFeatureFlags({
@@ -154003,7 +154227,7 @@ var StreamerServer = class {
154003
154227
  this.claudeFlagsPersistable = config2.claudeFlags === void 0;
154004
154228
  this.claudeFlags = config2.claudeFlags ?? loadClaudeFlags();
154005
154229
  this.claudeExtraArgs = config2.claudeExtraArgs ?? loadClaudeExtraArgs();
154006
- this.cacheDir = config2.cacheDir ?? loadCacheDir() ?? (0, import_path35.join)((0, import_os17.homedir)(), ".threadbase", "cache");
154230
+ this.cacheDir = config2.cacheDir ?? loadCacheDir() ?? (0, import_path35.join)((0, import_os18.homedir)(), ".threadbase", "cache");
154007
154231
  this.runtimeDbPath = resolveRuntimeDbPath(config2.runtimeDbPath);
154008
154232
  this.tailSize = config2.tailSize ?? loadTailSize() ?? 10;
154009
154233
  this.directoryDebounceMs = parseDirScanDebounceEnv(process.env.THREADBASE_DIR_SCAN_DEBOUNCE_MS) ?? config2.directoryScanDebounceMs ?? 1e3;
@@ -154272,6 +154496,7 @@ var StreamerServer = class {
154272
154496
  // reset-and-rescan, and tests swap methods on the server instance.
154273
154497
  cache: () => this.cache,
154274
154498
  cacheMonitor: () => this.cacheMonitor,
154499
+ hostPressureMonitor: () => this.hostPressureMonitor,
154275
154500
  pushRepo: () => this.pushRepo,
154276
154501
  liveActivityPushEnabled: () => this.liveActivityNotifier !== null,
154277
154502
  devicesRepo: () => this.devicesRepo,
@@ -154442,14 +154667,14 @@ var StreamerServer = class {
154442
154667
  }
154443
154668
  this.apnsClient = new ApnsClient(creds);
154444
154669
  const sender = new LiveActivitySender(this.apnsClient, pushRepo);
154445
- const serverId = process.env.THREADBASE_INSTANCE_ID ?? (0, import_os17.hostname)();
154446
- this.liveActivityNotifier = new LiveActivityNotifier(sender, serverId, (0, import_os17.hostname)());
154670
+ const serverId = process.env.THREADBASE_INSTANCE_ID ?? (0, import_os18.hostname)();
154671
+ this.liveActivityNotifier = new LiveActivityNotifier(sender, serverId, (0, import_os18.hostname)());
154447
154672
  this.liveActivityRenewal = new LiveActivityRenewalScheduler({
154448
154673
  repo: pushRepo,
154449
154674
  sender,
154450
154675
  sessionStore: this.sessionStore,
154451
154676
  serverId,
154452
- serverLabel: (0, import_os17.hostname)()
154677
+ serverLabel: (0, import_os18.hostname)()
154453
154678
  });
154454
154679
  this.liveActivityRenewal.start();
154455
154680
  this.log.info("Live Activity push enabled", {
@@ -154469,7 +154694,7 @@ var StreamerServer = class {
154469
154694
  */
154470
154695
  initWaitingInputPush(pushRepo) {
154471
154696
  const sender = new ExpoPushSender(pushRepo, process.env.THREADBASE_EXPO_ACCESS_TOKEN);
154472
- const serverId = process.env.THREADBASE_INSTANCE_ID ?? (0, import_os17.hostname)();
154697
+ const serverId = process.env.THREADBASE_INSTANCE_ID ?? (0, import_os18.hostname)();
154473
154698
  this.waitingInputNotifier = new WaitingInputNotifier(
154474
154699
  sender,
154475
154700
  serverId,
@@ -154699,7 +154924,7 @@ var StreamerServer = class {
154699
154924
  let sessions = null;
154700
154925
  for (let attempt = 0; attempt < 2; attempt += 1) {
154701
154926
  const transport = await connectOrSpawnHost({
154702
- instanceId: process.env.THREADBASE_INSTANCE_ID ?? (0, import_os17.hostname)()
154927
+ instanceId: process.env.THREADBASE_INSTANCE_ID ?? (0, import_os18.hostname)()
154703
154928
  });
154704
154929
  try {
154705
154930
  sessions = await this.ptyManager.useRemoteRunner(transport);
@@ -154746,6 +154971,10 @@ var StreamerServer = class {
154746
154971
  this.idleReaperTimer = setInterval(() => this.reapIdleSessions(), IDLE_REAP_SWEEP_MS);
154747
154972
  this.idleReaperTimer.unref?.();
154748
154973
  }
154974
+ this.hostPressureMonitor = createHostPressureMonitor(
154975
+ this.wsHub,
154976
+ () => this.ptyAttachedIds().size
154977
+ );
154749
154978
  const warmUp = new Promise((resolveWarm) => {
154750
154979
  {
154751
154980
  this.log.info(`Streamer server listening on port ${port}`, {
@@ -155058,6 +155287,8 @@ var StreamerServer = class {
155058
155287
  clearInterval(this.idleReaperTimer);
155059
155288
  this.idleReaperTimer = null;
155060
155289
  }
155290
+ this.hostPressureMonitor?.dispose();
155291
+ this.hostPressureMonitor = null;
155061
155292
  this.lastAgentChunkAt.clear();
155062
155293
  this.terminalSeq.clear();
155063
155294
  if (this.ptyManager.isRemote()) this.ptyManager.dispose();
@@ -155251,7 +155482,7 @@ var StreamerServer = class {
155251
155482
  deviceToken: device.deviceToken,
155252
155483
  capabilities: device.capabilities,
155253
155484
  publicUrl: this.publicUrl,
155254
- machineName: (0, import_os17.hostname)(),
155485
+ machineName: (0, import_os18.hostname)(),
155255
155486
  serverVersion: getVersion()
155256
155487
  })
155257
155488
  );
@@ -155285,7 +155516,7 @@ var StreamerServer = class {
155285
155516
  // Released builds that predate that fix DO still adopt it, so changing
155286
155517
  // this value moves where old devices talk. It is not a free field.
155287
155518
  publicUrl: this.publicUrl,
155288
- machineName: (0, import_os17.hostname)(),
155519
+ machineName: (0, import_os18.hostname)(),
155289
155520
  ...device && {
155290
155521
  deviceId: device.deviceId,
155291
155522
  deviceToken: device.deviceToken,