@lssm/lib.contracts 1.7.3 → 1.9.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 (261) hide show
  1. package/README.md +62 -325
  2. package/dist/app-config/contracts.d.ts +51 -49
  3. package/dist/app-config/contracts.d.ts.map +1 -1
  4. package/dist/app-config/contracts.js +1 -1
  5. package/dist/app-config/contracts.js.map +1 -1
  6. package/dist/app-config/events.d.ts +28 -26
  7. package/dist/app-config/events.d.ts.map +1 -1
  8. package/dist/app-config/events.js +1 -1
  9. package/dist/app-config/events.js.map +1 -1
  10. package/dist/app-config/lifecycle-contracts.d.ts +81 -79
  11. package/dist/app-config/lifecycle-contracts.d.ts.map +1 -1
  12. package/dist/app-config/lifecycle-contracts.js +1 -1
  13. package/dist/app-config/lifecycle-contracts.js.map +1 -1
  14. package/dist/app-config/runtime.d.ts.map +1 -1
  15. package/dist/app-config/runtime.js.map +1 -1
  16. package/dist/app-config/spec.d.ts +2 -2
  17. package/dist/app-config/spec.d.ts.map +1 -1
  18. package/dist/app-config/spec.js.map +1 -1
  19. package/dist/app-config/validation.d.ts.map +1 -1
  20. package/dist/app-config/validation.js.map +1 -1
  21. package/dist/capabilities/openbanking.d.ts.map +1 -1
  22. package/dist/capabilities/openbanking.js.map +1 -1
  23. package/dist/capabilities.d.ts +2 -1
  24. package/dist/capabilities.d.ts.map +1 -1
  25. package/dist/capabilities.js +1 -1
  26. package/dist/capabilities.js.map +1 -1
  27. package/dist/client/react/form-render.d.ts +1 -0
  28. package/dist/client/react/form-render.d.ts.map +1 -1
  29. package/dist/contracts-adapter-input.d.ts +1 -0
  30. package/dist/contracts-adapter-input.d.ts.map +1 -1
  31. package/dist/data-views/query-generator.d.ts +40 -0
  32. package/dist/data-views/query-generator.d.ts.map +1 -0
  33. package/dist/data-views/query-generator.js +2 -0
  34. package/dist/data-views/query-generator.js.map +1 -0
  35. package/dist/data-views/runtime.d.ts +27 -0
  36. package/dist/data-views/runtime.d.ts.map +1 -0
  37. package/dist/data-views/runtime.js +2 -0
  38. package/dist/data-views/runtime.js.map +1 -0
  39. package/dist/data-views.js.map +1 -1
  40. package/dist/events.d.ts +1 -0
  41. package/dist/events.d.ts.map +1 -1
  42. package/dist/events.js +1 -1
  43. package/dist/events.js.map +1 -1
  44. package/dist/experiments/evaluator.d.ts.map +1 -1
  45. package/dist/experiments/evaluator.js.map +1 -1
  46. package/dist/experiments/spec-resolver.d.ts +17 -0
  47. package/dist/experiments/spec-resolver.d.ts.map +1 -0
  48. package/dist/experiments/spec-resolver.js +0 -0
  49. package/dist/experiments/spec.js.map +1 -1
  50. package/dist/forms.d.ts +1 -0
  51. package/dist/forms.d.ts.map +1 -1
  52. package/dist/graphql-federation/dist/index.js +2 -0
  53. package/dist/graphql-federation/dist/index.js.map +1 -0
  54. package/dist/index.d.ts +4 -3
  55. package/dist/index.js +1 -1
  56. package/dist/install.d.ts +1 -0
  57. package/dist/install.d.ts.map +1 -1
  58. package/dist/integrations/connection.d.ts.map +1 -1
  59. package/dist/integrations/contracts.d.ts +103 -101
  60. package/dist/integrations/contracts.d.ts.map +1 -1
  61. package/dist/integrations/contracts.js +1 -1
  62. package/dist/integrations/contracts.js.map +1 -1
  63. package/dist/integrations/health.d.ts.map +1 -1
  64. package/dist/integrations/health.js.map +1 -1
  65. package/dist/integrations/openbanking/contracts/accounts.d.ts +67 -65
  66. package/dist/integrations/openbanking/contracts/accounts.d.ts.map +1 -1
  67. package/dist/integrations/openbanking/contracts/accounts.js +1 -1
  68. package/dist/integrations/openbanking/contracts/accounts.js.map +1 -1
  69. package/dist/integrations/openbanking/contracts/balances.d.ts +35 -33
  70. package/dist/integrations/openbanking/contracts/balances.d.ts.map +1 -1
  71. package/dist/integrations/openbanking/contracts/balances.js +1 -1
  72. package/dist/integrations/openbanking/contracts/balances.js.map +1 -1
  73. package/dist/integrations/openbanking/contracts/index.js.map +1 -1
  74. package/dist/integrations/openbanking/contracts/transactions.d.ts +49 -47
  75. package/dist/integrations/openbanking/contracts/transactions.d.ts.map +1 -1
  76. package/dist/integrations/openbanking/contracts/transactions.js +1 -1
  77. package/dist/integrations/openbanking/contracts/transactions.js.map +1 -1
  78. package/dist/integrations/openbanking/guards.js.map +1 -1
  79. package/dist/integrations/openbanking/models.d.ts +57 -54
  80. package/dist/integrations/openbanking/models.d.ts.map +1 -1
  81. package/dist/integrations/openbanking/models.js +1 -1
  82. package/dist/integrations/openbanking/models.js.map +1 -1
  83. package/dist/integrations/openbanking/telemetry.js.map +1 -1
  84. package/dist/integrations/providers/elevenlabs.d.ts.map +1 -1
  85. package/dist/integrations/providers/elevenlabs.js.map +1 -1
  86. package/dist/integrations/providers/gcs-storage.js.map +1 -1
  87. package/dist/integrations/providers/gmail.d.ts.map +1 -1
  88. package/dist/integrations/providers/gmail.js.map +1 -1
  89. package/dist/integrations/providers/google-calendar.js.map +1 -1
  90. package/dist/integrations/providers/impls/elevenlabs-voice.js.map +1 -1
  91. package/dist/integrations/providers/impls/gcs-storage.js.map +1 -1
  92. package/dist/integrations/providers/impls/gmail-inbound.js.map +1 -1
  93. package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +1 -1
  94. package/dist/integrations/providers/impls/gmail-outbound.js.map +1 -1
  95. package/dist/integrations/providers/impls/google-calendar.d.ts.map +1 -1
  96. package/dist/integrations/providers/impls/google-calendar.js.map +1 -1
  97. package/dist/integrations/providers/impls/mistral-embedding.js.map +1 -1
  98. package/dist/integrations/providers/impls/mistral-llm.js.map +1 -1
  99. package/dist/integrations/providers/impls/postmark-email.js.map +1 -1
  100. package/dist/integrations/providers/impls/powens-client.d.ts.map +1 -1
  101. package/dist/integrations/providers/impls/powens-client.js.map +1 -1
  102. package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +1 -1
  103. package/dist/integrations/providers/impls/powens-openbanking.js.map +1 -1
  104. package/dist/integrations/providers/impls/provider-factory.d.ts.map +1 -1
  105. package/dist/integrations/providers/impls/provider-factory.js.map +1 -1
  106. package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +1 -1
  107. package/dist/integrations/providers/impls/qdrant-vector.js.map +1 -1
  108. package/dist/integrations/providers/impls/stripe-payments.d.ts.map +1 -1
  109. package/dist/integrations/providers/impls/stripe-payments.js.map +1 -1
  110. package/dist/integrations/providers/impls/twilio-sms.js.map +1 -1
  111. package/dist/integrations/providers/llm.d.ts.map +1 -1
  112. package/dist/integrations/providers/mistral.d.ts.map +1 -1
  113. package/dist/integrations/providers/mistral.js.map +1 -1
  114. package/dist/integrations/providers/payments.d.ts.map +1 -1
  115. package/dist/integrations/providers/postmark.d.ts.map +1 -1
  116. package/dist/integrations/providers/postmark.js.map +1 -1
  117. package/dist/integrations/providers/powens.js.map +1 -1
  118. package/dist/integrations/providers/qdrant.d.ts.map +1 -1
  119. package/dist/integrations/providers/qdrant.js.map +1 -1
  120. package/dist/integrations/providers/stripe.js.map +1 -1
  121. package/dist/integrations/providers/twilio-sms.js.map +1 -1
  122. package/dist/integrations/runtime.d.ts.map +1 -1
  123. package/dist/integrations/runtime.js.map +1 -1
  124. package/dist/integrations/secrets/env-secret-provider.js.map +1 -1
  125. package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +1 -1
  126. package/dist/integrations/secrets/gcp-secret-manager.js.map +1 -1
  127. package/dist/integrations/secrets/manager.d.ts +2 -2
  128. package/dist/integrations/secrets/manager.d.ts.map +1 -1
  129. package/dist/integrations/secrets/manager.js.map +1 -1
  130. package/dist/integrations/secrets/provider.js.map +1 -1
  131. package/dist/integrations/spec.d.ts.map +1 -1
  132. package/dist/integrations/spec.js.map +1 -1
  133. package/dist/jobs/gcp-cloud-tasks.js.map +1 -1
  134. package/dist/jobs/gcp-pubsub.d.ts.map +1 -1
  135. package/dist/jobs/gcp-pubsub.js.map +1 -1
  136. package/dist/jobs/handlers/gmail-sync-handler.js.map +1 -1
  137. package/dist/jobs/handlers/storage-document-handler.js.map +1 -1
  138. package/dist/jobs/memory-queue.d.ts.map +1 -1
  139. package/dist/jobs/memory-queue.js.map +1 -1
  140. package/dist/jobs/queue.d.ts.map +1 -1
  141. package/dist/jsonschema.d.ts +1 -1
  142. package/dist/jsonschema.d.ts.map +1 -1
  143. package/dist/knowledge/contracts.d.ts +67 -65
  144. package/dist/knowledge/contracts.d.ts.map +1 -1
  145. package/dist/knowledge/contracts.js +1 -1
  146. package/dist/knowledge/contracts.js.map +1 -1
  147. package/dist/knowledge/ingestion/document-processor.js.map +1 -1
  148. package/dist/knowledge/ingestion/embedding-service.d.ts.map +1 -1
  149. package/dist/knowledge/ingestion/embedding-service.js.map +1 -1
  150. package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +1 -1
  151. package/dist/knowledge/ingestion/gmail-adapter.js.map +1 -1
  152. package/dist/knowledge/ingestion/storage-adapter.js.map +1 -1
  153. package/dist/knowledge/ingestion/vector-indexer.js.map +1 -1
  154. package/dist/knowledge/query/service.d.ts +2 -2
  155. package/dist/knowledge/query/service.d.ts.map +1 -1
  156. package/dist/knowledge/query/service.js.map +1 -1
  157. package/dist/knowledge/runtime.d.ts.map +1 -1
  158. package/dist/knowledge/runtime.js.map +1 -1
  159. package/dist/knowledge/spaces/email-threads.js.map +1 -1
  160. package/dist/knowledge/spaces/financial-docs.js.map +1 -1
  161. package/dist/knowledge/spaces/financial-overview.js.map +1 -1
  162. package/dist/knowledge/spaces/product-canon.js.map +1 -1
  163. package/dist/knowledge/spaces/support-faq.js.map +1 -1
  164. package/dist/knowledge/spaces/uploaded-docs.js.map +1 -1
  165. package/dist/knowledge/spec.js.map +1 -1
  166. package/dist/migrations.d.ts.map +1 -1
  167. package/dist/migrations.js.map +1 -1
  168. package/dist/onboarding-base.d.ts +30 -28
  169. package/dist/onboarding-base.d.ts.map +1 -1
  170. package/dist/onboarding-base.js +1 -1
  171. package/dist/onboarding-base.js.map +1 -1
  172. package/dist/policy/engine.js.map +1 -1
  173. package/dist/policy/opa-adapter.d.ts.map +1 -1
  174. package/dist/policy/opa-adapter.js.map +1 -1
  175. package/dist/policy/spec.d.ts.map +1 -1
  176. package/dist/policy/spec.js.map +1 -1
  177. package/dist/presentations.d.ts +1 -0
  178. package/dist/presentations.d.ts.map +1 -1
  179. package/dist/presentations.v2.d.ts +1 -0
  180. package/dist/presentations.v2.d.ts.map +1 -1
  181. package/dist/regenerator/executor.d.ts.map +1 -1
  182. package/dist/regenerator/executor.js.map +1 -1
  183. package/dist/regenerator/service.d.ts.map +1 -1
  184. package/dist/regenerator/service.js.map +1 -1
  185. package/dist/regenerator/sinks.d.ts.map +1 -1
  186. package/dist/regenerator/sinks.js.map +1 -1
  187. package/dist/regenerator/types.d.ts.map +1 -1
  188. package/dist/regenerator/utils.js.map +1 -1
  189. package/dist/registry.d.ts +37 -9
  190. package/dist/registry.d.ts.map +1 -1
  191. package/dist/registry.js +1 -1
  192. package/dist/registry.js.map +1 -1
  193. package/dist/schema/dist/FieldType.js +2 -0
  194. package/dist/schema/dist/FieldType.js.map +1 -0
  195. package/dist/schema/dist/ScalarTypeEnum.js +2 -0
  196. package/dist/schema/dist/ScalarTypeEnum.js.map +1 -0
  197. package/dist/schema/{src → dist}/SchemaModel.js +1 -1
  198. package/dist/schema/dist/SchemaModel.js.map +1 -0
  199. package/dist/schema/dist/index.js +1 -0
  200. package/dist/server/graphql-pothos.d.ts +15 -2
  201. package/dist/server/graphql-pothos.d.ts.map +1 -1
  202. package/dist/server/graphql-pothos.js.map +1 -1
  203. package/dist/server/graphql-schema-export.js +1 -1
  204. package/dist/server/graphql-schema-export.js.map +1 -1
  205. package/dist/server/provider-mcp.d.ts +22 -4
  206. package/dist/server/provider-mcp.d.ts.map +1 -1
  207. package/dist/server/provider-mcp.js.map +1 -1
  208. package/dist/server/rest-next-app.d.ts +23 -3
  209. package/dist/server/rest-next-app.d.ts.map +1 -1
  210. package/dist/server/rest-next-app.js.map +1 -1
  211. package/dist/spec.d.ts +23 -0
  212. package/dist/spec.d.ts.map +1 -1
  213. package/dist/spec.js.map +1 -1
  214. package/dist/telemetry/anomaly.js.map +1 -1
  215. package/dist/telemetry/spec.d.ts.map +1 -1
  216. package/dist/telemetry/spec.js.map +1 -1
  217. package/dist/telemetry/tracker.d.ts.map +1 -1
  218. package/dist/telemetry/tracker.js.map +1 -1
  219. package/dist/tests/runner.js.map +1 -1
  220. package/dist/tests/spec.js.map +1 -1
  221. package/dist/themes.d.ts.map +1 -1
  222. package/dist/themes.js.map +1 -1
  223. package/dist/types/all.d.ts +2 -2
  224. package/dist/types.d.ts +3 -0
  225. package/dist/types.d.ts.map +1 -1
  226. package/dist/workflow/adapters/db-adapter.d.ts +30 -10
  227. package/dist/workflow/adapters/db-adapter.d.ts.map +1 -1
  228. package/dist/workflow/adapters/db-adapter.js +1 -1
  229. package/dist/workflow/adapters/db-adapter.js.map +1 -1
  230. package/dist/workflow/adapters/file-adapter.js.map +1 -1
  231. package/dist/workflow/adapters/index.d.ts +2 -2
  232. package/dist/workflow/adapters/index.js +1 -1
  233. package/dist/workflow/adapters/memory-store.d.ts.map +1 -1
  234. package/dist/workflow/adapters/memory-store.js.map +1 -1
  235. package/dist/workflow/expression.js.map +1 -1
  236. package/dist/workflow/index.d.ts +2 -2
  237. package/dist/workflow/index.js +1 -1
  238. package/dist/workflow/runner.d.ts +1 -0
  239. package/dist/workflow/runner.d.ts.map +1 -1
  240. package/dist/workflow/runner.js +1 -1
  241. package/dist/workflow/runner.js.map +1 -1
  242. package/dist/workflow/sla-monitor.d.ts +21 -0
  243. package/dist/workflow/sla-monitor.d.ts.map +1 -0
  244. package/dist/workflow/sla-monitor.js +2 -0
  245. package/dist/workflow/sla-monitor.js.map +1 -0
  246. package/dist/workflow/spec.d.ts.map +1 -1
  247. package/dist/workflow/spec.js.map +1 -1
  248. package/dist/workflow/state.d.ts +1 -0
  249. package/dist/workflow/state.d.ts.map +1 -1
  250. package/dist/workflow/validation.d.ts.map +1 -1
  251. package/dist/workflow/validation.js.map +1 -1
  252. package/package.json +181 -177
  253. package/dist/graphql-federation/src/index.js +0 -2
  254. package/dist/graphql-federation/src/index.js.map +0 -1
  255. package/dist/schema/src/FieldType.js +0 -2
  256. package/dist/schema/src/FieldType.js.map +0 -1
  257. package/dist/schema/src/ScalarTypeEnum.js +0 -2
  258. package/dist/schema/src/ScalarTypeEnum.js.map +0 -1
  259. package/dist/schema/src/SchemaModel.js.map +0 -1
  260. package/dist/schema/src/index.js +0 -1
  261. /package/dist/schema/{src → dist}/EnumType.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"form-render.d.ts","names":[],"sources":["../../../src/client/react/form-render.tsx"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"form-render.d.ts","names":[],"sources":["../../../src/client/react/form-render.tsx"],"sourcesContent":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { SchemaTypes } from "@pothos/core";
2
+ import { AnySchemaModel } from "@lssm/lib.schema";
2
3
 
3
4
  //#region src/contracts-adapter-input.d.ts
4
5
  declare function isSchemaModel(x: unknown): x is AnySchemaModel;
@@ -1 +1 @@
1
- {"version":3,"file":"contracts-adapter-input.d.ts","names":[],"sources":["../src/contracts-adapter-input.ts"],"sourcesContent":[],"mappings":";;;iBAOgB,aAAA,mBAAgC;AAAhC,iBAgCA,sBAhC8C,CAAA,UAgCb,WAhCa,CAAA,CAAA,OAAA,EAiCnD,iBAAA,CAAkB,aAjCiC,CAiCnB,CAjCmB,CAAA,CAAA,EAAA;EAgC9C,mBAAA,EAAA,CAAA,KAAsB,EA8FA,cA9FA,GAAA,IAAA,EAAA,GAAA,IAAA;CAAW"}
1
+ {"version":3,"file":"contracts-adapter-input.d.ts","names":[],"sources":["../src/contracts-adapter-input.ts"],"sourcesContent":[],"mappings":";;;;iBAOgB,aAAA,mBAAgC;iBAgChC,iCAAiC,sBACtC,iBAAA,CAAkB,cAAc;EAjC3B,mBAAa,EAAA,CAAA,KAAA,EA8HS,cA9HwB,GAAA,IAAA,EAAA,GAAA,IAAA;AAgC9D,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { DataViewSpec } from "../data-views.js";
2
+
3
+ //#region src/data-views/query-generator.d.ts
4
+ interface DataViewQueryParams {
5
+ filters?: Record<string, any>;
6
+ sort?: {
7
+ field: string;
8
+ direction: 'asc' | 'desc';
9
+ };
10
+ pagination?: {
11
+ page: number;
12
+ pageSize: number;
13
+ };
14
+ search?: string;
15
+ }
16
+ interface DataViewQuery {
17
+ operationName: string;
18
+ input: Record<string, any>;
19
+ meta: {
20
+ pagination: {
21
+ page: number;
22
+ pageSize: number;
23
+ skip: number;
24
+ take: number;
25
+ };
26
+ sorting?: {
27
+ field: string;
28
+ direction: 'asc' | 'desc';
29
+ };
30
+ };
31
+ }
32
+ declare class DataViewQueryGenerator {
33
+ private spec;
34
+ constructor(spec: DataViewSpec);
35
+ generate(params: DataViewQueryParams): DataViewQuery;
36
+ validateParams(params: DataViewQueryParams): string[];
37
+ }
38
+ //#endregion
39
+ export { DataViewQuery, DataViewQueryGenerator, DataViewQueryParams };
40
+ //# sourceMappingURL=query-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-generator.d.ts","names":[],"sources":["../../src/data-views/query-generator.ts"],"sourcesContent":[],"mappings":";;;UAEiB,mBAAA;YACL;EADK,IAAA,CAAA,EAAA;IAOA,KAAA,EAAA,MAAa;IASjB,SAAA,EAAA,KAAA,GAAA,MAAsB;EACP,CAAA;EAET,UAAA,CAAA,EAAA;IAAsB,IAAA,EAAA,MAAA;IAiChB,QAAA,EAAA,MAAA;EAAmB,CAAA;;;UA7C3B,aAAA;;SAER;;;;;;;;;;;;;;cAOI,sBAAA;;oBACe;mBAET,sBAAsB;yBAiChB"}
@@ -0,0 +1,2 @@
1
+ var e=class{constructor(e){this.spec=e}generate(e){let{primary:t}=this.spec.source,n=e.pagination?.page??1,r=e.pagination?.pageSize??20,i=(n-1)*r,a=r,o={skip:i,take:a,...e.filters};return e.search&&(o.search=e.search),e.sort&&(o.orderBy={[e.sort.field]:e.sort.direction}),{operationName:t.name,input:o,meta:{pagination:{page:n,pageSize:r,skip:i,take:a},sorting:e.sort}}}validateParams(e){let t=[];if(e.filters&&this.spec.view.filters)for(let n of Object.keys(e.filters))this.spec.view.filters.find(e=>e.key===n)||t.push(`Unknown filter key: ${n}`);if(e.sort){let n=this.spec.view.fields.find(t=>t.key===e.sort.field);n?n.sortable===!1&&t.push(`Field is not sortable: ${e.sort.field}`):t.push(`Unknown sort field: ${e.sort.field}`)}return t}};export{e as DataViewQueryGenerator};
2
+ //# sourceMappingURL=query-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-generator.js","names":["spec: DataViewSpec","input: Record<string, any>","errors: string[]"],"sources":["../../src/data-views/query-generator.ts"],"sourcesContent":["import type { DataViewSpec } from '../data-views';\n\nexport interface DataViewQueryParams {\n filters?: Record<string, any>;\n sort?: { field: string; direction: 'asc' | 'desc' };\n pagination?: { page: number; pageSize: number };\n search?: string;\n}\n\nexport interface DataViewQuery {\n operationName: string;\n input: Record<string, any>;\n meta: {\n pagination: { page: number; pageSize: number; skip: number; take: number };\n sorting?: { field: string; direction: 'asc' | 'desc' };\n };\n}\n\nexport class DataViewQueryGenerator {\n constructor(private spec: DataViewSpec) {}\n\n generate(params: DataViewQueryParams): DataViewQuery {\n const { primary } = this.spec.source;\n const page = params.pagination?.page ?? 1;\n const pageSize = params.pagination?.pageSize ?? 20;\n const skip = (page - 1) * pageSize;\n const take = pageSize;\n\n const input: Record<string, any> = {\n skip,\n take,\n ...params.filters,\n };\n\n if (params.search) {\n input.search = params.search;\n }\n\n if (params.sort) {\n input.orderBy = {\n [params.sort.field]: params.sort.direction,\n };\n }\n\n return {\n operationName: primary.name,\n input,\n meta: {\n pagination: { page, pageSize, skip, take },\n sorting: params.sort,\n },\n };\n }\n\n validateParams(params: DataViewQueryParams): string[] {\n const errors: string[] = [];\n\n // Validate filters against spec\n if (params.filters && this.spec.view.filters) {\n for (const key of Object.keys(params.filters)) {\n const defined = this.spec.view.filters.find((f) => f.key === key);\n if (!defined) {\n errors.push(`Unknown filter key: ${key}`);\n }\n }\n }\n\n // Validate sort field\n if (params.sort) {\n const field = this.spec.view.fields.find(\n (f) => f.key === params.sort!.field\n );\n if (!field) {\n errors.push(`Unknown sort field: ${params.sort.field}`);\n } else if (field.sortable === false) {\n errors.push(`Field is not sortable: ${params.sort.field}`);\n }\n }\n\n return errors;\n }\n}\n"],"mappings":"AAkBA,IAAa,EAAb,KAAoC,CAClC,YAAY,EAA4B,CAApB,KAAA,KAAA,EAEpB,SAAS,EAA4C,CACnD,GAAM,CAAE,WAAY,KAAK,KAAK,OACxB,EAAO,EAAO,YAAY,MAAQ,EAClC,EAAW,EAAO,YAAY,UAAY,GAC1C,GAAQ,EAAO,GAAK,EACpB,EAAO,EAEPC,EAA6B,CACjC,OACA,OACA,GAAG,EAAO,QACX,CAYD,OAVI,EAAO,SACT,EAAM,OAAS,EAAO,QAGpB,EAAO,OACT,EAAM,QAAU,EACb,EAAO,KAAK,OAAQ,EAAO,KAAK,UAClC,EAGI,CACL,cAAe,EAAQ,KACvB,QACA,KAAM,CACJ,WAAY,CAAE,OAAM,WAAU,OAAM,OAAM,CAC1C,QAAS,EAAO,KACjB,CACF,CAGH,eAAe,EAAuC,CACpD,IAAMC,EAAmB,EAAE,CAG3B,GAAI,EAAO,SAAW,KAAK,KAAK,KAAK,YAC9B,IAAM,KAAO,OAAO,KAAK,EAAO,QAAQ,CAC3B,KAAK,KAAK,KAAK,QAAQ,KAAM,GAAM,EAAE,MAAQ,EAAI,EAE/D,EAAO,KAAK,uBAAuB,IAAM,CAM/C,GAAI,EAAO,KAAM,CACf,IAAM,EAAQ,KAAK,KAAK,KAAK,OAAO,KACjC,GAAM,EAAE,MAAQ,EAAO,KAAM,MAC/B,CACI,EAEM,EAAM,WAAa,IAC5B,EAAO,KAAK,0BAA0B,EAAO,KAAK,QAAQ,CAF1D,EAAO,KAAK,uBAAuB,EAAO,KAAK,QAAQ,CAM3D,OAAO"}
@@ -0,0 +1,27 @@
1
+ import { DataViewRegistry, DataViewSpec } from "../data-views.js";
2
+
3
+ //#region src/data-views/runtime.d.ts
4
+ interface DataViewRuntimeConfig {
5
+ registry: DataViewRegistry;
6
+ }
7
+ interface DataViewResult<T = any> {
8
+ data: T[];
9
+ total: number;
10
+ loading: boolean;
11
+ error?: Error;
12
+ }
13
+ declare class DataViewRuntime {
14
+ private config;
15
+ private cache;
16
+ private subscriptions;
17
+ constructor(config: DataViewRuntimeConfig);
18
+ register(spec: DataViewSpec): void;
19
+ getSpec(name: string, version?: number): DataViewSpec | undefined;
20
+ executeQuery(specName: string, params: any): Promise<DataViewResult>;
21
+ invalidate(specName: string): void;
22
+ subscribe(specName: string, callback: () => void): () => void;
23
+ private notifySubscribers;
24
+ }
25
+ //#endregion
26
+ export { DataViewResult, DataViewRuntime, DataViewRuntimeConfig };
27
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","names":[],"sources":["../../src/data-views/runtime.ts"],"sourcesContent":[],"mappings":";;;UAEiB,qBAAA;YACL;AADZ;AAKiB,UAAA,cAAc,CAAA,IACvB,GAGE,CAAA,CAAA;EAGG,IAAA,EANL,CAMK,EAAA;EAIiB,KAAA,EAAA,MAAA;EAEb,OAAA,EAAA,OAAA;EAIuB,KAAA,CAAA,EAb9B,KAa8B;;AAMa,cAhBxC,eAAA,CAgBwC;EAAO,QAAA,MAAA;;;sBAZ9B;iBAEb;2CAIuB;+CAMa,QAAQ"}
@@ -0,0 +1,2 @@
1
+ var e=class{cache=new Map;subscriptions=new Map;constructor(e){this.config=e}register(e){this.config.registry.register(e)}getSpec(e,t){return this.config.registry.get(e,t)}async executeQuery(e,t){if(!this.getSpec(e))throw Error(`DataView spec not found: ${e}`);return{data:[],total:0,loading:!1}}invalidate(e){this.cache.delete(e),this.notifySubscribers(e)}subscribe(e,t){return this.subscriptions.has(e)||this.subscriptions.set(e,new Set),this.subscriptions.get(e).add(t),()=>{this.subscriptions.get(e)?.delete(t)}}notifySubscribers(e){this.subscriptions.get(e)?.forEach(e=>e())}};export{e as DataViewRuntime};
2
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","names":["config: DataViewRuntimeConfig"],"sources":["../../src/data-views/runtime.ts"],"sourcesContent":["import { DataViewRegistry, type DataViewSpec } from '../data-views';\n\nexport interface DataViewRuntimeConfig {\n registry: DataViewRegistry;\n // eventBus?: EventBus; // To be integrated with actual bus implementation\n}\n\nexport interface DataViewResult<T = any> {\n data: T[];\n total: number;\n loading: boolean;\n error?: Error;\n}\n\nexport class DataViewRuntime {\n private cache = new Map<string, { data: any[]; timestamp: number }>();\n private subscriptions = new Map<string, Set<() => void>>();\n\n constructor(private config: DataViewRuntimeConfig) {}\n\n register(spec: DataViewSpec) {\n this.config.registry.register(spec);\n }\n\n getSpec(name: string, version?: number) {\n return this.config.registry.get(name, version);\n }\n\n // Simulating query execution for now as we don't have a full backend context here\n // In a real app, this would call the backend API via an adapter\n async executeQuery(specName: string, params: any): Promise<DataViewResult> {\n const spec = this.getSpec(specName);\n if (!spec) {\n throw new Error(`DataView spec not found: ${specName}`);\n }\n\n // TODO: Implement actual data fetching via Operation runtime\n // For now, return empty or cached data\n\n return {\n data: [],\n total: 0,\n loading: false,\n };\n }\n\n invalidate(specName: string) {\n this.cache.delete(specName);\n this.notifySubscribers(specName);\n }\n\n subscribe(specName: string, callback: () => void) {\n if (!this.subscriptions.has(specName)) {\n this.subscriptions.set(specName, new Set());\n }\n this.subscriptions.get(specName)!.add(callback);\n return () => {\n this.subscriptions.get(specName)?.delete(callback);\n };\n }\n\n private notifySubscribers(specName: string) {\n this.subscriptions.get(specName)?.forEach((cb) => cb());\n }\n}\n"],"mappings":"AAcA,IAAa,EAAb,KAA6B,CAC3B,MAAgB,IAAI,IACpB,cAAwB,IAAI,IAE5B,YAAY,EAAuC,CAA/B,KAAA,OAAA,EAEpB,SAAS,EAAoB,CAC3B,KAAK,OAAO,SAAS,SAAS,EAAK,CAGrC,QAAQ,EAAc,EAAkB,CACtC,OAAO,KAAK,OAAO,SAAS,IAAI,EAAM,EAAQ,CAKhD,MAAM,aAAa,EAAkB,EAAsC,CAEzE,GAAI,CADS,KAAK,QAAQ,EAAS,CAEjC,MAAU,MAAM,4BAA4B,IAAW,CAMzD,MAAO,CACL,KAAM,EAAE,CACR,MAAO,EACP,QAAS,GACV,CAGH,WAAW,EAAkB,CAC3B,KAAK,MAAM,OAAO,EAAS,CAC3B,KAAK,kBAAkB,EAAS,CAGlC,UAAU,EAAkB,EAAsB,CAKhD,OAJK,KAAK,cAAc,IAAI,EAAS,EACnC,KAAK,cAAc,IAAI,EAAU,IAAI,IAAM,CAE7C,KAAK,cAAc,IAAI,EAAS,CAAE,IAAI,EAAS,KAClC,CACX,KAAK,cAAc,IAAI,EAAS,EAAE,OAAO,EAAS,EAItD,kBAA0B,EAAkB,CAC1C,KAAK,cAAc,IAAI,EAAS,EAAE,QAAS,GAAO,GAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-views.js","names":["candidate: DataViewSpec | undefined"],"sources":["../src/data-views.ts"],"sourcesContent":["import type { OwnerShipMeta } from './ownership';\nimport type { OpRef, EventRef, PresentationRef } from './features';\nimport type { ExperimentRef } from './experiments/spec';\n\nexport type DataViewKind = 'list' | 'detail' | 'table' | 'grid';\n\nexport interface DataViewMeta extends OwnerShipMeta {\n /** Fully-qualified data view name (e.g., \"sigil.spaces.admin_list\"). */\n name: string;\n /** Version of this data view. Increment on breaking changes. */\n version: number;\n /** Canonical entity slug (e.g., \"space\", \"resident\"). */\n entity: string;\n}\n\nexport interface DataViewSource {\n /** Primary query used to fetch items for this view. */\n primary: OpRef;\n /** Optional operation used to fetch a single item (detail views). */\n item?: OpRef;\n /** Optional record mutation operations (used for inline editing or actions). */\n mutations?: {\n create?: OpRef;\n update?: OpRef;\n delete?: OpRef;\n };\n /** Events that should trigger refresh when emitted. */\n refreshEvents?: EventRef[];\n}\n\nexport type DataViewFieldFormat =\n | 'text'\n | 'number'\n | 'currency'\n | 'percentage'\n | 'date'\n | 'dateTime'\n | 'boolean'\n | 'badge';\n\nexport interface DataViewField {\n /** Unique identifier for the field within the view. */\n key: string;\n /** Human-friendly label for headers/tooltips. */\n label: string;\n /** Dot-path into the data item (e.g., \"address.city\"). */\n dataPath: string;\n /** Optional description surfaced in tooltips or docs. */\n description?: string;\n /** Optional formatting hint for renderers. */\n format?: DataViewFieldFormat;\n /** When true, the field can be used for sorting. */\n sortable?: boolean;\n /** When true, the field can be used for filtering. */\n filterable?: boolean;\n /** Optional width hint for table layouts. */\n width?: 'auto' | 'xs' | 'sm' | 'md' | 'lg';\n /** Optional presentation override (e.g., card component). */\n presentation?: PresentationRef;\n}\n\nexport interface DataViewFilter {\n key: string;\n label: string;\n field: string;\n type: 'search' | 'enum' | 'number' | 'date' | 'boolean';\n options?: { value: string; label: string }[];\n}\n\nexport interface DataViewAction {\n key: string;\n label: string;\n kind: 'navigation' | 'operation';\n /** Operation invoked when kind === 'operation'. */\n operation?: OpRef;\n /** Optional feature flag gating the action. */\n requiresFlag?: string;\n}\n\nexport interface DataViewSections {\n title?: string;\n description?: string;\n fields: string[];\n}\n\nexport interface DataViewBaseConfig {\n kind: DataViewKind;\n fields: DataViewField[];\n primaryField?: string;\n secondaryFields?: string[];\n filters?: DataViewFilter[];\n actions?: DataViewAction[];\n}\n\nexport interface DataViewListConfig extends DataViewBaseConfig {\n kind: 'list';\n layout?: 'card' | 'compact';\n}\n\nexport interface DataViewDetailConfig extends DataViewBaseConfig {\n kind: 'detail';\n sections?: DataViewSections[];\n}\n\nexport interface DataViewTableColumn {\n field: string;\n label?: string;\n width?: 'auto' | 'xs' | 'sm' | 'md' | 'lg';\n align?: 'left' | 'center' | 'right';\n}\n\nexport interface DataViewTableConfig extends DataViewBaseConfig {\n kind: 'table';\n columns?: DataViewTableColumn[];\n rowSelectable?: boolean;\n density?: 'comfortable' | 'compact';\n}\n\nexport interface DataViewGridConfig extends DataViewBaseConfig {\n kind: 'grid';\n columns?: number;\n}\n\nexport type DataViewConfig =\n | DataViewListConfig\n | DataViewDetailConfig\n | DataViewTableConfig\n | DataViewGridConfig;\n\nexport interface DataViewStates {\n empty?: PresentationRef;\n error?: PresentationRef;\n loading?: PresentationRef;\n}\n\nexport interface DataViewSpec {\n meta: DataViewMeta;\n source: DataViewSource;\n view: DataViewConfig;\n states?: DataViewStates;\n policy?: { flags?: string[]; pii?: string[] };\n experiments?: ExperimentRef[];\n}\n\nfunction keyOf(spec: DataViewSpec) {\n return `${spec.meta.name}.v${spec.meta.version}`;\n}\n\nexport class DataViewRegistry {\n private readonly items = new Map<string, DataViewSpec>();\n\n register(spec: DataViewSpec): this {\n const key = keyOf(spec);\n if (this.items.has(key)) throw new Error(`Duplicate data view ${key}`);\n this.items.set(key, spec);\n return this;\n }\n\n list(): DataViewSpec[] {\n return [...this.items.values()];\n }\n\n get(name: string, version?: number): DataViewSpec | undefined {\n if (version != null) return this.items.get(`${name}.v${version}`);\n let candidate: DataViewSpec | undefined;\n let max = -Infinity;\n for (const spec of this.items.values()) {\n if (spec.meta.name !== name) continue;\n if (spec.meta.version > max) {\n max = spec.meta.version;\n candidate = spec;\n }\n }\n return candidate;\n }\n}\n\nexport function dataViewKey(spec: DataViewSpec) {\n return keyOf(spec);\n}\n\n"],"mappings":"AAgJA,SAAS,EAAM,EAAoB,CACjC,MAAO,GAAG,EAAK,KAAK,KAAK,IAAI,EAAK,KAAK,UAGzC,IAAa,EAAb,KAA8B,CAC5B,MAAyB,IAAI,IAE7B,SAAS,EAA0B,CACjC,IAAM,EAAM,EAAM,EAAK,CACvB,GAAI,KAAK,MAAM,IAAI,EAAI,CAAE,MAAU,MAAM,uBAAuB,IAAM,CAEtE,OADA,KAAK,MAAM,IAAI,EAAK,EAAK,CAClB,KAGT,MAAuB,CACrB,MAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAGjC,IAAI,EAAc,EAA4C,CAC5D,GAAI,GAAW,KAAM,OAAO,KAAK,MAAM,IAAI,GAAG,EAAK,IAAI,IAAU,CACjE,IAAIA,EACA,EAAM,KACV,IAAK,IAAM,KAAQ,KAAK,MAAM,QAAQ,CAChC,EAAK,KAAK,OAAS,GACnB,EAAK,KAAK,QAAU,IACtB,EAAM,EAAK,KAAK,QAChB,EAAY,GAGhB,OAAO,IAIX,SAAgB,EAAY,EAAoB,CAC9C,OAAO,EAAM,EAAK"}
1
+ {"version":3,"file":"data-views.js","names":["candidate: DataViewSpec | undefined"],"sources":["../src/data-views.ts"],"sourcesContent":["import type { OwnerShipMeta } from './ownership';\nimport type { OpRef, EventRef, PresentationRef } from './features';\nimport type { ExperimentRef } from './experiments/spec';\n\nexport type DataViewKind = 'list' | 'detail' | 'table' | 'grid';\n\nexport interface DataViewMeta extends OwnerShipMeta {\n /** Fully-qualified data view name (e.g., \"sigil.spaces.admin_list\"). */\n name: string;\n /** Version of this data view. Increment on breaking changes. */\n version: number;\n /** Canonical entity slug (e.g., \"space\", \"resident\"). */\n entity: string;\n}\n\nexport interface DataViewSource {\n /** Primary query used to fetch items for this view. */\n primary: OpRef;\n /** Optional operation used to fetch a single item (detail views). */\n item?: OpRef;\n /** Optional record mutation operations (used for inline editing or actions). */\n mutations?: {\n create?: OpRef;\n update?: OpRef;\n delete?: OpRef;\n };\n /** Events that should trigger refresh when emitted. */\n refreshEvents?: EventRef[];\n}\n\nexport type DataViewFieldFormat =\n | 'text'\n | 'number'\n | 'currency'\n | 'percentage'\n | 'date'\n | 'dateTime'\n | 'boolean'\n | 'badge';\n\nexport interface DataViewField {\n /** Unique identifier for the field within the view. */\n key: string;\n /** Human-friendly label for headers/tooltips. */\n label: string;\n /** Dot-path into the data item (e.g., \"address.city\"). */\n dataPath: string;\n /** Optional description surfaced in tooltips or docs. */\n description?: string;\n /** Optional formatting hint for renderers. */\n format?: DataViewFieldFormat;\n /** When true, the field can be used for sorting. */\n sortable?: boolean;\n /** When true, the field can be used for filtering. */\n filterable?: boolean;\n /** Optional width hint for table layouts. */\n width?: 'auto' | 'xs' | 'sm' | 'md' | 'lg';\n /** Optional presentation override (e.g., card component). */\n presentation?: PresentationRef;\n}\n\nexport interface DataViewFilter {\n key: string;\n label: string;\n field: string;\n type: 'search' | 'enum' | 'number' | 'date' | 'boolean';\n options?: { value: string; label: string }[];\n}\n\nexport interface DataViewAction {\n key: string;\n label: string;\n kind: 'navigation' | 'operation';\n /** Operation invoked when kind === 'operation'. */\n operation?: OpRef;\n /** Optional feature flag gating the action. */\n requiresFlag?: string;\n}\n\nexport interface DataViewSections {\n title?: string;\n description?: string;\n fields: string[];\n}\n\nexport interface DataViewBaseConfig {\n kind: DataViewKind;\n fields: DataViewField[];\n primaryField?: string;\n secondaryFields?: string[];\n filters?: DataViewFilter[];\n actions?: DataViewAction[];\n}\n\nexport interface DataViewListConfig extends DataViewBaseConfig {\n kind: 'list';\n layout?: 'card' | 'compact';\n}\n\nexport interface DataViewDetailConfig extends DataViewBaseConfig {\n kind: 'detail';\n sections?: DataViewSections[];\n}\n\nexport interface DataViewTableColumn {\n field: string;\n label?: string;\n width?: 'auto' | 'xs' | 'sm' | 'md' | 'lg';\n align?: 'left' | 'center' | 'right';\n}\n\nexport interface DataViewTableConfig extends DataViewBaseConfig {\n kind: 'table';\n columns?: DataViewTableColumn[];\n rowSelectable?: boolean;\n density?: 'comfortable' | 'compact';\n}\n\nexport interface DataViewGridConfig extends DataViewBaseConfig {\n kind: 'grid';\n columns?: number;\n}\n\nexport type DataViewConfig =\n | DataViewListConfig\n | DataViewDetailConfig\n | DataViewTableConfig\n | DataViewGridConfig;\n\nexport interface DataViewStates {\n empty?: PresentationRef;\n error?: PresentationRef;\n loading?: PresentationRef;\n}\n\nexport interface DataViewSpec {\n meta: DataViewMeta;\n source: DataViewSource;\n view: DataViewConfig;\n states?: DataViewStates;\n policy?: { flags?: string[]; pii?: string[] };\n experiments?: ExperimentRef[];\n}\n\nfunction keyOf(spec: DataViewSpec) {\n return `${spec.meta.name}.v${spec.meta.version}`;\n}\n\nexport class DataViewRegistry {\n private readonly items = new Map<string, DataViewSpec>();\n\n register(spec: DataViewSpec): this {\n const key = keyOf(spec);\n if (this.items.has(key)) throw new Error(`Duplicate data view ${key}`);\n this.items.set(key, spec);\n return this;\n }\n\n list(): DataViewSpec[] {\n return [...this.items.values()];\n }\n\n get(name: string, version?: number): DataViewSpec | undefined {\n if (version != null) return this.items.get(`${name}.v${version}`);\n let candidate: DataViewSpec | undefined;\n let max = -Infinity;\n for (const spec of this.items.values()) {\n if (spec.meta.name !== name) continue;\n if (spec.meta.version > max) {\n max = spec.meta.version;\n candidate = spec;\n }\n }\n return candidate;\n }\n}\n\nexport function dataViewKey(spec: DataViewSpec) {\n return keyOf(spec);\n}\n"],"mappings":"AAgJA,SAAS,EAAM,EAAoB,CACjC,MAAO,GAAG,EAAK,KAAK,KAAK,IAAI,EAAK,KAAK,UAGzC,IAAa,EAAb,KAA8B,CAC5B,MAAyB,IAAI,IAE7B,SAAS,EAA0B,CACjC,IAAM,EAAM,EAAM,EAAK,CACvB,GAAI,KAAK,MAAM,IAAI,EAAI,CAAE,MAAU,MAAM,uBAAuB,IAAM,CAEtE,OADA,KAAK,MAAM,IAAI,EAAK,EAAK,CAClB,KAGT,MAAuB,CACrB,MAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAGjC,IAAI,EAAc,EAA4C,CAC5D,GAAI,GAAW,KAAM,OAAO,KAAK,MAAM,IAAI,GAAG,EAAK,IAAI,IAAU,CACjE,IAAIA,EACA,EAAM,KACV,IAAK,IAAM,KAAQ,KAAK,MAAM,QAAQ,CAChC,EAAK,KAAK,OAAS,GACnB,EAAK,KAAK,QAAU,IACtB,EAAM,EAAK,KAAK,QAChB,EAAY,GAGhB,OAAO,IAIX,SAAgB,EAAY,EAAoB,CAC9C,OAAO,EAAM,EAAK"}
package/dist/events.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { OwnerShipMeta } from "./ownership.js";
2
+ import { AnySchemaModel } from "@lssm/lib.schema";
2
3
 
3
4
  //#region src/events.d.ts
4
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","names":[],"sources":["../src/events.ts"],"sourcesContent":[],"mappings":";;;;;AAOA;;;AAYc,UAZG,SAYH,CAAA,UAZuB,cAYvB,CAAA,CAAA;EAAa;EAIX,IAAA,EAAA,MAAA;EAAsB;EACvB,OAAA,EAAA,MAAA;EAAV;EACQ,WAAA,CAAA,EAAA,MAAA;EAAV;EAAS,GAAA,CAAA,EAAA,MAAA,EAAA;EAIK;EAeL,OAAA,EA3BD,CA2BC;EAEC;cA3BC;;;iBAIE,sBAAsB,mBACjC,UAAU,KACZ,UAAU;UAII;;;;;;;;;;;;WAYN;;KAGC,QAAA;;cAEC,6CAA4C"}
1
+ {"version":3,"file":"events.d.ts","names":[],"sources":["../src/events.ts"],"sourcesContent":[],"mappings":";;;;;;;AAOA;;AAUW,UAVM,SAUN,CAAA,UAV0B,cAU1B,CAAA,CAAA;EAEG;EAAa,IAAA,EAAA,MAAA;EAIX;EAAsB,OAAA,EAAA,MAAA;EACvB;EAAV,WAAA,CAAA,EAAA,MAAA;EACQ;EAAV,GAAA,CAAA,EAAA,MAAA,EAAA;EAAS;EAIK,OAAA,EAZN,CAYM;EAeL;EAEC,SAAA,CAAA,EA3BC,aA2B2C;;;iBAvBzC,sBAAsB,mBACjC,UAAU,KACZ,UAAU;UAII;;;;;;;;;;;;WAYN;;KAGC,QAAA;;cAEC,6CAA4C"}
package/dist/events.js CHANGED
@@ -1,2 +1,2 @@
1
- import"./schema/src/index.js";function e(e){return e}const t=(e,t)=>`${e}.v${t}`;export{e as defineEvent,t as eventKey};
1
+ import"./schema/dist/index.js";function e(e){return e}const t=(e,t)=>`${e}.v${t}`;export{e as defineEvent,t as eventKey};
2
2
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":[],"sources":["../src/events.ts"],"sourcesContent":["import { type AnySchemaModel } from '@lssm/lib.schema';\nimport type { OwnerShipMeta } from './ownership';\n\n/**\n * Typed event specification. Declare once, validate payloads at publish time,\n * and guard emissions via the contracts runtime.\n */\nexport interface EventSpec<T extends AnySchemaModel> {\n /** Fully-qualified event name, e.g. \"sigil.magic_link.created\". */\n name: string;\n /** Event payload version. Bump on any breaking payload change. */\n version: number;\n /** Short human-friendly summary. */\n description?: string;\n /** JSON-like paths to redact from logs/exports. */\n pii?: string[];\n /** Event payload schema from @lssm/lib.schema. */\n payload: T;\n /** Optional ownership metadata for governance and docs. */\n ownership?: OwnerShipMeta;\n}\n\n/** Identity function to keep type inference when declaring events. */\nexport function defineEvent<T extends AnySchemaModel>(\n e: EventSpec<T>\n): EventSpec<T> {\n return e;\n}\n\nexport interface EventEnvelope<T> {\n /** Unique identifier for the published event (UUID recommended). */\n id: string;\n /** ISO timestamp when the event occurred. */\n occurredAt: string;\n /** Optional trace identifier for correlating across services. */\n traceId?: string;\n /** Event name as published (should match spec.name). */\n name: string;\n /** Event version as published (should match spec.version). */\n version: number;\n /** Validated payload. */\n payload: T;\n}\n\nexport type EventKey = `${string}.v${number}`;\n/** Build a stable string key for an event name/version pair. */\nexport const eventKey = (name: string, version: number): EventKey =>\n `${name}.v${version}`;\n"],"mappings":"8BAuBA,SAAgB,EACd,EACc,CACd,OAAO,EAoBT,MAAa,GAAY,EAAc,IACrC,GAAG,EAAK,IAAI"}
1
+ {"version":3,"file":"events.js","names":[],"sources":["../src/events.ts"],"sourcesContent":["import { type AnySchemaModel } from '@lssm/lib.schema';\nimport type { OwnerShipMeta } from './ownership';\n\n/**\n * Typed event specification. Declare once, validate payloads at publish time,\n * and guard emissions via the contracts runtime.\n */\nexport interface EventSpec<T extends AnySchemaModel> {\n /** Fully-qualified event name, e.g. \"sigil.magic_link.created\". */\n name: string;\n /** Event payload version. Bump on any breaking payload change. */\n version: number;\n /** Short human-friendly summary. */\n description?: string;\n /** JSON-like paths to redact from logs/exports. */\n pii?: string[];\n /** Event payload schema from @lssm/lib.schema. */\n payload: T;\n /** Optional ownership metadata for governance and docs. */\n ownership?: OwnerShipMeta;\n}\n\n/** Identity function to keep type inference when declaring events. */\nexport function defineEvent<T extends AnySchemaModel>(\n e: EventSpec<T>\n): EventSpec<T> {\n return e;\n}\n\nexport interface EventEnvelope<T> {\n /** Unique identifier for the published event (UUID recommended). */\n id: string;\n /** ISO timestamp when the event occurred. */\n occurredAt: string;\n /** Optional trace identifier for correlating across services. */\n traceId?: string;\n /** Event name as published (should match spec.name). */\n name: string;\n /** Event version as published (should match spec.version). */\n version: number;\n /** Validated payload. */\n payload: T;\n}\n\nexport type EventKey = `${string}.v${number}`;\n/** Build a stable string key for an event name/version pair. */\nexport const eventKey = (name: string, version: number): EventKey =>\n `${name}.v${version}`;\n"],"mappings":"+BAuBA,SAAgB,EACd,EACc,CACd,OAAO,EAoBT,MAAa,GAAY,EAAc,IACrC,GAAG,EAAK,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.d.ts","names":[],"sources":["../../src/experiments/evaluator.ts"],"sourcesContent":[],"mappings":";;;;UAIiB,iBAAA;;EAAA,OAAA,CAAA,EAAA,MAAA;EAUA,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAKA,cAAA,CAAA,EAAA,MAAA,GAAA,IAAyB;EAC9B,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EACe,UAAA,CAAA,EAXZ,MAWY,CAAA,MAAA,EAAA,OAAA,CAAA;EAAoB,KAAA,CAAA,EAAA,MAAA,EAAA;;AACO,UARrC,oBAAA,CAQqC;EAAiB,OAAA,EAP5D,iBAO4D;EAG1D,MAAA,EAAA,SAAA,GAAA,QAAmB,GAAA,QAAA,GAAA,UAAA;;AAWD,UAjBd,yBAAA,CAiBc;EAA4B,QAAA,EAhB/C,kBAgB+C;EAAR,aAAA,CAAA,EAAA,CAAA,MAAA,EAfxB,SAewB,EAAA,OAAA,EAfJ,iBAeI,EAAA,GAfkB,OAelB,CAAA,OAAA,CAAA,GAAA,OAAA;EAAO,mBAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAdJ,iBAcI,EAAA,GAAA,OAAA;;cAX7C,mBAAA;;;;sBAKS;yBAMS,oBAAoB,QAAQ"}
1
+ {"version":3,"file":"evaluator.d.ts","names":[],"sources":["../../src/experiments/evaluator.ts"],"sourcesContent":[],"mappings":";;;;UASiB,iBAAA;;EAAA,OAAA,CAAA,EAAA,MAAA;EAUA,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAKA,cAAA,CAAA,EAAA,MAAA,GAAA,IAAyB;EAC9B,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAEA,UAAA,CAAA,EAZG,MAYH,CAAA,MAAA,EAAA,OAAA,CAAA;EACC,KAAA,CAAA,EAAA,MAAA,EAAA;;AAIA,UAbI,oBAAA,CAaJ;EAAiB,OAAA,EAZnB,iBAYmB;EAIjB,MAAA,EAAA,SAAA,GAAA,QAAmB,GAAA,QAAA,GAAA,UAAA;;AAYnB,UAxBI,yBAAA,CAwBJ;EACA,QAAA,EAxBD,kBAwBC;EAAR,aAAA,CAAA,EAAA,CAAA,MAAA,EAtBO,SAsBP,EAAA,OAAA,EArBQ,iBAqBR,EAAA,GApBE,OAoBF,CAAA,OAAA,CAAA,GAAA,OAAA;EAAO,mBAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAjBC,iBAiBD,EAAA,GAAA,OAAA;;cAbC,mBAAA;;;;sBAKS;yBAOT,oBACR,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.js","names":[],"sources":["../../src/experiments/evaluator.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport type { PolicyRef } from '../policy/spec';\nimport type { ExperimentRegistry, ExperimentSpec, ExperimentVariant, TargetingRule } from './spec';\n\nexport interface ExperimentContext {\n experiment: string;\n version?: number;\n userId?: string | null;\n organizationId?: string | null;\n sessionId?: string | null;\n attributes?: Record<string, unknown>;\n flags?: string[];\n}\n\nexport interface ExperimentEvaluation {\n variant: ExperimentVariant;\n reason: 'control' | 'random' | 'sticky' | 'targeted';\n}\n\nexport interface ExperimentEvaluatorConfig {\n registry: ExperimentRegistry;\n policyChecker?: (policy: PolicyRef, context: ExperimentContext) => Promise<boolean> | boolean;\n expressionEvaluator?: (expression: string, context: ExperimentContext) => boolean;\n}\n\nexport class ExperimentEvaluator {\n private readonly registry: ExperimentRegistry;\n private readonly policyChecker?: ExperimentEvaluatorConfig['policyChecker'];\n private readonly expressionEvaluator?: ExperimentEvaluatorConfig['expressionEvaluator'];\n\n constructor(config: ExperimentEvaluatorConfig) {\n this.registry = config.registry;\n this.policyChecker = config.policyChecker;\n this.expressionEvaluator = config.expressionEvaluator;\n }\n\n async chooseVariant(context: ExperimentContext): Promise<ExperimentEvaluation | null> {\n const experiment = this.registry.get(context.experiment, context.version);\n if (!experiment) return null;\n\n const control = experiment.variants.find((variant) => variant.id === experiment.controlVariant);\n if (!control) throw new Error(`Experiment ${experiment.meta.name} missing control variant ${experiment.controlVariant}`);\n\n switch (experiment.allocation.type) {\n case 'random':\n return {\n variant: this.pickByWeight(experiment, this.randomSeed(context, experiment.allocation.salt)),\n reason: 'random',\n };\n case 'sticky':\n return {\n variant: this.pickByWeight(\n experiment,\n this.stickySeed(context, experiment.allocation.attribute, experiment.allocation.salt)\n ),\n reason: 'sticky',\n };\n case 'targeted':\n {\n const targeted = await this.evaluateTargeting(experiment, context, experiment.allocation.rules);\n if (targeted) {\n return {\n variant: targeted,\n reason: 'targeted',\n };\n }\n if (experiment.allocation.fallback === 'random') {\n return {\n variant: this.pickByWeight(experiment, this.randomSeed(context)),\n reason: 'random',\n };\n }\n return {\n variant: control,\n reason: 'control',\n };\n }\n default:\n return {\n variant: control,\n reason: 'control',\n };\n }\n }\n\n private pickByWeight(experiment: ExperimentSpec, seed: number): ExperimentVariant {\n const variants = experiment.variants;\n const totalWeight = variants.reduce((sum, variant) => sum + (variant.weight ?? 1), 0);\n const target = seed * totalWeight;\n let cumulative = 0;\n for (const variant of variants) {\n cumulative += variant.weight ?? 1;\n if (target <= cumulative) {\n return variant;\n }\n }\n return variants[variants.length - 1]!;\n }\n\n private randomSeed(context: ExperimentContext, salt = ''): number {\n const base =\n context.sessionId ??\n context.userId ??\n context.organizationId ??\n `${Date.now()}-${Math.random()}`;\n return this.hashToUnitInterval(base + salt);\n }\n\n private stickySeed(context: ExperimentContext, attribute: 'userId' | 'organizationId' | 'sessionId', salt = ''): number {\n const value = context[attribute];\n if (!value) return this.randomSeed(context, salt);\n return this.hashToUnitInterval(`${value}-${salt}`);\n }\n\n private hashToUnitInterval(value: string): number {\n const hash = createHash('sha256').update(value).digest('hex').slice(0, 15);\n const intValue = parseInt(hash, 16);\n return (intValue % 1_000_000) / 1_000_000;\n }\n\n private async evaluateTargeting(\n experiment: ExperimentSpec,\n context: ExperimentContext,\n rules: TargetingRule[]\n ): Promise<ExperimentVariant | null> {\n for (const rule of rules) {\n if (!(await this.matchesRule(rule, context))) continue;\n const variant = experiment.variants.find((v) => v.id === rule.variantId);\n if (!variant) continue;\n if (typeof rule.percentage === 'number') {\n const seed = this.randomSeed(context, `rule-${rule.variantId}`);\n if (seed > rule.percentage) {\n continue;\n }\n }\n return variant;\n }\n return null;\n }\n\n private async matchesRule(rule: TargetingRule, context: ExperimentContext): Promise<boolean> {\n if (rule.policy && this.policyChecker) {\n const allowed = await this.policyChecker(rule.policy, context);\n if (!allowed) return false;\n }\n if (rule.expression) {\n if (this.expressionEvaluator) {\n return Boolean(this.expressionEvaluator(rule.expression, context));\n }\n try {\n const fn = new Function('context', `return (${rule.expression});`);\n return Boolean(fn(context));\n } catch (_error) {\n return false;\n }\n }\n return true;\n }\n}\n\n"],"mappings":"yCAyBA,IAAa,EAAb,KAAiC,CAC/B,SACA,cACA,oBAEA,YAAY,EAAmC,CAC7C,KAAK,SAAW,EAAO,SACvB,KAAK,cAAgB,EAAO,cAC5B,KAAK,oBAAsB,EAAO,oBAGpC,MAAM,cAAc,EAAkE,CACpF,IAAM,EAAa,KAAK,SAAS,IAAI,EAAQ,WAAY,EAAQ,QAAQ,CACzE,GAAI,CAAC,EAAY,OAAO,KAExB,IAAM,EAAU,EAAW,SAAS,KAAM,GAAY,EAAQ,KAAO,EAAW,eAAe,CAC/F,GAAI,CAAC,EAAS,MAAU,MAAM,cAAc,EAAW,KAAK,KAAK,2BAA2B,EAAW,iBAAiB,CAExH,OAAQ,EAAW,WAAW,KAA9B,CACE,IAAK,SACH,MAAO,CACL,QAAS,KAAK,aAAa,EAAY,KAAK,WAAW,EAAS,EAAW,WAAW,KAAK,CAAC,CAC5F,OAAQ,SACT,CACH,IAAK,SACH,MAAO,CACL,QAAS,KAAK,aACZ,EACA,KAAK,WAAW,EAAS,EAAW,WAAW,UAAW,EAAW,WAAW,KAAK,CACtF,CACD,OAAQ,SACT,CACH,IAAK,WACH,CACE,IAAM,EAAW,MAAM,KAAK,kBAAkB,EAAY,EAAS,EAAW,WAAW,MAAM,CAa/F,OAZI,EACK,CACL,QAAS,EACT,OAAQ,WACT,CAEC,EAAW,WAAW,WAAa,SAC9B,CACL,QAAS,KAAK,aAAa,EAAY,KAAK,WAAW,EAAQ,CAAC,CAChE,OAAQ,SACT,CAEI,CACL,QAAS,EACT,OAAQ,UACT,CAEL,QACE,MAAO,CACL,QAAS,EACT,OAAQ,UACT,EAIP,aAAqB,EAA4B,EAAiC,CAChF,IAAM,EAAW,EAAW,SAEtB,EAAS,EADK,EAAS,QAAQ,EAAK,IAAY,GAAO,EAAQ,QAAU,GAAI,EAAE,CAEjF,EAAa,EACjB,IAAK,IAAM,KAAW,EAEpB,GADA,GAAc,EAAQ,QAAU,EAC5B,GAAU,EACZ,OAAO,EAGX,OAAO,EAAS,EAAS,OAAS,GAGpC,WAAmB,EAA4B,EAAO,GAAY,CAChE,IAAM,EACJ,EAAQ,WACR,EAAQ,QACR,EAAQ,gBACR,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,QAAQ,GAChC,OAAO,KAAK,mBAAmB,EAAO,EAAK,CAG7C,WAAmB,EAA4B,EAAsD,EAAO,GAAY,CACtH,IAAM,EAAQ,EAAQ,GAEtB,OADK,EACE,KAAK,mBAAmB,GAAG,EAAM,GAAG,IAAO,CAD/B,KAAK,WAAW,EAAS,EAAK,CAInD,mBAA2B,EAAuB,CAChD,IAAM,EAAO,EAAW,SAAS,CAAC,OAAO,EAAM,CAAC,OAAO,MAAM,CAAC,MAAM,EAAG,GAAG,CAE1E,OADiB,SAAS,EAAM,GAAG,CAChB,IAAa,IAGlC,MAAc,kBACZ,EACA,EACA,EACmC,CACnC,IAAK,IAAM,KAAQ,EAAO,CACxB,GAAI,CAAE,MAAM,KAAK,YAAY,EAAM,EAAQ,CAAG,SAC9C,IAAM,EAAU,EAAW,SAAS,KAAM,GAAM,EAAE,KAAO,EAAK,UAAU,CACnE,QACD,OAAO,EAAK,YAAe,UAChB,KAAK,WAAW,EAAS,QAAQ,EAAK,YAAY,CACpD,EAAK,YAIlB,OAAO,EAET,OAAO,KAGT,MAAc,YAAY,EAAqB,EAA8C,CAC3F,GAAI,EAAK,QAAU,KAAK,eAElB,CADY,MAAM,KAAK,cAAc,EAAK,OAAQ,EAAQ,CAChD,MAAO,GAEvB,GAAI,EAAK,WAAY,CACnB,GAAI,KAAK,oBACP,MAAO,EAAQ,KAAK,oBAAoB,EAAK,WAAY,EAAQ,CAEnE,GAAI,CAEF,MAAO,EADQ,SAAS,UAAW,WAAW,EAAK,WAAW,IAAI,CAChD,EAAQ,MACX,CACf,MAAO,IAGX,MAAO"}
1
+ {"version":3,"file":"evaluator.js","names":[],"sources":["../../src/experiments/evaluator.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport type { PolicyRef } from '../policy/spec';\nimport type {\n ExperimentRegistry,\n ExperimentSpec,\n ExperimentVariant,\n TargetingRule,\n} from './spec';\n\nexport interface ExperimentContext {\n experiment: string;\n version?: number;\n userId?: string | null;\n organizationId?: string | null;\n sessionId?: string | null;\n attributes?: Record<string, unknown>;\n flags?: string[];\n}\n\nexport interface ExperimentEvaluation {\n variant: ExperimentVariant;\n reason: 'control' | 'random' | 'sticky' | 'targeted';\n}\n\nexport interface ExperimentEvaluatorConfig {\n registry: ExperimentRegistry;\n policyChecker?: (\n policy: PolicyRef,\n context: ExperimentContext\n ) => Promise<boolean> | boolean;\n expressionEvaluator?: (\n expression: string,\n context: ExperimentContext\n ) => boolean;\n}\n\nexport class ExperimentEvaluator {\n private readonly registry: ExperimentRegistry;\n private readonly policyChecker?: ExperimentEvaluatorConfig['policyChecker'];\n private readonly expressionEvaluator?: ExperimentEvaluatorConfig['expressionEvaluator'];\n\n constructor(config: ExperimentEvaluatorConfig) {\n this.registry = config.registry;\n this.policyChecker = config.policyChecker;\n this.expressionEvaluator = config.expressionEvaluator;\n }\n\n async chooseVariant(\n context: ExperimentContext\n ): Promise<ExperimentEvaluation | null> {\n const experiment = this.registry.get(context.experiment, context.version);\n if (!experiment) return null;\n\n const control = experiment.variants.find(\n (variant) => variant.id === experiment.controlVariant\n );\n if (!control)\n throw new Error(\n `Experiment ${experiment.meta.name} missing control variant ${experiment.controlVariant}`\n );\n\n switch (experiment.allocation.type) {\n case 'random':\n return {\n variant: this.pickByWeight(\n experiment,\n this.randomSeed(context, experiment.allocation.salt)\n ),\n reason: 'random',\n };\n case 'sticky':\n return {\n variant: this.pickByWeight(\n experiment,\n this.stickySeed(\n context,\n experiment.allocation.attribute,\n experiment.allocation.salt\n )\n ),\n reason: 'sticky',\n };\n case 'targeted': {\n const targeted = await this.evaluateTargeting(\n experiment,\n context,\n experiment.allocation.rules\n );\n if (targeted) {\n return {\n variant: targeted,\n reason: 'targeted',\n };\n }\n if (experiment.allocation.fallback === 'random') {\n return {\n variant: this.pickByWeight(experiment, this.randomSeed(context)),\n reason: 'random',\n };\n }\n return {\n variant: control,\n reason: 'control',\n };\n }\n default:\n return {\n variant: control,\n reason: 'control',\n };\n }\n }\n\n private pickByWeight(\n experiment: ExperimentSpec,\n seed: number\n ): ExperimentVariant {\n const variants = experiment.variants;\n const totalWeight = variants.reduce(\n (sum, variant) => sum + (variant.weight ?? 1),\n 0\n );\n const target = seed * totalWeight;\n let cumulative = 0;\n for (const variant of variants) {\n cumulative += variant.weight ?? 1;\n if (target <= cumulative) {\n return variant;\n }\n }\n return variants[variants.length - 1]!;\n }\n\n private randomSeed(context: ExperimentContext, salt = ''): number {\n const base =\n context.sessionId ??\n context.userId ??\n context.organizationId ??\n `${Date.now()}-${Math.random()}`;\n return this.hashToUnitInterval(base + salt);\n }\n\n private stickySeed(\n context: ExperimentContext,\n attribute: 'userId' | 'organizationId' | 'sessionId',\n salt = ''\n ): number {\n const value = context[attribute];\n if (!value) return this.randomSeed(context, salt);\n return this.hashToUnitInterval(`${value}-${salt}`);\n }\n\n private hashToUnitInterval(value: string): number {\n const hash = createHash('sha256').update(value).digest('hex').slice(0, 15);\n const intValue = parseInt(hash, 16);\n return (intValue % 1_000_000) / 1_000_000;\n }\n\n private async evaluateTargeting(\n experiment: ExperimentSpec,\n context: ExperimentContext,\n rules: TargetingRule[]\n ): Promise<ExperimentVariant | null> {\n for (const rule of rules) {\n if (!(await this.matchesRule(rule, context))) continue;\n const variant = experiment.variants.find((v) => v.id === rule.variantId);\n if (!variant) continue;\n if (typeof rule.percentage === 'number') {\n const seed = this.randomSeed(context, `rule-${rule.variantId}`);\n if (seed > rule.percentage) {\n continue;\n }\n }\n return variant;\n }\n return null;\n }\n\n private async matchesRule(\n rule: TargetingRule,\n context: ExperimentContext\n ): Promise<boolean> {\n if (rule.policy && this.policyChecker) {\n const allowed = await this.policyChecker(rule.policy, context);\n if (!allowed) return false;\n }\n if (rule.expression) {\n if (this.expressionEvaluator) {\n return Boolean(this.expressionEvaluator(rule.expression, context));\n }\n try {\n const fn = new Function('context', `return (${rule.expression});`);\n return Boolean(fn(context));\n } catch (_error) {\n return false;\n }\n }\n return true;\n }\n}\n"],"mappings":"yCAoCA,IAAa,EAAb,KAAiC,CAC/B,SACA,cACA,oBAEA,YAAY,EAAmC,CAC7C,KAAK,SAAW,EAAO,SACvB,KAAK,cAAgB,EAAO,cAC5B,KAAK,oBAAsB,EAAO,oBAGpC,MAAM,cACJ,EACsC,CACtC,IAAM,EAAa,KAAK,SAAS,IAAI,EAAQ,WAAY,EAAQ,QAAQ,CACzE,GAAI,CAAC,EAAY,OAAO,KAExB,IAAM,EAAU,EAAW,SAAS,KACjC,GAAY,EAAQ,KAAO,EAAW,eACxC,CACD,GAAI,CAAC,EACH,MAAU,MACR,cAAc,EAAW,KAAK,KAAK,2BAA2B,EAAW,iBAC1E,CAEH,OAAQ,EAAW,WAAW,KAA9B,CACE,IAAK,SACH,MAAO,CACL,QAAS,KAAK,aACZ,EACA,KAAK,WAAW,EAAS,EAAW,WAAW,KAAK,CACrD,CACD,OAAQ,SACT,CACH,IAAK,SACH,MAAO,CACL,QAAS,KAAK,aACZ,EACA,KAAK,WACH,EACA,EAAW,WAAW,UACtB,EAAW,WAAW,KACvB,CACF,CACD,OAAQ,SACT,CACH,IAAK,WAAY,CACf,IAAM,EAAW,MAAM,KAAK,kBAC1B,EACA,EACA,EAAW,WAAW,MACvB,CAaD,OAZI,EACK,CACL,QAAS,EACT,OAAQ,WACT,CAEC,EAAW,WAAW,WAAa,SAC9B,CACL,QAAS,KAAK,aAAa,EAAY,KAAK,WAAW,EAAQ,CAAC,CAChE,OAAQ,SACT,CAEI,CACL,QAAS,EACT,OAAQ,UACT,CAEH,QACE,MAAO,CACL,QAAS,EACT,OAAQ,UACT,EAIP,aACE,EACA,EACmB,CACnB,IAAM,EAAW,EAAW,SAKtB,EAAS,EAJK,EAAS,QAC1B,EAAK,IAAY,GAAO,EAAQ,QAAU,GAC3C,EACD,CAEG,EAAa,EACjB,IAAK,IAAM,KAAW,EAEpB,GADA,GAAc,EAAQ,QAAU,EAC5B,GAAU,EACZ,OAAO,EAGX,OAAO,EAAS,EAAS,OAAS,GAGpC,WAAmB,EAA4B,EAAO,GAAY,CAChE,IAAM,EACJ,EAAQ,WACR,EAAQ,QACR,EAAQ,gBACR,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,QAAQ,GAChC,OAAO,KAAK,mBAAmB,EAAO,EAAK,CAG7C,WACE,EACA,EACA,EAAO,GACC,CACR,IAAM,EAAQ,EAAQ,GAEtB,OADK,EACE,KAAK,mBAAmB,GAAG,EAAM,GAAG,IAAO,CAD/B,KAAK,WAAW,EAAS,EAAK,CAInD,mBAA2B,EAAuB,CAChD,IAAM,EAAO,EAAW,SAAS,CAAC,OAAO,EAAM,CAAC,OAAO,MAAM,CAAC,MAAM,EAAG,GAAG,CAE1E,OADiB,SAAS,EAAM,GAAG,CAChB,IAAa,IAGlC,MAAc,kBACZ,EACA,EACA,EACmC,CACnC,IAAK,IAAM,KAAQ,EAAO,CACxB,GAAI,CAAE,MAAM,KAAK,YAAY,EAAM,EAAQ,CAAG,SAC9C,IAAM,EAAU,EAAW,SAAS,KAAM,GAAM,EAAE,KAAO,EAAK,UAAU,CACnE,QACD,OAAO,EAAK,YAAe,UAChB,KAAK,WAAW,EAAS,QAAQ,EAAK,YAAY,CACpD,EAAK,YAIlB,OAAO,EAET,OAAO,KAGT,MAAc,YACZ,EACA,EACkB,CAClB,GAAI,EAAK,QAAU,KAAK,eAElB,CADY,MAAM,KAAK,cAAc,EAAK,OAAQ,EAAQ,CAChD,MAAO,GAEvB,GAAI,EAAK,WAAY,CACnB,GAAI,KAAK,oBACP,MAAO,EAAQ,KAAK,oBAAoB,EAAK,WAAY,EAAQ,CAEnE,GAAI,CAEF,MAAO,EADQ,SAAS,UAAW,WAAW,EAAK,WAAW,IAAI,CAChD,EAAQ,MACX,CACf,MAAO,IAGX,MAAO"}
@@ -0,0 +1,17 @@
1
+ import { ResourceRefDescriptor } from "../resources.js";
2
+ import { ContractSpec, OpKind } from "../spec.js";
3
+ import { HandlerCtx } from "../types.js";
4
+ import { AnySchemaModel } from "@lssm/lib.schema";
5
+
6
+ //#region src/experiments/spec-resolver.d.ts
7
+ type RuntimeContract = ContractSpec<AnySchemaModel, AnySchemaModel | ResourceRefDescriptor<boolean>>;
8
+ interface SpecVariantResolver {
9
+ resolve(operation: {
10
+ name: string;
11
+ version: number;
12
+ kind: OpKind;
13
+ }, ctx: HandlerCtx): Promise<RuntimeContract | undefined> | RuntimeContract | undefined;
14
+ }
15
+ //#endregion
16
+ export { RuntimeContract, SpecVariantResolver };
17
+ //# sourceMappingURL=spec-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-resolver.d.ts","names":[],"sources":["../../src/experiments/spec-resolver.ts"],"sourcesContent":[],"mappings":";;;;;;KAKY,eAAA,GAAkB,aAC5B,gBACA,iBAAiB;UAGF,mBAAA;EALL,OAAA,CAAA,SAAA,EAAe;IACzB,IAAA,EAAA,MAAA;IACA,OAAA,EAAA,MAAA;IAAiB,IAAA,EAKmC,MALnC;EAFW,CAAA,EAAA,GAAA,EAQrB,UARqB,CAAA,EASzB,OATyB,CASjB,eATiB,GAAA,SAAA,CAAA,GASc,eATd,GAAA,SAAA"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"spec.js","names":["latest: ExperimentSpec | undefined"],"sources":["../../src/experiments/spec.ts"],"sourcesContent":["import type { OwnerShipMeta } from '../ownership';\nimport type { PolicyRef } from '../policy/spec';\nimport type { TelemetryEventDef } from '../telemetry/spec';\n\nexport interface ExperimentMeta extends OwnerShipMeta {\n /** Fully-qualified experiment name (e.g., \"sigil.onboarding.variant\"). */\n name: string;\n /** Version of the experiment; bump when allocation or variants change materially. */\n version: number;\n /** Domain/bounded context (e.g., \"onboarding\"). */\n domain: string;\n}\n\nexport interface ExperimentRef {\n name: string;\n version?: number;\n}\n\nexport type ExperimentOverrideType =\n | 'dataView'\n | 'workflow'\n | 'theme'\n | 'policy'\n | 'presentation';\n\nexport interface ExperimentOverride {\n type: ExperimentOverrideType;\n /** Target spec meta name (e.g., DataViewSpec.meta.name). */\n target: string;\n /** Target version. Optional; evaluator may choose latest when omitted. */\n version?: number;\n /** Optional configuration applied when this variant is active. */\n config?: Record<string, unknown>;\n}\n\nexport interface ExperimentVariant {\n id: string;\n name: string;\n description?: string;\n /** Relative weight for random allocation (defaults to 1). */\n weight?: number;\n overrides?: ExperimentOverride[];\n /** Optional metadata for downstream analytics/UI. */\n metadata?: Record<string, unknown>;\n}\n\nexport interface TargetingRule {\n /** Variant to assign when rule matches. */\n variantId: string;\n /** Optional percentage of matching traffic (0-1). If omitted, 100%. */\n percentage?: number;\n /** Policies that must allow the assignment. */\n policy?: PolicyRef;\n /** Expression evaluated against context (see evaluator for details). */\n expression?: string;\n}\n\nexport type AllocationStrategy =\n | {\n type: 'random';\n /** Optional salt for deterministic hashing. */\n salt?: string;\n }\n | {\n type: 'sticky';\n /** Which attribute to hash for sticky assignment. */\n attribute: 'userId' | 'organizationId' | 'sessionId';\n salt?: string;\n }\n | {\n type: 'targeted';\n rules: TargetingRule[];\n fallback?: 'control' | 'random';\n };\n\nexport type MetricAggregation = 'count' | 'avg' | 'p75' | 'p90' | 'p95' | 'p99';\n\nexport interface SuccessMetric {\n name: string;\n telemetryEvent: { name: TelemetryEventDef['name']; version: number };\n aggregation: MetricAggregation;\n target?: number;\n}\n\nexport interface ExperimentSpec {\n meta: ExperimentMeta;\n /** Identifier of the control variant (must exist in variants array). */\n controlVariant: string;\n variants: ExperimentVariant[];\n allocation: AllocationStrategy;\n successMetrics?: SuccessMetric[];\n tags?: string[];\n}\n\nconst experimentKey = (meta: ExperimentMeta) => `${meta.name}.v${meta.version}`;\n\nexport class ExperimentRegistry {\n private readonly items = new Map<string, ExperimentSpec>();\n\n register(spec: ExperimentSpec): this {\n const key = experimentKey(spec.meta);\n if (this.items.has(key)) {\n throw new Error(`Duplicate experiment ${key}`);\n }\n this.items.set(key, spec);\n return this;\n }\n\n list(): ExperimentSpec[] {\n return [...this.items.values()];\n }\n\n get(name: string, version?: number): ExperimentSpec | undefined {\n if (version != null) {\n return this.items.get(`${name}.v${version}`);\n }\n let latest: ExperimentSpec | undefined;\n let maxVersion = -Infinity;\n for (const spec of this.items.values()) {\n if (spec.meta.name !== name) continue;\n if (spec.meta.version > maxVersion) {\n maxVersion = spec.meta.version;\n latest = spec;\n }\n }\n return latest;\n }\n}\n\nexport function makeExperimentKey(meta: ExperimentMeta) {\n return experimentKey(meta);\n}\n\n"],"mappings":"AA8FA,MAAM,EAAiB,GAAyB,GAAG,EAAK,KAAK,IAAI,EAAK,UAEtE,IAAa,EAAb,KAAgC,CAC9B,MAAyB,IAAI,IAE7B,SAAS,EAA4B,CACnC,IAAM,EAAM,EAAc,EAAK,KAAK,CACpC,GAAI,KAAK,MAAM,IAAI,EAAI,CACrB,MAAU,MAAM,wBAAwB,IAAM,CAGhD,OADA,KAAK,MAAM,IAAI,EAAK,EAAK,CAClB,KAGT,MAAyB,CACvB,MAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAGjC,IAAI,EAAc,EAA8C,CAC9D,GAAI,GAAW,KACb,OAAO,KAAK,MAAM,IAAI,GAAG,EAAK,IAAI,IAAU,CAE9C,IAAIA,EACA,EAAa,KACjB,IAAK,IAAM,KAAQ,KAAK,MAAM,QAAQ,CAChC,EAAK,KAAK,OAAS,GACnB,EAAK,KAAK,QAAU,IACtB,EAAa,EAAK,KAAK,QACvB,EAAS,GAGb,OAAO,IAIX,SAAgB,EAAkB,EAAsB,CACtD,OAAO,EAAc,EAAK"}
1
+ {"version":3,"file":"spec.js","names":["latest: ExperimentSpec | undefined"],"sources":["../../src/experiments/spec.ts"],"sourcesContent":["import type { OwnerShipMeta } from '../ownership';\nimport type { PolicyRef } from '../policy/spec';\nimport type { TelemetryEventDef } from '../telemetry/spec';\n\nexport interface ExperimentMeta extends OwnerShipMeta {\n /** Fully-qualified experiment name (e.g., \"sigil.onboarding.variant\"). */\n name: string;\n /** Version of the experiment; bump when allocation or variants change materially. */\n version: number;\n /** Domain/bounded context (e.g., \"onboarding\"). */\n domain: string;\n}\n\nexport interface ExperimentRef {\n name: string;\n version?: number;\n}\n\nexport type ExperimentOverrideType =\n | 'dataView'\n | 'workflow'\n | 'theme'\n | 'policy'\n | 'presentation';\n\nexport interface ExperimentOverride {\n type: ExperimentOverrideType;\n /** Target spec meta name (e.g., DataViewSpec.meta.name). */\n target: string;\n /** Target version. Optional; evaluator may choose latest when omitted. */\n version?: number;\n /** Optional configuration applied when this variant is active. */\n config?: Record<string, unknown>;\n}\n\nexport interface ExperimentVariant {\n id: string;\n name: string;\n description?: string;\n /** Relative weight for random allocation (defaults to 1). */\n weight?: number;\n overrides?: ExperimentOverride[];\n /** Optional metadata for downstream analytics/UI. */\n metadata?: Record<string, unknown>;\n}\n\nexport interface TargetingRule {\n /** Variant to assign when rule matches. */\n variantId: string;\n /** Optional percentage of matching traffic (0-1). If omitted, 100%. */\n percentage?: number;\n /** Policies that must allow the assignment. */\n policy?: PolicyRef;\n /** Expression evaluated against context (see evaluator for details). */\n expression?: string;\n}\n\nexport type AllocationStrategy =\n | {\n type: 'random';\n /** Optional salt for deterministic hashing. */\n salt?: string;\n }\n | {\n type: 'sticky';\n /** Which attribute to hash for sticky assignment. */\n attribute: 'userId' | 'organizationId' | 'sessionId';\n salt?: string;\n }\n | {\n type: 'targeted';\n rules: TargetingRule[];\n fallback?: 'control' | 'random';\n };\n\nexport type MetricAggregation = 'count' | 'avg' | 'p75' | 'p90' | 'p95' | 'p99';\n\nexport interface SuccessMetric {\n name: string;\n telemetryEvent: { name: TelemetryEventDef['name']; version: number };\n aggregation: MetricAggregation;\n target?: number;\n}\n\nexport interface ExperimentSpec {\n meta: ExperimentMeta;\n /** Identifier of the control variant (must exist in variants array). */\n controlVariant: string;\n variants: ExperimentVariant[];\n allocation: AllocationStrategy;\n successMetrics?: SuccessMetric[];\n tags?: string[];\n}\n\nconst experimentKey = (meta: ExperimentMeta) => `${meta.name}.v${meta.version}`;\n\nexport class ExperimentRegistry {\n private readonly items = new Map<string, ExperimentSpec>();\n\n register(spec: ExperimentSpec): this {\n const key = experimentKey(spec.meta);\n if (this.items.has(key)) {\n throw new Error(`Duplicate experiment ${key}`);\n }\n this.items.set(key, spec);\n return this;\n }\n\n list(): ExperimentSpec[] {\n return [...this.items.values()];\n }\n\n get(name: string, version?: number): ExperimentSpec | undefined {\n if (version != null) {\n return this.items.get(`${name}.v${version}`);\n }\n let latest: ExperimentSpec | undefined;\n let maxVersion = -Infinity;\n for (const spec of this.items.values()) {\n if (spec.meta.name !== name) continue;\n if (spec.meta.version > maxVersion) {\n maxVersion = spec.meta.version;\n latest = spec;\n }\n }\n return latest;\n }\n}\n\nexport function makeExperimentKey(meta: ExperimentMeta) {\n return experimentKey(meta);\n}\n"],"mappings":"AA8FA,MAAM,EAAiB,GAAyB,GAAG,EAAK,KAAK,IAAI,EAAK,UAEtE,IAAa,EAAb,KAAgC,CAC9B,MAAyB,IAAI,IAE7B,SAAS,EAA4B,CACnC,IAAM,EAAM,EAAc,EAAK,KAAK,CACpC,GAAI,KAAK,MAAM,IAAI,EAAI,CACrB,MAAU,MAAM,wBAAwB,IAAM,CAGhD,OADA,KAAK,MAAM,IAAI,EAAK,EAAK,CAClB,KAGT,MAAyB,CACvB,MAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAGjC,IAAI,EAAc,EAA8C,CAC9D,GAAI,GAAW,KACb,OAAO,KAAK,MAAM,IAAI,GAAG,EAAK,IAAI,IAAU,CAE9C,IAAIA,EACA,EAAa,KACjB,IAAK,IAAM,KAAQ,KAAK,MAAM,QAAQ,CAChC,EAAK,KAAK,OAAS,GACnB,EAAK,KAAK,QAAU,IACtB,EAAa,EAAK,KAAK,QACvB,EAAS,GAGb,OAAO,IAIX,SAAgB,EAAkB,EAAsB,CACtD,OAAO,EAAc,EAAK"}
package/dist/forms.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { OwnerShipMeta } from "./ownership.js";
2
+ import { AnySchemaModel, ZodSchemaModel } from "@lssm/lib.schema";
2
3
 
3
4
  //#region src/forms.d.ts
4
5
  type PredicateOp = 'equals' | 'notEquals' | 'in' | 'notIn' | 'gt' | 'gte' | 'lt' | 'lte' | 'truthy' | 'empty' | 'lengthGt' | 'lengthGte' | 'lengthLt' | 'lengthLte';
@@ -1 +1 @@
1
- {"version":3,"file":"forms.d.ts","names":[],"sources":["../src/forms.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"forms.d.ts","names":[],"sources":["../src/forms.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import"@pothos/plugin-federation";import{printSubgraphSchema as e}from"@apollo/subgraph";function t(t){return e(t)}export{t};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["e","t"],"sources":["../../../../graphql-federation/dist/index.js"],"sourcesContent":["import\"@pothos/core\";import\"@pothos/plugin-federation\";import{printSubgraphSchema as e}from\"@apollo/subgraph\";function t(t){return e(t)}function n(e,t,n,r,i){let a=e.objectRef(t);return a.implement({fields:r}),e.entity(t,{key:n.join(` `),resolveReference:i}),a}export{t as toSubgraphSDL,n as withEntityObject};\n//# sourceMappingURL=index.js.map"],"mappings":"yFAA8G,SAAS,EAAE,EAAE,CAAC,OAAOA,EAAEC,EAAE"}
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { AnyContractSpec, ContractSpec, EmitDecl, EmitDeclInline, EmitDeclRef, O
7
7
  import { TelemetryAnomalyAction, TelemetryAnomalyDetectionConfig, TelemetryAnomalyThreshold, TelemetryConfig, TelemetryEventDef, TelemetryMeta, TelemetryPrivacyLevel, TelemetryPropertyDef, TelemetryProviderConfig, TelemetryRegistry, TelemetryRetentionConfig, TelemetrySamplingConfig, TelemetrySpec, makeTelemetryKey } from "./telemetry/spec.js";
8
8
  import { TelemetryAnomalyEvent, TelemetryAnomalyMonitor, TelemetryAnomalyMonitorOptions } from "./telemetry/anomaly.js";
9
9
  import { RuntimeTelemetryProvider, TelemetryDispatch, TelemetryEventContext, TelemetryTracker, TelemetryTrackerOptions } from "./telemetry/tracker.js";
10
- import { CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, capabilityKey } from "./capabilities.js";
10
+ import { CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, capabilityKey, defineCapability } from "./capabilities.js";
11
11
  import { DataPresentation, MarkdownPresentation, PresentationContent, PresentationKind, PresentationMeta, PresentationPolicy, PresentationRegistry, PresentationSpec, WebComponentPresentation, jsonSchemaForPresentation } from "./presentations.js";
12
12
  import { PresentationDescriptorV2, PresentationRenderer, PresentationSource, PresentationSourceBlocknotejs, PresentationSourceComponentReact, PresentationTarget, PresentationV2Meta, PresentationValidator, ReactRenderDescriptor, RenderContext, TransformEngine, createDefaultTransformEngine, registerBasicValidation, registerDefaultReactRenderer } from "./presentations.v2.js";
13
13
  import { AllocationStrategy, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, MetricAggregation, SuccessMetric, TargetingRule, makeExperimentKey } from "./experiments/spec.js";
@@ -25,6 +25,7 @@ import { BlueprintTranslationCatalog, Locale, MessageKey, PlatformTranslationCat
25
25
  import { AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppIntegrationSlot, AppRouteConfig, AppThemeBinding, FeatureFlagState, SpecPointer, TelemetryBinding, TenantAppConfig, TenantAppConfigMeta, TenantRouteOverride, TenantSpecOverride, TranslationCatalogPointer, makeAppBlueprintKey } from "./app-config/spec.js";
26
26
  import { AppComposition, AppCompositionDeps, ComposeOptions, MissingReference, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, composeAppConfig, resolveAppConfig } from "./app-config/runtime.js";
27
27
  import { ParsedSecretUri, SecretFetchOptions, SecretPayloadEncoding, SecretProvider, SecretProviderError, SecretReference, SecretRotationResult, SecretValue, SecretWritePayload, normalizeSecretPayload, parseSecretUri } from "./integrations/secrets/provider.js";
28
+ import { RuntimeContract, SpecVariantResolver } from "./experiments/spec-resolver.js";
28
29
  import { Actor, Channel, EventPublisher, FieldLevelDecision, HandlerCtx, PolicyDecider, PolicyDeciderInput, PolicyDecision, RateLimiter, TranslationResolver } from "./types.js";
29
30
  import { EventParam, HandlerFor, RuntimeSpecOutput, SpecInput, SpecOutput, ZodSpecInput, installOp, makeEmit, op } from "./install.js";
30
31
  import { OperationKey, SpecRegistry, opKey } from "./registry.js";
@@ -123,7 +124,7 @@ import { StateStore, StepExecution, WorkflowState, WorkflowStateFilters } from "
123
124
  import { GuardContext, GuardEvaluator, OperationExecutor, OperationExecutorContext, WorkflowPreFlightError, WorkflowPreFlightIssue, WorkflowPreFlightIssueSeverity, WorkflowPreFlightIssueType, WorkflowPreFlightResult, WorkflowRunner, WorkflowRunnerConfig } from "./workflow/runner.js";
124
125
  import { ExpressionContext, evaluateExpression } from "./workflow/expression.js";
125
126
  import { InMemoryStateStore } from "./workflow/adapters/memory-store.js";
126
- import { DatabaseStateStoreOptions, createDatabaseStateStore } from "./workflow/adapters/db-adapter.js";
127
+ import { PrismaStateStore } from "./workflow/adapters/db-adapter.js";
127
128
  import { FileStateStoreOptions, createFileStateStore } from "./workflow/adapters/file-adapter.js";
128
129
  import "./workflow/index.js";
129
- export { AccountBalanceRecord, Action, ActionExecutionResult, Actor, AllocationStrategy, AnyContractSpec, AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppComposition, AppCompositionDeps, AppIntegrationBinding, AppIntegrationSlot, AppKnowledgeBinding, AppRouteConfig, AppThemeBinding, ArrayFieldSpec, Assertion, AssertionResult, AttributeMatcher, BankAccountRecord, BankTransactionRecord, BaseFieldSpec, BehaviorSignal, BehaviorSignalEnvelope, BehaviorSignalProvider, BlueprintTranslationCatalog, BlueprintUpdater, CalendarAttendee, CalendarEvent, CalendarEventInput, CalendarEventUpdateInput, CalendarListEventsQuery, CalendarListEventsResult, CalendarProvider, CalendarReminder, CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, CapturePaymentInput, Channel, CheckboxFieldSpec, CompensationStep, CompensationStrategy, CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, CompleteOnboardingBaseSpec, ComponentMap, ComponentVariantDefinition, ComponentVariantSpec, ComposeOptions, ComputationMap, ConnectionStatus, ConsentDefinition, ConstraintDecl, ConstraintHandler, ContractSpec, CoverageRequirement, CreateCustomerInput, CreateIntegrationConnection, CreateKnowledgeSource, CreatePaymentIntentInput, CreateRendererOptions, DataMigrationStep, DataPresentation, DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, DatabaseStateStoreOptions, DecisionContext, DeleteIntegrationConnection, DeleteKnowledgeSource, DeleteObjectInput, DeleteOnboardingDraftBaseSpec, DeleteOnboardingDraftOutput, DriverSlots, ElevenLabsVoiceProvider, ElevenLabsVoiceProviderOptions, EmailAddress, EmailAttachment, EmailInboundProvider, EmailMessage, EmailMessagesSinceQuery, EmailOutboundMessage, EmailOutboundProvider, EmailOutboundResult, EmailThread, EmailThreadListQuery, EmbeddingDocument, EmbeddingProvider, EmbeddingResult, EmbeddingVector, EmitDecl, EmitDeclInline, EmitDeclRef, EnhanceFields, EnvSecretProvider, ErrorSignal, ErrorSignalEnvelope, ErrorSignalProvider, EventEnvelope, EventKey, EventParam, EventPublisher, EventRef, EventSpec, ExecutionStatus, ExecutorProposalSink, ExecutorResultPayload, ExecutorSinkLogger, ExecutorSinkOptions, ExpectErrorAssertion, ExpectEventsAssertion, ExpectOutputAssertion, ExpectedEvent, ExperimentContext, ExperimentEvaluation, ExperimentEvaluator, ExperimentEvaluatorConfig, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, ExpressionContext, FeatureFlagState, FeatureModuleMeta, FeatureModuleSpec, FeatureRef, FeatureRegistry, FieldLevelDecision, FieldPolicyRule, FieldSpec, FileStateStoreOptions, Fixture, FormAction, FormOption, FormRef, FormRegistry, FormSpec, FormValuesFor, GcpSecretManagerProvider, GetObjectResult, GetOnboardingDraftBaseSpec, GetOnboardingDraftOutput, GmailInboundProvider, GmailInboundProviderOptions, GmailOutboundProvider, GmailOutboundProviderOptions, GoogleCalendarProvider, GoogleCalendarProviderOptions, GoogleCloudStorageProvider, GoogleCloudStorageProviderOptions, GroupFieldSpec, GuardCondition, GuardConditionKind, GuardContext, GuardEvaluator, HandlerCtx, HandlerFor, InMemoryStateStore, IntegrationByokSetup, IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationCapabilityMapping, IntegrationCategory, IntegrationConfigSchema, IntegrationConnection, IntegrationConnectionHealth, IntegrationConnectionMeta, IntegrationContext, IntegrationHealthCheck, IntegrationHealthCheckExecutor, IntegrationHealthCheckResult, IntegrationHealthService, IntegrationHealthServiceOptions, IntegrationInvocationStatus, IntegrationMeta, IntegrationOwnershipMode, IntegrationProviderFactory, IntegrationSecretSchema, IntegrationSpec, IntegrationSpecRegistry, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, IntegrationUsageMetrics, KnowledgeAccessPolicy, KnowledgeCategory, KnowledgeIndexingConfig, KnowledgeRetentionPolicy, KnowledgeSourceConfig, KnowledgeSourceMeta, KnowledgeSourceType, KnowledgeSpaceMeta, KnowledgeSpaceRegistry, KnowledgeSpaceSpec, LLMChatOptions, LLMContentPart, LLMMessage, LLMProvider, LLMResponse, LLMRole, LLMStreamChunk, LLMTextPart, LLMTokenUsage, LLMToolCallPart, LLMToolDefinition, LLMToolResultPart, ListIntegrationConnections, ListInvoicesQuery, ListKnowledgeSources, ListObjectsQuery, ListObjectsResult, ListTransactionsQuery, Locale, MarkdownPresentation, MessageKey, MetricAggregation, MigrationCheck, MigrationExecutor, MigrationMeta, MigrationPlan, MigrationRegistry, MigrationSpec, MigrationStep, MigrationStepBase, MigrationStepKind, MissingReference, MistralEmbeddingProvider, MistralEmbeddingProviderOptions, MistralLLMProvider, MistralLLMProviderOptions, Money, OPAAdapterOptions, OPAClient, OPAEvaluationResult, OPAPolicyAdapter, OPENBANKING_PII_FIELDS, OPENBANKING_TELEMETRY_EVENTS, ObjectStorageProvider, OpKind, OpRef, OpenBankingAccountBalance, OpenBankingAccountDetails, OpenBankingAccountOwnership, OpenBankingAccountSummary, OpenBankingBalanceType, OpenBankingConnectionStatus, OpenBankingGetAccount, OpenBankingGetAccountDetailsParams, OpenBankingGetBalances, OpenBankingGetBalancesParams, OpenBankingGetConnectionStatusParams, OpenBankingGuardResult, OpenBankingListAccounts, OpenBankingListAccountsParams, OpenBankingListAccountsResult, OpenBankingListTransactions, OpenBankingListTransactionsParams, OpenBankingListTransactionsResult, OpenBankingProvider, OpenBankingRefreshBalances, OpenBankingSyncAccounts, OpenBankingSyncTransactions, OpenBankingTelemetryEvent, OpenBankingTransaction, OperationExecutor, OperationExecutorContext, OperationKey, OperationTargetRef, OptionsSource, Owner, OwnerShipMeta, Owners, OwnersEnum, PIIPolicy, ParsedSecretUri, PaymentCustomer, PaymentIntent, PaymentIntentStatus, PaymentInvoice, PaymentRefund, PaymentTransaction, PaymentsProvider, PlatformTranslationCatalog, PolicyCondition, PolicyDecider, PolicyDeciderInput, PolicyDecision, PolicyEffect, PolicyEngine, PolicyMeta, PolicyOPAConfig, PolicyRef, PolicyRegistry, PolicyRule, PolicySpec, PostmarkEmailProvider, PostmarkEmailProviderOptions, PowensAccount, PowensAccountListResponse, PowensBalance, PowensClient, PowensClientError, PowensClientOptions, PowensConnectionStatusResponse, PowensEnvironment, PowensOpenBankingProvider, PowensOpenBankingProviderOptions, PowensTransaction, PowensTransactionListResponse, Predicate, PredicateOp, PresentationContent, PresentationDescriptorV2, PresentationKind, PresentationMeta, PresentationPolicy, PresentationRef, PresentationRegistry, PresentationRenderer, PresentationSource, PresentationSourceBlocknotejs, PresentationSourceComponentReact, PresentationSpec, PresentationTarget, PresentationV2Meta, PresentationValidator, PromptArg, PromptContentPart, PromptMeta, PromptPolicy, PromptRegistry, PromptSpec, PromptStability, ProposalAction, ProposalBlocker, ProposalConfidence, ProposalExecutionResult, ProposalExecutor, ProposalExecutorDeps, ProposalExecutorOptions, ProposalSink, ProposalTarget, PutObjectInput, QdrantVectorProvider, QdrantVectorProviderOptions, RadioFieldSpec, RateLimitDefinition, RateLimiter, ReactRenderDescriptor, RefundPaymentInput, RegenerationContext, RegenerationRule, RegenerationTrigger, RegeneratorOptions, RegeneratorService, RegeneratorSignal, RelationshipDefinition, RelationshipMatcher, RenderContext, RenderOptions, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, ResolverMap, ResourceContext, ResourceMatcher, ResourceMeta, ResourceRefDescriptor, ResourceRegistry, ResourceTemplateSpec, RestOptions, RetryPolicy, RnReusablesDriver, RunMigrationsAction, RunTestsAction, RuntimeSpecOutput, RuntimeTelemetryProvider, SLA, SaveOnboardingDraftBaseSpec, SaveOnboardingDraftInput, SaveOnboardingDraftOutput, ScenarioRunResult, SchemaMigrationStep, SecretFetchOptions, SecretPayloadEncoding, SecretProvider, SecretProviderError, SecretProviderManager, SecretProviderManagerOptions, SecretReference, SecretRotationResult, SecretValue, SecretWritePayload, SelectFieldSpec, SendSmsInput, ShadcnDriver, SignalAdapters, SignedUrlOptions, SmsDeliveryStatus, SmsMessage, SmsProvider, SpecChangeProposal, SpecInput, SpecOutput, SpecPointer, SpecRegistry, Stability, StabilityEnum, StateStore, Step, StepAction, StepExecution, StepType, StorageObjectBody, StorageObjectMetadata, StripePaymentsProvider, StripePaymentsProviderOptions, 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, TenantConfigUpdater, TenantRouteOverride, TenantSpecOverride, TenantTranslationOverride, TestExecutor, TestIntegrationConnection, TestRegistry, TestRunResult, TestRunner, TestRunnerConfig, TestScenario, TestSpec, TestSpecMeta, TestSpecRef, TestTarget, TextFieldSpec, TextareaFieldSpec, ThemeMeta, ThemeOverride, ThemeRef, ThemeRegistry, ThemeScope, ThemeSpec, ThemeToken, ThemeTokens, TokenCountResult, TransformEngine, Transition, TranslationCatalogMeta, TranslationCatalogPointer, TranslationEntry, TranslationResolver, TriggerKnowledgeSourceSync, TriggerRegenerationAction, TwilioSmsProvider, TwilioSmsProviderOptions, TypedOptionsSource, TypedPredicate, TypedWhenClause, UpdateBlueprintAction, UpdateIntegrationConnection, UpdateKnowledgeSource, UpdateTenantConfigAction, ValidateWorkflowSpecOptions, ValidationMigrationStep, VectorDeleteRequest, VectorDocument, VectorSearchQuery, VectorSearchResult, VectorStoreProvider, VectorUpsertRequest, Voice, VoiceProvider, VoiceSynthesisInput, VoiceSynthesisResult, WebComponentPresentation, WhenClause, WorkflowDefinition, WorkflowMeta, WorkflowPreFlightError, WorkflowPreFlightIssue, WorkflowPreFlightIssueSeverity, WorkflowPreFlightIssueType, WorkflowPreFlightResult, WorkflowRegistry, WorkflowRunner, WorkflowRunnerConfig, WorkflowSpec, WorkflowState, WorkflowStateFilters, WorkflowStatus, WorkflowTargetRef, WorkflowValidationError, WorkflowValidationIssue, WorkflowValidationLevel, ZodSpecInput, assertPrimaryOpenBankingReady, assertWorkflowSpecValid, behaviorToEnvelope, buildOPAInput, buildZodWithRelations, capabilityKey, composeAppConfig, connectionStatusLabel, createDatabaseStateStore, createDefaultTransformEngine, createEngineWithDefaults, createFeatureModule, createFetchHandler, createFileStateStore, createFormRenderer, createMcpServer, dataViewKey, defaultGqlField, defaultMcpTool, defaultRestPath, defineCommand, defineEvent, defineFormSpec, definePrompt, defineQuery, defineResourceTemplate, elevenLabsIntegrationSpec, elysiaPlugin, emailThreadsKnowledgeSpace, ensureConnectionReady, ensurePrimaryOpenBankingIntegration, errorToEnvelope, evalPredicate, evaluateExpression, eventKey, exportContractsToGraphQLSchema, expressRouter, financialDocsKnowledgeSpace, financialOverviewKnowledgeSpace, gcsStorageIntegrationSpec, gmailIntegrationSpec, googleCalendarIntegrationSpec, installFeature, installOp, integrationContracts, isEmitDeclRef, isResourceRef, jsonSchemaForPresentation, jsonSchemaForSpec, knowledgeContracts, makeAppBlueprintKey, makeEmit, makeExperimentKey, makeIntegrationSpecKey, makeKnowledgeSpaceKey, makeNextAppHandler, makeNextPagesHandler, makePolicyKey, makeTelemetryKey, makeTestKey, makeThemeRef, mistralIntegrationSpec, normalizeSecretPayload, op, opKey, openBankingAccountsReadCapability, openBankingBalancesReadCapability, openBankingTransactionsReadCapability, parseSecretUri, postmarkIntegrationSpec, powensIntegrationSpec, productCanonKnowledgeSpace, qdrantIntegrationSpec, redactOpenBankingTelemetryPayload, registerBasicValidation, registerContractsOnBuilder, registerDefaultReactRenderer, registerElevenLabsIntegration, registerEmailThreadsKnowledgeSpace, registerFeature, registerFinancialDocsKnowledgeSpace, registerFinancialOverviewKnowledgeSpace, registerGcsStorageIntegration, registerGmailIntegration, registerGoogleCalendarIntegration, registerIntegrationContracts, registerKnowledgeContracts, registerMistralIntegration, registerOpenBankingCapabilities, registerOpenBankingContracts, registerPostmarkIntegration, registerPowensIntegration, registerProductCanonKnowledgeSpace, registerQdrantIntegration, registerStripeIntegration, registerSupportFaqKnowledgeSpace, registerTwilioSmsIntegration, registerUploadedDocsKnowledgeSpace, renderFeaturePresentation, resolveAppConfig, resourceRef, rnReusablesDriver, shadcnDriver, stripeIntegrationSpec, supportFaqKnowledgeSpace, telemetryToEnvelope, toV2FromV1, twilioSmsIntegrationSpec, uploadedDocsKnowledgeSpace, validateFeatureTargetsV2, validateWorkflowSpec };
130
+ export { AccountBalanceRecord, Action, ActionExecutionResult, Actor, AllocationStrategy, AnyContractSpec, AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppComposition, AppCompositionDeps, AppIntegrationBinding, AppIntegrationSlot, AppKnowledgeBinding, AppRouteConfig, AppThemeBinding, ArrayFieldSpec, Assertion, AssertionResult, AttributeMatcher, BankAccountRecord, BankTransactionRecord, BaseFieldSpec, BehaviorSignal, BehaviorSignalEnvelope, BehaviorSignalProvider, BlueprintTranslationCatalog, BlueprintUpdater, CalendarAttendee, CalendarEvent, CalendarEventInput, CalendarEventUpdateInput, CalendarListEventsQuery, CalendarListEventsResult, CalendarProvider, CalendarReminder, CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, CapturePaymentInput, Channel, CheckboxFieldSpec, CompensationStep, CompensationStrategy, CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, CompleteOnboardingBaseSpec, ComponentMap, ComponentVariantDefinition, ComponentVariantSpec, ComposeOptions, ComputationMap, ConnectionStatus, ConsentDefinition, ConstraintDecl, ConstraintHandler, ContractSpec, CoverageRequirement, CreateCustomerInput, CreateIntegrationConnection, CreateKnowledgeSource, CreatePaymentIntentInput, CreateRendererOptions, DataMigrationStep, DataPresentation, DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, DecisionContext, DeleteIntegrationConnection, DeleteKnowledgeSource, DeleteObjectInput, DeleteOnboardingDraftBaseSpec, DeleteOnboardingDraftOutput, DriverSlots, ElevenLabsVoiceProvider, ElevenLabsVoiceProviderOptions, EmailAddress, EmailAttachment, EmailInboundProvider, EmailMessage, EmailMessagesSinceQuery, EmailOutboundMessage, EmailOutboundProvider, EmailOutboundResult, EmailThread, EmailThreadListQuery, EmbeddingDocument, EmbeddingProvider, EmbeddingResult, EmbeddingVector, EmitDecl, EmitDeclInline, EmitDeclRef, EnhanceFields, EnvSecretProvider, ErrorSignal, ErrorSignalEnvelope, ErrorSignalProvider, EventEnvelope, EventKey, EventParam, EventPublisher, EventRef, EventSpec, ExecutionStatus, ExecutorProposalSink, ExecutorResultPayload, ExecutorSinkLogger, ExecutorSinkOptions, ExpectErrorAssertion, ExpectEventsAssertion, ExpectOutputAssertion, ExpectedEvent, ExperimentContext, ExperimentEvaluation, ExperimentEvaluator, ExperimentEvaluatorConfig, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, ExpressionContext, FeatureFlagState, FeatureModuleMeta, FeatureModuleSpec, FeatureRef, FeatureRegistry, FieldLevelDecision, FieldPolicyRule, FieldSpec, FileStateStoreOptions, Fixture, FormAction, FormOption, FormRef, FormRegistry, FormSpec, FormValuesFor, GcpSecretManagerProvider, GetObjectResult, GetOnboardingDraftBaseSpec, GetOnboardingDraftOutput, GmailInboundProvider, GmailInboundProviderOptions, GmailOutboundProvider, GmailOutboundProviderOptions, GoogleCalendarProvider, GoogleCalendarProviderOptions, GoogleCloudStorageProvider, GoogleCloudStorageProviderOptions, GroupFieldSpec, GuardCondition, GuardConditionKind, GuardContext, GuardEvaluator, HandlerCtx, HandlerFor, InMemoryStateStore, IntegrationByokSetup, IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationCapabilityMapping, IntegrationCategory, IntegrationConfigSchema, IntegrationConnection, IntegrationConnectionHealth, IntegrationConnectionMeta, IntegrationContext, IntegrationHealthCheck, IntegrationHealthCheckExecutor, IntegrationHealthCheckResult, IntegrationHealthService, IntegrationHealthServiceOptions, IntegrationInvocationStatus, IntegrationMeta, IntegrationOwnershipMode, IntegrationProviderFactory, IntegrationSecretSchema, IntegrationSpec, IntegrationSpecRegistry, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, IntegrationUsageMetrics, KnowledgeAccessPolicy, KnowledgeCategory, KnowledgeIndexingConfig, KnowledgeRetentionPolicy, KnowledgeSourceConfig, KnowledgeSourceMeta, KnowledgeSourceType, KnowledgeSpaceMeta, KnowledgeSpaceRegistry, KnowledgeSpaceSpec, LLMChatOptions, LLMContentPart, LLMMessage, LLMProvider, LLMResponse, LLMRole, LLMStreamChunk, LLMTextPart, LLMTokenUsage, LLMToolCallPart, LLMToolDefinition, LLMToolResultPart, ListIntegrationConnections, ListInvoicesQuery, ListKnowledgeSources, ListObjectsQuery, ListObjectsResult, ListTransactionsQuery, Locale, MarkdownPresentation, MessageKey, MetricAggregation, MigrationCheck, MigrationExecutor, MigrationMeta, MigrationPlan, MigrationRegistry, MigrationSpec, MigrationStep, MigrationStepBase, MigrationStepKind, MissingReference, MistralEmbeddingProvider, MistralEmbeddingProviderOptions, MistralLLMProvider, MistralLLMProviderOptions, Money, OPAAdapterOptions, OPAClient, OPAEvaluationResult, OPAPolicyAdapter, OPENBANKING_PII_FIELDS, OPENBANKING_TELEMETRY_EVENTS, ObjectStorageProvider, OpKind, OpRef, OpenBankingAccountBalance, OpenBankingAccountDetails, OpenBankingAccountOwnership, OpenBankingAccountSummary, OpenBankingBalanceType, OpenBankingConnectionStatus, OpenBankingGetAccount, OpenBankingGetAccountDetailsParams, OpenBankingGetBalances, OpenBankingGetBalancesParams, OpenBankingGetConnectionStatusParams, OpenBankingGuardResult, OpenBankingListAccounts, OpenBankingListAccountsParams, OpenBankingListAccountsResult, OpenBankingListTransactions, OpenBankingListTransactionsParams, OpenBankingListTransactionsResult, OpenBankingProvider, OpenBankingRefreshBalances, OpenBankingSyncAccounts, OpenBankingSyncTransactions, OpenBankingTelemetryEvent, OpenBankingTransaction, OperationExecutor, OperationExecutorContext, OperationKey, OperationTargetRef, OptionsSource, Owner, OwnerShipMeta, Owners, OwnersEnum, PIIPolicy, ParsedSecretUri, PaymentCustomer, PaymentIntent, PaymentIntentStatus, PaymentInvoice, PaymentRefund, PaymentTransaction, PaymentsProvider, PlatformTranslationCatalog, PolicyCondition, PolicyDecider, PolicyDeciderInput, PolicyDecision, PolicyEffect, PolicyEngine, PolicyMeta, PolicyOPAConfig, PolicyRef, PolicyRegistry, PolicyRule, PolicySpec, PostmarkEmailProvider, PostmarkEmailProviderOptions, PowensAccount, PowensAccountListResponse, PowensBalance, PowensClient, PowensClientError, PowensClientOptions, PowensConnectionStatusResponse, PowensEnvironment, PowensOpenBankingProvider, PowensOpenBankingProviderOptions, PowensTransaction, PowensTransactionListResponse, Predicate, PredicateOp, PresentationContent, PresentationDescriptorV2, PresentationKind, PresentationMeta, PresentationPolicy, PresentationRef, PresentationRegistry, PresentationRenderer, PresentationSource, PresentationSourceBlocknotejs, PresentationSourceComponentReact, PresentationSpec, PresentationTarget, PresentationV2Meta, PresentationValidator, PrismaStateStore, PromptArg, PromptContentPart, PromptMeta, PromptPolicy, PromptRegistry, PromptSpec, PromptStability, ProposalAction, ProposalBlocker, ProposalConfidence, ProposalExecutionResult, ProposalExecutor, ProposalExecutorDeps, ProposalExecutorOptions, ProposalSink, ProposalTarget, PutObjectInput, QdrantVectorProvider, QdrantVectorProviderOptions, RadioFieldSpec, RateLimitDefinition, RateLimiter, ReactRenderDescriptor, RefundPaymentInput, RegenerationContext, RegenerationRule, RegenerationTrigger, RegeneratorOptions, RegeneratorService, RegeneratorSignal, RelationshipDefinition, RelationshipMatcher, RenderContext, RenderOptions, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, ResolverMap, ResourceContext, ResourceMatcher, ResourceMeta, ResourceRefDescriptor, ResourceRegistry, ResourceTemplateSpec, RestOptions, RetryPolicy, RnReusablesDriver, RunMigrationsAction, RunTestsAction, RuntimeContract, RuntimeSpecOutput, RuntimeTelemetryProvider, SLA, SaveOnboardingDraftBaseSpec, SaveOnboardingDraftInput, SaveOnboardingDraftOutput, ScenarioRunResult, SchemaMigrationStep, SecretFetchOptions, SecretPayloadEncoding, SecretProvider, SecretProviderError, SecretProviderManager, SecretProviderManagerOptions, SecretReference, SecretRotationResult, SecretValue, SecretWritePayload, SelectFieldSpec, SendSmsInput, ShadcnDriver, SignalAdapters, SignedUrlOptions, SmsDeliveryStatus, SmsMessage, SmsProvider, SpecChangeProposal, SpecInput, SpecOutput, SpecPointer, SpecRegistry, SpecVariantResolver, Stability, StabilityEnum, StateStore, Step, StepAction, StepExecution, StepType, StorageObjectBody, StorageObjectMetadata, StripePaymentsProvider, StripePaymentsProviderOptions, 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, TenantConfigUpdater, TenantRouteOverride, TenantSpecOverride, TenantTranslationOverride, TestExecutor, TestIntegrationConnection, TestRegistry, TestRunResult, TestRunner, TestRunnerConfig, TestScenario, TestSpec, TestSpecMeta, TestSpecRef, TestTarget, TextFieldSpec, TextareaFieldSpec, ThemeMeta, ThemeOverride, ThemeRef, ThemeRegistry, ThemeScope, ThemeSpec, ThemeToken, ThemeTokens, TokenCountResult, TransformEngine, Transition, TranslationCatalogMeta, TranslationCatalogPointer, TranslationEntry, TranslationResolver, TriggerKnowledgeSourceSync, TriggerRegenerationAction, TwilioSmsProvider, TwilioSmsProviderOptions, TypedOptionsSource, TypedPredicate, TypedWhenClause, UpdateBlueprintAction, UpdateIntegrationConnection, UpdateKnowledgeSource, UpdateTenantConfigAction, ValidateWorkflowSpecOptions, ValidationMigrationStep, VectorDeleteRequest, VectorDocument, VectorSearchQuery, VectorSearchResult, VectorStoreProvider, VectorUpsertRequest, Voice, VoiceProvider, VoiceSynthesisInput, VoiceSynthesisResult, WebComponentPresentation, WhenClause, WorkflowDefinition, WorkflowMeta, WorkflowPreFlightError, WorkflowPreFlightIssue, WorkflowPreFlightIssueSeverity, WorkflowPreFlightIssueType, WorkflowPreFlightResult, WorkflowRegistry, WorkflowRunner, WorkflowRunnerConfig, WorkflowSpec, WorkflowState, WorkflowStateFilters, WorkflowStatus, WorkflowTargetRef, WorkflowValidationError, WorkflowValidationIssue, WorkflowValidationLevel, ZodSpecInput, assertPrimaryOpenBankingReady, assertWorkflowSpecValid, behaviorToEnvelope, buildOPAInput, buildZodWithRelations, capabilityKey, composeAppConfig, connectionStatusLabel, createDefaultTransformEngine, createEngineWithDefaults, createFeatureModule, createFetchHandler, createFileStateStore, createFormRenderer, createMcpServer, dataViewKey, defaultGqlField, defaultMcpTool, defaultRestPath, defineCapability, defineCommand, defineEvent, defineFormSpec, definePrompt, defineQuery, defineResourceTemplate, elevenLabsIntegrationSpec, elysiaPlugin, emailThreadsKnowledgeSpace, ensureConnectionReady, ensurePrimaryOpenBankingIntegration, errorToEnvelope, evalPredicate, evaluateExpression, eventKey, exportContractsToGraphQLSchema, expressRouter, financialDocsKnowledgeSpace, financialOverviewKnowledgeSpace, gcsStorageIntegrationSpec, gmailIntegrationSpec, googleCalendarIntegrationSpec, installFeature, installOp, integrationContracts, isEmitDeclRef, isResourceRef, jsonSchemaForPresentation, jsonSchemaForSpec, knowledgeContracts, makeAppBlueprintKey, makeEmit, makeExperimentKey, makeIntegrationSpecKey, makeKnowledgeSpaceKey, makeNextAppHandler, makeNextPagesHandler, makePolicyKey, makeTelemetryKey, makeTestKey, makeThemeRef, mistralIntegrationSpec, normalizeSecretPayload, op, opKey, openBankingAccountsReadCapability, openBankingBalancesReadCapability, openBankingTransactionsReadCapability, parseSecretUri, postmarkIntegrationSpec, powensIntegrationSpec, productCanonKnowledgeSpace, qdrantIntegrationSpec, redactOpenBankingTelemetryPayload, registerBasicValidation, registerContractsOnBuilder, registerDefaultReactRenderer, registerElevenLabsIntegration, registerEmailThreadsKnowledgeSpace, registerFeature, registerFinancialDocsKnowledgeSpace, registerFinancialOverviewKnowledgeSpace, registerGcsStorageIntegration, registerGmailIntegration, registerGoogleCalendarIntegration, registerIntegrationContracts, registerKnowledgeContracts, registerMistralIntegration, registerOpenBankingCapabilities, registerOpenBankingContracts, registerPostmarkIntegration, registerPowensIntegration, registerProductCanonKnowledgeSpace, registerQdrantIntegration, registerStripeIntegration, registerSupportFaqKnowledgeSpace, registerTwilioSmsIntegration, registerUploadedDocsKnowledgeSpace, renderFeaturePresentation, resolveAppConfig, resourceRef, rnReusablesDriver, shadcnDriver, stripeIntegrationSpec, supportFaqKnowledgeSpace, telemetryToEnvelope, toV2FromV1, twilioSmsIntegrationSpec, uploadedDocsKnowledgeSpace, validateFeatureTargetsV2, validateWorkflowSpec };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{CapabilityRegistry as e,capabilityKey as t}from"./capabilities.js";import{DataViewRegistry as n,dataViewKey as r}from"./data-views.js";import{defineEvent as i,eventKey as a}from"./events.js";import{FeatureRegistry as o,installFeature as s,validateFeatureTargetsV2 as c}from"./features.js";import{FormRegistry as l,buildZodWithRelations as u,defineFormSpec as d,evalPredicate as f}from"./forms.js";import{TransformEngine as p,createDefaultTransformEngine as m,registerBasicValidation as h,registerDefaultReactRenderer as g}from"./presentations.v2.js";import{createEngineWithDefaults as _,createFeatureModule as v,registerFeature as y,renderFeaturePresentation as b}from"./client/react/feature-render.js";import{createFormRenderer as x}from"./client/react/form-render.js";import{shadcnDriver as S}from"./client/react/drivers/shadcn.js";import{rnReusablesDriver as C}from"./client/react/drivers/rn-reusables.js";import"./client/index.js";import{defaultGqlField as w,defaultMcpTool as T,defaultRestPath as E,jsonSchemaForSpec as D}from"./jsonschema.js";import{registerContractsOnBuilder as O}from"./server/graphql-pothos.js";import{exportContractsToGraphQLSchema as k}from"./server/graphql-schema-export.js";import{PresentationRegistry as A,jsonSchemaForPresentation as j}from"./presentations.js";import{createMcpServer as M}from"./server/provider-mcp.js";import{createFetchHandler as N}from"./server/rest-generic.js";import{elysiaPlugin as P}from"./server/rest-elysia.js";import{expressRouter as F}from"./server/rest-express.js";import{makeNextAppHandler as I}from"./server/rest-next-app.js";import{makeNextPagesHandler as L}from"./server/rest-next-pages.js";import"./server/index.js";import{defineCommand as R,defineQuery as z,isEmitDeclRef as B}from"./spec.js";import{SpecRegistry as V,opKey as H}from"./registry.js";import{installOp as U,makeEmit as W,op as G}from"./install.js";import{definePrompt as K}from"./prompt.js";import{PromptRegistry as q}from"./promptRegistry.js";import{ResourceRegistry as J,defineResourceTemplate as Y,isResourceRef as X,resourceRef as Z}from"./resources.js";import{toV2FromV1 as Q}from"./presentations.backcompat.js";import{Owners as $,OwnersEnum as ee,StabilityEnum as te,Tags as ne,TagsEnum as re}from"./ownership.js";import{CompleteOnboardingBaseInput as ie,CompleteOnboardingBaseOutput as ae,CompleteOnboardingBaseSpec as oe,DeleteOnboardingDraftBaseSpec as se,DeleteOnboardingDraftOutput as ce,GetOnboardingDraftBaseSpec as le,GetOnboardingDraftOutput as ue,SaveOnboardingDraftBaseSpec as de,SaveOnboardingDraftInput as fe,SaveOnboardingDraftOutput as pe}from"./onboarding-base.js";import{openBankingAccountsReadCapability as me,openBankingBalancesReadCapability as he,openBankingTransactionsReadCapability as ge,registerOpenBankingCapabilities as _e}from"./capabilities/openbanking.js";import{PolicyRegistry as ve,makePolicyKey as ye}from"./policy/spec.js";import{PolicyEngine as be}from"./policy/engine.js";import{OPAPolicyAdapter as xe,buildOPAInput as Se}from"./policy/opa-adapter.js";import{ThemeRegistry as Ce,makeThemeRef as we}from"./themes.js";import{MigrationRegistry as Te}from"./migrations.js";import{TelemetryRegistry as Ee,makeTelemetryKey as De}from"./telemetry/spec.js";import{TelemetryTracker as Oe}from"./telemetry/tracker.js";import{TelemetryAnomalyMonitor as ke}from"./telemetry/anomaly.js";import"./telemetry/index.js";import{TestRegistry as Ae,makeTestKey as je}from"./tests/spec.js";import{TestRunner as Me}from"./tests/runner.js";import"./tests/index.js";import{ExperimentRegistry as Ne,makeExperimentKey as Pe}from"./experiments/spec.js";import{ExperimentEvaluator as Fe}from"./experiments/evaluator.js";import{AppBlueprintRegistry as Ie,makeAppBlueprintKey as Le}from"./app-config/spec.js";import{composeAppConfig as Re,resolveAppConfig as ze}from"./app-config/runtime.js";import{IntegrationSpecRegistry as Be,makeIntegrationSpecKey as Ve}from"./integrations/spec.js";import{registerStripeIntegration as He,stripeIntegrationSpec as Ue}from"./integrations/providers/stripe.js";import{postmarkIntegrationSpec as We,registerPostmarkIntegration as Ge}from"./integrations/providers/postmark.js";import{qdrantIntegrationSpec as Ke,registerQdrantIntegration as qe}from"./integrations/providers/qdrant.js";import{mistralIntegrationSpec as Je,registerMistralIntegration as Ye}from"./integrations/providers/mistral.js";import{elevenLabsIntegrationSpec as Xe,registerElevenLabsIntegration as Ze}from"./integrations/providers/elevenlabs.js";import{gmailIntegrationSpec as Qe,registerGmailIntegration as $e}from"./integrations/providers/gmail.js";import{googleCalendarIntegrationSpec as et,registerGoogleCalendarIntegration as tt}from"./integrations/providers/google-calendar.js";import{registerTwilioSmsIntegration as nt,twilioSmsIntegrationSpec as rt}from"./integrations/providers/twilio-sms.js";import{gcsStorageIntegrationSpec as it,registerGcsStorageIntegration as at}from"./integrations/providers/gcs-storage.js";import{powensIntegrationSpec as ot,registerPowensIntegration as st}from"./integrations/providers/powens.js";import{MistralLLMProvider as ct}from"./integrations/providers/impls/mistral-llm.js";import{MistralEmbeddingProvider as lt}from"./integrations/providers/impls/mistral-embedding.js";import{QdrantVectorProvider as ut}from"./integrations/providers/impls/qdrant-vector.js";import{GmailInboundProvider as dt}from"./integrations/providers/impls/gmail-inbound.js";import{GmailOutboundProvider as ft}from"./integrations/providers/impls/gmail-outbound.js";import{GoogleCalendarProvider as pt}from"./integrations/providers/impls/google-calendar.js";import{ElevenLabsVoiceProvider as mt}from"./integrations/providers/impls/elevenlabs-voice.js";import{GoogleCloudStorageProvider as ht}from"./integrations/providers/impls/gcs-storage.js";import{StripePaymentsProvider as gt}from"./integrations/providers/impls/stripe-payments.js";import{PostmarkEmailProvider as _t}from"./integrations/providers/impls/postmark-email.js";import{TwilioSmsProvider as vt}from"./integrations/providers/impls/twilio-sms.js";import{PowensClient as yt,PowensClientError as bt}from"./integrations/providers/impls/powens-client.js";import{PowensOpenBankingProvider as xt}from"./integrations/providers/impls/powens-openbanking.js";import{IntegrationProviderFactory as St}from"./integrations/providers/impls/provider-factory.js";import{SecretProviderError as Ct,normalizeSecretPayload as wt,parseSecretUri as Tt}from"./integrations/secrets/provider.js";import{GcpSecretManagerProvider as Et}from"./integrations/secrets/gcp-secret-manager.js";import{EnvSecretProvider as Dt}from"./integrations/secrets/env-secret-provider.js";import{SecretProviderManager as Ot}from"./integrations/secrets/manager.js";import{IntegrationCallGuard as kt,connectionStatusLabel as At,ensureConnectionReady as jt}from"./integrations/runtime.js";import{IntegrationHealthService as Mt}from"./integrations/health.js";import{AccountBalanceRecord as Nt,BankAccountRecord as Pt,BankTransactionRecord as Ft}from"./integrations/openbanking/models.js";import{OPENBANKING_PII_FIELDS as It,OPENBANKING_TELEMETRY_EVENTS as Lt,redactOpenBankingTelemetryPayload as Rt}from"./integrations/openbanking/telemetry.js";import{OpenBankingGetAccount as zt,OpenBankingListAccounts as Bt,OpenBankingSyncAccounts as Vt}from"./integrations/openbanking/contracts/accounts.js";import{OpenBankingListTransactions as Ht,OpenBankingSyncTransactions as Ut}from"./integrations/openbanking/contracts/transactions.js";import{OpenBankingGetBalances as Wt,OpenBankingRefreshBalances as Gt}from"./integrations/openbanking/contracts/balances.js";import{registerOpenBankingContracts as Kt}from"./integrations/openbanking/contracts/index.js";import{assertPrimaryOpenBankingReady as qt,ensurePrimaryOpenBankingIntegration as Jt}from"./integrations/openbanking/guards.js";import"./integrations/index.js";import{KnowledgeSpaceRegistry as Yt,makeKnowledgeSpaceKey as Xt}from"./knowledge/spec.js";import{productCanonKnowledgeSpace as Zt,registerProductCanonKnowledgeSpace as Qt}from"./knowledge/spaces/product-canon.js";import{registerSupportFaqKnowledgeSpace as $t,supportFaqKnowledgeSpace as en}from"./knowledge/spaces/support-faq.js";import{emailThreadsKnowledgeSpace as tn,registerEmailThreadsKnowledgeSpace as nn}from"./knowledge/spaces/email-threads.js";import{registerUploadedDocsKnowledgeSpace as rn,uploadedDocsKnowledgeSpace as an}from"./knowledge/spaces/uploaded-docs.js";import{financialDocsKnowledgeSpace as on,registerFinancialDocsKnowledgeSpace as sn}from"./knowledge/spaces/financial-docs.js";import{financialOverviewKnowledgeSpace as cn,registerFinancialOverviewKnowledgeSpace as ln}from"./knowledge/spaces/financial-overview.js";import"./knowledge/index.js";import{CreateIntegrationConnection as un,DeleteIntegrationConnection as dn,ListIntegrationConnections as fn,TestIntegrationConnection as pn,UpdateIntegrationConnection as mn,integrationContracts as hn,registerIntegrationContracts as gn}from"./integrations/contracts.js";import{CreateKnowledgeSource as _n,DeleteKnowledgeSource as vn,ListKnowledgeSources as yn,TriggerKnowledgeSourceSync as bn,UpdateKnowledgeSource as xn,knowledgeContracts as Sn,registerKnowledgeContracts as Cn}from"./knowledge/contracts.js";import{behaviorToEnvelope as wn,errorToEnvelope as Tn,telemetryToEnvelope as En}from"./regenerator/utils.js";import{RegeneratorService as Dn}from"./regenerator/service.js";import{ProposalExecutor as On}from"./regenerator/executor.js";import{ExecutorProposalSink as kn}from"./regenerator/sinks.js";import"./regenerator/index.js";import{WorkflowRegistry as An}from"./workflow/spec.js";import{WorkflowValidationError as jn,assertWorkflowSpecValid as Mn,validateWorkflowSpec as Nn}from"./workflow/validation.js";import{evaluateExpression as Pn}from"./workflow/expression.js";import{WorkflowPreFlightError as Fn,WorkflowRunner as In}from"./workflow/runner.js";import{InMemoryStateStore as Ln}from"./workflow/adapters/memory-store.js";import{createDatabaseStateStore as Rn}from"./workflow/adapters/db-adapter.js";import{createFileStateStore as zn}from"./workflow/adapters/file-adapter.js";import"./workflow/index.js";export{Nt as AccountBalanceRecord,Ie as AppBlueprintRegistry,Pt as BankAccountRecord,Ft as BankTransactionRecord,e as CapabilityRegistry,ie as CompleteOnboardingBaseInput,ae as CompleteOnboardingBaseOutput,oe as CompleteOnboardingBaseSpec,un as CreateIntegrationConnection,_n as CreateKnowledgeSource,n as DataViewRegistry,dn as DeleteIntegrationConnection,vn as DeleteKnowledgeSource,se as DeleteOnboardingDraftBaseSpec,ce as DeleteOnboardingDraftOutput,mt as ElevenLabsVoiceProvider,Dt as EnvSecretProvider,kn as ExecutorProposalSink,Fe as ExperimentEvaluator,Ne as ExperimentRegistry,o as FeatureRegistry,l as FormRegistry,Et as GcpSecretManagerProvider,le as GetOnboardingDraftBaseSpec,ue as GetOnboardingDraftOutput,dt as GmailInboundProvider,ft as GmailOutboundProvider,pt as GoogleCalendarProvider,ht as GoogleCloudStorageProvider,Ln as InMemoryStateStore,kt as IntegrationCallGuard,Mt as IntegrationHealthService,St as IntegrationProviderFactory,Be as IntegrationSpecRegistry,Yt as KnowledgeSpaceRegistry,fn as ListIntegrationConnections,yn as ListKnowledgeSources,Te as MigrationRegistry,lt as MistralEmbeddingProvider,ct as MistralLLMProvider,xe as OPAPolicyAdapter,It as OPENBANKING_PII_FIELDS,Lt as OPENBANKING_TELEMETRY_EVENTS,zt as OpenBankingGetAccount,Wt as OpenBankingGetBalances,Bt as OpenBankingListAccounts,Ht as OpenBankingListTransactions,Gt as OpenBankingRefreshBalances,Vt as OpenBankingSyncAccounts,Ut as OpenBankingSyncTransactions,$ as Owners,ee as OwnersEnum,be as PolicyEngine,ve as PolicyRegistry,_t as PostmarkEmailProvider,yt as PowensClient,bt as PowensClientError,xt as PowensOpenBankingProvider,A as PresentationRegistry,q as PromptRegistry,On as ProposalExecutor,ut as QdrantVectorProvider,Dn as RegeneratorService,J as ResourceRegistry,de as SaveOnboardingDraftBaseSpec,fe as SaveOnboardingDraftInput,pe as SaveOnboardingDraftOutput,Ct as SecretProviderError,Ot as SecretProviderManager,V as SpecRegistry,te as StabilityEnum,gt as StripePaymentsProvider,ne as Tags,re as TagsEnum,ke as TelemetryAnomalyMonitor,Ee as TelemetryRegistry,Oe as TelemetryTracker,pn as TestIntegrationConnection,Ae as TestRegistry,Me as TestRunner,Ce as ThemeRegistry,p as TransformEngine,bn as TriggerKnowledgeSourceSync,vt as TwilioSmsProvider,mn as UpdateIntegrationConnection,xn as UpdateKnowledgeSource,Fn as WorkflowPreFlightError,An as WorkflowRegistry,In as WorkflowRunner,jn as WorkflowValidationError,qt as assertPrimaryOpenBankingReady,Mn as assertWorkflowSpecValid,wn as behaviorToEnvelope,Se as buildOPAInput,u as buildZodWithRelations,t as capabilityKey,Re as composeAppConfig,At as connectionStatusLabel,Rn as createDatabaseStateStore,m as createDefaultTransformEngine,_ as createEngineWithDefaults,v as createFeatureModule,N as createFetchHandler,zn as createFileStateStore,x as createFormRenderer,M as createMcpServer,r as dataViewKey,w as defaultGqlField,T as defaultMcpTool,E as defaultRestPath,R as defineCommand,i as defineEvent,d as defineFormSpec,K as definePrompt,z as defineQuery,Y as defineResourceTemplate,Xe as elevenLabsIntegrationSpec,P as elysiaPlugin,tn as emailThreadsKnowledgeSpace,jt as ensureConnectionReady,Jt as ensurePrimaryOpenBankingIntegration,Tn as errorToEnvelope,f as evalPredicate,Pn as evaluateExpression,a as eventKey,k as exportContractsToGraphQLSchema,F as expressRouter,on as financialDocsKnowledgeSpace,cn as financialOverviewKnowledgeSpace,it as gcsStorageIntegrationSpec,Qe as gmailIntegrationSpec,et as googleCalendarIntegrationSpec,s as installFeature,U as installOp,hn as integrationContracts,B as isEmitDeclRef,X as isResourceRef,j as jsonSchemaForPresentation,D as jsonSchemaForSpec,Sn as knowledgeContracts,Le as makeAppBlueprintKey,W as makeEmit,Pe as makeExperimentKey,Ve as makeIntegrationSpecKey,Xt as makeKnowledgeSpaceKey,I as makeNextAppHandler,L as makeNextPagesHandler,ye as makePolicyKey,De as makeTelemetryKey,je as makeTestKey,we as makeThemeRef,Je as mistralIntegrationSpec,wt as normalizeSecretPayload,G as op,H as opKey,me as openBankingAccountsReadCapability,he as openBankingBalancesReadCapability,ge as openBankingTransactionsReadCapability,Tt as parseSecretUri,We as postmarkIntegrationSpec,ot as powensIntegrationSpec,Zt as productCanonKnowledgeSpace,Ke as qdrantIntegrationSpec,Rt as redactOpenBankingTelemetryPayload,h as registerBasicValidation,O as registerContractsOnBuilder,g as registerDefaultReactRenderer,Ze as registerElevenLabsIntegration,nn as registerEmailThreadsKnowledgeSpace,y as registerFeature,sn as registerFinancialDocsKnowledgeSpace,ln as registerFinancialOverviewKnowledgeSpace,at as registerGcsStorageIntegration,$e as registerGmailIntegration,tt as registerGoogleCalendarIntegration,gn as registerIntegrationContracts,Cn as registerKnowledgeContracts,Ye as registerMistralIntegration,_e as registerOpenBankingCapabilities,Kt as registerOpenBankingContracts,Ge as registerPostmarkIntegration,st as registerPowensIntegration,Qt as registerProductCanonKnowledgeSpace,qe as registerQdrantIntegration,He as registerStripeIntegration,$t as registerSupportFaqKnowledgeSpace,nt as registerTwilioSmsIntegration,rn as registerUploadedDocsKnowledgeSpace,b as renderFeaturePresentation,ze as resolveAppConfig,Z as resourceRef,C as rnReusablesDriver,S as shadcnDriver,Ue as stripeIntegrationSpec,en as supportFaqKnowledgeSpace,En as telemetryToEnvelope,Q as toV2FromV1,rt as twilioSmsIntegrationSpec,an as uploadedDocsKnowledgeSpace,c as validateFeatureTargetsV2,Nn as validateWorkflowSpec};
1
+ import{CapabilityRegistry as e,capabilityKey as t,defineCapability as n}from"./capabilities.js";import{DataViewRegistry as r,dataViewKey as i}from"./data-views.js";import{defineEvent as a,eventKey as o}from"./events.js";import{FeatureRegistry as s,installFeature as c,validateFeatureTargetsV2 as l}from"./features.js";import{FormRegistry as u,buildZodWithRelations as d,defineFormSpec as f,evalPredicate as p}from"./forms.js";import{TransformEngine as m,createDefaultTransformEngine as h,registerBasicValidation as g,registerDefaultReactRenderer as _}from"./presentations.v2.js";import{createEngineWithDefaults as v,createFeatureModule as y,registerFeature as b,renderFeaturePresentation as x}from"./client/react/feature-render.js";import{createFormRenderer as S}from"./client/react/form-render.js";import{shadcnDriver as C}from"./client/react/drivers/shadcn.js";import{rnReusablesDriver as w}from"./client/react/drivers/rn-reusables.js";import"./client/index.js";import{defaultGqlField as T,defaultMcpTool as E,defaultRestPath as D,jsonSchemaForSpec as O}from"./jsonschema.js";import{registerContractsOnBuilder as k}from"./server/graphql-pothos.js";import{exportContractsToGraphQLSchema as A}from"./server/graphql-schema-export.js";import{PresentationRegistry as j,jsonSchemaForPresentation as M}from"./presentations.js";import{createMcpServer as N}from"./server/provider-mcp.js";import{createFetchHandler as P}from"./server/rest-generic.js";import{elysiaPlugin as F}from"./server/rest-elysia.js";import{expressRouter as I}from"./server/rest-express.js";import{makeNextAppHandler as L}from"./server/rest-next-app.js";import{makeNextPagesHandler as R}from"./server/rest-next-pages.js";import"./server/index.js";import{defineCommand as z,defineQuery as B,isEmitDeclRef as V}from"./spec.js";import{SpecRegistry as H,opKey as U}from"./registry.js";import{installOp as W,makeEmit as G,op as K}from"./install.js";import{definePrompt as q}from"./prompt.js";import{PromptRegistry as J}from"./promptRegistry.js";import{ResourceRegistry as Y,defineResourceTemplate as X,isResourceRef as Z,resourceRef as Q}from"./resources.js";import{toV2FromV1 as $}from"./presentations.backcompat.js";import{Owners as ee,OwnersEnum as te,StabilityEnum as ne,Tags as re,TagsEnum as ie}from"./ownership.js";import{CompleteOnboardingBaseInput as ae,CompleteOnboardingBaseOutput as oe,CompleteOnboardingBaseSpec as se,DeleteOnboardingDraftBaseSpec as ce,DeleteOnboardingDraftOutput as le,GetOnboardingDraftBaseSpec as ue,GetOnboardingDraftOutput as de,SaveOnboardingDraftBaseSpec as fe,SaveOnboardingDraftInput as pe,SaveOnboardingDraftOutput as me}from"./onboarding-base.js";import{openBankingAccountsReadCapability as he,openBankingBalancesReadCapability as ge,openBankingTransactionsReadCapability as _e,registerOpenBankingCapabilities as ve}from"./capabilities/openbanking.js";import{PolicyRegistry as ye,makePolicyKey as be}from"./policy/spec.js";import{PolicyEngine as xe}from"./policy/engine.js";import{OPAPolicyAdapter as Se,buildOPAInput as Ce}from"./policy/opa-adapter.js";import{ThemeRegistry as we,makeThemeRef as Te}from"./themes.js";import{MigrationRegistry as Ee}from"./migrations.js";import{TelemetryRegistry as De,makeTelemetryKey as Oe}from"./telemetry/spec.js";import{TelemetryTracker as ke}from"./telemetry/tracker.js";import{TelemetryAnomalyMonitor as Ae}from"./telemetry/anomaly.js";import"./telemetry/index.js";import{TestRegistry as je,makeTestKey as Me}from"./tests/spec.js";import{TestRunner as Ne}from"./tests/runner.js";import"./tests/index.js";import{ExperimentRegistry as Pe,makeExperimentKey as Fe}from"./experiments/spec.js";import{ExperimentEvaluator as Ie}from"./experiments/evaluator.js";import{AppBlueprintRegistry as Le,makeAppBlueprintKey as Re}from"./app-config/spec.js";import{composeAppConfig as ze,resolveAppConfig as Be}from"./app-config/runtime.js";import{IntegrationSpecRegistry as Ve,makeIntegrationSpecKey as He}from"./integrations/spec.js";import{registerStripeIntegration as Ue,stripeIntegrationSpec as We}from"./integrations/providers/stripe.js";import{postmarkIntegrationSpec as Ge,registerPostmarkIntegration as Ke}from"./integrations/providers/postmark.js";import{qdrantIntegrationSpec as qe,registerQdrantIntegration as Je}from"./integrations/providers/qdrant.js";import{mistralIntegrationSpec as Ye,registerMistralIntegration as Xe}from"./integrations/providers/mistral.js";import{elevenLabsIntegrationSpec as Ze,registerElevenLabsIntegration as Qe}from"./integrations/providers/elevenlabs.js";import{gmailIntegrationSpec as $e,registerGmailIntegration as et}from"./integrations/providers/gmail.js";import{googleCalendarIntegrationSpec as tt,registerGoogleCalendarIntegration as nt}from"./integrations/providers/google-calendar.js";import{registerTwilioSmsIntegration as rt,twilioSmsIntegrationSpec as it}from"./integrations/providers/twilio-sms.js";import{gcsStorageIntegrationSpec as at,registerGcsStorageIntegration as ot}from"./integrations/providers/gcs-storage.js";import{powensIntegrationSpec as st,registerPowensIntegration as ct}from"./integrations/providers/powens.js";import{MistralLLMProvider as lt}from"./integrations/providers/impls/mistral-llm.js";import{MistralEmbeddingProvider as ut}from"./integrations/providers/impls/mistral-embedding.js";import{QdrantVectorProvider as dt}from"./integrations/providers/impls/qdrant-vector.js";import{GmailInboundProvider as ft}from"./integrations/providers/impls/gmail-inbound.js";import{GmailOutboundProvider as pt}from"./integrations/providers/impls/gmail-outbound.js";import{GoogleCalendarProvider as mt}from"./integrations/providers/impls/google-calendar.js";import{ElevenLabsVoiceProvider as ht}from"./integrations/providers/impls/elevenlabs-voice.js";import{GoogleCloudStorageProvider as gt}from"./integrations/providers/impls/gcs-storage.js";import{StripePaymentsProvider as _t}from"./integrations/providers/impls/stripe-payments.js";import{PostmarkEmailProvider as vt}from"./integrations/providers/impls/postmark-email.js";import{TwilioSmsProvider as yt}from"./integrations/providers/impls/twilio-sms.js";import{PowensClient as bt,PowensClientError as xt}from"./integrations/providers/impls/powens-client.js";import{PowensOpenBankingProvider as St}from"./integrations/providers/impls/powens-openbanking.js";import{IntegrationProviderFactory as Ct}from"./integrations/providers/impls/provider-factory.js";import{SecretProviderError as wt,normalizeSecretPayload as Tt,parseSecretUri as Et}from"./integrations/secrets/provider.js";import{GcpSecretManagerProvider as Dt}from"./integrations/secrets/gcp-secret-manager.js";import{EnvSecretProvider as Ot}from"./integrations/secrets/env-secret-provider.js";import{SecretProviderManager as kt}from"./integrations/secrets/manager.js";import{IntegrationCallGuard as At,connectionStatusLabel as jt,ensureConnectionReady as Mt}from"./integrations/runtime.js";import{IntegrationHealthService as Nt}from"./integrations/health.js";import{AccountBalanceRecord as Pt,BankAccountRecord as Ft,BankTransactionRecord as It}from"./integrations/openbanking/models.js";import{OPENBANKING_PII_FIELDS as Lt,OPENBANKING_TELEMETRY_EVENTS as Rt,redactOpenBankingTelemetryPayload as zt}from"./integrations/openbanking/telemetry.js";import{OpenBankingGetAccount as Bt,OpenBankingListAccounts as Vt,OpenBankingSyncAccounts as Ht}from"./integrations/openbanking/contracts/accounts.js";import{OpenBankingListTransactions as Ut,OpenBankingSyncTransactions as Wt}from"./integrations/openbanking/contracts/transactions.js";import{OpenBankingGetBalances as Gt,OpenBankingRefreshBalances as Kt}from"./integrations/openbanking/contracts/balances.js";import{registerOpenBankingContracts as qt}from"./integrations/openbanking/contracts/index.js";import{assertPrimaryOpenBankingReady as Jt,ensurePrimaryOpenBankingIntegration as Yt}from"./integrations/openbanking/guards.js";import"./integrations/index.js";import{KnowledgeSpaceRegistry as Xt,makeKnowledgeSpaceKey as Zt}from"./knowledge/spec.js";import{productCanonKnowledgeSpace as Qt,registerProductCanonKnowledgeSpace as $t}from"./knowledge/spaces/product-canon.js";import{registerSupportFaqKnowledgeSpace as en,supportFaqKnowledgeSpace as tn}from"./knowledge/spaces/support-faq.js";import{emailThreadsKnowledgeSpace as nn,registerEmailThreadsKnowledgeSpace as rn}from"./knowledge/spaces/email-threads.js";import{registerUploadedDocsKnowledgeSpace as an,uploadedDocsKnowledgeSpace as on}from"./knowledge/spaces/uploaded-docs.js";import{financialDocsKnowledgeSpace as sn,registerFinancialDocsKnowledgeSpace as cn}from"./knowledge/spaces/financial-docs.js";import{financialOverviewKnowledgeSpace as ln,registerFinancialOverviewKnowledgeSpace as un}from"./knowledge/spaces/financial-overview.js";import"./knowledge/index.js";import{CreateIntegrationConnection as dn,DeleteIntegrationConnection as fn,ListIntegrationConnections as pn,TestIntegrationConnection as mn,UpdateIntegrationConnection as hn,integrationContracts as gn,registerIntegrationContracts as _n}from"./integrations/contracts.js";import{CreateKnowledgeSource as vn,DeleteKnowledgeSource as yn,ListKnowledgeSources as bn,TriggerKnowledgeSourceSync as xn,UpdateKnowledgeSource as Sn,knowledgeContracts as Cn,registerKnowledgeContracts as wn}from"./knowledge/contracts.js";import{behaviorToEnvelope as Tn,errorToEnvelope as En,telemetryToEnvelope as Dn}from"./regenerator/utils.js";import{RegeneratorService as On}from"./regenerator/service.js";import{ProposalExecutor as kn}from"./regenerator/executor.js";import{ExecutorProposalSink as An}from"./regenerator/sinks.js";import"./regenerator/index.js";import{WorkflowRegistry as jn}from"./workflow/spec.js";import{WorkflowValidationError as Mn,assertWorkflowSpecValid as Nn,validateWorkflowSpec as Pn}from"./workflow/validation.js";import{evaluateExpression as Fn}from"./workflow/expression.js";import{WorkflowPreFlightError as In,WorkflowRunner as Ln}from"./workflow/runner.js";import{InMemoryStateStore as Rn}from"./workflow/adapters/memory-store.js";import{PrismaStateStore as zn}from"./workflow/adapters/db-adapter.js";import{createFileStateStore as Bn}from"./workflow/adapters/file-adapter.js";import"./workflow/index.js";export{Pt as AccountBalanceRecord,Le as AppBlueprintRegistry,Ft as BankAccountRecord,It as BankTransactionRecord,e as CapabilityRegistry,ae as CompleteOnboardingBaseInput,oe as CompleteOnboardingBaseOutput,se as CompleteOnboardingBaseSpec,dn as CreateIntegrationConnection,vn as CreateKnowledgeSource,r as DataViewRegistry,fn as DeleteIntegrationConnection,yn as DeleteKnowledgeSource,ce as DeleteOnboardingDraftBaseSpec,le as DeleteOnboardingDraftOutput,ht as ElevenLabsVoiceProvider,Ot as EnvSecretProvider,An as ExecutorProposalSink,Ie as ExperimentEvaluator,Pe as ExperimentRegistry,s as FeatureRegistry,u as FormRegistry,Dt as GcpSecretManagerProvider,ue as GetOnboardingDraftBaseSpec,de as GetOnboardingDraftOutput,ft as GmailInboundProvider,pt as GmailOutboundProvider,mt as GoogleCalendarProvider,gt as GoogleCloudStorageProvider,Rn as InMemoryStateStore,At as IntegrationCallGuard,Nt as IntegrationHealthService,Ct as IntegrationProviderFactory,Ve as IntegrationSpecRegistry,Xt as KnowledgeSpaceRegistry,pn as ListIntegrationConnections,bn as ListKnowledgeSources,Ee as MigrationRegistry,ut as MistralEmbeddingProvider,lt as MistralLLMProvider,Se as OPAPolicyAdapter,Lt as OPENBANKING_PII_FIELDS,Rt as OPENBANKING_TELEMETRY_EVENTS,Bt as OpenBankingGetAccount,Gt as OpenBankingGetBalances,Vt as OpenBankingListAccounts,Ut as OpenBankingListTransactions,Kt as OpenBankingRefreshBalances,Ht as OpenBankingSyncAccounts,Wt as OpenBankingSyncTransactions,ee as Owners,te as OwnersEnum,xe as PolicyEngine,ye as PolicyRegistry,vt as PostmarkEmailProvider,bt as PowensClient,xt as PowensClientError,St as PowensOpenBankingProvider,j as PresentationRegistry,zn as PrismaStateStore,J as PromptRegistry,kn as ProposalExecutor,dt as QdrantVectorProvider,On as RegeneratorService,Y as ResourceRegistry,fe as SaveOnboardingDraftBaseSpec,pe as SaveOnboardingDraftInput,me as SaveOnboardingDraftOutput,wt as SecretProviderError,kt as SecretProviderManager,H as SpecRegistry,ne as StabilityEnum,_t as StripePaymentsProvider,re as Tags,ie as TagsEnum,Ae as TelemetryAnomalyMonitor,De as TelemetryRegistry,ke as TelemetryTracker,mn as TestIntegrationConnection,je as TestRegistry,Ne as TestRunner,we as ThemeRegistry,m as TransformEngine,xn as TriggerKnowledgeSourceSync,yt as TwilioSmsProvider,hn as UpdateIntegrationConnection,Sn as UpdateKnowledgeSource,In as WorkflowPreFlightError,jn as WorkflowRegistry,Ln as WorkflowRunner,Mn as WorkflowValidationError,Jt as assertPrimaryOpenBankingReady,Nn as assertWorkflowSpecValid,Tn as behaviorToEnvelope,Ce as buildOPAInput,d as buildZodWithRelations,t as capabilityKey,ze as composeAppConfig,jt as connectionStatusLabel,h as createDefaultTransformEngine,v as createEngineWithDefaults,y as createFeatureModule,P as createFetchHandler,Bn as createFileStateStore,S as createFormRenderer,N as createMcpServer,i as dataViewKey,T as defaultGqlField,E as defaultMcpTool,D as defaultRestPath,n as defineCapability,z as defineCommand,a as defineEvent,f as defineFormSpec,q as definePrompt,B as defineQuery,X as defineResourceTemplate,Ze as elevenLabsIntegrationSpec,F as elysiaPlugin,nn as emailThreadsKnowledgeSpace,Mt as ensureConnectionReady,Yt as ensurePrimaryOpenBankingIntegration,En as errorToEnvelope,p as evalPredicate,Fn as evaluateExpression,o as eventKey,A as exportContractsToGraphQLSchema,I as expressRouter,sn as financialDocsKnowledgeSpace,ln as financialOverviewKnowledgeSpace,at as gcsStorageIntegrationSpec,$e as gmailIntegrationSpec,tt as googleCalendarIntegrationSpec,c as installFeature,W as installOp,gn as integrationContracts,V as isEmitDeclRef,Z as isResourceRef,M as jsonSchemaForPresentation,O as jsonSchemaForSpec,Cn as knowledgeContracts,Re as makeAppBlueprintKey,G as makeEmit,Fe as makeExperimentKey,He as makeIntegrationSpecKey,Zt as makeKnowledgeSpaceKey,L as makeNextAppHandler,R as makeNextPagesHandler,be as makePolicyKey,Oe as makeTelemetryKey,Me as makeTestKey,Te as makeThemeRef,Ye as mistralIntegrationSpec,Tt as normalizeSecretPayload,K as op,U as opKey,he as openBankingAccountsReadCapability,ge as openBankingBalancesReadCapability,_e as openBankingTransactionsReadCapability,Et as parseSecretUri,Ge as postmarkIntegrationSpec,st as powensIntegrationSpec,Qt as productCanonKnowledgeSpace,qe as qdrantIntegrationSpec,zt as redactOpenBankingTelemetryPayload,g as registerBasicValidation,k as registerContractsOnBuilder,_ as registerDefaultReactRenderer,Qe as registerElevenLabsIntegration,rn as registerEmailThreadsKnowledgeSpace,b as registerFeature,cn as registerFinancialDocsKnowledgeSpace,un as registerFinancialOverviewKnowledgeSpace,ot as registerGcsStorageIntegration,et as registerGmailIntegration,nt as registerGoogleCalendarIntegration,_n as registerIntegrationContracts,wn as registerKnowledgeContracts,Xe as registerMistralIntegration,ve as registerOpenBankingCapabilities,qt as registerOpenBankingContracts,Ke as registerPostmarkIntegration,ct as registerPowensIntegration,$t as registerProductCanonKnowledgeSpace,Je as registerQdrantIntegration,Ue as registerStripeIntegration,en as registerSupportFaqKnowledgeSpace,rt as registerTwilioSmsIntegration,an as registerUploadedDocsKnowledgeSpace,x as renderFeaturePresentation,Be as resolveAppConfig,Q as resourceRef,w as rnReusablesDriver,C as shadcnDriver,We as stripeIntegrationSpec,tn as supportFaqKnowledgeSpace,Dn as telemetryToEnvelope,$ as toV2FromV1,it as twilioSmsIntegrationSpec,on as uploadedDocsKnowledgeSpace,l as validateFeatureTargetsV2,Pn as validateWorkflowSpec};
package/dist/install.d.ts CHANGED
@@ -4,6 +4,7 @@ import { AnyContractSpec, ContractSpec, EmitDecl } from "./spec.js";
4
4
  import { HandlerCtx } from "./types.js";
5
5
  import { SpecRegistry } from "./registry.js";
6
6
  import { z } from "zod";
7
+ import { AnySchemaModel, ZodSchemaModel } from "@lssm/lib.schema";
7
8
 
8
9
  //#region src/install.d.ts
9
10
  /** Infer input/output types from a ContractSpec */