chatlab-cli 0.28.0 → 0.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/{chat-command-7WL5NMZ6.mjs → chat-command-ISJ2DC7R.mjs} +5 -5
  2. package/dist/{chunk-VASK54KT.mjs → chunk-3QBVO4J7.mjs} +2 -2
  3. package/dist/chunk-5FGB42EQ.mjs +7 -0
  4. package/dist/{chunk-YQ2FJGBT.mjs → chunk-AB6TAXTQ.mjs} +83 -46
  5. package/dist/chunk-AB6TAXTQ.mjs.map +1 -0
  6. package/dist/{chunk-XNU5X7EV.mjs → chunk-ERAAWLEF.mjs} +3 -3
  7. package/dist/{chunk-GFRG7TZQ.mjs → chunk-GHTGFM6O.mjs} +14 -14
  8. package/dist/{chunk-WGS33EWH.mjs → chunk-NJB2NNB2.mjs} +2 -2
  9. package/dist/{chunk-ZSFVX6FM.mjs → chunk-T7IETWHN.mjs} +6 -22
  10. package/dist/chunk-T7IETWHN.mjs.map +1 -0
  11. package/dist/chunk-YBS3YQB6.mjs +1336 -0
  12. package/dist/chunk-YBS3YQB6.mjs.map +1 -0
  13. package/dist/{chunk-55WR6WKW.mjs → chunk-ZVDOFWL7.mjs} +13327 -4696
  14. package/dist/chunk-ZVDOFWL7.mjs.map +1 -0
  15. package/dist/cli.mjs +4 -4
  16. package/dist/{http-C2FBHNZG.mjs → http-MBILV37U.mjs} +9 -9
  17. package/dist/{import-ED6JCPSJ.mjs → import-EYV3GXHE.mjs} +5 -12
  18. package/dist/index.mjs +9 -9
  19. package/dist/{mcp-5JIBER4M.mjs → mcp-H55AEXU5.mjs} +5 -5
  20. package/dist/semantic-index-worker.mjs +1 -1
  21. package/dist/{src-WBNM42SL.mjs → src-36ZIR65K.mjs} +30 -28
  22. package/dist/{stream-import-37U3SROO.mjs → stream-import-YZMZ56B5.mjs} +4 -4
  23. package/dist/stream-import-YZMZ56B5.mjs.map +1 -0
  24. package/dist/undici-ZSXBT7EA.mjs +18389 -0
  25. package/dist/undici-ZSXBT7EA.mjs.map +1 -0
  26. package/dist/{worker-runtime-6DGYL4TF.mjs → worker-runtime-YDYS2C6T.mjs} +9 -5
  27. package/dist/worker-runtime-YDYS2C6T.mjs.map +1 -0
  28. package/dist-web/assets/{DebugToolsPanel.vue_vue_type_script_setup_true_lang-CCz0Syxo.js → DebugToolsPanel.vue_vue_type_script_setup_true_lang-Do3x4aL3.js} +5 -5
  29. package/dist-web/assets/{MessageExportModal-Dd6R-cX_.js → MessageExportModal-rijqUusq.js} +1 -1
  30. package/dist-web/assets/{electron-DjminAKK.js → electron-DWDCqx_d.js} +1 -1
  31. package/dist-web/assets/{fetch-B_kLRm6-.js → fetch-29ZBtGV0.js} +1 -1
  32. package/dist-web/assets/{fetch-DFCYOQe5.js → fetch-BAxKmbKF.js} +1 -1
  33. package/dist-web/assets/{fetch-srCJzcWc.js → fetch-BYczbT4C.js} +1 -1
  34. package/dist-web/assets/{fetch-DOhCQ5J8.js → fetch-BcxrU2mr.js} +1 -1
  35. package/dist-web/assets/{fetch-DV8A1dGB.js → fetch-Bh1fo3Df.js} +1 -1
  36. package/dist-web/assets/{fetch-Wad5mWVH.js → fetch-C3yhWO2S.js} +1 -1
  37. package/dist-web/assets/{fetch-CURbMNJV.js → fetch-Da_TBxrX.js} +1 -1
  38. package/dist-web/assets/{fetch-uM3erGZm.js → fetch-DyD8wDhb.js} +1 -1
  39. package/dist-web/assets/{fetch-Cle6QKmL.js → fetch-TCeykOkO.js} +1 -1
  40. package/dist-web/assets/{fetch-r83wdzHy.js → fetch-tIIVdXSv.js} +1 -1
  41. package/dist-web/assets/index-BzjLqlW_.js +173 -0
  42. package/dist-web/assets/{index-BpszRZ8V.js → index-C74qEDFh.js} +3 -3
  43. package/dist-web/assets/index-CM6xNPFp.css +1 -0
  44. package/dist-web/assets/index-CgK2LLIF.js +12 -0
  45. package/dist-web/assets/{index-hOsKRsp6.js → index-CjkOvM3N.js} +2 -2
  46. package/dist-web/assets/{index-BIvLzdwg.js → index-Dno7CADA.js} +1 -1
  47. package/dist-web/assets/{index-tkbEq8av.js → index-fbWrQpgH.js} +1 -1
  48. package/dist-web/assets/{web-D27K6zSX.js → web-H3XLx159.js} +1 -1
  49. package/dist-web/index.html +2 -2
  50. package/package.json +1 -1
  51. package/dist/chunk-55WR6WKW.mjs.map +0 -1
  52. package/dist/chunk-GPF34WXV.mjs +0 -9573
  53. package/dist/chunk-GPF34WXV.mjs.map +0 -1
  54. package/dist/chunk-YQ2FJGBT.mjs.map +0 -1
  55. package/dist/chunk-YZDEZ6UI.mjs +0 -389
  56. package/dist/chunk-YZDEZ6UI.mjs.map +0 -1
  57. package/dist/chunk-ZSFVX6FM.mjs.map +0 -1
  58. package/dist/worker-runtime-6DGYL4TF.mjs.map +0 -1
  59. package/dist-web/assets/index-7E5GSvR2.css +0 -1
  60. package/dist-web/assets/index-BCRHSc1k.js +0 -173
  61. package/dist-web/assets/index-D5UgZUpS.js +0 -12
  62. /package/dist/{chat-command-7WL5NMZ6.mjs.map → chat-command-ISJ2DC7R.mjs.map} +0 -0
  63. /package/dist/{chunk-VASK54KT.mjs.map → chunk-3QBVO4J7.mjs.map} +0 -0
  64. /package/dist/{http-C2FBHNZG.mjs.map → chunk-5FGB42EQ.mjs.map} +0 -0
  65. /package/dist/{chunk-XNU5X7EV.mjs.map → chunk-ERAAWLEF.mjs.map} +0 -0
  66. /package/dist/{chunk-GFRG7TZQ.mjs.map → chunk-GHTGFM6O.mjs.map} +0 -0
  67. /package/dist/{chunk-WGS33EWH.mjs.map → chunk-NJB2NNB2.mjs.map} +0 -0
  68. /package/dist/{import-ED6JCPSJ.mjs.map → http-MBILV37U.mjs.map} +0 -0
  69. /package/dist/{src-WBNM42SL.mjs.map → import-EYV3GXHE.mjs.map} +0 -0
  70. /package/dist/{mcp-5JIBER4M.mjs.map → mcp-H55AEXU5.mjs.map} +0 -0
  71. /package/dist/{stream-import-37U3SROO.mjs.map → src-36ZIR65K.mjs.map} +0 -0
