@infinite-room-labs/claudesync-cli 0.3.0 → 0.5.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.
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const exportAllCommand: Command;
3
+ //# sourceMappingURL=export-all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-all.d.ts","sourceRoot":"","sources":["../../src/commands/export-all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,gBAAgB,SA+JzB,CAAC"}
@@ -0,0 +1,198 @@
1
+ import { Command } from "commander";
2
+ import { resolve } from "node:path";
3
+ import { existsSync, rmSync, writeFileSync } from "node:fs";
4
+ import { buildGitBundle, exportToGit, syncConversation, } from "@infinite-room-labs/claudesync-core";
5
+ import { createClient, resolveOrgId } from "../utils.js";
6
+ export const exportAllCommand = new Command("export-all")
7
+ .description("Export entire organization: all projects (with knowledge + conversations) and standalone conversations")
8
+ .option("--org <orgId>", "Organization ID (auto-detected if omitted)")
9
+ .option("--output <path>", "Output directory (default: ./org-export)")
10
+ .option("--format <format>", "Output format: git, json, or files", "files")
11
+ .option("--author-name <name>", "Git author name", "Claude")
12
+ .option("--author-email <email>", "Git author email", "claude@anthropic.com")
13
+ .option("--skip-artifacts", "Skip downloading artifacts (faster)")
14
+ .option("--skip-existing", "Skip conversations/projects whose output directory already exists")
15
+ .option("--skip-same", "Skip conversations unchanged since the last sync (uses .claudesync-state.json sidecar). Mutually exclusive with --skip-existing.")
16
+ .action(async (options) => {
17
+ if (options.skipSame && options.skipExisting) {
18
+ console.error("error: --skip-same and --skip-existing are mutually exclusive");
19
+ process.exit(1);
20
+ }
21
+ const { auth, client } = createClient();
22
+ const orgId = await resolveOrgId(auth, options.org);
23
+ const author = { name: options.authorName, email: options.authorEmail };
24
+ const outputRoot = resolve(options.output ?? "./org-export");
25
+ console.log("Fetching organization data...");
26
+ const [projects, allConversations] = await Promise.all([
27
+ client.listProjects(orgId),
28
+ client.listConversationsAll(orgId),
29
+ ]);
30
+ console.log(` ${projects.length} project(s), ${allConversations.length} conversation(s) total`);
31
+ const projectConvUuids = new Set();
32
+ // 1. Projects (knowledge + their conversations bundled into one repo).
33
+ for (let pi = 0; pi < projects.length; pi++) {
34
+ const project = projects[pi];
35
+ const projectProgress = `[project ${pi + 1}/${projects.length}]`;
36
+ const projectSlug = slugify(project.name);
37
+ const projectPath = resolve(outputRoot, "projects", projectSlug);
38
+ if (options.skipExisting && existsSync(projectPath)) {
39
+ console.log(`${projectProgress} Skipping (exists): ${project.name}`);
40
+ const projConvs = await client.getProjectConversations(orgId, project.uuid);
41
+ for (const c of projConvs)
42
+ projectConvUuids.add(c.uuid);
43
+ continue;
44
+ }
45
+ console.log(`${projectProgress} ${project.name}`);
46
+ const docs = await client.getProjectDocs(orgId, project.uuid);
47
+ const projConvs = await client.getProjectConversations(orgId, project.uuid);
48
+ for (const c of projConvs)
49
+ projectConvUuids.add(c.uuid);
50
+ console.log(` ${docs.length} knowledge doc(s), ${projConvs.length} conversation(s)`);
51
+ const commits = [];
52
+ const projectFiles = {};
53
+ projectFiles["README.md"] = buildProjectReadme(project, docs.length, projConvs.length);
54
+ for (const doc of docs) {
55
+ const safeName = doc.file_name.replace(/[/\\]/g, "_");
56
+ projectFiles[`knowledge/${safeName}`] = doc.content;
57
+ }
58
+ commits.push({
59
+ message: `Export project: ${project.name}`,
60
+ timestamp: project.created_at,
61
+ author,
62
+ files: projectFiles,
63
+ });
64
+ // Conversations within the project: still go through the full
65
+ // multi-branch builder, but their files are remapped under
66
+ // conversations/<slug>/ inside the project repo. --skip-same is not
67
+ // applied at this layer (the project repo is rebuilt as a unit).
68
+ for (let ci = 0; ci < projConvs.length; ci++) {
69
+ const convSummary = projConvs[ci];
70
+ const convProgress = ` [${ci + 1}/${projConvs.length}]`;
71
+ console.log(`${convProgress} ${convSummary.name}`);
72
+ const conversation = await client.getConversation(orgId, convSummary.uuid, { tree: true });
73
+ const { artifacts, artifactContents } = await fetchArtifacts(client, orgId, convSummary.uuid, !options.skipArtifacts);
74
+ const subBundle = buildGitBundle(conversation, artifacts, artifactContents, {
75
+ authorName: options.authorName,
76
+ authorEmail: options.authorEmail,
77
+ multiBranch: true,
78
+ });
79
+ const convDir = `conversations/${slugify(convSummary.name)}`;
80
+ for (const commit of subBundle.commits) {
81
+ const remappedFiles = {};
82
+ for (const [p, content] of Object.entries(commit.files)) {
83
+ remappedFiles[`${convDir}/${p}`] = content;
84
+ }
85
+ commits.push({ ...commit, files: remappedFiles });
86
+ }
87
+ }
88
+ const bundle = {
89
+ metadata: {
90
+ conversationId: project.uuid,
91
+ conversationName: project.name,
92
+ model: null,
93
+ createdAt: project.created_at,
94
+ exportedAt: new Date().toISOString(),
95
+ },
96
+ commits,
97
+ };
98
+ await writeProjectBundle(bundle, projectPath, options.format);
99
+ }
100
+ // 2. Standalone conversations (not in any project) -- here --skip-same
101
+ // applies per conversation via the orchestrator.
102
+ const standaloneConvs = allConversations.filter((c) => !c.project_uuid && !projectConvUuids.has(c.uuid));
103
+ console.log(`\n${standaloneConvs.length} standalone conversation(s) to export`);
104
+ for (let ci = 0; ci < standaloneConvs.length; ci++) {
105
+ const convSummary = standaloneConvs[ci];
106
+ const convProgress = `[conv ${ci + 1}/${standaloneConvs.length}]`;
107
+ const convSlug = slugify(convSummary.name);
108
+ const convPath = resolve(outputRoot, "conversations", convSlug);
109
+ try {
110
+ const result = await syncConversation(client, orgId, convSummary, convPath, {
111
+ format: options.format,
112
+ authorName: options.authorName,
113
+ authorEmail: options.authorEmail,
114
+ skipSame: options.skipSame,
115
+ skipExisting: options.skipExisting,
116
+ skipArtifacts: options.skipArtifacts,
117
+ });
118
+ const tag = result.action === "skipped" ? "Skipping (same)" :
119
+ result.action === "skipped-existing" ? "Skipping (exists)" :
120
+ result.action === "incremental" ? "Updated" : "Exported";
121
+ console.log(`${convProgress} ${tag}: ${convSummary.name}`);
122
+ }
123
+ catch (err) {
124
+ console.error(`${convProgress} ERROR exporting ${convSummary.name}: ${err instanceof Error ? err.message : String(err)}`);
125
+ }
126
+ }
127
+ console.log(`\nOrg export complete!`);
128
+ console.log(` Output: ${outputRoot}`);
129
+ console.log(` Projects: ${projects.length}`);
130
+ console.log(` Standalone conversations: ${standaloneConvs.length}`);
131
+ });
132
+ async function fetchArtifacts(client, orgId, convId, enabled) {
133
+ const empty = { success: true, files: [], files_metadata: [] };
134
+ if (!enabled)
135
+ return { artifacts: empty, artifactContents: new Map() };
136
+ const artifactContents = new Map();
137
+ let artifacts = empty;
138
+ try {
139
+ artifacts = await client.listArtifacts(orgId, convId);
140
+ for (const meta of artifacts.files_metadata) {
141
+ try {
142
+ const content = await client.downloadArtifact(orgId, convId, meta.path);
143
+ artifactContents.set(meta.path, content);
144
+ }
145
+ catch { }
146
+ }
147
+ }
148
+ catch { }
149
+ return { artifacts, artifactContents };
150
+ }
151
+ async function writeProjectBundle(bundle, outputPath, format) {
152
+ if (format === "json") {
153
+ writeFileSync(outputPath + ".json", JSON.stringify(bundle, null, 2), "utf-8");
154
+ return;
155
+ }
156
+ if (existsSync(outputPath)) {
157
+ rmSync(outputPath, { recursive: true, force: true });
158
+ }
159
+ await exportToGit(bundle, outputPath);
160
+ if (format === "files") {
161
+ rmSync(resolve(outputPath, ".git"), { recursive: true, force: true });
162
+ }
163
+ }
164
+ function slugify(name) {
165
+ return name
166
+ .toLowerCase()
167
+ .replace(/[^a-z0-9]+/g, "-")
168
+ .replace(/^-|-$/g, "")
169
+ .slice(0, 60);
170
+ }
171
+ function buildProjectReadme(project, docCount, convCount) {
172
+ const lines = [];
173
+ lines.push(`# ${project.name}`);
174
+ lines.push("");
175
+ if (project.description) {
176
+ lines.push(project.description);
177
+ lines.push("");
178
+ }
179
+ lines.push(`- **Project ID:** ${project.uuid}`);
180
+ lines.push(`- **Created:** ${project.created_at}`);
181
+ lines.push(`- **Updated:** ${project.updated_at}`);
182
+ lines.push(`- **Knowledge docs:** ${docCount}`);
183
+ lines.push(`- **Conversations:** ${convCount}`);
184
+ lines.push("");
185
+ lines.push("## Structure");
186
+ lines.push("");
187
+ lines.push("```");
188
+ lines.push("knowledge/ # Project knowledge documents");
189
+ lines.push("conversations/ # Exported conversations with artifacts");
190
+ lines.push("```");
191
+ lines.push("");
192
+ lines.push("---");
193
+ lines.push("");
194
+ lines.push("Exported by [ClaudeSync](https://github.com/infiniteroomlabs/claudesync)");
195
+ lines.push("");
196
+ return lines.join("\n");
197
+ }
198
+ //# sourceMappingURL=export-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-all.js","sourceRoot":"","sources":["../../src/commands/export-all.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,aAAa,SA6EtB,CAAC"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,aAAa,SAoFtB,CAAC"}
@@ -1,67 +1,64 @@
1
1
  import { Command } from "commander";
