@monoes/monomindcli 1.11.10 → 1.11.12

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 (322) hide show
  1. package/.claude/commands/mastermind/idea.md +1 -1
  2. package/.claude/commands/mastermind/master.md +1 -1
  3. package/.claude/skills/mastermind/_protocol.md +4 -4
  4. package/.claude/skills/mastermind/architect.md +7 -4
  5. package/.claude/skills/mastermind/autodev.md +4 -2
  6. package/.claude/skills/mastermind/build.md +3 -3
  7. package/.claude/skills/mastermind/content.md +3 -3
  8. package/.claude/skills/mastermind/createorg.md +2 -2
  9. package/.claude/skills/mastermind/finance.md +3 -3
  10. package/.claude/skills/mastermind/idea.md +8 -0
  11. package/.claude/skills/mastermind/marketing.md +3 -3
  12. package/.claude/skills/mastermind/ops.md +3 -3
  13. package/.claude/skills/mastermind/release.md +3 -3
  14. package/.claude/skills/mastermind/research.md +3 -3
  15. package/.claude/skills/mastermind/review.md +3 -3
  16. package/.claude/skills/mastermind/sales.md +3 -3
  17. package/dist/src/index.d.ts.map +1 -1
  18. package/dist/src/index.js +19 -14
  19. package/dist/src/index.js.map +1 -1
  20. package/dist/src/init/statusline-generator.js +3 -3
  21. package/dist/src/observability/replay-reader.d.ts +1 -1
  22. package/dist/src/observability/replay-reader.d.ts.map +1 -1
  23. package/dist/src/update/checker.d.ts.map +1 -1
  24. package/dist/src/update/checker.js +24 -7
  25. package/dist/src/update/checker.js.map +1 -1
  26. package/dist/src/update/index.d.ts +10 -0
  27. package/dist/src/update/index.d.ts.map +1 -1
  28. package/dist/src/update/index.js +29 -2
  29. package/dist/src/update/index.js.map +1 -1
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +1 -1
  32. package/dist/src/agents/halt-signal.d.ts +0 -25
  33. package/dist/src/agents/halt-signal.d.ts.map +0 -1
  34. package/dist/src/agents/halt-signal.js +0 -76
  35. package/dist/src/agents/halt-signal.js.map +0 -1
  36. package/dist/src/agents/index.d.ts +0 -18
  37. package/dist/src/agents/index.d.ts.map +0 -1
  38. package/dist/src/agents/index.js +0 -13
  39. package/dist/src/agents/index.js.map +0 -1
  40. package/dist/src/agents/managed-agent.d.ts +0 -41
  41. package/dist/src/agents/managed-agent.d.ts.map +0 -1
  42. package/dist/src/agents/managed-agent.js +0 -69
  43. package/dist/src/agents/managed-agent.js.map +0 -1
  44. package/dist/src/agents/prompt-experiment.d.ts +0 -23
  45. package/dist/src/agents/prompt-experiment.d.ts.map +0 -1
  46. package/dist/src/agents/prompt-experiment.js +0 -49
  47. package/dist/src/agents/prompt-experiment.js.map +0 -1
  48. package/dist/src/agents/prompt-version-manager.d.ts +0 -22
  49. package/dist/src/agents/prompt-version-manager.d.ts.map +0 -1
  50. package/dist/src/agents/prompt-version-manager.js +0 -80
  51. package/dist/src/agents/prompt-version-manager.js.map +0 -1
  52. package/dist/src/agents/registry-query.d.ts +0 -71
  53. package/dist/src/agents/registry-query.d.ts.map +0 -1
  54. package/dist/src/agents/registry-query.js +0 -125
  55. package/dist/src/agents/registry-query.js.map +0 -1
  56. package/dist/src/agents/score-decay.d.ts +0 -19
  57. package/dist/src/agents/score-decay.d.ts.map +0 -1
  58. package/dist/src/agents/score-decay.js +0 -22
  59. package/dist/src/agents/score-decay.js.map +0 -1
  60. package/dist/src/agents/shared-instructions-loader.d.ts +0 -13
  61. package/dist/src/agents/shared-instructions-loader.d.ts.map +0 -1
  62. package/dist/src/agents/shared-instructions-loader.js +0 -40
  63. package/dist/src/agents/shared-instructions-loader.js.map +0 -1
  64. package/dist/src/agents/specialization-scorer.d.ts +0 -54
  65. package/dist/src/agents/specialization-scorer.d.ts.map +0 -1
  66. package/dist/src/agents/specialization-scorer.js +0 -212
  67. package/dist/src/agents/specialization-scorer.js.map +0 -1
  68. package/dist/src/agents/termination-watcher.d.ts +0 -30
  69. package/dist/src/agents/termination-watcher.d.ts.map +0 -1
  70. package/dist/src/agents/termination-watcher.js +0 -84
  71. package/dist/src/agents/termination-watcher.js.map +0 -1
  72. package/dist/src/agents/trigger-index.d.ts +0 -20
  73. package/dist/src/agents/trigger-index.d.ts.map +0 -1
  74. package/dist/src/agents/trigger-index.js +0 -38
  75. package/dist/src/agents/trigger-index.js.map +0 -1
  76. package/dist/src/agents/trigger-scanner.d.ts +0 -64
  77. package/dist/src/agents/trigger-scanner.d.ts.map +0 -1
  78. package/dist/src/agents/trigger-scanner.js +0 -308
  79. package/dist/src/agents/trigger-scanner.js.map +0 -1
  80. package/dist/src/agents/version-diff.d.ts +0 -18
  81. package/dist/src/agents/version-diff.d.ts.map +0 -1
  82. package/dist/src/agents/version-diff.js +0 -64
  83. package/dist/src/agents/version-diff.js.map +0 -1
  84. package/dist/src/agents/version-store.d.ts +0 -60
  85. package/dist/src/agents/version-store.d.ts.map +0 -1
  86. package/dist/src/agents/version-store.js +0 -235
  87. package/dist/src/agents/version-store.js.map +0 -1
  88. package/dist/src/benchmarks/pretrain/index.d.ts +0 -45
  89. package/dist/src/benchmarks/pretrain/index.d.ts.map +0 -1
  90. package/dist/src/benchmarks/pretrain/index.js +0 -404
  91. package/dist/src/benchmarks/pretrain/index.js.map +0 -1
  92. package/dist/src/commands/agent-wasm.d.ts +0 -14
  93. package/dist/src/commands/agent-wasm.d.ts.map +0 -1
  94. package/dist/src/commands/agent-wasm.js +0 -333
  95. package/dist/src/commands/agent-wasm.js.map +0 -1
  96. package/dist/src/commands/embeddings.d.ts.map +0 -1
  97. package/dist/src/commands/embeddings.js.map +0 -1
  98. package/dist/src/commands/ui.js +0 -68
  99. package/dist/src/consensus/index.d.ts +0 -7
  100. package/dist/src/consensus/index.d.ts.map +0 -1
  101. package/dist/src/consensus/index.js +0 -6
  102. package/dist/src/consensus/index.js.map +0 -1
  103. package/dist/src/context/context-provider.d.ts +0 -44
  104. package/dist/src/context/context-provider.d.ts.map +0 -1
  105. package/dist/src/context/context-provider.js +0 -25
  106. package/dist/src/context/context-provider.js.map +0 -1
  107. package/dist/src/context/git-state-provider.d.ts +0 -12
  108. package/dist/src/context/git-state-provider.d.ts.map +0 -1
  109. package/dist/src/context/git-state-provider.js +0 -34
  110. package/dist/src/context/git-state-provider.js.map +0 -1
  111. package/dist/src/context/index.d.ts +0 -12
  112. package/dist/src/context/index.d.ts.map +0 -1
  113. package/dist/src/context/index.js +0 -12
  114. package/dist/src/context/index.js.map +0 -1
  115. package/dist/src/context/project-conventions-provider.d.ts +0 -15
  116. package/dist/src/context/project-conventions-provider.d.ts.map +0 -1
  117. package/dist/src/context/project-conventions-provider.js +0 -19
  118. package/dist/src/context/project-conventions-provider.js.map +0 -1
  119. package/dist/src/context/prompt-assembler.d.ts +0 -26
  120. package/dist/src/context/prompt-assembler.d.ts.map +0 -1
  121. package/dist/src/context/prompt-assembler.js +0 -93
  122. package/dist/src/context/prompt-assembler.js.map +0 -1
  123. package/dist/src/context/task-history-provider.d.ts +0 -24
  124. package/dist/src/context/task-history-provider.d.ts.map +0 -1
  125. package/dist/src/context/task-history-provider.js +0 -32
  126. package/dist/src/context/task-history-provider.js.map +0 -1
  127. package/dist/src/context/user-preferences-provider.d.ts +0 -14
  128. package/dist/src/context/user-preferences-provider.d.ts.map +0 -1
  129. package/dist/src/context/user-preferences-provider.js +0 -27
  130. package/dist/src/context/user-preferences-provider.js.map +0 -1
  131. package/dist/src/dlq/dlq-reader.d.ts +0 -31
  132. package/dist/src/dlq/dlq-reader.d.ts.map +0 -1
  133. package/dist/src/dlq/dlq-reader.js +0 -81
  134. package/dist/src/dlq/dlq-reader.js.map +0 -1
  135. package/dist/src/dlq/dlq-writer.d.ts +0 -24
  136. package/dist/src/dlq/dlq-writer.d.ts.map +0 -1
  137. package/dist/src/dlq/dlq-writer.js +0 -65
  138. package/dist/src/dlq/dlq-writer.js.map +0 -1
  139. package/dist/src/dlq/index.d.ts +0 -10
  140. package/dist/src/dlq/index.d.ts.map +0 -1
  141. package/dist/src/dlq/index.js +0 -7
  142. package/dist/src/dlq/index.js.map +0 -1
  143. package/dist/src/eval/dataset-manager.d.ts +0 -33
  144. package/dist/src/eval/dataset-manager.d.ts.map +0 -1
  145. package/dist/src/eval/dataset-manager.js +0 -107
  146. package/dist/src/eval/dataset-manager.js.map +0 -1
  147. package/dist/src/eval/dataset-runner.d.ts +0 -23
  148. package/dist/src/eval/dataset-runner.d.ts.map +0 -1
  149. package/dist/src/eval/dataset-runner.js +0 -59
  150. package/dist/src/eval/dataset-runner.js.map +0 -1
  151. package/dist/src/eval/index.d.ts +0 -10
  152. package/dist/src/eval/index.d.ts.map +0 -1
  153. package/dist/src/eval/index.js +0 -7
  154. package/dist/src/eval/index.js.map +0 -1
  155. package/dist/src/eval/trace-collector.d.ts +0 -40
  156. package/dist/src/eval/trace-collector.d.ts.map +0 -1
  157. package/dist/src/eval/trace-collector.js +0 -102
  158. package/dist/src/eval/trace-collector.js.map +0 -1
  159. package/dist/src/graph/enrich.mjs +0 -362
  160. package/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  161. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +0 -1
  162. package/dist/src/infrastructure/in-memory-repositories.js +0 -264
  163. package/dist/src/infrastructure/in-memory-repositories.js.map +0 -1
  164. package/dist/src/interactive/interrupt.d.ts +0 -22
  165. package/dist/src/interactive/interrupt.d.ts.map +0 -1
  166. package/dist/src/interactive/interrupt.js +0 -71
  167. package/dist/src/interactive/interrupt.js.map +0 -1
  168. package/dist/src/mcp/deprecation-injector.d.ts +0 -25
  169. package/dist/src/mcp/deprecation-injector.d.ts.map +0 -1
  170. package/dist/src/mcp/deprecation-injector.js +0 -48
  171. package/dist/src/mcp/deprecation-injector.js.map +0 -1
  172. package/dist/src/mcp/tool-registry.d.ts +0 -61
  173. package/dist/src/mcp/tool-registry.d.ts.map +0 -1
  174. package/dist/src/mcp/tool-registry.js +0 -246
  175. package/dist/src/mcp/tool-registry.js.map +0 -1
  176. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -9
  177. package/dist/src/mcp-tools/wasm-agent-tools.d.ts.map +0 -1
  178. package/dist/src/mcp-tools/wasm-agent-tools.js +0 -230
  179. package/dist/src/mcp-tools/wasm-agent-tools.js.map +0 -1
  180. package/dist/src/model/complexity-scorer.d.ts +0 -21
  181. package/dist/src/model/complexity-scorer.d.ts.map +0 -1
  182. package/dist/src/model/complexity-scorer.js +0 -106
  183. package/dist/src/model/complexity-scorer.js.map +0 -1
  184. package/dist/src/model/index.d.ts +0 -4
  185. package/dist/src/model/index.d.ts.map +0 -1
  186. package/dist/src/model/index.js +0 -4
  187. package/dist/src/model/index.js.map +0 -1
  188. package/dist/src/model/model-settings.d.ts +0 -22
  189. package/dist/src/model/model-settings.d.ts.map +0 -1
  190. package/dist/src/model/model-settings.js +0 -33
  191. package/dist/src/model/model-settings.js.map +0 -1
  192. package/dist/src/model/model-tier-resolver.d.ts +0 -24
  193. package/dist/src/model/model-tier-resolver.d.ts.map +0 -1
  194. package/dist/src/model/model-tier-resolver.js +0 -65
  195. package/dist/src/model/model-tier-resolver.js.map +0 -1
  196. package/dist/src/monovector/capabilities.d.ts +0 -34
  197. package/dist/src/monovector/capabilities.d.ts.map +0 -1
  198. package/dist/src/monovector/capabilities.js +0 -37
  199. package/dist/src/monovector/capabilities.js.map +0 -1
  200. package/dist/src/orchestration/index.d.ts +0 -7
  201. package/dist/src/orchestration/index.d.ts.map +0 -1
  202. package/dist/src/orchestration/index.js +0 -6
  203. package/dist/src/orchestration/index.js.map +0 -1
  204. package/dist/src/orchestration/mode-dispatcher.d.ts +0 -11
  205. package/dist/src/orchestration/mode-dispatcher.d.ts.map +0 -1
  206. package/dist/src/orchestration/mode-dispatcher.js +0 -31
  207. package/dist/src/orchestration/mode-dispatcher.js.map +0 -1
  208. package/dist/src/orchestration/routing-modes.d.ts +0 -68
  209. package/dist/src/orchestration/routing-modes.d.ts.map +0 -1
  210. package/dist/src/orchestration/routing-modes.js +0 -180
  211. package/dist/src/orchestration/routing-modes.js.map +0 -1
  212. package/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  213. package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +0 -1
  214. package/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  215. package/dist/src/plugins/tests/demo-plugin-store.js.map +0 -1
  216. package/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  217. package/dist/src/plugins/tests/standalone-test.d.ts.map +0 -1
  218. package/dist/src/plugins/tests/standalone-test.js +0 -188
  219. package/dist/src/plugins/tests/standalone-test.js.map +0 -1
  220. package/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  221. package/dist/src/plugins/tests/test-plugin-store.d.ts.map +0 -1
  222. package/dist/src/plugins/tests/test-plugin-store.js +0 -206
  223. package/dist/src/plugins/tests/test-plugin-store.js.map +0 -1
  224. package/dist/src/runtime/headless.d.ts +0 -60
  225. package/dist/src/runtime/headless.d.ts.map +0 -1
  226. package/dist/src/runtime/headless.js +0 -284
  227. package/dist/src/runtime/headless.js.map +0 -1
  228. package/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  229. package/dist/src/services/agentic-flow-bridge.d.ts.map +0 -1
  230. package/dist/src/services/agentic-flow-bridge.js +0 -95
  231. package/dist/src/services/agentic-flow-bridge.js.map +0 -1
  232. package/dist/src/services/container-worker-pool.d.ts +0 -197
  233. package/dist/src/services/container-worker-pool.d.ts.map +0 -1
  234. package/dist/src/services/container-worker-pool.js +0 -623
  235. package/dist/src/services/container-worker-pool.js.map +0 -1
  236. package/dist/src/services/index.d.ts +0 -13
  237. package/dist/src/services/index.d.ts.map +0 -1
  238. package/dist/src/services/index.js +0 -11
  239. package/dist/src/services/index.js.map +0 -1
  240. package/dist/src/services/worker-queue.d.ts +0 -201
  241. package/dist/src/services/worker-queue.d.ts.map +0 -1
  242. package/dist/src/services/worker-queue.js +0 -594
  243. package/dist/src/services/worker-queue.js.map +0 -1
  244. package/dist/src/swarm/communication-graph.d.ts +0 -25
  245. package/dist/src/swarm/communication-graph.d.ts.map +0 -1
  246. package/dist/src/swarm/communication-graph.js +0 -77
  247. package/dist/src/swarm/communication-graph.js.map +0 -1
  248. package/dist/src/swarm/flow-enforcer.d.ts +0 -31
  249. package/dist/src/swarm/flow-enforcer.d.ts.map +0 -1
  250. package/dist/src/swarm/flow-enforcer.js +0 -61
  251. package/dist/src/swarm/flow-enforcer.js.map +0 -1
  252. package/dist/src/swarm/flow-visualizer.d.ts +0 -19
  253. package/dist/src/swarm/flow-visualizer.d.ts.map +0 -1
  254. package/dist/src/swarm/flow-visualizer.js +0 -68
  255. package/dist/src/swarm/flow-visualizer.js.map +0 -1
  256. package/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  257. package/dist/src/transfer/deploy-seraphine.d.ts.map +0 -1
  258. package/dist/src/transfer/deploy-seraphine.js +0 -205
  259. package/dist/src/transfer/deploy-seraphine.js.map +0 -1
  260. package/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  261. package/dist/src/transfer/store/tests/standalone-test.d.ts.map +0 -1
  262. package/dist/src/transfer/store/tests/standalone-test.js +0 -190
  263. package/dist/src/transfer/store/tests/standalone-test.js.map +0 -1
  264. package/dist/src/transfer/test-seraphine.d.ts +0 -6
  265. package/dist/src/transfer/test-seraphine.d.ts.map +0 -1
  266. package/dist/src/transfer/test-seraphine.js +0 -105
  267. package/dist/src/transfer/test-seraphine.js.map +0 -1
  268. package/dist/src/transfer/tests/test-store.d.ts +0 -7
  269. package/dist/src/transfer/tests/test-store.d.ts.map +0 -1
  270. package/dist/src/transfer/tests/test-store.js +0 -214
  271. package/dist/src/transfer/tests/test-store.js.map +0 -1
  272. package/dist/src/ui/.monomind/data/pending-insights.jsonl +0 -0
  273. package/dist/src/ui/.monomind/data/ranked-context.json +0 -5
  274. package/dist/src/ui/.monomind/loops/mastermind-review-1778664132789.json +0 -16
  275. package/dist/src/ui/.monomind/sessions/current.json +0 -13
  276. package/dist/src/ui/.monomind/sessions/session-1776778451399.json +0 -15
  277. package/dist/src/ui/collector.mjs +0 -646
  278. package/dist/src/ui/dashboard.html +0 -9694
  279. package/dist/src/ui/data/mastermind-events.jsonl +0 -59
  280. package/dist/src/ui/data/mastermind-sessions.json +0 -1
  281. package/dist/src/ui/orgs.html +0 -1360
  282. package/dist/src/ui/server.mjs +0 -4334
  283. package/dist/src/workflow/condition-evaluator.d.ts +0 -10
  284. package/dist/src/workflow/condition-evaluator.d.ts.map +0 -1
  285. package/dist/src/workflow/condition-evaluator.js +0 -82
  286. package/dist/src/workflow/condition-evaluator.js.map +0 -1
  287. package/dist/src/workflow/context-resolver.d.ts +0 -12
  288. package/dist/src/workflow/context-resolver.d.ts.map +0 -1
  289. package/dist/src/workflow/context-resolver.js +0 -23
  290. package/dist/src/workflow/context-resolver.js.map +0 -1
  291. package/dist/src/workflow/dag-builder.d.ts +0 -17
  292. package/dist/src/workflow/dag-builder.d.ts.map +0 -1
  293. package/dist/src/workflow/dag-builder.js +0 -129
  294. package/dist/src/workflow/dag-builder.js.map +0 -1
  295. package/dist/src/workflow/dag-executor.d.ts +0 -9
  296. package/dist/src/workflow/dag-executor.d.ts.map +0 -1
  297. package/dist/src/workflow/dag-executor.js +0 -116
  298. package/dist/src/workflow/dag-executor.js.map +0 -1
  299. package/dist/src/workflow/dag-types.d.ts +0 -41
  300. package/dist/src/workflow/dag-types.d.ts.map +0 -1
  301. package/dist/src/workflow/dag-types.js +0 -8
  302. package/dist/src/workflow/dag-types.js.map +0 -1
  303. package/dist/src/workflow/dsl-parser.d.ts +0 -12
  304. package/dist/src/workflow/dsl-parser.d.ts.map +0 -1
  305. package/dist/src/workflow/dsl-parser.js +0 -20
  306. package/dist/src/workflow/dsl-parser.js.map +0 -1
  307. package/dist/src/workflow/dsl-schema.d.ts +0 -165
  308. package/dist/src/workflow/dsl-schema.d.ts.map +0 -1
  309. package/dist/src/workflow/dsl-schema.js +0 -82
  310. package/dist/src/workflow/dsl-schema.js.map +0 -1
  311. package/dist/src/workflow/index.d.ts +0 -13
  312. package/dist/src/workflow/index.d.ts.map +0 -1
  313. package/dist/src/workflow/index.js +0 -11
  314. package/dist/src/workflow/index.js.map +0 -1
  315. package/dist/src/workflow/template-engine.d.ts +0 -11
  316. package/dist/src/workflow/template-engine.d.ts.map +0 -1
  317. package/dist/src/workflow/template-engine.js +0 -40
  318. package/dist/src/workflow/template-engine.js.map +0 -1
  319. package/dist/src/workflow/workflow-executor.d.ts +0 -29
  320. package/dist/src/workflow/workflow-executor.d.ts.map +0 -1
  321. package/dist/src/workflow/workflow-executor.js +0 -227
  322. package/dist/src/workflow/workflow-executor.js.map +0 -1
