braindump 0.3.0 → 0.4.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/README.md CHANGED
@@ -1,10 +1,10 @@
1
- # AgentRelay
1
+ # Braindump
2
2
 
3
3
  A CLI tool that captures your AI coding agent session and generates a portable resume prompt so you can seamlessly continue in a different agent when tokens run out.
4
4
 
5
5
  ## The Problem
6
6
 
7
- AI coding agents are context silos. When your session hits a rate limit or runs out of tokens, you lose all that context. AgentRelay captures it and generates a handoff prompt so a new agent can pick up exactly where the last one left off.
7
+ AI coding agents are context silos. When your session hits a rate limit or runs out of tokens, you lose all that context. Braindump captures it and generates a handoff prompt so a new agent can pick up exactly where the last one left off.
8
8
 
9
9
  ## Supported Agents
10
10
 
@@ -18,11 +18,11 @@ AI coding agents are context silos. When your session hits a rate limit or runs
18
18
 
19
19
  ```bash
20
20
  # From npm
21
- npm install -g agentrelay
21
+ npm install -g braindump
22
22
 
23
23
  # From source
24
- git clone https://github.com/Kushalwho/agentrelay.git
25
- cd agentrelay
24
+ git clone https://github.com/Kushalwho/braindump.git
25
+ cd braindump
26
26
  npm install
27
27
  npm run build
28
28
  npm link
@@ -32,19 +32,19 @@ npm link
32
32
 
33
33
  ```bash
34
34
  # Detect installed agents
35
- agentrelay detect
35
+ braindump detect
36
36
 
37
37
  # Full handoff — capture, compress, generate resume prompt
38
- agentrelay handoff
38
+ braindump handoff
39
39
 
40
40
  # Target a specific agent for the resume format
41
- agentrelay handoff --target cursor
41
+ braindump handoff --target cursor
42
42
 
43
43
  # Preview without writing files
44
- agentrelay handoff --dry-run
44
+ braindump handoff --dry-run
45
45
 
46
46
  # Watch for rate limits (auto-detects agents)
47
- agentrelay watch
47
+ braindump watch
48
48
 
49
49
  # The resume prompt is in .handoff/RESUME.md and on your clipboard
50
50
  # Paste it into your target agent and keep working
@@ -53,13 +53,13 @@ agentrelay watch
53
53
  ## Commands
54
54
 
55
55
  ```
56
- agentrelay detect Scan for installed agents
57
- agentrelay list [--source <agent>] List recent sessions
58
- agentrelay capture [--source <agent>] Capture session to .handoff/session.json
59
- agentrelay handoff [options] Full pipeline: capture -> compress -> resume
60
- agentrelay watch [--agents <csv>] Watch sessions for changes and rate limits
61
- agentrelay resume [--file <path>] Re-generate resume from captured session
62
- agentrelay info Show agent paths and config
56
+ braindump detect Scan for installed agents
57
+ braindump list [--source <agent>] List recent sessions
58
+ braindump capture [--source <agent>] Capture session to .handoff/session.json
59
+ braindump handoff [options] Full pipeline: capture -> compress -> resume
60
+ braindump watch [--agents <csv>] Watch sessions for changes and rate limits
61
+ braindump resume [--file <path>] Re-generate resume from captured session
62
+ braindump info Show agent paths and config
63
63
  ```
64
64
 
65
65
  ### Handoff Options
package/dist/cli/index.js CHANGED
@@ -10,7 +10,7 @@ import { extractProjectContext } from "../core/project-context.js";
10
10
  import { buildResumePrompt } from "../core/prompt-builder.js";
11
11
  import { AGENT_REGISTRY, getUsableTokenBudget } from "../core/registry.js";
12
12
  import { Watcher } from "../core/watcher.js";
13
- import { resolveOutputPath } from "./utils.js";
13
+ import { resolveOutputPath, relativeTime, formatBox, formatErrorBox, hint, banner, } from "./utils.js";
14
14
  // --- verbose logger ---
15
15
  let verbose = false;