@@ -8,7 +8,7 @@ import {
8
8
  AGENT_TOOL_REGISTRY,
9
9
  CoreDataProvider,
10
10
  SEMANTIC_SEARCH_TOOL_NAME
11
- } from "./chunk-VASK54KT.mjs";
11
+ } from "./chunk-3QBVO4J7.mjs";
12
12
  import {
13
13
  AgentEventHandler,
14
14
  AiLogger,
@@ -47,7 +47,7 @@ import {
47
47
  runAgentCore,
48
48
  shouldUseChartCapabilityForMessage,
49
49
  wrapWithChartSchemaGate
50
- } from "./chunk-55WR6WKW.mjs";
50
+ } from "./chunk-ZVDOFWL7.mjs";
51
51
 
52
52
  // src/ai/logger.ts
53
53
  var logger = null;
@@ -582,4 +582,4 @@ export {
582
582
  closeServerAiLogger,
583
583
  createCliRunAgentStream
584
584
  };
585
- //# sourceMappingURL=chunk-XNU5X7EV.mjs.map
585
+ //# sourceMappingURL=chunk-ERAAWLEF.mjs.map
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
7
  import {
8
8
  assertCliDataDirCompatible
9
- } from "./chunk-WGS33EWH.mjs";
9
+ } from "./chunk-NJB2NNB2.mjs";
10
10
  import {
11
11
  getVersion
12
12
  } from "./chunk-5ADKYYNA.mjs";
