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
@@ -0,0 +1,307 @@
1
+ # API Reference
2
+
3
+ > **Beddel Protocol v1.0.0** — Complete API documentation for all public exports.
4
+
5
+ ---
6
+
7
+ ## Entry Points
8
+
9
+ | Import Path | Purpose |
10
+ |-------------|---------|
11
+ | `beddel` | Full server API — core functions, registries, and extensibility |
12
+ | `beddel/server` | Server handler factory for Next.js API routes |
13
+ | `beddel/client` | Type-only exports for client-side usage |
14
+
15
+ ---
16
+
17
+ ## `beddel` (Main Entry)
18
+
19
+ ### Core Functions
20
+
21
+ #### `loadYaml(path: string): Promise<ParsedYaml>`
22
+
23
+ Load and parse a YAML workflow file securely using `FAILSAFE_SCHEMA`.
24
+
25
+ ```typescript
26
+ import { loadYaml } from 'beddel';
27
+
28
+ const yaml = await loadYaml('./src/agents/assistant.yaml');
29
+ console.log(yaml.metadata.name); // "Streaming Assistant"
30
+ ```
31
+
32
+ #### `resolveVariables(template: unknown, context: ExecutionContext): unknown`
33
+
34
+ Resolve variable references (`$input.*`, `$stepResult.*`) in templates.
35
+
36
+ ```typescript
37
+ import { resolveVariables } from 'beddel';
38
+
39
+ const resolved = resolveVariables('$input.messages', context);
40
+ ```
41
+
42
+ ---
43
+
44
+ ### Classes
45
+
46
+ #### `WorkflowExecutor`
47
+
48
+ Sequential pipeline executor for YAML workflows.
49
+
50
+ ```typescript
51
+ import { WorkflowExecutor, loadYaml } from 'beddel';
52
+
53
+ const yaml = await loadYaml('./src/agents/assistant.yaml');
54
+ const executor = new WorkflowExecutor(yaml);
55
+
56
+ // Execute with input data
57
+ const result = await executor.execute({ messages: [...] });
58
+
59
+ if (result instanceof Response) {
60
+ return result; // Streaming response
61
+ }
62
+ return Response.json(result); // Blocking result
63
+ ```
64
+
65
+ **Constructor:** `new WorkflowExecutor(yaml: ParsedYaml)`
66
+
67
+ **Methods:**
68
+ - `execute(input: unknown): Promise<Response | Record<string, unknown>>`
69
+
70
+ ---
71
+
72
+ ### Registries
73
+
74
+ #### `handlerRegistry: Record<string, PrimitiveHandler>`
75
+
76
+ Map of primitive step types to their handler functions.
77
+
78
+ **Built-in handlers:**
79
+ - `llm` — AI text generation (streaming/blocking)
80
+ - `output-generator` — Deterministic JSON transform
81
+ - `call-agent` — Sub-agent invocation (placeholder)
82
+
83
+ #### `toolRegistry: Record<string, ToolImplementation>`
84
+
85
+ Map of tool names to their implementations for LLM function calling.
86
+
87
+ **Built-in tools:**
88
+ - `calculator` — Evaluate mathematical expressions
89
+ - `getCurrentTime` — Get current ISO timestamp
90
+
91
+ ---
92
+
93
+ ### Extensibility Functions
94
+
95
+ #### `registerPrimitive(type: string, handler: PrimitiveHandler): void`
96
+
97
+ Register a custom primitive handler.
98
+
99
+ ```typescript
100
+ import { registerPrimitive } from 'beddel';
101
+
102
+ registerPrimitive('http-fetch', async (config, context) => {
103
+ const response = await fetch(config.url);
104
+ return { data: await response.json() };
105
+ });
106
+ ```
107
+
108
+ #### `registerTool(name: string, implementation: ToolImplementation): void`
109
+
110
+ Register a custom tool for LLM function calling.
111
+
112
+ ```typescript
113
+ import { registerTool } from 'beddel';
114
+ import { z } from 'zod';
115
+
116
+ registerTool('weatherLookup', {
117
+ description: 'Get weather for a city',
118
+ parameters: z.object({ city: z.string() }),
119
+ execute: async ({ city }) => fetchWeather(city),
120
+ });
121
+ ```
122
+
123
+ #### `registerCallback(name: string, callback: CallbackFn): void`
124
+
125
+ Register a lifecycle callback for streaming hooks.
126
+
127
+ ```typescript
128
+ import { registerCallback } from 'beddel';
129
+
130
+ registerCallback('persistConversation', async ({ text, usage }) => {
131
+ await db.saveMessage(text, usage);
132
+ });
133
+ ```
134
+
135
+ ---
136
+
137
+ ## `beddel/server`
138
+
139
+ ### `createBeddelHandler(options?: BeddelHandlerOptions)`
140
+
141
+ Factory function for creating Next.js API route handlers.
142
+
143
+ ```typescript
144
+ // app/api/beddel/chat/route.ts
145
+ import { createBeddelHandler } from 'beddel/server';
146
+
147
+ export const POST = createBeddelHandler({
148
+ agentsPath: 'src/agents' // Optional, default: 'src/agents'
149
+ });
150
+ ```
151
+
152
+ **Options:**
153
+
154
+ | Property | Type | Default | Description |
155
+ |----------|------|---------|-------------|
156
+ | `agentsPath` | `string` | `'src/agents'` | Directory containing YAML agent files |
157
+
158
+ **Request Body:**
159
+
160
+ The request body accepts messages in AI SDK v6 `UIMessage[]` format (from `useChat`):
161
+
162
+ ```json
163
+ {
164
+ "agentId": "assistant",
165
+ "messages": [
166
+ {
167
+ "role": "user",
168
+ "parts": [{ "type": "text", "text": "Hello!" }]
169
+ }
170
+ ]
171
+ }
172
+ ```
173
+
174
+ > **AI SDK v6 Compatibility:** The handler automatically converts `UIMessage[]` (frontend format with `parts`) to `ModelMessage[]` (backend format with `content`) using `convertToModelMessages()`. The streaming response uses `toUIMessageStreamResponse()` for proper `useChat` integration.
175
+
176
+ ---
177
+
178
+ ## `beddel/client`
179
+
180
+ Type-only exports safe for client-side bundles (no Node.js dependencies).
181
+
182
+ ### Types
183
+
184
+ ```typescript
185
+ import type {
186
+ ParsedYaml,
187
+ WorkflowStep,
188
+ StepConfig,
189
+ YamlMetadata,
190
+ ExecutionContext,
191
+ PrimitiveHandler,
192
+ } from 'beddel/client';
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Type Definitions
198
+
199
+ ### `ParsedYaml`
200
+
201
+ ```typescript
202
+ interface ParsedYaml {
203
+ metadata: YamlMetadata;
204
+ workflow: WorkflowStep[];
205
+ }
206
+ ```
207
+
208
+ ### `YamlMetadata`
209
+
210
+ ```typescript
211
+ interface YamlMetadata {
212
+ name: string;
213
+ version: string;
214
+ }
215
+ ```
216
+
217
+ ### `WorkflowStep`
218
+
219
+ ```typescript
220
+ interface WorkflowStep {
221
+ id: string;
222
+ type: string; // 'llm' | 'output-generator' | 'call-agent' | custom
223
+ config: StepConfig;
224
+ result?: string; // Variable name to store step result
225
+ }
226
+ ```
227
+
228
+ ### `StepConfig`
229
+
230
+ ```typescript
231
+ interface StepConfig {
232
+ [key: string]: unknown; // Step-specific configuration
233
+ }
234
+ ```
235
+
236
+ ### `ExecutionContext`
237
+
238
+ ```typescript
239
+ interface ExecutionContext {
240
+ input: unknown;
241
+ variables: Map<string, unknown>;
242
+ }
243
+ ```
244
+
245
+ ### `PrimitiveHandler`
246
+
247
+ ```typescript
248
+ type PrimitiveHandler = (
249
+ config: StepConfig,
250
+ context: ExecutionContext
251
+ ) => Promise<Response | Record<string, unknown>>;
252
+ ```
253
+
254
+ ### `ToolImplementation`
255
+
256
+ ```typescript
257
+ interface ToolImplementation {
258
+ description: string;
259
+ parameters: z.ZodSchema;
260
+ execute: (args: Record<string, unknown>) => Promise<Record<string, unknown>>;
261
+ }
262
+ ```
263
+
264
+ ### `CallbackFn`
265
+
266
+ ```typescript
267
+ type CallbackFn = (payload: Record<string, unknown>) => void | Promise<void>;
268
+ ```
269
+
270
+ ---
271
+
272
+ ## AI SDK v6 Compatibility
273
+
274
+ Beddel is fully compatible with Vercel AI SDK v6 message formats:
275
+
276
+ ### Message Format Conversion
277
+
278
+ | Source | Format | Structure |
279
+ |--------|--------|-----------|
280
+ | Frontend (`useChat`) | `UIMessage[]` | `{ role, parts: [{ type: "text", text }] }` |
281
+ | Backend (`streamText`) | `ModelMessage[]` | `{ role, content }` |
282
+
283
+ The LLM primitive automatically handles this conversion:
284
+
285
+ ```typescript
286
+ // Internal conversion flow
287
+ const rawMessages = resolveVariables(config.messages, context) as UIMessage[];
288
+ const messages = await convertToModelMessages(rawMessages);
289
+ ```
290
+
291
+ ### Streaming Response
292
+
293
+ For streaming mode, `toUIMessageStreamResponse()` returns the correct format for `useChat`:
294
+
295
+ ```typescript
296
+ // Streaming mode returns UI-compatible stream
297
+ return result.toUIMessageStreamResponse();
298
+ ```
299
+
300
+ ---
301
+
302
+ ## Change Log
303
+
304
+ | Date | Version | Description |
305
+ |------|---------|-------------|
306
+ | 2024-12-24 | 1.0.0 | Initial API reference |
307
+ | 2024-12-24 | 1.0.1 | AI SDK v6 compatibility: UIMessage/ModelMessage conversion |
@@ -0,0 +1,246 @@
1
+ # Components
2
+
3
+ ## Core Components
4
+
5
+ ### Parser (`src/core/parser.ts`)
6
+
7
+ **Responsibility:** Load and parse YAML workflow definitions securely.
8
+
9
+ **Key Interfaces:**
10
+ - `loadYaml(path: string): Promise<ParsedYaml>`
11
+
12
+ **Dependencies:** `js-yaml`
13
+
14
+ **Technology Stack:** Uses `FAILSAFE_SCHEMA` to prevent function instantiation.
15
+
16
+ ---
17
+
18
+ ### WorkflowExecutor (`src/core/workflow.ts`)
19
+
20
+ **Responsibility:** Execute workflow steps sequentially, managing context and variable storage.
21
+
22
+ **Key Interfaces:**
23
+ - `constructor(yaml: ParsedYaml)`
24
+ - `execute(input: any): Promise<Response | Record<string, unknown>>`
25
+
26
+ **Dependencies:** `handlerRegistry` (primitives)
27
+
28
+ **Technology Stack:** Pure TypeScript, no external dependencies.
29
+
30
+ ---
31
+
32
+ ### Variable Resolver (`src/core/variable-resolver.ts`)
33
+
34
+ **Responsibility:** Resolve `$input.*` and `$stepResult.*` variable references.
35
+
36
+ **Key Interfaces:**
37
+ - `resolveVariables(template: any, context: ExecutionContext): any`
38
+
39
+ **Dependencies:** None
40
+
41
+ **Technology Stack:** Pure TypeScript.
42
+
43
+ ---
44
+
45
+ ### Primitive Handler Registry (`src/primitives/index.ts`)
46
+
47
+ **Responsibility:** Register and lookup primitive handlers by step type.
48
+
49
+ **Key Interfaces:**
50
+ - `handlerRegistry: Record<string, PrimitiveHandler>`
51
+ - `registerPrimitive(type: string, handler: PrimitiveHandler): void`
52
+
53
+ **Dependencies:** `llm`, `output-generator`, `call-agent` primitives
54
+
55
+ **Technology Stack:** Registry pattern implementation.
56
+
57
+ ---
58
+
59
+ ### LLM Primitive (`src/primitives/llm.ts`)
60
+
61
+ **Responsibility:** Execute LLM calls with dual-mode support (streaming/blocking) and lifecycle hooks.
62
+
63
+ **Key Interfaces:**
64
+ - `llmPrimitive(config: StepConfig, context: ExecutionContext): Promise<Response | object>`
65
+ - `mapTools(toolDefinitions): ToolSet` - Maps YAML tool definitions to SDK tools
66
+ - `registerCallback(name: string, fn: CallbackFn): void` - Register lifecycle callbacks
67
+ - `callbackRegistry: Record<string, CallbackFn>` - Stores registered callbacks
68
+
69
+ **Dependencies:** `ai`, `@ai-sdk/google`, `toolRegistry`, `callbackRegistry`
70
+
71
+ **Technology Stack (AI SDK v6):**
72
+ - `streamText()` for streaming mode → `result.toUIMessageStreamResponse()`
73
+ - `generateText()` for blocking mode → `{ text, usage }`
74
+ - `convertToModelMessages()` for UIMessage[] → ModelMessage[] conversion
75
+ - `dynamicTool()` for registry-based tool creation
76
+ - `stopWhen: stepCountIs(5)` for multi-step tool loops
77
+ - `onFinish` / `onError` lifecycle callbacks
78
+
79
+ **AI SDK v6 Message Format Compatibility:**
80
+ - Frontend (`useChat`) sends `UIMessage[]` with `{ parts: [...] }` format
81
+ - Backend (`streamText`/`generateText`) expects `ModelMessage[]` with `{ content: ... }`
82
+ - `convertToModelMessages()` bridges this gap automatically
83
+ - `toUIMessageStreamResponse()` returns the correct stream format for `useChat`
84
+
85
+ ---
86
+
87
+ ### Output Primitive (`src/primitives/output.ts`)
88
+
89
+ **Responsibility:** Deterministic JSON transform using variable resolution.
90
+
91
+ **Key Interfaces:**
92
+ - `outputPrimitive(config: StepConfig, context: ExecutionContext): Promise<Record<string, unknown>>`
93
+
94
+ **Dependencies:** `resolveVariables`
95
+
96
+ **Technology Stack:** Pure TypeScript.
97
+
98
+ ---
99
+
100
+ ### Call Agent Primitive (Placeholder)
101
+
102
+ **Responsibility:** Invoke another YAML workflow as a subroutine.
103
+
104
+ **Status:** 🚧 Coming Soon — currently registered as placeholder handler.
105
+
106
+ ---
107
+
108
+ ### Tool Registry (`src/tools/index.ts`)
109
+
110
+ **Responsibility:** Register and provide tool implementations for LLM primitives.
111
+
112
+ **Key Interfaces:**
113
+ - `toolRegistry: Record<string, ToolImplementation>`
114
+ - `registerTool(name: string, implementation: ToolImplementation): void`
115
+ - `ToolImplementation: { description, parameters (Zod), execute }`
116
+
117
+ **Built-in Tools:**
118
+ - `calculator` - Evaluate mathematical expressions
119
+ - `getCurrentTime` - Get current ISO timestamp
120
+
121
+ **Dependencies:** `zod`
122
+
123
+ **Technology Stack:** Zod schemas for parameter validation.
124
+
125
+ ---
126
+
127
+ ### Server Handler (`src/server/handler.ts`)
128
+
129
+ **Responsibility:** Factory for creating Next.js API route handlers.
130
+
131
+ **Key Interfaces:**
132
+ - `createBeddelHandler(options?: BeddelHandlerOptions): (request: NextRequest) => Promise<Response>`
133
+ - `BeddelHandlerOptions: { agentsPath?: string }`
134
+
135
+ **Dependencies:** `loadYaml`, `WorkflowExecutor`, `next/server`
136
+
137
+ **Technology Stack:** Next.js App Router API Routes.
138
+
139
+ **Usage:**
140
+ ```typescript
141
+ // app/api/beddel/chat/route.ts
142
+ import { createBeddelHandler } from 'beddel/server';
143
+
144
+ export const POST = createBeddelHandler({
145
+ agentsPath: 'src/agents' // Default: 'src/agents'
146
+ });
147
+ ```
148
+
149
+ ---
150
+
151
+ ## Extensibility APIs
152
+
153
+ Beddel follows the **Expansion Pack Pattern** for extensibility:
154
+
155
+ ### `registerPrimitive(type, handler)`
156
+
157
+ Add custom step types to the workflow engine.
158
+
159
+ ```typescript
160
+ import { registerPrimitive } from 'beddel';
161
+
162
+ registerPrimitive('http-fetch', async (config, context) => {
163
+ const response = await fetch(config.url);
164
+ return { data: await response.json() };
165
+ });
166
+ ```
167
+
168
+ ### `registerTool(name, implementation)`
169
+
170
+ Add custom tools for LLM function calling.
171
+
172
+ ```typescript
173
+ import { registerTool } from 'beddel';
174
+ import { z } from 'zod';
175
+
176
+ registerTool('weatherLookup', {
177
+ description: 'Get weather for a city',
178
+ parameters: z.object({ city: z.string() }),
179
+ execute: async ({ city }) => fetchWeather(city),
180
+ });
181
+ ```
182
+
183
+ ### `registerCallback(name, fn)`
184
+
185
+ Add lifecycle hooks for streaming completion.
186
+
187
+ ```typescript
188
+ import { registerCallback } from 'beddel';
189
+
190
+ registerCallback('persistConversation', async ({ text, usage }) => {
191
+ await db.saveMessage(text, usage);
192
+ });
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Component Diagram
198
+
199
+ ```mermaid
200
+ graph TB
201
+ subgraph "Entry Points"
202
+ Index["index.ts"]
203
+ Server["server.ts"]
204
+ Client["client.ts (types)"]
205
+ end
206
+
207
+ subgraph "Core"
208
+ Parser["parser.ts"]
209
+ Executor["workflow.ts"]
210
+ VarResolver["variable-resolver.ts"]
211
+ end
212
+
213
+ subgraph "Primitives"
214
+ Registry["index.ts (handlerRegistry)"]
215
+ LLMPrim["llm.ts"]
216
+ OutputPrim["output.ts"]
217
+ CallAgent["call-agent (placeholder)"]
218
+ end
219
+
220
+ subgraph "Tools"
221
+ ToolReg["index.ts (toolRegistry)"]
222
+ Calc["calculator"]
223
+ Time["getCurrentTime"]
224
+ end
225
+
226
+ subgraph "Server"
227
+ Handler["handler.ts"]
228
+ end
229
+
230
+ Index --> Parser
231
+ Index --> Executor
232
+ Index --> Registry
233
+ Index --> ToolReg
234
+ Server --> Handler
235
+ Handler --> Parser
236
+ Handler --> Executor
237
+ Executor --> Registry
238
+ Executor --> VarResolver
239
+ Registry --> LLMPrim
240
+ Registry --> OutputPrim
241
+ Registry --> CallAgent
242
+ LLMPrim --> ToolReg
243
+ ToolReg --> Calc
244
+ ToolReg --> Time
245
+ ```
246
+