agenthub-multiagent-mcp 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.
Files changed (31) hide show
  1. package/dist/channel.js +28 -5
  2. package/dist/channel.js.map +1 -1
  3. package/dist/channelDiagnostics.d.ts +19 -0
  4. package/dist/channelDiagnostics.d.ts.map +1 -1
  5. package/dist/channelDiagnostics.js +46 -0
  6. package/dist/channelDiagnostics.js.map +1 -1
  7. package/dist/channelDiagnostics.test.js +108 -0
  8. package/dist/channelDiagnostics.test.js.map +1 -1
  9. package/dist/tools/index.d.ts.map +1 -1
  10. package/dist/tools/index.js +27 -84
  11. package/dist/tools/index.js.map +1 -1
  12. package/dist/tools/openspec-viz/parseTasks.test.d.ts +2 -0
  13. package/dist/tools/openspec-viz/parseTasks.test.d.ts.map +1 -0
  14. package/dist/tools/openspec-viz/parseTasks.test.js +220 -0
  15. package/dist/tools/openspec-viz/parseTasks.test.js.map +1 -0
  16. package/dist/tools/openspec-viz/parser.d.ts +10 -1
  17. package/dist/tools/openspec-viz/parser.d.ts.map +1 -1
  18. package/dist/tools/openspec-viz/parser.js +72 -9
  19. package/dist/tools/openspec-viz/parser.js.map +1 -1
  20. package/dist/tools/openspec-viz/taskSync.d.ts +115 -0
  21. package/dist/tools/openspec-viz/taskSync.d.ts.map +1 -0
  22. package/dist/tools/openspec-viz/taskSync.js +144 -0
  23. package/dist/tools/openspec-viz/taskSync.js.map +1 -0
  24. package/dist/tools/openspec-viz/taskSync.test.d.ts +2 -0
  25. package/dist/tools/openspec-viz/taskSync.test.d.ts.map +1 -0
  26. package/dist/tools/openspec-viz/taskSync.test.js +198 -0
  27. package/dist/tools/openspec-viz/taskSync.test.js.map +1 -0
  28. package/dist/websocket.d.ts.map +1 -1
  29. package/dist/websocket.js +9 -2
  30. package/dist/websocket.js.map +1 -1
  31. package/package.json +1 -1
package/dist/channel.js CHANGED
@@ -248,6 +248,15 @@ function connectWebSocket() {
248
248
  // Without this a 401 and a dropped network look identical downstream.
249
249
  let handshakeStatus;
250
250
  let socketError;
251
+ // Captured from the close frame. Both close handlers took no arguments until
252
+ // AGHUB-1436, so a network blip, a server restart and a revoked token all
253
+ // reported "no error detail available" — the one thing that would let anyone
254
+ // tell them apart was in hand here and discarded one line later.
255
+ let closeCode;
256
+ let closeReason;
257
+ // Whether the handshake ever completed. The close code alone cannot say: a
258
+ // rejected handshake reaches `unexpected-response` AND `close`.
259
+ let wasConnected = false;
251
260
  // A failed handshake reaches BOTH `unexpected-response` and `close` (the
252
261
  // terminate below triggers it). Without this latch each failure reported
253
262
  // twice and scheduled two reconnects, which raced the backoff into a tight
@@ -257,13 +266,22 @@ function connectWebSocket() {
257
266
  if (handled)
258
267
  return;
259
268
  handled = true;
260
- reportFailure(url, handshakeStatus, socketError);
269
+ reportFailure(url, {
270
+ status: handshakeStatus,
271
+ error: socketError,
272
+ closeCode,
273
+ closeReason,
274
+ wasConnected,
275
+ });
261
276
  scheduleReconnect();
262
277
  };
263
278
  ws.on("open", () => {
264
279
  reconnectAttempts = 0;
265
280
  handshakeStatus = undefined;
266
281
  socketError = undefined;
282
+ closeCode = undefined;
283
+ closeReason = undefined;
284
+ wasConnected = true;
267
285
  });
268
286
  // NOTE: registering this listener SUPPRESSES ws's default behaviour of
269
287
  // emitting an error and closing, so the close handler below would never run
@@ -349,7 +367,13 @@ function connectWebSocket() {
349
367
  // Parse errors — ignore
350
368
  }
351
369
  });
