@monoes/monomindcli 2.8.4 → 2.9.1

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 (363) hide show
  1. package/.claude/helpers/auto-memory-hook.mjs +0 -0
  2. package/.claude/helpers/handlers/route-handler.cjs +12 -0
  3. package/.claude/helpers/handlers/session-restore-handler.cjs +28 -7
  4. package/.claude/helpers/hook-handler.cjs +0 -0
  5. package/.claude/helpers/utils/micro-agents.cjs +22 -0
  6. package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +11 -6
  7. package/.claude/skills/monodesign/scripts/live-inject.mjs +20 -7
  8. package/.claude/skills/monodesign/scripts/live-server.mjs +38 -2
  9. package/LICENSE +191 -0
  10. package/README.md +8 -6
  11. package/dist/src/browser/dashboard/server.d.ts +5 -0
  12. package/dist/src/browser/dashboard/server.d.ts.map +1 -1
  13. package/dist/src/browser/dashboard/server.js +59 -4
  14. package/dist/src/browser/dashboard/server.js.map +1 -1
  15. package/dist/src/browser/dashboard/ui.html +18 -8
  16. package/dist/src/browser/workflow/store.d.ts.map +1 -1
  17. package/dist/src/browser/workflow/store.js +3 -2
  18. package/dist/src/browser/workflow/store.js.map +1 -1
  19. package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
  20. package/dist/src/capabilities/cap-documents.js +14 -9
  21. package/dist/src/capabilities/cap-documents.js.map +1 -1
  22. package/dist/src/commands/doctor.d.ts.map +1 -1
  23. package/dist/src/commands/doctor.js +22 -18
  24. package/dist/src/commands/doctor.js.map +1 -1
  25. package/dist/src/commands/download-embeddings.d.ts +8 -0
  26. package/dist/src/commands/download-embeddings.d.ts.map +1 -0
  27. package/dist/src/commands/download-embeddings.js +34 -0
  28. package/dist/src/commands/download-embeddings.js.map +1 -0
  29. package/dist/src/commands/hooks.d.ts.map +1 -1
  30. package/dist/src/commands/hooks.js +14 -0
  31. package/dist/src/commands/hooks.js.map +1 -1
  32. package/dist/src/commands/index.d.ts.map +1 -1
  33. package/dist/src/commands/index.js +4 -0
  34. package/dist/src/commands/index.js.map +1 -1
  35. package/dist/src/commands/init-wizard.js +1 -1
  36. package/dist/src/commands/init-wizard.js.map +1 -1
  37. package/dist/src/commands/init.d.ts.map +1 -1
  38. package/dist/src/commands/init.js +48 -1
  39. package/dist/src/commands/init.js.map +1 -1
  40. package/dist/src/commands/monograph.d.ts.map +1 -1
  41. package/dist/src/commands/monograph.js +35 -1
  42. package/dist/src/commands/monograph.js.map +1 -1
  43. package/dist/src/commands/org-observe.d.ts +10 -0
  44. package/dist/src/commands/org-observe.d.ts.map +1 -1
  45. package/dist/src/commands/org-observe.js +195 -31
  46. package/dist/src/commands/org-observe.js.map +1 -1
  47. package/dist/src/commands/org.d.ts +1 -0
  48. package/dist/src/commands/org.d.ts.map +1 -1
  49. package/dist/src/commands/org.js +139 -3
  50. package/dist/src/commands/org.js.map +1 -1
  51. package/dist/src/commands/route.d.ts +1 -9
  52. package/dist/src/commands/route.d.ts.map +1 -1
  53. package/dist/src/commands/route.js +42 -65
  54. package/dist/src/commands/route.js.map +1 -1
  55. package/dist/src/commands/security-cve.d.ts.map +1 -1
  56. package/dist/src/commands/security-cve.js +2 -1
  57. package/dist/src/commands/security-cve.js.map +1 -1
  58. package/dist/src/index.d.ts +0 -10
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/index.js +4 -15
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/init/copy-assets.d.ts +17 -0
  63. package/dist/src/init/copy-assets.d.ts.map +1 -0
  64. package/dist/src/init/copy-assets.js +271 -0
  65. package/dist/src/init/copy-assets.js.map +1 -0
  66. package/dist/src/init/executor.d.ts +2 -30
  67. package/dist/src/init/executor.d.ts.map +1 -1
  68. package/dist/src/init/executor.js +56 -2493
  69. package/dist/src/init/executor.js.map +1 -1
  70. package/dist/src/init/helpers-generator.d.ts.map +1 -1
  71. package/dist/src/init/helpers-generator.js +9 -0
  72. package/dist/src/init/helpers-generator.js.map +1 -1
  73. package/dist/src/init/settings-generator.d.ts.map +1 -1
  74. package/dist/src/init/settings-generator.js +0 -4
  75. package/dist/src/init/settings-generator.js.map +1 -1
  76. package/dist/src/init/shared.d.ts +112 -0
  77. package/dist/src/init/shared.d.ts.map +1 -0
  78. package/dist/src/init/shared.js +475 -0
  79. package/dist/src/init/shared.js.map +1 -0
  80. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  81. package/dist/src/init/statusline-generator.js +37 -0
  82. package/dist/src/init/statusline-generator.js.map +1 -1
  83. package/dist/src/init/types.d.ts +1 -1
  84. package/dist/src/init/types.d.ts.map +1 -1
  85. package/dist/src/init/upgrade.d.ts +34 -0
  86. package/dist/src/init/upgrade.d.ts.map +1 -0
  87. package/dist/src/init/upgrade.js +477 -0
  88. package/dist/src/init/upgrade.js.map +1 -0
  89. package/dist/src/init/write-antigravity.d.ts +13 -0
  90. package/dist/src/init/write-antigravity.d.ts.map +1 -0
  91. package/dist/src/init/write-antigravity.js +117 -0
  92. package/dist/src/init/write-antigravity.js.map +1 -0
  93. package/dist/src/init/write-capabilities.d.ts +9 -0
  94. package/dist/src/init/write-capabilities.d.ts.map +1 -0
  95. package/dist/src/init/write-capabilities.js +392 -0
  96. package/dist/src/init/write-capabilities.js.map +1 -0
  97. package/dist/src/init/write-claude.d.ts +25 -0
  98. package/dist/src/init/write-claude.d.ts.map +1 -0
  99. package/dist/src/init/write-claude.js +279 -0
  100. package/dist/src/init/write-claude.js.map +1 -0
  101. package/dist/src/init/write-kimicode.d.ts +19 -0
  102. package/dist/src/init/write-kimicode.d.ts.map +1 -0
  103. package/dist/src/init/write-kimicode.js +223 -0
  104. package/dist/src/init/write-kimicode.js.map +1 -0
  105. package/dist/src/init/write-opencode.d.ts +14 -0
  106. package/dist/src/init/write-opencode.d.ts.map +1 -0
  107. package/dist/src/init/write-opencode.js +130 -0
  108. package/dist/src/init/write-opencode.js.map +1 -0
  109. package/dist/src/init/write-runtime-config.d.ts +14 -0
  110. package/dist/src/init/write-runtime-config.d.ts.map +1 -0
  111. package/dist/src/init/write-runtime-config.js +214 -0
  112. package/dist/src/init/write-runtime-config.js.map +1 -0
  113. package/dist/src/init/write-sample-org.d.ts +9 -0
  114. package/dist/src/init/write-sample-org.d.ts.map +1 -0
  115. package/dist/src/init/write-sample-org.js +39 -0
  116. package/dist/src/init/write-sample-org.js.map +1 -0
  117. package/dist/src/knowledge/eval/golden-set.js +1 -1
  118. package/dist/src/knowledge/eval/golden-set.js.map +1 -1
  119. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
  120. package/dist/src/mcp-tools/analyze-tools.js +2 -25
  121. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  122. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -1
  123. package/dist/src/mcp-tools/auto-install.js +2 -1
  124. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  125. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  126. package/dist/src/mcp-tools/hooks-routing.js +26 -0
  127. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  128. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  129. package/dist/src/mcp-tools/memory-tools.js +2 -37
  130. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  131. package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts +5 -0
  132. package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts.map +1 -0
  133. package/dist/src/mcp-tools/monograph/agent-history-tools.js +177 -0
  134. package/dist/src/mcp-tools/monograph/agent-history-tools.js.map +1 -0
  135. package/dist/src/mcp-tools/monograph/build-tools.d.ts +9 -0
  136. package/dist/src/mcp-tools/monograph/build-tools.d.ts.map +1 -0
  137. package/dist/src/mcp-tools/monograph/build-tools.js +299 -0
  138. package/dist/src/mcp-tools/monograph/build-tools.js.map +1 -0
  139. package/dist/src/mcp-tools/monograph/group-tools.d.ts +10 -0
  140. package/dist/src/mcp-tools/monograph/group-tools.d.ts.map +1 -0
  141. package/dist/src/mcp-tools/monograph/group-tools.js +225 -0
  142. package/dist/src/mcp-tools/monograph/group-tools.js.map +1 -0
  143. package/dist/src/mcp-tools/monograph/health-tools.d.ts +6 -0
  144. package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -0
  145. package/dist/src/mcp-tools/monograph/health-tools.js +113 -0
  146. package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -0
  147. package/dist/src/mcp-tools/monograph/impact-tools.d.ts +9 -0
  148. package/dist/src/mcp-tools/monograph/impact-tools.d.ts.map +1 -0
  149. package/dist/src/mcp-tools/monograph/impact-tools.js +532 -0
  150. package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -0
  151. package/dist/src/mcp-tools/monograph/index.d.ts +10 -0
  152. package/dist/src/mcp-tools/monograph/index.d.ts.map +1 -0
  153. package/dist/src/mcp-tools/monograph/index.js +73 -0
  154. package/dist/src/mcp-tools/monograph/index.js.map +1 -0
  155. package/dist/src/mcp-tools/monograph/query-tools.d.ts +11 -0
  156. package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -0
  157. package/dist/src/mcp-tools/monograph/query-tools.js +500 -0
  158. package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -0
  159. package/dist/src/mcp-tools/monograph/shared.d.ts +64 -0
  160. package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -0
  161. package/dist/src/mcp-tools/monograph/shared.js +215 -0
  162. package/dist/src/mcp-tools/monograph/shared.js.map +1 -0
  163. package/dist/src/mcp-tools/monograph/visualize-tools.d.ts +10 -0
  164. package/dist/src/mcp-tools/monograph/visualize-tools.d.ts.map +1 -0
  165. package/dist/src/mcp-tools/monograph/visualize-tools.js +382 -0
  166. package/dist/src/mcp-tools/monograph/visualize-tools.js.map +1 -0
  167. package/dist/src/mcp-tools/monograph-tools.d.ts +4 -23
  168. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  169. package/dist/src/mcp-tools/monograph-tools.js +4 -2439
  170. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  171. package/dist/src/mcp-tools/monomind-tools.d.ts +8 -0
  172. package/dist/src/mcp-tools/monomind-tools.d.ts.map +1 -1
  173. package/dist/src/mcp-tools/monomind-tools.js +13 -1
  174. package/dist/src/mcp-tools/monomind-tools.js.map +1 -1
  175. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -1
  176. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +31 -2
  177. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -1
  178. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
  179. package/dist/src/mcp-tools/terminal-tools.js +31 -1
  180. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  181. package/dist/src/mcp-tools/types.d.ts +8 -27
  182. package/dist/src/mcp-tools/types.d.ts.map +1 -1
  183. package/dist/src/mcp-tools/types.js +9 -91
  184. package/dist/src/mcp-tools/types.js.map +1 -1
  185. package/dist/src/memory/file-permissions.d.ts +15 -0
  186. package/dist/src/memory/file-permissions.d.ts.map +1 -0
  187. package/dist/src/memory/file-permissions.js +25 -0
  188. package/dist/src/memory/file-permissions.js.map +1 -0
  189. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  190. package/dist/src/memory/memory-bridge.js +94 -34
  191. package/dist/src/memory/memory-bridge.js.map +1 -1
  192. package/dist/src/memory/memory-crud.d.ts.map +1 -1
  193. package/dist/src/memory/memory-crud.js +298 -275
  194. package/dist/src/memory/memory-crud.js.map +1 -1
  195. package/dist/src/memory/memory-initializer.d.ts +2 -4
  196. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  197. package/dist/src/memory/memory-initializer.js +53 -76
  198. package/dist/src/memory/memory-initializer.js.map +1 -1
  199. package/dist/src/memory/memory-migrations.d.ts +1 -14
  200. package/dist/src/memory/memory-migrations.d.ts.map +1 -1
  201. package/dist/src/memory/memory-migrations.js +52 -105
  202. package/dist/src/memory/memory-migrations.js.map +1 -1
  203. package/dist/src/memory/sona-optimizer.d.ts +1 -1
  204. package/dist/src/memory/sona-optimizer.js +1 -1
  205. package/dist/src/monovector/index.d.ts +16 -19
  206. package/dist/src/monovector/index.d.ts.map +1 -1
  207. package/dist/src/monovector/index.js +50 -8
  208. package/dist/src/monovector/index.js.map +1 -1
  209. package/dist/src/orgrt/approvals.d.ts +16 -0
  210. package/dist/src/orgrt/approvals.d.ts.map +1 -0
  211. package/dist/src/orgrt/approvals.js +72 -0
  212. package/dist/src/orgrt/approvals.js.map +1 -0
  213. package/dist/src/orgrt/bus.d.ts.map +1 -1
  214. package/dist/src/orgrt/bus.js +21 -0
  215. package/dist/src/orgrt/bus.js.map +1 -1
  216. package/dist/src/orgrt/checkpoint-ops.d.ts +19 -0
  217. package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -0
  218. package/dist/src/orgrt/checkpoint-ops.js +219 -0
  219. package/dist/src/orgrt/checkpoint-ops.js.map +1 -0
  220. package/dist/src/orgrt/checkpoint.d.ts +33 -1
  221. package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
  222. package/dist/src/orgrt/checkpoint.js +50 -6
  223. package/dist/src/orgrt/checkpoint.js.map +1 -1
  224. package/dist/src/orgrt/cross-org.d.ts +32 -0
  225. package/dist/src/orgrt/cross-org.d.ts.map +1 -0
  226. package/dist/src/orgrt/cross-org.js +256 -0
  227. package/dist/src/orgrt/cross-org.js.map +1 -0
  228. package/dist/src/orgrt/daemon.d.ts +131 -157
  229. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  230. package/dist/src/orgrt/daemon.js +356 -966
  231. package/dist/src/orgrt/daemon.js.map +1 -1
  232. package/dist/src/orgrt/decisions.d.ts +33 -0
  233. package/dist/src/orgrt/decisions.d.ts.map +1 -0
  234. package/dist/src/orgrt/decisions.js +169 -0
  235. package/dist/src/orgrt/decisions.js.map +1 -0
  236. package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
  237. package/dist/src/orgrt/kimicode-runner.js +5 -1
  238. package/dist/src/orgrt/kimicode-runner.js.map +1 -1
  239. package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
  240. package/dist/src/orgrt/opencode-runner.js +10 -2
  241. package/dist/src/orgrt/opencode-runner.js.map +1 -1
  242. package/dist/src/orgrt/org-memory.d.ts +45 -0
  243. package/dist/src/orgrt/org-memory.d.ts.map +1 -0
  244. package/dist/src/orgrt/org-memory.js +220 -0
  245. package/dist/src/orgrt/org-memory.js.map +1 -0
  246. package/dist/src/orgrt/policy.d.ts +4 -0
  247. package/dist/src/orgrt/policy.d.ts.map +1 -1
  248. package/dist/src/orgrt/policy.js +13 -1
  249. package/dist/src/orgrt/policy.js.map +1 -1
  250. package/dist/src/orgrt/prechecks.d.ts +15 -0
  251. package/dist/src/orgrt/prechecks.d.ts.map +1 -0
  252. package/dist/src/orgrt/prechecks.js +21 -0
  253. package/dist/src/orgrt/prechecks.js.map +1 -0
  254. package/dist/src/orgrt/questions.d.ts +39 -0
  255. package/dist/src/orgrt/questions.d.ts.map +1 -0
  256. package/dist/src/orgrt/questions.js +135 -0
  257. package/dist/src/orgrt/questions.js.map +1 -0
  258. package/dist/src/orgrt/remote.d.ts +25 -0
  259. package/dist/src/orgrt/remote.d.ts.map +1 -0
  260. package/dist/src/orgrt/remote.js +73 -0
  261. package/dist/src/orgrt/remote.js.map +1 -0
  262. package/dist/src/orgrt/scheduler-integration.d.ts +19 -0
  263. package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -0
  264. package/dist/src/orgrt/scheduler-integration.js +90 -0
  265. package/dist/src/orgrt/scheduler-integration.js.map +1 -0
  266. package/dist/src/orgrt/server.d.ts.map +1 -1
  267. package/dist/src/orgrt/server.js +70 -2
  268. package/dist/src/orgrt/server.js.map +1 -1
  269. package/dist/src/orgrt/session.d.ts +30 -1
  270. package/dist/src/orgrt/session.d.ts.map +1 -1
  271. package/dist/src/orgrt/session.js +184 -53
  272. package/dist/src/orgrt/session.js.map +1 -1
  273. package/dist/src/orgrt/state-detector.d.ts +19 -0
  274. package/dist/src/orgrt/state-detector.d.ts.map +1 -0
  275. package/dist/src/orgrt/state-detector.js +59 -0
  276. package/dist/src/orgrt/state-detector.js.map +1 -0
  277. package/dist/src/orgrt/task-dag.d.ts +27 -0
  278. package/dist/src/orgrt/task-dag.d.ts.map +1 -0
  279. package/dist/src/orgrt/task-dag.js +100 -0
  280. package/dist/src/orgrt/task-dag.js.map +1 -0
  281. package/dist/src/orgrt/tool-fence.d.ts +7 -4
  282. package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
  283. package/dist/src/orgrt/tool-fence.js +47 -6
  284. package/dist/src/orgrt/tool-fence.js.map +1 -1
  285. package/dist/src/orgrt/types.d.ts +57 -2
  286. package/dist/src/orgrt/types.d.ts.map +1 -1
  287. package/dist/src/orgrt/types.js +34 -3
  288. package/dist/src/orgrt/types.js.map +1 -1
  289. package/dist/src/routing/model-download.d.ts +49 -0
  290. package/dist/src/routing/model-download.d.ts.map +1 -0
  291. package/dist/src/routing/model-download.js +106 -0
  292. package/dist/src/routing/model-download.js.map +1 -0
  293. package/dist/src/services/crash-reporter.d.ts +5 -0
  294. package/dist/src/services/crash-reporter.d.ts.map +1 -1
  295. package/dist/src/services/crash-reporter.js +49 -0
  296. package/dist/src/services/crash-reporter.js.map +1 -1
  297. package/dist/src/transfer/anonymization/index.d.ts +18 -15
  298. package/dist/src/transfer/anonymization/index.d.ts.map +1 -1
  299. package/dist/src/transfer/anonymization/index.js +7 -119
  300. package/dist/src/transfer/anonymization/index.js.map +1 -1
  301. package/dist/src/ui/dashboard.html +606 -7
  302. package/dist/src/ui/orgs.html +7 -1
  303. package/dist/src/ui/routes-monograph.mjs +6 -0
  304. package/dist/src/ui/server.mjs +327 -7
  305. package/dist/src/update/checker.d.ts.map +1 -1
  306. package/dist/src/update/checker.js +2 -1
  307. package/dist/src/update/checker.js.map +1 -1
  308. package/dist/src/update/executor.d.ts.map +1 -1
  309. package/dist/src/update/executor.js +7 -3
  310. package/dist/src/update/executor.js.map +1 -1
  311. package/dist/src/update/index.d.ts +0 -1
  312. package/dist/src/update/index.d.ts.map +1 -1
  313. package/dist/src/update/index.js +5 -24
  314. package/dist/src/update/index.js.map +1 -1
  315. package/dist/src/utils/db-mutex.d.ts +11 -0
  316. package/dist/src/utils/db-mutex.d.ts.map +1 -0
  317. package/dist/src/utils/db-mutex.js +23 -0
  318. package/dist/src/utils/db-mutex.js.map +1 -0
  319. package/dist/src/utils/input-guards.d.ts +23 -0
  320. package/dist/src/utils/input-guards.d.ts.map +1 -1
  321. package/dist/src/utils/input-guards.js +72 -0
  322. package/dist/src/utils/input-guards.js.map +1 -1
  323. package/dist/src/utils/npm-command.d.ts +10 -0
  324. package/dist/src/utils/npm-command.d.ts.map +1 -0
  325. package/dist/src/utils/npm-command.js +12 -0
  326. package/dist/src/utils/npm-command.js.map +1 -0
  327. package/dist/src/utils/paths.d.ts +28 -0
  328. package/dist/src/utils/paths.d.ts.map +1 -0
  329. package/dist/src/utils/paths.js +108 -0
  330. package/dist/src/utils/paths.js.map +1 -0
  331. package/dist/tsconfig.tsbuildinfo +1 -1
  332. package/package.json +17 -17
  333. package/scripts/download-embedding-model.mjs +97 -0
  334. package/scripts/publish.sh +0 -0
  335. package/scripts/sync-claude-assets.sh +0 -0
  336. package/dist/src/production/circuit-breaker.d.ts +0 -121
  337. package/dist/src/production/circuit-breaker.d.ts.map +0 -1
  338. package/dist/src/production/circuit-breaker.js +0 -262
  339. package/dist/src/production/circuit-breaker.js.map +0 -1
  340. package/dist/src/production/error-handler.d.ts +0 -119
  341. package/dist/src/production/error-handler.d.ts.map +0 -1
  342. package/dist/src/production/error-handler.js +0 -324
  343. package/dist/src/production/error-handler.js.map +0 -1
  344. package/dist/src/production/index.d.ts +0 -6
  345. package/dist/src/production/index.d.ts.map +0 -1
  346. package/dist/src/production/index.js +0 -6
  347. package/dist/src/production/index.js.map +0 -1
  348. package/dist/src/production/monitoring.d.ts +0 -181
  349. package/dist/src/production/monitoring.d.ts.map +0 -1
  350. package/dist/src/production/monitoring.js +0 -375
  351. package/dist/src/production/monitoring.js.map +0 -1
  352. package/dist/src/production/rate-limiter.d.ts +0 -125
  353. package/dist/src/production/rate-limiter.d.ts.map +0 -1
  354. package/dist/src/production/rate-limiter.js +0 -218
  355. package/dist/src/production/rate-limiter.js.map +0 -1
  356. package/dist/src/production/retry.d.ts +0 -48
  357. package/dist/src/production/retry.d.ts.map +0 -1
  358. package/dist/src/production/retry.js +0 -189
  359. package/dist/src/production/retry.js.map +0 -1
  360. package/dist/src/transfer/types.d.ts +0 -245
  361. package/dist/src/transfer/types.d.ts.map +0 -1
  362. package/dist/src/transfer/types.js +0 -6
  363. package/dist/src/transfer/types.js.map +0 -1