@@ -1,77 +0,0 @@
1
- /**
2
- * CommunicationGraph (Task 40)
3
- *
4
- * Directed graph of allowed agent-to-agent communication flows.
5
- * Empty flows = unrestricted (backward compatible).
6
- */
7
- export class CommunicationGraph {
8
- adjacency = new Map();
9
- reverse = new Map();
10
- edges;
11
- unrestricted;
12
- constructor(flows) {
13
- this.edges = [...flows];
14
- this.unrestricted = flows.length === 0;
15
- for (const [from, to] of flows) {
16
- if (!this.adjacency.has(from))
17
- this.adjacency.set(from, new Set());
18
- this.adjacency.get(from).add(to);
19
- if (!this.reverse.has(to))
20
- this.reverse.set(to, new Set());
21
- this.reverse.get(to).add(from);
22
- }
23
- }
24
- /** Check whether fromSlug is allowed to send to toSlug */
25
- isAuthorized(fromSlug, toSlug) {
26
- if (this.unrestricted)
27
- return true;
28
- return this.adjacency.get(fromSlug)?.has(toSlug) === true;
29
- }
30
- /** Outbound targets for a given sender */
31
- getTargets(fromSlug) {
32
- if (this.unrestricted)
33
- return [];
34
- return Array.from(this.adjacency.get(fromSlug) ?? []);
35
- }
36
- /** Inbound sources for a given receiver */
37
- getSources(toSlug) {
38
- if (this.unrestricted)
39
- return [];
40
- return Array.from(this.reverse.get(toSlug) ?? []);
41
- }
42
- /** All declared edges */
43
- allEdges() {
44
- return [...this.edges];
45
- }
46
- /** Detect cycles via DFS (returns true if at least one cycle exists) */
47
- hasCycles() {
48
- const WHITE = 0, GREY = 1, BLACK = 2;
49
- const color = new Map();
50
- // Collect all nodes
51
- const nodes = new Set();
52
- for (const [from, to] of this.edges) {
53
- nodes.add(from);
54
- nodes.add(to);
55
- }
56
- for (const n of nodes)
57
- color.set(n, WHITE);
58
- const dfs = (node) => {
59
- color.set(node, GREY);
60
- for (const neighbor of this.adjacency.get(node) ?? []) {
61
- const c = color.get(neighbor) ?? WHITE;
62
- if (c === GREY)
63
- return true;
64
- if (c === WHITE && dfs(neighbor))
65
- return true;
66
- }
67
- color.set(node, BLACK);
68
- return false;
69
- };
70
- for (const n of nodes) {
71
- if (color.get(n) === WHITE && dfs(n))
72
- return true;
73
- }
74
- return false;
75
- }
76
- }
77
- //# sourceMappingURL=communication-graph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"communication-graph.js","sourceRoot":"","sources":["../../../src/swarm/communication-graph.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * FlowEnforcer (Task 40)
3
- *
4
- * Checks messages against the communication graph and records violations.
5
- * No database dependency — violations stored in memory.
6
- */
7
- import type { FlowViolation } from '../../../shared/src/types/communication-flow.js';
8
- import type { CommunicationGraph } from './communication-graph.js';
9
- export declare class FlowEnforcer {
10
- private readonly graph;
11
- private readonly swarmId;
12
- private readonly enforce;
13
- private readonly violations;
14
- private static readonly MAX_VIOLATIONS;
15
- constructor(graph: CommunicationGraph, swarmId: string, enforceMode: boolean);
16
- /**
17
- * Check whether a message is authorized and record any violation.
18
- *
19
- * Returns BOTH `authorized` (the policy decision) and `enforced` (whether the
20
- * decision is actually applied). Callers must read both — taking action based
21
- * solely on `authorized` would let `enforce=false` silently bypass the policy.
22
- */
23
- checkAndRecord(fromSlug: string, toSlug: string, messageContent: string): {
24
- authorized: boolean;
25
- enforced: boolean;
26
- violation?: FlowViolation;
27
- };
28
- /** Return all recorded violations */
29
- getViolations(): FlowViolation[];
30
- }
31
- //# sourceMappingURL=flow-enforcer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-enforcer.d.ts","sourceRoot":"","sources":["../../../src/swarm/flow-enforcer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAQ;gBAElC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;IAM5E;;;;;;OAMG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GACrB;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,aAAa,CAAA;KAAE;IAkCxE,qCAAqC;IACrC,aAAa,IAAI,aAAa,EAAE;CAGjC"}
@@ -1,61 +0,0 @@
1
- /**
2
- * FlowEnforcer (Task 40)
3
- *
4
- * Checks messages against the communication graph and records violations.
5
- * No database dependency — violations stored in memory.
6
- */
7
- import { randomUUID } from 'crypto';
8
- export class FlowEnforcer {
9
- graph;
10
- swarmId;
11
- enforce;
12
- violations = [];
13
- static MAX_VIOLATIONS = 1000;
14
- constructor(graph, swarmId, enforceMode) {
15
- this.graph = graph;
16
- this.swarmId = swarmId;
17
- this.enforce = enforceMode;
18
- }
19
- /**
20
- * Check whether a message is authorized and record any violation.
21
- *
22
- * Returns BOTH `authorized` (the policy decision) and `enforced` (whether the
23
- * decision is actually applied). Callers must read both — taking action based
24
- * solely on `authorized` would let `enforce=false` silently bypass the policy.
25
- */
26
- checkAndRecord(fromSlug, toSlug, messageContent) {
27
- if (this.graph.isAuthorized(fromSlug, toSlug)) {
28
- return { authorized: true, enforced: this.enforce };
29
- }
30
- const violation = {
31
- violationId: randomUUID(),
32
- swarmId: this.swarmId,
33
- fromAgentSlug: fromSlug,
34
- toAgentSlug: toSlug,
35
- // Truncated preview only; for sensitive traffic, redact via a hook before
36
- // it reaches this enforcer. Cap means an attacker can't fill memory with
37
- // long messages either.
38
- messagePreview: messageContent.slice(0, 120),
39
- detectedAt: new Date().toISOString(),
40
- action: this.enforce ? 'blocked' : 'logged',
41
- };
42
- // FIFO eviction so a sustained attack can't grow violations to GB-scale.
43
- if (this.violations.length >= FlowEnforcer.MAX_VIOLATIONS) {
44
- this.violations.shift();
45
- }
46
- this.violations.push(violation);
47
- return {
48
- // Policy decision: NOT authorized. Whether the caller blocks the send is
49
- // governed by `enforced`, which is exposed separately so callers cannot
50
- // accidentally treat audit-mode as "permitted".
51
- authorized: false,
52
- enforced: this.enforce,
53
- violation,
54
- };
55
- }
56
- /** Return all recorded violations */
57
- getViolations() {
58
- return [...this.violations];
59
- }
60
- }
61
- //# sourceMappingURL=flow-enforcer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-enforcer.js","sourceRoot":"","sources":["../../../src/swarm/flow-enforcer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIpC,MAAM,OAAO,YAAY;IACN,KAAK,CAAqB;IAC1B,OAAO,CAAS;IAChB,OAAO,CAAU;IACjB,UAAU,GAAoB,EAAE,CAAC;IAC1C,MAAM,CAAU,cAAc,GAAG,IAAI,CAAC;IAE9C,YAAY,KAAyB,EAAE,OAAe,EAAE,WAAoB;QAC1E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CACZ,QAAgB,EAChB,MAAc,EACd,cAAsB;QAEtB,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;QAED,MAAM,SAAS,GAAkB;YAC/B,WAAW,EAAE,UAAU,EAAE;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,QAAQ;YACvB,WAAW,EAAE,MAAM;YACnB,0EAA0E;YAC1E,yEAAyE;YACzE,wBAAwB;YACxB,cAAc,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAC5C,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;SAC5C,CAAC;QAEF,yEAAyE;QACzE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhC,OAAO;YACL,yEAAyE;YACzE,wEAAwE;YACxE,gDAAgD;YAChD,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,SAAS;SACV,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Flow Visualizer (Task 40)
3
- *
4
- * ASCII and DOT (Graphviz) renderers for communication flow edges.
5
- */
6
- import type { FlowEdge } from '../../../shared/src/types/communication-flow.js';
7
- /**
8
- * Render edges as human-readable ASCII art.
9
- * Empty edges produce a single-line "unrestricted" notice.
10
- */
11
- export declare function toAscii(edges: FlowEdge[], title?: string): string;
12
- /**
13
- * Render edges as a DOT language digraph (Graphviz compatible).
14
- * Slugs are escaped so a malicious slug cannot inject DOT attributes
15
- * (e.g., URL="javascript:..." would be rendered as a clickable link
16
- * by Graphviz's SVG output without escaping).
17
- */
18
- export declare function toDOT(edges: FlowEdge[], graphName?: string): string;
19
- //# sourceMappingURL=flow-visualizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-visualizer.d.ts","sourceRoot":"","sources":["../../../src/swarm/flow-visualizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iDAAiD,CAAC;AAmBhF;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAsBjE;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAsBnE"}
@@ -1,68 +0,0 @@
1
- /**
2
- * Flow Visualizer (Task 40)
3
- *
4
- * ASCII and DOT (Graphviz) renderers for communication flow edges.
5
- */
6
- /** Escape a slug for safe DOT identifier interpolation. */
7
- function dotEscape(s) {
8
- return String(s ?? '').replace(/\\/g, '\\\\').replace(/"/g, '\\"');
9
- }
10
- /** Strip newlines/CR for safe ASCII line emission (log-injection defense). */
11
- function asciiSafe(s) {
12
- return String(s ?? '').replace(/[\r\n\x00-\x1f\x7f]/g, '?');
13
- }
14
- /** Restrict graph names to a safe DOT identifier — graph_name must be an ID. */
15
- function safeGraphName(name) {
16
- return /^[a-zA-Z_][a-zA-Z0-9_]{0,63}$/.test(name) ? name : 'swarm_flow';
17
- }
18
- const MAX_DISPLAY_EDGES = 500;
19
- /**
20
- * Render edges as human-readable ASCII art.
21
- * Empty edges produce a single-line "unrestricted" notice.
22
- */
23
- export function toAscii(edges, title) {
24
- const lines = [];
25
- if (title) {
26
- lines.push(`=== ${asciiSafe(title)} ===`);
27
- lines.push('');
28
- }
29
- if (edges.length === 0) {
30
- lines.push('(unrestricted — all agents may communicate freely)');
31
- return lines.join('\n');
32
- }
33
- const capped = edges.slice(0, MAX_DISPLAY_EDGES);
34
- for (const [from, to] of capped) {
35
- lines.push(` ${asciiSafe(from)} --> ${asciiSafe(to)}`);
36
- }
37
- if (edges.length > MAX_DISPLAY_EDGES) {
38
- lines.push(` ... (${edges.length - MAX_DISPLAY_EDGES} more edges omitted)`);
39
- }
40
- return lines.join('\n');
41
- }
42
- /**
43
- * Render edges as a DOT language digraph (Graphviz compatible).
44
- * Slugs are escaped so a malicious slug cannot inject DOT attributes
45
- * (e.g., URL="javascript:..." would be rendered as a clickable link
46
- * by Graphviz's SVG output without escaping).
47
- */
48
- export function toDOT(edges, graphName) {
49
- const name = safeGraphName(graphName ?? 'swarm_flow');
50
- const lines = [];
51
- lines.push(`digraph ${name} {`);
52
- lines.push(' rankdir=LR;');
53
- if (edges.length === 0) {
54
- lines.push(' // unrestricted — no explicit edges');
55
- }
56
- else {
57
- const capped = edges.slice(0, MAX_DISPLAY_EDGES);
58
- for (const [from, to] of capped) {
59
- lines.push(` "${dotEscape(from)}" -> "${dotEscape(to)}";`);
60
- }
61
- if (edges.length > MAX_DISPLAY_EDGES) {
62
- lines.push(` // ... (${edges.length - MAX_DISPLAY_EDGES} more edges omitted)`);
63
- }
64
- }
65
- lines.push('}');
66
- return lines.join('\n');
67
- }
68
- //# sourceMappingURL=flow-visualizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-visualizer.js","sourceRoot":"","sources":["../../../src/swarm/flow-visualizer.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- /**
3
- * Deploy Seraphine Genesis Model
4
- * Exports and uploads the first Monomind pattern model to IPFS
5
- *
6
- * Usage:
7
- * npx tsx deploy-seraphine.ts
8
- * npx tsx deploy-seraphine.ts --output ./patterns/
9
- * npx tsx deploy-seraphine.ts --to-ipfs
10
- * npx tsx deploy-seraphine.ts --to-ipfs --anonymize strict
11
- */
12
- export {};
13
- //# sourceMappingURL=deploy-seraphine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy-seraphine.d.ts","sourceRoot":"","sources":["../../../src/transfer/deploy-seraphine.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}
@@ -1,205 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- /**
3
- * Deploy Seraphine Genesis Model
4
- * Exports and uploads the first Monomind pattern model to IPFS
5
- *
6
- * Usage:
7
- * npx tsx deploy-seraphine.ts
8
- * npx tsx deploy-seraphine.ts --output ./patterns/
9
- * npx tsx deploy-seraphine.ts --to-ipfs
10
- * npx tsx deploy-seraphine.ts --to-ipfs --anonymize strict
11
- */
12
- import * as path from 'path';
13
- import { fileURLToPath } from 'url';
14
- const __filename = fileURLToPath(import.meta.url);
15
- const __dirname = path.dirname(__filename);
16
- import { createSeraphineGenesis, getSeraphineInfo } from './models/seraphine.js';
17
- import { exportPatterns } from './export.js';
18
- import { validateCFP } from './serialization/cfp.js';
19
- import { scanCFPForPII } from './anonymization/index.js';
20
- /**
21
- * Parse CLI arguments
22
- */
23
- function parseArgs() {
24
- const args = process.argv.slice(2);
25
- const options = {
26
- toIpfs: false,
27
- anonymize: 'standard',
28
- pin: true,
29
- gateway: 'https://w3s.link',
30
- validate: true,
31
- verbose: false,
32
- };
33
- for (let i = 0; i < args.length; i++) {
34
- const arg = args[i];
35
- switch (arg) {
36
- case '--output':
37
- case '-o':
38
- options.output = args[++i];
39
- break;
40
- case '--to-ipfs':
41
- case '--ipfs':
42
- options.toIpfs = true;
43
- break;
44
- case '--anonymize':
45
- case '-a':
46
- options.anonymize = args[++i];
47
- break;
48
- case '--no-pin':
49
- options.pin = false;
50
- break;
51
- case '--gateway':
52
- case '-g':
53
- options.gateway = args[++i];
54
- break;
55
- case '--no-validate':
56
- options.validate = false;
57
- break;
58
- case '--verbose':
59
- case '-v':
60
- options.verbose = true;
61
- break;
62
- case '--help':
63
- case '-h':
64
- printHelp();
65
- process.exit(0);
66
- }
67
- }
68
- return options;
69
- }
70
- /**
71
- * Print help message
72
- */
73
- function printHelp() {
74
- console.log(`
75
- Seraphine Genesis Deployer
76
- ==========================
77
-
78
- Deploy the foundational Monomind pattern model.
79
-
80
- Usage:
81
- npx ts-node deploy-seraphine.ts [options]
82
-
83
- Options:
84
- --output, -o <path> Output file path
85
- --to-ipfs, --ipfs Upload to IPFS
86
- --anonymize, -a <level> Anonymization level (minimal|standard|strict|paranoid)
87
- --gateway, -g <url> IPFS gateway URL
88
- --no-pin Don't pin to pinning service
89
- --no-validate Skip validation
90
- --verbose, -v Verbose output
91
- --help, -h Show this help
92
-
93
- Examples:
94
- npx ts-node deploy-seraphine.ts --output ./seraphine-genesis.cfp.json
95
- npx ts-node deploy-seraphine.ts --to-ipfs --anonymize strict
96
- npx ts-node deploy-seraphine.ts --to-ipfs --gateway https://dweb.link
97
- `);
98
- }
99
- /**
100
- * Main deploy function
101
- */
102
- async function deploy() {
103
- const options = parseArgs();
104
- console.log('');
105
- console.log('╔══════════════════════════════════════════════════════════╗');
106
- console.log('║ SERAPHINE GENESIS MODEL DEPLOYMENT ║');
107
- console.log('║ The First Monomind Pattern Model ║');
108
- console.log('╚══════════════════════════════════════════════════════════╝');
109
- console.log('');
110
- // Step 1: Create Seraphine Genesis
111
- console.log('📦 Creating Seraphine Genesis Model...');
112
- const genesis = createSeraphineGenesis();
113
- const info = getSeraphineInfo();
114
- console.log(` Name: ${info.name}`);
115
- console.log(` Version: ${info.version}`);
116
- console.log(` Description: ${info.description.slice(0, 60)}...`);
117
- console.log('');
118
- console.log(' Pattern Counts:');
119
- for (const [type, count] of Object.entries(info.patternCounts)) {
120
- console.log(` - ${type}: ${count}`);
121
- }
122
- console.log('');
123
- // Step 2: Validate
124
- if (options.validate) {
125
- console.log('✅ Validating CFP format...');
126
- const validation = validateCFP(genesis);
127
- if (!validation.valid) {
128
- console.error('❌ Validation failed:');
129
- for (const error of validation.errors) {
130
- console.error(` - ${error}`);
131
- }
132
- process.exit(1);
133
- }
134
- console.log(' Format is valid!');
135
- console.log('');
136
- }
137
- // Step 3: Scan for PII
138
- console.log('🔍 Scanning for PII...');
139
- const piiScan = scanCFPForPII(genesis);
140
- if (piiScan.found) {
141
- console.log(` Found ${piiScan.count} PII items:`);
142
- for (const [type, count] of Object.entries(piiScan.types)) {
143
- console.log(` - ${type}: ${count}`);
144
- }
145
- console.log(' Will be redacted during export.');
146
- }
147
- else {
148
- console.log(' No PII detected!');
149
- }
150
- console.log('');
151
- // Step 4: Export
152
- console.log(`📤 Exporting with ${options.anonymize} anonymization...`);
153
- const exportOptions = {
154
- output: options.output,
155
- toIpfs: options.toIpfs,
156
- anonymize: options.anonymize,
157
- pin: options.pin,
158
- gateway: options.gateway,
159
- format: 'json',
160
- redactPii: true,
161
- };
162
- // If no output specified and not uploading to IPFS, create default output
163
- if (!options.output && !options.toIpfs) {
164
- const defaultOutput = path.join(process.cwd(), 'seraphine-genesis.cfp.json');
165
- exportOptions.output = defaultOutput;
166
- }
167
- const result = await exportPatterns(genesis, exportOptions);
168
- console.log('');
169
- console.log('═══════════════════════════════════════════════════════════');
170
- console.log(' DEPLOYMENT COMPLETE ');
171
- console.log('═══════════════════════════════════════════════════════════');
172
- console.log('');
173
- if (result.success) {
174
- console.log('✅ Successfully deployed Seraphine Genesis!');
175
- console.log('');
176
- console.log(' 📊 Export Summary:');
177
- console.log(` Patterns: ${result.patternCount}`);
178
- console.log(` Size: ${result.size} bytes`);
179
- console.log(` Anonymization: ${result.anonymizationLevel}`);
180
- if (result.outputPath) {
181
- console.log('');
182
- console.log(` 📁 File: ${result.outputPath}`);
183
- }
184
- if (result.cid) {
185
- console.log('');
186
- console.log(' 🌐 IPFS:');
187
- console.log(` CID: ${result.cid}`);
188
- console.log(` Gateway URL: ${result.gateway}/ipfs/${result.cid}`);
189
- }
190
- console.log('');
191
- console.log(' 🎉 Hello World! The genesis pattern has been deployed.');
192
- console.log(' 🌟 This is the first Monomind pattern ever shared.');
193
- console.log('');
194
- }
195
- else {
196
- console.error('❌ Deployment failed!');
197
- process.exit(1);
198
- }
199
- }
200
- // Run if executed directly
201
- deploy().catch(error => {
202
- console.error('Fatal error:', error);
203
- process.exit(1);
204
- });
205
- //# sourceMappingURL=deploy-seraphine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy-seraphine.js","sourceRoot":"","sources":["../../../src/transfer/deploy-seraphine.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- /**
3
- * Standalone Pattern Store Test
4
- * Run this in any environment to verify the IPFS-based pattern store works
5
- *
6
- * Usage:
7
- * npx tsx standalone-test.ts
8
- * # or
9
- * npm run test:pattern-store
10
- */
11
- export {};
12
- //# sourceMappingURL=standalone-test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"standalone-test.d.ts","sourceRoot":"","sources":["../../../../../src/transfer/store/tests/standalone-test.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}