@lssm/lib.contracts 1.2.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 (611) hide show
  1. package/README.md +361 -0
  2. package/dist/app-config/branding.d.ts +56 -0
  3. package/dist/app-config/branding.d.ts.map +1 -0
  4. package/dist/app-config/branding.js +0 -0
  5. package/dist/app-config/contracts.d.ts +243 -0
  6. package/dist/app-config/contracts.d.ts.map +1 -0
  7. package/dist/app-config/contracts.js +2 -0
  8. package/dist/app-config/contracts.js.map +1 -0
  9. package/dist/app-config/events.d.ts +121 -0
  10. package/dist/app-config/events.d.ts.map +1 -0
  11. package/dist/app-config/events.js +2 -0
  12. package/dist/app-config/events.js.map +1 -0
  13. package/dist/app-config/index.d.ts +8 -0
  14. package/dist/app-config/index.js +1 -0
  15. package/dist/app-config/lifecycle-contracts.d.ts +381 -0
  16. package/dist/app-config/lifecycle-contracts.d.ts.map +1 -0
  17. package/dist/app-config/lifecycle-contracts.js +2 -0
  18. package/dist/app-config/lifecycle-contracts.js.map +1 -0
  19. package/dist/app-config/lifecycle.d.ts +28 -0
  20. package/dist/app-config/lifecycle.d.ts.map +1 -0
  21. package/dist/app-config/lifecycle.js +0 -0
  22. package/dist/app-config/runtime.d.ts +115 -0
  23. package/dist/app-config/runtime.d.ts.map +1 -0
  24. package/dist/app-config/runtime.js +2 -0
  25. package/dist/app-config/runtime.js.map +1 -0
  26. package/dist/app-config/spec.d.ts +176 -0
  27. package/dist/app-config/spec.d.ts.map +1 -0
  28. package/dist/app-config/spec.js +2 -0
  29. package/dist/app-config/spec.js.map +1 -0
  30. package/dist/app-config/validation.d.ts +48 -0
  31. package/dist/app-config/validation.d.ts.map +1 -0
  32. package/dist/app-config/validation.js +2 -0
  33. package/dist/app-config/validation.js.map +1 -0
  34. package/dist/capabilities/openbanking.d.ts +10 -0
  35. package/dist/capabilities/openbanking.d.ts.map +1 -0
  36. package/dist/capabilities/openbanking.js +2 -0
  37. package/dist/capabilities/openbanking.js.map +1 -0
  38. package/dist/capabilities.d.ts +45 -0
  39. package/dist/capabilities.d.ts.map +1 -0
  40. package/dist/capabilities.js +2 -0
  41. package/dist/capabilities.js.map +1 -0
  42. package/dist/client/index.d.ts +6 -0
  43. package/dist/client/index.js +1 -0
  44. package/dist/client/react/drivers/rn-reusables.d.ts +23 -0
  45. package/dist/client/react/drivers/rn-reusables.d.ts.map +1 -0
  46. package/dist/client/react/drivers/rn-reusables.js +2 -0
  47. package/dist/client/react/drivers/rn-reusables.js.map +1 -0
  48. package/dist/client/react/drivers/shadcn.d.ts +13 -0
  49. package/dist/client/react/drivers/shadcn.d.ts.map +1 -0
  50. package/dist/client/react/drivers/shadcn.js +2 -0
  51. package/dist/client/react/drivers/shadcn.js.map +1 -0
  52. package/dist/client/react/feature-render.d.ts +21 -0
  53. package/dist/client/react/feature-render.d.ts.map +1 -0
  54. package/dist/client/react/feature-render.js +2 -0
  55. package/dist/client/react/feature-render.js.map +1 -0
  56. package/dist/client/react/form-render.d.ts +91 -0
  57. package/dist/client/react/form-render.d.ts.map +1 -0
  58. package/dist/client/react/form-render.js +2 -0
  59. package/dist/client/react/form-render.js.map +1 -0
  60. package/dist/client/react/index.d.ts +5 -0
  61. package/dist/client/react/index.js +1 -0
  62. package/dist/contracts-adapter-hydration.d.ts +16 -0
  63. package/dist/contracts-adapter-hydration.d.ts.map +1 -0
  64. package/dist/contracts-adapter-hydration.js +2 -0
  65. package/dist/contracts-adapter-hydration.js.map +1 -0
  66. package/dist/contracts-adapter-input.d.ts +10 -0
  67. package/dist/contracts-adapter-input.d.ts.map +1 -0
  68. package/dist/contracts-adapter-input.js +2 -0
  69. package/dist/contracts-adapter-input.js.map +1 -0
  70. package/dist/data-views.d.ts +132 -0
  71. package/dist/data-views.d.ts.map +1 -0
  72. package/dist/data-views.js +2 -0
  73. package/dist/data-views.js.map +1 -0
  74. package/dist/events.d.ts +44 -0
  75. package/dist/events.d.ts.map +1 -0
  76. package/dist/events.js +2 -0
  77. package/dist/events.js.map +1 -0
  78. package/dist/experiments/evaluator.d.ts +38 -0
  79. package/dist/experiments/evaluator.d.ts.map +1 -0
  80. package/dist/experiments/evaluator.js +2 -0
  81. package/dist/experiments/evaluator.js.map +1 -0
  82. package/dist/experiments/spec.d.ts +90 -0
  83. package/dist/experiments/spec.d.ts.map +1 -0
  84. package/dist/experiments/spec.js +2 -0
  85. package/dist/experiments/spec.js.map +1 -0
  86. package/dist/features.d.ts +88 -0
  87. package/dist/features.d.ts.map +1 -0
  88. package/dist/features.js +2 -0
  89. package/dist/features.js.map +1 -0
  90. package/dist/forms.d.ts +258 -0
  91. package/dist/forms.d.ts.map +1 -0
  92. package/dist/forms.js +2 -0
  93. package/dist/forms.js.map +1 -0
  94. package/dist/graphql-federation/src/index.js +2 -0
  95. package/dist/graphql-federation/src/index.js.map +1 -0
  96. package/dist/index.d.ts +129 -0
  97. package/dist/index.js +1 -0
  98. package/dist/install.d.ts +76 -0
  99. package/dist/install.d.ts.map +1 -0
  100. package/dist/install.js +2 -0
  101. package/dist/install.js.map +1 -0
  102. package/dist/integrations/binding.d.ts +18 -0
  103. package/dist/integrations/binding.d.ts.map +1 -0
  104. package/dist/integrations/binding.js +0 -0
  105. package/dist/integrations/connection.d.ts +52 -0
  106. package/dist/integrations/connection.d.ts.map +1 -0
  107. package/dist/integrations/connection.js +0 -0
  108. package/dist/integrations/contracts.d.ts +434 -0
  109. package/dist/integrations/contracts.d.ts.map +1 -0
  110. package/dist/integrations/contracts.js +2 -0
  111. package/dist/integrations/contracts.js.map +1 -0
  112. package/dist/integrations/health.d.ts +22 -0
  113. package/dist/integrations/health.d.ts.map +1 -0
  114. package/dist/integrations/health.js +2 -0
  115. package/dist/integrations/health.js.map +1 -0
  116. package/dist/integrations/index.d.ts +53 -0
  117. package/dist/integrations/index.js +1 -0
  118. package/dist/integrations/openbanking/contracts/accounts.d.ts +286 -0
  119. package/dist/integrations/openbanking/contracts/accounts.d.ts.map +1 -0
  120. package/dist/integrations/openbanking/contracts/accounts.js +2 -0
  121. package/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  122. package/dist/integrations/openbanking/contracts/balances.d.ts +162 -0
  123. package/dist/integrations/openbanking/contracts/balances.d.ts.map +1 -0
  124. package/dist/integrations/openbanking/contracts/balances.js +2 -0
  125. package/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  126. package/dist/integrations/openbanking/contracts/index.d.ts +10 -0
  127. package/dist/integrations/openbanking/contracts/index.d.ts.map +1 -0
  128. package/dist/integrations/openbanking/contracts/index.js +2 -0
  129. package/dist/integrations/openbanking/contracts/index.js.map +1 -0
  130. package/dist/integrations/openbanking/contracts/transactions.d.ts +210 -0
  131. package/dist/integrations/openbanking/contracts/transactions.d.ts.map +1 -0
  132. package/dist/integrations/openbanking/contracts/transactions.js +2 -0
  133. package/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  134. package/dist/integrations/openbanking/guards.d.ts +13 -0
  135. package/dist/integrations/openbanking/guards.d.ts.map +1 -0
  136. package/dist/integrations/openbanking/guards.js +2 -0
  137. package/dist/integrations/openbanking/guards.js.map +1 -0
  138. package/dist/integrations/openbanking/models.d.ts +226 -0
  139. package/dist/integrations/openbanking/models.d.ts.map +1 -0
  140. package/dist/integrations/openbanking/models.js +2 -0
  141. package/dist/integrations/openbanking/models.js.map +1 -0
  142. package/dist/integrations/openbanking/telemetry.d.ts +16 -0
  143. package/dist/integrations/openbanking/telemetry.d.ts.map +1 -0
  144. package/dist/integrations/openbanking/telemetry.js +2 -0
  145. package/dist/integrations/openbanking/telemetry.js.map +1 -0
  146. package/dist/integrations/providers/calendar.d.ts +79 -0
  147. package/dist/integrations/providers/calendar.d.ts.map +1 -0
  148. package/dist/integrations/providers/calendar.js +0 -0
  149. package/dist/integrations/providers/elevenlabs.d.ts +8 -0
  150. package/dist/integrations/providers/elevenlabs.d.ts.map +1 -0
  151. package/dist/integrations/providers/elevenlabs.js +2 -0
  152. package/dist/integrations/providers/elevenlabs.js.map +1 -0
  153. package/dist/integrations/providers/email.d.ts +87 -0
  154. package/dist/integrations/providers/email.d.ts.map +1 -0
  155. package/dist/integrations/providers/email.js +0 -0
  156. package/dist/integrations/providers/embedding.d.ts +25 -0
  157. package/dist/integrations/providers/embedding.d.ts.map +1 -0
  158. package/dist/integrations/providers/embedding.js +0 -0
  159. package/dist/integrations/providers/gcs-storage.d.ts +8 -0
  160. package/dist/integrations/providers/gcs-storage.d.ts.map +1 -0
  161. package/dist/integrations/providers/gcs-storage.js +2 -0
  162. package/dist/integrations/providers/gcs-storage.js.map +1 -0
  163. package/dist/integrations/providers/gmail.d.ts +8 -0
  164. package/dist/integrations/providers/gmail.d.ts.map +1 -0
  165. package/dist/integrations/providers/gmail.js +2 -0
  166. package/dist/integrations/providers/gmail.js.map +1 -0
  167. package/dist/integrations/providers/google-calendar.d.ts +8 -0
  168. package/dist/integrations/providers/google-calendar.d.ts.map +1 -0
  169. package/dist/integrations/providers/google-calendar.js +2 -0
  170. package/dist/integrations/providers/google-calendar.js.map +1 -0
  171. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +21 -0
  172. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts.map +1 -0
  173. package/dist/integrations/providers/impls/elevenlabs-voice.js +2 -0
  174. package/dist/integrations/providers/impls/elevenlabs-voice.js.map +1 -0
  175. package/dist/integrations/providers/impls/gcs-storage.d.ts +25 -0
  176. package/dist/integrations/providers/impls/gcs-storage.d.ts.map +1 -0
  177. package/dist/integrations/providers/impls/gcs-storage.js +2 -0
  178. package/dist/integrations/providers/impls/gcs-storage.js.map +1 -0
  179. package/dist/integrations/providers/impls/gmail-inbound.d.ts +27 -0
  180. package/dist/integrations/providers/impls/gmail-inbound.d.ts.map +1 -0
  181. package/dist/integrations/providers/impls/gmail-inbound.js +2 -0
  182. package/dist/integrations/providers/impls/gmail-inbound.js.map +1 -0
  183. package/dist/integrations/providers/impls/gmail-outbound.d.ts +19 -0
  184. package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +1 -0
  185. package/dist/integrations/providers/impls/gmail-outbound.js +7 -0
  186. package/dist/integrations/providers/impls/gmail-outbound.js.map +1 -0
  187. package/dist/integrations/providers/impls/google-calendar.d.ts +24 -0
  188. package/dist/integrations/providers/impls/google-calendar.d.ts.map +1 -0
  189. package/dist/integrations/providers/impls/google-calendar.js +2 -0
  190. package/dist/integrations/providers/impls/google-calendar.js.map +1 -0
  191. package/dist/integrations/providers/impls/index.d.ts +15 -0
  192. package/dist/integrations/providers/impls/index.js +1 -0
  193. package/dist/integrations/providers/impls/mistral-embedding.d.ts +24 -0
  194. package/dist/integrations/providers/impls/mistral-embedding.d.ts.map +1 -0
  195. package/dist/integrations/providers/impls/mistral-embedding.js +2 -0
  196. package/dist/integrations/providers/impls/mistral-embedding.js.map +1 -0
  197. package/dist/integrations/providers/impls/mistral-llm.d.ts +32 -0
  198. package/dist/integrations/providers/impls/mistral-llm.d.ts.map +1 -0
  199. package/dist/integrations/providers/impls/mistral-llm.js +2 -0
  200. package/dist/integrations/providers/impls/mistral-llm.js.map +1 -0
  201. package/dist/integrations/providers/impls/postmark-email.d.ts +20 -0
  202. package/dist/integrations/providers/impls/postmark-email.d.ts.map +1 -0
  203. package/dist/integrations/providers/impls/postmark-email.js +2 -0
  204. package/dist/integrations/providers/impls/postmark-email.js.map +1 -0
  205. package/dist/integrations/providers/impls/powens-client.d.ts +125 -0
  206. package/dist/integrations/providers/impls/powens-client.d.ts.map +1 -0
  207. package/dist/integrations/providers/impls/powens-client.js +2 -0
  208. package/dist/integrations/providers/impls/powens-client.js.map +1 -0
  209. package/dist/integrations/providers/impls/powens-openbanking.d.ts +28 -0
  210. package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +1 -0
  211. package/dist/integrations/providers/impls/powens-openbanking.js +2 -0
  212. package/dist/integrations/providers/impls/powens-openbanking.js.map +1 -0
  213. package/dist/integrations/providers/impls/provider-factory.d.ts +27 -0
  214. package/dist/integrations/providers/impls/provider-factory.d.ts.map +1 -0
  215. package/dist/integrations/providers/impls/provider-factory.js +2 -0
  216. package/dist/integrations/providers/impls/provider-factory.js.map +1 -0
  217. package/dist/integrations/providers/impls/qdrant-vector.d.ts +25 -0
  218. package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +1 -0
  219. package/dist/integrations/providers/impls/qdrant-vector.js +2 -0
  220. package/dist/integrations/providers/impls/qdrant-vector.js.map +1 -0
  221. package/dist/integrations/providers/impls/stripe-payments.d.ts +29 -0
  222. package/dist/integrations/providers/impls/stripe-payments.d.ts.map +1 -0
  223. package/dist/integrations/providers/impls/stripe-payments.js +2 -0
  224. package/dist/integrations/providers/impls/stripe-payments.js.map +1 -0
  225. package/dist/integrations/providers/impls/twilio-sms.d.ts +21 -0
  226. package/dist/integrations/providers/impls/twilio-sms.d.ts.map +1 -0
  227. package/dist/integrations/providers/impls/twilio-sms.js +2 -0
  228. package/dist/integrations/providers/impls/twilio-sms.js.map +1 -0
  229. package/dist/integrations/providers/index.d.ts +36 -0
  230. package/dist/integrations/providers/index.js +1 -0
  231. package/dist/integrations/providers/llm.d.ts +83 -0
  232. package/dist/integrations/providers/llm.d.ts.map +1 -0
  233. package/dist/integrations/providers/llm.js +0 -0
  234. package/dist/integrations/providers/mistral.d.ts +8 -0
  235. package/dist/integrations/providers/mistral.d.ts.map +1 -0
  236. package/dist/integrations/providers/mistral.js +2 -0
  237. package/dist/integrations/providers/mistral.js.map +1 -0
  238. package/dist/integrations/providers/openbanking.d.ts +129 -0
  239. package/dist/integrations/providers/openbanking.d.ts.map +1 -0
  240. package/dist/integrations/providers/openbanking.js +0 -0
  241. package/dist/integrations/providers/payments.d.ts +110 -0
  242. package/dist/integrations/providers/payments.d.ts.map +1 -0
  243. package/dist/integrations/providers/payments.js +0 -0
  244. package/dist/integrations/providers/postmark.d.ts +8 -0
  245. package/dist/integrations/providers/postmark.d.ts.map +1 -0
  246. package/dist/integrations/providers/postmark.js +2 -0
  247. package/dist/integrations/providers/postmark.js.map +1 -0
  248. package/dist/integrations/providers/powens.d.ts +8 -0
  249. package/dist/integrations/providers/powens.d.ts.map +1 -0
  250. package/dist/integrations/providers/powens.js +2 -0
  251. package/dist/integrations/providers/powens.js.map +1 -0
  252. package/dist/integrations/providers/qdrant.d.ts +8 -0
  253. package/dist/integrations/providers/qdrant.d.ts.map +1 -0
  254. package/dist/integrations/providers/qdrant.js +2 -0
  255. package/dist/integrations/providers/qdrant.js.map +1 -0
  256. package/dist/integrations/providers/sms.d.ts +35 -0
  257. package/dist/integrations/providers/sms.d.ts.map +1 -0
  258. package/dist/integrations/providers/sms.js +0 -0
  259. package/dist/integrations/providers/storage.d.ts +61 -0
  260. package/dist/integrations/providers/storage.d.ts.map +1 -0
  261. package/dist/integrations/providers/storage.js +0 -0
  262. package/dist/integrations/providers/stripe.d.ts +8 -0
  263. package/dist/integrations/providers/stripe.d.ts.map +1 -0
  264. package/dist/integrations/providers/stripe.js +2 -0
  265. package/dist/integrations/providers/stripe.js.map +1 -0
  266. package/dist/integrations/providers/twilio-sms.d.ts +8 -0
  267. package/dist/integrations/providers/twilio-sms.d.ts.map +1 -0
  268. package/dist/integrations/providers/twilio-sms.js +2 -0
  269. package/dist/integrations/providers/twilio-sms.js.map +1 -0
  270. package/dist/integrations/providers/vector-store.d.ts +44 -0
  271. package/dist/integrations/providers/vector-store.d.ts.map +1 -0
  272. package/dist/integrations/providers/vector-store.js +0 -0
  273. package/dist/integrations/providers/voice.d.ts +35 -0
  274. package/dist/integrations/providers/voice.d.ts.map +1 -0
  275. package/dist/integrations/providers/voice.js +0 -0
  276. package/dist/integrations/runtime.d.ts +100 -0
  277. package/dist/integrations/runtime.d.ts.map +1 -0
  278. package/dist/integrations/runtime.js +2 -0
  279. package/dist/integrations/runtime.js.map +1 -0
  280. package/dist/integrations/secrets/env-secret-provider.d.ts +32 -0
  281. package/dist/integrations/secrets/env-secret-provider.d.ts.map +1 -0
  282. package/dist/integrations/secrets/env-secret-provider.js +2 -0
  283. package/dist/integrations/secrets/env-secret-provider.js.map +1 -0
  284. package/dist/integrations/secrets/gcp-secret-manager.d.ts +33 -0
  285. package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +1 -0
  286. package/dist/integrations/secrets/gcp-secret-manager.js +2 -0
  287. package/dist/integrations/secrets/gcp-secret-manager.js.map +1 -0
  288. package/dist/integrations/secrets/index.d.ts +5 -0
  289. package/dist/integrations/secrets/index.js +1 -0
  290. package/dist/integrations/secrets/manager.d.ts +48 -0
  291. package/dist/integrations/secrets/manager.d.ts.map +1 -0
  292. package/dist/integrations/secrets/manager.js +2 -0
  293. package/dist/integrations/secrets/manager.js.map +1 -0
  294. package/dist/integrations/secrets/provider.d.ts +53 -0
  295. package/dist/integrations/secrets/provider.d.ts.map +1 -0
  296. package/dist/integrations/secrets/provider.js +2 -0
  297. package/dist/integrations/secrets/provider.js.map +1 -0
  298. package/dist/integrations/spec.d.ts +80 -0
  299. package/dist/integrations/spec.d.ts.map +1 -0
  300. package/dist/integrations/spec.js +2 -0
  301. package/dist/integrations/spec.js.map +1 -0
  302. package/dist/jobs/gcp-cloud-tasks.d.ts +42 -0
  303. package/dist/jobs/gcp-cloud-tasks.d.ts.map +1 -0
  304. package/dist/jobs/gcp-cloud-tasks.js +2 -0
  305. package/dist/jobs/gcp-cloud-tasks.js.map +1 -0
  306. package/dist/jobs/gcp-pubsub.d.ts +26 -0
  307. package/dist/jobs/gcp-pubsub.d.ts.map +1 -0
  308. package/dist/jobs/gcp-pubsub.js +2 -0
  309. package/dist/jobs/gcp-pubsub.js.map +1 -0
  310. package/dist/jobs/handlers/gmail-sync-handler.d.ts +10 -0
  311. package/dist/jobs/handlers/gmail-sync-handler.d.ts.map +1 -0
  312. package/dist/jobs/handlers/gmail-sync-handler.js +2 -0
  313. package/dist/jobs/handlers/gmail-sync-handler.js.map +1 -0
  314. package/dist/jobs/handlers/index.d.ts +3 -0
  315. package/dist/jobs/handlers/index.js +1 -0
  316. package/dist/jobs/handlers/storage-document-handler.d.ts +13 -0
  317. package/dist/jobs/handlers/storage-document-handler.d.ts.map +1 -0
  318. package/dist/jobs/handlers/storage-document-handler.js +2 -0
  319. package/dist/jobs/handlers/storage-document-handler.js.map +1 -0
  320. package/dist/jobs/index.d.ts +7 -0
  321. package/dist/jobs/index.js +1 -0
  322. package/dist/jobs/memory-queue.d.ts +19 -0
  323. package/dist/jobs/memory-queue.d.ts.map +1 -0
  324. package/dist/jobs/memory-queue.js +2 -0
  325. package/dist/jobs/memory-queue.js.map +1 -0
  326. package/dist/jobs/queue.d.ts +27 -0
  327. package/dist/jobs/queue.d.ts.map +1 -0
  328. package/dist/jobs/queue.js +0 -0
  329. package/dist/jsonschema.d.ts +27 -0
  330. package/dist/jsonschema.d.ts.map +1 -0
  331. package/dist/jsonschema.js +2 -0
  332. package/dist/jsonschema.js.map +1 -0
  333. package/dist/knowledge/binding.d.ts +26 -0
  334. package/dist/knowledge/binding.d.ts.map +1 -0
  335. package/dist/knowledge/binding.js +0 -0
  336. package/dist/knowledge/contracts.d.ts +315 -0
  337. package/dist/knowledge/contracts.d.ts.map +1 -0
  338. package/dist/knowledge/contracts.js +2 -0
  339. package/dist/knowledge/contracts.js.map +1 -0
  340. package/dist/knowledge/index.d.ts +10 -0
  341. package/dist/knowledge/index.js +1 -0
  342. package/dist/knowledge/ingestion/document-processor.d.ts +25 -0
  343. package/dist/knowledge/ingestion/document-processor.d.ts.map +1 -0
  344. package/dist/knowledge/ingestion/document-processor.js +2 -0
  345. package/dist/knowledge/ingestion/document-processor.js.map +1 -0
  346. package/dist/knowledge/ingestion/embedding-service.d.ts +13 -0
  347. package/dist/knowledge/ingestion/embedding-service.d.ts.map +1 -0
  348. package/dist/knowledge/ingestion/embedding-service.js +2 -0
  349. package/dist/knowledge/ingestion/embedding-service.js.map +1 -0
  350. package/dist/knowledge/ingestion/gmail-adapter.d.ts +19 -0
  351. package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +1 -0
  352. package/dist/knowledge/ingestion/gmail-adapter.js +7 -0
  353. package/dist/knowledge/ingestion/gmail-adapter.js.map +1 -0
  354. package/dist/knowledge/ingestion/index.d.ts +6 -0
  355. package/dist/knowledge/ingestion/index.js +1 -0
  356. package/dist/knowledge/ingestion/storage-adapter.d.ts +16 -0
  357. package/dist/knowledge/ingestion/storage-adapter.d.ts.map +1 -0
  358. package/dist/knowledge/ingestion/storage-adapter.js +2 -0
  359. package/dist/knowledge/ingestion/storage-adapter.js.map +1 -0
  360. package/dist/knowledge/ingestion/vector-indexer.d.ts +19 -0
  361. package/dist/knowledge/ingestion/vector-indexer.d.ts.map +1 -0
  362. package/dist/knowledge/ingestion/vector-indexer.js +2 -0
  363. package/dist/knowledge/ingestion/vector-indexer.js.map +1 -0
  364. package/dist/knowledge/query/index.d.ts +2 -0
  365. package/dist/knowledge/query/index.js +1 -0
  366. package/dist/knowledge/query/service.d.ts +30 -0
  367. package/dist/knowledge/query/service.d.ts.map +1 -0
  368. package/dist/knowledge/query/service.js +4 -0
  369. package/dist/knowledge/query/service.js.map +1 -0
  370. package/dist/knowledge/runtime.d.ts +33 -0
  371. package/dist/knowledge/runtime.d.ts.map +1 -0
  372. package/dist/knowledge/runtime.js +2 -0
  373. package/dist/knowledge/runtime.js.map +1 -0
  374. package/dist/knowledge/source.d.ts +33 -0
  375. package/dist/knowledge/source.d.ts.map +1 -0
  376. package/dist/knowledge/source.js +0 -0
  377. package/dist/knowledge/spaces/email-threads.d.ts +8 -0
  378. package/dist/knowledge/spaces/email-threads.d.ts.map +1 -0
  379. package/dist/knowledge/spaces/email-threads.js +2 -0
  380. package/dist/knowledge/spaces/email-threads.js.map +1 -0
  381. package/dist/knowledge/spaces/financial-docs.d.ts +8 -0
  382. package/dist/knowledge/spaces/financial-docs.d.ts.map +1 -0
  383. package/dist/knowledge/spaces/financial-docs.js +2 -0
  384. package/dist/knowledge/spaces/financial-docs.js.map +1 -0
  385. package/dist/knowledge/spaces/financial-overview.d.ts +8 -0
  386. package/dist/knowledge/spaces/financial-overview.d.ts.map +1 -0
  387. package/dist/knowledge/spaces/financial-overview.js +2 -0
  388. package/dist/knowledge/spaces/financial-overview.js.map +1 -0
  389. package/dist/knowledge/spaces/index.d.ts +7 -0
  390. package/dist/knowledge/spaces/index.js +1 -0
  391. package/dist/knowledge/spaces/product-canon.d.ts +8 -0
  392. package/dist/knowledge/spaces/product-canon.d.ts.map +1 -0
  393. package/dist/knowledge/spaces/product-canon.js +2 -0
  394. package/dist/knowledge/spaces/product-canon.js.map +1 -0
  395. package/dist/knowledge/spaces/support-faq.d.ts +8 -0
  396. package/dist/knowledge/spaces/support-faq.d.ts.map +1 -0
  397. package/dist/knowledge/spaces/support-faq.js +2 -0
  398. package/dist/knowledge/spaces/support-faq.js.map +1 -0
  399. package/dist/knowledge/spaces/uploaded-docs.d.ts +8 -0
  400. package/dist/knowledge/spaces/uploaded-docs.d.ts.map +1 -0
  401. package/dist/knowledge/spaces/uploaded-docs.js +2 -0
  402. package/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  403. package/dist/knowledge/spec.d.ts +53 -0
  404. package/dist/knowledge/spec.d.ts.map +1 -0
  405. package/dist/knowledge/spec.js +2 -0
  406. package/dist/knowledge/spec.js.map +1 -0
  407. package/dist/markdown.d.ts +22 -0
  408. package/dist/markdown.d.ts.map +1 -0
  409. package/dist/markdown.js +4 -0
  410. package/dist/markdown.js.map +1 -0
  411. package/dist/migrations.d.ts +53 -0
  412. package/dist/migrations.d.ts.map +1 -0
  413. package/dist/migrations.js +2 -0
  414. package/dist/migrations.js.map +1 -0
  415. package/dist/onboarding-base.d.ts +136 -0
  416. package/dist/onboarding-base.d.ts.map +1 -0
  417. package/dist/onboarding-base.js +2 -0
  418. package/dist/onboarding-base.js.map +1 -0
  419. package/dist/ownership.d.ts +76 -0
  420. package/dist/ownership.d.ts.map +1 -0
  421. package/dist/ownership.js +2 -0
  422. package/dist/ownership.js.map +1 -0
  423. package/dist/policy/engine.d.ts +40 -0
  424. package/dist/policy/engine.d.ts.map +1 -0
  425. package/dist/policy/engine.js +2 -0
  426. package/dist/policy/engine.js.map +1 -0
  427. package/dist/policy/opa-adapter.d.ts +46 -0
  428. package/dist/policy/opa-adapter.d.ts.map +1 -0
  429. package/dist/policy/opa-adapter.js +2 -0
  430. package/dist/policy/opa-adapter.js.map +1 -0
  431. package/dist/policy/spec.d.ts +115 -0
  432. package/dist/policy/spec.d.ts.map +1 -0
  433. package/dist/policy/spec.js +2 -0
  434. package/dist/policy/spec.js.map +1 -0
  435. package/dist/presentations.backcompat.d.ts +8 -0
  436. package/dist/presentations.backcompat.d.ts.map +1 -0
  437. package/dist/presentations.backcompat.js +2 -0
  438. package/dist/presentations.backcompat.js.map +1 -0
  439. package/dist/presentations.d.ts +96 -0
  440. package/dist/presentations.d.ts.map +1 -0
  441. package/dist/presentations.js +2 -0
  442. package/dist/presentations.js.map +1 -0
  443. package/dist/presentations.v2.d.ts +95 -0
  444. package/dist/presentations.v2.d.ts.map +1 -0
  445. package/dist/presentations.v2.js +2 -0
  446. package/dist/presentations.v2.js.map +1 -0
  447. package/dist/prompt.d.ts +61 -0
  448. package/dist/prompt.d.ts.map +1 -0
  449. package/dist/prompt.js +2 -0
  450. package/dist/prompt.js.map +1 -0
  451. package/dist/promptRegistry.d.ts +16 -0
  452. package/dist/promptRegistry.d.ts.map +1 -0
  453. package/dist/promptRegistry.js +2 -0
  454. package/dist/promptRegistry.js.map +1 -0
  455. package/dist/regenerator/adapters.d.ts +20 -0
  456. package/dist/regenerator/adapters.d.ts.map +1 -0
  457. package/dist/regenerator/adapters.js +0 -0
  458. package/dist/regenerator/executor.d.ts +71 -0
  459. package/dist/regenerator/executor.d.ts.map +1 -0
  460. package/dist/regenerator/executor.js +2 -0
  461. package/dist/regenerator/executor.js.map +1 -0
  462. package/dist/regenerator/index.d.ts +7 -0
  463. package/dist/regenerator/index.js +1 -0
  464. package/dist/regenerator/service.d.ts +34 -0
  465. package/dist/regenerator/service.d.ts.map +1 -0
  466. package/dist/regenerator/service.js +2 -0
  467. package/dist/regenerator/service.js.map +1 -0
  468. package/dist/regenerator/sinks.d.ts +27 -0
  469. package/dist/regenerator/sinks.d.ts.map +1 -0
  470. package/dist/regenerator/sinks.js +2 -0
  471. package/dist/regenerator/sinks.js.map +1 -0
  472. package/dist/regenerator/types.d.ts +108 -0
  473. package/dist/regenerator/types.d.ts.map +1 -0
  474. package/dist/regenerator/types.js +0 -0
  475. package/dist/regenerator/utils.d.ts +10 -0
  476. package/dist/regenerator/utils.d.ts.map +1 -0
  477. package/dist/regenerator/utils.js +2 -0
  478. package/dist/regenerator/utils.js.map +1 -0
  479. package/dist/registry.d.ts +45 -0
  480. package/dist/registry.d.ts.map +1 -0
  481. package/dist/registry.js +2 -0
  482. package/dist/registry.js.map +1 -0
  483. package/dist/resources.d.ts +65 -0
  484. package/dist/resources.d.ts.map +1 -0
  485. package/dist/resources.js +2 -0
  486. package/dist/resources.js.map +1 -0
  487. package/dist/schema/src/EnumType.js +1 -0
  488. package/dist/schema/src/FieldType.js +2 -0
  489. package/dist/schema/src/FieldType.js.map +1 -0
  490. package/dist/schema/src/ScalarTypeEnum.js +2 -0
  491. package/dist/schema/src/ScalarTypeEnum.js.map +1 -0
  492. package/dist/schema/src/SchemaModel.js +2 -0
  493. package/dist/schema/src/SchemaModel.js.map +1 -0
  494. package/dist/schema/src/index.js +1 -0
  495. package/dist/server/graphql-pothos.d.ts +19 -0
  496. package/dist/server/graphql-pothos.d.ts.map +1 -0
  497. package/dist/server/graphql-pothos.js +2 -0
  498. package/dist/server/graphql-pothos.js.map +1 -0
  499. package/dist/server/graphql-schema-export.d.ts +7 -0
  500. package/dist/server/graphql-schema-export.d.ts.map +1 -0
  501. package/dist/server/graphql-schema-export.js +2 -0
  502. package/dist/server/graphql-schema-export.js.map +1 -0
  503. package/dist/server/index.d.ts +9 -0
  504. package/dist/server/index.js +1 -0
  505. package/dist/server/provider-mcp.d.ts +34 -0
  506. package/dist/server/provider-mcp.d.ts.map +1 -0
  507. package/dist/server/provider-mcp.js +2 -0
  508. package/dist/server/provider-mcp.js.map +1 -0
  509. package/dist/server/rest-elysia.d.ts +41 -0
  510. package/dist/server/rest-elysia.d.ts.map +1 -0
  511. package/dist/server/rest-elysia.js +2 -0
  512. package/dist/server/rest-elysia.js.map +1 -0
  513. package/dist/server/rest-express.d.ts +17 -0
  514. package/dist/server/rest-express.d.ts.map +1 -0
  515. package/dist/server/rest-express.js +2 -0
  516. package/dist/server/rest-express.js.map +1 -0
  517. package/dist/server/rest-generic.d.ts +33 -0
  518. package/dist/server/rest-generic.d.ts.map +1 -0
  519. package/dist/server/rest-generic.js +2 -0
  520. package/dist/server/rest-generic.js.map +1 -0
  521. package/dist/server/rest-next-app.d.ts +16 -0
  522. package/dist/server/rest-next-app.d.ts.map +1 -0
  523. package/dist/server/rest-next-app.js +2 -0
  524. package/dist/server/rest-next-app.js.map +1 -0
  525. package/dist/server/rest-next-mcp.d.ts +12 -0
  526. package/dist/server/rest-next-mcp.d.ts.map +1 -0
  527. package/dist/server/rest-next-mcp.js +2 -0
  528. package/dist/server/rest-next-mcp.js.map +1 -0
  529. package/dist/server/rest-next-pages.d.ts +10 -0
  530. package/dist/server/rest-next-pages.d.ts.map +1 -0
  531. package/dist/server/rest-next-pages.js +2 -0
  532. package/dist/server/rest-next-pages.js.map +1 -0
  533. package/dist/spec.d.ts +149 -0
  534. package/dist/spec.d.ts.map +1 -0
  535. package/dist/spec.js +2 -0
  536. package/dist/spec.js.map +1 -0
  537. package/dist/telemetry/anomaly.d.ts +28 -0
  538. package/dist/telemetry/anomaly.d.ts.map +1 -0
  539. package/dist/telemetry/anomaly.js +2 -0
  540. package/dist/telemetry/anomaly.js.map +1 -0
  541. package/dist/telemetry/index.d.ts +4 -0
  542. package/dist/telemetry/index.js +1 -0
  543. package/dist/telemetry/spec.d.ts +99 -0
  544. package/dist/telemetry/spec.d.ts.map +1 -0
  545. package/dist/telemetry/spec.js +2 -0
  546. package/dist/telemetry/spec.js.map +1 -0
  547. package/dist/telemetry/tracker.d.ts +52 -0
  548. package/dist/telemetry/tracker.d.ts.map +1 -0
  549. package/dist/telemetry/tracker.js +2 -0
  550. package/dist/telemetry/tracker.js.map +1 -0
  551. package/dist/tests/index.d.ts +3 -0
  552. package/dist/tests/index.js +1 -0
  553. package/dist/tests/runner.d.ts +44 -0
  554. package/dist/tests/runner.d.ts.map +1 -0
  555. package/dist/tests/runner.js +2 -0
  556. package/dist/tests/runner.js.map +1 -0
  557. package/dist/tests/spec.d.ts +90 -0
  558. package/dist/tests/spec.d.ts.map +1 -0
  559. package/dist/tests/spec.js +2 -0
  560. package/dist/tests/spec.js.map +1 -0
  561. package/dist/themes.d.ts +56 -0
  562. package/dist/themes.d.ts.map +1 -0
  563. package/dist/themes.js +2 -0
  564. package/dist/themes.js.map +1 -0
  565. package/dist/translations/catalog.d.ts +29 -0
  566. package/dist/translations/catalog.d.ts.map +1 -0
  567. package/dist/translations/catalog.js +0 -0
  568. package/dist/translations/tenant.d.ts +16 -0
  569. package/dist/translations/tenant.d.ts.map +1 -0
  570. package/dist/translations/tenant.js +0 -0
  571. package/dist/types/all.d.ts +60 -0
  572. package/dist/types/all.js +0 -0
  573. package/dist/types.d.ts +86 -0
  574. package/dist/types.d.ts.map +1 -0
  575. package/dist/types.js +0 -0
  576. package/dist/workflow/adapters/db-adapter.d.ts +15 -0
  577. package/dist/workflow/adapters/db-adapter.d.ts.map +1 -0
  578. package/dist/workflow/adapters/db-adapter.js +2 -0
  579. package/dist/workflow/adapters/db-adapter.js.map +1 -0
  580. package/dist/workflow/adapters/file-adapter.d.ts +15 -0
  581. package/dist/workflow/adapters/file-adapter.d.ts.map +1 -0
  582. package/dist/workflow/adapters/file-adapter.js +2 -0
  583. package/dist/workflow/adapters/file-adapter.js.map +1 -0
  584. package/dist/workflow/adapters/index.d.ts +4 -0
  585. package/dist/workflow/adapters/index.js +1 -0
  586. package/dist/workflow/adapters/memory-store.d.ts +19 -0
  587. package/dist/workflow/adapters/memory-store.d.ts.map +1 -0
  588. package/dist/workflow/adapters/memory-store.js +2 -0
  589. package/dist/workflow/adapters/memory-store.js.map +1 -0
  590. package/dist/workflow/expression.d.ts +10 -0
  591. package/dist/workflow/expression.d.ts.map +1 -0
  592. package/dist/workflow/expression.js +2 -0
  593. package/dist/workflow/expression.js.map +1 -0
  594. package/dist/workflow/index.d.ts +10 -0
  595. package/dist/workflow/index.js +1 -0
  596. package/dist/workflow/runner.d.ts +74 -0
  597. package/dist/workflow/runner.d.ts.map +1 -0
  598. package/dist/workflow/runner.js +2 -0
  599. package/dist/workflow/runner.js.map +1 -0
  600. package/dist/workflow/spec.d.ts +100 -0
  601. package/dist/workflow/spec.d.ts.map +1 -0
  602. package/dist/workflow/spec.js +2 -0
  603. package/dist/workflow/spec.js.map +1 -0
  604. package/dist/workflow/state.d.ts +35 -0
  605. package/dist/workflow/state.d.ts.map +1 -0
  606. package/dist/workflow/state.js +0 -0
  607. package/dist/workflow/validation.d.ts +29 -0
  608. package/dist/workflow/validation.d.ts.map +1 -0
  609. package/dist/workflow/validation.js +2 -0
  610. package/dist/workflow/validation.js.map +1 -0
  611. package/package.json +401 -0
