@lssm/lib.contracts 1.41.1 → 1.42.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 (499) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -4
  3. package/dist/_virtual/rolldown_runtime.js +37 -1
  4. package/dist/app-config/app-config.feature.d.ts +11 -0
  5. package/dist/app-config/app-config.feature.js +54 -1
  6. package/dist/app-config/branding.d.ts +55 -0
  7. package/dist/app-config/contracts.d.ts +245 -0
  8. package/dist/app-config/contracts.js +395 -1
  9. package/dist/app-config/docs/app-config.docblock.d.ts +6 -0
  10. package/dist/app-config/docs/app-config.docblock.js +21 -220
  11. package/dist/app-config/events.d.ts +122 -0
  12. package/dist/app-config/events.js +174 -1
  13. package/dist/app-config/index.d.ts +9 -0
  14. package/dist/app-config/index.js +8 -1
  15. package/dist/app-config/lifecycle-contracts.d.ts +273 -0
  16. package/dist/app-config/lifecycle-contracts.js +440 -1
  17. package/dist/app-config/lifecycle.d.ts +27 -0
  18. package/dist/app-config/runtime.d.ts +117 -0
  19. package/dist/app-config/runtime.js +617 -1
  20. package/dist/app-config/spec.d.ts +172 -0
  21. package/dist/app-config/spec.js +36 -1
  22. package/dist/app-config/validation.d.ts +49 -0
  23. package/dist/app-config/validation.js +538 -1
  24. package/dist/capabilities/capabilities.d.ts +48 -0
  25. package/dist/capabilities/capabilities.js +50 -0
  26. package/dist/capabilities/docs/capabilities.docblock.d.ts +6 -0
  27. package/dist/capabilities/docs/capabilities.docblock.js +21 -1
  28. package/dist/capabilities/index.d.ts +3 -0
  29. package/dist/capabilities/index.js +4 -0
  30. package/dist/capabilities/openbanking.d.ts +10 -0
  31. package/dist/capabilities/openbanking.js +92 -1
  32. package/dist/client/index.d.ts +6 -0
  33. package/dist/client/index.js +9 -1
  34. package/dist/client/react/drivers/rn-reusables.d.ts +22 -0
  35. package/dist/client/react/drivers/rn-reusables.js +21 -1
  36. package/dist/client/react/drivers/shadcn.d.ts +12 -0
  37. package/dist/client/react/drivers/shadcn.js +11 -1
  38. package/dist/client/react/feature-render.d.ts +21 -0
  39. package/dist/client/react/feature-render.js +44 -1
  40. package/dist/client/react/form-render.d.ts +92 -0
  41. package/dist/client/react/form-render.js +298 -1
  42. package/dist/client/react/index.d.ts +5 -0
  43. package/dist/client/react/index.js +8 -1
  44. package/dist/contract-registry/index.d.ts +3 -0
  45. package/dist/contract-registry/index.js +3 -1
  46. package/dist/contract-registry/schemas.d.ts +124 -0
  47. package/dist/contract-registry/schemas.js +61 -1
  48. package/dist/contract-registry/types.d.ts +46 -0
  49. package/dist/data-views/data-views.d.ts +138 -0
  50. package/dist/data-views/data-views.js +58 -0
  51. package/dist/data-views/docs/data-views.docblock.d.ts +6 -0
  52. package/dist/data-views/docs/data-views.docblock.js +21 -1
  53. package/dist/data-views/index.d.ts +4 -0
  54. package/dist/data-views/index.js +5 -0
  55. package/dist/data-views/query-generator.d.ts +40 -0
  56. package/dist/data-views/query-generator.js +48 -1
  57. package/dist/data-views/runtime.d.ts +27 -0
  58. package/dist/data-views/runtime.js +39 -1
  59. package/dist/docs/accessibility_wcag_compliance_specs.docblock.d.ts +6 -0
  60. package/dist/docs/accessibility_wcag_compliance_specs.docblock.js +17 -350
  61. package/dist/docs/index.d.ts +6 -0
  62. package/dist/docs/index.js +27 -1
  63. package/dist/docs/meta.docs.d.ts +6 -0
  64. package/dist/docs/meta.docs.js +18 -2
  65. package/dist/docs/presentations.d.ts +33 -0
  66. package/dist/docs/presentations.js +64 -1
  67. package/dist/docs/registry.d.ts +23 -0
  68. package/dist/docs/registry.js +51 -1
  69. package/dist/docs/tech/auth/better-auth-nextjs.docblock.d.ts +6 -0
  70. package/dist/docs/tech/auth/better-auth-nextjs.docblock.js +25 -2
  71. package/dist/docs/tech/contracts/README.docblock.d.ts +6 -0
  72. package/dist/docs/tech/contracts/README.docblock.js +21 -1
  73. package/dist/docs/tech/contracts/create-subscription.docblock.d.ts +6 -0
  74. package/dist/docs/tech/contracts/create-subscription.docblock.js +21 -1
  75. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.d.ts +6 -0
  76. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js +21 -180
  77. package/dist/docs/tech/contracts/migrations.docblock.d.ts +6 -0
  78. package/dist/docs/tech/contracts/migrations.docblock.js +21 -1
  79. package/dist/docs/tech/contracts/openapi-export.docblock.d.ts +6 -0
  80. package/dist/docs/tech/contracts/openapi-export.docblock.js +25 -5
  81. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts +6 -0
  82. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js +19 -60
  83. package/dist/docs/tech/contracts/overlays.docblock.d.ts +6 -0
  84. package/dist/docs/tech/contracts/overlays.docblock.js +21 -68
  85. package/dist/docs/tech/contracts/tests.docblock.d.ts +6 -0
  86. package/dist/docs/tech/contracts/tests.docblock.js +21 -132
  87. package/dist/docs/tech/contracts/themes.docblock.d.ts +6 -0
  88. package/dist/docs/tech/contracts/themes.docblock.js +21 -1
  89. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.d.ts +6 -0
  90. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js +21 -106
  91. package/dist/docs/tech/lifecycle-stage-system.docblock.d.ts +6 -0
  92. package/dist/docs/tech/lifecycle-stage-system.docblock.js +17 -213
  93. package/dist/docs/tech/llm/llm-integration.docblock.d.ts +7 -0
  94. package/dist/docs/tech/llm/llm-integration.docblock.js +76 -7
  95. package/dist/docs/tech/mcp-endpoints.docblock.d.ts +6 -0
  96. package/dist/docs/tech/mcp-endpoints.docblock.js +38 -1
  97. package/dist/docs/tech/presentation-runtime.docblock.d.ts +6 -0
  98. package/dist/docs/tech/presentation-runtime.docblock.js +17 -1
  99. package/dist/docs/tech/schema/README.docblock.d.ts +6 -0
  100. package/dist/docs/tech/schema/README.docblock.js +21 -262
  101. package/dist/docs/tech/studio/learning-events.docblock.d.ts +6 -0
  102. package/dist/docs/tech/studio/learning-events.docblock.js +49 -1
  103. package/dist/docs/tech/studio/learning-journeys.docblock.d.ts +6 -0
  104. package/dist/docs/tech/studio/learning-journeys.docblock.js +25 -2
  105. package/dist/docs/tech/studio/platform-admin-panel.docblock.d.ts +6 -0
  106. package/dist/docs/tech/studio/platform-admin-panel.docblock.js +24 -2
  107. package/dist/docs/tech/studio/project-access-teams.docblock.d.ts +6 -0
  108. package/dist/docs/tech/studio/project-access-teams.docblock.js +26 -16
  109. package/dist/docs/tech/studio/project-routing.docblock.d.ts +6 -0
  110. package/dist/docs/tech/studio/project-routing.docblock.js +68 -1
  111. package/dist/docs/tech/studio/sandbox-unlogged.docblock.d.ts +6 -0
  112. package/dist/docs/tech/studio/sandbox-unlogged.docblock.js +23 -2
  113. package/dist/docs/tech/studio/team-invitations.docblock.d.ts +6 -0
  114. package/dist/docs/tech/studio/team-invitations.docblock.js +41 -36
  115. package/dist/docs/tech/studio/workspace-ops.docblock.d.ts +6 -0
  116. package/dist/docs/tech/studio/workspace-ops.docblock.js +48 -1
  117. package/dist/docs/tech/studio/workspaces.docblock.d.ts +6 -0
  118. package/dist/docs/tech/studio/workspaces.docblock.js +24 -2
  119. package/dist/docs/tech/telemetry-ingest.docblock.d.ts +6 -0
  120. package/dist/docs/tech/telemetry-ingest.docblock.js +37 -3
  121. package/dist/docs/tech/templates/runtime.docblock.d.ts +6 -0
  122. package/dist/docs/tech/templates/runtime.docblock.js +21 -1
  123. package/dist/docs/tech/vscode-extension.docblock.d.ts +6 -0
  124. package/dist/docs/tech/vscode-extension.docblock.js +37 -3
  125. package/dist/docs/tech/workflows/overview.docblock.d.ts +6 -0
  126. package/dist/docs/tech/workflows/overview.docblock.js +21 -1
  127. package/dist/docs/tech-contracts.docs.d.ts +6 -0
  128. package/dist/docs/tech-contracts.docs.js +27 -7
  129. package/dist/docs/types.d.ts +41 -0
  130. package/dist/events.d.ts +47 -0
  131. package/dist/events.js +19 -1
  132. package/dist/experiments/docs/experiments.docblock.d.ts +6 -0
  133. package/dist/experiments/docs/experiments.docblock.js +21 -128
  134. package/dist/experiments/evaluator.d.ts +37 -0
  135. package/dist/experiments/evaluator.js +101 -1
  136. package/dist/experiments/spec-resolver.d.ts +17 -0
  137. package/dist/experiments/spec.d.ts +82 -0
  138. package/dist/experiments/spec.js +33 -1
  139. package/dist/features.d.ts +104 -0
  140. package/dist/features.js +91 -1
  141. package/dist/forms/docs/forms.docblock.d.ts +6 -0
  142. package/dist/forms/docs/forms.docblock.js +21 -1
  143. package/dist/forms/forms.d.ts +266 -0
  144. package/dist/forms/forms.js +146 -0
  145. package/dist/forms/index.d.ts +2 -0
  146. package/dist/forms/index.js +3 -0
  147. package/dist/index.d.ts +142 -0
  148. package/dist/index.js +119 -1
  149. package/dist/install.d.ts +77 -0
  150. package/dist/install.js +40 -1
  151. package/dist/integrations/binding.d.ts +17 -0
  152. package/dist/integrations/connection.d.ts +51 -0
  153. package/dist/integrations/docs/integrations.docblock.d.ts +6 -0
  154. package/dist/integrations/docs/integrations.docblock.js +94 -1
  155. package/dist/integrations/health.d.ts +21 -0
  156. package/dist/integrations/health.js +69 -1
  157. package/dist/integrations/index.d.ts +34 -0
  158. package/dist/integrations/index.js +23 -1
  159. package/dist/integrations/integrations.feature.d.ts +11 -0
  160. package/dist/integrations/integrations.feature.js +60 -0
  161. package/dist/integrations/openbanking/contracts/accounts.d.ts +289 -0
  162. package/dist/integrations/openbanking/contracts/accounts.js +236 -1
  163. package/dist/integrations/openbanking/contracts/balances.d.ts +165 -0
  164. package/dist/integrations/openbanking/contracts/balances.js +166 -1
  165. package/dist/integrations/openbanking/contracts/index.d.ts +10 -0
  166. package/dist/integrations/openbanking/contracts/index.js +12 -1
  167. package/dist/integrations/openbanking/contracts/transactions.d.ts +213 -0
  168. package/dist/integrations/openbanking/contracts/transactions.js +217 -1
  169. package/dist/integrations/openbanking/guards.d.ts +12 -0
  170. package/dist/integrations/openbanking/guards.js +33 -1
  171. package/dist/integrations/openbanking/models.d.ts +228 -0
  172. package/dist/integrations/openbanking/models.js +240 -1
  173. package/dist/integrations/openbanking/openbanking.feature.d.ts +11 -0
  174. package/dist/integrations/openbanking/openbanking.feature.js +69 -1
  175. package/dist/integrations/openbanking/telemetry.d.ts +15 -0
  176. package/dist/integrations/openbanking/telemetry.js +39 -1
  177. package/dist/integrations/operations.d.ts +437 -0
  178. package/dist/integrations/operations.js +392 -0
  179. package/dist/integrations/providers/calendar.d.ts +78 -0
  180. package/dist/integrations/providers/elevenlabs.d.ts +7 -0
  181. package/dist/integrations/providers/elevenlabs.js +55 -1
  182. package/dist/integrations/providers/email.d.ts +86 -0
  183. package/dist/integrations/providers/embedding.d.ts +24 -0
  184. package/dist/integrations/providers/gcs-storage.d.ts +7 -0
  185. package/dist/integrations/providers/gcs-storage.js +78 -1
  186. package/dist/integrations/providers/gmail.d.ts +7 -0
  187. package/dist/integrations/providers/gmail.js +90 -1
  188. package/dist/integrations/providers/google-calendar.d.ts +7 -0
  189. package/dist/integrations/providers/google-calendar.js +69 -1
  190. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +20 -0
  191. package/dist/integrations/providers/impls/elevenlabs-voice.js +95 -1
  192. package/dist/integrations/providers/impls/gcs-storage.d.ts +24 -0
  193. package/dist/integrations/providers/impls/gcs-storage.js +88 -1
  194. package/dist/integrations/providers/impls/gmail-inbound.d.ts +26 -0
  195. package/dist/integrations/providers/impls/gmail-inbound.js +200 -1
  196. package/dist/integrations/providers/impls/gmail-outbound.d.ts +18 -0
  197. package/dist/integrations/providers/impls/gmail-outbound.js +104 -5
  198. package/dist/integrations/providers/impls/google-calendar.d.ts +23 -0
  199. package/dist/integrations/providers/impls/google-calendar.js +154 -1
  200. package/dist/integrations/providers/impls/index.d.ts +15 -0
  201. package/dist/integrations/providers/impls/index.js +16 -1
  202. package/dist/integrations/providers/impls/mistral-embedding.d.ts +23 -0
  203. package/dist/integrations/providers/impls/mistral-embedding.js +41 -1
  204. package/dist/integrations/providers/impls/mistral-llm.d.ts +31 -0
  205. package/dist/integrations/providers/impls/mistral-llm.js +247 -1
  206. package/dist/integrations/providers/impls/postmark-email.d.ts +19 -0
  207. package/dist/integrations/providers/impls/postmark-email.js +55 -1
  208. package/dist/integrations/providers/impls/powens-client.d.ts +124 -0
  209. package/dist/integrations/providers/impls/powens-client.js +171 -1
  210. package/dist/integrations/providers/impls/powens-openbanking.d.ts +27 -0
  211. package/dist/integrations/providers/impls/powens-openbanking.js +218 -1
  212. package/dist/integrations/providers/impls/provider-factory.d.ts +26 -0
  213. package/dist/integrations/providers/impls/provider-factory.js +145 -1
  214. package/dist/integrations/providers/impls/qdrant-vector.d.ts +24 -0
  215. package/dist/integrations/providers/impls/qdrant-vector.js +69 -1
  216. package/dist/integrations/providers/impls/stripe-payments.d.ts +28 -0
  217. package/dist/integrations/providers/impls/stripe-payments.js +202 -1
  218. package/dist/integrations/providers/impls/twilio-sms.d.ts +20 -0
  219. package/dist/integrations/providers/impls/twilio-sms.js +58 -1
  220. package/dist/integrations/providers/index.d.ts +22 -0
  221. package/dist/integrations/providers/index.js +13 -1
  222. package/dist/integrations/providers/llm.d.ts +82 -0
  223. package/dist/integrations/providers/mistral.d.ts +7 -0
  224. package/dist/integrations/providers/mistral.js +71 -1
  225. package/dist/integrations/providers/openbanking.d.ts +128 -0
  226. package/dist/integrations/providers/payments.d.ts +109 -0
  227. package/dist/integrations/providers/postmark.d.ts +7 -0
  228. package/dist/integrations/providers/postmark.js +71 -1
  229. package/dist/integrations/providers/powens.d.ts +7 -0
  230. package/dist/integrations/providers/powens.js +119 -1
  231. package/dist/integrations/providers/qdrant.d.ts +7 -0
  232. package/dist/integrations/providers/qdrant.js +76 -1
  233. package/dist/integrations/providers/registry.d.ts +11 -0
  234. package/dist/integrations/providers/registry.js +34 -1
  235. package/dist/integrations/providers/sms.d.ts +34 -0
  236. package/dist/integrations/providers/storage.d.ts +60 -0
  237. package/dist/integrations/providers/stripe.d.ts +7 -0
  238. package/dist/integrations/providers/stripe.js +86 -1
  239. package/dist/integrations/providers/twilio-sms.d.ts +7 -0
  240. package/dist/integrations/providers/twilio-sms.js +64 -1
  241. package/dist/integrations/providers/vector-store.d.ts +43 -0
  242. package/dist/integrations/providers/voice.d.ts +34 -0
  243. package/dist/integrations/runtime.d.ts +99 -0
  244. package/dist/integrations/runtime.js +186 -1
  245. package/dist/integrations/secrets/aws-secret-manager.d.ts +31 -0
  246. package/dist/integrations/secrets/aws-secret-manager.js +231 -1
  247. package/dist/integrations/secrets/env-secret-provider.d.ts +31 -0
  248. package/dist/integrations/secrets/env-secret-provider.js +81 -1
  249. package/dist/integrations/secrets/gcp-secret-manager.d.ts +32 -0
  250. package/dist/integrations/secrets/gcp-secret-manager.js +229 -1
  251. package/dist/integrations/secrets/index.d.ts +7 -0
  252. package/dist/integrations/secrets/index.js +8 -1
  253. package/dist/integrations/secrets/manager.d.ts +47 -0
  254. package/dist/integrations/secrets/manager.js +103 -1
  255. package/dist/integrations/secrets/provider.d.ts +52 -0
  256. package/dist/integrations/secrets/provider.js +58 -1
  257. package/dist/integrations/secrets/scaleway-secret-manager.d.ts +38 -0
  258. package/dist/integrations/secrets/scaleway-secret-manager.js +247 -1
  259. package/dist/integrations/secrets-types.d.ts +17 -0
  260. package/dist/integrations/spec.d.ts +75 -0
  261. package/dist/integrations/spec.js +39 -1
  262. package/dist/jobs/define-job.d.ts +18 -0
  263. package/dist/jobs/define-job.js +16 -1
  264. package/dist/jobs/gcp-cloud-tasks.d.ts +41 -0
  265. package/dist/jobs/gcp-cloud-tasks.js +53 -1
  266. package/dist/jobs/gcp-pubsub.d.ts +25 -0
  267. package/dist/jobs/gcp-pubsub.js +39 -1
  268. package/dist/jobs/handlers/gmail-sync-handler.d.ts +9 -0
  269. package/dist/jobs/handlers/gmail-sync-handler.js +9 -1
  270. package/dist/jobs/handlers/index.d.ts +9 -0
  271. package/dist/jobs/handlers/index.js +12 -1
  272. package/dist/jobs/handlers/ping-handler.d.ts +10 -0
  273. package/dist/jobs/handlers/ping-handler.js +15 -1
  274. package/dist/jobs/handlers/storage-document-handler.d.ts +12 -0
  275. package/dist/jobs/handlers/storage-document-handler.js +14 -1
  276. package/dist/jobs/index.d.ts +3 -0
  277. package/dist/jobs/index.js +4 -1
  278. package/dist/jobs/memory-queue.d.ts +18 -0
  279. package/dist/jobs/memory-queue.js +71 -1
  280. package/dist/jobs/queue.d.ts +131 -0
  281. package/dist/jobs/queue.js +33 -1
  282. package/dist/jobs/scaleway-sqs-queue.d.ts +30 -0
  283. package/dist/jobs/scaleway-sqs-queue.js +153 -1
  284. package/dist/jsonschema.d.ts +28 -0
  285. package/dist/jsonschema.js +32 -1
  286. package/dist/knowledge/binding.d.ts +25 -0
  287. package/dist/knowledge/docs/knowledge.docblock.d.ts +6 -0
  288. package/dist/knowledge/docs/knowledge.docblock.js +21 -138
  289. package/dist/knowledge/index.d.ts +11 -0
  290. package/dist/knowledge/index.js +10 -1
  291. package/dist/knowledge/ingestion/document-processor.d.ts +24 -0
  292. package/dist/knowledge/ingestion/document-processor.js +54 -1
  293. package/dist/knowledge/ingestion/embedding-service.d.ts +12 -0
  294. package/dist/knowledge/ingestion/embedding-service.js +25 -1
  295. package/dist/knowledge/ingestion/gmail-adapter.d.ts +18 -0
  296. package/dist/knowledge/ingestion/gmail-adapter.js +50 -5
  297. package/dist/knowledge/ingestion/index.d.ts +6 -0
  298. package/dist/knowledge/ingestion/index.js +7 -1
  299. package/dist/knowledge/ingestion/storage-adapter.d.ts +15 -0
  300. package/dist/knowledge/ingestion/storage-adapter.js +26 -1
  301. package/dist/knowledge/ingestion/vector-indexer.d.ts +18 -0
  302. package/dist/knowledge/ingestion/vector-indexer.js +32 -1
  303. package/dist/knowledge/knowledge.feature.d.ts +11 -0
  304. package/dist/knowledge/knowledge.feature.js +61 -0
  305. package/dist/knowledge/operations.d.ts +318 -0
  306. package/dist/knowledge/operations.js +321 -0
  307. package/dist/knowledge/query/index.d.ts +2 -0
  308. package/dist/knowledge/query/index.js +3 -1
  309. package/dist/knowledge/query/service.d.ts +29 -0
  310. package/dist/knowledge/query/service.js +64 -2
  311. package/dist/knowledge/runtime.d.ts +32 -0
  312. package/dist/knowledge/runtime.js +49 -1
  313. package/dist/knowledge/source.d.ts +32 -0
  314. package/dist/knowledge/spaces/email-threads.d.ts +7 -0
  315. package/dist/knowledge/spaces/email-threads.js +37 -1
  316. package/dist/knowledge/spaces/financial-docs.d.ts +7 -0
  317. package/dist/knowledge/spaces/financial-docs.js +37 -1
  318. package/dist/knowledge/spaces/financial-overview.d.ts +7 -0
  319. package/dist/knowledge/spaces/financial-overview.js +41 -1
  320. package/dist/knowledge/spaces/index.d.ts +7 -0
  321. package/dist/knowledge/spaces/index.js +8 -1
  322. package/dist/knowledge/spaces/product-canon.d.ts +7 -0
  323. package/dist/knowledge/spaces/product-canon.js +37 -1
  324. package/dist/knowledge/spaces/support-faq.d.ts +7 -0
  325. package/dist/knowledge/spaces/support-faq.js +40 -1
  326. package/dist/knowledge/spaces/uploaded-docs.d.ts +7 -0
  327. package/dist/knowledge/spaces/uploaded-docs.js +37 -1
  328. package/dist/knowledge/spec.d.ts +48 -0
  329. package/dist/knowledge/spec.js +39 -1
  330. package/dist/llm/exporters.d.ts +69 -0
  331. package/dist/llm/exporters.js +542 -8
  332. package/dist/llm/index.d.ts +4 -0
  333. package/dist/llm/index.js +4 -1
  334. package/dist/llm/prompts.d.ts +52 -0
  335. package/dist/llm/prompts.js +246 -56
  336. package/dist/llm/types.d.ts +214 -0
  337. package/dist/markdown.d.ts +22 -0
  338. package/dist/markdown.js +119 -3
  339. package/dist/migrations.d.ts +52 -0
  340. package/dist/migrations.js +33 -1
  341. package/dist/onboarding-base.d.ts +138 -0
  342. package/dist/onboarding-base.js +195 -1
  343. package/dist/openapi.d.ts +31 -0
  344. package/dist/openapi.js +75 -1
  345. package/dist/operations/index.d.ts +3 -0
  346. package/dist/operations/index.js +4 -0
  347. package/dist/operations/operation.d.ts +180 -0
  348. package/dist/operations/operation.js +35 -0
  349. package/dist/operations/registry.d.ts +103 -0
  350. package/dist/operations/registry.js +252 -0
  351. package/dist/ownership.d.ts +84 -0
  352. package/dist/ownership.js +38 -1
  353. package/dist/policy/docs/policy.docblock.d.ts +6 -0
  354. package/dist/policy/docs/policy.docblock.js +21 -1
  355. package/dist/policy/engine.d.ts +40 -0
  356. package/dist/policy/engine.js +223 -1
  357. package/dist/policy/index.d.ts +5 -0
  358. package/dist/policy/index.js +5 -0
  359. package/dist/policy/opa-adapter.d.ts +45 -0
  360. package/dist/policy/opa-adapter.js +71 -1
  361. package/dist/policy/registry.d.ts +9 -0
  362. package/dist/policy/registry.js +11 -0
  363. package/dist/policy/spec.d.ts +103 -0
  364. package/dist/policy/spec.js +0 -1
  365. package/dist/presentations/docs/presentations-conventions.docblock.d.ts +6 -0
  366. package/dist/presentations/docs/presentations-conventions.docblock.js +20 -7
  367. package/dist/presentations/index.d.ts +4 -0
  368. package/dist/presentations/index.js +5 -0
  369. package/dist/presentations/presentations.d.ts +50 -0
  370. package/dist/presentations/presentations.js +7 -0
  371. package/dist/presentations/registry.d.ts +10 -0
  372. package/dist/presentations/registry.js +12 -0
  373. package/dist/presentations/transform-engine.d.ts +66 -0
  374. package/dist/presentations/transform-engine.js +282 -0
  375. package/dist/prompt.d.ts +60 -0
  376. package/dist/prompt.js +10 -1
  377. package/dist/promptRegistry.d.ts +15 -0
  378. package/dist/promptRegistry.js +34 -1
  379. package/dist/regenerator/adapters.d.ts +19 -0
  380. package/dist/regenerator/docs/regenerator.docblock.d.ts +6 -0
  381. package/dist/regenerator/docs/regenerator.docblock.js +21 -184
  382. package/dist/regenerator/executor.d.ts +70 -0
  383. package/dist/regenerator/executor.js +86 -1
  384. package/dist/regenerator/index.d.ts +7 -0
  385. package/dist/regenerator/index.js +6 -1
  386. package/dist/regenerator/service.d.ts +33 -0
  387. package/dist/regenerator/service.js +92 -1
  388. package/dist/regenerator/sinks.d.ts +26 -0
  389. package/dist/regenerator/sinks.js +32 -1
  390. package/dist/regenerator/types.d.ts +107 -0
  391. package/dist/regenerator/utils.d.ts +9 -0
  392. package/dist/regenerator/utils.js +51 -1
  393. package/dist/registry-utils.d.ts +106 -0
  394. package/dist/registry-utils.js +122 -0
  395. package/dist/registry.d.ts +30 -0
  396. package/dist/registry.js +58 -1
  397. package/dist/resources.d.ts +64 -0
  398. package/dist/resources.js +50 -1
  399. package/dist/schema-to-markdown.d.ts +54 -0
  400. package/dist/schema-to-markdown.js +214 -10
  401. package/dist/server/contracts-adapter-hydration.d.ts +15 -0
  402. package/dist/server/contracts-adapter-hydration.js +41 -0
  403. package/dist/server/contracts-adapter-input.d.ts +9 -0
  404. package/dist/server/contracts-adapter-input.js +77 -0
  405. package/dist/server/graphql-pothos.d.ts +31 -0
  406. package/dist/server/graphql-pothos.js +127 -1
  407. package/dist/server/index.d.ts +9 -0
  408. package/dist/server/index.js +10 -1
  409. package/dist/server/mcp/createMcpServer.d.ts +15 -0
  410. package/dist/server/mcp/createMcpServer.js +28 -1
  411. package/dist/server/mcp/mcpTypes.d.ts +30 -0
  412. package/dist/server/mcp/registerPresentations.d.ts +7 -0
  413. package/dist/server/mcp/registerPresentations.js +112 -1
  414. package/dist/server/mcp/registerPrompts.d.ts +8 -0
  415. package/dist/server/mcp/registerPrompts.js +36 -2
  416. package/dist/server/mcp/registerResources.d.ts +8 -0
  417. package/dist/server/mcp/registerResources.js +35 -1
  418. package/dist/server/mcp/registerTools.d.ts +8 -0
  419. package/dist/server/mcp/registerTools.js +22 -1
  420. package/dist/server/provider-mcp.d.ts +2 -0
  421. package/dist/server/provider-mcp.js +3 -1
  422. package/dist/server/rest-elysia.d.ts +40 -0
  423. package/dist/server/rest-elysia.js +20 -1
  424. package/dist/server/rest-express.d.ts +16 -0
  425. package/dist/server/rest-express.js +36 -1
  426. package/dist/server/rest-generic.d.ts +32 -0
  427. package/dist/server/rest-generic.js +124 -1
  428. package/dist/server/rest-next-app.d.ts +35 -0
  429. package/dist/server/rest-next-app.js +38 -1
  430. package/dist/server/rest-next-mcp.d.ts +11 -0
  431. package/dist/server/rest-next-mcp.js +45 -1
  432. package/dist/server/rest-next-pages.d.ts +9 -0
  433. package/dist/server/rest-next-pages.js +22 -1
  434. package/dist/telemetry/anomaly.d.ts +27 -0
  435. package/dist/telemetry/anomaly.js +48 -1
  436. package/dist/telemetry/docs/telemetry.docblock.d.ts +6 -0
  437. package/dist/telemetry/docs/telemetry.docblock.js +21 -139
  438. package/dist/telemetry/index.d.ts +4 -0
  439. package/dist/telemetry/index.js +5 -1
  440. package/dist/telemetry/spec.d.ts +91 -0
  441. package/dist/telemetry/spec.js +69 -1
  442. package/dist/telemetry/tracker.d.ts +51 -0
  443. package/dist/telemetry/tracker.js +76 -1
  444. package/dist/tests/index.d.ts +3 -0
  445. package/dist/tests/index.js +4 -1
  446. package/dist/tests/runner.d.ts +43 -0
  447. package/dist/tests/runner.js +150 -1
  448. package/dist/tests/spec.d.ts +89 -0
  449. package/dist/tests/spec.js +33 -1
  450. package/dist/themes.d.ts +53 -0
  451. package/dist/themes.js +39 -1
  452. package/dist/translations/catalog.d.ts +28 -0
  453. package/dist/translations/tenant.d.ts +15 -0
  454. package/dist/types.d.ts +92 -0
  455. package/dist/workflow/adapters/db-adapter.d.ts +46 -0
  456. package/dist/workflow/adapters/db-adapter.js +83 -1
  457. package/dist/workflow/adapters/file-adapter.d.ts +14 -0
  458. package/dist/workflow/adapters/file-adapter.js +11 -1
  459. package/dist/workflow/adapters/index.d.ts +4 -0
  460. package/dist/workflow/adapters/index.js +5 -1
  461. package/dist/workflow/adapters/memory-store.d.ts +18 -0
  462. package/dist/workflow/adapters/memory-store.js +58 -1
  463. package/dist/workflow/expression.d.ts +9 -0
  464. package/dist/workflow/expression.js +99 -1
  465. package/dist/workflow/index.d.ts +10 -0
  466. package/dist/workflow/index.js +9 -1
  467. package/dist/workflow/runner.d.ts +74 -0
  468. package/dist/workflow/runner.js +337 -1
  469. package/dist/workflow/sla-monitor.d.ts +20 -0
  470. package/dist/workflow/sla-monitor.js +47 -1
  471. package/dist/workflow/spec.d.ts +105 -0
  472. package/dist/workflow/spec.js +55 -1
  473. package/dist/workflow/state.d.ts +35 -0
  474. package/dist/workflow/validation.d.ts +29 -0
  475. package/dist/workflow/validation.js +176 -1
  476. package/dist/workspace-config/contractsrc-schema.d.ts +786 -0
  477. package/dist/workspace-config/contractsrc-schema.js +247 -0
  478. package/dist/workspace-config/index.d.ts +2 -0
  479. package/dist/workspace-config/index.js +3 -0
  480. package/package.json +286 -266
  481. package/dist/capabilities.js +0 -1
  482. package/dist/contracts-adapter-hydration.js +0 -1
  483. package/dist/contracts-adapter-input.js +0 -1
  484. package/dist/data-views.js +0 -1
  485. package/dist/docs/PUBLISHING.docblock.js +0 -76
  486. package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -383
  487. package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -68
  488. package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -140
  489. package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -86
  490. package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -1
  491. package/dist/forms.js +0 -1
  492. package/dist/integrations/contracts.js +0 -1
  493. package/dist/knowledge/contracts.js +0 -1
  494. package/dist/openbanking/docs/openbanking.docblock.js +0 -109
  495. package/dist/presentations.backcompat.js +0 -1
  496. package/dist/presentations.js +0 -1
  497. package/dist/presentations.v2.js +0 -7
  498. package/dist/spec.js +0 -1
  499. /package/dist/{types/all.js → integrations/secrets-types.js} +0 -0
