@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.
@@ -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":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE5D,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;AAI5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAejE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAiB1C,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAS/C,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AA+B3C,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAA2B,GAClC,OAAO,CAAC,OAAO,CAAC,CAWlB;AAsCD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,mBAAmB,CAAC;IAClC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gBAAgB,EAAE,GAAG,CACnB,MAAM,EACN;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,WAAW,EAAE,CAAC;QAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAA;KAAE,CACzE,CAAC;IACF,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,iBAAiB,EAAE,GAAG,CACpB,MAAM,EACN;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CACnF,CAAC;IACF,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,OAAO,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IAKjB,KAAK,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;IACtC,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,gBAAgB,CAAC;IACpC,eAAe,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC;IAC5D,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAIlC,cAAc,EAAE,MAAM;QAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjF,iBAAiB,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/F,iBAAiB,EAAE,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC,GAAG,IAAI,CAAC;IAC7D,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAG3E,iBAAiB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC;IACpD,cAAc,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,uBAAuB,EAAE,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,KAAK,SAAS,eAAe,EAAE,CAAC;IAC9F,6BAA6B,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IAC9D,0BAA0B,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,0BAA0B,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3D,kBAAkB,EAAE,MAAM;QACxB,cAAc,EAAE,cAAc,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,WAAW,CAAC;KACrB,CAAC;IACF,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CACrD,aAAa,GACb;QACE,EAAE,EAAE,IAAI,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,IAAI,EAAE,GAAG,CAAC;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,YAAY,CAAC;KACxB,CACJ,CAAC;IACF,qBAAqB,EAAE,CACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC1F,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACvF,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAChE,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,IAAI;IAAxB,YAAoB,IAAI,EAAE,mBAAmB,EAAI;IAEjD,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,KAAK,kBAAkB,GAE7B;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,oBAAoB,GAE/B;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,kBAAkB,GAE7B;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED,OAAO,KAAK,wBAAwB,GAEnC;IAED,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,cAAc,QAEzB;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,iBAAiB,QAE5B;IAEK,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CrE;IAED;;;OAGG;YACW,gBAAgB;IA+BxB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C5E;IAEK,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE3E;IAED;;;;;;;;;;;;;OAaG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqH5F;IAED;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,IAAI,EAAE;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,aAAa,CAAC,CAyKzB;IAEK,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAsHf;IAOD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAOpE;IAKD,sBAAsB,CACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI,GACP,IAAI,CAyBN;IAEK,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAiCf;YAIa,qBAAqB;IAS7B,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CA4Df;IAED,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAS5D;IAED,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CASzD;IAEK,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA6D7E;IAED;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,yBAAyB;IAY3B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuHvE;IAEK,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAwIjF;IAEK,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAmBf;IAED,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAM/C;CACF"}
1
+ {"version":3,"file":"sessions.handlers.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/sessions.handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE5D,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;AAI5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAejE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAiB1C,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAS/C,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AA+B3C,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAA2B,GAClC,OAAO,CAAC,OAAO,CAAC,CAWlB;AAsCD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,mBAAmB,CAAC;IAClC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gBAAgB,EAAE,GAAG,CACnB,MAAM,EACN;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,WAAW,EAAE,CAAC;QAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAA;KAAE,CACzE,CAAC;IACF,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,iBAAiB,EAAE,GAAG,CACpB,MAAM,EACN;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CACnF,CAAC;IACF,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,OAAO,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IAKjB,KAAK,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;IACtC,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,gBAAgB,CAAC;IACpC,eAAe,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC;IAC5D,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAIlC,cAAc,EAAE,MAAM;QAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjF,iBAAiB,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/F,iBAAiB,EAAE,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC,GAAG,IAAI,CAAC;IAC7D,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAG3E,iBAAiB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC;IACpD,cAAc,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,uBAAuB,EAAE,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,KAAK,SAAS,eAAe,EAAE,CAAC;IAC9F,6BAA6B,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IAC9D,0BAA0B,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,0BAA0B,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3D,kBAAkB,EAAE,MAAM;QACxB,cAAc,EAAE,cAAc,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,WAAW,CAAC;KACrB,CAAC;IACF,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CACrD,aAAa,GACb;QACE,EAAE,EAAE,IAAI,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,IAAI,EAAE,GAAG,CAAC;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,YAAY,CAAC;KACxB,CACJ,CAAC;IACF,qBAAqB,EAAE,CACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC1F,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACvF,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAChE,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,IAAI;IAAxB,YAAoB,IAAI,EAAE,mBAAmB,EAAI;IAEjD,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,KAAK,kBAAkB,GAE7B;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,oBAAoB,GAE/B;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,kBAAkB,GAE7B;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED,OAAO,KAAK,wBAAwB,GAEnC;IAED,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,cAAc,QAEzB;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,iBAAiB,QAE5B;IAEK,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CrE;IAED;;;OAGG;YACW,gBAAgB;IA+BxB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C5E;IAEK,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE3E;IAED;;;;;;;;;;;;;OAaG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqH5F;IAED;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,IAAI,EAAE;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,aAAa,CAAC,CAyKzB;IAEK,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAsHf;IAOD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAOpE;IAKD,sBAAsB,CACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI,GACP,IAAI,CAyBN;IAEK,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAiCf;YAIa,qBAAqB;IAS7B,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CA4Df;IAED,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAS5D;IAED,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CASzD;IAEK,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA6D7E;IAED;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,yBAAyB;IAYjC;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAO3C;IAEK,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuHvE;IAEK,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAwIjF;IAEK,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAmBf;IAED,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAM/C;CACF"}
@@ -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":"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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 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([]));
@@ -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
- deps.startGraceTimer(msg.sessionId, deps.ptyGracePeriodMs);
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 import_os16 = require("os");
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, import_os16.homedir)(), ".claude", "projects", encoded);
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, import_os17.homedir)(), ".codex", "sessions")];
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, import_os17.homedir)(), ".threadbase", "cache");
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, import_os17.hostname)();
154406
- 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)());
154407
154672
  this.liveActivityRenewal = new LiveActivityRenewalScheduler({
154408
154673
  repo: pushRepo,
154409
154674
  sender,
154410
154675
  sessionStore: this.sessionStore,
154411
154676
  serverId,
154412
- serverLabel: (0, import_os17.hostname)()
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, import_os17.hostname)();
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, import_os17.hostname)()
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, import_os17.hostname)(),
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, import_os17.hostname)(),
155519
+ machineName: (0, import_os18.hostname)(),
155190
155520
  ...device && {
155191
155521
  deviceId: device.deviceId,
155192
155522
  deviceToken: device.deviceToken,