@seawork/server 1.0.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 (682) hide show
  1. package/.env.example +23 -0
  2. package/README.md +107 -0
  3. package/dist/scripts/dev-runner.js +27 -0
  4. package/dist/scripts/dev-runner.js.map +1 -0
  5. package/dist/scripts/mcp-stdio-socket-bridge-cli.mjs +62 -0
  6. package/dist/scripts/supervisor-entrypoint.js +123 -0
  7. package/dist/scripts/supervisor-entrypoint.js.map +1 -0
  8. package/dist/scripts/supervisor.js +148 -0
  9. package/dist/scripts/supervisor.js.map +1 -0
  10. package/dist/server/client/daemon-client-relay-e2ee-transport.d.ts +8 -0
  11. package/dist/server/client/daemon-client-relay-e2ee-transport.d.ts.map +1 -0
  12. package/dist/server/client/daemon-client-relay-e2ee-transport.js +161 -0
  13. package/dist/server/client/daemon-client-relay-e2ee-transport.js.map +1 -0
  14. package/dist/server/client/daemon-client-transport-types.d.ts +34 -0
  15. package/dist/server/client/daemon-client-transport-types.d.ts.map +1 -0
  16. package/dist/server/client/daemon-client-transport-types.js +2 -0
  17. package/dist/server/client/daemon-client-transport-types.js.map +1 -0
  18. package/dist/server/client/daemon-client-transport-utils.d.ts +9 -0
  19. package/dist/server/client/daemon-client-transport-utils.d.ts.map +1 -0
  20. package/dist/server/client/daemon-client-transport-utils.js +121 -0
  21. package/dist/server/client/daemon-client-transport-utils.js.map +1 -0
  22. package/dist/server/client/daemon-client-transport.d.ts +5 -0
  23. package/dist/server/client/daemon-client-transport.d.ts.map +1 -0
  24. package/dist/server/client/daemon-client-transport.js +4 -0
  25. package/dist/server/client/daemon-client-transport.js.map +1 -0
  26. package/dist/server/client/daemon-client-websocket-transport.d.ts +7 -0
  27. package/dist/server/client/daemon-client-websocket-transport.d.ts.map +1 -0
  28. package/dist/server/client/daemon-client-websocket-transport.js +119 -0
  29. package/dist/server/client/daemon-client-websocket-transport.js.map +1 -0
  30. package/dist/server/client/daemon-client.d.ts +697 -0
  31. package/dist/server/client/daemon-client.d.ts.map +1 -0
  32. package/dist/server/client/daemon-client.js +2885 -0
  33. package/dist/server/client/daemon-client.js.map +1 -0
  34. package/dist/server/server/agent/activity-curator.d.ts +8 -0
  35. package/dist/server/server/agent/activity-curator.d.ts.map +1 -0
  36. package/dist/server/server/agent/activity-curator.js +243 -0
  37. package/dist/server/server/agent/activity-curator.js.map +1 -0
  38. package/dist/server/server/agent/agent-management-mcp.d.ts +41 -0
  39. package/dist/server/server/agent/agent-management-mcp.d.ts.map +1 -0
  40. package/dist/server/server/agent/agent-management-mcp.js +767 -0
  41. package/dist/server/server/agent/agent-management-mcp.js.map +1 -0
  42. package/dist/server/server/agent/agent-manager.d.ts +287 -0
  43. package/dist/server/server/agent/agent-manager.d.ts.map +1 -0
  44. package/dist/server/server/agent/agent-manager.js +1956 -0
  45. package/dist/server/server/agent/agent-manager.js.map +1 -0
  46. package/dist/server/server/agent/agent-metadata-generator.d.ts +29 -0
  47. package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -0
  48. package/dist/server/server/agent/agent-metadata-generator.js +161 -0
  49. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -0
  50. package/dist/server/server/agent/agent-projections.d.ts +17 -0
  51. package/dist/server/server/agent/agent-projections.d.ts.map +1 -0
  52. package/dist/server/server/agent/agent-projections.js +280 -0
  53. package/dist/server/server/agent/agent-projections.js.map +1 -0
  54. package/dist/server/server/agent/agent-response-loop.d.ts +60 -0
  55. package/dist/server/server/agent/agent-response-loop.d.ts.map +1 -0
  56. package/dist/server/server/agent/agent-response-loop.js +304 -0
  57. package/dist/server/server/agent/agent-response-loop.js.map +1 -0
  58. package/dist/server/server/agent/agent-sdk-types.d.ts +470 -0
  59. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -0
  60. package/dist/server/server/agent/agent-sdk-types.js +12 -0
  61. package/dist/server/server/agent/agent-sdk-types.js.map +1 -0
  62. package/dist/server/server/agent/agent-storage.d.ts +336 -0
  63. package/dist/server/server/agent/agent-storage.d.ts.map +1 -0
  64. package/dist/server/server/agent/agent-storage.js +304 -0
  65. package/dist/server/server/agent/agent-storage.js.map +1 -0
  66. package/dist/server/server/agent/agent-title-limits.d.ts +3 -0
  67. package/dist/server/server/agent/agent-title-limits.d.ts.map +1 -0
  68. package/dist/server/server/agent/agent-title-limits.js +3 -0
  69. package/dist/server/server/agent/agent-title-limits.js.map +1 -0
  70. package/dist/server/server/agent/audio-utils.d.ts +3 -0
  71. package/dist/server/server/agent/audio-utils.d.ts.map +1 -0
  72. package/dist/server/server/agent/audio-utils.js +19 -0
  73. package/dist/server/server/agent/audio-utils.js.map +1 -0
  74. package/dist/server/server/agent/dictation-debug.d.ts +13 -0
  75. package/dist/server/server/agent/dictation-debug.d.ts.map +1 -0
  76. package/dist/server/server/agent/dictation-debug.js +50 -0
  77. package/dist/server/server/agent/dictation-debug.js.map +1 -0
  78. package/dist/server/server/agent/llm-openai.d.ts +7 -0
  79. package/dist/server/server/agent/llm-openai.d.ts.map +1 -0
  80. package/dist/server/server/agent/llm-openai.js +8 -0
  81. package/dist/server/server/agent/llm-openai.js.map +1 -0
  82. package/dist/server/server/agent/mcp-server.d.ts +33 -0
  83. package/dist/server/server/agent/mcp-server.d.ts.map +1 -0
  84. package/dist/server/server/agent/mcp-server.js +1279 -0
  85. package/dist/server/server/agent/mcp-server.js.map +1 -0
  86. package/dist/server/server/agent/mcp-shared.d.ts +251 -0
  87. package/dist/server/server/agent/mcp-shared.d.ts.map +1 -0
  88. package/dist/server/server/agent/mcp-shared.js +242 -0
  89. package/dist/server/server/agent/mcp-shared.js.map +1 -0
  90. package/dist/server/server/agent/model-resolver.d.ts +11 -0
  91. package/dist/server/server/agent/model-resolver.d.ts.map +1 -0
  92. package/dist/server/server/agent/model-resolver.js +21 -0
  93. package/dist/server/server/agent/model-resolver.js.map +1 -0
  94. package/dist/server/server/agent/orchestrator-instructions.d.ts +7 -0
  95. package/dist/server/server/agent/orchestrator-instructions.d.ts.map +1 -0
  96. package/dist/server/server/agent/orchestrator-instructions.js +51 -0
  97. package/dist/server/server/agent/orchestrator-instructions.js.map +1 -0
  98. package/dist/server/server/agent/orchestrator.d.ts +12 -0
  99. package/dist/server/server/agent/orchestrator.d.ts.map +1 -0
  100. package/dist/server/server/agent/orchestrator.js +12 -0
  101. package/dist/server/server/agent/orchestrator.js.map +1 -0
  102. package/dist/server/server/agent/pcm16-resampler.d.ts +14 -0
  103. package/dist/server/server/agent/pcm16-resampler.d.ts.map +1 -0
  104. package/dist/server/server/agent/pcm16-resampler.js +63 -0
  105. package/dist/server/server/agent/pcm16-resampler.js.map +1 -0
  106. package/dist/server/server/agent/provider-launch-config.d.ts +138 -0
  107. package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -0
  108. package/dist/server/server/agent/provider-launch-config.js +80 -0
  109. package/dist/server/server/agent/provider-launch-config.js.map +1 -0
  110. package/dist/server/server/agent/provider-manifest.d.ts +29 -0
  111. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -0
  112. package/dist/server/server/agent/provider-manifest.js +157 -0
  113. package/dist/server/server/agent/provider-manifest.js.map +1 -0
  114. package/dist/server/server/agent/provider-registry.d.ts +19 -0
  115. package/dist/server/server/agent/provider-registry.d.ts.map +1 -0
  116. package/dist/server/server/agent/provider-registry.js +58 -0
  117. package/dist/server/server/agent/provider-registry.js.map +1 -0
  118. package/dist/server/server/agent/provider-snapshot-manager.d.ts +27 -0
  119. package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -0
  120. package/dist/server/server/agent/provider-snapshot-manager.js +181 -0
  121. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -0
  122. package/dist/server/server/agent/providers/acp-agent.d.ts +202 -0
  123. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -0
  124. package/dist/server/server/agent/providers/acp-agent.js +1650 -0
  125. package/dist/server/server/agent/providers/acp-agent.js.map +1 -0
  126. package/dist/server/server/agent/providers/claude/claude-models.d.ts +8 -0
  127. package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +1 -0
  128. package/dist/server/server/agent/providers/claude/claude-models.js +63 -0
  129. package/dist/server/server/agent/providers/claude/claude-models.js.map +1 -0
  130. package/dist/server/server/agent/providers/claude/partial-json.d.ts +5 -0
  131. package/dist/server/server/agent/providers/claude/partial-json.d.ts.map +1 -0
  132. package/dist/server/server/agent/providers/claude/partial-json.js +306 -0
  133. package/dist/server/server/agent/providers/claude/partial-json.js.map +1 -0
  134. package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts +20 -0
  135. package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts.map +1 -0
  136. package/dist/server/server/agent/providers/claude/sidechain-tracker.js +230 -0
  137. package/dist/server/server/agent/providers/claude/sidechain-tracker.js.map +1 -0
  138. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +55 -0
  139. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts.map +1 -0
  140. package/dist/server/server/agent/providers/claude/task-notification-tool-call.js +267 -0
  141. package/dist/server/server/agent/providers/claude/task-notification-tool-call.js.map +1 -0
  142. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.d.ts +3 -0
  143. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.d.ts.map +1 -0
  144. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js +121 -0
  145. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js.map +1 -0
  146. package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts +16 -0
  147. package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts.map +1 -0
  148. package/dist/server/server/agent/providers/claude/tool-call-mapper.js +252 -0
  149. package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -0
  150. package/dist/server/server/agent/providers/claude-agent.d.ts +44 -0
  151. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -0
  152. package/dist/server/server/agent/providers/claude-agent.js +3452 -0
  153. package/dist/server/server/agent/providers/claude-agent.js.map +1 -0
  154. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts +12 -0
  155. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts.map +1 -0
  156. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.js +104 -0
  157. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.js.map +1 -0
  158. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts +15 -0
  159. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -0
  160. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +762 -0
  161. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -0
  162. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +200 -0
  163. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -0
  164. package/dist/server/server/agent/providers/codex-app-server-agent.js +3474 -0
  165. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -0
  166. package/dist/server/server/agent/providers/codex-feature-definitions.d.ts +11 -0
  167. package/dist/server/server/agent/providers/codex-feature-definitions.d.ts.map +1 -0
  168. package/dist/server/server/agent/providers/codex-feature-definitions.js +45 -0
  169. package/dist/server/server/agent/providers/codex-feature-definitions.js.map +1 -0
  170. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts +9 -0
  171. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts.map +1 -0
  172. package/dist/server/server/agent/providers/codex-rollout-timeline.js +544 -0
  173. package/dist/server/server/agent/providers/codex-rollout-timeline.js.map +1 -0
  174. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts +16 -0
  175. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -0
  176. package/dist/server/server/agent/providers/copilot-acp-agent.js +95 -0
  177. package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -0
  178. package/dist/server/server/agent/providers/diagnostic-utils.d.ts +17 -0
  179. package/dist/server/server/agent/providers/diagnostic-utils.d.ts.map +1 -0
  180. package/dist/server/server/agent/providers/diagnostic-utils.js +56 -0
  181. package/dist/server/server/agent/providers/diagnostic-utils.js.map +1 -0
  182. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts +3 -0
  183. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +1 -0
  184. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +39 -0
  185. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +1 -0
  186. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts +13 -0
  187. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts.map +1 -0
  188. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js +144 -0
  189. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js.map +1 -0
  190. package/dist/server/server/agent/providers/opencode-agent.d.ts +121 -0
  191. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -0
  192. package/dist/server/server/agent/providers/opencode-agent.js +1649 -0
  193. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -0
  194. package/dist/server/server/agent/providers/pi-acp-agent.d.ts +28 -0
  195. package/dist/server/server/agent/providers/pi-acp-agent.d.ts.map +1 -0
  196. package/dist/server/server/agent/providers/pi-acp-agent.js +302 -0
  197. package/dist/server/server/agent/providers/pi-acp-agent.js.map +1 -0
  198. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts +3 -0
  199. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts.map +1 -0
  200. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js +57 -0
  201. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js.map +1 -0
  202. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +1745 -0
  203. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -0
  204. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +686 -0
  205. package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -0
  206. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts +18 -0
  207. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts.map +1 -0
  208. package/dist/server/server/agent/providers/tool-call-mapper-utils.js +115 -0
  209. package/dist/server/server/agent/providers/tool-call-mapper-utils.js.map +1 -0
  210. package/dist/server/server/agent/recordings-debug.d.ts +3 -0
  211. package/dist/server/server/agent/recordings-debug.d.ts.map +1 -0
  212. package/dist/server/server/agent/recordings-debug.js +19 -0
  213. package/dist/server/server/agent/recordings-debug.js.map +1 -0
  214. package/dist/server/server/agent/stt-debug.d.ts +10 -0
  215. package/dist/server/server/agent/stt-debug.d.ts.map +1 -0
  216. package/dist/server/server/agent/stt-debug.js +33 -0
  217. package/dist/server/server/agent/stt-debug.js.map +1 -0
  218. package/dist/server/server/agent/stt-manager.d.ts +33 -0
  219. package/dist/server/server/agent/stt-manager.d.ts.map +1 -0
  220. package/dist/server/server/agent/stt-manager.js +232 -0
  221. package/dist/server/server/agent/stt-manager.js.map +1 -0
  222. package/dist/server/server/agent/timeline-append.d.ts +10 -0
  223. package/dist/server/server/agent/timeline-append.d.ts.map +1 -0
  224. package/dist/server/server/agent/timeline-append.js +27 -0
  225. package/dist/server/server/agent/timeline-append.js.map +1 -0
  226. package/dist/server/server/agent/timeline-projection.d.ts +39 -0
  227. package/dist/server/server/agent/timeline-projection.d.ts.map +1 -0
  228. package/dist/server/server/agent/timeline-projection.js +215 -0
  229. package/dist/server/server/agent/timeline-projection.js.map +1 -0
  230. package/dist/server/server/agent/tool-name-normalization.d.ts +9 -0
  231. package/dist/server/server/agent/tool-name-normalization.d.ts.map +1 -0
  232. package/dist/server/server/agent/tool-name-normalization.js +82 -0
  233. package/dist/server/server/agent/tool-name-normalization.js.map +1 -0
  234. package/dist/server/server/agent/tts-debug.d.ts +8 -0
  235. package/dist/server/server/agent/tts-debug.d.ts.map +1 -0
  236. package/dist/server/server/agent/tts-debug.js +24 -0
  237. package/dist/server/server/agent/tts-debug.js.map +1 -0
  238. package/dist/server/server/agent/tts-manager.d.ts +41 -0
  239. package/dist/server/server/agent/tts-manager.d.ts.map +1 -0
  240. package/dist/server/server/agent/tts-manager.js +374 -0
  241. package/dist/server/server/agent/tts-manager.js.map +1 -0
  242. package/dist/server/server/agent/wait-for-agent-tracker.d.ts +15 -0
  243. package/dist/server/server/agent/wait-for-agent-tracker.d.ts.map +1 -0
  244. package/dist/server/server/agent/wait-for-agent-tracker.js +53 -0
  245. package/dist/server/server/agent/wait-for-agent-tracker.js.map +1 -0
  246. package/dist/server/server/agent-attention-policy.d.ts +20 -0
  247. package/dist/server/server/agent-attention-policy.d.ts.map +1 -0
  248. package/dist/server/server/agent-attention-policy.js +40 -0
  249. package/dist/server/server/agent-attention-policy.js.map +1 -0
  250. package/dist/server/server/allowed-hosts.d.ts +13 -0
  251. package/dist/server/server/allowed-hosts.d.ts.map +1 -0
  252. package/dist/server/server/allowed-hosts.js +94 -0
  253. package/dist/server/server/allowed-hosts.js.map +1 -0
  254. package/dist/server/server/bootstrap.d.ts +74 -0
  255. package/dist/server/server/bootstrap.d.ts.map +1 -0
  256. package/dist/server/server/bootstrap.js +537 -0
  257. package/dist/server/server/bootstrap.js.map +1 -0
  258. package/dist/server/server/chat/chat-mentions.d.ts +31 -0
  259. package/dist/server/server/chat/chat-mentions.d.ts.map +1 -0
  260. package/dist/server/server/chat/chat-mentions.js +71 -0
  261. package/dist/server/server/chat/chat-mentions.js.map +1 -0
  262. package/dist/server/server/chat/chat-rpc-schemas.d.ts +728 -0
  263. package/dist/server/server/chat/chat-rpc-schemas.d.ts.map +1 -0
  264. package/dist/server/server/chat/chat-rpc-schemas.js +103 -0
  265. package/dist/server/server/chat/chat-rpc-schemas.js.map +1 -0
  266. package/dist/server/server/chat/chat-service.d.ts +74 -0
  267. package/dist/server/server/chat/chat-service.d.ts.map +1 -0
  268. package/dist/server/server/chat/chat-service.js +330 -0
  269. package/dist/server/server/chat/chat-service.js.map +1 -0
  270. package/dist/server/server/chat/chat-types.d.ts +75 -0
  271. package/dist/server/server/chat/chat-types.d.ts.map +1 -0
  272. package/dist/server/server/chat/chat-types.js +22 -0
  273. package/dist/server/server/chat/chat-types.js.map +1 -0
  274. package/dist/server/server/checkout-diff-manager.d.ts +45 -0
  275. package/dist/server/server/checkout-diff-manager.d.ts.map +1 -0
  276. package/dist/server/server/checkout-diff-manager.js +374 -0
  277. package/dist/server/server/checkout-diff-manager.js.map +1 -0
  278. package/dist/server/server/checkout-git-utils.d.ts +9 -0
  279. package/dist/server/server/checkout-git-utils.d.ts.map +1 -0
  280. package/dist/server/server/checkout-git-utils.js +37 -0
  281. package/dist/server/server/checkout-git-utils.js.map +1 -0
  282. package/dist/server/server/client-message-id.d.ts +3 -0
  283. package/dist/server/server/client-message-id.d.ts.map +1 -0
  284. package/dist/server/server/client-message-id.js +12 -0
  285. package/dist/server/server/client-message-id.js.map +1 -0
  286. package/dist/server/server/config.d.ts +14 -0
  287. package/dist/server/server/config.d.ts.map +1 -0
  288. package/dist/server/server/config.js +96 -0
  289. package/dist/server/server/config.js.map +1 -0
  290. package/dist/server/server/connection-offer.d.ts +19 -0
  291. package/dist/server/server/connection-offer.d.ts.map +1 -0
  292. package/dist/server/server/connection-offer.js +59 -0
  293. package/dist/server/server/connection-offer.js.map +1 -0
  294. package/dist/server/server/daemon-config-store.d.ts +23 -0
  295. package/dist/server/server/daemon-config-store.d.ts.map +1 -0
  296. package/dist/server/server/daemon-config-store.js +114 -0
  297. package/dist/server/server/daemon-config-store.js.map +1 -0
  298. package/dist/server/server/daemon-keypair.d.ts +8 -0
  299. package/dist/server/server/daemon-keypair.d.ts.map +1 -0
  300. package/dist/server/server/daemon-keypair.js +40 -0
  301. package/dist/server/server/daemon-keypair.js.map +1 -0
  302. package/dist/server/server/daemon-version.d.ts +5 -0
  303. package/dist/server/server/daemon-version.d.ts.map +1 -0
  304. package/dist/server/server/daemon-version.js +22 -0
  305. package/dist/server/server/daemon-version.js.map +1 -0
  306. package/dist/server/server/dictation/dictation-stream-manager.d.ts +85 -0
  307. package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -0
  308. package/dist/server/server/dictation/dictation-stream-manager.js +571 -0
  309. package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -0
  310. package/dist/server/server/editor-targets.d.ts +18 -0
  311. package/dist/server/server/editor-targets.d.ts.map +1 -0
  312. package/dist/server/server/editor-targets.js +113 -0
  313. package/dist/server/server/editor-targets.js.map +1 -0
  314. package/dist/server/server/exports.d.ts +19 -0
  315. package/dist/server/server/exports.d.ts.map +1 -0
  316. package/dist/server/server/exports.js +21 -0
  317. package/dist/server/server/exports.js.map +1 -0
  318. package/dist/server/server/file-download/token-store.d.ts +24 -0
  319. package/dist/server/server/file-download/token-store.d.ts.map +1 -0
  320. package/dist/server/server/file-download/token-store.js +40 -0
  321. package/dist/server/server/file-download/token-store.js.map +1 -0
  322. package/dist/server/server/file-explorer/service.d.ts +41 -0
  323. package/dist/server/server/file-explorer/service.d.ts.map +1 -0
  324. package/dist/server/server/file-explorer/service.js +194 -0
  325. package/dist/server/server/file-explorer/service.js.map +1 -0
  326. package/dist/server/server/index.d.ts +2 -0
  327. package/dist/server/server/index.d.ts.map +1 -0
  328. package/dist/server/server/index.js +176 -0
  329. package/dist/server/server/index.js.map +1 -0
  330. package/dist/server/server/json-utils.d.ts +11 -0
  331. package/dist/server/server/json-utils.d.ts.map +1 -0
  332. package/dist/server/server/json-utils.js +45 -0
  333. package/dist/server/server/json-utils.js.map +1 -0
  334. package/dist/server/server/logger.d.ts +33 -0
  335. package/dist/server/server/logger.d.ts.map +1 -0
  336. package/dist/server/server/logger.js +195 -0
  337. package/dist/server/server/logger.js.map +1 -0
  338. package/dist/server/server/loop/rpc-schemas.d.ts +2937 -0
  339. package/dist/server/server/loop/rpc-schemas.d.ts.map +1 -0
  340. package/dist/server/server/loop/rpc-schemas.js +159 -0
  341. package/dist/server/server/loop/rpc-schemas.js.map +1 -0
  342. package/dist/server/server/loop-service.d.ts +520 -0
  343. package/dist/server/server/loop-service.d.ts.map +1 -0
  344. package/dist/server/server/loop-service.js +739 -0
  345. package/dist/server/server/loop-service.js.map +1 -0
  346. package/dist/server/server/messages.d.ts +9 -0
  347. package/dist/server/server/messages.d.ts.map +1 -0
  348. package/dist/server/server/messages.js +29 -0
  349. package/dist/server/server/messages.js.map +1 -0
  350. package/dist/server/server/package-version.d.ts +13 -0
  351. package/dist/server/server/package-version.d.ts.map +1 -0
  352. package/dist/server/server/package-version.js +46 -0
  353. package/dist/server/server/package-version.js.map +1 -0
  354. package/dist/server/server/pairing-offer.d.ts +16 -0
  355. package/dist/server/server/pairing-offer.d.ts.map +1 -0
  356. package/dist/server/server/pairing-offer.js +45 -0
  357. package/dist/server/server/pairing-offer.js.map +1 -0
  358. package/dist/server/server/pairing-qr.d.ts +7 -0
  359. package/dist/server/server/pairing-qr.d.ts.map +1 -0
  360. package/dist/server/server/pairing-qr.js +45 -0
  361. package/dist/server/server/pairing-qr.js.map +1 -0
  362. package/dist/server/server/path-utils.d.ts +3 -0
  363. package/dist/server/server/path-utils.d.ts.map +1 -0
  364. package/dist/server/server/path-utils.js +20 -0
  365. package/dist/server/server/path-utils.js.map +1 -0
  366. package/dist/server/server/persisted-config.d.ts +625 -0
  367. package/dist/server/server/persisted-config.d.ts.map +1 -0
  368. package/dist/server/server/persisted-config.js +265 -0
  369. package/dist/server/server/persisted-config.js.map +1 -0
  370. package/dist/server/server/persistence-hooks.d.ts +24 -0
  371. package/dist/server/server/persistence-hooks.d.ts.map +1 -0
  372. package/dist/server/server/persistence-hooks.js +60 -0
  373. package/dist/server/server/persistence-hooks.js.map +1 -0
  374. package/dist/server/server/pid-lock.d.ts +29 -0
  375. package/dist/server/server/pid-lock.d.ts.map +1 -0
  376. package/dist/server/server/pid-lock.js +148 -0
  377. package/dist/server/server/pid-lock.js.map +1 -0
  378. package/dist/server/server/push/push-service.d.ts +22 -0
  379. package/dist/server/server/push/push-service.d.ts.map +1 -0
  380. package/dist/server/server/push/push-service.js +69 -0
  381. package/dist/server/server/push/push-service.js.map +1 -0
  382. package/dist/server/server/push/token-store.d.ts +18 -0
  383. package/dist/server/server/push/token-store.d.ts.map +1 -0
  384. package/dist/server/server/push/token-store.js +70 -0
  385. package/dist/server/server/push/token-store.js.map +1 -0
  386. package/dist/server/server/relay-transport.d.ts +23 -0
  387. package/dist/server/server/relay-transport.d.ts.map +1 -0
  388. package/dist/server/server/relay-transport.js +461 -0
  389. package/dist/server/server/relay-transport.js.map +1 -0
  390. package/dist/server/server/schedule/cron.d.ts +4 -0
  391. package/dist/server/server/schedule/cron.d.ts.map +1 -0
  392. package/dist/server/server/schedule/cron.js +103 -0
  393. package/dist/server/server/schedule/cron.js.map +1 -0
  394. package/dist/server/server/schedule/rpc-schemas.d.ts +2773 -0
  395. package/dist/server/server/schedule/rpc-schemas.d.ts.map +1 -0
  396. package/dist/server/server/schedule/rpc-schemas.js +112 -0
  397. package/dist/server/server/schedule/rpc-schemas.js.map +1 -0
  398. package/dist/server/server/schedule/service.d.ts +39 -0
  399. package/dist/server/server/schedule/service.d.ts.map +1 -0
  400. package/dist/server/server/schedule/service.js +410 -0
  401. package/dist/server/server/schedule/service.js.map +1 -0
  402. package/dist/server/server/schedule/store.d.ts +13 -0
  403. package/dist/server/server/schedule/store.d.ts.map +1 -0
  404. package/dist/server/server/schedule/store.js +56 -0
  405. package/dist/server/server/schedule/store.js.map +1 -0
  406. package/dist/server/server/schedule/types.d.ts +710 -0
  407. package/dist/server/server/schedule/types.d.ts.map +1 -0
  408. package/dist/server/server/schedule/types.js +73 -0
  409. package/dist/server/server/schedule/types.js.map +1 -0
  410. package/dist/server/server/seawork-home.d.ts +2 -0
  411. package/dist/server/server/seawork-home.d.ts.map +1 -0
  412. package/dist/server/server/seawork-home.js +19 -0
  413. package/dist/server/server/seawork-home.js.map +1 -0
  414. package/dist/server/server/server-id.d.ts +17 -0
  415. package/dist/server/server/server-id.d.ts.map +1 -0
  416. package/dist/server/server/server-id.js +63 -0
  417. package/dist/server/server/server-id.js.map +1 -0
  418. package/dist/server/server/session.d.ts +510 -0
  419. package/dist/server/server/session.d.ts.map +1 -0
  420. package/dist/server/server/session.js +6414 -0
  421. package/dist/server/server/session.js.map +1 -0
  422. package/dist/server/server/speech/audio.d.ts +10 -0
  423. package/dist/server/server/speech/audio.d.ts.map +1 -0
  424. package/dist/server/server/speech/audio.js +101 -0
  425. package/dist/server/server/speech/audio.js.map +1 -0
  426. package/dist/server/server/speech/provider-resolver.d.ts +3 -0
  427. package/dist/server/server/speech/provider-resolver.d.ts.map +1 -0
  428. package/dist/server/server/speech/provider-resolver.js +7 -0
  429. package/dist/server/server/speech/provider-resolver.js.map +1 -0
  430. package/dist/server/server/speech/providers/local/config.d.ts +25 -0
  431. package/dist/server/server/speech/providers/local/config.d.ts.map +1 -0
  432. package/dist/server/server/speech/providers/local/config.js +74 -0
  433. package/dist/server/server/speech/providers/local/config.js.map +1 -0
  434. package/dist/server/server/speech/providers/local/models.d.ts +11 -0
  435. package/dist/server/server/speech/providers/local/models.d.ts.map +1 -0
  436. package/dist/server/server/speech/providers/local/models.js +17 -0
  437. package/dist/server/server/speech/providers/local/models.js.map +1 -0
  438. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts +24 -0
  439. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts.map +1 -0
  440. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js +436 -0
  441. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js.map +1 -0
  442. package/dist/server/server/speech/providers/local/runtime.d.ts +31 -0
  443. package/dist/server/server/speech/providers/local/runtime.d.ts.map +1 -0
  444. package/dist/server/server/speech/providers/local/runtime.js +247 -0
  445. package/dist/server/server/speech/providers/local/runtime.js.map +1 -0
  446. package/dist/server/server/speech/providers/local/sherpa/assets/silero_vad.onnx +0 -0
  447. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts +117 -0
  448. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts.map +1 -0
  449. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js +166 -0
  450. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js.map +1 -0
  451. package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts +15 -0
  452. package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -0
  453. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +165 -0
  454. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -0
  455. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.d.ts +28 -0
  456. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.d.ts.map +1 -0
  457. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js +73 -0
  458. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js.map +1 -0
  459. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.d.ts +37 -0
  460. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.d.ts.map +1 -0
  461. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.js +84 -0
  462. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.js.map +1 -0
  463. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-loader.d.ts +7 -0
  464. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-loader.d.ts.map +1 -0
  465. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-loader.js +11 -0
  466. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-loader.js.map +1 -0
  467. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts +9 -0
  468. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts.map +1 -0
  469. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js +102 -0
  470. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js.map +1 -0
  471. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.d.ts +28 -0
  472. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.d.ts.map +1 -0
  473. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js +135 -0
  474. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js.map +1 -0
  475. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.d.ts +21 -0
  476. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.d.ts.map +1 -0
  477. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js +131 -0
  478. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js.map +1 -0
  479. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.d.ts +23 -0
  480. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.d.ts.map +1 -0
  481. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js +110 -0
  482. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js.map +1 -0
  483. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.d.ts +18 -0
  484. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.d.ts.map +1 -0
  485. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.js +84 -0
  486. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.js.map +1 -0
  487. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.d.ts +23 -0
  488. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.d.ts.map +1 -0
  489. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js +138 -0
  490. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js.map +1 -0
  491. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.d.ts +21 -0
  492. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.d.ts.map +1 -0
  493. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js +108 -0
  494. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js.map +1 -0
  495. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.d.ts +19 -0
  496. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.d.ts.map +1 -0
  497. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.js +49 -0
  498. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.js.map +1 -0
  499. package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.d.ts +38 -0
  500. package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.d.ts.map +1 -0
  501. package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.js +176 -0
  502. package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.js.map +1 -0
  503. package/dist/server/server/speech/providers/openai/config.d.ts +22 -0
  504. package/dist/server/server/speech/providers/openai/config.d.ts.map +1 -0
  505. package/dist/server/server/speech/providers/openai/config.js +80 -0
  506. package/dist/server/server/speech/providers/openai/config.js.map +1 -0
  507. package/dist/server/server/speech/providers/openai/realtime-transcription-session.d.ts +42 -0
  508. package/dist/server/server/speech/providers/openai/realtime-transcription-session.d.ts.map +1 -0
  509. package/dist/server/server/speech/providers/openai/realtime-transcription-session.js +168 -0
  510. package/dist/server/server/speech/providers/openai/realtime-transcription-session.js.map +1 -0
  511. package/dist/server/server/speech/providers/openai/runtime.d.ts +29 -0
  512. package/dist/server/server/speech/providers/openai/runtime.d.ts.map +1 -0
  513. package/dist/server/server/speech/providers/openai/runtime.js +112 -0
  514. package/dist/server/server/speech/providers/openai/runtime.js.map +1 -0
  515. package/dist/server/server/speech/providers/openai/stt.d.ts +22 -0
  516. package/dist/server/server/speech/providers/openai/stt.d.ts.map +1 -0
  517. package/dist/server/server/speech/providers/openai/stt.js +206 -0
  518. package/dist/server/server/speech/providers/openai/stt.js.map +1 -0
  519. package/dist/server/server/speech/providers/openai/tts.d.ts +18 -0
  520. package/dist/server/server/speech/providers/openai/tts.d.ts.map +1 -0
  521. package/dist/server/server/speech/providers/openai/tts.js +46 -0
  522. package/dist/server/server/speech/providers/openai/tts.js.map +1 -0
  523. package/dist/server/server/speech/speech-config-resolver.d.ts +11 -0
  524. package/dist/server/server/speech/speech-config-resolver.d.ts.map +1 -0
  525. package/dist/server/server/speech/speech-config-resolver.js +104 -0
  526. package/dist/server/server/speech/speech-config-resolver.js.map +1 -0
  527. package/dist/server/server/speech/speech-provider.d.ts +59 -0
  528. package/dist/server/server/speech/speech-provider.d.ts.map +1 -0
  529. package/dist/server/server/speech/speech-provider.js +2 -0
  530. package/dist/server/server/speech/speech-provider.js.map +1 -0
  531. package/dist/server/server/speech/speech-runtime.d.ts +43 -0
  532. package/dist/server/server/speech/speech-runtime.d.ts.map +1 -0
  533. package/dist/server/server/speech/speech-runtime.js +560 -0
  534. package/dist/server/server/speech/speech-runtime.js.map +1 -0
  535. package/dist/server/server/speech/speech-types.d.ts +24 -0
  536. package/dist/server/server/speech/speech-types.d.ts.map +1 -0
  537. package/dist/server/server/speech/speech-types.js +8 -0
  538. package/dist/server/server/speech/speech-types.js.map +1 -0
  539. package/dist/server/server/speech/turn-detection-provider.d.ts +23 -0
  540. package/dist/server/server/speech/turn-detection-provider.d.ts.map +1 -0
  541. package/dist/server/server/speech/turn-detection-provider.js +2 -0
  542. package/dist/server/server/speech/turn-detection-provider.js.map +1 -0
  543. package/dist/server/server/types.d.ts +5 -0
  544. package/dist/server/server/types.d.ts.map +1 -0
  545. package/dist/server/server/types.js +3 -0
  546. package/dist/server/server/types.js.map +1 -0
  547. package/dist/server/server/utils/diff-highlighter.d.ts +60 -0
  548. package/dist/server/server/utils/diff-highlighter.d.ts.map +1 -0
  549. package/dist/server/server/utils/diff-highlighter.js +257 -0
  550. package/dist/server/server/utils/diff-highlighter.js.map +1 -0
  551. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts +16 -0
  552. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts.map +1 -0
  553. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js +35 -0
  554. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js.map +1 -0
  555. package/dist/server/server/voice/voice-turn-controller.d.ts +34 -0
  556. package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -0
  557. package/dist/server/server/voice/voice-turn-controller.js +160 -0
  558. package/dist/server/server/voice/voice-turn-controller.js.map +1 -0
  559. package/dist/server/server/voice-config.d.ts +15 -0
  560. package/dist/server/server/voice-config.d.ts.map +1 -0
  561. package/dist/server/server/voice-config.js +54 -0
  562. package/dist/server/server/voice-config.js.map +1 -0
  563. package/dist/server/server/voice-permission-policy.d.ts +4 -0
  564. package/dist/server/server/voice-permission-policy.d.ts.map +1 -0
  565. package/dist/server/server/voice-permission-policy.js +13 -0
  566. package/dist/server/server/voice-permission-policy.js.map +1 -0
  567. package/dist/server/server/voice-types.d.ts +12 -0
  568. package/dist/server/server/voice-types.d.ts.map +1 -0
  569. package/dist/server/server/voice-types.js +2 -0
  570. package/dist/server/server/voice-types.js.map +1 -0
  571. package/dist/server/server/websocket-server.d.ts +122 -0
  572. package/dist/server/server/websocket-server.d.ts.map +1 -0
  573. package/dist/server/server/websocket-server.js +1092 -0
  574. package/dist/server/server/websocket-server.js.map +1 -0
  575. package/dist/server/server/workspace-git-service.d.ts +108 -0
  576. package/dist/server/server/workspace-git-service.d.ts.map +1 -0
  577. package/dist/server/server/workspace-git-service.js +404 -0
  578. package/dist/server/server/workspace-git-service.js.map +1 -0
  579. package/dist/server/server/workspace-registry-bootstrap.d.ts +11 -0
  580. package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -0
  581. package/dist/server/server/workspace-registry-bootstrap.js +100 -0
  582. package/dist/server/server/workspace-registry-bootstrap.js.map +1 -0
  583. package/dist/server/server/workspace-registry-model.d.ts +33 -0
  584. package/dist/server/server/workspace-registry-model.d.ts.map +1 -0
  585. package/dist/server/server/workspace-registry-model.js +167 -0
  586. package/dist/server/server/workspace-registry-model.js.map +1 -0
  587. package/dist/server/server/workspace-registry.d.ts +130 -0
  588. package/dist/server/server/workspace-registry.d.ts.map +1 -0
  589. package/dist/server/server/workspace-registry.js +151 -0
  590. package/dist/server/server/workspace-registry.js.map +1 -0
  591. package/dist/server/server/worktree-bootstrap.d.ts +29 -0
  592. package/dist/server/server/worktree-bootstrap.d.ts.map +1 -0
  593. package/dist/server/server/worktree-bootstrap.js +508 -0
  594. package/dist/server/server/worktree-bootstrap.js.map +1 -0
  595. package/dist/server/server/worktree-session.d.ts +131 -0
  596. package/dist/server/server/worktree-session.d.ts.map +1 -0
  597. package/dist/server/server/worktree-session.js +487 -0
  598. package/dist/server/server/worktree-session.js.map +1 -0
  599. package/dist/server/shared/agent-attention-notification.d.ts +40 -0
  600. package/dist/server/shared/agent-attention-notification.d.ts.map +1 -0
  601. package/dist/server/shared/agent-attention-notification.js +130 -0
  602. package/dist/server/shared/agent-attention-notification.js.map +1 -0
  603. package/dist/server/shared/agent-lifecycle.d.ts +3 -0
  604. package/dist/server/shared/agent-lifecycle.d.ts.map +1 -0
  605. package/dist/server/shared/agent-lifecycle.js +8 -0
  606. package/dist/server/shared/agent-lifecycle.js.map +1 -0
  607. package/dist/server/shared/connection-offer.d.ts +62 -0
  608. package/dist/server/shared/connection-offer.d.ts.map +1 -0
  609. package/dist/server/shared/connection-offer.js +17 -0
  610. package/dist/server/shared/connection-offer.js.map +1 -0
  611. package/dist/server/shared/daemon-endpoints.d.ts +28 -0
  612. package/dist/server/shared/daemon-endpoints.d.ts.map +1 -0
  613. package/dist/server/shared/daemon-endpoints.js +122 -0
  614. package/dist/server/shared/daemon-endpoints.js.map +1 -0
  615. package/dist/server/shared/literal-union.d.ts +2 -0
  616. package/dist/server/shared/literal-union.d.ts.map +1 -0
  617. package/dist/server/shared/literal-union.js +2 -0
  618. package/dist/server/shared/literal-union.js.map +1 -0
  619. package/dist/server/shared/messages.d.ts +81816 -0
  620. package/dist/server/shared/messages.d.ts.map +1 -0
  621. package/dist/server/shared/messages.js +2553 -0
  622. package/dist/server/shared/messages.js.map +1 -0
  623. package/dist/server/shared/path-utils.d.ts +2 -0
  624. package/dist/server/shared/path-utils.d.ts.map +1 -0
  625. package/dist/server/shared/path-utils.js +16 -0
  626. package/dist/server/shared/path-utils.js.map +1 -0
  627. package/dist/server/shared/terminal-stream-protocol.d.ts +36 -0
  628. package/dist/server/shared/terminal-stream-protocol.d.ts.map +1 -0
  629. package/dist/server/shared/terminal-stream-protocol.js +99 -0
  630. package/dist/server/shared/terminal-stream-protocol.js.map +1 -0
  631. package/dist/server/shared/tool-call-display.d.ts +11 -0
  632. package/dist/server/shared/tool-call-display.d.ts.map +1 -0
  633. package/dist/server/shared/tool-call-display.js +133 -0
  634. package/dist/server/shared/tool-call-display.js.map +1 -0
  635. package/dist/server/terminal/terminal-manager.d.ts +30 -0
  636. package/dist/server/terminal/terminal-manager.d.ts.map +1 -0
  637. package/dist/server/terminal/terminal-manager.js +136 -0
  638. package/dist/server/terminal/terminal-manager.js.map +1 -0
  639. package/dist/server/terminal/terminal.d.ts +68 -0
  640. package/dist/server/terminal/terminal.d.ts.map +1 -0
  641. package/dist/server/terminal/terminal.js +384 -0
  642. package/dist/server/terminal/terminal.js.map +1 -0
  643. package/dist/server/utils/checkout-git.d.ts +180 -0
  644. package/dist/server/utils/checkout-git.d.ts.map +1 -0
  645. package/dist/server/utils/checkout-git.js +1621 -0
  646. package/dist/server/utils/checkout-git.js.map +1 -0
  647. package/dist/server/utils/directory-suggestions.d.ts +24 -0
  648. package/dist/server/utils/directory-suggestions.d.ts.map +1 -0
  649. package/dist/server/utils/directory-suggestions.js +671 -0
  650. package/dist/server/utils/directory-suggestions.js.map +1 -0
  651. package/dist/server/utils/executable.d.ts +33 -0
  652. package/dist/server/utils/executable.d.ts.map +1 -0
  653. package/dist/server/utils/executable.js +134 -0
  654. package/dist/server/utils/executable.js.map +1 -0
  655. package/dist/server/utils/path.d.ts +5 -0
  656. package/dist/server/utils/path.d.ts.map +1 -0
  657. package/dist/server/utils/path.js +15 -0
  658. package/dist/server/utils/path.js.map +1 -0
  659. package/dist/server/utils/project-icon.d.ts +39 -0
  660. package/dist/server/utils/project-icon.d.ts.map +1 -0
  661. package/dist/server/utils/project-icon.js +389 -0
  662. package/dist/server/utils/project-icon.js.map +1 -0
  663. package/dist/server/utils/spawn.d.ts +13 -0
  664. package/dist/server/utils/spawn.d.ts.map +1 -0
  665. package/dist/server/utils/spawn.js +33 -0
  666. package/dist/server/utils/spawn.js.map +1 -0
  667. package/dist/server/utils/worktree-metadata.d.ts +47 -0
  668. package/dist/server/utils/worktree-metadata.d.ts.map +1 -0
  669. package/dist/server/utils/worktree-metadata.js +116 -0
  670. package/dist/server/utils/worktree-metadata.js.map +1 -0
  671. package/dist/server/utils/worktree.d.ts +144 -0
  672. package/dist/server/utils/worktree.d.ts.map +1 -0
  673. package/dist/server/utils/worktree.js +745 -0
  674. package/dist/server/utils/worktree.js.map +1 -0
  675. package/dist/src/server/pid-lock.js +148 -0
  676. package/dist/src/server/pid-lock.js.map +1 -0
  677. package/dist/src/server/seawork-home.js +19 -0
  678. package/dist/src/server/seawork-home.js.map +1 -0
  679. package/dist/src/server/speech/providers/local/sherpa/sherpa-runtime-env.js +84 -0
  680. package/dist/src/server/speech/providers/local/sherpa/sherpa-runtime-env.js.map +1 -0
  681. package/package.json +117 -0
  682. package/src/server/speech/providers/local/sherpa/assets/silero_vad.onnx +0 -0
