@monoes/monomindcli 2.8.3 → 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 (377) 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/design-palette.d.ts +5 -0
  23. package/dist/src/commands/design-palette.d.ts.map +1 -1
  24. package/dist/src/commands/design-palette.js +8 -5
  25. package/dist/src/commands/design-palette.js.map +1 -1
  26. package/dist/src/commands/doctor.d.ts.map +1 -1
  27. package/dist/src/commands/doctor.js +22 -18
  28. package/dist/src/commands/doctor.js.map +1 -1
  29. package/dist/src/commands/download-embeddings.d.ts +8 -0
  30. package/dist/src/commands/download-embeddings.d.ts.map +1 -0
  31. package/dist/src/commands/download-embeddings.js +34 -0
  32. package/dist/src/commands/download-embeddings.js.map +1 -0
  33. package/dist/src/commands/hooks.d.ts.map +1 -1
  34. package/dist/src/commands/hooks.js +14 -0
  35. package/dist/src/commands/hooks.js.map +1 -1
  36. package/dist/src/commands/index.d.ts.map +1 -1
  37. package/dist/src/commands/index.js +4 -0
  38. package/dist/src/commands/index.js.map +1 -1
  39. package/dist/src/commands/init-wizard.js +1 -1
  40. package/dist/src/commands/init-wizard.js.map +1 -1
  41. package/dist/src/commands/init.d.ts.map +1 -1
  42. package/dist/src/commands/init.js +48 -1
  43. package/dist/src/commands/init.js.map +1 -1
  44. package/dist/src/commands/monograph.d.ts.map +1 -1
  45. package/dist/src/commands/monograph.js +35 -1
  46. package/dist/src/commands/monograph.js.map +1 -1
  47. package/dist/src/commands/org-observe.d.ts +10 -0
  48. package/dist/src/commands/org-observe.d.ts.map +1 -1
  49. package/dist/src/commands/org-observe.js +195 -31
  50. package/dist/src/commands/org-observe.js.map +1 -1
  51. package/dist/src/commands/org.d.ts +1 -0
  52. package/dist/src/commands/org.d.ts.map +1 -1
  53. package/dist/src/commands/org.js +139 -3
  54. package/dist/src/commands/org.js.map +1 -1
  55. package/dist/src/commands/route.d.ts +1 -9
  56. package/dist/src/commands/route.d.ts.map +1 -1
  57. package/dist/src/commands/route.js +42 -65
  58. package/dist/src/commands/route.js.map +1 -1
  59. package/dist/src/commands/security-cve.d.ts.map +1 -1
  60. package/dist/src/commands/security-cve.js +2 -1
  61. package/dist/src/commands/security-cve.js.map +1 -1
  62. package/dist/src/index.d.ts +0 -10
  63. package/dist/src/index.d.ts.map +1 -1
  64. package/dist/src/index.js +4 -15
  65. package/dist/src/index.js.map +1 -1
  66. package/dist/src/init/copy-assets.d.ts +17 -0
  67. package/dist/src/init/copy-assets.d.ts.map +1 -0
  68. package/dist/src/init/copy-assets.js +271 -0
  69. package/dist/src/init/copy-assets.js.map +1 -0
  70. package/dist/src/init/executor.d.ts +2 -30
  71. package/dist/src/init/executor.d.ts.map +1 -1
  72. package/dist/src/init/executor.js +56 -2493
  73. package/dist/src/init/executor.js.map +1 -1
  74. package/dist/src/init/geminimd-generator.js +2 -2
  75. package/dist/src/init/helpers-generator.d.ts.map +1 -1
  76. package/dist/src/init/helpers-generator.js +9 -0
  77. package/dist/src/init/helpers-generator.js.map +1 -1
  78. package/dist/src/init/kimi-generator.js +3 -3
  79. package/dist/src/init/kimi-generator.js.map +1 -1
  80. package/dist/src/init/settings-generator.d.ts.map +1 -1
  81. package/dist/src/init/settings-generator.js +0 -4
  82. package/dist/src/init/settings-generator.js.map +1 -1
  83. package/dist/src/init/shared.d.ts +112 -0
  84. package/dist/src/init/shared.d.ts.map +1 -0
  85. package/dist/src/init/shared.js +475 -0
  86. package/dist/src/init/shared.js.map +1 -0
  87. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  88. package/dist/src/init/statusline-generator.js +37 -0
  89. package/dist/src/init/statusline-generator.js.map +1 -1
  90. package/dist/src/init/types.d.ts +1 -1
  91. package/dist/src/init/types.d.ts.map +1 -1
  92. package/dist/src/init/upgrade.d.ts +34 -0
  93. package/dist/src/init/upgrade.d.ts.map +1 -0
  94. package/dist/src/init/upgrade.js +477 -0
  95. package/dist/src/init/upgrade.js.map +1 -0
  96. package/dist/src/init/write-antigravity.d.ts +13 -0
  97. package/dist/src/init/write-antigravity.d.ts.map +1 -0
  98. package/dist/src/init/write-antigravity.js +117 -0
  99. package/dist/src/init/write-antigravity.js.map +1 -0
  100. package/dist/src/init/write-capabilities.d.ts +9 -0
  101. package/dist/src/init/write-capabilities.d.ts.map +1 -0
  102. package/dist/src/init/write-capabilities.js +392 -0
  103. package/dist/src/init/write-capabilities.js.map +1 -0
  104. package/dist/src/init/write-claude.d.ts +25 -0
  105. package/dist/src/init/write-claude.d.ts.map +1 -0
  106. package/dist/src/init/write-claude.js +279 -0
  107. package/dist/src/init/write-claude.js.map +1 -0
  108. package/dist/src/init/write-kimicode.d.ts +19 -0
  109. package/dist/src/init/write-kimicode.d.ts.map +1 -0
  110. package/dist/src/init/write-kimicode.js +223 -0
  111. package/dist/src/init/write-kimicode.js.map +1 -0
  112. package/dist/src/init/write-opencode.d.ts +14 -0
  113. package/dist/src/init/write-opencode.d.ts.map +1 -0
  114. package/dist/src/init/write-opencode.js +130 -0
  115. package/dist/src/init/write-opencode.js.map +1 -0
  116. package/dist/src/init/write-runtime-config.d.ts +14 -0
  117. package/dist/src/init/write-runtime-config.d.ts.map +1 -0
  118. package/dist/src/init/write-runtime-config.js +214 -0
  119. package/dist/src/init/write-runtime-config.js.map +1 -0
  120. package/dist/src/init/write-sample-org.d.ts +9 -0
  121. package/dist/src/init/write-sample-org.d.ts.map +1 -0
  122. package/dist/src/init/write-sample-org.js +39 -0
  123. package/dist/src/init/write-sample-org.js.map +1 -0
  124. package/dist/src/knowledge/eval/golden-set.js +1 -1
  125. package/dist/src/knowledge/eval/golden-set.js.map +1 -1
  126. package/dist/src/mcp-client.d.ts.map +1 -1
  127. package/dist/src/mcp-client.js +7 -3
  128. package/dist/src/mcp-client.js.map +1 -1
  129. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
  130. package/dist/src/mcp-tools/analyze-tools.js +2 -25
  131. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  132. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -1
  133. package/dist/src/mcp-tools/auto-install.js +2 -1
  134. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  135. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  136. package/dist/src/mcp-tools/hooks-routing.js +26 -0
  137. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  138. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  139. package/dist/src/mcp-tools/memory-tools.js +2 -37
  140. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  141. package/dist/src/mcp-tools/monodesign-tools.d.ts +19 -0
  142. package/dist/src/mcp-tools/monodesign-tools.d.ts.map +1 -0
  143. package/dist/src/mcp-tools/monodesign-tools.js +233 -0
  144. package/dist/src/mcp-tools/monodesign-tools.js.map +1 -0
  145. package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts +5 -0
  146. package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts.map +1 -0
  147. package/dist/src/mcp-tools/monograph/agent-history-tools.js +177 -0
  148. package/dist/src/mcp-tools/monograph/agent-history-tools.js.map +1 -0
  149. package/dist/src/mcp-tools/monograph/build-tools.d.ts +9 -0
  150. package/dist/src/mcp-tools/monograph/build-tools.d.ts.map +1 -0
  151. package/dist/src/mcp-tools/monograph/build-tools.js +299 -0
  152. package/dist/src/mcp-tools/monograph/build-tools.js.map +1 -0
  153. package/dist/src/mcp-tools/monograph/group-tools.d.ts +10 -0
  154. package/dist/src/mcp-tools/monograph/group-tools.d.ts.map +1 -0
  155. package/dist/src/mcp-tools/monograph/group-tools.js +225 -0
  156. package/dist/src/mcp-tools/monograph/group-tools.js.map +1 -0
  157. package/dist/src/mcp-tools/monograph/health-tools.d.ts +6 -0
  158. package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -0
  159. package/dist/src/mcp-tools/monograph/health-tools.js +113 -0
  160. package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -0
  161. package/dist/src/mcp-tools/monograph/impact-tools.d.ts +9 -0
  162. package/dist/src/mcp-tools/monograph/impact-tools.d.ts.map +1 -0
  163. package/dist/src/mcp-tools/monograph/impact-tools.js +532 -0
  164. package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -0
  165. package/dist/src/mcp-tools/monograph/index.d.ts +10 -0
  166. package/dist/src/mcp-tools/monograph/index.d.ts.map +1 -0
  167. package/dist/src/mcp-tools/monograph/index.js +73 -0
  168. package/dist/src/mcp-tools/monograph/index.js.map +1 -0
  169. package/dist/src/mcp-tools/monograph/query-tools.d.ts +11 -0
  170. package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -0
  171. package/dist/src/mcp-tools/monograph/query-tools.js +500 -0
  172. package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -0
  173. package/dist/src/mcp-tools/monograph/shared.d.ts +64 -0
  174. package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -0
  175. package/dist/src/mcp-tools/monograph/shared.js +215 -0
  176. package/dist/src/mcp-tools/monograph/shared.js.map +1 -0
  177. package/dist/src/mcp-tools/monograph/visualize-tools.d.ts +10 -0
  178. package/dist/src/mcp-tools/monograph/visualize-tools.d.ts.map +1 -0
  179. package/dist/src/mcp-tools/monograph/visualize-tools.js +382 -0
  180. package/dist/src/mcp-tools/monograph/visualize-tools.js.map +1 -0
  181. package/dist/src/mcp-tools/monograph-tools.d.ts +4 -23
  182. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  183. package/dist/src/mcp-tools/monograph-tools.js +4 -2439
  184. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  185. package/dist/src/mcp-tools/monomind-tools.d.ts +8 -0
  186. package/dist/src/mcp-tools/monomind-tools.d.ts.map +1 -1
  187. package/dist/src/mcp-tools/monomind-tools.js +13 -1
  188. package/dist/src/mcp-tools/monomind-tools.js.map +1 -1
  189. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -1
  190. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +31 -2
  191. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -1
  192. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
  193. package/dist/src/mcp-tools/terminal-tools.js +31 -1
  194. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  195. package/dist/src/mcp-tools/types.d.ts +8 -27
  196. package/dist/src/mcp-tools/types.d.ts.map +1 -1
  197. package/dist/src/mcp-tools/types.js +9 -91
  198. package/dist/src/mcp-tools/types.js.map +1 -1
  199. package/dist/src/memory/file-permissions.d.ts +15 -0
  200. package/dist/src/memory/file-permissions.d.ts.map +1 -0
  201. package/dist/src/memory/file-permissions.js +25 -0
  202. package/dist/src/memory/file-permissions.js.map +1 -0
  203. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  204. package/dist/src/memory/memory-bridge.js +94 -34
  205. package/dist/src/memory/memory-bridge.js.map +1 -1
  206. package/dist/src/memory/memory-crud.d.ts.map +1 -1
  207. package/dist/src/memory/memory-crud.js +298 -275
  208. package/dist/src/memory/memory-crud.js.map +1 -1
  209. package/dist/src/memory/memory-initializer.d.ts +2 -4
  210. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  211. package/dist/src/memory/memory-initializer.js +53 -76
  212. package/dist/src/memory/memory-initializer.js.map +1 -1
  213. package/dist/src/memory/memory-migrations.d.ts +1 -14
  214. package/dist/src/memory/memory-migrations.d.ts.map +1 -1
  215. package/dist/src/memory/memory-migrations.js +52 -105
  216. package/dist/src/memory/memory-migrations.js.map +1 -1
  217. package/dist/src/memory/sona-optimizer.d.ts +1 -1
  218. package/dist/src/memory/sona-optimizer.js +1 -1
  219. package/dist/src/monovector/index.d.ts +16 -19
  220. package/dist/src/monovector/index.d.ts.map +1 -1
  221. package/dist/src/monovector/index.js +50 -8
  222. package/dist/src/monovector/index.js.map +1 -1
  223. package/dist/src/orgrt/approvals.d.ts +16 -0
  224. package/dist/src/orgrt/approvals.d.ts.map +1 -0
  225. package/dist/src/orgrt/approvals.js +72 -0
  226. package/dist/src/orgrt/approvals.js.map +1 -0
  227. package/dist/src/orgrt/bus.d.ts.map +1 -1
  228. package/dist/src/orgrt/bus.js +21 -0
  229. package/dist/src/orgrt/bus.js.map +1 -1
  230. package/dist/src/orgrt/checkpoint-ops.d.ts +19 -0
  231. package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -0
  232. package/dist/src/orgrt/checkpoint-ops.js +219 -0
  233. package/dist/src/orgrt/checkpoint-ops.js.map +1 -0
  234. package/dist/src/orgrt/checkpoint.d.ts +33 -1
  235. package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
  236. package/dist/src/orgrt/checkpoint.js +50 -6
  237. package/dist/src/orgrt/checkpoint.js.map +1 -1
  238. package/dist/src/orgrt/cross-org.d.ts +32 -0
  239. package/dist/src/orgrt/cross-org.d.ts.map +1 -0
  240. package/dist/src/orgrt/cross-org.js +256 -0
  241. package/dist/src/orgrt/cross-org.js.map +1 -0
  242. package/dist/src/orgrt/daemon.d.ts +131 -157
  243. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  244. package/dist/src/orgrt/daemon.js +356 -966
  245. package/dist/src/orgrt/daemon.js.map +1 -1
  246. package/dist/src/orgrt/decisions.d.ts +33 -0
  247. package/dist/src/orgrt/decisions.d.ts.map +1 -0
  248. package/dist/src/orgrt/decisions.js +169 -0
  249. package/dist/src/orgrt/decisions.js.map +1 -0
  250. package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
  251. package/dist/src/orgrt/kimicode-runner.js +5 -1
  252. package/dist/src/orgrt/kimicode-runner.js.map +1 -1
  253. package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
  254. package/dist/src/orgrt/opencode-runner.js +10 -2
  255. package/dist/src/orgrt/opencode-runner.js.map +1 -1
  256. package/dist/src/orgrt/org-memory.d.ts +45 -0
  257. package/dist/src/orgrt/org-memory.d.ts.map +1 -0
  258. package/dist/src/orgrt/org-memory.js +220 -0
  259. package/dist/src/orgrt/org-memory.js.map +1 -0
  260. package/dist/src/orgrt/policy.d.ts +4 -0
  261. package/dist/src/orgrt/policy.d.ts.map +1 -1
  262. package/dist/src/orgrt/policy.js +13 -1
  263. package/dist/src/orgrt/policy.js.map +1 -1
  264. package/dist/src/orgrt/prechecks.d.ts +15 -0
  265. package/dist/src/orgrt/prechecks.d.ts.map +1 -0
  266. package/dist/src/orgrt/prechecks.js +21 -0
  267. package/dist/src/orgrt/prechecks.js.map +1 -0
  268. package/dist/src/orgrt/questions.d.ts +39 -0
  269. package/dist/src/orgrt/questions.d.ts.map +1 -0
  270. package/dist/src/orgrt/questions.js +135 -0
  271. package/dist/src/orgrt/questions.js.map +1 -0
  272. package/dist/src/orgrt/remote.d.ts +25 -0
  273. package/dist/src/orgrt/remote.d.ts.map +1 -0
  274. package/dist/src/orgrt/remote.js +73 -0
  275. package/dist/src/orgrt/remote.js.map +1 -0
  276. package/dist/src/orgrt/scheduler-integration.d.ts +19 -0
  277. package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -0
  278. package/dist/src/orgrt/scheduler-integration.js +90 -0
  279. package/dist/src/orgrt/scheduler-integration.js.map +1 -0
  280. package/dist/src/orgrt/server.d.ts.map +1 -1
  281. package/dist/src/orgrt/server.js +70 -2
  282. package/dist/src/orgrt/server.js.map +1 -1
  283. package/dist/src/orgrt/session.d.ts +30 -1
  284. package/dist/src/orgrt/session.d.ts.map +1 -1
  285. package/dist/src/orgrt/session.js +184 -53
  286. package/dist/src/orgrt/session.js.map +1 -1
  287. package/dist/src/orgrt/state-detector.d.ts +19 -0
  288. package/dist/src/orgrt/state-detector.d.ts.map +1 -0
  289. package/dist/src/orgrt/state-detector.js +59 -0
  290. package/dist/src/orgrt/state-detector.js.map +1 -0
  291. package/dist/src/orgrt/task-dag.d.ts +27 -0
  292. package/dist/src/orgrt/task-dag.d.ts.map +1 -0
  293. package/dist/src/orgrt/task-dag.js +100 -0
  294. package/dist/src/orgrt/task-dag.js.map +1 -0
  295. package/dist/src/orgrt/tool-fence.d.ts +7 -4
  296. package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
  297. package/dist/src/orgrt/tool-fence.js +47 -6
  298. package/dist/src/orgrt/tool-fence.js.map +1 -1
  299. package/dist/src/orgrt/types.d.ts +57 -2
  300. package/dist/src/orgrt/types.d.ts.map +1 -1
  301. package/dist/src/orgrt/types.js +34 -3
  302. package/dist/src/orgrt/types.js.map +1 -1
  303. package/dist/src/routing/model-download.d.ts +49 -0
  304. package/dist/src/routing/model-download.d.ts.map +1 -0
  305. package/dist/src/routing/model-download.js +106 -0
  306. package/dist/src/routing/model-download.js.map +1 -0
  307. package/dist/src/services/crash-reporter.d.ts +5 -0
  308. package/dist/src/services/crash-reporter.d.ts.map +1 -1
  309. package/dist/src/services/crash-reporter.js +49 -0
  310. package/dist/src/services/crash-reporter.js.map +1 -1
  311. package/dist/src/transfer/anonymization/index.d.ts +18 -15
  312. package/dist/src/transfer/anonymization/index.d.ts.map +1 -1
  313. package/dist/src/transfer/anonymization/index.js +7 -119
  314. package/dist/src/transfer/anonymization/index.js.map +1 -1
  315. package/dist/src/ui/dashboard.html +606 -7
  316. package/dist/src/ui/orgs.html +7 -1
  317. package/dist/src/ui/routes-monograph.mjs +6 -0
  318. package/dist/src/ui/server.mjs +327 -7
  319. package/dist/src/update/checker.d.ts.map +1 -1
  320. package/dist/src/update/checker.js +2 -1
  321. package/dist/src/update/checker.js.map +1 -1
  322. package/dist/src/update/executor.d.ts.map +1 -1
  323. package/dist/src/update/executor.js +7 -3
  324. package/dist/src/update/executor.js.map +1 -1
  325. package/dist/src/update/index.d.ts +0 -1
  326. package/dist/src/update/index.d.ts.map +1 -1
  327. package/dist/src/update/index.js +5 -24
  328. package/dist/src/update/index.js.map +1 -1
  329. package/dist/src/utils/db-mutex.d.ts +11 -0
  330. package/dist/src/utils/db-mutex.d.ts.map +1 -0
  331. package/dist/src/utils/db-mutex.js +23 -0
  332. package/dist/src/utils/db-mutex.js.map +1 -0
  333. package/dist/src/utils/input-guards.d.ts +23 -0
  334. package/dist/src/utils/input-guards.d.ts.map +1 -1
  335. package/dist/src/utils/input-guards.js +72 -0
  336. package/dist/src/utils/input-guards.js.map +1 -1
  337. package/dist/src/utils/npm-command.d.ts +10 -0
  338. package/dist/src/utils/npm-command.d.ts.map +1 -0
  339. package/dist/src/utils/npm-command.js +12 -0
  340. package/dist/src/utils/npm-command.js.map +1 -0
  341. package/dist/src/utils/paths.d.ts +28 -0
  342. package/dist/src/utils/paths.d.ts.map +1 -0
  343. package/dist/src/utils/paths.js +108 -0
  344. package/dist/src/utils/paths.js.map +1 -0
  345. package/dist/tsconfig.tsbuildinfo +1 -1
  346. package/package.json +17 -17
  347. package/scripts/download-embedding-model.mjs +97 -0
  348. package/scripts/publish.sh +0 -0
  349. package/scripts/sync-claude-assets.sh +0 -0
  350. package/dist/src/production/circuit-breaker.d.ts +0 -121
  351. package/dist/src/production/circuit-breaker.d.ts.map +0 -1
  352. package/dist/src/production/circuit-breaker.js +0 -262
  353. package/dist/src/production/circuit-breaker.js.map +0 -1
  354. package/dist/src/production/error-handler.d.ts +0 -119
  355. package/dist/src/production/error-handler.d.ts.map +0 -1
  356. package/dist/src/production/error-handler.js +0 -324
  357. package/dist/src/production/error-handler.js.map +0 -1
  358. package/dist/src/production/index.d.ts +0 -6
  359. package/dist/src/production/index.d.ts.map +0 -1
  360. package/dist/src/production/index.js +0 -6
  361. package/dist/src/production/index.js.map +0 -1
  362. package/dist/src/production/monitoring.d.ts +0 -181
  363. package/dist/src/production/monitoring.d.ts.map +0 -1
  364. package/dist/src/production/monitoring.js +0 -375
  365. package/dist/src/production/monitoring.js.map +0 -1
  366. package/dist/src/production/rate-limiter.d.ts +0 -125
  367. package/dist/src/production/rate-limiter.d.ts.map +0 -1
  368. package/dist/src/production/rate-limiter.js +0 -218
  369. package/dist/src/production/rate-limiter.js.map +0 -1
  370. package/dist/src/production/retry.d.ts +0 -48
  371. package/dist/src/production/retry.d.ts.map +0 -1
  372. package/dist/src/production/retry.js +0 -189
  373. package/dist/src/production/retry.js.map +0 -1
  374. package/dist/src/transfer/types.d.ts +0 -245
  375. package/dist/src/transfer/types.d.ts.map +0 -1
  376. package/dist/src/transfer/types.js +0 -6
  377. package/dist/src/transfer/types.js.map +0 -1
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Opencode artifact writers.
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ import { generateOpencodeJson, generateAgentsMd, generateHooksPlugin, generateStatusCommand, convertAgentMd, convertCommandMd, convertSkillMd, opencodeCommandFilename } from './opencode-generator.js';
7
+ import { atomicWriteFile, walkMdFiles, isLikelyUserFile, extractFmName, } from './shared.js';
8
+ /**
9
+ * Write opencode artifacts. ADDITIVE — only invoked when
10
+ * `components.opencode` is set. Never touches .claude/ or .gemini/.
11
+ *
12
+ * Tier 1: opencode.json (MCP server + permissions + instructions).
13
+ * Tier 2 (added next): AGENTS.md + .opencode/{agent,command,skills}/ converted
14
+ * from the Claude tree.
15
+ */
16
+ export async function writeOpencodeFiles(targetDir, options, result) {
17
+ // opencode.json — write only if absent (or --force). Never clobber a user's
18
+ // hand-written config; mirror writeGeminiFiles' skip-if-exists policy.
19
+ const opencodeJsonPath = path.join(targetDir, 'opencode.json');
20
+ if (!fs.existsSync(opencodeJsonPath) || options.force) {
21
+ atomicWriteFile(opencodeJsonPath, generateOpencodeJson(options));
22
+ result.created.files.push('opencode.json');
23
+ }
24
+ else {
25
+ result.skipped.push('opencode.json');
26
+ }
27
+ // AGENTS.md — opencode's instructions file (CLAUDE.md equivalent).
28
+ const agentsMdPath = path.join(targetDir, 'AGENTS.md');
29
+ if (!fs.existsSync(agentsMdPath) || options.force) {
30
+ atomicWriteFile(agentsMdPath, generateAgentsMd());
31
+ result.created.files.push('AGENTS.md');
32
+ }
33
+ else {
34
+ result.skipped.push('AGENTS.md');
35
+ }
36
+ // Hook-shim plugin (Tier 3) — bridges monomind's gate handlers into
37
+ // opencode's tool.execute.before. .opencode/plugins/ (plural) per opencode docs.
38
+ const pluginDir = path.join(targetDir, '.opencode', 'plugins');
39
+ const pluginPath = path.join(pluginDir, 'monomind-hooks.ts');
40
+ if (!fs.existsSync(pluginPath) || options.force) {
41
+ fs.mkdirSync(pluginDir, { recursive: true });
42
+ atomicWriteFile(pluginPath, generateHooksPlugin());
43
+ result.created.files.push('.opencode/plugins/monomind-hooks.ts');
44
+ }
45
+ else {
46
+ result.skipped.push('.opencode/plugins/monomind-hooks.ts');
47
+ }
48
+ // /monomind-status command — the opencode equivalent of the Claude Code
49
+ // statusline (opencode has no custom statusbar UI). Runs statusline.cjs
50
+ // unchanged and reports a formatted summary.
51
+ const statusCmdPath = path.join(targetDir, '.opencode', 'command', 'monomind-status.md');
52
+ if (!fs.existsSync(statusCmdPath) || options.force) {
53
+ fs.mkdirSync(path.dirname(statusCmdPath), { recursive: true });
54
+ atomicWriteFile(statusCmdPath, generateStatusCommand());
55
+ result.created.files.push('.opencode/command/monomind-status.md');
56
+ }
57
+ else {
58
+ result.skipped.push('.opencode/command/monomind-status.md');
59
+ }
60
+ // Convert the .claude/{agents,commands,skills} tree that copyAgents/Skills/
61
+ // Commands just wrote into opencode shape. Reading from the target .claude/
62
+ // dir (not the package source) means only the user's selected subset is
63
+ // converted, and we never re-implement the MAP filtering logic.
64
+ const claudeDir = path.join(targetDir, '.claude');
65
+ let agentCount = 0, commandCount = 0, skillCount = 0;
66
+ const seenAgents = new Set();
67
+ // Agents → .opencode/agent/<name>.md (flattened, deduped by name)
68
+ const srcAgents = path.join(claudeDir, 'agents');
69
+ if (fs.existsSync(srcAgents)) {
70
+ const destAgents = path.join(targetDir, '.opencode', 'agent');
71
+ for (const rel of walkMdFiles(srcAgents)) {
72
+ const abs = path.join(srcAgents, rel);
73
+ if (!isLikelyUserFile(rel))
74
+ continue; // skip READMEs etc.
75
+ const src = fs.readFileSync(abs, 'utf-8');
76
+ const fallback = path.basename(rel, '.md');
77
+ const converted = convertAgentMd(src, fallback);
78
+ const name = extractFmName(converted) || fallback;
79
+ if (seenAgents.has(name))
80
+ continue;
81
+ seenAgents.add(name);
82
+ fs.mkdirSync(destAgents, { recursive: true });
83
+ atomicWriteFile(path.join(destAgents, `${name}.md`), converted);
84
+ agentCount++;
85
+ }
86
+ }
87
+ // Commands → .opencode/command/<category>-<name>.md (namespace preserved)
88
+ const srcCommands = path.join(claudeDir, 'commands');
89
+ if (fs.existsSync(srcCommands)) {
90
+ const destCommands = path.join(targetDir, '.opencode', 'command');
91
+ for (const rel of walkMdFiles(srcCommands)) {
92
+ const abs = path.join(srcCommands, rel);
93
+ if (!isLikelyUserFile(rel))
94
+ continue;
95
+ const segs = rel.split(path.sep);
96
+ const category = segs.length > 1 ? segs[0] : 'monomind';
97
+ const fileBase = path.basename(rel, '.md');
98
+ const src = fs.readFileSync(abs, 'utf-8');
99
+ const converted = convertCommandMd(src, category, fileBase);
100
+ fs.mkdirSync(destCommands, { recursive: true });
101
+ atomicWriteFile(path.join(destCommands, opencodeCommandFilename(category, fileBase)), converted);
102
+ commandCount++;
103
+ }
104
+ }
105
+ // Skills → .opencode/skills/<name>/SKILL.md (same shape)
106
+ const srcSkills = path.join(claudeDir, 'skills');
107
+ if (fs.existsSync(srcSkills)) {
108
+ for (const rel of walkMdFiles(srcSkills)) {
109
+ // rel looks like "<skillName>/SKILL.md"
110
+ const segs = rel.split(path.sep);
111
+ if (segs.length < 2 || segs[segs.length - 1] !== 'SKILL.md')
112
+ continue;
113
+ const skillName = segs[0];
114
+ const abs = path.join(srcSkills, rel);
115
+ const src = fs.readFileSync(abs, 'utf-8');
116
+ const converted = convertSkillMd(src, skillName);
117
+ const destDir = path.join(targetDir, '.opencode', 'skills', skillName);
118
+ fs.mkdirSync(destDir, { recursive: true });
119
+ atomicWriteFile(path.join(destDir, 'SKILL.md'), converted);
120
+ skillCount++;
121
+ }
122
+ }
123
+ if (agentCount)
124
+ result.created.files.push(`.opencode/agent/ (${agentCount} agents)`);
125
+ if (commandCount)
126
+ result.created.files.push(`.opencode/command/ (${commandCount} commands)`);
127
+ if (skillCount)
128
+ result.created.files.push(`.opencode/skills/ (${skillCount} skills)`);
129
+ }
130
+ //# sourceMappingURL=write-opencode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-opencode.js","sourceRoot":"","sources":["../../../src/init/write-opencode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Runtime configuration writers: .monomind/config.yaml, initial metrics files.
3
+ */
4
+ import type { InitOptions, InitResult } from './types.js';
5
+ /**
6
+ * Write runtime configuration (.monomind/)
7
+ */
8
+ export declare function writeRuntimeConfig(targetDir: string, options: InitOptions, result: InitResult): Promise<void>;
9
+ /**
10
+ * Write initial metrics files for statusline
11
+ * Creates baseline data so statusline shows meaningful state instead of all zeros
12
+ */
13
+ export declare function writeInitialMetrics(targetDir: string, options: InitOptions, result: InitResult): Promise<void>;
14
+ //# sourceMappingURL=write-runtime-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-runtime-config.d.ts","sourceRoot":"","sources":["../../../src/init/write-runtime-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI1D;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC,CAuGf;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC,CA0Gf"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Runtime configuration writers: .monomind/config.yaml, initial metrics files.
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ import { atomicWriteFile, MAX_EXEC_FILE_BYTES } from './shared.js';
7
+ import { writeCapabilitiesDoc } from './write-capabilities.js';
8
+ /**
9
+ * Write runtime configuration (.monomind/)
10
+ */
11
+ export async function writeRuntimeConfig(targetDir, options, result) {
12
+ const configPath = path.join(targetDir, '.monomind', 'config.yaml');
13
+ if (fs.existsSync(configPath) && !options.force) {
14
+ result.skipped.push('.monomind/config.yaml');
15
+ return;
16
+ }
17
+ const config = `# Monomind Runtime Configuration
18
+ # Generated: ${new Date().toISOString()}
19
+
20
+ version: "3.0.0"
21
+
22
+ swarm:
23
+ topology: ${options.runtime.topology}
24
+ maxAgents: ${options.runtime.maxAgents}
25
+ autoScale: true
26
+ coordinationStrategy: consensus
27
+
28
+ memory:
29
+ backend: ${options.runtime.memoryBackend}
30
+ enableHNSW: ${options.runtime.enableHNSW}
31
+ persistPath: .monomind/data
32
+ cacheSize: 100
33
+ # ADR-049: Self-Learning Memory
34
+ learningBridge:
35
+ enabled: ${options.runtime.enableLearningBridge ?? options.runtime.enableNeural}
36
+ confidenceDecayRate: 0.005
37
+ accessBoostAmount: 0.03
38
+ consolidationThreshold: 10
39
+ agentScopes:
40
+ enabled: ${options.runtime.enableAgentScopes ?? true}
41
+ defaultScope: project
42
+
43
+ neural:
44
+ enabled: ${options.runtime.enableNeural}
45
+ modelPath: .monomind/neural
46
+
47
+ hooks:
48
+ enabled: true
49
+ autoExecute: true
50
+
51
+ mcp:
52
+ autoStart: ${options.mcp.autoStart}
53
+ port: ${options.mcp.port}
54
+ `;
55
+ atomicWriteFile(configPath, config);
56
+ result.created.files.push('.monomind/config.yaml');
57
+ // Write .monomind/.gitignore — commit config/knowledge/metrics, exclude sensitive data
58
+ const gitignorePath = path.join(targetDir, '.monomind', '.gitignore');
59
+ const gitignore = `# Monomind — exclude files that may contain secrets or sensitive prompt data
60
+ # Sessions contain conversation history (prompts, code snippets, user data)
61
+ sessions/
62
+ # Security scan results may expose vulnerability details
63
+ security/
64
+ # Temporary and machine-specific files
65
+ *.tmp
66
+ *.log
67
+ daemon.pid
68
+ # Never commit credentials or keys
69
+ *.key
70
+ *.token
71
+ *.secret
72
+ .env
73
+ `;
74
+ if (!fs.existsSync(gitignorePath) || options.force) {
75
+ atomicWriteFile(gitignorePath, gitignore);
76
+ result.created.files.push('.monomind/.gitignore');
77
+ }
78
+ // Ensure the project-level .gitignore does NOT blanket-ignore .monomind/
79
+ // A blanket ignore prevents config, metrics, and knowledge graph from being committed.
80
+ // We remove any bare `.monomind/` or `**/.monomind/` lines and add specific excludes instead.
81
+ const projectGitignorePath = path.join(targetDir, '.gitignore');
82
+ if (fs.existsSync(projectGitignorePath) && fs.statSync(projectGitignorePath).size <= MAX_EXEC_FILE_BYTES) {
83
+ const existing = fs.readFileSync(projectGitignorePath, 'utf-8');
84
+ const blanketPattern = /^(\*\*\/)?\.monomind\/?\s*$/gm;
85
+ if (blanketPattern.test(existing)) {
86
+ const fixed = existing
87
+ .split('\n')
88
+ .filter(line => !/^(\*\*\/)?\.monomind\/?\s*$/.test(line))
89
+ .join('\n');
90
+ const specificExcludes = [
91
+ '# monomind runtime — exclude sensitive and machine-specific data',
92
+ '.monomind/sessions/',
93
+ '.monomind/security/',
94
+ '.monomind/*.tmp',
95
+ '.monomind/*.log',
96
+ '.monomind/daemon.pid',
97
+ '.monomind/*.db',
98
+ '.monomind/*.db-wal',
99
+ '.monomind/*.db-shm',
100
+ ].join('\n');
101
+ atomicWriteFile(projectGitignorePath, fixed.trimEnd() + '\n' + specificExcludes + '\n');
102
+ result.updated.push('.gitignore (replaced blanket .monomind/ ignore with specific excludes)');
103
+ }
104
+ }
105
+ // Write CAPABILITIES.md with full system overview
106
+ await writeCapabilitiesDoc(targetDir, options, result);
107
+ }
108
+ /**
109
+ * Write initial metrics files for statusline
110
+ * Creates baseline data so statusline shows meaningful state instead of all zeros
111
+ */
112
+ export async function writeInitialMetrics(targetDir, options, result) {
113
+ const metricsDir = path.join(targetDir, '.monomind', 'metrics');
114
+ const learningDir = path.join(targetDir, '.monomind', 'learning');
115
+ const securityDir = path.join(targetDir, '.monomind', 'security');
116
+ // Ensure directories exist
117
+ for (const dir of [metricsDir, learningDir, securityDir]) {
118
+ if (!fs.existsSync(dir)) {
119
+ fs.mkdirSync(dir, { recursive: true });
120
+ }
121
+ }
122
+ // Create initial v1-progress.json
123
+ const progressPath = path.join(metricsDir, 'v1-progress.json');
124
+ if (!fs.existsSync(progressPath) || options.force) {
125
+ const progress = {
126
+ version: '3.0.0',
127
+ initialized: new Date().toISOString(),
128
+ domains: {
129
+ completed: 0,
130
+ total: 5,
131
+ status: 'INITIALIZING'
132
+ },
133
+ ddd: {
134
+ progress: 0,
135
+ modules: 0,
136
+ totalFiles: 0,
137
+ totalLines: 0
138
+ },
139
+ swarm: {
140
+ activeAgents: 0,
141
+ maxAgents: options.runtime.maxAgents,
142
+ topology: options.runtime.topology
143
+ },
144
+ learning: {
145
+ status: 'READY',
146
+ patternsLearned: 0,
147
+ sessionsCompleted: 0
148
+ },
149
+ _note: 'Metrics will update as you use Monomind (workers refresh at session start).'
150
+ };
151
+ atomicWriteFile(progressPath, JSON.stringify(progress, null, 2));
152
+ result.created.files.push('.monomind/metrics/v1-progress.json');
153
+ }
154
+ // Create initial swarm-activity.json
155
+ const activityPath = path.join(metricsDir, 'swarm-activity.json');
156
+ if (!fs.existsSync(activityPath) || options.force) {
157
+ const activity = {
158
+ timestamp: new Date().toISOString(),
159
+ processes: {
160
+ mcp_server: 0,
161
+ estimated_agents: 0
162
+ },
163
+ swarm: {
164
+ active: false,
165
+ agent_count: 0,
166
+ coordination_active: false
167
+ },
168
+ integration: {
169
+ mcp_active: false
170
+ },
171
+ _initialized: true
172
+ };
173
+ atomicWriteFile(activityPath, JSON.stringify(activity, null, 2));
174
+ result.created.files.push('.monomind/metrics/swarm-activity.json');
175
+ }
176
+ // Create initial learning.json
177
+ const learningPath = path.join(metricsDir, 'learning.json');
178
+ if (!fs.existsSync(learningPath) || options.force) {
179
+ const learning = {
180
+ initialized: new Date().toISOString(),
181
+ routing: {
182
+ accuracy: 0,
183
+ decisions: 0
184
+ },
185
+ patterns: {
186
+ shortTerm: 0,
187
+ longTerm: 0,
188
+ quality: 0
189
+ },
190
+ sessions: {
191
+ total: 0,
192
+ current: null
193
+ },
194
+ _note: 'Intelligence grows as you use Monomind'
195
+ };
196
+ atomicWriteFile(learningPath, JSON.stringify(learning, null, 2));
197
+ result.created.files.push('.monomind/metrics/learning.json');
198
+ }
199
+ // Create initial audit-status.json
200
+ const auditPath = path.join(securityDir, 'audit-status.json');
201
+ if (!fs.existsSync(auditPath) || options.force) {
202
+ const audit = {
203
+ initialized: new Date().toISOString(),
204
+ status: 'PENDING',
205
+ cvesFixed: 0,
206
+ totalCves: 3,
207
+ lastScan: null,
208
+ _note: 'Run: npx monomind@latest security scan'
209
+ };
210
+ atomicWriteFile(auditPath, JSON.stringify(audit, null, 2));
211
+ result.created.files.push('.monomind/security/audit-status.json');
212
+ }
213
+ }
214
+ //# sourceMappingURL=write-runtime-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-runtime-config.js","sourceRoot":"","sources":["../../../src/init/write-runtime-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Write `.monomind/orgs/sample-team.json` if it does not already exist.
3
+ *
4
+ * @param targetDir project root init is running against
5
+ * @returns true if the file was written, false if it already existed
6
+ * (so the caller can record skipped vs. updated in the InitResult)
7
+ */
8
+ export declare function writeSampleOrg(targetDir: string): boolean;
9
+ //# sourceMappingURL=write-sample-org.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-sample-org.d.ts","sourceRoot":"","sources":["../../../src/init/write-sample-org.ts"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAYzD"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * C5 — Emit a runnable sample org on `monomind init`.
3
+ *
4
+ * The README has always told users to "see `.monomind/orgs/sample-team.json`
5
+ * in a fresh `monomind init`" — but no such file was ever written, and the
6
+ * real templates (`content-team` / `dev-team` / `research-pod`) lived behind
7
+ * `org create --template`, which the README never mentioned.
8
+ *
9
+ * This module bridges that gap. It derives the sample from the existing
10
+ * schema-validated `content-team` template, so the user gets a file that
11
+ * runs immediately: `monomind org run sample-team`.
12
+ *
13
+ * Re-running init does NOT overwrite the user's edits — if the file already
14
+ * exists we leave it alone (matches the convention used for CAPABILITIES.md
15
+ * and other generated docs).
16
+ */
17
+ import fs from 'node:fs';
18
+ import path from 'node:path';
19
+ import { buildFromTemplate } from '../orgrt/templates.js';
20
+ /**
21
+ * Write `.monomind/orgs/sample-team.json` if it does not already exist.
22
+ *
23
+ * @param targetDir project root init is running against
24
+ * @returns true if the file was written, false if it already existed
25
+ * (so the caller can record skipped vs. updated in the InitResult)
26
+ */
27
+ export function writeSampleOrg(targetDir) {
28
+ const orgsDir = path.join(targetDir, '.monomind', 'orgs');
29
+ const samplePath = path.join(orgsDir, 'sample-team.json');
30
+ if (fs.existsSync(samplePath))
31
+ return false;
32
+ const org = buildFromTemplate('content-team', 'sample-team');
33
+ if (!org)
34
+ return false;
35
+ fs.mkdirSync(orgsDir, { recursive: true });
36
+ fs.writeFileSync(samplePath, JSON.stringify(org, null, 2) + '\n', 'utf-8');
37
+ return true;
38
+ }
39
+ //# sourceMappingURL=write-sample-org.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-sample-org.js","sourceRoot":"","sources":["../../../src/init/write-sample-org.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAE1D,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,GAAG,GAAG,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC7D,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC;AACd,CAAC"}