@lssm/example.locale-jurisdiction-gate 0.0.0-canary-20251217083314 → 0.0.0-canary-20251219202229

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 (178) hide show
  1. package/.turbo/turbo-build$colon$bundle.log +288 -232
  2. package/.turbo/turbo-build.log +289 -43
  3. package/CHANGELOG.md +3 -3
  4. package/LICENSE +21 -0
  5. package/dist/contracts/assistant.d.ts +62 -61
  6. package/dist/contracts/assistant.d.ts.map +1 -0
  7. package/dist/contracts/assistant.js +7 -8
  8. package/dist/contracts/assistant.js.map +1 -0
  9. package/dist/docs/locale-jurisdiction-gate.docblock.js +2 -1
  10. package/dist/docs/locale-jurisdiction-gate.docblock.js.map +1 -0
  11. package/dist/entities/models.d.ts +50 -49
  12. package/dist/entities/models.d.ts.map +1 -0
  13. package/dist/entities/models.js +33 -35
  14. package/dist/entities/models.js.map +1 -0
  15. package/dist/events.d.ts +21 -20
  16. package/dist/events.d.ts.map +1 -0
  17. package/dist/events.js +21 -21
  18. package/dist/events.js.map +1 -0
  19. package/dist/example.d.ts +2 -1
  20. package/dist/example.d.ts.map +1 -0
  21. package/dist/example.js +2 -1
  22. package/dist/example.js.map +1 -0
  23. package/dist/handlers/demo.handlers.d.ts +2 -1
  24. package/dist/handlers/demo.handlers.d.ts.map +1 -0
  25. package/dist/handlers/demo.handlers.js +2 -1
  26. package/dist/handlers/demo.handlers.js.map +1 -0
  27. package/dist/libs/contracts/dist/capabilities/openbanking.js +2 -1
  28. package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
  29. package/dist/libs/contracts/dist/contract-registry/schemas.js +2 -1
  30. package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
  31. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
  32. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
  33. package/dist/libs/contracts/dist/docs/index.js +2 -6
  34. package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
  35. package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
  36. package/dist/libs/contracts/dist/docs/presentations.js +2 -1
  37. package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
  38. package/dist/libs/contracts/dist/docs/registry.js +2 -1
  39. package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
  40. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
  41. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
  42. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
  43. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
  44. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
  45. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
  46. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
  47. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
  48. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
  49. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
  50. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
  51. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
  52. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
  53. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
  54. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
  55. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
  56. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
  57. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
  58. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
  59. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
  60. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
  61. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
  62. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
  63. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
  64. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
  65. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
  66. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
  67. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
  68. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
  69. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
  70. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
  71. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
  72. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
  73. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
  74. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
  75. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
  76. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
  77. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
  78. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
  79. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
  80. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
  81. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
  82. package/dist/libs/contracts/dist/events.js +2 -1
  83. package/dist/libs/contracts/dist/events.js.map +1 -0
  84. package/dist/libs/contracts/dist/index.js +3 -2
  85. package/dist/libs/contracts/dist/integrations/contracts.js +65 -66
  86. package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -0
  87. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
  88. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  89. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
  90. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  91. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
  92. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  93. package/dist/libs/contracts/dist/integrations/openbanking/models.js +60 -61
  94. package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
  95. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +2 -1
  96. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
  97. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +2 -1
  98. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
  99. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +2 -1
  100. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
  101. package/dist/libs/contracts/dist/integrations/providers/gmail.js +2 -1
  102. package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
  103. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +2 -1
  104. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
  105. package/dist/libs/contracts/dist/integrations/providers/mistral.js +2 -1
  106. package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
  107. package/dist/libs/contracts/dist/integrations/providers/postmark.js +2 -1
  108. package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
  109. package/dist/libs/contracts/dist/integrations/providers/powens.js +2 -1
  110. package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
  111. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +2 -1
  112. package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
  113. package/dist/libs/contracts/dist/integrations/providers/stripe.js +2 -1
  114. package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
  115. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +2 -1
  116. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
  117. package/dist/libs/contracts/dist/knowledge/contracts.js +44 -45
  118. package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -0
  119. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +2 -1
  120. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
  121. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
  122. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
  123. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
  124. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
  125. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +2 -1
  126. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
  127. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +2 -1
  128. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
  129. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
  130. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  131. package/dist/libs/contracts/dist/llm/exporters.js +2 -1
  132. package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
  133. package/dist/libs/contracts/dist/onboarding-base.js +22 -23
  134. package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
  135. package/dist/libs/contracts/dist/ownership.js +4 -2
  136. package/dist/libs/contracts/dist/ownership.js.map +1 -0
  137. package/dist/libs/contracts/dist/presentations.v2.js +2 -1
  138. package/dist/libs/contracts/dist/presentations.v2.js.map +1 -0
  139. package/dist/libs/contracts/dist/regenerator/service.js +2 -1
  140. package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
  141. package/dist/libs/contracts/dist/schema/dist/index.js +3874 -6
  142. package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -0
  143. package/dist/libs/contracts/dist/spec.js +2 -1
  144. package/dist/libs/contracts/dist/spec.js.map +1 -0
  145. package/dist/libs/schema/dist/index.js +4717 -6
  146. package/dist/libs/schema/dist/index.js.map +1 -0
  147. package/dist/locale-jurisdiction-gate.feature.d.ts +2 -1
  148. package/dist/locale-jurisdiction-gate.feature.d.ts.map +1 -0
  149. package/dist/locale-jurisdiction-gate.feature.js +2 -1
  150. package/dist/locale-jurisdiction-gate.feature.js.map +1 -0
  151. package/dist/policy/guard.d.ts +2 -1
  152. package/dist/policy/guard.d.ts.map +1 -0
  153. package/dist/policy/guard.js +2 -1
  154. package/dist/policy/guard.js.map +1 -0
  155. package/dist/policy/types.d.ts +2 -1
  156. package/dist/policy/types.d.ts.map +1 -0
  157. package/package.json +8 -7
  158. package/tsconfig.tsbuildinfo +1 -1
  159. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  160. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  161. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  162. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  163. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  164. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  165. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  166. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  167. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  168. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -39
  169. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  170. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  171. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  172. package/dist/libs/schema/dist/EnumType.js +0 -56
  173. package/dist/libs/schema/dist/FieldType.js +0 -49
  174. package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
  175. package/dist/libs/schema/dist/SchemaModel.js +0 -39
  176. package/dist/libs/schema/dist/entity/defineEntity.js +0 -1
  177. package/dist/libs/schema/dist/entity/index.js +0 -2
  178. package/dist/libs/schema/dist/entity/types.js +0 -1