2
2
  import { resolve } from "node:path";
3
- import { writeFileSync } from "node:fs";
4
- import { ClaudeSyncClient, buildGitBundle, exportToGit, } from "@infinite-room-labs/claudesync-core";
3
+ import { syncConversation, } from "@infinite-room-labs/claudesync-core";
5
4
  import { createClient, resolveOrgId } from "../utils.js";
6
5
  export const exportCommand = new Command("export")
7
- .description("Export a conversation to a git repository")
6
+ .description("Export a conversation to a git repository, file tree, or JSON")
8
7
  .argument("<conversation-id>", "Conversation UUID to export")
9
8
  .option("--org <orgId>", "Organization ID (auto-detected if omitted)")
10
9
  .option("--output <path>", "Output directory (default: ./<conversation-name>)")
11
- .option("--format <format>", "Output format: git or json", "git")
10
+ .option("--format <format>", "Output format: git, json, or files", "git")
12
11
  .option("--author-name <name>", "Git author name", "Claude")
13
12
  .option("--author-email <email>", "Git author email", "claude@anthropic.com")
13
+ .option("--skip-artifacts", "Skip downloading artifacts (faster)")
14
+ .option("--skip-existing", "Skip if the output directory already exists (no change detection)")
15
+ .option("--skip-same", "Skip if the conversation is unchanged since the last sync. Mutually exclusive with --skip-existing.")
14
16
  .action(async (conversationId, options) => {
17
+ if (options.skipSame && options.skipExisting) {
18
+ console.error("error: --skip-same and --skip-existing are mutually exclusive");
19
+ process.exit(1);
20
+ }
15
21
  const { auth, client } = createClient();
16
22
  const orgId = await resolveOrgId(auth, options.org);
17
- // 1. Fetch conversation
18
- console.log(`Fetching conversation ${conversationId}...`);
19
- const conversation = await client.getConversation(orgId, conversationId);
20
- console.log(` Name: ${conversation.name}`);
21
- console.log(` Messages: ${conversation.chat_messages.length}`);
22
- // 2. Fetch artifacts
23
- console.log("Fetching artifacts...");
24
- const artifacts = await client.listArtifacts(orgId, conversationId);
25
- console.log(` Found ${artifacts.files_metadata.length} artifact(s).`);
26
- // 3. Download artifact contents
27
- const artifactContents = new Map();
28
- for (const meta of artifacts.files_metadata) {
29
- const filename = ClaudeSyncClient.safeFilename(meta.path);
30
- console.log(` Downloading: ${filename}`);
31
- const content = await client.downloadArtifact(orgId, conversationId, meta.path);
32
- artifactContents.set(meta.path, content);
23
+ // For --skip-same we need the list-endpoint summary (cheap, no
24
+ // chat_messages). Always fetch it so the cursor checks are accurate.
25
+ const summaries = await client.listConversationsAll(orgId);
26
+ const summary = summaries.find((c) => c.uuid === conversationId);
27
+ if (!summary) {
28
+ console.error(`Conversation not found: ${conversationId}`);
29
+ process.exit(1);
30
+ return; // unreachable after process.exit, helps the type narrower
33
31
  }
34
- // 4. Build GitBundle
35
- console.log("Building export bundle...");
36
- const bundle = buildGitBundle(conversation, artifacts, artifactContents, {
32
+ const slug = summary.name
33
+ .toLowerCase()
34
+ .replace(/[^a-z0-9]+/g, "-")
35
+ .replace(/^-|-$/g, "")
36
+ .slice(0, 60);
37
+ const outputPath = resolve(options.output ?? `./${slug}`);
38
+ console.log(`Syncing conversation ${summary.name} (${summary.uuid})`);
39
+ console.log(` Format: ${options.format}`);
40
+ console.log(` Output: ${outputPath}`);
41
+ const result = await syncConversation(client, orgId, summary, outputPath, {
42
+ format: options.format,
37
43
  authorName: options.authorName,
38
44
  authorEmail: options.authorEmail,
45
+ skipSame: options.skipSame,
46
+ skipExisting: options.skipExisting,
47
+ skipArtifacts: options.skipArtifacts,
39
48
  });
40
- // 5. Output
41
- if (options.format === "json") {
42
- const outputPath = options.output;
43
- if (outputPath) {
44
- const fullPath = resolve(outputPath);
45
- writeFileSync(fullPath, JSON.stringify(bundle, null, 2), "utf-8");
46
- console.log(`\nBundle written to ${fullPath}`);
47
- }
48
- else {
49
- console.log(JSON.stringify(bundle, null, 2));
50
- }
51
- }
52
- else {
53
- // git format
54
- const slug = conversation.name
55
- .toLowerCase()
56
- .replace(/[^a-z0-9]+/g, "-")
57
- .replace(/^-|-$/g, "")
58
- .slice(0, 60);
59
- const outputPath = resolve(options.output ?? `./${slug}`);
60
- console.log(`Exporting to git repository: ${outputPath}`);
61
- await exportToGit(bundle, outputPath);
62
- console.log(`\nExport complete!`);
63
- console.log(` Repository: ${outputPath}`);
64
- console.log(` Commits: ${bundle.commits.length}`);
49
+ switch (result.action) {
50
+ case "skipped":
51
+ console.log(`Skipped (same): ${result.reason}`);
52
+ break;
53
+ case "skipped-existing":
54
+ console.log(`Skipped (exists): ${result.reason}`);
55
+ break;
56
+ case "full":
57
+ console.log(`Initial export complete.`);
58
+ break;
59
+ case "incremental":
60
+ console.log(`Incremental sync complete${result.changelogWritten ? " (CHANGELOG updated)" : ""}.`);
61
+ break;
65
62
  }
66
63
  });
67
64
  //# sourceMappingURL=export.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  import { resolve } from "node:path";
3
- import { writeFileSync, mkdirSync } from "node:fs";
3
+ import { writeFileSync, mkdirSync, rmSync } from "node:fs";
4
4
  import { ClaudeSyncClient, buildGitBundle, exportToGit, } from "@infinite-room-labs/claudesync-core";
5
5
  import { createClient, resolveOrgId, truncate, outputJson } from "../utils.js";
6
6
  export const projectsCommand = new Command("projects")
@@ -40,7 +40,7 @@ projectsCommand
40
40
  .argument("<project-id>", "Project UUID to export")
41
41
  .option("--org <orgId>", "Organization ID (auto-detected if omitted)")
42
42
  .option("--output <path>", "Output directory (default: ./<project-name>)")
43
- .option("--format <format>", "Output format: git or json", "git")
43
+ .option("--format <format>", "Output format: git, json, or files", "git")
44
44
  .option("--author-name <name>", "Git author name", "Claude")
45
45
  .option("--author-email <email>", "Git author email", "claude@anthropic.com")
46
46
  .option("--skip-artifacts", "Skip downloading artifacts (faster)")
@@ -164,12 +164,21 @@ projectsCommand
164
164
  }
165
165
  }
166
166
  else {
167
+ // git and files formats both use exportToGit for the file tree
167
168
  const outputPath = resolve(options.output ?? `./${projectSlug}`);
168
- console.log(`\nExporting to git repository: ${outputPath}`);
169
+ console.log(`\nExporting to ${options.format === "files" ? "file tree" : "git repository"}: ${outputPath}`);
169
170
  await exportToGit(fullBundle, outputPath);
171
+ // "files" format: reuse exportToGit for the file tree, then strip .git.
172
+ // Fast-and-simple approach -- if this becomes a hot path, write a dedicated
173
+ // flat file exporter that skips git init/stage/commit entirely.
174
+ if (options.format === "files") {
175
+ rmSync(resolve(outputPath, ".git"), { recursive: true, force: true });
176
+ }
170
177
  console.log(`\nExport complete!`);
171
- console.log(` Repository: ${outputPath}`);
172
- console.log(` Commits: ${commits.length}`);
178
+ console.log(` ${options.format === "files" ? "Directory" : "Repository"}: ${outputPath}`);
179
+ if (options.format === "git") {
180
+ console.log(` Commits: ${commits.length}`);
181
+ }
173
182
  console.log(` Knowledge docs: ${docs.length}`);
174
183
  console.log(` Conversations: ${conversations.length}`);
175
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,15 +5,27 @@ import { lsCommand } from "./commands/ls.js";
5
5
  import { exportCommand } from "./commands/export.js";
6
6
  import { projectsCommand } from "./commands/projects.js";
7
7
  import { searchCommand } from "./commands/search.js";
8
+ import { exportAllCommand } from "./commands/export-all.js";
8
9
  const program = new Command();
9
10
  program
10
11
  .name("claudesync")
11
12
  .description("ClaudeSync -- Export claude.ai conversations as git repositories")
12
- .version("0.2.1");
13
+ .version("0.3.0");
13
14
  program.addCommand(lsCommand);
14
15
  program.addCommand(exportCommand);
15
16
  program.addCommand(projectsCommand);
16
17
  program.addCommand(searchCommand);
18
+ program.addCommand(exportAllCommand);
19
+ // TUI subcommand
20
+ program
21
+ .command("tui")
22
+ .description("Launch interactive browser (Miller Columns)")
23
+ .action(async () => {
24
+ const { render } = await import("ink");
25
+ const { createElement } = await import("react");
26
+ const { App } = await import("./tui/App.js");
27
+ render(createElement(App));
28
+ });
17
29
  // Global error handling
18
30
  program.hook("preAction", () => {
19
31
  process.on("unhandledRejection", handleError);
@@ -38,16 +50,5 @@ function handleError(error) {
38
50
  console.error("An unexpected error occurred.");
39
51
  process.exit(1);
40
52
  }
41
- // If no subcommand given and we have a TTY, launch interactive TUI
42
- if (process.argv.length <= 2 && process.stdin.isTTY) {
43
- import("ink").then(async ({ render }) => {
44
- const { createElement } = await import("react");
45
- const { App } = await import("./tui/App.js");
46
- render(createElement(App));
47
- }).catch(handleError);
48
- }
49
- else {
50
- // Show help if no args and no TTY, otherwise parse subcommand
51
- program.parseAsync(process.argv).catch(handleError);
52
- }
53
+ program.parseAsync(process.argv).catch(handleError);
53
54
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,kEAAkE,CAAC;KAC/E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,wBAAwB;AACxB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC7B,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CACX,8BAA8B,KAAK,CAAC,YAAY,WAAW,CAC5D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,mEAAmE;AACnE,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACxB,CAAC;KAAM,CAAC;IACN,8DAA8D;IAC9D,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,kEAAkE,CAAC;KAC/E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAErC,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,wBAAwB;AACxB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC7B,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CACX,8BAA8B,KAAK,CAAC,YAAY,WAAW,CAC5D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infinite-room-labs/claudesync-cli",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/InfiniteRoomLabs/claudesync"
@@ -18,7 +18,7 @@
18
18
  "ink": "^6.8.0",
19
19
  "ink-text-input": "^6.0.0",
20
20
  "react": "^19.2.4",
21
- "@infinite-room-labs/claudesync-core": "0.3.0"
21
+ "@infinite-room-labs/claudesync-core": "0.4.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^25.5.0",