beddel 0.2.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (542) hide show
  1. package/README.md +138 -595
  2. package/dist/client.d.ts +10 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +9 -0
  5. package/dist/core/parser.d.ts +25 -0
  6. package/dist/core/parser.d.ts.map +1 -0
  7. package/dist/core/parser.js +31 -0
  8. package/dist/core/variable-resolver.d.ts +23 -0
  9. package/dist/core/variable-resolver.d.ts.map +1 -0
  10. package/dist/core/variable-resolver.js +98 -0
  11. package/dist/core/workflow.d.ts +39 -0
  12. package/dist/core/workflow.d.ts.map +1 -0
  13. package/dist/core/workflow.js +64 -0
  14. package/dist/index.d.ts +14 -36
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +15 -130
  17. package/dist/primitives/index.d.ts +37 -0
  18. package/dist/primitives/index.d.ts.map +1 -0
  19. package/dist/primitives/index.js +72 -0
  20. package/dist/primitives/llm.d.ts +56 -0
  21. package/dist/primitives/llm.d.ts.map +1 -0
  22. package/dist/primitives/llm.js +156 -0
  23. package/dist/primitives/output.d.ts +28 -0
  24. package/dist/primitives/output.d.ts.map +1 -0
  25. package/dist/primitives/output.js +39 -0
  26. package/dist/server/handler.d.ts +7 -0
  27. package/dist/server/handler.d.ts.map +1 -0
  28. package/dist/server/handler.js +55 -0
  29. package/dist/server.d.ts +10 -0
  30. package/dist/server.d.ts.map +1 -0
  31. package/dist/server.js +9 -0
  32. package/dist/tools/index.d.ts +49 -0
  33. package/dist/tools/index.d.ts.map +1 -0
  34. package/dist/tools/index.js +96 -0
  35. package/dist/types/index.d.ts +54 -0
  36. package/dist/types/index.d.ts.map +1 -0
  37. package/dist/types/index.js +5 -0
  38. package/docs/architecture/api-reference.md +307 -0
  39. package/docs/architecture/components.md +246 -0
  40. package/docs/architecture/core-workflows.md +236 -0
  41. package/docs/architecture/high-level-architecture.md +76 -0
  42. package/docs/architecture/index.md +31 -0
  43. package/docs/architecture/source-tree.md +92 -0
  44. package/docs/architecture/tech-stack.md +25 -0
  45. package/docs/prd/epic-list.md +101 -0
  46. package/docs/prd/goals-context.md +23 -0
  47. package/docs/prd/index.md +21 -0
  48. package/docs/prd/requirements.md +25 -0
  49. package/docs/prd/technical-assumptions.md +35 -0
  50. package/package.json +31 -118
  51. package/src/client.ts +18 -0
  52. package/src/core/parser.ts +36 -0
  53. package/src/core/variable-resolver.ts +114 -0
  54. package/src/core/workflow.ts +77 -0
  55. package/src/index.ts +25 -159
  56. package/src/primitives/index.ts +83 -0
  57. package/src/primitives/llm.ts +210 -0
  58. package/src/primitives/output.ts +65 -0
  59. package/src/server/handler.ts +80 -0
  60. package/src/server.ts +10 -0
  61. package/src/tools/index.ts +118 -0
  62. package/src/types/index.ts +62 -0
  63. package/tsconfig.json +27 -0
  64. package/CHANGELOG.md +0 -78
  65. package/LICENSE +0 -21
  66. package/dist/agents/chat/chat.handler.d.ts +0 -12
  67. package/dist/agents/chat/chat.handler.d.ts.map +0 -1
  68. package/dist/agents/chat/chat.handler.js +0 -143
  69. package/dist/agents/chat/chat.handler.js.map +0 -1
  70. package/dist/agents/chat/chat.schema.d.ts +0 -38
  71. package/dist/agents/chat/chat.schema.d.ts.map +0 -1
  72. package/dist/agents/chat/chat.schema.js +0 -31
  73. package/dist/agents/chat/chat.schema.js.map +0 -1
  74. package/dist/agents/chat/chat.types.d.ts +0 -42
  75. package/dist/agents/chat/chat.types.d.ts.map +0 -1
  76. package/dist/agents/chat/chat.types.js +0 -6
  77. package/dist/agents/chat/chat.types.js.map +0 -1
  78. package/dist/agents/chat/chat.yaml +0 -150
  79. package/dist/agents/chat/index.d.ts +0 -16
  80. package/dist/agents/chat/index.d.ts.map +0 -1
  81. package/dist/agents/chat/index.js +0 -21
  82. package/dist/agents/chat/index.js.map +0 -1
  83. package/dist/agents/chromadb/chromadb.handler.d.ts +0 -12
  84. package/dist/agents/chromadb/chromadb.handler.d.ts.map +0 -1
  85. package/dist/agents/chromadb/chromadb.handler.js +0 -139
  86. package/dist/agents/chromadb/chromadb.handler.js.map +0 -1
  87. package/dist/agents/chromadb/chromadb.schema.d.ts +0 -36
  88. package/dist/agents/chromadb/chromadb.schema.d.ts.map +0 -1
  89. package/dist/agents/chromadb/chromadb.schema.js +0 -33
  90. package/dist/agents/chromadb/chromadb.schema.js.map +0 -1
  91. package/dist/agents/chromadb/chromadb.types.d.ts +0 -49
  92. package/dist/agents/chromadb/chromadb.types.d.ts.map +0 -1
  93. package/dist/agents/chromadb/chromadb.types.js +0 -6
  94. package/dist/agents/chromadb/chromadb.types.js.map +0 -1
  95. package/dist/agents/chromadb/chromadb.yaml +0 -128
  96. package/dist/agents/chromadb/index.d.ts +0 -15
  97. package/dist/agents/chromadb/index.d.ts.map +0 -1
  98. package/dist/agents/chromadb/index.js +0 -20
  99. package/dist/agents/chromadb/index.js.map +0 -1
  100. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.d.ts +0 -8
  101. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.d.ts.map +0 -1
  102. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.js +0 -58
  103. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.js.map +0 -1
  104. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.d.ts +0 -22
  105. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.d.ts.map +0 -1
  106. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.js +0 -20
  107. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.js.map +0 -1
  108. package/dist/agents/gemini-vectorize/gemini-vectorize.types.d.ts +0 -32
  109. package/dist/agents/gemini-vectorize/gemini-vectorize.types.d.ts.map +0 -1
  110. package/dist/agents/gemini-vectorize/gemini-vectorize.types.js +0 -6
  111. package/dist/agents/gemini-vectorize/gemini-vectorize.types.js.map +0 -1
  112. package/dist/agents/gemini-vectorize/gemini-vectorize.yaml +0 -84
  113. package/dist/agents/gemini-vectorize/index.d.ts +0 -15
  114. package/dist/agents/gemini-vectorize/index.d.ts.map +0 -1
  115. package/dist/agents/gemini-vectorize/index.js +0 -20
  116. package/dist/agents/gemini-vectorize/index.js.map +0 -1
  117. package/dist/agents/gitmcp/gitmcp.handler.d.ts +0 -12
  118. package/dist/agents/gitmcp/gitmcp.handler.d.ts.map +0 -1
  119. package/dist/agents/gitmcp/gitmcp.handler.js +0 -95
  120. package/dist/agents/gitmcp/gitmcp.handler.js.map +0 -1
  121. package/dist/agents/gitmcp/gitmcp.schema.d.ts +0 -17
  122. package/dist/agents/gitmcp/gitmcp.schema.d.ts.map +0 -1
  123. package/dist/agents/gitmcp/gitmcp.schema.js +0 -18
  124. package/dist/agents/gitmcp/gitmcp.schema.js.map +0 -1
  125. package/dist/agents/gitmcp/gitmcp.types.d.ts +0 -31
  126. package/dist/agents/gitmcp/gitmcp.types.d.ts.map +0 -1
  127. package/dist/agents/gitmcp/gitmcp.types.js +0 -6
  128. package/dist/agents/gitmcp/gitmcp.types.js.map +0 -1
  129. package/dist/agents/gitmcp/gitmcp.yaml +0 -71
  130. package/dist/agents/gitmcp/index.d.ts +0 -16
  131. package/dist/agents/gitmcp/index.d.ts.map +0 -1
  132. package/dist/agents/gitmcp/index.js +0 -21
  133. package/dist/agents/gitmcp/index.js.map +0 -1
  134. package/dist/agents/image/image.handler.d.ts +0 -8
  135. package/dist/agents/image/image.handler.d.ts.map +0 -1
  136. package/dist/agents/image/image.handler.js +0 -66
  137. package/dist/agents/image/image.handler.js.map +0 -1
  138. package/dist/agents/image/image.schema.d.ts +0 -29
  139. package/dist/agents/image/image.schema.d.ts.map +0 -1
  140. package/dist/agents/image/image.schema.js +0 -26
  141. package/dist/agents/image/image.schema.js.map +0 -1
  142. package/dist/agents/image/image.types.d.ts +0 -42
  143. package/dist/agents/image/image.types.d.ts.map +0 -1
  144. package/dist/agents/image/image.types.js +0 -6
  145. package/dist/agents/image/image.types.js.map +0 -1
  146. package/dist/agents/image/image.yaml +0 -86
  147. package/dist/agents/image/index.d.ts +0 -14
  148. package/dist/agents/image/index.d.ts.map +0 -1
  149. package/dist/agents/image/index.js +0 -19
  150. package/dist/agents/image/index.js.map +0 -1
  151. package/dist/agents/index.d.ts +0 -95
  152. package/dist/agents/index.d.ts.map +0 -1
  153. package/dist/agents/index.js +0 -76
  154. package/dist/agents/index.js.map +0 -1
  155. package/dist/agents/joker/index.d.ts +0 -14
  156. package/dist/agents/joker/index.d.ts.map +0 -1
  157. package/dist/agents/joker/index.js +0 -19
  158. package/dist/agents/joker/index.js.map +0 -1
  159. package/dist/agents/joker/joker.handler.d.ts +0 -8
  160. package/dist/agents/joker/joker.handler.d.ts.map +0 -1
  161. package/dist/agents/joker/joker.handler.js +0 -48
  162. package/dist/agents/joker/joker.handler.js.map +0 -1
  163. package/dist/agents/joker/joker.schema.d.ts +0 -12
  164. package/dist/agents/joker/joker.schema.d.ts.map +0 -1
  165. package/dist/agents/joker/joker.schema.js +0 -13
  166. package/dist/agents/joker/joker.schema.js.map +0 -1
  167. package/dist/agents/joker/joker.types.d.ts +0 -35
  168. package/dist/agents/joker/joker.types.d.ts.map +0 -1
  169. package/dist/agents/joker/joker.types.js +0 -6
  170. package/dist/agents/joker/joker.types.js.map +0 -1
  171. package/dist/agents/joker/joker.yaml +0 -47
  172. package/dist/agents/mcp-tool/index.d.ts +0 -14
  173. package/dist/agents/mcp-tool/index.d.ts.map +0 -1
  174. package/dist/agents/mcp-tool/index.js +0 -19
  175. package/dist/agents/mcp-tool/index.js.map +0 -1
  176. package/dist/agents/mcp-tool/mcp-tool.handler.d.ts +0 -12
  177. package/dist/agents/mcp-tool/mcp-tool.handler.d.ts.map +0 -1
  178. package/dist/agents/mcp-tool/mcp-tool.handler.js +0 -116
  179. package/dist/agents/mcp-tool/mcp-tool.handler.js.map +0 -1
  180. package/dist/agents/mcp-tool/mcp-tool.schema.d.ts +0 -19
  181. package/dist/agents/mcp-tool/mcp-tool.schema.d.ts.map +0 -1
  182. package/dist/agents/mcp-tool/mcp-tool.schema.js +0 -20
  183. package/dist/agents/mcp-tool/mcp-tool.schema.js.map +0 -1
  184. package/dist/agents/mcp-tool/mcp-tool.types.d.ts +0 -31
  185. package/dist/agents/mcp-tool/mcp-tool.types.d.ts.map +0 -1
  186. package/dist/agents/mcp-tool/mcp-tool.types.js +0 -6
  187. package/dist/agents/mcp-tool/mcp-tool.types.js.map +0 -1
  188. package/dist/agents/mcp-tool/mcp-tool.yaml +0 -71
  189. package/dist/agents/rag/index.d.ts +0 -15
  190. package/dist/agents/rag/index.d.ts.map +0 -1
  191. package/dist/agents/rag/index.js +0 -20
  192. package/dist/agents/rag/index.js.map +0 -1
  193. package/dist/agents/rag/rag.handler.d.ts +0 -8
  194. package/dist/agents/rag/rag.handler.d.ts.map +0 -1
  195. package/dist/agents/rag/rag.handler.js +0 -101
  196. package/dist/agents/rag/rag.handler.js.map +0 -1
  197. package/dist/agents/rag/rag.schema.d.ts +0 -27
  198. package/dist/agents/rag/rag.schema.d.ts.map +0 -1
  199. package/dist/agents/rag/rag.schema.js +0 -24
  200. package/dist/agents/rag/rag.schema.js.map +0 -1
  201. package/dist/agents/rag/rag.types.d.ts +0 -47
  202. package/dist/agents/rag/rag.types.d.ts.map +0 -1
  203. package/dist/agents/rag/rag.types.js +0 -6
  204. package/dist/agents/rag/rag.types.js.map +0 -1
  205. package/dist/agents/rag/rag.yaml +0 -89
  206. package/dist/agents/registry/agentRegistry.d.ts +0 -117
  207. package/dist/agents/registry/agentRegistry.d.ts.map +0 -1
  208. package/dist/agents/registry/agentRegistry.js +0 -551
  209. package/dist/agents/registry/agentRegistry.js.map +0 -1
  210. package/dist/agents/registry/index.d.ts +0 -6
  211. package/dist/agents/registry/index.d.ts.map +0 -1
  212. package/dist/agents/registry/index.js +0 -10
  213. package/dist/agents/registry/index.js.map +0 -1
  214. package/dist/agents/translator/index.d.ts +0 -14
  215. package/dist/agents/translator/index.d.ts.map +0 -1
  216. package/dist/agents/translator/index.js +0 -19
  217. package/dist/agents/translator/index.js.map +0 -1
  218. package/dist/agents/translator/translator.handler.d.ts +0 -8
  219. package/dist/agents/translator/translator.handler.d.ts.map +0 -1
  220. package/dist/agents/translator/translator.handler.js +0 -83
  221. package/dist/agents/translator/translator.handler.js.map +0 -1
  222. package/dist/agents/translator/translator.schema.d.ts +0 -27
  223. package/dist/agents/translator/translator.schema.d.ts.map +0 -1
  224. package/dist/agents/translator/translator.schema.js +0 -28
  225. package/dist/agents/translator/translator.schema.js.map +0 -1
  226. package/dist/agents/translator/translator.types.d.ts +0 -40
  227. package/dist/agents/translator/translator.types.d.ts.map +0 -1
  228. package/dist/agents/translator/translator.types.js +0 -6
  229. package/dist/agents/translator/translator.types.js.map +0 -1
  230. package/dist/agents/translator/translator.yaml +0 -80
  231. package/dist/audit/auditTrail.d.ts +0 -55
  232. package/dist/audit/auditTrail.d.ts.map +0 -1
  233. package/dist/audit/auditTrail.js +0 -93
  234. package/dist/audit/auditTrail.js.map +0 -1
  235. package/dist/client/index.d.ts +0 -89
  236. package/dist/client/index.d.ts.map +0 -1
  237. package/dist/client/index.js +0 -93
  238. package/dist/client/index.js.map +0 -1
  239. package/dist/client/types.d.ts +0 -17
  240. package/dist/client/types.d.ts.map +0 -1
  241. package/dist/client/types.js +0 -7
  242. package/dist/client/types.js.map +0 -1
  243. package/dist/compliance/gdprEngine.d.ts +0 -44
  244. package/dist/compliance/gdprEngine.d.ts.map +0 -1
  245. package/dist/compliance/gdprEngine.js +0 -178
  246. package/dist/compliance/gdprEngine.js.map +0 -1
  247. package/dist/compliance/lgpdEngine.d.ts +0 -51
  248. package/dist/compliance/lgpdEngine.d.ts.map +0 -1
  249. package/dist/compliance/lgpdEngine.js +0 -221
  250. package/dist/compliance/lgpdEngine.js.map +0 -1
  251. package/dist/config.d.ts +0 -78
  252. package/dist/config.d.ts.map +0 -1
  253. package/dist/config.js +0 -77
  254. package/dist/config.js.map +0 -1
  255. package/dist/errors.d.ts +0 -17
  256. package/dist/errors.d.ts.map +0 -1
  257. package/dist/errors.js +0 -40
  258. package/dist/errors.js.map +0 -1
  259. package/dist/firebase/tenantManager.d.ts +0 -116
  260. package/dist/firebase/tenantManager.d.ts.map +0 -1
  261. package/dist/firebase/tenantManager.js +0 -444
  262. package/dist/firebase/tenantManager.js.map +0 -1
  263. package/dist/index.js.map +0 -1
  264. package/dist/integration/secure-yaml-runtime.d.ts +0 -68
  265. package/dist/integration/secure-yaml-runtime.d.ts.map +0 -1
  266. package/dist/integration/secure-yaml-runtime.js +0 -245
  267. package/dist/integration/secure-yaml-runtime.js.map +0 -1
  268. package/dist/parser/secure-yaml-parser.d.ts +0 -62
  269. package/dist/parser/secure-yaml-parser.d.ts.map +0 -1
  270. package/dist/parser/secure-yaml-parser.js +0 -234
  271. package/dist/parser/secure-yaml-parser.js.map +0 -1
  272. package/dist/performance/autoscaling.d.ts +0 -100
  273. package/dist/performance/autoscaling.d.ts.map +0 -1
  274. package/dist/performance/autoscaling.js +0 -339
  275. package/dist/performance/autoscaling.js.map +0 -1
  276. package/dist/performance/benchmark.d.ts +0 -104
  277. package/dist/performance/benchmark.d.ts.map +0 -1
  278. package/dist/performance/benchmark.js +0 -514
  279. package/dist/performance/benchmark.js.map +0 -1
  280. package/dist/performance/index.d.ts +0 -14
  281. package/dist/performance/index.d.ts.map +0 -1
  282. package/dist/performance/index.js +0 -35
  283. package/dist/performance/index.js.map +0 -1
  284. package/dist/performance/monitor.d.ts +0 -126
  285. package/dist/performance/monitor.d.ts.map +0 -1
  286. package/dist/performance/monitor.js +0 -324
  287. package/dist/performance/monitor.js.map +0 -1
  288. package/dist/performance/streaming.d.ts +0 -82
  289. package/dist/performance/streaming.d.ts.map +0 -1
  290. package/dist/performance/streaming.js +0 -287
  291. package/dist/performance/streaming.js.map +0 -1
  292. package/dist/runtime/audit.d.ts +0 -240
  293. package/dist/runtime/audit.d.ts.map +0 -1
  294. package/dist/runtime/audit.js +0 -641
  295. package/dist/runtime/audit.js.map +0 -1
  296. package/dist/runtime/declarativeAgentRuntime.d.ts +0 -92
  297. package/dist/runtime/declarativeAgentRuntime.d.ts.map +0 -1
  298. package/dist/runtime/declarativeAgentRuntime.js +0 -512
  299. package/dist/runtime/declarativeAgentRuntime.js.map +0 -1
  300. package/dist/runtime/index.d.ts +0 -12
  301. package/dist/runtime/index.d.ts.map +0 -1
  302. package/dist/runtime/index.js +0 -33
  303. package/dist/runtime/index.js.map +0 -1
  304. package/dist/runtime/isolatedRuntime.d.ts +0 -119
  305. package/dist/runtime/isolatedRuntime.d.ts.map +0 -1
  306. package/dist/runtime/isolatedRuntime.js +0 -425
  307. package/dist/runtime/isolatedRuntime.js.map +0 -1
  308. package/dist/runtime/schemaCompiler.d.ts +0 -35
  309. package/dist/runtime/schemaCompiler.d.ts.map +0 -1
  310. package/dist/runtime/schemaCompiler.js +0 -152
  311. package/dist/runtime/schemaCompiler.js.map +0 -1
  312. package/dist/runtime/simpleRuntime.d.ts +0 -57
  313. package/dist/runtime/simpleRuntime.d.ts.map +0 -1
  314. package/dist/runtime/simpleRuntime.js +0 -187
  315. package/dist/runtime/simpleRuntime.js.map +0 -1
  316. package/dist/runtime/workflowExecutor.d.ts +0 -30
  317. package/dist/runtime/workflowExecutor.d.ts.map +0 -1
  318. package/dist/runtime/workflowExecutor.js +0 -70
  319. package/dist/runtime/workflowExecutor.js.map +0 -1
  320. package/dist/security/dashboard.d.ts +0 -89
  321. package/dist/security/dashboard.d.ts.map +0 -1
  322. package/dist/security/dashboard.js +0 -300
  323. package/dist/security/dashboard.js.map +0 -1
  324. package/dist/security/hardening.d.ts +0 -130
  325. package/dist/security/hardening.d.ts.map +0 -1
  326. package/dist/security/hardening.js +0 -414
  327. package/dist/security/hardening.js.map +0 -1
  328. package/dist/security/index.d.ts +0 -128
  329. package/dist/security/index.d.ts.map +0 -1
  330. package/dist/security/index.js +0 -353
  331. package/dist/security/index.js.map +0 -1
  332. package/dist/security/monitor.d.ts +0 -88
  333. package/dist/security/monitor.d.ts.map +0 -1
  334. package/dist/security/monitor.js +0 -356
  335. package/dist/security/monitor.js.map +0 -1
  336. package/dist/security/scanner.d.ts +0 -104
  337. package/dist/security/scanner.d.ts.map +0 -1
  338. package/dist/security/scanner.js +0 -298
  339. package/dist/security/scanner.js.map +0 -1
  340. package/dist/security/score.d.ts +0 -150
  341. package/dist/security/score.d.ts.map +0 -1
  342. package/dist/security/score.js +0 -983
  343. package/dist/security/score.js.map +0 -1
  344. package/dist/security/threatDetector.d.ts +0 -39
  345. package/dist/security/threatDetector.d.ts.map +0 -1
  346. package/dist/security/threatDetector.js +0 -354
  347. package/dist/security/threatDetector.js.map +0 -1
  348. package/dist/security/validation.d.ts +0 -69
  349. package/dist/security/validation.d.ts.map +0 -1
  350. package/dist/security/validation.js +0 -286
  351. package/dist/security/validation.js.map +0 -1
  352. package/dist/server/api/clientsRoute.d.ts +0 -9
  353. package/dist/server/api/clientsRoute.d.ts.map +0 -1
  354. package/dist/server/api/clientsRoute.js +0 -71
  355. package/dist/server/api/clientsRoute.js.map +0 -1
  356. package/dist/server/api/endpointsRoute.d.ts +0 -8
  357. package/dist/server/api/endpointsRoute.d.ts.map +0 -1
  358. package/dist/server/api/endpointsRoute.js +0 -76
  359. package/dist/server/api/endpointsRoute.js.map +0 -1
  360. package/dist/server/api/graphql.d.ts +0 -9
  361. package/dist/server/api/graphql.d.ts.map +0 -1
  362. package/dist/server/api/graphql.js +0 -222
  363. package/dist/server/api/graphql.js.map +0 -1
  364. package/dist/server/errors.d.ts +0 -19
  365. package/dist/server/errors.d.ts.map +0 -1
  366. package/dist/server/errors.js +0 -42
  367. package/dist/server/errors.js.map +0 -1
  368. package/dist/server/index.d.ts +0 -7
  369. package/dist/server/index.d.ts.map +0 -1
  370. package/dist/server/index.js +0 -24
  371. package/dist/server/index.js.map +0 -1
  372. package/dist/server/kvStore.d.ts +0 -27
  373. package/dist/server/kvStore.d.ts.map +0 -1
  374. package/dist/server/kvStore.js +0 -128
  375. package/dist/server/kvStore.js.map +0 -1
  376. package/dist/server/runtimeSecurity.d.ts +0 -28
  377. package/dist/server/runtimeSecurity.d.ts.map +0 -1
  378. package/dist/server/runtimeSecurity.js +0 -85
  379. package/dist/server/runtimeSecurity.js.map +0 -1
  380. package/dist/server/types.d.ts +0 -53
  381. package/dist/server/types.d.ts.map +0 -1
  382. package/dist/server/types.js +0 -8
  383. package/dist/server/types.js.map +0 -1
  384. package/dist/shared/index.d.ts +0 -7
  385. package/dist/shared/index.d.ts.map +0 -1
  386. package/dist/shared/index.js +0 -23
  387. package/dist/shared/index.js.map +0 -1
  388. package/dist/shared/types/agent.types.d.ts +0 -50
  389. package/dist/shared/types/agent.types.d.ts.map +0 -1
  390. package/dist/shared/types/agent.types.js +0 -7
  391. package/dist/shared/types/agent.types.js.map +0 -1
  392. package/dist/shared/types/execution.types.d.ts +0 -42
  393. package/dist/shared/types/execution.types.d.ts.map +0 -1
  394. package/dist/shared/types/execution.types.js +0 -7
  395. package/dist/shared/types/execution.types.js.map +0 -1
  396. package/dist/shared/types/index.d.ts +0 -7
  397. package/dist/shared/types/index.d.ts.map +0 -1
  398. package/dist/shared/types/index.js +0 -23
  399. package/dist/shared/types/index.js.map +0 -1
  400. package/dist/shared/types/schema.types.d.ts +0 -52
  401. package/dist/shared/types/schema.types.d.ts.map +0 -1
  402. package/dist/shared/types/schema.types.js +0 -7
  403. package/dist/shared/types/schema.types.js.map +0 -1
  404. package/dist/shared/utils/index.d.ts +0 -5
  405. package/dist/shared/utils/index.d.ts.map +0 -1
  406. package/dist/shared/utils/index.js +0 -21
  407. package/dist/shared/utils/index.js.map +0 -1
  408. package/dist/shared/utils/validation.d.ts +0 -42
  409. package/dist/shared/utils/validation.d.ts.map +0 -1
  410. package/dist/shared/utils/validation.js +0 -93
  411. package/dist/shared/utils/validation.js.map +0 -1
  412. package/dist/tenant/TenantManager.d.ts +0 -152
  413. package/dist/tenant/TenantManager.d.ts.map +0 -1
  414. package/dist/tenant/TenantManager.js +0 -392
  415. package/dist/tenant/TenantManager.js.map +0 -1
  416. package/dist/tenant/index.d.ts +0 -47
  417. package/dist/tenant/index.d.ts.map +0 -1
  418. package/dist/tenant/index.js +0 -74
  419. package/dist/tenant/index.js.map +0 -1
  420. package/dist/tenant/interfaces.d.ts +0 -170
  421. package/dist/tenant/interfaces.d.ts.map +0 -1
  422. package/dist/tenant/interfaces.js +0 -67
  423. package/dist/tenant/interfaces.js.map +0 -1
  424. package/dist/tenant/providerFactory.d.ts +0 -43
  425. package/dist/tenant/providerFactory.d.ts.map +0 -1
  426. package/dist/tenant/providerFactory.js +0 -70
  427. package/dist/tenant/providerFactory.js.map +0 -1
  428. package/dist/tenant/providerRegistry.d.ts +0 -47
  429. package/dist/tenant/providerRegistry.d.ts.map +0 -1
  430. package/dist/tenant/providerRegistry.js +0 -79
  431. package/dist/tenant/providerRegistry.js.map +0 -1
  432. package/dist/tenant/providers/FirebaseTenantProvider.d.ts +0 -41
  433. package/dist/tenant/providers/FirebaseTenantProvider.d.ts.map +0 -1
  434. package/dist/tenant/providers/FirebaseTenantProvider.js +0 -290
  435. package/dist/tenant/providers/FirebaseTenantProvider.js.map +0 -1
  436. package/dist/tenant/providers/InMemoryTenantProvider.d.ts +0 -18
  437. package/dist/tenant/providers/InMemoryTenantProvider.d.ts.map +0 -1
  438. package/dist/tenant/providers/InMemoryTenantProvider.js +0 -137
  439. package/dist/tenant/providers/InMemoryTenantProvider.js.map +0 -1
  440. package/dist/types/executionContext.d.ts +0 -16
  441. package/dist/types/executionContext.d.ts.map +0 -1
  442. package/dist/types/executionContext.js +0 -3
  443. package/dist/types/executionContext.js.map +0 -1
  444. package/src/agents/chat/chat.handler.ts +0 -209
  445. package/src/agents/chat/chat.schema.ts +0 -33
  446. package/src/agents/chat/chat.types.ts +0 -46
  447. package/src/agents/chat/chat.yaml +0 -150
  448. package/src/agents/chat/index.ts +0 -21
  449. package/src/agents/chromadb/chromadb.handler.ts +0 -130
  450. package/src/agents/chromadb/chromadb.schema.ts +0 -35
  451. package/src/agents/chromadb/chromadb.types.ts +0 -52
  452. package/src/agents/chromadb/chromadb.yaml +0 -128
  453. package/src/agents/chromadb/index.ts +0 -20
  454. package/src/agents/gemini-vectorize/gemini-vectorize.handler.ts +0 -72
  455. package/src/agents/gemini-vectorize/gemini-vectorize.schema.ts +0 -22
  456. package/src/agents/gemini-vectorize/gemini-vectorize.types.ts +0 -34
  457. package/src/agents/gemini-vectorize/gemini-vectorize.yaml +0 -84
  458. package/src/agents/gemini-vectorize/index.ts +0 -20
  459. package/src/agents/gitmcp/gitmcp.handler.ts +0 -122
  460. package/src/agents/gitmcp/gitmcp.schema.ts +0 -20
  461. package/src/agents/gitmcp/gitmcp.types.ts +0 -33
  462. package/src/agents/gitmcp/gitmcp.yaml +0 -71
  463. package/src/agents/gitmcp/index.ts +0 -21
  464. package/src/agents/image/image.handler.ts +0 -82
  465. package/src/agents/image/image.schema.ts +0 -28
  466. package/src/agents/image/image.types.ts +0 -45
  467. package/src/agents/image/image.yaml +0 -86
  468. package/src/agents/image/index.ts +0 -19
  469. package/src/agents/index.ts +0 -59
  470. package/src/agents/joker/index.ts +0 -19
  471. package/src/agents/joker/joker.handler.ts +0 -60
  472. package/src/agents/joker/joker.schema.ts +0 -15
  473. package/src/agents/joker/joker.types.ts +0 -37
  474. package/src/agents/joker/joker.yaml +0 -47
  475. package/src/agents/mcp-tool/index.ts +0 -19
  476. package/src/agents/mcp-tool/mcp-tool.handler.ts +0 -112
  477. package/src/agents/mcp-tool/mcp-tool.schema.ts +0 -22
  478. package/src/agents/mcp-tool/mcp-tool.types.ts +0 -33
  479. package/src/agents/mcp-tool/mcp-tool.yaml +0 -71
  480. package/src/agents/rag/index.ts +0 -20
  481. package/src/agents/rag/rag.handler.ts +0 -119
  482. package/src/agents/rag/rag.schema.ts +0 -26
  483. package/src/agents/rag/rag.types.ts +0 -51
  484. package/src/agents/rag/rag.yaml +0 -89
  485. package/src/agents/registry/agentRegistry.ts +0 -598
  486. package/src/agents/registry/index.ts +0 -6
  487. package/src/agents/translator/index.ts +0 -19
  488. package/src/agents/translator/translator.handler.ts +0 -99
  489. package/src/agents/translator/translator.schema.ts +0 -30
  490. package/src/agents/translator/translator.types.ts +0 -42
  491. package/src/agents/translator/translator.yaml +0 -80
  492. package/src/audit/auditTrail.ts +0 -134
  493. package/src/client/index.ts +0 -53
  494. package/src/client/types.ts +0 -38
  495. package/src/compliance/gdprEngine.ts +0 -209
  496. package/src/compliance/lgpdEngine.ts +0 -268
  497. package/src/config.ts +0 -179
  498. package/src/errors.ts +0 -35
  499. package/src/integration/secure-yaml-runtime.ts +0 -341
  500. package/src/parser/secure-yaml-parser.ts +0 -273
  501. package/src/performance/autoscaling.ts +0 -495
  502. package/src/performance/benchmark.ts +0 -644
  503. package/src/performance/index.ts +0 -34
  504. package/src/performance/monitor.ts +0 -469
  505. package/src/performance/streaming.ts +0 -317
  506. package/src/runtime/audit.ts +0 -907
  507. package/src/runtime/declarativeAgentRuntime.ts +0 -772
  508. package/src/runtime/index.ts +0 -31
  509. package/src/runtime/isolatedRuntime.ts +0 -572
  510. package/src/runtime/schemaCompiler.ts +0 -228
  511. package/src/runtime/simpleRuntime.ts +0 -201
  512. package/src/runtime/workflowExecutor.ts +0 -94
  513. package/src/security/dashboard.ts +0 -462
  514. package/src/security/hardening.ts +0 -560
  515. package/src/security/index.ts +0 -439
  516. package/src/security/monitor.ts +0 -490
  517. package/src/security/scanner.ts +0 -368
  518. package/src/security/score.ts +0 -1138
  519. package/src/security/threatDetector.ts +0 -481
  520. package/src/security/validation.ts +0 -365
  521. package/src/server/api/clientsRoute.ts +0 -92
  522. package/src/server/api/endpointsRoute.ts +0 -97
  523. package/src/server/api/graphql.ts +0 -284
  524. package/src/server/errors.ts +0 -38
  525. package/src/server/index.ts +0 -6
  526. package/src/server/kvStore.ts +0 -152
  527. package/src/server/runtimeSecurity.ts +0 -102
  528. package/src/server/types.ts +0 -60
  529. package/src/shared/index.ts +0 -7
  530. package/src/shared/types/agent.types.ts +0 -80
  531. package/src/shared/types/execution.types.ts +0 -45
  532. package/src/shared/types/index.ts +0 -7
  533. package/src/shared/types/schema.types.ts +0 -55
  534. package/src/shared/utils/index.ts +0 -5
  535. package/src/shared/utils/validation.ts +0 -100
  536. package/src/tenant/TenantManager.ts +0 -488
  537. package/src/tenant/index.ts +0 -101
  538. package/src/tenant/interfaces.ts +0 -231
  539. package/src/tenant/providerFactory.ts +0 -75
  540. package/src/tenant/providerRegistry.ts +0 -86
  541. package/src/tenant/providers/InMemoryTenantProvider.ts +0 -168
  542. package/src/types/executionContext.ts +0 -16
