@agentstrack/collector 0.2.0 → 0.3.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.
- package/CHANGELOG.md +177 -1
- package/README.md +78 -28
- package/dist/adapters/claude.d.ts +18 -0
- package/dist/adapters/claude.js +153 -45
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/codex.d.ts +15 -1
- package/dist/adapters/codex.js +81 -33
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/opencode.d.ts +19 -7
- package/dist/adapters/opencode.js +88 -29
- package/dist/adapters/opencode.js.map +1 -1
- package/dist/adapters/types.d.ts +16 -0
- package/dist/adapters/types.js +61 -0
- package/dist/adapters/types.js.map +1 -1
- package/dist/cli.js +165 -34
- package/dist/cli.js.map +1 -1
- package/dist/commands/service.js +40 -10
- package/dist/commands/service.js.map +1 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.js +31 -5
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +73 -21
- package/dist/daemon.js +358 -121
- package/dist/daemon.js.map +1 -1
- package/dist/git/commits.d.ts +7 -1
- package/dist/git/commits.js +36 -17
- package/dist/git/commits.js.map +1 -1
- package/dist/git/repo.d.ts +13 -4
- package/dist/git/repo.js +34 -20
- package/dist/git/repo.js.map +1 -1
- package/dist/machine.d.ts +27 -0
- package/dist/machine.js +46 -0
- package/dist/machine.js.map +1 -0
- package/dist/privacy/pipeline.d.ts +3 -0
- package/dist/privacy/pipeline.js +4 -2
- package/dist/privacy/pipeline.js.map +1 -1
- package/dist/privacy/redact.d.ts +10 -1
- package/dist/privacy/redact.js +29 -3
- package/dist/privacy/redact.js.map +1 -1
- package/dist/queue/event-id.d.ts +9 -0
- package/dist/queue/event-id.js +15 -0
- package/dist/queue/event-id.js.map +1 -0
- package/dist/queue/spool.d.ts +24 -5
- package/dist/queue/spool.js +89 -33
- package/dist/queue/spool.js.map +1 -1
- package/dist/queue/tailer.d.ts +27 -4
- package/dist/queue/tailer.js +89 -28
- package/dist/queue/tailer.js.map +1 -1
- package/dist/transport/client.d.ts +37 -13
- package/dist/transport/client.js +50 -3
- package/dist/transport/client.js.map +1 -1
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import pc from 'picocolors';
|
|
4
|
+
import { execFileSync } from 'node:child_process';
|
|
4
5
|
import { existsSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
5
|
-
import {
|
|
6
|
+
import { platform, arch } from 'node:os';
|
|
7
|
+
import { machineInfo } from './machine.js';
|
|
8
|
+
import { fileURLToPath } from 'node:url';
|
|
9
|
+
import { createInterface } from 'node:readline';
|
|
6
10
|
import { stringify } from 'yaml';
|
|
7
11
|
import { CONFIG_PATH, LOG_PATH, PID_PATH, SPOOL_PATH, loadConfig, saveConfig, Config, configExists, } from './config.js';
|
|
8
12
|
import { Collector, VERSION, buildAdapters, errorMessage, listTranscripts, log } from './daemon.js';
|
|
@@ -19,27 +23,46 @@ program
|
|
|
19
23
|
program
|
|
20
24
|
.command('login')
|
|
21
25
|
.description('Authenticate this device with an AgentsTrack API key')
|
|
22
|
-
|
|
26
|
+
// Optional: an API key on the command line lands in shell history and `ps`.
|
|
27
|
+
// Prefer the AGENTSTRACK_API_KEY env var, or a stdin prompt / pipe.
|
|
28
|
+
.argument('[api-key]', 'API key from your dashboard (Settings → API keys)')
|
|
23
29
|
.option('--api-url <url>', 'AgentsTrack API base URL (for self-hosted instances)')
|
|
24
30
|
.option('--label <name>', 'friendly name for this device in the dashboard')
|
|
25
|
-
.action(async (
|
|
31
|
+
.action(async (apiKeyArg, options) => {
|
|
32
|
+
const apiKey = await resolveApiKey(apiKeyArg);
|
|
33
|
+
if (!apiKey) {
|
|
34
|
+
console.error(pc.red('✗') + ' No API key provided.');
|
|
35
|
+
console.error(pc.dim(' Pass it as an argument, set AGENTSTRACK_API_KEY, or pipe it on stdin.'));
|
|
36
|
+
process.exitCode = 1;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
26
39
|
const existing = configExists() ? loadConfig() : Config.parse({});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
40
|
+
// Config.parse enforces the https-only rule (http allowed for localhost),
|
|
41
|
+
// so a bad --api-url is rejected here with a clear message rather than on
|
|
42
|
+
// the next start.
|
|
43
|
+
let config;
|
|
44
|
+
try {
|
|
45
|
+
config = Config.parse({
|
|
46
|
+
...existing,
|
|
47
|
+
api_url: options.apiUrl ?? existing.api_url,
|
|
48
|
+
api_key: apiKey,
|
|
49
|
+
// A new key may belong to a different org, so re-register.
|
|
50
|
+
collector_id: undefined,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
console.error(pc.red('✗') + ` ${errorMessage(error)}`);
|
|
55
|
+
process.exitCode = 1;
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
console.log(pc.dim(`Connecting to ${config.api_url}…`));
|
|
34
59
|
const client = new ApiClient({ apiUrl: config.api_url, apiKey });
|
|
35
60
|
try {
|
|
36
61
|
const adapters = buildAdapters(config);
|
|
37
62
|
const agents = await Promise.all(adapters.map(async (a) => ({ agent: a.id, version: (await a.detect()).version })));
|
|
38
63
|
const result = await client.registerCollector({
|
|
39
|
-
|
|
64
|
+
...machineInfo(),
|
|
40
65
|
label: options.label,
|
|
41
|
-
os: platform(),
|
|
42
|
-
arch: arch(),
|
|
43
66
|
version: VERSION,
|
|
44
67
|
privacy_mode: config.privacy.mode,
|
|
45
68
|
agents,
|
|
@@ -74,6 +97,13 @@ program
|
|
|
74
97
|
console.log('Not logged in.');
|
|
75
98
|
return;
|
|
76
99
|
}
|
|
100
|
+
// Clearing the key would leave a still-installed service restarting an
|
|
101
|
+
// unauthenticated collector, so tear it down first.
|
|
102
|
+
const unit = uninstallService();
|
|
103
|
+
if (unit)
|
|
104
|
+
console.log(pc.dim(` Removed service unit (${unit}).`));
|
|
105
|
+
if (existsSync(PID_PATH))
|
|
106
|
+
killCollector();
|
|
77
107
|
const config = loadConfig();
|
|
78
108
|
saveConfig({ ...config, api_key: undefined, collector_id: undefined });
|
|
79
109
|
if (options.purge) {
|
|
@@ -97,9 +127,18 @@ program
|
|
|
97
127
|
.description('Start collecting (installs a background service unless --foreground)')
|
|
98
128
|
.option('-f, --foreground', 'run in this terminal instead of as a service')
|
|
99
129
|
.action(async (options) => {
|
|
100
|
-
|
|
130
|
+
// Exit 0 (not 1) when unauthenticated: the launchd/systemd unit runs
|
|
131
|
+
// `start --foreground`, and a non-zero exit makes the supervisor respawn it
|
|
132
|
+
// on a loop. A clean exit lets it idle until the user logs in again.
|
|
133
|
+
if (!configExists() || !loadConfig().api_key) {
|
|
134
|
+
const msg = 'Not logged in — collector idle. Run: agentstrack login';
|
|
135
|
+
console.log(pc.yellow('!') + ' ' + msg);
|
|
136
|
+
log(msg);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const config = loadConfig();
|
|
101
140
|
if (!options.foreground) {
|
|
102
|
-
const cliPath =
|
|
141
|
+
const cliPath = fileURLToPath(import.meta.url);
|
|
103
142
|
const target = installService(process.execPath, cliPath);
|
|
104
143
|
console.log(pc.green('✓') + ` Collector service installed and started.`);
|
|
105
144
|
console.log(` Unit: ${pc.dim(target)}`);
|
|
@@ -107,7 +146,28 @@ program
|
|
|
107
146
|
console.log(`\nCheck it: ${pc.cyan('agentstrack status')}`);
|
|
108
147
|
return;
|
|
109
148
|
}
|
|
110
|
-
|
|
149
|
+
// Two collectors on one spool and one set of transcripts double-count and
|
|
150
|
+
// race the pid file, so refuse a second foreground start.
|
|
151
|
+
if (isRunning()) {
|
|
152
|
+
console.error(pc.red('✗') + ` Collector already running (pid ${readFileSync(PID_PATH, 'utf8').trim()}).`);
|
|
153
|
+
process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
// A stale pid file (previous crash) is safe to clear now that isRunning()
|
|
156
|
+
// has confirmed no live process holds it; 'wx' then makes the create fail
|
|
157
|
+
// if a racing start beat us to it.
|
|
158
|
+
try {
|
|
159
|
+
unlinkSync(PID_PATH);
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
// Nothing to remove.
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
writeFileSync(PID_PATH, String(process.pid), { flag: 'wx' });
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
console.error(pc.red('✗') + ' Another collector just started. Aborting.');
|
|
169
|
+
process.exit(1);
|
|
170
|
+
}
|
|
111
171
|
const collector = new Collector(config);
|
|
112
172
|
const shutdown = () => {
|
|
113
173
|
console.log('\nStopping…');
|
|
@@ -130,21 +190,8 @@ program
|
|
|
130
190
|
.description('Stop the collector and remove its background service')
|
|
131
191
|
.action(() => {
|
|
132
192
|
const unit = uninstallService();
|
|
133
|
-
if (existsSync(PID_PATH))
|
|
134
|
-
|
|
135
|
-
try {
|
|
136
|
-
process.kill(pid, 'SIGTERM');
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
// Process already exited.
|
|
140
|
-
}
|
|
141
|
-
try {
|
|
142
|
-
unlinkSync(PID_PATH);
|
|
143
|
-
}
|
|
144
|
-
catch {
|
|
145
|
-
// Already gone.
|
|
146
|
-
}
|
|
147
|
-
}
|
|
193
|
+
if (existsSync(PID_PATH))
|
|
194
|
+
killCollector();
|
|
148
195
|
console.log(pc.green('✓') + (unit ? ` Service removed (${unit}).` : ' Collector stopped.'));
|
|
149
196
|
});
|
|
150
197
|
// ------------------------------------------------------------------ inspect
|
|
@@ -184,6 +231,9 @@ program
|
|
|
184
231
|
const config = loadConfig();
|
|
185
232
|
const spool = new Spool(SPOOL_PATH);
|
|
186
233
|
const depth = spool.depth();
|
|
234
|
+
// Track F1 pauses uploads (e.g. over quota) by writing a reason here; show
|
|
235
|
+
// it so a growing queue does not look like an unexplained failure.
|
|
236
|
+
const pausedReason = spool.getMeta('upload_paused_reason');
|
|
187
237
|
spool.close();
|
|
188
238
|
console.log(pc.bold('AgentsTrack collector') + pc.dim(` v${VERSION}`));
|
|
189
239
|
console.log(` Logged in: ${config.api_key ? pc.green('yes') : pc.red('no')}`);
|
|
@@ -191,6 +241,8 @@ program
|
|
|
191
241
|
console.log(` Collector: ${config.collector_id ?? pc.dim('not registered')}`);
|
|
192
242
|
console.log(` Privacy: ${pc.bold(config.privacy.mode)}`);
|
|
193
243
|
console.log(` Queue depth: ${depth === 0 ? pc.green('0') : pc.yellow(String(depth))}`);
|
|
244
|
+
if (pausedReason)
|
|
245
|
+
console.log(` Uploads: ${pc.yellow('paused')} ${pc.dim(`(${pausedReason})`)}`);
|
|
194
246
|
console.log(` Service: ${existsSync(servicePath()) ? pc.green('installed') : pc.dim('not installed')}`);
|
|
195
247
|
console.log(` Running: ${isRunning() ? pc.green('yes') : pc.yellow('no')}`);
|
|
196
248
|
console.log('\n' + pc.bold('Agents'));
|
|
@@ -235,8 +287,9 @@ program
|
|
|
235
287
|
if (!detection.installed)
|
|
236
288
|
continue;
|
|
237
289
|
if (detection.watchPaths.length > 0) {
|
|
238
|
-
const files = detection.watchPaths.flatMap((p) => listTranscripts(p));
|
|
239
|
-
|
|
290
|
+
const files = detection.watchPaths.flatMap((p) => listTranscripts(p, config.tracking.max_age_days));
|
|
291
|
+
const days = config.tracking.max_age_days;
|
|
292
|
+
console.log(` ${pc.dim(`${files.length} file(s) modified in the last ${days} day${days === 1 ? '' : 's'}`)}`);
|
|
240
293
|
}
|
|
241
294
|
else {
|
|
242
295
|
// A database-backed adapter has no files to count; name the source instead
|
|
@@ -350,7 +403,7 @@ program
|
|
|
350
403
|
.action((action) => {
|
|
351
404
|
if (action === 'install') {
|
|
352
405
|
requireLogin();
|
|
353
|
-
const cliPath =
|
|
406
|
+
const cliPath = fileURLToPath(import.meta.url);
|
|
354
407
|
console.log(pc.green('✓') + ` Installed: ${installService(process.execPath, cliPath)}`);
|
|
355
408
|
}
|
|
356
409
|
else if (action === 'uninstall') {
|
|
@@ -362,6 +415,47 @@ program
|
|
|
362
415
|
process.exitCode = 1;
|
|
363
416
|
}
|
|
364
417
|
});
|
|
418
|
+
/**
|
|
419
|
+
* Signals the foreground collector named by the pid file, but only after
|
|
420
|
+
* confirming the pid still belongs to a collector — a stale file may now point
|
|
421
|
+
* at an unrelated, recycled pid, which we must not kill.
|
|
422
|
+
*/
|
|
423
|
+
function killCollector() {
|
|
424
|
+
const pid = Number(readFileSync(PID_PATH, 'utf8').trim());
|
|
425
|
+
const removePid = () => {
|
|
426
|
+
try {
|
|
427
|
+
unlinkSync(PID_PATH);
|
|
428
|
+
}
|
|
429
|
+
catch {
|
|
430
|
+
// Already gone.
|
|
431
|
+
}
|
|
432
|
+
};
|
|
433
|
+
if (!Number.isInteger(pid) || pid <= 0) {
|
|
434
|
+
removePid();
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
437
|
+
let command = '';
|
|
438
|
+
try {
|
|
439
|
+
command = execFileSync('ps', ['-o', 'command=', '-p', String(pid)], { encoding: 'utf8' });
|
|
440
|
+
}
|
|
441
|
+
catch {
|
|
442
|
+
// No such process — the pid file is stale.
|
|
443
|
+
removePid();
|
|
444
|
+
return;
|
|
445
|
+
}
|
|
446
|
+
if (!command.includes('agentstrack')) {
|
|
447
|
+
// The pid was recycled by an unrelated process; drop the stale file only.
|
|
448
|
+
removePid();
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
try {
|
|
452
|
+
process.kill(pid, 'SIGTERM');
|
|
453
|
+
}
|
|
454
|
+
catch {
|
|
455
|
+
// Process already exited.
|
|
456
|
+
}
|
|
457
|
+
removePid();
|
|
458
|
+
}
|
|
365
459
|
/** True when a foreground collector holds the pid file. */
|
|
366
460
|
function isRunning() {
|
|
367
461
|
if (!existsSync(PID_PATH))
|
|
@@ -430,6 +524,43 @@ async function doctorJson() {
|
|
|
430
524
|
console.log(JSON.stringify(report, null, 2));
|
|
431
525
|
return (configured && Boolean(config?.api_key) && api.reachable && agents.some((a) => a.installed));
|
|
432
526
|
}
|
|
527
|
+
/**
|
|
528
|
+
* Resolves the API key from, in order: the argument, AGENTSTRACK_API_KEY, or
|
|
529
|
+
* stdin (a pipe, or an echo-off prompt on a TTY). Keeps the key off the command
|
|
530
|
+
* line and out of shell history when the caller wants it to be.
|
|
531
|
+
*/
|
|
532
|
+
async function resolveApiKey(arg) {
|
|
533
|
+
if (arg)
|
|
534
|
+
return arg.trim();
|
|
535
|
+
const fromEnv = process.env['AGENTSTRACK_API_KEY'];
|
|
536
|
+
if (fromEnv)
|
|
537
|
+
return fromEnv.trim();
|
|
538
|
+
if (!process.stdin.isTTY) {
|
|
539
|
+
// Piped: `agentstrack login < key.txt`.
|
|
540
|
+
const chunks = [];
|
|
541
|
+
for await (const chunk of process.stdin)
|
|
542
|
+
chunks.push(chunk);
|
|
543
|
+
return Buffer.concat(chunks).toString('utf8').trim();
|
|
544
|
+
}
|
|
545
|
+
return promptSecret('API key: ');
|
|
546
|
+
}
|
|
547
|
+
/** Reads one line from a TTY without echoing it. */
|
|
548
|
+
function promptSecret(prompt) {
|
|
549
|
+
return new Promise((resolve) => {
|
|
550
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout, terminal: true });
|
|
551
|
+
// Suppress echo of the typed characters; still let the prompt and newline through.
|
|
552
|
+
const muted = rl;
|
|
553
|
+
muted._writeToOutput = (s) => {
|
|
554
|
+
if (s.includes(prompt) || s.includes('\n') || s.includes('\r'))
|
|
555
|
+
process.stdout.write(s);
|
|
556
|
+
};
|
|
557
|
+
rl.question(prompt, (answer) => {
|
|
558
|
+
rl.close();
|
|
559
|
+
process.stdout.write('\n');
|
|
560
|
+
resolve(answer.trim());
|
|
561
|
+
});
|
|
562
|
+
});
|
|
563
|
+
}
|
|
433
564
|
function requireLogin() {
|
|
434
565
|
if (!configExists()) {
|
|
435
566
|
console.error(pc.red('✗') + ' Not logged in. Run: ' + pc.cyan('agentstrack login <api-key>'));
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/service.js
CHANGED
|
@@ -11,6 +11,19 @@ import { CONFIG_DIR, LOG_PATH } from '../config.js';
|
|
|
11
11
|
* writing our own process manager would be strictly worse.
|
|
12
12
|
*/
|
|
13
13
|
const LABEL = 'ai.agentstrack.collector';
|
|
14
|
+
/** Escapes the five XML predefined entities for safe interpolation into a plist. */
|
|
15
|
+
function xmlEscape(value) {
|
|
16
|
+
return value
|
|
17
|
+
.replace(/&/g, '&')
|
|
18
|
+
.replace(/</g, '<')
|
|
19
|
+
.replace(/>/g, '>')
|
|
20
|
+
.replace(/"/g, '"')
|
|
21
|
+
.replace(/'/g, ''');
|
|
22
|
+
}
|
|
23
|
+
/** Quotes an argument for a systemd ExecStart line (double quotes, backslash-escaped). */
|
|
24
|
+
function systemdQuote(value) {
|
|
25
|
+
return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
|
|
26
|
+
}
|
|
14
27
|
export function servicePath() {
|
|
15
28
|
return platform() === 'darwin'
|
|
16
29
|
? join(homedir(), 'Library', 'LaunchAgents', `${LABEL}.plist`)
|
|
@@ -19,24 +32,35 @@ export function servicePath() {
|
|
|
19
32
|
export function installService(nodePath, cliPath) {
|
|
20
33
|
const target = servicePath();
|
|
21
34
|
mkdirSync(join(target, '..'), { recursive: true });
|
|
35
|
+
// Pass AGENTSTRACK_HOME through to the supervised process when the installer
|
|
36
|
+
// ran with it set, so the service reads the same config/spool the user does.
|
|
37
|
+
const home = process.env['AGENTSTRACK_HOME'];
|
|
22
38
|
if (platform() === 'darwin') {
|
|
39
|
+
const envBlock = home
|
|
40
|
+
? ` <key>EnvironmentVariables</key>
|
|
41
|
+
<dict><key>AGENTSTRACK_HOME</key><string>${xmlEscape(home)}</string></dict>
|
|
42
|
+
`
|
|
43
|
+
: '';
|
|
23
44
|
writeFileSync(target, `<?xml version="1.0" encoding="UTF-8"?>
|
|
24
45
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
25
46
|
<plist version="1.0">
|
|
26
47
|
<dict>
|
|
27
|
-
<key>Label</key><string>${LABEL}</string>
|
|
48
|
+
<key>Label</key><string>${xmlEscape(LABEL)}</string>
|
|
28
49
|
<key>ProgramArguments</key>
|
|
29
50
|
<array>
|
|
30
|
-
<string>${nodePath}</string>
|
|
31
|
-
<string>${cliPath}</string>
|
|
51
|
+
<string>${xmlEscape(nodePath)}</string>
|
|
52
|
+
<string>${xmlEscape(cliPath)}</string>
|
|
32
53
|
<string>start</string>
|
|
33
54
|
<string>--foreground</string>
|
|
34
55
|
</array>
|
|
35
56
|
<key>RunAtLoad</key><true/>
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<key>
|
|
57
|
+
<!-- Restart on a crash, but not after a clean exit (e.g. logout leaves the
|
|
58
|
+
collector unauthenticated and it exits 0) — a bare <true/> here respawns
|
|
59
|
+
an exit-0 process every 10s forever. -->
|
|
60
|
+
<key>KeepAlive</key><dict><key>SuccessfulExit</key><false/></dict>
|
|
61
|
+
${envBlock} <key>WorkingDirectory</key><string>${xmlEscape(CONFIG_DIR)}</string>
|
|
62
|
+
<key>StandardOutPath</key><string>${xmlEscape(LOG_PATH)}</string>
|
|
63
|
+
<key>StandardErrorPath</key><string>${xmlEscape(LOG_PATH)}</string>
|
|
40
64
|
</dict>
|
|
41
65
|
</plist>
|
|
42
66
|
`, 'utf8');
|
|
@@ -49,16 +73,22 @@ export function installService(nodePath, cliPath) {
|
|
|
49
73
|
execFileSync('launchctl', ['load', target], { stdio: 'ignore' });
|
|
50
74
|
return target;
|
|
51
75
|
}
|
|
76
|
+
const environmentLine = home ? `Environment=AGENTSTRACK_HOME=${systemdQuote(home)}\n` : '';
|
|
52
77
|
writeFileSync(target, `[Unit]
|
|
53
78
|
Description=AgentsTrack collector
|
|
54
79
|
After=network-online.target
|
|
80
|
+
# Stop respawning after 5 failures in 5 minutes so a persistently broken unit
|
|
81
|
+
# (bad path, revoked key) idles instead of looping.
|
|
82
|
+
StartLimitIntervalSec=300
|
|
83
|
+
StartLimitBurst=5
|
|
55
84
|
|
|
56
85
|
[Service]
|
|
57
86
|
Type=simple
|
|
58
|
-
ExecStart=${nodePath} ${cliPath} start --foreground
|
|
59
|
-
Restart
|
|
87
|
+
ExecStart=${systemdQuote(nodePath)} ${systemdQuote(cliPath)} start --foreground
|
|
88
|
+
# Restart on failure only; a clean exit (e.g. after logout) must stay stopped.
|
|
89
|
+
Restart=on-failure
|
|
60
90
|
RestartSec=10
|
|
61
|
-
WorkingDirectory=${CONFIG_DIR}
|
|
91
|
+
${environmentLine}WorkingDirectory=${CONFIG_DIR}
|
|
62
92
|
|
|
63
93
|
[Install]
|
|
64
94
|
WantedBy=default.target
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,KAAK,GAAG,0BAA0B,CAAC;AAEzC,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,EAAE,KAAK,QAAQ;QAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,QAAQ,CAAC;QAC9D,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAe;IAC9D,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnD,IAAI,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC5B,aAAa,CACX,MAAM,EACN;;;;4BAIsB,KAAK;;;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ export declare const Config: z.ZodObject<{
|
|
|
40
40
|
excluded_projects: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
41
41
|
}, z.core.$strip>>;
|
|
42
42
|
tracking: z.ZodPrefault<z.ZodObject<{
|
|
43
|
+
max_age_days: z.ZodDefault<z.ZodNumber>;
|
|
43
44
|
idle_timeout_seconds: z.ZodDefault<z.ZodNumber>;
|
|
44
45
|
git_metadata: z.ZodDefault<z.ZodBoolean>;
|
|
45
46
|
process_metrics: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -65,4 +66,4 @@ export declare function saveConfig(config: Config): void;
|
|
|
65
66
|
export declare function ensureConfigDir(): void;
|
|
66
67
|
export declare function configExists(): boolean;
|
|
67
68
|
/** Documented starting point, written on `agentstrack login`. */
|
|
68
|
-
export declare const DEFAULT_CONFIG_COMMENT = "# AgentsTrack collector configuration\n# Docs: https://github.com/agentstrack/collector#configuration\n#\n# privacy.mode:\n# metadata - counts and timings only; no titles, no prompts, no code\n# analytics - adds
|
|
69
|
+
export declare const DEFAULT_CONFIG_COMMENT = "# AgentsTrack collector configuration\n# Docs: https://github.com/agentstrack/collector#configuration\n#\n# privacy.mode:\n# metadata - counts and timings only; no titles, no prompts, no code\n# analytics - adds a session title (the first line of the prompt, max 120\n# chars, secret-redacted); raw prompt text discarded\n# full - uploads prompt text (opt-in, off by default)\n";
|
package/dist/config.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync, chmodSync } from 'node:fs';
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, chmodSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { parse, stringify } from 'yaml';
|
|
@@ -14,7 +14,14 @@ export const PID_PATH = join(CONFIG_DIR, 'collector.pid');
|
|
|
14
14
|
* literally valid.
|
|
15
15
|
*/
|
|
16
16
|
export const Config = z.object({
|
|
17
|
-
api_url: z
|
|
17
|
+
api_url: z
|
|
18
|
+
.string()
|
|
19
|
+
.url()
|
|
20
|
+
// The API key travels as a bearer token on every request, so the transport
|
|
21
|
+
// must be encrypted. http is allowed only for a loopback dev server.
|
|
22
|
+
.refine((u) => u.startsWith('https://') ||
|
|
23
|
+
/^http:\/\/(localhost|127\.0\.0\.1|\[::1\])(:\d+)?(\/|$)/.test(u), 'api_url must be https (http is allowed only for localhost)')
|
|
24
|
+
.default('https://api.agentstrack.ai'),
|
|
18
25
|
/** Written by `agentstrack login`. File is chmod 600. */
|
|
19
26
|
api_key: z.string().optional(),
|
|
20
27
|
collector_id: z.string().uuid().optional(),
|
|
@@ -34,6 +41,19 @@ export const Config = z.object({
|
|
|
34
41
|
.prefault({}),
|
|
35
42
|
tracking: z
|
|
36
43
|
.object({
|
|
44
|
+
/**
|
|
45
|
+
* How far back to scan for transcript files, by file mtime.
|
|
46
|
+
*
|
|
47
|
+
* 7 days is the steady-state default: a running collector only needs to
|
|
48
|
+
* notice files the agents are still writing, and widening the walk costs
|
|
49
|
+
* a stat() per file on every scan.
|
|
50
|
+
*
|
|
51
|
+
* It is also what made a first import silently partial — a new install
|
|
52
|
+
* uploaded the last week and left years of history on disk with no
|
|
53
|
+
* indication anything had been skipped. Raise it to import that history
|
|
54
|
+
* (`max_age_days: 3650`), then put it back.
|
|
55
|
+
*/
|
|
56
|
+
max_age_days: z.number().int().min(1).max(3650).default(7),
|
|
37
57
|
idle_timeout_seconds: z.number().int().min(30).max(3600).default(120),
|
|
38
58
|
git_metadata: z.boolean().default(true),
|
|
39
59
|
process_metrics: z.boolean().default(true),
|
|
@@ -79,8 +99,13 @@ export function loadConfig() {
|
|
|
79
99
|
}
|
|
80
100
|
export function saveConfig(config) {
|
|
81
101
|
ensureConfigDir();
|
|
82
|
-
|
|
83
|
-
//
|
|
102
|
+
// Atomic + owner-only from the moment it exists: write a 0600 temp file, then
|
|
103
|
+
// rename it over the target. A crash mid-write can no longer leave a
|
|
104
|
+
// truncated (unparseable) config or a brief window where the key is
|
|
105
|
+
// world-readable at the umask default.
|
|
106
|
+
const tmp = `${CONFIG_PATH}.${process.pid}.tmp`;
|
|
107
|
+
writeFileSync(tmp, stringify(config), { mode: 0o600 });
|
|
108
|
+
renameSync(tmp, CONFIG_PATH);
|
|
84
109
|
chmodSync(CONFIG_PATH, 0o600);
|
|
85
110
|
}
|
|
86
111
|
/**
|
|
@@ -108,7 +133,8 @@ export const DEFAULT_CONFIG_COMMENT = `# AgentsTrack collector configuration
|
|
|
108
133
|
#
|
|
109
134
|
# privacy.mode:
|
|
110
135
|
# metadata - counts and timings only; no titles, no prompts, no code
|
|
111
|
-
# analytics - adds
|
|
136
|
+
# analytics - adds a session title (the first line of the prompt, max 120
|
|
137
|
+
# chars, secret-redacted); raw prompt text discarded
|
|
112
138
|
# full - uploads prompt text (opt-in, off by default)
|
|
113
139
|
`;
|
|
114
140
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,EAAE;QACN,2EAA2E;QAC3E,qEAAqE;SACpE,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QACxB,yDAAyD,CAAC,IAAI,CAAC,CAAC,CAAC,EACnE,4DAA4D,CAC7D;SACA,OAAO,CAAC,4BAA4B,CAAC;IACxC,yDAAyD;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAE1C,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAChD,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACtF,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACzE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACtF,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KACnD,CAAC;QACF,sEAAsE;QACtE,sEAAsE;QACtE,wEAAwE;QACxE,8DAA8D;SAC7D,QAAQ,CAAC,EAAE,CAAC;IAEf,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN;;;;;;;;;;;WAWG;QACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QACrE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACvC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;KAC1E,CAAC;SACD,QAAQ,CAAC,EAAE,CAAC;IAEf,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QACzD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD;;;;;;;;;;;;;;;WAeG;QACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;KACvD,CAAC;SACD,QAAQ,CAAC,EAAE,CAAC;CAChB,CAAC,CAAC;AAGH,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yEAAyE;QACzE,wDAAwD;QACxD,MAAM,IAAI,KAAK,CACb,aAAa,WAAW,gBAAgB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,eAAe,EAAE,CAAC;IAClB,8EAA8E;IAC9E,qEAAqE;IACrE,oEAAoE;IACpE,uCAAuC;IACvC,MAAM,GAAG,GAAG,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IAChD,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7B,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC7B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;CAQrC,CAAC"}
|