oh-my-opencode 4.9.2 → 4.11.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 (1799) hide show
  1. package/.agents/skills/codex-qa/SKILL.md +96 -0
  2. package/.agents/skills/codex-qa/references/app-server.md +63 -0
  3. package/.agents/skills/codex-qa/references/components-hooks.md +38 -0
  4. package/.agents/skills/codex-qa/references/docker-qa.md +62 -0
  5. package/.agents/skills/codex-qa/references/install-verify.md +57 -0
  6. package/.agents/skills/codex-qa/references/isolation.md +57 -0
  7. package/.agents/skills/codex-qa/references/logging-debug.md +60 -0
  8. package/.agents/skills/codex-qa/scripts/app-server-drive.sh +76 -0
  9. package/.agents/skills/codex-qa/scripts/hook-unit-probe.sh +69 -0
  10. package/.agents/skills/codex-qa/scripts/install-verify.sh +60 -0
  11. package/.agents/skills/codex-qa/scripts/lib/app-server-client.mjs +117 -0
  12. package/.agents/skills/codex-qa/scripts/lib/common.sh +180 -0
  13. package/.agents/skills/codex-qa/scripts/lib/mock-model.mjs +56 -0
  14. package/.agents/skills/codex-qa/scripts/tui-smoke.sh +71 -0
  15. package/.agents/skills/opencode-qa/SKILL.md +8 -1
  16. package/.agents/skills/opencode-qa/references/docker-qa.md +72 -0
  17. package/.agents/skills/opencode-qa/scripts/lib/common.sh +39 -1
  18. package/.agents/skills/tech-debt-audit/SKILL.md +277 -0
  19. package/.agents/skills/work-with-pr/SKILL.md +77 -53
  20. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +1 -1
  21. package/.opencode/skills/work-with-pr/SKILL.md +79 -55
  22. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +1 -1
  23. package/README.ja.md +3 -3
  24. package/README.ko.md +3 -3
  25. package/README.md +2 -2
  26. package/README.ru.md +3 -3
  27. package/README.zh-cn.md +3 -3
  28. package/THIRD-PARTY-NOTICES.md +205 -0
  29. package/bin/platform.js +5 -0
  30. package/bin/platform.test.ts +56 -0
  31. package/dist/agents/atlas/agent.d.ts +4 -3
  32. package/dist/agents/dynamic-agent-prompt-types.d.ts +1 -1
  33. package/dist/agents/gpt-apply-patch-guard.d.ts +2 -2
  34. package/dist/agents/hephaestus/agent.d.ts +5 -0
  35. package/dist/agents/hephaestus/index.d.ts +1 -1
  36. package/dist/agents/index.d.ts +0 -1
  37. package/dist/agents/metis.d.ts +1 -0
  38. package/dist/agents/prometheus/index.d.ts +0 -1
  39. package/dist/agents/prometheus/system-prompt.d.ts +0 -2
  40. package/dist/agents/sisyphus/kimi-k2-7.d.ts +17 -0
  41. package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
  42. package/dist/agents/sisyphus-junior/kimi-k2-7.d.ts +11 -0
  43. package/dist/agents/types.d.ts +2 -2
  44. package/dist/cli/config-manager/add-tui-plugin-to-tui-config.d.ts +7 -0
  45. package/dist/cli/doctor/checks/codex-components.d.ts +13 -0
  46. package/dist/cli/doctor/checks/codex-runtime-wrapper.d.ts +7 -0
  47. package/dist/cli/doctor/checks/codex.d.ts +1 -1
  48. package/dist/cli/doctor/checks/config.d.ts +1 -1
  49. package/dist/cli/doctor/checks/dependencies.d.ts +1 -2
  50. package/dist/cli/doctor/checks/index.d.ts +1 -1
  51. package/dist/cli/doctor/checks/model-resolution.d.ts +1 -1
  52. package/dist/cli/doctor/checks/system.d.ts +1 -1
  53. package/dist/cli/doctor/checks/team-mode.d.ts +1 -1
  54. package/dist/cli/doctor/checks/tools-gh.d.ts +1 -1
  55. package/dist/cli/doctor/checks/tools-mcp.d.ts +1 -1
  56. package/dist/cli/doctor/checks/tools.d.ts +2 -1
  57. package/dist/cli/doctor/checks/tui-plugin-config.d.ts +8 -1
  58. package/dist/cli/doctor/framework/constants.d.ts +32 -0
  59. package/dist/cli/doctor/framework/spawn-with-timeout.d.ts +8 -0
  60. package/dist/cli/doctor/framework/types.d.ts +147 -0
  61. package/dist/cli/doctor/index.d.ts +4 -4
  62. package/dist/cli/doctor/runner.d.ts +1 -1
  63. package/dist/cli/index.js +10353 -7521
  64. package/dist/cli/install-ast-grep-sg.d.ts +10 -0
  65. package/dist/cli/install-codex/codex-cache-bins.d.ts +1 -21
  66. package/dist/cli/install-codex/codex-cache-bundled-mcps.d.ts +1 -5
  67. package/dist/cli/install-codex/codex-cache-command-shim.d.ts +1 -1
  68. package/dist/cli/install-codex/codex-cache-fs.d.ts +1 -3
  69. package/dist/cli/install-codex/codex-cache-install.d.ts +1 -13
  70. package/dist/cli/install-codex/codex-cache-legacy-bins.d.ts +1 -3
  71. package/dist/cli/install-codex/codex-cache-local-dependencies.d.ts +1 -1
  72. package/dist/cli/install-codex/codex-cache-mcp-manifest.d.ts +1 -2
  73. package/dist/cli/install-codex/codex-cache-paths.d.ts +1 -2
  74. package/dist/cli/install-codex/codex-cache-prune.d.ts +1 -10
  75. package/dist/cli/install-codex/codex-cache.d.ts +1 -4
  76. package/dist/cli/install-codex/codex-cached-marketplace-manifest.d.ts +1 -6
  77. package/dist/cli/install-codex/codex-cleanup-config.d.ts +1 -6
  78. package/dist/cli/install-codex/codex-cleanup.d.ts +1 -21
  79. package/dist/cli/install-codex/codex-config-agents.d.ts +1 -3
  80. package/dist/cli/install-codex/codex-config-features.d.ts +1 -1
  81. package/dist/cli/install-codex/codex-config-marketplaces.d.ts +1 -6
  82. package/dist/cli/install-codex/codex-config-permissions.d.ts +1 -1
  83. package/dist/cli/install-codex/codex-config-plugins.d.ts +1 -9
  84. package/dist/cli/install-codex/codex-config-reasoning.d.ts +1 -2
  85. package/dist/cli/install-codex/codex-config-toml-sections.d.ts +1 -9
  86. package/dist/cli/install-codex/codex-config-toml.d.ts +1 -13
  87. package/dist/cli/install-codex/codex-hook-trust.d.ts +1 -6
  88. package/dist/cli/install-codex/codex-installation-detection.d.ts +1 -36
  89. package/dist/cli/install-codex/codex-installer-bin-dir.d.ts +1 -8
  90. package/dist/cli/install-codex/codex-marketplace-snapshot.d.ts +1 -15
  91. package/dist/cli/install-codex/codex-marketplace.d.ts +1 -9
  92. package/dist/cli/install-codex/codex-model-catalog.d.ts +1 -13
  93. package/dist/cli/install-codex/codex-multi-agent-v2-config.d.ts +1 -12
  94. package/dist/cli/install-codex/codex-package-layout.d.ts +1 -1
  95. package/dist/cli/install-codex/codex-process.d.ts +1 -7
  96. package/dist/cli/install-codex/codex-project-local-cleanup-best-effort.d.ts +1 -7
  97. package/dist/cli/install-codex/codex-project-local-cleanup.d.ts +1 -35
  98. package/dist/cli/install-codex/git-bash.d.ts +1 -35
  99. package/dist/cli/install-codex/index.d.ts +1 -11
  100. package/dist/cli/install-codex/install-codex-test-fixtures.d.ts +34 -0
  101. package/dist/cli/install-codex/install-codex.d.ts +1 -10
  102. package/dist/cli/install-codex/lazycodex-version-stamp.d.ts +1 -19
  103. package/dist/cli/install-codex/link-cached-plugin-agents.d.ts +1 -16
  104. package/dist/cli/install-codex/lsp-daemon-reaper.d.ts +1 -5
  105. package/dist/cli/install-codex/toml-section-editor.d.ts +1 -11
  106. package/dist/cli/install-codex/types.d.ts +1 -76
  107. package/dist/cli/mcp-oauth/login.d.ts +1 -1
  108. package/dist/cli/model-fallback.d.ts +1 -0
  109. package/dist/cli/provider-availability.d.ts +2 -0
  110. package/dist/cli-node/index.js +10433 -7546
  111. package/dist/config/index.d.ts +1 -1
  112. package/dist/config/schema/agent-names.d.ts +1 -1
  113. package/dist/config/schema/agent-overrides.d.ts +80 -16
  114. package/dist/config/schema/codegraph.d.ts +9 -0
  115. package/dist/config/schema/experimental.d.ts +0 -1
  116. package/dist/config/schema/git-env-prefix.d.ts +1 -5
  117. package/dist/config/schema/hooks.d.ts +3 -1
  118. package/dist/config/schema/internal/permission.d.ts +5 -1
  119. package/dist/config/schema/monitor.d.ts +15 -0
  120. package/dist/config/schema/oh-my-opencode-config.d.ts +102 -32
  121. package/dist/config/schema/openclaw.d.ts +5 -4
  122. package/dist/config/schema/team-mode.d.ts +1 -16
  123. package/dist/config/schema/tmux.d.ts +4 -5
  124. package/dist/config/schema/tui.d.ts +10 -0
  125. package/dist/config/schema.d.ts +2 -0
  126. package/dist/config/validate.d.ts +8 -0
  127. package/dist/create-hooks.d.ts +5 -1
  128. package/dist/create-managers.d.ts +7 -0
  129. package/dist/create-runtime-tmux-config.d.ts +1 -1
  130. package/dist/create-tools.d.ts +1 -1
  131. package/dist/features/background-agent/error-classifier.d.ts +2 -2
  132. package/dist/features/background-agent/index.d.ts +1 -1
  133. package/dist/features/background-agent/manager.d.ts +35 -2
  134. package/dist/features/background-agent/parent-wake-dispatched-tracker.d.ts +8 -0
  135. package/dist/features/background-agent/parent-wake-notifier.d.ts +4 -0
  136. package/dist/features/background-agent/spawner/fallback-agent.d.ts +3 -2
  137. package/dist/features/background-agent/spawner/task-prompt-body.d.ts +5 -6
  138. package/dist/features/background-agent/task-snapshot.d.ts +2 -0
  139. package/dist/features/background-agent/types.d.ts +9 -0
  140. package/dist/features/builtin-commands/templates/refactor-sections/intro-and-analysis.d.ts +1 -1
  141. package/dist/features/builtin-commands/templates/refactor-sections/plan-and-execution.d.ts +1 -1
  142. package/dist/features/builtin-commands/templates/refactor-sections/team-mode-addendum.d.ts +1 -1
  143. package/dist/features/builtin-commands/templates/refactor-sections/verification-and-tooling.d.ts +1 -1
  144. package/dist/features/builtin-commands/templates/remove-ai-slops.d.ts +1 -1
  145. package/dist/features/builtin-skills/index.d.ts +1 -2
  146. package/dist/features/builtin-skills/skill-file-loader.d.ts +1 -4
  147. package/dist/features/builtin-skills/skills/agent-browser-skill.d.ts +1 -2
  148. package/dist/features/builtin-skills/skills/agent-browser-template.d.ts +1 -2
  149. package/dist/features/builtin-skills/skills/debugging.d.ts +1 -2
  150. package/dist/features/builtin-skills/skills/dev-browser.d.ts +1 -2
  151. package/dist/features/builtin-skills/skills/frontend.d.ts +1 -0
  152. package/dist/features/builtin-skills/skills/git-master-sections/commit-atomic-planning.d.ts +1 -1
  153. package/dist/features/builtin-skills/skills/git-master-sections/commit-context-analysis.d.ts +1 -1
  154. package/dist/features/builtin-skills/skills/git-master-sections/commit-execution-verification.d.ts +1 -1
  155. package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +1 -1
  156. package/dist/features/builtin-skills/skills/git-master-sections/history-search-workflow.d.ts +1 -1
  157. package/dist/features/builtin-skills/skills/git-master-sections/overview.d.ts +1 -1
  158. package/dist/features/builtin-skills/skills/git-master-sections/quick-reference.d.ts +1 -1
  159. package/dist/features/builtin-skills/skills/git-master-sections/rebase-workflow.d.ts +1 -1
  160. package/dist/features/builtin-skills/skills/git-master-skill-metadata.d.ts +1 -2
  161. package/dist/features/builtin-skills/skills/git-master.d.ts +1 -2
  162. package/dist/features/builtin-skills/skills/index.d.ts +1 -13
  163. package/dist/features/builtin-skills/skills/init-deep.d.ts +1 -2
  164. package/dist/features/builtin-skills/skills/playwright-cli.d.ts +1 -10
  165. package/dist/features/builtin-skills/skills/playwright-mcp-skill.d.ts +1 -2
  166. package/dist/features/builtin-skills/skills/playwright.d.ts +1 -2
  167. package/dist/features/builtin-skills/skills/remove-ai-slops.d.ts +1 -2
  168. package/dist/features/builtin-skills/skills/review-work.d.ts +1 -2
  169. package/dist/features/builtin-skills/skills/security-research.d.ts +1 -2
  170. package/dist/features/builtin-skills/skills/security-review.d.ts +1 -2
  171. package/dist/features/builtin-skills/skills/team-mode.d.ts +1 -2
  172. package/dist/features/builtin-skills/skills/visual-qa.d.ts +1 -2
  173. package/dist/features/builtin-skills/skills.d.ts +1 -12
  174. package/dist/features/builtin-skills/types.d.ts +1 -15
  175. package/dist/features/claude-code-agent-loader/agent-definitions-loader.d.ts +1 -3
  176. package/dist/features/claude-code-agent-loader/claude-model-mapper.d.ts +1 -4
  177. package/dist/features/claude-code-agent-loader/index.d.ts +1 -5
  178. package/dist/features/claude-code-agent-loader/json-agent-loader.d.ts +1 -2
  179. package/dist/features/claude-code-agent-loader/loader.d.ts +1 -5
  180. package/dist/features/claude-code-agent-loader/opencode-config-agents-reader.d.ts +1 -2
  181. package/dist/features/claude-code-agent-loader/types.d.ts +1 -29
  182. package/dist/features/claude-code-command-loader/index.d.ts +1 -2
  183. package/dist/features/claude-code-command-loader/loader-cache.d.ts +1 -6
  184. package/dist/features/claude-code-command-loader/loader.d.ts +1 -8
  185. package/dist/features/claude-code-command-loader/types.d.ts +1 -42
  186. package/dist/features/claude-code-mcp-loader/configure-allowed-env-vars.d.ts +1 -5
  187. package/dist/features/claude-code-mcp-loader/index.d.ts +1 -11
  188. package/dist/features/claude-code-mcp-loader/loader.d.ts +1 -4
  189. package/dist/features/claude-code-mcp-loader/scope-filter.d.ts +1 -2
  190. package/dist/features/claude-code-mcp-loader/transformer.d.ts +1 -2
  191. package/dist/features/claude-code-mcp-loader/types.d.ts +1 -43
  192. package/dist/features/claude-code-plugin-loader/agent-loader.d.ts +1 -3
  193. package/dist/features/claude-code-plugin-loader/command-loader.d.ts +1 -3
  194. package/dist/features/claude-code-plugin-loader/discovery-core.d.ts +1 -2
  195. package/dist/features/claude-code-plugin-loader/discovery-paths.d.ts +1 -3
  196. package/dist/features/claude-code-plugin-loader/discovery.d.ts +1 -3
  197. package/dist/features/claude-code-plugin-loader/hook-loader.d.ts +1 -2
  198. package/dist/features/claude-code-plugin-loader/index.d.ts +1 -10
  199. package/dist/features/claude-code-plugin-loader/install-path-resolver.d.ts +1 -1
  200. package/dist/features/claude-code-plugin-loader/installed-plugin-database.d.ts +1 -3
  201. package/dist/features/claude-code-plugin-loader/loaded-plugin.d.ts +1 -2
  202. package/dist/features/claude-code-plugin-loader/loader.d.ts +1 -36
  203. package/dist/features/claude-code-plugin-loader/mcp-server-loader.d.ts +1 -3
  204. package/dist/features/claude-code-plugin-loader/plugin-key.d.ts +1 -1
  205. package/dist/features/claude-code-plugin-loader/plugin-manifest.d.ts +1 -4
  206. package/dist/features/claude-code-plugin-loader/plugin-path-resolver.d.ts +1 -2
  207. package/dist/features/claude-code-plugin-loader/plugin-settings.d.ts +1 -3
  208. package/dist/features/claude-code-plugin-loader/scope-filter.d.ts +1 -2
  209. package/dist/features/claude-code-plugin-loader/skill-loader.d.ts +1 -3
  210. package/dist/features/claude-code-plugin-loader/types.d.ts +1 -237
  211. package/dist/features/claude-code-session-state/state.d.ts +1 -0
  212. package/dist/features/claude-tasks/types.d.ts +4 -4
  213. package/dist/features/hook-message-injector/sdk-message-lookup.d.ts +9 -2
  214. package/dist/features/mcp-oauth/callback-server.d.ts +1 -19
  215. package/dist/features/mcp-oauth/dcr.d.ts +1 -34
  216. package/dist/features/mcp-oauth/discovery.d.ts +1 -8
  217. package/dist/features/mcp-oauth/oauth-authorization-flow.d.ts +1 -26
  218. package/dist/features/mcp-oauth/provider.d.ts +1 -30
  219. package/dist/features/mcp-oauth/refresh-mutex.d.ts +1 -26
  220. package/dist/features/mcp-oauth/resource-indicator.d.ts +1 -0
  221. package/dist/features/mcp-oauth/schema.d.ts +1 -0
  222. package/dist/features/mcp-oauth/step-up.d.ts +1 -8
  223. package/dist/features/mcp-oauth/storage.d.ts +1 -17
  224. package/dist/features/monitor/batcher.d.ts +36 -0
  225. package/dist/features/monitor/envelope.d.ts +9 -0
  226. package/dist/features/monitor/filter.d.ts +10 -0
  227. package/dist/features/monitor/index.d.ts +2 -0
  228. package/dist/features/monitor/line-stream.d.ts +29 -0
  229. package/dist/features/monitor/manager-internals.d.ts +65 -0
  230. package/dist/features/monitor/manager.d.ts +35 -0
  231. package/dist/features/monitor/monitor-state-factory.d.ts +24 -0
  232. package/dist/features/monitor/output-injector-session-inspect.d.ts +9 -0
  233. package/dist/features/monitor/output-injector-types.d.ts +48 -0
  234. package/dist/features/monitor/output-injector.d.ts +21 -0
  235. package/dist/features/monitor/permission.d.ts +33 -0
  236. package/dist/features/monitor/pipeline.d.ts +26 -0
  237. package/dist/features/monitor/process.d.ts +21 -0
  238. package/dist/features/monitor/ring-buffer.d.ts +25 -0
  239. package/dist/features/monitor/types.d.ts +83 -0
  240. package/dist/features/opencode-runtime-skills/index.d.ts +1 -2
  241. package/dist/features/opencode-runtime-skills/runtime-skill-config.d.ts +1 -17
  242. package/dist/features/opencode-runtime-skills/skill-markdown.d.ts +1 -7
  243. package/dist/features/opencode-runtime-skills/source-server.d.ts +1 -24
  244. package/dist/features/opencode-skill-loader/allowed-tools-parser.d.ts +1 -1
  245. package/dist/features/opencode-skill-loader/config-source-discovery.d.ts +1 -7
  246. package/dist/features/opencode-skill-loader/git-master-template-injection.d.ts +1 -20
  247. package/dist/features/opencode-skill-loader/index.d.ts +1 -16
  248. package/dist/features/opencode-skill-loader/loaded-skill-from-path.d.ts +1 -9
  249. package/dist/features/opencode-skill-loader/loaded-skill-template-extractor.d.ts +1 -2
  250. package/dist/features/opencode-skill-loader/loader.d.ts +1 -21
  251. package/dist/features/opencode-skill-loader/merger/builtin-skill-converter.d.ts +1 -3
  252. package/dist/features/opencode-skill-loader/merger/config-skill-entry-loader.d.ts +1 -3
  253. package/dist/features/opencode-skill-loader/merger/scope-priority.d.ts +1 -2
  254. package/dist/features/opencode-skill-loader/merger/skill-definition-merger.d.ts +1 -3
  255. package/dist/features/opencode-skill-loader/merger/skills-config-normalizer.d.ts +1 -11
  256. package/dist/features/opencode-skill-loader/merger.d.ts +1 -7
  257. package/dist/features/opencode-skill-loader/opencode-config-skills-reader.d.ts +1 -5
  258. package/dist/features/opencode-skill-loader/skill-content.d.ts +1 -5
  259. package/dist/features/opencode-skill-loader/skill-deduplication.d.ts +1 -2
  260. package/dist/features/opencode-skill-loader/skill-definition-record.d.ts +1 -5
  261. package/dist/features/opencode-skill-loader/skill-directory-loader.d.ts +1 -8
  262. package/dist/features/opencode-skill-loader/skill-discovery.d.ts +1 -4
  263. package/dist/features/opencode-skill-loader/skill-mcp-config.d.ts +1 -3
  264. package/dist/features/opencode-skill-loader/skill-resolution-options.d.ts +1 -9
  265. package/dist/features/opencode-skill-loader/skill-template-resolver.d.ts +1 -11
  266. package/dist/features/opencode-skill-loader/types.d.ts +1 -34
  267. package/dist/features/skill-mcp-manager/cleanup.d.ts +1 -8
  268. package/dist/features/skill-mcp-manager/connection-type.d.ts +1 -7
  269. package/dist/features/skill-mcp-manager/connection.d.ts +1 -14
  270. package/dist/features/skill-mcp-manager/env-cleaner.d.ts +1 -2
  271. package/dist/features/skill-mcp-manager/error-redaction.d.ts +1 -10
  272. package/dist/features/skill-mcp-manager/http-client.d.ts +1 -19
  273. package/dist/features/skill-mcp-manager/index.d.ts +1 -2
  274. package/dist/features/skill-mcp-manager/manager.d.ts +1 -23
  275. package/dist/features/skill-mcp-manager/oauth-handler.d.ts +1 -17
  276. package/dist/features/skill-mcp-manager/stdio-client.d.ts +1 -16
  277. package/dist/features/skill-mcp-manager/types.d.ts +1 -79
  278. package/dist/features/team-mode/member-parser.d.ts +1 -16
  279. package/dist/features/team-mode/team-layout-tmux/close-team-member-pane.d.ts +1 -4
  280. package/dist/features/team-mode/team-layout-tmux/index.d.ts +1 -1
  281. package/dist/features/team-mode/team-layout-tmux/layout.d.ts +1 -37
  282. package/dist/features/team-mode/team-layout-tmux/rebalance-team-window.d.ts +1 -9
  283. package/dist/features/team-mode/team-layout-tmux/resolve-caller-tmux-session.d.ts +1 -9
  284. package/dist/features/team-mode/team-layout-tmux/sweep-stale-team-sessions.d.ts +1 -8
  285. package/dist/features/team-mode/team-mailbox/ack.d.ts +1 -2
  286. package/dist/features/team-mode/team-mailbox/inbox.d.ts +1 -3
  287. package/dist/features/team-mode/team-mailbox/index.d.ts +1 -7
  288. package/dist/features/team-mode/team-mailbox/pending-delivery-recovery.d.ts +1 -0
  289. package/dist/features/team-mode/team-mailbox/poll.d.ts +1 -10
  290. package/dist/features/team-mode/team-mailbox/reservation.d.ts +1 -11
  291. package/dist/features/team-mode/team-mailbox/send.d.ts +1 -30
  292. package/dist/features/team-mode/team-registry/index.d.ts +1 -3
  293. package/dist/features/team-mode/team-registry/loader.d.ts +1 -12
  294. package/dist/features/team-mode/team-registry/paths.d.ts +1 -28
  295. package/dist/features/team-mode/team-registry/team-spec-input-normalizer.d.ts +1 -6
  296. package/dist/features/team-mode/team-registry/validator.d.ts +1 -10
  297. package/dist/features/team-mode/team-runtime/delete-team.d.ts +2 -1
  298. package/dist/features/team-mode/team-runtime/shutdown-helpers.d.ts +1 -1
  299. package/dist/features/team-mode/team-state-store/active-resume.d.ts +1 -5
  300. package/dist/features/team-mode/team-state-store/creating-resume.d.ts +1 -4
  301. package/dist/features/team-mode/team-state-store/deleting-resume.d.ts +1 -4
  302. package/dist/features/team-mode/team-state-store/error-normalization.d.ts +1 -2
  303. package/dist/features/team-mode/team-state-store/index.d.ts +1 -1
  304. package/dist/features/team-mode/team-state-store/locks.d.ts +1 -15
  305. package/dist/features/team-mode/team-state-store/reservation-reconciliation.d.ts +1 -4
  306. package/dist/features/team-mode/team-state-store/resume-report.d.ts +1 -7
  307. package/dist/features/team-mode/team-state-store/resume.d.ts +1 -5
  308. package/dist/features/team-mode/team-state-store/runtime-cleanup.d.ts +1 -4
  309. package/dist/features/team-mode/team-state-store/session-liveness.d.ts +1 -9
  310. package/dist/features/team-mode/team-state-store/store.d.ts +1 -21
  311. package/dist/features/team-mode/team-state-store/worker-resume-status.d.ts +1 -9
  312. package/dist/features/team-mode/team-tasklist/claim.d.ts +1 -10
  313. package/dist/features/team-mode/team-tasklist/dependencies.d.ts +1 -2
  314. package/dist/features/team-mode/team-tasklist/get.d.ts +1 -3
  315. package/dist/features/team-mode/team-tasklist/index.d.ts +1 -6
  316. package/dist/features/team-mode/team-tasklist/list.d.ts +1 -8
  317. package/dist/features/team-mode/team-tasklist/store.d.ts +1 -3
  318. package/dist/features/team-mode/team-tasklist/test-support.d.ts +1 -9
  319. package/dist/features/team-mode/team-tasklist/update.d.ts +1 -9
  320. package/dist/features/team-mode/team-worktree/cleanup.d.ts +1 -3
  321. package/dist/features/team-mode/team-worktree/index.d.ts +1 -2
  322. package/dist/features/team-mode/team-worktree/manager.d.ts +1 -15
  323. package/dist/features/team-mode/tools/lifecycle-create-tool.d.ts +2 -2
  324. package/dist/features/team-mode/tools/lifecycle-inline-spec.d.ts +4 -4
  325. package/dist/features/team-mode/tools/lifecycle-participant.d.ts +2 -2
  326. package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +8 -8
  327. package/dist/features/team-mode/tools/messaging-live-delivery-recipient.d.ts +2 -2
  328. package/dist/features/team-mode/tools/messaging-live-delivery-reservation.d.ts +1 -1
  329. package/dist/features/team-mode/tools/messaging-live-delivery-state.d.ts +1 -1
  330. package/dist/features/team-mode/tools/messaging-live-delivery.d.ts +1 -1
  331. package/dist/features/team-mode/tools/messaging-runtime.d.ts +2 -2
  332. package/dist/features/team-mode/tools/query.d.ts +3 -3
  333. package/dist/features/team-mode/tools/tasks.d.ts +2 -2
  334. package/dist/features/team-mode/types.d.ts +1 -343
  335. package/dist/features/tmux-subagent/stale-tmux-resource-sweeper.d.ts +12 -0
  336. package/dist/features/tool-metadata-store/store.d.ts +5 -0
  337. package/dist/features/tui-sidebar/compute-view.d.ts +10 -0
  338. package/dist/features/tui-sidebar/config-validator.d.ts +2 -0
  339. package/dist/features/tui-sidebar/constants.d.ts +10 -0
  340. package/dist/features/tui-sidebar/derivers.d.ts +10 -0
  341. package/dist/features/tui-sidebar/element-helpers.d.ts +9 -0
  342. package/dist/features/tui-sidebar/loop-reader.d.ts +2 -0
  343. package/dist/features/tui-sidebar/mirror-io.d.ts +3 -0
  344. package/dist/features/tui-sidebar/mirror-manager.d.ts +28 -0
  345. package/dist/features/tui-sidebar/mirror-path.d.ts +3 -0
  346. package/dist/features/tui-sidebar/render-view.d.ts +15 -0
  347. package/dist/features/tui-sidebar/roster-resolver.d.ts +2 -0
  348. package/dist/features/tui-sidebar/snapshot-builder.d.ts +28 -0
  349. package/dist/features/tui-sidebar/snapshot-schema.d.ts +41 -0
  350. package/dist/features/tui-sidebar/state-types.d.ts +72 -0
  351. package/dist/hooks/anthropic-context-window-limit-recovery/storage/constants.d.ts +3 -0
  352. package/dist/hooks/anthropic-context-window-limit-recovery/storage/messages-reader.d.ts +6 -0
  353. package/dist/hooks/anthropic-context-window-limit-recovery/storage/part-content.d.ts +3 -0
  354. package/dist/hooks/anthropic-context-window-limit-recovery/storage/parts-reader.d.ts +6 -0
  355. package/dist/hooks/anthropic-context-window-limit-recovery/storage/types.d.ts +92 -0
  356. package/dist/hooks/ast-grep-sg-provision/hook.d.ts +19 -0
  357. package/dist/hooks/ast-grep-sg-provision/index.d.ts +1 -0
  358. package/dist/hooks/auto-slash-command/constants.d.ts +1 -5
  359. package/dist/hooks/auto-slash-command/detector.d.ts +1 -15
  360. package/dist/hooks/auto-slash-command/processed-command-store.d.ts +1 -7
  361. package/dist/hooks/auto-slash-command/types.d.ts +1 -48
  362. package/dist/hooks/auto-update-checker/checker/bundled-version.d.ts +1 -0
  363. package/dist/hooks/auto-update-checker/checker.d.ts +1 -0
  364. package/dist/hooks/auto-update-checker/constants.d.ts +3 -3
  365. package/dist/hooks/auto-update-checker/hook.d.ts +2 -1
  366. package/dist/hooks/claude-code-hooks/types.d.ts +4 -0
  367. package/dist/hooks/codegraph-bootstrap/command-runner.d.ts +16 -0
  368. package/dist/hooks/codegraph-bootstrap/hook.d.ts +34 -0
  369. package/dist/hooks/codegraph-bootstrap/index.d.ts +1 -0
  370. package/dist/hooks/codegraph-bootstrap/project-root.d.ts +1 -0
  371. package/dist/hooks/codegraph-bootstrap/status.d.ts +11 -0
  372. package/dist/hooks/delegate-task-retry/guidance.d.ts +1 -2
  373. package/dist/hooks/delegate-task-retry/patterns.d.ts +2 -11
  374. package/dist/hooks/index.d.ts +3 -1
  375. package/dist/hooks/monitor-status-injector/hook.d.ts +30 -0
  376. package/dist/hooks/monitor-status-injector/index.d.ts +2 -0
  377. package/dist/hooks/runtime-fallback/auto-retry-signal.d.ts +1 -4
  378. package/dist/hooks/runtime-fallback/error-classifier.d.ts +7 -6
  379. package/dist/hooks/runtime-fallback/fallback-state.d.ts +3 -2
  380. package/dist/hooks/runtime-fallback/test-timeout-clock.test-support.d.ts +6 -0
  381. package/dist/hooks/team-session-events/team-idle-wake-hint.d.ts +5 -0
  382. package/dist/hooks/tool-pair-validator/tool-part-ids.d.ts +2 -1
  383. package/dist/index.js +89683 -94718
  384. package/dist/interactive-bash-availability.d.ts +1 -0
  385. package/dist/mcp/codegraph.d.ts +16 -0
  386. package/dist/mcp/index.d.ts +10 -2
  387. package/dist/mcp/shared/ancestor-cli-resolver.d.ts +25 -0
  388. package/dist/mcp/types.d.ts +1 -1
  389. package/dist/oh-my-opencode.schema.json +259 -34
  390. package/dist/openclaw/config.d.ts +1 -8
  391. package/dist/openclaw/daemon.d.ts +1 -1
  392. package/dist/openclaw/dispatcher.d.ts +1 -12
  393. package/dist/openclaw/gateway-url-validation.d.ts +1 -1
  394. package/dist/openclaw/index.d.ts +1 -5
  395. package/dist/openclaw/reply-listener-discord.d.ts +1 -4
  396. package/dist/openclaw/reply-listener-injection.d.ts +1 -10
  397. package/dist/openclaw/reply-listener-log.d.ts +1 -2
  398. package/dist/openclaw/reply-listener-paths.d.ts +1 -7
  399. package/dist/openclaw/reply-listener-poll-loop.d.ts +1 -3
  400. package/dist/openclaw/reply-listener-process.d.ts +1 -4
  401. package/dist/openclaw/reply-listener-signature.d.ts +1 -2
  402. package/dist/openclaw/reply-listener-sleep.d.ts +1 -1
  403. package/dist/openclaw/reply-listener-spawn.d.ts +1 -5
  404. package/dist/openclaw/reply-listener-start.d.ts +1 -9
  405. package/dist/openclaw/reply-listener-startup.d.ts +1 -12
  406. package/dist/openclaw/reply-listener-state.d.ts +1 -29
  407. package/dist/openclaw/reply-listener-status.d.ts +1 -4
  408. package/dist/openclaw/reply-listener-stop.d.ts +1 -7
  409. package/dist/openclaw/reply-listener-telegram.d.ts +1 -4
  410. package/dist/openclaw/reply-listener.d.ts +1 -5
  411. package/dist/openclaw/runtime-dispatch.d.ts +1 -17
  412. package/dist/openclaw/session-registry-lock.d.ts +1 -2
  413. package/dist/openclaw/session-registry-paths.d.ts +1 -9
  414. package/dist/openclaw/session-registry-storage.d.ts +1 -4
  415. package/dist/openclaw/session-registry-types.d.ts +1 -11
  416. package/dist/openclaw/session-registry.d.ts +1 -8
  417. package/dist/openclaw/tmux.d.ts +1 -8
  418. package/dist/openclaw/types.d.ts +1 -42
  419. package/dist/plugin/build-team-idle-wake-hint-client.d.ts +2 -0
  420. package/dist/plugin/event-error-utils.d.ts +2 -1
  421. package/dist/plugin/event-session-lifecycle.d.ts +0 -3
  422. package/dist/plugin/hooks/create-continuation-hooks.d.ts +0 -6
  423. package/dist/plugin/hooks/create-core-hooks.d.ts +5 -1
  424. package/dist/plugin/hooks/create-session-hooks.d.ts +3 -2
  425. package/dist/plugin/hooks/create-transform-hooks.d.ts +4 -1
  426. package/dist/plugin/messages-transform.d.ts +1 -0
  427. package/dist/plugin/skill-context.d.ts +2 -0
  428. package/dist/plugin/tool-registry-factories.d.ts +2 -1
  429. package/dist/plugin/tool-registry-gated-tools.d.ts +7 -0
  430. package/dist/plugin/tool-registry.d.ts +1 -1
  431. package/dist/plugin/types.d.ts +2 -9
  432. package/dist/plugin-handlers/prometheus-agent-config-builder.d.ts +1 -0
  433. package/dist/shared/archive-entry-validator.d.ts +1 -6
  434. package/dist/shared/bun-file-shim.d.ts +1 -8
  435. package/dist/shared/bun-spawn-shim.d.ts +1 -43
  436. package/dist/shared/bun-which-shim.d.ts +1 -1
  437. package/dist/shared/classify-path-environment.d.ts +1 -3
  438. package/dist/shared/command-executor/embedded-commands.d.ts +1 -7
  439. package/dist/shared/command-executor/execute-command.d.ts +1 -1
  440. package/dist/shared/command-executor/execute-hook-command.d.ts +1 -16
  441. package/dist/shared/command-executor/home-directory.d.ts +1 -1
  442. package/dist/shared/command-executor/resolve-commands-in-text.d.ts +1 -1
  443. package/dist/shared/command-executor/shell-path.d.ts +1 -2
  444. package/dist/shared/command-executor.d.ts +1 -4
  445. package/dist/shared/git-worktree/collect-git-diff-stats.d.ts +1 -2
  446. package/dist/shared/git-worktree/format-file-changes.d.ts +1 -2
  447. package/dist/shared/git-worktree/index.d.ts +1 -7
  448. package/dist/shared/git-worktree/parse-diff-numstat.d.ts +1 -2
  449. package/dist/shared/git-worktree/parse-status-porcelain-line.d.ts +1 -6
  450. package/dist/shared/git-worktree/parse-status-porcelain.d.ts +1 -2
  451. package/dist/shared/git-worktree/types.d.ts +1 -7
  452. package/dist/shared/internal-initiator-marker.d.ts +1 -46
  453. package/dist/shared/logger.d.ts +3 -11
  454. package/dist/shared/migration/agent-category.d.ts +1 -19
  455. package/dist/shared/migration/agent-names.d.ts +1 -6
  456. package/dist/shared/migration/config-migration.d.ts +1 -1
  457. package/dist/shared/migration/hook-names.d.ts +1 -6
  458. package/dist/shared/migration/migrations-sidecar.d.ts +1 -41
  459. package/dist/shared/migration/model-versions.d.ts +1 -22
  460. package/dist/shared/migration.d.ts +1 -5
  461. package/dist/shared/model-suggestion-retry.d.ts +39 -17
  462. package/dist/shared/plugin-identity.d.ts +8 -8
  463. package/dist/shared/posthog.d.ts +3 -0
  464. package/dist/shared/process-stream-reader.d.ts +1 -3
  465. package/dist/shared/prompt-async-gate/message-inspection-error.d.ts +1 -1
  466. package/dist/shared/prompt-async-gate/pending-tool-turn.d.ts +1 -11
  467. package/dist/shared/prompt-async-gate/prompt-message-state.d.ts +1 -9
  468. package/dist/shared/prompt-async-gate/queue.d.ts +1 -8
  469. package/dist/shared/prompt-async-gate/recent-dispatches.d.ts +1 -14
  470. package/dist/shared/prompt-async-gate/reservations.d.ts +1 -9
  471. package/dist/shared/prompt-async-gate/semantic-dedupe.d.ts +1 -7
  472. package/dist/shared/prompt-async-gate/session-idle-dispatch.d.ts +1 -16
  473. package/dist/shared/prompt-async-gate/timing.d.ts +1 -9
  474. package/dist/shared/prompt-async-gate/types.d.ts +1 -123
  475. package/dist/shared/prompt-async-gate.d.ts +3 -7
  476. package/dist/shared/prompt-failure-classifier.d.ts +1 -9
  477. package/dist/shared/session-idle-settle.d.ts +1 -12
  478. package/dist/shared/shell-env.d.ts +1 -1
  479. package/dist/shared/skill-path-resolver.d.ts +1 -1
  480. package/dist/shared/tmux/cmux-detect.d.ts +1 -8
  481. package/dist/shared/tmux/constants.d.ts +1 -5
  482. package/dist/shared/tmux/runner.d.ts +2 -13
  483. package/dist/shared/tmux/tmux-utils/adapter-deps.d.ts +9 -0
  484. package/dist/shared/tmux/tmux-utils/environment.d.ts +2 -4
  485. package/dist/shared/tmux/tmux-utils/layout.d.ts +4 -17
  486. package/dist/shared/tmux/tmux-utils/pane-close.d.ts +3 -10
  487. package/dist/shared/tmux/tmux-utils/pane-command.d.ts +1 -2
  488. package/dist/shared/tmux/tmux-utils/pane-dimensions.d.ts +2 -4
  489. package/dist/shared/tmux/tmux-utils/pane-replace.d.ts +1 -11
  490. package/dist/shared/tmux/tmux-utils/pane-spawn.d.ts +1 -13
  491. package/dist/shared/tmux/tmux-utils/server-health.d.ts +2 -14
  492. package/dist/shared/tmux/tmux-utils/session-spawn.d.ts +3 -14
  493. package/dist/shared/tmux/tmux-utils/spawn-process.d.ts +1 -1
  494. package/dist/shared/tmux/tmux-utils/stale-attach-pane-sweep.d.ts +16 -0
  495. package/dist/shared/tmux/tmux-utils/stale-session-sweep.d.ts +4 -17
  496. package/dist/shared/tmux/tmux-utils/window-spawn.d.ts +1 -13
  497. package/dist/shared/tmux/tmux-utils.d.ts +1 -0
  498. package/dist/shared/tmux/types.d.ts +1 -4
  499. package/dist/shared/write-file-atomically.d.ts +2 -0
  500. package/dist/shared/zip-entry-listing/powershell-zip-entry-listing.d.ts +1 -4
  501. package/dist/shared/zip-entry-listing/python-zip-entry-listing.d.ts +1 -3
  502. package/dist/shared/zip-entry-listing/read-zip-symlink-target.d.ts +1 -1
  503. package/dist/shared/zip-entry-listing/tar-zip-entry-listing.d.ts +1 -3
  504. package/dist/shared/zip-entry-listing/zipinfo-zip-entry-listing.d.ts +1 -4
  505. package/dist/shared/zip-entry-listing.d.ts +1 -4
  506. package/dist/skills/ast-grep/LICENSE +21 -0
  507. package/dist/skills/ast-grep/README.md +136 -0
  508. package/dist/skills/ast-grep/SKILL.md +272 -0
  509. package/dist/skills/ast-grep/SOURCE +1 -0
  510. package/dist/skills/ast-grep/install.ps1 +235 -0
  511. package/dist/skills/ast-grep/install.sh +286 -0
  512. package/dist/skills/ast-grep/references/cli.md +231 -0
  513. package/dist/skills/ast-grep/references/install.md +166 -0
  514. package/dist/skills/ast-grep/references/patterns.md +147 -0
  515. package/dist/skills/ast-grep/references/pitfalls.md +303 -0
  516. package/dist/skills/ast-grep/references/recipes.md +402 -0
  517. package/dist/skills/ast-grep/references/sgconfig.md +248 -0
  518. package/dist/skills/ast-grep/references/yaml-rules.md +509 -0
  519. package/dist/skills/ast-grep/scripts/ast_grep_helper.py +748 -0
  520. package/dist/skills/ast-grep/tests/smoke.ps1 +123 -0
  521. package/dist/skills/ast-grep/tests/smoke.sh +212 -0
  522. package/dist/skills/debugging/SKILL.md +116 -0
  523. package/dist/skills/debugging/references/methodology/00-setup.md +108 -0
  524. package/dist/skills/debugging/references/methodology/02-investigate.md +130 -0
  525. package/dist/skills/debugging/references/methodology/04-oracle-triple.md +136 -0
  526. package/dist/skills/debugging/references/methodology/05-escalate.md +69 -0
  527. package/dist/skills/debugging/references/methodology/06-fix.md +116 -0
  528. package/dist/skills/debugging/references/methodology/08-qa.md +94 -0
  529. package/dist/skills/debugging/references/methodology/09-cleanup.md +164 -0
  530. package/dist/skills/debugging/references/methodology/partial-runtime-evidence.md +229 -0
  531. package/dist/skills/debugging/references/runtimes/bundled-js-binary.md +415 -0
  532. package/dist/skills/debugging/references/runtimes/go.md +252 -0
  533. package/dist/skills/debugging/references/runtimes/native-binary.md +484 -0
  534. package/dist/skills/debugging/references/runtimes/node.md +260 -0
  535. package/dist/skills/debugging/references/runtimes/python.md +248 -0
  536. package/dist/skills/debugging/references/runtimes/rust.md +234 -0
  537. package/dist/skills/debugging/references/tools/ghidra.md +212 -0
  538. package/dist/skills/debugging/references/tools/playwright-cli.md +194 -0
  539. package/dist/skills/debugging/references/tools/pwndbg.md +263 -0
  540. package/dist/skills/debugging/references/tools/pwntools.md +265 -0
  541. package/dist/skills/frontend/ATTRIBUTION.md +127 -0
  542. package/dist/skills/frontend/LICENSE-Apache-2.0.txt +201 -0
  543. package/dist/skills/frontend/SKILL.md +113 -0
  544. package/dist/skills/frontend/references/design/README.md +240 -0
  545. package/dist/skills/frontend/references/design/_INDEX.md +189 -0
  546. package/dist/skills/frontend/references/design/airbnb.md +390 -0
  547. package/dist/skills/frontend/references/design/airtable.md +89 -0
  548. package/dist/skills/frontend/references/design/apple.md +247 -0
  549. package/dist/skills/frontend/references/design/binance.md +345 -0
  550. package/dist/skills/frontend/references/design/bmw.md +180 -0
  551. package/dist/skills/frontend/references/design/brutalist-skill.md +92 -0
  552. package/dist/skills/frontend/references/design/bugatti.md +268 -0
  553. package/dist/skills/frontend/references/design/cal.md +259 -0
  554. package/dist/skills/frontend/references/design/claude.md +312 -0
  555. package/dist/skills/frontend/references/design/clay.md +304 -0
  556. package/dist/skills/frontend/references/design/clickhouse.md +281 -0
  557. package/dist/skills/frontend/references/design/cohere.md +266 -0
  558. package/dist/skills/frontend/references/design/coinbase.md +129 -0
  559. package/dist/skills/frontend/references/design/composio.md +307 -0
  560. package/dist/skills/frontend/references/design/cursor.md +309 -0
  561. package/dist/skills/frontend/references/design/design-system-architecture.md +217 -0
  562. package/dist/skills/frontend/references/design/elevenlabs.md +265 -0
  563. package/dist/skills/frontend/references/design/expo.md +281 -0
  564. package/dist/skills/frontend/references/design/ferrari.md +314 -0
  565. package/dist/skills/frontend/references/design/figma.md +220 -0
  566. package/dist/skills/frontend/references/design/framer.md +246 -0
  567. package/dist/skills/frontend/references/design/gpt-tasteskill.md +74 -0
  568. package/dist/skills/frontend/references/design/hashicorp.md +278 -0
  569. package/dist/skills/frontend/references/design/ibm.md +332 -0
  570. package/dist/skills/frontend/references/design/image-to-code-skill.md +1228 -0
  571. package/dist/skills/frontend/references/design/imagegen-brandkit.md +798 -0
  572. package/dist/skills/frontend/references/design/imagegen-frontend-mobile.md +1465 -0
  573. package/dist/skills/frontend/references/design/imagegen-frontend-web.md +686 -0
  574. package/dist/skills/frontend/references/design/intercom.md +146 -0
  575. package/dist/skills/frontend/references/design/kraken.md +125 -0
  576. package/dist/skills/frontend/references/design/lamborghini.md +288 -0
  577. package/dist/skills/frontend/references/design/linear.app.md +367 -0
  578. package/dist/skills/frontend/references/design/lovable.md +298 -0
  579. package/dist/skills/frontend/references/design/mastercard.md +365 -0
  580. package/dist/skills/frontend/references/design/meta.md +366 -0
  581. package/dist/skills/frontend/references/design/minimalist-skill.md +85 -0
  582. package/dist/skills/frontend/references/design/minimax.md +257 -0
  583. package/dist/skills/frontend/references/design/mintlify.md +326 -0
  584. package/dist/skills/frontend/references/design/miro.md +108 -0
  585. package/dist/skills/frontend/references/design/mistral.ai.md +261 -0
  586. package/dist/skills/frontend/references/design/mongodb.md +266 -0
  587. package/dist/skills/frontend/references/design/nike.md +363 -0
  588. package/dist/skills/frontend/references/design/notion.md +309 -0
  589. package/dist/skills/frontend/references/design/nvidia.md +293 -0
  590. package/dist/skills/frontend/references/design/ollama.md +267 -0
  591. package/dist/skills/frontend/references/design/opencode.ai.md +281 -0
  592. package/dist/skills/frontend/references/design/output-skill.md +49 -0
  593. package/dist/skills/frontend/references/design/pinterest.md +230 -0
  594. package/dist/skills/frontend/references/design/playstation.md +364 -0
  595. package/dist/skills/frontend/references/design/posthog.md +256 -0
  596. package/dist/skills/frontend/references/design/raycast.md +268 -0
  597. package/dist/skills/frontend/references/design/react-dev-tooling-skill.md +230 -0
  598. package/dist/skills/frontend/references/design/redesign-skill.md +178 -0
  599. package/dist/skills/frontend/references/design/renault.md +311 -0
  600. package/dist/skills/frontend/references/design/replicate.md +261 -0
  601. package/dist/skills/frontend/references/design/resend.md +303 -0
  602. package/dist/skills/frontend/references/design/revolut.md +185 -0
  603. package/dist/skills/frontend/references/design/runwayml.md +244 -0
  604. package/dist/skills/frontend/references/design/sanity.md +357 -0
  605. package/dist/skills/frontend/references/design/sentry.md +262 -0
  606. package/dist/skills/frontend/references/design/shopify.md +350 -0
  607. package/dist/skills/frontend/references/design/soft-skill.md +98 -0
  608. package/dist/skills/frontend/references/design/spacex.md +194 -0
  609. package/dist/skills/frontend/references/design/spotify.md +246 -0
  610. package/dist/skills/frontend/references/design/starbucks.md +580 -0
  611. package/dist/skills/frontend/references/design/stitch-skill.md +184 -0
  612. package/dist/skills/frontend/references/design/stripe.md +322 -0
  613. package/dist/skills/frontend/references/design/supabase.md +255 -0
  614. package/dist/skills/frontend/references/design/superhuman.md +252 -0
  615. package/dist/skills/frontend/references/design/taste-skill.md +226 -0
  616. package/dist/skills/frontend/references/design/tesla.md +286 -0
  617. package/dist/skills/frontend/references/design/theverge.md +339 -0
  618. package/dist/skills/frontend/references/design/together.ai.md +263 -0
  619. package/dist/skills/frontend/references/design/uber.md +295 -0
  620. package/dist/skills/frontend/references/design/vercel.md +310 -0
  621. package/dist/skills/frontend/references/design/vodafone.md +423 -0
  622. package/dist/skills/frontend/references/design/voltagent.md +323 -0
  623. package/dist/skills/frontend/references/design/warp.md +253 -0
  624. package/dist/skills/frontend/references/design/webflow.md +92 -0
  625. package/dist/skills/frontend/references/design/wired.md +278 -0
  626. package/dist/skills/frontend/references/design/wise.md +173 -0
  627. package/dist/skills/frontend/references/design/x.ai.md +257 -0
  628. package/dist/skills/frontend/references/design/zapier.md +328 -0
  629. package/dist/skills/frontend/references/perfection/README.md +160 -0
  630. package/dist/skills/frontend/references/perfection/react-perf-tooling.md +127 -0
  631. package/dist/skills/frontend/references/ui-ux-db/README.md +273 -0
  632. package/dist/skills/frontend/references/ui-ux-db/data/charts.csv +26 -0
  633. package/dist/skills/frontend/references/ui-ux-db/data/colors.csv +97 -0
  634. package/dist/skills/frontend/references/ui-ux-db/data/icons.csv +101 -0
  635. package/dist/skills/frontend/references/ui-ux-db/data/landing.csv +31 -0
  636. package/dist/skills/frontend/references/ui-ux-db/data/products.csv +97 -0
  637. package/dist/skills/frontend/references/ui-ux-db/data/react-performance.csv +45 -0
  638. package/dist/skills/frontend/references/ui-ux-db/data/stacks/astro.csv +54 -0
  639. package/dist/skills/frontend/references/ui-ux-db/data/stacks/flutter.csv +53 -0
  640. package/dist/skills/frontend/references/ui-ux-db/data/stacks/html-tailwind.csv +56 -0
  641. package/dist/skills/frontend/references/ui-ux-db/data/stacks/jetpack-compose.csv +53 -0
  642. package/dist/skills/frontend/references/ui-ux-db/data/stacks/nextjs.csv +53 -0
  643. package/dist/skills/frontend/references/ui-ux-db/data/stacks/nuxt-ui.csv +51 -0
  644. package/dist/skills/frontend/references/ui-ux-db/data/stacks/nuxtjs.csv +59 -0
  645. package/dist/skills/frontend/references/ui-ux-db/data/stacks/react-native.csv +52 -0
  646. package/dist/skills/frontend/references/ui-ux-db/data/stacks/react.csv +54 -0
  647. package/dist/skills/frontend/references/ui-ux-db/data/stacks/shadcn.csv +61 -0
  648. package/dist/skills/frontend/references/ui-ux-db/data/stacks/svelte.csv +54 -0
  649. package/dist/skills/frontend/references/ui-ux-db/data/stacks/swiftui.csv +51 -0
  650. package/dist/skills/frontend/references/ui-ux-db/data/stacks/vue.csv +50 -0
  651. package/dist/skills/frontend/references/ui-ux-db/data/styles.csv +68 -0
  652. package/dist/skills/frontend/references/ui-ux-db/data/typography.csv +58 -0
  653. package/dist/skills/frontend/references/ui-ux-db/data/ui-reasoning.csv +101 -0
  654. package/dist/skills/frontend/references/ui-ux-db/data/ux-guidelines.csv +100 -0
  655. package/dist/skills/frontend/references/ui-ux-db/data/web-interface.csv +31 -0
  656. package/dist/skills/frontend/references/ui-ux-db/scripts/core.py +253 -0
  657. package/dist/skills/frontend/references/ui-ux-db/scripts/design_system.py +1067 -0
  658. package/dist/skills/frontend/references/ui-ux-db/scripts/search.py +114 -0
  659. package/dist/skills/frontend/scripts/perfection/lighthouse-audit.py +201 -0
  660. package/dist/skills/git-master/SKILL.md +100 -0
  661. package/dist/skills/git-master/agents/openai.yaml +13 -0
  662. package/dist/skills/init-deep/SKILL.md +309 -0
  663. package/dist/skills/lcx-contribute-bug-fix/SKILL.md +242 -0
  664. package/dist/skills/lcx-contribute-bug-fix/agents/openai.yaml +12 -0
  665. package/dist/skills/lcx-contribute-bug-fix/scripts/create-pr-body.mjs +107 -0
  666. package/dist/skills/lcx-doctor/SKILL.md +93 -0
  667. package/dist/skills/lcx-doctor/agents/openai.yaml +11 -0
  668. package/dist/skills/lcx-report-bug/SKILL.md +237 -0
  669. package/dist/skills/lcx-report-bug/agents/openai.yaml +11 -0
  670. package/dist/skills/lsp-setup/SKILL.md +139 -0
  671. package/dist/skills/lsp-setup/references/bash/README.md +60 -0
  672. package/dist/skills/lsp-setup/references/c-cpp/README.md +61 -0
  673. package/dist/skills/lsp-setup/references/csharp/README.md +71 -0
  674. package/dist/skills/lsp-setup/references/dart/README.md +48 -0
  675. package/dist/skills/lsp-setup/references/elixir/README.md +51 -0
  676. package/dist/skills/lsp-setup/references/go/README.md +57 -0
  677. package/dist/skills/lsp-setup/references/haskell/README.md +57 -0
  678. package/dist/skills/lsp-setup/references/java/README.md +57 -0
  679. package/dist/skills/lsp-setup/references/julia/README.md +60 -0
  680. package/dist/skills/lsp-setup/references/kotlin/README.md +59 -0
  681. package/dist/skills/lsp-setup/references/lua/README.md +66 -0
  682. package/dist/skills/lsp-setup/references/php/README.md +62 -0
  683. package/dist/skills/lsp-setup/references/python/README.md +71 -0
  684. package/dist/skills/lsp-setup/references/ruby/README.md +53 -0
  685. package/dist/skills/lsp-setup/references/rust/README.md +59 -0
  686. package/dist/skills/lsp-setup/references/swift/README.md +51 -0
  687. package/dist/skills/lsp-setup/references/terraform/README.md +62 -0
  688. package/dist/skills/lsp-setup/references/typescript/README.md +77 -0
  689. package/dist/skills/lsp-setup/references/yaml/README.md +70 -0
  690. package/dist/skills/lsp-setup/references/zig/README.md +49 -0
  691. package/dist/skills/lsp-setup/scripts/detect-lsp.ts +210 -0
  692. package/dist/skills/lsp-setup/scripts/lsp-server-table.ts +177 -0
  693. package/dist/skills/lsp-setup/scripts/tsconfig.json +17 -0
  694. package/dist/skills/lsp-setup/scripts/verify-lsp.ts +147 -0
  695. package/dist/skills/programming/SKILL.md +463 -0
  696. package/dist/skills/programming/references/go/README.md +90 -0
  697. package/dist/skills/programming/references/go/backend-stack.md +641 -0
  698. package/dist/skills/programming/references/go/bootstrap.md +328 -0
  699. package/dist/skills/programming/references/go/bubbletea-v2.md +360 -0
  700. package/dist/skills/programming/references/go/cobra-stack.md +468 -0
  701. package/dist/skills/programming/references/go/concurrency.md +362 -0
  702. package/dist/skills/programming/references/go/data-modeling.md +329 -0
  703. package/dist/skills/programming/references/go/error-handling.md +359 -0
  704. package/dist/skills/programming/references/go/golangci-strict.md +236 -0
  705. package/dist/skills/programming/references/go/grpc-connect.md +375 -0
  706. package/dist/skills/programming/references/go/libraries.md +337 -0
  707. package/dist/skills/programming/references/go/one-liners.md +202 -0
  708. package/dist/skills/programming/references/go/sqlc-pgx.md +471 -0
  709. package/dist/skills/programming/references/go/testing.md +467 -0
  710. package/dist/skills/programming/references/go/type-patterns.md +298 -0
  711. package/dist/skills/programming/references/python/README.md +314 -0
  712. package/dist/skills/programming/references/python/async-anyio.md +442 -0
  713. package/dist/skills/programming/references/python/data-modeling.md +233 -0
  714. package/dist/skills/programming/references/python/data-processing.md +133 -0
  715. package/dist/skills/programming/references/python/error-handling.md +218 -0
  716. package/dist/skills/programming/references/python/fastapi-stack.md +316 -0
  717. package/dist/skills/programming/references/python/httpx2-optimization.md +360 -0
  718. package/dist/skills/programming/references/python/libraries.md +307 -0
  719. package/dist/skills/programming/references/python/one-liners.md +268 -0
  720. package/dist/skills/programming/references/python/orjson-stack.md +378 -0
  721. package/dist/skills/programming/references/python/pydantic-ai.md +285 -0
  722. package/dist/skills/programming/references/python/pyproject-strict.md +232 -0
  723. package/dist/skills/programming/references/python/textual-tui.md +201 -0
  724. package/dist/skills/programming/references/python/type-patterns.md +176 -0
  725. package/dist/skills/programming/references/rust/README.md +317 -0
  726. package/dist/skills/programming/references/rust/async-tokio.md +299 -0
  727. package/dist/skills/programming/references/rust/axum-stack.md +467 -0
  728. package/dist/skills/programming/references/rust/cargo-strict.md +317 -0
  729. package/dist/skills/programming/references/rust/clap-stack.md +409 -0
  730. package/dist/skills/programming/references/rust/concurrency.md +375 -0
  731. package/dist/skills/programming/references/rust/libraries.md +439 -0
  732. package/dist/skills/programming/references/rust/one-liners.md +291 -0
  733. package/dist/skills/programming/references/rust/proptest-insta.md +429 -0
  734. package/dist/skills/programming/references/rust/type-state.md +354 -0
  735. package/dist/skills/programming/references/rust/unsafe-discipline.md +250 -0
  736. package/dist/skills/programming/references/rust/zero-cost-safety.md +527 -0
  737. package/dist/skills/programming/references/rust-ub/README.md +289 -0
  738. package/dist/skills/programming/references/rust-ub/miri-sanitizers-loom.md +411 -0
  739. package/dist/skills/programming/references/rust-ub/ub-taxonomy.md +269 -0
  740. package/dist/skills/programming/references/typescript/README.md +195 -0
  741. package/dist/skills/programming/references/typescript/backend-hono.md +672 -0
  742. package/dist/skills/programming/references/typescript/bootstrap.md +199 -0
  743. package/dist/skills/programming/references/typescript/data-modeling.md +202 -0
  744. package/dist/skills/programming/references/typescript/error-handling.md +169 -0
  745. package/dist/skills/programming/references/typescript/tsconfig-strict.md +152 -0
  746. package/dist/skills/programming/references/typescript/type-patterns.md +196 -0
  747. package/dist/skills/programming/scripts/go/check-no-excuse-rules.sh +173 -0
  748. package/dist/skills/programming/scripts/go/new-project.py +138 -0
  749. package/dist/skills/programming/scripts/go/templates/.editorconfig +13 -0
  750. package/dist/skills/programming/scripts/go/templates/.golangci.yml +95 -0
  751. package/dist/skills/programming/scripts/go/templates/AGENTS.md.tmpl +24 -0
  752. package/dist/skills/programming/scripts/go/templates/README.md.tmpl +12 -0
  753. package/dist/skills/programming/scripts/go/templates/Taskfile.yml +40 -0
  754. package/dist/skills/programming/scripts/go/templates/ci.yml +37 -0
  755. package/dist/skills/programming/scripts/go/templates/config.go +24 -0
  756. package/dist/skills/programming/scripts/go/templates/gitignore +15 -0
  757. package/dist/skills/programming/scripts/go/templates/main.go.tmpl +22 -0
  758. package/dist/skills/programming/scripts/go/templates/run.go +15 -0
  759. package/dist/skills/programming/scripts/python/check-no-excuse-rules.py +687 -0
  760. package/dist/skills/programming/scripts/python/new-project.py +172 -0
  761. package/dist/skills/programming/scripts/python/new-script.py +116 -0
  762. package/dist/skills/programming/scripts/rust/check-no-excuse-rules.py +296 -0
  763. package/dist/skills/programming/scripts/rust/check-no-excuse-rules.sh +158 -0
  764. package/dist/skills/programming/scripts/rust/new-project.py +175 -0
  765. package/dist/skills/programming/scripts/typescript/check-no-excuse-rules.ts +282 -0
  766. package/dist/skills/programming/scripts/typescript/new-project.ts +177 -0
  767. package/dist/skills/refactor/SKILL.md +754 -0
  768. package/dist/skills/remove-ai-slops/SKILL.md +317 -0
  769. package/dist/skills/review-work/SKILL.md +594 -0
  770. package/dist/skills/start-work/SKILL.md +178 -0
  771. package/dist/skills/ultraresearch/SKILL.md +230 -0
  772. package/dist/skills/ulw-plan/SKILL.md +69 -0
  773. package/dist/skills/ulw-plan/agents/openai.yaml +7 -0
  774. package/dist/skills/ulw-plan/references/full-workflow.md +99 -0
  775. package/dist/skills/ulw-plan/references/intent-clear.md +44 -0
  776. package/dist/skills/ulw-plan/references/intent-unclear.md +44 -0
  777. package/dist/skills/ulw-plan/scripts/scaffold-plan.mjs +301 -0
  778. package/dist/skills/visual-qa/SKILL.md +235 -0
  779. package/dist/skills/visual-qa/references/agent-browser-setup.md +44 -0
  780. package/dist/skills/visual-qa/scripts/ansi.test.ts +45 -0
  781. package/dist/skills/visual-qa/scripts/ansi.ts +17 -0
  782. package/dist/skills/visual-qa/scripts/cli.test.ts +73 -0
  783. package/dist/skills/visual-qa/scripts/cli.ts +82 -0
  784. package/dist/skills/visual-qa/scripts/east-asian-width.test.ts +60 -0
  785. package/dist/skills/visual-qa/scripts/east-asian-width.ts +72 -0
  786. package/dist/skills/visual-qa/scripts/image-diff.test.ts +70 -0
  787. package/dist/skills/visual-qa/scripts/image-diff.ts +109 -0
  788. package/dist/skills/visual-qa/scripts/png-crc.ts +27 -0
  789. package/dist/skills/visual-qa/scripts/png-decode.test.ts +44 -0
  790. package/dist/skills/visual-qa/scripts/png-decode.ts +206 -0
  791. package/dist/skills/visual-qa/scripts/png-synth.ts +57 -0
  792. package/dist/skills/visual-qa/scripts/skill-prompt-contract.test.ts +127 -0
  793. package/dist/skills/visual-qa/scripts/tui-grid.test.ts +57 -0
  794. package/dist/skills/visual-qa/scripts/tui-grid.ts +88 -0
  795. package/dist/skills/visual-qa/scripts/types.ts +54 -0
  796. package/dist/tools/background-task/clients.d.ts +2 -0
  797. package/dist/tools/background-task/full-session-format.d.ts +1 -0
  798. package/dist/tools/background-task/types.d.ts +1 -0
  799. package/dist/tools/delegate-task/background-task-description.d.ts +2 -0
  800. package/dist/tools/delegate-task/constants.d.ts +13 -1
  801. package/dist/tools/delegate-task/model-selection.d.ts +3 -17
  802. package/dist/tools/delegate-task/model-string-parser.d.ts +1 -9
  803. package/dist/tools/delegate-task/sync-prompt-sender.d.ts +1 -1
  804. package/dist/tools/delegate-task/sync-result-fetcher.d.ts +1 -0
  805. package/dist/tools/delegate-task/sync-session-lifecycle.d.ts +2 -1
  806. package/dist/tools/delegate-task/sync-session-poller.d.ts +1 -0
  807. package/dist/tools/delegate-task/types.d.ts +59 -2
  808. package/dist/tools/index.d.ts +1 -0
  809. package/dist/tools/look-at/look-at-input-preparer.d.ts +6 -2
  810. package/dist/tools/look-at/look-at-prompt.d.ts +2 -1
  811. package/dist/tools/look-at/look-at-session-runner.d.ts +3 -4
  812. package/dist/tools/look-at/types.d.ts +2 -0
  813. package/dist/tools/monitor/create-monitor-tools.d.ts +4 -0
  814. package/dist/tools/monitor/index.d.ts +1 -0
  815. package/dist/tools/monitor/monitor-list.d.ts +7 -0
  816. package/dist/tools/monitor/monitor-output.d.ts +3 -0
  817. package/dist/tools/monitor/monitor-start.d.ts +9 -0
  818. package/dist/tools/monitor/monitor-stop.d.ts +16 -0
  819. package/dist/tools/session-manager/types.d.ts +1 -0
  820. package/dist/tools/skill/native-skills.d.ts +2 -2
  821. package/dist/tools/skill/scope-priority.d.ts +1 -4
  822. package/dist/tools/skill/skill-matcher.d.ts +1 -5
  823. package/dist/tools/skill-mcp/types.d.ts +1 -0
  824. package/dist/tools/task/types.d.ts +10 -10
  825. package/dist/tui.d.ts +4 -0
  826. package/dist/tui.js +69330 -0
  827. package/package.json +58 -36
  828. package/packages/git-bash-mcp/dist/cli.js +225 -55
  829. package/packages/lsp-core/package.json +41 -0
  830. package/packages/lsp-core/src/index.ts +28 -0
  831. package/packages/lsp-core/src/lsp/cleanup-errors.ts +5 -0
  832. package/packages/lsp-core/src/lsp/client-wrapper.ts +173 -0
  833. package/packages/lsp-core/src/lsp/client.ts +172 -0
  834. package/packages/lsp-core/src/lsp/config-loader.ts +266 -0
  835. package/packages/lsp-core/src/lsp/connection.ts +73 -0
  836. package/packages/lsp-core/src/lsp/constants.ts +11 -0
  837. package/packages/lsp-core/src/lsp/directory-diagnostics.ts +154 -0
  838. package/packages/lsp-core/src/lsp/effective-extension.ts +10 -0
  839. package/packages/lsp-core/src/lsp/errors.ts +63 -0
  840. package/packages/lsp-core/src/lsp/formatters.ts +141 -0
  841. package/packages/lsp-core/src/lsp/infer-extension.ts +66 -0
  842. package/packages/lsp-core/src/lsp/json-rpc-connection.ts +296 -0
  843. package/packages/lsp-core/src/lsp/language-mappings.ts +173 -0
  844. package/packages/lsp-core/src/lsp/manager.ts +369 -0
  845. package/packages/lsp-core/src/lsp/process-signal-cleanup.ts +21 -0
  846. package/packages/lsp-core/src/lsp/process.ts +202 -0
  847. package/packages/lsp-core/src/lsp/server-definitions.ts +176 -0
  848. package/packages/lsp-core/src/lsp/server-install-state.ts +70 -0
  849. package/packages/lsp-core/src/lsp/server-installation.ts +45 -0
  850. package/packages/lsp-core/src/lsp/server-resolution.ts +104 -0
  851. package/packages/lsp-core/src/lsp/startup-failure.ts +1 -0
  852. package/packages/lsp-core/src/lsp/transport.ts +299 -0
  853. package/packages/lsp-core/src/lsp/types.ts +126 -0
  854. package/packages/lsp-core/src/lsp/utils.test.ts +72 -0
  855. package/packages/lsp-core/src/lsp/utils.ts +40 -0
  856. package/packages/lsp-core/src/lsp/workspace-edit.ts +206 -0
  857. package/packages/lsp-core/src/mcp-protocol-pin.test.ts +68 -0
  858. package/packages/lsp-core/src/mcp.ts +95 -0
  859. package/packages/lsp-core/src/missing-dependency-result.ts +19 -0
  860. package/packages/lsp-core/src/request-context.ts +22 -0
  861. package/packages/lsp-core/src/tool-surface.test.ts +157 -0
  862. package/packages/lsp-core/src/tools/definitions.ts +141 -0
  863. package/packages/lsp-core/src/tools/diagnostics.ts +97 -0
  864. package/packages/lsp-core/src/tools/index.ts +10 -0
  865. package/packages/lsp-core/src/tools/install-decision.ts +39 -0
  866. package/packages/lsp-core/src/tools/navigation.ts +86 -0
  867. package/packages/lsp-core/src/tools/parameters.ts +49 -0
  868. package/packages/lsp-core/src/tools/rename.ts +72 -0
  869. package/packages/lsp-core/src/tools/result.ts +5 -0
  870. package/packages/lsp-core/src/tools/runtime.ts +21 -0
  871. package/packages/lsp-core/src/tools/schema.ts +9 -0
  872. package/packages/lsp-core/src/tools/status.ts +28 -0
  873. package/packages/lsp-core/src/tools/symbols.ts +99 -0
  874. package/packages/lsp-core/src/tools/types.ts +104 -0
  875. package/packages/lsp-core/src/tools.ts +1 -0
  876. package/packages/lsp-daemon/dist/cli.js +800 -612
  877. package/packages/lsp-daemon/dist/daemon-client.d.ts +1 -1
  878. package/packages/lsp-daemon/dist/daemon-server.js +1 -1
  879. package/packages/lsp-daemon/dist/index.d.ts +1 -1
  880. package/packages/lsp-daemon/dist/index.js +695 -505
  881. package/packages/lsp-daemon/dist/proxy.d.ts +3 -2
  882. package/packages/lsp-daemon/dist/proxy.js +16 -40
  883. package/packages/lsp-daemon/dist/request-routing.d.ts +2 -2
  884. package/packages/lsp-daemon/dist/request-routing.js +2 -2
  885. package/packages/lsp-daemon/package.json +2 -1
  886. package/packages/lsp-tools-mcp/dist/cli.js +3348 -15
  887. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.d.ts +1 -1
  888. package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.d.ts +1 -13
  889. package/packages/lsp-tools-mcp/dist/lsp/client.d.ts +1 -20
  890. package/packages/lsp-tools-mcp/dist/lsp/config-loader.d.ts +1 -16
  891. package/packages/lsp-tools-mcp/dist/lsp/connection.d.ts +1 -4
  892. package/packages/lsp-tools-mcp/dist/lsp/constants.d.ts +1 -10
  893. package/packages/lsp-tools-mcp/dist/lsp/directory-diagnostics.d.ts +1 -3
  894. package/packages/lsp-tools-mcp/dist/lsp/effective-extension.d.ts +1 -1
  895. package/packages/lsp-tools-mcp/dist/lsp/errors.d.ts +1 -35
  896. package/packages/lsp-tools-mcp/dist/lsp/formatters.d.ts +1 -12
  897. package/packages/lsp-tools-mcp/dist/lsp/infer-extension.d.ts +1 -1
  898. package/packages/lsp-tools-mcp/dist/lsp/json-rpc-connection.d.ts +1 -36
  899. package/packages/lsp-tools-mcp/dist/lsp/language-mappings.d.ts +1 -4
  900. package/packages/lsp-tools-mcp/dist/lsp/manager.d.ts +1 -46
  901. package/packages/lsp-tools-mcp/dist/lsp/manager.js +1390 -265
  902. package/packages/lsp-tools-mcp/dist/lsp/process-signal-cleanup.d.ts +1 -1
  903. package/packages/lsp-tools-mcp/dist/lsp/process.d.ts +1 -25
  904. package/packages/lsp-tools-mcp/dist/lsp/server-definitions.d.ts +1 -4
  905. package/packages/lsp-tools-mcp/dist/lsp/server-install-state.d.ts +1 -12
  906. package/packages/lsp-tools-mcp/dist/lsp/server-installation.d.ts +1 -1
  907. package/packages/lsp-tools-mcp/dist/lsp/server-resolution.d.ts +1 -11
  908. package/packages/lsp-tools-mcp/dist/lsp/startup-failure.d.ts +1 -3
  909. package/packages/lsp-tools-mcp/dist/lsp/transport.d.ts +1 -26
  910. package/packages/lsp-tools-mcp/dist/lsp/types.d.ts +1 -124
  911. package/packages/lsp-tools-mcp/dist/lsp/utils.d.ts +1 -0
  912. package/packages/lsp-tools-mcp/dist/lsp/workspace-edit.d.ts +1 -11
  913. package/packages/lsp-tools-mcp/dist/mcp.d.ts +1 -30
  914. package/packages/lsp-tools-mcp/dist/mcp.js +3312 -70
  915. package/packages/lsp-tools-mcp/dist/missing-dependency-result.d.ts +1 -2
  916. package/packages/lsp-tools-mcp/dist/request-context.d.ts +1 -7
  917. package/packages/lsp-tools-mcp/dist/request-context.js +16 -10
  918. package/packages/lsp-tools-mcp/dist/tools.d.ts +1 -90
  919. package/packages/lsp-tools-mcp/dist/tools.js +3028 -439
  920. package/packages/lsp-tools-mcp/package.json +3 -1
  921. package/packages/omo-codex/THIRD-PARTY-NOTICES.md +155 -0
  922. package/packages/omo-codex/lazycodex-repository/.github/workflows/pr-source-guidance.yml +11 -12
  923. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  924. package/packages/omo-codex/plugin/.mcp.json +6 -5
  925. package/packages/omo-codex/plugin/README.md +1 -1
  926. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +2975 -0
  927. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +17 -0
  928. package/packages/omo-codex/plugin/components/bootstrap/manifests/node.json +10 -0
  929. package/packages/omo-codex/plugin/components/bootstrap/package.json +20 -0
  930. package/packages/omo-codex/plugin/components/bootstrap/scripts/bootstrap.ps1 +310 -0
  931. package/packages/omo-codex/plugin/components/bootstrap/scripts/build.mjs +35 -0
  932. package/packages/omo-codex/plugin/components/bootstrap/scripts/generate-manifests.mjs +71 -0
  933. package/packages/omo-codex/plugin/components/bootstrap/src/cli.ts +153 -0
  934. package/packages/omo-codex/plugin/components/bootstrap/src/download.ts +212 -0
  935. package/packages/omo-codex/plugin/components/bootstrap/src/environment.ts +286 -0
  936. package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +108 -0
  937. package/packages/omo-codex/plugin/components/bootstrap/src/provision.ts +135 -0
  938. package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +294 -0
  939. package/packages/omo-codex/plugin/components/bootstrap/src/worker.ts +279 -0
  940. package/packages/omo-codex/plugin/components/bootstrap/test/download.test.ts +295 -0
  941. package/packages/omo-codex/plugin/components/bootstrap/test/environment.test.ts +376 -0
  942. package/packages/omo-codex/plugin/components/bootstrap/test/provision.test.ts +464 -0
  943. package/packages/omo-codex/plugin/components/bootstrap/tsconfig.json +25 -0
  944. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +2205 -0
  945. package/packages/omo-codex/plugin/components/codegraph/dist/serve.d.ts +32 -0
  946. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +1603 -0
  947. package/packages/omo-codex/plugin/components/codegraph/package.json +27 -0
  948. package/packages/omo-codex/plugin/components/codegraph/src/cli.ts +55 -0
  949. package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +83 -0
  950. package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +108 -0
  951. package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +191 -0
  952. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +213 -0
  953. package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +563 -0
  954. package/packages/omo-codex/plugin/components/codegraph/test/serve.test.ts +401 -0
  955. package/packages/omo-codex/plugin/components/codegraph/tsconfig.build.json +13 -0
  956. package/packages/omo-codex/plugin/components/codegraph/tsconfig.json +25 -0
  957. package/packages/omo-codex/plugin/components/comment-checker/dist/cli.js +610 -7
  958. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  959. package/packages/omo-codex/plugin/components/comment-checker/package.json +7 -6
  960. package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +28 -156
  961. package/packages/omo-codex/plugin/components/comment-checker/src/core-values.ts +1 -1
  962. package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +2 -2
  963. package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +1 -1
  964. package/packages/omo-codex/plugin/components/comment-checker/src/runner.ts +6 -2
  965. package/packages/omo-codex/plugin/components/comment-checker/test/core.test.ts +38 -35
  966. package/packages/omo-codex/plugin/components/comment-checker/test/fixtures/apply-patch-mixed-requests.ts +60 -0
  967. package/packages/omo-codex/plugin/components/git-bash/dist/cli.js +155 -26
  968. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  969. package/packages/omo-codex/plugin/components/git-bash/package.json +3 -2
  970. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +48 -0
  971. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/directive.md +11 -0
  972. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +223 -0
  973. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.d.ts +2 -0
  974. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +123 -0
  975. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/directive.d.ts +2 -0
  976. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/directive.js +5 -0
  977. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/index.d.ts +4 -0
  978. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/index.js +3 -0
  979. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/state.d.ts +9 -0
  980. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/state.js +45 -0
  981. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/types.d.ts +39 -0
  982. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/types.js +1 -0
  983. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +17 -0
  984. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +44 -0
  985. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/cli.ts +56 -0
  986. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +129 -0
  987. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/directive.ts +13 -0
  988. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/index.ts +4 -0
  989. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/state.ts +62 -0
  990. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/types.ts +38 -0
  991. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/cli.test.ts +124 -0
  992. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +346 -0
  993. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/tsconfig.build.json +12 -0
  994. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/tsconfig.json +27 -0
  995. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/vitest.config.ts +10 -0
  996. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +3738 -28
  997. package/packages/omo-codex/plugin/components/lsp/dist/codex-hook-cli.js +6 -10
  998. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  999. package/packages/omo-codex/plugin/components/lsp/package.json +4 -4
  1000. package/packages/omo-codex/plugin/components/lsp/scripts/build-lsp-tools.test.mjs +8 -3
  1001. package/packages/omo-codex/plugin/components/lsp/src/codex-hook-cli.ts +5 -8
  1002. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-cli.test.ts +24 -1
  1003. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus.md +1 -1
  1004. package/packages/omo-codex/plugin/components/rules/bundled-rules/windows-git-bash.md +3 -1
  1005. package/packages/omo-codex/plugin/components/rules/dist/cli.js +4565 -89
  1006. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  1007. package/packages/omo-codex/plugin/components/rules/package.json +7 -6
  1008. package/packages/omo-codex/plugin/components/rules/src/cli.ts +16 -3
  1009. package/packages/omo-codex/plugin/components/rules/src/config.ts +3 -3
  1010. package/packages/omo-codex/plugin/components/rules/src/dynamic-target-fingerprints.ts +6 -6
  1011. package/packages/omo-codex/plugin/components/rules/src/event-budget.ts +1 -1
  1012. package/packages/omo-codex/plugin/components/rules/src/persistent-cache.ts +1 -1
  1013. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +1 -1
  1014. package/packages/omo-codex/plugin/components/rules/src/rules-engine-factory.ts +9 -4
  1015. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +3 -3
  1016. package/packages/omo-codex/plugin/components/rules/src/transcript-rule-filter.ts +1 -1
  1017. package/packages/omo-codex/plugin/components/rules/test/bundled-rules-priority.test.ts +4 -4
  1018. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +1 -1
  1019. package/packages/omo-codex/plugin/components/rules/test/dynamic-target-fingerprints.test.ts +1 -1
  1020. package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +3 -3
  1021. package/packages/omo-codex/plugin/components/rules/test/finder.test.ts +2 -2
  1022. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +2 -2
  1023. package/packages/omo-codex/plugin/components/rules/test/matcher.test.ts +2 -2
  1024. package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +1 -1
  1025. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +1 -1
  1026. package/packages/omo-codex/plugin/components/rules/test/rules-engine-consumption.test.ts +92 -0
  1027. package/packages/omo-codex/plugin/components/rules/test/scanner.test.ts +1 -1
  1028. package/packages/omo-codex/plugin/components/rules/test/sources.test.ts +4 -4
  1029. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +36 -2
  1030. package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js +394 -37
  1031. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  1032. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +7 -6
  1033. package/packages/omo-codex/plugin/components/start-work-continuation/src/boulder-reader.ts +20 -147
  1034. package/packages/omo-codex/plugin/components/start-work-continuation/src/codex-hook.ts +1 -1
  1035. package/packages/omo-codex/plugin/components/start-work-continuation/src/index.ts +1 -1
  1036. package/packages/omo-codex/plugin/components/start-work-continuation/test/boulder-reader.test.ts +151 -27
  1037. package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +87 -49
  1038. package/packages/omo-codex/plugin/components/telemetry/LICENSE +21 -0
  1039. package/packages/omo-codex/plugin/components/telemetry/NOTICE +6 -0
  1040. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +5869 -42
  1041. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +5783 -108
  1042. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  1043. package/packages/omo-codex/plugin/components/telemetry/package.json +7 -8
  1044. package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +3 -3
  1045. package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +92 -142
  1046. package/packages/omo-codex/plugin/components/telemetry/src/product-identity.ts +59 -3
  1047. package/packages/omo-codex/plugin/components/telemetry/test/codex-hook-diagnostics.test.ts +3 -3
  1048. package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +13 -7
  1049. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +2 -2
  1050. package/packages/omo-codex/plugin/components/ultrawork/README.md +1 -1
  1051. package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +1 -1
  1052. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-clone-fidelity-reviewer.toml +31 -0
  1053. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +29 -0
  1054. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-executor.toml +24 -0
  1055. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +23 -0
  1056. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-qa-executor.toml +22 -0
  1057. package/packages/omo-codex/plugin/components/ultrawork/agents/librarian.toml +1 -1
  1058. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +1 -1
  1059. package/packages/omo-codex/plugin/components/ultrawork/biome.json +1 -1
  1060. package/packages/omo-codex/plugin/components/ultrawork/directive.md +5 -1
  1061. package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +162 -37
  1062. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  1063. package/packages/omo-codex/plugin/components/ultrawork/package.json +7 -6
  1064. package/packages/omo-codex/plugin/components/ultrawork/scripts/sync-directive.mjs +11 -0
  1065. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +42 -47
  1066. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +64 -102
  1067. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +44 -0
  1068. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +44 -0
  1069. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/scaffold-plan.mjs +301 -0
  1070. package/packages/omo-codex/plugin/components/ultrawork/src/codex-hook.ts +2 -2
  1071. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-test-helpers.ts +101 -0
  1072. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +111 -0
  1073. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +39 -124
  1074. package/packages/omo-codex/plugin/components/ultrawork/test/directive-source.test.ts +16 -0
  1075. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +4 -3
  1076. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.d.ts +5 -0
  1077. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.js +79 -0
  1078. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.d.ts +1 -1
  1079. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +56 -82
  1080. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +45 -143
  1081. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +1 -0
  1082. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +18 -0
  1083. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.d.ts +10 -0
  1084. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.js +173 -0
  1085. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +2419 -32
  1086. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +13 -9
  1087. package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.d.ts +60 -12
  1088. package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence.d.ts +3 -0
  1089. package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence.js +67 -10
  1090. package/packages/omo-codex/plugin/components/ulw-loop/dist/goal-status.d.ts +3 -0
  1091. package/packages/omo-codex/plugin/components/ulw-loop/dist/goal-status.js +14 -0
  1092. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.d.ts +2 -6
  1093. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +50 -42
  1094. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-goal-factory.d.ts +8 -0
  1095. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-goal-factory.js +109 -0
  1096. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-blockers.d.ts +5 -0
  1097. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-blockers.js +41 -0
  1098. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-fields.d.ts +8 -0
  1099. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-fields.js +39 -0
  1100. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.d.ts +13 -6
  1101. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +176 -105
  1102. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +2 -2
  1103. package/packages/omo-codex/plugin/components/ulw-loop/package.json +4 -4
  1104. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +17 -17
  1105. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-reconciliation.ts +100 -0
  1106. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +162 -85
  1107. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +64 -134
  1108. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +19 -0
  1109. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-subcommands.ts +250 -0
  1110. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +18 -9
  1111. package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +67 -4
  1112. package/packages/omo-codex/plugin/components/ulw-loop/src/evidence.ts +124 -18
  1113. package/packages/omo-codex/plugin/components/ulw-loop/src/goal-status.ts +16 -0
  1114. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +132 -55
  1115. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-goal-factory.ts +124 -0
  1116. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-blockers.ts +48 -0
  1117. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-fields.ts +44 -0
  1118. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +230 -138
  1119. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-final.test.ts +186 -0
  1120. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-status.test.ts +85 -0
  1121. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint.test.ts +120 -192
  1122. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-checkpoint.test.ts +215 -0
  1123. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +7 -195
  1124. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-complete-goals.test.ts +41 -1
  1125. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +172 -0
  1126. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-helpers.test.ts +0 -6
  1127. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-json-errors.test.ts +89 -0
  1128. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +39 -8
  1129. package/packages/omo-codex/plugin/components/ulw-loop/test/evidence-criteria-gate.test.ts +29 -1
  1130. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/artifacts/browser-screenshot.txt +1 -0
  1131. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/artifacts/cli-pass.txt +1 -0
  1132. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/artifacts/code-review.md +1 -0
  1133. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/artifacts/data-diff.txt +5 -0
  1134. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/artifacts/gate-review.md +1 -0
  1135. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/artifacts/http-dump.txt +4 -0
  1136. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/artifacts/rejection.txt +1 -0
  1137. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/checkpoint-builders.ts +98 -0
  1138. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +91 -0
  1139. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/sample-quality-gate.json +110 -8
  1140. package/packages/omo-codex/plugin/components/ulw-loop/test/goal-status.test.ts +35 -0
  1141. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-crud.test.ts +11 -1
  1142. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-blockers.test.ts +102 -0
  1143. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-doc.test.ts +38 -0
  1144. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +131 -0
  1145. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +150 -176
  1146. package/packages/omo-codex/plugin/components/ulw-loop/test/skill-contract.test.ts +12 -0
  1147. package/packages/omo-codex/plugin/hooks/hooks.json +48 -16
  1148. package/packages/omo-codex/plugin/package-lock.json +327 -232
  1149. package/packages/omo-codex/plugin/package.json +4 -2
  1150. package/packages/omo-codex/plugin/scripts/auto-update-state.d.mts +20 -0
  1151. package/packages/omo-codex/plugin/scripts/auto-update.mjs +30 -8
  1152. package/packages/omo-codex/plugin/scripts/build-bundled-mcp-runtimes.mjs +0 -5
  1153. package/packages/omo-codex/plugin/scripts/build-components.mjs +60 -5
  1154. package/packages/omo-codex/plugin/scripts/hook-status-message.mjs +2 -0
  1155. package/packages/omo-codex/plugin/scripts/install-flow.mjs +43 -0
  1156. package/packages/omo-codex/plugin/scripts/migrate-omo-sot/editor.mjs +125 -0
  1157. package/packages/omo-codex/plugin/scripts/migrate-omo-sot/jsonc.mjs +43 -0
  1158. package/packages/omo-codex/plugin/scripts/migrate-omo-sot/scaffold.mjs +29 -0
  1159. package/packages/omo-codex/plugin/scripts/migrate-omo-sot.mjs +121 -0
  1160. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +5 -5
  1161. package/packages/omo-codex/plugin/shared/package.json +24 -0
  1162. package/packages/omo-codex/plugin/shared/src/config-loader.ts +28 -0
  1163. package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +105 -0
  1164. package/packages/omo-codex/plugin/shared/tsconfig.build.json +9 -0
  1165. package/packages/omo-codex/plugin/shared/tsconfig.json +16 -0
  1166. package/packages/omo-codex/plugin/skills/ast-grep/LICENSE +21 -0
  1167. package/packages/omo-codex/plugin/skills/ast-grep/README.md +136 -0
  1168. package/packages/omo-codex/plugin/skills/ast-grep/SKILL.md +272 -0
  1169. package/packages/omo-codex/plugin/skills/ast-grep/SOURCE +1 -0
  1170. package/packages/omo-codex/plugin/skills/ast-grep/install.ps1 +235 -0
  1171. package/packages/omo-codex/plugin/skills/ast-grep/install.sh +286 -0
  1172. package/packages/omo-codex/plugin/skills/ast-grep/references/cli.md +231 -0
  1173. package/packages/omo-codex/plugin/skills/ast-grep/references/install.md +166 -0
  1174. package/packages/omo-codex/plugin/skills/ast-grep/references/patterns.md +147 -0
  1175. package/packages/omo-codex/plugin/skills/ast-grep/references/pitfalls.md +303 -0
  1176. package/packages/omo-codex/plugin/skills/ast-grep/references/recipes.md +402 -0
  1177. package/packages/omo-codex/plugin/skills/ast-grep/references/sgconfig.md +248 -0
  1178. package/packages/omo-codex/plugin/skills/ast-grep/references/yaml-rules.md +509 -0
  1179. package/packages/omo-codex/plugin/skills/ast-grep/scripts/ast_grep_helper.py +748 -0
  1180. package/packages/omo-codex/plugin/skills/ast-grep/tests/smoke.ps1 +123 -0
  1181. package/packages/omo-codex/plugin/skills/ast-grep/tests/smoke.sh +212 -0
  1182. package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +127 -0
  1183. package/packages/omo-codex/plugin/skills/frontend/LICENSE-Apache-2.0.txt +201 -0
  1184. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +113 -0
  1185. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +240 -0
  1186. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +189 -0
  1187. package/packages/omo-codex/plugin/skills/frontend/references/design/airbnb.md +390 -0
  1188. package/packages/omo-codex/plugin/skills/frontend/references/design/airtable.md +89 -0
  1189. package/packages/omo-codex/plugin/skills/frontend/references/design/apple.md +247 -0
  1190. package/packages/omo-codex/plugin/skills/frontend/references/design/binance.md +345 -0
  1191. package/packages/omo-codex/plugin/skills/frontend/references/design/bmw.md +180 -0
  1192. package/packages/omo-codex/plugin/skills/frontend/references/design/brutalist-skill.md +92 -0
  1193. package/packages/omo-codex/plugin/skills/frontend/references/design/bugatti.md +268 -0
  1194. package/packages/omo-codex/plugin/skills/frontend/references/design/cal.md +259 -0
  1195. package/packages/omo-codex/plugin/skills/frontend/references/design/claude.md +312 -0
  1196. package/packages/omo-codex/plugin/skills/frontend/references/design/clay.md +304 -0
  1197. package/packages/omo-codex/plugin/skills/frontend/references/design/clickhouse.md +281 -0
  1198. package/packages/omo-codex/plugin/skills/frontend/references/design/cohere.md +266 -0
  1199. package/packages/omo-codex/plugin/skills/frontend/references/design/coinbase.md +129 -0
  1200. package/packages/omo-codex/plugin/skills/frontend/references/design/composio.md +307 -0
  1201. package/packages/omo-codex/plugin/skills/frontend/references/design/cursor.md +309 -0
  1202. package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +217 -0
  1203. package/packages/omo-codex/plugin/skills/frontend/references/design/elevenlabs.md +265 -0
  1204. package/packages/omo-codex/plugin/skills/frontend/references/design/expo.md +281 -0
  1205. package/packages/omo-codex/plugin/skills/frontend/references/design/ferrari.md +314 -0
  1206. package/packages/omo-codex/plugin/skills/frontend/references/design/figma.md +220 -0
  1207. package/packages/omo-codex/plugin/skills/frontend/references/design/framer.md +246 -0
  1208. package/packages/omo-codex/plugin/skills/frontend/references/design/gpt-tasteskill.md +74 -0
  1209. package/packages/omo-codex/plugin/skills/frontend/references/design/hashicorp.md +278 -0
  1210. package/packages/omo-codex/plugin/skills/frontend/references/design/ibm.md +332 -0
  1211. package/packages/omo-codex/plugin/skills/frontend/references/design/image-to-code-skill.md +1228 -0
  1212. package/packages/omo-codex/plugin/skills/frontend/references/design/imagegen-brandkit.md +798 -0
  1213. package/packages/omo-codex/plugin/skills/frontend/references/design/imagegen-frontend-mobile.md +1465 -0
  1214. package/packages/omo-codex/plugin/skills/frontend/references/design/imagegen-frontend-web.md +686 -0
  1215. package/packages/omo-codex/plugin/skills/frontend/references/design/intercom.md +146 -0
  1216. package/packages/omo-codex/plugin/skills/frontend/references/design/kraken.md +125 -0
  1217. package/packages/omo-codex/plugin/skills/frontend/references/design/lamborghini.md +288 -0
  1218. package/packages/omo-codex/plugin/skills/frontend/references/design/linear.app.md +367 -0
  1219. package/packages/omo-codex/plugin/skills/frontend/references/design/lovable.md +298 -0
  1220. package/packages/omo-codex/plugin/skills/frontend/references/design/mastercard.md +365 -0
  1221. package/packages/omo-codex/plugin/skills/frontend/references/design/meta.md +366 -0
  1222. package/packages/omo-codex/plugin/skills/frontend/references/design/minimalist-skill.md +85 -0
  1223. package/packages/omo-codex/plugin/skills/frontend/references/design/minimax.md +257 -0
  1224. package/packages/omo-codex/plugin/skills/frontend/references/design/mintlify.md +326 -0
  1225. package/packages/omo-codex/plugin/skills/frontend/references/design/miro.md +108 -0
  1226. package/packages/omo-codex/plugin/skills/frontend/references/design/mistral.ai.md +261 -0
  1227. package/packages/omo-codex/plugin/skills/frontend/references/design/mongodb.md +266 -0
  1228. package/packages/omo-codex/plugin/skills/frontend/references/design/nike.md +363 -0
  1229. package/packages/omo-codex/plugin/skills/frontend/references/design/notion.md +309 -0
  1230. package/packages/omo-codex/plugin/skills/frontend/references/design/nvidia.md +293 -0
  1231. package/packages/omo-codex/plugin/skills/frontend/references/design/ollama.md +267 -0
  1232. package/packages/omo-codex/plugin/skills/frontend/references/design/opencode.ai.md +281 -0
  1233. package/packages/omo-codex/plugin/skills/frontend/references/design/output-skill.md +49 -0
  1234. package/packages/omo-codex/plugin/skills/frontend/references/design/pinterest.md +230 -0
  1235. package/packages/omo-codex/plugin/skills/frontend/references/design/playstation.md +364 -0
  1236. package/packages/omo-codex/plugin/skills/frontend/references/design/posthog.md +256 -0
  1237. package/packages/omo-codex/plugin/skills/frontend/references/design/raycast.md +268 -0
  1238. package/packages/omo-codex/plugin/skills/frontend/references/design/react-dev-tooling-skill.md +230 -0
  1239. package/packages/omo-codex/plugin/skills/frontend/references/design/redesign-skill.md +178 -0
  1240. package/packages/omo-codex/plugin/skills/frontend/references/design/renault.md +311 -0
  1241. package/packages/omo-codex/plugin/skills/frontend/references/design/replicate.md +261 -0
  1242. package/packages/omo-codex/plugin/skills/frontend/references/design/resend.md +303 -0
  1243. package/packages/omo-codex/plugin/skills/frontend/references/design/revolut.md +185 -0
  1244. package/packages/omo-codex/plugin/skills/frontend/references/design/runwayml.md +244 -0
  1245. package/packages/omo-codex/plugin/skills/frontend/references/design/sanity.md +357 -0
  1246. package/packages/omo-codex/plugin/skills/frontend/references/design/sentry.md +262 -0
  1247. package/packages/omo-codex/plugin/skills/frontend/references/design/shopify.md +350 -0
  1248. package/packages/omo-codex/plugin/skills/frontend/references/design/soft-skill.md +98 -0
  1249. package/packages/omo-codex/plugin/skills/frontend/references/design/spacex.md +194 -0
  1250. package/packages/omo-codex/plugin/skills/frontend/references/design/spotify.md +246 -0
  1251. package/packages/omo-codex/plugin/skills/frontend/references/design/starbucks.md +580 -0
  1252. package/packages/omo-codex/plugin/skills/frontend/references/design/stitch-skill.md +184 -0
  1253. package/packages/omo-codex/plugin/skills/frontend/references/design/stripe.md +322 -0
  1254. package/packages/omo-codex/plugin/skills/frontend/references/design/supabase.md +255 -0
  1255. package/packages/omo-codex/plugin/skills/frontend/references/design/superhuman.md +252 -0
  1256. package/packages/omo-codex/plugin/skills/frontend/references/design/taste-skill.md +226 -0
  1257. package/packages/omo-codex/plugin/skills/frontend/references/design/tesla.md +286 -0
  1258. package/packages/omo-codex/plugin/skills/frontend/references/design/theverge.md +339 -0
  1259. package/packages/omo-codex/plugin/skills/frontend/references/design/together.ai.md +263 -0
  1260. package/packages/omo-codex/plugin/skills/frontend/references/design/uber.md +295 -0
  1261. package/packages/omo-codex/plugin/skills/frontend/references/design/vercel.md +310 -0
  1262. package/packages/omo-codex/plugin/skills/frontend/references/design/vodafone.md +423 -0
  1263. package/packages/omo-codex/plugin/skills/frontend/references/design/voltagent.md +323 -0
  1264. package/packages/omo-codex/plugin/skills/frontend/references/design/warp.md +253 -0
  1265. package/packages/omo-codex/plugin/skills/frontend/references/design/webflow.md +92 -0
  1266. package/packages/omo-codex/plugin/skills/frontend/references/design/wired.md +278 -0
  1267. package/packages/omo-codex/plugin/skills/frontend/references/design/wise.md +173 -0
  1268. package/packages/omo-codex/plugin/skills/frontend/references/design/x.ai.md +257 -0
  1269. package/packages/omo-codex/plugin/skills/frontend/references/design/zapier.md +328 -0
  1270. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +160 -0
  1271. package/packages/omo-codex/plugin/skills/frontend/references/perfection/react-perf-tooling.md +127 -0
  1272. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/README.md +273 -0
  1273. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/charts.csv +26 -0
  1274. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/colors.csv +97 -0
  1275. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/icons.csv +101 -0
  1276. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/landing.csv +31 -0
  1277. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/products.csv +97 -0
  1278. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/react-performance.csv +45 -0
  1279. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/astro.csv +54 -0
  1280. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/flutter.csv +53 -0
  1281. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/html-tailwind.csv +56 -0
  1282. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/jetpack-compose.csv +53 -0
  1283. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/nextjs.csv +53 -0
  1284. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/nuxt-ui.csv +51 -0
  1285. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/nuxtjs.csv +59 -0
  1286. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/react-native.csv +52 -0
  1287. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/react.csv +54 -0
  1288. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/shadcn.csv +61 -0
  1289. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/svelte.csv +54 -0
  1290. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/swiftui.csv +51 -0
  1291. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/stacks/vue.csv +50 -0
  1292. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/styles.csv +68 -0
  1293. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/typography.csv +58 -0
  1294. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/ui-reasoning.csv +101 -0
  1295. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/ux-guidelines.csv +100 -0
  1296. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/data/web-interface.csv +31 -0
  1297. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/scripts/core.py +253 -0
  1298. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/scripts/design_system.py +1067 -0
  1299. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/scripts/search.py +114 -0
  1300. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/lighthouse-audit.py +201 -0
  1301. package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +3 -3
  1302. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +79 -28
  1303. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/agents/openai.yaml +2 -2
  1304. package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +7 -6
  1305. package/packages/omo-codex/plugin/skills/lcx-report-bug/agents/openai.yaml +1 -1
  1306. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +14 -23
  1307. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +2 -2
  1308. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +2 -2
  1309. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +3 -3
  1310. package/packages/omo-codex/plugin/skills/ultraresearch/SKILL.md +2 -2
  1311. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +17 -17
  1312. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +42 -47
  1313. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +64 -102
  1314. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +44 -0
  1315. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +44 -0
  1316. package/packages/omo-codex/plugin/skills/ulw-plan/scripts/scaffold-plan.mjs +301 -0
  1317. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +19 -3
  1318. package/packages/omo-codex/plugin/skills/visual-qa/references/agent-browser-setup.md +44 -0
  1319. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +119 -11
  1320. package/packages/omo-codex/plugin/test/aggregate-build.test.mjs +2 -4
  1321. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +29 -2
  1322. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +3 -0
  1323. package/packages/omo-codex/plugin/test/aggregate-mcp.test.mjs +12 -12
  1324. package/packages/omo-codex/plugin/test/auto-update.test.mjs +171 -0
  1325. package/packages/omo-codex/plugin/test/bootstrap-binlinks.test.mjs +250 -0
  1326. package/packages/omo-codex/plugin/test/bootstrap-hooks.test.mjs +166 -0
  1327. package/packages/omo-codex/plugin/test/bootstrap-orchestration.test.mjs +371 -0
  1328. package/packages/omo-codex/plugin/test/bootstrap-ps-guard.test.mjs +134 -0
  1329. package/packages/omo-codex/plugin/test/bootstrap-setup.test.mjs +249 -0
  1330. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +287 -0
  1331. package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +199 -0
  1332. package/packages/omo-codex/plugin/test/hook-status-message.test.mjs +38 -2
  1333. package/packages/omo-codex/plugin/test/index.js +13 -0
  1334. package/packages/omo-codex/plugin/test/install-time-build-runtime.test.mjs +4 -5
  1335. package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +10 -1
  1336. package/packages/omo-codex/plugin/test/mcp-research-servers.test.mjs +5 -3
  1337. package/packages/omo-codex/plugin/test/migrate-omo-sot.test.mjs +179 -0
  1338. package/packages/omo-codex/plugin/test/payload-equivalence.test.mjs +109 -0
  1339. package/packages/omo-codex/plugin/test/scaffold-plan.test.mjs +165 -0
  1340. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +6 -6
  1341. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +2 -3
  1342. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +37 -1
  1343. package/packages/omo-codex/scripts/install-agent-links.test.mjs +41 -0
  1344. package/packages/omo-codex/scripts/install-bin-links.test.mjs +3 -3
  1345. package/packages/omo-codex/scripts/install-cache-copy.test.mjs +1 -1
  1346. package/packages/omo-codex/scripts/install-cli-args.test.mjs +1 -1
  1347. package/packages/omo-codex/scripts/install-config-autonomous-features.test.mjs +1 -1
  1348. package/packages/omo-codex/scripts/install-config-autonomous.test.mjs +1 -1
  1349. package/packages/omo-codex/scripts/install-config-git-bash.test.mjs +1 -1
  1350. package/packages/omo-codex/scripts/install-config-preservation.test.mjs +1 -1
  1351. package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +1 -2
  1352. package/packages/omo-codex/scripts/install-config.test.mjs +8 -6
  1353. package/packages/omo-codex/scripts/install-delegated-command.test.mjs +1 -1
  1354. package/packages/omo-codex/scripts/install-dist/install-local.mjs +13377 -0
  1355. package/packages/omo-codex/scripts/install-generated-bundle.test.mjs +55 -0
  1356. package/packages/omo-codex/scripts/install-git-bash-mcp-env.test.mjs +3 -4
  1357. package/packages/omo-codex/scripts/install-hook-targets.test.mjs +1 -1
  1358. package/packages/omo-codex/scripts/install-local.mjs +54 -236
  1359. package/packages/omo-codex/scripts/install-local.test.mjs +8 -1
  1360. package/packages/omo-codex/scripts/install-marketplace-cache.test.mjs +3 -3
  1361. package/packages/omo-codex/scripts/install-mcp-runtime.test.mjs +34 -77
  1362. package/packages/omo-codex/scripts/install-packaged-local.test.mjs +8 -4
  1363. package/packages/omo-codex/scripts/install-project-local-cleanup.test.mjs +1 -1
  1364. package/packages/shared-skills/package.json +6 -1
  1365. package/packages/shared-skills/skills/ast-grep/LICENSE +21 -0
  1366. package/packages/shared-skills/skills/ast-grep/README.md +136 -0
  1367. package/packages/shared-skills/skills/ast-grep/SKILL.md +272 -0
  1368. package/packages/shared-skills/skills/ast-grep/SOURCE +1 -0
  1369. package/packages/shared-skills/skills/ast-grep/install.ps1 +235 -0
  1370. package/packages/shared-skills/skills/ast-grep/install.sh +286 -0
  1371. package/packages/shared-skills/skills/ast-grep/references/cli.md +231 -0
  1372. package/packages/shared-skills/skills/ast-grep/references/install.md +166 -0
  1373. package/packages/shared-skills/skills/ast-grep/references/patterns.md +147 -0
  1374. package/packages/shared-skills/skills/ast-grep/references/pitfalls.md +303 -0
  1375. package/packages/shared-skills/skills/ast-grep/references/recipes.md +402 -0
  1376. package/packages/shared-skills/skills/ast-grep/references/sgconfig.md +248 -0
  1377. package/packages/shared-skills/skills/ast-grep/references/yaml-rules.md +509 -0
  1378. package/packages/shared-skills/skills/ast-grep/scripts/ast_grep_helper.py +748 -0
  1379. package/packages/shared-skills/skills/ast-grep/tests/smoke.ps1 +123 -0
  1380. package/packages/shared-skills/skills/ast-grep/tests/smoke.sh +212 -0
  1381. package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +127 -0
  1382. package/packages/shared-skills/skills/frontend/LICENSE-Apache-2.0.txt +201 -0
  1383. package/packages/shared-skills/skills/frontend/SKILL.md +113 -0
  1384. package/packages/shared-skills/skills/frontend/references/design/README.md +240 -0
  1385. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +189 -0
  1386. package/packages/shared-skills/skills/frontend/references/design/airbnb.md +390 -0
  1387. package/packages/shared-skills/skills/frontend/references/design/airtable.md +89 -0
  1388. package/packages/shared-skills/skills/frontend/references/design/apple.md +247 -0
  1389. package/packages/shared-skills/skills/frontend/references/design/binance.md +345 -0
  1390. package/packages/shared-skills/skills/frontend/references/design/bmw.md +180 -0
  1391. package/packages/shared-skills/skills/frontend/references/design/brutalist-skill.md +92 -0
  1392. package/packages/shared-skills/skills/frontend/references/design/bugatti.md +268 -0
  1393. package/packages/shared-skills/skills/frontend/references/design/cal.md +259 -0
  1394. package/packages/shared-skills/skills/frontend/references/design/claude.md +312 -0
  1395. package/packages/shared-skills/skills/frontend/references/design/clay.md +304 -0
  1396. package/packages/shared-skills/skills/frontend/references/design/clickhouse.md +281 -0
  1397. package/packages/shared-skills/skills/frontend/references/design/cohere.md +266 -0
  1398. package/packages/shared-skills/skills/frontend/references/design/coinbase.md +129 -0
  1399. package/packages/shared-skills/skills/frontend/references/design/composio.md +307 -0
  1400. package/packages/shared-skills/skills/frontend/references/design/cursor.md +309 -0
  1401. package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +217 -0
  1402. package/packages/shared-skills/skills/frontend/references/design/elevenlabs.md +265 -0
  1403. package/packages/shared-skills/skills/frontend/references/design/expo.md +281 -0
  1404. package/packages/shared-skills/skills/frontend/references/design/ferrari.md +314 -0
  1405. package/packages/shared-skills/skills/frontend/references/design/figma.md +220 -0
  1406. package/packages/shared-skills/skills/frontend/references/design/framer.md +246 -0
  1407. package/packages/shared-skills/skills/frontend/references/design/gpt-tasteskill.md +74 -0
  1408. package/packages/shared-skills/skills/frontend/references/design/hashicorp.md +278 -0
  1409. package/packages/shared-skills/skills/frontend/references/design/ibm.md +332 -0
  1410. package/packages/shared-skills/skills/frontend/references/design/image-to-code-skill.md +1228 -0
  1411. package/packages/shared-skills/skills/frontend/references/design/imagegen-brandkit.md +798 -0
  1412. package/packages/shared-skills/skills/frontend/references/design/imagegen-frontend-mobile.md +1465 -0
  1413. package/packages/shared-skills/skills/frontend/references/design/imagegen-frontend-web.md +686 -0
  1414. package/packages/shared-skills/skills/frontend/references/design/intercom.md +146 -0
  1415. package/packages/shared-skills/skills/frontend/references/design/kraken.md +125 -0
  1416. package/packages/shared-skills/skills/frontend/references/design/lamborghini.md +288 -0
  1417. package/packages/shared-skills/skills/frontend/references/design/linear.app.md +367 -0
  1418. package/packages/shared-skills/skills/frontend/references/design/lovable.md +298 -0
  1419. package/packages/shared-skills/skills/frontend/references/design/mastercard.md +365 -0
  1420. package/packages/shared-skills/skills/frontend/references/design/meta.md +366 -0
  1421. package/packages/shared-skills/skills/frontend/references/design/minimalist-skill.md +85 -0
  1422. package/packages/shared-skills/skills/frontend/references/design/minimax.md +257 -0
  1423. package/packages/shared-skills/skills/frontend/references/design/mintlify.md +326 -0
  1424. package/packages/shared-skills/skills/frontend/references/design/miro.md +108 -0
  1425. package/packages/shared-skills/skills/frontend/references/design/mistral.ai.md +261 -0
  1426. package/packages/shared-skills/skills/frontend/references/design/mongodb.md +266 -0
  1427. package/packages/shared-skills/skills/frontend/references/design/nike.md +363 -0
  1428. package/packages/shared-skills/skills/frontend/references/design/notion.md +309 -0
  1429. package/packages/shared-skills/skills/frontend/references/design/nvidia.md +293 -0
  1430. package/packages/shared-skills/skills/frontend/references/design/ollama.md +267 -0
  1431. package/packages/shared-skills/skills/frontend/references/design/opencode.ai.md +281 -0
  1432. package/packages/shared-skills/skills/frontend/references/design/output-skill.md +49 -0
  1433. package/packages/shared-skills/skills/frontend/references/design/pinterest.md +230 -0
  1434. package/packages/shared-skills/skills/frontend/references/design/playstation.md +364 -0
  1435. package/packages/shared-skills/skills/frontend/references/design/posthog.md +256 -0
  1436. package/packages/shared-skills/skills/frontend/references/design/raycast.md +268 -0
  1437. package/packages/shared-skills/skills/frontend/references/design/react-dev-tooling-skill.md +230 -0
  1438. package/packages/shared-skills/skills/frontend/references/design/redesign-skill.md +178 -0
  1439. package/packages/shared-skills/skills/frontend/references/design/renault.md +311 -0
  1440. package/packages/shared-skills/skills/frontend/references/design/replicate.md +261 -0
  1441. package/packages/shared-skills/skills/frontend/references/design/resend.md +303 -0
  1442. package/packages/shared-skills/skills/frontend/references/design/revolut.md +185 -0
  1443. package/packages/shared-skills/skills/frontend/references/design/runwayml.md +244 -0
  1444. package/packages/shared-skills/skills/frontend/references/design/sanity.md +357 -0
  1445. package/packages/shared-skills/skills/frontend/references/design/sentry.md +262 -0
  1446. package/packages/shared-skills/skills/frontend/references/design/shopify.md +350 -0
  1447. package/packages/shared-skills/skills/frontend/references/design/soft-skill.md +98 -0
  1448. package/packages/shared-skills/skills/frontend/references/design/spacex.md +194 -0
  1449. package/packages/shared-skills/skills/frontend/references/design/spotify.md +246 -0
  1450. package/packages/shared-skills/skills/frontend/references/design/starbucks.md +580 -0
  1451. package/packages/shared-skills/skills/frontend/references/design/stitch-skill.md +184 -0
  1452. package/packages/shared-skills/skills/frontend/references/design/stripe.md +322 -0
  1453. package/packages/shared-skills/skills/frontend/references/design/supabase.md +255 -0
  1454. package/packages/shared-skills/skills/frontend/references/design/superhuman.md +252 -0
  1455. package/packages/shared-skills/skills/frontend/references/design/taste-skill.md +226 -0
  1456. package/packages/shared-skills/skills/frontend/references/design/tesla.md +286 -0
  1457. package/packages/shared-skills/skills/frontend/references/design/theverge.md +339 -0
  1458. package/packages/shared-skills/skills/frontend/references/design/together.ai.md +263 -0
  1459. package/packages/shared-skills/skills/frontend/references/design/uber.md +295 -0
  1460. package/packages/shared-skills/skills/frontend/references/design/vercel.md +310 -0
  1461. package/packages/shared-skills/skills/frontend/references/design/vodafone.md +423 -0
  1462. package/packages/shared-skills/skills/frontend/references/design/voltagent.md +323 -0
  1463. package/packages/shared-skills/skills/frontend/references/design/warp.md +253 -0
  1464. package/packages/shared-skills/skills/frontend/references/design/webflow.md +92 -0
  1465. package/packages/shared-skills/skills/frontend/references/design/wired.md +278 -0
  1466. package/packages/shared-skills/skills/frontend/references/design/wise.md +173 -0
  1467. package/packages/shared-skills/skills/frontend/references/design/x.ai.md +257 -0
  1468. package/packages/shared-skills/skills/frontend/references/design/zapier.md +328 -0
  1469. package/packages/shared-skills/skills/frontend/references/perfection/README.md +160 -0
  1470. package/packages/shared-skills/skills/frontend/references/perfection/react-perf-tooling.md +127 -0
  1471. package/packages/shared-skills/skills/frontend/references/ui-ux-db/README.md +273 -0
  1472. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/charts.csv +26 -0
  1473. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/colors.csv +97 -0
  1474. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/icons.csv +101 -0
  1475. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/landing.csv +31 -0
  1476. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/products.csv +97 -0
  1477. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/react-performance.csv +45 -0
  1478. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/astro.csv +54 -0
  1479. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/flutter.csv +53 -0
  1480. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/html-tailwind.csv +56 -0
  1481. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/jetpack-compose.csv +53 -0
  1482. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/nextjs.csv +53 -0
  1483. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/nuxt-ui.csv +51 -0
  1484. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/nuxtjs.csv +59 -0
  1485. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/react-native.csv +52 -0
  1486. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/react.csv +54 -0
  1487. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/shadcn.csv +61 -0
  1488. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/svelte.csv +54 -0
  1489. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/swiftui.csv +51 -0
  1490. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/stacks/vue.csv +50 -0
  1491. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/styles.csv +68 -0
  1492. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/typography.csv +58 -0
  1493. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/ui-reasoning.csv +101 -0
  1494. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/ux-guidelines.csv +100 -0
  1495. package/packages/shared-skills/skills/frontend/references/ui-ux-db/data/web-interface.csv +31 -0
  1496. package/packages/shared-skills/skills/frontend/references/ui-ux-db/scripts/core.py +253 -0
  1497. package/packages/shared-skills/skills/frontend/references/ui-ux-db/scripts/design_system.py +1067 -0
  1498. package/packages/shared-skills/skills/frontend/references/ui-ux-db/scripts/search.py +114 -0
  1499. package/packages/shared-skills/skills/frontend/scripts/perfection/lighthouse-audit.py +201 -0
  1500. package/packages/shared-skills/skills/init-deep/SKILL.md +1 -1
  1501. package/packages/shared-skills/skills/lcx-contribute-bug-fix/SKILL.md +79 -28
  1502. package/packages/shared-skills/skills/lcx-contribute-bug-fix/agents/openai.yaml +2 -2
  1503. package/packages/shared-skills/skills/lcx-report-bug/SKILL.md +7 -6
  1504. package/packages/shared-skills/skills/lcx-report-bug/agents/openai.yaml +1 -1
  1505. package/packages/shared-skills/skills/refactor/SKILL.md +12 -21
  1506. package/packages/shared-skills/skills/review-work/SKILL.md +11 -9
  1507. package/packages/shared-skills/skills/start-work/SKILL.md +5 -4
  1508. package/packages/shared-skills/skills/ultraresearch/SKILL.md +9 -8
  1509. package/packages/shared-skills/skills/ulw-plan/SKILL.md +69 -0
  1510. package/packages/shared-skills/skills/ulw-plan/agents/openai.yaml +7 -0
  1511. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +99 -0
  1512. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +44 -0
  1513. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +44 -0
  1514. package/packages/shared-skills/skills/ulw-plan/scripts/scaffold-plan.mjs +301 -0
  1515. package/packages/shared-skills/skills/visual-qa/SKILL.md +17 -1
  1516. package/packages/shared-skills/skills/visual-qa/references/agent-browser-setup.md +44 -0
  1517. package/packages/shared-skills/skills/visual-qa/scripts/skill-prompt-contract.test.ts +48 -4
  1518. package/dist/cli/doctor/constants.d.ts +0 -32
  1519. package/dist/cli/doctor/spawn-with-timeout.d.ts +0 -8
  1520. package/dist/cli/doctor/types.d.ts +0 -148
  1521. package/dist/features/builtin-skills/skills/frontend-ui-ux.d.ts +0 -2
  1522. package/dist/hooks/session-recovery/constants.d.ts +0 -4
  1523. package/dist/hooks/session-recovery/detect-error-type.d.ts +0 -4
  1524. package/dist/hooks/session-recovery/error-recovery.d.ts +0 -4
  1525. package/dist/hooks/session-recovery/hook-types.d.ts +0 -22
  1526. package/dist/hooks/session-recovery/hook.d.ts +0 -4
  1527. package/dist/hooks/session-recovery/index.d.ts +0 -5
  1528. package/dist/hooks/session-recovery/interrupted-idle-message-fetch-timeout.d.ts +0 -7
  1529. package/dist/hooks/session-recovery/interrupted-tool-results.d.ts +0 -3
  1530. package/dist/hooks/session-recovery/message-state.d.ts +0 -4
  1531. package/dist/hooks/session-recovery/recover-thinking-block-order.d.ts +0 -5
  1532. package/dist/hooks/session-recovery/recover-thinking-disabled-violation.d.ts +0 -5
  1533. package/dist/hooks/session-recovery/recover-tool-result-missing.d.ts +0 -10
  1534. package/dist/hooks/session-recovery/recover-unavailable-tool.d.ts +0 -5
  1535. package/dist/hooks/session-recovery/resume.d.ts +0 -7
  1536. package/dist/hooks/session-recovery/storage/latest-assistant-message.d.ts +0 -5
  1537. package/dist/hooks/session-recovery/storage/messages-reader.d.ts +0 -6
  1538. package/dist/hooks/session-recovery/storage/orphan-thinking-search.d.ts +0 -2
  1539. package/dist/hooks/session-recovery/storage/part-content.d.ts +0 -3
  1540. package/dist/hooks/session-recovery/storage/parts-reader.d.ts +0 -6
  1541. package/dist/hooks/session-recovery/storage/thinking-block-search.d.ts +0 -2
  1542. package/dist/hooks/session-recovery/storage/thinking-prepend.d.ts +0 -33
  1543. package/dist/hooks/session-recovery/storage/thinking-strip.d.ts +0 -11
  1544. package/dist/hooks/session-recovery/storage.d.ts +0 -20
  1545. package/dist/hooks/session-recovery/types.d.ts +0 -105
  1546. package/dist/mcp/ast-grep.d.ts +0 -11
  1547. package/dist/plugin/event-session-recovery.d.ts +0 -9
  1548. package/dist/plugin/user-abort-interrupted-recovery-guard.d.ts +0 -6
  1549. package/packages/ast-grep-mcp/dist/cli.js +0 -1126
  1550. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.js +0 -6
  1551. package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.js +0 -132
  1552. package/packages/lsp-tools-mcp/dist/lsp/client.js +0 -131
  1553. package/packages/lsp-tools-mcp/dist/lsp/config-loader.js +0 -220
  1554. package/packages/lsp-tools-mcp/dist/lsp/connection.js +0 -66
  1555. package/packages/lsp-tools-mcp/dist/lsp/constants.js +0 -10
  1556. package/packages/lsp-tools-mcp/dist/lsp/directory-diagnostics.js +0 -125
  1557. package/packages/lsp-tools-mcp/dist/lsp/effective-extension.js +0 -8
  1558. package/packages/lsp-tools-mcp/dist/lsp/errors.js +0 -56
  1559. package/packages/lsp-tools-mcp/dist/lsp/formatters.js +0 -106
  1560. package/packages/lsp-tools-mcp/dist/lsp/infer-extension.js +0 -59
  1561. package/packages/lsp-tools-mcp/dist/lsp/json-rpc-connection.js +0 -247
  1562. package/packages/lsp-tools-mcp/dist/lsp/language-mappings.js +0 -170
  1563. package/packages/lsp-tools-mcp/dist/lsp/process-signal-cleanup.js +0 -17
  1564. package/packages/lsp-tools-mcp/dist/lsp/process.js +0 -153
  1565. package/packages/lsp-tools-mcp/dist/lsp/server-definitions.js +0 -170
  1566. package/packages/lsp-tools-mcp/dist/lsp/server-install-state.js +0 -51
  1567. package/packages/lsp-tools-mcp/dist/lsp/server-installation.js +0 -40
  1568. package/packages/lsp-tools-mcp/dist/lsp/server-resolution.js +0 -86
  1569. package/packages/lsp-tools-mcp/dist/lsp/startup-failure.js +0 -35
  1570. package/packages/lsp-tools-mcp/dist/lsp/transport.js +0 -238
  1571. package/packages/lsp-tools-mcp/dist/lsp/types.js +0 -1
  1572. package/packages/lsp-tools-mcp/dist/lsp/workspace-edit.js +0 -175
  1573. package/packages/lsp-tools-mcp/dist/missing-dependency-result.js +0 -14
  1574. package/packages/omo-codex/plugin/components/comment-checker/dist/apply-patch.d.ts +0 -7
  1575. package/packages/omo-codex/plugin/components/comment-checker/dist/apply-patch.js +0 -173
  1576. package/packages/omo-codex/plugin/components/comment-checker/dist/codex-hook.d.ts +0 -22
  1577. package/packages/omo-codex/plugin/components/comment-checker/dist/codex-hook.js +0 -165
  1578. package/packages/omo-codex/plugin/components/comment-checker/dist/core-values.d.ts +0 -1
  1579. package/packages/omo-codex/plugin/components/comment-checker/dist/core-values.js +0 -1
  1580. package/packages/omo-codex/plugin/components/comment-checker/dist/core.d.ts +0 -5
  1581. package/packages/omo-codex/plugin/components/comment-checker/dist/core.js +0 -4
  1582. package/packages/omo-codex/plugin/components/comment-checker/dist/hook-input.d.ts +0 -6
  1583. package/packages/omo-codex/plugin/components/comment-checker/dist/hook-input.js +0 -10
  1584. package/packages/omo-codex/plugin/components/comment-checker/dist/record.d.ts +0 -2
  1585. package/packages/omo-codex/plugin/components/comment-checker/dist/record.js +0 -11
  1586. package/packages/omo-codex/plugin/components/comment-checker/dist/request-extractor.d.ts +0 -3
  1587. package/packages/omo-codex/plugin/components/comment-checker/dist/request-extractor.js +0 -104
  1588. package/packages/omo-codex/plugin/components/comment-checker/dist/runner.d.ts +0 -26
  1589. package/packages/omo-codex/plugin/components/comment-checker/dist/runner.js +0 -144
  1590. package/packages/omo-codex/plugin/components/comment-checker/dist/types.d.ts +0 -43
  1591. package/packages/omo-codex/plugin/components/comment-checker/dist/types.js +0 -1
  1592. package/packages/omo-codex/plugin/components/comment-checker/src/record.ts +0 -11
  1593. package/packages/omo-codex/plugin/components/rules/dist/codex-hook-options.d.ts +0 -5
  1594. package/packages/omo-codex/plugin/components/rules/dist/codex-hook-options.js +0 -1
  1595. package/packages/omo-codex/plugin/components/rules/dist/codex-hook.d.ts +0 -47
  1596. package/packages/omo-codex/plugin/components/rules/dist/codex-hook.js +0 -127
  1597. package/packages/omo-codex/plugin/components/rules/dist/config.d.ts +0 -2
  1598. package/packages/omo-codex/plugin/components/rules/dist/config.js +0 -100
  1599. package/packages/omo-codex/plugin/components/rules/dist/context-pressure.d.ts +0 -2
  1600. package/packages/omo-codex/plugin/components/rules/dist/context-pressure.js +0 -26
  1601. package/packages/omo-codex/plugin/components/rules/dist/debug-log.d.ts +0 -8
  1602. package/packages/omo-codex/plugin/components/rules/dist/debug-log.js +0 -36
  1603. package/packages/omo-codex/plugin/components/rules/dist/dynamic-target-fingerprints.d.ts +0 -7
  1604. package/packages/omo-codex/plugin/components/rules/dist/dynamic-target-fingerprints.js +0 -65
  1605. package/packages/omo-codex/plugin/components/rules/dist/event-budget.d.ts +0 -3
  1606. package/packages/omo-codex/plugin/components/rules/dist/event-budget.js +0 -14
  1607. package/packages/omo-codex/plugin/components/rules/dist/hook-output.d.ts +0 -2
  1608. package/packages/omo-codex/plugin/components/rules/dist/hook-output.js +0 -24
  1609. package/packages/omo-codex/plugin/components/rules/dist/path-utils.d.ts +0 -4
  1610. package/packages/omo-codex/plugin/components/rules/dist/path-utils.js +0 -24
  1611. package/packages/omo-codex/plugin/components/rules/dist/persistent-cache.d.ts +0 -13
  1612. package/packages/omo-codex/plugin/components/rules/dist/persistent-cache.js +0 -172
  1613. package/packages/omo-codex/plugin/components/rules/dist/post-compact-budget.d.ts +0 -6
  1614. package/packages/omo-codex/plugin/components/rules/dist/post-compact-budget.js +0 -74
  1615. package/packages/omo-codex/plugin/components/rules/dist/post-compact-claim.d.ts +0 -4
  1616. package/packages/omo-codex/plugin/components/rules/dist/post-compact-claim.js +0 -6
  1617. package/packages/omo-codex/plugin/components/rules/dist/post-compact-directive.d.ts +0 -1
  1618. package/packages/omo-codex/plugin/components/rules/dist/post-compact-directive.js +0 -32
  1619. package/packages/omo-codex/plugin/components/rules/dist/post-compact-state.d.ts +0 -13
  1620. package/packages/omo-codex/plugin/components/rules/dist/post-compact-state.js +0 -29
  1621. package/packages/omo-codex/plugin/components/rules/dist/rules/cache.d.ts +0 -9
  1622. package/packages/omo-codex/plugin/components/rules/dist/rules/cache.js +0 -51
  1623. package/packages/omo-codex/plugin/components/rules/dist/rules/constants.d.ts +0 -70
  1624. package/packages/omo-codex/plugin/components/rules/dist/rules/constants.js +0 -101
  1625. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-dynamic-cache.d.ts +0 -5
  1626. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-dynamic-cache.js +0 -60
  1627. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-dynamic-loader.d.ts +0 -6
  1628. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-dynamic-loader.js +0 -61
  1629. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-loader.d.ts +0 -7
  1630. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-loader.js +0 -60
  1631. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-paths.d.ts +0 -11
  1632. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-paths.js +0 -75
  1633. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-static-loader.d.ts +0 -6
  1634. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-static-loader.js +0 -29
  1635. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-types.d.ts +0 -44
  1636. package/packages/omo-codex/plugin/components/rules/dist/rules/engine-types.js +0 -1
  1637. package/packages/omo-codex/plugin/components/rules/dist/rules/engine.d.ts +0 -5
  1638. package/packages/omo-codex/plugin/components/rules/dist/rules/engine.js +0 -85
  1639. package/packages/omo-codex/plugin/components/rules/dist/rules/errors.d.ts +0 -6
  1640. package/packages/omo-codex/plugin/components/rules/dist/rules/errors.js +0 -12
  1641. package/packages/omo-codex/plugin/components/rules/dist/rules/finder-cache.d.ts +0 -14
  1642. package/packages/omo-codex/plugin/components/rules/dist/rules/finder-cache.js +0 -51
  1643. package/packages/omo-codex/plugin/components/rules/dist/rules/finder-paths.d.ts +0 -6
  1644. package/packages/omo-codex/plugin/components/rules/dist/rules/finder-paths.js +0 -33
  1645. package/packages/omo-codex/plugin/components/rules/dist/rules/finder-sources.d.ts +0 -5
  1646. package/packages/omo-codex/plugin/components/rules/dist/rules/finder-sources.js +0 -40
  1647. package/packages/omo-codex/plugin/components/rules/dist/rules/finder.d.ts +0 -28
  1648. package/packages/omo-codex/plugin/components/rules/dist/rules/finder.js +0 -146
  1649. package/packages/omo-codex/plugin/components/rules/dist/rules/formatter.d.ts +0 -7
  1650. package/packages/omo-codex/plugin/components/rules/dist/rules/formatter.js +0 -112
  1651. package/packages/omo-codex/plugin/components/rules/dist/rules/matcher.d.ts +0 -18
  1652. package/packages/omo-codex/plugin/components/rules/dist/rules/matcher.js +0 -93
  1653. package/packages/omo-codex/plugin/components/rules/dist/rules/ordering.d.ts +0 -3
  1654. package/packages/omo-codex/plugin/components/rules/dist/rules/ordering.js +0 -27
  1655. package/packages/omo-codex/plugin/components/rules/dist/rules/parser-frontmatter.d.ts +0 -7
  1656. package/packages/omo-codex/plugin/components/rules/dist/rules/parser-frontmatter.js +0 -30
  1657. package/packages/omo-codex/plugin/components/rules/dist/rules/parser-yaml.d.ts +0 -2
  1658. package/packages/omo-codex/plugin/components/rules/dist/rules/parser-yaml.js +0 -237
  1659. package/packages/omo-codex/plugin/components/rules/dist/rules/parser.d.ts +0 -3
  1660. package/packages/omo-codex/plugin/components/rules/dist/rules/parser.js +0 -31
  1661. package/packages/omo-codex/plugin/components/rules/dist/rules/plugin-root.d.ts +0 -1
  1662. package/packages/omo-codex/plugin/components/rules/dist/rules/plugin-root.js +0 -48
  1663. package/packages/omo-codex/plugin/components/rules/dist/rules/project-root.d.ts +0 -1
  1664. package/packages/omo-codex/plugin/components/rules/dist/rules/project-root.js +0 -23
  1665. package/packages/omo-codex/plugin/components/rules/dist/rules/scanner.d.ts +0 -14
  1666. package/packages/omo-codex/plugin/components/rules/dist/rules/scanner.js +0 -111
  1667. package/packages/omo-codex/plugin/components/rules/dist/rules/sources.d.ts +0 -3
  1668. package/packages/omo-codex/plugin/components/rules/dist/rules/sources.js +0 -9
  1669. package/packages/omo-codex/plugin/components/rules/dist/rules/truncator.d.ts +0 -18
  1670. package/packages/omo-codex/plugin/components/rules/dist/rules/truncator.js +0 -59
  1671. package/packages/omo-codex/plugin/components/rules/dist/rules/types.d.ts +0 -126
  1672. package/packages/omo-codex/plugin/components/rules/dist/rules/types.js +0 -8
  1673. package/packages/omo-codex/plugin/components/rules/dist/rules-engine-factory.d.ts +0 -6
  1674. package/packages/omo-codex/plugin/components/rules/dist/rules-engine-factory.js +0 -20
  1675. package/packages/omo-codex/plugin/components/rules/dist/session-state-lock.d.ts +0 -3
  1676. package/packages/omo-codex/plugin/components/rules/dist/session-state-lock.js +0 -41
  1677. package/packages/omo-codex/plugin/components/rules/dist/sparkshell-awareness.d.ts +0 -10
  1678. package/packages/omo-codex/plugin/components/rules/dist/sparkshell-awareness.js +0 -90
  1679. package/packages/omo-codex/plugin/components/rules/dist/static-injection.d.ts +0 -3
  1680. package/packages/omo-codex/plugin/components/rules/dist/static-injection.js +0 -128
  1681. package/packages/omo-codex/plugin/components/rules/dist/tool-paths.d.ts +0 -6
  1682. package/packages/omo-codex/plugin/components/rules/dist/tool-paths.js +0 -168
  1683. package/packages/omo-codex/plugin/components/rules/dist/transcript-rule-filter.d.ts +0 -4
  1684. package/packages/omo-codex/plugin/components/rules/dist/transcript-rule-filter.js +0 -49
  1685. package/packages/omo-codex/plugin/components/rules/dist/transcript-search.d.ts +0 -4
  1686. package/packages/omo-codex/plugin/components/rules/dist/transcript-search.js +0 -91
  1687. package/packages/omo-codex/plugin/components/rules/src/rules/cache.ts +0 -64
  1688. package/packages/omo-codex/plugin/components/rules/src/rules/constants.ts +0 -122
  1689. package/packages/omo-codex/plugin/components/rules/src/rules/engine-dynamic-cache.ts +0 -87
  1690. package/packages/omo-codex/plugin/components/rules/src/rules/engine-dynamic-loader.ts +0 -94
  1691. package/packages/omo-codex/plugin/components/rules/src/rules/engine-loader.ts +0 -84
  1692. package/packages/omo-codex/plugin/components/rules/src/rules/engine-paths.ts +0 -103
  1693. package/packages/omo-codex/plugin/components/rules/src/rules/engine-static-loader.ts +0 -43
  1694. package/packages/omo-codex/plugin/components/rules/src/rules/engine-types.ts +0 -45
  1695. package/packages/omo-codex/plugin/components/rules/src/rules/engine.ts +0 -123
  1696. package/packages/omo-codex/plugin/components/rules/src/rules/errors.ts +0 -13
  1697. package/packages/omo-codex/plugin/components/rules/src/rules/finder-cache.ts +0 -73
  1698. package/packages/omo-codex/plugin/components/rules/src/rules/finder-paths.ts +0 -47
  1699. package/packages/omo-codex/plugin/components/rules/src/rules/finder-sources.ts +0 -45
  1700. package/packages/omo-codex/plugin/components/rules/src/rules/finder.ts +0 -220
  1701. package/packages/omo-codex/plugin/components/rules/src/rules/formatter.ts +0 -149
  1702. package/packages/omo-codex/plugin/components/rules/src/rules/matcher.ts +0 -142
  1703. package/packages/omo-codex/plugin/components/rules/src/rules/ordering.ts +0 -33
  1704. package/packages/omo-codex/plugin/components/rules/src/rules/parser-frontmatter.ts +0 -39
  1705. package/packages/omo-codex/plugin/components/rules/src/rules/parser-yaml.ts +0 -271
  1706. package/packages/omo-codex/plugin/components/rules/src/rules/parser.ts +0 -35
  1707. package/packages/omo-codex/plugin/components/rules/src/rules/plugin-root.ts +0 -55
  1708. package/packages/omo-codex/plugin/components/rules/src/rules/project-root.ts +0 -30
  1709. package/packages/omo-codex/plugin/components/rules/src/rules/scanner.ts +0 -162
  1710. package/packages/omo-codex/plugin/components/rules/src/rules/sources.ts +0 -13
  1711. package/packages/omo-codex/plugin/components/rules/src/rules/truncator.ts +0 -84
  1712. package/packages/omo-codex/plugin/components/rules/src/rules/types.ts +0 -141
  1713. package/packages/omo-codex/plugin/components/start-work-continuation/dist/boulder-reader.d.ts +0 -16
  1714. package/packages/omo-codex/plugin/components/start-work-continuation/dist/boulder-reader.js +0 -146
  1715. package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.d.ts +0 -2
  1716. package/packages/omo-codex/plugin/components/start-work-continuation/dist/codex-hook.d.ts +0 -2
  1717. package/packages/omo-codex/plugin/components/start-work-continuation/dist/codex-hook.js +0 -80
  1718. package/packages/omo-codex/plugin/components/start-work-continuation/dist/directive.d.ts +0 -1
  1719. package/packages/omo-codex/plugin/components/start-work-continuation/dist/directive.js +0 -2
  1720. package/packages/omo-codex/plugin/components/start-work-continuation/dist/index.d.ts +0 -5
  1721. package/packages/omo-codex/plugin/components/start-work-continuation/dist/index.js +0 -3
  1722. package/packages/omo-codex/plugin/components/start-work-continuation/dist/types.d.ts +0 -20
  1723. package/packages/omo-codex/plugin/components/start-work-continuation/dist/types.js +0 -1
  1724. package/packages/omo-codex/plugin/components/telemetry/dist/atomic-write.d.ts +0 -1
  1725. package/packages/omo-codex/plugin/components/telemetry/dist/atomic-write.js +0 -18
  1726. package/packages/omo-codex/plugin/components/telemetry/dist/cli.d.ts +0 -2
  1727. package/packages/omo-codex/plugin/components/telemetry/dist/codex-hook.d.ts +0 -15
  1728. package/packages/omo-codex/plugin/components/telemetry/dist/codex-hook.js +0 -42
  1729. package/packages/omo-codex/plugin/components/telemetry/dist/data-path.d.ts +0 -10
  1730. package/packages/omo-codex/plugin/components/telemetry/dist/data-path.js +0 -35
  1731. package/packages/omo-codex/plugin/components/telemetry/dist/diagnostics.d.ts +0 -12
  1732. package/packages/omo-codex/plugin/components/telemetry/dist/diagnostics.js +0 -108
  1733. package/packages/omo-codex/plugin/components/telemetry/dist/env-flags.d.ts +0 -4
  1734. package/packages/omo-codex/plugin/components/telemetry/dist/env-flags.js +0 -31
  1735. package/packages/omo-codex/plugin/components/telemetry/dist/posthog-activity-state.d.ts +0 -8
  1736. package/packages/omo-codex/plugin/components/telemetry/dist/posthog-activity-state.js +0 -68
  1737. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.d.ts +0 -21
  1738. package/packages/omo-codex/plugin/components/telemetry/dist/product-identity.d.ts +0 -8
  1739. package/packages/omo-codex/plugin/components/telemetry/dist/product-identity.js +0 -29
  1740. package/packages/omo-codex/plugin/components/telemetry/src/atomic-write.ts +0 -22
  1741. package/packages/omo-codex/plugin/components/telemetry/src/data-path.ts +0 -45
  1742. package/packages/omo-codex/plugin/components/telemetry/src/diagnostics.ts +0 -154
  1743. package/packages/omo-codex/plugin/components/telemetry/src/env-flags.ts +0 -43
  1744. package/packages/omo-codex/plugin/components/telemetry/src/posthog-activity-state.ts +0 -97
  1745. package/packages/omo-codex/plugin/components/ultrawork/agents/codex-ultrawork-reviewer.toml +0 -21
  1746. package/packages/omo-codex/plugin/components/ultrawork/dist/cli.d.ts +0 -2
  1747. package/packages/omo-codex/plugin/components/ultrawork/dist/codex-hook.d.ts +0 -7
  1748. package/packages/omo-codex/plugin/components/ultrawork/dist/codex-hook.js +0 -122
  1749. package/packages/omo-codex/plugin/components/ultrawork/dist/directive.d.ts +0 -1
  1750. package/packages/omo-codex/plugin/components/ultrawork/dist/directive.js +0 -2
  1751. package/packages/omo-codex/plugin/skills/frontend-ui-ux/SKILL.md +0 -77
  1752. package/packages/omo-codex/plugin/test/start-work-skill.test.mjs +0 -85
  1753. package/packages/omo-codex/plugin/test/ulw-plan-skill.test.mjs +0 -43
  1754. package/packages/omo-codex/scripts/install/agent-source-roots.mjs +0 -13
  1755. package/packages/omo-codex/scripts/install/agents.mjs +0 -154
  1756. package/packages/omo-codex/scripts/install/bin-dir.mjs +0 -20
  1757. package/packages/omo-codex/scripts/install/bin-links.mjs +0 -276
  1758. package/packages/omo-codex/scripts/install/cache.mjs +0 -295
  1759. package/packages/omo-codex/scripts/install/cached-marketplace-manifest.mjs +0 -21
  1760. package/packages/omo-codex/scripts/install/cli-args.mjs +0 -149
  1761. package/packages/omo-codex/scripts/install/command-shim.mjs +0 -1
  1762. package/packages/omo-codex/scripts/install/config.mjs +0 -257
  1763. package/packages/omo-codex/scripts/install/delegated-command.mjs +0 -29
  1764. package/packages/omo-codex/scripts/install/git-bash-mcp-env.mjs +0 -28
  1765. package/packages/omo-codex/scripts/install/git-bash.mjs +0 -107
  1766. package/packages/omo-codex/scripts/install/git-bash.test.mjs +0 -209
  1767. package/packages/omo-codex/scripts/install/hook-targets.mjs +0 -46
  1768. package/packages/omo-codex/scripts/install/hook-trust.mjs +0 -84
  1769. package/packages/omo-codex/scripts/install/lazycodex-version-stamp.mjs +0 -102
  1770. package/packages/omo-codex/scripts/install/legacy-bins.mjs +0 -66
  1771. package/packages/omo-codex/scripts/install/marketplace.mjs +0 -104
  1772. package/packages/omo-codex/scripts/install/mcp-runtime-cache.mjs +0 -81
  1773. package/packages/omo-codex/scripts/install/model-catalog.mjs +0 -74
  1774. package/packages/omo-codex/scripts/install/multi-agent-v2-config.mjs +0 -50
  1775. package/packages/omo-codex/scripts/install/permissions.d.mts +0 -1
  1776. package/packages/omo-codex/scripts/install/permissions.mjs +0 -37
  1777. package/packages/omo-codex/scripts/install/process.mjs +0 -22
  1778. package/packages/omo-codex/scripts/install/project-local-cleanup.mjs +0 -228
  1779. package/packages/omo-codex/scripts/install/reasoning-config.mjs +0 -72
  1780. package/packages/omo-codex/scripts/install/snapshot.mjs +0 -53
  1781. package/packages/omo-codex/scripts/install/source-package-build.mjs +0 -20
  1782. package/packages/omo-codex/scripts/install/toml-editor.mjs +0 -64
  1783. package/packages/omo-codex/scripts/install/utils.mjs +0 -15
  1784. package/packages/omo-codex/scripts/sync-telemetry-component.mjs +0 -116
  1785. package/packages/omo-codex/scripts/sync-telemetry-component.test.mjs +0 -94
  1786. package/packages/shared-skills/skills/frontend-ui-ux/SKILL.md +0 -77
  1787. /package/dist/cli/doctor/{doctor-target.d.ts → framework/doctor-target.d.ts} +0 -0
  1788. /package/dist/cli/doctor/{format-default.d.ts → framework/format-default.d.ts} +0 -0
  1789. /package/dist/cli/doctor/{format-shared.d.ts → framework/format-shared.d.ts} +0 -0
  1790. /package/dist/cli/doctor/{format-status.d.ts → framework/format-status.d.ts} +0 -0
  1791. /package/dist/cli/doctor/{format-verbose.d.ts → framework/format-verbose.d.ts} +0 -0
  1792. /package/dist/cli/doctor/{formatter.d.ts → framework/formatter.d.ts} +0 -0
  1793. /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/empty-messages.d.ts +0 -0
  1794. /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/empty-text.d.ts +0 -0
  1795. /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/message-dir.d.ts +0 -0
  1796. /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/part-id.d.ts +0 -0
  1797. /package/dist/hooks/{session-recovery → anthropic-context-window-limit-recovery}/storage/text-part-injector.d.ts +0 -0
  1798. /package/packages/omo-codex/plugin/components/{comment-checker → codegraph}/dist/cli.d.ts +0 -0
  1799. /package/packages/omo-codex/plugin/components/{rules → lazycodex-executor-verify}/dist/cli.d.ts +0 -0