package/package.json CHANGED
@@ -1,123 +1,36 @@
1
1
  {
2
- "name": "beddel",
3
- "version": "0.2.3",
4
- "description": "Beddel - A secure YAML parser and OpenAPI endpoint manager for Node.js applications",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "files": [
8
- "dist",
9
- "src",
10
- "README.md",
11
- "LICENSE",
12
- "CHANGELOG.md"
13
- ],
14
- "exports": {
15
- ".": {
16
- "types": "./dist/index.d.ts",
17
- "default": "./dist/index.js"
2
+ "name": "beddel",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ },
12
+ "./server": {
13
+ "import": "./dist/server.js",
14
+ "types": "./dist/server.d.ts"
15
+ },
16
+ "./client": {
17
+ "import": "./dist/client.js",
18
+ "types": "./dist/client.d.ts"
19
+ }
18
20
  },
19
- "./server": {
20
- "types": "./dist/server/index.d.ts",
21
- "default": "./dist/server/index.js"
21
+ "scripts": {
22
+ "build": "tsc",
23
+ "dev": "tsc --watch"
22
24
  },
23
- "./server/*": {
24
- "types": "./dist/server/*.d.ts",
25
- "default": "./dist/server/*.js"
25
+ "dependencies": {
26
+ "ai": "^6.0.3",
27
+ "@ai-sdk/google": "^3.0.1",
28
+ "zod": "^3.23.8",
29
+ "js-yaml": "^4.1.0"
26
30
  },
27
- "./server/api/graphql": {
28
- "types": "./dist/server/api/graphql.d.ts",
29
- "default": "./dist/server/api/graphql.js"
30
- },
31
- "./client": {
32
- "types": "./dist/client/index.d.ts",
33
- "default": "./dist/client/index.js"
34
- },
35
- "./shared": {
36
- "types": "./dist/shared/index.d.ts",
37
- "default": "./dist/shared/index.js"
38
- },
39
- "./agents": {
40
- "types": "./dist/agents/index.d.ts",
41
- "default": "./dist/agents/index.js"
42
- },
43
- "./agents/*": {
44
- "types": "./dist/agents/*/index.d.ts",
45
- "default": "./dist/agents/*/index.js"
46
- }
47
- },
48
- "scripts": {
49
- "prepublishOnly": "npm run build",
50
- "build": "tsc -p tsconfig.build.json && npm run copy-yaml",
51
- "copy-yaml": "find src/agents -name '*.yaml' -exec sh -c 'mkdir -p dist/agents/$(dirname \"{}\" | sed \"s|src/agents/||\") && cp \"{}\" dist/agents/$(dirname \"{}\" | sed \"s|src/agents/||\")/$(basename \"{}\")' \\;",
52
- "dev": "tsc -p tsconfig.build.json --watch",
53
- "test": "jest",
54
- "test:watch": "jest --watch",
55
- "test:coverage": "jest --coverage",
56
- "lint": "eslint src --ext .ts",
57
- "lint:fix": "eslint src --ext .ts --fix",
58
- "version:patch": "npm version patch",
59
- "version:minor": "npm version minor",
60
- "version:major": "npm version major"
61
- },
62
- "keywords": [
63
- "yaml",
64
- "agents",
65
- "ai-agents",
66
- "declarative",
67
- "secure",
68
- "sandbox",
69
- "isolated-vm",
70
- "multi-tenant",
71
- "gemini",
72
- "genkit",
73
- "workflow",
74
- "nodejs"
75
- ],
76
- "author": "Beddel Contributors",
77
- "license": "MIT",
78
- "repository": {
79
- "type": "git",
80
- "url": "https://github.com/botanarede/beddel.git"
81
- },
82
- "bugs": {
83
- "url": "https://github.com/botanarede/beddel/issues"
84
- },
85
- "homepage": "https://github.com/botanarede/beddel#readme",
86
- "dependencies": {
87
- "@ai-sdk/google": "^2.0.23",
88
- "@modelcontextprotocol/sdk": "^1.0.0",
89
- "@upstash/redis": "^1.34.3",
90
- "ai": "^5.0.70",
91
- "chromadb": "^3.1.8",
92
- "eventsource": "^2.0.2",
93
- "graphql": "^16.10.0",
94
- "graphql-yoga": "^5.13.5",
95
- "isolated-vm": "5.0.1",
96
- "js-yaml": "^4.1.1",
97
- "server-only": "^0.0.1",
98
- "zod": "^4.1.12"
99
- },
100
- "peerDependencies": {
101
- "firebase-admin": ">=12.0.0"
102
- },
103
- "peerDependenciesMeta": {
104
- "firebase-admin": {
105
- "optional": true
31
+ "devDependencies": {
32
+ "typescript": "^5.6.3",
33
+ "@types/node": "^22.10.2",
34
+ "@types/js-yaml": "^4.0.9"
106
35
  }
107
- },
108
- "devDependencies": {
109
- "@types/eventsource": "^1.1.15",
110
- "@types/jest": "^29.5.12",
111
- "@types/js-yaml": "^4.0.9",
112
- "@types/node": "^22.0.0",
113
- "@typescript-eslint/eslint-plugin": "^8.0.0",
114
- "@typescript-eslint/parser": "^8.0.0",
115
- "eslint": "^9.0.0",
116
- "jest": "^29.0.0",
117
- "ts-jest": "^29.0.0",
118
- "typescript": "^5.0.0"
119
- },
120
- "engines": {
121
- "node": ">=18.0.0"
122
- }
123
- }
36
+ }
package/src/client.ts ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Beddel Protocol - Client Bundle
3
+ *
4
+ * This entry point exports ONLY types and utilities safe for client-side use.
5
+ * No Node.js dependencies (fs, crypto, etc.) are included here.
6
+ *
7
+ * Usage: import type { ParsedYaml } from 'beddel/client';
8
+ */
9
+
10
+ // Types only - safe for client bundles
11
+ export type {
12
+ ParsedYaml,
13
+ WorkflowStep,
14
+ StepConfig,
15
+ YamlMetadata,
16
+ ExecutionContext,
17
+ PrimitiveHandler,
18
+ } from './types';
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Beddel Protocol - Secure YAML Parser
3
+ * Uses FAILSAFE_SCHEMA to prevent code execution attacks
4
+ */
5
+
6
+ import { readFile } from 'fs/promises';
7
+ import yaml, { FAILSAFE_SCHEMA } from 'js-yaml';
8
+ import type { ParsedYaml } from '../types';
9
+
10
+ /**
11
+ * Load and parse a YAML workflow file securely.
12
+ *
13
+ * Security: Uses FAILSAFE_SCHEMA which only allows:
14
+ * - Strings
15
+ * - Arrays (sequences)
16
+ * - Plain objects (mappings)
17
+ *
18
+ * This completely blocks dangerous YAML tags:
19
+ * - !!js/function (arbitrary code execution)
20
+ * - !!js/regexp (ReDoS vulnerabilities)
21
+ * - !!js/undefined
22
+ * - Custom tags
23
+ *
24
+ * @param path - Absolute or relative path to YAML file
25
+ * @returns Parsed YAML as typed ParsedYaml object
26
+ * @throws Error if file cannot be read or YAML is invalid
27
+ */
28
+ export async function loadYaml(path: string): Promise<ParsedYaml> {
29
+ const content = await readFile(path, 'utf-8');
30
+
31
+ // FAILSAFE_SCHEMA is the most restrictive schema in js-yaml
32
+ // No custom constructors, no type coercion, maximum security
33
+ const parsed = yaml.load(content, { schema: FAILSAFE_SCHEMA }) as ParsedYaml;
34
+
35
+ return parsed;
36
+ }
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Beddel Protocol - Variable Resolver
3
+ *
4
+ * Resolves template variables in step configurations.
5
+ * Patterns: $input.path.to.value, $stepResult.path.to.value
6
+ *
7
+ * Server-only: Used within WorkflowExecutor during step execution.
8
+ */
9
+
10
+ import type { ExecutionContext } from '../types';
11
+
12
+ /**
13
+ * Resolve a path like "foo.bar.baz" on an object.
14
+ * Returns undefined if path doesn't exist.
15
+ */
16
+ function resolvePath(obj: unknown, path: string): unknown {
17
+ const parts = path.split('.');
18
+ let current: unknown = obj;
19
+
20
+ for (const part of parts) {
21
+ if (current === null || current === undefined) {
22
+ return undefined;
23
+ }
24
+ if (typeof current === 'object') {
25
+ current = (current as Record<string, unknown>)[part];
26
+ } else {
27
+ return undefined;
28
+ }
29
+ }
30
+
31
+ return current;
32
+ }
33
+
34
+ /**
35
+ * Resolve variable references in a template value.
36
+ *
37
+ * Supports:
38
+ * - "$input.messages" → context.input.messages
39
+ * - "$stepResult.llmOutput.text" → context.variables.get('llmOutput').text
40
+ * - Nested objects/arrays are resolved recursively
41
+ *
42
+ * @param template - Value to resolve (string, object, array, or primitive)
43
+ * @param context - Execution context with input and variables
44
+ * @returns Resolved value with all variable references replaced
45
+ */
46
+ export function resolveVariables(template: unknown, context: ExecutionContext): unknown {
47
+ // Handle null/undefined
48
+ if (template === null || template === undefined) {
49
+ return template;
50
+ }
51
+
52
+ // Handle string patterns
53
+ if (typeof template === 'string') {
54
+ // Check for $input.* pattern
55
+ if (template.startsWith('$input.')) {
56
+ const path = template.slice(7); // Remove "$input."
57
+ return resolvePath(context.input, path);
58
+ }
59
+
60
+ // Check for $stepResult.* pattern (references step.result names)
61
+ if (template.startsWith('$stepResult.')) {
62
+ const fullPath = template.slice(12); // Remove "$stepResult."
63
+ const dotIndex = fullPath.indexOf('.');
64
+
65
+ if (dotIndex === -1) {
66
+ // Just the variable name, e.g., "$stepResult.llmOutput"
67
+ return context.variables.get(fullPath);
68
+ }
69
+
70
+ // Variable name + path, e.g., "$stepResult.llmOutput.text"
71
+ const varName = fullPath.slice(0, dotIndex);
72
+ const restPath = fullPath.slice(dotIndex + 1);
73
+ const varValue = context.variables.get(varName);
74
+ return resolvePath(varValue, restPath);
75
+ }
76
+
77
+ // Check for legacy $varName.* pattern (direct variable reference)
78
+ if (template.startsWith('$') && !template.startsWith('$$')) {
79
+ const fullPath = template.slice(1); // Remove "$"
80
+ const dotIndex = fullPath.indexOf('.');
81
+
82
+ if (dotIndex === -1) {
83
+ // Just the variable name, e.g., "$llmOutput"
84
+ return context.variables.get(fullPath);
85
+ }
86
+
87
+ // Variable name + path, e.g., "$llmOutput.text"
88
+ const varName = fullPath.slice(0, dotIndex);
89
+ const restPath = fullPath.slice(dotIndex + 1);
90
+ const varValue = context.variables.get(varName);
91
+ return resolvePath(varValue, restPath);
92
+ }
93
+
94
+ // No pattern match, return as-is
95
+ return template;
96
+ }
97
+
98
+ // Handle arrays - resolve each element
99
+ if (Array.isArray(template)) {
100
+ return template.map(item => resolveVariables(item, context));
101
+ }
102
+
103
+ // Handle objects - resolve each value
104
+ if (typeof template === 'object') {
105
+ const resolved: Record<string, unknown> = {};
106
+ for (const [key, value] of Object.entries(template)) {
107
+ resolved[key] = resolveVariables(value, context);
108
+ }
109
+ return resolved;
110
+ }
111
+
112
+ // Primitives (number, boolean) - return as-is
113
+ return template;
114
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Beddel Protocol - Workflow Executor
3
+ *
4
+ * Sequential pipeline executor that iterates over workflow steps.
5
+ *
6
+ * Server-only: Uses primitives that may call external APIs.
7
+ *
8
+ * CRITICAL BEHAVIOR:
9
+ * - If a handler returns a Response instance (streaming), execution stops
10
+ * and that Response is returned immediately to the client.
11
+ * - Non-Response results are stored in context.variables for subsequent steps.
12
+ */
13
+
14
+ import type { ParsedYaml, WorkflowStep, ExecutionContext, StepConfig } from '../types';
15
+ import { handlerRegistry } from '../primitives';
16
+
17
+ export class WorkflowExecutor {
18
+ private steps: WorkflowStep[];
19
+
20
+ /**
21
+ * Create a new WorkflowExecutor from parsed YAML.
22
+ * @param yaml - Parsed YAML document containing workflow steps
23
+ */
24
+ constructor(yaml: ParsedYaml) {
25
+ this.steps = yaml.workflow;
26
+ }
27
+
28
+ /**
29
+ * Execute the workflow pipeline.
30
+ *
31
+ * @param input - Input data (e.g., { messages: [...] } for chat)
32
+ * @returns Response if streaming, or accumulated variables object
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const executor = new WorkflowExecutor(yaml);
37
+ * const result = await executor.execute({ messages });
38
+ * if (result instanceof Response) {
39
+ * return result; // Stream to client
40
+ * }
41
+ * return Response.json(result);
42
+ * ```
43
+ */
44
+ async execute(input: unknown): Promise<Response | Record<string, unknown>> {
45
+ const context: ExecutionContext = {
46
+ input,
47
+ variables: new Map(),
48
+ };
49
+
50
+ for (const step of this.steps) {
51
+ const handler = handlerRegistry[step.type];
52
+
53
+ if (!handler) {
54
+ throw new Error(
55
+ `[Beddel] Unknown step type: "${step.type}" in step "${step.id}". ` +
56
+ `Registered types: ${Object.keys(handlerRegistry).join(', ') || '(none)'}`
57
+ );
58
+ }
59
+
60
+ // Execute the handler with step config and context
61
+ const result = await handler(step.config as StepConfig, context);
62
+
63
+ // CRITICAL: If handler returns Response (streaming), return immediately
64
+ if (result instanceof Response) {
65
+ return result;
66
+ }
67
+
68
+ // Store result for subsequent steps (if step.result is defined)
69
+ if (step.result) {
70
+ context.variables.set(step.result, result);
71
+ }
72
+ }
73
+
74
+ // No streaming occurred - return accumulated variables as object
75
+ return Object.fromEntries(context.variables);
76
+ }
77
+ }
package/src/index.ts CHANGED
@@ -1,168 +1,34 @@
1
1
  /**
2
- * Beddel - Parser YAML seguro com FAILSAFE_SCHEMA e Runtime Isolado
3
- *
4
- * Open source package para parsing YAML com foco máximo em segurança
5
- * Implementa FAILSAFE_SCHEMA, validações rigorosas, runtime isolado e multi-tenant isolation
2
+ * Beddel Protocol - Streaming Pipeline Edition
3
+ * Server Entry Point
4
+ *
5
+ * This is the main entry point for server-side usage.
6
+ * Contains Node.js dependencies (fs) - DO NOT import in client code.
7
+ *
8
+ * For client-safe types, use: import type { ... } from 'beddel/client';
6
9
  */
7
10
 
8
- // YAML Parser exports
9
- export {
10
- SecureYamlParser,
11
- createSecureYamlParser,
12
- parseSecureYaml,
13
- } from "./parser/secure-yaml-parser";
11
+ // Core (server-only)
12
+ export { loadYaml } from './core/parser';
13
+ export { WorkflowExecutor } from './core/workflow';
14
+ export { resolveVariables } from './core/variable-resolver';
15
+ export { createBeddelHandler } from './server/handler';
14
16
 
15
- // Runtime Isolado exports
16
- export {
17
- IsolatedRuntimeManager,
18
- runtimeManager,
19
- } from "./runtime/isolatedRuntime";
20
- export type {
21
- ExecutionOptions,
22
- ExecutionResult,
23
- RuntimeContext,
24
- } from "./runtime/isolatedRuntime";
25
-
26
- // Simple Runtime exports
27
- export {
28
- SimpleIsolatedRuntimeManager,
29
- runtimeManager as simpleRuntimeManager,
30
- IsolatedRuntimeError as SimpleRuntimeError,
31
- } from "./runtime/simpleRuntime";
32
- export type {
33
- ExecutionOptions as SimpleExecutionOptions,
34
- ExecutionResult as SimpleExecutionResult,
35
- } from "./runtime/simpleRuntime";
36
-
37
- // Declarative runtime exports
38
- export {
39
- DeclarativeAgentInterpreter,
40
- declarativeInterpreter,
41
- } from "./runtime/declarativeAgentRuntime";
42
- export type {
43
- YamlAgentDefinition,
44
- YamlAgentInterpreterOptions,
45
- YamlExecutionResult,
46
- } from "./runtime/declarativeAgentRuntime";
47
- export {
48
- DeclarativeSchemaCompiler,
49
- DeclarativeSchemaValidationError,
50
- SchemaCompilationError,
51
- } from "./runtime/schemaCompiler";
52
-
53
- // Agent registry exports
54
- export { AgentRegistry, agentRegistry } from "./agents/registry";
55
- export type { AgentRegistration } from "./agents/registry";
56
-
57
- // Configuration exports
58
- export {
59
- runtimeConfig,
60
- securityProfiles,
61
- performanceTargets,
62
- auditConfig,
63
- } from "./config";
64
- export type {
65
- RuntimeConfig,
66
- SecurityProfile,
67
- PerformanceTarget,
68
- AuditConfig,
69
- } from "./config";
70
-
71
- // Error exports
72
- export {
73
- YAMLBaseError,
74
- YAMLParseError,
75
- YAMLSecurityError,
76
- YAMLPerformanceError,
77
- } from "./errors";
78
17
 
79
- // Security exports
80
- export { SecurityScanner } from "./security/scanner";
81
- export { SecurityScore } from "./security/score";
82
- export {
83
- SecurityManager,
84
- SecurityMonitor,
85
- securityMonitor,
86
- SecurityDashboard,
87
- securityDashboard,
88
- ThreatDetectionEngine,
89
- AnomalyDetector,
90
- ThreatMLModel,
91
- } from "./security";
92
- export type {
93
- AlertLevel,
94
- SecurityEvent,
95
- ThreatAnalysis,
96
- DashboardConfig,
97
- SecurityMetric,
98
- } from "./security";
99
- export { AuditService } from "./runtime/audit";
18
+ // Primitives registry (for custom handler registration)
19
+ export { handlerRegistry, registerPrimitive } from './primitives';
100
20
 
101
- // Performance exports
102
- export { PerformanceMonitor } from "./performance/monitor";
103
- export { default as AutoScaler } from "./performance/autoscaling";
21
+ // Tools registry (for custom tool registration)
22
+ export { toolRegistry, registerTool } from './tools';
23
+ export type { ToolImplementation } from './tools';
104
24
 
105
- // Agnostic Multi-Tenant exports
106
- export {
107
- TenantManager,
108
- ProviderRegistry,
109
- createProvider,
110
- isValidProviderType,
111
- isBuiltInProviderType,
112
- getSupportedProviders,
113
- getBuiltInProviders,
114
- InMemoryTenantProvider,
115
- TenantError,
116
- ValidationError,
117
- NotFoundError,
118
- NotSupportedError,
119
- TenantAlreadyExistsError,
120
- } from "./tenant";
25
+ // Types (re-exported for convenience, also available via beddel/client)
121
26
  export type {
122
- TenantConfig,
123
- TenantIsolationResult,
124
- ProviderType,
125
- BuiltInProviderType,
126
- FirebaseProviderConfig,
127
- MemoryProviderConfig,
128
- ITenantProvider,
129
- ITenantApp,
130
- ITenantDatabase,
131
- ITenantCollection,
132
- ITenantDocument,
133
- } from "./tenant";
134
-
135
- // Compliance exports
136
- export { GDPRCompliance } from "./compliance/gdprEngine";
137
- export { LGPDCompliance } from "./compliance/lgpdEngine";
138
- export type { GDPRConfig, GDPRComplianceResult } from "./compliance/gdprEngine";
139
- export type { LGPDConfig, LGPDComplianceResult } from "./compliance/lgpdEngine";
140
-
141
- // Integration: Secure YAML Parser with Isolated Runtime
142
- export { SecureYamlRuntime } from "./integration/secure-yaml-runtime";
143
-
144
- // Shared types
145
- export type { ExecutionContext } from "./types/executionContext";
146
-
147
- // Shared agent types (client-safe)
148
- export type {
149
- AgentMetadata,
150
- AgentResponse,
151
- ExecutionStep,
152
- WorkflowStepType,
153
- AgentCategory,
154
- } from "./shared/types/agent.types";
155
-
156
- // Chat agent exports (client-safe)
157
- export type {
158
- ChatHandlerParams,
159
- ChatHandlerResult,
160
- ChatMetadata,
161
- } from "./agents/chat/chat.types";
162
- export { chatMetadata } from "./agents/chat";
163
-
164
- // RAG types (client-safe)
165
- export type { ConversationMessage } from "./agents/rag/rag.types";
27
+ ParsedYaml,
28
+ WorkflowStep,
29
+ StepConfig,
30
+ YamlMetadata,
31
+ ExecutionContext,
32
+ PrimitiveHandler,
33
+ } from './types';
166
34
 
167
- // Server/runtime exports
168
- export * as Server from "./server";
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Beddel Protocol - Primitive Handler Registry
3
+ *
4
+ * This registry maps step types to their handler implementations.
5
+ * Following Expansion Pack Pattern from BMAD-METHOD™ for extensibility.
6
+ * See: https://github.com/bmadcode/bmad-method
7
+ *
8
+ * Server-only: Handlers may use Node.js APIs and external services.
9
+ */
10
+
11
+ import type { PrimitiveHandler, StepConfig, ExecutionContext } from '../types';
12
+ import { llmPrimitive } from './llm';
13
+ import { outputPrimitive } from './output';
14
+
15
+ // Re-export llm exports for consumer access
16
+ export { llmPrimitive, registerCallback, callbackRegistry } from './llm';
17
+
18
+ /**
19
+ * Placeholder handler for primitives not yet implemented.
20
+ * Returns config and context for debugging purposes.
21
+ */
22
+ const placeholderHandler: PrimitiveHandler = async (
23
+ config: StepConfig,
24
+ context: ExecutionContext
25
+ ): Promise<Record<string, unknown>> => {
26
+ console.warn('[Beddel] Placeholder handler invoked. Implement the actual primitive.');
27
+ return {
28
+ _placeholder: true,
29
+ config,
30
+ input: context.input,
31
+ variableCount: context.variables.size,
32
+ };
33
+ };
34
+
35
+ /**
36
+ * Registry of primitive handlers keyed by step type.
37
+ *
38
+ * MVP Primitives:
39
+ * - 'llm': Wrapper for streamText/generateText (Task 2.2)
40
+ * - 'output-generator': Deterministic variable mapping (Task 2.3)
41
+ * - 'call-agent': Sub-agent invocation (future)
42
+ */
43
+ export const handlerRegistry: Record<string, PrimitiveHandler> = {
44
+ /**
45
+ * LLM Primitive - Dual-mode AI text generation.
46
+ * Supports streaming (streamText) and blocking (generateText) modes.
47
+ */
48
+ 'llm': llmPrimitive,
49
+
50
+ /**
51
+ * Output Generator Primitive - Deterministic JSON transform.
52
+ * Resolves variable references in templates.
53
+ */
54
+ 'output-generator': outputPrimitive,
55
+
56
+ /**
57
+ * Call Agent Primitive - Placeholder
58
+ * Enables recursive workflow execution via sub-agents.
59
+ */
60
+ 'call-agent': placeholderHandler,
61
+ };
62
+
63
+ /**
64
+ * Register a custom primitive handler in the registry.
65
+ * Allows consumers to extend Beddel with domain-specific primitives.
66
+ *
67
+ * @param type - Step type identifier (e.g., 'my-custom-primitive')
68
+ * @param handler - PrimitiveHandler function
69
+ *
70
+ * @example
71
+ * import { registerPrimitive } from 'beddel';
72
+ *
73
+ * registerPrimitive('http-fetch', async (config, context) => {
74
+ * const response = await fetch(config.url);
75
+ * return { data: await response.json() };
76
+ * });
77
+ */
78
+ export function registerPrimitive(type: string, handler: PrimitiveHandler): void {
79
+ if (handlerRegistry[type]) {
80
+ console.warn(`[Beddel] Primitive '${type}' already registered, overwriting.`);
81
+ }
82
+ handlerRegistry[type] = handler;
83
+ }