@@ -15,26 +15,26 @@ import {
15
15
  } from "./chunk-FJ35V3TE.mjs";
16
16
  import {
17
17
  NodePathProvider,
18
- appLogger,
19
18
  applyPendingNodeDataDirMigrationIfNeeded,
20
19
  getSystemLogsDir,
21
- hasPendingElectronDataWarning,
22
- initAppLogger
23
- } from "./chunk-GPF34WXV.mjs";
20
+ hasPendingElectronDataWarning
21
+ } from "./chunk-YBS3YQB6.mjs";
24
22
  import {
25
23
  AIChatManager,
26
24
  DEFAULT_API_PORT,
27
25
  DatabaseManager,
26
+ appLogger,
28
27
  executeReadonlySql,
29
28
  getConfigPath,
30
29
  getMemberActivity,
31
30
  getMembers,
32
31
  getSessionMeta,
33
32
  getSessionOverview,
33
+ initAppLogger,
34
34
  loadConfig,
35
35
  searchMessagesLike,
36
36
  verifyCliDataPath
37
- } from "./chunk-55WR6WKW.mjs";
37
+ } from "./chunk-ZVDOFWL7.mjs";
38
38
 
39
39
  // src/cli.ts
40
40
  import * as fs from "fs";
@@ -228,7 +228,7 @@ program.command("import <file>").description("Import a chat history file (14+ fo
228
228
  console.error(`File not found: ${file}`);
229
229
  process.exit(1);
230
230
  }
231
- const { streamImport, detectFormat } = await import("./import-ED6JCPSJ.mjs");
231
+ const { streamImport, detectFormat } = await import("./import-EYV3GXHE.mjs");
232
232
  const { dbManager, pathProvider } = initRuntime();
233
233
  const nativeBinding = resolveNativeBinding();
234
234
  const format = detectFormat(file);
@@ -256,7 +256,7 @@ Import succeeded!`);
256
256
  console.log(` Messages skipped: ${result.diagnostics?.messagesSkipped ?? 0}`);
257
257
  if (result.sessionId) {
258
258
  try {
259
- const { PreferencesManager, createDatabaseManagerAdapter, ownerProfileService } = await import("./src-WBNM42SL.mjs");
259
+ const { PreferencesManager, createDatabaseManagerAdapter, ownerProfileService } = await import("./src-36ZIR65K.mjs");
260
260
  const applied = ownerProfileService.tryApplyOwnerProfile(
261
261
  createDatabaseManagerAdapter(dbManager),
262
262
  new PreferencesManager(pathProvider.getSystemDir()),
@@ -285,7 +285,7 @@ Import error: ${err instanceof Error ? err.message : err}`);
285
285
  }
286
286
  });
287
287
  program.command("formats").description("List all supported chat history formats").action(async () => {
288
- const { getSupportedFormats } = await import("./import-ED6JCPSJ.mjs");
288
+ const { getSupportedFormats } = await import("./import-EYV3GXHE.mjs");
289
289
  const formats = getSupportedFormats();
290
290
  console.log(`${formats.length} supported format(s):
291
291
  `);
@@ -294,11 +294,11 @@ program.command("formats").description("List all supported chat history formats"
294
294
  }
295
295
  });
296
296
  program.command("mcp").description("Start MCP Server (stdio transport, for ClaudeCode / Cursor / AI agents)").action(async () => {
297
- const { startCliMcpServer } = await import("./mcp-5JIBER4M.mjs");
297
+ const { startCliMcpServer } = await import("./mcp-H55AEXU5.mjs");
298
298
  await startCliMcpServer();
299
299
  });
300
300
  program.command("chat").description("Ask ChatLab AI about an imported chat session").option("--session-id <id>", "Source chat session ID").option("--ai-chat-id <id>", "Existing AI chat ID to continue").option("-q, --question <text>", "Question to ask").option("--json", "Output structured JSON").option("--include-events", "Include all agent stream chunks in JSON output").option("--no-stream", "Disable streaming output").option("--locale <locale>", "AI response locale", "zh-CN").action(async (options) => {
301
- const { runChatCommand } = await import("./chat-command-7WL5NMZ6.mjs");
301
+ const { runChatCommand } = await import("./chat-command-ISJ2DC7R.mjs");
302
302
  const { dbManager, pathProvider } = initRuntime();
303
303
  const aiChatManager = new AIChatManager(pathProvider.getAiDataDir(), { nativeBinding: resolveNativeBinding() });
304
304
  try {
@@ -334,7 +334,7 @@ program.command("start").description("Start ChatLab (HTTP API + Web UI)").option
334
334
  });
335
335
  return;
336
336
  }