@@ -1 +0,0 @@
1
- const e=(e,t)=>`${e}.v${t}`;var t=class{items=new Map;register(t){let n=e(t.meta.key,t.meta.version);if(this.items.has(n))throw Error(`Duplicate capability ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(t,n){if(n!=null)return this.items.get(e(t,n));let r,i=-1/0;for(let e of this.items.values())e.meta.key===t&&e.meta.version>i&&(i=e.meta.version,r=e);return r}satisfies(e,t){if(e.optional||t?.some(t=>n(t,e)))return!0;let r=e.version?this.get(e.key,e.version):this.get(e.key);return!(!r||e.kind&&r.meta.kind!==e.kind||e.version!=null&&r.meta.version!==e.version)}};function n(e,t){return!(e.key!==t.key||t.version!=null&&e.version!==t.version)}function r(t){return e(t.meta.key,t.meta.version)}function i(e){return e}export{t as CapabilityRegistry,r as capabilityKey,i as defineCapability};
@@ -1 +0,0 @@
1
- function e(e){if(!e)return{isList:!1,inner:`JSON`};let t=String(e).trim();return t.startsWith(`[`)&&t.endsWith(`]`)?{isList:!0,inner:t.slice(1,-1).trim()}:{isList:!1,inner:t}}async function t(e,t,n){if(!e||!n.template)return t;let r=n.varName??`id`,i=async t=>{if(t&&t[r]!==void 0){let i=String(t[r]),a=n.template.replace(`{id}`,i),o=e.match(a);if(o){let e=await o.tmpl.resolve(o.params,{});try{return JSON.parse(String(e.data||`null`))}catch{return e.data}}}return t};return n.returns.isList&&Array.isArray(t)?await Promise.all(t.map(e=>i(e))):await i(t)}export{t as hydrateResourceIfNeeded,e as parseReturns};
@@ -1 +0,0 @@
1
- function e(e){return typeof e?.getPothosInput==`function`&&typeof e?.getZod==`function`}function t(e){return typeof e?.getPothos==`function`}function n(e){return typeof e?.getEnumValues==`function`&&typeof e?.getPothos==`function`}function r(e){return e===`Boolean_unsecure`?`Boolean`:e===`ID_unsecure`?`ID`:e===`String_unsecure`?`String`:e===`Int_unsecure`?`Int`:e===`Float_unsecure`?`Float`:e}function i(i){let a=new Map,o=new Set;function s(t){let r=Object.entries(t.config.fields);for(let[,t]of r)if(e(t.type))s(t.type);else if(n(t.type)){let e=t.type,n=e.getName?.()??e.getPothos().name;o.has(n)||(i.enumType(n,{values:e.getEnumValues()}),o.add(n))}}function c(n){let o=String(n.config?.name??`Input`),l=a.get(o);if(l)return l;s(n);let u=i.inputType(n.getPothosInput(),{fields:i=>{let a=Object.entries(n.config.fields),o={};for(let[n,s]of a)if(e(s.type)){let e=c(s.type),t=s.isArray?[e]:e;o[n]=i.field({type:t,required:!s.isOptional})}else if(t(s.type)){let e=r(String(s.type.getPothos().name)),t=s.isArray?[e]:e;o[n]=i.field({type:t,required:!s.isOptional})}else{let e=s.isArray?[`JSON`]:`JSON`;o[n]=i.field({type:e,required:!s.isOptional})}return o}});return a.set(o,u),u}function l(e){return!e||!e.config?.fields||Object.keys(e.config.fields).length===0?null:c(e)}return{buildInputFieldArgs:l}}export{i as createInputTypeBuilder,e as isSchemaModel};
@@ -1 +0,0 @@
1
- function e(e){return`${e.meta.name}.v${e.meta.version}`}var t=class{items=new Map;register(t){let n=e(t);if(this.items.has(n))throw Error(`Duplicate data view ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(e,t){if(t!=null)return this.items.get(`${e}.v${t}`);let n,r=-1/0;for(let t of this.items.values())t.meta.name===e&&t.meta.version>r&&(r=t.meta.version,n=t);return n}};function n(t){return e(t)}export{t as DataViewRegistry,n as dataViewKey};
@@ -1,76 +0,0 @@
1
- import{registerDocBlocks as e}from"./registry.js";const t=[{id:`docs.PUBLISHING`,title:`Publishing ContractSpec Libraries`,summary:`This guide describes how we release the ContractSpec libraries to npm. We use a dual-track release system: **Stable** (manual) and **Canary** (automatic).`,kind:`reference`,visibility:`public`,route:`/docs/PUBLISHING`,tags:[`PUBLISHING`],body:`# Publishing ContractSpec Libraries
2
-
3
- This guide describes how we release the ContractSpec libraries to npm. We use a dual-track release system: **Stable** (manual) and **Canary** (automatic).
4
-
5
- ## Release Tracks
6
-
7
- | Track | Branch | npm Tag | Frequency | Versioning | Use Case |
8
- |-------|--------|---------|-----------|------------|----------|
9
- | **Stable** | \`release\` | \`latest\` | Manual | SemVer (e.g., \`1.7.4\`) | Production, external users |
10
- | **Canary** | \`main\` | \`canary\` | Every Push | Snapshot (e.g., \`1.7.4-canary...\`) | Dev, internal testing |
11
-
12
- ## Prerequisites
13
-
14
- - ✅ \`NPM_TOKEN\` secret is configured in GitHub (owner or automation token with _publish_ scope).
15
- - ✅ \`GITHUB_TOKEN\` (built-in) has permissions to create PRs (enabled by default in new repos).
16
- - ✅ For stable releases: \`release\` branch exists and is protected.
17
-
18
- ## Canary Workflow (Automatic)
19
-
20
- Every commit pushed to \`main\` triggers the \`.github/workflows/publish-canary.yml\` workflow.
21
-
22
- 1. **Trigger**: Push to \`main\`.
23
- 2. **Versioning**: Runs \`changeset version --snapshot canary\` to generate a temporary snapshot version.
24
- 3. **Publish**: Packages are published to npm with the \`canary\` tag using \`changeset publish --tag canary\`.
25
-
26
- ### Consuming Canary Builds
27
-
28
- To install the latest bleeding-edge version:
29
-
30
- \`\`\`bash
31
- npm install @lssm/lib.contracts@canary
32
- # or
33
- bun add @lssm/lib.contracts@canary
34
- \`\`\`
35
-
36
- ## Stable Release Workflow (Manual)
37
-
38
- Stable releases are managed via the \`release\` branch using the standard [Changesets Action](https://github.com/changesets/action).
39
-
40
- 1. **Develop on \`main\`**: Create features and fixes.
41
- 2. **Add Changesets**: Run \`bun changeset\` to document changes and impact (major/minor/patch).
42
- 3. **Merge to \`release\`**: When ready to ship, open a PR from \`main\` to \`release\` or merge manually.
43
- 4. **"Version Packages" PR**:
44
- - The GitHub Action detects new changesets and automatically creates a Pull Request titled **"Version Packages"**.
45
- - This PR contains the version bumps and updated \`CHANGELOG.md\` files.
46
- 5. **Merge & Publish**:
47
- - Review and merge the "Version Packages" PR.
48
- - The Action runs again, detects the versions have been bumped, builds the libraries, and publishes them to npm with the \`latest\` tag.
49
-
50
- ### Publishing Steps
51
-
52
- 1. Ensure all changesets are present on \`main\`.
53
- 2. Merge \`main\` into \`release\`:
54
- \`\`\`bash
55
- git checkout release
56
- git pull origin release
57
- git merge main
58
- git push origin release
59
- \`\`\`
60
- 3. Go to GitHub Pull Requests. You will see a **"Version Packages"** PR created by the bot.
61
- 4. Merge that PR.
62
- 5. The release is now live on npm!
63
-
64
- ## Manual Verification (Optional)
65
-
66
- Before publishing a new version you can run:
67
-
68
- \`\`\`bash
69
- bun run build:not-apps
70
- npx npm-packlist --json packages/libs/contracts
71
- \`\`\`
72
-
73
- ## Rollback
74
-
75
- If a publish fails mid-way, re-run the workflow once the issue is fixed. Already published packages are skipped automatically. Use \`npm deprecate <package>@<version>\` if we need to warn consumers about a broken release.
76
- `}];e(t);export{t as PUBLISHING_DocBlocks};
@@ -1,383 +0,0 @@
1
- import{registerDocBlocks as e}from"../registry.js";const t=[{id:`docs.tech.PHASE_1_QUICKSTART`,title:`Phase 1: API Reference Index`,summary:`Quick reference for all new Phase 1 APIs.`,kind:`reference`,visibility:`public`,route:`/docs/tech/PHASE_1_QUICKSTART`,tags:[`tech`,`PHASE_1_QUICKSTART`],body:`# Phase 1: API Reference Index
2
-
3
- Quick reference for all new Phase 1 APIs.
4
-
5
- ---
6
-
7
- ## @lssm/lib.multi-tenancy
8
-
9
- ### RLS
10
- \`\`\`typescript
11
- import { createRlsMiddleware, type TenantIdProvider } from '@lssm/lib.multi-tenancy/rls';
12
- \`\`\`
13
-
14
- ### Provisioning
15
- \`\`\`typescript
16
- import {
17
- TenantProvisioningService,
18
- type CreateTenantInput,
19
- type TenantProvisioningConfig
20
- } from '@lssm/lib.multi-tenancy/provisioning';
21
- \`\`\`
22
-
23
- ### Isolation
24
- \`\`\`typescript
25
- import { IsolationValidator } from '@lssm/lib.multi-tenancy/isolation';
26
- \`\`\`
27
-
28
- ---
29
-
30
- ## @lssm/lib.observability
31
-
32
- ### Tracing
33
- \`\`\`typescript
34
- import {
35
- getTracer,
36
- traceAsync,
37
- traceSync,
38
- createTracingMiddleware
39
- } from '@lssm/lib.observability/tracing';
40
- \`\`\`
41
-
42
- ### Metrics
43
- \`\`\`typescript
44
- import {
45
- getMeter,
46
- createCounter,
47
- createUpDownCounter,
48
- createHistogram,
49
- standardMetrics
50
- } from '@lssm/lib.observability/metrics';
51
- \`\`\`
52
-
53
- ### Logging
54
- \`\`\`typescript
55
- import {
56
- Logger,
57
- logger,
58
- type LogLevel,
59
- type LogEntry
60
- } from '@lssm/lib.observability/logging';
61
- \`\`\`
62
-
63
- ---
64
-
65
- ## @lssm/lib.resilience
66
-
67
- ### Circuit Breaker
68
- \`\`\`typescript
69
- import {
70
- CircuitBreaker,
71
- type CircuitState,
72
- type CircuitBreakerConfig
73
- } from '@lssm/lib.resilience/circuit-breaker';
74
- \`\`\`
75
-
76
- ### Retry
77
- \`\`\`typescript
78
- import { retry } from '@lssm/lib.resilience/retry';
79
- \`\`\`
80
-
81
- ### Timeout
82
- \`\`\`typescript
83
- import { timeout } from '@lssm/lib.resilience/timeout';
84
- \`\`\`
85
-
86
- ### Fallback
87
- \`\`\`typescript
88
- import { fallback } from '@lssm/lib.resilience/fallback';
89
- \`\`\`
90
-
91
- ---
92
-
93
- ## Enhanced: @lssm/lib.contracts
94
-
95
- ### DataViews
96
- \`\`\`typescript
97
- import { DataViewQueryGenerator } from '@lssm/lib.contracts/data-views/query-generator';
98
- import { DataViewRuntime } from '@lssm/lib.contracts/data-views/runtime';
99
- \`\`\`
100
-
101
- ### Workflows
102
- \`\`\`typescript
103
- import { SLAMonitor, type SLABreachEvent } from '@lssm/lib.contracts/workflow/sla-monitor';
104
- import { PrismaStateStore } from '@lssm/lib.contracts/workflow/adapters/db-adapter';
105
- \`\`\`
106
-
107
- ---
108
-
109
- ## Enhanced: @lssm/lib.design-system
110
-
111
- ### DataView Components
112
- \`\`\`typescript
113
- import { DataViewRenderer } from '@lssm/lib.design-system/components/data-view/DataViewRenderer';
114
- // Also available: DataViewList, DataViewTable, DataViewDetail
115
- \`\`\`
116
-
117
- ---
118
-
119
- ## Usage Examples
120
-
121
- ### Complete Workflow with All Features
122
-
123
- \`\`\`typescript
124
- import { WorkflowRunner } from '@lssm/lib.contracts/workflow/runner';
125
- import { PrismaStateStore } from '@lssm/lib.contracts/workflow/adapters/db-adapter';
126
- import { SLAMonitor } from '@lssm/lib.contracts/workflow/sla-monitor';
127
- import { CircuitBreaker } from '@lssm/lib.resilience/circuit-breaker';
128
- import { traceAsync } from '@lssm/lib.observability/tracing';
129
-
130
- const runner = new WorkflowRunner({
131
- registry,
132
- stateStore: new PrismaStateStore(db),
133
- opExecutor: async (op, input, ctx) => {
134
- return traceAsync(\`op.\${op.name}\`, async (span) => {
135
- span.setAttribute('operation', op.name);
136
- const breaker = getCircuitBreaker(op.name);
137
- return breaker.execute(() => executeOperation(op, input, ctx));
138
- });
139
- },
140
- eventEmitter: (event, payload) => {
141
- if (event.startsWith('workflow.')) {
142
- logger.info(event, payload);
143
- }
144
- },
145
- });
146
-
147
- const monitor = new SLAMonitor((event, payload) => {
148
- logger.warn('SLA_BREACH', payload);
149
- alertOps(payload);
150
- });
151
-
152
- // Start workflow
153
- const workflowId = await runner.start('payment.flow', 1);
154
-
155
- // Monitor SLA
156
- const state = await runner.getState(workflowId);
157
- const spec = registry.get('payment.flow', 1);
158
- monitor.check(state, spec!);
159
- \`\`\`
160
-
161
- ### Complete DataView with Observability
162
-
163
- \`\`\`typescript
164
- import { DataViewRenderer } from '@lssm/lib.design-system';
165
- import { DataViewQueryGenerator } from '@lssm/lib.contracts/data-views/query-generator';
166
- import { traceAsync } from '@lssm/lib.observability/tracing';
167
- import { MyDataView } from './specs/users.data-view';
168
-
169
- export function UserListPage() {
170
- const [page, setPage] = useState(1);
171
- const [users, setUsers] = useState([]);
172
-
173
- const loadUsers = async () => {
174
- return traceAsync('load_users', async (span) => {
175
- const generator = new DataViewQueryGenerator(MyDataView);
176
- const query = generator.generate({ pagination: { page, pageSize: 20 } });
177
-
178
- span.setAttribute('page', page);
179
- const result = await api.execute(query);
180
- setUsers(result.data);
181
- });
182
- };
183
-
184
- return (
185
- <DataViewRenderer
186
- spec={MyDataView}
187
- items={users}
188
- pagination={{ page, pageSize: 20, total: users.length }}
189
- onPageChange={setPage}
190
- />
191
- );
192
- }
193
- \`\`\`
194
-
195
- ### Complete Multi-Tenant Setup
196
-
197
- \`\`\`typescript
198
- // 1. RLS Middleware
199
- import { createRlsMiddleware } from '@lssm/lib.multi-tenancy/rls';
200
- db.$use(createRlsMiddleware(() => req.tenantId));
201
-
202
- // 2. Tenant Provisioning
203
- import { TenantProvisioningService } from '@lssm/lib.multi-tenancy/provisioning';
204
- const service = new TenantProvisioningService({ db });
205
-
206
- // 3. Create new tenant
207
- await service.provision({
208
- id: 'acme',
209
- name: 'Acme Corp',
210
- slug: 'acme',
211
- ownerEmail: 'admin@acme.com',
212
- });
213
-
214
- // 4. Validate isolation in tests
215
- import { IsolationValidator } from '@lssm/lib.multi-tenancy/isolation';
216
-
217
- test('queries are isolated', () => {
218
- const isValid = IsolationValidator.validateQuery(
219
- 'User',
220
- 'findMany',
221
- { where: { tenantId: 'acme' } },
222
- 'acme'
223
- );
224
- expect(isValid).toBe(true);
225
- });
226
- \`\`\`
227
-
228
- ---
229
-
230
- ## Testing
231
-
232
- ### Test Circuit Breakers
233
-
234
- \`\`\`typescript
235
- import { CircuitBreaker } from '@lssm/lib.resilience/circuit-breaker';
236
-
237
- test('circuit opens after threshold', async () => {
238
- const breaker = new CircuitBreaker({
239
- failureThreshold: 3,
240
- resetTimeoutMs: 5000,
241
- });
242
-
243
- // Trigger failures
244
- for (let i = 0; i < 3; i++) {
245
- await expect(
246
- breaker.execute(() => Promise.reject('error'))
247
- ).rejects.toThrow();
248
- }
249
-
250
- // Circuit should be open
251
- await expect(
252
- breaker.execute(() => Promise.resolve('ok'))
253
- ).rejects.toThrow('CircuitBreaker is OPEN');
254
- });
255
- \`\`\`
256
-
257
- ### Test Workflow Retry
258
-
259
- \`\`\`typescript
260
- test('workflow retries on failure', async () => {
261
- let attempts = 0;
262
- const opExecutor = async () => {
263
- attempts++;
264
- if (attempts < 3) throw new Error('fail');
265
- return 'success';
266
- };
267
-
268
- const runner = new WorkflowRunner({ /* ... */ opExecutor });
269
- await runner.executeStep(workflowId);
270
-
271
- expect(attempts).toBe(3);
272
- });
273
- \`\`\`
274
-
275
- ---
276
-
277
- ## Common Patterns
278
-
279
- ### Pattern: Resilient External Call
280
-
281
- \`\`\`typescript
282
- import { CircuitBreaker } from '@lssm/lib.resilience/circuit-breaker';
283
- import { retry } from '@lssm/lib.resilience/retry';
284
- import { timeout } from '@lssm/lib.resilience/timeout';
285
- import { traceAsync } from '@lssm/lib.observability/tracing';
286
-
287
- const breaker = new CircuitBreaker({ failureThreshold: 5, resetTimeoutMs: 30000 });
288
-
289
- export async function callExternalAPI(input: any) {
290
- return traceAsync('external_api_call', async (span) => {
291
- span.setAttribute('service', 'stripe');
292
-
293
- return breaker.execute(() =>
294
- retry(
295
- () => timeout(() => stripe.api.call(input), 5000),
296
- 3,
297
- 1000,
298
- true
299
- )
300
- );
301
- });
302
- }
303
- \`\`\`
304
-
305
- **Benefits**: Circuit breaker + retry + timeout + tracing in one place.
306
-
307
- ---
308
-
309
- ### Pattern: Tenant-Aware Operation
310
-
311
- \`\`\`typescript
312
- import { traceAsync } from '@lssm/lib.observability/tracing';
313
-
314
- export async function listUsers(tenantId: string) {
315
- return traceAsync('list_users', async (span) => {
316
- span.setAttribute('tenant_id', tenantId);
317
-
318
- // RLS middleware will inject WHERE tenantId = ?
319
- return db.user.findMany();
320
- });
321
- }
322
- \`\`\`
323
-
324
- ---
325
-
326
- ### Pattern: Monitored Workflow
327
-
328
- \`\`\`typescript
329
- import { WorkflowRunner } from '@lssm/lib.contracts/workflow/runner';
330
- import { SLAMonitor } from '@lssm/lib.contracts/workflow/sla-monitor';
331
- import { logger } from '@lssm/lib.observability/logging';
332
-
333
- const monitor = new SLAMonitor((event, payload) => {
334
- logger.warn('workflow.sla_breach', payload);
335
- });
336
-
337
- // In workflow poller
338
- const state = await runner.getState(workflowId);
339
- const spec = registry.get(state.workflowName, state.workflowVersion);
340
- if (spec) {
341
- monitor.check(state, spec);
342
- }
343
- \`\`\`
344
-
345
- ---
346
-
347
- ## Next Steps
348
-
349
- 1. **Implement one quick win** (30 minutes)
350
- 2. **Add tests for new functionality** (1 hour)
351
- 3. **Deploy to staging and verify observability** (1 hour)
352
- 4. **Roll out to production** (monitor closely)
353
- 5. **Read full documentation** at https://contractspec.lssm.tech/docs
354
-
355
- ---
356
-
357
- **Questions?** See \`/docs/guides/phase-1-migration\` or reach out via https://contractspec.lssm.tech/contact
358
-
359
-
360
-
361
-
362
-
363
-
364
-
365
-
366
-
367
-
368
-
369
-
370
-
371
-
372
-
373
-
374
-
375
-
376
-
377
-
378
-
379
-
380
-
381
-
382
-
383
- `}];e(t);export{t as tech_PHASE_1_QUICKSTART_DocBlocks};
@@ -1,68 +0,0 @@
1
- import{registerDocBlocks as e}from"../registry.js";const t=[{id:`docs.tech.PHASE_2_AI_NATIVE_OPERATIONS`,title:`Phase 2: AI-Native Operations`,summary:`_Last updated: 2025-11-20_`,kind:`reference`,visibility:`public`,route:`/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS`,tags:[`tech`,`PHASE_2_AI_NATIVE_OPERATIONS`],body:`# Phase 2: AI-Native Operations
2
-
3
- _Last updated: 2025-11-20_
4
-
5
- Phase 2 turns ContractSpec into an AI-first operations stack. The new libraries below are the building blocks used by support bots, growth agents, and human-in-the-loop flows.
6
-
7
- ## Libraries
8
-
9
- ### @lssm/lib.ai-agent
10
-
11
- - **Spec + Registry**: \`defineAgent\`, \`AgentRegistry\` keep agent definitions type-safe.
12
- - **Runner**: \`AgentRunner\` drives LLM conversations, tool calls, retries, escalation, and telemetry hooks.
13
- - **Tools**: \`ToolExecutor\` standardizes schema validation + timeouts.
14
- - **Memory**: \`InMemoryAgentMemory\` + interfaces for plugging persistent stores.
15
- - **Approvals**: new \`ApprovalWorkflow\` + \`InMemoryApprovalStore\` capture low-confidence decisions and surface them to reviewers.
16
-
17
- ### @lssm/lib.support-bot
18
-
19
- Composable support automation primitives:
20
-
21
- - \`TicketClassifier\` → heuristics + optional LLM validation for category, priority, sentiment.
22
- - \`TicketResolver\` → RAG pipeline backed by knowledge spaces.
23
- - \`AutoResponder\` → tone-aware drafts with citations.
24
- - \`SupportFeedbackLoop\` → tracks resolution rates.
25
- - \`createSupportTools\` → ready-made tool definitions for AgentRunner.
26
-
27
- ### @lssm/lib.content-gen
28
-
29
- Content generators that consume a \`ContentBrief\` and output production-ready assets:
30
-
31
- - \`BlogGenerator\`, \`LandingPageGenerator\`, \`EmailCampaignGenerator\`, \`SocialPostGenerator\`.
32
- - \`SeoOptimizer\` builds metadata + schema markup.
33
-
34
- ### @lssm/lib.analytics
35
-
36
- Queryless analytics helpers:
37
-
38
- - \`FunnelAnalyzer\` – conversion/drop-off per step.
39
- - \`CohortTracker\` – retention + LTV per cohort.
40
- - \`ChurnPredictor\` – recency/frequency/error scoring.
41
- - \`GrowthHypothesisGenerator\` – surfaces experiment ideas from metric trends.
42
-
43
- ### @lssm/lib.growth
44
-
45
- A/B testing toolkit:
46
-
47
- - \`ExperimentRegistry\` + \`ExperimentRunner\` – deterministic bucketing.
48
- - \`ExperimentTracker\` – persist exposures + metrics.
49
- - \`StatsEngine\` – Welch’s t-test + improvement calculations.
50
-
51
- ### Human-in-the-loop UI
52
-
53
- \`@lssm/lib.design-system\` now exposes:
54
-
55
- - \`ApprovalQueue\` – list + act on pending approvals.
56
- - \`AgentMonitor\` – live view of agent sessions with confidence + status.
57
-
58
- ## Examples
59
-
60
- - \`examples/ai-support-bot/setup.ts\` shows ticket classification → resolution → response draft.
61
- - \`examples/content-generation/generate.ts\` produces blog, landing, email, social, SEO output from one brief.
62
-
63
- ## Next Steps
64
-
65
- 1. Wire these libraries into vertical apps (H-Circle, ArtisanOS, etc.).
66
- 2. Add background workers that consume the new analytics/growth trackers.
67
- 3. Expand web-landing to highlight these Phase 2 capabilities (see separate TODO).
68
- `}];e(t);export{t as tech_PHASE_2_AI_NATIVE_OPERATIONS_DocBlocks};
@@ -1,140 +0,0 @@
1
- import{registerDocBlocks as e}from"../registry.js";const t=[{id:`docs.tech.PHASE_3_AUTO_EVOLUTION`,title:`Phase 3: Auto-Evolution Technical Notes`,summary:`**Status**: In progress`,kind:`reference`,visibility:`public`,route:`/docs/tech/PHASE_3_AUTO_EVOLUTION`,tags:[`tech`,`PHASE_3_AUTO_EVOLUTION`],body:`# Phase 3: Auto-Evolution Technical Notes
2
-
3
- **Status**: In progress
4
- **Last updated**: 2025-11-21
5
-
6
- Phase 3 introduces self-learning capabilities that analyze production telemetry, suggest new specs, safely roll out variants, and generate golden tests from real traffic. This document captures the main building blocks delivered in this iteration.
7
-
8
- ---
9
-
10
- ## 1. Libraries
11
-
12
- ### @lssm/lib.evolution
13
-
14
- - \`SpecAnalyzer\` converts raw telemetry samples into usage stats + anomalies.
15
- - \`SpecGenerator\` produces \`SpecSuggestion\` objects and validates confidence thresholds.
16
- - \`SpecSuggestionOrchestrator\` routes proposals through the AI approval workflow and writes approved specs to \`packages/libs/contracts/src/generated\`.
17
- - Storage adapters:
18
- - \`InMemorySpecSuggestionRepository\` for tests.
19
- - \`PrismaSpecSuggestionRepository\` persists to the new Prisma model (see §4).
20
- - \`FileSystemSuggestionWriter\` emits JSON envelopes for git review.
21
-
22
- ### @lssm/lib.observability
23
-
24
- - Added intent detection modules:
25
- - \`IntentAggregator\` batches telemetry into rolling windows.
26
- - \`IntentDetector\` surfaces latency/error/throughput regressions and sequential intents.
27
- - \`EvolutionPipeline\` orchestrates aggregation → detection → intent events and exposes hooks for downstream orchestrators.
28
- - \`createTracingMiddleware\` now accepts \`resolveOperation\`/\`onSample\` hooks to feed telemetry samples into the pipeline.
29
-
30
- ### @lssm/lib.growth
31
-
32
- - New \`spec-experiments\` module:
33
- - \`SpecExperimentRegistry\`, \`SpecExperimentRunner\`, \`SpecExperimentAdapter\`.
34
- - \`SpecExperimentAnalyzer\` + \`SpecExperimentController\` handle guardrails and staged rollouts.
35
- - Helper \`createSpecVariantResolver\` plugs directly into \`HandlerCtx.specVariantResolver\`.
36
- - \`SpecVariantResolver\` is now a first-class concept in \`@lssm/lib.contracts\`. The runtime will attempt to execute variant specs before falling back to the registered handler.
37
-
38
- ### @lssm/lib.testing
39
-
40
- - \`TrafficRecorder\` + \`TrafficStore\` capture production requests with sampling and sanitization hooks.
41
- - \`GoldenTestGenerator\` converts \`TrafficSnapshot\`s into Vitest/Jest suites.
42
- - \`generateVitestSuite\` / \`generateJestSuite\` output self-contained test files, and \`runGoldenTests\` offers a programmatic harness for CI pipelines.
43
-
44
- ---
45
-
46
- ## 2. Telemetry → Intent → Spec Pipeline
47
-
48
- 1. \`createTracingMiddleware({ onSample })\` emits \`TelemetrySample\`s for every HTTP request.
49
- 2. \`IntentAggregator\` groups samples into statistical windows (default 15 minutes).
50
- 3. \`IntentDetector\` raises signals for:
51
- - Error spikes
52
- - Latency regressions
53
- - Throughput drops
54
- - Sequential workflows that hint at missing specs
55
- 4. \`EvolutionPipeline\` emits \`intent.detected\` events and hands them to \`SpecGenerator\`.
56
- 5. \`SpecSuggestionOrchestrator\` persists suggestions, triggers approval workflows, and—upon approval—writes JSON envelopes to \`packages/.../contracts/src/generated\`.
57
-
58
- ---
59
-
60
- ## 3. Spec Experiments & Rollouts
61
-
62
- 1. Register spec experiments in \`SpecExperimentRegistry\` with control + variant bindings.
63
- 2. Expose bucketed specs by attaching \`createSpecVariantResolver\` to \`HandlerCtx.specVariantResolver\` inside adapters.
64
- 3. Record outcomes via \`SpecExperimentAdapter.trackOutcome()\` (latency + error metrics).
65
- 4. \`SpecExperimentController\` uses guardrails from config and \`SpecExperimentAnalyzer\` to:
66
- - Auto-rollback on error/latency breaches.
67
- - Advance rollout stages (1% → 10% → 50% → 100%) when metrics stay green.
68
-
69
- ---
70
-
71
- ## 4. Data Models (Prisma)
72
-
73
- File: \`packages/libs/database/prisma/schema.prisma\`
74
-
75
- - \`SpecSuggestion\` – stores serialized suggestion payloads + statuses.
76
- - \`IntentSnapshot\` – captured detector output for auditing/training.
77
- - \`TrafficSnapshot\` – persisted production traffic (input/output/error blobs).
78
- - \`SpecExperiment\` / \`SpecExperimentMetric\` – rollout state + metrics for each variant.
79
-
80
- > Run \`bun database generate\` after pulling to refresh the Prisma client.
81
-
82
- ---
83
-
84
- ## 5. Golden Test Workflow
85
-
86
- 1. Capture traffic via middleware or direct \`TrafficRecorder.record\`.
87
- 2. Use the new CLI command to materialize suites:
88
-
89
- \`\`\`bash
90
- contractspec test generate \\
91
- --operation billing.createInvoice \\
92
- --output tests/billing.createInvoice.golden.test.ts \\
93
- --runner-import ./tests/run-operation \\
94
- --runner-fn runBillingCommand \\
95
- --from-production \\
96
- --days 7 \\
97
- --sample-rate 0.05
98
- \`\`\`
99
-
100
- 3. Generated files import your runner and assert against recorded outputs (or expected errors for negative paths).
101
-
102
- ---
103
-
104
- ## 6. Operational Notes
105
-
106
- - **Approvals**: By default, every suggestion still requires human approval. \`EvolutionConfig.autoApproveThreshold\` can be tuned per environment but should remain conservative (<0.3) until OverlaySpec tooling lands.
107
- - **Sampling**: Keep \`TrafficRecorder.sampleRate\` ≤ 0.05 in production to avoid sensitive payload storage; scrub PII through the \`sanitize\` callback before persistence.
108
- - **Rollouts**: Guardrails default to 5% error-rate and 750ms P99 latency. Override per experiment to match SLOs.
109
-
110
- ---
111
-
112
- ## 7. Next Steps
113
-
114
- 1. Wire \`SpecExperimentAdapter.trackOutcome\` into adapters (REST, GraphQL, Workers) so every execution logs metrics automatically.
115
- 2. Add a UI for reviewing \`SpecSuggestion\` objects alongside approval status.
116
- 3. Expand \`TrafficRecorder\` to ship directly to the Prisma-backed store (currently in-memory by default).
117
- 4. Integrate \`EvolutionPipeline\` events with the Regenerator to close the loop (auto-open proposals + attach evidence).
118
-
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
139
-
140
- `}];e(t);export{t as tech_PHASE_3_AUTO_EVOLUTION_DocBlocks};