coolhand-cli 0.4.0 → 0.5.1

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 (36) hide show
  1. package/README.md +38 -14
  2. package/dist/api/last-sync.d.ts +16 -0
  3. package/dist/api/last-sync.d.ts.map +1 -0
  4. package/dist/api/last-sync.js +73 -0
  5. package/dist/api/last-sync.js.map +1 -0
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +21 -7
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/analyze-claude-sessions.d.ts +3 -0
  10. package/dist/commands/analyze-claude-sessions.d.ts.map +1 -0
  11. package/dist/commands/analyze-claude-sessions.js +186 -0
  12. package/dist/commands/analyze-claude-sessions.js.map +1 -0
  13. package/dist/commands/claude.d.ts +14 -0
  14. package/dist/commands/claude.d.ts.map +1 -0
  15. package/dist/commands/claude.js +84 -0
  16. package/dist/commands/claude.js.map +1 -0
  17. package/dist/log-request.d.ts +1 -1
  18. package/dist/log-request.js +1 -1
  19. package/dist/sessions/capture-state.d.ts +27 -8
  20. package/dist/sessions/capture-state.d.ts.map +1 -1
  21. package/dist/sessions/capture-state.js +63 -13
  22. package/dist/sessions/capture-state.js.map +1 -1
  23. package/dist/sessions/claude-scanner.d.ts +12 -0
  24. package/dist/sessions/claude-scanner.d.ts.map +1 -1
  25. package/dist/sessions/claude-scanner.js +29 -4
  26. package/dist/sessions/claude-scanner.js.map +1 -1
  27. package/dist/sessions/cowork-scanner.d.ts +20 -0
  28. package/dist/sessions/cowork-scanner.d.ts.map +1 -0
  29. package/dist/sessions/cowork-scanner.js +76 -0
  30. package/dist/sessions/cowork-scanner.js.map +1 -0
  31. package/dist/types.d.ts +5 -1
  32. package/dist/types.d.ts.map +1 -1
  33. package/dist/types.js.map +1 -1
  34. package/dist/version.d.ts +2 -2
  35. package/dist/version.js +1 -1
  36. package/package.json +7 -3
package/README.md CHANGED
@@ -27,6 +27,7 @@ coolhand logout [--client-id ID | --all] [--json]
27
27
  coolhand status [--client-id ID] [--json]
28
28
  coolhand whoami [--client-id ID]
29
29
  coolhand clients [use <id>] [--json]
30
+ coolhand claude [claude args...]
30
31
 
31
32
  coolhand search-optimizations [--status V] [--type V] [--category V] [--query V]
32
33
  [--from DATE] [--to DATE] [--days-back N]
@@ -37,7 +38,7 @@ coolhand get-optimization <id> [--client-id ID] [--json]
37
38
  coolhand update-optimization <id> [--title V] [--analysis V] [--plan V] [--client-id ID] [--json]
38
39
  coolhand close-optimization <id> <reason> [--client-id ID] [--json]
39
40
 
40
- coolhand capture-sessions [--dry-run] [--client-id ID] [--json]
41
+ coolhand analyze-claude-sessions [--dry-run] [--client-id ID] [--json]
41
42
 
42
43
  coolhand wildcard --complaint "..." --agent-name "..." [--thinking "..."] [--log-id ID] [--json]
43
44
  coolhand report-blocker (alias for wildcard)
@@ -73,6 +74,19 @@ Exit code is `0` if a token is configured for the default (or requested) client,
73
74
 
74
75
  Multiple clients can be stored at once. `coolhand clients` lists them, `coolhand clients use <id>` switches the default. Each `coolhand login` adds (or refreshes) one entry, keyed by the server-assigned `client_id`.
75
76
 
