@lssm/lib.contracts 1.11.0 → 1.11.1

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 (557) hide show
  1. package/dist/app-config/branding.d.ts +1 -2
  2. package/dist/app-config/contracts.d.ts +51 -52
  3. package/dist/app-config/contracts.js +1 -2
  4. package/dist/app-config/events.d.ts +28 -29
  5. package/dist/app-config/events.js +1 -2
  6. package/dist/app-config/lifecycle-contracts.d.ts +81 -82
  7. package/dist/app-config/lifecycle-contracts.js +1 -2
  8. package/dist/app-config/lifecycle.d.ts +1 -2
  9. package/dist/app-config/runtime.d.ts +1 -2
  10. package/dist/app-config/runtime.js +1 -2
  11. package/dist/app-config/spec.d.ts +1 -2
  12. package/dist/app-config/spec.js +1 -2
  13. package/dist/app-config/validation.d.ts +1 -2
  14. package/dist/app-config/validation.js +1 -2
  15. package/dist/capabilities/openbanking.d.ts +1 -2
  16. package/dist/capabilities/openbanking.js +1 -2
  17. package/dist/capabilities.d.ts +1 -2
  18. package/dist/capabilities.js +1 -2
  19. package/dist/client/react/drivers/rn-reusables.d.ts +1 -2
  20. package/dist/client/react/drivers/rn-reusables.js +1 -2
  21. package/dist/client/react/drivers/shadcn.d.ts +1 -2
  22. package/dist/client/react/drivers/shadcn.js +1 -2
  23. package/dist/client/react/feature-render.d.ts +1 -2
  24. package/dist/client/react/feature-render.js +1 -2
  25. package/dist/client/react/form-render.d.ts +1 -2
  26. package/dist/client/react/form-render.js +1 -2
  27. package/dist/contracts-adapter-hydration.d.ts +1 -2
  28. package/dist/contracts-adapter-hydration.js +1 -2
  29. package/dist/contracts-adapter-input.d.ts +1 -2
  30. package/dist/contracts-adapter-input.js +1 -2
  31. package/dist/data-views/query-generator.d.ts +1 -2
  32. package/dist/data-views/query-generator.js +1 -2
  33. package/dist/data-views/runtime.d.ts +1 -2
  34. package/dist/data-views/runtime.js +1 -2
  35. package/dist/data-views.d.ts +1 -2
  36. package/dist/data-views.js +1 -2
  37. package/dist/events.d.ts +1 -2
  38. package/dist/events.js +1 -2
  39. package/dist/experiments/evaluator.d.ts +1 -2
  40. package/dist/experiments/evaluator.js +1 -2
  41. package/dist/experiments/spec-resolver.d.ts +1 -2
  42. package/dist/experiments/spec.d.ts +1 -2
  43. package/dist/experiments/spec.js +1 -2
  44. package/dist/features.d.ts +1 -2
  45. package/dist/features.js +1 -2
  46. package/dist/forms.d.ts +1 -2
  47. package/dist/forms.js +1 -2
  48. package/dist/graphql-federation/dist/index.js +1 -2
  49. package/dist/install.d.ts +1 -2
  50. package/dist/install.js +1 -2
  51. package/dist/integrations/binding.d.ts +1 -2
  52. package/dist/integrations/connection.d.ts +1 -2
  53. package/dist/integrations/contracts.d.ts +103 -104
  54. package/dist/integrations/contracts.js +1 -2
  55. package/dist/integrations/health.d.ts +1 -2
  56. package/dist/integrations/health.js +1 -2
  57. package/dist/integrations/openbanking/contracts/accounts.d.ts +67 -68
  58. package/dist/integrations/openbanking/contracts/accounts.js +1 -2
  59. package/dist/integrations/openbanking/contracts/balances.d.ts +35 -36
  60. package/dist/integrations/openbanking/contracts/balances.js +1 -2
  61. package/dist/integrations/openbanking/contracts/index.d.ts +1 -2
  62. package/dist/integrations/openbanking/contracts/index.js +1 -2
  63. package/dist/integrations/openbanking/contracts/transactions.d.ts +49 -50
  64. package/dist/integrations/openbanking/contracts/transactions.js +1 -2
  65. package/dist/integrations/openbanking/guards.d.ts +1 -2
  66. package/dist/integrations/openbanking/guards.js +1 -2
  67. package/dist/integrations/openbanking/models.d.ts +56 -57
  68. package/dist/integrations/openbanking/models.js +1 -2
  69. package/dist/integrations/openbanking/telemetry.d.ts +1 -2
  70. package/dist/integrations/openbanking/telemetry.js +1 -2
  71. package/dist/integrations/providers/calendar.d.ts +1 -2
  72. package/dist/integrations/providers/elevenlabs.d.ts +1 -2
  73. package/dist/integrations/providers/elevenlabs.js +1 -2
  74. package/dist/integrations/providers/email.d.ts +1 -2
  75. package/dist/integrations/providers/embedding.d.ts +1 -2
  76. package/dist/integrations/providers/gcs-storage.d.ts +1 -2
  77. package/dist/integrations/providers/gcs-storage.js +1 -2
  78. package/dist/integrations/providers/gmail.d.ts +1 -2
  79. package/dist/integrations/providers/gmail.js +1 -2
  80. package/dist/integrations/providers/google-calendar.d.ts +1 -2
  81. package/dist/integrations/providers/google-calendar.js +1 -2
  82. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +1 -2
  83. package/dist/integrations/providers/impls/elevenlabs-voice.js +1 -2
  84. package/dist/integrations/providers/impls/gcs-storage.d.ts +1 -2
  85. package/dist/integrations/providers/impls/gcs-storage.js +1 -2
  86. package/dist/integrations/providers/impls/gmail-inbound.d.ts +1 -2
  87. package/dist/integrations/providers/impls/gmail-inbound.js +1 -2
  88. package/dist/integrations/providers/impls/gmail-outbound.d.ts +1 -2
  89. package/dist/integrations/providers/impls/gmail-outbound.js +1 -2
  90. package/dist/integrations/providers/impls/google-calendar.d.ts +1 -2
  91. package/dist/integrations/providers/impls/google-calendar.js +1 -2
  92. package/dist/integrations/providers/impls/mistral-embedding.d.ts +1 -2
  93. package/dist/integrations/providers/impls/mistral-embedding.js +1 -2
  94. package/dist/integrations/providers/impls/mistral-llm.d.ts +1 -2
  95. package/dist/integrations/providers/impls/mistral-llm.js +1 -2
  96. package/dist/integrations/providers/impls/postmark-email.d.ts +1 -2
  97. package/dist/integrations/providers/impls/postmark-email.js +1 -2
  98. package/dist/integrations/providers/impls/powens-client.d.ts +1 -2
  99. package/dist/integrations/providers/impls/powens-client.js +1 -2
  100. package/dist/integrations/providers/impls/powens-openbanking.d.ts +1 -2
  101. package/dist/integrations/providers/impls/powens-openbanking.js +1 -2
  102. package/dist/integrations/providers/impls/provider-factory.d.ts +1 -2
  103. package/dist/integrations/providers/impls/provider-factory.js +1 -2
  104. package/dist/integrations/providers/impls/qdrant-vector.d.ts +1 -2
  105. package/dist/integrations/providers/impls/qdrant-vector.js +1 -2
  106. package/dist/integrations/providers/impls/stripe-payments.d.ts +1 -2
  107. package/dist/integrations/providers/impls/stripe-payments.js +1 -2
  108. package/dist/integrations/providers/impls/twilio-sms.d.ts +1 -2
  109. package/dist/integrations/providers/impls/twilio-sms.js +1 -2
  110. package/dist/integrations/providers/llm.d.ts +1 -2
  111. package/dist/integrations/providers/mistral.d.ts +1 -2
  112. package/dist/integrations/providers/mistral.js +1 -2
  113. package/dist/integrations/providers/openbanking.d.ts +1 -2
  114. package/dist/integrations/providers/payments.d.ts +1 -2
  115. package/dist/integrations/providers/postmark.d.ts +1 -2
  116. package/dist/integrations/providers/postmark.js +1 -2
  117. package/dist/integrations/providers/powens.d.ts +1 -2
  118. package/dist/integrations/providers/powens.js +1 -2
  119. package/dist/integrations/providers/qdrant.d.ts +1 -2
  120. package/dist/integrations/providers/qdrant.js +1 -2
  121. package/dist/integrations/providers/sms.d.ts +1 -2
  122. package/dist/integrations/providers/storage.d.ts +1 -2
  123. package/dist/integrations/providers/stripe.d.ts +1 -2
  124. package/dist/integrations/providers/stripe.js +1 -2
  125. package/dist/integrations/providers/twilio-sms.d.ts +1 -2
  126. package/dist/integrations/providers/twilio-sms.js +1 -2
  127. package/dist/integrations/providers/vector-store.d.ts +1 -2
  128. package/dist/integrations/providers/voice.d.ts +1 -2
  129. package/dist/integrations/runtime.d.ts +1 -2
  130. package/dist/integrations/runtime.js +1 -2
  131. package/dist/integrations/secrets/env-secret-provider.d.ts +1 -2
  132. package/dist/integrations/secrets/env-secret-provider.js +1 -2
  133. package/dist/integrations/secrets/gcp-secret-manager.d.ts +1 -2
  134. package/dist/integrations/secrets/gcp-secret-manager.js +1 -2
  135. package/dist/integrations/secrets/manager.d.ts +1 -2
  136. package/dist/integrations/secrets/manager.js +1 -2
  137. package/dist/integrations/secrets/provider.d.ts +1 -2
  138. package/dist/integrations/secrets/provider.js +1 -2
  139. package/dist/integrations/spec.d.ts +1 -2
  140. package/dist/integrations/spec.js +1 -2
  141. package/dist/jobs/gcp-cloud-tasks.d.ts +1 -2
  142. package/dist/jobs/gcp-cloud-tasks.js +1 -2
  143. package/dist/jobs/gcp-pubsub.d.ts +1 -2
  144. package/dist/jobs/gcp-pubsub.js +1 -2
  145. package/dist/jobs/handlers/gmail-sync-handler.d.ts +1 -2
  146. package/dist/jobs/handlers/gmail-sync-handler.js +1 -2
  147. package/dist/jobs/handlers/storage-document-handler.d.ts +1 -2
  148. package/dist/jobs/handlers/storage-document-handler.js +1 -2
  149. package/dist/jobs/memory-queue.d.ts +1 -2
  150. package/dist/jobs/memory-queue.js +1 -2
  151. package/dist/jobs/queue.d.ts +1 -2
  152. package/dist/jsonschema.d.ts +1 -2
  153. package/dist/jsonschema.js +1 -2
  154. package/dist/knowledge/binding.d.ts +1 -2
  155. package/dist/knowledge/contracts.d.ts +67 -68
  156. package/dist/knowledge/contracts.js +1 -2
  157. package/dist/knowledge/ingestion/document-processor.d.ts +1 -2
  158. package/dist/knowledge/ingestion/document-processor.js +1 -2
  159. package/dist/knowledge/ingestion/embedding-service.d.ts +1 -2
  160. package/dist/knowledge/ingestion/embedding-service.js +1 -2
  161. package/dist/knowledge/ingestion/gmail-adapter.d.ts +1 -2
  162. package/dist/knowledge/ingestion/gmail-adapter.js +1 -2
  163. package/dist/knowledge/ingestion/storage-adapter.d.ts +1 -2
  164. package/dist/knowledge/ingestion/storage-adapter.js +1 -2
  165. package/dist/knowledge/ingestion/vector-indexer.d.ts +1 -2
  166. package/dist/knowledge/ingestion/vector-indexer.js +1 -2
  167. package/dist/knowledge/query/service.d.ts +1 -2
  168. package/dist/knowledge/query/service.js +1 -2
  169. package/dist/knowledge/runtime.d.ts +1 -2
  170. package/dist/knowledge/runtime.js +1 -2
  171. package/dist/knowledge/source.d.ts +1 -2
  172. package/dist/knowledge/spaces/email-threads.d.ts +1 -2
  173. package/dist/knowledge/spaces/email-threads.js +1 -2
  174. package/dist/knowledge/spaces/financial-docs.d.ts +1 -2
  175. package/dist/knowledge/spaces/financial-docs.js +1 -2
  176. package/dist/knowledge/spaces/financial-overview.d.ts +1 -2
  177. package/dist/knowledge/spaces/financial-overview.js +1 -2
  178. package/dist/knowledge/spaces/product-canon.d.ts +1 -2
  179. package/dist/knowledge/spaces/product-canon.js +1 -2
  180. package/dist/knowledge/spaces/support-faq.d.ts +1 -2
  181. package/dist/knowledge/spaces/support-faq.js +1 -2
  182. package/dist/knowledge/spaces/uploaded-docs.d.ts +1 -2
  183. package/dist/knowledge/spaces/uploaded-docs.js +1 -2
  184. package/dist/knowledge/spec.d.ts +1 -2
  185. package/dist/knowledge/spec.js +1 -2
  186. package/dist/markdown.d.ts +1 -2
  187. package/dist/markdown.js +1 -2
  188. package/dist/migrations.d.ts +1 -2
  189. package/dist/migrations.js +1 -2
  190. package/dist/onboarding-base.d.ts +30 -31
  191. package/dist/onboarding-base.js +1 -2
  192. package/dist/ownership.d.ts +1 -2
  193. package/dist/ownership.js +1 -2
  194. package/dist/policy/engine.d.ts +1 -2
  195. package/dist/policy/engine.js +1 -2
  196. package/dist/policy/opa-adapter.d.ts +1 -2
  197. package/dist/policy/opa-adapter.js +1 -2
  198. package/dist/policy/spec.d.ts +1 -2
  199. package/dist/policy/spec.js +1 -2
  200. package/dist/presentations.backcompat.d.ts +1 -2
  201. package/dist/presentations.backcompat.js +1 -2
  202. package/dist/presentations.d.ts +1 -2
  203. package/dist/presentations.js +1 -2
  204. package/dist/presentations.v2.d.ts +1 -2
  205. package/dist/presentations.v2.js +1 -2
  206. package/dist/prompt.d.ts +1 -2
  207. package/dist/prompt.js +1 -2
  208. package/dist/promptRegistry.d.ts +1 -2
  209. package/dist/promptRegistry.js +1 -2
  210. package/dist/regenerator/adapters.d.ts +1 -2
  211. package/dist/regenerator/executor.d.ts +1 -2
  212. package/dist/regenerator/executor.js +1 -2
  213. package/dist/regenerator/service.d.ts +1 -2
  214. package/dist/regenerator/service.js +1 -2
  215. package/dist/regenerator/sinks.d.ts +1 -2
  216. package/dist/regenerator/sinks.js +1 -2
  217. package/dist/regenerator/types.d.ts +1 -2
  218. package/dist/regenerator/utils.d.ts +1 -2
  219. package/dist/regenerator/utils.js +1 -2
  220. package/dist/registry.d.ts +1 -2
  221. package/dist/registry.js +1 -2
  222. package/dist/resources.d.ts +1 -2
  223. package/dist/resources.js +1 -2
  224. package/dist/schema/dist/FieldType.js +1 -2
  225. package/dist/schema/dist/ScalarTypeEnum.js +1 -2
  226. package/dist/schema/dist/SchemaModel.js +1 -2
  227. package/dist/server/graphql-pothos.d.ts +1 -2
  228. package/dist/server/graphql-pothos.js +1 -2
  229. package/dist/server/graphql-schema-export.d.ts +1 -2
  230. package/dist/server/graphql-schema-export.js +1 -2
  231. package/dist/server/provider-mcp.d.ts +1 -2
  232. package/dist/server/provider-mcp.js +1 -2
  233. package/dist/server/rest-elysia.d.ts +1 -2
  234. package/dist/server/rest-elysia.js +1 -2
  235. package/dist/server/rest-express.d.ts +1 -2
  236. package/dist/server/rest-express.js +1 -2
  237. package/dist/server/rest-generic.d.ts +1 -2
  238. package/dist/server/rest-generic.js +1 -2
  239. package/dist/server/rest-next-app.d.ts +1 -2
  240. package/dist/server/rest-next-app.js +1 -2
  241. package/dist/server/rest-next-mcp.d.ts +1 -2
  242. package/dist/server/rest-next-mcp.js +1 -2
  243. package/dist/server/rest-next-pages.d.ts +1 -2
  244. package/dist/server/rest-next-pages.js +1 -2
  245. package/dist/spec.d.ts +1 -2
  246. package/dist/spec.js +1 -2
  247. package/dist/telemetry/anomaly.d.ts +1 -2
  248. package/dist/telemetry/anomaly.js +1 -2
  249. package/dist/telemetry/spec.d.ts +1 -2
  250. package/dist/telemetry/spec.js +1 -2
  251. package/dist/telemetry/tracker.d.ts +1 -2
  252. package/dist/telemetry/tracker.js +1 -2
  253. package/dist/tests/runner.d.ts +1 -2
  254. package/dist/tests/runner.js +1 -2
  255. package/dist/tests/spec.d.ts +1 -2
  256. package/dist/tests/spec.js +1 -2
  257. package/dist/themes.d.ts +1 -2
  258. package/dist/themes.js +1 -2
  259. package/dist/translations/catalog.d.ts +1 -2
  260. package/dist/translations/tenant.d.ts +1 -2
  261. package/dist/types.d.ts +1 -2
  262. package/dist/workflow/adapters/db-adapter.d.ts +1 -2
  263. package/dist/workflow/adapters/db-adapter.js +1 -2
  264. package/dist/workflow/adapters/file-adapter.d.ts +1 -2
  265. package/dist/workflow/adapters/file-adapter.js +1 -2
  266. package/dist/workflow/adapters/memory-store.d.ts +1 -2
  267. package/dist/workflow/adapters/memory-store.js +1 -2
  268. package/dist/workflow/expression.d.ts +1 -2
  269. package/dist/workflow/expression.js +1 -2
  270. package/dist/workflow/runner.d.ts +1 -2
  271. package/dist/workflow/runner.js +1 -2
  272. package/dist/workflow/sla-monitor.d.ts +1 -2
  273. package/dist/workflow/sla-monitor.js +1 -2
  274. package/dist/workflow/spec.d.ts +1 -2
  275. package/dist/workflow/spec.js +1 -2
  276. package/dist/workflow/state.d.ts +1 -2
  277. package/dist/workflow/validation.d.ts +1 -2
  278. package/dist/workflow/validation.js +1 -2
  279. package/package.json +6 -6
  280. package/dist/app-config/branding.d.ts.map +0 -1
  281. package/dist/app-config/contracts.d.ts.map +0 -1
  282. package/dist/app-config/contracts.js.map +0 -1
  283. package/dist/app-config/events.d.ts.map +0 -1
  284. package/dist/app-config/events.js.map +0 -1
  285. package/dist/app-config/lifecycle-contracts.d.ts.map +0 -1
  286. package/dist/app-config/lifecycle-contracts.js.map +0 -1
  287. package/dist/app-config/lifecycle.d.ts.map +0 -1
  288. package/dist/app-config/runtime.d.ts.map +0 -1
  289. package/dist/app-config/runtime.js.map +0 -1
  290. package/dist/app-config/spec.d.ts.map +0 -1
  291. package/dist/app-config/spec.js.map +0 -1
  292. package/dist/app-config/validation.d.ts.map +0 -1
  293. package/dist/app-config/validation.js.map +0 -1
  294. package/dist/capabilities/openbanking.d.ts.map +0 -1
  295. package/dist/capabilities/openbanking.js.map +0 -1
  296. package/dist/capabilities.d.ts.map +0 -1
  297. package/dist/capabilities.js.map +0 -1
  298. package/dist/client/react/drivers/rn-reusables.d.ts.map +0 -1
  299. package/dist/client/react/drivers/rn-reusables.js.map +0 -1
  300. package/dist/client/react/drivers/shadcn.d.ts.map +0 -1
  301. package/dist/client/react/drivers/shadcn.js.map +0 -1
  302. package/dist/client/react/feature-render.d.ts.map +0 -1
  303. package/dist/client/react/feature-render.js.map +0 -1
  304. package/dist/client/react/form-render.d.ts.map +0 -1
  305. package/dist/client/react/form-render.js.map +0 -1
  306. package/dist/contracts-adapter-hydration.d.ts.map +0 -1
  307. package/dist/contracts-adapter-hydration.js.map +0 -1
  308. package/dist/contracts-adapter-input.d.ts.map +0 -1
  309. package/dist/contracts-adapter-input.js.map +0 -1
  310. package/dist/data-views/query-generator.d.ts.map +0 -1
  311. package/dist/data-views/query-generator.js.map +0 -1
  312. package/dist/data-views/runtime.d.ts.map +0 -1
  313. package/dist/data-views/runtime.js.map +0 -1
  314. package/dist/data-views.d.ts.map +0 -1
  315. package/dist/data-views.js.map +0 -1
  316. package/dist/events.d.ts.map +0 -1
  317. package/dist/events.js.map +0 -1
  318. package/dist/experiments/evaluator.d.ts.map +0 -1
  319. package/dist/experiments/evaluator.js.map +0 -1
  320. package/dist/experiments/spec-resolver.d.ts.map +0 -1
  321. package/dist/experiments/spec.d.ts.map +0 -1
  322. package/dist/experiments/spec.js.map +0 -1
  323. package/dist/features.d.ts.map +0 -1
  324. package/dist/features.js.map +0 -1
  325. package/dist/forms.d.ts.map +0 -1
  326. package/dist/forms.js.map +0 -1
  327. package/dist/graphql-federation/dist/index.js.map +0 -1
  328. package/dist/install.d.ts.map +0 -1
  329. package/dist/install.js.map +0 -1
  330. package/dist/integrations/binding.d.ts.map +0 -1
  331. package/dist/integrations/connection.d.ts.map +0 -1
  332. package/dist/integrations/contracts.d.ts.map +0 -1
  333. package/dist/integrations/contracts.js.map +0 -1
  334. package/dist/integrations/health.d.ts.map +0 -1
  335. package/dist/integrations/health.js.map +0 -1
  336. package/dist/integrations/openbanking/contracts/accounts.d.ts.map +0 -1
  337. package/dist/integrations/openbanking/contracts/accounts.js.map +0 -1
  338. package/dist/integrations/openbanking/contracts/balances.d.ts.map +0 -1
  339. package/dist/integrations/openbanking/contracts/balances.js.map +0 -1
  340. package/dist/integrations/openbanking/contracts/index.d.ts.map +0 -1
  341. package/dist/integrations/openbanking/contracts/index.js.map +0 -1
  342. package/dist/integrations/openbanking/contracts/transactions.d.ts.map +0 -1
  343. package/dist/integrations/openbanking/contracts/transactions.js.map +0 -1
  344. package/dist/integrations/openbanking/guards.d.ts.map +0 -1
  345. package/dist/integrations/openbanking/guards.js.map +0 -1
  346. package/dist/integrations/openbanking/models.d.ts.map +0 -1
  347. package/dist/integrations/openbanking/models.js.map +0 -1
  348. package/dist/integrations/openbanking/telemetry.d.ts.map +0 -1
  349. package/dist/integrations/openbanking/telemetry.js.map +0 -1
  350. package/dist/integrations/providers/calendar.d.ts.map +0 -1
  351. package/dist/integrations/providers/elevenlabs.d.ts.map +0 -1
  352. package/dist/integrations/providers/elevenlabs.js.map +0 -1
  353. package/dist/integrations/providers/email.d.ts.map +0 -1
  354. package/dist/integrations/providers/embedding.d.ts.map +0 -1
  355. package/dist/integrations/providers/gcs-storage.d.ts.map +0 -1
  356. package/dist/integrations/providers/gcs-storage.js.map +0 -1
  357. package/dist/integrations/providers/gmail.d.ts.map +0 -1
  358. package/dist/integrations/providers/gmail.js.map +0 -1
  359. package/dist/integrations/providers/google-calendar.d.ts.map +0 -1
  360. package/dist/integrations/providers/google-calendar.js.map +0 -1
  361. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts.map +0 -1
  362. package/dist/integrations/providers/impls/elevenlabs-voice.js.map +0 -1
  363. package/dist/integrations/providers/impls/gcs-storage.d.ts.map +0 -1
  364. package/dist/integrations/providers/impls/gcs-storage.js.map +0 -1
  365. package/dist/integrations/providers/impls/gmail-inbound.d.ts.map +0 -1
  366. package/dist/integrations/providers/impls/gmail-inbound.js.map +0 -1
  367. package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +0 -1
  368. package/dist/integrations/providers/impls/gmail-outbound.js.map +0 -1
  369. package/dist/integrations/providers/impls/google-calendar.d.ts.map +0 -1
  370. package/dist/integrations/providers/impls/google-calendar.js.map +0 -1
  371. package/dist/integrations/providers/impls/mistral-embedding.d.ts.map +0 -1
  372. package/dist/integrations/providers/impls/mistral-embedding.js.map +0 -1
  373. package/dist/integrations/providers/impls/mistral-llm.d.ts.map +0 -1
  374. package/dist/integrations/providers/impls/mistral-llm.js.map +0 -1
  375. package/dist/integrations/providers/impls/postmark-email.d.ts.map +0 -1
  376. package/dist/integrations/providers/impls/postmark-email.js.map +0 -1
  377. package/dist/integrations/providers/impls/powens-client.d.ts.map +0 -1
  378. package/dist/integrations/providers/impls/powens-client.js.map +0 -1
  379. package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +0 -1
  380. package/dist/integrations/providers/impls/powens-openbanking.js.map +0 -1
  381. package/dist/integrations/providers/impls/provider-factory.d.ts.map +0 -1
  382. package/dist/integrations/providers/impls/provider-factory.js.map +0 -1
  383. package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +0 -1
  384. package/dist/integrations/providers/impls/qdrant-vector.js.map +0 -1
  385. package/dist/integrations/providers/impls/stripe-payments.d.ts.map +0 -1
  386. package/dist/integrations/providers/impls/stripe-payments.js.map +0 -1
  387. package/dist/integrations/providers/impls/twilio-sms.d.ts.map +0 -1
  388. package/dist/integrations/providers/impls/twilio-sms.js.map +0 -1
  389. package/dist/integrations/providers/llm.d.ts.map +0 -1
  390. package/dist/integrations/providers/mistral.d.ts.map +0 -1
  391. package/dist/integrations/providers/mistral.js.map +0 -1
  392. package/dist/integrations/providers/openbanking.d.ts.map +0 -1
  393. package/dist/integrations/providers/payments.d.ts.map +0 -1
  394. package/dist/integrations/providers/postmark.d.ts.map +0 -1
  395. package/dist/integrations/providers/postmark.js.map +0 -1
  396. package/dist/integrations/providers/powens.d.ts.map +0 -1
  397. package/dist/integrations/providers/powens.js.map +0 -1
  398. package/dist/integrations/providers/qdrant.d.ts.map +0 -1
  399. package/dist/integrations/providers/qdrant.js.map +0 -1
  400. package/dist/integrations/providers/sms.d.ts.map +0 -1
  401. package/dist/integrations/providers/storage.d.ts.map +0 -1
  402. package/dist/integrations/providers/stripe.d.ts.map +0 -1
  403. package/dist/integrations/providers/stripe.js.map +0 -1
  404. package/dist/integrations/providers/twilio-sms.d.ts.map +0 -1
  405. package/dist/integrations/providers/twilio-sms.js.map +0 -1
  406. package/dist/integrations/providers/vector-store.d.ts.map +0 -1
  407. package/dist/integrations/providers/voice.d.ts.map +0 -1
  408. package/dist/integrations/runtime.d.ts.map +0 -1
  409. package/dist/integrations/runtime.js.map +0 -1
  410. package/dist/integrations/secrets/env-secret-provider.d.ts.map +0 -1
  411. package/dist/integrations/secrets/env-secret-provider.js.map +0 -1
  412. package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +0 -1
  413. package/dist/integrations/secrets/gcp-secret-manager.js.map +0 -1
  414. package/dist/integrations/secrets/manager.d.ts.map +0 -1
  415. package/dist/integrations/secrets/manager.js.map +0 -1
  416. package/dist/integrations/secrets/provider.d.ts.map +0 -1
  417. package/dist/integrations/secrets/provider.js.map +0 -1
  418. package/dist/integrations/spec.d.ts.map +0 -1
  419. package/dist/integrations/spec.js.map +0 -1
  420. package/dist/jobs/gcp-cloud-tasks.d.ts.map +0 -1
  421. package/dist/jobs/gcp-cloud-tasks.js.map +0 -1
  422. package/dist/jobs/gcp-pubsub.d.ts.map +0 -1
  423. package/dist/jobs/gcp-pubsub.js.map +0 -1
  424. package/dist/jobs/handlers/gmail-sync-handler.d.ts.map +0 -1
  425. package/dist/jobs/handlers/gmail-sync-handler.js.map +0 -1
  426. package/dist/jobs/handlers/storage-document-handler.d.ts.map +0 -1
  427. package/dist/jobs/handlers/storage-document-handler.js.map +0 -1
  428. package/dist/jobs/memory-queue.d.ts.map +0 -1
  429. package/dist/jobs/memory-queue.js.map +0 -1
  430. package/dist/jobs/queue.d.ts.map +0 -1
  431. package/dist/jsonschema.d.ts.map +0 -1
  432. package/dist/jsonschema.js.map +0 -1
  433. package/dist/knowledge/binding.d.ts.map +0 -1
  434. package/dist/knowledge/contracts.d.ts.map +0 -1
  435. package/dist/knowledge/contracts.js.map +0 -1
  436. package/dist/knowledge/ingestion/document-processor.d.ts.map +0 -1
  437. package/dist/knowledge/ingestion/document-processor.js.map +0 -1
  438. package/dist/knowledge/ingestion/embedding-service.d.ts.map +0 -1
  439. package/dist/knowledge/ingestion/embedding-service.js.map +0 -1
  440. package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +0 -1
  441. package/dist/knowledge/ingestion/gmail-adapter.js.map +0 -1
  442. package/dist/knowledge/ingestion/storage-adapter.d.ts.map +0 -1
  443. package/dist/knowledge/ingestion/storage-adapter.js.map +0 -1
  444. package/dist/knowledge/ingestion/vector-indexer.d.ts.map +0 -1
  445. package/dist/knowledge/ingestion/vector-indexer.js.map +0 -1
  446. package/dist/knowledge/query/service.d.ts.map +0 -1
  447. package/dist/knowledge/query/service.js.map +0 -1
  448. package/dist/knowledge/runtime.d.ts.map +0 -1
  449. package/dist/knowledge/runtime.js.map +0 -1
  450. package/dist/knowledge/source.d.ts.map +0 -1
  451. package/dist/knowledge/spaces/email-threads.d.ts.map +0 -1
  452. package/dist/knowledge/spaces/email-threads.js.map +0 -1
  453. package/dist/knowledge/spaces/financial-docs.d.ts.map +0 -1
  454. package/dist/knowledge/spaces/financial-docs.js.map +0 -1
  455. package/dist/knowledge/spaces/financial-overview.d.ts.map +0 -1
  456. package/dist/knowledge/spaces/financial-overview.js.map +0 -1
  457. package/dist/knowledge/spaces/product-canon.d.ts.map +0 -1
  458. package/dist/knowledge/spaces/product-canon.js.map +0 -1
  459. package/dist/knowledge/spaces/support-faq.d.ts.map +0 -1
  460. package/dist/knowledge/spaces/support-faq.js.map +0 -1
  461. package/dist/knowledge/spaces/uploaded-docs.d.ts.map +0 -1
  462. package/dist/knowledge/spaces/uploaded-docs.js.map +0 -1
  463. package/dist/knowledge/spec.d.ts.map +0 -1
  464. package/dist/knowledge/spec.js.map +0 -1
  465. package/dist/markdown.d.ts.map +0 -1
  466. package/dist/markdown.js.map +0 -1
  467. package/dist/migrations.d.ts.map +0 -1
  468. package/dist/migrations.js.map +0 -1
  469. package/dist/onboarding-base.d.ts.map +0 -1
  470. package/dist/onboarding-base.js.map +0 -1
  471. package/dist/ownership.d.ts.map +0 -1
  472. package/dist/ownership.js.map +0 -1
  473. package/dist/policy/engine.d.ts.map +0 -1
  474. package/dist/policy/engine.js.map +0 -1
  475. package/dist/policy/opa-adapter.d.ts.map +0 -1
  476. package/dist/policy/opa-adapter.js.map +0 -1
  477. package/dist/policy/spec.d.ts.map +0 -1
  478. package/dist/policy/spec.js.map +0 -1
  479. package/dist/presentations.backcompat.d.ts.map +0 -1
  480. package/dist/presentations.backcompat.js.map +0 -1
  481. package/dist/presentations.d.ts.map +0 -1
  482. package/dist/presentations.js.map +0 -1
  483. package/dist/presentations.v2.d.ts.map +0 -1
  484. package/dist/presentations.v2.js.map +0 -1
  485. package/dist/prompt.d.ts.map +0 -1
  486. package/dist/prompt.js.map +0 -1
  487. package/dist/promptRegistry.d.ts.map +0 -1
  488. package/dist/promptRegistry.js.map +0 -1
  489. package/dist/regenerator/adapters.d.ts.map +0 -1
  490. package/dist/regenerator/executor.d.ts.map +0 -1
  491. package/dist/regenerator/executor.js.map +0 -1
  492. package/dist/regenerator/service.d.ts.map +0 -1
  493. package/dist/regenerator/service.js.map +0 -1
  494. package/dist/regenerator/sinks.d.ts.map +0 -1
  495. package/dist/regenerator/sinks.js.map +0 -1
  496. package/dist/regenerator/types.d.ts.map +0 -1
  497. package/dist/regenerator/utils.d.ts.map +0 -1
  498. package/dist/regenerator/utils.js.map +0 -1
  499. package/dist/registry.d.ts.map +0 -1
  500. package/dist/registry.js.map +0 -1
  501. package/dist/resources.d.ts.map +0 -1
  502. package/dist/resources.js.map +0 -1
  503. package/dist/schema/dist/FieldType.js.map +0 -1
  504. package/dist/schema/dist/ScalarTypeEnum.js.map +0 -1
  505. package/dist/schema/dist/SchemaModel.js.map +0 -1
  506. package/dist/server/graphql-pothos.d.ts.map +0 -1
  507. package/dist/server/graphql-pothos.js.map +0 -1
  508. package/dist/server/graphql-schema-export.d.ts.map +0 -1
  509. package/dist/server/graphql-schema-export.js.map +0 -1
  510. package/dist/server/provider-mcp.d.ts.map +0 -1
  511. package/dist/server/provider-mcp.js.map +0 -1
  512. package/dist/server/rest-elysia.d.ts.map +0 -1
  513. package/dist/server/rest-elysia.js.map +0 -1
  514. package/dist/server/rest-express.d.ts.map +0 -1
  515. package/dist/server/rest-express.js.map +0 -1
  516. package/dist/server/rest-generic.d.ts.map +0 -1
  517. package/dist/server/rest-generic.js.map +0 -1
  518. package/dist/server/rest-next-app.d.ts.map +0 -1
  519. package/dist/server/rest-next-app.js.map +0 -1
  520. package/dist/server/rest-next-mcp.d.ts.map +0 -1
  521. package/dist/server/rest-next-mcp.js.map +0 -1
  522. package/dist/server/rest-next-pages.d.ts.map +0 -1
  523. package/dist/server/rest-next-pages.js.map +0 -1
  524. package/dist/spec.d.ts.map +0 -1
  525. package/dist/spec.js.map +0 -1
  526. package/dist/telemetry/anomaly.d.ts.map +0 -1
  527. package/dist/telemetry/anomaly.js.map +0 -1
  528. package/dist/telemetry/spec.d.ts.map +0 -1
  529. package/dist/telemetry/spec.js.map +0 -1
  530. package/dist/telemetry/tracker.d.ts.map +0 -1
  531. package/dist/telemetry/tracker.js.map +0 -1
  532. package/dist/tests/runner.d.ts.map +0 -1
  533. package/dist/tests/runner.js.map +0 -1
  534. package/dist/tests/spec.d.ts.map +0 -1
  535. package/dist/tests/spec.js.map +0 -1
  536. package/dist/themes.d.ts.map +0 -1
  537. package/dist/themes.js.map +0 -1
  538. package/dist/translations/catalog.d.ts.map +0 -1
  539. package/dist/translations/tenant.d.ts.map +0 -1
  540. package/dist/types.d.ts.map +0 -1
  541. package/dist/workflow/adapters/db-adapter.d.ts.map +0 -1
  542. package/dist/workflow/adapters/db-adapter.js.map +0 -1
  543. package/dist/workflow/adapters/file-adapter.d.ts.map +0 -1
  544. package/dist/workflow/adapters/file-adapter.js.map +0 -1
  545. package/dist/workflow/adapters/memory-store.d.ts.map +0 -1
  546. package/dist/workflow/adapters/memory-store.js.map +0 -1
  547. package/dist/workflow/expression.d.ts.map +0 -1
  548. package/dist/workflow/expression.js.map +0 -1
  549. package/dist/workflow/runner.d.ts.map +0 -1
  550. package/dist/workflow/runner.js.map +0 -1
  551. package/dist/workflow/sla-monitor.d.ts.map +0 -1
  552. package/dist/workflow/sla-monitor.js.map +0 -1
  553. package/dist/workflow/spec.d.ts.map +0 -1
  554. package/dist/workflow/spec.js.map +0 -1
  555. package/dist/workflow/state.d.ts.map +0 -1
  556. package/dist/workflow/validation.d.ts.map +0 -1
  557. package/dist/workflow/validation.js.map +0 -1
