@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,10 +0,0 @@
1
- /**
2
- * Evaluate a simple boolean expression with variable substitution.
3
- *
4
- * 1. Replace `{{variable}}` references using the provided context.
5
- * 2. Reject any expression containing dangerous patterns.
6
- * 3. Validate that all remaining tokens are safe.
7
- * 4. Evaluate using `new Function` with strict mode.
8
- */
9
- export declare function evaluateCondition(expression: string, context: Record<string, unknown>): boolean;
10
- //# sourceMappingURL=condition-evaluator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"condition-evaluator.d.ts","sourceRoot":"","sources":["../../../src/workflow/condition-evaluator.ts"],"names":[],"mappings":"AAsDA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAiCT"}
@@ -1,82 +0,0 @@
1
- /**
2
- * Substitute context values into a condition expression, JSON-encoding string
3
- * values to prevent quote injection via user-controlled context data.
4
- */
5
- function substituteCondition(expression, context) {
6
- return expression.replace(/\{\{([\w./-]+)\}\}/g, (_match, path) => {
7
- const segments = path.split('.');
8
- let current = context;
9
- for (const seg of segments) {
10
- if (current === null || current === undefined || typeof current !== 'object') {
11
- current = undefined;
12
- break;
13
- }
14
- if (seg === '__proto__' || seg === 'constructor' || seg === 'prototype') {
15
- current = undefined;
16
- break;
17
- }
18
- current = current[seg];
19
- }
20
- if (current === undefined)
21
- return `{{${path}}}`;
22
- if (typeof current === 'string')
23
- return JSON.stringify(current);
24
- if (typeof current === 'number' || typeof current === 'boolean')
25
- return String(current);
26
- return JSON.stringify(current);
27
- });
28
- }
29
- /**
30
- * Dangerous patterns that must never appear in condition expressions.
31
- */
32
- const DANGEROUS_PATTERNS = [
33
- /\beval\b/,
34
- /\brequire\b/,
35
- /\bimport\b/,
36
- /\bprocess\b/,
37
- /\bglobal\b/,
38
- /\bglobalThis\b/,
39
- /\bFunction\b/,
40
- /\b__proto__\b/,
41
- /\bconstructor\b/,
42
- /\bprototype\b/,
43
- ];
44
- /**
45
- * Allowed token pattern — only permits strings, numbers, booleans,
46
- * comparison/logical operators, parentheses, and whitespace.
47
- */
48
- const SAFE_TOKEN = /^(\s*('([^']*)'|"([^"]*)"|-?\d+(\.\d+)?|true|false|null|undefined|===|!==|==|!=|>=|<=|>|<|&&|\|\||!|\(|\)|\s+))+\s*$/;
49
- /**
50
- * Evaluate a simple boolean expression with variable substitution.
51
- *
52
- * 1. Replace `{{variable}}` references using the provided context.
53
- * 2. Reject any expression containing dangerous patterns.
54
- * 3. Validate that all remaining tokens are safe.
55
- * 4. Evaluate using `new Function` with strict mode.
56
- */
57
- export function evaluateCondition(expression, context) {
58
- if (expression.length > 500) {
59
- throw new Error('Condition expression too long (max 500 characters)');
60
- }
61
- // Step 1: substitute variables (string values JSON-encoded to prevent quote injection)
62
- const resolved = substituteCondition(expression, context);
63
- // Re-check length after substitution — injected values can expand the expression
64
- if (resolved.length > 500) {
65
- throw new Error('Condition expression too long after variable substitution (max 500 characters)');
66
- }
67
- // Step 2: reject dangerous patterns
68
- for (const pattern of DANGEROUS_PATTERNS) {
69
- if (pattern.test(resolved)) {
70
- throw new Error(`Unsafe expression rejected: contains forbidden pattern "${pattern.source}"`);
71
- }
72
- }
73
- // Step 3: validate tokens
74
- if (!SAFE_TOKEN.test(resolved)) {
75
- throw new Error(`Unsafe expression rejected: contains disallowed tokens in "${resolved}"`);
76
- }
77
- // Step 4: evaluate safely
78
- // eslint-disable-next-line @typescript-eslint/no-implied-eval
79
- const fn = new Function(`"use strict"; return (${resolved});`);
80
- return Boolean(fn());
81
- }
82
- //# sourceMappingURL=condition-evaluator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"condition-evaluator.js","sourceRoot":"","sources":["../../../src/workflow/condition-evaluator.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,UAAkB,EAClB,OAAgC;IAEhC,OAAO,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,OAAO,GAAY,OAAO,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC7E,OAAO,GAAG,SAAS,CAAC;gBACpB,MAAM;YACR,CAAC;YACD,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBACxE,OAAO,GAAG,SAAS,CAAC;gBACpB,MAAM;YACR,CAAC;YACD,OAAO,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,KAAK,IAAI,IAAI,CAAC;QAChD,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,kBAAkB,GAAG;IACzB,UAAU;IACV,aAAa;IACb,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,eAAe;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,GACd,sHAAsH,CAAC;AAEzH;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,OAAgC;IAEhC,IAAI,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,uFAAuF;IACvF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAE1D,iFAAiF;IACjF,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IAED,oCAAoC;IACpC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,2DAA2D,OAAO,CAAC,MAAM,GAAG,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,8DAA8D,QAAQ,GAAG,CAC1E,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,8DAA8D;IAC9D,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,yBAAyB,QAAQ,IAAI,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { DAGTask, TaskResult } from './dag-types.js';
2
- export declare class ContextResolutionError extends Error {
3
- readonly taskId: string;
4
- readonly missingDeps: string[];
5
- constructor(taskId: string, missingDeps: string[]);
6
- }
7
- /**
8
- * Resolves upstream context for a task by collecting results from its dependencies.
9
- * Throws ContextResolutionError if any dependency result is missing.
10
- */
11
- export declare function resolveContext(task: DAGTask, results: Map<string, TaskResult>): TaskResult[];
12
- //# sourceMappingURL=context-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-resolver.d.ts","sourceRoot":"","sources":["../../../src/workflow/context-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE1D,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,MAAM,EAAE,MAAM;aACd,WAAW,EAAE,MAAM,EAAE;gBADrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EAAE;CAOxC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAC/B,UAAU,EAAE,CASd"}
@@ -1,23 +0,0 @@
1
- export class ContextResolutionError extends Error {
2
- taskId;
3
- missingDeps;
4
- constructor(taskId, missingDeps) {
5
- super(`Task "${taskId}" has unresolved dependencies: ${missingDeps.join(', ')}`);
6
- this.taskId = taskId;
7
- this.missingDeps = missingDeps;
8
- this.name = 'ContextResolutionError';
9
- }
10
- }
11
- /**
12
- * Resolves upstream context for a task by collecting results from its dependencies.
13
- * Throws ContextResolutionError if any dependency result is missing.
14
- */
15
- export function resolveContext(task, results) {
16
- const deps = task.contextDeps ?? [];
17
- const missing = deps.filter((dep) => !results.has(dep));
18
- if (missing.length > 0) {
19
- throw new ContextResolutionError(task.id, missing);
20
- }
21
- return deps.map((dep) => results.get(dep));
22
- }
23
- //# sourceMappingURL=context-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-resolver.js","sourceRoot":"","sources":["../../../src/workflow/context-resolver.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE7B;IACA;IAFlB,YACkB,MAAc,EACd,WAAqB;QAErC,KAAK,CACH,SAAS,MAAM,kCAAkC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1E,CAAC;QALc,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAU;QAKrC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAa,EACb,OAAgC;IAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAExD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,17 +0,0 @@
1
- import type { DAG, DAGTask, DAGLevel } from './dag-types.js';
2
- /**
3
- * Builds a DAG from an array of tasks using their contextDeps.
4
- * Throws if any task references a dependency that doesn't exist.
5
- */
6
- export declare function buildDAG(tasks: DAGTask[]): DAG;
7
- /**
8
- * Detects cycles in the DAG using DFS.
9
- * Returns an array of cycles, where each cycle is an array of task IDs.
10
- */
11
- export declare function detectCycles(dag: DAG): string[][];
12
- /**
13
- * Performs topological sort using Kahn's algorithm.
14
- * Returns levels (arrays of tasks that can execute in parallel).
15
- */
16
- export declare function topologicalSort(dag: DAG): DAGLevel[];
17
- //# sourceMappingURL=dag-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dag-builder.d.ts","sourceRoot":"","sources":["../../../src/workflow/dag-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,GAAG,CA4B9C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,EAAE,CAkEjD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,EAAE,CAyCpD"}
@@ -1,129 +0,0 @@
1
- /**
2
- * Builds a DAG from an array of tasks using their contextDeps.
3
- * Throws if any task references a dependency that doesn't exist.
4
- */
5
- export function buildDAG(tasks) {
6
- const taskMap = new Map();
7
- const edges = new Map();
8
- const reverseEdges = new Map();
9
- // Register all tasks
10
- for (const task of tasks) {
11
- taskMap.set(task.id, task);
12
- edges.set(task.id, new Set());
13
- reverseEdges.set(task.id, new Set());
14
- }
15
- // Build edges from contextDeps
16
- for (const task of tasks) {
17
- const deps = task.contextDeps ?? [];
18
- for (const dep of deps) {
19
- if (!taskMap.has(dep)) {
20
- throw new Error(`Task "${task.id}" depends on "${dep}" which does not exist in the task list`);
21
- }
22
- // dep → task (dep is upstream, task is downstream)
23
- edges.get(dep).add(task.id);
24
- reverseEdges.get(task.id).add(dep);
25
- }
26
- }
27
- return { tasks: taskMap, edges, reverseEdges };
28
- }
29
- /**
30
- * Detects cycles in the DAG using DFS.
31
- * Returns an array of cycles, where each cycle is an array of task IDs.
32
- */
33
- export function detectCycles(dag) {
34
- const WHITE = 0; // unvisited
35
- const GRAY = 1; // in current DFS path
36
- const BLACK = 2; // fully processed
37
- const color = new Map();
38
- const parent = new Map();
39
- const cycles = [];
40
- for (const id of dag.tasks.keys()) {
41
- color.set(id, WHITE);
42
- parent.set(id, null);
43
- }
44
- // Iterative DFS to avoid call-stack overflow on deep linear DAGs
45
- function dfs(start) {
46
- const stack = [
47
- { u: start, neighbors: (dag.edges.get(start) ?? new Set()).values(), entered: false },
48
- ];
49
- while (stack.length > 0) {
50
- const frame = stack[stack.length - 1];
51
- if (!frame.entered) {
52
- frame.entered = true;
53
- color.set(frame.u, GRAY);
54
- }
55
- const { value: v, done } = frame.neighbors.next();
56
- if (done) {
57
- color.set(frame.u, BLACK);
58
- stack.pop();
59
- continue;
60
- }
61
- const vColor = color.get(v);
62
- if (vColor === GRAY) {
63
- // Found a cycle — reconstruct it
64
- const cycle = [v];
65
- let curr = frame.u;
66
- while (curr !== v) {
67
- cycle.push(curr);
68
- const next = parent.get(curr);
69
- if (next == null)
70
- break;
71
- curr = next;
72
- }
73
- cycle.push(v);
74
- cycle.reverse();
75
- cycles.push(cycle);
76
- }
77
- else if (vColor === WHITE) {
78
- parent.set(v, frame.u);
79
- stack.push({ u: v, neighbors: (dag.edges.get(v) ?? new Set()).values(), entered: false });
80
- }
81
- }
82
- }
83
- for (const id of dag.tasks.keys()) {
84
- if (color.get(id) === WHITE) {
85
- dfs(id);
86
- }
87
- }
88
- return cycles;
89
- }
90
- /**
91
- * Performs topological sort using Kahn's algorithm.
92
- * Returns levels (arrays of tasks that can execute in parallel).
93
- */
94
- export function topologicalSort(dag) {
95
- if (dag.tasks.size === 0)
96
- return [];
97
- // Compute in-degree for each node
98
- const inDegree = new Map();
99
- for (const id of dag.tasks.keys()) {
100
- inDegree.set(id, (dag.reverseEdges.get(id) ?? new Set()).size);
101
- }
102
- // Start with nodes that have no dependencies
103
- let currentLevel = [];
104
- for (const [id, deg] of inDegree) {
105
- if (deg === 0) {
106
- currentLevel.push(id);
107
- }
108
- }
109
- const levels = [];
110
- while (currentLevel.length > 0) {
111
- // Resolve current level tasks
112
- const levelTasks = currentLevel.map(id => dag.tasks.get(id));
113
- levels.push(levelTasks);
114
- const nextLevel = [];
115
- for (const id of currentLevel) {
116
- const dependents = dag.edges.get(id) ?? new Set();
117
- for (const dep of dependents) {
118
- const newDeg = inDegree.get(dep) - 1;
119
- inDegree.set(dep, newDeg);
120
- if (newDeg === 0) {
121
- nextLevel.push(dep);
122
- }
123
- }
124
- }
125
- currentLevel = nextLevel;
126
- }
127
- return levels;
128
- }
129
- //# sourceMappingURL=dag-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dag-builder.js","sourceRoot":"","sources":["../../../src/workflow/dag-builder.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { DAGTask, TaskResult } from './dag-types.js';
2
- export type TaskRunner = (task: DAGTask, upstreamContext: TaskResult[]) => Promise<TaskResult>;
3
- export declare class DAGExecutor {
4
- private readonly runner;
5
- constructor(runner: TaskRunner);
6
- execute(tasks: DAGTask[]): Promise<Map<string, TaskResult>>;
7
- private runWithRetry;
8
- }
9
- //# sourceMappingURL=dag-executor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dag-executor.d.ts","sourceRoot":"","sources":["../../../src/workflow/dag-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAyB,MAAM,gBAAgB,CAAC;AAajF,MAAM,MAAM,UAAU,GAAG,CACvB,IAAI,EAAE,OAAO,EACb,eAAe,EAAE,UAAU,EAAE,KAC1B,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzB,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEzC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAiEnD,YAAY;CAmD3B"}
@@ -1,116 +0,0 @@
1
- import { buildDAG, detectCycles, topologicalSort } from './dag-builder.js';
2
- import { resolveContext } from './context-resolver.js';
3
- import { getMonitor } from '../production/monitoring.js';
4
- function classifyError(err) {
5
- const msg = err.message.toLowerCase();
6
- if (msg.includes('rate limit') || msg.includes('429') || msg.includes('too many requests'))
7
- return 'RATE_LIMIT';
8
- if (msg.includes('timed out') || msg.includes('timeout'))
9
- return 'TIMEOUT';
10
- if (msg.includes('validation') || msg.includes('invalid') || msg.includes('schema'))
11
- return 'VALIDATION';
12
- return 'UNKNOWN';
13
- }
14
- export class DAGExecutor {
15
- runner;
16
- constructor(runner) {
17
- this.runner = runner;
18
- }
19
- async execute(tasks) {
20
- const dag = buildDAG(tasks);
21
- const cycles = detectCycles(dag);
22
- if (cycles.length > 0) {
23
- throw new Error(`Cycle detected in task DAG: ${cycles[0].join(' → ')}`);
24
- }
25
- const levels = topologicalSort(dag);
26
- const results = new Map();
27
- for (const level of levels) {
28
- const levelResults = await Promise.all(level.map(async (task) => {
29
- const context = resolveContext(task, results);
30
- const timeoutMs = task.timeoutMs ?? 300_000;
31
- let timeoutHandle;
32
- const timeoutPromise = new Promise((_, reject) => {
33
- timeoutHandle = setTimeout(() => reject(new Error(`Task "${task.id}" timed out after ${timeoutMs}ms`)), timeoutMs);
34
- });
35
- const result = await Promise.race([
36
- this.runWithRetry(task, context),
37
- timeoutPromise,
38
- ]).finally(() => {
39
- if (timeoutHandle)
40
- clearTimeout(timeoutHandle);
41
- }).catch((err) => {
42
- const isTimeout = String(err).includes('timed out');
43
- if (isTimeout) {
44
- // Visible in monomind control — leaked task still running in background
45
- getMonitor().counter('dag.task.timeout_leak', 1, {
46
- taskId: task.id,
47
- agentSlug: task.agentSlug,
48
- });
49
- }
50
- return {
51
- taskId: task.id,
52
- agentSlug: task.agentSlug,
53
- output: null,
54
- outputRaw: '',
55
- latencyMs: 0,
56
- retryCount: 0,
57
- completedAt: Date.now(),
58
- status: isTimeout ? 'timeout' : 'error',
59
- error: String(err),
60
- };
61
- });
62
- return result;
63
- }));
64
- for (const result of levelResults) {
65
- results.set(result.taskId, result);
66
- }
67
- }
68
- return results;
69
- }
70
- async runWithRetry(task, context) {
71
- const policy = task.retryPolicy ?? {
72
- maxAttempts: 1,
73
- initialDelayMs: 0,
74
- backoffMultiplier: 1,
75
- jitterMs: 0,
76
- retryOn: [],
77
- };
78
- let lastError;
79
- let actualAttempts = 0;
80
- for (let attempt = 0; attempt < policy.maxAttempts; attempt++) {
81
- actualAttempts = attempt + 1;
82
- try {
83
- return await this.runner(task, context);
84
- }
85
- catch (err) {
86
- lastError = err;
87
- // If retryOn is non-empty, check whether this error category matches.
88
- // Unmatched errors consume the attempt but do not get retried further.
89
- if (policy.retryOn.length > 0) {
90
- const category = classifyError(lastError);
91
- if (!policy.retryOn.includes(category)) {
92
- break;
93
- }
94
- }
95
- if (attempt < policy.maxAttempts - 1) {
96
- const delay = policy.initialDelayMs *
97
- Math.pow(policy.backoffMultiplier, attempt) +
98
- Math.random() * policy.jitterMs;
99
- await new Promise((r) => setTimeout(r, delay));
100
- }
101
- }
102
- }
103
- return {
104
- taskId: task.id,
105
- agentSlug: task.agentSlug,
106
- output: null,
107
- outputRaw: '',
108
- latencyMs: 0,
109
- retryCount: actualAttempts,
110
- completedAt: Date.now(),
111
- status: 'error',
112
- error: lastError?.message ?? 'Unknown error',
113
- };
114
- }
115
- }
116
- //# sourceMappingURL=dag-executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dag-executor.js","sourceRoot":"","sources":["../../../src/workflow/dag-executor.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- export interface RetryPolicy {
2
- maxAttempts: number;
3
- initialDelayMs: number;
4
- backoffMultiplier: number;
5
- jitterMs: number;
6
- retryOn: Array<'RATE_LIMIT' | 'TIMEOUT' | 'VALIDATION' | 'UNKNOWN'>;
7
- }
8
- export declare const DEFAULT_RETRY_POLICY: RetryPolicy;
9
- export interface DAGTask {
10
- id: string;
11
- description: string;
12
- agentSlug: string;
13
- contextDeps?: string[];
14
- outputSchema?: string;
15
- timeoutMs?: number;
16
- retryPolicy?: RetryPolicy;
17
- priority?: 'low' | 'normal' | 'high' | 'critical';
18
- config?: Record<string, unknown>;
19
- }
20
- export interface TaskResult {
21
- taskId: string;
22
- agentSlug: string;
23
- output: unknown;
24
- outputRaw: string;
25
- tokenUsage?: {
26
- input: number;
27
- output: number;
28
- };
29
- latencyMs: number;
30
- retryCount: number;
31
- completedAt: number;
32
- status: 'success' | 'error' | 'timeout';
33
- error?: string;
34
- }
35
- export type DAGLevel = DAGTask[];
36
- export interface DAG {
37
- tasks: Map<string, DAGTask>;
38
- edges: Map<string, Set<string>>;
39
- reverseEdges: Map<string, Set<string>>;
40
- }
41
- //# sourceMappingURL=dag-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dag-types.d.ts","sourceRoot":"","sources":["../../../src/workflow/dag-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;CACrE;AAED,eAAO,MAAM,oBAAoB,EAAE,WAMlC,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;AAEjC,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACxC"}
@@ -1,8 +0,0 @@
1
- export const DEFAULT_RETRY_POLICY = {
2
- maxAttempts: 3,
3
- initialDelayMs: 1000,
4
- backoffMultiplier: 2.0,
5
- jitterMs: 500,
6
- retryOn: ['RATE_LIMIT', 'TIMEOUT'],
7
- };
8
- //# sourceMappingURL=dag-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dag-types.js","sourceRoot":"","sources":["../../../src/workflow/dag-types.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,GAAG;IACtB,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;CACnC,CAAC"}
@@ -1,12 +0,0 @@
1
- import { type WorkflowDefinition } from './dsl-schema.js';
2
- export declare class DSLParser {
3
- /**
4
- * Load and validate a workflow definition from a YAML or JSON file.
5
- */
6
- static loadFromFile(filePath: string): WorkflowDefinition;
7
- /**
8
- * Validate an unknown object against the workflow definition schema.
9
- */
10
- static loadFromObject(raw: unknown): WorkflowDefinition;
11
- }
12
- //# sourceMappingURL=dsl-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dsl-parser.d.ts","sourceRoot":"","sources":["../../../src/workflow/dsl-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,qBAAa,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB;IAMzD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB;CAGxD"}
@@ -1,20 +0,0 @@
1
- import { readFileSync } from 'node:fs';
2
- import YAML from 'yaml';
3
- import { workflowDefinitionSchema, } from './dsl-schema.js';
4
- export class DSLParser {
5
- /**
6
- * Load and validate a workflow definition from a YAML or JSON file.
7
- */
8
- static loadFromFile(filePath) {
9
- const raw = readFileSync(filePath, 'utf-8');
10
- const parsed = filePath.endsWith('.json') ? JSON.parse(raw) : YAML.parse(raw);
11
- return DSLParser.loadFromObject(parsed);
12
- }
13
- /**
14
- * Validate an unknown object against the workflow definition schema.
15
- */
16
- static loadFromObject(raw) {
17
- return workflowDefinitionSchema.parse(raw);
18
- }
19
- }
20
- //# sourceMappingURL=dsl-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dsl-parser.js","sourceRoot":"","sources":["../../../src/workflow/dsl-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,wBAAwB,GAEzB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAgB;QAClC,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,GAAY;QAChC,OAAO,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;CACF"}