@infinite-room-labs/claudesync-cli 0.5.1 → 0.6.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.
@@ -1 +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,SAgKzB,CAAC"}
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;AAepC,eAAO,MAAM,gBAAgB,SAuKzB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Command } from "commander";
2
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";
3
+ import { existsSync, writeFileSync } from "node:fs";
4
+ import { exportToGit, fetchAndBuild, syncConversation, safeSlug, displayName, replaceWithPreserve, } from "@infinite-room-labs/claudesync-core";
5
5
  import { createClient, resolveOrgId } from "../utils.js";
6
6
  export const exportAllCommand = new Command("export-all")
7
7
  .description("Export entire organization: all projects (with knowledge + conversations) and standalone conversations")
@@ -13,6 +13,7 @@ export const exportAllCommand = new Command("export-all")
13
13
  .option("--skip-artifacts", "Skip downloading artifacts (faster)")
14
14
  .option("--skip-existing", "Skip conversations/projects whose output directory already exists")
15
15
  .option("--skip-same", "Skip conversations unchanged since the last sync (uses .claudesync-state.json sidecar). Mutually exclusive with --skip-existing.")
16
+ .option("--preserve <glob>", "Glob (POSIX-style, relative to each conversation dir) of locally-added files to keep across re-syncs in --format files. Repeatable. CHANGELOG.md is always preserved. Examples: --preserve INDEX.md --preserve 'notes/**'", (value, previous = []) => previous.concat(value), [])
16
17
  .action(async (options) => {
17
18
  if (options.skipSame && options.skipExisting) {
18
19
  console.error("error: --skip-same and --skip-existing are mutually exclusive");
@@ -33,16 +34,17 @@ export const exportAllCommand = new Command("export-all")
33
34
  for (let pi = 0; pi < projects.length; pi++) {
34
35
  const project = projects[pi];
35
36
  const projectProgress = `[project ${pi + 1}/${projects.length}]`;
36
- const projectSlug = slugify(project.name) || `unnamed-${project.uuid}`;
37
+ const projectLabel = displayName(project.name, project.uuid);
38
+ const projectSlug = safeSlug(project.name, project.uuid);
37
39
  const projectPath = resolve(outputRoot, "projects", projectSlug);
38
40
  if (options.skipExisting && existsSync(projectPath)) {
39
- console.log(`${projectProgress} Skipping (exists): ${project.name}`);
41
+ console.log(`${projectProgress} Skipping (exists): ${projectLabel}`);
40
42
  const projConvs = await client.getProjectConversations(orgId, project.uuid);
41
43
  for (const c of projConvs)
42
44
  projectConvUuids.add(c.uuid);
43
45
  continue;
44
46
  }
45
- console.log(`${projectProgress} ${project.name}`);
47
+ console.log(`${projectProgress} ${projectLabel}`);
46
48
  const docs = await client.getProjectDocs(orgId, project.uuid);
47
49
  const projConvs = await client.getProjectConversations(orgId, project.uuid);
48
50
  for (const c of projConvs)
@@ -56,28 +58,26 @@ export const exportAllCommand = new Command("export-all")
56
58
  projectFiles[`knowledge/${safeName}`] = doc.content;
57
59
  }
58
60
  commits.push({
59
- message: `Export project: ${project.name}`,
61
+ message: `Export project: ${projectLabel}`,
60
62
  timestamp: project.created_at,
61
63
  author,
62
64
  files: projectFiles,
63
65
  });
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).
66
+ // Conversations within the project: route through fetchAndBuild for
67
+ // identical name/slug fallbacks and tree handling. --skip-same does not
68
+ // apply at this layer (the project repo is rebuilt as a unit each run).
68
69
  for (let ci = 0; ci < projConvs.length; ci++) {
69
70
  const convSummary = projConvs[ci];
70
71
  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, {
72
+ const built = await fetchAndBuild(client, orgId, convSummary, {
75
73
  authorName: options.authorName,
76
74
  authorEmail: options.authorEmail,
75
+ skipArtifacts: options.skipArtifacts,
77
76
  multiBranch: true,
78
77
  });
79
- const convDir = `conversations/${slugify(convSummary.name) || `unnamed-${convSummary.uuid}`}`;
80
- for (const commit of subBundle.commits) {
78
+ console.log(`${convProgress} ${built.displayName}`);
79
+ const convDir = `conversations/${built.slug}`;
80
+ for (const commit of built.bundle.commits) {
81
81
  const remappedFiles = {};
82
82
  for (const [p, content] of Object.entries(commit.files)) {
83
83
  remappedFiles[`${convDir}/${p}`] = content;
@@ -88,25 +88,22 @@ export const exportAllCommand = new Command("export-all")
88
88
  const bundle = {
89
89
  metadata: {
90
90
  conversationId: project.uuid,
91
- conversationName: project.name,
91
+ conversationName: projectLabel,
92
92
  model: null,
93
93
  createdAt: project.created_at,
94
94
  exportedAt: new Date().toISOString(),
95
95
  },
96
96
  commits,
97
97
  };
98
- await writeProjectBundle(bundle, projectPath, options.format);
98
+ await writeProjectBundle(bundle, projectPath, options.format, options.preserve);
99
99
  }
100
- // 2. Standalone conversations (not in any project) -- here --skip-same
101
- // applies per conversation via the orchestrator.
100
+ // 2. Standalone conversations -- --skip-same applies here per conversation.
102
101
  const standaloneConvs = allConversations.filter((c) => !c.project_uuid && !projectConvUuids.has(c.uuid));
103
102
  console.log(`\n${standaloneConvs.length} standalone conversation(s) to export`);
104
103
  for (let ci = 0; ci < standaloneConvs.length; ci++) {
105
104
  const convSummary = standaloneConvs[ci];
106
105
  const convProgress = `[conv ${ci + 1}/${standaloneConvs.length}]`;
107
- const convLabel = displayName(convSummary.name, convSummary.uuid);
108
- const convSlug = slugify(convSummary.name) || `unnamed-${convSummary.uuid}`;
109
- const convPath = resolve(outputRoot, "conversations", convSlug);
106
+ const convPath = resolve(outputRoot, "conversations", safeSlug(convSummary.name, convSummary.uuid));
110
107
  try {
111
108
  const result = await syncConversation(client, orgId, convSummary, convPath, {
112
109
  format: options.format,
@@ -115,14 +112,16 @@ export const exportAllCommand = new Command("export-all")
115
112
  skipSame: options.skipSame,
116
113
  skipExisting: options.skipExisting,
117
114
  skipArtifacts: options.skipArtifacts,
115
+ preserve: options.preserve,
118
116
  });
119
117
  const tag = result.action === "skipped" ? "Skipping (same)" :
120
118
  result.action === "skipped-existing" ? "Skipping (exists)" :
121
119
  result.action === "incremental" ? "Updated" : "Exported";
122
- console.log(`${convProgress} ${tag}: ${convLabel}`);
120
+ console.log(`${convProgress} ${tag}: ${result.displayName}`);
123
121
  }
124
122
  catch (err) {
125
- console.error(`${convProgress} ERROR exporting ${convLabel}: ${err instanceof Error ? err.message : String(err)}`);
123
+ const fallback = displayName(convSummary.name, convSummary.uuid);
124
+ console.error(`${convProgress} ERROR exporting ${fallback}: ${err instanceof Error ? err.message : String(err)}`);
126
125
  }
127
126
  }
128
127
  console.log(`\nOrg export complete!`);
@@ -130,54 +129,29 @@ export const exportAllCommand = new Command("export-all")
130
129
  console.log(` Projects: ${projects.length}`);
131
130
  console.log(` Standalone conversations: ${standaloneConvs.length}`);
132
131
  });
133
- async function fetchArtifacts(client, orgId, convId, enabled) {
134
- const empty = { success: true, files: [], files_metadata: [] };
135
- if (!enabled)
136
- return { artifacts: empty, artifactContents: new Map() };
137
- const artifactContents = new Map();
138
- let artifacts = empty;
139
- try {
140
- artifacts = await client.listArtifacts(orgId, convId);
141
- for (const meta of artifacts.files_metadata) {
142
- try {
143
- const content = await client.downloadArtifact(orgId, convId, meta.path);
144
- artifactContents.set(meta.path, content);
145
- }
146
- catch { }
147
- }
148
- }
149
- catch { }
150
- return { artifacts, artifactContents };
151
- }
152
- async function writeProjectBundle(bundle, outputPath, format) {
132
+ async function writeProjectBundle(bundle, outputPath, format, preserve) {
153
133
  if (format === "json") {
154
134
  writeFileSync(outputPath + ".json", JSON.stringify(bundle, null, 2), "utf-8");
155
135
  return;
156
136
  }
157
- if (existsSync(outputPath)) {
158
- rmSync(outputPath, { recursive: true, force: true });
159
- }
160
- await exportToGit(bundle, outputPath);
161
- if (format === "files") {
162
- rmSync(resolve(outputPath, ".git"), { recursive: true, force: true });
163
- }
164
- }
165
- function slugify(name) {
166
- return (name ?? "")
167
- .toLowerCase()
168
- .replace(/[^a-z0-9]+/g, "-")
169
- .replace(/^-|-$/g, "")
170
- .slice(0, 60);
171
- }
172
- function displayName(name, uuid) {
173
- const trimmed = (name ?? "").trim();
174
- if (trimmed)
175
- return trimmed;
176
- return `<unnamed ${uuid}>`;
137
+ // Files / git mode: rebuild the project tree from scratch, but route through
138
+ // replaceWithPreserve so locally-added files (INDEX.md at project + nested
139
+ // conversation scope, hand-written notes, etc.) survive the re-sync.
140
+ await replaceWithPreserve({
141
+ outputPath,
142
+ writeFresh: async () => {
143
+ await exportToGit(bundle, outputPath);
144
+ if (format === "files") {
145
+ const { rmSync } = await import("node:fs");
146
+ rmSync(resolve(outputPath, ".git"), { recursive: true, force: true });
147
+ }
148
+ },
149
+ preserveGlobs: preserve,
150
+ });
177
151
  }
178
152
  function buildProjectReadme(project, docCount, convCount) {
179
153
  const lines = [];
180
- lines.push(`# ${project.name}`);
154
+ lines.push(`# ${displayName(project.name, project.uuid)}`);
181
155
  lines.push("");
182
156
  if (project.description) {
183
157
  lines.push(project.description);
@@ -1 +1 @@
1
- {"version":3,"file":"export-all.js","sourceRoot":"","sources":["../../src/commands/export-all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,GAGjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;KACtD,WAAW,CAAC,wGAAwG,CAAC;KACrH,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;KACrE,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;KACrE,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,OAAO,CAAC;KAC1E,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,QAAQ,CAAC;KAC3D,MAAM,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,sBAAsB,CAAC;KAC5E,MAAM,CAAC,kBAAkB,EAAE,qCAAqC,CAAC;KACjE,MAAM,CACL,iBAAiB,EACjB,mEAAmE,CACpE;KACA,MAAM,CACL,aAAa,EACb,kIAAkI,CACnI;KACA,MAAM,CAAC,KAAK,EAAE,OASd,EAAE,EAAE;IACH,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;KACnC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,gBAAgB,gBAAgB,CAAC,MAAM,wBAAwB,CAAC,CAAC;IAEjG,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,uEAAuE;IACvE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,eAAe,GAAG,YAAY,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QACjE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC;QACvE,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAEjE,IAAI,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,uBAAuB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5E,KAAK,MAAM,CAAC,IAAI,SAAS;gBAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5E,KAAK,MAAM,CAAC,IAAI,SAAS;YAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,sBAAsB,SAAS,CAAC,MAAM,kBAAkB,CAAC,CAAC;QAEtF,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,MAAM,YAAY,GAAwC,EAAE,CAAC;QAC7D,YAAY,CAAC,WAAW,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACvF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACtD,YAAY,CAAC,aAAa,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,mBAAmB,OAAO,CAAC,IAAI,EAAE;YAC1C,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,MAAM;YACN,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QAEH,8DAA8D;QAC9D,2DAA2D;QAC3D,oEAAoE;QACpE,iEAAiE;QACjE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,YAAY,GAAG,MAAM,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAEnD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3F,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,cAAc,CAC1D,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,aAAa,CACxD,CAAC;YACF,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC1E,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,iBAAiB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9F,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvC,MAAM,aAAa,GAAwC,EAAE,CAAC;gBAC9D,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxD,aAAa,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC7C,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE;gBACR,cAAc,EAAE,OAAO,CAAC,IAAI;gBAC5B,gBAAgB,EAAE,OAAO,CAAC,IAAI;gBAC9B,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,OAAO,CAAC,UAAU;gBAC7B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC;YACD,OAAO;SACR,CAAC;QAEF,MAAM,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,uEAAuE;IACvE,iDAAiD;IACjD,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CACxD,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,MAAM,uCAAuC,CAAC,CAAC;IAEhF,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,SAAS,EAAE,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;QAClE,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE;gBAC1E,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,aAAa,EAAE,OAAO,CAAC,aAAa;aACrC,CAAC,CAAC;YACH,MAAM,GAAG,GACP,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBACjD,MAAM,CAAC,MAAM,KAAK,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;oBAC5D,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,oBAAoB,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,+BAA+B,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEL,KAAK,UAAU,cAAc,CAC3B,MAAsE,EACtE,KAAa,EACb,MAAc,EACd,OAAgB;IAEhB,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAc,EAAE,cAAc,EAAE,EAAuH,EAAE,CAAC;IAChM,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,GAAG,EAA+B,EAAE,CAAC;IACpG,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAC;IAChE,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxE,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,MAAmK,EACnK,UAAkB,EAClB,MAAoB;IAEpB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,aAAa,CAAC,UAAU,GAAG,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9E,OAAO;IACT,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAA+B;IAC9C,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;SAChB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,IAA+B,EAAE,IAAY;IAChE,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,YAAY,IAAI,GAAG,CAAC;AAC7B,CAAC;AAED,SAAS,kBAAkB,CACzB,OAA4G,EAC5G,QAAgB,EAChB,SAAiB;IAEjB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACvF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
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;AAQpC,eAAO,MAAM,aAAa,SAqFtB,CAAC"}
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,SAyFtB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  import { resolve } from "node:path";
3
- import { syncConversation, } from "@infinite-room-labs/claudesync-core";
3
+ import { syncConversation, safeSlug, displayName, } from "@infinite-room-labs/claudesync-core";
4
4
  import { createClient, resolveOrgId } from "../utils.js";
5
5
  export const exportCommand = new Command("export")
6
6
  .description("Export a conversation to a git repository, file tree, or JSON")
@@ -13,6 +13,7 @@ export const exportCommand = new Command("export")
13
13
  .option("--skip-artifacts", "Skip downloading artifacts (faster)")
14
14
  .option("--skip-existing", "Skip if the output directory already exists (no change detection)")
15
15
  .option("--skip-same", "Skip if the conversation is unchanged since the last sync. Mutually exclusive with --skip-existing.")
16
+ .option("--preserve <glob>", "Glob (POSIX, relative to the conversation dir) of locally-added files to keep across re-syncs in --format files. Repeatable. CHANGELOG.md is always preserved.", (value, previous = []) => previous.concat(value), [])
16
17
  .action(async (conversationId, options) => {
17
18
  if (options.skipSame && options.skipExisting) {
18
19
  console.error("error: --skip-same and --skip-existing are mutually exclusive");
@@ -29,13 +30,9 @@ export const exportCommand = new Command("export")
29
30
  process.exit(1);
30
31
  return; // unreachable after process.exit, helps the type narrower
31
32
  }
32
- const slug = (summary.name ?? "")
33
- .toLowerCase()
34
- .replace(/[^a-z0-9]+/g, "-")
35
- .replace(/^-|-$/g, "")
36
- .slice(0, 60) || `unnamed-${summary.uuid}`;
33
+ const slug = safeSlug(summary.name, summary.uuid);
37
34
  const outputPath = resolve(options.output ?? `./${slug}`);
38
- const label = (summary.name ?? "").trim() || `<unnamed ${summary.uuid}>`;
35
+ const label = displayName(summary.name, summary.uuid);
39
36
  console.log(`Syncing conversation ${label} (${summary.uuid})`);
40
37
  console.log(` Format: ${options.format}`);
41
38
  console.log(` Output: ${outputPath}`);
@@ -46,6 +43,7 @@ export const exportCommand = new Command("export")
46
43
  skipSame: options.skipSame,
47
44
  skipExisting: options.skipExisting,
48
45
  skipArtifacts: options.skipArtifacts,
46
+ preserve: options.preserve,
49
47
  });
50
48
  switch (result.action) {
51
49
  case "skipped":
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infinite-room-labs/claudesync-cli",
3
- "version": "0.5.1",
3
+ "version": "0.6.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.4.0"
21
+ "@infinite-room-labs/claudesync-core": "0.5.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^25.5.0",