@copilotkit/web-inspector 1.70.2 → 1.71.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.
package/dist/index.umd.js CHANGED
@@ -43,6 +43,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
43
43
  this.snapshot = null;
44
44
  this.setupActive = false;
45
45
  this.copyState = "idle";
46
+ this.recopyState = "idle";
46
47
  this.setupPrompt = "";
47
48
  this.promptOpen = false;
48
49
  this.promptTrigger = null;
@@ -146,6 +147,14 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
146
147
  <div class="step-header"><span class="step-number">✓</span></div>
147
148
  <h3>Copy the setup prompt</h3>
148
149
  <p>Nice work. You’ve completed the first step.</p>
150
+ <button
151
+ class="copy-again"
152
+ type="button"
153
+ aria-live="polite"
154
+ @click=${() => this.emit("learning-recopy-setup")}
155
+ >
156
+ ${this.recopyState === "copied" ? "✓ Copied!" : this.recopyState === "error" ? "Try copying again" : "Copy prompt again"}
157
+ </button>
149
158
  </li>
150
159
  <li
151
160
  class="step ${attention ? "error current" : mode === "setup" ? "current" : "complete"}"
@@ -512,9 +521,18 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
512
521
  <h1>Learning</h1>
513
522
  <p>Your Agent learns from conversations and improves over time.</p>
514
523
  </div>
515
- ${this.refreshing ? lit.html`
516
- <span class="refreshing" role="status">Refreshing</span>
517
- ` : lit.nothing}
524
+ <div class="pane-actions">
525
+ ${state === "setup" && this.setupActive ? lit.html`<button
526
+ class="secondary"
527
+ type="button"
528
+ @click=${() => this.emit("learning-go-back")}
529
+ >
530
+ ← Go back
531
+ </button>` : lit.nothing}
532
+ ${this.refreshing ? lit.html`
533
+ <span class="refreshing" role="status">Refreshing</span>
534
+ ` : lit.nothing}
535
+ </div>
518
536
  </header>
519
537
  ${retry}
520
538
  ${content}
@@ -572,6 +590,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
572
590
  snapshot: { attribute: false },
573
591
  setupActive: { type: Boolean },
574
592
  copyState: { attribute: false },
593
+ recopyState: { attribute: false },
575
594
  setupPrompt: { attribute: false }
576
595
  };