16
16
  function debug(...args) {
@@ -22,7 +22,180 @@ const program = new Command();
22
22
  program
23
23
  .name("braindump")
24
24
  .description("Capture your AI coding agent session and continue in a different agent.")
25
- .version("0.3.0");
25
+ .version("0.4.0");
26
+ // --- runHandoff (extracted for default command) ---
27
+ async function runHandoff(options) {
28
+ try {
29
+ if (options.verbose)
30
+ verbose = true;
31
+ const projectPath = options.project || process.cwd();
32
+ debug("Project path:", projectPath);
33
+ // 1. Determine source adapter
34
+ let spinner = ora("Finding your AI agent...").start();
35
+ let adapter;
36
+ if (options.source) {
37
+ debug("Using explicit source:", options.source);
38
+ adapter = getAdapter(options.source);
39
+ if (!adapter) {
40
+ spinner.fail(`Unknown source agent: ${options.source}`);
41
+ process.exit(1);
42
+ }
43
+ spinner.succeed(`Source: ${adapter.agentId}`);
44
+ }
45
+ else {
46
+ debug("Auto-detecting source agent...");
47
+ adapter = await autoDetectSource(projectPath);
48
+ if (!adapter) {
49
+ spinner.fail("No agent detected");
50
+ console.log();
51
+ console.log(formatErrorBox([
52
+ `${chalk.red.bold("No agent detected")}`,
53
+ "",
54
+ "Braindump couldn't find any AI",
55
+ "coding agents on your system.",
56
+ "",
57
+ "Supported agents:",
58
+ ` ${chalk.dim("•")} Claude Code ${chalk.dim("(~/.claude/projects/)")}`,
59
+ ` ${chalk.dim("•")} Cursor ${chalk.dim("(~/.config/Cursor/...)")}`,
60
+ ` ${chalk.dim("•")} Codex CLI ${chalk.dim("(~/.codex/sessions/)")}`,
61
+ "",
62
+ "Install one and try again.",
63
+ ].join("\n")));
64
+ process.exit(1);
65
+ }
66
+ spinner.succeed(`Source: ${adapter.agentId}`);
67
+ }
68
+ // 2. Capture session
69
+ let session;
70
+ spinner = ora("Reading conversation history...").start();
71
+ try {
72
+ if (options.session) {
73
+ session = await adapter.capture(options.session);
74
+ }
75
+ else {
76
+ session = await adapter.captureLatest(projectPath);
77
+ }
78
+ spinner.succeed(`Captured ${session.conversation.messageCount} messages`);
79
+ debug("Session ID:", session.sessionId);
80
+ debug("Estimated tokens:", session.conversation.estimatedTokens);
81
+ }
82
+ catch (err) {
83
+ spinner.fail("Failed to capture session");
84
+ console.error(err.message);
85
+ process.exit(3);
86
+ }
87
+ // 3. Enrich with project context (git, tree, memory files)
88
+ spinner = ora("Adding project context (git, files)...").start();
89
+ const context = await extractProjectContext(projectPath);
90
+ session.project = { ...session.project, ...context };
91
+ debug("Git branch:", context.gitBranch || "none");
92
+ debug("Memory files:", context.memoryFileContents ? "found" : "none");
93
+ spinner.succeed("Project context enriched");
94
+ // 4. Compress
95
+ const targetTokens = options.tokens
96
+ ? parseInt(options.tokens, 10)
97
+ : undefined;
98
+ const target = options.target || "file";
99
+ debug("Target:", target, "| Token budget:", targetTokens || "auto");
100
+ spinner = ora("Optimizing for target agent...").start();
101
+ const compressed = compress(session, { targetTokens, targetAgent: target });
102
+ spinner.succeed(`Compressed to ${compressed.totalTokens} tokens`);
103
+ debug("Included layers:", compressed.includedLayers.join(", "));
104
+ if (compressed.droppedLayers.length > 0) {
105
+ debug("Dropped layers:", compressed.droppedLayers.join(", "));
106
+ }
107
+ // 5. Build resume prompt
108
+ const resume = buildResumePrompt(session, compressed, target);
109
+ // 6. Print results
110
+ const budget = targetTokens || getUsableTokenBudget(target);
111
+ const pct = Math.round((compressed.totalTokens / budget) * 100);
112
+ if (options.dryRun) {
113
+ const lines = [
114
+ `${chalk.yellow.bold("Dry run — no files written")}`,
115
+ "",
116
+ `${chalk.dim("Source:")} ${adapter.agentId}`,
117
+ `${chalk.dim("Session:")} ${session.sessionId.slice(0, 12)}`,
118
+ `${chalk.dim("Branch:")} ${session.project.gitBranch || "unknown"}`,
119
+ `${chalk.dim("Messages:")} ${session.conversation.messageCount}`,
120
+ `${chalk.dim("Tokens:")} ${compressed.totalTokens} / ${budget} ${chalk.dim(`(${pct}%)`)}`,
121
+ `${chalk.dim("Included:")} ${compressed.includedLayers.join(", ")}`,
122
+ ];
123
+ if (compressed.droppedLayers.length > 0) {
124
+ lines.push(`${chalk.dim("Dropped:")} ${chalk.yellow(compressed.droppedLayers.join(", "))}`);
125
+ }
126
+ lines.push(`${chalk.dim("Target:")} ${target}`);
127
+ lines.push(`${chalk.dim("Resume:")} ${resume.length} chars`);
128
+ console.log();
129
+ console.log(formatBox(lines.join("\n")));
130
+ console.log();
131
+ return;
132
+ }
133
+ // 7. Write to .handoff/ (or custom --output path)
134
+ spinner = ora("Saving handoff files...").start();
135
+ const { resumePath: outputPath, sessionDir } = resolveOutputPath(options.output, projectPath);
136
+ mkdirSync(sessionDir, { recursive: true });
137
+ debug("Output path:", outputPath);
138
+ debug("Session dir:", sessionDir);
139
+ writeFileSync(outputPath, resume);
140
+ writeFileSync(join(sessionDir, "session.json"), JSON.stringify(session, null, 2));
141
+ // 8. Try clipboard copy (unless --no-clipboard)
142
+ let clipboardOk = false;
143
+ if (options.clipboard !== false) {
144
+ try {
145
+ const { default: clipboard } = await import("clipboardy");
146
+ await clipboard.write(resume);
147
+ clipboardOk = true;
148
+ }
149
+ catch {
150
+ debug("Clipboard not available — skipping copy");
151
+ }
152
+ }
153
+ else {
154
+ debug("Clipboard copy skipped (--no-clipboard)");
155
+ }
156
+ spinner.succeed(`Written to ${outputPath}`);
157
+ // Build summary lines
158
+ const summaryLines = [
159
+ `${chalk.green.bold("Handoff complete!")}`,
160
+ "",
161
+ `${chalk.dim("Source:")} ${adapter.agentId}`,
162
+ `${chalk.dim("Session:")} ${session.sessionId.slice(0, 12)}`,
163
+ `${chalk.dim("Branch:")} ${session.project.gitBranch || "unknown"}`,
164
+ `${chalk.dim("Messages:")} ${session.conversation.messageCount}`,
165
+ `${chalk.dim("Tokens:")} ${compressed.totalTokens} / ${budget} ${chalk.dim(`(${pct}%)`)}`,
166
+ ];
167
+ if (verbose && compressed.includedLayers.length > 0) {
168
+ summaryLines.push(`${chalk.dim("Included:")} ${compressed.includedLayers.join(", ")}`);
169
+ }
170
+ if (verbose && compressed.droppedLayers.length > 0) {
171
+ summaryLines.push(`${chalk.dim("Dropped:")} ${chalk.yellow(compressed.droppedLayers.join(", "))}`);
172
+ }
173
+ summaryLines.push(`${chalk.dim("Output:")} ${outputPath}`);
174
+ if (options.clipboard === false) {
175
+ summaryLines.push(`${chalk.dim("Clipboard:")} ${chalk.dim("skipped")}`);
176
+ }
177
+ else if (clipboardOk) {
178
+ summaryLines.push(`${chalk.dim("Clipboard:")} ${chalk.green("copied!")}`);
179
+ }
180
+ else {
181
+ summaryLines.push(`${chalk.dim("Clipboard:")} ${chalk.yellow("unavailable")} ${chalk.dim("(copy .handoff/RESUME.md manually)")}`);
182
+ }
183
+ console.log();
184
+ console.log(formatBox(summaryLines.join("\n")));
185
+ console.log();
186
+ console.log(` ${hint("Paste the clipboard into your target agent to continue")}`);
187
+ console.log();
188
+ }
189
+ catch (err) {
190
+ console.log();
191
+ console.log(formatErrorBox([
192
+ `${chalk.red.bold("Handoff failed")}`,
193
+ "",
194
+ err.message,
195
+ ].join("\n")));
196
+ process.exit(3);
197
+ }
198
+ }
26
199
  // --- detect ---
27
200
  program
28
201
  .command("detect")
@@ -41,12 +214,31 @@ program
41
214
  }
