@tscomfy/client 0.1.2 → 0.2.1

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/channel.d.ts CHANGED
@@ -23,16 +23,18 @@ export interface JobListener {
23
23
  }
24
24
  /**
25
25
  * One websocket and the jobs listening on it. Opens one socket at a time, shared by every
26
- * caller; reconnects only while jobs are open, after the old socket has closed (two live sockets
27
- * with one client id lose events on the server), and re-sends the feature flags first. `close()`
28
- * stops everything it started: sockets, handshakes, backoff waits.
26
+ * caller, each with a fresh client id; reconnects only while jobs are open, and re-sends the
27
+ * feature flags first. Jobs that were running keep their old client id, so their events are
28
+ * gone; they poll their record instead. `close()` stops everything it started: sockets,
29
+ * handshakes, backoff waits.
29
30
  */
30
31
  export declare class Channel {
31
32
  #private;
32
33
  readonly server: Server;
33
- readonly clientId: string;
34
34
  features: JsonObject;
35
- constructor(server: Server, clientId: string);
35
+ constructor(server: Server);
36
+ /** The client id the server sends this channel's events to now. */
37
+ get clientId(): string;
36
38
  /** Whether `close()` was called. */
37
39
  get closed(): boolean;
38
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAe,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAO1C,wCAAwC;AACxC,wBAAgB,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAErE;AAED,kGAAkG;AAClG,wBAAgB,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAMzD;AAED,yCAAyC;AACzC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9C,8CAA8C;IAC9C,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC;IAC7C,yDAAyD;IACzD,YAAY,IAAI,IAAI,CAAC;IACrB,sEAAsE;IACtE,WAAW,IAAI,IAAI,CAAC;IACpB,8EAA8E;IAC9E,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC;AAsBD;;;;;GAKG;AACH,qBAAa,OAAO;;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,UAAU,CAAM;IAa1B,YAAY,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAG3C;IAED,oCAAoC;IACpC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;OAIG;IACG,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAe/C;IAED;;;OAGG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BrD;IAED,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAG/B;IAED,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAGjC;IAED,yFAAyF;IACzF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrB;CAyIF"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAe,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQ1C,wCAAwC;AACxC,wBAAgB,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAErE;AAED,kGAAkG;AAClG,wBAAgB,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAMzD;AAED,yCAAyC;AACzC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9C,8CAA8C;IAC9C,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC;IAC7C,yDAAyD;IACzD,YAAY,IAAI,IAAI,CAAC;IACrB,sEAAsE;IACtE,WAAW,IAAI,IAAI,CAAC;IACpB,8EAA8E;IAC9E,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC;AAsBD;;;;;;GAMG;AACH,qBAAa,OAAO;;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,UAAU,CAAM;IAe1B,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED,mEAAmE;IACnE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,oCAAoC;IACpC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;OAIG;IACG,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAe/C;IAED;;;OAGG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BrD;IAED,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAG/B;IAED,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAGjC;IAED,yFAAyF;IACzF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrB;CA8IF"}
package/dist/channel.js CHANGED
@@ -4,6 +4,7 @@ import { decodeFrame } from "./frames.js";
4
4
  import { isObject, readObject, send } from "./http.js";
5
5
  import { abortable, sleep } from "./timers.js";
6
6
  import { baseUrl, endpoint, shownUrl } from "./url.js";
7
+ import { randomUuid } from "./uuid.js";
7
8
  /** Connections and the channels behind them. */
8
9
  const channels = new WeakMap();
9
10
  /** Ties a connection to its channel. */
@@ -34,14 +35,16 @@ const CLOSED = 3;
34
35
  const closedError = () => new ClientError("The connection is closed");
35
36
  /**
36
37
  * One websocket and the jobs listening on it. Opens one socket at a time, shared by every
37
- * caller; reconnects only while jobs are open, after the old socket has closed (two live sockets
38
- * with one client id lose events on the server), and re-sends the feature flags first. `close()`
39
- * stops everything it started: sockets, handshakes, backoff waits.
38
+ * caller, each with a fresh client id; reconnects only while jobs are open, and re-sends the
39
+ * feature flags first. Jobs that were running keep their old client id, so their events are
40
+ * gone; they poll their record instead. `close()` stops everything it started: sockets,
41
+ * handshakes, backoff waits.
40
42
  */
