@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;
|
|
@@ -4352,12 +4353,6 @@ function applyHookEvent(state, eventName, event) {
|
|
|
4352
4353
|
markHookViewed(state, state.activeHookId);
|
|
4353
4354
|
}
|
|
4354
4355
|
}
|
|
4355
|
-
function setActiveHook(state, hookId) {
|
|
4356
|
-
state.activeHookId = hookId;
|
|
4357
|
-
if (hookId) {
|
|
4358
|
-
markHookViewed(state, hookId);
|
|
4359
|
-
}
|
|
4360
|
-
}
|
|
4361
4356
|
function clearHookRegistry(state) {
|
|
4362
4357
|
state.hooks = {};
|
|
4363
4358
|
state.runs = {};
|
|
@@ -4509,8 +4504,8 @@ function removeHookRecord(state, hookId) {
|
|
|
4509
4504
|
delete state.runs[runId];
|
|
4510
4505
|
}
|
|
4511
4506
|
}
|
|
4512
|
-
for (const
|
|
4513
|
-
delete state.events[
|
|
4507
|
+
for (const eventId3 of hookEventIds) {
|
|
4508
|
+
delete state.events[eventId3];
|
|
4514
4509
|
}
|
|
4515
4510
|
delete state.hooks[hookId];
|
|
4516
4511
|
delete state.seenHookActivityCounts[hookId];
|
|
@@ -4518,7 +4513,7 @@ function removeHookRecord(state, hookId) {
|
|
|
4518
4513
|
state.activeHookId = null;
|
|
4519
4514
|
}
|
|
4520
4515
|
}
|
|
4521
|
-
function upsertRun(state, event,
|
|
4516
|
+
function upsertRun(state, event, eventId3) {
|
|
4522
4517
|
const existing = state.runs[event.runId];
|
|
4523
4518
|
if (!existing) {
|
|
4524
4519
|
state.runs[event.runId] = {
|
|
@@ -4532,7 +4527,7 @@ function upsertRun(state, event, eventId2) {
|
|
|
4532
4527
|
updatedAt: event.timestamp,
|
|
4533
4528
|
...isTerminalRunStatus(event.status) ? { completedAt: event.timestamp } : {},
|
|
4534
4529
|
...event.error ? { error: event.error } : {},
|
|
4535
|
-
eventIds: [
|
|
4530
|
+
eventIds: [eventId3]
|
|
4536
4531
|
};
|
|
4537
4532
|
return;
|
|
4538
4533
|
}
|
|
@@ -4548,8 +4543,8 @@ function upsertRun(state, event, eventId2) {
|
|
|
4548
4543
|
if (event.error) {
|
|
4549
4544
|
existing.error = event.error;
|
|
4550
4545
|
}
|
|
4551
|
-
if (!existing.eventIds.includes(
|
|
4552
|
-
existing.eventIds.push(
|
|
4546
|
+
if (!existing.eventIds.includes(eventId3)) {
|
|
4547
|
+
existing.eventIds.push(eventId3);
|
|
4553
4548
|
}
|
|
4554
4549
|
}
|
|
4555
4550
|
function attachRunToHook(state, hookId, runId) {
|
|
@@ -4557,7 +4552,7 @@ function attachRunToHook(state, hookId, runId) {
|
|
|
4557
4552
|
if (!hook || hook.runIds.includes(runId)) return;
|
|
4558
4553
|
hook.runIds.push(runId);
|
|
4559
4554
|
}
|
|
4560
|
-
function syncRunsFromSnapshot(state, snapshot,
|
|
4555
|
+
function syncRunsFromSnapshot(state, snapshot, eventId3) {
|
|
4561
4556
|
const rawRuns = snapshot.state.runs;
|
|
4562
4557
|
if (!Array.isArray(rawRuns)) return;
|
|
4563
4558
|
for (const candidate of rawRuns) {
|
|
@@ -4583,7 +4578,7 @@ function syncRunsFromSnapshot(state, snapshot, eventId2) {
|
|
|
4583
4578
|
updatedAt,
|
|
4584
4579
|
...typeof run.completedAt === "number" ? { completedAt: run.completedAt } : isTerminalRunStatus(status) ? { completedAt: updatedAt } : {},
|
|
4585
4580
|
...typeof run.error === "string" ? { error: run.error } : {},
|
|
4586
|
-
eventIds: [
|
|
4581
|
+
eventIds: [eventId3]
|
|
4587
4582
|
};
|
|
4588
4583
|
} else {
|
|
4589
4584
|
existing.hookId = snapshot.hookId;
|
|
@@ -4595,8 +4590,8 @@ function syncRunsFromSnapshot(state, snapshot, eventId2) {
|
|
|
4595
4590
|
existing.completedAt = updatedAt;
|
|
4596
4591
|
}
|
|
4597
4592
|
if (typeof run.error === "string") existing.error = run.error;
|
|
4598
|
-
if (!existing.eventIds.includes(
|
|
4599
|
-
existing.eventIds.push(
|
|
4593
|
+
if (!existing.eventIds.includes(eventId3)) {
|
|
4594
|
+
existing.eventIds.push(eventId3);
|
|
4600
4595
|
}
|
|
4601
4596
|
}
|
|
4602
4597
|
attachRunToHook(state, snapshot.hookId, run.id);
|
|
@@ -4626,11 +4621,11 @@ function attachActivityRunToHook(state, hookId, runId) {
|
|
|
4626
4621
|
if (!hook || hook.activityRunIds.includes(runId)) return;
|
|
4627
4622
|
hook.activityRunIds.push(runId);
|
|
4628
4623
|
}
|
|
4629
|
-
function attachEventToHook(state, hookId,
|
|
4624
|
+
function attachEventToHook(state, hookId, eventId3) {
|
|
4630
4625
|
if (!hookId) return;
|
|
4631
4626
|
const hook = state.hooks[hookId];
|
|
4632
|
-
if (!hook || hook.eventIds.includes(
|
|
4633
|
-
hook.eventIds.push(
|
|
4627
|
+
if (!hook || hook.eventIds.includes(eventId3)) return;
|
|
4628
|
+
hook.eventIds.push(eventId3);
|
|
4634
4629
|
}
|
|
4635
4630
|
function inferLifecycleFromSnapshot(state) {
|
|
4636
4631
|
if (state.status === "error" || state.error) {
|
|
@@ -4773,6 +4768,62 @@ function clearMemoryRegistry(state) {
|
|
|
4773
4768
|
state.scopes = {};
|
|
4774
4769
|
}
|
|
4775
4770
|
|
|
4771
|
+
// src/store/compaction-registry.ts
|
|
4772
|
+
var MAX_EVENTS = 50;
|
|
4773
|
+
function createCompactionRegistryState() {
|
|
4774
|
+
return { events: [] };
|
|
4775
|
+
}
|
|
4776
|
+
function eventId2(kind, event) {
|
|
4777
|
+
return [
|
|
4778
|
+
"cmp",
|
|
4779
|
+
kind,
|
|
4780
|
+
String(event.timestamp),
|
|
4781
|
+
event.hookId ?? event.clientId ?? event.threadId ?? "unknown",
|
|
4782
|
+
String(event.before ?? event.after ?? "")
|
|
4783
|
+
].join("-");
|
|
4784
|
+
}
|
|
4785
|
+
function applyCompactionEvent(state, kind, event) {
|
|
4786
|
+
state.events.push({
|
|
4787
|
+
id: event.eventId ?? eventId2(kind, event),
|
|
4788
|
+
kind,
|
|
4789
|
+
timestamp: event.timestamp,
|
|
4790
|
+
hookId: event.hookId,
|
|
4791
|
+
clientId: event.clientId,
|
|
4792
|
+
threadId: event.threadId,
|
|
4793
|
+
runId: event.runId,
|
|
4794
|
+
before: event.before,
|
|
4795
|
+
after: event.after,
|
|
4796
|
+
messagesBefore: event.messagesBefore,
|
|
4797
|
+
messagesAfter: event.messagesAfter,
|
|
4798
|
+
reusedCheckpoint: event.reusedCheckpoint,
|
|
4799
|
+
maxTokens: event.maxTokens,
|
|
4800
|
+
strategyKey: event.strategyKey,
|
|
4801
|
+
durationMs: event.durationMs,
|
|
4802
|
+
dropped: event.dropped,
|
|
4803
|
+
result: event.result
|
|
4804
|
+
});
|
|
4805
|
+
if (state.events.length > MAX_EVENTS) {
|
|
4806
|
+
state.events.splice(0, state.events.length - MAX_EVENTS);
|
|
4807
|
+
}
|
|
4808
|
+
}
|
|
4809
|
+
function clearCompactionRegistry(state) {
|
|
4810
|
+
state.events = [];
|
|
4811
|
+
}
|
|
4812
|
+
function compactionEventsForHook(state, hook) {
|
|
4813
|
+
const matched = state.events.filter((event) => {
|
|
4814
|
+
if (event.hookId && event.hookId === hook.id) return true;
|
|
4815
|
+
if (event.clientId && hook.clientId && event.clientId === hook.clientId) {
|
|
4816
|
+
return true;
|
|
4817
|
+
}
|
|
4818
|
+
if (event.threadId && hook.threadId && event.threadId === hook.threadId) {
|
|
4819
|
+
return true;
|
|
4820
|
+
}
|
|
4821
|
+
return false;
|
|
4822
|
+
});
|
|
4823
|
+
if (matched.length > 0) return matched;
|
|
4824
|
+
return state.events;
|
|
4825
|
+
}
|
|
4826
|
+
|
|
4776
4827
|
// src/store/skills-registry.ts
|
|
4777
4828
|
function createSkillsRegistryState() {
|
|
4778
4829
|
return { snapshots: {} };
|
|
@@ -4806,6 +4857,7 @@ var AIProvider = (props) => {
|
|
|
4806
4857
|
activeConversationId: null,
|
|
4807
4858
|
hooks: createHookRegistryState(),
|
|
4808
4859
|
memory: createMemoryRegistryState(),
|
|
4860
|
+
compaction: createCompactionRegistryState(),
|
|
4809
4861
|
skills: createSkillsRegistryState()
|
|
4810
4862
|
});
|
|
4811
4863
|
const streamToConversation = /* @__PURE__ */ new Map();
|
|
@@ -5063,15 +5115,23 @@ var AIProvider = (props) => {
|
|
|
5063
5115
|
clearMemoryRegistry(memory);
|
|
5064
5116
|
}));
|
|
5065
5117
|
}
|
|
5118
|
+
function clearCompaction() {
|
|
5119
|
+
setState("compaction", produce((compaction) => {
|
|
5120
|
+
clearCompactionRegistry(compaction);
|
|
5121
|
+
}));
|
|
5122
|
+
}
|
|
5066
5123
|
function clearSkills() {
|
|
5067
5124
|
setState("skills", produce((skills) => {
|
|
5068
5125
|
clearSkillsRegistry(skills);
|
|
5069
5126
|
}));
|
|
5070
5127
|
}
|
|
5071
5128
|
function selectHook(id) {
|
|
5072
|
-
setState("hooks",
|
|
5073
|
-
|
|
5074
|
-
|
|
5129
|
+
setState("hooks", "activeHookId", id);
|
|
5130
|
+
if (id) {
|
|
5131
|
+
setState("hooks", produce((hooks) => {
|
|
5132
|
+
markHookViewed(hooks, id);
|
|
5133
|
+
}));
|
|
5134
|
+
}
|
|
5075
5135
|
}
|
|
5076
5136
|
function saveToolFixture(fixture) {
|
|
5077
5137
|
const fixtures = mergeFixtures(fixture, state.hooks.fixtures);
|
|
@@ -6585,6 +6645,48 @@ var AIProvider = (props) => {
|
|
|
6585
6645
|
arr.push(mwEvent);
|
|
6586
6646
|
}));
|
|
6587
6647
|
}));
|
|
6648
|
+
const recordCompactionLifecycle = (kind, hookName, payload) => {
|
|
6649
|
+
setState("compaction", produce((compaction) => {
|
|
6650
|
+
applyCompactionEvent(compaction, kind, payload);
|
|
6651
|
+
}));
|
|
6652
|
+
const {
|
|
6653
|
+
requestId,
|
|
6654
|
+
streamId,
|
|
6655
|
+
clientId
|
|
6656
|
+
} = payload;
|
|
6657
|
+
const conversationId = (clientId && state.conversations[clientId] ? clientId : void 0) || (streamId ? streamToConversation.get(streamId) : void 0) || (requestId ? requestToConversation.get(requestId) : void 0);
|
|
6658
|
+
if (!conversationId || !state.conversations[conversationId]) return;
|
|
6659
|
+
const conv = state.conversations[conversationId];
|
|
6660
|
+
const iterIndex = findLatestIterationIndex(conv, requestId);
|
|
6661
|
+
if (iterIndex < 0) return;
|
|
6662
|
+
const mwEvent = {
|
|
6663
|
+
id: `mw-cmp-${kind}-${Date.now()}-${Math.random()}`,
|
|
6664
|
+
middlewareName: "compaction",
|
|
6665
|
+
hookName,
|
|
6666
|
+
timestamp: payload.timestamp,
|
|
6667
|
+
hasTransform: kind === "state",
|
|
6668
|
+
configChanges: {
|
|
6669
|
+
before: payload.before,
|
|
6670
|
+
after: payload.after,
|
|
6671
|
+
messagesBefore: payload.messagesBefore,
|
|
6672
|
+
messagesAfter: payload.messagesAfter,
|
|
6673
|
+
reusedCheckpoint: payload.reusedCheckpoint,
|
|
6674
|
+
maxTokens: payload.maxTokens,
|
|
6675
|
+
strategyKey: payload.strategyKey,
|
|
6676
|
+
durationMs: payload.durationMs
|
|
6677
|
+
}
|
|
6678
|
+
};
|
|
6679
|
+
setState("conversations", conversationId, "iterations", iterIndex, "middlewareEvents", produce((arr) => {
|
|
6680
|
+
arr.push(mwEvent);
|
|
6681
|
+
}));
|
|
6682
|
+
};
|
|
6683
|
+
cleanupFns.push(aiEventClient.on("compaction:started", (e) => {
|
|
6684
|
+
recordCompactionLifecycle("started", "onCompactStart", e.payload);
|
|
6685
|
+
}), aiEventClient.on("compaction:state", (e) => {
|
|
6686
|
+
recordCompactionLifecycle("state", "onCompact", e.payload);
|
|
6687
|
+
}), aiEventClient.on("compaction:ended", (e) => {
|
|
6688
|
+
recordCompactionLifecycle("ended", "onCompactEnd", e.payload);
|
|
6689
|
+
}));
|
|
6588
6690
|
cleanupFns.push(aiEventClient.on("summarize:request:started", (e) => {
|
|
6589
6691
|
const {
|
|
6590
6692
|
requestId,
|
|
@@ -6978,6 +7080,7 @@ var AIProvider = (props) => {
|
|
|
6978
7080
|
selectConversation,
|
|
6979
7081
|
clearHooks,
|
|
6980
7082
|
clearMemory,
|
|
7083
|
+
clearCompaction,
|
|
6981
7084
|
clearSkills,
|
|
6982
7085
|
selectHook,
|
|
6983
7086
|
saveToolFixture,
|
|
@@ -7113,8 +7216,9 @@ var HookDashboard = () => {
|
|
|
7113
7216
|
const unseenUpdateCount = createMemo(() => hooks().reduce((count, hook) => count + getHookUnseenEventCount(state.hooks, hook.id), 0));
|
|
7114
7217
|
const handleSelect = (hook) => {
|
|
7115
7218
|
selectHook(hook.id);
|
|
7116
|
-
|
|
7117
|
-
|
|
7219
|
+
const conversationId = hook.id || hook.clientId || hook.threadId;
|
|
7220
|
+
if (conversationId && state.conversations[conversationId]) {
|
|
7221
|
+
selectConversation(conversationId);
|
|
7118
7222
|
}
|
|
7119
7223
|
};
|
|
7120
7224
|
return (() => {
|
|
@@ -7590,6 +7694,9 @@ var MiddlewareStep = (props) => {
|
|
|
7590
7694
|
if (ev().wasDropped) return "DROP";
|
|
7591
7695
|
if (ev().hookName === "onChunk" && ev().hasTransform) return "TRANSFORM";
|
|
7592
7696
|
if (ev().hookName === "onConfig" && ev().hasTransform) return "TRANSFORM";
|
|
7697
|
+
if (ev().hookName === "onCompactStart") return "START";
|
|
7698
|
+
if (ev().hookName === "onCompact") return "COMPACT";
|
|
7699
|
+
if (ev().hookName === "onCompactEnd") return "END";
|
|
7593
7700
|
if (ev().hookName === "onBeforeToolCall" && ev().hasTransform) return "DECISION";
|
|
7594
7701
|
return null;
|
|
7595
7702
|
};
|
|
@@ -7599,6 +7706,9 @@ var MiddlewareStep = (props) => {
|
|
|
7599
7706
|
};
|
|
7600
7707
|
return [(() => {
|
|
7601
7708
|
var _el$ = _tmpl$32(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling;
|
|
7709
|
+
_el$.$$click = () => {
|
|
7710
|
+
if (hasChanges()) setExpanded(!expanded());
|
|
7711
|
+
};
|
|
7602
7712
|
insert(_el$3, () => ev().middlewareName);
|
|
7603
7713
|
insert(_el$4, () => ev().hookName);
|
|
7604
7714
|
insert(_el$, createComponent(Show, {
|
|
@@ -7629,24 +7739,27 @@ var MiddlewareStep = (props) => {
|
|
|
7629
7739
|
},
|
|
7630
7740
|
get children() {
|
|
7631
7741
|
var _el$8 = _tmpl$22();
|
|
7632
|
-
_el$8.$$click = () => setExpanded(!expanded());
|
|
7633
7742
|
insert(_el$8, () => expanded() ? "hide changes" : "show changes");
|
|
7634
7743
|
effect(() => className(_el$8, s().stepExpandToggle));
|
|
7635
7744
|
return _el$8;
|
|
7636
7745
|
}
|
|
7637
7746
|
}), null);
|
|
7638
7747
|
effect((_p$) => {
|
|
7639
|
-
var _v$ = s().step, _v$2 =
|
|
7748
|
+
var _v$ = s().step, _v$2 = hasChanges() ? {
|
|
7749
|
+
cursor: "pointer"
|
|
7750
|
+
} : void 0, _v$3 = `${s().stepPrefix} ${s().stepPrefixMiddleware}`, _v$4 = `${s().mwBadge} ${badgeClass()}`, _v$5 = s().mwHook;
|
|
7640
7751
|
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
7641
|
-
|
|
7642
|
-
_v$3 !== _p$.a && className(_el$
|
|
7643
|
-
_v$4 !== _p$.o && className(_el$
|
|
7752
|
+
_p$.t = style(_el$, _v$2, _p$.t);
|
|
7753
|
+
_v$3 !== _p$.a && className(_el$2, _p$.a = _v$3);
|
|
7754
|
+
_v$4 !== _p$.o && className(_el$3, _p$.o = _v$4);
|
|
7755
|
+
_v$5 !== _p$.i && className(_el$4, _p$.i = _v$5);
|
|
7644
7756
|
return _p$;
|
|
7645
7757
|
}, {
|
|
7646
7758
|
e: void 0,
|
|
7647
7759
|
t: void 0,
|
|
7648
7760
|
a: void 0,
|
|
7649
|
-
o: void 0
|
|
7761
|
+
o: void 0,
|
|
7762
|
+
i: void 0
|
|
7650
7763
|
});
|
|
7651
7764
|
return _el$;
|
|
7652
7765
|
})(), createComponent(Show, {
|
|
@@ -7702,9 +7815,9 @@ var ThinkingStep = (props) => {
|
|
|
7702
7815
|
}
|
|
7703
7816
|
}), null);
|
|
7704
7817
|
effect((_p$) => {
|
|
7705
|
-
var _v$
|
|
7706
|
-
_v$
|
|
7707
|
-
_v$
|
|
7818
|
+
var _v$6 = `${s().stepPrefix} ${s().stepPrefixThinking}`, _v$7 = s().stepContent;
|
|
7819
|
+
_v$6 !== _p$.e && className(_el$1, _p$.e = _v$6);
|
|
7820
|
+
_v$7 !== _p$.t && className(_el$10, _p$.t = _v$7);
|
|
7708
7821
|
return _p$;
|
|
7709
7822
|
}, {
|
|
7710
7823
|
e: void 0,
|
|
@@ -7758,10 +7871,10 @@ var StructuredOutputStep = (props) => {
|
|
|
7758
7871
|
}), false, true);
|
|
7759
7872
|
insert(_el$15, () => part().status);
|
|
7760
7873
|
effect((_p$) => {
|
|
7761
|
-
var _v$
|
|
7762
|
-
_v$
|
|
7763
|
-
_v$
|
|
7764
|
-
_v$
|
|
7874
|
+
var _v$8 = `${s().stepPrefix} ${s().stepPrefixAssistant}`, _v$9 = `${s().mwBadge} ${badgeClass()}`, _v$0 = `${s().chevron} ${expanded() ? s().chevronOpen : ""}`;
|
|
7875
|
+
_v$8 !== _p$.e && className(_el$14, _p$.e = _v$8);
|
|
7876
|
+
_v$9 !== _p$.t && className(_el$15, _p$.t = _v$9);
|
|
7877
|
+
_v$0 !== _p$.a && className(_el$16, _p$.a = _v$0);
|
|
7765
7878
|
return _p$;
|
|
7766
7879
|
}, {
|
|
7767
7880
|
e: void 0,
|
|
@@ -7786,10 +7899,10 @@ var StructuredOutputStep = (props) => {
|
|
|
7786
7899
|
copyable: true
|
|
7787
7900
|
}));
|
|
7788
7901
|
effect((_p$) => {
|
|
7789
|
-
var _v$
|
|
7790
|
-
_v$
|
|
7791
|
-
_v$
|
|
7792
|
-
_v$
|
|
7902
|
+
var _v$11 = s().stepJsonItem, _v$12 = s().stepJsonItemLabel, _v$13 = s().stepJsonPanel;
|
|
7903
|
+
_v$11 !== _p$.e && className(_el$19, _p$.e = _v$11);
|
|
7904
|
+
_v$12 !== _p$.t && className(_el$20, _p$.t = _v$12);
|
|
7905
|
+
_v$13 !== _p$.a && className(_el$21, _p$.a = _v$13);
|
|
7793
7906
|
return _p$;
|
|
7794
7907
|
}, {
|
|
7795
7908
|
e: void 0,
|
|
@@ -7800,9 +7913,9 @@ var StructuredOutputStep = (props) => {
|
|
|
7800
7913
|
})()
|
|
7801
7914
|
}));
|
|
7802
7915
|
effect((_p$) => {
|
|
7803
|
-
var _v$
|
|
7804
|
-
_v$
|
|
7805
|
-
_v$
|
|
7916
|
+
var _v$1 = `${s().cardBody} ${expanded() ? s().cardBodyOpen : ""}`, _v$10 = `${s().cardBodyInner} ${s().stepJsonItemsCompare}`;
|
|
7917
|
+
_v$1 !== _p$.e && className(_el$17, _p$.e = _v$1);
|
|
7918
|
+
_v$10 !== _p$.t && className(_el$18, _p$.t = _v$10);
|
|
7806
7919
|
return _p$;
|
|
7807
7920
|
}, {
|
|
7808
7921
|
e: void 0,
|
|
@@ -7851,9 +7964,9 @@ var AssistantStep = (props) => {
|
|
|
7851
7964
|
}
|
|
7852
7965
|
}), null);
|
|
7853
7966
|
effect((_p$) => {
|
|
7854
|
-
var _v$
|
|
7855
|
-
_v$
|
|
7856
|
-
_v$
|
|
7967
|
+
var _v$14 = `${s().stepPrefix} ${s().stepPrefixAssistant}`, _v$15 = isLong() ? s().stepContentLong : s().stepContent;
|
|
7968
|
+
_v$14 !== _p$.e && className(_el$23, _p$.e = _v$14);
|
|
7969
|
+
_v$15 !== _p$.t && className(_el$24, _p$.t = _v$15);
|
|
7857
7970
|
return _p$;
|
|
7858
7971
|
}, {
|
|
7859
7972
|
e: void 0,
|
|
@@ -7944,10 +8057,10 @@ var ToolCallStep = (props) => {
|
|
|
7944
8057
|
}
|
|
7945
8058
|
}), _el$32);
|
|
7946
8059
|
effect((_p$) => {
|
|
7947
|
-
var _v$
|
|
7948
|
-
_v$
|
|
7949
|
-
_v$
|
|
7950
|
-
_v$
|
|
8060
|
+
var _v$16 = `${s().stepPrefix} ${s().stepPrefixToolCall}`, _v$17 = `${s().mwBadge} ${s().mwBadgeToolCall}`, _v$18 = `${s().chevron} ${argsOpen() ? s().chevronOpen : ""}`;
|
|
8061
|
+
_v$16 !== _p$.e && className(_el$28, _p$.e = _v$16);
|
|
8062
|
+
_v$17 !== _p$.t && className(_el$29, _p$.t = _v$17);
|
|
8063
|
+
_v$18 !== _p$.a && className(_el$32, _p$.a = _v$18);
|
|
7951
8064
|
return _p$;
|
|
7952
8065
|
}, {
|
|
7953
8066
|
e: void 0,
|
|
@@ -7965,10 +8078,10 @@ var ToolCallStep = (props) => {
|
|
|
7965
8078
|
copyable: true
|
|
7966
8079
|
}));
|
|
7967
8080
|
effect((_p$) => {
|
|
7968
|
-
var _v$
|
|
7969
|
-
_v$
|
|
7970
|
-
_v$
|
|
7971
|
-
_v$
|
|
8081
|
+
var _v$19 = `${s().cardBody} ${argsOpen() ? s().cardBodyOpen : ""}`, _v$20 = s().cardBodyInner, _v$21 = s().stepJsonPanel;
|
|
8082
|
+
_v$19 !== _p$.e && className(_el$33, _p$.e = _v$19);
|
|
8083
|
+
_v$20 !== _p$.t && className(_el$34, _p$.t = _v$20);
|
|
8084
|
+
_v$21 !== _p$.a && className(_el$35, _p$.a = _v$21);
|
|
7972
8085
|
return _p$;
|
|
7973
8086
|
}, {
|
|
7974
8087
|
e: void 0,
|
|
@@ -8014,10 +8127,10 @@ var ToolCallStep = (props) => {
|
|
|
8014
8127
|
}
|
|
8015
8128
|
}), _el$41);
|
|
8016
8129
|
effect((_p$) => {
|
|
8017
|
-
var _v$
|
|
8018
|
-
_v$
|
|
8019
|
-
_v$
|
|
8020
|
-
_v$
|
|
8130
|
+
var _v$22 = `${s().stepPrefix} ${s().stepPrefixToolResult}`, _v$23 = `${s().mwBadge} ${s().mwBadgeToolResult}`, _v$24 = `${s().chevron} ${resultOpen() ? s().chevronOpen : ""}`;
|
|
8131
|
+
_v$22 !== _p$.e && className(_el$37, _p$.e = _v$22);
|
|
8132
|
+
_v$23 !== _p$.t && className(_el$38, _p$.t = _v$23);
|
|
8133
|
+
_v$24 !== _p$.a && className(_el$41, _p$.a = _v$24);
|
|
8021
8134
|
return _p$;
|
|
8022
8135
|
}, {
|
|
8023
8136
|
e: void 0,
|
|
@@ -8035,10 +8148,10 @@ var ToolCallStep = (props) => {
|
|
|
8035
8148
|
copyable: true
|
|
8036
8149
|
}));
|
|
8037
8150
|
effect((_p$) => {
|
|
8038
|
-
var _v$
|
|
8039
|
-
_v$
|
|
8040
|
-
_v$
|
|
8041
|
-
_v$
|
|
8151
|
+
var _v$25 = `${s().cardBody} ${resultOpen() ? s().cardBodyOpen : ""}`, _v$26 = s().cardBodyInner, _v$27 = s().stepJsonPanel;
|
|
8152
|
+
_v$25 !== _p$.e && className(_el$42, _p$.e = _v$25);
|
|
8153
|
+
_v$26 !== _p$.t && className(_el$43, _p$.t = _v$26);
|
|
8154
|
+
_v$27 !== _p$.a && className(_el$44, _p$.a = _v$27);
|
|
8042
8155
|
return _p$;
|
|
8043
8156
|
}, {
|
|
8044
8157
|
e: void 0,
|
|
@@ -8078,9 +8191,9 @@ var ToolResultStep = (props) => {
|
|
|
8078
8191
|
}
|
|
8079
8192
|
}), false, true);
|
|
8080
8193
|
effect((_p$) => {
|
|
8081
|
-
var _v$
|
|
8082
|
-
_v$
|
|
8083
|
-
_v$
|
|
8194
|
+
var _v$28 = `${s().stepPrefix} ${s().stepPrefixToolResult}`, _v$29 = `${s().chevron} ${isOpen() ? s().chevronOpen : ""}`;
|
|
8195
|
+
_v$28 !== _p$.e && className(_el$47, _p$.e = _v$28);
|
|
8196
|
+
_v$29 !== _p$.t && className(_el$48, _p$.t = _v$29);
|
|
8084
8197
|
return _p$;
|
|
8085
8198
|
}, {
|
|
8086
8199
|
e: void 0,
|
|
@@ -8097,10 +8210,10 @@ var ToolResultStep = (props) => {
|
|
|
8097
8210
|
copyable: true
|
|
8098
8211
|
}));
|
|
8099
8212
|
effect((_p$) => {
|
|
8100
|
-
var _v$
|
|
8101
|
-
_v$
|
|
8102
|
-
_v$
|
|
8103
|
-
_v$
|
|
8213
|
+
var _v$30 = `${s().cardBody} ${isOpen() ? s().cardBodyOpen : ""}`, _v$31 = s().cardBodyInner, _v$32 = s().stepJsonPanel;
|
|
8214
|
+
_v$30 !== _p$.e && className(_el$49, _p$.e = _v$30);
|
|
8215
|
+
_v$31 !== _p$.t && className(_el$50, _p$.t = _v$31);
|
|
8216
|
+
_v$32 !== _p$.a && className(_el$51, _p$.a = _v$32);
|
|
8104
8217
|
return _p$;
|
|
8105
8218
|
}, {
|
|
8106
8219
|
e: void 0,
|
|
@@ -8373,9 +8486,9 @@ var IterationCard = (props) => {
|
|
|
8373
8486
|
var _el$69 = _tmpl$17(); _el$69.firstChild;
|
|
8374
8487
|
insert(_el$69, totalToolCalls, null);
|
|
8375
8488
|
effect((_p$) => {
|
|
8376
|
-
var _v$
|
|
8377
|
-
_v$
|
|
8378
|
-
_v$
|
|
8489
|
+
var _v$33 = `${s().badge} ${s().badgeFinishReasonToolCalls}`, _v$34 = `${totalToolCalls()} tool ${totalToolCalls() === 1 ? "call" : "calls"}`;
|
|
8490
|
+
_v$33 !== _p$.e && className(_el$69, _p$.e = _v$33);
|
|
8491
|
+
_v$34 !== _p$.t && setAttribute(_el$69, "title", _p$.t = _v$34);
|
|
8379
8492
|
return _p$;
|
|
8380
8493
|
}, {
|
|
8381
8494
|
e: void 0,
|
|
@@ -8392,9 +8505,9 @@ var IterationCard = (props) => {
|
|
|
8392
8505
|
var _el$71 = _tmpl$18(); _el$71.firstChild;
|
|
8393
8506
|
insert(_el$71, () => formatDuration(duration()), null);
|
|
8394
8507
|
effect((_p$) => {
|
|
8395
|
-
var _v$
|
|
8396
|
-
_v$
|
|
8397
|
-
_v$
|
|
8508
|
+
var _v$35 = `${s().badge} ${s().badgeDuration}`, _v$36 = formatDuration(duration());
|
|
8509
|
+
_v$35 !== _p$.e && className(_el$71, _p$.e = _v$35);
|
|
8510
|
+
_v$36 !== _p$.t && setAttribute(_el$71, "title", _p$.t = _v$36);
|
|
8398
8511
|
return _p$;
|
|
8399
8512
|
}, {
|
|
8400
8513
|
e: void 0,
|
|
@@ -8411,9 +8524,9 @@ var IterationCard = (props) => {
|
|
|
8411
8524
|
var _el$94 = _tmpl$25(); _el$94.firstChild;
|
|
8412
8525
|
insert(_el$94, () => usage().totalTokens.toLocaleString(), null);
|
|
8413
8526
|
effect((_p$) => {
|
|
8414
|
-
var _v$
|
|
8415
|
-
_v$
|
|
8416
|
-
_v$
|
|
8527
|
+
var _v$57 = `${s().badge} ${s().badgeUsage}`, _v$58 = `Prompt: ${usage().promptTokens.toLocaleString()} | Completion: ${usage().completionTokens.toLocaleString()}`;
|
|
8528
|
+
_v$57 !== _p$.e && className(_el$94, _p$.e = _v$57);
|
|
8529
|
+
_v$58 !== _p$.t && setAttribute(_el$94, "title", _p$.t = _v$58);
|
|
8417
8530
|
return _p$;
|
|
8418
8531
|
}, {
|
|
8419
8532
|
e: void 0,
|
|
@@ -8470,12 +8583,12 @@ var IterationCard = (props) => {
|
|
|
8470
8583
|
insert(_el$103, () => diff.from);
|
|
8471
8584
|
insert(_el$105, () => diff.to);
|
|
8472
8585
|
effect((_p$) => {
|
|
8473
|
-
var _v$
|
|
8474
|
-
_v$
|
|
8475
|
-
_v$
|
|
8476
|
-
_v$
|
|
8477
|
-
_v$
|
|
8478
|
-
_v$
|
|
8586
|
+
var _v$59 = s().configDiffRow, _v$60 = s().configDiffKey, _v$61 = s().configDiffFrom, _v$62 = s().configDiffArrow, _v$63 = s().configDiffTo;
|
|
8587
|
+
_v$59 !== _p$.e && className(_el$100, _p$.e = _v$59);
|
|
8588
|
+
_v$60 !== _p$.t && className(_el$101, _p$.t = _v$60);
|
|
8589
|
+
_v$61 !== _p$.a && className(_el$103, _p$.a = _v$61);
|
|
8590
|
+
_v$62 !== _p$.o && className(_el$104, _p$.o = _v$62);
|
|
8591
|
+
_v$63 !== _p$.i && className(_el$105, _p$.i = _v$63);
|
|
8479
8592
|
return _p$;
|
|
8480
8593
|
}, {
|
|
8481
8594
|
e: void 0,
|
|
@@ -8488,10 +8601,10 @@ var IterationCard = (props) => {
|
|
|
8488
8601
|
})()
|
|
8489
8602
|
}));
|
|
8490
8603
|
effect((_p$) => {
|
|
8491
|
-
var _v$
|
|
8492
|
-
_v$
|
|
8493
|
-
_v$
|
|
8494
|
-
_v$
|
|
8604
|
+
var _v$37 = s().configPanelSection, _v$38 = s().configPanelLabel, _v$39 = s().configDiffSection;
|
|
8605
|
+
_v$37 !== _p$.e && className(_el$78, _p$.e = _v$37);
|
|
8606
|
+
_v$38 !== _p$.t && className(_el$79, _p$.t = _v$38);
|
|
8607
|
+
_v$39 !== _p$.a && className(_el$80, _p$.a = _v$39);
|
|
8495
8608
|
return _p$;
|
|
8496
8609
|
}, {
|
|
8497
8610
|
e: void 0,
|
|
@@ -8516,9 +8629,9 @@ var IterationCard = (props) => {
|
|
|
8516
8629
|
insert(_el$106, name, _el$107);
|
|
8517
8630
|
insert(_el$107, () => toolInvocationCounts().get(name) || 0);
|
|
8518
8631
|
effect((_p$) => {
|
|
8519
|
-
var _v$
|
|
8520
|
-
_v$
|
|
8521
|
-
_v$
|
|
8632
|
+
var _v$64 = s().configToolChip, _v$65 = s().configToolChipCount;
|
|
8633
|
+
_v$64 !== _p$.e && className(_el$106, _p$.e = _v$64);
|
|
8634
|
+
_v$65 !== _p$.t && className(_el$107, _p$.t = _v$65);
|
|
8522
8635
|
return _p$;
|
|
8523
8636
|
}, {
|
|
8524
8637
|
e: void 0,
|
|
@@ -8528,10 +8641,10 @@ var IterationCard = (props) => {
|
|
|
8528
8641
|
})()
|
|
8529
8642
|
}));
|
|
8530
8643
|
effect((_p$) => {
|
|
8531
|
-
var _v$
|
|
8532
|
-
_v$
|
|
8533
|
-
_v$
|
|
8534
|
-
_v$
|
|
8644
|
+
var _v$40 = s().configPanelSection, _v$41 = s().configPanelLabel, _v$42 = s().configToolsList;
|
|
8645
|
+
_v$40 !== _p$.e && className(_el$81, _p$.e = _v$40);
|
|
8646
|
+
_v$41 !== _p$.t && className(_el$82, _p$.t = _v$41);
|
|
8647
|
+
_v$42 !== _p$.a && className(_el$83, _p$.a = _v$42);
|
|
8535
8648
|
return _p$;
|
|
8536
8649
|
}, {
|
|
8537
8650
|
e: void 0,
|
|
@@ -8560,9 +8673,9 @@ var IterationCard = (props) => {
|
|
|
8560
8673
|
})
|
|
8561
8674
|
}), null);
|
|
8562
8675
|
effect((_p$) => {
|
|
8563
|
-
var _v$
|
|
8564
|
-
_v$
|
|
8565
|
-
_v$
|
|
8676
|
+
var _v$43 = s().configPanelSection, _v$44 = s().configPanelLabel;
|
|
8677
|
+
_v$43 !== _p$.e && className(_el$84, _p$.e = _v$43);
|
|
8678
|
+
_v$44 !== _p$.t && className(_el$85, _p$.t = _v$44);
|
|
8566
8679
|
return _p$;
|
|
8567
8680
|
}, {
|
|
8568
8681
|
e: void 0,
|
|
@@ -8585,10 +8698,10 @@ var IterationCard = (props) => {
|
|
|
8585
8698
|
copyable: true
|
|
8586
8699
|
}));
|
|
8587
8700
|
effect((_p$) => {
|
|
8588
|
-
var _v$
|
|
8589
|
-
_v$
|
|
8590
|
-
_v$
|
|
8591
|
-
_v$
|
|
8701
|
+
var _v$45 = s().configPanelSection, _v$46 = s().configPanelLabel, _v$47 = s().configJsonTreeContainer;
|
|
8702
|
+
_v$45 !== _p$.e && className(_el$89, _p$.e = _v$45);
|
|
8703
|
+
_v$46 !== _p$.t && className(_el$90, _p$.t = _v$46);
|
|
8704
|
+
_v$47 !== _p$.a && className(_el$91, _p$.a = _v$47);
|
|
8592
8705
|
return _p$;
|
|
8593
8706
|
}, {
|
|
8594
8707
|
e: void 0,
|
|
@@ -8690,16 +8803,16 @@ var IterationCard = (props) => {
|
|
|
8690
8803
|
})
|
|
8691
8804
|
}));
|
|
8692
8805
|
effect((_p$) => {
|
|
8693
|
-
var _v$
|
|
8694
|
-
_v$
|
|
8695
|
-
_v$
|
|
8696
|
-
_v$
|
|
8697
|
-
_v$
|
|
8698
|
-
_v$
|
|
8699
|
-
_v$
|
|
8700
|
-
_v$
|
|
8701
|
-
_v$
|
|
8702
|
-
_v$
|
|
8806
|
+
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;
|
|
8807
|
+
_v$48 !== _p$.e && className(_el$54, _p$.e = _v$48);
|
|
8808
|
+
_v$49 !== _p$.t && className(_el$55, _p$.t = _v$49);
|
|
8809
|
+
_v$50 !== _p$.a && className(_el$56, _p$.a = _v$50);
|
|
8810
|
+
_v$51 !== _p$.o && className(_el$67, _p$.o = _v$51);
|
|
8811
|
+
_v$52 !== _p$.i && className(_el$74, _p$.i = _v$52);
|
|
8812
|
+
_v$53 !== _p$.n && className(_el$75, _p$.n = _v$53);
|
|
8813
|
+
_v$54 !== _p$.s && className(_el$76, _p$.s = _v$54);
|
|
8814
|
+
_v$55 !== _p$.h && className(_el$92, _p$.h = _v$55);
|
|
8815
|
+
_v$56 !== _p$.r && className(_el$93, _p$.r = _v$56);
|
|
8703
8816
|
return _p$;
|
|
8704
8817
|
}, {
|
|
8705
8818
|
e: void 0,
|
|
@@ -10962,13 +11075,310 @@ var MemoryPanel = () => {
|
|
|
10962
11075
|
})();
|
|
10963
11076
|
};
|
|
10964
11077
|
delegateEvents(["click"]);
|
|
10965
|
-
var _tmpl$40 = /* @__PURE__ */ template(`<
|
|
10966
|
-
var _tmpl$214 = /* @__PURE__ */ template(`<div
|
|
10967
|
-
var _tmpl$310 = /* @__PURE__ */ template(`<div
|
|
10968
|
-
var _tmpl$47 = /* @__PURE__ */ template(`<
|
|
10969
|
-
var _tmpl$57 = /* @__PURE__ */ template(`<
|
|
10970
|
-
var _tmpl$67 = /* @__PURE__ */ template(`<span>
|
|
10971
|
-
var _tmpl$77 = /* @__PURE__ */ template(`<
|
|
11078
|
+
var _tmpl$40 = /* @__PURE__ */ template(`<div><div></div><div>`);
|
|
11079
|
+
var _tmpl$214 = /* @__PURE__ */ template(`<div>`);
|
|
11080
|
+
var _tmpl$310 = /* @__PURE__ */ template(`<div><div> (<!>)`);
|
|
11081
|
+
var _tmpl$47 = /* @__PURE__ */ template(`<span> \u2192 <!> tok`);
|
|
11082
|
+
var _tmpl$57 = /* @__PURE__ */ template(`<span>ms`);
|
|
11083
|
+
var _tmpl$67 = /* @__PURE__ */ template(`<span>checkpoint`);
|
|
11084
|
+
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`);
|
|
11085
|
+
var _tmpl$87 = /* @__PURE__ */ template(`<div><span> event</span><button type=button>Clear`);
|
|
11086
|
+
var _tmpl$97 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-compaction-panel>`);
|
|
11087
|
+
var _tmpl$06 = /* @__PURE__ */ template(`<div>No compaction yet. When the transcript passes maxTokens, each compact appears here.`);
|
|
11088
|
+
function formatTime3(value) {
|
|
11089
|
+
const date = new Date(value);
|
|
11090
|
+
if (Number.isNaN(date.getTime())) return "";
|
|
11091
|
+
return date.toLocaleTimeString();
|
|
11092
|
+
}
|
|
11093
|
+
function shortStrategy(event) {
|
|
11094
|
+
const key = event.strategyKey;
|
|
11095
|
+
if (!key) return event.reusedCheckpoint ? "checkpoint" : "compaction";
|
|
11096
|
+
const cut = key.indexOf(":maxTokens=");
|
|
11097
|
+
return cut === -1 ? key : key.slice(0, cut);
|
|
11098
|
+
}
|
|
11099
|
+
var PreviewMessage = (props) => {
|
|
11100
|
+
const styles = useStyles();
|
|
11101
|
+
return (() => {
|
|
11102
|
+
var _el$ = _tmpl$40(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
11103
|
+
insert(_el$2, () => props.preview.role, null);
|
|
11104
|
+
insert(_el$2, createComponent(Show, {
|
|
11105
|
+
get when() {
|
|
11106
|
+
return props.preview.tokens > 0;
|
|
11107
|
+
},
|
|
11108
|
+
get children() {
|
|
11109
|
+
return ` \xB7 ${props.preview.tokens} tok`;
|
|
11110
|
+
}
|
|
11111
|
+
}), null);
|
|
11112
|
+
insert(_el$3, () => props.preview.text);
|
|
11113
|
+
effect((_p$) => {
|
|
11114
|
+
var _v$ = styles().hookDetails.message, _v$2 = styles().hookDetails.messageRole, _v$3 = styles().hookDetails.messageContent;
|
|
11115
|
+
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
11116
|
+
_v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
|
|
11117
|
+
_v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
|
|
11118
|
+
return _p$;
|
|
11119
|
+
}, {
|
|
11120
|
+
e: void 0,
|
|
11121
|
+
t: void 0,
|
|
11122
|
+
a: void 0
|
|
11123
|
+
});
|
|
11124
|
+
return _el$;
|
|
11125
|
+
})();
|
|
11126
|
+
};
|
|
11127
|
+
var PreviewColumn = (props) => {
|
|
11128
|
+
const styles = useStyles();
|
|
11129
|
+
const s = () => styles().iterationTimeline;
|
|
11130
|
+
return (() => {
|
|
11131
|
+
var _el$4 = _tmpl$310(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$8 = _el$6.nextSibling; _el$8.nextSibling;
|
|
11132
|
+
insert(_el$5, () => props.title, _el$6);
|
|
11133
|
+
insert(_el$5, () => props.previews.length, _el$8);
|
|
11134
|
+
insert(_el$4, createComponent(Show, {
|
|
11135
|
+
get when() {
|
|
11136
|
+
return props.previews.length > 0;
|
|
11137
|
+
},
|
|
11138
|
+
get fallback() {
|
|
11139
|
+
return (() => {
|
|
11140
|
+
var _el$0 = _tmpl$214();
|
|
11141
|
+
insert(_el$0, () => props.empty);
|
|
11142
|
+
effect(() => className(_el$0, styles().hookDetails.emptySmall));
|
|
11143
|
+
return _el$0;
|
|
11144
|
+
})();
|
|
11145
|
+
},
|
|
11146
|
+
get children() {
|
|
11147
|
+
var _el$9 = _tmpl$214();
|
|
11148
|
+
insert(_el$9, createComponent(For, {
|
|
11149
|
+
get each() {
|
|
11150
|
+
return props.previews;
|
|
11151
|
+
},
|
|
11152
|
+
children: (preview) => createComponent(PreviewMessage, {
|
|
11153
|
+
preview
|
|
11154
|
+
})
|
|
11155
|
+
}));
|
|
11156
|
+
effect(() => className(_el$9, styles().memoryPanel.list));
|
|
11157
|
+
return _el$9;
|
|
11158
|
+
}
|
|
11159
|
+
}), null);
|
|
11160
|
+
effect((_p$) => {
|
|
11161
|
+
var _v$4 = s().stepJsonItem, _v$5 = s().stepJsonItemLabel;
|
|
11162
|
+
_v$4 !== _p$.e && className(_el$4, _p$.e = _v$4);
|
|
11163
|
+
_v$5 !== _p$.t && className(_el$5, _p$.t = _v$5);
|
|
11164
|
+
return _p$;
|
|
11165
|
+
}, {
|
|
11166
|
+
e: void 0,
|
|
11167
|
+
t: void 0
|
|
11168
|
+
});
|
|
11169
|
+
return _el$4;
|
|
11170
|
+
})();
|
|
11171
|
+
};
|
|
11172
|
+
function kindLabel(kind) {
|
|
11173
|
+
if (kind === "started") return "Started";
|
|
11174
|
+
if (kind === "ended") return "Ended";
|
|
11175
|
+
return "State";
|
|
11176
|
+
}
|
|
11177
|
+
var CompactEvent = (props) => {
|
|
11178
|
+
const styles = useStyles();
|
|
11179
|
+
const s = () => styles().iterationTimeline;
|
|
11180
|
+
const [expanded, setExpanded] = createSignal(props.defaultOpen === true);
|
|
11181
|
+
const event = () => props.event;
|
|
11182
|
+
const isState = () => event().kind === "state";
|
|
11183
|
+
const stats = () => ({
|
|
11184
|
+
kind: event().kind,
|
|
11185
|
+
before: event().before,
|
|
11186
|
+
after: event().after,
|
|
11187
|
+
messagesBefore: event().messagesBefore,
|
|
11188
|
+
messagesAfter: event().messagesAfter,
|
|
11189
|
+
maxTokens: event().maxTokens,
|
|
11190
|
+
strategyKey: event().strategyKey,
|
|
11191
|
+
reusedCheckpoint: event().reusedCheckpoint,
|
|
11192
|
+
durationMs: event().durationMs
|
|
11193
|
+
});
|
|
11194
|
+
const countLabel = () => {
|
|
11195
|
+
if (event().kind === "started") {
|
|
11196
|
+
return `${event().messagesBefore ?? 0} msgs \xB7 ${event().before ?? 0} tok`;
|
|
11197
|
+
}
|
|
11198
|
+
if (event().kind === "ended") {
|
|
11199
|
+
return `${event().messagesAfter ?? 0} msgs \xB7 ${event().after ?? 0} tok`;
|
|
11200
|
+
}
|
|
11201
|
+
return `${event().messagesBefore ?? 0} \u2192 ${event().messagesAfter ?? 0} msgs`;
|
|
11202
|
+
};
|
|
11203
|
+
return [(() => {
|
|
11204
|
+
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;
|
|
11205
|
+
_el$1.$$click = () => setExpanded(!expanded());
|
|
11206
|
+
insert(_el$10, () => kindLabel(event().kind));
|
|
11207
|
+
insert(_el$11, () => shortStrategy(event()));
|
|
11208
|
+
insert(_el$12, countLabel);
|
|
11209
|
+
insert(_el$1, createComponent(Show, {
|
|
11210
|
+
get when() {
|
|
11211
|
+
return event().kind === "state";
|
|
11212
|
+
},
|
|
11213
|
+
get children() {
|
|
11214
|
+
var _el$13 = _tmpl$47(), _el$14 = _el$13.firstChild, _el$16 = _el$14.nextSibling; _el$16.nextSibling;
|
|
11215
|
+
insert(_el$13, () => event().before, _el$14);
|
|
11216
|
+
insert(_el$13, () => event().after, _el$16);
|
|
11217
|
+
effect(() => className(_el$13, s().stepDuration));
|
|
11218
|
+
return _el$13;
|
|
11219
|
+
}
|
|
11220
|
+
}), _el$20);
|
|
11221
|
+
insert(_el$1, createComponent(Show, {
|
|
11222
|
+
get when() {
|
|
11223
|
+
return event().durationMs !== void 0;
|
|
11224
|
+
},
|
|
11225
|
+
get children() {
|
|
11226
|
+
var _el$17 = _tmpl$57(), _el$18 = _el$17.firstChild;
|
|
11227
|
+
insert(_el$17, () => event().durationMs, _el$18);
|
|
11228
|
+
effect(() => className(_el$17, s().stepDuration));
|
|
11229
|
+
return _el$17;
|
|
11230
|
+
}
|
|
11231
|
+
}), _el$20);
|
|
11232
|
+
insert(_el$1, createComponent(Show, {
|
|
11233
|
+
get when() {
|
|
11234
|
+
return event().reusedCheckpoint;
|
|
11235
|
+
},
|
|
11236
|
+
get children() {
|
|
11237
|
+
var _el$19 = _tmpl$67();
|
|
11238
|
+
effect(() => className(_el$19, s().mwSuffix));
|
|
11239
|
+
return _el$19;
|
|
11240
|
+
}
|
|
11241
|
+
}), _el$20);
|
|
11242
|
+
insert(_el$20, () => formatTime3(event().timestamp));
|
|
11243
|
+
effect((_p$) => {
|
|
11244
|
+
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 : ""}`;
|
|
11245
|
+
_v$6 !== _p$.e && className(_el$1, _p$.e = _v$6);
|
|
11246
|
+
_v$7 !== _p$.t && setAttribute(_el$1, "data-kind", _p$.t = _v$7);
|
|
11247
|
+
_v$8 !== _p$.a && className(_el$10, _p$.a = _v$8);
|
|
11248
|
+
_v$9 !== _p$.o && className(_el$11, _p$.o = _v$9);
|
|
11249
|
+
_v$0 !== _p$.i && className(_el$12, _p$.i = _v$0);
|
|
11250
|
+
_v$1 !== _p$.n && className(_el$20, _p$.n = _v$1);
|
|
11251
|
+
_v$10 !== _p$.s && className(_el$21, _p$.s = _v$10);
|
|
11252
|
+
return _p$;
|
|
11253
|
+
}, {
|
|
11254
|
+
e: void 0,
|
|
11255
|
+
t: void 0,
|
|
11256
|
+
a: void 0,
|
|
11257
|
+
o: void 0,
|
|
11258
|
+
i: void 0,
|
|
11259
|
+
n: void 0,
|
|
11260
|
+
s: void 0
|
|
11261
|
+
});
|
|
11262
|
+
return _el$1;
|
|
11263
|
+
})(), createComponent(Show, {
|
|
11264
|
+
get when() {
|
|
11265
|
+
return expanded();
|
|
11266
|
+
},
|
|
11267
|
+
get children() {
|
|
11268
|
+
return [(() => {
|
|
11269
|
+
var _el$22 = _tmpl$214();
|
|
11270
|
+
insert(_el$22, createComponent(JsonTree, {
|
|
11271
|
+
get value() {
|
|
11272
|
+
return stats();
|
|
11273
|
+
},
|
|
11274
|
+
defaultExpansionDepth: 1,
|
|
11275
|
+
copyable: true
|
|
11276
|
+
}));
|
|
11277
|
+
effect(() => className(_el$22, s().mwChangesContainer));
|
|
11278
|
+
return _el$22;
|
|
11279
|
+
})(), createComponent(Show, {
|
|
11280
|
+
get when() {
|
|
11281
|
+
return isState();
|
|
11282
|
+
},
|
|
11283
|
+
get children() {
|
|
11284
|
+
var _el$23 = _tmpl$214();
|
|
11285
|
+
insert(_el$23, createComponent(PreviewColumn, {
|
|
11286
|
+
title: "Dropped",
|
|
11287
|
+
get previews() {
|
|
11288
|
+
return event().dropped ?? [];
|
|
11289
|
+
},
|
|
11290
|
+
empty: "Nothing was dropped."
|
|
11291
|
+
}), null);
|
|
11292
|
+
insert(_el$23, createComponent(PreviewColumn, {
|
|
11293
|
+
title: "Sent to model",
|
|
11294
|
+
get previews() {
|
|
11295
|
+
return event().result ?? [];
|
|
11296
|
+
},
|
|
11297
|
+
empty: "No compacted transcript on this event."
|
|
11298
|
+
}), null);
|
|
11299
|
+
effect(() => className(_el$23, s().stepJsonItemsCompare));
|
|
11300
|
+
return _el$23;
|
|
11301
|
+
}
|
|
11302
|
+
})];
|
|
11303
|
+
}
|
|
11304
|
+
})];
|
|
11305
|
+
};
|
|
11306
|
+
var CompactionPanel = (props) => {
|
|
11307
|
+
const {
|
|
11308
|
+
state,
|
|
11309
|
+
clearCompaction
|
|
11310
|
+
} = useAIStore();
|
|
11311
|
+
const styles = useStyles();
|
|
11312
|
+
const s = () => styles().iterationTimeline;
|
|
11313
|
+
const events = createMemo(() => compactionEventsForHook(state.compaction, props.hook));
|
|
11314
|
+
const lastStateIndex = createMemo(() => {
|
|
11315
|
+
const list = events();
|
|
11316
|
+
for (let i = list.length - 1; i >= 0; i--) {
|
|
11317
|
+
if (list[i]?.kind === "state") return i;
|
|
11318
|
+
}
|
|
11319
|
+
return -1;
|
|
11320
|
+
});
|
|
11321
|
+
return (() => {
|
|
11322
|
+
var _el$24 = _tmpl$97();
|
|
11323
|
+
insert(_el$24, createComponent(Show, {
|
|
11324
|
+
get when() {
|
|
11325
|
+
return events().length > 0;
|
|
11326
|
+
},
|
|
11327
|
+
get fallback() {
|
|
11328
|
+
return (() => {
|
|
11329
|
+
var _el$30 = _tmpl$06();
|
|
11330
|
+
effect(() => className(_el$30, styles().hookDetails.emptySmall));
|
|
11331
|
+
return _el$30;
|
|
11332
|
+
})();
|
|
11333
|
+
},
|
|
11334
|
+
get children() {
|
|
11335
|
+
return [(() => {
|
|
11336
|
+
var _el$25 = _tmpl$87(), _el$26 = _el$25.firstChild, _el$27 = _el$26.firstChild, _el$28 = _el$26.nextSibling;
|
|
11337
|
+
insert(_el$26, () => events().length, _el$27);
|
|
11338
|
+
insert(_el$26, () => events().length === 1 ? "" : "s", null);
|
|
11339
|
+
_el$28.$$click = () => clearCompaction();
|
|
11340
|
+
effect((_p$) => {
|
|
11341
|
+
var _v$11 = styles().memoryPanel.toolbar, _v$12 = styles().memoryPanel.badge, _v$13 = styles().memoryPanel.clearButton;
|
|
11342
|
+
_v$11 !== _p$.e && className(_el$25, _p$.e = _v$11);
|
|
11343
|
+
_v$12 !== _p$.t && className(_el$26, _p$.t = _v$12);
|
|
11344
|
+
_v$13 !== _p$.a && className(_el$28, _p$.a = _v$13);
|
|
11345
|
+
return _p$;
|
|
11346
|
+
}, {
|
|
11347
|
+
e: void 0,
|
|
11348
|
+
t: void 0,
|
|
11349
|
+
a: void 0
|
|
11350
|
+
});
|
|
11351
|
+
return _el$25;
|
|
11352
|
+
})(), (() => {
|
|
11353
|
+
var _el$29 = _tmpl$214();
|
|
11354
|
+
insert(_el$29, createComponent(For, {
|
|
11355
|
+
get each() {
|
|
11356
|
+
return events();
|
|
11357
|
+
},
|
|
11358
|
+
children: (event, index) => createComponent(CompactEvent, {
|
|
11359
|
+
event,
|
|
11360
|
+
get defaultOpen() {
|
|
11361
|
+
return memo(() => event.kind === "state")() && index() === lastStateIndex();
|
|
11362
|
+
}
|
|
11363
|
+
})
|
|
11364
|
+
}));
|
|
11365
|
+
effect(() => className(_el$29, s().iterCard));
|
|
11366
|
+
return _el$29;
|
|
11367
|
+
})()];
|
|
11368
|
+
}
|
|
11369
|
+
}));
|
|
11370
|
+
effect(() => className(_el$24, styles().memoryPanel.container));
|
|
11371
|
+
return _el$24;
|
|
11372
|
+
})();
|
|
11373
|
+
};
|
|
11374
|
+
delegateEvents(["click"]);
|
|
11375
|
+
var _tmpl$41 = /* @__PURE__ */ template(`<ul>`);
|
|
11376
|
+
var _tmpl$215 = /* @__PURE__ */ template(`<div><div>Catalog`);
|
|
11377
|
+
var _tmpl$311 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-skills-panel>`);
|
|
11378
|
+
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\`.`);
|
|
11379
|
+
var _tmpl$58 = /* @__PURE__ */ template(`<div>Loaded via \`load_skill\`, but the catalog snapshot has not arrived yet.`);
|
|
11380
|
+
var _tmpl$68 = /* @__PURE__ */ template(`<span>loaded`);
|
|
11381
|
+
var _tmpl$78 = /* @__PURE__ */ template(`<li><span></span><span>`);
|
|
10972
11382
|
function parseSkillName(argumentsJson) {
|
|
10973
11383
|
if (!argumentsJson) return void 0;
|
|
10974
11384
|
try {
|
|
@@ -11026,33 +11436,33 @@ var SkillsPanel = () => {
|
|
|
11026
11436
|
});
|
|
11027
11437
|
const catalog = createMemo(() => snapshot()?.catalog ?? []);
|
|
11028
11438
|
return (() => {
|
|
11029
|
-
var _el$ = _tmpl$
|
|
11439
|
+
var _el$ = _tmpl$311();
|
|
11030
11440
|
insert(_el$, createComponent(Show, {
|
|
11031
11441
|
get when() {
|
|
11032
11442
|
return catalog().length > 0 || loaded().size > 0;
|
|
11033
11443
|
},
|
|
11034
11444
|
get fallback() {
|
|
11035
11445
|
return (() => {
|
|
11036
|
-
var _el$5 = _tmpl$
|
|
11446
|
+
var _el$5 = _tmpl$48();
|
|
11037
11447
|
effect(() => className(_el$5, styles().memoryPanel.empty));
|
|
11038
11448
|
return _el$5;
|
|
11039
11449
|
})();
|
|
11040
11450
|
},
|
|
11041
11451
|
get children() {
|
|
11042
|
-
var _el$2 = _tmpl$
|
|
11452
|
+
var _el$2 = _tmpl$215(), _el$3 = _el$2.firstChild;
|
|
11043
11453
|
insert(_el$2, createComponent(Show, {
|
|
11044
11454
|
get when() {
|
|
11045
11455
|
return catalog().length > 0;
|
|
11046
11456
|
},
|
|
11047
11457
|
get fallback() {
|
|
11048
11458
|
return (() => {
|
|
11049
|
-
var _el$6 = _tmpl$
|
|
11459
|
+
var _el$6 = _tmpl$58();
|
|
11050
11460
|
effect(() => className(_el$6, styles().memoryPanel.sectionEmpty));
|
|
11051
11461
|
return _el$6;
|
|
11052
11462
|
})();
|
|
11053
11463
|
},
|
|
11054
11464
|
get children() {
|
|
11055
|
-
var _el$4 = _tmpl$
|
|
11465
|
+
var _el$4 = _tmpl$41();
|
|
11056
11466
|
insert(_el$4, createComponent(For, {
|
|
11057
11467
|
get each() {
|
|
11058
11468
|
return catalog();
|
|
@@ -11060,14 +11470,14 @@ var SkillsPanel = () => {
|
|
|
11060
11470
|
children: (skill) => {
|
|
11061
11471
|
const isLoaded = () => loaded().has(skill.name);
|
|
11062
11472
|
return (() => {
|
|
11063
|
-
var _el$7 = _tmpl$
|
|
11473
|
+
var _el$7 = _tmpl$78(), _el$8 = _el$7.firstChild, _el$0 = _el$8.nextSibling;
|
|
11064
11474
|
insert(_el$8, () => skill.name);
|
|
11065
11475
|
insert(_el$7, createComponent(Show, {
|
|
11066
11476
|
get when() {
|
|
11067
11477
|
return isLoaded();
|
|
11068
11478
|
},
|
|
11069
11479
|
get children() {
|
|
11070
|
-
var _el$9 = _tmpl$
|
|
11480
|
+
var _el$9 = _tmpl$68();
|
|
11071
11481
|
effect(() => className(_el$9, styles().memoryPanel.badge));
|
|
11072
11482
|
return _el$9;
|
|
11073
11483
|
}
|
|
@@ -11110,16 +11520,16 @@ var SkillsPanel = () => {
|
|
|
11110
11520
|
};
|
|
11111
11521
|
|
|
11112
11522
|
// src/components/hooks/HookDetails.tsx
|
|
11113
|
-
var _tmpl$
|
|
11114
|
-
var _tmpl$
|
|
11115
|
-
var _tmpl$
|
|
11116
|
-
var _tmpl$
|
|
11117
|
-
var _tmpl$
|
|
11118
|
-
var _tmpl$
|
|
11119
|
-
var _tmpl$
|
|
11120
|
-
var _tmpl$
|
|
11121
|
-
var _tmpl$
|
|
11122
|
-
var _tmpl$
|
|
11523
|
+
var _tmpl$49 = /* @__PURE__ */ template(`<aside data-testid=ai-devtools-preview-pane><div>`);
|
|
11524
|
+
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>`);
|
|
11525
|
+
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>`);
|
|
11526
|
+
var _tmpl$410 = /* @__PURE__ */ template(`<div>Open a page with TanStack AI hooks to inspect live state.`);
|
|
11527
|
+
var _tmpl$59 = /* @__PURE__ */ template(`<section data-testid=ai-devtools-overview-category><div><span></span><span>`);
|
|
11528
|
+
var _tmpl$69 = /* @__PURE__ */ template(`<span>running`);
|
|
11529
|
+
var _tmpl$79 = /* @__PURE__ */ template(`<span> new`);
|
|
11530
|
+
var _tmpl$88 = /* @__PURE__ */ template(`<button type=button data-testid=ai-devtools-overview-hook><div><span></span><span></span></div><div><span>`);
|
|
11531
|
+
var _tmpl$98 = /* @__PURE__ */ template(`<div><span></span><span>`);
|
|
11532
|
+
var _tmpl$07 = /* @__PURE__ */ template(`<span>`);
|
|
11123
11533
|
var _tmpl$116 = /* @__PURE__ */ template(`<span data-testid=ai-devtools-hook-technical-name>`);
|
|
11124
11534
|
var _tmpl$106 = /* @__PURE__ */ template(`<span data-testid=ai-devtools-hook-registry-id>id `);
|
|
11125
11535
|
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>`);
|
|
@@ -11132,7 +11542,7 @@ var _tmpl$173 = /* @__PURE__ */ template(`<div><button type=button data-testid=a
|
|
|
11132
11542
|
var _tmpl$182 = /* @__PURE__ */ template(`<div><span>`);
|
|
11133
11543
|
var _tmpl$192 = /* @__PURE__ */ template(`<div><span></span><div>`);
|
|
11134
11544
|
var _tmpl$202 = /* @__PURE__ */ template(`<div>No messages yet. Start a conversation to see messages here.`);
|
|
11135
|
-
var _tmpl$
|
|
11545
|
+
var _tmpl$217 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-tools><div></div><div>`);
|
|
11136
11546
|
var _tmpl$223 = /* @__PURE__ */ template(`<div>No tools.`);
|
|
11137
11547
|
var _tmpl$232 = /* @__PURE__ */ template(`<span>approval`);
|
|
11138
11548
|
var _tmpl$242 = /* @__PURE__ */ template(`<button type=button data-testid=ai-devtools-tool-row><span>`);
|
|
@@ -11172,7 +11582,7 @@ var HookDetails = () => {
|
|
|
11172
11582
|
return Boolean(outputKind && outputKind !== "chat" && outputKind !== "structured");
|
|
11173
11583
|
});
|
|
11174
11584
|
createEffect(() => {
|
|
11175
|
-
if (isGenerationHook() && (activeTab() === "tools" || activeTab() === "memory" || activeTab() === "skills")) {
|
|
11585
|
+
if (isGenerationHook() && (activeTab() === "tools" || activeTab() === "memory" || activeTab() === "compaction" || activeTab() === "skills")) {
|
|
11176
11586
|
setActiveTab("conversation");
|
|
11177
11587
|
}
|
|
11178
11588
|
});
|
|
@@ -11210,14 +11620,15 @@ var HookDetails = () => {
|
|
|
11210
11620
|
return createComponent(HookOverview, {
|
|
11211
11621
|
onSelectHook: (selectedHook) => {
|
|
11212
11622
|
selectHook(selectedHook.id);
|
|
11213
|
-
|
|
11214
|
-
|
|
11623
|
+
const conversationId = selectedHook.id || selectedHook.clientId || selectedHook.threadId;
|
|
11624
|
+
if (conversationId && state.conversations[conversationId]) {
|
|
11625
|
+
selectConversation(conversationId);
|
|
11215
11626
|
}
|
|
11216
11627
|
}
|
|
11217
11628
|
});
|
|
11218
11629
|
},
|
|
11219
11630
|
children: (activeHook) => (() => {
|
|
11220
|
-
var _el$ = _tmpl$
|
|
11631
|
+
var _el$ = _tmpl$216(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
|
|
11221
11632
|
insert(_el$, createComponent(HookHeader, {
|
|
11222
11633
|
get hook() {
|
|
11223
11634
|
return activeHook();
|
|
@@ -11280,6 +11691,13 @@ var HookDetails = () => {
|
|
|
11280
11691
|
return activeTab();
|
|
11281
11692
|
},
|
|
11282
11693
|
onSelect: setActiveTab
|
|
11694
|
+
}), createComponent(TabButton, {
|
|
11695
|
+
label: "Compaction",
|
|
11696
|
+
tab: "compaction",
|
|
11697
|
+
get activeTab() {
|
|
11698
|
+
return activeTab();
|
|
11699
|
+
},
|
|
11700
|
+
onSelect: setActiveTab
|
|
11283
11701
|
}), createComponent(TabButton, {
|
|
11284
11702
|
label: "Skills",
|
|
11285
11703
|
tab: "skills",
|
|
@@ -11366,6 +11784,18 @@ var HookDetails = () => {
|
|
|
11366
11784
|
return createComponent(MemoryPanel, {});
|
|
11367
11785
|
}
|
|
11368
11786
|
}), null);
|
|
11787
|
+
insert(_el$4, createComponent(Show, {
|
|
11788
|
+
get when() {
|
|
11789
|
+
return activeTab() === "compaction";
|
|
11790
|
+
},
|
|
11791
|
+
get children() {
|
|
11792
|
+
return createComponent(CompactionPanel, {
|
|
11793
|
+
get hook() {
|
|
11794
|
+
return activeHook();
|
|
11795
|
+
}
|
|
11796
|
+
});
|
|
11797
|
+
}
|
|
11798
|
+
}), null);
|
|
11369
11799
|
insert(_el$4, createComponent(Show, {
|
|
11370
11800
|
get when() {
|
|
11371
11801
|
return activeTab() === "skills";
|
|
@@ -11379,7 +11809,7 @@ var HookDetails = () => {
|
|
|
11379
11809
|
return showSecondaryPane();
|
|
11380
11810
|
},
|
|
11381
11811
|
get children() {
|
|
11382
|
-
var _el$5 = _tmpl$
|
|
11812
|
+
var _el$5 = _tmpl$49(), _el$6 = _el$5.firstChild;
|
|
11383
11813
|
_el$5.addEventListener("mouseleave", () => setHoverTarget(null));
|
|
11384
11814
|
_el$5.$$mouseover = (event) => setHoverTargetFromEvent(event, "preview", setHoverTarget);
|
|
11385
11815
|
use((el) => {
|
|
@@ -11460,13 +11890,13 @@ var HookOverview = (props) => {
|
|
|
11460
11890
|
},
|
|
11461
11891
|
get fallback() {
|
|
11462
11892
|
return (() => {
|
|
11463
|
-
var _el$12 = _tmpl$
|
|
11893
|
+
var _el$12 = _tmpl$410();
|
|
11464
11894
|
effect(() => className(_el$12, styles().hookDetails.empty));
|
|
11465
11895
|
return _el$12;
|
|
11466
11896
|
})();
|
|
11467
11897
|
},
|
|
11468
11898
|
get children() {
|
|
11469
|
-
var _el$7 = _tmpl$
|
|
11899
|
+
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;
|
|
11470
11900
|
insert(_el$10, createComponent(OverviewMetric, {
|
|
11471
11901
|
label: "active hooks",
|
|
11472
11902
|
get value() {
|
|
@@ -11520,7 +11950,7 @@ var HookOverview = (props) => {
|
|
|
11520
11950
|
return groups();
|
|
11521
11951
|
},
|
|
11522
11952
|
children: (group) => (() => {
|
|
11523
|
-
var _el$13 = _tmpl$
|
|
11953
|
+
var _el$13 = _tmpl$59(), _el$14 = _el$13.firstChild, _el$15 = _el$14.firstChild, _el$16 = _el$15.nextSibling;
|
|
11524
11954
|
insert(_el$15, () => group.label);
|
|
11525
11955
|
insert(_el$16, () => group.hooks.length);
|
|
11526
11956
|
insert(_el$13, createComponent(For, {
|
|
@@ -11531,7 +11961,7 @@ var HookOverview = (props) => {
|
|
|
11531
11961
|
const running = createMemo(() => isHookRunning(hook, state.hooks.runs));
|
|
11532
11962
|
const unseenCount = createMemo(() => getHookUnseenEventCount(state.hooks, hook.id));
|
|
11533
11963
|
return (() => {
|
|
11534
|
-
var _el$17 = _tmpl$
|
|
11964
|
+
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;
|
|
11535
11965
|
_el$17.$$click = () => props.onSelectHook(hook);
|
|
11536
11966
|
insert(_el$19, () => getHookDisplayName(hook));
|
|
11537
11967
|
insert(_el$20, () => getHookIdentitySubtitle(hook));
|
|
@@ -11541,7 +11971,7 @@ var HookOverview = (props) => {
|
|
|
11541
11971
|
return running();
|
|
11542
11972
|
},
|
|
11543
11973
|
get children() {
|
|
11544
|
-
var _el$23 = _tmpl$
|
|
11974
|
+
var _el$23 = _tmpl$69();
|
|
11545
11975
|
effect(() => className(_el$23, styles().hookDetails.lifecycle));
|
|
11546
11976
|
return _el$23;
|
|
11547
11977
|
}
|
|
@@ -11551,7 +11981,7 @@ var HookOverview = (props) => {
|
|
|
11551
11981
|
return unseenCount() > 0;
|
|
11552
11982
|
},
|
|
11553
11983
|
get children() {
|
|
11554
|
-
var _el$24 = _tmpl$
|
|
11984
|
+
var _el$24 = _tmpl$79(), _el$25 = _el$24.firstChild;
|
|
11555
11985
|
insert(_el$24, unseenCount, _el$25);
|
|
11556
11986
|
effect(() => className(_el$24, styles().hookDetails.kind));
|
|
11557
11987
|
return _el$24;
|
|
@@ -11622,7 +12052,7 @@ var HookOverview = (props) => {
|
|
|
11622
12052
|
var OverviewMetric = (props) => {
|
|
11623
12053
|
const styles = useStyles();
|
|
11624
12054
|
return (() => {
|
|
11625
|
-
var _el$26 = _tmpl$
|
|
12055
|
+
var _el$26 = _tmpl$98(), _el$27 = _el$26.firstChild, _el$28 = _el$27.nextSibling;
|
|
11626
12056
|
insert(_el$27, () => props.value);
|
|
11627
12057
|
insert(_el$28, () => props.label);
|
|
11628
12058
|
effect((_p$) => {
|
|
@@ -11650,7 +12080,7 @@ var HookHeader = (props) => {
|
|
|
11650
12080
|
return props.hook.outputKind;
|
|
11651
12081
|
},
|
|
11652
12082
|
get children() {
|
|
11653
|
-
var _el$34 = _tmpl$
|
|
12083
|
+
var _el$34 = _tmpl$07();
|
|
11654
12084
|
insert(_el$34, () => props.hook.outputKind);
|
|
11655
12085
|
effect(() => className(_el$34, styles().hookDetails.kind));
|
|
11656
12086
|
return _el$34;
|
|
@@ -11685,7 +12115,7 @@ var HookHeader = (props) => {
|
|
|
11685
12115
|
return props.hook.framework;
|
|
11686
12116
|
},
|
|
11687
12117
|
get children() {
|
|
11688
|
-
var _el$40 = _tmpl$
|
|
12118
|
+
var _el$40 = _tmpl$07();
|
|
11689
12119
|
insert(_el$40, () => props.hook.framework);
|
|
11690
12120
|
return _el$40;
|
|
11691
12121
|
}
|
|
@@ -11754,7 +12184,7 @@ var HookHeader = (props) => {
|
|
|
11754
12184
|
var Metric = (props) => {
|
|
11755
12185
|
const styles = useStyles();
|
|
11756
12186
|
return (() => {
|
|
11757
|
-
var _el$42 = _tmpl$
|
|
12187
|
+
var _el$42 = _tmpl$98(), _el$43 = _el$42.firstChild, _el$44 = _el$43.nextSibling;
|
|
11758
12188
|
insert(_el$43, () => props.value);
|
|
11759
12189
|
insert(_el$44, () => props.label);
|
|
11760
12190
|
effect((_p$) => {
|
|
@@ -12046,7 +12476,7 @@ var MessagesPreview = (props) => {
|
|
|
12046
12476
|
},
|
|
12047
12477
|
get fallback() {
|
|
12048
12478
|
return (() => {
|
|
12049
|
-
var _el$60 = _tmpl$
|
|
12479
|
+
var _el$60 = _tmpl$07();
|
|
12050
12480
|
insert(_el$60, () => part.content);
|
|
12051
12481
|
effect(() => className(_el$60, styles().hookDetails.previewPartContent));
|
|
12052
12482
|
return _el$60;
|
|
@@ -12180,7 +12610,7 @@ var HookMessageTimeline = (props) => {
|
|
|
12180
12610
|
},
|
|
12181
12611
|
get fallback() {
|
|
12182
12612
|
return (() => {
|
|
12183
|
-
var _el$72 = _tmpl$
|
|
12613
|
+
var _el$72 = _tmpl$07();
|
|
12184
12614
|
insert(_el$72, () => part.content);
|
|
12185
12615
|
effect(() => className(_el$72, styles().hookDetails.previewPartContent));
|
|
12186
12616
|
return _el$72;
|
|
@@ -12244,7 +12674,7 @@ var ToolsView = (props) => {
|
|
|
12244
12674
|
const selectedTool = createMemo(() => props.hook.tools.find((tool) => tool.name === selectedToolName()));
|
|
12245
12675
|
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));
|
|
12246
12676
|
return (() => {
|
|
12247
|
-
var _el$76 = _tmpl$
|
|
12677
|
+
var _el$76 = _tmpl$217(), _el$77 = _el$76.firstChild, _el$78 = _el$77.nextSibling;
|
|
12248
12678
|
insert(_el$77, createComponent(Show, {
|
|
12249
12679
|
get when() {
|
|
12250
12680
|
return props.hook.tools.length > 0;
|
|
@@ -12335,7 +12765,7 @@ var ToolsView = (props) => {
|
|
|
12335
12765
|
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;
|
|
12336
12766
|
insert(_el$89, () => fixture.name ?? fixture.toolName);
|
|
12337
12767
|
insert(_el$90, () => fixture.toolName, _el$91);
|
|
12338
|
-
insert(_el$90, () =>
|
|
12768
|
+
insert(_el$90, () => formatTime4(fixture.createdAt), null);
|
|
12339
12769
|
_el$93.$$click = () => applyToolFixture(fixture);
|
|
12340
12770
|
_el$94.$$click = () => deleteToolFixture(fixture.id);
|
|
12341
12771
|
effect((_p$) => {
|
|
@@ -12835,13 +13265,13 @@ function jsonSafeValue(value) {
|
|
|
12835
13265
|
return `[ai-devtools] unserializable value: ${error instanceof Error ? error.message : String(error)}`;
|
|
12836
13266
|
}
|
|
12837
13267
|
}
|
|
12838
|
-
function
|
|
13268
|
+
function formatTime4(timestamp) {
|
|
12839
13269
|
return new Date(timestamp).toLocaleTimeString();
|
|
12840
13270
|
}
|
|
12841
13271
|
delegateEvents(["mouseover", "click"]);
|
|
12842
13272
|
|
|
12843
13273
|
// src/components/Shell.tsx
|
|
12844
|
-
var _tmpl$
|
|
13274
|
+
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>`);
|
|
12845
13275
|
function Devtools(props) {
|
|
12846
13276
|
return createComponent(ThemeContextProvider, {
|
|
12847
13277
|
get theme() {
|
|
@@ -12923,7 +13353,7 @@ function DevtoolsContent() {
|
|
|
12923
13353
|
});
|
|
12924
13354
|
return createComponent(MainPanel, {
|
|
12925
13355
|
get children() {
|
|
12926
|
-
var _el$ = _tmpl$
|
|
13356
|
+
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;
|
|
12927
13357
|
insert(_el$, createComponent(Header, {
|
|
12928
13358
|
get children() {
|
|
12929
13359
|
return createComponent(HeaderLogo, {
|