@plumbus/core 0.1.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 (854) hide show
  1. package/bin/plumbus.js +11 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/ai/__tests__/ai-service.test.d.ts +2 -0
  4. package/dist/ai/__tests__/ai-service.test.d.ts.map +1 -0
  5. package/dist/ai/__tests__/ai-service.test.js +347 -0
  6. package/dist/ai/__tests__/ai-service.test.js.map +1 -0
  7. package/dist/ai/__tests__/chunking.test.d.ts +2 -0
  8. package/dist/ai/__tests__/chunking.test.d.ts.map +1 -0
  9. package/dist/ai/__tests__/chunking.test.js +44 -0
  10. package/dist/ai/__tests__/chunking.test.js.map +1 -0
  11. package/dist/ai/__tests__/cost-tracker.test.d.ts +2 -0
  12. package/dist/ai/__tests__/cost-tracker.test.d.ts.map +1 -0
  13. package/dist/ai/__tests__/cost-tracker.test.js +201 -0
  14. package/dist/ai/__tests__/cost-tracker.test.js.map +1 -0
  15. package/dist/ai/__tests__/explainability.test.d.ts +2 -0
  16. package/dist/ai/__tests__/explainability.test.d.ts.map +1 -0
  17. package/dist/ai/__tests__/explainability.test.js +100 -0
  18. package/dist/ai/__tests__/explainability.test.js.map +1 -0
  19. package/dist/ai/__tests__/prompt-registry.test.d.ts +2 -0
  20. package/dist/ai/__tests__/prompt-registry.test.d.ts.map +1 -0
  21. package/dist/ai/__tests__/prompt-registry.test.js +56 -0
  22. package/dist/ai/__tests__/prompt-registry.test.js.map +1 -0
  23. package/dist/ai/__tests__/provider.test.d.ts +3 -0
  24. package/dist/ai/__tests__/provider.test.d.ts.map +1 -0
  25. package/dist/ai/__tests__/provider.test.js +151 -0
  26. package/dist/ai/__tests__/provider.test.js.map +1 -0
  27. package/dist/ai/__tests__/rag-pipeline.test.d.ts +2 -0
  28. package/dist/ai/__tests__/rag-pipeline.test.d.ts.map +1 -0
  29. package/dist/ai/__tests__/rag-pipeline.test.js +128 -0
  30. package/dist/ai/__tests__/rag-pipeline.test.js.map +1 -0
  31. package/dist/ai/__tests__/security.test.d.ts +2 -0
  32. package/dist/ai/__tests__/security.test.d.ts.map +1 -0
  33. package/dist/ai/__tests__/security.test.js +89 -0
  34. package/dist/ai/__tests__/security.test.js.map +1 -0
  35. package/dist/ai/__tests__/usage-client.test.d.ts +2 -0
  36. package/dist/ai/__tests__/usage-client.test.d.ts.map +1 -0
  37. package/dist/ai/__tests__/usage-client.test.js +120 -0
  38. package/dist/ai/__tests__/usage-client.test.js.map +1 -0
  39. package/dist/ai/__tests__/validation.test.d.ts +2 -0
  40. package/dist/ai/__tests__/validation.test.d.ts.map +1 -0
  41. package/dist/ai/__tests__/validation.test.js +114 -0
  42. package/dist/ai/__tests__/validation.test.js.map +1 -0
  43. package/dist/ai/ai-service.d.ts +36 -0
  44. package/dist/ai/ai-service.d.ts.map +1 -0
  45. package/dist/ai/ai-service.js +258 -0
  46. package/dist/ai/ai-service.js.map +1 -0
  47. package/dist/ai/cost-tracker.d.ts +53 -0
  48. package/dist/ai/cost-tracker.d.ts.map +1 -0
  49. package/dist/ai/cost-tracker.js +114 -0
  50. package/dist/ai/cost-tracker.js.map +1 -0
  51. package/dist/ai/explainability.d.ts +41 -0
  52. package/dist/ai/explainability.d.ts.map +1 -0
  53. package/dist/ai/explainability.js +38 -0
  54. package/dist/ai/explainability.js.map +1 -0
  55. package/dist/ai/index.d.ts +10 -0
  56. package/dist/ai/index.d.ts.map +1 -0
  57. package/dist/ai/index.js +25 -0
  58. package/dist/ai/index.js.map +1 -0
  59. package/dist/ai/prompt-registry.d.ts +16 -0
  60. package/dist/ai/prompt-registry.d.ts.map +1 -0
  61. package/dist/ai/prompt-registry.js +69 -0
  62. package/dist/ai/prompt-registry.js.map +1 -0
  63. package/dist/ai/provider.d.ts +73 -0
  64. package/dist/ai/provider.d.ts.map +1 -0
  65. package/dist/ai/provider.js +322 -0
  66. package/dist/ai/provider.js.map +1 -0
  67. package/dist/ai/rag/chunking.d.ts +18 -0
  68. package/dist/ai/rag/chunking.d.ts.map +1 -0
  69. package/dist/ai/rag/chunking.js +58 -0
  70. package/dist/ai/rag/chunking.js.map +1 -0
  71. package/dist/ai/rag/index.d.ts +4 -0
  72. package/dist/ai/rag/index.d.ts.map +1 -0
  73. package/dist/ai/rag/index.js +5 -0
  74. package/dist/ai/rag/index.js.map +1 -0
  75. package/dist/ai/rag/pipeline.d.ts +69 -0
  76. package/dist/ai/rag/pipeline.d.ts.map +1 -0
  77. package/dist/ai/rag/pipeline.js +135 -0
  78. package/dist/ai/rag/pipeline.js.map +1 -0
  79. package/dist/ai/rag/schema.d.ts +320 -0
  80. package/dist/ai/rag/schema.d.ts.map +1 -0
  81. package/dist/ai/rag/schema.js +31 -0
  82. package/dist/ai/rag/schema.js.map +1 -0
  83. package/dist/ai/security.d.ts +28 -0
  84. package/dist/ai/security.d.ts.map +1 -0
  85. package/dist/ai/security.js +78 -0
  86. package/dist/ai/security.js.map +1 -0
  87. package/dist/ai/usage-client.d.ts +31 -0
  88. package/dist/ai/usage-client.d.ts.map +1 -0
  89. package/dist/ai/usage-client.js +106 -0
  90. package/dist/ai/usage-client.js.map +1 -0
  91. package/dist/ai/validation.d.ts +20 -0
  92. package/dist/ai/validation.d.ts.map +1 -0
  93. package/dist/ai/validation.js +39 -0
  94. package/dist/ai/validation.js.map +1 -0
  95. package/dist/api/__tests__/route-generator.test.d.ts +2 -0
  96. package/dist/api/__tests__/route-generator.test.d.ts.map +1 -0
  97. package/dist/api/__tests__/route-generator.test.js +101 -0
  98. package/dist/api/__tests__/route-generator.test.js.map +1 -0
  99. package/dist/api/index.d.ts +3 -0
  100. package/dist/api/index.d.ts.map +1 -0
  101. package/dist/api/index.js +7 -0
  102. package/dist/api/index.js.map +1 -0
  103. package/dist/api/route-generator.d.ts +24 -0
  104. package/dist/api/route-generator.d.ts.map +1 -0
  105. package/dist/api/route-generator.js +77 -0
  106. package/dist/api/route-generator.js.map +1 -0
  107. package/dist/audit/__tests__/service.test.d.ts +2 -0
  108. package/dist/audit/__tests__/service.test.d.ts.map +1 -0
  109. package/dist/audit/__tests__/service.test.js +97 -0
  110. package/dist/audit/__tests__/service.test.js.map +1 -0
  111. package/dist/audit/index.d.ts +4 -0
  112. package/dist/audit/index.d.ts.map +1 -0
  113. package/dist/audit/index.js +8 -0
  114. package/dist/audit/index.js.map +1 -0
  115. package/dist/audit/schema.d.ts +164 -0
  116. package/dist/audit/schema.d.ts.map +1 -0
  117. package/dist/audit/schema.js +16 -0
  118. package/dist/audit/schema.js.map +1 -0
  119. package/dist/audit/service.d.ts +14 -0
  120. package/dist/audit/service.d.ts.map +1 -0
  121. package/dist/audit/service.js +28 -0
  122. package/dist/audit/service.js.map +1 -0
  123. package/dist/auth/__tests__/adapter.test.d.ts +2 -0
  124. package/dist/auth/__tests__/adapter.test.d.ts.map +1 -0
  125. package/dist/auth/__tests__/adapter.test.js +218 -0
  126. package/dist/auth/__tests__/adapter.test.js.map +1 -0
  127. package/dist/auth/__tests__/oidc-adapter.test.d.ts +2 -0
  128. package/dist/auth/__tests__/oidc-adapter.test.d.ts.map +1 -0
  129. package/dist/auth/__tests__/oidc-adapter.test.js +232 -0
  130. package/dist/auth/__tests__/oidc-adapter.test.js.map +1 -0
  131. package/dist/auth/__tests__/password.test.d.ts +2 -0
  132. package/dist/auth/__tests__/password.test.d.ts.map +1 -0
  133. package/dist/auth/__tests__/password.test.js +30 -0
  134. package/dist/auth/__tests__/password.test.js.map +1 -0
  135. package/dist/auth/__tests__/saml-adapter.test.d.ts +2 -0
  136. package/dist/auth/__tests__/saml-adapter.test.d.ts.map +1 -0
  137. package/dist/auth/__tests__/saml-adapter.test.js +188 -0
  138. package/dist/auth/__tests__/saml-adapter.test.js.map +1 -0
  139. package/dist/auth/__tests__/scim.test.d.ts +2 -0
  140. package/dist/auth/__tests__/scim.test.d.ts.map +1 -0
  141. package/dist/auth/__tests__/scim.test.js +306 -0
  142. package/dist/auth/__tests__/scim.test.js.map +1 -0
  143. package/dist/auth/adapter.d.ts +60 -0
  144. package/dist/auth/adapter.d.ts.map +1 -0
  145. package/dist/auth/adapter.js +144 -0
  146. package/dist/auth/adapter.js.map +1 -0
  147. package/dist/auth/index.d.ts +11 -0
  148. package/dist/auth/index.d.ts.map +1 -0
  149. package/dist/auth/index.js +9 -0
  150. package/dist/auth/index.js.map +1 -0
  151. package/dist/auth/oidc-adapter.d.ts +32 -0
  152. package/dist/auth/oidc-adapter.d.ts.map +1 -0
  153. package/dist/auth/oidc-adapter.js +169 -0
  154. package/dist/auth/oidc-adapter.js.map +1 -0
  155. package/dist/auth/password.d.ts +13 -0
  156. package/dist/auth/password.d.ts.map +1 -0
  157. package/dist/auth/password.js +33 -0
  158. package/dist/auth/password.js.map +1 -0
  159. package/dist/auth/saml-adapter.d.ts +38 -0
  160. package/dist/auth/saml-adapter.d.ts.map +1 -0
  161. package/dist/auth/saml-adapter.js +209 -0
  162. package/dist/auth/saml-adapter.js.map +1 -0
  163. package/dist/auth/scim.d.ts +134 -0
  164. package/dist/auth/scim.d.ts.map +1 -0
  165. package/dist/auth/scim.js +207 -0
  166. package/dist/auth/scim.js.map +1 -0
  167. package/dist/cli/__tests__/agent.test.d.ts +2 -0
  168. package/dist/cli/__tests__/agent.test.d.ts.map +1 -0
  169. package/dist/cli/__tests__/agent.test.js +63 -0
  170. package/dist/cli/__tests__/agent.test.js.map +1 -0
  171. package/dist/cli/__tests__/certify.test.d.ts +2 -0
  172. package/dist/cli/__tests__/certify.test.d.ts.map +1 -0
  173. package/dist/cli/__tests__/certify.test.js +97 -0
  174. package/dist/cli/__tests__/certify.test.js.map +1 -0
  175. package/dist/cli/__tests__/cli.test.d.ts +2 -0
  176. package/dist/cli/__tests__/cli.test.d.ts.map +1 -0
  177. package/dist/cli/__tests__/cli.test.js +30 -0
  178. package/dist/cli/__tests__/cli.test.js.map +1 -0
  179. package/dist/cli/__tests__/create.test.d.ts +2 -0
  180. package/dist/cli/__tests__/create.test.d.ts.map +1 -0
  181. package/dist/cli/__tests__/create.test.js +46 -0
  182. package/dist/cli/__tests__/create.test.js.map +1 -0
  183. package/dist/cli/__tests__/dev.test.d.ts +2 -0
  184. package/dist/cli/__tests__/dev.test.d.ts.map +1 -0
  185. package/dist/cli/__tests__/dev.test.js +132 -0
  186. package/dist/cli/__tests__/dev.test.js.map +1 -0
  187. package/dist/cli/__tests__/discover.test.d.ts +2 -0
  188. package/dist/cli/__tests__/discover.test.d.ts.map +1 -0
  189. package/dist/cli/__tests__/discover.test.js +48 -0
  190. package/dist/cli/__tests__/discover.test.js.map +1 -0
  191. package/dist/cli/__tests__/doctor.test.d.ts +2 -0
  192. package/dist/cli/__tests__/doctor.test.d.ts.map +1 -0
  193. package/dist/cli/__tests__/doctor.test.js +56 -0
  194. package/dist/cli/__tests__/doctor.test.js.map +1 -0
  195. package/dist/cli/__tests__/generate.test.d.ts +2 -0
  196. package/dist/cli/__tests__/generate.test.d.ts.map +1 -0
  197. package/dist/cli/__tests__/generate.test.js +68 -0
  198. package/dist/cli/__tests__/generate.test.js.map +1 -0
  199. package/dist/cli/__tests__/init.test.d.ts +2 -0
  200. package/dist/cli/__tests__/init.test.d.ts.map +1 -0
  201. package/dist/cli/__tests__/init.test.js +75 -0
  202. package/dist/cli/__tests__/init.test.js.map +1 -0
  203. package/dist/cli/__tests__/migrate.test.d.ts +2 -0
  204. package/dist/cli/__tests__/migrate.test.d.ts.map +1 -0
  205. package/dist/cli/__tests__/migrate.test.js +285 -0
  206. package/dist/cli/__tests__/migrate.test.js.map +1 -0
  207. package/dist/cli/__tests__/templates.test.d.ts +2 -0
  208. package/dist/cli/__tests__/templates.test.d.ts.map +1 -0
  209. package/dist/cli/__tests__/templates.test.js +49 -0
  210. package/dist/cli/__tests__/templates.test.js.map +1 -0
  211. package/dist/cli/__tests__/test.test.d.ts +2 -0
  212. package/dist/cli/__tests__/test.test.d.ts.map +1 -0
  213. package/dist/cli/__tests__/test.test.js +40 -0
  214. package/dist/cli/__tests__/test.test.js.map +1 -0
  215. package/dist/cli/__tests__/ui.test.d.ts +2 -0
  216. package/dist/cli/__tests__/ui.test.d.ts.map +1 -0
  217. package/dist/cli/__tests__/ui.test.js +62 -0
  218. package/dist/cli/__tests__/ui.test.js.map +1 -0
  219. package/dist/cli/__tests__/utils.test.d.ts +2 -0
  220. package/dist/cli/__tests__/utils.test.d.ts.map +1 -0
  221. package/dist/cli/__tests__/utils.test.js +30 -0
  222. package/dist/cli/__tests__/utils.test.js.map +1 -0
  223. package/dist/cli/__tests__/verify.test.d.ts +2 -0
  224. package/dist/cli/__tests__/verify.test.d.ts.map +1 -0
  225. package/dist/cli/__tests__/verify.test.js +138 -0
  226. package/dist/cli/__tests__/verify.test.js.map +1 -0
  227. package/dist/cli/cli.d.ts +3 -0
  228. package/dist/cli/cli.d.ts.map +1 -0
  229. package/dist/cli/cli.js +33 -0
  230. package/dist/cli/cli.js.map +1 -0
  231. package/dist/cli/commands/__tests__/commands.test.d.ts +2 -0
  232. package/dist/cli/commands/__tests__/commands.test.d.ts.map +1 -0
  233. package/dist/cli/commands/__tests__/commands.test.js +180 -0
  234. package/dist/cli/commands/__tests__/commands.test.js.map +1 -0
  235. package/dist/cli/commands/agent.d.ts +17 -0
  236. package/dist/cli/commands/agent.d.ts.map +1 -0
  237. package/dist/cli/commands/agent.js +154 -0
  238. package/dist/cli/commands/agent.js.map +1 -0
  239. package/dist/cli/commands/capability.d.ts +7 -0
  240. package/dist/cli/commands/capability.d.ts.map +1 -0
  241. package/dist/cli/commands/capability.js +27 -0
  242. package/dist/cli/commands/capability.js.map +1 -0
  243. package/dist/cli/commands/certify.d.ts +24 -0
  244. package/dist/cli/commands/certify.d.ts.map +1 -0
  245. package/dist/cli/commands/certify.js +228 -0
  246. package/dist/cli/commands/certify.js.map +1 -0
  247. package/dist/cli/commands/create.d.ts +13 -0
  248. package/dist/cli/commands/create.d.ts.map +1 -0
  249. package/dist/cli/commands/create.js +190 -0
  250. package/dist/cli/commands/create.js.map +1 -0
  251. package/dist/cli/commands/dev.d.ts +36 -0
  252. package/dist/cli/commands/dev.d.ts.map +1 -0
  253. package/dist/cli/commands/dev.js +178 -0
  254. package/dist/cli/commands/dev.js.map +1 -0
  255. package/dist/cli/commands/doctor.d.ts +31 -0
  256. package/dist/cli/commands/doctor.d.ts.map +1 -0
  257. package/dist/cli/commands/doctor.js +233 -0
  258. package/dist/cli/commands/doctor.js.map +1 -0
  259. package/dist/cli/commands/e2e.d.ts +3 -0
  260. package/dist/cli/commands/e2e.d.ts.map +1 -0
  261. package/dist/cli/commands/e2e.js +165 -0
  262. package/dist/cli/commands/e2e.js.map +1 -0
  263. package/dist/cli/commands/entity.d.ts +3 -0
  264. package/dist/cli/commands/entity.d.ts.map +1 -0
  265. package/dist/cli/commands/entity.js +21 -0
  266. package/dist/cli/commands/entity.js.map +1 -0
  267. package/dist/cli/commands/event.d.ts +3 -0
  268. package/dist/cli/commands/event.d.ts.map +1 -0
  269. package/dist/cli/commands/event.js +21 -0
  270. package/dist/cli/commands/event.js.map +1 -0
  271. package/dist/cli/commands/flow.d.ts +3 -0
  272. package/dist/cli/commands/flow.d.ts.map +1 -0
  273. package/dist/cli/commands/flow.js +25 -0
  274. package/dist/cli/commands/flow.js.map +1 -0
  275. package/dist/cli/commands/generate.d.ts +17 -0
  276. package/dist/cli/commands/generate.d.ts.map +1 -0
  277. package/dist/cli/commands/generate.js +175 -0
  278. package/dist/cli/commands/generate.js.map +1 -0
  279. package/dist/cli/commands/index.d.ts +20 -0
  280. package/dist/cli/commands/index.d.ts.map +1 -0
  281. package/dist/cli/commands/index.js +45 -0
  282. package/dist/cli/commands/index.js.map +1 -0
  283. package/dist/cli/commands/init.d.ts +20 -0
  284. package/dist/cli/commands/init.d.ts.map +1 -0
  285. package/dist/cli/commands/init.js +261 -0
  286. package/dist/cli/commands/init.js.map +1 -0
  287. package/dist/cli/commands/migrate.d.ts +7 -0
  288. package/dist/cli/commands/migrate.d.ts.map +1 -0
  289. package/dist/cli/commands/migrate.js +523 -0
  290. package/dist/cli/commands/migrate.js.map +1 -0
  291. package/dist/cli/commands/prompt.d.ts +3 -0
  292. package/dist/cli/commands/prompt.d.ts.map +1 -0
  293. package/dist/cli/commands/prompt.js +21 -0
  294. package/dist/cli/commands/prompt.js.map +1 -0
  295. package/dist/cli/commands/rag.d.ts +13 -0
  296. package/dist/cli/commands/rag.d.ts.map +1 -0
  297. package/dist/cli/commands/rag.js +100 -0
  298. package/dist/cli/commands/rag.js.map +1 -0
  299. package/dist/cli/commands/seed.d.ts +19 -0
  300. package/dist/cli/commands/seed.d.ts.map +1 -0
  301. package/dist/cli/commands/seed.js +183 -0
  302. package/dist/cli/commands/seed.js.map +1 -0
  303. package/dist/cli/commands/test.d.ts +17 -0
  304. package/dist/cli/commands/test.d.ts.map +1 -0
  305. package/dist/cli/commands/test.js +128 -0
  306. package/dist/cli/commands/test.js.map +1 -0
  307. package/dist/cli/commands/ui.d.ts +53 -0
  308. package/dist/cli/commands/ui.d.ts.map +1 -0
  309. package/dist/cli/commands/ui.js +291 -0
  310. package/dist/cli/commands/ui.js.map +1 -0
  311. package/dist/cli/commands/verify.d.ts +21 -0
  312. package/dist/cli/commands/verify.d.ts.map +1 -0
  313. package/dist/cli/commands/verify.js +153 -0
  314. package/dist/cli/commands/verify.js.map +1 -0
  315. package/dist/cli/discover.d.ts +26 -0
  316. package/dist/cli/discover.d.ts.map +1 -0
  317. package/dist/cli/discover.js +127 -0
  318. package/dist/cli/discover.js.map +1 -0
  319. package/dist/cli/index.d.ts +12 -0
  320. package/dist/cli/index.d.ts.map +1 -0
  321. package/dist/cli/index.js +21 -0
  322. package/dist/cli/index.js.map +1 -0
  323. package/dist/cli/templates/resources.d.ts +8 -0
  324. package/dist/cli/templates/resources.d.ts.map +1 -0
  325. package/dist/cli/templates/resources.js +157 -0
  326. package/dist/cli/templates/resources.js.map +1 -0
  327. package/dist/cli/utils.d.ts +27 -0
  328. package/dist/cli/utils.d.ts.map +1 -0
  329. package/dist/cli/utils.js +69 -0
  330. package/dist/cli/utils.js.map +1 -0
  331. package/dist/config/__tests__/loader.test.d.ts +2 -0
  332. package/dist/config/__tests__/loader.test.d.ts.map +1 -0
  333. package/dist/config/__tests__/loader.test.js +462 -0
  334. package/dist/config/__tests__/loader.test.js.map +1 -0
  335. package/dist/config/index.d.ts +3 -0
  336. package/dist/config/index.d.ts.map +1 -0
  337. package/dist/config/index.js +7 -0
  338. package/dist/config/index.js.map +1 -0
  339. package/dist/config/loader.d.ts +21 -0
  340. package/dist/config/loader.d.ts.map +1 -0
  341. package/dist/config/loader.js +190 -0
  342. package/dist/config/loader.js.map +1 -0
  343. package/dist/data/__tests__/registry.test.d.ts +2 -0
  344. package/dist/data/__tests__/registry.test.d.ts.map +1 -0
  345. package/dist/data/__tests__/registry.test.js +55 -0
  346. package/dist/data/__tests__/registry.test.js.map +1 -0
  347. package/dist/data/__tests__/repository.test.d.ts +2 -0
  348. package/dist/data/__tests__/repository.test.d.ts.map +1 -0
  349. package/dist/data/__tests__/repository.test.js +197 -0
  350. package/dist/data/__tests__/repository.test.js.map +1 -0
  351. package/dist/data/__tests__/schema-generator.test.d.ts +2 -0
  352. package/dist/data/__tests__/schema-generator.test.d.ts.map +1 -0
  353. package/dist/data/__tests__/schema-generator.test.js +112 -0
  354. package/dist/data/__tests__/schema-generator.test.js.map +1 -0
  355. package/dist/data/index.d.ts +5 -0
  356. package/dist/data/index.d.ts.map +1 -0
  357. package/dist/data/index.js +10 -0
  358. package/dist/data/index.js.map +1 -0
  359. package/dist/data/migration.d.ts +35 -0
  360. package/dist/data/migration.d.ts.map +1 -0
  361. package/dist/data/migration.js +55 -0
  362. package/dist/data/migration.js.map +1 -0
  363. package/dist/data/registry.d.ts +49 -0
  364. package/dist/data/registry.d.ts.map +1 -0
  365. package/dist/data/registry.js +74 -0
  366. package/dist/data/registry.js.map +1 -0
  367. package/dist/data/repository.d.ts +22 -0
  368. package/dist/data/repository.d.ts.map +1 -0
  369. package/dist/data/repository.js +170 -0
  370. package/dist/data/repository.js.map +1 -0
  371. package/dist/data/schema-generator.d.ts +12 -0
  372. package/dist/data/schema-generator.d.ts.map +1 -0
  373. package/dist/data/schema-generator.js +123 -0
  374. package/dist/data/schema-generator.js.map +1 -0
  375. package/dist/define/__tests__/defineCapability.test.d.ts +2 -0
  376. package/dist/define/__tests__/defineCapability.test.d.ts.map +1 -0
  377. package/dist/define/__tests__/defineCapability.test.js +66 -0
  378. package/dist/define/__tests__/defineCapability.test.js.map +1 -0
  379. package/dist/define/__tests__/defineEntity.test.d.ts +2 -0
  380. package/dist/define/__tests__/defineEntity.test.d.ts.map +1 -0
  381. package/dist/define/__tests__/defineEntity.test.js +50 -0
  382. package/dist/define/__tests__/defineEntity.test.js.map +1 -0
  383. package/dist/define/__tests__/defineEvent.test.d.ts +2 -0
  384. package/dist/define/__tests__/defineEvent.test.d.ts.map +1 -0
  385. package/dist/define/__tests__/defineEvent.test.js +35 -0
  386. package/dist/define/__tests__/defineEvent.test.js.map +1 -0
  387. package/dist/define/__tests__/defineFlow.test.d.ts +2 -0
  388. package/dist/define/__tests__/defineFlow.test.d.ts.map +1 -0
  389. package/dist/define/__tests__/defineFlow.test.js +49 -0
  390. package/dist/define/__tests__/defineFlow.test.js.map +1 -0
  391. package/dist/define/__tests__/definePrompt.test.d.ts +2 -0
  392. package/dist/define/__tests__/definePrompt.test.d.ts.map +1 -0
  393. package/dist/define/__tests__/definePrompt.test.js +40 -0
  394. package/dist/define/__tests__/definePrompt.test.js.map +1 -0
  395. package/dist/define/defineCapability.d.ts +38 -0
  396. package/dist/define/defineCapability.d.ts.map +1 -0
  397. package/dist/define/defineCapability.js +33 -0
  398. package/dist/define/defineCapability.js.map +1 -0
  399. package/dist/define/defineEntity.d.ts +16 -0
  400. package/dist/define/defineEntity.d.ts.map +1 -0
  401. package/dist/define/defineEntity.js +21 -0
  402. package/dist/define/defineEntity.js.map +1 -0
  403. package/dist/define/defineEvent.d.ts +13 -0
  404. package/dist/define/defineEvent.d.ts.map +1 -0
  405. package/dist/define/defineEvent.js +17 -0
  406. package/dist/define/defineEvent.js.map +1 -0
  407. package/dist/define/defineFlow.d.ts +17 -0
  408. package/dist/define/defineFlow.d.ts.map +1 -0
  409. package/dist/define/defineFlow.js +23 -0
  410. package/dist/define/defineFlow.js.map +1 -0
  411. package/dist/define/definePrompt.d.ts +15 -0
  412. package/dist/define/definePrompt.d.ts.map +1 -0
  413. package/dist/define/definePrompt.js +20 -0
  414. package/dist/define/definePrompt.js.map +1 -0
  415. package/dist/define/index.d.ts +6 -0
  416. package/dist/define/index.d.ts.map +1 -0
  417. package/dist/define/index.js +10 -0
  418. package/dist/define/index.js.map +1 -0
  419. package/dist/errors/__tests__/errors.test.d.ts +2 -0
  420. package/dist/errors/__tests__/errors.test.d.ts.map +1 -0
  421. package/dist/errors/__tests__/errors.test.js +42 -0
  422. package/dist/errors/__tests__/errors.test.js.map +1 -0
  423. package/dist/errors/__tests__/http.test.d.ts +2 -0
  424. package/dist/errors/__tests__/http.test.d.ts.map +1 -0
  425. package/dist/errors/__tests__/http.test.js +32 -0
  426. package/dist/errors/__tests__/http.test.js.map +1 -0
  427. package/dist/errors/http.d.ts +13 -0
  428. package/dist/errors/http.d.ts.map +1 -0
  429. package/dist/errors/http.js +26 -0
  430. package/dist/errors/http.js.map +1 -0
  431. package/dist/errors/index.d.ts +4 -0
  432. package/dist/errors/index.d.ts.map +1 -0
  433. package/dist/errors/index.js +22 -0
  434. package/dist/errors/index.js.map +1 -0
  435. package/dist/events/__tests__/consumer-registry.test.d.ts +2 -0
  436. package/dist/events/__tests__/consumer-registry.test.d.ts.map +1 -0
  437. package/dist/events/__tests__/consumer-registry.test.js +68 -0
  438. package/dist/events/__tests__/consumer-registry.test.js.map +1 -0
  439. package/dist/events/__tests__/dispatcher.test.d.ts +2 -0
  440. package/dist/events/__tests__/dispatcher.test.d.ts.map +1 -0
  441. package/dist/events/__tests__/dispatcher.test.js +168 -0
  442. package/dist/events/__tests__/dispatcher.test.js.map +1 -0
  443. package/dist/events/__tests__/event-emitter.test.d.ts +2 -0
  444. package/dist/events/__tests__/event-emitter.test.d.ts.map +1 -0
  445. package/dist/events/__tests__/event-emitter.test.js +100 -0
  446. package/dist/events/__tests__/event-emitter.test.js.map +1 -0
  447. package/dist/events/__tests__/event-registry.test.d.ts +2 -0
  448. package/dist/events/__tests__/event-registry.test.d.ts.map +1 -0
  449. package/dist/events/__tests__/event-registry.test.js +55 -0
  450. package/dist/events/__tests__/event-registry.test.js.map +1 -0
  451. package/dist/events/__tests__/event-worker.test.d.ts +2 -0
  452. package/dist/events/__tests__/event-worker.test.d.ts.map +1 -0
  453. package/dist/events/__tests__/event-worker.test.js +174 -0
  454. package/dist/events/__tests__/event-worker.test.js.map +1 -0
  455. package/dist/events/__tests__/queue.test.d.ts +2 -0
  456. package/dist/events/__tests__/queue.test.d.ts.map +1 -0
  457. package/dist/events/__tests__/queue.test.js +73 -0
  458. package/dist/events/__tests__/queue.test.js.map +1 -0
  459. package/dist/events/consumer-registry.d.ts +47 -0
  460. package/dist/events/consumer-registry.d.ts.map +1 -0
  461. package/dist/events/consumer-registry.js +79 -0
  462. package/dist/events/consumer-registry.js.map +1 -0
  463. package/dist/events/dispatcher.d.ts +31 -0
  464. package/dist/events/dispatcher.d.ts.map +1 -0
  465. package/dist/events/dispatcher.js +149 -0
  466. package/dist/events/dispatcher.js.map +1 -0
  467. package/dist/events/emitter.d.ts +22 -0
  468. package/dist/events/emitter.d.ts.map +1 -0
  469. package/dist/events/emitter.js +58 -0
  470. package/dist/events/emitter.js.map +1 -0
  471. package/dist/events/idempotency.d.ts +13 -0
  472. package/dist/events/idempotency.d.ts.map +1 -0
  473. package/dist/events/idempotency.js +25 -0
  474. package/dist/events/idempotency.js.map +1 -0
  475. package/dist/events/index.d.ts +15 -0
  476. package/dist/events/index.d.ts.map +1 -0
  477. package/dist/events/index.js +23 -0
  478. package/dist/events/index.js.map +1 -0
  479. package/dist/events/outbox.d.ts +475 -0
  480. package/dist/events/outbox.d.ts.map +1 -0
  481. package/dist/events/outbox.js +48 -0
  482. package/dist/events/outbox.js.map +1 -0
  483. package/dist/events/queue.d.ts +58 -0
  484. package/dist/events/queue.d.ts.map +1 -0
  485. package/dist/events/queue.js +135 -0
  486. package/dist/events/queue.js.map +1 -0
  487. package/dist/events/registry.d.ts +36 -0
  488. package/dist/events/registry.d.ts.map +1 -0
  489. package/dist/events/registry.js +59 -0
  490. package/dist/events/registry.js.map +1 -0
  491. package/dist/events/worker.d.ts +34 -0
  492. package/dist/events/worker.d.ts.map +1 -0
  493. package/dist/events/worker.js +88 -0
  494. package/dist/events/worker.js.map +1 -0
  495. package/dist/execution/__tests__/authorization.test.d.ts +2 -0
  496. package/dist/execution/__tests__/authorization.test.d.ts.map +1 -0
  497. package/dist/execution/__tests__/authorization.test.js +88 -0
  498. package/dist/execution/__tests__/authorization.test.js.map +1 -0
  499. package/dist/execution/__tests__/capability-executor.test.d.ts +2 -0
  500. package/dist/execution/__tests__/capability-executor.test.d.ts.map +1 -0
  501. package/dist/execution/__tests__/capability-executor.test.js +184 -0
  502. package/dist/execution/__tests__/capability-executor.test.js.map +1 -0
  503. package/dist/execution/__tests__/capability-registry.test.d.ts +2 -0
  504. package/dist/execution/__tests__/capability-registry.test.d.ts.map +1 -0
  505. package/dist/execution/__tests__/capability-registry.test.js +50 -0
  506. package/dist/execution/__tests__/capability-registry.test.js.map +1 -0
  507. package/dist/execution/__tests__/context-factory.test.d.ts +2 -0
  508. package/dist/execution/__tests__/context-factory.test.d.ts.map +1 -0
  509. package/dist/execution/__tests__/context-factory.test.js +116 -0
  510. package/dist/execution/__tests__/context-factory.test.js.map +1 -0
  511. package/dist/execution/authorization.d.ts +11 -0
  512. package/dist/execution/authorization.d.ts.map +1 -0
  513. package/dist/execution/authorization.js +50 -0
  514. package/dist/execution/authorization.js.map +1 -0
  515. package/dist/execution/capability-executor.d.ts +23 -0
  516. package/dist/execution/capability-executor.d.ts.map +1 -0
  517. package/dist/execution/capability-executor.js +91 -0
  518. package/dist/execution/capability-executor.js.map +1 -0
  519. package/dist/execution/capability-registry.d.ts +33 -0
  520. package/dist/execution/capability-registry.d.ts.map +1 -0
  521. package/dist/execution/capability-registry.js +49 -0
  522. package/dist/execution/capability-registry.js.map +1 -0
  523. package/dist/execution/context-factory.d.ts +20 -0
  524. package/dist/execution/context-factory.d.ts.map +1 -0
  525. package/dist/execution/context-factory.js +98 -0
  526. package/dist/execution/context-factory.js.map +1 -0
  527. package/dist/execution/index.d.ts +8 -0
  528. package/dist/execution/index.d.ts.map +1 -0
  529. package/dist/execution/index.js +10 -0
  530. package/dist/execution/index.js.map +1 -0
  531. package/dist/explanation/__tests__/tracker.test.d.ts +2 -0
  532. package/dist/explanation/__tests__/tracker.test.d.ts.map +1 -0
  533. package/dist/explanation/__tests__/tracker.test.js +169 -0
  534. package/dist/explanation/__tests__/tracker.test.js.map +1 -0
  535. package/dist/explanation/index.d.ts +3 -0
  536. package/dist/explanation/index.d.ts.map +1 -0
  537. package/dist/explanation/index.js +7 -0
  538. package/dist/explanation/index.js.map +1 -0
  539. package/dist/explanation/tracker.d.ts +81 -0
  540. package/dist/explanation/tracker.d.ts.map +1 -0
  541. package/dist/explanation/tracker.js +100 -0
  542. package/dist/explanation/tracker.js.map +1 -0
  543. package/dist/fields/__tests__/fields.test.d.ts +2 -0
  544. package/dist/fields/__tests__/fields.test.d.ts.map +1 -0
  545. package/dist/fields/__tests__/fields.test.js +60 -0
  546. package/dist/fields/__tests__/fields.test.js.map +1 -0
  547. package/dist/fields/index.d.ts +18 -0
  548. package/dist/fields/index.d.ts.map +1 -0
  549. package/dist/fields/index.js +51 -0
  550. package/dist/fields/index.js.map +1 -0
  551. package/dist/flows/__tests__/flow-engine.test.d.ts +2 -0
  552. package/dist/flows/__tests__/flow-engine.test.d.ts.map +1 -0
  553. package/dist/flows/__tests__/flow-engine.test.js +189 -0
  554. package/dist/flows/__tests__/flow-engine.test.js.map +1 -0
  555. package/dist/flows/__tests__/flow-registry.test.d.ts +2 -0
  556. package/dist/flows/__tests__/flow-registry.test.d.ts.map +1 -0
  557. package/dist/flows/__tests__/flow-registry.test.js +69 -0
  558. package/dist/flows/__tests__/flow-registry.test.js.map +1 -0
  559. package/dist/flows/__tests__/flow-service.test.d.ts +2 -0
  560. package/dist/flows/__tests__/flow-service.test.d.ts.map +1 -0
  561. package/dist/flows/__tests__/flow-service.test.js +47 -0
  562. package/dist/flows/__tests__/flow-service.test.js.map +1 -0
  563. package/dist/flows/__tests__/scheduler.test.d.ts +2 -0
  564. package/dist/flows/__tests__/scheduler.test.d.ts.map +1 -0
  565. package/dist/flows/__tests__/scheduler.test.js +120 -0
  566. package/dist/flows/__tests__/scheduler.test.js.map +1 -0
  567. package/dist/flows/__tests__/state-machine.test.d.ts +2 -0
  568. package/dist/flows/__tests__/state-machine.test.d.ts.map +1 -0
  569. package/dist/flows/__tests__/state-machine.test.js +62 -0
  570. package/dist/flows/__tests__/state-machine.test.js.map +1 -0
  571. package/dist/flows/__tests__/step-executor.test.d.ts +2 -0
  572. package/dist/flows/__tests__/step-executor.test.d.ts.map +1 -0
  573. package/dist/flows/__tests__/step-executor.test.js +139 -0
  574. package/dist/flows/__tests__/step-executor.test.js.map +1 -0
  575. package/dist/flows/__tests__/triggers.test.d.ts +2 -0
  576. package/dist/flows/__tests__/triggers.test.d.ts.map +1 -0
  577. package/dist/flows/__tests__/triggers.test.js +98 -0
  578. package/dist/flows/__tests__/triggers.test.js.map +1 -0
  579. package/dist/flows/dead-letter.d.ts +12 -0
  580. package/dist/flows/dead-letter.d.ts.map +1 -0
  581. package/dist/flows/dead-letter.js +63 -0
  582. package/dist/flows/dead-letter.js.map +1 -0
  583. package/dist/flows/engine.d.ts +35 -0
  584. package/dist/flows/engine.d.ts.map +1 -0
  585. package/dist/flows/engine.js +402 -0
  586. package/dist/flows/engine.js.map +1 -0
  587. package/dist/flows/flow-service.d.ts +10 -0
  588. package/dist/flows/flow-service.d.ts.map +1 -0
  589. package/dist/flows/flow-service.js +22 -0
  590. package/dist/flows/flow-service.js.map +1 -0
  591. package/dist/flows/index.d.ts +14 -0
  592. package/dist/flows/index.d.ts.map +1 -0
  593. package/dist/flows/index.js +25 -0
  594. package/dist/flows/index.js.map +1 -0
  595. package/dist/flows/registry.d.ts +47 -0
  596. package/dist/flows/registry.d.ts.map +1 -0
  597. package/dist/flows/registry.js +108 -0
  598. package/dist/flows/registry.js.map +1 -0
  599. package/dist/flows/scheduler.d.ts +41 -0
  600. package/dist/flows/scheduler.d.ts.map +1 -0
  601. package/dist/flows/scheduler.js +242 -0
  602. package/dist/flows/scheduler.js.map +1 -0
  603. package/dist/flows/schema.d.ts +627 -0
  604. package/dist/flows/schema.d.ts.map +1 -0
  605. package/dist/flows/schema.js +60 -0
  606. package/dist/flows/schema.js.map +1 -0
  607. package/dist/flows/state-machine.d.ts +41 -0
  608. package/dist/flows/state-machine.d.ts.map +1 -0
  609. package/dist/flows/state-machine.js +56 -0
  610. package/dist/flows/state-machine.js.map +1 -0
  611. package/dist/flows/step-executor.d.ts +36 -0
  612. package/dist/flows/step-executor.d.ts.map +1 -0
  613. package/dist/flows/step-executor.js +109 -0
  614. package/dist/flows/step-executor.js.map +1 -0
  615. package/dist/flows/triggers.d.ts +15 -0
  616. package/dist/flows/triggers.d.ts.map +1 -0
  617. package/dist/flows/triggers.js +36 -0
  618. package/dist/flows/triggers.js.map +1 -0
  619. package/dist/governance/__tests__/overrides.test.d.ts +2 -0
  620. package/dist/governance/__tests__/overrides.test.d.ts.map +1 -0
  621. package/dist/governance/__tests__/overrides.test.js +123 -0
  622. package/dist/governance/__tests__/overrides.test.js.map +1 -0
  623. package/dist/governance/__tests__/policies.test.d.ts +2 -0
  624. package/dist/governance/__tests__/policies.test.d.ts.map +1 -0
  625. package/dist/governance/__tests__/policies.test.js +203 -0
  626. package/dist/governance/__tests__/policies.test.js.map +1 -0
  627. package/dist/governance/__tests__/rules.test.d.ts +2 -0
  628. package/dist/governance/__tests__/rules.test.d.ts.map +1 -0
  629. package/dist/governance/__tests__/rules.test.js +342 -0
  630. package/dist/governance/__tests__/rules.test.js.map +1 -0
  631. package/dist/governance/index.d.ts +10 -0
  632. package/dist/governance/index.d.ts.map +1 -0
  633. package/dist/governance/index.js +12 -0
  634. package/dist/governance/index.js.map +1 -0
  635. package/dist/governance/overrides.d.ts +24 -0
  636. package/dist/governance/overrides.d.ts.map +1 -0
  637. package/dist/governance/overrides.js +74 -0
  638. package/dist/governance/overrides.js.map +1 -0
  639. package/dist/governance/policies.d.ts +22 -0
  640. package/dist/governance/policies.d.ts.map +1 -0
  641. package/dist/governance/policies.js +279 -0
  642. package/dist/governance/policies.js.map +1 -0
  643. package/dist/governance/reports.d.ts +15 -0
  644. package/dist/governance/reports.d.ts.map +1 -0
  645. package/dist/governance/reports.js +79 -0
  646. package/dist/governance/reports.js.map +1 -0
  647. package/dist/governance/rule-engine.d.ts +45 -0
  648. package/dist/governance/rule-engine.d.ts.map +1 -0
  649. package/dist/governance/rule-engine.js +60 -0
  650. package/dist/governance/rule-engine.js.map +1 -0
  651. package/dist/governance/rules/ai.d.ts +11 -0
  652. package/dist/governance/rules/ai.d.ts.map +1 -0
  653. package/dist/governance/rules/ai.js +88 -0
  654. package/dist/governance/rules/ai.js.map +1 -0
  655. package/dist/governance/rules/architecture.d.ts +13 -0
  656. package/dist/governance/rules/architecture.d.ts.map +1 -0
  657. package/dist/governance/rules/architecture.js +114 -0
  658. package/dist/governance/rules/architecture.js.map +1 -0
  659. package/dist/governance/rules/index.d.ts +5 -0
  660. package/dist/governance/rules/index.d.ts.map +1 -0
  661. package/dist/governance/rules/index.js +6 -0
  662. package/dist/governance/rules/index.js.map +1 -0
  663. package/dist/governance/rules/privacy.d.ts +11 -0
  664. package/dist/governance/rules/privacy.d.ts.map +1 -0
  665. package/dist/governance/rules/privacy.js +97 -0
  666. package/dist/governance/rules/privacy.js.map +1 -0
  667. package/dist/governance/rules/security.d.ts +11 -0
  668. package/dist/governance/rules/security.d.ts.map +1 -0
  669. package/dist/governance/rules/security.js +83 -0
  670. package/dist/governance/rules/security.js.map +1 -0
  671. package/dist/index.d.ts +40 -0
  672. package/dist/index.d.ts.map +1 -0
  673. package/dist/index.js +79 -0
  674. package/dist/index.js.map +1 -0
  675. package/dist/observability/__tests__/metrics.test.d.ts +2 -0
  676. package/dist/observability/__tests__/metrics.test.d.ts.map +1 -0
  677. package/dist/observability/__tests__/metrics.test.js +301 -0
  678. package/dist/observability/__tests__/metrics.test.js.map +1 -0
  679. package/dist/observability/index.d.ts +3 -0
  680. package/dist/observability/index.d.ts.map +1 -0
  681. package/dist/observability/index.js +7 -0
  682. package/dist/observability/index.js.map +1 -0
  683. package/dist/observability/metrics.d.ts +130 -0
  684. package/dist/observability/metrics.d.ts.map +1 -0
  685. package/dist/observability/metrics.js +255 -0
  686. package/dist/observability/metrics.js.map +1 -0
  687. package/dist/server/__tests__/bootstrap.test.d.ts +2 -0
  688. package/dist/server/__tests__/bootstrap.test.d.ts.map +1 -0
  689. package/dist/server/__tests__/bootstrap.test.js +223 -0
  690. package/dist/server/__tests__/bootstrap.test.js.map +1 -0
  691. package/dist/server/bootstrap.d.ts +44 -0
  692. package/dist/server/bootstrap.d.ts.map +1 -0
  693. package/dist/server/bootstrap.js +153 -0
  694. package/dist/server/bootstrap.js.map +1 -0
  695. package/dist/server/index.d.ts +3 -0
  696. package/dist/server/index.d.ts.map +1 -0
  697. package/dist/server/index.js +6 -0
  698. package/dist/server/index.js.map +1 -0
  699. package/dist/testing/__tests__/context.test.d.ts +2 -0
  700. package/dist/testing/__tests__/context.test.d.ts.map +1 -0
  701. package/dist/testing/__tests__/context.test.js +341 -0
  702. package/dist/testing/__tests__/context.test.js.map +1 -0
  703. package/dist/testing/__tests__/e2e.test.d.ts +2 -0
  704. package/dist/testing/__tests__/e2e.test.d.ts.map +1 -0
  705. package/dist/testing/__tests__/e2e.test.js +119 -0
  706. package/dist/testing/__tests__/e2e.test.js.map +1 -0
  707. package/dist/testing/__tests__/field-validation.test.d.ts +2 -0
  708. package/dist/testing/__tests__/field-validation.test.d.ts.map +1 -0
  709. package/dist/testing/__tests__/field-validation.test.js +178 -0
  710. package/dist/testing/__tests__/field-validation.test.js.map +1 -0
  711. package/dist/testing/__tests__/governance.test.d.ts +2 -0
  712. package/dist/testing/__tests__/governance.test.d.ts.map +1 -0
  713. package/dist/testing/__tests__/governance.test.js +222 -0
  714. package/dist/testing/__tests__/governance.test.js.map +1 -0
  715. package/dist/testing/__tests__/run-capability.test.d.ts +2 -0
  716. package/dist/testing/__tests__/run-capability.test.d.ts.map +1 -0
  717. package/dist/testing/__tests__/run-capability.test.js +114 -0
  718. package/dist/testing/__tests__/run-capability.test.js.map +1 -0
  719. package/dist/testing/__tests__/scaffolding.test.d.ts +2 -0
  720. package/dist/testing/__tests__/scaffolding.test.d.ts.map +1 -0
  721. package/dist/testing/__tests__/scaffolding.test.js +70 -0
  722. package/dist/testing/__tests__/scaffolding.test.js.map +1 -0
  723. package/dist/testing/__tests__/security.test.d.ts +2 -0
  724. package/dist/testing/__tests__/security.test.d.ts.map +1 -0
  725. package/dist/testing/__tests__/security.test.js +186 -0
  726. package/dist/testing/__tests__/security.test.js.map +1 -0
  727. package/dist/testing/__tests__/simulate-flow.test.d.ts +2 -0
  728. package/dist/testing/__tests__/simulate-flow.test.d.ts.map +1 -0
  729. package/dist/testing/__tests__/simulate-flow.test.js +198 -0
  730. package/dist/testing/__tests__/simulate-flow.test.js.map +1 -0
  731. package/dist/testing/context.d.ts +90 -0
  732. package/dist/testing/context.d.ts.map +1 -0
  733. package/dist/testing/context.js +230 -0
  734. package/dist/testing/context.js.map +1 -0
  735. package/dist/testing/e2e.d.ts +58 -0
  736. package/dist/testing/e2e.d.ts.map +1 -0
  737. package/dist/testing/e2e.js +118 -0
  738. package/dist/testing/e2e.js.map +1 -0
  739. package/dist/testing/field-validation.d.ts +18 -0
  740. package/dist/testing/field-validation.d.ts.map +1 -0
  741. package/dist/testing/field-validation.js +99 -0
  742. package/dist/testing/field-validation.js.map +1 -0
  743. package/dist/testing/governance.d.ts +38 -0
  744. package/dist/testing/governance.d.ts.map +1 -0
  745. package/dist/testing/governance.js +104 -0
  746. package/dist/testing/governance.js.map +1 -0
  747. package/dist/testing/index.d.ts +18 -0
  748. package/dist/testing/index.d.ts.map +1 -0
  749. package/dist/testing/index.js +29 -0
  750. package/dist/testing/index.js.map +1 -0
  751. package/dist/testing/run-capability.d.ts +20 -0
  752. package/dist/testing/run-capability.d.ts.map +1 -0
  753. package/dist/testing/run-capability.js +19 -0
  754. package/dist/testing/run-capability.js.map +1 -0
  755. package/dist/testing/scaffolding.d.ts +46 -0
  756. package/dist/testing/scaffolding.d.ts.map +1 -0
  757. package/dist/testing/scaffolding.js +266 -0
  758. package/dist/testing/scaffolding.js.map +1 -0
  759. package/dist/testing/security.d.ts +42 -0
  760. package/dist/testing/security.d.ts.map +1 -0
  761. package/dist/testing/security.js +102 -0
  762. package/dist/testing/security.js.map +1 -0
  763. package/dist/testing/simulate-flow.d.ts +45 -0
  764. package/dist/testing/simulate-flow.d.ts.map +1 -0
  765. package/dist/testing/simulate-flow.js +136 -0
  766. package/dist/testing/simulate-flow.js.map +1 -0
  767. package/dist/types/audit.d.ts +15 -0
  768. package/dist/types/audit.d.ts.map +1 -0
  769. package/dist/types/audit.js +2 -0
  770. package/dist/types/audit.js.map +1 -0
  771. package/dist/types/capability.d.ts +38 -0
  772. package/dist/types/capability.d.ts.map +1 -0
  773. package/dist/types/capability.js +2 -0
  774. package/dist/types/capability.js.map +1 -0
  775. package/dist/types/config.d.ts +60 -0
  776. package/dist/types/config.d.ts.map +1 -0
  777. package/dist/types/config.js +2 -0
  778. package/dist/types/config.js.map +1 -0
  779. package/dist/types/context.d.ts +90 -0
  780. package/dist/types/context.d.ts.map +1 -0
  781. package/dist/types/context.js +2 -0
  782. package/dist/types/context.js.map +1 -0
  783. package/dist/types/entity.d.ts +16 -0
  784. package/dist/types/entity.d.ts.map +1 -0
  785. package/dist/types/entity.js +2 -0
  786. package/dist/types/entity.js.map +1 -0
  787. package/dist/types/enums.d.ts +66 -0
  788. package/dist/types/enums.d.ts.map +1 -0
  789. package/dist/types/enums.js +66 -0
  790. package/dist/types/enums.js.map +1 -0
  791. package/dist/types/errors.d.ts +14 -0
  792. package/dist/types/errors.d.ts.map +1 -0
  793. package/dist/types/errors.js +2 -0
  794. package/dist/types/errors.js.map +1 -0
  795. package/dist/types/event.d.ts +21 -0
  796. package/dist/types/event.d.ts.map +1 -0
  797. package/dist/types/event.js +2 -0
  798. package/dist/types/event.js.map +1 -0
  799. package/dist/types/fields.d.ts +51 -0
  800. package/dist/types/fields.d.ts.map +1 -0
  801. package/dist/types/fields.js +2 -0
  802. package/dist/types/fields.js.map +1 -0
  803. package/dist/types/flow.d.ts +54 -0
  804. package/dist/types/flow.d.ts.map +1 -0
  805. package/dist/types/flow.js +2 -0
  806. package/dist/types/flow.js.map +1 -0
  807. package/dist/types/governance.d.ts +30 -0
  808. package/dist/types/governance.d.ts.map +1 -0
  809. package/dist/types/governance.js +2 -0
  810. package/dist/types/governance.js.map +1 -0
  811. package/dist/types/index.d.ts +14 -0
  812. package/dist/types/index.d.ts.map +1 -0
  813. package/dist/types/index.js +7 -0
  814. package/dist/types/index.js.map +1 -0
  815. package/dist/types/prompt.d.ts +18 -0
  816. package/dist/types/prompt.d.ts.map +1 -0
  817. package/dist/types/prompt.js +2 -0
  818. package/dist/types/prompt.js.map +1 -0
  819. package/dist/types/security.d.ts +17 -0
  820. package/dist/types/security.d.ts.map +1 -0
  821. package/dist/types/security.js +2 -0
  822. package/dist/types/security.js.map +1 -0
  823. package/dist/vitest/index.d.ts +2 -0
  824. package/dist/vitest/index.d.ts.map +1 -0
  825. package/dist/vitest/index.js +5 -0
  826. package/dist/vitest/index.js.map +1 -0
  827. package/dist/worker/__tests__/bootstrap.test.d.ts +2 -0
  828. package/dist/worker/__tests__/bootstrap.test.d.ts.map +1 -0
  829. package/dist/worker/__tests__/bootstrap.test.js +211 -0
  830. package/dist/worker/__tests__/bootstrap.test.js.map +1 -0
  831. package/dist/worker/bootstrap.d.ts +51 -0
  832. package/dist/worker/bootstrap.d.ts.map +1 -0
  833. package/dist/worker/bootstrap.js +166 -0
  834. package/dist/worker/bootstrap.js.map +1 -0
  835. package/dist/worker/index.d.ts +3 -0
  836. package/dist/worker/index.d.ts.map +1 -0
  837. package/dist/worker/index.js +6 -0
  838. package/dist/worker/index.js.map +1 -0
  839. package/dist/zod/index.d.ts +2 -0
  840. package/dist/zod/index.d.ts.map +1 -0
  841. package/dist/zod/index.js +5 -0
  842. package/dist/zod/index.js.map +1 -0
  843. package/instructions/ai.md +183 -0
  844. package/instructions/capabilities.md +171 -0
  845. package/instructions/cli.md +113 -0
  846. package/instructions/entities.md +94 -0
  847. package/instructions/events.md +93 -0
  848. package/instructions/flows.md +114 -0
  849. package/instructions/framework.md +86 -0
  850. package/instructions/governance.md +78 -0
  851. package/instructions/patterns.md +107 -0
  852. package/instructions/security.md +79 -0
  853. package/instructions/testing.md +244 -0
  854. package/package.json +76 -0
