@copilotkit/web-inspector 1.79.1-canary.1792091124 → 1.79.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/index.umd.js CHANGED
@@ -3064,7 +3064,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3064
3064
 
3065
3065
  //#endregion
3066
3066
  //#region package.json
3067
- var version = "1.79.1-canary.1792091124";
3067
+ var version = "1.79.1";
3068
3068
 
3069
3069
  //#endregion
3070
3070
  //#region src/lib/telemetry.ts
@@ -5052,6 +5052,9 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
5052
5052
  this._lastSeenLiveMessageVersion = 0;
5053
5053
  this._metadataAbort = null;
5054
5054
  this._messagesAbort = null;
5055
+ this._messagesRefreshTimer = null;
5056
+ this._messagesRefreshPending = false;
5057
+ this._lastMessagesFetchAt = 0;
5055
5058
  this._eventsAbort = null;
5056
5059
  this._stateAbort = null;
5057
5060
  this._hasConnectedOnce = false;
@@ -5189,11 +5192,9 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
5189
5192
  this._conversation = [];
5190
5193
  }
5191
5194
  } else if (this.threadId && this.liveMessageVersion !== this._lastSeenLiveMessageVersion) {
5192
- var _this$_messagesAbort;
5193
5195
  this._lastSeenLiveMessageVersion = this.liveMessageVersion;
5194
- (_this$_messagesAbort = this._messagesAbort) === null || _this$_messagesAbort === void 0 || _this$_messagesAbort.abort();
5195
- this._messagesAbort = null;
5196
- this.fetchMessages(this.threadId, true);
5196
+ this._messagesRefreshPending = true;
5197
+ this.scheduleMessagesRefresh();
5197
5198
  }
5198
5199
  const focusedContentChanged = _changed.has("_fetchedEvents") || _changed.has("agentEventsInput") || _changed.has("agentMessagesInput") || _changed.has("_conversation");
5199
5200
  if (this.focusMessageId && (this.focusRequestId > this._scrolledFocusRequestId || focusedContentChanged)) {
@@ -5255,7 +5256,13 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
5255
5256
  ].join("||");
5256
5257
  }
5257
5258
  resetLoadedThreadData() {
5258
- var _this$_metadataAbort, _this$_messagesAbort2, _this$_eventsAbort, _this$_stateAbort;
5259
+ var _this$_metadataAbort, _this$_messagesAbort, _this$_eventsAbort, _this$_stateAbort;
5260
+ if (this._messagesRefreshTimer !== null) {
5261
+ clearTimeout(this._messagesRefreshTimer);
5262
+ this._messagesRefreshTimer = null;
5263
+ }
5264
+ this._messagesRefreshPending = false;
5265
+ this._lastMessagesFetchAt = 0;
5259
5266
  this._tab = "timeline";
5260
5267
  this._activatedTabs = new Set(["timeline"]);
5261
5268
  this._panelTplCache = /* @__PURE__ */ new Map();
@@ -5267,7 +5274,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
5267
5274
  this._expandedRawEvents = /* @__PURE__ */ new Set();
5268
5275
  (_this$_metadataAbort = this._metadataAbort) === null || _this$_metadataAbort === void 0 || _this$_metadataAbort.abort();
5269
5276
  this._metadataAbort = null;
5270
- (_this$_messagesAbort2 = this._messagesAbort) === null || _this$_messagesAbort2 === void 0 || _this$_messagesAbort2.abort();
5277
+ (_this$_messagesAbort = this._messagesAbort) === null || _this$_messagesAbort === void 0 || _this$_messagesAbort.abort();
5271
5278
  this._messagesAbort = null;
5272
5279
  (_this$_eventsAbort = this._eventsAbort) === null || _this$_eventsAbort === void 0 || _this$_eventsAbort.abort();
5273
5280
  this._eventsAbort = null;
@@ -5305,6 +5312,19 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
5305
5312
  this._fetchedMetadata = null;
5306
5313
  }
5307
5314
  }