77
+ ### run
78
+
79
+ Coolhand can wrap any LLM-backed process to capture its sessions, then evaluate them to find where prompts, context, or workflows can be made more efficient.
80
+
81
+ Use `coolhand claude` to wrap a single Claude session and capture it for later evaluation — a coding session, a skill walkthrough, a debugging run:
82
+
83
+ ```bash
84
+ coolhand claude # starts Claude with capture on
85
+ coolhand claude --resume # any args after `claude` go straight to the Claude CLI
86
+ ```
87
+
88
+ Captured sessions flow into your Coolhand account, where they can be analyzed for optimization opportunities — reduced token usage, tighter prompts, better context management.
89
+
76
90
  ## Optimization commands
77
91
 
78
92
  Coolhand stores LLM-generated optimization suggestions as structured records. These commands let you query, update, and comment on them from the terminal or from agent workflows.
@@ -124,6 +138,29 @@ coolhand close-optimization <id> <reason>
124
138
 
125
139
  Closes an optimization. The reason is a free-text positional argument (quote it if it contains spaces).
126
140
 
141
+ ## Analyze Claude sessions
142
+
143
+ ```bash
144
+ coolhand analyze-claude-sessions [--dry-run] [--client-id ID] [--json]
145
+ ```
146
+
147
+ Submit your historical Claude sessions to Coolhand for analysis. Coolhand scans the uploaded sessions to surface:
148
+
149
+ - **Repeatable patterns** — tasks you do by hand on repeat that could be scripted or automated
150
+ - **Efficiency gaps** — workflows with unnecessary back-and-forth or redundant steps
151
+ - **Cost insights** — sessions with high token usage relative to their outcome
152
+
153
+ The command scans two local sources and merges the results:
154
+
155
+ - **Claude Code** — `~/.claude/projects/` (all platforms)
156
+ - **Claude Cowork** — `~/Library/Application Support/Claude/local-agent-mode-sessions/` (macOS)
157
+
158
+ Each session is posted as a single conversation log. New sessions are submitted on first run; sessions that have grown (more turns added since the last sync) are re-uploaded with the full updated conversation. Unchanged sessions are skipped. It is safe to re-run at any time.
159
+
160
+ Use `--dry-run` to preview what would be sent without submitting anything.
161
+
162
+ See [Session capture](./docs/session-capture.md) for scan logic, duplicate-avoidance details, and the full flag reference.
163
+
127
164
  ## Security
128
165
 
129
166
  - The callback listener binds to `127.0.0.1` only — never reachable from the LAN.
@@ -178,19 +215,6 @@ The command records the complaint as feedback tagged `creator_type: agent`, prin
178
215
 
179
216
  Set `COOLHAND_AGENT_NAME` to avoid passing `--agent-name` on every call. Optional `--thinking` attaches the reasoning that led to the blocker; `--log-id` ties it to a specific LLM request log.
180
217
 
181
- ### capture-sessions
182
-
183
- Import locally-saved Claude Code sessions into Coolhand for analysis:
184
-
185
- ```bash
186
- coolhand capture-sessions # scan ~/.claude/projects/ and submit new sessions
187
- coolhand capture-sessions --dry-run # report what would be submitted without sending
188
- ```
189
-
190
- Each Claude Code session is submitted as one conversation log. A local state file (`~/.coolhand/capture-state.json`) tracks which sessions have already been sent per client, so re-running is always safe — already-submitted sessions are skipped.
191
-
192
- See [docs/session-capture.md](./docs/session-capture.md) for the full envelope format and deduplication details.
193
-
194
218
  ## Configuration file
195
219
 
