tianxincode 1.0.47 → 1.0.49
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.
- package/README.md +200 -200
- package/dist/cli/commands.js +18 -18
- package/dist/core/ai/agents/caller/prompts/role.txt +50 -50
- package/dist/core/ai/agents/chat/chat.agent.js +30 -30
- package/dist/core/ai/agents/chat/prompts/role.txt +30 -30
- package/dist/core/ai/agents/code/code.agent.js +6 -6
- package/dist/core/ai/agents/code/prompts/role.txt +50 -50
- package/dist/core/ai/agents/common/prompt/role.txt +51 -51
- package/dist/core/ai/agents/common/prompts.js +26 -26
- package/dist/core/ai/agents/design/design.agent.js +6 -6
- package/dist/core/ai/agents/design/prompts/role.txt +36 -36
- package/dist/core/ai/agents/dream/prompts/init.txt +20 -20
- package/dist/core/ai/agents/mem/mem.agent.js +5 -5
- package/dist/core/ai/agents/mem/prompts/role.txt +35 -35
- package/dist/core/ai/agents/skill/prompts/role.txt +61 -61
- package/dist/core/ai/agents/skill/skill.agent.js +26 -26
- package/dist/core/ai/agents/summarizer/prompts/role.txt +30 -30
- package/dist/core/ai/agents/task/prompts/role.txt +50 -50
- package/dist/core/ai/agents/task/task.agent.js +30 -30
- package/dist/core/ai/provider/deepseek.provider.js +1 -1
- package/dist/core/ai/provider/deepseek.provider.js.map +1 -1
- package/dist/core/ai/provider/openai.provider.js +1 -1
- package/dist/core/ai/provider/openai.provider.js.map +1 -1
- package/dist/core/db/db.service.d.ts.map +1 -1
- package/dist/core/db/db.service.js +3 -1
- package/dist/core/db/db.service.js.map +1 -1
- package/dist/core/db/init_sql/ai_log.init.js +15 -15
- package/dist/core/db/init_sql/code_snippet.init.js +11 -11
- package/dist/core/db/init_sql/config.init.js +15 -15
- package/dist/core/db/init_sql/custom_action.init.js +10 -10
- package/dist/core/db/init_sql/dingding.init.js +9 -9
- package/dist/core/db/init_sql/email.init.js +14 -14
- package/dist/core/db/init_sql/lsp.init.js +8 -8
- package/dist/core/db/init_sql/message_file.init.js +11 -11
- package/dist/core/db/init_sql/project.init.js +20 -20
- package/dist/core/db/init_sql/provider.init.js +35 -35
- package/dist/core/db/init_sql/scheduler.init.js +32 -32
- package/dist/core/db/init_sql/session.init.js +23 -23
- package/dist/core/db/init_sql/spec.init.js +15 -15
- package/dist/core/db/init_sql/waf_gateway.init.js +9 -9
- package/dist/core/db/init_sql/zihao.init.js +11 -11
- package/dist/core/lsp/sql.js +11 -11
- package/dist/core/tools/provider/bash.txt +47 -47
- package/dist/core/tools/provider/code_search.txt +20 -20
- package/dist/core/tools/provider/edit_file.txt +13 -13
- package/dist/core/tools/provider/glob.txt +12 -12
- package/dist/core/tools/provider/grep.txt +14 -14
- package/dist/core/tools/provider/lsp.txt +19 -19
- package/dist/core/tools/provider/memory.txt +21 -21
- package/dist/core/tools/provider/read_file.txt +17 -17
- package/dist/core/tools/provider/todo_read.txt +16 -16
- package/dist/core/tools/provider/todo_write.txt +48 -48
- package/dist/core/tools/provider/web_fetch.txt +17 -17
- package/dist/core/tools/provider/web_search.txt +18 -18
- package/dist/core/tools/provider/write_file.txt +11 -11
- package/dist/gateway/api/skill/detail_skill.d.ts.map +1 -1
- package/dist/gateway/api/skill/detail_skill.js +7 -5
- package/dist/gateway/api/skill/detail_skill.js.map +1 -1
- package/dist/gateway/cli/commands.js +18 -18
- package/dist/modules/ai/agents/chat/prompts/role.txt +30 -30
- package/dist/modules/ai/agents/code/prompts/role.txt +50 -50
- package/dist/modules/ai/agents/mem/prompts/role.txt +35 -35
- package/dist/modules/ai/agents/skill/prompts/role.txt +61 -61
- package/dist/modules/ai/agents/task/prompts/role.txt +50 -50
- package/dist/modules/ai/ai-log.service.js +10 -10
- package/dist/modules/ai/provider/openai/prompt/role.txt +51 -51
- package/dist/modules/ai/summarizer/summarizer.prompts.js +30 -30
- package/dist/modules/config/config.service.js +5 -5
- package/dist/modules/db/db.service.js +252 -252
- package/dist/modules/email/email.config.repository.js +1 -1
- package/dist/modules/repositories/project.repository.d.ts +28 -0
- package/dist/modules/repositories/project.repository.d.ts.map +1 -0
- package/dist/modules/repositories/project.repository.js +47 -0
- package/dist/modules/repositories/project.repository.js.map +1 -0
- package/dist/modules/scheduler/task-log.service.js +1 -1
- package/dist/modules/services/project/project.service.d.ts +14 -0
- package/dist/modules/services/project/project.service.d.ts.map +1 -0
- package/dist/modules/services/project/project.service.js +47 -0
- package/dist/modules/services/project/project.service.js.map +1 -0
- package/dist/modules/skill/skill.txt +36 -36
- package/dist/modules/spec/spec.injector.js +24 -24
- package/dist/modules/tools/provider/bash.txt +47 -47
- package/dist/modules/tools/provider/code_search.txt +20 -20
- package/dist/modules/tools/provider/edit_file.txt +13 -13
- package/dist/modules/tools/provider/glob.txt +12 -12
- package/dist/modules/tools/provider/grep.txt +14 -14
- package/dist/modules/tools/provider/lsp.txt +19 -19
- package/dist/modules/tools/provider/memory.txt +21 -21
- package/dist/modules/tools/provider/read_file.txt +17 -17
- package/dist/modules/tools/provider/todo_read.txt +16 -16
- package/dist/modules/tools/provider/todo_write.txt +48 -48
- package/dist/modules/tools/provider/web_fetch.txt +17 -17
- package/dist/modules/tools/provider/web_search.txt +18 -18
- package/dist/modules/tools/provider/write_file.txt +11 -11
- package/dist/modules/waf-gateway/waf-gateway.module.js +8 -8
- package/dist/modules/waf-gateway/waf-gateway.service.js +12 -12
- package/dist/repositories/project.repository.d.ts +28 -0
- package/dist/repositories/project.repository.d.ts.map +1 -0
- package/dist/repositories/project.repository.js +47 -0
- package/dist/repositories/project.repository.js.map +1 -0
- package/dist/repository/ai_log.repository.js +1 -1
- package/dist/repository/config.repository.js +5 -5
- package/dist/repository/email.repository.js +1 -1
- package/dist/repository/memory.repository.js +1 -1
- package/dist/repository/project.repository.js +3 -3
- package/dist/repository/scheduler.repository.js +2 -2
- package/dist/repository/session.repository.js +1 -1
- package/dist/repository/zihao-config.repository.js +1 -1
- package/dist/services/skill/skill.tool.d.ts.map +1 -1
- package/dist/services/skill/skill.tool.js +6 -1
- package/dist/services/skill/skill.tool.js.map +1 -1
- package/dist/services/skill/skill.txt +36 -36
- package/package.json +76 -76
- package/scripts/copy-txt.js +31 -31
- package/scripts/ink-scroll-demo.tsx +147 -147
- package/tsconfig.test.json +9 -9
- package/web/dist/assets/{ConfirmDialog-B2bVsPFI.js → ConfirmDialog-B03GcCHQ.js} +1 -1
- package/web/dist/assets/PcLayout-CYW3zqcs.css +1 -0
- package/web/dist/assets/{PcLayout-DeXNBHu2.js → PcLayout-ZTdJNg7G.js} +1 -1
- package/web/dist/assets/{aiLogsView-JvjhLmyo.js → aiLogsView-Bt8Xg1Qx.js} +1 -1
- package/web/dist/assets/{cssMode-sYHhwUZh.js → cssMode-CBb6D87U.js} +1 -1
- package/web/dist/assets/{customActionsView-Cvmzxvl4.js → customActionsView-DdjnHzwm.js} +1 -1
- package/web/dist/assets/deployView-CD7ji9IS.css +1 -0
- package/web/dist/assets/{deployView-CjV4ySrf.js → deployView-Cj51_Job.js} +1 -1
- package/web/dist/assets/designView-C3pSX4nP.css +1 -0
- package/web/dist/assets/designView-RT8tKEN9.js +18 -0
- package/web/dist/assets/devWorkflowView-BTozmaiN.js +36 -0
- package/web/dist/assets/devWorkflowView-DYhIfbCB.css +1 -0
- package/web/dist/assets/devWorkflowViewApp-CErbhC2s.css +1 -0
- package/web/dist/assets/{devWorkflowViewApp-DPlFgiS_.js → devWorkflowViewApp-DLslXEq9.js} +3 -3
- package/web/dist/assets/{fileZihao-DvZmuTYu.js → fileZihao-CtZ4bUIH.js} +1 -1
- package/web/dist/assets/{freemarker2-DTyAQBBj.js → freemarker2-CX3jc3l2.js} +1 -1
- package/web/dist/assets/gitChanges-D6QxPcii.css +1 -0
- package/web/dist/assets/{gitChanges-Cpf4HHoF.js → gitChanges-DFRvzL5I.js} +1 -1
- package/web/dist/assets/gitChangesApp-Bjn-MCmr.css +1 -0
- package/web/dist/assets/{gitChangesApp-BOURDd_l.js → gitChangesApp-ZI7-V8oB.js} +2 -2
- package/web/dist/assets/{handlebars-DiWIXxOG.js → handlebars-CTaQD6FN.js} +1 -1
- package/web/dist/assets/{html-BCQWkFzH.js → html-BruJsfYv.js} +1 -1
- package/web/dist/assets/{htmlMode-BbMA34cR.js → htmlMode-wewroXLr.js} +1 -1
- package/web/dist/assets/{index-C_tz4Wda.css → index-C0xmVTIn.css} +1 -1
- package/web/dist/assets/{index-C7axH05o.js → index-Cn73hS12.js} +9 -9
- package/web/dist/assets/{javascript-By4MYHaO.js → javascript-B4ku8P1-.js} +1 -1
- package/web/dist/assets/{jsonMode-5JIz7tDN.js → jsonMode-BIvVuBMG.js} +1 -1
- package/web/dist/assets/{liquid-BQBVii4f.js → liquid-Bo3G0Ep7.js} +1 -1
- package/web/dist/assets/{mdx-Cwk7nqzM.js → mdx-Duv0ylZz.js} +1 -1
- package/web/dist/assets/{mediaChat-DivTDoIv.js → mediaChat-RT7iqqYb.js} +1 -1
- package/web/dist/assets/{python-L_kGfe1T.js → python-CEhCctGm.js} +1 -1
- package/web/dist/assets/{razor-XGuHliMI.js → razor-DPK8nTD7.js} +1 -1
- package/web/dist/assets/{taskView-BcJ3LAxp.js → taskView-sOyebRqn.js} +1 -1
- package/web/dist/assets/{terminalView-q-UKzK0M.js → terminalView-GTYtDlus.js} +2 -2
- package/web/dist/assets/{terminalView-CQVYh6D3.css → terminalView-eZ0agsPP.css} +1 -1
- package/web/dist/assets/{tsMode-SuiD3mJa.js → tsMode-BZvUU1nf.js} +1 -1
- package/web/dist/assets/{typescript-DJcyqRjT.js → typescript-CmEn-k1B.js} +1 -1
- package/web/dist/assets/{wikiView-ygHSGyPp.css → wikiView-C-oqMnJM.css} +1 -1
- package/web/dist/assets/{wikiView-B3GIPUlD.js → wikiView-CRjg-cZ8.js} +1 -1
- package/web/dist/assets/{xml-DQgCzk55.js → xml-bjvdKeyy.js} +1 -1
- package/web/dist/assets/{yaml-DBdEYBPA.js → yaml-N5RXWxJk.js} +1 -1
- package/web/dist/index.html +2 -2
- package/web/package.json +28 -28
- package/dist/modules/ai/react/index.d.ts +0 -5
- package/dist/modules/ai/react/index.d.ts.map +0 -1
- package/dist/modules/ai/react/index.js +0 -4
- package/dist/modules/ai/react/index.js.map +0 -1
- package/dist/modules/ai/react/prompt/role.txt +0 -51
- package/dist/modules/ai/react/provider.parser.d.ts +0 -20
- package/dist/modules/ai/react/provider.parser.d.ts.map +0 -1
- package/dist/modules/ai/react/provider.parser.js +0 -88
- package/dist/modules/ai/react/provider.parser.js.map +0 -1
- package/dist/modules/ai/react/react.parser.d.ts +0 -80
- package/dist/modules/ai/react/react.parser.d.ts.map +0 -1
- package/dist/modules/ai/react/react.parser.js +0 -365
- package/dist/modules/ai/react/react.parser.js.map +0 -1
- package/dist/modules/ai/react/react.prompts.d.ts +0 -26
- package/dist/modules/ai/react/react.prompts.d.ts.map +0 -1
- package/dist/modules/ai/react/react.prompts.js +0 -170
- package/dist/modules/ai/react/react.prompts.js.map +0 -1
- package/dist/modules/ai/react/react.types.d.ts +0 -50
- package/dist/modules/ai/react/react.types.d.ts.map +0 -1
- package/dist/modules/ai/react/react.types.js +0 -2
- package/dist/modules/ai/react/react.types.js.map +0 -1
- package/dist/modules/ai/react/react.validator.d.ts +0 -14
- package/dist/modules/ai/react/react.validator.d.ts.map +0 -1
- package/dist/modules/ai/react/react.validator.js +0 -53
- package/dist/modules/ai/react/react.validator.js.map +0 -1
- package/dist/modules/ai/react.agent.d.ts +0 -82
- package/dist/modules/ai/react.agent.d.ts.map +0 -1
- package/dist/modules/ai/react.agent.js +0 -220
- package/dist/modules/ai/react.agent.js.map +0 -1
- package/dist/modules/skill/skill.service.d.ts +0 -72
- package/dist/modules/skill/skill.service.d.ts.map +0 -1
- package/dist/modules/skill/skill.service.js +0 -283
- package/dist/modules/skill/skill.service.js.map +0 -1
- package/dist/modules/tools/builtin/bash.d.ts +0 -3
- package/dist/modules/tools/builtin/bash.d.ts.map +0 -1
- package/dist/modules/tools/builtin/bash.js +0 -126
- package/dist/modules/tools/builtin/bash.js.map +0 -1
- package/dist/modules/tools/builtin/bash.tool.d.ts +0 -6
- package/dist/modules/tools/builtin/bash.tool.d.ts.map +0 -1
- package/dist/modules/tools/builtin/bash.tool.js +0 -52
- package/dist/modules/tools/builtin/bash.tool.js.map +0 -1
- package/dist/modules/tools/builtin/bash.txt +0 -69
- package/dist/modules/tools/builtin/code_search.d.ts +0 -3
- package/dist/modules/tools/builtin/code_search.d.ts.map +0 -1
- package/dist/modules/tools/builtin/code_search.js +0 -86
- package/dist/modules/tools/builtin/code_search.js.map +0 -1
- package/dist/modules/tools/builtin/code_search.txt +0 -41
- package/dist/modules/tools/builtin/edit-file.tool.d.ts +0 -6
- package/dist/modules/tools/builtin/edit-file.tool.d.ts.map +0 -1
- package/dist/modules/tools/builtin/edit-file.tool.js +0 -58
- package/dist/modules/tools/builtin/edit-file.tool.js.map +0 -1
- package/dist/modules/tools/builtin/edit_file.d.ts +0 -3
- package/dist/modules/tools/builtin/edit_file.d.ts.map +0 -1
- package/dist/modules/tools/builtin/edit_file.js +0 -105
- package/dist/modules/tools/builtin/edit_file.js.map +0 -1
- package/dist/modules/tools/builtin/edit_file.txt +0 -61
- package/dist/modules/tools/builtin/glob.d.ts +0 -3
- package/dist/modules/tools/builtin/glob.d.ts.map +0 -1
- package/dist/modules/tools/builtin/glob.js +0 -85
- package/dist/modules/tools/builtin/glob.js.map +0 -1
- package/dist/modules/tools/builtin/glob.tool.d.ts +0 -6
- package/dist/modules/tools/builtin/glob.tool.d.ts.map +0 -1
- package/dist/modules/tools/builtin/glob.tool.js +0 -81
- package/dist/modules/tools/builtin/glob.tool.js.map +0 -1
- package/dist/modules/tools/builtin/glob.txt +0 -33
- package/dist/modules/tools/builtin/grep.d.ts +0 -3
- package/dist/modules/tools/builtin/grep.d.ts.map +0 -1
- package/dist/modules/tools/builtin/grep.js +0 -94
- package/dist/modules/tools/builtin/grep.js.map +0 -1
- package/dist/modules/tools/builtin/grep.tool.d.ts +0 -6
- package/dist/modules/tools/builtin/grep.tool.d.ts.map +0 -1
- package/dist/modules/tools/builtin/grep.tool.js +0 -96
- package/dist/modules/tools/builtin/grep.tool.js.map +0 -1
- package/dist/modules/tools/builtin/grep.txt +0 -37
- package/dist/modules/tools/builtin/index.d.ts +0 -8
- package/dist/modules/tools/builtin/index.d.ts.map +0 -1
- package/dist/modules/tools/builtin/index.js +0 -80
- package/dist/modules/tools/builtin/index.js.map +0 -1
- package/dist/modules/tools/builtin/lsp.d.ts +0 -7
- package/dist/modules/tools/builtin/lsp.d.ts.map +0 -1
- package/dist/modules/tools/builtin/lsp.js +0 -126
- package/dist/modules/tools/builtin/lsp.js.map +0 -1
- package/dist/modules/tools/builtin/lsp.txt +0 -45
- package/dist/modules/tools/builtin/memory.d.ts +0 -3
- package/dist/modules/tools/builtin/memory.d.ts.map +0 -1
- package/dist/modules/tools/builtin/memory.js +0 -77
- package/dist/modules/tools/builtin/memory.js.map +0 -1
- package/dist/modules/tools/builtin/memory.txt +0 -58
- package/dist/modules/tools/builtin/read-file.tool.d.ts +0 -6
- package/dist/modules/tools/builtin/read-file.tool.d.ts.map +0 -1
- package/dist/modules/tools/builtin/read-file.tool.js +0 -46
- package/dist/modules/tools/builtin/read-file.tool.js.map +0 -1
- package/dist/modules/tools/builtin/read_file.d.ts +0 -3
- package/dist/modules/tools/builtin/read_file.d.ts.map +0 -1
- package/dist/modules/tools/builtin/read_file.js +0 -107
- package/dist/modules/tools/builtin/read_file.js.map +0 -1
- package/dist/modules/tools/builtin/read_file.txt +0 -38
- package/dist/modules/tools/builtin/todo_read.d.ts +0 -6
- package/dist/modules/tools/builtin/todo_read.d.ts.map +0 -1
- package/dist/modules/tools/builtin/todo_read.js +0 -25
- package/dist/modules/tools/builtin/todo_read.js.map +0 -1
- package/dist/modules/tools/builtin/todo_read.txt +0 -34
- package/dist/modules/tools/builtin/todo_write.d.ts +0 -6
- package/dist/modules/tools/builtin/todo_write.d.ts.map +0 -1
- package/dist/modules/tools/builtin/todo_write.js +0 -46
- package/dist/modules/tools/builtin/todo_write.js.map +0 -1
- package/dist/modules/tools/builtin/todo_write.txt +0 -67
- package/dist/modules/tools/builtin/web_fetch.d.ts +0 -3
- package/dist/modules/tools/builtin/web_fetch.d.ts.map +0 -1
- package/dist/modules/tools/builtin/web_fetch.js +0 -52
- package/dist/modules/tools/builtin/web_fetch.js.map +0 -1
- package/dist/modules/tools/builtin/web_fetch.txt +0 -38
- package/dist/modules/tools/builtin/web_search.d.ts +0 -3
- package/dist/modules/tools/builtin/web_search.d.ts.map +0 -1
- package/dist/modules/tools/builtin/web_search.js +0 -100
- package/dist/modules/tools/builtin/web_search.js.map +0 -1
- package/dist/modules/tools/builtin/web_search.txt +0 -43
- package/dist/modules/tools/builtin/write-file.tool.d.ts +0 -6
- package/dist/modules/tools/builtin/write-file.tool.d.ts.map +0 -1
- package/dist/modules/tools/builtin/write-file.tool.js +0 -38
- package/dist/modules/tools/builtin/write-file.tool.js.map +0 -1
- package/dist/modules/tools/builtin/write_file.d.ts +0 -3
- package/dist/modules/tools/builtin/write_file.d.ts.map +0 -1
- package/dist/modules/tools/builtin/write_file.js +0 -61
- package/dist/modules/tools/builtin/write_file.js.map +0 -1
- package/dist/modules/tools/builtin/write_file.txt +0 -58
- package/dist/modules/tools/provider/openai/tools.d.ts +0 -3
- package/dist/modules/tools/provider/openai/tools.d.ts.map +0 -1
- package/dist/modules/tools/provider/openai/tools.js +0 -212
- package/dist/modules/tools/provider/openai/tools.js.map +0 -1
- package/dist/modules/tools/provider/skill.d.ts +0 -6
- package/dist/modules/tools/provider/skill.d.ts.map +0 -1
- package/dist/modules/tools/provider/skill.js +0 -64
- package/dist/modules/tools/provider/skill.js.map +0 -1
- package/web/dist/assets/PcLayout-L-XuK1oQ.css +0 -1
- package/web/dist/assets/deployView-hCh3_M8H.css +0 -1
- package/web/dist/assets/designView-CqZ75hOS.css +0 -1
- package/web/dist/assets/designView-DrUNRVEE.js +0 -18
- package/web/dist/assets/devWorkflowView-BpdJTMEb.js +0 -36
- package/web/dist/assets/devWorkflowView-D7EKjoLj.css +0 -1
- package/web/dist/assets/devWorkflowViewApp-BYYMIdCm.css +0 -1
- package/web/dist/assets/gitChanges-BYj-Y2K-.css +0 -1
- package/web/dist/assets/gitChangesApp-Btw-XKcP.css +0 -1
|
@@ -175,12 +175,12 @@ export class DbService {
|
|
|
175
175
|
runMigrations() {
|
|
176
176
|
if (!this.db)
|
|
177
177
|
throw new Error('Database not initialized');
|
|
178
|
-
this.db.run(`
|
|
179
|
-
CREATE TABLE IF NOT EXISTS migrations (
|
|
180
|
-
id INTEGER PRIMARY KEY,
|
|
181
|
-
name TEXT NOT NULL,
|
|
182
|
-
applied_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
183
|
-
)
|
|
178
|
+
this.db.run(`
|
|
179
|
+
CREATE TABLE IF NOT EXISTS migrations (
|
|
180
|
+
id INTEGER PRIMARY KEY,
|
|
181
|
+
name TEXT NOT NULL,
|
|
182
|
+
applied_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
183
|
+
)
|
|
184
184
|
`);
|
|
185
185
|
const migrations = [
|
|
186
186
|
() => this.migration001Initial(),
|
|
@@ -213,97 +213,97 @@ export class DbService {
|
|
|
213
213
|
migration001Initial() {
|
|
214
214
|
if (!this.db)
|
|
215
215
|
return;
|
|
216
|
-
this.db.run(`
|
|
217
|
-
CREATE TABLE IF NOT EXISTS sessions (
|
|
218
|
-
id TEXT PRIMARY KEY,
|
|
219
|
-
title TEXT NOT NULL,
|
|
220
|
-
project_path TEXT,
|
|
221
|
-
summary_message_id INTEGER,
|
|
222
|
-
prompt_tokens INTEGER DEFAULT 0,
|
|
223
|
-
completion_tokens INTEGER DEFAULT 0,
|
|
224
|
-
cost REAL DEFAULT 0,
|
|
225
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
226
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
227
|
-
)
|
|
216
|
+
this.db.run(`
|
|
217
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
218
|
+
id TEXT PRIMARY KEY,
|
|
219
|
+
title TEXT NOT NULL,
|
|
220
|
+
project_path TEXT,
|
|
221
|
+
summary_message_id INTEGER,
|
|
222
|
+
prompt_tokens INTEGER DEFAULT 0,
|
|
223
|
+
completion_tokens INTEGER DEFAULT 0,
|
|
224
|
+
cost REAL DEFAULT 0,
|
|
225
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
226
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
227
|
+
)
|
|
228
228
|
`);
|
|
229
|
-
this.db.run(`
|
|
230
|
-
CREATE TABLE IF NOT EXISTS messages (
|
|
231
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
232
|
-
session_id TEXT NOT NULL,
|
|
233
|
-
role TEXT NOT NULL CHECK (role IN ('user', 'assistant', 'system', 'tool')),
|
|
234
|
-
content TEXT NOT NULL,
|
|
235
|
-
keep_context INTEGER DEFAULT 1,
|
|
236
|
-
is_original INTEGER DEFAULT 0,
|
|
237
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
238
|
-
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
239
|
-
)
|
|
229
|
+
this.db.run(`
|
|
230
|
+
CREATE TABLE IF NOT EXISTS messages (
|
|
231
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
232
|
+
session_id TEXT NOT NULL,
|
|
233
|
+
role TEXT NOT NULL CHECK (role IN ('user', 'assistant', 'system', 'tool')),
|
|
234
|
+
content TEXT NOT NULL,
|
|
235
|
+
keep_context INTEGER DEFAULT 1,
|
|
236
|
+
is_original INTEGER DEFAULT 0,
|
|
237
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
238
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
239
|
+
)
|
|
240
240
|
`);
|
|
241
|
-
this.db.run(`
|
|
242
|
-
CREATE TABLE IF NOT EXISTS project_knowledge (
|
|
243
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
244
|
-
project_path TEXT NOT NULL,
|
|
245
|
-
key TEXT NOT NULL,
|
|
246
|
-
value TEXT NOT NULL,
|
|
247
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
248
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
249
|
-
UNIQUE(project_path, key)
|
|
250
|
-
)
|
|
241
|
+
this.db.run(`
|
|
242
|
+
CREATE TABLE IF NOT EXISTS project_knowledge (
|
|
243
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
244
|
+
project_path TEXT NOT NULL,
|
|
245
|
+
key TEXT NOT NULL,
|
|
246
|
+
value TEXT NOT NULL,
|
|
247
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
248
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
249
|
+
UNIQUE(project_path, key)
|
|
250
|
+
)
|
|
251
251
|
`);
|
|
252
|
-
this.db.run(`
|
|
253
|
-
CREATE TABLE IF NOT EXISTS code_snippets (
|
|
254
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
255
|
-
session_id TEXT,
|
|
256
|
-
lang TEXT NOT NULL,
|
|
257
|
-
description TEXT,
|
|
258
|
-
code TEXT NOT NULL,
|
|
259
|
-
tags TEXT,
|
|
260
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
261
|
-
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE SET NULL
|
|
262
|
-
)
|
|
252
|
+
this.db.run(`
|
|
253
|
+
CREATE TABLE IF NOT EXISTS code_snippets (
|
|
254
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
255
|
+
session_id TEXT,
|
|
256
|
+
lang TEXT NOT NULL,
|
|
257
|
+
description TEXT,
|
|
258
|
+
code TEXT NOT NULL,
|
|
259
|
+
tags TEXT,
|
|
260
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
261
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE SET NULL
|
|
262
|
+
)
|
|
263
263
|
`);
|
|
264
|
-
this.db.run(`
|
|
265
|
-
CREATE TABLE IF NOT EXISTS providers (
|
|
266
|
-
id TEXT PRIMARY KEY,
|
|
267
|
-
name TEXT NOT NULL,
|
|
268
|
-
api_key TEXT NOT NULL,
|
|
269
|
-
base_url TEXT DEFAULT 'https://api.openai.com/v1',
|
|
270
|
-
enabled INTEGER DEFAULT 1,
|
|
271
|
-
is_default INTEGER DEFAULT 0,
|
|
272
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
273
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
274
|
-
)
|
|
264
|
+
this.db.run(`
|
|
265
|
+
CREATE TABLE IF NOT EXISTS providers (
|
|
266
|
+
id TEXT PRIMARY KEY,
|
|
267
|
+
name TEXT NOT NULL,
|
|
268
|
+
api_key TEXT NOT NULL,
|
|
269
|
+
base_url TEXT DEFAULT 'https://api.openai.com/v1',
|
|
270
|
+
enabled INTEGER DEFAULT 1,
|
|
271
|
+
is_default INTEGER DEFAULT 0,
|
|
272
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
273
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
274
|
+
)
|
|
275
275
|
`);
|
|
276
|
-
this.db.run(`
|
|
277
|
-
CREATE TABLE IF NOT EXISTS models (
|
|
278
|
-
id TEXT PRIMARY KEY,
|
|
279
|
-
provider_id TEXT NOT NULL,
|
|
280
|
-
name TEXT NOT NULL,
|
|
281
|
-
context_window INTEGER DEFAULT 4096,
|
|
282
|
-
max_output_tokens INTEGER DEFAULT 4096,
|
|
283
|
-
supports_vision INTEGER DEFAULT 0,
|
|
284
|
-
supports_tools INTEGER DEFAULT 1,
|
|
285
|
-
enabled INTEGER DEFAULT 1,
|
|
286
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
287
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
288
|
-
FOREIGN KEY (provider_id) REFERENCES providers(id) ON DELETE CASCADE
|
|
289
|
-
)
|
|
276
|
+
this.db.run(`
|
|
277
|
+
CREATE TABLE IF NOT EXISTS models (
|
|
278
|
+
id TEXT PRIMARY KEY,
|
|
279
|
+
provider_id TEXT NOT NULL,
|
|
280
|
+
name TEXT NOT NULL,
|
|
281
|
+
context_window INTEGER DEFAULT 4096,
|
|
282
|
+
max_output_tokens INTEGER DEFAULT 4096,
|
|
283
|
+
supports_vision INTEGER DEFAULT 0,
|
|
284
|
+
supports_tools INTEGER DEFAULT 1,
|
|
285
|
+
enabled INTEGER DEFAULT 1,
|
|
286
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
287
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
288
|
+
FOREIGN KEY (provider_id) REFERENCES providers(id) ON DELETE CASCADE
|
|
289
|
+
)
|
|
290
290
|
`);
|
|
291
|
-
this.db.run(`
|
|
292
|
-
CREATE TABLE IF NOT EXISTS config (
|
|
293
|
-
key TEXT PRIMARY KEY,
|
|
294
|
-
value TEXT NOT NULL,
|
|
295
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
296
|
-
)
|
|
291
|
+
this.db.run(`
|
|
292
|
+
CREATE TABLE IF NOT EXISTS config (
|
|
293
|
+
key TEXT PRIMARY KEY,
|
|
294
|
+
value TEXT NOT NULL,
|
|
295
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
296
|
+
)
|
|
297
297
|
`);
|
|
298
|
-
this.db.run(`
|
|
299
|
-
CREATE TABLE IF NOT EXISTS dingding_config (
|
|
300
|
-
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
301
|
-
enabled INTEGER DEFAULT 0,
|
|
302
|
-
client_id TEXT DEFAULT '',
|
|
303
|
-
client_secret TEXT DEFAULT '',
|
|
304
|
-
bot_name TEXT DEFAULT '',
|
|
305
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
306
|
-
)
|
|
298
|
+
this.db.run(`
|
|
299
|
+
CREATE TABLE IF NOT EXISTS dingding_config (
|
|
300
|
+
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
301
|
+
enabled INTEGER DEFAULT 0,
|
|
302
|
+
client_id TEXT DEFAULT '',
|
|
303
|
+
client_secret TEXT DEFAULT '',
|
|
304
|
+
bot_name TEXT DEFAULT '',
|
|
305
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
306
|
+
)
|
|
307
307
|
`);
|
|
308
308
|
this.db.run(`INSERT OR IGNORE INTO dingding_config (id) VALUES (1)`);
|
|
309
309
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_messages_session_id ON messages(session_id)`);
|
|
@@ -384,14 +384,14 @@ export class DbService {
|
|
|
384
384
|
migration003AddLspServers() {
|
|
385
385
|
if (!this.db)
|
|
386
386
|
return;
|
|
387
|
-
this.db.run(`
|
|
388
|
-
CREATE TABLE IF NOT EXISTS lsp_server (
|
|
389
|
-
id TEXT PRIMARY KEY,
|
|
390
|
-
enabled INTEGER NOT NULL DEFAULT 0,
|
|
391
|
-
auto_start INTEGER NOT NULL DEFAULT 1,
|
|
392
|
-
created_at INTEGER NOT NULL,
|
|
393
|
-
updated_at INTEGER NOT NULL
|
|
394
|
-
)
|
|
387
|
+
this.db.run(`
|
|
388
|
+
CREATE TABLE IF NOT EXISTS lsp_server (
|
|
389
|
+
id TEXT PRIMARY KEY,
|
|
390
|
+
enabled INTEGER NOT NULL DEFAULT 0,
|
|
391
|
+
auto_start INTEGER NOT NULL DEFAULT 1,
|
|
392
|
+
created_at INTEGER NOT NULL,
|
|
393
|
+
updated_at INTEGER NOT NULL
|
|
394
|
+
)
|
|
395
395
|
`);
|
|
396
396
|
const now = Date.now();
|
|
397
397
|
const defaultServers = [
|
|
@@ -407,16 +407,16 @@ export class DbService {
|
|
|
407
407
|
migration004AddProjects() {
|
|
408
408
|
if (!this.db)
|
|
409
409
|
return;
|
|
410
|
-
this.db.run(`
|
|
411
|
-
CREATE TABLE IF NOT EXISTS projects (
|
|
412
|
-
id TEXT PRIMARY KEY,
|
|
413
|
-
name TEXT NOT NULL,
|
|
414
|
-
path TEXT NOT NULL UNIQUE,
|
|
415
|
-
description TEXT DEFAULT '',
|
|
416
|
-
is_active INTEGER DEFAULT 0,
|
|
417
|
-
is_favorite INTEGER DEFAULT 0,
|
|
418
|
-
last_opened_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
419
|
-
)
|
|
410
|
+
this.db.run(`
|
|
411
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
412
|
+
id TEXT PRIMARY KEY,
|
|
413
|
+
name TEXT NOT NULL,
|
|
414
|
+
path TEXT NOT NULL UNIQUE,
|
|
415
|
+
description TEXT DEFAULT '',
|
|
416
|
+
is_active INTEGER DEFAULT 0,
|
|
417
|
+
is_favorite INTEGER DEFAULT 0,
|
|
418
|
+
last_opened_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
419
|
+
)
|
|
420
420
|
`);
|
|
421
421
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_projects_path ON projects(path)`);
|
|
422
422
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_projects_active ON projects(is_active)`);
|
|
@@ -424,21 +424,21 @@ export class DbService {
|
|
|
424
424
|
migration005AddAiCallLogs() {
|
|
425
425
|
if (!this.db)
|
|
426
426
|
return;
|
|
427
|
-
this.db.run(`
|
|
428
|
-
CREATE TABLE IF NOT EXISTS ai_call_logs (
|
|
429
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
430
|
-
model_address TEXT NOT NULL,
|
|
431
|
-
model_name TEXT NOT NULL,
|
|
432
|
-
request_time DATETIME DEFAULT (datetime('now', 'localtime')),
|
|
433
|
-
response_time DATETIME,
|
|
434
|
-
duration_ms INTEGER DEFAULT 0,
|
|
435
|
-
input_tokens INTEGER DEFAULT 0,
|
|
436
|
-
output_tokens INTEGER DEFAULT 0,
|
|
437
|
-
cost REAL DEFAULT 0,
|
|
438
|
-
call_type TEXT NOT NULL CHECK (call_type IN ('tool_call', 'normal')),
|
|
439
|
-
session_id TEXT,
|
|
440
|
-
created_at DATETIME DEFAULT (datetime('now', 'localtime'))
|
|
441
|
-
)
|
|
427
|
+
this.db.run(`
|
|
428
|
+
CREATE TABLE IF NOT EXISTS ai_call_logs (
|
|
429
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
430
|
+
model_address TEXT NOT NULL,
|
|
431
|
+
model_name TEXT NOT NULL,
|
|
432
|
+
request_time DATETIME DEFAULT (datetime('now', 'localtime')),
|
|
433
|
+
response_time DATETIME,
|
|
434
|
+
duration_ms INTEGER DEFAULT 0,
|
|
435
|
+
input_tokens INTEGER DEFAULT 0,
|
|
436
|
+
output_tokens INTEGER DEFAULT 0,
|
|
437
|
+
cost REAL DEFAULT 0,
|
|
438
|
+
call_type TEXT NOT NULL CHECK (call_type IN ('tool_call', 'normal')),
|
|
439
|
+
session_id TEXT,
|
|
440
|
+
created_at DATETIME DEFAULT (datetime('now', 'localtime'))
|
|
441
|
+
)
|
|
442
442
|
`);
|
|
443
443
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_ai_logs_request_time ON ai_call_logs(request_time)`);
|
|
444
444
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_ai_logs_session_id ON ai_call_logs(session_id)`);
|
|
@@ -447,55 +447,55 @@ export class DbService {
|
|
|
447
447
|
migration006AddDingdingConfig() {
|
|
448
448
|
if (!this.db)
|
|
449
449
|
return;
|
|
450
|
-
this.db.run(`
|
|
451
|
-
CREATE TABLE IF NOT EXISTS dingding_config (
|
|
452
|
-
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
453
|
-
enabled INTEGER DEFAULT 0,
|
|
454
|
-
client_id TEXT DEFAULT '',
|
|
455
|
-
client_secret TEXT DEFAULT '',
|
|
456
|
-
bot_name TEXT DEFAULT '',
|
|
457
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
458
|
-
)
|
|
450
|
+
this.db.run(`
|
|
451
|
+
CREATE TABLE IF NOT EXISTS dingding_config (
|
|
452
|
+
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
453
|
+
enabled INTEGER DEFAULT 0,
|
|
454
|
+
client_id TEXT DEFAULT '',
|
|
455
|
+
client_secret TEXT DEFAULT '',
|
|
456
|
+
bot_name TEXT DEFAULT '',
|
|
457
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
458
|
+
)
|
|
459
459
|
`);
|
|
460
460
|
this.db.run(`INSERT OR IGNORE INTO dingding_config (id) VALUES (1)`);
|
|
461
461
|
}
|
|
462
462
|
migration007AddScheduledTasks() {
|
|
463
463
|
if (!this.db)
|
|
464
464
|
return;
|
|
465
|
-
this.db.run(`
|
|
466
|
-
CREATE TABLE IF NOT EXISTS scheduled_tasks (
|
|
467
|
-
id TEXT PRIMARY KEY,
|
|
468
|
-
name TEXT NOT NULL,
|
|
469
|
-
schedule_type TEXT NOT NULL,
|
|
470
|
-
model TEXT NOT NULL,
|
|
471
|
-
content TEXT NOT NULL,
|
|
472
|
-
notify_type TEXT NOT NULL DEFAULT 'message',
|
|
473
|
-
enabled INTEGER DEFAULT 1,
|
|
474
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
475
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
476
|
-
)
|
|
465
|
+
this.db.run(`
|
|
466
|
+
CREATE TABLE IF NOT EXISTS scheduled_tasks (
|
|
467
|
+
id TEXT PRIMARY KEY,
|
|
468
|
+
name TEXT NOT NULL,
|
|
469
|
+
schedule_type TEXT NOT NULL,
|
|
470
|
+
model TEXT NOT NULL,
|
|
471
|
+
content TEXT NOT NULL,
|
|
472
|
+
notify_type TEXT NOT NULL DEFAULT 'message',
|
|
473
|
+
enabled INTEGER DEFAULT 1,
|
|
474
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
475
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
476
|
+
)
|
|
477
477
|
`);
|
|
478
|
-
this.db.run(`
|
|
479
|
-
CREATE TABLE IF NOT EXISTS task_skills (
|
|
480
|
-
id TEXT PRIMARY KEY,
|
|
481
|
-
task_id TEXT NOT NULL,
|
|
482
|
-
skill TEXT NOT NULL,
|
|
483
|
-
skill_order INTEGER DEFAULT 0,
|
|
484
|
-
FOREIGN KEY (task_id) REFERENCES scheduled_tasks(id) ON DELETE CASCADE
|
|
485
|
-
)
|
|
478
|
+
this.db.run(`
|
|
479
|
+
CREATE TABLE IF NOT EXISTS task_skills (
|
|
480
|
+
id TEXT PRIMARY KEY,
|
|
481
|
+
task_id TEXT NOT NULL,
|
|
482
|
+
skill TEXT NOT NULL,
|
|
483
|
+
skill_order INTEGER DEFAULT 0,
|
|
484
|
+
FOREIGN KEY (task_id) REFERENCES scheduled_tasks(id) ON DELETE CASCADE
|
|
485
|
+
)
|
|
486
486
|
`);
|
|
487
|
-
this.db.run(`
|
|
488
|
-
CREATE TABLE IF NOT EXISTS task_logs (
|
|
489
|
-
id TEXT PRIMARY KEY,
|
|
490
|
-
task_id TEXT NOT NULL,
|
|
491
|
-
status TEXT NOT NULL CHECK (status IN ('success', 'failed')),
|
|
492
|
-
prompt TEXT,
|
|
493
|
-
result TEXT,
|
|
494
|
-
error TEXT,
|
|
495
|
-
duration INTEGER,
|
|
496
|
-
executed_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
497
|
-
FOREIGN KEY (task_id) REFERENCES scheduled_tasks(id) ON DELETE CASCADE
|
|
498
|
-
)
|
|
487
|
+
this.db.run(`
|
|
488
|
+
CREATE TABLE IF NOT EXISTS task_logs (
|
|
489
|
+
id TEXT PRIMARY KEY,
|
|
490
|
+
task_id TEXT NOT NULL,
|
|
491
|
+
status TEXT NOT NULL CHECK (status IN ('success', 'failed')),
|
|
492
|
+
prompt TEXT,
|
|
493
|
+
result TEXT,
|
|
494
|
+
error TEXT,
|
|
495
|
+
duration INTEGER,
|
|
496
|
+
executed_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
497
|
+
FOREIGN KEY (task_id) REFERENCES scheduled_tasks(id) ON DELETE CASCADE
|
|
498
|
+
)
|
|
499
499
|
`);
|
|
500
500
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_task_skills_task_id ON task_skills(task_id)`);
|
|
501
501
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_task_logs_task_id ON task_logs(task_id)`);
|
|
@@ -504,20 +504,20 @@ export class DbService {
|
|
|
504
504
|
migration008AddEmailConfig() {
|
|
505
505
|
if (!this.db)
|
|
506
506
|
return;
|
|
507
|
-
this.db.run(`
|
|
508
|
-
CREATE TABLE IF NOT EXISTS email_config (
|
|
509
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
510
|
-
name TEXT NOT NULL,
|
|
511
|
-
host TEXT NOT NULL,
|
|
512
|
-
port INTEGER DEFAULT 587,
|
|
513
|
-
secure INTEGER DEFAULT 0,
|
|
514
|
-
user TEXT NOT NULL,
|
|
515
|
-
password TEXT NOT NULL,
|
|
516
|
-
from_name TEXT,
|
|
517
|
-
is_default INTEGER DEFAULT 0,
|
|
518
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
519
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
520
|
-
)
|
|
507
|
+
this.db.run(`
|
|
508
|
+
CREATE TABLE IF NOT EXISTS email_config (
|
|
509
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
510
|
+
name TEXT NOT NULL,
|
|
511
|
+
host TEXT NOT NULL,
|
|
512
|
+
port INTEGER DEFAULT 587,
|
|
513
|
+
secure INTEGER DEFAULT 0,
|
|
514
|
+
user TEXT NOT NULL,
|
|
515
|
+
password TEXT NOT NULL,
|
|
516
|
+
from_name TEXT,
|
|
517
|
+
is_default INTEGER DEFAULT 0,
|
|
518
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
519
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
520
|
+
)
|
|
521
521
|
`);
|
|
522
522
|
}
|
|
523
523
|
migration009AddSessionStatus() {
|
|
@@ -531,116 +531,116 @@ export class DbService {
|
|
|
531
531
|
migration010AddCustomActions() {
|
|
532
532
|
if (!this.db)
|
|
533
533
|
return;
|
|
534
|
-
this.db.run(`
|
|
535
|
-
CREATE TABLE IF NOT EXISTS custom_actions (
|
|
536
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
537
|
-
action_type TEXT NOT NULL CHECK(action_type IN ('design', 'code', 'test')),
|
|
538
|
-
name TEXT NOT NULL,
|
|
539
|
-
prompt TEXT NOT NULL,
|
|
540
|
-
auto_send INTEGER DEFAULT 0,
|
|
541
|
-
sort_order INTEGER DEFAULT 0,
|
|
542
|
-
created_at TEXT DEFAULT (datetime('now'))
|
|
543
|
-
)
|
|
534
|
+
this.db.run(`
|
|
535
|
+
CREATE TABLE IF NOT EXISTS custom_actions (
|
|
536
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
537
|
+
action_type TEXT NOT NULL CHECK(action_type IN ('design', 'code', 'test')),
|
|
538
|
+
name TEXT NOT NULL,
|
|
539
|
+
prompt TEXT NOT NULL,
|
|
540
|
+
auto_send INTEGER DEFAULT 0,
|
|
541
|
+
sort_order INTEGER DEFAULT 0,
|
|
542
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
543
|
+
)
|
|
544
544
|
`);
|
|
545
545
|
}
|
|
546
546
|
migration011AddWafGatewayConfig() {
|
|
547
547
|
if (!this.db)
|
|
548
548
|
return;
|
|
549
|
-
this.db.run(`
|
|
550
|
-
CREATE TABLE IF NOT EXISTS waf_gateway_config (
|
|
551
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
552
|
-
secret_key TEXT DEFAULT '',
|
|
553
|
-
server_ip TEXT DEFAULT '',
|
|
554
|
-
status TEXT DEFAULT 'stopped',
|
|
555
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
556
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
557
|
-
)
|
|
549
|
+
this.db.run(`
|
|
550
|
+
CREATE TABLE IF NOT EXISTS waf_gateway_config (
|
|
551
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
552
|
+
secret_key TEXT DEFAULT '',
|
|
553
|
+
server_ip TEXT DEFAULT '',
|
|
554
|
+
status TEXT DEFAULT 'stopped',
|
|
555
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
556
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
557
|
+
)
|
|
558
558
|
`);
|
|
559
559
|
this.db.run(`INSERT OR IGNORE INTO waf_gateway_config (id) VALUES (1)`);
|
|
560
560
|
}
|
|
561
561
|
migration012AddSpecRepositories() {
|
|
562
562
|
if (!this.db)
|
|
563
563
|
return;
|
|
564
|
-
this.db.run(`
|
|
565
|
-
CREATE TABLE IF NOT EXISTS spec_repositories (
|
|
566
|
-
id TEXT PRIMARY KEY,
|
|
567
|
-
name TEXT NOT NULL,
|
|
568
|
-
url TEXT NOT NULL,
|
|
569
|
-
type TEXT DEFAULT 'default',
|
|
570
|
-
enabled INTEGER DEFAULT 1,
|
|
571
|
-
repo_path TEXT,
|
|
572
|
-
last_sync_at DATETIME,
|
|
573
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
574
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
575
|
-
)
|
|
564
|
+
this.db.run(`
|
|
565
|
+
CREATE TABLE IF NOT EXISTS spec_repositories (
|
|
566
|
+
id TEXT PRIMARY KEY,
|
|
567
|
+
name TEXT NOT NULL,
|
|
568
|
+
url TEXT NOT NULL,
|
|
569
|
+
type TEXT DEFAULT 'default',
|
|
570
|
+
enabled INTEGER DEFAULT 1,
|
|
571
|
+
repo_path TEXT,
|
|
572
|
+
last_sync_at DATETIME,
|
|
573
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
574
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
575
|
+
)
|
|
576
576
|
`);
|
|
577
577
|
const columns = this.getTableColumns('spec_repositories');
|
|
578
578
|
if (!columns.includes('repo_path')) {
|
|
579
579
|
this.db.run('ALTER TABLE spec_repositories ADD COLUMN repo_path TEXT');
|
|
580
580
|
}
|
|
581
|
-
this.db.run(`
|
|
582
|
-
INSERT OR IGNORE INTO spec_repositories (id, name, url, type, repo_path)
|
|
583
|
-
VALUES ('default', 'txcode官方规范库', 'https://gitee.com/homecommunity/txcode', 'default', '')
|
|
581
|
+
this.db.run(`
|
|
582
|
+
INSERT OR IGNORE INTO spec_repositories (id, name, url, type, repo_path)
|
|
583
|
+
VALUES ('default', 'txcode官方规范库', 'https://gitee.com/homecommunity/txcode', 'default', '')
|
|
584
584
|
`);
|
|
585
585
|
}
|
|
586
586
|
migration014AddZihaoConfig() {
|
|
587
587
|
if (!this.db)
|
|
588
588
|
return;
|
|
589
|
-
this.db.run(`
|
|
590
|
-
CREATE TABLE IF NOT EXISTS zihao_config (
|
|
591
|
-
id TEXT PRIMARY KEY,
|
|
592
|
-
name TEXT NOT NULL,
|
|
593
|
-
url TEXT NOT NULL,
|
|
594
|
-
username TEXT NOT NULL,
|
|
595
|
-
password TEXT NOT NULL,
|
|
596
|
-
is_active INTEGER DEFAULT 0,
|
|
597
|
-
created_at TEXT DEFAULT (datetime('now')),
|
|
598
|
-
updated_at TEXT DEFAULT (datetime('now'))
|
|
599
|
-
)
|
|
589
|
+
this.db.run(`
|
|
590
|
+
CREATE TABLE IF NOT EXISTS zihao_config (
|
|
591
|
+
id TEXT PRIMARY KEY,
|
|
592
|
+
name TEXT NOT NULL,
|
|
593
|
+
url TEXT NOT NULL,
|
|
594
|
+
username TEXT NOT NULL,
|
|
595
|
+
password TEXT NOT NULL,
|
|
596
|
+
is_active INTEGER DEFAULT 0,
|
|
597
|
+
created_at TEXT DEFAULT (datetime('now')),
|
|
598
|
+
updated_at TEXT DEFAULT (datetime('now'))
|
|
599
|
+
)
|
|
600
600
|
`);
|
|
601
601
|
}
|
|
602
602
|
migration015ProviderAuth() {
|
|
603
603
|
if (!this.db)
|
|
604
604
|
return;
|
|
605
|
-
this.db.run(`
|
|
606
|
-
CREATE TABLE IF NOT EXISTS provider_auth (
|
|
607
|
-
id TEXT PRIMARY KEY,
|
|
608
|
-
provider_name TEXT NOT NULL,
|
|
609
|
-
key TEXT NOT NULL DEFAULT '',
|
|
610
|
-
auth_url TEXT DEFAULT '',
|
|
611
|
-
active INTEGER DEFAULT 0,
|
|
612
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
613
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
614
|
-
)
|
|
605
|
+
this.db.run(`
|
|
606
|
+
CREATE TABLE IF NOT EXISTS provider_auth (
|
|
607
|
+
id TEXT PRIMARY KEY,
|
|
608
|
+
provider_name TEXT NOT NULL,
|
|
609
|
+
key TEXT NOT NULL DEFAULT '',
|
|
610
|
+
auth_url TEXT DEFAULT '',
|
|
611
|
+
active INTEGER DEFAULT 0,
|
|
612
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
613
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
614
|
+
)
|
|
615
615
|
`);
|
|
616
616
|
}
|
|
617
617
|
migration016ProviderAuth() {
|
|
618
618
|
if (!this.db)
|
|
619
619
|
return;
|
|
620
|
-
this.db.run(`
|
|
621
|
-
CREATE TABLE IF NOT EXISTS provider_auth (
|
|
622
|
-
id TEXT PRIMARY KEY,
|
|
623
|
-
provider_name TEXT NOT NULL,
|
|
624
|
-
key TEXT NOT NULL DEFAULT '',
|
|
625
|
-
auth_url TEXT DEFAULT '',
|
|
626
|
-
active INTEGER DEFAULT 0,
|
|
627
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
628
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
629
|
-
)
|
|
620
|
+
this.db.run(`
|
|
621
|
+
CREATE TABLE IF NOT EXISTS provider_auth (
|
|
622
|
+
id TEXT PRIMARY KEY,
|
|
623
|
+
provider_name TEXT NOT NULL,
|
|
624
|
+
key TEXT NOT NULL DEFAULT '',
|
|
625
|
+
auth_url TEXT DEFAULT '',
|
|
626
|
+
active INTEGER DEFAULT 0,
|
|
627
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
628
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
629
|
+
)
|
|
630
630
|
`);
|
|
631
631
|
}
|
|
632
632
|
migration017ProxyConfig() {
|
|
633
633
|
if (!this.db)
|
|
634
634
|
return;
|
|
635
|
-
this.db.run(`
|
|
636
|
-
CREATE TABLE IF NOT EXISTS proxy_config (
|
|
637
|
-
id INTEGER PRIMARY KEY DEFAULT 1,
|
|
638
|
-
enabled INTEGER DEFAULT 0,
|
|
639
|
-
type TEXT DEFAULT 'http',
|
|
640
|
-
host TEXT DEFAULT '',
|
|
641
|
-
port INTEGER DEFAULT 1080,
|
|
642
|
-
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
643
|
-
)
|
|
635
|
+
this.db.run(`
|
|
636
|
+
CREATE TABLE IF NOT EXISTS proxy_config (
|
|
637
|
+
id INTEGER PRIMARY KEY DEFAULT 1,
|
|
638
|
+
enabled INTEGER DEFAULT 0,
|
|
639
|
+
type TEXT DEFAULT 'http',
|
|
640
|
+
host TEXT DEFAULT '',
|
|
641
|
+
port INTEGER DEFAULT 1080,
|
|
642
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
643
|
+
)
|
|
644
644
|
`);
|
|
645
645
|
this.db.run(`INSERT OR IGNORE INTO proxy_config (id) VALUES (1)`);
|
|
646
646
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { dbService } from '../db/db.service.js';
|
|
2
2
|
export class EmailConfigRepository {
|
|
3
3
|
create(config) {
|
|
4
|
-
const result = dbService.run(`INSERT INTO email_config (name, host, port, secure, user, password, from_name, is_default)
|
|
4
|
+
const result = dbService.run(`INSERT INTO email_config (name, host, port, secure, user, password, from_name, is_default)
|
|
5
5
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [config.name, config.host, config.port, config.secure, config.user, config.password, config.from_name || null, config.is_default]);
|
|
6
6
|
return { id: result.lastInsertRowid };
|
|
7
7
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface Project {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
path: string;
|
|
5
|
+
description: string;
|
|
6
|
+
is_active: number;
|
|
7
|
+
is_favorite: number;
|
|
8
|
+
last_opened_at: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class ProjectRepository {
|
|
11
|
+
private normalizeId;
|
|
12
|
+
findAll(): Project[];
|
|
13
|
+
findById(id: string | string[]): Project | undefined;
|
|
14
|
+
findByPath(path: string): Project | undefined;
|
|
15
|
+
findActive(): Project | undefined;
|
|
16
|
+
insert(data: {
|
|
17
|
+
name: string;
|
|
18
|
+
path: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
}): Project;
|
|
21
|
+
update(id: string, data: {
|
|
22
|
+
name?: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
}): void;
|
|
25
|
+
setActive(id: string): void;
|
|
26
|
+
delete(id: string): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=project.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.repository.d.ts","sourceRoot":"","sources":["../../../src/modules/repositories/project.repository.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW;IAInB,OAAO,IAAI,OAAO,EAAE;IAMpB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS;IAIpD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI7C,UAAU,IAAI,OAAO,GAAG,SAAS;IAIjC,MAAM,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAS3E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAmBhE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAGzB"}
|