577
596
  CpkLearningView.styles = lit.css`
@@ -710,6 +729,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
710
729
  font-size: 14px;
711
730
  line-height: 1.5;
712
731
  }
732
+ .pane-actions {
733
+ display: flex;
734
+ align-items: center;
735
+ gap: 12px;
736
+ }
713
737
  .refreshing {
714
738
  color: var(--learning-muted-strong);
715
739
  font-size: 11px;
@@ -825,6 +849,17 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
825
849
  font-size: 12px;
826
850
  line-height: 1.45;
827
851
  }
852
+ .copy-again {
853
+ margin-top: 12px;
854
+ padding: 0;
855
+ color: var(--learning-secondary-ink);
856
+ background: none;
857
+ border: 0;
858
+ font-size: 11px;
859
+ font-weight: 750;
860
+ text-decoration: underline;
861
+ cursor: pointer;
862
+ }
828
863
  .setup-support {
829
864
  margin-top: 14px;
830
865
  }
@@ -2251,7 +2286,7 @@ Implement the smallest complete integration: wire every feature-required client
2251
2286
  {
2252
2287
  id: "memory",
2253
2288
  label: "Learning",
2254
- enabled: intelligenceConnected && input.memoriesOn,
2289
+ enabled: intelligenceConnected && input.learningOn,
2255
2290
  docsUrl: SERVICE_DOCS_URL.memory
2256
2291
  },
2257
2292
  {
@@ -2381,7 +2416,7 @@ Implement the smallest complete integration: wire every feature-required client
2381
2416
 
2382
2417
  //#endregion
2383
2418
  //#region package.json
2384
- var version = "1.70.2";
2419
+ var version = "1.71.0";
2385
2420
 
2386
2421
  //#endregion
2387
2422
  //#region src/lib/telemetry.ts
@@ -2866,6 +2901,7 @@ Implement the smallest complete integration: wire every feature-required client
2866
2901
  * "memories" for persistence and telemetry stability.
2867
2902
  */
2868
2903
  const LEARNING_VIEW_LABEL = "Learning";
2904
+ const LEARNING_RECOPY_CONFIRMATION_MS = 2e3;
2869
2905
  /**
2870
2906
  * User-facing label for the What's new view. Its menu key stays `whats-new`
2871
2907
  * for persistence and telemetry stability, following the `memories`/"Memory"
@@ -7787,8 +7823,11 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
7787
7823
  this.learningPollTimer = null;
7788
7824
  this.learningPollFailureCount = 0;
7789
7825
  this.learningSetupMarker = null;
7826
+ this.learningSetupCopyRequest = 0;
7790
7827
  this.learningSetupUnsubscribe = null;
7791
7828
  this.learningPromptCopyState = "idle";
7829
+ this.learningPromptRecopyState = "idle";
7830
+ this.learningPromptRecopyTimer = null;
7792
7831
  this.learningViewedState = null;
7793
7832
  this._recallResults = null;
7794
7833
  this._recallLoading = false;
@@ -7952,6 +7991,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
7952
7991
  this.launcherHudIntroStartTimer = null;
7953
7992
  this.launcherHudIntroEndTimer = null;
7954
7993
  this.inspectorDismissedUntil = null;
7994
+ this.lastReportedInspectorVisibility = null;
7955
7995
  this.inspectorDismissalTimer = null;
7956
7996
  this.hudLandingMenu = null;
7957
7997
  this.pillOutcome = null;
@@ -8136,18 +8176,31 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
8136
8176
  return false;
8137
8177
  }
8138
8178
  };
8139
- this.handleLearningSetupCopy = async (event) => {
8179
+ this.handleLearningSetupCopy = async (event, recopy = false) => {
8140
8180
  var _this$core;
8141
8181
  const service = this.getHomeFeaturePromptTarget("threads");
8142
8182
  if (!service || !((_this$core = this.core) === null || _this$core === void 0 ? void 0 : _this$core.runtimeUrl)) return;
8183
+ const request = ++this.learningSetupCopyRequest;
8143
8184
  const copied = await this.copyFeaturePromptToClipboard(service, event, this.getOnboardingRunId());
8185
+ if (request !== this.learningSetupCopyRequest) return;
8144
8186
  if (!this.core.telemetryDisabled) trackLearningSetupPromptClicked({ outcome: copied ? "success" : "failure" });
8145
8187
  if (!copied) {
8146
- this.learningPromptCopyState = "error";
8188
+ if (recopy) {
8189
+ this.cancelLearningPromptRecopyReset();
8190
+ this.learningPromptRecopyState = "error";
8191
+ } else this.learningPromptCopyState = "error";
8147
8192
  this.requestUpdate();
8148
8193
  return;
8149
8194
  }
8150
- this.learningPromptCopyState = "copied";
8195
+ if (recopy) {
8196
+ this.cancelLearningPromptRecopyReset();
8197
+ this.learningPromptRecopyState = "copied";
8198
+ this.learningPromptRecopyTimer = setTimeout(() => {
8199
+ this.learningPromptRecopyTimer = null;
8200
+ this.learningPromptRecopyState = "idle";
8201
+ this.requestUpdate();
8202
+ }, LEARNING_RECOPY_CONFIRMATION_MS);
8203
+ } else this.learningPromptCopyState = "copied";
8151
8204
  this.learningSetupMarker = writeLearningSetupMarker({
8152
8205
  runtimeUrl: this.core.runtimeUrl,
8153
8206
  agentId: this.getLearningAgentId()
@@ -8157,6 +8210,17 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
8157
8210
  this.requestUpdate();
8158
8211
  this.refreshLearningSnapshot({ preserve: false });
8159
8212
  };
8213
+ this.handleLearningGoBack = () => {
8214
+ this.learningSetupCopyRequest += 1;
8215
+ this.cancelLearningPromptRecopyReset();
8216
+ clearLearningSetupMarker();
8217
+ this.learningSetupMarker = null;
8218
+ this.learningPromptCopyState = "idle";
8219
+ this.learningPromptRecopyState = "idle";
8220
+ this.cancelLearningPoll();
8221
+ this.requestUpdate();
8222
+ this.trackLearningViewState();
8223
+ };
8160
8224
  this.handleLearningPage = (event) => {
8161
8225
  var _this$learningSnapsho3, _this$learningSnapsho4, _this$learningSnapsho5, _this$learningSnapsho6, _this$core2;
8162
8226
  const { section, page } = event.detail;
@@ -9393,7 +9457,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
9393
9457
  maybeShowDisclosure();
9394
9458
  }
9395
9459
  this.flushPendingWhatsNewTelemetry();
9396
- if (this.isOpen && this.selectedMenu === "memories") {
9460
+ if (this.isLearningStatusVisible()) {
9397
9461
  this.clearLearningSnapshot();
9398
9462
  this.refreshLearningSnapshot({ preserve: false });
9399
9463
  }
@@ -9422,7 +9486,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
9422
9486
  if (identity !== this.learningProjectIdentity) {
9423
9487
  this.learningProjectIdentity = identity;
9424
9488
  this.clearLearningSnapshot();
9425
- if (this.isOpen && this.selectedMenu === "memories") this.refreshLearningSnapshot({ preserve: false });
9489
+ if (this.isLearningStatusVisible()) this.refreshLearningSnapshot({ preserve: false });
9426
9490
  }
9427
9491
  this.requestUpdate();
9428
9492
  } } : {},
@@ -9589,6 +9653,10 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
9589
9653
  if (this.selectedContext !== "all-agents" && ((_this$core18 = this.core) === null || _this$core18 === void 0 ? void 0 : _this$core18.agents[this.selectedContext])) return this.selectedContext;
9590
9654
  return null;
9591
9655
  }
9656
+ /** Whether a visible surface needs the current Learning connection status. */
9657
+ isLearningStatusVisible() {
9658
+ return this.launcherHudOpen || this.isOpen && (this.selectedMenu === "home" || this.selectedMenu === "memories");
9659
+ }
9592
9660
  isLearningSetupActive() {
9593
9661
  var _this$core19;
9594
9662
  const runtimeUrl = (_this$core19 = this.core) === null || _this$core19 === void 0 ? void 0 : _this$core19.runtimeUrl;
@@ -9646,6 +9714,12 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
9646
9714
  (_this$learningAbortCo2 = this.learningAbortController) === null || _this$learningAbortCo2 === void 0 || _this$learningAbortCo2.abort();
9647
9715
  this.learningAbortController = null;
9648
9716
  }
9717
+ cancelLearningPromptRecopyReset() {
9718
+ if (this.learningPromptRecopyTimer !== null) {
9719
+ clearTimeout(this.learningPromptRecopyTimer);
9720
+ this.learningPromptRecopyTimer = null;
9721
+ }
9722
+ }
9649
9723
  detachFromCore() {
9650
9724
  var _this$_memoryUnsub;
9651
9725
  this.threadCapabilityGeneration += 1;
@@ -9668,6 +9742,8 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
9668
9742
  this._memoriesRealtimeStatus = "connecting";
9669
9743
  this._memorySubscribed = false;
9670
9744
  this._memoryStoreUnsupported = false;
9745
+ this.cancelLearningPromptRecopyReset();
9746
+ this.learningPromptRecopyState = "idle";
9671
9747
  this._recallSeq += 1;
9672
9748
  this._recallResults = null;
9673
9749
  this._recallLoading = false;
@@ -9723,7 +9799,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
9723
9799
  runtimeUrl: this.core.runtimeUrl,
9724
9800
  agentId: learningAgentId
9725
9801
  });
9726
- if (previousLearningAgentId !== learningAgentId && this.isOpen && this.selectedMenu === "memories") {
9802
+ if (previousLearningAgentId !== learningAgentId && this.isLearningStatusVisible()) {
9727
9803
  this.clearLearningSnapshot();
9728
9804
  this.refreshLearningSnapshot({ preserve: false });
9729
9805
  }
@@ -10339,6 +10415,11 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
10339
10415
  else this.removeAttribute("data-docked");
10340
10416
  }
10341
10417
  updated() {
10418
+ const visible = !this.isInspectorDismissed;
10419
+ if (visible !== this.lastReportedInspectorVisibility) {
10420
+ this.lastReportedInspectorVisibility = visible;
10421
+ this.dispatchEvent(new CustomEvent("cpk-inspector-visibility-change", { detail: { visible } }));
10422
+ }
10342
10423
  this.syncInspectorPortal();
10343
10424
  this.syncThreadsExampleOverviewVideo();
10344
10425
  this.maybeTrackInspectorMetadataViews();
@@ -10587,6 +10668,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
10587
10668
  this.resolveLauncherHudSide();
10588
10669
  this.launcherHudIntro = true;
10589
10670
  this.launcherHudOpen = true;
10671
+ this.refreshLearningSnapshot({ preserve: true });
10590
10672
  this.requestUpdate();
10591
10673
  this.launcherHudIntroEndTimer = setTimeout(() => {
10592
10674
  this.launcherHudIntroEndTimer = null;
@@ -10634,6 +10716,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
10634
10716
  }
10635
10717
  if (this.launcherHudOpen) return;
10636
10718
  this.launcherHudOpen = true;
10719
+ this.refreshLearningSnapshot({ preserve: true });
10637
10720
  this.requestUpdate();
10638
10721
  }
10639
10722
  closeLauncherHud() {
@@ -11018,7 +11101,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
11018
11101
  `;