@@ -2,80 +2,80 @@ import { EventSpec } from "../events.js";
2
2
  import { ContractSpec } from "../spec.js";
3
3
  import { SpecRegistry } from "../registry.js";
4
4
  import "../index.js";
5
- import * as _lssm_lib_schema203 from "@lssm/lib.schema";
5
+ import * as _lssm_lib_schema102 from "@lssm/lib.schema";
6
6
  import { SchemaModel } from "@lssm/lib.schema";
7
7
 
8
8
  //#region src/app-config/lifecycle-contracts.d.ts
9
9
  declare const CreateTenantConfigDraftCommand: ContractSpec<SchemaModel<{
10
10
  tenantId: {
11
- type: _lssm_lib_schema203.FieldType<string, string>;
11
+ type: _lssm_lib_schema102.FieldType<string, string>;
12
12
  isOptional: false;
13
13
  };
14
14
  appId: {
15
- type: _lssm_lib_schema203.FieldType<string, string>;
15
+ type: _lssm_lib_schema102.FieldType<string, string>;
16
16
  isOptional: false;
17
17
  };
18
18
  blueprintName: {
19
- type: _lssm_lib_schema203.FieldType<string, string>;
19
+ type: _lssm_lib_schema102.FieldType<string, string>;
20
20
  isOptional: false;
21
21
  };
22
22
  blueprintVersion: {
23
- type: _lssm_lib_schema203.FieldType<number, number>;
23
+ type: _lssm_lib_schema102.FieldType<number, number>;
24
24
  isOptional: false;
25
25
  };
26
26
  environment: {
27
- type: _lssm_lib_schema203.FieldType<string, string>;
27
+ type: _lssm_lib_schema102.FieldType<string, string>;
28
28
  isOptional: true;
29
29
  };
30
30
  fromVersion: {
31
- type: _lssm_lib_schema203.FieldType<number, number>;
31
+ type: _lssm_lib_schema102.FieldType<number, number>;
32
32
  isOptional: true;
33
33
  };
34
34
  createdBy: {
35
- type: _lssm_lib_schema203.FieldType<string, string>;
35
+ type: _lssm_lib_schema102.FieldType<string, string>;
36
36
  isOptional: false;
37
37
  };
38
38
  }>, SchemaModel<{
39
39
  version: {
40
- type: _lssm_lib_schema203.FieldType<number, number>;
40
+ type: _lssm_lib_schema102.FieldType<number, number>;
41
41
  isOptional: false;
42
42
  };
43
43
  status: {
44
- type: _lssm_lib_schema203.FieldType<string, string>;
44
+ type: _lssm_lib_schema102.FieldType<string, string>;
45
45
  isOptional: false;
46
46
  };
47
47
  createdAt: {
48
- type: _lssm_lib_schema203.FieldType<Date, string>;
48
+ type: _lssm_lib_schema102.FieldType<Date, string>;
49
49
  isOptional: false;
50
50
  };
51
51
  }>, {
52
52
  ref: EventSpec<SchemaModel<{
53
53
  tenantId: {
54
- type: _lssm_lib_schema203.FieldType<string, string>;
54
+ type: _lssm_lib_schema102.FieldType<string, string>;
55
55
  isOptional: false;
56
56
  };
57
57
  appId: {
58
- type: _lssm_lib_schema203.FieldType<string, string>;
58
+ type: _lssm_lib_schema102.FieldType<string, string>;
59
59
  isOptional: false;
60
60
  };
61
61
  version: {
62
- type: _lssm_lib_schema203.FieldType<number, number>;
62
+ type: _lssm_lib_schema102.FieldType<number, number>;
63
63
  isOptional: false;
64
64
  };
65
65
  blueprintName: {
66
- type: _lssm_lib_schema203.FieldType<string, string>;
66
+ type: _lssm_lib_schema102.FieldType<string, string>;
67
67
  isOptional: false;
68
68
  };
69
69
  blueprintVersion: {
70
- type: _lssm_lib_schema203.FieldType<number, number>;
70
+ type: _lssm_lib_schema102.FieldType<number, number>;
71
71
  isOptional: false;
72
72
  };
73
73
  createdBy: {
74
- type: _lssm_lib_schema203.FieldType<string, string>;
74
+ type: _lssm_lib_schema102.FieldType<string, string>;
75
75
  isOptional: false;
76
76
  };
77
77
  clonedFrom: {
78
- type: _lssm_lib_schema203.FieldType<number, number>;
78
+ type: _lssm_lib_schema102.FieldType<number, number>;
79
79
  isOptional: true;
80
80
  };
81
81
  }>>;
@@ -83,55 +83,55 @@ declare const CreateTenantConfigDraftCommand: ContractSpec<SchemaModel<{
83
83
  }[]>;
84
84
  declare const PromoteTenantConfigToPreviewCommand: ContractSpec<SchemaModel<{
85
85
  tenantId: {
86
- type: _lssm_lib_schema203.FieldType<string, string>;
86
+ type: _lssm_lib_schema102.FieldType<string, string>;
87
87
  isOptional: false;
88
88
  };
89
89
  appId: {
90
- type: _lssm_lib_schema203.FieldType<string, string>;
90
+ type: _lssm_lib_schema102.FieldType<string, string>;
91
91
  isOptional: false;
92
92
  };
93
93
  version: {
94
- type: _lssm_lib_schema203.FieldType<number, number>;
94
+ type: _lssm_lib_schema102.FieldType<number, number>;
95
95
  isOptional: false;
96
96
  };
97
97
  promotedBy: {
98
- type: _lssm_lib_schema203.FieldType<string, string>;
98
+ type: _lssm_lib_schema102.FieldType<string, string>;
99
99
  isOptional: false;
100
100
  };
101
101
  }>, SchemaModel<{
102
102
  version: {
103
- type: _lssm_lib_schema203.FieldType<number, number>;
103
+ type: _lssm_lib_schema102.FieldType<number, number>;
104
104
  isOptional: false;
105
105
  };
106
106
  status: {
107
- type: _lssm_lib_schema203.FieldType<string, string>;
107
+ type: _lssm_lib_schema102.FieldType<string, string>;
108
108
  isOptional: false;
109
109
  };
110
110
  warnings: {
111
- type: _lssm_lib_schema203.FieldType<string, string>;
111
+ type: _lssm_lib_schema102.FieldType<string, string>;
112
112
  isOptional: true;
113
113
  isArray: true;
114
114
  };
115
115
  }>, {
116
116
  ref: EventSpec<SchemaModel<{
117
117
  tenantId: {
118
- type: _lssm_lib_schema203.FieldType<string, string>;
118
+ type: _lssm_lib_schema102.FieldType<string, string>;
119
119
  isOptional: false;
120
120
  };
121
121
  appId: {
122
- type: _lssm_lib_schema203.FieldType<string, string>;
122
+ type: _lssm_lib_schema102.FieldType<string, string>;
123
123
  isOptional: false;
124
124
  };
125
125
  version: {
126
- type: _lssm_lib_schema203.FieldType<number, number>;
126
+ type: _lssm_lib_schema102.FieldType<number, number>;
127
127
  isOptional: false;
128
128
  };
129
129
  promotedBy: {
130
- type: _lssm_lib_schema203.FieldType<string, string>;
130
+ type: _lssm_lib_schema102.FieldType<string, string>;
131
131
  isOptional: false;
132
132
  };
133
133
  warnings: {
134
- type: _lssm_lib_schema203.FieldType<string, string>;
134
+ type: _lssm_lib_schema102.FieldType<string, string>;
135
135
  isOptional: true;
136
136
  isArray: true;
137
137
  };
@@ -140,74 +140,74 @@ declare const PromoteTenantConfigToPreviewCommand: ContractSpec<SchemaModel<{
140
140
  }[]>;
141
141
  declare const PublishTenantConfigCommand: ContractSpec<SchemaModel<{
142
142
  tenantId: {
143
- type: _lssm_lib_schema203.FieldType<string, string>;
143
+ type: _lssm_lib_schema102.FieldType<string, string>;
144
144
  isOptional: false;
145
145
  };
146
146
  appId: {
147
- type: _lssm_lib_schema203.FieldType<string, string>;
147
+ type: _lssm_lib_schema102.FieldType<string, string>;
148
148
  isOptional: false;
149
149
  };
150
150
  version: {
151
- type: _lssm_lib_schema203.FieldType<number, number>;
151
+ type: _lssm_lib_schema102.FieldType<number, number>;
152
152
  isOptional: false;
153
153
  };
154
154
  environment: {
155
- type: _lssm_lib_schema203.FieldType<string, string>;
155
+ type: _lssm_lib_schema102.FieldType<string, string>;
156
156
  isOptional: true;
157
157
  };
158
158
  publishedBy: {
159
- type: _lssm_lib_schema203.FieldType<string, string>;
159
+ type: _lssm_lib_schema102.FieldType<string, string>;
160
160
  isOptional: false;
161
161
  };
162
162
  changeSummary: {
163
- type: _lssm_lib_schema203.FieldType<string, string>;
163
+ type: _lssm_lib_schema102.FieldType<string, string>;
164
164
  isOptional: true;
165
165
  };
166
166
  }>, SchemaModel<{
167
167
  version: {
168
- type: _lssm_lib_schema203.FieldType<number, number>;
168
+ type: _lssm_lib_schema102.FieldType<number, number>;
169
169
  isOptional: false;
170
170
  };
171
171
  status: {
172
- type: _lssm_lib_schema203.FieldType<string, string>;
172
+ type: _lssm_lib_schema102.FieldType<string, string>;
173
173
  isOptional: false;
174
174
  };
175
175
  previousVersion: {
176
- type: _lssm_lib_schema203.FieldType<number, number>;
176
+ type: _lssm_lib_schema102.FieldType<number, number>;
177
177
  isOptional: true;
178
178
  };
179
179
  publishedAt: {
180
- type: _lssm_lib_schema203.FieldType<Date, string>;
180
+ type: _lssm_lib_schema102.FieldType<Date, string>;
181
181
  isOptional: false;
182
182
  };
183
183
  }>, {
184
184
  ref: EventSpec<SchemaModel<{
185
185
  tenantId: {
186
- type: _lssm_lib_schema203.FieldType<string, string>;
186
+ type: _lssm_lib_schema102.FieldType<string, string>;
187
187
  isOptional: false;
188
188
  };
189
189
  appId: {
190
- type: _lssm_lib_schema203.FieldType<string, string>;
190
+ type: _lssm_lib_schema102.FieldType<string, string>;
191
191
  isOptional: false;
192
192
  };
193
193
  version: {
194
- type: _lssm_lib_schema203.FieldType<number, number>;
194
+ type: _lssm_lib_schema102.FieldType<number, number>;
195
195
  isOptional: false;
196
196
  };
197
197
  previousVersion: {
198
- type: _lssm_lib_schema203.FieldType<number, number>;
198
+ type: _lssm_lib_schema102.FieldType<number, number>;
199
199
  isOptional: true;
200
200
  };
201
201
  publishedBy: {
202
- type: _lssm_lib_schema203.FieldType<string, string>;
202
+ type: _lssm_lib_schema102.FieldType<string, string>;
203
203
  isOptional: false;
204
204
  };
205
205
  changeSummary: {
206
- type: _lssm_lib_schema203.FieldType<string, string>;
206
+ type: _lssm_lib_schema102.FieldType<string, string>;
207
207
  isOptional: true;
208
208
  };
209
209
  changedSections: {
210
- type: _lssm_lib_schema203.FieldType<string, string>;
210
+ type: _lssm_lib_schema102.FieldType<string, string>;
211
211
  isOptional: true;
212
212
  isArray: true;
213
213
  };
@@ -216,70 +216,70 @@ declare const PublishTenantConfigCommand: ContractSpec<SchemaModel<{
216
216
  }[]>;
217
217
  declare const RollbackTenantConfigCommand: ContractSpec<SchemaModel<{
218
218
  tenantId: {
219
- type: _lssm_lib_schema203.FieldType<string, string>;
219
+ type: _lssm_lib_schema102.FieldType<string, string>;
220
220
  isOptional: false;
221
221
  };
222
222
  appId: {
223
- type: _lssm_lib_schema203.FieldType<string, string>;
223
+ type: _lssm_lib_schema102.FieldType<string, string>;
224
224
  isOptional: false;
225
225
  };
226
226
  toVersion: {
227
- type: _lssm_lib_schema203.FieldType<number, number>;
227
+ type: _lssm_lib_schema102.FieldType<number, number>;
228
228
  isOptional: false;
229
229
  };
230
230
  environment: {
231
- type: _lssm_lib_schema203.FieldType<string, string>;
231
+ type: _lssm_lib_schema102.FieldType<string, string>;
232
232
  isOptional: true;
233
233
  };
234
234
  rolledBackBy: {
235
- type: _lssm_lib_schema203.FieldType<string, string>;
235
+ type: _lssm_lib_schema102.FieldType<string, string>;
236
236
  isOptional: false;
237
237
  };
238
238
  reason: {
239
- type: _lssm_lib_schema203.FieldType<string, string>;
239
+ type: _lssm_lib_schema102.FieldType<string, string>;
240
240
  isOptional: false;
241
241
  };
242
242
  }>, SchemaModel<{
243
243
  newVersion: {
244
- type: _lssm_lib_schema203.FieldType<number, number>;
244
+ type: _lssm_lib_schema102.FieldType<number, number>;
245
245
  isOptional: false;
246
246
  };
247
247
  status: {
248
- type: _lssm_lib_schema203.FieldType<string, string>;
248
+ type: _lssm_lib_schema102.FieldType<string, string>;
249
249
  isOptional: false;
250
250
  };
251
251
  rolledBackFrom: {
252
- type: _lssm_lib_schema203.FieldType<number, number>;
252
+ type: _lssm_lib_schema102.FieldType<number, number>;
253
253
  isOptional: false;
254
254
  };
255
255
  }>, {
256
256
  ref: EventSpec<SchemaModel<{
257
257
  tenantId: {
258
- type: _lssm_lib_schema203.FieldType<string, string>;
258
+ type: _lssm_lib_schema102.FieldType<string, string>;
259
259
  isOptional: false;
260
260
  };
261
261
  appId: {
262
- type: _lssm_lib_schema203.FieldType<string, string>;
262
+ type: _lssm_lib_schema102.FieldType<string, string>;
263
263
  isOptional: false;
264
264
  };
265
265
  newVersion: {
266
- type: _lssm_lib_schema203.FieldType<number, number>;
266
+ type: _lssm_lib_schema102.FieldType<number, number>;
267
267
  isOptional: false;
268
268
  };
269
269
  rolledBackFrom: {
270
- type: _lssm_lib_schema203.FieldType<number, number>;
270
+ type: _lssm_lib_schema102.FieldType<number, number>;
271
271
  isOptional: false;
272
272
  };
273
273
  rolledBackTo: {
274
- type: _lssm_lib_schema203.FieldType<number, number>;
274
+ type: _lssm_lib_schema102.FieldType<number, number>;
275
275
  isOptional: false;
276
276
  };
277
277
  rolledBackBy: {
278
- type: _lssm_lib_schema203.FieldType<string, string>;
278
+ type: _lssm_lib_schema102.FieldType<string, string>;
279
279
  isOptional: false;
280
280
  };
281
281
  reason: {
282
- type: _lssm_lib_schema203.FieldType<string, string>;
282
+ type: _lssm_lib_schema102.FieldType<string, string>;
283
283
  isOptional: false;
284
284
  };
285
285
  }>>;
@@ -287,22 +287,22 @@ declare const RollbackTenantConfigCommand: ContractSpec<SchemaModel<{
287
287
  }[]>;
288
288
  declare const ListTenantConfigVersionsQuery: ContractSpec<SchemaModel<{
289
289
  tenantId: {
290
- type: _lssm_lib_schema203.FieldType<string, string>;
290
+ type: _lssm_lib_schema102.FieldType<string, string>;
291
291
  isOptional: false;
292
292
  };
293
293
  appId: {
294
- type: _lssm_lib_schema203.FieldType<string, string>;
294
+ type: _lssm_lib_schema102.FieldType<string, string>;
295
295
  isOptional: false;
296
296
  };
297
297
  }>, SchemaModel<{
298
298
  versions: {
299
299
  type: SchemaModel<{
300
300
  meta: {
301
- type: _lssm_lib_schema203.FieldType<Record<string, unknown>, Record<string, unknown>>;
301
+ type: _lssm_lib_schema102.FieldType<Record<string, unknown>, Record<string, unknown>>;
302
302
  isOptional: false;
303
303
  };
304
304
  config: {
305
- type: _lssm_lib_schema203.FieldType<Record<string, unknown>, Record<string, unknown>>;
305
+ type: _lssm_lib_schema102.FieldType<Record<string, unknown>, Record<string, unknown>>;
306
306
  isOptional: false;
307
307
  };
308
308
  }>;
@@ -312,35 +312,35 @@ declare const ListTenantConfigVersionsQuery: ContractSpec<SchemaModel<{
312
312
  transitions: {
313
313
  type: SchemaModel<{
314
314
  tenantId: {
315
- type: _lssm_lib_schema203.FieldType<string, string>;
315
+ type: _lssm_lib_schema102.FieldType<string, string>;
316
316
  isOptional: false;
317
317
  };
318
318
  appId: {
319
- type: _lssm_lib_schema203.FieldType<string, string>;
319
+ type: _lssm_lib_schema102.FieldType<string, string>;
320
320
  isOptional: false;
321
321
  };
322
322
  fromStatus: {
323
- type: _lssm_lib_schema203.FieldType<string, string>;
323
+ type: _lssm_lib_schema102.FieldType<string, string>;
324
324
  isOptional: false;
325
325
  };
326
326
  toStatus: {
327
- type: _lssm_lib_schema203.FieldType<string, string>;
327
+ type: _lssm_lib_schema102.FieldType<string, string>;
328
328
  isOptional: false;
329
329
  };
330
330
  version: {
331
- type: _lssm_lib_schema203.FieldType<number, number>;
331
+ type: _lssm_lib_schema102.FieldType<number, number>;
332
332
  isOptional: false;
333
333
  };
334
334
  timestamp: {
335
- type: _lssm_lib_schema203.FieldType<Date, string>;
335
+ type: _lssm_lib_schema102.FieldType<Date, string>;
336
336
  isOptional: false;
337
337
  };
338
338
  actor: {
339
- type: _lssm_lib_schema203.FieldType<string, string>;
339
+ type: _lssm_lib_schema102.FieldType<string, string>;
340
340
  isOptional: false;
341
341
  };
342
342
  reason: {
343
- type: _lssm_lib_schema203.FieldType<string, string>;
343
+ type: _lssm_lib_schema102.FieldType<string, string>;
344
344
  isOptional: true;
345
345
  };
346
346
  }>;
@@ -350,26 +350,26 @@ declare const ListTenantConfigVersionsQuery: ContractSpec<SchemaModel<{
350
350
  }>, undefined>;
351
351
  declare const GetTenantConfigVersionQuery: ContractSpec<SchemaModel<{
352
352
  tenantId: {
353
- type: _lssm_lib_schema203.FieldType<string, string>;
353
+ type: _lssm_lib_schema102.FieldType<string, string>;
354
354
  isOptional: false;
355
355
  };
356
356
  appId: {
357
- type: _lssm_lib_schema203.FieldType<string, string>;
357
+ type: _lssm_lib_schema102.FieldType<string, string>;
358
358
  isOptional: false;
359
359
  };
360
360
  version: {
361
- type: _lssm_lib_schema203.FieldType<number, number>;
361
+ type: _lssm_lib_schema102.FieldType<number, number>;
362
362
  isOptional: false;
363
363
  };
364
364
  }>, SchemaModel<{
365
365
  version: {
366
366
  type: SchemaModel<{
367
367
  meta: {
368
- type: _lssm_lib_schema203.FieldType<Record<string, unknown>, Record<string, unknown>>;
368
+ type: _lssm_lib_schema102.FieldType<Record<string, unknown>, Record<string, unknown>>;
369
369
  isOptional: false;
370
370
  };
371
371
  config: {
372
- type: _lssm_lib_schema203.FieldType<Record<string, unknown>, Record<string, unknown>>;
372
+ type: _lssm_lib_schema102.FieldType<Record<string, unknown>, Record<string, unknown>>;
373
373
  isOptional: false;
374
374
  };
375
375
  }>;
@@ -379,5 +379,4 @@ declare const GetTenantConfigVersionQuery: ContractSpec<SchemaModel<{
379
379
  declare const lifecycleContracts: Record<string, ContractSpec<any, any>>;
380
380
  declare function registerAppConfigLifecycleContracts(registry: SpecRegistry): SpecRegistry;
381
381
  //#endregion
382
- export { CreateTenantConfigDraftCommand, GetTenantConfigVersionQuery, ListTenantConfigVersionsQuery, PromoteTenantConfigToPreviewCommand, PublishTenantConfigCommand, RollbackTenantConfigCommand, lifecycleContracts, registerAppConfigLifecycleContracts };
383
- //# sourceMappingURL=lifecycle-contracts.d.ts.map
382
+ export { CreateTenantConfigDraftCommand, GetTenantConfigVersionQuery, ListTenantConfigVersionsQuery, PromoteTenantConfigToPreviewCommand, PublishTenantConfigCommand, RollbackTenantConfigCommand, lifecycleContracts, registerAppConfigLifecycleContracts };
@@ -1,2 +1 @@
1
- import{l as e}from"../schema/dist/ScalarTypeEnum.js";import{t}from"../schema/dist/SchemaModel.js";import"../schema/dist/index.js";import{defineCommand as n,defineQuery as r}from"../spec.js";import{OwnersEnum as i,StabilityEnum as a,TagsEnum as o}from"../ownership.js";import{ConfigDraftCreatedEvent as s,ConfigPromotedToPreviewEvent as c,ConfigPublishedEvent as l,ConfigRolledBackEvent as u}from"./events.js";const d={auth:`admin`,policies:[{name:`platform.app-config.manage`,version:1}]},f={auth:`admin`,policies:[{name:`platform.app-config.read`,version:1}]},p=new t({name:`ConfigVersionRecord`,fields:{meta:{type:e.JSONObject(),isOptional:!1},config:{type:e.JSONObject(),isOptional:!1}}}),m=new t({name:`ConfigTransitionRecord`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},fromStatus:{type:e.String_unsecure(),isOptional:!1},toStatus:{type:e.String_unsecure(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1},actor:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!0}}}),h=new t({name:`CreateTenantConfigDraftInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},blueprintName:{type:e.String_unsecure(),isOptional:!1},blueprintVersion:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},fromVersion:{type:e.Int_unsecure(),isOptional:!0},createdBy:{type:e.String_unsecure(),isOptional:!1}}}),g=new t({name:`CreateTenantConfigDraftOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),_=n({meta:{name:`appConfig.lifecycle.createDraft`,version:1,description:`Creates a new draft tenant config version.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Allow operators to start editing a new tenant config version.`,context:`Invoked by the Studio or automation when starting a new configuration run.`},io:{input:h,output:g},policy:d,sideEffects:{emits:[{ref:s,when:`after successful draft creation`}]}}),v=new t({name:`PromoteTenantConfigPreviewInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},promotedBy:{type:e.String_unsecure(),isOptional:!1}}}),y=new t({name:`PromoteTenantConfigPreviewOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},warnings:{type:e.String_unsecure(),isOptional:!0,isArray:!0}}}),b=n({meta:{name:`appConfig.lifecycle.promoteToPreview`,version:1,description:`Promotes a draft tenant config to preview/testing state.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Enable validation and testing of draft configurations.`,context:`Called when a draft passes initial checks and should be exposed to preview environments.`},io:{input:v,output:y},policy:d,sideEffects:{emits:[{ref:c,when:`after promotion to preview`}]}}),x=new t({name:`PublishTenantConfigInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},publishedBy:{type:e.String_unsecure(),isOptional:!1},changeSummary:{type:e.String_unsecure(),isOptional:!0}}}),S=new t({name:`PublishTenantConfigOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},previousVersion:{type:e.Int_unsecure(),isOptional:!0},publishedAt:{type:e.DateTime(),isOptional:!1}}}),C=n({meta:{name:`appConfig.lifecycle.publish`,version:1,description:`Publishes a preview tenant config to production.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Promote tested configurations to production safely.`,context:`Triggered after validation passes and change management approvals are complete.`},io:{input:x,output:S},policy:d,sideEffects:{emits:[{ref:l,when:`after publish succeeds`}]}}),w=new t({name:`RollbackTenantConfigInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},toVersion:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},rolledBackBy:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!1}}}),T=new t({name:`RollbackTenantConfigOutput`,fields:{newVersion:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},rolledBackFrom:{type:e.Int_unsecure(),isOptional:!1}}}),E=n({meta:{name:`appConfig.lifecycle.rollback`,version:1,description:`Rolls back to a previously published tenant config version.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Provide rapid recovery when new configs regress production.`,context:`Called manually or automatically when monitoring detects regression and a rollback is required.`},io:{input:w,output:T},policy:d,sideEffects:{emits:[{ref:u,when:`after rollback completes`}]}}),D=new t({name:`ListTenantConfigVersionsInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1}}}),O=new t({name:`ListTenantConfigVersionsOutput`,fields:{versions:{type:p,isOptional:!1,isArray:!0},transitions:{type:m,isOptional:!0,isArray:!0}}}),k=r({meta:{name:`appConfig.lifecycle.listVersions`,version:1,description:`Lists all versions of a tenant configuration.`,owners:[i.PlatformSigil],tags:[`app-config`,o.Hygiene],stability:a.Experimental,goal:`Support lifecycle views and change audit tooling.`,context:`Used by the Studio to render history timelines and by automation for change tracking.`},io:{input:D,output:O},policy:f}),A=new t({name:`GetTenantConfigVersionInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1}}}),j=new t({name:`GetTenantConfigVersionOutput`,fields:{version:{type:p,isOptional:!1}}}),M=r({meta:{name:`appConfig.lifecycle.getVersion`,version:1,description:`Fetches a single tenant config version by id.`,owners:[i.PlatformSigil],tags:[`app-config`,o.Hygiene],stability:a.Experimental,goal:`Allow detail drill-down for lifecycle entries.`,context:`Used by automation to fetch config payloads for comparison or export.`},io:{input:A,output:j},policy:f}),N={CreateTenantConfigDraftCommand:_,PromoteTenantConfigToPreviewCommand:b,PublishTenantConfigCommand:C,RollbackTenantConfigCommand:E,ListTenantConfigVersionsQuery:k,GetTenantConfigVersionQuery:M};function P(e){return e.register(_).register(b).register(C).register(E).register(k).register(M)}export{_ as CreateTenantConfigDraftCommand,M as GetTenantConfigVersionQuery,k as ListTenantConfigVersionsQuery,b as PromoteTenantConfigToPreviewCommand,C as PublishTenantConfigCommand,E as RollbackTenantConfigCommand,N as lifecycleContracts,P as registerAppConfigLifecycleContracts};
2
- //# sourceMappingURL=lifecycle-contracts.js.map
1
+ import{l as e}from"../schema/dist/ScalarTypeEnum.js";import{t}from"../schema/dist/SchemaModel.js";import"../schema/dist/index.js";import{defineCommand as n,defineQuery as r}from"../spec.js";import{OwnersEnum as i,StabilityEnum as a,TagsEnum as o}from"../ownership.js";import{ConfigDraftCreatedEvent as s,ConfigPromotedToPreviewEvent as c,ConfigPublishedEvent as l,ConfigRolledBackEvent as u}from"./events.js";const d={auth:`admin`,policies:[{name:`platform.app-config.manage`,version:1}]},f={auth:`admin`,policies:[{name:`platform.app-config.read`,version:1}]},p=new t({name:`ConfigVersionRecord`,fields:{meta:{type:e.JSONObject(),isOptional:!1},config:{type:e.JSONObject(),isOptional:!1}}}),m=new t({name:`ConfigTransitionRecord`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},fromStatus:{type:e.String_unsecure(),isOptional:!1},toStatus:{type:e.String_unsecure(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1},actor:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!0}}}),h=new t({name:`CreateTenantConfigDraftInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},blueprintName:{type:e.String_unsecure(),isOptional:!1},blueprintVersion:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},fromVersion:{type:e.Int_unsecure(),isOptional:!0},createdBy:{type:e.String_unsecure(),isOptional:!1}}}),g=new t({name:`CreateTenantConfigDraftOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),_=n({meta:{name:`appConfig.lifecycle.createDraft`,version:1,description:`Creates a new draft tenant config version.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Allow operators to start editing a new tenant config version.`,context:`Invoked by the Studio or automation when starting a new configuration run.`},io:{input:h,output:g},policy:d,sideEffects:{emits:[{ref:s,when:`after successful draft creation`}]}}),v=new t({name:`PromoteTenantConfigPreviewInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},promotedBy:{type:e.String_unsecure(),isOptional:!1}}}),y=new t({name:`PromoteTenantConfigPreviewOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},warnings:{type:e.String_unsecure(),isOptional:!0,isArray:!0}}}),b=n({meta:{name:`appConfig.lifecycle.promoteToPreview`,version:1,description:`Promotes a draft tenant config to preview/testing state.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Enable validation and testing of draft configurations.`,context:`Called when a draft passes initial checks and should be exposed to preview environments.`},io:{input:v,output:y},policy:d,sideEffects:{emits:[{ref:c,when:`after promotion to preview`}]}}),x=new t({name:`PublishTenantConfigInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},publishedBy:{type:e.String_unsecure(),isOptional:!1},changeSummary:{type:e.String_unsecure(),isOptional:!0}}}),S=new t({name:`PublishTenantConfigOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},previousVersion:{type:e.Int_unsecure(),isOptional:!0},publishedAt:{type:e.DateTime(),isOptional:!1}}}),C=n({meta:{name:`appConfig.lifecycle.publish`,version:1,description:`Publishes a preview tenant config to production.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Promote tested configurations to production safely.`,context:`Triggered after validation passes and change management approvals are complete.`},io:{input:x,output:S},policy:d,sideEffects:{emits:[{ref:l,when:`after publish succeeds`}]}}),w=new t({name:`RollbackTenantConfigInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},toVersion:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},rolledBackBy:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!1}}}),T=new t({name:`RollbackTenantConfigOutput`,fields:{newVersion:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},rolledBackFrom:{type:e.Int_unsecure(),isOptional:!1}}}),E=n({meta:{name:`appConfig.lifecycle.rollback`,version:1,description:`Rolls back to a previously published tenant config version.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Provide rapid recovery when new configs regress production.`,context:`Called manually or automatically when monitoring detects regression and a rollback is required.`},io:{input:w,output:T},policy:d,sideEffects:{emits:[{ref:u,when:`after rollback completes`}]}}),D=new t({name:`ListTenantConfigVersionsInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1}}}),O=new t({name:`ListTenantConfigVersionsOutput`,fields:{versions:{type:p,isOptional:!1,isArray:!0},transitions:{type:m,isOptional:!0,isArray:!0}}}),k=r({meta:{name:`appConfig.lifecycle.listVersions`,version:1,description:`Lists all versions of a tenant configuration.`,owners:[i.PlatformSigil],tags:[`app-config`,o.Hygiene],stability:a.Experimental,goal:`Support lifecycle views and change audit tooling.`,context:`Used by the Studio to render history timelines and by automation for change tracking.`},io:{input:D,output:O},policy:f}),A=new t({name:`GetTenantConfigVersionInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1}}}),j=new t({name:`GetTenantConfigVersionOutput`,fields:{version:{type:p,isOptional:!1}}}),M=r({meta:{name:`appConfig.lifecycle.getVersion`,version:1,description:`Fetches a single tenant config version by id.`,owners:[i.PlatformSigil],tags:[`app-config`,o.Hygiene],stability:a.Experimental,goal:`Allow detail drill-down for lifecycle entries.`,context:`Used by automation to fetch config payloads for comparison or export.`},io:{input:A,output:j},policy:f}),N={CreateTenantConfigDraftCommand:_,PromoteTenantConfigToPreviewCommand:b,PublishTenantConfigCommand:C,RollbackTenantConfigCommand:E,ListTenantConfigVersionsQuery:k,GetTenantConfigVersionQuery:M};function P(e){return e.register(_).register(b).register(C).register(E).register(k).register(M)}export{_ as CreateTenantConfigDraftCommand,M as GetTenantConfigVersionQuery,k as ListTenantConfigVersionsQuery,b as PromoteTenantConfigToPreviewCommand,C as PublishTenantConfigCommand,E as RollbackTenantConfigCommand,N as lifecycleContracts,P as registerAppConfigLifecycleContracts};
@@ -24,5 +24,4 @@ interface ConfigVersionHistory {
24
24
  currentPublished?: number;
25
25
  }
