@lssm/lib.contracts 0.0.0-canary-20251217083314 → 0.0.0-canary-20251219202229

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (835) hide show
  1. package/LICENSE +21 -0
  2. package/dist/app-config/app-config.feature.d.ts +2 -1
  3. package/dist/app-config/app-config.feature.d.ts.map +1 -0
  4. package/dist/app-config/app-config.feature.js +2 -1
  5. package/dist/app-config/app-config.feature.js.map +1 -0
  6. package/dist/app-config/branding.d.ts +2 -1
  7. package/dist/app-config/branding.d.ts.map +1 -0
  8. package/dist/app-config/contracts.d.ts +2 -1
  9. package/dist/app-config/contracts.d.ts.map +1 -0
  10. package/dist/app-config/contracts.js +56 -57
  11. package/dist/app-config/contracts.js.map +1 -0
  12. package/dist/app-config/docs/app-config.docblock.d.ts +2 -1
  13. package/dist/app-config/docs/app-config.docblock.d.ts.map +1 -0
  14. package/dist/app-config/docs/app-config.docblock.js +2 -1
  15. package/dist/app-config/docs/app-config.docblock.js.map +1 -0
  16. package/dist/app-config/events.d.ts +29 -28
  17. package/dist/app-config/events.d.ts.map +1 -0
  18. package/dist/app-config/events.js +33 -34
  19. package/dist/app-config/events.js.map +1 -0
  20. package/dist/app-config/lifecycle-contracts.d.ts +82 -81
  21. package/dist/app-config/lifecycle-contracts.d.ts.map +1 -0
  22. package/dist/app-config/lifecycle-contracts.js +68 -69
  23. package/dist/app-config/lifecycle-contracts.js.map +1 -0
  24. package/dist/app-config/lifecycle.d.ts +2 -1
  25. package/dist/app-config/lifecycle.d.ts.map +1 -0
  26. package/dist/app-config/runtime.d.ts +2 -1
  27. package/dist/app-config/runtime.d.ts.map +1 -0
  28. package/dist/app-config/runtime.js +2 -1
  29. package/dist/app-config/runtime.js.map +1 -0
  30. package/dist/app-config/spec.d.ts +2 -1
  31. package/dist/app-config/spec.d.ts.map +1 -0
  32. package/dist/app-config/spec.js +2 -1
  33. package/dist/app-config/spec.js.map +1 -0
  34. package/dist/app-config/validation.d.ts +2 -1
  35. package/dist/app-config/validation.d.ts.map +1 -0
  36. package/dist/app-config/validation.js +2 -1
  37. package/dist/app-config/validation.js.map +1 -0
  38. package/dist/capabilities/docs/capabilities.docblock.d.ts +2 -1
  39. package/dist/capabilities/docs/capabilities.docblock.d.ts.map +1 -0
  40. package/dist/capabilities/docs/capabilities.docblock.js +2 -1
  41. package/dist/capabilities/docs/capabilities.docblock.js.map +1 -0
  42. package/dist/capabilities/openbanking.d.ts +2 -1
  43. package/dist/capabilities/openbanking.d.ts.map +1 -0
  44. package/dist/capabilities/openbanking.js +2 -1
  45. package/dist/capabilities/openbanking.js.map +1 -0
  46. package/dist/capabilities.d.ts +2 -1
  47. package/dist/capabilities.d.ts.map +1 -0
  48. package/dist/capabilities.js +2 -1
  49. package/dist/capabilities.js.map +1 -0
  50. package/dist/client/react/drivers/rn-reusables.d.ts +2 -1
  51. package/dist/client/react/drivers/rn-reusables.d.ts.map +1 -0
  52. package/dist/client/react/drivers/rn-reusables.js +2 -1
  53. package/dist/client/react/drivers/rn-reusables.js.map +1 -0
  54. package/dist/client/react/drivers/shadcn.d.ts +2 -1
  55. package/dist/client/react/drivers/shadcn.d.ts.map +1 -0
  56. package/dist/client/react/drivers/shadcn.js +2 -1
  57. package/dist/client/react/drivers/shadcn.js.map +1 -0
  58. package/dist/client/react/feature-render.d.ts +2 -1
  59. package/dist/client/react/feature-render.d.ts.map +1 -0
  60. package/dist/client/react/feature-render.js +2 -1
  61. package/dist/client/react/feature-render.js.map +1 -0
  62. package/dist/client/react/form-render.d.ts +8 -7
  63. package/dist/client/react/form-render.d.ts.map +1 -0
  64. package/dist/client/react/form-render.js +17 -16
  65. package/dist/client/react/form-render.js.map +1 -0
  66. package/dist/contract-registry/schemas.d.ts +2 -1
  67. package/dist/contract-registry/schemas.d.ts.map +1 -0
  68. package/dist/contract-registry/schemas.js +2 -1
  69. package/dist/contract-registry/schemas.js.map +1 -0
  70. package/dist/contract-registry/types.d.ts +2 -1
  71. package/dist/contract-registry/types.d.ts.map +1 -0
  72. package/dist/contracts-adapter-hydration.d.ts +2 -1
  73. package/dist/contracts-adapter-hydration.d.ts.map +1 -0
  74. package/dist/contracts-adapter-hydration.js +2 -1
  75. package/dist/contracts-adapter-hydration.js.map +1 -0
  76. package/dist/contracts-adapter-input.d.ts +2 -1
  77. package/dist/contracts-adapter-input.d.ts.map +1 -0
  78. package/dist/contracts-adapter-input.js +2 -1
  79. package/dist/contracts-adapter-input.js.map +1 -0
  80. package/dist/data-views/docs/data-views.docblock.d.ts +2 -1
  81. package/dist/data-views/docs/data-views.docblock.d.ts.map +1 -0
  82. package/dist/data-views/docs/data-views.docblock.js +2 -1
  83. package/dist/data-views/docs/data-views.docblock.js.map +1 -0
  84. package/dist/data-views/query-generator.d.ts +2 -1
  85. package/dist/data-views/query-generator.d.ts.map +1 -0
  86. package/dist/data-views/query-generator.js +2 -1
  87. package/dist/data-views/query-generator.js.map +1 -0
  88. package/dist/data-views/runtime.d.ts +2 -1
  89. package/dist/data-views/runtime.d.ts.map +1 -0
  90. package/dist/data-views/runtime.js +2 -1
  91. package/dist/data-views/runtime.js.map +1 -0
  92. package/dist/data-views.d.ts +2 -1
  93. package/dist/data-views.d.ts.map +1 -0
  94. package/dist/data-views.js +2 -1
  95. package/dist/data-views.js.map +1 -0
  96. package/dist/docs/accessibility_wcag_compliance_specs.docblock.d.ts +2 -1
  97. package/dist/docs/accessibility_wcag_compliance_specs.docblock.d.ts.map +1 -0
  98. package/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
  99. package/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
  100. package/dist/docs/index.js +0 -6
  101. package/dist/docs/meta.docs.d.ts +2 -1
  102. package/dist/docs/meta.docs.d.ts.map +1 -0
  103. package/dist/docs/meta.docs.js +5 -1
  104. package/dist/docs/meta.docs.js.map +1 -0
  105. package/dist/docs/presentations.d.ts +2 -1
  106. package/dist/docs/presentations.d.ts.map +1 -0
  107. package/dist/docs/presentations.js +2 -1
  108. package/dist/docs/presentations.js.map +1 -0
  109. package/dist/docs/registry.d.ts +2 -1
  110. package/dist/docs/registry.d.ts.map +1 -0
  111. package/dist/docs/registry.js +2 -1
  112. package/dist/docs/registry.js.map +1 -0
  113. package/dist/docs/tech/auth/better-auth-nextjs.docblock.d.ts +2 -1
  114. package/dist/docs/tech/auth/better-auth-nextjs.docblock.d.ts.map +1 -0
  115. package/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
  116. package/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
  117. package/dist/docs/tech/contracts/README.docblock.d.ts +2 -1
  118. package/dist/docs/tech/contracts/README.docblock.d.ts.map +1 -0
  119. package/dist/docs/tech/contracts/README.docblock.js +2 -1
  120. package/dist/docs/tech/contracts/README.docblock.js.map +1 -0
  121. package/dist/docs/tech/contracts/create-subscription.docblock.d.ts +2 -1
  122. package/dist/docs/tech/contracts/create-subscription.docblock.d.ts.map +1 -0
  123. package/dist/docs/tech/contracts/create-subscription.docblock.js +2 -1
  124. package/dist/docs/tech/contracts/create-subscription.docblock.js.map +1 -0
  125. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.d.ts +2 -1
  126. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.d.ts.map +1 -0
  127. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js +2 -1
  128. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js.map +1 -0
  129. package/dist/docs/tech/contracts/migrations.docblock.d.ts +2 -1
  130. package/dist/docs/tech/contracts/migrations.docblock.d.ts.map +1 -0
  131. package/dist/docs/tech/contracts/migrations.docblock.js +2 -1
  132. package/dist/docs/tech/contracts/migrations.docblock.js.map +1 -0
  133. package/dist/docs/tech/contracts/openapi-export.docblock.d.ts +2 -1
  134. package/dist/docs/tech/contracts/openapi-export.docblock.d.ts.map +1 -0
  135. package/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
  136. package/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
  137. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts +2 -1
  138. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts.map +1 -0
  139. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js +2 -1
  140. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js.map +1 -0
  141. package/dist/docs/tech/contracts/overlays.docblock.d.ts +2 -1
  142. package/dist/docs/tech/contracts/overlays.docblock.d.ts.map +1 -0
  143. package/dist/docs/tech/contracts/overlays.docblock.js +2 -1
  144. package/dist/docs/tech/contracts/overlays.docblock.js.map +1 -0
  145. package/dist/docs/tech/contracts/tests.docblock.d.ts +2 -1
  146. package/dist/docs/tech/contracts/tests.docblock.d.ts.map +1 -0
  147. package/dist/docs/tech/contracts/tests.docblock.js +2 -1
  148. package/dist/docs/tech/contracts/tests.docblock.js.map +1 -0
  149. package/dist/docs/tech/contracts/themes.docblock.d.ts +2 -1
  150. package/dist/docs/tech/contracts/themes.docblock.d.ts.map +1 -0
  151. package/dist/docs/tech/contracts/themes.docblock.js +2 -1
  152. package/dist/docs/tech/contracts/themes.docblock.js.map +1 -0
  153. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.d.ts +2 -1
  154. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.d.ts.map +1 -0
  155. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js +2 -1
  156. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js.map +1 -0
  157. package/dist/docs/tech/lifecycle-stage-system.docblock.d.ts +2 -1
  158. package/dist/docs/tech/lifecycle-stage-system.docblock.d.ts.map +1 -0
  159. package/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
  160. package/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
  161. package/dist/docs/tech/llm/llm-integration.docblock.d.ts +2 -1
  162. package/dist/docs/tech/llm/llm-integration.docblock.d.ts.map +1 -0
  163. package/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
  164. package/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
  165. package/dist/docs/tech/mcp-endpoints.docblock.d.ts +2 -1
  166. package/dist/docs/tech/mcp-endpoints.docblock.d.ts.map +1 -0
  167. package/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
  168. package/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
  169. package/dist/docs/tech/presentation-runtime.docblock.d.ts +2 -1
  170. package/dist/docs/tech/presentation-runtime.docblock.d.ts.map +1 -0
  171. package/dist/docs/tech/presentation-runtime.docblock.js +2 -1
  172. package/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
  173. package/dist/docs/tech/schema/README.docblock.d.ts +2 -1
  174. package/dist/docs/tech/schema/README.docblock.d.ts.map +1 -0
  175. package/dist/docs/tech/schema/README.docblock.js +2 -1
  176. package/dist/docs/tech/schema/README.docblock.js.map +1 -0
  177. package/dist/docs/tech/studio/learning-events.docblock.d.ts +2 -1
  178. package/dist/docs/tech/studio/learning-events.docblock.d.ts.map +1 -0
  179. package/dist/docs/tech/studio/learning-events.docblock.js +2 -1
  180. package/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
  181. package/dist/docs/tech/studio/learning-journeys.docblock.d.ts +2 -1
  182. package/dist/docs/tech/studio/learning-journeys.docblock.d.ts.map +1 -0
  183. package/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
  184. package/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
  185. package/dist/docs/tech/studio/platform-admin-panel.docblock.d.ts +2 -1
  186. package/dist/docs/tech/studio/platform-admin-panel.docblock.d.ts.map +1 -0
  187. package/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
  188. package/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
  189. package/dist/docs/tech/studio/project-access-teams.docblock.d.ts +2 -1
  190. package/dist/docs/tech/studio/project-access-teams.docblock.d.ts.map +1 -0
  191. package/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
  192. package/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
  193. package/dist/docs/tech/studio/project-routing.docblock.d.ts +2 -1
  194. package/dist/docs/tech/studio/project-routing.docblock.d.ts.map +1 -0
  195. package/dist/docs/tech/studio/project-routing.docblock.js +2 -1
  196. package/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
  197. package/dist/docs/tech/studio/sandbox-unlogged.docblock.d.ts +2 -1
  198. package/dist/docs/tech/studio/sandbox-unlogged.docblock.d.ts.map +1 -0
  199. package/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
  200. package/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
  201. package/dist/docs/tech/studio/team-invitations.docblock.d.ts +2 -1
  202. package/dist/docs/tech/studio/team-invitations.docblock.d.ts.map +1 -0
  203. package/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
  204. package/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
  205. package/dist/docs/tech/studio/workspace-ops.docblock.d.ts +2 -1
  206. package/dist/docs/tech/studio/workspace-ops.docblock.d.ts.map +1 -0
  207. package/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
  208. package/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
  209. package/dist/docs/tech/studio/workspaces.docblock.d.ts +2 -1
  210. package/dist/docs/tech/studio/workspaces.docblock.d.ts.map +1 -0
  211. package/dist/docs/tech/studio/workspaces.docblock.js +2 -1
  212. package/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
  213. package/dist/docs/tech/telemetry-ingest.docblock.d.ts +2 -1
  214. package/dist/docs/tech/telemetry-ingest.docblock.d.ts.map +1 -0
  215. package/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
  216. package/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
  217. package/dist/docs/tech/templates/runtime.docblock.d.ts +2 -1
  218. package/dist/docs/tech/templates/runtime.docblock.d.ts.map +1 -0
  219. package/dist/docs/tech/templates/runtime.docblock.js +2 -1
  220. package/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
  221. package/dist/docs/tech/vscode-extension.docblock.d.ts +2 -1
  222. package/dist/docs/tech/vscode-extension.docblock.d.ts.map +1 -0
  223. package/dist/docs/tech/vscode-extension.docblock.js +2 -1
  224. package/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
  225. package/dist/docs/tech/workflows/overview.docblock.d.ts +2 -1
  226. package/dist/docs/tech/workflows/overview.docblock.d.ts.map +1 -0
  227. package/dist/docs/tech/workflows/overview.docblock.js +2 -1
  228. package/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
  229. package/dist/docs/tech-contracts.docs.d.ts +2 -1
  230. package/dist/docs/tech-contracts.docs.d.ts.map +1 -0
  231. package/dist/docs/tech-contracts.docs.js +5 -1
  232. package/dist/docs/tech-contracts.docs.js.map +1 -0
  233. package/dist/docs/types.d.ts +2 -1
  234. package/dist/docs/types.d.ts.map +1 -0
  235. package/dist/events.d.ts +2 -1
  236. package/dist/events.d.ts.map +1 -0
  237. package/dist/events.js +2 -1
  238. package/dist/events.js.map +1 -0
  239. package/dist/experiments/docs/experiments.docblock.d.ts +2 -1
  240. package/dist/experiments/docs/experiments.docblock.d.ts.map +1 -0
  241. package/dist/experiments/docs/experiments.docblock.js +2 -1
  242. package/dist/experiments/docs/experiments.docblock.js.map +1 -0
  243. package/dist/experiments/evaluator.d.ts +2 -1
  244. package/dist/experiments/evaluator.d.ts.map +1 -0
  245. package/dist/experiments/evaluator.js +2 -1
  246. package/dist/experiments/evaluator.js.map +1 -0
  247. package/dist/experiments/spec-resolver.d.ts +2 -1
  248. package/dist/experiments/spec-resolver.d.ts.map +1 -0
  249. package/dist/experiments/spec.d.ts +2 -1
  250. package/dist/experiments/spec.d.ts.map +1 -0
  251. package/dist/experiments/spec.js +2 -1
  252. package/dist/experiments/spec.js.map +1 -0
  253. package/dist/features.d.ts +2 -1
  254. package/dist/features.d.ts.map +1 -0
  255. package/dist/features.js +2 -1
  256. package/dist/features.js.map +1 -0
  257. package/dist/forms/docs/forms.docblock.d.ts +2 -1
  258. package/dist/forms/docs/forms.docblock.d.ts.map +1 -0
  259. package/dist/forms/docs/forms.docblock.js +2 -1
  260. package/dist/forms/docs/forms.docblock.js.map +1 -0
  261. package/dist/forms.d.ts +2 -1
  262. package/dist/forms.d.ts.map +1 -0
  263. package/dist/forms.js +2 -1
  264. package/dist/forms.js.map +1 -0
  265. package/dist/index.js +2 -3
  266. package/dist/install.d.ts +2 -1
  267. package/dist/install.d.ts.map +1 -0
  268. package/dist/install.js +2 -1
  269. package/dist/install.js.map +1 -0
  270. package/dist/integrations/binding.d.ts +2 -1
  271. package/dist/integrations/binding.d.ts.map +1 -0
  272. package/dist/integrations/connection.d.ts +2 -1
  273. package/dist/integrations/connection.d.ts.map +1 -0
  274. package/dist/integrations/contracts.d.ts +104 -103
  275. package/dist/integrations/contracts.d.ts.map +1 -0
  276. package/dist/integrations/contracts.js +65 -66
  277. package/dist/integrations/contracts.js.map +1 -0
  278. package/dist/integrations/docs/integrations.docblock.d.ts +2 -1
  279. package/dist/integrations/docs/integrations.docblock.d.ts.map +1 -0
  280. package/dist/integrations/docs/integrations.docblock.js +2 -1
  281. package/dist/integrations/docs/integrations.docblock.js.map +1 -0
  282. package/dist/integrations/health.d.ts +2 -1
  283. package/dist/integrations/health.d.ts.map +1 -0
  284. package/dist/integrations/health.js +2 -1
  285. package/dist/integrations/health.js.map +1 -0
  286. package/dist/integrations/openbanking/contracts/accounts.d.ts +68 -67
  287. package/dist/integrations/openbanking/contracts/accounts.d.ts.map +1 -0
  288. package/dist/integrations/openbanking/contracts/accounts.js +31 -32
  289. package/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  290. package/dist/integrations/openbanking/contracts/balances.d.ts +36 -35
  291. package/dist/integrations/openbanking/contracts/balances.d.ts.map +1 -0
  292. package/dist/integrations/openbanking/contracts/balances.js +18 -19
  293. package/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  294. package/dist/integrations/openbanking/contracts/index.d.ts +2 -1
  295. package/dist/integrations/openbanking/contracts/index.d.ts.map +1 -0
  296. package/dist/integrations/openbanking/contracts/index.js +2 -1
  297. package/dist/integrations/openbanking/contracts/index.js.map +1 -0
  298. package/dist/integrations/openbanking/contracts/transactions.d.ts +50 -49
  299. package/dist/integrations/openbanking/contracts/transactions.d.ts.map +1 -0
  300. package/dist/integrations/openbanking/contracts/transactions.js +32 -33
  301. package/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  302. package/dist/integrations/openbanking/guards.d.ts +2 -1
  303. package/dist/integrations/openbanking/guards.d.ts.map +1 -0
  304. package/dist/integrations/openbanking/guards.js +2 -1
  305. package/dist/integrations/openbanking/guards.js.map +1 -0
  306. package/dist/integrations/openbanking/models.d.ts +2 -1
  307. package/dist/integrations/openbanking/models.d.ts.map +1 -0
  308. package/dist/integrations/openbanking/models.js +60 -61
  309. package/dist/integrations/openbanking/models.js.map +1 -0
  310. package/dist/integrations/openbanking/openbanking.feature.d.ts +2 -1
  311. package/dist/integrations/openbanking/openbanking.feature.d.ts.map +1 -0
  312. package/dist/integrations/openbanking/openbanking.feature.js +2 -1
  313. package/dist/integrations/openbanking/openbanking.feature.js.map +1 -0
  314. package/dist/integrations/openbanking/telemetry.d.ts +2 -1
  315. package/dist/integrations/openbanking/telemetry.d.ts.map +1 -0
  316. package/dist/integrations/openbanking/telemetry.js +2 -1
  317. package/dist/integrations/openbanking/telemetry.js.map +1 -0
  318. package/dist/integrations/providers/calendar.d.ts +2 -1
  319. package/dist/integrations/providers/calendar.d.ts.map +1 -0
  320. package/dist/integrations/providers/elevenlabs.d.ts +2 -1
  321. package/dist/integrations/providers/elevenlabs.d.ts.map +1 -0
  322. package/dist/integrations/providers/elevenlabs.js +2 -1
  323. package/dist/integrations/providers/elevenlabs.js.map +1 -0
  324. package/dist/integrations/providers/email.d.ts +2 -1
  325. package/dist/integrations/providers/email.d.ts.map +1 -0
  326. package/dist/integrations/providers/embedding.d.ts +2 -1
  327. package/dist/integrations/providers/embedding.d.ts.map +1 -0
  328. package/dist/integrations/providers/gcs-storage.d.ts +2 -1
  329. package/dist/integrations/providers/gcs-storage.d.ts.map +1 -0
  330. package/dist/integrations/providers/gcs-storage.js +2 -1
  331. package/dist/integrations/providers/gcs-storage.js.map +1 -0
  332. package/dist/integrations/providers/gmail.d.ts +2 -1
  333. package/dist/integrations/providers/gmail.d.ts.map +1 -0
  334. package/dist/integrations/providers/gmail.js +2 -1
  335. package/dist/integrations/providers/gmail.js.map +1 -0
  336. package/dist/integrations/providers/google-calendar.d.ts +2 -1
  337. package/dist/integrations/providers/google-calendar.d.ts.map +1 -0
  338. package/dist/integrations/providers/google-calendar.js +2 -1
  339. package/dist/integrations/providers/google-calendar.js.map +1 -0
  340. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +2 -1
  341. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts.map +1 -0
  342. package/dist/integrations/providers/impls/elevenlabs-voice.js +2 -1
  343. package/dist/integrations/providers/impls/elevenlabs-voice.js.map +1 -0
  344. package/dist/integrations/providers/impls/gcs-storage.d.ts +2 -1
  345. package/dist/integrations/providers/impls/gcs-storage.d.ts.map +1 -0
  346. package/dist/integrations/providers/impls/gcs-storage.js +2 -1
  347. package/dist/integrations/providers/impls/gcs-storage.js.map +1 -0
  348. package/dist/integrations/providers/impls/gmail-inbound.d.ts +2 -1
  349. package/dist/integrations/providers/impls/gmail-inbound.d.ts.map +1 -0
  350. package/dist/integrations/providers/impls/gmail-inbound.js +2 -1
  351. package/dist/integrations/providers/impls/gmail-inbound.js.map +1 -0
  352. package/dist/integrations/providers/impls/gmail-outbound.d.ts +2 -1
  353. package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +1 -0
  354. package/dist/integrations/providers/impls/gmail-outbound.js +2 -1
  355. package/dist/integrations/providers/impls/gmail-outbound.js.map +1 -0
  356. package/dist/integrations/providers/impls/google-calendar.d.ts +2 -1
  357. package/dist/integrations/providers/impls/google-calendar.d.ts.map +1 -0
  358. package/dist/integrations/providers/impls/google-calendar.js +2 -1
  359. package/dist/integrations/providers/impls/google-calendar.js.map +1 -0
  360. package/dist/integrations/providers/impls/mistral-embedding.d.ts +2 -1
  361. package/dist/integrations/providers/impls/mistral-embedding.d.ts.map +1 -0
  362. package/dist/integrations/providers/impls/mistral-embedding.js +2 -1
  363. package/dist/integrations/providers/impls/mistral-embedding.js.map +1 -0
  364. package/dist/integrations/providers/impls/mistral-llm.d.ts +2 -1
  365. package/dist/integrations/providers/impls/mistral-llm.d.ts.map +1 -0
  366. package/dist/integrations/providers/impls/mistral-llm.js +2 -1
  367. package/dist/integrations/providers/impls/mistral-llm.js.map +1 -0
  368. package/dist/integrations/providers/impls/postmark-email.d.ts +2 -1
  369. package/dist/integrations/providers/impls/postmark-email.d.ts.map +1 -0
  370. package/dist/integrations/providers/impls/postmark-email.js +2 -1
  371. package/dist/integrations/providers/impls/postmark-email.js.map +1 -0
  372. package/dist/integrations/providers/impls/powens-client.d.ts +2 -1
  373. package/dist/integrations/providers/impls/powens-client.d.ts.map +1 -0
  374. package/dist/integrations/providers/impls/powens-client.js +2 -1
  375. package/dist/integrations/providers/impls/powens-client.js.map +1 -0
  376. package/dist/integrations/providers/impls/powens-openbanking.d.ts +2 -1
  377. package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +1 -0
  378. package/dist/integrations/providers/impls/powens-openbanking.js +2 -1
  379. package/dist/integrations/providers/impls/powens-openbanking.js.map +1 -0
  380. package/dist/integrations/providers/impls/provider-factory.d.ts +2 -1
  381. package/dist/integrations/providers/impls/provider-factory.d.ts.map +1 -0
  382. package/dist/integrations/providers/impls/provider-factory.js +2 -1
  383. package/dist/integrations/providers/impls/provider-factory.js.map +1 -0
  384. package/dist/integrations/providers/impls/qdrant-vector.d.ts +2 -1
  385. package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +1 -0
  386. package/dist/integrations/providers/impls/qdrant-vector.js +2 -1
  387. package/dist/integrations/providers/impls/qdrant-vector.js.map +1 -0
  388. package/dist/integrations/providers/impls/stripe-payments.d.ts +2 -1
  389. package/dist/integrations/providers/impls/stripe-payments.d.ts.map +1 -0
  390. package/dist/integrations/providers/impls/stripe-payments.js +2 -1
  391. package/dist/integrations/providers/impls/stripe-payments.js.map +1 -0
  392. package/dist/integrations/providers/impls/twilio-sms.d.ts +2 -1
  393. package/dist/integrations/providers/impls/twilio-sms.d.ts.map +1 -0
  394. package/dist/integrations/providers/impls/twilio-sms.js +2 -1
  395. package/dist/integrations/providers/impls/twilio-sms.js.map +1 -0
  396. package/dist/integrations/providers/llm.d.ts +2 -1
  397. package/dist/integrations/providers/llm.d.ts.map +1 -0
  398. package/dist/integrations/providers/mistral.d.ts +2 -1
  399. package/dist/integrations/providers/mistral.d.ts.map +1 -0
  400. package/dist/integrations/providers/mistral.js +2 -1
  401. package/dist/integrations/providers/mistral.js.map +1 -0
  402. package/dist/integrations/providers/openbanking.d.ts +2 -1
  403. package/dist/integrations/providers/openbanking.d.ts.map +1 -0
  404. package/dist/integrations/providers/payments.d.ts +2 -1
  405. package/dist/integrations/providers/payments.d.ts.map +1 -0
  406. package/dist/integrations/providers/postmark.d.ts +2 -1
  407. package/dist/integrations/providers/postmark.d.ts.map +1 -0
  408. package/dist/integrations/providers/postmark.js +2 -1
  409. package/dist/integrations/providers/postmark.js.map +1 -0
  410. package/dist/integrations/providers/powens.d.ts +2 -1
  411. package/dist/integrations/providers/powens.d.ts.map +1 -0
  412. package/dist/integrations/providers/powens.js +2 -1
  413. package/dist/integrations/providers/powens.js.map +1 -0
  414. package/dist/integrations/providers/qdrant.d.ts +2 -1
  415. package/dist/integrations/providers/qdrant.d.ts.map +1 -0
  416. package/dist/integrations/providers/qdrant.js +2 -1
  417. package/dist/integrations/providers/qdrant.js.map +1 -0
  418. package/dist/integrations/providers/registry.d.ts +2 -1
  419. package/dist/integrations/providers/registry.d.ts.map +1 -0
  420. package/dist/integrations/providers/registry.js +2 -1
  421. package/dist/integrations/providers/registry.js.map +1 -0
  422. package/dist/integrations/providers/sms.d.ts +2 -1
  423. package/dist/integrations/providers/sms.d.ts.map +1 -0
  424. package/dist/integrations/providers/storage.d.ts +2 -1
  425. package/dist/integrations/providers/storage.d.ts.map +1 -0
  426. package/dist/integrations/providers/stripe.d.ts +2 -1
  427. package/dist/integrations/providers/stripe.d.ts.map +1 -0
  428. package/dist/integrations/providers/stripe.js +2 -1
  429. package/dist/integrations/providers/stripe.js.map +1 -0
  430. package/dist/integrations/providers/twilio-sms.d.ts +2 -1
  431. package/dist/integrations/providers/twilio-sms.d.ts.map +1 -0
  432. package/dist/integrations/providers/twilio-sms.js +2 -1
  433. package/dist/integrations/providers/twilio-sms.js.map +1 -0
  434. package/dist/integrations/providers/vector-store.d.ts +2 -1
  435. package/dist/integrations/providers/vector-store.d.ts.map +1 -0
  436. package/dist/integrations/providers/voice.d.ts +2 -1
  437. package/dist/integrations/providers/voice.d.ts.map +1 -0
  438. package/dist/integrations/runtime.d.ts +2 -1
  439. package/dist/integrations/runtime.d.ts.map +1 -0
  440. package/dist/integrations/runtime.js +2 -1
  441. package/dist/integrations/runtime.js.map +1 -0
  442. package/dist/integrations/secrets/aws-secret-manager.d.ts +2 -1
  443. package/dist/integrations/secrets/aws-secret-manager.d.ts.map +1 -0
  444. package/dist/integrations/secrets/aws-secret-manager.js +2 -1
  445. package/dist/integrations/secrets/aws-secret-manager.js.map +1 -0
  446. package/dist/integrations/secrets/env-secret-provider.d.ts +2 -1
  447. package/dist/integrations/secrets/env-secret-provider.d.ts.map +1 -0
  448. package/dist/integrations/secrets/env-secret-provider.js +2 -1
  449. package/dist/integrations/secrets/env-secret-provider.js.map +1 -0
  450. package/dist/integrations/secrets/gcp-secret-manager.d.ts +2 -1
  451. package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +1 -0
  452. package/dist/integrations/secrets/gcp-secret-manager.js +2 -1
  453. package/dist/integrations/secrets/gcp-secret-manager.js.map +1 -0
  454. package/dist/integrations/secrets/manager.d.ts +2 -1
  455. package/dist/integrations/secrets/manager.d.ts.map +1 -0
  456. package/dist/integrations/secrets/manager.js +2 -1
  457. package/dist/integrations/secrets/manager.js.map +1 -0
  458. package/dist/integrations/secrets/provider.d.ts +2 -1
  459. package/dist/integrations/secrets/provider.d.ts.map +1 -0
  460. package/dist/integrations/secrets/provider.js +2 -1
  461. package/dist/integrations/secrets/provider.js.map +1 -0
  462. package/dist/integrations/secrets/scaleway-secret-manager.d.ts +2 -1
  463. package/dist/integrations/secrets/scaleway-secret-manager.d.ts.map +1 -0
  464. package/dist/integrations/secrets/scaleway-secret-manager.js +2 -1
  465. package/dist/integrations/secrets/scaleway-secret-manager.js.map +1 -0
  466. package/dist/integrations/spec.d.ts +2 -1
  467. package/dist/integrations/spec.d.ts.map +1 -0
  468. package/dist/integrations/spec.js +2 -1
  469. package/dist/integrations/spec.js.map +1 -0
  470. package/dist/jobs/define-job.d.ts +2 -1
  471. package/dist/jobs/define-job.d.ts.map +1 -0
  472. package/dist/jobs/define-job.js +2 -1
  473. package/dist/jobs/define-job.js.map +1 -0
  474. package/dist/jobs/gcp-cloud-tasks.d.ts +2 -1
  475. package/dist/jobs/gcp-cloud-tasks.d.ts.map +1 -0
  476. package/dist/jobs/gcp-cloud-tasks.js +2 -1
  477. package/dist/jobs/gcp-cloud-tasks.js.map +1 -0
  478. package/dist/jobs/gcp-pubsub.d.ts +2 -1
  479. package/dist/jobs/gcp-pubsub.d.ts.map +1 -0
  480. package/dist/jobs/gcp-pubsub.js +2 -1
  481. package/dist/jobs/gcp-pubsub.js.map +1 -0
  482. package/dist/jobs/handlers/gmail-sync-handler.d.ts +2 -1
  483. package/dist/jobs/handlers/gmail-sync-handler.d.ts.map +1 -0
  484. package/dist/jobs/handlers/gmail-sync-handler.js +2 -1
  485. package/dist/jobs/handlers/gmail-sync-handler.js.map +1 -0
  486. package/dist/jobs/handlers/index.d.ts +2 -1
  487. package/dist/jobs/handlers/index.d.ts.map +1 -0
  488. package/dist/jobs/handlers/index.js +2 -1
  489. package/dist/jobs/handlers/index.js.map +1 -0
  490. package/dist/jobs/handlers/ping-handler.d.ts +2 -1
  491. package/dist/jobs/handlers/ping-handler.d.ts.map +1 -0
  492. package/dist/jobs/handlers/ping-handler.js +2 -1
  493. package/dist/jobs/handlers/ping-handler.js.map +1 -0
  494. package/dist/jobs/handlers/storage-document-handler.d.ts +2 -1
  495. package/dist/jobs/handlers/storage-document-handler.d.ts.map +1 -0
  496. package/dist/jobs/handlers/storage-document-handler.js +2 -1
  497. package/dist/jobs/handlers/storage-document-handler.js.map +1 -0
  498. package/dist/jobs/memory-queue.d.ts +2 -1
  499. package/dist/jobs/memory-queue.d.ts.map +1 -0
  500. package/dist/jobs/memory-queue.js +2 -1
  501. package/dist/jobs/memory-queue.js.map +1 -0
  502. package/dist/jobs/queue.d.ts +2 -1
  503. package/dist/jobs/queue.d.ts.map +1 -0
  504. package/dist/jobs/queue.js +2 -1
  505. package/dist/jobs/queue.js.map +1 -0
  506. package/dist/jobs/scaleway-sqs-queue.d.ts +2 -1
  507. package/dist/jobs/scaleway-sqs-queue.d.ts.map +1 -0
  508. package/dist/jobs/scaleway-sqs-queue.js +2 -1
  509. package/dist/jobs/scaleway-sqs-queue.js.map +1 -0
  510. package/dist/jsonschema.d.ts +2 -1
  511. package/dist/jsonschema.d.ts.map +1 -0
  512. package/dist/jsonschema.js +2 -1
  513. package/dist/jsonschema.js.map +1 -0
  514. package/dist/knowledge/binding.d.ts +2 -1
  515. package/dist/knowledge/binding.d.ts.map +1 -0
  516. package/dist/knowledge/contracts.d.ts +68 -67
  517. package/dist/knowledge/contracts.d.ts.map +1 -0
  518. package/dist/knowledge/contracts.js +44 -45
  519. package/dist/knowledge/contracts.js.map +1 -0
  520. package/dist/knowledge/docs/knowledge.docblock.d.ts +2 -1
  521. package/dist/knowledge/docs/knowledge.docblock.d.ts.map +1 -0
  522. package/dist/knowledge/docs/knowledge.docblock.js +2 -1
  523. package/dist/knowledge/docs/knowledge.docblock.js.map +1 -0
  524. package/dist/knowledge/ingestion/document-processor.d.ts +2 -1
  525. package/dist/knowledge/ingestion/document-processor.d.ts.map +1 -0
  526. package/dist/knowledge/ingestion/document-processor.js +2 -1
  527. package/dist/knowledge/ingestion/document-processor.js.map +1 -0
  528. package/dist/knowledge/ingestion/embedding-service.d.ts +2 -1
  529. package/dist/knowledge/ingestion/embedding-service.d.ts.map +1 -0
  530. package/dist/knowledge/ingestion/embedding-service.js +2 -1
  531. package/dist/knowledge/ingestion/embedding-service.js.map +1 -0
  532. package/dist/knowledge/ingestion/gmail-adapter.d.ts +2 -1
  533. package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +1 -0
  534. package/dist/knowledge/ingestion/gmail-adapter.js +2 -1
  535. package/dist/knowledge/ingestion/gmail-adapter.js.map +1 -0
  536. package/dist/knowledge/ingestion/storage-adapter.d.ts +2 -1
  537. package/dist/knowledge/ingestion/storage-adapter.d.ts.map +1 -0
  538. package/dist/knowledge/ingestion/storage-adapter.js +2 -1
  539. package/dist/knowledge/ingestion/storage-adapter.js.map +1 -0
  540. package/dist/knowledge/ingestion/vector-indexer.d.ts +2 -1
  541. package/dist/knowledge/ingestion/vector-indexer.d.ts.map +1 -0
  542. package/dist/knowledge/ingestion/vector-indexer.js +2 -1
  543. package/dist/knowledge/ingestion/vector-indexer.js.map +1 -0
  544. package/dist/knowledge/query/service.d.ts +2 -1
  545. package/dist/knowledge/query/service.d.ts.map +1 -0
  546. package/dist/knowledge/query/service.js +2 -1
  547. package/dist/knowledge/query/service.js.map +1 -0
  548. package/dist/knowledge/runtime.d.ts +2 -1
  549. package/dist/knowledge/runtime.d.ts.map +1 -0
  550. package/dist/knowledge/runtime.js +2 -1
  551. package/dist/knowledge/runtime.js.map +1 -0
  552. package/dist/knowledge/source.d.ts +2 -1
  553. package/dist/knowledge/source.d.ts.map +1 -0
  554. package/dist/knowledge/spaces/email-threads.d.ts +2 -1
  555. package/dist/knowledge/spaces/email-threads.d.ts.map +1 -0
  556. package/dist/knowledge/spaces/email-threads.js +2 -1
  557. package/dist/knowledge/spaces/email-threads.js.map +1 -0
  558. package/dist/knowledge/spaces/financial-docs.d.ts +2 -1
  559. package/dist/knowledge/spaces/financial-docs.d.ts.map +1 -0
  560. package/dist/knowledge/spaces/financial-docs.js +2 -1
  561. package/dist/knowledge/spaces/financial-docs.js.map +1 -0
  562. package/dist/knowledge/spaces/financial-overview.d.ts +2 -1
  563. package/dist/knowledge/spaces/financial-overview.d.ts.map +1 -0
  564. package/dist/knowledge/spaces/financial-overview.js +2 -1
  565. package/dist/knowledge/spaces/financial-overview.js.map +1 -0
  566. package/dist/knowledge/spaces/product-canon.d.ts +2 -1
  567. package/dist/knowledge/spaces/product-canon.d.ts.map +1 -0
  568. package/dist/knowledge/spaces/product-canon.js +2 -1
  569. package/dist/knowledge/spaces/product-canon.js.map +1 -0
  570. package/dist/knowledge/spaces/support-faq.d.ts +2 -1
  571. package/dist/knowledge/spaces/support-faq.d.ts.map +1 -0
  572. package/dist/knowledge/spaces/support-faq.js +2 -1
  573. package/dist/knowledge/spaces/support-faq.js.map +1 -0
  574. package/dist/knowledge/spaces/uploaded-docs.d.ts +2 -1
  575. package/dist/knowledge/spaces/uploaded-docs.d.ts.map +1 -0
  576. package/dist/knowledge/spaces/uploaded-docs.js +2 -1
  577. package/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  578. package/dist/knowledge/spec.d.ts +2 -1
  579. package/dist/knowledge/spec.d.ts.map +1 -0
  580. package/dist/knowledge/spec.js +2 -1
  581. package/dist/knowledge/spec.js.map +1 -0
  582. package/dist/llm/exporters.d.ts +2 -1
  583. package/dist/llm/exporters.d.ts.map +1 -0
  584. package/dist/llm/exporters.js +2 -1
  585. package/dist/llm/exporters.js.map +1 -0
  586. package/dist/llm/prompts.d.ts +2 -1
  587. package/dist/llm/prompts.d.ts.map +1 -0
  588. package/dist/llm/prompts.js +2 -1
  589. package/dist/llm/prompts.js.map +1 -0
  590. package/dist/llm/types.d.ts +2 -1
  591. package/dist/llm/types.d.ts.map +1 -0
  592. package/dist/markdown.d.ts +2 -1
  593. package/dist/markdown.d.ts.map +1 -0
  594. package/dist/markdown.js +2 -1
  595. package/dist/markdown.js.map +1 -0
  596. package/dist/migrations.d.ts +2 -1
  597. package/dist/migrations.d.ts.map +1 -0
  598. package/dist/migrations.js +2 -1
  599. package/dist/migrations.js.map +1 -0
  600. package/dist/onboarding-base.d.ts +31 -30
  601. package/dist/onboarding-base.d.ts.map +1 -0
  602. package/dist/onboarding-base.js +22 -23
  603. package/dist/onboarding-base.js.map +1 -0
  604. package/dist/openapi.d.ts +2 -1
  605. package/dist/openapi.d.ts.map +1 -0
  606. package/dist/openapi.js +2 -1
  607. package/dist/openapi.js.map +1 -0
  608. package/dist/openbanking/docs/openbanking.docblock.d.ts +2 -1
  609. package/dist/openbanking/docs/openbanking.docblock.d.ts.map +1 -0
  610. package/dist/openbanking/docs/openbanking.docblock.js +2 -1
  611. package/dist/openbanking/docs/openbanking.docblock.js.map +1 -0
  612. package/dist/ownership.d.ts +6 -7
  613. package/dist/ownership.d.ts.map +1 -0
  614. package/dist/ownership.js +6 -6
  615. package/dist/ownership.js.map +1 -0
  616. package/dist/policy/docs/policy.docblock.d.ts +2 -1
  617. package/dist/policy/docs/policy.docblock.d.ts.map +1 -0
  618. package/dist/policy/docs/policy.docblock.js +2 -1
  619. package/dist/policy/docs/policy.docblock.js.map +1 -0
  620. package/dist/policy/engine.d.ts +2 -1
  621. package/dist/policy/engine.d.ts.map +1 -0
  622. package/dist/policy/engine.js +2 -1
  623. package/dist/policy/engine.js.map +1 -0
  624. package/dist/policy/opa-adapter.d.ts +2 -1
  625. package/dist/policy/opa-adapter.d.ts.map +1 -0
  626. package/dist/policy/opa-adapter.js +2 -1
  627. package/dist/policy/opa-adapter.js.map +1 -0
  628. package/dist/policy/spec.d.ts +2 -1
  629. package/dist/policy/spec.d.ts.map +1 -0
  630. package/dist/policy/spec.js +2 -1
  631. package/dist/policy/spec.js.map +1 -0
  632. package/dist/presentations/docs/presentations-conventions.docblock.d.ts +2 -1
  633. package/dist/presentations/docs/presentations-conventions.docblock.d.ts.map +1 -0
  634. package/dist/presentations/docs/presentations-conventions.docblock.js +2 -1
  635. package/dist/presentations/docs/presentations-conventions.docblock.js.map +1 -0
  636. package/dist/presentations.backcompat.d.ts +2 -1
  637. package/dist/presentations.backcompat.d.ts.map +1 -0
  638. package/dist/presentations.backcompat.js +2 -1
  639. package/dist/presentations.backcompat.js.map +1 -0
  640. package/dist/presentations.d.ts +5 -4
  641. package/dist/presentations.d.ts.map +1 -0
  642. package/dist/presentations.js +2 -1
  643. package/dist/presentations.js.map +1 -0
  644. package/dist/presentations.v2.d.ts +2 -1
  645. package/dist/presentations.v2.d.ts.map +1 -0
  646. package/dist/presentations.v2.js +2 -1
  647. package/dist/presentations.v2.js.map +1 -0
  648. package/dist/prompt.d.ts +2 -1
  649. package/dist/prompt.d.ts.map +1 -0
  650. package/dist/prompt.js +2 -1
  651. package/dist/prompt.js.map +1 -0
  652. package/dist/promptRegistry.d.ts +2 -1
  653. package/dist/promptRegistry.d.ts.map +1 -0
  654. package/dist/promptRegistry.js +2 -1
  655. package/dist/promptRegistry.js.map +1 -0
  656. package/dist/regenerator/adapters.d.ts +2 -1
  657. package/dist/regenerator/adapters.d.ts.map +1 -0
  658. package/dist/regenerator/docs/regenerator.docblock.d.ts +2 -1
  659. package/dist/regenerator/docs/regenerator.docblock.d.ts.map +1 -0
  660. package/dist/regenerator/docs/regenerator.docblock.js +2 -1
  661. package/dist/regenerator/docs/regenerator.docblock.js.map +1 -0
  662. package/dist/regenerator/executor.d.ts +2 -1
  663. package/dist/regenerator/executor.d.ts.map +1 -0
  664. package/dist/regenerator/executor.js +2 -1
  665. package/dist/regenerator/executor.js.map +1 -0
  666. package/dist/regenerator/service.d.ts +2 -1
  667. package/dist/regenerator/service.d.ts.map +1 -0
  668. package/dist/regenerator/service.js +2 -1
  669. package/dist/regenerator/service.js.map +1 -0
  670. package/dist/regenerator/sinks.d.ts +2 -1
  671. package/dist/regenerator/sinks.d.ts.map +1 -0
  672. package/dist/regenerator/sinks.js +2 -1
  673. package/dist/regenerator/sinks.js.map +1 -0
  674. package/dist/regenerator/types.d.ts +2 -1
  675. package/dist/regenerator/types.d.ts.map +1 -0
  676. package/dist/regenerator/utils.d.ts +2 -1
  677. package/dist/regenerator/utils.d.ts.map +1 -0
  678. package/dist/regenerator/utils.js +2 -1
  679. package/dist/regenerator/utils.js.map +1 -0
  680. package/dist/registry.d.ts +2 -1
  681. package/dist/registry.d.ts.map +1 -0
  682. package/dist/registry.js +2 -1
  683. package/dist/registry.js.map +1 -0
  684. package/dist/resources.d.ts +2 -1
  685. package/dist/resources.d.ts.map +1 -0
  686. package/dist/resources.js +2 -1
  687. package/dist/resources.js.map +1 -0
  688. package/dist/schema/dist/index.js +4684 -6
  689. package/dist/schema/dist/index.js.map +1 -0
  690. package/dist/schema-to-markdown.d.ts +2 -1
  691. package/dist/schema-to-markdown.d.ts.map +1 -0
  692. package/dist/schema-to-markdown.js +2 -1
  693. package/dist/schema-to-markdown.js.map +1 -0
  694. package/dist/server/graphql-pothos.d.ts +2 -1
  695. package/dist/server/graphql-pothos.d.ts.map +1 -0
  696. package/dist/server/graphql-pothos.js +2 -1
  697. package/dist/server/graphql-pothos.js.map +1 -0
  698. package/dist/server/mcp/createMcpServer.d.ts +2 -1
  699. package/dist/server/mcp/createMcpServer.d.ts.map +1 -0
  700. package/dist/server/mcp/createMcpServer.js +2 -1
  701. package/dist/server/mcp/createMcpServer.js.map +1 -0
  702. package/dist/server/mcp/mcpTypes.d.ts +2 -1
  703. package/dist/server/mcp/mcpTypes.d.ts.map +1 -0
  704. package/dist/server/mcp/registerPresentations.d.ts +2 -1
  705. package/dist/server/mcp/registerPresentations.d.ts.map +1 -0
  706. package/dist/server/mcp/registerPresentations.js +2 -1
  707. package/dist/server/mcp/registerPresentations.js.map +1 -0
  708. package/dist/server/mcp/registerPrompts.d.ts +2 -1
  709. package/dist/server/mcp/registerPrompts.d.ts.map +1 -0
  710. package/dist/server/mcp/registerPrompts.js +2 -1
  711. package/dist/server/mcp/registerPrompts.js.map +1 -0
  712. package/dist/server/mcp/registerResources.d.ts +2 -1
  713. package/dist/server/mcp/registerResources.d.ts.map +1 -0
  714. package/dist/server/mcp/registerResources.js +2 -1
  715. package/dist/server/mcp/registerResources.js.map +1 -0
  716. package/dist/server/mcp/registerTools.d.ts +2 -1
  717. package/dist/server/mcp/registerTools.d.ts.map +1 -0
  718. package/dist/server/mcp/registerTools.js +2 -1
  719. package/dist/server/mcp/registerTools.js.map +1 -0
  720. package/dist/server/rest-elysia.d.ts +2 -1
  721. package/dist/server/rest-elysia.d.ts.map +1 -0
  722. package/dist/server/rest-elysia.js +2 -1
  723. package/dist/server/rest-elysia.js.map +1 -0
  724. package/dist/server/rest-express.d.ts +2 -1
  725. package/dist/server/rest-express.d.ts.map +1 -0
  726. package/dist/server/rest-express.js +2 -1
  727. package/dist/server/rest-express.js.map +1 -0
  728. package/dist/server/rest-generic.d.ts +2 -1
  729. package/dist/server/rest-generic.d.ts.map +1 -0
  730. package/dist/server/rest-generic.js +2 -1
  731. package/dist/server/rest-generic.js.map +1 -0
  732. package/dist/server/rest-next-app.d.ts +2 -1
  733. package/dist/server/rest-next-app.d.ts.map +1 -0
  734. package/dist/server/rest-next-app.js +2 -1
  735. package/dist/server/rest-next-app.js.map +1 -0
  736. package/dist/server/rest-next-mcp.d.ts +2 -1
  737. package/dist/server/rest-next-mcp.d.ts.map +1 -0
  738. package/dist/server/rest-next-mcp.js +2 -1
  739. package/dist/server/rest-next-mcp.js.map +1 -0
  740. package/dist/server/rest-next-pages.d.ts +2 -1
  741. package/dist/server/rest-next-pages.d.ts.map +1 -0
  742. package/dist/server/rest-next-pages.js +2 -1
  743. package/dist/server/rest-next-pages.js.map +1 -0
  744. package/dist/spec.d.ts +2 -1
  745. package/dist/spec.d.ts.map +1 -0
  746. package/dist/spec.js +2 -1
  747. package/dist/spec.js.map +1 -0
  748. package/dist/telemetry/anomaly.d.ts +2 -1
  749. package/dist/telemetry/anomaly.d.ts.map +1 -0
  750. package/dist/telemetry/anomaly.js +2 -1
  751. package/dist/telemetry/anomaly.js.map +1 -0
  752. package/dist/telemetry/docs/telemetry.docblock.d.ts +2 -1
  753. package/dist/telemetry/docs/telemetry.docblock.d.ts.map +1 -0
  754. package/dist/telemetry/docs/telemetry.docblock.js +2 -1
  755. package/dist/telemetry/docs/telemetry.docblock.js.map +1 -0
  756. package/dist/telemetry/spec.d.ts +2 -1
  757. package/dist/telemetry/spec.d.ts.map +1 -0
  758. package/dist/telemetry/spec.js +2 -1
  759. package/dist/telemetry/spec.js.map +1 -0
  760. package/dist/telemetry/tracker.d.ts +2 -1
  761. package/dist/telemetry/tracker.d.ts.map +1 -0
  762. package/dist/telemetry/tracker.js +2 -1
  763. package/dist/telemetry/tracker.js.map +1 -0
  764. package/dist/tests/runner.d.ts +2 -1
  765. package/dist/tests/runner.d.ts.map +1 -0
  766. package/dist/tests/runner.js +2 -1
  767. package/dist/tests/runner.js.map +1 -0
  768. package/dist/tests/spec.d.ts +2 -1
  769. package/dist/tests/spec.d.ts.map +1 -0
  770. package/dist/tests/spec.js +2 -1
  771. package/dist/tests/spec.js.map +1 -0
  772. package/dist/themes.d.ts +2 -1
  773. package/dist/themes.d.ts.map +1 -0
  774. package/dist/themes.js +2 -1
  775. package/dist/themes.js.map +1 -0
  776. package/dist/translations/catalog.d.ts +2 -1
  777. package/dist/translations/catalog.d.ts.map +1 -0
  778. package/dist/translations/tenant.d.ts +2 -1
  779. package/dist/translations/tenant.d.ts.map +1 -0
  780. package/dist/types.d.ts +2 -1
  781. package/dist/types.d.ts.map +1 -0
  782. package/dist/workflow/adapters/db-adapter.d.ts +21 -8
  783. package/dist/workflow/adapters/db-adapter.d.ts.map +1 -0
  784. package/dist/workflow/adapters/db-adapter.js +5 -4
  785. package/dist/workflow/adapters/db-adapter.js.map +1 -0
  786. package/dist/workflow/adapters/file-adapter.d.ts +2 -1
  787. package/dist/workflow/adapters/file-adapter.d.ts.map +1 -0
  788. package/dist/workflow/adapters/file-adapter.js +2 -1
  789. package/dist/workflow/adapters/file-adapter.js.map +1 -0
  790. package/dist/workflow/adapters/memory-store.d.ts +2 -1
  791. package/dist/workflow/adapters/memory-store.d.ts.map +1 -0
  792. package/dist/workflow/adapters/memory-store.js +2 -1
  793. package/dist/workflow/adapters/memory-store.js.map +1 -0
  794. package/dist/workflow/expression.d.ts +2 -1
  795. package/dist/workflow/expression.d.ts.map +1 -0
  796. package/dist/workflow/expression.js +2 -1
  797. package/dist/workflow/expression.js.map +1 -0
  798. package/dist/workflow/runner.d.ts +2 -1
  799. package/dist/workflow/runner.d.ts.map +1 -0
  800. package/dist/workflow/runner.js +2 -1
  801. package/dist/workflow/runner.js.map +1 -0
  802. package/dist/workflow/sla-monitor.d.ts +2 -1
  803. package/dist/workflow/sla-monitor.d.ts.map +1 -0
  804. package/dist/workflow/sla-monitor.js +2 -1
  805. package/dist/workflow/sla-monitor.js.map +1 -0
  806. package/dist/workflow/spec.d.ts +2 -1
  807. package/dist/workflow/spec.d.ts.map +1 -0
  808. package/dist/workflow/spec.js +2 -1
  809. package/dist/workflow/spec.js.map +1 -0
  810. package/dist/workflow/state.d.ts +2 -1
  811. package/dist/workflow/state.d.ts.map +1 -0
  812. package/dist/workflow/validation.d.ts +2 -1
  813. package/dist/workflow/validation.d.ts.map +1 -0
  814. package/dist/workflow/validation.js +2 -1
  815. package/dist/workflow/validation.js.map +1 -0
  816. package/package.json +12 -17
  817. package/dist/docs/PUBLISHING.docblock.d.ts +0 -6
  818. package/dist/docs/PUBLISHING.docblock.js +0 -17
  819. package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.d.ts +0 -6
  820. package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -17
  821. package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.d.ts +0 -6
  822. package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -17
  823. package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.d.ts +0 -6
  824. package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -17
  825. package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.d.ts +0 -6
  826. package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -17
  827. package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.d.ts +0 -6
  828. package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -17
  829. package/dist/schema/dist/EnumType.js +0 -2
  830. package/dist/schema/dist/FieldType.js +0 -49
  831. package/dist/schema/dist/ScalarTypeEnum.js +0 -236
  832. package/dist/schema/dist/SchemaModel.js +0 -39
  833. package/dist/schema/dist/entity/defineEntity.js +0 -1
  834. package/dist/schema/dist/entity/index.js +0 -2
  835. package/dist/schema/dist/entity/types.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts-adapter-input.js","names":["acc: Record<string, unknown>","typeName"],"sources":["../src/contracts-adapter-input.ts"],"sourcesContent":["import type {\n AnyEnumType,\n AnyFieldType,\n AnySchemaModel,\n} from '@lssm/lib.schema';\nimport type { SchemaTypes } from '@pothos/core';\n\nexport function isSchemaModel(x: unknown): x is AnySchemaModel {\n return (\n typeof (x as AnySchemaModel | undefined)?.getPothosInput === 'function' &&\n typeof (x as AnySchemaModel | undefined)?.getZod === 'function'\n );\n}\n\ninterface PothosNamed {\n getPothos: () => { name: string };\n}\nfunction isFieldType(\n x: unknown\n): x is AnyFieldType | AnyEnumType | PothosNamed {\n return typeof (x as { getPothos?: unknown })?.getPothos === 'function';\n}\n\nfunction isEnumType(x: unknown): x is AnyEnumType {\n return (\n typeof (x as { getEnumValues?: unknown })?.getEnumValues === 'function' &&\n typeof (x as { getPothos?: unknown })?.getPothos === 'function'\n );\n}\n\nfunction mapScalarName(name: string): string {\n if (name === 'Boolean_unsecure') return 'Boolean';\n if (name === 'ID_unsecure') return 'ID';\n if (name === 'String_unsecure') return 'String';\n if (name === 'Int_unsecure') return 'Int';\n if (name === 'Float_unsecure') return 'Float';\n return name;\n}\n\nexport function createInputTypeBuilder<T extends SchemaTypes>(\n builder: PothosSchemaTypes.SchemaBuilder<T>\n) {\n const inputTypeCache = new Map<string, unknown>();\n const enumTypeCache = new Set<string>();\n\n function registerEnumsForModel(model: AnySchemaModel) {\n const entries = Object.entries(model.config.fields) as [\n string,\n {\n type:\n | AnySchemaModel['config']['fields'][string]['type']\n | AnySchemaModel;\n isOptional: boolean;\n isArray?: boolean;\n },\n ][];\n for (const [, field] of entries) {\n if (isSchemaModel(field.type as unknown)) {\n registerEnumsForModel(field.type as unknown as AnySchemaModel);\n } else if (isEnumType((field as { type: unknown }).type)) {\n const enumObj = field.type as unknown as AnyEnumType;\n const name =\n (enumObj as { getName?: () => string }).getName?.() ??\n enumObj.getPothos().name;\n if (!enumTypeCache.has(name)) {\n builder.enumType(name as any, {\n values: enumObj.getEnumValues() as any,\n });\n enumTypeCache.add(name);\n }\n }\n }\n }\n\n function ensureInputTypeForModel(model: AnySchemaModel) {\n const typeName = String(model.config?.name ?? 'Input');\n const cached = inputTypeCache.get(typeName) as unknown;\n if (cached) return cached;\n // Pre-register any enum types used within this model (including nested models)\n registerEnumsForModel(model);\n const created = builder.inputType(model.getPothosInput(), {\n fields: (t) => {\n const entries = Object.entries(model.config.fields) as [\n string,\n {\n type:\n | AnySchemaModel['config']['fields'][string]['type']\n | AnySchemaModel;\n isOptional: boolean;\n isArray?: boolean;\n },\n ][];\n const acc: Record<string, unknown> = {};\n for (const [key, field] of entries) {\n if (isSchemaModel(field.type as unknown)) {\n const nested = ensureInputTypeForModel(\n field.type as unknown as AnySchemaModel\n );\n const typeRef = field.isArray\n ? ([nested] as never)\n : (nested as never);\n acc[key] = t.field({\n type: typeRef,\n required: !field.isOptional,\n });\n } else if (isFieldType((field as { type: unknown }).type)) {\n const typeName = mapScalarName(\n String((field.type as PothosNamed).getPothos().name)\n );\n const typeRef = field.isArray\n ? ([typeName] as never)\n : (typeName as never);\n acc[key] = t.field({\n type: typeRef,\n required: !field.isOptional,\n });\n } else {\n const typeRef = field.isArray\n ? (['JSON'] as never)\n : ('JSON' as never);\n acc[key] = t.field({\n type: typeRef,\n required: !field.isOptional,\n });\n }\n }\n return acc as never;\n },\n });\n inputTypeCache.set(typeName, created);\n return created;\n }\n\n function buildInputFieldArgs(model: AnySchemaModel | null) {\n if (!model) return null;\n if (\n !model.config?.fields ||\n Object.keys(model.config.fields).length === 0\n ) {\n return null;\n }\n const ref = ensureInputTypeForModel(model);\n return ref as never;\n }\n\n return { buildInputFieldArgs };\n}\n"],"mappings":";AAOA,SAAgB,cAAc,GAAiC;AAC7D,QACE,OAAQ,GAAkC,mBAAmB,cAC7D,OAAQ,GAAkC,WAAW;;AAOzD,SAAS,YACP,GAC+C;AAC/C,QAAO,OAAQ,GAA+B,cAAc;;AAG9D,SAAS,WAAW,GAA8B;AAChD,QACE,OAAQ,GAAmC,kBAAkB,cAC7D,OAAQ,GAA+B,cAAc;;AAIzD,SAAS,cAAc,MAAsB;AAC3C,KAAI,SAAS,mBAAoB,QAAO;AACxC,KAAI,SAAS,cAAe,QAAO;AACnC,KAAI,SAAS,kBAAmB,QAAO;AACvC,KAAI,SAAS,eAAgB,QAAO;AACpC,KAAI,SAAS,iBAAkB,QAAO;AACtC,QAAO;;AAGT,SAAgB,uBACd,SACA;CACA,MAAM,iCAAiB,IAAI,KAAsB;CACjD,MAAM,gCAAgB,IAAI,KAAa;CAEvC,SAAS,sBAAsB,OAAuB;EACpD,MAAM,UAAU,OAAO,QAAQ,MAAM,OAAO,OAAO;AAUnD,OAAK,MAAM,GAAG,UAAU,QACtB,KAAI,cAAc,MAAM,KAAgB,CACtC,uBAAsB,MAAM,KAAkC;WACrD,WAAY,MAA4B,KAAK,EAAE;GACxD,MAAM,UAAU,MAAM;GACtB,MAAM,OACH,QAAuC,WAAW,IACnD,QAAQ,WAAW,CAAC;AACtB,OAAI,CAAC,cAAc,IAAI,KAAK,EAAE;AAC5B,YAAQ,SAAS,MAAa,EAC5B,QAAQ,QAAQ,eAAe,EAChC,CAAC;AACF,kBAAc,IAAI,KAAK;;;;CAM/B,SAAS,wBAAwB,OAAuB;EACtD,MAAM,WAAW,OAAO,MAAM,QAAQ,QAAQ,QAAQ;EACtD,MAAM,SAAS,eAAe,IAAI,SAAS;AAC3C,MAAI,OAAQ,QAAO;AAEnB,wBAAsB,MAAM;EAC5B,MAAM,UAAU,QAAQ,UAAU,MAAM,gBAAgB,EAAE,EACxD,SAAS,MAAM;GACb,MAAM,UAAU,OAAO,QAAQ,MAAM,OAAO,OAAO;GAUnD,MAAMA,MAA+B,EAAE;AACvC,QAAK,MAAM,CAAC,KAAK,UAAU,QACzB,KAAI,cAAc,MAAM,KAAgB,EAAE;IACxC,MAAM,SAAS,wBACb,MAAM,KACP;IACD,MAAM,UAAU,MAAM,UACjB,CAAC,OAAO,GACR;AACL,QAAI,OAAO,EAAE,MAAM;KACjB,MAAM;KACN,UAAU,CAAC,MAAM;KAClB,CAAC;cACO,YAAa,MAA4B,KAAK,EAAE;IACzD,MAAMC,aAAW,cACf,OAAQ,MAAM,KAAqB,WAAW,CAAC,KAAK,CACrD;IACD,MAAM,UAAU,MAAM,UACjB,CAACA,WAAS,GACVA;AACL,QAAI,OAAO,EAAE,MAAM;KACjB,MAAM;KACN,UAAU,CAAC,MAAM;KAClB,CAAC;UACG;IACL,MAAM,UAAU,MAAM,UACjB,CAAC,OAAO,GACR;AACL,QAAI,OAAO,EAAE,MAAM;KACjB,MAAM;KACN,UAAU,CAAC,MAAM;KAClB,CAAC;;AAGN,UAAO;KAEV,CAAC;AACF,iBAAe,IAAI,UAAU,QAAQ;AACrC,SAAO;;CAGT,SAAS,oBAAoB,OAA8B;AACzD,MAAI,CAAC,MAAO,QAAO;AACnB,MACE,CAAC,MAAM,QAAQ,UACf,OAAO,KAAK,MAAM,OAAO,OAAO,CAAC,WAAW,EAE5C,QAAO;AAGT,SADY,wBAAwB,MAAM;;AAI5C,QAAO,EAAE,qBAAqB"}
@@ -3,4 +3,5 @@ import { DocBlock } from "@lssm/lib.contracts/docs";
3
3
  //#region src/data-views/docs/data-views.docblock.d.ts
4
4
  declare const tech_contracts_data_views_DocBlocks: DocBlock[];
5
5
  //#endregion
6
- export { tech_contracts_data_views_DocBlocks };
6
+ export { tech_contracts_data_views_DocBlocks };
7
+ //# sourceMappingURL=data-views.docblock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-views.docblock.d.ts","names":[],"sources":["../../../src/data-views/docs/data-views.docblock.ts"],"sourcesContent":[],"mappings":";;;cAGa,qCAAqC"}
@@ -19,4 +19,5 @@ const tech_contracts_data_views_DocBlocks = [{
19
19
  registerDocBlocks(tech_contracts_data_views_DocBlocks);
20
20
 
21
21
  //#endregion
22
- export { tech_contracts_data_views_DocBlocks };
22
+ export { tech_contracts_data_views_DocBlocks };
23
+ //# sourceMappingURL=data-views.docblock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-views.docblock.js","names":["tech_contracts_data_views_DocBlocks: DocBlock[]"],"sources":["../../../src/data-views/docs/data-views.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@lssm/lib.contracts/docs';\nimport { registerDocBlocks } from '../../registry';\n\nexport const tech_contracts_data_views_DocBlocks: DocBlock[] = [\n {\n id: 'docs.tech.contracts.data-views',\n title: 'DataViewSpec Overview',\n summary:\n '`DataViewSpec` is the declarative contract for projecting entities into list/detail/table/grid experiences. Each spec ties to contract operations (`source.primary`, `source.item`) and describes how the UI should present, sort, and filter records. Host applications use the spec to render UI with shared components (`DataViewRenderer`, `DataViewList`, `DataViewTable`, `DataViewDetail`) while keeping presentation logic in a single source of truth.',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/tech/contracts/data-views',\n tags: ['tech', 'contracts', 'data-views'],\n body: \"# DataViewSpec Overview\\n\\n## Purpose\\n\\n`DataViewSpec` is the declarative contract for projecting entities into list/detail/table/grid experiences. Each spec ties to contract operations (`source.primary`, `source.item`) and describes how the UI should present, sort, and filter records. Host applications use the spec to render UI with shared components (`DataViewRenderer`, `DataViewList`, `DataViewTable`, `DataViewDetail`) while keeping presentation logic in a single source of truth.\\n\\n## Location\\n\\n- Type definitions and registry: `packages/libs/contracts/src/data-views.ts`\\n- React renderers: `packages/libs/design-system/src/components/data-view`\\n- CLI scaffolding: `contractspec create --type data-view`\\n\\n## Schema Highlights\\n\\n```ts\\nexport interface DataViewSpec {\\n meta: DataViewMeta; // ownership meta + { name, version, entity }\\n source: DataViewSource; // contract operations and refresh events\\n view: DataViewConfig; // union of list/detail/table/grid definitions\\n states?: DataViewStates; // optional empty/error/loading presentations\\n policy?: { flags?: string[]; pii?: string[] };\\n}\\n```\\n\\n- **DataViewMeta**: `name`, `version`, `entity`, ownership metadata (title, description, domain, owners, tags, stability).\\n- **DataViewSource**:\\n - `primary`: required query operation (`OpRef`) for fetching collections.\\n - `item`: optional detail query (recommended for `detail` views).\\n - `mutations`: optional create/update/delete operation refs.\\n - `refreshEvents`: events that should trigger refresh.\\n- **DataViewConfig** (union):\\n - `list`: card/compact list, `primaryField`, `secondaryFields`.\\n - `table`: column configuration (`columns`, alignments, density).\\n - `detail`: sections of fields for record inspection.\\n - `grid`: multi-column grid (rendered as card list today).\\n- **DataViewField**: `key`, `label`, `dataPath`, formatting hints (`format`), sort/filter toggles, optional presentation override.\\n- **DataViewFilter**: describes filter inputs (search, enum, number, date, boolean).\\n- **DataViewAction**: simple declarative actions (`navigation` or `operation`).\\n\\n## Registry Usage\\n\\n```ts\\nimport { DataViewRegistry } from '@lssm/lib.contracts/data-views';\\nimport { ResidentsDataView } from './data-views/residents.data-view';\\n\\nconst registry = new DataViewRegistry();\\nregistry.register(ResidentsDataView);\\n\\nconst listView = registry.get('residents.admin.list');\\n```\\n\\nRegistries guard against duplicate `(name, version)` pairs and make latest-version lookup trivial.\\n\\n## Rendering\\n\\n```tsx\\nimport { DataViewRenderer } from '@lssm/lib.design-system';\\nimport { ResidentsDataView } from '../contracts/data-views/residents.data-view';\\n\\nfunction ResidentsTable({ rows }: { rows: Record<string, unknown>[] }) {\\n return (\\n <DataViewRenderer\\n spec={ResidentsDataView}\\n items={rows}\\n onRowClick={(row) => console.log('Selected', row)}\\n />\\n );\\n}\\n```\\n\\nFor more control, use specific components:\\n\\n- `DataViewList` \\u2013 friendly cards/rows\\n- `DataViewTable` \\u2013 tabular presentation with optional header/footers\\n- `DataViewDetail` \\u2013 two-column grouped layout for record inspection\\n\\nRenderers rely on the field definitions (`dataPath`, `format`) to extract values and render them consistently.\\n\\n## CLI Scaffolding\\n\\n```bash\\n# Interactive wizard\\ncontractspec create --type data-view\\n\\n# Generates packages/.../data-views/<name>.data-view.ts\\n\\n# Optional renderer scaffold\\ncontractspec build path/to/<name>.data-view.ts\\n# \\u2192 produces <name>.renderer.tsx that wraps DataViewRenderer with sensible props\\n```\\n\\nWizard prompts:\\n- name (dot notation), version, entity\\n- kind (`list`, `table`, `detail`, `grid`)\\n- primary query operation (required) and optional item query\\n- fields (label, data path, format, sorting/filtering)\\n\\n## Authoring Guidelines\\n\\n1. **Separation of data & presentation**: keep fetching logic inside contract operations; DataViewSpec only references them via `source`.\\n2. **Versioning**: bump `meta.version` when field membership, ordering, or semantics change.\\n3. **Consistency**: reuse common field keys across modules to enable shared renderers and filters.\\n4. **States**: reference `PresentationRef` for empty/error/loader states to ensure consistent UX.\\n5. **Actions**: prefer referencing contract operations instead of embedding business logic in the UI.\\n\\n## Roadmap\\n\\n- Derived filters from `fields.filterable` (auto-generated UI).\\n- Table density presets per platform.\\n- Bridge to PolicySpec for field-level visibility (Phase 2 policy expansion).\\n- Automated docs/LLM sync via CLI.\\n\\n\",\n },\n];\nregisterDocBlocks(tech_contracts_data_views_DocBlocks);\n"],"mappings":";;;;AAGA,MAAaA,sCAAkD,CAC7D;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAQ;EAAa;EAAa;CACzC,MAAM;CACP,CACF;AACD,kBAAkB,oCAAoC"}
@@ -36,4 +36,5 @@ declare class DataViewQueryGenerator {
36
36
  validateParams(params: DataViewQueryParams): string[];
37
37
  }
38
38
  //#endregion
39
- export { DataViewQuery, DataViewQueryGenerator, DataViewQueryParams };
39
+ export { DataViewQuery, DataViewQueryGenerator, DataViewQueryParams };
40
+ //# sourceMappingURL=query-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-generator.d.ts","names":[],"sources":["../../src/data-views/query-generator.ts"],"sourcesContent":[],"mappings":";;;UAEiB,mBAAA;YACL;EADK,IAAA,CAAA,EAAA;IAOA,KAAA,EAAA,MAAa;IASjB,SAAA,EAAA,KAAA,GAAA,MAAsB;EACP,CAAA;EAET,UAAA,CAAA,EAAA;IAAsB,IAAA,EAAA,MAAA;IAiChB,QAAA,EAAA,MAAA;EAAmB,CAAA;;;UA7C3B,aAAA;;SAER;;;;;;;;;;;;;;cAOI,sBAAA;;oBACe;mBAET,sBAAsB;yBAiChB"}
@@ -45,4 +45,5 @@ var DataViewQueryGenerator = class {
45
45
  };
46
46
 
47
47
  //#endregion
48
- export { DataViewQueryGenerator };
48
+ export { DataViewQueryGenerator };
49
+ //# sourceMappingURL=query-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-generator.js","names":["spec: DataViewSpec","input: Record<string, any>","errors: string[]"],"sources":["../../src/data-views/query-generator.ts"],"sourcesContent":["import type { DataViewSpec } from '../data-views';\n\nexport interface DataViewQueryParams {\n filters?: Record<string, any>;\n sort?: { field: string; direction: 'asc' | 'desc' };\n pagination?: { page: number; pageSize: number };\n search?: string;\n}\n\nexport interface DataViewQuery {\n operationName: string;\n input: Record<string, any>;\n meta: {\n pagination: { page: number; pageSize: number; skip: number; take: number };\n sorting?: { field: string; direction: 'asc' | 'desc' };\n };\n}\n\nexport class DataViewQueryGenerator {\n constructor(private spec: DataViewSpec) {}\n\n generate(params: DataViewQueryParams): DataViewQuery {\n const { primary } = this.spec.source;\n const page = params.pagination?.page ?? 1;\n const pageSize = params.pagination?.pageSize ?? 20;\n const skip = (page - 1) * pageSize;\n const take = pageSize;\n\n const input: Record<string, any> = {\n skip,\n take,\n ...params.filters,\n };\n\n if (params.search) {\n input.search = params.search;\n }\n\n if (params.sort) {\n input.orderBy = {\n [params.sort.field]: params.sort.direction,\n };\n }\n\n return {\n operationName: primary.name,\n input,\n meta: {\n pagination: { page, pageSize, skip, take },\n sorting: params.sort,\n },\n };\n }\n\n validateParams(params: DataViewQueryParams): string[] {\n const errors: string[] = [];\n\n // Validate filters against spec\n if (params.filters && this.spec.view.filters) {\n for (const key of Object.keys(params.filters)) {\n const defined = this.spec.view.filters.find((f) => f.key === key);\n if (!defined) {\n errors.push(`Unknown filter key: ${key}`);\n }\n }\n }\n\n // Validate sort field\n if (params.sort) {\n const field = this.spec.view.fields.find(\n (f) => f.key === params.sort!.field\n );\n if (!field) {\n errors.push(`Unknown sort field: ${params.sort.field}`);\n } else if (field.sortable === false) {\n errors.push(`Field is not sortable: ${params.sort.field}`);\n }\n }\n\n return errors;\n }\n}\n"],"mappings":";AAkBA,IAAa,yBAAb,MAAoC;CAClC,YAAY,AAAQA,MAAoB;EAApB;;CAEpB,SAAS,QAA4C;EACnD,MAAM,EAAE,YAAY,KAAK,KAAK;EAC9B,MAAM,OAAO,OAAO,YAAY,QAAQ;EACxC,MAAM,WAAW,OAAO,YAAY,YAAY;EAChD,MAAM,QAAQ,OAAO,KAAK;EAC1B,MAAM,OAAO;EAEb,MAAMC,QAA6B;GACjC;GACA;GACA,GAAG,OAAO;GACX;AAED,MAAI,OAAO,OACT,OAAM,SAAS,OAAO;AAGxB,MAAI,OAAO,KACT,OAAM,UAAU,GACb,OAAO,KAAK,QAAQ,OAAO,KAAK,WAClC;AAGH,SAAO;GACL,eAAe,QAAQ;GACvB;GACA,MAAM;IACJ,YAAY;KAAE;KAAM;KAAU;KAAM;KAAM;IAC1C,SAAS,OAAO;IACjB;GACF;;CAGH,eAAe,QAAuC;EACpD,MAAMC,SAAmB,EAAE;AAG3B,MAAI,OAAO,WAAW,KAAK,KAAK,KAAK,SACnC;QAAK,MAAM,OAAO,OAAO,KAAK,OAAO,QAAQ,CAE3C,KAAI,CADY,KAAK,KAAK,KAAK,QAAQ,MAAM,MAAM,EAAE,QAAQ,IAAI,CAE/D,QAAO,KAAK,uBAAuB,MAAM;;AAM/C,MAAI,OAAO,MAAM;GACf,MAAM,QAAQ,KAAK,KAAK,KAAK,OAAO,MACjC,MAAM,EAAE,QAAQ,OAAO,KAAM,MAC/B;AACD,OAAI,CAAC,MACH,QAAO,KAAK,uBAAuB,OAAO,KAAK,QAAQ;YAC9C,MAAM,aAAa,MAC5B,QAAO,KAAK,0BAA0B,OAAO,KAAK,QAAQ;;AAI9D,SAAO"}
@@ -23,4 +23,5 @@ declare class DataViewRuntime {
23
23
  private notifySubscribers;
24
24
  }
25
25
  //#endregion
26
- export { DataViewResult, DataViewRuntime, DataViewRuntimeConfig };
26
+ export { DataViewResult, DataViewRuntime, DataViewRuntimeConfig };
27
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","names":[],"sources":["../../src/data-views/runtime.ts"],"sourcesContent":[],"mappings":";;;UAEiB,qBAAA;YACL;AADZ;AAKiB,UAAA,cAAc,CAAA,IACvB,GAGE,CAAA,CAAA;EAGG,IAAA,EANL,CAMK,EAAA;EAIiB,KAAA,EAAA,MAAA;EAEb,OAAA,EAAA,OAAA;EAIuB,KAAA,CAAA,EAb9B,KAa8B;;AAMa,cAhBxC,eAAA,CAgBwC;EAAO,QAAA,MAAA;;;sBAZ9B;iBAEb;2CAIuB;+CAMa,QAAQ"}
@@ -36,4 +36,5 @@ var DataViewRuntime = class {
36
36
  };
37
37
 
38
38
  //#endregion
39
- export { DataViewRuntime };
39
+ export { DataViewRuntime };
40
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","names":["config: DataViewRuntimeConfig"],"sources":["../../src/data-views/runtime.ts"],"sourcesContent":["import { DataViewRegistry, type DataViewSpec } from '../data-views';\n\nexport interface DataViewRuntimeConfig {\n registry: DataViewRegistry;\n // eventBus?: EventBus; // To be integrated with actual bus implementation\n}\n\nexport interface DataViewResult<T = any> {\n data: T[];\n total: number;\n loading: boolean;\n error?: Error;\n}\n\nexport class DataViewRuntime {\n private cache = new Map<string, { data: any[]; timestamp: number }>();\n private subscriptions = new Map<string, Set<() => void>>();\n\n constructor(private config: DataViewRuntimeConfig) {}\n\n register(spec: DataViewSpec) {\n this.config.registry.register(spec);\n }\n\n getSpec(name: string, version?: number) {\n return this.config.registry.get(name, version);\n }\n\n // Simulating query execution for now as we don't have a full backend context here\n // In a real app, this would call the backend API via an adapter\n async executeQuery(specName: string, params: any): Promise<DataViewResult> {\n const spec = this.getSpec(specName);\n if (!spec) {\n throw new Error(`DataView spec not found: ${specName}`);\n }\n\n // TODO: Implement actual data fetching via Operation runtime\n // For now, return empty or cached data\n\n return {\n data: [],\n total: 0,\n loading: false,\n };\n }\n\n invalidate(specName: string) {\n this.cache.delete(specName);\n this.notifySubscribers(specName);\n }\n\n subscribe(specName: string, callback: () => void) {\n if (!this.subscriptions.has(specName)) {\n this.subscriptions.set(specName, new Set());\n }\n this.subscriptions.get(specName)!.add(callback);\n return () => {\n this.subscriptions.get(specName)?.delete(callback);\n };\n }\n\n private notifySubscribers(specName: string) {\n this.subscriptions.get(specName)?.forEach((cb) => cb());\n }\n}\n"],"mappings":";AAcA,IAAa,kBAAb,MAA6B;CAC3B,AAAQ,wBAAQ,IAAI,KAAiD;CACrE,AAAQ,gCAAgB,IAAI,KAA8B;CAE1D,YAAY,AAAQA,QAA+B;EAA/B;;CAEpB,SAAS,MAAoB;AAC3B,OAAK,OAAO,SAAS,SAAS,KAAK;;CAGrC,QAAQ,MAAc,SAAkB;AACtC,SAAO,KAAK,OAAO,SAAS,IAAI,MAAM,QAAQ;;CAKhD,MAAM,aAAa,UAAkB,QAAsC;AAEzE,MAAI,CADS,KAAK,QAAQ,SAAS,CAEjC,OAAM,IAAI,MAAM,4BAA4B,WAAW;AAMzD,SAAO;GACL,MAAM,EAAE;GACR,OAAO;GACP,SAAS;GACV;;CAGH,WAAW,UAAkB;AAC3B,OAAK,MAAM,OAAO,SAAS;AAC3B,OAAK,kBAAkB,SAAS;;CAGlC,UAAU,UAAkB,UAAsB;AAChD,MAAI,CAAC,KAAK,cAAc,IAAI,SAAS,CACnC,MAAK,cAAc,IAAI,0BAAU,IAAI,KAAK,CAAC;AAE7C,OAAK,cAAc,IAAI,SAAS,CAAE,IAAI,SAAS;AAC/C,eAAa;AACX,QAAK,cAAc,IAAI,SAAS,EAAE,OAAO,SAAS;;;CAItD,AAAQ,kBAAkB,UAAkB;AAC1C,OAAK,cAAc,IAAI,SAAS,EAAE,SAAS,OAAO,IAAI,CAAC"}
@@ -128,4 +128,5 @@ declare class DataViewRegistry {
128
128
  }
129
129
  declare function dataViewKey(spec: DataViewSpec): string;
130
130
  //#endregion
131
- export { DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, dataViewKey };
131
+ export { DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, dataViewKey };
132
+ //# sourceMappingURL=data-views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-views.d.ts","names":[],"sources":["../src/data-views.ts"],"sourcesContent":[],"mappings":";;;;;KAIY,YAAA;UAEK,YAAA,SAAqB;EAF1B;EAEK,IAAA,EAAA,MAAA;EASA;EAEN,OAAA,EAAA,MAAA;EAEF;EAGI,MAAA,EAAA,MAAA;;AAEA,UATI,cAAA,CASJ;EAGK;EAAQ,OAAA,EAVf,KAUe;EAGd;EAUK,IAAA,CAAA,EArBR,KAqBQ;EAqBA;EAQA,SAAA,CAAA,EAAA;IAUA,MAAA,CAAA,EAzDJ,KAyDI;IAMA,MAAA,CAAA,EA9DJ,KA8DI;IACT,MAAA,CAAA,EA9DK,KA8DL;EACE,CAAA;EAGE;EACA,aAAA,CAAA,EAhEM,QAgEN,EAAA;;AAGK,KAhEL,mBAAA,GAgEwB,MAAQ,GAAA,QAAA,GAAA,UAAkB,GAAA,YAAA,GAAA,MAAA,GAAA,UAAA,GAAA,SAAA,GAAA,OAAA;AAK7C,UA3DA,aAAA,CA2DqB;EAKrB;EAOA,GAAA,EAAA,MAAA;EAOA;EAKL,KAAA,EAAA,MAAA;EACR;EACA,QAAA,EAAA,MAAA;EACA;EACA,WAAA,CAAA,EAAA,MAAA;EAAkB;EAEL,MAAA,CAAA,EA/EN,mBA+EoB;EACrB;EACA,QAAA,CAAA,EAAA,OAAA;EACE;EAAe,UAAA,CAAA,EAAA,OAAA;EAGV;EACT,KAAA,CAAA,EAAA,MAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA;EACE;EACF,YAAA,CAAA,EAhFS,eAgFT;;AAGQ,UAhFC,cAAA,CAgFD;EAAa,GAAA,EAAA,MAAA;EAOhB,KAAA,EAAA,MAAA;EAGI,KAAA,EAAA,MAAA;EAOP,IAAA,EAAA,QAAA,GAAA,MAAA,GAAA,QAAA,GAAA,MAAA,GAAA,SAAA;EAI6B,OAAA,CAAA,EAAA;IAAY,KAAA,EAAA,MAAA;IAenC,KAAA,EAAA,MAAW;;;UA5GV,cAAA;;;;;cAKH;;;;UAKG,gBAAA;;;;;UAMA,kBAAA;QACT;UACE;;;YAGE;YACA;;UAGK,kBAAA,SAA2B;;;;UAK3B,oBAAA,SAA6B;;aAEjC;;UAGI,mBAAA;;;;;;UAOA,mBAAA,SAA4B;;YAEjC;;;;UAKK,kBAAA,SAA2B;;;;KAKhC,cAAA,GACR,qBACA,uBACA,sBACA;UAEa,cAAA;UACP;UACA;YACE;;UAGK,YAAA;QACT;UACE;QACF;WACG;;;;;gBAEK;;cAOH,gBAAA;;iBAGI;UAOP;uCAI6B;;iBAevB,WAAA,OAAkB"}
@@ -32,4 +32,5 @@ function dataViewKey(spec) {
32
32
  }
33
33
 
34
34
  //#endregion
35
- export { DataViewRegistry, dataViewKey };
35
+ export { DataViewRegistry, dataViewKey };
36
+ //# sourceMappingURL=data-views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-views.js","names":["candidate: DataViewSpec | undefined"],"sources":["../src/data-views.ts"],"sourcesContent":["import type { OwnerShipMeta } from './ownership';\nimport type { OpRef, EventRef, PresentationRef } from './features';\nimport type { ExperimentRef } from './experiments/spec';\n\nexport type DataViewKind = 'list' | 'detail' | 'table' | 'grid';\n\nexport interface DataViewMeta extends OwnerShipMeta {\n /** Fully-qualified data view name (e.g., \"sigil.spaces.admin_list\"). */\n name: string;\n /** Version of this data view. Increment on breaking changes. */\n version: number;\n /** Canonical entity slug (e.g., \"space\", \"resident\"). */\n entity: string;\n}\n\nexport interface DataViewSource {\n /** Primary query used to fetch items for this view. */\n primary: OpRef;\n /** Optional operation used to fetch a single item (detail views). */\n item?: OpRef;\n /** Optional record mutation operations (used for inline editing or actions). */\n mutations?: {\n create?: OpRef;\n update?: OpRef;\n delete?: OpRef;\n };\n /** Events that should trigger refresh when emitted. */\n refreshEvents?: EventRef[];\n}\n\nexport type DataViewFieldFormat =\n | 'text'\n | 'number'\n | 'currency'\n | 'percentage'\n | 'date'\n | 'dateTime'\n | 'boolean'\n | 'badge';\n\nexport interface DataViewField {\n /** Unique identifier for the field within the view. */\n key: string;\n /** Human-friendly label for headers/tooltips. */\n label: string;\n /** Dot-path into the data item (e.g., \"address.city\"). */\n dataPath: string;\n /** Optional description surfaced in tooltips or docs. */\n description?: string;\n /** Optional formatting hint for renderers. */\n format?: DataViewFieldFormat;\n /** When true, the field can be used for sorting. */\n sortable?: boolean;\n /** When true, the field can be used for filtering. */\n filterable?: boolean;\n /** Optional width hint for table layouts. */\n width?: 'auto' | 'xs' | 'sm' | 'md' | 'lg';\n /** Optional presentation override (e.g., card component). */\n presentation?: PresentationRef;\n}\n\nexport interface DataViewFilter {\n key: string;\n label: string;\n field: string;\n type: 'search' | 'enum' | 'number' | 'date' | 'boolean';\n options?: { value: string; label: string }[];\n}\n\nexport interface DataViewAction {\n key: string;\n label: string;\n kind: 'navigation' | 'operation';\n /** Operation invoked when kind === 'operation'. */\n operation?: OpRef;\n /** Optional feature flag gating the action. */\n requiresFlag?: string;\n}\n\nexport interface DataViewSections {\n title?: string;\n description?: string;\n fields: string[];\n}\n\nexport interface DataViewBaseConfig {\n kind: DataViewKind;\n fields: DataViewField[];\n primaryField?: string;\n secondaryFields?: string[];\n filters?: DataViewFilter[];\n actions?: DataViewAction[];\n}\n\nexport interface DataViewListConfig extends DataViewBaseConfig {\n kind: 'list';\n layout?: 'card' | 'compact';\n}\n\nexport interface DataViewDetailConfig extends DataViewBaseConfig {\n kind: 'detail';\n sections?: DataViewSections[];\n}\n\nexport interface DataViewTableColumn {\n field: string;\n label?: string;\n width?: 'auto' | 'xs' | 'sm' | 'md' | 'lg';\n align?: 'left' | 'center' | 'right';\n}\n\nexport interface DataViewTableConfig extends DataViewBaseConfig {\n kind: 'table';\n columns?: DataViewTableColumn[];\n rowSelectable?: boolean;\n density?: 'comfortable' | 'compact';\n}\n\nexport interface DataViewGridConfig extends DataViewBaseConfig {\n kind: 'grid';\n columns?: number;\n}\n\nexport type DataViewConfig =\n | DataViewListConfig\n | DataViewDetailConfig\n | DataViewTableConfig\n | DataViewGridConfig;\n\nexport interface DataViewStates {\n empty?: PresentationRef;\n error?: PresentationRef;\n loading?: PresentationRef;\n}\n\nexport interface DataViewSpec {\n meta: DataViewMeta;\n source: DataViewSource;\n view: DataViewConfig;\n states?: DataViewStates;\n policy?: { flags?: string[]; pii?: string[] };\n experiments?: ExperimentRef[];\n}\n\nfunction keyOf(spec: DataViewSpec) {\n return `${spec.meta.name}.v${spec.meta.version}`;\n}\n\nexport class DataViewRegistry {\n private readonly items = new Map<string, DataViewSpec>();\n\n register(spec: DataViewSpec): this {\n const key = keyOf(spec);\n if (this.items.has(key)) throw new Error(`Duplicate data view ${key}`);\n this.items.set(key, spec);\n return this;\n }\n\n list(): DataViewSpec[] {\n return [...this.items.values()];\n }\n\n get(name: string, version?: number): DataViewSpec | undefined {\n if (version != null) return this.items.get(`${name}.v${version}`);\n let candidate: DataViewSpec | undefined;\n let max = -Infinity;\n for (const spec of this.items.values()) {\n if (spec.meta.name !== name) continue;\n if (spec.meta.version > max) {\n max = spec.meta.version;\n candidate = spec;\n }\n }\n return candidate;\n }\n}\n\nexport function dataViewKey(spec: DataViewSpec) {\n return keyOf(spec);\n}\n"],"mappings":";AAgJA,SAAS,MAAM,MAAoB;AACjC,QAAO,GAAG,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK;;AAGzC,IAAa,mBAAb,MAA8B;CAC5B,AAAiB,wBAAQ,IAAI,KAA2B;CAExD,SAAS,MAA0B;EACjC,MAAM,MAAM,MAAM,KAAK;AACvB,MAAI,KAAK,MAAM,IAAI,IAAI,CAAE,OAAM,IAAI,MAAM,uBAAuB,MAAM;AACtE,OAAK,MAAM,IAAI,KAAK,KAAK;AACzB,SAAO;;CAGT,OAAuB;AACrB,SAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC;;CAGjC,IAAI,MAAc,SAA4C;AAC5D,MAAI,WAAW,KAAM,QAAO,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,UAAU;EACjE,IAAIA;EACJ,IAAI,MAAM;AACV,OAAK,MAAM,QAAQ,KAAK,MAAM,QAAQ,EAAE;AACtC,OAAI,KAAK,KAAK,SAAS,KAAM;AAC7B,OAAI,KAAK,KAAK,UAAU,KAAK;AAC3B,UAAM,KAAK,KAAK;AAChB,gBAAY;;;AAGhB,SAAO;;;AAIX,SAAgB,YAAY,MAAoB;AAC9C,QAAO,MAAM,KAAK"}
@@ -3,4 +3,5 @@ import { DocBlock } from "@lssm/lib.contracts/docs";
3
3
  //#region src/docs/accessibility_wcag_compliance_specs.docblock.d.ts
4
4
  declare const accessibility_wcag_compliance_specs_DocBlocks: DocBlock[];
5
5
  //#endregion
6
- export { accessibility_wcag_compliance_specs_DocBlocks };
6
+ export { accessibility_wcag_compliance_specs_DocBlocks };
7
+ //# sourceMappingURL=accessibility_wcag_compliance_specs.docblock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility_wcag_compliance_specs.docblock.d.ts","names":[],"sources":["../../src/docs/accessibility_wcag_compliance_specs.docblock.ts"],"sourcesContent":[],"mappings":";;;cAGa,+CAA+C"}
@@ -14,4 +14,5 @@ const accessibility_wcag_compliance_specs_DocBlocks = [{
14
14
  registerDocBlocks(accessibility_wcag_compliance_specs_DocBlocks);
15
15
 
16
16
  //#endregion
17
- export { accessibility_wcag_compliance_specs_DocBlocks };
17
+ export { accessibility_wcag_compliance_specs_DocBlocks };
18
+ //# sourceMappingURL=accessibility_wcag_compliance_specs.docblock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility_wcag_compliance_specs.docblock.js","names":["accessibility_wcag_compliance_specs_DocBlocks: DocBlock[]"],"sources":["../../src/docs/accessibility_wcag_compliance_specs.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@lssm/lib.contracts/docs';\nimport { registerDocBlocks } from './registry';\n\nexport const accessibility_wcag_compliance_specs_DocBlocks: DocBlock[] = [\n {\n id: 'docs.accessibility_wcag_compliance_specs',\n title: 'Accessibility & WCAG Compliance \\u2014 **specs.md**',\n summary:\n '> **Goal:** Ship interfaces that are usable by everyone, by default. This spec sets non\\u2011negotiable rules, checklists, and CI gates to meet **WCAG\\u00a02.2 AA** (aim for AAA where low\\u2011cost), align with **EN\\u00a0301\\u00a0549** (EU), and keep parity on **web (Next.js)** and **mobile (Expo/React\\u00a0Native)**.',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/accessibility_wcag_compliance_specs',\n tags: ['accessibility_wcag_compliance_specs'],\n body: '# Accessibility & WCAG Compliance \\u2014 **specs.md**\\n\\n> **Goal:** Ship interfaces that are usable by everyone, by default. This spec sets non\\u2011negotiable rules, checklists, and CI gates to meet **WCAG\\u00a02.2 AA** (aim for AAA where low\\u2011cost), align with **EN\\u00a0301\\u00a0549** (EU), and keep parity on **web (Next.js)** and **mobile (Expo/React\\u00a0Native)**.\\n\\n---\\n\\n## 0) Scope & Principles\\n\\n- **Standards:** WCAG\\u00a02.2\\u00a0AA (incl. new 2.2 SCs: Focus Not Obscured, Focus Appearance, Target Size, Dragging Movements, Accessible Authentication, Redundant Entry). EN\\u00a0301\\u00a0549 compliance by conformance to WCAG.\\n- **Principles:** Perceivable, Operable, Understandable, Robust (POUR).\\n- **Rule of ARIA:** \\u201cNo ARIA is better than bad ARIA.\\u201d Prefer native elements.\\n- **Definition of Done (DoD):** No Critical/Major a11y issues in CI; keyboard complete; SR (screen reader) smoke test passed; contrasts pass; acceptance criteria below satisfied.\\n- **Repo Alignment:** Web apps use **Radix Primitives + shadcn** wrappers centralized in `packages/lssm/libs/ui-kit-web`. Prefer those components over per\\u2011app duplicates (`packages/*/apps/*/src/components/ui`). When missing, add to `ui-kit-web` first, then adopt app\\u2011side.\\n\\n---\\n\\n## 1) Design Requirements (Design System & Tokens)\\n\\n**1.1 Color & Contrast**\\n\\n- Body text, icons essential to meaning: **\\u2265\\u00a04.5:1**; large text (\\u2265\\u00a018.66px regular / 14px bold): **\\u2265\\u00a03:1**.\\n- Interactive states (default/hover/active/disabled/focus) must maintain contrast **\\u2265\\u00a03:1** against adjacent colors; text within components follows text ratios.\\n- Provide light & dark themes with tokens that guarantee minimums. **Never rely solely on color** to convey meaning; pair with text, shape, or icon.\\n\\n**1.2 Focus Indicators (WCAG\\u00a02.4.11/12)**\\n\\n- Every interactive element has a **visible focus** with clear offset; indicator contrast **\\u2265\\u00a03:1** vs adjacent colors and indicator **area \\u2265\\u00a02\\u00a0CSS\\u00a0px** thick.\\n- Focus **must not be obscured** by sticky headers/footers or scroll containers.\\n\\n**1.3 Motion & Preferences**\\n\\n- Respect `prefers-reduced-motion`: suppress large parallax, auto\\u2011animations; provide instant alternatives.\\n- Avoid motion that could trigger vestibular issues; under PRM, use fade/scale under **150ms**.\\n\\n**1.4 Target Size (2.5.8)**\\n\\n- Hit areas **\\u2265\\u00a024\\u00d724\\u00a0CSS\\u00a0px** (web) and **\\u2265\\u00a044\\u00d744\\u00a0dp** (mobile) unless exempt.\\n\\n**1.5 Typography & Layout**\\n\\n- Support zoom to **400%** without loss of content/functionality; responsive reflow at **320\\u00a0CSS\\u00a0px** width.\\n- Maintain clear heading hierarchy (h1\\u2026h6), one **h1** per view.\\n\\n- Repository baseline (Web): default body text uses Tailwind `text-lg` (\\u224818px). As of 2025\\u201109\\u201120, the repository bumped all Tailwind typography scale usages by +1 step (e.g., `text-sm`\\u2192`text-base`, `text-base`\\u2192`text-lg`, \\u2026, `text-8xl`\\u2192`text-9xl`). For long\\u2011form content, default to `prose-lg`.\\n- Do not use `text-xs` for body copy. Reserve `text-sm` only for non\\u2011essential meta (timestamps, fine print) while ensuring contrast and touch targets remain compliant.\\n- When increasing font size, ensure line height supports readability. Prefer Tailwind defaults or `leading-relaxed`/`leading-7` for body text where dense blocks appear.\\n\\n**1.6 Iconography & Imagery**\\n\\n- Decorative images: `alt=\"\"` or `aria-hidden=\"true\"`.\\n- Informative images: concise, specific **alt**; complex charts require a **data table or long description**.\\n\\n---\\n\\n## 2) Content Requirements (UX Writing)\\n\\n- Links say **what happens** (avoid \\u201cclick here\\u201d).\\n- Buttons start with verbs; avoid ambiguous labels.\\n- Form labels are **visible**; placeholders are **not labels**.\\n- Error messages: human + programmatic association; avoid color\\u2011only.\\n- Authentication: allow **copy/paste**, password managers, and avoid cognitive tests alone (**3.3.7/3.3.8/3.3.9**).\\n- Avoid CAPTCHAs that block users; if unavoidable, provide **multiple alternatives** (logic-free).\\n\\n---\\n\\n## 3) Engineering Requirements (Web \\u2014 Next.js/React)\\n\\n> Use and extend `packages/lssm/libs/ui-kit-web` as the default UI surface. It wraps **Radix** primitives with sensible a11y defaults (focus rings, roles, keyboard, ARIA binding). When a gap exists, add it to `ui-kit-web` first.\\n\\n**3.1 Semantics & Landmarks**\\n\\n- Use native elements: `<button>`, `<a href>`, `<label for>`, `<fieldset>`, `<legend>`, `<table>`, etc.\\n- Landmarks per page: `header`, `nav`, `main`, `aside`, `footer`. Provide a **Skip to main content** link.\\n- Provide a **Route Announcer** (`aria-live=\"polite\"`) and move focus to page **h1** after navigation.\\n\\n**3.2 Keyboard**\\n\\n- All functionality available with keyboard alone. Tab order follows DOM/visual order; **no keyboard traps**.\\n- Common bindings:\\n - Space/Enter \\u2192 activate button; Enter on link;\\n - Esc closes dialogs/menus;\\n - Arrow keys for lists/menus/tablists with **roving tabindex**.\\n\\n**3.3 Focus Management**\\n\\n- On route change (Next.js), move focus to the page `<h1>` or container and announce via a live region.\\n- Dialogs/menus: **trap focus** inside; return focus to invoking control on close.\\n- Don\\u2019t steal focus except after explicit user action.\\n\\n**3.4 Forms**\\n\\n- Each input has a `<label>` or `aria-label`. Group related inputs with `<fieldset><legend>`.\\n- Associate errors via `aria-describedby` or inline IDs; announce with `role=\"alert\"` (assertive only for critical).\\n- Provide **autocomplete** tokens for known fields; show **inline validation** and do not block on **onBlur** alone.\\n\\n**3.5 ARIA Usage**\\n\\n- Only when needed; match patterns (dialog, menu, combobox, tablist, listbox) per ARIA Authoring Practices.\\n- Ensure **name/role/value** are programmatically determinable.\\n\\n**3.6 Media**\\n\\n- Videos: **captions**; provide **transcripts** for audio; audio descriptions for essential visual info.\\n- No auto\\u2011playing audio. Auto\\u2011playing video must be muted and pausable; provide controls.\\n\\n**3.7 Tables & Data**\\n\\n- Use `<th scope>` for headers; captions via `<caption>`; announce sorting via `aria-sort`.\\n- Provide CSV/JSON export where charts are primary.\\n\\n**3.8 Performance & Robustness**\\n\\n- Avoid content shifts that move focus; reserve space or use skeletons.\\n- Maintain accessible names through hydration/SSR; avoid `dangerouslySetInnerHTML` where possible.\\n\\n**3.9 Next.js specifics**\\n\\n- Use `next/link` for navigation; ensure links are **links**, not buttons.\\n- `next/image` must include **alt** (empty if decorative).\\n- Announce route changes with a **global live region** and shift focus to the new view.\\n\\n**3.10 Accessibility library integration**\\n\\n- Import `@lssm/lib.accessibility` at app root. It auto-imports its `styles.css` via the package entry; ensure bundlers keep CSS side effects. If your app tree-shakes CSS, explicitly import the stylesheet once in your root layout:\\n\\n```tsx\\n// app/layout.tsx\\nimport \\'@lssm/lib.accessibility\\'; // includes tokens and provider exports\\n// or if needed: import \\'@lssm/lib.accessibility/src/styles.css\\';\\n```\\n\\n- Wrap the app with `AccessibilityProvider` and include an element with `id=\"main\"` for the skip link target.\\n\\n---\\n\\n## 3b) lssm/ui-kit-web \\u2014 Component Patterns & Defaults\\n\\n> Source: `packages/lssm/libs/ui-kit-web/ui/*`\\n\\n- **Button/Input/Textarea**: Built\\u2011in `focus-visible` rings; ensure visible labels via `FormLabel` or `aria-label`.\\n- **Form** (`form.tsx`): `FormControl` wires `aria-invalid` and `aria-describedby` to `FormMessage` and `FormDescription`. Prefer `FormMessage` for inline errors. Add `role=\"alert\"` only for critical.\\n- **Dialog/Sheet/Dropdown**: Use Radix wrappers for focus\\u2011trap and return\\u2011focus. Provide `DialogTitle` + `DialogDescription` for name/description.\\n- **Select/Combobox**: Prefer `SelectTrigger` with visible label; for icon\\u2011only triggers, supply `aria-label`. Document examples in each app.\\n- **Tabs**: Use `TabsList`, `TabsTrigger`, `TabsContent`; names are programmatically determinable.\\n- **Toast/Toaster**: Prefer non\\u2011blocking announcements; map critical to assertive region; include action buttons with clear labels.\\n- **Table**: Use `TableCaption`; ensure `TableHead` cells use proper `scope`. Provide `aria-sort` on sortable headers.\\n- **Utilities to add (repo action)**:\\n - `SkipLink` component and pattern in layouts.\\n - `RouteAnnouncer` (`aria-live=\"polite\"`) and **FocusOnRouteChange** helper.\\n - `VisuallyHidden` wrapper (Radix visually-hidden or minimal utility).\\n - `useReducedMotion` helper; honor in animated components.\\n - Touch\\u2011size variants (\\u226544\\u00d744) for interactive atoms.\\n\\n---\\n\\n## 4) Engineering Requirements (Mobile \\u2014 Expo/React\\u00a0Native)\\n\\n- Set `accessibilityLabel`, `accessibilityHint`, and `accessibilityRole` on touchables.\\n- Ensure **hit slop** / min size **\\u2265\\u00a044\\u00d744\\u00a0dp**.\\n- Support Dynamic Type / font scaling; no clipped text at **200%**.\\n- Respect **Invert Colors** and **Reduce Motion**; avoid flashing.\\n- Group related items with `accessibilityElements` ordering; hide decoration with `accessible={false}` or `importantForAccessibility=\"no-hide-descendants\"` when appropriate.\\n- Test with **VoiceOver (iOS)** and **TalkBack (Android)**.\\n\\n---\\n\\n## 5) Component Patterns (Acceptance Rules)\\n\\n**Buttons & Links**\\n\\n- Use `<button>` for actions, `<a href>` for navigation. Provide disabled states that are perceivable beyond color.\\n\\n**Navigation**\\n\\n- Provide **Skip link**. One primary nav landmark. Indicate current page (`aria-current=\"page\"`).\\n\\n**Menus/Combobox/Autocomplete**\\n\\n- Follow ARIA patterns: focus moves into list; `aria-expanded`, `aria-controls`, `aria-activedescendant` when applicable; Esc closes; typing filters.\\n\\n**Modals/Dialogs**\\n\\n- `role=\"dialog\"` or `alertdialog` with **label**; focus trapped; background inert; Esc closes; return focus to trigger.\\n\\n**Tabs**\\n\\n- `role=\"tablist\"`; tabs are in the tab order; arrow keys switch focus; content is `role=\"tabpanel\"` with `aria-labelledby`.\\n\\n**Toasts/Notifications**\\n\\n- Non-critical: `aria-live=\"polite\"`; critical: `role=\"alert\"` sparingly.\\n\\n**Infinite Scroll / \\u201cLoad More\\u201d**\\n\\n- Provide **Load more** control; announce new content to SR; preserve keyboard position.\\n\\n**Drag & Drop (2.5.7)**\\n\\n- Provide **non\\u2011drag** alternative (e.g., move up/down buttons).\\n\\n**Charts & Maps**\\n\\n- Provide **table alternative** or textual summary; keyboard access to datapoints where interactive.\\n\\n---\\n\\n## 6) Testing & CI (Blocking Gates)\\n\\n**Static & Unit**\\n\\n- `eslint-plugin-jsx-a11y` \\u2014 error on violations.\\n- `jest-axe` \\u2014 unit tests for components.\\n\\n**Automated Integration**\\n\\n- `axe-core` via Playwright or Cypress on critical flows.\\n- `pa11y-ci` on key routes; threshold: **0 Critical / 0 Serious** to merge.\\n- Lighthouse CI a11y score **\\u2265\\u00a095** on target pages.\\n\\n**Manual QA (per release)**\\n\\n- **Keyboard patrol:** navigate primary flows without mouse.\\n- **Screen reader smoke:** NVDA (Windows) or VoiceOver (macOS/iOS) across login, navigation, forms, dialogs.\\n- **Zoom & Reflow:** 200\\u2013400% & 320\\u00a0px width.\\n- **Color/Contrast check:** tokens in both themes.\\n\\n**Reporting**\\n\\n- A11y issues labeled: `a11y-blocker`, `a11y-bug`, `a11y-enhancement` with WCAG ref.\\n\\n---\\n\\n## 7) Repository\\u2011Specific Adoption Plan\\n\\n- Centralize UI usage on `packages/lssm/libs/ui-kit-web` and de\\u2011duplicate per\\u2011app `components/ui` where feasible.\\n- Introduce `SkipLink`, `RouteAnnouncer`, `FocusOnRouteChange`, and `VisuallyHidden` in `ui-kit-web`. Adopt in app layouts (`app/layout.tsx`) first.\\n- Add `useReducedMotion` and wire into animated components (e.g., `drawer`, `tooltip`, `carousel`).\\n- Add touch\\u2011size variants to `Button`, `IconButton`, `TabsTrigger`, toggles.\\n- Document Select label patterns and error association in Forms.\\n\\n---\\n\\n## 8) Code Snippets\\n\\n**Skip Link**\\n\\n```html\\n<a\\n class=\"sr-only focus:not-sr-only focus-visible:outline focus-visible:ring-4 focus-visible:ring-offset-2\"\\n href=\"#main\"\\n >Skip to main content</a\\n>\\n<main id=\"main\">\\u2026</main>\\n```\\n\\n**Dialog (Radix + shadcn/ui) \\u2014 essentials**\\n\\n```tsx\\n// Ensure label, description, focus trap, and return focus on close remain intact\\n<Dialog>\\n <DialogTrigger asChild>\\n <button aria-haspopup=\"dialog\">Open settings</button>\\n </DialogTrigger>\\n <DialogContent aria-describedby=\"settings-desc\">\\n <DialogTitle>Settings</DialogTitle>\\n <p id=\"settings-desc\">Update your preferences.</p>\\n <DialogClose asChild>\\n <button>Close</button>\\n </DialogClose>\\n </DialogContent>\\n</Dialog>\\n```\\n\\n**Form error association**\\n\\n```tsx\\n<label htmlFor=\"email\">Email</label>\\n<input id=\"email\" name=\"email\" type=\"email\" aria-describedby=\"email-err\" />\\n<p id=\"email-err\" role=\"alert\">Enter a valid email.</p>\\n```\\n\\n**Route change announcement (Next.js)**\\n\\n```tsx\\n// Add once at app root\\n<div\\n aria-live=\"polite\"\\n aria-atomic=\"true\"\\n id=\"route-announcer\"\\n className=\"sr-only\"\\n/>\\n```\\n\\n---\\n\\n## 9) Exceptions & Waivers\\n\\n- If a criterion cannot be met, file an issue with: context, attempted alternatives, WCAG reference, impact assessment, and a remediation date. **Temporary waivers only.**\\n\\n---\\n\\n## 10) Ownership\\n\\n- **Design:** maintains token contrast, component specs.\\n- **Engineering:** enforces CI gates, implements patterns.\\n- **QA:** runs manual checks per release.\\n- **PM:** blocks release if AA not met on user\\u2011visible flows.\\n\\n---\\n\\n## 11) References (internalize; no external dependency at runtime)\\n\\n- WCAG\\u00a02.2 (AA), EN\\u00a0301\\u00a0549. ARIA Authoring Practices. Platform HIG (Apple, Material).\\n- `packages/lssm/libs/ui-kit-web` as the canonical UI source for web.\\n\\n> **Bottom line:** Shipping means **accessible by default**. We don\\u2019t trade a11y for speed; we bake it into speed.\\n\\n---\\n\\n## 12) Adoption Status (2025-09-23)\\n\\n- web-artisan: AccessibilityProvider integrated; sr-only/forced-colors applied; 44x44 targets; forms announce errors; jest-axe and cypress-axe in place.\\n- web-strit: AccessibilityProvider integrated; forced-colors, sr-only; forms announce errors; 44x44 targets; contrast tokens and text-scale wired; jest-axe and cypress-axe in place.\\n- web-coliving: AccessibilityProvider integrated; forced-colors and focus visibility added; text-scale wired; landing pages converted to `Section`/stacks with text-lg defaults; CTA capture standardized; ESLint guard for text-xs in main content; jest-axe and cypress-axe in place. Next: audit icon-only controls and ensure 44x44 targets; add role=\"alert\" where critical.\\n\\n> CI gates: run eslint a11y, jest-axe on components, and cypress-axe on critical flows per app.\\n\\n---\\n\\n## 13) CI Hardening & Visual QA\\n\\n- Linting: Run eslint with jsx-a11y rules across all web apps; block on violations.\\n- Unit: Run jest-axe for ui-kit-web and app-level components.\\n- Integration: cypress-axe on key flows (auth, forms, dialogs, tables).\\n- Synthetic scans: pa11y-ci on critical pages (0 Critical/Serious policy).\\n- Performance/A11y audit: Lighthouse CI with a11y score >= 95 on target routes.\\n- Artifacts: Upload pa11y and Lighthouse reports per PR; annotate failures.\\n\\n### Recent additions (2025-09-26)\\n\\n- AutocompleteInput (groceries): Upgraded to ARIA combobox pattern with `aria-controls`, `aria-activedescendant`, `Escape`/`Tab` handling, and labelled listbox.\\n- Cypress a11y tests added for furniture and incidents modules on `/modules` and operators flows; checks run axe with critical/serious impacts.\\n\\n## 14) Accessibility Telemetry (PostHog)\\n\\n- Events (anonymized): a11y_pref_changed (text_scale, contrast_mode, reduce_motion), a11y_panel_opened.\\n- Properties: app, route, previous_value, new_value, timestamp.\\n- Dashboards: Adoption over time, per app/route; correlation with reduced bounce on forms.\\n- Privacy: No PII; aggregate only.\\n',\n },\n];\nregisterDocBlocks(accessibility_wcag_compliance_specs_DocBlocks);\n"],"mappings":";;;AAGA,MAAaA,gDAA4D,CACvE;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM,CAAC,sCAAsC;CAC7C,MAAM;CACP,CACF;AACD,kBAAkB,8CAA8C"}
@@ -2,13 +2,7 @@ import { docBlockToPresentationSpec, docBlockToPresentationV2, docBlocksToPresen
2
2
  import { DocRegistry, defaultDocRegistry, docId, listRegisteredDocBlocks, registerDocBlocks } from "./registry.js";
3
3
  import { techContractsDocs } from "./tech-contracts.docs.js";
4
4
  import { metaDocs } from "./meta.docs.js";
5
- import "./PUBLISHING.docblock.js";
6
5
  import "./accessibility_wcag_compliance_specs.docblock.js";
7
- import "./tech/PHASE_1_QUICKSTART.docblock.js";
8
- import "./tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js";
9
- import "./tech/PHASE_3_AUTO_EVOLUTION.docblock.js";
10
- import "./tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js";
11
- import "./tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js";
12
6
  import "./tech/lifecycle-stage-system.docblock.js";
13
7
  import "./tech/presentation-runtime.docblock.js";
14
8
  import "./tech/auth/better-auth-nextjs.docblock.js";
@@ -3,4 +3,5 @@ import { DocBlock } from "./types.js";
3
3
  //#region src/docs/meta.docs.d.ts
4
4
  declare const metaDocs: DocBlock[];
5
5
  //#endregion
6
- export { metaDocs };
6
+ export { metaDocs };
7
+ //# sourceMappingURL=meta.docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.docs.d.ts","names":[],"sources":["../../src/docs/meta.docs.ts"],"sourcesContent":[],"mappings":";;;cAGa,UAAU"}
@@ -1,3 +1,5 @@
1
+ import { registerDocBlocks } from "./registry.js";
2
+
1
3
  //#region src/docs/meta.docs.ts
2
4
  const metaDocs = [{
3
5
  id: "docs.meta.docblocks-process",
@@ -21,6 +23,8 @@ const metaDocs = [{
21
23
  - For presentations/markdown outputs, rely on TransformEngine via DocRegistry.
22
24
  - No sourcePath; DocBlocks are canonical.`
23
25
  }];
26
+ registerDocBlocks(metaDocs);
24
27
 
25
28
  //#endregion
26
- export { metaDocs };
29
+ export { metaDocs };
30
+ //# sourceMappingURL=meta.docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.docs.js","names":["metaDocs: DocBlock[]"],"sources":["../../src/docs/meta.docs.ts"],"sourcesContent":["import type { DocBlock } from './types';\nimport { registerDocBlocks } from './registry';\n\nexport const metaDocs: DocBlock[] = [\n {\n id: 'docs.meta.docblocks-process',\n title: 'DocBlocks process',\n summary: 'How to author goal/how/usage DocBlocks close to code.',\n kind: 'reference',\n visibility: 'mixed',\n route: '/docs/meta/docblocks-process',\n tags: ['docs', 'process'],\n body: `## DocBlocks authoring rules\n\n- Colocate docs beside implementation; avoid barrel /docs folders.\n- Split intent:\n - **goal**: why this exists (before implementation).\n - **how**: operational/runbook steps.\n - **usage**: quick checklist for consumers.\n- Use \\`visibility\\`: public | internal | mixed.\n- Prefer routes like \\`/docs/<domain>/<topic>/<kind>\\`; ids mirror that.\n- Keep body Markdown LLM-friendly; avoid HTML.\n- Add owners/tags/domain/stability when known.\n- For presentations/markdown outputs, rely on TransformEngine via DocRegistry.\n- No sourcePath; DocBlocks are canonical.`,\n },\n];\nregisterDocBlocks(metaDocs);\n"],"mappings":";;;AAGA,MAAaA,WAAuB,CAClC;CACE,IAAI;CACJ,OAAO;CACP,SAAS;CACT,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM,CAAC,QAAQ,UAAU;CACzB,MAAM;;;;;;;;;;;;;CAaP,CACF;AACD,kBAAkB,SAAS"}
@@ -30,4 +30,5 @@ declare function docBlocksToPresentationRoutes(blocks: DocBlock[], options?: Doc
30
30
  declare function docBlocksToPresentationSpecs(blocks: DocBlock[], options?: DocPresentationOptions): PresentationSpec[];
31
31
  declare function mapDocRoutes(routes: DocPresentationRoute[]): [string, PresentationDescriptorV2][];
32
32
  //#endregion
33
- export { DocPresentationOptions, DocPresentationRoute, docBlockToPresentationSpec, docBlockToPresentationV2, docBlocksToPresentationRoutes, docBlocksToPresentationSpecs, mapDocRoutes };
33
+ export { DocPresentationOptions, DocPresentationRoute, docBlockToPresentationSpec, docBlockToPresentationV2, docBlocksToPresentationRoutes, docBlocksToPresentationSpecs, mapDocRoutes };
34
+ //# sourceMappingURL=presentations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentations.d.ts","names":[],"sources":["../../src/docs/presentations.ts"],"sourcesContent":[],"mappings":";;;;;;UAQiB,sBAAA;;AAAjB;AAgBA;AAkCA;EACS,SAAA,CAAA,EAAA,MAAA;EACG;EACT,WAAA,CAAA,EAAA,MAAA;EAAwB;EA2BX,cAAA,CAAA,EAvEG,kBAuEuB,EAAA;EACjC;EACG,cAAA,CAAA,EAAA,MAAA;EACT;EAAgB,gBAAA,CAAA,EAtEE,SAsEF;AAoBnB;AACU,UAxFO,oBAAA,CAwFP;EACE,KAAA,EAAA,MAAA;EACT,UAAA,EAxFW,wBAwFX;EAAoB,KAAA,EAvFd,QAuFc;AAQvB;AACU,iBAjEM,wBAAA,CAiEN,KAAA,EAhED,QAgEC,EAAA,OAAA,CAAA,EA/DE,sBA+DF,CAAA,EA9DP,wBA8DO;AACE,iBApCI,0BAAA,CAoCJ,KAAA,EAnCH,QAmCG,EAAA,OAAA,CAAA,EAlCA,sBAkCA,CAAA,EAjCT,gBAiCS;AACT,iBAda,6BAAA,CAcb,MAAA,EAbO,QAaP,EAAA,EAAA,OAAA,CAAA,EAZS,sBAYT,CAAA,EAXA,oBAWA,EAAA;AAAgB,iBAHH,4BAAA,CAGG,MAAA,EAFT,QAES,EAAA,EAAA,OAAA,CAAA,EADP,sBACO,CAAA,EAAhB,gBAAgB,EAAA;AAIH,iBAAA,YAAA,CACN,MAAA,EAAA,oBACE,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,wBAAwB,CAAA,EAAA"}
@@ -74,4 +74,5 @@ function mapDocRoutes(routes) {
74
74
  }
75
75
 
76
76
  //#endregion
77
- export { docBlockToPresentationSpec, docBlockToPresentationV2, docBlocksToPresentationRoutes, docBlocksToPresentationSpecs, mapDocRoutes };
77
+ export { docBlockToPresentationSpec, docBlockToPresentationV2, docBlocksToPresentationRoutes, docBlocksToPresentationSpecs, mapDocRoutes };
78
+ //# sourceMappingURL=presentations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentations.js","names":["DEFAULT_TARGETS: PresentationTarget[]"],"sources":["../../src/docs/presentations.ts"],"sourcesContent":["import type { PresentationSpec } from '../presentations';\nimport type {\n PresentationDescriptorV2,\n PresentationTarget,\n} from '../presentations.v2';\nimport type { DocBlock } from './types';\nimport type { Stability } from '../ownership';\n\nexport interface DocPresentationOptions {\n /**\n * Namespace for presentation meta.name (e.g., web-landing.docs.ops).\n * Defaults to the DocBlock id.\n */\n namespace?: string;\n /** Route prefix when no explicit route is provided on the block. Defaults to /docs. */\n routePrefix?: string;\n /** Default presentation targets. */\n defaultTargets?: PresentationTarget[];\n /** Default version when block.version is not set. */\n defaultVersion?: number;\n /** Default stability if not provided on the DocBlock. */\n defaultStability?: Stability;\n}\n\nexport interface DocPresentationRoute {\n route: string;\n descriptor: PresentationDescriptorV2;\n block: DocBlock;\n}\n\nconst DEFAULT_TARGETS: PresentationTarget[] = [\n 'markdown',\n 'application/json',\n 'application/xml',\n 'react',\n];\n\nfunction normalizeRoute(route: string): string {\n if (!route.length) return '/';\n const withLeading = route.startsWith('/') ? route : `/${route}`;\n return withLeading === '/' ? '/' : withLeading.replace(/\\/+$/, '');\n}\n\nfunction deriveRoute(block: DocBlock, routePrefix?: string): string {\n if (block.route) return normalizeRoute(block.route);\n const prefix = routePrefix ?? '/docs';\n const slug = block.id\n .replace(/^docs\\.?/, '')\n .replace(/\\./g, '/')\n .replace(/\\/+/g, '/');\n const path = slug.startsWith('/') ? slug : `${prefix}/${slug}`;\n return normalizeRoute(path);\n}\n\nfunction buildName(block: DocBlock, namespace?: string): string {\n return namespace ? `${namespace}.${block.id}` : block.id;\n}\n\nexport function docBlockToPresentationV2(\n block: DocBlock,\n options?: DocPresentationOptions\n): PresentationDescriptorV2 {\n const targets = options?.defaultTargets ?? DEFAULT_TARGETS;\n const version = block.version ?? options?.defaultVersion ?? 1;\n const stability = block.stability ?? options?.defaultStability ?? 'stable';\n\n return {\n meta: {\n name: buildName(block, options?.namespace),\n version,\n description: block.summary ?? block.title,\n tags: block.tags,\n owners: block.owners,\n domain: block.domain,\n stability,\n },\n policy:\n block.visibility && block.visibility !== 'public'\n ? { flags: [block.visibility] }\n : undefined,\n source: {\n type: 'blocknotejs',\n docJson: block.body,\n },\n targets,\n };\n}\n\nexport function docBlockToPresentationSpec(\n block: DocBlock,\n options?: DocPresentationOptions\n): PresentationSpec {\n const version = block.version ?? options?.defaultVersion ?? 1;\n const stability = block.stability ?? options?.defaultStability ?? 'stable';\n\n return {\n meta: {\n name: buildName(block, options?.namespace),\n version,\n stability,\n tags: block.tags,\n owners: block.owners,\n description: block.summary ?? block.title,\n },\n content: {\n kind: 'markdown',\n content: block.body,\n },\n };\n}\n\nexport function docBlocksToPresentationRoutes(\n blocks: DocBlock[],\n options?: DocPresentationOptions\n): DocPresentationRoute[] {\n return blocks.map((block) => ({\n block,\n route: deriveRoute(block, options?.routePrefix),\n descriptor: docBlockToPresentationV2(block, options),\n }));\n}\n\nexport function docBlocksToPresentationSpecs(\n blocks: DocBlock[],\n options?: DocPresentationOptions\n): PresentationSpec[] {\n return blocks.map((block) => docBlockToPresentationSpec(block, options));\n}\n\nexport function mapDocRoutes(\n routes: DocPresentationRoute[]\n): [string, PresentationDescriptorV2][] {\n return routes.map(({ route, descriptor }) => [route, descriptor]);\n}\n"],"mappings":";AA8BA,MAAMA,kBAAwC;CAC5C;CACA;CACA;CACA;CACD;AAED,SAAS,eAAe,OAAuB;AAC7C,KAAI,CAAC,MAAM,OAAQ,QAAO;CAC1B,MAAM,cAAc,MAAM,WAAW,IAAI,GAAG,QAAQ,IAAI;AACxD,QAAO,gBAAgB,MAAM,MAAM,YAAY,QAAQ,QAAQ,GAAG;;AAGpE,SAAS,YAAY,OAAiB,aAA8B;AAClE,KAAI,MAAM,MAAO,QAAO,eAAe,MAAM,MAAM;CACnD,MAAM,SAAS,eAAe;CAC9B,MAAM,OAAO,MAAM,GAChB,QAAQ,YAAY,GAAG,CACvB,QAAQ,OAAO,IAAI,CACnB,QAAQ,QAAQ,IAAI;AAEvB,QAAO,eADM,KAAK,WAAW,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAC7B;;AAG7B,SAAS,UAAU,OAAiB,WAA4B;AAC9D,QAAO,YAAY,GAAG,UAAU,GAAG,MAAM,OAAO,MAAM;;AAGxD,SAAgB,yBACd,OACA,SAC0B;CAC1B,MAAM,UAAU,SAAS,kBAAkB;CAC3C,MAAM,UAAU,MAAM,WAAW,SAAS,kBAAkB;CAC5D,MAAM,YAAY,MAAM,aAAa,SAAS,oBAAoB;AAElE,QAAO;EACL,MAAM;GACJ,MAAM,UAAU,OAAO,SAAS,UAAU;GAC1C;GACA,aAAa,MAAM,WAAW,MAAM;GACpC,MAAM,MAAM;GACZ,QAAQ,MAAM;GACd,QAAQ,MAAM;GACd;GACD;EACD,QACE,MAAM,cAAc,MAAM,eAAe,WACrC,EAAE,OAAO,CAAC,MAAM,WAAW,EAAE,GAC7B;EACN,QAAQ;GACN,MAAM;GACN,SAAS,MAAM;GAChB;EACD;EACD;;AAGH,SAAgB,2BACd,OACA,SACkB;CAClB,MAAM,UAAU,MAAM,WAAW,SAAS,kBAAkB;CAC5D,MAAM,YAAY,MAAM,aAAa,SAAS,oBAAoB;AAElE,QAAO;EACL,MAAM;GACJ,MAAM,UAAU,OAAO,SAAS,UAAU;GAC1C;GACA;GACA,MAAM,MAAM;GACZ,QAAQ,MAAM;GACd,aAAa,MAAM,WAAW,MAAM;GACrC;EACD,SAAS;GACP,MAAM;GACN,SAAS,MAAM;GAChB;EACF;;AAGH,SAAgB,8BACd,QACA,SACwB;AACxB,QAAO,OAAO,KAAK,WAAW;EAC5B;EACA,OAAO,YAAY,OAAO,SAAS,YAAY;EAC/C,YAAY,yBAAyB,OAAO,QAAQ;EACrD,EAAE;;AAGL,SAAgB,6BACd,QACA,SACoB;AACpB,QAAO,OAAO,KAAK,UAAU,2BAA2B,OAAO,QAAQ,CAAC;;AAG1E,SAAgB,aACd,QACsC;AACtC,QAAO,OAAO,KAAK,EAAE,OAAO,iBAAiB,CAAC,OAAO,WAAW,CAAC"}
@@ -21,4 +21,5 @@ declare function registerDocBlocks(blocks: DocBlock[]): void;
21
21
  declare function listRegisteredDocBlocks(): DocBlock[];
22
22
  declare function docId(id: string): DocId;
23
23
  //#endregion
24
- export { DocId, DocRegistry, defaultDocRegistry, docId, listRegisteredDocBlocks, registerDocBlocks };
24
+ export { DocId, DocRegistry, defaultDocRegistry, docId, listRegisteredDocBlocks, registerDocBlocks };
25
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","names":[],"sources":["../../src/docs/registry.ts"],"sourcesContent":[],"mappings":";;;;;;KAUY,KAAA;;AAAZ,CAAA;AAEa,cAAA,WAAA,CAAW;EAGF,iBAAA,MAAA;EAA2B,WAAA,CAAA,MAAA,CAAA,EAA3B,QAA2B,EAAA,EAAA,OAAA,CAAA,EAAA,sBAAA;EAI/B,QAAA,CAAA,KAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAoB,sBAApB,CAAA,EAAA,IAAA;EAAoB,IAAA,CAAA,CAAA,EAQ5B,oBAR4B,EAAA;EAQ5B,GAAA,CAAA,EAAA,EAAA,MAAA,CAAA,EAIS,oBAJT,GAAA,SAAA;EAIS,aAAA,CAAA,CAAA,EAAA,CAAA,MAAA,EAIS,wBAJT,CAAA,EAAA;EAIS,mBAAA,CAAA,OAAA,CAAA,EAII,sBAJJ,CAAA,EAI6B,gBAJ7B,EAAA;;AAI6B,cAgB5C,kBAhB4C,EAgB1B,WAhB0B;AAAgB,iBAkBzD,iBAAA,CAlByD,MAAA,EAkB/B,QAlB+B,EAAA,CAAA,EAAA,IAAA;AAgB5D,iBAeG,uBAAA,CAAA,CAfe,EAeY,QAfQ,EAAA;AAEnC,iBAiBA,KAAA,CAjBiB,EAAA,EAAA,MAAS,CAAA,EAiBP,KAjBe"}
@@ -48,4 +48,5 @@ function docId(id) {
48
48
  }
49
49
 
50
50
  //#endregion
51
- export { DocRegistry, defaultDocRegistry, docId, listRegisteredDocBlocks, registerDocBlocks };
51
+ export { DocRegistry, defaultDocRegistry, docId, listRegisteredDocBlocks, registerDocBlocks };
52
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","names":["requiredFields: (keyof DocBlock)[]"],"sources":["../../src/docs/registry.ts"],"sourcesContent":["import type { PresentationDescriptorV2 } from '../presentations.v2';\nimport type { PresentationSpec } from '../presentations';\nimport type { DocBlock } from './types';\nimport {\n docBlockToPresentationSpec,\n docBlocksToPresentationRoutes,\n type DocPresentationOptions,\n type DocPresentationRoute,\n} from './presentations';\n\nexport type DocId = string & { __docId: true };\n\nexport class DocRegistry {\n private readonly routes = new Map<string, DocPresentationRoute>();\n\n constructor(blocks: DocBlock[] = [], options?: DocPresentationOptions) {\n blocks.forEach((block) => this.register(block, options));\n }\n\n register(block: DocBlock, options?: DocPresentationOptions): this {\n const [route] = docBlocksToPresentationRoutes([block], options);\n if (route) {\n this.routes.set(block.id, route);\n }\n return this;\n }\n\n list(): DocPresentationRoute[] {\n return [...this.routes.values()];\n }\n\n get(id: string): DocPresentationRoute | undefined {\n return this.routes.get(id);\n }\n\n toRouteTuples(): [string, PresentationDescriptorV2][] {\n return this.list().map(({ route, descriptor }) => [route, descriptor]);\n }\n\n toPresentationSpecs(options?: DocPresentationOptions): PresentationSpec[] {\n return this.list().map(({ block }) =>\n docBlockToPresentationSpec(block, options)\n );\n }\n}\n\nconst requiredFields: (keyof DocBlock)[] = [\n 'id',\n 'title',\n 'body',\n 'kind',\n 'visibility',\n 'route',\n];\n\nexport const defaultDocRegistry = new DocRegistry();\n\nexport function registerDocBlocks(blocks: DocBlock[]): void {\n for (const block of blocks) {\n for (const field of requiredFields) {\n if (!block[field]) {\n throw new Error(\n `DocBlock ${block.id ?? '<missing id>'} missing field ${String(field)}`\n );\n }\n }\n defaultDocRegistry.register(block);\n }\n}\n\nexport function listRegisteredDocBlocks(): DocBlock[] {\n return defaultDocRegistry.list().map((r) => r.block);\n}\n\nexport function docId(id: string): DocId {\n const found = defaultDocRegistry.get(id);\n if (!found) throw new Error(`DocBlock not registered: ${id}`);\n return id as DocId;\n}\n"],"mappings":";;;AAYA,IAAa,cAAb,MAAyB;CACvB,AAAiB,yBAAS,IAAI,KAAmC;CAEjE,YAAY,SAAqB,EAAE,EAAE,SAAkC;AACrE,SAAO,SAAS,UAAU,KAAK,SAAS,OAAO,QAAQ,CAAC;;CAG1D,SAAS,OAAiB,SAAwC;EAChE,MAAM,CAAC,SAAS,8BAA8B,CAAC,MAAM,EAAE,QAAQ;AAC/D,MAAI,MACF,MAAK,OAAO,IAAI,MAAM,IAAI,MAAM;AAElC,SAAO;;CAGT,OAA+B;AAC7B,SAAO,CAAC,GAAG,KAAK,OAAO,QAAQ,CAAC;;CAGlC,IAAI,IAA8C;AAChD,SAAO,KAAK,OAAO,IAAI,GAAG;;CAG5B,gBAAsD;AACpD,SAAO,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,iBAAiB,CAAC,OAAO,WAAW,CAAC;;CAGxE,oBAAoB,SAAsD;AACxE,SAAO,KAAK,MAAM,CAAC,KAAK,EAAE,YACxB,2BAA2B,OAAO,QAAQ,CAC3C;;;AAIL,MAAMA,iBAAqC;CACzC;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,qBAAqB,IAAI,aAAa;AAEnD,SAAgB,kBAAkB,QAA0B;AAC1D,MAAK,MAAM,SAAS,QAAQ;AAC1B,OAAK,MAAM,SAAS,eAClB,KAAI,CAAC,MAAM,OACT,OAAM,IAAI,MACR,YAAY,MAAM,MAAM,eAAe,iBAAiB,OAAO,MAAM,GACtE;AAGL,qBAAmB,SAAS,MAAM;;;AAItC,SAAgB,0BAAsC;AACpD,QAAO,mBAAmB,MAAM,CAAC,KAAK,MAAM,EAAE,MAAM;;AAGtD,SAAgB,MAAM,IAAmB;AAEvC,KAAI,CADU,mBAAmB,IAAI,GAAG,CAC5B,OAAM,IAAI,MAAM,4BAA4B,KAAK;AAC7D,QAAO"}
@@ -3,4 +3,5 @@ import { DocBlock } from "@lssm/lib.contracts/docs";
3
3
  //#region src/docs/tech/auth/better-auth-nextjs.docblock.d.ts
4
4
  declare const tech_auth_better_auth_nextjs_DocBlocks: DocBlock[];
5
5
  //#endregion
6
- export { tech_auth_better_auth_nextjs_DocBlocks };
6
+ export { tech_auth_better_auth_nextjs_DocBlocks };
7
+ //# sourceMappingURL=better-auth-nextjs.docblock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"better-auth-nextjs.docblock.d.ts","names":[],"sources":["../../../../src/docs/tech/auth/better-auth-nextjs.docblock.ts"],"sourcesContent":[],"mappings":";;;cAGa,wCAAwC"}
@@ -78,4 +78,5 @@ These checks are intentionally optimistic and should only gate routing. Full aut
78
78
  registerDocBlocks(tech_auth_better_auth_nextjs_DocBlocks);
79
79
 
80
80
  //#endregion
81
- export { tech_auth_better_auth_nextjs_DocBlocks };
81
+ export { tech_auth_better_auth_nextjs_DocBlocks };
82
+ //# sourceMappingURL=better-auth-nextjs.docblock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"better-auth-nextjs.docblock.js","names":["tech_auth_better_auth_nextjs_DocBlocks: DocBlock[]"],"sources":["../../../../src/docs/tech/auth/better-auth-nextjs.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@lssm/lib.contracts/docs';\nimport { registerDocBlocks } from '../../registry';\n\nexport const tech_auth_better_auth_nextjs_DocBlocks: DocBlock[] = [\n {\n id: 'docs.tech.auth.better-auth-nextjs',\n title: 'Better Auth + Next.js integration (ContractSpec)',\n summary:\n 'How ContractSpec wires Better Auth into Next.js (server config, client singleton, and proxy cookie-only redirects).',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/tech/auth/better-auth-nextjs',\n tags: ['auth', 'better-auth', 'nextjs', 'cookies', 'proxy', 'hmr'],\n body: `# Better Auth + Next.js integration (ContractSpec)\n\nThis repo uses Better Auth as the primary auth layer (sessions, organizations, teams, API keys, and OAuth).\n\n## Server config (Better Auth)\n\n- Source: \\`packages/bundles/contractspec-studio/src/application/services/auth.ts\\`\n- Important: \\`nextCookies()\\` must be the **last** plugin in the Better Auth plugin list so \\`Set-Cookie\\` is applied correctly in Next.js environments.\n\n## Better Auth Admin plugin\n\nContractSpec Studio enables the Better Auth **Admin plugin** to support platform-admin user operations (list users, impersonation, etc.).\n\n- Server: \\`admin()\\` plugin in \\`packages/bundles/contractspec-studio/src/application/services/auth.ts\\`\n- Client: \\`adminClient()\\` in \\`packages/bundles/contractspec-studio/src/presentation/providers/auth/client.ts\\`\n\n### PLATFORM_ADMIN ⇒ Better Auth admin role\n\nBetter Auth Admin endpoints authorize via \\`user.role\\`. ContractSpec enforces an org-driven rule:\n\n- If the **active organization** has \\`type = PLATFORM_ADMIN\\`, the signed-in user is ensured to have \\`User.role\\` containing \\`admin\\`.\n- This is applied in the session creation hook and re-checked in \\`assertsPlatformAdmin()\\`.\n\nThis keeps admin enablement deterministic and avoids manual role backfills.\n\n## Client config (React web + Expo)\n\nTo avoid duplicate background refresh/polling loops in dev (Fast Refresh/HMR), the Better Auth client is implemented as a singleton cached on \\`globalThis\\`.\n\n- Web client: \\`packages/bundles/contractspec-studio/src/presentation/providers/auth/client.ts\\`\n- Native client: \\`packages/bundles/contractspec-studio/src/presentation/providers/auth/client.native.ts\\`\n\nImport guidance:\n\n- If you only need the context/hook, prefer importing from \\`@lssm/bundle.contractspec-studio/presentation/providers/auth\\`.\n- If you explicitly need the Better Auth client instance (e.g. admin impersonation, direct API calls), import from \\`@lssm/bundle.contractspec-studio/presentation/providers/auth/client\\`.\n\n## Public routes (login / signup)\n\nPublic auth pages should avoid eager \\`authClient\\` initialization.\n\nPattern used:\n\n- In the submit handler, dynamically import \\`@lssm/bundle.contractspec-studio/presentation/providers/auth/index.web\\` and call \\`authClient.signIn.*\\` / \\`authClient.signUp.*\\`.\n\nThis prevents session refresh behavior from starting just because a public page rendered.\n\n## Next.js proxy auth (web-landing)\n\nThe Next.js proxy/middleware is used for **redirect decisions only**. It must not perform DB-backed session reads on every request.\n\n- Source: \\`packages/apps/web-landing/src/proxy.ts\\`\n- Approach: cookie-only checks via Better Auth cookies helpers:\n - \\`getSessionCookie(request)\\`\n - \\`getCookieCache(request)\\`\n\nThese checks are intentionally optimistic and should only gate routing. Full authorization must still be enforced on server-side actions/routes and GraphQL resolvers.\n`,\n },\n];\n\nregisterDocBlocks(tech_auth_better_auth_nextjs_DocBlocks);\n"],"mappings":";;;AAGA,MAAaA,yCAAqD,CAChE;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAQ;EAAe;EAAU;EAAW;EAAS;EAAM;CAClE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DP,CACF;AAED,kBAAkB,uCAAuC"}
@@ -3,4 +3,5 @@ import { DocBlock } from "@lssm/lib.contracts/docs";
3
3
  //#region src/docs/tech/contracts/README.docblock.d.ts
4
4
  declare const tech_contracts_README_DocBlocks: DocBlock[];
5
5
  //#endregion
6
- export { tech_contracts_README_DocBlocks };
6
+ export { tech_contracts_README_DocBlocks };
7
+ //# sourceMappingURL=README.docblock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"README.docblock.d.ts","names":[],"sources":["../../../../src/docs/tech/contracts/README.docblock.ts"],"sourcesContent":[],"mappings":";;;cAGa,iCAAiC"}
@@ -18,4 +18,5 @@ const tech_contracts_README_DocBlocks = [{
18
18
  registerDocBlocks(tech_contracts_README_DocBlocks);
19
19
 
20
20
  //#endregion
21
- export { tech_contracts_README_DocBlocks };
21
+ export { tech_contracts_README_DocBlocks };
22
+ //# sourceMappingURL=README.docblock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"README.docblock.js","names":["tech_contracts_README_DocBlocks: DocBlock[]"],"sources":["../../../../src/docs/tech/contracts/README.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@lssm/lib.contracts/docs';\nimport { registerDocBlocks } from '../../registry';\n\nexport const tech_contracts_README_DocBlocks: DocBlock[] = [\n {\n id: 'docs.tech.contracts.README',\n title: 'Contracts: Specs, Registry, Handlers, Adapters',\n summary:\n '- `packages/lssm/libs/contracts` defines the contracts core (SpecRegistry, ContractSpec, install helpers, REST/MCP adapters).',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/tech/contracts/README',\n tags: ['tech', 'contracts', 'README'],\n body: \"## Contracts: Specs, Registry, Handlers, Adapters\\n\\n### What lives where\\n\\n- `packages/lssm/libs/contracts` defines the contracts core (SpecRegistry, ContractSpec, install helpers, REST/MCP adapters).\\n- `packages/lssm/libs/schema` defines the schema dictionary (`SchemaModel`, `FieldType`) used to describe I/O once and map to multiple targets (zod, GraphQL, JSON Schema).\\n- App adapters (e.g. GraphQL) live close to the app. Example: `packages/hcircle/apps/api-coliving/src/graphql/contracts-adapter.ts`.\\n\\n### npm distribution\\n\\n- `@lssm/lib.contracts` (root) keeps the legacy \\\\\\\"everything\\\\\\\" surface for backward compatibility.\\n- `@lssm/lib.contracts/client` exposes only browser-safe helpers (React renderers, client SDK, drivers). Import from this entry when bundling for the web or React Native to avoid dragging server adapters.\\n- `@lssm/lib.contracts/server` covers HTTP/MCP adapters, registries, integrations, and other Node-only helpers.\\n- `@lssm/lib.contracts/types` exports the runtime handler context utilities, while `@lssm/lib.contracts/types/all` re-exports every type alias/interface across the package via `export type` so consumers can import a single module for typings without shipping runtime code.\\n- `@lssm/lib.schema`, `@lssm/lib.design-system`, `@lssm/lib.ui-kit`, `@lssm/lib.ui-kit-web`, `@lssm/lib.accessibility`, and the presentation runtime packages are published to npm alongside contracts; prefer the scoped packages to keep tree-shaking intact.\\n- Bundlers with conditional exports should resolve subpaths first; keep root imports for server-only code paths.\\n\\n### Core concepts\\n\\n- **ContractSpec**: immutable description of an operation.\\n - `meta`: `{ name, version, kind: 'query' | 'command' }`\\n - `io`: `{ input: SchemaModel | zod schema, output: SchemaModel | zod schema }`\\n - `policy`: `{ auth?: {...}, rateLimit?: {...}, flags?: string[] }`\\n - `transport.gql.field?`: explicit GraphQL field name (otherwise derived via `defaultGqlField`).\\n- **SpecRegistry**: registry of specs + handlers. Use `installOp(reg, spec, handler)` to attach a handler.\\n- **Handler**: `(ctx, input) => Promise<output>` implementing the operation.\\n- **CapabilitySpec**: canonical capability declaration stored in `src/capabilities.ts`. Tracks `meta` (`{ key, version, kind, title, description, domain, owners, tags, stability }`), `provides` surfaces (`operation`, `event`, `workflow`, `presentation`, `resource`), and `requires` which other capabilities must be present. Enforced during `installFeature`.\\n- **PolicySpec**: declarative policy rules (`src/policy/spec.ts`) covering ABAC/ReBAC, consent + rate limit requirements, field-level controls, and PII guidance. `PolicyEngine` evaluates refs, while `OPAPolicyAdapter` lets OPA override/augment runtime decisions.\\n- **TelemetrySpec**: analytics definitions (`src/telemetry/spec.ts`) describing event semantics, privacy level, retention, sampling, and anomaly detection. `TelemetryTracker` handles redaction/sampling, `TelemetryAnomalyMonitor` raises alerts, and specs integrate with contracts/workflows via `ctx.telemetry`.\\n- **TestSpec**: declarative scenario definitions in `src/tests/spec.ts`. `TestRunner` executes fixtures/actions/assertions against a `SpecRegistry`, and the CLI (`contractspec test`) wraps the runner for automation.\\n- **ExperimentSpec**: experiment definitions (`src/experiments/spec.ts`) describing variants, allocation strategies, and success metrics. `ExperimentEvaluator` assigns variants (random/sticky/targeted) and integrates with Policy/Telemetry for safe experimentation.\\n- **AppBlueprintSpec / TenantAppConfig**: global blueprints and per-tenant overrides (`src/app-config/spec.ts`). `resolveAppConfig()` merges the two into a `ResolvedAppConfig`, while `composeAppConfig()` hydrates the merged view against registries and reports missing references for safe rollout.\\n- **RegeneratorService**: background daemon (`src/regenerator/service.ts`) that consumes telemetry/error/behavior signals, evaluates regeneration rules, and produces `SpecChangeProposal`s for Studio review.\\n- **DataViewSpec**: declarative data presentation layer in `src/data-views.ts`. Describes entity projections (`fields`, `filters`, `actions`) with `view.kind` (`list`, `table`, `detail`, `grid`), ties to query operations via `source.primary`, and exposes optional presentation-based empty/error states.\\n- **ThemeSpec**: design token + component variant definitions in `src/themes.ts`. Supports inheritance (`extends`), tenant/user overrides, and component-specific variant metadata for the design system.\\n- **MigrationSpec**: schema/data migration descriptors (`src/migrations.ts`) with ordered step plans, dependency tracking, and pre/post checks to support automated database/content migrations.\\n- **WorkflowSpec**: typed definition of multi-step workflows living in `src/workflow/spec.ts`. `WorkflowRegistry` stores versioned specs, and `validateWorkflowSpec()` (in `src/workflow/validation.ts`) checks graph integrity, step references, and reachability.\\n\\n### Lifecycle\\n\\n1. Define the spec (I/O via `SchemaModel` or zod) in a vertical lib (e.g. `contracts-coliving`).\\n2. Register it: `installOp(registry, spec, handler)` within the app/service.\\n3. Expose it via an adapter (REST, GraphQL, MCP). Each adapter maps the I/O to its transport and enforces policy.\\n4. Validate at runtime: parse `input` before executing, parse `output` before returning.\\n\\n### Adapters\\n\\n- **REST**: see `packages/lssm/libs/contracts/src/server/rest-*`. Binds routes, validates request/response, maps errors/policies.\\n- **MCP**: see `packages/lssm/libs/contracts/src/server/provider-mcp.ts` (standalone MCP server) and `packages/lssm/libs/contracts/src/server/rest-next-mcp.ts` (MCP over Next.js route). Provides tools/resources/prompts.\\n - Tools + resources are registered from Zod schemas.\\n - Resource templates are keyed by full `ResourceMeta.uriTemplate` (e.g. `docs://list`, `docs://doc/{id}`), so multiple templates can share a scheme (`docs://*`) without collisions.\\n- **GraphQL (Pothos)**: see `packages/lssm/libs/contracts/src/server/graphql-pothos.ts`. Adds Query/Mutation fields by transforming contract I/O to GraphQL types.\\n\\n### GraphQL adapter behaviour (summary)\\n\\n- Field naming: `spec.transport.gql.field` or `<name_with_dots>_v<version>`.\\n- Input/Output types from `SchemaModel` (preferred) or fallback zod introspection.\\n- Scalars: String/Int/Float/Boolean/Date/JSON; Objects/Arrays/Enums; unions for outputs; input unions => JSON.\\n- Policy: auth gate checks GraphQL context; optional feature flag gating.\\n- Complexity & tracing: attaches hints and records timings; log includes `{ specName, version }`.\\n\\n#### Returns mapping and hydration\\n\\n- `spec.transport.gql.returns` can declare the GraphQL return wrapper: e.g. `\\\"Spot\\\"` or `[Spot]`. If omitted, the adapter infers from `io.output` (SchemaModel) or `resourceRef.graphQLType`.\\n- Resource outputs: when `io.output` is a `resourceRef(...)` or `transport.gql.resource` is set, the adapter will optionally hydrate via a `ResourceRegistry` using `contracts-adapter-hydration.ts`:\\n - Grammar is parsed with `parseReturns()`.\\n - Entities are resolved via `hydrateResourceIfNeeded(resources, result, { template, varName, returns })` after handler execution.\\n\\n### Resource outputs\\n\\n- Declare resource outputs using `resourceRef(uriTemplate, opts)`.\\n- `opts.varName` (default `id`) selects the identifier field returned by the handler for URI substitution.\\n- `opts.graphQLType` is the GraphQL return type name (e.g., `Spot`) or list form (e.g., `[Spot]`).\\n- `opts.many: true` indicates the handler returns an array of resources. The handler type becomes an array of items that include the identifier field.\\n\\nExample:\\n\\n```ts\\nio: {\\n input: ListThingsInput,\\n output: resourceRef('myapp://thing/{id}', { graphQLType: '[Thing]', many: true }),\\n}\\n```\\n\\nHandler return (simplified): `{ id: string | number }[]`.\\n\\n### Errors\\n\\n- Validation errors \\u2192 transport 400/GraphQL UserInputError.\\n- Policy/auth errors \\u2192 401/403 or GraphQL ForbiddenError.\\n- Handler errors \\u2192 mapped to transport error with safe message.\\n\\n### Versioning & naming\\n\\n- Keep `meta.version` monotonic. Clients should pin to a versioned field/key.\\n- Avoid renaming existing fields; add new fields with new versions.\\n\\n### Ownership metadata (OwnerShipMeta)\\n\\nAll contracts, events, features, and presentations reference a shared ownership schema (source of truth in `packages/lssm/libs/contracts/src/ownership.ts`).\\n\\n- Required fields: `title`, `description`, `domain`, `owners[]`, `tags[]`, `stability`.\\n- Curated enums: the library exports suggested constants for owners and tags; free-form strings are still allowed for forward-compatibility.\\n- Operations (`spec.ts`): `meta` requires `stability`, `owners`, and `tags` alongside `name`, `version`, `kind`, `description`, `goal`, and `context`.\\n- Presentations V2: `meta` is a partial of ownership plus `description`.\\n- Events: may specify `ownership` (recommended) for discoverability and docs.\\n\\n### Quick start\\n\\n```ts\\n// app bootstrap\\nconst reg = new SpecRegistry();\\ninstallOp(reg, BeginSignupSpec, beginSignupHandler);\\nregisterContractsOnBuilder(gqlSchemaBuilder, reg); // GraphQL\\n// or: createRestRouter(reg) // REST\\n```\\n\",\n },\n];\nregisterDocBlocks(tech_contracts_README_DocBlocks);\n"],"mappings":";;;AAGA,MAAaA,kCAA8C,CACzD;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAQ;EAAa;EAAS;CACrC,MAAM;CACP,CACF;AACD,kBAAkB,gCAAgC"}
@@ -3,4 +3,5 @@ import { DocBlock } from "@lssm/lib.contracts/docs";
3
3
  //#region src/docs/tech/contracts/create-subscription.docblock.d.ts
4
4
  declare const tech_contracts_create_subscription_DocBlocks: DocBlock[];
5
5
  //#endregion
6
- export { tech_contracts_create_subscription_DocBlocks };
6
+ export { tech_contracts_create_subscription_DocBlocks };
7
+ //# sourceMappingURL=create-subscription.docblock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-subscription.docblock.d.ts","names":[],"sources":["../../../../src/docs/tech/contracts/create-subscription.docblock.ts"],"sourcesContent":[],"mappings":";;;cAGa,8CAA8C"}
@@ -18,4 +18,5 @@ const tech_contracts_create_subscription_DocBlocks = [{
18
18
  registerDocBlocks(tech_contracts_create_subscription_DocBlocks);
19
19
 
20
20
  //#endregion
21
- export { tech_contracts_create_subscription_DocBlocks };
21
+ export { tech_contracts_create_subscription_DocBlocks };
22
+ //# sourceMappingURL=create-subscription.docblock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-subscription.docblock.js","names":["tech_contracts_create_subscription_DocBlocks: DocBlock[]"],"sources":["../../../../src/docs/tech/contracts/create-subscription.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@lssm/lib.contracts/docs';\nimport { registerDocBlocks } from '../../registry';\n\nexport const tech_contracts_create_subscription_DocBlocks: DocBlock[] = [\n {\n id: 'docs.tech.contracts.create-subscription',\n title: 'Subscriptions via Better Auth Stripe',\n summary:\n \"This app uses Better Auth's Stripe plugin for subscription management.\",\n kind: 'reference',\n visibility: 'public',\n route: '/docs/tech/contracts/create-subscription',\n tags: ['tech', 'contracts', 'create-subscription'],\n body: \"### Subscriptions via Better Auth Stripe\\n\\nThis app uses Better Auth's Stripe plugin for subscription management.\\n\\nKey endpoints:\\n\\n- `/api/auth/[...all]` \\u2013 Better Auth server\\n- `/api/auth/stripe/webhook` \\u2013 Stripe webhook handled by Better Auth\\n\\nClient usage (org mode):\\n\\n```ts\\nimport { subscription } from '@/lib/auth-client';\\n\\nawait subscription.upgrade({\\n plan: 'core',\\n annual: true,\\n referenceId: activeOrganization?.id,\\n successUrl: '/dashboard',\\n cancelUrl: '/pricing',\\n});\\n```\\n\\nPlans are configured in `src/lib/auth.ts` referencing env-provided price IDs. See Better Auth Stripe docs: [plugins: Stripe](`https://better-auth.com/docs/plugins/stripe.mdx`) and [Using with organizations](`https://www.better-auth.com/docs/plugins/stripe#using-with-organizations`).\\n\\nLanding pricing UX\\n\\n- Components: `SectionEyebrow`, `PriceBadge`, `FeatureList`, `PriceCard`\\n- Sections: `PricingSection`, `StoryPricingBenefits`\\n- Canonical pricing source: `src/lib/pricing/config.ts`\\n\\nTrial period\\n\\n- Le plan \\u00ab Essentiel \\u00bb inclut une p\\u00e9riode d\\u2019essai gratuite de 30 jours.\\n- Config c\\u00f4t\\u00e9 auth: `freeTrial: { days: 30 }` dans `src/lib/auth.ts` (Better Auth Stripe plugin).\\n- Config c\\u00f4t\\u00e9 pricing: `trial: { days: 30 }` dans `src/lib/pricing/config.ts`.\\n\\nDashboard badges\\n\\n- Le `Tableau de bord` affiche des badges d\\u2019\\u00e9tat d\\u2019abonnement:\\n - \\u00ab Essai \\u00b7 se termine le JJ/MM/AAAA \\u00bb lorsque l\\u2019essai est en cours\\n - \\u00ab Abonnement actif \\u00bb lorsque l\\u2019abonnement est actif\\n - \\u00ab Annul\\u00e9 \\u00b7 fin au terme de la p\\u00e9riode \\u00bb lorsque la r\\u00e9siliation est planifi\\u00e9e\\n- Composant: `components/dashboard/DashboardPage/molecules/Header.tsx`\\n- Source des \\u00e9tats: hook `useProfileBillingPage()` (`components/profile/ProfileBillingPage/hooks/useProfileBillingPage.tsx`)\\n\",\n },\n];\nregisterDocBlocks(tech_contracts_create_subscription_DocBlocks);\n"],"mappings":";;;AAGA,MAAaA,+CAA2D,CACtE;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAQ;EAAa;EAAsB;CAClD,MAAM;CACP,CACF;AACD,kBAAkB,6CAA6C"}
@@ -3,4 +3,5 @@ import { DocBlock } from "@lssm/lib.contracts/docs";
3
3
  //#region src/docs/tech/contracts/graphql-typed-outputs.docblock.d.ts
4
4
  declare const tech_contracts_graphql_typed_outputs_DocBlocks: DocBlock[];
5
5
  //#endregion
6
- export { tech_contracts_graphql_typed_outputs_DocBlocks };
6
+ export { tech_contracts_graphql_typed_outputs_DocBlocks };
7
+ //# sourceMappingURL=graphql-typed-outputs.docblock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-typed-outputs.docblock.d.ts","names":[],"sources":["../../../../src/docs/tech/contracts/graphql-typed-outputs.docblock.ts"],"sourcesContent":[],"mappings":";;;cAGa,gDAAgD"}
@@ -18,4 +18,5 @@ const tech_contracts_graphql_typed_outputs_DocBlocks = [{
18
18
  registerDocBlocks(tech_contracts_graphql_typed_outputs_DocBlocks);
19
19
 
20
20
  //#endregion
21
- export { tech_contracts_graphql_typed_outputs_DocBlocks };
21
+ export { tech_contracts_graphql_typed_outputs_DocBlocks };
22
+ //# sourceMappingURL=graphql-typed-outputs.docblock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-typed-outputs.docblock.js","names":["tech_contracts_graphql_typed_outputs_DocBlocks: DocBlock[]"],"sources":["../../../../src/docs/tech/contracts/graphql-typed-outputs.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@lssm/lib.contracts/docs';\nimport { registerDocBlocks } from '../../registry';\n\nexport const tech_contracts_graphql_typed_outputs_DocBlocks: DocBlock[] = [\n {\n id: 'docs.tech.contracts.graphql-typed-outputs',\n title: 'GraphQL Typed Outputs for Contracts',\n summary:\n 'Improved `@lssm/lib.contracts` to automatically generate proper GraphQL object types from `SchemaModel` outputs instead of defaulting to `JSON` scalar types.',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/tech/contracts/graphql-typed-outputs',\n tags: ['tech', 'contracts', 'graphql-typed-outputs'],\n body: \"# GraphQL Typed Outputs for Contracts\\n\\n## Overview\\n\\nImproved `@lssm/lib.contracts` to automatically generate proper GraphQL object types from `SchemaModel` outputs instead of defaulting to `JSON` scalar types.\\n\\n## Problem\\n\\nPreviously, when GraphQL operations were defined using contracts with `SchemaModel` outputs, the GraphQL schema would default to returning `JSON` scalar types. This meant:\\n\\n- GraphQL clients couldn't query specific fields\\n- No type safety for operation outputs\\n- Codegen would fail with \\\"must have a selection of subfields\\\" errors\\n\\n## Solution\\n\\n### 1. Auto-Type Registration in `graphql-pothos.ts`\\n\\n**File**: `packages/lssm/libs/contracts/src/server/graphql-pothos.ts`\\n\\n**Changes**:\\n\\n- Scan all contract specs and collect their `SchemaModel` outputs\\n- Automatically register GraphQL object types for each `SchemaModel`\\n- Map field types from SchemaModel to proper GraphQL scalar types\\n- Update `resolveGraphQLTypeName` to check for `SchemaModel` names before defaulting to `JSON`\\n\\n**Key Code**:\\n\\n```typescript\\n// Build a map of output types we need to register\\nconst outputTypeCache = new Map<string, AnySchemaModel>();\\nfor (const spec of reg.listSpecs()) {\\n const out = spec.io.output as AnySchemaModel | ResourceRefDescriptor<boolean>;\\n if (out && 'getZod' in out && typeof out.getZod === 'function') {\\n const model = out as AnySchemaModel;\\n const typeName = model.config?.name ?? 'UnknownOutput';\\n if (!outputTypeCache.has(typeName)) {\\n outputTypeCache.set(typeName, model);\\n }\\n }\\n}\\n\\n// Register all output types as GraphQL object types\\nfor (const [typeName, model] of outputTypeCache.entries()) {\\n builder.objectType(typeName, {\\n fields: (t) => {\\n // Map each field from SchemaModel to GraphQL field\\n // ...\\n },\\n });\\n}\\n```\\n\\n### 2. Fix Contract Definitions\\n\\n**File**: `packages/hcircle/libs/contracts-coliving/src/interactions/onboarding/org/contracts.ts`\\n\\n**Changes**:\\n\\n- Changed `GetOrgOnboardingDraftSpec` from `defineCommand` to `defineQuery` (read-only operation)\\n- Added `defineQuery` import\\n\\n**Before**:\\n\\n```typescript\\nexport const GetOrgOnboardingDraftSpec = defineCommand({\\n // ...\\n});\\n```\\n\\n**After**:\\n\\n```typescript\\nexport const GetOrgOnboardingDraftSpec = defineQuery({\\n // ...\\n});\\n```\\n\\n### 3. Update All GraphQL Queries\\n\\nUpdated all GraphQL operation calls to select proper subfields based on the output type:\\n\\n#### Output Types and Their Fields\\n\\n1. **`CreateOrgOutput`**:\\n - `organizationId: ID!`\\n - `orgType: String!`\\n\\n2. **`CompleteUserOnboardingOutput`**:\\n - `success: Boolean!`\\n - `userId: ID!`\\n\\n3. **`CompleteOrgOnboardingOutput`**:\\n - `success: Boolean!`\\n - `organizationId: ID!`\\n - `orgType: String!`\\n\\n4. **`OnboardingDraft`** (from resource_ref):\\n - `id: ID!`\\n - `organizationId: ID!`\\n - `data: JSON!`\\n - `createdAt: DateTime!`\\n - `updatedAt: DateTime!`\\n\\n5. **`GetOnboardingDraftOutput`**:\\n - `id: ID`\\n - `organizationId: ID`\\n - `data: JSON`\\n - `createdAt: DateTime`\\n - `updatedAt: DateTime`\\n\\n6. **`DeleteOnboardingDraftOutput`**:\\n - `ok: Boolean!` _(note: not `success`)_\\n\\n#### Files Updated\\n\\n1. `/packages/hcircle/apps/mobile-coliving/src/app/onboarding-org-select.tsx`\\n2. `/packages/hcircle/apps/mobile-coliving/src/app/onboarding-org.tsx`\\n3. `/packages/hcircle/apps/mobile-coliving/src/app/onboarding-user.tsx`\\n4. `/packages/hcircle/apps/web-coliving/src/app/onboarding/user/page.tsx`\\n5. `/packages/hcircle/apps/web-coliving/src/components/onboarding/OnboardingFlow.tsx`\\n6. `/packages/hcircle/apps/web-coliving/src/components/onboarding/OrgSelectionFlow.tsx`\\n\\n**Example Before**:\\n\\n```graphql\\nmutation CreateOrg($orgType: String!, $name: String!, $slug: String!) {\\n createOrganization(input: { orgType: $orgType, name: $name, slug: $slug })\\n}\\n```\\n\\n**Example After**:\\n\\n```graphql\\nmutation CreateOrg($orgType: String!, $name: String!, $slug: String!) {\\n createOrganization(input: { orgType: $orgType, name: $name, slug: $slug }) {\\n organizationId\\n orgType\\n }\\n}\\n```\\n\\n## Benefits\\n\\n1. **Type Safety**: Full type safety for GraphQL operation outputs\\n2. **Auto-Generated Types**: No need to manually specify `returns` in contract transport config\\n3. **Better DX**: GraphQL clients can now query specific fields and benefit from autocomplete\\n4. **Consistency**: All `SchemaModel` outputs are automatically typed in GraphQL\\n5. **Backward Compatible**: Operations with explicit `returns` config still work as before\\n\\n## Testing\\n\\nAll GraphQL codegen now passes:\\n\\n```bash\\ncd packages/hcircle/libs/gql-client-coliving\\nbun graphql-codegen --config codegen.ts # \\u2705 Success\\n```\\n\\n## Migration Guide for Other Verticals\\n\\nTo apply this to other verticals (e.g., Artisanos, Strit):\\n\\n1. **No code changes needed** - the improved `graphql-pothos.ts` automatically handles all `SchemaModel` outputs\\n2. **Update GraphQL queries** - Add field selections to queries that previously returned `JSON`\\n3. **Fix query/command mismatches** - Ensure read-only operations use `defineQuery` instead of `defineCommand`\\n\\n## Future Improvements\\n\\n1. Add support for nested `SchemaModel` references (currently only supports scalar fields)\\n2. Add support for array fields of SchemaModels\\n3. Consider auto-generating field selections based on the output type to reduce boilerplate\\n\\n## Related Documentation\\n\\n- [Contracts README](../../packages/lssm/libs/contracts/README.md)\\n- [Onboarding System](./hcircle/IMPLEMENTATION_COMPLETE.md)\\n- [GraphQL Architecture](./graphql/architecture.md)\\n\",\n },\n];\nregisterDocBlocks(tech_contracts_graphql_typed_outputs_DocBlocks);\n"],"mappings":";;;AAGA,MAAaA,iDAA6D,CACxE;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAQ;EAAa;EAAwB;CACpD,MAAM;CACP,CACF;AACD,kBAAkB,+CAA+C"}
@@ -3,4 +3,5 @@ import { DocBlock } from "@lssm/lib.contracts/docs";
3
3
  //#region src/docs/tech/contracts/migrations.docblock.d.ts
4
4
  declare const tech_contracts_migrations_DocBlocks: DocBlock[];
5
5
  //#endregion
6
- export { tech_contracts_migrations_DocBlocks };
6
+ export { tech_contracts_migrations_DocBlocks };
7
+ //# sourceMappingURL=migrations.docblock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.docblock.d.ts","names":[],"sources":["../../../../src/docs/tech/contracts/migrations.docblock.ts"],"sourcesContent":[],"mappings":";;;cAGa,qCAAqC"}
@@ -18,4 +18,5 @@ const tech_contracts_migrations_DocBlocks = [{
18
18
  registerDocBlocks(tech_contracts_migrations_DocBlocks);
19
19
 
20
20
  //#endregion
21
- export { tech_contracts_migrations_DocBlocks };
21
+ export { tech_contracts_migrations_DocBlocks };
22
+ //# sourceMappingURL=migrations.docblock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.docblock.js","names":["tech_contracts_migrations_DocBlocks: DocBlock[]"],"sources":["../../../../src/docs/tech/contracts/migrations.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@lssm/lib.contracts/docs';\nimport { registerDocBlocks } from '../../registry';\n\nexport const tech_contracts_migrations_DocBlocks: DocBlock[] = [\n {\n id: 'docs.tech.contracts.migrations',\n title: 'MigrationSpec Overview',\n summary:\n '`MigrationSpec` provides a declarative plan for schema/data/validation steps so migrations can be generated, reviewed, and executed safely by tooling. Each spec captures ownership metadata, ordered up/down steps, and optional dependency information. Runtime tooling can consume the spec to run SQL/data scripts with pre/post checks and produce audit logs.',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/tech/contracts/migrations',\n tags: ['tech', 'contracts', 'migrations'],\n body: \"# MigrationSpec Overview\\n\\n## Purpose\\n\\n`MigrationSpec` provides a declarative plan for schema/data/validation steps so migrations can be generated, reviewed, and executed safely by tooling. Each spec captures ownership metadata, ordered up/down steps, and optional dependency information. Runtime tooling can consume the spec to run SQL/data scripts with pre/post checks and produce audit logs.\\n\\n## Location\\n\\n- Spec + registry: `packages/libs/contracts/src/migrations.ts`\\n- Tests: `packages/.../migrations.test.ts`\\n\\n## Schema\\n\\n```ts\\nexport interface MigrationSpec {\\n meta: MigrationMeta; // ownership metadata + { name, version }\\n plan: {\\n up: MigrationStep[]; // required forward plan\\n down?: MigrationStep[];// optional rollback steps\\n };\\n dependencies?: string[]; // optional list of migration keys this depends on\\n}\\n```\\n\\n- **MigrationStep**\\n - `kind`: `'schema' | 'data' | 'validation'`\\n - Shared fields: `description?`, `timeoutMs?`, `retries?`, `preChecks?`, `postChecks?`\\n - `schema`: `sql` string executed in transactional context\\n - `data`: arbitrary `script` (e.g., JS/TS snippet, path to file, instructions)\\n - `validation`: `assertion` expression verifying state (e.g., SQL returning boolean)\\n- **MigrationCheck** (`preChecks`/`postChecks`)\\n - `description`: human context\\n - `expression`: expression or SQL snippet to evaluate before/after the step\\n- **Dependencies**\\n - Array of migration keys (`\\\"boundedContext.namespace.timestamp_slug\\\"`) used to ensure the registry executes prerequisites first\\n\\n## Registry Usage\\n\\n```ts\\nimport { MigrationRegistry } from '@lssm/lib.contracts/migrations';\\nimport { AddUsersMigration } from './migrations/core.db.2025_01_add_users';\\n\\nconst registry = new MigrationRegistry();\\nregistry.register(AddUsersMigration);\\n\\nconst migration = registry.get('core.db.2025_01_add_users');\\nconst all = registry.list(); // sorted by name/version\\n```\\n\\n## Authoring Guidelines\\n\\n1. Name migrations with timestamped slugs (`domain.db.YYYY_MM_description`) for clarity.\\n2. Capture ownership metadata (`owners`, `tags`, `stability`) so tooling can route approvals.\\n3. Prefer small, reversible steps. Use `plan.down` when safe; otherwise document fallback.\\n4. Use `preChecks`/`postChecks` for critical invariants (row counts, schema existence).\\n5. Specify dependencies explicitly to avoid parallel execution hazards.\\n6. For large data scripts, use `script` as a pointer (URL, file path) rather than embedding code directly.\\n\\n## Tooling Roadmap\\n\\nUpcoming CLI support (Phase 4 plan):\\n\\n- `contractspec create --type migration` (scaffolds spec skeleton)\\n- `contractspec build <migration>` (generate executor harness)\\n- `contractspec migrate create/up/down/status` orchestration commands\\n\\nThe current implementation focuses on the spec/registry foundation so downstream tooling can be layered iteratively.\\n\\n\",\n },\n];\nregisterDocBlocks(tech_contracts_migrations_DocBlocks);\n"],"mappings":";;;AAGA,MAAaA,sCAAkD,CAC7D;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAQ;EAAa;EAAa;CACzC,MAAM;CACP,CACF;AACD,kBAAkB,oCAAoC"}
@@ -3,4 +3,5 @@ import { DocBlock } from "@lssm/lib.contracts/docs";
3
3
  //#region src/docs/tech/contracts/openapi-export.docblock.d.ts
4
4
  declare const tech_contracts_openapi_export_DocBlocks: DocBlock[];
5
5
  //#endregion
6
- export { tech_contracts_openapi_export_DocBlocks };
6
+ export { tech_contracts_openapi_export_DocBlocks };
7
+ //# sourceMappingURL=openapi-export.docblock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-export.docblock.d.ts","names":[],"sources":["../../../../src/docs/tech/contracts/openapi-export.docblock.ts"],"sourcesContent":[],"mappings":";;;cAGa,yCAAyC"}
@@ -55,4 +55,5 @@ The registry module must export one of:
55
55
  registerDocBlocks(tech_contracts_openapi_export_DocBlocks);
56
56
 
57
57
  //#endregion
58
- export { tech_contracts_openapi_export_DocBlocks };
58
+ export { tech_contracts_openapi_export_DocBlocks };
59
+ //# sourceMappingURL=openapi-export.docblock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-export.docblock.js","names":["tech_contracts_openapi_export_DocBlocks: DocBlock[]"],"sources":["../../../../src/docs/tech/contracts/openapi-export.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@lssm/lib.contracts/docs';\nimport { registerDocBlocks } from '../../registry';\n\nexport const tech_contracts_openapi_export_DocBlocks: DocBlock[] = [\n {\n id: 'docs.tech.contracts.openapi-export',\n title: 'OpenAPI export (OpenAPI 3.1) from SpecRegistry',\n summary:\n 'Generate a deterministic OpenAPI document from a SpecRegistry using jsonSchemaForSpec + REST transport metadata.',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/tech/contracts/openapi-export',\n tags: ['contracts', 'openapi', 'rest'],\n body: `## OpenAPI export (OpenAPI 3.1) from SpecRegistry\n\n### Purpose\n\nContractSpec specs can be exported into an **OpenAPI 3.1** document for tooling (SDK generation, docs, gateways).\n\nThe export is **spec-first**:\n\n- Uses \\`jsonSchemaForSpec(spec)\\` for input/output JSON Schema (from SchemaModel → zod → JSON Schema)\n- Uses \\`spec.transport.rest.method/path\\` when present\n- Falls back to deterministic defaults:\n - Method: \\`POST\\` for commands, \\`GET\\` for queries\n - Path: \\`defaultRestPath(name, version)\\` → \\`/<dot/name>/v<version>\\`\n\n### Library API\n\n- Function: \\`openApiForRegistry(registry, options?)\\`\n- Location: \\`@lssm/lib.contracts/openapi\\`\n\n### CLI\n\nExport OpenAPI from a registry module:\n\n\\`\\`\\`bash\ncontractspec openapi --registry ./src/registry.ts --out ./openapi.json\n\\`\\`\\`\n\nThe registry module must export one of:\n\n- \\`registry: SpecRegistry\\`\n- \\`default(): SpecRegistry | Promise<SpecRegistry>\\`\n- \\`createRegistry(): SpecRegistry | Promise<SpecRegistry>\\`\n\n### Notes / limitations (current)\n\n- Responses are generated as a basic \\`200\\` response (plus schemas when available).\n- Query (GET) inputs are currently represented as a JSON request body when an input schema exists.\n- Errors are not yet expanded into OpenAPI responses; that will be added when we standardize error envelopes.`,\n },\n];\n\nregisterDocBlocks(tech_contracts_openapi_export_DocBlocks);\n"],"mappings":";;;AAGA,MAAaA,0CAAsD,CACjE;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAa;EAAW;EAAO;CACtC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCP,CACF;AAED,kBAAkB,wCAAwC"}
@@ -3,4 +3,5 @@ import { DocBlock } from "@lssm/lib.contracts/docs";
3
3
  //#region src/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts
4
4
  declare const tech_contracts_ops_to_presentation_linking_DocBlocks: DocBlock[];
5
5
  //#endregion
6
- export { tech_contracts_ops_to_presentation_linking_DocBlocks };
6
+ export { tech_contracts_ops_to_presentation_linking_DocBlocks };
7
+ //# sourceMappingURL=ops-to-presentation-linking.docblock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ops-to-presentation-linking.docblock.d.ts","names":[],"sources":["../../../../src/docs/tech/contracts/ops-to-presentation-linking.docblock.ts"],"sourcesContent":[],"mappings":";;;cAGa,sDAAsD"}