chatlab-cli 0.34.2 → 0.34.3

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 (117) hide show
  1. package/dist/{chat-command-6IOH2QRF.mjs → chat-command-QH7DXCAJ.mjs} +8 -8
  2. package/dist/{chunk-JX6MFS6F.mjs → chunk-2Q3HHVTS.mjs} +15 -15
  3. package/dist/{chunk-INBJ7SND.mjs → chunk-2WYXD5ZP.mjs} +117 -416
  4. package/dist/chunk-2WYXD5ZP.mjs.map +1 -0
  5. package/dist/{chunk-U6MVJSXX.mjs → chunk-3X26JJIP.mjs} +15 -9
  6. package/dist/chunk-3X26JJIP.mjs.map +1 -0
  7. package/dist/{chunk-UMBEHBIZ.mjs → chunk-6U2QZO3N.mjs} +2 -2
  8. package/dist/{chunk-52P5ZRBD.mjs → chunk-AWGXYFIC.mjs} +2 -2
  9. package/dist/{chunk-4LW6443F.mjs → chunk-AWXHYTD5.mjs} +795 -876
  10. package/dist/chunk-AWXHYTD5.mjs.map +1 -0
  11. package/dist/{chunk-4RLZFGO5.mjs → chunk-C2PD3BS7.mjs} +2 -2
  12. package/dist/{chunk-H6D4DZOC.mjs → chunk-JYBPJWE2.mjs} +7 -5
  13. package/dist/{chunk-H6D4DZOC.mjs.map → chunk-JYBPJWE2.mjs.map} +1 -1
  14. package/dist/{chunk-652KEAX3.mjs → chunk-SWUTRDGZ.mjs} +2 -2
  15. package/dist/{chunk-72RWABYJ.mjs → chunk-WJVE5Q4Y.mjs} +3 -3
  16. package/dist/chunk-WJVE5Q4Y.mjs.map +1 -0
  17. package/dist/{chunk-2XCNTG4O.mjs → chunk-XIWVJAXH.mjs} +670 -54
  18. package/dist/chunk-XIWVJAXH.mjs.map +1 -0
  19. package/dist/{chunk-MENKFEPC.mjs → chunk-ZVGDOSGG.mjs} +29 -41
  20. package/dist/chunk-ZVGDOSGG.mjs.map +1 -0
  21. package/dist/cli.mjs +9 -9
  22. package/dist/contacts-worker.mjs +2 -2
  23. package/dist/global-insight-worker.mjs +1 -1
  24. package/dist/{http-HSK46XEU.mjs → http-D2F4QTQW.mjs} +12 -12
  25. package/dist/{import-DF2WD2HE.mjs → import-H7X2JU2O.mjs} +7 -7
  26. package/dist/index.mjs +12 -12
  27. package/dist/{mcp-A2RND7KN.mjs → mcp-UURXRGDF.mjs} +8 -8
  28. package/dist/people-relationships-worker.mjs +2 -2
  29. package/dist/semantic-index-worker.mjs +1 -1
  30. package/dist/{src-SHFHW2QB.mjs → src-MHCO4HYY.mjs} +22 -38
  31. package/dist/{stream-import-GZ2QDE3Z.mjs → stream-import-BHXACUCA.mjs} +7 -7
  32. package/dist/{worker-runtime-OWN56GG5.mjs → worker-runtime-JOUCP2L4.mjs} +5 -5
  33. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-kN3uxTW8.js +110 -0
  34. package/dist-cli-web/assets/{BufferResource-BdKXeRZS.js → BufferResource-Dak23r3B.js} +1 -1
  35. package/dist-cli-web/assets/{CanvasRenderer-DDRdIyZ8.js → CanvasRenderer-Cmjtvski.js} +1 -1
  36. package/dist-cli-web/assets/DataDirCleanupNotice-B5tyDzK-.js +1 -0
  37. package/dist-cli-web/assets/{EChartWordcloud-CqknPGui.js → EChartWordcloud-Bd3L3G8I.js} +1 -1
  38. package/dist-cli-web/assets/{Filter-B2eEAPxI.js → Filter-CHKZVYB3.js} +1 -1
  39. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CKf_gC1k.js +1 -0
  40. package/dist-cli-web/assets/{MessageExportModal-CZge6qub.js → MessageExportModal-ODYCcSnk.js} +1 -1
  41. package/dist-cli-web/assets/{PageHeader-CxKbcLDc.js → PageHeader-Bn7Jn8JW.js} +1 -1
  42. package/dist-cli-web/assets/{RelationshipGalaxyCanvas-CwQ63TPi.js → RelationshipGalaxyCanvas-mJhEPzsY.js} +3 -3
  43. package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-BLqISQe5.js → RelationshipGalaxyThreeCanvas-Bf76yzmQ.js} +1 -1
  44. package/dist-cli-web/assets/{RenderTargetSystem-eC_VrDAr.js → RenderTargetSystem-1rM7OF-M.js} +1 -1
  45. package/dist-cli-web/assets/{ThemeCard.vue_vue_type_script_setup_true_lang-DVmpDz05.js → ThemeCard.vue_vue_type_script_setup_true_lang-CADZpPia.js} +1 -1
  46. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-I3FYjhfs.js +1 -0
  47. package/dist-cli-web/assets/{WebGLRenderer-CRp_HC84.js → WebGLRenderer-Y0jQtBvK.js} +1 -1
  48. package/dist-cli-web/assets/{WebGPURenderer-WIUnEhpi.js → WebGPURenderer-BcUvCPhd.js} +1 -1
  49. package/dist-cli-web/assets/{annual-summary-time-range-R3pLPEuN.js → annual-summary-time-range-BIADd8qE.js} +1 -1
  50. package/dist-cli-web/assets/{base-CLwWn3Rs.js → base-BpxxC5Z5.js} +1 -1
  51. package/dist-cli-web/assets/{browserAll-B29Ox2in.js → browserAll-BsR1UaCC.js} +1 -1
  52. package/dist-cli-web/assets/{cli-web-CVLb5Pkq.js → cli-web-BiWUOncc.js} +1 -1
  53. package/dist-cli-web/assets/{dateFormat-T7kMS5IP.js → dateFormat-B6JnNCxp.js} +1 -1
  54. package/dist-cli-web/assets/{fetch-DvrVGAzR.js → fetch-BAJ_VjWE.js} +1 -1
  55. package/dist-cli-web/assets/{fetch-BLi6Jsjg.js → fetch-BNcHe2-O.js} +1 -1
  56. package/dist-cli-web/assets/{fetch-D8hJZa8o.js → fetch-CPloHijF.js} +1 -1
  57. package/dist-cli-web/assets/{fetch-D9sn99zX.js → fetch-Clj_RVUD.js} +1 -1
  58. package/dist-cli-web/assets/{fetch-CYaGyohV.js → fetch-D7vgaLpy.js} +1 -1
  59. package/dist-cli-web/assets/{fetch-DsHf-61a.js → fetch-DGvqctIb.js} +1 -1
  60. package/dist-cli-web/assets/fetch-DSxgaVBO.js +1 -0
  61. package/dist-cli-web/assets/{fetch-BKBlpBl4.js → fetch-DtnhbqTN.js} +1 -1
  62. package/dist-cli-web/assets/{fetch-BBgZQob_.js → fetch-bdY0RMM3.js} +1 -1
  63. package/dist-cli-web/assets/{fetch-L6PKD8-N.js → fetch-bhHY8rO7.js} +1 -1
  64. package/dist-cli-web/assets/index-B6Gq11lw.css +1 -0
  65. package/dist-cli-web/assets/index-BJ2lywiG.js +1 -0
  66. package/dist-cli-web/assets/{index-C4TuoOLM.js → index-BT3_fSP6.js} +2 -2
  67. package/dist-cli-web/assets/{index-CkgUsaeX.js → index-BVZhP1J5.js} +1 -1
  68. package/dist-cli-web/assets/index-Br8r4pu8.js +1 -0
  69. package/dist-cli-web/assets/index-Byok4VaA.css +1 -0
  70. package/dist-cli-web/assets/index-CKnnxOci.js +1 -0
  71. package/dist-cli-web/assets/index-CXnYfvTv.js +137 -0
  72. package/dist-cli-web/assets/index-CsFLLk3T.css +1 -0
  73. package/dist-cli-web/assets/index-CzoOQ7zg.js +1 -0
  74. package/dist-cli-web/assets/{index-C6Mk-Xqt.js → index-D-dTTUGj.js} +1 -1
  75. package/dist-cli-web/assets/index-DEbvEKzi.js +2 -0
  76. package/dist-cli-web/assets/{index-0qcENyvH.js → index-DMYFpctK.js} +1 -1
  77. package/dist-cli-web/assets/index-KO7uPd8W.js +64 -0
  78. package/dist-cli-web/assets/index-lkmJ6dI7.js +1 -0
  79. package/dist-cli-web/assets/{index-D_0qeKKc.js → index-y7xPDpsW.js} +5 -5
  80. package/dist-cli-web/assets/{people-page-header-CCNJOrmK.js → people-page-header-gjTyODWs.js} +1 -1
  81. package/dist-cli-web/assets/{webworkerAll-B2qvP2qR.js → webworkerAll-CfZWlukP.js} +1 -1
  82. package/dist-cli-web/index.html +2 -2
  83. package/package.json +1 -1
  84. package/dist/chunk-2XCNTG4O.mjs.map +0 -1
  85. package/dist/chunk-4LW6443F.mjs.map +0 -1
  86. package/dist/chunk-72RWABYJ.mjs.map +0 -1
  87. package/dist/chunk-INBJ7SND.mjs.map +0 -1
  88. package/dist/chunk-MENKFEPC.mjs.map +0 -1
  89. package/dist/chunk-U6MVJSXX.mjs.map +0 -1
  90. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-B06LYYS9.js +0 -110
  91. package/dist-cli-web/assets/DataDirCleanupNotice-CP8P1lsL.js +0 -1
  92. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-BFaXTz1c.js +0 -1
  93. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-CCH1UQGc.js +0 -1
  94. package/dist-cli-web/assets/fetch-Cm2WR2Cv.js +0 -1
  95. package/dist-cli-web/assets/index-AkF_KqVI.js +0 -1
  96. package/dist-cli-web/assets/index-BVOFyB9E.js +0 -137
  97. package/dist-cli-web/assets/index-BkdOH41D.js +0 -1
  98. package/dist-cli-web/assets/index-CuAy1Xmt.js +0 -64
  99. package/dist-cli-web/assets/index-DeR0Vukh.js +0 -1
  100. package/dist-cli-web/assets/index-DrjoMv9s.css +0 -1
  101. package/dist-cli-web/assets/index-Dx-XvfIK.js +0 -2
  102. package/dist-cli-web/assets/index-Jhwca9kg.css +0 -1
  103. package/dist-cli-web/assets/index-_DrviTnP.js +0 -1
  104. package/dist-cli-web/assets/index-vtF05fh7.css +0 -1
  105. package/dist-cli-web/assets/index-xN0sjOLK.js +0 -1
  106. /package/dist/{chat-command-6IOH2QRF.mjs.map → chat-command-QH7DXCAJ.mjs.map} +0 -0
  107. /package/dist/{chunk-JX6MFS6F.mjs.map → chunk-2Q3HHVTS.mjs.map} +0 -0
  108. /package/dist/{chunk-UMBEHBIZ.mjs.map → chunk-6U2QZO3N.mjs.map} +0 -0
  109. /package/dist/{chunk-52P5ZRBD.mjs.map → chunk-AWGXYFIC.mjs.map} +0 -0
  110. /package/dist/{chunk-4RLZFGO5.mjs.map → chunk-C2PD3BS7.mjs.map} +0 -0
  111. /package/dist/{chunk-652KEAX3.mjs.map → chunk-SWUTRDGZ.mjs.map} +0 -0
  112. /package/dist/{http-HSK46XEU.mjs.map → http-D2F4QTQW.mjs.map} +0 -0
  113. /package/dist/{import-DF2WD2HE.mjs.map → import-H7X2JU2O.mjs.map} +0 -0
  114. /package/dist/{mcp-A2RND7KN.mjs.map → mcp-UURXRGDF.mjs.map} +0 -0
  115. /package/dist/{src-SHFHW2QB.mjs.map → src-MHCO4HYY.mjs.map} +0 -0
  116. /package/dist/{stream-import-GZ2QDE3Z.mjs.map → stream-import-BHXACUCA.mjs.map} +0 -0
  117. /package/dist/{worker-runtime-OWN56GG5.mjs.map → worker-runtime-JOUCP2L4.mjs.map} +0 -0