42
215
  console.log();
43
216
  if (!results.some((r) => r.detected)) {
44
- console.log(chalk.yellow("No agents detected. Install Claude Code, Cursor, or Codex CLI."));
217
+ console.log(formatErrorBox([
218
+ `${chalk.red.bold("No agent detected")}`,
219
+ "",
220
+ "Braindump couldn't find any AI",
221
+ "coding agents on your system.",
222
+ "",
223
+ "Supported agents:",
224
+ ` ${chalk.dim("•")} Claude Code ${chalk.dim("(~/.claude/projects/)")}`,
225
+ ` ${chalk.dim("•")} Cursor ${chalk.dim("(~/.config/Cursor/...)")}`,
226
+ ` ${chalk.dim("•")} Codex CLI ${chalk.dim("(~/.codex/sessions/)")}`,
227
+ "",
228
+ "Install one and try again.",
229
+ ].join("\n")));
45
230
  process.exit(1);
46
231
  }
232
+ console.log(` ${hint("Run 'braindump' to create a handoff")}`);
233
+ console.log();
47
234
  }
48
235
  catch (err) {
49
- console.error(chalk.red("Failed to detect agents:"), err.message);
236
+ console.log();
237
+ console.log(formatErrorBox([
238
+ `${chalk.red.bold("Failed to detect agents")}`,
239
+ "",
240
+ err.message,
241
+ ].join("\n")));
50
242
  process.exit(1);
51
243
  }
52
244
  });
@@ -76,16 +268,21 @@ program
76
268
  }
77
269
  if (sessions.length === 0)
78
270
  continue;
79
- console.log(`\n ${chalk.bold(AGENT_REGISTRY[agentId].name)}:`);
271
+ console.log();
272
+ console.log(` ${chalk.bold("Recent Sessions")}`);
273
+ console.log();
274
+ console.log(` ${chalk.bold(AGENT_REGISTRY[agentId].name)}`);
80
275
  const toShow = sessions.slice(0, limit - totalShown);
81
- for (const s of toShow) {
276
+ for (let i = 0; i < toShow.length; i++) {
277
+ const s = toShow[i];
278
+ const isLast = i === toShow.length - 1;
279
+ const prefix = isLast ? " └─" : " ├─";
82
280
  const idShort = chalk.cyan(s.id.slice(0, 12));
83
- const date = chalk.dim(s.lastActiveAt || s.startedAt || "unknown");
84
- const msgs = s.messageCount != null ? chalk.yellow(`(${s.messageCount} msgs)`) : "";
85
- console.log(` ${idShort} ${date} ${msgs}`);
86
- if (s.preview) {
87
- console.log(` ${chalk.dim("└─")} ${s.preview.substring(0, 80)}`);
88
- }
281
+ const time = s.lastActiveAt || s.startedAt
282
+ ? chalk.dim(relativeTime(s.lastActiveAt || s.startedAt || ""))
283
+ : chalk.dim("unknown");
284
+ const msgs = s.messageCount != null ? chalk.yellow(`${s.messageCount} msgs`) : "";
285
+ console.log(` ${prefix} ${idShort} ${time} ${msgs}`);
89
286
  totalShown++;
90
287
  }
91
288
  if (totalShown >= limit)
@@ -95,9 +292,18 @@ program
95
292
  if (totalShown === 0) {
96
293
  console.log(chalk.yellow("No sessions found."));
97
294
  }
295
+ else {
296
+ console.log(` ${hint("Run 'braindump --session <id>' to handoff a specific session")}`);
297
+ console.log();
298
+ }
98
299
  }
99
300
  catch (err) {
100
- console.error(chalk.red("Failed to list sessions:"), err.message);
301
+ console.log();
302
+ console.log(formatErrorBox([
303
+ `${chalk.red.bold("Failed to list sessions")}`,
304
+ "",
305
+ err.message,
306
+ ].join("\n")));
101
307
  process.exit(2);
102
308
  }
103
309
  });
@@ -115,40 +321,57 @@ program
115
321
  verbose = true;
116
322
  const projectPath = options.project || process.cwd();
117
323
  // 1. Detect source
118
- let spinner = ora("Detecting source agent...").start();
324
+ let spinner = ora("Finding your AI agent...").start();
119
325
  const adapter = options.source
120
326
  ? getAdapter(options.source)
121
327
  : await autoDetectSource(projectPath);
