@agilesyndrome/cf-genai-base 5.0.2 → 6.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 (696) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/CLI.md +9 -13
  3. package/CONTRACT.md +32 -15
  4. package/README.md +95 -28
  5. package/bin/cf-genai.js +24 -8
  6. package/dist/admin/auth.d.ts +12 -0
  7. package/dist/admin/auth.d.ts.map +1 -0
  8. package/dist/admin/auth.js +103 -0
  9. package/dist/admin/auth.js.map +1 -0
  10. package/dist/admin/index.d.ts +2 -0
  11. package/dist/admin/index.d.ts.map +1 -0
  12. package/dist/admin/index.js +2 -0
  13. package/dist/admin/index.js.map +1 -0
  14. package/dist/admin/router.d.ts +4 -0
  15. package/dist/admin/router.d.ts.map +1 -0
  16. package/dist/admin/router.js +24 -0
  17. package/dist/admin/router.js.map +1 -0
  18. package/dist/admin/types.d.ts +43 -0
  19. package/dist/admin/types.d.ts.map +1 -0
  20. package/dist/admin/types.js +2 -0
  21. package/dist/admin/types.js.map +1 -0
  22. package/dist/api/client.d.ts +34 -0
  23. package/dist/api/client.d.ts.map +1 -0
  24. package/dist/api/client.js +59 -0
  25. package/dist/api/client.js.map +1 -0
  26. package/dist/api/contracts.d.ts +31 -0
  27. package/dist/api/contracts.d.ts.map +1 -0
  28. package/dist/api/contracts.js +101 -0
  29. package/dist/api/contracts.js.map +1 -0
  30. package/dist/api/http.d.ts +12 -0
  31. package/dist/api/http.d.ts.map +1 -0
  32. package/dist/api/http.js +36 -0
  33. package/dist/api/http.js.map +1 -0
  34. package/dist/api/index.d.ts +14 -0
  35. package/dist/api/index.d.ts.map +1 -0
  36. package/dist/api/index.js +11 -0
  37. package/dist/api/index.js.map +1 -0
  38. package/dist/api/testing.d.ts +10 -0
  39. package/dist/api/testing.d.ts.map +1 -0
  40. package/dist/api/testing.js +26 -0
  41. package/dist/api/testing.js.map +1 -0
  42. package/dist/app.d.ts +21 -0
  43. package/dist/app.d.ts.map +1 -0
  44. package/dist/app.js +23 -0
  45. package/dist/app.js.map +1 -0
  46. package/dist/auth/constants.d.ts +9 -0
  47. package/dist/auth/constants.d.ts.map +1 -0
  48. package/{src → dist}/auth/constants.js +2 -2
  49. package/dist/auth/constants.js.map +1 -0
  50. package/dist/auth/domains.d.ts +3 -0
  51. package/dist/auth/domains.d.ts.map +1 -0
  52. package/dist/auth/domains.js +8 -0
  53. package/dist/auth/domains.js.map +1 -0
  54. package/dist/auth/encoding.d.ts +7 -0
  55. package/dist/auth/encoding.d.ts.map +1 -0
  56. package/dist/auth/encoding.js +41 -0
  57. package/dist/auth/encoding.js.map +1 -0
  58. package/dist/auth/groups/d1.d.ts +16 -0
  59. package/dist/auth/groups/d1.d.ts.map +1 -0
  60. package/dist/auth/groups/d1.js +66 -0
  61. package/dist/auth/groups/d1.js.map +1 -0
  62. package/dist/auth/groups/domain.d.ts +8 -0
  63. package/dist/auth/groups/domain.d.ts.map +1 -0
  64. package/dist/auth/groups/domain.js +99 -0
  65. package/dist/auth/groups/domain.js.map +1 -0
  66. package/dist/auth/groups/index.d.ts +7 -0
  67. package/dist/auth/groups/index.d.ts.map +1 -0
  68. package/dist/auth/groups/index.js +7 -0
  69. package/dist/auth/groups/index.js.map +1 -0
  70. package/dist/auth/groups/model.d.ts +38 -0
  71. package/dist/auth/groups/model.d.ts.map +1 -0
  72. package/dist/auth/groups/model.js +2 -0
  73. package/dist/auth/groups/model.js.map +1 -0
  74. package/dist/auth/groups/policy.d.ts +5 -0
  75. package/dist/auth/groups/policy.d.ts.map +1 -0
  76. package/dist/auth/groups/policy.js +8 -0
  77. package/dist/auth/groups/policy.js.map +1 -0
  78. package/dist/auth/groups/service.d.ts +20 -0
  79. package/dist/auth/groups/service.d.ts.map +1 -0
  80. package/dist/auth/groups/service.js +40 -0
  81. package/dist/auth/groups/service.js.map +1 -0
  82. package/dist/auth/groups/validation.d.ts +5 -0
  83. package/dist/auth/groups/validation.d.ts.map +1 -0
  84. package/dist/auth/groups/validation.js +22 -0
  85. package/dist/auth/groups/validation.js.map +1 -0
  86. package/dist/auth/groups/views/list.d.ts +10 -0
  87. package/dist/auth/groups/views/list.d.ts.map +1 -0
  88. package/dist/auth/groups/views/list.js +4 -0
  89. package/dist/auth/groups/views/list.js.map +1 -0
  90. package/dist/auth/identity/index.d.ts +58 -0
  91. package/dist/auth/identity/index.d.ts.map +1 -0
  92. package/dist/auth/identity/index.js +58 -0
  93. package/dist/auth/identity/index.js.map +1 -0
  94. package/dist/auth/impersonation/constants.d.ts +2 -0
  95. package/dist/auth/impersonation/constants.d.ts.map +1 -0
  96. package/dist/auth/impersonation/constants.js +2 -0
  97. package/dist/auth/impersonation/constants.js.map +1 -0
  98. package/dist/auth/impersonation/domain.d.ts +6 -0
  99. package/dist/auth/impersonation/domain.d.ts.map +1 -0
  100. package/dist/auth/impersonation/domain.js +16 -0
  101. package/dist/auth/impersonation/domain.js.map +1 -0
  102. package/dist/auth/impersonation/index.d.ts +6 -0
  103. package/dist/auth/impersonation/index.d.ts.map +1 -0
  104. package/dist/auth/impersonation/index.js +6 -0
  105. package/dist/auth/impersonation/index.js.map +1 -0
  106. package/dist/auth/impersonation/model.d.ts +12 -0
  107. package/dist/auth/impersonation/model.d.ts.map +1 -0
  108. package/dist/auth/impersonation/model.js +2 -0
  109. package/dist/auth/impersonation/model.js.map +1 -0
  110. package/dist/auth/impersonation/service.d.ts +4 -0
  111. package/dist/auth/impersonation/service.d.ts.map +1 -0
  112. package/dist/auth/impersonation/service.js +32 -0
  113. package/dist/auth/impersonation/service.js.map +1 -0
  114. package/dist/auth/impersonation/validation.d.ts +4 -0
  115. package/dist/auth/impersonation/validation.d.ts.map +1 -0
  116. package/dist/auth/impersonation/validation.js +14 -0
  117. package/dist/auth/impersonation/validation.js.map +1 -0
  118. package/dist/auth/index.d.ts +13 -0
  119. package/dist/auth/index.d.ts.map +1 -0
  120. package/dist/auth/index.js +13 -0
  121. package/dist/auth/index.js.map +1 -0
  122. package/dist/auth/oauth-single/constants.d.ts +4 -0
  123. package/dist/auth/oauth-single/constants.d.ts.map +1 -0
  124. package/dist/auth/oauth-single/constants.js +5 -0
  125. package/dist/auth/oauth-single/constants.js.map +1 -0
  126. package/dist/auth/oauth-single/cookies.d.ts +10 -0
  127. package/dist/auth/oauth-single/cookies.d.ts.map +1 -0
  128. package/dist/auth/oauth-single/cookies.js +59 -0
  129. package/dist/auth/oauth-single/cookies.js.map +1 -0
  130. package/dist/auth/oauth-single/domain.d.ts +14 -0
  131. package/dist/auth/oauth-single/domain.d.ts.map +1 -0
  132. package/dist/auth/oauth-single/domain.js +12 -0
  133. package/dist/auth/oauth-single/domain.js.map +1 -0
  134. package/dist/auth/oauth-single/index.d.ts +31 -0
  135. package/dist/auth/oauth-single/index.d.ts.map +1 -0
  136. package/dist/auth/oauth-single/index.js +215 -0
  137. package/dist/auth/oauth-single/index.js.map +1 -0
  138. package/dist/auth/oauth-single/model.d.ts +75 -0
  139. package/dist/auth/oauth-single/model.d.ts.map +1 -0
  140. package/dist/auth/oauth-single/model.js +2 -0
  141. package/dist/auth/oauth-single/model.js.map +1 -0
  142. package/dist/auth/oauth-single/protocol.d.ts +9 -0
  143. package/dist/auth/oauth-single/protocol.d.ts.map +1 -0
  144. package/dist/auth/oauth-single/protocol.js +190 -0
  145. package/dist/auth/oauth-single/protocol.js.map +1 -0
  146. package/dist/auth/oauth-single/session.d.ts +7 -0
  147. package/dist/auth/oauth-single/session.d.ts.map +1 -0
  148. package/dist/auth/oauth-single/session.js +78 -0
  149. package/dist/auth/oauth-single/session.js.map +1 -0
  150. package/dist/auth/repositories.d.ts +58 -0
  151. package/dist/auth/repositories.d.ts.map +1 -0
  152. package/dist/auth/repositories.js +31 -0
  153. package/dist/auth/repositories.js.map +1 -0
  154. package/dist/auth/scopes/d1.d.ts +17 -0
  155. package/dist/auth/scopes/d1.d.ts.map +1 -0
  156. package/dist/auth/scopes/d1.js +54 -0
  157. package/dist/auth/scopes/d1.js.map +1 -0
  158. package/dist/auth/scopes/domain.d.ts +7 -0
  159. package/dist/auth/scopes/domain.d.ts.map +1 -0
  160. package/dist/auth/scopes/domain.js +25 -0
  161. package/dist/auth/scopes/domain.js.map +1 -0
  162. package/dist/auth/scopes/index.d.ts +4 -0
  163. package/dist/auth/scopes/index.d.ts.map +1 -0
  164. package/dist/auth/scopes/index.js +4 -0
  165. package/dist/auth/scopes/index.js.map +1 -0
  166. package/dist/auth/scopes/model.d.ts +26 -0
  167. package/dist/auth/scopes/model.d.ts.map +1 -0
  168. package/dist/auth/scopes/model.js +2 -0
  169. package/dist/auth/scopes/model.js.map +1 -0
  170. package/dist/auth/scopes/policy.d.ts +3 -0
  171. package/dist/auth/scopes/policy.d.ts.map +1 -0
  172. package/dist/auth/scopes/policy.js +4 -0
  173. package/dist/auth/scopes/policy.js.map +1 -0
  174. package/dist/auth/scopes/service.d.ts +4 -0
  175. package/dist/auth/scopes/service.d.ts.map +1 -0
  176. package/dist/auth/scopes/service.js +4 -0
  177. package/dist/auth/scopes/service.js.map +1 -0
  178. package/dist/auth/scopes/validation.d.ts +6 -0
  179. package/dist/auth/scopes/validation.d.ts.map +1 -0
  180. package/dist/auth/scopes/validation.js +33 -0
  181. package/dist/auth/scopes/validation.js.map +1 -0
  182. package/dist/auth/scopes/views/list.d.ts +9 -0
  183. package/dist/auth/scopes/views/list.d.ts.map +1 -0
  184. package/dist/auth/scopes/views/list.js +4 -0
  185. package/dist/auth/scopes/views/list.js.map +1 -0
  186. package/dist/auth/subscriptions/d1.d.ts +10 -0
  187. package/dist/auth/subscriptions/d1.d.ts.map +1 -0
  188. package/dist/auth/subscriptions/d1.js +86 -0
  189. package/dist/auth/subscriptions/d1.js.map +1 -0
  190. package/dist/auth/subscriptions/domain.d.ts +10 -0
  191. package/dist/auth/subscriptions/domain.d.ts.map +1 -0
  192. package/dist/auth/subscriptions/domain.js +33 -0
  193. package/dist/auth/subscriptions/domain.js.map +1 -0
  194. package/dist/auth/subscriptions/index.d.ts +6 -0
  195. package/dist/auth/subscriptions/index.d.ts.map +1 -0
  196. package/dist/auth/subscriptions/index.js +6 -0
  197. package/dist/auth/subscriptions/index.js.map +1 -0
  198. package/dist/auth/subscriptions/model.d.ts +20 -0
  199. package/dist/auth/subscriptions/model.d.ts.map +1 -0
  200. package/dist/auth/subscriptions/model.js +2 -0
  201. package/dist/auth/subscriptions/model.js.map +1 -0
  202. package/dist/auth/subscriptions/service.d.ts +12 -0
  203. package/dist/auth/subscriptions/service.d.ts.map +1 -0
  204. package/dist/auth/subscriptions/service.js +71 -0
  205. package/dist/auth/subscriptions/service.js.map +1 -0
  206. package/dist/auth/subscriptions/validation.d.ts +3 -0
  207. package/dist/auth/subscriptions/validation.d.ts.map +1 -0
  208. package/dist/auth/subscriptions/validation.js +21 -0
  209. package/dist/auth/subscriptions/validation.js.map +1 -0
  210. package/dist/auth/tenants/d1.d.ts +12 -0
  211. package/dist/auth/tenants/d1.d.ts.map +1 -0
  212. package/dist/auth/tenants/d1.js +40 -0
  213. package/dist/auth/tenants/d1.js.map +1 -0
  214. package/dist/auth/tenants/delete.d.ts +3 -0
  215. package/dist/auth/tenants/delete.d.ts.map +1 -0
  216. package/dist/auth/tenants/delete.js +28 -0
  217. package/dist/auth/tenants/delete.js.map +1 -0
  218. package/dist/auth/tenants/domain.d.ts +8 -0
  219. package/dist/auth/tenants/domain.d.ts.map +1 -0
  220. package/dist/auth/tenants/domain.js +64 -0
  221. package/dist/auth/tenants/domain.js.map +1 -0
  222. package/dist/auth/tenants/index.d.ts +7 -0
  223. package/dist/auth/tenants/index.d.ts.map +1 -0
  224. package/dist/auth/tenants/index.js +7 -0
  225. package/dist/auth/tenants/index.js.map +1 -0
  226. package/dist/auth/tenants/model.d.ts +28 -0
  227. package/dist/auth/tenants/model.d.ts.map +1 -0
  228. package/dist/auth/tenants/model.js +2 -0
  229. package/dist/auth/tenants/model.js.map +1 -0
  230. package/dist/auth/tenants/policy.d.ts +3 -0
  231. package/dist/auth/tenants/policy.d.ts.map +1 -0
  232. package/dist/auth/tenants/policy.js +4 -0
  233. package/dist/auth/tenants/policy.js.map +1 -0
  234. package/dist/auth/tenants/service.d.ts +14 -0
  235. package/dist/auth/tenants/service.d.ts.map +1 -0
  236. package/dist/auth/tenants/service.js +37 -0
  237. package/dist/auth/tenants/service.js.map +1 -0
  238. package/dist/auth/tenants/validation.d.ts +5 -0
  239. package/dist/auth/tenants/validation.d.ts.map +1 -0
  240. package/dist/auth/tenants/validation.js +21 -0
  241. package/dist/auth/tenants/validation.js.map +1 -0
  242. package/dist/auth/tenants/views/list.d.ts +8 -0
  243. package/dist/auth/tenants/views/list.d.ts.map +1 -0
  244. package/dist/auth/tenants/views/list.js +3 -0
  245. package/dist/auth/tenants/views/list.js.map +1 -0
  246. package/dist/auth/users/access.d.ts +9 -0
  247. package/dist/auth/users/access.d.ts.map +1 -0
  248. package/dist/auth/users/access.js +53 -0
  249. package/dist/auth/users/access.js.map +1 -0
  250. package/dist/auth/users/d1.d.ts +19 -0
  251. package/dist/auth/users/d1.d.ts.map +1 -0
  252. package/dist/auth/users/d1.js +68 -0
  253. package/dist/auth/users/d1.js.map +1 -0
  254. package/dist/auth/users/domain.d.ts +13 -0
  255. package/dist/auth/users/domain.d.ts.map +1 -0
  256. package/dist/auth/users/domain.js +129 -0
  257. package/dist/auth/users/domain.js.map +1 -0
  258. package/dist/auth/users/index.d.ts +7 -0
  259. package/dist/auth/users/index.d.ts.map +1 -0
  260. package/dist/auth/users/index.js +7 -0
  261. package/dist/auth/users/index.js.map +1 -0
  262. package/dist/auth/users/model.d.ts +44 -0
  263. package/dist/auth/users/model.d.ts.map +1 -0
  264. package/dist/auth/users/model.js +2 -0
  265. package/dist/auth/users/model.js.map +1 -0
  266. package/dist/auth/users/service.d.ts +8 -0
  267. package/dist/auth/users/service.d.ts.map +1 -0
  268. package/dist/auth/users/service.js +62 -0
  269. package/dist/auth/users/service.js.map +1 -0
  270. package/dist/auth/users/validation.d.ts +4 -0
  271. package/dist/auth/users/validation.d.ts.map +1 -0
  272. package/dist/auth/users/validation.js +23 -0
  273. package/dist/auth/users/validation.js.map +1 -0
  274. package/dist/cli/cli.d.ts +9 -0
  275. package/dist/cli/cli.d.ts.map +1 -0
  276. package/dist/cli/cli.js +201 -0
  277. package/dist/cli/cli.js.map +1 -0
  278. package/dist/cli/d1.d.ts +24 -0
  279. package/dist/cli/d1.d.ts.map +1 -0
  280. package/dist/cli/d1.js +175 -0
  281. package/dist/cli/d1.js.map +1 -0
  282. package/dist/cli/operations.d.ts +3 -0
  283. package/dist/cli/operations.d.ts.map +1 -0
  284. package/dist/cli/operations.js +63 -0
  285. package/dist/cli/operations.js.map +1 -0
  286. package/dist/cli/project.d.ts +136 -0
  287. package/dist/cli/project.d.ts.map +1 -0
  288. package/dist/cli/project.js +738 -0
  289. package/dist/cli/project.js.map +1 -0
  290. package/dist/cli/status.d.ts +24 -0
  291. package/dist/cli/status.d.ts.map +1 -0
  292. package/dist/cli/status.js +55 -0
  293. package/dist/cli/status.js.map +1 -0
  294. package/dist/cli/tenants.d.ts +9 -0
  295. package/dist/cli/tenants.d.ts.map +1 -0
  296. package/dist/cli/tenants.js +32 -0
  297. package/dist/cli/tenants.js.map +1 -0
  298. package/dist/cli/types.d.ts +43 -0
  299. package/dist/cli/types.d.ts.map +1 -0
  300. package/dist/cli/types.js +2 -0
  301. package/dist/cli/types.js.map +1 -0
  302. package/dist/cli/users.d.ts +8 -0
  303. package/dist/cli/users.d.ts.map +1 -0
  304. package/dist/cli/users.js +74 -0
  305. package/dist/cli/users.js.map +1 -0
  306. package/dist/cli/version.d.ts +12 -0
  307. package/dist/cli/version.d.ts.map +1 -0
  308. package/dist/cli/version.js +60 -0
  309. package/dist/cli/version.js.map +1 -0
  310. package/dist/core/circuits/availability.d.ts +48 -0
  311. package/dist/core/circuits/availability.d.ts.map +1 -0
  312. package/dist/core/circuits/availability.js +87 -0
  313. package/dist/core/circuits/availability.js.map +1 -0
  314. package/dist/core/circuits/d1.d.ts +11 -0
  315. package/dist/core/circuits/d1.d.ts.map +1 -0
  316. package/dist/core/circuits/d1.js +83 -0
  317. package/dist/core/circuits/d1.js.map +1 -0
  318. package/dist/core/circuits/domain.d.ts +7 -0
  319. package/dist/core/circuits/domain.d.ts.map +1 -0
  320. package/dist/core/circuits/domain.js +36 -0
  321. package/dist/core/circuits/domain.js.map +1 -0
  322. package/dist/core/circuits/index.d.ts +6 -0
  323. package/dist/core/circuits/index.d.ts.map +1 -0
  324. package/dist/core/circuits/index.js +6 -0
  325. package/dist/core/circuits/index.js.map +1 -0
  326. package/dist/core/circuits/model.d.ts +50 -0
  327. package/dist/core/circuits/model.d.ts.map +1 -0
  328. package/dist/core/circuits/model.js +2 -0
  329. package/dist/core/circuits/model.js.map +1 -0
  330. package/dist/core/circuits/service.d.ts +9 -0
  331. package/dist/core/circuits/service.d.ts.map +1 -0
  332. package/dist/core/circuits/service.js +63 -0
  333. package/dist/core/circuits/service.js.map +1 -0
  334. package/dist/core/circuits/validation.d.ts +4 -0
  335. package/dist/core/circuits/validation.d.ts.map +1 -0
  336. package/dist/core/circuits/validation.js +35 -0
  337. package/dist/core/circuits/validation.js.map +1 -0
  338. package/dist/core/constants.d.ts +9 -0
  339. package/dist/core/constants.d.ts.map +1 -0
  340. package/{src → dist}/core/constants.js +2 -1
  341. package/dist/core/constants.js.map +1 -0
  342. package/dist/core/database/index.d.ts +14 -0
  343. package/dist/core/database/index.d.ts.map +1 -0
  344. package/dist/core/database/index.js +65 -0
  345. package/dist/core/database/index.js.map +1 -0
  346. package/dist/core/domains.d.ts +2 -0
  347. package/dist/core/domains.d.ts.map +1 -0
  348. package/dist/core/domains.js +7 -0
  349. package/dist/core/domains.js.map +1 -0
  350. package/dist/core/events/audit.d.ts +8 -0
  351. package/dist/core/events/audit.d.ts.map +1 -0
  352. package/dist/core/events/audit.js +27 -0
  353. package/dist/core/events/audit.js.map +1 -0
  354. package/dist/core/events/domain.d.ts +19 -0
  355. package/dist/core/events/domain.d.ts.map +1 -0
  356. package/dist/core/events/domain.js +39 -0
  357. package/dist/core/events/domain.js.map +1 -0
  358. package/dist/core/events/hub.d.ts +10 -0
  359. package/dist/core/events/hub.d.ts.map +1 -0
  360. package/dist/core/events/hub.js +56 -0
  361. package/dist/core/events/hub.js.map +1 -0
  362. package/dist/core/events/index.d.ts +57 -0
  363. package/dist/core/events/index.d.ts.map +1 -0
  364. package/dist/core/events/index.js +170 -0
  365. package/dist/core/events/index.js.map +1 -0
  366. package/dist/core/healthchecks/d1.d.ts +7 -0
  367. package/dist/core/healthchecks/d1.d.ts.map +1 -0
  368. package/dist/core/healthchecks/d1.js +43 -0
  369. package/dist/core/healthchecks/d1.js.map +1 -0
  370. package/dist/core/healthchecks/domain.d.ts +7 -0
  371. package/dist/core/healthchecks/domain.d.ts.map +1 -0
  372. package/dist/core/healthchecks/domain.js +51 -0
  373. package/dist/core/healthchecks/domain.js.map +1 -0
  374. package/dist/core/healthchecks/features.d.ts +19 -0
  375. package/dist/core/healthchecks/features.d.ts.map +1 -0
  376. package/dist/core/healthchecks/features.js +100 -0
  377. package/dist/core/healthchecks/features.js.map +1 -0
  378. package/dist/core/healthchecks/index.d.ts +6 -0
  379. package/dist/core/healthchecks/index.d.ts.map +1 -0
  380. package/dist/core/healthchecks/index.js +6 -0
  381. package/dist/core/healthchecks/index.js.map +1 -0
  382. package/dist/core/healthchecks/model.d.ts +64 -0
  383. package/dist/core/healthchecks/model.d.ts.map +1 -0
  384. package/dist/core/healthchecks/model.js +2 -0
  385. package/dist/core/healthchecks/model.js.map +1 -0
  386. package/dist/core/healthchecks/service.d.ts +8 -0
  387. package/dist/core/healthchecks/service.d.ts.map +1 -0
  388. package/dist/core/healthchecks/service.js +29 -0
  389. package/dist/core/healthchecks/service.js.map +1 -0
  390. package/dist/core/healthchecks/validation.d.ts +5 -0
  391. package/dist/core/healthchecks/validation.d.ts.map +1 -0
  392. package/dist/core/healthchecks/validation.js +51 -0
  393. package/dist/core/healthchecks/validation.js.map +1 -0
  394. package/dist/core/index.d.ts +9 -0
  395. package/dist/core/index.d.ts.map +1 -0
  396. package/dist/core/index.js +9 -0
  397. package/dist/core/index.js.map +1 -0
  398. package/dist/core/jobs/d1.d.ts +19 -0
  399. package/dist/core/jobs/d1.d.ts.map +1 -0
  400. package/dist/core/jobs/d1.js +139 -0
  401. package/dist/core/jobs/d1.js.map +1 -0
  402. package/dist/core/jobs/domain.d.ts +8 -0
  403. package/dist/core/jobs/domain.d.ts.map +1 -0
  404. package/dist/core/jobs/domain.js +59 -0
  405. package/dist/core/jobs/domain.js.map +1 -0
  406. package/dist/core/jobs/events.d.ts +3 -0
  407. package/dist/core/jobs/events.d.ts.map +1 -0
  408. package/dist/core/jobs/events.js +25 -0
  409. package/dist/core/jobs/events.js.map +1 -0
  410. package/dist/core/jobs/index.d.ts +7 -0
  411. package/dist/core/jobs/index.d.ts.map +1 -0
  412. package/dist/core/jobs/index.js +7 -0
  413. package/dist/core/jobs/index.js.map +1 -0
  414. package/dist/core/jobs/model.d.ts +86 -0
  415. package/dist/core/jobs/model.d.ts.map +1 -0
  416. package/dist/core/jobs/model.js +2 -0
  417. package/dist/core/jobs/model.js.map +1 -0
  418. package/dist/core/jobs/service.d.ts +39 -0
  419. package/dist/core/jobs/service.d.ts.map +1 -0
  420. package/dist/core/jobs/service.js +84 -0
  421. package/dist/core/jobs/service.js.map +1 -0
  422. package/dist/core/jobs/validation.d.ts +8 -0
  423. package/dist/core/jobs/validation.d.ts.map +1 -0
  424. package/dist/core/jobs/validation.js +39 -0
  425. package/dist/core/jobs/validation.js.map +1 -0
  426. package/dist/core/security/index.d.ts +30 -0
  427. package/dist/core/security/index.d.ts.map +1 -0
  428. package/dist/core/security/index.js +138 -0
  429. package/dist/core/security/index.js.map +1 -0
  430. package/dist/data/context.d.ts +20 -0
  431. package/dist/data/context.d.ts.map +1 -0
  432. package/dist/data/context.js +65 -0
  433. package/dist/data/context.js.map +1 -0
  434. package/dist/data/index.d.ts +5 -0
  435. package/dist/data/index.d.ts.map +1 -0
  436. package/{src → dist}/data/index.js +2 -0
  437. package/dist/data/index.js.map +1 -0
  438. package/dist/data/json.d.ts +3 -0
  439. package/dist/data/json.d.ts.map +1 -0
  440. package/dist/data/json.js +14 -0
  441. package/dist/data/json.js.map +1 -0
  442. package/dist/data/model.d.ts +96 -0
  443. package/dist/data/model.d.ts.map +1 -0
  444. package/dist/data/model.js +3 -0
  445. package/dist/data/model.js.map +1 -0
  446. package/dist/data/policy.d.ts +14 -0
  447. package/dist/data/policy.d.ts.map +1 -0
  448. package/dist/data/policy.js +89 -0
  449. package/dist/data/policy.js.map +1 -0
  450. package/dist/data/reader.d.ts +9 -0
  451. package/dist/data/reader.d.ts.map +1 -0
  452. package/dist/data/reader.js +203 -0
  453. package/dist/data/reader.js.map +1 -0
  454. package/dist/data/resources.d.ts +9 -0
  455. package/dist/data/resources.d.ts.map +1 -0
  456. package/dist/data/resources.js +129 -0
  457. package/dist/data/resources.js.map +1 -0
  458. package/dist/domain/app-domain.d.ts +36 -0
  459. package/dist/domain/app-domain.d.ts.map +1 -0
  460. package/dist/domain/app-domain.js +79 -0
  461. package/dist/domain/app-domain.js.map +1 -0
  462. package/dist/domain/index.d.ts +3 -0
  463. package/dist/domain/index.d.ts.map +1 -0
  464. package/dist/domain/index.js +3 -0
  465. package/dist/domain/index.js.map +1 -0
  466. package/dist/domain/model.d.ts +37 -0
  467. package/dist/domain/model.d.ts.map +1 -0
  468. package/dist/domain/model.js +2 -0
  469. package/dist/domain/model.js.map +1 -0
  470. package/dist/features/index.d.ts +25 -0
  471. package/dist/features/index.d.ts.map +1 -0
  472. package/dist/features/index.js +61 -0
  473. package/dist/features/index.js.map +1 -0
  474. package/dist/features/llm/client.d.ts +3 -0
  475. package/dist/features/llm/client.d.ts.map +1 -0
  476. package/dist/features/llm/client.js +327 -0
  477. package/dist/features/llm/client.js.map +1 -0
  478. package/dist/features/llm/config.d.ts +7 -0
  479. package/dist/features/llm/config.d.ts.map +1 -0
  480. package/dist/features/llm/config.js +93 -0
  481. package/dist/features/llm/config.js.map +1 -0
  482. package/dist/features/llm/constants.d.ts +5 -0
  483. package/dist/features/llm/constants.d.ts.map +1 -0
  484. package/dist/features/llm/constants.js +6 -0
  485. package/dist/features/llm/constants.js.map +1 -0
  486. package/dist/features/llm/errors.d.ts +12 -0
  487. package/dist/features/llm/errors.d.ts.map +1 -0
  488. package/dist/features/llm/errors.js +19 -0
  489. package/dist/features/llm/errors.js.map +1 -0
  490. package/dist/features/llm/feature.d.ts +6 -0
  491. package/dist/features/llm/feature.d.ts.map +1 -0
  492. package/dist/features/llm/feature.js +37 -0
  493. package/dist/features/llm/feature.js.map +1 -0
  494. package/dist/features/llm/index.d.ts +9 -0
  495. package/dist/features/llm/index.d.ts.map +1 -0
  496. package/dist/features/llm/index.js +6 -0
  497. package/dist/features/llm/index.js.map +1 -0
  498. package/dist/features/llm/model.d.ts +171 -0
  499. package/dist/features/llm/model.d.ts.map +1 -0
  500. package/dist/features/llm/model.js +2 -0
  501. package/dist/features/llm/model.js.map +1 -0
  502. package/dist/features/llm/schema.d.ts +4 -0
  503. package/dist/features/llm/schema.d.ts.map +1 -0
  504. package/dist/features/llm/schema.js +82 -0
  505. package/dist/features/llm/schema.js.map +1 -0
  506. package/dist/features/llm/service.d.ts +29 -0
  507. package/dist/features/llm/service.d.ts.map +1 -0
  508. package/dist/features/llm/service.js +55 -0
  509. package/dist/features/llm/service.js.map +1 -0
  510. package/dist/features/messaging/constants.d.ts +3 -0
  511. package/dist/features/messaging/constants.d.ts.map +1 -0
  512. package/dist/features/messaging/constants.js +4 -0
  513. package/dist/features/messaging/constants.js.map +1 -0
  514. package/dist/features/messaging/domain.d.ts +9 -0
  515. package/dist/features/messaging/domain.d.ts.map +1 -0
  516. package/dist/features/messaging/domain.js +14 -0
  517. package/dist/features/messaging/domain.js.map +1 -0
  518. package/dist/features/messaging/feature.d.ts +7 -0
  519. package/dist/features/messaging/feature.d.ts.map +1 -0
  520. package/dist/features/messaging/feature.js +23 -0
  521. package/dist/features/messaging/feature.js.map +1 -0
  522. package/dist/features/messaging/index.d.ts +12 -0
  523. package/dist/features/messaging/index.d.ts.map +1 -0
  524. package/dist/features/messaging/index.js +8 -0
  525. package/dist/features/messaging/index.js.map +1 -0
  526. package/dist/features/messaging/jobs.d.ts +38 -0
  527. package/dist/features/messaging/jobs.d.ts.map +1 -0
  528. package/dist/features/messaging/jobs.js +40 -0
  529. package/dist/features/messaging/jobs.js.map +1 -0
  530. package/dist/features/messaging/models.d.ts +65 -0
  531. package/dist/features/messaging/models.d.ts.map +1 -0
  532. package/dist/features/messaging/models.js +97 -0
  533. package/dist/features/messaging/models.js.map +1 -0
  534. package/dist/features/messaging/resources.d.ts +8 -0
  535. package/dist/features/messaging/resources.d.ts.map +1 -0
  536. package/dist/features/messaging/resources.js +11 -0
  537. package/dist/features/messaging/resources.js.map +1 -0
  538. package/dist/features/messaging/store.d.ts +46 -0
  539. package/dist/features/messaging/store.d.ts.map +1 -0
  540. package/dist/features/messaging/store.js +208 -0
  541. package/dist/features/messaging/store.js.map +1 -0
  542. package/dist/index.d.ts +20 -0
  543. package/dist/index.d.ts.map +1 -0
  544. package/{src → dist}/index.js +7 -2
  545. package/dist/index.js.map +1 -0
  546. package/dist/input.d.ts +18 -0
  547. package/dist/input.d.ts.map +1 -0
  548. package/dist/input.js +49 -0
  549. package/dist/input.js.map +1 -0
  550. package/dist/repository/model.d.ts +61 -0
  551. package/dist/repository/model.d.ts.map +1 -0
  552. package/dist/repository/model.js +2 -0
  553. package/dist/repository/model.js.map +1 -0
  554. package/dist/repository.d.ts +11 -0
  555. package/dist/repository.d.ts.map +1 -0
  556. package/dist/repository.js +118 -0
  557. package/dist/repository.js.map +1 -0
  558. package/dist/runtime/domains.d.ts +14 -0
  559. package/dist/runtime/domains.d.ts.map +1 -0
  560. package/dist/runtime/domains.js +42 -0
  561. package/dist/runtime/domains.js.map +1 -0
  562. package/dist/runtime/features.d.ts +10 -0
  563. package/dist/runtime/features.d.ts.map +1 -0
  564. package/dist/runtime/features.js +37 -0
  565. package/dist/runtime/features.js.map +1 -0
  566. package/dist/runtime/health.d.ts +6 -0
  567. package/dist/runtime/health.d.ts.map +1 -0
  568. package/dist/runtime/health.js +28 -0
  569. package/dist/runtime/health.js.map +1 -0
  570. package/dist/runtime/hono.d.ts +30 -0
  571. package/dist/runtime/hono.d.ts.map +1 -0
  572. package/dist/runtime/hono.js +50 -0
  573. package/dist/runtime/hono.js.map +1 -0
  574. package/dist/runtime/model.d.ts +133 -0
  575. package/dist/runtime/model.d.ts.map +1 -0
  576. package/dist/runtime/model.js +2 -0
  577. package/dist/runtime/model.js.map +1 -0
  578. package/dist/runtime/responses.d.ts +9 -0
  579. package/dist/runtime/responses.d.ts.map +1 -0
  580. package/dist/runtime/responses.js +14 -0
  581. package/dist/runtime/responses.js.map +1 -0
  582. package/dist/runtime/worker.d.ts +10 -0
  583. package/dist/runtime/worker.d.ts.map +1 -0
  584. package/dist/runtime/worker.js +216 -0
  585. package/dist/runtime/worker.js.map +1 -0
  586. package/dist/ui/index.d.ts +3 -0
  587. package/dist/ui/index.d.ts.map +1 -0
  588. package/dist/ui/index.js +3 -0
  589. package/dist/ui/index.js.map +1 -0
  590. package/dist/ui/react/admin-access.d.ts +2 -0
  591. package/dist/ui/react/admin-access.d.ts.map +1 -0
  592. package/dist/ui/react/admin-access.js +47 -0
  593. package/dist/ui/react/admin-access.js.map +1 -0
  594. package/dist/ui/react/admin-audit.d.ts +2 -0
  595. package/dist/ui/react/admin-audit.d.ts.map +1 -0
  596. package/dist/ui/react/admin-audit.js +13 -0
  597. package/dist/ui/react/admin-audit.js.map +1 -0
  598. package/dist/ui/react/admin-catalogs.d.ts +6 -0
  599. package/dist/ui/react/admin-catalogs.d.ts.map +1 -0
  600. package/dist/ui/react/admin-catalogs.js +37 -0
  601. package/dist/ui/react/admin-catalogs.js.map +1 -0
  602. package/dist/ui/react/admin-dashboard.d.ts +39 -0
  603. package/dist/ui/react/admin-dashboard.d.ts.map +1 -0
  604. package/dist/ui/react/admin-dashboard.js +135 -0
  605. package/dist/ui/react/admin-dashboard.js.map +1 -0
  606. package/dist/ui/react/admin-details.d.ts +27 -0
  607. package/dist/ui/react/admin-details.d.ts.map +1 -0
  608. package/dist/ui/react/admin-details.js +82 -0
  609. package/dist/ui/react/admin-details.js.map +1 -0
  610. package/dist/ui/react/admin-shell.d.ts +20 -0
  611. package/dist/ui/react/admin-shell.d.ts.map +1 -0
  612. package/dist/ui/react/admin-shell.js +24 -0
  613. package/dist/ui/react/admin-shell.js.map +1 -0
  614. package/dist/ui/react/bootstrap.d.ts +9 -0
  615. package/dist/ui/react/bootstrap.d.ts.map +1 -0
  616. package/dist/ui/react/bootstrap.js +45 -0
  617. package/dist/ui/react/bootstrap.js.map +1 -0
  618. package/dist/ui/react/foundation.d.ts +35 -0
  619. package/dist/ui/react/foundation.d.ts.map +1 -0
  620. package/dist/ui/react/foundation.js +62 -0
  621. package/dist/ui/react/foundation.js.map +1 -0
  622. package/dist/ui/react/index.d.ts +12 -0
  623. package/dist/ui/react/index.d.ts.map +1 -0
  624. package/dist/ui/react/index.js +12 -0
  625. package/dist/ui/react/index.js.map +1 -0
  626. package/dist/ui/react/jobs.d.ts +62 -0
  627. package/dist/ui/react/jobs.d.ts.map +1 -0
  628. package/dist/ui/react/jobs.js +114 -0
  629. package/dist/ui/react/jobs.js.map +1 -0
  630. package/dist/ui/react/live-events.d.ts +18 -0
  631. package/dist/ui/react/live-events.d.ts.map +1 -0
  632. package/dist/ui/react/live-events.js +94 -0
  633. package/dist/ui/react/live-events.js.map +1 -0
  634. package/dist/ui/react/types.d.ts +79 -0
  635. package/dist/ui/react/types.d.ts.map +1 -0
  636. package/dist/ui/react/types.js +32 -0
  637. package/dist/ui/react/types.js.map +1 -0
  638. package/dist/ui/ssr.d.ts +55 -0
  639. package/dist/ui/ssr.d.ts.map +1 -0
  640. package/dist/ui/ssr.js +30 -0
  641. package/dist/ui/ssr.js.map +1 -0
  642. package/{src → dist}/ui/styles.css +22 -1
  643. package/migrations/0007_messaging.sql +52 -0
  644. package/migrations/0008_messaging_tenant_integrity.sql +44 -0
  645. package/migrations/0009_healthcheck_measurements.sql +3 -0
  646. package/migrations/0010_admin_dashboard_refinements.sql +24 -0
  647. package/package.json +162 -21
  648. package/changelog.md +0 -25
  649. package/src/admin/index.js +0 -1
  650. package/src/admin/routes.js +0 -64
  651. package/src/api/client.js +0 -8
  652. package/src/api/contracts.js +0 -24
  653. package/src/api/index.js +0 -7
  654. package/src/api/jobs.js +0 -37
  655. package/src/api/testing.js +0 -13
  656. package/src/app.js +0 -5
  657. package/src/auth/encoding.js +0 -6
  658. package/src/auth/groups.js +0 -5
  659. package/src/auth/impersonation.js +0 -15
  660. package/src/auth/index.js +0 -8
  661. package/src/auth/oauth-single.js +0 -204
  662. package/src/auth/scopes.js +0 -32
  663. package/src/auth/subscriptions.js +0 -42
  664. package/src/auth/tenants.js +0 -34
  665. package/src/auth/users.js +0 -40
  666. package/src/cli/cli.js +0 -133
  667. package/src/cli/d1.js +0 -165
  668. package/src/cli/operations.js +0 -34
  669. package/src/cli/project.js +0 -560
  670. package/src/cli/status.js +0 -46
  671. package/src/cli/tenants.js +0 -16
  672. package/src/cli/users.js +0 -34
  673. package/src/cli/version.js +0 -54
  674. package/src/core/circuits.js +0 -134
  675. package/src/core/d1.js +0 -54
  676. package/src/core/event-hub.js +0 -29
  677. package/src/core/events.js +0 -63
  678. package/src/core/identity.js +0 -39
  679. package/src/core/index.js +0 -7
  680. package/src/core/jobs.js +0 -185
  681. package/src/core/security.js +0 -88
  682. package/src/data/context.js +0 -16
  683. package/src/data/reader.js +0 -63
  684. package/src/data/resources.js +0 -42
  685. package/src/repository.js +0 -63
  686. package/src/runtime/features.js +0 -17
  687. package/src/runtime/health.js +0 -17
  688. package/src/runtime/worker.js +0 -58
  689. package/src/ui/index.js +0 -1
  690. package/src/ui/react/admin-access.jsx +0 -29
  691. package/src/ui/react/admin-catalogs.jsx +0 -39
  692. package/src/ui/react/admin-shell.jsx +0 -17
  693. package/src/ui/react/foundation.jsx +0 -40
  694. package/src/ui/react/index.jsx +0 -6
  695. package/src/ui/react/jobs.jsx +0 -63
  696. package/src/ui/react/live-events.jsx +0 -55
