coding-tool-x 3.5.7 → 3.5.9

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 (60) hide show
  1. package/dist/web/assets/{Analytics-C6DEmD3D.js → Analytics-C5W3axXs.js} +2 -2
  2. package/dist/web/assets/Analytics-vQS5IWvs.css +1 -0
  3. package/dist/web/assets/{ConfigTemplates-Cf_iTpC4.js → ConfigTemplates-DzyVFDx9.js} +1 -1
  4. package/dist/web/assets/{Home-BtBmYLJ1.js → Home-C9TQNB6f.js} +1 -1
  5. package/dist/web/assets/Home-qzk118Of.css +1 -0
  6. package/dist/web/assets/{PluginManager-DEk8vSw5.js → PluginManager-9B_brLWT.js} +1 -1
  7. package/dist/web/assets/ProjectList-Bjt6mrsV.js +1 -0
  8. package/dist/web/assets/ProjectList-GCC2QOmq.css +1 -0
  9. package/dist/web/assets/SessionList-BsHPgmUR.css +1 -0
  10. package/dist/web/assets/SessionList-DcBH13uA.js +1 -0
  11. package/dist/web/assets/{SkillManager-DcZOiiSf.js → SkillManager-vST8DRRg.js} +1 -1
  12. package/dist/web/assets/{WorkspaceManager-BHqI8aGV.js → WorkspaceManager-ov1KgRXR.js} +1 -1
  13. package/dist/web/assets/icons-CEq2hYB-.js +1 -0
  14. package/dist/web/assets/index-Dih_bOsv.css +1 -0
  15. package/dist/web/assets/index-Duc7QP4e.js +2 -0
  16. package/dist/web/assets/{naive-ui-BaTCPPL5.js → naive-ui-Cg4_ZeoT.js} +1 -1
  17. package/dist/web/assets/{vendors-Fza9uSYn.js → vendors-Bsp-dq2d.js} +1 -1
  18. package/dist/web/assets/vue-vendor-BxIT0uQq.js +45 -0
  19. package/dist/web/index.html +7 -7
  20. package/package.json +1 -1
  21. package/src/commands/export-config.js +6 -6
  22. package/src/config/default.js +2 -6
  23. package/src/config/loader.js +2 -2
  24. package/src/config/paths.js +160 -33
  25. package/src/server/api/agents.js +52 -2
  26. package/src/server/api/codex-sessions.js +4 -2
  27. package/src/server/api/commands.js +38 -2
  28. package/src/server/api/opencode-sessions.js +4 -2
  29. package/src/server/api/plugins.js +104 -1
  30. package/src/server/api/sessions.js +9 -7
  31. package/src/server/services/agents-service.js +269 -62
  32. package/src/server/services/commands-service.js +281 -81
  33. package/src/server/services/config-export-service.js +7 -7
  34. package/src/server/services/config-registry-service.js +4 -5
  35. package/src/server/services/config-sync-manager.js +61 -41
  36. package/src/server/services/config-sync-service.js +3 -3
  37. package/src/server/services/gemini-channels.js +5 -5
  38. package/src/server/services/gemini-config.js +3 -4
  39. package/src/server/services/gemini-sessions.js +23 -20
  40. package/src/server/services/gemini-settings-manager.js +2 -3
  41. package/src/server/services/mcp-service.js +9 -14
  42. package/src/server/services/native-oauth-adapters.js +3 -3
  43. package/src/server/services/notification-hooks.js +3 -3
  44. package/src/server/services/opencode-sessions.js +16 -6
  45. package/src/server/services/opencode-settings-manager.js +3 -3
  46. package/src/server/services/plugins-service.js +499 -23
  47. package/src/server/services/prompts-service.js +5 -9
  48. package/src/server/services/session-launch-command.js +1 -24
  49. package/src/server/services/sessions.js +91 -40
  50. package/src/server/services/skill-service.js +155 -18
  51. package/dist/web/assets/Analytics-RNn1BUbG.css +0 -1
  52. package/dist/web/assets/Home-BQxQ1LhR.css +0 -1
  53. package/dist/web/assets/ProjectList-BMVhA_Kh.js +0 -1
  54. package/dist/web/assets/ProjectList-DL4JK6ci.css +0 -1
  55. package/dist/web/assets/SessionList-B5ioAXxg.js +0 -1
  56. package/dist/web/assets/SessionList-B8dXVXfi.css +0 -1
  57. package/dist/web/assets/icons-CQuif85v.js +0 -1
  58. package/dist/web/assets/index-CtByKdkA.js +0 -2
  59. package/dist/web/assets/index-VGAxnLqi.css +0 -1
  60. package/dist/web/assets/vue-vendor-aWwwFAao.js +0 -45