337
- const { startHttpServer } = await import("./http-C2FBHNZG.mjs");
337
+ const { startHttpServer } = await import("./http-MBILV37U.mjs");
338
338
  const port = parseInt(options.port, 10);
339
339
  let webRoot;
340
340
  if (!options.headless) {
@@ -381,7 +381,7 @@ Press Ctrl+C to stop.
381
381
  }
382
382
  const shutdown = async () => {
383
383
  console.log("\nShutting down...");
384
- const { stopHttpServer } = await import("./http-C2FBHNZG.mjs");
384
+ const { stopHttpServer } = await import("./http-MBILV37U.mjs");
385
385
  await stopHttpServer();
386
386
  process.exit(0);
387
387
  };
@@ -537,4 +537,4 @@ if (isDirectRun) {
537
537
  export {
538
538
  run
539
539
  };
540
- //# sourceMappingURL=chunk-GFRG7TZQ.mjs.map
540
+ //# sourceMappingURL=chunk-GHTGFM6O.mjs.map
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  DataDirCompatibilityError,
12
12
  assertDataDirCompatible
13
- } from "./chunk-55WR6WKW.mjs";
13
+ } from "./chunk-ZVDOFWL7.mjs";
14
14
 
15
15
  // src/runtime-compat.ts
16
16
  function assertCliDataDirCompatible(pathProvider, kind, options) {
@@ -37,4 +37,4 @@ function formatCliDataDirCompatibilityError(error, runtime) {
37
37
  export {
38
38
  assertCliDataDirCompatible
39
39
  };
40
- //# sourceMappingURL=chunk-WGS33EWH.mjs.map
40
+ //# sourceMappingURL=chunk-NJB2NNB2.mjs.map
@@ -5,16 +5,12 @@ const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
7
  import {
8
+ DataDirCompatibilityError,
8
9
  analyzeIncrementalImport,
9
10
  analyzeNewImport,
10
11
  incrementalImport,
11
12
  streamingImport
12
- } from "./chunk-GPF34WXV.mjs";
13
- import {
14
- DataDirCompatibilityError,
15
- generateIncrementalSessionIndex,
16
- generateSessionIndex
17
- } from "./chunk-55WR6WKW.mjs";
13
+ } from "./chunk-ZVDOFWL7.mjs";
18
14
 
19
15
  // src/import/stream-import.ts
20
16
  import * as crypto from "crypto";
@@ -33,12 +29,6 @@ function buildStreamImportDeps(dbManager, onProgress) {
33
29
  },
34
30
  onProgress: onProgress ?? (() => {
35
31
  }),
36
- postImportHook(db) {
37
- try {
38
- generateSessionIndex(db);
39
- } catch {
40
- }
41
- },
42
32
  generateSessionId
43
33
  };
44
34
  }
@@ -46,7 +36,7 @@ function deleteSessionDatabase(dbManager, sessionId) {
46
36
  dbManager.deleteSessionDatabaseFiles(sessionId);
47
37
  }
48
38
  async function streamImport(dbManager, filePath, options) {
49
- const { formatId, chatIndex, onProgress } = options || {};
39
+ const { formatId, chatIndex, onProgress, sessionId } = options || {};
50
40
  const formatOptions = {};
51
41
  if (formatId) formatOptions.formatId = formatId;
52
42
  if (chatIndex !== void 0) formatOptions.chatIndex = chatIndex;
@@ -87,7 +77,7 @@ async function streamImport(dbManager, filePath, options) {
87
77
  } : () => {
88
78
  };
89
79
  const deps = buildStreamImportDeps(dbManager, progressAdapter);
90
- const result = await streamingImport(filePath, deps, formatOptions);
80
+ const result = await streamingImport(filePath, deps, formatOptions, sessionId);
91
81
  if (!result.success || !result.sessionId) return result;
92
82
  try {
93
83
  dbManager.raiseCurrentChatDbCompatibilityGate();
@@ -112,13 +102,7 @@ function buildIncrementalDeps(dbManager, onProgress, onCompatibilityError) {
112
102
  }
113
103
  },
114
104
  onProgress: onProgress ?? (() => {
115
- }),
116
- postImportHook(db) {
117
- try {
118
- generateIncrementalSessionIndex(db);
119
- } catch {
120
- }
121
- }
105
+ })
122
106
  };