@@ -1,6 +1,4 @@
1
- import { SchemaModel } from "./schema/dist/SchemaModel.js";
2
- import { ScalarTypeEnum } from "./schema/dist/ScalarTypeEnum.js";
3
- import "./schema/dist/index.js";
1
+ import { E5, x8 } from "./schema/dist/index.js";
4
2
  import { defineCommand, defineQuery } from "./spec.js";
5
3
  import { OwnersEnum, StabilityEnum } from "./ownership.js";
6
4
 
@@ -10,24 +8,24 @@ import { OwnersEnum, StabilityEnum } from "./ownership.js";
10
8
  * These operations are reusable for any app that needs multi-step onboarding with draft persistence.
11
9
  */
12
10
  /** Save/update onboarding draft (auto-save during flow) */
13
- const SaveOnboardingDraftInput = new SchemaModel({
11
+ const SaveOnboardingDraftInput = new x8({
14
12
  name: "SaveOnboardingDraftInput",
15
13
  description: "Input for saving onboarding draft",
16
14
  fields: { data: {
17
- type: ScalarTypeEnum.JSON(),
15
+ type: E5.JSON(),
18
16
  isOptional: false
19
17
  } }
20
18
  });
21
- const SaveOnboardingDraftOutput = new SchemaModel({
19
+ const SaveOnboardingDraftOutput = new x8({
22
20
  name: "SaveOnboardingDraftOutput",
23
21
  description: "Output for saving onboarding draft",
24
22
  fields: {
25
23
  id: {
26
- type: ScalarTypeEnum.ID(),
24
+ type: E5.ID(),
27
25
  isOptional: false
28
26
  },
29
27
  organizationId: {
30
- type: ScalarTypeEnum.ID(),
28
+ type: E5.ID(),
31
29
  isOptional: false
32
30
  }
33
31
  }
@@ -57,28 +55,28 @@ const SaveOnboardingDraftBaseSpec = defineCommand({
57
55
  }
58
56
  });
59
57
  /** Get current onboarding draft (on mount/restore) */
60
- const GetOnboardingDraftOutput = new SchemaModel({
58
+ const GetOnboardingDraftOutput = new x8({
61
59
  name: "GetOnboardingDraftOutput",
62
60
  description: "Onboarding draft payload",
63
61
  fields: {
64
62
  id: {
65
- type: ScalarTypeEnum.ID(),
63
+ type: E5.ID(),
66
64
  isOptional: true
67
65
  },
68
66
  organizationId: {
69
- type: ScalarTypeEnum.ID(),
67
+ type: E5.ID(),
70
68
  isOptional: true
71
69
  },
72
70
  data: {
73
- type: ScalarTypeEnum.JSON(),
71
+ type: E5.JSON(),
74
72
  isOptional: true
75
73
  },
76
74
  createdAt: {
77
- type: ScalarTypeEnum.DateTime(),
75
+ type: E5.DateTime(),
78
76
  isOptional: true
79
77
  },
80
78
  updatedAt: {
81
- type: ScalarTypeEnum.DateTime(),
79
+ type: E5.DateTime(),
82
80
  isOptional: true
83
81
  }
84
82
  }
@@ -108,11 +106,11 @@ const GetOnboardingDraftBaseSpec = defineQuery({
108
106
  }
109
107
  });
110
108
  /** Delete onboarding draft (cleanup after completion or cancel) */
111
- const DeleteOnboardingDraftOutput = new SchemaModel({
109
+ const DeleteOnboardingDraftOutput = new x8({
112
110
  name: "DeleteOnboardingDraftOutput",
113
111
  description: "Result of delete operation",
114
112
  fields: { ok: {
115
- type: ScalarTypeEnum.Boolean(),
113
+ type: E5.Boolean(),
116
114
  isOptional: false
117
115
  } }
118
116
  });
@@ -141,28 +139,28 @@ const DeleteOnboardingDraftBaseSpec = defineCommand({
141
139
  }
142
140
  });
143
141
  /** Complete onboarding (final submit, creates entities) */
144
- const CompleteOnboardingBaseInput = new SchemaModel({
142
+ const CompleteOnboardingBaseInput = new x8({
145
143
  name: "CompleteOnboardingBaseInput",
146
144
  description: "Input for completing onboarding",
147
145
  fields: { data: {
148
- type: ScalarTypeEnum.JSON(),
146
+ type: E5.JSON(),
149
147
  isOptional: false
150
148
  } }
151
149
  });
152
- const CompleteOnboardingBaseOutput = new SchemaModel({
150
+ const CompleteOnboardingBaseOutput = new x8({
153
151
  name: "CompleteOnboardingBaseOutput",
154
152
  description: "Result of onboarding completion",
155
153
  fields: {
156
154
  success: {
157
- type: ScalarTypeEnum.Boolean(),
155
+ type: E5.Boolean(),
158
156
  isOptional: false
159
157
  },
160
158
  userId: {
161
- type: ScalarTypeEnum.ID(),
159
+ type: E5.ID(),
162
160
  isOptional: true
163
161
  },
164
162
  organizationId: {
165
- type: ScalarTypeEnum.ID(),
163
+ type: E5.ID(),
166
164
  isOptional: true
167
165
  }
168
166
  }
@@ -193,4 +191,5 @@ const CompleteOnboardingBaseSpec = defineCommand({
193
191
  });
194
192
 
195
193
  //#endregion
196
- export { CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, DeleteOnboardingDraftOutput, GetOnboardingDraftOutput, SaveOnboardingDraftInput, SaveOnboardingDraftOutput };
194
+ export { CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, DeleteOnboardingDraftOutput, GetOnboardingDraftOutput, SaveOnboardingDraftInput, SaveOnboardingDraftOutput };
195
+ //# sourceMappingURL=onboarding-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-base.js","names":[],"sources":["../../../../../../libs/contracts/dist/onboarding-base.js"],"sourcesContent":["import { E5, x8 } from \"./schema/dist/index.js\";\nimport { defineCommand, defineQuery } from \"./spec.js\";\nimport { OwnersEnum, StabilityEnum } from \"./ownership.js\";\n\n//#region src/onboarding-base.ts\n/**\n* Shared base contracts for onboarding flows across verticals.\n* These operations are reusable for any app that needs multi-step onboarding with draft persistence.\n*/\n/** Save/update onboarding draft (auto-save during flow) */\nconst SaveOnboardingDraftInput = new x8({\n\tname: \"SaveOnboardingDraftInput\",\n\tdescription: \"Input for saving onboarding draft\",\n\tfields: { data: {\n\t\ttype: E5.JSON(),\n\t\tisOptional: false\n\t} }\n});\nconst SaveOnboardingDraftOutput = new x8({\n\tname: \"SaveOnboardingDraftOutput\",\n\tdescription: \"Output for saving onboarding draft\",\n\tfields: {\n\t\tid: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\torganizationId: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: false\n\t\t}\n\t}\n});\nconst SaveOnboardingDraftBaseSpec = defineCommand({\n\tmeta: {\n\t\tname: \"base.onboarding.saveDraft\",\n\t\tversion: 1,\n\t\tstability: StabilityEnum.Beta,\n\t\towners: [OwnersEnum.PlatformSigil],\n\t\ttags: [\"onboarding\", \"draft\"],\n\t\tdescription: \"Save or update onboarding draft for active organization\",\n\t\tgoal: \"Persist onboarding progress incrementally for resumption and safety\",\n\t\tcontext: \"Auto-saves every few seconds during onboarding; enables users to leave and resume\"\n\t},\n\tio: {\n\t\tinput: SaveOnboardingDraftInput,\n\t\toutput: SaveOnboardingDraftOutput\n\t},\n\tpolicy: {\n\t\tauth: \"user\",\n\t\tescalate: null\n\t},\n\ttransport: {\n\t\tgql: { field: \"saveOnboardingDraft\" },\n\t\trest: { method: \"POST\" }\n\t}\n});\n/** Get current onboarding draft (on mount/restore) */\nconst GetOnboardingDraftOutput = new x8({\n\tname: \"GetOnboardingDraftOutput\",\n\tdescription: \"Onboarding draft payload\",\n\tfields: {\n\t\tid: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: true\n\t\t},\n\t\torganizationId: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: true\n\t\t},\n\t\tdata: {\n\t\t\ttype: E5.JSON(),\n\t\t\tisOptional: true\n\t\t},\n\t\tcreatedAt: {\n\t\t\ttype: E5.DateTime(),\n\t\t\tisOptional: true\n\t\t},\n\t\tupdatedAt: {\n\t\t\ttype: E5.DateTime(),\n\t\t\tisOptional: true\n\t\t}\n\t}\n});\nconst GetOnboardingDraftBaseSpec = defineQuery({\n\tmeta: {\n\t\tname: \"base.onboarding.getDraft\",\n\t\tversion: 1,\n\t\tstability: StabilityEnum.Beta,\n\t\towners: [OwnersEnum.PlatformSigil],\n\t\ttags: [\"onboarding\", \"draft\"],\n\t\tdescription: \"Get onboarding draft for active organization\",\n\t\tgoal: \"Retrieve saved onboarding progress\",\n\t\tcontext: \"Called on mount to restore in-progress onboarding\"\n\t},\n\tio: {\n\t\tinput: null,\n\t\toutput: GetOnboardingDraftOutput\n\t},\n\tpolicy: {\n\t\tauth: \"user\",\n\t\tescalate: null\n\t},\n\ttransport: {\n\t\tgql: { field: \"getOnboardingDraft\" },\n\t\trest: { method: \"GET\" }\n\t}\n});\n/** Delete onboarding draft (cleanup after completion or cancel) */\nconst DeleteOnboardingDraftOutput = new x8({\n\tname: \"DeleteOnboardingDraftOutput\",\n\tdescription: \"Result of delete operation\",\n\tfields: { ok: {\n\t\ttype: E5.Boolean(),\n\t\tisOptional: false\n\t} }\n});\nconst DeleteOnboardingDraftBaseSpec = defineCommand({\n\tmeta: {\n\t\tname: \"base.onboarding.deleteDraft\",\n\t\tversion: 1,\n\t\tstability: StabilityEnum.Beta,\n\t\towners: [OwnersEnum.PlatformSigil],\n\t\ttags: [\"onboarding\", \"draft\"],\n\t\tdescription: \"Delete onboarding draft for active organization\",\n\t\tgoal: \"Clear draft after completion or if user wants to restart\",\n\t\tcontext: \"Called after successful onboarding or explicit user reset\"\n\t},\n\tio: {\n\t\tinput: null,\n\t\toutput: DeleteOnboardingDraftOutput\n\t},\n\tpolicy: {\n\t\tauth: \"user\",\n\t\tescalate: null\n\t},\n\ttransport: {\n\t\tgql: { field: \"deleteOnboardingDraft\" },\n\t\trest: { method: \"POST\" }\n\t}\n});\n/** Complete onboarding (final submit, creates entities) */\nconst CompleteOnboardingBaseInput = new x8({\n\tname: \"CompleteOnboardingBaseInput\",\n\tdescription: \"Input for completing onboarding\",\n\tfields: { data: {\n\t\ttype: E5.JSON(),\n\t\tisOptional: false\n\t} }\n});\nconst CompleteOnboardingBaseOutput = new x8({\n\tname: \"CompleteOnboardingBaseOutput\",\n\tdescription: \"Result of onboarding completion\",\n\tfields: {\n\t\tsuccess: {\n\t\t\ttype: E5.Boolean(),\n\t\t\tisOptional: false\n\t\t},\n\t\tuserId: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: true\n\t\t},\n\t\torganizationId: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: true\n\t\t}\n\t}\n});\nconst CompleteOnboardingBaseSpec = defineCommand({\n\tmeta: {\n\t\tname: \"base.onboarding.complete\",\n\t\tversion: 1,\n\t\tstability: StabilityEnum.Beta,\n\t\towners: [OwnersEnum.PlatformSigil],\n\t\ttags: [\"onboarding\"],\n\t\tdescription: \"Complete onboarding and finalize user/organization setup\",\n\t\tgoal: \"Transition from draft to active profile\",\n\t\tcontext: \"Validates all required fields, creates/updates entities, marks onboarding complete\"\n\t},\n\tio: {\n\t\tinput: CompleteOnboardingBaseInput,\n\t\toutput: CompleteOnboardingBaseOutput\n\t},\n\tpolicy: {\n\t\tauth: \"user\",\n\t\tescalate: null\n\t},\n\ttransport: {\n\t\tgql: { field: \"completeOnboarding\" },\n\t\trest: { method: \"POST\" }\n\t}\n});\n\n//#endregion\nexport { CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, CompleteOnboardingBaseSpec, DeleteOnboardingDraftBaseSpec, DeleteOnboardingDraftOutput, GetOnboardingDraftBaseSpec, GetOnboardingDraftOutput, SaveOnboardingDraftBaseSpec, SaveOnboardingDraftInput, SaveOnboardingDraftOutput };\n//# sourceMappingURL=onboarding-base.js.map"],"mappings":"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"}
@@ -14,8 +14,10 @@ const OwnersEnum = {
14
14
  PlatformSigil: "platform.sigil",
15
15
  PlatformMarketplace: "platform.marketplace",
16
16
  PlatformContent: "platform.content",
17
- PlatformFeatureFlags: "platform.featureflags"
17
+ PlatformFeatureFlags: "platform.featureflags",
18
+ PlatformFinance: "platform.finance"
18
19
  };
19
20
 
20
21
  //#endregion
21
- export { OwnersEnum, StabilityEnum };
22
+ export { OwnersEnum, StabilityEnum };
23
+ //# sourceMappingURL=ownership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownership.js","names":[],"sources":["../../../../../../libs/contracts/dist/ownership.js"],"sourcesContent":["//#region src/ownership.ts\nconst StabilityEnum = {\n\tIdea: \"idea\",\n\tInCreation: \"in_creation\",\n\tExperimental: \"experimental\",\n\tBeta: \"beta\",\n\tStable: \"stable\",\n\tDeprecated: \"deprecated\"\n};\nconst OwnersEnum = {\n\tProductColiving: \"product.coliving\",\n\tProductStrit: \"product.strit\",\n\tProductArtisanos: \"product.artisanos\",\n\tPlatformSigil: \"platform.sigil\",\n\tPlatformMarketplace: \"platform.marketplace\",\n\tPlatformContent: \"platform.content\",\n\tPlatformFeatureFlags: \"platform.featureflags\",\n\tPlatformFinance: \"platform.finance\"\n};\nconst Owners = OwnersEnum;\nconst TagsEnum = {\n\tSpots: \"spots\",\n\tCollectivity: \"collectivity\",\n\tMarketplace: \"marketplace\",\n\tSellers: \"sellers\",\n\tAuth: \"auth\",\n\tLogin: \"login\",\n\tSignup: \"signup\",\n\tGuide: \"guide\",\n\tDocs: \"docs\",\n\tI18n: \"i18n\",\n\tIncident: \"incident\",\n\tAutomation: \"automation\",\n\tHygiene: \"hygiene\"\n};\nconst Tags = TagsEnum;\n\n//#endregion\nexport { Owners, OwnersEnum, StabilityEnum, Tags, TagsEnum };\n//# sourceMappingURL=ownership.js.map"],"mappings":";AACA,MAAM,gBAAgB;CACrB,MAAM;CACN,YAAY;CACZ,cAAc;CACd,MAAM;CACN,QAAQ;CACR,YAAY;CACZ;AACD,MAAM,aAAa;CAClB,iBAAiB;CACjB,cAAc;CACd,kBAAkB;CAClB,eAAe;CACf,qBAAqB;CACrB,iBAAiB;CACjB,sBAAsB;CACtB,iBAAiB;CACjB"}
@@ -8,4 +8,5 @@ import TurndownService from "turndown";
8
8
  */
9
9
  const turndown = new TurndownService();
10
10
 
11
- //#endregion
11
+ //#endregion
12
+ //# sourceMappingURL=presentations.v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentations.v2.js","names":[],"sources":["../../../../../../libs/contracts/dist/presentations.v2.js"],"sourcesContent":["import { schemaToMarkdown } from \"./schema-to-markdown.js\";\nimport React from \"react\";\nimport TurndownService from \"turndown\";\n\n//#region src/presentations.v2.ts\n/**\n* Pluggable transform engine that renders descriptors to various targets\n* and runs validators (e.g., basic metadata checks, PII redaction policies).\n*/\nconst turndown = new TurndownService();\nfunction renderTextNode(node) {\n\tconst text = node.text ?? \"\";\n\tif (!node.marks || node.marks.length === 0) return text;\n\treturn node.marks.reduce((acc, mark) => {\n\t\tswitch (mark.type) {\n\t\t\tcase \"bold\": return `**${acc}**`;\n\t\t\tcase \"italic\": return `*${acc}*`;\n\t\t\tcase \"underline\": return `__${acc}__`;\n\t\t\tcase \"strike\": return `~~${acc}~~`;\n\t\t\tcase \"code\": return `\\`${acc}\\``;\n\t\t\tcase \"link\": {\n\t\t\t\tconst href = mark.attrs?.href ?? \"\";\n\t\t\t\treturn href ? `[${acc}](${href})` : acc;\n\t\t\t}\n\t\t\tdefault: return acc;\n\t\t}\n\t}, text);\n}\nfunction renderInline(nodes) {\n\tif (!nodes?.length) return \"\";\n\treturn nodes.map((child) => renderNode(child)).join(\"\");\n}\nfunction renderList(nodes, ordered = false) {\n\tif (!nodes?.length) return \"\";\n\tlet counter = 1;\n\treturn nodes.map((item) => {\n\t\tconst body = renderInline(item.content ?? []);\n\t\tif (!body) return \"\";\n\t\treturn `${ordered ? `${counter++}. ` : \"- \"}${body}`;\n\t}).filter(Boolean).join(\"\\n\");\n}\nfunction renderNode(node) {\n\tswitch (node.type) {\n\t\tcase \"doc\": return renderInline(node.content);\n\t\tcase \"paragraph\": {\n\t\t\tconst text = renderInline(node.content);\n\t\t\treturn text.trim().length ? text : \"\";\n\t\t}\n\t\tcase \"heading\": {\n\t\t\tconst level = Math.min(Math.max(node.attrs?.level ?? 1, 1), 6);\n\t\t\treturn `${\"#\".repeat(level)} ${renderInline(node.content)}`.trim();\n\t\t}\n\t\tcase \"bullet_list\": return renderList(node.content, false);\n\t\tcase \"ordered_list\": return renderList(node.content, true);\n\t\tcase \"list_item\": return renderInline(node.content);\n\t\tcase \"blockquote\": return renderInline(node.content).split(\"\\n\").map((line) => `> ${line}`).join(\"\\n\");\n\t\tcase \"code_block\": {\n\t\t\tconst body = renderInline(node.content);\n\t\t\treturn body ? `\\`\\`\\`\\n${body}\\n\\`\\`\\`` : \"\";\n\t\t}\n\t\tcase \"horizontal_rule\": return \"---\";\n\t\tcase \"hard_break\": return \"\\n\";\n\t\tcase \"text\": return renderTextNode(node);\n\t\tdefault:\n\t\t\tif (node.text) return renderTextNode(node);\n\t\t\treturn \"\";\n\t}\n}\nfunction blockNoteToMarkdown(docJson) {\n\tif (typeof docJson === \"string\") return docJson;\n\tif (docJson && typeof docJson === \"object\" && \"html\" in docJson) {\n\t\tconst html = String(docJson.html);\n\t\treturn turndown.turndown(html);\n\t}\n\tconst root = docJson;\n\tif (root?.type === \"doc\" || root?.content) return (root.content ?? []).map((n) => renderNode(n)).filter(Boolean).join(\"\\n\\n\").trim();\n\ttry {\n\t\treturn JSON.stringify(docJson, null, 2);\n\t} catch {\n\t\treturn String(docJson);\n\t}\n}\nvar TransformEngine = class {\n\trenderers = /* @__PURE__ */ new Map();\n\tvalidators = [];\n\tregister(renderer) {\n\t\tconst arr = this.renderers.get(renderer.target) ?? [];\n\t\tarr.push(renderer);\n\t\tthis.renderers.set(renderer.target, arr);\n\t\treturn this;\n\t}\n\t/**\n\t* Register a renderer that will be tried BEFORE existing renderers for the same target.\n\t* Useful for custom renderers that should take priority over default ones.\n\t*/\n\tprependRegister(renderer) {\n\t\tconst arr = this.renderers.get(renderer.target) ?? [];\n\t\tarr.unshift(renderer);\n\t\tthis.renderers.set(renderer.target, arr);\n\t\treturn this;\n\t}\n\taddValidator(v) {\n\t\tthis.validators.push(v);\n\t\treturn this;\n\t}\n\tasync render(target, desc, ctx) {\n\t\tif (!desc.targets.includes(target)) throw new Error(`Target ${target} not declared for ${desc.meta.name}.v${desc.meta.version}`);\n\t\tfor (const v of this.validators) await v.validate(desc, target, ctx);\n\t\tconst arr = this.renderers.get(target) ?? [];\n\t\tfor (const r of arr) try {\n\t\t\treturn await r.render(desc, ctx);\n\t\t} catch (_e) {}\n\t\tthrow new Error(`No renderer available for ${target}`);\n\t}\n};\n/** Create a TransformEngine instance with default markdown/json/xml renderers. */\nfunction createDefaultTransformEngine() {\n\tconst engine = new TransformEngine();\n\tconst applyPii = (desc, obj) => {\n\t\tconst clone = JSON.parse(JSON.stringify(obj));\n\t\tconst paths = desc.policy?.pii ?? [];\n\t\tconst setAtPath = (root, path) => {\n\t\t\tconst segs = path.replace(/^\\//, \"\").replace(/\\[(\\d+)\\]/g, \".$1\").split(\".\").filter(Boolean);\n\t\t\tlet cur = root;\n\t\t\tfor (let i = 0; i < segs.length - 1; i++) {\n\t\t\t\tconst k = segs[i];\n\t\t\t\tif (cur && typeof cur === \"object\" && k in cur) cur = cur[k];\n\t\t\t\telse return;\n\t\t\t}\n\t\t\tconst last = segs[segs.length - 1];\n\t\t\tif (cur && typeof cur === \"object\" && last && last in cur) cur[last] = \"[REDACTED]\";\n\t\t};\n\t\tfor (const p of paths) setAtPath(clone, p);\n\t\treturn clone;\n\t};\n\tengine.register({\n\t\ttarget: \"markdown\",\n\t\tasync render(desc, ctx) {\n\t\t\tlet data = ctx?.data;\n\t\t\tif (!data && ctx?.fetchData) data = await ctx.fetchData();\n\t\t\tif (desc.source.type === \"component\" && desc.source.props && data !== void 0) {\n\t\t\t\tconst isArray = Array.isArray(data);\n\t\t\t\tconst isSimpleObject = !isArray && typeof data === \"object\" && data !== null && !Object.values(data).some((v) => Array.isArray(v) || typeof v === \"object\" && v !== null);\n\t\t\t\tif (isArray || isSimpleObject) return {\n\t\t\t\t\tmimeType: \"text/markdown\",\n\t\t\t\t\tbody: schemaToMarkdown(desc.source.props, data, {\n\t\t\t\t\t\ttitle: desc.meta.description ?? desc.meta.name,\n\t\t\t\t\t\tdescription: `${desc.meta.name} v${desc.meta.version}`\n\t\t\t\t\t})\n\t\t\t\t};\n\t\t\t\tthrow new Error(`Complex data structure for ${desc.meta.name} - expecting custom renderer`);\n\t\t\t}\n\t\t\tif (desc.source.type === \"blocknotejs\") {\n\t\t\t\tconst redacted = applyPii(desc, { text: blockNoteToMarkdown(desc.source.docJson) });\n\t\t\t\treturn {\n\t\t\t\t\tmimeType: \"text/markdown\",\n\t\t\t\t\tbody: String(redacted.text)\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (desc.source.type === \"component\" && data !== void 0) throw new Error(`No schema (source.props) available for ${desc.meta.name} - expecting custom renderer`);\n\t\t\tif (desc.source.type === \"component\") return {\n\t\t\t\tmimeType: \"text/markdown\",\n\t\t\t\tbody: `${`# ${desc.meta.name} v${desc.meta.version}`}${desc.meta.description ? `\\n\\n${desc.meta.description}` : \"\"}${desc.meta.tags && desc.meta.tags.length ? `\\n\\nTags: ${desc.meta.tags.join(\", \")}` : \"\"}${desc.meta.owners && desc.meta.owners.length ? `\\n\\nOwners: ${desc.meta.owners.join(\", \")}` : \"\"}${`\\n\\nComponent: \\`${desc.source.componentKey}\\``}${desc.policy?.pii?.length ? `\\n\\nRedacted paths: ${desc.policy.pii.map((p) => `\\`${p}\\``).join(\", \")}` : \"\"}`\n\t\t\t};\n\t\t\tthrow new Error(\"unsupported\");\n\t\t}\n\t});\n\tengine.register({\n\t\ttarget: \"application/json\",\n\t\tasync render(desc) {\n\t\t\tconst payload = applyPii(desc, {\n\t\t\t\tmeta: desc.meta,\n\t\t\t\tsource: desc.source\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tmimeType: \"application/json\",\n\t\t\t\tbody: JSON.stringify(payload, null, 2)\n\t\t\t};\n\t\t}\n\t});\n\tengine.register({\n\t\ttarget: \"application/xml\",\n\t\tasync render(desc) {\n\t\t\tconst json = applyPii(desc, {\n\t\t\t\tmeta: desc.meta,\n\t\t\t\tsource: desc.source\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tmimeType: \"application/xml\",\n\t\t\t\tbody: `<presentation name=\"${desc.meta.name}\" version=\"${desc.meta.version}\"><json>${encodeURIComponent(JSON.stringify(json))}</json></presentation>`\n\t\t\t};\n\t\t}\n\t});\n\treturn engine;\n}\n/** Register a default React target renderer that returns a serializable descriptor. */\nfunction registerDefaultReactRenderer(engine) {\n\tengine.register({\n\t\ttarget: \"react\",\n\t\tasync render(desc) {\n\t\t\tif (desc.source.type === \"component\") {\n\t\t\t\tconst props = desc.source.props ? desc.source.props.getZod().safeParse({}).success ? {} : void 0 : void 0;\n\t\t\t\treturn {\n\t\t\t\t\tkind: \"react_component\",\n\t\t\t\t\tcomponentKey: desc.source.componentKey,\n\t\t\t\t\tprops\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tkind: \"blocknotejs\",\n\t\t\t\tdocJson: desc.source.docJson,\n\t\t\t\tblockConfig: desc.source.blockConfig\n\t\t\t};\n\t\t}\n\t});\n\treturn engine;\n}\n/**\n* Add basic validators (e.g., meta.description presence) to the engine.\n*/\nfunction registerBasicValidation(engine) {\n\tengine.addValidator({ validate(desc) {\n\t\tif (!desc.meta.description || desc.meta.description.length < 3) throw new Error(`Presentation ${desc.meta.name}.v${desc.meta.version} missing meta.description`);\n\t} });\n\treturn engine;\n}\n/**\n* Register a React-to-markdown renderer that renders React components to HTML\n* and converts them to markdown using turndown.\n* This renderer takes priority over the default metadata-only renderer.\n*/\nfunction registerReactToMarkdownRenderer(engine, componentMap) {\n\tconst turndownService = new TurndownService({\n\t\theadingStyle: \"atx\",\n\t\tcodeBlockStyle: \"fenced\",\n\t\tbulletListMarker: \"-\"\n\t});\n\tturndownService.addRule(\"link\", {\n\t\tfilter: \"a\",\n\t\treplacement: (content, node) => {\n\t\t\tconst href = node.href;\n\t\t\tif (href && content) return `[${content}](${href})`;\n\t\t\treturn content || \"\";\n\t\t}\n\t});\n\tengine.prependRegister({\n\t\ttarget: \"markdown\",\n\t\tasync render(desc, ctx) {\n\t\t\tif (desc.source.type !== \"component\") throw new Error(\"React-to-markdown renderer only handles component presentations\");\n\t\t\tconst { renderToStaticMarkup } = await import(\"react-dom/server\");\n\t\t\tconst Component = componentMap[desc.source.componentKey];\n\t\t\tif (!Component) throw new Error(`Component ${desc.source.componentKey} not found in componentMap`);\n\t\t\tlet html;\n\t\t\ttry {\n\t\t\t\thtml = renderToStaticMarkup(React.createElement(Component, desc.source.props ? {} : void 0));\n\t\t\t} catch (error) {\n\t\t\t\tthrow new Error(`Failed to render component ${desc.source.componentKey}: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n\t\t\t}\n\t\t\tlet markdown;\n\t\t\ttry {\n\t\t\t\tmarkdown = turndownService.turndown(html);\n\t\t\t} catch (error) {\n\t\t\t\tthrow new Error(`Failed to convert HTML to markdown: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n\t\t\t}\n\t\t\tif (desc.policy?.pii && desc.policy.pii.length > 0) return {\n\t\t\t\tmimeType: \"text/markdown\",\n\t\t\t\tbody: markdown.replace(/\\[REDACTED\\]/g, \"[REDACTED]\")\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tmimeType: \"text/markdown\",\n\t\t\t\tbody: markdown\n\t\t\t};\n\t\t}\n\t});\n\treturn engine;\n}\n\n//#endregion\nexport { TransformEngine, createDefaultTransformEngine, registerBasicValidation, registerDefaultReactRenderer, registerReactToMarkdownRenderer };\n//# sourceMappingURL=presentations.v2.js.map"],"mappings":";;;;;;;;AASA,MAAM,WAAW,IAAI,iBAAiB"}
@@ -3,4 +3,5 @@ import "node:timers/promises";
3
3
  //#region ../../libs/contracts/dist/regenerator/service.js
4
4
  const DEFAULT_BATCH_DURATION = 5 * 6e4;
5
5
 
6
- //#endregion
6
+ //#endregion
7
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","names":[],"sources":["../../../../../../../libs/contracts/dist/regenerator/service.js"],"sourcesContent":["import { behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope } from \"./utils.js\";\nimport { setTimeout } from \"node:timers/promises\";\n\n//#region src/regenerator/service.ts\nconst DEFAULT_POLL_INTERVAL = 6e4;\nconst DEFAULT_BATCH_DURATION = 5 * 6e4;\nvar RegeneratorService = class {\n\tcontexts;\n\tlastPoll = /* @__PURE__ */ new Map();\n\ttimer;\n\trunning = false;\n\tpollInterval;\n\tbatchDuration;\n\tclock;\n\tconstructor(options) {\n\t\tthis.options = options;\n\t\tthis.contexts = new Map(options.contexts.map((ctx) => [ctx.id, ctx]));\n\t\tthis.pollInterval = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL;\n\t\tthis.batchDuration = options.batchDurationMs ?? DEFAULT_BATCH_DURATION;\n\t\tthis.clock = options.clock ?? (() => /* @__PURE__ */ new Date());\n\t\tif (this.options.rules.length === 0) throw new Error(\"RegeneratorService requires at least one rule\");\n\t}\n\tstart() {\n\t\tif (this.running) return;\n\t\tthis.running = true;\n\t\tthis.tick();\n\t\tthis.timer = setInterval(() => {\n\t\t\tthis.tick();\n\t\t}, this.pollInterval);\n\t}\n\tstop() {\n\t\tif (!this.running) return;\n\t\tthis.running = false;\n\t\tif (this.timer) {\n\t\t\tclearInterval(this.timer);\n\t\t\tthis.timer = void 0;\n\t\t}\n\t}\n\tasync runOnce() {\n\t\tawait this.tick();\n\t}\n\tasync tick() {\n\t\tconst now = this.clock();\n\t\tconst sinceDefault = new Date(now.getTime() - this.batchDuration);\n\t\tfor (const context of this.contexts.values()) {\n\t\t\tconst last = this.lastPoll.get(context.id) ?? sinceDefault;\n\t\t\tawait this.evaluateContext(context, last, now);\n\t\t\tthis.lastPoll.set(context.id, now);\n\t\t}\n\t}\n\tasync evaluateContext(context, since, until) {\n\t\tconst signals = await this.collectSignals(context, since, until);\n\t\tif (signals.length === 0) return;\n\t\tfor (const rule of this.options.rules) {\n\t\t\tlet proposals = [];\n\t\t\ttry {\n\t\t\t\tproposals = await rule.evaluate(context, signals);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(`[regenerator] rule ${rule.id} failed`, error instanceof Error ? error : new Error(String(error)));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tawait this.flushProposals(context, proposals);\n\t\t}\n\t}\n\tasync collectSignals(context, since, until) {\n\t\tconst envelopes = [];\n\t\tconst { adapters } = this.options;\n\t\tif (adapters.telemetry) {\n\t\t\tconst telemetrySignals = await adapters.telemetry.pollTelemetry(context, since, until);\n\t\t\tenvelopes.push(...telemetrySignals.map((signal) => telemetryToEnvelope(context.id, signal, this.clock)));\n\t\t}\n\t\tif (adapters.errors) {\n\t\t\tconst errorSignals = await adapters.errors.pollErrors(context, since, until);\n\t\t\tenvelopes.push(...errorSignals.map((signal) => errorToEnvelope(context.id, signal, this.clock)));\n\t\t}\n\t\tif (adapters.behavior) {\n\t\t\tconst behaviorSignals = await adapters.behavior.pollBehavior(context, since, until);\n\t\t\tenvelopes.push(...behaviorSignals.map((signal) => behaviorToEnvelope(context.id, signal, this.clock)));\n\t\t}\n\t\treturn envelopes;\n\t}\n\tasync flushProposals(context, proposals) {\n\t\tfor (const proposal of proposals) {\n\t\t\tif (proposal.signalIds.length === 0) continue;\n\t\t\tawait this.options.sink.submit(context, proposal);\n\t\t\tif (proposals.length > 10) await setTimeout(0);\n\t\t}\n\t}\n};\n\n//#endregion\nexport { RegeneratorService };\n//# sourceMappingURL=service.js.map"],"mappings":";;;AAKA,MAAM,yBAAyB,IAAI"}