@@ -0,0 +1,171 @@
1
+ import type { Job } from "../../core/jobs/index.js";
2
+ export interface LLMEnvironment {
3
+ DB?: D1Database;
4
+ LLM_API_URL?: string;
5
+ LLM_API_TOKEN?: string;
6
+ LLM_MODEL?: string;
7
+ [key: string]: unknown;
8
+ }
9
+ export type LLMProvider = "cloudflare-ai-gateway" | "openai-compatible";
10
+ export type LLMConfigValue<Value, Env extends LLMEnvironment = LLMEnvironment> = Value | ((env: Env | undefined) => Value | undefined);
11
+ export type LLMHeaders = Record<string, string>;
12
+ export type LLMMetadata = Record<string, unknown>;
13
+ export interface LLMLogger {
14
+ debug?: (message: string) => void;
15
+ info?: (message: string) => void;
16
+ error?: (message: string) => void;
17
+ }
18
+ export interface LLMTokenUsage {
19
+ inputTokens: number;
20
+ outputTokens: number;
21
+ totalTokens: number;
22
+ }
23
+ export type LLMUsageCallback = (usage: LLMTokenUsage) => void | Promise<void>;
24
+ export type LLMTextCallback = (text: string) => void | Promise<void>;
25
+ export interface LLMClientOptions<Env extends LLMEnvironment = LLMEnvironment> {
26
+ env?: Env;
27
+ fetch?: typeof fetch;
28
+ logger?: LLMLogger;
29
+ metadata?: LLMMetadata;
30
+ debugLogging?: boolean;
31
+ featureName?: string;
32
+ breakerId?: string;
33
+ healthcheckId?: string;
34
+ allowDynamicApiUrl?: boolean;
35
+ apiUrl?: LLMConfigValue<string, Env>;
36
+ apiToken?: LLMConfigValue<string, Env>;
37
+ model?: LLMConfigValue<string, Env>;
38
+ headers?: LLMConfigValue<LLMHeaders, Env>;
39
+ }
40
+ export interface LLMRequestOptions<Env extends LLMEnvironment = LLMEnvironment> {
41
+ env?: Env;
42
+ signal?: AbortSignal;
43
+ who?: string;
44
+ ctx?: ExecutionContext;
45
+ requestId?: string;
46
+ metadata?: LLMMetadata;
47
+ schemaName?: string;
48
+ model?: string;
49
+ apiUrl?: string;
50
+ apiToken?: string;
51
+ headers?: LLMHeaders;
52
+ allowWhenCircuitTripped?: boolean;
53
+ onUsage?: LLMUsageCallback;
54
+ onText?: LLMTextCallback;
55
+ }
56
+ export interface LLMResolvedProviderConfig {
57
+ provider: LLMProvider;
58
+ gateway: boolean;
59
+ endpoint: string;
60
+ modelsEndpoint: string;
61
+ model: string;
62
+ headers: LLMHeaders;
63
+ }
64
+ interface JSONSchemaAnnotations {
65
+ title?: string;
66
+ description?: string;
67
+ enum?: readonly unknown[];
68
+ }
69
+ export interface JSONStringSchema extends JSONSchemaAnnotations {
70
+ type: "string";
71
+ enum?: readonly string[];
72
+ }
73
+ export interface JSONNumberSchema extends JSONSchemaAnnotations {
74
+ type: "number" | "integer";
75
+ enum?: readonly number[];
76
+ minimum?: number;
77
+ maximum?: number;
78
+ }
79
+ export interface JSONBooleanSchema extends JSONSchemaAnnotations {
80
+ type: "boolean";
81
+ enum?: readonly boolean[];
82
+ }
83
+ export interface JSONNullSchema extends JSONSchemaAnnotations {
84
+ type: "null";
85
+ enum?: readonly null[];
86
+ }
87
+ export interface JSONArraySchema extends JSONSchemaAnnotations {
88
+ type: "array";
89
+ items?: JSONSchemaInput;
90
+ minItems?: number;
91
+ maxItems?: number;
92
+ }
93
+ export interface JSONObjectSchema extends JSONSchemaAnnotations {
94
+ type: "object";
95
+ properties?: Readonly<Record<string, JSONSchemaInput>>;
96
+ required?: readonly string[];
97
+ additionalProperties?: boolean | JSONSchemaInput;
98
+ }
99
+ export type JSONSchemaInput = JSONStringSchema | JSONNumberSchema | JSONBooleanSchema | JSONNullSchema | JSONArraySchema | JSONObjectSchema;
100
+ type SchemaProperties<Schema> = Schema extends {
101
+ properties: infer Properties;
102
+ } ? Properties extends Readonly<Record<string, JSONSchemaInput>> ? Properties : Record<never, never> : Record<never, never>;
103
+ type RequiredSchemaKeys<Schema, Properties> = Schema extends {
104
+ required: readonly (infer Key)[];
105
+ } ? Extract<Key, keyof Properties> : never;
106
+ type Simplify<Value> = {
107
+ [Key in keyof Value]: Value[Key];
108
+ };
109
+ type ObjectFromSchema<Schema, Properties = SchemaProperties<Schema>> = Simplify<{
110
+ -readonly [Key in RequiredSchemaKeys<Schema, Properties>]-?: InferJSONSchema<Properties[Key]>;
111
+ } & {
112
+ -readonly [Key in Exclude<keyof Properties, RequiredSchemaKeys<Schema, Properties>>]?: InferJSONSchema<Properties[Key]>;
113
+ }>;
114
+ export type InferJSONSchema<Schema> = Schema extends {
115
+ enum: readonly (infer Value)[];
116
+ } ? Value : Schema extends {
117
+ type: "string";
118
+ } ? string : Schema extends {
119
+ type: "integer" | "number";
120
+ } ? number : Schema extends {
121
+ type: "boolean";
122
+ } ? boolean : Schema extends {
123
+ type: "null";
124
+ } ? null : Schema extends {
125
+ type: "array";
126
+ items: infer Items extends JSONSchemaInput;
127
+ } ? InferJSONSchema<Items>[] : Schema extends {
128
+ type: "array";
129
+ } ? unknown[] : Schema extends {
130
+ type: "object";
131
+ } ? ObjectFromSchema<Schema> : unknown;
132
+ export type LLMGenerationResult<Schema extends JSONSchemaInput | undefined = undefined> = Schema extends JSONSchemaInput ? InferJSONSchema<Schema> : unknown;
133
+ export interface LLMProviderRequestResult {
134
+ text: string;
135
+ payload: Record<string, unknown>;
136
+ usage: LLMTokenUsage;
137
+ requestId: string;
138
+ metadata: LLMMetadata;
139
+ }
140
+ export interface LLMMultiGenerationInput<Schema extends JSONSchemaInput | undefined = JSONSchemaInput | undefined, Env extends LLMEnvironment = LLMEnvironment> {
141
+ prompt: string;
142
+ schema?: Schema;
143
+ options?: LLMRequestOptions<Env>;
144
+ }
145
+ export interface LLMReviewInput<Env extends LLMEnvironment = LLMEnvironment> {
146
+ prompt: string;
147
+ name?: string;
148
+ options?: LLMRequestOptions<Env>;
149
+ }
150
+ export interface LLMJobOptions<Value = unknown> {
151
+ who?: string;
152
+ ctx?: ExecutionContext;
153
+ toJobResult?: (value: Value) => unknown | Promise<unknown>;
154
+ }
155
+ export interface LLMJobGenerationOptions<Value = unknown, Env extends LLMEnvironment = LLMEnvironment> extends LLMRequestOptions<Env> {
156
+ job?: LLMJobOptions<Value>;
157
+ }
158
+ export interface LLMJobGenerationResult<Value = unknown> {
159
+ job: Job | null;
160
+ value: Value;
161
+ }
162
+ export interface LLMClient<Env extends LLMEnvironment = LLMEnvironment> {
163
+ listModels(requestOptions?: LLMRequestOptions<Env>): Promise<Record<string, unknown>[]>;
164
+ generate<const Schema extends JSONSchemaInput | undefined = undefined>(prompt: string, schema?: Schema, requestOptions?: LLMRequestOptions<Env>): Promise<LLMGenerationResult<Schema>>;
165
+ generateJob<const Schema extends JSONSchemaInput | undefined = undefined>(jobId: string, prompt: string, schema?: Schema, requestOptions?: LLMJobGenerationOptions<LLMGenerationResult<Schema>, Env>): Promise<LLMJobGenerationResult<LLMGenerationResult<Schema>>>;
166
+ generateMulti<const Schema extends JSONSchemaInput | undefined = undefined>(requests: readonly (string | LLMMultiGenerationInput<Schema, Env>)[], schema?: Schema, requestOptions?: LLMRequestOptions<Env>): Promise<LLMGenerationResult<Schema>[]>;
167
+ review<const Schema extends JSONSchemaInput | undefined = undefined>(originalText: string, reviewPrompt: string, schema?: Schema, requestOptions?: LLMRequestOptions<Env>): Promise<LLMGenerationResult<Schema>>;
168
+ reviewMulti<const Schema extends JSONSchemaInput | undefined = undefined>(originalText: string, reviewPrompts: readonly (string | LLMReviewInput<Env>)[], schema?: Schema, requestOptions?: LLMRequestOptions<Env>): Promise<LLMGenerationResult<Schema>[]>;
169
+ }
170
+ export {};
171
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/features/llm/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/features/llm/model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { InferJSONSchema, JSONSchemaInput } from "./model.js";
2
+ export declare function parseBestEffort(text: string): unknown;
3
+ export declare function validateAndReturn<const Schema extends JSONSchemaInput>(text: string, schema: Schema): InferJSONSchema<Schema>;
4
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/features/llm/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,MAAM,SAAS,eAAe,EACpE,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,eAAe,CAAC,MAAM,CAAC,CAKzB"}
@@ -0,0 +1,82 @@
1
+ export function parseBestEffort(text) {
2
+ try {
3
+ return JSON.parse(text);
4
+ }
5
+ catch {
6
+ return text;
7
+ }
8
+ }
9
+ export function validateAndReturn(text, schema) {
10
+ let value;
11
+ try {
12
+ value = JSON.parse(text);
13
+ }
14
+ catch (error) {
15
+ throw new Error(`response is not JSON: ${errorMessage(error)}`);
16
+ }
17
+ validate(value, schema, "$root");
18
+ return value;
19
+ }
20
+ function validate(value, schema, path) {
21
+ if (!schema)
22
+ return;
23
+ if (schema.type === "object") {
24
+ if (!isRecord(value))
25
+ throw new Error(`${path} must be an object`);
26
+ for (const key of schema.required || [])
27
+ if (!(key in value))
28
+ throw new Error(`${path}.${key} is required`);
29
+ for (const key of Object.keys(value)) {
30
+ if (schema.properties?.[key])
31
+ continue;
32
+ if (schema.additionalProperties === false)
33
+ throw new Error(`${path}.${key} is not allowed`);
34
+ if (typeof schema.additionalProperties === "object") {
35
+ validate(value[key], schema.additionalProperties, `${path}.${key}`);
36
+ }
37
+ }
38
+ for (const [key, child] of Object.entries(schema.properties || {})) {
39
+ if (key in value)
40
+ validate(value[key], child, `${path}.${key}`);
41
+ }
42
+ return;
43
+ }
44
+ if (schema.type === "array") {
45
+ if (!Array.isArray(value))
46
+ throw new Error(`${path} must be an array`);
47
+ if (schema.minItems !== undefined && value.length < schema.minItems)
48
+ throw new Error(`${path} has too few items`);
49
+ if (schema.maxItems !== undefined && value.length > schema.maxItems)
50
+ throw new Error(`${path} has too many items`);
51
+ value.forEach((item, index) => validate(item, schema.items, `${path}[${index}]`));
52
+ return;
53
+ }
54
+ if (schema.type === "string" && typeof value !== "string")
55
+ throw new Error(`${path} must be a string`);
56
+ if (schema.type === "integer" && !Number.isInteger(value))
57
+ throw new Error(`${path} must be an integer`);
58
+ if (schema.type === "number" && (typeof value !== "number" || Number.isNaN(value)))
59
+ throw new Error(`${path} must be a number`);
60
+ if (schema.type === "boolean" && typeof value !== "boolean")
61
+ throw new Error(`${path} must be a boolean`);
62
+ if (schema.type === "null" && value !== null)
63
+ throw new Error(`${path} must be null`);
64
+ if (schema.enum && !schema.enum.some((allowed) => Object.is(allowed, value))) {
65
+ throw new Error(`${path} must be one of ${schema.enum.join(", ")}`);
66
+ }
67
+ if ((schema.type === "number" || schema.type === "integer")
68
+ && schema.minimum !== undefined
69
+ && (typeof value !== "number" || value < schema.minimum))
70
+ throw new Error(`${path} is below minimum`);
71
+ if ((schema.type === "number" || schema.type === "integer")
72
+ && schema.maximum !== undefined
73
+ && (typeof value !== "number" || value > schema.maximum))
74
+ throw new Error(`${path} is above maximum`);
75
+ }
76
+ function isRecord(value) {
77
+ return value !== null && typeof value === "object" && !Array.isArray(value);
78
+ }
79
+ function errorMessage(error) {
80
+ return error instanceof Error ? error.message : String(error);
81
+ }
82
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/features/llm/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { JSONSchemaInput, LLMClient, LLMEnvironment, LLMGenerationResult, LLMRequestOptions, LLMReviewInput } from "./model.js";
2
+ export interface LLMServiceOptions<Env extends LLMEnvironment = LLMEnvironment> {
3
+ client: LLMClient<Env>;
4
+ featureName?: string;
5
+ breakerId?: string;
6
+ metadata?: Record<string, unknown>;
7
+ onFailure?: (context: {
8
+ env: Env;
9
+ operation: string;
10
+ requestId: string;
11
+ error: unknown;
12
+ }) => void | Promise<void>;
13
+ onSuccess?: (context: {
14
+ env: Env;
15
+ operation: string;
16
+ requestId: string;
17
+ }) => void | Promise<void>;
18
+ }
19
+ /**
20
+ * Application-facing LLM facade. Provider mechanics remain in createLLM;
21
+ * this layer standardizes circuit checks, request IDs, metadata, and hooks
22
+ * for application-specific telemetry or persistence.
23
+ */
24
+ export declare function createLLMService<Env extends LLMEnvironment = LLMEnvironment>(options: LLMServiceOptions<Env>): {
25
+ generate: <const Schema extends JSONSchemaInput | undefined = undefined>(env: Env, input: string, schema?: Schema, name?: string, requestOptions?: LLMRequestOptions<Env>) => Promise<LLMGenerationResult<Schema>>;
26
+ generateStream: <const Schema extends JSONSchemaInput | undefined = undefined>(env: Env, input: string, schema: Schema | undefined, name: string, onText?: NonNullable<LLMRequestOptions<Env>["onText"]>, requestOptions?: LLMRequestOptions<Env>) => Promise<LLMGenerationResult<Schema>>;
27
+ reviewMulti: <const Schema extends JSONSchemaInput | undefined = undefined>(env: Env, originalText: string, prompts: readonly (string | LLMReviewInput<Env>)[], schema?: Schema, name?: string, requestOptions?: LLMRequestOptions<Env>) => Promise<LLMGenerationResult<Schema>[]>;
28
+ };
29
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/features/llm/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iBAAiB,CAAC,GAAG,SAAS,cAAc,GAAG,cAAc;IAC5E,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,cAAc,GAAG,cAAc,EAC1E,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC;qBAoCP,MAAM,SAAS,eAAe,GAAG,SAAS,mBAC3D,GAAG,SACD,MAAM,WACJ,MAAM,kCAEC,iBAAiB,CAAC,GAAG,CAAC,KACrC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;2BAQT,MAAM,SAAS,eAAe,GAAG,SAAS,mBACjE,GAAG,SACD,MAAM,UACL,MAAM,GAAG,SAAS,QACpB,MAAM,WACJ,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,mBACrC,iBAAiB,CAAC,GAAG,CAAC,KACrC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;wBAIZ,MAAM,SAAS,eAAe,GAAG,SAAS,mBAC9D,GAAG,gBACM,MAAM,WACX,SAAS,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,WACzC,MAAM,kCAEC,iBAAiB,CAAC,GAAG,CAAC,KACrC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;EAS1C"}
@@ -0,0 +1,55 @@
1
+ import { requireFeatureCircuit } from "../../core/circuits/index.js";
2
+ /**
3
+ * Application-facing LLM facade. Provider mechanics remain in createLLM;
4
+ * this layer standardizes circuit checks, request IDs, metadata, and hooks
5
+ * for application-specific telemetry or persistence.
6
+ */
7
+ export function createLLMService(options) {
8
+ const featureName = options.featureName || "llm";
9
+ const breakerId = options.breakerId || `${featureName}:llm-models`;
10
+ const metadata = options.metadata || {};
11
+ async function run(env, operation, requestOptions, work) {
12
+ const requestId = requestOptions?.requestId || crypto.randomUUID();
13
+ const mergedOptions = {
14
+ ...requestOptions,
15
+ env,
16
+ requestId,
17
+ metadata: { ...metadata, ...(requestOptions?.metadata || {}), type: requestOptions?.metadata?.type || operation },
18
+ };
19
+ try {
20
+ await requireFeatureCircuit(env, {
21
+ feature: featureName,
22
+ breakerId,
23
+ operation,
24
+ requestId,
25
+ who: mergedOptions.who || "system:read",
26
+ });
27
+ const result = await work(requestId, mergedOptions);
28
+ await options.onSuccess?.({ env, operation, requestId });
29
+ return result;
30
+ }
31
+ catch (error) {
32
+ await options.onFailure?.({ env, operation, requestId, error });
33
+ throw error;
34
+ }
35
+ }
36
+ function generate(env, input, schema, name = "response", requestOptions = {}) {
37
+ return run(env, name, requestOptions, (requestId, mergedOptions) => options.client.generate(input, schema, {
38
+ ...mergedOptions,
39
+ requestId,
40
+ schemaName: name,
41
+ }));
42
+ }
43
+ function generateStream(env, input, schema, name, onText = async () => { }, requestOptions = {}) {
44
+ return generate(env, input, schema, name, { ...requestOptions, onText });
45
+ }
46
+ function reviewMulti(env, originalText, prompts, schema, name = "review", requestOptions = {}) {
47
+ return run(env, name, requestOptions, (requestId, mergedOptions) => options.client.reviewMulti(originalText, prompts, schema, {
48
+ ...mergedOptions,
49
+ requestId,
50
+ schemaName: name,
51
+ }));
52
+ }
53
+ return { generate, generateStream, reviewMulti };
54
+ }
55
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/features/llm/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAmBrE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA+B;IAE/B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,WAAW,aAAa,CAAC;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IAExC,KAAK,UAAU,GAAG,CAChB,GAAQ,EACR,SAAiB,EACjB,cAAkD,EAClD,IAAmF;QAEnF,MAAM,SAAS,GAAG,cAAc,EAAE,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACnE,MAAM,aAAa,GAA2B;YAC5C,GAAG,cAAc;YACjB,GAAG;YACH,SAAS;YACT,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,cAAc,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,EAAE;SAClH,CAAC;QACF,IAAI,CAAC;YACH,MAAM,qBAAqB,CAAC,GAAG,EAAE;gBAC/B,OAAO,EAAE,WAAW;gBACpB,SAAS;gBACT,SAAS;gBACT,SAAS;gBACT,GAAG,EAAE,aAAa,CAAC,GAAG,IAAI,aAAa;aACxC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACpD,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,SAAS,QAAQ,CACf,GAAQ,EACR,KAAa,EACb,MAAe,EACf,IAAI,GAAG,UAAU,EACjB,cAAc,GAA2B,EAAE;QAE3C,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE;YACzG,GAAG,aAAa;YAChB,SAAS;YACT,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,SAAS,cAAc,CACrB,GAAQ,EACR,KAAa,EACb,MAA0B,EAC1B,IAAY,EACZ,MAAM,GAAkD,KAAK,IAAI,EAAE,GAAE,CAAC,EACtE,cAAc,GAA2B,EAAE;QAE3C,OAAO,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,SAAS,WAAW,CAClB,GAAQ,EACR,YAAoB,EACpB,OAAkD,EAClD,MAAe,EACf,IAAI,GAAG,QAAQ,EACf,cAAc,GAA2B,EAAE;QAE3C,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE;YAC5H,GAAG,aAAa;YAChB,SAAS;YACT,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;AACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const PACKAGE_NAME = "@agilesyndrome/cf-genai-base";
2
+ export declare const VERSION = "5.0.3";
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/features/messaging/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,iCAAoB,CAAC;AAC9C,eAAO,MAAM,OAAO,UAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { BASE_PACKAGE_NAME, BASE_VERSION } from "../../core/constants.js";
2
+ export const PACKAGE_NAME = BASE_PACKAGE_NAME;
3
+ export const VERSION = BASE_VERSION;
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/features/messaging/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE1E,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAC9C,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { AppDomain } from "../../domain/index.js";
2
+ import type { DataResourceInput } from "../../data/model.js";
3
+ /** Messaging persistence belongs to the concept even when the host supplies its API routes. */
4
+ export declare class MessagingDomain extends AppDomain {
5
+ constructor(options?: {
6
+ dataResources?: readonly DataResourceInput[];
7
+ });
8
+ }
9
+ //# sourceMappingURL=domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../src/features/messaging/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,+FAA+F;AAC/F,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,YAAY,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;KAAO,EAOzE;CACF"}
@@ -0,0 +1,14 @@
1
+ import { AppDomain } from "../../domain/index.js";
2
+ import { MESSAGING_DATA_RESOURCES } from "./resources.js";
3
+ /** Messaging persistence belongs to the concept even when the host supplies its API routes. */
4
+ export class MessagingDomain extends AppDomain {
5
+ constructor(options = {}) {
6
+ super({
7
+ name: "messaging.messages",
8
+ basePath: "/api/messages",
9
+ auth: "user",
10
+ dataResources: options.dataResources ?? MESSAGING_DATA_RESOURCES,
11
+ });
12
+ }
13
+ }
14
+ //# sourceMappingURL=domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../src/features/messaging/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,+FAA+F;AAC/F,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YAAY,OAAO,GAAqD,EAAE;QACxE,KAAK,CAAC;YACJ,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,wBAAwB;SACjE,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { DataResourceInput } from "../../data/model.js";
2
+ import type { RuntimeBindings, RuntimeFeature, RuntimeFeatureOptions, RuntimeState } from "../../runtime/model.js";
3
+ export interface MessagingFeatureOptions<Env extends RuntimeBindings = RuntimeBindings, State extends RuntimeState = RuntimeState> extends RuntimeFeatureOptions<Env, State> {
4
+ dataResources?: readonly DataResourceInput[];
5
+ }
6
+ export declare function createMessagingFeature<Env extends RuntimeBindings = RuntimeBindings, State extends RuntimeState = RuntimeState>(options?: MessagingFeatureOptions<Env, State>): RuntimeFeature<Env, State>;
7
+ //# sourceMappingURL=feature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../src/features/messaging/feature.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,YAAY,EACb,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,uBAAuB,CACtC,GAAG,SAAS,eAAe,GAAG,eAAe,EAC7C,KAAK,SAAS,YAAY,GAAG,YAAY,CACzC,SAAQ,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC;IACzC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC9C;AAED,wBAAgB,sBAAsB,CACpC,GAAG,SAAS,eAAe,GAAG,eAAe,EAC7C,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,OAAO,GAAE,uBAAuB,CAAC,GAAG,EAAE,KAAK,CAAM,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAiB/E"}
@@ -0,0 +1,23 @@
1
+ import { PACKAGE_NAME, VERSION } from "./constants.js";
2
+ import { MESSAGING_DATA_RESOURCES } from "./resources.js";
3
+ import { MessagingDomain } from "./domain.js";
4
+ export function createMessagingFeature(options = {}) {
5
+ const name = options.name || "messaging";
6
+ const domains = options.domains || [new MessagingDomain({ dataResources: options.dataResources || MESSAGING_DATA_RESOURCES })];
7
+ return {
8
+ name,
9
+ displayName: options.displayName || "Messaging",
10
+ packageName: PACKAGE_NAME,
11
+ version: VERSION,
12
+ domains,
13
+ ...(typeof options.healthcheck === "function" ? { healthcheck: options.healthcheck } : {}),
14
+ healthchecks: options.healthchecks || [],
15
+ circuitBreakers: options.circuitBreakers || [],
16
+ middleware: async (request, env, ctx, next, state) => {
17
+ if (options.boot)
18
+ await options.boot(env, { request, ctx, state });
19
+ return options.middleware ? options.middleware(request, env, ctx, next, state) : next();
20
+ },
21
+ };
22
+ }
23
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.js","sourceRoot":"","sources":["../../../src/features/messaging/feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAgB9C,MAAM,UAAU,sBAAsB,CAGpC,OAAO,GAAwC,EAAE;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,eAAe,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,wBAAwB,EAAE,CAAC,CAAC,CAAC;IAC/H,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,WAAW;QAC/C,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,OAAO;QAChB,OAAO;QACP,GAAG,CAAC,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;QACxC,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;QAC9C,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACnD,IAAI,OAAO,CAAC,IAAI;gBAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1F,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ export { PACKAGE_NAME, VERSION } from "./constants.js";
2
+ export { createMessagingFeature } from "./feature.js";
3
+ export type { MessagingFeatureOptions } from "./feature.js";
4
+ export { executeReplyJob } from "./jobs.js";
5
+ export type { MessagingReplyStore, ReplyGenerationContext, ReplyJobDefinition, ReplyJobOptions, ReplyJobResult, } from "./jobs.js";
6
+ export { conversation, groupMessage, message, normalizeContext, participant, participants } from "./models.js";
7
+ export type { Conversation, ConversationInput, Message, MessageInput, Participant, ParticipantInput, } from "./models.js";
8
+ export { MESSAGING_DATA_RESOURCES, MESSAGING_TABLES } from "./resources.js";
9
+ export { createMessagingStore } from "./store.js";
10
+ export type { ConversationLoadOptions, HydratedConversation, MessageListOptions, MessagingStore, MessagingStoreOptions, } from "./store.js";
11
+ export { MessagingDomain } from "./domain.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/messaging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/G,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { PACKAGE_NAME, VERSION } from "./constants.js";
2
+ export { createMessagingFeature } from "./feature.js";
3
+ export { executeReplyJob } from "./jobs.js";
4
+ export { conversation, groupMessage, message, normalizeContext, participant, participants } from "./models.js";
5
+ export { MESSAGING_DATA_RESOURCES, MESSAGING_TABLES } from "./resources.js";
6
+ export { createMessagingStore } from "./store.js";
7
+ export { MessagingDomain } from "./domain.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/messaging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAQ5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAS/G,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQlD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { Job, JobOptions } from "../../core/jobs/model.js";
2
+ import type { Conversation, Message, MessageInput, ParticipantInput } from "./models.js";
3
+ export interface MessagingReplyStore {
4
+ findConversationById(id: unknown): Promise<(Conversation & {
5
+ messages?: Message[];
6
+ }) | null>;
7
+ appendMessage(conversationId: unknown, input: MessageInput): Promise<Message>;
8
+ }
9
+ export interface ReplyGenerationContext {
10
+ conversation: Conversation & {
11
+ messages?: Message[];
12
+ };
13
+ messages: Message[];
14
+ job: Job;
15
+ report(progress: unknown): Promise<Job | null>;
16
+ }
17
+ export interface ReplyJobDefinition {
18
+ store?: MessagingReplyStore;
19
+ conversationId?: unknown;
20
+ sender?: ParticipantInput;
21
+ messageType?: unknown;
22
+ responseType?: unknown;
23
+ audience?: readonly ParticipantInput[];
24
+ metadata?: Record<string, unknown>;
25
+ generate?: (context: ReplyGenerationContext) => MessageInput | Promise<MessageInput>;
26
+ }
27
+ export interface ReplyJobResult {
28
+ conversationId: string;
29
+ messageId: string;
30
+ }
31
+ export interface ReplyJobOptions extends JobOptions {
32
+ toJobResult?: (reply: Message) => unknown | Promise<unknown>;
33
+ }
34
+ export declare function executeReplyJob(env: unknown, jobId: unknown, definition?: ReplyJobDefinition, options?: ReplyJobOptions): Promise<{
35
+ job: Job | null;
36
+ value: Message;
37
+ }>;
38
+ //# sourceMappingURL=jobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/features/messaging/jobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEzF,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,YAAY,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7F,aAAa,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IACtD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9D;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,OAAO,EACd,UAAU,GAAE,kBAAuB,EACnC,OAAO,GAAE,eAAoB;;;GAkC9B"}
@@ -0,0 +1,40 @@
1
+ import { executeJob } from "../../core/jobs/index.js";
2
+ export async function executeReplyJob(env, jobId, definition = {}, options = {}) {
3
+ const store = definition.store;
4
+ if (!store || typeof store.findConversationById !== "function" || typeof store.appendMessage !== "function")
5
+ throw new TypeError("executeReplyJob requires a messaging store");
6
+ if (typeof definition.generate !== "function")
7
+ throw new TypeError("executeReplyJob requires a generate callback");
8
+ const generate = definition.generate;
9
+ const conversationId = definition.conversationId;
10
+ if (conversationId === undefined || conversationId === null)
11
+ throw new TypeError("conversationId is required");
12
+ return executeJob(env, jobId, async ({ job, report }) => {
13
+ await report({ phase: "loading_conversation" });
14
+ const thread = await store.findConversationById(conversationId);
15
+ if (!thread)
16
+ throw new Error("conversation_not_found");
17
+ await report({ phase: "generating_reply" });
18
+ const reply = await generate({ conversation: thread, messages: thread.messages || [], job, report });
19
+ if (!reply || typeof reply !== "object" || Array.isArray(reply)) {
20
+ throw new TypeError("Reply generator must return a message object");
21
+ }
22
+ await report({ phase: "saving_reply" });
23
+ return store.appendMessage(conversationId, {
24
+ ...reply,
25
+ sender: reply.sender || definition.sender,
26
+ messageType: reply.messageType || definition.messageType || "assistant",
27
+ responseType: reply.responseType || definition.responseType,
28
+ audience: reply.audience || definition.audience,
29
+ metadata: { ...(definition.metadata || {}), ...(reply.metadata || {}) },
30
+ });
31
+ }, {
32
+ who: options.who || "system:update",
33
+ ctx: options.ctx,
34
+ toJobResult: options.toJobResult || ((reply) => ({
35
+ conversationId: String(conversationId),
36
+ messageId: String(reply.id),
37
+ })),
38
+ });
39
+ }
40
+ //# sourceMappingURL=jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/features/messaging/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAoCtD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAY,EACZ,KAAc,EACd,UAAU,GAAuB,EAAE,EACnC,OAAO,GAAoB,EAAE;IAE7B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,oBAAoB,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;IAC/K,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;IACnH,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACrC,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;IACjD,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC/G,OAAO,UAAU,CAAmB,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QACxE,MAAM,MAAM,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvD,MAAM,MAAM,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACrG,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,MAAM,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE;YACzC,GAAG,KAAK;YACR,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM;YACzC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,IAAI,WAAW;YACvE,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY;YAC3D,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ;YAC/C,QAAQ,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;SACxE,CAAC,CAAC;IACL,CAAC,EAAE;QACD,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,eAAe;QACnC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,EAAkB,EAAE,CAAC,CAAC;YAC/D,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC;YACtC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;SAC5B,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC"}