tokentracker-cli 0.76.0 → 0.76.2

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.
Files changed (57) hide show
  1. package/dashboard/dist/assets/{ActivityHeatmap-Cc7rHzpc.js → ActivityHeatmap-CPGN-WN1.js} +1 -1
  2. package/dashboard/dist/assets/{Card-i15i_EDL.js → Card-Bw438EXT.js} +1 -1
  3. package/dashboard/dist/assets/{ClawdAnimated-DMuZ5d5m.js → ClawdAnimated-DuxB7qei.js} +1 -1
  4. package/dashboard/dist/assets/{CommunityStatsModal-cKwxGEGB.js → CommunityStatsModal--AuOLfq1.js} +1 -1
  5. package/dashboard/dist/assets/{ConfirmModal-Ck-ybj6p.js → ConfirmModal-DXV9mzMw.js} +1 -1
  6. package/dashboard/dist/assets/{Controls-CxmOdwJ3.js → Controls-D0h-lPHC.js} +1 -1
  7. package/dashboard/dist/assets/{DashboardPage-ED4-b7kr.js → DashboardPage-_9IPwhlZ.js} +1 -1
  8. package/dashboard/dist/assets/{DevicePage-DcKvkJNR.js → DevicePage-CMa1l2sC.js} +1 -1
  9. package/dashboard/dist/assets/{DialogClose-C6nuJJ_i.js → DialogClose-DBKCvZPm.js} +1 -1
  10. package/dashboard/dist/assets/DialogDescription-Dj5LvyRi.js +1 -0
  11. package/dashboard/dist/assets/{DialogTitle-D0xEUAQD.js → DialogTitle-CuhKU10w.js} +1 -1
  12. package/dashboard/dist/assets/{FadeIn-GWxxEiEG.js → FadeIn-BoYq0Lpr.js} +1 -1
  13. package/dashboard/dist/assets/{HeaderGithubStar-BNs6lPrd.js → HeaderGithubStar-DD58NKiQ.js} +1 -1
  14. package/dashboard/dist/assets/{IpCheckPage-BHEGYdwZ.js → IpCheckPage-Pw-_Uvsa.js} +1 -1
  15. package/dashboard/dist/assets/{LandingPage-qCAwHW-r.js → LandingPage-D2t79SLx.js} +1 -1
  16. package/dashboard/dist/assets/{LeaderboardAvatar-aso6D7AA.js → LeaderboardAvatar-D_fl_xuD.js} +1 -1
  17. package/dashboard/dist/assets/{LeaderboardPage-BVDho0zN.js → LeaderboardPage-0jDDohE4.js} +2 -2
  18. package/dashboard/dist/assets/{LeaderboardProfileModal-D5qe822P.js → LeaderboardProfileModal-DSMTxieN.js} +1 -1
  19. package/dashboard/dist/assets/{LeaderboardProfilePage-BhfX0BP4.js → LeaderboardProfilePage-neatevKp.js} +1 -1
  20. package/dashboard/dist/assets/{LimitsPage-BDld2Tw9.js → LimitsPage-DqaIA0Es.js} +1 -1
  21. package/dashboard/dist/assets/{LocalOnlyNotice-B7Ws4lUu.js → LocalOnlyNotice-Ds7yPxS1.js} +1 -1
  22. package/dashboard/dist/assets/{LoginPage-D7OQrvP6.js → LoginPage-7dsJbTEb.js} +1 -1
  23. package/dashboard/dist/assets/PetPage-UWW1N1PL.js +1 -0
  24. package/dashboard/dist/assets/{PopoverPopup-MhHKPgtt.js → PopoverPopup-Bg8XtAJ5.js} +1 -1
  25. package/dashboard/dist/assets/{ResetPasswordPage-C3QmfXcI.js → ResetPasswordPage-Czaz9zzN.js} +1 -1
  26. package/dashboard/dist/assets/{Select-B9zxyBF3.js → Select-Dk9uTtUI.js} +1 -1
  27. package/dashboard/dist/assets/{SelectItemText-D-kCTY6-.js → SelectItemText-Dontd_dr.js} +1 -1
  28. package/dashboard/dist/assets/{SettingsPage-1NY7r1OL.js → SettingsPage-CunCphUc.js} +1 -1
  29. package/dashboard/dist/assets/{SkillsPage-B6dZnAvn.js → SkillsPage-BElcW79T.js} +1 -1
  30. package/dashboard/dist/assets/{WidgetsPage-BY_51IWL.js → WidgetsPage-CpAPhR3_.js} +1 -1
  31. package/dashboard/dist/assets/{WrappedPage-BNvs3dW4.js → WrappedPage-DikP22Sw.js} +1 -1
  32. package/dashboard/dist/assets/{agent-logos-Cg92StIs.js → agent-logos-D8OYqlhF.js} +1 -1
  33. package/dashboard/dist/assets/{arrow-up-right-5jhx4tzl.js → arrow-up-right-DsLWfytD.js} +1 -1
  34. package/dashboard/dist/assets/check-CPB_1BeX.js +1 -0
  35. package/dashboard/dist/assets/{copy-CcD9E3do.js → copy-BxHuZgA1.js} +1 -1
  36. package/dashboard/dist/assets/{download-hUD-lQh8.js → download-tXehSjsQ.js} +1 -1
  37. package/dashboard/dist/assets/{format-tokens-BPZCO1fQ.js → format-tokens-ab57-P2J.js} +1 -1
  38. package/dashboard/dist/assets/{info-4Bz63oh6.js → info-Xcqww53Y.js} +1 -1
  39. package/dashboard/dist/assets/{main-nNmpL8Cj.js → main-BQdH4mOs.js} +2 -2
  40. package/dashboard/dist/assets/main-zch5Z6OA.css +1 -0
  41. package/dashboard/dist/assets/{use-community-stats-D6SkhwbZ.js → use-community-stats-DFBJP4bf.js} +1 -1
  42. package/dashboard/dist/assets/{use-limits-display-prefs-BAQYB-31.js → use-limits-display-prefs-gmXXzoWe.js} +1 -1
  43. package/dashboard/dist/assets/{use-native-settings-xp2V6xfM.js → use-native-settings-BNv4MqR-.js} +1 -1
  44. package/dashboard/dist/assets/{use-ordered-list-C5_uGsrS.js → use-ordered-list-Dl82Utll.js} +1 -1
  45. package/dashboard/dist/assets/{use-quality-per-dollar-pref-iQsn9WQp.js → use-quality-per-dollar-pref-XOF93N4q.js} +1 -1
  46. package/dashboard/dist/assets/{use-usage-limits-6uexiute.js → use-usage-limits-YUhemFAp.js} +1 -1
  47. package/dashboard/dist/assets/{useCurrency-CmVvLPhb.js → useCurrency-B6KHWgVk.js} +1 -1
  48. package/dashboard/dist/assets/{useScrollLock-C-uJaCDp.js → useScrollLock-BEZTkDaR.js} +1 -1
  49. package/dashboard/dist/index.html +2 -2
  50. package/dashboard/dist/share.html +2 -2
  51. package/package.json +1 -1
  52. package/src/lib/pricing/seed-snapshot.json +1 -1
  53. package/src/lib/rollout.js +40 -10
  54. package/dashboard/dist/assets/DialogDescription-C6z_szoN.js +0 -1
  55. package/dashboard/dist/assets/PetPage-DsCEXiJf.js +0 -1
  56. package/dashboard/dist/assets/check-DhneqxBx.js +0 -1
  57. package/dashboard/dist/assets/main-BI3jOnQS.css +0 -1