123
107
  }
124
108
  async function incrementalImport2(dbManager, sessionId, filePath, options) {
@@ -169,4 +153,4 @@ export {
169
153
  analyzeIncrementalImport2 as analyzeIncrementalImport,
170
154
  analyzeNewImport2 as analyzeNewImport
171
155
  };
172
- //# sourceMappingURL=chunk-ZSFVX6FM.mjs.map
156
+ //# sourceMappingURL=chunk-T7IETWHN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/import/stream-import.ts"],"sourcesContent":["/**\n * Server/CLI streaming import — adapter for @openchatlab/node-runtime StreamingImporter.\n *\n * Replaces the old buffered-in-memory approach with the same high-performance\n * streaming pipeline used by Electron (batched transactions, deferred indexes,\n * nickname history, FTS, format fallback).\n */\n\nimport type { DatabaseManager } from '@openchatlab/node-runtime'\nimport {\n DataDirCompatibilityError,\n streamingImport,\n analyzeNewImport as sharedAnalyzeNewImport,\n analyzeIncrementalImport as sharedAnalyzeIncremental,\n incrementalImport as sharedIncrementalImport,\n} from '@openchatlab/node-runtime'\nimport type {\n StreamImportResult,\n StreamImportDeps,\n ImportProgressCallback,\n IncrementalImportResult,\n IncrementalAnalyzeResult,\n IncrementalImportDeps,\n ImportOptions,\n AnalyzeNewImportResult,\n} from '@openchatlab/node-runtime'\nimport {\n detectFormat as parserDetectFormat,\n detectAllFormats,\n getFormatFeatureById,\n getSupportedFormats as parserGetSupportedFormats,\n scanMultiChatFile as parserScanMultiChatFile,\n findEntryFileInDirectory,\n type FormatFeature,\n type MultiChatInfo,\n type ParseProgress,\n} from '@openchatlab/parser'\nimport * as crypto from 'crypto'\n\n// ==================== Legacy progress interface (for SSE routes) ====================\n\nexport interface StreamImportProgress {\n stage: 'detecting' | 'parsing' | 'saving' | 'indexing' | 'done' | 'error'\n progress: number\n message: string\n bytesRead?: number\n totalBytes?: number\n messagesProcessed?: number\n}\n\nexport interface StreamImportOptions {\n formatId?: string\n chatIndex?: number\n nativeBinding?: string\n onProgress?: (progress: StreamImportProgress) => void\n /** Fix the target session ID instead of auto-generating one. Used by sync/pull adapters. */\n sessionId?: string\n}\n\nfunction generateSessionId(): string {\n const ts = Date.now()\n const rand = crypto.randomBytes(4).toString('hex')\n return `chat_${ts}_${rand}`\n}\n\nfunction buildStreamImportDeps(dbManager: DatabaseManager, onProgress?: ImportProgressCallback): StreamImportDeps {\n return {\n openDatabase(sessionId: string) {\n return dbManager.openRawSessionDatabase(sessionId, { create: true, initializeChatTables: true })\n },\n deleteDatabase(sessionId: string) {\n dbManager.deleteSessionDatabaseFiles(sessionId)\n },\n onProgress: onProgress ?? (() => {}),\n generateSessionId,\n }\n}\n\nfunction deleteSessionDatabase(dbManager: DatabaseManager, sessionId: string): void {\n dbManager.deleteSessionDatabaseFiles(sessionId)\n}\n\n/**\n * High-performance streaming import: parse a file and write to DB\n * with batched transactions, deferred indexes, and FTS.\n */\nexport async function streamImport(\n dbManager: DatabaseManager,\n filePath: string,\n options?: StreamImportOptions\n): Promise<StreamImportResult> {\n const { formatId, chatIndex, onProgress, sessionId } = options || {}\n\n const formatOptions: Record<string, unknown> = {}\n if (formatId) formatOptions.formatId = formatId\n if (chatIndex !== undefined) formatOptions.chatIndex = chatIndex\n\n const progressAdapter: ImportProgressCallback = onProgress\n ? (progress) => {\n let stage: StreamImportProgress['stage'] = 'parsing'\n let pct = 0\n switch (progress.stage) {\n case 'detecting':\n stage = 'detecting'\n pct = 5\n break\n case 'parsing':\n stage = 'parsing'\n pct = Math.min(Math.round(progress.percentage * 0.7), 70)\n break\n case 'importing':\n case 'saving':\n stage = 'saving'\n pct = 80\n break\n case 'done':\n stage = 'done'\n pct = 100\n break\n case 'error':\n stage = 'error'\n pct = 0\n break\n }\n onProgress({\n stage,\n progress: pct,\n message: progress.message || '',\n bytesRead: progress.bytesRead,\n totalBytes: progress.totalBytes,\n messagesProcessed: progress.messagesProcessed,\n })\n }\n : () => {}\n\n const deps = buildStreamImportDeps(dbManager, progressAdapter)\n const result = await streamingImport(filePath, deps, formatOptions, sessionId)\n if (!result.success || !result.sessionId) return result\n\n try {\n dbManager.raiseCurrentChatDbCompatibilityGate()\n } catch (error) {\n deleteSessionDatabase(dbManager, result.sessionId)\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n diagnostics: result.diagnostics,\n }\n }\n\n return result\n}\n\n// ==================== Incremental import ====================\n\nfunction buildIncrementalDeps(\n dbManager: DatabaseManager,\n onProgress?: ImportProgressCallback,\n onCompatibilityError?: (error: DataDirCompatibilityError) => void\n): IncrementalImportDeps {\n return {\n openDatabase(sessionId: string, readonly?: boolean) {\n try {\n return dbManager.openRawSessionDatabase(sessionId, { readonly: readonly ?? false })\n } catch (error) {\n if (error instanceof DataDirCompatibilityError) onCompatibilityError?.(error)\n throw error\n }\n },\n onProgress: onProgress ?? (() => {}),\n }\n}\n\nexport async function incrementalImport(\n dbManager: DatabaseManager,\n sessionId: string,\n filePath: string,\n options?: ImportOptions & { onProgress?: ImportProgressCallback }\n): Promise<IncrementalImportResult> {\n const { onProgress, ...importOpts } = options || {}\n let compatibilityError: DataDirCompatibilityError | null = null\n const result = await sharedIncrementalImport(\n sessionId,\n filePath,\n buildIncrementalDeps(dbManager, onProgress, (error) => {\n compatibilityError = error\n }),\n importOpts\n )\n if (compatibilityError) throw compatibilityError\n if (!result.success) return result\n\n try {\n dbManager.raiseCurrentChatDbCompatibilityGate()\n } catch (error) {\n return {\n ...result,\n success: false,\n newMessageCount: 0,\n error: error instanceof Error ? error.message : String(error),\n }\n }\n\n return result\n}\n\nexport async function analyzeIncrementalImport(\n dbManager: DatabaseManager,\n sessionId: string,\n filePath: string,\n onProgress?: ImportProgressCallback\n): Promise<IncrementalAnalyzeResult> {\n let compatibilityError: DataDirCompatibilityError | null = null\n const result = await sharedAnalyzeIncremental(\n sessionId,\n filePath,\n buildIncrementalDeps(dbManager, onProgress, (error) => {\n compatibilityError = error\n })\n )\n if (compatibilityError) throw compatibilityError\n return result\n}\n\nexport async function analyzeNewImport(\n filePath: string,\n onProgress?: ImportProgressCallback\n): Promise<AnalyzeNewImportResult> {\n return sharedAnalyzeNewImport(filePath, onProgress ?? (() => {}))\n}\n\n// ==================== Re-exports from parser ====================\n\nexport {\n parserDetectFormat as detectFormat,\n detectAllFormats,\n getFormatFeatureById,\n parserGetSupportedFormats as getSupportedFormats,\n parserScanMultiChatFile as scanMultiChatFile,\n findEntryFileInDirectory,\n}\nexport type { FormatFeature, MultiChatInfo, ParseProgress }\nexport type {\n StreamImportResult,\n IncrementalImportResult,\n IncrementalAnalyzeResult,\n AnalyzeNewImportResult,\n ImportOptions,\n}\n"],"mappings":"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","names":["incrementalImport","analyzeIncrementalImport","analyzeNewImport"]}