122
328
  if (!adapter) {
123
- spinner.fail("No agent detected.");
124
- console.error("Use --source to specify one.");
329
+ spinner.fail("No agent detected");
330
+ console.log();
331
+ console.log(formatErrorBox([
332
+ `${chalk.red.bold("No agent detected")}`,
333
+ "",
334
+ "Use --source to specify one.",
335
+ ].join("\n")));
125
336
  process.exit(1);
126
337
  }
127
338
  spinner.succeed(`Source: ${adapter.agentId}`);
128
339
  // 2. Capture session
129
- spinner = ora("Capturing session...").start();
340
+ spinner = ora("Reading conversation history...").start();
130
341
  const session = options.session
131
342
  ? await adapter.capture(options.session)
132
343
  : await adapter.captureLatest(projectPath);
133
344
  spinner.succeed(`Captured ${session.conversation.messageCount} messages`);
134
345
  // 3. Enrich with project context
135
- spinner = ora("Enriching with project context...").start();
346
+ spinner = ora("Adding project context (git, files)...").start();
136
347
  const context = await extractProjectContext(projectPath);
137
348
  session.project = { ...session.project, ...context };
138
349
  spinner.succeed("Project context enriched");
139
350
  // 4. Write output
140
- spinner = ora("Writing session file...").start();
351
+ spinner = ora("Saving session file...").start();
141
352
  const handoffDir = join(projectPath, ".handoff");
142
353
  mkdirSync(handoffDir, { recursive: true });
143
354
  writeFileSync(join(handoffDir, "session.json"), JSON.stringify(session, null, 2));
144
355
  spinner.succeed(`Written to ${join(handoffDir, "session.json")}`);
356
+ const summaryLines = [
357
+ `${chalk.green.bold("Capture complete!")}`,
358
+ "",
359
+ `${chalk.dim("Messages:")} ${session.conversation.messageCount}`,
360
+ `${chalk.dim("Tokens:")} ~${session.conversation.estimatedTokens}`,
361
+ ];
145
362
  console.log();
146
- console.log(` ${chalk.dim("Messages:")} ${session.conversation.messageCount}`);
147
- console.log(` ${chalk.dim("Tokens:")} ~${session.conversation.estimatedTokens}`);
363
+ console.log(formatBox(summaryLines.join("\n")));
364
+ console.log();
365
+ console.log(` ${hint("Run 'braindump resume' to generate RESUME.md")}`);
148
366
  console.log();
149
367
  }
150
368
  catch (err) {
151
- console.error(chalk.red("Capture error:"), err.message);
369
+ console.log();
370
+ console.log(formatErrorBox([
371
+ `${chalk.red.bold("Capture failed")}`,
372
+ "",
373
+ err.message,
374
+ ].join("\n")));
152
375
  process.exit(3);
153
376
  }
154
377
  });
@@ -166,147 +389,7 @@ program
166
389
  .option("-o, --output <path>", "Custom output path for RESUME.md")
167
390
  .option("-v, --verbose", "Show detailed debug output")