@@ -9443,10 +9443,28 @@ async function parseCopilotIncremental({ otelPaths, cursors, queuePath, onProgre
9443
9443
  attrs["gen_ai.usage.reasoning_tokens"] ??
9444
9444
  attrs["gen_ai.usage.reasoning_output_tokens"],
9445
9445
  );
9446
- // OTEL input_tokens INCLUDES cache_read — subtract per project convention
9446
+ const reasoningClamped = Math.min(reasoning, output);
9447
+ const outputWithoutReasoning = Math.max(0, output - reasoningClamped);
9448
+ const cliSpan = isCopilotV1ChatSpan(record);
9449
+ // CLI input includes both cache reads and writes. Chat-extension
9450
+ // LogRecords expose cache creation separately, so preserve their existing
9451
+ // input-minus-read semantics.
9447
9452
  const cacheReadClamped = Math.min(cacheRead, inputRaw);
9448
- const input = Math.max(0, inputRaw - cacheReadClamped);
9449
- const totalInteresting = input + output + cacheReadClamped + cacheWrite + reasoning;
9453
+ const cacheWriteClamped = Math.min(
9454
+ cacheWrite,
9455
+ Math.max(0, inputRaw - cacheReadClamped),
9456
+ );
9457
+ const cacheWriteForAccounting = cliSpan ? cacheWriteClamped : cacheWrite;
9458
+ const input = Math.max(
9459
+ 0,
9460
+ inputRaw - cacheReadClamped - (cliSpan ? cacheWriteClamped : 0),
9461
+ );
9462
+ const totalInteresting =
9463
+ input +
9464
+ outputWithoutReasoning +
9465
+ cacheReadClamped +
9466
+ cacheWriteForAccounting +
9467
+ reasoningClamped;
9450
9468
  if (totalInteresting === 0) continue;
9451
9469
 
9452
9470
  // CLI Span uses endTime/startTime; Chat extension LogRecord uses hrTime/hrTimeObserved.
@@ -9460,15 +9478,22 @@ async function parseCopilotIncremental({ otelPaths, cursors, queuePath, onProgre
9460
9478
  const bucketStart = toUtcHalfHourStart(tsIso);
9461
9479
  if (!bucketStart) continue;
9462
9480
 
9463
- const model = normalizeModelInput(pickCopilotModel(attrs)) || "github-copilot";
9481
+ const model =
9482
+ normalizeCopilotAppModel(pickCopilotModel(attrs)) ||
9483
+ COPILOT_APP_DEFAULT_MODEL;
9464
9484
 
9465
9485
  const delta = {
9466
9486
  input_tokens: input,
9467
9487
  cached_input_tokens: cacheReadClamped,
9468
- cache_creation_input_tokens: cacheWrite,
9469
- output_tokens: output,
9470
- reasoning_output_tokens: reasoning,
9471
- total_tokens: input + output + cacheReadClamped + cacheWrite + reasoning,
9488
+ cache_creation_input_tokens: cacheWriteForAccounting,
9489
+ output_tokens: outputWithoutReasoning,
9490
+ reasoning_output_tokens: reasoningClamped,
9491
+ total_tokens:
9492
+ input +
9493
+ outputWithoutReasoning +
9494
+ cacheReadClamped +
9495
+ cacheWriteForAccounting +
9496
+ reasoningClamped,
9472
9497
  conversation_count: 1,
9473
9498
  };
9474
9499
 
@@ -9735,8 +9760,13 @@ function normalizeCopilotAppTokenDelta(curr, prev) {
9735
9760
  const cachedDelta = Math.max(0, Number(curr?.cached || 0) - Number(prev?.cached || 0));
9736
9761
  const cachedInputTokens = Math.min(cachedDelta, inputDelta);
9737
9762
  const inputTokens = Math.max(0, inputDelta - cachedInputTokens);
9738
- const outputTokens = Math.max(0, Number(curr?.output || 0) - Number(prev?.output || 0));
9739
- const reasoningTokens = Math.max(0, Number(curr?.reasoning || 0) - Number(prev?.reasoning || 0));
9763
+ const outputDelta = Math.max(0, Number(curr?.output || 0) - Number(prev?.output || 0));
9764
+ const reasoningDelta = Math.max(
9765
+ 0,
9766
+ Number(curr?.reasoning || 0) - Number(prev?.reasoning || 0),
9767
+ );
9768
+ const reasoningTokens = Math.min(reasoningDelta, outputDelta);
9769
+ const outputTokens = Math.max(0, outputDelta - reasoningTokens);
9740
9770
  const totalTokens = inputTokens + cachedInputTokens + outputTokens + reasoningTokens;
9741
9771
  return {
9742
9772
  input_tokens: inputTokens,
@@ -1 +0,0 @@
1
- import{r as n,b9 as a}from"./main-nNmpL8Cj.js";import{u as p}from"./DialogTitle-D0xEUAQD.js";import{u as c}from"./useScrollLock-C-uJaCDp.js";const x=n.forwardRef(function(e,r){const{render:l,className:u,style:m,id:s,...t}=e,{store:i}=p(),o=c(s);return i.useSyncedValueWithCleanup("descriptionElementId",o),a("p",e,{ref:r,props:[{id:o},t]})});export{x as D};
@@ -1 +0,0 @@
1
- import{c as h,aI as k,d5 as j,r as o,d6 as w,d7 as N,d8 as S,N as a,j as e,a0 as g}from"./main-nNmpL8Cj.js";import{T as z,b as K}from"./Controls-CxmOdwJ3.js";import{n as C,C as p}from"./ClawdAnimated-DMuZ5d5m.js";import{F as x}from"./FadeIn-GWxxEiEG.js";import"./Card-i15i_EDL.js";const _=[["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"M12 13V7",key:"h0r20n"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]],P=h("monitor-up",_);const A=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],E=h("zap",A),I={visible:!1,character:"clawd",size:"medium"};function R(){const t=k()&&j(),[s,l]=o.useState(I);o.useEffect(()=>{if(!t)return;const d=w(r=>{l({visible:!!r.visible,character:C(r.character),size:["small","medium","large"].includes(r.size)?r.size:"medium"})});return N(),d},[t]);const n=o.useCallback((d,r)=>{l(m=>({...m,[d]:r})),t&&S(d,r)},[t]);return{available:t,settings:s,setSetting:n}}const T=[{id:"clawd",nameKey:"pet.character.clawd",descKey:"pet.character.clawd_desc",tint:"from-oai-amber-50 dark:from-orange-950/70"},{id:"sprout",nameKey:"pet.character.sprout",descKey:"pet.character.sprout_desc",tint:"from-oai-brand-100 dark:from-emerald-950/70"},{id:"byte",nameKey:"pet.character.byte",descKey:"pet.character.byte_desc",tint:"from-oai-gray-200 dark:from-slate-800/70"},{id:"ember",nameKey:"pet.character.ember",descKey:"pet.character.ember_desc",tint:"from-orange-100 dark:from-orange-950/80"}],c=[{id:"idle-living",labelKey:"pet.state.calm"},{id:"working-thinking",labelKey:"pet.state.focus"},{id:"working-juggling",labelKey:"pet.state.multitask"},{id:"working-wizard",labelKey:"pet.state.streak"},{id:"happy",labelKey:"pet.state.celebrate"},{id:"sleeping",labelKey:"pet.state.rest"}];function M({character:t,selected:s,onSelect:l}){return e.jsxs("button",{type:"button",onClick:l,"aria-pressed":s,className:g("group relative overflow-hidden rounded-2xl border p-4 text-left transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",s?"border-oai-brand-500/40 bg-white shadow-sm shadow-oai-brand-500/10 dark:border-oai-brand-500/25 dark:bg-oai-gray-900/80 dark:shadow-black/25":"border-oai-gray-200/80 bg-white/55 hover:-translate-y-0.5 hover:border-oai-gray-400 dark:border-oai-gray-800 dark:bg-oai-gray-950/55 dark:hover:border-oai-gray-600"),children:[e.jsx("div",{className:g("absolute inset-0 bg-gradient-to-br to-transparent opacity-80 dark:opacity-55",t.tint)}),e.jsxs("div",{className:"relative flex items-center gap-3",children:[e.jsx("div",{className:"flex h-16 w-16 shrink-0 items-center justify-center rounded-xl bg-white/70 dark:bg-black/15",children:e.jsx(p,{state:"idle-living",character:t.id,size:58})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-white",children:a(t.nameKey)}),s?e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-oai-brand-500","aria-hidden":!0}):null]}),e.jsx("p",{className:"mt-1 text-xs leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:a(t.descKey)})]})]})]})}function L({character:t,state:s}){const l=c.find(function(r){return r.id===s}),n=a(l?.labelKey||"pet.state.calm");return e.jsxs("div",{className:"relative flex min-h-[300px] items-center justify-center overflow-hidden rounded-[28px] border border-oai-gray-200/70 bg-oai-gray-50 dark:border-oai-gray-800 dark:bg-oai-gray-950",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.16] dark:opacity-[0.12]",style:{backgroundImage:"radial-gradient(currentColor 0.7px, transparent 0.7px)",backgroundSize:"14px 14px"},"aria-hidden":!0}),e.jsxs("div",{className:"absolute left-5 top-5 flex items-center gap-2 rounded-full border border-black/5 bg-white/60 px-3 py-1.5 text-[11px] font-medium text-oai-gray-600 backdrop-blur-md dark:border-white/10 dark:bg-black/20 dark:text-oai-gray-300",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500","aria-hidden":!0}),n]}),e.jsxs("div",{className:"relative flex h-48 w-48 items-center justify-center",children:[e.jsx("div",{className:"absolute bottom-6 h-3 w-24 rounded-full bg-black/10 blur-sm dark:bg-black/35","aria-hidden":!0}),e.jsx(p,{state:s,character:t,size:176})]})]})}function D(){const{available:t,settings:s,setSetting:l}=R(),[n,d]=o.useState("idle-living"),[r,m]=o.useState(!0),b=s.character||"clawd";o.useEffect(()=>{if(!r)return;const i=window.setInterval(()=>{d(y=>{const f=c.findIndex(v=>v.id===y);return c[(f+1)%c.length].id})},5e3);return()=>window.clearInterval(i)},[r]);const u=[{value:"small",label:a("pet.size.small")},{value:"medium",label:a("pet.size.medium")},{value:"large",label:a("pet.size.large")}];return e.jsx("div",{className:"flex flex-1 flex-col font-oai text-oai-black antialiased dark:text-oai-white",children:e.jsx("main",{className:"flex-1 pb-14 pt-8 sm:pt-10",children:e.jsxs("div",{className:"mx-auto max-w-5xl px-4 sm:px-6",children:[e.jsx(x,{y:12,children:e.jsxs("header",{className:"mb-8",children:[e.jsx("h1",{className:"text-3xl font-semibold tracking-tight sm:text-4xl",children:a("pet.page.title")}),e.jsx("p",{className:"mt-2 max-w-2xl text-sm leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:a("pet.page.subtitle")})]})}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-[1.15fr_0.85fr]",children:[e.jsxs(x,{y:12,delay:.04,children:[e.jsx(L,{character:b,state:n}),e.jsx("div",{className:"mt-3 flex flex-wrap gap-2","aria-label":a("pet.preview.states"),children:c.map(i=>e.jsx("button",{type:"button",onClick:()=>{m(!1),d(i.id)},"aria-pressed":n===i.id,className:g("rounded-full px-3 py-1.5 text-xs transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",n===i.id?"bg-oai-black text-white dark:bg-white dark:text-black":"bg-oai-gray-100 text-oai-gray-600 hover:bg-oai-gray-200 dark:bg-oai-gray-900 dark:text-oai-gray-300 dark:hover:bg-oai-gray-800"),children:a(i.labelKey)},i.id))})]}),e.jsx(x,{y:12,delay:.08,children:e.jsxs("div",{className:"rounded-2xl border border-oai-gray-200 bg-white/70 p-5 dark:border-oai-gray-800 dark:bg-oai-gray-900/60",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(P,{className:"h-4 w-4 text-oai-gray-500","aria-hidden":!0}),e.jsx("h2",{className:"text-sm font-semibold",children:a("pet.controls.title")})]}),e.jsxs("div",{className:"mt-5 space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-sm",children:a("pet.controls.show")}),e.jsx("div",{className:"mt-0.5 text-xs text-oai-gray-500",children:a("pet.controls.show_hint")})]}),e.jsx(z,{checked:s.visible,onChange:()=>l("visible",!s.visible),disabled:!t,ariaLabel:a("pet.controls.show")})]}),e.jsx("div",{className:"h-px bg-oai-gray-200/70 dark:bg-oai-gray-800"}),e.jsxs("div",{children:[e.jsx("div",{className:"mb-2 text-sm",children:a("pet.controls.size")}),e.jsx(K,{options:u,value:s.size,onChange:i=>l("size",i),disabled:!t})]}),t?null:e.jsxs("div",{className:"flex gap-2 rounded-xl bg-oai-gray-100 p-3 text-xs leading-relaxed text-oai-gray-500 dark:bg-oai-gray-800/70 dark:text-oai-gray-400",children:[e.jsx(E,{className:"mt-0.5 h-3.5 w-3.5 shrink-0","aria-hidden":!0}),a("pet.controls.native_only")]})]})]})})]}),e.jsx(x,{y:12,delay:.12,children:e.jsxs("section",{className:"mt-10","aria-labelledby":"pet-character-title",children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("h2",{id:"pet-character-title",className:"text-xl font-semibold tracking-tight sm:text-2xl",children:a("pet.characters.title")}),e.jsx("p",{className:"mt-1 text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("pet.characters.subtitle")})]}),e.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:T.map(i=>e.jsx(M,{character:i,selected:b===i.id,onSelect:()=>l("character",i.id)},i.id))})]})})]})})})}export{D as PetPage};
@@ -1 +0,0 @@
1
- import{c}from"./main-nNmpL8Cj.js";const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t=c("check",e);export{t as C};