@tanstack/ai-devtools-core 0.5.10 → 0.5.12
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/README.md +11 -15
- package/dist/Shell/{2X67PB7B.js → DCUFLPG6.js} +382 -77
- package/dist/{production/Shell/BJP2PZMD.js → Shell/JT2B6WKX.js} +591 -161
- package/dist/Shell/{YJTEAPIF.js → YBXRSRRK.js} +591 -161
- package/dist/dev.js +1 -1
- package/dist/index.js +1 -1
- package/dist/production/Shell/{2X67PB7B.js → DCUFLPG6.js} +382 -77
- package/dist/{Shell/BJP2PZMD.js → production/Shell/JT2B6WKX.js} +591 -161
- package/dist/production/Shell/{YJTEAPIF.js → YBXRSRRK.js} +591 -161
- package/dist/production/dev.js +1 -1
- package/dist/production/index.js +1 -1
- package/dist/production/server.js +1 -1
- package/dist/server.js +1 -1
- package/package.json +3 -3
- package/src/components/conversation/IterationCard.tsx +11 -5
- package/src/components/hooks/CompactionPanel.tsx +223 -0
- package/src/components/hooks/HookDashboard.tsx +3 -2
- package/src/components/hooks/HookDetails.tsx +22 -3
- package/src/components/hooks/index.ts +1 -0
- package/src/store/ai-context.tsx +113 -7
- package/src/store/compaction-registry.ts +121 -0
- package/src/styles/use-styles.ts +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { delegateEvents, createComponent, insert, effect, className, setStyleProperty, addEventListener, setAttribute, use, memo, spread, mergeProps, template, Portal } from 'solid-js/web';
|
|
1
|
+
import { delegateEvents, createComponent, insert, effect, className, setStyleProperty, addEventListener, setAttribute, use, memo, spread, mergeProps, template, Portal, style } from 'solid-js/web';
|
|
2
2
|
import { createContext, createSignal, onMount, onCleanup, createEffect, createMemo, Show, For, useContext, batch, Index, Switch, Match } from 'solid-js';
|
|
3
3
|
import { ThemeContextProvider, MainPanel, Header, HeaderLogo, useTheme, JsonTree } from '@tanstack/devtools-ui';
|
|
4
4
|
import { emitAIDevtoolsEvent, createAIDevtoolsEventEnvelope, aiEventClient } from '@tanstack/ai-event-client';
|
|
@@ -3951,6 +3951,7 @@ var stylesFactory = (theme) => {
|
|
|
3951
3951
|
grid-template-columns: repeat(2, minmax(320px, 1fr));
|
|
3952
3952
|
gap: ${size[3]};
|
|
3953
3953
|
align-items: start;
|
|
3954
|
+
padding-left: ${size[3]};
|
|
3954
3955
|
padding-right: ${size[3]};
|
|
3955
3956
|
@media (max-width: 760px) {
|
|
3956
3957
|
grid-template-columns: 1fr;
|
|
@@ -4344,12 +4345,6 @@ function applyHookEvent(state, eventName, event) {
|
|
|
4344
4345
|
markHookViewed(state, state.activeHookId);
|
|
4345
4346
|
}
|
|
4346
4347
|
}
|
|
4347
|
-
function setActiveHook(state, hookId) {
|
|
4348
|
-
state.activeHookId = hookId;
|
|
4349
|
-
if (hookId) {
|
|
4350
|
-
markHookViewed(state, hookId);
|
|
4351
|
-
}
|
|
4352
|
-
}
|
|
4353
4348
|
function clearHookRegistry(state) {
|
|
4354
4349
|
state.hooks = {};
|
|
4355
4350
|
state.runs = {};
|
|
@@ -4501,8 +4496,8 @@ function removeHookRecord(state, hookId) {
|
|
|
4501
4496
|
delete state.runs[runId];
|
|
4502
4497
|
}
|
|
4503
4498
|
}
|
|
4504
|
-
for (const
|
|
4505
|
-
delete state.events[
|
|
4499
|
+
for (const eventId3 of hookEventIds) {
|
|
4500
|
+
delete state.events[eventId3];
|
|
4506
4501
|
}
|
|
4507
4502
|
delete state.hooks[hookId];
|
|
4508
4503
|
delete state.seenHookActivityCounts[hookId];
|
|
@@ -4510,7 +4505,7 @@ function removeHookRecord(state, hookId) {
|
|
|
4510
4505
|
state.activeHookId = null;
|
|
4511
4506
|
}
|
|
4512
4507
|
}
|
|
4513
|
-
function upsertRun(state, event,
|
|
4508
|
+
function upsertRun(state, event, eventId3) {
|
|
4514
4509
|
const existing = state.runs[event.runId];
|
|
4515
4510
|
if (!existing) {
|
|
4516
4511
|
state.runs[event.runId] = {
|
|
@@ -4524,7 +4519,7 @@ function upsertRun(state, event, eventId2) {
|
|
|
4524
4519
|
updatedAt: event.timestamp,
|
|
4525
4520
|
...isTerminalRunStatus(event.status) ? { completedAt: event.timestamp } : {},
|
|
4526
4521
|
...event.error ? { error: event.error } : {},
|
|
4527
|
-
eventIds: [
|
|
4522
|
+
eventIds: [eventId3]
|
|
4528
4523
|
};
|
|
4529
4524
|
return;
|
|
4530
4525
|
}
|
|
@@ -4540,8 +4535,8 @@ function upsertRun(state, event, eventId2) {
|
|
|
4540
4535
|
if (event.error) {
|
|
4541
4536
|
existing.error = event.error;
|
|
4542
4537
|
}
|
|
4543
|
-
if (!existing.eventIds.includes(
|
|
4544
|
-
existing.eventIds.push(
|
|
4538
|
+
if (!existing.eventIds.includes(eventId3)) {
|
|
4539
|
+
existing.eventIds.push(eventId3);
|
|
4545
4540
|
}
|
|
4546
4541
|
}
|
|
4547
4542
|
function attachRunToHook(state, hookId, runId) {
|
|
@@ -4549,7 +4544,7 @@ function attachRunToHook(state, hookId, runId) {
|
|
|
4549
4544
|
if (!hook || hook.runIds.includes(runId)) return;
|
|
4550
4545
|
hook.runIds.push(runId);
|
|
4551
4546
|
}
|
|
4552
|
-
function syncRunsFromSnapshot(state, snapshot,
|
|
4547
|
+
function syncRunsFromSnapshot(state, snapshot, eventId3) {
|
|
4553
4548
|
const rawRuns = snapshot.state.runs;
|
|
4554
4549
|
if (!Array.isArray(rawRuns)) return;
|
|
4555
4550
|
for (const candidate of rawRuns) {
|
|
@@ -4572,7 +4567,7 @@ function syncRunsFromSnapshot(state, snapshot, eventId2) {
|
|
|
4572
4567
|
updatedAt,
|
|
4573
4568
|
...typeof run.completedAt === "number" ? { completedAt: run.completedAt } : isTerminalRunStatus(status) ? { completedAt: updatedAt } : {},
|
|
4574
4569
|
...typeof run.error === "string" ? { error: run.error } : {},
|
|
4575
|
-
eventIds: [
|
|
4570
|
+
eventIds: [eventId3]
|
|
4576
4571
|
};
|
|
4577
4572
|
} else {
|
|
4578
4573
|
existing.hookId = snapshot.hookId;
|
|
@@ -4584,8 +4579,8 @@ function syncRunsFromSnapshot(state, snapshot, eventId2) {
|
|
|
4584
4579
|
existing.completedAt = updatedAt;
|
|
4585
4580
|
}
|
|
4586
4581
|
if (typeof run.error === "string") existing.error = run.error;
|
|
4587
|
-
if (!existing.eventIds.includes(
|
|
4588
|
-
existing.eventIds.push(
|
|
4582
|
+
if (!existing.eventIds.includes(eventId3)) {
|
|
4583
|
+
existing.eventIds.push(eventId3);
|
|
4589
4584
|
}
|
|
4590
4585
|
}
|
|
4591
4586
|
attachRunToHook(state, snapshot.hookId, run.id);
|
|
@@ -4615,11 +4610,11 @@ function attachActivityRunToHook(state, hookId, runId) {
|
|
|
4615
4610
|
if (!hook || hook.activityRunIds.includes(runId)) return;
|
|
4616
4611
|
hook.activityRunIds.push(runId);
|
|
4617
4612
|
}
|
|
4618
|
-
function attachEventToHook(state, hookId,
|
|
4613
|
+
function attachEventToHook(state, hookId, eventId3) {
|
|
4619
4614
|
if (!hookId) return;
|
|
4620
4615
|
const hook = state.hooks[hookId];
|
|
4621
|
-
if (!hook || hook.eventIds.includes(
|
|
4622
|
-
hook.eventIds.push(
|
|
4616
|
+
if (!hook || hook.eventIds.includes(eventId3)) return;
|
|
4617
|
+
hook.eventIds.push(eventId3);
|
|
4623
4618
|
}
|
|
4624
4619
|
function inferLifecycleFromSnapshot(state) {
|
|
4625
4620
|
if (state.status === "error" || state.error) {
|
|
@@ -4762,6 +4757,62 @@ function clearMemoryRegistry(state) {
|
|
|
4762
4757
|
state.scopes = {};
|
|
4763
4758
|
}
|
|
4764
4759
|
|
|
4760
|
+
// src/store/compaction-registry.ts
|
|
4761
|
+
var MAX_EVENTS = 50;
|
|
4762
|
+
function createCompactionRegistryState() {
|
|
4763
|
+
return { events: [] };
|
|
4764
|
+
}
|
|
4765
|
+
function eventId2(kind, event) {
|
|
4766
|
+
return [
|
|
4767
|
+
"cmp",
|
|
4768
|
+
kind,
|
|
4769
|
+
String(event.timestamp),
|
|
4770
|
+
event.hookId ?? event.clientId ?? event.threadId ?? "unknown",
|
|
4771
|
+
String(event.before ?? event.after ?? "")
|
|
4772
|
+
].join("-");
|
|
4773
|
+
}
|
|
4774
|
+
function applyCompactionEvent(state, kind, event) {
|
|
4775
|
+
state.events.push({
|
|
4776
|
+
id: event.eventId ?? eventId2(kind, event),
|
|
4777
|
+
kind,
|
|
4778
|
+
timestamp: event.timestamp,
|
|
4779
|
+
hookId: event.hookId,
|
|
4780
|
+
clientId: event.clientId,
|
|
4781
|
+
threadId: event.threadId,
|
|
4782
|
+
runId: event.runId,
|
|
4783
|
+
before: event.before,
|
|
4784
|
+
after: event.after,
|
|
4785
|
+
messagesBefore: event.messagesBefore,
|
|
4786
|
+
messagesAfter: event.messagesAfter,
|
|
4787
|
+
reusedCheckpoint: event.reusedCheckpoint,
|
|
4788
|
+
maxTokens: event.maxTokens,
|
|
4789
|
+
strategyKey: event.strategyKey,
|
|
4790
|
+
durationMs: event.durationMs,
|
|
4791
|
+
dropped: event.dropped,
|
|
4792
|
+
result: event.result
|
|
4793
|
+
});
|
|
4794
|
+
if (state.events.length > MAX_EVENTS) {
|
|
4795
|
+
state.events.splice(0, state.events.length - MAX_EVENTS);
|
|
4796
|
+
}
|
|
4797
|
+
}
|
|
4798
|
+
function clearCompactionRegistry(state) {
|
|
4799
|
+
state.events = [];
|
|
4800
|
+
}
|
|
4801
|
+
function compactionEventsForHook(state, hook) {
|
|
4802
|
+
const matched = state.events.filter((event) => {
|
|
4803
|
+
if (event.hookId && event.hookId === hook.id) return true;
|
|
4804
|
+
if (event.clientId && hook.clientId && event.clientId === hook.clientId) {
|
|
4805
|
+
return true;
|
|
4806
|
+
}
|
|
4807
|
+
if (event.threadId && hook.threadId && event.threadId === hook.threadId) {
|
|
4808
|
+
return true;
|
|
4809
|
+
}
|
|
4810
|
+
return false;
|
|
4811
|
+
});
|
|
4812
|
+
if (matched.length > 0) return matched;
|
|
4813
|
+
return state.events;
|
|
4814
|
+
}
|
|
4815
|
+
|
|
4765
4816
|
// src/store/skills-registry.ts
|
|
4766
4817
|
function createSkillsRegistryState() {
|
|
4767
4818
|
return { snapshots: {} };
|
|
@@ -4795,6 +4846,7 @@ var AIProvider = (props) => {
|
|
|
4795
4846
|
activeConversationId: null,
|
|
4796
4847
|
hooks: createHookRegistryState(),
|
|
4797
4848
|
memory: createMemoryRegistryState(),
|
|
4849
|
+
compaction: createCompactionRegistryState(),
|
|
4798
4850
|
skills: createSkillsRegistryState()
|
|
4799
4851
|
});
|
|
4800
4852
|
const streamToConversation = /* @__PURE__ */ new Map();
|
|
@@ -5052,15 +5104,23 @@ var AIProvider = (props) => {
|
|
|
5052
5104
|
clearMemoryRegistry(memory);
|
|
5053
5105
|
}));
|
|
5054
5106
|
}
|
|
5107
|
+
function clearCompaction() {
|
|
5108
|
+
setState("compaction", produce((compaction) => {
|
|
5109
|
+
clearCompactionRegistry(compaction);
|
|
5110
|
+
}));
|
|
5111
|
+
}
|
|
5055
5112
|
function clearSkills() {
|
|
5056
5113
|
setState("skills", produce((skills) => {
|
|
5057
5114
|
clearSkillsRegistry(skills);
|
|
5058
5115
|
}));
|
|
5059
5116
|
}
|
|
5060
5117
|
function selectHook(id) {
|
|
5061
|
-
setState("hooks",
|
|
5062
|
-
|
|
5063
|
-
|
|
5118
|
+
setState("hooks", "activeHookId", id);
|
|
5119
|
+
if (id) {
|
|
5120
|
+
setState("hooks", produce((hooks) => {
|
|
5121
|
+
markHookViewed(hooks, id);
|
|
5122
|
+
}));
|
|
5123
|
+
}
|
|
5064
5124
|
}
|
|
5065
5125
|
function saveToolFixture(fixture) {
|
|
5066
5126
|
const fixtures = mergeFixtures(fixture, state.hooks.fixtures);
|
|
@@ -6568,6 +6628,48 @@ var AIProvider = (props) => {
|
|
|
6568
6628
|
arr.push(mwEvent);
|
|
6569
6629
|
}));
|
|
6570
6630
|
}));
|
|
6631
|
+
const recordCompactionLifecycle = (kind, hookName, payload) => {
|
|
6632
|
+
setState("compaction", produce((compaction) => {
|
|
6633
|
+
applyCompactionEvent(compaction, kind, payload);
|
|
6634
|
+
}));
|
|
6635
|
+
const {
|
|
6636
|
+
requestId,
|
|
6637
|
+
streamId,
|
|
6638
|
+
clientId
|
|
6639
|
+
} = payload;
|
|
6640
|
+
const conversationId = (clientId && state.conversations[clientId] ? clientId : void 0) || (streamId ? streamToConversation.get(streamId) : void 0) || (requestId ? requestToConversation.get(requestId) : void 0);
|
|
6641
|
+
if (!conversationId || !state.conversations[conversationId]) return;
|
|
6642
|
+
const conv = state.conversations[conversationId];
|
|
6643
|
+
const iterIndex = findLatestIterationIndex(conv, requestId);
|
|
6644
|
+
if (iterIndex < 0) return;
|
|
6645
|
+
const mwEvent = {
|
|
6646
|
+
id: `mw-cmp-${kind}-${Date.now()}-${Math.random()}`,
|
|
6647
|
+
middlewareName: "compaction",
|
|
6648
|
+
hookName,
|
|
6649
|
+
timestamp: payload.timestamp,
|
|
6650
|
+
hasTransform: kind === "state",
|
|
6651
|
+
configChanges: {
|
|
6652
|
+
before: payload.before,
|
|
6653
|
+
after: payload.after,
|
|
6654
|
+
messagesBefore: payload.messagesBefore,
|
|
6655
|
+
messagesAfter: payload.messagesAfter,
|
|
6656
|
+
reusedCheckpoint: payload.reusedCheckpoint,
|
|
6657
|
+
maxTokens: payload.maxTokens,
|
|
6658
|
+
strategyKey: payload.strategyKey,
|
|
6659
|
+
durationMs: payload.durationMs
|
|
6660
|
+
}
|
|
6661
|
+
};
|
|
6662
|
+
setState("conversations", conversationId, "iterations", iterIndex, "middlewareEvents", produce((arr) => {
|
|
6663
|
+
arr.push(mwEvent);
|
|
6664
|
+
}));
|
|
6665
|
+
};
|
|
6666
|
+
cleanupFns.push(aiEventClient.on("compaction:started", (e) => {
|
|
6667
|
+
recordCompactionLifecycle("started", "onCompactStart", e.payload);
|
|
6668
|
+
}), aiEventClient.on("compaction:state", (e) => {
|
|
6669
|
+
recordCompactionLifecycle("state", "onCompact", e.payload);
|
|
6670
|
+
}), aiEventClient.on("compaction:ended", (e) => {
|
|
6671
|
+
recordCompactionLifecycle("ended", "onCompactEnd", e.payload);
|
|
6672
|
+
}));
|
|
6571
6673
|
cleanupFns.push(aiEventClient.on("summarize:request:started", (e) => {
|
|
6572
6674
|
const {
|
|
6573
6675
|
requestId,
|
|
@@ -6961,6 +7063,7 @@ var AIProvider = (props) => {
|
|
|
6961
7063
|
selectConversation,
|
|
6962
7064
|
clearHooks,
|
|
6963
7065
|
clearMemory,
|
|
7066
|
+
clearCompaction,
|
|
6964
7067
|
clearSkills,
|
|
6965
7068
|
selectHook,
|
|
6966
7069
|
saveToolFixture,
|
|
@@ -7096,8 +7199,9 @@ var HookDashboard = () => {
|
|
|
7096
7199
|
const unseenUpdateCount = createMemo(() => hooks().reduce((count, hook) => count + getHookUnseenEventCount(state.hooks, hook.id), 0));
|
|
7097
7200
|
const handleSelect = (hook) => {
|
|
7098
7201
|
selectHook(hook.id);
|
|
7099
|
-
|
|
7100
|
-
|
|
7202
|
+
const conversationId = hook.id || hook.clientId || hook.threadId;
|
|
7203
|
+
if (conversationId && state.conversations[conversationId]) {
|
|
7204
|
+
selectConversation(conversationId);
|
|
7101
7205
|
}
|
|
7102
7206
|
};
|
|
7103
7207
|
return (() => {
|
|
@@ -7573,6 +7677,9 @@ var MiddlewareStep = (props) => {
|
|
|
7573
7677
|
if (ev().wasDropped) return "DROP";
|
|
7574
7678
|
if (ev().hookName === "onChunk" && ev().hasTransform) return "TRANSFORM";
|
|
7575
7679
|
if (ev().hookName === "onConfig" && ev().hasTransform) return "TRANSFORM";
|
|
7680
|
+
if (ev().hookName === "onCompactStart") return "START";
|
|
7681
|
+
if (ev().hookName === "onCompact") return "COMPACT";
|
|
7682
|
+
if (ev().hookName === "onCompactEnd") return "END";
|
|
7576
7683
|
if (ev().hookName === "onBeforeToolCall" && ev().hasTransform) return "DECISION";
|
|
7577
7684
|
return null;
|
|
7578
7685
|
};
|
|
@@ -7582,6 +7689,9 @@ var MiddlewareStep = (props) => {
|
|
|
7582
7689
|
};
|
|
7583
7690
|
return [(() => {
|
|
7584
7691
|
var _el$ = _tmpl$32(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling;
|
|
7692
|
+
_el$.$$click = () => {
|
|
7693
|
+
if (hasChanges()) setExpanded(!expanded());
|
|
7694
|
+
};
|
|
7585
7695
|
insert(_el$3, () => ev().middlewareName);
|
|
7586
7696
|
insert(_el$4, () => ev().hookName);
|
|
7587
7697
|
insert(_el$, createComponent(Show, {
|
|
@@ -7612,24 +7722,27 @@ var MiddlewareStep = (props) => {
|
|
|
7612
7722
|
},
|
|
7613
7723
|
get children() {
|
|
7614
7724
|
var _el$8 = _tmpl$22();
|
|
7615
|
-
_el$8.$$click = () => setExpanded(!expanded());
|
|
7616
7725
|
insert(_el$8, () => expanded() ? "hide changes" : "show changes");
|
|
7617
7726
|
effect(() => className(_el$8, s().stepExpandToggle));
|
|
7618
7727
|
return _el$8;
|
|
7619
7728
|
}
|
|
7620
7729
|
}), null);
|
|
7621
7730
|
effect((_p$) => {
|
|
7622
|
-
var _v$ = s().step, _v$2 =
|
|
7731
|
+
var _v$ = s().step, _v$2 = hasChanges() ? {
|
|
7732
|
+
cursor: "pointer"
|
|
7733
|
+
} : void 0, _v$3 = `${s().stepPrefix} ${s().stepPrefixMiddleware}`, _v$4 = `${s().mwBadge} ${badgeClass()}`, _v$5 = s().mwHook;
|
|
7623
7734
|
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
7624
|
-
|
|
7625
|
-
_v$3 !== _p$.a && className(_el$
|
|
7626
|
-
_v$4 !== _p$.o && className(_el$
|
|
7735
|
+
_p$.t = style(_el$, _v$2, _p$.t);
|
|
7736
|
+
_v$3 !== _p$.a && className(_el$2, _p$.a = _v$3);
|
|
7737
|
+
_v$4 !== _p$.o && className(_el$3, _p$.o = _v$4);
|
|
7738
|
+
_v$5 !== _p$.i && className(_el$4, _p$.i = _v$5);
|
|
7627
7739
|
return _p$;
|
|
7628
7740
|
}, {
|
|
7629
7741
|
e: void 0,
|
|
7630
7742
|
t: void 0,
|
|
7631
7743
|
a: void 0,
|
|
7632
|
-
o: void 0
|
|
7744
|
+
o: void 0,
|
|
7745
|
+
i: void 0
|
|
7633
7746
|
});
|
|
7634
7747
|
return _el$;
|
|
7635
7748
|
})(), createComponent(Show, {
|
|
@@ -7685,9 +7798,9 @@ var ThinkingStep = (props) => {
|
|
|
7685
7798
|
}
|
|
7686
7799
|
}), null);
|
|
7687
7800
|
effect((_p$) => {
|
|
7688
|
-
var _v$
|
|
7689
|
-
_v$
|
|
7690
|
-
_v$
|
|
7801
|
+
var _v$6 = `${s().stepPrefix} ${s().stepPrefixThinking}`, _v$7 = s().stepContent;
|
|
7802
|
+
_v$6 !== _p$.e && className(_el$1, _p$.e = _v$6);
|
|
7803
|
+
_v$7 !== _p$.t && className(_el$10, _p$.t = _v$7);
|
|
7691
7804
|
return _p$;
|
|
7692
7805
|
}, {
|
|
7693
7806
|
e: void 0,
|
|
@@ -7741,10 +7854,10 @@ var StructuredOutputStep = (props) => {
|
|
|
7741
7854
|
}), false, true);
|
|
7742
7855
|
insert(_el$15, () => part().status);
|
|
7743
7856
|
effect((_p$) => {
|
|
7744
|
-
var _v$
|
|
7745
|
-
_v$
|
|
7746
|
-
_v$
|
|
7747
|
-
_v$
|
|
7857
|
+
var _v$8 = `${s().stepPrefix} ${s().stepPrefixAssistant}`, _v$9 = `${s().mwBadge} ${badgeClass()}`, _v$0 = `${s().chevron} ${expanded() ? s().chevronOpen : ""}`;
|
|
7858
|
+
_v$8 !== _p$.e && className(_el$14, _p$.e = _v$8);
|
|
7859
|
+
_v$9 !== _p$.t && className(_el$15, _p$.t = _v$9);
|
|
7860
|
+
_v$0 !== _p$.a && className(_el$16, _p$.a = _v$0);
|
|
7748
7861
|
return _p$;
|
|
7749
7862
|
}, {
|
|
7750
7863
|
e: void 0,
|
|
@@ -7769,10 +7882,10 @@ var StructuredOutputStep = (props) => {
|
|
|
7769
7882
|
copyable: true
|
|
7770
7883
|
}));
|
|
7771
7884
|
effect((_p$) => {
|
|
7772
|
-
var _v$
|
|
7773
|
-
_v$
|
|
7774
|
-
_v$
|
|
7775
|
-
_v$
|
|
7885
|
+
var _v$11 = s().stepJsonItem, _v$12 = s().stepJsonItemLabel, _v$13 = s().stepJsonPanel;
|
|
7886
|
+
_v$11 !== _p$.e && className(_el$19, _p$.e = _v$11);
|
|
7887
|
+
_v$12 !== _p$.t && className(_el$20, _p$.t = _v$12);
|
|
7888
|
+
_v$13 !== _p$.a && className(_el$21, _p$.a = _v$13);
|
|
7776
7889
|
return _p$;
|
|
7777
7890
|
}, {
|
|
7778
7891
|
e: void 0,
|
|
@@ -7783,9 +7896,9 @@ var StructuredOutputStep = (props) => {
|
|
|
7783
7896
|
})()
|
|
7784
7897
|
}));
|
|
7785
7898
|
effect((_p$) => {
|
|
7786
|
-
var _v$
|
|
7787
|
-
_v$
|
|
7788
|
-
_v$
|
|
7899
|
+
var _v$1 = `${s().cardBody} ${expanded() ? s().cardBodyOpen : ""}`, _v$10 = `${s().cardBodyInner} ${s().stepJsonItemsCompare}`;
|
|
7900
|
+
_v$1 !== _p$.e && className(_el$17, _p$.e = _v$1);
|
|
7901
|
+
_v$10 !== _p$.t && className(_el$18, _p$.t = _v$10);
|
|
7789
7902
|
return _p$;
|
|
7790
7903
|
}, {
|
|
7791
7904
|
e: void 0,
|
|
@@ -7834,9 +7947,9 @@ var AssistantStep = (props) => {
|
|
|
7834
7947
|
}
|
|
7835
7948
|
}), null);
|
|
7836
7949
|
effect((_p$) => {
|
|
7837
|
-
var _v$
|
|
7838
|
-
_v$
|
|
7839
|
-
_v$
|
|
7950
|
+
var _v$14 = `${s().stepPrefix} ${s().stepPrefixAssistant}`, _v$15 = isLong() ? s().stepContentLong : s().stepContent;
|
|
7951
|
+
_v$14 !== _p$.e && className(_el$23, _p$.e = _v$14);
|
|
7952
|
+
_v$15 !== _p$.t && className(_el$24, _p$.t = _v$15);
|
|
7840
7953
|
return _p$;
|
|
7841
7954
|
}, {
|
|
7842
7955
|
e: void 0,
|
|
@@ -7927,10 +8040,10 @@ var ToolCallStep = (props) => {
|
|
|
7927
8040
|
}
|
|
7928
8041
|
}), _el$32);
|
|
7929
8042
|
effect((_p$) => {
|
|
7930
|
-
var _v$
|
|
7931
|
-
_v$
|
|
7932
|
-
_v$
|
|
7933
|
-
_v$
|
|
8043
|
+
var _v$16 = `${s().stepPrefix} ${s().stepPrefixToolCall}`, _v$17 = `${s().mwBadge} ${s().mwBadgeToolCall}`, _v$18 = `${s().chevron} ${argsOpen() ? s().chevronOpen : ""}`;
|
|
8044
|
+
_v$16 !== _p$.e && className(_el$28, _p$.e = _v$16);
|
|
8045
|
+
_v$17 !== _p$.t && className(_el$29, _p$.t = _v$17);
|
|
8046
|
+
_v$18 !== _p$.a && className(_el$32, _p$.a = _v$18);
|
|
7934
8047
|
return _p$;
|
|
7935
8048
|
}, {
|
|
7936
8049
|
e: void 0,
|
|
@@ -7948,10 +8061,10 @@ var ToolCallStep = (props) => {
|
|
|
7948
8061
|
copyable: true
|
|
7949
8062
|
}));
|
|
7950
8063
|
effect((_p$) => {
|
|
7951
|
-
var _v$
|
|
7952
|
-
_v$
|
|
7953
|
-
_v$
|
|
7954
|
-
_v$
|
|
8064
|
+
var _v$19 = `${s().cardBody} ${argsOpen() ? s().cardBodyOpen : ""}`, _v$20 = s().cardBodyInner, _v$21 = s().stepJsonPanel;
|
|
8065
|
+
_v$19 !== _p$.e && className(_el$33, _p$.e = _v$19);
|
|
8066
|
+
_v$20 !== _p$.t && className(_el$34, _p$.t = _v$20);
|
|
8067
|
+
_v$21 !== _p$.a && className(_el$35, _p$.a = _v$21);
|
|
7955
8068
|
return _p$;
|
|
7956
8069
|
}, {
|
|
7957
8070
|
e: void 0,
|
|
@@ -7997,10 +8110,10 @@ var ToolCallStep = (props) => {
|
|
|
7997
8110
|
}
|
|
7998
8111
|
}), _el$41);
|
|
7999
8112
|
effect((_p$) => {
|
|
8000
|
-
var _v$
|
|
8001
|
-
_v$
|
|
8002
|
-
_v$
|
|
8003
|
-
_v$
|
|
8113
|
+
var _v$22 = `${s().stepPrefix} ${s().stepPrefixToolResult}`, _v$23 = `${s().mwBadge} ${s().mwBadgeToolResult}`, _v$24 = `${s().chevron} ${resultOpen() ? s().chevronOpen : ""}`;
|
|
8114
|
+
_v$22 !== _p$.e && className(_el$37, _p$.e = _v$22);
|
|
8115
|
+
_v$23 !== _p$.t && className(_el$38, _p$.t = _v$23);
|
|
8116
|
+
_v$24 !== _p$.a && className(_el$41, _p$.a = _v$24);
|
|
8004
8117
|
return _p$;
|
|
8005
8118
|
}, {
|
|
8006
8119
|
e: void 0,
|
|
@@ -8018,10 +8131,10 @@ var ToolCallStep = (props) => {
|
|
|
8018
8131
|
copyable: true
|
|
8019
8132
|
}));
|
|
8020
8133
|
effect((_p$) => {
|
|
8021
|
-
var _v$
|
|
8022
|
-
_v$
|
|
8023
|
-
_v$
|
|
8024
|
-
_v$
|
|
8134
|
+
var _v$25 = `${s().cardBody} ${resultOpen() ? s().cardBodyOpen : ""}`, _v$26 = s().cardBodyInner, _v$27 = s().stepJsonPanel;
|
|
8135
|
+
_v$25 !== _p$.e && className(_el$42, _p$.e = _v$25);
|
|
8136
|
+
_v$26 !== _p$.t && className(_el$43, _p$.t = _v$26);
|
|
8137
|
+
_v$27 !== _p$.a && className(_el$44, _p$.a = _v$27);
|
|
8025
8138
|
return _p$;
|
|
8026
8139
|
}, {
|
|
8027
8140
|
e: void 0,
|
|
@@ -8061,9 +8174,9 @@ var ToolResultStep = (props) => {
|
|
|
8061
8174
|
}
|
|
8062
8175
|
}), false, true);
|
|
8063
8176
|
effect((_p$) => {
|
|
8064
|
-
var _v$
|
|
8065
|
-
_v$
|
|
8066
|
-
_v$
|
|
8177
|
+
var _v$28 = `${s().stepPrefix} ${s().stepPrefixToolResult}`, _v$29 = `${s().chevron} ${isOpen() ? s().chevronOpen : ""}`;
|
|
8178
|
+
_v$28 !== _p$.e && className(_el$47, _p$.e = _v$28);
|
|
8179
|
+
_v$29 !== _p$.t && className(_el$48, _p$.t = _v$29);
|
|
8067
8180
|
return _p$;
|
|
8068
8181
|
}, {
|
|
8069
8182
|
e: void 0,
|
|
@@ -8080,10 +8193,10 @@ var ToolResultStep = (props) => {
|
|
|
8080
8193
|
copyable: true
|
|
8081
8194
|
}));
|
|
8082
8195
|
effect((_p$) => {
|
|
8083
|
-
var _v$
|
|
8084
|
-
_v$
|
|
8085
|
-
_v$
|
|
8086
|
-
_v$
|
|
8196
|
+
var _v$30 = `${s().cardBody} ${isOpen() ? s().cardBodyOpen : ""}`, _v$31 = s().cardBodyInner, _v$32 = s().stepJsonPanel;
|
|
8197
|
+
_v$30 !== _p$.e && className(_el$49, _p$.e = _v$30);
|
|
8198
|
+
_v$31 !== _p$.t && className(_el$50, _p$.t = _v$31);
|
|
8199
|
+
_v$32 !== _p$.a && className(_el$51, _p$.a = _v$32);
|
|
8087
8200
|
return _p$;
|
|
8088
8201
|
}, {
|
|
8089
8202
|
e: void 0,
|
|
@@ -8356,9 +8469,9 @@ var IterationCard = (props) => {
|
|
|
8356
8469
|
var _el$69 = _tmpl$17(); _el$69.firstChild;
|
|
8357
8470
|
insert(_el$69, totalToolCalls, null);
|
|
8358
8471
|
effect((_p$) => {
|
|
8359
|
-
var _v$
|
|
8360
|
-
_v$
|
|
8361
|
-
_v$
|
|
8472
|
+
var _v$33 = `${s().badge} ${s().badgeFinishReasonToolCalls}`, _v$34 = `${totalToolCalls()} tool ${totalToolCalls() === 1 ? "call" : "calls"}`;
|
|
8473
|
+
_v$33 !== _p$.e && className(_el$69, _p$.e = _v$33);
|
|
8474
|
+
_v$34 !== _p$.t && setAttribute(_el$69, "title", _p$.t = _v$34);
|
|
8362
8475
|
return _p$;
|
|
8363
8476
|
}, {
|
|
8364
8477
|
e: void 0,
|
|
@@ -8375,9 +8488,9 @@ var IterationCard = (props) => {
|
|
|
8375
8488
|
var _el$71 = _tmpl$18(); _el$71.firstChild;
|
|
8376
8489
|
insert(_el$71, () => formatDuration(duration()), null);
|
|
8377
8490
|
effect((_p$) => {
|
|
8378
|
-
var _v$
|
|
8379
|
-
_v$
|
|
8380
|
-
_v$
|
|
8491
|
+
var _v$35 = `${s().badge} ${s().badgeDuration}`, _v$36 = formatDuration(duration());
|
|
8492
|
+
_v$35 !== _p$.e && className(_el$71, _p$.e = _v$35);
|
|
8493
|
+
_v$36 !== _p$.t && setAttribute(_el$71, "title", _p$.t = _v$36);
|
|
8381
8494
|
return _p$;
|
|
8382
8495
|
}, {
|
|
8383
8496
|
e: void 0,
|
|
@@ -8394,9 +8507,9 @@ var IterationCard = (props) => {
|
|
|
8394
8507
|
var _el$94 = _tmpl$25(); _el$94.firstChild;
|
|
8395
8508
|
insert(_el$94, () => usage().totalTokens.toLocaleString(), null);
|
|
8396
8509
|
effect((_p$) => {
|
|
8397
|
-
var _v$
|
|
8398
|
-
_v$
|
|
8399
|
-
_v$
|
|
8510
|
+
var _v$57 = `${s().badge} ${s().badgeUsage}`, _v$58 = `Prompt: ${usage().promptTokens.toLocaleString()} | Completion: ${usage().completionTokens.toLocaleString()}`;
|
|
8511
|
+
_v$57 !== _p$.e && className(_el$94, _p$.e = _v$57);
|
|
8512
|
+
_v$58 !== _p$.t && setAttribute(_el$94, "title", _p$.t = _v$58);
|
|
8400
8513
|
return _p$;
|
|
8401
8514
|
}, {
|
|
8402
8515
|
e: void 0,
|
|
@@ -8453,12 +8566,12 @@ var IterationCard = (props) => {
|
|
|
8453
8566
|
insert(_el$103, () => diff.from);
|
|
8454
8567
|
insert(_el$105, () => diff.to);
|
|
8455
8568
|
effect((_p$) => {
|
|
8456
|
-
var _v$
|
|
8457
|
-
_v$
|
|
8458
|
-
_v$
|
|
8459
|
-
_v$
|
|
8460
|
-
_v$
|
|
8461
|
-
_v$
|
|
8569
|
+
var _v$59 = s().configDiffRow, _v$60 = s().configDiffKey, _v$61 = s().configDiffFrom, _v$62 = s().configDiffArrow, _v$63 = s().configDiffTo;
|
|
8570
|
+
_v$59 !== _p$.e && className(_el$100, _p$.e = _v$59);
|
|
8571
|
+
_v$60 !== _p$.t && className(_el$101, _p$.t = _v$60);
|
|
8572
|
+
_v$61 !== _p$.a && className(_el$103, _p$.a = _v$61);
|
|
8573
|
+
_v$62 !== _p$.o && className(_el$104, _p$.o = _v$62);
|
|
8574
|
+
_v$63 !== _p$.i && className(_el$105, _p$.i = _v$63);
|
|
8462
8575
|
return _p$;
|
|
8463
8576
|
}, {
|
|
8464
8577
|
e: void 0,
|
|
@@ -8471,10 +8584,10 @@ var IterationCard = (props) => {
|
|
|
8471
8584
|
})()
|
|
8472
8585
|
}));
|
|
8473
8586
|
effect((_p$) => {
|
|
8474
|
-
var _v$
|
|
8475
|
-
_v$
|
|
8476
|
-
_v$
|
|
8477
|
-
_v$
|
|
8587
|
+
var _v$37 = s().configPanelSection, _v$38 = s().configPanelLabel, _v$39 = s().configDiffSection;
|
|
8588
|
+
_v$37 !== _p$.e && className(_el$78, _p$.e = _v$37);
|
|
8589
|
+
_v$38 !== _p$.t && className(_el$79, _p$.t = _v$38);
|
|
8590
|
+
_v$39 !== _p$.a && className(_el$80, _p$.a = _v$39);
|
|
8478
8591
|
return _p$;
|
|
8479
8592
|
}, {
|
|
8480
8593
|
e: void 0,
|
|
@@ -8499,9 +8612,9 @@ var IterationCard = (props) => {
|
|
|
8499
8612
|
insert(_el$106, name, _el$107);
|
|
8500
8613
|
insert(_el$107, () => toolInvocationCounts().get(name) || 0);
|
|
8501
8614
|
effect((_p$) => {
|
|
8502
|
-
var _v$
|
|
8503
|
-
_v$
|
|
8504
|
-
_v$
|
|
8615
|
+
var _v$64 = s().configToolChip, _v$65 = s().configToolChipCount;
|
|
8616
|
+
_v$64 !== _p$.e && className(_el$106, _p$.e = _v$64);
|
|
8617
|
+
_v$65 !== _p$.t && className(_el$107, _p$.t = _v$65);
|
|
8505
8618
|
return _p$;
|
|
8506
8619
|
}, {
|
|
8507
8620
|
e: void 0,
|
|
@@ -8511,10 +8624,10 @@ var IterationCard = (props) => {
|
|
|
8511
8624
|
})()
|
|
8512
8625
|
}));
|
|
8513
8626
|
effect((_p$) => {
|
|
8514
|
-
var _v$
|
|
8515
|
-
_v$
|
|
8516
|
-
_v$
|
|
8517
|
-
_v$
|
|
8627
|
+
var _v$40 = s().configPanelSection, _v$41 = s().configPanelLabel, _v$42 = s().configToolsList;
|
|
8628
|
+
_v$40 !== _p$.e && className(_el$81, _p$.e = _v$40);
|
|
8629
|
+
_v$41 !== _p$.t && className(_el$82, _p$.t = _v$41);
|
|
8630
|
+
_v$42 !== _p$.a && className(_el$83, _p$.a = _v$42);
|
|
8518
8631
|
return _p$;
|
|
8519
8632
|
}, {
|
|
8520
8633
|
e: void 0,
|
|
@@ -8543,9 +8656,9 @@ var IterationCard = (props) => {
|
|
|
8543
8656
|
})
|
|
8544
8657
|
}), null);
|
|
8545
8658
|
effect((_p$) => {
|
|
8546
|
-
var _v$
|
|
8547
|
-
_v$
|
|
8548
|
-
_v$
|
|
8659
|
+
var _v$43 = s().configPanelSection, _v$44 = s().configPanelLabel;
|
|
8660
|
+
_v$43 !== _p$.e && className(_el$84, _p$.e = _v$43);
|
|
8661
|
+
_v$44 !== _p$.t && className(_el$85, _p$.t = _v$44);
|
|
8549
8662
|
return _p$;
|
|
8550
8663
|
}, {
|
|
8551
8664
|
e: void 0,
|
|
@@ -8568,10 +8681,10 @@ var IterationCard = (props) => {
|
|
|
8568
8681
|
copyable: true
|
|
8569
8682
|
}));
|
|
8570
8683
|
effect((_p$) => {
|
|
8571
|
-
var _v$
|
|
8572
|
-
_v$
|
|
8573
|
-
_v$
|
|
8574
|
-
_v$
|
|
8684
|
+
var _v$45 = s().configPanelSection, _v$46 = s().configPanelLabel, _v$47 = s().configJsonTreeContainer;
|
|
8685
|
+
_v$45 !== _p$.e && className(_el$89, _p$.e = _v$45);
|
|
8686
|
+
_v$46 !== _p$.t && className(_el$90, _p$.t = _v$46);
|
|
8687
|
+
_v$47 !== _p$.a && className(_el$91, _p$.a = _v$47);
|
|
8575
8688
|
return _p$;
|
|
8576
8689
|
}, {
|
|
8577
8690
|
e: void 0,
|
|
@@ -8673,16 +8786,16 @@ var IterationCard = (props) => {
|
|
|
8673
8786
|
})
|
|
8674
8787
|
}));
|
|
8675
8788
|
effect((_p$) => {
|
|
8676
|
-
var _v$
|
|
8677
|
-
_v$
|
|
8678
|
-
_v$
|
|
8679
|
-
_v$
|
|
8680
|
-
_v$
|
|
8681
|
-
_v$
|
|
8682
|
-
_v$
|
|
8683
|
-
_v$
|
|
8684
|
-
_v$
|
|
8685
|
-
_v$
|
|
8789
|
+
var _v$48 = s().cardHeaderContent, _v$49 = s().iterCardTitle, _v$50 = s().cardSubtitle, _v$51 = s().cardHeaderBadges, _v$52 = `${s().chevron} ${isOpen() ? s().chevronOpen : ""}`, _v$53 = `${s().configPanelWrapper} ${configExpanded() ? s().configPanelWrapperOpen : ""}`, _v$54 = s().configPanel, _v$55 = `${s().cardBody} ${isOpen() ? s().cardBodyOpen : ""}`, _v$56 = s().cardBodyInner;
|
|
8790
|
+
_v$48 !== _p$.e && className(_el$54, _p$.e = _v$48);
|
|
8791
|
+
_v$49 !== _p$.t && className(_el$55, _p$.t = _v$49);
|
|
8792
|
+
_v$50 !== _p$.a && className(_el$56, _p$.a = _v$50);
|
|
8793
|
+
_v$51 !== _p$.o && className(_el$67, _p$.o = _v$51);
|
|
8794
|
+
_v$52 !== _p$.i && className(_el$74, _p$.i = _v$52);
|
|
8795
|
+
_v$53 !== _p$.n && className(_el$75, _p$.n = _v$53);
|
|
8796
|
+
_v$54 !== _p$.s && className(_el$76, _p$.s = _v$54);
|
|
8797
|
+
_v$55 !== _p$.h && className(_el$92, _p$.h = _v$55);
|
|
8798
|
+
_v$56 !== _p$.r && className(_el$93, _p$.r = _v$56);
|
|
8686
8799
|
return _p$;
|
|
8687
8800
|
}, {
|
|
8688
8801
|
e: void 0,
|
|
@@ -10945,13 +11058,310 @@ var MemoryPanel = () => {
|
|
|
10945
11058
|
})();
|
|
10946
11059
|
};
|
|
10947
11060
|
delegateEvents(["click"]);
|
|
10948
|
-
var _tmpl$40 = /* @__PURE__ */ template(`<
|
|
10949
|
-
var _tmpl$214 = /* @__PURE__ */ template(`<div
|
|
10950
|
-
var _tmpl$310 = /* @__PURE__ */ template(`<div
|
|
10951
|
-
var _tmpl$47 = /* @__PURE__ */ template(`<
|
|
10952
|
-
var _tmpl$57 = /* @__PURE__ */ template(`<
|
|
10953
|
-
var _tmpl$67 = /* @__PURE__ */ template(`<span>
|
|
10954
|
-
var _tmpl$77 = /* @__PURE__ */ template(`<
|
|
11061
|
+
var _tmpl$40 = /* @__PURE__ */ template(`<div><div></div><div>`);
|
|
11062
|
+
var _tmpl$214 = /* @__PURE__ */ template(`<div>`);
|
|
11063
|
+
var _tmpl$310 = /* @__PURE__ */ template(`<div><div> (<!>)`);
|
|
11064
|
+
var _tmpl$47 = /* @__PURE__ */ template(`<span> \u2192 <!> tok`);
|
|
11065
|
+
var _tmpl$57 = /* @__PURE__ */ template(`<span>ms`);
|
|
11066
|
+
var _tmpl$67 = /* @__PURE__ */ template(`<span>checkpoint`);
|
|
11067
|
+
var _tmpl$77 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-compaction-event style=cursor:pointer><span></span><span></span><span></span><span></span><span>\u25B6`);
|
|
11068
|
+
var _tmpl$87 = /* @__PURE__ */ template(`<div><span> event</span><button type=button>Clear`);
|
|
11069
|
+
var _tmpl$97 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-compaction-panel>`);
|
|
11070
|
+
var _tmpl$06 = /* @__PURE__ */ template(`<div>No compaction yet. When the transcript passes maxTokens, each compact appears here.`);
|
|
11071
|
+
function formatTime3(value) {
|
|
11072
|
+
const date = new Date(value);
|
|
11073
|
+
if (Number.isNaN(date.getTime())) return "";
|
|
11074
|
+
return date.toLocaleTimeString();
|
|
11075
|
+
}
|
|
11076
|
+
function shortStrategy(event) {
|
|
11077
|
+
const key = event.strategyKey;
|
|
11078
|
+
if (!key) return event.reusedCheckpoint ? "checkpoint" : "compaction";
|
|
11079
|
+
const cut = key.indexOf(":maxTokens=");
|
|
11080
|
+
return cut === -1 ? key : key.slice(0, cut);
|
|
11081
|
+
}
|
|
11082
|
+
var PreviewMessage = (props) => {
|
|
11083
|
+
const styles = useStyles();
|
|
11084
|
+
return (() => {
|
|
11085
|
+
var _el$ = _tmpl$40(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
11086
|
+
insert(_el$2, () => props.preview.role, null);
|
|
11087
|
+
insert(_el$2, createComponent(Show, {
|
|
11088
|
+
get when() {
|
|
11089
|
+
return props.preview.tokens > 0;
|
|
11090
|
+
},
|
|
11091
|
+
get children() {
|
|
11092
|
+
return ` \xB7 ${props.preview.tokens} tok`;
|
|
11093
|
+
}
|
|
11094
|
+
}), null);
|
|
11095
|
+
insert(_el$3, () => props.preview.text);
|
|
11096
|
+
effect((_p$) => {
|
|
11097
|
+
var _v$ = styles().hookDetails.message, _v$2 = styles().hookDetails.messageRole, _v$3 = styles().hookDetails.messageContent;
|
|
11098
|
+
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
11099
|
+
_v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
|
|
11100
|
+
_v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
|
|
11101
|
+
return _p$;
|
|
11102
|
+
}, {
|
|
11103
|
+
e: void 0,
|
|
11104
|
+
t: void 0,
|
|
11105
|
+
a: void 0
|
|
11106
|
+
});
|
|
11107
|
+
return _el$;
|
|
11108
|
+
})();
|
|
11109
|
+
};
|
|
11110
|
+
var PreviewColumn = (props) => {
|
|
11111
|
+
const styles = useStyles();
|
|
11112
|
+
const s = () => styles().iterationTimeline;
|
|
11113
|
+
return (() => {
|
|
11114
|
+
var _el$4 = _tmpl$310(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$8 = _el$6.nextSibling; _el$8.nextSibling;
|
|
11115
|
+
insert(_el$5, () => props.title, _el$6);
|
|
11116
|
+
insert(_el$5, () => props.previews.length, _el$8);
|
|
11117
|
+
insert(_el$4, createComponent(Show, {
|
|
11118
|
+
get when() {
|
|
11119
|
+
return props.previews.length > 0;
|
|
11120
|
+
},
|
|
11121
|
+
get fallback() {
|
|
11122
|
+
return (() => {
|
|
11123
|
+
var _el$0 = _tmpl$214();
|
|
11124
|
+
insert(_el$0, () => props.empty);
|
|
11125
|
+
effect(() => className(_el$0, styles().hookDetails.emptySmall));
|
|
11126
|
+
return _el$0;
|
|
11127
|
+
})();
|
|
11128
|
+
},
|
|
11129
|
+
get children() {
|
|
11130
|
+
var _el$9 = _tmpl$214();
|
|
11131
|
+
insert(_el$9, createComponent(For, {
|
|
11132
|
+
get each() {
|
|
11133
|
+
return props.previews;
|
|
11134
|
+
},
|
|
11135
|
+
children: (preview) => createComponent(PreviewMessage, {
|
|
11136
|
+
preview
|
|
11137
|
+
})
|
|
11138
|
+
}));
|
|
11139
|
+
effect(() => className(_el$9, styles().memoryPanel.list));
|
|
11140
|
+
return _el$9;
|
|
11141
|
+
}
|
|
11142
|
+
}), null);
|
|
11143
|
+
effect((_p$) => {
|
|
11144
|
+
var _v$4 = s().stepJsonItem, _v$5 = s().stepJsonItemLabel;
|
|
11145
|
+
_v$4 !== _p$.e && className(_el$4, _p$.e = _v$4);
|
|
11146
|
+
_v$5 !== _p$.t && className(_el$5, _p$.t = _v$5);
|
|
11147
|
+
return _p$;
|
|
11148
|
+
}, {
|
|
11149
|
+
e: void 0,
|
|
11150
|
+
t: void 0
|
|
11151
|
+
});
|
|
11152
|
+
return _el$4;
|
|
11153
|
+
})();
|
|
11154
|
+
};
|
|
11155
|
+
function kindLabel(kind) {
|
|
11156
|
+
if (kind === "started") return "Started";
|
|
11157
|
+
if (kind === "ended") return "Ended";
|
|
11158
|
+
return "State";
|
|
11159
|
+
}
|
|
11160
|
+
var CompactEvent = (props) => {
|
|
11161
|
+
const styles = useStyles();
|
|
11162
|
+
const s = () => styles().iterationTimeline;
|
|
11163
|
+
const [expanded, setExpanded] = createSignal(props.defaultOpen === true);
|
|
11164
|
+
const event = () => props.event;
|
|
11165
|
+
const isState = () => event().kind === "state";
|
|
11166
|
+
const stats = () => ({
|
|
11167
|
+
kind: event().kind,
|
|
11168
|
+
before: event().before,
|
|
11169
|
+
after: event().after,
|
|
11170
|
+
messagesBefore: event().messagesBefore,
|
|
11171
|
+
messagesAfter: event().messagesAfter,
|
|
11172
|
+
maxTokens: event().maxTokens,
|
|
11173
|
+
strategyKey: event().strategyKey,
|
|
11174
|
+
reusedCheckpoint: event().reusedCheckpoint,
|
|
11175
|
+
durationMs: event().durationMs
|
|
11176
|
+
});
|
|
11177
|
+
const countLabel = () => {
|
|
11178
|
+
if (event().kind === "started") {
|
|
11179
|
+
return `${event().messagesBefore ?? 0} msgs \xB7 ${event().before ?? 0} tok`;
|
|
11180
|
+
}
|
|
11181
|
+
if (event().kind === "ended") {
|
|
11182
|
+
return `${event().messagesAfter ?? 0} msgs \xB7 ${event().after ?? 0} tok`;
|
|
11183
|
+
}
|
|
11184
|
+
return `${event().messagesBefore ?? 0} \u2192 ${event().messagesAfter ?? 0} msgs`;
|
|
11185
|
+
};
|
|
11186
|
+
return [(() => {
|
|
11187
|
+
var _el$1 = _tmpl$77(), _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling, _el$12 = _el$11.nextSibling, _el$20 = _el$12.nextSibling, _el$21 = _el$20.nextSibling;
|
|
11188
|
+
_el$1.$$click = () => setExpanded(!expanded());
|
|
11189
|
+
insert(_el$10, () => kindLabel(event().kind));
|
|
11190
|
+
insert(_el$11, () => shortStrategy(event()));
|
|
11191
|
+
insert(_el$12, countLabel);
|
|
11192
|
+
insert(_el$1, createComponent(Show, {
|
|
11193
|
+
get when() {
|
|
11194
|
+
return event().kind === "state";
|
|
11195
|
+
},
|
|
11196
|
+
get children() {
|
|
11197
|
+
var _el$13 = _tmpl$47(), _el$14 = _el$13.firstChild, _el$16 = _el$14.nextSibling; _el$16.nextSibling;
|
|
11198
|
+
insert(_el$13, () => event().before, _el$14);
|
|
11199
|
+
insert(_el$13, () => event().after, _el$16);
|
|
11200
|
+
effect(() => className(_el$13, s().stepDuration));
|
|
11201
|
+
return _el$13;
|
|
11202
|
+
}
|
|
11203
|
+
}), _el$20);
|
|
11204
|
+
insert(_el$1, createComponent(Show, {
|
|
11205
|
+
get when() {
|
|
11206
|
+
return event().durationMs !== void 0;
|
|
11207
|
+
},
|
|
11208
|
+
get children() {
|
|
11209
|
+
var _el$17 = _tmpl$57(), _el$18 = _el$17.firstChild;
|
|
11210
|
+
insert(_el$17, () => event().durationMs, _el$18);
|
|
11211
|
+
effect(() => className(_el$17, s().stepDuration));
|
|
11212
|
+
return _el$17;
|
|
11213
|
+
}
|
|
11214
|
+
}), _el$20);
|
|
11215
|
+
insert(_el$1, createComponent(Show, {
|
|
11216
|
+
get when() {
|
|
11217
|
+
return event().reusedCheckpoint;
|
|
11218
|
+
},
|
|
11219
|
+
get children() {
|
|
11220
|
+
var _el$19 = _tmpl$67();
|
|
11221
|
+
effect(() => className(_el$19, s().mwSuffix));
|
|
11222
|
+
return _el$19;
|
|
11223
|
+
}
|
|
11224
|
+
}), _el$20);
|
|
11225
|
+
insert(_el$20, () => formatTime3(event().timestamp));
|
|
11226
|
+
effect((_p$) => {
|
|
11227
|
+
var _v$6 = s().step, _v$7 = event().kind, _v$8 = `${s().stepPrefix} ${s().stepPrefixMiddleware}`, _v$9 = `${s().mwBadge} ${s().mwBadgeTransform}`, _v$0 = s().mwHook, _v$1 = s().stepDuration, _v$10 = `${s().chevron} ${expanded() ? s().chevronOpen : ""}`;
|
|
11228
|
+
_v$6 !== _p$.e && className(_el$1, _p$.e = _v$6);
|
|
11229
|
+
_v$7 !== _p$.t && setAttribute(_el$1, "data-kind", _p$.t = _v$7);
|
|
11230
|
+
_v$8 !== _p$.a && className(_el$10, _p$.a = _v$8);
|
|
11231
|
+
_v$9 !== _p$.o && className(_el$11, _p$.o = _v$9);
|
|
11232
|
+
_v$0 !== _p$.i && className(_el$12, _p$.i = _v$0);
|
|
11233
|
+
_v$1 !== _p$.n && className(_el$20, _p$.n = _v$1);
|
|
11234
|
+
_v$10 !== _p$.s && className(_el$21, _p$.s = _v$10);
|
|
11235
|
+
return _p$;
|
|
11236
|
+
}, {
|
|
11237
|
+
e: void 0,
|
|
11238
|
+
t: void 0,
|
|
11239
|
+
a: void 0,
|
|
11240
|
+
o: void 0,
|
|
11241
|
+
i: void 0,
|
|
11242
|
+
n: void 0,
|
|
11243
|
+
s: void 0
|
|
11244
|
+
});
|
|
11245
|
+
return _el$1;
|
|
11246
|
+
})(), createComponent(Show, {
|
|
11247
|
+
get when() {
|
|
11248
|
+
return expanded();
|
|
11249
|
+
},
|
|
11250
|
+
get children() {
|
|
11251
|
+
return [(() => {
|
|
11252
|
+
var _el$22 = _tmpl$214();
|
|
11253
|
+
insert(_el$22, createComponent(JsonTree, {
|
|
11254
|
+
get value() {
|
|
11255
|
+
return stats();
|
|
11256
|
+
},
|
|
11257
|
+
defaultExpansionDepth: 1,
|
|
11258
|
+
copyable: true
|
|
11259
|
+
}));
|
|
11260
|
+
effect(() => className(_el$22, s().mwChangesContainer));
|
|
11261
|
+
return _el$22;
|
|
11262
|
+
})(), createComponent(Show, {
|
|
11263
|
+
get when() {
|
|
11264
|
+
return isState();
|
|
11265
|
+
},
|
|
11266
|
+
get children() {
|
|
11267
|
+
var _el$23 = _tmpl$214();
|
|
11268
|
+
insert(_el$23, createComponent(PreviewColumn, {
|
|
11269
|
+
title: "Dropped",
|
|
11270
|
+
get previews() {
|
|
11271
|
+
return event().dropped ?? [];
|
|
11272
|
+
},
|
|
11273
|
+
empty: "Nothing was dropped."
|
|
11274
|
+
}), null);
|
|
11275
|
+
insert(_el$23, createComponent(PreviewColumn, {
|
|
11276
|
+
title: "Sent to model",
|
|
11277
|
+
get previews() {
|
|
11278
|
+
return event().result ?? [];
|
|
11279
|
+
},
|
|
11280
|
+
empty: "No compacted transcript on this event."
|
|
11281
|
+
}), null);
|
|
11282
|
+
effect(() => className(_el$23, s().stepJsonItemsCompare));
|
|
11283
|
+
return _el$23;
|
|
11284
|
+
}
|
|
11285
|
+
})];
|
|
11286
|
+
}
|
|
11287
|
+
})];
|
|
11288
|
+
};
|
|
11289
|
+
var CompactionPanel = (props) => {
|
|
11290
|
+
const {
|
|
11291
|
+
state,
|
|
11292
|
+
clearCompaction
|
|
11293
|
+
} = useAIStore();
|
|
11294
|
+
const styles = useStyles();
|
|
11295
|
+
const s = () => styles().iterationTimeline;
|
|
11296
|
+
const events = createMemo(() => compactionEventsForHook(state.compaction, props.hook));
|
|
11297
|
+
const lastStateIndex = createMemo(() => {
|
|
11298
|
+
const list = events();
|
|
11299
|
+
for (let i = list.length - 1; i >= 0; i--) {
|
|
11300
|
+
if (list[i]?.kind === "state") return i;
|
|
11301
|
+
}
|
|
11302
|
+
return -1;
|
|
11303
|
+
});
|
|
11304
|
+
return (() => {
|
|
11305
|
+
var _el$24 = _tmpl$97();
|
|
11306
|
+
insert(_el$24, createComponent(Show, {
|
|
11307
|
+
get when() {
|
|
11308
|
+
return events().length > 0;
|
|
11309
|
+
},
|
|
11310
|
+
get fallback() {
|
|
11311
|
+
return (() => {
|
|
11312
|
+
var _el$30 = _tmpl$06();
|
|
11313
|
+
effect(() => className(_el$30, styles().hookDetails.emptySmall));
|
|
11314
|
+
return _el$30;
|
|
11315
|
+
})();
|
|
11316
|
+
},
|
|
11317
|
+
get children() {
|
|
11318
|
+
return [(() => {
|
|
11319
|
+
var _el$25 = _tmpl$87(), _el$26 = _el$25.firstChild, _el$27 = _el$26.firstChild, _el$28 = _el$26.nextSibling;
|
|
11320
|
+
insert(_el$26, () => events().length, _el$27);
|
|
11321
|
+
insert(_el$26, () => events().length === 1 ? "" : "s", null);
|
|
11322
|
+
_el$28.$$click = () => clearCompaction();
|
|
11323
|
+
effect((_p$) => {
|
|
11324
|
+
var _v$11 = styles().memoryPanel.toolbar, _v$12 = styles().memoryPanel.badge, _v$13 = styles().memoryPanel.clearButton;
|
|
11325
|
+
_v$11 !== _p$.e && className(_el$25, _p$.e = _v$11);
|
|
11326
|
+
_v$12 !== _p$.t && className(_el$26, _p$.t = _v$12);
|
|
11327
|
+
_v$13 !== _p$.a && className(_el$28, _p$.a = _v$13);
|
|
11328
|
+
return _p$;
|
|
11329
|
+
}, {
|
|
11330
|
+
e: void 0,
|
|
11331
|
+
t: void 0,
|
|
11332
|
+
a: void 0
|
|
11333
|
+
});
|
|
11334
|
+
return _el$25;
|
|
11335
|
+
})(), (() => {
|
|
11336
|
+
var _el$29 = _tmpl$214();
|
|
11337
|
+
insert(_el$29, createComponent(For, {
|
|
11338
|
+
get each() {
|
|
11339
|
+
return events();
|
|
11340
|
+
},
|
|
11341
|
+
children: (event, index) => createComponent(CompactEvent, {
|
|
11342
|
+
event,
|
|
11343
|
+
get defaultOpen() {
|
|
11344
|
+
return memo(() => event.kind === "state")() && index() === lastStateIndex();
|
|
11345
|
+
}
|
|
11346
|
+
})
|
|
11347
|
+
}));
|
|
11348
|
+
effect(() => className(_el$29, s().iterCard));
|
|
11349
|
+
return _el$29;
|
|
11350
|
+
})()];
|
|
11351
|
+
}
|
|
11352
|
+
}));
|
|
11353
|
+
effect(() => className(_el$24, styles().memoryPanel.container));
|
|
11354
|
+
return _el$24;
|
|
11355
|
+
})();
|
|
11356
|
+
};
|
|
11357
|
+
delegateEvents(["click"]);
|
|
11358
|
+
var _tmpl$41 = /* @__PURE__ */ template(`<ul>`);
|
|
11359
|
+
var _tmpl$215 = /* @__PURE__ */ template(`<div><div>Catalog`);
|
|
11360
|
+
var _tmpl$311 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-skills-panel>`);
|
|
11361
|
+
var _tmpl$48 = /* @__PURE__ */ template(`<div>No skills on this run. Add \`withSkills(...)\` to \`chat()\` and the catalog will appear here. A skill lights up when the model calls \`load_skill\`.`);
|
|
11362
|
+
var _tmpl$58 = /* @__PURE__ */ template(`<div>Loaded via \`load_skill\`, but the catalog snapshot has not arrived yet.`);
|
|
11363
|
+
var _tmpl$68 = /* @__PURE__ */ template(`<span>loaded`);
|
|
11364
|
+
var _tmpl$78 = /* @__PURE__ */ template(`<li><span></span><span>`);
|
|
10955
11365
|
function parseSkillName(argumentsJson) {
|
|
10956
11366
|
if (!argumentsJson) return void 0;
|
|
10957
11367
|
try {
|
|
@@ -11009,33 +11419,33 @@ var SkillsPanel = () => {
|
|
|
11009
11419
|
});
|
|
11010
11420
|
const catalog = createMemo(() => snapshot()?.catalog ?? []);
|
|
11011
11421
|
return (() => {
|
|
11012
|
-
var _el$ = _tmpl$
|
|
11422
|
+
var _el$ = _tmpl$311();
|
|
11013
11423
|
insert(_el$, createComponent(Show, {
|
|
11014
11424
|
get when() {
|
|
11015
11425
|
return catalog().length > 0 || loaded().size > 0;
|
|
11016
11426
|
},
|
|
11017
11427
|
get fallback() {
|
|
11018
11428
|
return (() => {
|
|
11019
|
-
var _el$5 = _tmpl$
|
|
11429
|
+
var _el$5 = _tmpl$48();
|
|
11020
11430
|
effect(() => className(_el$5, styles().memoryPanel.empty));
|
|
11021
11431
|
return _el$5;
|
|
11022
11432
|
})();
|
|
11023
11433
|
},
|
|
11024
11434
|
get children() {
|
|
11025
|
-
var _el$2 = _tmpl$
|
|
11435
|
+
var _el$2 = _tmpl$215(), _el$3 = _el$2.firstChild;
|
|
11026
11436
|
insert(_el$2, createComponent(Show, {
|
|
11027
11437
|
get when() {
|
|
11028
11438
|
return catalog().length > 0;
|
|
11029
11439
|
},
|
|
11030
11440
|
get fallback() {
|
|
11031
11441
|
return (() => {
|
|
11032
|
-
var _el$6 = _tmpl$
|
|
11442
|
+
var _el$6 = _tmpl$58();
|
|
11033
11443
|
effect(() => className(_el$6, styles().memoryPanel.sectionEmpty));
|
|
11034
11444
|
return _el$6;
|
|
11035
11445
|
})();
|
|
11036
11446
|
},
|
|
11037
11447
|
get children() {
|
|
11038
|
-
var _el$4 = _tmpl$
|
|
11448
|
+
var _el$4 = _tmpl$41();
|
|
11039
11449
|
insert(_el$4, createComponent(For, {
|
|
11040
11450
|
get each() {
|
|
11041
11451
|
return catalog();
|
|
@@ -11043,14 +11453,14 @@ var SkillsPanel = () => {
|
|
|
11043
11453
|
children: (skill) => {
|
|
11044
11454
|
const isLoaded = () => loaded().has(skill.name);
|
|
11045
11455
|
return (() => {
|
|
11046
|
-
var _el$7 = _tmpl$
|
|
11456
|
+
var _el$7 = _tmpl$78(), _el$8 = _el$7.firstChild, _el$0 = _el$8.nextSibling;
|
|
11047
11457
|
insert(_el$8, () => skill.name);
|
|
11048
11458
|
insert(_el$7, createComponent(Show, {
|
|
11049
11459
|
get when() {
|
|
11050
11460
|
return isLoaded();
|
|
11051
11461
|
},
|
|
11052
11462
|
get children() {
|
|
11053
|
-
var _el$9 = _tmpl$
|
|
11463
|
+
var _el$9 = _tmpl$68();
|
|
11054
11464
|
effect(() => className(_el$9, styles().memoryPanel.badge));
|
|
11055
11465
|
return _el$9;
|
|
11056
11466
|
}
|
|
@@ -11093,16 +11503,16 @@ var SkillsPanel = () => {
|
|
|
11093
11503
|
};
|
|
11094
11504
|
|
|
11095
11505
|
// src/components/hooks/HookDetails.tsx
|
|
11096
|
-
var _tmpl$
|
|
11097
|
-
var _tmpl$
|
|
11098
|
-
var _tmpl$
|
|
11099
|
-
var _tmpl$
|
|
11100
|
-
var _tmpl$
|
|
11101
|
-
var _tmpl$
|
|
11102
|
-
var _tmpl$
|
|
11103
|
-
var _tmpl$
|
|
11104
|
-
var _tmpl$
|
|
11105
|
-
var _tmpl$
|
|
11506
|
+
var _tmpl$49 = /* @__PURE__ */ template(`<aside data-testid=ai-devtools-preview-pane><div>`);
|
|
11507
|
+
var _tmpl$216 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-hook-detail><nav data-testid=ai-devtools-hook-tabs></nav><div><main data-testid=ai-devtools-primary-pane>`);
|
|
11508
|
+
var _tmpl$312 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-dashboard-overview><header><div><div>Hooks Dashboard</div><div>Select a hook from the left or open one of the active hooks below.</div></div></header><div></div><div>`);
|
|
11509
|
+
var _tmpl$410 = /* @__PURE__ */ template(`<div>Open a page with TanStack AI hooks to inspect live state.`);
|
|
11510
|
+
var _tmpl$59 = /* @__PURE__ */ template(`<section data-testid=ai-devtools-overview-category><div><span></span><span>`);
|
|
11511
|
+
var _tmpl$69 = /* @__PURE__ */ template(`<span>running`);
|
|
11512
|
+
var _tmpl$79 = /* @__PURE__ */ template(`<span> new`);
|
|
11513
|
+
var _tmpl$88 = /* @__PURE__ */ template(`<button type=button data-testid=ai-devtools-overview-hook><div><span></span><span></span></div><div><span>`);
|
|
11514
|
+
var _tmpl$98 = /* @__PURE__ */ template(`<div><span></span><span>`);
|
|
11515
|
+
var _tmpl$07 = /* @__PURE__ */ template(`<span>`);
|
|
11106
11516
|
var _tmpl$116 = /* @__PURE__ */ template(`<span data-testid=ai-devtools-hook-technical-name>`);
|
|
11107
11517
|
var _tmpl$106 = /* @__PURE__ */ template(`<span data-testid=ai-devtools-hook-registry-id>id `);
|
|
11108
11518
|
var _tmpl$117 = /* @__PURE__ */ template(`<header data-testid=ai-devtools-hook-header><div><div><span data-testid=ai-devtools-hook-title></span><span></span></div><div><span data-testid=ai-devtools-hook-identity></span></div></div><div>`);
|
|
@@ -11115,7 +11525,7 @@ var _tmpl$173 = /* @__PURE__ */ template(`<div><button type=button data-testid=a
|
|
|
11115
11525
|
var _tmpl$182 = /* @__PURE__ */ template(`<div><span>`);
|
|
11116
11526
|
var _tmpl$192 = /* @__PURE__ */ template(`<div><span></span><div>`);
|
|
11117
11527
|
var _tmpl$202 = /* @__PURE__ */ template(`<div>No messages yet. Start a conversation to see messages here.`);
|
|
11118
|
-
var _tmpl$
|
|
11528
|
+
var _tmpl$217 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-tools><div></div><div>`);
|
|
11119
11529
|
var _tmpl$223 = /* @__PURE__ */ template(`<div>No tools.`);
|
|
11120
11530
|
var _tmpl$232 = /* @__PURE__ */ template(`<span>approval`);
|
|
11121
11531
|
var _tmpl$242 = /* @__PURE__ */ template(`<button type=button data-testid=ai-devtools-tool-row><span>`);
|
|
@@ -11155,7 +11565,7 @@ var HookDetails = () => {
|
|
|
11155
11565
|
return Boolean(outputKind && outputKind !== "chat" && outputKind !== "structured");
|
|
11156
11566
|
});
|
|
11157
11567
|
createEffect(() => {
|
|
11158
|
-
if (isGenerationHook() && (activeTab() === "tools" || activeTab() === "memory" || activeTab() === "skills")) {
|
|
11568
|
+
if (isGenerationHook() && (activeTab() === "tools" || activeTab() === "memory" || activeTab() === "compaction" || activeTab() === "skills")) {
|
|
11159
11569
|
setActiveTab("conversation");
|
|
11160
11570
|
}
|
|
11161
11571
|
});
|
|
@@ -11193,14 +11603,15 @@ var HookDetails = () => {
|
|
|
11193
11603
|
return createComponent(HookOverview, {
|
|
11194
11604
|
onSelectHook: (selectedHook) => {
|
|
11195
11605
|
selectHook(selectedHook.id);
|
|
11196
|
-
|
|
11197
|
-
|
|
11606
|
+
const conversationId = selectedHook.id || selectedHook.clientId || selectedHook.threadId;
|
|
11607
|
+
if (conversationId && state.conversations[conversationId]) {
|
|
11608
|
+
selectConversation(conversationId);
|
|
11198
11609
|
}
|
|
11199
11610
|
}
|
|
11200
11611
|
});
|
|
11201
11612
|
},
|
|
11202
11613
|
children: (activeHook) => (() => {
|
|
11203
|
-
var _el$ = _tmpl$
|
|
11614
|
+
var _el$ = _tmpl$216(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
|
|
11204
11615
|
insert(_el$, createComponent(HookHeader, {
|
|
11205
11616
|
get hook() {
|
|
11206
11617
|
return activeHook();
|
|
@@ -11263,6 +11674,13 @@ var HookDetails = () => {
|
|
|
11263
11674
|
return activeTab();
|
|
11264
11675
|
},
|
|
11265
11676
|
onSelect: setActiveTab
|
|
11677
|
+
}), createComponent(TabButton, {
|
|
11678
|
+
label: "Compaction",
|
|
11679
|
+
tab: "compaction",
|
|
11680
|
+
get activeTab() {
|
|
11681
|
+
return activeTab();
|
|
11682
|
+
},
|
|
11683
|
+
onSelect: setActiveTab
|
|
11266
11684
|
}), createComponent(TabButton, {
|
|
11267
11685
|
label: "Skills",
|
|
11268
11686
|
tab: "skills",
|
|
@@ -11349,6 +11767,18 @@ var HookDetails = () => {
|
|
|
11349
11767
|
return createComponent(MemoryPanel, {});
|
|
11350
11768
|
}
|
|
11351
11769
|
}), null);
|
|
11770
|
+
insert(_el$4, createComponent(Show, {
|
|
11771
|
+
get when() {
|
|
11772
|
+
return activeTab() === "compaction";
|
|
11773
|
+
},
|
|
11774
|
+
get children() {
|
|
11775
|
+
return createComponent(CompactionPanel, {
|
|
11776
|
+
get hook() {
|
|
11777
|
+
return activeHook();
|
|
11778
|
+
}
|
|
11779
|
+
});
|
|
11780
|
+
}
|
|
11781
|
+
}), null);
|
|
11352
11782
|
insert(_el$4, createComponent(Show, {
|
|
11353
11783
|
get when() {
|
|
11354
11784
|
return activeTab() === "skills";
|
|
@@ -11362,7 +11792,7 @@ var HookDetails = () => {
|
|
|
11362
11792
|
return showSecondaryPane();
|
|
11363
11793
|
},
|
|
11364
11794
|
get children() {
|
|
11365
|
-
var _el$5 = _tmpl$
|
|
11795
|
+
var _el$5 = _tmpl$49(), _el$6 = _el$5.firstChild;
|
|
11366
11796
|
_el$5.addEventListener("mouseleave", () => setHoverTarget(null));
|
|
11367
11797
|
_el$5.$$mouseover = (event) => setHoverTargetFromEvent(event, "preview", setHoverTarget);
|
|
11368
11798
|
use((el) => {
|
|
@@ -11443,13 +11873,13 @@ var HookOverview = (props) => {
|
|
|
11443
11873
|
},
|
|
11444
11874
|
get fallback() {
|
|
11445
11875
|
return (() => {
|
|
11446
|
-
var _el$12 = _tmpl$
|
|
11876
|
+
var _el$12 = _tmpl$410();
|
|
11447
11877
|
effect(() => className(_el$12, styles().hookDetails.empty));
|
|
11448
11878
|
return _el$12;
|
|
11449
11879
|
})();
|
|
11450
11880
|
},
|
|
11451
11881
|
get children() {
|
|
11452
|
-
var _el$7 = _tmpl$
|
|
11882
|
+
var _el$7 = _tmpl$312(), _el$8 = _el$7.firstChild, _el$9 = _el$8.firstChild, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling, _el$10 = _el$8.nextSibling, _el$11 = _el$10.nextSibling;
|
|
11453
11883
|
insert(_el$10, createComponent(OverviewMetric, {
|
|
11454
11884
|
label: "active hooks",
|
|
11455
11885
|
get value() {
|
|
@@ -11503,7 +11933,7 @@ var HookOverview = (props) => {
|
|
|
11503
11933
|
return groups();
|
|
11504
11934
|
},
|
|
11505
11935
|
children: (group) => (() => {
|
|
11506
|
-
var _el$13 = _tmpl$
|
|
11936
|
+
var _el$13 = _tmpl$59(), _el$14 = _el$13.firstChild, _el$15 = _el$14.firstChild, _el$16 = _el$15.nextSibling;
|
|
11507
11937
|
insert(_el$15, () => group.label);
|
|
11508
11938
|
insert(_el$16, () => group.hooks.length);
|
|
11509
11939
|
insert(_el$13, createComponent(For, {
|
|
@@ -11514,7 +11944,7 @@ var HookOverview = (props) => {
|
|
|
11514
11944
|
const running = createMemo(() => isHookRunning(hook, state.hooks.runs));
|
|
11515
11945
|
const unseenCount = createMemo(() => getHookUnseenEventCount(state.hooks, hook.id));
|
|
11516
11946
|
return (() => {
|
|
11517
|
-
var _el$17 = _tmpl$
|
|
11947
|
+
var _el$17 = _tmpl$88(), _el$18 = _el$17.firstChild, _el$19 = _el$18.firstChild, _el$20 = _el$19.nextSibling, _el$21 = _el$18.nextSibling, _el$22 = _el$21.firstChild;
|
|
11518
11948
|
_el$17.$$click = () => props.onSelectHook(hook);
|
|
11519
11949
|
insert(_el$19, () => getHookDisplayName(hook));
|
|
11520
11950
|
insert(_el$20, () => getHookIdentitySubtitle(hook));
|
|
@@ -11524,7 +11954,7 @@ var HookOverview = (props) => {
|
|
|
11524
11954
|
return running();
|
|
11525
11955
|
},
|
|
11526
11956
|
get children() {
|
|
11527
|
-
var _el$23 = _tmpl$
|
|
11957
|
+
var _el$23 = _tmpl$69();
|
|
11528
11958
|
effect(() => className(_el$23, styles().hookDetails.lifecycle));
|
|
11529
11959
|
return _el$23;
|
|
11530
11960
|
}
|
|
@@ -11534,7 +11964,7 @@ var HookOverview = (props) => {
|
|
|
11534
11964
|
return unseenCount() > 0;
|
|
11535
11965
|
},
|
|
11536
11966
|
get children() {
|
|
11537
|
-
var _el$24 = _tmpl$
|
|
11967
|
+
var _el$24 = _tmpl$79(), _el$25 = _el$24.firstChild;
|
|
11538
11968
|
insert(_el$24, unseenCount, _el$25);
|
|
11539
11969
|
effect(() => className(_el$24, styles().hookDetails.kind));
|
|
11540
11970
|
return _el$24;
|
|
@@ -11605,7 +12035,7 @@ var HookOverview = (props) => {
|
|
|
11605
12035
|
var OverviewMetric = (props) => {
|
|
11606
12036
|
const styles = useStyles();
|
|
11607
12037
|
return (() => {
|
|
11608
|
-
var _el$26 = _tmpl$
|
|
12038
|
+
var _el$26 = _tmpl$98(), _el$27 = _el$26.firstChild, _el$28 = _el$27.nextSibling;
|
|
11609
12039
|
insert(_el$27, () => props.value);
|
|
11610
12040
|
insert(_el$28, () => props.label);
|
|
11611
12041
|
effect((_p$) => {
|
|
@@ -11633,7 +12063,7 @@ var HookHeader = (props) => {
|
|
|
11633
12063
|
return props.hook.outputKind;
|
|
11634
12064
|
},
|
|
11635
12065
|
get children() {
|
|
11636
|
-
var _el$34 = _tmpl$
|
|
12066
|
+
var _el$34 = _tmpl$07();
|
|
11637
12067
|
insert(_el$34, () => props.hook.outputKind);
|
|
11638
12068
|
effect(() => className(_el$34, styles().hookDetails.kind));
|
|
11639
12069
|
return _el$34;
|
|
@@ -11668,7 +12098,7 @@ var HookHeader = (props) => {
|
|
|
11668
12098
|
return props.hook.framework;
|
|
11669
12099
|
},
|
|
11670
12100
|
get children() {
|
|
11671
|
-
var _el$40 = _tmpl$
|
|
12101
|
+
var _el$40 = _tmpl$07();
|
|
11672
12102
|
insert(_el$40, () => props.hook.framework);
|
|
11673
12103
|
return _el$40;
|
|
11674
12104
|
}
|
|
@@ -11737,7 +12167,7 @@ var HookHeader = (props) => {
|
|
|
11737
12167
|
var Metric = (props) => {
|
|
11738
12168
|
const styles = useStyles();
|
|
11739
12169
|
return (() => {
|
|
11740
|
-
var _el$42 = _tmpl$
|
|
12170
|
+
var _el$42 = _tmpl$98(), _el$43 = _el$42.firstChild, _el$44 = _el$43.nextSibling;
|
|
11741
12171
|
insert(_el$43, () => props.value);
|
|
11742
12172
|
insert(_el$44, () => props.label);
|
|
11743
12173
|
effect((_p$) => {
|
|
@@ -12029,7 +12459,7 @@ var MessagesPreview = (props) => {
|
|
|
12029
12459
|
},
|
|
12030
12460
|
get fallback() {
|
|
12031
12461
|
return (() => {
|
|
12032
|
-
var _el$60 = _tmpl$
|
|
12462
|
+
var _el$60 = _tmpl$07();
|
|
12033
12463
|
insert(_el$60, () => part.content);
|
|
12034
12464
|
effect(() => className(_el$60, styles().hookDetails.previewPartContent));
|
|
12035
12465
|
return _el$60;
|
|
@@ -12163,7 +12593,7 @@ var HookMessageTimeline = (props) => {
|
|
|
12163
12593
|
},
|
|
12164
12594
|
get fallback() {
|
|
12165
12595
|
return (() => {
|
|
12166
|
-
var _el$72 = _tmpl$
|
|
12596
|
+
var _el$72 = _tmpl$07();
|
|
12167
12597
|
insert(_el$72, () => part.content);
|
|
12168
12598
|
effect(() => className(_el$72, styles().hookDetails.previewPartContent));
|
|
12169
12599
|
return _el$72;
|
|
@@ -12227,7 +12657,7 @@ var ToolsView = (props) => {
|
|
|
12227
12657
|
const selectedTool = createMemo(() => props.hook.tools.find((tool) => tool.name === selectedToolName()));
|
|
12228
12658
|
const savedFixtures = createMemo(() => state.hooks.fixtures.filter((fixture) => fixture.hookId === props.hook.id || !!props.hook.threadId && fixture.threadId === props.hook.threadId).sort((a, b) => b.createdAt - a.createdAt));
|
|
12229
12659
|
return (() => {
|
|
12230
|
-
var _el$76 = _tmpl$
|
|
12660
|
+
var _el$76 = _tmpl$217(), _el$77 = _el$76.firstChild, _el$78 = _el$77.nextSibling;
|
|
12231
12661
|
insert(_el$77, createComponent(Show, {
|
|
12232
12662
|
get when() {
|
|
12233
12663
|
return props.hook.tools.length > 0;
|
|
@@ -12318,7 +12748,7 @@ var ToolsView = (props) => {
|
|
|
12318
12748
|
var _el$87 = _tmpl$282(), _el$88 = _el$87.firstChild, _el$89 = _el$88.firstChild, _el$90 = _el$89.nextSibling, _el$91 = _el$90.firstChild, _el$92 = _el$88.nextSibling, _el$93 = _el$92.firstChild, _el$94 = _el$93.nextSibling;
|
|
12319
12749
|
insert(_el$89, () => fixture.name ?? fixture.toolName);
|
|
12320
12750
|
insert(_el$90, () => fixture.toolName, _el$91);
|
|
12321
|
-
insert(_el$90, () =>
|
|
12751
|
+
insert(_el$90, () => formatTime4(fixture.createdAt), null);
|
|
12322
12752
|
_el$93.$$click = () => applyToolFixture(fixture);
|
|
12323
12753
|
_el$94.$$click = () => deleteToolFixture(fixture.id);
|
|
12324
12754
|
effect((_p$) => {
|
|
@@ -12812,13 +13242,13 @@ function jsonSafeValue(value) {
|
|
|
12812
13242
|
return `[ai-devtools] unserializable value: ${error instanceof Error ? error.message : String(error)}`;
|
|
12813
13243
|
}
|
|
12814
13244
|
}
|
|
12815
|
-
function
|
|
13245
|
+
function formatTime4(timestamp) {
|
|
12816
13246
|
return new Date(timestamp).toLocaleTimeString();
|
|
12817
13247
|
}
|
|
12818
13248
|
delegateEvents(["mouseover", "click"]);
|
|
12819
13249
|
|
|
12820
13250
|
// src/components/Shell.tsx
|
|
12821
|
-
var _tmpl$
|
|
13251
|
+
var _tmpl$50 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-panel><div><div data-testid=ai-devtools-left-panel style=min-width:150px;max-width:800px><div>AI Hooks</div></div><div></div><div data-testid=ai-devtools-right-panel style=flex:1>`);
|
|
12822
13252
|
function Devtools(props) {
|
|
12823
13253
|
return createComponent(ThemeContextProvider, {
|
|
12824
13254
|
get theme() {
|
|
@@ -12900,7 +13330,7 @@ function DevtoolsContent() {
|
|
|
12900
13330
|
});
|
|
12901
13331
|
return createComponent(MainPanel, {
|
|
12902
13332
|
get children() {
|
|
12903
|
-
var _el$ = _tmpl$
|
|
13333
|
+
var _el$ = _tmpl$50(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.nextSibling;
|
|
12904
13334
|
insert(_el$, createComponent(Header, {
|
|
12905
13335
|
get children() {
|
|
12906
13336
|
return createComponent(HeaderLogo, {
|