@sentropic/h2a-runtime 0.90.1 → 0.90.3

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/run.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { serve } from "@hono/node-server";
2
- import { createNodeWebSocket } from "@hono/node-ws";
3
2
  import { REMOTE_PROTOCOL_VERSION, REMOTE_SCHEMA_VERSION, } from "./protocol-local.js";
4
3
  import { Hono } from "hono";
5
4
  import { streamSSE } from "hono/streaming";
@@ -94,7 +93,6 @@ export async function run(options) {
94
93
  stdout.on?.("resize", onResize);
95
94
  // Open control-plane in-process for remote attach.
96
95
  const app = new Hono();
97
- const nodeWs = createNodeWebSocket({ app });
98
96
  app.get("/healthz", (c) => c.json({ ok: true, sessionId, profile: profile.profile }));
99
97
  app.get(`/sessions/${sessionId}`, (c) => c.json({
100
98
  session: {
@@ -152,7 +150,6 @@ export async function run(options) {
152
150
  });
153
151
  const port = options.port ?? 0;
154
152
  const server = serve({ fetch: app.fetch, port, hostname: "127.0.0.1" });
155
- nodeWs.injectWebSocket(server);
156
153
  let actualPort = port;
157
154
  const address = server.address();
158
155
  if (address && typeof address === "object") {
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAsB,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAmC,MAAM,UAAU,CAAC;AAiB3E,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;SAC5C,QAAQ,CAAC,EAAE,CAAC;SACZ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpB,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,mBAAmB,GAAG;IAC1B,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,eAAwB;IAC9B,WAAW,EAAE,YAAY;CAC1B,CAAC;AAEF,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,kBAAkB;IACtB,IAAI,EAAE,eAAwB;IAC9B,WAAW,EAAE,kBAAkB;CAChC,CAAC;AAUF,SAAS,aAAa,CACpB,OAAuB,EACvB,IAAiC,EACjC,OAAgC,EAChC,QAAoC,EACpC,KAAiB,EACjB,KAAK,GAAG,WAAW;IAEnB,OAAO;QACL,eAAe,EAAE,uBAAuB;QACxC,aAAa,EAAE,qBAAqB;QACpC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;QAC5B,IAAI;QACJ,UAAU,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE;QACjC,aAAa,EAAE,OAAO,OAAO,CAAC,SAAS,EAAE;QACzC,KAAK;QACL,OAAO;KACR,CAAC;AACJ,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAmB;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACtE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IAE9C,MAAM,MAAM,GAAG,OAAO,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC;QACvC,GAAG;QACH,GAAG,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,IAAK,OAAO,CAAC,GAA8B,CAAC,EAAE;QACpE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2C,CAAC;IACvE,MAAM,OAAO,GAAmB;QAC9B,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,KAAK;KACd,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,QAA6B,EAAE,EAAE;QAClD,KAAK,MAAM,UAAU,IAAI,WAAW;YAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,sEAAsE;IACtE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACtB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpB,SAAS,CACP,aAAa,CACX,OAAO,EACP,iBAAiB,EACjB;YACE,UAAU;YACV,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,MAAM;SACjB,EACD,QAAQ,EACR,KAAK,CACN,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAqB,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,WAAW,EAAE,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC;IAC3E,CAAC,CAAC;IACF,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEhC,mDAAmD;IACnD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CACxB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAC1D,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,aAAa,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CACtC,CAAC,CAAC,IAAI,CAAC;QACL,OAAO,EAAE;YACP,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,KAAK;YACb,aAAa,EAAE,GAAG;YAClB,SAAS,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE;YAChC,SAAS,EAAE,mBAAmB;SAC/B;KACF,CAAC,CACH,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,aAAa,SAAS,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QAC7C,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,KAAK,GAA0B,EAAE,CAAC;YACxC,IAAI,MAAM,GAAwB,IAAI,CAAC;YACvC,MAAM,UAAU,GAAG,CAAC,QAA6B,EAAE,EAAE;gBACnD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrB,MAAM,IAAI,GAAG,MAAM,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,EAAE,EAAE,CAAC;YACX,CAAC,CAAC;YACF,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBAClB,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;wBAC/B,IAAI,CAAC,QAAQ;4BAAE,MAAM;wBACrB,MAAM,MAAM,CAAC,QAAQ,CAAC;4BACpB,KAAK,EAAE,QAAQ,CAAC,IAAI;4BACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;4BAC9B,EAAE,EAAE,QAAQ,CAAC,OAAO;yBACrB,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,MAAM,CAAC,OAAO;wBAAE,MAAM;oBAC1B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;wBAClC,MAAM,GAAG,OAAO,CAAC;oBACnB,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,aAAa,SAAS,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC;QACvD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAExE,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3C,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC7D,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,SAAS,CACP,aAAa,CACX,OAAO,EACP,iBAAiB,EACjB,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,EACtC,QAAQ,EACR,KAAK,CACN,CACF,CAAC;IAEF,aAAa;IACb,IAAI,WAAqE,CAAC;IAC1E,MAAM,IAAI,GAAG,IAAI,OAAO,CAAwC,CAAC,OAAO,EAAE,EAAE;QAC1E,WAAW,GAAG,OAAO,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACtB,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO;QAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QACtB,SAAS,CACP,aAAa,CACX,OAAO,EACP,iBAAiB,EACjB;YACE,UAAU;YACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;gBAC5B,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBAClC,CAAC,CAAC,EAAE,CAAC;SACR,EACD,QAAQ,EACR,KAAK,CACN,CACF,CAAC;QACF,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,SAAS;QACT,IAAI,EAAE,UAAU;QAChB,IAAI;QACJ,KAAK,CAAC,IAAI;YACR,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -6,5 +6,17 @@
6
6
  */
7
7
  export declare const SESSION_CLASS_ENV = "H2A_SESSION_CLASS";
8
8
  export type SessionClass = "human" | "background";
9
+ /**
10
+ * Classify a local launch from the evidence available at launch time.
11
+ *
12
+ * A session is human only when it is neither a background/headless launch nor
13
+ * missing proof of a terminal a human will use. Unknown evidence deliberately
14
+ * resolves to background: callers must opt into the human classification.
15
+ */
16
+ export declare function deriveSessionClass(options: {
17
+ readonly background?: boolean;
18
+ readonly headless?: boolean;
19
+ readonly humanTerminal?: boolean;
20
+ }): SessionClass;
9
21
  export declare function sessionClassFromEnv(value: string | undefined): SessionClass | undefined;
10
22
  //# sourceMappingURL=session-class.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-class.d.ts","sourceRoot":"","sources":["../src/session-class.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,YAAY,CAAC;AAElD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,YAAY,GAAG,SAAS,CAE1B"}
1
+ {"version":3,"file":"session-class.d.ts","sourceRoot":"","sources":["../src/session-class.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,YAAY,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,YAAY,CASf;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,YAAY,GAAG,SAAS,CAE1B"}
@@ -5,6 +5,21 @@
5
5
  * a later hook event.
6
6
  */
7
7
  export const SESSION_CLASS_ENV = "H2A_SESSION_CLASS";
8
+ /**
9
+ * Classify a local launch from the evidence available at launch time.
10
+ *
11
+ * A session is human only when it is neither a background/headless launch nor
12
+ * missing proof of a terminal a human will use. Unknown evidence deliberately
13
+ * resolves to background: callers must opt into the human classification.
14
+ */
15
+ export function deriveSessionClass(options) {
16
+ if (options.background === true ||
17
+ options.headless === true ||
18
+ options.humanTerminal !== true) {
19
+ return "background";
20
+ }
21
+ return "human";
22
+ }
8
23
  export function sessionClassFromEnv(value) {
9
24
  return value === "human" || value === "background" ? value : undefined;
10
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-class.js","sourceRoot":"","sources":["../src/session-class.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAIrD,MAAM,UAAU,mBAAmB,CACjC,KAAyB;IAEzB,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"session-class.js","sourceRoot":"","sources":["../src/session-class.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAIrD;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAIlC;IACC,IACE,OAAO,CAAC,UAAU,KAAK,IAAI;QAC3B,OAAO,CAAC,QAAQ,KAAK,IAAI;QACzB,OAAO,CAAC,aAAa,KAAK,IAAI,EAC9B,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAyB;IAEzB,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC"}
@@ -41,6 +41,7 @@
41
41
  * REPLACED its own. That property is enforced by the code and tested; secrecy
42
42
  * against a local reader is not claimed.
43
43
  */
44
+ import type { ProcView } from "./proc-cpu.js";
44
45
  /**
45
46
  * Default lease TTL. 30 minutes, the same figure track settled on: long enough
46
47
  * that a session pausing between two tool calls is never mistaken for finished,
@@ -69,6 +70,14 @@ export declare const DEFAULT_SESSION_LEASE_TTL_MS: number;
69
70
  * PROPOSED for reclamation to a human or conductor, who can still see it.
70
71
  */
71
72
  export declare const DEFAULT_WORKING_CPU_MS_PER_SECOND = 75;
73
+ /** Maximum time a token-holder may keep a lease in the relaunch gap. */
74
+ export declare const DEFAULT_RESOLVING_BOUND_MS = 60000;
75
+ export type SessionLeaseWorker = {
76
+ pid: number;
77
+ startTime: string;
78
+ bootId: string;
79
+ };
80
+ export type SessionLeaseWorkerState = SessionLeaseWorker | "resolving";
72
81
  /** A CPU observation of the session's pane process tree, at a point in time. */
73
82
  export interface SessionCpuSample {
74
83
  /** Cumulative CPU (ms) of the pane's whole process tree — `paneTreeCpuMs`. */
@@ -98,6 +107,11 @@ export interface SessionLease {
98
107
  token: string;
99
108
  /** Last CPU observation — the evidence the beat decision is derived from. */
100
109
  sample?: SessionCpuSample;
110
+ /** Composite identity of the process actually doing the work. */
111
+ worker?: SessionLeaseWorkerState;
112
+ /** Bounded token-protected relaunch window (used while worker is resolving). */
113
+ relaunchStartedAt?: string;
114
+ resolvingBoundMs?: number;
101
115
  }
102
116
  /** Rejected lease operation (wrong token, absent lease, subject already held). */
103
117
  export declare class SessionLeaseError extends Error {
@@ -109,6 +123,14 @@ export declare class SessionLeaseError extends Error {
109
123
  * acquire guard, by the reclaim report, and by callers deciding what to show.
110
124
  */
111
125
  export declare function isSessionLeaseAbandoned(lease: SessionLease, now: string): boolean;
126
+ /** True when a present worker is contradicted by the current boot/proc view. */
127
+ export declare function workerDisproven(lease: SessionLease, procView: ProcView | undefined, now?: string): boolean;
128
+ /** The one liveness projection used by slot and reclaim readers. */
129
+ export declare function isSessionLeaseAlive(lease: SessionLease, procView: ProcView | undefined, now: string): boolean;
130
+ export declare function isSessionLeaseDeadBoot(lease: SessionLease, procView: ProcView | undefined): boolean;
131
+ export declare function isSessionLeaseContested(lease: SessionLease, procView: ProcView | undefined, now: string): boolean;
132
+ /** Pure slot counter; every count goes through the same liveness predicate. */
133
+ export declare function countLiveSessionLeases(leases: ReadonlyArray<SessionLease>, procView: ProcView | undefined, now: string): number;
112
134
  /**
113
135
  * CPU rate (ms of CPU per second of wall clock) between the lease's last
114
136
  * observation and `cpuMsNow` taken at `now`. Undefined when there is no prior
@@ -116,7 +138,7 @@ export declare function isSessionLeaseAbandoned(lease: SessionLease, now: string
116
138
  * BACKWARDS (the pane's tree was replaced — a relaunch, or PID reuse): a
117
139
  * negative delta is not a rate, and must never be read as "idle". PURE.
118
140
  */
119
- export declare function cpuRateMsPerSecond(lease: SessionLease, cpuMsNow: number, now: string): number | undefined;
141
+ export declare function cpuRateMsPerSecond(lease: Pick<SessionLease, "sample">, cpuMsNow: number, now: string): number | undefined;
120
142
  /**
121
143
  * What a supervising pass should do with one lease, given a fresh CPU reading.
122
144
  * PURE — the probe is the caller's effect, the decision is testable here.
@@ -154,6 +176,8 @@ export interface SessionReclaimProposal {
154
176
  heartbeatAt: string;
155
177
  /** CPU rate over the whole unbeaten window, when a sample exists (ms/s). */
156
178
  lastRateMsPerSecond?: number;
179
+ /** Contested is same-boot worker disproof; abandoned is the legacy TTL case. */
180
+ reason?: "abandoned" | "contested";
157
181
  }
158
182
  /**
159
183
  * The abandoned leases at `now`, as PROPOSALS. This function proposes; it never
@@ -161,7 +185,7 @@ export interface SessionReclaimProposal {
161
185
  * that still beats — is structurally excluded: the only filter is
162
186
  * `isSessionLeaseAbandoned`, so a beating session can never appear here. PURE.
163
187
  */
164
- export declare function reclaimProposals(leases: ReadonlyArray<SessionLease>, now: string): SessionReclaimProposal[];
188
+ export declare function reclaimProposals(leases: ReadonlyArray<SessionLease>, now: string, procView?: ProcView): SessionReclaimProposal[];
165
189
  /**
166
190
  * What a supervising pass must do with each recorded lease, BEFORE any probe.
167
191
  * The registry state decides; the CPU probe only happens for `probe` steps.
@@ -194,6 +218,25 @@ export interface LeasedSessionState {
194
218
  tmuxSession?: string;
195
219
  }
196
220
  export declare function planLeaseSupervision(leases: ReadonlyArray<SessionLease>, sessions: ReadonlyArray<LeasedSessionState>): LeaseSupervisionStep[];
221
+ export type SessionLeaseManagedSession = {
222
+ readonly sessionId: string;
223
+ readonly tmuxSession?: string;
224
+ readonly jobState?: string;
225
+ };
226
+ export type SessionLeaseStatusSurface = {
227
+ readonly sessionName: string;
228
+ readonly marker?: string;
229
+ };
230
+ export type SessionLeaseFleetAudit = {
231
+ /** Live managed sessions for which the installed marker is absent/drifted. */
232
+ missingStatusSurface: string[];
233
+ /** Same-boot worker disproofs; these are reclaim proposals, not reaps. */
234
+ contested: SessionReclaimProposal[];
235
+ /** Prior-boot worker leases; these are silently reaped. */
236
+ deadBoot: string[];
237
+ };
238
+ /** Pure read-back auditor projection over one tmux and one /proc snapshot. */
239
+ export declare function auditSessionLeaseFleet(sessions: ReadonlyArray<SessionLeaseManagedSession>, leases: ReadonlyArray<SessionLease>, statusSurfaces: ReadonlyArray<SessionLeaseStatusSurface>, procView: ProcView, now: string): SessionLeaseFleetAudit;
197
240
  /** Machine-scoped path of the session-lease side-store (beside `registry.json`). */
198
241
  export declare function resolveSessionLeasePath(): string;
199
242
  /**
@@ -216,8 +259,8 @@ export declare class SessionLeaseStore {
216
259
  readAll(): SessionLease[];
217
260
  /** The lease recorded for a session, live or abandoned, if any. */
218
261
  forSession(sessionId: string): SessionLease | undefined;
219
- /** The leases abandoned at `now` (explicit instant — the store adds no clock). */
220
- abandoned(now: string): SessionLease[];
262
+ /** The leases not alive at `now`, using the shared reader predicate. */
263
+ abandoned(now: string, procView?: ProcView): SessionLease[];
221
264
  /**
222
265
  * Take the slot for `sessionId`. Rejects when a LIVE lease already covers it
223
266
  * (one active lease per session). An ABANDONED prior lease does not block: the
@@ -231,6 +274,7 @@ export declare class SessionLeaseStore {
231
274
  workspace?: string;
232
275
  ttlMs?: number;
233
276
  cpuMs?: number;
277
+ worker?: SessionLeaseWorker;
234
278
  }): SessionLease;
235
279
  /**
236
280
  * Renew a lease — the holder's assertion that the session is WORKING. Only the
@@ -255,6 +299,39 @@ export declare class SessionLeaseStore {
255
299
  token: string;
256
300
  cpuMs: number;
257
301
  }): SessionLease;
302
+ /** Lazily migrate a legacy lease once a supervising pass can resolve its worker. */
303
+ populateWorker(input: {
304
+ sessionId: string;
305
+ token: string;
306
+ worker: SessionLeaseWorker;
307
+ }): SessionLease;
308
+ /** Begin the bounded token-guarded relaunch window. */
309
+ beginRelaunch(input: {
310
+ sessionId: string;
311
+ token: string;
312
+ resolvingBoundMs?: number;
313
+ }): SessionLease;
314
+ /** Complete the same-act relaunch with the newly resolved worker identity. */
315
+ finishRelaunch(input: {
316
+ sessionId: string;
317
+ token: string;
318
+ worker: SessionLeaseWorker;
319
+ }): SessionLease;
320
+ /**
321
+ * Run a relaunch and re-resolve the worker under the holder's token. If the
322
+ * process is not visible immediately, the bounded `resolving` state remains
323
+ * on disk and becomes reclaimable after its bound.
324
+ */
325
+ relaunch(input: {
326
+ sessionId: string;
327
+ token: string;
328
+ resolvingBoundMs?: number;
329
+ act: () => boolean;
330
+ resolveWorker: () => SessionLeaseWorker | undefined;
331
+ }): {
332
+ succeeded: boolean;
333
+ lease: SessionLease;
334
+ };
258
335
  /** Give the slot back. Only the matching token is accepted. */
259
336
  release(input: {
260
337
  sessionId: string;
@@ -262,5 +339,7 @@ export declare class SessionLeaseStore {
262
339
  }): void;
263
340
  /** Shared token-guarded read-modify-write for `heartbeat` and `observe`. */
264
341
  private mutate;
342
+ /** Remove only leases proven to belong to a prior kernel boot. */
343
+ reapDeadBootLeases(procView: ProcView): string[];
265
344
  }
266
345
  //# sourceMappingURL=session-lease.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-lease.d.ts","sourceRoot":"","sources":["../src/session-lease.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-lease.d.ts","sourceRoot":"","sources":["../src/session-lease.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,8 @@ export const DEFAULT_SESSION_LEASE_TTL_MS = 30 * 60_000;
74
74
  * PROPOSED for reclamation to a human or conductor, who can still see it.
75
75
  */
76
76
  export const DEFAULT_WORKING_CPU_MS_PER_SECOND = 75;
77
+ /** Maximum time a token-holder may keep a lease in the relaunch gap. */
78
+ export const DEFAULT_RESOLVING_BOUND_MS = 60_000;
77
79
  /** Rejected lease operation (wrong token, absent lease, subject already held). */
78
80
  export class SessionLeaseError extends Error {
79
81
  constructor(message) {
@@ -89,6 +91,61 @@ export class SessionLeaseError extends Error {
89
91
  export function isSessionLeaseAbandoned(lease, now) {
90
92
  return Date.parse(now) - Date.parse(lease.heartbeatAt) > lease.ttlMs;
91
93
  }
94
+ function workerRecord(worker) {
95
+ return worker !== undefined && worker !== "resolving" ? worker : undefined;
96
+ }
97
+ function processStartTime(procView, pid) {
98
+ if (Array.isArray(procView.processes)) {
99
+ return procView.processes.find((process) => process.pid === pid)?.startTime;
100
+ }
101
+ return procView.processes.get(pid)
102
+ ?.startTime;
103
+ }
104
+ /** True when a present worker is contradicted by the current boot/proc view. */
105
+ export function workerDisproven(lease, procView, now) {
106
+ if (lease.worker === undefined)
107
+ return false; // R1: absent is UNKNOWN.
108
+ if (lease.worker === "resolving") {
109
+ // Resolving is safe only inside its own bounded window. When no instant is
110
+ // supplied, direct callers can still inspect the state without introducing
111
+ // an implicit clock; isSessionLeaseAlive always supplies `now`.
112
+ if (now === undefined)
113
+ return false;
114
+ const started = Date.parse(lease.relaunchStartedAt ?? "");
115
+ const bound = lease.resolvingBoundMs;
116
+ return (!Number.isFinite(started) ||
117
+ typeof bound !== "number" ||
118
+ !Number.isFinite(bound) ||
119
+ bound < 0 ||
120
+ Date.parse(now) - started > bound);
121
+ }
122
+ if (procView === undefined)
123
+ return false; // Unknown evidence is not disproof.
124
+ if (!procView.currentBootId)
125
+ return false; // /proc unavailable is UNKNOWN.
126
+ if (lease.worker.bootId !== procView.currentBootId)
127
+ return true;
128
+ const startTime = processStartTime(procView, lease.worker.pid);
129
+ return startTime === undefined || startTime !== lease.worker.startTime;
130
+ }
131
+ /** The one liveness projection used by slot and reclaim readers. */
132
+ export function isSessionLeaseAlive(lease, procView, now) {
133
+ return !isSessionLeaseAbandoned(lease, now) && !workerDisproven(lease, procView, now);
134
+ }
135
+ export function isSessionLeaseDeadBoot(lease, procView) {
136
+ const worker = workerRecord(lease.worker);
137
+ return (worker !== undefined &&
138
+ procView !== undefined &&
139
+ procView.currentBootId !== "" &&
140
+ worker.bootId !== procView.currentBootId);
141
+ }
142
+ export function isSessionLeaseContested(lease, procView, now) {
143
+ return workerDisproven(lease, procView, now) && !isSessionLeaseDeadBoot(lease, procView);
144
+ }
145
+ /** Pure slot counter; every count goes through the same liveness predicate. */
146
+ export function countLiveSessionLeases(leases, procView, now) {
147
+ return leases.filter((lease) => isSessionLeaseAlive(lease, procView, now)).length;
148
+ }
92
149
  /**
93
150
  * CPU rate (ms of CPU per second of wall clock) between the lease's last
94
151
  * observation and `cpuMsNow` taken at `now`. Undefined when there is no prior
@@ -127,10 +184,15 @@ export function decideSessionBeat(input) {
127
184
  * that still beats — is structurally excluded: the only filter is
128
185
  * `isSessionLeaseAbandoned`, so a beating session can never appear here. PURE.
129
186
  */
130
- export function reclaimProposals(leases, now) {
187
+ export function reclaimProposals(leases, now, procView) {
131
188
  const nowMs = Date.parse(now);
132
189
  return leases
133
- .filter((lease) => isSessionLeaseAbandoned(lease, now))
190
+ .filter((lease) => {
191
+ // R3: a prior-boot corpse is reaped by the auditor and never proposed.
192
+ if (isSessionLeaseDeadBoot(lease, procView))
193
+ return false;
194
+ return !isSessionLeaseAlive(lease, procView, now);
195
+ })
134
196
  .map((lease) => {
135
197
  const idleMs = nowMs - Date.parse(lease.heartbeatAt);
136
198
  const proposal = {
@@ -140,6 +202,10 @@ export function reclaimProposals(leases, now) {
140
202
  ttlMs: lease.ttlMs,
141
203
  heartbeatAt: lease.heartbeatAt,
142
204
  };
205
+ if (isSessionLeaseContested(lease, procView, now))
206
+ proposal.reason = "contested";
207
+ else
208
+ proposal.reason = "abandoned";
143
209
  return proposal;
144
210
  })
145
211
  .sort((a, b) => b.idleMs - a.idleMs);
@@ -161,6 +227,22 @@ export function planLeaseSupervision(leases, sessions) {
161
227
  };
162
228
  });
163
229
  }
230
+ /** Pure read-back auditor projection over one tmux and one /proc snapshot. */
231
+ export function auditSessionLeaseFleet(sessions, leases, statusSurfaces, procView, now) {
232
+ const surfaces = new Map(statusSurfaces.map((surface) => [surface.sessionName, surface.marker]));
233
+ const missingStatusSurface = sessions
234
+ .filter((session) => {
235
+ const live = session.jobState !== "done" && session.jobState !== "failed";
236
+ return live && session.tmuxSession !== undefined && surfaces.get(session.tmuxSession) !== "v1";
237
+ })
238
+ .map((session) => session.sessionId);
239
+ const deadBoot = leases
240
+ .filter((lease) => isSessionLeaseDeadBoot(lease, procView))
241
+ .map((lease) => lease.sessionId);
242
+ const dead = new Set(deadBoot);
243
+ const contested = reclaimProposals(leases, now, procView).filter((proposal) => proposal.reason === "contested" && !dead.has(proposal.sessionId));
244
+ return { missingStatusSurface, contested, deadBoot };
245
+ }
164
246
  /** Machine-scoped path of the session-lease side-store (beside `registry.json`). */
165
247
  export function resolveSessionLeasePath() {
166
248
  return join(resolveConfigDir(), "session-leases.json");
@@ -190,9 +272,9 @@ export class SessionLeaseStore {
190
272
  forSession(sessionId) {
191
273
  return this.readAll().find((lease) => lease.sessionId === sessionId);
192
274
  }
193
- /** The leases abandoned at `now` (explicit instant — the store adds no clock). */
194
- abandoned(now) {
195
- return this.readAll().filter((lease) => isSessionLeaseAbandoned(lease, now));
275
+ /** The leases not alive at `now`, using the shared reader predicate. */
276
+ abandoned(now, procView) {
277
+ return this.readAll().filter((lease) => !isSessionLeaseAlive(lease, procView, now));
196
278
  }
197
279
  /**
198
280
  * Take the slot for `sessionId`. Rejects when a LIVE lease already covers it
@@ -223,6 +305,7 @@ export class SessionLeaseStore {
223
305
  ...(input.cpuMs !== undefined
224
306
  ? { sample: { cpuMs: input.cpuMs, sampledAt: now } }
225
307
  : {}),
308
+ ...(input.worker !== undefined ? { worker: input.worker } : {}),
226
309
  };
227
310
  const next = all.filter((l) => l.sessionId !== input.sessionId);
228
311
  next.push(lease);
@@ -262,6 +345,79 @@ export class SessionLeaseStore {
262
345
  sample: { cpuMs: input.cpuMs, sampledAt: this.clock() },
263
346
  }));
264
347
  }
348
+ /** Lazily migrate a legacy lease once a supervising pass can resolve its worker. */
349
+ populateWorker(input) {
350
+ return this.mutate(input.sessionId, input.token, "populate worker", (lease) => {
351
+ const next = { ...lease, worker: input.worker };
352
+ if (lease.worker === "resolving") {
353
+ delete next.relaunchStartedAt;
354
+ delete next.resolvingBoundMs;
355
+ }
356
+ return next;
357
+ });
358
+ }
359
+ /** Begin the bounded token-guarded relaunch window. */
360
+ beginRelaunch(input) {
361
+ return this.mutate(input.sessionId, input.token, "begin relaunch", (lease) => {
362
+ const bound = input.resolvingBoundMs ?? DEFAULT_RESOLVING_BOUND_MS;
363
+ if (!Number.isFinite(bound) || bound < 0) {
364
+ throw new SessionLeaseError("session-lease: resolvingBoundMs must be finite and non-negative");
365
+ }
366
+ return {
367
+ ...lease,
368
+ worker: "resolving",
369
+ relaunchStartedAt: this.clock(),
370
+ resolvingBoundMs: bound,
371
+ };
372
+ });
373
+ }
374
+ /** Complete the same-act relaunch with the newly resolved worker identity. */
375
+ finishRelaunch(input) {
376
+ return this.mutate(input.sessionId, input.token, "finish relaunch", (lease) => {
377
+ const next = { ...lease, worker: input.worker };
378
+ delete next.relaunchStartedAt;
379
+ delete next.resolvingBoundMs;
380
+ return next;
381
+ });
382
+ }
383
+ /**
384
+ * Run a relaunch and re-resolve the worker under the holder's token. If the
385
+ * process is not visible immediately, the bounded `resolving` state remains
386
+ * on disk and becomes reclaimable after its bound.
387
+ */
388
+ relaunch(input) {
389
+ this.beginRelaunch(input);
390
+ let acted = false;
391
+ try {
392
+ acted = input.act();
393
+ }
394
+ catch {
395
+ acted = false;
396
+ }
397
+ if (!acted) {
398
+ const lease = this.forSession(input.sessionId);
399
+ if (!lease)
400
+ throw new SessionLeaseError(`session-lease: relaunch lease disappeared for ${input.sessionId}`);
401
+ return { succeeded: false, lease };
402
+ }
403
+ let worker;
404
+ try {
405
+ worker = input.resolveWorker();
406
+ }
407
+ catch {
408
+ worker = undefined;
409
+ }
410
+ if (worker === undefined) {
411
+ const lease = this.forSession(input.sessionId);
412
+ if (!lease)
413
+ throw new SessionLeaseError(`session-lease: relaunch lease disappeared for ${input.sessionId}`);
414
+ return { succeeded: true, lease };
415
+ }
416
+ return {
417
+ succeeded: true,
418
+ lease: this.finishRelaunch({ sessionId: input.sessionId, token: input.token, worker }),
419
+ };
420
+ }
265
421
  /** Give the slot back. Only the matching token is accepted. */
266
422
  release(input) {
267
423
  withFileLock(this.leasesPath, () => {
@@ -295,19 +451,54 @@ export class SessionLeaseStore {
295
451
  return next;
296
452
  });
297
453
  }
454
+ /** Remove only leases proven to belong to a prior kernel boot. */
455
+ reapDeadBootLeases(procView) {
456
+ return withFileLock(this.leasesPath, () => {
457
+ const all = readLeaseFile(this.leasesPath);
458
+ const dead = all
459
+ .filter((lease) => isSessionLeaseDeadBoot(lease, procView))
460
+ .map((lease) => lease.sessionId);
461
+ if (dead.length === 0)
462
+ return dead;
463
+ const deadSet = new Set(dead);
464
+ writeLeaseFile(this.leasesPath, all.filter((lease) => !deadSet.has(lease.sessionId)));
465
+ return dead;
466
+ });
467
+ }
298
468
  }
299
469
  /** Shape guard — a torn or hand-edited row must not poison the whole store. */
300
470
  function isSessionLease(value) {
301
471
  if (typeof value !== "object" || value === null)
302
472
  return false;
303
473
  const lease = value;
474
+ const worker = lease.worker;
475
+ const validWorker = worker === undefined ||
476
+ worker === "resolving" ||
477
+ (typeof worker === "object" &&
478
+ worker !== null &&
479
+ Number.isInteger(worker.pid) &&
480
+ worker.pid > 0 &&
481
+ typeof worker.startTime === "string" &&
482
+ /^\d+$/.test(worker.startTime) &&
483
+ typeof worker.bootId === "string" &&
484
+ worker.bootId.length > 0);
485
+ const validResolvingWindow = (lease.relaunchStartedAt === undefined && lease.resolvingBoundMs === undefined) ||
486
+ (typeof lease.relaunchStartedAt === "string" &&
487
+ typeof lease.resolvingBoundMs === "number" &&
488
+ Number.isFinite(lease.resolvingBoundMs) &&
489
+ lease.resolvingBoundMs >= 0);
304
490
  return (typeof lease.leaseId === "string" &&
305
491
  typeof lease.sessionId === "string" &&
306
492
  typeof lease.holder === "string" &&
307
493
  typeof lease.acquiredAt === "string" &&
308
494
  typeof lease.heartbeatAt === "string" &&
309
495
  typeof lease.token === "string" &&
310
- typeof lease.ttlMs === "number");
496
+ typeof lease.ttlMs === "number" &&
497
+ validWorker &&
498
+ validResolvingWindow &&
499
+ (worker === "resolving"
500
+ ? lease.relaunchStartedAt !== undefined && lease.resolvingBoundMs !== undefined
501
+ : true));
311
502
  }
312
503
  /**
313
504
  * Read + parse the store. A missing, empty or garbled file degrades to `[]` —
@@ -1 +1 @@
1
- {"version":3,"file":"session-lease.js","sourceRoot":"","sources":["../src/session-lease.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-lease.js","sourceRoot":"","sources":["../src/session-lease.ts"],"names":[],"mappings":"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"}