@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
@@ -0,0 +1,477 @@
1
+ /**
2
+ * Upgrade logic: executeUpgrade, executeUpgradeWithMissing, mergeSettingsForUpgrade.
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ import { detectPlatform, DEFAULT_INIT_OPTIONS } from './types.js';
7
+ import { generateSettings } from './settings-generator.js';
8
+ import { generateStatuslineScript } from './statusline-generator.js';
9
+ import { FORCE_SYNC_HELPERS, FORCE_SYNC_GENERATORS, } from './helpers-generator.js';
10
+ import { atomicWriteFile, copyDirRecursive, findSourceDir, findSourceHelpersDir, SKILLS_MAP, COMMANDS_MAP, AGENTS_MAP, MAX_EXEC_FILE_BYTES, } from './shared.js';
11
+ /**
12
+ * Merge new settings into existing settings.json
13
+ * Preserves user customizations while adding new features like Agent Teams
14
+ * Uses platform-specific commands for Mac, Linux, and Windows
15
+ */
16
+ function mergeSettingsForUpgrade(existing) {
17
+ const merged = { ...existing };
18
+ const platform = detectPlatform();
19
+ const isWindows = platform.os === 'windows';
20
+ // Platform-specific command wrappers
21
+ // Windows: Use PowerShell-compatible commands
22
+ // Mac/Linux: Use bash-compatible commands with 2>/dev/null
23
+ // NOTE: teammateIdleCmd and taskCompletedCmd were removed.
24
+ // TeammateIdle/TaskCompleted are not valid Claude Code hook events and caused warnings.
25
+ // Agent Teams hook config lives in monomind.agentTeams.hooks instead.
26
+ // 1. Merge env vars (preserve existing, add new)
27
+ const existingEnv = existing.env || {};
28
+ merged.env = {
29
+ ...existingEnv,
30
+ CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: '1',
31
+ MONOMIND_V1_ENABLED: existingEnv.MONOMIND_V1_ENABLED || 'true',
32
+ MONOMIND_HOOKS_ENABLED: existingEnv.MONOMIND_HOOKS_ENABLED || 'true',
33
+ };
34
+ // 2. Merge hooks (preserve existing, add new Agent Teams + auto-memory hooks)
35
+ const existingHooks = existing.hooks || {};
36
+ merged.hooks = { ...existingHooks };
37
+ // Cross-platform auto-memory hook commands that resolve paths via git root.
38
+ // Uses node -e with git rev-parse so hooks work regardless of CWD (#1259, #1284).
39
+ const gitRootResolver = "var c=require('child_process'),p=require('path'),u=require('url'),r;"
40
+ + "try{r=c.execSync('git rev-parse --show-toplevel',{encoding:'utf8'}).trim()}"
41
+ + 'catch(e){r=process.cwd()}';
42
+ const autoMemoryScript = '.claude/helpers/auto-memory-hook.mjs';
43
+ const autoMemoryImportCmd = `node -e "${gitRootResolver}var f=p.join(r,'${autoMemoryScript}');import(u.pathToFileURL(f).href)" import`;
44
+ const autoMemorySyncCmd = `node -e "${gitRootResolver}var f=p.join(r,'${autoMemoryScript}');import(u.pathToFileURL(f).href)" sync`;
45
+ // Add auto-memory import to SessionStart (if not already present)
46
+ const sessionStartHooks = existingHooks.SessionStart;
47
+ const hasAutoMemoryImport = sessionStartHooks?.some(group => group.hooks?.some(h => h.command?.includes('auto-memory-hook')));
48
+ if (!hasAutoMemoryImport) {
49
+ const startHooks = merged.hooks;
50
+ if (!startHooks.SessionStart) {
51
+ startHooks.SessionStart = [{ hooks: [] }];
52
+ }
53
+ const startGroup = startHooks.SessionStart[0];
54
+ if (!startGroup.hooks)
55
+ startGroup.hooks = [];
56
+ startGroup.hooks.push({
57
+ type: 'command',
58
+ command: autoMemoryImportCmd,
59
+ timeout: 6000,
60
+ continueOnError: true,
61
+ });
62
+ }
63
+ // Add auto-memory sync to SessionEnd (if not already present)
64
+ const sessionEndHooks = existingHooks.SessionEnd;
65
+ const hasAutoMemorySync = sessionEndHooks?.some(group => group.hooks?.some(h => h.command?.includes('auto-memory-hook')));
66
+ if (!hasAutoMemorySync) {
67
+ const endHooks = merged.hooks;
68
+ if (!endHooks.SessionEnd) {
69
+ endHooks.SessionEnd = [{ hooks: [] }];
70
+ }
71
+ const endGroup = endHooks.SessionEnd[0];
72
+ if (!endGroup.hooks)
73
+ endGroup.hooks = [];
74
+ // Insert at beginning so sync runs before other cleanup
75
+ endGroup.hooks.unshift({
76
+ type: 'command',
77
+ command: autoMemorySyncCmd,
78
+ timeout: 8000,
79
+ continueOnError: true,
80
+ });
81
+ }
82
+ // NOTE: TeammateIdle and TaskCompleted are NOT valid Claude Code hook events.
83
+ // They cause warnings when present in settings.json hooks.
84
+ // Remove them if they exist from a previous init.
85
+ delete merged.hooks.TeammateIdle;
86
+ delete merged.hooks.TaskCompleted;
87
+ // Their configuration lives in monomind.agentTeams.hooks instead.
88
+ // 3. Fix statusLine config (remove invalid fields, ensure correct format)
89
+ // Claude Code only supports: type, command, padding
90
+ const existingStatusLine = existing.statusLine;
91
+ if (existingStatusLine) {
92
+ merged.statusLine = {
93
+ type: 'command',
94
+ command: existingStatusLine.command || `node -e "var c=require('child_process'),p=require('path'),r;try{r=c.execSync('git rev-parse --show-toplevel',{encoding:'utf8'}).trim()}catch(e){r=process.cwd()}var s=p.join(r,'.claude/helpers/statusline.cjs');process.argv.splice(1,0,s);require(s)"`,
95
+ // Remove invalid fields: refreshMs, enabled (not supported by Claude Code)
96
+ };
97
+ }
98
+ // 4. Merge monomind settings (preserve existing, add agentTeams + memory)
99
+ const existingMonomind = existing.monomind || {};
100
+ const existingMemory = existingMonomind.memory || {};
101
+ merged.monomind = {
102
+ ...existingMonomind,
103
+ version: existingMonomind.version || '3.0.0',
104
+ enabled: existingMonomind.enabled !== false,
105
+ agentTeams: {
106
+ enabled: true,
107
+ teammateMode: 'auto',
108
+ taskListEnabled: true,
109
+ mailboxEnabled: true,
110
+ coordination: {
111
+ autoAssignOnIdle: true,
112
+ trainPatternsOnComplete: true,
113
+ notifyLeadOnComplete: true,
114
+ sharedMemoryNamespace: 'agent-teams',
115
+ },
116
+ hooks: {
117
+ teammateIdle: { enabled: true, autoAssign: true, checkTaskList: true },
118
+ taskCompleted: { enabled: true, trainPatterns: true, notifyLead: true },
119
+ },
120
+ },
121
+ memory: {
122
+ ...existingMemory,
123
+ learningBridge: existingMemory.learningBridge ?? { enabled: true },
124
+ memoryGraph: existingMemory.memoryGraph ?? { enabled: true },
125
+ agentScopes: existingMemory.agentScopes ?? { enabled: true },
126
+ },
127
+ };
128
+ return merged;
129
+ }
130
+ /**
131
+ * Execute upgrade - updates helpers and creates missing metrics without losing data
132
+ * This is safe for existing users who want the latest statusline fixes
133
+ * @param targetDir - Target directory
134
+ * @param upgradeSettings - If true, merge new settings into existing settings.json
135
+ */
136
+ export async function executeUpgrade(targetDir, upgradeSettings = false) {
137
+ const result = {
138
+ success: true,
139
+ updated: [],
140
+ created: [],
141
+ preserved: [],
142
+ errors: [],
143
+ settingsUpdated: [],
144
+ };
145
+ try {
146
+ // Ensure required directories exist
147
+ const dirs = [
148
+ '.claude/helpers',
149
+ '.monomind/metrics',
150
+ '.monomind/security',
151
+ '.monomind/learning',
152
+ ];
153
+ for (const dir of dirs) {
154
+ const fullPath = path.join(targetDir, dir);
155
+ if (!fs.existsSync(fullPath)) {
156
+ fs.mkdirSync(fullPath, { recursive: true });
157
+ }
158
+ }
159
+ // 0. ALWAYS update critical helpers + subdirectories (force overwrite)
160
+ const sourceHelpersForUpgrade = findSourceHelpersDir();
161
+ if (sourceHelpersForUpgrade) {
162
+ const destHelpersDir = path.join(targetDir, '.claude', 'helpers');
163
+ // Copy top-level critical files atomically. Membership and fallback
164
+ // generators come from the shared HELPER_FILES registry (helpers-generator.ts)
165
+ // rather than a hardcoded list here — see that file's comment for why.
166
+ const criticalHelpers = FORCE_SYNC_HELPERS;
167
+ // Generated fallback for any critical helper missing from the source dir itself
168
+ // (e.g. the published npm template lacking auto-memory-hook.mjs).
169
+ const criticalGenerators = FORCE_SYNC_GENERATORS;
170
+ for (const helperName of criticalHelpers) {
171
+ const targetPath = path.join(destHelpersDir, helperName);
172
+ const sourcePath = path.join(sourceHelpersForUpgrade, helperName);
173
+ if (fs.existsSync(sourcePath)) {
174
+ if (fs.existsSync(targetPath)) {
175
+ result.updated.push(`.claude/helpers/${helperName}`);
176
+ }
177
+ else {
178
+ result.created.push(`.claude/helpers/${helperName}`);
179
+ }
180
+ // Atomic copy-via-rename so a partial write can't leave a broken hook
181
+ const tmp = targetPath + '.tmp';
182
+ fs.copyFileSync(sourcePath, tmp);
183
+ try {
184
+ fs.chmodSync(tmp, 0o755);
185
+ }
186
+ catch { }
187
+ fs.renameSync(tmp, targetPath);
188
+ }
189
+ else if (!fs.existsSync(targetPath) && criticalGenerators[helperName]) {
190
+ const content = criticalGenerators[helperName]();
191
+ const tmp = `${targetPath}.${process.pid}.tmp`;
192
+ fs.writeFileSync(tmp, content, 'utf-8');
193
+ try {
194
+ fs.chmodSync(tmp, 0o755);
195
+ }
196
+ catch { }
197
+ fs.renameSync(tmp, targetPath);
198
+ result.created.push(`.claude/helpers/${helperName}`);
199
+ }
200
+ }
201
+ // Always recursively sync subdirectories (utils/, handlers/) — required by hook-handler.cjs.
202
+ // Uses recursive copy so any future nested subdirs are also covered.
203
+ for (const subdir of ['utils', 'handlers']) {
204
+ const srcSubdir = path.join(sourceHelpersForUpgrade, subdir);
205
+ const destSubdir = path.join(destHelpersDir, subdir);
206
+ if (fs.existsSync(srcSubdir)) {
207
+ copyDirRecursive(srcSubdir, destSubdir);
208
+ result.updated.push(`.claude/helpers/${subdir}/`);
209
+ }
210
+ }
211
+ }
212
+ else {
213
+ // Source not found (npx with broken paths) — use generated fallbacks
214
+ // for every force-synced helper that has one (see HELPER_FILES registry).
215
+ const generatedCritical = Object.fromEntries(Object.entries(FORCE_SYNC_GENERATORS).map(([name, generate]) => [name, generate()]));
216
+ for (const [helperName, content] of Object.entries(generatedCritical)) {
217
+ const targetPath = path.join(targetDir, '.claude', 'helpers', helperName);
218
+ if (fs.existsSync(targetPath)) {
219
+ result.updated.push(`.claude/helpers/${helperName}`);
220
+ }
221
+ else {
222
+ result.created.push(`.claude/helpers/${helperName}`);
223
+ }
224
+ // Atomic write (PID-suffixed) so a partial hook-handler.cjs cannot
225
+ // ship if init is interrupted, and concurrent inits don't collide on
226
+ // the same .tmp filename.
227
+ const tmp = `${targetPath}.${process.pid}.tmp`;
228
+ fs.writeFileSync(tmp, content, 'utf-8');
229
+ try {
230
+ fs.chmodSync(tmp, 0o755);
231
+ }
232
+ catch { }
233
+ fs.renameSync(tmp, targetPath);
234
+ }
235
+ }
236
+ // 1. Statusline fallback — only generate if source copy above didn't cover it
237
+ const statuslinePath = path.join(targetDir, '.claude', 'helpers', 'statusline.cjs');
238
+ if (!sourceHelpersForUpgrade || !fs.existsSync(path.join(sourceHelpersForUpgrade, 'statusline.cjs'))) {
239
+ const upgradeOptions = {
240
+ ...DEFAULT_INIT_OPTIONS,
241
+ targetDir,
242
+ force: true,
243
+ statusline: {
244
+ ...DEFAULT_INIT_OPTIONS.statusline,
245
+ refreshInterval: 5000,
246
+ },
247
+ };
248
+ const statuslineContent = generateStatuslineScript(upgradeOptions);
249
+ if (fs.existsSync(statuslinePath)) {
250
+ result.updated.push('.claude/helpers/statusline.cjs');
251
+ }
252
+ else {
253
+ result.created.push('.claude/helpers/statusline.cjs');
254
+ }
255
+ atomicWriteFile(statuslinePath, statuslineContent);
256
+ }
257
+ // 2. Create MISSING metrics files only (preserve existing data)
258
+ const metricsDir = path.join(targetDir, '.monomind', 'metrics');
259
+ const securityDir = path.join(targetDir, '.monomind', 'security');
260
+ // v1-progress.json
261
+ const progressPath = path.join(metricsDir, 'v1-progress.json');
262
+ if (!fs.existsSync(progressPath)) {
263
+ const progress = {
264
+ version: '3.0.0',
265
+ initialized: new Date().toISOString(),
266
+ domains: { completed: 0, total: 5, status: 'INITIALIZING' },
267
+ ddd: { progress: 0, modules: 0, totalFiles: 0, totalLines: 0 },
268
+ swarm: { activeAgents: 0, maxAgents: 15, topology: 'hierarchical-mesh' },
269
+ learning: { status: 'READY', patternsLearned: 0, sessionsCompleted: 0 },
270
+ _note: 'Metrics will update as you use Monomind'
271
+ };
272
+ atomicWriteFile(progressPath, JSON.stringify(progress, null, 2));
273
+ result.created.push('.monomind/metrics/v1-progress.json');
274
+ }
275
+ else {
276
+ result.preserved.push('.monomind/metrics/v1-progress.json');
277
+ }
278
+ // swarm-activity.json
279
+ const activityPath = path.join(metricsDir, 'swarm-activity.json');
280
+ if (!fs.existsSync(activityPath)) {
281
+ const activity = {
282
+ timestamp: new Date().toISOString(),
283
+ processes: { mcp_server: 0, estimated_agents: 0 },
284
+ swarm: { active: false, agent_count: 0, coordination_active: false },
285
+ integration: { mcp_active: false },
286
+ _initialized: true
287
+ };
288
+ atomicWriteFile(activityPath, JSON.stringify(activity, null, 2));
289
+ result.created.push('.monomind/metrics/swarm-activity.json');
290
+ }
291
+ else {
292
+ result.preserved.push('.monomind/metrics/swarm-activity.json');
293
+ }
294
+ // learning.json
295
+ const learningPath = path.join(metricsDir, 'learning.json');
296
+ if (!fs.existsSync(learningPath)) {
297
+ const learning = {
298
+ initialized: new Date().toISOString(),
299
+ routing: { accuracy: 0, decisions: 0 },
300
+ patterns: { shortTerm: 0, longTerm: 0, quality: 0 },
301
+ sessions: { total: 0, current: null },
302
+ _note: 'Intelligence grows as you use Monomind'
303
+ };
304
+ atomicWriteFile(learningPath, JSON.stringify(learning, null, 2));
305
+ result.created.push('.monomind/metrics/learning.json');
306
+ }
307
+ else {
308
+ result.preserved.push('.monomind/metrics/learning.json');
309
+ }
310
+ // audit-status.json
311
+ const auditPath = path.join(securityDir, 'audit-status.json');
312
+ if (!fs.existsSync(auditPath)) {
313
+ const audit = {
314
+ initialized: new Date().toISOString(),
315
+ status: 'PENDING',
316
+ cvesFixed: 0,
317
+ totalCves: 3,
318
+ lastScan: null,
319
+ _note: 'Run: npx monomind@latest security scan'
320
+ };
321
+ atomicWriteFile(auditPath, JSON.stringify(audit, null, 2));
322
+ result.created.push('.monomind/security/audit-status.json');
323
+ }
324
+ else {
325
+ result.preserved.push('.monomind/security/audit-status.json');
326
+ }
327
+ // 3. Merge settings if requested
328
+ if (upgradeSettings) {
329
+ const settingsPath = path.join(targetDir, '.claude', 'settings.json');
330
+ if (fs.existsSync(settingsPath) && fs.statSync(settingsPath).size <= MAX_EXEC_FILE_BYTES) {
331
+ try {
332
+ const existingSettings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
333
+ const mergedSettings = mergeSettingsForUpgrade(existingSettings);
334
+ atomicWriteFile(settingsPath, JSON.stringify(mergedSettings, null, 2));
335
+ result.updated.push('.claude/settings.json');
336
+ result.settingsUpdated = [
337
+ 'env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS',
338
+ 'hooks.SessionStart (auto-memory import)',
339
+ 'hooks.SessionEnd (auto-memory sync)',
340
+ 'hooks.TeammateIdle (removed — not a valid Claude Code hook)',
341
+ 'hooks.TaskCompleted (removed — not a valid Claude Code hook)',
342
+ 'monomind.agentTeams',
343
+ 'monomind.memory (learningBridge, memoryGraph, agentScopes)',
344
+ ];
345
+ }
346
+ catch (settingsError) {
347
+ result.errors.push(`Settings merge failed: ${settingsError instanceof Error ? settingsError.message : String(settingsError)}`);
348
+ }
349
+ }
350
+ else {
351
+ // Create new settings.json with defaults
352
+ const defaultSettings = generateSettings(DEFAULT_INIT_OPTIONS);
353
+ atomicWriteFile(settingsPath, JSON.stringify(defaultSettings, null, 2));
354
+ result.created.push('.claude/settings.json');
355
+ result.settingsUpdated = ['Created new settings.json with Agent Teams'];
356
+ }
357
+ }
358
+ }
359
+ catch (error) {
360
+ result.success = false;
361
+ result.errors.push(error instanceof Error ? error.message : String(error));
362
+ }
363
+ return result;
364
+ }
365
+ /**
366
+ * Execute upgrade with --add-missing flag
367
+ * Adds any new skills, agents, and commands that don't exist yet
368
+ * @param targetDir - Target directory
369
+ * @param upgradeSettings - If true, merge new settings into existing settings.json
370
+ */
371
+ export async function executeUpgradeWithMissing(targetDir, upgradeSettings = false) {
372
+ // First do the normal upgrade (pass through upgradeSettings)
373
+ const result = await executeUpgrade(targetDir, upgradeSettings);
374
+ if (!result.success) {
375
+ return result;
376
+ }
377
+ // Initialize tracking arrays
378
+ result.addedSkills = [];
379
+ result.addedAgents = [];
380
+ result.addedCommands = [];
381
+ try {
382
+ // Ensure target directories exist
383
+ const skillsDir = path.join(targetDir, '.claude', 'skills');
384
+ const agentsDir = path.join(targetDir, '.claude', 'agents');
385
+ const commandsDir = path.join(targetDir, '.claude', 'commands');
386
+ for (const dir of [skillsDir, agentsDir, commandsDir]) {
387
+ if (!fs.existsSync(dir)) {
388
+ fs.mkdirSync(dir, { recursive: true });
389
+ }
390
+ }
391
+ // Find source directories
392
+ const sourceSkillsDir = findSourceDir('skills');
393
+ const sourceAgentsDir = findSourceDir('agents');
394
+ const sourceCommandsDir = findSourceDir('commands');
395
+ // Debug: Log source directories found
396
+ if (process.env.DEBUG || process.env.MONOMIND_DEBUG) {
397
+ console.log('[DEBUG] Source directories:');
398
+ console.log(` Skills: ${sourceSkillsDir || 'NOT FOUND'}`);
399
+ console.log(` Agents: ${sourceAgentsDir || 'NOT FOUND'}`);
400
+ console.log(` Commands: ${sourceCommandsDir || 'NOT FOUND'}`);
401
+ }
402
+ // Add missing skills
403
+ if (sourceSkillsDir) {
404
+ const allSkills = Object.values(SKILLS_MAP).flat();
405
+ const debugMode = process.env.DEBUG || process.env.MONOMIND_DEBUG;
406
+ if (debugMode) {
407
+ console.log(`[DEBUG] Checking ${allSkills.length} skills from SKILLS_MAP`);
408
+ }
409
+ for (const skillName of [...new Set(allSkills)]) {
410
+ const sourcePath = path.join(sourceSkillsDir, skillName);
411
+ const targetPath = path.join(skillsDir, skillName);
412
+ const sourceExists = fs.existsSync(sourcePath);
413
+ const targetExists = fs.existsSync(targetPath);
414
+ if (debugMode) {
415
+ console.log(`[DEBUG] Skill '${skillName}': source=${sourceExists}, target=${targetExists}`);
416
+ }
417
+ if (sourceExists && !targetExists) {
418
+ copyDirRecursive(sourcePath, targetPath);
419
+ result.addedSkills.push(skillName);
420
+ result.created.push(`.claude/skills/${skillName}`);
421
+ }
422
+ }
423
+ // Mirror added skills to .gemini/skills/ and .agents/skills/ (#100)
424
+ if (result.addedSkills.length > 0) {
425
+ const mirrorDirs = [
426
+ path.join(targetDir, '.gemini', 'skills'),
427
+ path.join(targetDir, '.agents', 'skills'),
428
+ ];
429
+ for (const mirrorDir of mirrorDirs) {
430
+ fs.mkdirSync(mirrorDir, { recursive: true });
431
+ for (const skillName of result.addedSkills) {
432
+ const sourcePath = path.join(sourceSkillsDir, skillName);
433
+ if (fs.existsSync(sourcePath)) {
434
+ copyDirRecursive(sourcePath, path.join(mirrorDir, skillName));
435
+ }
436
+ }
437
+ }
438
+ }
439
+ }
440
+ // Add missing agents
441
+ if (sourceAgentsDir) {
442
+ const allAgents = Object.values(AGENTS_MAP).flat();
443
+ for (const agentCategory of [...new Set(allAgents)]) {
444
+ const sourcePath = path.join(sourceAgentsDir, agentCategory);
445
+ const targetPath = path.join(agentsDir, agentCategory);
446
+ if (fs.existsSync(sourcePath) && !fs.existsSync(targetPath)) {
447
+ copyDirRecursive(sourcePath, targetPath);
448
+ result.addedAgents.push(agentCategory);
449
+ result.created.push(`.claude/agents/${agentCategory}`);
450
+ }
451
+ }
452
+ }
453
+ // Add missing commands
454
+ if (sourceCommandsDir) {
455
+ const allCommands = Object.values(COMMANDS_MAP).flat();
456
+ for (const cmdName of [...new Set(allCommands)]) {
457
+ const sourcePath = path.join(sourceCommandsDir, cmdName);
458
+ const targetPath = path.join(commandsDir, cmdName);
459
+ if (fs.existsSync(sourcePath) && !fs.existsSync(targetPath)) {
460
+ if (fs.statSync(sourcePath).isDirectory()) {
461
+ copyDirRecursive(sourcePath, targetPath);
462
+ }
463
+ else {
464
+ fs.copyFileSync(sourcePath, targetPath);
465
+ }
466
+ result.addedCommands.push(cmdName);
467
+ result.created.push(`.claude/commands/${cmdName}`);
468
+ }
469
+ }
470
+ }
471
+ }
472
+ catch (error) {
473
+ result.errors.push(`Add missing failed: ${error instanceof Error ? error.message : String(error)}`);
474
+ }
475
+ return result;
476
+ }
477
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/init/upgrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Antigravity (agy) / Gemini integration file writers.
3
+ */
4
+ import type { InitOptions, InitResult } from './types.js';
5
+ /**
6
+ * Write Antigravity (agy) integration files:
7
+ * GEMINI.md — agent instructions read by agy
8
+ * .gemini/rules/monomind.md — workflow rules file
9
+ * .gemini/helpers/statusline.sh — shell wrapper for the agy status bar
10
+ * .gemini/settings.json — wires the statusline command into agy
11
+ */
12
+ export declare function writeGeminiFiles(targetDir: string, options: InitOptions, result: InitResult): Promise<void>;
13
+ //# sourceMappingURL=write-antigravity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-antigravity.d.ts","sourceRoot":"","sources":["../../../src/init/write-antigravity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQ1D;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC,CA0Ff"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Antigravity (agy) / Gemini integration file writers.
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ import { generateGeminiMd, generateGeminiRulesMd, generateStatuslineSh, } from './geminimd-generator.js';
7
+ import { atomicWriteFile, MAX_EXEC_FILE_BYTES } from './shared.js';
8
+ /**
9
+ * Write Antigravity (agy) integration files:
10
+ * GEMINI.md — agent instructions read by agy
11
+ * .gemini/rules/monomind.md — workflow rules file
12
+ * .gemini/helpers/statusline.sh — shell wrapper for the agy status bar
13
+ * .gemini/settings.json — wires the statusline command into agy
14
+ */
15
+ export async function writeGeminiFiles(targetDir, options, result) {
16
+ // GEMINI.md
17
+ const geminiMdPath = path.join(targetDir, 'GEMINI.md');
18
+ if (!fs.existsSync(geminiMdPath) || options.force) {
19
+ atomicWriteFile(geminiMdPath, generateGeminiMd(options));
20
+ result.created.files.push('GEMINI.md');
21
+ }
22
+ else {
23
+ result.skipped.push('GEMINI.md');
24
+ }
25
+ // .gemini/rules/monomind.md
26
+ const geminiRulesDir = path.join(targetDir, '.gemini', 'rules');
27
+ fs.mkdirSync(geminiRulesDir, { recursive: true });
28
+ const rulesPath = path.join(geminiRulesDir, 'monomind.md');
29
+ if (!fs.existsSync(rulesPath) || options.force) {
30
+ atomicWriteFile(rulesPath, generateGeminiRulesMd(options));
31
+ result.created.files.push('.gemini/rules/monomind.md');
32
+ }
33
+ else {
34
+ result.skipped.push('.gemini/rules/monomind.md');
35
+ }
36
+ // .gemini/helpers/statusline.sh
37
+ const geminiHelpersDir = path.join(targetDir, '.gemini', 'helpers');
38
+ fs.mkdirSync(geminiHelpersDir, { recursive: true });
39
+ const statuslineShPath = path.join(geminiHelpersDir, 'statusline.sh');
40
+ if (!fs.existsSync(statuslineShPath) || options.force) {
41
+ atomicWriteFile(statuslineShPath, generateStatuslineSh());
42
+ try {
43
+ fs.chmodSync(statuslineShPath, 0o755);
44
+ }
45
+ catch { /* ignore on Windows */ }
46
+ result.created.files.push('.gemini/helpers/statusline.sh');
47
+ }
48
+ else {
49
+ result.skipped.push('.gemini/helpers/statusline.sh');
50
+ }
51
+ // .gemini/settings.json — only write if not already present (user may have
52
+ // their own agy settings; never clobber on force either — we only add to it)
53
+ const geminiSettingsPath = path.join(targetDir, '.gemini', 'settings.json');
54
+ try {
55
+ let existing = {};
56
+ if (fs.existsSync(geminiSettingsPath) && fs.statSync(geminiSettingsPath).size <= MAX_EXEC_FILE_BYTES) {
57
+ existing = JSON.parse(fs.readFileSync(geminiSettingsPath, 'utf-8'));
58
+ }
59
+ if (!existing.statusLine) {
60
+ existing.statusLine = { type: 'command', command: '.gemini/helpers/statusline.sh' };
61
+ atomicWriteFile(geminiSettingsPath, JSON.stringify(existing, null, 2));
62
+ result.created.files.push('.gemini/settings.json (statusLine wired)');
63
+ }
64
+ else {
65
+ result.skipped.push('.gemini/settings.json (statusLine already configured)');
66
+ }
67
+ }
68
+ catch (e) {
69
+ result.errors.push(`writeGeminiFiles: failed to write .gemini/settings.json: ${e instanceof Error ? e.message : String(e)}`);
70
+ }
71
+ // Also update the global ~/.gemini/antigravity-cli/settings.json (best-effort)
72
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '';
73
+ if (homeDir) {
74
+ const globalAgyDir = path.join(homeDir, '.gemini', 'antigravity-cli');
75
+ const globalAgySettings = path.join(globalAgyDir, 'settings.json');
76
+ const globalStatuslineSh = path.join(globalAgyDir, 'statusline.sh');
77
+ try {
78
+ // Only touch the global config when it already exists — i.e. the user
79
+ // actually runs agy. Creating the directory for non-agy users would be
80
+ // init mutating state outside the project for no benefit.
81
+ if (fs.existsSync(globalAgyDir)) {
82
+ // Write/overwrite the global statusline wrapper
83
+ if (!fs.existsSync(globalStatuslineSh) || options.force) {
84
+ atomicWriteFile(globalStatuslineSh, generateStatuslineSh());
85
+ try {
86
+ fs.chmodSync(globalStatuslineSh, 0o755);
87
+ }
88
+ catch { /* ignore */ }
89
+ result.created.files.push('~/.gemini/antigravity-cli/statusline.sh');
90
+ }
91
+ // Inject statusLine into global agy settings without clobbering existing keys
92
+ let globalSettings = {};
93
+ if (fs.existsSync(globalAgySettings) && fs.statSync(globalAgySettings).size <= MAX_EXEC_FILE_BYTES) {
94
+ try {
95
+ globalSettings = JSON.parse(fs.readFileSync(globalAgySettings, 'utf-8'));
96
+ }
97
+ catch { /* reset */ }
98
+ }
99
+ if (!globalSettings.statusLine) {
100
+ globalSettings.statusLine = {
101
+ type: 'command',
102
+ command: `${globalAgyDir}/statusline.sh`,
103
+ };
104
+ atomicWriteFile(globalAgySettings, JSON.stringify(globalSettings, null, 2));
105
+ result.created.files.push('~/.gemini/antigravity-cli/settings.json (statusLine wired)');
106
+ }
107
+ }
108
+ }
109
+ catch (e) {
110
+ // Non-critical — global agy settings is best-effort
111
+ if (process.env.DEBUG || process.env.MONOMIND_DEBUG) {
112
+ console.error('[writeGeminiFiles] failed to update global agy settings:', e);
113
+ }
114
+ }
115
+ }
116
+ }
117
+ //# sourceMappingURL=write-antigravity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-antigravity.js","sourceRoot":"","sources":["../../../src/init/write-antigravity.ts"],"names":[],"mappings":"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"}