chatlab-cli 0.26.1 → 0.26.2

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 (69) hide show
  1. package/dist/{chat-command-T3Z4O4M5.mjs → chat-command-BVIG2LCO.mjs} +4 -4
  2. package/dist/{chunk-3APSMVOM.mjs → chunk-3XFHIQIW.mjs} +2 -2
  3. package/dist/{chunk-MZG2GLJR.mjs → chunk-6AOEMUCM.mjs} +2 -2
  4. package/dist/{chunk-AZZYKUBR.mjs → chunk-GBQQJJKK.mjs} +84 -44
  5. package/dist/chunk-GBQQJJKK.mjs.map +1 -0
  6. package/dist/{chunk-SC77N66X.mjs → chunk-GTXX72AQ.mjs} +28 -13
  7. package/dist/chunk-GTXX72AQ.mjs.map +1 -0
  8. package/dist/{chunk-6O2SW5GL.mjs → chunk-JFSTXSX2.mjs} +3 -3
  9. package/dist/{chunk-FAOZNMPK.mjs → chunk-QKQRV7RV.mjs} +2 -2
  10. package/dist/{chunk-FACKH2BR.mjs → chunk-SCE4YL3M.mjs} +8 -4
  11. package/dist/chunk-SCE4YL3M.mjs.map +1 -0
  12. package/dist/{chunk-GUGKY2GV.mjs → chunk-TMZC3SNX.mjs} +4742 -2891
  13. package/dist/chunk-TMZC3SNX.mjs.map +1 -0
  14. package/dist/cli.mjs +3 -3
  15. package/dist/{http-6LQUOYQ6.mjs → http-NLFLQDI7.mjs} +8 -8
  16. package/dist/{import-B2MAIBAK.mjs → import-ILK6MGYR.mjs} +4 -4
  17. package/dist/index.mjs +8 -8
  18. package/dist/{mcp-ZMMYW46I.mjs → mcp-FOLR5XJL.mjs} +7 -7
  19. package/dist/src-OQN3VE73.mjs +439 -0
  20. package/dist/{stream-import-FHFBCEDV.mjs → stream-import-F5QI2HTO.mjs} +3 -3
  21. package/dist/stream-import-F5QI2HTO.mjs.map +1 -0
  22. package/dist-web/assets/DebugToolsPanel.vue_vue_type_script_setup_true_lang-D9mCNaYM.js +182 -0
  23. package/dist-web/assets/{MessageExportModal-B8DKeSAH.js → MessageExportModal-ttP_JPqO.js} +1 -1
  24. package/dist-web/assets/{electron-C-aMus7e.js → electron-BeJHY587.js} +1 -1
  25. package/dist-web/assets/{electron-dBbXcMDB.js → electron-Dbml-SPN.js} +1 -1
  26. package/dist-web/assets/{fetch-B26JuD67.js → fetch-4s20GRbb.js} +1 -1
  27. package/dist-web/assets/{fetch-CV8jezsM.js → fetch-B7USXx9R.js} +1 -1
  28. package/dist-web/assets/{fetch-BSJY7tRo.js → fetch-BETFYYe1.js} +1 -1
  29. package/dist-web/assets/{fetch-phbrO2bY.js → fetch-DBJ7Xkjt.js} +1 -1
  30. package/dist-web/assets/{fetch-BLKibnXa.js → fetch-DW8r_JmP.js} +1 -1
  31. package/dist-web/assets/fetch-DcEBAz_3.js +1 -0
  32. package/dist-web/assets/{fetch-BNNqdS2B.js → fetch-DsCNr_M0.js} +1 -1
  33. package/dist-web/assets/{fetch-CvnJ4Jgf.js → fetch-DtXUkazy.js} +1 -1
  34. package/dist-web/assets/{fetch-xB6cl_1L.js → fetch-H4B1CK_T.js} +1 -1
  35. package/dist-web/assets/{fetch-DP3yNfJM.js → fetch-rtQEc8Bu.js} +1 -1
  36. package/dist-web/assets/index-C2ts-hTr.js +173 -0
  37. package/dist-web/assets/index-CYMTvtEI.js +24 -0
  38. package/dist-web/assets/index-CjnMyejM.css +1 -0
  39. package/dist-web/assets/index-CsxrXMkt.js +2 -0
  40. package/dist-web/assets/index-DkownpUj.js +163 -0
  41. package/dist-web/assets/{index-DJQFNVUJ.js → index-Dov-rTKE.js} +1 -1
  42. package/dist-web/assets/index-Dtm2oajn.css +1 -0
  43. package/dist-web/assets/{index-CX2FucK5.css → index-LCedyGl2.css} +1 -1
  44. package/dist-web/assets/index-m7v4PP7r.js +11 -0
  45. package/dist-web/assets/{web-DUQU-v8U.js → web-1-WNRDnP.js} +1 -1
  46. package/dist-web/index.html +2 -2
  47. package/package.json +1 -1
  48. package/dist/chunk-AZZYKUBR.mjs.map +0 -1
  49. package/dist/chunk-FACKH2BR.mjs.map +0 -1
  50. package/dist/chunk-GUGKY2GV.mjs.map +0 -1
  51. package/dist/chunk-SC77N66X.mjs.map +0 -1
  52. package/dist-web/assets/DebugToolsPanel.vue_vue_type_script_setup_true_lang-CgtTQTfN.js +0 -182
  53. package/dist-web/assets/fetch-B-LdQP9s.js +0 -1
  54. package/dist-web/assets/index-8Zcs8peI.css +0 -1
  55. package/dist-web/assets/index-B_lOzUD8.js +0 -2
  56. package/dist-web/assets/index-BvWcJc3c.js +0 -173
  57. package/dist-web/assets/index-CSDI5pAA.js +0 -24
  58. package/dist-web/assets/index-DZ6Szt_y.js +0 -163
  59. package/dist-web/assets/index-DhpclWeF.js +0 -11
  60. package/dist-web/assets/index-Dhql4DJr.css +0 -1
  61. /package/dist/{chat-command-T3Z4O4M5.mjs.map → chat-command-BVIG2LCO.mjs.map} +0 -0
  62. /package/dist/{chunk-3APSMVOM.mjs.map → chunk-3XFHIQIW.mjs.map} +0 -0
  63. /package/dist/{chunk-MZG2GLJR.mjs.map → chunk-6AOEMUCM.mjs.map} +0 -0
  64. /package/dist/{chunk-6O2SW5GL.mjs.map → chunk-JFSTXSX2.mjs.map} +0 -0
  65. /package/dist/{chunk-FAOZNMPK.mjs.map → chunk-QKQRV7RV.mjs.map} +0 -0
  66. /package/dist/{http-6LQUOYQ6.mjs.map → http-NLFLQDI7.mjs.map} +0 -0
  67. /package/dist/{import-B2MAIBAK.mjs.map → import-ILK6MGYR.mjs.map} +0 -0
  68. /package/dist/{mcp-ZMMYW46I.mjs.map → mcp-FOLR5XJL.mjs.map} +0 -0
  69. /package/dist/{stream-import-FHFBCEDV.mjs.map → src-OQN3VE73.mjs.map} +0 -0
