claudecode-omc 4.4.10 → 4.7.4

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 (1091) hide show
  1. package/.claude-plugin/marketplace.json +18 -4
  2. package/.claude-plugin/plugin.json +14 -1
  3. package/.mcp.json +0 -4
  4. package/README.de.md +260 -0
  5. package/README.es.md +27 -41
  6. package/README.fr.md +260 -0
  7. package/README.it.md +260 -0
  8. package/README.ja.md +27 -41
  9. package/README.ko.md +45 -54
  10. package/README.md +247 -14
  11. package/README.pt.md +23 -6
  12. package/README.ru.md +260 -0
  13. package/README.tr.md +260 -0
  14. package/README.vi.md +23 -6
  15. package/README.zh.md +27 -41
  16. package/agents/harsh-critic.md +254 -0
  17. package/bridge/cli.cjs +67181 -0
  18. package/bridge/gyoshu_bridge.py +69 -19
  19. package/bridge/mcp-server.cjs +846 -526
  20. package/bridge/runtime-cli.cjs +2861 -367
  21. package/bridge/team-bridge.cjs +216 -60
  22. package/bridge/team-mcp.cjs +493 -255
  23. package/bridge/team.js +1460 -0
  24. package/dist/__tests__/agent-registry.test.js +13 -3
  25. package/dist/__tests__/agent-registry.test.js.map +1 -1
  26. package/dist/__tests__/auto-slash-aliases.test.js +12 -20
  27. package/dist/__tests__/auto-slash-aliases.test.js.map +1 -1
  28. package/dist/__tests__/auto-update.test.js +1 -1
  29. package/dist/__tests__/auto-update.test.js.map +1 -1
  30. package/dist/__tests__/bash-history.test.js.map +1 -1
  31. package/dist/__tests__/cleanup-validation.test.d.ts +2 -0
  32. package/dist/__tests__/cleanup-validation.test.d.ts.map +1 -0
  33. package/dist/__tests__/cleanup-validation.test.js +44 -0
  34. package/dist/__tests__/cleanup-validation.test.js.map +1 -0
  35. package/dist/__tests__/config-force-inherit-env.test.d.ts +5 -0
  36. package/dist/__tests__/config-force-inherit-env.test.d.ts.map +1 -0
  37. package/dist/__tests__/config-force-inherit-env.test.js +35 -0
  38. package/dist/__tests__/config-force-inherit-env.test.js.map +1 -0
  39. package/dist/__tests__/consolidation-contracts.test.js +4 -7
  40. package/dist/__tests__/consolidation-contracts.test.js.map +1 -1
  41. package/dist/__tests__/daemon-module-path.test.d.ts +2 -0
  42. package/dist/__tests__/daemon-module-path.test.d.ts.map +1 -0
  43. package/dist/__tests__/daemon-module-path.test.js +29 -0
  44. package/dist/__tests__/daemon-module-path.test.js.map +1 -0
  45. package/dist/__tests__/delegation-enforcement-levels.test.js.map +1 -1
  46. package/dist/__tests__/delegation-enforcer.test.js +172 -0
  47. package/dist/__tests__/delegation-enforcer.test.js.map +1 -1
  48. package/dist/__tests__/doctor-conflicts.test.js +144 -1
  49. package/dist/__tests__/doctor-conflicts.test.js.map +1 -1
  50. package/dist/__tests__/file-lock.test.d.ts +2 -0
  51. package/dist/__tests__/file-lock.test.d.ts.map +1 -0
  52. package/dist/__tests__/file-lock.test.js +209 -0
  53. package/dist/__tests__/file-lock.test.js.map +1 -0
  54. package/dist/__tests__/hooks.test.js +27 -56
  55. package/dist/__tests__/hooks.test.js.map +1 -1
  56. package/dist/__tests__/hud/defaults.test.js +3 -0
  57. package/dist/__tests__/hud/defaults.test.js.map +1 -1
  58. package/dist/__tests__/hud/limits-error.test.d.ts +5 -0
  59. package/dist/__tests__/hud/limits-error.test.d.ts.map +1 -0
  60. package/dist/__tests__/hud/limits-error.test.js +43 -0
  61. package/dist/__tests__/hud/limits-error.test.js.map +1 -0
  62. package/dist/__tests__/hud/max-width.test.d.ts +2 -0
  63. package/dist/__tests__/hud/max-width.test.d.ts.map +1 -0
  64. package/dist/__tests__/hud/max-width.test.js +149 -0
  65. package/dist/__tests__/hud/max-width.test.js.map +1 -0
  66. package/dist/__tests__/hud/rate-limits-error.test.d.ts +5 -0
  67. package/dist/__tests__/hud/rate-limits-error.test.d.ts.map +1 -0
  68. package/dist/__tests__/hud/rate-limits-error.test.js +76 -0
  69. package/dist/__tests__/hud/rate-limits-error.test.js.map +1 -0
  70. package/dist/__tests__/hud/render.test.js +245 -1
  71. package/dist/__tests__/hud/render.test.js.map +1 -1
  72. package/dist/__tests__/hud/state.test.js +15 -0
  73. package/dist/__tests__/hud/state.test.js.map +1 -1
  74. package/dist/__tests__/hud/usage-api.test.js +19 -5
  75. package/dist/__tests__/hud/usage-api.test.js.map +1 -1
  76. package/dist/__tests__/hud/version-display.test.js +3 -1
  77. package/dist/__tests__/hud/version-display.test.js.map +1 -1
  78. package/dist/__tests__/hud-agents.test.js.map +1 -1
  79. package/dist/__tests__/hud-api-key-source.test.d.ts +7 -0
  80. package/dist/__tests__/hud-api-key-source.test.d.ts.map +1 -0
  81. package/dist/__tests__/hud-api-key-source.test.js +112 -0
  82. package/dist/__tests__/hud-api-key-source.test.js.map +1 -0
  83. package/dist/__tests__/hud-build-guidance.test.d.ts +2 -0
  84. package/dist/__tests__/hud-build-guidance.test.d.ts.map +1 -0
  85. package/dist/__tests__/hud-build-guidance.test.js +26 -0
  86. package/dist/__tests__/hud-build-guidance.test.js.map +1 -0
  87. package/dist/__tests__/installer-hooks-merge.test.js +1 -1
  88. package/dist/__tests__/installer-hooks-merge.test.js.map +1 -1
  89. package/dist/__tests__/installer.test.js +4 -0
  90. package/dist/__tests__/installer.test.js.map +1 -1
  91. package/dist/__tests__/job-management.test.js +1 -1
  92. package/dist/__tests__/job-management.test.js.map +1 -1
  93. package/dist/__tests__/live-data.test.js +11 -5
  94. package/dist/__tests__/live-data.test.js.map +1 -1
  95. package/dist/__tests__/mcp-default-config.test.d.ts +2 -0
  96. package/dist/__tests__/mcp-default-config.test.d.ts.map +1 -0
  97. package/dist/__tests__/mcp-default-config.test.js +13 -0
  98. package/dist/__tests__/mcp-default-config.test.js.map +1 -0
  99. package/dist/__tests__/model-routing.test.js.map +1 -1
  100. package/dist/__tests__/non-claude-provider-detection.test.d.ts +11 -0
  101. package/dist/__tests__/non-claude-provider-detection.test.d.ts.map +1 -0
  102. package/dist/__tests__/non-claude-provider-detection.test.js +303 -0
  103. package/dist/__tests__/non-claude-provider-detection.test.js.map +1 -0
  104. package/dist/__tests__/omc-tools-server.test.js +5 -5
  105. package/dist/__tests__/package-dir-resolution-regression.test.d.ts +2 -0
  106. package/dist/__tests__/package-dir-resolution-regression.test.d.ts.map +1 -0
  107. package/dist/__tests__/package-dir-resolution-regression.test.js +63 -0
  108. package/dist/__tests__/package-dir-resolution-regression.test.js.map +1 -0
  109. package/dist/__tests__/pipeline-orchestrator.test.d.ts +5 -0
  110. package/dist/__tests__/pipeline-orchestrator.test.d.ts.map +1 -0
  111. package/dist/__tests__/pipeline-orchestrator.test.js +244 -0
  112. package/dist/__tests__/pipeline-orchestrator.test.js.map +1 -0
  113. package/dist/__tests__/plugin-setup-deps.test.d.ts +2 -0
  114. package/dist/__tests__/plugin-setup-deps.test.d.ts.map +1 -0
  115. package/dist/__tests__/plugin-setup-deps.test.js +64 -0
  116. package/dist/__tests__/plugin-setup-deps.test.js.map +1 -0
  117. package/dist/__tests__/pre-tool-agent-prefix.test.d.ts +8 -0
  118. package/dist/__tests__/pre-tool-agent-prefix.test.d.ts.map +1 -0
  119. package/dist/__tests__/pre-tool-agent-prefix.test.js +131 -0
  120. package/dist/__tests__/pre-tool-agent-prefix.test.js.map +1 -0
  121. package/dist/__tests__/project-memory-merge.test.d.ts +2 -0
  122. package/dist/__tests__/project-memory-merge.test.d.ts.map +1 -0
  123. package/dist/__tests__/project-memory-merge.test.js +342 -0
  124. package/dist/__tests__/project-memory-merge.test.js.map +1 -0
  125. package/dist/__tests__/ralph-prd-mandatory.test.d.ts +2 -0
  126. package/dist/__tests__/ralph-prd-mandatory.test.d.ts.map +1 -0
  127. package/dist/__tests__/ralph-prd-mandatory.test.js +316 -0
  128. package/dist/__tests__/ralph-prd-mandatory.test.js.map +1 -0
  129. package/dist/__tests__/rate-limit-wait/daemon-bootstrap.test.d.ts +2 -0
  130. package/dist/__tests__/rate-limit-wait/daemon-bootstrap.test.d.ts.map +1 -0
  131. package/dist/__tests__/rate-limit-wait/daemon-bootstrap.test.js +94 -0
  132. package/dist/__tests__/rate-limit-wait/daemon-bootstrap.test.js.map +1 -0
  133. package/dist/__tests__/rate-limit-wait/daemon.test.js.map +1 -1
  134. package/dist/__tests__/rate-limit-wait/integration.test.js +33 -25
  135. package/dist/__tests__/rate-limit-wait/integration.test.js.map +1 -1
  136. package/dist/__tests__/rate-limit-wait/rate-limit-monitor.test.js +34 -26
  137. package/dist/__tests__/rate-limit-wait/rate-limit-monitor.test.js.map +1 -1
  138. package/dist/__tests__/rate-limit-wait/tmux-detector.test.js.map +1 -1
  139. package/dist/__tests__/resolve-node.test.js.map +1 -1
  140. package/dist/__tests__/resolve-transcript-path.test.d.ts +12 -0
  141. package/dist/__tests__/resolve-transcript-path.test.d.ts.map +1 -0
  142. package/dist/__tests__/resolve-transcript-path.test.js +167 -0
  143. package/dist/__tests__/resolve-transcript-path.test.js.map +1 -0
  144. package/dist/__tests__/routing-force-inherit.test.d.ts +8 -0
  145. package/dist/__tests__/routing-force-inherit.test.d.ts.map +1 -0
  146. package/dist/__tests__/routing-force-inherit.test.js +180 -0
  147. package/dist/__tests__/routing-force-inherit.test.js.map +1 -0
  148. package/dist/__tests__/run-cjs-graceful-fallback.test.js +2 -2
  149. package/dist/__tests__/run-cjs-graceful-fallback.test.js.map +1 -1
  150. package/dist/__tests__/shared-memory-concurrency.test.d.ts +8 -0
  151. package/dist/__tests__/shared-memory-concurrency.test.d.ts.map +1 -0
  152. package/dist/__tests__/shared-memory-concurrency.test.js +132 -0
  153. package/dist/__tests__/shared-memory-concurrency.test.js.map +1 -0
  154. package/dist/__tests__/shared-memory.test.d.ts +2 -0
  155. package/dist/__tests__/shared-memory.test.d.ts.map +1 -0
  156. package/dist/__tests__/shared-memory.test.js +345 -0
  157. package/dist/__tests__/shared-memory.test.js.map +1 -0
  158. package/dist/__tests__/shell-path.test.d.ts +5 -0
  159. package/dist/__tests__/shell-path.test.d.ts.map +1 -0
  160. package/dist/__tests__/shell-path.test.js +70 -0
  161. package/dist/__tests__/shell-path.test.js.map +1 -0
  162. package/dist/__tests__/skills.test.js +13 -10
  163. package/dist/__tests__/skills.test.js.map +1 -1
  164. package/dist/__tests__/slack-socket.test.d.ts +5 -0
  165. package/dist/__tests__/slack-socket.test.d.ts.map +1 -0
  166. package/dist/__tests__/slack-socket.test.js +252 -0
  167. package/dist/__tests__/slack-socket.test.js.map +1 -0
  168. package/dist/__tests__/smoke-functional.test.d.ts +8 -0
  169. package/dist/__tests__/smoke-functional.test.d.ts.map +1 -0
  170. package/dist/__tests__/smoke-functional.test.js +450 -0
  171. package/dist/__tests__/smoke-functional.test.js.map +1 -0
  172. package/dist/__tests__/smoke-pipeline-edge.test.d.ts +8 -0
  173. package/dist/__tests__/smoke-pipeline-edge.test.d.ts.map +1 -0
  174. package/dist/__tests__/smoke-pipeline-edge.test.js +435 -0
  175. package/dist/__tests__/smoke-pipeline-edge.test.js.map +1 -0
  176. package/dist/__tests__/smoke-slack-and-state.test.d.ts +13 -0
  177. package/dist/__tests__/smoke-slack-and-state.test.d.ts.map +1 -0
  178. package/dist/__tests__/smoke-slack-and-state.test.js +632 -0
  179. package/dist/__tests__/smoke-slack-and-state.test.js.map +1 -0
  180. package/dist/__tests__/smoke-team-worker.test.d.ts +15 -0
  181. package/dist/__tests__/smoke-team-worker.test.d.ts.map +1 -0
  182. package/dist/__tests__/smoke-team-worker.test.js +483 -0
  183. package/dist/__tests__/smoke-team-worker.test.js.map +1 -0
  184. package/dist/__tests__/ssrf-guard.test.d.ts +2 -0
  185. package/dist/__tests__/ssrf-guard.test.d.ts.map +1 -0
  186. package/dist/__tests__/ssrf-guard.test.js +96 -0
  187. package/dist/__tests__/ssrf-guard.test.js.map +1 -0
  188. package/dist/__tests__/task-continuation.test.js +1 -1
  189. package/dist/__tests__/task-continuation.test.js.map +1 -1
  190. package/dist/__tests__/tier0-contracts.test.js +5 -1
  191. package/dist/__tests__/tier0-contracts.test.js.map +1 -1
  192. package/dist/__tests__/tier0-docs-consistency.test.js +3 -4
  193. package/dist/__tests__/tier0-docs-consistency.test.js.map +1 -1
  194. package/dist/__tests__/tools/trace-tools.test.js +7 -3
  195. package/dist/__tests__/tools/trace-tools.test.js.map +1 -1
  196. package/dist/__tests__/types.test.js +4 -4
  197. package/dist/__tests__/types.test.js.map +1 -1
  198. package/dist/__tests__/worker-adapter.test.d.ts +5 -0
  199. package/dist/__tests__/worker-adapter.test.d.ts.map +1 -0
  200. package/dist/__tests__/worker-adapter.test.js +211 -0
  201. package/dist/__tests__/worker-adapter.test.js.map +1 -0
  202. package/dist/agents/definitions.d.ts +6 -5
  203. package/dist/agents/definitions.d.ts.map +1 -1
  204. package/dist/agents/definitions.js +11 -6
  205. package/dist/agents/definitions.js.map +1 -1
  206. package/dist/agents/harsh-critic.d.ts +14 -0
  207. package/dist/agents/harsh-critic.d.ts.map +1 -0
  208. package/dist/agents/harsh-critic.js +42 -0
  209. package/dist/agents/harsh-critic.js.map +1 -0
  210. package/dist/agents/index.d.ts +1 -3
  211. package/dist/agents/index.d.ts.map +1 -1
  212. package/dist/agents/index.js +1 -4
  213. package/dist/agents/index.js.map +1 -1
  214. package/dist/agents/prompt-helpers.d.ts.map +1 -1
  215. package/dist/agents/prompt-helpers.js +21 -16
  216. package/dist/agents/prompt-helpers.js.map +1 -1
  217. package/dist/agents/prompt-sections/index.d.ts.map +1 -1
  218. package/dist/agents/prompt-sections/index.js +7 -3
  219. package/dist/agents/prompt-sections/index.js.map +1 -1
  220. package/dist/agents/utils.d.ts.map +1 -1
  221. package/dist/agents/utils.js +22 -13
  222. package/dist/agents/utils.js.map +1 -1
  223. package/dist/cli/__tests__/ask.test.d.ts +2 -0
  224. package/dist/cli/__tests__/ask.test.d.ts.map +1 -0
  225. package/dist/cli/__tests__/ask.test.js +282 -0
  226. package/dist/cli/__tests__/ask.test.js.map +1 -0
  227. package/dist/cli/__tests__/cli-boot.test.d.ts +8 -0
  228. package/dist/cli/__tests__/cli-boot.test.d.ts.map +1 -0
  229. package/dist/cli/__tests__/cli-boot.test.js +82 -0
  230. package/dist/cli/__tests__/cli-boot.test.js.map +1 -0
  231. package/dist/cli/__tests__/launch.test.js +11 -2
  232. package/dist/cli/__tests__/launch.test.js.map +1 -1
  233. package/dist/cli/__tests__/team-command-branding.test.d.ts +2 -0
  234. package/dist/cli/__tests__/team-command-branding.test.d.ts.map +1 -0
  235. package/dist/cli/__tests__/team-command-branding.test.js +14 -0
  236. package/dist/cli/__tests__/team-command-branding.test.js.map +1 -0
  237. package/dist/cli/__tests__/team-help.test.d.ts +2 -0
  238. package/dist/cli/__tests__/team-help.test.d.ts.map +1 -0
  239. package/dist/cli/__tests__/team-help.test.js +19 -0
  240. package/dist/cli/__tests__/team-help.test.js.map +1 -0
  241. package/dist/cli/__tests__/team-runtime-boundary.test.d.ts +2 -0
  242. package/dist/cli/__tests__/team-runtime-boundary.test.d.ts.map +1 -0
  243. package/dist/cli/__tests__/team-runtime-boundary.test.js +11 -0
  244. package/dist/cli/__tests__/team-runtime-boundary.test.js.map +1 -0
  245. package/dist/cli/__tests__/team.test.d.ts +2 -0
  246. package/dist/cli/__tests__/team.test.d.ts.map +1 -0
  247. package/dist/cli/__tests__/team.test.js +335 -0
  248. package/dist/cli/__tests__/team.test.js.map +1 -0
  249. package/dist/cli/__tests__/tmux-utils.test.d.ts +11 -0
  250. package/dist/cli/__tests__/tmux-utils.test.d.ts.map +1 -0
  251. package/dist/cli/__tests__/tmux-utils.test.js +145 -0
  252. package/dist/cli/__tests__/tmux-utils.test.js.map +1 -0
  253. package/dist/cli/ask.d.ts +13 -0
  254. package/dist/cli/ask.d.ts.map +1 -0
  255. package/dist/cli/ask.js +202 -0
  256. package/dist/cli/ask.js.map +1 -0
  257. package/dist/cli/commands/__tests__/team.test.d.ts +2 -0
  258. package/dist/cli/commands/__tests__/team.test.d.ts.map +1 -0
  259. package/dist/cli/commands/__tests__/team.test.js +177 -0
  260. package/dist/cli/commands/__tests__/team.test.js.map +1 -0
  261. package/dist/cli/commands/__tests__/teleport.test.js.map +1 -1
  262. package/dist/cli/commands/doctor-conflicts.d.ts +14 -1
  263. package/dist/cli/commands/doctor-conflicts.d.ts.map +1 -1
  264. package/dist/cli/commands/doctor-conflicts.js +126 -12
  265. package/dist/cli/commands/doctor-conflicts.js.map +1 -1
  266. package/dist/cli/commands/team.d.ts +19 -0
  267. package/dist/cli/commands/team.d.ts.map +1 -0
  268. package/dist/cli/commands/team.js +510 -0
  269. package/dist/cli/commands/team.js.map +1 -0
  270. package/dist/cli/commands/teleport.d.ts.map +1 -1
  271. package/dist/cli/commands/teleport.js +6 -4
  272. package/dist/cli/commands/teleport.js.map +1 -1
  273. package/dist/cli/index.js +58 -17
  274. package/dist/cli/index.js.map +1 -1
  275. package/dist/cli/launch.d.ts.map +1 -1
  276. package/dist/cli/launch.js +12 -6
  277. package/dist/cli/launch.js.map +1 -1
  278. package/dist/cli/team.d.ts +76 -0
  279. package/dist/cli/team.d.ts.map +1 -0
  280. package/dist/cli/team.js +1117 -0
  281. package/dist/cli/team.js.map +1 -0
  282. package/dist/cli/tmux-utils.d.ts +10 -0
  283. package/dist/cli/tmux-utils.d.ts.map +1 -1
  284. package/dist/cli/tmux-utils.js +20 -1
  285. package/dist/cli/tmux-utils.js.map +1 -1
  286. package/dist/config/loader.d.ts.map +1 -1
  287. package/dist/config/loader.js +134 -48
  288. package/dist/config/loader.js.map +1 -1
  289. package/dist/config/models.d.ts +36 -14
  290. package/dist/config/models.d.ts.map +1 -1
  291. package/dist/config/models.js +94 -0
  292. package/dist/config/models.js.map +1 -1
  293. package/dist/constants/names.d.ts +6 -3
  294. package/dist/constants/names.d.ts.map +1 -1
  295. package/dist/constants/names.js +7 -3
  296. package/dist/constants/names.js.map +1 -1
  297. package/dist/features/auto-update.js +5 -5
  298. package/dist/features/auto-update.js.map +1 -1
  299. package/dist/features/boulder-state/storage.d.ts +1 -1
  300. package/dist/features/boulder-state/storage.d.ts.map +1 -1
  301. package/dist/features/boulder-state/storage.js +20 -22
  302. package/dist/features/boulder-state/storage.js.map +1 -1
  303. package/dist/features/delegation-enforcer.d.ts +5 -0
  304. package/dist/features/delegation-enforcer.d.ts.map +1 -1
  305. package/dist/features/delegation-enforcer.js +58 -5
  306. package/dist/features/delegation-enforcer.js.map +1 -1
  307. package/dist/features/model-routing/router.d.ts.map +1 -1
  308. package/dist/features/model-routing/router.js +11 -0
  309. package/dist/features/model-routing/router.js.map +1 -1
  310. package/dist/features/model-routing/types.d.ts +6 -0
  311. package/dist/features/model-routing/types.d.ts.map +1 -1
  312. package/dist/features/model-routing/types.js.map +1 -1
  313. package/dist/features/rate-limit-wait/daemon.d.ts +5 -0
  314. package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
  315. package/dist/features/rate-limit-wait/daemon.js +38 -9
  316. package/dist/features/rate-limit-wait/daemon.js.map +1 -1
  317. package/dist/features/rate-limit-wait/rate-limit-monitor.d.ts.map +1 -1
  318. package/dist/features/rate-limit-wait/rate-limit-monitor.js +3 -2
  319. package/dist/features/rate-limit-wait/rate-limit-monitor.js.map +1 -1
  320. package/dist/features/rate-limit-wait/tmux-detector.d.ts.map +1 -1
  321. package/dist/features/rate-limit-wait/tmux-detector.js +8 -2
  322. package/dist/features/rate-limit-wait/tmux-detector.js.map +1 -1
  323. package/dist/features/state-manager/__tests__/cache.test.js +161 -1
  324. package/dist/features/state-manager/__tests__/cache.test.js.map +1 -1
  325. package/dist/features/state-manager/index.d.ts +2 -0
  326. package/dist/features/state-manager/index.d.ts.map +1 -1
  327. package/dist/features/state-manager/index.js +167 -51
  328. package/dist/features/state-manager/index.js.map +1 -1
  329. package/dist/hooks/__tests__/bridge-routing.test.js +124 -1
  330. package/dist/hooks/__tests__/bridge-routing.test.js.map +1 -1
  331. package/dist/hooks/__tests__/bridge-security.test.js +1 -1
  332. package/dist/hooks/__tests__/bridge-security.test.js.map +1 -1
  333. package/dist/hooks/__tests__/bridge-team-worker-guard.test.d.ts +2 -0
  334. package/dist/hooks/__tests__/bridge-team-worker-guard.test.d.ts.map +1 -0
  335. package/dist/hooks/__tests__/bridge-team-worker-guard.test.js +52 -0
  336. package/dist/hooks/__tests__/bridge-team-worker-guard.test.js.map +1 -0
  337. package/dist/hooks/__tests__/bridge.test.js.map +1 -1
  338. package/dist/hooks/__tests__/codebase-map.test.js.map +1 -1
  339. package/dist/hooks/__tests__/compaction-concurrency.test.js.map +1 -1
  340. package/dist/hooks/__tests__/stop-hook-openclaw-cooldown.test.d.ts +2 -0
  341. package/dist/hooks/__tests__/stop-hook-openclaw-cooldown.test.d.ts.map +1 -0
  342. package/dist/hooks/__tests__/stop-hook-openclaw-cooldown.test.js +65 -0
  343. package/dist/hooks/__tests__/stop-hook-openclaw-cooldown.test.js.map +1 -0
  344. package/dist/hooks/auto-slash-command/live-data.d.ts.map +1 -1
  345. package/dist/hooks/auto-slash-command/live-data.js +54 -25
  346. package/dist/hooks/auto-slash-command/live-data.js.map +1 -1
  347. package/dist/hooks/autopilot/__tests__/cancel.test.js +1 -1
  348. package/dist/hooks/autopilot/__tests__/cancel.test.js.map +1 -1
  349. package/dist/hooks/autopilot/__tests__/pipeline.test.d.ts +2 -0
  350. package/dist/hooks/autopilot/__tests__/pipeline.test.d.ts.map +1 -0
  351. package/dist/hooks/autopilot/__tests__/pipeline.test.js +375 -0
  352. package/dist/hooks/autopilot/__tests__/pipeline.test.js.map +1 -0
  353. package/dist/hooks/autopilot/__tests__/state.test.js +2 -2
  354. package/dist/hooks/autopilot/__tests__/state.test.js.map +1 -1
  355. package/dist/hooks/autopilot/__tests__/summary.test.js.map +1 -1
  356. package/dist/hooks/autopilot/__tests__/transition.test.js.map +1 -1
  357. package/dist/hooks/autopilot/__tests__/validation.test.js +3 -3
  358. package/dist/hooks/autopilot/__tests__/validation.test.js.map +1 -1
  359. package/dist/hooks/autopilot/adapters/execution-adapter.d.ts +12 -0
  360. package/dist/hooks/autopilot/adapters/execution-adapter.d.ts.map +1 -0
  361. package/dist/hooks/autopilot/adapters/execution-adapter.js +110 -0
  362. package/dist/hooks/autopilot/adapters/execution-adapter.js.map +1 -0
  363. package/dist/hooks/autopilot/adapters/index.d.ts +22 -0
  364. package/dist/hooks/autopilot/adapters/index.d.ts.map +1 -0
  365. package/dist/hooks/autopilot/adapters/index.js +32 -0
  366. package/dist/hooks/autopilot/adapters/index.js.map +1 -0
  367. package/dist/hooks/autopilot/adapters/qa-adapter.d.ts +12 -0
  368. package/dist/hooks/autopilot/adapters/qa-adapter.d.ts.map +1 -0
  369. package/dist/hooks/autopilot/adapters/qa-adapter.js +33 -0
  370. package/dist/hooks/autopilot/adapters/qa-adapter.js.map +1 -0
  371. package/dist/hooks/autopilot/adapters/ralph-adapter.d.ts +15 -0
  372. package/dist/hooks/autopilot/adapters/ralph-adapter.d.ts.map +1 -0
  373. package/dist/hooks/autopilot/adapters/ralph-adapter.js +102 -0
  374. package/dist/hooks/autopilot/adapters/ralph-adapter.js.map +1 -0
  375. package/dist/hooks/autopilot/adapters/ralplan-adapter.d.ts +14 -0
  376. package/dist/hooks/autopilot/adapters/ralplan-adapter.d.ts.map +1 -0
  377. package/dist/hooks/autopilot/adapters/ralplan-adapter.js +81 -0
  378. package/dist/hooks/autopilot/adapters/ralplan-adapter.js.map +1 -0
  379. package/dist/hooks/autopilot/enforcement.d.ts.map +1 -1
  380. package/dist/hooks/autopilot/enforcement.js +162 -0
  381. package/dist/hooks/autopilot/enforcement.js.map +1 -1
  382. package/dist/hooks/autopilot/index.d.ts +4 -0
  383. package/dist/hooks/autopilot/index.d.ts.map +1 -1
  384. package/dist/hooks/autopilot/index.js +5 -0
  385. package/dist/hooks/autopilot/index.js.map +1 -1
  386. package/dist/hooks/autopilot/pipeline-types.d.ts +133 -0
  387. package/dist/hooks/autopilot/pipeline-types.d.ts.map +1 -0
  388. package/dist/hooks/autopilot/pipeline-types.js +44 -0
  389. package/dist/hooks/autopilot/pipeline-types.js.map +1 -0
  390. package/dist/hooks/autopilot/pipeline.d.ts +124 -0
  391. package/dist/hooks/autopilot/pipeline.d.ts.map +1 -0
  392. package/dist/hooks/autopilot/pipeline.js +407 -0
  393. package/dist/hooks/autopilot/pipeline.js.map +1 -0
  394. package/dist/hooks/autopilot/state.d.ts +6 -6
  395. package/dist/hooks/autopilot/state.d.ts.map +1 -1
  396. package/dist/hooks/autopilot/state.js +71 -129
  397. package/dist/hooks/autopilot/state.js.map +1 -1
  398. package/dist/hooks/autopilot/types.d.ts +21 -0
  399. package/dist/hooks/autopilot/types.d.ts.map +1 -1
  400. package/dist/hooks/autopilot/types.js.map +1 -1
  401. package/dist/hooks/bridge-normalize.d.ts.map +1 -1
  402. package/dist/hooks/bridge-normalize.js +13 -2
  403. package/dist/hooks/bridge-normalize.js.map +1 -1
  404. package/dist/hooks/bridge.d.ts.map +1 -1
  405. package/dist/hooks/bridge.js +151 -27
  406. package/dist/hooks/bridge.js.map +1 -1
  407. package/dist/hooks/comment-checker/index.js +1 -1
  408. package/dist/hooks/comment-checker/index.js.map +1 -1
  409. package/dist/hooks/empty-message-sanitizer/__tests__/index.test.js +2 -2
  410. package/dist/hooks/empty-message-sanitizer/__tests__/index.test.js.map +1 -1
  411. package/dist/hooks/factcheck/__tests__/factcheck.test.d.ts +7 -0
  412. package/dist/hooks/factcheck/__tests__/factcheck.test.d.ts.map +1 -0
  413. package/dist/hooks/factcheck/__tests__/factcheck.test.js +153 -0
  414. package/dist/hooks/factcheck/__tests__/factcheck.test.js.map +1 -0
  415. package/dist/hooks/factcheck/__tests__/sentinel-gate.test.d.ts +5 -0
  416. package/dist/hooks/factcheck/__tests__/sentinel-gate.test.d.ts.map +1 -0
  417. package/dist/hooks/factcheck/__tests__/sentinel-gate.test.js +159 -0
  418. package/dist/hooks/factcheck/__tests__/sentinel-gate.test.js.map +1 -0
  419. package/dist/hooks/factcheck/__tests__/sentinel.test.d.ts +7 -0
  420. package/dist/hooks/factcheck/__tests__/sentinel.test.d.ts.map +1 -0
  421. package/dist/hooks/factcheck/__tests__/sentinel.test.js +117 -0
  422. package/dist/hooks/factcheck/__tests__/sentinel.test.js.map +1 -0
  423. package/dist/hooks/factcheck/checks.d.ts +36 -0
  424. package/dist/hooks/factcheck/checks.d.ts.map +1 -0
  425. package/dist/hooks/factcheck/checks.js +144 -0
  426. package/dist/hooks/factcheck/checks.js.map +1 -0
  427. package/dist/hooks/factcheck/config.d.ts +25 -0
  428. package/dist/hooks/factcheck/config.d.ts.map +1 -0
  429. package/dist/hooks/factcheck/config.js +125 -0
  430. package/dist/hooks/factcheck/config.js.map +1 -0
  431. package/dist/hooks/factcheck/index.d.ts +34 -0
  432. package/dist/hooks/factcheck/index.d.ts.map +1 -0
  433. package/dist/hooks/factcheck/index.js +120 -0
  434. package/dist/hooks/factcheck/index.js.map +1 -0
  435. package/dist/hooks/factcheck/sentinel.d.ts +32 -0
  436. package/dist/hooks/factcheck/sentinel.d.ts.map +1 -0
  437. package/dist/hooks/factcheck/sentinel.js +153 -0
  438. package/dist/hooks/factcheck/sentinel.js.map +1 -0
  439. package/dist/hooks/factcheck/types.d.ts +99 -0
  440. package/dist/hooks/factcheck/types.d.ts.map +1 -0
  441. package/dist/hooks/factcheck/types.js +27 -0
  442. package/dist/hooks/factcheck/types.js.map +1 -0
  443. package/dist/hooks/keyword-detector/__tests__/index.test.js +29 -80
  444. package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
  445. package/dist/hooks/keyword-detector/index.d.ts +1 -1
  446. package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
  447. package/dist/hooks/keyword-detector/index.js +11 -21
  448. package/dist/hooks/keyword-detector/index.js.map +1 -1
  449. package/dist/hooks/learner/bridge.d.ts.map +1 -1
  450. package/dist/hooks/learner/bridge.js +8 -0
  451. package/dist/hooks/learner/bridge.js.map +1 -1
  452. package/dist/hooks/learner/index.d.ts +15 -15
  453. package/dist/hooks/learner/index.d.ts.map +1 -1
  454. package/dist/hooks/learner/index.js +44 -38
  455. package/dist/hooks/learner/index.js.map +1 -1
  456. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js +4 -2
  457. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js.map +1 -1
  458. package/dist/hooks/mode-registry/index.d.ts +2 -13
  459. package/dist/hooks/mode-registry/index.d.ts.map +1 -1
  460. package/dist/hooks/mode-registry/index.js +77 -174
  461. package/dist/hooks/mode-registry/index.js.map +1 -1
  462. package/dist/hooks/mode-registry/types.d.ts +1 -1
  463. package/dist/hooks/mode-registry/types.d.ts.map +1 -1
  464. package/dist/hooks/notepad/index.d.ts.map +1 -1
  465. package/dist/hooks/notepad/index.js +83 -73
  466. package/dist/hooks/notepad/index.js.map +1 -1
  467. package/dist/hooks/omc-orchestrator/index.d.ts.map +1 -1
  468. package/dist/hooks/omc-orchestrator/index.js +2 -1
  469. package/dist/hooks/omc-orchestrator/index.js.map +1 -1
  470. package/dist/hooks/permission-handler/__tests__/index.test.js +2 -2
  471. package/dist/hooks/permission-handler/__tests__/index.test.js.map +1 -1
  472. package/dist/hooks/permission-handler/index.d.ts +1 -1
  473. package/dist/hooks/permission-handler/index.d.ts.map +1 -1
  474. package/dist/hooks/permission-handler/index.js +4 -8
  475. package/dist/hooks/permission-handler/index.js.map +1 -1
  476. package/dist/hooks/persistent-mode/__tests__/rate-limit-stop.test.js +23 -0
  477. package/dist/hooks/persistent-mode/__tests__/rate-limit-stop.test.js.map +1 -1
  478. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js.map +1 -1
  479. package/dist/hooks/persistent-mode/__tests__/tool-error.test.js +1 -1
  480. package/dist/hooks/persistent-mode/__tests__/tool-error.test.js.map +1 -1
  481. package/dist/hooks/persistent-mode/index.d.ts +3 -3
  482. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  483. package/dist/hooks/persistent-mode/index.js +25 -12
  484. package/dist/hooks/persistent-mode/index.js.map +1 -1
  485. package/dist/hooks/persistent-mode/session-isolation.test.js +20 -4
  486. package/dist/hooks/persistent-mode/session-isolation.test.js.map +1 -1
  487. package/dist/hooks/persistent-mode/stop-hook-blocking.test.d.ts +2 -0
  488. package/dist/hooks/persistent-mode/stop-hook-blocking.test.d.ts.map +1 -0
  489. package/dist/hooks/persistent-mode/stop-hook-blocking.test.js +367 -0
  490. package/dist/hooks/persistent-mode/stop-hook-blocking.test.js.map +1 -0
  491. package/dist/hooks/pre-compact/index.d.ts +2 -14
  492. package/dist/hooks/pre-compact/index.d.ts.map +1 -1
  493. package/dist/hooks/pre-compact/index.js +8 -49
  494. package/dist/hooks/pre-compact/index.js.map +1 -1
  495. package/dist/hooks/preemptive-compaction/index.js +1 -1
  496. package/dist/hooks/preemptive-compaction/index.js.map +1 -1
  497. package/dist/hooks/project-memory/__tests__/integration.test.js +4 -2
  498. package/dist/hooks/project-memory/__tests__/integration.test.js.map +1 -1
  499. package/dist/hooks/project-memory/index.d.ts +9 -9
  500. package/dist/hooks/project-memory/index.d.ts.map +1 -1
  501. package/dist/hooks/project-memory/index.js +25 -25
  502. package/dist/hooks/project-memory/index.js.map +1 -1
  503. package/dist/hooks/project-memory/learner.d.ts.map +1 -1
  504. package/dist/hooks/project-memory/learner.js +92 -86
  505. package/dist/hooks/project-memory/learner.js.map +1 -1
  506. package/dist/hooks/project-memory/storage.d.ts +9 -0
  507. package/dist/hooks/project-memory/storage.d.ts.map +1 -1
  508. package/dist/hooks/project-memory/storage.js +15 -0
  509. package/dist/hooks/project-memory/storage.js.map +1 -1
  510. package/dist/hooks/ralph/index.d.ts +1 -1
  511. package/dist/hooks/ralph/index.d.ts.map +1 -1
  512. package/dist/hooks/ralph/index.js +2 -0
  513. package/dist/hooks/ralph/index.js.map +1 -1
  514. package/dist/hooks/ralph/loop.d.ts +10 -2
  515. package/dist/hooks/ralph/loop.d.ts.map +1 -1
  516. package/dist/hooks/ralph/loop.js +64 -113
  517. package/dist/hooks/ralph/loop.js.map +1 -1
  518. package/dist/hooks/ralph/prd.d.ts.map +1 -1
  519. package/dist/hooks/ralph/prd.js +3 -2
  520. package/dist/hooks/ralph/prd.js.map +1 -1
  521. package/dist/hooks/ralph/progress.d.ts.map +1 -1
  522. package/dist/hooks/ralph/progress.js +6 -5
  523. package/dist/hooks/ralph/progress.js.map +1 -1
  524. package/dist/hooks/ralph/verifier.d.ts +3 -1
  525. package/dist/hooks/ralph/verifier.d.ts.map +1 -1
  526. package/dist/hooks/ralph/verifier.js +19 -7
  527. package/dist/hooks/ralph/verifier.js.map +1 -1
  528. package/dist/hooks/session-end/__tests__/openclaw-session-end.test.d.ts +2 -0
  529. package/dist/hooks/session-end/__tests__/openclaw-session-end.test.d.ts.map +1 -0
  530. package/dist/hooks/session-end/__tests__/openclaw-session-end.test.js +86 -0
  531. package/dist/hooks/session-end/__tests__/openclaw-session-end.test.js.map +1 -0
  532. package/dist/hooks/session-end/index.d.ts.map +1 -1
  533. package/dist/hooks/session-end/index.js +17 -17
  534. package/dist/hooks/session-end/index.js.map +1 -1
  535. package/dist/hooks/setup/index.d.ts.map +1 -1
  536. package/dist/hooks/setup/index.js +0 -2
  537. package/dist/hooks/setup/index.js.map +1 -1
  538. package/dist/hooks/skill-bridge.cjs +13 -4
  539. package/dist/hooks/skill-state/__tests__/skill-state.test.js.map +1 -1
  540. package/dist/hooks/skill-state/index.d.ts +0 -5
  541. package/dist/hooks/skill-state/index.d.ts.map +1 -1
  542. package/dist/hooks/skill-state/index.js +9 -55
  543. package/dist/hooks/skill-state/index.js.map +1 -1
  544. package/dist/hooks/subagent-tracker/__tests__/flush-race.test.js.map +1 -1
  545. package/dist/hooks/subagent-tracker/__tests__/index.test.js.map +1 -1
  546. package/dist/hooks/subagent-tracker/__tests__/session-replay.test.js +1 -1
  547. package/dist/hooks/subagent-tracker/__tests__/session-replay.test.js.map +1 -1
  548. package/dist/hooks/subagent-tracker/index.d.ts.map +1 -1
  549. package/dist/hooks/subagent-tracker/index.js +10 -22
  550. package/dist/hooks/subagent-tracker/index.js.map +1 -1
  551. package/dist/hooks/subagent-tracker/session-replay.d.ts.map +1 -1
  552. package/dist/hooks/subagent-tracker/session-replay.js +3 -2
  553. package/dist/hooks/subagent-tracker/session-replay.js.map +1 -1
  554. package/dist/hooks/task-size-detector/__tests__/index.test.js +7 -7
  555. package/dist/hooks/task-size-detector/__tests__/index.test.js.map +1 -1
  556. package/dist/hooks/task-size-detector/index.d.ts.map +1 -1
  557. package/dist/hooks/task-size-detector/index.js +0 -3
  558. package/dist/hooks/task-size-detector/index.js.map +1 -1
  559. package/dist/hooks/team-dispatch-hook.d.ts +65 -0
  560. package/dist/hooks/team-dispatch-hook.d.ts.map +1 -0
  561. package/dist/hooks/team-dispatch-hook.js +663 -0
  562. package/dist/hooks/team-dispatch-hook.js.map +1 -0
  563. package/dist/hooks/team-leader-nudge-hook.d.ts +36 -0
  564. package/dist/hooks/team-leader-nudge-hook.d.ts.map +1 -0
  565. package/dist/hooks/team-leader-nudge-hook.js +218 -0
  566. package/dist/hooks/team-leader-nudge-hook.js.map +1 -0
  567. package/dist/hooks/team-worker-hook.d.ts +45 -0
  568. package/dist/hooks/team-worker-hook.d.ts.map +1 -0
  569. package/dist/hooks/team-worker-hook.js +415 -0
  570. package/dist/hooks/team-worker-hook.js.map +1 -0
  571. package/dist/hooks/think-mode/__tests__/index.test.js.map +1 -1
  572. package/dist/hooks/todo-continuation/__tests__/isAuthenticationError.test.d.ts +2 -0
  573. package/dist/hooks/todo-continuation/__tests__/isAuthenticationError.test.d.ts.map +1 -0
  574. package/dist/hooks/todo-continuation/__tests__/isAuthenticationError.test.js +33 -0
  575. package/dist/hooks/todo-continuation/__tests__/isAuthenticationError.test.js.map +1 -0
  576. package/dist/hooks/todo-continuation/index.d.ts +12 -0
  577. package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
  578. package/dist/hooks/todo-continuation/index.js +37 -1
  579. package/dist/hooks/todo-continuation/index.js.map +1 -1
  580. package/dist/hooks/ultrapilot/decomposer.d.ts.map +1 -1
  581. package/dist/hooks/ultrapilot/decomposer.js +3 -1
  582. package/dist/hooks/ultrapilot/decomposer.js.map +1 -1
  583. package/dist/hooks/ultrapilot/index.d.ts.map +1 -1
  584. package/dist/hooks/ultrapilot/index.js +3 -1
  585. package/dist/hooks/ultrapilot/index.js.map +1 -1
  586. package/dist/hooks/ultrapilot/state.d.ts +1 -1
  587. package/dist/hooks/ultrapilot/state.d.ts.map +1 -1
  588. package/dist/hooks/ultrapilot/state.js +45 -77
  589. package/dist/hooks/ultrapilot/state.js.map +1 -1
  590. package/dist/hooks/ultraqa/index.d.ts.map +1 -1
  591. package/dist/hooks/ultraqa/index.js +4 -77
  592. package/dist/hooks/ultraqa/index.js.map +1 -1
  593. package/dist/hooks/ultrawork/index.d.ts.map +1 -1
  594. package/dist/hooks/ultrawork/index.js +40 -82
  595. package/dist/hooks/ultrawork/index.js.map +1 -1
  596. package/dist/hooks/ultrawork/session-isolation.test.js +1 -1
  597. package/dist/hooks/ultrawork/session-isolation.test.js.map +1 -1
  598. package/dist/hud/elements/api-key-source.d.ts +30 -0
  599. package/dist/hud/elements/api-key-source.d.ts.map +1 -0
  600. package/dist/hud/elements/api-key-source.js +70 -0
  601. package/dist/hud/elements/api-key-source.js.map +1 -0
  602. package/dist/hud/elements/index.d.ts +1 -0
  603. package/dist/hud/elements/index.d.ts.map +1 -1
  604. package/dist/hud/elements/index.js +1 -0
  605. package/dist/hud/elements/index.js.map +1 -1
  606. package/dist/hud/elements/limits.d.ts +9 -1
  607. package/dist/hud/elements/limits.d.ts.map +1 -1
  608. package/dist/hud/elements/limits.js +18 -0
  609. package/dist/hud/elements/limits.js.map +1 -1
  610. package/dist/hud/index.d.ts.map +1 -1
  611. package/dist/hud/index.js +40 -25
  612. package/dist/hud/index.js.map +1 -1
  613. package/dist/hud/omc-state.d.ts.map +1 -1
  614. package/dist/hud/omc-state.js +6 -4
  615. package/dist/hud/omc-state.js.map +1 -1
  616. package/dist/hud/render.d.ts +9 -0
  617. package/dist/hud/render.d.ts.map +1 -1
  618. package/dist/hud/render.js +166 -15
  619. package/dist/hud/render.js.map +1 -1
  620. package/dist/hud/state.d.ts.map +1 -1
  621. package/dist/hud/state.js +23 -14
  622. package/dist/hud/state.js.map +1 -1
  623. package/dist/hud/stdin.d.ts.map +1 -1
  624. package/dist/hud/stdin.js +5 -2
  625. package/dist/hud/stdin.js.map +1 -1
  626. package/dist/hud/types.d.ts +34 -3
  627. package/dist/hud/types.d.ts.map +1 -1
  628. package/dist/hud/types.js +19 -0
  629. package/dist/hud/types.js.map +1 -1
  630. package/dist/hud/usage-api.d.ts +9 -6
  631. package/dist/hud/usage-api.d.ts.map +1 -1
  632. package/dist/hud/usage-api.js +115 -46
  633. package/dist/hud/usage-api.js.map +1 -1
  634. package/dist/index.d.ts +3 -1
  635. package/dist/index.d.ts.map +1 -1
  636. package/dist/index.js +6 -2
  637. package/dist/index.js.map +1 -1
  638. package/dist/installer/__tests__/claude-md-merge.test.js +29 -0
  639. package/dist/installer/__tests__/claude-md-merge.test.js.map +1 -1
  640. package/dist/installer/__tests__/safe-installer.test.js +1 -1
  641. package/dist/installer/__tests__/safe-installer.test.js.map +1 -1
  642. package/dist/installer/hooks.d.ts.map +1 -1
  643. package/dist/installer/hooks.js +11 -12
  644. package/dist/installer/hooks.js.map +1 -1
  645. package/dist/installer/index.d.ts.map +1 -1
  646. package/dist/installer/index.js +20 -16
  647. package/dist/installer/index.js.map +1 -1
  648. package/dist/interop/__tests__/worker-adapter-integration.test.d.ts +2 -0
  649. package/dist/interop/__tests__/worker-adapter-integration.test.d.ts.map +1 -0
  650. package/dist/interop/__tests__/worker-adapter-integration.test.js +219 -0
  651. package/dist/interop/__tests__/worker-adapter-integration.test.js.map +1 -0
  652. package/dist/interop/__tests__/worker-adapter.test.d.ts +2 -0
  653. package/dist/interop/__tests__/worker-adapter.test.d.ts.map +1 -0
  654. package/dist/interop/__tests__/worker-adapter.test.js +408 -0
  655. package/dist/interop/__tests__/worker-adapter.test.js.map +1 -0
  656. package/dist/interop/adapter-types.d.ts +39 -0
  657. package/dist/interop/adapter-types.d.ts.map +1 -0
  658. package/dist/interop/adapter-types.js +9 -0
  659. package/dist/interop/adapter-types.js.map +1 -0
  660. package/dist/interop/worker-adapter.d.ts +116 -0
  661. package/dist/interop/worker-adapter.d.ts.map +1 -0
  662. package/dist/interop/worker-adapter.js +324 -0
  663. package/dist/interop/worker-adapter.js.map +1 -0
  664. package/dist/lib/__tests__/mode-state-io.test.d.ts +2 -0
  665. package/dist/lib/__tests__/mode-state-io.test.d.ts.map +1 -0
  666. package/dist/lib/__tests__/mode-state-io.test.js +194 -0
  667. package/dist/lib/__tests__/mode-state-io.test.js.map +1 -0
  668. package/dist/lib/__tests__/payload-limits.test.d.ts +2 -0
  669. package/dist/lib/__tests__/payload-limits.test.d.ts.map +1 -0
  670. package/dist/lib/__tests__/payload-limits.test.js +124 -0
  671. package/dist/lib/__tests__/payload-limits.test.js.map +1 -0
  672. package/dist/lib/__tests__/worktree-paths.test.js +5 -4
  673. package/dist/lib/__tests__/worktree-paths.test.js.map +1 -1
  674. package/dist/lib/file-lock.d.ts +75 -0
  675. package/dist/lib/file-lock.d.ts.map +1 -0
  676. package/dist/lib/file-lock.js +246 -0
  677. package/dist/lib/file-lock.js.map +1 -0
  678. package/dist/lib/mode-names.d.ts +10 -3
  679. package/dist/lib/mode-names.d.ts.map +1 -1
  680. package/dist/lib/mode-names.js +12 -17
  681. package/dist/lib/mode-names.js.map +1 -1
  682. package/dist/lib/mode-state-io.d.ts +41 -0
  683. package/dist/lib/mode-state-io.d.ts.map +1 -0
  684. package/dist/lib/mode-state-io.js +127 -0
  685. package/dist/lib/mode-state-io.js.map +1 -0
  686. package/dist/lib/payload-limits.d.ts +31 -0
  687. package/dist/lib/payload-limits.d.ts.map +1 -0
  688. package/dist/lib/payload-limits.js +82 -0
  689. package/dist/lib/payload-limits.js.map +1 -0
  690. package/dist/lib/project-memory-merge.d.ts +36 -0
  691. package/dist/lib/project-memory-merge.d.ts.map +1 -0
  692. package/dist/lib/project-memory-merge.js +154 -0
  693. package/dist/lib/project-memory-merge.js.map +1 -0
  694. package/dist/lib/shared-memory.d.ts +82 -0
  695. package/dist/lib/shared-memory.d.ts.map +1 -0
  696. package/dist/lib/shared-memory.js +305 -0
  697. package/dist/lib/shared-memory.js.map +1 -0
  698. package/dist/lib/worktree-paths.d.ts +31 -3
  699. package/dist/lib/worktree-paths.d.ts.map +1 -1
  700. package/dist/lib/worktree-paths.js +147 -12
  701. package/dist/lib/worktree-paths.js.map +1 -1
  702. package/dist/mcp/__tests__/team-server-artifact-convergence.test.d.ts +2 -0
  703. package/dist/mcp/__tests__/team-server-artifact-convergence.test.d.ts.map +1 -0
  704. package/dist/mcp/__tests__/team-server-artifact-convergence.test.js +84 -0
  705. package/dist/mcp/__tests__/team-server-artifact-convergence.test.js.map +1 -0
  706. package/dist/mcp/__tests__/team-server-deprecation.test.d.ts +2 -0
  707. package/dist/mcp/__tests__/team-server-deprecation.test.d.ts.map +1 -0
  708. package/dist/mcp/__tests__/team-server-deprecation.test.js +54 -0
  709. package/dist/mcp/__tests__/team-server-deprecation.test.js.map +1 -0
  710. package/dist/mcp/omc-tools-server.d.ts +2 -0
  711. package/dist/mcp/omc-tools-server.d.ts.map +1 -1
  712. package/dist/mcp/omc-tools-server.js +9 -2
  713. package/dist/mcp/omc-tools-server.js.map +1 -1
  714. package/dist/mcp/team-job-convergence.d.ts +20 -0
  715. package/dist/mcp/team-job-convergence.d.ts.map +1 -0
  716. package/dist/mcp/team-job-convergence.js +101 -0
  717. package/dist/mcp/team-job-convergence.js.map +1 -0
  718. package/dist/mcp/team-server.d.ts +33 -10
  719. package/dist/mcp/team-server.d.ts.map +1 -1
  720. package/dist/mcp/team-server.js +219 -109
  721. package/dist/mcp/team-server.js.map +1 -1
  722. package/dist/notifications/__tests__/config.test.js +100 -6
  723. package/dist/notifications/__tests__/config.test.js.map +1 -1
  724. package/dist/notifications/__tests__/custom-integration.test.d.ts +8 -0
  725. package/dist/notifications/__tests__/custom-integration.test.d.ts.map +1 -0
  726. package/dist/notifications/__tests__/custom-integration.test.js +297 -0
  727. package/dist/notifications/__tests__/custom-integration.test.js.map +1 -0
  728. package/dist/notifications/__tests__/dispatcher.test.js +195 -0
  729. package/dist/notifications/__tests__/dispatcher.test.js.map +1 -1
  730. package/dist/notifications/__tests__/redact.test.d.ts +2 -0
  731. package/dist/notifications/__tests__/redact.test.d.ts.map +1 -0
  732. package/dist/notifications/__tests__/redact.test.js +111 -0
  733. package/dist/notifications/__tests__/redact.test.js.map +1 -0
  734. package/dist/notifications/__tests__/reply-listener.test.js +8 -1
  735. package/dist/notifications/__tests__/reply-listener.test.js.map +1 -1
  736. package/dist/notifications/__tests__/slack-socket.test.d.ts +2 -0
  737. package/dist/notifications/__tests__/slack-socket.test.d.ts.map +1 -0
  738. package/dist/notifications/__tests__/slack-socket.test.js +293 -0
  739. package/dist/notifications/__tests__/slack-socket.test.js.map +1 -0
  740. package/dist/notifications/__tests__/template-engine.test.js +32 -0
  741. package/dist/notifications/__tests__/template-engine.test.js.map +1 -1
  742. package/dist/notifications/config.d.ts +40 -0
  743. package/dist/notifications/config.d.ts.map +1 -1
  744. package/dist/notifications/config.js +201 -4
  745. package/dist/notifications/config.js.map +1 -1
  746. package/dist/notifications/dispatcher.d.ts +20 -1
  747. package/dist/notifications/dispatcher.d.ts.map +1 -1
  748. package/dist/notifications/dispatcher.js +183 -7
  749. package/dist/notifications/dispatcher.js.map +1 -1
  750. package/dist/notifications/hook-config-types.d.ts +1 -1
  751. package/dist/notifications/hook-config-types.d.ts.map +1 -1
  752. package/dist/notifications/index.d.ts +11 -2
  753. package/dist/notifications/index.d.ts.map +1 -1
  754. package/dist/notifications/index.js +13 -3
  755. package/dist/notifications/index.js.map +1 -1
  756. package/dist/notifications/presets.d.ts +43 -0
  757. package/dist/notifications/presets.d.ts.map +1 -0
  758. package/dist/notifications/presets.js +122 -0
  759. package/dist/notifications/presets.js.map +1 -0
  760. package/dist/notifications/redact.d.ts +21 -0
  761. package/dist/notifications/redact.d.ts.map +1 -0
  762. package/dist/notifications/redact.js +33 -0
  763. package/dist/notifications/redact.js.map +1 -0
  764. package/dist/notifications/reply-listener.d.ts +54 -2
  765. package/dist/notifications/reply-listener.d.ts.map +1 -1
  766. package/dist/notifications/reply-listener.js +178 -15
  767. package/dist/notifications/reply-listener.js.map +1 -1
  768. package/dist/notifications/session-registry.d.ts +1 -1
  769. package/dist/notifications/session-registry.d.ts.map +1 -1
  770. package/dist/notifications/slack-socket.d.ts +242 -0
  771. package/dist/notifications/slack-socket.d.ts.map +1 -0
  772. package/dist/notifications/slack-socket.js +603 -0
  773. package/dist/notifications/slack-socket.js.map +1 -0
  774. package/dist/notifications/template-engine.d.ts.map +1 -1
  775. package/dist/notifications/template-engine.js +4 -0
  776. package/dist/notifications/template-engine.js.map +1 -1
  777. package/dist/notifications/template-variables.d.ts +26 -0
  778. package/dist/notifications/template-variables.d.ts.map +1 -0
  779. package/dist/notifications/template-variables.js +139 -0
  780. package/dist/notifications/template-variables.js.map +1 -0
  781. package/dist/notifications/types.d.ts +75 -2
  782. package/dist/notifications/types.d.ts.map +1 -1
  783. package/dist/notifications/validation.d.ts +24 -0
  784. package/dist/notifications/validation.d.ts.map +1 -0
  785. package/dist/notifications/validation.js +167 -0
  786. package/dist/notifications/validation.js.map +1 -0
  787. package/dist/openclaw/__tests__/dispatcher.test.js +0 -1
  788. package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
  789. package/dist/openclaw/__tests__/index.test.js +82 -0
  790. package/dist/openclaw/__tests__/index.test.js.map +1 -1
  791. package/dist/openclaw/index.d.ts.map +1 -1
  792. package/dist/openclaw/index.js +24 -1
  793. package/dist/openclaw/index.js.map +1 -1
  794. package/dist/openclaw/types.d.ts +12 -0
  795. package/dist/openclaw/types.d.ts.map +1 -1
  796. package/dist/shared/types.d.ts +84 -20
  797. package/dist/shared/types.d.ts.map +1 -1
  798. package/dist/team/__tests__/api-interop.command-dialect.test.d.ts +2 -0
  799. package/dist/team/__tests__/api-interop.command-dialect.test.d.ts.map +1 -0
  800. package/dist/team/__tests__/api-interop.command-dialect.test.js +26 -0
  801. package/dist/team/__tests__/api-interop.command-dialect.test.js.map +1 -0
  802. package/dist/team/__tests__/api-interop.compatibility.test.d.ts +2 -0
  803. package/dist/team/__tests__/api-interop.compatibility.test.d.ts.map +1 -0
  804. package/dist/team/__tests__/api-interop.compatibility.test.js +93 -0
  805. package/dist/team/__tests__/api-interop.compatibility.test.js.map +1 -0
  806. package/dist/team/__tests__/cli-path-resolution.test.d.ts +2 -0
  807. package/dist/team/__tests__/cli-path-resolution.test.d.ts.map +1 -0
  808. package/dist/team/__tests__/cli-path-resolution.test.js +281 -0
  809. package/dist/team/__tests__/cli-path-resolution.test.js.map +1 -0
  810. package/dist/team/__tests__/index.compat-exports.test.d.ts +2 -0
  811. package/dist/team/__tests__/index.compat-exports.test.d.ts.map +1 -0
  812. package/dist/team/__tests__/index.compat-exports.test.js +20 -0
  813. package/dist/team/__tests__/index.compat-exports.test.js.map +1 -0
  814. package/dist/team/__tests__/layout-stabilizer.test.d.ts +2 -0
  815. package/dist/team/__tests__/layout-stabilizer.test.d.ts.map +1 -0
  816. package/dist/team/__tests__/layout-stabilizer.test.js +217 -0
  817. package/dist/team/__tests__/layout-stabilizer.test.js.map +1 -0
  818. package/dist/team/__tests__/mcp-team-bridge.spawn-args.test.js +8 -4
  819. package/dist/team/__tests__/mcp-team-bridge.spawn-args.test.js.map +1 -1
  820. package/dist/team/__tests__/mcp-team-bridge.usage.test.js +4 -2
  821. package/dist/team/__tests__/mcp-team-bridge.usage.test.js.map +1 -1
  822. package/dist/team/__tests__/model-contract.test.js +84 -8
  823. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  824. package/dist/team/__tests__/pane-readiness.test.d.ts +2 -0
  825. package/dist/team/__tests__/pane-readiness.test.d.ts.map +1 -0
  826. package/dist/team/__tests__/pane-readiness.test.js +185 -0
  827. package/dist/team/__tests__/pane-readiness.test.js.map +1 -0
  828. package/dist/team/__tests__/prompt-sanitization.test.js +1 -1
  829. package/dist/team/__tests__/prompt-sanitization.test.js.map +1 -1
  830. package/dist/team/__tests__/runtime-cli.test.d.ts +2 -0
  831. package/dist/team/__tests__/runtime-cli.test.d.ts.map +1 -0
  832. package/dist/team/__tests__/runtime-cli.test.js +159 -0
  833. package/dist/team/__tests__/runtime-cli.test.js.map +1 -0
  834. package/dist/team/__tests__/runtime-done-recovery.test.d.ts +2 -0
  835. package/dist/team/__tests__/runtime-done-recovery.test.d.ts.map +1 -0
  836. package/dist/team/__tests__/runtime-done-recovery.test.js +77 -0
  837. package/dist/team/__tests__/runtime-done-recovery.test.js.map +1 -0
  838. package/dist/team/__tests__/runtime-interop-spawn-regression.test.d.ts +2 -0
  839. package/dist/team/__tests__/runtime-interop-spawn-regression.test.d.ts.map +1 -0
  840. package/dist/team/__tests__/runtime-interop-spawn-regression.test.js +139 -0
  841. package/dist/team/__tests__/runtime-interop-spawn-regression.test.js.map +1 -0
  842. package/dist/team/__tests__/runtime-prompt-mode.test.js +167 -14
  843. package/dist/team/__tests__/runtime-prompt-mode.test.js.map +1 -1
  844. package/dist/team/__tests__/runtime-v2.feature-flag.test.d.ts +2 -0
  845. package/dist/team/__tests__/runtime-v2.feature-flag.test.d.ts.map +1 -0
  846. package/dist/team/__tests__/runtime-v2.feature-flag.test.js +20 -0
  847. package/dist/team/__tests__/runtime-v2.feature-flag.test.js.map +1 -0
  848. package/dist/team/__tests__/runtime-watchdog-retry.test.d.ts +2 -0
  849. package/dist/team/__tests__/runtime-watchdog-retry.test.d.ts.map +1 -0
  850. package/dist/team/__tests__/runtime-watchdog-retry.test.js +408 -0
  851. package/dist/team/__tests__/runtime-watchdog-retry.test.js.map +1 -0
  852. package/dist/team/__tests__/shell-path.test.d.ts +2 -0
  853. package/dist/team/__tests__/shell-path.test.d.ts.map +1 -0
  854. package/dist/team/__tests__/shell-path.test.js +193 -0
  855. package/dist/team/__tests__/shell-path.test.js.map +1 -0
  856. package/dist/team/__tests__/state-paths.test.d.ts +2 -0
  857. package/dist/team/__tests__/state-paths.test.d.ts.map +1 -0
  858. package/dist/team/__tests__/state-paths.test.js +16 -0
  859. package/dist/team/__tests__/state-paths.test.js.map +1 -0
  860. package/dist/team/__tests__/task-file-ops.test.js +8 -2
  861. package/dist/team/__tests__/task-file-ops.test.js.map +1 -1
  862. package/dist/team/__tests__/tmux-session.create-team.test.js +15 -17
  863. package/dist/team/__tests__/tmux-session.create-team.test.js.map +1 -1
  864. package/dist/team/__tests__/tmux-session.kill-team-session.test.d.ts +2 -0
  865. package/dist/team/__tests__/tmux-session.kill-team-session.test.d.ts.map +1 -0
  866. package/dist/team/__tests__/tmux-session.kill-team-session.test.js +56 -0
  867. package/dist/team/__tests__/tmux-session.kill-team-session.test.js.map +1 -0
  868. package/dist/team/__tests__/tmux-session.spawn.test.js +9 -0
  869. package/dist/team/__tests__/tmux-session.spawn.test.js.map +1 -1
  870. package/dist/team/__tests__/tmux-session.test.js +83 -5
  871. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  872. package/dist/team/__tests__/wait-for-shell-ready.test.d.ts +2 -0
  873. package/dist/team/__tests__/wait-for-shell-ready.test.d.ts.map +1 -0
  874. package/dist/team/__tests__/wait-for-shell-ready.test.js +242 -0
  875. package/dist/team/__tests__/wait-for-shell-ready.test.js.map +1 -0
  876. package/dist/team/__tests__/worker-bootstrap.test.js +11 -0
  877. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  878. package/dist/team/api-interop.d.ts +20 -0
  879. package/dist/team/api-interop.d.ts.map +1 -0
  880. package/dist/team/api-interop.js +601 -0
  881. package/dist/team/api-interop.js.map +1 -0
  882. package/dist/team/contracts.d.ts +14 -0
  883. package/dist/team/contracts.d.ts.map +1 -0
  884. package/dist/team/contracts.js +32 -0
  885. package/dist/team/contracts.js.map +1 -0
  886. package/dist/team/dispatch-queue.d.ts +64 -0
  887. package/dist/team/dispatch-queue.d.ts.map +1 -0
  888. package/dist/team/dispatch-queue.js +288 -0
  889. package/dist/team/dispatch-queue.js.map +1 -0
  890. package/dist/team/events.d.ts +49 -0
  891. package/dist/team/events.d.ts.map +1 -0
  892. package/dist/team/events.js +113 -0
  893. package/dist/team/events.js.map +1 -0
  894. package/dist/team/index.d.ts +15 -2
  895. package/dist/team/index.d.ts.map +1 -1
  896. package/dist/team/index.js +14 -1
  897. package/dist/team/index.js.map +1 -1
  898. package/dist/team/layout-stabilizer.d.ts +23 -0
  899. package/dist/team/layout-stabilizer.d.ts.map +1 -0
  900. package/dist/team/layout-stabilizer.js +117 -0
  901. package/dist/team/layout-stabilizer.js.map +1 -0
  902. package/dist/team/mcp-comm.d.ts +99 -0
  903. package/dist/team/mcp-comm.d.ts.map +1 -0
  904. package/dist/team/mcp-comm.js +235 -0
  905. package/dist/team/mcp-comm.js.map +1 -0
  906. package/dist/team/mcp-team-bridge.d.ts +2 -2
  907. package/dist/team/mcp-team-bridge.d.ts.map +1 -1
  908. package/dist/team/mcp-team-bridge.js +263 -144
  909. package/dist/team/mcp-team-bridge.js.map +1 -1
  910. package/dist/team/model-contract.d.ts +28 -1
  911. package/dist/team/model-contract.d.ts.map +1 -1
  912. package/dist/team/model-contract.js +143 -5
  913. package/dist/team/model-contract.js.map +1 -1
  914. package/dist/team/monitor.d.ts +45 -0
  915. package/dist/team/monitor.d.ts.map +1 -0
  916. package/dist/team/monitor.js +339 -0
  917. package/dist/team/monitor.js.map +1 -0
  918. package/dist/team/runtime-cli.d.ts +24 -0
  919. package/dist/team/runtime-cli.d.ts.map +1 -1
  920. package/dist/team/runtime-cli.js +230 -12
  921. package/dist/team/runtime-cli.js.map +1 -1
  922. package/dist/team/runtime-v2.d.ts +122 -0
  923. package/dist/team/runtime-v2.d.ts.map +1 -0
  924. package/dist/team/runtime-v2.js +766 -0
  925. package/dist/team/runtime-v2.js.map +1 -0
  926. package/dist/team/runtime.d.ts +2 -0
  927. package/dist/team/runtime.d.ts.map +1 -1
  928. package/dist/team/runtime.js +145 -52
  929. package/dist/team/runtime.js.map +1 -1
  930. package/dist/team/scaling.d.ts +59 -0
  931. package/dist/team/scaling.d.ts.map +1 -0
  932. package/dist/team/scaling.js +311 -0
  933. package/dist/team/scaling.js.map +1 -0
  934. package/dist/team/sentinel-gate.d.ts +23 -0
  935. package/dist/team/sentinel-gate.d.ts.map +1 -0
  936. package/dist/team/sentinel-gate.js +127 -0
  937. package/dist/team/sentinel-gate.js.map +1 -0
  938. package/dist/team/shell-path.d.ts +21 -0
  939. package/dist/team/shell-path.d.ts.map +1 -0
  940. package/dist/team/shell-path.js +73 -0
  941. package/dist/team/shell-path.js.map +1 -0
  942. package/dist/team/state/tasks.d.ts +48 -0
  943. package/dist/team/state/tasks.d.ts.map +1 -0
  944. package/dist/team/state/tasks.js +184 -0
  945. package/dist/team/state/tasks.js.map +1 -0
  946. package/dist/team/state-paths.d.ts +20 -4
  947. package/dist/team/state-paths.d.ts.map +1 -1
  948. package/dist/team/state-paths.js +29 -6
  949. package/dist/team/state-paths.js.map +1 -1
  950. package/dist/team/task-file-ops.d.ts +2 -1
  951. package/dist/team/task-file-ops.d.ts.map +1 -1
  952. package/dist/team/task-file-ops.js +19 -0
  953. package/dist/team/task-file-ops.js.map +1 -1
  954. package/dist/team/team-ops.d.ts +44 -0
  955. package/dist/team/team-ops.d.ts.map +1 -0
  956. package/dist/team/team-ops.js +547 -0
  957. package/dist/team/team-ops.js.map +1 -0
  958. package/dist/team/tmux-comm.d.ts.map +1 -1
  959. package/dist/team/tmux-comm.js +107 -44
  960. package/dist/team/tmux-comm.js.map +1 -1
  961. package/dist/team/tmux-session.d.ts +5 -0
  962. package/dist/team/tmux-session.d.ts.map +1 -1
  963. package/dist/team/tmux-session.js +81 -10
  964. package/dist/team/tmux-session.js.map +1 -1
  965. package/dist/team/types.d.ts +303 -8
  966. package/dist/team/types.d.ts.map +1 -1
  967. package/dist/team/types.js +2 -1
  968. package/dist/team/types.js.map +1 -1
  969. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  970. package/dist/team/worker-bootstrap.js +73 -21
  971. package/dist/team/worker-bootstrap.js.map +1 -1
  972. package/dist/tools/__tests__/cancel-integration.test.d.ts +2 -0
  973. package/dist/tools/__tests__/cancel-integration.test.d.ts.map +1 -0
  974. package/dist/tools/__tests__/cancel-integration.test.js +248 -0
  975. package/dist/tools/__tests__/cancel-integration.test.js.map +1 -0
  976. package/dist/tools/__tests__/memory-tools.test.d.ts +2 -0
  977. package/dist/tools/__tests__/memory-tools.test.d.ts.map +1 -0
  978. package/dist/tools/__tests__/memory-tools.test.js +66 -0
  979. package/dist/tools/__tests__/memory-tools.test.js.map +1 -0
  980. package/dist/tools/__tests__/state-tools.test.js +73 -5
  981. package/dist/tools/__tests__/state-tools.test.js.map +1 -1
  982. package/dist/tools/lsp/__tests__/client-eviction.test.js +6 -6
  983. package/dist/tools/lsp/__tests__/client-eviction.test.js.map +1 -1
  984. package/dist/tools/lsp/__tests__/client-timeout-env.test.d.ts +2 -0
  985. package/dist/tools/lsp/__tests__/client-timeout-env.test.d.ts.map +1 -0
  986. package/dist/tools/lsp/__tests__/client-timeout-env.test.js +39 -0
  987. package/dist/tools/lsp/__tests__/client-timeout-env.test.js.map +1 -0
  988. package/dist/tools/lsp/client.d.ts +2 -0
  989. package/dist/tools/lsp/client.d.ts.map +1 -1
  990. package/dist/tools/lsp/client.js +11 -1
  991. package/dist/tools/lsp/client.js.map +1 -1
  992. package/dist/tools/lsp/index.d.ts +1 -1
  993. package/dist/tools/lsp/index.d.ts.map +1 -1
  994. package/dist/tools/lsp/index.js +1 -1
  995. package/dist/tools/lsp/index.js.map +1 -1
  996. package/dist/tools/memory-tools.d.ts.map +1 -1
  997. package/dist/tools/memory-tools.js +2 -1
  998. package/dist/tools/memory-tools.js.map +1 -1
  999. package/dist/tools/python-repl/__tests__/tcp-fallback.test.d.ts +2 -0
  1000. package/dist/tools/python-repl/__tests__/tcp-fallback.test.d.ts.map +1 -0
  1001. package/dist/tools/python-repl/__tests__/tcp-fallback.test.js +138 -0
  1002. package/dist/tools/python-repl/__tests__/tcp-fallback.test.js.map +1 -0
  1003. package/dist/tools/python-repl/bridge-manager.d.ts.map +1 -1
  1004. package/dist/tools/python-repl/bridge-manager.js +104 -24
  1005. package/dist/tools/python-repl/bridge-manager.js.map +1 -1
  1006. package/dist/tools/python-repl/paths.d.ts +8 -0
  1007. package/dist/tools/python-repl/paths.d.ts.map +1 -1
  1008. package/dist/tools/python-repl/paths.js +10 -0
  1009. package/dist/tools/python-repl/paths.js.map +1 -1
  1010. package/dist/tools/python-repl/socket-client.d.ts.map +1 -1
  1011. package/dist/tools/python-repl/socket-client.js +9 -2
  1012. package/dist/tools/python-repl/socket-client.js.map +1 -1
  1013. package/dist/tools/shared-memory-tools.d.ts +55 -0
  1014. package/dist/tools/shared-memory-tools.d.ts.map +1 -0
  1015. package/dist/tools/shared-memory-tools.js +250 -0
  1016. package/dist/tools/shared-memory-tools.js.map +1 -0
  1017. package/dist/tools/state-tools.d.ts.map +1 -1
  1018. package/dist/tools/state-tools.js +126 -101
  1019. package/dist/tools/state-tools.js.map +1 -1
  1020. package/dist/utils/daemon-module-path.d.ts +9 -0
  1021. package/dist/utils/daemon-module-path.d.ts.map +1 -0
  1022. package/dist/utils/daemon-module-path.js +23 -0
  1023. package/dist/utils/daemon-module-path.js.map +1 -0
  1024. package/dist/utils/jsonc.d.ts +16 -0
  1025. package/dist/utils/jsonc.d.ts.map +1 -0
  1026. package/dist/utils/jsonc.js +64 -0
  1027. package/dist/utils/jsonc.js.map +1 -0
  1028. package/dist/utils/paths.js +1 -1
  1029. package/dist/utils/paths.js.map +1 -1
  1030. package/dist/utils/ssrf-guard.d.ts +26 -0
  1031. package/dist/utils/ssrf-guard.d.ts.map +1 -0
  1032. package/dist/utils/ssrf-guard.js +103 -0
  1033. package/dist/utils/ssrf-guard.js.map +1 -0
  1034. package/dist/verification/tier-selector.d.ts +1 -1
  1035. package/dist/verification/tier-selector.js +1 -1
  1036. package/docs/ANALYTICS-SYSTEM.md +2 -5
  1037. package/docs/CLAUDE.md +88 -212
  1038. package/docs/MIGRATION.md +138 -161
  1039. package/docs/PERFORMANCE-MONITORING.md +5 -5
  1040. package/docs/REFERENCE.md +351 -286
  1041. package/docs/fixes/agent-prefix-routing-fix.md +105 -0
  1042. package/docs/ko/ARCHITECTURE.md +152 -0
  1043. package/docs/ko/FEATURES.md +582 -0
  1044. package/docs/ko/MIGRATION.md +1027 -0
  1045. package/docs/ko/REFERENCE.md +745 -0
  1046. package/docs/partials/mode-selection-guide.md +22 -12
  1047. package/docs/shared/mode-selection-guide.md +22 -12
  1048. package/package.json +11 -6
  1049. package/scripts/ask-codex.sh +24 -0
  1050. package/scripts/ask-gemini.sh +24 -0
  1051. package/scripts/build-cli.mjs +47 -0
  1052. package/scripts/build-runtime-cli.mjs +2 -0
  1053. package/scripts/context-guard-stop.mjs +66 -3
  1054. package/scripts/context-safety.mjs +67 -2
  1055. package/scripts/keyword-detector.mjs +14 -36
  1056. package/scripts/persistent-mode.cjs +106 -1
  1057. package/scripts/persistent-mode.mjs +88 -2
  1058. package/scripts/plugin-setup.mjs +46 -4
  1059. package/scripts/pre-tool-enforcer.mjs +1 -0
  1060. package/scripts/qa-tests/test-custom-integration.mjs +144 -0
  1061. package/scripts/run-provider-advisor.js +220 -0
  1062. package/scripts/session-start.mjs +42 -2
  1063. package/skills/AGENTS.md +16 -20
  1064. package/skills/ask-codex/SKILL.md +47 -0
  1065. package/skills/ask-gemini/SKILL.md +47 -0
  1066. package/skills/autopilot/SKILL.md +39 -5
  1067. package/skills/cancel/SKILL.md +23 -105
  1068. package/skills/ccg/SKILL.md +58 -75
  1069. package/skills/configure-notifications/SKILL.md +276 -0
  1070. package/skills/configure-openclaw/SKILL.md +63 -0
  1071. package/skills/deep-interview/SKILL.md +551 -0
  1072. package/skills/deepinit/SKILL.md +1 -1
  1073. package/skills/hud/SKILL.md +35 -3
  1074. package/skills/omc-doctor/SKILL.md +30 -13
  1075. package/skills/omc-help/SKILL.md +1 -1
  1076. package/skills/omc-setup/SKILL.md +20 -20
  1077. package/skills/omc-teams/SKILL.md +60 -112
  1078. package/skills/plan/SKILL.md +5 -5
  1079. package/skills/quick-init-project/SKILL.md +333 -0
  1080. package/skills/ralph/SKILL.md +96 -70
  1081. package/skills/ralplan/SKILL.md +7 -7
  1082. package/skills/security-review/SKILL.md +2 -2
  1083. package/skills/team/SKILL.md +36 -2
  1084. package/skills/ultrawork/SKILL.md +7 -7
  1085. package/templates/hooks/keyword-detector.mjs +20 -28
  1086. package/templates/hooks/persistent-mode.mjs +89 -2
  1087. package/templates/hooks/pre-tool-use.mjs +79 -0
  1088. package/templates/hooks/session-start.mjs +3 -3
  1089. package/skills/pipeline/SKILL.md +0 -434
  1090. package/skills/review/SKILL.md +0 -30
  1091. package/skills/ultrapilot/SKILL.md +0 -632
