@nocoo/pew 1.4.0 → 1.5.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.
Files changed (83) hide show
  1. package/dist/bin.js +0 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +34 -22
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/login.d.ts +1 -1
  6. package/dist/commands/login.js +1 -1
  7. package/dist/commands/session-sync.js +3 -3
  8. package/dist/commands/session-sync.js.map +1 -1
  9. package/dist/commands/session-upload.d.ts +2 -2
  10. package/dist/commands/session-upload.d.ts.map +1 -1
  11. package/dist/commands/session-upload.js +1 -1
  12. package/dist/commands/session-upload.js.map +1 -1
  13. package/dist/commands/sync.js +3 -3
  14. package/dist/commands/sync.js.map +1 -1
  15. package/dist/commands/upload-engine.d.ts +2 -2
  16. package/dist/commands/upload-engine.js +1 -1
  17. package/dist/commands/upload.d.ts +2 -2
  18. package/dist/commands/upload.d.ts.map +1 -1
  19. package/dist/commands/upload.js +1 -1
  20. package/dist/commands/upload.js.map +1 -1
  21. package/dist/drivers/registry.d.ts.map +1 -1
  22. package/dist/drivers/registry.js +6 -6
  23. package/dist/drivers/registry.js.map +1 -1
  24. package/dist/drivers/token/opencode-json-token-driver.d.ts.map +1 -1
  25. package/dist/drivers/token/opencode-json-token-driver.js +0 -3
  26. package/dist/drivers/token/opencode-json-token-driver.js.map +1 -1
  27. package/dist/drivers/token/opencode-sqlite-token-driver.d.ts +2 -2
  28. package/dist/drivers/token/opencode-sqlite-token-driver.d.ts.map +1 -1
  29. package/dist/drivers/token/opencode-sqlite-token-driver.js +1 -1
  30. package/dist/notifier/coordinator.js +3 -1
  31. package/dist/notifier/coordinator.js.map +1 -1
  32. package/dist/notifier/openclaw-hook.js +1 -1
  33. package/dist/notifier/registry.js +19 -19
  34. package/dist/notifier/registry.js.map +1 -1
  35. package/dist/parsers/claude-session.d.ts.map +1 -1
  36. package/dist/parsers/claude-session.js.map +1 -1
  37. package/dist/parsers/claude.d.ts.map +1 -1
  38. package/dist/parsers/claude.js +1 -14
  39. package/dist/parsers/claude.js.map +1 -1
  40. package/dist/parsers/codex.d.ts.map +1 -1
  41. package/dist/parsers/codex.js +1 -14
  42. package/dist/parsers/codex.js.map +1 -1
  43. package/dist/parsers/gemini.d.ts.map +1 -1
  44. package/dist/parsers/gemini.js +2 -15
  45. package/dist/parsers/gemini.js.map +1 -1
  46. package/dist/parsers/openclaw.d.ts.map +1 -1
  47. package/dist/parsers/openclaw.js +4 -10
  48. package/dist/parsers/openclaw.js.map +1 -1
  49. package/dist/parsers/opencode-session.d.ts.map +1 -1
  50. package/dist/parsers/opencode-session.js +1 -12
  51. package/dist/parsers/opencode-session.js.map +1 -1
  52. package/dist/parsers/opencode-sqlite-db.d.ts +2 -1
  53. package/dist/parsers/opencode-sqlite-db.d.ts.map +1 -1
  54. package/dist/parsers/opencode-sqlite-db.js +52 -7
  55. package/dist/parsers/opencode-sqlite-db.js.map +1 -1
  56. package/dist/parsers/opencode-sqlite-session.d.ts +1 -1
  57. package/dist/parsers/opencode-sqlite-session.d.ts.map +1 -1
  58. package/dist/parsers/opencode-sqlite-session.js +2 -13
  59. package/dist/parsers/opencode-sqlite-session.js.map +1 -1
  60. package/dist/parsers/opencode-sqlite.d.ts +1 -1
  61. package/dist/parsers/opencode-sqlite.d.ts.map +1 -1
  62. package/dist/parsers/opencode-sqlite.js +4 -9
  63. package/dist/parsers/opencode-sqlite.js.map +1 -1
  64. package/dist/parsers/opencode.d.ts +0 -5
  65. package/dist/parsers/opencode.d.ts.map +1 -1
  66. package/dist/parsers/opencode.js +2 -26
  67. package/dist/parsers/opencode.js.map +1 -1
  68. package/dist/parsers/vscode-copilot.d.ts.map +1 -1
  69. package/dist/parsers/vscode-copilot.js +1 -7
  70. package/dist/parsers/vscode-copilot.js.map +1 -1
  71. package/dist/utils/hash-project-ref.d.ts +1 -1
  72. package/dist/utils/hash-project-ref.js +1 -1
  73. package/dist/utils/paths.d.ts +3 -3
  74. package/dist/utils/paths.js +3 -3
  75. package/dist/utils/time.d.ts +6 -0
  76. package/dist/utils/time.d.ts.map +1 -0
  77. package/dist/utils/time.js +13 -0
  78. package/dist/utils/time.js.map +1 -0
  79. package/dist/utils/token-delta.d.ts +6 -0
  80. package/dist/utils/token-delta.d.ts.map +1 -0
  81. package/dist/utils/token-delta.js +15 -0
  82. package/dist/utils/token-delta.js.map +1 -0
  83. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-sqlite-db.js","sourceRoot":"","sources":["../../src/parsers/opencode-sqlite-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAc;IAEd,IAAI,EAAY,CAAC;IACjB,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CACnB;;;+BAG2B,CAC5B,CAAC;IAEF,OAAO;QACL,aAAa,EAAE,CAAC,eAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;QACrE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;KACxB,CAAC;AACJ,CAAC;AAQD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAc;IAMd,IAAI,EAAY,CAAC;IACjB,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAC1B;;;+BAG2B,CAC5B,CAAC;IAEF,OAAO;QACL,aAAa,EAAE,CAAC,eAAuB,EAAE,EAAE,CACzC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC;QAElC,oBAAoB,EAAE,CAAC,UAAoB,EAAE,EAAE;YAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACvC,kEAAkE;YAClE,uCAAuC;YACvC,MAAM,UAAU,GAAG,GAAG,CAAC;YACvB,MAAM,OAAO,GAAwB,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;gBACvD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;gBAClD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CACnB;;kCAEwB,YAAY;qCACT,CAC5B,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACtC,CAAC;YACD,8DAA8D;YAC9D,IAAI,UAAU,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;KACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"opencode-sqlite-db.js","sourceRoot":"","sources":["../../src/parsers/opencode-sqlite-db.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Queries the `session` and `message` tables from opencode.db
5
5
  * to produce SessionSnapshot records. Uses dependency injection
6
- * (pre-fetched rows) for testability without bun:sqlite.
6
+ * (pre-fetched rows) for testability without native SQLite.
7
7
  */
8
8
  import type { SessionSnapshot } from "@pew/core";
9
9
  /** Row shape from the session table */
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-sqlite-session.d.ts","sourceRoot":"","sources":["../../src/parsers/opencode-sqlite-session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,WAAW,CAAC;AAGzD,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAaD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,UAAU,EAAE,EACtB,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,eAAe,EAAE,CAuGnB"}
1
+ {"version":3,"file":"opencode-sqlite-session.d.ts","sourceRoot":"","sources":["../../src/parsers/opencode-sqlite-session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,WAAW,CAAC;AAIzD,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,UAAU,EAAE,EACtB,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,eAAe,EAAE,CAuGnB"}
@@ -3,21 +3,10 @@
3
3
  *
4
4
  * Queries the `session` and `message` tables from opencode.db
5
5
  * to produce SessionSnapshot records. Uses dependency injection
6
- * (pre-fetched rows) for testability without bun:sqlite.
6
+ * (pre-fetched rows) for testability without native SQLite.
7
7
  */
8
8
  import { hashProjectRef } from "../utils/hash-project-ref.js";
9
- /**
10
- * Coerce an epoch value to milliseconds.
11
- * Values < 1e12 are treated as seconds and multiplied by 1000.
12
- */
13
- function coerceEpochMs(v) {
14
- const n = Number(v);
15
- if (!Number.isFinite(n) || n <= 0)
16
- return 0;
17
- if (n < 1e12)
18
- return Math.floor(n * 1000);
19
- return Math.floor(n);
20
- }
9
+ import { coerceEpochMs } from "../utils/time.js";
21
10
  /**
22
11
  * Collect session snapshots from pre-fetched SQLite rows.
23
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-sqlite-session.js","sourceRoot":"","sources":["../../src/parsers/opencode-sqlite-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-sqlite-session.js","sourceRoot":"","sources":["../../src/parsers/opencode-sqlite-session.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ export type QueryMessagesFn = (lastTimeCreated: number) => MessageRow[];
34
34
  * Unlike the JSON file parser, no diffTotals is needed — each SQLite row
35
35
  * is an independent message with absolute token values.
36
36
  *
37
- * The `queryMessages` function is injected to decouple from `bun:sqlite`
37
+ * The `queryMessages` function is injected to decouple from the native SQLite module
38
38
  * for testability. Use `openMessageDb()` from `opencode-sqlite-db.ts` to
39
39
  * create the real adapter at runtime.
40
40
  */
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-sqlite.d.ts","sourceRoot":"","sources":["../../src/parsers/opencode-sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,oDAAoD;IACpD,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,eAAe,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;AAiBxE;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAAE,GACjB,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAsDrC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAgChC"}
1
+ {"version":3,"file":"opencode-sqlite.d.ts","sourceRoot":"","sources":["../../src/parsers/opencode-sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,oDAAoD;IACpD,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,eAAe,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;AAExE;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAAE,GACjB,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAsDrC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAgChC"}
@@ -1,12 +1,7 @@
1
1
  import { stat } from "node:fs/promises";
2
- import { normalizeOpenCodeTokens, coerceEpochMs } from "./opencode.js";
3
- /** Check if a TokenDelta is all zeros */
4
- function isAllZero(d) {
5
- return (d.inputTokens === 0 &&
6
- d.cachedInputTokens === 0 &&
7
- d.outputTokens === 0 &&
8
- d.reasoningOutputTokens === 0);
9
- }
2
+ import { normalizeOpenCodeTokens } from "./opencode.js";
3
+ import { isAllZero } from "../utils/token-delta.js";
4
+ import { coerceEpochMs } from "../utils/time.js";
10
5
  /**
11
6
  * Parse message rows from OpenCode's SQLite database for token usage records.
12
7
  *
@@ -15,7 +10,7 @@ function isAllZero(d) {
15
10
  * Unlike the JSON file parser, no diffTotals is needed — each SQLite row
16
11
  * is an independent message with absolute token values.
17
12
  *
18
- * The `queryMessages` function is injected to decouple from `bun:sqlite`
13
+ * The `queryMessages` function is injected to decouple from the native SQLite module
19
14
  * for testability. Use `openMessageDb()` from `opencode-sqlite-db.ts` to
20
15
  * create the real adapter at runtime.
21
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-sqlite.js","sourceRoot":"","sources":["../../src/parsers/opencode-sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-sqlite.js","sourceRoot":"","sources":["../../src/parsers/opencode-sqlite.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,6 @@ export interface OpenCodeFileResult {
6
6
  messageKey: string | null;
7
7
  lastTotals: TokenDelta | null;
8
8
  }
9
- /**
10
- * Coerce an epoch value to milliseconds.
11
- * Values < 1e12 are treated as seconds and multiplied by 1000.
12
- */
13
- export declare function coerceEpochMs(v: unknown): number;
14
9
  /**
15
10
  * Normalize OpenCode's token object to our TokenDelta format.
16
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/parsers/opencode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAKhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACjD,UAAU,GAAG,IAAI,CAanB;AAYD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwE9B"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/parsers/opencode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACjD,UAAU,GAAG,IAAI,CAanB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwE9B"}
@@ -1,24 +1,7 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import { diffTotals } from "./gemini.js";
3
- /** Coerce to non-negative integer */
4
- function toNonNegInt(v) {
5
- const n = Number(v);
6
- if (!Number.isFinite(n) || n < 0)
7
- return 0;
8
- return Math.floor(n);
9
- }
10
- /**
11
- * Coerce an epoch value to milliseconds.
12
- * Values < 1e12 are treated as seconds and multiplied by 1000.
13
- */
14
- export function coerceEpochMs(v) {
15
- const n = Number(v);
16
- if (!Number.isFinite(n) || n <= 0)
17
- return 0;
18
- if (n < 1e12)
19
- return Math.floor(n * 1000);
20
- return Math.floor(n);
21
- }
3
+ import { isAllZero, toNonNegInt } from "../utils/token-delta.js";
4
+ import { coerceEpochMs } from "../utils/time.js";
22
5
  /**
23
6
  * Normalize OpenCode's token object to our TokenDelta format.
24
7
  *
@@ -41,13 +24,6 @@ export function normalizeOpenCodeTokens(tokens) {
41
24
  reasoningOutputTokens: toNonNegInt(tokens.reasoning),
42
25
  };
43
26
  }
44
- /** Check if a TokenDelta is all zeros */
45
- function isAllZero(d) {
46
- return (d.inputTokens === 0 &&
47
- d.cachedInputTokens === 0 &&
48
- d.outputTokens === 0 &&
49
- d.reasoningOutputTokens === 0);
50
- }
51
27
  /**
52
28
  * Parse a single OpenCode message JSON file.
53
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/parsers/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/parsers/opencode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-copilot.d.ts","sourceRoot":"","sources":["../../src/parsers/vscode-copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+DAA+D;AAC/D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,sDAAsD;AACtD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,gEAAgE;IAChE,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CACnC;AAED,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,4EAA4E;IAC5E,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC;AAoCD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,uBAAuB,CAAC,CAgNlC"}
1
+ {"version":3,"file":"vscode-copilot.d.ts","sourceRoot":"","sources":["../../src/parsers/vscode-copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO/C,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+DAA+D;AAC/D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,sDAAsD;AACtD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,gEAAgE;IAChE,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CACnC;AAED,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,4EAA4E;IAC5E,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC;AA6BD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,uBAAuB,CAAC,CAgNlC"}
@@ -22,6 +22,7 @@
22
22
  import { createReadStream } from "node:fs";
23
23
  import { stat } from "node:fs/promises";
24
24
  import { createInterface } from "node:readline";
25
+ import { toNonNegInt } from "../utils/token-delta.js";
25
26
  // ---------------------------------------------------------------------------
26
27
  // Helpers
27
28
  // ---------------------------------------------------------------------------
@@ -29,13 +30,6 @@ import { createInterface } from "node:readline";
29
30
  function normalizeModelId(raw) {
30
31
  return raw.startsWith("copilot/") ? raw.slice(8) : raw;
31
32
  }
32
- /** Coerce to non-negative integer, returning 0 for invalid values */
33
- function toNonNegInt(v) {
34
- const n = Number(v);
35
- if (!Number.isFinite(n) || n < 0)
36
- return 0;
37
- return Math.floor(n);
38
- }
39
33
  /** Extract modelId and timestamp from a request object */
40
34
  function extractRequestMeta(req) {
41
35
  const rawModelId = req.modelId;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-copilot.js","sourceRoot":"","sources":["../../src/parsers/vscode-copilot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vscode-copilot.js","sourceRoot":"","sources":["../../src/parsers/vscode-copilot.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Privacy-safe project reference hashing.
3
3
  *
4
4
  * All project references are SHA-256 hashed before upload to ensure
5
- * Pew never transmits plaintext project names, paths, or other
5
+ * pew never transmits plaintext project names, paths, or other
6
6
  * identifying information. The hash is truncated to 16 hex chars
7
7
  * (64 bits) — enough for uniqueness, short enough for display.
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Privacy-safe project reference hashing.
3
3
  *
4
4
  * All project references are SHA-256 hashed before upload to ensure
5
- * Pew never transmits plaintext project names, paths, or other
5
+ * pew never transmits plaintext project names, paths, or other
6
6
  * identifying information. The hash is truncated to 16 hex chars
7
7
  * (64 bits) — enough for uniqueness, short enough for display.
8
8
  *
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Resolve default paths for Pew state and AI tool data.
2
+ * Resolve default paths for pew state and AI tool data.
3
3
  * All paths can be overridden for testing.
4
4
  */
5
5
  export declare function resolveDefaultPaths(home?: string): {
6
- /** Pew state directory: ~/.config/pew/ */
6
+ /** pew state directory: ~/.config/pew/ */
7
7
  stateDir: string;
8
- /** Pew bin directory: ~/.config/pew/bin/ */
8
+ /** pew bin directory: ~/.config/pew/bin/ */
9
9
  binDir: string;
10
10
  /** notify.cjs path: ~/.config/pew/bin/notify.cjs */
11
11
  notifyPath: string;
@@ -34,15 +34,15 @@ function resolveVscodeCopilotDirs(home) {
34
34
  ];
35
35
  }
36
36
  /**
37
- * Resolve default paths for Pew state and AI tool data.
37
+ * Resolve default paths for pew state and AI tool data.
38
38
  * All paths can be overridden for testing.
39
39
  */
40
40
  export function resolveDefaultPaths(home = homedir()) {
41
41
  const codexHome = process.env.CODEX_HOME || join(home, ".codex");
42
42
  return {
43
- /** Pew state directory: ~/.config/pew/ */
43
+ /** pew state directory: ~/.config/pew/ */
44
44
  stateDir: join(home, ".config", "pew"),
45
- /** Pew bin directory: ~/.config/pew/bin/ */
45
+ /** pew bin directory: ~/.config/pew/bin/ */
46
46
  binDir: join(home, ".config", "pew", "bin"),
47
47
  /** notify.cjs path: ~/.config/pew/bin/notify.cjs */
48
48
  notifyPath: join(home, ".config", "pew", "bin", "notify.cjs"),
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Coerce an epoch value to milliseconds.
3
+ * Values < 1e12 are treated as seconds and multiplied by 1000.
4
+ */
5
+ export declare function coerceEpochMs(v: unknown): number;
6
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAKhD"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Coerce an epoch value to milliseconds.
3
+ * Values < 1e12 are treated as seconds and multiplied by 1000.
4
+ */
5
+ export function coerceEpochMs(v) {
6
+ const n = Number(v);
7
+ if (!Number.isFinite(n) || n <= 0)
8
+ return 0;
9
+ if (n < 1e12)
10
+ return Math.floor(n * 1000);
11
+ return Math.floor(n);
12
+ }
13
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,CAAU;IACtC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { TokenDelta } from "@pew/core";
2
+ /** Coerce to non-negative integer, returning 0 for invalid values */
3
+ export declare function toNonNegInt(v: unknown): number;
4
+ /** Check if a TokenDelta is all zeros */
5
+ export declare function isAllZero(delta: TokenDelta): boolean;
6
+ //# sourceMappingURL=token-delta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-delta.d.ts","sourceRoot":"","sources":["../../src/utils/token-delta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAI9C;AAED,yCAAyC;AACzC,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAOpD"}
@@ -0,0 +1,15 @@
1
+ /** Coerce to non-negative integer, returning 0 for invalid values */
2
+ export function toNonNegInt(v) {
3
+ const n = Number(v);
4
+ if (!Number.isFinite(n) || n < 0)
5
+ return 0;
6
+ return Math.floor(n);
7
+ }
8
+ /** Check if a TokenDelta is all zeros */
9
+ export function isAllZero(delta) {
10
+ return (delta.inputTokens === 0 &&
11
+ delta.cachedInputTokens === 0 &&
12
+ delta.outputTokens === 0 &&
13
+ delta.reasoningOutputTokens === 0);
14
+ }
15
+ //# sourceMappingURL=token-delta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-delta.js","sourceRoot":"","sources":["../../src/utils/token-delta.ts"],"names":[],"mappings":"AAEA,qEAAqE;AACrE,MAAM,UAAU,WAAW,CAAC,CAAU;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,OAAO,CACL,KAAK,CAAC,WAAW,KAAK,CAAC;QACvB,KAAK,CAAC,iBAAiB,KAAK,CAAC;QAC7B,KAAK,CAAC,YAAY,KAAK,CAAC;QACxB,KAAK,CAAC,qBAAqB,KAAK,CAAC,CAClC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocoo/pew",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "The contribution graph for AI-native developers",
5
5
  "type": "module",
6
6
  "bin": {
@@ -36,12 +36,14 @@
36
36
  ],
37
37
  "license": "MIT",
38
38
  "dependencies": {
39
+ "better-sqlite3": "^12.6.2",
39
40
  "citty": "^0.1.0",
40
41
  "consola": "^3.4.0",
41
42
  "picocolors": "^1.1.0"
42
43
  },
43
44
  "devDependencies": {
44
45
  "@pew/core": "workspace:*",
46
+ "@types/better-sqlite3": "^7.6.0",
45
47
  "@types/node": "^22.0.0"
46
48
  }
47
49
  }