41
43
  export class Channel {
42
44
  server;
43
- clientId;
44
45
  features = {};
46
+ /** The client id of the socket open now; every socket gets its own. */
47
+ #clientId = randomUuid();
45
48
  #jobs = new Map();
46
49
  /** Every socket this channel opened and that hasn't closed yet. */
47
50
  #sockets = new Set();
@@ -53,9 +56,12 @@ export class Channel {
53
56
  #closing;
54
57
  /** The job whose prompt the server is running, for progress text without a prompt id. */
55
58
  #running;
56
- constructor(server, clientId) {
59
+ constructor(server) {
57
60
  this.server = server;
58
- this.clientId = clientId;
61
+ }
62
+ /** The client id the server sends this channel's events to now. */
63
+ get clientId() {
64
+ return this.#clientId;
59
65
  }
60
66
  /** Whether `close()` was called. */
61
67
  get closed() {
@@ -139,7 +145,11 @@ export class Channel {
139
145
  }
140
146
  /** Opens a socket and negotiates the feature flags; the socket becomes the channel's. */
141
147
  async #open() {
142
- const url = endpoint(baseUrl(this.server), "ws", { clientId: this.clientId });
148
+ // A fresh id for every socket: when the server closes an old socket late (a connection it
149
+ // hadn't noticed was dead), it unregisters whatever has that socket's id. A reused id would
150
+ // leave the new socket open but deaf.
151
+ const clientId = randomUuid();
152
+ const url = endpoint(baseUrl(this.server), "ws", { clientId });
143
153
  url.protocol = url.protocol === "https:" ? "wss:" : "ws:";
144
154
  const shown = shownUrl(url);
145
155
  const life = this.#life.signal;
@@ -187,6 +197,7 @@ export class Channel {
187
197
  negotiated = true;
188
198
  done();
189
199
  this.features = message.data;
200
+ this.#clientId = clientId;
190
201
  this.#socket = socket;
191
202
  resolve();
192
203
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,12 @@ import type { Server } from "./server.ts";
6
6
  * keeps a Node or Bun process running.
7
7
  */
8
8
  export interface Connection extends Server {
9
- /** The id the server sends this connection's events to; fresh for every connection. */
9
+ /**
10
+ * The id the server sends this connection's events to. A new one for every websocket, so it
11
+ * changes when the connection reconnects.
12
+ */
10
13
  readonly clientId: string;
11
- /** The server's feature flags, as it answered them when the connection opened. */
14
+ /** The server's feature flags, as it answered them on the current websocket. */
12
15
  readonly features: JsonObject;
13
16
  /**
14
17
  * Closes the websocket. Jobs still open reject their outcome with a {@link ClientError}; they
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C;;;;GAIG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqB/F"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C;;;;GAIG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAyB/F"}
@@ -1,6 +1,5 @@
1
1
  import { attach, Channel } from "./channel.js";
2
2
  import { baseUrl } from "./url.js";
3
- import { randomUuid } from "./uuid.js";
4
3
  /**
5
4
  * Opens a connection: a websocket with a fresh client id, which announces
6
5
  * `supports_preview_metadata` (so previews say which job and node they belong to) and waits for
@@ -11,7 +10,7 @@ import { randomUuid } from "./uuid.js";
11
10
  */
12
11
  export async function connect(server, options = {}) {
13
12
  baseUrl(server);
14
- const channel = new Channel(server, randomUuid());
13
+ const channel = new Channel(server);
15
14
  try {
16
15
  await channel.ready(options.signal);
17
16
  await channel.checkServer(options.signal);
@@ -25,8 +24,12 @@ export async function connect(server, options = {}) {
25
24
  ...(server.headers === undefined ? {} : { headers: server.headers }),
26
25
  ...(server.fetch === undefined ? {} : { fetch: server.fetch }),
27
26
  ...(server.webSocket === undefined ? {} : { webSocket: server.webSocket }),
28
- clientId: channel.clientId,
29
- features: channel.features,
27
+ get clientId() {
28
+ return channel.clientId;
29
+ },
30
+ get features() {
31
+ return channel.features;
32
+ },
30
33
  close: () => channel.close(),
31
34
  });
32
35
  attach(connection, channel);
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAyBvC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAc,EAAE,OAAO,GAAmB,EAAE;IACxE,OAAO,CAAC,MAAM,CAAC,CAAC;IAChB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAe,MAAM,CAAC,MAAM,CAAC;QAC3C,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACpE,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9D,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1E,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE;KAC7B,CAAC,CAAC;IACH,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AA4BnC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAc,EAAE,OAAO,GAAmB,EAAE;IACxE,OAAO,CAAC,MAAM,CAAC,CAAC;IAChB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAe,MAAM,CAAC,MAAM,CAAC;QAC3C,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACpE,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9D,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1E,IAAI,QAAQ;YACV,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC1B,CAAC;QACD,IAAI,QAAQ;YACV,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC1B,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE;KAC7B,CAAC,CAAC;IACH,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,UAAU,CAAC;AACpB,CAAC"}
package/dist/job.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAGd,KAAK,UAAU,EAKf,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAc,OAAO,EAAW,MAAM,cAAc,CAAC;AAOjE,iGAAiG;AACjG,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAErE,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,uBAAuB;AACvB,MAAM,WAAW,GAAG;IAClB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,QAAQ,GAAG,SAAS,EAC3B,OAAO,GAAE,aAAkB,GAC1B,GAAG,CAQL"}
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAGd,KAAK,UAAU,EAKf,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAc,OAAO,EAAW,MAAM,cAAc,CAAC;AAOjE,iGAAiG;AACjG,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAErE,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,uBAAuB;AACvB,MAAM,WAAW,GAAG;IAClB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,QAAQ,GAAG,SAAS,EAC3B,OAAO,GAAE,aAAkB,GAC1B,GAAG,CASL"}
package/dist/job.js CHANGED
@@ -18,9 +18,10 @@ export function submit(connection, input, options = {}) {
18
18
  if (channel.closed)
19
19
  throw new TypeError("submit: the connection is closed");
20
20
  const prompt = isWorkflow(input) ? toApi(input) : input;
21
- const body = requestBody(channel.clientId, prompt, options);
22
- const run = new JobRun(channel, body.id, Object.keys(prompt), options.signal);
23
- run.start(body.text);
21
+ const id = randomUuid();
22
+ const body = requestBody(id, prompt, options);
23
+ const run = new JobRun(channel, id, Object.keys(prompt), options.signal);
24
+ run.start(body);
24
25
  return run.job;
25
26
  }
26
27
  /** A workflow has a schema and a graph of nodes; a prompt's entries are nodes with a class. */
@@ -34,8 +35,11 @@ function isWorkflow(input) {
34
35
  }
35
36
  const PREVIEW_METHODS = new Set(["auto", "latent2rgb", "taesd", "none"]);
36
37
  const RESERVED_EXTRA_DATA = ["client_id", "preview_method"];
37
- /** The body of `POST /prompt`, serialized losslessly, and the prompt id it carries. */
38
- function requestBody(clientId, prompt, options) {
38
+ /**
39
+ * The body of `POST /prompt` for a client id, serialized losslessly. Built when the request is
40
+ * sent, since the client id is the current socket's. Checks the options first, when called.
41
+ */
42
+ function requestBody(id, prompt, options) {
39
43
  if (options.previews !== undefined && !PREVIEW_METHODS.has(options.previews)) {
40
44
  throw new TypeError(`submit: unknown preview method ${options.previews}`);
41
45
  }
@@ -44,8 +48,7 @@ function requestBody(clientId, prompt, options) {
44
48
  if (Object.hasOwn(extra, key))
45
49
  throw new TypeError(`submit: extraData can't set ${key}`);
46
50
  }
47
- const id = randomUuid();
48
- const body = {
51
+ return (clientId) => stringify({
49
52
  client_id: clientId,
50
53
  prompt_id: id,
51
54
  prompt,
@@ -57,11 +60,14 @@ function requestBody(clientId, prompt, options) {
57
60
  ...(options.targets === undefined
58
61
  ? {}
59
62
  : { partial_execution_targets: options.targets.map(nodeIdOf) }),
60
- };
61
- return { id, text: stringify(body) };
63
+ });
62
64
  }
63
- /** How often to poll the job record after a reconnect, when events may be lost for good. */
64
- const POLL_MS = [1000, 2000, 5000, 10_000];
65
+ /**
66
+ * How often to read the job record: after a reconnect, when the job's events are gone for good,
67
+ * and, slowly, always, so no outcome depends on the websocket alone. The last delay repeats.
68
+ */
69
+ const POLL_AFTER_RECONNECT_MS = [1000, 2000, 5000, 10_000];
70
+ const POLL_MS = [30_000];
65
71
  /** At most one record read per this many milliseconds on queue changes. */
66
72
  const QUEUE_CHECK_MS = 1000;
67
73
  /** Retries of a record read that couldn't reach the server. */
@@ -134,10 +140,15 @@ class JobRun {
134
140
  this.#channel.register(this);
135
141
  // Not abortable: once sent, the prompt may be queued, and only its answer says so. An
136
142
  // abort meanwhile cancels the job after the answer (`#abandon`).
137
- const response = await send(this.#channel.server, { method: "POST", path: "prompt", body });
143
+ const response = await send(this.#channel.server, {
144
+ method: "POST",
145
+ path: "prompt",
146
+ body: body(this.#channel.clientId),
147
+ });
138
148
  if (response.status === 200) {
139
149
  // Queued: from here on the job can be cancelled, whatever the body says.
140
150
  this.#accept(true);
151
+ this.#watch(POLL_MS);
141
152
  const answer = await readObject(response).catch(() => undefined);
142
153
  const id = answer?.["prompt_id"];
143
154
  if (typeof id === "string" && id !== this.id) {
@@ -227,11 +238,9 @@ class JobRun {
227
238
  }, Math.max(0, wait));
228
239
  }
229
240
  reconnected() {
230
- // Events sent while the socket was down are gone, and a reconnect can leave the server
231
- // sending none (two sockets with one id): poll the record until the job settles.
241
+ // The job's events went to the old socket's client id: poll the record until it settles.
232
242
  this.#read();
233
- if (this.#poll === undefined)
234
- this.#schedulePoll(0);
243
+ this.#watch(POLL_AFTER_RECONNECT_MS);
235
244
  }
236
245
  fail(error) {
237
246
  if (this.#settled)
@@ -409,15 +418,16 @@ class JobRun {
409
418
  this.#channel.unregister(this);
410
419
  this.#events.end();
411
420
  }
412
- #schedulePoll(step) {
421
+ /** Reads the record after each delay in turn, the last one repeating, until the job settles. */
422
+ #watch(delays, step = 0) {
413
423
  if (this.#poll !== undefined)
414
424
  clearTimeout(this.#poll);
415
425
  if (this.#settled)
416
426
  return;
417
- const delay = POLL_MS[Math.min(step, POLL_MS.length - 1)] ?? 10_000;
427
+ const delay = delays[Math.min(step, delays.length - 1)] ?? 10_000;
418
428
  this.#poll = setTimeout(() => {
419
429
  this.#read();
420
- this.#schedulePoll(step + 1);
430
+ this.#watch(delays, step + 1);
421
431
  }, delay);
422
432
  }
423
433
  async #cancel() {
package/dist/job.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"job.js","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscomfy/client",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "Runs tscomfy workflows on a ComfyUI server: queueing, live progress and previews, outputs, uploads.",
5
5
  "keywords": [
6
6
  "client",
@@ -35,11 +35,11 @@
35
35
  "access": "public"
36
36
  },
37
37
  "devDependencies": {
38
- "@tscomfy/core": "0.1.2",
38
+ "@tscomfy/core": "0.2.1",
39
39
  "@tscomfy/fixtures": "0.0.0"
40
40
  },
41
41
  "peerDependencies": {
42
- "@tscomfy/core": "^0.1.2"
42
+ "@tscomfy/core": "^0.2.1"
43
43
  },
44
44
  "engines": {
45
45
  "bun": ">=1.4",
package/src/channel.ts CHANGED
@@ -6,6 +6,7 @@ import { isObject, readObject, send } from "./http.ts";
6
6
  import type { Server } from "./server.ts";
7
7
  import { abortable, sleep } from "./timers.ts";
8
8
  import { baseUrl, endpoint, shownUrl } from "./url.ts";
9
+ import { randomUuid } from "./uuid.ts";
9
10
 
10
11
  /** Connections and the channels behind them. */
11
12
  const channels = new WeakMap<Connection, Channel>();
@@ -61,14 +62,16 @@ const closedError = (): ClientError => new ClientError("The connection is closed
61
62
 
62
63
  /**
63
64
  * One websocket and the jobs listening on it. Opens one socket at a time, shared by every
64
- * caller; reconnects only while jobs are open, after the old socket has closed (two live sockets
65
- * with one client id lose events on the server), and re-sends the feature flags first. `close()`
66
- * stops everything it started: sockets, handshakes, backoff waits.
65
+ * caller, each with a fresh client id; reconnects only while jobs are open, and re-sends the
66
+ * feature flags first. Jobs that were running keep their old client id, so their events are
67
+ * gone; they poll their record instead. `close()` stops everything it started: sockets,
68
+ * handshakes, backoff waits.
67
69
  */
68
70
  export class Channel {
69
71
  readonly server: Server;
70
- readonly clientId: string;
71
72
  features: JsonObject = {};
73
+ /** The client id of the socket open now; every socket gets its own. */
74
+ #clientId: string = randomUuid();
72
75
  readonly #jobs = new Map<string, JobListener>();
73
76
  /** Every socket this channel opened and that hasn't closed yet. */
74
77
  readonly #sockets = new Set<WebSocket>();
@@ -81,9 +84,13 @@ export class Channel {
81
84
  /** The job whose prompt the server is running, for progress text without a prompt id. */
82
85
  #running: JobListener | undefined;
83
86
 
84
- constructor(server: Server, clientId: string) {
87
+ constructor(server: Server) {
85
88
  this.server = server;
86
- this.clientId = clientId;
89
+ }
90
+
91
+ /** The client id the server sends this channel's events to now. */
92
+ get clientId(): string {
93
+ return this.#clientId;
87
94
  }
88
95
 
89
96
  /** Whether `close()` was called. */
@@ -173,7 +180,11 @@ export class Channel {
173
180
 
174
181
  /** Opens a socket and negotiates the feature flags; the socket becomes the channel's. */
175
182
  async #open(): Promise<void> {
176
- const url = endpoint(baseUrl(this.server), "ws", { clientId: this.clientId });
183
+ // A fresh id for every socket: when the server closes an old socket late (a connection it
184
+ // hadn't noticed was dead), it unregisters whatever has that socket's id. A reused id would
185
+ // leave the new socket open but deaf.
186
+ const clientId = randomUuid();
187
+ const url = endpoint(baseUrl(this.server), "ws", { clientId });
177
188
  url.protocol = url.protocol === "https:" ? "wss:" : "ws:";
178
189
  const shown = shownUrl(url);
179
190
  const life = this.#life.signal;
@@ -221,6 +232,7 @@ export class Channel {
221
232
  negotiated = true;
222
233
  done();
223
234
  this.features = message.data;
235
+ this.#clientId = clientId;
224
236
  this.#socket = socket;
225
237
  resolve();
226
238
  return;
package/src/connection.ts CHANGED
@@ -2,7 +2,6 @@ import type { JsonObject } from "@tscomfy/core";
2
2
  import { attach, Channel } from "./channel.ts";
3
3
  import type { Server } from "./server.ts";
4
4
  import { baseUrl } from "./url.ts";
5
- import { randomUuid } from "./uuid.ts";
6
5
 
7
6
  /**
8
7
  * An open connection to a server: a {@link Server} with a websocket that delivers the events of
@@ -10,9 +9,12 @@ import { randomUuid } from "./uuid.ts";
10
9
  * keeps a Node or Bun process running.
11
10
  */
12
11
  export interface Connection extends Server {
13
- /** The id the server sends this connection's events to; fresh for every connection. */
12
+ /**
13
+ * The id the server sends this connection's events to. A new one for every websocket, so it
14
+ * changes when the connection reconnects.
15
+ */
14
16
  readonly clientId: string;
15
- /** The server's feature flags, as it answered them when the connection opened. */
17
+ /** The server's feature flags, as it answered them on the current websocket. */
16
18
  readonly features: JsonObject;
17
19
  /**
18
20
  * Closes the websocket. Jobs still open reject their outcome with a {@link ClientError}; they
@@ -37,7 +39,7 @@ export interface ConnectOptions {
37
39
  */
38
40
  export async function connect(server: Server, options: ConnectOptions = {}): Promise<Connection> {
39
41
  baseUrl(server);
40
- const channel = new Channel(server, randomUuid());
42
+ const channel = new Channel(server);
41
43
  try {
42
44
  await channel.ready(options.signal);
43
45
  await channel.checkServer(options.signal);
@@ -50,8 +52,12 @@ export async function connect(server: Server, options: ConnectOptions = {}): Pro
50
52
  ...(server.headers === undefined ? {} : { headers: server.headers }),
51
53
  ...(server.fetch === undefined ? {} : { fetch: server.fetch }),
52
54
  ...(server.webSocket === undefined ? {} : { webSocket: server.webSocket }),
53
- clientId: channel.clientId,
54
- features: channel.features,
55
+ get clientId(): string {
56
+ return channel.clientId;
57
+ },
58
+ get features(): JsonObject {
59
+ return channel.features;
60
+ },
55
61
  close: () => channel.close(),
56
62
  });
57
63
  attach(connection, channel);
package/src/job.ts CHANGED
@@ -87,9 +87,10 @@ export function submit(
87
87
  const channel = channelOf(connection);
88
88
  if (channel.closed) throw new TypeError("submit: the connection is closed");
89
89
  const prompt = isWorkflow(input) ? toApi(input) : input;
90
- const body = requestBody(channel.clientId, prompt, options);
91
- const run = new JobRun(channel, body.id, Object.keys(prompt), options.signal);
92
- run.start(body.text);
90
+ const id = randomUuid();
91
+ const body = requestBody(id, prompt, options);
92
+ const run = new JobRun(channel, id, Object.keys(prompt), options.signal);
93
+ run.start(body);
93
94
  return run.job;
94
95
  }
95
96
 
@@ -109,12 +110,15 @@ function isWorkflow(input: Workflow | ApiPrompt): input is Workflow {
109
110
  const PREVIEW_METHODS: ReadonlySet<unknown> = new Set(["auto", "latent2rgb", "taesd", "none"]);
110
111
  const RESERVED_EXTRA_DATA = ["client_id", "preview_method"];
111
112
 
112
- /** The body of `POST /prompt`, serialized losslessly, and the prompt id it carries. */
113
+ /**
114
+ * The body of `POST /prompt` for a client id, serialized losslessly. Built when the request is
115
+ * sent, since the client id is the current socket's. Checks the options first, when called.
116
+ */
113
117
  function requestBody(
114
- clientId: string,
118
+ id: string,
115
119
  prompt: ApiPrompt,
116
120
  options: SubmitOptions,
117
- ): { readonly id: string; readonly text: string } {
121
+ ): (clientId: string) => string {
118
122
  if (options.previews !== undefined && !PREVIEW_METHODS.has(options.previews)) {
119
123
  throw new TypeError(`submit: unknown preview method ${options.previews}`);
120
124
  }
@@ -122,25 +126,28 @@ function requestBody(
122
126
  for (const key of RESERVED_EXTRA_DATA) {
123
127
  if (Object.hasOwn(extra, key)) throw new TypeError(`submit: extraData can't set ${key}`);
124
128
  }
125
- const id = randomUuid();
126
- const body: JsonObject = {
127
- client_id: clientId,
128
- prompt_id: id,
129
- prompt,
130
- extra_data: {
131
- ...extra,
132
- ...(options.previews === undefined ? {} : { preview_method: options.previews }),
133
- },
134
- ...(options.front === true ? { front: true } : {}),
135
- ...(options.targets === undefined
136
- ? {}
137
- : { partial_execution_targets: options.targets.map(nodeIdOf) }),
138
- };
139
- return { id, text: stringify(body) };
129
+ return (clientId) =>
130
+ stringify({
131
+ client_id: clientId,
132
+ prompt_id: id,
133
+ prompt,
134
+ extra_data: {
135
+ ...extra,
136
+ ...(options.previews === undefined ? {} : { preview_method: options.previews }),
137
+ },
138
+ ...(options.front === true ? { front: true } : {}),
139
+ ...(options.targets === undefined
140
+ ? {}
141
+ : { partial_execution_targets: options.targets.map(nodeIdOf) }),
142
+ });
140
143
  }
141
144
 
142
- /** How often to poll the job record after a reconnect, when events may be lost for good. */
143
- const POLL_MS = [1000, 2000, 5000, 10_000];
145
+ /**
146
+ * How often to read the job record: after a reconnect, when the job's events are gone for good,
147
+ * and, slowly, always, so no outcome depends on the websocket alone. The last delay repeats.
148
+ */
149
+ const POLL_AFTER_RECONNECT_MS = [1000, 2000, 5000, 10_000];
150
+ const POLL_MS = [30_000];
144
151
  /** At most one record read per this many milliseconds on queue changes. */
145
152
  const QUEUE_CHECK_MS = 1000;
146
153
  /** Retries of a record read that couldn't reach the server. */
@@ -203,7 +210,7 @@ class JobRun implements JobListener {
203
210
  });
204
211
  }
205
212
 
206
- start(body: string): void {
213
+ start(body: (clientId: string) => string): void {
207
214
  if (this.#signal?.aborted === true) {
208
215
  this.#abandon(this.#signal.reason);
209
216
  return;
@@ -212,7 +219,7 @@ class JobRun implements JobListener {
212
219
  void this.#post(body);
213
220
  }
214
221
 
215
- async #post(body: string): Promise<void> {
222
+ async #post(body: (clientId: string) => string): Promise<void> {
216
223
  try {
217
224
  await this.#channel.ready(this.#signal);
218
225
  if (this.#settled) {
@@ -222,10 +229,15 @@ class JobRun implements JobListener {
222
229
  this.#channel.register(this);
223
230
  // Not abortable: once sent, the prompt may be queued, and only its answer says so. An
224
231
  // abort meanwhile cancels the job after the answer (`#abandon`).
225
- const response = await send(this.#channel.server, { method: "POST", path: "prompt", body });
232
+ const response = await send(this.#channel.server, {
233
+ method: "POST",
234
+ path: "prompt",
235
+ body: body(this.#channel.clientId),
236
+ });
226
237
  if (response.status === 200) {
227
238
  // Queued: from here on the job can be cancelled, whatever the body says.
228
239
  this.#accept(true);
240
+ this.#watch(POLL_MS);
229
241
  const answer = await readObject(response).catch(() => undefined);
230
242
  const id = answer?.["prompt_id"];
231
243
  if (typeof id === "string" && id !== this.id) {
@@ -317,10 +329,9 @@ class JobRun implements JobListener {
317
329
  }
318
330
 
319
331
  reconnected(): void {
320
- // Events sent while the socket was down are gone, and a reconnect can leave the server
321
- // sending none (two sockets with one id): poll the record until the job settles.
332
+ // The job's events went to the old socket's client id: poll the record until it settles.
322
333
  this.#read();
323
- if (this.#poll === undefined) this.#schedulePoll(0);
334
+ this.#watch(POLL_AFTER_RECONNECT_MS);
324
335
  }
325
336
 
326
337
  fail(error: unknown): void {
@@ -492,13 +503,14 @@ class JobRun implements JobListener {
492
503
  this.#events.end();
493
504
  }
494
505
 
495
- #schedulePoll(step: number): void {
506
+ /** Reads the record after each delay in turn, the last one repeating, until the job settles. */
507
+ #watch(delays: readonly number[], step = 0): void {
496
508
  if (this.#poll !== undefined) clearTimeout(this.#poll);
497
509
  if (this.#settled) return;
498
- const delay = POLL_MS[Math.min(step, POLL_MS.length - 1)] ?? 10_000;
510
+ const delay = delays[Math.min(step, delays.length - 1)] ?? 10_000;
499
511
  this.#poll = setTimeout(() => {
500
512
  this.#read();
501
- this.#schedulePoll(step + 1);
513
+ this.#watch(delays, step + 1);
502
514
  }, delay);
503
515
  }
504
516