26
26
  //#endregion
27
- export { ConfigStatus, ConfigTransition, ConfigVersionHistory, TenantAppConfigVersion };
28
- //# sourceMappingURL=lifecycle.d.ts.map
27
+ export { ConfigStatus, ConfigTransition, ConfigVersionHistory, TenantAppConfigVersion };
@@ -111,5 +111,4 @@ interface ComposeOptions {
111
111
  declare function resolveAppConfig(blueprint: AppBlueprintSpec, tenant: TenantAppConfig, deps?: ResolveAppConfigDeps): ResolvedAppConfig;
112
112
  declare function composeAppConfig(blueprint: AppBlueprintSpec, tenant: TenantAppConfig, deps: AppCompositionDeps, options?: ComposeOptions): AppComposition;
113
113
  //#endregion
114
- export { AppComposition, AppCompositionDeps, ComposeOptions, MissingReference, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, composeAppConfig, resolveAppConfig };
115
- //# sourceMappingURL=runtime.d.ts.map
114
+ export { AppComposition, AppCompositionDeps, ComposeOptions, MissingReference, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, composeAppConfig, resolveAppConfig };
@@ -1,2 +1 @@
1
- function e(e,t,m={}){let g=n(e.capabilities,t.capabilities),_=r(e.features,t.features),v=i(e.dataViews??{},t.dataViewOverrides),y=i(e.workflows??{},t.workflowOverrides),b=a(e.policies??[],t.additionalPolicies??[]),x=o(e.theme,t.themeOverride),S=s(e.telemetry,t.telemetryOverride),C=c(e.experiments,t.experiments),w=d(e.featureFlags??[],t.featureFlags??[]),T=f(e.routes??[],t.routeOverrides??[]),{resolved:E}=p(e.integrationSlots,t.integrations,m.integrationConnections,m.integrationSpecs),D=h(t.knowledge,m.knowledgeSpaces,m.knowledgeSources),O=l(e.branding,t),k=u(e.translationCatalog,t.locales,t.translationOverrides);return{appId:e.meta.appId,tenantId:t.meta.tenantId,environment:t.meta.environment,blueprintName:e.meta.name,blueprintVersion:e.meta.version,configVersion:t.meta.version,capabilities:g,features:_,dataViews:v,workflows:y,policies:b,theme:x,telemetry:S,experiments:C,featureFlags:w,routes:T,integrations:E,knowledge:D,translation:k,branding:O,notes:t.notes??e.notes}}function t(t,n,r,i={}){let a=e(t,n,r),o=[],s=p(t.integrationSlots,n.integrations,r.integrationConnections,r.integrationSpecs);a.integrations=s.resolved,o.push(...s.missing),o.push(...g(n.knowledge??[],r.knowledgeSpaces,r.knowledgeSources));let c=_(a.capabilities.enabled,r.capabilities,o),l=v(a.features.include,r.features,o),u=y(a.dataViews,r.dataViews,`dataView`,o),d=y(a.workflows,r.workflows,`workflow`,o),f=b(a.policies,r.policies,o),{theme:m,fallbacks:h,themeMissing:w}=x(a.theme,r.themes);o.push(...w);let{telemetry:T,telemetryMissing:E}=S(a.telemetry,r.telemetry);o.push(...E);let D=C(a.experiments,r.experiments,o);if(i.strict&&o.length>0){let e=o.map(e=>`${e.type}:${e.identifier}`).join(`, `);throw Error(`composeAppConfig: missing references -> ${e}`)}return{resolved:a,capabilities:c,features:l,dataViews:u,workflows:d,policies:f,theme:m,themeFallbacks:h,telemetry:T,experiments:D,integrations:a.integrations,knowledge:a.knowledge,missing:o}}function n(e,t){let n=k([...e?.enabled??[],...t?.enable??[]],w),r=k([...e?.disabled??[],...t?.disable??[]],w),i=new Set(r.map(w));return{enabled:n.filter(e=>!i.has(w(e))),disabled:r}}function r(e,t){let n=k([...e?.include??[],...t?.include??[]],T),r=k([...e?.exclude??[],...t?.exclude??[]],T),i=new Set(r.map(T));return{include:n.filter(e=>!i.has(T(e))),exclude:r}}function i(e,t){let n={...e};if(!t)return n;for(let e of t)e&&(e.pointer?n[e.slot]=e.pointer:delete n[e.slot]);return n}function a(e,t){return k([...e,...t],D)}function o(e,t){if(!e&&!t)return;let n=t?.primary??e?.primary;if(n)return{primary:n,fallbacks:t?.fallbacks??e?.fallbacks??[]}}function s(e,t){if(!e&&!t)return;let n={spec:e?.spec,disabledEvents:e?.disabledEvents?[...e.disabledEvents]:void 0,samplingOverrides:e?.samplingOverrides?{...e.samplingOverrides}:void 0};if(t?.spec!==void 0&&(n.spec=t.spec??void 0),t?.disabledEvents&&(n.disabledEvents=A([...n.disabledEvents??[],...t.disabledEvents])),t?.samplingOverrides&&(n.samplingOverrides={...n.samplingOverrides??{},...t.samplingOverrides}),!(!n.spec&&!n.disabledEvents?.length))return n}function c(e,t){let n=e?.active??[],r=e?.paused??[],i=t?.active,a=t?.paused,o=i&&i.length>0?i:n,s=a&&a.length>0?a:r,c=k(o,O),l=k(s,O),u=new Set(c.map(O));return l=l.filter(e=>!u.has(O(e))),{catalog:k([...n,...r,...i??[],...a??[]],O),active:c,paused:l}}function l(e,t){let n=t.branding,r=t.meta,i=`app.localhost`,a=n?.customDomain??(n?.subdomain?`${n.subdomain}.${i}`:`${r.tenantId}.${i}`),o=[];t.locales?.defaultLocale&&o.push(t.locales.defaultLocale),n?.appName&&o.push(`default`,`en`);let s;if(n?.appName){for(let e of o){let t=n.appName[e];if(t){s=t;break}}if(!s){let[,e]=Object.entries(n.appName)[0]??[];typeof e==`string`&&(s=e)}}s||=e?.appNameKey??r.appId;let c=new Map,l=e=>{if(e)for(let t of e)t?.type&&`url`in t&&t.url&&c.set(t.type,t.url)};l(e?.assets),l(n?.assets);let u={logo:c.get(`logo`),logoDark:c.get(`logo-dark`),favicon:c.get(`favicon`),ogImage:c.get(`og-image`)},d={primary:n?.colors?.primary??e?.colorTokens?.primary??`#1f2937`,secondary:n?.colors?.secondary??e?.colorTokens?.secondary??`#4b5563`};return{appName:s,assets:u,colors:d,domain:a}}function u(e,t,n){let r=t?.defaultLocale??`en`;return{defaultLocale:r,supportedLocales:A([r,...t?.enabledLocales??[]]),blueprintCatalog:e,tenantOverrides:n?.entries??[]}}function d(e,t){let n=new Map;for(let t of e)n.set(t.key,{...t});for(let e of t)n.set(e.key,{...e});return[...n.values()]}function f(e,t){let n=new Map;for(let t of e)n.set(t.path,{...t});for(let e of t){let t=n.get(e.path)??{path:e.path};e.label!==void 0&&(e.label===null?delete t.label:t.label=e.label),e.dataView!==void 0&&(e.dataView===null?delete t.dataView:t.dataView=e.dataView),e.workflow!==void 0&&(e.workflow===null?delete t.workflow:t.workflow=e.workflow),e.guard!==void 0&&(e.guard===null?delete t.guard:t.guard=e.guard),e.featureFlag!==void 0&&(e.featureFlag===null?delete t.featureFlag:t.featureFlag=e.featureFlag),e.experiment!==void 0&&(e.experiment===null?delete t.experiment:t.experiment=e.experiment),n.set(t.path,t)}return[...n.values()]}function p(e,t,n,r){let i=[],a=[],o=new Set,s=e=>{let t=`${e.type}:${e.identifier}`;o.has(t)||(o.add(t),a.push(e))},c=e??[],l=new Map;for(let e of c)l.set(e.slotId,e);let u=new Map;for(let e of t??[]){if(!l.get(e.slotId)){s({type:`integrationSlot`,identifier:`slot:${e.slotId}`});continue}let t=u.get(e.slotId);t?t.push(e):u.set(e.slotId,[e])}for(let e of c){let t=u.get(e.slotId)??[];e.required&&t.length===0&&s({type:`integrationSlot`,identifier:`slot:${e.slotId}`})}if(!n||!r)return{resolved:i,missing:a};let d=new Map;for(let e of n)d.set(e.meta.id,e);for(let e of c){let t=u.get(e.slotId)??[];if(t.length===0)continue;let n=[...t].sort((e,t)=>{let n=e.priority??2**53-1,r=t.priority??2**53-1;return n===r?0:n<r?-1:1}),a=!1;for(let t of n){let n=d.get(t.connectionId);if(!n){s({type:`integrationConnection`,identifier:`connection:${t.connectionId}`});continue}let o=r.get(n.meta.integrationKey,n.meta.integrationVersion);if(!o){s({type:`integrationSpec`,identifier:`spec:${n.meta.integrationKey}.v${n.meta.integrationVersion}`});continue}if(o.meta.category!==e.requiredCategory){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.category`});continue}if(!o.supportedModes.includes(n.ownershipMode)){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.mode:${n.ownershipMode}`});continue}if(e.allowedModes&&e.allowedModes.length>0&&!e.allowedModes.includes(n.ownershipMode)){s({type:`integrationConnection`,identifier:`connection:${n.meta.id}:mode`});continue}if(e.requiredCapabilities&&!e.requiredCapabilities.every(e=>m(o,e))){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.capabilities`});continue}i.push({slot:e,binding:t,connection:n,spec:o}),a=!0;break}!a&&e.required&&s({type:`integrationSlot`,identifier:`slot:${e.slotId}`})}return{resolved:i,missing:a}}function m(e,t){return e.capabilities.provides.some(e=>e.key===t.key?t.version==null?!0:e.version===t.version:!1)}function h(e,t,n){if(!e?.length||!t)return[];let r=n??[];return e.map(e=>{let n=t.get(e.spaceKey,e.spaceVersion);return n?{binding:e,space:n,sources:r.filter(t=>t.meta.spaceKey===e.spaceKey?e.spaceVersion==null?!0:t.meta.spaceVersion===e.spaceVersion:!1)}:null}).filter(e=>e!==null)}function g(e,t,n){if(!e.length||!t)return[];let r=[],i=n??[];for(let a of e){if(!t.get(a.spaceKey,a.spaceVersion)){r.push({type:`knowledgeSpace`,identifier:a.spaceVersion?`${a.spaceKey}@${a.spaceVersion}`:a.spaceKey});continue}n&&i.filter(e=>e.meta.spaceKey===a.spaceKey?a.spaceVersion==null?!0:e.meta.spaceVersion===a.spaceVersion:!1).length===0&&r.push({type:`knowledgeSource`,identifier:a.spaceVersion?`${a.spaceKey}@${a.spaceVersion}`:a.spaceKey})}return r}function _(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`capability`,identifier:w(t)});return[]}let r=[];for(let i of e){let e=t.get(i.key,i.version);if(!e){n.push({type:`capability`,identifier:w(i)});continue}r.push(e)}return r}function v(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`feature`,identifier:t.key});return[]}let r=[];for(let i of e){let e=t.get(i.key);if(!e){n.push({type:`feature`,identifier:i.key});continue}r.push(e)}return r}function y(e,t,n,r){if(!t){if(Object.keys(e).length>0)for(let[t,i]of Object.entries(e))r.push({type:n,identifier:`${t} -> ${E(i)}`});return{}}let i={};for(let[a,o]of Object.entries(e)){let e=t.get(o.name,o.version);if(!e){r.push({type:n,identifier:`${a} -> ${E(o)}`});continue}i[a]=e}return i}function b(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`policy`,identifier:D(t)});return[]}let r=[];for(let i of e){let e=t.get(i.name,i.version);if(!e){n.push({type:`policy`,identifier:D(i)});continue}r.push(e)}return r}function x(e,t){let n=[];if(!e)return{theme:void 0,fallbacks:[],themeMissing:n};if(!t){n.push({type:`theme`,identifier:`${e.primary.name}.v${e.primary.version}`});for(let t of e.fallbacks??[])n.push({type:`theme`,identifier:`${t.name}.v${t.version}`});return{theme:void 0,fallbacks:[],themeMissing:n}}let r=t.get(e.primary.name,e.primary.version);r||n.push({type:`theme`,identifier:`${e.primary.name}.v${e.primary.version}`});let i=[];for(let r of e.fallbacks??[]){let e=t.get(r.name,r.version);if(!e){n.push({type:`theme`,identifier:`${r.name}.v${r.version}`});continue}i.push(e)}return{theme:r??void 0,fallbacks:i,themeMissing:n}}function S(e,t){let n=[];if(!e?.spec)return{telemetry:void 0,telemetryMissing:n};if(!t)return n.push({type:`telemetry`,identifier:E(e.spec)}),{telemetry:void 0,telemetryMissing:n};let r=t.get(e.spec.name,e.spec.version);return r||n.push({type:`telemetry`,identifier:E(e.spec)}),{telemetry:r??void 0,telemetryMissing:n}}function C(e,t,n){let r=e=>{if(e.length===0)return[];if(!t){for(let t of e)n.push({type:`experiment`,identifier:O(t)});return[]}let r=[];for(let i of e){let e=t.get(i.name,i.version);if(!e){n.push({type:`experiment`,identifier:O(i)});continue}r.push(e)}return r};return{active:r(e.active),paused:r(e.paused)}}function w(e){return`${e.key}${e.version?`.v${e.version}`:``}`}function T(e){return e.key}function E(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function D(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function O(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function k(e,t){let n=new Map;for(let r of e)n.set(t(r),r);return[...n.values()]}function A(e){return[...new Set(e)]}export{t as composeAppConfig,e as resolveAppConfig};
2
- //# sourceMappingURL=runtime.js.map
1
+ function e(e,t,m={}){let g=n(e.capabilities,t.capabilities),_=r(e.features,t.features),v=i(e.dataViews??{},t.dataViewOverrides),y=i(e.workflows??{},t.workflowOverrides),b=a(e.policies??[],t.additionalPolicies??[]),x=o(e.theme,t.themeOverride),S=s(e.telemetry,t.telemetryOverride),C=c(e.experiments,t.experiments),w=d(e.featureFlags??[],t.featureFlags??[]),T=f(e.routes??[],t.routeOverrides??[]),{resolved:E}=p(e.integrationSlots,t.integrations,m.integrationConnections,m.integrationSpecs),D=h(t.knowledge,m.knowledgeSpaces,m.knowledgeSources),O=l(e.branding,t),k=u(e.translationCatalog,t.locales,t.translationOverrides);return{appId:e.meta.appId,tenantId:t.meta.tenantId,environment:t.meta.environment,blueprintName:e.meta.name,blueprintVersion:e.meta.version,configVersion:t.meta.version,capabilities:g,features:_,dataViews:v,workflows:y,policies:b,theme:x,telemetry:S,experiments:C,featureFlags:w,routes:T,integrations:E,knowledge:D,translation:k,branding:O,notes:t.notes??e.notes}}function t(t,n,r,i={}){let a=e(t,n,r),o=[],s=p(t.integrationSlots,n.integrations,r.integrationConnections,r.integrationSpecs);a.integrations=s.resolved,o.push(...s.missing),o.push(...g(n.knowledge??[],r.knowledgeSpaces,r.knowledgeSources));let c=_(a.capabilities.enabled,r.capabilities,o),l=v(a.features.include,r.features,o),u=y(a.dataViews,r.dataViews,`dataView`,o),d=y(a.workflows,r.workflows,`workflow`,o),f=b(a.policies,r.policies,o),{theme:m,fallbacks:h,themeMissing:w}=x(a.theme,r.themes);o.push(...w);let{telemetry:T,telemetryMissing:E}=S(a.telemetry,r.telemetry);o.push(...E);let D=C(a.experiments,r.experiments,o);if(i.strict&&o.length>0){let e=o.map(e=>`${e.type}:${e.identifier}`).join(`, `);throw Error(`composeAppConfig: missing references -> ${e}`)}return{resolved:a,capabilities:c,features:l,dataViews:u,workflows:d,policies:f,theme:m,themeFallbacks:h,telemetry:T,experiments:D,integrations:a.integrations,knowledge:a.knowledge,missing:o}}function n(e,t){let n=k([...e?.enabled??[],...t?.enable??[]],w),r=k([...e?.disabled??[],...t?.disable??[]],w),i=new Set(r.map(w));return{enabled:n.filter(e=>!i.has(w(e))),disabled:r}}function r(e,t){let n=k([...e?.include??[],...t?.include??[]],T),r=k([...e?.exclude??[],...t?.exclude??[]],T),i=new Set(r.map(T));return{include:n.filter(e=>!i.has(T(e))),exclude:r}}function i(e,t){let n={...e};if(!t)return n;for(let e of t)e&&(e.pointer?n[e.slot]=e.pointer:delete n[e.slot]);return n}function a(e,t){return k([...e,...t],D)}function o(e,t){if(!e&&!t)return;let n=t?.primary??e?.primary;if(n)return{primary:n,fallbacks:t?.fallbacks??e?.fallbacks??[]}}function s(e,t){if(!e&&!t)return;let n={spec:e?.spec,disabledEvents:e?.disabledEvents?[...e.disabledEvents]:void 0,samplingOverrides:e?.samplingOverrides?{...e.samplingOverrides}:void 0};if(t?.spec!==void 0&&(n.spec=t.spec??void 0),t?.disabledEvents&&(n.disabledEvents=A([...n.disabledEvents??[],...t.disabledEvents])),t?.samplingOverrides&&(n.samplingOverrides={...n.samplingOverrides??{},...t.samplingOverrides}),!(!n.spec&&!n.disabledEvents?.length))return n}function c(e,t){let n=e?.active??[],r=e?.paused??[],i=t?.active,a=t?.paused,o=i&&i.length>0?i:n,s=a&&a.length>0?a:r,c=k(o,O),l=k(s,O),u=new Set(c.map(O));return l=l.filter(e=>!u.has(O(e))),{catalog:k([...n,...r,...i??[],...a??[]],O),active:c,paused:l}}function l(e,t){let n=t.branding,r=t.meta,i=`app.localhost`,a=n?.customDomain??(n?.subdomain?`${n.subdomain}.${i}`:`${r.tenantId}.${i}`),o=[];t.locales?.defaultLocale&&o.push(t.locales.defaultLocale),n?.appName&&o.push(`default`,`en`);let s;if(n?.appName){for(let e of o){let t=n.appName[e];if(t){s=t;break}}if(!s){let[,e]=Object.entries(n.appName)[0]??[];typeof e==`string`&&(s=e)}}s||=e?.appNameKey??r.appId;let c=new Map,l=e=>{if(e)for(let t of e)t?.type&&`url`in t&&t.url&&c.set(t.type,t.url)};l(e?.assets),l(n?.assets);let u={logo:c.get(`logo`),logoDark:c.get(`logo-dark`),favicon:c.get(`favicon`),ogImage:c.get(`og-image`)},d={primary:n?.colors?.primary??e?.colorTokens?.primary??`#1f2937`,secondary:n?.colors?.secondary??e?.colorTokens?.secondary??`#4b5563`};return{appName:s,assets:u,colors:d,domain:a}}function u(e,t,n){let r=t?.defaultLocale??`en`;return{defaultLocale:r,supportedLocales:A([r,...t?.enabledLocales??[]]),blueprintCatalog:e,tenantOverrides:n?.entries??[]}}function d(e,t){let n=new Map;for(let t of e)n.set(t.key,{...t});for(let e of t)n.set(e.key,{...e});return[...n.values()]}function f(e,t){let n=new Map;for(let t of e)n.set(t.path,{...t});for(let e of t){let t=n.get(e.path)??{path:e.path};e.label!==void 0&&(e.label===null?delete t.label:t.label=e.label),e.dataView!==void 0&&(e.dataView===null?delete t.dataView:t.dataView=e.dataView),e.workflow!==void 0&&(e.workflow===null?delete t.workflow:t.workflow=e.workflow),e.guard!==void 0&&(e.guard===null?delete t.guard:t.guard=e.guard),e.featureFlag!==void 0&&(e.featureFlag===null?delete t.featureFlag:t.featureFlag=e.featureFlag),e.experiment!==void 0&&(e.experiment===null?delete t.experiment:t.experiment=e.experiment),n.set(t.path,t)}return[...n.values()]}function p(e,t,n,r){let i=[],a=[],o=new Set,s=e=>{let t=`${e.type}:${e.identifier}`;o.has(t)||(o.add(t),a.push(e))},c=e??[],l=new Map;for(let e of c)l.set(e.slotId,e);let u=new Map;for(let e of t??[]){if(!l.get(e.slotId)){s({type:`integrationSlot`,identifier:`slot:${e.slotId}`});continue}let t=u.get(e.slotId);t?t.push(e):u.set(e.slotId,[e])}for(let e of c){let t=u.get(e.slotId)??[];e.required&&t.length===0&&s({type:`integrationSlot`,identifier:`slot:${e.slotId}`})}if(!n||!r)return{resolved:i,missing:a};let d=new Map;for(let e of n)d.set(e.meta.id,e);for(let e of c){let t=u.get(e.slotId)??[];if(t.length===0)continue;let n=[...t].sort((e,t)=>{let n=e.priority??2**53-1,r=t.priority??2**53-1;return n===r?0:n<r?-1:1}),a=!1;for(let t of n){let n=d.get(t.connectionId);if(!n){s({type:`integrationConnection`,identifier:`connection:${t.connectionId}`});continue}let o=r.get(n.meta.integrationKey,n.meta.integrationVersion);if(!o){s({type:`integrationSpec`,identifier:`spec:${n.meta.integrationKey}.v${n.meta.integrationVersion}`});continue}if(o.meta.category!==e.requiredCategory){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.category`});continue}if(!o.supportedModes.includes(n.ownershipMode)){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.mode:${n.ownershipMode}`});continue}if(e.allowedModes&&e.allowedModes.length>0&&!e.allowedModes.includes(n.ownershipMode)){s({type:`integrationConnection`,identifier:`connection:${n.meta.id}:mode`});continue}if(e.requiredCapabilities&&!e.requiredCapabilities.every(e=>m(o,e))){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.capabilities`});continue}i.push({slot:e,binding:t,connection:n,spec:o}),a=!0;break}!a&&e.required&&s({type:`integrationSlot`,identifier:`slot:${e.slotId}`})}return{resolved:i,missing:a}}function m(e,t){return e.capabilities.provides.some(e=>e.key===t.key?t.version==null?!0:e.version===t.version:!1)}function h(e,t,n){if(!e?.length||!t)return[];let r=n??[];return e.map(e=>{let n=t.get(e.spaceKey,e.spaceVersion);return n?{binding:e,space:n,sources:r.filter(t=>t.meta.spaceKey===e.spaceKey?e.spaceVersion==null?!0:t.meta.spaceVersion===e.spaceVersion:!1)}:null}).filter(e=>e!==null)}function g(e,t,n){if(!e.length||!t)return[];let r=[],i=n??[];for(let a of e){if(!t.get(a.spaceKey,a.spaceVersion)){r.push({type:`knowledgeSpace`,identifier:a.spaceVersion?`${a.spaceKey}@${a.spaceVersion}`:a.spaceKey});continue}n&&i.filter(e=>e.meta.spaceKey===a.spaceKey?a.spaceVersion==null?!0:e.meta.spaceVersion===a.spaceVersion:!1).length===0&&r.push({type:`knowledgeSource`,identifier:a.spaceVersion?`${a.spaceKey}@${a.spaceVersion}`:a.spaceKey})}return r}function _(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`capability`,identifier:w(t)});return[]}let r=[];for(let i of e){let e=t.get(i.key,i.version);if(!e){n.push({type:`capability`,identifier:w(i)});continue}r.push(e)}return r}function v(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`feature`,identifier:t.key});return[]}let r=[];for(let i of e){let e=t.get(i.key);if(!e){n.push({type:`feature`,identifier:i.key});continue}r.push(e)}return r}function y(e,t,n,r){if(!t){if(Object.keys(e).length>0)for(let[t,i]of Object.entries(e))r.push({type:n,identifier:`${t} -> ${E(i)}`});return{}}let i={};for(let[a,o]of Object.entries(e)){let e=t.get(o.name,o.version);if(!e){r.push({type:n,identifier:`${a} -> ${E(o)}`});continue}i[a]=e}return i}function b(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`policy`,identifier:D(t)});return[]}let r=[];for(let i of e){let e=t.get(i.name,i.version);if(!e){n.push({type:`policy`,identifier:D(i)});continue}r.push(e)}return r}function x(e,t){let n=[];if(!e)return{theme:void 0,fallbacks:[],themeMissing:n};if(!t){n.push({type:`theme`,identifier:`${e.primary.name}.v${e.primary.version}`});for(let t of e.fallbacks??[])n.push({type:`theme`,identifier:`${t.name}.v${t.version}`});return{theme:void 0,fallbacks:[],themeMissing:n}}let r=t.get(e.primary.name,e.primary.version);r||n.push({type:`theme`,identifier:`${e.primary.name}.v${e.primary.version}`});let i=[];for(let r of e.fallbacks??[]){let e=t.get(r.name,r.version);if(!e){n.push({type:`theme`,identifier:`${r.name}.v${r.version}`});continue}i.push(e)}return{theme:r??void 0,fallbacks:i,themeMissing:n}}function S(e,t){let n=[];if(!e?.spec)return{telemetry:void 0,telemetryMissing:n};if(!t)return n.push({type:`telemetry`,identifier:E(e.spec)}),{telemetry:void 0,telemetryMissing:n};let r=t.get(e.spec.name,e.spec.version);return r||n.push({type:`telemetry`,identifier:E(e.spec)}),{telemetry:r??void 0,telemetryMissing:n}}function C(e,t,n){let r=e=>{if(e.length===0)return[];if(!t){for(let t of e)n.push({type:`experiment`,identifier:O(t)});return[]}let r=[];for(let i of e){let e=t.get(i.name,i.version);if(!e){n.push({type:`experiment`,identifier:O(i)});continue}r.push(e)}return r};return{active:r(e.active),paused:r(e.paused)}}function w(e){return`${e.key}${e.version?`.v${e.version}`:``}`}function T(e){return e.key}function E(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function D(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function O(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function k(e,t){let n=new Map;for(let r of e)n.set(t(r),r);return[...n.values()]}function A(e){return[...new Set(e)]}export{t as composeAppConfig,e as resolveAppConfig};
@@ -172,5 +172,4 @@ interface TenantAppConfig {
172
172
  notes?: string;
173
173
  }
174
174
  //#endregion
175
- export { AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppIntegrationSlot, AppRouteConfig, AppThemeBinding, FeatureFlagState, SpecPointer, TelemetryBinding, TenantAppConfig, TenantAppConfigMeta, TenantRouteOverride, TenantSpecOverride, TranslationCatalogPointer, makeAppBlueprintKey };
176
- //# sourceMappingURL=spec.d.ts.map
175
+ export { AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppIntegrationSlot, AppRouteConfig, AppThemeBinding, FeatureFlagState, SpecPointer, TelemetryBinding, TenantAppConfig, TenantAppConfigMeta, TenantRouteOverride, TenantSpecOverride, TranslationCatalogPointer, makeAppBlueprintKey };
@@ -1,2 +1 @@
1
- const e=e=>`${e.name}.v${e.version}`;var t=class{items=new Map;register(t){let n=e(t.meta);if(this.items.has(n))throw Error(`Duplicate AppBlueprint ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(t,n){if(n!=null)return this.items.get(e({name:t,version:n}));let r,i=-1/0;for(let e of this.items.values())e.meta.name===t&&e.meta.version>i&&(i=e.meta.version,r=e);return r}};function n(t){return e(t)}export{t as AppBlueprintRegistry,n as makeAppBlueprintKey};
2
- //# sourceMappingURL=spec.js.map
1
+ const e=e=>`${e.name}.v${e.version}`;var t=class{items=new Map;register(t){let n=e(t.meta);if(this.items.has(n))throw Error(`Duplicate AppBlueprint ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(t,n){if(n!=null)return this.items.get(e({name:t,version:n}));let r,i=-1/0;for(let e of this.items.values())e.meta.name===t&&e.meta.version>i&&(i=e.meta.version,r=e);return r}};function n(t){return e(t)}export{t as AppBlueprintRegistry,n as makeAppBlueprintKey};
@@ -44,5 +44,4 @@ declare function validateBlueprint(blueprint: AppBlueprintSpec, context?: Valida
44
44
  declare function validateTenantConfig(blueprint: AppBlueprintSpec, tenant: TenantAppConfig, context?: ValidationContext): ValidationResult;
45
45
  declare function validateResolvedConfig(blueprint: AppBlueprintSpec, resolved: ResolvedAppConfig, context?: ValidationContext): ValidationResult;
46
46
  //#endregion
47
- export { ValidationContext, ValidationIssue, ValidationResult, ValidationSeverity, validateBlueprint, validateConfig, validateResolvedConfig, validateTenantConfig };
48
- //# sourceMappingURL=validation.d.ts.map
47
+ export { ValidationContext, ValidationIssue, ValidationResult, ValidationSeverity, validateBlueprint, validateConfig, validateResolvedConfig, validateTenantConfig };
@@ -1,2 +1 @@
1
- var e=class{blueprintRules=[];tenantRules=[];resolvedRules=[];register(e){return e.scope===`blueprint`?this.blueprintRules.push(e):e.scope===`tenant`?this.tenantRules.push(e):this.resolvedRules.push(e),this}validateBlueprint(e,t){return w(this.blueprintRules.flatMap(n=>n.validate(e,t)))}validateTenant(e,t,n){return w(this.tenantRules.flatMap(r=>r.validate(e,t,n)))}validateResolved(e,t,n){return w(this.resolvedRules.flatMap(r=>r.validate(e,t,n)))}};const t=/^(?!:\/\/)([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.[A-Za-z]{2,}$/,n=/^https:\/\//i,r={logo:[`png`,`svg`,`webp`],"logo-dark":[`png`,`svg`,`webp`],favicon:[`ico`,`png`,`svg`],"og-image":[`png`,`jpg`,`jpeg`,`webp`]},i={};let a;function o(){return a||=p(),a}function s(e,t,n=i){let r=o();return f(d(r.validateBlueprint(e,n)),d(r.validateTenant(e,t,n)))}function c(e,t=i){return d(o().validateBlueprint(e,t))}function l(e,t,n=i){return d(o().validateTenant(e,t,n))}function u(e,t,n=i){return d(o().validateResolved(e,t,n))}function d(e){let t=e.filter(e=>e.severity===`error`),n=e.filter(e=>e.severity===`warning`),r=e.filter(e=>e.severity===`info`);return{valid:t.length===0,errors:t,warnings:n,info:r}}function f(...e){let t=e.flatMap(e=>e.errors),n=e.flatMap(e=>e.warnings),r=e.flatMap(e=>e.info);return{valid:t.length===0,errors:t,warnings:n,info:r}}function p(){return new e().register(m).register(h).register(g).register(_).register(v).register(y).register(b).register(x).register(S)}const m={scope:`blueprint`,name:`integration.duplicate-slots`,category:`integration`,validate(e){let t=[],n=new Set;for(let r of e.integrationSlots??[])n.has(r.slotId)?t.push(C({code:`DUPLICATE_SLOT`,severity:`error`,path:`integrationSlots.${r.slotId}`,message:`Duplicate integration slot id "${r.slotId}".`})):n.add(r.slotId),r.allowedModes&&r.allowedModes.length===0&&t.push(C({code:`EMPTY_ALLOWED_MODES`,severity:`warning`,path:`integrationSlots.${r.slotId}.allowedModes`,message:`allowedModes is empty; the slot will accept any supported mode.`}));return e.branding&&!e.branding.appNameKey.trim()&&t.push(C({code:`MISSING_APP_NAME_KEY`,severity:`warning`,path:`branding.appNameKey`,message:`branding.appNameKey should reference a translation catalog key.`})),t}},h={scope:`blueprint`,name:`capability.registry-check`,category:`capability`,validate(e,t){let n=[],r=t.capabilities;return r&&(e.capabilities?.enabled??[]).forEach((e,t)=>{r.get(e.key,e.version)||n.push(C({code:`MISSING_CAPABILITY`,severity:`error`,path:`capabilities.enabled[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))}),n}},g={scope:`tenant`,name:`capability.required-enabled`,category:`capability`,validate(e,t,n){let r=[],i=n.capabilities,a=new Set((e.capabilities?.enabled??[]).map(T)),o=t.capabilities?.disable??[];return o.forEach((e,t)=>{a.has(T(e))&&r.push(C({code:`DISABLED_REQUIRED_CAPABILITY`,severity:`error`,path:`capabilities.disable[${t}]`,message:`Capability "${e.key}@${e.version}" is required by the blueprint and cannot be disabled.`}))}),i&&((t.capabilities?.enable??[]).forEach((e,t)=>{i.get(e.key,e.version)||r.push(C({code:`UNKNOWN_CAPABILITY_ENABLE`,severity:`error`,path:`capabilities.enable[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))}),o.forEach((e,t)=>{i.get(e.key,e.version)||r.push(C({code:`UNKNOWN_CAPABILITY_DISABLE`,severity:`warning`,path:`capabilities.disable[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))})),r}},_={scope:`tenant`,name:`integration.slot-binding`,category:`integration`,validate(e,t,n){let r=[],i=new Map((e.integrationSlots??[]).map(e=>[e.slotId,e])),a=t.integrations??[],o=n.tenantConnections?.reduce((e,t)=>e.set(t.meta.id,t),new Map)??new Map,s=new Set;a.forEach(e=>{let a=`integrations.${e.slotId}`,c=i.get(e.slotId);if(!c){r.push(C({code:`UNKNOWN_SLOT_BINDING`,severity:`error`,path:a,message:`Integration slot "${e.slotId}" is not defined in the blueprint.`}));return}let l=!0,u=o.get(e.connectionId);if(!u){r.push(C({code:`MISSING_INTEGRATION_CONNECTION`,severity:`error`,path:a,message:`Integration connection "${e.connectionId}" was not found for tenant "${t.meta.tenantId}".`})),l=!1;return}u.meta.tenantId!==t.meta.tenantId&&(r.push(C({code:`FOREIGN_CONNECTION`,severity:`error`,path:a,message:`Connection "${e.connectionId}" belongs to tenant "${u.meta.tenantId}", not "${t.meta.tenantId}".`})),l=!1),c.allowedModes&&c.allowedModes.length>0&&(c.allowedModes.includes(u.ownershipMode)||(r.push(C({code:`MODE_MISMATCH`,severity:`error`,path:a,message:`Slot "${c.slotId}" only allows modes [${c.allowedModes.join(`, `)}] but connection is "${u.ownershipMode}".`})),l=!1)),u.status===`disconnected`||u.status===`error`?(r.push(C({code:`CONNECTION_NOT_READY`,severity:`error`,path:a,message:`Connection "${u.meta.label}" is in status "${u.status}".`})),l=!1):u.status===`unknown`&&r.push(C({code:`CONNECTION_STATUS_UNKNOWN`,severity:`warning`,path:a,message:`Connection "${u.meta.label}" has unknown health status.`}));let d=D(n.integrationSpecs,u);if(!d){r.push(C({code:`INTEGRATION_SPEC_NOT_FOUND`,severity:`warning`,path:a,message:`Integration spec "${u.meta.integrationKey}@${u.meta.integrationVersion}" is not registered.`})),l=!1;return}d.meta.category!==c.requiredCategory&&(r.push(C({code:`CATEGORY_MISMATCH`,severity:`error`,path:a,message:`Slot "${c.slotId}" requires category "${c.requiredCategory}" but connection provides "${d.meta.category}".`})),l=!1),d.supportedModes.includes(u.ownershipMode)||(r.push(C({code:`UNSUPPORTED_OWNERSHIP_MODE`,severity:`error`,path:a,message:`Integration spec "${d.meta.key}" does not support ownership mode "${u.ownershipMode}".`})),l=!1);for(let e of c.requiredCapabilities??[])E(d,e)||(r.push(C({code:`CAPABILITY_NOT_PROVIDED`,severity:`error`,path:a,message:`Integration "${d.meta.key}" does not provide required capability "${e.key}@${e.version}".`})),l=!1);l&&s.add(c.slotId)});for(let e of i.values())e.required&&!s.has(e.slotId)&&r.push(C({code:`MISSING_REQUIRED_SLOT`,severity:`error`,path:`integrations.${e.slotId}`,message:`Required integration slot "${e.slotId}" is not bound.`}));return r}},v={scope:`tenant`,name:`knowledge.bindings`,category:`knowledge`,validate(e,t,n){let r=[],i=n.knowledgeSpaces;if(!i)return r;let a=n.knowledgeSources??[];return(t.knowledge??[]).forEach((e,n)=>{let o=`knowledge[${n}]`,s=i.get(e.spaceKey,e.spaceVersion);if(!s){r.push(C({code:`UNKNOWN_KNOWLEDGE_SPACE`,severity:`error`,path:`${o}.spaceKey`,message:`Knowledge space "${e.spaceKey}" is not registered.`}));return}a.some(t=>t.meta.spaceKey===e.spaceKey?e.spaceVersion==null?!0:t.meta.spaceVersion===e.spaceVersion:!1)||r.push(C({code:`MISSING_KNOWLEDGE_SOURCES`,severity:`error`,path:o,message:`Knowledge space "${e.spaceKey}" has no configured sources for tenant "${t.meta.tenantId}".`})),(s.meta.category===`external`||s.meta.category===`ephemeral`)&&r.push(C({code:`LOW_TRUST_KNOWLEDGE`,severity:`warning`,path:o,message:`Knowledge space "${e.spaceKey}" has category "${s.meta.category}". Avoid using it for irreversible or policy decisions.`}))}),r}},y={scope:`tenant`,name:`branding.constraints`,category:`branding`,validate(e,i,a){let o=[],s=i.branding;if(!s)return o;let c=s.customDomain?.trim();if(c){t.test(c)||o.push(C({code:`INVALID_DOMAIN`,severity:`error`,path:`branding.customDomain`,message:`Custom domain "${c}" is not a valid hostname.`}));let e=(a.existingConfigs??[]).find(e=>{if(e.meta.id===i.meta.id)return!1;let t=e.branding?.customDomain?.trim();return t?t.toLowerCase()===c.toLowerCase():!1});e&&o.push(C({code:`DUPLICATE_DOMAIN`,severity:`error`,path:`branding.customDomain`,message:`Custom domain "${c}" is already used by tenant "${e.meta.tenantId}".`}))}return(s.assets??[]).forEach((e,t)=>{let i=`branding.assets[${t}]`;n.test(e.url)||o.push(C({code:`INSECURE_ASSET_URL`,severity:`error`,path:`${i}.url`,message:`Branding asset "${e.type}" must use an HTTPS URL.`}));let a=r[e.type]??r.logo,s=O(e.url);s&&a&&!a.includes(s)&&o.push(C({code:`UNEXPECTED_ASSET_TYPE`,severity:`warning`,path:`${i}.url`,message:`Asset "${e.type}" should use one of: ${(a??[]).join(`, `)}. Detected "${s}".`}))}),o}},b={scope:`tenant`,name:`translation.consistency`,category:`translation`,validate(e,t,n){let r=[],i=e.translationCatalog,a=k(n.translationCatalogs),o=i?a.blueprint.find(e=>e.meta.name===i.name&&e.meta.version===i.version):void 0;i&&!o&&r.push(C({code:`MISSING_BLUEPRINT_CATALOG`,severity:`error`,path:`translationCatalog`,message:`Blueprint translation catalog "${i.name}@${i.version}" is not loaded in context.`}));let s=new Set;e.branding?.appNameKey&&(s.add(e.branding.appNameKey),o&&!A(o.entries,e.branding.appNameKey,o.defaultLocale)&&r.push(C({code:`MISSING_TRANSLATION_KEY`,severity:`error`,path:`branding.appNameKey`,message:`Translation key "${e.branding.appNameKey}" is missing for locale "${o.defaultLocale}".`})));let c=t.locales;if(c){let{defaultLocale:e,enabledLocales:t}=c;if(t.includes(e)||r.push(C({code:`LOCALE_NOT_ENABLED`,severity:`warning`,path:`locales.enabledLocales`,message:`enabledLocales does not include defaultLocale "${e}".`})),o){let n=new Set(o.supportedLocales);for(let i of[e,...t])n.has(i)||r.push(C({code:`UNSUPPORTED_LOCALE`,severity:`error`,path:`locales.enabledLocales`,message:`Locale "${i}" is not supported by blueprint catalog "${o.meta.name}".`}))}}let l=new Set;for(let e of a.blueprint)for(let t of e.entries)l.add(t.key);for(let e of a.platform)for(let t of e.entries)l.add(t.key);return(t.translationOverrides?.entries??[]).forEach((e,n)=>{let i=`translationOverrides.entries[${n}]`;l.has(e.key)||r.push(C({code:`UNKNOWN_TRANSLATION_KEY`,severity:`error`,path:i,message:`Override references unknown key "${e.key}".`})),o&&(new Set([...o.supportedLocales,...t.locales?.enabledLocales??[],t.locales?.defaultLocale??o.defaultLocale]).has(e.locale)||r.push(C({code:`UNSUPPORTED_LOCALE_OVERRIDE`,severity:`error`,path:i,message:`Locale "${e.locale}" is not enabled for tenant overrides.`})))}),r}},x={scope:`resolved`,name:`integration.required-slots`,category:`integration`,validate(e,t){let n=[],r=(e.integrationSlots??[]).filter(e=>e.required);for(let e of r)t.integrations.some(t=>t.slot.slotId===e.slotId)||n.push(C({code:`MISSING_REQUIRED_SLOT`,severity:`error`,path:`integrations.${e.slotId}`,message:`Resolved config is missing integration slot "${e.slotId}".`}));for(let e of t.integrations)(e.connection.status===`disconnected`||e.connection.status===`error`)&&n.push(C({code:`CONNECTION_NOT_READY`,severity:`error`,path:`integrations.${e.slot.slotId}`,message:`Resolved integration "${e.slot.slotId}" uses a connection in status "${e.connection.status}".`}));return n}},S={scope:`resolved`,name:`translation.default-locale`,category:`translation`,validate(e,t){let n=[],r=t.translation;return r&&!r.supportedLocales.includes(r.defaultLocale)&&n.push(C({code:`DEFAULT_LOCALE_NOT_SUPPORTED`,severity:`warning`,path:`translation.defaultLocale`,message:`supportedLocales should include defaultLocale for consistent fallback behaviour.`})),n}};function C(e){return e}function w(e){let t=new Map;for(let n of e){let e=`${n.code}|${n.path}|${n.severity}`;t.has(e)||t.set(e,n)}return[...t.values()]}function T(e){return`${e.key}@${e.version}`}function E(e,t){return e.capabilities.provides.some(e=>e.key===t.key&&e.version===t.version)}function D(e,t){if(e)return e.get(t.meta.integrationKey,t.meta.integrationVersion)}function O(e){let[t]=e.split(`?`);if(!t)return;let n=t.lastIndexOf(`.`);if(n!==-1)return t.slice(n+1).toLowerCase()}function k(e){return e?{platform:e.platform?Array.isArray(e.platform)?e.platform:[e.platform]:[],blueprint:e.blueprint?Array.isArray(e.blueprint)?e.blueprint:[e.blueprint]:[]}:{platform:[],blueprint:[]}}function A(e,t,n){return e.some(e=>e.key===t&&e.locale===n)}export{c as validateBlueprint,s as validateConfig,u as validateResolvedConfig,l as validateTenantConfig};
2
- //# sourceMappingURL=validation.js.map
1
+ var e=class{blueprintRules=[];tenantRules=[];resolvedRules=[];register(e){return e.scope===`blueprint`?this.blueprintRules.push(e):e.scope===`tenant`?this.tenantRules.push(e):this.resolvedRules.push(e),this}validateBlueprint(e,t){return w(this.blueprintRules.flatMap(n=>n.validate(e,t)))}validateTenant(e,t,n){return w(this.tenantRules.flatMap(r=>r.validate(e,t,n)))}validateResolved(e,t,n){return w(this.resolvedRules.flatMap(r=>r.validate(e,t,n)))}};const t=/^(?!:\/\/)([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.[A-Za-z]{2,}$/,n=/^https:\/\//i,r={logo:[`png`,`svg`,`webp`],"logo-dark":[`png`,`svg`,`webp`],favicon:[`ico`,`png`,`svg`],"og-image":[`png`,`jpg`,`jpeg`,`webp`]},i={};let a;function o(){return a||=p(),a}function s(e,t,n=i){let r=o();return f(d(r.validateBlueprint(e,n)),d(r.validateTenant(e,t,n)))}function c(e,t=i){return d(o().validateBlueprint(e,t))}function l(e,t,n=i){return d(o().validateTenant(e,t,n))}function u(e,t,n=i){return d(o().validateResolved(e,t,n))}function d(e){let t=e.filter(e=>e.severity===`error`),n=e.filter(e=>e.severity===`warning`),r=e.filter(e=>e.severity===`info`);return{valid:t.length===0,errors:t,warnings:n,info:r}}function f(...e){let t=e.flatMap(e=>e.errors),n=e.flatMap(e=>e.warnings),r=e.flatMap(e=>e.info);return{valid:t.length===0,errors:t,warnings:n,info:r}}function p(){return new e().register(m).register(h).register(g).register(_).register(v).register(y).register(b).register(x).register(S)}const m={scope:`blueprint`,name:`integration.duplicate-slots`,category:`integration`,validate(e){let t=[],n=new Set;for(let r of e.integrationSlots??[])n.has(r.slotId)?t.push(C({code:`DUPLICATE_SLOT`,severity:`error`,path:`integrationSlots.${r.slotId}`,message:`Duplicate integration slot id "${r.slotId}".`})):n.add(r.slotId),r.allowedModes&&r.allowedModes.length===0&&t.push(C({code:`EMPTY_ALLOWED_MODES`,severity:`warning`,path:`integrationSlots.${r.slotId}.allowedModes`,message:`allowedModes is empty; the slot will accept any supported mode.`}));return e.branding&&!e.branding.appNameKey.trim()&&t.push(C({code:`MISSING_APP_NAME_KEY`,severity:`warning`,path:`branding.appNameKey`,message:`branding.appNameKey should reference a translation catalog key.`})),t}},h={scope:`blueprint`,name:`capability.registry-check`,category:`capability`,validate(e,t){let n=[],r=t.capabilities;return r&&(e.capabilities?.enabled??[]).forEach((e,t)=>{r.get(e.key,e.version)||n.push(C({code:`MISSING_CAPABILITY`,severity:`error`,path:`capabilities.enabled[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))}),n}},g={scope:`tenant`,name:`capability.required-enabled`,category:`capability`,validate(e,t,n){let r=[],i=n.capabilities,a=new Set((e.capabilities?.enabled??[]).map(T)),o=t.capabilities?.disable??[];return o.forEach((e,t)=>{a.has(T(e))&&r.push(C({code:`DISABLED_REQUIRED_CAPABILITY`,severity:`error`,path:`capabilities.disable[${t}]`,message:`Capability "${e.key}@${e.version}" is required by the blueprint and cannot be disabled.`}))}),i&&((t.capabilities?.enable??[]).forEach((e,t)=>{i.get(e.key,e.version)||r.push(C({code:`UNKNOWN_CAPABILITY_ENABLE`,severity:`error`,path:`capabilities.enable[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))}),o.forEach((e,t)=>{i.get(e.key,e.version)||r.push(C({code:`UNKNOWN_CAPABILITY_DISABLE`,severity:`warning`,path:`capabilities.disable[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))})),r}},_={scope:`tenant`,name:`integration.slot-binding`,category:`integration`,validate(e,t,n){let r=[],i=new Map((e.integrationSlots??[]).map(e=>[e.slotId,e])),a=t.integrations??[],o=n.tenantConnections?.reduce((e,t)=>e.set(t.meta.id,t),new Map)??new Map,s=new Set;a.forEach(e=>{let a=`integrations.${e.slotId}`,c=i.get(e.slotId);if(!c){r.push(C({code:`UNKNOWN_SLOT_BINDING`,severity:`error`,path:a,message:`Integration slot "${e.slotId}" is not defined in the blueprint.`}));return}let l=!0,u=o.get(e.connectionId);if(!u){r.push(C({code:`MISSING_INTEGRATION_CONNECTION`,severity:`error`,path:a,message:`Integration connection "${e.connectionId}" was not found for tenant "${t.meta.tenantId}".`})),l=!1;return}u.meta.tenantId!==t.meta.tenantId&&(r.push(C({code:`FOREIGN_CONNECTION`,severity:`error`,path:a,message:`Connection "${e.connectionId}" belongs to tenant "${u.meta.tenantId}", not "${t.meta.tenantId}".`})),l=!1),c.allowedModes&&c.allowedModes.length>0&&(c.allowedModes.includes(u.ownershipMode)||(r.push(C({code:`MODE_MISMATCH`,severity:`error`,path:a,message:`Slot "${c.slotId}" only allows modes [${c.allowedModes.join(`, `)}] but connection is "${u.ownershipMode}".`})),l=!1)),u.status===`disconnected`||u.status===`error`?(r.push(C({code:`CONNECTION_NOT_READY`,severity:`error`,path:a,message:`Connection "${u.meta.label}" is in status "${u.status}".`})),l=!1):u.status===`unknown`&&r.push(C({code:`CONNECTION_STATUS_UNKNOWN`,severity:`warning`,path:a,message:`Connection "${u.meta.label}" has unknown health status.`}));let d=D(n.integrationSpecs,u);if(!d){r.push(C({code:`INTEGRATION_SPEC_NOT_FOUND`,severity:`warning`,path:a,message:`Integration spec "${u.meta.integrationKey}@${u.meta.integrationVersion}" is not registered.`})),l=!1;return}d.meta.category!==c.requiredCategory&&(r.push(C({code:`CATEGORY_MISMATCH`,severity:`error`,path:a,message:`Slot "${c.slotId}" requires category "${c.requiredCategory}" but connection provides "${d.meta.category}".`})),l=!1),d.supportedModes.includes(u.ownershipMode)||(r.push(C({code:`UNSUPPORTED_OWNERSHIP_MODE`,severity:`error`,path:a,message:`Integration spec "${d.meta.key}" does not support ownership mode "${u.ownershipMode}".`})),l=!1);for(let e of c.requiredCapabilities??[])E(d,e)||(r.push(C({code:`CAPABILITY_NOT_PROVIDED`,severity:`error`,path:a,message:`Integration "${d.meta.key}" does not provide required capability "${e.key}@${e.version}".`})),l=!1);l&&s.add(c.slotId)});for(let e of i.values())e.required&&!s.has(e.slotId)&&r.push(C({code:`MISSING_REQUIRED_SLOT`,severity:`error`,path:`integrations.${e.slotId}`,message:`Required integration slot "${e.slotId}" is not bound.`}));return r}},v={scope:`tenant`,name:`knowledge.bindings`,category:`knowledge`,validate(e,t,n){let r=[],i=n.knowledgeSpaces;if(!i)return r;let a=n.knowledgeSources??[];return(t.knowledge??[]).forEach((e,n)=>{let o=`knowledge[${n}]`,s=i.get(e.spaceKey,e.spaceVersion);if(!s){r.push(C({code:`UNKNOWN_KNOWLEDGE_SPACE`,severity:`error`,path:`${o}.spaceKey`,message:`Knowledge space "${e.spaceKey}" is not registered.`}));return}a.some(t=>t.meta.spaceKey===e.spaceKey?e.spaceVersion==null?!0:t.meta.spaceVersion===e.spaceVersion:!1)||r.push(C({code:`MISSING_KNOWLEDGE_SOURCES`,severity:`error`,path:o,message:`Knowledge space "${e.spaceKey}" has no configured sources for tenant "${t.meta.tenantId}".`})),(s.meta.category===`external`||s.meta.category===`ephemeral`)&&r.push(C({code:`LOW_TRUST_KNOWLEDGE`,severity:`warning`,path:o,message:`Knowledge space "${e.spaceKey}" has category "${s.meta.category}". Avoid using it for irreversible or policy decisions.`}))}),r}},y={scope:`tenant`,name:`branding.constraints`,category:`branding`,validate(e,i,a){let o=[],s=i.branding;if(!s)return o;let c=s.customDomain?.trim();if(c){t.test(c)||o.push(C({code:`INVALID_DOMAIN`,severity:`error`,path:`branding.customDomain`,message:`Custom domain "${c}" is not a valid hostname.`}));let e=(a.existingConfigs??[]).find(e=>{if(e.meta.id===i.meta.id)return!1;let t=e.branding?.customDomain?.trim();return t?t.toLowerCase()===c.toLowerCase():!1});e&&o.push(C({code:`DUPLICATE_DOMAIN`,severity:`error`,path:`branding.customDomain`,message:`Custom domain "${c}" is already used by tenant "${e.meta.tenantId}".`}))}return(s.assets??[]).forEach((e,t)=>{let i=`branding.assets[${t}]`;n.test(e.url)||o.push(C({code:`INSECURE_ASSET_URL`,severity:`error`,path:`${i}.url`,message:`Branding asset "${e.type}" must use an HTTPS URL.`}));let a=r[e.type]??r.logo,s=O(e.url);s&&a&&!a.includes(s)&&o.push(C({code:`UNEXPECTED_ASSET_TYPE`,severity:`warning`,path:`${i}.url`,message:`Asset "${e.type}" should use one of: ${(a??[]).join(`, `)}. Detected "${s}".`}))}),o}},b={scope:`tenant`,name:`translation.consistency`,category:`translation`,validate(e,t,n){let r=[],i=e.translationCatalog,a=k(n.translationCatalogs),o=i?a.blueprint.find(e=>e.meta.name===i.name&&e.meta.version===i.version):void 0;i&&!o&&r.push(C({code:`MISSING_BLUEPRINT_CATALOG`,severity:`error`,path:`translationCatalog`,message:`Blueprint translation catalog "${i.name}@${i.version}" is not loaded in context.`}));let s=new Set;e.branding?.appNameKey&&(s.add(e.branding.appNameKey),o&&!A(o.entries,e.branding.appNameKey,o.defaultLocale)&&r.push(C({code:`MISSING_TRANSLATION_KEY`,severity:`error`,path:`branding.appNameKey`,message:`Translation key "${e.branding.appNameKey}" is missing for locale "${o.defaultLocale}".`})));let c=t.locales;if(c){let{defaultLocale:e,enabledLocales:t}=c;if(t.includes(e)||r.push(C({code:`LOCALE_NOT_ENABLED`,severity:`warning`,path:`locales.enabledLocales`,message:`enabledLocales does not include defaultLocale "${e}".`})),o){let n=new Set(o.supportedLocales);for(let i of[e,...t])n.has(i)||r.push(C({code:`UNSUPPORTED_LOCALE`,severity:`error`,path:`locales.enabledLocales`,message:`Locale "${i}" is not supported by blueprint catalog "${o.meta.name}".`}))}}let l=new Set;for(let e of a.blueprint)for(let t of e.entries)l.add(t.key);for(let e of a.platform)for(let t of e.entries)l.add(t.key);return(t.translationOverrides?.entries??[]).forEach((e,n)=>{let i=`translationOverrides.entries[${n}]`;l.has(e.key)||r.push(C({code:`UNKNOWN_TRANSLATION_KEY`,severity:`error`,path:i,message:`Override references unknown key "${e.key}".`})),o&&(new Set([...o.supportedLocales,...t.locales?.enabledLocales??[],t.locales?.defaultLocale??o.defaultLocale]).has(e.locale)||r.push(C({code:`UNSUPPORTED_LOCALE_OVERRIDE`,severity:`error`,path:i,message:`Locale "${e.locale}" is not enabled for tenant overrides.`})))}),r}},x={scope:`resolved`,name:`integration.required-slots`,category:`integration`,validate(e,t){let n=[],r=(e.integrationSlots??[]).filter(e=>e.required);for(let e of r)t.integrations.some(t=>t.slot.slotId===e.slotId)||n.push(C({code:`MISSING_REQUIRED_SLOT`,severity:`error`,path:`integrations.${e.slotId}`,message:`Resolved config is missing integration slot "${e.slotId}".`}));for(let e of t.integrations)(e.connection.status===`disconnected`||e.connection.status===`error`)&&n.push(C({code:`CONNECTION_NOT_READY`,severity:`error`,path:`integrations.${e.slot.slotId}`,message:`Resolved integration "${e.slot.slotId}" uses a connection in status "${e.connection.status}".`}));return n}},S={scope:`resolved`,name:`translation.default-locale`,category:`translation`,validate(e,t){let n=[],r=t.translation;return r&&!r.supportedLocales.includes(r.defaultLocale)&&n.push(C({code:`DEFAULT_LOCALE_NOT_SUPPORTED`,severity:`warning`,path:`translation.defaultLocale`,message:`supportedLocales should include defaultLocale for consistent fallback behaviour.`})),n}};function C(e){return e}function w(e){let t=new Map;for(let n of e){let e=`${n.code}|${n.path}|${n.severity}`;t.has(e)||t.set(e,n)}return[...t.values()]}function T(e){return`${e.key}@${e.version}`}function E(e,t){return e.capabilities.provides.some(e=>e.key===t.key&&e.version===t.version)}function D(e,t){if(e)return e.get(t.meta.integrationKey,t.meta.integrationVersion)}function O(e){let[t]=e.split(`?`);if(!t)return;let n=t.lastIndexOf(`.`);if(n!==-1)return t.slice(n+1).toLowerCase()}function k(e){return e?{platform:e.platform?Array.isArray(e.platform)?e.platform:[e.platform]:[],blueprint:e.blueprint?Array.isArray(e.blueprint)?e.blueprint:[e.blueprint]:[]}:{platform:[],blueprint:[]}}function A(e,t,n){return e.some(e=>e.key===t&&e.locale===n)}export{c as validateBlueprint,s as validateConfig,u as validateResolvedConfig,l as validateTenantConfig};