@lobehub/lobehub 2.0.0-next.97 → 2.0.0-next.99

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 (150) hide show
  1. package/.console-log-whitelist.json +14 -0
  2. package/.github/workflows/check-console-log.yml +117 -0
  3. package/.github/workflows/desktop-pr-build.yml +4 -4
  4. package/.github/workflows/release-desktop-beta.yml +4 -4
  5. package/.github/workflows/release.yml +1 -1
  6. package/.github/workflows/test.yml +5 -5
  7. package/CHANGELOG.md +58 -0
  8. package/apps/desktop/src/main/services/__tests__/fileSrv.test.ts +603 -0
  9. package/changelog/v1.json +21 -0
  10. package/codecov.yml +1 -0
  11. package/docs/development/database-schema.dbml +1 -0
  12. package/e2e/package.json +1 -1
  13. package/locales/ar/file.json +9 -11
  14. package/locales/ar/plugin.json +34 -22
  15. package/locales/ar/tool.json +8 -0
  16. package/locales/bg-BG/file.json +8 -10
  17. package/locales/bg-BG/plugin.json +34 -22
  18. package/locales/bg-BG/tool.json +8 -0
  19. package/locales/de-DE/file.json +9 -11
  20. package/locales/de-DE/plugin.json +34 -22
  21. package/locales/de-DE/tool.json +8 -0
  22. package/locales/en-US/file.json +12 -14
  23. package/locales/en-US/plugin.json +34 -22
  24. package/locales/en-US/tool.json +8 -0
  25. package/locales/es-ES/file.json +7 -9
  26. package/locales/es-ES/plugin.json +34 -22
  27. package/locales/es-ES/tool.json +8 -0
  28. package/locales/fa-IR/file.json +9 -11
  29. package/locales/fa-IR/plugin.json +34 -22
  30. package/locales/fa-IR/tool.json +8 -0
  31. package/locales/fr-FR/file.json +6 -8
  32. package/locales/fr-FR/plugin.json +34 -22
  33. package/locales/fr-FR/tool.json +8 -0
  34. package/locales/it-IT/file.json +8 -10
  35. package/locales/it-IT/plugin.json +34 -22
  36. package/locales/it-IT/tool.json +8 -0
  37. package/locales/ja-JP/file.json +10 -12
  38. package/locales/ja-JP/plugin.json +34 -22
  39. package/locales/ja-JP/tool.json +8 -0
  40. package/locales/ko-KR/file.json +8 -10
  41. package/locales/ko-KR/plugin.json +34 -22
  42. package/locales/ko-KR/tool.json +8 -0
  43. package/locales/nl-NL/file.json +8 -10
  44. package/locales/nl-NL/plugin.json +34 -22
  45. package/locales/nl-NL/tool.json +8 -0
  46. package/locales/pl-PL/file.json +7 -9
  47. package/locales/pl-PL/plugin.json +34 -22
  48. package/locales/pl-PL/tool.json +8 -0
  49. package/locales/pt-BR/file.json +7 -9
  50. package/locales/pt-BR/plugin.json +34 -22
  51. package/locales/pt-BR/tool.json +8 -0
  52. package/locales/ru-RU/file.json +9 -11
  53. package/locales/ru-RU/plugin.json +34 -22
  54. package/locales/ru-RU/tool.json +8 -0
  55. package/locales/tr-TR/file.json +8 -10
  56. package/locales/tr-TR/plugin.json +34 -22
  57. package/locales/tr-TR/tool.json +8 -0
  58. package/locales/vi-VN/file.json +9 -11
  59. package/locales/vi-VN/plugin.json +34 -22
  60. package/locales/vi-VN/tool.json +8 -0
  61. package/locales/zh-CN/file.json +10 -12
  62. package/locales/zh-CN/plugin.json +34 -22
  63. package/locales/zh-CN/tool.json +8 -0
  64. package/locales/zh-TW/file.json +10 -12
  65. package/locales/zh-TW/plugin.json +34 -22
  66. package/locales/zh-TW/tool.json +8 -0
  67. package/package.json +3 -2
  68. package/packages/database/migrations/0047_add_slug_document.sql +6 -0
  69. package/packages/database/migrations/meta/0047_snapshot.json +7891 -0
  70. package/packages/database/migrations/meta/_journal.json +7 -0
  71. package/packages/database/src/core/migrations.json +16 -7
  72. package/packages/database/src/models/__tests__/document.test.ts +149 -0
  73. package/packages/database/src/models/chunk.ts +3 -1
  74. package/packages/database/src/models/document.ts +10 -4
  75. package/packages/database/src/schemas/file.ts +7 -1
  76. package/packages/model-bank/src/aiModels/qwen.ts +5 -3
  77. package/packages/model-runtime/src/core/openaiCompatibleFactory/index.ts +21 -21
  78. package/packages/obervability-otel/package.json +2 -2
  79. package/packages/prompts/src/prompts/knowledgeBaseQA/__snapshots__/formatFileContents.test.ts.snap +75 -0
  80. package/packages/prompts/src/prompts/knowledgeBaseQA/__snapshots__/formatNoSearchResults.test.ts.snap +45 -0
  81. package/packages/prompts/src/prompts/knowledgeBaseQA/__snapshots__/formatSearchResults.test.ts.snap +82 -0
  82. package/packages/prompts/src/prompts/knowledgeBaseQA/formatFileContents.test.ts +118 -0
  83. package/packages/prompts/src/prompts/knowledgeBaseQA/formatFileContents.ts +31 -0
  84. package/packages/prompts/src/prompts/knowledgeBaseQA/formatNoSearchResults.test.ts +25 -0
  85. package/packages/prompts/src/prompts/knowledgeBaseQA/formatNoSearchResults.ts +13 -0
  86. package/packages/prompts/src/prompts/knowledgeBaseQA/formatSearchResults.test.ts +191 -0
  87. package/packages/prompts/src/prompts/knowledgeBaseQA/formatSearchResults.ts +50 -0
  88. package/packages/prompts/src/prompts/knowledgeBaseQA/index.ts +6 -0
  89. package/packages/types/src/rag.ts +13 -4
  90. package/scripts/checkConsoleLog.mts +148 -0
  91. package/scripts/prebuild.mts +5 -5
  92. package/src/app/[variants]/(main)/changelog/index.tsx +1 -1
  93. package/src/app/[variants]/(main)/settings/_layout/Desktop/index.tsx +20 -16
  94. package/src/app/[variants]/(main)/settings/provider/(list)/ProviderGrid/Card.tsx +6 -3
  95. package/src/app/[variants]/(main)/settings/provider/(list)/index.tsx +3 -2
  96. package/src/app/[variants]/(main)/settings/provider/detail/index.tsx +14 -4
  97. package/src/app/[variants]/desktopRouter.config.tsx +23 -0
  98. package/src/app/[variants]/mobileRouter.config.tsx +23 -0
  99. package/src/features/ChatInput/ActionBar/Token/TokenTag.tsx +2 -2
  100. package/src/features/ChatInput/ActionBar/Token/TokenTagForGroupChat.tsx +2 -2
  101. package/src/features/ChatList/Messages/Group/Tool/Inspector/ToolTitle.tsx +5 -23
  102. package/src/features/ChatList/Messages/Tool/Inspector/ToolTitle.tsx +5 -25
  103. package/src/features/KnowledgeManager/DocumentExplorer/NoteEditorModal.tsx +0 -20
  104. package/src/features/KnowledgeManager/DocumentExplorer/index.tsx +3 -3
  105. package/src/features/KnowledgeManager/FileExplorer/MasonryFileItem/index.tsx +0 -20
  106. package/src/features/KnowledgeManager/Header/AddButton.tsx +0 -1
  107. package/src/features/KnowledgeManager/Header/NewNoteButton.tsx +1 -1
  108. package/src/features/KnowledgeManager/Header/TogglePanelButton.tsx +2 -2
  109. package/src/features/KnowledgeManager/Home/UploadEntries.tsx +2 -2
  110. package/src/features/KnowledgeManager/Home/index.tsx +4 -4
  111. package/src/features/PluginsUI/Render/BuiltinType/index.tsx +1 -1
  112. package/src/features/User/UserPanel/useMenu.tsx +7 -3
  113. package/src/helpers/toolEngineering/index.test.ts +3 -3
  114. package/src/helpers/toolEngineering/index.ts +17 -4
  115. package/src/libs/trpc/client/lambda.ts +0 -6
  116. package/src/locales/default/file.ts +11 -13
  117. package/src/locales/default/plugin.ts +34 -22
  118. package/src/locales/default/tool.ts +13 -5
  119. package/src/server/routers/lambda/chunk.ts +168 -41
  120. package/src/services/chat/chat.test.ts +3 -3
  121. package/src/services/chat/index.ts +2 -2
  122. package/src/services/rag.ts +6 -2
  123. package/src/store/chat/agents/__tests__/createAgentExecutors/helpers/testExecutor.ts +1 -4
  124. package/src/store/chat/slices/aiChat/actions/__tests__/conversationLifecycle.test.ts +11 -0
  125. package/src/store/chat/slices/aiChat/actions/__tests__/rag.test.ts +0 -87
  126. package/src/store/chat/slices/aiChat/actions/__tests__/streamingExecutor.test.ts +2 -69
  127. package/src/store/chat/slices/aiChat/actions/conversationLifecycle.ts +0 -2
  128. package/src/store/chat/slices/aiChat/actions/rag.ts +0 -47
  129. package/src/store/chat/slices/aiChat/actions/streamingExecutor.ts +8 -69
  130. package/src/store/chat/slices/builtinTool/actions/index.ts +4 -1
  131. package/src/store/chat/slices/builtinTool/actions/knowledgeBase.ts +174 -0
  132. package/src/store/chat/slices/operation/types.ts +1 -0
  133. package/src/store/chat/slices/thread/action.test.ts +0 -1
  134. package/src/store/chat/slices/thread/action.ts +0 -1
  135. package/src/tools/executionRuntimes.ts +3 -0
  136. package/src/tools/identifiers.ts +13 -0
  137. package/src/tools/index.ts +7 -0
  138. package/src/tools/knowledge-base/ExecutionRuntime/index.ts +96 -0
  139. package/src/tools/knowledge-base/Render/ReadKnowledge/FileCard.tsx +135 -0
  140. package/src/tools/knowledge-base/Render/ReadKnowledge/index.tsx +27 -0
  141. package/src/tools/knowledge-base/Render/SearchKnowledgeBase/Item/index.tsx +54 -0
  142. package/src/tools/knowledge-base/Render/SearchKnowledgeBase/Item/style.ts +51 -0
  143. package/src/tools/knowledge-base/Render/SearchKnowledgeBase/index.tsx +23 -0
  144. package/src/tools/knowledge-base/Render/index.ts +7 -0
  145. package/src/tools/knowledge-base/index.ts +64 -0
  146. package/src/tools/knowledge-base/systemRole.ts +102 -0
  147. package/src/tools/knowledge-base/type.ts +25 -0
  148. package/src/tools/local-system/Intervention/WriteFile/index.tsx +1 -1
  149. package/src/tools/renders.ts +4 -0
  150. package/src/store/chat/agents/createToolEngine.ts +0 -22
