chorus-codes 0.8.33 → 0.8.34
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/new.html +1 -1
- package/.next/server/app/new.rsc +1 -1
- package/.next/server/app/new.segments/_full.segment.rsc +1 -1
- package/.next/server/app/new.segments/_head.segment.rsc +1 -1
- package/.next/server/app/new.segments/_index.segment.rsc +1 -1
- package/.next/server/app/new.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/new.segments/new.segment.rsc +1 -1
- package/.next/server/app/onboarding.html +1 -1
- package/.next/server/app/onboarding.rsc +1 -1
- package/.next/server/app/onboarding.segments/_full.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_index.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
- package/.next/server/app/personas.html +1 -1
- package/.next/server/app/personas.rsc +1 -1
- package/.next/server/app/personas.segments/_full.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_head.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_index.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas.segment.rsc +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +1 -1
- package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/templates.html +1 -1
- package/.next/server/app/templates.rsc +1 -1
- package/.next/server/app/templates.segments/_full.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_head.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_index.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates.segment.rsc +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/trace +20 -20
- package/.next/trace-build +1 -1
- package/dist/cli/commands/quickstart.js +347 -0
- package/dist/cli/commands/quickstart.js.map +1 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/daemon/routes/chats.js +14 -0
- package/dist/daemon/routes/chats.js.map +1 -1
- package/dist/lib/telemetry.js +128 -1
- package/dist/lib/telemetry.js.map +1 -1
- package/package.json +1 -1
- /package/.next/static/{nonMfuqNquRl2CHrtuEp4 → HUuyUYZ9yRigNLlSWMQ_E}/_buildManifest.js +0 -0
- /package/.next/static/{nonMfuqNquRl2CHrtuEp4 → HUuyUYZ9yRigNLlSWMQ_E}/_ssgManifest.js +0 -0
package/dist/lib/telemetry.js
CHANGED
|
@@ -39,6 +39,11 @@ exports.getTelemetryStatus = getTelemetryStatus;
|
|
|
39
39
|
exports.setTelemetryEnabled = setTelemetryEnabled;
|
|
40
40
|
exports.getOrCreateInstallId = getOrCreateInstallId;
|
|
41
41
|
exports.countChatsLast24h = countChatsLast24h;
|
|
42
|
+
exports.getOrCreateInstallAt = getOrCreateInstallAt;
|
|
43
|
+
exports.getFirstChatFiredAt = getFirstChatFiredAt;
|
|
44
|
+
exports.markFirstChatFired = markFirstChatFired;
|
|
45
|
+
exports.countEnabledVoices = countEnabledVoices;
|
|
46
|
+
exports.countDetectedClis = countDetectedClis;
|
|
42
47
|
exports.buildPayload = buildPayload;
|
|
43
48
|
exports.sendHeartbeat = sendHeartbeat;
|
|
44
49
|
exports.startTelemetryHeartbeat = startTelemetryHeartbeat;
|
|
@@ -67,6 +72,7 @@ const crypto_1 = require("crypto");
|
|
|
67
72
|
const index_js_1 = require("./db/index.js");
|
|
68
73
|
const ENDPOINT = 'https://chorus.codes/api/telemetry';
|
|
69
74
|
const SETTINGS_KEY = 'telemetry.enabled';
|
|
75
|
+
const FIRST_CHAT_KEY = 'telemetry.firstChatFiredAt';
|
|
70
76
|
const HEARTBEAT_INTERVAL_MS = 24 * 60 * 60 * 1000;
|
|
71
77
|
const SEND_TIMEOUT_MS = 5_000;
|
|
72
78
|
function chorusDir() {
|
|
@@ -75,6 +81,9 @@ function chorusDir() {
|
|
|
75
81
|
function installIdPath() {
|
|
76
82
|
return path.join(chorusDir(), 'install-id');
|
|
77
83
|
}
|
|
84
|
+
function installAtPath() {
|
|
85
|
+
return path.join(chorusDir(), 'install-at');
|
|
86
|
+
}
|
|
78
87
|
function noTelemetryPath() {
|
|
79
88
|
return path.join(chorusDir(), 'no-telemetry');
|
|
80
89
|
}
|
|
@@ -180,6 +189,118 @@ async function countChatsLast24h(now = Date.now()) {
|
|
|
180
189
|
const n = typeof raw === 'bigint' ? Number(raw) : Number(raw ?? 0);
|
|
181
190
|
return Number.isFinite(n) && n >= 0 ? Math.floor(n) : 0;
|
|
182
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Read or mint the install's first-boot timestamp (ms epoch). Persisted
|
|
194
|
+
* to `~/.chorus/install-at` so it survives daemon restarts AND chorus
|
|
195
|
+
* upgrades — same lifetime semantics as `install-id`.
|
|
196
|
+
*
|
|
197
|
+
* Best-effort: every fs operation is guarded so a read-only $HOME,
|
|
198
|
+
* ENOSPC, or permission error returns `Date.now()` rather than
|
|
199
|
+
* propagating the throw to the heartbeat caller. Without this guard
|
|
200
|
+
* a single fs failure took out the entire telemetry pipeline (not just
|
|
201
|
+
* the new fields), which the chorus self-review caught as blocking.
|
|
202
|
+
*
|
|
203
|
+
* The malformed-file fallback mirrors `getOrCreateInstallId`: if the
|
|
204
|
+
* file is corrupt, mint a fresh timestamp rather than crashing. The
|
|
205
|
+
* analytics view simply counts that user as a new cohort starting from
|
|
206
|
+
* the recovery date.
|
|
207
|
+
*/
|
|
208
|
+
function getOrCreateInstallAt() {
|
|
209
|
+
try {
|
|
210
|
+
const dir = chorusDir();
|
|
211
|
+
if (!fs.existsSync(dir))
|
|
212
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
213
|
+
const file = installAtPath();
|
|
214
|
+
if (fs.existsSync(file)) {
|
|
215
|
+
const raw = fs.readFileSync(file, 'utf-8').trim();
|
|
216
|
+
const parsed = parseInt(raw, 10);
|
|
217
|
+
if (Number.isFinite(parsed) && parsed > 0)
|
|
218
|
+
return parsed;
|
|
219
|
+
}
|
|
220
|
+
const fresh = Date.now();
|
|
221
|
+
fs.writeFileSync(file, String(fresh) + '\n', { mode: 0o600 });
|
|
222
|
+
return fresh;
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
// Read-only $HOME / ENOSPC / permission error / race-on-mkdir —
|
|
226
|
+
// return an in-memory timestamp so the heartbeat still goes out.
|
|
227
|
+
// Loses install-age stability across restarts on this host, but
|
|
228
|
+
// doesn't lose the entire payload.
|
|
229
|
+
return Date.now();
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Read the persisted "first chat fired at" timestamp. Returns null when
|
|
234
|
+
* no chat has ever been created against this install. Best-effort: a DB
|
|
235
|
+
* read failure resolves to null rather than throwing — telemetry must
|
|
236
|
+
* never block a heartbeat.
|
|
237
|
+
*/
|
|
238
|
+
async function getFirstChatFiredAt() {
|
|
239
|
+
try {
|
|
240
|
+
const raw = await index_js_1.settings.get(FIRST_CHAT_KEY);
|
|
241
|
+
if (typeof raw === 'number' && Number.isFinite(raw) && raw > 0)
|
|
242
|
+
return raw;
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Latch the "first chat fired at" timestamp. Idempotent — only writes
|
|
251
|
+
* the first time. Subsequent calls are no-ops, preserving the original
|
|
252
|
+
* fire timestamp so TTFC analytics stay stable across re-runs.
|
|
253
|
+
*
|
|
254
|
+
* Called from POST /chats once we've confirmed a row was created. Best-
|
|
255
|
+
* effort write — a DB failure is logged at debug level only and never
|
|
256
|
+
* blocks the chat-create path.
|
|
257
|
+
*/
|
|
258
|
+
async function markFirstChatFired(now = Date.now()) {
|
|
259
|
+
try {
|
|
260
|
+
const existing = await index_js_1.settings.get(FIRST_CHAT_KEY);
|
|
261
|
+
if (typeof existing === 'number' && existing > 0)
|
|
262
|
+
return;
|
|
263
|
+
await index_js_1.settings.set(FIRST_CHAT_KEY, now);
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
// Best-effort — never let telemetry-write block a chat creation.
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Count voices currently enabled. Idx_voices_enabled covers this; on a
|
|
271
|
+
* tiny voices table (<200 rows) it's sub-millisecond. Best-effort: a
|
|
272
|
+
* read failure resolves to 0 so the heartbeat still goes out.
|
|
273
|
+
*/
|
|
274
|
+
async function countEnabledVoices() {
|
|
275
|
+
try {
|
|
276
|
+
const db = await (0, index_js_1.getDb)();
|
|
277
|
+
const r = await db.execute('SELECT COUNT(*) AS n FROM voices WHERE enabled = 1');
|
|
278
|
+
const row = r.rows[0];
|
|
279
|
+
if (!row)
|
|
280
|
+
return 0;
|
|
281
|
+
const raw = row.n ?? row[0];
|
|
282
|
+
const n = typeof raw === 'bigint' ? Number(raw) : Number(raw ?? 0);
|
|
283
|
+
return Number.isFinite(n) && n >= 0 ? Math.floor(n) : 0;
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
return 0;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Count detected CLIs on PATH (claude-code, codex, gemini, opencode,
|
|
291
|
+
* kimi). Lazy-imports `cli-detect` so a heartbeat that fires before the
|
|
292
|
+
* detection module is wired (extremely unlikely; defensive) still works.
|
|
293
|
+
*/
|
|
294
|
+
async function countDetectedClis() {
|
|
295
|
+
try {
|
|
296
|
+
const { detectAllClis } = await import('./cli-detect.js');
|
|
297
|
+
const results = detectAllClis(true);
|
|
298
|
+
return results.filter((d) => d.found).length;
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
return 0;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
183
304
|
/**
|
|
184
305
|
* Assemble the payload. Pure shape — easy to test against the spec.
|
|
185
306
|
* `version` is read from package.json so a stale literal can't drift;
|
|
@@ -191,7 +312,7 @@ async function buildPayload(args) {
|
|
|
191
312
|
// the analytics cardinality.
|
|
192
313
|
const nodeMajor = process.versions.node.split('.')[0];
|
|
193
314
|
return {
|
|
194
|
-
schema:
|
|
315
|
+
schema: 2,
|
|
195
316
|
installId: getOrCreateInstallId(),
|
|
196
317
|
version: args.version,
|
|
197
318
|
os: process.platform,
|
|
@@ -199,6 +320,10 @@ async function buildPayload(args) {
|
|
|
199
320
|
node: nodeMajor,
|
|
200
321
|
daemonUptimeSeconds: Math.max(0, Math.floor((now - args.daemonStartedAt) / 1000)),
|
|
201
322
|
chatsLast24h: await countChatsLast24h(now),
|
|
323
|
+
installAt: getOrCreateInstallAt(),
|
|
324
|
+
firstChatFiredAt: await getFirstChatFiredAt(),
|
|
325
|
+
voicesEnabled: await countEnabledVoices(),
|
|
326
|
+
clisDetected: await countDetectedClis(),
|
|
202
327
|
};
|
|
203
328
|
}
|
|
204
329
|
/**
|
|
@@ -280,10 +405,12 @@ function startTelemetryHeartbeat(args) {
|
|
|
280
405
|
// test file can mutate paths without touching `~/.chorus` on the host.
|
|
281
406
|
exports._testing = {
|
|
282
407
|
installIdPath,
|
|
408
|
+
installAtPath,
|
|
283
409
|
noTelemetryPath,
|
|
284
410
|
chorusDir,
|
|
285
411
|
ENDPOINT,
|
|
286
412
|
SETTINGS_KEY,
|
|
413
|
+
FIRST_CHAT_KEY,
|
|
287
414
|
HEARTBEAT_INTERVAL_MS,
|
|
288
415
|
SEND_TIMEOUT_MS,
|
|
289
416
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.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.
|
|
3
|
+
"version": "0.8.34",
|
|
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",
|
|
File without changes
|
|
File without changes
|