@@ -2,7 +2,7 @@ const fs = require('fs');
2
2
  const path = require('path');
3
3
  const crypto = require('crypto');
4
4
  const { execFileSync } = require('child_process');
5
- const { NATIVE_PATHS, PATHS } = require('../../config/paths');
5
+ const { NATIVE_PATHS, PATHS, joinNativeBasePath } = require('../../config/paths');
6
6
 
7
7
  /**
8
8
  * OpenCode 会话服务
@@ -11,7 +11,7 @@ const { NATIVE_PATHS, PATHS } = require('../../config/paths');
11
11
 
12
12
  const PROJECT_ORDER_FILE = PATHS.opencodeProjectOrder;
13
13
  const SESSION_ORDER_FILE = PATHS.opencodeSessionOrder;
14
- const OPENCODE_DB_PATH = path.join(NATIVE_PATHS.opencode.data, 'opencode.db');
14
+ const OPENCODE_DB_PATH = joinNativeBasePath(NATIVE_PATHS.opencode.data, 'opencode.db');
15
15
  const COUNTS_CACHE_TTL_MS = 30 * 1000;
16
16
  const EMPTY_COUNTS = Object.freeze({ projectCount: 0, sessionCount: 0 });
17
17
 
@@ -234,12 +234,12 @@ function getOpenCodeDataDir() {
234
234
 
235
235
  // 兼容导出:保留旧路径函数
236
236
  function getSessionsDir() {
237
- return path.join(getOpenCodeDataDir(), 'storage', 'session');
237
+ return NATIVE_PATHS?.opencode?.sessions || joinNativeBasePath(getOpenCodeDataDir(), 'storage', 'session');
238
238
  }
239
239
 
240
240
  // 兼容导出:保留旧路径函数
241
241
  function getProjectsDir() {
242
- return path.join(getOpenCodeDataDir(), 'storage', 'project');
242
+ return NATIVE_PATHS?.opencode?.projects || joinNativeBasePath(getOpenCodeDataDir(), 'storage', 'project');
243
243
  }
244
244
 
245
245
  function getProjectOrder() {
@@ -513,7 +513,13 @@ function getProjects() {
513
513
 
514
514
  // 根据项目ID获取会话列表
515
515
  function getSessionsByProjectId(projectId) {
516
- const sessions = getSessionRowsByProjectId(projectId).map(session => normalizeSession(session, projectId));
516
+ const { getForkRelations } = require('./sessions');
517
+ const forkRelations = getForkRelations();
518
+ const sessions = getSessionRowsByProjectId(projectId).map((session) => {
519
+ const normalized = normalizeSession(session, projectId);
520
+ normalized.forkedFrom = forkRelations[normalized.sessionId] || null;
521
+ return normalized;
522
+ });
517
523
  const order = getSessionOrder(projectId);
518
524
 
519
525
  const fallbackSorted = sessions.sort(
@@ -558,7 +564,11 @@ function getSessionById(sessionId) {
558
564
  return null;
559
565
  }
560
566
 
561
- return normalizeSession(location.sessionData, location.projectId);
567
+ const { getForkRelations } = require('./sessions');
568
+ const forkRelations = getForkRelations();
569
+ const normalized = normalizeSession(location.sessionData, location.projectId);
570
+ normalized.forkedFrom = forkRelations[normalized.sessionId] || null;
571
+ return normalized;
562
572
  }
563
573
 
564
574
  function buildSessionMessages(sessionId) {
@@ -23,9 +23,9 @@ function resolveModelCost(modelId) {
23
23
 
24
24
  const CONFIG_DIR = NATIVE_PATHS.opencode.config;
25
25
  const CONFIG_PATHS = {
26
- config: path.join(CONFIG_DIR, 'config.json'),
27
- opencode: path.join(CONFIG_DIR, 'opencode.json'),
28
- opencodec: path.join(CONFIG_DIR, 'opencode.jsonc')
26
+ config: NATIVE_PATHS.opencode.configLegacy,
27
+ opencode: NATIVE_PATHS.opencode.configJson,
28
+ opencodec: NATIVE_PATHS.opencode.configJsonc
29
29
  };
30
30
  const BACKUP_SUFFIX = '.cc-tool-backup';
31
31
  const EMPTY_SENTINEL = '__CC_TOOL_NO_FILE__';