@@ -55,11 +55,11 @@
55
55
  },
56
56
  "documentList": {
57
57
  "copyContent": "复制全文",
58
- "documentCount": "共 {{count}} 个文档",
59
58
  "duplicate": "创建副本",
60
- "empty": "暂无文档,点击上方按钮创建你的第一篇文档",
61
- "noResults": "未找到匹配的文档",
62
- "selectNote": "选择一个文档开始编辑",
59
+ "empty": "暂无文稿,点击上方按钮创建你的第一篇文稿",
60
+ "noResults": "未找到匹配的文稿",
61
+ "pageCount": "共 {{count}} 个文稿",
62
+ "selectNote": "选择一个文稿开始编辑",
63
63
  "untitled": "无标题"
64
64
  },
65
65
  "empty": "暂无已上传文件/文件夹",
@@ -70,7 +70,6 @@
70
70
  "uploadFile": "上传文件",
71
71
  "uploadFolder": "上传文件夹"
72
72
  },
73
- "newDocumentButton": "新建文档",
74
73
  "newNoteDialog": {
75
74
  "cancel": "取消",
76
75
  "editTitle": "编辑文档",
@@ -83,14 +82,15 @@
83
82
  "title": "新建文档",
84
83
  "updateSuccess": "文档更新成功"
85
84
  },