@@ -43,9 +43,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
43
43
  mod
44
44
  ));
45
45
 
46
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/code.js
46
+ // node_modules/ajv/dist/compile/codegen/code.js
47
47
  var require_code = __commonJS({
48
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/code.js"(exports2) {
48
+ "node_modules/ajv/dist/compile/codegen/code.js"(exports2) {
49
49
  "use strict";
50
50
  Object.defineProperty(exports2, "__esModule", { value: true });
51
51
  exports2.regexpCode = exports2.getEsmExportName = exports2.getProperty = exports2.safeStringify = exports2.stringify = exports2.strConcat = exports2.addCodeArg = exports2.str = exports2._ = exports2.nil = exports2._Code = exports2.Name = exports2.IDENTIFIER = exports2._CodeOrName = void 0;
@@ -197,9 +197,9 @@ var require_code = __commonJS({
197
197
  }
198
198
  });
199
199
 
200
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/scope.js
200
+ // node_modules/ajv/dist/compile/codegen/scope.js
201
201
  var require_scope = __commonJS({
202
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/scope.js"(exports2) {
202
+ "node_modules/ajv/dist/compile/codegen/scope.js"(exports2) {
203
203
  "use strict";
204
204
  Object.defineProperty(exports2, "__esModule", { value: true });
205
205
  exports2.ValueScope = exports2.ValueScopeName = exports2.Scope = exports2.varKinds = exports2.UsedValueState = void 0;
@@ -342,9 +342,9 @@ var require_scope = __commonJS({
342
342
  }
343
343
  });
344
344
 
345
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/index.js
345
+ // node_modules/ajv/dist/compile/codegen/index.js
346
346
  var require_codegen = __commonJS({
347
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/index.js"(exports2) {
347
+ "node_modules/ajv/dist/compile/codegen/index.js"(exports2) {
348
348
  "use strict";
349
349
  Object.defineProperty(exports2, "__esModule", { value: true });
350
350
  exports2.or = exports2.and = exports2.not = exports2.CodeGen = exports2.operators = exports2.varKinds = exports2.ValueScopeName = exports2.ValueScope = exports2.Scope = exports2.Name = exports2.regexpCode = exports2.stringify = exports2.getProperty = exports2.nil = exports2.strConcat = exports2.str = exports2._ = void 0;
@@ -1062,9 +1062,9 @@ var require_codegen = __commonJS({
1062
1062
  }
1063
1063
  });
1064
1064
 
1065
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/util.js
1065
+ // node_modules/ajv/dist/compile/util.js
1066
1066
  var require_util = __commonJS({
1067
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/util.js"(exports2) {
1067
+ "node_modules/ajv/dist/compile/util.js"(exports2) {
1068
1068
  "use strict";
1069
1069
  Object.defineProperty(exports2, "__esModule", { value: true });
1070
1070
  exports2.checkStrictMode = exports2.getErrorPath = exports2.Type = exports2.useFunc = exports2.setEvaluated = exports2.evaluatedPropsToName = exports2.mergeEvaluated = exports2.eachItem = exports2.unescapeJsonPointer = exports2.escapeJsonPointer = exports2.escapeFragment = exports2.unescapeFragment = exports2.schemaRefOrVal = exports2.schemaHasRulesButRef = exports2.schemaHasRules = exports2.checkUnknownRules = exports2.alwaysValidSchema = exports2.toHash = void 0;
@@ -1229,9 +1229,9 @@ var require_util = __commonJS({
1229
1229
  }
1230
1230
  });
1231
1231
 
1232
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/names.js
1232
+ // node_modules/ajv/dist/compile/names.js
1233
1233
  var require_names = __commonJS({
1234
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/names.js"(exports2) {
1234
+ "node_modules/ajv/dist/compile/names.js"(exports2) {
1235
1235
  "use strict";
1236
1236
  Object.defineProperty(exports2, "__esModule", { value: true });
1237
1237
  var codegen_1 = require_codegen();
@@ -1268,9 +1268,9 @@ var require_names = __commonJS({
1268
1268
  }
1269
1269
  });
1270
1270
 
1271
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/errors.js
1271
+ // node_modules/ajv/dist/compile/errors.js
1272
1272
  var require_errors = __commonJS({
1273
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/errors.js"(exports2) {
1273
+ "node_modules/ajv/dist/compile/errors.js"(exports2) {
1274
1274
  "use strict";
1275
1275
  Object.defineProperty(exports2, "__esModule", { value: true });
1276
1276
  exports2.extendErrors = exports2.resetErrorsCount = exports2.reportExtraError = exports2.reportError = exports2.keyword$DataError = exports2.keywordError = void 0;
@@ -1390,9 +1390,9 @@ var require_errors = __commonJS({
1390
1390
  }
1391
1391
  });
1392
1392
 
1393
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/boolSchema.js
1393
+ // node_modules/ajv/dist/compile/validate/boolSchema.js
1394
1394
  var require_boolSchema = __commonJS({
1395
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/boolSchema.js"(exports2) {
1395
+ "node_modules/ajv/dist/compile/validate/boolSchema.js"(exports2) {
1396
1396
  "use strict";
1397
1397
  Object.defineProperty(exports2, "__esModule", { value: true });
1398
1398
  exports2.boolOrEmptySchema = exports2.topBoolOrEmptySchema = void 0;
@@ -1441,9 +1441,9 @@ var require_boolSchema = __commonJS({
1441
1441
  }
1442
1442
  });
1443
1443
 
1444
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/rules.js
1444
+ // node_modules/ajv/dist/compile/rules.js
1445
1445
  var require_rules = __commonJS({
1446
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/rules.js"(exports2) {
1446
+ "node_modules/ajv/dist/compile/rules.js"(exports2) {
1447
1447
  "use strict";
1448
1448
  Object.defineProperty(exports2, "__esModule", { value: true });
1449
1449
  exports2.getRules = exports2.isJSONType = void 0;
@@ -1472,9 +1472,9 @@ var require_rules = __commonJS({
1472
1472
  }
1473
1473
  });
1474
1474
 
1475
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/applicability.js
1475
+ // node_modules/ajv/dist/compile/validate/applicability.js
1476
1476
  var require_applicability = __commonJS({
1477
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/applicability.js"(exports2) {
1477
+ "node_modules/ajv/dist/compile/validate/applicability.js"(exports2) {
1478
1478
  "use strict";
1479
1479
  Object.defineProperty(exports2, "__esModule", { value: true });
1480
1480
  exports2.shouldUseRule = exports2.shouldUseGroup = exports2.schemaHasRulesForType = void 0;
@@ -1495,9 +1495,9 @@ var require_applicability = __commonJS({
1495
1495
  }
1496
1496
  });
1497
1497
 
1498
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/dataType.js
1498
+ // node_modules/ajv/dist/compile/validate/dataType.js
1499
1499
  var require_dataType = __commonJS({
1500
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/dataType.js"(exports2) {
1500
+ "node_modules/ajv/dist/compile/validate/dataType.js"(exports2) {
1501
1501
  "use strict";
1502
1502
  Object.defineProperty(exports2, "__esModule", { value: true });
1503
1503
  exports2.reportTypeError = exports2.checkDataTypes = exports2.checkDataType = exports2.coerceAndCheckDataType = exports2.getJSONTypes = exports2.getSchemaTypes = exports2.DataType = void 0;
@@ -1679,9 +1679,9 @@ var require_dataType = __commonJS({
1679
1679
  }
1680
1680
  });
1681
1681
 
1682
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/defaults.js
1682
+ // node_modules/ajv/dist/compile/validate/defaults.js
1683
1683
  var require_defaults = __commonJS({
1684
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/defaults.js"(exports2) {
1684
+ "node_modules/ajv/dist/compile/validate/defaults.js"(exports2) {
1685
1685
  "use strict";
1686
1686
  Object.defineProperty(exports2, "__esModule", { value: true });
1687
1687
  exports2.assignDefaults = void 0;
@@ -1716,9 +1716,9 @@ var require_defaults = __commonJS({
1716
1716
  }
1717
1717
  });
1718
1718
 
1719
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/code.js
1719
+ // node_modules/ajv/dist/vocabularies/code.js
1720
1720
  var require_code2 = __commonJS({
1721
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/code.js"(exports2) {
1721
+ "node_modules/ajv/dist/vocabularies/code.js"(exports2) {
1722
1722
  "use strict";
1723
1723
  Object.defineProperty(exports2, "__esModule", { value: true });
1724
1724
  exports2.validateUnion = exports2.validateArray = exports2.usePattern = exports2.callValidateCode = exports2.schemaProperties = exports2.allSchemaProperties = exports2.noPropertyInData = exports2.propertyInData = exports2.isOwnProperty = exports2.hasPropFunc = exports2.reportMissingProp = exports2.checkMissingProp = exports2.checkReportMissingProp = void 0;
@@ -1849,9 +1849,9 @@ var require_code2 = __commonJS({
1849
1849
  }
1850
1850
  });
1851
1851
 
1852
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/keyword.js
1852
+ // node_modules/ajv/dist/compile/validate/keyword.js
1853
1853
  var require_keyword = __commonJS({
1854
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/keyword.js"(exports2) {
1854
+ "node_modules/ajv/dist/compile/validate/keyword.js"(exports2) {
1855
1855
  "use strict";
1856
1856
  Object.defineProperty(exports2, "__esModule", { value: true });
1857
1857
  exports2.validateKeywordUsage = exports2.validSchemaType = exports2.funcKeywordCode = exports2.macroKeywordCode = void 0;
@@ -1967,9 +1967,9 @@ var require_keyword = __commonJS({
1967
1967
  }
1968
1968
  });
1969
1969
 
1970
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/subschema.js
1970
+ // node_modules/ajv/dist/compile/validate/subschema.js
1971
1971
  var require_subschema = __commonJS({
1972
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/subschema.js"(exports2) {
1972
+ "node_modules/ajv/dist/compile/validate/subschema.js"(exports2) {
1973
1973
  "use strict";
1974
1974
  Object.defineProperty(exports2, "__esModule", { value: true });
1975
1975
  exports2.extendSubschemaMode = exports2.extendSubschemaData = exports2.getSubschema = void 0;
@@ -2050,9 +2050,9 @@ var require_subschema = __commonJS({
2050
2050
  }
2051
2051
  });
2052
2052
 
2053
- // node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js
2053
+ // node_modules/fast-deep-equal/index.js
2054
2054
  var require_fast_deep_equal = __commonJS({
2055
- "node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js"(exports2, module2) {
2055
+ "node_modules/fast-deep-equal/index.js"(exports2, module2) {
2056
2056
  "use strict";
2057
2057
  module2.exports = function equal(a, b) {
2058
2058
  if (a === b) return true;
@@ -2085,9 +2085,9 @@ var require_fast_deep_equal = __commonJS({
2085
2085
  }
2086
2086
  });
2087
2087
 
2088
- // node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js
2088
+ // node_modules/json-schema-traverse/index.js
2089
2089
  var require_json_schema_traverse = __commonJS({
2090
- "node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js"(exports2, module2) {
2090
+ "node_modules/json-schema-traverse/index.js"(exports2, module2) {
2091
2091
  "use strict";
2092
2092
  var traverse = module2.exports = function(schema, opts, cb) {
2093
2093
  if (typeof opts == "function") {
@@ -2173,9 +2173,9 @@ var require_json_schema_traverse = __commonJS({
2173
2173
  }
2174
2174
  });
2175
2175
 
2176
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/resolve.js
2176
+ // node_modules/ajv/dist/compile/resolve.js
2177
2177
  var require_resolve = __commonJS({
2178
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/resolve.js"(exports2) {
2178
+ "node_modules/ajv/dist/compile/resolve.js"(exports2) {
2179
2179
  "use strict";
2180
2180
  Object.defineProperty(exports2, "__esModule", { value: true });
2181
2181
  exports2.getSchemaRefs = exports2.resolveUrl = exports2.normalizeId = exports2._getFullPath = exports2.getFullPath = exports2.inlineRef = void 0;
@@ -2329,9 +2329,9 @@ var require_resolve = __commonJS({
2329
2329
  }
2330
2330
  });
2331
2331
 
2332
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/index.js
2332
+ // node_modules/ajv/dist/compile/validate/index.js
2333
2333
  var require_validate = __commonJS({
2334
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/index.js"(exports2) {
2334
+ "node_modules/ajv/dist/compile/validate/index.js"(exports2) {
2335
2335
  "use strict";
2336
2336
  Object.defineProperty(exports2, "__esModule", { value: true });
2337
2337
  exports2.getData = exports2.KeywordCxt = exports2.validateFunctionCode = void 0;
@@ -2837,9 +2837,9 @@ var require_validate = __commonJS({
2837
2837
  }
2838
2838
  });
2839
2839
 
2840
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/validation_error.js
2840
+ // node_modules/ajv/dist/runtime/validation_error.js
2841
2841
  var require_validation_error = __commonJS({
2842
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/validation_error.js"(exports2) {
2842
+ "node_modules/ajv/dist/runtime/validation_error.js"(exports2) {
2843
2843
  "use strict";
2844
2844
  Object.defineProperty(exports2, "__esModule", { value: true });
2845
2845
  var ValidationError = class extends Error {
@@ -2853,9 +2853,9 @@ var require_validation_error = __commonJS({
2853
2853
  }
2854
2854
  });
2855
2855
 
2856
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/ref_error.js
2856
+ // node_modules/ajv/dist/compile/ref_error.js
2857
2857
  var require_ref_error = __commonJS({
2858
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/ref_error.js"(exports2) {
2858
+ "node_modules/ajv/dist/compile/ref_error.js"(exports2) {
2859
2859
  "use strict";
2860
2860
  Object.defineProperty(exports2, "__esModule", { value: true });
2861
2861
  var resolve_1 = require_resolve();
@@ -2870,9 +2870,9 @@ var require_ref_error = __commonJS({
2870
2870
  }
2871
2871
  });
2872
2872
 
2873
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/index.js
2873
+ // node_modules/ajv/dist/compile/index.js
2874
2874
  var require_compile = __commonJS({
2875
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/index.js"(exports2) {
2875
+ "node_modules/ajv/dist/compile/index.js"(exports2) {
2876
2876
  "use strict";
2877
2877
  Object.defineProperty(exports2, "__esModule", { value: true });
2878
2878
  exports2.resolveSchema = exports2.getCompilingSchema = exports2.resolveRef = exports2.compileSchema = exports2.SchemaEnv = void 0;
@@ -3094,9 +3094,9 @@ var require_compile = __commonJS({
3094
3094
  }
3095
3095
  });
3096
3096
 
3097
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/refs/data.json
3097
+ // node_modules/ajv/dist/refs/data.json
3098
3098
  var require_data = __commonJS({
3099
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/refs/data.json"(exports2, module2) {
3099
+ "node_modules/ajv/dist/refs/data.json"(exports2, module2) {
3100
3100
  module2.exports = {
3101
3101
  $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
3102
3102
  description: "Meta-schema for $data reference (JSON AnySchema extension proposal)",
@@ -3113,9 +3113,9 @@ var require_data = __commonJS({
3113
3113
  }
3114
3114
  });
3115
3115
 
3116
- // node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js
3116
+ // node_modules/fast-uri/lib/utils.js
3117
3117
  var require_utils = __commonJS({
3118
- "node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js"(exports2, module2) {
3118
+ "node_modules/fast-uri/lib/utils.js"(exports2, module2) {
3119
3119
  "use strict";
3120
3120
  var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
3121
3121
  var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
@@ -3236,8 +3236,8 @@ var require_utils = __commonJS({
3236
3236
  }
3237
3237
  return ind;
3238
3238
  }
3239
- function removeDotSegments(path10) {
3240
- let input = path10;
3239
+ function removeDotSegments(path11) {
3240
+ let input = path11;
3241
3241
  const output = [];
3242
3242
  let nextSlash = -1;
3243
3243
  let len = 0;
@@ -3370,9 +3370,9 @@ var require_utils = __commonJS({
3370
3370
  }
3371
3371
  });
3372
3372
 
3373
- // node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js
3373
+ // node_modules/fast-uri/lib/schemes.js
3374
3374
  var require_schemes = __commonJS({
3375
- "node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js"(exports2, module2) {
3375
+ "node_modules/fast-uri/lib/schemes.js"(exports2, module2) {
3376
3376
  "use strict";
3377
3377
  var { isUUID } = require_utils();
3378
3378
  var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
@@ -3436,8 +3436,8 @@ var require_schemes = __commonJS({
3436
3436
  wsComponent.secure = void 0;
3437
3437
  }
3438
3438
  if (wsComponent.resourceName) {
3439
- const [path10, query] = wsComponent.resourceName.split("?");
3440
- wsComponent.path = path10 && path10 !== "/" ? path10 : void 0;
3439
+ const [path11, query] = wsComponent.resourceName.split("?");
3440
+ wsComponent.path = path11 && path11 !== "/" ? path11 : void 0;
3441
3441
  wsComponent.query = query;
3442
3442
  wsComponent.resourceName = void 0;
3443
3443
  }
@@ -3580,9 +3580,9 @@ var require_schemes = __commonJS({
3580
3580
  }
3581
3581
  });
3582
3582
 
3583
- // node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js
3583
+ // node_modules/fast-uri/index.js
3584
3584
  var require_fast_uri = __commonJS({
3585
- "node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js"(exports2, module2) {
3585
+ "node_modules/fast-uri/index.js"(exports2, module2) {
3586
3586
  "use strict";
3587
3587
  var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require_utils();
3588
3588
  var { SCHEMES, getSchemeHandler } = require_schemes();
@@ -3835,9 +3835,9 @@ var require_fast_uri = __commonJS({
3835
3835
  }
3836
3836
  });
3837
3837
 
3838
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/uri.js
3838
+ // node_modules/ajv/dist/runtime/uri.js
3839
3839
  var require_uri = __commonJS({
3840
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/uri.js"(exports2) {
3840
+ "node_modules/ajv/dist/runtime/uri.js"(exports2) {
3841
3841
  "use strict";
3842
3842
  Object.defineProperty(exports2, "__esModule", { value: true });
3843
3843
  var uri = require_fast_uri();
@@ -3846,9 +3846,9 @@ var require_uri = __commonJS({
3846
3846
  }
3847
3847
  });
3848
3848
 
3849
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/core.js
3849
+ // node_modules/ajv/dist/core.js
3850
3850
  var require_core = __commonJS({
3851
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/core.js"(exports2) {
3851
+ "node_modules/ajv/dist/core.js"(exports2) {
3852
3852
  "use strict";
3853
3853
  Object.defineProperty(exports2, "__esModule", { value: true });
3854
3854
  exports2.CodeGen = exports2.Name = exports2.nil = exports2.stringify = exports2.str = exports2._ = exports2.KeywordCxt = void 0;
@@ -4457,9 +4457,9 @@ var require_core = __commonJS({
4457
4457
  }
4458
4458
  });
4459
4459
 
4460
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/id.js
4460
+ // node_modules/ajv/dist/vocabularies/core/id.js
4461
4461
  var require_id = __commonJS({
4462
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/id.js"(exports2) {
4462
+ "node_modules/ajv/dist/vocabularies/core/id.js"(exports2) {
4463
4463
  "use strict";
4464
4464
  Object.defineProperty(exports2, "__esModule", { value: true });
4465
4465
  var def = {
@@ -4472,9 +4472,9 @@ var require_id = __commonJS({
4472
4472
  }
4473
4473
  });
4474
4474
 
4475
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/ref.js
4475
+ // node_modules/ajv/dist/vocabularies/core/ref.js
4476
4476
  var require_ref = __commonJS({
4477
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/ref.js"(exports2) {
4477
+ "node_modules/ajv/dist/vocabularies/core/ref.js"(exports2) {
4478
4478
  "use strict";
4479
4479
  Object.defineProperty(exports2, "__esModule", { value: true });
4480
4480
  exports2.callRef = exports2.getValidate = void 0;
@@ -4594,9 +4594,9 @@ var require_ref = __commonJS({
4594
4594
  }
4595
4595
  });
4596
4596
 
4597
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/index.js
4597
+ // node_modules/ajv/dist/vocabularies/core/index.js
4598
4598
  var require_core2 = __commonJS({
4599
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/index.js"(exports2) {
4599
+ "node_modules/ajv/dist/vocabularies/core/index.js"(exports2) {
4600
4600
  "use strict";
4601
4601
  Object.defineProperty(exports2, "__esModule", { value: true });
4602
4602
  var id_1 = require_id();
@@ -4615,9 +4615,9 @@ var require_core2 = __commonJS({
4615
4615
  }
4616
4616
  });
4617
4617
 
4618
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitNumber.js
4618
+ // node_modules/ajv/dist/vocabularies/validation/limitNumber.js
4619
4619
  var require_limitNumber = __commonJS({
4620
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports2) {
4620
+ "node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports2) {
4621
4621
  "use strict";
4622
4622
  Object.defineProperty(exports2, "__esModule", { value: true });
4623
4623
  var codegen_1 = require_codegen();
@@ -4647,9 +4647,9 @@ var require_limitNumber = __commonJS({
4647
4647
  }
4648
4648
  });
4649
4649
 
4650
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/multipleOf.js
4650
+ // node_modules/ajv/dist/vocabularies/validation/multipleOf.js
4651
4651
  var require_multipleOf = __commonJS({
4652
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports2) {
4652
+ "node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports2) {
4653
4653
  "use strict";
4654
4654
  Object.defineProperty(exports2, "__esModule", { value: true });
4655
4655
  var codegen_1 = require_codegen();
@@ -4675,9 +4675,9 @@ var require_multipleOf = __commonJS({
4675
4675
  }
4676
4676
  });
4677
4677
 
4678
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/ucs2length.js
4678
+ // node_modules/ajv/dist/runtime/ucs2length.js
4679
4679
  var require_ucs2length = __commonJS({
4680
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/ucs2length.js"(exports2) {
4680
+ "node_modules/ajv/dist/runtime/ucs2length.js"(exports2) {
4681
4681
  "use strict";
4682
4682
  Object.defineProperty(exports2, "__esModule", { value: true });
4683
4683
  function ucs2length(str) {
@@ -4701,9 +4701,9 @@ var require_ucs2length = __commonJS({
4701
4701
  }
4702
4702
  });
4703
4703
 
4704
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitLength.js
4704
+ // node_modules/ajv/dist/vocabularies/validation/limitLength.js
4705
4705
  var require_limitLength = __commonJS({
4706
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports2) {
4706
+ "node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports2) {
4707
4707
  "use strict";
4708
4708
  Object.defineProperty(exports2, "__esModule", { value: true });
4709
4709
  var codegen_1 = require_codegen();
@@ -4733,9 +4733,9 @@ var require_limitLength = __commonJS({
4733
4733
  }
4734
4734
  });
4735
4735
 
4736
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/pattern.js
4736
+ // node_modules/ajv/dist/vocabularies/validation/pattern.js
4737
4737
  var require_pattern = __commonJS({
4738
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports2) {
4738
+ "node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports2) {
4739
4739
  "use strict";
4740
4740
  Object.defineProperty(exports2, "__esModule", { value: true });
4741
4741
  var code_1 = require_code2();
@@ -4761,9 +4761,9 @@ var require_pattern = __commonJS({
4761
4761
  }
4762
4762
  });
4763
4763
 
4764
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitProperties.js
4764
+ // node_modules/ajv/dist/vocabularies/validation/limitProperties.js
4765
4765
  var require_limitProperties = __commonJS({
4766
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports2) {
4766
+ "node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports2) {
4767
4767
  "use strict";
4768
4768
  Object.defineProperty(exports2, "__esModule", { value: true });
4769
4769
  var codegen_1 = require_codegen();
@@ -4790,9 +4790,9 @@ var require_limitProperties = __commonJS({
4790
4790
  }
4791
4791
  });
4792
4792
 
4793
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/required.js
4793
+ // node_modules/ajv/dist/vocabularies/validation/required.js
4794
4794
  var require_required = __commonJS({
4795
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/required.js"(exports2) {
4795
+ "node_modules/ajv/dist/vocabularies/validation/required.js"(exports2) {
4796
4796
  "use strict";
4797
4797
  Object.defineProperty(exports2, "__esModule", { value: true });
4798
4798
  var code_1 = require_code2();
@@ -4872,9 +4872,9 @@ var require_required = __commonJS({
4872
4872
  }
4873
4873
  });
4874
4874
 
4875
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitItems.js
4875
+ // node_modules/ajv/dist/vocabularies/validation/limitItems.js
4876
4876
  var require_limitItems = __commonJS({
4877
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports2) {
4877
+ "node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports2) {
4878
4878
  "use strict";
4879
4879
  Object.defineProperty(exports2, "__esModule", { value: true });
4880
4880
  var codegen_1 = require_codegen();
@@ -4901,9 +4901,9 @@ var require_limitItems = __commonJS({
4901
4901
  }
4902
4902
  });
4903
4903
 
4904
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/equal.js
4904
+ // node_modules/ajv/dist/runtime/equal.js
4905
4905
  var require_equal = __commonJS({
4906
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/equal.js"(exports2) {
4906
+ "node_modules/ajv/dist/runtime/equal.js"(exports2) {
4907
4907
  "use strict";
4908
4908
  Object.defineProperty(exports2, "__esModule", { value: true });
4909
4909
  var equal = require_fast_deep_equal();
@@ -4912,9 +4912,9 @@ var require_equal = __commonJS({
4912
4912
  }
4913
4913
  });
4914
4914
 
4915
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
4915
+ // node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
4916
4916
  var require_uniqueItems = __commonJS({
4917
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports2) {
4917
+ "node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports2) {
4918
4918
  "use strict";
4919
4919
  Object.defineProperty(exports2, "__esModule", { value: true });
4920
4920
  var dataType_1 = require_dataType();
@@ -4979,9 +4979,9 @@ var require_uniqueItems = __commonJS({
4979
4979
  }
4980
4980
  });
4981
4981
 
4982
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/const.js
4982
+ // node_modules/ajv/dist/vocabularies/validation/const.js
4983
4983
  var require_const = __commonJS({
4984
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/const.js"(exports2) {
4984
+ "node_modules/ajv/dist/vocabularies/validation/const.js"(exports2) {
4985
4985
  "use strict";
4986
4986
  Object.defineProperty(exports2, "__esModule", { value: true });
4987
4987
  var codegen_1 = require_codegen();
@@ -5008,9 +5008,9 @@ var require_const = __commonJS({
5008
5008
  }
5009
5009
  });
5010
5010
 
5011
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/enum.js
5011
+ // node_modules/ajv/dist/vocabularies/validation/enum.js
5012
5012
  var require_enum = __commonJS({
5013
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/enum.js"(exports2) {
5013
+ "node_modules/ajv/dist/vocabularies/validation/enum.js"(exports2) {
5014
5014
  "use strict";
5015
5015
  Object.defineProperty(exports2, "__esModule", { value: true });
5016
5016
  var codegen_1 = require_codegen();
@@ -5057,9 +5057,9 @@ var require_enum = __commonJS({
5057
5057
  }
5058
5058
  });
5059
5059
 
5060
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/index.js
5060
+ // node_modules/ajv/dist/vocabularies/validation/index.js
5061
5061
  var require_validation = __commonJS({
5062
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/index.js"(exports2) {
5062
+ "node_modules/ajv/dist/vocabularies/validation/index.js"(exports2) {
5063
5063
  "use strict";
5064
5064
  Object.defineProperty(exports2, "__esModule", { value: true });
5065
5065
  var limitNumber_1 = require_limitNumber();
@@ -5095,9 +5095,9 @@ var require_validation = __commonJS({
5095
5095
  }
5096
5096
  });
5097
5097
 
5098
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
5098
+ // node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
5099
5099
  var require_additionalItems = __commonJS({
5100
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports2) {
5100
+ "node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports2) {
5101
5101
  "use strict";
5102
5102
  Object.defineProperty(exports2, "__esModule", { value: true });
5103
5103
  exports2.validateAdditionalItems = void 0;
@@ -5148,9 +5148,9 @@ var require_additionalItems = __commonJS({
5148
5148
  }
5149
5149
  });
5150
5150
 
5151
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items.js
5151
+ // node_modules/ajv/dist/vocabularies/applicator/items.js
5152
5152
  var require_items = __commonJS({
5153
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items.js"(exports2) {
5153
+ "node_modules/ajv/dist/vocabularies/applicator/items.js"(exports2) {
5154
5154
  "use strict";
5155
5155
  Object.defineProperty(exports2, "__esModule", { value: true });
5156
5156
  exports2.validateTuple = void 0;
@@ -5205,9 +5205,9 @@ var require_items = __commonJS({
5205
5205
  }
5206
5206
  });
5207
5207
 
5208
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
5208
+ // node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
5209
5209
  var require_prefixItems = __commonJS({
5210
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports2) {
5210
+ "node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports2) {
5211
5211
  "use strict";
5212
5212
  Object.defineProperty(exports2, "__esModule", { value: true });
5213
5213
  var items_1 = require_items();
@@ -5222,9 +5222,9 @@ var require_prefixItems = __commonJS({
5222
5222
  }
5223
5223
  });
5224
5224
 
5225
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items2020.js
5225
+ // node_modules/ajv/dist/vocabularies/applicator/items2020.js
5226
5226
  var require_items2020 = __commonJS({
5227
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports2) {
5227
+ "node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports2) {
5228
5228
  "use strict";
5229
5229
  Object.defineProperty(exports2, "__esModule", { value: true });
5230
5230
  var codegen_1 = require_codegen();
@@ -5257,9 +5257,9 @@ var require_items2020 = __commonJS({
5257
5257
  }
5258
5258
  });
5259
5259
 
5260
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/contains.js
5260
+ // node_modules/ajv/dist/vocabularies/applicator/contains.js
5261
5261
  var require_contains = __commonJS({
5262
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports2) {
5262
+ "node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports2) {
5263
5263
  "use strict";
5264
5264
  Object.defineProperty(exports2, "__esModule", { value: true });
5265
5265
  var codegen_1 = require_codegen();
@@ -5351,9 +5351,9 @@ var require_contains = __commonJS({
5351
5351
  }
5352
5352
  });
5353
5353
 
5354
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/dependencies.js
5354
+ // node_modules/ajv/dist/vocabularies/applicator/dependencies.js
5355
5355
  var require_dependencies = __commonJS({
5356
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports2) {
5356
+ "node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports2) {
5357
5357
  "use strict";
5358
5358
  Object.defineProperty(exports2, "__esModule", { value: true });
5359
5359
  exports2.validateSchemaDeps = exports2.validatePropertyDeps = exports2.error = void 0;
@@ -5445,9 +5445,9 @@ var require_dependencies = __commonJS({
5445
5445
  }
5446
5446
  });
5447
5447
 
5448
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
5448
+ // node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
5449
5449
  var require_propertyNames = __commonJS({
5450
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports2) {
5450
+ "node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports2) {
5451
5451
  "use strict";
5452
5452
  Object.defineProperty(exports2, "__esModule", { value: true });
5453
5453
  var codegen_1 = require_codegen();
@@ -5488,9 +5488,9 @@ var require_propertyNames = __commonJS({
5488
5488
  }
5489
5489
  });
5490
5490
 
5491
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
5491
+ // node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
5492
5492
  var require_additionalProperties = __commonJS({
5493
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports2) {
5493
+ "node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports2) {
5494
5494
  "use strict";
5495
5495
  Object.defineProperty(exports2, "__esModule", { value: true });
5496
5496
  var code_1 = require_code2();
@@ -5594,9 +5594,9 @@ var require_additionalProperties = __commonJS({
5594
5594
  }
5595
5595
  });
5596
5596
 
5597
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/properties.js
5597
+ // node_modules/ajv/dist/vocabularies/applicator/properties.js
5598
5598
  var require_properties = __commonJS({
5599
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports2) {
5599
+ "node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports2) {
5600
5600
  "use strict";
5601
5601
  Object.defineProperty(exports2, "__esModule", { value: true });
5602
5602
  var validate_1 = require_validate();
@@ -5652,9 +5652,9 @@ var require_properties = __commonJS({
5652
5652
  }
5653
5653
  });
5654
5654
 
5655
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
5655
+ // node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
5656
5656
  var require_patternProperties = __commonJS({
5657
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports2) {
5657
+ "node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports2) {
5658
5658
  "use strict";
5659
5659
  Object.defineProperty(exports2, "__esModule", { value: true });
5660
5660
  var code_1 = require_code2();
@@ -5726,9 +5726,9 @@ var require_patternProperties = __commonJS({
5726
5726
  }
5727
5727
  });
5728
5728
 
5729
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/not.js
5729
+ // node_modules/ajv/dist/vocabularies/applicator/not.js
5730
5730
  var require_not = __commonJS({
5731
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/not.js"(exports2) {
5731
+ "node_modules/ajv/dist/vocabularies/applicator/not.js"(exports2) {
5732
5732
  "use strict";
5733
5733
  Object.defineProperty(exports2, "__esModule", { value: true });
5734
5734
  var util_1 = require_util();
@@ -5757,9 +5757,9 @@ var require_not = __commonJS({
5757
5757
  }
5758
5758
  });
5759
5759
 
5760
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/anyOf.js
5760
+ // node_modules/ajv/dist/vocabularies/applicator/anyOf.js
5761
5761
  var require_anyOf = __commonJS({
5762
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports2) {
5762
+ "node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports2) {
5763
5763
  "use strict";
5764
5764
  Object.defineProperty(exports2, "__esModule", { value: true });
5765
5765
  var code_1 = require_code2();
@@ -5774,9 +5774,9 @@ var require_anyOf = __commonJS({
5774
5774
  }
5775
5775
  });
5776
5776
 
5777
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/oneOf.js
5777
+ // node_modules/ajv/dist/vocabularies/applicator/oneOf.js
5778
5778
  var require_oneOf = __commonJS({
5779
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports2) {
5779
+ "node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports2) {
5780
5780
  "use strict";
5781
5781
  Object.defineProperty(exports2, "__esModule", { value: true });
5782
5782
  var codegen_1 = require_codegen();
@@ -5832,9 +5832,9 @@ var require_oneOf = __commonJS({
5832
5832
  }
5833
5833
  });
5834
5834
 
5835
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/allOf.js
5835
+ // node_modules/ajv/dist/vocabularies/applicator/allOf.js
5836
5836
  var require_allOf = __commonJS({
5837
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports2) {
5837
+ "node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports2) {
5838
5838
  "use strict";
5839
5839
  Object.defineProperty(exports2, "__esModule", { value: true });
5840
5840
  var util_1 = require_util();
@@ -5859,9 +5859,9 @@ var require_allOf = __commonJS({
5859
5859
  }
5860
5860
  });
5861
5861
 
5862
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/if.js
5862
+ // node_modules/ajv/dist/vocabularies/applicator/if.js
5863
5863
  var require_if = __commonJS({
5864
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/if.js"(exports2) {
5864
+ "node_modules/ajv/dist/vocabularies/applicator/if.js"(exports2) {
5865
5865
  "use strict";
5866
5866
  Object.defineProperty(exports2, "__esModule", { value: true });
5867
5867
  var codegen_1 = require_codegen();
@@ -5928,9 +5928,9 @@ var require_if = __commonJS({
5928
5928
  }
5929
5929
  });
5930
5930
 
5931
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/thenElse.js
5931
+ // node_modules/ajv/dist/vocabularies/applicator/thenElse.js
5932
5932
  var require_thenElse = __commonJS({
5933
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports2) {
5933
+ "node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports2) {
5934
5934
  "use strict";
5935
5935
  Object.defineProperty(exports2, "__esModule", { value: true });
5936
5936
  var util_1 = require_util();
@@ -5946,9 +5946,9 @@ var require_thenElse = __commonJS({
5946
5946
  }
5947
5947
  });
5948
5948
 
5949
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/index.js
5949
+ // node_modules/ajv/dist/vocabularies/applicator/index.js
5950
5950
  var require_applicator = __commonJS({
5951
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/index.js"(exports2) {
5951
+ "node_modules/ajv/dist/vocabularies/applicator/index.js"(exports2) {
5952
5952
  "use strict";
5953
5953
  Object.defineProperty(exports2, "__esModule", { value: true });
5954
5954
  var additionalItems_1 = require_additionalItems();
@@ -5994,9 +5994,9 @@ var require_applicator = __commonJS({
5994
5994
  }
5995
5995
  });
5996
5996
 
5997
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/format.js
5997
+ // node_modules/ajv/dist/vocabularies/format/format.js
5998
5998
  var require_format = __commonJS({
5999
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/format.js"(exports2) {
5999
+ "node_modules/ajv/dist/vocabularies/format/format.js"(exports2) {
6000
6000
  "use strict";
6001
6001
  Object.defineProperty(exports2, "__esModule", { value: true });
6002
6002
  var codegen_1 = require_codegen();
@@ -6084,9 +6084,9 @@ var require_format = __commonJS({
6084
6084
  }
6085
6085
  });
6086
6086
 
6087
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/index.js
6087
+ // node_modules/ajv/dist/vocabularies/format/index.js
6088
6088
  var require_format2 = __commonJS({
6089
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/index.js"(exports2) {
6089
+ "node_modules/ajv/dist/vocabularies/format/index.js"(exports2) {
6090
6090
  "use strict";
6091
6091
  Object.defineProperty(exports2, "__esModule", { value: true });
6092
6092
  var format_1 = require_format();
@@ -6095,9 +6095,9 @@ var require_format2 = __commonJS({
6095
6095
  }
6096
6096
  });
6097
6097
 
6098
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/metadata.js
6098
+ // node_modules/ajv/dist/vocabularies/metadata.js
6099
6099
  var require_metadata = __commonJS({
6100
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/metadata.js"(exports2) {
6100
+ "node_modules/ajv/dist/vocabularies/metadata.js"(exports2) {
6101
6101
  "use strict";
6102
6102
  Object.defineProperty(exports2, "__esModule", { value: true });
6103
6103
  exports2.contentVocabulary = exports2.metadataVocabulary = void 0;
@@ -6118,9 +6118,9 @@ var require_metadata = __commonJS({
6118
6118
  }
6119
6119
  });
6120
6120
 
6121
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/draft7.js
6121
+ // node_modules/ajv/dist/vocabularies/draft7.js
6122
6122
  var require_draft7 = __commonJS({
6123
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/draft7.js"(exports2) {
6123
+ "node_modules/ajv/dist/vocabularies/draft7.js"(exports2) {
6124
6124
  "use strict";
6125
6125
  Object.defineProperty(exports2, "__esModule", { value: true });
6126
6126
  var core_1 = require_core2();
@@ -6140,9 +6140,9 @@ var require_draft7 = __commonJS({
6140
6140
  }
6141
6141
  });
6142
6142
 
6143
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/types.js
6143
+ // node_modules/ajv/dist/vocabularies/discriminator/types.js
6144
6144
  var require_types = __commonJS({
6145
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports2) {
6145
+ "node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports2) {
6146
6146
  "use strict";
6147
6147
  Object.defineProperty(exports2, "__esModule", { value: true });
6148
6148
  exports2.DiscrError = void 0;
@@ -6154,9 +6154,9 @@ var require_types = __commonJS({
6154
6154
  }
6155
6155
  });
6156
6156
 
6157
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/index.js
6157
+ // node_modules/ajv/dist/vocabularies/discriminator/index.js
6158
6158
  var require_discriminator = __commonJS({
6159
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports2) {
6159
+ "node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports2) {
6160
6160
  "use strict";
6161
6161
  Object.defineProperty(exports2, "__esModule", { value: true });
6162
6162
  var codegen_1 = require_codegen();
@@ -6259,9 +6259,9 @@ var require_discriminator = __commonJS({
6259
6259
  }
6260
6260
  });
6261
6261
 
6262
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/refs/json-schema-draft-07.json
6262
+ // node_modules/ajv/dist/refs/json-schema-draft-07.json
6263
6263
  var require_json_schema_draft_07 = __commonJS({
6264
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports2, module2) {
6264
+ "node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports2, module2) {
6265
6265
  module2.exports = {
6266
6266
  $schema: "http://json-schema.org/draft-07/schema#",
6267
6267
  $id: "http://json-schema.org/draft-07/schema#",
@@ -6416,9 +6416,9 @@ var require_json_schema_draft_07 = __commonJS({
6416
6416
  }
6417
6417
  });
6418
6418
 
6419
- // node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/ajv.js
6419
+ // node_modules/ajv/dist/ajv.js
6420
6420
  var require_ajv = __commonJS({
6421
- "node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/ajv.js"(exports2, module2) {
6421
+ "node_modules/ajv/dist/ajv.js"(exports2, module2) {
6422
6422
  "use strict";
6423
6423
  Object.defineProperty(exports2, "__esModule", { value: true });
6424
6424
  exports2.MissingRefError = exports2.ValidationError = exports2.CodeGen = exports2.Name = exports2.nil = exports2.stringify = exports2.str = exports2._ = exports2.KeywordCxt = exports2.Ajv = void 0;
@@ -6486,9 +6486,9 @@ var require_ajv = __commonJS({
6486
6486
  }
6487
6487
  });
6488
6488
 
6489
- // node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/formats.js
6489
+ // node_modules/ajv-formats/dist/formats.js
6490
6490
  var require_formats = __commonJS({
6491
- "node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/formats.js"(exports2) {
6491
+ "node_modules/ajv-formats/dist/formats.js"(exports2) {
6492
6492
  "use strict";
6493
6493
  Object.defineProperty(exports2, "__esModule", { value: true });
6494
6494
  exports2.formatNames = exports2.fastFormats = exports2.fullFormats = void 0;
@@ -6689,9 +6689,9 @@ var require_formats = __commonJS({
6689
6689
  }
6690
6690
  });
6691
6691
 
6692
- // node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/limit.js
6692
+ // node_modules/ajv-formats/dist/limit.js
6693
6693
  var require_limit = __commonJS({
6694
- "node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/limit.js"(exports2) {
6694
+ "node_modules/ajv-formats/dist/limit.js"(exports2) {
6695
6695
  "use strict";
6696
6696
  Object.defineProperty(exports2, "__esModule", { value: true });
6697
6697
  exports2.formatLimitDefinition = void 0;
@@ -6761,9 +6761,9 @@ var require_limit = __commonJS({
6761
6761
  }
6762
6762
  });
6763
6763
 
6764
- // node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/index.js
6764
+ // node_modules/ajv-formats/dist/index.js
6765
6765
  var require_dist = __commonJS({
6766
- "node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/index.js"(exports2, module2) {
6766
+ "node_modules/ajv-formats/dist/index.js"(exports2, module2) {
6767
6767
  "use strict";
6768
6768
  Object.defineProperty(exports2, "__esModule", { value: true });
6769
6769
  var formats_1 = require_formats();
@@ -6803,7 +6803,7 @@ var require_dist = __commonJS({
6803
6803
  }
6804
6804
  });
6805
6805
 
6806
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js
6806
+ // node_modules/zod/v3/external.js
6807
6807
  var external_exports = {};
6808
6808
  __export(external_exports, {
6809
6809
  BRAND: () => BRAND,
@@ -6915,7 +6915,7 @@ __export(external_exports, {
6915
6915
  void: () => voidType
6916
6916
  });
6917
6917
 
6918
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js
6918
+ // node_modules/zod/v3/helpers/util.js
6919
6919
  var util;
6920
6920
  (function(util2) {
6921
6921
  util2.assertEqual = (_) => {
@@ -7049,7 +7049,7 @@ var getParsedType = (data) => {
7049
7049
  }
7050
7050
  };
7051
7051
 
7052
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js
7052
+ // node_modules/zod/v3/ZodError.js
7053
7053
  var ZodIssueCode = util.arrayToEnum([
7054
7054
  "invalid_type",
7055
7055
  "invalid_literal",
@@ -7167,7 +7167,7 @@ ZodError.create = (issues) => {
7167
7167
  return error2;
7168
7168
  };
7169
7169
 
7170
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js
7170
+ // node_modules/zod/v3/locales/en.js
7171
7171
  var errorMap = (issue2, _ctx) => {
7172
7172
  let message;
7173
7173
  switch (issue2.code) {
@@ -7270,7 +7270,7 @@ var errorMap = (issue2, _ctx) => {
7270
7270
  };
7271
7271
  var en_default = errorMap;
7272
7272
 
7273
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js
7273
+ // node_modules/zod/v3/errors.js
7274
7274
  var overrideErrorMap = en_default;
7275
7275
  function setErrorMap(map) {
7276
7276
  overrideErrorMap = map;
@@ -7279,10 +7279,10 @@ function getErrorMap() {
7279
7279
  return overrideErrorMap;
7280
7280
  }
7281
7281
 
7282
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js
7282
+ // node_modules/zod/v3/helpers/parseUtil.js
7283
7283
  var makeIssue = (params) => {
7284
- const { data, path: path10, errorMaps, issueData } = params;
7285
- const fullPath = [...path10, ...issueData.path || []];
7284
+ const { data, path: path11, errorMaps, issueData } = params;
7285
+ const fullPath = [...path11, ...issueData.path || []];
7286
7286
  const fullIssue = {
7287
7287
  ...issueData,
7288
7288
  path: fullPath
@@ -7389,20 +7389,20 @@ var isDirty = (x) => x.status === "dirty";
7389
7389
  var isValid = (x) => x.status === "valid";
7390
7390
  var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
7391
7391
 
7392
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js
7392
+ // node_modules/zod/v3/helpers/errorUtil.js
7393
7393
  var errorUtil;
7394
7394
  (function(errorUtil2) {
7395
7395
  errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {};
7396
7396
  errorUtil2.toString = (message) => typeof message === "string" ? message : message?.message;
7397
7397
  })(errorUtil || (errorUtil = {}));
7398
7398
 
7399
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js
7399
+ // node_modules/zod/v3/types.js
7400
7400
  var ParseInputLazyPath = class {
7401
- constructor(parent, value, path10, key) {
7401
+ constructor(parent, value, path11, key) {
7402
7402
  this._cachedPath = [];
7403
7403
  this.parent = parent;
7404
7404
  this.data = value;
7405
- this._path = path10;
7405
+ this._path = path11;
7406
7406
  this._key = key;
7407
7407
  }
7408
7408
  get path() {
@@ -10844,7 +10844,7 @@ var coerce = {
10844
10844
  };
10845
10845
  var NEVER = INVALID;
10846
10846
 
10847
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/core.js
10847
+ // node_modules/zod/v4/core/core.js
10848
10848
  var NEVER2 = Object.freeze({
10849
10849
  status: "aborted"
10850
10850
  });
@@ -10903,7 +10903,7 @@ function config(newConfig) {
10903
10903
  return globalConfig;
10904
10904
  }
10905
10905
 
10906
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/util.js
10906
+ // node_modules/zod/v4/core/util.js
10907
10907
  var util_exports = {};
10908
10908
  __export(util_exports, {
10909
10909
  BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
@@ -11039,10 +11039,10 @@ function assignProp(target, prop, value) {
11039
11039
  configurable: true
11040
11040
  });
11041
11041
  }
11042
- function getElementAtPath(obj, path10) {
11043
- if (!path10)
11042
+ function getElementAtPath(obj, path11) {
11043
+ if (!path11)
11044
11044
  return obj;
11045
- return path10.reduce((acc, key) => acc?.[key], obj);
11045
+ return path11.reduce((acc, key) => acc?.[key], obj);
11046
11046
  }
11047
11047
  function promiseAllObject(promisesObj) {
11048
11048
  const keys = Object.keys(promisesObj);
@@ -11362,11 +11362,11 @@ function aborted(x, startIndex = 0) {
11362
11362
  }
11363
11363
  return false;
11364
11364
  }
11365
- function prefixIssues(path10, issues) {
11365
+ function prefixIssues(path11, issues) {
11366
11366
  return issues.map((iss) => {
11367
11367
  var _a;
11368
11368
  (_a = iss).path ?? (_a.path = []);
11369
- iss.path.unshift(path10);
11369
+ iss.path.unshift(path11);
11370
11370
  return iss;
11371
11371
  });
11372
11372
  }
@@ -11424,7 +11424,7 @@ var Class = class {
11424
11424
  }
11425
11425
  };
11426
11426
 
11427
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/errors.js
11427
+ // node_modules/zod/v4/core/errors.js
11428
11428
  var initializer = (inst, def) => {
11429
11429
  inst.name = "$ZodError";
11430
11430
  Object.defineProperty(inst, "_zod", {
@@ -11499,7 +11499,7 @@ function formatError(error2, _mapper) {
11499
11499
  return fieldErrors;
11500
11500
  }
11501
11501
 
11502
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/parse.js
11502
+ // node_modules/zod/v4/core/parse.js
11503
11503
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
11504
11504
  const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
11505
11505
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -11549,7 +11549,7 @@ var _safeParseAsync = (_Err) => async (schema, value, _ctx) => {
11549
11549
  };
11550
11550
  var safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError);
11551
11551
 
11552
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/regexes.js
11552
+ // node_modules/zod/v4/core/regexes.js
11553
11553
  var cuid = /^[cC][^\s-]{8,}$/;
11554
11554
  var cuid2 = /^[0-9a-z]+$/;
11555
11555
  var ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;
@@ -11607,7 +11607,7 @@ var _null = /null/i;
11607
11607
  var lowercase = /^[^A-Z]*$/;
11608
11608
  var uppercase = /^[^a-z]*$/;
11609
11609
 
11610
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/checks.js
11610
+ // node_modules/zod/v4/core/checks.js
11611
11611
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
11612
11612
  var _a;
11613
11613
  inst._zod ?? (inst._zod = {});
@@ -11992,7 +11992,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
11992
11992
  };
11993
11993
  });
11994
11994
 
11995
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/doc.js
11995
+ // node_modules/zod/v4/core/doc.js
11996
11996
  var Doc = class {
11997
11997
  constructor(args = []) {
11998
11998
  this.content = [];
@@ -12028,14 +12028,14 @@ var Doc = class {
12028
12028
  }
12029
12029
  };
12030
12030
 
12031
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/versions.js
12031
+ // node_modules/zod/v4/core/versions.js
12032
12032
  var version = {
12033
12033
  major: 4,
12034
12034
  minor: 0,
12035
12035
  patch: 0
12036
12036
  };
12037
12037
 
12038
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/schemas.js
12038
+ // node_modules/zod/v4/core/schemas.js
12039
12039
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
12040
12040
  var _a;
12041
12041
  inst ?? (inst = {});
@@ -13273,7 +13273,7 @@ function handleRefineResult(result, payload, input, inst) {
13273
13273
  }
13274
13274
  }
13275
13275
 
13276
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/locales/en.js
13276
+ // node_modules/zod/v4/locales/en.js
13277
13277
  var parsedType = (data) => {
13278
13278
  const t = typeof data;
13279
13279
  switch (t) {
@@ -13391,7 +13391,7 @@ function en_default2() {
13391
13391
  };
13392
13392
  }
13393
13393
 
13394
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/registries.js
13394
+ // node_modules/zod/v4/core/registries.js
13395
13395
  var $ZodRegistry = class {
13396
13396
  constructor() {
13397
13397
  this._map = /* @__PURE__ */ new Map();
@@ -13439,7 +13439,7 @@ function registry() {
13439
13439
  }
13440
13440
  var globalRegistry = /* @__PURE__ */ registry();
13441
13441
 
13442
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/api.js
13442
+ // node_modules/zod/v4/core/api.js
13443
13443
  function _string(Class2, params) {
13444
13444
  return new Class2({
13445
13445
  type: "string",
@@ -13878,7 +13878,7 @@ function _refine(Class2, fn, _params) {
13878
13878
  return schema;
13879
13879
  }
13880
13880
 
13881
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
13881
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
13882
13882
  function isZ4Schema(s) {
13883
13883
  const schema = s;
13884
13884
  return !!schema._zod;
@@ -13941,7 +13941,7 @@ function getLiteralValue(schema) {
13941
13941
  return void 0;
13942
13942
  }
13943
13943
 
13944
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/iso.js
13944
+ // node_modules/zod/v4/classic/iso.js
13945
13945
  var iso_exports = {};
13946
13946
  __export(iso_exports, {
13947
13947
  ZodISODate: () => ZodISODate,
@@ -13982,7 +13982,7 @@ function duration2(params) {
13982
13982
  return _isoDuration(ZodISODuration, params);
13983
13983
  }
13984
13984
 
13985
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/errors.js
13985
+ // node_modules/zod/v4/classic/errors.js
13986
13986
  var initializer2 = (inst, issues) => {
13987
13987
  $ZodError.init(inst, issues);
13988
13988
  inst.name = "ZodError";
@@ -14016,13 +14016,13 @@ var ZodRealError = $constructor("ZodError", initializer2, {
14016
14016
  Parent: Error
14017
14017
  });
14018
14018
 
14019
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/parse.js
14019
+ // node_modules/zod/v4/classic/parse.js
14020
14020
  var parse2 = /* @__PURE__ */ _parse(ZodRealError);
14021
14021
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
14022
14022
  var safeParse3 = /* @__PURE__ */ _safeParse(ZodRealError);
14023
14023
  var safeParseAsync2 = /* @__PURE__ */ _safeParseAsync(ZodRealError);
14024
14024
 
14025
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/schemas.js
14025
+ // node_modules/zod/v4/classic/schemas.js
14026
14026
  var ZodType2 = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
14027
14027
  $ZodType.init(inst, def);
14028
14028
  inst.def = def;
@@ -14633,10 +14633,10 @@ function preprocess(fn, schema) {
14633
14633
  return pipe(transform(fn), schema);
14634
14634
  }
14635
14635
 
14636
- // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/external.js
14636
+ // node_modules/zod/v4/classic/external.js
14637
14637
  config(en_default2());
14638
14638
 
14639
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
14639
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
14640
14640
  var LATEST_PROTOCOL_VERSION = "2025-11-25";
14641
14641
  var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
14642
14642
  var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
@@ -16142,15 +16142,15 @@ var UrlElicitationRequiredError = class extends McpError {
16142
16142
  }
16143
16143
  };
16144
16144
 
16145
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
16145
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
16146
16146
  function isTerminal(status) {
16147
16147
  return status === "completed" || status === "failed" || status === "cancelled";
16148
16148
  }
16149
16149
 
16150
- // node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js
16150
+ // node_modules/zod-to-json-schema/dist/esm/parsers/string.js
16151
16151
  var ALPHA_NUMERIC = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");
16152
16152
 
16153
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
16153
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
16154
16154
  function getMethodLiteral(schema) {
16155
16155
  const shape = getObjectShape(schema);
16156
16156
  const methodSchema = shape?.method;
@@ -16171,7 +16171,7 @@ function parseWithCompat(schema, data) {
16171
16171
  return result.data;
16172
16172
  }
16173
16173
 
16174
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
16174
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
16175
16175
  var DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4;
16176
16176
  var Protocol = class {
16177
16177
  constructor(_options) {
@@ -17119,7 +17119,7 @@ function mergeCapabilities(base, additional) {
17119
17119
  return result;
17120
17120
  }
17121
17121
 
17122
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
17122
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
17123
17123
  var import_ajv = __toESM(require_ajv(), 1);
17124
17124
  var import_ajv_formats = __toESM(require_dist(), 1);
17125
17125
  function createDefaultAjvInstance() {
@@ -17187,7 +17187,7 @@ var AjvJsonSchemaValidator = class {
17187
17187
  }
17188
17188
  };
17189
17189
 
17190
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
17190
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
17191
17191
  var ExperimentalServerTasks = class {
17192
17192
  constructor(_server) {
17193
17193
  this._server = _server;
@@ -17259,7 +17259,7 @@ var ExperimentalServerTasks = class {
17259
17259
  }
17260
17260
  };
17261
17261
 
17262
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
17262
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
17263
17263
  function assertToolsCallTaskCapability(requests, method, entityName) {
17264
17264
  if (!requests) {
17265
17265
  throw new Error(`${entityName} does not support task creation (required for ${method})`);
@@ -17294,7 +17294,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
17294
17294
  }
17295
17295
  }
17296
17296
 
17297
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
17297
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
17298
17298
  var Server = class extends Protocol {
17299
17299
  /**
17300
17300
  * Initializes this server with the given name and version information.
@@ -17674,10 +17674,10 @@ var Server = class extends Protocol {
17674
17674
  }
17675
17675
  };
17676
17676
 
17677
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
17677
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
17678
17678
  var import_node_process = __toESM(require("node:process"), 1);
17679
17679
 
17680
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
17680
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
17681
17681
  var ReadBuffer = class {
17682
17682
  append(chunk) {
17683
17683
  this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
@@ -17705,7 +17705,7 @@ function serializeMessage(message) {
17705
17705
  return JSON.stringify(message) + "\n";
17706
17706
  }
17707
17707
 
17708
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
17708
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
17709
17709
  var StdioServerTransport = class {
17710
17710
  constructor(_stdin = import_node_process.default.stdin, _stdout = import_node_process.default.stdout) {
17711
17711
  this._stdin = _stdin;
@@ -17925,6 +17925,14 @@ function getAllServers() {
17925
17925
  }
17926
17926
 
17927
17927
  // src/tools/lsp/client.ts
17928
+ var DEFAULT_LSP_REQUEST_TIMEOUT_MS = (() => {
17929
+ const env = process.env.OMC_LSP_TIMEOUT_MS;
17930
+ if (env) {
17931
+ const parsed = parseInt(env, 10);
17932
+ if (!isNaN(parsed) && parsed > 0) return parsed;
17933
+ }
17934
+ return 15e3;
17935
+ })();
17928
17936
  function fileUri(filePath) {
17929
17937
  return (0, import_url.pathToFileURL)((0, import_path2.resolve)(filePath)).href;
17930
17938
  }
@@ -18080,7 +18088,7 @@ Install with: ${this.serverConfig.installHint}`
18080
18088
  /**
18081
18089
  * Send a request to the server
18082
18090
  */
18083
- async request(method, params, timeout = 15e3) {
18091
+ async request(method, params, timeout = DEFAULT_LSP_REQUEST_TIMEOUT_MS) {
18084
18092
  if (!this.process?.stdin) {
18085
18093
  throw new Error("LSP server not connected");
18086
18094
  }
@@ -18579,11 +18587,11 @@ function formatRange(range) {
18579
18587
  function formatLocation(location) {
18580
18588
  const uri = location.uri || location.targetUri;
18581
18589
  if (!uri) return "Unknown location";
18582
- const path10 = uriToPath(uri);
18590
+ const path11 = uriToPath(uri);
18583
18591
  const locationRange = location.range || location.targetRange || location.targetSelectionRange;
18584
- if (!locationRange) return path10;
18592
+ if (!locationRange) return path11;
18585
18593
  const range = formatRange(locationRange);
18586
- return `${path10}:${range}`;
18594
+ return `${path11}:${range}`;
18587
18595
  }
18588
18596
  function formatHover(hover) {
18589
18597
  if (!hover) return "No hover information available";
@@ -18669,8 +18677,8 @@ function formatWorkspaceEdit(edit) {
18669
18677
  const lines = [];
18670
18678
  if (edit.changes) {
18671
18679
  for (const [uri, changes] of Object.entries(edit.changes)) {
18672
- const path10 = uriToPath(uri);
18673
- lines.push(`File: ${path10}`);
18680
+ const path11 = uriToPath(uri);
18681
+ lines.push(`File: ${path11}`);
18674
18682
  for (const change of changes) {
18675
18683
  const range = formatRange(change.range);
18676
18684
  const preview = change.newText.length > 50 ? change.newText.slice(0, 50) + "..." : change.newText;
@@ -18680,8 +18688,8 @@ function formatWorkspaceEdit(edit) {
18680
18688
  }
18681
18689
  if (edit.documentChanges) {
18682
18690
  for (const docChange of edit.documentChanges) {
18683
- const path10 = uriToPath(docChange.textDocument.uri);
18684
- lines.push(`File: ${path10}`);
18691
+ const path11 = uriToPath(docChange.textDocument.uri);
18692
+ lines.push(`File: ${path11}`);
18685
18693
  for (const change of docChange.edits) {
18686
18694
  const range = formatRange(change.range);
18687
18695
  const preview = change.newText.length > 50 ? change.newText.slice(0, 50) + "..." : change.newText;
@@ -19474,7 +19482,7 @@ Note: Patterns must be valid AST nodes for the language.`,
19474
19482
  const {
19475
19483
  pattern,
19476
19484
  language,
19477
- path: path10 = ".",
19485
+ path: path11 = ".",
19478
19486
  context = 2,
19479
19487
  maxResults = 20
19480
19488
  } = args;
@@ -19491,13 +19499,13 @@ Error: ${sgLoadError}`
19491
19499
  ]
19492
19500
  };
19493
19501
  }
19494
- const files = getFilesForLanguage(path10, language);
19502
+ const files = getFilesForLanguage(path11, language);
19495
19503
  if (files.length === 0) {
19496
19504
  return {
19497
19505
  content: [
19498
19506
  {
19499
19507
  type: "text",
19500
- text: `No ${language} files found in ${path10}`
19508
+ text: `No ${language} files found in ${path11}`
19501
19509
  }
19502
19510
  ]
19503
19511
  };
@@ -19537,7 +19545,7 @@ Error: ${sgLoadError}`
19537
19545
  type: "text",
19538
19546
  text: `No matches found for pattern: ${pattern}
19539
19547
 
19540
- Searched ${files.length} ${language} file(s) in ${path10}
19548
+ Searched ${files.length} ${language} file(s) in ${path11}
19541
19549
 
19542
19550
  Tip: Ensure the pattern is a valid AST node. For example:
19543
19551
  - Use "function $NAME" not just "$NAME"
@@ -19597,7 +19605,7 @@ IMPORTANT: dryRun=true (default) only previews changes. Set dryRun=false to appl
19597
19605
  dryRun: external_exports.boolean().optional().describe("Preview only, don't apply changes (default: true)")
19598
19606
  },
19599
19607
  handler: async (args) => {
19600
- const { pattern, replacement, language, path: path10 = ".", dryRun = true } = args;
19608
+ const { pattern, replacement, language, path: path11 = ".", dryRun = true } = args;
19601
19609
  try {
19602
19610
  const sg = await getSgModule();
19603
19611
  if (!sg) {
@@ -19611,13 +19619,13 @@ Error: ${sgLoadError}`
19611
19619
  ]
19612
19620
  };
19613
19621
  }
19614
- const files = getFilesForLanguage(path10, language);
19622
+ const files = getFilesForLanguage(path11, language);
19615
19623
  if (files.length === 0) {
19616
19624
  return {
19617
19625
  content: [
19618
19626
  {
19619
19627
  type: "text",
19620
- text: `No ${language} files found in ${path10}`
19628
+ text: `No ${language} files found in ${path11}`
19621
19629
  }
19622
19630
  ]
19623
19631
  };
@@ -19685,7 +19693,7 @@ Error: ${sgLoadError}`
19685
19693
  type: "text",
19686
19694
  text: `No matches found for pattern: ${pattern}
19687
19695
 
19688
- Searched ${files.length} ${language} file(s) in ${path10}`
19696
+ Searched ${files.length} ${language} file(s) in ${path11}`
19689
19697
  }
19690
19698
  ]
19691
19699
  };
@@ -19798,6 +19806,9 @@ function getBridgeSocketPath(sessionId) {
19798
19806
  function getBridgeMetaPath(sessionId) {
19799
19807
  return path.join(getSessionDir(sessionId), "bridge_meta.json");
19800
19808
  }
19809
+ function getBridgePortPath(sessionId) {
19810
+ return path.join(getSessionDir(sessionId), "bridge.port");
19811
+ }
19801
19812
  function getSessionLockPath(sessionId) {
19802
19813
  return path.join(getSessionDir(sessionId), "session.lock");
19803
19814
  }
@@ -20440,7 +20451,13 @@ async function sendSocketRequest(socketPath, method, params, timeout = 6e4) {
20440
20451
  socket.removeAllListeners();
20441
20452
  socket.destroy();
20442
20453
  };
20443
- const socket = net.createConnection({ path: socketPath });
20454
+ let socket;
20455
+ if (socketPath.startsWith("tcp:")) {
20456
+ const port = parseInt(socketPath.slice(4), 10);
20457
+ socket = net.createConnection({ host: "127.0.0.1", port });
20458
+ } else {
20459
+ socket = net.createConnection({ path: socketPath });
20460
+ }
20444
20461
  socket.on("connect", () => {
20445
20462
  socket.write(requestLine);
20446
20463
  });
@@ -20603,6 +20620,7 @@ async function verifyProcessIdentity(meta) {
20603
20620
  }
20604
20621
  return true;
20605
20622
  }
20623
+ var USE_TCP_FALLBACK = process.platform === "win32";
20606
20624
  function isSocket(socketPath) {
20607
20625
  try {
20608
20626
  const stat = fs4.lstatSync(socketPath);
@@ -20611,6 +20629,24 @@ function isSocket(socketPath) {
20611
20629
  return false;
20612
20630
  }
20613
20631
  }
20632
+ function isBridgeReady(socketPath, sessionId) {
20633
+ if (USE_TCP_FALLBACK) {
20634
+ return fs4.existsSync(getBridgePortPath(sessionId));
20635
+ }
20636
+ return isSocket(socketPath);
20637
+ }
20638
+ function readTcpPort(sessionId) {
20639
+ const portPath = getBridgePortPath(sessionId);
20640
+ try {
20641
+ const content = fs4.readFileSync(portPath, "utf-8").trim();
20642
+ const port = parseInt(content, 10);
20643
+ if (Number.isFinite(port) && port > 0 && port <= 65535) {
20644
+ return port;
20645
+ }
20646
+ } catch {
20647
+ }
20648
+ return void 0;
20649
+ }
20614
20650
  function safeUnlinkSocket(socketPath) {
20615
20651
  try {
20616
20652
  if (fs4.existsSync(socketPath)) {
@@ -20619,6 +20655,15 @@ function safeUnlinkSocket(socketPath) {
20619
20655
  } catch {
20620
20656
  }
20621
20657
  }
20658
+ function safeUnlinkPortFile(sessionId) {
20659
+ try {
20660
+ const portPath = getBridgePortPath(sessionId);
20661
+ if (fs4.existsSync(portPath)) {
20662
+ fs4.unlinkSync(portPath);
20663
+ }
20664
+ } catch {
20665
+ }
20666
+ }
20622
20667
  function isValidBridgeMeta(data) {
20623
20668
  if (typeof data !== "object" || data === null) return false;
20624
20669
  const obj = data;
@@ -20629,7 +20674,7 @@ function killProcessGroup(pid, signal) {
20629
20674
  try {
20630
20675
  const force = signal === "SIGKILL";
20631
20676
  const args = force ? "/F /T" : "/T";
20632
- require("child_process").execSync(
20677
+ (0, import_child_process6.execSync)(
20633
20678
  `taskkill ${args} /PID ${pid}`,
20634
20679
  { stdio: "ignore", timeout: 5e3, windowsHide: true }
20635
20680
  );
@@ -20660,6 +20705,9 @@ async function spawnBridgeServer(sessionId, projectDir) {
20660
20705
  throw new Error(`Bridge script not found: ${bridgePath}`);
20661
20706
  }
20662
20707
  safeUnlinkSocket(socketPath);
20708
+ if (USE_TCP_FALLBACK) {
20709
+ safeUnlinkPortFile(sessionId);
20710
+ }
20663
20711
  const effectiveProjectDir = projectDir || process.cwd();
20664
20712
  const pythonEnv = await ensurePythonEnvironment(effectiveProjectDir);
20665
20713
  const bridgeArgs = [bridgePath, socketPath];
@@ -20688,11 +20736,14 @@ async function spawnBridgeServer(sessionId, projectDir) {
20688
20736
  procExitCode = code ?? 1;
20689
20737
  });
20690
20738
  const startTime = Date.now();
20691
- while (!isSocket(socketPath)) {
20739
+ while (!isBridgeReady(socketPath, sessionId)) {
20692
20740
  if (procExitCode !== null) {
20693
- if (fs4.existsSync(socketPath) && !isSocket(socketPath)) {
20741
+ if (!USE_TCP_FALLBACK && fs4.existsSync(socketPath) && !isSocket(socketPath)) {
20694
20742
  safeUnlinkSocket(socketPath);
20695
20743
  }
20744
+ if (USE_TCP_FALLBACK) {
20745
+ safeUnlinkPortFile(sessionId);
20746
+ }
20696
20747
  throw new Error(
20697
20748
  `Bridge process exited with code ${procExitCode} before creating socket. Stderr: ${stderrBuffer || "(empty)"}`
20698
20749
  );
@@ -20701,9 +20752,12 @@ async function spawnBridgeServer(sessionId, projectDir) {
20701
20752
  if (proc.pid) {
20702
20753
  killProcessGroup(proc.pid, "SIGKILL");
20703
20754
  }
20704
- if (fs4.existsSync(socketPath) && !isSocket(socketPath)) {
20755
+ if (!USE_TCP_FALLBACK && fs4.existsSync(socketPath) && !isSocket(socketPath)) {
20705
20756
  safeUnlinkSocket(socketPath);
20706
20757
  }
20758
+ if (USE_TCP_FALLBACK) {
20759
+ safeUnlinkPortFile(sessionId);
20760
+ }
20707
20761
  throw new Error(
20708
20762
  `Bridge failed to create socket in ${BRIDGE_SPAWN_TIMEOUT_MS}ms. Stderr: ${stderrBuffer || "(empty)"}`
20709
20763
  );
@@ -20711,9 +20765,17 @@ async function spawnBridgeServer(sessionId, projectDir) {
20711
20765
  await sleep2(100);
20712
20766
  }
20713
20767
  const processStartTime = proc.pid ? await getProcessStartTime(proc.pid) : void 0;
20768
+ let effectiveSocketPath = socketPath;
20769
+ if (USE_TCP_FALLBACK) {
20770
+ const port = readTcpPort(sessionId);
20771
+ if (port === void 0) {
20772
+ throw new Error("Bridge created port file but content is invalid");
20773
+ }
20774
+ effectiveSocketPath = `tcp:${port}`;
20775
+ }
20714
20776
  const meta = {
20715
20777
  pid: proc.pid,
20716
- socketPath,
20778
+ socketPath: effectiveSocketPath,
20717
20779
  startedAt: (/* @__PURE__ */ new Date()).toISOString(),
20718
20780
  sessionId,
20719
20781
  pythonEnv,
@@ -20732,19 +20794,23 @@ async function ensureBridge(sessionId, projectDir) {
20732
20794
  await deleteBridgeMeta(sessionId);
20733
20795
  return spawnBridgeServer(sessionId, projectDir);
20734
20796
  }
20735
- if (meta.socketPath !== expectedSocketPath) {
20797
+ const isTcpMeta = meta.socketPath.startsWith("tcp:");
20798
+ if (!isTcpMeta && meta.socketPath !== expectedSocketPath) {
20736
20799
  await deleteBridgeMeta(sessionId);
20737
20800
  return spawnBridgeServer(sessionId, projectDir);
20738
20801
  }
20739
20802
  const stillOurs = await verifyProcessIdentity(meta);
20740
20803
  if (stillOurs) {
20741
- if (isSocket(meta.socketPath)) {
20742
- return meta;
20743
- } else {
20744
- try {
20745
- process.kill(meta.pid, "SIGKILL");
20746
- } catch {
20804
+ if (meta.socketPath.startsWith("tcp:")) {
20805
+ if (fs4.existsSync(getBridgePortPath(sessionId))) {
20806
+ return meta;
20747
20807
  }
20808
+ } else if (isSocket(meta.socketPath)) {
20809
+ return meta;
20810
+ }
20811
+ try {
20812
+ process.kill(meta.pid, "SIGKILL");
20813
+ } catch {
20748
20814
  }
20749
20815
  }
20750
20816
  await deleteBridgeMeta(sessionId);
@@ -20792,7 +20858,9 @@ async function killBridgeWithEscalation(sessionId, options) {
20792
20858
  await deleteBridgeMeta(sessionId);
20793
20859
  const sessionDir = getSessionDir(sessionId);
20794
20860
  const socketPath = meta.socketPath;
20795
- if (socketPath.startsWith(sessionDir)) {
20861
+ if (socketPath.startsWith("tcp:")) {
20862
+ safeUnlinkPortFile(sessionId);
20863
+ } else if (socketPath.startsWith(sessionDir)) {
20796
20864
  safeUnlinkSocket(socketPath);
20797
20865
  }
20798
20866
  return {
@@ -21251,6 +21319,7 @@ var import_fs9 = require("fs");
21251
21319
  var import_crypto2 = require("crypto");
21252
21320
  var import_child_process8 = require("child_process");
21253
21321
  var import_fs7 = require("fs");
21322
+ var import_os = require("os");
21254
21323
  var import_path7 = require("path");
21255
21324
  var OmcPaths = {
21256
21325
  ROOT: ".omc",
@@ -21265,7 +21334,8 @@ var OmcPaths = {
21265
21334
  LOGS: ".omc/logs",
21266
21335
  SCIENTIST: ".omc/scientist",
21267
21336
  AUTOPILOT: ".omc/autopilot",
21268
- SKILLS: ".omc/skills"
21337
+ SKILLS: ".omc/skills",
21338
+ SHARED_MEMORY: ".omc/state/shared-memory"
21269
21339
  };
21270
21340
  var MAX_WORKTREE_CACHE_SIZE = 8;
21271
21341
  var worktreeCacheMap = /* @__PURE__ */ new Map();
@@ -21281,7 +21351,8 @@ function getWorktreeRoot(cwd) {
21281
21351
  const root = (0, import_child_process8.execSync)("git rev-parse --show-toplevel", {
21282
21352
  cwd: effectiveCwd,
21283
21353
  encoding: "utf-8",
21284
- stdio: ["pipe", "pipe", "pipe"]
21354
+ stdio: ["pipe", "pipe", "pipe"],
21355
+ timeout: 5e3
21285
21356
  }).trim();
21286
21357
  if (worktreeCacheMap.size >= MAX_WORKTREE_CACHE_SIZE) {
21287
21358
  const oldest = worktreeCacheMap.keys().next().value;
@@ -21351,9 +21422,6 @@ function resolveOmcPath(relativePath, worktreeRoot) {
21351
21422
  return fullPath;
21352
21423
  }
21353
21424
  function resolveStatePath(stateName, worktreeRoot) {
21354
- if (stateName === "swarm" || stateName === "swarm-state") {
21355
- throw new Error("Swarm uses SQLite (swarm.db), not JSON state. Use getStateFilePath from mode-registry instead.");
21356
- }
21357
21425
  const normalizedName = stateName.endsWith("-state") ? stateName : `${stateName}-state`;
21358
21426
  return resolveOmcPath(`state/${normalizedName}.json`, worktreeRoot);
21359
21427
  }
@@ -21384,9 +21452,6 @@ function validateSessionId(sessionId) {
21384
21452
  }
21385
21453
  function resolveSessionStatePath(stateName, sessionId, worktreeRoot) {
21386
21454
  validateSessionId(sessionId);
21387
- if (stateName === "swarm" || stateName === "swarm-state") {
21388
- throw new Error("Swarm uses SQLite (swarm.db), not session-scoped JSON state.");
21389
- }
21390
21455
  const normalizedName = stateName.endsWith("-state") ? stateName : `${stateName}-state`;
21391
21456
  return resolveOmcPath(`state/sessions/${sessionId}/${normalizedName}.json`, worktreeRoot);
21392
21457
  }
@@ -21456,6 +21521,63 @@ function validateWorkingDirectory(workingDirectory) {
21456
21521
  return trustedRoot;
21457
21522
  }
21458
21523
 
21524
+ // src/lib/payload-limits.ts
21525
+ var DEFAULT_PAYLOAD_LIMITS = {
21526
+ maxPayloadBytes: 1048576,
21527
+ // 1MB
21528
+ maxNestingDepth: 10,
21529
+ maxTopLevelKeys: 100
21530
+ };
21531
+ function measureDepth(value, current = 0, maxAllowed) {
21532
+ if (current > maxAllowed) return current;
21533
+ if (value !== null && typeof value === "object") {
21534
+ const entries = Array.isArray(value) ? value : Object.values(value);
21535
+ let max = current + 1;
21536
+ for (const entry of entries) {
21537
+ const d = measureDepth(entry, current + 1, maxAllowed);
21538
+ if (d > max) max = d;
21539
+ if (max > maxAllowed) return max;
21540
+ }
21541
+ return max;
21542
+ }
21543
+ return current;
21544
+ }
21545
+ function validatePayload(payload, limits = {}) {
21546
+ const resolved = { ...DEFAULT_PAYLOAD_LIMITS, ...limits };
21547
+ if (payload !== null && typeof payload === "object" && !Array.isArray(payload)) {
21548
+ const keyCount = Object.keys(payload).length;
21549
+ if (keyCount > resolved.maxTopLevelKeys) {
21550
+ return {
21551
+ valid: false,
21552
+ error: `Payload has ${keyCount} top-level keys (max: ${resolved.maxTopLevelKeys})`
21553
+ };
21554
+ }
21555
+ }
21556
+ const depth = measureDepth(payload, 0, resolved.maxNestingDepth);
21557
+ if (depth > resolved.maxNestingDepth) {
21558
+ return {
21559
+ valid: false,
21560
+ error: `Payload nesting depth ${depth} exceeds maximum of ${resolved.maxNestingDepth}`
21561
+ };
21562
+ }
21563
+ let serialized;
21564
+ try {
21565
+ serialized = JSON.stringify(payload);
21566
+ } catch {
21567
+ return { valid: false, error: "Payload cannot be serialized to JSON" };
21568
+ }
21569
+ const byteSize = Buffer.byteLength(serialized, "utf-8");
21570
+ if (byteSize > resolved.maxPayloadBytes) {
21571
+ const sizeMB = (byteSize / 1048576).toFixed(2);
21572
+ const limitMB = (resolved.maxPayloadBytes / 1048576).toFixed(2);
21573
+ return {
21574
+ valid: false,
21575
+ error: `Payload size ${sizeMB}MB exceeds maximum of ${limitMB}MB`
21576
+ };
21577
+ }
21578
+ return { valid: true };
21579
+ }
21580
+
21459
21581
  // src/hooks/mode-registry/index.ts
21460
21582
  var import_fs8 = require("fs");
21461
21583
  var import_path8 = require("path");
@@ -21463,9 +21585,7 @@ var import_path8 = require("path");
21463
21585
  // src/lib/mode-names.ts
21464
21586
  var MODE_NAMES = {
21465
21587
  AUTOPILOT: "autopilot",
21466
- ULTRAPILOT: "ultrapilot",
21467
- SWARM: "swarm",
21468
- PIPELINE: "pipeline",
21588
+ CONDUCTOR: "conductor",
21469
21589
  TEAM: "team",
21470
21590
  RALPH: "ralph",
21471
21591
  ULTRAWORK: "ultrawork",
@@ -21473,9 +21593,7 @@ var MODE_NAMES = {
21473
21593
  };
21474
21594
  var ALL_MODE_NAMES = [
21475
21595
  MODE_NAMES.AUTOPILOT,
21476
- MODE_NAMES.ULTRAPILOT,
21477
- MODE_NAMES.SWARM,
21478
- MODE_NAMES.PIPELINE,
21596
+ MODE_NAMES.CONDUCTOR,
21479
21597
  MODE_NAMES.TEAM,
21480
21598
  MODE_NAMES.RALPH,
21481
21599
  MODE_NAMES.ULTRAWORK,
@@ -21483,9 +21601,7 @@ var ALL_MODE_NAMES = [
21483
21601
  ];
21484
21602
  var MODE_STATE_FILE_MAP = {
21485
21603
  [MODE_NAMES.AUTOPILOT]: "autopilot-state.json",
21486
- [MODE_NAMES.ULTRAPILOT]: "ultrapilot-state.json",
21487
- [MODE_NAMES.SWARM]: "swarm.db",
21488
- [MODE_NAMES.PIPELINE]: "pipeline-state.json",
21604
+ [MODE_NAMES.CONDUCTOR]: "conductor-state.json",
21489
21605
  [MODE_NAMES.TEAM]: "team-state.json",
21490
21606
  [MODE_NAMES.RALPH]: "ralph-state.json",
21491
21607
  [MODE_NAMES.ULTRAWORK]: "ultrawork-state.json",
@@ -21493,55 +21609,30 @@ var MODE_STATE_FILE_MAP = {
21493
21609
  };
21494
21610
  var SESSION_END_MODE_STATE_FILES = [
21495
21611
  { file: MODE_STATE_FILE_MAP[MODE_NAMES.AUTOPILOT], mode: MODE_NAMES.AUTOPILOT },
21496
- { file: MODE_STATE_FILE_MAP[MODE_NAMES.ULTRAPILOT], mode: MODE_NAMES.ULTRAPILOT },
21497
21612
  { file: MODE_STATE_FILE_MAP[MODE_NAMES.RALPH], mode: MODE_NAMES.RALPH },
21498
21613
  { file: MODE_STATE_FILE_MAP[MODE_NAMES.ULTRAWORK], mode: MODE_NAMES.ULTRAWORK },
21499
- { file: MODE_STATE_FILE_MAP[MODE_NAMES.ULTRAQA], mode: MODE_NAMES.ULTRAQA },
21500
- { file: MODE_STATE_FILE_MAP[MODE_NAMES.PIPELINE], mode: MODE_NAMES.PIPELINE },
21501
- // Swarm uses marker file + SQLite
21502
- { file: "swarm-active.marker", mode: MODE_NAMES.SWARM },
21503
- { file: "swarm-summary.json", mode: MODE_NAMES.SWARM }
21614
+ { file: MODE_STATE_FILE_MAP[MODE_NAMES.ULTRAQA], mode: MODE_NAMES.ULTRAQA }
21504
21615
  ];
21505
21616
  var SESSION_METRICS_MODE_FILES = [
21506
21617
  { file: MODE_STATE_FILE_MAP[MODE_NAMES.AUTOPILOT], mode: MODE_NAMES.AUTOPILOT },
21507
- { file: MODE_STATE_FILE_MAP[MODE_NAMES.ULTRAPILOT], mode: MODE_NAMES.ULTRAPILOT },
21508
21618
  { file: MODE_STATE_FILE_MAP[MODE_NAMES.RALPH], mode: MODE_NAMES.RALPH },
21509
- { file: MODE_STATE_FILE_MAP[MODE_NAMES.ULTRAWORK], mode: MODE_NAMES.ULTRAWORK },
21510
- { file: "swarm-state.json", mode: MODE_NAMES.SWARM },
21511
- { file: MODE_STATE_FILE_MAP[MODE_NAMES.PIPELINE], mode: MODE_NAMES.PIPELINE }
21619
+ { file: MODE_STATE_FILE_MAP[MODE_NAMES.ULTRAWORK], mode: MODE_NAMES.ULTRAWORK }
21512
21620
  ];
21513
21621
 
21514
21622
  // src/hooks/mode-registry/index.ts
21515
- var STALE_MARKER_THRESHOLD = 60 * 60 * 1e3;
21516
21623
  var MODE_CONFIGS = {
21517
21624
  [MODE_NAMES.AUTOPILOT]: {
21518
21625
  name: "Autopilot",
21519
21626
  stateFile: MODE_STATE_FILE_MAP[MODE_NAMES.AUTOPILOT],
21520
21627
  activeProperty: "active"
21521
21628
  },
21522
- [MODE_NAMES.ULTRAPILOT]: {
21523
- name: "Ultrapilot",
21524
- stateFile: MODE_STATE_FILE_MAP[MODE_NAMES.ULTRAPILOT],
21525
- markerFile: "ultrapilot-ownership.json",
21526
- activeProperty: "active"
21527
- },
21528
- [MODE_NAMES.SWARM]: {
21529
- name: "Swarm",
21530
- stateFile: MODE_STATE_FILE_MAP[MODE_NAMES.SWARM],
21531
- markerFile: "swarm-active.marker",
21532
- isSqlite: true
21533
- },
21534
- [MODE_NAMES.PIPELINE]: {
21535
- name: "Pipeline",
21536
- stateFile: MODE_STATE_FILE_MAP[MODE_NAMES.PIPELINE],
21537
- activeProperty: "active"
21538
- },
21539
- conductor: {
21629
+ [MODE_NAMES.CONDUCTOR]: {
21540
21630
  name: "Conductor",
21541
- stateFile: "../conductor/conductor-state.json",
21542
- activeProperty: "active"
21631
+ stateFile: MODE_STATE_FILE_MAP[MODE_NAMES.CONDUCTOR],
21632
+ activeProperty: "active",
21633
+ hasGlobalState: false
21543
21634
  },
21544
- team: {
21635
+ [MODE_NAMES.TEAM]: {
21545
21636
  name: "Team",
21546
21637
  stateFile: MODE_STATE_FILE_MAP[MODE_NAMES.TEAM],
21547
21638
  activeProperty: "active",
@@ -21566,13 +21657,13 @@ var MODE_CONFIGS = {
21566
21657
  activeProperty: "active"
21567
21658
  }
21568
21659
  };
21569
- var EXCLUSIVE_MODES = [MODE_NAMES.AUTOPILOT, MODE_NAMES.ULTRAPILOT, MODE_NAMES.SWARM, MODE_NAMES.PIPELINE];
21660
+ var EXCLUSIVE_MODES = [MODE_NAMES.AUTOPILOT];
21570
21661
  function getStateDir(cwd) {
21571
- return (0, import_path8.join)(cwd, ".omc", "state");
21662
+ return (0, import_path8.join)(getOmcRoot(cwd), "state");
21572
21663
  }
21573
21664
  function getStateFilePath(cwd, mode, sessionId) {
21574
21665
  const config2 = MODE_CONFIGS[mode];
21575
- if (sessionId && !config2.isSqlite) {
21666
+ if (sessionId) {
21576
21667
  return resolveSessionStatePath(mode, sessionId, cwd);
21577
21668
  }
21578
21669
  return (0, import_path8.join)(getStateDir(cwd), config2.stateFile);
@@ -21584,11 +21675,8 @@ function getMarkerFilePath(cwd, mode) {
21584
21675
  }
21585
21676
  function isJsonModeActive(cwd, mode, sessionId) {
21586
21677
  const config2 = MODE_CONFIGS[mode];
21587
- if (sessionId && !config2.isSqlite) {
21678
+ if (sessionId) {
21588
21679
  const sessionStateFile = resolveSessionStatePath(mode, sessionId, cwd);
21589
- if (!(0, import_fs8.existsSync)(sessionStateFile)) {
21590
- return false;
21591
- }
21592
21680
  try {
21593
21681
  const content = (0, import_fs8.readFileSync)(sessionStateFile, "utf-8");
21594
21682
  const state = JSON.parse(content);
@@ -21599,14 +21687,14 @@ function isJsonModeActive(cwd, mode, sessionId) {
21599
21687
  return state[config2.activeProperty] === true;
21600
21688
  }
21601
21689
  return true;
21602
- } catch {
21690
+ } catch (error2) {
21691
+ if (error2.code === "ENOENT") {
21692
+ return false;
21693
+ }
21603
21694
  return false;
21604
21695
  }
21605
21696
  }
21606
21697
  const stateFile = getStateFilePath(cwd, mode);
21607
- if (!(0, import_fs8.existsSync)(stateFile)) {
21608
- return false;
21609
- }
21610
21698
  try {
21611
21699
  const content = (0, import_fs8.readFileSync)(stateFile, "utf-8");
21612
21700
  const state = JSON.parse(content);
@@ -21614,38 +21702,14 @@ function isJsonModeActive(cwd, mode, sessionId) {
21614
21702
  return state[config2.activeProperty] === true;
21615
21703
  }
21616
21704
  return true;
21617
- } catch {
21618
- return false;
21619
- }
21620
- }
21621
- function isSqliteModeActive(cwd, mode) {
21622
- const markerPath = getMarkerFilePath(cwd, mode);
21623
- if (markerPath && (0, import_fs8.existsSync)(markerPath)) {
21624
- try {
21625
- const content = (0, import_fs8.readFileSync)(markerPath, "utf-8");
21626
- const marker = JSON.parse(content);
21627
- if (marker.startedAt) {
21628
- const startTime = new Date(marker.startedAt).getTime();
21629
- const age = Date.now() - startTime;
21630
- if (age > STALE_MARKER_THRESHOLD) {
21631
- console.warn(`Stale ${mode} marker detected (${Math.round(age / 6e4)} min old). Auto-removing.`);
21632
- (0, import_fs8.unlinkSync)(markerPath);
21633
- return false;
21634
- }
21635
- }
21636
- return true;
21637
- } catch {
21705
+ } catch (error2) {
21706
+ if (error2.code === "ENOENT") {
21638
21707
  return false;
21639
21708
  }
21709
+ return false;
21640
21710
  }
21641
- const dbPath = getStateFilePath(cwd, mode);
21642
- return (0, import_fs8.existsSync)(dbPath);
21643
21711
  }
21644
21712
  function isModeActive(mode, cwd, sessionId) {
21645
- const config2 = MODE_CONFIGS[mode];
21646
- if (config2.isSqlite) {
21647
- return isSqliteModeActive(cwd, mode);
21648
- }
21649
21713
  return isJsonModeActive(cwd, mode, sessionId);
21650
21714
  }
21651
21715
  function getActiveModes(cwd, sessionId) {
@@ -21668,7 +21732,7 @@ function clearModeState(mode, cwd, sessionId) {
21668
21732
  const config2 = MODE_CONFIGS[mode];
21669
21733
  let success = true;
21670
21734
  const markerFile = getMarkerFilePath(cwd, mode);
21671
- const isSessionScopedClear = Boolean(sessionId && !config2.isSqlite);
21735
+ const isSessionScopedClear = Boolean(sessionId);
21672
21736
  if (isSessionScopedClear && sessionId) {
21673
21737
  const sessionStateFile = resolveSessionStatePath(mode, sessionId, cwd);
21674
21738
  try {
@@ -21680,7 +21744,11 @@ function clearModeState(mode, cwd, sessionId) {
21680
21744
  }
21681
21745
  if (config2.markerFile) {
21682
21746
  const markerStateName = config2.markerFile.replace(/\.json$/i, "");
21683
- const sessionMarkerFile = resolveSessionStatePath(markerStateName, sessionId, cwd);
21747
+ const sessionMarkerFile = resolveSessionStatePath(
21748
+ markerStateName,
21749
+ sessionId,
21750
+ cwd
21751
+ );
21684
21752
  try {
21685
21753
  (0, import_fs8.unlinkSync)(sessionMarkerFile);
21686
21754
  } catch (err) {
@@ -21722,20 +21790,6 @@ function clearModeState(mode, cwd, sessionId) {
21722
21790
  success = false;
21723
21791
  }
21724
21792
  }
21725
- if (config2.isSqlite) {
21726
- const walFile = stateFile + "-wal";
21727
- const shmFile = stateFile + "-shm";
21728
- try {
21729
- (0, import_fs8.unlinkSync)(walFile);
21730
- } catch (e) {
21731
- if (e.code !== "ENOENT") success = false;
21732
- }
21733
- try {
21734
- (0, import_fs8.unlinkSync)(shmFile);
21735
- } catch (e) {
21736
- if (e.code !== "ENOENT") success = false;
21737
- }
21738
- }
21739
21793
  }
21740
21794
  if (markerFile) {
21741
21795
  if (isSessionScopedClear) {
@@ -21773,10 +21827,6 @@ function clearModeState(mode, cwd, sessionId) {
21773
21827
  return success;
21774
21828
  }
21775
21829
  function getActiveSessionsForMode(mode, cwd) {
21776
- const config2 = MODE_CONFIGS[mode];
21777
- if (config2.isSqlite) {
21778
- return [];
21779
- }
21780
21830
  const sessionIds = listSessionIds(cwd);
21781
21831
  return sessionIds.filter((sid) => isJsonModeActive(cwd, mode, sid));
21782
21832
  }
@@ -21784,15 +21834,18 @@ function getActiveSessionsForMode(mode, cwd) {
21784
21834
  // src/tools/state-tools.ts
21785
21835
  var EXECUTION_MODES = [
21786
21836
  "autopilot",
21787
- "ultrapilot",
21788
- "swarm",
21789
- "pipeline",
21790
21837
  "team",
21791
21838
  "ralph",
21792
21839
  "ultrawork",
21793
21840
  "ultraqa"
21794
21841
  ];
21795
- var STATE_TOOL_MODES = [...EXECUTION_MODES, "ralplan"];
21842
+ var STATE_TOOL_MODES = [
21843
+ ...EXECUTION_MODES,
21844
+ "ralplan",
21845
+ "omc-teams",
21846
+ "deep-interview"
21847
+ ];
21848
+ var EXTRA_STATE_ONLY_MODES = ["ralplan", "omc-teams", "deep-interview"];
21796
21849
  var CANCEL_SIGNAL_TTL_MS = 3e4;
21797
21850
  function getStatePath(mode, root) {
21798
21851
  if (MODE_CONFIGS[mode]) {
@@ -21813,28 +21866,6 @@ var stateReadTool = {
21813
21866
  try {
21814
21867
  const root = validateWorkingDirectory(workingDirectory);
21815
21868
  const sessionId = session_id;
21816
- if (mode === "swarm") {
21817
- const statePath2 = getStatePath(mode, root);
21818
- if (!(0, import_fs9.existsSync)(statePath2)) {
21819
- return {
21820
- content: [{
21821
- type: "text",
21822
- text: `No state found for mode: swarm
21823
- Note: Swarm uses SQLite (swarm.db), not JSON. Expected path: ${statePath2}`
21824
- }]
21825
- };
21826
- }
21827
- return {
21828
- content: [{
21829
- type: "text",
21830
- text: `## State for swarm
21831
-
21832
- Path: ${statePath2}
21833
-
21834
- Note: Swarm uses SQLite database. Use swarm-specific tools to query state.`
21835
- }]
21836
- };
21837
- }
21838
21869
  if (sessionId) {
21839
21870
  validateSessionId(sessionId);
21840
21871
  const statePath2 = MODE_CONFIGS[mode] ? getStateFilePath(root, mode, sessionId) : resolveSessionStatePath(mode, sessionId, root);
@@ -21960,12 +21991,12 @@ var stateWriteTool = {
21960
21991
  active: external_exports.boolean().optional().describe("Whether the mode is currently active"),
21961
21992
  iteration: external_exports.number().optional().describe("Current iteration number"),
21962
21993
  max_iterations: external_exports.number().optional().describe("Maximum iterations allowed"),
21963
- current_phase: external_exports.string().optional().describe("Current execution phase"),
21964
- task_description: external_exports.string().optional().describe("Description of the task being executed"),
21965
- plan_path: external_exports.string().optional().describe("Path to the plan file"),
21966
- started_at: external_exports.string().optional().describe("ISO timestamp when the mode started"),
21967
- completed_at: external_exports.string().optional().describe("ISO timestamp when the mode completed"),
21968
- error: external_exports.string().optional().describe("Error message if the mode failed"),
21994
+ current_phase: external_exports.string().max(200).optional().describe("Current execution phase"),
21995
+ task_description: external_exports.string().max(2e3).optional().describe("Description of the task being executed"),
21996
+ plan_path: external_exports.string().max(500).optional().describe("Path to the plan file"),
21997
+ started_at: external_exports.string().max(100).optional().describe("ISO timestamp when the mode started"),
21998
+ completed_at: external_exports.string().max(100).optional().describe("ISO timestamp when the mode completed"),
21999
+ error: external_exports.string().max(2e3).optional().describe("Error message if the mode failed"),
21969
22000
  state: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Additional custom state fields (merged with explicit parameters)"),
21970
22001
  workingDirectory: external_exports.string().optional().describe("Working directory (defaults to cwd)"),
21971
22002
  session_id: external_exports.string().optional().describe("Session ID for session-scoped state isolation. When provided, the tool operates only within that session. When omitted, the tool aggregates legacy state plus all session-scoped state (may include other sessions).")
@@ -21989,14 +22020,17 @@ var stateWriteTool = {
21989
22020
  try {
21990
22021
  const root = validateWorkingDirectory(workingDirectory);
21991
22022
  const sessionId = session_id;
21992
- if (mode === "swarm") {
21993
- return {
21994
- content: [{
21995
- type: "text",
21996
- text: `Error: Swarm uses SQLite database (swarm.db), not JSON. Use swarm-specific APIs to modify state.`
21997
- }],
21998
- isError: true
21999
- };
22023
+ if (state) {
22024
+ const validation = validatePayload(state);
22025
+ if (!validation.valid) {
22026
+ return {
22027
+ content: [{
22028
+ type: "text",
22029
+ text: `Error: state payload rejected \u2014 ${validation.error}`
22030
+ }],
22031
+ isError: true
22032
+ };
22033
+ }
22000
22034
  }
22001
22035
  let statePath;
22002
22036
  if (sessionId) {
@@ -22084,18 +22118,32 @@ var stateClearTool = {
22084
22118
  });
22085
22119
  if (MODE_CONFIGS[mode]) {
22086
22120
  const success = clearModeState(mode, root, sessionId);
22121
+ let ghostCleaned2 = false;
22122
+ try {
22123
+ const legacyPath = getStateFilePath(root, mode);
22124
+ if ((0, import_fs9.existsSync)(legacyPath)) {
22125
+ const raw = JSON.parse((0, import_fs9.readFileSync)(legacyPath, "utf-8"));
22126
+ const meta = raw._meta;
22127
+ if (!meta || meta.sessionId === sessionId) {
22128
+ (0, import_fs9.unlinkSync)(legacyPath);
22129
+ ghostCleaned2 = true;
22130
+ }
22131
+ }
22132
+ } catch {
22133
+ }
22134
+ const ghostNote2 = ghostCleaned2 ? " (ghost legacy file also removed)" : "";
22087
22135
  if (success) {
22088
22136
  return {
22089
22137
  content: [{
22090
22138
  type: "text",
22091
- text: `Successfully cleared state for mode: ${mode} in session: ${sessionId}`
22139
+ text: `Successfully cleared state for mode: ${mode} in session: ${sessionId}${ghostNote2}`
22092
22140
  }]
22093
22141
  };
22094
22142
  } else {
22095
22143
  return {
22096
22144
  content: [{
22097
22145
  type: "text",
22098
- text: `Warning: Some files could not be removed for mode: ${mode} in session: ${sessionId}`
22146
+ text: `Warning: Some files could not be removed for mode: ${mode} in session: ${sessionId}${ghostNote2}`
22099
22147
  }]
22100
22148
  };
22101
22149
  }
@@ -22103,21 +22151,27 @@ var stateClearTool = {
22103
22151
  const statePath = resolveSessionStatePath(mode, sessionId, root);
22104
22152
  if ((0, import_fs9.existsSync)(statePath)) {
22105
22153
  (0, import_fs9.unlinkSync)(statePath);
22106
- return {
22107
- content: [{
22108
- type: "text",
22109
- text: `Successfully cleared state for mode: ${mode} in session: ${sessionId}
22110
- Removed: ${statePath}`
22111
- }]
22112
- };
22113
- } else {
22114
- return {
22115
- content: [{
22116
- type: "text",
22117
- text: `No state found to clear for mode: ${mode} in session: ${sessionId}`
22118
- }]
22119
- };
22120
22154
  }
22155
+ let ghostCleaned = false;
22156
+ try {
22157
+ const legacyPath = resolveStatePath(mode, root);
22158
+ if ((0, import_fs9.existsSync)(legacyPath)) {
22159
+ const raw = JSON.parse((0, import_fs9.readFileSync)(legacyPath, "utf-8"));
22160
+ const meta = raw._meta;
22161
+ if (!meta || meta.sessionId === sessionId) {
22162
+ (0, import_fs9.unlinkSync)(legacyPath);
22163
+ ghostCleaned = true;
22164
+ }
22165
+ }
22166
+ } catch {
22167
+ }
22168
+ const ghostNote = ghostCleaned ? " (ghost legacy file also removed)" : "";
22169
+ return {
22170
+ content: [{
22171
+ type: "text",
22172
+ text: `Successfully cleared state for mode: ${mode} in session: ${sessionId}${ghostNote}`
22173
+ }]
22174
+ };
22121
22175
  }
22122
22176
  let clearedCount = 0;
22123
22177
  const errors = [];
@@ -22211,16 +22265,18 @@ var stateListActiveTool = {
22211
22265
  if (sessionId) {
22212
22266
  validateSessionId(sessionId);
22213
22267
  const activeModes = [...getActiveModes(root, sessionId)];
22214
- try {
22215
- const ralplanPath2 = resolveSessionStatePath("ralplan", sessionId, root);
22216
- if ((0, import_fs9.existsSync)(ralplanPath2)) {
22217
- const content = (0, import_fs9.readFileSync)(ralplanPath2, "utf-8");
22218
- const state = JSON.parse(content);
22219
- if (state.active) {
22220
- activeModes.push("ralplan");
22268
+ for (const mode of EXTRA_STATE_ONLY_MODES) {
22269
+ try {
22270
+ const statePath = resolveSessionStatePath(mode, sessionId, root);
22271
+ if ((0, import_fs9.existsSync)(statePath)) {
22272
+ const content = (0, import_fs9.readFileSync)(statePath, "utf-8");
22273
+ const state = JSON.parse(content);
22274
+ if (state.active) {
22275
+ activeModes.push(mode);
22276
+ }
22221
22277
  }
22278
+ } catch {
22222
22279
  }
22223
- } catch {
22224
22280
  }
22225
22281
  if (activeModes.length === 0) {
22226
22282
  return {
@@ -22244,15 +22300,17 @@ ${modeList}`
22244
22300
  }
22245
22301
  const modeSessionMap = /* @__PURE__ */ new Map();
22246
22302
  const legacyActiveModes = [...getActiveModes(root)];
22247
- const ralplanPath = getStatePath("ralplan", root);
22248
- if ((0, import_fs9.existsSync)(ralplanPath)) {
22249
- try {
22250
- const content = (0, import_fs9.readFileSync)(ralplanPath, "utf-8");
22251
- const state = JSON.parse(content);
22252
- if (state.active) {
22253
- legacyActiveModes.push("ralplan");
22303
+ for (const mode of EXTRA_STATE_ONLY_MODES) {
22304
+ const statePath = getStatePath(mode, root);
22305
+ if ((0, import_fs9.existsSync)(statePath)) {
22306
+ try {
22307
+ const content = (0, import_fs9.readFileSync)(statePath, "utf-8");
22308
+ const state = JSON.parse(content);
22309
+ if (state.active) {
22310
+ legacyActiveModes.push(mode);
22311
+ }
22312
+ } catch {
22254
22313
  }
22255
- } catch {
22256
22314
  }
22257
22315
  }
22258
22316
  for (const mode of legacyActiveModes) {
@@ -22264,16 +22322,18 @@ ${modeList}`
22264
22322
  const sessionIds = listSessionIds(root);
22265
22323
  for (const sid of sessionIds) {
22266
22324
  const sessionActiveModes = [...getActiveModes(root, sid)];
22267
- try {
22268
- const ralplanSessionPath = resolveSessionStatePath("ralplan", sid, root);
22269
- if ((0, import_fs9.existsSync)(ralplanSessionPath)) {
22270
- const content = (0, import_fs9.readFileSync)(ralplanSessionPath, "utf-8");
22271
- const state = JSON.parse(content);
22272
- if (state.active) {
22273
- sessionActiveModes.push("ralplan");
22325
+ for (const mode of EXTRA_STATE_ONLY_MODES) {
22326
+ try {
22327
+ const statePath = resolveSessionStatePath(mode, sid, root);
22328
+ if ((0, import_fs9.existsSync)(statePath)) {
22329
+ const content = (0, import_fs9.readFileSync)(statePath, "utf-8");
22330
+ const state = JSON.parse(content);
22331
+ if (state.active) {
22332
+ sessionActiveModes.push(mode);
22333
+ }
22274
22334
  }
22335
+ } catch {
22275
22336
  }
22276
- } catch {
22277
22337
  }
22278
22338
  for (const mode of sessionActiveModes) {
22279
22339
  if (!modeSessionMap.has(mode)) {
@@ -22425,19 +22485,21 @@ No active sessions for this mode.`);
22425
22485
  }
22426
22486
  }
22427
22487
  }
22428
- const ralplanPath = sessionId ? resolveSessionStatePath("ralplan", sessionId, root) : getStatePath("ralplan", root);
22429
- let ralplanActive = false;
22430
- if ((0, import_fs9.existsSync)(ralplanPath)) {
22431
- try {
22432
- const content = (0, import_fs9.readFileSync)(ralplanPath, "utf-8");
22433
- const state = JSON.parse(content);
22434
- ralplanActive = state.active === true;
22435
- } catch {
22488
+ for (const mode2 of EXTRA_STATE_ONLY_MODES) {
22489
+ const statePath = sessionId ? resolveSessionStatePath(mode2, sessionId, root) : getStatePath(mode2, root);
22490
+ let active = false;
22491
+ if ((0, import_fs9.existsSync)(statePath)) {
22492
+ try {
22493
+ const content = (0, import_fs9.readFileSync)(statePath, "utf-8");
22494
+ const state = JSON.parse(content);
22495
+ active = state.active === true;
22496
+ } catch {
22497
+ }
22436
22498
  }
22499
+ const icon = active ? "[ACTIVE]" : "[INACTIVE]";
22500
+ lines.push(`${icon} **${mode2}**: ${active ? "Active" : "Inactive"}`);
22501
+ lines.push(` Path: \`${statePath}\``);
22437
22502
  }
22438
- const ralplanIcon = ralplanActive ? "[ACTIVE]" : "[INACTIVE]";
22439
- lines.push(`${ralplanIcon} **ralplan**: ${ralplanActive ? "Active" : "Inactive"}`);
22440
- lines.push(` Path: \`${ralplanPath}\``);
22441
22503
  return {
22442
22504
  content: [{
22443
22505
  type: "text",
@@ -22464,8 +22526,145 @@ var stateTools = [
22464
22526
  ];
22465
22527
 
22466
22528
  // src/hooks/notepad/index.ts
22467
- var import_fs10 = require("fs");
22529
+ var import_fs11 = require("fs");
22468
22530
  var import_path9 = require("path");
22531
+
22532
+ // src/lib/file-lock.ts
22533
+ var import_fs10 = require("fs");
22534
+ var path6 = __toESM(require("path"), 1);
22535
+ var DEFAULT_STALE_LOCK_MS = 3e4;
22536
+ var DEFAULT_RETRY_DELAY_MS = 50;
22537
+ function isPidAlive(pid) {
22538
+ if (pid <= 0 || !Number.isFinite(pid)) return false;
22539
+ try {
22540
+ process.kill(pid, 0);
22541
+ return true;
22542
+ } catch (e) {
22543
+ if (e && typeof e === "object" && "code" in e && e.code === "EPERM")
22544
+ return true;
22545
+ return false;
22546
+ }
22547
+ }
22548
+ function isLockStale(lockPath, staleLockMs) {
22549
+ try {
22550
+ const stat = (0, import_fs10.statSync)(lockPath);
22551
+ const ageMs = Date.now() - stat.mtimeMs;
22552
+ if (ageMs < staleLockMs) return false;
22553
+ try {
22554
+ const raw = (0, import_fs10.readFileSync)(lockPath, "utf-8");
22555
+ const payload = JSON.parse(raw);
22556
+ if (payload.pid && isPidAlive(payload.pid)) return false;
22557
+ } catch {
22558
+ }
22559
+ return true;
22560
+ } catch {
22561
+ return false;
22562
+ }
22563
+ }
22564
+ function lockPathFor(filePath) {
22565
+ return filePath + ".lock";
22566
+ }
22567
+ function tryAcquireSync(lockPath, staleLockMs) {
22568
+ ensureDirSync(path6.dirname(lockPath));
22569
+ for (let attempt = 0; attempt < 2; attempt++) {
22570
+ try {
22571
+ const fd = (0, import_fs10.openSync)(
22572
+ lockPath,
22573
+ import_fs10.constants.O_CREAT | import_fs10.constants.O_EXCL | import_fs10.constants.O_WRONLY,
22574
+ 384
22575
+ );
22576
+ const payload = JSON.stringify({
22577
+ pid: process.pid,
22578
+ timestamp: Date.now()
22579
+ });
22580
+ (0, import_fs10.writeSync)(fd, payload, null, "utf-8");
22581
+ return { fd, path: lockPath };
22582
+ } catch (err) {
22583
+ if (err && typeof err === "object" && "code" in err && err.code === "EEXIST") {
22584
+ if (attempt === 0 && isLockStale(lockPath, staleLockMs)) {
22585
+ try {
22586
+ (0, import_fs10.unlinkSync)(lockPath);
22587
+ } catch {
22588
+ }
22589
+ continue;
22590
+ }
22591
+ return null;
22592
+ }
22593
+ throw err;
22594
+ }
22595
+ }
22596
+ return null;
22597
+ }
22598
+ function acquireFileLockSync(lockPath, opts) {
22599
+ const staleLockMs = opts?.staleLockMs ?? DEFAULT_STALE_LOCK_MS;
22600
+ const timeoutMs = opts?.timeoutMs ?? 0;
22601
+ const retryDelayMs = opts?.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS;
22602
+ const handle = tryAcquireSync(lockPath, staleLockMs);
22603
+ if (handle || timeoutMs <= 0) return handle;
22604
+ const deadline = Date.now() + timeoutMs;
22605
+ const sharedBuf = new SharedArrayBuffer(4);
22606
+ const sharedArr = new Int32Array(sharedBuf);
22607
+ while (Date.now() < deadline) {
22608
+ Atomics.wait(sharedArr, 0, 0, Math.min(retryDelayMs, deadline - Date.now()));
22609
+ const retryHandle = tryAcquireSync(lockPath, staleLockMs);
22610
+ if (retryHandle) return retryHandle;
22611
+ }
22612
+ return null;
22613
+ }
22614
+ function releaseFileLockSync(handle) {
22615
+ try {
22616
+ (0, import_fs10.closeSync)(handle.fd);
22617
+ } catch {
22618
+ }
22619
+ try {
22620
+ (0, import_fs10.unlinkSync)(handle.path);
22621
+ } catch {
22622
+ }
22623
+ }
22624
+ function withFileLockSync(lockPath, fn, opts) {
22625
+ const handle = acquireFileLockSync(lockPath, opts);
22626
+ if (!handle) {
22627
+ throw new Error(`Failed to acquire file lock: ${lockPath}`);
22628
+ }
22629
+ try {
22630
+ return fn();
22631
+ } finally {
22632
+ releaseFileLockSync(handle);
22633
+ }
22634
+ }
22635
+ function sleep3(ms) {
22636
+ return new Promise((resolve5) => setTimeout(resolve5, ms));
22637
+ }
22638
+ async function acquireFileLock(lockPath, opts) {
22639
+ const staleLockMs = opts?.staleLockMs ?? DEFAULT_STALE_LOCK_MS;
22640
+ const timeoutMs = opts?.timeoutMs ?? 0;
22641
+ const retryDelayMs = opts?.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS;
22642
+ const handle = tryAcquireSync(lockPath, staleLockMs);
22643
+ if (handle || timeoutMs <= 0) return handle;
22644
+ const deadline = Date.now() + timeoutMs;
22645
+ while (Date.now() < deadline) {
22646
+ await sleep3(Math.min(retryDelayMs, deadline - Date.now()));
22647
+ const retryHandle = tryAcquireSync(lockPath, staleLockMs);
22648
+ if (retryHandle) return retryHandle;
22649
+ }
22650
+ return null;
22651
+ }
22652
+ function releaseFileLock(handle) {
22653
+ releaseFileLockSync(handle);
22654
+ }
22655
+ async function withFileLock(lockPath, fn, opts) {
22656
+ const handle = await acquireFileLock(lockPath, opts);
22657
+ if (!handle) {
22658
+ throw new Error(`Failed to acquire file lock: ${lockPath}`);
22659
+ }
22660
+ try {
22661
+ return await fn();
22662
+ } finally {
22663
+ releaseFileLock(handle);
22664
+ }
22665
+ }
22666
+
22667
+ // src/hooks/notepad/index.ts
22469
22668
  var NOTEPAD_FILENAME = "notepad.md";
22470
22669
  var DEFAULT_CONFIG = {
22471
22670
  priorityMaxChars: 500,
@@ -22477,19 +22676,19 @@ var PRIORITY_HEADER = "## Priority Context";
22477
22676
  var WORKING_MEMORY_HEADER = "## Working Memory";
22478
22677
  var MANUAL_HEADER = "## MANUAL";
22479
22678
  function getNotepadPath(directory) {
22480
- return (0, import_path9.join)(directory, ".omc", NOTEPAD_FILENAME);
22679
+ return (0, import_path9.join)(getOmcRoot(directory), NOTEPAD_FILENAME);
22481
22680
  }
22482
22681
  function initNotepad(directory) {
22483
- const omcDir = (0, import_path9.join)(directory, ".omc");
22484
- if (!(0, import_fs10.existsSync)(omcDir)) {
22682
+ const omcDir = getOmcRoot(directory);
22683
+ if (!(0, import_fs11.existsSync)(omcDir)) {
22485
22684
  try {
22486
- (0, import_fs10.mkdirSync)(omcDir, { recursive: true });
22685
+ (0, import_fs11.mkdirSync)(omcDir, { recursive: true });
22487
22686
  } catch {
22488
22687
  return false;
22489
22688
  }
22490
22689
  }
22491
22690
  const notepadPath = getNotepadPath(directory);
22492
- if ((0, import_fs10.existsSync)(notepadPath)) {
22691
+ if ((0, import_fs11.existsSync)(notepadPath)) {
22493
22692
  return true;
22494
22693
  }
22495
22694
  const content = `# Notepad
@@ -22514,11 +22713,11 @@ ${MANUAL_HEADER}
22514
22713
  }
22515
22714
  function readNotepad(directory) {
22516
22715
  const notepadPath = getNotepadPath(directory);
22517
- if (!(0, import_fs10.existsSync)(notepadPath)) {
22716
+ if (!(0, import_fs11.existsSync)(notepadPath)) {
22518
22717
  return null;
22519
22718
  }
22520
22719
  try {
22521
- return (0, import_fs10.readFileSync)(notepadPath, "utf-8");
22720
+ return (0, import_fs11.readFileSync)(notepadPath, "utf-8");
22522
22721
  } catch {
22523
22722
  return null;
22524
22723
  }
@@ -22565,116 +22764,124 @@ function getManualSection(directory) {
22565
22764
  return extractSection(content, MANUAL_HEADER);
22566
22765
  }
22567
22766
  function setPriorityContext(directory, content, config2 = DEFAULT_CONFIG) {
22568
- if (!(0, import_fs10.existsSync)(getNotepadPath(directory))) {
22767
+ if (!(0, import_fs11.existsSync)(getNotepadPath(directory))) {
22569
22768
  if (!initNotepad(directory)) {
22570
22769
  return { success: false };
22571
22770
  }
22572
22771
  }
22573
22772
  const notepadPath = getNotepadPath(directory);
22574
- let notepadContent = (0, import_fs10.readFileSync)(notepadPath, "utf-8");
22575
- const warning = content.length > config2.priorityMaxChars ? `Priority Context exceeds ${config2.priorityMaxChars} chars (${content.length} chars). Consider condensing.` : void 0;
22576
- notepadContent = replaceSection(notepadContent, PRIORITY_HEADER, content);
22577
22773
  try {
22578
- atomicWriteFileSync(notepadPath, notepadContent);
22579
- return { success: true, warning };
22774
+ return withFileLockSync(lockPathFor(notepadPath), () => {
22775
+ let notepadContent = (0, import_fs11.readFileSync)(notepadPath, "utf-8");
22776
+ const warning = content.length > config2.priorityMaxChars ? `Priority Context exceeds ${config2.priorityMaxChars} chars (${content.length} chars). Consider condensing.` : void 0;
22777
+ notepadContent = replaceSection(notepadContent, PRIORITY_HEADER, content);
22778
+ atomicWriteFileSync(notepadPath, notepadContent);
22779
+ return { success: true, warning };
22780
+ }, { timeoutMs: 5e3 });
22580
22781
  } catch {
22581
22782
  return { success: false };
22582
22783
  }
22583
22784
  }
22584
22785
  function addWorkingMemoryEntry(directory, content) {
22585
- if (!(0, import_fs10.existsSync)(getNotepadPath(directory))) {
22786
+ if (!(0, import_fs11.existsSync)(getNotepadPath(directory))) {
22586
22787
  if (!initNotepad(directory)) {
22587
22788
  return false;
22588
22789
  }
22589
22790
  }
22590
22791
  const notepadPath = getNotepadPath(directory);
22591
- let notepadContent = (0, import_fs10.readFileSync)(notepadPath, "utf-8");
22592
- const currentMemory = extractSection(notepadContent, WORKING_MEMORY_HEADER) || "";
22593
- const now = /* @__PURE__ */ new Date();
22594
- const timestamp = now.toISOString().slice(0, 16).replace("T", " ");
22595
- const newEntry = `### ${timestamp}
22792
+ try {
22793
+ return withFileLockSync(lockPathFor(notepadPath), () => {
22794
+ let notepadContent = (0, import_fs11.readFileSync)(notepadPath, "utf-8");
22795
+ const currentMemory = extractSection(notepadContent, WORKING_MEMORY_HEADER) || "";
22796
+ const now = /* @__PURE__ */ new Date();
22797
+ const timestamp = now.toISOString().slice(0, 16).replace("T", " ");
22798
+ const newEntry = `### ${timestamp}
22596
22799
  ${content}
22597
22800
  `;
22598
- const updatedMemory = currentMemory ? currentMemory + "\n" + newEntry : newEntry;
22599
- notepadContent = replaceSection(
22600
- notepadContent,
22601
- WORKING_MEMORY_HEADER,
22602
- updatedMemory
22603
- );
22604
- try {
22605
- atomicWriteFileSync(notepadPath, notepadContent);
22606
- return true;
22801
+ const updatedMemory = currentMemory ? currentMemory + "\n" + newEntry : newEntry;
22802
+ notepadContent = replaceSection(
22803
+ notepadContent,
22804
+ WORKING_MEMORY_HEADER,
22805
+ updatedMemory
22806
+ );
22807
+ atomicWriteFileSync(notepadPath, notepadContent);
22808
+ return true;
22809
+ }, { timeoutMs: 5e3 });
22607
22810
  } catch {
22608
22811
  return false;
22609
22812
  }
22610
22813
  }
22611
22814
  function addManualEntry(directory, content) {
22612
- if (!(0, import_fs10.existsSync)(getNotepadPath(directory))) {
22815
+ if (!(0, import_fs11.existsSync)(getNotepadPath(directory))) {
22613
22816
  if (!initNotepad(directory)) {
22614
22817
  return false;
22615
22818
  }
22616
22819
  }
22617
22820
  const notepadPath = getNotepadPath(directory);
22618
- let notepadContent = (0, import_fs10.readFileSync)(notepadPath, "utf-8");
22619
- const currentManual = extractSection(notepadContent, MANUAL_HEADER) || "";
22620
- const now = /* @__PURE__ */ new Date();
22621
- const timestamp = now.toISOString().slice(0, 16).replace("T", " ");
22622
- const newEntry = `### ${timestamp}
22821
+ try {
22822
+ return withFileLockSync(lockPathFor(notepadPath), () => {
22823
+ let notepadContent = (0, import_fs11.readFileSync)(notepadPath, "utf-8");
22824
+ const currentManual = extractSection(notepadContent, MANUAL_HEADER) || "";
22825
+ const now = /* @__PURE__ */ new Date();
22826
+ const timestamp = now.toISOString().slice(0, 16).replace("T", " ");
22827
+ const newEntry = `### ${timestamp}
22623
22828
  ${content}
22624
22829
  `;
22625
- const updatedManual = currentManual ? currentManual + "\n" + newEntry : newEntry;
22626
- notepadContent = replaceSection(notepadContent, MANUAL_HEADER, updatedManual);
22627
- try {
22628
- atomicWriteFileSync(notepadPath, notepadContent);
22629
- return true;
22830
+ const updatedManual = currentManual ? currentManual + "\n" + newEntry : newEntry;
22831
+ notepadContent = replaceSection(notepadContent, MANUAL_HEADER, updatedManual);
22832
+ atomicWriteFileSync(notepadPath, notepadContent);
22833
+ return true;
22834
+ }, { timeoutMs: 5e3 });
22630
22835
  } catch {
22631
22836
  return false;
22632
22837
  }
22633
22838
  }
22634
22839
  function pruneOldEntries(directory, daysOld = DEFAULT_CONFIG.workingMemoryDays) {
22635
22840
  const notepadPath = getNotepadPath(directory);
22636
- if (!(0, import_fs10.existsSync)(notepadPath)) {
22637
- return { pruned: 0, remaining: 0 };
22638
- }
22639
- let notepadContent = (0, import_fs10.readFileSync)(notepadPath, "utf-8");
22640
- const workingMemory = extractSection(notepadContent, WORKING_MEMORY_HEADER);
22641
- if (!workingMemory) {
22841
+ if (!(0, import_fs11.existsSync)(notepadPath)) {
22642
22842
  return { pruned: 0, remaining: 0 };
22643
22843
  }
22644
- const entryRegex = /### (\d{4}-\d{2}-\d{2} \d{2}:\d{2})\n([\s\S]*?)(?=### |$)/g;
22645
- const entries = [];
22646
- let match = entryRegex.exec(workingMemory);
22647
- while (match !== null) {
22648
- entries.push({
22649
- timestamp: match[1],
22650
- content: match[2].trim()
22651
- });
22652
- match = entryRegex.exec(workingMemory);
22653
- }
22654
- const cutoff = /* @__PURE__ */ new Date();
22655
- cutoff.setDate(cutoff.getDate() - daysOld);
22656
- const kept = entries.filter((entry) => {
22657
- const entryDate = new Date(entry.timestamp);
22658
- return entryDate >= cutoff;
22659
- });
22660
- const pruned = entries.length - kept.length;
22661
- const newContent = kept.map((entry) => `### ${entry.timestamp}
22662
- ${entry.content}`).join("\n\n");
22663
- notepadContent = replaceSection(
22664
- notepadContent,
22665
- WORKING_MEMORY_HEADER,
22666
- newContent
22667
- );
22668
22844
  try {
22669
- atomicWriteFileSync(notepadPath, notepadContent);
22670
- return { pruned, remaining: kept.length };
22845
+ return withFileLockSync(lockPathFor(notepadPath), () => {
22846
+ let notepadContent = (0, import_fs11.readFileSync)(notepadPath, "utf-8");
22847
+ const workingMemory = extractSection(notepadContent, WORKING_MEMORY_HEADER);
22848
+ if (!workingMemory) {
22849
+ return { pruned: 0, remaining: 0 };
22850
+ }
22851
+ const entryRegex = /### (\d{4}-\d{2}-\d{2} \d{2}:\d{2})\n([\s\S]*?)(?=### |$)/g;
22852
+ const entries = [];
22853
+ let match = entryRegex.exec(workingMemory);
22854
+ while (match !== null) {
22855
+ entries.push({
22856
+ timestamp: match[1],
22857
+ content: match[2].trim()
22858
+ });
22859
+ match = entryRegex.exec(workingMemory);
22860
+ }
22861
+ const cutoff = /* @__PURE__ */ new Date();
22862
+ cutoff.setDate(cutoff.getDate() - daysOld);
22863
+ const kept = entries.filter((entry) => {
22864
+ const entryDate = new Date(entry.timestamp);
22865
+ return entryDate >= cutoff;
22866
+ });
22867
+ const pruned = entries.length - kept.length;
22868
+ const newContent = kept.map((entry) => `### ${entry.timestamp}
22869
+ ${entry.content}`).join("\n\n");
22870
+ notepadContent = replaceSection(
22871
+ notepadContent,
22872
+ WORKING_MEMORY_HEADER,
22873
+ newContent
22874
+ );
22875
+ atomicWriteFileSync(notepadPath, notepadContent);
22876
+ return { pruned, remaining: kept.length };
22877
+ }, { timeoutMs: 5e3 });
22671
22878
  } catch {
22672
- return { pruned: 0, remaining: entries.length };
22879
+ return { pruned: 0, remaining: 0 };
22673
22880
  }
22674
22881
  }
22675
22882
  function getNotepadStats(directory) {
22676
22883
  const notepadPath = getNotepadPath(directory);
22677
- if (!(0, import_fs10.existsSync)(notepadPath)) {
22884
+ if (!(0, import_fs11.existsSync)(notepadPath)) {
22678
22885
  return {
22679
22886
  exists: false,
22680
22887
  totalSize: 0,
@@ -22683,7 +22890,7 @@ function getNotepadStats(directory) {
22683
22890
  oldestEntry: null
22684
22891
  };
22685
22892
  }
22686
- const content = (0, import_fs10.readFileSync)(notepadPath, "utf-8");
22893
+ const content = (0, import_fs11.readFileSync)(notepadPath, "utf-8");
22687
22894
  const priorityContext = extractSection(content, PRIORITY_HEADER) || "";
22688
22895
  const workingMemory = extractSection(content, WORKING_MEMORY_HEADER) || "";
22689
22896
  const wmMatches = workingMemory.match(
@@ -23103,13 +23310,13 @@ var ContextCollector = class {
23103
23310
  var contextCollector = new ContextCollector();
23104
23311
 
23105
23312
  // src/hooks/rules-injector/finder.ts
23106
- var import_fs11 = require("fs");
23313
+ var import_fs12 = require("fs");
23107
23314
  var import_path11 = require("path");
23108
23315
 
23109
23316
  // src/hooks/rules-injector/constants.ts
23110
23317
  var import_path10 = require("path");
23111
- var import_os = require("os");
23112
- var OMC_STORAGE_DIR = (0, import_path10.join)((0, import_os.homedir)(), ".omc");
23318
+ var import_os2 = require("os");
23319
+ var OMC_STORAGE_DIR = (0, import_path10.join)((0, import_os2.homedir)(), ".omc");
23113
23320
  var RULES_INJECTOR_STORAGE = (0, import_path10.join)(OMC_STORAGE_DIR, "rules-injector");
23114
23321
 
23115
23322
  // src/hooks/project-memory/storage.ts
@@ -23148,6 +23355,11 @@ async function saveProjectMemory(projectRoot, memory) {
23148
23355
  console.error("Failed to save project memory:", error2);
23149
23356
  }
23150
23357
  }
23358
+ var MEMORY_LOCK_OPTS = { timeoutMs: 5e3 };
23359
+ async function withProjectMemoryLock(projectRoot, fn) {
23360
+ const memoryPath = getMemoryPath(projectRoot);
23361
+ return withFileLock(lockPathFor(memoryPath), fn, MEMORY_LOCK_OPTS);
23362
+ }
23151
23363
 
23152
23364
  // src/hooks/project-memory/detector.ts
23153
23365
  var import_promises3 = __toESM(require("fs/promises"), 1);
@@ -23196,27 +23408,135 @@ function withMutex(projectRoot, fn) {
23196
23408
  }
23197
23409
  async function addCustomNote(projectRoot, category, content) {
23198
23410
  return withMutex(projectRoot, async () => {
23199
- try {
23200
- const memory = await loadProjectMemory(projectRoot);
23201
- if (!memory) {
23202
- return;
23203
- }
23204
- memory.customNotes.push({
23205
- timestamp: Date.now(),
23206
- source: "manual",
23207
- category,
23208
- content
23209
- });
23210
- if (memory.customNotes.length > 20) {
23211
- memory.customNotes = memory.customNotes.slice(-20);
23411
+ await withProjectMemoryLock(projectRoot, async () => {
23412
+ try {
23413
+ const memory = await loadProjectMemory(projectRoot);
23414
+ if (!memory) {
23415
+ return;
23416
+ }
23417
+ memory.customNotes.push({
23418
+ timestamp: Date.now(),
23419
+ source: "manual",
23420
+ category,
23421
+ content
23422
+ });
23423
+ if (memory.customNotes.length > 20) {
23424
+ memory.customNotes = memory.customNotes.slice(-20);
23425
+ }
23426
+ await saveProjectMemory(projectRoot, memory);
23427
+ } catch (error2) {
23428
+ console.error("Error adding custom note:", error2);
23212
23429
  }
23213
- await saveProjectMemory(projectRoot, memory);
23214
- } catch (error2) {
23215
- console.error("Error adding custom note:", error2);
23216
- }
23430
+ });
23217
23431
  });
23218
23432
  }
23219
23433
 
23434
+ // src/lib/project-memory-merge.ts
23435
+ function isPlainObject3(value) {
23436
+ return typeof value === "object" && value !== null && !Array.isArray(value) && !(value instanceof Date) && !(value instanceof RegExp);
23437
+ }
23438
+ function deepMerge(base, incoming) {
23439
+ const result = { ...base };
23440
+ for (const key of Object.keys(incoming)) {
23441
+ const baseVal = base[key];
23442
+ const incomingVal = incoming[key];
23443
+ if (incomingVal === null || incomingVal === void 0) {
23444
+ result[key] = incomingVal;
23445
+ continue;
23446
+ }
23447
+ if (isPlainObject3(baseVal) && isPlainObject3(incomingVal)) {
23448
+ result[key] = deepMerge(baseVal, incomingVal);
23449
+ continue;
23450
+ }
23451
+ if (Array.isArray(baseVal) && Array.isArray(incomingVal)) {
23452
+ result[key] = mergeArrays(key, baseVal, incomingVal);
23453
+ continue;
23454
+ }
23455
+ result[key] = incomingVal;
23456
+ }
23457
+ return result;
23458
+ }
23459
+ function mergeArrays(fieldName, base, incoming) {
23460
+ switch (fieldName) {
23461
+ case "customNotes":
23462
+ return mergeByKey(
23463
+ base,
23464
+ incoming,
23465
+ (note) => `${note.category}::${note.content}`,
23466
+ (a, b) => b.timestamp >= a.timestamp ? b : a
23467
+ );
23468
+ case "userDirectives":
23469
+ return mergeByKey(
23470
+ base,
23471
+ incoming,
23472
+ (d) => d.directive,
23473
+ (a, b) => b.timestamp >= a.timestamp ? b : a
23474
+ );
23475
+ case "hotPaths":
23476
+ return mergeByKey(
23477
+ base,
23478
+ incoming,
23479
+ (hp) => hp.path,
23480
+ (a, b) => ({
23481
+ ...b,
23482
+ accessCount: Math.max(a.accessCount, b.accessCount),
23483
+ lastAccessed: Math.max(a.lastAccessed, b.lastAccessed)
23484
+ })
23485
+ );
23486
+ case "languages":
23487
+ case "frameworks":
23488
+ return mergeByKey(
23489
+ base,
23490
+ incoming,
23491
+ (item) => item.name,
23492
+ (_a, b) => b
23493
+ );
23494
+ case "workspaces":
23495
+ case "mainDirectories":
23496
+ case "keyFiles":
23497
+ case "markers":
23498
+ return mergeScalarArray(base, incoming);
23499
+ default:
23500
+ return mergeScalarArray(base, incoming);
23501
+ }
23502
+ }
23503
+ function mergeByKey(base, incoming, keyFn, resolve5) {
23504
+ const seen = /* @__PURE__ */ new Map();
23505
+ for (const item of base) {
23506
+ seen.set(keyFn(item), item);
23507
+ }
23508
+ for (const item of incoming) {
23509
+ const key = keyFn(item);
23510
+ const existing = seen.get(key);
23511
+ if (existing) {
23512
+ seen.set(key, resolve5(existing, item));
23513
+ } else {
23514
+ seen.set(key, item);
23515
+ }
23516
+ }
23517
+ return Array.from(seen.values());
23518
+ }
23519
+ function mergeScalarArray(base, incoming) {
23520
+ const seen = /* @__PURE__ */ new Set();
23521
+ const result = [];
23522
+ for (const item of [...base, ...incoming]) {
23523
+ const key = JSON.stringify(item);
23524
+ if (!seen.has(key)) {
23525
+ seen.add(key);
23526
+ result.push(item);
23527
+ }
23528
+ }
23529
+ return result;
23530
+ }
23531
+ function mergeProjectMemory(existing, incoming) {
23532
+ const merged = deepMerge(
23533
+ existing,
23534
+ incoming
23535
+ );
23536
+ merged.lastScanned = incoming.lastScanned ?? existing.lastScanned;
23537
+ return merged;
23538
+ }
23539
+
23220
23540
  // src/tools/memory-tools.ts
23221
23541
  var projectMemoryReadTool = {
23222
23542
  name: "project_memory_read",
@@ -23302,7 +23622,7 @@ var projectMemoryWriteTool = {
23302
23622
  if (merge2) {
23303
23623
  const existing = await loadProjectMemory(root);
23304
23624
  if (existing) {
23305
- finalMemory = { ...existing, ...memory };
23625
+ finalMemory = mergeProjectMemory(existing, memory);
23306
23626
  } else {
23307
23627
  finalMemory = memory;
23308
23628
  }
@@ -23430,27 +23750,27 @@ var memoryTools = [
23430
23750
  ];
23431
23751
 
23432
23752
  // src/tools/trace-tools.ts
23433
- var import_fs13 = require("fs");
23753
+ var import_fs14 = require("fs");
23434
23754
  var import_path17 = require("path");
23435
23755
 
23436
23756
  // src/hooks/subagent-tracker/session-replay.ts
23437
- var import_fs12 = require("fs");
23757
+ var import_fs13 = require("fs");
23438
23758
  var import_path16 = require("path");
23439
23759
  var REPLAY_PREFIX = "agent-replay-";
23440
23760
  var MAX_REPLAY_SIZE_BYTES = 5 * 1024 * 1024;
23441
23761
  function getReplayFilePath(directory, sessionId) {
23442
- const stateDir = (0, import_path16.join)(directory, ".omc", "state");
23443
- if (!(0, import_fs12.existsSync)(stateDir)) {
23444
- (0, import_fs12.mkdirSync)(stateDir, { recursive: true });
23762
+ const stateDir = (0, import_path16.join)(getOmcRoot(directory), "state");
23763
+ if (!(0, import_fs13.existsSync)(stateDir)) {
23764
+ (0, import_fs13.mkdirSync)(stateDir, { recursive: true });
23445
23765
  }
23446
23766
  const safeId = sessionId.replace(/[^a-zA-Z0-9_-]/g, "_");
23447
23767
  return (0, import_path16.join)(stateDir, `${REPLAY_PREFIX}${safeId}.jsonl`);
23448
23768
  }
23449
23769
  function readReplayEvents(directory, sessionId) {
23450
23770
  const filePath = getReplayFilePath(directory, sessionId);
23451
- if (!(0, import_fs12.existsSync)(filePath)) return [];
23771
+ if (!(0, import_fs13.existsSync)(filePath)) return [];
23452
23772
  try {
23453
- const content = (0, import_fs12.readFileSync)(filePath, "utf-8");
23773
+ const content = (0, import_fs13.readFileSync)(filePath, "utf-8");
23454
23774
  return content.split("\n").filter((line) => line.trim()).map((line) => {
23455
23775
  try {
23456
23776
  return JSON.parse(line);
@@ -23625,10 +23945,10 @@ var REPLAY_PREFIX2 = "agent-replay-";
23625
23945
  function findLatestSessionId(directory) {
23626
23946
  const stateDir = (0, import_path17.join)(directory, ".omc", "state");
23627
23947
  try {
23628
- const files = (0, import_fs13.readdirSync)(stateDir).filter((f) => f.startsWith(REPLAY_PREFIX2) && f.endsWith(".jsonl")).map((f) => ({
23948
+ const files = (0, import_fs14.readdirSync)(stateDir).filter((f) => f.startsWith(REPLAY_PREFIX2) && f.endsWith(".jsonl")).map((f) => ({
23629
23949
  name: f,
23630
23950
  sessionId: f.slice(REPLAY_PREFIX2.length, -".jsonl".length),
23631
- mtime: (0, import_fs13.statSync)((0, import_path17.join)(stateDir, f)).mtimeMs
23951
+ mtime: (0, import_fs14.statSync)((0, import_path17.join)(stateDir, f)).mtimeMs
23632
23952
  })).sort((a, b) => b.mtime - a.mtime);
23633
23953
  return files.length > 0 ? files[0].sessionId : null;
23634
23954
  } catch {