@@ -13,8 +13,7 @@ export { shouldCheckForUpdates, recordCheck, getCachedVersions, clearCache, load
13
13
  export { validateUpdate, validateBulkUpdate } from './validator.js';
14
14
  export { executeUpdate, executeMultipleUpdates, rollbackUpdate, getUpdateHistory, clearHistory, loadHistory, } from './executor.js';
15
15
  // Re-export a convenience function for startup
16
- import { checkForUpdates, DEFAULT_CONFIG, getInstalledVersion } from './checker.js';
17
- import { executeMultipleUpdates } from './executor.js';
16
+ import { checkForUpdates, DEFAULT_CONFIG } from './checker.js';
18
17
  import { getCachedVersions } from './rate-limiter.js';
19
18
  // Inline semver shim — avoids external dependency (semver is not listed in package.json)
20
19
  const semver = {
@@ -38,7 +37,6 @@ const semver = {
38
37
  * Synchronous — reads cached state from last check.
39
38
  * Returns a short inline string for the CLI version tagline, e.g.
40
39
  * " ↑ v1.11.12 available"
41
- * " ↑ v1.11.12 installing..."
42
40
  * " ✓ up to date"
43
41
  * "" (no cache yet)
44
42
  */
@@ -77,27 +75,10 @@ export async function runStartupUpdateCheck(options) {
77
75
  }
78
76
  result.checked = true;
79
77
  result.updatesAvailable = results;
80
- // Auto-update if enabled
81
- if (options.autoUpdate !== false) {
82
- const autoUpdateable = results.filter((r) => r.shouldAutoUpdate);
83
- if (autoUpdateable.length > 0) {
84
- // Notify caller before installation begins
85
- options.onInstalling?.(autoUpdateable.map(u => `${u.package}@${u.latestVersion}`));
86
- // Get current installed packages
87
- const installedPackages = {};
88
- for (const update of autoUpdateable) {
89
- const version = getInstalledVersion(update.package);
90
- if (version) {
91
- installedPackages[update.package] = version;
92
- }
93
- }
94
- // Execute updates
95
- const updateResults = await executeMultipleUpdates(autoUpdateable, installedPackages);
96
- result.updatesApplied = updateResults
97
- .filter((r) => r.success)
98
- .map((r) => `${r.package}@${r.version}`);
99
- }
100
- }
78
+ // Notify-only: never auto-install on startup (GitHub issue #83).
79
+ // The old code ran `npm install` with inherited cwd, silently modifying
80
+ // the user's project package.json instead of updating the global CLI.
81
+ // We still populate updatesAvailable so callers can display a message.
101
82
  return result;
102
83
  }
103
84
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/update/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,SAAS,GACV,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIpE,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,eAAe,CAAC;AAIvB,+CAA+C;AAC/C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,yFAAyF;AACzF,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,CAAC,CAA4B,EAAiB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI;IAClG,EAAE,EAAE,CAAC,CAAS,EAAE,CAAS,EAAW,EAAE;QACpC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;IACjF,CAAC;IACD,GAAG,EAAE,CAAC,CAAS,EAAE,CAAS,EAAW,EAAE;QACrC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,GAAG,IAAI,CAAC;QACtC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,GAAG,IAAI,CAAC;QACtC,OAAO,IAAI,IAAI,IAAI,CAAC;IACtB,CAAC;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,iFAAiF;QACjF,2EAA2E;QAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;YAAE,OAAO,EAAE,CAAC;QACjF,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAChE,OAAO,QAAQ,MAAM,YAAY,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAI3C;IAMC,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,KAAK;QACd,gBAAgB,EAAE,EAAyB;QAC3C,cAAc,EAAE,EAAc;QAC9B,aAAa,EAAE,SAA+B;KAC/C,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;QAE3E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAElC,yBAAyB;QACzB,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YACjC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAEjE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,2CAA2C;gBAC3C,OAAO,CAAC,YAAY,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBAEnF,iCAAiC;gBACjC,MAAM,iBAAiB,GAA2B,EAAE,CAAC;gBACrD,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;oBACpC,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACpD,IAAI,OAAO,EAAE,CAAC;wBACZ,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;oBAC9C,CAAC;gBACH,CAAC;gBAED,kBAAkB;gBAClB,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAChD,cAAc,EACd,iBAAiB,CAClB,CAAC;gBAEF,MAAM,CAAC,cAAc,GAAG,aAAa;qBAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;qBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,mDAAmD;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/update/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Serialize sql.js read-modify-write cycles per database path within this
3
+ * process. Callers that load a .db file, mutate it in WASM, then export+
4
+ * rename must wrap the entire cycle in this lock so concurrent MCP tool
5
+ * calls don't each load a stale copy (last writer wins = data loss).
6
+ *
7
+ * Only protects within a single Node process — cross-process races need
8
+ * file locking, which is a separate concern.
9
+ */
10
+ export declare function withDbLock<T>(dbPath: string, fn: () => Promise<T>): Promise<T>;
11
+ //# sourceMappingURL=db-mutex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-mutex.d.ts","sourceRoot":"","sources":["../../../src/utils/db-mutex.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAS9E"}
@@ -0,0 +1,23 @@
1
+ import { resolve } from 'node:path';
2
+ const locks = new Map();
3
+ /**
4
+ * Serialize sql.js read-modify-write cycles per database path within this
5
+ * process. Callers that load a .db file, mutate it in WASM, then export+
6
+ * rename must wrap the entire cycle in this lock so concurrent MCP tool
7
+ * calls don't each load a stale copy (last writer wins = data loss).
8
+ *
9
+ * Only protects within a single Node process — cross-process races need
10
+ * file locking, which is a separate concern.
11
+ */
12
+ export function withDbLock(dbPath, fn) {
13
+ const key = resolve(dbPath);
14
+ const prev = locks.get(key) ?? Promise.resolve();
15
+ const next = prev.then(fn, fn);
16
+ locks.set(key, next);
17
+ next.finally(() => {
18
+ if (locks.get(key) === next)
19
+ locks.delete(key);
20
+ });
21
+ return next;
22
+ }
23
+ //# sourceMappingURL=db-mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-mutex.js","sourceRoot":"","sources":["../../../src/utils/db-mutex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAI,MAAc,EAAE,EAAoB;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;QAChB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -36,6 +36,29 @@ export declare function realOrResolved(p: string): string;
36
36
  * const safeName = result.sanitized!;
37
37
  */
38
38
  export declare function validateInput(value: unknown, opts: ValidateInputOpts): ValidationResult;
39
+ /**
40
+ * Sanitize an error before returning it to MCP callers.
41
+ * Strips filesystem paths from error messages to avoid leaking internal layout.
42
+ */
43
+ export declare function sanitizeError(error: unknown): string;
44
+ /**
45
+ * Validate a string value for MCP tool handlers.
46
+ * Returns the string when valid, or null when invalid.
47
+ * Lighter-weight than `validateInput({ type: 'string' })` — designed
48
+ * for the fast-path guard pattern used in MCP tool handlers.
49
+ */
50
+ export declare function validateMcpString(value: unknown, _name: string, maxLen?: number): string | null;
51
+ /**
52
+ * Validate a positive integer for MCP tool parameters.
53
+ * Returns the clamped value or the default.
54
+ */
55
+ export declare function validatePositiveInt(value: unknown, defaultVal: number, max: number): number;
56
+ /**
57
+ * Validate a score (0–1 range) for MCP tool parameters.
58
+ * Returns the clamped value or the default.
59
+ */
60
+ export declare function validateScore(value: unknown, defaultVal: number): number;
61
+ export declare function validateRef(value: unknown, maxLen?: number): string | null;
39
62
  export interface ExternalContentResult {
40
63
  safe: boolean;
41
64
  reason?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"input-guards.d.ts","sourceRoot":"","sources":["../../../src/utils/input-guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoDD;;;;;;;yCAOyC;AACzC,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBhD;AAuED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,iBAAiB,GACtB,gBAAgB,CAalB;AAMD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAuChC"}
1
+ {"version":3,"file":"input-guards.d.ts","sourceRoot":"","sources":["../../../src/utils/input-guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoDD;;;;;;;yCAOyC;AACzC,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBhD;AAuED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,iBAAiB,GACtB,gBAAgB,CAalB;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOpD;AAWD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,MAAM,SAAU,GACf,MAAM,GAAG,IAAI,CAKf;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,GACjB,MAAM,CAGR;AAQD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,SAAM,GAAG,MAAM,GAAG,IAAI,CAKvE;AAMD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAuChC"}
@@ -167,6 +167,78 @@ export function validateInput(value, opts) {
167
167
  return validateOrgName(value, opts);
168
168
  }
169
169
  }
170
+ /* ------------------------------------------------------------------ */
171
+ /* MCP tool helpers — shared across MCP handler files */
172
+ /* ------------------------------------------------------------------ */
173
+ /**
174
+ * Sanitize an error before returning it to MCP callers.
175
+ * Strips filesystem paths from error messages to avoid leaking internal layout.
176
+ */
177
+ export function sanitizeError(error) {
178
+ if (error instanceof Error) {
179
+ return error.message
180
+ .replace(/\/[^\s:]+(\/|(?=\s|:|$))/g, '<path>/')
181
+ .substring(0, 500);
182
+ }
183
+ return 'Internal error';
184
+ }
185
+ /**
186
+ * Reject NUL and C0 control chars except \t \n \r.
187
+ * NUL truncates strings at the C-API boundary in some bridge backends
188
+ * (key collision); ANSI/control chars enable terminal injection when
189
+ * values are echoed back; \r/\n in values fed to log files breaks
190
+ * log-line integrity.
191
+ */
192
+ const MCP_CONTROL_CHAR_RE = /[\x00-\x08\x0B\x0C\x0E-\x1F]/;
193
+ /**
194
+ * Validate a string value for MCP tool handlers.
195
+ * Returns the string when valid, or null when invalid.
196
+ * Lighter-weight than `validateInput({ type: 'string' })` — designed
197
+ * for the fast-path guard pattern used in MCP tool handlers.
198
+ */
199
+ export function validateMcpString(value, _name, maxLen = 100_000) {
200
+ if (typeof value !== 'string' || value.length === 0)
201
+ return null;
202
+ if (value.length > maxLen)
203
+ return null;
204
+ if (MCP_CONTROL_CHAR_RE.test(value))
205
+ return null;
206
+ return value;
207
+ }
208
+ /**
209
+ * Validate a positive integer for MCP tool parameters.
210
+ * Returns the clamped value or the default.
211
+ */
212
+ export function validatePositiveInt(value, defaultVal, max) {
213
+ if (typeof value !== 'number' || !Number.isFinite(value))
214
+ return defaultVal;
215
+ const n = Math.floor(value);
216
+ return n > 0 ? Math.min(n, max) : defaultVal;
217
+ }
218
+ /**
219
+ * Validate a score (0–1 range) for MCP tool parameters.
220
+ * Returns the clamped value or the default.
221
+ */
222
+ export function validateScore(value, defaultVal) {
223
+ if (typeof value !== 'number' || !Number.isFinite(value))
224
+ return defaultVal;
225
+ return Math.max(0, Math.min(1, value));
226
+ }
227
+ /**
228
+ * Validate a git ref: non-empty string, bounded length, no shell
229
+ * metacharacters. Returns the sanitized ref, 'HEAD' for empty/missing
230
+ * input, or null for invalid input.
231
+ */
232
+ const REF_SAFE_RE = /^[a-zA-Z0-9_./:@^~\-\.{}\[\]]+$/;
233
+ export function validateRef(value, maxLen = 256) {
234
+ if (typeof value !== 'string' || value.length === 0)
235
+ return 'HEAD';
236
+ if (value.length > maxLen)
237
+ return null;
238
+ if (!REF_SAFE_RE.test(value))
239
+ return null;
240
+ return value;
241
+ }
170
242
  /**
171
243
  * Case-insensitive patterns that indicate an attempt to override
172
244
  * system-level instructions or inject prompt directives.
@@ -1 +1 @@
1
- {"version":3,"file":"input-guards.js","sourceRoot":"","sources":["../../../src/utils/input-guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input-guards.js","sourceRoot":"","sources":["../../../src/utils/input-guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Cross-platform npm executable resolution.
3
+ *
4
+ * On Windows, `npm` is a `.cmd` shim and Node >= 18.20.2 refuses to
5
+ * execFile/spawn `.cmd` files without `shell: true` (throws EINVAL).
6
+ * We intentionally avoid `shell: true` everywhere (injection risk), so the
7
+ * fix is to invoke `npm.cmd` directly on win32 (GitHub issue #84).
8
+ */
9
+ export declare function npmCommand(): string;
10
+ //# sourceMappingURL=npm-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-command.d.ts","sourceRoot":"","sources":["../../../src/utils/npm-command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Cross-platform npm executable resolution.
3
+ *
4
+ * On Windows, `npm` is a `.cmd` shim and Node >= 18.20.2 refuses to
5
+ * execFile/spawn `.cmd` files without `shell: true` (throws EINVAL).
6
+ * We intentionally avoid `shell: true` everywhere (injection risk), so the
7
+ * fix is to invoke `npm.cmd` directly on win32 (GitHub issue #84).
8
+ */
9
+ export function npmCommand() {
10
+ return process.platform === 'win32' ? 'npm.cmd' : 'npm';
11
+ }
12
+ //# sourceMappingURL=npm-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-command.js","sourceRoot":"","sources":["../../../src/utils/npm-command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Returns the effective project working directory.
3
+ * Prefers MONOMIND_CWD (set by the install script for global/MCP installs
4
+ * where process.cwd() may resolve to '/') over the real process.cwd().
5
+ */
6
+ export declare function getProjectCwd(): string;
7
+ export declare function getMonomindDataRoot(cwd?: string): string;
8
+ /**
9
+ * One-time migration for the agent/task/hive/swarm stores that historically lived
10
+ * under `<projectCwd>/.monomind/<subpath>` (via getProjectCwd()) before being
11
+ * consolidated onto the canonical getMonomindDataRoot() location (typically
12
+ * `<repo>/.git/monomind/<subpath>`). Several MCP tool files (agent-tools.ts,
13
+ * hive-mind-tools.ts, swarm-tools.ts, system-tools.ts) used to read/write the
14
+ * legacy path directly, causing the same logical store to physically split from
15
+ * task-tools.ts/session-tools.ts, which always used getMonomindDataRoot().
16
+ *
17
+ * If the canonical file is missing but the legacy file exists, copy (never move,
18
+ * for safety) the legacy file into place so pre-existing data isn't silently
19
+ * orphaned. Best-effort and idempotent — never throws, and it's a no-op once the
20
+ * canonical file exists or when the two paths already coincide (e.g. no .git).
21
+ *
22
+ * @param canonicalPath Absolute path under getMonomindDataRoot() the tool now reads from.
23
+ * @param legacySubpath Path relative to `.monomind/` that the tool used to read from
24
+ * (e.g. `join('agents', 'store.json')`).
25
+ * @param cwd Optional project cwd override (defaults to getProjectCwd()).
26
+ */
27
+ export declare function migrateLegacyStoreFile(canonicalPath: string, legacySubpath: string, cwd?: string): void;
28
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/utils/paths.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAiBD,wBAAgB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CA0BxD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAWvG"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Project path resolution — single canonical home.
3
+ *
4
+ * A1 (architecture review): these three helpers used to live in
5
+ * `mcp-tools/types.ts`, which inverted the dependency direction. Every
6
+ * layer (commands/, mcp-client.ts, monovector/, orgrt/) ended up importing
7
+ * from `mcp-tools/` just to resolve the project root — the tool layer was
8
+ * acting as a shared library.
9
+ *
10
+ * Moved here so the dependency direction is correct: tool layer consumes
11
+ * path infrastructure; it does not provide it.
12
+ *
13
+ * Re-exported from `mcp-tools/types.ts` for backward compatibility —
14
+ * existing imports keep working; new code should import from here.
15
+ */
16
+ import { statSync, readFileSync, existsSync, mkdirSync, copyFileSync } from 'node:fs';
17
+ import { join, dirname, resolve } from 'node:path';
18
+ /**
19
+ * Returns the effective project working directory.
20
+ * Prefers MONOMIND_CWD (set by the install script for global/MCP installs
21
+ * where process.cwd() may resolve to '/') over the real process.cwd().
22
+ */
23
+ export function getProjectCwd() {
24
+ return process.env.MONOMIND_CWD || process.cwd();
25
+ }
26
+ /**
27
+ * Returns the stable Monomind data root that survives branch switches and is
28
+ * shared across all git worktrees of the same repository.
29
+ *
30
+ * Resolution order:
31
+ * 1. MONOMIND_DATA_DIR env var — allows overriding to e.g. ~/.monomind/<project>
32
+ * 2. <repo>/.git/monomind/ — regular repo (branch-agnostic, shared by design)
33
+ * 3. <main-repo>/.git/monomind/— worktree: .git is a pointer file → resolve to
34
+ * the shared .git dir of the main worktree
35
+ * 4. <cwd>/.monomind/ — fallback when git is unavailable
36
+ *
37
+ * Mirrors the _getGitMonomindDir() function in server.mjs so session, task,
38
+ * memory, and org data all land in the same stable location.
39
+ */
40
+ const _dataRootCache = new Map();
41
+ export function getMonomindDataRoot(cwd) {
42
+ if (process.env.MONOMIND_DATA_DIR)
43
+ return process.env.MONOMIND_DATA_DIR;
44
+ const workDir = cwd || getProjectCwd();
45
+ if (_dataRootCache.has(workDir))
46
+ return _dataRootCache.get(workDir);
47
+ let result;
48
+ try {
49
+ const gitEntry = join(workDir, '.git');
50
+ const st = statSync(gitEntry);
51
+ if (st.isDirectory()) {
52
+ result = join(gitEntry, 'monomind');
53
+ }
54
+ else {
55
+ // Worktree: .git is a text file "gitdir: /main/.git/worktrees/name"
56
+ const m = readFileSync(gitEntry, 'utf8').match(/^gitdir:\s*(.+)/m);
57
+ if (m) {
58
+ const worktreeDir = resolve(workDir, m[1].trim());
59
+ const commonGitDir = dirname(dirname(worktreeDir));
60
+ result = join(commonGitDir, 'monomind');
61
+ }
62
+ else {
63
+ result = join(workDir, '.monomind');
64
+ }
65
+ }
66
+ }
67
+ catch {
68
+ result = join(workDir, '.monomind');
69
+ }
70
+ _dataRootCache.set(workDir, result);
71
+ return result;
72
+ }
73
+ /**
74
+ * One-time migration for the agent/task/hive/swarm stores that historically lived
75
+ * under `<projectCwd>/.monomind/<subpath>` (via getProjectCwd()) before being
76
+ * consolidated onto the canonical getMonomindDataRoot() location (typically
77
+ * `<repo>/.git/monomind/<subpath>`). Several MCP tool files (agent-tools.ts,
78
+ * hive-mind-tools.ts, swarm-tools.ts, system-tools.ts) used to read/write the
79
+ * legacy path directly, causing the same logical store to physically split from
80
+ * task-tools.ts/session-tools.ts, which always used getMonomindDataRoot().
81
+ *
82
+ * If the canonical file is missing but the legacy file exists, copy (never move,
83
+ * for safety) the legacy file into place so pre-existing data isn't silently
84
+ * orphaned. Best-effort and idempotent — never throws, and it's a no-op once the
85
+ * canonical file exists or when the two paths already coincide (e.g. no .git).
86
+ *
87
+ * @param canonicalPath Absolute path under getMonomindDataRoot() the tool now reads from.
88
+ * @param legacySubpath Path relative to `.monomind/` that the tool used to read from
89
+ * (e.g. `join('agents', 'store.json')`).
90
+ * @param cwd Optional project cwd override (defaults to getProjectCwd()).
91
+ */
92
+ export function migrateLegacyStoreFile(canonicalPath, legacySubpath, cwd) {
93
+ try {
94
+ if (existsSync(canonicalPath))
95
+ return;
96
+ const legacyPath = join(cwd || getProjectCwd(), '.monomind', legacySubpath);
97
+ if (legacyPath === canonicalPath)
98
+ return;
99
+ if (!existsSync(legacyPath))
100
+ return;
101
+ mkdirSync(dirname(canonicalPath), { recursive: true });
102
+ copyFileSync(legacyPath, canonicalPath);
103
+ }
104
+ catch {
105
+ // Best-effort; leave both stores as-is on any failure.
106
+ }
107
+ }
108
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;AACjD,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACxE,MAAM,OAAO,GAAG,GAAG,IAAI,aAAa,EAAE,CAAC;IACvC,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;IACrE,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACnE,IAAI,CAAC,EAAE,CAAC;gBACN,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;gBACnD,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACtC,CAAC;IACD,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CAAC,aAAqB,EAAE,aAAqB,EAAE,GAAY;IAC/F,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,aAAa,CAAC;YAAE,OAAO;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,aAAa,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAC5E,IAAI,UAAU,KAAK,aAAa;YAAE,OAAO;QACzC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO;QACpC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;AACH,CAAC"}