196
220
  Located at `$HOME/.coolhand/config.json` (override with `COOLHAND_CONFIG_DIR` for testing). Schema:
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Ask the server for the timestamp of the most recent log it already holds from this collector, so
3
+ * `capture-sessions` only re-scans files newer than that. This is a server-authoritative cutoff that
4
+ * survives local state-file loss or a reinstall.
5
+ *
6
+ * It NEVER throws: any problem (no api key, bad base url, 404, network failure, non-JSON body, or a
7
+ * missing/invalid `last_created_at`) returns `null` so the caller can fall back to local state. The
8
+ * companion server endpoint may not exist yet; a 404 is therefore an expected, non-fatal outcome.
9
+ *
10
+ * Auth mirrors the ingest path (`log-request.ts`): the public `api_key` sent as `X-API-Key`, since
11
+ * the endpoint lives on the same `/api/v2/llm_request_logs` path.
12
+ */
13
+ export declare function fetchLastSync(opts?: {
14
+ clientId?: string;
15
+ }): Promise<Date | null>;
16
+ //# sourceMappingURL=last-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"last-sync.d.ts","sourceRoot":"","sources":["../../src/api/last-sync.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAuD1F"}
@@ -0,0 +1,73 @@
1
+ import { loadConfig, getClient } from '../config.js';
2
+ import { DEFAULT_BASE_URL } from '../types.js';
3
+ /** Identifies this tool's logs in the server's collector field (matches the ingest collector). */
4
+ const COLLECTOR = 'coolhand-cli/claude-code';
5
+ /**
6
+ * Ask the server for the timestamp of the most recent log it already holds from this collector, so
7
+ * `capture-sessions` only re-scans files newer than that. This is a server-authoritative cutoff that
8
+ * survives local state-file loss or a reinstall.
9
+ *
10
+ * It NEVER throws: any problem (no api key, bad base url, 404, network failure, non-JSON body, or a
11
+ * missing/invalid `last_created_at`) returns `null` so the caller can fall back to local state. The
12
+ * companion server endpoint may not exist yet; a 404 is therefore an expected, non-fatal outcome.
13
+ *
14
+ * Auth mirrors the ingest path (`log-request.ts`): the public `api_key` sent as `X-API-Key`, since
15
+ * the endpoint lives on the same `/api/v2/llm_request_logs` path.
16
+ */
17
+ export async function fetchLastSync(opts = {}) {
18
+ let apiKey;
19
+ let baseUrl;
20
+ try {
21
+ const cfg = await loadConfig();
22
+ const client = getClient(cfg, opts.clientId);
23
+ apiKey = client?.api_key ?? process.env.COOLHAND_API_KEY;
24
+ baseUrl = client?.base_url ?? DEFAULT_BASE_URL;
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ if (!apiKey) {
30
+ return null;
31
+ }
32
+ let url;
33
+ try {
34
+ const parsedBaseUrl = new URL(baseUrl);
35
+ if (parsedBaseUrl.protocol !== 'http:' && parsedBaseUrl.protocol !== 'https:') {
36
+ return null;
37
+ }
38
+ const endpoint = new URL('/api/v2/llm_request_logs/last_sync', parsedBaseUrl);
39
+ endpoint.searchParams.set('collector', COLLECTOR);
40
+ url = endpoint.toString();
41
+ }
42
+ catch {
43
+ return null;
44
+ }
45
+ let res;
46
+ try {
47
+ res = await fetch(url, {
48
+ method: 'GET',
49
+ headers: { Accept: 'application/json', 'X-API-Key': apiKey },
50
+ });
51
+ }
52
+ catch {
53
+ // Network failure — degrade to local state.
54
+ return null;
55
+ }
56
+ if (!res.ok) {
57
+ // 404 (endpoint not built yet) or any other non-2xx — degrade to local state.
58
+ return null;
59
+ }
60
+ let body;
61
+ try {
62
+ body = (await res.json());
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ if (typeof body.last_created_at !== 'string') {
68
+ return null;
69
+ }
70
+ const date = new Date(body.last_created_at);
71
+ return Number.isNaN(date.getTime()) ? null : date;
72
+ }
73
+ //# sourceMappingURL=last-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"last-sync.js","sourceRoot":"","sources":["../../src/api/last-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,kGAAkG;AAClG,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA8B,EAAE;IAClE,IAAI,MAA0B,CAAC;IAC/B,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACzD,OAAO,GAAG,MAAM,EAAE,QAAQ,IAAI,gBAAgB,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,aAAa,CAAC,QAAQ,KAAK,OAAO,IAAI,aAAa,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,oCAAoC,EAAE,aAAa,CAAC,CAAC;QAC9E,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAClD,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,EAAE;SAC7D,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,8EAA8E;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA4BA,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CACzC;AAmLD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAqCpD;AAiOD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+EzD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA6BA,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CACzC;AA2LD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAqCpD;AAiOD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAqFzD"}
package/dist/cli.js CHANGED
@@ -11,7 +11,8 @@ import { run as runGetOptimization } from './commands/get-optimization.js';
11
11
  import { run as runCloseOptimization } from './commands/close-optimization.js';
12
12
  import { run as runUpdateOptimization } from './commands/update-optimization.js';
13
13
  import { run as runWildcard } from './commands/wildcard.js';
14
- import { run as runCaptureSessions } from './commands/capture-sessions.js';
14
+ import { run as runClaude } from './commands/claude.js';
15
+ import { run as runAnalyzeClaudeSessions } from './commands/analyze-claude-sessions.js';
15
16
  const BOOLEAN_FLAGS = new Set(['all', 'help', 'h', 'json', 'version', 'v', 'dry-run']);
16
17
  const COMMANDS = [
17
18
  {
@@ -126,15 +127,23 @@ const COMMANDS = [
126
127
  ],
127
128
  },
128
129
  {
129
- name: 'capture-sessions',
130
- oneLiner: 'Scan local Claude Code sessions and submit them to Coolhand',
131
- usage: 'coolhand capture-sessions [options]',
130
+ name: 'analyze-claude-sessions',
131
+ oneLiner: 'Submit historical Claude Code sessions to Coolhand for pattern and cost analysis',
132
+ usage: 'coolhand analyze-claude-sessions [options]',
132
133
  options: [
133
134
  { flag: '--dry-run', description: 'Scan and report what would be submitted, without sending' },
134
135
  { flag: '--client-id ID', description: 'Use a specific stored client' },
135
136
  { flag: '--json', description: 'Emit JSON output instead of human-readable text' },
136
137
  ],
137
138
  },
139
+ {
140
+ name: 'claude',
141
+ oneLiner: 'Run the Claude CLI through the Coolhand proxy (captures LLM calls)',
142
+ usage: 'coolhand claude [claude args...]',
143
+ options: [
144
+ { flag: '[claude args...]', description: 'Everything after `claude` is passed straight to the Claude CLI' },
145
+ ],
146
+ },
138
147
  {
139
148
  name: 'help',
140
149
  oneLiner: 'Show this message or per-command help',
@@ -394,7 +403,7 @@ function updateOptimizationOptions(parsed) {
394
403
  }
395
404
  return opts;
396
405
  }
397
- function captureSessionsOptions(parsed) {
406
+ function analyzeClaudeSessionsOptions(parsed) {
398
407
  const opts = {};
399
408
  if (parsed.flags['dry-run'] === true) {
400
409
  opts.dryRun = true;
@@ -439,6 +448,11 @@ export async function run(argv) {
439
448
  logger.info(buildSummaryHelp());
440
449
  return ExitCode.OK;
441
450
  }
451
+ // `claude` is a passthrough wrapper: everything after it goes to the Claude CLI
452
+ // verbatim (e.g. `coolhand claude --resume`), so it must skip the flag parser.
453
+ if (argv[0] === 'claude') {
454
+ return await runClaude({ args: argv.slice(1) });
455
+ }
442
456
  const parsed = parseArgs(argv);
443
457
  if (parsed.flags.version === true || parsed.flags.v === true || parsed.command === 'version') {
444
458
  process.stdout.write(`${PACKAGE_VERSION}\n`);
@@ -492,8 +506,8 @@ export async function run(argv) {
492
506
  return await runUpdateOptimization(updateOptimizationOptions(parsed));
493
507
  case 'wildcard':
494
508
  return await runWildcard(wildcardOptions(parsed));
495
- case 'capture-sessions':
496
- return await runCaptureSessions(captureSessionsOptions(parsed));
509
+ case 'analyze-claude-sessions':
510
+ return await runAnalyzeClaudeSessions(analyzeClaudeSessionsOptions(parsed));
497
511
  default:
498
512
  logger.info(`Unknown command: ${parsed.command}`);
499
513
  logger.info(buildSummaryHelp());
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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"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyzeClaudeSessionsOptions } from '../types.js';
2
+ export declare function run(opts: AnalyzeClaudeSessionsOptions): Promise<number>;
3
+ //# sourceMappingURL=analyze-claude-sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-claude-sessions.d.ts","sourceRoot":"","sources":["../../src/commands/analyze-claude-sessions.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AA2BhE,wBAAsB,GAAG,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,MAAM,CAAC,CA2J7E"}
@@ -0,0 +1,186 @@
1
+ import { CliError, ExitCode } from '../errors.js';
2
+ import { logger, redact } from '../logger.js';
3
+ import { scanSessions, sessionIdOf } from '../sessions/claude-scanner.js';
4
+ import { scanCoworkSessions } from '../sessions/cowork-scanner.js';
5
+ import { loadCaptureState, getTurnsSubmitted, recordSubmission, saveCaptureState, V1_MIGRATION_SENTINEL, } from '../sessions/capture-state.js';
6
+ import { fetchLastSync } from '../api/last-sync.js';
7
+ import { loadConfig, getClient } from '../config.js';
8
+ import { logRequest } from '../log-request.js';
9
+ /** Errors that apply to every session (auth/config), so the run should abort, not keep retrying. */
10
+ const FATAL_CODES = new Set(['NOT_CONFIGURED', 'CLIENT_NOT_FOUND', 'INVALID_BASE_URL']);
11
+ /**
12
+ * Reference cutoff for the mtime pre-filter: local `lastSyncAt` → server `last_sync` → epoch.
13
+ *
14
+ * Local `lastSyncAt` is preferred: it is only advanced when a run completes with zero failures,
15
+ * so it accurately reflects the point past which all sessions have been submitted. Using server
16
+ * time instead would advance the cutoff past sessions that failed to submit on a prior run,
17
+ * causing the mtime filter to skip them permanently. Server time is also on a different clock
18
+ * from local file mtimes, so clock skew can silently exclude freshly-written files.
19
+ */
20
+ function resolveReferenceTime(serverTime, state) {
21
+ if (state.lastSyncAt) {
22
+ const local = new Date(state.lastSyncAt);
23
+ if (!Number.isNaN(local.getTime())) {
24
+ return local;
25
+ }
26
+ }
27
+ if (serverTime) {
28
+ return serverTime;
29
+ }
30
+ return new Date(0);
31
+ }
32
+ export async function run(opts) {
33
+ try {
34
+ // (1) Resolve the client and load local state up front — both feed the reference time and the
35
+ // per-session turn-count comparison.
36
+ const cfg = await loadConfig();
37
+ const stateClientId = getClient(cfg, opts.clientId)?.client_id ?? opts.clientId ?? '_default';
38
+ const state = await loadCaptureState();
39
+ // (2) Work out the reference timestamp. serverTime is only used when local state is absent or
40
+ // invalid (resolveReferenceTime prefers lastSyncAt), so skip the round-trip when unneeded.
41
+ const localSyncAt = state.lastSyncAt ? new Date(state.lastSyncAt) : null;
42
+ const needsServerTime = !localSyncAt || Number.isNaN(localSyncAt.getTime());
43
+ const serverTime = needsServerTime ? await fetchLastSync({ clientId: opts.clientId }) : null;
44
+ const referenceTime = resolveReferenceTime(serverTime, state);
45
+ // (3) Stamp the cutoff before scanning. Any transcript written after this point will have an
46
+ // mtime >= runStartedAt and will be picked up by the next run's filter — closing the window
47
+ // where a turn added during the submit loop (between scan and lastSyncAt stamp) would be
48
+ // silently skipped because its mtime fell before a later timestamp.
49
+ const runStartedAt = new Date();
50
+ // Cowork sessions have their own independent mtime cutoff, starting at epoch when coworkLastSyncAt
51
+ // is absent. Unlike Claude Code, we don't fall back to serverTime here: serverTime comes from the
52
+ // Claude Code collector and predates any Cowork uploads, so using it would silently skip
53
+ // never-submitted Cowork history on a reset or second-machine scenario.
54
+ const coworkSinceTime = state.coworkLastSyncAt ? new Date(state.coworkLastSyncAt) : new Date(0);
55
+ const [claudeResult, coworkResult] = await Promise.all([
56
+ scanSessions({ sinceTime: referenceTime }),
57
+ scanCoworkSessions({ sinceTime: coworkSinceTime }),
58
+ ]);
59
+ const envelopes = [...claudeResult.envelopes, ...coworkResult.envelopes];
60
+ const sessionCount = claudeResult.sessionCount + coworkResult.sessionCount;
61
+ // (4) Classify each examined session as new / updated / unchanged by comparing its current turn
62
+ // count against what we last submitted. The turn-count guard — not the mtime filter — is what
63
+ // makes re-uploads correct.
64
+ const toSubmit = [];
65
+ let newCount = 0;
66
+ let updatedCount = 0;
67
+ let unchangedCount = 0;
68
+ for (const envelope of envelopes) {
69
+ const sessionId = sessionIdOf(envelope);
70
+ const already = getTurnsSubmitted(state, stateClientId, sessionId);
71
+ if (already === 0) {
72
+ newCount += 1;
73
+ toSubmit.push(envelope);
74
+ }
75
+ else if (already === V1_MIGRATION_SENTINEL) {
76
+ // Session was submitted under v1 but its turn count was not recorded. Record the actual
77
+ // count now so future runs can detect growth, without re-submitting (server already has it).
78
+ recordSubmission(state, stateClientId, sessionId, envelope.turnCount);
79
+ unchangedCount += 1;
80
+ }
81
+ else if (envelope.turnCount > already) {
82
+ updatedCount += 1;
83
+ toSubmit.push(envelope);
84
+ }
85
+ else {
86
+ unchangedCount += 1;
87
+ }
88
+ }
89
+ if (opts.dryRun) {
90
+ if (opts.json) {
91
+ logger.json({
92
+ ok: true,
93
+ dryRun: true,
94
+ scanned: sessionCount,
95
+ new: newCount,
96
+ updated: updatedCount,
97
+ unchanged: unchangedCount,
98
+ toSubmit: toSubmit.length,
99
+ });
100
+ }
101
+ else {
102
+ logger.info(`Dry run: ${newCount} new session(s), ${updatedCount} updated, ` +
103
+ `${unchangedCount} unchanged (${sessionCount} scanned). Nothing sent.`);
104
+ }
105
+ return ExitCode.OK;
106
+ }
107
+ // (5) Submit new + updated sessions, recording the full current turn count on success, then stamp
108
+ // lastSyncAt and persist — even if a fatal error aborts the run partway.
109
+ let submittedNew = 0;
110
+ let submittedUpdated = 0;
111
+ let failed = 0;
112
+ try {
113
+ for (const envelope of toSubmit) {
114
+ const sessionId = sessionIdOf(envelope);
115
+ const prior = getTurnsSubmitted(state, stateClientId, sessionId);
116
+ try {
117
+ await logRequest(envelope, { clientId: opts.clientId });
118
+ recordSubmission(state, stateClientId, sessionId, envelope.turnCount);
119
+ if (prior === 0) {
120
+ submittedNew += 1;
121
+ }
122
+ else {
123
+ submittedUpdated += 1;
124
+ }
125
+ }
126
+ catch (err) {
127
+ if (err instanceof CliError && FATAL_CODES.has(err.code)) {
128
+ throw err;
129
+ }
130
+ failed += 1;
131
+ logger.warn(`Failed to submit session: ${redact(err.message)}`);
132
+ }
133
+ }
134
+ // Advance the local cutoff ONLY when nothing failed. A failed-but-grown session keeps its
135
+ // older mtime; if we moved the cutoff past it, the next run's mtime filter would skip it and
136
+ // the growth would be lost. Use runStartedAt (captured before scanSessions) so any transcript
137
+ // written during the submit loop has mtime >= runStartedAt and is caught by the next run.
138
+ if (failed === 0) {
139
+ state.lastSyncAt = runStartedAt.toISOString();
140
+ // Only advance Cowork's cutoff when the scan actually read the directory. A swallowed
141
+ // readdir error returns ok:false; advancing the cutoff in that case would permanently hide
142
+ // pre-existing audit.jsonl files whose mtimes predate the new stamp.
143
+ if (coworkResult.ok) {
144
+ state.coworkLastSyncAt = runStartedAt.toISOString();
145
+ }
146
+ }
147
+ }
148
+ finally {
149
+ try {
150
+ await saveCaptureState(state);
151
+ }
152
+ catch (err) {
153
+ logger.warn(`Failed to save capture state: ${redact(err.message)}`);
154
+ }
155
+ }
156
+ if (opts.json) {
157
+ logger.json({
158
+ ok: failed === 0,
159
+ scanned: sessionCount,
160
+ new: submittedNew,
161
+ updated: submittedUpdated,
162
+ unchanged: unchangedCount,
163
+ failed,
164
+ });
165
+ }
166
+ else {
167
+ const failureNote = failed > 0 ? `, ${failed} failed` : '';
168
+ logger.info(`Submitted ${submittedNew} new, ${submittedUpdated} updated, ` +
169
+ `${unchangedCount} unchanged (${sessionCount} scanned)${failureNote}.`);
170
+ }
171
+ return failed === 0 ? ExitCode.OK : ExitCode.USER_ERROR;
172
+ }
173
+ catch (err) {
174
+ if (err instanceof CliError) {
175
+ if (opts.json) {
176
+ logger.json({ ok: false, error: err.code, message: redact(err.message) });
177
+ }
178
+ else {
179
+ logger.info(`Error: ${redact(err.message)} [${err.code}]`);
180
+ }
181
+ return err.exitCode;
182
+ }
183
+ throw err;
184
+ }
185
+ }
186
+ //# sourceMappingURL=analyze-claude-sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-claude-sessions.js","sourceRoot":"","sources":["../../src/commands/analyze-claude-sessions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { spawn } from 'child_process';
2
+ import { type ClaudeOptions } from '../types.js';
3
+ interface ClaudeDeps {
4
+ spawnFn?: typeof spawn;
5
+ resolveProxyCli?: () => string;
6
+ }
7
+ /**
8
+ * `coolhand claude [args...]` — run the Claude CLI behind the Coolhand proxy with
9
+ * the stored API key filled in. Shells out to `coolhand-proxy wrap -- claude ...`
10
+ * so the proxy's battle-tested wrap behavior is reused, not duplicated.
11
+ */
12
+ export declare function run(opts: ClaudeOptions, deps?: ClaudeDeps): Promise<number>;
13
+ export {};
14
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/commands/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAMtC,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEnE,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IAEvB,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC;CAChC;AA8BD;;;;GAIG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA8CrF"}