@tanstack/ai-devtools-core 0.4.3 → 0.4.5

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.
@@ -7204,8 +7204,10 @@ var _tmpl$222 = /* @__PURE__ */ template(`<div><span>System Prompts (<!>)`);
7204
7204
  var _tmpl$23 = /* @__PURE__ */ template(`<div><span>Model Options</span><div>`);
7205
7205
  var _tmpl$24 = /* @__PURE__ */ template(`<div><div><div><span></span><div></div></div><div></div><span>\u25B6</span></div><div><div><div></div></div></div><div><div>`);
7206
7206
  var _tmpl$25 = /* @__PURE__ */ template(`<span>\u{1F3AF} `);
7207
- var _tmpl$26 = /* @__PURE__ */ template(`<div><span>:</span><span></span><span>\u2192</span><span>`);
7208
- var _tmpl$27 = /* @__PURE__ */ template(`<span><span>`);
7207
+ var _tmpl$26 = /* @__PURE__ */ template(`<span title="Cached prompt tokens">\u{1F4BE} `);
7208
+ var _tmpl$27 = /* @__PURE__ */ template(`<span title="Reasoning tokens">\u{1F9E0} `);
7209
+ var _tmpl$28 = /* @__PURE__ */ template(`<div><span>:</span><span></span><span>\u2192</span><span>`);
7210
+ var _tmpl$29 = /* @__PURE__ */ template(`<span><span>`);
7209
7211
  function getApprovalStatus(toolCall) {
7210
7212
  if (toolCall.approvalApproved === true || toolCall.state === "approved") {
7211
7213
  return "approved";
@@ -8133,6 +8135,28 @@ var IterationCard = (props) => {
8133
8135
  return _el$94;
8134
8136
  })()
8135
8137
  }), null);