@@ -3,17 +3,217 @@
3
3
  // src/cli.ts
4
4
  import { argv, stderr } from "node:process";
5
5
 
6
- // src/proxy.ts
7
- import { createInterface } from "node:readline";
6
+ // ../mcp-stdio-core/src/record.ts
7
+ function isPlainRecord(value) {
8
+ return typeof value === "object" && value !== null && !Array.isArray(value);
9
+ }
10
+ // ../mcp-stdio-core/src/responses.ts
11
+ function successResponse(id, result) {
12
+ return { jsonrpc: "2.0", id, result };
13
+ }
14
+ function errorResponse(id, code, message, data) {
15
+ return { jsonrpc: "2.0", id, error: data === undefined ? { code, message } : { code, message, data } };
16
+ }
17
+ function jsonRpcId(value) {
18
+ return typeof value === "string" || typeof value === "number" || value === null ? value : null;
19
+ }
20
+ function messageFromError(error) {
21
+ return error instanceof Error ? error.message : String(error);
22
+ }
23
+ // ../mcp-stdio-core/src/transport.ts
24
+ var HEADER_SEPARATOR = Buffer.from(`\r
25
+ \r
26
+ `);
27
+ async function* readStdioJsonRpcMessages(input) {
28
+ let buffer = Buffer.alloc(0);
29
+ for await (const chunk of input) {
30
+ buffer = Buffer.concat([buffer, bufferFromChunk(chunk)]);
31
+ while (true) {
32
+ const result = readNextMessage(buffer);
33
+ if (result.kind === "incomplete")
34
+ break;
35
+ buffer = result.remaining;
36
+ if (result.message)
37
+ yield result.message;
38
+ }
39
+ }
40
+ const trailing = buffer.toString("utf8").trim();
41
+ if (trailing.length > 0) {
42
+ yield parseJsonPayload(trailing, "line");
43
+ }
44
+ }
45
+ function writeStdioJsonRpcResponse(output, response, responseMode) {
46
+ const body = JSON.stringify(response);
47
+ if (responseMode === "framed") {
48
+ output.write(`Content-Length: ${Buffer.byteLength(body, "utf8")}\r
49
+ \r
50
+ ${body}`);
51
+ return;
52
+ }
53
+ output.write(`${body}
54
+ `);
55
+ }
56
+ function readNextMessage(buffer) {
57
+ if (buffer.length === 0)
58
+ return { kind: "incomplete" };
59
+ return startsWithContentLength(buffer) ? readFramedMessage(buffer) : readLineMessage(buffer);
60
+ }
61
+ function readLineMessage(buffer) {
62
+ const newlineIndex = buffer.indexOf(10);
63
+ if (newlineIndex === -1)
64
+ return { kind: "incomplete" };
65
+ const line = buffer.subarray(0, newlineIndex).toString("utf8").replace(/\r$/, "");
66
+ if (line.trim().length === 0) {
67
+ return { kind: "complete", remaining: buffer.subarray(newlineIndex + 1) };
68
+ }
69
+ return {
70
+ kind: "complete",
71
+ message: parseJsonPayload(line, "line"),
72
+ remaining: buffer.subarray(newlineIndex + 1)
73
+ };
74
+ }
75
+ function readFramedMessage(buffer) {
76
+ const separatorIndex = buffer.indexOf(HEADER_SEPARATOR);
77
+ if (separatorIndex === -1)
78
+ return { kind: "incomplete" };
79
+ const headers = buffer.subarray(0, separatorIndex).toString("ascii");
80
+ const contentLength = parseContentLength(headers);
81
+ const bodyStart = separatorIndex + HEADER_SEPARATOR.length;
82
+ if (contentLength === undefined) {
83
+ return {
84
+ kind: "complete",
85
+ message: {
86
+ kind: "parse_error",
87
+ message: "Missing or invalid Content-Length header",
88
+ responseMode: "framed"
89
+ },
90
+ remaining: buffer.subarray(bodyStart)
91
+ };
92
+ }
93
+ const bodyEnd = bodyStart + contentLength;
94
+ if (buffer.length < bodyEnd)
95
+ return { kind: "incomplete" };
96
+ const body = buffer.subarray(bodyStart, bodyEnd).toString("utf8");
97
+ return {
98
+ kind: "complete",
99
+ message: parseJsonPayload(body, "framed"),
100
+ remaining: buffer.subarray(bodyEnd)
101
+ };
102
+ }
103
+ function startsWithContentLength(buffer) {
104
+ const prefix = buffer.subarray(0, "content-length:".length).toString("ascii").toLowerCase();
105
+ return prefix === "content-length:";
106
+ }
107
+ function parseContentLength(headers) {
108
+ for (const line of headers.split(`\r
109
+ `)) {
110
+ const match = /^content-length:\s*(\d+)$/i.exec(line);
111
+ if (match === null)
112
+ continue;
113
+ const value = match[1];
114
+ if (value === undefined)
115
+ return;
116
+ return Number(value);
117
+ }
118
+ return;
119
+ }
120
+ function parseJsonPayload(payload, responseMode) {
121
+ try {
122
+ return { kind: "request", payload: JSON.parse(payload), responseMode };
123
+ } catch (error) {
124
+ return { kind: "parse_error", message: error instanceof Error ? error.message : String(error), responseMode };
125
+ }
126
+ }
127
+ function bufferFromChunk(chunk) {
128
+ if (Buffer.isBuffer(chunk))
129
+ return chunk;
130
+ if (typeof chunk === "string")
131
+ return Buffer.from(chunk);
132
+ throw new TypeError(`Unsupported stdio chunk type: ${typeof chunk}`);
133
+ }
8
134
 