5315
+ /** Coalesces live updates without overlapping requests or starving the final update. */
5316
+ scheduleMessagesRefresh() {
5317
+ if (!this._messagesRefreshPending || this._messagesRefreshTimer !== null || this._messagesAbort || !this.isConnected || !this.threadId || !this.canFetchMessages()) return;
5318
+ const threadId = this.threadId;
5319
+ const loadKey = this.currentLoadKey();
5320
+ if (loadKey !== this._lastLoadKey) return;
5321
+ const delay = Math.max(0, CpkThreadInspector.MESSAGE_REFRESH_INTERVAL_MS - (Date.now() - this._lastMessagesFetchAt));
5322
+ this._messagesRefreshTimer = setTimeout(() => {
5323
+ this._messagesRefreshTimer = null;
5324
+ if (!this.isConnected || this.currentLoadKey() !== loadKey || this._lastLoadKey !== loadKey || this._messagesAbort) return;
5325
+ this.fetchMessages(threadId, true);
5326
+ }, delay);
5327
+ }
5308
5328
  /**
5309
5329
  * Fetch the canonical conversation for `threadId` from the runtime.
5310
5330
  *
@@ -5316,13 +5336,20 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
5316
5336
  * so users see an explicit loading indicator on first load.
5317
5337
  */
5318
5338
  async fetchMessages(threadId, silent = false) {
5319
- var _this$_messagesAbort3;
5339
+ var _this$_messagesAbort2;
5320
5340
  if (!this.canFetchMessages()) {
5321
5341
  if (!silent) this._conversation = [];
5322
5342
  return;
5323
5343
  }
5324
- (_this$_messagesAbort3 = this._messagesAbort) === null || _this$_messagesAbort3 === void 0 || _this$_messagesAbort3.abort();
5344
+ if (this._messagesRefreshTimer !== null) {
5345
+ clearTimeout(this._messagesRefreshTimer);
5346
+ this._messagesRefreshTimer = null;
5347
+ }
5348
+ this._messagesRefreshPending = false;
5349
+ this._lastMessagesFetchAt = Date.now();
5350
+ (_this$_messagesAbort2 = this._messagesAbort) === null || _this$_messagesAbort2 === void 0 || _this$_messagesAbort2.abort();
5325
5351
  const controller = new AbortController();
5352
+ const loadKey = this.currentLoadKey();
5326
5353
  this._messagesAbort = controller;
5327
5354
  if (!silent) {
5328
5355
  this._loadingMessages = true;
@@ -5332,19 +5359,25 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
5332
5359
  try {
5333
5360
  var _this$provider5;
5334
5361
  const messages = ((_this$provider5 = this.provider) === null || _this$provider5 === void 0 ? void 0 : _this$provider5.getMessages) ? await this.provider.getMessages(threadId, { signal: controller.signal }) : await this.fetchRuntimeMessages(threadId, controller.signal);
5335
- if (controller.signal.aborted || this.threadId !== threadId) return;
5362
+ if (controller.signal.aborted || this.currentLoadKey() !== loadKey) return;
5336
5363
  this._conversation = this.mapMessages(messages);
5337
5364
  this._messagesError = null;
5338
5365
  this._messageRefreshError = null;
5339
5366
  } catch (err) {
5340
- if (controller.signal.aborted || this.threadId !== threadId) return;
5367
+ if (controller.signal.aborted || this.currentLoadKey() !== loadKey) return;
5341
5368
  if (err instanceof Error && err.name === "AbortError") return;
5342
5369
  if (!silent || this._conversation.length === 0) {
5343
5370
  this._messagesError = err instanceof Error ? err.message : "Failed to load messages";
5344
5371
  this._conversation = [];
5345
5372
  } else this._messageRefreshError = "Could not refresh messages. Showing the last loaded conversation.";
5346
5373
  } finally {
5347
- if (!controller.signal.aborted && this.threadId === threadId) this._loadingMessages = false;
5374
+ if (this._messagesAbort === controller) {
5375
+ this._messagesAbort = null;
5376
+ if (!controller.signal.aborted && this.currentLoadKey() === loadKey) {
5377
+ this._loadingMessages = false;
5378
+ this.scheduleMessagesRefresh();
5379
+ }
5380
+ }
5348
5381
  }
5349
5382
  }
5350
5383
  async fetchEvents(threadId) {
@@ -6826,6 +6859,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
6826
6859
  CpkThreadInspector.nextDomId = 1;
6827
6860
  CpkThreadInspector.ɵdefaultResolveHeaders = () => ({});
6828
6861
  CpkThreadInspector.COLLAPSE_THRESHOLD = 800;
6862
+ CpkThreadInspector.MESSAGE_REFRESH_INTERVAL_MS = 1e3;
6829
6863
  CpkThreadInspector.TAB_LIST = [
6830
6864
  {
6831
6865
  id: "timeline",