@@ -6,9 +6,9 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __pathDirname(__filename);
7
7
  import {
8
8
  createCliRunAgentStream
9
- } from "./chunk-6O2SW5GL.mjs";
10
- import "./chunk-FACKH2BR.mjs";
11
- import "./chunk-GUGKY2GV.mjs";
9
+ } from "./chunk-JFSTXSX2.mjs";
10
+ import "./chunk-SCE4YL3M.mjs";
11
+ import "./chunk-TMZC3SNX.mjs";
12
12
  import "./chunk-VSOWNKPA.mjs";
13
13
 
14
14
  // src/ai/chat-command.ts
@@ -301,4 +301,4 @@ export {
301
301
  runChatCommand,
302
302
  runChatTurn
303
303
  };
304
- //# sourceMappingURL=chat-command-T3Z4O4M5.mjs.map
304
+ //# sourceMappingURL=chat-command-BVIG2LCO.mjs.map
@@ -10,7 +10,7 @@ import {
10
10
  buildMemberIdMap,
11
11
  generateMessageKey,
12
12
  writeParseResultToDb
13
- } from "./chunk-GUGKY2GV.mjs";
13
+ } from "./chunk-TMZC3SNX.mjs";
14
14
 
15
15
  // src/import/chatlab-reader.ts
16
16
  import * as fs from "fs";
@@ -384,4 +384,4 @@ export {
384
384
  parseFile,
385
385
  importData
386
386
  };
387
- //# sourceMappingURL=chunk-3APSMVOM.mjs.map
387
+ //# sourceMappingURL=chunk-3XFHIQIW.mjs.map
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  DataDirCompatibilityError,
12
12
  assertDataDirCompatible
