@monoes/monomindcli 1.11.11 → 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 (316) 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/autodev.md +1 -1
  5. package/.claude/skills/mastermind/build.md +3 -3
  6. package/.claude/skills/mastermind/content.md +3 -3
  7. package/.claude/skills/mastermind/createorg.md +2 -2
  8. package/.claude/skills/mastermind/finance.md +3 -3
  9. package/.claude/skills/mastermind/marketing.md +3 -3
  10. package/.claude/skills/mastermind/ops.md +3 -3
  11. package/.claude/skills/mastermind/release.md +3 -3
  12. package/.claude/skills/mastermind/research.md +3 -3
  13. package/.claude/skills/mastermind/review.md +3 -3
  14. package/.claude/skills/mastermind/sales.md +3 -3
  15. package/dist/src/init/statusline-generator.js +3 -3
  16. package/dist/src/observability/replay-reader.d.ts +1 -1
  17. package/dist/src/observability/replay-reader.d.ts.map +1 -1
  18. package/dist/src/update/checker.d.ts.map +1 -1
  19. package/dist/src/update/checker.js +24 -7
  20. package/dist/src/update/checker.js.map +1 -1
  21. package/dist/src/update/index.d.ts.map +1 -1
  22. package/dist/src/update/index.js +3 -6
  23. package/dist/src/update/index.js.map +1 -1
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/package.json +1 -1
  26. package/dist/src/agents/halt-signal.d.ts +0 -25
  27. package/dist/src/agents/halt-signal.d.ts.map +0 -1
  28. package/dist/src/agents/halt-signal.js +0 -76
  29. package/dist/src/agents/halt-signal.js.map +0 -1
  30. package/dist/src/agents/index.d.ts +0 -18
  31. package/dist/src/agents/index.d.ts.map +0 -1
  32. package/dist/src/agents/index.js +0 -13
  33. package/dist/src/agents/index.js.map +0 -1
  34. package/dist/src/agents/managed-agent.d.ts +0 -41
  35. package/dist/src/agents/managed-agent.d.ts.map +0 -1
  36. package/dist/src/agents/managed-agent.js +0 -69
  37. package/dist/src/agents/managed-agent.js.map +0 -1
  38. package/dist/src/agents/prompt-experiment.d.ts +0 -23
  39. package/dist/src/agents/prompt-experiment.d.ts.map +0 -1
  40. package/dist/src/agents/prompt-experiment.js +0 -49
  41. package/dist/src/agents/prompt-experiment.js.map +0 -1
  42. package/dist/src/agents/prompt-version-manager.d.ts +0 -22
  43. package/dist/src/agents/prompt-version-manager.d.ts.map +0 -1
  44. package/dist/src/agents/prompt-version-manager.js +0 -80
  45. package/dist/src/agents/prompt-version-manager.js.map +0 -1
  46. package/dist/src/agents/registry-query.d.ts +0 -71
  47. package/dist/src/agents/registry-query.d.ts.map +0 -1
  48. package/dist/src/agents/registry-query.js +0 -125
  49. package/dist/src/agents/registry-query.js.map +0 -1
  50. package/dist/src/agents/score-decay.d.ts +0 -19
  51. package/dist/src/agents/score-decay.d.ts.map +0 -1
  52. package/dist/src/agents/score-decay.js +0 -22
  53. package/dist/src/agents/score-decay.js.map +0 -1
  54. package/dist/src/agents/shared-instructions-loader.d.ts +0 -13
  55. package/dist/src/agents/shared-instructions-loader.d.ts.map +0 -1
  56. package/dist/src/agents/shared-instructions-loader.js +0 -40
  57. package/dist/src/agents/shared-instructions-loader.js.map +0 -1
  58. package/dist/src/agents/specialization-scorer.d.ts +0 -54
  59. package/dist/src/agents/specialization-scorer.d.ts.map +0 -1
  60. package/dist/src/agents/specialization-scorer.js +0 -212
  61. package/dist/src/agents/specialization-scorer.js.map +0 -1
  62. package/dist/src/agents/termination-watcher.d.ts +0 -30
  63. package/dist/src/agents/termination-watcher.d.ts.map +0 -1
  64. package/dist/src/agents/termination-watcher.js +0 -84
  65. package/dist/src/agents/termination-watcher.js.map +0 -1
  66. package/dist/src/agents/trigger-index.d.ts +0 -20
  67. package/dist/src/agents/trigger-index.d.ts.map +0 -1
  68. package/dist/src/agents/trigger-index.js +0 -38
  69. package/dist/src/agents/trigger-index.js.map +0 -1
  70. package/dist/src/agents/trigger-scanner.d.ts +0 -64
  71. package/dist/src/agents/trigger-scanner.d.ts.map +0 -1
  72. package/dist/src/agents/trigger-scanner.js +0 -308
  73. package/dist/src/agents/trigger-scanner.js.map +0 -1
  74. package/dist/src/agents/version-diff.d.ts +0 -18
  75. package/dist/src/agents/version-diff.d.ts.map +0 -1
  76. package/dist/src/agents/version-diff.js +0 -64
  77. package/dist/src/agents/version-diff.js.map +0 -1
  78. package/dist/src/agents/version-store.d.ts +0 -60
  79. package/dist/src/agents/version-store.d.ts.map +0 -1
  80. package/dist/src/agents/version-store.js +0 -235
  81. package/dist/src/agents/version-store.js.map +0 -1
  82. package/dist/src/benchmarks/pretrain/index.d.ts +0 -45
  83. package/dist/src/benchmarks/pretrain/index.d.ts.map +0 -1
  84. package/dist/src/benchmarks/pretrain/index.js +0 -404
  85. package/dist/src/benchmarks/pretrain/index.js.map +0 -1
  86. package/dist/src/commands/agent-wasm.d.ts +0 -14
  87. package/dist/src/commands/agent-wasm.d.ts.map +0 -1
  88. package/dist/src/commands/agent-wasm.js +0 -333
  89. package/dist/src/commands/agent-wasm.js.map +0 -1
  90. package/dist/src/commands/embeddings.d.ts.map +0 -1
  91. package/dist/src/commands/embeddings.js.map +0 -1
  92. package/dist/src/commands/ui.js +0 -68
  93. package/dist/src/consensus/index.d.ts +0 -7
  94. package/dist/src/consensus/index.d.ts.map +0 -1
  95. package/dist/src/consensus/index.js +0 -6
  96. package/dist/src/consensus/index.js.map +0 -1
  97. package/dist/src/context/context-provider.d.ts +0 -44
  98. package/dist/src/context/context-provider.d.ts.map +0 -1
  99. package/dist/src/context/context-provider.js +0 -25
  100. package/dist/src/context/context-provider.js.map +0 -1
  101. package/dist/src/context/git-state-provider.d.ts +0 -12
  102. package/dist/src/context/git-state-provider.d.ts.map +0 -1
  103. package/dist/src/context/git-state-provider.js +0 -34
  104. package/dist/src/context/git-state-provider.js.map +0 -1
  105. package/dist/src/context/index.d.ts +0 -12
  106. package/dist/src/context/index.d.ts.map +0 -1
  107. package/dist/src/context/index.js +0 -12
  108. package/dist/src/context/index.js.map +0 -1
  109. package/dist/src/context/project-conventions-provider.d.ts +0 -15
  110. package/dist/src/context/project-conventions-provider.d.ts.map +0 -1
  111. package/dist/src/context/project-conventions-provider.js +0 -19
  112. package/dist/src/context/project-conventions-provider.js.map +0 -1
  113. package/dist/src/context/prompt-assembler.d.ts +0 -26
  114. package/dist/src/context/prompt-assembler.d.ts.map +0 -1
  115. package/dist/src/context/prompt-assembler.js +0 -93
  116. package/dist/src/context/prompt-assembler.js.map +0 -1
  117. package/dist/src/context/task-history-provider.d.ts +0 -24
  118. package/dist/src/context/task-history-provider.d.ts.map +0 -1
  119. package/dist/src/context/task-history-provider.js +0 -32
  120. package/dist/src/context/task-history-provider.js.map +0 -1
  121. package/dist/src/context/user-preferences-provider.d.ts +0 -14
  122. package/dist/src/context/user-preferences-provider.d.ts.map +0 -1
  123. package/dist/src/context/user-preferences-provider.js +0 -27
  124. package/dist/src/context/user-preferences-provider.js.map +0 -1
  125. package/dist/src/dlq/dlq-reader.d.ts +0 -31
  126. package/dist/src/dlq/dlq-reader.d.ts.map +0 -1
  127. package/dist/src/dlq/dlq-reader.js +0 -81
  128. package/dist/src/dlq/dlq-reader.js.map +0 -1
  129. package/dist/src/dlq/dlq-writer.d.ts +0 -24
  130. package/dist/src/dlq/dlq-writer.d.ts.map +0 -1
  131. package/dist/src/dlq/dlq-writer.js +0 -65
  132. package/dist/src/dlq/dlq-writer.js.map +0 -1
  133. package/dist/src/dlq/index.d.ts +0 -10
  134. package/dist/src/dlq/index.d.ts.map +0 -1
  135. package/dist/src/dlq/index.js +0 -7
  136. package/dist/src/dlq/index.js.map +0 -1
  137. package/dist/src/eval/dataset-manager.d.ts +0 -33
  138. package/dist/src/eval/dataset-manager.d.ts.map +0 -1
  139. package/dist/src/eval/dataset-manager.js +0 -107
  140. package/dist/src/eval/dataset-manager.js.map +0 -1
  141. package/dist/src/eval/dataset-runner.d.ts +0 -23
  142. package/dist/src/eval/dataset-runner.d.ts.map +0 -1
  143. package/dist/src/eval/dataset-runner.js +0 -59
  144. package/dist/src/eval/dataset-runner.js.map +0 -1
  145. package/dist/src/eval/index.d.ts +0 -10
  146. package/dist/src/eval/index.d.ts.map +0 -1
  147. package/dist/src/eval/index.js +0 -7
  148. package/dist/src/eval/index.js.map +0 -1
  149. package/dist/src/eval/trace-collector.d.ts +0 -40
  150. package/dist/src/eval/trace-collector.d.ts.map +0 -1
  151. package/dist/src/eval/trace-collector.js +0 -102
  152. package/dist/src/eval/trace-collector.js.map +0 -1
  153. package/dist/src/graph/enrich.mjs +0 -362
  154. package/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  155. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +0 -1
  156. package/dist/src/infrastructure/in-memory-repositories.js +0 -264
  157. package/dist/src/infrastructure/in-memory-repositories.js.map +0 -1
  158. package/dist/src/interactive/interrupt.d.ts +0 -22
  159. package/dist/src/interactive/interrupt.d.ts.map +0 -1
  160. package/dist/src/interactive/interrupt.js +0 -71
  161. package/dist/src/interactive/interrupt.js.map +0 -1
  162. package/dist/src/mcp/deprecation-injector.d.ts +0 -25
  163. package/dist/src/mcp/deprecation-injector.d.ts.map +0 -1
  164. package/dist/src/mcp/deprecation-injector.js +0 -48
  165. package/dist/src/mcp/deprecation-injector.js.map +0 -1
  166. package/dist/src/mcp/tool-registry.d.ts +0 -61
  167. package/dist/src/mcp/tool-registry.d.ts.map +0 -1
  168. package/dist/src/mcp/tool-registry.js +0 -246
  169. package/dist/src/mcp/tool-registry.js.map +0 -1
  170. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -9
  171. package/dist/src/mcp-tools/wasm-agent-tools.d.ts.map +0 -1
  172. package/dist/src/mcp-tools/wasm-agent-tools.js +0 -230
  173. package/dist/src/mcp-tools/wasm-agent-tools.js.map +0 -1
  174. package/dist/src/model/complexity-scorer.d.ts +0 -21
  175. package/dist/src/model/complexity-scorer.d.ts.map +0 -1
  176. package/dist/src/model/complexity-scorer.js +0 -106
  177. package/dist/src/model/complexity-scorer.js.map +0 -1
  178. package/dist/src/model/index.d.ts +0 -4
  179. package/dist/src/model/index.d.ts.map +0 -1
  180. package/dist/src/model/index.js +0 -4
  181. package/dist/src/model/index.js.map +0 -1
  182. package/dist/src/model/model-settings.d.ts +0 -22
  183. package/dist/src/model/model-settings.d.ts.map +0 -1
  184. package/dist/src/model/model-settings.js +0 -33
  185. package/dist/src/model/model-settings.js.map +0 -1
  186. package/dist/src/model/model-tier-resolver.d.ts +0 -24
  187. package/dist/src/model/model-tier-resolver.d.ts.map +0 -1
  188. package/dist/src/model/model-tier-resolver.js +0 -65
  189. package/dist/src/model/model-tier-resolver.js.map +0 -1
  190. package/dist/src/monovector/capabilities.d.ts +0 -34
  191. package/dist/src/monovector/capabilities.d.ts.map +0 -1
  192. package/dist/src/monovector/capabilities.js +0 -37
  193. package/dist/src/monovector/capabilities.js.map +0 -1
  194. package/dist/src/orchestration/index.d.ts +0 -7
  195. package/dist/src/orchestration/index.d.ts.map +0 -1
  196. package/dist/src/orchestration/index.js +0 -6
  197. package/dist/src/orchestration/index.js.map +0 -1
  198. package/dist/src/orchestration/mode-dispatcher.d.ts +0 -11
  199. package/dist/src/orchestration/mode-dispatcher.d.ts.map +0 -1
  200. package/dist/src/orchestration/mode-dispatcher.js +0 -31
  201. package/dist/src/orchestration/mode-dispatcher.js.map +0 -1
  202. package/dist/src/orchestration/routing-modes.d.ts +0 -68
  203. package/dist/src/orchestration/routing-modes.d.ts.map +0 -1
  204. package/dist/src/orchestration/routing-modes.js +0 -180
  205. package/dist/src/orchestration/routing-modes.js.map +0 -1
  206. package/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  207. package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +0 -1
  208. package/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  209. package/dist/src/plugins/tests/demo-plugin-store.js.map +0 -1
  210. package/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  211. package/dist/src/plugins/tests/standalone-test.d.ts.map +0 -1
  212. package/dist/src/plugins/tests/standalone-test.js +0 -188
  213. package/dist/src/plugins/tests/standalone-test.js.map +0 -1
  214. package/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  215. package/dist/src/plugins/tests/test-plugin-store.d.ts.map +0 -1
  216. package/dist/src/plugins/tests/test-plugin-store.js +0 -206
  217. package/dist/src/plugins/tests/test-plugin-store.js.map +0 -1
  218. package/dist/src/runtime/headless.d.ts +0 -60
  219. package/dist/src/runtime/headless.d.ts.map +0 -1
  220. package/dist/src/runtime/headless.js +0 -284
  221. package/dist/src/runtime/headless.js.map +0 -1
  222. package/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  223. package/dist/src/services/agentic-flow-bridge.d.ts.map +0 -1
  224. package/dist/src/services/agentic-flow-bridge.js +0 -95
  225. package/dist/src/services/agentic-flow-bridge.js.map +0 -1
  226. package/dist/src/services/container-worker-pool.d.ts +0 -197
  227. package/dist/src/services/container-worker-pool.d.ts.map +0 -1
  228. package/dist/src/services/container-worker-pool.js +0 -623
  229. package/dist/src/services/container-worker-pool.js.map +0 -1
  230. package/dist/src/services/index.d.ts +0 -13
  231. package/dist/src/services/index.d.ts.map +0 -1
  232. package/dist/src/services/index.js +0 -11
  233. package/dist/src/services/index.js.map +0 -1
  234. package/dist/src/services/worker-queue.d.ts +0 -201
  235. package/dist/src/services/worker-queue.d.ts.map +0 -1
  236. package/dist/src/services/worker-queue.js +0 -594
  237. package/dist/src/services/worker-queue.js.map +0 -1
  238. package/dist/src/swarm/communication-graph.d.ts +0 -25
  239. package/dist/src/swarm/communication-graph.d.ts.map +0 -1
  240. package/dist/src/swarm/communication-graph.js +0 -77
  241. package/dist/src/swarm/communication-graph.js.map +0 -1
  242. package/dist/src/swarm/flow-enforcer.d.ts +0 -31
  243. package/dist/src/swarm/flow-enforcer.d.ts.map +0 -1
  244. package/dist/src/swarm/flow-enforcer.js +0 -61
  245. package/dist/src/swarm/flow-enforcer.js.map +0 -1
  246. package/dist/src/swarm/flow-visualizer.d.ts +0 -19
  247. package/dist/src/swarm/flow-visualizer.d.ts.map +0 -1
  248. package/dist/src/swarm/flow-visualizer.js +0 -68
  249. package/dist/src/swarm/flow-visualizer.js.map +0 -1
  250. package/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  251. package/dist/src/transfer/deploy-seraphine.d.ts.map +0 -1
  252. package/dist/src/transfer/deploy-seraphine.js +0 -205
  253. package/dist/src/transfer/deploy-seraphine.js.map +0 -1
  254. package/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  255. package/dist/src/transfer/store/tests/standalone-test.d.ts.map +0 -1
  256. package/dist/src/transfer/store/tests/standalone-test.js +0 -190
  257. package/dist/src/transfer/store/tests/standalone-test.js.map +0 -1
  258. package/dist/src/transfer/test-seraphine.d.ts +0 -6
  259. package/dist/src/transfer/test-seraphine.d.ts.map +0 -1
  260. package/dist/src/transfer/test-seraphine.js +0 -105
  261. package/dist/src/transfer/test-seraphine.js.map +0 -1
  262. package/dist/src/transfer/tests/test-store.d.ts +0 -7
  263. package/dist/src/transfer/tests/test-store.d.ts.map +0 -1
  264. package/dist/src/transfer/tests/test-store.js +0 -214
  265. package/dist/src/transfer/tests/test-store.js.map +0 -1
  266. package/dist/src/ui/.monomind/data/pending-insights.jsonl +0 -0
  267. package/dist/src/ui/.monomind/data/ranked-context.json +0 -5
  268. package/dist/src/ui/.monomind/loops/mastermind-review-1778664132789.json +0 -16
  269. package/dist/src/ui/.monomind/sessions/current.json +0 -13
  270. package/dist/src/ui/.monomind/sessions/session-1776778451399.json +0 -15
  271. package/dist/src/ui/collector.mjs +0 -646
  272. package/dist/src/ui/dashboard.html +0 -9694
  273. package/dist/src/ui/data/mastermind-events.jsonl +0 -59
  274. package/dist/src/ui/data/mastermind-sessions.json +0 -1
  275. package/dist/src/ui/orgs.html +0 -1360
  276. package/dist/src/ui/server.mjs +0 -4334
  277. package/dist/src/workflow/condition-evaluator.d.ts +0 -10
  278. package/dist/src/workflow/condition-evaluator.d.ts.map +0 -1
  279. package/dist/src/workflow/condition-evaluator.js +0 -82
  280. package/dist/src/workflow/condition-evaluator.js.map +0 -1
  281. package/dist/src/workflow/context-resolver.d.ts +0 -12
  282. package/dist/src/workflow/context-resolver.d.ts.map +0 -1
  283. package/dist/src/workflow/context-resolver.js +0 -23
  284. package/dist/src/workflow/context-resolver.js.map +0 -1
  285. package/dist/src/workflow/dag-builder.d.ts +0 -17
  286. package/dist/src/workflow/dag-builder.d.ts.map +0 -1
  287. package/dist/src/workflow/dag-builder.js +0 -129
  288. package/dist/src/workflow/dag-builder.js.map +0 -1
  289. package/dist/src/workflow/dag-executor.d.ts +0 -9
  290. package/dist/src/workflow/dag-executor.d.ts.map +0 -1
  291. package/dist/src/workflow/dag-executor.js +0 -116
  292. package/dist/src/workflow/dag-executor.js.map +0 -1
  293. package/dist/src/workflow/dag-types.d.ts +0 -41
  294. package/dist/src/workflow/dag-types.d.ts.map +0 -1
  295. package/dist/src/workflow/dag-types.js +0 -8
  296. package/dist/src/workflow/dag-types.js.map +0 -1
  297. package/dist/src/workflow/dsl-parser.d.ts +0 -12
  298. package/dist/src/workflow/dsl-parser.d.ts.map +0 -1
  299. package/dist/src/workflow/dsl-parser.js +0 -20
  300. package/dist/src/workflow/dsl-parser.js.map +0 -1
  301. package/dist/src/workflow/dsl-schema.d.ts +0 -165
  302. package/dist/src/workflow/dsl-schema.d.ts.map +0 -1
  303. package/dist/src/workflow/dsl-schema.js +0 -82
  304. package/dist/src/workflow/dsl-schema.js.map +0 -1
  305. package/dist/src/workflow/index.d.ts +0 -13
  306. package/dist/src/workflow/index.d.ts.map +0 -1
  307. package/dist/src/workflow/index.js +0 -11
  308. package/dist/src/workflow/index.js.map +0 -1
  309. package/dist/src/workflow/template-engine.d.ts +0 -11
  310. package/dist/src/workflow/template-engine.d.ts.map +0 -1
  311. package/dist/src/workflow/template-engine.js +0 -40
  312. package/dist/src/workflow/template-engine.js.map +0 -1
  313. package/dist/src/workflow/workflow-executor.d.ts +0 -29
  314. package/dist/src/workflow/workflow-executor.d.ts.map +0 -1
  315. package/dist/src/workflow/workflow-executor.js +0 -227
  316. 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"}