168
391
  .action(async (options) => {
169
- try {
170
- if (options.verbose)
171
- verbose = true;
172
- const projectPath = options.project || process.cwd();
173
- debug("Project path:", projectPath);
174
- // 1. Determine source adapter
175
- let spinner = ora("Detecting source agent...").start();
176
- let adapter;
177
- if (options.source) {
178
- debug("Using explicit source:", options.source);
179
- adapter = getAdapter(options.source);
180
- if (!adapter) {
181
- spinner.fail(`Unknown source agent: ${options.source}`);
182
- process.exit(1);
183
- }
184
- spinner.succeed(`Source: ${adapter.agentId}`);
185
- }
186
- else {
187
- debug("Auto-detecting source agent...");
188
- adapter = await autoDetectSource(projectPath);
189
- if (!adapter) {
190
- spinner.fail("No source agent detected.");
191
- console.error("Use --source to specify one.");
192
- process.exit(1);
193
- }
194
- spinner.succeed(`Source: ${adapter.agentId}`);
195
- }
196
- // 2. Capture session
197
- let session;
198
- spinner = ora("Capturing session...").start();
199
- try {
200
- if (options.session) {
201
- session = await adapter.capture(options.session);
202
- }
203
- else {
204
- session = await adapter.captureLatest(projectPath);
205
- }
206
- spinner.succeed(`Captured ${session.conversation.messageCount} messages`);
207
- debug("Session ID:", session.sessionId);
208
- debug("Estimated tokens:", session.conversation.estimatedTokens);
209
- }
210
- catch (err) {
211
- spinner.fail("Failed to capture session");
212
- console.error(err.message);
213
- process.exit(3);
214
- }
215
- // 3. Enrich with project context (git, tree, memory files)
216
- spinner = ora("Enriching with project context...").start();
217
- const context = await extractProjectContext(projectPath);
218
- session.project = { ...session.project, ...context };
219
- debug("Git branch:", context.gitBranch || "none");
220
- debug("Memory files:", context.memoryFileContents ? "found" : "none");
221
- spinner.succeed("Project context enriched");
222
- // 4. Compress
223
- const targetTokens = options.tokens
224
- ? parseInt(options.tokens, 10)
225
- : undefined;
226
- const target = options.target || "file";
227
- debug("Target:", target, "| Token budget:", targetTokens || "auto");
228
- spinner = ora("Compressing...").start();
229
- const compressed = compress(session, { targetTokens, targetAgent: target });
230
- spinner.succeed(`Compressed to ${compressed.totalTokens} tokens`);
231
- debug("Included layers:", compressed.includedLayers.join(", "));
232
- if (compressed.droppedLayers.length > 0) {
233
- debug("Dropped layers:", compressed.droppedLayers.join(", "));
234
- }
235
- // 5. Build resume prompt
236
- const resume = buildResumePrompt(session, compressed, target);
237
- // 6. Print results
238
- const budget = targetTokens || getUsableTokenBudget(target);
239
- const pct = Math.round((compressed.totalTokens / budget) * 100);
240
- if (options.dryRun) {
241
- console.log();
242
- console.log(chalk.yellow.bold(" Dry run — no files written"));
243
- console.log();
244
- console.log(` ${chalk.dim("Source:")} ${adapter.agentId}`);
245
- console.log(` ${chalk.dim("Session:")} ${session.sessionId.slice(0, 12)}`);
246
- console.log(` ${chalk.dim("Branch:")} ${session.project.gitBranch || "unknown"}`);
247
- console.log(` ${chalk.dim("Messages:")} ${session.conversation.messageCount}`);
248
- console.log(` ${chalk.dim("Tokens:")} ${compressed.totalTokens} / ${budget} ${chalk.dim(`(${pct}%)`)}`);
249
- console.log(` ${chalk.dim("Included:")} ${compressed.includedLayers.join(", ")}`);
250
- if (compressed.droppedLayers.length > 0) {
251
- console.log(` ${chalk.dim("Dropped:")} ${chalk.yellow(compressed.droppedLayers.join(", "))}`);
252
- }
253
- console.log(` ${chalk.dim("Target:")} ${target}`);
254
- console.log(` ${chalk.dim("Resume:")} ${resume.length} chars`);
255
- console.log();
256
- return;
257
- }
258
- // 7. Write to .handoff/ (or custom --output path)
259
- spinner = ora("Writing handoff files...").start();
260
- const { resumePath: outputPath, sessionDir } = resolveOutputPath(options.output, projectPath);
261
- mkdirSync(sessionDir, { recursive: true });
262
- debug("Output path:", outputPath);
263
- debug("Session dir:", sessionDir);
264
- writeFileSync(outputPath, resume);
265
- writeFileSync(join(sessionDir, "session.json"), JSON.stringify(session, null, 2));
266
- // 8. Try clipboard copy (unless --no-clipboard)
267
- let clipboardOk = false;
268
- if (options.clipboard !== false) {
269
- try {
270
- const { default: clipboard } = await import("clipboardy");
271
- await clipboard.write(resume);
272
- clipboardOk = true;
273
- }
274
- catch {
275
- debug("Clipboard not available — skipping copy");
276
- }
277
- }
278
- else {
279
- debug("Clipboard copy skipped (--no-clipboard)");
280
- }
281
- spinner.succeed(`Written to ${outputPath}`);
282
- console.log();
283
- console.log(chalk.green.bold(" Handoff complete!"));
284
- console.log();
285
- console.log(` ${chalk.dim("Source:")} ${adapter.agentId}`);
286
- console.log(` ${chalk.dim("Session:")} ${session.sessionId.slice(0, 12)}`);
287
- console.log(` ${chalk.dim("Branch:")} ${session.project.gitBranch || "unknown"}`);
288
- console.log(` ${chalk.dim("Messages:")} ${session.conversation.messageCount}`);
289
- console.log(` ${chalk.dim("Tokens:")} ${compressed.totalTokens} / ${budget} ${chalk.dim(`(${pct}%)`)}`);
290
- console.log(` ${chalk.dim("Included:")} ${compressed.includedLayers.join(", ")}`);
291
- if (compressed.droppedLayers.length > 0) {
292
- console.log(` ${chalk.dim("Dropped:")} ${chalk.yellow(compressed.droppedLayers.join(", "))}`);
293
- }
294
- console.log(` ${chalk.dim("Output:")} ${outputPath}`);
295
- if (options.clipboard === false) {
296
- console.log(` ${chalk.dim("Clipboard:")} ${chalk.dim("skipped")}`);
297
- }
298
- else if (clipboardOk) {
299
- console.log(` ${chalk.dim("Clipboard:")} ${chalk.green("copied!")}`);
300
- }
301
- else {
302
- console.log(` ${chalk.dim("Clipboard:")} ${chalk.yellow("unavailable")} ${chalk.dim("(copy .handoff/RESUME.md manually)")}`);
303
- }
304
- console.log();
305
- }
306
- catch (err) {
307
- console.error(chalk.red("Handoff failed:"), err.message);
308
- process.exit(3);
309
- }
392
+ await runHandoff(options);
310
393
  });
311
394
  // --- watch ---
312
395
  program
@@ -380,8 +463,15 @@ program
380
463
  try {
381
464
  const filePath = options.file || join(process.cwd(), ".handoff", "session.json");
382
465
  if (!existsSync(filePath)) {
383
- console.error(chalk.red("File not found:"), filePath);
384
- console.error(chalk.dim("Run 'agentrelay capture' first, or use --file to specify a path."));
466
+ console.log();
467
+ console.log(formatErrorBox([
468
+ `${chalk.red.bold("File not found")}`,
469
+ "",
470
+ filePath,
471
+ "",
472
+ "Run 'braindump capture' first,",
473
+ "or use --file to specify a path.",
474
+ ].join("\n")));
385
475
  process.exit(1);
386
476
  }
387
477
  console.log(chalk.dim(`Reading ${filePath}...`));
@@ -395,11 +485,25 @@ program
395
485
  mkdirSync(handoffDir, { recursive: true });
396
486
  const outputPath = join(handoffDir, "RESUME.md");
397
487
  writeFileSync(outputPath, resume);
398
- console.log(chalk.green("Resume regenerated:"), `${compressed.totalTokens} tokens`);
399
- console.log(chalk.dim(`Written to ${outputPath}`));
488
+ const summaryLines = [
489
+ `${chalk.green.bold("Resume regenerated!")}`,
490
+ "",
491
+ `${chalk.dim("Tokens:")} ${compressed.totalTokens}`,
492
+ `${chalk.dim("Output:")} ${outputPath}`,
493
+ ];
494
+ console.log();
495
+ console.log(formatBox(summaryLines.join("\n")));
496
+ console.log();
497
+ console.log(` ${hint("Paste RESUME.md into your target agent to continue")}`);
498
+ console.log();
400
499
  }