@@ -0,0 +1,60 @@
1
+ import { BrandingAssetRef, BrandingDefaults, ResolvedBranding, TenantBrandingAsset, TenantBrandingConfig } from "../app-config/branding.js";
2
+ import { Owner, OwnerShipMeta, Owners, OwnersEnum, Stability, StabilityEnum, Tag, Tags, TagsEnum } from "../ownership.js";
3
+ import { EventEnvelope, EventKey, EventSpec, defineEvent, eventKey } from "../events.js";
4
+ import { ResourceMeta, ResourceRefDescriptor, ResourceRegistry, ResourceTemplateSpec, defineResourceTemplate, isResourceRef, resourceRef } from "../resources.js";
5
+ import { AttributeMatcher, ConsentDefinition, FieldPolicyRule, PIIPolicy, PolicyCondition, PolicyEffect, PolicyMeta, PolicyOPAConfig, PolicyRef, PolicyRegistry, PolicyRule, PolicySpec, RateLimitDefinition, RelationshipDefinition, RelationshipMatcher, ResourceMatcher, SubjectMatcher, makePolicyKey } from "../policy/spec.js";
6
+ import { Action, Assertion, CoverageRequirement, ExpectErrorAssertion, ExpectEventsAssertion, ExpectOutputAssertion, ExpectedEvent, Fixture, OperationTargetRef, TestRegistry, TestScenario, TestSpec, TestSpecMeta, TestSpecRef, TestTarget, WorkflowTargetRef, makeTestKey } from "../tests/spec.js";
7
+ import { AnyContractSpec, ContractSpec, EmitDecl, EmitDeclInline, EmitDeclRef, OpKind, TelemetryTrigger, defineCommand, defineQuery, isEmitDeclRef } from "../spec.js";
8
+ import { TelemetryAnomalyAction, TelemetryAnomalyDetectionConfig, TelemetryAnomalyThreshold, TelemetryConfig, TelemetryEventDef, TelemetryMeta, TelemetryPrivacyLevel, TelemetryPropertyDef, TelemetryProviderConfig, TelemetryRegistry, TelemetryRetentionConfig, TelemetrySamplingConfig, TelemetrySpec, makeTelemetryKey } from "../telemetry/spec.js";
9
+ import { TelemetryAnomalyEvent, TelemetryAnomalyMonitor, TelemetryAnomalyMonitorOptions } from "../telemetry/anomaly.js";
10
+ import { RuntimeTelemetryProvider, TelemetryDispatch, TelemetryEventContext, TelemetryTracker, TelemetryTrackerOptions } from "../telemetry/tracker.js";
11
+ import { CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, capabilityKey } from "../capabilities.js";
12
+ import { DataPresentation, MarkdownPresentation, PresentationContent, PresentationKind, PresentationMeta, PresentationPolicy, PresentationRegistry, PresentationSpec, WebComponentPresentation, jsonSchemaForPresentation } from "../presentations.js";
13
+ import { PresentationDescriptorV2, PresentationRenderer, PresentationSource, PresentationSourceBlocknotejs, PresentationSourceComponentReact, PresentationTarget, PresentationV2Meta, PresentationValidator, ReactRenderDescriptor, RenderContext, TransformEngine, createDefaultTransformEngine, registerBasicValidation, registerDefaultReactRenderer } from "../presentations.v2.js";
14
+ import { AllocationStrategy, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, MetricAggregation, SuccessMetric, TargetingRule, makeExperimentKey } from "../experiments/spec.js";
15
+ import { EventRef, FeatureModuleMeta, FeatureModuleSpec, FeatureRef, FeatureRegistry, OpRef, PresentationRef, installFeature, validateFeatureTargetsV2 } from "../features.js";
16
+ import { DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, dataViewKey } from "../data-views.js";
17
+ import { CompensationStep, CompensationStrategy, FormRef, GuardCondition, GuardConditionKind, RetryPolicy, SLA, Step, StepAction, StepType, Transition, WorkflowDefinition, WorkflowMeta, WorkflowRegistry, WorkflowSpec, WorkflowStatus } from "../workflow/spec.js";
18
+ import { ComponentVariantDefinition, ComponentVariantSpec, ThemeMeta, ThemeOverride, ThemeRef, ThemeRegistry, ThemeScope, ThemeSpec, ThemeToken, ThemeTokens, makeThemeRef } from "../themes.js";
19
+ import { IntegrationByokSetup, IntegrationCapabilityMapping, IntegrationCategory, IntegrationConfigSchema, IntegrationHealthCheck, IntegrationMeta, IntegrationOwnershipMode, IntegrationSecretSchema, IntegrationSpec, IntegrationSpecRegistry, makeIntegrationSpecKey } from "../integrations/spec.js";
20
+ import { ConnectionStatus, IntegrationConnection, IntegrationConnectionHealth, IntegrationConnectionMeta, IntegrationUsageMetrics } from "../integrations/connection.js";
21
+ import { AppIntegrationBinding } from "../integrations/binding.js";
22
+ import { KnowledgeAccessPolicy, KnowledgeCategory, KnowledgeIndexingConfig, KnowledgeRetentionPolicy, KnowledgeSpaceMeta, KnowledgeSpaceRegistry, KnowledgeSpaceSpec, makeKnowledgeSpaceKey } from "../knowledge/spec.js";
23
+ import { KnowledgeSourceConfig, KnowledgeSourceMeta, KnowledgeSourceType } from "../knowledge/source.js";
24
+ import { AppKnowledgeBinding } from "../knowledge/binding.js";
25
+ import { BlueprintTranslationCatalog, Locale, MessageKey, PlatformTranslationCatalog, TranslationCatalogMeta, TranslationEntry } from "../translations/catalog.js";
26
+ import { AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppIntegrationSlot, AppRouteConfig, AppThemeBinding, FeatureFlagState, SpecPointer, TelemetryBinding, TenantAppConfig, TenantAppConfigMeta, TenantRouteOverride, TenantSpecOverride, TranslationCatalogPointer, makeAppBlueprintKey } from "../app-config/spec.js";
27
+ import { AppComposition, AppCompositionDeps, ComposeOptions, MissingReference, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, composeAppConfig, resolveAppConfig } from "../app-config/runtime.js";
28
+ import { Actor, Channel, EventPublisher, FieldLevelDecision, HandlerCtx, PolicyDecider, PolicyDeciderInput, PolicyDecision, RateLimiter, TranslationResolver } from "../types.js";
29
+ import { GetResolvedBrandingQuery, ResolveMessageQuery, UpdateBlueprintTranslationCatalogCommand, UpdateTenantBrandingCommand, UpdateTenantTranslationOverridesCommand, VerifyCustomDomainCommand, appConfigContracts, registerAppConfigContracts } from "../app-config/contracts.js";
30
+ import { ArrayFieldSpec, BaseFieldSpec, CheckboxFieldSpec, ConstraintDecl, ConstraintHandler, EnhanceFields, FieldSpec, FormAction, FormOption, FormRegistry, FormSpec, FormValuesFor, GroupFieldSpec, OptionsSource, Predicate, PredicateOp, RadioFieldSpec, SelectFieldSpec, SwitchFieldSpec, TextFieldSpec, TextareaFieldSpec, TypedOptionsSource, TypedPredicate, TypedWhenClause, WhenClause, buildZodWithRelations, defineFormSpec, evalPredicate } from "../forms.js";
31
+ import { defaultGqlField, defaultMcpTool, defaultRestPath, jsonSchemaForSpec } from "../jsonschema.js";
32
+ import { toV2FromV1 } from "../presentations.backcompat.js";
33
+ import { DecisionContext, PolicyEngine, ResourceContext, SubjectContext, SubjectRelationship } from "../policy/engine.js";
34
+ import { DataMigrationStep, MigrationCheck, MigrationMeta, MigrationPlan, MigrationRegistry, MigrationSpec, MigrationStep, MigrationStepBase, MigrationStepKind, SchemaMigrationStep, ValidationMigrationStep } from "../migrations.js";
35
+ import { AssertionResult, ScenarioRunResult, TestRunResult, TestRunner, TestRunnerConfig } from "../tests/runner.js";
36
+ import { IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationContext, IntegrationInvocationStatus, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, connectionStatusLabel, ensureConnectionReady } from "../integrations/runtime.js";
37
+ import { productCanonKnowledgeSpace, registerProductCanonKnowledgeSpace } from "../knowledge/spaces/product-canon.js";
38
+ import { registerSupportFaqKnowledgeSpace, supportFaqKnowledgeSpace } from "../knowledge/spaces/support-faq.js";
39
+ import { emailThreadsKnowledgeSpace, registerEmailThreadsKnowledgeSpace } from "../knowledge/spaces/email-threads.js";
40
+ import { registerUploadedDocsKnowledgeSpace, uploadedDocsKnowledgeSpace } from "../knowledge/spaces/uploaded-docs.js";
41
+ import { financialDocsKnowledgeSpace, registerFinancialDocsKnowledgeSpace } from "../knowledge/spaces/financial-docs.js";
42
+ import { financialOverviewKnowledgeSpace, registerFinancialOverviewKnowledgeSpace } from "../knowledge/spaces/financial-overview.js";
43
+ import { BehaviorSignal, BehaviorSignalEnvelope, ErrorSignal, ErrorSignalEnvelope, ProposalAction, ProposalBlocker, ProposalConfidence, ProposalSink, ProposalTarget, RegenerationContext, RegenerationRule, RegeneratorSignal, SpecChangeProposal, TelemetrySignal, TelemetrySignalEnvelope } from "../regenerator/types.js";
44
+ import { BehaviorSignalProvider, ErrorSignalProvider, SignalAdapters, TelemetrySignalProvider } from "../regenerator/adapters.js";
45
+ import { RegeneratorOptions, RegeneratorService } from "../regenerator/service.js";
46
+ import { ActionExecutionResult, BlueprintUpdater, ExecutionStatus, MigrationExecutor, ProposalExecutionResult, ProposalExecutor, ProposalExecutorDeps, ProposalExecutorOptions, RegenerationTrigger, RunMigrationsAction, RunTestsAction, TenantConfigUpdater, TestExecutor, TriggerRegenerationAction, UpdateBlueprintAction, UpdateTenantConfigAction } from "../regenerator/executor.js";
47
+ import { behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope } from "../regenerator/utils.js";
48
+ import { ExecutorProposalSink, ExecutorResultPayload, ExecutorSinkLogger, ExecutorSinkOptions } from "../regenerator/sinks.js";
49
+ import { ValidateWorkflowSpecOptions, WorkflowValidationError, WorkflowValidationIssue, WorkflowValidationLevel, assertWorkflowSpecValid, validateWorkflowSpec } from "../workflow/validation.js";
50
+ import { StateStore, StepExecution, WorkflowState, WorkflowStateFilters } from "../workflow/state.js";
51
+ import { ExpressionContext, evaluateExpression } from "../workflow/expression.js";
52
+ import { ValidationContext, ValidationIssue, ValidationResult, ValidationSeverity, validateBlueprint, validateConfig, validateResolvedConfig, validateTenantConfig } from "../app-config/validation.js";
53
+ import { CreateTenantConfigDraftCommand, GetTenantConfigVersionQuery, ListTenantConfigVersionsQuery, PromoteTenantConfigToPreviewCommand, PublishTenantConfigCommand, RollbackTenantConfigCommand, lifecycleContracts, registerAppConfigLifecycleContracts } from "../app-config/lifecycle-contracts.js";
54
+ import { DocumentFragment, DocumentProcessor, RawDocument } from "../knowledge/ingestion/document-processor.js";
55
+ import { EmbeddingService } from "../knowledge/ingestion/embedding-service.js";
56
+ import { VectorIndexConfig, VectorIndexer } from "../knowledge/ingestion/vector-indexer.js";
57
+ import { StorageIngestionAdapter } from "../knowledge/ingestion/storage-adapter.js";
58
+ import { KnowledgeAnswer, KnowledgeQueryConfig, KnowledgeQueryService } from "../knowledge/query/service.js";
59
+ import { KnowledgeAccessContext, KnowledgeAccessGuard, KnowledgeAccessGuardOptions, KnowledgeAccessResult } from "../knowledge/runtime.js";
60
+ export { Action, ActionExecutionResult, Actor, AllocationStrategy, AnyContractSpec, AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppComposition, AppCompositionDeps, AppIntegrationBinding, AppIntegrationSlot, AppKnowledgeBinding, AppRouteConfig, AppThemeBinding, ArrayFieldSpec, Assertion, AssertionResult, AttributeMatcher, BaseFieldSpec, BehaviorSignal, BehaviorSignalEnvelope, BehaviorSignalProvider, BlueprintTranslationCatalog, BlueprintUpdater, BrandingAssetRef, BrandingDefaults, CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, Channel, CheckboxFieldSpec, CompensationStep, CompensationStrategy, ComponentVariantDefinition, ComponentVariantSpec, ComposeOptions, ConnectionStatus, ConsentDefinition, ConstraintDecl, ConstraintHandler, ContractSpec, CoverageRequirement, CreateTenantConfigDraftCommand, DataMigrationStep, DataPresentation, DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, DecisionContext, DocumentFragment, DocumentProcessor, EmbeddingService, EmitDecl, EmitDeclInline, EmitDeclRef, EnhanceFields, ErrorSignal, ErrorSignalEnvelope, ErrorSignalProvider, EventEnvelope, EventKey, EventPublisher, EventRef, EventSpec, ExecutionStatus, ExecutorProposalSink, ExecutorResultPayload, ExecutorSinkLogger, ExecutorSinkOptions, ExpectErrorAssertion, ExpectEventsAssertion, ExpectOutputAssertion, ExpectedEvent, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, ExpressionContext, FeatureFlagState, FeatureModuleMeta, FeatureModuleSpec, FeatureRef, FeatureRegistry, FieldLevelDecision, FieldPolicyRule, FieldSpec, Fixture, FormAction, FormOption, FormRef, FormRegistry, FormSpec, FormValuesFor, GetResolvedBrandingQuery, GetTenantConfigVersionQuery, GroupFieldSpec, GuardCondition, GuardConditionKind, HandlerCtx, IntegrationByokSetup, IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationCapabilityMapping, IntegrationCategory, IntegrationConfigSchema, IntegrationConnection, IntegrationConnectionHealth, IntegrationConnectionMeta, IntegrationContext, IntegrationHealthCheck, IntegrationInvocationStatus, IntegrationMeta, IntegrationOwnershipMode, IntegrationSecretSchema, IntegrationSpec, IntegrationSpecRegistry, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, IntegrationUsageMetrics, KnowledgeAccessContext, KnowledgeAccessGuard, KnowledgeAccessGuardOptions, KnowledgeAccessPolicy, KnowledgeAccessResult, KnowledgeAnswer, KnowledgeCategory, KnowledgeIndexingConfig, KnowledgeQueryConfig, KnowledgeQueryService, KnowledgeRetentionPolicy, KnowledgeSourceConfig, KnowledgeSourceMeta, KnowledgeSourceType, KnowledgeSpaceMeta, KnowledgeSpaceRegistry, KnowledgeSpaceSpec, ListTenantConfigVersionsQuery, Locale, MarkdownPresentation, MessageKey, MetricAggregation, MigrationCheck, MigrationExecutor, MigrationMeta, MigrationPlan, MigrationRegistry, MigrationSpec, MigrationStep, MigrationStepBase, MigrationStepKind, MissingReference, OpKind, OpRef, OperationTargetRef, OptionsSource, Owner, OwnerShipMeta, Owners, OwnersEnum, PIIPolicy, PlatformTranslationCatalog, PolicyCondition, PolicyDecider, PolicyDeciderInput, PolicyDecision, PolicyEffect, PolicyEngine, PolicyMeta, PolicyOPAConfig, PolicyRef, PolicyRegistry, PolicyRule, PolicySpec, Predicate, PredicateOp, PresentationContent, PresentationDescriptorV2, PresentationKind, PresentationMeta, PresentationPolicy, PresentationRef, PresentationRegistry, PresentationRenderer, PresentationSource, PresentationSourceBlocknotejs, PresentationSourceComponentReact, PresentationSpec, PresentationTarget, PresentationV2Meta, PresentationValidator, PromoteTenantConfigToPreviewCommand, ProposalAction, ProposalBlocker, ProposalConfidence, ProposalExecutionResult, ProposalExecutor, ProposalExecutorDeps, ProposalExecutorOptions, ProposalSink, ProposalTarget, PublishTenantConfigCommand, RadioFieldSpec, RateLimitDefinition, RateLimiter, RawDocument, ReactRenderDescriptor, RegenerationContext, RegenerationRule, RegenerationTrigger, RegeneratorOptions, RegeneratorService, RegeneratorSignal, RelationshipDefinition, RelationshipMatcher, RenderContext, ResolveAppConfigDeps, ResolveMessageQuery, ResolvedAppConfig, ResolvedBranding, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, ResourceContext, ResourceMatcher, ResourceMeta, ResourceRefDescriptor, ResourceRegistry, ResourceTemplateSpec, RetryPolicy, RollbackTenantConfigCommand, RunMigrationsAction, RunTestsAction, RuntimeTelemetryProvider, SLA, ScenarioRunResult, SchemaMigrationStep, SelectFieldSpec, SignalAdapters, SpecChangeProposal, SpecPointer, Stability, StabilityEnum, StateStore, Step, StepAction, StepExecution, StepType, StorageIngestionAdapter, SubjectContext, SubjectMatcher, SubjectRelationship, SuccessMetric, SwitchFieldSpec, Tag, Tags, TagsEnum, TargetingRule, TelemetryAnomalyAction, TelemetryAnomalyDetectionConfig, TelemetryAnomalyEvent, TelemetryAnomalyMonitor, TelemetryAnomalyMonitorOptions, TelemetryAnomalyThreshold, TelemetryBinding, TelemetryConfig, TelemetryDispatch, TelemetryEventContext, TelemetryEventDef, TelemetryMeta, TelemetryPrivacyLevel, TelemetryPropertyDef, TelemetryProviderConfig, TelemetryRegistry, TelemetryRetentionConfig, TelemetrySamplingConfig, TelemetrySignal, TelemetrySignalEnvelope, TelemetrySignalProvider, TelemetrySpec, TelemetryTracker, TelemetryTrackerOptions, TelemetryTrigger, TenantAppConfig, TenantAppConfigMeta, TenantBrandingAsset, TenantBrandingConfig, TenantConfigUpdater, TenantRouteOverride, TenantSpecOverride, TestExecutor, TestRegistry, TestRunResult, TestRunner, TestRunnerConfig, TestScenario, TestSpec, TestSpecMeta, TestSpecRef, TestTarget, TextFieldSpec, TextareaFieldSpec, ThemeMeta, ThemeOverride, ThemeRef, ThemeRegistry, ThemeScope, ThemeSpec, ThemeToken, ThemeTokens, TransformEngine, Transition, TranslationCatalogMeta, TranslationCatalogPointer, TranslationEntry, TranslationResolver, TriggerRegenerationAction, TypedOptionsSource, TypedPredicate, TypedWhenClause, UpdateBlueprintAction, UpdateBlueprintTranslationCatalogCommand, UpdateTenantBrandingCommand, UpdateTenantConfigAction, UpdateTenantTranslationOverridesCommand, ValidateWorkflowSpecOptions, ValidationContext, ValidationIssue, ValidationMigrationStep, ValidationResult, ValidationSeverity, VectorIndexConfig, VectorIndexer, VerifyCustomDomainCommand, WebComponentPresentation, WhenClause, WorkflowDefinition, WorkflowMeta, WorkflowRegistry, WorkflowSpec, WorkflowState, WorkflowStateFilters, WorkflowStatus, WorkflowTargetRef, WorkflowValidationError, WorkflowValidationIssue, WorkflowValidationLevel, appConfigContracts, assertWorkflowSpecValid, behaviorToEnvelope, buildZodWithRelations, capabilityKey, composeAppConfig, connectionStatusLabel, createDefaultTransformEngine, dataViewKey, defaultGqlField, defaultMcpTool, defaultRestPath, defineCommand, defineEvent, defineFormSpec, defineQuery, defineResourceTemplate, emailThreadsKnowledgeSpace, ensureConnectionReady, errorToEnvelope, evalPredicate, evaluateExpression, eventKey, financialDocsKnowledgeSpace, financialOverviewKnowledgeSpace, installFeature, isEmitDeclRef, isResourceRef, jsonSchemaForPresentation, jsonSchemaForSpec, lifecycleContracts, makeAppBlueprintKey, makeExperimentKey, makeIntegrationSpecKey, makeKnowledgeSpaceKey, makePolicyKey, makeTelemetryKey, makeTestKey, makeThemeRef, productCanonKnowledgeSpace, registerAppConfigContracts, registerAppConfigLifecycleContracts, registerBasicValidation, registerDefaultReactRenderer, registerEmailThreadsKnowledgeSpace, registerFinancialDocsKnowledgeSpace, registerFinancialOverviewKnowledgeSpace, registerProductCanonKnowledgeSpace, registerSupportFaqKnowledgeSpace, registerUploadedDocsKnowledgeSpace, resolveAppConfig, resourceRef, supportFaqKnowledgeSpace, telemetryToEnvelope, toV2FromV1, uploadedDocsKnowledgeSpace, validateBlueprint, validateConfig, validateFeatureTargetsV2, validateResolvedConfig, validateTenantConfig, validateWorkflowSpec };
File without changes
@@ -0,0 +1,86 @@
1
+ import { ResolvedBranding } from "./app-config/branding.js";
2
+ import { ConsentDefinition, PolicySpec, RateLimitDefinition } from "./policy/spec.js";
3
+ import { TelemetryTracker } from "./telemetry/tracker.js";
4
+ import { Locale, MessageKey } from "./translations/catalog.js";
5
+ import { ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation } from "./app-config/runtime.js";
6
+ import { SecretProvider } from "./integrations/secrets/provider.js";
7
+
8
+ //#region src/types.d.ts
9
+ /**
10
+ * Common runtime types: execution context, policy decision & event emission.
11
+ */
12
+ type Actor = 'anonymous' | 'user' | 'admin';
13
+ type Channel = 'web' | 'mobile' | 'job' | 'agent';
14
+ interface FieldLevelDecision {
15
+ field: string;
16
+ effect: 'allow' | 'deny';
17
+ reason?: string;
18
+ }
19
+ interface PolicyDecision {
20
+ effect: 'allow' | 'deny';
21
+ reason?: string;
22
+ rateLimit?: Pick<RateLimitDefinition, 'rpm' | 'key' | 'windowSeconds' | 'burst'>;
23
+ escalate?: 'human_review' | null;
24
+ fieldDecisions?: FieldLevelDecision[];
25
+ pii?: PolicySpec['pii'];
26
+ requiredConsents?: ConsentDefinition[];
27
+ evaluatedBy?: 'engine' | 'opa';
28
+ }
29
+ interface PolicyDeciderInput {
30
+ service: string;
31
+ command: string;
32
+ version: number;
33
+ actor: Actor;
34
+ channel?: Channel;
35
+ roles?: string[];
36
+ organizationId?: string | null;
37
+ userId?: string | null;
38
+ flags?: string[];
39
+ }
40
+ type PolicyDecider = (input: PolicyDeciderInput) => Promise<PolicyDecision>;
41
+ type RateLimiter = (key: string, cost: number, rpm: number) => Promise<void>;
42
+ type TranslationResolver = (key: MessageKey, locale?: Locale) => Promise<string | null> | string | null;
43
+ /** Outbox/bus event publisher (after validation & guarding) */
44
+ type EventPublisher = (envelope: {
45
+ name: string;
46
+ version: number;
47
+ payload: unknown;
48
+ traceId?: string;
49
+ }) => Promise<void>;
50
+ interface HandlerCtx {
51
+ traceId?: string;
52
+ idemKey?: string;
53
+ organizationId?: string | null;
54
+ userId?: string | null;
55
+ actor?: Actor;
56
+ channel?: Channel;
57
+ roles?: string[];
58
+ /** Policy engine hook (policy.yaml) */
59
+ decide?: PolicyDecider;
60
+ /** Rate limiter (e.g., Redis) */
61
+ rateLimit?: RateLimiter;
62
+ /** Telemetry tracker */
63
+ telemetry?: TelemetryTracker;
64
+ /** Event publisher (outbox+bus) */
65
+ eventPublisher?: EventPublisher;
66
+ /** Secret provider for secure credentials */
67
+ secretProvider?: SecretProvider;
68
+ /** Internal pipe: filled by executor to enforce declared events */
69
+ __emitGuard__?: (name: string, version: number, payload: unknown) => Promise<void>;
70
+ /** Resolved application configuration for the current execution context */
71
+ appConfig?: ResolvedAppConfig;
72
+ /** Resolved integration connections available to this execution */
73
+ integrations?: ResolvedIntegration[];
74
+ /** Resolved knowledge spaces available to this execution */
75
+ knowledge?: ResolvedKnowledge[];
76
+ /** Resolved branding context */
77
+ branding?: ResolvedBranding;
78
+ /** Translation context */
79
+ translation?: {
80
+ config: ResolvedTranslation;
81
+ resolve?: TranslationResolver;
82
+ };
83
+ }
84
+ //#endregion
85
+ export { Actor, Channel, EventPublisher, FieldLevelDecision, HandlerCtx, PolicyDecider, PolicyDeciderInput, PolicyDecision, RateLimiter, TranslationResolver };
86
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;KAGY,KAAA;KACA,OAAA;AAwBK,UANA,kBAAA,CAMc;EAGZ,KAAA,EAAA,MAAA;EAAL,MAAA,EAAA,OAAA,GAAA,MAAA;EAEK,MAAA,CAAA,EAAA,MAAA;;AAEE,UAPJ,cAAA,CAOI;EAAiB,MAAA,EAAA,OAAA,GAAA,MAAA;EAIrB,MAAA,CAAA,EAAA,MAAA;EAYL,SAAA,CAAA,EApBE,IAoBW,CApBN,mBAoBM,EAAA,KAAA,GAAA,KAAA,GAAA,eAAA,GAAA,OAAA,CAAA;EAChB,QAAA,CAAA,EAAA,cAAA,GAAA,IAAA;EACI,cAAA,CAAA,EApBM,kBAoBN,EAAA;EAAR,GAAA,CAAA,EAnBG,UAmBH,CAAA,KAAA,CAAA;EAAO,gBAAA,CAAA,EAlBS,iBAkBT,EAAA;EAEA,WAAA,CAAA,EAAW,QAAA,GAIlB,KAAA;AAEL;AACO,UAvBU,kBAAA,CAuBV;EACI,OAAA,EAAA,MAAA;EACN,OAAA,EAAA,MAAA;EAAO,OAAA,EAAA,MAAA;EAGA,KAAA,EAxBH,KAwBG;EAOK,OAAA,CAAA,EA9BL,OA8Be;EAKjB,KAAA,CAAA,EAAA,MAAA,EAAA;EACE,cAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAID,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAEG,KAAA,CAAA,EAAA,MAAA,EAAA;;AAIK,KAvCP,aAAA,GAuCO,CAAA,KAAA,EAtCV,kBAsCU,EAAA,GArCd,OAqCc,CArCN,cAqCM,CAAA;AAEA,KArCP,WAAA,GAqCO,CAAA,GAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,MAAA,EAAA,GAjCd,OAiCc,CAAA,IAAA,CAAA;AAOZ,KAtCK,mBAAA,GAsCL,CAAA,GAAA,EArCA,UAqCA,EAAA,MAAA,CAAA,EApCI,MAoCJ,EAAA,GAnCF,OAmCE,CAAA,MAAA,GAAA,IAAA,CAAA,GAAA,MAAA,GAAA,IAAA;;AAIU,KApCL,cAAA,GAoCK,CAAA,QAAA,EAAA;EAEH,IAAA,EAAA,MAAA;EAED,OAAA,EAAA,MAAA;EAGD,OAAA,EAAA,OAAA;EACE,OAAA,CAAA,EAAA,MAAA;CAAmB,EAAA,GAvC3B,OAuC2B,CAAA,IAAA,CAAA;UArChB,UAAA;;;;;UAKP;YACE;;;WAID;;cAEG;;cAEA;;mBAEK;;mBAEA;;uEAOZ;;cAEO;;iBAEG;;cAEH;;aAED;;;YAGD;cACE"}
package/dist/types.js ADDED
File without changes
@@ -0,0 +1,15 @@
1
+ import { StateStore } from "../state.js";
2
+
3
+ //#region src/workflow/adapters/db-adapter.d.ts
4
+ interface DatabaseStateStoreOptions {
5
+ /** Placeholder for connection string / client injection. */
6
+ connection?: unknown;
7
+ }
8
+ /**
9
+ * Placeholder factory to guide future database adapters (PostgreSQL, MongoDB, etc.).
10
+ * Consumers should provide their own implementation that satisfies {@link StateStore}.
11
+ */
12
+ declare function createDatabaseStateStore(_options: DatabaseStateStoreOptions): StateStore;
13
+ //#endregion
14
+ export { DatabaseStateStoreOptions, createDatabaseStateStore };
15
+ //# sourceMappingURL=db-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-adapter.d.ts","names":[],"sources":["../../../src/workflow/adapters/db-adapter.ts"],"sourcesContent":[],"mappings":";;;UAEiB,yBAAA;;EAAA,UAAA,CAAA,EAAA,OAAA;AASjB;;;;;iBAAgB,wBAAA,WACJ,4BACT"}
@@ -0,0 +1,2 @@
1
+ function e(e){throw Error(`Database state store adapter not implemented. Provide a custom adapter that satisfies StateStore.`)}export{e as createDatabaseStateStore};
2
+ //# sourceMappingURL=db-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-adapter.js","names":[],"sources":["../../../src/workflow/adapters/db-adapter.ts"],"sourcesContent":["import type { StateStore } from '../state';\n\nexport interface DatabaseStateStoreOptions {\n /** Placeholder for connection string / client injection. */\n connection?: unknown;\n}\n\n/**\n * Placeholder factory to guide future database adapters (PostgreSQL, MongoDB, etc.).\n * Consumers should provide their own implementation that satisfies {@link StateStore}.\n */\nexport function createDatabaseStateStore(\n _options: DatabaseStateStoreOptions\n): StateStore {\n throw new Error(\n 'Database state store adapter not implemented. Provide a custom adapter that satisfies StateStore.'\n );\n}\n\n"],"mappings":"AAWA,SAAgB,EACd,EACY,CACZ,MAAU,MACR,oGACD"}
@@ -0,0 +1,15 @@
1
+ import { StateStore } from "../state.js";
2
+
3
+ //#region src/workflow/adapters/file-adapter.d.ts
4
+ interface FileStateStoreOptions {
5
+ /** Absolute or relative path to the persistence file. */
6
+ filePath: string;
7
+ }
8
+ /**
9
+ * Placeholder for a file-backed state store adapter.
10
+ * Implementations should manage locking/concurrency and JSON serialization.
11
+ */
12
+ declare function createFileStateStore(_options: FileStateStoreOptions): StateStore;
13
+ //#endregion
14
+ export { FileStateStoreOptions, createFileStateStore };
15
+ //# sourceMappingURL=file-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-adapter.d.ts","names":[],"sources":["../../../src/workflow/adapters/file-adapter.ts"],"sourcesContent":[],"mappings":";;;UAEiB,qBAAA;;EAAA,QAAA,EAAA,MAAA;AASjB;;;;;iBAAgB,oBAAA,WACJ,wBACT"}
@@ -0,0 +1,2 @@
1
+ function e(e){throw Error(`File-backed state store adapter not implemented. Provide a custom adapter that satisfies StateStore.`)}export{e as createFileStateStore};
2
+ //# sourceMappingURL=file-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-adapter.js","names":[],"sources":["../../../src/workflow/adapters/file-adapter.ts"],"sourcesContent":["import type { StateStore } from '../state';\n\nexport interface FileStateStoreOptions {\n /** Absolute or relative path to the persistence file. */\n filePath: string;\n}\n\n/**\n * Placeholder for a file-backed state store adapter.\n * Implementations should manage locking/concurrency and JSON serialization.\n */\nexport function createFileStateStore(\n _options: FileStateStoreOptions\n): StateStore {\n throw new Error(\n 'File-backed state store adapter not implemented. Provide a custom adapter that satisfies StateStore.'\n );\n}\n\n"],"mappings":"AAWA,SAAgB,EACd,EACY,CACZ,MAAU,MACR,uGACD"}
@@ -0,0 +1,4 @@
1
+ import { InMemoryStateStore } from "./memory-store.js";
2
+ import { DatabaseStateStoreOptions, createDatabaseStateStore } from "./db-adapter.js";
3
+ import { FileStateStoreOptions, createFileStateStore } from "./file-adapter.js";
4
+ export { DatabaseStateStoreOptions, FileStateStoreOptions, InMemoryStateStore, createDatabaseStateStore, createFileStateStore };
@@ -0,0 +1 @@
1
+ import{InMemoryStateStore as e}from"./memory-store.js";import{createDatabaseStateStore as t}from"./db-adapter.js";import{createFileStateStore as n}from"./file-adapter.js";export{e as InMemoryStateStore,t as createDatabaseStateStore,n as createFileStateStore};
@@ -0,0 +1,19 @@
1
+ import { StateStore, WorkflowState, WorkflowStateFilters } from "../state.js";
2
+
3
+ //#region src/workflow/adapters/memory-store.d.ts
4
+
5
+ /**
6
+ * Naive in-memory state store. Suitable for tests and single-node development
7
+ * environments. Swap with a database-backed adapter in production.
8
+ */
9
+ declare class InMemoryStateStore implements StateStore {
10
+ private readonly items;
11
+ create(state: WorkflowState): Promise<void>;
12
+ get(workflowId: string): Promise<WorkflowState | undefined>;
13
+ update(workflowId: string, updater: (current: WorkflowState) => WorkflowState): Promise<WorkflowState>;
14
+ list(filters?: WorkflowStateFilters): Promise<WorkflowState[]>;
15
+ clear(): void;
16
+ }
17
+ //#endregion
18
+ export { InMemoryStateStore };
19
+ //# sourceMappingURL=memory-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.d.ts","names":[],"sources":["../../../src/workflow/adapters/memory-store.ts"],"sourcesContent":[],"mappings":";;;;;;AA4BA;;AAGsC,cAHzB,kBAAA,YAA8B,UAGL,CAAA;EAMG,iBAAA,KAAA;EAAR,MAAA,CAAA,KAAA,EANX,aAMW,CAAA,EANK,OAML,CAAA,IAAA,CAAA;EAOV,GAAA,CAAA,UAAA,EAAA,MAAA,CAAA,EAPU,OAOV,CAPkB,aAOlB,GAAA,SAAA,CAAA;EAAkB,MAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAlB,aAAkB,EAAA,GAAA,aAAA,CAAA,EACpC,OADoC,CAC5B,aAD4B,CAAA;EAC5B,IAAA,CAAA,OAAA,CAAA,EASU,oBATV,CAAA,EASiC,OATjC,CASyC,aATzC,EAAA,CAAA;EAAR,KAAA,CAAA,CAAA,EAAA,IAAA"}
@@ -0,0 +1,2 @@
1
+ function e(e){return{...e,data:n(e.data),history:e.history.map(e=>({...e,input:n(e.input),output:n(e.output),startedAt:new Date(e.startedAt),completedAt:e.completedAt?new Date(e.completedAt):void 0})),createdAt:new Date(e.createdAt),updatedAt:new Date(e.updatedAt)}}var t=class{items=new Map;async create(t){if(this.items.has(t.workflowId))throw Error(`Workflow state already exists: ${t.workflowId}`);this.items.set(t.workflowId,e(t))}async get(t){let n=this.items.get(t);return n?e(n):void 0}async update(t,n){let r=this.items.get(t);if(!r)throw Error(`Workflow state not found for ${t}`);let i=e(n(e(r)));return this.items.set(t,i),e(i)}async list(t){let n=[...this.items.values()];return(t?.status?n.filter(e=>e.status===t.status):n).map(e)}clear(){this.items.clear()}};function n(e){if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(e=>n(e));if(e&&typeof e==`object`){let t={};for(let[r,i]of Object.entries(e))t[r]=n(i);return t}return e}export{t as InMemoryStateStore};
2
+ //# sourceMappingURL=memory-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.js","names":["result: Record<string, unknown>"],"sources":["../../../src/workflow/adapters/memory-store.ts"],"sourcesContent":["import type {\n StateStore,\n WorkflowState,\n WorkflowStateFilters,\n} from '../state';\n\nfunction cloneState(state: WorkflowState): WorkflowState {\n return {\n ...state,\n data: deepCopy(state.data),\n history: state.history.map((execution) => ({\n ...execution,\n input: deepCopy(execution.input),\n output: deepCopy(execution.output),\n startedAt: new Date(execution.startedAt),\n completedAt: execution.completedAt\n ? new Date(execution.completedAt)\n : undefined,\n })),\n createdAt: new Date(state.createdAt),\n updatedAt: new Date(state.updatedAt),\n };\n}\n\n/**\n * Naive in-memory state store. Suitable for tests and single-node development\n * environments. Swap with a database-backed adapter in production.\n */\nexport class InMemoryStateStore implements StateStore {\n private readonly items = new Map<string, WorkflowState>();\n\n async create(state: WorkflowState): Promise<void> {\n if (this.items.has(state.workflowId))\n throw new Error(`Workflow state already exists: ${state.workflowId}`);\n this.items.set(state.workflowId, cloneState(state));\n }\n\n async get(workflowId: string): Promise<WorkflowState | undefined> {\n const state = this.items.get(workflowId);\n return state ? cloneState(state) : undefined;\n }\n\n async update(\n workflowId: string,\n updater: (current: WorkflowState) => WorkflowState\n ): Promise<WorkflowState> {\n const current = this.items.get(workflowId);\n if (!current)\n throw new Error(`Workflow state not found for ${workflowId}`);\n const next = cloneState(updater(cloneState(current)));\n this.items.set(workflowId, next);\n return cloneState(next);\n }\n\n async list(filters?: WorkflowStateFilters): Promise<WorkflowState[]> {\n const all = [...this.items.values()];\n const filtered = filters?.status\n ? all.filter((state) => state.status === filters.status)\n : all;\n return filtered.map(cloneState);\n }\n\n clear() {\n this.items.clear();\n }\n}\n\nfunction deepCopy<T>(value: T): T {\n if (value instanceof Date) return new Date(value.getTime()) as T;\n if (Array.isArray(value)) return value.map((item) => deepCopy(item)) as T;\n if (value && typeof value === 'object') {\n const result: Record<string, unknown> = {};\n for (const [key, val] of Object.entries(value as Record<string, unknown>)) {\n result[key] = deepCopy(val);\n }\n return result as T;\n }\n return value;\n}\n\n"],"mappings":"AAMA,SAAS,EAAW,EAAqC,CACvD,MAAO,CACL,GAAG,EACH,KAAM,EAAS,EAAM,KAAK,CAC1B,QAAS,EAAM,QAAQ,IAAK,IAAe,CACzC,GAAG,EACH,MAAO,EAAS,EAAU,MAAM,CAChC,OAAQ,EAAS,EAAU,OAAO,CAClC,UAAW,IAAI,KAAK,EAAU,UAAU,CACxC,YAAa,EAAU,YACnB,IAAI,KAAK,EAAU,YAAY,CAC/B,IAAA,GACL,EAAE,CACH,UAAW,IAAI,KAAK,EAAM,UAAU,CACpC,UAAW,IAAI,KAAK,EAAM,UAAU,CACrC,CAOH,IAAa,EAAb,KAAsD,CACpD,MAAyB,IAAI,IAE7B,MAAM,OAAO,EAAqC,CAChD,GAAI,KAAK,MAAM,IAAI,EAAM,WAAW,CAClC,MAAU,MAAM,kCAAkC,EAAM,aAAa,CACvE,KAAK,MAAM,IAAI,EAAM,WAAY,EAAW,EAAM,CAAC,CAGrD,MAAM,IAAI,EAAwD,CAChE,IAAM,EAAQ,KAAK,MAAM,IAAI,EAAW,CACxC,OAAO,EAAQ,EAAW,EAAM,CAAG,IAAA,GAGrC,MAAM,OACJ,EACA,EACwB,CACxB,IAAM,EAAU,KAAK,MAAM,IAAI,EAAW,CAC1C,GAAI,CAAC,EACH,MAAU,MAAM,gCAAgC,IAAa,CAC/D,IAAM,EAAO,EAAW,EAAQ,EAAW,EAAQ,CAAC,CAAC,CAErD,OADA,KAAK,MAAM,IAAI,EAAY,EAAK,CACzB,EAAW,EAAK,CAGzB,MAAM,KAAK,EAA0D,CACnE,IAAM,EAAM,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAIpC,OAHiB,GAAS,OACtB,EAAI,OAAQ,GAAU,EAAM,SAAW,EAAQ,OAAO,CACtD,GACY,IAAI,EAAW,CAGjC,OAAQ,CACN,KAAK,MAAM,OAAO,GAItB,SAAS,EAAY,EAAa,CAChC,GAAI,aAAiB,KAAM,OAAO,IAAI,KAAK,EAAM,SAAS,CAAC,CAC3D,GAAI,MAAM,QAAQ,EAAM,CAAE,OAAO,EAAM,IAAK,GAAS,EAAS,EAAK,CAAC,CACpE,GAAI,GAAS,OAAO,GAAU,SAAU,CACtC,IAAMA,EAAkC,EAAE,CAC1C,IAAK,GAAM,CAAC,EAAK,KAAQ,OAAO,QAAQ,EAAiC,CACvE,EAAO,GAAO,EAAS,EAAI,CAE7B,OAAO,EAET,OAAO"}
@@ -0,0 +1,10 @@
1
+ //#region src/workflow/expression.d.ts
2
+ interface ExpressionContext {
3
+ data: Record<string, unknown>;
4
+ input?: unknown;
5
+ output?: unknown;
6
+ }
7
+ declare function evaluateExpression(expression: string | undefined, ctx: ExpressionContext): boolean;
8
+ //#endregion
9
+ export { ExpressionContext, evaluateExpression };
10
+ //# sourceMappingURL=expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.d.ts","names":[],"sources":["../../src/workflow/expression.ts"],"sourcesContent":[],"mappings":";UAAiB,iBAAA;EAAA,IAAA,EACT,MADS,CAAA,MAAA,EAAiB,OAAA,CAAA;EAMlB,KAAA,CAAA,EAAA,OAAA;;;iBAAA,kBAAA,sCAET"}
@@ -0,0 +1,2 @@
1
+ function e(n,r){if(!n)return!0;let i=n.trim();if(!i)return!0;let a=o(i,`||`);if(a.length>1)return a.some(t=>e(t,r));let s=o(i,`&&`);return s.length>1?s.every(t=>e(t,r)):t(i,r)}function t(e,a){let o=e.trim();if(!o)return!0;if(o.startsWith(`!`))return!t(o.slice(1),a);let s=o.match(/^(data|input|output)\.([A-Za-z0-9_.\[\]]+)\s*(===|==|!==|!=|>=|<=|>|<)\s*(.+)$/);if(s){let[,e,t,o,c]=s;return n(i(e,a,t),r(c),o)}let c=o.match(/^(data|input|output)\.([A-Za-z0-9_.\[\]]+)$/);if(c){let[,e,t]=c;return!!i(e,a,t)}return!!r(o)}function n(e,t,n){switch(n){case`===`:case`==`:return e===t;case`!==`:case`!=`:return e!==t;case`>`:return Number(e)>Number(t);case`>=`:return Number(e)>=Number(t);case`<`:return Number(e)<Number(t);case`<=`:return Number(e)<=Number(t);default:return!1}}function r(e){let t=(e??``).trim();if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))return t.slice(1,-1);if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(/^true$/i.test(t))return!0;if(/^false$/i.test(t))return!1;if(/^null$/i.test(t))return null;if(!/^undefined$/i.test(t))return t}function i(e,t,n){return a(e===`data`?t.data:e===`input`?t.input:t.output,n)}function a(e,t){if(e==null)return;if(!t)return e;let n=t.replace(/\[(\d+)\]/g,`.$1`).split(`.`).filter(Boolean),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}function o(e,t){let n=[],r=``,i=!1,a=!1;for(let o=0;o<e.length;o++){let s=e[o],c=e.slice(o,o+t.length);if(s===`'`&&!a){i=!i,r+=s;continue}if(s===`"`&&!i){a=!a,r+=s;continue}if(!i&&!a&&c===t){n.push(r.trim()),r=``,o+=t.length-1;continue}r+=s}return r.trim().length&&n.push(r.trim()),n}export{e as evaluateExpression};
2
+ //# sourceMappingURL=expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.js","names":["current: any","parts: string[]"],"sources":["../../src/workflow/expression.ts"],"sourcesContent":["export interface ExpressionContext {\n data: Record<string, unknown>;\n input?: unknown;\n output?: unknown;\n}\n\nexport function evaluateExpression(\n expression: string | undefined,\n ctx: ExpressionContext\n): boolean {\n if (!expression) return true;\n const trimmed = expression.trim();\n if (!trimmed) return true;\n\n const orParts = splitByOperator(trimmed, '||');\n if (orParts.length > 1) return orParts.some((part) => evaluateExpression(part, ctx));\n\n const andParts = splitByOperator(trimmed, '&&');\n if (andParts.length > 1) return andParts.every((part) => evaluateExpression(part, ctx));\n\n return evaluateSingle(trimmed, ctx);\n}\n\nfunction evaluateSingle(expr: string, ctx: ExpressionContext): boolean {\n const trimmed = expr.trim();\n if (!trimmed) return true;\n if (trimmed.startsWith('!')) return !evaluateSingle(trimmed.slice(1), ctx);\n\n const comparisonMatch = trimmed.match(\n /^(data|input|output)\\.([A-Za-z0-9_.\\[\\]]+)\\s*(===|==|!==|!=|>=|<=|>|<)\\s*(.+)$/\n );\n if (comparisonMatch) {\n const [, root, path, operator, rawRight] = comparisonMatch as [\n string,\n string,\n string,\n ComparisonOperator,\n string\n ];\n const left = resolveRoot(root, ctx, path);\n const right = parseLiteral(rawRight);\n return compare(left, right, operator);\n }\n\n const truthyMatch = trimmed.match(/^(data|input|output)\\.([A-Za-z0-9_.\\[\\]]+)$/);\n if (truthyMatch) {\n const [, root, path] = truthyMatch as [string, string, string];\n const value = resolveRoot(root, ctx, path);\n return Boolean(value);\n }\n\n const literal = parseLiteral(trimmed);\n return Boolean(literal);\n}\n\ntype ComparisonOperator = '===' | '==' | '!==' | '!=' | '>=' | '<=' | '>' | '<';\n\nfunction compare(\n left: unknown,\n right: unknown,\n operator: ComparisonOperator\n): boolean {\n switch (operator) {\n case '===':\n case '==':\n return left === right;\n case '!==':\n case '!=':\n return left !== right;\n case '>':\n return Number(left) > Number(right);\n case '>=':\n return Number(left) >= Number(right);\n case '<':\n return Number(left) < Number(right);\n case '<=':\n return Number(left) <= Number(right);\n default:\n return false;\n }\n}\n\nfunction parseLiteral(value: string): unknown {\n const trimmed = (value ?? '').trim();\n if (\n (trimmed.startsWith('\"') && trimmed.endsWith('\"')) ||\n (trimmed.startsWith(\"'\") && trimmed.endsWith(\"'\"))\n )\n return trimmed.slice(1, -1);\n if (/^-?\\d+(\\.\\d+)?$/.test(trimmed)) return Number(trimmed);\n if (/^true$/i.test(trimmed)) return true;\n if (/^false$/i.test(trimmed)) return false;\n if (/^null$/i.test(trimmed)) return null;\n if (/^undefined$/i.test(trimmed)) return undefined;\n return trimmed;\n}\n\nfunction resolveRoot(\n root: string,\n ctx: ExpressionContext,\n path: string\n): unknown {\n const source =\n root === 'data'\n ? ctx.data\n : root === 'input'\n ? ctx.input\n : ctx.output;\n return resolvePath(source, path);\n}\n\nfunction resolvePath(source: unknown, path: string): unknown {\n if (source == null) return undefined;\n if (!path) return source;\n const segments = path\n .replace(/\\[(\\d+)\\]/g, '.$1')\n .split('.')\n .filter(Boolean);\n\n let current: any = source;\n for (const segment of segments) {\n if (current == null) return undefined;\n current = current[segment as keyof typeof current];\n }\n return current;\n}\n\nfunction splitByOperator(expr: string, operator: '&&' | '||'): string[] {\n const parts: string[] = [];\n let buffer = '';\n let inSingleQuote = false;\n let inDoubleQuote = false;\n\n for (let i = 0; i < expr.length; i++) {\n const char = expr[i]!;\n const next = expr.slice(i, i + operator.length);\n\n if (char === \"'\" && !inDoubleQuote) {\n inSingleQuote = !inSingleQuote;\n buffer += char;\n continue;\n }\n if (char === '\"' && !inSingleQuote) {\n inDoubleQuote = !inDoubleQuote;\n buffer += char;\n continue;\n }\n\n if (!inSingleQuote && !inDoubleQuote && next === operator) {\n parts.push(buffer.trim());\n buffer = '';\n i += operator.length - 1;\n continue;\n }\n\n buffer += char;\n }\n\n if (buffer.trim().length) parts.push(buffer.trim());\n return parts;\n}\n\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { CompensationStep, CompensationStrategy, FormRef, GuardCondition, GuardConditionKind, RetryPolicy, SLA, Step, StepAction, StepType, Transition, WorkflowDefinition, WorkflowMeta, WorkflowRegistry, WorkflowSpec, WorkflowStatus } from "./spec.js";
2
+ import { ValidateWorkflowSpecOptions, WorkflowValidationError, WorkflowValidationIssue, WorkflowValidationLevel, assertWorkflowSpecValid, validateWorkflowSpec } from "./validation.js";
3
+ import { StateStore, StepExecution, WorkflowState, WorkflowStateFilters } from "./state.js";
4
+ import { GuardContext, GuardEvaluator, OperationExecutor, OperationExecutorContext, WorkflowPreFlightError, WorkflowPreFlightIssue, WorkflowPreFlightIssueSeverity, WorkflowPreFlightIssueType, WorkflowPreFlightResult, WorkflowRunner, WorkflowRunnerConfig } from "./runner.js";
5
+ import { ExpressionContext, evaluateExpression } from "./expression.js";
6
+ import { InMemoryStateStore } from "./adapters/memory-store.js";
7
+ import { DatabaseStateStoreOptions, createDatabaseStateStore } from "./adapters/db-adapter.js";
8
+ import { FileStateStoreOptions, createFileStateStore } from "./adapters/file-adapter.js";
9
+ import "./adapters/index.js";
10
+ export { CompensationStep, CompensationStrategy, DatabaseStateStoreOptions, ExpressionContext, FileStateStoreOptions, FormRef, GuardCondition, GuardConditionKind, GuardContext, GuardEvaluator, InMemoryStateStore, OperationExecutor, OperationExecutorContext, RetryPolicy, SLA, StateStore, Step, StepAction, StepExecution, StepType, Transition, ValidateWorkflowSpecOptions, WorkflowDefinition, WorkflowMeta, WorkflowPreFlightError, WorkflowPreFlightIssue, WorkflowPreFlightIssueSeverity, WorkflowPreFlightIssueType, WorkflowPreFlightResult, WorkflowRegistry, WorkflowRunner, WorkflowRunnerConfig, WorkflowSpec, WorkflowState, WorkflowStateFilters, WorkflowStatus, WorkflowValidationError, WorkflowValidationIssue, WorkflowValidationLevel, assertWorkflowSpecValid, createDatabaseStateStore, createFileStateStore, evaluateExpression, validateWorkflowSpec };
@@ -0,0 +1 @@
1
+ import{WorkflowRegistry as e}from"./spec.js";import{WorkflowValidationError as t,assertWorkflowSpecValid as n,validateWorkflowSpec as r}from"./validation.js";import{evaluateExpression as i}from"./expression.js";import{WorkflowPreFlightError as a,WorkflowRunner as o}from"./runner.js";import{InMemoryStateStore as s}from"./adapters/memory-store.js";import{createDatabaseStateStore as c}from"./adapters/db-adapter.js";import{createFileStateStore as l}from"./adapters/file-adapter.js";export{s as InMemoryStateStore,a as WorkflowPreFlightError,e as WorkflowRegistry,o as WorkflowRunner,t as WorkflowValidationError,n as assertWorkflowSpecValid,c as createDatabaseStateStore,l as createFileStateStore,i as evaluateExpression,r as validateWorkflowSpec};
@@ -0,0 +1,74 @@
1
+ import { ResolvedBranding } from "../app-config/branding.js";
2
+ import { OpRef } from "../features.js";
3
+ import { GuardCondition, Step, WorkflowRegistry } from "./spec.js";
4
+ import { ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation } from "../app-config/runtime.js";
5
+ import { SecretProvider } from "../integrations/secrets/provider.js";
6
+ import { TranslationResolver } from "../types.js";
7
+ import { StateStore, WorkflowState } from "./state.js";
8
+
9
+ //#region src/workflow/runner.d.ts
10
+ interface OperationExecutorContext {
11
+ workflow: WorkflowState;
12
+ step: Step;
13
+ resolvedAppConfig?: ResolvedAppConfig;
14
+ integrations?: ResolvedIntegration[];
15
+ knowledge?: ResolvedKnowledge[];
16
+ branding?: ResolvedBranding;
17
+ translation?: ResolvedTranslation;
18
+ translationResolver?: TranslationResolver;
19
+ secretProvider?: SecretProvider;
20
+ }
21
+ type OperationExecutor = (op: OpRef, input: unknown, context: OperationExecutorContext) => Promise<unknown>;
22
+ type WorkflowPreFlightIssueType = 'integration' | 'capability';
23
+ type WorkflowPreFlightIssueSeverity = 'error' | 'warning';
24
+ interface WorkflowPreFlightIssue {
25
+ stepId: string;
26
+ type: WorkflowPreFlightIssueType;
27
+ identifier: string;
28
+ severity: WorkflowPreFlightIssueSeverity;
29
+ reason: string;
30
+ }
31
+ interface WorkflowPreFlightResult {
32
+ canStart: boolean;
33
+ issues: WorkflowPreFlightIssue[];
34
+ }
35
+ interface GuardContext {
36
+ workflow: WorkflowState;
37
+ step: Step;
38
+ input?: unknown;
39
+ }
40
+ type GuardEvaluator = (guard: GuardCondition, context: GuardContext) => Promise<boolean> | boolean;
41
+ interface WorkflowRunnerConfig {
42
+ registry: WorkflowRegistry;
43
+ stateStore: StateStore;
44
+ opExecutor: OperationExecutor;
45
+ guardEvaluator?: GuardEvaluator;
46
+ eventEmitter?: (event: string, payload: Record<string, unknown>) => void;
47
+ appConfigProvider?: (state: WorkflowState) => ResolvedAppConfig | undefined | Promise<ResolvedAppConfig | undefined>;
48
+ enforceCapabilities?: (operation: OpRef, context: OperationExecutorContext) => void | Promise<void>;
49
+ secretProvider?: SecretProvider;
50
+ translationResolver?: TranslationResolver;
51
+ }
52
+ declare class WorkflowRunner {
53
+ private readonly config;
54
+ constructor(config: WorkflowRunnerConfig);
55
+ preFlightCheck(workflowName: string, version?: number, resolvedConfig?: ResolvedAppConfig): Promise<WorkflowPreFlightResult>;
56
+ start(workflowName: string, version?: number, initialData?: Record<string, unknown>): Promise<string>;
57
+ executeStep(workflowId: string, input?: unknown): Promise<void>;
58
+ getState(workflowId: string): Promise<WorkflowState>;
59
+ cancel(workflowId: string): Promise<void>;
60
+ private performPreFlight;
61
+ private evaluateGuard;
62
+ private runStepAction;
63
+ private pickNextStepId;
64
+ private getSpec;
65
+ private getStateOrThrow;
66
+ private emit;
67
+ }
68
+ declare class WorkflowPreFlightError extends Error {
69
+ readonly issues: WorkflowPreFlightIssue[];
70
+ constructor(issues: WorkflowPreFlightIssue[]);
71
+ }
72
+ //#endregion
73
+ export { GuardContext, GuardEvaluator, OperationExecutor, OperationExecutorContext, WorkflowPreFlightError, WorkflowPreFlightIssue, WorkflowPreFlightIssueSeverity, WorkflowPreFlightIssueType, WorkflowPreFlightResult, WorkflowRunner, WorkflowRunnerConfig };
74
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","names":[],"sources":["../../src/workflow/runner.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{evaluateExpression as e}from"./expression.js";import{randomUUID as t}from"node:crypto";var n=class{constructor(e){this.config=e}async preFlightCheck(e,t,n){let r=this.getSpec(e,t);return this.performPreFlight(r,n)}async start(e,n,i){let a=this.getSpec(e,n),o=r(a),s=new Date,l=t(),u={workflowId:l,workflowName:a.meta.name,workflowVersion:a.meta.version,currentStep:o,data:{...i??{}},history:[],status:`running`,createdAt:s,updatedAt:s},d=this.config.appConfigProvider?await this.config.appConfigProvider(u):void 0,f=await this.performPreFlight(a,d);if(!f.canStart)throw new c(f.issues);return await this.config.stateStore.create(u),this.emit(`workflow.started`,{workflowId:l,workflowName:a.meta.name,workflowVersion:a.meta.version,currentStep:o}),l}async executeStep(e,t){let n=await this.getStateOrThrow(e);if(s(n.status))throw Error(`Workflow ${e} is in terminal status "${n.status}".`);let r=this.getSpec(n.workflowName,n.workflowVersion),c=i(r,n.currentStep);if(!await this.evaluateGuard(c,n,t))throw Error(`GuardRejected: ${n.workflowName} -> ${c.id}`);let l={stepId:c.id,startedAt:new Date,status:`running`,input:t},u={...n,data:{...n.data},history:[...n.history]};try{let i=await this.runStepAction(c,u,t);l.output=i,l.status=`completed`,l.completedAt=new Date,u.history.push(l),u.updatedAt=new Date,o(t)&&(u.data={...u.data,...t}),o(i)&&(u.data={...u.data,...i});let s=this.pickNextStepId(r,u,c,t,i);if(s)u.currentStep=s,u.status=`running`;else if(!a(r,c.id))u.status=`completed`;else throw Error(`No transition matched after executing step "${c.id}".`);await this.config.stateStore.update(e,()=>u),this.emit(`workflow.step_completed`,{workflowId:e,workflowName:n.workflowName,stepId:c.id,status:u.status})}catch(t){throw l.status=`failed`,l.completedAt=new Date,l.error=t instanceof Error?t.message:String(t),u.history.push(l),u.status=`failed`,u.updatedAt=new Date,await this.config.stateStore.update(e,()=>u),this.emit(`workflow.step_failed`,{workflowId:e,workflowName:n.workflowName,stepId:c.id,error:l.error??`unknown`}),t}}async getState(e){return this.getStateOrThrow(e)}async cancel(e){let t=await this.getStateOrThrow(e);if(t.status===`cancelled`)return;let n={...t,status:`cancelled`,updatedAt:new Date};await this.config.stateStore.update(e,()=>n),this.emit(`workflow.cancelled`,{workflowId:e,workflowName:t.workflowName})}async performPreFlight(e,t){if(!t)return{canStart:!0,issues:[]};let n=[],r=new Map;for(let e of t.integrations)r.set(e.slot.slotId,e);for(let t of e.definition.steps)for(let e of t.requiredIntegrations??[]){let i=r.get(e);if(!i){n.push({stepId:t.id,type:`integration`,identifier:e,severity:`error`,reason:`Integration slot "${e}" is not bound in the resolved app config.`});continue}let a=i.connection.status;a===`disconnected`||a===`error`?n.push({stepId:t.id,type:`integration`,identifier:e,severity:`error`,reason:`Integration slot "${e}" is in status "${a}".`}):a===`unknown`&&n.push({stepId:t.id,type:`integration`,identifier:e,severity:`warning`,reason:`Integration slot "${e}" reports unknown health status.`})}let i=new Set(t.capabilities.enabled.map(l));for(let t of e.definition.steps)for(let e of t.requiredCapabilities??[])i.has(l(e))||n.push({stepId:t.id,type:`capability`,identifier:l(e),severity:`error`,reason:`Capability "${e.key}@${e.version}" is not enabled.`});return{canStart:n.every(e=>e.severity!==`error`),issues:n}}async evaluateGuard(t,n,r){return t.guard?this.config.guardEvaluator?this.config.guardEvaluator(t.guard,{workflow:n,step:t,input:r}):t.guard.type===`expression`?e(t.guard.value,{data:n.data,input:r}):!0:!0}async runStepAction(e,t,n){if(e.type===`automation`){let r=e.action?.operation;if(!r)throw Error(`Automation step "${e.id}" requires an operation.`);let i=this.config.appConfigProvider?await this.config.appConfigProvider(t):void 0,a={workflow:t,step:e,resolvedAppConfig:i,integrations:i?.integrations??[],knowledge:i?.knowledge??[],branding:i?.branding,translation:i?.translation,translationResolver:this.config.translationResolver,secretProvider:this.config.secretProvider};return this.config.enforceCapabilities&&await this.config.enforceCapabilities(r,a),this.config.opExecutor(r,n,a)}return e.type,n}pickNextStepId(t,n,r,i,a){let o=t.definition.transitions.filter(e=>e.from===r.id);for(let r of o)if(e(r.condition,{data:n.data,input:i,output:a})){let e=t.definition.steps.find(e=>e.id===r.to);if(!e)throw Error(`Transition ${r.from} -> ${r.to} points to missing step.`);return e.id}return null}getSpec(e,t){let n=this.config.registry.get(e,t);if(!n)throw Error(`Workflow spec not found for ${e}${t?`.v${t}`:``}`);return n}async getStateOrThrow(e){let t=await this.config.stateStore.get(e);if(!t)throw Error(`Workflow state not found for ${e}`);return t}emit(e,t){this.config.eventEmitter?.(e,t)}};function r(e){let t=e.definition.entryStepId??e.definition.steps[0]?.id??null;if(!t)throw Error(`Workflow ${e.meta.name}.v${e.meta.version} has no entry step.`);return t}function i(e,t){let n=e.definition.steps.find(e=>e.id===t);if(!n)throw Error(`Step "${t}" not found in workflow ${e.meta.name}.v${e.meta.version}.`);return n}function a(e,t){return e.definition.transitions.some(e=>e.from===t)}function o(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function s(e){return e===`completed`||e===`failed`||e===`cancelled`}var c=class extends Error{constructor(e){super(`Workflow pre-flight failed: ${e.filter(e=>e.severity===`error`).map(e=>`${e.type}:${e.identifier}`).join(`, `)}`),this.issues=e,this.name=`WorkflowPreFlightError`}};function l(e){return`${e.key}@${e.version}`}export{c as WorkflowPreFlightError,n as WorkflowRunner};
2
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","names":["config: WorkflowRunnerConfig","state: WorkflowState","execution: StepExecution","workingState: WorkflowState","nextState: WorkflowState","issues: WorkflowPreFlightIssue[]","executorContext: OperationExecutorContext"],"sources":["../../src/workflow/runner.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport type {\n GuardCondition,\n Step,\n WorkflowRegistry,\n WorkflowSpec,\n} from './spec';\nimport type { StateStore, WorkflowState, StepExecution } from './state';\nimport { evaluateExpression } from './expression';\nimport type { OpRef } from '../features';\nimport type { CapabilityRef } from '../capabilities';\nimport type {\n ResolvedAppConfig,\n ResolvedIntegration,\n ResolvedKnowledge,\n ResolvedTranslation,\n} from '../app-config/runtime';\nimport type { ResolvedBranding } from '../app-config/branding';\nimport type { TranslationResolver } from '../types';\nimport type { SecretProvider } from '../integrations/secrets/provider';\n\nexport interface OperationExecutorContext {\n workflow: WorkflowState;\n step: Step;\n resolvedAppConfig?: ResolvedAppConfig;\n integrations?: ResolvedIntegration[];\n knowledge?: ResolvedKnowledge[];\n branding?: ResolvedBranding;\n translation?: ResolvedTranslation;\n translationResolver?: TranslationResolver;\n secretProvider?: SecretProvider;\n}\n\nexport type OperationExecutor = (\n op: OpRef,\n input: unknown,\n context: OperationExecutorContext\n) => Promise<unknown>;\n\nexport type WorkflowPreFlightIssueType = 'integration' | 'capability';\n\nexport type WorkflowPreFlightIssueSeverity = 'error' | 'warning';\n\nexport interface WorkflowPreFlightIssue {\n stepId: string;\n type: WorkflowPreFlightIssueType;\n identifier: string;\n severity: WorkflowPreFlightIssueSeverity;\n reason: string;\n}\n\nexport interface WorkflowPreFlightResult {\n canStart: boolean;\n issues: WorkflowPreFlightIssue[];\n}\n\nexport interface GuardContext {\n workflow: WorkflowState;\n step: Step;\n input?: unknown;\n}\n\nexport type GuardEvaluator = (\n guard: GuardCondition,\n context: GuardContext\n) => Promise<boolean> | boolean;\n\nexport interface WorkflowRunnerConfig {\n registry: WorkflowRegistry;\n stateStore: StateStore;\n opExecutor: OperationExecutor;\n guardEvaluator?: GuardEvaluator;\n eventEmitter?: (event: string, payload: Record<string, unknown>) => void;\n appConfigProvider?: (\n state: WorkflowState\n ) => ResolvedAppConfig | undefined | Promise<ResolvedAppConfig | undefined>;\n enforceCapabilities?: (\n operation: OpRef,\n context: OperationExecutorContext\n ) => void | Promise<void>;\n secretProvider?: SecretProvider;\n translationResolver?: TranslationResolver;\n}\n\nexport class WorkflowRunner {\n constructor(private readonly config: WorkflowRunnerConfig) {}\n\n async preFlightCheck(\n workflowName: string,\n version?: number,\n resolvedConfig?: ResolvedAppConfig\n ): Promise<WorkflowPreFlightResult> {\n const spec = this.getSpec(workflowName, version);\n return this.performPreFlight(spec, resolvedConfig);\n }\n\n async start(\n workflowName: string,\n version?: number,\n initialData?: Record<string, unknown>\n ): Promise<string> {\n const spec = this.getSpec(workflowName, version);\n const entryStepId = resolveEntryStepId(spec);\n const now = new Date();\n const workflowId = randomUUID();\n\n const state: WorkflowState = {\n workflowId,\n workflowName: spec.meta.name,\n workflowVersion: spec.meta.version,\n currentStep: entryStepId,\n data: { ...(initialData ?? {}) },\n history: [],\n status: 'running',\n createdAt: now,\n updatedAt: now,\n };\n\n const resolvedAppConfig = this.config.appConfigProvider\n ? await this.config.appConfigProvider(state)\n : undefined;\n\n const preFlightResult = await this.performPreFlight(\n spec,\n resolvedAppConfig\n );\n if (!preFlightResult.canStart) {\n throw new WorkflowPreFlightError(preFlightResult.issues);\n }\n\n await this.config.stateStore.create(state);\n this.emit('workflow.started', {\n workflowId,\n workflowName: spec.meta.name,\n workflowVersion: spec.meta.version,\n currentStep: entryStepId,\n });\n return workflowId;\n }\n\n async executeStep(workflowId: string, input?: unknown): Promise<void> {\n const state = await this.getStateOrThrow(workflowId);\n if (isTerminalStatus(state.status)) {\n throw new Error(\n `Workflow ${workflowId} is in terminal status \"${state.status}\".`\n );\n }\n\n const spec = this.getSpec(state.workflowName, state.workflowVersion);\n const step = getCurrentStep(spec, state.currentStep);\n const guardOk = await this.evaluateGuard(step, state, input);\n if (!guardOk)\n throw new Error(`GuardRejected: ${state.workflowName} -> ${step.id}`);\n\n const execution: StepExecution = {\n stepId: step.id,\n startedAt: new Date(),\n status: 'running',\n input,\n };\n\n const workingState: WorkflowState = {\n ...state,\n data: { ...state.data },\n history: [...state.history],\n };\n\n try {\n const output = await this.runStepAction(step, workingState, input);\n execution.output = output;\n execution.status = 'completed';\n execution.completedAt = new Date();\n workingState.history.push(execution);\n workingState.updatedAt = new Date();\n\n if (isRecord(input)) {\n workingState.data = { ...workingState.data, ...input };\n }\n if (isRecord(output)) {\n workingState.data = { ...workingState.data, ...output };\n }\n\n const nextStepId = this.pickNextStepId(\n spec,\n workingState,\n step,\n input,\n output\n );\n\n if (nextStepId) {\n workingState.currentStep = nextStepId;\n workingState.status = 'running';\n } else if (!hasOutgoing(spec, step.id)) {\n workingState.status = 'completed';\n } else {\n throw new Error(\n `No transition matched after executing step \"${step.id}\".`\n );\n }\n\n await this.config.stateStore.update(workflowId, () => workingState);\n this.emit('workflow.step_completed', {\n workflowId,\n workflowName: state.workflowName,\n stepId: step.id,\n status: workingState.status,\n });\n } catch (error) {\n execution.status = 'failed';\n execution.completedAt = new Date();\n execution.error =\n error instanceof Error ? error.message : String(error);\n workingState.history.push(execution);\n workingState.status = 'failed';\n workingState.updatedAt = new Date();\n await this.config.stateStore.update(workflowId, () => workingState);\n this.emit('workflow.step_failed', {\n workflowId,\n workflowName: state.workflowName,\n stepId: step.id,\n error: execution.error ?? 'unknown',\n });\n throw error;\n }\n }\n\n async getState(workflowId: string): Promise<WorkflowState> {\n return this.getStateOrThrow(workflowId);\n }\n\n async cancel(workflowId: string): Promise<void> {\n const state = await this.getStateOrThrow(workflowId);\n if (state.status === 'cancelled') return;\n\n const nextState: WorkflowState = {\n ...state,\n status: 'cancelled',\n updatedAt: new Date(),\n };\n await this.config.stateStore.update(workflowId, () => nextState);\n this.emit('workflow.cancelled', {\n workflowId,\n workflowName: state.workflowName,\n });\n }\n\n private async performPreFlight(\n spec: WorkflowSpec,\n resolvedConfig?: ResolvedAppConfig\n ): Promise<WorkflowPreFlightResult> {\n if (!resolvedConfig) {\n return { canStart: true, issues: [] };\n }\n\n const issues: WorkflowPreFlightIssue[] = [];\n const integrationBySlot = new Map<string, ResolvedIntegration>();\n for (const integration of resolvedConfig.integrations) {\n integrationBySlot.set(integration.slot.slotId, integration);\n }\n\n for (const step of spec.definition.steps) {\n for (const slotId of step.requiredIntegrations ?? []) {\n const integration = integrationBySlot.get(slotId);\n if (!integration) {\n issues.push({\n stepId: step.id,\n type: 'integration',\n identifier: slotId,\n severity: 'error',\n reason: `Integration slot \"${slotId}\" is not bound in the resolved app config.`,\n });\n continue;\n }\n const status = integration.connection.status;\n if (status === 'disconnected' || status === 'error') {\n issues.push({\n stepId: step.id,\n type: 'integration',\n identifier: slotId,\n severity: 'error',\n reason: `Integration slot \"${slotId}\" is in status \"${status}\".`,\n });\n } else if (status === 'unknown') {\n issues.push({\n stepId: step.id,\n type: 'integration',\n identifier: slotId,\n severity: 'warning',\n reason: `Integration slot \"${slotId}\" reports unknown health status.`,\n });\n }\n }\n }\n\n const enabledCapabilities = new Set(\n resolvedConfig.capabilities.enabled.map(capabilityKey)\n );\n for (const step of spec.definition.steps) {\n for (const required of step.requiredCapabilities ?? []) {\n if (!enabledCapabilities.has(capabilityKey(required))) {\n issues.push({\n stepId: step.id,\n type: 'capability',\n identifier: capabilityKey(required),\n severity: 'error',\n reason: `Capability \"${required.key}@${required.version}\" is not enabled.`,\n });\n }\n }\n }\n\n const canStart = issues.every((issue) => issue.severity !== 'error');\n return { canStart, issues };\n }\n\n private async evaluateGuard(\n step: Step,\n state: WorkflowState,\n input: unknown\n ) {\n if (!step.guard) return true;\n if (this.config.guardEvaluator)\n return this.config.guardEvaluator(step.guard, {\n workflow: state,\n step,\n input,\n });\n if (step.guard.type === 'expression') {\n return evaluateExpression(step.guard.value, {\n data: state.data,\n input,\n });\n }\n return true;\n }\n\n private async runStepAction(\n step: Step,\n state: WorkflowState,\n input: unknown\n ): Promise<unknown> {\n if (step.type === 'automation') {\n const op = step.action?.operation;\n if (!op)\n throw new Error(`Automation step \"${step.id}\" requires an operation.`);\n const resolvedAppConfig = this.config.appConfigProvider\n ? await this.config.appConfigProvider(state)\n : undefined;\n const executorContext: OperationExecutorContext = {\n workflow: state,\n step,\n resolvedAppConfig,\n integrations: resolvedAppConfig?.integrations ?? [],\n knowledge: resolvedAppConfig?.knowledge ?? [],\n branding: resolvedAppConfig?.branding,\n translation: resolvedAppConfig?.translation,\n translationResolver: this.config.translationResolver,\n secretProvider: this.config.secretProvider,\n };\n if (this.config.enforceCapabilities) {\n await this.config.enforceCapabilities(op, executorContext);\n }\n return this.config.opExecutor(op, input, executorContext);\n }\n\n if (step.type === 'human') {\n return input;\n }\n\n // decision step\n return input;\n }\n\n private pickNextStepId(\n spec: WorkflowSpec,\n state: WorkflowState,\n step: Step,\n input: unknown,\n output: unknown\n ): string | null {\n const transitions = spec.definition.transitions.filter(\n (t) => t.from === step.id\n );\n for (const transition of transitions) {\n if (\n evaluateExpression(transition.condition, {\n data: state.data,\n input,\n output,\n })\n ) {\n const target = spec.definition.steps.find((s) => s.id === transition.to);\n if (!target)\n throw new Error(\n `Transition ${transition.from} -> ${transition.to} points to missing step.`\n );\n return target.id;\n }\n }\n return null;\n }\n\n private getSpec(name: string, version?: number): WorkflowSpec {\n const spec = this.config.registry.get(name, version);\n if (!spec)\n throw new Error(\n `Workflow spec not found for ${name}${version ? `.v${version}` : ''}`\n );\n return spec;\n }\n\n private async getStateOrThrow(workflowId: string): Promise<WorkflowState> {\n const state = await this.config.stateStore.get(workflowId);\n if (!state) throw new Error(`Workflow state not found for ${workflowId}`);\n return state;\n }\n\n private emit(event: string, payload: Record<string, unknown>) {\n this.config.eventEmitter?.(event, payload);\n }\n}\n\nfunction resolveEntryStepId(spec: WorkflowSpec): string {\n const entry =\n spec.definition.entryStepId ?? spec.definition.steps[0]?.id ?? null;\n if (!entry)\n throw new Error(\n `Workflow ${spec.meta.name}.v${spec.meta.version} has no entry step.`\n );\n return entry;\n}\n\nfunction getCurrentStep(spec: WorkflowSpec, stepId: string): Step {\n const step = spec.definition.steps.find((s) => s.id === stepId);\n if (!step)\n throw new Error(\n `Step \"${stepId}\" not found in workflow ${spec.meta.name}.v${spec.meta.version}.`\n );\n return step;\n}\n\nfunction hasOutgoing(spec: WorkflowSpec, stepId: string): boolean {\n return spec.definition.transitions.some((t) => t.from === stepId);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return (\n value != null &&\n typeof value === 'object' &&\n !Array.isArray(value)\n );\n}\n\nfunction isTerminalStatus(status: WorkflowState['status']) {\n return status === 'completed' || status === 'failed' || status === 'cancelled';\n}\n\nexport class WorkflowPreFlightError extends Error {\n constructor(public readonly issues: WorkflowPreFlightIssue[]) {\n super(\n `Workflow pre-flight failed: ${issues\n .filter((issue) => issue.severity === 'error')\n .map((issue) => `${issue.type}:${issue.identifier}`)\n .join(', ')}`\n );\n this.name = 'WorkflowPreFlightError';\n }\n}\n\nfunction capabilityKey(ref: CapabilityRef): string {\n return `${ref.key}@${ref.version}`;\n}\n\n"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { OwnerShipMeta } from "../ownership.js";
2
+ import { CapabilityRef } from "../capabilities.js";
3
+ import { ExperimentRef } from "../experiments/spec.js";
4
+ import { OpRef } from "../features.js";
5
+
6
+ //#region src/workflow/spec.d.ts
7
+
8
+ /**
9
+ * Reference to a form spec declared in {@link FormRegistry}.
10
+ */
11
+ interface FormRef {
12
+ key: string;
13
+ version: number;
14
+ }
15
+ type StepType = 'human' | 'automation' | 'decision';
16
+ type WorkflowStatus = 'running' | 'paused' | 'completed' | 'failed' | 'cancelled';
17
+ type GuardConditionKind = 'policy' | 'expression';
18
+ interface GuardCondition {
19
+ type: GuardConditionKind;
20
+ /** Policy name or expression string depending on the type. */
21
+ value: string;
22
+ }
23
+ interface RetryPolicy {
24
+ maxAttempts: number;
25
+ backoff: 'linear' | 'exponential';
26
+ delayMs: number;
27
+ /** Optional max delay cap for exponential backoff. */
28
+ maxDelayMs?: number;
29
+ }
30
+ interface StepAction {
31
+ /** Operation executed for automation steps. */
32
+ operation?: OpRef;
33
+ /** Form rendered for human input steps. */
34
+ form?: FormRef;
35
+ }
36
+ interface Step {
37
+ id: string;
38
+ type: StepType;
39
+ label: string;
40
+ description?: string;
41
+ action?: StepAction;
42
+ guard?: GuardCondition;
43
+ timeoutMs?: number;
44
+ retry?: RetryPolicy;
45
+ /** Integration slot identifiers required before this step can execute. */
46
+ requiredIntegrations?: string[];
47
+ /** Capabilities that must be enabled for this step to execute. */
48
+ requiredCapabilities?: CapabilityRef[];
49
+ }
50
+ interface Transition {
51
+ from: string;
52
+ to: string;
53
+ label?: string;
54
+ /** Expression evaluated against workflow data (e.g., `data.approved === true`). */
55
+ condition?: string;
56
+ }
57
+ interface SLA {
58
+ totalDurationMs?: number;
59
+ stepDurationMs?: Record<string, number>;
60
+ }
61
+ interface CompensationStep {
62
+ stepId: string;
63
+ operation: OpRef;
64
+ description?: string;
65
+ }
66
+ interface CompensationStrategy {
67
+ trigger?: 'on_failure' | 'manual';
68
+ steps: CompensationStep[];
69
+ }
70
+ interface WorkflowDefinition {
71
+ steps: Step[];
72
+ transitions: Transition[];
73
+ /** Optional explicit entry step. Defaults to the first step when omitted. */
74
+ entryStepId?: string;
75
+ sla?: SLA;
76
+ compensation?: CompensationStrategy;
77
+ }
78
+ interface WorkflowMeta extends OwnerShipMeta {
79
+ /** Fully-qualified workflow name (e.g., `sigil.onboarding.basic`). */
80
+ name: string;
81
+ /** Version of the workflow. Increment on breaking changes. */
82
+ version: number;
83
+ }
84
+ interface WorkflowSpec {
85
+ meta: WorkflowMeta;
86
+ definition: WorkflowDefinition;
87
+ policy?: {
88
+ flags?: string[];
89
+ };
90
+ experiments?: ExperimentRef[];
91
+ }
92
+ declare class WorkflowRegistry {
93
+ private readonly items;
94
+ register(spec: WorkflowSpec): this;
95
+ list(): WorkflowSpec[];
96
+ get(name: string, version?: number): WorkflowSpec | undefined;
97
+ }
98
+ //#endregion
99
+ export { CompensationStep, CompensationStrategy, FormRef, GuardCondition, GuardConditionKind, RetryPolicy, SLA, Step, StepAction, StepType, Transition, WorkflowDefinition, WorkflowMeta, WorkflowRegistry, WorkflowSpec, WorkflowStatus };
100
+ //# sourceMappingURL=spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.d.ts","names":[],"sources":["../../src/workflow/spec.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAQA;AAKY,UALK,OAAA,CAKG;EAER,GAAA,EAAA,MAAA;EAOA,OAAA,EAAA,MAAA;AAEZ;AAMiB,KAjBL,QAAA,GAiBgB,OAAA,GAAA,YAAA,GAAA,UAAA;AAQX,KAvBL,cAAA,GAuBe,SAIlB,GAAA,QAAO,GAAA,WAAA,GAAA,QAAA,GAAA,WAAA;AAGC,KAvBL,kBAAA,GAuBS,QAAA,GAAA,YAAA;AAEb,UAvBS,cAAA,CAuBT;EAGG,IAAA,EAzBH,kBAyBG;EACD;EAEA,KAAA,EAAA,MAAA;;AAI4B,UA3BrB,WAAA,CA2BqB;EAGrB,WAAA,EAAU,MAAA;EAQV,OAAG,EAAA,QAAA,GAED,aAAM;EAGR,OAAA,EAAA,MAAA;EAMA;EAKA,UAAA,CAAA,EAAA,MAAA;;AAEF,UAhDE,UAAA,CAgDF;EAGP;EACS,SAAA,CAAA,EAlDH,KAkDG;EAAoB;EAGpB,IAAA,CAAA,EAnDR,OAmDQ;AAOjB;AACQ,UAxDS,IAAA,CAwDT;EACM,EAAA,EAAA,MAAA;EAEE,IAAA,EAzDR,QAyDQ;EAAa,KAAA,EAAA,MAAA;EAOhB,WAAA,CAAA,EAAA,MAAgB;EAGZ,MAAA,CAAA,EAhEN,UAgEM;EAOP,KAAA,CAAA,EAtEA,cAsEA;EAI6B,SAAA,CAAA,EAAA,MAAA;EAAY,KAAA,CAAA,EAxEzC,WAwEyC;;;;yBApE1B;;UAGR,UAAA;;;;;;;UAQA,GAAA;;mBAEE;;UAGF,gBAAA;;aAEJ;;;UAII,oBAAA;;SAER;;UAGQ,kBAAA;SACR;eACM;;;QAGP;iBACS;;UAGA,YAAA,SAAqB;;;;;;UAOrB,YAAA;QACT;cACM;;;;gBAEE;;cAOH,gBAAA;;iBAGI;UAOP;uCAI6B"}