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