9
- // ../lsp-tools-mcp/dist/tools.js
10
- import { resolve as resolve5 } from "node:path";
135
+ // ../mcp-stdio-core/src/server.ts
136
+ var DEFAULT_IDLE_TIMEOUT_MS = 10 * 60000;
137
+ var noopLog = () => {};
138
+ async function runJsonRpcStdioServer(config) {
139
+ const log = config.log ?? noopLog;
140
+ const idleTimeoutMs = config.idleTimeoutMs ?? DEFAULT_IDLE_TIMEOUT_MS;
141
+ const idleTimer = createIdleTimer(idleTimeoutMs, log, config.onIdleTimeout);
142
+ log("stdio_started", { cwd: process.cwd(), idle_timeout_ms: idleTimeoutMs });
143
+ idleTimer.arm();
144
+ try {
145
+ for await (const message of readStdioJsonRpcMessages(config.input)) {
146
+ if (idleTimer.closed())
147
+ break;
148
+ idleTimer.arm();
149
+ if (message.kind === "parse_error") {
150
+ handleParseError(message, config, log);
151
+ continue;
152
+ }
153
+ await handleRequest(message, config, log);
154
+ }
155
+ } finally {
156
+ idleTimer.clear();
157
+ log("stdio_stopped");
158
+ }
159
+ }
160
+ function handleParseError(message, config, log) {
161
+ log("parse_error", { message: message.message });
162
+ const response = config.parseErrorResponse?.(message.message) ?? errorResponse(null, -32700, "Parse error", message.message);
163
+ if (response !== undefined) {
164
+ writeStdioJsonRpcResponse(config.output, response, message.responseMode);
165
+ }
166
+ }
167
+ async function handleRequest(message, config, log) {
168
+ const parsed = message.payload;
169
+ const id = isPlainRecord(parsed) ? jsonRpcId(parsed["id"]) : null;
170
+ const method = isPlainRecord(parsed) && typeof parsed["method"] === "string" ? parsed["method"] : null;
171
+ log("request", { id: id === null ? null : String(id), method });
172
+ try {
173
+ const response = await config.handler(parsed, config.handlerOptions);
174
+ if (response === undefined)
175
+ return;
176
+ writeStdioJsonRpcResponse(config.output, response, message.responseMode);
177
+ log("response", { id: String(response.id), method, is_error: response.error !== undefined });
178
+ } catch (error) {
179
+ if (config.onHandlerError === undefined)
180
+ throw error;
181
+ config.onHandlerError(error);
182
+ }
183
+ }
184
+ function createIdleTimer(idleTimeoutMs, log, onIdleTimeout) {
185
+ let timer = null;
186
+ let isClosed = false;
187
+ return {
188
+ arm: () => {
189
+ if (timer !== null)
190
+ clearTimeout(timer);
191
+ if (idleTimeoutMs <= 0)
192
+ return;
193
+ timer = setTimeout(() => {
194
+ isClosed = true;
195
+ log("idle_timeout", { idle_timeout_ms: idleTimeoutMs });
196
+ onIdleTimeout?.();
197
+ }, idleTimeoutMs);
198
+ timer.unref();
199
+ },
200
+ clear: () => {
201
+ if (timer === null)
202
+ return;
203
+ clearTimeout(timer);
204
+ timer = null;
205
+ },
206
+ closed: () => isClosed
207
+ };
208
+ }
209
+ // ../lsp-core/src/tools/diagnostics.ts
210
+ import { resolve as resolve4 } from "node:path";
11
211
 
