agentvigil 1.0.7 → 1.0.9

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 (63) hide show
  1. package/dist/commands/daemon.d.ts.map +1 -1
  2. package/dist/commands/daemon.js +3 -0
  3. package/dist/commands/daemon.js.map +1 -1
  4. package/dist/commands/setup.d.ts.map +1 -1
  5. package/dist/commands/setup.js +2 -1
  6. package/dist/commands/setup.js.map +1 -1
  7. package/dist/hooks/hook-handler.d.ts.map +1 -1
  8. package/dist/hooks/hook-handler.js +7 -0
  9. package/dist/hooks/hook-handler.js.map +1 -1
  10. package/dist/hooks/hook-manager.d.ts.map +1 -1
  11. package/dist/hooks/hook-manager.js +19 -6
  12. package/dist/hooks/hook-manager.js.map +1 -1
  13. package/dist/index.js +9 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/notifications/mac-notifier.d.ts +11 -0
  16. package/dist/notifications/mac-notifier.d.ts.map +1 -0
  17. package/dist/notifications/mac-notifier.js +28 -0
  18. package/dist/notifications/mac-notifier.js.map +1 -0
  19. package/dist/notifications/ntfy-client.d.ts +2 -0
  20. package/dist/notifications/ntfy-client.d.ts.map +1 -1
  21. package/dist/notifications/ntfy-client.js +10 -0
  22. package/dist/notifications/ntfy-client.js.map +1 -1
  23. package/dist/relay/relay-handler.d.ts.map +1 -1
  24. package/dist/relay/relay-handler.js +3 -0
  25. package/dist/relay/relay-handler.js.map +1 -1
  26. package/dist/sessions/process-detector.d.ts +9 -0
  27. package/dist/sessions/process-detector.d.ts.map +1 -1
  28. package/dist/sessions/process-detector.js +63 -1
  29. package/dist/sessions/process-detector.js.map +1 -1
  30. package/dist/sessions/session-manager.d.ts.map +1 -1
  31. package/dist/sessions/session-manager.js +17 -1
  32. package/dist/sessions/session-manager.js.map +1 -1
  33. package/dist/sessions/token-calculator.d.ts +15 -0
  34. package/dist/sessions/token-calculator.d.ts.map +1 -0
  35. package/dist/sessions/token-calculator.js +94 -0
  36. package/dist/sessions/token-calculator.js.map +1 -0
  37. package/dist/stats/daily-tracker.d.ts +114 -0
  38. package/dist/stats/daily-tracker.d.ts.map +1 -0
  39. package/dist/stats/daily-tracker.js +484 -0
  40. package/dist/stats/daily-tracker.js.map +1 -0
  41. package/dist/stats/session-utils.d.ts +2 -0
  42. package/dist/stats/session-utils.d.ts.map +1 -0
  43. package/dist/stats/session-utils.js +11 -0
  44. package/dist/stats/session-utils.js.map +1 -0
  45. package/dist/stats/summary-formatter.d.ts +67 -0
  46. package/dist/stats/summary-formatter.d.ts.map +1 -0
  47. package/dist/stats/summary-formatter.js +116 -0
  48. package/dist/stats/summary-formatter.js.map +1 -0
  49. package/dist/stats/transcript-sync.d.ts +18 -0
  50. package/dist/stats/transcript-sync.d.ts.map +1 -0
  51. package/dist/stats/transcript-sync.js +143 -0
  52. package/dist/stats/transcript-sync.js.map +1 -0
  53. package/dist/types.d.ts +4 -1
  54. package/dist/types.d.ts.map +1 -1
  55. package/dist/utils/config.d.ts +4 -0
  56. package/dist/utils/config.d.ts.map +1 -1
  57. package/dist/utils/config.js +2 -0
  58. package/dist/utils/config.js.map +1 -1
  59. package/dist/utils/prompt.d.ts +3 -0
  60. package/dist/utils/prompt.d.ts.map +1 -0
  61. package/dist/utils/prompt.js +14 -0
  62. package/dist/utils/prompt.js.map +1 -0
  63. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"process-detector.js","sourceRoot":"","sources":["../../src/sessions/process-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-detector.js","sourceRoot":"","sources":["../../src/sessions/process-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAc/B,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,iEAAiE;IACjE,wEAAwE;IACxE,oEAAoE;IACpE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,eAAe,GAAG,MAAM,CAAC;QACzC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YACzC,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,wEAAwE;IACxE,iEAAiE;IACjE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAC3B,cAAc,GAAG,+CAA+C,CACjE,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YACjE,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2EAA2E;AAC3E,2DAA2D;AAC3D,KAAK,UAAU,cAAc;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACrB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,IAAI,sBAAsB,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;iBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACrB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,wBAAwB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IAE3F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAAE,SAAS;YAE7C,IAAI,SAAuC,CAAC;YAC5C,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,SAAS,GAAG,OAAO,CAAC;iBAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS,GAAG,KAAK,CAAC;;gBAC/C,SAAS,GAAG,aAAa,CAAC;YAE/B,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,CAAC,GAAG,CAAC,gBAAgB,GAAG,4BAA4B,CAAC,CAAC;gBAC5D,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,gBAAgB,GAAG,0BAA0B,GAAG,EAAE,CAAC,CAAC;gBAC/D,SAAS;YACX,CAAC;YAED,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,gBAAgB,GAAG,uBAAuB,GAAG,EAAE,CAAC,CAAC;gBAC5D,SAAS;YACX,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,iFAAiF;YACjF,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAW;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACnE,6EAA6E;IAC7E,kEAAkE;IAClE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YACnC,4EAA4E;YAC5E,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,eAAe,CAAC;gBAAE,SAAS;YAEvF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEjC,8CAA8C;YAC9C,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnD,IAAI,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK;oBAAE,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC/E,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEvD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;IAC9D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,SAAiB;IAChE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,GAAG,SAAS,QAAQ,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1B,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACvD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IAC1D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC,GAAG,CAAC;YAC9E,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QACD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,QAAgB;IACrE,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;IACxD,CAAC;IAED,mEAAmE;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IAChD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACzD,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5B,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/sessions/session-manager.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAC7E,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,KAAK,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,aAAa,GAAG,MAAM,GAAG,eAAe,CAAC;AAE3F,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,aAAa,EAAE,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,YAAY,CAEzE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAID,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,OAAO,CA2BvG;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjE;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAKhE;AAED,wBAAgB,cAAc,IAAI,OAAO,EAAE,CAE1C;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,IAAI,OAAO,EAAE,CAI7C;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,EAAE,CAaxD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/sessions/session-manager.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAC7E,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,KAAK,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,aAAa,GAAG,MAAM,GAAG,eAAe,CAAC;AAE3F,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,aAAa,EAAE,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,YAAY,CAEzE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAaD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,OAAO,CAkCvG;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjE;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAKhE;AAED,wBAAgB,cAAc,IAAI,OAAO,EAAE,CAE1C;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,IAAI,OAAO,EAAE,CAI7C;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,EAAE,CAaxD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
@@ -1,4 +1,5 @@
1
1
  import path from 'node:path';
2
+ import { dailyTracker, isTrackableClaudeSession } from '../stats/daily-tracker.js';
2
3
  // done/error sessions linger briefly so the phone can display the final state
3
4
  // before they disappear. Active sessions are removed immediately by the process
4
5
  // poller when their pid dies — no time-based threshold for those.
@@ -17,6 +18,16 @@ export function stateAfterHookEvent(hookType) {
17
18
  export function projectNameFromCwd(cwd) {
18
19
  return path.basename(cwd);
19
20
  }
21
+ function coerceLastActivity(value) {
22
+ if (value instanceof Date && !Number.isNaN(value.getTime()))
23
+ return value;
24
+ if (value != null && value !== '') {
25
+ const parsed = new Date(value);
26
+ if (!Number.isNaN(parsed.getTime()))
27
+ return parsed;
28
+ }
29
+ return undefined;
30
+ }
20
31
  const sessionStore = new Map();
21
32
  export function updateSession(sessionId, changes) {
22
33
  const existing = sessionStore.get(sessionId);
@@ -28,7 +39,9 @@ export function updateSession(sessionId, changes) {
28
39
  project_name: changes.project_name ?? existing?.project_name ?? projectNameFromCwd(cwd),
29
40
  agent: changes.agent ?? existing?.agent ?? 'claude-code',
30
41
  state,
31
- last_activity: changes.last_activity ?? new Date(),
42
+ last_activity: coerceLastActivity(changes.last_activity)
43
+ ?? coerceLastActivity(existing?.last_activity)
44
+ ?? new Date(),
32
45
  last_message: changes.last_message ?? existing?.last_message,
33
46
  tmux_pane_id: changes.tmux_pane_id ?? existing?.tmux_pane_id,
34
47
  pid: changes.pid ?? existing?.pid,
@@ -41,6 +54,9 @@ export function updateSession(sessionId, changes) {
41
54
  ? (changes.tool_name ?? existing?.tool_name)
42
55
  : undefined,
43
56
  };
57
+ if (!existing && isTrackableClaudeSession(sessionId, cwd)) {
58
+ void dailyTracker.trackSessionStart(sessionId, session.project_name, session.agent);
59
+ }
44
60
  sessionStore.set(sessionId, session);
45
61
  return session;
46
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/sessions/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/sessions/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAsBnF,8EAA8E;AAC9E,gFAAgF;AAChF,kEAAkE;AAClE,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE7C,8EAA8E;AAC9E,iEAAiE;AACjE,MAAM,sBAAsB,GAAwC;IAClE,iBAAiB,EAAE,SAAS;IAC5B,WAAW,EAAE,MAAM;IACnB,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,SAAS;CACzB,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,QAAuB;IACzD,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAwB,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO,MAAM,CAAC;IACrD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;AAEhD,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,OAA6C;IAC5F,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC;IAE5D,MAAM,OAAO,GAAY;QACvB,UAAU,EAAE,SAAS;QACrB,GAAG;QACH,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,QAAQ,EAAE,YAAY,IAAI,kBAAkB,CAAC,GAAG,CAAC;QACvF,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,aAAa;QACxD,KAAK;QACL,aAAa,EACX,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC;eACtC,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC;eAC3C,IAAI,IAAI,EAAE;QACf,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,QAAQ,EAAE,YAAY;QAC5D,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,QAAQ,EAAE,YAAY;QAC5D,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,QAAQ,EAAE,GAAG;QACjC,yEAAyE;QACzE,oEAAoE;QACpE,kBAAkB,EAAE,KAAK,KAAK,SAAS;YACrC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,IAAI,QAAQ,EAAE,kBAAkB,CAAC;YAC9D,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,KAAK,KAAK,SAAS;YAC5B,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,CAAC;YAC5C,CAAC,CAAC,SAAS;KACd,CAAC;IAEF,IAAI,CAAC,QAAQ,IAAI,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;QAC1D,KAAK,YAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IAED,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,OAAO,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO,OAAO,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAC5E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,MAAY,IAAI,IAAI,EAAE;IAC5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;YAAE,SAAS;QACpE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,UAAU,GAAG,sBAAsB,EAAE,CAAC;YACxC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,YAAY,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface TokenUsage {
2
+ inputTokens: number;
3
+ outputTokens: number;
4
+ cacheReadTokens: number;
5
+ totalTokens: number;
6
+ estimatedCostUsd: number;
7
+ filesModified: number;
8
+ }
9
+ /**
10
+ * Sums token usage and cost across every assistant turn in a Claude Code
11
+ * transcript, and counts the distinct files touched via Write/Edit/MultiEdit.
12
+ * Returns all-zero usage if the transcript can't be read.
13
+ */
14
+ export declare function calculateTokenUsage(transcriptPath: string): Promise<TokenUsage>;
15
+ //# sourceMappingURL=token-calculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-calculator.d.ts","sourceRoot":"","sources":["../../src/sessions/token-calculator.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AA4BD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAyDrF"}
@@ -0,0 +1,94 @@
1
+ import fs from 'node:fs/promises';
2
+ const ZERO_USAGE = {
3
+ inputTokens: 0,
4
+ outputTokens: 0,
5
+ cacheReadTokens: 0,
6
+ totalTokens: 0,
7
+ estimatedCostUsd: 0,
8
+ filesModified: 0,
9
+ };
10
+ // Per-million-token USD rates. Matched by substring against the transcript's
11
+ // `message.model` (e.g. "claude-sonnet-4-6"). These are estimates for the
12
+ // daily summary and may drift from Anthropic's published pricing over time.
13
+ const PRICING = {
14
+ opus: { input: 15, output: 75, cacheWrite: 18.75, cacheRead: 1.5 },
15
+ sonnet: { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
16
+ haiku: { input: 1, output: 5, cacheWrite: 1.25, cacheRead: 0.1 },
17
+ };
18
+ const DEFAULT_PRICING = PRICING.sonnet;
19
+ const FILE_TOOLS = new Set(['Write', 'Edit', 'MultiEdit']);
20
+ function pricingForModel(model) {
21
+ const key = Object.keys(PRICING).find((k) => model.toLowerCase().includes(k));
22
+ return key ? PRICING[key] : DEFAULT_PRICING;
23
+ }
24
+ /**
25
+ * Sums token usage and cost across every assistant turn in a Claude Code
26
+ * transcript, and counts the distinct files touched via Write/Edit/MultiEdit.
27
+ * Returns all-zero usage if the transcript can't be read.
28
+ */
29
+ export async function calculateTokenUsage(transcriptPath) {
30
+ if (!transcriptPath)
31
+ return { ...ZERO_USAGE };
32
+ try {
33
+ const content = await fs.readFile(transcriptPath, 'utf-8');
34
+ const lines = content.trim().split('\n').filter((l) => l.trim());
35
+ let inputTokens = 0;
36
+ let outputTokens = 0;
37
+ let cacheReadTokens = 0;
38
+ let estimatedCostUsd = 0;
39
+ const filesTouched = new Set();
40
+ for (const line of lines) {
41
+ let entry;
42
+ try {
43
+ entry = JSON.parse(line);
44
+ }
45
+ catch {
46
+ continue;
47
+ }
48
+ const usage = entry?.message?.usage;
49
+ if (usage) {
50
+ const model = entry.message.model ?? '';
51
+ const pricing = pricingForModel(model);
52
+ const input = usage.input_tokens ?? 0;
53
+ const output = usage.output_tokens ?? 0;
54
+ const cacheRead = usage.cache_read_input_tokens ?? 0;
55
+ const cacheWrite = usage.cache_creation_input_tokens ?? 0;
56
+ inputTokens += input;
57
+ outputTokens += output;
58
+ cacheReadTokens += cacheRead;
59
+ estimatedCostUsd +=
60
+ (input * pricing.input +
61
+ output * pricing.output +
62
+ cacheRead * pricing.cacheRead +
63
+ cacheWrite * pricing.cacheWrite) /
64
+ 1_000_000;
65
+ }
66
+ collectModifiedFiles(entry, filesTouched);
67
+ }
68
+ return {
69
+ inputTokens,
70
+ outputTokens,
71
+ cacheReadTokens,
72
+ totalTokens: inputTokens + outputTokens + cacheReadTokens,
73
+ estimatedCostUsd,
74
+ filesModified: filesTouched.size,
75
+ };
76
+ }
77
+ catch {
78
+ return { ...ZERO_USAGE };
79
+ }
80
+ }
81
+ /** Adds the file path of any Write/Edit/MultiEdit tool_use block in `entry` to `filesTouched`. */
82
+ function collectModifiedFiles(entry, filesTouched) {
83
+ const blocks = entry?.message?.content;
84
+ if (!Array.isArray(blocks))
85
+ return;
86
+ for (const block of blocks) {
87
+ if (block?.type !== 'tool_use' || !FILE_TOOLS.has(block.name))
88
+ continue;
89
+ const filePath = (block.input?.file_path ?? block.input?.path);
90
+ if (filePath)
91
+ filesTouched.add(filePath);
92
+ }
93
+ }
94
+ //# sourceMappingURL=token-calculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-calculator.js","sourceRoot":"","sources":["../../src/sessions/token-calculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ import { type TokenUsage } from '../sessions/token-calculator.js';
2
+ import type { AgentEvent } from '../types.js';
3
+ /**
4
+ * Minimal interface for pushing a live daily-stats snapshot to the phone.
5
+ * `AgentVigilWsServer` structurally satisfies this — no import needed,
6
+ * avoiding a circular dependency (mirrors `RelayWsServer` in relay-handler.ts).
7
+ */
8
+ export interface StatsBroadcaster {
9
+ readonly isPhoneConnected: boolean;
10
+ sendEvent(event: AgentEvent): void;
11
+ }
12
+ export interface SessionStat {
13
+ sessionId: string;
14
+ projectName: string;
15
+ agentType: string;
16
+ startTime: Date;
17
+ endTime?: Date;
18
+ lastActivityAt: Date;
19
+ durationMs: number;
20
+ inputTokens: number;
21
+ outputTokens: number;
22
+ cacheReadTokens: number;
23
+ totalTokens: number;
24
+ costUsd: number;
25
+ tasksCompleted: number;
26
+ filesModified: number;
27
+ permissionPrompts: number;
28
+ permissionsApproved: number;
29
+ permissionsDenied: number;
30
+ }
31
+ export interface DailySummary {
32
+ date: string;
33
+ totalSessions: number;
34
+ totalActiveTimeMs: number;
35
+ totalInputTokens: number;
36
+ totalOutputTokens: number;
37
+ totalCacheReadTokens: number;
38
+ totalTokens: number;
39
+ totalCostUsd: number;
40
+ totalTasksCompleted: number;
41
+ totalFilesModified: number;
42
+ totalPermissionPrompts: number;
43
+ permissionsApproved: number;
44
+ permissionsDenied: number;
45
+ topProject: string;
46
+ topProjectCost: number;
47
+ topProjectTimeMs: number;
48
+ sessions: SessionStat[];
49
+ generatedAt: Date;
50
+ }
51
+ export { isTrackableClaudeSession } from './session-utils.js';
52
+ /** Rolls up multiple Claude sessions in the same project into one stats row for the phone. */
53
+ export declare function mergeSessionsByProject(sessions: SessionStat[]): SessionStat[];
54
+ /**
55
+ * Tracks coding-session activity throughout the day and sends an end-of-day
56
+ * summary to the phone (ntfy) and Mac (native notification).
57
+ *
58
+ * `agentvigil hook <type>` runs as a short-lived CLI process separate from
59
+ * the long-running daemon, so every public method reloads `stats.json`
60
+ * before mutating and saves immediately after — this is how state survives
61
+ * across those separate processes.
62
+ */
63
+ declare class DailyTracker {
64
+ private readonly statsFilePath;
65
+ private todayStats;
66
+ private broadcaster?;
67
+ constructor(statsFilePath?: string);
68
+ initialize(broadcaster?: StatsBroadcaster): Promise<void>;
69
+ trackSessionStart(sessionId: string, projectName: string, agentType: string): Promise<void>;
70
+ /** True if `sessionId` already has a tracked stat for today (in-memory). */
71
+ hasSession(sessionId: string): boolean;
72
+ /** Called when a session's token usage/cost/files-modified is known (e.g. from the Stop hook). */
73
+ updateTokenUsage(sessionId: string, usage: TokenUsage, lastActivity: Date, transcriptPath?: string): Promise<void>;
74
+ /** Called when a permission prompt fires. */
75
+ trackPermission(sessionId: string): Promise<void>;
76
+ /** Called when a permission prompt is approved from the phone. */
77
+ trackApproval(sessionId: string): Promise<void>;
78
+ /** Called when a permission prompt is denied from the phone. */
79
+ trackDenial(sessionId: string): Promise<void>;
80
+ /** Called when the Stop hook fires for a session. */
81
+ trackSessionEnd(sessionId: string, usage?: TokenUsage, transcriptPath?: string): Promise<void>;
82
+ /** Pushes the current daily summary to the phone over the live WS tunnel, if connected. */
83
+ private broadcastStatsUpdate;
84
+ buildDailySummary(): DailySummary;
85
+ sendDailySummary(): Promise<void>;
86
+ private scheduleEndOfDaySummary;
87
+ /**
88
+ * Polls every active session's transcript so the stats screen reflects
89
+ * running sessions, not just ones that have fired a hook. Runs once
90
+ * shortly after startup, then every ACTIVE_SESSION_SYNC_INTERVAL_MS.
91
+ */
92
+ private scheduleActiveSessionSync;
93
+ private scheduleMidnightReset;
94
+ private resetForNewDay;
95
+ private applyTranscriptTimeline;
96
+ /** Scans today's transcripts so every project with Claude activity appears in stats. */
97
+ reconcileFromTranscriptsPublic(): Promise<void>;
98
+ /** Scans today's transcripts so every project with Claude activity appears in stats. */
99
+ private reconcileFromTranscripts;
100
+ private ensureProjectName;
101
+ private backfillMissingProjectNames;
102
+ private purgeInvalidSessions;
103
+ private loadFromDisk;
104
+ private saveToDisk;
105
+ }
106
+ export { DailyTracker };
107
+ export declare const dailyTracker: DailyTracker;
108
+ /**
109
+ * Brings today's stats up to date for every currently-active session,
110
+ * regardless of whether a hook has fired for it yet — a long `working`
111
+ * session can otherwise go hours without appearing on the stats screen.
112
+ */
113
+ export declare function syncActiveSessionStats(): Promise<void>;
114
+ //# sourceMappingURL=daily-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-tracker.d.ts","sourceRoot":"","sources":["../../src/stats/daily-tracker.ts"],"names":[],"mappings":"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"}