monomind 1.11.13 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/.claude/agents/generated/channel-intelligence-director.md +87 -0
  2. package/.claude/agents/generated/chief-growth-officer.md +88 -0
  3. package/.claude/agents/generated/content-seo-strategist.md +90 -0
  4. package/.claude/agents/generated/developer-community-strategist.md +91 -0
  5. package/.claude/agents/generated/outreach-partnership-strategist.md +90 -0
  6. package/.claude/agents/generated/social-media-strategist.md +91 -0
  7. package/.claude/agents/generated/video-visual-strategist.md +90 -0
  8. package/.claude/commands/mastermind/idea.md +1 -1
  9. package/.claude/helpers/auto-memory-hook.mjs +13 -4
  10. package/.claude/helpers/control-start.cjs +5 -0
  11. package/.claude/helpers/event-logger.cjs +114 -0
  12. package/.claude/helpers/handlers/adr-draft-handler.cjs +19 -5
  13. package/.claude/helpers/handlers/agent-start-handler.cjs +13 -4
  14. package/.claude/helpers/handlers/compact-handler.cjs +2 -0
  15. package/.claude/helpers/handlers/edit-handler.cjs +1 -1
  16. package/.claude/helpers/handlers/gates-handler.cjs +3 -0
  17. package/.claude/helpers/handlers/graph-status-handler.cjs +14 -8
  18. package/.claude/helpers/handlers/loops-status-handler.cjs +5 -2
  19. package/.claude/helpers/handlers/route-handler.cjs +13 -6
  20. package/.claude/helpers/handlers/session-handler.cjs +11 -4
  21. package/.claude/helpers/handlers/session-restore-handler.cjs +21 -11
  22. package/.claude/helpers/handlers/task-handler.cjs +13 -5
  23. package/.claude/helpers/intelligence.cjs +7 -2
  24. package/.claude/helpers/loop-tracker.cjs +15 -3
  25. package/.claude/helpers/memory.cjs +6 -1
  26. package/.claude/helpers/router.cjs +5 -2
  27. package/.claude/helpers/session.cjs +2 -0
  28. package/.claude/helpers/statusline.cjs +10 -2
  29. package/.claude/helpers/utils/micro-agents.cjs +20 -4
  30. package/.claude/scheduled_tasks.lock +1 -1
  31. package/.claude/settings.json +92 -1
  32. package/.claude/skills/mastermind/_protocol.md +23 -13
  33. package/.claude/skills/mastermind/architect.md +6 -9
  34. package/.claude/skills/mastermind/build.md +3 -3
  35. package/.claude/skills/mastermind/content.md +3 -3
  36. package/.claude/skills/mastermind/createorg.md +2 -2
  37. package/.claude/skills/mastermind/finance.md +3 -3
  38. package/.claude/skills/mastermind/idea.md +5 -3
  39. package/.claude/skills/mastermind/marketing.md +3 -3
  40. package/.claude/skills/mastermind/monitor.md +2 -2
  41. package/.claude/skills/mastermind/release.md +3 -3
  42. package/.claude/skills/mastermind/research.md +3 -3
  43. package/.claude/skills/mastermind/review.md +3 -3
  44. package/.claude/skills/mastermind/runorg.md +153 -86
  45. package/.claude/skills/mastermind/sales.md +3 -3
  46. package/README.md +286 -129
  47. package/package.json +19 -2
  48. package/packages/@monomind/cli/README.md +286 -129
  49. package/packages/@monomind/cli/bundled-graph/dist/src/build.js +73 -0
  50. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.js +120 -0
  51. package/packages/@monomind/cli/bundled-graph/package.json +57 -0
  52. package/packages/@monomind/cli/dist/src/agents/halt-signal.d.ts +25 -0
  53. package/packages/@monomind/cli/dist/src/agents/halt-signal.js +76 -0
  54. package/packages/@monomind/cli/dist/src/agents/index.d.ts +18 -0
  55. package/packages/@monomind/cli/dist/src/agents/index.js +13 -0
  56. package/packages/@monomind/cli/dist/src/agents/managed-agent.d.ts +41 -0
  57. package/packages/@monomind/cli/dist/src/agents/managed-agent.js +69 -0
  58. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +23 -0
  59. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +49 -0
  60. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +22 -0
  61. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +80 -0
  62. package/packages/@monomind/cli/dist/src/agents/registry-builder.js +2 -0
  63. package/packages/@monomind/cli/dist/src/agents/registry-query.d.ts +71 -0
  64. package/packages/@monomind/cli/dist/src/agents/registry-query.js +125 -0
  65. package/packages/@monomind/cli/dist/src/agents/score-decay.d.ts +19 -0
  66. package/packages/@monomind/cli/dist/src/agents/score-decay.js +22 -0
  67. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.d.ts +13 -0
  68. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.js +40 -0
  69. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.d.ts +54 -0
  70. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +212 -0
  71. package/packages/@monomind/cli/dist/src/agents/termination-watcher.d.ts +30 -0
  72. package/packages/@monomind/cli/dist/src/agents/termination-watcher.js +84 -0
  73. package/packages/@monomind/cli/dist/src/agents/trigger-index.d.ts +20 -0
  74. package/packages/@monomind/cli/dist/src/agents/trigger-index.js +38 -0
  75. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +64 -0
  76. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +308 -0
  77. package/packages/@monomind/cli/dist/src/agents/version-diff.d.ts +18 -0
  78. package/packages/@monomind/cli/dist/src/agents/version-diff.js +64 -0
  79. package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +60 -0
  80. package/packages/@monomind/cli/dist/src/agents/version-store.js +235 -0
  81. package/packages/@monomind/cli/dist/src/autopilot-state.js +10 -5
  82. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +13 -0
  83. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.js +20 -9
  84. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.d.ts +45 -0
  85. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.js +404 -0
  86. package/packages/@monomind/cli/dist/src/browser/actions.js +10 -3
  87. package/packages/@monomind/cli/dist/src/browser/browser.js +12 -2
  88. package/packages/@monomind/cli/dist/src/browser/cdp.js +21 -3
  89. package/packages/@monomind/cli/dist/src/browser/har.js +27 -5
  90. package/packages/@monomind/cli/dist/src/commands/agent-wasm.d.ts +14 -0
  91. package/packages/@monomind/cli/dist/src/commands/agent-wasm.js +333 -0
  92. package/packages/@monomind/cli/dist/src/commands/agent.js +11 -8
  93. package/packages/@monomind/cli/dist/src/commands/analyze.js +36 -21
  94. package/packages/@monomind/cli/dist/src/commands/autopilot.js +12 -4
  95. package/packages/@monomind/cli/dist/src/commands/benchmark.js +51 -8
  96. package/packages/@monomind/cli/dist/src/commands/browse.js +5 -2
  97. package/packages/@monomind/cli/dist/src/commands/claims.js +29 -11
  98. package/packages/@monomind/cli/dist/src/commands/cleanup.js +25 -5
  99. package/packages/@monomind/cli/dist/src/commands/config.js +15 -7
  100. package/packages/@monomind/cli/dist/src/commands/daemon.js +6 -0
  101. package/packages/@monomind/cli/dist/src/commands/deployment.js +34 -19
  102. package/packages/@monomind/cli/dist/src/commands/doctor.js +151 -20
  103. package/packages/@monomind/cli/dist/src/commands/guidance.js +15 -2
  104. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +37 -14
  105. package/packages/@monomind/cli/dist/src/commands/hooks.js +42 -25
  106. package/packages/@monomind/cli/dist/src/commands/init.js +9 -4
  107. package/packages/@monomind/cli/dist/src/commands/issues.js +29 -26
  108. package/packages/@monomind/cli/dist/src/commands/mcp.js +11 -5
  109. package/packages/@monomind/cli/dist/src/commands/memory.js +10 -0
  110. package/packages/@monomind/cli/dist/src/commands/migrate.js +5 -5
  111. package/packages/@monomind/cli/dist/src/commands/monograph.js +18 -5
  112. package/packages/@monomind/cli/dist/src/commands/monovector/backup.js +8 -2
  113. package/packages/@monomind/cli/dist/src/commands/monovector/benchmark.js +20 -7
  114. package/packages/@monomind/cli/dist/src/commands/monovector/import.js +15 -0
  115. package/packages/@monomind/cli/dist/src/commands/monovector/migrate.js +4 -1
  116. package/packages/@monomind/cli/dist/src/commands/monovector/optimize.js +11 -0
  117. package/packages/@monomind/cli/dist/src/commands/monovector/setup.js +11 -1
  118. package/packages/@monomind/cli/dist/src/commands/neural.js +1 -1
  119. package/packages/@monomind/cli/dist/src/commands/performance.js +20 -7
  120. package/packages/@monomind/cli/dist/src/commands/platforms.js +90 -8
  121. package/packages/@monomind/cli/dist/src/commands/plugins.js +12 -5
  122. package/packages/@monomind/cli/dist/src/commands/process.js +33 -10
  123. package/packages/@monomind/cli/dist/src/commands/progress.js +5 -3
  124. package/packages/@monomind/cli/dist/src/commands/providers.js +5 -5
  125. package/packages/@monomind/cli/dist/src/commands/replay.js +8 -2
  126. package/packages/@monomind/cli/dist/src/commands/route.js +27 -7
  127. package/packages/@monomind/cli/dist/src/commands/security.js +4 -0
  128. package/packages/@monomind/cli/dist/src/commands/session.js +12 -1
  129. package/packages/@monomind/cli/dist/src/commands/start.js +11 -4
  130. package/packages/@monomind/cli/dist/src/commands/status.js +7 -4
  131. package/packages/@monomind/cli/dist/src/commands/swarm.js +27 -13
  132. package/packages/@monomind/cli/dist/src/commands/task.js +26 -11
  133. package/packages/@monomind/cli/dist/src/commands/tokens.js +7 -2
  134. package/packages/@monomind/cli/dist/src/commands/transfer-store.js +36 -22
  135. package/packages/@monomind/cli/dist/src/commands/ui.js +68 -0
  136. package/packages/@monomind/cli/dist/src/commands/update.js +15 -3
  137. package/packages/@monomind/cli/dist/src/commands/workflow.js +39 -6
  138. package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +18 -7
  139. package/packages/@monomind/cli/dist/src/consensus/index.d.ts +7 -0
  140. package/packages/@monomind/cli/dist/src/consensus/index.js +6 -0
  141. package/packages/@monomind/cli/dist/src/consensus/vote-signer.js +25 -8
  142. package/packages/@monomind/cli/dist/src/context/context-provider.d.ts +44 -0
  143. package/packages/@monomind/cli/dist/src/context/context-provider.js +25 -0
  144. package/packages/@monomind/cli/dist/src/context/git-state-provider.d.ts +12 -0
  145. package/packages/@monomind/cli/dist/src/context/git-state-provider.js +34 -0
  146. package/packages/@monomind/cli/dist/src/context/index.d.ts +12 -0
  147. package/packages/@monomind/cli/dist/src/context/index.js +12 -0
  148. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.d.ts +15 -0
  149. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.js +19 -0
  150. package/packages/@monomind/cli/dist/src/context/prompt-assembler.d.ts +26 -0
  151. package/packages/@monomind/cli/dist/src/context/prompt-assembler.js +93 -0
  152. package/packages/@monomind/cli/dist/src/context/task-history-provider.d.ts +24 -0
  153. package/packages/@monomind/cli/dist/src/context/task-history-provider.js +32 -0
  154. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.d.ts +14 -0
  155. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.js +27 -0
  156. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +31 -0
  157. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +81 -0
  158. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.d.ts +24 -0
  159. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +65 -0
  160. package/packages/@monomind/cli/dist/src/dlq/index.d.ts +10 -0
  161. package/packages/@monomind/cli/dist/src/dlq/index.js +7 -0
  162. package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +33 -0
  163. package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +107 -0
  164. package/packages/@monomind/cli/dist/src/eval/dataset-runner.d.ts +23 -0
  165. package/packages/@monomind/cli/dist/src/eval/dataset-runner.js +59 -0
  166. package/packages/@monomind/cli/dist/src/eval/index.d.ts +10 -0
  167. package/packages/@monomind/cli/dist/src/eval/index.js +7 -0
  168. package/packages/@monomind/cli/dist/src/eval/trace-collector.d.ts +40 -0
  169. package/packages/@monomind/cli/dist/src/eval/trace-collector.js +102 -0
  170. package/packages/@monomind/cli/dist/src/index.js +7 -3
  171. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  172. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.js +264 -0
  173. package/packages/@monomind/cli/dist/src/init/executor.js +14 -11
  174. package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.js +20 -4
  175. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +33 -12
  176. package/packages/@monomind/cli/dist/src/interactive/interrupt.d.ts +22 -0
  177. package/packages/@monomind/cli/dist/src/interactive/interrupt.js +71 -0
  178. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.d.ts +25 -0
  179. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.js +48 -0
  180. package/packages/@monomind/cli/dist/src/mcp/tool-registry.d.ts +61 -0
  181. package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +246 -0
  182. package/packages/@monomind/cli/dist/src/mcp-tools/a2a-tools.js +98 -13
  183. package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +16 -3
  184. package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.js +80 -17
  185. package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.js +84 -22
  186. package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.js +35 -7
  187. package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.js +82 -17
  188. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.js +37 -4
  189. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.js +49 -7
  190. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +45 -18
  191. package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.js +75 -25
  192. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +32 -10
  193. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +91 -20
  194. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +188 -29
  195. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +25 -7
  196. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-compat.js +11 -2
  197. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +148 -26
  198. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +44 -9
  199. package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.js +45 -10
  200. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +7 -4
  201. package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.js +15 -1
  202. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.js +61 -9
  203. package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.js +45 -14
  204. package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.js +15 -3
  205. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.js +14 -7
  206. package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.js +52 -10
  207. package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.js +40 -6
  208. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +37 -4
  209. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.d.ts +9 -0
  210. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.js +230 -0
  211. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +29 -6
  212. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.js +26 -10
  213. package/packages/@monomind/cli/dist/src/memory/intelligence.js +80 -19
  214. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +21 -2
  215. package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +67 -3
  216. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.js +14 -4
  217. package/packages/@monomind/cli/dist/src/model/complexity-scorer.d.ts +21 -0
  218. package/packages/@monomind/cli/dist/src/model/complexity-scorer.js +106 -0
  219. package/packages/@monomind/cli/dist/src/model/index.d.ts +4 -0
  220. package/packages/@monomind/cli/dist/src/model/index.js +4 -0
  221. package/packages/@monomind/cli/dist/src/model/model-settings.d.ts +22 -0
  222. package/packages/@monomind/cli/dist/src/model/model-settings.js +33 -0
  223. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.d.ts +24 -0
  224. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.js +65 -0
  225. package/packages/@monomind/cli/dist/src/monovector/capabilities.d.ts +34 -0
  226. package/packages/@monomind/cli/dist/src/monovector/capabilities.js +37 -0
  227. package/packages/@monomind/cli/dist/src/monovector/command-outcomes.js +43 -7
  228. package/packages/@monomind/cli/dist/src/monovector/coverage-router.js +8 -4
  229. package/packages/@monomind/cli/dist/src/monovector/coverage-tools.js +6 -3
  230. package/packages/@monomind/cli/dist/src/monovector/diff-classifier.js +13 -0
  231. package/packages/@monomind/cli/dist/src/monovector/route-outcomes.d.ts +2 -1
  232. package/packages/@monomind/cli/dist/src/monovector/route-outcomes.js +46 -4
  233. package/packages/@monomind/cli/dist/src/observability/replay-reader.d.ts +1 -1
  234. package/packages/@monomind/cli/dist/src/orchestration/index.d.ts +7 -0
  235. package/packages/@monomind/cli/dist/src/orchestration/index.js +6 -0
  236. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.d.ts +11 -0
  237. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.js +31 -0
  238. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.d.ts +68 -0
  239. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +180 -0
  240. package/packages/@monomind/cli/dist/src/plugins/manager.js +8 -3
  241. package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +46 -2
  242. package/packages/@monomind/cli/dist/src/plugins/store/search.js +5 -4
  243. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  244. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  245. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  246. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.js +188 -0
  247. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  248. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.js +206 -0
  249. package/packages/@monomind/cli/dist/src/production/circuit-breaker.js +17 -3
  250. package/packages/@monomind/cli/dist/src/production/error-handler.js +3 -0
  251. package/packages/@monomind/cli/dist/src/production/monitoring.js +20 -3
  252. package/packages/@monomind/cli/dist/src/production/rate-limiter.js +13 -4
  253. package/packages/@monomind/cli/dist/src/production/retry.js +17 -9
  254. package/packages/@monomind/cli/dist/src/routing/embed-worker.js +6 -2
  255. package/packages/@monomind/cli/dist/src/routing/embedder.js +0 -0
  256. package/packages/@monomind/cli/dist/src/routing/llm-caller.js +13 -2
  257. package/packages/@monomind/cli/dist/src/routing/route-layer-factory.js +18 -3
  258. package/packages/@monomind/cli/dist/src/runtime/headless.d.ts +60 -0
  259. package/packages/@monomind/cli/dist/src/runtime/headless.js +284 -0
  260. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  261. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.js +95 -0
  262. package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +1 -0
  263. package/packages/@monomind/cli/dist/src/services/claim-service.js +8 -0
  264. package/packages/@monomind/cli/dist/src/services/config-file-manager.js +14 -2
  265. package/packages/@monomind/cli/dist/src/services/container-worker-pool.d.ts +197 -0
  266. package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +623 -0
  267. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +18 -2
  268. package/packages/@monomind/cli/dist/src/services/index.d.ts +13 -0
  269. package/packages/@monomind/cli/dist/src/services/index.js +11 -0
  270. package/packages/@monomind/cli/dist/src/services/worker-daemon.js +53 -12
  271. package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +201 -0
  272. package/packages/@monomind/cli/dist/src/services/worker-queue.js +594 -0
  273. package/packages/@monomind/cli/dist/src/swarm/communication-graph.d.ts +25 -0
  274. package/packages/@monomind/cli/dist/src/swarm/communication-graph.js +77 -0
  275. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +31 -0
  276. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +61 -0
  277. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +19 -0
  278. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +68 -0
  279. package/packages/@monomind/cli/dist/src/transfer/anonymization/index.d.ts +0 -3
  280. package/packages/@monomind/cli/dist/src/transfer/anonymization/index.js +16 -1
  281. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  282. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.js +205 -0
  283. package/packages/@monomind/cli/dist/src/transfer/export.js +8 -0
  284. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.js +33 -3
  285. package/packages/@monomind/cli/dist/src/transfer/serialization/cfp.js +9 -3
  286. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.js +37 -3
  287. package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +45 -3
  288. package/packages/@monomind/cli/dist/src/transfer/store/download.js +5 -0
  289. package/packages/@monomind/cli/dist/src/transfer/store/publish.js +13 -1
  290. package/packages/@monomind/cli/dist/src/transfer/store/registry.d.ts +8 -0
  291. package/packages/@monomind/cli/dist/src/transfer/store/registry.js +30 -5
  292. package/packages/@monomind/cli/dist/src/transfer/store/search.js +20 -5
  293. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  294. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.js +190 -0
  295. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.d.ts +6 -0
  296. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.js +105 -0
  297. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.d.ts +7 -0
  298. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.js +214 -0
  299. package/packages/@monomind/cli/dist/src/update/checker.js +59 -7
  300. package/packages/@monomind/cli/dist/src/update/executor.js +50 -3
  301. package/packages/@monomind/cli/dist/src/update/index.js +18 -1
  302. package/packages/@monomind/cli/dist/src/update/rate-limiter.d.ts +6 -0
  303. package/packages/@monomind/cli/dist/src/update/rate-limiter.js +79 -7
  304. package/packages/@monomind/cli/dist/src/update/validator.js +52 -1
  305. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.d.ts +10 -0
  306. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +82 -0
  307. package/packages/@monomind/cli/dist/src/workflow/context-resolver.d.ts +12 -0
  308. package/packages/@monomind/cli/dist/src/workflow/context-resolver.js +23 -0
  309. package/packages/@monomind/cli/dist/src/workflow/dag-builder.d.ts +17 -0
  310. package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +129 -0
  311. package/packages/@monomind/cli/dist/src/workflow/dag-executor.d.ts +9 -0
  312. package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +116 -0
  313. package/packages/@monomind/cli/dist/src/workflow/dag-types.d.ts +41 -0
  314. package/packages/@monomind/cli/dist/src/workflow/dag-types.js +8 -0
  315. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.d.ts +12 -0
  316. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.js +20 -0
  317. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +165 -0
  318. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +82 -0
  319. package/packages/@monomind/cli/dist/src/workflow/index.d.ts +13 -0
  320. package/packages/@monomind/cli/dist/src/workflow/index.js +11 -0
  321. package/packages/@monomind/cli/dist/src/workflow/template-engine.d.ts +11 -0
  322. package/packages/@monomind/cli/dist/src/workflow/template-engine.js +40 -0
  323. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.d.ts +29 -0
  324. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +227 -0
  325. package/packages/@monomind/cli/package.json +9 -10
  326. package/packages/@monomind/guidance/dist/adversarial.d.ts +284 -0
  327. package/packages/@monomind/guidance/dist/adversarial.js +572 -0
  328. package/packages/@monomind/guidance/dist/analyzer.d.ts +530 -0
  329. package/packages/@monomind/guidance/dist/analyzer.js +2518 -0
  330. package/packages/@monomind/guidance/dist/artifacts.d.ts +283 -0
  331. package/packages/@monomind/guidance/dist/artifacts.js +356 -0
  332. package/packages/@monomind/guidance/dist/authority.d.ts +290 -0
  333. package/packages/@monomind/guidance/dist/authority.js +558 -0
  334. package/packages/@monomind/guidance/dist/capabilities.d.ts +209 -0
  335. package/packages/@monomind/guidance/dist/capabilities.js +485 -0
  336. package/packages/@monomind/guidance/dist/coherence.d.ts +233 -0
  337. package/packages/@monomind/guidance/dist/coherence.js +372 -0
  338. package/packages/@monomind/guidance/dist/compiler.d.ts +87 -0
  339. package/packages/@monomind/guidance/dist/compiler.js +419 -0
  340. package/packages/@monomind/guidance/dist/conformance-kit.d.ts +225 -0
  341. package/packages/@monomind/guidance/dist/conformance-kit.js +629 -0
  342. package/packages/@monomind/guidance/dist/continue-gate.d.ts +214 -0
  343. package/packages/@monomind/guidance/dist/continue-gate.js +353 -0
  344. package/packages/@monomind/guidance/dist/crypto-utils.d.ts +17 -0
  345. package/packages/@monomind/guidance/dist/crypto-utils.js +24 -0
  346. package/packages/@monomind/guidance/dist/evolution.d.ts +282 -0
  347. package/packages/@monomind/guidance/dist/evolution.js +500 -0
  348. package/packages/@monomind/guidance/dist/gates.d.ts +79 -0
  349. package/packages/@monomind/guidance/dist/gates.js +302 -0
  350. package/packages/@monomind/guidance/dist/gateway.d.ts +206 -0
  351. package/packages/@monomind/guidance/dist/gateway.js +452 -0
  352. package/packages/@monomind/guidance/dist/generators.d.ts +153 -0
  353. package/packages/@monomind/guidance/dist/generators.js +682 -0
  354. package/packages/@monomind/guidance/dist/headless.d.ts +177 -0
  355. package/packages/@monomind/guidance/dist/headless.js +342 -0
  356. package/packages/@monomind/guidance/dist/hooks.d.ts +109 -0
  357. package/packages/@monomind/guidance/dist/hooks.js +347 -0
  358. package/packages/@monomind/guidance/dist/index.d.ts +205 -0
  359. package/packages/@monomind/guidance/dist/index.js +321 -0
  360. package/packages/@monomind/guidance/dist/ledger.d.ts +162 -0
  361. package/packages/@monomind/guidance/dist/ledger.js +375 -0
  362. package/packages/@monomind/guidance/dist/manifest-validator.d.ts +289 -0
  363. package/packages/@monomind/guidance/dist/manifest-validator.js +838 -0
  364. package/packages/@monomind/guidance/dist/memory-gate.d.ts +222 -0
  365. package/packages/@monomind/guidance/dist/memory-gate.js +382 -0
  366. package/packages/@monomind/guidance/dist/meta-governance.d.ts +265 -0
  367. package/packages/@monomind/guidance/dist/meta-governance.js +348 -0
  368. package/packages/@monomind/guidance/dist/optimizer.d.ts +104 -0
  369. package/packages/@monomind/guidance/dist/optimizer.js +329 -0
  370. package/packages/@monomind/guidance/dist/persistence.d.ts +189 -0
  371. package/packages/@monomind/guidance/dist/persistence.js +464 -0
  372. package/packages/@monomind/guidance/dist/proof.d.ts +185 -0
  373. package/packages/@monomind/guidance/dist/proof.js +238 -0
  374. package/packages/@monomind/guidance/dist/retriever.d.ts +116 -0
  375. package/packages/@monomind/guidance/dist/retriever.js +394 -0
  376. package/packages/@monomind/guidance/dist/ruvbot-integration.d.ts +370 -0
  377. package/packages/@monomind/guidance/dist/ruvbot-integration.js +738 -0
  378. package/packages/@monomind/guidance/dist/temporal.d.ts +426 -0
  379. package/packages/@monomind/guidance/dist/temporal.js +658 -0
  380. package/packages/@monomind/guidance/dist/trust.d.ts +283 -0
  381. package/packages/@monomind/guidance/dist/trust.js +473 -0
  382. package/packages/@monomind/guidance/dist/truth-anchors.d.ts +276 -0
  383. package/packages/@monomind/guidance/dist/truth-anchors.js +488 -0
  384. package/packages/@monomind/guidance/dist/types.d.ts +378 -0
  385. package/packages/@monomind/guidance/dist/types.js +10 -0
  386. package/packages/@monomind/guidance/dist/uncertainty.d.ts +372 -0
  387. package/packages/@monomind/guidance/dist/uncertainty.js +619 -0
  388. package/packages/@monomind/guidance/dist/wasm-kernel.d.ts +48 -0
  389. package/packages/@monomind/guidance/dist/wasm-kernel.js +158 -0
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Plugin Store Demo
4
+ * Demonstrates the IPFS-based plugin registry working end-to-end
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=demo-plugin-store.d.ts.map
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Plugin Store Demo
4
+ * Demonstrates the IPFS-based plugin registry working end-to-end
5
+ */
6
+ import { createPluginDiscoveryService, searchPlugins, getOfficialPlugins, } from '../store/index.js';
7
+ async function demo() {
8
+ console.log('');
9
+ console.log('╔══════════════════════════════════════════════════════════════╗');
10
+ console.log('║ MONOMIND - IPFS PLUGIN STORE DEMO ║');
11
+ console.log('║ Decentralized Plugin Marketplace ║');
12
+ console.log('╚══════════════════════════════════════════════════════════════╝');
13
+ console.log('');
14
+ // Step 1: Initialize discovery service
15
+ console.log('🔍 Step 1: Initialize Plugin Discovery Service');
16
+ const discovery = createPluginDiscoveryService();
17
+ const registries = discovery.listRegistries();
18
+ console.log(` Found ${registries.length} bootstrap registries:`);
19
+ registries.forEach(r => {
20
+ console.log(` ├─ ${r.name} ${r.official ? '(Official)' : '(Community)'}`);
21
+ console.log(` │ └─ IPNS: ${r.ipnsName.slice(0, 30)}...`);
22
+ });
23
+ console.log('');
24
+ // Step 2: Discover registry via IPNS
25
+ console.log('🌐 Step 2: Discover Registry via IPNS');
26
+ const result = await discovery.discoverRegistry();
27
+ if (!result.success || !result.registry) {
28
+ console.error(' ❌ Failed to discover registry');
29
+ return;
30
+ }
31
+ console.log(` ✅ Registry discovered from: ${result.source}`);
32
+ console.log(` ├─ Total plugins: ${result.registry.totalPlugins}`);
33
+ console.log(` ├─ Total downloads: ${result.registry.totalDownloads.toLocaleString()}`);
34
+ console.log(` └─ CID: ${result.cid?.slice(0, 40)}...`);
35
+ console.log('');
36
+ // Step 3: List official plugins
37
+ console.log('📦 Step 3: Official Plugins Available');
38
+ const official = getOfficialPlugins(result.registry);
39
+ console.log('');
40
+ official.forEach(p => {
41
+ const stars = '★'.repeat(Math.round(p.rating));
42
+ console.log(` ${p.verified ? '✓' : ' '} ${p.displayName} v${p.version}`);
43
+ console.log(` └─ ${p.description.slice(0, 60)}...`);
44
+ console.log(` └─ ${p.downloads.toLocaleString()} downloads | ${stars} ${p.rating}`);
45
+ console.log('');
46
+ });
47
+ // Step 4: Search for plugin-creator
48
+ console.log('🔎 Step 4: Search for "plugin creator"');
49
+ const searchResult = searchPlugins(result.registry, { query: 'plugin creator' });
50
+ console.log(` Found ${searchResult.total} results`);
51
+ console.log('');
52
+ // Step 5: Plugin Creator details
53
+ const pluginCreator = searchResult.plugins.find(p => p.id === 'plugin-creator');
54
+ if (pluginCreator) {
55
+ console.log('═══════════════════════════════════════════════════════════════');
56
+ console.log(' PLUGIN CREATOR PRO ');
57
+ console.log('═══════════════════════════════════════════════════════════════');
58
+ console.log('');
59
+ console.log(` Name: ${pluginCreator.displayName}`);
60
+ console.log(` Version: ${pluginCreator.version}`);
61
+ console.log(` Trust: ${pluginCreator.trustLevel.toUpperCase()}`);
62
+ console.log(` Verified: ${pluginCreator.verified ? '✓ Yes' : '✗ No'}`);
63
+ console.log(` Downloads: ${pluginCreator.downloads.toLocaleString()}`);
64
+ console.log(` Rating: ${'★'.repeat(Math.round(pluginCreator.rating))} ${pluginCreator.rating}/5`);
65
+ console.log(` License: ${pluginCreator.license}`);
66
+ console.log('');
67
+ console.log(' Description:');
68
+ console.log(` ${pluginCreator.description}`);
69
+ console.log('');
70
+ console.log(' IPFS Storage:');
71
+ console.log(` ├─ CID: ${pluginCreator.cid}`);
72
+ console.log(` ├─ Size: ${(pluginCreator.size / 1024).toFixed(1)} KB`);
73
+ console.log(` └─ Checksum: ${pluginCreator.checksum}`);
74
+ console.log('');
75
+ console.log(' Commands Available:');
76
+ pluginCreator.commands.forEach(cmd => {
77
+ console.log(` └─ ${cmd}`);
78
+ });
79
+ console.log('');
80
+ console.log(' Hooks Provided:');
81
+ pluginCreator.hooks.forEach(hook => {
82
+ console.log(` └─ ${hook}`);
83
+ });
84
+ console.log('');
85
+ console.log(' Permissions Required:');
86
+ console.log(` └─ ${pluginCreator.permissions.join(', ')}`);
87
+ console.log('');
88
+ if (pluginCreator.securityAudit) {
89
+ console.log(' Security Audit:');
90
+ console.log(` ├─ Auditor: ${pluginCreator.securityAudit.auditor}`);
91
+ console.log(` ├─ Date: ${pluginCreator.securityAudit.auditDate}`);
92
+ console.log(` └─ Passed: ${pluginCreator.securityAudit.passed ? '✓ Yes' : '✗ No'}`);
93
+ console.log('');
94
+ }
95
+ console.log(' To install:');
96
+ console.log(' $ monomind plugins install -n plugin-creator');
97
+ console.log('');
98
+ }
99
+ // Summary
100
+ console.log('═══════════════════════════════════════════════════════════════');
101
+ console.log(' DEMO COMPLETE ');
102
+ console.log('═══════════════════════════════════════════════════════════════');
103
+ console.log('');
104
+ console.log(' The IPFS-based Plugin Store is working!');
105
+ console.log('');
106
+ console.log(' Features demonstrated:');
107
+ console.log(' ✅ Registry discovery via IPNS');
108
+ console.log(' ✅ Plugin search with full-text matching');
109
+ console.log(' ✅ Official/Verified plugin filtering');
110
+ console.log(' ✅ Plugin Creator Pro available for download');
111
+ console.log(' ✅ Security audit verification');
112
+ console.log(' ✅ Content-addressed storage (CID)');
113
+ console.log('');
114
+ console.log(' CLI Commands:');
115
+ console.log(' $ monomind plugins list # List all plugins');
116
+ console.log(' $ monomind plugins list --official # Official only');
117
+ console.log(' $ monomind plugins search -q neural # Search plugins');
118
+ console.log(' $ monomind plugins info -n plugin-creator');
119
+ console.log(' $ monomind plugins install -n plugin-creator');
120
+ console.log('');
121
+ }
122
+ demo().catch(err => {
123
+ console.error('Demo failed:', err);
124
+ process.exit(1);
125
+ });
126
+ //# sourceMappingURL=demo-plugin-store.js.map
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Standalone Plugin Store Test
4
+ * Run this in any environment to verify the IPFS-based plugin store works
5
+ *
6
+ * Usage:
7
+ * npx tsx standalone-test.ts
8
+ * # or
9
+ * npm run test:plugin-store
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=standalone-test.d.ts.map
@@ -0,0 +1,188 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Standalone Plugin Store Test
4
+ * Run this in any environment to verify the IPFS-based plugin store works
5
+ *
6
+ * Usage:
7
+ * npx tsx standalone-test.ts
8
+ * # or
9
+ * npm run test:plugin-store
10
+ */
11
+ import { createPluginDiscoveryService, searchPlugins, getFeaturedPlugins, getOfficialPlugins, getPluginSearchSuggestions, getPluginTagCloud, findSimilarPlugins, } from '../store/index.js';
12
+ async function main() {
13
+ console.log('');
14
+ console.log('╔══════════════════════════════════════════════════════════════╗');
15
+ console.log('║ MONOMIND - STANDALONE PLUGIN STORE TEST ║');
16
+ console.log('║ IPFS-Based Decentralized Plugin Marketplace ║');
17
+ console.log('╚══════════════════════════════════════════════════════════════╝');
18
+ console.log('');
19
+ let passed = 0;
20
+ let failed = 0;
21
+ // Test 1: Discovery Service Creation
22
+ console.log('▶ Test 1: Create Discovery Service');
23
+ try {
24
+ const discovery = createPluginDiscoveryService();
25
+ const registries = discovery.listRegistries();
26
+ console.log(` ✅ Created service with ${registries.length} bootstrap registries`);
27
+ passed++;
28
+ }
29
+ catch (e) {
30
+ console.log(` ❌ Failed: ${e.message}`);
31
+ failed++;
32
+ }
33
+ // Test 2: Discover Registry
34
+ console.log('▶ Test 2: Discover Registry via IPNS');
35
+ let registry = null;
36
+ try {
37
+ const discovery = createPluginDiscoveryService();
38
+ const result = await discovery.discoverRegistry();
39
+ if (result.success && result.registry) {
40
+ registry = result.registry;
41
+ console.log(` ✅ Discovered ${result.registry.plugins.length} plugins from ${result.source}`);
42
+ passed++;
43
+ }
44
+ else {
45
+ throw new Error(result.error || 'No registry');
46
+ }
47
+ }
48
+ catch (e) {
49
+ console.log(` ❌ Failed: ${e.message}`);
50
+ failed++;
51
+ }
52
+ if (!registry) {
53
+ console.log('\n❌ Cannot continue without registry\n');
54
+ process.exit(1);
55
+ }
56
+ // Test 3: Search Plugins
57
+ console.log('▶ Test 3: Search for "plugin creator"');
58
+ try {
59
+ const results = searchPlugins(registry, { query: 'plugin creator' });
60
+ const found = results.plugins.find(p => p.id === 'plugin-creator');
61
+ if (found) {
62
+ console.log(` ✅ Found Plugin Creator Pro v${found.version}`);
63
+ passed++;
64
+ }
65
+ else {
66
+ throw new Error('Plugin Creator not found in search results');
67
+ }
68
+ }
69
+ catch (e) {
70
+ console.log(` ❌ Failed: ${e.message}`);
71
+ failed++;
72
+ }
73
+ // Test 4: Get Official Plugins
74
+ console.log('▶ Test 4: Get Official Plugins');
75
+ try {
76
+ const official = getOfficialPlugins(registry);
77
+ console.log(` ✅ Found ${official.length} official plugins:`);
78
+ official.forEach(p => console.log(` - ${p.displayName} (${p.id})`));
79
+ passed++;
80
+ }
81
+ catch (e) {
82
+ console.log(` ❌ Failed: ${e.message}`);
83
+ failed++;
84
+ }
85
+ // Test 5: Get Featured Plugins
86
+ console.log('▶ Test 5: Get Featured Plugins');
87
+ try {
88
+ const featured = getFeaturedPlugins(registry);
89
+ const hasPluginCreator = featured.some(p => p.id === 'plugin-creator');
90
+ console.log(` ✅ Found ${featured.length} featured plugins (Plugin Creator featured: ${hasPluginCreator})`);
91
+ passed++;
92
+ }
93
+ catch (e) {
94
+ console.log(` ❌ Failed: ${e.message}`);
95
+ failed++;
96
+ }
97
+ // Test 6: Search with Filters
98
+ console.log('▶ Test 6: Search with Filters (verified only)');
99
+ try {
100
+ const results = searchPlugins(registry, { verified: true });
101
+ console.log(` ✅ Found ${results.plugins.length} verified plugins`);
102
+ passed++;
103
+ }
104
+ catch (e) {
105
+ console.log(` ❌ Failed: ${e.message}`);
106
+ failed++;
107
+ }
108
+ // Test 7: Plugin Details
109
+ console.log('▶ Test 7: Get Plugin Creator Details');
110
+ try {
111
+ const plugin = registry.plugins.find((p) => p.id === 'plugin-creator');
112
+ if (plugin) {
113
+ console.log(` ✅ Plugin Creator Pro Details:`);
114
+ console.log(` Version: ${plugin.version}`);
115
+ console.log(` Trust: ${plugin.trustLevel}`);
116
+ console.log(` Commands: ${plugin.commands.length}`);
117
+ console.log(` Downloads: ${plugin.downloads.toLocaleString()}`);
118
+ console.log(` Rating: ${plugin.rating}/5`);
119
+ passed++;
120
+ }
121
+ else {
122
+ throw new Error('Plugin not found');
123
+ }
124
+ }
125
+ catch (e) {
126
+ console.log(` ❌ Failed: ${e.message}`);
127
+ failed++;
128
+ }
129
+ // Test 8: Tag Cloud
130
+ console.log('▶ Test 8: Get Tag Cloud');
131
+ try {
132
+ const tags = getPluginTagCloud(registry);
133
+ console.log(` ✅ Found ${tags.size} unique tags`);
134
+ passed++;
135
+ }
136
+ catch (e) {
137
+ console.log(` ❌ Failed: ${e.message}`);
138
+ failed++;
139
+ }
140
+ // Test 9: Search Suggestions
141
+ console.log('▶ Test 9: Get Search Suggestions');
142
+ try {
143
+ const suggestions = getPluginSearchSuggestions(registry, 'plug');
144
+ console.log(` ✅ Got ${suggestions.length} suggestions for "plug"`);
145
+ passed++;
146
+ }
147
+ catch (e) {
148
+ console.log(` ❌ Failed: ${e.message}`);
149
+ failed++;
150
+ }
151
+ // Test 10: Similar Plugins
152
+ console.log('▶ Test 10: Find Similar Plugins');
153
+ try {
154
+ const similar = findSimilarPlugins(registry, '@monoes/neural', 3);
155
+ console.log(` ✅ Found ${similar.length} similar plugins to @monoes/neural`);
156
+ passed++;
157
+ }
158
+ catch (e) {
159
+ console.log(` ❌ Failed: ${e.message}`);
160
+ failed++;
161
+ }
162
+ // Summary
163
+ console.log('');
164
+ console.log('═══════════════════════════════════════════════════════════════');
165
+ console.log(' TEST RESULTS ');
166
+ console.log('═══════════════════════════════════════════════════════════════');
167
+ console.log('');
168
+ console.log(` Total: ${passed + failed}`);
169
+ console.log(` ✅ Passed: ${passed}`);
170
+ console.log(` ❌ Failed: ${failed}`);
171
+ console.log('');
172
+ if (failed === 0) {
173
+ console.log(' 🎉 All tests passed! Plugin Store is working correctly.');
174
+ console.log('');
175
+ console.log(' Available CLI Commands:');
176
+ console.log(' npx @monoes/cli plugins list');
177
+ console.log(' npx @monoes/cli plugins list --official');
178
+ console.log(' npx @monoes/cli plugins search -q "plugin creator"');
179
+ console.log(' npx @monoes/cli plugins info -n plugin-creator');
180
+ console.log('');
181
+ }
182
+ process.exit(failed > 0 ? 1 : 0);
183
+ }
184
+ main().catch(err => {
185
+ console.error('Fatal error:', err);
186
+ process.exit(1);
187
+ });
188
+ //# sourceMappingURL=standalone-test.js.map
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Plugin Store Test Suite
4
+ * Tests IPFS-based plugin registry discovery, search, and operations
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=test-plugin-store.d.ts.map
@@ -0,0 +1,206 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Plugin Store Test Suite
4
+ * Tests IPFS-based plugin registry discovery, search, and operations
5
+ */
6
+ import { createPluginDiscoveryService, searchPlugins, getPluginSearchSuggestions, getPluginTagCloud, getFeaturedPlugins, getTrendingPlugins, getOfficialPlugins, findSimilarPlugins, } from '../store/index.js';
7
+ // Test results tracking
8
+ const results = [];
9
+ function logTest(name, passed, details) {
10
+ results.push({ test: name, passed, details });
11
+ const icon = passed ? '✅' : '❌';
12
+ console.log(`${icon} ${name}${details ? `: ${details}` : ''}`);
13
+ }
14
+ async function runTests() {
15
+ console.log('');
16
+ console.log('╔══════════════════════════════════════════════════════════╗');
17
+ console.log('║ PLUGIN STORE TEST SUITE ║');
18
+ console.log('║ Testing IPFS-Based Registry Discovery ║');
19
+ console.log('╚══════════════════════════════════════════════════════════╝');
20
+ console.log('');
21
+ // ==========================================================================
22
+ // 1. DISCOVERY TESTS
23
+ // ==========================================================================
24
+ console.log('─── Discovery Tests ───────────────────────────────────────');
25
+ try {
26
+ const discovery = createPluginDiscoveryService();
27
+ logTest('Discovery service created', true);
28
+ // List registries
29
+ const registries = discovery.listRegistries();
30
+ logTest('List registries', registries.length > 0, `Found ${registries.length} registries`);
31
+ // Discover registry
32
+ const result = await discovery.discoverRegistry();
33
+ logTest('Discover registry via IPNS', result.success, result.success
34
+ ? `Loaded ${result.registry?.plugins.length || 0} plugins`
35
+ : result.error);
36
+ // Cache test
37
+ if (result.success) {
38
+ const cachedResult = await discovery.discoverRegistry();
39
+ logTest('Cache hit', cachedResult.fromCache === true, 'Second request from cache');
40
+ }
41
+ console.log('');
42
+ // ==========================================================================
43
+ // 2. SEARCH TESTS
44
+ // ==========================================================================
45
+ console.log('─── Search Tests ──────────────────────────────────────────');
46
+ if (result.success && result.registry) {
47
+ const registry = result.registry;
48
+ // Basic search
49
+ const basicSearch = searchPlugins(registry);
50
+ logTest('Basic search', basicSearch.plugins.length > 0, `Found ${basicSearch.total} plugins`);
51
+ // Query search for plugin-creator
52
+ const creatorSearch = searchPlugins(registry, { query: 'creator' });
53
+ logTest('Query search: "creator"', creatorSearch.plugins.length > 0, `Found ${creatorSearch.plugins.length} plugins matching "creator"`);
54
+ // Verify plugin-creator exists
55
+ const pluginCreator = creatorSearch.plugins.find(p => p.id === 'plugin-creator');
56
+ logTest('Plugin Creator found', pluginCreator !== undefined, pluginCreator ? `v${pluginCreator.version} - ${pluginCreator.displayName}` : 'Not found');
57
+ // Category filter
58
+ const securitySearch = searchPlugins(registry, { category: 'security' });
59
+ logTest('Category filter: security', true, `Found ${securitySearch.plugins.length} security plugins`);
60
+ // Type filter
61
+ const commandSearch = searchPlugins(registry, { type: 'command' });
62
+ logTest('Type filter: command', commandSearch.plugins.length > 0, `Found ${commandSearch.plugins.length} command plugins`);
63
+ // Verified filter
64
+ const verifiedSearch = searchPlugins(registry, { verified: true });
65
+ logTest('Verified filter', verifiedSearch.plugins.length > 0, `Verified plugins: ${verifiedSearch.plugins.length}`);
66
+ // Sort by downloads
67
+ const sortedSearch = searchPlugins(registry, {
68
+ sortBy: 'downloads',
69
+ sortOrder: 'desc',
70
+ });
71
+ logTest('Sort by downloads', true, `Top plugin: ${sortedSearch.plugins[0]?.displayName || 'none'} (${sortedSearch.plugins[0]?.downloads || 0} downloads)`);
72
+ // Pagination
73
+ const page1 = searchPlugins(registry, { limit: 3, offset: 0 });
74
+ logTest('Pagination', page1.pageSize === 3, `Page 1 with ${page1.plugins.length} plugins, hasMore: ${page1.hasMore}`);
75
+ // Search suggestions
76
+ const suggestions = getPluginSearchSuggestions(registry, 'neu');
77
+ logTest('Search suggestions', suggestions.length >= 0, `Suggestions for "neu": ${suggestions.slice(0, 3).join(', ') || 'none'}`);
78
+ // Tag cloud
79
+ const tagCloud = getPluginTagCloud(registry);
80
+ logTest('Tag cloud', tagCloud.size > 0, `${tagCloud.size} unique tags`);
81
+ }
82
+ console.log('');
83
+ // ==========================================================================
84
+ // 3. FEATURED/TRENDING/OFFICIAL TESTS
85
+ // ==========================================================================
86
+ console.log('─── Featured/Trending/Official Tests ─────────────────────');
87
+ if (result.success && result.registry) {
88
+ const registry = result.registry;
89
+ // Featured plugins
90
+ const featured = getFeaturedPlugins(registry);
91
+ logTest('Featured plugins', featured.length > 0, `${featured.length} featured: ${featured.map(p => p.name).join(', ')}`);
92
+ // Check plugin-creator is featured
93
+ const creatorFeatured = featured.some(p => p.id === 'plugin-creator');
94
+ logTest('Plugin Creator is featured', creatorFeatured, creatorFeatured ? 'Yes' : 'No');
95
+ // Trending plugins
96
+ const trending = getTrendingPlugins(registry);
97
+ logTest('Trending plugins', trending.length > 0, `${trending.length} trending: ${trending.map(p => p.name).join(', ')}`);
98
+ // Official plugins
99
+ const official = getOfficialPlugins(registry);
100
+ logTest('Official plugins', official.length > 0, `${official.length} official plugins`);
101
+ // Similar plugins
102
+ const similar = findSimilarPlugins(registry, '@monoes/neural', 3);
103
+ logTest('Similar plugins', similar.length >= 0, `Similar to @monoes/neural: ${similar.map(p => p.name).join(', ') || 'none'}`);
104
+ }
105
+ console.log('');
106
+ // ==========================================================================
107
+ // 4. PLUGIN DETAILS TEST
108
+ // ==========================================================================
109
+ console.log('─── Plugin Details Test ───────────────────────────────────');
110
+ if (result.success && result.registry) {
111
+ const pluginCreator = result.registry.plugins.find(p => p.id === 'plugin-creator');
112
+ if (pluginCreator) {
113
+ logTest('Plugin Creator details', true);
114
+ console.log('');
115
+ console.log(' Plugin Creator Pro Details:');
116
+ console.log(` ├─ ID: ${pluginCreator.id}`);
117
+ console.log(` ├─ Version: ${pluginCreator.version}`);
118
+ console.log(` ├─ CID: ${pluginCreator.cid}`);
119
+ console.log(` ├─ Size: ${(pluginCreator.size / 1024).toFixed(1)} KB`);
120
+ console.log(` ├─ Downloads: ${pluginCreator.downloads.toLocaleString()}`);
121
+ console.log(` ├─ Rating: ${pluginCreator.rating}★ (${pluginCreator.ratingCount} ratings)`);
122
+ console.log(` ├─ Trust: ${pluginCreator.trustLevel}`);
123
+ console.log(` ├─ Verified: ${pluginCreator.verified ? '✓' : '✗'}`);
124
+ console.log(` ├─ Commands: ${pluginCreator.commands.length}`);
125
+ pluginCreator.commands.forEach(cmd => {
126
+ console.log(` │ └─ ${cmd}`);
127
+ });
128
+ console.log(` ├─ Hooks: ${pluginCreator.hooks.length}`);
129
+ pluginCreator.hooks.forEach(hook => {
130
+ console.log(` │ └─ ${hook}`);
131
+ });
132
+ console.log(` ├─ Permissions: ${pluginCreator.permissions.join(', ')}`);
133
+ console.log(` ├─ Security Audit: ${pluginCreator.securityAudit ? '✓ Passed' : 'None'}`);
134
+ console.log(` └─ License: ${pluginCreator.license}`);
135
+ console.log('');
136
+ }
137
+ }
138
+ // ==========================================================================
139
+ // 5. INTEGRATION TEST
140
+ // ==========================================================================
141
+ console.log('─── Integration Test ──────────────────────────────────────');
142
+ // Full workflow: discover -> search -> get details
143
+ const store = createPluginDiscoveryService();
144
+ const discoverResult = await store.discoverRegistry();
145
+ if (discoverResult.success && discoverResult.registry) {
146
+ const searchResult = searchPlugins(discoverResult.registry, {
147
+ query: 'plugin creator',
148
+ });
149
+ if (searchResult.plugins.length > 0) {
150
+ const plugin = searchResult.plugins[0];
151
+ logTest('Full workflow', true, `Discover → Search → Found "${plugin.displayName}" ready to download`);
152
+ }
153
+ else {
154
+ logTest('Full workflow', true, 'Discover → Search completed');
155
+ }
156
+ }
157
+ }
158
+ catch (error) {
159
+ console.error('Test error:', error);
160
+ logTest('Test suite', false, `Error: ${error}`);
161
+ }
162
+ // ==========================================================================
163
+ // SUMMARY
164
+ // ==========================================================================
165
+ console.log('');
166
+ console.log('═══════════════════════════════════════════════════════════');
167
+ console.log(' TEST SUMMARY ');
168
+ console.log('═══════════════════════════════════════════════════════════');
169
+ console.log('');
170
+ const passed = results.filter(r => r.passed).length;
171
+ const failed = results.filter(r => !r.passed).length;
172
+ const total = results.length;
173
+ console.log(` Total Tests: ${total}`);
174
+ console.log(` ✅ Passed: ${passed}`);
175
+ console.log(` ❌ Failed: ${failed}`);
176
+ console.log('');
177
+ if (failed === 0) {
178
+ console.log(' 🎉 All tests passed!');
179
+ console.log('');
180
+ console.log(' 📦 Plugin Store Features Verified:');
181
+ console.log(' - Registry discovery via IPNS');
182
+ console.log(' - Plugin search with filters');
183
+ console.log(' - Featured/Trending/Official listings');
184
+ console.log(' - Plugin Creator Pro available for download');
185
+ console.log('');
186
+ console.log(' 🔧 Plugin Creator Pro Commands:');
187
+ console.log(' - plugin-creator new Create new plugin');
188
+ console.log(' - plugin-creator template Use template');
189
+ console.log(' - plugin-creator validate Validate plugin');
190
+ console.log(' - plugin-creator test Run tests');
191
+ console.log(' - plugin-creator build Build plugin');
192
+ console.log(' - plugin-creator publish Publish to IPFS');
193
+ console.log(' - plugin-creator watch Hot-reload dev mode');
194
+ console.log('');
195
+ }
196
+ else {
197
+ console.log(' ⚠️ Some tests failed. Please review the output above.');
198
+ }
199
+ process.exit(failed > 0 ? 1 : 0);
200
+ }
201
+ // Run tests
202
+ runTests().catch(error => {
203
+ console.error('Fatal error:', error);
204
+ process.exit(1);
205
+ });
206
+ //# sourceMappingURL=test-plugin-store.js.map
@@ -105,6 +105,11 @@ export class CircuitBreaker {
105
105
  this.failures.push(now);
106
106
  // Clean old failures outside window
107
107
  this.failures = this.failures.filter(t => t > now - this.config.failureWindowMs);
108
+ // Hard cap: prevent unbounded growth under rapid-fire recordFailure() calls
109
+ // before the window filter prunes entries (e.g. clock skew or test hammering).
110
+ if (this.failures.length > 10_000) {
111
+ this.failures = this.failures.slice(-10_000);
112
+ }
108
113
  // Check if we should open the circuit
109
114
  if (this.state === 'closed' && this.failures.length >= this.config.failureThreshold) {
110
115
  this.transitionTo('open');
@@ -214,17 +219,26 @@ export class CircuitBreaker {
214
219
  // ============================================================================
215
220
  const circuitBreakers = new Map();
216
221
  const MAX_CIRCUIT_BREAKERS = 1000;
222
+ const MAX_CIRCUIT_BREAKER_NAME_LEN = 256;
223
+ const FORBIDDEN_CB_NAMES = new Set(['__proto__', 'constructor', 'prototype']);
217
224
  /**
218
225
  * Get or create a circuit breaker by name
219
226
  */
220
227
  export function getCircuitBreaker(name, config) {
221
- if (!circuitBreakers.has(name)) {
228
+ // Sanitize name: cap length and block prototype-pollution keys
229
+ const safeName = typeof name === 'string'
230
+ ? name.slice(0, MAX_CIRCUIT_BREAKER_NAME_LEN)
231
+ : 'default';
232
+ if (FORBIDDEN_CB_NAMES.has(safeName)) {
233
+ throw new Error(`Invalid circuit breaker name: ${safeName}`);
234
+ }
235
+ if (!circuitBreakers.has(safeName)) {
222
236
  if (circuitBreakers.size >= MAX_CIRCUIT_BREAKERS) {
223
237
  throw new Error(`Circuit breaker registry full (max ${MAX_CIRCUIT_BREAKERS})`);
224
238
  }
225
- circuitBreakers.set(name, new CircuitBreaker(config));
239
+ circuitBreakers.set(safeName, new CircuitBreaker(config));
226
240
  }
227
- return circuitBreakers.get(name);
241
+ return circuitBreakers.get(safeName);
228
242
  }
229
243
  /**
230
244
  * Get all circuit breaker stats
@@ -134,6 +134,9 @@ export class ErrorHandler {
134
134
  return input;
135
135
  if (_depth > 20)
136
136
  return { '[MAX_DEPTH]': true };
137
+ // Primitives and null cannot be stored in a WeakSet — return them as-is.
138
+ if (input === null || typeof input !== 'object')
139
+ return input;
137
140
  if (_seen.has(input))
138
141
  return { '[CIRCULAR]': true };
139
142
  _seen.add(input);
@@ -78,11 +78,25 @@ export class MonitoringHooks {
78
78
  // Apply sampling
79
79
  if (Math.random() > this.config.samplingRate)
80
80
  return;
81
+ // Cap metric name and label keys/values to prevent DoS
82
+ const safeName = String(name).slice(0, 256);
83
+ const safeLabels = {};
84
+ let labelCount = 0;
85
+ for (const [k, v] of Object.entries(labels)) {
86
+ if (!Object.hasOwn(labels, k))
87
+ continue;
88
+ if (++labelCount > 20)
89
+ break;
90
+ // Block prototype pollution keys
91
+ if (k === '__proto__' || k === 'constructor' || k === 'prototype')
92
+ continue;
93
+ safeLabels[String(k).slice(0, 64)] = String(v).slice(0, 512);
94
+ }
81
95
  const event = {
82
- name,
96
+ name: safeName,
83
97
  type,
84
98
  value,
85
- labels: { ...this.config.globalLabels, ...labels },
99
+ labels: { ...this.config.globalLabels, ...safeLabels },
86
100
  timestamp: Date.now(),
87
101
  };
88
102
  this.metrics.push(event);
@@ -131,7 +145,8 @@ export class MonitoringHooks {
131
145
  * Register a health check
132
146
  */
133
147
  registerHealthCheck(name, check) {
134
- this.healthChecks.set(name, check);
148
+ // Cap name length to prevent map-key inflation
149
+ this.healthChecks.set(String(name).slice(0, 128), check);
135
150
  }
136
151
  /**
137
152
  * Run all health checks
@@ -285,6 +300,8 @@ export class MonitoringHooks {
285
300
  // Private Methods
286
301
  // ============================================================================
287
302
  checkAlerts(name, value) {
303
+ if (!Object.hasOwn(this.config.alertThresholds, name))
304
+ return;
288
305
  const thresholds = this.config.alertThresholds[name];
289
306
  if (!thresholds)
290
307
  return;