@@ -0,0 +1,38 @@
1
+ import type { GovernanceResult, GovernanceRule, SystemInventory } from '../governance/rule-engine.js';
2
+ import type { GovernanceSeverity } from '../types/enums.js';
3
+ import type { GovernanceOverride } from '../types/governance.js';
4
+ /**
5
+ * Assert that specific governance rules fired in a result.
6
+ * Checks that each expected rule ID is present in the signals.
7
+ */
8
+ export declare function assertGovernanceSignals(result: GovernanceResult, expectedRuleIds: string[]): void;
9
+ /**
10
+ * Assert that specific governance rules did NOT fire.
11
+ */
12
+ export declare function assertNoGovernanceSignal(result: GovernanceResult, unexpectedRuleIds: string[]): void;
13
+ /**
14
+ * Assert that only signals of a given max severity are present.
15
+ * e.g., assertMaxSeverity(result, "warning") ensures no "high" severity signals.
16
+ */
17
+ export declare function assertMaxSeverity(result: GovernanceResult, maxSeverity: GovernanceSeverity): void;
18
+ /**
19
+ * Assert that specific overrides were applied in a governance result.
20
+ */
21
+ export declare function assertOverridesApplied(result: GovernanceResult, expectedRuleIds: string[]): void;
22
+ /**
23
+ * Assert that a system inventory is compliant with a policy profile.
24
+ * "Compliant" means compatibility score >= threshold (default: 100%).
25
+ */
26
+ export declare function assertPolicyCompliance(inventory: SystemInventory, profileName: string, overrides?: GovernanceOverride[], threshold?: number): void;
27
+ /**
28
+ * Assert that a system inventory FAILS a policy profile (for testing negative cases).
29
+ */
30
+ export declare function assertPolicyNonCompliance(inventory: SystemInventory, profileName: string, overrides?: GovernanceOverride[]): void;
31
+ /**
32
+ * Evaluate governance rules against an inventory and return the result.
33
+ * Convenience wrapper that creates an engine, registers rules, and evaluates.
34
+ */
35
+ export declare function evaluateGovernance(rules: GovernanceRule[], inventory: SystemInventory, overrides?: GovernanceOverride[]): GovernanceResult;
36
+ /** Create an empty SystemInventory, optionally overriding specific collections */
37
+ export declare function emptyInventory(overrides?: Partial<SystemInventory>): SystemInventory;
38
+ //# sourceMappingURL=governance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/testing/governance.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAIjE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAUjG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,EAAE,MAAM,EAAE,GAC1B,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAUjG;AAID;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAUhG;AAID;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,kBAAkB,EAAO,EACpC,SAAS,SAAM,GACd,IAAI,CAYN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,kBAAkB,EAAO,GACnC,IAAI,CAKN;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EAAE,EACvB,SAAS,EAAE,eAAe,EAC1B,SAAS,GAAE,kBAAkB,EAAO,GACnC,gBAAgB,CAIlB;AAID,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CASpF"}
@@ -0,0 +1,104 @@
1
+ // ── Governance Test Helpers ──
2
+ // Assertions for governance rules, policy compliance, overrides, and signals.
3
+ import { evaluatePolicyProfile } from '../governance/policies.js';
4
+ import { createGovernanceRuleEngine } from '../governance/rule-engine.js';
5
+ // ── Signal Assertions ──
6
+ /**
7
+ * Assert that specific governance rules fired in a result.
8
+ * Checks that each expected rule ID is present in the signals.
9
+ */
10
+ export function assertGovernanceSignals(result, expectedRuleIds) {
11
+ const signalRules = result.signals.map((s) => s.rule);
12
+ for (const expected of expectedRuleIds) {
13
+ if (!signalRules.includes(expected)) {
14
+ throw new Error(`Expected governance rule "${expected}" to fire but it did not.\n` +
15
+ ` Fired rules: [${signalRules.join(', ')}]`);
16
+ }
17
+ }
18
+ }
19
+ /**
20
+ * Assert that specific governance rules did NOT fire.
21
+ */
22
+ export function assertNoGovernanceSignal(result, unexpectedRuleIds) {
23
+ const signalRules = result.signals.map((s) => s.rule);
24
+ for (const unexpected of unexpectedRuleIds) {
25
+ if (signalRules.includes(unexpected)) {
26
+ throw new Error(`Expected governance rule "${unexpected}" NOT to fire but it did.\n` +
27
+ ` Signal: ${result.signals.find((s) => s.rule === unexpected)?.description}`);
28
+ }
29
+ }
30
+ }
31
+ /**
32
+ * Assert that only signals of a given max severity are present.
33
+ * e.g., assertMaxSeverity(result, "warning") ensures no "high" severity signals.
34
+ */
35
+ export function assertMaxSeverity(result, maxSeverity) {
36
+ const severityOrder = { info: 0, warning: 1, high: 2 };
37
+ const maxLevel = severityOrder[maxSeverity] ?? 0;
38
+ const violations = result.effective.filter((s) => (severityOrder[s.severity] ?? 0) > maxLevel);
39
+ if (violations.length > 0) {
40
+ throw new Error(`Expected no signals above "${maxSeverity}" severity but found:\n` +
41
+ violations.map((v) => ` - [${v.severity}] ${v.rule}: ${v.description}`).join('\n'));
42
+ }
43
+ }
44
+ // ── Override Assertions ──
45
+ /**
46
+ * Assert that specific overrides were applied in a governance result.
47
+ */
48
+ export function assertOverridesApplied(result, expectedRuleIds) {
49
+ const appliedRules = result.overrideApplied.map((o) => o.rule);
50
+ for (const expected of expectedRuleIds) {
51
+ if (!appliedRules.includes(expected)) {
52
+ throw new Error(`Expected override for rule "${expected}" to be applied but it was not.\n` +
53
+ ` Applied overrides: [${appliedRules.join(', ')}]`);
54
+ }
55
+ }
56
+ }
57
+ // ── Policy Compliance Assertions ──
58
+ /**
59
+ * Assert that a system inventory is compliant with a policy profile.
60
+ * "Compliant" means compatibility score >= threshold (default: 100%).
61
+ */
62
+ export function assertPolicyCompliance(inventory, profileName, overrides = [], threshold = 100) {
63
+ const report = evaluatePolicyProfile(profileName, inventory, overrides);
64
+ if (report.score < threshold) {
65
+ const failures = report.results
66
+ .filter((r) => r.status === 'fail')
67
+ .map((r) => ` - [${r.severity}] ${r.rule}: ${r.description ?? ''}`)
68
+ .join('\n');
69
+ throw new Error(`Policy "${profileName}" compliance: ${report.score}% (threshold: ${threshold}%)\n` +
70
+ `Failed rules:\n${failures}`);
71
+ }
72
+ }
73
+ /**
74
+ * Assert that a system inventory FAILS a policy profile (for testing negative cases).
75
+ */
76
+ export function assertPolicyNonCompliance(inventory, profileName, overrides = []) {
77
+ const report = evaluatePolicyProfile(profileName, inventory, overrides);
78
+ if (report.score >= 100) {
79
+ throw new Error(`Expected policy "${profileName}" to FAIL but it passed with ${report.score}%`);
80
+ }
81
+ }
82
+ // ── Quick Governance Check ──
83
+ /**
84
+ * Evaluate governance rules against an inventory and return the result.
85
+ * Convenience wrapper that creates an engine, registers rules, and evaluates.
86
+ */
87
+ export function evaluateGovernance(rules, inventory, overrides = []) {
88
+ const engine = createGovernanceRuleEngine();
89
+ engine.registerMany(rules);
90
+ return engine.evaluate(inventory, overrides);
91
+ }
92
+ // ── Empty Inventory Builder ──
93
+ /** Create an empty SystemInventory, optionally overriding specific collections */
94
+ export function emptyInventory(overrides) {
95
+ return {
96
+ capabilities: [],
97
+ entities: [],
98
+ flows: [],
99
+ events: [],
100
+ prompts: [],
101
+ ...overrides,
102
+ };
103
+ }
104
+ //# sourceMappingURL=governance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/testing/governance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export type { Browser, BrowserContext, Page } from 'playwright';
2
+ export { chromium, firefox, webkit } from 'playwright';
3
+ export { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
4
+ export type { AIResponse, MockAuditService, MockEventService, MockFlowService, MockLoggerService, TestAuthOptions, TestContextOptions, } from './context.js';
5
+ export { createInMemoryRepository, createTestAuth, createTestContext, createTestData, fixedTime, mockAI, mockAudit, mockEvents, mockFlows, mockLogger, } from './context.js';
6
+ export type { FieldValidationError } from './field-validation.js';
7
+ export { buildEntityFieldMap, validateRecord } from './field-validation.js';
8
+ export type { E2EServerContext, E2EServerOptions } from './e2e.js';
9
+ export { createE2EServer, createTestBearerHeader } from './e2e.js';
10
+ export { assertGovernanceSignals, assertMaxSeverity, assertNoGovernanceSignal, assertOverridesApplied, assertPolicyCompliance, assertPolicyNonCompliance, emptyInventory, evaluateGovernance, } from './governance.js';
11
+ export type { RunCapabilityOptions } from './run-capability.js';
12
+ export { runCapability } from './run-capability.js';
13
+ export type { E2EActionDescriptor, E2EPageDescriptor, E2EQueryDescriptor, } from './scaffolding.js';
14
+ export { generateCapabilityTest, generateE2ETest, generateFlowTest, generateGovernanceTest, generateSecurityTest, } from './scaffolding.js';
15
+ export { adminAuth, assertAccessAllowed, assertAccessDenied, assertCapabilityAllowed, assertCapabilityDenied, assertPlumbusError, assertTenantIsolation, assertValidationError, serviceAccountAuth, unauthenticated, } from './security.js';
16
+ export type { FlowSimulationResult, SimulateFlowOptions, } from './simulate-flow.js';
17
+ export { simulateFlow } from './simulate-flow.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAOA,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIvD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9F,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,MAAM,EACN,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGnE,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,29 @@
1
+ // ── Testing Module ──
2
+ // Test utilities for Plumbus applications: mock context factory, capability runner,
3
+ // flow simulator, security assertion helpers, governance test helpers, and scaffolding.
4
+ // Use createTestContext() for a fully-mocked ExecutionContext.
5
+ //
6
+ // Key exports: createTestContext, runCapability, simulateFlow, assertAccessDenied
7
+ // ── Playwright Re-export ──
8
+ // Consumer apps get playwright through the framework — no separate install needed.
9
+ export { chromium, firefox, webkit } from 'playwright';
10
+ // ── Vitest Re-export ──
11
+ // Consumer apps get vitest through the framework — no separate install needed.
12
+ // Test files: import { describe, it, expect } from "@plumbus/core/testing";
13
+ export { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
14
+ // ── Context & Mock Factories ──
15
+ export { createInMemoryRepository, createTestAuth, createTestContext, createTestData, fixedTime, mockAI, mockAudit, mockEvents, mockFlows, mockLogger, } from './context.js';
16
+ export { buildEntityFieldMap, validateRecord } from './field-validation.js';
17
+ // ── E2E / Browser Test Utilities ──
18
+ export { createE2EServer, createTestBearerHeader } from './e2e.js';
19
+ // ── Governance Test Helpers ──
20
+ export { assertGovernanceSignals, assertMaxSeverity, assertNoGovernanceSignal, assertOverridesApplied, assertPolicyCompliance, assertPolicyNonCompliance, emptyInventory, evaluateGovernance, } from './governance.js';
21
+ // ── Capability Test Runner ──
22
+ export { runCapability } from './run-capability.js';
23
+ // ── Test Scaffolding Generator ──
24
+ export { generateCapabilityTest, generateE2ETest, generateFlowTest, generateGovernanceTest, generateSecurityTest, } from './scaffolding.js';
25
+ // ── Security Test Helpers ──
26
+ export { adminAuth, assertAccessAllowed, assertAccessDenied, assertCapabilityAllowed, assertCapabilityDenied, assertPlumbusError, assertTenantIsolation, assertValidationError, serviceAccountAuth, unauthenticated, } from './security.js';
27
+ // ── Flow Simulator ──
28
+ export { simulateFlow } from './simulate-flow.js';
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,oFAAoF;AACpF,wFAAwF;AACxF,+DAA+D;AAC/D,EAAE;AACF,kFAAkF;AAGlF,6BAA6B;AAC7B,mFAAmF;AACnF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACvD,yBAAyB;AACzB,+EAA+E;AAC/E,4EAA4E;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAU9F,iCAAiC;AACjC,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,MAAM,EACN,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5E,qCAAqC;AACrC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEnE,gCAAgC;AAChC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,+BAA+B;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD,mCAAmC;AACnC,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,8BAA8B;AAC9B,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,GAChB,MAAM,eAAe,CAAC;AAKvB,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { z } from 'zod';
2
+ import { type CapabilityResult } from '../execution/capability-executor.js';
3
+ import type { CapabilityContract } from '../types/capability.js';
4
+ import type { ExecutionContext } from '../types/context.js';
5
+ import { type TestContextOptions } from './context.js';
6
+ export interface RunCapabilityOptions extends TestContextOptions {
7
+ /** Provide a pre-built context instead of building one from options */
8
+ ctx?: ExecutionContext;
9
+ }
10
+ /**
11
+ * Execute a capability in a test environment.
12
+ *
13
+ * Usage:
14
+ * ```ts
15
+ * const result = await runCapability(myCapability, { id: "123" });
16
+ * if (result.success) expect(result.data).toEqual(...);
17
+ * ```
18
+ */
19
+ export declare function runCapability<TInput extends z.ZodTypeAny, TOutput extends z.ZodTypeAny>(capability: CapabilityContract<TInput, TOutput>, input: unknown, options?: RunCapabilityOptions): Promise<CapabilityResult<z.infer<TOutput>>>;
20
+ //# sourceMappingURL=run-capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-capability.d.ts","sourceRoot":"","sources":["../../src/testing/run-capability.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC/F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,uEAAuE;IACvE,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,SAAS,CAAC,CAAC,UAAU,EAC3F,UAAU,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAG7C"}
@@ -0,0 +1,19 @@
1
+ // ── Capability Test Runner ──
2
+ // Execute a capability in an isolated test environment without requiring
3
+ // a real server, auth middleware, or database.
4
+ import { executeCapability } from '../execution/capability-executor.js';
5
+ import { createTestContext } from './context.js';
6
+ /**
7
+ * Execute a capability in a test environment.
8
+ *
9
+ * Usage:
10
+ * ```ts
11
+ * const result = await runCapability(myCapability, { id: "123" });
12
+ * if (result.success) expect(result.data).toEqual(...);
13
+ * ```
14
+ */
15
+ export async function runCapability(capability, input, options) {
16
+ const ctx = options?.ctx ?? createTestContext(options);
17
+ return executeCapability(capability, ctx, input);
18
+ }
19
+ //# sourceMappingURL=run-capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-capability.js","sourceRoot":"","sources":["../../src/testing/run-capability.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,yEAAyE;AACzE,+CAA+C;AAG/C,OAAO,EAAE,iBAAiB,EAAyB,MAAM,qCAAqC,CAAC;AAG/F,OAAO,EAAE,iBAAiB,EAA2B,MAAM,cAAc,CAAC;AAO1E;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAA+C,EAC/C,KAAc,EACd,OAA8B;IAE9B,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Generate a capability test file using the testing framework.
3
+ */
4
+ export declare function generateCapabilityTest(name: string, _domain: string, _kind?: string): string;
5
+ /**
6
+ * Generate a flow test file using the testing framework.
7
+ */
8
+ export declare function generateFlowTest(name: string, _domain: string): string;
9
+ /**
10
+ * Generate a security test file for a capability.
11
+ */
12
+ export declare function generateSecurityTest(name: string, _domain: string): string;
13
+ /**
14
+ * Generate a governance test file for a resource inventory.
15
+ */
16
+ export declare function generateGovernanceTest(domain: string): string;
17
+ export interface E2EPageDescriptor {
18
+ /** Route path, e.g. "/project" */
19
+ route: string;
20
+ /** Display name for the page */
21
+ pageName: string;
22
+ /** Action panels on this page — each has a title and field names */
23
+ actions: E2EActionDescriptor[];
24
+ /** Query panels that auto-fetch on load */
25
+ queries?: E2EQueryDescriptor[];
26
+ }
27
+ export interface E2EActionDescriptor {
28
+ /** Panel title as it appears in the UI */
29
+ title: string;
30
+ /** Submit button label */
31
+ submitLabel: string;
32
+ /** Field names in this panel's form */
33
+ fields: string[];
34
+ }
35
+ export interface E2EQueryDescriptor {
36
+ /** Panel title as it appears in the UI */
37
+ title: string;
38
+ }
39
+ /**
40
+ * Generate an E2E browser test file for a page in a Plumbus Next.js app.
41
+ *
42
+ * Uses vitest as the test runner with Playwright for browser automation.
43
+ * Both come from the framework — no additional packages needed.
44
+ */
45
+ export declare function generateE2ETest(page: E2EPageDescriptor): string;
46
+ //# sourceMappingURL=scaffolding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffolding.d.ts","sourceRoot":"","sources":["../../src/testing/scaffolding.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAiB,GACvB,MAAM,CAwDR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAwCtE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAwC1E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAwC7D;AAID,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAuE/D"}
@@ -0,0 +1,266 @@
1
+ // ── Test Scaffolding Generator ──
2
+ // Generates test files for capabilities, flows, entities, and events
3
+ // that use the @plumbus/core/testing utilities.
4
+ import { toCamelCase, toPascalCase } from '../cli/utils.js';
5
+ /**
6
+ * Generate a capability test file using the testing framework.
7
+ */
8
+ export function generateCapabilityTest(name, _domain, _kind = 'action') {
9
+ const pascal = toPascalCase(name);
10
+ const camel = toCamelCase(name);
11
+ return `import { describe, it, expect } from "vitest";
12
+ import { z } from "zod";
13
+ import {
14
+ runCapability,
15
+ createTestContext,
16
+ createTestAuth,
17
+ mockAI,
18
+ } from "@plumbus/core/testing";
19
+ import { ${camel} } from "../capability.js";
20
+
21
+ describe("${pascal}", () => {
22
+ it("executes successfully with valid input", async () => {
23
+ const result = await runCapability(${camel}, {
24
+ // TODO: provide valid input
25
+ });
26
+ expect(result.success).toBe(true);
27
+ });
28
+
29
+ it("rejects invalid input", async () => {
30
+ const result = await runCapability(${camel}, {
31
+ // TODO: provide invalid input
32
+ });
33
+ expect(result.success).toBe(false);
34
+ if (!result.success) {
35
+ expect(result.error.code).toBe("validation");
36
+ }
37
+ });
38
+
39
+ it("denies access to unauthorized users", async () => {
40
+ const result = await runCapability(${camel}, {
41
+ // TODO: provide valid input
42
+ }, {
43
+ auth: { roles: [] },
44
+ });
45
+ expect(result.success).toBe(false);
46
+ if (!result.success) {
47
+ expect(result.error.code).toBe("forbidden");
48
+ }
49
+ });
50
+
51
+ it("allows access for authorized roles", async () => {
52
+ const result = await runCapability(${camel}, {
53
+ // TODO: provide valid input
54
+ }, {
55
+ auth: { roles: ["admin"] },
56
+ });
57
+ // Should not get a forbidden error
58
+ if (!result.success) {
59
+ expect(result.error.code).not.toBe("forbidden");
60
+ }
61
+ });
62
+ });
63
+ `;
64
+ }
65
+ /**
66
+ * Generate a flow test file using the testing framework.
67
+ */
68
+ export function generateFlowTest(name, _domain) {
69
+ const pascal = toPascalCase(name);
70
+ const camel = toCamelCase(name);
71
+ return `import { describe, it, expect } from "vitest";
72
+ import { simulateFlow } from "@plumbus/core/testing";
73
+ import { ${camel}Flow } from "../flow.js";
74
+
75
+ describe("${pascal} Flow", () => {
76
+ it("completes all steps successfully", async () => {
77
+ const result = await simulateFlow(${camel}Flow, {
78
+ // TODO: provide valid flow input
79
+ });
80
+ expect(result.status).toBe("completed");
81
+ expect(result.history.length).toBeGreaterThan(0);
82
+ });
83
+
84
+ it("tracks step execution history", async () => {
85
+ const result = await simulateFlow(${camel}Flow, {
86
+ // TODO: provide valid flow input
87
+ });
88
+ for (const entry of result.history) {
89
+ expect(entry.step).toBeDefined();
90
+ expect(entry.status).toBeDefined();
91
+ }
92
+ });
93
+
94
+ it("handles capability step failure", async () => {
95
+ const result = await simulateFlow(${camel}Flow, {
96
+ // TODO: provide valid flow input
97
+ }, {
98
+ capabilityResults: {
99
+ // TODO: map step name → failure result
100
+ // "processOrder": { success: false, error: "processing failed" },
101
+ },
102
+ });
103
+ expect(result.status).toBe("failed");
104
+ expect(result.error).toBeDefined();
105
+ });
106
+ });
107
+ `;
108
+ }
109
+ /**
110
+ * Generate a security test file for a capability.
111
+ */
112
+ export function generateSecurityTest(name, _domain) {
113
+ const pascal = toPascalCase(name);
114
+ const camel = toCamelCase(name);
115
+ return `import { describe, it, expect } from "vitest";
116
+ import {
117
+ assertCapabilityDenied,
118
+ assertCapabilityAllowed,
119
+ assertTenantIsolation,
120
+ unauthenticated,
121
+ adminAuth,
122
+ } from "@plumbus/core/testing";
123
+ import { ${camel} } from "../capability.js";
124
+
125
+ describe("${pascal} Security", () => {
126
+ const validInput = {
127
+ // TODO: provide valid input
128
+ };
129
+
130
+ it("denies unauthenticated access", async () => {
131
+ await assertCapabilityDenied(${camel}, validInput, {
132
+ auth: { roles: [], userId: undefined },
133
+ });
134
+ });
135
+
136
+ it("allows admin access", async () => {
137
+ await assertCapabilityAllowed(${camel}, validInput, {
138
+ auth: { roles: ["admin"], tenantId: "tenant-1" },
139
+ });
140
+ });
141
+
142
+ it("enforces tenant isolation", async () => {
143
+ const { sameTenantResult, crossTenantResult } = await assertTenantIsolation(
144
+ ${camel}, validInput, "tenant-1",
145
+ );
146
+ // Verify same-tenant access pattern
147
+ expect(sameTenantResult).toBeDefined();
148
+ expect(crossTenantResult).toBeDefined();
149
+ });
150
+ });
151
+ `;
152
+ }
153
+ /**
154
+ * Generate a governance test file for a resource inventory.
155
+ */
156
+ export function generateGovernanceTest(domain) {
157
+ const pascal = toPascalCase(domain);
158
+ return `import { describe, it, expect } from "vitest";
159
+ import {
160
+ evaluateGovernance,
161
+ emptyInventory,
162
+ assertGovernanceSignals,
163
+ assertNoGovernanceSignal,
164
+ assertPolicyCompliance,
165
+ } from "@plumbus/core/testing";
166
+ import {
167
+ securityRules,
168
+ privacyRules,
169
+ architectureRules,
170
+ } from "@plumbus/core";
171
+
172
+ describe("${pascal} Governance", () => {
173
+ // TODO: Import your capabilities, entities, etc.
174
+ const inventory = emptyInventory({
175
+ capabilities: [],
176
+ entities: [],
177
+ });
178
+
179
+ it("passes security rules", () => {
180
+ const result = evaluateGovernance(securityRules, inventory);
181
+ assertNoGovernanceSignal(result, [
182
+ "security.capability-missing-access-policy",
183
+ ]);
184
+ });
185
+
186
+ it("passes privacy rules", () => {
187
+ const result = evaluateGovernance(privacyRules, inventory);
188
+ expect(result.effective.filter(s => s.severity === "high")).toHaveLength(0);
189
+ });
190
+
191
+ it("complies with internal security baseline", () => {
192
+ assertPolicyCompliance(inventory, "internal_security_baseline");
193
+ });
194
+ });
195
+ `;
196
+ }
197
+ /**
198
+ * Generate an E2E browser test file for a page in a Plumbus Next.js app.
199
+ *
200
+ * Uses vitest as the test runner with Playwright for browser automation.
201
+ * Both come from the framework — no additional packages needed.
202
+ */
203
+ export function generateE2ETest(page) {
204
+ const actionTests = page.actions
205
+ .map((action) => {
206
+ const fieldFills = action.fields
207
+ .map((f) => ` const ${f}Field = panel.locator(\`label:has-text("${f}") + input, [name="${f}"]\`).first();\n if (await ${f}Field.count()) await ${f}Field.fill("test-value");`)
208
+ .join('\n');
209
+ return `
210
+ it("submits ${action.title}", async () => {
211
+ const panel = page.locator("section.panel", { has: page.getByRole("heading", { name: ${JSON.stringify(action.title)} }) });
212
+ await expect(panel.count()).resolves.toBeGreaterThan(0);
213
+
214
+ ${fieldFills}
215
+
216
+ await panel.getByRole("button", { name: ${JSON.stringify(action.submitLabel)} }).click();
217
+
218
+ // Wait for the request to complete
219
+ await page.waitForTimeout(2000);
220
+
221
+ // Assert no error card appeared
222
+ const errorCount = await panel.locator(".error-card").count();
223
+ expect(errorCount).toBe(0);
224
+ });`;
225
+ })
226
+ .join('\n');
227
+ const queryTests = (page.queries ?? [])
228
+ .map((q) => `
229
+ it("loads ${q.title} query panel", async () => {
230
+ const panel = page.locator("article", { has: page.getByRole("heading", { name: ${JSON.stringify(q.title)} }) });
231
+ await expect(panel.count()).resolves.toBeGreaterThan(0);
232
+ });`)
233
+ .join('\n');
234
+ const routeEscaped = page.route.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
235
+ return `import { describe, it, expect, beforeAll, afterAll } from "vitest";
236
+ import { chromium, type Browser, type Page } from "@plumbus/core/testing";
237
+
238
+ const BASE_URL = process.env.E2E_BASE_URL ?? "http://localhost:3001";
239
+
240
+ describe("${page.pageName} page", () => {
241
+ let browser: Browser;
242
+ let page: Page;
243
+
244
+ beforeAll(async () => {
245
+ browser = await chromium.launch();
246
+ page = await browser.newPage();
247
+ await page.goto(BASE_URL + ${JSON.stringify(page.route)});
248
+ await page.waitForLoadState("networkidle");
249
+ }, 30_000);
250
+
251
+ afterAll(async () => {
252
+ await page?.close();
253
+ await browser?.close();
254
+ });
255
+
256
+ it("renders the page", async () => {
257
+ expect(page.url()).toMatch(/${routeEscaped}/);
258
+ const main = await page.locator("main").count();
259
+ expect(main).toBeGreaterThan(0);
260
+ });
261
+ ${actionTests}
262
+ ${queryTests}
263
+ });
264
+ `;
265
+ }
266
+ //# sourceMappingURL=scaffolding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffolding.js","sourceRoot":"","sources":["../../src/testing/scaffolding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { z } from 'zod';
2
+ import type { CapabilityResult } from '../execution/capability-executor.js';
3
+ import type { CapabilityContract } from '../types/capability.js';
4
+ import type { AccessPolicy, AuthContext } from '../types/security.js';
5
+ import { type TestContextOptions } from './context.js';
6
+ export interface AccessTestResult {
7
+ allowed: boolean;
8
+ reason?: string;
9
+ }
10
+ /** Assert that a given auth context IS allowed by an access policy */
11
+ export declare function assertAccessAllowed(policy: AccessPolicy | undefined, auth: AuthContext): void;
12
+ /** Assert that a given auth context IS denied by an access policy */
13
+ export declare function assertAccessDenied(policy: AccessPolicy | undefined, auth: AuthContext): void;
14
+ /**
15
+ * Assert a capability denies access for a given auth context.
16
+ * Executes the capability pipeline and asserts a "forbidden" error.
17
+ */
18
+ export declare function assertCapabilityDenied<TInput extends z.ZodTypeAny, TOutput extends z.ZodTypeAny>(capability: CapabilityContract<TInput, TOutput>, input: unknown, options?: TestContextOptions): Promise<CapabilityResult<z.infer<TOutput>>>;
19
+ /**
20
+ * Assert a capability allows access for a given auth context.
21
+ * Executes the capability pipeline and asserts success.
22
+ */
23
+ export declare function assertCapabilityAllowed<TInput extends z.ZodTypeAny, TOutput extends z.ZodTypeAny>(capability: CapabilityContract<TInput, TOutput>, input: unknown, options?: TestContextOptions): Promise<CapabilityResult<z.infer<TOutput>>>;
24
+ /**
25
+ * Assert that a tenant-scoped capability denies access to users from a different tenant.
26
+ * Runs the capability twice: once with matching tenant (should succeed), once with mismatched tenant (should deny).
27
+ */
28
+ export declare function assertTenantIsolation<TInput extends z.ZodTypeAny, TOutput extends z.ZodTypeAny>(capability: CapabilityContract<TInput, TOutput>, input: unknown, tenantId: string, options?: TestContextOptions): Promise<{
29
+ sameTenantResult: CapabilityResult;
30
+ crossTenantResult: CapabilityResult;
31
+ }>;
32
+ /** Assert a capability result is a validation error */
33
+ export declare function assertValidationError(result: CapabilityResult): void;
34
+ /** Assert a capability result is a specific error code */
35
+ export declare function assertPlumbusError(result: CapabilityResult, expectedCode: string): void;
36
+ /** Create an unauthenticated auth context (no roles, no tenant) */
37
+ export declare function unauthenticated(): AuthContext;
38
+ /** Create an admin auth context */
39
+ export declare function adminAuth(tenantId?: string): AuthContext;
40
+ /** Create a service account auth context */
41
+ export declare function serviceAccountAuth(accountId: string): AuthContext;
42
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/testing/security.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKvE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAS7F;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAQ5F;AAID;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,SAAS,CAAC,CAAC,UAAU,EAC3B,OAAO,SAAS,CAAC,CAAC,UAAU,EAE5B,UAAU,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAW7C;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,SAAS,CAAC,CAAC,UAAU,EAC3B,OAAO,SAAS,CAAC,CAAC,UAAU,EAE5B,UAAU,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAQ7C;AAID;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,SAAS,CAAC,CAAC,UAAU,EAC3B,OAAO,SAAS,CAAC,CAAC,UAAU,EAE5B,UAAU,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;IAAE,gBAAgB,EAAE,gBAAgB,CAAC;IAAC,iBAAiB,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAYtF;AAID,uDAAuD;AACvD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CASpE;AAED,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CASvF;AAID,mEAAmE;AACnE,wBAAgB,eAAe,IAAI,WAAW,CAE7C;AAED,mCAAmC;AACnC,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAExD;AAED,4CAA4C;AAC5C,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAMjE"}