8138
+ insert(_el$67, createComponent(Show, {
8139
+ get when() {
8140
+ return iter().usage?.promptTokensDetails?.cachedTokens;
8141
+ },
8142
+ children: (cached) => (() => {
8143
+ var _el$96 = _tmpl$26(); _el$96.firstChild;
8144
+ insert(_el$96, () => cached().toLocaleString(), null);
8145
+ effect(() => className(_el$96, `${s().badge} ${s().badgeUsage}`));
8146
+ return _el$96;
8147
+ })()
8148
+ }), null);
8149
+ insert(_el$67, createComponent(Show, {
8150
+ get when() {
8151
+ return iter().usage?.completionTokensDetails?.reasoningTokens;
8152
+ },
8153
+ children: (reasoning) => (() => {
8154
+ var _el$98 = _tmpl$27(); _el$98.firstChild;
8155
+ insert(_el$98, () => reasoning().toLocaleString(), null);
8156
+ effect(() => className(_el$98, `${s().badge} ${s().badgeUsage}`));
8157
+ return _el$98;
8158
+ })()
8159
+ }), null);
8136
8160
  insert(_el$67, createComponent(Show, {
8137
8161
  get when() {
8138
8162
  return isActive();
@@ -8154,17 +8178,17 @@ var IterationCard = (props) => {
8154
8178
  return configDiffs();
8155
8179
  },
8156
8180
  children: (diff) => (() => {
8157
- var _el$96 = _tmpl$26(), _el$97 = _el$96.firstChild, _el$98 = _el$97.firstChild, _el$99 = _el$97.nextSibling, _el$100 = _el$99.nextSibling, _el$101 = _el$100.nextSibling;
8158
- insert(_el$97, () => diff.key, _el$98);
8159
- insert(_el$99, () => diff.from);
8160
- insert(_el$101, () => diff.to);
8181
+ var _el$100 = _tmpl$28(), _el$101 = _el$100.firstChild, _el$102 = _el$101.firstChild, _el$103 = _el$101.nextSibling, _el$104 = _el$103.nextSibling, _el$105 = _el$104.nextSibling;
8182
+ insert(_el$101, () => diff.key, _el$102);
8183
+ insert(_el$103, () => diff.from);
8184
+ insert(_el$105, () => diff.to);
8161
8185
  effect((_p$) => {
8162
8186
  var _v$58 = s().configDiffRow, _v$59 = s().configDiffKey, _v$60 = s().configDiffFrom, _v$61 = s().configDiffArrow, _v$62 = s().configDiffTo;
8163
- _v$58 !== _p$.e && className(_el$96, _p$.e = _v$58);
8164
- _v$59 !== _p$.t && className(_el$97, _p$.t = _v$59);
8165
- _v$60 !== _p$.a && className(_el$99, _p$.a = _v$60);
8166
- _v$61 !== _p$.o && className(_el$100, _p$.o = _v$61);
8167
- _v$62 !== _p$.i && className(_el$101, _p$.i = _v$62);
8187
+ _v$58 !== _p$.e && className(_el$100, _p$.e = _v$58);
8188
+ _v$59 !== _p$.t && className(_el$101, _p$.t = _v$59);
8189
+ _v$60 !== _p$.a && className(_el$103, _p$.a = _v$60);
8190
+ _v$61 !== _p$.o && className(_el$104, _p$.o = _v$61);
8191
+ _v$62 !== _p$.i && className(_el$105, _p$.i = _v$62);
8168
8192
  return _p$;
8169
8193
  }, {
8170
8194
  e: void 0,
@@ -8173,7 +8197,7 @@ var IterationCard = (props) => {
8173
8197
  o: void 0,
8174
8198
  i: void 0
8175
8199
  });
8176
- return _el$96;
8200
+ return _el$100;
8177
8201
  })()
8178
8202
  }));
8179
8203
  effect((_p$) => {
@@ -8201,19 +8225,19 @@ var IterationCard = (props) => {
8201
8225
  return toolNames();
8202
8226
  },
8203
8227
  children: (name) => (() => {
8204
- var _el$102 = _tmpl$27(), _el$103 = _el$102.firstChild;
8205
- insert(_el$102, name, _el$103);
8206
- insert(_el$103, () => toolInvocationCounts().get(name) || 0);
8228
+ var _el$106 = _tmpl$29(), _el$107 = _el$106.firstChild;
8229
+ insert(_el$106, name, _el$107);
8230
+ insert(_el$107, () => toolInvocationCounts().get(name) || 0);
8207
8231
  effect((_p$) => {
8208
8232
  var _v$63 = s().configToolChip, _v$64 = s().configToolChipCount;
8209
- _v$63 !== _p$.e && className(_el$102, _p$.e = _v$63);
8210
- _v$64 !== _p$.t && className(_el$103, _p$.t = _v$64);
8233
+ _v$63 !== _p$.e && className(_el$106, _p$.e = _v$63);
8234
+ _v$64 !== _p$.t && className(_el$107, _p$.t = _v$64);
8211
8235
  return _p$;
8212
8236
  }, {
8213
8237
  e: void 0,
8214
8238
  t: void 0
8215
8239
  });
8216
- return _el$102;
8240
+ return _el$106;
8217
8241
  })()
8218
8242
  }));
8219
8243
  effect((_p$) => {
@@ -8407,8 +8431,8 @@ var IterationCard = (props) => {
8407
8431
  delegateEvents(["click"]);
8408
8432
 
8409
8433
  // src/components/conversation/IterationTimeline.tsx
8410
- var _tmpl$28 = /* @__PURE__ */ template(`<div>`);
8411
- var _tmpl$29 = /* @__PURE__ */ template(`<div>No iterations recorded`);
8434
+ var _tmpl$30 = /* @__PURE__ */ template(`<div>`);
8435
+ var _tmpl$210 = /* @__PURE__ */ template(`<div>No iterations recorded`);
8412
8436
  var _tmpl$33 = /* @__PURE__ */ template(`<span>`);
8413
8437
  var _tmpl$43 = /* @__PURE__ */ template(`<pre>`);
8414
8438
  var _tmpl$53 = /* @__PURE__ */ template(`<div><div><span>#</span><span>`);
@@ -8467,20 +8491,20 @@ var IterationTimeline = (props) => {
8467
8491
  return result;
8468
8492
  });
8469
8493
  return (() => {
8470
- var _el$ = _tmpl$28();
8494
+ var _el$ = _tmpl$30();
8471
8495
  insert(_el$, createComponent(Show, {
8472
8496
  get when() {
8473
8497
  return props.iterations.length > 0;
8474
8498
  },
8475
8499
  get fallback() {
8476
8500
  return (() => {
8477
- var _el$3 = _tmpl$29();
8501
+ var _el$3 = _tmpl$210();
8478
8502
  effect(() => className(_el$3, s().noIterations));
8479
8503
  return _el$3;
8480
8504
  })();
8481
8505
  },
8482
8506
  get children() {
8483
- var _el$2 = _tmpl$28();
8507
+ var _el$2 = _tmpl$30();
8484
8508
  insert(_el$2, createComponent(Index, {
8485
8509
  get each() {
8486
8510
  return groups();
@@ -9011,7 +9035,7 @@ var UserMessageGroupCard = (props) => {
9011
9035
  })();
9012
9036
  };
9013
9037
  delegateEvents(["click"]);
9014
- var _tmpl$30 = /* @__PURE__ */ template(`<form data-testid=ai-devtools-fixture-save-popover><label><span>Fixture name</span><input data-testid=ai-devtools-fixture-name-input></label><div><button data-testid=ai-devtools-fixture-save-confirm type=submit>Save</button><button data-testid=ai-devtools-fixture-save-cancel type=button>Cancel`);
9038
+ var _tmpl$31 = /* @__PURE__ */ template(`<form data-testid=ai-devtools-fixture-save-popover><label><span>Fixture name</span><input data-testid=ai-devtools-fixture-name-input></label><div><button data-testid=ai-devtools-fixture-save-confirm type=submit>Save</button><button data-testid=ai-devtools-fixture-save-cancel type=button>Cancel`);
9015
9039
  var FixtureNamePopover = (props) => {
9016
9040
  const styles = useStyles();
9017
9041
  const [name, setName] = createSignal(props.defaultName);
@@ -9026,7 +9050,7 @@ var FixtureNamePopover = (props) => {
9026
9050
  props.onSave(trimmedName);
9027
9051
  };
9028
9052
  return (() => {
9029
- var _el$ = _tmpl$30(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
9053
+ var _el$ = _tmpl$31(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
9030
9054
  _el$.addEventListener("submit", (event) => {
9031
9055
  event.preventDefault();
9032
9056
  handleSave();
@@ -9060,9 +9084,9 @@ var FixtureNamePopover = (props) => {
9060
9084
  })();
9061
9085
  };
9062
9086
  delegateEvents(["input", "click"]);
9063
- var _tmpl$31 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-tool-fixture-form><div>Tool Fixture</div><div></div><label><span>Output JSON</span><textarea></textarea></label><div><button data-testid=ai-devtools-tool-fire type=button>Fire</button><button data-testid=ai-devtools-tool-save type=button>Save`);
9064
- var _tmpl$210 = /* @__PURE__ */ template(`<label><span>Input JSON</span><textarea>`);
9065
- var _tmpl$34 = /* @__PURE__ */ template(`<span>*`);
9087
+ var _tmpl$34 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-tool-fixture-form><div>Tool Fixture</div><div></div><label><span>Output JSON</span><textarea></textarea></label><div><button data-testid=ai-devtools-tool-fire type=button>Fire</button><button data-testid=ai-devtools-tool-save type=button>Save`);
9088
+ var _tmpl$211 = /* @__PURE__ */ template(`<label><span>Input JSON</span><textarea>`);
9089
+ var _tmpl$35 = /* @__PURE__ */ template(`<span>*`);
9066
9090
  var _tmpl$44 = /* @__PURE__ */ template(`<span>`);
9067
9091
  var _tmpl$54 = /* @__PURE__ */ template(`<label><span>`);
9068
9092
  var _tmpl$64 = /* @__PURE__ */ template(`<div>`);
@@ -9135,7 +9159,7 @@ var ToolFixtureForm = (props) => {
9135
9159
  setPendingSaveName(null);
9136
9160
  };
9137
9161
  return (() => {
9138
- var _el$ = _tmpl$31(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$7 = _el$4.nextSibling, _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling;
9162
+ var _el$ = _tmpl$34(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$7 = _el$4.nextSibling, _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling;
9139
9163
  insert(_el$3, () => props.tool.description || props.tool.name);
9140
9164
  insert(_el$, createComponent(Show, {
9141
9165
  get when() {
@@ -9143,7 +9167,7 @@ var ToolFixtureForm = (props) => {
9143
9167
  },
9144
9168
  get fallback() {
9145
9169
  return (() => {
9146
- var _el$0 = _tmpl$210(), _el$1 = _el$0.firstChild, _el$10 = _el$1.nextSibling;
9170
+ var _el$0 = _tmpl$211(), _el$1 = _el$0.firstChild, _el$10 = _el$1.nextSibling;
9147
9171
  _el$10.$$input = (event) => setRawInput(event.currentTarget.value);
9148
9172
  setAttribute(_el$10, "spellcheck", false);
9149
9173
  effect((_p$) => {
@@ -9174,7 +9198,7 @@ var ToolFixtureForm = (props) => {
9174
9198
  return field.required;
9175
9199
  },
9176
9200
  get children() {
9177
- var _el$13 = _tmpl$34();
9201
+ var _el$13 = _tmpl$35();
9178
9202
  effect(() => className(_el$13, styles().hookDetails.requiredMark));
9179
9203
  return _el$13;
9180
9204
  }
@@ -9466,9 +9490,9 @@ function isRecord2(value) {
9466
9490
  function normalizeText(value) {
9467
9491
  return value?.trim() ?? "";
9468
9492
  }
9469
- var _tmpl$35 = /* @__PURE__ */ template(`<div>`);
9470
- var _tmpl$211 = /* @__PURE__ */ template(`<section><div>Runs</div><div>No generation runs yet.`);
9471
- var _tmpl$36 = /* @__PURE__ */ template(`<div>No output yet.`);
9493
+ var _tmpl$36 = /* @__PURE__ */ template(`<div>`);
9494
+ var _tmpl$212 = /* @__PURE__ */ template(`<section><div>Runs</div><div>No generation runs yet.`);
9495
+ var _tmpl$37 = /* @__PURE__ */ template(`<div>No output yet.`);
9472
9496
  var _tmpl$45 = /* @__PURE__ */ template(`<article><header><div><div></div><div></div></div><div><span></span><span></span></div></header><div><div></div><div>`);
9473
9497
  var _tmpl$55 = /* @__PURE__ */ template(`<div role=button tabindex=0 data-testid=ai-devtools-generation-output><div></div><div><span></span><span>`);
9474
9498
  var _tmpl$65 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-output-modal-backdrop role=presentation><section data-testid=ai-devtools-output-modal role=dialog aria-modal=true><header><div><div></div><div></div></div><button type=button data-testid=ai-devtools-output-modal-close aria-label="Close output preview">x</button></header><div>`);
@@ -9497,7 +9521,7 @@ var GenerationPanel = (props) => {
9497
9521
  },
9498
9522
  get fallback() {
9499
9523
  return (() => {
9500
- var _el$2 = _tmpl$211(), _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
9524
+ var _el$2 = _tmpl$212(), _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
9501
9525
  effect((_p$) => {
9502
9526
  var _v$ = styles().hookDetails.section, _v$2 = styles().hookDetails.sectionTitle, _v$3 = styles().hookDetails.emptySmall;
9503
9527
  _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
@@ -9513,7 +9537,7 @@ var GenerationPanel = (props) => {
9513
9537
  })();
9514
9538
  },
9515
9539
  get children() {
9516
- var _el$ = _tmpl$35();
9540
+ var _el$ = _tmpl$36();
9517
9541
  use((element) => {
9518
9542
  runsContainer = element;
9519
9543
  }, _el$);
@@ -9563,13 +9587,13 @@ var GenerationPreview = (props) => {
9563
9587
  },
9564
9588
  get fallback() {
9565
9589
  return (() => {
9566
- var _el$6 = _tmpl$36();
9590
+ var _el$6 = _tmpl$37();
9567
9591
  effect(() => className(_el$6, styles().hookDetails.emptySmall));
9568
9592
  return _el$6;
9569
9593
  })();
9570
9594
  },
9571
9595
  get children() {
9572
- var _el$5 = _tmpl$35();
9596
+ var _el$5 = _tmpl$36();
9573
9597
  insert(_el$5, createComponent(For, {
9574
9598
  get each() {
9575
9599
  return outputs();
@@ -9691,7 +9715,7 @@ var GenerationRunCard = (props) => {
9691
9715
  return props.run.error;
9692
9716
  },
9693
9717
  children: (message) => (() => {
9694
- var _el$16 = _tmpl$35();
9718
+ var _el$16 = _tmpl$36();
9695
9719
  insert(_el$16, message);
9696
9720
  effect(() => className(_el$16, styles().hookDetails.errorText));
9697
9721
  return _el$16;
@@ -9868,7 +9892,7 @@ var OutputContent = (props) => {
9868
9892
  },
9869
9893
  get fallback() {
9870
9894
  return (() => {
9871
- var _el$31 = _tmpl$35();
9895
+ var _el$31 = _tmpl$36();
9872
9896
  insert(_el$31, createComponent(JsonTree, {
9873
9897
  get value() {
9874
9898
  return props.output.value;
@@ -9885,7 +9909,7 @@ var OutputContent = (props) => {
9885
9909
  })();
9886
9910
  },
9887
9911
  get children() {
9888
- var _el$30 = _tmpl$35();
9912
+ var _el$30 = _tmpl$36();
9889
9913
  insert(_el$30, () => props.output.text);
9890
9914
  effect(() => className(_el$30, props.compact ? styles().hookDetails.outputTileText : styles().hookDetails.outputModalText));
9891
9915
  return _el$30;
@@ -10021,7 +10045,7 @@ var ProgressMeter = (props) => {
10021
10045
  var JsonBlock = (props) => {
10022
10046
  const styles = useStyles();
10023
10047
  return (() => {
10024
- var _el$48 = _tmpl$35();
10048
+ var _el$48 = _tmpl$36();
10025
10049
  insert(_el$48, createComponent(JsonTree, {
10026
10050
  get value() {
10027
10051
  return props.value;
@@ -10301,9 +10325,9 @@ function isRecord3(value) {
10301
10325
  delegateEvents(["click"]);
10302
10326
 
10303
10327
  // src/components/hooks/HookDetails.tsx
10304
- var _tmpl$37 = /* @__PURE__ */ template(`<aside data-testid=ai-devtools-preview-pane><div>`);
10305
- var _tmpl$212 = /* @__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>`);
10306
- var _tmpl$38 = /* @__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>`);
10328
+ var _tmpl$38 = /* @__PURE__ */ template(`<aside data-testid=ai-devtools-preview-pane><div>`);
10329
+ var _tmpl$213 = /* @__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>`);
10330
+ var _tmpl$39 = /* @__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>`);
10307
10331
  var _tmpl$46 = /* @__PURE__ */ template(`<div>Open a page with TanStack AI hooks to inspect live state.`);
10308
10332
  var _tmpl$56 = /* @__PURE__ */ template(`<section data-testid=ai-devtools-overview-category><div><span></span><span>`);
10309
10333
  var _tmpl$66 = /* @__PURE__ */ template(`<span>running`);
@@ -10323,7 +10347,7 @@ var _tmpl$173 = /* @__PURE__ */ template(`<div><button type=button data-testid=a
10323
10347
  var _tmpl$182 = /* @__PURE__ */ template(`<div><span>`);
10324
10348
  var _tmpl$192 = /* @__PURE__ */ template(`<div><span></span><div>`);
10325
10349
  var _tmpl$202 = /* @__PURE__ */ template(`<div>No messages yet. Start a conversation to see messages here.`);
10326
- var _tmpl$213 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-tools><div></div><div>`);
10350
+ var _tmpl$214 = /* @__PURE__ */ template(`<div data-testid=ai-devtools-tools><div></div><div>`);
10327
10351
  var _tmpl$223 = /* @__PURE__ */ template(`<div>No tools.`);
10328
10352
  var _tmpl$232 = /* @__PURE__ */ template(`<span>approval`);
10329
10353
  var _tmpl$242 = /* @__PURE__ */ template(`<button type=button data-testid=ai-devtools-tool-row><span>`);
@@ -10407,7 +10431,7 @@ var HookDetails = () => {
10407
10431
  });
10408
10432
  },
10409
10433
  children: (activeHook) => (() => {
10410
- var _el$ = _tmpl$212(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
10434
+ var _el$ = _tmpl$213(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
10411
10435
  insert(_el$, createComponent(HookHeader, {
10412
10436
  get hook() {
10413
10437
  return activeHook();
@@ -10531,7 +10555,7 @@ var HookDetails = () => {
10531
10555
  return showSecondaryPane();
10532
10556
  },
10533
10557
  get children() {
10534
- var _el$5 = _tmpl$37(), _el$6 = _el$5.firstChild;
10558
+ var _el$5 = _tmpl$38(), _el$6 = _el$5.firstChild;
10535
10559
  _el$5.addEventListener("mouseleave", () => setHoverTarget(null));
10536
10560
  _el$5.$$mouseover = (event) => setHoverTargetFromEvent(event, "preview", setHoverTarget);
10537
10561
  use((el) => {
@@ -10618,7 +10642,7 @@ var HookOverview = (props) => {
10618
10642
  })();
10619
10643
  },
10620
10644
  get children() {
10621
- var _el$7 = _tmpl$38(), _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;
10645
+ var _el$7 = _tmpl$39(), _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;
10622
10646
  insert(_el$10, createComponent(OverviewMetric, {
10623
10647
  label: "active hooks",
10624
10648
  get value() {
@@ -11403,7 +11427,7 @@ var ToolsView = (props) => {
11403
11427
  const selectedTool = createMemo(() => props.hook.tools.find((tool) => tool.name === selectedToolName()));
11404
11428
  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));
11405
11429
  return (() => {
11406
- var _el$76 = _tmpl$213(), _el$77 = _el$76.firstChild, _el$78 = _el$77.nextSibling;
11430
+ var _el$76 = _tmpl$214(), _el$77 = _el$76.firstChild, _el$78 = _el$77.nextSibling;
11407
11431
  insert(_el$77, createComponent(Show, {
11408
11432
  get when() {
11409
11433
  return props.hook.tools.length > 0;
@@ -11994,7 +12018,7 @@ function formatTime2(timestamp) {
11994
12018
  delegateEvents(["mouseover", "click"]);
11995
12019
 
11996
12020
  // src/components/Shell.tsx
11997
- var _tmpl$39 = /* @__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>`);
12021
+ var _tmpl$40 = /* @__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>`);
11998
12022
  function Devtools(props) {
11999
12023
  return createComponent(ThemeContextProvider, {
12000
12024
  get theme() {
@@ -12076,7 +12100,7 @@ function DevtoolsContent() {
12076
12100
  });
12077
12101
  return createComponent(MainPanel, {
12078
12102
  get children() {
12079
- var _el$ = _tmpl$39(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.nextSibling;
12103
+ var _el$ = _tmpl$40(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.nextSibling;
12080
12104
  insert(_el$, createComponent(Header, {
12081
12105
  get children() {
12082
12106
  return createComponent(HeaderLogo, {
@@ -6960,7 +6960,7 @@ var _tmpl$18 = ["<div", "><span", ">", "</span><div", ">", "", "", "", "", "", "
6960
6960
  var _tmpl$19 = ['<span class="', '" title="', '">\u{1F527} ', "</span>"];
6961
6961
  var _tmpl$20 = ['<span class="', '"', ">\u23F1\uFE0F ", "</span>"];
6962
6962
  var _tmpl$21 = ['<span class="', '">\u27F3 streaming</span>'];
6963
- var _tmpl$222 = ["<div", ">", "", "", "", "", "</div>"];
6963
+ var _tmpl$222 = ["<div", ">", "", "", "", "", "", "", "</div>"];
6964
6964
  var _tmpl$23 = ["<div", "><span", ">Config Changes</span><div", ">", "</div></div>"];
6965
6965
  var _tmpl$24 = ["<div", "><span", ">Tools</span><div", ">", "</div></div>"];
6966
6966
  var _tmpl$25 = ["<div", "><span", ">System Prompts (", ")</span>", "</div>"];
@@ -6968,8 +6968,10 @@ var _tmpl$26 = ["<div", "><span", ">Model Options</span><div", ">", "</div></div
6968
6968
  var _tmpl$27 = ['<div class="', '"><div', "><div>", "", "", "", "</div></div></div>"];
6969
6969
  var _tmpl$28 = ['<div class="', '"><div', ">", "</div></div>"];
6970
6970
  var _tmpl$29 = ['<span class="', '" title="', '">\u{1F3AF} ', "</span>"];
6971
- var _tmpl$30 = ["<div", "><span", ">", ":</span><span", ">", "</span><span", ">\u2192</span><span", ">", "</span></div>"];
6972
- var _tmpl$31 = ["<span", ">", "<span", ">", "</span></span>"];
6971
+ var _tmpl$30 = ['<span class="', '" title="Cached prompt tokens">\u{1F4BE} ', "</span>"];
6972
+ var _tmpl$31 = ['<span class="', '" title="Reasoning tokens">\u{1F9E0} ', "</span>"];
6973
+ var _tmpl$322 = ["<div", "><span", ">", ":</span><span", ">", "</span><span", ">\u2192</span><span", ">", "</span></div>"];
6974
+ var _tmpl$33 = ["<span", ">", "<span", ">", "</span></span>"];
6973
6975
  function getApprovalStatus(toolCall) {
6974
6976
  if (toolCall.approvalApproved === true || toolCall.state === "approved") {
6975
6977
  return "approved";
@@ -7547,6 +7549,16 @@ var IterationCard = (props) => {
7547
7549
  return deltaUsage();
7548
7550
  },
7549
7551
  children: (usage) => ssr(_tmpl$29, `${escape(s().badge, true)} ${escape(s().badgeUsage, true)}`, `Prompt: ${escape(usage().promptTokens.toLocaleString(), true)} | Completion: ${escape(usage().completionTokens.toLocaleString(), true)}`, escape(usage().totalTokens.toLocaleString()))
7552
+ })), escape(createComponent(Show, {
7553
+ get when() {
7554
+ return iter().usage?.promptTokensDetails?.cachedTokens;
7555
+ },
7556
+ children: (cached) => ssr(_tmpl$30, `${escape(s().badge, true)} ${escape(s().badgeUsage, true)}`, escape(cached().toLocaleString()))
7557
+ })), escape(createComponent(Show, {
7558
+ get when() {
7559
+ return iter().usage?.completionTokensDetails?.reasoningTokens;
7560
+ },
7561
+ children: (reasoning) => ssr(_tmpl$31, `${escape(s().badge, true)} ${escape(s().badgeUsage, true)}`, escape(reasoning().toLocaleString()))
7550
7562
  })), escape(createComponent(Show, {
7551
7563
  get when() {
7552
7564
  return isActive();
@@ -7563,7 +7575,7 @@ var IterationCard = (props) => {
7563
7575
  get each() {
7564
7576
  return configDiffs();
7565
7577
  },
7566
- children: (diff) => ssr(_tmpl$30, ssrAttribute("class", escape(s().configDiffRow, true), false), ssrAttribute("class", escape(s().configDiffKey, true), false), escape(diff.key), ssrAttribute("class", escape(s().configDiffFrom, true), false), escape(diff.from), ssrAttribute("class", escape(s().configDiffArrow, true), false), ssrAttribute("class", escape(s().configDiffTo, true), false), escape(diff.to))
7578
+ children: (diff) => ssr(_tmpl$322, ssrAttribute("class", escape(s().configDiffRow, true), false), ssrAttribute("class", escape(s().configDiffKey, true), false), escape(diff.key), ssrAttribute("class", escape(s().configDiffFrom, true), false), escape(diff.from), ssrAttribute("class", escape(s().configDiffArrow, true), false), ssrAttribute("class", escape(s().configDiffTo, true), false), escape(diff.to))
7567
7579
  })));
7568
7580
  }
7569
7581
  })), escape(createComponent(Show, {
@@ -7575,7 +7587,7 @@ var IterationCard = (props) => {
7575
7587
  get each() {
7576
7588
  return toolNames();
7577
7589
  },
7578
- children: (name) => ssr(_tmpl$31, ssrAttribute("class", escape(s().configToolChip, true), false), escape(name), ssrAttribute("class", escape(s().configToolChipCount, true), false), escape(toolInvocationCounts().get(name)) || 0)
7590
+ children: (name) => ssr(_tmpl$33, ssrAttribute("class", escape(s().configToolChip, true), false), escape(name), ssrAttribute("class", escape(s().configToolChipCount, true), false), escape(toolInvocationCounts().get(name)) || 0)
7579
7591
  })));
7580
7592
  }
7581
7593
  })), escape(createComponent(Show, {
@@ -7702,9 +7714,9 @@ var IterationCard = (props) => {
7702
7714
  };
7703
7715
 
7704
7716
  // src/components/conversation/IterationTimeline.tsx
7705
- var _tmpl$33 = ["<div", ">", "</div>"];
7717
+ var _tmpl$34 = ["<div", ">", "</div>"];
7706
7718
  var _tmpl$210 = ["<div", ">No iterations recorded</div>"];
7707
- var _tmpl$34 = ["<span", ">", "</span>"];
7719
+ var _tmpl$35 = ["<span", ">", "</span>"];
7708
7720
  var _tmpl$43 = ["<pre", ">", "</pre>"];
7709
7721
  var _tmpl$53 = ["<div", "><div", "><span", ">#", "</span><span", ">", "</span>", "</div>", "</div>"];
7710
7722
  var _tmpl$63 = ["<span", ">", " tool", "</span>"];
@@ -7763,7 +7775,7 @@ var IterationTimeline = (props) => {
7763
7775
  }
7764
7776
  return result;
7765
7777
  });
7766
- return ssr(_tmpl$33, ssrAttribute("class", escape(s().container, true), false), escape(createComponent(Show, {
7778
+ return ssr(_tmpl$34, ssrAttribute("class", escape(s().container, true), false), escape(createComponent(Show, {
7767
7779
  get when() {
7768
7780
  return props.iterations.length > 0;
7769
7781
  },
@@ -7771,7 +7783,7 @@ var IterationTimeline = (props) => {
7771
7783
  return ssr(_tmpl$210, ssrAttribute("class", escape(s().noIterations, true), false));
7772
7784
  },
7773
7785
  get children() {
7774
- return ssr(_tmpl$33, ssrAttribute("class", escape(s().pipeline, true), false), escape(createComponent(Index, {
7786
+ return ssr(_tmpl$34, ssrAttribute("class", escape(s().pipeline, true), false), escape(createComponent(Index, {
7775
7787
  get each() {
7776
7788
  return groups();
7777
7789
  },
@@ -7804,7 +7816,7 @@ var SystemPromptItem = (props) => {
7804
7816
  return isLong();
7805
7817
  },
7806
7818
  get children() {
7807
- return ssr(_tmpl$34, ssrAttribute("class", escape(s().stepExpandToggle, true), false), expanded() ? "collapse" : "expand");
7819
+ return ssr(_tmpl$35, ssrAttribute("class", escape(s().stepExpandToggle, true), false), expanded() ? "collapse" : "expand");
7808
7820
  }
7809
7821
  })), escape(createComponent(Show, {
7810
7822
  get when() {
@@ -7938,7 +7950,7 @@ var UserMessageGroupCard = (props) => {
7938
7950
  return configSubtitle();
7939
7951
  },
7940
7952
  get children() {
7941
- return ssr(_tmpl$34, ssrAttribute("class", escape(s().subtitleText, true), false), escape(configSubtitle()));
7953
+ return ssr(_tmpl$35, ssrAttribute("class", escape(s().subtitleText, true), false), escape(configSubtitle()));
7942
7954
  }
7943
7955
  })), escape(createComponent(Show, {
7944
7956
  get when() {
@@ -7973,7 +7985,7 @@ var UserMessageGroupCard = (props) => {
7973
7985
  return hasExpandableConfig();
7974
7986
  },
7975
7987
  get children() {
7976
- return ssr(_tmpl$34, ssrAttribute("class", escape(s().subtitleExpandToggle, true), false), configExpanded() ? "hide config" : "show config");
7988
+ return ssr(_tmpl$35, ssrAttribute("class", escape(s().subtitleExpandToggle, true), false), configExpanded() ? "hide config" : "show config");
7977
7989
  }
7978
7990
  })), ssrAttribute("class", escape(s().cardHeaderBadges, true), false), escape(createComponent(Show, {
7979
7991
  get when() {
@@ -8077,7 +8089,7 @@ var UserMessageGroupCard = (props) => {
8077
8089
  })
8078
8090
  })))], false);
8079
8091
  };
8080
- var _tmpl$35 = ["<form", ' data-testid="ai-devtools-fixture-save-popover"><label', "><span", ">Fixture name</span><input", ' data-testid="ai-devtools-fixture-name-input"', "></label><div", "><button", ' data-testid="ai-devtools-fixture-save-confirm" type="submit">Save</button><button class="', '" data-testid="ai-devtools-fixture-save-cancel" type="button">Cancel</button></div></form>'];
8092
+ var _tmpl$36 = ["<form", ' data-testid="ai-devtools-fixture-save-popover"><label', "><span", ">Fixture name</span><input", ' data-testid="ai-devtools-fixture-name-input"', "></label><div", "><button", ' data-testid="ai-devtools-fixture-save-confirm" type="submit">Save</button><button class="', '" data-testid="ai-devtools-fixture-save-cancel" type="button">Cancel</button></div></form>'];
8081
8093
  var FixtureNamePopover = (props) => {
8082
8094
  const styles = useStyles();
8083
8095
  const [name, setName] = createSignal(props.defaultName);
@@ -8086,11 +8098,11 @@ var FixtureNamePopover = (props) => {
8086
8098
  setName(props.defaultName);
8087
8099
  queueMicrotask(() => input?.focus());
8088
8100
  });
8089
- return ssr(_tmpl$35, ssrAttribute("class", escape(styles().hookDetails.fixturePopover, true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureField, true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureLabel, true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureInput, true), false), ssrAttribute("value", escape(name(), true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureActions, true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureButton, true), false), `${escape(styles().hookDetails.fixtureButton, true)} ${escape(styles().hookDetails.fixtureButtonSecondary, true)}`);
8101
+ return ssr(_tmpl$36, ssrAttribute("class", escape(styles().hookDetails.fixturePopover, true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureField, true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureLabel, true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureInput, true), false), ssrAttribute("value", escape(name(), true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureActions, true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureButton, true), false), `${escape(styles().hookDetails.fixtureButton, true)} ${escape(styles().hookDetails.fixtureButtonSecondary, true)}`);
8090
8102
  };
8091
- var _tmpl$36 = ["<div", ' data-testid="ai-devtools-tool-fixture-form"', "><div", ">Tool Fixture</div><div", ">", "</div>", "<label", "><span", ">Output JSON</span><textarea", ' spellcheck="false"></textarea></label>', "<div", "><button", ' data-testid="ai-devtools-tool-fire" type="button">Fire</button><button class="', '" data-testid="ai-devtools-tool-save" type="button">Save</button></div>', "</div>"];
8103
+ var _tmpl$37 = ["<div", ' data-testid="ai-devtools-tool-fixture-form"', "><div", ">Tool Fixture</div><div", ">", "</div>", "<label", "><span", ">Output JSON</span><textarea", ' spellcheck="false"></textarea></label>', "<div", "><button", ' data-testid="ai-devtools-tool-fire" type="button">Fire</button><button class="', '" data-testid="ai-devtools-tool-save" type="button">Save</button></div>', "</div>"];
8092
8104
  var _tmpl$211 = ["<label", "><span", ">Input JSON</span><textarea", ' spellcheck="false"></textarea></label>'];
8093
- var _tmpl$37 = ["<span", ">*</span>"];
8105
+ var _tmpl$38 = ["<span", ">*</span>"];
8094
8106
  var _tmpl$44 = ["<span", ">", "</span>"];
8095
8107
  var _tmpl$54 = ["<label", "><span", ">", "", "</span>", "", "</label>"];
8096
8108
  var _tmpl$64 = ["<div", ">", "</div>"];
@@ -8154,7 +8166,7 @@ var ToolFixtureForm = (props) => {
8154
8166
  saveToolFixture(fixture);
8155
8167
  setPendingSaveName(null);
8156
8168
  };
8157
- return ssr(_tmpl$36, ssrAttribute("class", escape(styles().hookDetails.fixtureForm, true), false), ssrAttribute("data-tool-name", escape(props.tool.name, true), false), ssrAttribute("class", escape(styles().hookDetails.sectionTitle, true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureHelp, true), false), escape(props.tool.description) || escape(props.tool.name), escape(createComponent(Show, {
8169
+ return ssr(_tmpl$37, ssrAttribute("class", escape(styles().hookDetails.fixtureForm, true), false), ssrAttribute("data-tool-name", escape(props.tool.name, true), false), ssrAttribute("class", escape(styles().hookDetails.sectionTitle, true), false), ssrAttribute("class", escape(styles().hookDetails.fixtureHelp, true), false), escape(props.tool.description) || escape(props.tool.name), escape(createComponent(Show, {
8158
8170
  get when() {
8159
8171
  return fields().length > 0;
8160
8172
  },
@@ -8171,7 +8183,7 @@ var ToolFixtureForm = (props) => {
8171
8183
  return field.required;
8172
8184
  },
8173
8185
  get children() {
8174
- return ssr(_tmpl$37, ssrAttribute("class", escape(styles().hookDetails.requiredMark, true), false));
8186
+ return ssr(_tmpl$38, ssrAttribute("class", escape(styles().hookDetails.requiredMark, true), false));
8175
8187
  }
8176
8188
  })), escape(createComponent(Show, {
8177
8189
  get when() {
@@ -8378,9 +8390,9 @@ function isRecord2(value) {
8378
8390
  function normalizeText(value) {
8379
8391
  return value?.trim() ?? "";
8380
8392
  }
8381
- var _tmpl$38 = ["<div", ">", "</div>"];
8393
+ var _tmpl$39 = ["<div", ">", "</div>"];
8382
8394
  var _tmpl$212 = ["<section", "><div", ">Runs</div><div", ">No generation runs yet.</div></section>"];
8383
- var _tmpl$39 = ["<div", ">No output yet.</div>"];
8395
+ var _tmpl$310 = ["<div", ">No output yet.</div>"];
8384
8396
  var _tmpl$45 = ["<header", "><div", "><div", ">", "</div><div", ">", "</div></div><div", "><span", ">", "</span><span", ">", "</span></div></header>"];
8385
8397
  var _tmpl$55 = ["<div", "><div", ">", "", "", "", "", "", "</div>", "", "<div", ">", "", "</div></div>"];
8386
8398
  var _tmpl$65 = ["<div", "><span>", "</span><span>", "</span></div>"];
@@ -8409,7 +8421,7 @@ var GenerationPanel = (props) => {
8409
8421
  return ssr(_tmpl$212, ssrAttribute("class", escape(styles().hookDetails.section, true), false), ssrAttribute("class", escape(styles().hookDetails.sectionTitle, true), false), ssrAttribute("class", escape(styles().hookDetails.emptySmall, true), false));
8410
8422
  },
8411
8423
  get children() {
8412
- return ssr(_tmpl$38, ssrAttribute("class", escape(styles().hookDetails.generationRuns, true), false), escape(createComponent(For, {
8424
+ return ssr(_tmpl$39, ssrAttribute("class", escape(styles().hookDetails.generationRuns, true), false), escape(createComponent(For, {
8413
8425
  get each() {
8414
8426
  return generationRuns();
8415
8427
  },
@@ -8452,10 +8464,10 @@ var GenerationPreview = (props) => {
8452
8464
  return outputs().length > 0;
8453
8465
  },
8454
8466
  get fallback() {
8455
- return ssr(_tmpl$39, ssrAttribute("class", escape(styles().hookDetails.emptySmall, true), false));
8467
+ return ssr(_tmpl$310, ssrAttribute("class", escape(styles().hookDetails.emptySmall, true), false));
8456
8468
  },
8457
8469
  get children() {
8458
- return ssr(_tmpl$38, ssrAttribute("class", escape(styles().hookDetails.generationOutputGrid, true), false), escape(createComponent(For, {
8470
+ return ssr(_tmpl$39, ssrAttribute("class", escape(styles().hookDetails.generationOutputGrid, true), false), escape(createComponent(For, {
8459
8471
  get each() {
8460
8472
  return outputs();
8461
8473
  },
@@ -8556,7 +8568,7 @@ var GenerationRunCard = (props) => {
8556
8568
  get when() {
8557
8569
  return props.run.error;
8558
8570
  },
8559
- children: (message) => ssr(_tmpl$38, ssrAttribute("class", escape(styles().hookDetails.errorText, true), false), escape(message()))
8571
+ children: (message) => ssr(_tmpl$39, ssrAttribute("class", escape(styles().hookDetails.errorText, true), false), escape(message()))
8560
8572
  })), ssrAttribute("class", escape(styles().hookDetails.runDetailsGrid, true), false), escape(createComponent(RunField, {
8561
8573
  label: "Input",
8562
8574
  get children() {
@@ -8608,7 +8620,7 @@ var GenerationOutputTile = (props) => {
8608
8620
  get ["class"]() {
8609
8621
  return `${styles().hookDetails.outputTile} ${props.highlighted ? styles().hookDetails.outputTileHighlighted : ""}`;
8610
8622
  }
8611
- }), [ssr(_tmpl$38, ssrAttribute("class", escape(styles().hookDetails.outputTileBody, true), false), escape(createComponent(OutputContent, {
8623
+ }), [ssr(_tmpl$39, ssrAttribute("class", escape(styles().hookDetails.outputTileBody, true), false), escape(createComponent(OutputContent, {
8612
8624
  get output() {
8613
8625
  return props.output;
8614
8626
  },
@@ -8636,7 +8648,7 @@ var OutputContent = (props) => {
8636
8648
  return props.output.kind === "text";
8637
8649
  },
8638
8650
  get fallback() {
8639
- return ssr(_tmpl$38, ssrAttribute("class", props.compact ? escape(styles().hookDetails.outputTileText, true) : escape(styles().hookDetails.outputModalText, true), false), escape(createComponent(JsonTree, {
8651
+ return ssr(_tmpl$39, ssrAttribute("class", props.compact ? escape(styles().hookDetails.outputTileText, true) : escape(styles().hookDetails.outputModalText, true), false), escape(createComponent(JsonTree, {
8640
8652
  get value() {
8641
8653
  return props.output.value;
8642
8654
  },
@@ -8649,7 +8661,7 @@ var OutputContent = (props) => {
8649
8661
  })));
8650
8662
  },
8651
8663
  get children() {
8652
- return ssr(_tmpl$38, ssrAttribute("class", props.compact ? escape(styles().hookDetails.outputTileText, true) : escape(styles().hookDetails.outputModalText, true), false), escape(props.output.text));
8664
+ return ssr(_tmpl$39, ssrAttribute("class", props.compact ? escape(styles().hookDetails.outputTileText, true) : escape(styles().hookDetails.outputModalText, true), false), escape(props.output.text));
8653
8665
  }
8654
8666
  });
8655
8667
  },
@@ -8973,7 +8985,7 @@ function isRecord3(value) {
8973
8985
  // src/components/hooks/HookDetails.tsx
8974
8986
  var _tmpl$40 = ["<aside", ' data-testid="ai-devtools-preview-pane"><div', ">", "</div>", "</aside>"];
8975
8987
  var _tmpl$213 = ["<div", ' data-testid="ai-devtools-hook-detail">', "<nav", ' data-testid="ai-devtools-hook-tabs">', "", "", '</nav><div class="', '"><main', ' data-testid="ai-devtools-primary-pane">', "", "", "</main>", "</div></div>"];
8976
- var _tmpl$310 = ["<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", ">", "</div></div>"];
8988
+ var _tmpl$311 = ["<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", ">", "</div></div>"];
8977
8989
  var _tmpl$46 = ["<div", ">Open a page with TanStack AI hooks to inspect live state.</div>"];
8978
8990
  var _tmpl$56 = ["<section", ' data-testid="ai-devtools-overview-category"', "><div", "><span>", "</span><span>", "</span></div>", "</section>"];
8979
8991
  var _tmpl$66 = ["<span", ">running</span>"];
@@ -9233,7 +9245,7 @@ var HookOverview = (props) => {
9233
9245
  return ssr(_tmpl$46, ssrAttribute("class", escape(styles().hookDetails.empty, true), false));
9234
9246
  },
9235
9247
  get children() {
9236
- return ssr(_tmpl$310, ssrAttribute("class", escape(styles().hookDetails.overview, true), false), ssrAttribute("class", escape(styles().hookDetails.overviewHeader, true), false), ssrAttribute("class", escape(styles().hookDetails.overviewTitle, true), false), ssrAttribute("class", escape(styles().hookDetails.overviewSubtitle, true), false), ssrAttribute("class", escape(styles().hookDetails.overviewMetricGrid, true), false), escape(createComponent(OverviewMetric, {
9248
+ return ssr(_tmpl$311, ssrAttribute("class", escape(styles().hookDetails.overview, true), false), ssrAttribute("class", escape(styles().hookDetails.overviewHeader, true), false), ssrAttribute("class", escape(styles().hookDetails.overviewTitle, true), false), ssrAttribute("class", escape(styles().hookDetails.overviewSubtitle, true), false), ssrAttribute("class", escape(styles().hookDetails.overviewMetricGrid, true), false), escape(createComponent(OverviewMetric, {
9237
9249
  label: "active hooks",
9238
9250
  get value() {
9239
9251
  return summary().active;