13
- } from "./chunk-GUGKY2GV.mjs";
13
+ } from "./chunk-TMZC3SNX.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-MZG2GLJR.mjs.map
40
+ //# sourceMappingURL=chunk-6AOEMUCM.mjs.map
@@ -7,28 +7,31 @@ const __dirname = __pathDirname(__filename);
7
7
  import {
8
8
  importData,
9
9
  parseFile
10
- } from "./chunk-3APSMVOM.mjs";
10
+ } from "./chunk-3XFHIQIW.mjs";
11
11
  import {
12
12
  analyzeIncrementalImport,
13
13
  analyzeNewImport,
14
14
  incrementalImport,
15
15
  streamImport
16
- } from "./chunk-FAOZNMPK.mjs";
16
+ } from "./chunk-QKQRV7RV.mjs";
17
17
  import {
18
18
  assertCliDataDirCompatible
19
- } from "./chunk-MZG2GLJR.mjs";
19
+ } from "./chunk-6AOEMUCM.mjs";
20
20
  import {
21
21
  getVersion
22
22
  } from "./chunk-5ADKYYNA.mjs";
23
+ import {
24
+ resolveCliPath
25
+ } from "./chunk-FJ35V3TE.mjs";
23
26
  import {
24
27
  closeServerAiLogger,
25
28
  createCliRunAgentStream,
26
29
  initServerAiLogger
27
- } from "./chunk-6O2SW5GL.mjs";
30
+ } from "./chunk-JFSTXSX2.mjs";
28
31
  import {
29
32
  AGENT_TOOL_REGISTRY,
30
33
  CoreDataProvider
31
- } from "./chunk-FACKH2BR.mjs";
34
+ } from "./chunk-SCE4YL3M.mjs";
32
35
  import {
33
36
  AIChatManager,
34
37
  ALL_MIGRATIONS,
@@ -104,6 +107,7 @@ import {
104
107
  loadConfig,
105
108
  member_service_exports,
106
109
  mergeRulesForLocale,
110
+ owner_profile_service_exports,
107
111
  queryMessages,
108
112
  resolveApiKey,
109
113
  runSimpleLlmStream,
@@ -119,10 +123,7 @@ import {
119
123
  verifyCliDataPath,
120
124
  writeAuthProfile,
121
125
  writeConfigField
122
- } from "./chunk-GUGKY2GV.mjs";
123
- import {
124
- resolveCliPath
125
- } from "./chunk-FJ35V3TE.mjs";
126
+ } from "./chunk-TMZC3SNX.mjs";
126
127
 
127
128
  // src/http/index.ts
128
129
  import * as fs9 from "fs";
@@ -444,6 +445,11 @@ function registerRestSessionRoutes(server2, ctx) {
444
445
  // ../../packages/http-routes/src/routes/web/sessions.ts
445
446
  function registerSessionRoutes(server2, ctx) {
446
447
  const { sessionAdapter: adapter } = ctx;
448
+ let preferencesInstance = null;
449
+ const preferences = () => {
450
+ preferencesInstance ??= ctx.preferencesManager ?? new PreferencesManager(ctx.pathProvider.getSystemDir());
451
+ return preferencesInstance;
452
+ };
447
453
  server2.get("/_web/sessions", async () => {
448
454
  return session_service_exports.listAnalysisSessions(adapter);
449
455
  });
@@ -477,6 +483,24 @@ function registerSessionRoutes(server2, ctx) {
477
483
  return { success: true };
478
484
  }
479
485
  );
486
+ server2.post("/_web/sessions/:id/owner/apply-profile", async (request) => {
487
+ return owner_profile_service_exports.tryApplyOwnerProfile(adapter, preferences(), request.params.id);
488
+ });
489
+ server2.post(
490
+ "/_web/sessions/:id/owner/select",
491
+ async (request) => {
492
+ return owner_profile_service_exports.setOwnerAndApplyProfile(
493
+ adapter,
494
+ preferences(),
495
+ request.params.id,
496
+ request.body.ownerPlatformId
497
+ );
498
+ }
499
+ );
500
+ server2.post("/_web/sessions/:id/owner/dismiss-prompt", async (request) => {
501
+ owner_profile_service_exports.dismissOwnerPrompt(preferences(), request.params.id);
502
+ return { success: true };
503
+ });
480
504
  }
481
505
 
482
506
  // ../../packages/http-routes/src/routes/web/members.ts
@@ -1812,40 +1836,41 @@ function registerCacheRoutes(server2, ctx) {
1812
1836
 
1813
1837
  // ../../packages/http-routes/src/register.ts
1814
1838
  function registerSharedRoutes(server2, ctx, options) {
1815
- registerSystemRoutes(server2, ctx);
1816
- registerRestSessionRoutes(server2, ctx);
1817
- registerSessionRoutes(server2, ctx);
1818
- registerMemberRoutes(server2, ctx);
1819
- registerPreferencesRoutes(server2, ctx);
1820
- registerAnalyticsRoutes(server2, ctx);
1821
- registerSqlRoutes(server2, ctx);
1822
- registerSessionIndexRoutes(server2, ctx);
1823
- registerExportRoutes(server2, ctx);
1824
- registerNlpRoutes(server2, ctx);
1839
+ const resolvedCtx = ctx.preferencesManager ? ctx : { ...ctx, preferencesManager: new PreferencesManager(ctx.pathProvider.getSystemDir()) };
1840
+ registerSystemRoutes(server2, resolvedCtx);
1841
+ registerRestSessionRoutes(server2, resolvedCtx);
1842
+ registerSessionRoutes(server2, resolvedCtx);
1843
+ registerMemberRoutes(server2, resolvedCtx);
1844
+ registerPreferencesRoutes(server2, resolvedCtx);
1845
+ registerAnalyticsRoutes(server2, resolvedCtx);
1846
+ registerSqlRoutes(server2, resolvedCtx);
1847
+ registerSessionIndexRoutes(server2, resolvedCtx);
1848
+ registerExportRoutes(server2, resolvedCtx);
1849
+ registerNlpRoutes(server2, resolvedCtx);
1825
1850
  if (options?.requireAi) {
1826
1851
  const missing = [];
1827
- if (!ctx.aiDataDir) missing.push("aiDataDir");
1828
- if (!ctx.aiChatManager) missing.push("aiChatManager");
1829
- if (!ctx.assistantManager) missing.push("assistantManager");
1830
- if (!ctx.skillManagerCore) missing.push("skillManagerCore");
1831
- if (!ctx.llmConfigStore) missing.push("llmConfigStore");
1832
- if (!ctx.customProviderStore) missing.push("customProviderStore");
1833
- if (!ctx.customModelStore) missing.push("customModelStore");
1834
- if (!ctx.runAgentStream) missing.push("runAgentStream");
1852
+ if (!resolvedCtx.aiDataDir) missing.push("aiDataDir");
1853
+ if (!resolvedCtx.aiChatManager) missing.push("aiChatManager");
1854
+ if (!resolvedCtx.assistantManager) missing.push("assistantManager");
1855
+ if (!resolvedCtx.skillManagerCore) missing.push("skillManagerCore");
1856
+ if (!resolvedCtx.llmConfigStore) missing.push("llmConfigStore");
1857
+ if (!resolvedCtx.customProviderStore) missing.push("customProviderStore");
1858
+ if (!resolvedCtx.customModelStore) missing.push("customModelStore");
1859
+ if (!resolvedCtx.runAgentStream) missing.push("runAgentStream");
1835
1860
  if (missing.length > 0) {
1836
1861
  throw new Error(`[http-routes] requireAi is set but missing AI dependencies: ${missing.join(", ")}`);
1837
1862
  }
1838
1863
  }
1839
- registerAiAssistantRoutes(server2, ctx);
1840
- registerAiSkillRoutes(server2, ctx);
1841
- registerAiLlmRoutes(server2, ctx);
1842
- registerAiLlmStreamRoutes(server2, ctx);
1843
- registerAiAgentStreamRoutes(server2, ctx);
1844
- registerAiToolRoutes(server2, ctx);
1845
- registerAiChatRoutes(server2, ctx);
1846
- registerAiSummaryRoutes(server2, ctx);
1847
- registerMergeRoutes(server2, ctx);
1848
- registerCacheRoutes(server2, ctx);
1864
+ registerAiAssistantRoutes(server2, resolvedCtx);
1865
+ registerAiSkillRoutes(server2, resolvedCtx);
1866
+ registerAiLlmRoutes(server2, resolvedCtx);
1867
+ registerAiLlmStreamRoutes(server2, resolvedCtx);
1868
+ registerAiAgentStreamRoutes(server2, resolvedCtx);
1869
+ registerAiToolRoutes(server2, resolvedCtx);
1870
+ registerAiChatRoutes(server2, resolvedCtx);
1871
+ registerAiSummaryRoutes(server2, resolvedCtx);
1872
+ registerMergeRoutes(server2, resolvedCtx);
1873
+ registerCacheRoutes(server2, resolvedCtx);
1849
1874
  }
1850
1875
 
1851
1876
  // ../../packages/http-routes/src/auth.ts
@@ -2318,7 +2343,7 @@ function registerWebRoutes(server2, dbManager2, options) {
2318
2343
  const resolvedPathProvider = options?.pathProvider ?? fallbackPathProvider;
2319
2344
  const ai = options?.aiContext;
2320
2345
  const cliStreamImport = async (dm, filePath) => {
2321
- const { streamImport: streamImport2 } = await import("./stream-import-FHFBCEDV.mjs");
2346
+ const { streamImport: streamImport2 } = await import("./stream-import-F5QI2HTO.mjs");
2322
2347
  const result = await streamImport2(dm, filePath);
2323
2348
  if (!result.sessionId) throw new Error("Import succeeded but no sessionId returned");
2324
2349
  return { sessionId: result.sessionId };
@@ -2748,6 +2773,7 @@ var PullEngine = class {
2748
2773
  dsManager;
2749
2774
  logger;
2750
2775
  isImporting;
2776
+ onSessionImported;
2751
2777
  pullingSourceIds = /* @__PURE__ */ new Set();
2752
2778
  progressMap = /* @__PURE__ */ new Map();
2753
2779
  constructor(options) {
@@ -2757,6 +2783,7 @@ var PullEngine = class {
2757
2783
  this.dsManager = options.dsManager;
2758
2784
  this.logger = options.logger ?? NOOP_LOGGER;
2759
2785
  this.isImporting = options.isImporting ?? (() => false);
2786
+ this.onSessionImported = options.onSessionImported;
2760
2787
  }
2761
2788
  getProgress() {
2762
2789
  return Array.from(this.progressMap.values());
@@ -2954,6 +2981,13 @@ var PullEngine = class {
2954
2981
  if (totalNewMessages > 0) this.notifier.onSessionListChanged();
2955
2982
  this.notifier.onPullResult(sourceId, sess.id, "success", `+${totalNewMessages} messages`);
2956
2983
  this.markProgressDone(sess.id);
2984
+ if (this.onSessionImported && sess.targetSessionId) {
2985
+ try {
2986
+ this.onSessionImported(sess.targetSessionId);
2987
+ } catch (hookErr) {
2988
+ this.logger.warn(`[Pull] onSessionImported hook failed for "${sess.name}": ${hookErr}`);
2989
+ }
2990
+ }
2957
2991
  return { success: true, newMessageCount: totalNewMessages };
2958
2992
  } catch (error) {
2959
2993
  const errMsg = error.message || "Pull failed";
@@ -3259,10 +3293,7 @@ function registerAutomationRoutes(server2, ctx) {
3259
3293
  if (!removed) return reply.code(404).send({ error: "Session not found" });
3260
3294
  reloadTimer(request.params.id);
3261
3295
  if (request.query.deleteData === "true" && removed.targetSessionId) {
3262
- dbManager2.close(removed.targetSessionId);
3263
- const dbPath = dbManager2.getDbPath(removed.targetSessionId);
3264
- const fs10 = await import("fs");
3265
- if (fs10.existsSync(dbPath)) fs10.unlinkSync(dbPath);
3296
+ dbManager2.deleteSessionDatabaseFiles(removed.targetSessionId);
3266
3297
  }
3267
3298
  return { success: true };
3268
3299
  });
@@ -3314,12 +3345,21 @@ function initSync(server2, dbManager2, pathProvider, serverInfo) {
3314
3345
  const fetcher = new NodeFetcher();
3315
3346
  const importer = new DirectImporter(dbManager2, syncLogger);
3316
3347
  const notifier = new NoopNotifier();
3348
+ const sessionAdapter = createDatabaseManagerAdapter(dbManager2);
3349
+ const preferences = new PreferencesManager(pathProvider.getSystemDir());
3317
3350
  pullEngine = new PullEngine({
3318
3351
  fetcher,
3319
3352
  importer,
3320
3353
  notifier,
3321
3354
  dsManager,
3322
- logger: syncLogger
3355
+ logger: syncLogger,
3356
+ onSessionImported: (localSessionId) => {
3357
+ preferences.invalidateCache();
3358
+ const result = owner_profile_service_exports.tryApplyOwnerProfile(sessionAdapter, preferences, localSessionId);
3359
+ if (result.applied) {
3360
+ syncLogger.info(`[Pull] Applied owner profile to session ${localSessionId} (owner: ${result.ownerId})`);
3361
+ }
3362
+ }
3323
3363
  });
3324
3364
  registerAutomationRoutes(server2, { dsManager, pullEngine, dbManager: dbManager2, serverInfo });
3325
3365
  initScheduler({
@@ -3483,4 +3523,4 @@ export {
3483
3523
  startHttpServer,
3484
3524
  stopHttpServer
3485
3525
  };
3486
- //# sourceMappingURL=chunk-AZZYKUBR.mjs.map
3526
+ //# sourceMappingURL=chunk-GBQQJJKK.mjs.map