@@ -0,0 +1,671 @@
1
+ import { readdir, realpath, stat } from "node:fs/promises";
2
+ import path from "node:path";
3
+ const DEFAULT_LIMIT = 30;
4
+ const MAX_LIMIT = 100;
5
+ const DEFAULT_MAX_DEPTH = 6;
6
+ const DEFAULT_MAX_DIRECTORIES_SCANNED = 5000;
7
+ const DIRECTORY_LIST_CACHE_TTL_MS = 8000;
8
+ const DIRECTORY_LIST_CACHE_MAX_ENTRIES = 4000;
9
+ const directoryListCache = new Map();
10
+ const workspaceEntryListCache = new Map();
11
+ const NO_SEGMENT_INDEX = Number.MAX_SAFE_INTEGER;
12
+ const NO_MATCH_OFFSET = Number.MAX_SAFE_INTEGER;
13
+ const WORKSPACE_IGNORED_DIRECTORY_NAMES = new Set(["node_modules"]);
14
+ export async function searchHomeDirectories(options) {
15
+ const query = options.query.trim();
16
+ if (!query) {
17
+ return [];
18
+ }
19
+ const limit = normalizeLimit(options.limit);
20
+ const homeRoot = await resolveDirectory(options.homeDir);
21
+ if (!homeRoot) {
22
+ return [];
23
+ }
24
+ const queryParts = normalizeQueryParts(query, homeRoot);
25
+ if (!queryParts) {
26
+ return [];
27
+ }
28
+ if (queryParts.isPathQuery) {
29
+ return searchWithinParentDirectory({
30
+ homeRoot,
31
+ parentPart: queryParts.parentPart,
32
+ searchTerm: queryParts.searchTerm,
33
+ limit,
34
+ });
35
+ }
36
+ return searchAcrossHomeTree({
37
+ homeRoot,
38
+ searchTerm: queryParts.searchTerm,
39
+ limit,
40
+ maxDepth: options.maxDepth ?? DEFAULT_MAX_DEPTH,
41
+ maxDirectoriesScanned: options.maxDirectoriesScanned ?? DEFAULT_MAX_DIRECTORIES_SCANNED,
42
+ });
43
+ }
44
+ export async function searchWorkspaceEntries(options) {
45
+ const limit = normalizeLimit(options.limit);
46
+ const includeDirectories = options.includeDirectories ?? true;
47
+ const includeFiles = options.includeFiles ?? false;
48
+ if (!includeDirectories && !includeFiles) {
49
+ return [];
50
+ }
51
+ const workspaceRoot = await resolveDirectory(options.cwd);
52
+ if (!workspaceRoot) {
53
+ return [];
54
+ }
55
+ const queryParts = normalizeWorkspaceQueryParts(options.query, workspaceRoot);
56
+ if (!queryParts) {
57
+ return [];
58
+ }
59
+ if (queryParts.isPathQuery) {
60
+ return searchWorkspaceWithinParentDirectory({
61
+ workspaceRoot,
62
+ parentPart: queryParts.parentPart,
63
+ searchTerm: queryParts.searchTerm,
64
+ limit,
65
+ includeDirectories,
66
+ includeFiles,
67
+ });
68
+ }
69
+ return searchWorkspaceAcrossTree({
70
+ workspaceRoot,
71
+ searchTerm: queryParts.searchTerm,
72
+ limit,
73
+ includeDirectories,
74
+ includeFiles,
75
+ maxDepth: options.maxDepth ?? DEFAULT_MAX_DEPTH,
76
+ maxEntriesScanned: options.maxEntriesScanned ?? DEFAULT_MAX_DIRECTORIES_SCANNED,
77
+ });
78
+ }
79
+ function normalizeLimit(limit) {
80
+ const candidate = limit ?? DEFAULT_LIMIT;
81
+ if (!Number.isFinite(candidate)) {
82
+ return DEFAULT_LIMIT;
83
+ }
84
+ const bounded = Math.trunc(candidate);
85
+ return Math.max(1, Math.min(MAX_LIMIT, bounded));
86
+ }
87
+ async function searchWithinParentDirectory(input) {
88
+ const parentPath = path.resolve(input.homeRoot, input.parentPart || ".");
89
+ const parentRoot = await resolveDirectory(parentPath);
90
+ if (!parentRoot || !isPathInsideRoot(input.homeRoot, parentRoot)) {
91
+ return [];
92
+ }
93
+ const searchLower = input.searchTerm.toLowerCase();
94
+ const ranked = [];
95
+ const entries = await listChildDirectories({
96
+ directory: parentRoot,
97
+ homeRoot: input.homeRoot,
98
+ });
99
+ for (const entry of entries) {
100
+ if (searchLower && !entry.name.toLowerCase().includes(searchLower)) {
101
+ continue;
102
+ }
103
+ ranked.push(rankDirectory({
104
+ absolutePath: entry.absolutePath,
105
+ homeRoot: input.homeRoot,
106
+ searchLower,
107
+ }));
108
+ }
109
+ return dedupeAndSort(ranked).slice(0, input.limit);
110
+ }
111
+ async function searchAcrossHomeTree(input) {
112
+ const queue = [
113
+ { directory: input.homeRoot, depth: 0 },
114
+ ];
115
+ const visited = new Set([input.homeRoot]);
116
+ const ranked = [];
117
+ let scanned = 0;
118
+ const searchLower = input.searchTerm.toLowerCase();
119
+ for (let queueIndex = 0; queueIndex < queue.length && scanned < input.maxDirectoriesScanned; queueIndex += 1) {
120
+ const current = queue[queueIndex];
121
+ if (!current)
122
+ continue;
123
+ const entries = await listChildDirectories({
124
+ directory: current.directory,
125
+ homeRoot: input.homeRoot,
126
+ });
127
+ for (const entry of entries) {
128
+ const resolvedCandidate = entry.absolutePath;
129
+ if (visited.has(resolvedCandidate)) {
130
+ continue;
131
+ }
132
+ visited.add(resolvedCandidate);
133
+ scanned += 1;
134
+ const relativePath = normalizeRelativePath(input.homeRoot, resolvedCandidate);
135
+ if (relativePath.toLowerCase().includes(searchLower) ||
136
+ entry.name.toLowerCase().includes(searchLower)) {
137
+ ranked.push(rankDirectory({
138
+ absolutePath: resolvedCandidate,
139
+ homeRoot: input.homeRoot,
140
+ searchLower,
141
+ }));
142
+ }
143
+ if (current.depth < input.maxDepth && scanned < input.maxDirectoriesScanned) {
144
+ queue.push({ directory: resolvedCandidate, depth: current.depth + 1 });
145
+ }
146
+ }
147
+ }
148
+ return dedupeAndSort(ranked).slice(0, input.limit);
149
+ }
150
+ async function searchWorkspaceWithinParentDirectory(input) {
151
+ const parentPath = path.resolve(input.workspaceRoot, input.parentPart || ".");
152
+ const parentRoot = await resolveDirectory(parentPath);
153
+ if (!parentRoot || !isPathInsideRoot(input.workspaceRoot, parentRoot)) {
154
+ return [];
155
+ }
156
+ const searchLower = input.searchTerm.toLowerCase();
157
+ const ranked = [];
158
+ const entries = await listWorkspaceChildEntries({
159
+ directory: parentRoot,
160
+ workspaceRoot: input.workspaceRoot,
161
+ });
162
+ for (const entry of entries) {
163
+ if (entry.kind === "directory" && !input.includeDirectories) {
164
+ continue;
165
+ }
166
+ if (entry.kind === "file" && !input.includeFiles) {
167
+ continue;
168
+ }
169
+ if (searchLower && !entry.name.toLowerCase().includes(searchLower)) {
170
+ continue;
171
+ }
172
+ ranked.push(rankWorkspaceEntry({
173
+ absolutePath: entry.absolutePath,
174
+ kind: entry.kind,
175
+ workspaceRoot: input.workspaceRoot,
176
+ searchLower,
177
+ }));
178
+ }
179
+ return dedupeAndSortWorkspaceEntries(ranked).slice(0, input.limit);
180
+ }
181
+ async function searchWorkspaceAcrossTree(input) {
182
+ const queue = [
183
+ { directory: input.workspaceRoot, depth: 0 },
184
+ ];
185
+ const visited = new Set([input.workspaceRoot]);
186
+ const ranked = [];
187
+ let scanned = 0;
188
+ const searchLower = input.searchTerm.toLowerCase();
189
+ for (let queueIndex = 0; queueIndex < queue.length && scanned < input.maxEntriesScanned; queueIndex += 1) {
190
+ const current = queue[queueIndex];
191
+ if (!current)
192
+ continue;
193
+ const entries = await listWorkspaceChildEntries({
194
+ directory: current.directory,
195
+ workspaceRoot: input.workspaceRoot,
196
+ });
197
+ for (const entry of entries) {
198
+ scanned += 1;
199
+ if (entry.kind === "directory") {
200
+ if (!visited.has(entry.absolutePath) &&
201
+ current.depth < input.maxDepth &&
202
+ scanned < input.maxEntriesScanned) {
203
+ visited.add(entry.absolutePath);
204
+ queue.push({
205
+ directory: entry.absolutePath,
206
+ depth: current.depth + 1,
207
+ });
208
+ }
209
+ }
210
+ if (entry.kind === "directory" && !input.includeDirectories) {
211
+ continue;
212
+ }
213
+ if (entry.kind === "file" && !input.includeFiles) {
214
+ continue;
215
+ }
216
+ const relativePath = normalizeRelativePath(input.workspaceRoot, entry.absolutePath);
217
+ if (searchLower &&
218
+ !relativePath.toLowerCase().includes(searchLower) &&
219
+ !entry.name.toLowerCase().includes(searchLower)) {
220
+ continue;
221
+ }
222
+ ranked.push(rankWorkspaceEntry({
223
+ absolutePath: entry.absolutePath,
224
+ kind: entry.kind,
225
+ workspaceRoot: input.workspaceRoot,
226
+ searchLower,
227
+ }));
228
+ }
229
+ }
230
+ return dedupeAndSortWorkspaceEntries(ranked).slice(0, input.limit);
231
+ }
232
+ function dedupeAndSortWorkspaceEntries(rankedEntries) {
233
+ const byPath = new Map();
234
+ for (const entry of rankedEntries) {
235
+ const key = `${entry.kind}:${entry.relativePath}`;
236
+ const existing = byPath.get(key);
237
+ if (!existing || compareRankedWorkspaceEntries(entry, existing) < 0) {
238
+ byPath.set(key, entry);
239
+ }
240
+ }
241
+ return Array.from(byPath.values())
242
+ .sort(compareRankedWorkspaceEntries)
243
+ .map((entry) => ({
244
+ path: entry.relativePath,
245
+ kind: entry.kind,
246
+ }));
247
+ }
248
+ function compareRankedWorkspaceEntries(left, right) {
249
+ if (left.matchTier !== right.matchTier) {
250
+ return left.matchTier - right.matchTier;
251
+ }
252
+ if (left.segmentIndex !== right.segmentIndex) {
253
+ return left.segmentIndex - right.segmentIndex;
254
+ }
255
+ if (left.matchOffset !== right.matchOffset) {
256
+ return left.matchOffset - right.matchOffset;
257
+ }
258
+ if (left.depth !== right.depth) {
259
+ return left.depth - right.depth;
260
+ }
261
+ if (left.kind !== right.kind) {
262
+ return left.kind === "directory" ? -1 : 1;
263
+ }
264
+ return left.relativePath.localeCompare(right.relativePath);
265
+ }
266
+ function dedupeAndSort(ranked) {
267
+ const byPath = new Map();
268
+ for (const entry of ranked) {
269
+ const existing = byPath.get(entry.absolutePath);
270
+ if (!existing || compareRankedDirectories(entry, existing) < 0) {
271
+ byPath.set(entry.absolutePath, entry);
272
+ }
273
+ }
274
+ return Array.from(byPath.values())
275
+ .sort(compareRankedDirectories)
276
+ .map((entry) => entry.absolutePath);
277
+ }
278
+ function compareRankedDirectories(left, right) {
279
+ if (left.matchTier !== right.matchTier) {
280
+ return left.matchTier - right.matchTier;
281
+ }
282
+ if (left.segmentIndex !== right.segmentIndex) {
283
+ return left.segmentIndex - right.segmentIndex;
284
+ }
285
+ if (left.matchOffset !== right.matchOffset) {
286
+ return left.matchOffset - right.matchOffset;
287
+ }
288
+ if (left.depth !== right.depth) {
289
+ return left.depth - right.depth;
290
+ }
291
+ return left.absolutePath.localeCompare(right.absolutePath);
292
+ }
293
+ function rankDirectory(input) {
294
+ const relative = normalizeRelativePath(input.homeRoot, input.absolutePath);
295
+ const relativeLower = relative.toLowerCase();
296
+ const depth = relative === "." ? 0 : relative.split("/").length;
297
+ const searchLower = input.searchLower;
298
+ if (!searchLower) {
299
+ return {
300
+ absolutePath: input.absolutePath,
301
+ matchTier: 3,
302
+ segmentIndex: NO_SEGMENT_INDEX,
303
+ matchOffset: 0,
304
+ depth,
305
+ };
306
+ }
307
+ const segments = relativeLower === "." ? [] : relativeLower.split("/");
308
+ const exactSegmentIndex = findSegmentMatchIndex(segments, (segment) => segment === searchLower);
309
+ const prefixSegmentIndex = findSegmentMatchIndex(segments, (segment) => segment.startsWith(searchLower));
310
+ const partialSegmentIndex = findSegmentMatchIndex(segments, (segment) => segment.includes(searchLower));
311
+ const matchOffset = relativeLower.indexOf(searchLower);
312
+ let matchTier = 4;
313
+ let segmentIndex = NO_SEGMENT_INDEX;
314
+ if (exactSegmentIndex >= 0) {
315
+ matchTier = 0;
316
+ segmentIndex = exactSegmentIndex;
317
+ }
318
+ else if (prefixSegmentIndex >= 0) {
319
+ matchTier = 1;
320
+ segmentIndex = prefixSegmentIndex;
321
+ }
322
+ else if (partialSegmentIndex >= 0) {
323
+ matchTier = 2;
324
+ segmentIndex = partialSegmentIndex;
325
+ }
326
+ else if (relativeLower.startsWith(searchLower)) {
327
+ matchTier = 3;
328
+ }
329
+ return {
330
+ absolutePath: input.absolutePath,
331
+ matchTier,
332
+ segmentIndex,
333
+ matchOffset: matchOffset >= 0 ? matchOffset : NO_MATCH_OFFSET,
334
+ depth,
335
+ };
336
+ }
337
+ function rankWorkspaceEntry(input) {
338
+ const relativePath = normalizeRelativePath(input.workspaceRoot, input.absolutePath);
339
+ const relativeLower = relativePath.toLowerCase();
340
+ const depth = relativePath === "." ? 0 : relativePath.split("/").length;
341
+ const searchLower = input.searchLower;
342
+ if (!searchLower) {
343
+ return {
344
+ relativePath,
345
+ kind: input.kind,
346
+ matchTier: 3,
347
+ segmentIndex: NO_SEGMENT_INDEX,
348
+ matchOffset: 0,
349
+ depth,
350
+ };
351
+ }
352
+ const segments = relativeLower === "." ? [] : relativeLower.split("/");
353
+ const exactSegmentIndex = findSegmentMatchIndex(segments, (segment) => segment === searchLower);
354
+ const prefixSegmentIndex = findSegmentMatchIndex(segments, (segment) => segment.startsWith(searchLower));
355
+ const partialSegmentIndex = findSegmentMatchIndex(segments, (segment) => segment.includes(searchLower));
356
+ const matchOffset = relativeLower.indexOf(searchLower);
357
+ let matchTier = 4;
358
+ let segmentIndex = NO_SEGMENT_INDEX;
359
+ if (exactSegmentIndex >= 0) {
360
+ matchTier = 0;
361
+ segmentIndex = exactSegmentIndex;
362
+ }
363
+ else if (prefixSegmentIndex >= 0) {
364
+ matchTier = 1;
365
+ segmentIndex = prefixSegmentIndex;
366
+ }
367
+ else if (partialSegmentIndex >= 0) {
368
+ matchTier = 2;
369
+ segmentIndex = partialSegmentIndex;
370
+ }
371
+ else if (relativeLower.startsWith(searchLower)) {
372
+ matchTier = 3;
373
+ }
374
+ return {
375
+ relativePath,
376
+ kind: input.kind,
377
+ matchTier,
378
+ segmentIndex,
379
+ matchOffset: matchOffset >= 0 ? matchOffset : NO_MATCH_OFFSET,
380
+ depth,
381
+ };
382
+ }
383
+ function findSegmentMatchIndex(segments, predicate) {
384
+ for (let index = 0; index < segments.length; index += 1) {
385
+ const segment = segments[index];
386
+ if (!segment) {
387
+ continue;
388
+ }
389
+ if (predicate(segment)) {
390
+ return index;
391
+ }
392
+ }
393
+ return -1;
394
+ }
395
+ function normalizeRelativePath(homeRoot, absolutePath) {
396
+ const relative = path.relative(homeRoot, absolutePath);
397
+ if (!relative) {
398
+ return ".";
399
+ }
400
+ return relative.split(path.sep).join("/");
401
+ }
402
+ function isPathInsideRoot(root, target) {
403
+ const relative = path.relative(root, target);
404
+ return relative === "" || (!relative.startsWith("..") && !path.isAbsolute(relative));
405
+ }
406
+ function normalizeQueryParts(query, homeRoot) {
407
+ const typedQuery = query.trim().replace(/\\/g, "/");
408
+ let normalized = typedQuery;
409
+ if (!normalized) {
410
+ return null;
411
+ }
412
+ // Only treat the query as a literal path when the user explicitly roots it
413
+ // with ~, ~/, ./, or an absolute path. Bare queries like "faro/main" are
414
+ // search terms, not paths.
415
+ let isRooted = false;
416
+ if (normalized.startsWith("~")) {
417
+ isRooted = true;
418
+ normalized = normalized.slice(1);
419
+ if (normalized.startsWith("/")) {
420
+ normalized = normalized.slice(1);
421
+ }
422
+ }
423
+ if (path.isAbsolute(normalized)) {
424
+ isRooted = true;
425
+ const absolute = path.resolve(normalized);
426
+ if (!isPathInsideRoot(homeRoot, absolute)) {
427
+ return null;
428
+ }
429
+ normalized = normalizeRelativePath(homeRoot, absolute);
430
+ }
431
+ if (normalized.startsWith("./")) {
432
+ isRooted = true;
433
+ }
434
+ normalized = normalized.replace(/^\.\/+/, "").replace(/\/{2,}/g, "/");
435
+ if (!normalized) {
436
+ // Treat "~" and "~/" as a request to browse the home root.
437
+ if (typedQuery === "~" || typedQuery === "~/") {
438
+ return {
439
+ isPathQuery: true,
440
+ parentPart: "",
441
+ searchTerm: "",
442
+ };
443
+ }
444
+ return null;
445
+ }
446
+ const isPathQuery = isRooted && normalized.includes("/");
447
+ if (!isPathQuery) {
448
+ return {
449
+ isPathQuery: false,
450
+ parentPart: "",
451
+ searchTerm: normalized,
452
+ };
453
+ }
454
+ const slashIndex = normalized.lastIndexOf("/");
455
+ const parentPart = normalized.slice(0, slashIndex);
456
+ const searchTerm = normalized.slice(slashIndex + 1);
457
+ return {
458
+ isPathQuery: true,
459
+ parentPart,
460
+ searchTerm,
461
+ };
462
+ }
463
+ function normalizeWorkspaceQueryParts(query, workspaceRoot) {
464
+ let normalized = query.trim().replace(/\\/g, "/");
465
+ if (path.isAbsolute(normalized)) {
466
+ const absolute = path.resolve(normalized);
467
+ if (!isPathInsideRoot(workspaceRoot, absolute)) {
468
+ return null;
469
+ }
470
+ normalized = normalizeRelativePath(workspaceRoot, absolute);
471
+ }
472
+ normalized = normalized.replace(/^\.\/+/, "").replace(/\/{2,}/g, "/");
473
+ if (!normalized) {
474
+ return {
475
+ isPathQuery: true,
476
+ parentPart: "",
477
+ searchTerm: "",
478
+ };
479
+ }
480
+ const isPathQuery = normalized.includes("/");
481
+ const slashIndex = normalized.lastIndexOf("/");
482
+ const parentPart = slashIndex >= 0 ? normalized.slice(0, slashIndex) : "";
483
+ const searchTerm = slashIndex >= 0 ? normalized.slice(slashIndex + 1) : normalized;
484
+ return {
485
+ isPathQuery,
486
+ parentPart,
487
+ searchTerm,
488
+ };
489
+ }
490
+ async function resolveDirectory(inputPath) {
491
+ try {
492
+ const resolved = await realpath(path.resolve(inputPath));
493
+ const stats = await stat(resolved);
494
+ if (!stats.isDirectory()) {
495
+ return null;
496
+ }
497
+ return resolved;
498
+ }
499
+ catch {
500
+ return null;
501
+ }
502
+ }
503
+ async function listChildDirectories(input) {
504
+ const now = Date.now();
505
+ const cached = directoryListCache.get(input.directory);
506
+ if (cached && cached.expiresAt > now) {
507
+ return cached.entries;
508
+ }
509
+ const dirents = await readdir(input.directory, { withFileTypes: true }).catch(() => []);
510
+ const entries = [];
511
+ for (const dirent of dirents) {
512
+ if (isHiddenDirectoryName(dirent.name)) {
513
+ continue;
514
+ }
515
+ if (!dirent.isDirectory() && !dirent.isSymbolicLink()) {
516
+ continue;
517
+ }
518
+ const candidatePath = path.join(input.directory, dirent.name);
519
+ const absolutePath = await resolveDirectoryCandidate({
520
+ candidatePath,
521
+ dirent,
522
+ homeRoot: input.homeRoot,
523
+ });
524
+ if (!absolutePath) {
525
+ continue;
526
+ }
527
+ entries.push({
528
+ name: dirent.name,
529
+ absolutePath,
530
+ });
531
+ }
532
+ setDirectoryListCache(input.directory, {
533
+ expiresAt: now + DIRECTORY_LIST_CACHE_TTL_MS,
534
+ entries,
535
+ });
536
+ return entries;
537
+ }
538
+ async function listWorkspaceChildEntries(input) {
539
+ const now = Date.now();
540
+ const cached = workspaceEntryListCache.get(input.directory);
541
+ if (cached && cached.expiresAt > now) {
542
+ return cached.entries;
543
+ }
544
+ const dirents = await readdir(input.directory, { withFileTypes: true }).catch(() => []);
545
+ const entries = [];
546
+ for (const dirent of dirents) {
547
+ if (isHiddenDirectoryName(dirent.name)) {
548
+ continue;
549
+ }
550
+ if (isIgnoredWorkspaceDirectoryName(dirent.name)) {
551
+ continue;
552
+ }
553
+ const candidatePath = path.join(input.directory, dirent.name);
554
+ const entry = await resolveWorkspaceCandidate({
555
+ candidatePath,
556
+ dirent,
557
+ workspaceRoot: input.workspaceRoot,
558
+ });
559
+ if (!entry) {
560
+ continue;
561
+ }
562
+ entries.push({
563
+ name: dirent.name,
564
+ absolutePath: entry.absolutePath,
565
+ kind: entry.kind,
566
+ });
567
+ }
568
+ setWorkspaceEntryListCache(input.directory, {
569
+ expiresAt: now + DIRECTORY_LIST_CACHE_TTL_MS,
570
+ entries,
571
+ });
572
+ return entries;
573
+ }
574
+ async function resolveDirectoryCandidate(input) {
575
+ if (input.dirent.isDirectory()) {
576
+ const resolved = path.resolve(input.candidatePath);
577
+ return isPathInsideRoot(input.homeRoot, resolved) ? resolved : null;
578
+ }
579
+ const resolved = await resolveDirectory(input.candidatePath);
580
+ if (!resolved || !isPathInsideRoot(input.homeRoot, resolved)) {
581
+ return null;
582
+ }
583
+ return resolved;
584
+ }
585
+ async function resolveWorkspaceCandidate(input) {
586
+ if (input.dirent.isDirectory()) {
587
+ const resolved = path.resolve(input.candidatePath);
588
+ if (!isPathInsideRoot(input.workspaceRoot, resolved)) {
589
+ return null;
590
+ }
591
+ return { absolutePath: resolved, kind: "directory" };
592
+ }
593
+ if (input.dirent.isFile()) {
594
+ const resolved = path.resolve(input.candidatePath);
595
+ if (!isPathInsideRoot(input.workspaceRoot, resolved)) {
596
+ return null;
597
+ }
598
+ return { absolutePath: resolved, kind: "file" };
599
+ }
600
+ if (!input.dirent.isSymbolicLink()) {
601
+ return null;
602
+ }
603
+ try {
604
+ const resolved = await realpath(input.candidatePath);
605
+ if (!isPathInsideRoot(input.workspaceRoot, resolved)) {
606
+ return null;
607
+ }
608
+ const stats = await stat(resolved);
609
+ if (stats.isDirectory()) {
610
+ return { absolutePath: resolved, kind: "directory" };
611
+ }
612
+ if (stats.isFile()) {
613
+ return { absolutePath: resolved, kind: "file" };
614
+ }
615
+ return null;
616
+ }
617
+ catch {
618
+ return null;
619
+ }
620
+ }
621
+ function isHiddenDirectoryName(name) {
622
+ return name.startsWith(".");
623
+ }
624
+ function isIgnoredWorkspaceDirectoryName(name) {
625
+ return WORKSPACE_IGNORED_DIRECTORY_NAMES.has(name);
626
+ }
627
+ function setDirectoryListCache(cacheKey, entry) {
628
+ directoryListCache.set(cacheKey, entry);
629
+ pruneDirectoryListCache();
630
+ }
631
+ function setWorkspaceEntryListCache(cacheKey, entry) {
632
+ workspaceEntryListCache.set(cacheKey, entry);
633
+ pruneWorkspaceEntryListCache();
634
+ }
635
+ function pruneDirectoryListCache() {
636
+ if (directoryListCache.size <= DIRECTORY_LIST_CACHE_MAX_ENTRIES) {
637
+ return;
638
+ }
639
+ const now = Date.now();
640
+ for (const [cacheKey, entry] of directoryListCache) {
641
+ if (entry.expiresAt <= now) {
642
+ directoryListCache.delete(cacheKey);
643
+ }
644
+ }
645
+ while (directoryListCache.size > DIRECTORY_LIST_CACHE_MAX_ENTRIES) {
646
+ const oldestKey = directoryListCache.keys().next().value;
647
+ if (!oldestKey) {
648
+ return;
649
+ }
650
+ directoryListCache.delete(oldestKey);
651
+ }
652
+ }
653
+ function pruneWorkspaceEntryListCache() {
654
+ if (workspaceEntryListCache.size <= DIRECTORY_LIST_CACHE_MAX_ENTRIES) {
655
+ return;
656
+ }
657
+ const now = Date.now();
658
+ for (const [cacheKey, entry] of workspaceEntryListCache) {
659
+ if (entry.expiresAt <= now) {
660
+ workspaceEntryListCache.delete(cacheKey);
661
+ }
662
+ }
663
+ while (workspaceEntryListCache.size > DIRECTORY_LIST_CACHE_MAX_ENTRIES) {
664
+ const oldestKey = workspaceEntryListCache.keys().next().value;
665
+ if (!oldestKey) {
666
+ return;
667
+ }
668
+ workspaceEntryListCache.delete(oldestKey);
669
+ }
670
+ }
671
+ //# sourceMappingURL=directory-suggestions.js.map