352
- ws.on("close", () => {
370
+ ws.on("close", (code, reason) => {
371
+ // Keep the code and reason. `reason` is a Buffer and is usually empty;
372
+ // decode it rather than stringifying the Buffer, which would yield
373
+ // "[object Object]" or a byte dump in the notice.
374
+ closeCode = code;
375
+ const text = reason?.toString("utf8").trim();
376
+ closeReason = text ? text : undefined;
353
377
  ws = null;
354
378
  handleFailure();
355
379
  });
@@ -367,10 +391,9 @@ function connectWebSocket() {
367
391
  * disturbing the stdio protocol; the session notification because an operator
368
392
  * reading logs is not who needs to know that their messages are not arriving.
369
393
  */
370
- function reportFailure(url, status, error) {
394
+ function reportFailure(url, observed) {
371
395
  const failure = {
372
- status,
373
- error,
396
+ ...observed,
374
397
  attempts: reconnectAttempts + 1,
375
398
  givingUp: reconnectAttempts + 1 > RECONNECT_BUDGET,
376
399
  url,
@@ -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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"}
@@ -20,6 +20,25 @@ export interface ChannelFailure {
20
20
  status?: number;
21
21
  /** Error message from the socket, when it failed before or without a response. */
22
22
  error?: string;
23
+ /**
24
+ * WebSocket close code, when the socket closed rather than failing its
25
+ * handshake. Both close handlers used to take no arguments and drop this
26
+ * (AGHUB-1436), which is why every mid-session drop — a network blip, a
27
+ * server restart, a revoked token — produced byte-identical text.
28
+ */
29
+ closeCode?: number;
30
+ /** Close frame reason, when the server sent one. Usually empty. */
31
+ closeReason?: string;
32
+ /**
33
+ * Whether the socket had reached `open` before it failed.
34
+ *
35
+ * This is the transient/terminal signal, not the code on its own: 1006 on a
36
+ * socket that never opened points at the URL or credentials, while the same
37
+ * code on an established socket is the network path. A rejected handshake
38
+ * reaches BOTH `unexpected-response` and `close`, so the code alone cannot
39
+ * tell them apart.
40
+ */
41
+ wasConnected?: boolean;
23
42
  /** How many consecutive attempts have now failed. */
24
43
  attempts: number;
25
44
  /** Whether the reconnect budget is exhausted and no further attempt will run. */
@@ -1 +1 @@
1
- {"version":3,"file":"channelDiagnostics.d.ts","sourceRoot":"","sources":["../src/channelDiagnostics.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBzB;AAED,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAOhE;AA4BD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAK9D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ5E;AAkBD,uEAAuE;AACvE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,EAAE,CASlE;AAWD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,CAQxE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,CAQtE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMpF"}
1
+ {"version":3,"file":"channelDiagnostics.d.ts","sourceRoot":"","sources":["../src/channelDiagnostics.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBzB;AAED,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAOhE;AAyED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAK9D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY5E;AAkBD,uEAAuE;AACvE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,EAAE,CASlE;AAWD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,CAQxE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,CAQtE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMpF"}
@@ -84,8 +84,48 @@ function explain(f) {
84
84
  if (f.error && /certificate|self.signed|SSL|TLS/i.test(f.error)) {
85
85
  return `TLS failure: ${f.error}.`;
86
86
  }
87
+ if (typeof f.closeCode === "number") {
88
+ return explainClose(f);
89
+ }
87
90
  return `${f.error ?? "no error detail available"}.`;
88
91
  }
92
+ /**
93
+ * What a WebSocket close code means for *this* transport.
94
+ *
95
+ * Phrased so the reader can act without going to the box. The distinction that
96
+ * matters is transient vs terminal: 1001/1006/1012/1013 heal on their own and
97
+ * the retry will handle them, while 1008 will not and needs someone to look at
98
+ * the agent's standing.
99
+ */
100
+ const CLOSE_CODES = {
101
+ 1000: "Normal closure — the peer closed the socket deliberately.",
102
+ 1001: "The server is going away: a restart or shutdown. Transient; the reconnect should ride it out.",
103
+ 1002: "Protocol error.",
104
+ 1003: "The server rejected the kind of data sent.",
105
+ 1005: "No status code was supplied — the peer sent a close frame with no payload.",
106
+ 1006: "Abnormal closure: the connection dropped with no close frame at all. That is the network path " +
107
+ "between this machine and the server, not a credential — a flaky local link, a VPN, or a NAT " +
108
+ "idle timeout all produce it. Transient.",
109
+ 1008: "Policy violation: the server refused this connection on purpose. A revoked or suspended agent, " +
110
+ "or a connect token the server no longer accepts, produces it. TERMINAL — retrying will not fix " +
111
+ "it; check the agent's standing in the dashboard.",
112
+ 1009: "The message was too large for the peer to accept.",
113
+ 1011: "The server hit an internal error handling the connection.",
114
+ 1012: "The server is restarting. Transient.",
115
+ 1013: "The server is overloaded and asked callers to try again later. Transient.",
116
+ 1015: "TLS handshake failure.",
117
+ };
118
+ function explainClose(f) {
119
+ const meaning = CLOSE_CODES[f.closeCode] ?? "Unrecognised close code.";
120
+ const phase = f.wasConnected
121
+ ? "The socket was established and then closed"
122
+ : "The socket never opened — the handshake did not complete";
123
+ const reason = f.closeReason?.trim() ? ` Server said: ${f.closeReason.trim()}.` : "";
124
+ const extra = !f.wasConnected && !f.closeReason?.trim()
125
+ ? " With no handshake and no reason, check AGENTHUB_URL and that the agent is registered."
126
+ : "";
127
+ return `${phase} — close code ${f.closeCode}. ${meaning}${reason}${extra}`;
128
+ }
89
129
  /**
90
130
  * Whether this failure should also be pushed into the session as a channel
91
131
  * notification, rather than only written to stderr.
@@ -133,6 +173,12 @@ export function channelFailureMeta(f) {
133
173
  };
134
174
  if (typeof f.status === "number")
135
175
  meta.status = String(f.status);
176
+ // Stringified for the same reason as `status` above — a raw number here
177
+ // drops the stdio connection this notice travels over.
178
+ if (typeof f.closeCode === "number")
179
+ meta.close_code = String(f.closeCode);
180
+ if (f.closeReason?.trim())
181
+ meta.close_reason = f.closeReason.trim();
136
182
  return meta;
137
183
  }
138
184
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"channelDiagnostics.js","sourceRoot":"","sources":["../src/channelDiagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channelDiagnostics.js","sourceRoot":"","sources":["../src/channelDiagnostics.ts"],"names":[],"mappings":"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"}
@@ -168,6 +168,114 @@ describe("channelFailureMeta — the reporter must not kill the channel", () =>
168
168
  }
169
169
  });
170
170
  });
171
+ // AGHUB-1436 — a transport-failure notice that cannot distinguish transient
172
+ // from terminal. Every socket that closed after being established produced the
173
+ // byte-identical text "no error detail available", because both close handlers
174
+ // took no arguments and threw the close code and reason away one line before
175
+ // the notice was raised. Diagnosing the incident that surfaced this needed
176
+ // shell access to the server, which is the whole point of the bug.
177
+ describe("close code and reason", () => {
178
+ it("names an abnormal closure as a dropped network path, not a credential problem", () => {
179
+ const out = describeChannelFailure({
180
+ ...base,
181
+ wasConnected: true,
182
+ closeCode: 1006,
183
+ attempts: 1,
184
+ });
185
+ expect(out).toMatch(/1006/);
186
+ expect(out).not.toMatch(/no error detail available/);
187
+ // 1006 means no close frame arrived — there is nothing to blame auth for.
188
+ expect(out).not.toMatch(/AGENTHUB_API_KEY/);
189
+ });
190
+ it("names a server going away as a restart rather than a fault", () => {
191
+ const out = describeChannelFailure({ ...base, wasConnected: true, closeCode: 1001 });
192
+ expect(out).toMatch(/1001/);
193
+ expect(out).toMatch(/restart|going away|shutting down/i);
194
+ });
195
+ it("names a policy violation as terminal and does not advise waiting", () => {
196
+ const out = describeChannelFailure({
197
+ ...base,
198
+ wasConnected: true,
199
+ closeCode: 1008,
200
+ closeReason: "connect token revoked",
201
+ });
202
+ expect(out).toMatch(/1008/);
203
+ expect(out).toMatch(/connect token revoked/);
204
+ });
205
+ it("includes the reason text whenever the server sent one", () => {
206
+ const out = describeChannelFailure({
207
+ ...base,
208
+ wasConnected: true,
209
+ closeCode: 1011,
210
+ closeReason: "internal error indexing session",
211
+ });
212
+ expect(out).toMatch(/internal error indexing session/);
213
+ });
214
+ it("still says something useful when the close carried a code but no reason", () => {
215
+ const out = describeChannelFailure({ ...base, wasConnected: true, closeCode: 1005 });
216
+ expect(out).toMatch(/1005/);
217
+ expect(out).not.toMatch(/no error detail available/);
218
+ });
219
+ it("distinguishes a socket that never opened from one that dropped", () => {
220
+ const neverOpened = describeChannelFailure({ ...base, wasConnected: false, closeCode: 1006 });
221
+ const dropped = describeChannelFailure({ ...base, wasConnected: true, closeCode: 1006 });
222
+ expect(neverOpened).not.toBe(dropped);
223
+ // A handshake that never completed is the case where credentials and URL
224
+ // are worth checking; a mid-session drop is not.
225
+ expect(neverOpened).toMatch(/never opened|handshake|did not connect/i);
226
+ });
227
+ it("prefers an HTTP handshake status over a close code when both are present", () => {
228
+ // A rejected handshake reaches `unexpected-response` AND `close`. The 401
229
+ // is the actionable half; 1006 alongside it is noise.
230
+ const out = describeChannelFailure({
231
+ ...base,
232
+ status: 401,
233
+ closeCode: 1006,
234
+ wasConnected: false,
235
+ });
236
+ expect(out).toMatch(/401/);
237
+ expect(out).toMatch(/AGENTHUB_API_KEY/);
238
+ });
239
+ it("keeps saying 'no error detail available' when there genuinely is none", () => {
240
+ // The fallback is not the bug; reaching it with a code in hand was.
241
+ const out = describeChannelFailure(base);
242
+ expect(out).toMatch(/no error detail available/);
243
+ });
244
+ it("carries the close code into the session notice", () => {
245
+ const out = sessionFailureNotice({ ...base, wasConnected: true, closeCode: 1006 });
246
+ expect(out).toMatch(/1006/);
247
+ });
248
+ describe("meta", () => {
249
+ it("carries the close code and reason", () => {
250
+ const meta = channelFailureMeta({
251
+ ...base,
252
+ wasConnected: true,
253
+ closeCode: 1008,
254
+ closeReason: "revoked",
255
+ });
256
+ expect(meta.close_code).toBe("1008");
257
+ expect(meta.close_reason).toBe("revoked");
258
+ });
259
+ it("omits an absent close code rather than sending 'undefined'", () => {
260
+ const meta = channelFailureMeta(base);
261
+ expect("close_code" in meta).toBe(false);
262
+ expect("close_reason" in meta).toBe(false);
263
+ });
264
+ it("stringifies the close code, because one number drops the connection", () => {
265
+ // Same Zod trap as `status`: Claude Code validates meta values as
266
+ // strings and a raw number kills the stdio connection to this server.
267
+ const meta = channelFailureMeta({
268
+ ...base,
269
+ wasConnected: true,
270
+ closeCode: 1006,
271
+ closeReason: "x",
272
+ });
273
+ for (const [k, v] of Object.entries(meta)) {
274
+ expect(typeof v, `meta.${k}`).toBe("string");
275
+ }
276
+ });
277
+ });
278
+ });
171
279
  // add-channel-plugin-marketplace: the plugin form supplies identity through the
172
280
  // environment, so "started with no identity" became a reachable state that
173
281
  // nothing reported. It was a bare early return: MCP up, tools registered,
@@ -1 +1 @@
1
- {"version":3,"file":"channelDiagnostics.test.js","sourceRoot":"","sources":["../src/channelDiagnostics.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AAEjC,6EAA6E;AAC7E,2EAA2E;AAC3E,iCAAiC;AAEjC,MAAM,IAAI,GAAmB;IAC3B,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,KAAK;IACf,GAAG,EAAE,2DAA2D;IAChE,OAAO,EAAE,oBAAoB;CAC9B,CAAC;AAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,oBAAoB,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9D,iBAAiB,EAAE,OAAO;YAC1B,oBAAoB,EAAE,GAAG;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACvD,WAAW,EAAE,MAAM;YACnB,oBAAoB,EAAE,GAAG;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,oEAAoE;IACpE,2EAA2E;IAC3E,sEAAsE;IACtE,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,oBAAoB,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9E,oBAAoB,EAAE,GAAG;YACzB,iBAAiB,EAAE,OAAO;YAC1B,WAAW,EAAE,MAAM;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,uEAAuE;IACvE,0EAA0E;IAC1E,kBAAkB;IAClB,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,oBAAoB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,2EAA2E;IAC3E,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,sBAAsB,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,sBAAsB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC,OAAO,CACrF,mBAAmB,CACpB,CAAC;QACF,MAAM,CAAC,sBAAsB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC,CAAC,CAAC,OAAO,CAC5F,UAAU,CACX,CAAC;QACF,MAAM,CAAC,sBAAsB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,+CAA+C;IAC/C,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,sBAAsB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,2EAA2E;IAC3E,8EAA8E;IAC9E,gDAAgD;IAChD,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,KAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,6EAA6E;IAC7E,kCAAkC;IAClC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,GAAG,GAAG,oBAAoB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAG,oBAAoB,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,oBAAoB,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC/D,0EAA0E;IAC1E,4EAA4E;IAC5E,4CAA4C;IAC5C,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,0EAA0E;IAC1E,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,oBAAoB,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,GAAG,oBAAoB,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE;IAC3E,6EAA6E;IAC7E,wEAAwE;IACxE,0EAA0E;IAC1E,2EAA2E;IAC3E,yCAAyC;IACzC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,IAAI,GAAG,kBAAkB,CAC7B,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,CACxF,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,IAAI,GAAG,kBAAkB,CAC7B,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,CACpG,CAAC;QACF,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,IAAI,GAAG,kBAAkB,CAC7B,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,CACvF,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,IAAI,GAAG,kBAAkB,CAC7B,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAC9E,CAAC;QACF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,2EAA2E;AAC3E,0EAA0E;AAC1E,qEAAqE;AAErE,MAAM,QAAQ,GAAyB;IACrC,OAAO,EAAE,gBAAgB;IACzB,MAAM,EAAE,YAAY;IACpB,GAAG,EAAE,gCAAgC;CACtC,CAAC;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACrF,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACpE,mBAAmB;YACnB,kBAAkB;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAC1E,6EAA6E;IAC7E,gEAAgE;IAChE,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACxF,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAChF,mBAAmB;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9E,kBAAkB;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,IAAI,GAAG,uBAAuB,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,sBAAsB;IACtB,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,IAAI,GAAG,uBAAuB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,uBAAuB,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,yEAAyE;IACzE,iDAAiD;IACjD,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,0EAA0E;IAC1E,6EAA6E;IAC7E,+DAA+D;IAC/D,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CACjD,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAClF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"channelDiagnostics.test.js","sourceRoot":"","sources":["../src/channelDiagnostics.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAqD,MAAM,cAAc,CAAC;AAOrG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAkG/D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,WAAW,CAAC;IACpC,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,KAAK,IAAI,CAAC;CACZ;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAyLD,wBAAgB,aAAa,IAAI,IAAI,EAAE,CAk2FtC;AA2BD,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CAyuFlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAqD,MAAM,cAAc,CAAC;AAOrG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAmG/D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,WAAW,CAAC;IACpC,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,KAAK,IAAI,CAAC;CACZ;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAyLD,wBAAgB,aAAa,IAAI,IAAI,EAAE,CAk2FtC;AA2BD,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CA+qFlB"}
@@ -10,6 +10,7 @@ import * as brainCapture from "../hooks/brainCapture.js";
10
10
  import { getBrain } from "../brain/backend.js";
11
11
  import open from "open";
12
12
  import { registerOpenSpecVizTools, handleOpenSpecVizToolCall } from "./openspec-viz/index.js";
13
+ import { syncTaskGroups, describeTaskSync } from "./openspec-viz/taskSync.js";
13
14
  import { registerIntakeRequestTools, handleIntakeRequestToolCall, isIntakeRequestTool, } from "./intakeRequests.js";
14
15
  import { registerSessionControlTools, handleSessionControlToolCall, isSessionControlTool, } from "./sessionControl.js";
15
16
  import { registerGoshtiReadTools, handleGoshtiReadToolCall, isGoshtiReadTool, } from "./goshtiRead.js";
@@ -4750,89 +4751,29 @@ export async function handleToolCall(name, args, client, context) {
4750
4751
  catch {
4751
4752
  // Non-fatal if cleanup fails
4752
4753
  }
4753
- // 5. Sync tasks to ticket system (create Stories + Tasks from spec task groups)
4754
- let taskSyncResult;
4754
+ // 5. Sync tasks to ticket system (create Stories + Tasks from spec task groups).
4755
+ // The sync reports its own outcome. It used to be wrapped in a bare
4756
+ // `catch` here, which made a crashed sync byte-identical to one that
4757
+ // was never requested — the hierarchy was then discovered to be
4758
+ // missing only by independently listing the epic's children
4759
+ // (AGHUB-1469).
4755
4760
  const publishAgentState = workingDir ? state.loadState(workingDir) : undefined;
4756
- if (publishResult.sync_tasks && publishResult.taskGroups.length > 0 && publishAgentState?.project_id) {
4757
- taskSyncResult = { storiesCreated: 0, tasksCreated: 0, storiesSkipped: 0, tasksSkipped: 0 };
4761
+ const taskSyncOutcome = await syncTaskGroups({
4762
+ client,
4763
+ projectId: publishAgentState?.project_id ?? "",
4764
+ taskGroups: publishResult.taskGroups,
4765
+ ticketType: publishResult.ticket_type,
4766
+ ticketId: publishResult.ticket_id,
4758
4767
  // The change id is the input arg `id` — in change/diff modes that's
4759
- // the openspec change name. Stamp newly-created stories and tasks
4760
- // with it so the hierarchy resolver can find them.
4761
- const changeID = typeof args.id === "string" ? args.id : undefined;
4762
- try {
4763
- // Get existing stories to detect duplicates
4764
- const existingStories = await client.listProjectStories(publishAgentState.project_id);
4765
- const storyTitleMap = new Map(); // title → id
4766
- for (const s of existingStories.stories || []) {
4767
- storyTitleMap.set(s.title.toLowerCase().trim(), s.id);
4768
- }
4769
- for (const group of publishResult.taskGroups) {
4770
- const groupTitle = group.title.trim();
4771
- if (!groupTitle)
4772
- continue;
4773
- // Create or find story for this task group
4774
- let storyId;
4775
- const existingStoryId = storyTitleMap.get(groupTitle.toLowerCase());
4776
- if (existingStoryId) {
4777
- storyId = existingStoryId;
4778
- taskSyncResult.storiesSkipped++;
4779
- }
4780
- else {
4781
- const storyResult = await client.createStory({
4782
- project_id: publishAgentState.project_id,
4783
- epic_id: publishResult.ticket_type === "epic" ? publishResult.ticket_id : undefined,
4784
- title: groupTitle,
4785
- labels: ["openspec-sync"],
4786
- openspec_change_id: changeID,
4787
- });
4788
- storyId = storyResult.id;
4789
- storyTitleMap.set(groupTitle.toLowerCase(), storyId);
4790
- taskSyncResult.storiesCreated++;
4791
- }
4792
- // Get existing tasks for this story — map titles to ticket info for dedup + mapping
4793
- const existingTasks = await client.listProjectTasks(publishAgentState.project_id, storyId);
4794
- const taskInfoMap = new Map();
4795
- for (const t of existingTasks.tasks || []) {
4796
- taskInfoMap.set(t.title.toLowerCase().trim(), { id: t.id, key: t.key });
4797
- }
4798
- // Create tasks for each item in the group
4799
- for (const task of group.tasks) {
4800
- const taskTitle = task.text.trim();
4801
- if (!taskTitle)
4802
- continue;
4803
- const existingTask = taskInfoMap.get(taskTitle.toLowerCase());
4804
- if (existingTask) {
4805
- // Store the ticket mapping even for skipped (existing) tasks
4806
- task.ticket_id = existingTask.id;
4807
- task.ticket_key = existingTask.key;
4808
- taskSyncResult.tasksSkipped++;
4809
- continue;
4810
- }
4811
- const createdTask = await client.createTask({
4812
- project_id: publishAgentState.project_id,
4813
- story_id: storyId,
4814
- title: taskTitle,
4815
- labels: ["openspec-sync"],
4816
- });
4817
- // Store the ticket mapping for the newly created task. Tasks
4818
- // created here go through story_id, so the discriminated
4819
- // result is always ok:true; ignore the !ok branch silently
4820
- // (the outer try/catch will swallow truly unexpected errors).
4821
- if (createdTask.ok) {
4822
- task.ticket_id = createdTask.id;
4823
- task.ticket_key = createdTask.key;
4824
- taskSyncResult.tasksCreated++;
4825
- }
4826
- }
4827
- }
4828
- }
4829
- catch {
4830
- // Task sync failure is non-fatal
4831
- taskSyncResult = undefined;
4832
- }
4833
- }
4834
- // 6. Re-upload JSON with ticket ID mappings if task sync produced mappings
4835
- if (taskSyncResult) {
4768
+ // the openspec change name. Stamp newly-created stories with it so the
4769
+ // hierarchy resolver can find them.
4770
+ changeId: typeof args.id === "string" ? args.id : undefined,
4771
+ enabled: publishResult.sync_tasks,
4772
+ });
4773
+ // 6. Re-upload JSON with ticket ID mappings if task sync produced mappings.
4774
+ // A failed sync may still have mapped part of the hierarchy, so the
4775
+ // mappings it did write are preserved rather than discarded.
4776
+ if (taskSyncOutcome.status !== "skipped") {
4836
4777
  try {
4837
4778
  const fs = await import("fs");
4838
4779
  // Update the parsed JSON object's tasks with ticket mappings
@@ -4868,9 +4809,11 @@ export async function handleToolCall(name, args, client, context) {
4868
4809
  sections: publishResult.sections,
4869
4810
  requirementCount: publishResult.requirementCount,
4870
4811
  gapCount: publishResult.gapCount,
4871
- taskSync: taskSyncResult,
4872
- message: `Published OpenSpec to ${publishResult.ticket_key} (HTML + JSON, ${publishResult.requirementCount} requirements)` +
4873
- (taskSyncResult ? `. Task sync: ${taskSyncResult.storiesCreated} stories + ${taskSyncResult.tasksCreated} tasks created (${taskSyncResult.storiesSkipped + taskSyncResult.tasksSkipped} skipped as duplicates)` : ""),
4812
+ taskSync: taskSyncOutcome,
4813
+ // Always stated, so a caller reading only the message can tell a
4814
+ // successful sync from a failed or skipped one.
4815
+ message: `Published OpenSpec to ${publishResult.ticket_key} (HTML + JSON, ${publishResult.requirementCount} requirements). ` +
4816
+ describeTaskSync(taskSyncOutcome),
4874
4817
  }, context);
4875
4818
  }
4876
4819
  // Plan Review tools