12
- // ../lsp-tools-mcp/dist/lsp/client-wrapper.js
212
+ // ../lsp-core/src/lsp/client-wrapper.ts
13
213
  import { existsSync as existsSync5, statSync as statSync2 } from "node:fs";
14
214
  import { dirname as dirname2, join as join5, resolve as resolve2 } from "node:path";
15
215
 
16
- // ../lsp-tools-mcp/dist/request-context.js
216
+ // ../lsp-core/src/request-context.ts
17
217
  import { AsyncLocalStorage } from "node:async_hooks";
18
218
  var storage = new AsyncLocalStorage;
19
219
  function runWithRequestContext(context, fn) {
@@ -29,7 +229,7 @@ function contextEnv(key) {
29
229
  return process.env[key];
30
230
  }
31
231
 
32
- // ../lsp-tools-mcp/dist/lsp/effective-extension.js
232
+ // ../lsp-core/src/lsp/effective-extension.ts
33
233
  import { basename, extname } from "node:path";
34
234
  var BASENAME_EXTENSIONS = {
35
235
  Dockerfile: ".dockerfile",
@@ -39,17 +239,24 @@ function effectiveExtension(filePath) {
39
239
  return BASENAME_EXTENSIONS[basename(filePath)] ?? extname(filePath);
40
240
  }
41
241
 
42
- // ../lsp-tools-mcp/dist/lsp/errors.js
242
+ // ../lsp-core/src/lsp/errors.ts
43
243
  class LspConnectionClosedError extends Error {
244
+ serverId;
245
+ root;
246
+ name = "LspConnectionClosedError";
44
247
  constructor(serverId, root, message) {
45
248
  super(message ?? `LSP connection closed for ${serverId} at ${root}`);
46
249
  this.serverId = serverId;
47
250
  this.root = root;
48
- this.name = "LspConnectionClosedError";
49
251
  }
50
252
  }
51
253
 
52
254
  class LspProcessExitedError extends Error {
255
+ serverId;
256
+ root;
257
+ exitCode;
258
+ stderrTail;
259
+ name = "LspProcessExitedError";
53
260
  constructor(serverId, root, exitCode, stderrTail) {
54
261
  const stderrSuffix = stderrTail ? `
55
262
  stderr tail: ${stderrTail}` : "";
@@ -58,54 +265,47 @@ stderr tail: ${stderrTail}` : "";
58
265
  this.root = root;
59
266
  this.exitCode = exitCode;
60
267
  this.stderrTail = stderrTail;
61
- this.name = "LspProcessExitedError";
62
268
  }
63
269
  }
64
270
 
65
271
  class LspRequestTimeoutError extends Error {
272
+ method;
273
+ stderrTail;
274
+ name = "LspRequestTimeoutError";
66
275
  constructor(method, stderrTail) {
67
276
  const stderrSuffix = stderrTail ? `
68
277
  recent stderr: ${stderrTail}` : "";
69
278
  super(`LSP request timeout (method: ${method})${stderrSuffix}`);
70
279
  this.method = method;
71
280
  this.stderrTail = stderrTail;
72
- this.name = "LspRequestTimeoutError";
73
281
  }
74
282
  }
75
283
 
76
284
  class LspInvalidPathError extends Error {
77
- constructor() {
78
- super(...arguments);
79
- this.name = "LspInvalidPathError";
80
- }
285
+ name = "LspInvalidPathError";
81
286
  }
82
287
 
83
288
  class LspServerLookupError extends Error {
84
- constructor() {
85
- super(...arguments);
86
- this.name = "LspServerLookupError";
87
- }
289
+ name = "LspServerLookupError";
88
290
  }
89
291
 
90
292
  class LspServerInitializingError extends Error {
293
+ originalError;
294
+ name = "LspServerInitializingError";
91
295
  constructor(originalError) {
92
296
  super(`LSP server is still initializing. Please retry in a few seconds. Original error: ${originalError.message}`);
93
297
  this.originalError = originalError;
94
- this.name = "LspServerInitializingError";
95
298
  }
96
299
  }
97
300
 
98
301
  class LspProcessSpawnError extends Error {
99
- constructor() {
100
- super(...arguments);
101
- this.name = "LspProcessSpawnError";
102
- }
302
+ name = "LspProcessSpawnError";
103
303
  }
104
304
  function isLspDeadConnectionError(err) {
105
305
  return err instanceof LspConnectionClosedError || err instanceof LspProcessExitedError;
106
306
  }
107
307
 
108
- // ../lsp-tools-mcp/dist/lsp/cleanup-errors.js
308
+ // ../lsp-core/src/lsp/cleanup-errors.ts
109
309
  function reportBestEffortCleanupError(operation, error) {
110
310
  if (process.env["CODEX_LSP_DEBUG_CLEANUP"] !== "1")
111
311
  return;
@@ -113,15 +313,15 @@ function reportBestEffortCleanupError(operation, error) {
113
313
  console.error(`[codex-lsp] ignored ${operation} failure during cleanup: ${message}`);
114
314
  }
115
315
 
116
- // ../lsp-tools-mcp/dist/lsp/client.js
316
+ // ../lsp-core/src/lsp/client.ts
117
317
  import { readFileSync } from "node:fs";
118
318
  import { resolve } from "node:path";
119
319
  import { pathToFileURL as pathToFileURL2 } from "node:url";
120
320
 
121
- // ../lsp-tools-mcp/dist/lsp/connection.js
321
+ // ../lsp-core/src/lsp/connection.ts
122
322
  import { pathToFileURL } from "node:url";
123
323
 
124
- // ../lsp-tools-mcp/dist/lsp/constants.js
324
+ // ../lsp-core/src/lsp/constants.ts
125
325
  var DEFAULT_MAX_REFERENCES = 200;
126
326
  var DEFAULT_MAX_SYMBOLS = 200;
127
327
  var DEFAULT_MAX_DIAGNOSTICS = 200;
@@ -133,8 +333,8 @@ var REAPER_INTERVAL_MS = 60000;
133
333
  var STOP_HARD_KILL_TIMEOUT_MS = 5000;
134
334
  var STOP_SIGKILL_GRACE_MS = 1000;
135
335
 
136
- // ../lsp-tools-mcp/dist/lsp/json-rpc-connection.js
137
- var HEADER_SEPARATOR = `\r
336
+ // ../lsp-core/src/lsp/json-rpc-connection.ts
337
+ var HEADER_SEPARATOR2 = `\r
138
338
  \r
139
339
  `;
140
340
  var PARSE_ERROR = -32700;
@@ -143,31 +343,20 @@ var METHOD_NOT_FOUND = -32601;
143
343
  var INTERNAL_ERROR = -32603;
144
344
 
145
345
  class JsonRpcConnection {
346
+ reader;
347
+ writer;
348
+ pendingRequests = new Map;
349
+ notificationHandlers = new Map;
350
+ requestHandlers = new Map;
351
+ closeHandlers = [];
352
+ errorHandlers = [];
353
+ inputBuffer = Buffer.alloc(0);
354
+ nextRequestId = 1;
355
+ listening = false;
356
+ disposed = false;
146
357
  constructor(reader, writer) {
147
358
  this.reader = reader;
148
359
  this.writer = writer;
149
- this.pendingRequests = new Map;
150
- this.notificationHandlers = new Map;
151
- this.requestHandlers = new Map;
152
- this.closeHandlers = [];
153
- this.errorHandlers = [];
154
- this.inputBuffer = Buffer.alloc(0);
155
- this.nextRequestId = 1;
156
- this.listening = false;
157
- this.disposed = false;
158
- this.handleData = (chunk) => {
159
- const chunkBuffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, "utf8");
160
- this.inputBuffer = Buffer.concat([this.inputBuffer, chunkBuffer]);
161
- this.drainInputBuffer();
162
- };
163
- this.handleClose = () => {
164
- for (const handler of this.closeHandlers) {
165
- handler();
166
- }
167
- };
168
- this.handleStreamError = (error) => {
169
- this.emitError(error);
170
- };
171
360
  }
172
361
  listen() {
173
362
  if (this.listening)
@@ -235,19 +424,32 @@ class JsonRpcConnection {
235
424
  this.notificationHandlers.clear();
236
425
  this.requestHandlers.clear();
237
426
  }
427
+ handleData = (chunk) => {
428
+ const chunkBuffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, "utf8");
429
+ this.inputBuffer = Buffer.concat([this.inputBuffer, chunkBuffer]);
430
+ this.drainInputBuffer();
431
+ };
432
+ handleClose = () => {
433
+ for (const handler of this.closeHandlers) {
434
+ handler();
435
+ }
436
+ };
437
+ handleStreamError = (error) => {
438
+ this.emitError(error);
439
+ };
238
440
  drainInputBuffer() {
239
441
  while (true) {
240
- const headerEnd = this.inputBuffer.indexOf(HEADER_SEPARATOR);
442
+ const headerEnd = this.inputBuffer.indexOf(HEADER_SEPARATOR2);
241
443
  if (headerEnd === -1)
242
444
  return;
243
445
  const headers = this.inputBuffer.subarray(0, headerEnd).toString("ascii");
244
- const contentLength = parseContentLength(headers);
446
+ const contentLength = parseContentLength2(headers);
245
447
  if (contentLength === null) {
246
448
  this.inputBuffer = Buffer.alloc(0);
247
449
  this.emitError(new Error("JSON-RPC message is missing Content-Length header"));
248
450
  return;
249
451
  }
250
- const bodyStart = headerEnd + Buffer.byteLength(HEADER_SEPARATOR);
452
+ const bodyStart = headerEnd + Buffer.byteLength(HEADER_SEPARATOR2);
251
453
  const bodyEnd = bodyStart + contentLength;
252
454
  if (this.inputBuffer.length < bodyEnd)
253
455
  return;
@@ -345,7 +547,7 @@ ${body}`;
345
547
  }
346
548
  }
347
549
  }
348
- function parseContentLength(headers) {
550
+ function parseContentLength2(headers) {
349
551
  for (const line of headers.split(`\r
350
552
  `)) {
351
553
  const separatorIndex = line.indexOf(":");
@@ -382,7 +584,7 @@ function toError(error) {
382
584
  return error instanceof Error ? error : new Error(String(error));
383
585
  }
384
586
 
385
- // ../lsp-tools-mcp/dist/lsp/process.js
587
+ // ../lsp-core/src/lsp/process.ts
386
588
  import { spawn, spawnSync } from "node:child_process";
387
589
  import { existsSync, statSync } from "node:fs";
388
590
  import { delimiter, join } from "node:path";
@@ -528,7 +730,7 @@ function spawnProcess(command, options) {
528
730
  return wrap(proc);
529
731
  }
530
732
 
531
- // ../lsp-tools-mcp/dist/lsp/transport.js
733
+ // ../lsp-core/src/lsp/transport.ts
532
734
  function isRecord(value) {
533
735
  return typeof value === "object" && value !== null && !Array.isArray(value);
534
736
  }
@@ -552,14 +754,20 @@ function parseDiagnosticsParams(params) {
552
754
  }
553
755
 
554
756
  class LspClientTransport {
555
- constructor(root, server) {
757
+ root;
758
+ server;
759
+ proc = null;
760
+ connection = null;
761
+ stderrBuffer = [];
762
+ processExited = false;
763
+ diagnosticsStore = new Map;
764
+ requestTimeoutMs;
765
+ initializeTimeoutMs;
766
+ constructor(root, server2, timeouts = {}) {
556
767
  this.root = root;
557
- this.server = server;
558
- this.proc = null;
559
- this.connection = null;
560
- this.stderrBuffer = [];
561
- this.processExited = false;
562
- this.diagnosticsStore = new Map;
768
+ this.server = server2;
769
+ this.requestTimeoutMs = timeouts.requestTimeoutMs ?? REQUEST_TIMEOUT_MS;
770
+ this.initializeTimeoutMs = timeouts.initializeTimeoutMs ?? INIT_TIMEOUT_MS;
563
771
  }
564
772
  pid() {
565
773
  return this.proc?.pid;
@@ -634,13 +842,14 @@ class LspClientTransport {
634
842
  `);
635
843
  throw new LspProcessExitedError(this.server.id, this.root, this.proc?.exitCode ?? null, stderrTail || undefined);
636
844
  }
845
+ const timeoutMs = args[1]?.timeoutMs ?? this.requestTimeoutMs;
637
846
  let timeoutHandle = null;
638
847
  const timeoutPromise = new Promise((_, reject) => {
639
848
  timeoutHandle = setTimeout(() => {
640
849
  const stderrTail = this.stderrBuffer.slice(-5).join(`
641
850
  `);
642
851
  reject(new LspRequestTimeoutError(method, stderrTail || undefined));
643
- }, REQUEST_TIMEOUT_MS);
852
+ }, timeoutMs);
644
853
  });
645
854
  try {
646
855
  const requestPromise = args.length === 0 ? this.connection.sendRequest(method) : this.connection.sendRequest(method, args[0]);
@@ -755,7 +964,7 @@ function isPosition(value) {
755
964
  return isRecord(value) && typeof value["line"] === "number" && typeof value["character"] === "number";
756
965
  }
757
966
 
758
- // ../lsp-tools-mcp/dist/lsp/connection.js
967
+ // ../lsp-core/src/lsp/connection.ts
759
968
  var INITIALIZE_SETTLE_MS = 300;
760
969
 
761
970
  class LspClientConnection extends LspClientTransport {
@@ -812,7 +1021,7 @@ class LspClientConnection extends LspClientTransport {
812
1021
  }
813
1022
  },
814
1023
  initializationOptions: this.server.initialization
815
- });
1024
+ }, { timeoutMs: this.initializeTimeoutMs });
816
1025
  await this.sendNotification("initialized");
