tokentracker-cli 0.76.2 → 0.77.0
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.de.md +10 -0
- package/README.ja.md +9 -0
- package/README.ko.md +9 -0
- package/README.md +10 -0
- package/README.zh-CN.md +9 -0
- package/dashboard/dist/assets/{ActivityHeatmap-CPGN-WN1.js → ActivityHeatmap-B7z62JlL.js} +1 -1
- package/dashboard/dist/assets/{Card-Bw438EXT.js → Card-__rwvnP4.js} +1 -1
- package/dashboard/dist/assets/ClawdAnimated-DaCAutqr.js +1 -0
- package/dashboard/dist/assets/{CommunityStatsModal--AuOLfq1.js → CommunityStatsModal-CWm0mzAf.js} +1 -1
- package/dashboard/dist/assets/{ConfirmModal-DXV9mzMw.js → ConfirmModal-B7N0Zppz.js} +1 -1
- package/dashboard/dist/assets/{Controls-D0h-lPHC.js → Controls-BTDwRDvm.js} +1 -1
- package/dashboard/dist/assets/DashboardPage-D1_icfKi.js +19 -0
- package/dashboard/dist/assets/{DevicePage-CMa1l2sC.js → DevicePage-gtfDUhRQ.js} +1 -1
- package/dashboard/dist/assets/{DialogClose-DBKCvZPm.js → DialogClose-qIxDdczo.js} +1 -1
- package/dashboard/dist/assets/DialogDescription-DbGIQcnQ.js +1 -0
- package/dashboard/dist/assets/{DialogTitle-CuhKU10w.js → DialogTitle-CSDMrQhN.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-BoYq0Lpr.js → FadeIn-NsSXdhWN.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-DD58NKiQ.js → HeaderGithubStar-bKcBtWVl.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-Pw-_Uvsa.js → IpCheckPage-CE76US_W.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-D2t79SLx.js → LandingPage-D41_7gBb.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardAvatar-D_fl_xuD.js → LeaderboardAvatar-Cy3g-HWp.js} +1 -1
- package/dashboard/dist/assets/LeaderboardPage-1WBDWMat.js +2 -0
- package/dashboard/dist/assets/{LeaderboardProfileModal-DSMTxieN.js → LeaderboardProfileModal-D2QG43nj.js} +3 -3
- package/dashboard/dist/assets/{LeaderboardProfilePage-neatevKp.js → LeaderboardProfilePage-v4ko4GNe.js} +2 -2
- package/dashboard/dist/assets/{LimitsPage-DqaIA0Es.js → LimitsPage-DTZULDvf.js} +1 -1
- package/dashboard/dist/assets/{LocalOnlyNotice-Ds7yPxS1.js → LocalOnlyNotice-C-ee2yBe.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-7dsJbTEb.js → LoginPage-CDEH8cRz.js} +1 -1
- package/dashboard/dist/assets/PetPage-DvfRgRhO.js +1 -0
- package/dashboard/dist/assets/PopoverPopup-BLppStGT.js +1 -0
- package/dashboard/dist/assets/{ResetPasswordPage-Czaz9zzN.js → ResetPasswordPage-BiyFeB4S.js} +1 -1
- package/dashboard/dist/assets/{Select-Dk9uTtUI.js → Select-CuIsuAVQ.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-Dontd_dr.js → SelectItemText-BD39TQ1S.js} +1 -1
- package/dashboard/dist/assets/{SettingsPage-CunCphUc.js → SettingsPage-DQSVBBG9.js} +1 -1
- package/dashboard/dist/assets/SkillsPage-DaIdd4xK.js +1 -0
- package/dashboard/dist/assets/{WidgetsPage-CpAPhR3_.js → WidgetsPage-3UhcR9QZ.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-DikP22Sw.js → WrappedPage-DCVq4Xff.js} +1 -1
- package/dashboard/dist/assets/{agent-logos-D8OYqlhF.js → agent-logos-R2tmPdL9.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-DsLWfytD.js → arrow-up-right-BHRB6j-Z.js} +1 -1
- package/dashboard/dist/assets/check-BbbG2Gcp.js +1 -0
- package/dashboard/dist/assets/{copy-BxHuZgA1.js → copy-DqnHEyjG.js} +1 -1
- package/dashboard/dist/assets/{download-tXehSjsQ.js → download-BENVX8oP.js} +1 -1
- package/dashboard/dist/assets/{format-tokens-ab57-P2J.js → format-tokens-UEB1iTo5.js} +1 -1
- package/dashboard/dist/assets/{info-Xcqww53Y.js → info-BJz0ItGV.js} +1 -1
- package/dashboard/dist/assets/link-2-DTkXHGCX.js +1 -0
- package/dashboard/dist/assets/loader-circle-CD8DppwM.js +1 -0
- package/dashboard/dist/assets/main-B8lT0e78.css +1 -0
- package/dashboard/dist/assets/{main-BQdH4mOs.js → main-D0segwJ8.js} +15 -4
- package/dashboard/dist/assets/trash-2-BkzmWJMI.js +1 -0
- package/dashboard/dist/assets/{use-community-stats-DFBJP4bf.js → use-community-stats-Bye7a_kk.js} +1 -1
- package/dashboard/dist/assets/{use-limits-display-prefs-gmXXzoWe.js → use-limits-display-prefs-Cd7QCxBh.js} +1 -1
- package/dashboard/dist/assets/{use-native-settings-BNv4MqR-.js → use-native-settings-BfB5GsUB.js} +1 -1
- package/dashboard/dist/assets/{use-ordered-list-Dl82Utll.js → use-ordered-list-CRDF6ju7.js} +1 -1
- package/dashboard/dist/assets/{use-quality-per-dollar-pref-XOF93N4q.js → use-quality-per-dollar-pref-D_UMPxxS.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-YUhemFAp.js → use-usage-limits-D6h39bCy.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-B6KHWgVk.js → useCurrency-CtAxkO0_.js} +1 -1
- package/dashboard/dist/assets/{useScrollLock-BEZTkDaR.js → useScrollLock-DFY_kQZc.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist/share.html +2 -2
- package/package.json +3 -2
- package/src/commands/status.js +44 -7
- package/src/commands/sync.js +83 -108
- package/src/lib/install-resolver.js +1 -1
- package/src/lib/local-api.js +97 -0
- package/src/lib/pet-packages.js +373 -0
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/rollout.js +42 -28
- package/dashboard/dist/assets/ClawdAnimated-DuxB7qei.js +0 -1
- package/dashboard/dist/assets/DashboardPage-_9IPwhlZ.js +0 -19
- package/dashboard/dist/assets/DialogDescription-Dj5LvyRi.js +0 -1
- package/dashboard/dist/assets/LeaderboardPage-0jDDohE4.js +0 -2
- package/dashboard/dist/assets/PetPage-UWW1N1PL.js +0 -1
- package/dashboard/dist/assets/PopoverPopup-Bg8XtAJ5.js +0 -1
- package/dashboard/dist/assets/SkillsPage-BElcW79T.js +0 -1
- package/dashboard/dist/assets/check-CPB_1BeX.js +0 -1
- package/dashboard/dist/assets/main-zch5Z6OA.css +0 -1
package/src/lib/rollout.js
CHANGED
|
@@ -3116,37 +3116,51 @@ async function walkOpencodeMessages(dir, out) {
|
|
|
3116
3116
|
function readOpencodeDbMessages(dbPath, sqliteOptions = {}) {
|
|
3117
3117
|
if (!dbPath || !fssync.existsSync(dbPath)) return [];
|
|
3118
3118
|
const sql = `SELECT id, session_id, time_updated, data FROM message WHERE json_extract(data, '$.role') = 'assistant' ORDER BY time_created ASC`;
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
...sqliteOptions,
|
|
3124
|
-
});
|
|
3125
|
-
const out = [];
|
|
3126
|
-
for (const row of rows) {
|
|
3127
|
-
if (!row || typeof row.data !== "string") continue;
|
|
3128
|
-
let data;
|
|
3119
|
+
|
|
3120
|
+
let snapshot = null;
|
|
3121
|
+
let effectiveDbPath = dbPath;
|
|
3122
|
+
if (isUncPath(dbPath)) {
|
|
3129
3123
|
try {
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
if (!hasTokens) continue;
|
|
3142
|
-
out.push({
|
|
3143
|
-
id: row.id || data.id,
|
|
3144
|
-
sessionID: row.session_id || data.sessionID,
|
|
3145
|
-
timeUpdated: row.time_updated || 0,
|
|
3146
|
-
data,
|
|
3124
|
+
snapshot = snapshotSqliteDb(dbPath);
|
|
3125
|
+
effectiveDbPath = snapshot.path;
|
|
3126
|
+
} catch (_e) { }
|
|
3127
|
+
}
|
|
3128
|
+
|
|
3129
|
+
try {
|
|
3130
|
+
const rows = readSqliteJsonRows(effectiveDbPath, sql, {
|
|
3131
|
+
label: "OpenCode",
|
|
3132
|
+
maxBuffer: 50 * 1024 * 1024,
|
|
3133
|
+
timeout: 30_000,
|
|
3134
|
+
...sqliteOptions,
|
|
3147
3135
|
});
|
|
3136
|
+
const out = [];
|
|
3137
|
+
for (const row of rows) {
|
|
3138
|
+
if (!row || typeof row.data !== "string") continue;
|
|
3139
|
+
let data;
|
|
3140
|
+
try {
|
|
3141
|
+
data = JSON.parse(row.data);
|
|
3142
|
+
} catch (_e) {
|
|
3143
|
+
continue;
|
|
3144
|
+
}
|
|
3145
|
+
const tokens = data?.tokens;
|
|
3146
|
+
if (!tokens || typeof tokens !== "object") continue;
|
|
3147
|
+
// Skip messages with no meaningful token data
|
|
3148
|
+
const hasTokens =
|
|
3149
|
+
toNonNegativeInt(tokens.input) > 0 ||
|
|
3150
|
+
toNonNegativeInt(tokens.output) > 0 ||
|
|
3151
|
+
toNonNegativeInt(tokens.reasoning) > 0;
|
|
3152
|
+
if (!hasTokens) continue;
|
|
3153
|
+
out.push({
|
|
3154
|
+
id: row.id || data.id,
|
|
3155
|
+
sessionID: row.session_id || data.sessionID,
|
|
3156
|
+
timeUpdated: row.time_updated || 0,
|
|
3157
|
+
data,
|
|
3158
|
+
});
|
|
3159
|
+
}
|
|
3160
|
+
return out;
|
|
3161
|
+
} finally {
|
|
3162
|
+
if (snapshot) snapshot.cleanup();
|
|
3148
3163
|
}
|
|
3149
|
-
return out;
|
|
3150
3164
|
}
|
|
3151
3165
|
|
|
3152
3166
|
// mimocode mirrors the user's Claude Code + claude-mem history into its own
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as o,j as l}from"./main-BQdH4mOs.js";const S=["clawd","sprout","byte","ember"];function f(e){const n=String(e||"").trim().toLowerCase();return S.includes(n)?n:"clawd"}const E=.84;function x(e){return f(e)==="clawd"?E:1}const M={idle:{row:0,durations:[280,110,110,140,140,320]},"running-right":{row:1,durations:[120,120,120,120,120,120,120,220]},"running-left":{row:2,durations:[120,120,120,120,120,120,120,220]},waving:{row:3,durations:[140,140,140,280]},jumping:{row:4,durations:[140,140,140,140,280]},failed:{row:5,durations:[140,140,140,140,140,140,140,240]},waiting:{row:6,durations:[150,150,150,150,150,260]},running:{row:7,durations:[120,120,120,120,120,220]},review:{row:8,durations:[150,150,150,150,150,280]}};function j(e){return["error","disconnected","working-overheated"].includes(e)?"failed":["happy","waking","mini-happy","jumping"].includes(e)?"jumping":["working-typing","working-ultrathink","working-juggling","running"].includes(e)?"running":["working-thinking","working-wizard","review"].includes(e)?"review":["sleeping","idle-doze","mini-sleep","waiting"].includes(e)?"waiting":["mini-peek","waving"].includes(e)?"waving":e==="running-left"||e==="running-right"?e:"idle"}function A(){const[e,n]=o.useState(()=>typeof document>"u"?!0:document.visibilityState!=="hidden");return o.useEffect(()=>{if(typeof document>"u")return;const i=()=>n(document.visibilityState!=="hidden");return document.addEventListener("visibilitychange",i),()=>document.removeEventListener("visibilitychange",i)},[]),e}function C(){const[e,n]=o.useState(()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return o.useEffect(()=>{if(typeof window.matchMedia!="function")return;const i=window.matchMedia("(prefers-reduced-motion: reduce)"),t=r=>n(r.matches);return i.addEventListener("change",t),()=>i.removeEventListener("change",t)},[]),e}function R({character:e,state:n="idle-living",size:i=48,className:t=""}){const r=f(e),c=j(n),a=M[c],g=C(),u=A(),[d,s]=o.useState(0);o.useEffect(()=>{if(s(0),g||!u)return;let p=!1,h=0;const m=k=>{h=window.setTimeout(()=>{if(p)return;const y=(k+1)%a.durations.length;s(y),m(y)},a.durations[k])};return m(0),()=>{p=!0,window.clearTimeout(h)}},[g,u,a]);const v=o.useMemo(()=>({width:i*(192/208),height:i,backgroundImage:`url(/pets/${r}/spritesheet.webp)`,backgroundRepeat:"no-repeat",backgroundSize:"800% 900%",backgroundPosition:`${d/7*100}% ${a.row/8*100}%`,imageRendering:"pixelated"}),[d,r,a.row,i]);return l.jsx("div",{"aria-hidden":"true",className:`pet-atlas-animated ${t}`,style:v})}const b={"idle-living":"idle/living.svg","idle-doze":"idle/doze.svg","idle-follow":"idle/follow.svg","idle-look":"idle/look.svg","idle-yawn":"idle/yawn.svg","idle-collapse":"idle/collapse.svg","working-building":"working/building.svg","working-carrying":"working/carrying.svg","working-conducting":"working/conducting.svg","working-confused":"working/confused.svg","working-debugger":"working/debugger.svg","working-juggling":"working/juggling.svg","working-overheated":"working/overheated.svg","working-pushing":"working/pushing.svg","working-sweeping":"working/sweeping.svg","working-thinking":"working/thinking.svg","working-typing":"working/typing.svg","working-ultrathink":"working/ultrathink.svg","working-wizard":"working/wizard.svg","mini-alert":"mini/alert.svg","mini-crabwalk":"mini/crabwalk.svg","mini-enter":"mini/enter.svg","mini-enter-sleep":"mini/enter-sleep.svg","mini-happy":"mini/happy.svg","mini-idle":"mini/idle.svg","mini-peek":"mini/peek.svg","mini-sleep":"mini/sleep.svg","react-double":"react/double.svg","react-drag":"react/drag.svg","react-left":"react/left.svg","react-right":"react/right.svg","collapse-sleep":"sleep/collapse-sleep.svg",sleeping:"sleep/sleeping.svg",wake:"sleep/wake.svg",disconnected:"status/disconnected.svg",error:"status/error.svg",notification:"status/notification.svg",happy:"happy.svg","static-base":"static-base.svg"},w=new Map;async function $(e){if(w.has(e))return w.get(e);if(typeof fetch!="function")return null;let n;try{n=await fetch(`/clawd/${e}`)}catch{return null}if(!n.ok)return null;const t=(await n.text()).replace(/<svg([^>]*)>/,(r,c)=>`<svg${c.replace(/\s+width="[^"]*"/g,"").replace(/\s+height="[^"]*"/g,"")} width="100%" height="100%">`);return w.set(e,t),t}function L({state:e="idle-living",size:n=48,className:i=""}){const[t,r]=o.useState(""),c=o.useRef(null),g=T()?"static-base":e,u=b[g]||b["static-base"];return o.useEffect(()=>{let d=!1;return $(u).then(s=>{!d&&s&&r(s)}),()=>{d=!0}},[u]),o.useEffect(()=>{const d=c.current?.querySelector("svg");if(d)try{const s=d.getBBox();s.width>0&&s.height>0&&d.setAttribute("viewBox",`${s.x-2} ${s.y-2} ${s.width+4} ${s.height+4}`)}catch{}},[t]),l.jsx("div",{ref:c,"aria-hidden":"true",className:`clawd-animated ${i}`,style:{width:n,height:n,display:"inline-flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},dangerouslySetInnerHTML:{__html:t}})}function I({state:e="idle-living",size:n=48,className:i="",character:t="clawd"}){const r=f(t);return r!=="clawd"?l.jsx(R,{character:r,state:e,size:n,className:i}):l.jsx(L,{state:e,size:n*x(r),className:i})}function T(){const[e,n]=o.useState(()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return o.useEffect(()=>{if(typeof window.matchMedia!="function")return;const i=window.matchMedia("(prefers-reduced-motion: reduce)"),t=r=>n(r.matches);return i.addEventListener("change",t),()=>i.removeEventListener("change",t)},[]),e}export{I as C,f as n};
|