401
500
  catch (err) {
402
- console.error(chalk.red("Resume error:"), err.message);
501
+ console.log();
502
+ console.log(formatErrorBox([
503
+ `${chalk.red.bold("Resume failed")}`,
504
+ "",
505
+ err.message,
506
+ ].join("\n")));
403
507
  process.exit(3);
404
508
  }
405
509
  });
@@ -408,10 +512,9 @@ program
408
512
  .command("info")
409
513
  .description("Show agent storage paths, context window sizes, and config")
410
514
  .action(async () => {
411
- const platform = process.platform;
412
- console.log(`\n ${chalk.bold("AgentRelay")} ${chalk.dim("v0.3.0")} ${chalk.dim(`(${platform})`)}\n`);
515
+ console.log(banner("0.4.0"));
413
516
  for (const meta of Object.values(AGENT_REGISTRY)) {
414
- const storagePath = meta.storagePaths[platform] || "N/A";
517
+ const storagePath = meta.storagePaths[process.platform] || "N/A";
415
518
  console.log(` ${chalk.bold(meta.name)} ${chalk.dim(`(${meta.id})`)}`);
416
519
  console.log(` ${chalk.dim("Storage:")} ${storagePath}`);
417
520
  console.log(` ${chalk.dim("Context window:")} ${meta.contextWindow.toLocaleString()} tokens`);
@@ -420,5 +523,33 @@ program
420
523
  console.log();
421
524
  }
422
525
  });
