Usage over time
+Your model mix
+One thing to notice
+Reading your recorded usage…
+ +Activity
+ +Token flow
About these counters
Total = input + output. Cache and reasoning counters may overlap; they are not added again.
Daily insights combine native Chronicle standup, tips and cost-tips with local usage. Questions use tips and cost-tips and are answered independently. Default analysis uses today's work and recent history in your runtime's timezone. Ask about this data/model/session carries the selected Usage snapshot instead.
+Chronicle may send relevant session content and usage to your configured Copilot model. Canvas history is saved on this device; Copilot chat follows your session-sync settings. Nothing is scheduled automatically.
+Usage totals remain local. Chronicle history and cloud cost profiles can have different coverage; their totals are not merged into the charts.
+'+(t?n:w(n,!0))+`
+`:""+(t?n:w(n,!0))+`
+`}blockquote({tokens:r}){return`+${this.parser.parse(r)}+`}html({text:r}){return r}def(r){return""}heading({tokens:r,depth:e}){return`
${this.parser.parseInline(r)}
+`}table(r){let e="",t="";for(let n=0;n${w(r,!0)}`}br(r){return"An error occurred:
"+w(t.message+"",!0)+"";return e?Promise.resolve(s):s}if(e)return Promise.reject(t);throw t}}},z=new Et;function g(r,e){return z.parse(r,e)}g.options=g.setOptions=function(r){return z.setOptions(r),g.defaults=z.defaults,ke(g.defaults),g};g.getDefaults=W;g.defaults=A;function Ct(...r){return z.use(...r),g.defaults=z.defaults,ke(g.defaults),g}g.use=Ct;g.walkTokens=function(r,e){return z.walkTokens(r,e)};g.parseInline=z.parseInline;g.Parser=$;g.parser=$.parse;g.Renderer=N;g.TextRenderer=re;g.Lexer=S;g.lexer=S.lex;g.Tokenizer=j;g.Hooks=v;g.parse=g;var Zt=g.options,Dt=g.setOptions,Qt=g.walkTokens,Ot=g.parseInline;var Mt=$.parse,jt=S.lex;var Bt=r=>g.lexer(r,{gfm:!0});return Ie(vt);})(); diff --git a/extensions/chronicle-stats/renderer.mjs b/extensions/chronicle-stats/renderer.mjs new file mode 100644 index 000000000..cc488b8e2 --- /dev/null +++ b/extensions/chronicle-stats/renderer.mjs @@ -0,0 +1,719 @@ +import { EXPLORER_CSS, EXPLORER_JS } from "./explorer.mjs"; +import { INSIGHT_HTML, TIDEPOOL_CSS, INSIGHT_JS, INSIGHT_INTERACTIONS } from "./insight-view.mjs"; +import fs from "node:fs"; + +const markdownLexer = fs.readFileSync(new URL("./markdown.js", import.meta.url), "utf8") + .replace(/<\/script/gi, "<\\/script"); + +export function renderHtml() { + return ` + + + + +
Local Chronicle
One thing to notice
+Total = input + output. Cache and reasoning counters may overlap; they are not added again.