@copilotkit/web-inspector 1.72.1-canary.sp-longthread-perf → 1.73.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/components/learning-view.cjs +18 -17
- package/dist/components/learning-view.cjs.map +1 -1
- package/dist/components/learning-view.mjs +18 -17
- package/dist/components/learning-view.mjs.map +1 -1
- package/dist/index.cjs +173 -159
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +9 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +173 -159
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +212 -196
- package/dist/index.umd.js.map +1 -1
- package/dist/lib/home-briefing.cjs +4 -4
- package/dist/lib/home-briefing.cjs.map +1 -1
- package/dist/lib/home-briefing.mjs +4 -4
- package/dist/lib/home-briefing.mjs.map +1 -1
- package/dist/package.cjs +1 -1
- package/dist/package.mjs +1 -1
- package/dist/styles/generated.cjs +1 -1
- package/dist/styles/generated.cjs.map +1 -1
- package/dist/styles/generated.mjs +1 -1
- package/dist/styles/generated.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -28,7 +28,7 @@ const THREAD_INSPECTOR_TAG = "cpk-thread-inspector";
|
|
|
28
28
|
* User-facing label for the learning view. The legacy menu key stays
|
|
29
29
|
* "memories" for persistence and telemetry stability.
|
|
30
30
|
*/
|
|
31
|
-
const LEARNING_VIEW_LABEL = "Learning";
|
|
31
|
+
const LEARNING_VIEW_LABEL = "Automatic Learning";
|
|
32
32
|
const LEARNING_RECOPY_CONFIRMATION_MS = 2e3;
|
|
33
33
|
/**
|
|
34
34
|
* User-facing label for the What's new view. Its menu key stays `whats-new`
|
|
@@ -292,17 +292,17 @@ const SELF_HOSTED_INTELLIGENCE_URL = "https://docs.copilotkit.ai/intelligence/se
|
|
|
292
292
|
const INTELLIGENCE_STORY_BEATS = [
|
|
293
293
|
{
|
|
294
294
|
id: "threads",
|
|
295
|
-
label: "Threads",
|
|
295
|
+
label: "Rich Threads",
|
|
296
296
|
duration: 6500,
|
|
297
297
|
lead: "You only see this session. Your users have all the others.",
|
|
298
298
|
support: "Rich Threads keep every conversation and its state, so you can open the one that broke instead of reproducing it."
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
id: "learning",
|
|
302
|
-
label: "Learning",
|
|
302
|
+
label: "Automatic Learning",
|
|
303
303
|
duration: 6e3,
|
|
304
304
|
lead: "Your users already told you what to fix.",
|
|
305
|
-
support: "Learning reads the runs behind those threads and finds the patterns — every Insight linked to the messages that back it."
|
|
305
|
+
support: "Automatic Learning reads the runs behind those threads and finds the patterns — every Insight linked to the messages that back it."
|
|
306
306
|
},
|
|
307
307
|
{
|
|
308
308
|
id: "skill",
|
|
@@ -392,7 +392,7 @@ const INTELLIGENCE_STORY_CHAIN = [
|
|
|
392
392
|
}
|
|
393
393
|
];
|
|
394
394
|
const THREADS_EXAMPLE_OVERVIEW_VIDEO_URL = "https://cdn.copilotkit.ai/corp-site/videos/copilotkit-generative-ui-agentic-frontend-demo.webm";
|
|
395
|
-
const THREADS_EXAMPLE_OVERVIEW_VIDEO_FALLBACK = "The demo video is unavailable. Use the example threads to explore
|
|
395
|
+
const THREADS_EXAMPLE_OVERVIEW_VIDEO_FALLBACK = "The demo video is unavailable. Use the example threads to explore Conversation, AG-UI Events, and State.";
|
|
396
396
|
const THREADS_LOCKED_VIDEO_URL = "https://www.loom.com/embed/79817778d29e490c97225127d2f17b3a?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true&hide_speed=true";
|
|
397
397
|
const LEARNING_LOCKED_VIDEO_URL = "https://www.loom.com/embed/2978fbfe42324e509057ac5fd46b7a70?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true&hide_speed=true";
|
|
398
398
|
const THREADS_LOCKED_FEATURE_OUTLINE = [
|
|
@@ -740,9 +740,9 @@ const THREADS_EXAMPLE_DETAILS = {
|
|
|
740
740
|
const THREADS_EXAMPLE_TOUR_STEPS = [
|
|
741
741
|
{
|
|
742
742
|
tab: "timeline",
|
|
743
|
-
label: "
|
|
743
|
+
label: "Conversation",
|
|
744
744
|
title: "Read the run as a story",
|
|
745
|
-
body: "
|
|
745
|
+
body: "Read messages and tool calls as a conversation. Switch to the event timeline to inspect state changes and run markers."
|
|
746
746
|
},
|
|
747
747
|
{
|
|
748
748
|
tab: "raw-events",
|
|
@@ -1236,6 +1236,7 @@ var CpkThreadList = class extends PortableLitElement {
|
|
|
1236
1236
|
var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
1237
1237
|
constructor(..._args2) {
|
|
1238
1238
|
super(..._args2);
|
|
1239
|
+
this.showThreadTitle = true;
|
|
1239
1240
|
this.threadId = null;
|
|
1240
1241
|
this.provider = null;
|
|
1241
1242
|
this.thread = null;
|
|
@@ -1254,6 +1255,7 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
1254
1255
|
this.tryFromHereBusy = false;
|
|
1255
1256
|
this.tryFromHereError = null;
|
|
1256
1257
|
this._tab = "timeline";
|
|
1258
|
+
this._showEventTimeline = false;
|
|
1257
1259
|
this._fetchedMetadata = null;
|
|
1258
1260
|
this._conversation = [];
|
|
1259
1261
|
this._fetchedEvents = null;
|
|
@@ -1325,6 +1327,10 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
1325
1327
|
static {
|
|
1326
1328
|
this.properties = {
|
|
1327
1329
|
threadId: { attribute: false },
|
|
1330
|
+
showThreadTitle: {
|
|
1331
|
+
type: Boolean,
|
|
1332
|
+
attribute: false
|
|
1333
|
+
},
|
|
1328
1334
|
provider: { attribute: false },
|
|
1329
1335
|
thread: { attribute: false },
|
|
1330
1336
|
runtimeUrl: { attribute: false },
|
|
@@ -1374,7 +1380,7 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
1374
1380
|
this.TAB_LIST = [
|
|
1375
1381
|
{
|
|
1376
1382
|
id: "timeline",
|
|
1377
|
-
label: "
|
|
1383
|
+
label: "Conversation"
|
|
1378
1384
|
},
|
|
1379
1385
|
{
|
|
1380
1386
|
id: "raw-events",
|
|
@@ -1416,8 +1422,17 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
1416
1422
|
static headersLoadKey(headers) {
|
|
1417
1423
|
return JSON.stringify(Object.entries(headers).sort(([leftKey], [rightKey]) => leftKey.localeCompare(rightKey)));
|
|
1418
1424
|
}
|
|
1425
|
+
renderConversationActions() {
|
|
1426
|
+
return lit.html`<div class="cpk-td__timeline-toolbar">
|
|
1427
|
+
<button type="button" class="cpk-td__timeline-bulk-toggle" aria-pressed=${this._showEventTimeline} @click=${() => {
|
|
1428
|
+
this._showEventTimeline = !this._showEventTimeline;
|
|
1429
|
+
this.requestUpdate();
|
|
1430
|
+
}}>${this._showEventTimeline ? "Show conversation" : "Show event timeline"}</button>
|
|
1431
|
+
${this.renderTryFromHereControl()}
|
|
1432
|
+
</div>`;
|
|
1433
|
+
}
|
|
1419
1434
|
renderTabContent(id) {
|
|
1420
|
-
if (id === "timeline") return this.
|
|
1435
|
+
if (id === "timeline") return lit.html`${this._showEventTimeline ? lit.html`<div class="cpk-td__timeline-toolbar">${this.renderTimelineBulkButtons()}</div>${this.renderTimeline()}` : this._conversation.length || this._loadingMessages || this._messagesError ? this.renderConversation() : this.renderTimeline()}`;
|
|
1421
1436
|
if (id === "state") return this.renderState();
|
|
1422
1437
|
return this.renderEvents();
|
|
1423
1438
|
}
|
|
@@ -1624,6 +1639,49 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
1624
1639
|
margin-inline-start: 0;
|
|
1625
1640
|
}
|
|
1626
1641
|
|
|
1642
|
+
.cpk-td__thread-header {
|
|
1643
|
+
display: flex;
|
|
1644
|
+
flex-wrap: wrap;
|
|
1645
|
+
align-items: center;
|
|
1646
|
+
gap: 10px 16px;
|
|
1647
|
+
padding: 12px 16px;
|
|
1648
|
+
flex-shrink: 0;
|
|
1649
|
+
border-bottom: 1px solid #dbdbe540;
|
|
1650
|
+
}
|
|
1651
|
+
.cpk-td__thread-title {
|
|
1652
|
+
flex: 1 1 180px;
|
|
1653
|
+
min-width: 0;
|
|
1654
|
+
overflow-wrap: anywhere;
|
|
1655
|
+
font-size: 15px;
|
|
1656
|
+
font-weight: 600;
|
|
1657
|
+
}
|
|
1658
|
+
.cpk-td__pinned-actions {
|
|
1659
|
+
margin-left: auto;
|
|
1660
|
+
max-width: 100%;
|
|
1661
|
+
}
|
|
1662
|
+
.cpk-td__pinned-actions .cpk-td__timeline-toolbar {
|
|
1663
|
+
justify-content: flex-end;
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1666
|
+
:host([data-color-scheme="dark"]) .cpk-td__bubble-inner--assistant {
|
|
1667
|
+
background: transparent;
|
|
1668
|
+
color: #e7e7ed;
|
|
1669
|
+
}
|
|
1670
|
+
:host([data-color-scheme="dark"]) .cpk-td__bubble-inner--user {
|
|
1671
|
+
background: #27272a;
|
|
1672
|
+
color: #f4f4f5;
|
|
1673
|
+
}
|
|
1674
|
+
:host([data-color-scheme="dark"]) .cpk-td__show-more {
|
|
1675
|
+
color: #c5b5ff;
|
|
1676
|
+
}
|
|
1677
|
+
.cpk-td__timeline-bulk-toggle[aria-pressed="true"] {
|
|
1678
|
+
background: #ece7fa;
|
|
1679
|
+
color: #51418b;
|
|
1680
|
+
}
|
|
1681
|
+
.cpk-td__bubble-inner {
|
|
1682
|
+
line-height: 1.65;
|
|
1683
|
+
overflow-wrap: anywhere;
|
|
1684
|
+
}
|
|
1627
1685
|
.cpk-td__metadata-strip {
|
|
1628
1686
|
display: flex;
|
|
1629
1687
|
flex-direction: column;
|
|
@@ -1869,7 +1927,7 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
1869
1927
|
/* ── Conversation bubbles ────────────────────────────────────────── */
|
|
1870
1928
|
.cpk-td__bubble {
|
|
1871
1929
|
display: flex;
|
|
1872
|
-
margin-bottom:
|
|
1930
|
+
margin-bottom: 10px;
|
|
1873
1931
|
}
|
|
1874
1932
|
|
|
1875
1933
|
.cpk-td__bubble--user {
|
|
@@ -1881,16 +1939,16 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
1881
1939
|
}
|
|
1882
1940
|
|
|
1883
1941
|
.cpk-td__bubble-inner {
|
|
1884
|
-
padding:
|
|
1885
|
-
max-width:
|
|
1886
|
-
font-size:
|
|
1887
|
-
line-height: 1.
|
|
1942
|
+
padding: 10px 16px;
|
|
1943
|
+
max-width: 80%;
|
|
1944
|
+
font-size: 14px;
|
|
1945
|
+
line-height: 1.65;
|
|
1888
1946
|
}
|
|
1889
1947
|
|
|
1890
1948
|
.cpk-td__bubble-inner--user {
|
|
1891
|
-
background: #
|
|
1892
|
-
color: #
|
|
1893
|
-
border-radius:
|
|
1949
|
+
background: #f4f4f5;
|
|
1950
|
+
color: #18181b;
|
|
1951
|
+
border-radius: 18px;
|
|
1894
1952
|
}
|
|
1895
1953
|
|
|
1896
1954
|
.cpk-td__show-more {
|
|
@@ -1905,16 +1963,17 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
1905
1963
|
}
|
|
1906
1964
|
|
|
1907
1965
|
.cpk-td__bubble-inner--assistant {
|
|
1908
|
-
background:
|
|
1966
|
+
background: transparent;
|
|
1909
1967
|
color: #010507;
|
|
1910
|
-
|
|
1911
|
-
|
|
1968
|
+
max-width: 100%;
|
|
1969
|
+
padding: 4px 0;
|
|
1970
|
+
border: 0;
|
|
1912
1971
|
}
|
|
1913
1972
|
|
|
1914
1973
|
/* ── Tool call blocks ────────────────────────────────────────────── */
|
|
1915
1974
|
.cpk-td__tool-block {
|
|
1916
1975
|
border: 1px solid #e9e9ef;
|
|
1917
|
-
border-radius:
|
|
1976
|
+
border-radius: 12px;
|
|
1918
1977
|
overflow: hidden;
|
|
1919
1978
|
}
|
|
1920
1979
|
|
|
@@ -1922,34 +1981,38 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
1922
1981
|
display: flex;
|
|
1923
1982
|
align-items: center;
|
|
1924
1983
|
gap: 6px;
|
|
1925
|
-
padding:
|
|
1926
|
-
background:
|
|
1984
|
+
padding: 12px;
|
|
1985
|
+
background: #ffffff;
|
|
1986
|
+
color: #71717a;
|
|
1927
1987
|
cursor: pointer;
|
|
1928
1988
|
font-size: 11px;
|
|
1929
1989
|
user-select: none;
|
|
1930
1990
|
}
|
|
1931
1991
|
|
|
1932
1992
|
.cpk-td__tool-header:hover {
|
|
1933
|
-
background:
|
|
1993
|
+
background: #fafafa;
|
|
1934
1994
|
}
|
|
1935
1995
|
|
|
1936
1996
|
.cpk-td__tool-name {
|
|
1937
|
-
font-
|
|
1938
|
-
font-size: 10px;
|
|
1997
|
+
font-size: 13px;
|
|
1939
1998
|
font-weight: 500;
|
|
1940
|
-
color: #
|
|
1941
|
-
|
|
1999
|
+
color: #18181b;
|
|
2000
|
+
overflow-wrap: anywhere;
|
|
2001
|
+
min-width: 0;
|
|
1942
2002
|
flex: 1;
|
|
1943
2003
|
}
|
|
1944
2004
|
|
|
1945
2005
|
.cpk-td__tool-status {
|
|
1946
|
-
font-
|
|
1947
|
-
font-
|
|
1948
|
-
|
|
1949
|
-
|
|
2006
|
+
font-size: 10px;
|
|
2007
|
+
font-weight: 500;
|
|
2008
|
+
padding: 3px 7px;
|
|
2009
|
+
border-radius: 999px;
|
|
2010
|
+
background: #d1fae5;
|
|
2011
|
+
color: #065f46;
|
|
1950
2012
|
}
|
|
1951
2013
|
|
|
1952
2014
|
.cpk-td__tool-status--pending {
|
|
2015
|
+
background: #fef3c7;
|
|
1953
2016
|
color: #8a5900;
|
|
1954
2017
|
}
|
|
1955
2018
|
|
|
@@ -2257,21 +2320,25 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
2257
2320
|
display: flex;
|
|
2258
2321
|
flex-direction: column;
|
|
2259
2322
|
gap: 6px;
|
|
2260
|
-
padding:
|
|
2323
|
+
padding: 0;
|
|
2261
2324
|
animation: cpk-genui-enter 0.25s cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
2262
2325
|
}
|
|
2263
2326
|
|
|
2264
2327
|
.cpk-td__genui-badge {
|
|
2265
|
-
display:
|
|
2266
|
-
align-items:
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2328
|
+
display: flex;
|
|
2329
|
+
align-items: baseline;
|
|
2330
|
+
flex-wrap: wrap;
|
|
2331
|
+
gap: 6px;
|
|
2332
|
+
padding: 12px;
|
|
2333
|
+
min-height: 44px;
|
|
2334
|
+
box-sizing: border-box;
|
|
2335
|
+
border: 1px solid #e5def5;
|
|
2336
|
+
border-radius: 12px;
|
|
2337
|
+
background: #f7f4fc;
|
|
2271
2338
|
color: #57575b;
|
|
2272
|
-
font-size:
|
|
2273
|
-
|
|
2274
|
-
|
|
2339
|
+
font-size: 13px;
|
|
2340
|
+
line-height: 20px;
|
|
2341
|
+
font-weight: 500;
|
|
2275
2342
|
}
|
|
2276
2343
|
|
|
2277
2344
|
.cpk-td__genui-card {
|
|
@@ -2282,13 +2349,32 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
2282
2349
|
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08);
|
|
2283
2350
|
}
|
|
2284
2351
|
|
|
2285
|
-
.cpk-td__genui-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2352
|
+
.cpk-td__genui-component {
|
|
2353
|
+
margin-left: 6px;
|
|
2354
|
+
font-size: 13px;
|
|
2355
|
+
font-weight: 400;
|
|
2356
|
+
overflow-wrap: anywhere;
|
|
2357
|
+
min-width: 0;
|
|
2358
|
+
line-height: inherit;
|
|
2359
|
+
}
|
|
2360
|
+
|
|
2361
|
+
:host([data-color-scheme="dark"]) .cpk-td__genui-badge {
|
|
2362
|
+
border-color: #49405f;
|
|
2363
|
+
}
|
|
2364
|
+
|
|
2365
|
+
:host([data-color-scheme="dark"]) .cpk-td__tool-header {
|
|
2366
|
+
background: #191c24;
|
|
2367
|
+
}
|
|
2368
|
+
:host([data-color-scheme="dark"]) .cpk-td__tool-name {
|
|
2369
|
+
color: #f4f4f5;
|
|
2370
|
+
}
|
|
2371
|
+
:host([data-color-scheme="dark"]) .cpk-td__tool-status {
|
|
2372
|
+
background: #17392e;
|
|
2373
|
+
color: #6ee7b7;
|
|
2374
|
+
}
|
|
2375
|
+
:host([data-color-scheme="dark"]) .cpk-td__tool-status--pending {
|
|
2376
|
+
background: #3d3019;
|
|
2377
|
+
color: #fbbf24;
|
|
2292
2378
|
}
|
|
2293
2379
|
|
|
2294
2380
|
/* ── AG-UI Events ────────────────────────────────────────────────── */
|
|
@@ -2528,7 +2614,6 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
2528
2614
|
|
|
2529
2615
|
:host([data-color-scheme="dark"]) .cpk-td__metadata-pill,
|
|
2530
2616
|
:host([data-color-scheme="dark"]) .cpk-td__try-from-here,
|
|
2531
|
-
:host([data-color-scheme="dark"]) .cpk-td__bubble-inner--assistant,
|
|
2532
2617
|
:host([data-color-scheme="dark"]) .cpk-td__tool-block,
|
|
2533
2618
|
:host([data-color-scheme="dark"]) .cpk-td__event,
|
|
2534
2619
|
:host([data-color-scheme="dark"]) .cpk-td__genui-card,
|
|
@@ -3501,7 +3586,10 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
3501
3586
|
${viewInApp !== lit.nothing ? lit.html`<div class="cpk-td__chrome-actions">${viewInApp}</div>` : lit.nothing}
|
|
3502
3587
|
${this.renderPanelToggle()}
|
|
3503
3588
|
</div>
|
|
3504
|
-
|
|
3589
|
+
<div class="cpk-td__thread-header">
|
|
3590
|
+
${this.showThreadTitle ? lit.html`<div class="cpk-td__thread-title">${this.metadata?.name || this.thread?.name || "Rich Thread"}</div>` : lit.nothing}
|
|
3591
|
+
${this._tab === "timeline" ? lit.html`<div class="cpk-td__pinned-actions">${this.renderConversationActions()}</div>` : lit.nothing}
|
|
3592
|
+
</div>
|
|
3505
3593
|
|
|
3506
3594
|
<!-- Scrollable content -->
|
|
3507
3595
|
<div class="cpk-td__content">
|
|
@@ -3544,60 +3632,6 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
3544
3632
|
${this.renderDetailPanel()}
|
|
3545
3633
|
</div>
|
|
3546
3634
|
</div>
|
|
3547
|
-
`;
|
|
3548
|
-
}
|
|
3549
|
-
renderMetadataStrip() {
|
|
3550
|
-
const metadata = this.metadata;
|
|
3551
|
-
const pills = [{
|
|
3552
|
-
label: "Name",
|
|
3553
|
-
value: metadata?.name ?? this.thread?.name ?? "Untitled"
|
|
3554
|
-
}, {
|
|
3555
|
-
label: "ID",
|
|
3556
|
-
value: metadata?.id ?? this.threadId ?? "—"
|
|
3557
|
-
}];
|
|
3558
|
-
for (const fact of [
|
|
3559
|
-
{
|
|
3560
|
-
label: "Agent",
|
|
3561
|
-
value: metadata?.agentId
|
|
3562
|
-
},
|
|
3563
|
-
{
|
|
3564
|
-
label: "Created",
|
|
3565
|
-
value: metadata?.createdAt
|
|
3566
|
-
},
|
|
3567
|
-
{
|
|
3568
|
-
label: "Updated",
|
|
3569
|
-
value: metadata?.updatedAt
|
|
3570
|
-
}
|
|
3571
|
-
]) {
|
|
3572
|
-
if (fact.value == null || fact.value === "") continue;
|
|
3573
|
-
pills.push({
|
|
3574
|
-
label: fact.label,
|
|
3575
|
-
value: fact.label === "Created" || fact.label === "Updated" ? this.fmtTime(fact.value) : fact.value
|
|
3576
|
-
});
|
|
3577
|
-
}
|
|
3578
|
-
return lit.html`
|
|
3579
|
-
<div
|
|
3580
|
-
class="cpk-td__metadata-strip"
|
|
3581
|
-
role="group"
|
|
3582
|
-
aria-label="Thread metadata"
|
|
3583
|
-
>
|
|
3584
|
-
<div class="cpk-td__metadata-pills">
|
|
3585
|
-
${pills.map((pill) => lit.html`
|
|
3586
|
-
<span
|
|
3587
|
-
class="cpk-td__metadata-pill ${pill.wrap ? "cpk-td__metadata-pill--wrap" : ""}"
|
|
3588
|
-
role="group"
|
|
3589
|
-
title=${pill.value}
|
|
3590
|
-
aria-label=${`${pill.label}: ${pill.value}`}
|
|
3591
|
-
>
|
|
3592
|
-
<span class="cpk-td__metadata-label">${pill.label}</span>
|
|
3593
|
-
<span
|
|
3594
|
-
class="cpk-td__metadata-value ${pill.wrap ? "cpk-td__metadata-value--wrap" : ""}"
|
|
3595
|
-
>${pill.value}</span
|
|
3596
|
-
>
|
|
3597
|
-
</span>
|
|
3598
|
-
`)}
|
|
3599
|
-
</div>
|
|
3600
|
-
</div>
|
|
3601
3635
|
`;
|
|
3602
3636
|
}
|
|
3603
3637
|
renderViewInAppAction() {
|
|
@@ -3654,57 +3688,33 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
3654
3688
|
>${this.tryFromHereError}</span
|
|
3655
3689
|
>` : lit.nothing}
|
|
3656
3690
|
`;
|
|
3657
|
-
}
|
|
3658
|
-
renderTimelineBulkControls() {
|
|
3659
|
-
const bulk = this.renderTimelineBulkButtons();
|
|
3660
|
-
const tryFromHere = this.renderTryFromHereControl();
|
|
3661
|
-
if (bulk === lit.nothing && tryFromHere === lit.nothing) return lit.nothing;
|
|
3662
|
-
return lit.html`<div class="cpk-td__timeline-toolbar">
|
|
3663
|
-
${bulk}${tryFromHere}
|
|
3664
|
-
</div>`;
|
|
3665
3691
|
}
|
|
3666
3692
|
renderTimelineBulkButtons() {
|
|
3667
3693
|
if (this._eventsNotAvailable) return lit.nothing;
|
|
3668
3694
|
const detailIds = this.timelineItemsForEvents(this.activeEvents).filter((item) => item.details).map((item) => item.id);
|
|
3669
3695
|
if (detailIds.length <= 1) return lit.nothing;
|
|
3696
|
+
const allExpanded = detailIds.every((id) => this._expandedTimelineDetails.has(id));
|
|
3670
3697
|
return lit.html`
|
|
3671
3698
|
<button
|
|
3672
3699
|
type="button"
|
|
3673
3700
|
class="cpk-td__timeline-bulk-toggle"
|
|
3674
|
-
|
|
3675
|
-
@click=${() => this.expandTimelineDetails(detailIds)}
|
|
3676
|
-
>
|
|
3677
|
-
Expand all
|
|
3678
|
-
</button>
|
|
3679
|
-
<button
|
|
3680
|
-
type="button"
|
|
3681
|
-
class="cpk-td__timeline-bulk-toggle"
|
|
3682
|
-
?disabled=${detailIds.every((id) => !this._expandedTimelineDetails.has(id))}
|
|
3683
|
-
@click=${() => this.collapseTimelineDetails(detailIds)}
|
|
3701
|
+
@click=${() => allExpanded ? this.collapseTimelineDetails(detailIds) : this.expandTimelineDetails(detailIds)}
|
|
3684
3702
|
>
|
|
3685
|
-
Collapse all
|
|
3703
|
+
${allExpanded ? "Collapse all" : "Expand all"}
|
|
3686
3704
|
</button>
|
|
3687
3705
|
`;
|
|
3688
3706
|
}
|
|
3689
3707
|
renderRawEventBulkControls() {
|
|
3690
3708
|
const eventIds = this.activeEvents.map((event) => this.rawEventId(event));
|
|
3691
3709
|
if (eventIds.length <= 1) return lit.nothing;
|
|
3710
|
+
const allExpanded = eventIds.every((id) => this._expandedRawEvents.has(id));
|
|
3692
3711
|
return lit.html`<div class="cpk-td__timeline-toolbar">
|
|
3693
3712
|
<button
|
|
3694
3713
|
type="button"
|
|
3695
3714
|
class="cpk-td__timeline-bulk-toggle"
|
|
3696
|
-
|
|
3697
|
-
@click=${() => this.expandRawEventDetails(eventIds)}
|
|
3698
|
-
>
|
|
3699
|
-
Expand all
|
|
3700
|
-
</button>
|
|
3701
|
-
<button
|
|
3702
|
-
type="button"
|
|
3703
|
-
class="cpk-td__timeline-bulk-toggle"
|
|
3704
|
-
?disabled=${eventIds.every((id) => !this._expandedRawEvents.has(id))}
|
|
3705
|
-
@click=${() => this.collapseRawEventDetails(eventIds)}
|
|
3715
|
+
@click=${() => allExpanded ? this.collapseRawEventDetails(eventIds) : this.expandRawEventDetails(eventIds)}
|
|
3706
3716
|
>
|
|
3707
|
-
Collapse all
|
|
3717
|
+
${allExpanded ? "Collapse all" : "Expand all"}
|
|
3708
3718
|
</button>
|
|
3709
3719
|
</div>`;
|
|
3710
3720
|
}
|
|
@@ -3716,9 +3726,6 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
3716
3726
|
(this.shadowRoot?.querySelector(`[data-source-index="${sourceIndex}"]`))?.scrollIntoView?.({ block: "center" });
|
|
3717
3727
|
});
|
|
3718
3728
|
}
|
|
3719
|
-
withMessagesToolbar(content) {
|
|
3720
|
-
return lit.html`${this.renderTimelineBulkControls()}${content}`;
|
|
3721
|
-
}
|
|
3722
3729
|
renderTimeline() {
|
|
3723
3730
|
if (this._loadingEvents) return lit.html`
|
|
3724
3731
|
<div class="cpk-td__status">Loading timeline…</div>
|
|
@@ -3923,11 +3930,13 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
3923
3930
|
<div
|
|
3924
3931
|
class="cpk-td__bubble ${isUser ? "cpk-td__bubble--user" : "cpk-td__bubble--assistant"}"
|
|
3925
3932
|
data-message-id=${item.id}
|
|
3933
|
+
role="group"
|
|
3934
|
+
aria-label=${isUser ? "User message" : "Assistant message"}
|
|
3926
3935
|
>
|
|
3927
3936
|
<div
|
|
3928
3937
|
class="cpk-td__bubble-inner ${isUser ? "cpk-td__bubble-inner--user" : "cpk-td__bubble-inner--assistant"}"
|
|
3929
3938
|
>
|
|
3930
|
-
|
|
3939
|
+
<div style="white-space:pre-wrap">${shown}</div>
|
|
3931
3940
|
${tooLong ? lit.html`<span
|
|
3932
3941
|
class="cpk-td__show-more"
|
|
3933
3942
|
@click=${() => this.toggleMessageExpand(item.id)}
|
|
@@ -3948,7 +3957,7 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
3948
3957
|
<svg width="10" height="10" viewBox="0 0 10 10" fill="none">
|
|
3949
3958
|
<path
|
|
3950
3959
|
d="M1 9C1 9 2 7 5 7C8 7 9 9 9 9M5 1C5 1 7 2.5 7 4.5C7 6.5 5 7 5 7C5 7 3 6.5 3 4.5C3 2.5 5 1 5 1Z"
|
|
3951
|
-
stroke="
|
|
3960
|
+
stroke="currentColor"
|
|
3952
3961
|
stroke-width="1.2"
|
|
3953
3962
|
stroke-linecap="round"
|
|
3954
3963
|
stroke-linejoin="round"
|
|
@@ -3956,9 +3965,9 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
3956
3965
|
</svg>
|
|
3957
3966
|
<span class="cpk-td__tool-name">${item.toolName}</span>
|
|
3958
3967
|
${item.result || Object.keys(item.arguments).length > 0 ? lit.html`
|
|
3959
|
-
<span class="cpk-td__tool-status">
|
|
3968
|
+
<span class="cpk-td__tool-status">Complete</span>
|
|
3960
3969
|
` : lit.html`
|
|
3961
|
-
<span class="cpk-td__tool-status cpk-td__tool-status--pending">
|
|
3970
|
+
<span class="cpk-td__tool-status cpk-td__tool-status--pending">Pending</span>
|
|
3962
3971
|
`}
|
|
3963
3972
|
<span class="cpk-td__tool-chevron">${expanded ? "▾" : "▸"}</span>
|
|
3964
3973
|
</div>
|
|
@@ -3997,10 +4006,8 @@ var CpkThreadInspector = class CpkThreadInspector extends PortableLitElement {
|
|
|
3997
4006
|
<svg width="9" height="9" viewBox="0 0 24 24" fill="currentColor">
|
|
3998
4007
|
<path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" />
|
|
3999
4008
|
</svg>
|
|
4000
|
-
Generative UI
|
|
4001
|
-
|
|
4002
|
-
<div class="cpk-td__genui-placeholder">
|
|
4003
|
-
${item.activityType} — rendered in chat
|
|
4009
|
+
<span>Generative UI</span>
|
|
4010
|
+
<code class="cpk-td__genui-component">${item.activityType}</code>
|
|
4004
4011
|
</div>
|
|
4005
4012
|
</div>
|
|
4006
4013
|
`;
|
|
@@ -4994,7 +5001,8 @@ var WebInspectorElement = class WebInspectorElement extends lit.LitElement {
|
|
|
4994
5001
|
this.requestedThreadId = null;
|
|
4995
5002
|
this.focusedThreadMessageId = null;
|
|
4996
5003
|
this.threadFocusRequestId = 0;
|
|
4997
|
-
this.threadListWidth =
|
|
5004
|
+
this.threadListWidth = 240;
|
|
5005
|
+
this.threadListCollapsed = false;
|
|
4998
5006
|
this.threadDividerResizing = false;
|
|
4999
5007
|
this.threadDividerPointerId = -1;
|
|
5000
5008
|
this.threadDividerStartX = 0;
|
|
@@ -6128,7 +6136,7 @@ var WebInspectorElement = class WebInspectorElement extends lit.LitElement {
|
|
|
6128
6136
|
},
|
|
6129
6137
|
{
|
|
6130
6138
|
key: "threads",
|
|
6131
|
-
label: "Threads",
|
|
6139
|
+
label: "Rich Threads",
|
|
6132
6140
|
icon: "MessageSquare"
|
|
6133
6141
|
},
|
|
6134
6142
|
{
|
|
@@ -10257,7 +10265,7 @@ var WebInspectorElement = class WebInspectorElement extends lit.LitElement {
|
|
|
10257
10265
|
const renewing = action?.kind === "renew";
|
|
10258
10266
|
if (!connected && action) {
|
|
10259
10267
|
const stateLabel = renewing ? "Intelligence plan expired" : "Intelligence is off";
|
|
10260
|
-
const setupLabel = renewing ? "Renew to restore access" : "
|
|
10268
|
+
const setupLabel = renewing ? "Renew to restore access" : "Connect Intelligence";
|
|
10261
10269
|
return lit.html`
|
|
10262
10270
|
<a
|
|
10263
10271
|
class="inspector-sidebar-status-card inspector-sidebar-intelligence inspector-sidebar-intelligence-setup"
|
|
@@ -10267,7 +10275,7 @@ var WebInspectorElement = class WebInspectorElement extends lit.LitElement {
|
|
|
10267
10275
|
href=${action.url}
|
|
10268
10276
|
target="_blank"
|
|
10269
10277
|
rel="noopener noreferrer"
|
|
10270
|
-
aria-label="${action.label} to enable Threads and
|
|
10278
|
+
aria-label="${action.label} to enable Rich Threads and Automatic Learning (opens in a new tab)"
|
|
10271
10279
|
title=${action.label}
|
|
10272
10280
|
style=${INTERACTIVE_FOCUS_BASE_STYLE}
|
|
10273
10281
|
@click=${() => this.handleHomeHeroCta(action)}
|
|
@@ -10283,10 +10291,10 @@ var WebInspectorElement = class WebInspectorElement extends lit.LitElement {
|
|
|
10283
10291
|
`;
|
|
10284
10292
|
}
|
|
10285
10293
|
const primaryLabel = connected ? organizationName ?? "Intelligence" : "Intelligence unavailable";
|
|
10286
|
-
const secondaryLabel = connected ? planLabel ? `${planLabel} plan` : "Connected" : "Threads and
|
|
10294
|
+
const secondaryLabel = connected ? planLabel ? `${planLabel} plan` : "Connected" : "Rich Threads and Automatic Learning are off";
|
|
10287
10295
|
const label = connected ? `${primaryLabel}, ${secondaryLabel}, Intelligence connected` : "Connect Intelligence";
|
|
10288
10296
|
const actionLabel = action?.label;
|
|
10289
|
-
const description = connected ? `${secondaryLabel} · Intelligence connected` : "Threads and
|
|
10297
|
+
const description = connected ? `${secondaryLabel} · Intelligence connected` : "Rich Threads and Automatic Learning need Intelligence.";
|
|
10290
10298
|
return lit.html`
|
|
10291
10299
|
<section
|
|
10292
10300
|
class="inspector-sidebar-status-card inspector-sidebar-intelligence"
|
|
@@ -10350,15 +10358,17 @@ var WebInspectorElement = class WebInspectorElement extends lit.LitElement {
|
|
|
10350
10358
|
}
|
|
10351
10359
|
renderHomeView() {
|
|
10352
10360
|
const model = this.getHomeModel();
|
|
10361
|
+
const connected = model.hero.connection === "connected";
|
|
10353
10362
|
return lit.html`
|
|
10354
10363
|
<div
|
|
10355
10364
|
class="inspector-home"
|
|
10356
10365
|
data-inspector-home
|
|
10357
|
-
data-inspector-home-state=${
|
|
10366
|
+
data-inspector-home-state=${connected ? "connected" : "disconnected"}
|
|
10358
10367
|
>
|
|
10359
10368
|
${this.renderHomeWhatsNewPreview(model.news)}
|
|
10360
|
-
|
|
10361
|
-
${this.renderHomeIntelligenceHud(model)}
|
|
10369
|
+
<header class="inspector-home-heading"><div><h1>${connected ? model.project?.projectName ?? "Your agent workspace" : "Welcome to Intelligence"}</h1><p>${connected ? "Inspect conversations and see what your agent is learning." : "Connect your agent. Intelligence learns from experience."}</p></div></header>
|
|
10370
|
+
${connected ? this.renderHomeSystemHealth(model) : this.renderHomeIntelligenceHud(model)}
|
|
10371
|
+
${connected ? this.renderHomeIntelligenceHud(model) : this.renderHomeSystemHealth(model)}
|
|
10362
10372
|
${this.renderHomeFeatures(model)}
|
|
10363
10373
|
</div>
|
|
10364
10374
|
`;
|
|
@@ -10639,7 +10649,7 @@ var WebInspectorElement = class WebInspectorElement extends lit.LitElement {
|
|
|
10639
10649
|
class="inspector-home-section-header inspector-system-health-header"
|
|
10640
10650
|
>
|
|
10641
10651
|
<div class="inspector-system-health-heading">
|
|
10642
|
-
<
|
|
10652
|
+
<h2 class="inspector-home-section-title">System Health</h2>
|
|
10643
10653
|
</div>
|
|
10644
10654
|
<span
|
|
10645
10655
|
class="inspector-system-health-state"
|
|
@@ -13561,7 +13571,7 @@ var WebInspectorElement = class WebInspectorElement extends lit.LitElement {
|
|
|
13561
13571
|
setupActive: this.isLearningSetupActive()
|
|
13562
13572
|
}) === "landing") return this.renderLockedFeatureOverview({
|
|
13563
13573
|
serviceId: "memory",
|
|
13564
|
-
featureName: "Learning",
|
|
13574
|
+
featureName: "Automatic Learning",
|
|
13565
13575
|
heading: "Turn every interaction into reusable context.",
|
|
13566
13576
|
description: "Learning captures durable information from agent interactions and brings it back when it matters, so your product gets more useful over time.",
|
|
13567
13577
|
videoUrl: LEARNING_LOCKED_VIDEO_URL,
|
|
@@ -13607,7 +13617,7 @@ var WebInspectorElement = class WebInspectorElement extends lit.LitElement {
|
|
|
13607
13617
|
renderLegacyMemoriesView() {
|
|
13608
13618
|
if (!this.getHomeModel().services.some((service) => service.id === "memory" && service.enabled)) return this.renderLockedFeatureOverview({
|
|
13609
13619
|
serviceId: "memory",
|
|
13610
|
-
featureName: "Learning",
|
|
13620
|
+
featureName: "Automatic Learning",
|
|
13611
13621
|
heading: this._memoryStoreUnsupported ? "Upgrade to enable Learning" : "Turn every interaction into reusable context.",
|
|
13612
13622
|
description: this._memoryStoreUnsupported ? "Learning requires a newer version of @copilotkit/core and @copilotkit/react. Copy the setup prompt to upgrade and add long-term memory." : "Learning captures durable information from agent interactions and brings it back when it matters, so your product gets more useful over time.",
|
|
13613
13623
|
videoUrl: LEARNING_LOCKED_VIDEO_URL,
|
|
@@ -13865,10 +13875,14 @@ var WebInspectorElement = class WebInspectorElement extends lit.LitElement {
|
|
|
13865
13875
|
<div
|
|
13866
13876
|
style="display:flex;height:100%;overflow:hidden;flex-direction:column;"
|
|
13867
13877
|
>
|
|
13878
|
+
<div class="inspector-thread-heading"><strong>Rich Threads</strong><button type="button" class="inspector-text-button" aria-expanded=${!this.threadListCollapsed} @click=${() => {
|
|
13879
|
+
this.threadListCollapsed = !this.threadListCollapsed;
|
|
13880
|
+
this.requestUpdate();
|
|
13881
|
+
}}>${this.threadListCollapsed ? "Show thread list" : "Hide thread list"}</button></div>
|
|
13868
13882
|
<div style="display:flex;min-height:0;flex:1;overflow:hidden;">
|
|
13869
13883
|
<!-- Left sidebar: thread list -->
|
|
13870
13884
|
<div
|
|
13871
|
-
style="width:${this.threadListWidth}px;flex-shrink:0;overflow:hidden;
|
|
13885
|
+
style="display:${this.threadListCollapsed ? "none" : "flex"};width:${this.threadListWidth}px;flex-shrink:0;overflow:hidden;flex-direction:column;border-right:1px solid #DBDBE5;"
|
|
13872
13886
|
>
|
|
13873
13887
|
${ephemeral ? lit.html`
|
|
13874
13888
|
<button type="button" class="cpk-ephemeral-threads-banner"
|