@jingyi0605/codingns 0.3.5 → 0.4.0

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 (255) hide show
  1. package/README.md +16 -0
  2. package/bin/codingns.mjs +1369 -10
  3. package/dist/public/assets/{TerminalPage-CgrfstRm.js → TerminalPage-6jHZV9Mh.js} +17 -17
  4. package/dist/public/assets/index-CSVhg7I8.js +123 -0
  5. package/dist/public/assets/index-Ce1VX19m.css +1 -0
  6. package/dist/public/index.html +2 -2
  7. package/dist/server/config/opencode-base-url-resolver.d.ts +7 -0
  8. package/dist/server/config/opencode-base-url-resolver.js +48 -11
  9. package/dist/server/config/opencode-base-url-resolver.js.map +1 -1
  10. package/dist/server/config/opencode-system-probe-helper-client.d.ts +4 -0
  11. package/dist/server/config/opencode-system-probe-helper-client.js +29 -0
  12. package/dist/server/config/opencode-system-probe-helper-client.js.map +1 -1
  13. package/dist/server/config/opencode-system-probe-helper-process.d.ts +12 -0
  14. package/dist/server/config/opencode-system-probe-helper-process.js +34 -7
  15. package/dist/server/config/opencode-system-probe-helper-process.js.map +1 -1
  16. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +317 -0
  17. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +549 -1
  18. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  19. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +330 -2
  20. package/dist/server/modules/assistant-capability/assistant-capability-service.js +958 -3
  21. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  22. package/dist/server/modules/butler/assistant-automation-service.d.ts +110 -0
  23. package/dist/server/modules/butler/assistant-automation-service.js +786 -0
  24. package/dist/server/modules/butler/assistant-automation-service.js.map +1 -0
  25. package/dist/server/modules/butler/assistant-automation-trigger.d.ts +94 -0
  26. package/dist/server/modules/butler/assistant-automation-trigger.js +400 -0
  27. package/dist/server/modules/butler/assistant-automation-trigger.js.map +1 -0
  28. package/dist/server/modules/butler/assistant-sandbox-service.d.ts +55 -0
  29. package/dist/server/modules/butler/assistant-sandbox-service.js +266 -0
  30. package/dist/server/modules/butler/assistant-sandbox-service.js.map +1 -0
  31. package/dist/server/modules/butler/butler-action-context-service.d.ts +4 -1
  32. package/dist/server/modules/butler/butler-action-context-service.js +8 -2
  33. package/dist/server/modules/butler/butler-action-context-service.js.map +1 -1
  34. package/dist/server/modules/butler/butler-control-session-service.d.ts +8 -1
  35. package/dist/server/modules/butler/butler-control-session-service.js +154 -40
  36. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  37. package/dist/server/modules/butler/butler-control-timer-scheduler.d.ts +32 -0
  38. package/dist/server/modules/butler/butler-control-timer-scheduler.js +93 -0
  39. package/dist/server/modules/butler/butler-control-timer-scheduler.js.map +1 -0
  40. package/dist/server/modules/butler/butler-control-timer-service.d.ts +42 -0
  41. package/dist/server/modules/butler/butler-control-timer-service.js +132 -0
  42. package/dist/server/modules/butler/butler-control-timer-service.js.map +1 -0
  43. package/dist/server/modules/butler/butler-controller.d.ts +42 -2
  44. package/dist/server/modules/butler/butler-controller.js +79 -12
  45. package/dist/server/modules/butler/butler-controller.js.map +1 -1
  46. package/dist/server/modules/butler/butler-follow-up-service.d.ts +9 -1
  47. package/dist/server/modules/butler/butler-follow-up-service.js +273 -181
  48. package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
  49. package/dist/server/modules/butler/butler-inbox-analysis-service.d.ts +4 -1
  50. package/dist/server/modules/butler/butler-inbox-analysis-service.js +18 -4
  51. package/dist/server/modules/butler/butler-inbox-analysis-service.js.map +1 -1
  52. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js +7 -6
  53. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js.map +1 -1
  54. package/dist/server/modules/butler/butler-profile-service.js +2 -5
  55. package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
  56. package/dist/server/modules/butler/butler-project-service.d.ts +3 -1
  57. package/dist/server/modules/butler/butler-project-service.js +7 -1
  58. package/dist/server/modules/butler/butler-project-service.js.map +1 -1
  59. package/dist/server/modules/butler/butler-session-service.d.ts +3 -1
  60. package/dist/server/modules/butler/butler-session-service.js +12 -1
  61. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  62. package/dist/server/modules/butler/butler-session-summary-service.js +2 -1
  63. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  64. package/dist/server/modules/butler/butler-workspace-context.d.ts +3 -0
  65. package/dist/server/modules/butler/butler-workspace-context.js +182 -51
  66. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
  67. package/dist/server/modules/butler/patrol-execution-service.js +2 -1
  68. package/dist/server/modules/butler/patrol-execution-service.js.map +1 -1
  69. package/dist/server/modules/butler/provider-adapter-registry.d.ts +3 -0
  70. package/dist/server/modules/butler/provider-adapter-registry.js +18 -1
  71. package/dist/server/modules/butler/provider-adapter-registry.js.map +1 -1
  72. package/dist/server/modules/butler/verification-run-service.d.ts +9 -2
  73. package/dist/server/modules/butler/verification-run-service.js +188 -34
  74. package/dist/server/modules/butler/verification-run-service.js.map +1 -1
  75. package/dist/server/modules/debug-target/debug-target-controller.d.ts +13 -0
  76. package/dist/server/modules/debug-target/debug-target-controller.js +77 -2
  77. package/dist/server/modules/debug-target/debug-target-controller.js.map +1 -1
  78. package/dist/server/modules/debug-target/debug-target-service.d.ts +17 -3
  79. package/dist/server/modules/debug-target/debug-target-service.js +696 -98
  80. package/dist/server/modules/debug-target/debug-target-service.js.map +1 -1
  81. package/dist/server/modules/git/git-command-helper-client.d.ts +3 -0
  82. package/dist/server/modules/git/git-command-helper-client.js +71 -29
  83. package/dist/server/modules/git/git-command-helper-client.js.map +1 -1
  84. package/dist/server/modules/git/git-command-helper-process.js +62 -9
  85. package/dist/server/modules/git/git-command-helper-process.js.map +1 -1
  86. package/dist/server/modules/git/git-command-runner.d.ts +1 -0
  87. package/dist/server/modules/git/git-command-runner.js +44 -1
  88. package/dist/server/modules/git/git-command-runner.js.map +1 -1
  89. package/dist/server/modules/git/git-controller.js +8 -7
  90. package/dist/server/modules/git/git-controller.js.map +1 -1
  91. package/dist/server/modules/git/git-read-service.d.ts +7 -7
  92. package/dist/server/modules/git/git-read-service.js +41 -24
  93. package/dist/server/modules/git/git-read-service.js.map +1 -1
  94. package/dist/server/modules/model-switch/cc-switch-adapter.js +6 -2
  95. package/dist/server/modules/model-switch/cc-switch-adapter.js.map +1 -1
  96. package/dist/server/modules/preferences/profile-service.d.ts +3 -1
  97. package/dist/server/modules/preferences/profile-service.js +74 -3
  98. package/dist/server/modules/preferences/profile-service.js.map +1 -1
  99. package/dist/server/modules/provider/codex-model-options.js +2 -3
  100. package/dist/server/modules/provider/codex-model-options.js.map +1 -1
  101. package/dist/server/modules/provider/opencode-model-options.js +2 -3
  102. package/dist/server/modules/provider/opencode-model-options.js.map +1 -1
  103. package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +14 -7
  104. package/dist/server/modules/provider/provider-discovery-helper-client.js +208 -46
  105. package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
  106. package/dist/server/modules/provider/provider-discovery-helper-process.js +96 -47
  107. package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
  108. package/dist/server/modules/provider/provider-discovery-runtime.d.ts +4 -0
  109. package/dist/server/modules/provider/provider-discovery-runtime.js +145 -0
  110. package/dist/server/modules/provider/provider-discovery-runtime.js.map +1 -0
  111. package/dist/server/modules/sessions/claude-runtime-helper-client.js +23 -1
  112. package/dist/server/modules/sessions/claude-runtime-helper-client.js.map +1 -1
  113. package/dist/server/modules/sessions/session-history-service.d.ts +12 -3
  114. package/dist/server/modules/sessions/session-history-service.js +465 -67
  115. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  116. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +8 -0
  117. package/dist/server/modules/sessions/session-live-runtime-service.js +164 -34
  118. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  119. package/dist/server/modules/sessions/session-message-origin-utils.d.ts +12 -0
  120. package/dist/server/modules/sessions/session-message-origin-utils.js +45 -0
  121. package/dist/server/modules/sessions/session-message-origin-utils.js.map +1 -0
  122. package/dist/server/modules/sessions/session-permission-request-service.js +167 -0
  123. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
  124. package/dist/server/modules/skills/builtin-skill-service.d.ts +12 -0
  125. package/dist/server/modules/skills/builtin-skill-service.js +49 -0
  126. package/dist/server/modules/skills/builtin-skill-service.js.map +1 -0
  127. package/dist/server/modules/skills/builtin-skills/codingns-assistant/SKILL.md +82 -0
  128. package/dist/server/modules/skills/builtin-skills/codingns-assistant/agents/openai.yaml +4 -0
  129. package/dist/server/modules/skills/builtin-skills/codingns-assistant/references/cli-workflow.md +136 -0
  130. package/dist/server/modules/skills/skill-manager-service.d.ts +7 -0
  131. package/dist/server/modules/skills/skill-manager-service.js +98 -0
  132. package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
  133. package/dist/server/modules/tailscale/tailscale-helper-client.d.ts +1 -0
  134. package/dist/server/modules/tailscale/tailscale-helper-client.js +12 -0
  135. package/dist/server/modules/tailscale/tailscale-helper-client.js.map +1 -1
  136. package/dist/server/modules/tasks/task-helper-client.d.ts +10 -2
  137. package/dist/server/modules/tasks/task-helper-client.js +152 -27
  138. package/dist/server/modules/tasks/task-helper-client.js.map +1 -1
  139. package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +10 -3
  140. package/dist/server/modules/tasks/task-helper-process-handlers.js +7 -5
  141. package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
  142. package/dist/server/modules/tasks/task-helper-process.js +104 -3
  143. package/dist/server/modules/tasks/task-helper-process.js.map +1 -1
  144. package/dist/server/modules/tasks/task-lane-executors.js +2 -2
  145. package/dist/server/modules/tasks/task-lane-executors.js.map +1 -1
  146. package/dist/server/modules/tasks/task-types.d.ts +4 -0
  147. package/dist/server/modules/tasks/task-types.js +5 -1
  148. package/dist/server/modules/tasks/task-types.js.map +1 -1
  149. package/dist/server/modules/terminal/command-template-service.d.ts +11 -2
  150. package/dist/server/modules/terminal/command-template-service.js +91 -9
  151. package/dist/server/modules/terminal/command-template-service.js.map +1 -1
  152. package/dist/server/modules/terminal/runtime/terminal-log-writer-client.js +1 -1
  153. package/dist/server/modules/terminal/runtime/terminal-log-writer-client.js.map +1 -1
  154. package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js +160 -11
  155. package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js.map +1 -1
  156. package/dist/server/modules/terminal/template-port-runtime.d.ts +1 -1
  157. package/dist/server/modules/terminal/template-port-runtime.js +87 -37
  158. package/dist/server/modules/terminal/template-port-runtime.js.map +1 -1
  159. package/dist/server/modules/terminal/terminal-controller.d.ts +3 -0
  160. package/dist/server/modules/terminal/terminal-controller.js +41 -0
  161. package/dist/server/modules/terminal/terminal-controller.js.map +1 -1
  162. package/dist/server/modules/terminal/terminal-service.d.ts +4 -0
  163. package/dist/server/modules/terminal/terminal-service.js +35 -1
  164. package/dist/server/modules/terminal/terminal-service.js.map +1 -1
  165. package/dist/server/modules/workbench/workbench-service.d.ts +3 -0
  166. package/dist/server/modules/workbench/workbench-service.js +7 -6
  167. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  168. package/dist/server/modules/workbench/workspace-file-watcher.d.ts +14 -6
  169. package/dist/server/modules/workbench/workspace-file-watcher.js +267 -57
  170. package/dist/server/modules/workbench/workspace-file-watcher.js.map +1 -1
  171. package/dist/server/modules/workbench/workspace-panel-snapshot-service.d.ts +3 -0
  172. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js +149 -41
  173. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js.map +1 -1
  174. package/dist/server/modules/workspace/workspace-code-composition.d.ts +1 -0
  175. package/dist/server/modules/workspace/workspace-code-composition.js +183 -1
  176. package/dist/server/modules/workspace/workspace-code-composition.js.map +1 -1
  177. package/dist/server/modules/workspace/workspace-service.js +54 -17
  178. package/dist/server/modules/workspace/workspace-service.js.map +1 -1
  179. package/dist/server/modules/worktree/worktree-cleanup-service.d.ts +1 -1
  180. package/dist/server/modules/worktree/worktree-cleanup-service.js +22 -17
  181. package/dist/server/modules/worktree/worktree-cleanup-service.js.map +1 -1
  182. package/dist/server/modules/worktree/worktree-controller.js +6 -5
  183. package/dist/server/modules/worktree/worktree-controller.js.map +1 -1
  184. package/dist/server/modules/worktree/worktree-manager.d.ts +10 -2
  185. package/dist/server/modules/worktree/worktree-manager.js +35 -20
  186. package/dist/server/modules/worktree/worktree-manager.js.map +1 -1
  187. package/dist/server/modules/worktree/worktree-merge-service.d.ts +2 -2
  188. package/dist/server/modules/worktree/worktree-merge-service.js +34 -27
  189. package/dist/server/modules/worktree/worktree-merge-service.js.map +1 -1
  190. package/dist/server/modules/worktree/worktree-sync-service.d.ts +1 -1
  191. package/dist/server/modules/worktree/worktree-sync-service.js +5 -3
  192. package/dist/server/modules/worktree/worktree-sync-service.js.map +1 -1
  193. package/dist/server/routes/assistant.js +43 -0
  194. package/dist/server/routes/assistant.js.map +1 -1
  195. package/dist/server/routes/butler.js +5 -0
  196. package/dist/server/routes/butler.js.map +1 -1
  197. package/dist/server/server/create-server.d.ts +8 -0
  198. package/dist/server/server/create-server.js +51 -13
  199. package/dist/server/server/create-server.js.map +1 -1
  200. package/dist/server/shared/http/request-abort.d.ts +2 -0
  201. package/dist/server/shared/http/request-abort.js +38 -0
  202. package/dist/server/shared/http/request-abort.js.map +1 -0
  203. package/dist/server/storage/repositories/assistant-automation-run-repository.d.ts +12 -0
  204. package/dist/server/storage/repositories/assistant-automation-run-repository.js +139 -0
  205. package/dist/server/storage/repositories/assistant-automation-run-repository.js.map +1 -0
  206. package/dist/server/storage/repositories/assistant-automation-task-repository.d.ts +15 -0
  207. package/dist/server/storage/repositories/assistant-automation-task-repository.js +173 -0
  208. package/dist/server/storage/repositories/assistant-automation-task-repository.js.map +1 -0
  209. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.d.ts +17 -0
  210. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js +164 -0
  211. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js.map +1 -0
  212. package/dist/server/storage/repositories/butler-control-session-repository.js +27 -3
  213. package/dist/server/storage/repositories/butler-control-session-repository.js.map +1 -1
  214. package/dist/server/storage/repositories/butler-control-timer-repository.d.ts +15 -0
  215. package/dist/server/storage/repositories/butler-control-timer-repository.js +157 -0
  216. package/dist/server/storage/repositories/butler-control-timer-repository.js.map +1 -0
  217. package/dist/server/storage/repositories/user-preference-profile-repository.js +6 -3
  218. package/dist/server/storage/repositories/user-preference-profile-repository.js.map +1 -1
  219. package/dist/server/storage/sqlite/client.js +239 -2
  220. package/dist/server/storage/sqlite/client.js.map +1 -1
  221. package/dist/server/storage/sqlite/schema.sql +107 -1
  222. package/dist/server/types/domain.d.ts +89 -2
  223. package/dist/server/ws/workbench-ws-hub.d.ts +14 -7
  224. package/dist/server/ws/workbench-ws-hub.js +316 -158
  225. package/dist/server/ws/workbench-ws-hub.js.map +1 -1
  226. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +4 -1
  227. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +111 -3
  228. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
  229. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +6 -1
  230. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +306 -31
  231. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  232. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.d.ts +5 -1
  233. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +187 -26
  234. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -1
  235. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.d.ts +4 -1
  236. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js +98 -1
  237. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js.map +1 -1
  238. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +2 -0
  239. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +71 -8
  240. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
  241. package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +1 -0
  242. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +4 -1
  243. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +1 -1
  244. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +44 -0
  245. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -1
  246. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +9 -3
  247. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  248. package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +1 -0
  249. package/node_modules/@codingns/session-sync-core/dist/services.js +17 -8
  250. package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -1
  251. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +4 -0
  252. package/package.json +1 -1
  253. package/scripts/postinstall.mjs +33 -0
  254. package/dist/public/assets/index-Cek6u0b9.css +0 -1
  255. package/dist/public/assets/index-THHY79si.js +0 -122
