tianxincode 1.0.33 → 1.0.35

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 (113) hide show
  1. package/dist/api/config-export-import.routes.d.ts +9 -0
  2. package/dist/api/config-export-import.routes.d.ts.map +1 -0
  3. package/dist/api/config-export-import.routes.js +52 -0
  4. package/dist/api/config-export-import.routes.js.map +1 -0
  5. package/dist/api/devlog.routes.d.ts.map +1 -1
  6. package/dist/api/devlog.routes.js +2 -1
  7. package/dist/api/devlog.routes.js.map +1 -1
  8. package/dist/api/filesystem.routes.d.ts.map +1 -1
  9. package/dist/api/filesystem.routes.js +125 -0
  10. package/dist/api/filesystem.routes.js.map +1 -1
  11. package/dist/api/index.d.ts.map +1 -1
  12. package/dist/api/index.js +5 -0
  13. package/dist/api/index.js.map +1 -1
  14. package/dist/api/oss.routes.d.ts +17 -0
  15. package/dist/api/oss.routes.d.ts.map +1 -0
  16. package/dist/api/oss.routes.js +262 -0
  17. package/dist/api/oss.routes.js.map +1 -0
  18. package/dist/components/Header.js +1 -1
  19. package/dist/config/tx.config.js +1 -1
  20. package/dist/config/tx.config.js.map +1 -1
  21. package/dist/modules/ai/agents/chat/chat.agent.d.ts +2 -2
  22. package/dist/modules/ai/agents/chat/chat.agent.d.ts.map +1 -1
  23. package/dist/modules/ai/agents/code/code.agent.d.ts +2 -2
  24. package/dist/modules/ai/agents/code/code.agent.d.ts.map +1 -1
  25. package/dist/modules/ai/agents/code/code.agent.js +1 -0
  26. package/dist/modules/ai/agents/code/code.agent.js.map +1 -1
  27. package/dist/modules/ai/agents/mem/mem.agent.d.ts +2 -3
  28. package/dist/modules/ai/agents/mem/mem.agent.d.ts.map +1 -1
  29. package/dist/modules/ai/agents/skill/skill.agent.d.ts +2 -3
  30. package/dist/modules/ai/agents/skill/skill.agent.d.ts.map +1 -1
  31. package/dist/modules/ai/agents/task/task.agent.d.ts +2 -2
  32. package/dist/modules/ai/agents/task/task.agent.d.ts.map +1 -1
  33. package/dist/modules/ai/ai.service.d.ts +1 -1
  34. package/dist/modules/ai/ai.service.d.ts.map +1 -1
  35. package/dist/modules/ai/ai.service.js +3 -2
  36. package/dist/modules/ai/ai.service.js.map +1 -1
  37. package/dist/modules/ai/ai.types.d.ts +6 -0
  38. package/dist/modules/ai/ai.types.d.ts.map +1 -1
  39. package/dist/modules/ai/deepseek.provider.d.ts +18 -0
  40. package/dist/modules/ai/deepseek.provider.d.ts.map +1 -0
  41. package/dist/modules/ai/deepseek.provider.js +160 -0
  42. package/dist/modules/ai/deepseek.provider.js.map +1 -0
  43. package/dist/modules/ai/openai.provider.d.ts +2 -2
  44. package/dist/modules/ai/openai.provider.d.ts.map +1 -1
  45. package/dist/modules/ai/openai.provider.js +2 -0
  46. package/dist/modules/ai/openai.provider.js.map +1 -1
  47. package/dist/modules/ai/provider/openai/openai-agent.d.ts +2 -2
  48. package/dist/modules/ai/provider/openai/openai-agent.d.ts.map +1 -1
  49. package/dist/modules/ai/provider/openai/openai-agent.js.map +1 -1
  50. package/dist/modules/ai/provider.d.ts +8 -0
  51. package/dist/modules/ai/provider.d.ts.map +1 -0
  52. package/dist/modules/ai/provider.js +18 -0
  53. package/dist/modules/ai/provider.js.map +1 -0
  54. package/dist/modules/ai/summarizer/summarizer.service.d.ts.map +1 -1
  55. package/dist/modules/ai/summarizer/summarizer.service.js +2 -2
  56. package/dist/modules/ai/summarizer/summarizer.service.js.map +1 -1
  57. package/dist/modules/db/db.service.d.ts +1 -0
  58. package/dist/modules/db/db.service.d.ts.map +1 -1
  59. package/dist/modules/db/db.service.js +19 -0
  60. package/dist/modules/db/db.service.js.map +1 -1
  61. package/dist/modules/gateway/gateway.service.js +2 -2
  62. package/dist/modules/gateway/gateway.service.js.map +1 -1
  63. package/dist/modules/hooks/handlers/memory.handler.js +2 -2
  64. package/dist/modules/hooks/handlers/memory.handler.js.map +1 -1
  65. package/dist/modules/scheduler/scheduler.service.d.ts.map +1 -1
  66. package/dist/modules/scheduler/scheduler.service.js +2 -2
  67. package/dist/modules/scheduler/scheduler.service.js.map +1 -1
  68. package/dist/repository/oss.repository.d.ts +29 -0
  69. package/dist/repository/oss.repository.d.ts.map +1 -0
  70. package/dist/repository/oss.repository.js +71 -0
  71. package/dist/repository/oss.repository.js.map +1 -0
  72. package/dist/service/config-export-import.service.d.ts +17 -0
  73. package/dist/service/config-export-import.service.d.ts.map +1 -0
  74. package/dist/service/config-export-import.service.js +146 -0
  75. package/dist/service/config-export-import.service.js.map +1 -0
  76. package/dist/services/codeChat/codeChat.service.d.ts.map +1 -1
  77. package/dist/services/codeChat/codeChat.service.js +8 -2
  78. package/dist/services/codeChat/codeChat.service.js.map +1 -1
  79. package/dist/services/oss.service.d.ts +46 -0
  80. package/dist/services/oss.service.d.ts.map +1 -0
  81. package/dist/services/oss.service.js +293 -0
  82. package/dist/services/oss.service.js.map +1 -0
  83. package/package.json +7 -3
  84. package/web/dist/assets/{AiLogsView-DLdmCLAV.js → AiLogsView-CZDdruX3.js} +1 -1
  85. package/web/dist/assets/{ConfirmDialog-C5BazMx0.js → ConfirmDialog-DNN9c3qV.js} +1 -1
  86. package/web/dist/assets/{CustomActionsView-DYX---vp.js → CustomActionsView-DAUT8m4H.js} +1 -1
  87. package/web/dist/assets/{DevWorkflowView-BtqdrdPn.js → DevWorkflowView-D-BHNVlF.js} +1 -1
  88. package/web/dist/assets/{DevWorkflowView-Bv1nkO-S.js → DevWorkflowView-DfDPCHsO.js} +1 -1
  89. package/web/dist/assets/{GitChanges-O_ZspOc3.js → GitChanges-Diumgd1t.js} +1 -1
  90. package/web/dist/assets/{GitChangesApp-BVlepTyQ.js → GitChangesApp-CpM1D7zI.js} +1 -1
  91. package/web/dist/assets/{Layout-DOqdkHIv.js → Layout-CjginIPg.js} +1 -1
  92. package/web/dist/assets/{TasksView-kUViii-F.js → TasksView-DjRpvNNC.js} +1 -1
  93. package/web/dist/assets/{TerminalView-qv4esE19.js → TerminalView-Dr5Y4Hr4.js} +1 -1
  94. package/web/dist/assets/{WikiView-DqX8z-Jc.js → WikiView-BrFofEnd.js} +1 -1
  95. package/web/dist/assets/{cssMode-BB8XGFYR.js → cssMode-BjUCfvnz.js} +1 -1
  96. package/web/dist/assets/fileOss-DQjk90GC.js +3 -0
  97. package/web/dist/assets/{freemarker2-BlpSJVD-.js → freemarker2-D-aZ8UC8.js} +1 -1
  98. package/web/dist/assets/{handlebars-CswUZKdZ.js → handlebars-BzncievY.js} +1 -1
  99. package/web/dist/assets/{html-Ci2PHvms.js → html-CoRwRAFZ.js} +1 -1
  100. package/web/dist/assets/{htmlMode-zRdS-hh7.js → htmlMode-KlQ9cf9Q.js} +1 -1
  101. package/web/dist/assets/{index-ffWct9iR.js → index-CtYAz0lP.js} +168 -168
  102. package/web/dist/assets/{index-5hw2SjQ7.css → index-zVlHq1KH.css} +1 -1
  103. package/web/dist/assets/{javascript-CPceOgQD.js → javascript-PQl5d3Tu.js} +1 -1
  104. package/web/dist/assets/{jsonMode-CT-Dhs_h.js → jsonMode-D83lnlpP.js} +1 -1
  105. package/web/dist/assets/{liquid-C2xTeb9a.js → liquid-CIg2c6Ry.js} +1 -1
  106. package/web/dist/assets/{mdx-CVbHJvYl.js → mdx-Uy1BsAAj.js} +1 -1
  107. package/web/dist/assets/{python-DM5_ZOZ7.js → python-5b0f9NQP.js} +1 -1
  108. package/web/dist/assets/{razor-D9yeea5E.js → razor-ahjAzur-.js} +1 -1
  109. package/web/dist/assets/{tsMode-BVfz4QFI.js → tsMode-9g--dhTz.js} +1 -1
  110. package/web/dist/assets/{typescript-CsdldeJG.js → typescript-o85CI_XT.js} +1 -1
  111. package/web/dist/assets/{xml-CwgIZtOy.js → xml-DGPMZ2rF.js} +1 -1
  112. package/web/dist/assets/{yaml-DrD7Sr0t.js → yaml-CDK3Ilzh.js} +1 -1
  113. package/web/dist/index.html +2 -2
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Config Export/Import API 路由
3
+ *
4
+ * 路由列表:
5
+ * - GET /api/config/export -> 导出配置
6
+ * - POST /api/config/import -> 导入配置
7
+ */
8
+ export declare const configExportImportRouter: import("express-serve-static-core").Router;
9
+ //# sourceMappingURL=config-export-import.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-export-import.routes.d.ts","sourceRoot":"","sources":["../../src/api/config-export-import.routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,eAAO,MAAM,wBAAwB,4CAAW,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Config Export/Import API 路由
3
+ *
4
+ * 路由列表:
5
+ * - GET /api/config/export -> 导出配置
6
+ * - POST /api/config/import -> 导入配置
7
+ */
8
+ import { Router } from 'express';
9
+ import yaml from 'js-yaml';
10
+ import { configExportImportService } from '../service/config-export-import.service.js';
11
+ export const configExportImportRouter = Router();
12
+ configExportImportRouter.get('/export', (req, res) => {
13
+ try {
14
+ const data = configExportImportService.exportAll();
15
+ const yamlContent = yaml.dump(data, { skipInvalid: true });
16
+ res.setHeader('Content-Type', 'application/x-yaml');
17
+ res.setHeader('Content-Disposition', 'attachment; filename=config.yml');
18
+ res.send(yamlContent);
19
+ }
20
+ catch (error) {
21
+ res.status(500).json({ success: false, error: '导出失败: ' + error.message });
22
+ }
23
+ });
24
+ configExportImportRouter.post('/import', (req, res) => {
25
+ try {
26
+ const { content } = req.body;
27
+ if (!content) {
28
+ return res.status(400).json({ success: false, error: '请提供配置文件内容' });
29
+ }
30
+ let data;
31
+ try {
32
+ data = yaml.load(content);
33
+ }
34
+ catch (parseError) {
35
+ return res.status(400).json({ success: false, error: 'YAML 格式解析失败: ' + parseError.message });
36
+ }
37
+ if (!data || typeof data !== 'object') {
38
+ return res.status(400).json({ success: false, error: '配置文件格式无效' });
39
+ }
40
+ const result = configExportImportService.importData(data);
41
+ if (result.success) {
42
+ res.json({ success: true, message: result.message });
43
+ }
44
+ else {
45
+ res.status(500).json({ success: false, error: result.message });
46
+ }
47
+ }
48
+ catch (error) {
49
+ res.status(500).json({ success: false, error: '导入失败: ' + error.message });
50
+ }
51
+ });
52
+ //# sourceMappingURL=config-export-import.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-export-import.routes.js","sourceRoot":"","sources":["../../src/api/config-export-import.routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAEvF,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,EAAE,CAAC;AAEjD,wBAAwB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IACtE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,yBAAyB,CAAC,SAAS,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;QACpD,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IACvE,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,UAAe,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"devlog.routes.d.ts","sourceRoot":"","sources":["../../src/api/devlog.routes.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,4CAAW,CAAC"}
1
+ {"version":3,"file":"devlog.routes.d.ts","sourceRoot":"","sources":["../../src/api/devlog.routes.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,4CAAW,CAAC"}
@@ -2,6 +2,7 @@ import { Router } from 'express';
2
2
  import * as fs from 'fs';
3
3
  import * as path from 'path';
4
4
  import { logger } from '../modules/logger/logger.js';
5
+ import { projectService } from '../services/project/project.service.js';
5
6
  export const devlogRouter = Router();
6
7
  devlogRouter.get('/', async (req, res) => {
7
8
  const { sessionId } = req.query;
@@ -14,7 +15,7 @@ devlogRouter.get('/', async (req, res) => {
14
15
  try {
15
16
  const date = new Date().toISOString().slice(0, 10);
16
17
  const sessionIdSuffix = sessionId.slice(-12);
17
- const logPath = path.resolve(process.cwd(), '.txcode', 'session', date, sessionIdSuffix, 'devlog.md');
18
+ const logPath = path.resolve(projectService.getCurrentProjectPath(), '.txcode', 'session', date, sessionIdSuffix, 'devlog.md');
18
19
  let content = '';
19
20
  if (fs.existsSync(logPath)) {
20
21
  content = fs.readFileSync(logPath, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"devlog.routes.js","sourceRoot":"","sources":["../../src/api/devlog.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC;AAErC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;IAEhC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,uBAAuB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;QAEtG,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,OAAO;aACR;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,WAAW,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC7G,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"devlog.routes.js","sourceRoot":"","sources":["../../src/api/devlog.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,cAAc,EAAC,MAAM,uCAAuC,CAAC;AAErE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC;AAErC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;IAEhC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,uBAAuB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;QAE/H,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,OAAO;aACR;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,WAAW,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC7G,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.routes.d.ts","sourceRoot":"","sources":["../../src/api/filesystem.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,eAAO,MAAM,gBAAgB,4CAAW,CAAC"}
1
+ {"version":3,"file":"filesystem.routes.d.ts","sourceRoot":"","sources":["../../src/api/filesystem.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,eAAO,MAAM,gBAAgB,4CAAW,CAAC"}
@@ -10,6 +10,8 @@ import { Router } from 'express';
10
10
  import * as fs from 'fs';
11
11
  import * as path from 'path';
12
12
  import * as os from 'os';
13
+ import multer from 'multer';
14
+ import { pipeline } from 'stream/promises';
13
15
  import { projectService } from '../services/project/project.service.js';
14
16
  function logError(msg, error) {
15
17
  console.error(`[filesystem.routes] ${msg}:`, error);
@@ -195,4 +197,127 @@ function getRootContents() {
195
197
  }
196
198
  return items;
197
199
  }
200
+ const pipelineAsync = pipeline;
201
+ const upload = multer({
202
+ storage: multer.diskStorage({
203
+ destination: (req, file, cb) => {
204
+ cb(null, os.tmpdir());
205
+ },
206
+ filename: (req, file, cb) => {
207
+ const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
208
+ cb(null, uniqueSuffix + '-' + file.originalname);
209
+ }
210
+ }),
211
+ limits: {
212
+ fileSize: 2 * 1024 * 1024 * 1024
213
+ }
214
+ });
215
+ filesystemRouter.post('/upload', upload.single('file'), async (req, res) => {
216
+ const { targetDir, filename } = req.body;
217
+ const file = req.file;
218
+ if (!file || !targetDir) {
219
+ return res.status(400).json({ success: false, error: '参数不完整' });
220
+ }
221
+ const separator = targetDir.includes('\\') ? '\\' : '/';
222
+ const originalName = filename ? decodeURIComponent(filename) : file.originalname;
223
+ const targetPath = path.join(targetDir, originalName);
224
+ try {
225
+ const readStream = fs.createReadStream(file.path);
226
+ const writeStream = fs.createWriteStream(targetPath);
227
+ await pipelineAsync(readStream, writeStream);
228
+ fs.unlinkSync(file.path);
229
+ return res.json({
230
+ success: true,
231
+ data: { path: targetPath }
232
+ });
233
+ }
234
+ catch (error) {
235
+ logError('Failed to upload file:', error);
236
+ res.status(500).json({ success: false, error: '上传失败' });
237
+ }
238
+ });
239
+ filesystemRouter.get('/download', (req, res) => {
240
+ const filePath = req.query.path;
241
+ if (!filePath || !fs.existsSync(filePath)) {
242
+ return res.status(404).json({ success: false, error: '文件不存在' });
243
+ }
244
+ const stats = fs.statSync(filePath);
245
+ if (stats.isDirectory()) {
246
+ return res.status(400).json({ success: false, error: '不能下载目录' });
247
+ }
248
+ const filename = path.basename(filePath);
249
+ res.setHeader('Content-Disposition', `attachment; filename="${encodeURIComponent(filename)}"`);
250
+ res.setHeader('Content-Type', 'application/octet-stream');
251
+ res.setHeader('Content-Length', stats.size);
252
+ const readStream = fs.createReadStream(filePath, {
253
+ highWaterMark: 1024 * 1024
254
+ });
255
+ readStream.pipe(res);
256
+ readStream.on('error', (error) => {
257
+ logError('Download file error:', error);
258
+ if (!res.writableEnded) {
259
+ res.status(500).end('下载失败');
260
+ }
261
+ });
262
+ });
263
+ filesystemRouter.post('/save-file', async (req, res) => {
264
+ const { targetPath, content } = req.body;
265
+ if (!targetPath || content === undefined) {
266
+ return res.status(400).json({ success: false, error: '参数不完整' });
267
+ }
268
+ try {
269
+ const dir = path.dirname(targetPath);
270
+ if (!fs.existsSync(dir)) {
271
+ fs.mkdirSync(dir, { recursive: true });
272
+ }
273
+ fs.writeFileSync(targetPath, Buffer.from(content));
274
+ return res.json({ success: true, data: { path: targetPath } });
275
+ }
276
+ catch (error) {
277
+ logError('Failed to save file:', error);
278
+ res.status(500).json({ success: false, error: '保存失败' });
279
+ }
280
+ });
281
+ filesystemRouter.post('/delete', (req, res) => {
282
+ const { path: targetPath } = req.body;
283
+ if (!targetPath) {
284
+ return res.status(400).json({ success: false, error: '路径必填' });
285
+ }
286
+ if (!fs.existsSync(targetPath)) {
287
+ return res.status(404).json({ success: false, error: '文件不存在' });
288
+ }
289
+ try {
290
+ const stats = fs.statSync(targetPath);
291
+ if (stats.isDirectory()) {
292
+ fs.rmSync(targetPath, { recursive: true, force: true });
293
+ }
294
+ else {
295
+ fs.unlinkSync(targetPath);
296
+ }
297
+ return res.json({ success: true, message: '删除成功' });
298
+ }
299
+ catch (error) {
300
+ logError('Failed to delete:', error);
301
+ res.status(500).json({ success: false, error: '删除失败' });
302
+ }
303
+ });
304
+ filesystemRouter.post('/rename', (req, res) => {
305
+ const { path: oldPath, newName } = req.body;
306
+ if (!oldPath || !newName) {
307
+ return res.status(400).json({ success: false, error: '参数不完整' });
308
+ }
309
+ if (!fs.existsSync(oldPath)) {
310
+ return res.status(404).json({ success: false, error: '文件不存在' });
311
+ }
312
+ try {
313
+ const dir = path.dirname(oldPath);
314
+ const newPath = path.join(dir, newName);
315
+ fs.renameSync(oldPath, newPath);
316
+ return res.json({ success: true, data: { path: newPath } });
317
+ }
318
+ catch (error) {
319
+ logError('Failed to rename:', error);
320
+ res.status(500).json({ success: false, error: '重命名失败' });
321
+ }
322
+ });
198
323
  //# sourceMappingURL=filesystem.routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.routes.js","sourceRoot":"","sources":["../../src/api/filesystem.routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filesystem.routes.js","sourceRoot":"","sources":["../../src/api/filesystem.routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,eAAO,MAAM,SAAS,4CAAW,CAAC;AAwBlC,mBAAmB,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2BH,eAAO,MAAM,SAAS,4CAAW,CAAC;AA2BlC,mBAAmB,gBAAgB,CAAC"}
package/dist/api/index.js CHANGED
@@ -23,9 +23,12 @@ import { specsRouter } from './specs.routes.js';
23
23
  import { wikiRouter } from './wiki.routes.js';
24
24
  import { memoryRouter } from './memory.routes.js';
25
25
  import { devlogRouter } from './devlog.routes.js';
26
+ import { ossRouter } from './oss.routes.js';
27
+ import { configExportImportRouter } from './config-export-import.routes.js';
26
28
  export const apiRouter = Router();
27
29
  apiRouter.use('/chat', chatRouter);
28
30
  apiRouter.use('/sessions', sessionRouter);
31
+ apiRouter.use('/config', configExportImportRouter);
29
32
  apiRouter.use('/config', configRouter);
30
33
  apiRouter.use('/skills', skillsRouter);
31
34
  apiRouter.use('/lsp', lspRouter);
@@ -45,4 +48,6 @@ apiRouter.use('/specs', specsRouter);
45
48
  apiRouter.use('/wiki', wikiRouter);
46
49
  apiRouter.use('/memory', memoryRouter);
47
50
  apiRouter.use('/devlog', devlogRouter);
51
+ apiRouter.use('/oss', ossRouter);
52
+ apiRouter.use('/settings', configExportImportRouter);
48
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * OSS API 路由模块
3
+ *
4
+ * 路由列表:
5
+ * - GET /api/oss/config -> 获取OSS配置
6
+ * - POST /api/oss/config -> 保存OSS配置
7
+ * - POST /api/oss/config/delete -> 删除OSS配置
8
+ * - POST /api/oss/config/active -> 设置激活配置
9
+ * - GET /api/oss/browse -> 浏览OSS文件列表
10
+ * - GET /api/oss/download -> 下载OSS文件
11
+ * - POST /api/oss/upload -> 上传文件到OSS
12
+ * - POST /api/oss/delete -> 删除OSS文件
13
+ * - POST /api/oss/rename -> 重命名OSS文件/文件夹
14
+ * - GET /api/oss/download-url -> 获取文件下载链接
15
+ */
16
+ export declare const ossRouter: import("express-serve-static-core").Router;
17
+ //# sourceMappingURL=oss.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oss.routes.d.ts","sourceRoot":"","sources":["../../src/api/oss.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,eAAO,MAAM,SAAS,4CAAW,CAAC"}
@@ -0,0 +1,262 @@
1
+ /**
2
+ * OSS API 路由模块
3
+ *
4
+ * 路由列表:
5
+ * - GET /api/oss/config -> 获取OSS配置
6
+ * - POST /api/oss/config -> 保存OSS配置
7
+ * - POST /api/oss/config/delete -> 删除OSS配置
8
+ * - POST /api/oss/config/active -> 设置激活配置
9
+ * - GET /api/oss/browse -> 浏览OSS文件列表
10
+ * - GET /api/oss/download -> 下载OSS文件
11
+ * - POST /api/oss/upload -> 上传文件到OSS
12
+ * - POST /api/oss/delete -> 删除OSS文件
13
+ * - POST /api/oss/rename -> 重命名OSS文件/文件夹
14
+ * - GET /api/oss/download-url -> 获取文件下载链接
15
+ */
16
+ import { Router } from 'express';
17
+ import * as fs from 'fs';
18
+ import * as path from 'path';
19
+ import { ossService } from '../services/oss.service.js';
20
+ export const ossRouter = Router();
21
+ function logError(msg, error) {
22
+ console.error(`[oss.routes] ${msg}:`, error);
23
+ }
24
+ ossRouter.get('/config', (req, res) => {
25
+ try {
26
+ const config = ossService.getConfig();
27
+ const configs = ossService.getAllConfigs();
28
+ if (config) {
29
+ const { access_key_secret, ...publicConfig } = config;
30
+ return res.json({
31
+ success: true,
32
+ data: {
33
+ configs,
34
+ active: { ...publicConfig, hasSecret: true }
35
+ }
36
+ });
37
+ }
38
+ return res.json({
39
+ success: true,
40
+ data: {
41
+ configs,
42
+ active: null
43
+ }
44
+ });
45
+ }
46
+ catch (error) {
47
+ logError('获取OSS配置失败:', error);
48
+ res.status(500).json({ success: false, error: '获取OSS配置失败' });
49
+ }
50
+ });
51
+ ossRouter.post('/config', (req, res) => {
52
+ try {
53
+ const { name, endpoint, bucket, access_key_id, access_key_secret, region, id, is_active } = req.body;
54
+ if (!name || !endpoint || !bucket || !access_key_id || !access_key_secret) {
55
+ return res.status(400).json({ success: false, error: '参数不完整' });
56
+ }
57
+ const config = ossService.saveConfig({
58
+ id,
59
+ name,
60
+ endpoint,
61
+ bucket,
62
+ access_key_id,
63
+ access_key_secret,
64
+ region: region || 'cn-hangzhou',
65
+ is_active
66
+ });
67
+ res.json({ success: true, data: config });
68
+ }
69
+ catch (error) {
70
+ logError('保存OSS配置失败:', error);
71
+ res.status(500).json({ success: false, error: '保存OSS配置失败' });
72
+ }
73
+ });
74
+ ossRouter.post('/config/delete', (req, res) => {
75
+ try {
76
+ const { id } = req.body;
77
+ if (!id) {
78
+ return res.status(400).json({ success: false, error: 'id必填' });
79
+ }
80
+ ossService.deleteConfig(id);
81
+ res.json({ success: true, message: '删除成功' });
82
+ }
83
+ catch (error) {
84
+ logError('删除OSS配置失败:', error);
85
+ res.status(500).json({ success: false, error: '删除OSS配置失败' });
86
+ }
87
+ });
88
+ ossRouter.post('/config/active', (req, res) => {
89
+ try {
90
+ const { id } = req.body;
91
+ if (!id) {
92
+ return res.status(400).json({ success: false, error: 'id必填' });
93
+ }
94
+ ossService.setActiveConfig(id);
95
+ res.json({ success: true, message: '设置成功' });
96
+ }
97
+ catch (error) {
98
+ logError('设置激活配置失败:', error);
99
+ res.status(500).json({ success: false, error: '设置激活配置失败' });
100
+ }
101
+ });
102
+ ossRouter.get('/browse', async (req, res) => {
103
+ try {
104
+ const prefix = req.query.prefix || '';
105
+ const result = await ossService.browse(prefix);
106
+ res.json({ success: true, data: result });
107
+ }
108
+ catch (error) {
109
+ logError('浏览OSS失败:', error);
110
+ res.status(500).json({ success: false, error: error.message });
111
+ }
112
+ });
113
+ ossRouter.get('/download', async (req, res) => {
114
+ try {
115
+ const key = req.query.key;
116
+ const targetPath = req.query.targetPath;
117
+ if (!key) {
118
+ return res.status(400).json({ success: false, error: 'key必填' });
119
+ }
120
+ if (!targetPath) {
121
+ return res.status(400).json({ success: false, error: 'targetPath必填' });
122
+ }
123
+ const size = await ossService.getFileSize(key);
124
+ const sendProgress = (progress) => {
125
+ res.write(JSON.stringify({ progress }) + '\n');
126
+ };
127
+ sendProgress(0);
128
+ const result = await ossService.downloadBuffer(key);
129
+ const chunks = [];
130
+ let loaded = 0;
131
+ if (Buffer.isBuffer(result)) {
132
+ chunks.push(result);
133
+ loaded = result.length;
134
+ sendProgress(100);
135
+ }
136
+ else if (result instanceof Uint8Array) {
137
+ chunks.push(result);
138
+ loaded = result.length;
139
+ sendProgress(100);
140
+ }
141
+ else if (result) {
142
+ for await (const chunk of result) {
143
+ chunks.push(chunk);
144
+ loaded += chunk.length;
145
+ sendProgress(Math.round((loaded / size) * 100));
146
+ }
147
+ }
148
+ const buffer = Buffer.concat(chunks);
149
+ const dir = path.dirname(targetPath);
150
+ if (!fs.existsSync(dir)) {
151
+ fs.mkdirSync(dir, { recursive: true });
152
+ }
153
+ fs.writeFileSync(targetPath, buffer);
154
+ sendProgress(100);
155
+ res.write(JSON.stringify({ done: true }) + '\n');
156
+ res.end();
157
+ }
158
+ catch (error) {
159
+ logError('下载OSS文件失败:', error);
160
+ res.write(JSON.stringify({ success: false, error: error.message }) + '\n');
161
+ res.end();
162
+ }
163
+ });
164
+ ossRouter.get('/download-info', async (req, res) => {
165
+ try {
166
+ const key = req.query.key;
167
+ if (!key) {
168
+ return res.status(400).json({ success: false, error: 'key必填' });
169
+ }
170
+ const url = ossService.getDownloadUrl(key, 3600);
171
+ const size = await ossService.getFileSize(key);
172
+ res.json({ success: true, data: { url, size } });
173
+ }
174
+ catch (error) {
175
+ logError('获取OSS下载信息失败:', error);
176
+ res.status(500).json({ success: false, error: error.message });
177
+ }
178
+ });
179
+ ossRouter.get('/download-url', async (req, res) => {
180
+ try {
181
+ const key = req.query.key;
182
+ const expires = parseInt(req.query.expires || '3600', 10);
183
+ if (!key) {
184
+ return res.status(400).json({ success: false, error: 'key必填' });
185
+ }
186
+ const url = ossService.getDownloadUrl(key, expires);
187
+ const size = await ossService.getFileSize(key);
188
+ res.json({ success: true, data: { url, size } });
189
+ }
190
+ catch (error) {
191
+ logError('获取OSS下载链接失败:', error);
192
+ res.status(500).json({ success: false, error: error.message });
193
+ }
194
+ });
195
+ ossRouter.post('/upload', async (req, res) => {
196
+ try {
197
+ const { localPath, ossKey } = req.body;
198
+ if (!localPath || !ossKey) {
199
+ return res.status(400).json({ success: false, error: '参数不完整' });
200
+ }
201
+ if (!fs.existsSync(localPath)) {
202
+ return res.status(404).json({ success: false, error: '本地文件不存在' });
203
+ }
204
+ res.setHeader('Content-Type', 'text/plain');
205
+ res.setHeader('Transfer-Encoding', 'chunked');
206
+ const sendData = (data) => {
207
+ res.write(JSON.stringify(data) + '\n');
208
+ };
209
+ await ossService.upload(localPath, ossKey, (progress) => sendData({ progress: Math.round(progress * 100) }));
210
+ sendData({ success: true, message: '上传成功' });
211
+ res.end();
212
+ }
213
+ catch (error) {
214
+ logError('上传文件到OSS失败:', error);
215
+ res.write(JSON.stringify({ success: false, error: error.message }) + '\n');
216
+ res.end();
217
+ }
218
+ });
219
+ ossRouter.post('/delete', async (req, res) => {
220
+ try {
221
+ const { key } = req.body;
222
+ if (!key) {
223
+ return res.status(400).json({ success: false, error: 'key必填' });
224
+ }
225
+ await ossService.delete(key);
226
+ res.json({ success: true, message: '删除成功' });
227
+ }
228
+ catch (error) {
229
+ logError('删除OSS文件失败:', error);
230
+ res.status(500).json({ success: false, error: error.message });
231
+ }
232
+ });
233
+ ossRouter.post('/rename', async (req, res) => {
234
+ try {
235
+ const { oldKey, newKey } = req.body;
236
+ if (!oldKey || !newKey) {
237
+ return res.status(400).json({ success: false, error: '参数不完整' });
238
+ }
239
+ await ossService.rename(oldKey, newKey);
240
+ res.json({ success: true, message: '重命名成功' });
241
+ }
242
+ catch (error) {
243
+ logError('重命名OSS文件失败:', error);
244
+ res.status(500).json({ success: false, error: error.message });
245
+ }
246
+ });
247
+ ossRouter.get('/download-url', (req, res) => {
248
+ try {
249
+ const key = req.query.key;
250
+ const expires = parseInt(req.query.expires) || 3600;
251
+ if (!key) {
252
+ return res.status(400).json({ success: false, error: 'key必填' });
253
+ }
254
+ const url = ossService.getDownloadUrl(key, expires);
255
+ res.json({ success: true, data: { url } });
256
+ }
257
+ catch (error) {
258
+ logError('获取下载链接失败:', error);
259
+ res.status(500).json({ success: false, error: error.message });
260
+ }
261
+ });
262
+ //# sourceMappingURL=oss.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oss.routes.js","sourceRoot":"","sources":["../../src/api/oss.routes.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Box, Text } from 'ink';
3
- const VERSION = '1.0.33';
3
+ const VERSION = '1.0.35';
4
4
  export const Header = React.memo(function Header() {
5
5
  return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 2, paddingY: 1 },
6
6
  React.createElement(Text, { bold: true, cyan: true }, " "),