11019
11102
  }
11020
11103
  getHomeModel() {
11021
- var _this$_core6, _this$_core7, _this$_core8, _this$_core9, _this$_core10, _this$_core11, _this$_core12, _this$announcementPre2, _this$announcementMar, _this$announcementHtm;
11104
+ var _this$_core6, _this$_core7, _this$learningSnapsho7, _this$_core8, _this$_core9, _this$_core10, _this$_core11, _this$_core12, _this$announcementPre2, _this$announcementMar, _this$announcementHtm;
11022
11105
  const lastRuntimeEvent = this.flattenedEvents[0];
11023
11106
  return buildHomeModel({
11024
11107
  intelligenceConnected: Boolean((_this$_core6 = this._core) === null || _this$_core6 === void 0 ? void 0 : _this$_core6.intelligence),
@@ -11032,7 +11115,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
11032
11115
  type: lastRuntimeEvent.type,
11033
11116
  timestamp: lastRuntimeEvent.timestamp
11034
11117
  } : void 0,
11035
- memoriesOn: this._memorySubscribed && !this._memoriesLoading && this._memoriesAvailable,
11118
+ learningOn: this.learningSupported && this.learningError === null && ((_this$learningSnapsho7 = this.learningSnapshot) === null || _this$learningSnapsho7 === void 0 ? void 0 : _this$learningSnapsho7.configuration.state) === "configured",
11036
11119
  a2uiOn: ((_this$_core8 = this._core) === null || _this$_core8 === void 0 ? void 0 : _this$_core8.a2uiEnabled) === true,
11037
11120
  openGenUiOn: ((_this$_core9 = this._core) === null || _this$_core9 === void 0 ? void 0 : _this$_core9.openGenerativeUIEnabled) === true,
11038
11121
  suggestionsOn: ((_this$_core10 = this._core) === null || _this$_core10 === void 0 ? void 0 : _this$_core10.suggestions) === true,
@@ -12639,7 +12722,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
12639
12722
  }
12640
12723
  this.ensureAnnouncementLoading();
12641
12724
  this.isOpen = true;
12642
- if (this.selectedMenu === "memories") this.refreshLearningSnapshot({ preserve: this.learningSnapshot !== null });
12725
+ if (this.isLearningStatusVisible()) this.refreshLearningSnapshot({ preserve: this.learningSnapshot !== null });
12643
12726
  this.cancelGestureTail();
12644
12727
  this.persistState();
12645
12728
  this.trackOpened(source, hadUnseenAnnouncement, firstOpen, activeSignalAtOpen);
@@ -14369,9 +14452,12 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
14369
14452
  .snapshot=${this.learningSnapshot}
14370
14453
  .setupActive=${this.isLearningSetupActive()}
14371
14454
  .copyState=${this.learningPromptCopyState}
14455
+ .recopyState=${this.learningPromptRecopyState}
14372
14456
  .setupPrompt=${this.getHomeFeaturePromptTarget("threads") ? homeFeatureImplementationPrompt(this.getHomeFeaturePromptTarget("threads"), { onboardingRunId: this.getOnboardingRunId() }) : ""}
14373
14457
  @learning-retry=${() => this.refreshLearningSnapshot({ preserve: this.learningSnapshot !== null })}
14374
14458
  @learning-copy-setup=${(event) => this.handleLearningSetupCopy(event)}
14459
+ @learning-recopy-setup=${(event) => this.handleLearningSetupCopy(event, true)}
14460
+ @learning-go-back=${this.handleLearningGoBack}
14375
14461
  @learning-page=${(event) => this.handleLearningPage(event)}
14376
14462
  @learning-open-evidence=${(event) => this.handleLearningEvidence(event)}
14377
14463
  @learning-evidence-opened=${() => {
@@ -15448,7 +15534,10 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
15448
15534
  this.cancelLearningPoll();
15449
15535
  this.cancelLearningRequest();
15450
15536
  }
15451
- if (key === "home" && previousMenu !== "home") this.homeViewedThisOpen = false;
15537
+ if (key === "home" && previousMenu !== "home") {
15538
+ this.refreshLearningSnapshot({ preserve: true });
15539
+ this.homeViewedThisOpen = false;
15540
+ }
15452
15541
  if (key === "ag-ui-events" || key === "agents") {
15453
15542
  if (!(this.pendingScrollToEventId !== null || this.pendingScrollToToolCallId !== null)) requestAnimationFrame(() => {
15454
15543
  const scroller = this.activeRoot.querySelector("#cpk-main-scroll");
@@ -15480,7 +15569,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
15480
15569
  this.expandedRows.clear();
15481
15570
  this.autoSelectLatestThread();
15482
15571
  if (this.selectedMenu === "playground") this.startPlaygroundSession(false);
15483
- else if (this.selectedMenu === "memories") {
15572
+ else if (this.isLearningStatusVisible()) {
15484
15573
  this.clearLearningSnapshot();
15485
15574
  this.refreshLearningSnapshot({ preserve: false });
15486
15575
  }
@@ -18346,8 +18435,8 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
18346
18435
 
18347
18436
  .cpk-launcher-hud__toggle[data-enabled="true"]
18348
18437
  .cpk-launcher-hud__toggle-track {
18349
- border-color: var(--hud-accent);
18350
- background: color-mix(in srgb, var(--hud-accent) 76%, transparent);
18438
+ border-color: #087653;
18439
+ background: #087653;
18351
18440
  }
18352
18441
 
18353
18442
  .cpk-launcher-hud__toggle[data-enabled="true"]
@@ -18370,8 +18459,8 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
18370
18459
  .cpk-launcher-hud[data-color-scheme="light"]
18371
18460
  .cpk-launcher-hud__toggle[data-enabled="true"]
18372
18461
  .cpk-launcher-hud__toggle-track {
18373
- border-color: #6757b0;
18374
- background: #7563c7;
18462
+ border-color: #087653;
18463
+ background: #087653;
18375
18464
  }
18376
18465
 
18377
18466
  .cpk-launcher-hud[data-color-scheme="light"]