@@ -16,10 +16,10 @@ import {
16
16
  resolveDefaultBatchConcurrency,
17
17
  streamingImport,
18
18
  withDataDirImportLock
19
- } from "./chunk-4LW6443F.mjs";
19
+ } from "./chunk-AWXHYTD5.mjs";
20
20
  import {
21
21
  DataDirCompatibilityError
22
- } from "./chunk-INBJ7SND.mjs";
22
+ } from "./chunk-2WYXD5ZP.mjs";
23
23
 
24
24
  // src/import/stream-import.ts
25
25
  import * as crypto from "crypto";
@@ -160,13 +160,15 @@ async function autoImportUnlocked(dbManager, filePath, options, updateCompatibil
160
160
  updateCompatibilityGate,
161
161
  itemProgress
162
162
  ),
163
- appendSession: (targetSessionId, sourcePath, sourceFormatOptions, itemProgress) => incrementalImportUnlocked(
163
+ appendSession: (targetSessionId, sourcePath, sourceFormatOptions, itemProgress, context) => incrementalImportUnlocked(
164
164
  dbManager,
165
165
  targetSessionId,
166
166
  sourcePath,
167
167
  {
168
168
  ...sourceFormatOptions,
169
- onProgress: itemProgress ?? progressAdapter
169
+ onProgress: itemProgress ?? progressAdapter,
170
+ platformMessageIdScope: context?.platformMessageIdScope,
171
+ senderPlatformIdMappings: context?.senderPlatformIdMappings
170
172
  },
171
173
  updateCompatibilityGate
172
174
  )
@@ -207,13 +209,15 @@ async function autoImportBatch2(dbManager, items, options = {}) {
207
209
  false,
208
210
  itemProgress
209
211
  ),
210
- appendSession: (targetSessionId, sourcePath, sourceFormatOptions, itemProgress) => incrementalImportUnlocked(
212
+ appendSession: (targetSessionId, sourcePath, sourceFormatOptions, itemProgress, context) => incrementalImportUnlocked(
211
213
  dbManager,
212
214
  targetSessionId,
213
215
  sourcePath,
214
216
  {
215
217
  ...sourceFormatOptions,
216
- onProgress: itemProgress
218
+ onProgress: itemProgress,
219
+ platformMessageIdScope: context?.platformMessageIdScope,
220
+ senderPlatformIdMappings: context?.senderPlatformIdMappings
217
221
  },
218
222
  false
219
223
  )
@@ -278,9 +282,11 @@ async function analyzeAutoImport(dbManager, filePath, options) {
278
282
  formatId: typeof sourceFormatOptions?.formatId === "string" ? sourceFormatOptions.formatId : void 0,
279
283
  chatIndex: typeof sourceFormatOptions?.chatIndex === "number" ? sourceFormatOptions.chatIndex : void 0
280
284
  }),
281
- analyzeAppendSession: (targetSessionId, sourcePath, sourceFormatOptions) => analyzeIncrementalImport(targetSessionId, sourcePath, buildIncrementalDeps(dbManager, progressAdapter), {
285
+ analyzeAppendSession: (targetSessionId, sourcePath, sourceFormatOptions, context) => analyzeIncrementalImport(targetSessionId, sourcePath, buildIncrementalDeps(dbManager, progressAdapter), {
282
286
  formatId: typeof sourceFormatOptions?.formatId === "string" ? sourceFormatOptions.formatId : void 0,
283
- chatIndex: typeof sourceFormatOptions?.chatIndex === "number" ? sourceFormatOptions.chatIndex : void 0
287
+ chatIndex: typeof sourceFormatOptions?.chatIndex === "number" ? sourceFormatOptions.chatIndex : void 0,
288
+ platformMessageIdScope: context?.platformMessageIdScope,
289
+ senderPlatformIdMappings: context?.senderPlatformIdMappings
284
290
  })
285
291
  },
286
292
  {
@@ -369,4 +375,4 @@ export {
369
375
  analyzeIncrementalImport2 as analyzeIncrementalImport,
370
376
  analyzeNewImport2 as analyzeNewImport
371
377
  };
372
- //# sourceMappingURL=chunk-U6MVJSXX.mjs.map
378
+ //# sourceMappingURL=chunk-3X26JJIP.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, indexes, and format fallback).\n */\n\nimport type { DatabaseManager } from '@openchatlab/node-runtime'\nimport {\n DataDirCompatibilityError,\n IMPORT_IN_PROGRESS_ERROR_KEY,\n ImportInProgressError,\n resolveDefaultBatchConcurrency,\n analyzeAutoImportFile as sharedAnalyzeAutoImportFile,\n autoImportBatch as sharedAutoImportBatch,\n autoImportFile as sharedAutoImportFile,\n streamingImport,\n analyzeNewImport as sharedAnalyzeNewImport,\n analyzeIncrementalImport as sharedAnalyzeIncremental,\n incrementalImport as sharedIncrementalImport,\n withDataDirImportLock,\n} from '@openchatlab/node-runtime'\nimport type {\n StreamImportResult,\n StreamImportDeps,\n ImportProgressCallback,\n IncrementalImportResult,\n IncrementalAnalyzeResult,\n IncrementalImportDeps,\n ImportOptions,\n AnalyzeNewImportResult,\n AutoImportAnalysisResult,\n AutoImportBatchItemResult,\n AutoImportResult,\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 sessionGapThreshold?: 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(\n dbManager: DatabaseManager,\n onProgress?: ImportProgressCallback,\n sessionGapThreshold?: number\n): 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 sessionGapThreshold,\n }\n}\n\nfunction createProgressAdapter(onProgress?: (progress: StreamImportProgress) => void): ImportProgressCallback {\n if (!onProgress) return () => {}\n return (progress) => onProgress(createProgressAdapterValue(progress))\n}\n\nfunction createProgressAdapterValue(progress: Parameters<ImportProgressCallback>[0]): StreamImportProgress {\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 'saving':\n stage = 'saving'\n pct = 80\n break\n case 'indexing':\n stage = 'indexing'\n pct = 90\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 return {\n stage,\n progress: pct,\n message: progress.message || '',\n bytesRead: progress.bytesRead,\n totalBytes: progress.totalBytes,\n messagesProcessed: progress.messagesProcessed,\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 and deferred indexes.\n */\nasync function streamImportUnlocked(\n dbManager: DatabaseManager,\n filePath: string,\n options?: StreamImportOptions,\n updateCompatibilityGate = true,\n progressOverride?: ImportProgressCallback\n): Promise<StreamImportResult> {\n const { formatId, chatIndex, sessionGapThreshold, 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 = progressOverride ?? createProgressAdapter(onProgress)\n\n const deps = buildStreamImportDeps(dbManager, progressAdapter, sessionGapThreshold)\n const result = await streamingImport(filePath, deps, formatOptions, sessionId)\n if (!result.success || !result.sessionId) return result\n\n if (!updateCompatibilityGate) 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\nexport async function streamImport(\n dbManager: DatabaseManager,\n filePath: string,\n options?: StreamImportOptions\n): Promise<StreamImportResult> {\n try {\n return await withDataDirImportLock(dbManager.getUserDataDir(), () =>\n streamImportUnlocked(dbManager, filePath, options)\n )\n } catch (error) {\n if (error instanceof ImportInProgressError) {\n return { success: false, error: IMPORT_IN_PROGRESS_ERROR_KEY }\n }\n throw error\n }\n}\n\nexport async function autoImport(\n dbManager: DatabaseManager,\n filePath: string,\n options?: StreamImportOptions\n): Promise<AutoImportResult> {\n try {\n return await withDataDirImportLock(dbManager.getUserDataDir(), () =>\n autoImportUnlocked(dbManager, filePath, options)\n )\n } catch (error) {\n if (error instanceof ImportInProgressError) {\n return { success: false, error: IMPORT_IN_PROGRESS_ERROR_KEY }\n }\n throw error\n }\n}\n\nasync function autoImportUnlocked(\n dbManager: DatabaseManager,\n filePath: string,\n options?: StreamImportOptions,\n updateCompatibilityGate = true\n): Promise<AutoImportResult> {\n const { formatId, chatIndex, onProgress, sessionId } = options ?? {}\n const formatOptions: Record<string, unknown> = {}\n if (formatId) formatOptions.formatId = formatId\n if (chatIndex !== undefined) formatOptions.chatIndex = chatIndex\n const progressAdapter = createProgressAdapter(onProgress)\n\n return sharedAutoImportFile(\n filePath,\n {\n listSessionIds: () => dbManager.listSessionIds(),\n openReadonly: (candidateSessionId) => dbManager.openRawSessionDatabase(candidateSessionId, { readonly: true }),\n onProgress: progressAdapter,\n sessionExists: (candidateSessionId) => dbManager.listSessionIds().includes(candidateSessionId),\n createSession: (sourcePath, sourceFormatOptions, explicitSessionId, itemProgress) =>\n streamImportUnlocked(\n dbManager,\n sourcePath,\n {\n ...options,\n ...sourceFormatOptions,\n sessionId: explicitSessionId,\n },\n updateCompatibilityGate,\n itemProgress\n ),\n appendSession: (targetSessionId, sourcePath, sourceFormatOptions, itemProgress, context) =>\n incrementalImportUnlocked(\n dbManager,\n targetSessionId,\n sourcePath,\n {\n ...sourceFormatOptions,\n onProgress: itemProgress ?? progressAdapter,\n platformMessageIdScope: context?.platformMessageIdScope,\n senderPlatformIdMappings: context?.senderPlatformIdMappings,\n },\n updateCompatibilityGate\n ),\n },\n {\n explicitSessionId: sessionId,\n formatOptions,\n }\n )\n}\n\nexport interface AutoImportBatchRequest {\n id: string\n filePath: string\n formatId?: string\n chatIndex?: number\n sessionId?: string\n}\n\nexport interface AutoImportBatchOptions {\n concurrency?: number\n sessionGapThreshold?: number\n signal?: AbortSignal\n onItemStart?: (item: AutoImportBatchRequest, index: number) => void\n onItemProgress?: (item: AutoImportBatchRequest, index: number, progress: StreamImportProgress) => void\n onItemComplete?: (item: AutoImportBatchRequest, index: number, result: AutoImportBatchItemResult) => void\n}\n\nexport async function autoImportBatch(\n dbManager: DatabaseManager,\n items: AutoImportBatchRequest[],\n options: AutoImportBatchOptions = {}\n): Promise<AutoImportBatchItemResult[]> {\n try {\n return await withDataDirImportLock(dbManager.getUserDataDir(), async () => {\n const results = await sharedAutoImportBatch(\n items.map((item) => ({\n id: item.id,\n filePath: item.filePath,\n options: {\n explicitSessionId: item.sessionId,\n formatOptions: {\n ...(item.formatId ? { formatId: item.formatId } : {}),\n ...(item.chatIndex !== undefined ? { chatIndex: item.chatIndex } : {}),\n },\n },\n })),\n {\n listSessionIds: () => dbManager.listSessionIds(),\n openReadonly: (candidateSessionId) =>\n dbManager.openRawSessionDatabase(candidateSessionId, { readonly: true }),\n sessionExists: (candidateSessionId) => dbManager.listSessionIds().includes(candidateSessionId),\n createSession: (sourcePath, sourceFormatOptions, explicitSessionId, itemProgress) =>\n streamImportUnlocked(\n dbManager,\n sourcePath,\n {\n ...sourceFormatOptions,\n sessionId: explicitSessionId,\n sessionGapThreshold: options.sessionGapThreshold,\n },\n false,\n itemProgress\n ),\n appendSession: (targetSessionId, sourcePath, sourceFormatOptions, itemProgress, context) =>\n incrementalImportUnlocked(\n dbManager,\n targetSessionId,\n sourcePath,\n {\n ...sourceFormatOptions,\n onProgress: itemProgress,\n platformMessageIdScope: context?.platformMessageIdScope,\n senderPlatformIdMappings: context?.senderPlatformIdMappings,\n },\n false\n ),\n },\n {\n concurrency: options.concurrency ?? resolveDefaultBatchConcurrency(items.length),\n signal: options.signal,\n onItemStart: (_item, index) => options.onItemStart?.(items[index], index),\n onItemProgress: (_item, index, progress) =>\n options.onItemProgress?.(items[index], index, createProgressAdapterValue(progress)),\n onItemComplete: (_item, index, result) => options.onItemComplete?.(items[index], index, result),\n }\n )\n\n if (results.some((result) => result.status === 'success')) {\n try {\n dbManager.raiseCurrentChatDbCompatibilityGate()\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n for (const result of results) {\n if (result.status === 'success' && result.result.importMode === 'created' && result.result.sessionId) {\n deleteSessionDatabase(dbManager, result.result.sessionId)\n }\n }\n return results.map((result) =>\n result.status === 'success'\n ? {\n id: result.id,\n status: 'failed' as const,\n error: message,\n result: { ...result.result, success: false, error: message },\n }\n : result\n )\n }\n }\n return results\n })\n } catch (error) {\n if (error instanceof ImportInProgressError) {\n return items.map((item) => ({\n id: item.id,\n status: 'failed' as const,\n error: IMPORT_IN_PROGRESS_ERROR_KEY,\n }))\n }\n throw error\n }\n}\n\nexport async function analyzeAutoImport(\n dbManager: DatabaseManager,\n filePath: string,\n options?: StreamImportOptions\n): Promise<AutoImportAnalysisResult> {\n const { formatId, chatIndex, onProgress, sessionId } = options ?? {}\n const formatOptions: Record<string, unknown> = {}\n if (formatId) formatOptions.formatId = formatId\n if (chatIndex !== undefined) formatOptions.chatIndex = chatIndex\n const progressAdapter = createProgressAdapter(onProgress)\n let readonlySessionIds: string[] | undefined\n const listSessionIdsReadonly = (): string[] => (readonlySessionIds ??= dbManager.listSessionIdsReadonly())\n\n return sharedAnalyzeAutoImportFile(\n filePath,\n {\n listSessionIds: listSessionIdsReadonly,\n openReadonly: (candidateSessionId) => dbManager.openRawSessionDatabase(candidateSessionId, { readonly: true }),\n onProgress: progressAdapter,\n sessionExists: (candidateSessionId) => listSessionIdsReadonly().includes(candidateSessionId),\n analyzeCreateSession: (sourcePath, sourceFormatOptions) =>\n sharedAnalyzeNewImport(sourcePath, progressAdapter, {\n formatId: typeof sourceFormatOptions?.formatId === 'string' ? sourceFormatOptions.formatId : undefined,\n chatIndex: typeof sourceFormatOptions?.chatIndex === 'number' ? sourceFormatOptions.chatIndex : undefined,\n }),\n analyzeAppendSession: (targetSessionId, sourcePath, sourceFormatOptions, context) =>\n sharedAnalyzeIncremental(targetSessionId, sourcePath, buildIncrementalDeps(dbManager, progressAdapter), {\n formatId: typeof sourceFormatOptions?.formatId === 'string' ? sourceFormatOptions.formatId : undefined,\n chatIndex: typeof sourceFormatOptions?.chatIndex === 'number' ? sourceFormatOptions.chatIndex : undefined,\n platformMessageIdScope: context?.platformMessageIdScope,\n senderPlatformIdMappings: context?.senderPlatformIdMappings,\n }),\n },\n {\n explicitSessionId: sessionId,\n formatOptions,\n }\n )\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\nasync function incrementalImportUnlocked(\n dbManager: DatabaseManager,\n sessionId: string,\n filePath: string,\n options?: ImportOptions & { onProgress?: ImportProgressCallback },\n updateCompatibilityGate = true\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 if (!updateCompatibilityGate) 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 incrementalImport(\n dbManager: DatabaseManager,\n sessionId: string,\n filePath: string,\n options?: ImportOptions & { onProgress?: ImportProgressCallback }\n): Promise<IncrementalImportResult> {\n try {\n return await withDataDirImportLock(dbManager.getUserDataDir(), () =>\n incrementalImportUnlocked(dbManager, sessionId, filePath, options)\n )\n } catch (error) {\n if (error instanceof ImportInProgressError) {\n return { success: false, newMessageCount: 0, error: IMPORT_IN_PROGRESS_ERROR_KEY }\n }\n throw error\n }\n}\n\nexport async function analyzeIncrementalImport(\n dbManager: DatabaseManager,\n sessionId: string,\n filePath: string,\n onProgress?: ImportProgressCallback,\n options?: ImportOptions\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 options\n )\n if (compatibilityError) throw compatibilityError\n return result\n}\n\nexport async function analyzeNewImport(\n filePath: string,\n onProgress?: ImportProgressCallback,\n options?: Pick<ImportOptions, 'formatId' | 'chatIndex'>\n): Promise<AnalyzeNewImportResult> {\n return sharedAnalyzeNewImport(filePath, onProgress ?? (() => {}), options)\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 AutoImportAnalysisResult,\n ImportOptions,\n AutoImportResult,\n}\n"],"mappings":"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","names":["autoImportBatch","incrementalImport","analyzeIncrementalImport","analyzeNewImport"]}
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
7
  import {
8
8
  createLocalEmbeddingRuntimeManager
9
- } from "./chunk-4LW6443F.mjs";
9
+ } from "./chunk-AWXHYTD5.mjs";
10
10
 
11
11
  // src/semantic-index/local-runtime.ts
12
12
  import path from "path";
@@ -38,4 +38,4 @@ export {
38
38
  resolveCliLocalEmbeddingRuntimeConfig,
39
39
  installCliLocalEmbeddingRuntime
40
40
  };
41
- //# sourceMappingURL=chunk-UMBEHBIZ.mjs.map
41
+ //# sourceMappingURL=chunk-6U2QZO3N.mjs.map
@@ -21,7 +21,7 @@ import {
21
21
  setCache,
22
22
  shouldEnableContactsEntry,
23
23
  shouldScopeContactToSession
24
- } from "./chunk-INBJ7SND.mjs";
24
+ } from "./chunk-2WYXD5ZP.mjs";
25
25
 
26
26
  // ../../packages/node-runtime/src/services/contacts/facts-cache.ts
27
27
  var CONTACTS_FACTS_FORMAT_VERSION = 1;
@@ -517,4 +517,4 @@ export {
517
517
  computeContactsSnapshot,
518
518
  createEmptyContactsDiagnostics
519
519
  };
520
- //# sourceMappingURL=chunk-52P5ZRBD.mjs.map
520
+ //# sourceMappingURL=chunk-AWGXYFIC.mjs.map