site-operator 0.3.0 → 0.3.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.
@@ -998,9 +998,20 @@ const styles$4 = i$1`
998
998
  transform: scale(1);
999
999
  }
1000
1000
  }
1001
- `, a2uiService = new class {
1001
+ .debug-id {
1002
+ font-size: 0.65rem;
1003
+ color: var(--agent-text-zinc-400, #a1a1aa);
1004
+ margin-top: 0.25rem;
1005
+ font-family: monospace;
1006
+ opacity: 0.6;
1007
+ user-select: all;
1008
+ }
1009
+ `, a2uiService = new class extends EventTarget {
1002
1010
  constructor() {
1003
- this.processor = v0_8.Data.createSignalA2uiMessageProcessor();
1011
+ super(), this.processor = v0_8.Data.createSignalA2uiMessageProcessor(), this.surfaceMessageRegistry = /* @__PURE__ */ new Map(), this.processedMessageIds = /* @__PURE__ */ new Set();
1012
+ }
1013
+ clearRegistry() {
1014
+ this.surfaceMessageRegistry.clear(), this.processedMessageIds.clear();
1004
1015
  }
1005
1016
  resolveValue(o, O) {
1006
1017
  if (O) {
@@ -1163,6 +1174,7 @@ const styles$4 = i$1`
1163
1174
  processMessages(o) {
1164
1175
  let O = [];
1165
1176
  for (let M of o) {
1177
+ if (this.processedMessageIds.has(M.id) && !M.isThinking) continue;
1166
1178
  if (this.isServerToClientMessage(M)) {
1167
1179
  O.push(this.normalizeServerMessage(M));
1168
1180
  continue;
@@ -1192,7 +1204,21 @@ const styles$4 = i$1`
1192
1204
  }
1193
1205
  M.role === "assistant" && M.toolCalls && O.push(...this.mapMessage(M));
1194
1206
  }
1195
- if (O.length !== 0) return console.log("A2UIService: Processing mapped messages:", JSON.stringify(O, null, 2)), this.processor.processMessages(O);
1207
+ if (O.length !== 0 && O.length > 0) {
1208
+ console.log("A2UIService: Processing mapped messages:", JSON.stringify(O, null, 2)), this.processor.processMessages(O);
1209
+ for (let O of o) this.processedMessageIds.add(O.id);
1210
+ this.dispatchEvent(new CustomEvent("processor-update"));
1211
+ }
1212
+ }
1213
+ consolidateStream(o, O) {
1214
+ let M = this.getA2UIPayloads(o);
1215
+ if (M.length === 0) return [...O, o];
1216
+ let F = !1, U = !1;
1217
+ for (let O of M) {
1218
+ let M = (O.beginRendering || O.surfaceUpdate || O.dataModelUpdate || O.deleteSurface)?.surfaceId;
1219
+ M && (O.beginRendering || O.surfaceUpdate || O.dataModelUpdate ? this.surfaceMessageRegistry.has(M) ? F = !0 : (this.surfaceMessageRegistry.set(M, o), U = !0) : O.deleteSurface && this.surfaceMessageRegistry.has(M) && (F = !0));
1220
+ }
1221
+ return this.processor.processMessages(M), this.processedMessageIds.add(o.id), this.dispatchEvent(new CustomEvent("processor-update")), F && !U ? (console.log(`A2UIService: Consolidating update for surface(s). Discarding visual message ${o.id}`), O) : [...O, o];
1196
1222
  }
1197
1223
  processMessage(o) {
1198
1224
  this.processMessages([o]);
@@ -1241,17 +1267,11 @@ const styles$4 = i$1`
1241
1267
  });
1242
1268
  }
1243
1269
  isA2UIMessage(o) {
1244
- if (o.role === "activity" && o.activityType === "a2ui" || o.role === "assistant" && o.toolCalls && o.toolCalls.some((o) => o.function?.name.startsWith("a2ui_"))) return !0;
1245
- if (o.role === "tool" && typeof o.content == "string") try {
1246
- let O = JSON.parse(o.content);
1247
- return O.role === "activity" && O.activity_type === "a2ui";
1248
- } catch {
1249
- return !1;
1250
- }
1251
- return !1;
1270
+ return !o || o.role !== "assistant" && o.role !== "activity" ? !1 : o.role === "activity" && o.activityType === "a2ui" ? !0 : o.role === "assistant" && o.toolCalls ? o.toolCalls.some((o) => o.function?.name.startsWith("a2ui_")) : !1;
1252
1271
  }
1253
1272
  getA2UIPayloads(o) {
1254
1273
  let O = [];
1274
+ if (!o) return O;
1255
1275
  if (o.role === "assistant" && o.toolCalls) O.push(...this.mapMessage(o));
1256
1276
  else if (o.role === "activity" && o.activityType === "a2ui" && o.content) {
1257
1277
  let M = o.content;
@@ -1260,21 +1280,29 @@ const styles$4 = i$1`
1260
1280
  });
1261
1281
  } else if (o.role === "tool" && typeof o.content == "string") try {
1262
1282
  let M = JSON.parse(o.content);
1263
- if (M.role === "activity" && M.activity_type === "a2ui" && M.content) {
1283
+ if ((M.role === "activity" || M.activity_type === "a2ui") && M.content) {
1264
1284
  let o = M.content;
1265
1285
  (Array.isArray(o) ? o : [o]).forEach((o) => {
1266
1286
  this.isServerToClientMessage(o) && O.push(this.normalizeServerMessage(o));
1267
1287
  });
1268
- }
1288
+ } else this.isServerToClientMessage(M) && O.push(this.normalizeServerMessage(M));
1269
1289
  } catch {}
1270
1290
  return O;
1271
1291
  }
1272
1292
  }();
1273
1293
  var ChatMessage = class extends i {
1274
1294
  constructor(...o) {
1275
- super(...o), this.isLast = !1, this.isStreaming = !1, this.agentAvatar = "";
1295
+ super(...o), this.isLast = !1, this.isStreaming = !1, this.agentAvatar = "", this._processorUpdated = !1, this._handleProcessorUpdate = () => {
1296
+ a2uiService.isA2UIMessage(this.message) && this.requestUpdate();
1297
+ };
1276
1298
  }
1277
1299
  static #e = this.styles = styles$5;
1300
+ connectedCallback() {
1301
+ super.connectedCallback(), a2uiService.addEventListener("processor-update", this._handleProcessorUpdate);
1302
+ }
1303
+ disconnectedCallback() {
1304
+ a2uiService.removeEventListener("processor-update", this._handleProcessorUpdate), super.disconnectedCallback();
1305
+ }
1278
1306
  updated(o) {
1279
1307
  o.has("message") && (this.setAttribute("role", this.message.role), this.requestUpdate());
1280
1308
  }
@@ -1292,20 +1320,20 @@ var ChatMessage = class extends i {
1292
1320
  render() {
1293
1321
  let o = this.message.role === "user";
1294
1322
  if (a2uiService.isA2UIMessage(this.message)) {
1295
- a2uiService.processMessages([this.message]);
1296
- let o = Array.from(a2uiService.processor.getSurfaces().entries()), O = a2uiService.processor;
1297
- if (o.length > 0) return b`
1323
+ let o = a2uiService.getA2UIPayloads(this.message), O = new Set(o.map((o) => (o.beginRendering || o.surfaceUpdate || o.dataModelUpdate || o.deleteSurface)?.surfaceId).filter(Boolean)), M = a2uiService.processor, F = Array.from(M.getSurfaces().entries()).filter(([o]) => O.has(o));
1324
+ if (F.length > 0) return b`
1298
1325
  <div class="message-container activity">
1299
1326
  ${this.agentAvatar ? b`<img src="${this.agentAvatar}" class="avatar-img" alt="AI">` : b`<div class="avatar">C</div>`}
1300
1327
  <div class="content-wrapper">
1301
- ${o.map(([o, M]) => b`
1328
+ ${F.map(([o, O]) => b`
1302
1329
  <a2ui-theme-provider
1303
1330
  .surfaceId="${o}"
1304
- .processor="${O}"
1305
- .surface="${M}"
1331
+ .processor="${M}"
1332
+ .surface="${O}"
1306
1333
  .enableCustomElements="${!0}"
1307
1334
  ></a2ui-theme-provider>
1308
1335
  `)}
1336
+ <div class="debug-id">${this.message.id}</div>
1309
1337
  </div>
1310
1338
  </div>
1311
1339
  `;
@@ -1324,6 +1352,7 @@ var ChatMessage = class extends i {
1324
1352
  <div class="typing-dot"></div>
1325
1353
  </div>
1326
1354
  ` : this.message.content}</div>
1355
+ <div class="debug-id">${this.message.id}</div>
1327
1356
 
1328
1357
  ${o ? "" : b`
1329
1358
  <div class="actions">
@@ -1340,7 +1369,7 @@ var ChatMessage = class extends i {
1340
1369
  `;
1341
1370
  }
1342
1371
  };
1343
- __decorate([n({ type: Object })], ChatMessage.prototype, "message", void 0), __decorate([n({ type: Boolean })], ChatMessage.prototype, "isLast", void 0), __decorate([n({ type: Boolean })], ChatMessage.prototype, "isStreaming", void 0), __decorate([n({ type: String })], ChatMessage.prototype, "agentAvatar", void 0), ChatMessage = __decorate([t("agent-chat-message")], ChatMessage);
1372
+ __decorate([n({ type: Object })], ChatMessage.prototype, "message", void 0), __decorate([n({ type: Boolean })], ChatMessage.prototype, "isLast", void 0), __decorate([n({ type: Boolean })], ChatMessage.prototype, "isStreaming", void 0), __decorate([n({ type: String })], ChatMessage.prototype, "agentAvatar", void 0), __decorate([n({ type: Boolean })], ChatMessage.prototype, "_processorUpdated", void 0), ChatMessage = __decorate([t("agent-chat-message")], ChatMessage);
1344
1373
  var ChatThread = class extends i {
1345
1374
  constructor(...o) {
1346
1375
  super(...o), this.messages = [], this.isRunning = !1, this.agentAvatar = "", this.emptyText = "";
@@ -1363,7 +1392,7 @@ var ChatThread = class extends i {
1363
1392
  </div>
1364
1393
  ` : b`
1365
1394
  <div class="messages-list">
1366
- ${this.messages.filter((o) => a2uiService.isA2UIMessage(o) ? (console.log("A2UIService: isA2UIMessage", o), !a2uiService.isBeginRenderingOnly(o)) : !0).map((o, O, M) => b`
1395
+ ${this.messages.filter((o) => a2uiService.isA2UIMessage(o) || o.role === "user" || o.role === "assistant" ? !0 : !(o.role === "tool" || o.role === "activity")).map((o, O, M) => b`
1367
1396
  <agent-chat-message
1368
1397
  .message=${o}
1369
1398
  .isLast=${O === M.length - 1}
@@ -3379,7 +3408,7 @@ const chatService = new class extends EventTarget {
3379
3408
  name: o.appName,
3380
3409
  locale: window.navigator.language || window.navigator.languages[0] || "en"
3381
3410
  }
3382
- }, O && await this.loadConversation(O), inspectorService.setContext(this._appContext), inspectorService.setState(this._appState), inspectorService.setMessages(this.agent?.messages || []);
3411
+ }, O ? await this.loadConversation(O) : a2uiService.clearRegistry(), inspectorService.setContext(this._appContext), inspectorService.setState(this._appState), inspectorService.setMessages(this.agent?.messages || []);
3383
3412
  }
3384
3413
  async loadConversation(o) {
3385
3414
  try {
@@ -3529,8 +3558,10 @@ const chatService = new class extends EventTarget {
3529
3558
  }
3530
3559
  setMessages(o) {
3531
3560
  if (!this.agent) throw Error("Agent not initialized");
3532
- let O = this.agent.messages.filter((o) => o.role === "activity"), M = new Set(o.map((o) => o.id)), F = O.filter((o) => !M.has(o.id));
3533
- console.log("ChatService: setMessages - Preserving activities", F.length), this.agent.messages = [...o, ...F], this.agent.messages.sort((o, O) => (o.createdAt || 0) - (O.createdAt || 0)), this.notify();
3561
+ a2uiService.clearRegistry();
3562
+ let O = [];
3563
+ for (let M of o) O = a2uiService.consolidateStream(M, O);
3564
+ O.sort((o, O) => (o.createdAt || 0) - (O.createdAt || 0)), this.agent.messages = O, this.notify();
3534
3565
  }
3535
3566
  addA2UIMessage(o) {
3536
3567
  if (!this.agent) throw Error("Agent not initialized");
@@ -3546,11 +3577,11 @@ const chatService = new class extends EventTarget {
3546
3577
  activityType: o.activityType,
3547
3578
  content: o.content,
3548
3579
  createdAt: Date.now()
3549
- }, F = this.agent.messages.filter((O) => O.id !== o.messageId);
3550
- this.agent.messages = [...F, M], this.notify();
3580
+ }, F = a2uiService.consolidateStream(M, this.agent.messages);
3581
+ this.agent.messages = F, this.notify();
3551
3582
  }
3552
3583
  async startNewThread() {
3553
- localStorage.removeItem(STORAGE_THREAD_ID_KEY), console.log("ChatService: startNewThread"), this.agent && (this.agent.threadId = threadIdPlaceHolder, this.agent.messages = [], this.agent.isRunning = !1), this._suggestedPrompts.length > 0 && (this._showPrompts = !0), this.notify();
3584
+ localStorage.removeItem(STORAGE_THREAD_ID_KEY), console.log("ChatService: startNewThread"), this.agent && (this.agent.threadId = threadIdPlaceHolder, this.agent.messages = [], this.agent.isRunning = !1), this._suggestedPrompts.length > 0 && (this._showPrompts = !0), a2uiService.clearRegistry(), this.notify();
3554
3585
  }
3555
3586
  async getConversations() {
3556
3587
  return await this.refreshConversations(), this._conversations;
@@ -3648,7 +3679,7 @@ var ChatController = class {
3648
3679
  window.fetch = async function(O, M) {
3649
3680
  try {
3650
3681
  let F = new Headers(M?.headers || {});
3651
- return F.has("Authorization") || F.append("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InhmcDRfR0tObWNBMHl3UUNrZ1BXVkJjTHZmRDVfZXZKOWg3bUhGbExBVWMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiIwZWZhNWFhNy04OWRiLTQ5MTYtYmZlNC0wNTM3MjhlZWY2M2QiLCJpc3MiOiJodHRwczovL3NrY290ZXN0LmIyY2xvZ2luLmNvbS8wZGI2ZGJjMy02OTA4LTQ1MTctYTdmMi04MWVhNjg1YTI1ZTIvdjIuMC8iLCJleHAiOjE3Njk3MTc5MjAsIm5iZiI6MTc2OTcxNzAyMCwibmFtZSI6IlZpYW5hIFZlbGFzcXVleiwgSm9zZSBTdGV2ZW4iLCJpZHBfYWNjZXNzX3Rva2VuIjoiZXlKMGVYQWlPaUpLVjFRaUxDSnViMjVqWlNJNkltdDVZM2h1ZGs5TlRtOVJZblpuU2psd1JuTnVMVGs0V1VsQlJVSjNjM1U0VTJjMmIzUmxjVjh3UldjaUxDSmhiR2NpT2lKU1V6STFOaUlzSW5nMWRDSTZJbEJqV0RrNFIxZzBNakJVTVZnMmMwSkVhM3BvVVcxeFozZE5WU0lzSW10cFpDSTZJbEJqV0RrNFIxZzBNakJVTVZnMmMwSkVhM3BvVVcxeFozZE5WU0o5LmV5SmhkV1FpT2lJd01EQXdNREF3TXkwd01EQXdMVEF3TURBdFl6QXdNQzB3TURBd01EQXdNREF3TURBaUxDSnBjM01pT2lKb2RIUndjem92TDNOMGN5NTNhVzVrYjNkekxtNWxkQzh3T0RJM01XWTBNaTA0TVdWbUxUUTFaRFl0T0RGaFl5MDBPVGMzTm1NMFltVTJNVFV2SWl3aWFXRjBJam94TnpZNU5qazFORFkwTENKdVltWWlPakUzTmprMk9UVTBOalFzSW1WNGNDSTZNVGMyT1RZNU9UZ3hPU3dpWVdOamRDSTZNQ3dpWVdOeUlqb2lNU0lzSW1GamNuTWlPbHNpY0RFaVhTd2lZV2x2SWpvaVFWcFJRV0V2T0dKQlFVRkJURWcxV0U1bFVrNXVTMDFxTm1WNlNHb3hjbUZYVWtzNGFqQTBTMGRLVVZVek5tdE9jamR3TldNMFdFNWxlbEpqWlc1WFUzazFWbUppVFdWUlp6UnVVRXBtVGtwS2JtWkNkVEJQZDIxSmRtbFhWazEwZEhGMUswVjVSR3BEWWxBNFppOXlVMUI2YVZCUUsyeEZZbEpYYXk5RGJUWXdkRzFHWldwUVoxQmhNamh0ZWtabWJtNUdjVzVhUzJGNFQwZFNMM2wwWkZOMGVVaFJLMkk1Um01emVqQlNUbmRKV2xGS2VqTnViVzEzVWpWUFlUVjZjV1pWVVRWVVJYaFhTekY2SWl3aVlXMXlJanBiSW5CM1pDSXNJbTFtWVNKZExDSmhjSEJmWkdsemNHeGhlVzVoYldVaU9pSkVZV3hwTFZCeVpDSXNJbUZ3Y0dsa0lqb2laR1prTURrNVlqQXRaV05pT1MwME0yVTFMV0kzWWpjdE5USTVObUk0TUdFME5qSXdJaXdpWVhCd2FXUmhZM0lpT2lJeElpd2labUZ0YVd4NVgyNWhiV1VpT2lKV2FXRnVZU0JXWld4aGMzRjFaWG9pTENKbmFYWmxibDl1WVcxbElqb2lTbTl6WlNCVGRHVjJaVzRpTENKcFpIUjVjQ0k2SW5WelpYSWlMQ0pwY0dGa1pISWlPaUl6T0M0NUxqSXlNQzR4TXpJaUxDSnVZVzFsSWpvaVZtbGhibUVnVm1Wc1lYTnhkV1Y2TENCS2IzTmxJRk4wWlhabGJpSXNJbTlwWkNJNkltVXdNbU0wTmpaakxXVTVaRGd0TkdGa01pMDVaVGhrTFdReFltUTJObUV6TkRNd01pSXNJbTl1Y0hKbGJWOXphV1FpT2lKVExURXROUzB5TVMweU5EZzVPVGM1T1RRd0xUSTFOVEl3TVRnM016RXRNVGN3TWpjeE9UTTFPUzB5TVRrNE1DSXNJbkJzWVhSbUlqb2lPQ0lzSW5CMWFXUWlPaUl4TURBek1qQXdNVUV4UWpCQ016azBJaXdpY21naU9pSXhMa0ZVVVVGUmFEaHVRMDh0UWpGclYwSnlSV3d6WWtWMmJVWlJUVUZCUVVGQlFVRkJRWGRCUVVGQlFVRkJRVUZDVVVGUmF6QkJRUzRpTENKelkzQWlPaUpOWVdsc0xsSmxZV1FnVFdGcGJDNVRaVzVrSUc5d1pXNXBaQ0J3Y205bWFXeGxJRlZ6WlhJdVVtVmhaQ0JsYldGcGJDSXNJbk5wWkNJNklqQXdNVE0yT0dSaExUTTVORFV0WkdSaU55MW1ZVGd6TFRjek16ZzFNVGMxTnpZNU1DSXNJbk5wWjI1cGJsOXpkR0YwWlNJNld5SnJiWE5wSWwwc0luTjFZaUk2SW5GaFNsbFhNelEzT0RWcFdFUktVbDlyYVZCa1NuSm5VWGhoVGs5d1RsaHRhVmhFV0dVM1NVTktaMWtpTENKMFpXNWhiblJmY21WbmFXOXVYM05qYjNCbElqb2lVMEVpTENKMGFXUWlPaUl3T0RJM01XWTBNaTA0TVdWbUxUUTFaRFl0T0RGaFl5MDBPVGMzTm1NMFltVTJNVFVpTENKMWJtbHhkV1ZmYm1GdFpTSTZJbXAyYVdGdVlVQnphMkZ1WkdsaExtTnZiUzVqYnlJc0luVndiaUk2SW1wMmFXRnVZVUJ6YTJGdVpHbGhMbU52YlM1amJ5SXNJblYwYVNJNklrMUlWVnAzTjJSRmJHc3RkRkZGZEcxMmJGVlBRVUVpTENKMlpYSWlPaUl4TGpBaUxDSjNhV1J6SWpwYkltSTNPV1ppWmpSa0xUTmxaamt0TkRZNE9TMDRNVFF6TFRjMllqRTVOR1U0TlRVd09TSmRMQ0o0YlhOZllXTmtJam94TnpVeU5UZzVNVEk0TENKNGJYTmZZV04wWDJaamRDSTZJak1nT1NJc0luaHRjMTltZEdRaU9pSk1halZqUjJ3Mk5YZzNXREJqTWtkMGJtcE5VbXBpY0VRd1IzVmlNbFJRWkZGRVoyRjRSV1JQT0VGSlFtUllUbnBpTTFZd1lVTXhhMk15TVhvaUxDSjRiWE5mYVdSeVpXd2lPaUl4TUNBeElpd2llRzF6WDNOMElqcDdJbk4xWWlJNkluTjBRbTVOTjFweE5ESnNNVkpHTW5STFJEQllRVkptWVU1RFVVRnZhRlp0WDFCVlYySmlhMFpmVVRnaWZTd2llRzF6WDNOMVlsOW1ZM1FpT2lJeklERTRJaXdpZUcxelgzUmpaSFFpT2pFek9UTTJNRE16TkRFc0luaHRjMTkwYm5SZlptTjBJam9pTXlBNEluMC5mSU1udzdwOTlvNzNxY2QtVW9DZ1ZFRVotODI2cTNZNVZaMG1DYWVrdW9pNnR3SmpUdHQyY0JyVFJqQ3ZadE5JOF9FNFNGY0hZQ3hSTm9pY1MzUkd4aGwwdFNvRndCaHNwUDFpREg0SHNrRjFkVWRTTi1XNmNIZDJKMnJFc19GLTJsQkNaR0Z4dTdkTEFpdXR4b2t1amlIUE96MS12MDRfOS01ZWswUUVITVUtcEVfNHlabnNWVERfaFc4ZC04UUVEOVNlN0dWRFFWcUZac1RSMDRSRlFGSGhuN19Sd0hwc2ptYWp1LUFVUlpaVy1KZEpzM1hHT1Flam41NTZMSUpJT01WdzN4T0wtSkVaQlQxRTlKR3NyTjFFSVhJbGJzOVUtNHZfT21JQURZVXlFWnBzV3pIeXpMTHRxUFFjRDhvTEpLZUFYYU1Kbml0czlHVjY0NFBIUUEiLCJzdWIiOiI4ODIwZDZiNi03MjViLTQwNDQtYWRjYi1hM2UxOGEzOGU0ZmMiLCJnaXZlbl9uYW1lIjoiSm9zZSBTdGV2ZW4iLCJmYW1pbHlfbmFtZSI6IlZpYW5hIFZlbGFzcXVleiIsImVtYWlsIjoianZpYW5hQHNrYW5kaWEuY29tLmNvIiwibm9uY2UiOiIwMTljMGExNi01ZGQ0LTdiNTktYjlkOS00MTBhOGRjMzdjM2YiLCJhenAiOiIwZWZhNWFhNy04OWRiLTQ5MTYtYmZlNC0wNTM3MjhlZWY2M2QiLCJ2ZXIiOiIxLjAiLCJpYXQiOjE3Njk3MTcwMjB9.nfO771YIggoRk1Q6VrhEhGL8hSgu_O6_yLgp9MHwPbb2oUuUlclKXq1xdstjs7ERBi8mQtqlmEb2b0JCM5BV-2WIe41RlIErQgACBdoFUPLnBWnOLnffl6Y-Ce88WjoRfSAtj6GUn09aD53ocUkU_t4ca2ozpcpQGgrJxx2QxZpRp7uTB0Wxdt5KzLTpc05JpJe4AdKxLImrKgqMaR2R2IRn8zhZmlLQR2TfEPqPW-tbCVLdWLn2XJx6mWtcKtgCC0O9fNz2WeyyOnxLFV9pEjWm93cUXX9VEBhwmyKD0vReU9fnUwJqL3s09hg3hUMptZr4FjrJsXaoxaxbZhitrg"), o.originalFetch(O, {
3682
+ return F.has("Authorization") || F.append("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InhmcDRfR0tObWNBMHl3UUNrZ1BXVkJjTHZmRDVfZXZKOWg3bUhGbExBVWMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiIwZWZhNWFhNy04OWRiLTQ5MTYtYmZlNC0wNTM3MjhlZWY2M2QiLCJpc3MiOiJodHRwczovL3NrY290ZXN0LmIyY2xvZ2luLmNvbS8wZGI2ZGJjMy02OTA4LTQ1MTctYTdmMi04MWVhNjg1YTI1ZTIvdjIuMC8iLCJleHAiOjE3NzAxNzYyNzUsIm5iZiI6MTc3MDE3NTM3NSwibmFtZSI6IlZpYW5hIFZlbGFzcXVleiwgSm9zZSBTdGV2ZW4iLCJpZHBfYWNjZXNzX3Rva2VuIjoiZXlKMGVYQWlPaUpLVjFRaUxDSnViMjVqWlNJNklrZzRWbmMwWkV4UlowRnBhbnB1V0ZWMldrWkxaRkF4YlVsQ1ZrVXlZMXBGYlVOaVoybExkRXM1TjJNaUxDSmhiR2NpT2lKU1V6STFOaUlzSW5nMWRDSTZJbEJqV0RrNFIxZzBNakJVTVZnMmMwSkVhM3BvVVcxeFozZE5WU0lzSW10cFpDSTZJbEJqV0RrNFIxZzBNakJVTVZnMmMwSkVhM3BvVVcxeFozZE5WU0o5LmV5SmhkV1FpT2lJd01EQXdNREF3TXkwd01EQXdMVEF3TURBdFl6QXdNQzB3TURBd01EQXdNREF3TURBaUxDSnBjM01pT2lKb2RIUndjem92TDNOMGN5NTNhVzVrYjNkekxtNWxkQzh3T0RJM01XWTBNaTA0TVdWbUxUUTFaRFl0T0RGaFl5MDBPVGMzTm1NMFltVTJNVFV2SWl3aWFXRjBJam94Tnpjd01UY3lNREk1TENKdVltWWlPakUzTnpBeE56SXdNamtzSW1WNGNDSTZNVGMzTURFM05qZzNOeXdpWVdOamRDSTZNQ3dpWVdOeUlqb2lNU0lzSW1GamNuTWlPbHNpY0RFaVhTd2lZV2x2SWpvaVFWSlJRall2TkdKQlFVRkJOWGRHUWtRNVQwRldZekU0TUZSSU0xVllOMGR4VkdodU1rNXRTM1ZVZGpaclFtcEZSSHBpZFRsR1lqZ3JlRE5TT1c1Ulp6bHZZV1Z0Vm1OdWJVNHJkVFJtZW1kVVVUZExVMW80WmtSSlVXMDVTekExZVhwRFJsbFFTRFJTTHpaRFJqSXpNR050VTFCd1FWcGtZVGxNWTA4eFRrUXpkV1Y1VjBsQmFXaHhTWFJQWVdKVlJGVnJiRUpaZWpVMVV6ZHZTRmMzTm1Sa1RscHVhMFpyV2s5WFFYaE1NVXhPUmxsbGIyMUVRMUpFU21SYVFVd3ZlVVpVY1Rock4wSlRRbE5OU0VwNVNFdzJkV3AxVlRNMVZqWXJjV3R0WldRemRHYzVWVVYzZEhGM2MzaEJjMDV5YW1oNU1qbG9kazUyUlRGNmNVSm9ORTFTTW5jM1RWUm1TMFF2U2taM2IwaGFWMFpsWVc1cVRqbDVNVEYwVVdJemVUazNOamxzWlZNeFVqQlNVakpDVGxScFUzSkdTa2hRVGxoWFpXSkdiRWhvYWpnMGRDdHNORGRFY0dWalZuQk1Za3gyTlZWdWVqaFBRa0owUkVSUmIzaFllRlozYTNwc01XUTRkVzV1TXpCblJuTnJTWEJOUFNJc0ltRnRjaUk2V3lKd2QyUWlMQ0p0Wm1FaVhTd2lZWEJ3WDJScGMzQnNZWGx1WVcxbElqb2lSR0ZzYVMxUWNtUWlMQ0poY0hCcFpDSTZJbVJtWkRBNU9XSXdMV1ZqWWprdE5ETmxOUzFpTjJJM0xUVXlPVFppT0RCaE5EWXlNQ0lzSW1Gd2NHbGtZV055SWpvaU1TSXNJbVpoYldsc2VWOXVZVzFsSWpvaVZtbGhibUVnVm1Wc1lYTnhkV1Y2SWl3aVoybDJaVzVmYm1GdFpTSTZJa3B2YzJVZ1UzUmxkbVZ1SWl3aWFXUjBlWEFpT2lKMWMyVnlJaXdpYVhCaFpHUnlJam9pTXpndU9TNHlNakF1TVRNeUlpd2libUZ0WlNJNklsWnBZVzVoSUZabGJHRnpjWFZsZWl3Z1NtOXpaU0JUZEdWMlpXNGlMQ0p2YVdRaU9pSmxNREpqTkRZMll5MWxPV1E0TFRSaFpESXRPV1U0WkMxa01XSmtOalpoTXpRek1ESWlMQ0p2Ym5CeVpXMWZjMmxrSWpvaVV5MHhMVFV0TWpFdE1qUTRPVGszT1RrME1DMHlOVFV5TURFNE56TXhMVEUzTURJM01Ua3pOVGt0TWpFNU9EQWlMQ0p3YkdGMFppSTZJamdpTENKd2RXbGtJam9pTVRBd016SXdNREZCTVVJd1FqTTVOQ0lzSW5Kb0lqb2lNUzVCVkZGQlVXZzRia05QTFVJeGExZENja1ZzTTJKRmRtMUdVVTFCUVVGQlFVRkJRVUYzUVVGQlFVRkJRVUZCUWxGQlVXc3dRVUV1SWl3aWMyTndJam9pVFdGcGJDNVNaV0ZrSUUxaGFXd3VVMlZ1WkNCdmNHVnVhV1FnY0hKdlptbHNaU0JWYzJWeUxsSmxZV1FnWlcxaGFXd2lMQ0p6YVdRaU9pSXdNREV5TlRjMllTMWpZVFUwTFRGbE1tTXRZbUprTkMxaE9UZGxORE14Tnpsak1UTWlMQ0p6YVdkdWFXNWZjM1JoZEdVaU9sc2lhMjF6YVNKZExDSnpkV0lpT2lKeFlVcFpWek0wTnpnMWFWaEVTbEpmYTJsUVpFcHlaMUY0WVU1UGNFNVliV2xZUkZobE4wbERTbWRaSWl3aWRHVnVZVzUwWDNKbFoybHZibDl6WTI5d1pTSTZJbE5CSWl3aWRHbGtJam9pTURneU56Rm1OREl0T0RGbFppMDBOV1EyTFRneFlXTXRORGszTnpaak5HSmxOakUxSWl3aWRXNXBjWFZsWDI1aGJXVWlPaUpxZG1saGJtRkFjMnRoYm1ScFlTNWpiMjB1WTI4aUxDSjFjRzRpT2lKcWRtbGhibUZBYzJ0aGJtUnBZUzVqYjIwdVkyOGlMQ0oxZEdraU9pSjNRVTVCUVdSMVltcEZObGxITjBKMlZsQlZXVUZCSWl3aWRtVnlJam9pTVM0d0lpd2lkMmxrY3lJNld5SmlOemxtWW1ZMFpDMHpaV1k1TFRRMk9Ea3RPREUwTXkwM05tSXhPVFJsT0RVMU1Ea2lYU3dpZUcxelgyRmpaQ0k2TVRjMU1qVTRPVEV5T0N3aWVHMXpYMkZqZEY5bVkzUWlPaUl6SURraUxDSjRiWE5mWm5Sa0lqb2laVlZmZVVsMmFXdzNRV1JQUzBOaVluRnVUVTVTZVRGVmVHSlpPSFl5VFROSWFVaE5Wa00yVFcxaU9FSmtXRTR6V2xoT01FMTVNV3RqTWpGNklpd2llRzF6WDJsa2NtVnNJam9pTVNBeUlpd2llRzF6WDNOMElqcDdJbk4xWWlJNkluTjBRbTVOTjFweE5ESnNNVkpHTW5STFJEQllRVkptWVU1RFVVRnZhRlp0WDFCVlYySmlhMFpmVVRnaWZTd2llRzF6WDNOMVlsOW1ZM1FpT2lJeklERXlJaXdpZUcxelgzUmpaSFFpT2pFek9UTTJNRE16TkRFc0luaHRjMTkwYm5SZlptTjBJam9pTXlBMkluMC5oU3JhR3lJWFNmSkpXMWtqUzBucXRHVU9vcjVUQzhBWVlxdHBDbG1xWGVtUGRJY2pCVmFVc2ozNUlMLTIwRmNnV09JS2hSX0gwVVVpNFNILWthX2JDaUdldzlhbTlwV1otbnIxR2pJc01MM3oxNkh3Y21qdzgxeTl1VlNVeGVkMmVjblR4cDdxaU42b3hpcVl1MHpOQ2FMZGhYeEd0dDB6dkhqS201T0pNN0tYdFRkMDlhNHpnVW5Hc29LTDVXVjhIU3hoeVd0LWNWWXkxdzNYMmVXSmFqeXhHVDdhUWhHLUxaaFlKbm0tbFZvbEgtLWhBbmpEVTRSdnAxS2c3WHpTNkFWLWkwSzBpbHdFcXl5OGZ3b2RaSVBDdW95VnppcHlPVUZvb1RlMnU1bG53dVJmSTVGeGdIcUgwdDV2N1pfQ1lJU2RNSjhLV194NTd0Ungwc29EYUEiLCJzdWIiOiI4ODIwZDZiNi03MjViLTQwNDQtYWRjYi1hM2UxOGEzOGU0ZmMiLCJnaXZlbl9uYW1lIjoiSm9zZSBTdGV2ZW4iLCJmYW1pbHlfbmFtZSI6IlZpYW5hIFZlbGFzcXVleiIsImVtYWlsIjoianZpYW5hQHNrYW5kaWEuY29tLmNvIiwibm9uY2UiOiIwMTljMjY3ZS0yODdkLTc3MzYtYWIzYi0zMmQ1MTRiYWE3YWEiLCJhenAiOiIwZWZhNWFhNy04OWRiLTQ5MTYtYmZlNC0wNTM3MjhlZWY2M2QiLCJ2ZXIiOiIxLjAiLCJpYXQiOjE3NzAxNzUzNzV9.iq5_XGYbTzWHs-oOGrC28e_fzBeAtE-jBZJdoCZ4aNNUSZbqUdBpWG260JdchanBnDivCieDiMIVvauN3x23qe4aIXpWZgxan4A05JIcP6Eg-tW_F2T5vckawXwHLto19d4JVwQXsuDd-pWRNNr7DsR3Sn5a6ZMQ6npvw4xFUA2NCY6EAcmTW2HDbjFKZFJBtbFYN7KKBSQCuEhnPJHPsKNEdoUT7JJ-jN_EyC4mxzauwqgFBsphOjxXZvBXkemlbyOsQFndg6mjtShjx6u0EH-g1oHoekzVSHmO7SNBc0bMlZj3dCSWEPMJUTNSTRoUtKdspOgRNLtVt-4KtJjL4g"), o.originalFetch(O, {
3652
3683
  ...M,
3653
3684
  headers: F
3654
3685
  });