@@ -16,6 +16,7 @@ export class WorkspacePanelSnapshotService {
16
16
  taskManager;
17
17
  fileTreeCache = new Map();
18
18
  gitSnapshotCache = new Map();
19
+ gitRefreshStates = new Map();
19
20
  terminalManagerCache = new Map();
20
21
  workspaceManagementCache = new Map();
21
22
  fileTreeInflight = new Map();
@@ -61,48 +62,70 @@ export class WorkspacePanelSnapshotService {
61
62
  }
62
63
  async getGitPanelSnapshot(workspaceId, options) {
63
64
  const cached = this.gitSnapshotCache.get(workspaceId);
64
- if (!options?.force && cached && !isExpired(cached.cachedAt, GIT_SNAPSHOT_CACHE_MAX_AGE_MS)) {
65
+ const refreshState = this.getOrCreateGitRefreshState(workspaceId);
66
+ const needsRefresh = options?.force
67
+ || refreshState.dirtyVersion !== refreshState.lastCompletedDirtyVersion
68
+ || !cached
69
+ || isExpired(cached.cachedAt, GIT_SNAPSHOT_CACHE_MAX_AGE_MS);
70
+ if (!needsRefresh && cached) {
65
71
  return cached.snapshot;
66
72
  }
67
73
  const inflight = this.gitInflight.get(workspaceId);
68
74
  if (inflight) {
69
- return inflight;
75
+ // 已经取消但还没从 inflight 表里清掉的任务不能复用,
76
+ // 否则新的订阅会接到旧任务的 abort 结果,误报成内部错误。
77
+ if (inflight.controller.signal.aborted) {
78
+ this.gitInflight.delete(workspaceId);
79
+ }
80
+ else {
81
+ return await awaitAbortableInflightTask(inflight, options?.signal);
82
+ }
70
83
  }
71
- const task = (async () => {
72
- // 先执行轻量级 status 检测(仅 2 条 git 命令)
73
- const status = await this.gitReadService.getStatus(workspaceId);
74
- // 如果有缓存,比较 status 是否有变化
75
- if (cached && !isGitStatusChanged(cached.snapshot.status, status)) {
76
- // 状态未变,延长缓存 TTL,跳过昂贵的 history/branches 查询
84
+ const controller = new AbortController();
85
+ const startedDirtyVersion = refreshState.dirtyVersion;
86
+ const task = {
87
+ controller,
88
+ consumerCount: 0,
89
+ settled: false,
90
+ promise: (async () => {
91
+ // 先执行轻量级 status 检测(仅 2 条 git 命令)
92
+ const status = await this.gitReadService.getStatus(workspaceId, controller.signal);
93
+ // 如果有缓存,比较 status 是否有变化
94
+ if (cached && !isGitStatusChanged(cached.snapshot.status, status)) {
95
+ // 状态未变,延长缓存 TTL,跳过昂贵的 history/branches 查询
96
+ this.gitSnapshotCache.set(workspaceId, {
97
+ snapshot: cached.snapshot,
98
+ cachedAt: Date.now()
99
+ });
100
+ refreshState.lastCompletedDirtyVersion = startedDirtyVersion;
101
+ return cached.snapshot;
102
+ }
103
+ // 状态有变化,执行完整刷新(复用已获取的 status)
104
+ const [historyPage, branches] = await Promise.all([
105
+ this.gitReadService.getHistory(workspaceId, null, GIT_HISTORY_LIMIT, controller.signal),
106
+ this.gitReadService.getBranches(workspaceId, controller.signal)
107
+ ]);
108
+ const snapshot = {
109
+ workspaceId,
110
+ status,
111
+ history: historyPage.items,
112
+ historyTotalCount: historyPage.totalCount,
113
+ historyNextCursor: historyPage.nextCursor,
114
+ branches
115
+ };
77
116
  this.gitSnapshotCache.set(workspaceId, {
78
- snapshot: cached.snapshot,
117
+ snapshot,
79
118
  cachedAt: Date.now()
80
119
  });
81
- return cached.snapshot;
82
- }
83
- // 状态有变化,执行完整刷新(复用已获取的 status)
84
- const [historyPage, branches] = await Promise.all([
85
- this.gitReadService.getHistory(workspaceId, null, GIT_HISTORY_LIMIT),
86
- this.gitReadService.getBranches(workspaceId)
87
- ]);
88
- const snapshot = {
89
- workspaceId,
90
- status,
91
- history: historyPage.items,
92
- historyTotalCount: historyPage.totalCount,
93
- historyNextCursor: historyPage.nextCursor,
94
- branches
95
- };
96
- this.gitSnapshotCache.set(workspaceId, {
97
- snapshot,
98
- cachedAt: Date.now()
99
- });
100
- return snapshot;
101
- })().finally(() => {
102
- this.gitInflight.delete(workspaceId);
103
- });
120
+ refreshState.lastCompletedDirtyVersion = startedDirtyVersion;
121
+ return snapshot;
122
+ })().finally(() => {
123
+ task.settled = true;
124
+ this.gitInflight.delete(workspaceId);
125
+ })
126
+ };
104
127
  this.gitInflight.set(workspaceId, task);
105
- return task;
128
+ return await awaitAbortableInflightTask(task, options?.signal);
106
129
  }
107
130
  async getTerminalManagerSnapshot(workspaceId, options) {
108
131
  const cached = this.terminalManagerCache.get(workspaceId);
@@ -165,7 +188,8 @@ export class WorkspacePanelSnapshotService {
165
188
  }
166
189
  }
167
190
  invalidateGit(workspaceId) {
168
- this.gitSnapshotCache.delete(workspaceId);
191
+ const refreshState = this.getOrCreateGitRefreshState(workspaceId);
192
+ refreshState.dirtyVersion += 1;
169
193
  }
170
194
  invalidateTerminalManager(workspaceId) {
171
195
  this.terminalManagerCache.delete(workspaceId);
@@ -173,24 +197,36 @@ export class WorkspacePanelSnapshotService {
173
197
  invalidateWorkspaceManagement(workspaceId) {
174
198
  this.workspaceManagementCache.delete(workspaceId);
175
199
  }
200
+ getOrCreateGitRefreshState(workspaceId) {
201
+ const existing = this.gitRefreshStates.get(workspaceId);
202
+ if (existing) {
203
+ return existing;
204
+ }
205
+ const created = {
206
+ dirtyVersion: 0,
207
+ lastCompletedDirtyVersion: 0
208
+ };
209
+ this.gitRefreshStates.set(workspaceId, created);
210
+ return created;
211
+ }
176
212
  registerBackgroundTasks() {
177
213
  if (!this.taskManager.has(HOST_TASK_TYPES.templateRuntimeStatusDiscovery)) {
178
214
  this.taskManager.register({
179
215
  taskType: HOST_TASK_TYPES.templateRuntimeStatusDiscovery,
180
216
  executionLane: "helper_process",
181
217
  helperProcessHandler: "terminal.template_runtime_status_discovery",
182
- run: async ({ items }) => this.commandTemplateService.listTemplateRuntimeStatusesByItems(items)
218
+ run: async ({ items }, context) => this.commandTemplateService.listTemplateRuntimeStatusesByItems(items, context.signal)
183
219
  });
184
220
  }
185
221
  if (!this.taskManager.has(HOST_TASK_TYPES.terminalManagerSnapshot)) {
186
222
  this.taskManager.register({
187
223
  taskType: HOST_TASK_TYPES.terminalManagerSnapshot,
188
224
  executionLane: "host_background",
189
- run: async ({ workspaceId }) => this.loadTerminalManagerSnapshot(workspaceId)
225
+ run: async ({ workspaceId }, context) => this.loadTerminalManagerSnapshot(workspaceId, context.signal)
190
226
  });
191
227
  }
192
228
  }
193
- async loadTerminalManagerSnapshot(workspaceId) {
229
+ async loadTerminalManagerSnapshot(workspaceId, signal) {
194
230
  const startedAtMs = terminalDebugNowMs();
195
231
  const terminalListStartedAtMs = terminalDebugNowMs();
196
232
  const terminals = this.terminalService.listTerminalSnapshotItems(workspaceId);
@@ -205,15 +241,18 @@ export class WorkspacePanelSnapshotService {
205
241
  port: template.port
206
242
  }));
207
243
  const templateStatusStartedAtMs = terminalDebugNowMs();
208
- const templateStatuses = runtimeStatusItems.length === 0
209
- ? []
210
- : await this.taskManager.enqueue(HOST_TASK_TYPES.templateRuntimeStatusDiscovery, {
244
+ const templateStatusesHandle = runtimeStatusItems.length === 0
245
+ ? null
246
+ : this.taskManager.enqueue(HOST_TASK_TYPES.templateRuntimeStatusDiscovery, {
211
247
  key: workspaceId,
212
248
  source: "workspace_panel.load_terminal_manager_snapshot.runtime_status",
213
249
  input: {
214
250
  items: runtimeStatusItems
215
251
  }
216
- }).promise;
252
+ });
253
+ const templateStatuses = templateStatusesHandle === null
254
+ ? []
255
+ : await awaitTaskHandleWithSignal(templateStatusesHandle, signal);
217
256
  const templateStatusMs = terminalDebugNowMs() - templateStatusStartedAtMs;
218
257
  const shellOptionsStartedAtMs = terminalDebugNowMs();
219
258
  const shellOptions = listTerminalShellOptions();
@@ -254,6 +293,75 @@ function isExpired(cachedAt, maxAgeMs) {
254
293
  function normalizePanelPath(path) {
255
294
  return path.trim().replace(/\\/g, "/").replace(/^\/+|\/+$/g, "");
256
295
  }
296
+ async function awaitTaskHandleWithSignal(handle, signal) {
297
+ if (!signal) {
298
+ return await handle.promise;
299
+ }
300
+ if (signal.aborted) {
301
+ handle.cancel(getAbortMessage(signal.reason));
302
+ throw signal.reason ?? new Error("任务已取消");
303
+ }
304
+ return await new Promise((resolve, reject) => {
305
+ const onAbort = () => {
306
+ handle.cancel(getAbortMessage(signal.reason));
307
+ reject(signal.reason ?? new Error("任务已取消"));
308
+ };
309
+ signal.addEventListener("abort", onAbort, { once: true });
310
+ handle.promise.then((value) => {
311
+ signal.removeEventListener("abort", onAbort);
312
+ resolve(value);
313
+ }, (error) => {
314
+ signal.removeEventListener("abort", onAbort);
315
+ reject(error);
316
+ });
317
+ });
318
+ }
319
+ async function awaitAbortableInflightTask(task, signal) {
320
+ task.consumerCount += 1;
321
+ let released = false;
322
+ const release = () => {
323
+ if (released) {
324
+ return;
325
+ }
326
+ released = true;
327
+ task.consumerCount = Math.max(0, task.consumerCount - 1);
328
+ if (task.consumerCount === 0 && !task.settled && !task.controller.signal.aborted) {
329
+ task.controller.abort(new Error("git panel snapshot aborted"));
330
+ }
331
+ };
332
+ if (!signal) {
333
+ return await task.promise.finally(release);
334
+ }
335
+ if (signal.aborted) {
336
+ release();
337
+ throw signal.reason ?? new Error("任务已取消");
338
+ }
339
+ return await new Promise((resolve, reject) => {
340
+ const onAbort = () => {
341
+ release();
342
+ reject(signal.reason ?? new Error("任务已取消"));
343
+ };
344
+ signal.addEventListener("abort", onAbort, { once: true });
345
+ task.promise.then((value) => {
346
+ signal.removeEventListener("abort", onAbort);
347
+ release();
348
+ resolve(value);
349
+ }, (error) => {
350
+ signal.removeEventListener("abort", onAbort);
351
+ release();
352
+ reject(error);
353
+ });
354
+ });
355
+ }
356
+ function getAbortMessage(reason) {
357
+ if (reason instanceof Error && reason.message.trim().length > 0) {
358
+ return reason.message;
359
+ }
360
+ if (typeof reason === "string" && reason.trim().length > 0) {
361
+ return reason;
362
+ }
363
+ return "任务已取消";
364
+ }
257
365
  /**
258
366
  * 比较两次 git status 结果,判断工作区是否有文件变更。
259
367
  * 比较维度:分支元信息 + 变更文件列表(路径 + 暂存/工作区状态)。
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-panel-snapshot-service.js","sourceRoot":"","sources":["../../../../src/modules/workbench/workspace-panel-snapshot-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-panel-snapshot-service.js","sourceRoot":"","sources":["../../../../src/modules/workbench/workspace-panel-snapshot-service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import type { WorkspaceCodeCompositionSummary } from "./workspace-service.js";
2
2
  export declare function readWorkspaceCodeComposition(workspacePath: string): WorkspaceCodeCompositionSummary;
3
+ export declare function readWorkspaceCodeCompositionWithSignal(workspacePath: string, signal?: AbortSignal): Promise<WorkspaceCodeCompositionSummary>;
@@ -1,4 +1,4 @@
1
- import { spawnSync } from "node:child_process";
1
+ import { spawn, spawnSync } from "node:child_process";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  const WORKSPACE_CODE_SCAN_LIMIT = 20_000;
@@ -92,6 +92,24 @@ export function readWorkspaceCodeComposition(workspacePath) {
92
92
  }
93
93
  return readDirectoryWorkspaceCodeComposition(normalizedWorkspacePath);
94
94
  }
95
+ export async function readWorkspaceCodeCompositionWithSignal(workspacePath, signal) {
96
+ const resolvedPath = path.resolve(workspacePath);
97
+ if (!fs.existsSync(resolvedPath) || !fs.statSync(resolvedPath).isDirectory()) {
98
+ return {
99
+ scannedFileCount: 0,
100
+ truncated: false,
101
+ items: [],
102
+ error: "工作区路径不存在,无法统计代码类型"
103
+ };
104
+ }
105
+ throwIfAborted(signal);
106
+ const normalizedWorkspacePath = resolveWorkspaceRealPath(resolvedPath);
107
+ const trackedComposition = await readGitTrackedWorkspaceCodeCompositionWithSignal(normalizedWorkspacePath, signal);
108
+ if (trackedComposition) {
109
+ return trackedComposition;
110
+ }
111
+ return await readDirectoryWorkspaceCodeCompositionWithSignal(normalizedWorkspacePath, signal);
112
+ }
95
113
  function readGitTrackedWorkspaceCodeComposition(workspacePath) {
96
114
  const repoRootResult = runGitCommand(workspacePath, ["rev-parse", "--show-toplevel"]);
97
115
  if (repoRootResult.status !== 0) {
@@ -114,6 +132,35 @@ function readGitTrackedWorkspaceCodeComposition(workspacePath) {
114
132
  .filter((relativePath) => isRegularWorkspaceFile(normalizedRepoRoot, relativePath));
115
133
  return summarizeWorkspaceComposition(trackedFiles);
116
134
  }
135
+ async function readGitTrackedWorkspaceCodeCompositionWithSignal(workspacePath, signal) {
136
+ throwIfAborted(signal);
137
+ const repoRootResult = await runGitCommandWithSignal(workspacePath, ["rev-parse", "--show-toplevel"], signal);
138
+ if (repoRootResult.status !== 0) {
139
+ return null;
140
+ }
141
+ const repoRoot = repoRootResult.stdout.trim();
142
+ if (!repoRoot) {
143
+ return null;
144
+ }
145
+ const normalizedRepoRoot = path.resolve(workspacePath, repoRoot);
146
+ const workspaceRelativePath = normalizeGitPath(path.relative(normalizedRepoRoot, workspacePath));
147
+ const trackedFileResult = await runGitCommandWithSignal(workspacePath, ["ls-files", "-z", "--full-name"], signal);
148
+ if (trackedFileResult.status !== 0) {
149
+ return null;
150
+ }
151
+ const trackedFiles = trackedFileResult.stdout
152
+ .split("\u0000")
153
+ .filter(Boolean)
154
+ .filter((relativePath) => isTrackedFileInWorkspace(relativePath, workspaceRelativePath))
155
+ .filter((relativePath, index) => {
156
+ if (index % 200 === 0) {
157
+ throwIfAborted(signal);
158
+ }
159
+ return isRegularWorkspaceFile(normalizedRepoRoot, relativePath);
160
+ });
161
+ throwIfAborted(signal);
162
+ return summarizeWorkspaceComposition(trackedFiles);
163
+ }
117
164
  function readDirectoryWorkspaceCodeComposition(workspacePath) {
118
165
  const typeCounts = new Map();
119
166
  const directories = [workspacePath];
@@ -161,6 +208,61 @@ function readDirectoryWorkspaceCodeComposition(workspacePath) {
161
208
  }
162
209
  return buildWorkspaceCompositionSummary(typeCounts, scannedFileCount, truncated);
163
210
  }
211
+ async function readDirectoryWorkspaceCodeCompositionWithSignal(workspacePath, signal) {
212
+ const typeCounts = new Map();
213
+ const directories = [workspacePath];
214
+ let scannedFileCount = 0;
215
+ let truncated = false;
216
+ let inspectedEntries = 0;
217
+ while (directories.length > 0 && !truncated) {
218
+ throwIfAborted(signal);
219
+ const currentDirectory = directories.pop();
220
+ if (!currentDirectory) {
221
+ continue;
222
+ }
223
+ let entries;
224
+ try {
225
+ entries = await fs.promises.readdir(currentDirectory, {
226
+ withFileTypes: true
227
+ });
228
+ }
229
+ catch {
230
+ continue;
231
+ }
232
+ for (const entry of entries) {
233
+ throwIfAborted(signal);
234
+ inspectedEntries += 1;
235
+ if (inspectedEntries % 200 === 0) {
236
+ await yieldToEventLoop(signal);
237
+ }
238
+ if (entry.isSymbolicLink()) {
239
+ continue;
240
+ }
241
+ const fullPath = path.join(currentDirectory, entry.name);
242
+ if (entry.isDirectory()) {
243
+ if (!IGNORED_COMPOSITION_DIRECTORIES.has(entry.name)) {
244
+ directories.push(fullPath);
245
+ }
246
+ continue;
247
+ }
248
+ if (!entry.isFile()) {
249
+ continue;
250
+ }
251
+ const detectedType = detectWorkspaceFileType(entry.name);
252
+ if (!detectedType) {
253
+ continue;
254
+ }
255
+ scannedFileCount += 1;
256
+ typeCounts.set(detectedType, (typeCounts.get(detectedType) ?? 0) + 1);
257
+ if (scannedFileCount >= WORKSPACE_CODE_SCAN_LIMIT) {
258
+ truncated = true;
259
+ break;
260
+ }
261
+ }
262
+ }
263
+ throwIfAborted(signal);
264
+ return buildWorkspaceCompositionSummary(typeCounts, scannedFileCount, truncated);
265
+ }
164
266
  function summarizeWorkspaceComposition(filePaths) {
165
267
  const typeCounts = new Map();
166
268
  let scannedFileCount = 0;
@@ -206,6 +308,74 @@ function runGitCommand(workspacePath, args) {
206
308
  stdout: result.stdout ?? ""
207
309
  };
208
310
  }
311
+ async function runGitCommandWithSignal(workspacePath, args, signal) {
312
+ throwIfAborted(signal);
313
+ return await new Promise((resolve, reject) => {
314
+ const child = spawn("git", ["-c", "core.quotepath=false", ...args], {
315
+ cwd: workspacePath,
316
+ stdio: ["ignore", "pipe", "ignore"]
317
+ });
318
+ let stdout = "";
319
+ let settled = false;
320
+ let onAbort = null;
321
+ const finish = (callback) => {
322
+ if (settled) {
323
+ return;
324
+ }
325
+ settled = true;
326
+ clearTimeout(timer);
327
+ if (signal && onAbort) {
328
+ signal.removeEventListener("abort", onAbort);
329
+ }
330
+ callback();
331
+ };
332
+ const timer = setTimeout(() => {
333
+ if (!child.killed) {
334
+ child.kill("SIGTERM");
335
+ }
336
+ finish(() => {
337
+ resolve({
338
+ status: 1,
339
+ stdout
340
+ });
341
+ });
342
+ }, GIT_CODE_SCAN_TIMEOUT_MS);
343
+ if (signal) {
344
+ onAbort = () => {
345
+ if (!child.killed) {
346
+ child.kill("SIGTERM");
347
+ }
348
+ finish(() => {
349
+ reject(signal.reason ?? new Error("workspace code composition aborted"));
350
+ });
351
+ };
352
+ if (signal.aborted) {
353
+ onAbort();
354
+ return;
355
+ }
356
+ signal.addEventListener("abort", onAbort, { once: true });
357
+ }
358
+ child.stdout.on("data", (chunk) => {
359
+ stdout += String(chunk);
360
+ });
361
+ child.on("error", () => {
362
+ finish(() => {
363
+ resolve({
364
+ status: 1,
365
+ stdout
366
+ });
367
+ });
368
+ });
369
+ child.on("close", (status) => {
370
+ finish(() => {
371
+ resolve({
372
+ status: status ?? 1,
373
+ stdout
374
+ });
375
+ });
376
+ });
377
+ });
378
+ }
209
379
  function resolveWorkspaceRealPath(workspacePath) {
210
380
  try {
211
381
  return fs.realpathSync(workspacePath);
@@ -244,4 +414,16 @@ function detectWorkspaceFileType(fileName) {
244
414
  }
245
415
  return COMPOSITION_TYPE_BY_EXTENSION[path.extname(normalizedName)] ?? null;
246
416
  }
417
+ function throwIfAborted(signal) {
418
+ if (signal?.aborted) {
419
+ throw signal.reason ?? new Error("workspace code composition aborted");
420
+ }
421
+ }
422
+ async function yieldToEventLoop(signal) {
423
+ throwIfAborted(signal);
424
+ await new Promise((resolve) => {
425
+ setImmediate(resolve);
426
+ });
427
+ throwIfAborted(signal);
428
+ }
247
429
  //# sourceMappingURL=workspace-code-composition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-code-composition.js","sourceRoot":"","sources":["../../../../src/modules/workspace/workspace-code-composition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-code-composition.js","sourceRoot":"","sources":["../../../../src/modules/workspace/workspace-code-composition.ts"],"names":[],"mappings":"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"}