85
+ "newPageButton": "新建文稿",
86
86
  "uploadButton": "上传"
87
87
  },
88
88
  "home": {
89
89
  "getStarted": "开始使用",
90
90
  "greeting": "开始",
91
91
  "quickActions": "快捷操作",
92
- "recentDocuments": "最近文档",
93
92
  "recentFiles": "最近文件",
93
+ "recentPages": "最近文稿",
94
94
  "subtitle": "欢迎使用知识库,从这里开始管理你的文档和文档",
95
95
  "uploadEntries": {
96
96
  "files": {
@@ -102,8 +102,8 @@
102
102
  "knowledgeBase": {
103
103
  "title": "新建知识库"
104
104
  },
105
- "newDocument": {
106
- "title": "新建文档"
105
+ "newPage": {
106
+ "title": "新建文稿"
107
107
  }
108
108
  }
109
109
  },
@@ -142,8 +142,8 @@
142
142
  "downloadFile": "下载文件",
143
143
  "unsupportedFileAndContact": "此文件格式暂不支持在线预览,如有预览诉求,欢迎<1>反馈给我们</1>"
144
144
  },
145
- "searchDocumentPlaceholder": "搜索文档",
146
145
  "searchFilePlaceholder": "搜索文件",
146
+ "searchPagePlaceholder": "搜索文稿",
147
147
  "tab": {
148
148
  "all": "全部",
149
149
  "audios": "语音",
@@ -156,9 +156,7 @@
156
156
  "websites": "网页"
157
157
  },
158
158
  "title": "知识库",
159
- "toggleLeftPanel": {
160
- "title": "显示/隐藏左侧面板"
161
- },
159
+ "toggleLeftPanel": "显示/隐藏左侧面板",
162
160
  "uploadDock": {
163
161
  "body": {
164
162
  "collapse": "收起",
@@ -1,4 +1,38 @@
1
1
  {
2
+ "builtins": {
3
+ "lobe-knowledge-base": {
4
+ "apiName": {
5
+ "readKnowledge": "读取知识库内容",
6
+ "searchKnowledgeBase": "搜索知识库"
7
+ },
8
+ "title": "知识库"
9
+ },
10
+ "lobe-local-system": {
11
+ "apiName": {
12
+ "editLocalFile": "编辑文件",
13
+ "getCommandOutput": "获取代码输出",
14
+ "globLocalFiles": "匹配搜索文件",
15
+ "grepContent": "搜索内容",
16
+ "killCommand": "终止代码执行",
17
+ "listLocalFiles": "查看文件列表",
18
+ "moveLocalFiles": "移动文件",
19
+ "readLocalFile": "读取文件内容",
20
+ "renameLocalFile": "重命名",
21
+ "runCommand": "执行代码",
22
+ "searchLocalFiles": "搜索文件",
23
+ "writeLocalFile": "写入文件"
24
+ },
25
+ "title": "本地系统"
26
+ },
27
+ "lobe-web-browsing": {
28
+ "apiName": {
29
+ "crawlMultiPages": "读取多个页面内容",
30
+ "crawlSinglePage": "读取页面内容",
31
+ "search": "搜索页面"
32
+ },
33
+ "title": "联网搜索"
34
+ }
35
+ },
2
36
  "confirm": "确定",
3
37
  "debug": {
4
38
  "arguments": "调用参数",
@@ -251,23 +285,6 @@
251
285
  "content": "调用插件中...",
252
286
  "plugin": "插件运行中..."
253
287
  },
254
- "localSystem": {
255
- "apiName": {
256
- "editLocalFile": "编辑文件",
257
- "getCommandOutput": "获取代码输出",
258
- "globLocalFiles": "匹配搜索文件",
259
- "grepContent": "搜索内容",
260
- "killCommand": "终止代码执行",
261
- "listLocalFiles": "查看文件列表",
262
- "moveLocalFiles": "移动文件",
263
- "readLocalFile": "读取文件内容",
264
- "renameLocalFile": "重命名",
265
- "runCommand": "执行代码",
266
- "searchLocalFiles": "搜索文件",
267
- "writeLocalFile": "写入文件"
268
- },
269
- "title": "本地系统"
270
- },
271
288
  "mcpInstall": {
272
289
  "CHECKING_INSTALLATION": "检查安装环境...",
273
290
  "COMPLETED": "安装完成",
@@ -375,11 +392,6 @@
375
392
  "warning": "⚠️ 请确认您信任此插件的来源,恶意插件可能会危害您的系统安全。"
376
393
  },
377
394
  "search": {
378
- "apiName": {
379
- "crawlMultiPages": "读取多个页面内容",
380
- "crawlSinglePage": "读取页面内容",
381
- "search": "搜索页面"
382
- },
383
395
  "config": {
384
396
  "addKey": "添加秘钥",
385
397
  "close": "删除",
@@ -14,6 +14,14 @@
14
14
  "images": "图片:",
15
15
  "prompt": "提示词"
16
16
  },
17
+ "lobe-knowledge-base": {
18
+ "readKnowledge": {
19
+ "meta": {
20
+ "chars": "字符数",
21
+ "lines": "行数"
22
+ }
23
+ }
24
+ },
17
25
  "localFiles": {
18
26
  "editFile": {
19
27
  "newString": "替换为",
@@ -55,11 +55,11 @@
55
55
  },
56
56
  "documentList": {
57
57
  "copyContent": "複製全文",
58
- "documentCount": "共 {{count}} 筆文件",
59
58
  "duplicate": "建立副本",
60
- "empty": "尚無文件,點擊上方按鈕建立你的第一篇文件",
61
- "noResults": "找不到符合的文件",
62
- "selectNote": "選擇一個文件開始編輯",
59
+ "empty": "尚無文稿,點擊上方按鈕建立你的第一篇文稿",
60
+ "noResults": "未找到符合的文稿",
61
+ "pageCount": "共 {{count}} 篇文稿",
62
+ "selectNote": "選擇一篇文稿開始編輯",
63
63
  "untitled": "無標題"
64
64
  },
65
65
  "empty": "暫無已上傳文件/文件夾",
@@ -70,7 +70,6 @@
70
70
  "uploadFile": "上傳檔案",
71
71
  "uploadFolder": "上傳資料夾"
72
72
  },
73
- "newDocumentButton": "新增文件",
74
73
  "newNoteDialog": {
75
74
  "cancel": "取消",
76
75
  "editTitle": "編輯文件",
@@ -83,14 +82,15 @@
83
82
  "title": "新增文件",
84
83
  "updateSuccess": "文件更新成功"
85
84
  },
85
+ "newPageButton": "新增文件",
86
86
  "uploadButton": "上傳"
87
87
  },
88
88
  "home": {
89
89
  "getStarted": "開始使用",
90
90
  "greeting": "開始",
91
91
  "quickActions": "快速操作",
92
- "recentDocuments": "最近文件",
93
92
  "recentFiles": "最近檔案",
93
+ "recentPages": "最近文件",
94
94
  "subtitle": "歡迎使用知識庫,從這裡開始管理你的文件與資料",
95
95
  "uploadEntries": {
96
96
  "files": {
@@ -102,8 +102,8 @@
102
102
  "knowledgeBase": {
103
103
  "title": "新增知識庫"
104
104
  },
105
- "newDocument": {
106
- "title": "新增文件"
105
+ "newPage": {
106
+ "title": "新增文稿"
107
107
  }
108
108
  }
109
109
  },
@@ -142,8 +142,8 @@
142
142
  "downloadFile": "下載檔案",
143
143
  "unsupportedFileAndContact": "此檔案格式暫不支援線上預覽,如有預覽需求,歡迎<1>反饋給我們</1>"
144
144
  },
145
- "searchDocumentPlaceholder": "搜尋文件",
146
145
  "searchFilePlaceholder": "搜索檔案",
146
+ "searchPagePlaceholder": "搜尋文稿",
147
147
  "tab": {
148
148
  "all": "全部",
149
149
  "audios": "語音",
@@ -156,9 +156,7 @@
156
156
  "websites": "網頁"
157
157
  },
158
158
  "title": "知識庫",
159
- "toggleLeftPanel": {
160
- "title": "顯示/隱藏左側面板"
161
- },
159
+ "toggleLeftPanel": "顯示/隱藏左側面板",
162
160
  "uploadDock": {
163
161
  "body": {
164
162
  "collapse": "收起",
@@ -1,4 +1,38 @@
1
1
  {
2
+ "builtins": {
3
+ "lobe-knowledge-base": {
4
+ "apiName": {
5
+ "readKnowledge": "讀取知識庫內容",
6
+ "searchKnowledgeBase": "搜尋知識庫"
7
+ },
8
+ "title": "知識庫"
9
+ },
10
+ "lobe-local-system": {
11
+ "apiName": {
12
+ "editLocalFile": "編輯檔案",
13
+ "getCommandOutput": "取得程式碼輸出",
14
+ "globLocalFiles": "匹配搜尋檔案",
15
+ "grepContent": "搜尋內容",
16
+ "killCommand": "終止程式碼執行",
17
+ "listLocalFiles": "查看檔案清單",
18
+ "moveLocalFiles": "移動檔案",
19
+ "readLocalFile": "讀取檔案內容",
20
+ "renameLocalFile": "重新命名",
21
+ "runCommand": "執行程式碼",
22
+ "searchLocalFiles": "搜尋檔案",
23
+ "writeLocalFile": "寫入檔案"
24
+ },
25
+ "title": "本機系統"
26
+ },
27
+ "lobe-web-browsing": {
28
+ "apiName": {
29
+ "crawlMultiPages": "讀取多個頁面內容",
30
+ "crawlSinglePage": "讀取頁面內容",
31
+ "search": "搜尋頁面"
32
+ },
33
+ "title": "網路搜尋"
34
+ }
35
+ },
2
36
  "confirm": "確定",
3
37
  "debug": {
4
38
  "arguments": "調用參數",
@@ -251,23 +285,6 @@
251
285
  "content": "調用插件中...",
252
286
  "plugin": "插件運行中..."
253
287
  },
254
- "localSystem": {
255
- "apiName": {
256
- "editLocalFile": "編輯檔案",
257
- "getCommandOutput": "取得程式輸出",
258
- "globLocalFiles": "匹配搜尋檔案",
259
- "grepContent": "搜尋內容",
260
- "killCommand": "終止程式執行",
261
- "listLocalFiles": "查看檔案列表",
262
- "moveLocalFiles": "移動檔案",
263
- "readLocalFile": "讀取檔案內容",
264
- "renameLocalFile": "重新命名",
265
- "runCommand": "執行程式碼",
266
- "searchLocalFiles": "搜尋檔案",
267
- "writeLocalFile": "寫入檔案"
268
- },
269
- "title": "本機系統"
270
- },
271
288
  "mcpInstall": {
272
289
  "CHECKING_INSTALLATION": "檢查安裝環境...",
273
290
  "COMPLETED": "安裝完成",
@@ -375,11 +392,6 @@
375
392
  "warning": "⚠️ 請確認您信任此插件的來源,惡意插件可能會危害您的系統安全。"
376
393
  },
377
394
  "search": {
378
- "apiName": {
379
- "crawlMultiPages": "讀取多個頁面內容",
380
- "crawlSinglePage": "讀取頁面內容",
381
- "search": "搜尋頁面"
382
- },
383
395
  "config": {
384
396
  "addKey": "添加密鑰",
385
397
  "close": "刪除",
@@ -14,6 +14,14 @@
14
14
  "images": "圖片:",
15
15
  "prompt": "提示詞"
16
16
  },
17
+ "lobe-knowledge-base": {
18
+ "readKnowledge": {
19
+ "meta": {
20
+ "chars": "字元數",
21
+ "lines": "行數"
22
+ }
23
+ }
24
+ },
17
25
  "localFiles": {
18
26
  "editFile": {
19
27
  "newString": "取代為",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.97",
3
+ "version": "2.0.0-next.99",
4
4
  "description": "LobeHub - an open-source,comprehensive AI Agent framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -63,6 +63,7 @@
63
63
  "lint:circular": "npm run lint:circular:main && npm run lint:circular:packages",
64
64
  "lint:circular:main": "dpdm src/**/*.ts --no-warning --no-tree --exit-code circular:1 --no-progress -T true --skip-dynamic-imports circular",
65
65
  "lint:circular:packages": "dpdm packages/**/src/**/*.ts --no-warning --no-tree --exit-code circular:1 --no-progress -T true --skip-dynamic-imports circular",
66
+ "lint:console": "tsx scripts/checkConsoleLog.mts",
66
67
  "lint:md": "remark . --silent --output",
67
68
  "lint:mdx": "npm run workflow:mdx && remark \"docs/**/*.mdx\" -r ./.remarkrc.mdx.js --silent --output && eslint \"docs/**/*.mdx\" --quiet --fix",
68
69
  "lint:style": "stylelint \"{src,tests}/**/*.{js,jsx,ts,tsx}\" --fix",
@@ -174,7 +175,7 @@
174
175
  "@neondatabase/serverless": "^1.0.2",
175
176
  "@next/third-parties": "^16.0.3",
176
177
  "@opentelemetry/exporter-jaeger": "^2.2.0",
177
- "@opentelemetry/winston-transport": "^0.18.0",
178
+ "@opentelemetry/winston-transport": "^0.19.0",
178
179
  "@react-pdf/renderer": "^4.3.1",
179
180
  "@react-spring/web": "^9.7.5",
180
181
  "@saintno/comfyui-sdk": "^0.2.49",
@@ -0,0 +1,6 @@
1
+ ALTER TABLE "documents" ADD COLUMN IF NOT EXISTS "slug" varchar(255);--> statement-breakpoint
2
+ DO $$ BEGIN
3
+ CREATE UNIQUE INDEX IF NOT EXISTS "documents_slug_user_id_unique" ON "documents" ("slug","user_id") WHERE "slug" IS NOT NULL;
4
+ EXCEPTION
5
+ WHEN duplicate_object THEN null;
6
+ END $$;