@tracemarketplace/cli 0.0.13 → 0.0.17

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 (94) hide show
  1. package/dist/api-client.d.ts +9 -2
  2. package/dist/api-client.d.ts.map +1 -1
  3. package/dist/api-client.js +80 -15
  4. package/dist/api-client.js.map +1 -1
  5. package/dist/api-client.test.d.ts +2 -0
  6. package/dist/api-client.test.d.ts.map +1 -0
  7. package/dist/api-client.test.js +34 -0
  8. package/dist/api-client.test.js.map +1 -0
  9. package/dist/cli.js +48 -18
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/auto-submit.d.ts +2 -1
  12. package/dist/commands/auto-submit.d.ts.map +1 -1
  13. package/dist/commands/auto-submit.js +43 -56
  14. package/dist/commands/auto-submit.js.map +1 -1
  15. package/dist/commands/daemon.d.ts +8 -1
  16. package/dist/commands/daemon.d.ts.map +1 -1
  17. package/dist/commands/daemon.js +184 -63
  18. package/dist/commands/daemon.js.map +1 -1
  19. package/dist/commands/history.d.ts +3 -1
  20. package/dist/commands/history.d.ts.map +1 -1
  21. package/dist/commands/history.js +8 -4
  22. package/dist/commands/history.js.map +1 -1
  23. package/dist/commands/login.d.ts +5 -1
  24. package/dist/commands/login.d.ts.map +1 -1
  25. package/dist/commands/login.js +25 -9
  26. package/dist/commands/login.js.map +1 -1
  27. package/dist/commands/register.d.ts +1 -0
  28. package/dist/commands/register.d.ts.map +1 -1
  29. package/dist/commands/register.js +4 -39
  30. package/dist/commands/register.js.map +1 -1
  31. package/dist/commands/remove-daemon.d.ts +6 -0
  32. package/dist/commands/remove-daemon.d.ts.map +1 -0
  33. package/dist/commands/remove-daemon.js +66 -0
  34. package/dist/commands/remove-daemon.js.map +1 -0
  35. package/dist/commands/remove-hook.d.ts +6 -0
  36. package/dist/commands/remove-hook.d.ts.map +1 -0
  37. package/dist/commands/remove-hook.js +174 -0
  38. package/dist/commands/remove-hook.js.map +1 -0
  39. package/dist/commands/setup-hook.d.ts +2 -0
  40. package/dist/commands/setup-hook.d.ts.map +1 -1
  41. package/dist/commands/setup-hook.js +85 -41
  42. package/dist/commands/setup-hook.js.map +1 -1
  43. package/dist/commands/status.d.ts +3 -1
  44. package/dist/commands/status.d.ts.map +1 -1
  45. package/dist/commands/status.js +8 -4
  46. package/dist/commands/status.js.map +1 -1
  47. package/dist/commands/submit.d.ts +1 -0
  48. package/dist/commands/submit.d.ts.map +1 -1
  49. package/dist/commands/submit.js +138 -83
  50. package/dist/commands/submit.js.map +1 -1
  51. package/dist/commands/whoami.d.ts +3 -1
  52. package/dist/commands/whoami.d.ts.map +1 -1
  53. package/dist/commands/whoami.js +8 -4
  54. package/dist/commands/whoami.js.map +1 -1
  55. package/dist/config.d.ts +38 -6
  56. package/dist/config.d.ts.map +1 -1
  57. package/dist/config.js +175 -17
  58. package/dist/config.js.map +1 -1
  59. package/dist/constants.d.ts +8 -0
  60. package/dist/constants.d.ts.map +1 -0
  61. package/dist/constants.js +16 -0
  62. package/dist/constants.js.map +1 -0
  63. package/dist/flush.d.ts +49 -0
  64. package/dist/flush.d.ts.map +1 -0
  65. package/dist/flush.js +405 -0
  66. package/dist/flush.js.map +1 -0
  67. package/dist/flush.test.d.ts +2 -0
  68. package/dist/flush.test.d.ts.map +1 -0
  69. package/dist/flush.test.js +330 -0
  70. package/dist/flush.test.js.map +1 -0
  71. package/dist/submitter.d.ts.map +1 -1
  72. package/dist/submitter.js +5 -2
  73. package/dist/submitter.js.map +1 -1
  74. package/package.json +8 -7
  75. package/src/api-client.test.ts +47 -0
  76. package/src/api-client.ts +100 -16
  77. package/src/cli.ts +55 -19
  78. package/src/commands/auto-submit.ts +80 -40
  79. package/src/commands/daemon.ts +243 -60
  80. package/src/commands/history.ts +9 -4
  81. package/src/commands/login.ts +37 -9
  82. package/src/commands/remove-daemon.ts +75 -0
  83. package/src/commands/remove-hook.ts +194 -0
  84. package/src/commands/setup-hook.ts +93 -43
  85. package/src/commands/status.ts +8 -4
  86. package/src/commands/submit.ts +191 -83
  87. package/src/commands/whoami.ts +8 -4
  88. package/src/config.ts +241 -21
  89. package/src/constants.ts +18 -0
  90. package/src/flush.test.ts +395 -0
  91. package/src/flush.ts +591 -0
  92. package/vitest.config.ts +8 -0
  93. package/src/commands/register.ts +0 -52
  94. package/src/submitter.ts +0 -110
