chorus-codes 0.8.22 → 0.8.24

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 (88) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +2 -2
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  23. package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/demo/[scenario]/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/new/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/new.html +1 -1
  27. package/.next/server/app/new.rsc +1 -1
  28. package/.next/server/app/new.segments/_full.segment.rsc +1 -1
  29. package/.next/server/app/new.segments/_head.segment.rsc +1 -1
  30. package/.next/server/app/new.segments/_index.segment.rsc +1 -1
  31. package/.next/server/app/new.segments/_tree.segment.rsc +1 -1
  32. package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +1 -1
  33. package/.next/server/app/new.segments/new.segment.rsc +1 -1
  34. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/onboarding.html +1 -1
  36. package/.next/server/app/onboarding.rsc +1 -1
  37. package/.next/server/app/onboarding.segments/_full.segment.rsc +1 -1
  38. package/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
  39. package/.next/server/app/onboarding.segments/_index.segment.rsc +1 -1
  40. package/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
  41. package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
  42. package/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
  43. package/.next/server/app/page.js +1 -1
  44. package/.next/server/app/page_client-reference-manifest.js +1 -1
  45. package/.next/server/app/personas/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/personas.html +1 -1
  47. package/.next/server/app/personas.rsc +1 -1
  48. package/.next/server/app/personas.segments/_full.segment.rsc +1 -1
  49. package/.next/server/app/personas.segments/_head.segment.rsc +1 -1
  50. package/.next/server/app/personas.segments/_index.segment.rsc +1 -1
  51. package/.next/server/app/personas.segments/_tree.segment.rsc +1 -1
  52. package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +1 -1
  53. package/.next/server/app/personas.segments/personas.segment.rsc +1 -1
  54. package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/settings/permissions/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/settings.html +1 -1
  59. package/.next/server/app/settings.rsc +1 -1
  60. package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  61. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  62. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  63. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  64. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  65. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  66. package/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/templates.html +1 -1
  68. package/.next/server/app/templates.rsc +1 -1
  69. package/.next/server/app/templates.segments/_full.segment.rsc +1 -1
  70. package/.next/server/app/templates.segments/_head.segment.rsc +1 -1
  71. package/.next/server/app/templates.segments/_index.segment.rsc +1 -1
  72. package/.next/server/app/templates.segments/_tree.segment.rsc +1 -1
  73. package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +1 -1
  74. package/.next/server/app/templates.segments/templates.segment.rsc +1 -1
  75. package/.next/server/app-paths-manifest.json +2 -2
  76. package/.next/server/middleware-build-manifest.js +1 -1
  77. package/.next/server/pages/404.html +1 -1
  78. package/.next/server/pages/500.html +1 -1
  79. package/.next/server/server-reference-manifest.json +1 -1
  80. package/.next/trace +20 -20
  81. package/.next/trace-build +1 -1
  82. package/dist/daemon/agents/parsers/claude.js +37 -2
  83. package/dist/daemon/agents/parsers/claude.js.map +1 -1
  84. package/dist/daemon/routes/stats.js +51 -3
  85. package/dist/daemon/routes/stats.js.map +1 -1
  86. package/package.json +1 -1
  87. /package/.next/static/{XvjpD3-lFUxwhcgvkQXFY → jdUcCHB2b5lVrf4v8iQjl}/_buildManifest.js +0 -0
  88. /package/.next/static/{XvjpD3-lFUxwhcgvkQXFY → jdUcCHB2b5lVrf4v8iQjl}/_ssgManifest.js +0 -0
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-webpack","duration":10776893,"timestamp":6757669368845,"id":14,"parentId":1,"tags":{},"startTime":1778149039795,"traceId":"42b469d3b03ea84f"},{"name":"run-typescript","duration":6172308,"timestamp":6757680149989,"id":2104,"parentId":1,"tags":{},"startTime":1778149050576,"traceId":"42b469d3b03ea84f"},{"name":"static-check","duration":389631,"timestamp":6757686364797,"id":2107,"parentId":1,"tags":{},"startTime":1778149056791,"traceId":"42b469d3b03ea84f"},{"name":"static-generation","duration":1240473,"timestamp":6757686928319,"id":2147,"parentId":1,"tags":{},"startTime":1778149057354,"traceId":"42b469d3b03ea84f"},{"name":"collect-build-traces","duration":6188712,"timestamp":6757686754849,"id":2144,"parentId":1,"tags":{},"startTime":1778149057181,"traceId":"42b469d3b03ea84f"},{"name":"telemetry-flush","duration":30,"timestamp":6757692945198,"id":2156,"parentId":1,"tags":{},"startTime":1778149063371,"traceId":"42b469d3b03ea84f"},{"name":"next-build","duration":23670719,"timestamp":6757669274517,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778149039701,"traceId":"42b469d3b03ea84f"}]
1
+ [{"name":"run-webpack","duration":10597230,"timestamp":6758377658278,"id":14,"parentId":1,"tags":{},"startTime":1778149748084,"traceId":"7ab2362f13fe80d4"},{"name":"run-typescript","duration":5750629,"timestamp":6758388259882,"id":2103,"parentId":1,"tags":{},"startTime":1778149758686,"traceId":"7ab2362f13fe80d4"},{"name":"static-check","duration":396941,"timestamp":6758394053266,"id":2106,"parentId":1,"tags":{},"startTime":1778149764479,"traceId":"7ab2362f13fe80d4"},{"name":"static-generation","duration":1274366,"timestamp":6758394612747,"id":2146,"parentId":1,"tags":{},"startTime":1778149765039,"traceId":"7ab2362f13fe80d4"},{"name":"collect-build-traces","duration":6259994,"timestamp":6758394450667,"id":2143,"parentId":1,"tags":{},"startTime":1778149764877,"traceId":"7ab2362f13fe80d4"},{"name":"telemetry-flush","duration":31,"timestamp":6758400712271,"id":2155,"parentId":1,"tags":{},"startTime":1778149771138,"traceId":"7ab2362f13fe80d4"},{"name":"next-build","duration":23144821,"timestamp":6758377567490,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778149747994,"traceId":"7ab2362f13fe80d4"}]
@@ -7,12 +7,47 @@ function parseClaude(line) {
7
7
  if (!obj || typeof obj !== 'object')
8
8
  return [];
9
9
  const t = obj.type;
10
- // Final result line — emit message_done with the assembled text.
10
+ // Final result line — emit message_done with the assembled text +
11
+ // usage. Claude Code reports `total_cost_usd` (list-price equivalent
12
+ // even on a Pro/Max plan) and a `usage` block with input/output token
13
+ // counts. Without lifting these, every Claude reviewer landed in
14
+ // _stats.json with usage:undefined and the home page's plan-equivalent
15
+ // spend silently lost the largest contributor (Claude is most users'
16
+ // primary voice). The user pays $0 for these on subscription, but the
17
+ // shadow column is the whole point of "plan equiv" — show what the
18
+ // sub is saving them.
11
19
  if (t === 'result') {
12
20
  const subtype = obj.subtype;
13
21
  const isError = obj.is_error;
14
22
  if (subtype === 'success' && !isError) {
15
- return [{ type: 'message_done', finalText: String(obj.result ?? '') }];
23
+ const usageBlock = obj.usage;
24
+ const costUsd = typeof obj.total_cost_usd === 'number' ? obj.total_cost_usd : undefined;
25
+ const inputTokens = usageBlock && typeof usageBlock.input_tokens === 'number'
26
+ ? usageBlock.input_tokens
27
+ : undefined;
28
+ const outputTokens = usageBlock && typeof usageBlock.output_tokens === 'number'
29
+ ? usageBlock.output_tokens
30
+ : undefined;
31
+ const cachedInputTokens = usageBlock && typeof usageBlock.cache_read_input_tokens === 'number'
32
+ ? usageBlock.cache_read_input_tokens
33
+ : undefined;
34
+ const usage = costUsd !== undefined ||
35
+ inputTokens !== undefined ||
36
+ outputTokens !== undefined
37
+ ? {
38
+ ...(inputTokens !== undefined ? { inputTokens } : {}),
39
+ ...(outputTokens !== undefined ? { outputTokens } : {}),
40
+ ...(cachedInputTokens !== undefined ? { cachedInputTokens } : {}),
41
+ ...(costUsd !== undefined ? { costUsd } : {}),
42
+ }
43
+ : undefined;
44
+ return [
45
+ {
46
+ type: 'message_done',
47
+ finalText: String(obj.result ?? ''),
48
+ ...(usage ? { usage } : {}),
49
+ },
50
+ ];
16
51
  }
17
52
  return [
18
53
  {
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/daemon/agents/parsers/claude.ts"],"names":[],"mappings":";;AAmBA,kCA+DC;AAjED,2CAAsC;AAEtC,SAAgB,WAAW,CAAC,IAAY;IACtC,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAwC,CAAC;IACjE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAE/C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;IAEnB,iEAAiE;IACjE,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,OAA6B,CAAC;QAClD,MAAM,OAAO,GAAG,GAAG,CAAC,QAA+B,CAAC;QACpD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,OAAO;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;aAC/E;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,cAAc,EAAE,CAAC;QACzB,MAAM,KAAK,GAAI,GAAG,CAAC,KAA6C,IAAI,EAAE,CAAC;QACvE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QAE7B,IAAI,SAAS,KAAK,qBAAqB,EAAE,CAAC;YACxC,MAAM,KAAK,GAAI,KAAK,CAAC,KAA6C,IAAI,EAAE,CAAC;YACzE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClE,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,6DAA6D;YAC7D,8DAA8D;YAC9D,+CAA+C;YAC/C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,SAAS,KAAK,qBAAqB,EAAE,CAAC;YACxC,MAAM,KAAK,GAAI,KAAK,CAAC,aAAqD,IAAI,EAAE,CAAC;YACjF,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,OAAO;oBACL;wBACE,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;wBAC7D,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB;iBACF,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,oEAAoE;QACpE,gEAAgE;QAChE,oEAAoE;QACpE,4BAA4B;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,qEAAqE;IACrE,uDAAuD;IACvD,kEAAkE;IAClE,mEAAmE;IACnE,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/daemon/agents/parsers/claude.ts"],"names":[],"mappings":"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"}
@@ -38,13 +38,41 @@ function readStatsFile(filePath) {
38
38
  return null;
39
39
  }
40
40
  }
41
+ /**
42
+ * Returns true if a participant directory name belongs to a shim that
43
+ * charges the user out-of-pocket for each call (HTTP-dispatched API
44
+ * shims). Kept as a pattern match on the shim's `name` (which forms the
45
+ * middle slug of `reviewer-<name>-<idx>` / `doer-<name>`) so adding a new
46
+ * paid shim is a one-line change here. Anything not matching is
47
+ * considered "shadow" — subscription-tier CLI where the cost is sunk.
48
+ */
49
+ const PAID_SHIMS = new Set(['openrouter']);
50
+ function isPaidParticipant(participantDirName) {
51
+ // Strip the role prefix and trailing -<idx> for reviewers.
52
+ // Doer dir: `doer-<shim>` → shim
53
+ // Reviewer dir: `reviewer-<shim>-<idx>` → shim
54
+ let core = participantDirName;
55
+ if (core.startsWith('reviewer-'))
56
+ core = core.slice('reviewer-'.length);
57
+ else if (core.startsWith('doer-'))
58
+ core = core.slice('doer-'.length);
59
+ // Drop a trailing -<digit+>
60
+ core = core.replace(/-\d+$/, '');
61
+ return PAID_SHIMS.has(core);
62
+ }
41
63
  /**
42
64
  * Walks every round/<role-dir>/_stats.json under a single chat dir and
43
65
  * sums up usage. Returns zeros if the dir doesn't exist or holds no
44
66
  * sidecars yet.
45
67
  */
46
68
  function aggregateChatStats(chatDir) {
47
- const out = { costUsd: 0, tokensIn: 0, tokensOut: 0 };
69
+ const out = {
70
+ costUsd: 0,
71
+ actualCostUsd: 0,
72
+ shadowCostUsd: 0,
73
+ tokensIn: 0,
74
+ tokensOut: 0,
75
+ };
48
76
  if (!fs_1.default.existsSync(chatDir))
49
77
  return out;
50
78
  let rounds;
@@ -70,7 +98,14 @@ function aggregateChatStats(chatDir) {
70
98
  const s = readStatsFile(statsPath);
71
99
  if (!s?.usage)
72
100
  continue;
73
- out.costUsd += s.usage.costUsd ?? 0;
101
+ const cost = s.usage.costUsd ?? 0;
102
+ out.costUsd += cost;
103
+ if (isPaidParticipant(pd)) {
104
+ out.actualCostUsd += cost;
105
+ }
106
+ else {
107
+ out.shadowCostUsd += cost;
108
+ }
74
109
  out.tokensIn += s.usage.inputTokens ?? 0;
75
110
  out.tokensOut += s.usage.outputTokens ?? 0;
76
111
  }
@@ -115,16 +150,25 @@ function registerStatsRoutes(fastify) {
115
150
  const chatsRoot = path_1.default.join(os_1.default.homedir(), '.chorus', 'chats');
116
151
  let totalCostUsd = 0;
117
152
  let costTodayUsd = 0;
153
+ let actualCostUsd = 0;
154
+ let actualCostTodayUsd = 0;
155
+ let shadowCostUsd = 0;
156
+ let shadowCostTodayUsd = 0;
118
157
  let totalTokensIn = 0;
119
158
  let totalTokensOut = 0;
120
159
  for (const c of allChats) {
121
160
  const dir = path_1.default.join(chatsRoot, c.id);
122
161
  const s = aggregateChatStats(dir);
123
162
  totalCostUsd += s.costUsd;
163
+ actualCostUsd += s.actualCostUsd;
164
+ shadowCostUsd += s.shadowCostUsd;
124
165
  totalTokensIn += s.tokensIn;
125
166
  totalTokensOut += s.tokensOut;
126
- if (c.created_at >= todayStart)
167
+ if (c.created_at >= todayStart) {
127
168
  costTodayUsd += s.costUsd;
169
+ actualCostTodayUsd += s.actualCostUsd;
170
+ shadowCostTodayUsd += s.shadowCostUsd;
171
+ }
128
172
  }
129
173
  const lineages = new Set();
130
174
  for (const v of allVoices)
@@ -139,6 +183,10 @@ function registerStatsRoutes(fastify) {
139
183
  topTemplate,
140
184
  totalCostUsd,
141
185
  costTodayUsd,
186
+ actualCostUsd,
187
+ actualCostTodayUsd,
188
+ shadowCostUsd,
189
+ shadowCostTodayUsd,
142
190
  totalTokensIn,
143
191
  totalTokensOut,
144
192
  enabledVoices: allVoices.length,
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/daemon/routes/stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/daemon/routes/stats.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chorus-codes",
3
- "version": "0.8.22",
3
+ "version": "0.8.24",
4
4
  "description": "Driver-agnostic multi-LLM peer review for code decisions. Bring your own CLI; Chorus convenes 2-4 other LLMs to review the work before you ship.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "99x Agency",