@tanstack/ai-devtools-core 0.5.9 → 0.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Shell/{G2SFOZV2.js → 2X67PB7B.js} +169 -27
- package/dist/{production/Shell/WD22ACIB.js → Shell/BJP2PZMD.js} +216 -27
- package/dist/Shell/{DRZSZBFE.js → YJTEAPIF.js} +216 -27
- package/dist/dev.js +1 -1
- package/dist/index.js +1 -1
- package/dist/production/Shell/{G2SFOZV2.js → 2X67PB7B.js} +169 -27
- package/dist/{Shell/WD22ACIB.js → production/Shell/BJP2PZMD.js} +216 -27
- package/dist/production/Shell/{DRZSZBFE.js → YJTEAPIF.js} +216 -27
- 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/hooks/HookDetails.tsx +23 -4
- package/src/components/hooks/SkillsPanel.tsx +125 -0
- package/src/components/hooks/index.ts +1 -0
- package/src/store/ai-context.tsx +27 -0
- package/src/store/skills-registry.ts +50 -0
- package/src/styles/use-styles.ts +1 -3
|
@@ -1999,7 +1999,6 @@ var stylesFactory = (theme) => {
|
|
|
1999
1999
|
border: 1px solid ${t(colors.gray[200], colors.darkGray[600])};
|
|
2000
2000
|
border-radius: ${border.radius.sm};
|
|
2001
2001
|
background: ${t(colors.white, colors.darkGray[900])};
|
|
2002
|
-
min-height: 260px;
|
|
2003
2002
|
max-height: 420px;
|
|
2004
2003
|
overflow: auto;
|
|
2005
2004
|
padding: ${size[2]} ${size[2]} ${size[2]} ${size[5]};
|
|
@@ -2874,7 +2873,7 @@ var stylesFactory = (theme) => {
|
|
|
2874
2873
|
gap: ${size[3]};
|
|
2875
2874
|
align-items: start;
|
|
2876
2875
|
& > * {
|
|
2877
|
-
|
|
2876
|
+
max-height: 420px;
|
|
2878
2877
|
border: 1px solid oklch(0.28 0.03 260);
|
|
2879
2878
|
border-radius: 6px;
|
|
2880
2879
|
background: oklch(0.18 0.02 260);
|
|
@@ -3935,7 +3934,6 @@ var stylesFactory = (theme) => {
|
|
|
3935
3934
|
`,
|
|
3936
3935
|
stepJsonPanel: css2`
|
|
3937
3936
|
margin: ${size[1.5]} ${size[3]};
|
|
3938
|
-
min-height: 280px;
|
|
3939
3937
|
max-height: 520px;
|
|
3940
3938
|
overflow: auto;
|
|
3941
3939
|
padding: ${size[2]} ${size[2]} ${size[2]} ${size[5]};
|
|
@@ -4764,6 +4762,24 @@ function clearMemoryRegistry(state) {
|
|
|
4764
4762
|
state.scopes = {};
|
|
4765
4763
|
}
|
|
4766
4764
|
|
|
4765
|
+
// src/store/skills-registry.ts
|
|
4766
|
+
function createSkillsRegistryState() {
|
|
4767
|
+
return { snapshots: {} };
|
|
4768
|
+
}
|
|
4769
|
+
function clearSkillsRegistry(state) {
|
|
4770
|
+
state.snapshots = {};
|
|
4771
|
+
}
|
|
4772
|
+
function applySkillsSnapshot(state, payload) {
|
|
4773
|
+
const key = payload.hookId && payload.hookId.length > 0 ? payload.hookId : "_default";
|
|
4774
|
+
const catalog = Array.isArray(payload.catalog) ? payload.catalog : [];
|
|
4775
|
+
const activated = Array.isArray(payload.activated) ? payload.activated : [];
|
|
4776
|
+
state.snapshots[key] = {
|
|
4777
|
+
catalog,
|
|
4778
|
+
activated,
|
|
4779
|
+
updatedAt: payload.timestamp ?? Date.now()
|
|
4780
|
+
};
|
|
4781
|
+
}
|
|
4782
|
+
|
|
4767
4783
|
// src/store/ai-context.tsx
|
|
4768
4784
|
var AIContext = createContext();
|
|
4769
4785
|
function useAIStore() {
|
|
@@ -4778,7 +4794,8 @@ var AIProvider = (props) => {
|
|
|
4778
4794
|
conversations: {},
|
|
4779
4795
|
activeConversationId: null,
|
|
4780
4796
|
hooks: createHookRegistryState(),
|
|
4781
|
-
memory: createMemoryRegistryState()
|
|
4797
|
+
memory: createMemoryRegistryState(),
|
|
4798
|
+
skills: createSkillsRegistryState()
|
|
4782
4799
|
});
|
|
4783
4800
|
const streamToConversation = /* @__PURE__ */ new Map();
|
|
4784
4801
|
const requestToConversation = /* @__PURE__ */ new Map();
|
|
@@ -5035,6 +5052,11 @@ var AIProvider = (props) => {
|
|
|
5035
5052
|
clearMemoryRegistry(memory);
|
|
5036
5053
|
}));
|
|
5037
5054
|
}
|
|
5055
|
+
function clearSkills() {
|
|
5056
|
+
setState("skills", produce((skills) => {
|
|
5057
|
+
clearSkillsRegistry(skills);
|
|
5058
|
+
}));
|
|
5059
|
+
}
|
|
5038
5060
|
function selectHook(id) {
|
|
5039
5061
|
setState("hooks", produce((hooks) => {
|
|
5040
5062
|
setActiveHook(hooks, id);
|
|
@@ -5359,6 +5381,10 @@ var AIProvider = (props) => {
|
|
|
5359
5381
|
setState("memory", produce((memory) => {
|
|
5360
5382
|
applyMemorySnapshot(memory, e.payload);
|
|
5361
5383
|
}));
|
|
5384
|
+
}), aiEventClient.on("skills:snapshot", (e) => {
|
|
5385
|
+
setState("skills", produce((skills) => {
|
|
5386
|
+
applySkillsSnapshot(skills, e.payload);
|
|
5387
|
+
}));
|
|
5362
5388
|
}));
|
|
5363
5389
|
const recordRunEvent = (eventName, payload) => {
|
|
5364
5390
|
setState("hooks", produce((hooks) => {
|
|
@@ -6935,6 +6961,7 @@ var AIProvider = (props) => {
|
|
|
6935
6961
|
selectConversation,
|
|
6936
6962
|
clearHooks,
|
|
6937
6963
|
clearMemory,
|
|
6964
|
+
clearSkills,
|
|
6938
6965
|
selectHook,
|
|
6939
6966
|
saveToolFixture,
|
|
6940
6967
|
deleteToolFixture,
|
|
@@ -10918,15 +10945,161 @@ var MemoryPanel = () => {
|
|
|
10918
10945
|
})();
|
|
10919
10946
|
};
|
|
10920
10947
|
delegateEvents(["click"]);
|
|
10948
|
+
var _tmpl$40 = /* @__PURE__ */ template(`<ul>`);
|
|
10949
|
+
var _tmpl$214 = /* @__PURE__ */ template(`<div><div>Catalog`);
|
|
10950
|
+
var _tmpl$310 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-skills-panel>`);
|
|
10951
|
+
var _tmpl$47 = /* @__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\`.`);
|
|
10952
|
+
var _tmpl$57 = /* @__PURE__ */ template(`<div>Loaded via \`load_skill\`, but the catalog snapshot has not arrived yet.`);
|
|
10953
|
+
var _tmpl$67 = /* @__PURE__ */ template(`<span>loaded`);
|
|
10954
|
+
var _tmpl$77 = /* @__PURE__ */ template(`<li><span></span><span>`);
|
|
10955
|
+
function parseSkillName(argumentsJson) {
|
|
10956
|
+
if (!argumentsJson) return void 0;
|
|
10957
|
+
try {
|
|
10958
|
+
const parsed = JSON.parse(argumentsJson);
|
|
10959
|
+
if (parsed && typeof parsed === "object" && "name" in parsed && typeof parsed.name === "string") {
|
|
10960
|
+
return parsed.name;
|
|
10961
|
+
}
|
|
10962
|
+
} catch {
|
|
10963
|
+
return void 0;
|
|
10964
|
+
}
|
|
10965
|
+
return void 0;
|
|
10966
|
+
}
|
|
10967
|
+
function loadedFromMessages(messages) {
|
|
10968
|
+
const names = /* @__PURE__ */ new Set();
|
|
10969
|
+
for (const message of messages) {
|
|
10970
|
+
for (const toolCall of message.toolCalls ?? []) {
|
|
10971
|
+
if (toolCall.name === "load_skill") {
|
|
10972
|
+
const name = parseSkillName(toolCall.arguments);
|
|
10973
|
+
if (name) names.add(name);
|
|
10974
|
+
}
|
|
10975
|
+
}
|
|
10976
|
+
for (const part of message.parts ?? []) {
|
|
10977
|
+
if (part.type === "tool-call" && part.toolName === "load_skill") {
|
|
10978
|
+
const name = parseSkillName(part.arguments);
|
|
10979
|
+
if (name) names.add(name);
|
|
10980
|
+
}
|
|
10981
|
+
}
|
|
10982
|
+
}
|
|
10983
|
+
return [...names];
|
|
10984
|
+
}
|
|
10985
|
+
var SkillsPanel = () => {
|
|
10986
|
+
const {
|
|
10987
|
+
state
|
|
10988
|
+
} = useAIStore();
|
|
10989
|
+
const styles = useStyles();
|
|
10990
|
+
const snapshot = createMemo(() => {
|
|
10991
|
+
const hookId = state.hooks.activeHookId;
|
|
10992
|
+
if (hookId && state.skills.snapshots[hookId]) {
|
|
10993
|
+
return state.skills.snapshots[hookId];
|
|
10994
|
+
}
|
|
10995
|
+
const first = Object.values(state.skills.snapshots)[0];
|
|
10996
|
+
return first;
|
|
10997
|
+
});
|
|
10998
|
+
const conversation = createMemo(() => {
|
|
10999
|
+
const hookId = state.hooks.activeHookId;
|
|
11000
|
+
if (!hookId) return void 0;
|
|
11001
|
+
return state.conversations[hookId];
|
|
11002
|
+
});
|
|
11003
|
+
const loaded = createMemo(() => {
|
|
11004
|
+
const fromSnap = new Set(snapshot()?.activated ?? []);
|
|
11005
|
+
for (const name of loadedFromMessages(conversation()?.messages ?? [])) {
|
|
11006
|
+
fromSnap.add(name);
|
|
11007
|
+
}
|
|
11008
|
+
return fromSnap;
|
|
11009
|
+
});
|
|
11010
|
+
const catalog = createMemo(() => snapshot()?.catalog ?? []);
|
|
11011
|
+
return (() => {
|
|
11012
|
+
var _el$ = _tmpl$310();
|
|
11013
|
+
insert(_el$, createComponent(Show, {
|
|
11014
|
+
get when() {
|
|
11015
|
+
return catalog().length > 0 || loaded().size > 0;
|
|
11016
|
+
},
|
|
11017
|
+
get fallback() {
|
|
11018
|
+
return (() => {
|
|
11019
|
+
var _el$5 = _tmpl$47();
|
|
11020
|
+
effect(() => className(_el$5, styles().memoryPanel.empty));
|
|
11021
|
+
return _el$5;
|
|
11022
|
+
})();
|
|
11023
|
+
},
|
|
11024
|
+
get children() {
|
|
11025
|
+
var _el$2 = _tmpl$214(), _el$3 = _el$2.firstChild;
|
|
11026
|
+
insert(_el$2, createComponent(Show, {
|
|
11027
|
+
get when() {
|
|
11028
|
+
return catalog().length > 0;
|
|
11029
|
+
},
|
|
11030
|
+
get fallback() {
|
|
11031
|
+
return (() => {
|
|
11032
|
+
var _el$6 = _tmpl$57();
|
|
11033
|
+
effect(() => className(_el$6, styles().memoryPanel.sectionEmpty));
|
|
11034
|
+
return _el$6;
|
|
11035
|
+
})();
|
|
11036
|
+
},
|
|
11037
|
+
get children() {
|
|
11038
|
+
var _el$4 = _tmpl$40();
|
|
11039
|
+
insert(_el$4, createComponent(For, {
|
|
11040
|
+
get each() {
|
|
11041
|
+
return catalog();
|
|
11042
|
+
},
|
|
11043
|
+
children: (skill) => {
|
|
11044
|
+
const isLoaded = () => loaded().has(skill.name);
|
|
11045
|
+
return (() => {
|
|
11046
|
+
var _el$7 = _tmpl$77(), _el$8 = _el$7.firstChild, _el$0 = _el$8.nextSibling;
|
|
11047
|
+
insert(_el$8, () => skill.name);
|
|
11048
|
+
insert(_el$7, createComponent(Show, {
|
|
11049
|
+
get when() {
|
|
11050
|
+
return isLoaded();
|
|
11051
|
+
},
|
|
11052
|
+
get children() {
|
|
11053
|
+
var _el$9 = _tmpl$67();
|
|
11054
|
+
effect(() => className(_el$9, styles().memoryPanel.badge));
|
|
11055
|
+
return _el$9;
|
|
11056
|
+
}
|
|
11057
|
+
}), _el$0);
|
|
11058
|
+
insert(_el$0, () => skill.description);
|
|
11059
|
+
effect((_p$) => {
|
|
11060
|
+
var _v$3 = styles().memoryPanel.row, _v$4 = styles().memoryPanel.badge, _v$5 = styles().memoryPanel.sectionEmpty;
|
|
11061
|
+
_v$3 !== _p$.e && className(_el$7, _p$.e = _v$3);
|
|
11062
|
+
_v$4 !== _p$.t && className(_el$8, _p$.t = _v$4);
|
|
11063
|
+
_v$5 !== _p$.a && className(_el$0, _p$.a = _v$5);
|
|
11064
|
+
return _p$;
|
|
11065
|
+
}, {
|
|
11066
|
+
e: void 0,
|
|
11067
|
+
t: void 0,
|
|
11068
|
+
a: void 0
|
|
11069
|
+
});
|
|
11070
|
+
return _el$7;
|
|
11071
|
+
})();
|
|
11072
|
+
}
|
|
11073
|
+
}));
|
|
11074
|
+
effect(() => className(_el$4, styles().memoryPanel.list));
|
|
11075
|
+
return _el$4;
|
|
11076
|
+
}
|
|
11077
|
+
}), null);
|
|
11078
|
+
effect((_p$) => {
|
|
11079
|
+
var _v$ = styles().memoryPanel.section, _v$2 = styles().memoryPanel.sectionTitle;
|
|
11080
|
+
_v$ !== _p$.e && className(_el$2, _p$.e = _v$);
|
|
11081
|
+
_v$2 !== _p$.t && className(_el$3, _p$.t = _v$2);
|
|
11082
|
+
return _p$;
|
|
11083
|
+
}, {
|
|
11084
|
+
e: void 0,
|
|
11085
|
+
t: void 0
|
|
11086
|
+
});
|
|
11087
|
+
return _el$2;
|
|
11088
|
+
}
|
|
11089
|
+
}));
|
|
11090
|
+
effect(() => className(_el$, styles().memoryPanel.container));
|
|
11091
|
+
return _el$;
|
|
11092
|
+
})();
|
|
11093
|
+
};
|
|
10921
11094
|
|
|
10922
11095
|
// src/components/hooks/HookDetails.tsx
|
|
10923
|
-
var _tmpl$
|
|
10924
|
-
var _tmpl$
|
|
10925
|
-
var _tmpl$
|
|
10926
|
-
var _tmpl$
|
|
10927
|
-
var _tmpl$
|
|
10928
|
-
var _tmpl$
|
|
10929
|
-
var _tmpl$
|
|
11096
|
+
var _tmpl$41 = /* @__PURE__ */ template(`<aside data-testid=ai-devtools-preview-pane><div>`);
|
|
11097
|
+
var _tmpl$215 = /* @__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>`);
|
|
11098
|
+
var _tmpl$311 = /* @__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>`);
|
|
11099
|
+
var _tmpl$48 = /* @__PURE__ */ template(`<div>Open a page with TanStack AI hooks to inspect live state.`);
|
|
11100
|
+
var _tmpl$58 = /* @__PURE__ */ template(`<section data-testid=ai-devtools-overview-category><div><span></span><span>`);
|
|
11101
|
+
var _tmpl$68 = /* @__PURE__ */ template(`<span>running`);
|
|
11102
|
+
var _tmpl$78 = /* @__PURE__ */ template(`<span> new`);
|
|
10930
11103
|
var _tmpl$87 = /* @__PURE__ */ template(`<button type=button data-testid=ai-devtools-overview-hook><div><span></span><span></span></div><div><span>`);
|
|
10931
11104
|
var _tmpl$97 = /* @__PURE__ */ template(`<div><span></span><span>`);
|
|
10932
11105
|
var _tmpl$06 = /* @__PURE__ */ template(`<span>`);
|
|
@@ -10942,7 +11115,7 @@ var _tmpl$173 = /* @__PURE__ */ template(`<div><button type=button data-testid=a
|
|
|
10942
11115
|
var _tmpl$182 = /* @__PURE__ */ template(`<div><span>`);
|
|
10943
11116
|
var _tmpl$192 = /* @__PURE__ */ template(`<div><span></span><div>`);
|
|
10944
11117
|
var _tmpl$202 = /* @__PURE__ */ template(`<div>No messages yet. Start a conversation to see messages here.`);
|
|
10945
|
-
var _tmpl$
|
|
11118
|
+
var _tmpl$216 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-tools><div></div><div>`);
|
|
10946
11119
|
var _tmpl$223 = /* @__PURE__ */ template(`<div>No tools.`);
|
|
10947
11120
|
var _tmpl$232 = /* @__PURE__ */ template(`<span>approval`);
|
|
10948
11121
|
var _tmpl$242 = /* @__PURE__ */ template(`<button type=button data-testid=ai-devtools-tool-row><span>`);
|
|
@@ -10964,7 +11137,8 @@ var HookDetails = () => {
|
|
|
10964
11137
|
let previewPane;
|
|
10965
11138
|
const hook = createMemo(() => {
|
|
10966
11139
|
const id = state.hooks.activeHookId;
|
|
10967
|
-
|
|
11140
|
+
if (id === null) return void 0;
|
|
11141
|
+
return state.hooks.hooks[id];
|
|
10968
11142
|
});
|
|
10969
11143
|
const conversation = createMemo(() => {
|
|
10970
11144
|
const activeHook = hook();
|
|
@@ -10981,7 +11155,7 @@ var HookDetails = () => {
|
|
|
10981
11155
|
return Boolean(outputKind && outputKind !== "chat" && outputKind !== "structured");
|
|
10982
11156
|
});
|
|
10983
11157
|
createEffect(() => {
|
|
10984
|
-
if (isGenerationHook() && (activeTab() === "tools" || activeTab() === "memory")) {
|
|
11158
|
+
if (isGenerationHook() && (activeTab() === "tools" || activeTab() === "memory" || activeTab() === "skills")) {
|
|
10985
11159
|
setActiveTab("conversation");
|
|
10986
11160
|
}
|
|
10987
11161
|
});
|
|
@@ -10997,7 +11171,7 @@ var HookDetails = () => {
|
|
|
10997
11171
|
return [];
|
|
10998
11172
|
});
|
|
10999
11173
|
const showSecondaryPane = createMemo(() => {
|
|
11000
|
-
if (activeTab() === "tools" && !isGenerationHook()) return false;
|
|
11174
|
+
if ((activeTab() === "tools" || activeTab() === "skills") && !isGenerationHook()) return false;
|
|
11001
11175
|
return isGenerationHook() || !hasStructuredOutputPreview(previewMessages());
|
|
11002
11176
|
});
|
|
11003
11177
|
createEffect(() => {
|
|
@@ -11026,7 +11200,7 @@ var HookDetails = () => {
|
|
|
11026
11200
|
});
|
|
11027
11201
|
},
|
|
11028
11202
|
children: (activeHook) => (() => {
|
|
11029
|
-
var _el$ = _tmpl$
|
|
11203
|
+
var _el$ = _tmpl$215(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
|
|
11030
11204
|
insert(_el$, createComponent(HookHeader, {
|
|
11031
11205
|
get hook() {
|
|
11032
11206
|
return activeHook();
|
|
@@ -11082,14 +11256,21 @@ var HookDetails = () => {
|
|
|
11082
11256
|
return !isGenerationHook();
|
|
11083
11257
|
},
|
|
11084
11258
|
get children() {
|
|
11085
|
-
return createComponent(TabButton, {
|
|
11259
|
+
return [createComponent(TabButton, {
|
|
11086
11260
|
label: "Memory",
|
|
11087
11261
|
tab: "memory",
|
|
11088
11262
|
get activeTab() {
|
|
11089
11263
|
return activeTab();
|
|
11090
11264
|
},
|
|
11091
11265
|
onSelect: setActiveTab
|
|
11092
|
-
})
|
|
11266
|
+
}), createComponent(TabButton, {
|
|
11267
|
+
label: "Skills",
|
|
11268
|
+
tab: "skills",
|
|
11269
|
+
get activeTab() {
|
|
11270
|
+
return activeTab();
|
|
11271
|
+
},
|
|
11272
|
+
onSelect: setActiveTab
|
|
11273
|
+
})];
|
|
11093
11274
|
}
|
|
11094
11275
|
}), null);
|
|
11095
11276
|
_el$4.addEventListener("mouseleave", () => setHoverTarget(null));
|
|
@@ -11168,12 +11349,20 @@ var HookDetails = () => {
|
|
|
11168
11349
|
return createComponent(MemoryPanel, {});
|
|
11169
11350
|
}
|
|
11170
11351
|
}), null);
|
|
11352
|
+
insert(_el$4, createComponent(Show, {
|
|
11353
|
+
get when() {
|
|
11354
|
+
return activeTab() === "skills";
|
|
11355
|
+
},
|
|
11356
|
+
get children() {
|
|
11357
|
+
return createComponent(SkillsPanel, {});
|
|
11358
|
+
}
|
|
11359
|
+
}), null);
|
|
11171
11360
|
insert(_el$3, createComponent(Show, {
|
|
11172
11361
|
get when() {
|
|
11173
11362
|
return showSecondaryPane();
|
|
11174
11363
|
},
|
|
11175
11364
|
get children() {
|
|
11176
|
-
var _el$5 = _tmpl$
|
|
11365
|
+
var _el$5 = _tmpl$41(), _el$6 = _el$5.firstChild;
|
|
11177
11366
|
_el$5.addEventListener("mouseleave", () => setHoverTarget(null));
|
|
11178
11367
|
_el$5.$$mouseover = (event) => setHoverTargetFromEvent(event, "preview", setHoverTarget);
|
|
11179
11368
|
use((el) => {
|
|
@@ -11254,13 +11443,13 @@ var HookOverview = (props) => {
|
|
|
11254
11443
|
},
|
|
11255
11444
|
get fallback() {
|
|
11256
11445
|
return (() => {
|
|
11257
|
-
var _el$12 = _tmpl$
|
|
11446
|
+
var _el$12 = _tmpl$48();
|
|
11258
11447
|
effect(() => className(_el$12, styles().hookDetails.empty));
|
|
11259
11448
|
return _el$12;
|
|
11260
11449
|
})();
|
|
11261
11450
|
},
|
|
11262
11451
|
get children() {
|
|
11263
|
-
var _el$7 = _tmpl$
|
|
11452
|
+
var _el$7 = _tmpl$311(), _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;
|
|
11264
11453
|
insert(_el$10, createComponent(OverviewMetric, {
|
|
11265
11454
|
label: "active hooks",
|
|
11266
11455
|
get value() {
|
|
@@ -11314,7 +11503,7 @@ var HookOverview = (props) => {
|
|
|
11314
11503
|
return groups();
|
|
11315
11504
|
},
|
|
11316
11505
|
children: (group) => (() => {
|
|
11317
|
-
var _el$13 = _tmpl$
|
|
11506
|
+
var _el$13 = _tmpl$58(), _el$14 = _el$13.firstChild, _el$15 = _el$14.firstChild, _el$16 = _el$15.nextSibling;
|
|
11318
11507
|
insert(_el$15, () => group.label);
|
|
11319
11508
|
insert(_el$16, () => group.hooks.length);
|
|
11320
11509
|
insert(_el$13, createComponent(For, {
|
|
@@ -11335,7 +11524,7 @@ var HookOverview = (props) => {
|
|
|
11335
11524
|
return running();
|
|
11336
11525
|
},
|
|
11337
11526
|
get children() {
|
|
11338
|
-
var _el$23 = _tmpl$
|
|
11527
|
+
var _el$23 = _tmpl$68();
|
|
11339
11528
|
effect(() => className(_el$23, styles().hookDetails.lifecycle));
|
|
11340
11529
|
return _el$23;
|
|
11341
11530
|
}
|
|
@@ -11345,7 +11534,7 @@ var HookOverview = (props) => {
|
|
|
11345
11534
|
return unseenCount() > 0;
|
|
11346
11535
|
},
|
|
11347
11536
|
get children() {
|
|
11348
|
-
var _el$24 = _tmpl$
|
|
11537
|
+
var _el$24 = _tmpl$78(), _el$25 = _el$24.firstChild;
|
|
11349
11538
|
insert(_el$24, unseenCount, _el$25);
|
|
11350
11539
|
effect(() => className(_el$24, styles().hookDetails.kind));
|
|
11351
11540
|
return _el$24;
|
|
@@ -12038,7 +12227,7 @@ var ToolsView = (props) => {
|
|
|
12038
12227
|
const selectedTool = createMemo(() => props.hook.tools.find((tool) => tool.name === selectedToolName()));
|
|
12039
12228
|
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));
|
|
12040
12229
|
return (() => {
|
|
12041
|
-
var _el$76 = _tmpl$
|
|
12230
|
+
var _el$76 = _tmpl$216(), _el$77 = _el$76.firstChild, _el$78 = _el$77.nextSibling;
|
|
12042
12231
|
insert(_el$77, createComponent(Show, {
|
|
12043
12232
|
get when() {
|
|
12044
12233
|
return props.hook.tools.length > 0;
|
|
@@ -12629,7 +12818,7 @@ function formatTime3(timestamp) {
|
|
|
12629
12818
|
delegateEvents(["mouseover", "click"]);
|
|
12630
12819
|
|
|
12631
12820
|
// src/components/Shell.tsx
|
|
12632
|
-
var _tmpl$
|
|
12821
|
+
var _tmpl$49 = /* @__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>`);
|
|
12633
12822
|
function Devtools(props) {
|
|
12634
12823
|
return createComponent(ThemeContextProvider, {
|
|
12635
12824
|
get theme() {
|
|
@@ -12711,7 +12900,7 @@ function DevtoolsContent() {
|
|
|
12711
12900
|
});
|
|
12712
12901
|
return createComponent(MainPanel, {
|
|
12713
12902
|
get children() {
|
|
12714
|
-
var _el$ = _tmpl$
|
|
12903
|
+
var _el$ = _tmpl$49(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.nextSibling;
|
|
12715
12904
|
insert(_el$, createComponent(Header, {
|
|
12716
12905
|
get children() {
|
|
12717
12906
|
return createComponent(HeaderLogo, {
|
package/dist/dev.js
CHANGED
package/dist/index.js
CHANGED