423
- program.parse();
526
+ // --- default: run handoff when no subcommand given ---
527
+ const args = process.argv.slice(2);
528
+ const subcommands = program.commands.map((c) => c.name());
529
+ const hasSubcommand = args.length > 0 && subcommands.includes(args[0]);
530
+ const hasHelpOrVersion = args.includes("--help") || args.includes("-h") || args.includes("--version") || args.includes("-V");
531
+ if (args.length === 0) {
532
+ // No args at all — run handoff as default
533
+ runHandoff({});
534
+ }
535
+ else if (!hasSubcommand && !hasHelpOrVersion) {
536
+ // Has flags but no subcommand — treat as handoff flags
537
+ // Parse known handoff options from args
538
+ const handoffCmd = new Command();
539
+ handoffCmd
540
+ .option("-s, --source <agent>")
541
+ .option("-t, --target <target>")
542
+ .option("--session <id>")
543
+ .option("-p, --project <path>")
544
+ .option("--tokens <n>")
545
+ .option("--dry-run")
546
+ .option("--no-clipboard")
547
+ .option("-o, --output <path>")
548
+ .option("-v, --verbose");
549
+ handoffCmd.parse(["node", "braindump", ...args]);
550
+ runHandoff(handoffCmd.opts());
551
+ }
552
+ else {
553
+ program.parse();
554
+ }
424
555
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,IAAI,EACJ,MAAM,GACP,MAAM,YAAY,CAAC;AAEpB,yBAAyB;AACzB,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,SAAS,KAAK,CAAC,GAAG,IAAe;IAC/B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CACV,yEAAyE,CAC1E;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,qDAAqD;AACrD,KAAK,UAAU,UAAU,CAAC,OAUzB;IACC,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,GAAG,IAAI,CAAC;QACpC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACrD,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAEpC,8BAA8B;QAC9B,IAAI,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC;QACZ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAiB,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACxC,OAAO,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAClC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CACT,cAAc,CACZ;oBACE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;oBACxC,EAAE;oBACF,gCAAgC;oBAChC,+BAA+B;oBAC/B,EAAE;oBACF,mBAAmB;oBACnB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE;oBACvE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE;oBACnE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;oBACpE,EAAE;oBACF,4BAA4B;iBAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,qBAAqB;QACrB,IAAI,OAAO,CAAC;QACZ,OAAO,GAAG,GAAG,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,YAAY,OAAO,CAAC,YAAY,CAAC,YAAY,WAAW,CAAC,CAAC;YAC1E,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACxC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,2DAA2D;QAC3D,OAAO,GAAG,GAAG,CAAC,wCAAwC,CAAC,CAAC,KAAK,EAAE,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACzD,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QACrD,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;QAClD,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAE5C,cAAc;QACd,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM;YACjC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9B,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,MAAM,GAAI,OAAO,CAAC,MAAyC,IAAI,MAAM,CAAC;QAC5E,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,YAAY,IAAI,MAAM,CAAC,CAAC;QACpE,OAAO,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,OAAO,CAAC,iBAAiB,UAAU,CAAC,WAAW,SAAS,CAAC,CAAC;QAClE,KAAK,CAAC,kBAAkB,EAAE,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,iBAAiB,EAAE,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAE9D,mBAAmB;QACnB,MAAM,MAAM,GAAG,YAAY,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QAEhE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG;gBACZ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAE;gBACpD,EAAE;gBACF,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,OAAO,CAAC,OAAO,EAAE;gBAChD,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC/D,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE;gBACvE,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE;gBAClE,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,UAAU,CAAC,WAAW,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;gBAC7F,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACtE,CAAC;YACF,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CACR,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CACnF,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC5B,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,kDAAkD;QAClD,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9F,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAClC,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAClC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAElF,gDAAgD;QAChD,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC1D,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC9B,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;QAE5C,sBAAsB;QACtB,MAAM,YAAY,GAAG;YACnB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;YAC1C,EAAE;YACF,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,OAAO,CAAC,OAAO,EAAE;YAChD,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;YAC/D,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE;YACvE,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE;YAClE,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,UAAU,CAAC,WAAW,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;SAC9F,CAAC;QACF,IAAI,OAAO,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,YAAY,CAAC,IAAI,CACf,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,YAAY,CAAC,IAAI,CACf,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,UAAU,EAAE,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAChC,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CACf,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,EAAE,CAChH,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,wDAAwD,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,cAAc,CACZ;YACE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACrC,EAAE;YACD,GAAa,CAAC,OAAO;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CACT,cAAc,CACZ;gBACE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;gBACxC,EAAE;gBACF,gCAAgC;gBAChC,+BAA+B;gBAC/B,EAAE;gBACF,mBAAmB;gBACnB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE;gBACvE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE;gBACnE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;gBACpE,EAAE;gBACF,4BAA4B;aAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,qCAAqC,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,cAAc,CACZ;YACE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE;YAC9C,EAAE;YACD,GAAa,CAAC,OAAO;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,sBAAsB,EAAE,8CAA8C,CAAC;KAC9E,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,IAAI,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAc,OAAO,CAAC,MAAM;YACxC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAiB,CAAC;YAC7B,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAe,CAAC;QAE/C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,IAAI,QAAQ,CAAC;YACb,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEpC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,MAAM,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBACxC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,SAAS;oBACxC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;oBAC9D,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACzB,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,OAAO,KAAK,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC;gBACzD,UAAU,EAAE,CAAC;YACf,CAAC;YACD,IAAI,UAAU,IAAI,KAAK;gBAAE,MAAM;QACjC,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,8DAA8D,CAAC,EAAE,CAAC,CAAC;YACzF,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,cAAc,CACZ;YACE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE;YAC9C,EAAE;YACD,GAAa,CAAC,OAAO;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;KAC9C,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;KAC/C,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;KAC9C,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,GAAG,IAAI,CAAC;QACpC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAErD,mBAAmB;QACnB,IAAI,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM;YAC5B,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAiB,CAAC;YACvC,CAAC,CAAC,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,cAAc,CACZ;gBACE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;gBACxC,EAAE;gBACF,8BAA8B;aAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAE9C,qBAAqB;QACrB,OAAO,GAAG,GAAG,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;YAC7B,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YACxC,CAAC,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,CAAC,OAAO,CAAC,YAAY,OAAO,CAAC,YAAY,CAAC,YAAY,WAAW,CAAC,CAAC;QAE1E,iCAAiC;QACjC,OAAO,GAAG,GAAG,CAAC,wCAAwC,CAAC,CAAC,KAAK,EAAE,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACzD,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QACrD,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAE5C,kBAAkB;QAClB,OAAO,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjD,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;QAElE,MAAM,YAAY,GAAG;YACnB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;YAC1C,EAAE;YACF,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE;YACjE,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE;SACtE,CAAC;QAEF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,8CAA8C,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,cAAc,CACZ;YACE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACrC,EAAE;YACD,GAAa,CAAC,OAAO;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,kEAAkE,CAAC;KAC/E,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;KAC9C,MAAM,CAAC,uBAAuB,EAAE,iCAAiC,EAAE,MAAM,CAAC;KAC1E,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;KAC/C,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;KAC9C,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC;KAC/C,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;KAC3E,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;KAC/C,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;KACjE,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEL,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,gBAAgB,EAAE,yCAAyC,CAAC;KACnE,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,EAAE,IAAI,CAAC;KACnE,MAAM,CAAC,sBAAsB,EAAE,sCAAsC,CAAC;KACtE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;QAC3B,CAAC,CAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAe;QACvE,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;IAEvD,MAAM,WAAW,GAAG,CAAC,KAAmB,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,aAAa;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,cAAc,CAAC,CAAC;gBACxE,MAAM;YACR,KAAK,gBAAgB;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;gBACpG,MAAM;YACR,KAAK,YAAY;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBACjJ,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,yBAAyB;QACpC,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC;YAClB,MAAM;YACN,QAAQ;YACR,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAG,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;QAC9D,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,YAAY,cAAc,OAAO,CAAC,QAAQ,aAAa,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7C,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAE7C,yBAAyB;QACzB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;KAC7D,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC;KAC/C,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;KACnD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QACjF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,cAAc,CACZ;gBACE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBACrC,EAAE;gBACF,QAAQ;gBACR,EAAE;gBACF,gCAAgC;gBAChC,kCAAkC;aACnC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,QAAQ,KAAK,CAAC,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAmC,CAAC;QAE5E,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAE9D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QACnD,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACjD,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAElC,MAAM,YAAY,GAAG;YACnB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;YAC5C,EAAE;YACF,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,WAAW,EAAE;YACpD,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE;SACzC,CAAC;QAEF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,cAAc,CACZ;YACE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YACpC,EAAE;YACD,GAAa,CAAC,OAAO;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAChG,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,wDAAwD;AACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE7H,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACtB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,CAAC;AACjB,CAAC;KAAM,IAAI,CAAC,aAAa,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC/C,uDAAuD;IACvD,wCAAwC;IACxC,MAAM,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IACjC,UAAU;SACP,MAAM,CAAC,sBAAsB,CAAC;SAC9B,MAAM,CAAC,uBAAuB,CAAC;SAC/B,MAAM,CAAC,gBAAgB,CAAC;SACxB,MAAM,CAAC,sBAAsB,CAAC;SAC9B,MAAM,CAAC,cAAc,CAAC;SACtB,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,gBAAgB,CAAC;SACxB,MAAM,CAAC,qBAAqB,CAAC;SAC7B,MAAM,CAAC,eAAe,CAAC,CAAC;IAC3B,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACjD,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
@@ -7,4 +7,24 @@ export declare function resolveOutputPath(outputFlag: string | undefined, projec
7
7
  resumePath: string;
8
8
  sessionDir: string;
9
9
  };