817
1026
  await this.sendNotification("workspace/didChangeConfiguration", {
818
1027
  settings: { json: { validate: { enable: true } } }
@@ -821,7 +1030,7 @@ class LspClientConnection extends LspClientTransport {
821
1030
  }
822
1031
  }
823
1032
 
824
- // ../lsp-tools-mcp/dist/lsp/language-mappings.js
1033
+ // ../lsp-core/src/lsp/language-mappings.ts
825
1034
  var SYMBOL_KIND_MAP = {
826
1035
  1: "File",
827
1036
  2: "Module",
@@ -993,18 +1202,15 @@ function getLanguageId(ext) {
993
1202
  return EXT_TO_LANG[ext] ?? "plaintext";
994
1203
  }
995
1204
 
996
- // ../lsp-tools-mcp/dist/lsp/client.js
1205
+ // ../lsp-core/src/lsp/client.ts
997
1206
  var POST_OPEN_DELAY_MS = 1000;
998
1207
  var POST_DIAGNOSTICS_WAIT_MS = 500;
999
1208
 
1000
1209
  class LspClient extends LspClientConnection {
1001
- constructor() {
1002
- super(...arguments);
1003
- this.openedFiles = new Set;
1004
- this.documentVersions = new Map;
1005
- this.lastSyncedText = new Map;
1006
- this.diagnosticPullErrors = [];
1007
- }
1210
+ openedFiles = new Set;
1211
+ documentVersions = new Map;
1212
+ lastSyncedText = new Map;
1213
+ diagnosticPullErrors = [];
1008
1214
  getDiagnosticPullErrors() {
1009
1215
  return this.diagnosticPullErrors;
1010
1216
  }
@@ -1119,7 +1325,7 @@ class LspClient extends LspClientConnection {
1119
1325
  }
1120
1326
  }
1121
1327
 
1122
- // ../lsp-tools-mcp/dist/lsp/process-signal-cleanup.js
1328
+ // ../lsp-core/src/lsp/process-signal-cleanup.ts
1123
1329
  function installProcessSignalCleanup(cleanup) {
1124
1330
  const signals = process.platform === "win32" ? ["SIGINT", "SIGTERM", "SIGBREAK"] : ["SIGINT", "SIGTERM"];
1125
1331
  const handler = () => {
@@ -1137,7 +1343,7 @@ function installProcessSignalCleanup(cleanup) {
1137
1343
  };
1138
1344
  }
1139
1345
 
1140
- // ../lsp-tools-mcp/dist/lsp/manager.js
1346
+ // ../lsp-core/src/lsp/manager.ts
1141
1347
  async function stopClientBestEffort(client) {
1142
1348
  try {
1143
1349
  await client.stop();
@@ -1178,15 +1384,20 @@ function awaitWithSignal(promise, signal) {
1178
1384
  }
1179
1385
 
1180
1386
  class LspManager {
1387
+ clients = new Map;
1388
+ reaperHandle = null;
1389
+ signalDisposer = null;
1390
+ disposed = false;
1391
+ idleTimeoutMs;
1392
+ initTimeoutMs;
1393
+ reaperIntervalMs;
1394
+ clientFactory;
1395
+ now;
1181
1396
  constructor(options = {}) {
1182
- this.clients = new Map;
1183
- this.reaperHandle = null;
1184
- this.signalDisposer = null;
1185
- this.disposed = false;
1186
1397
  this.idleTimeoutMs = options.idleTimeoutMs ?? IDLE_TIMEOUT_MS;
1187
1398
  this.initTimeoutMs = options.initTimeoutMs ?? INIT_TIMEOUT_MS;
1188
1399
  this.reaperIntervalMs = options.reaperIntervalMs ?? REAPER_INTERVAL_MS;
1189
- this.clientFactory = options.clientFactory ?? ((root, server) => new LspClient(root, server));
1400
+ this.clientFactory = options.clientFactory ?? ((root, server2) => new LspClient(root, server2));
1190
1401
  this.now = options.now ?? (() => Date.now());
1191
1402
  this.startReaper();
1192
1403
  this.signalDisposer = installProcessSignalCleanup(() => this.stopAll());
@@ -1224,12 +1435,12 @@ class LspManager {
1224
1435
  await stopClientBestEffort(managed.client);
1225
1436
  }
1226
1437
  }
1227
- async getClient(root, server, signal) {
1438
+ async getClient(root, server2, signal) {
1228
1439
  if (this.disposed) {
1229
1440
  throw new Error("LspManager has been disposed");
1230
1441
  }
1231
1442
  signal?.throwIfAborted();
1232
- const key = this.getKey(root, server.id);
1443
+ const key = this.getKey(root, server2.id);
1233
1444
  let managed = this.clients.get(key);
1234
1445
  if (managed) {
1235
1446
  const t = this.now();
@@ -1258,13 +1469,13 @@ class LspManager {
1258
1469
  if (!managed.client.isAlive()) {
1259
1470
  await stopClientBestEffort(managed.client);
1260
1471
  this.clients.delete(key);
1261
- return this.getClient(root, server, signal);
1472
+ return this.getClient(root, server2, signal);
1262
1473
  }
1263
1474
  managed.refCount++;
1264
1475
  managed.lastUsedAt = this.now();
1265
1476
  return managed.client;
1266
1477
  }
1267
- const client = this.clientFactory(root, server);
1478
+ const client = this.clientFactory(root, server2);
1268
1479
  const initStartedAt = this.now();
1269
1480
  const initPromise = (async () => {
1270
1481
  await client.start();
@@ -1320,13 +1531,13 @@ class LspManager {
1320
1531
  this.clients.delete(key);
1321
1532
  stopClientBestEffort(managed.client);
1322
1533
  }
1323
- warmupClient(root, server) {
1534
+ warmupClient(root, server2) {
1324
1535
  if (this.disposed)
1325
1536
  return;
1326
- const key = this.getKey(root, server.id);
1537
+ const key = this.getKey(root, server2.id);
1327
1538
  if (this.clients.has(key))
1328
1539
  return;
1329
- const client = this.clientFactory(root, server);
1540
+ const client = this.clientFactory(root, server2);
1330
1541
  const initStartedAt = this.now();
1331
1542
  const initPromise = (async () => {
1332
1543
  await client.start();
@@ -1414,7 +1625,7 @@ async function disposeDefaultLspManager() {
1414
1625
  }
1415
1626
  }
1416
1627
 
1417
- // ../lsp-tools-mcp/dist/lsp/server-install-state.js
1628
+ // ../lsp-core/src/lsp/server-install-state.ts
1418
1629
  import { existsSync as existsSync2, mkdirSync, readFileSync as readFileSync2, renameSync, writeFileSync } from "node:fs";
1419
1630
  import { homedir } from "node:os";
1420
1631
  import { dirname, isAbsolute, join as join2 } from "node:path";
@@ -1466,12 +1677,12 @@ function isRecord2(value) {
1466
1677
  return typeof value === "object" && value !== null && !Array.isArray(value);
1467
1678
  }
1468
1679
 
1469
- // ../lsp-tools-mcp/dist/lsp/config-loader.js
1680
+ // ../lsp-core/src/lsp/config-loader.ts
1470
1681
  import { existsSync as existsSync3, readFileSync as readFileSync3 } from "node:fs";
1471
1682
  import { homedir as homedir2 } from "node:os";
1472
1683
  import { delimiter as delimiter2, isAbsolute as isAbsolute2, join as join3 } from "node:path";
1473
1684
 
1474
- // ../lsp-tools-mcp/dist/lsp/server-definitions.js
1685
+ // ../lsp-core/src/lsp/server-definitions.ts
1475
1686
  var LSP_INSTALL_HINTS = {
1476
1687
  typescript: "npm install -g typescript-language-server typescript",
1477
1688
  deno: "Install Deno from https://deno.land",
@@ -1569,7 +1780,7 @@ var BUILTIN_SERVERS = {
1569
1780
  zls: { command: ["zls"], extensions: [".zig", ".zon"] },
1570
1781
  csharp: { command: ["csharp-ls"], extensions: [".cs"] },
1571
1782
  fsharp: { command: ["fsautocomplete"], extensions: [".fs", ".fsi", ".fsx", ".fsscript"] },
1572
- "sourcekit-lsp": { command: ["sourcekit-lsp"], extensions: [".swift", ".objc", ".objcpp"] },
1783
+ "sourcekit-lsp": { command: ["sourcekit-lsp"], extensions: [".swift", ".m", ".mm"] },
1573
1784
  rust: { command: ["rust-analyzer"], extensions: [".rs"] },
1574
1785
  clangd: {
1575
1786
  command: ["clangd", "--background-index", "--clang-tidy"],
@@ -1607,7 +1818,7 @@ var BUILTIN_SERVERS = {
1607
1818
  command: ["haskell-language-server-wrapper", "--lsp"],
1608
1819
  extensions: [".hs", ".lhs"]
1609
1820
  },
1610
- "kotlin-ls": { command: ["kotlin-lsp"], extensions: [".kt", ".kts"] },
1821
+ "kotlin-ls": { command: ["kotlin-lsp", "--stdio"], extensions: [".kt", ".kts"] },
1611
1822
  julials: {
1612
1823
  command: ["julia", "--startup-file=no", "--history-file=no", "-e", "using LanguageServer; runserver()"],
1613
1824
  extensions: [".jl"]
@@ -1618,7 +1829,7 @@ var BUILTIN_SERVERS = {
1618
1829
  }
1619
1830
  };
1620
1831
 
1621
- // ../lsp-tools-mcp/dist/lsp/config-loader.js
1832
+ // ../lsp-core/src/lsp/config-loader.ts
1622
1833
  function resolveProjectConfigPath(path) {
1623
1834
  return isAbsolute2(path) ? path : join3(contextCwd(), path);
1624
1835
  }
@@ -1683,10 +1894,10 @@ function getMergedServers() {
1683
1894
  }
1684
1895
  if (seen.has(id))
1685
1896
  continue;
1686
- const server = createServerFromEntry(id, entry, source);
1687
- if (!server)
1897
+ const server2 = createServerFromEntry(id, entry, source);
1898
+ if (!server2)
1688
1899
  continue;
1689
- servers.push(server);
1900
+ servers.push(server2);
1690
1901
  seen.add(id);
1691
1902
  }
1692
1903
  }
@@ -1718,7 +1929,7 @@ function createServerFromEntry(id, entry, source) {
1718
1929
  if (source === "project") {
1719
1930
  if (!builtin)
1720
1931
  return null;
1721
- const server2 = createServer({
1932
+ const server3 = createServer({
1722
1933
  id,
1723
1934
  command: builtin.command,
1724
1935
  extensions: entry.extensions ?? builtin.extensions,
@@ -1726,35 +1937,35 @@ function createServerFromEntry(id, entry, source) {
1726
1937
  source
1727
1938
  });
1728
1939
  if (entry.initialization !== undefined) {
1729
- server2.initialization = entry.initialization;
1940
+ server3.initialization = entry.initialization;
1730
1941
  }
1731
- return server2;
1942
+ return server3;
1732
1943
  }
1733
1944
  if (entry.command && entry.extensions) {
1734
- const server2 = createServer({
1945
+ const server3 = createServer({
1735
1946
  id,
1736
1947
  command: entry.command,
1737
1948
  extensions: entry.extensions,
1738
1949
  priority: entry.priority ?? 0,
1739
1950
  source
1740
1951
  });
1741
- applyOptionalServerFields(server2, entry);
1742
- return server2;
1952
+ applyOptionalServerFields(server3, entry);
1953
+ return server3;
1743
1954
  }
1744
1955
  if (!builtin)
1745
1956
  return null;
1746
- const server = createServer({
1957
+ const server2 = createServer({
1747
1958
  id,
1748
1959
  command: entry.command ?? builtin.command,
1749
1960
  extensions: entry.extensions ?? builtin.extensions,
1750
1961
  priority: entry.priority ?? 0,
1751
1962
  source
1752
1963
  });
1753
- applyOptionalServerFields(server, entry);
1754
- return server;
1964
+ applyOptionalServerFields(server2, entry);
1965
+ return server2;
1755
1966
  }
1756
1967
  function createServer(input) {
1757
- const server = {
1968
+ const server2 = {
1758
1969
  id: input.id,
1759
1970
  command: input.command,
1760
1971
  extensions: input.extensions,
@@ -1762,19 +1973,19 @@ function createServer(input) {
1762
1973
  source: input.source
1763
1974
  };
1764
1975
  if (input.env !== undefined) {
1765
- server.env = input.env;
1976
+ server2.env = input.env;
1766
1977
  }
1767
1978
  if (input.initialization !== undefined) {
1768
- server.initialization = input.initialization;
1979
+ server2.initialization = input.initialization;
1769
1980
  }
1770
- return server;
1981
+ return server2;
1771
1982
  }
1772
- function applyOptionalServerFields(server, entry) {
1983
+ function applyOptionalServerFields(server2, entry) {
1773
1984
  if (entry.env !== undefined) {
1774
- server.env = entry.env;
1985
+ server2.env = entry.env;
1775
1986
  }
1776
1987
  if (entry.initialization !== undefined) {
1777
- server.initialization = entry.initialization;
1988
+ server2.initialization = entry.initialization;
1778
1989
  }
1779
1990
  }
1780
1991
  function isConfigJson(value) {
@@ -1823,7 +2034,7 @@ function getDisabledServerIds() {
1823
2034
  return disabled;
1824
2035
  }
1825
2036
 
1826
- // ../lsp-tools-mcp/dist/lsp/server-installation.js
2037
+ // ../lsp-core/src/lsp/server-installation.ts
1827
2038
  import { existsSync as existsSync4 } from "node:fs";
1828
2039
  import { delimiter as delimiter3, join as join4 } from "node:path";
1829
2040
  function isServerInstalled(command, _workingDirectory) {
@@ -1864,24 +2075,24 @@ function isServerInstalled(command, _workingDirectory) {
1864
2075
  return false;
1865
2076
  }
1866
2077
 
1867
- // ../lsp-tools-mcp/dist/lsp/server-resolution.js
2078
+ // ../lsp-core/src/lsp/server-resolution.ts
1868
2079
  function findServerForExtension(ext) {
1869
2080
  const servers = getMergedServers();
1870
- for (const server of servers) {
1871
- if (server.extensions.includes(ext) && isServerInstalled(server.command)) {
2081
+ for (const server2 of servers) {
2082
+ if (server2.extensions.includes(ext) && isServerInstalled(server2.command)) {
1872
2083
  const resolvedServer = {
1873
- id: server.id,
1874
- command: server.command,
1875
- extensions: server.extensions,
1876
- priority: server.priority
2084
+ id: server2.id,
2085
+ command: server2.command,
2086
+ extensions: server2.extensions,
2087
+ priority: server2.priority
1877
2088
  };
1878
- if (server.env !== undefined) {
2089
+ if (server2.env !== undefined) {
1879
2090
  return {
1880
2091
  status: "found",
1881
2092
  server: {
1882
2093
  ...resolvedServer,
1883
- env: server.env,
1884
- ...server.initialization === undefined ? {} : { initialization: server.initialization }
2094
+ env: server2.env,
2095
+ ...server2.initialization === undefined ? {} : { initialization: server2.initialization }
1885
2096
  }
1886
2097
  };
1887
2098
  }
@@ -1889,20 +2100,20 @@ function findServerForExtension(ext) {
1889
2100
  status: "found",
1890
2101
  server: {
1891
2102
  ...resolvedServer,
1892
- ...server.initialization === undefined ? {} : { initialization: server.initialization }
2103
+ ...server2.initialization === undefined ? {} : { initialization: server2.initialization }
1893
2104
  }
1894
2105
  };
1895
2106
  }
1896
2107
  }
1897
- for (const server of servers) {
1898
- if (server.extensions.includes(ext)) {
1899
- const installHint = LSP_INSTALL_HINTS[server.id] ?? `Install '${server.command[0]}' and ensure it's in your PATH`;
2108
+ for (const server2 of servers) {
2109
+ if (server2.extensions.includes(ext)) {
2110
+ const installHint = LSP_INSTALL_HINTS[server2.id] ?? `Install '${server2.command[0]}' and ensure it's in your PATH`;
1900
2111
  return {
1901
2112
  status: "not_installed",
1902
2113
  server: {
1903
- id: server.id,
1904
- command: server.command,
1905
- extensions: server.extensions
2114
+ id: server2.id,
2115
+ command: server2.command,
2116
+ extensions: server2.extensions
1906
2117
  },
1907
2118
  installHint
1908
2119
  };
@@ -1920,18 +2131,18 @@ function getAllServers() {
1920
2131
  const disabled = getDisabledServerIds();
1921
2132
  const result = [];
1922
2133
  const seen = new Set;
1923
- for (const server of servers) {
1924
- if (seen.has(server.id))
2134
+ for (const server2 of servers) {
2135
+ if (seen.has(server2.id))
1925
2136
  continue;
1926
2137
  result.push({
1927
- id: server.id,
1928
- installed: isServerInstalled(server.command),
1929
- extensions: server.extensions,
2138
+ id: server2.id,
2139
+ installed: isServerInstalled(server2.command),
2140
+ extensions: server2.extensions,
1930
2141
  disabled: false,
1931
- source: server.source,
1932
- priority: server.priority
2142
+ source: server2.source,
2143
+ priority: server2.priority
1933
2144
  });
1934
- seen.add(server.id);
2145
+ seen.add(server2.id);
1935
2146
  }
1936
2147
  for (const id of disabled) {
1937
2148
  if (seen.has(id))
@@ -1949,7 +2160,7 @@ function getAllServers() {
1949
2160
  return result;
1950
2161
  }
1951
2162
 
1952
- // ../lsp-tools-mcp/dist/lsp/client-wrapper.js
2163
+ // ../lsp-core/src/lsp/client-wrapper.ts
1953
2164
  var WORKSPACE_MARKERS = [".git", "package.json", "pyproject.toml", "Cargo.toml", "go.mod", "pom.xml", "build.gradle"];
1954
2165
  function isDirectoryPath(filePath) {
1955
2166
  try {
@@ -1998,16 +2209,16 @@ function formatServerLookupError(result) {
1998
2209
  `);
1999
2210
  }
2000
2211
  function formatNotInstalled(result) {
2001
- const { server, installHint } = result;
2002
- const extensions = server.extensions.join(", ");
2003
- const decision = loadInstallDecision(server.id)?.decision;
2212
+ const { server: server2, installHint } = result;
2213
+ const extensions = server2.extensions.join(", ");
2214
+ const decision = loadInstallDecision(server2.id)?.decision;
2004
2215
  if (decision === "declined") {
2005
- return `LSP server '${server.id}' (${extensions}) is NOT INSTALLED; user previously declined installation — proceed without LSP.`;
2216
+ return `LSP server '${server2.id}' (${extensions}) is NOT INSTALLED; user previously declined installation — proceed without LSP.`;
2006
2217
  }
2007
2218
  const header = [
2008
- `LSP server '${server.id}' for ${extensions} is NOT INSTALLED.`,
2219
+ `LSP server '${server2.id}' for ${extensions} is NOT INSTALLED.`,
2009
2220
  "",
2010
- `Command not found: ${server.command[0]}`,
2221
+ `Command not found: ${server2.command[0]}`,
2011
2222
  ""
2012
2223
  ];
2013
2224
  if (decision === "allowed") {
@@ -2026,7 +2237,7 @@ function formatNotInstalled(result) {
2026
2237
  "ACTION REQUIRED — ASK THE USER whether to install this LSP server.",
2027
2238
  "- If the user agrees: run the install command above, then retry this tool.",
2028
2239
  "- If the user declines, OR has NOT explicitly asked for LSP installation:",
2029
- ` call lsp_install_decision { server_id: "${server.id}", decision: "declined" },`,
2240
+ ` call lsp_install_decision { server_id: "${server2.id}", decision: "declined" },`,
2030
2241
  " then ignore this message and proceed WITHOUT LSP."
2031
2242
  ].join(`
2032
2243
  `);
@@ -2049,36 +2260,36 @@ async function withLspClient(filePath, fn, toolName, options = {}) {
2049
2260
  if (result.status !== "found") {
2050
2261
  throw new LspServerLookupError(formatServerLookupError(result));
2051
2262
  }
2052
- const server = result.server;
2263
+ const server2 = result.server;
2053
2264
  const root = findWorkspaceRoot(absPath);
2054
2265
  const manager = options.manager ?? getLspManager();
2055
2266
  const acquireAndCall = async (allowRetry) => {
2056
- const client = await manager.getClient(root, server, options.signal);
2267
+ const client = await manager.getClient(root, server2, options.signal);
2057
2268
  try {
2058
2269
  return await fn(client, root);
2059
2270
  } catch (err) {
2060
2271
  if (allowRetry && READ_ONLY_RETRY_TOOLS.has(toolName) && isLspDeadConnectionError(err)) {
2061
- manager.invalidateClient(root, server.id, client);
2272
+ manager.invalidateClient(root, server2.id, client);
2062
2273
  return acquireAndCall(false);
2063
2274
  }
2064
2275
  if (err instanceof LspRequestTimeoutError) {
2065
- if (manager.isServerInitializing(root, server.id)) {
2276
+ if (manager.isServerInitializing(root, server2.id)) {
2066
2277
  throw new LspServerInitializingError(err);
2067
2278
  }
2068
2279
  }
2069
2280
  throw err;
2070
2281
  } finally {
2071
- manager.releaseClient(root, server.id);
2282
+ manager.releaseClient(root, server2.id);
2072
2283
  }
2073
2284
  };
2074
2285
  return acquireAndCall(true);
2075
2286
  }
2076
2287
 
2077
- // ../lsp-tools-mcp/dist/lsp/directory-diagnostics.js
2288
+ // ../lsp-core/src/lsp/directory-diagnostics.ts
2078
2289
  import { existsSync as existsSync6, lstatSync, readdirSync } from "node:fs";
2079
2290
  import { join as join6, resolve as resolve3 } from "node:path";
2080
2291
 
2081
- // ../lsp-tools-mcp/dist/lsp/formatters.js
2292
+ // ../lsp-core/src/lsp/formatters.ts
2082
2293
  import { fileURLToPath } from "node:url";
2083
2294
  var DIAGNOSTIC_SEVERITY_FILTERS = {
2084
2295
  error: 1,
@@ -2186,7 +2397,7 @@ function formatApplyResult(result) {
2186
2397
  `);
2187
2398
  }
2188
2399
 
2189
- // ../lsp-tools-mcp/dist/lsp/directory-diagnostics.js
2400
+ // ../lsp-core/src/lsp/directory-diagnostics.ts
2190
2401
  var SKIP_DIRECTORIES = new Set(["node_modules", ".git", "dist", "build", ".next", "out"]);
2191
2402
  function collectFilesWithExtension(dir, extension, maxFiles) {
2192
2403
  const files = [];
@@ -2235,7 +2446,7 @@ async function aggregateDiagnosticsForDirectory(directory, extension, severity,
2235
2446
  if (serverResult.status !== "found") {
2236
2447
  throw new LspServerLookupError(formatServerLookupError(serverResult));
2237
2448
  }
2238
- const server = serverResult.server;
2449
+ const server2 = serverResult.server;
2239
2450
  const allFiles = collectFilesWithExtension(absDir, extension, maxFiles + 1);
2240
2451
  const wasCapped = allFiles.length > maxFiles;
2241
2452
  const filesToProcess = allFiles.slice(0, maxFiles);
@@ -2252,7 +2463,7 @@ async function aggregateDiagnosticsForDirectory(directory, extension, severity,
2252
2463
  const manager = getLspManager();
2253
2464
  const allDiagnostics = [];
2254
2465
  const fileErrors = [];
2255
- const client = await manager.getClient(root, server);
2466
+ const client = await manager.getClient(root, server2);
2256
2467
  try {
2257
2468
  for (const file of filesToProcess) {
2258
2469
  try {
@@ -2270,7 +2481,7 @@ async function aggregateDiagnosticsForDirectory(directory, extension, severity,
2270
2481
  }
2271
2482
  }
2272
2483
  } finally {
2273
- manager.releaseClient(root, server.id);
2484
+ manager.releaseClient(root, server2.id);
2274
2485
  }
2275
2486
  const displayDiagnostics = allDiagnostics.slice(0, DEFAULT_MAX_DIAGNOSTICS);
2276
2487
  const wasDiagCapped = allDiagnostics.length > DEFAULT_MAX_DIAGNOSTICS;
@@ -2300,7 +2511,7 @@ async function aggregateDiagnosticsForDirectory(directory, extension, severity,
2300
2511
  `);
2301
2512
  }
2302
2513
 
2303
- // ../lsp-tools-mcp/dist/lsp/infer-extension.js
2514
+ // ../lsp-core/src/lsp/infer-extension.ts
2304
2515
  import { lstatSync as lstatSync2, readdirSync as readdirSync2 } from "node:fs";
2305
2516
  import { join as join7 } from "node:path";
2306
2517
  var SKIP_DIRECTORIES2 = new Set(["node_modules", ".git", "dist", "build", ".next", "out"]);
@@ -2356,75 +2567,329 @@ function inferExtensionFromDirectory(directory) {
2356
2567
  return maxExt || null;
2357
2568
  }
2358
2569
 
2359
- // ../lsp-tools-mcp/dist/lsp/workspace-edit.js
2360
- import { existsSync as existsSync7, readFileSync as readFileSync4, realpathSync, unlinkSync, writeFileSync as writeFileSync2 } from "node:fs";
2361
- import { dirname as dirname3, isAbsolute as isAbsolute3, relative, resolve as resolve4 } from "node:path";
2362
- import { fileURLToPath as fileURLToPath2 } from "node:url";
2570
+ // ../lsp-core/src/lsp/utils.ts
2571
+ var RUST_SRC_REPAIR_MESSAGE = [
2572
+ "rust-analyzer exited while loading Rust standard library sources.",
2573
+ "",
2574
+ "Repair rust-src for the active toolchain:",
2575
+ " rustup component remove rust-src",
2576
+ " rustup component add rust-src"
2577
+ ];
2363
2578
  function errorMessage(error) {
2364
2579
  return error instanceof Error ? error.message : String(error);
2365
2580
  }
2366
- function isPathInsideWorkspace(filePath, workspaceRoot) {
2367
- const relativePath = relative(workspaceRoot, filePath);
2368
- return relativePath === "" || !relativePath.startsWith("..") && !isAbsolute3(relativePath);
2581
+ function formatKnownLspStartupFailure(error) {
2582
+ if (!(error instanceof LspProcessExitedError))
2583
+ return null;
2584
+ if (error.serverId !== "rust")
2585
+ return null;
2586
+ const details = error.stderrTail ?? error.message;
2587
+ const lowerDetails = details.toLowerCase();
2588
+ const isRustSrcFailure = lowerDetails.includes("rust-src") && (lowerDetails.includes("failed to install component") || lowerDetails.includes("detected conflict") || lowerDetails.includes("can't load standard library") || lowerDetails.includes("try installing") || lowerDetails.includes("sysroot"));
2589
+ if (!isRustSrcFailure)
2590
+ return null;
2591
+ return [...RUST_SRC_REPAIR_MESSAGE, "", "Original stderr tail:", details].join(`
2592
+ `);
2369
2593
  }
2370
- function realpathForValidation(filePath) {
2371
- if (existsSync7(filePath))
2372
- return realpathSync(filePath);
2373
- const parent = dirname3(filePath);
2374
- return resolve4(realpathSync(parent), relative(parent, filePath));
2594
+ function handleMissingDependencyError(error) {
2595
+ const knownStartupFailure = formatKnownLspStartupFailure(error);
2596
+ if (knownStartupFailure)
2597
+ return knownStartupFailure;
2598
+ const message = errorMessage(error);
2599
+ return message.includes("NOT INSTALLED") || message.includes("No LSP server configured") ? message : null;
2375
2600
  }
2376
- function uriToWorkspacePath(uri, workspaceRoot) {
2377
- let filePath;
2378
- try {
2379
- filePath = fileURLToPath2(uri);
2380
- } catch (error) {
2381
- return { success: false, error: `non-file URI ${uri}: ${errorMessage(error)}` };
2601
+ // ../lsp-core/src/missing-dependency-result.ts
2602
+ function missingDependencyResult(error, details) {
2603
+ const message = handleMissingDependencyError(error);
2604
+ if (!message)
2605
+ return null;
2606
+ return {
2607
+ content: [{ type: "text", text: message }],
2608
+ details: {
2609
+ ...details,
2610
+ error: message,
2611
+ errorKind: "missing_dependency"
2612
+ }
2613
+ };
2614
+ }
2615
+
2616
+ // ../lsp-core/src/tools/parameters.ts
2617
+ function isRecord4(value) {
2618
+ return typeof value === "object" && value !== null && !Array.isArray(value);
2619
+ }
2620
+ function requireString(params, key) {
2621
+ const value = params[key];
2622
+ if (typeof value !== "string" || value.length === 0) {
2623
+ throw new Error(`Missing required string parameter '${key}'`);
2382
2624
  }
2383
- let validatedPath;
2384
- try {
2385
- validatedPath = realpathForValidation(filePath);
2386
- } catch (error) {
2387
- return { success: false, error: `${filePath}: ${errorMessage(error)}` };
2625
+ return value;
2626
+ }
2627
+ function optionalString(params, key) {
2628
+ const value = params[key];
2629
+ return typeof value === "string" ? value : undefined;
2630
+ }
2631
+ function requireNumber(params, key) {
2632
+ const value = params[key];
2633
+ if (typeof value !== "number" || !Number.isFinite(value)) {
2634
+ throw new Error(`Missing required number parameter '${key}'`);
2388
2635
  }
2389
- if (!isPathInsideWorkspace(validatedPath, workspaceRoot)) {
2390
- return { success: false, error: `${filePath}: outside workspace ${workspaceRoot}` };
2636
+ return value;
2637
+ }
2638
+ function optionalNumber(params, key) {
2639
+ const value = params[key];
2640
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
2641
+ }
2642
+ function optionalBoolean(params, key) {
2643
+ const value = params[key];
2644
+ return typeof value === "boolean" ? value : undefined;
2645
+ }
2646
+ function severityFilter(params) {
2647
+ const value = params["severity"];
2648
+ if (value === "error" || value === "warning" || value === "information" || value === "hint" || value === "all") {
2649
+ return value;
2391
2650
  }
2392
- return { success: true, path: filePath };
2651
+ return "all";
2393
2652
  }
2394
- function applyTextEditsToFile(filePath, edits) {
2653
+ function clientOptions(signal) {
2654
+ return signal === undefined ? {} : { signal };
2655
+ }
2656
+
2657
+ // ../lsp-core/src/tools/result.ts
2658
+ function text(text2, details, isError = false) {
2659
+ return { content: [{ type: "text", text: text2 }], details, isError };
2660
+ }
2661
+
2662
+ // ../lsp-core/src/tools/diagnostics.ts
2663
+ function asDiagnosticArray(result) {
2664
+ if (!result)
2665
+ return [];
2666
+ if (Array.isArray(result))
2667
+ return result;
2668
+ return result.items ?? [];
2669
+ }
2670
+ async function executeLspDiagnostics(params, signal) {
2671
+ const filePath = requireString(params, "filePath");
2672
+ const severity = severityFilter(params);
2395
2673
  try {
2396
- const content = readFileSync4(filePath, "utf-8");
2397
- const lines = content.split(`
2398
- `);
2399
- const sortedEdits = [...edits].sort((a, b) => {
2400
- if (b.range.start.line !== a.range.start.line) {
2401
- return b.range.start.line - a.range.start.line;
2402
- }
2403
- return b.range.start.character - a.range.start.character;
2404
- });
2405
- for (const edit of sortedEdits) {
2406
- const startLine = edit.range.start.line;
2407
- const startChar = edit.range.start.character;
2408
- const endLine = edit.range.end.line;
2409
- const endChar = edit.range.end.character;
2410
- if (startLine === endLine) {
2411
- const line = lines[startLine] ?? "";
2412
- lines[startLine] = line.substring(0, startChar) + edit.newText + line.substring(endChar);
2413
- } else {
2414
- const firstLine = lines[startLine] ?? "";
2415
- const lastLine = lines[endLine] ?? "";
2416
- const newContent = firstLine.substring(0, startChar) + edit.newText + lastLine.substring(endChar);
2417
- lines.splice(startLine, endLine - startLine + 1, ...newContent.split(`
2418
- `));
2674
+ const absPath = resolve4(contextCwd(), filePath);
2675
+ if (isDirectoryPath(absPath)) {
2676
+ const extension = inferExtensionFromDirectory(absPath);
2677
+ if (!extension) {
2678
+ const message = `No supported source files found in directory: ${absPath}`;
2679
+ const details3 = {
2680
+ filePath,
2681
+ severity,
2682
+ mode: "directory",
2683
+ diagnostics: [],
2684
+ totalDiagnostics: 0,
2685
+ truncated: false,
2686
+ error: message,
2687
+ errorKind: "no_files"
2688
+ };
2689
+ return text(message, details3);
2419
2690
  }
2691
+ const output2 = await aggregateDiagnosticsForDirectory(absPath, extension, severity);
2692
+ const details2 = {
2693
+ filePath,
2694
+ severity,
2695
+ mode: "directory",
2696
+ diagnostics: [],
2697
+ totalDiagnostics: 0,
2698
+ truncated: false
2699
+ };
2700
+ return text(output2, details2);
2420
2701
  }
2421
- writeFileSync2(filePath, lines.join(`
2422
- `), "utf-8");
2423
- return { success: true, editCount: edits.length };
2424
- } catch (err) {
2425
- return {
2426
- success: false,
2427
- editCount: 0,
2702
+ const result = await withLspClient(filePath, async (client) => client.diagnostics(filePath), "diagnostics", clientOptions(signal));
2703
+ const diagnostics = filterDiagnosticsBySeverity(asDiagnosticArray(result), severity);
2704
+ const total = diagnostics.length;
2705
+ const truncated = total > DEFAULT_MAX_DIAGNOSTICS;
2706
+ const limited = truncated ? diagnostics.slice(0, DEFAULT_MAX_DIAGNOSTICS) : diagnostics;
2707
+ const output = total === 0 ? "No diagnostics found" : [
2708
+ ...truncated ? [`Found ${total} diagnostics (showing first ${DEFAULT_MAX_DIAGNOSTICS}):`] : [],
2709
+ ...limited.map(formatDiagnostic)
2710
+ ].join(`
2711
+ `);
2712
+ const details = {
2713
+ filePath,
2714
+ severity,
2715
+ mode: "file",
2716
+ diagnostics: diagnostics.map((diagnostic) => ({ file: absPath, diagnostic })),
2717
+ totalDiagnostics: total,
2718
+ truncated
2719
+ };
2720
+ return text(output, details);
2721
+ } catch (error) {
2722
+ const missingDependency = missingDependencyResult(error, {
2723
+ filePath,
2724
+ severity,
2725
+ mode: "file",
2726
+ diagnostics: [],
2727
+ totalDiagnostics: 0,
2728
+ truncated: false
2729
+ });
2730
+ if (missingDependency)
2731
+ return missingDependency;
2732
+ throw error;
2733
+ }
2734
+ }
2735
+ // ../lsp-core/src/tools/install-decision.ts
2736
+ async function executeLspInstallDecision(params) {
2737
+ const serverId = requireString(params, "server_id");
2738
+ const decision = params["decision"];
2739
+ if (!isInstallDecision(decision)) {
2740
+ return text(`Invalid decision '${String(decision)}'. Expected "declined" or "allowed".`, { serverId, errorKind: "invalid_decision" }, true);
2741
+ }
2742
+ const serverIds = [...new Set(getMergedServers().map((server2) => server2.id))];
2743
+ if (!serverIds.includes(serverId)) {
2744
+ const preview = serverIds.slice(0, 20).join(", ");
2745
+ return text(`Unknown LSP server '${serverId}'. Known servers: ${preview}${serverIds.length > 20 ? "..." : ""}`, { serverId, errorKind: "unknown_server" }, true);
2746
+ }
2747
+ recordInstallDecision(serverId, decision);
2748
+ return text(`Recorded install decision for '${serverId}': ${decision}. ${decisionFollowUp(decision)}`, {
2749
+ serverId,
2750
+ decision
2751
+ });
2752
+ }
2753
+ function decisionFollowUp(decision) {
2754
+ return decision === "declined" ? "Future LSP lookups for this server stay quiet; proceed without LSP." : "Future LSP lookups keep install instructions without asking the user.";
2755
+ }
2756
+
2757
+ // ../lsp-core/src/tools/navigation.ts
2758
+ async function executeLspGotoDefinition(params, signal) {
2759
+ const filePath = requireString(params, "filePath");
2760
+ const line = requireNumber(params, "line");
2761
+ const character = requireNumber(params, "character");
2762
+ try {
2763
+ const result = await withLspClient(filePath, async (client) => client.definition(filePath, line, character), "definition", clientOptions(signal));
2764
+ const locations = !result ? [] : Array.isArray(result) ? result : [result];
2765
+ const details = { filePath, line, character, locations };
2766
+ if (locations.length === 0)
2767
+ return text("No definition found", details);
2768
+ return text(locations.map(formatLocation).join(`
2769
+ `), details);
2770
+ } catch (error) {
2771
+ const missingDependency = missingDependencyResult(error, {
2772
+ filePath,
2773
+ line,
2774
+ character,
2775
+ locations: []
2776
+ });
2777
+ if (missingDependency)
2778
+ return missingDependency;
2779
+ throw error;
2780
+ }
2781
+ }
2782
+ async function executeLspFindReferences(params, signal) {
2783
+ const filePath = requireString(params, "filePath");
2784
+ const line = requireNumber(params, "line");
2785
+ const character = requireNumber(params, "character");
2786
+ const includeDeclaration = optionalBoolean(params, "includeDeclaration") ?? true;
2787
+ try {
2788
+ const result = await withLspClient(filePath, async (client) => client.references(filePath, line, character, includeDeclaration), "references", clientOptions(signal));
2789
+ const references = Array.isArray(result) ? result : [];
2790
+ const total = references.length;
2791
+ const truncated = total > DEFAULT_MAX_REFERENCES;
2792
+ const limited = truncated ? references.slice(0, DEFAULT_MAX_REFERENCES) : references;
2793
+ const details = {
2794
+ filePath,
2795
+ line,
2796
+ character,
2797
+ references,
2798
+ totalReferences: total,
2799
+ truncated
2800
+ };
2801
+ if (total === 0)
2802
+ return text("No references found", details);
2803
+ const output = [
2804
+ ...truncated ? [`Found ${total} references (showing first ${DEFAULT_MAX_REFERENCES}):`] : [],
2805
+ ...limited.map(formatLocation)
2806
+ ].join(`
2807
+ `);
2808
+ return text(output, details);
2809
+ } catch (error) {
2810
+ const missingDependency = missingDependencyResult(error, {
2811
+ filePath,
2812
+ line,
2813
+ character,
2814
+ references: [],
2815
+ totalReferences: 0,
2816
+ truncated: false
2817
+ });
2818
+ if (missingDependency)
2819
+ return missingDependency;
2820
+ throw error;
2821
+ }
2822
+ }
2823
+
2824
+ // ../lsp-core/src/lsp/workspace-edit.ts
2825
+ import { existsSync as existsSync7, readFileSync as readFileSync4, realpathSync, unlinkSync, writeFileSync as writeFileSync2 } from "node:fs";
2826
+ import { dirname as dirname3, isAbsolute as isAbsolute3, relative, resolve as resolve5 } from "node:path";
2827
+ import { fileURLToPath as fileURLToPath2 } from "node:url";
2828
+ function errorMessage2(error) {
2829
+ return error instanceof Error ? error.message : String(error);
2830
+ }
2831
+ function isPathInsideWorkspace(filePath, workspaceRoot) {
2832
+ const relativePath = relative(workspaceRoot, filePath);
2833
+ return relativePath === "" || !relativePath.startsWith("..") && !isAbsolute3(relativePath);
2834
+ }
2835
+ function realpathForValidation(filePath) {
2836
+ if (existsSync7(filePath))
2837
+ return realpathSync(filePath);
2838
+ const parent = dirname3(filePath);
2839
+ return resolve5(realpathSync(parent), relative(parent, filePath));
2840
+ }
2841
+ function uriToWorkspacePath(uri, workspaceRoot) {
2842
+ let filePath;
2843
+ try {
2844
+ filePath = fileURLToPath2(uri);
2845
+ } catch (error) {
2846
+ return { success: false, error: `non-file URI ${uri}: ${errorMessage2(error)}` };
2847
+ }
2848
+ let validatedPath;
2849
+ try {
2850
+ validatedPath = realpathForValidation(filePath);
2851
+ } catch (error) {
2852
+ return { success: false, error: `${filePath}: ${errorMessage2(error)}` };
2853
+ }
2854
+ if (!isPathInsideWorkspace(validatedPath, workspaceRoot)) {
2855
+ return { success: false, error: `${filePath}: outside workspace ${workspaceRoot}` };
2856
+ }
2857
+ return { success: true, path: filePath };
2858
+ }
2859
+ function applyTextEditsToFile(filePath, edits) {
2860
+ try {
2861
+ const content = readFileSync4(filePath, "utf-8");
2862
+ const lines = content.split(`
2863
+ `);
2864
+ const sortedEdits = [...edits].sort((a, b) => {
2865
+ if (b.range.start.line !== a.range.start.line) {
2866
+ return b.range.start.line - a.range.start.line;
2867
+ }
2868
+ return b.range.start.character - a.range.start.character;
2869
+ });
2870
+ for (const edit of sortedEdits) {
2871
+ const startLine = edit.range.start.line;
2872
+ const startChar = edit.range.start.character;
2873
+ const endLine = edit.range.end.line;
2874
+ const endChar = edit.range.end.character;
2875
+ if (startLine === endLine) {
2876
+ const line = lines[startLine] ?? "";
2877
+ lines[startLine] = line.substring(0, startChar) + edit.newText + line.substring(endChar);
2878
+ } else {
2879
+ const firstLine = lines[startLine] ?? "";
2880
+ const lastLine = lines[endLine] ?? "";
2881
+ const newContent = firstLine.substring(0, startChar) + edit.newText + lastLine.substring(endChar);
2882
+ lines.splice(startLine, endLine - startLine + 1, ...newContent.split(`
2883
+ `));
2884
+ }
2885
+ }
2886
+ writeFileSync2(filePath, lines.join(`
2887
+ `), "utf-8");
2888
+ return { success: true, editCount: edits.length };
2889
+ } catch (err) {
2890
+ return {
2891
+ success: false,
2892
+ editCount: 0,
2428
2893
  error: err instanceof Error ? err.message : String(err)
2429
2894
  };
2430
2895
  }
@@ -2513,278 +2978,105 @@ function applyWorkspaceEdit(edit, options = {}) {
2513
2978
  continue;
2514
2979
  }
2515
2980
  unlinkSync(validatedPath.path);
2516
- result.filesModified.push(validatedPath.path);
2517
- } catch (err) {
2518
- result.success = false;
2519
- result.errors.push(`Delete ${change.uri}: ${String(err)}`);
2520
- }
2521
- }
2522
- }
2523
- }
2524
- return result;
2525
- }
2526
-
2527
- // ../lsp-tools-mcp/dist/lsp/startup-failure.js
2528
- var RUST_SRC_REPAIR_MESSAGE = [
2529
- "rust-analyzer exited while loading Rust standard library sources.",
2530
- "",
2531
- "Repair rust-src for the active toolchain:",
2532
- " rustup component remove rust-src",
2533
- " rustup component add rust-src"
2534
- ];
2535
- function errorMessage2(error) {
2536
- return error instanceof Error ? error.message : String(error);
2537
- }
2538
- function formatKnownLspStartupFailure(error) {
2539
- if (!(error instanceof LspProcessExitedError))
2540
- return null;
2541
- if (error.serverId !== "rust")
2542
- return null;
2543
- const details = error.stderrTail ?? error.message;
2544
- const lowerDetails = details.toLowerCase();
2545
- const isRustSrcFailure = lowerDetails.includes("rust-src") && (lowerDetails.includes("failed to install component") || lowerDetails.includes("detected conflict") || lowerDetails.includes("can't load standard library") || lowerDetails.includes("try installing") || lowerDetails.includes("sysroot"));
2546
- if (!isRustSrcFailure)
2547
- return null;
2548
- return [...RUST_SRC_REPAIR_MESSAGE, "", "Original stderr tail:", details].join(`
2549
- `);
2550
- }
2551
- function handleMissingDependencyError(error) {
2552
- const knownStartupFailure = formatKnownLspStartupFailure(error);
2553
- if (knownStartupFailure)
2554
- return knownStartupFailure;
2555
- const message = errorMessage2(error);
2556
- return message.includes("NOT INSTALLED") || message.includes("No LSP server configured") ? message : null;
2557
- }
2558
-
2559
- // ../lsp-tools-mcp/dist/missing-dependency-result.js
2560
- function missingDependencyResult(error, details) {
2561
- const message = handleMissingDependencyError(error);
2562
- if (!message)
2563
- return null;
2564
- return {
2565
- content: [{ type: "text", text: message }],
2566
- details: {
2567
- ...details,
2568
- error: message,
2569
- errorKind: "missing_dependency"
2570
- }
2571
- };
2572
- }
2573
-
2574
- // ../lsp-tools-mcp/dist/tools.js
2575
- var objectSchema = (properties, required = []) => ({
2576
- type: "object",
2577
- properties,
2578
- required
2579
- });
2580
- function text(text2, details, isError = false) {
2581
- return { content: [{ type: "text", text: text2 }], details, isError };
2582
- }
2583
- function isRecord4(value) {
2584
- return typeof value === "object" && value !== null && !Array.isArray(value);
2585
- }
2586
- function requireString(params, key) {
2587
- const value = params[key];
2588
- if (typeof value !== "string" || value.length === 0) {
2589
- throw new Error(`Missing required string parameter '${key}'`);
2590
- }
2591
- return value;
2592
- }
2593
- function optionalString(params, key) {
2594
- const value = params[key];
2595
- return typeof value === "string" ? value : undefined;
2596
- }
2597
- function requireNumber(params, key) {
2598
- const value = params[key];
2599
- if (typeof value !== "number" || !Number.isFinite(value)) {
2600
- throw new Error(`Missing required number parameter '${key}'`);
2601
- }
2602
- return value;
2603
- }
2604
- function optionalNumber(params, key) {
2605
- const value = params[key];
2606
- return typeof value === "number" && Number.isFinite(value) ? value : undefined;
2607
- }
2608
- function optionalBoolean(params, key) {
2609
- const value = params[key];
2610
- return typeof value === "boolean" ? value : undefined;
2611
- }
2612
- function isSeverityFilter(value) {
2613
- return value === "error" || value === "warning" || value === "information" || value === "hint" || value === "all";
2614
- }
2615
- function severityFilter(params) {
2616
- const value = params["severity"];
2617
- if (isSeverityFilter(value))
2618
- return value;
2619
- return "all";
2620
- }
2621
- function clientOptions(signal) {
2622
- return signal === undefined ? {} : { signal };
2623
- }
2624
- function asDiagnosticArray(result) {
2625
- if (!result)
2626
- return [];
2627
- if (Array.isArray(result))
2628
- return result;
2629
- return result.items ?? [];
2630
- }
2631
- function isDocumentSymbol(symbol) {
2632
- return "range" in symbol;
2633
- }
2634
- async function executeLspStatus() {
2635
- const servers = getAllServers();
2636
- const snapshots = getLspManager().getSnapshot();
2637
- const installed = servers.filter((server) => server.installed && !server.disabled);
2638
- const configuredLines = servers.map((server) => {
2639
- const state = server.disabled ? "disabled" : server.installed ? "installed" : "missing";
2640
- return `- ${server.id}: ${state}; source=${server.source}; extensions=${server.extensions.join(", ")}`;
2641
- });
2642
- const activeLines = snapshots.map((snapshot) => {
2643
- const state = snapshot.alive ? snapshot.isInitializing ? "initializing" : "alive" : "dead";
2644
- return `- ${snapshot.serverId}: ${state}; root=${snapshot.root}; refs=${snapshot.refCount}`;
2645
- });
2646
- const lines = [
2647
- `Configured LSP servers: ${servers.length}`,
2648
- `Installed LSP servers: ${installed.length}`,
2649
- "",
2650
- ...configuredLines,
2651
- "",
2652
- `Active LSP clients: ${snapshots.length}`,
2653
- ...activeLines
2654
- ];
2655
- return text(lines.join(`
2656
- `), { servers, snapshots });
2657
- }
2658
- async function executeLspDiagnostics(params, signal) {
2659
- const filePath = requireString(params, "filePath");
2660
- const severity = severityFilter(params);
2661
- try {
2662
- const absPath = resolve5(contextCwd(), filePath);
2663
- if (isDirectoryPath(absPath)) {
2664
- const extension = inferExtensionFromDirectory(absPath);
2665
- if (!extension) {
2666
- const message = `No supported source files found in directory: ${absPath}`;
2667
- const details3 = {
2668
- filePath,
2669
- severity,
2670
- mode: "directory",
2671
- diagnostics: [],
2672
- totalDiagnostics: 0,
2673
- truncated: false,
2674
- error: message,
2675
- errorKind: "no_files"
2676
- };
2677
- return text(message, details3);
2981
+ result.filesModified.push(validatedPath.path);
2982
+ } catch (err) {
2983
+ result.success = false;
2984
+ result.errors.push(`Delete ${change.uri}: ${String(err)}`);
2985
+ }
2678
2986
  }
2679
- const output2 = await aggregateDiagnosticsForDirectory(absPath, extension, severity);
2680
- const details2 = {
2681
- filePath,
2682
- severity,
2683
- mode: "directory",
2684
- diagnostics: [],
2685
- totalDiagnostics: 0,
2686
- truncated: false
2687
- };
2688
- return text(output2, details2);
2689
2987
  }
2690
- const result = await withLspClient(filePath, async (client) => client.diagnostics(filePath), "diagnostics", clientOptions(signal));
2691
- const diagnostics = filterDiagnosticsBySeverity(asDiagnosticArray(result), severity);
2692
- const total = diagnostics.length;
2693
- const truncated = total > DEFAULT_MAX_DIAGNOSTICS;
2694
- const limited = truncated ? diagnostics.slice(0, DEFAULT_MAX_DIAGNOSTICS) : diagnostics;
2695
- const output = total === 0 ? "No diagnostics found" : [
2696
- ...truncated ? [`Found ${total} diagnostics (showing first ${DEFAULT_MAX_DIAGNOSTICS}):`] : [],
2697
- ...limited.map(formatDiagnostic)
2698
- ].join(`
2699
- `);
2700
- const details = {
2701
- filePath,
2702
- severity,
2703
- mode: "file",
2704
- diagnostics: diagnostics.map((diagnostic) => ({ file: absPath, diagnostic })),
2705
- totalDiagnostics: total,
2706
- truncated
2707
- };
2708
- return text(output, details);
2709
- } catch (error) {
2710
- const missingDependency = missingDependencyResult(error, {
2711
- filePath,
2712
- severity,
2713
- mode: "file",
2714
- diagnostics: [],
2715
- totalDiagnostics: 0,
2716
- truncated: false
2717
- });
2718
- if (missingDependency)
2719
- return missingDependency;
2720
- throw error;
2721
2988
  }
2989
+ return result;
2722
2990
  }
2723
- async function executeLspGotoDefinition(params, signal) {
2991
+
2992
+ // ../lsp-core/src/tools/rename.ts
2993
+ async function executeLspPrepareRename(params, signal) {
2724
2994
  const filePath = requireString(params, "filePath");
2725
2995
  const line = requireNumber(params, "line");
2726
2996
  const character = requireNumber(params, "character");
2727
2997
  try {
2728
- const result = await withLspClient(filePath, async (client) => client.definition(filePath, line, character), "definition", clientOptions(signal));
2729
- const locations = !result ? [] : Array.isArray(result) ? result : [result];
2730
- const details = { filePath, line, character, locations };
2731
- if (locations.length === 0)
2732
- return text("No definition found", details);
2733
- return text(locations.map(formatLocation).join(`
2734
- `), details);
2998
+ const result = await withLspClient(filePath, async (client) => client.prepareRename(filePath, line, character), "prepareRename", clientOptions(signal));
2999
+ const details = { filePath, line, character, result };
3000
+ return text(formatPrepareRenameResult(result), details);
2735
3001
  } catch (error) {
2736
3002
  const missingDependency = missingDependencyResult(error, {
2737
3003
  filePath,
2738
3004
  line,
2739
3005
  character,
2740
- locations: []
3006
+ result: null
2741
3007
  });
2742
3008
  if (missingDependency)
2743
3009
  return missingDependency;
2744
3010
  throw error;
2745
3011
  }
2746
3012
  }
2747
- async function executeLspFindReferences(params, signal) {
3013
+ async function executeLspRename(params, signal) {
2748
3014
  const filePath = requireString(params, "filePath");
2749
3015
  const line = requireNumber(params, "line");
2750
3016
  const character = requireNumber(params, "character");
2751
- const includeDeclaration = optionalBoolean(params, "includeDeclaration") ?? true;
3017
+ const newName = requireString(params, "newName");
2752
3018
  try {
2753
- const result = await withLspClient(filePath, async (client) => client.references(filePath, line, character, includeDeclaration), "references", clientOptions(signal));
2754
- const references = Array.isArray(result) ? result : [];
2755
- const total = references.length;
2756
- const truncated = total > DEFAULT_MAX_REFERENCES;
2757
- const limited = truncated ? references.slice(0, DEFAULT_MAX_REFERENCES) : references;
2758
- const details = {
2759
- filePath,
2760
- line,
2761
- character,
2762
- references,
2763
- totalReferences: total,
2764
- truncated
2765
- };
2766
- if (total === 0)
2767
- return text("No references found", details);
2768
- const output = [
2769
- ...truncated ? [`Found ${total} references (showing first ${DEFAULT_MAX_REFERENCES}):`] : [],
2770
- ...limited.map(formatLocation)
2771
- ].join(`
2772
- `);
2773
- return text(output, details);
3019
+ const edit = await withLspClient(filePath, async (client, workspaceRoot) => ({
3020
+ edit: await client.rename(filePath, line, character, newName),
3021
+ workspaceRoot
3022
+ }), "rename", clientOptions(signal));
3023
+ const apply = applyWorkspaceEdit(edit.edit, { workspaceRoot: edit.workspaceRoot });
3024
+ const details = { filePath, line, character, newName, apply, edit: edit.edit };
3025
+ return text(formatApplyResult(apply), details, !apply.success);
2774
3026
  } catch (error) {
2775
3027
  const missingDependency = missingDependencyResult(error, {
2776
3028
  filePath,
2777
3029
  line,
2778
3030
  character,
2779
- references: [],
2780
- totalReferences: 0,
2781
- truncated: false
3031
+ newName,
3032
+ apply: null,
3033
+ edit: null
2782
3034
  });
2783
3035
  if (missingDependency)
2784
3036
  return missingDependency;
2785
3037
  throw error;
2786
3038
  }
2787
3039
  }
3040
+
3041
+ // ../lsp-core/src/tools/schema.ts
3042
+ function objectSchema(properties, required = []) {
3043
+ return {
3044
+ type: "object",
3045
+ properties,
3046
+ required
3047
+ };
3048
+ }
3049
+
3050
+ // ../lsp-core/src/tools/status.ts
3051
+ async function executeLspStatus() {
3052
+ const servers = getAllServers();
3053
+ const snapshots = getLspManager().getSnapshot();
3054
+ const installed = servers.filter((server2) => server2.installed && !server2.disabled);
3055
+ const configuredLines = servers.map((server2) => {
3056
+ const state = server2.disabled ? "disabled" : server2.installed ? "installed" : "missing";
3057
+ return `- ${server2.id}: ${state}; source=${server2.source}; extensions=${server2.extensions.join(", ")}`;
3058
+ });
3059
+ const activeLines = snapshots.map((snapshot) => {
3060
+ const state = snapshot.alive ? snapshot.isInitializing ? "initializing" : "alive" : "dead";
3061
+ return `- ${snapshot.serverId}: ${state}; root=${snapshot.root}; refs=${snapshot.refCount}`;
3062
+ });
3063
+ const lines = [
3064
+ `Configured LSP servers: ${servers.length}`,
3065
+ `Installed LSP servers: ${installed.length}`,
3066
+ "",
3067
+ ...configuredLines,
3068
+ "",
3069
+ `Active LSP clients: ${snapshots.length}`,
3070
+ ...activeLines
3071
+ ];
3072
+ return text(lines.join(`
3073
+ `), { servers, snapshots });
3074
+ }
3075
+
3076
+ // ../lsp-core/src/tools/symbols.ts
3077
+ function isDocumentSymbol(symbol) {
3078
+ return "range" in symbol;
3079
+ }
2788
3080
  async function executeLspSymbols(params, signal) {
2789
3081
  const filePath = requireString(params, "filePath");
2790
3082
  const rawScope = optionalString(params, "scope") ?? "document";
@@ -2851,85 +3143,8 @@ function formatSymbolsResult(filePath, scope, symbols, limit, query) {
2851
3143
  return text(lines.join(`
2852
3144
  `), details);
2853
3145
  }
2854
- async function executeLspPrepareRename(params, signal) {
2855
- const filePath = requireString(params, "filePath");
2856
- const line = requireNumber(params, "line");
2857
- const character = requireNumber(params, "character");
2858
- try {
2859
- const result = await withLspClient(filePath, async (client) => client.prepareRename(filePath, line, character), "prepareRename", clientOptions(signal));
2860
- const details = { filePath, line, character, result };
2861
- return text(formatPrepareRenameResult(result), details);
2862
- } catch (error) {
2863
- const missingDependency = missingDependencyResult(error, {
2864
- filePath,
2865
- line,
2866
- character,
2867
- result: null
2868
- });
2869
- if (missingDependency)
2870
- return missingDependency;
2871
- throw error;
2872
- }
2873
- }
2874
- async function executeLspRename(params, signal) {
2875
- const filePath = requireString(params, "filePath");
2876
- const line = requireNumber(params, "line");
2877
- const character = requireNumber(params, "character");
2878
- const newName = requireString(params, "newName");
2879
- try {
2880
- const edit = await withLspClient(filePath, async (client, workspaceRoot) => ({
2881
- edit: await client.rename(filePath, line, character, newName),
2882
- workspaceRoot
2883
- }), "rename", clientOptions(signal));
2884
- const apply = applyWorkspaceEdit(edit.edit, { workspaceRoot: edit.workspaceRoot });
2885
- const details = { filePath, line, character, newName, apply, edit: edit.edit };
2886
- return text(formatApplyResult(apply), details, !apply.success);
2887
- } catch (error) {
2888
- const missingDependency = missingDependencyResult(error, {
2889
- filePath,
2890
- line,
2891
- character,
2892
- newName,
2893
- apply: null,
2894
- edit: null
2895
- });
2896
- if (missingDependency)
2897
- return missingDependency;
2898
- throw error;
2899
- }
2900
- }
2901
- async function executeLspInstallDecision(params) {
2902
- const serverId = requireString(params, "server_id");
2903
- const decision = params["decision"];
2904
- if (!isInstallDecision(decision)) {
2905
- return text(`Invalid decision '${String(decision)}'. Expected "declined" or "allowed".`, { serverId, errorKind: "invalid_decision" }, true);
2906
- }
2907
- const serverIds = [...new Set(getMergedServers().map((server) => server.id))];
2908
- if (!serverIds.includes(serverId)) {
2909
- const preview = serverIds.slice(0, 20).join(", ");
2910
- return text(`Unknown LSP server '${serverId}'. Known servers: ${preview}${serverIds.length > 20 ? "..." : ""}`, { serverId, errorKind: "unknown_server" }, true);
2911
- }
2912
- recordInstallDecision(serverId, decision);
2913
- return text(`Recorded install decision for '${serverId}': ${decision}. ${decisionFollowUp(decision)}`, {
2914
- serverId,
2915
- decision
2916
- });
2917
- }
2918
- function decisionFollowUp(decision) {
2919
- return decision === "declined" ? "Future LSP lookups for this server stay quiet; proceed without LSP." : "Future LSP lookups keep install instructions without asking the user.";
2920
- }
2921
- async function executeLspTool(name, params, signal) {
2922
- const tool = LSP_MCP_TOOLS.find((candidate) => matchesToolName(candidate, name));
2923
- if (!tool)
2924
- throw new Error(`Unknown LSP tool: ${name}`);
2925
- return tool.execute(params, signal);
2926
- }
2927
- function matchesToolName(tool, name) {
2928
- return tool.name === name || (tool.aliases?.includes(name) ?? false);
2929
- }
2930
- function coerceToolArguments(value) {
2931
- return isRecord4(value) ? value : {};
2932
- }
3146
+
3147
+ // ../lsp-core/src/tools/definitions.ts
2933
3148
  var LSP_MCP_TOOLS = [
2934
3149
  {
2935
3150
  name: "status",
@@ -3040,12 +3255,24 @@ var LSP_MCP_TOOLS = [
3040
3255
  execute: executeLspInstallDecision
3041
3256
  }
3042
3257
  ];
3043
-
3044
- // ../lsp-tools-mcp/dist/mcp.js
3258
+ // ../lsp-core/src/tools/runtime.ts
3259
+ async function executeLspTool(name, params, signal) {
3260
+ const tool = LSP_MCP_TOOLS.find((candidate) => matchesToolName(candidate, name));
3261
+ if (!tool)
3262
+ throw new Error(`Unknown LSP tool: ${name}`);
3263
+ return tool.execute(params, signal);
3264
+ }
3265
+ function matchesToolName(tool, name) {
3266
+ return tool.name === name || (tool.aliases?.includes(name) ?? false);
3267
+ }
3268
+ function coerceToolArguments(value) {
3269
+ return isRecord4(value) ? value : {};
3270
+ }
3271
+ // ../lsp-core/src/mcp.ts
3045
3272
  var SERVER_NAME = "lsp";
3046
3273
  var SERVER_VERSION = "0.1.0";
3047
3274
  async function handleLspMcpRequest(input) {
3048
- if (!isRecord5(input)) {
3275
+ if (!isPlainRecord(input)) {
3049
3276
  return errorResponse(null, -32600, "Invalid Request");
3050
3277
  }
3051
3278
  const id = jsonRpcId(input["id"]);
@@ -3071,7 +3298,7 @@ async function handleLspMcpRequest(input) {
3071
3298
  return errorResponse(id, -32601, `Method not found: ${String(method)}`);
3072
3299
  }
3073
3300
  async function handleToolCall(id, params) {
3074
- if (!isRecord5(params) || typeof params["name"] !== "string") {
3301
+ if (!isPlainRecord(params) || typeof params["name"] !== "string") {
3075
3302
  return errorResponse(id, -32602, "tools/call requires params.name");
3076
3303
  }
3077
3304
  try {
@@ -3096,26 +3323,11 @@ function describeTool(tool) {
3096
3323
  inputSchema: tool.inputSchema
3097
3324
  };
3098
3325
  }
3099
- function successResponse(id, result) {
3100
- return { jsonrpc: "2.0", id, result };
3101
- }
3102
- function errorResponse(id, code, message, data) {
3103
- return { jsonrpc: "2.0", id, error: data === undefined ? { code, message } : { code, message, data } };
3104
- }
3105
3326
  function requestedProtocolVersion(params) {
3106
- if (!isRecord5(params) || typeof params["protocolVersion"] !== "string")
3327
+ if (!isPlainRecord(params) || typeof params["protocolVersion"] !== "string")
3107
3328
  return "2024-11-05";
3108
3329
  return params["protocolVersion"];
3109
3330
  }
3110
- function jsonRpcId(value) {
3111
- return typeof value === "string" || typeof value === "number" || value === null ? value : null;
3112
- }
3113
- function isRecord5(value) {
3114
- return typeof value === "object" && value !== null && !Array.isArray(value);
3115
- }
3116
- function messageFromError(error) {
3117
- return error instanceof Error ? error.message : String(error);
3118
- }
3119
3331
 
3120
3332
  // src/daemon-client.ts
3121
3333
  import { connect as connect2 } from "node:net";
@@ -3330,13 +3542,13 @@ function resolveSocketPath(dir, version) {
3330
3542
  // src/request-routing.ts
3331
3543
  var CONTEXT_KEY = "_context";
3332
3544
  function extractRequestContext(raw) {
3333
- if (!isRecord6(raw) || raw["method"] !== "tools/call")
3545
+ if (!isRecord5(raw) || raw["method"] !== "tools/call")
3334
3546
  return { input: raw, context: undefined };
3335
3547
  const params = raw["params"];
3336
- if (!isRecord6(params))
3548
+ if (!isRecord5(params))
3337
3549
  return { input: raw, context: undefined };
3338
3550
  const args = params["arguments"];
3339
- if (!isRecord6(args))
3551
+ if (!isRecord5(args))
3340
3552
  return { input: raw, context: undefined };
3341
3553
  const context = parseContext(args[CONTEXT_KEY]);
3342
3554
  if (!context)
@@ -3353,7 +3565,7 @@ function handleDaemonMessage(raw) {
3353
3565
  return handleLspMcpRequest(input);
3354
3566
  }
3355
3567
  function parseContext(value) {
3356
- if (!isRecord6(value))
3568
+ if (!isRecord5(value))
3357
3569
  return;
3358
3570
  const context = {};
3359
3571
  const cwd = value["cwd"];
@@ -3364,11 +3576,11 @@ function parseContext(value) {
3364
3576
  context.env = env;
3365
3577
  return context.cwd === undefined && context.env === undefined ? undefined : context;
3366
3578
  }
3367
- function isRecord6(value) {
3579
+ function isRecord5(value) {
3368
3580
  return typeof value === "object" && value !== null && !Array.isArray(value);
3369
3581
  }
3370
3582
  function isStringRecord2(value) {
3371
- return isRecord6(value) && Object.values(value).every((item) => typeof item === "string");
3583
+ return isRecord5(value) && Object.values(value).every((item) => typeof item === "string");
3372
3584
  }
3373
3585
 
3374
3586
  // src/socket-jsonrpc.ts
@@ -3495,10 +3707,10 @@ function sendToolCall(socketPath, name, args, timeoutMs) {
3495
3707
  });
3496
3708
  }
3497
3709
  function toToolResult(message) {
3498
- if (!isRecord7(message) || message["id"] !== REQUEST_ID)
3710
+ if (!isRecord6(message) || message["id"] !== REQUEST_ID)
3499
3711
  return null;
3500
3712
  const result = message["result"];
3501
- if (!isRecord7(result) || !Array.isArray(result["content"]))
3713
+ if (!isRecord6(result) || !Array.isArray(result["content"]))
3502
3714
  return null;
3503
3715
  return {
3504
3716
  content: result["content"],
@@ -3506,7 +3718,7 @@ function toToolResult(message) {
3506
3718
  details: result["details"]
3507
3719
  };
3508
3720
  }
3509
- function isRecord7(value) {
3721
+ function isRecord6(value) {
3510
3722
  return typeof value === "object" && value !== null && !Array.isArray(value);
3511
3723
  }
3512
3724
  function errorText(error) {
@@ -3520,56 +3732,32 @@ async function runMcpStdioProxy(options = {}) {
3520
3732
  const paths = options.paths ?? daemonPaths();
3521
3733
  const context = options.context ?? currentRequestContext();
3522
3734
  const callOptions = { paths, context, ...options.ensure ? { ensure: options.ensure } : {} };
3523
- const lines = createInterface({ input, crlfDelay: Number.POSITIVE_INFINITY });
3524
- for await (const line of lines) {
3525
- if (!line.trim())
3526
- continue;
3527
- try {
3528
- const response = await handleLine(line, callOptions);
3529
- if (response)
3530
- output.write(`${JSON.stringify(response)}
3531
- `);
3532
- } catch (error) {
3735
+ await runJsonRpcStdioServer({
3736
+ input,
3737
+ output,
3738
+ handler: handleProxyRequest,
3739
+ handlerOptions: callOptions,
3740
+ onHandlerError: (error) => {
3533
3741
  process.stderr.write(`[lsp-daemon] proxy error: ${error instanceof Error ? error.message : String(error)}
3534
3742
  `);
3535
3743
  }
3536
- }
3744
+ });
3537
3745
  }
3538
- async function handleLine(line, callOptions) {
3539
- let parsed;
3540
- try {
3541
- parsed = JSON.parse(line);
3542
- } catch (error) {
3543
- return parseErrorResponse(error);
3544
- }
3746
+ async function handleProxyRequest(parsed, callOptions) {
3545
3747
  const toolCall = asToolCall(parsed);
3546
3748
  if (!toolCall)
3547
3749
  return handleLspMcpRequest(parsed);
3548
3750
  const result = await callToolViaDaemon(toolCall.name, toolCall.args, callOptions);
3549
- return {
3550
- jsonrpc: "2.0",
3551
- id: toolCall.id,
3552
- result: { content: result.content, isError: result.isError ?? false, details: result.details }
3553
- };
3751
+ return successResponse(toolCall.id, { content: result.content, isError: result.isError ?? false, details: result.details });
3554
3752
  }
3555
3753
  function asToolCall(parsed) {
3556
- if (!isRecord8(parsed) || parsed["method"] !== "tools/call")
3754
+ if (!isPlainRecord(parsed) || parsed["method"] !== "tools/call")
3557
3755
  return null;
3558
3756
  const params = parsed["params"];
3559
- if (!isRecord8(params) || typeof params["name"] !== "string")
3757
+ if (!isPlainRecord(params) || typeof params["name"] !== "string")
3560
3758
  return null;
3561
3759
  const args = params["arguments"];
3562
- return { id: jsonRpcId2(parsed["id"]), name: params["name"], args: isRecord8(args) ? args : {} };
3563
- }
3564
- function jsonRpcId2(value) {
3565
- return typeof value === "string" || typeof value === "number" || value === null ? value : null;
3566
- }
3567
- function parseErrorResponse(error) {
3568
- const message = error instanceof Error ? error.message : String(error);
3569
- return { jsonrpc: "2.0", id: null, error: { code: -32700, message: "Parse error", data: message } };
3570
- }
3571
- function isRecord8(value) {
3572
- return typeof value === "object" && value !== null && !Array.isArray(value);
3760
+ return { id: jsonRpcId(parsed["id"]), name: params["name"], args: isPlainRecord(args) ? args : {} };
3573
3761
  }
3574
3762
 
3575
3763
  // src/daemon-server.ts
@@ -3588,7 +3776,7 @@ async function startDaemonServer(paths, options = {}) {
3588
3776
  const touch = () => {
3589
3777
  lastActiveAt = Date.now();
3590
3778
  };
3591
- const server = createServer2((socket) => {
3779
+ const server2 = createServer2((socket) => {
3592
3780
  connections.add(socket);
3593
3781
  touch();
3594
3782
  const decoder = createLineDecoder((message) => {
@@ -3602,9 +3790,9 @@ async function startDaemonServer(paths, options = {}) {
3602
3790
  touch();
3603
3791
  });
3604
3792
  });
3605
- server.on("error", (error) => logServerError(error));
3793
+ server2.on("error", (error) => logServerError(error));
3606
3794
  const endpointPath = join9(paths.dir, "daemon.endpoint");
3607
- await listen(server, paths.socket);
3795
+ await listen(server2, paths.socket);
3608
3796
  writeFileSync3(paths.pid, `${process.pid}
3609
3797
  `);
3610
3798
  writeFileSync3(endpointPath, paths.socket);
@@ -3617,7 +3805,7 @@ async function startDaemonServer(paths, options = {}) {
3617
3805
  for (const socket of connections)
3618
3806
  socket.destroy();
3619
3807
  connections.clear();
3620
- await closeServer(server);
3808
+ await closeServer(server2);
3621
3809
  unlinkQuietly(paths.socket);
3622
3810
  unlinkQuietly(paths.pid);
3623
3811
  unlinkQuietly(endpointPath);
@@ -3640,7 +3828,7 @@ async function startDaemonServer(paths, options = {}) {
3640
3828
  }, idleCheckIntervalMs);
3641
3829
  idleTimer.unref();
3642
3830
  installSignalHandlers(close);
3643
- return { server, close };
3831
+ return { server: server2, close };
3644
3832
  }
3645
3833
  async function respond(socket, message) {
3646
3834
  try {
@@ -3651,18 +3839,18 @@ async function respond(socket, message) {
3651
3839
  logServerError(error);
3652
3840
  }
3653
3841
  }
3654
- function listen(server, socketPath) {
3842
+ function listen(server2, socketPath) {
3655
3843
  return new Promise((resolve6, reject) => {
3656
3844
  const onError = (error) => reject(error);
3657
- server.once("error", onError);
3658
- server.listen(socketPath, () => {
3659
- server.removeListener("error", onError);
3845
+ server2.once("error", onError);
3846
+ server2.listen(socketPath, () => {
3847
+ server2.removeListener("error", onError);
3660
3848
  resolve6();
3661
3849
  });
3662
3850
  });
3663
3851
  }
3664
- function closeServer(server) {
3665
- return new Promise((resolve6) => server.close(() => resolve6()));
3852
+ function closeServer(server2) {
3853
+ return new Promise((resolve6) => server2.close(() => resolve6()));
3666
3854
  }
3667
3855
  function installSignalHandlers(close) {
3668
3856
  const handler = () => {