@@ -1,12 +1,21 @@
1
1
  import { existsSync } from "fs";
2
- import { homedir } from "os";
2
+ import { readFile } from "fs/promises";
3
3
  import chalk from "chalk";
4
4
  import ora from "ora";
5
5
  import inquirer from "inquirer";
6
- import { extractClaudeCode, extractCodex, extractCursor, redactTrace } from "@tracemarketplace/shared";
7
- import { loadConfig } from "../config.js";
8
- import { ApiClient } from "../api-client.js";
9
- import { findFiles, CURSOR_DB_PATH } from "../sessions.js";
6
+ import { extractClaudeCode, extractCodex, extractCursor } from "@tracemarketplace/shared";
7
+ import { loadConfig, loadState, resolveProfile, stateKey } from "../config.js";
8
+ import { loginCommandForProfile } from "../constants.js";
9
+ import { buildCursorSessionSource, buildFileSessionSource, createFreshSessionState, flushTrackedSessions, migrateLegacySessionState, planSessionUploads, } from "../flush.js";
10
+ import { CURSOR_DB_PATH, findFiles } from "../sessions.js";
11
+ function pushSessionIfNonEmpty(sessions, source, trace, emptyLabel, skippedEmpty) {
12
+ if (trace.turn_count > 0) {
13
+ sessions.push({ source, trace });
14
+ }
15
+ else {
16
+ skippedEmpty.push(emptyLabel);
17
+ }
18
+ }
10
19
  function parseSinceMs(since) {
11
20
  const m = since.match(/^(\d+)(m|h|d)$/);
12
21
  if (!m)
@@ -19,16 +28,18 @@ function parseSinceMs(since) {
19
28
  return n * 24 * 60 * 60 * 1000;
20
29
  }
21
30
  export async function submitCommand(opts) {
22
- const config = loadConfig();
31
+ const profile = resolveProfile(opts.profile);
32
+ const config = loadConfig(profile);
23
33
  if (!config) {
24
- console.error(chalk.red("Not registered. Run: trace register"));
34
+ console.error(chalk.red(`Not authenticated for profile '${profile}'. Run: ${loginCommandForProfile(profile)}`));
25
35
  process.exit(1);
26
36
  }
27
37
  const sinceMs = parseSinceMs(opts.since ?? "30d");
28
38
  const sinceDays = sinceMs / (24 * 60 * 60 * 1000);
29
39
  const spinner = ora("Discovering sessions...").start();
30
- const traces = [];
40
+ const discovered = [];
31
41
  const errors = [];
42
+ const skippedEmpty = [];
32
43
  const toolAlias = {
33
44
  "claude-code": "claude_code",
34
45
  "codex": "codex_cli",
@@ -38,112 +49,142 @@ export async function submitCommand(opts) {
38
49
  if (tools.includes("claude_code")) {
39
50
  const files = findFiles("claude_code", sinceDays);
40
51
  spinner.text = `Found ${files.length} Claude Code sessions`;
41
- for (const f of files) {
52
+ for (const filePath of files) {
42
53
  try {
43
- traces.push(await extractClaudeCode(f, config.email));
54
+ pushSessionIfNonEmpty(discovered, buildFileSessionSource("claude_code", filePath), await extractClaudeCode(filePath, config.email), `Claude Code ${filePath}`, skippedEmpty);
44
55
  }
45
56
  catch (e) {
46
- errors.push(`Claude Code ${f}: ${e}`);
57
+ errors.push(`Claude Code ${filePath}: ${e}`);
47
58
  }
48
59
  }
49
60
  }
50
61
  if (tools.includes("codex_cli")) {
51
62
  const files = findFiles("codex_cli", sinceDays);
52
63
  spinner.text = `Found ${files.length} Codex sessions`;
53
- for (const f of files) {
64
+ for (const filePath of files) {
54
65
  try {
55
- const { readFile } = await import("fs/promises");
56
- const trace = await extractCodex(await readFile(f), config.email);
57
- if (trace.turn_count > 0)
58
- traces.push(trace);
66
+ pushSessionIfNonEmpty(discovered, buildFileSessionSource("codex_cli", filePath), await extractCodex(await readFile(filePath), config.email), `Codex ${filePath}`, skippedEmpty);
59
67
  }
60
68
  catch (e) {
61
- errors.push(`Codex ${f}: ${e}`);
69
+ errors.push(`Codex ${filePath}: ${e}`);
62
70
  }
63
71
  }
64
72
  }
65
- if (tools.includes("cursor")) {
66
- if (existsSync(CURSOR_DB_PATH)) {
67
- try {
68
- const { default: Database } = await import("better-sqlite3");
69
- const db = new Database(CURSOR_DB_PATH, { readonly: true });
70
- const cutoff = Date.now() - sinceMs;
71
- const allRows = db.prepare("SELECT key, value FROM cursorDiskKV WHERE key LIKE 'composerData:%'").all();
72
- const rows = allRows.filter(r => {
73
- try {
74
- const d = JSON.parse(r.value);
75
- return (d.createdAt ?? 0) >= cutoff;
76
- }
77
- catch {
78
- return false;
79
- }
80
- });
81
- db.close();
82
- spinner.text = `Found ${rows.length} Cursor sessions`;
83
- for (const { key } of rows) {
84
- const sessionId = key.replace("composerData:", "");
85
- try {
86
- traces.push(await extractCursor(CURSOR_DB_PATH, sessionId, config.email));
87
- }
88
- catch (e) {
89
- errors.push(`Cursor ${sessionId}: ${e}`);
90
- }
73
+ if (tools.includes("cursor") && existsSync(CURSOR_DB_PATH)) {
74
+ try {
75
+ const { default: Database } = await import("better-sqlite3");
76
+ const db = new Database(CURSOR_DB_PATH, { readonly: true });
77
+ const cutoff = Date.now() - sinceMs;
78
+ const allRows = db.prepare("SELECT key, value FROM cursorDiskKV WHERE key LIKE 'composerData:%'").all();
79
+ const rows = allRows.filter((row) => {
80
+ try {
81
+ const data = JSON.parse(row.value);
82
+ return (data.createdAt ?? 0) >= cutoff;
83
+ }
84
+ catch {
85
+ return false;
86
+ }
87
+ });
88
+ db.close();
89
+ spinner.text = `Found ${rows.length} Cursor sessions`;
90
+ for (const { key } of rows) {
91
+ const sessionId = key.replace("composerData:", "");
92
+ try {
93
+ pushSessionIfNonEmpty(discovered, buildCursorSessionSource(sessionId), await extractCursor(CURSOR_DB_PATH, sessionId, config.email), `Cursor ${sessionId}`, skippedEmpty);
94
+ }
95
+ catch (e) {
96
+ errors.push(`Cursor ${sessionId}: ${e}`);
91
97
  }
92
- }
93
- catch (e) {
94
- errors.push(`Cursor DB: ${e}`);
95
98
  }
96
99
  }
100
+ catch (e) {
101
+ errors.push(`Cursor DB: ${e}`);
102
+ }
97
103
  }
98
104
  spinner.stop();
99
- // Filter to specific session if requested
100
- const filteredTraces = opts.session
101
- ? traces.filter((t) => t.source_session_id.startsWith(opts.session))
102
- : traces;
103
- if (opts.session && filteredTraces.length === 0) {
105
+ const filtered = opts.session
106
+ ? discovered.filter((session) => session.trace.source_session_id.startsWith(opts.session))
107
+ : discovered;
108
+ if (opts.session && filtered.length === 0) {
104
109
  console.log(chalk.yellow(`No session found matching ID: ${opts.session}`));
105
110
  return;
106
111
  }
107
112
  if (errors.length > 0) {
108
113
  console.log(chalk.yellow(`\n${errors.length} extraction error(s):`));
109
- errors.slice(0, 3).forEach((e) => console.log(chalk.gray(` ${e}`)));
114
+ errors.slice(0, 3).forEach((error) => console.log(chalk.gray(` ${error}`)));
110
115
  if (errors.length > 3)
111
116
  console.log(chalk.gray(` ...and ${errors.length - 3} more`));
112
117
  }
113
- if (filteredTraces.length === 0) {
114
- console.log(chalk.yellow("No sessions found in the last " + sinceDays + " days."));
118
+ if (skippedEmpty.length > 0) {
119
+ console.log(chalk.gray(`\nSkipped ${skippedEmpty.length} empty/in-progress session(s).`));
120
+ skippedEmpty.slice(0, 3).forEach((label) => console.log(chalk.gray(` ${label}`)));
121
+ if (skippedEmpty.length > 3) {
122
+ console.log(chalk.gray(` ...and ${skippedEmpty.length - 3} more`));
123
+ }
124
+ }
125
+ if (filtered.length === 0) {
126
+ console.log(chalk.yellow(`No sessions found in the last ${sinceDays} days.`));
115
127
  return;
116
128
  }
117
- // Preview table
118
- console.log(`\n${chalk.bold("Sessions to submit:")} (${filteredTraces.length} total)\n`);
129
+ const state = loadState(config.profile);
130
+ const now = new Date();
131
+ const plannedSessions = filtered.map((session) => {
132
+ const key = stateKey(session.trace.source_tool, session.trace.source_session_id);
133
+ const existing = state.sessions[key];
134
+ const legacyChunkIndex = state.chunks[key];
135
+ const cursor = existing
136
+ ? {
137
+ ...existing,
138
+ locator: session.source.locator,
139
+ sourceTool: session.trace.source_tool,
140
+ sourceSessionId: session.trace.source_session_id,
141
+ }
142
+ : typeof legacyChunkIndex === "number"
143
+ ? migrateLegacySessionState(session.source, session.trace, legacyChunkIndex)
144
+ : createFreshSessionState(session.source, session.trace);
145
+ const plan = planSessionUploads(session.trace, cursor, now);
146
+ return {
147
+ ...session,
148
+ readyChunks: plan.uploads.length,
149
+ pending: plan.pending,
150
+ };
151
+ });
152
+ const readyChunkCount = plannedSessions.reduce((sum, session) => sum + session.readyChunks, 0);
153
+ const readySessionCount = plannedSessions.filter((session) => session.readyChunks > 0).length;
154
+ const pendingSessionCount = plannedSessions.filter((session) => session.pending).length;
155
+ console.log(chalk.gray(`Target: ${config.profile} (${config.serverUrl})`));
156
+ console.log(`\n${chalk.bold("Sessions scanned:")} (${plannedSessions.length} total)\n`);
119
157
  console.log(chalk.gray(" Tool".padEnd(16) +
120
158
  "Session ID".padEnd(20) +
121
159
  "Turns".padEnd(8) +
122
- "Tokens".padEnd(12) +
123
- "Est. payout"));
124
- console.log(chalk.gray(" " + "─".repeat(60)));
125
- for (const t of filteredTraces.slice(0, 20)) {
126
- const tokens = (t.total_input_tokens ?? 0) + (t.total_output_tokens ?? 0);
127
- const estPayout = t.content_fidelity === "full" ? "$0.04" : "$0.02";
160
+ "Ready".padEnd(8) +
161
+ "Status"));
162
+ console.log(chalk.gray(" " + "─".repeat(62)));
163
+ for (const session of plannedSessions.slice(0, 20)) {
128
164
  console.log(" " +
129
- t.source_tool.padEnd(16) +
130
- t.source_session_id.slice(0, 18).padEnd(20) +
131
- String(t.turn_count).padEnd(8) +
132
- String(tokens || "—").padEnd(12) +
133
- estPayout);
165
+ session.trace.source_tool.padEnd(16) +
166
+ session.trace.source_session_id.slice(0, 18).padEnd(20) +
167
+ String(session.trace.turn_count).padEnd(8) +
168
+ String(session.readyChunks).padEnd(8) +
169
+ describeSessionStatus(session));
134
170
  }
135
- if (filteredTraces.length > 20) {
136
- console.log(chalk.gray(` ... and ${filteredTraces.length - 20} more`));
171
+ if (plannedSessions.length > 20) {
172
+ console.log(chalk.gray(` ... and ${plannedSessions.length - 20} more`));
137
173
  }
174
+ console.log(chalk.gray(`\nReady chunks: ${readyChunkCount} across ${readySessionCount} session(s); pending sessions: ${pendingSessionCount}`));
138
175
  if (opts.dryRun) {
139
176
  console.log(chalk.cyan("\nDry run — nothing submitted."));
140
177
  return;
141
178
  }
179
+ if (readyChunkCount === 0) {
180
+ console.log(chalk.yellow("\nNo finalized chunks are ready to submit yet."));
181
+ return;
182
+ }
142
183
  const { confirm } = await inquirer.prompt([
143
184
  {
144
185
  type: "confirm",
145
186
  name: "confirm",
146
- message: `Submit ${filteredTraces.length} traces to ${config.serverUrl}?`,
187
+ message: `Submit ${readyChunkCount} finalized chunk(s) from ${readySessionCount} session(s) to ${config.profile} (${config.serverUrl})?`,
147
188
  default: true,
148
189
  },
149
190
  ]);
@@ -151,22 +192,27 @@ export async function submitCommand(opts) {
151
192
  console.log(chalk.gray("Cancelled."));
152
193
  return;
153
194
  }
154
- const uploadSpinner = ora(`Submitting ${traces.length} traces...`).start();
155
- const client = new ApiClient(config.serverUrl, config.apiKey);
195
+ const uploadSpinner = ora(`Submitting ${readyChunkCount} finalized chunk(s) to ${config.profile}...`).start();
156
196
  try {
157
- const home = homedir();
158
- const result = (await client.post("/api/v1/traces/batch", {
159
- traces: filteredTraces.map((t) => redactTrace(t, { homeDir: home })),
160
- source_tool: tools[0] ?? "mixed",
161
- }));
197
+ const readySessions = plannedSessions.filter((session) => session.readyChunks > 0);
198
+ const prefetchedTraces = new Map(readySessions.map((s) => [`${s.source.tool}:${s.source.locator}`, s.trace]));
199
+ const result = await flushTrackedSessions(config, readySessions.map((session) => session.source), { includeIdleTracked: false, prefetchedTraces });
162
200
  uploadSpinner.stop();
163
- const totalPayout = result.traces?.reduce((s, t) => s + (t.payout_cents ?? 0), 0) ?? 0;
201
+ const failedSessions = result.results.filter((session) => session.error && session.error !== "Empty session");
164
202
  console.log(chalk.green("\nSubmission complete!"));
165
- console.log(` Accepted: ${chalk.bold(result.accepted)}`);
166
- console.log(` Duplicates: ${chalk.gray(result.duplicate)}`);
167
- console.log(` Total: ${result.total}`);
168
- console.log(` Payout: ${chalk.green("$" + (totalPayout / 100).toFixed(2))}`);
169
- console.log(chalk.gray(`\nSubmission ID: ${result.submission_id}`));
203
+ console.log(` Uploaded chunks: ${chalk.bold(result.uploadedChunks)}`);
204
+ console.log(` Duplicate chunks: ${chalk.gray(result.duplicateChunks)}`);
205
+ console.log(` Pending sessions: ${result.pendingSessions}`);
206
+ console.log(` Payout: ${chalk.green("$" + (result.payoutCents / 100).toFixed(2))}`);
207
+ if (failedSessions.length > 0) {
208
+ console.log(chalk.yellow(`\n${failedSessions.length} session(s) failed during submit:`));
209
+ failedSessions.slice(0, 3).forEach((session) => {
210
+ console.log(chalk.gray(` ${session.source.label}: ${session.error}`));
211
+ });
212
+ if (failedSessions.length > 3) {
213
+ console.log(chalk.gray(` ...and ${failedSessions.length - 3} more`));
214
+ }
215
+ }
170
216
  }
171
217
  catch (e) {
172
218
  uploadSpinner.fail("Submission failed");
@@ -174,4 +220,13 @@ export async function submitCommand(opts) {
174
220
  process.exit(1);
175
221
  }
176
222
  }
223
+ function describeSessionStatus(session) {
224
+ if (session.readyChunks > 0 && session.pending)
225
+ return "ready + pending";
226
+ if (session.readyChunks > 0)
227
+ return "ready";
228
+ if (session.pending)
229
+ return "pending";
230
+ return "up-to-date";
231
+ }
177
232
  //# sourceMappingURL=submit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
- export declare function whoamiCommand(): Promise<void>;
1
+ export declare function whoamiCommand(opts?: {
2
+ profile?: string;
3
+ }): Promise<void>;
2
4
  //# sourceMappingURL=whoami.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBnD"}
1
+ {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBlF"}
@@ -1,16 +1,20 @@
1
1
  import chalk from "chalk";
2
- import { loadConfig } from "../config.js";
2
+ import { loadConfig, resolveProfile } from "../config.js";
3
3
  import { ApiClient } from "../api-client.js";
4
- export async function whoamiCommand() {
5
- const config = loadConfig();
4
+ import { loginCommandForProfile } from "../constants.js";
5
+ export async function whoamiCommand(opts = {}) {
6
+ const profile = resolveProfile(opts.profile);
7
+ const config = loadConfig(profile);
6
8
  if (!config) {
7
- console.error(chalk.red("Not registered. Run: trace register"));
9
+ console.error(chalk.red(`Not authenticated for profile '${profile}'. Run: ${loginCommandForProfile(profile)}`));
8
10
  process.exit(1);
9
11
  }
10
12
  const client = new ApiClient(config.serverUrl, config.apiKey);
11
13
  const user = (await client.get("/api/v1/me"));
12
14
  const balance = (user.balance_cents ?? user.balanceCents ?? 0) / 100;
13
15
  console.log(chalk.bold(user.email));
16
+ console.log(chalk.gray("Profile:"), config.profile);
17
+ console.log(chalk.gray("Server:"), config.serverUrl);
14
18
  console.log(chalk.gray("Balance:"), chalk.green(`$${balance.toFixed(2)}`));
15
19
  }
16
20
  //# sourceMappingURL=whoami.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAI3C,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B,EAAE;IACjE,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,OAAO,WAAW,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAChH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAI3C,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,CAAC"}
package/dist/config.d.ts CHANGED
@@ -1,17 +1,49 @@
1
- export interface Config {
1
+ export interface StoredProfileConfig {
2
2
  apiKey: string;
3
3
  serverUrl: string;
4
4
  email: string;
5
5
  }
6
+ export interface Config extends StoredProfileConfig {
7
+ profile: string;
8
+ }
9
+ export interface ConfigStore {
10
+ defaultProfile: string;
11
+ profiles: Record<string, StoredProfileConfig>;
12
+ }
13
+ export type TrackedSessionTool = "claude_code" | "codex_cli" | "cursor";
14
+ export interface SessionUploadState {
15
+ sourceTool: TrackedSessionTool;
16
+ sourceSessionId: string;
17
+ locator: string;
18
+ nextChunkIndex: number;
19
+ openChunkStartTurn: number;
20
+ lastSeenTurnCount: number;
21
+ lastActivityAt: string | null;
22
+ lastFlushedTurnId: string | null;
23
+ confirmedChunkIndex: number;
24
+ confirmedOpenChunkStartTurn: number;
25
+ unconfirmedSince: string | null;
26
+ }
6
27
  export interface SubmitState {
28
+ version: 2;
7
29
  chunks: Record<string, number>;
30
+ sessions: Record<string, SessionUploadState>;
8
31
  }
9
32
  export declare function getConfigDir(): string;
10
33
  export declare function getConfigPath(): string;
11
- export declare function getStatePath(): string;
12
- export declare function loadConfig(): Config | null;
13
- export declare function saveConfig(config: Config): void;
14
- export declare function loadState(): SubmitState;
15
- export declare function saveState(state: SubmitState): void;
34
+ export declare function getStatePath(profile?: string): string;
35
+ export declare function getAutoSubmitLogPath(profile?: string): string;
36
+ export declare function getDaemonStatePath(profile?: string): string;
37
+ export declare function getDaemonPidPath(profile?: string): string;
38
+ export declare function resolveProfile(profile?: string): string;
39
+ export declare function loadConfigStore(): ConfigStore;
40
+ export declare function loadConfig(profile?: string): Config | null;
41
+ export declare function saveConfig(config: StoredProfileConfig, options?: {
42
+ profile?: string;
43
+ setDefault?: boolean;
44
+ }): Config;
45
+ export declare function loadState(profile?: string): SubmitState;
46
+ export declare function saveState(state: SubmitState, profile?: string): void;
16
47
  export declare function stateKey(sourceTool: string, sessionId: string): string;
48
+ export declare function migrateSessionUploadState(value: SessionUploadState): SessionUploadState;
17
49
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAQ1C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG/C;AAED,wBAAgB,SAAS,IAAI,WAAW,CAQvC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAGlD;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,MAAO,SAAQ,mBAAmB;IACjD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC/C;AAED,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2BAA2B,EAAE,MAAM,CAAC;IACpC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC9C;AAKD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,wBAAgB,eAAe,IAAI,WAAW,CA6B7C;AAED,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM1D;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GACvD,MAAM,CAeR;AAED,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAQvD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAGpE;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE;AAwHD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAQvF"}