10
+ /**
11
+ * Convert an ISO timestamp to a human-friendly relative time string.
12
+ */
13
+ export declare function relativeTime(dateString: string): string;
14
+ /**
15
+ * Wrap content in a green-bordered box (success).
16
+ */
17
+ export declare function formatBox(content: string): string;
18
+ /**
19
+ * Wrap content in a red-bordered box (error).
20
+ */
21
+ export declare function formatErrorBox(content: string): string;
22
+ /**
23
+ * Format a dimmed hint line.
24
+ */
25
+ export declare function hint(text: string): string;
26
+ /**
27
+ * Return the CLI banner string.
28
+ */
29
+ export declare function banner(version: string): string;
10
30
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,GAClB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAgB5C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,GAClB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAgB5C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAqBvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAU9C"}
package/dist/cli/utils.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { existsSync, lstatSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
+ import chalk from "chalk";
4
+ import boxen from "boxen";
3
5
  /**
4
6
  * Resolve the output path for RESUME.md.
5
7
  * - If path is a directory or ends with `/`, write RESUME.md inside it.
@@ -18,4 +20,68 @@ export function resolveOutputPath(outputFlag, projectPath) {
18
20
  }
19
21
  return { resumePath: outputFlag, sessionDir: dirname(outputFlag) };
20
22
  }
23
+ /**
24
+ * Convert an ISO timestamp to a human-friendly relative time string.
25
+ */
26
+ export function relativeTime(dateString) {
27
+ const now = Date.now();
28
+ const then = new Date(dateString).getTime();
29
+ const diffMs = now - then;
30
+ if (Number.isNaN(then))
31
+ return "unknown";
32
+ const seconds = Math.floor(diffMs / 1000);
33
+ if (seconds < 60)
34
+ return "just now";
35
+ const minutes = Math.floor(seconds / 60);
36
+ if (minutes < 60)
37
+ return `${minutes} min ago`; // "min" works for both singular and plural
38
+ const hours = Math.floor(minutes / 60);
39
+ if (hours < 24)
40
+ return `${hours} ${hours === 1 ? "hr" : "hrs"} ago`;
41
+ const days = Math.floor(hours / 24);
42
+ if (days < 30)
43
+ return `${days}d ago`;
44
+ const months = Math.floor(days / 30);
45
+ return `${months}mo ago`;
46
+ }
47
+ /**
48
+ * Wrap content in a green-bordered box (success).
49
+ */
50
+ export function formatBox(content) {
51
+ return boxen(content, {
52
+ padding: 1,
53
+ borderColor: "green",
54
+ borderStyle: "round",
55
+ });
56
+ }
57
+ /**
58
+ * Wrap content in a red-bordered box (error).
59
+ */
60
+ export function formatErrorBox(content) {
61
+ return boxen(content, {
62
+ padding: 1,
63
+ borderColor: "red",
64
+ borderStyle: "round",
65
+ });
66
+ }
67
+ /**
68
+ * Format a dimmed hint line.
69
+ */
70
+ export function hint(text) {
71
+ return chalk.dim(`Hint: ${text}`);
72
+ }
73
+ /**
74
+ * Return the CLI banner string.
75
+ */
76
+ export function banner(version) {
77
+ const platform = process.platform;
78
+ return [
79
+ "",
80
+ ` ${chalk.cyan.bold("braindump")} ${chalk.dim(`v${version}`)}`,
81
+ ` ${chalk.dim("Capture AI agent sessions for seamless handoff")}`,
82
+ "",
83
+ ` ${chalk.dim("Platform:")} ${platform}`,
84
+ "",
85
+ ].join("\n");
86
+ }
21
87
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAA8B,EAC9B,WAAmB;IAEnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjD,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,KAAK,GACT,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QACxB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAElE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAC/E,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAA8B,EAC9B,WAAmB;IAEnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjD,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,KAAK,GACT,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QACxB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAElE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAC/E,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,UAAkB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;IAE1B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,UAAU,CAAC;IAEpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,UAAU,CAAC,CAAE,2CAA2C;IAE3F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IAEpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,OAAO,CAAC;IAErC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACrC,OAAO,GAAG,MAAM,QAAQ,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,KAAK,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;KACrB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,KAAK,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,OAAO;KACrB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,IAAY;IAC/B,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAkB,CAAC;IAC5C,OAAO;QACL,EAAE;QACF,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE;QAC/D,KAAK,KAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,EAAE;QAClE,EAAE;QACF,KAAK,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,QAAQ,EAAE;QACzC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -34,7 +34,7 @@ export function buildResumePrompt(session, compressed, targetAgent) {
34
34
  ? TARGET_HINTS[targetAgent]
35
35
  : null;
36
36
  const lines = [
37
- `# AgentRelay — Session Handoff`,
37
+ `# Braindump — Session Handoff`,
38
38
  ``,
39
39
  `> **Source:** ${session.source} | **Captured:** ${session.capturedAt}`,
40
40
  `> **Project:** ${projectName} (${session.project.path}) | Branch: \`${gitBranch}\``,
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../src/core/prompt-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../src/core/prompt-builder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "braindump",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "A CLI tool that captures your AI coding agent session and generates a portable resume prompt so you can seamlessly continue in a different agent.",
5
5
  "type": "module",
6
6
  "main": "dist/cli/index.js",
@@ -33,11 +33,11 @@
33
33
  "license": "MIT",
34
34
  "repository": {
35
35
  "type": "git",
36
- "url": "https://github.com/Kushalwho/agentrelay.git"
36
+ "url": "https://github.com/Kushalwho/braindump.git"
37
37
  },
38
- "homepage": "https://github.com/Kushalwho/agentrelay#readme",
38
+ "homepage": "https://github.com/Kushalwho/braindump#readme",
39
39
  "bugs": {
40
- "url": "https://github.com/Kushalwho/agentrelay/issues"
40
+ "url": "https://github.com/Kushalwho/braindump/issues"
41
41
  },
42
42
  "publishConfig": {
43
43
  "access": "public"
@@ -52,6 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "better-sqlite3": "^11.0.0",
55
+ "boxen": "^8.0.1",
55
56
  "chalk": "^5.3.0",
56
57
  "clipboardy": "^4.0.0",
57
58
  "commander": "^12.0.0",