@contractspec/lib.contracts 0.0.0-canary-20260113162409

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 (550) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/_virtual/rolldown_runtime.js +37 -0
  4. package/dist/app-config/app-config.capability.d.ts +7 -0
  5. package/dist/app-config/app-config.capability.js +23 -0
  6. package/dist/app-config/app-config.feature.d.ts +11 -0
  7. package/dist/app-config/app-config.feature.js +61 -0
  8. package/dist/app-config/branding.d.ts +55 -0
  9. package/dist/app-config/branding.js +0 -0
  10. package/dist/app-config/contracts.d.ts +245 -0
  11. package/dist/app-config/contracts.js +395 -0
  12. package/dist/app-config/docs/app-config.docblock.d.ts +6 -0
  13. package/dist/app-config/docs/app-config.docblock.js +21 -0
  14. package/dist/app-config/events.d.ts +122 -0
  15. package/dist/app-config/events.js +174 -0
  16. package/dist/app-config/index.d.ts +10 -0
  17. package/dist/app-config/index.js +9 -0
  18. package/dist/app-config/lifecycle-contracts.d.ts +273 -0
  19. package/dist/app-config/lifecycle-contracts.js +440 -0
  20. package/dist/app-config/lifecycle.d.ts +27 -0
  21. package/dist/app-config/lifecycle.js +0 -0
  22. package/dist/app-config/runtime.d.ts +120 -0
  23. package/dist/app-config/runtime.js +617 -0
  24. package/dist/app-config/spec.d.ts +175 -0
  25. package/dist/app-config/spec.js +19 -0
  26. package/dist/app-config/validation.d.ts +49 -0
  27. package/dist/app-config/validation.js +538 -0
  28. package/dist/capabilities/capabilities.d.ts +41 -0
  29. package/dist/capabilities/capabilities.js +48 -0
  30. package/dist/capabilities/docs/capabilities.docblock.d.ts +6 -0
  31. package/dist/capabilities/docs/capabilities.docblock.js +21 -0
  32. package/dist/capabilities/index.d.ts +3 -0
  33. package/dist/capabilities/index.js +4 -0
  34. package/dist/capabilities/openbanking.d.ts +10 -0
  35. package/dist/capabilities/openbanking.js +92 -0
  36. package/dist/client/index.d.ts +6 -0
  37. package/dist/client/index.js +9 -0
  38. package/dist/client/react/drivers/rn-reusables.d.ts +22 -0
  39. package/dist/client/react/drivers/rn-reusables.js +21 -0
  40. package/dist/client/react/drivers/shadcn.d.ts +12 -0
  41. package/dist/client/react/drivers/shadcn.js +11 -0
  42. package/dist/client/react/feature-render.d.ts +23 -0
  43. package/dist/client/react/feature-render.js +44 -0
  44. package/dist/client/react/form-render.d.ts +92 -0
  45. package/dist/client/react/form-render.js +301 -0
  46. package/dist/client/react/index.d.ts +5 -0
  47. package/dist/client/react/index.js +8 -0
  48. package/dist/contract-registry/index.d.ts +3 -0
  49. package/dist/contract-registry/index.js +3 -0
  50. package/dist/contract-registry/schemas.d.ts +124 -0
  51. package/dist/contract-registry/schemas.js +61 -0
  52. package/dist/contract-registry/types.d.ts +46 -0
  53. package/dist/contract-registry/types.js +0 -0
  54. package/dist/data-views/data-views.d.ts +5 -0
  55. package/dist/data-views/data-views.js +5 -0
  56. package/dist/data-views/docs/data-views.docblock.d.ts +6 -0
  57. package/dist/data-views/docs/data-views.docblock.js +21 -0
  58. package/dist/data-views/index.d.ts +4 -0
  59. package/dist/data-views/index.js +4 -0
  60. package/dist/data-views/query-generator.d.ts +40 -0
  61. package/dist/data-views/query-generator.js +48 -0
  62. package/dist/data-views/registry.d.ts +17 -0
  63. package/dist/data-views/registry.js +20 -0
  64. package/dist/data-views/runtime.d.ts +32 -0
  65. package/dist/data-views/runtime.js +68 -0
  66. package/dist/data-views/spec.d.ts +32 -0
  67. package/dist/data-views/spec.js +10 -0
  68. package/dist/data-views/types.d.ts +157 -0
  69. package/dist/data-views/types.js +0 -0
  70. package/dist/docs/accessibility_wcag_compliance_specs.docblock.d.ts +6 -0
  71. package/dist/docs/accessibility_wcag_compliance_specs.docblock.js +17 -0
  72. package/dist/docs/index.d.ts +6 -0
  73. package/dist/docs/index.js +30 -0
  74. package/dist/docs/meta.docs.d.ts +6 -0
  75. package/dist/docs/meta.docs.js +29 -0
  76. package/dist/docs/presentations.d.ts +31 -0
  77. package/dist/docs/presentations.js +57 -0
  78. package/dist/docs/registry.d.ts +23 -0
  79. package/dist/docs/registry.js +51 -0
  80. package/dist/docs/tech/auth/better-auth-nextjs.docblock.d.ts +6 -0
  81. package/dist/docs/tech/auth/better-auth-nextjs.docblock.js +81 -0
  82. package/dist/docs/tech/cli.docblock.d.ts +6 -0
  83. package/dist/docs/tech/cli.docblock.js +138 -0
  84. package/dist/docs/tech/contracts/README.docblock.d.ts +6 -0
  85. package/dist/docs/tech/contracts/README.docblock.js +21 -0
  86. package/dist/docs/tech/contracts/migrations.docblock.d.ts +6 -0
  87. package/dist/docs/tech/contracts/migrations.docblock.js +21 -0
  88. package/dist/docs/tech/contracts/openapi-export.docblock.d.ts +6 -0
  89. package/dist/docs/tech/contracts/openapi-export.docblock.js +58 -0
  90. package/dist/docs/tech/contracts/openapi-import.docblock.d.ts +6 -0
  91. package/dist/docs/tech/contracts/openapi-import.docblock.js +65 -0
  92. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts +6 -0
  93. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js +21 -0
  94. package/dist/docs/tech/contracts/overlays.docblock.d.ts +6 -0
  95. package/dist/docs/tech/contracts/overlays.docblock.js +21 -0
  96. package/dist/docs/tech/contracts/tests.docblock.d.ts +6 -0
  97. package/dist/docs/tech/contracts/tests.docblock.js +21 -0
  98. package/dist/docs/tech/contracts/themes.docblock.d.ts +6 -0
  99. package/dist/docs/tech/contracts/themes.docblock.js +21 -0
  100. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.d.ts +6 -0
  101. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js +126 -0
  102. package/dist/docs/tech/lifecycle-stage-system.docblock.d.ts +6 -0
  103. package/dist/docs/tech/lifecycle-stage-system.docblock.js +17 -0
  104. package/dist/docs/tech/llm/llm-integration.docblock.d.ts +7 -0
  105. package/dist/docs/tech/llm/llm-integration.docblock.js +358 -0
  106. package/dist/docs/tech/mcp-endpoints.docblock.d.ts +6 -0
  107. package/dist/docs/tech/mcp-endpoints.docblock.js +38 -0
  108. package/dist/docs/tech/presentation-runtime.docblock.d.ts +6 -0
  109. package/dist/docs/tech/presentation-runtime.docblock.js +17 -0
  110. package/dist/docs/tech/schema/README.docblock.d.ts +6 -0
  111. package/dist/docs/tech/schema/README.docblock.js +21 -0
  112. package/dist/docs/tech/studio/learning-events.docblock.d.ts +6 -0
  113. package/dist/docs/tech/studio/learning-events.docblock.js +49 -0
  114. package/dist/docs/tech/studio/learning-journeys.docblock.d.ts +6 -0
  115. package/dist/docs/tech/studio/learning-journeys.docblock.js +80 -0
  116. package/dist/docs/tech/studio/platform-admin-panel.docblock.d.ts +6 -0
  117. package/dist/docs/tech/studio/platform-admin-panel.docblock.js +85 -0
  118. package/dist/docs/tech/studio/project-access-teams.docblock.d.ts +6 -0
  119. package/dist/docs/tech/studio/project-access-teams.docblock.js +48 -0
  120. package/dist/docs/tech/studio/project-routing.docblock.d.ts +6 -0
  121. package/dist/docs/tech/studio/project-routing.docblock.js +68 -0
  122. package/dist/docs/tech/studio/sandbox-unlogged.docblock.d.ts +6 -0
  123. package/dist/docs/tech/studio/sandbox-unlogged.docblock.js +41 -0
  124. package/dist/docs/tech/studio/team-invitations.docblock.d.ts +6 -0
  125. package/dist/docs/tech/studio/team-invitations.docblock.js +70 -0
  126. package/dist/docs/tech/studio/workspace-ops.docblock.d.ts +6 -0
  127. package/dist/docs/tech/studio/workspace-ops.docblock.js +48 -0
  128. package/dist/docs/tech/studio/workspaces.docblock.d.ts +6 -0
  129. package/dist/docs/tech/studio/workspaces.docblock.js +63 -0
  130. package/dist/docs/tech/telemetry-ingest.docblock.d.ts +6 -0
  131. package/dist/docs/tech/telemetry-ingest.docblock.js +156 -0
  132. package/dist/docs/tech/vscode-extension.docblock.d.ts +6 -0
  133. package/dist/docs/tech/vscode-extension.docblock.js +102 -0
  134. package/dist/docs/tech-contracts.docs.d.ts +6 -0
  135. package/dist/docs/tech-contracts.docs.js +96 -0
  136. package/dist/docs/types.d.ts +41 -0
  137. package/dist/docs/types.js +0 -0
  138. package/dist/events.d.ts +47 -0
  139. package/dist/events.js +19 -0
  140. package/dist/examples/docs/examples.docblock.d.ts +6 -0
  141. package/dist/examples/docs/examples.docblock.js +165 -0
  142. package/dist/examples/index.d.ts +13 -0
  143. package/dist/examples/index.js +13 -0
  144. package/dist/examples/registry.d.ts +43 -0
  145. package/dist/examples/registry.js +88 -0
  146. package/dist/examples/schema.d.ts +282 -0
  147. package/dist/examples/schema.js +125 -0
  148. package/dist/examples/types.d.ts +167 -0
  149. package/dist/examples/types.js +43 -0
  150. package/dist/examples/validation.d.ts +65 -0
  151. package/dist/examples/validation.js +144 -0
  152. package/dist/experiments/docs/experiments.docblock.d.ts +6 -0
  153. package/dist/experiments/docs/experiments.docblock.js +21 -0
  154. package/dist/experiments/evaluator.d.ts +37 -0
  155. package/dist/experiments/evaluator.js +101 -0
  156. package/dist/experiments/spec-resolver.d.ts +17 -0
  157. package/dist/experiments/spec-resolver.js +0 -0
  158. package/dist/experiments/spec.d.ts +80 -0
  159. package/dist/experiments/spec.js +15 -0
  160. package/dist/features/index.d.ts +13 -0
  161. package/dist/features/index.js +12 -0
  162. package/dist/features/install.d.ts +22 -0
  163. package/dist/features/install.js +36 -0
  164. package/dist/features/registry.d.ts +26 -0
  165. package/dist/features/registry.js +49 -0
  166. package/dist/features/types.d.ts +88 -0
  167. package/dist/features/types.js +0 -0
  168. package/dist/features/validation.d.ts +8 -0
  169. package/dist/features/validation.js +14 -0
  170. package/dist/forms/docs/forms.docblock.d.ts +6 -0
  171. package/dist/forms/docs/forms.docblock.js +21 -0
  172. package/dist/forms/forms.d.ts +266 -0
  173. package/dist/forms/forms.js +143 -0
  174. package/dist/forms/index.d.ts +2 -0
  175. package/dist/forms/index.js +3 -0
  176. package/dist/index.d.ts +154 -0
  177. package/dist/index.js +132 -0
  178. package/dist/install.d.ts +77 -0
  179. package/dist/install.js +40 -0
  180. package/dist/integrations/binding.d.ts +17 -0
  181. package/dist/integrations/binding.js +0 -0
  182. package/dist/integrations/connection.d.ts +51 -0
  183. package/dist/integrations/connection.js +0 -0
  184. package/dist/integrations/docs/integrations.docblock.d.ts +6 -0
  185. package/dist/integrations/docs/integrations.docblock.js +94 -0
  186. package/dist/integrations/health.d.ts +21 -0
  187. package/dist/integrations/health.js +69 -0
  188. package/dist/integrations/index.d.ts +34 -0
  189. package/dist/integrations/index.js +23 -0
  190. package/dist/integrations/integrations.capability.d.ts +7 -0
  191. package/dist/integrations/integrations.capability.js +17 -0
  192. package/dist/integrations/integrations.feature.d.ts +11 -0
  193. package/dist/integrations/integrations.feature.js +67 -0
  194. package/dist/integrations/openbanking/contracts/accounts.d.ts +289 -0
  195. package/dist/integrations/openbanking/contracts/accounts.js +236 -0
  196. package/dist/integrations/openbanking/contracts/balances.d.ts +165 -0
  197. package/dist/integrations/openbanking/contracts/balances.js +166 -0
  198. package/dist/integrations/openbanking/contracts/index.d.ts +10 -0
  199. package/dist/integrations/openbanking/contracts/index.js +12 -0
  200. package/dist/integrations/openbanking/contracts/transactions.d.ts +213 -0
  201. package/dist/integrations/openbanking/contracts/transactions.js +217 -0
  202. package/dist/integrations/openbanking/guards.d.ts +12 -0
  203. package/dist/integrations/openbanking/guards.js +33 -0
  204. package/dist/integrations/openbanking/models.d.ts +228 -0
  205. package/dist/integrations/openbanking/models.js +240 -0
  206. package/dist/integrations/openbanking/openbanking.capability.d.ts +7 -0
  207. package/dist/integrations/openbanking/openbanking.capability.js +21 -0
  208. package/dist/integrations/openbanking/openbanking.feature.d.ts +11 -0
  209. package/dist/integrations/openbanking/openbanking.feature.js +76 -0
  210. package/dist/integrations/openbanking/telemetry.d.ts +15 -0
  211. package/dist/integrations/openbanking/telemetry.js +39 -0
  212. package/dist/integrations/operations.d.ts +437 -0
  213. package/dist/integrations/operations.js +392 -0
  214. package/dist/integrations/providers/calendar.d.ts +78 -0
  215. package/dist/integrations/providers/calendar.js +0 -0
  216. package/dist/integrations/providers/elevenlabs.d.ts +8 -0
  217. package/dist/integrations/providers/elevenlabs.js +56 -0
  218. package/dist/integrations/providers/email.d.ts +86 -0
  219. package/dist/integrations/providers/email.js +0 -0
  220. package/dist/integrations/providers/embedding.d.ts +24 -0
  221. package/dist/integrations/providers/embedding.js +0 -0
  222. package/dist/integrations/providers/gcs-storage.d.ts +8 -0
  223. package/dist/integrations/providers/gcs-storage.js +79 -0
  224. package/dist/integrations/providers/gmail.d.ts +8 -0
  225. package/dist/integrations/providers/gmail.js +91 -0
  226. package/dist/integrations/providers/google-calendar.d.ts +8 -0
  227. package/dist/integrations/providers/google-calendar.js +70 -0
  228. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +20 -0
  229. package/dist/integrations/providers/impls/elevenlabs-voice.js +95 -0
  230. package/dist/integrations/providers/impls/gcs-storage.d.ts +24 -0
  231. package/dist/integrations/providers/impls/gcs-storage.js +88 -0
  232. package/dist/integrations/providers/impls/gmail-inbound.d.ts +26 -0
  233. package/dist/integrations/providers/impls/gmail-inbound.js +200 -0
  234. package/dist/integrations/providers/impls/gmail-outbound.d.ts +18 -0
  235. package/dist/integrations/providers/impls/gmail-outbound.js +105 -0
  236. package/dist/integrations/providers/impls/google-calendar.d.ts +23 -0
  237. package/dist/integrations/providers/impls/google-calendar.js +154 -0
  238. package/dist/integrations/providers/impls/index.d.ts +15 -0
  239. package/dist/integrations/providers/impls/index.js +16 -0
  240. package/dist/integrations/providers/impls/mistral-embedding.d.ts +23 -0
  241. package/dist/integrations/providers/impls/mistral-embedding.js +41 -0
  242. package/dist/integrations/providers/impls/mistral-llm.d.ts +31 -0
  243. package/dist/integrations/providers/impls/mistral-llm.js +247 -0
  244. package/dist/integrations/providers/impls/postmark-email.d.ts +19 -0
  245. package/dist/integrations/providers/impls/postmark-email.js +55 -0
  246. package/dist/integrations/providers/impls/powens-client.d.ts +124 -0
  247. package/dist/integrations/providers/impls/powens-client.js +171 -0
  248. package/dist/integrations/providers/impls/powens-openbanking.d.ts +27 -0
  249. package/dist/integrations/providers/impls/powens-openbanking.js +218 -0
  250. package/dist/integrations/providers/impls/provider-factory.d.ts +26 -0
  251. package/dist/integrations/providers/impls/provider-factory.js +146 -0
  252. package/dist/integrations/providers/impls/qdrant-vector.d.ts +24 -0
  253. package/dist/integrations/providers/impls/qdrant-vector.js +69 -0
  254. package/dist/integrations/providers/impls/stripe-payments.d.ts +28 -0
  255. package/dist/integrations/providers/impls/stripe-payments.js +202 -0
  256. package/dist/integrations/providers/impls/twilio-sms.d.ts +20 -0
  257. package/dist/integrations/providers/impls/twilio-sms.js +58 -0
  258. package/dist/integrations/providers/index.d.ts +22 -0
  259. package/dist/integrations/providers/index.js +13 -0
  260. package/dist/integrations/providers/llm.d.ts +82 -0
  261. package/dist/integrations/providers/llm.js +0 -0
  262. package/dist/integrations/providers/mistral.d.ts +8 -0
  263. package/dist/integrations/providers/mistral.js +72 -0
  264. package/dist/integrations/providers/openbanking.d.ts +128 -0
  265. package/dist/integrations/providers/openbanking.js +0 -0
  266. package/dist/integrations/providers/payments.d.ts +109 -0
  267. package/dist/integrations/providers/payments.js +0 -0
  268. package/dist/integrations/providers/postmark.d.ts +8 -0
  269. package/dist/integrations/providers/postmark.js +72 -0
  270. package/dist/integrations/providers/powens.d.ts +8 -0
  271. package/dist/integrations/providers/powens.js +120 -0
  272. package/dist/integrations/providers/qdrant.d.ts +8 -0
  273. package/dist/integrations/providers/qdrant.js +77 -0
  274. package/dist/integrations/providers/registry.d.ts +11 -0
  275. package/dist/integrations/providers/registry.js +34 -0
  276. package/dist/integrations/providers/sms.d.ts +34 -0
  277. package/dist/integrations/providers/sms.js +0 -0
  278. package/dist/integrations/providers/storage.d.ts +60 -0
  279. package/dist/integrations/providers/storage.js +0 -0
  280. package/dist/integrations/providers/stripe.d.ts +8 -0
  281. package/dist/integrations/providers/stripe.js +87 -0
  282. package/dist/integrations/providers/twilio-sms.d.ts +8 -0
  283. package/dist/integrations/providers/twilio-sms.js +65 -0
  284. package/dist/integrations/providers/vector-store.d.ts +43 -0
  285. package/dist/integrations/providers/vector-store.js +0 -0
  286. package/dist/integrations/providers/voice.d.ts +34 -0
  287. package/dist/integrations/providers/voice.js +0 -0
  288. package/dist/integrations/runtime.d.ts +99 -0
  289. package/dist/integrations/runtime.js +186 -0
  290. package/dist/integrations/secrets/aws-secret-manager.d.ts +31 -0
  291. package/dist/integrations/secrets/aws-secret-manager.js +231 -0
  292. package/dist/integrations/secrets/env-secret-provider.d.ts +31 -0
  293. package/dist/integrations/secrets/env-secret-provider.js +81 -0
  294. package/dist/integrations/secrets/gcp-secret-manager.d.ts +32 -0
  295. package/dist/integrations/secrets/gcp-secret-manager.js +229 -0
  296. package/dist/integrations/secrets/index.d.ts +7 -0
  297. package/dist/integrations/secrets/index.js +8 -0
  298. package/dist/integrations/secrets/manager.d.ts +47 -0
  299. package/dist/integrations/secrets/manager.js +103 -0
  300. package/dist/integrations/secrets/provider.d.ts +52 -0
  301. package/dist/integrations/secrets/provider.js +58 -0
  302. package/dist/integrations/secrets/scaleway-secret-manager.d.ts +38 -0
  303. package/dist/integrations/secrets/scaleway-secret-manager.js +247 -0
  304. package/dist/integrations/secrets-types.d.ts +17 -0
  305. package/dist/integrations/secrets-types.js +0 -0
  306. package/dist/integrations/spec.d.ts +77 -0
  307. package/dist/integrations/spec.js +22 -0
  308. package/dist/jobs/define-job.d.ts +18 -0
  309. package/dist/jobs/define-job.js +16 -0
  310. package/dist/jobs/gcp-cloud-tasks.d.ts +41 -0
  311. package/dist/jobs/gcp-cloud-tasks.js +53 -0
  312. package/dist/jobs/gcp-pubsub.d.ts +25 -0
  313. package/dist/jobs/gcp-pubsub.js +39 -0
  314. package/dist/jobs/handlers/gmail-sync-handler.d.ts +9 -0
  315. package/dist/jobs/handlers/gmail-sync-handler.js +9 -0
  316. package/dist/jobs/handlers/index.d.ts +9 -0
  317. package/dist/jobs/handlers/index.js +12 -0
  318. package/dist/jobs/handlers/ping-handler.d.ts +10 -0
  319. package/dist/jobs/handlers/ping-handler.js +15 -0
  320. package/dist/jobs/handlers/storage-document-handler.d.ts +12 -0
  321. package/dist/jobs/handlers/storage-document-handler.js +14 -0
  322. package/dist/jobs/index.d.ts +3 -0
  323. package/dist/jobs/index.js +4 -0
  324. package/dist/jobs/memory-queue.d.ts +18 -0
  325. package/dist/jobs/memory-queue.js +71 -0
  326. package/dist/jobs/queue.d.ts +131 -0
  327. package/dist/jobs/queue.js +33 -0
  328. package/dist/jobs/scaleway-sqs-queue.d.ts +30 -0
  329. package/dist/jobs/scaleway-sqs-queue.js +153 -0
  330. package/dist/jsonschema.d.ts +42 -0
  331. package/dist/jsonschema.js +51 -0
  332. package/dist/knowledge/binding.d.ts +25 -0
  333. package/dist/knowledge/binding.js +0 -0
  334. package/dist/knowledge/docs/knowledge.docblock.d.ts +6 -0
  335. package/dist/knowledge/docs/knowledge.docblock.js +21 -0
  336. package/dist/knowledge/index.d.ts +11 -0
  337. package/dist/knowledge/index.js +10 -0
  338. package/dist/knowledge/ingestion/document-processor.d.ts +24 -0
  339. package/dist/knowledge/ingestion/document-processor.js +54 -0
  340. package/dist/knowledge/ingestion/embedding-service.d.ts +12 -0
  341. package/dist/knowledge/ingestion/embedding-service.js +25 -0
  342. package/dist/knowledge/ingestion/gmail-adapter.d.ts +18 -0
  343. package/dist/knowledge/ingestion/gmail-adapter.js +51 -0
  344. package/dist/knowledge/ingestion/index.d.ts +6 -0
  345. package/dist/knowledge/ingestion/index.js +7 -0
  346. package/dist/knowledge/ingestion/storage-adapter.d.ts +15 -0
  347. package/dist/knowledge/ingestion/storage-adapter.js +26 -0
  348. package/dist/knowledge/ingestion/vector-indexer.d.ts +18 -0
  349. package/dist/knowledge/ingestion/vector-indexer.js +32 -0
  350. package/dist/knowledge/knowledge.capability.d.ts +7 -0
  351. package/dist/knowledge/knowledge.capability.js +21 -0
  352. package/dist/knowledge/knowledge.feature.d.ts +11 -0
  353. package/dist/knowledge/knowledge.feature.js +68 -0
  354. package/dist/knowledge/operations.d.ts +318 -0
  355. package/dist/knowledge/operations.js +321 -0
  356. package/dist/knowledge/query/index.d.ts +2 -0
  357. package/dist/knowledge/query/index.js +3 -0
  358. package/dist/knowledge/query/service.d.ts +29 -0
  359. package/dist/knowledge/query/service.js +65 -0
  360. package/dist/knowledge/runtime.d.ts +32 -0
  361. package/dist/knowledge/runtime.js +49 -0
  362. package/dist/knowledge/source.d.ts +32 -0
  363. package/dist/knowledge/source.js +0 -0
  364. package/dist/knowledge/spaces/email-threads.d.ts +7 -0
  365. package/dist/knowledge/spaces/email-threads.js +37 -0
  366. package/dist/knowledge/spaces/financial-docs.d.ts +7 -0
  367. package/dist/knowledge/spaces/financial-docs.js +37 -0
  368. package/dist/knowledge/spaces/financial-overview.d.ts +7 -0
  369. package/dist/knowledge/spaces/financial-overview.js +41 -0
  370. package/dist/knowledge/spaces/index.d.ts +7 -0
  371. package/dist/knowledge/spaces/index.js +8 -0
  372. package/dist/knowledge/spaces/product-canon.d.ts +7 -0
  373. package/dist/knowledge/spaces/product-canon.js +37 -0
  374. package/dist/knowledge/spaces/support-faq.d.ts +7 -0
  375. package/dist/knowledge/spaces/support-faq.js +40 -0
  376. package/dist/knowledge/spaces/uploaded-docs.d.ts +7 -0
  377. package/dist/knowledge/spaces/uploaded-docs.js +37 -0
  378. package/dist/knowledge/spec.d.ts +46 -0
  379. package/dist/knowledge/spec.js +17 -0
  380. package/dist/llm/exporters.d.ts +70 -0
  381. package/dist/llm/exporters.js +542 -0
  382. package/dist/llm/index.d.ts +4 -0
  383. package/dist/llm/index.js +4 -0
  384. package/dist/llm/prompts.d.ts +52 -0
  385. package/dist/llm/prompts.js +410 -0
  386. package/dist/llm/types.d.ts +215 -0
  387. package/dist/llm/types.js +0 -0
  388. package/dist/markdown.d.ts +22 -0
  389. package/dist/markdown.js +119 -0
  390. package/dist/migrations.d.ts +52 -0
  391. package/dist/migrations.js +31 -0
  392. package/dist/model-registry.d.ts +13 -0
  393. package/dist/model-registry.js +33 -0
  394. package/dist/onboarding-base.d.ts +138 -0
  395. package/dist/onboarding-base.js +195 -0
  396. package/dist/openapi.d.ts +31 -0
  397. package/dist/openapi.js +82 -0
  398. package/dist/operations/index.d.ts +3 -0
  399. package/dist/operations/index.js +4 -0
  400. package/dist/operations/operation.d.ts +186 -0
  401. package/dist/operations/operation.js +35 -0
  402. package/dist/operations/registry.d.ts +54 -0
  403. package/dist/operations/registry.js +176 -0
  404. package/dist/ownership.d.ts +84 -0
  405. package/dist/ownership.js +38 -0
  406. package/dist/policy/docs/policy.docblock.d.ts +6 -0
  407. package/dist/policy/docs/policy.docblock.js +21 -0
  408. package/dist/policy/engine.d.ts +40 -0
  409. package/dist/policy/engine.js +225 -0
  410. package/dist/policy/index.d.ts +5 -0
  411. package/dist/policy/index.js +5 -0
  412. package/dist/policy/opa-adapter.d.ts +45 -0
  413. package/dist/policy/opa-adapter.js +71 -0
  414. package/dist/policy/registry.d.ts +9 -0
  415. package/dist/policy/registry.js +11 -0
  416. package/dist/policy/spec.d.ts +103 -0
  417. package/dist/policy/spec.js +0 -0
  418. package/dist/presentations/docs/presentations-conventions.docblock.d.ts +6 -0
  419. package/dist/presentations/docs/presentations-conventions.docblock.js +21 -0
  420. package/dist/presentations/index.d.ts +4 -0
  421. package/dist/presentations/index.js +5 -0
  422. package/dist/presentations/presentations.d.ts +50 -0
  423. package/dist/presentations/presentations.js +7 -0
  424. package/dist/presentations/registry.d.ts +10 -0
  425. package/dist/presentations/registry.js +12 -0
  426. package/dist/presentations/transform-engine.d.ts +66 -0
  427. package/dist/presentations/transform-engine.js +282 -0
  428. package/dist/prompt.d.ts +53 -0
  429. package/dist/prompt.js +10 -0
  430. package/dist/promptRegistry.d.ts +15 -0
  431. package/dist/promptRegistry.js +31 -0
  432. package/dist/regenerator/adapters.d.ts +19 -0
  433. package/dist/regenerator/adapters.js +0 -0
  434. package/dist/regenerator/docs/regenerator.docblock.d.ts +6 -0
  435. package/dist/regenerator/docs/regenerator.docblock.js +21 -0
  436. package/dist/regenerator/executor.d.ts +70 -0
  437. package/dist/regenerator/executor.js +86 -0
  438. package/dist/regenerator/index.d.ts +7 -0
  439. package/dist/regenerator/index.js +6 -0
  440. package/dist/regenerator/service.d.ts +33 -0
  441. package/dist/regenerator/service.js +93 -0
  442. package/dist/regenerator/sinks.d.ts +26 -0
  443. package/dist/regenerator/sinks.js +32 -0
  444. package/dist/regenerator/types.d.ts +107 -0
  445. package/dist/regenerator/types.js +0 -0
  446. package/dist/regenerator/utils.d.ts +9 -0
  447. package/dist/regenerator/utils.js +51 -0
  448. package/dist/registry-utils.d.ts +106 -0
  449. package/dist/registry-utils.js +122 -0
  450. package/dist/registry.d.ts +32 -0
  451. package/dist/registry.js +61 -0
  452. package/dist/resources.d.ts +64 -0
  453. package/dist/resources.js +50 -0
  454. package/dist/schema-to-markdown.d.ts +54 -0
  455. package/dist/schema-to-markdown.js +217 -0
  456. package/dist/server/contracts-adapter-hydration.d.ts +15 -0
  457. package/dist/server/contracts-adapter-hydration.js +41 -0
  458. package/dist/server/contracts-adapter-input.d.ts +9 -0
  459. package/dist/server/contracts-adapter-input.js +83 -0
  460. package/dist/server/graphql-pothos.d.ts +31 -0
  461. package/dist/server/graphql-pothos.js +134 -0
  462. package/dist/server/index.d.ts +9 -0
  463. package/dist/server/index.js +10 -0
  464. package/dist/server/mcp/createMcpServer.d.ts +15 -0
  465. package/dist/server/mcp/createMcpServer.js +27 -0
  466. package/dist/server/mcp/mcpTypes.d.ts +27 -0
  467. package/dist/server/mcp/mcpTypes.js +0 -0
  468. package/dist/server/mcp/registerPresentations.d.ts +7 -0
  469. package/dist/server/mcp/registerPresentations.js +54 -0
  470. package/dist/server/mcp/registerPrompts.d.ts +8 -0
  471. package/dist/server/mcp/registerPrompts.js +41 -0
  472. package/dist/server/mcp/registerResources.d.ts +8 -0
  473. package/dist/server/mcp/registerResources.js +35 -0
  474. package/dist/server/mcp/registerTools.d.ts +8 -0
  475. package/dist/server/mcp/registerTools.js +22 -0
  476. package/dist/server/provider-mcp.d.ts +2 -0
  477. package/dist/server/provider-mcp.js +3 -0
  478. package/dist/server/rest-elysia.d.ts +40 -0
  479. package/dist/server/rest-elysia.js +20 -0
  480. package/dist/server/rest-express.d.ts +16 -0
  481. package/dist/server/rest-express.js +36 -0
  482. package/dist/server/rest-generic.d.ts +32 -0
  483. package/dist/server/rest-generic.js +124 -0
  484. package/dist/server/rest-next-app.d.ts +35 -0
  485. package/dist/server/rest-next-app.js +38 -0
  486. package/dist/server/rest-next-mcp.d.ts +11 -0
  487. package/dist/server/rest-next-mcp.js +45 -0
  488. package/dist/server/rest-next-pages.d.ts +9 -0
  489. package/dist/server/rest-next-pages.js +22 -0
  490. package/dist/telemetry/anomaly.d.ts +27 -0
  491. package/dist/telemetry/anomaly.js +48 -0
  492. package/dist/telemetry/docs/telemetry.docblock.d.ts +6 -0
  493. package/dist/telemetry/docs/telemetry.docblock.js +21 -0
  494. package/dist/telemetry/index.d.ts +4 -0
  495. package/dist/telemetry/index.js +5 -0
  496. package/dist/telemetry/spec.d.ts +91 -0
  497. package/dist/telemetry/spec.js +42 -0
  498. package/dist/telemetry/tracker.d.ts +51 -0
  499. package/dist/telemetry/tracker.js +76 -0
  500. package/dist/tests/index.d.ts +3 -0
  501. package/dist/tests/index.js +4 -0
  502. package/dist/tests/runner.d.ts +43 -0
  503. package/dist/tests/runner.js +150 -0
  504. package/dist/tests/spec.d.ts +82 -0
  505. package/dist/tests/spec.js +34 -0
  506. package/dist/themes.d.ts +51 -0
  507. package/dist/themes.js +17 -0
  508. package/dist/translations/catalog.d.ts +28 -0
  509. package/dist/translations/catalog.js +0 -0
  510. package/dist/translations/tenant.d.ts +15 -0
  511. package/dist/translations/tenant.js +0 -0
  512. package/dist/types.d.ts +92 -0
  513. package/dist/types.js +0 -0
  514. package/dist/versioning/index.d.ts +3 -0
  515. package/dist/versioning/index.js +4 -0
  516. package/dist/versioning/types.d.ts +127 -0
  517. package/dist/versioning/types.js +24 -0
  518. package/dist/versioning/utils.d.ts +95 -0
  519. package/dist/versioning/utils.js +180 -0
  520. package/dist/workflow/adapters/db-adapter.d.ts +46 -0
  521. package/dist/workflow/adapters/db-adapter.js +83 -0
  522. package/dist/workflow/adapters/file-adapter.d.ts +14 -0
  523. package/dist/workflow/adapters/file-adapter.js +11 -0
  524. package/dist/workflow/adapters/index.d.ts +4 -0
  525. package/dist/workflow/adapters/index.js +5 -0
  526. package/dist/workflow/adapters/memory-store.d.ts +18 -0
  527. package/dist/workflow/adapters/memory-store.js +58 -0
  528. package/dist/workflow/expression.d.ts +9 -0
  529. package/dist/workflow/expression.js +99 -0
  530. package/dist/workflow/index.d.ts +17 -0
  531. package/dist/workflow/index.js +16 -0
  532. package/dist/workflow/overview.docblock.d.ts +6 -0
  533. package/dist/workflow/overview.docblock.js +21 -0
  534. package/dist/workflow/runner.d.ts +77 -0
  535. package/dist/workflow/runner.js +337 -0
  536. package/dist/workflow/sla-monitor.d.ts +20 -0
  537. package/dist/workflow/sla-monitor.js +47 -0
  538. package/dist/workflow/spec.d.ts +93 -0
  539. package/dist/workflow/spec.js +11 -0
  540. package/dist/workflow/state.d.ts +35 -0
  541. package/dist/workflow/state.js +0 -0
  542. package/dist/workflow/validation.d.ts +29 -0
  543. package/dist/workflow/validation.js +176 -0
  544. package/dist/workspace-config/contractsrc-schema.d.ts +1162 -0
  545. package/dist/workspace-config/contractsrc-schema.js +421 -0
  546. package/dist/workspace-config/index.d.ts +2 -0
  547. package/dist/workspace-config/index.js +3 -0
  548. package/dist/workspace-config/workspace-config.docblock.d.ts +6 -0
  549. package/dist/workspace-config/workspace-config.docblock.js +45 -0
  550. package/package.json +618 -0
@@ -0,0 +1,86 @@
1
+ //#region src/regenerator/executor.ts
2
+ var ProposalExecutor = class {
3
+ constructor(deps = {}) {
4
+ this.deps = deps;
5
+ }
6
+ async execute(context, proposal, options = {}) {
7
+ const startedAt = /* @__PURE__ */ new Date();
8
+ const actionResults = [];
9
+ for (const [index, action] of proposal.actions.entries()) {
10
+ const result = await this.executeAction({
11
+ index,
12
+ action,
13
+ context,
14
+ proposal,
15
+ options
16
+ });
17
+ actionResults.push(result);
18
+ }
19
+ const finishedAt = /* @__PURE__ */ new Date();
20
+ const summaryStatus = summarizeStatus(actionResults);
21
+ return {
22
+ proposalId: proposal.id,
23
+ contextId: context.id,
24
+ startedAt,
25
+ finishedAt,
26
+ status: summaryStatus,
27
+ actions: actionResults
28
+ };
29
+ }
30
+ async executeAction({ index, action, context, proposal, options }) {
31
+ const startedAt = /* @__PURE__ */ new Date();
32
+ const dryRun = options.dryRun ?? false;
33
+ const complete = (status, params = {}) => ({
34
+ index,
35
+ action,
36
+ status,
37
+ startedAt,
38
+ finishedAt: /* @__PURE__ */ new Date(),
39
+ reason: params.reason,
40
+ output: params.output,
41
+ error: params.error
42
+ });
43
+ if (dryRun) return complete("skipped", { reason: "dry_run" });
44
+ try {
45
+ switch (action.kind) {
46
+ case "update_blueprint": {
47
+ const updater = this.deps.blueprintUpdater;
48
+ if (!updater) return complete("skipped", { reason: "missing_blueprint_updater" });
49
+ return complete("success", { output: await updater.applyBlueprintUpdate(context, proposal, action) });
50
+ }
51
+ case "update_tenant_config": {
52
+ const updater = this.deps.tenantConfigUpdater;
53
+ if (!updater) return complete("skipped", { reason: "missing_tenant_config_updater" });
54
+ return complete("success", { output: await updater.applyTenantConfigUpdate(context, proposal, action) });
55
+ }
56
+ case "run_tests": {
57
+ const executor = this.deps.testExecutor;
58
+ if (!executor) return complete("skipped", { reason: "missing_test_executor" });
59
+ return complete("success", { output: await executor.runTests(context, proposal, action) });
60
+ }
61
+ case "run_migrations": {
62
+ const executor = this.deps.migrationExecutor;
63
+ if (!executor) return complete("skipped", { reason: "missing_migration_executor" });
64
+ return complete("success", { output: await executor.runMigrations(context, proposal, action) });
65
+ }
66
+ case "trigger_regeneration": {
67
+ const trigger = this.deps.regenerationTrigger;
68
+ if (!trigger) return complete("skipped", { reason: "missing_regeneration_trigger" });
69
+ return complete("success", { output: await trigger.triggerRegeneration(context, proposal, action) });
70
+ }
71
+ default: return complete("skipped", { reason: "unknown_action" });
72
+ }
73
+ } catch (error) {
74
+ return complete("failed", { error: error instanceof Error ? error : new Error(String(error)) });
75
+ }
76
+ }
77
+ };
78
+ function summarizeStatus(actionResults) {
79
+ if (actionResults.some((result) => result.status === "failed")) return "failed";
80
+ if (actionResults.some((result) => result.status === "success") && actionResults.some((result) => result.status === "skipped")) return "partial";
81
+ if (actionResults.every((result) => result.status === "skipped")) return "partial";
82
+ return "success";
83
+ }
84
+
85
+ //#endregion
86
+ export { ProposalExecutor };
@@ -0,0 +1,7 @@
1
+ import { BehaviorSignal, BehaviorSignalEnvelope, ErrorSignal, ErrorSignalEnvelope, ProposalAction, ProposalBlocker, ProposalConfidence, ProposalSink, ProposalTarget, RegenerationContext, RegenerationRule, RegeneratorSignal, SpecChangeProposal, TelemetrySignal, TelemetrySignalEnvelope } from "./types.js";
2
+ import { BehaviorSignalProvider, ErrorSignalProvider, SignalAdapters, TelemetrySignalProvider } from "./adapters.js";
3
+ import { RegeneratorOptions, RegeneratorService } from "./service.js";
4
+ import { ActionExecutionResult, BlueprintUpdater, ExecutionStatus, MigrationExecutor, ProposalExecutionResult, ProposalExecutor, ProposalExecutorDeps, ProposalExecutorOptions, RegenerationTrigger, RunMigrationsAction, RunTestsAction, TenantConfigUpdater, TestExecutor, TriggerRegenerationAction, UpdateBlueprintAction, UpdateTenantConfigAction } from "./executor.js";
5
+ import { behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope } from "./utils.js";
6
+ import { ExecutorProposalSink, ExecutorResultPayload, ExecutorSinkLogger, ExecutorSinkOptions } from "./sinks.js";
7
+ export { ActionExecutionResult, BehaviorSignal, BehaviorSignalEnvelope, BehaviorSignalProvider, BlueprintUpdater, ErrorSignal, ErrorSignalEnvelope, ErrorSignalProvider, ExecutionStatus, ExecutorProposalSink, ExecutorResultPayload, ExecutorSinkLogger, ExecutorSinkOptions, MigrationExecutor, ProposalAction, ProposalBlocker, ProposalConfidence, ProposalExecutionResult, ProposalExecutor, ProposalExecutorDeps, ProposalExecutorOptions, ProposalSink, ProposalTarget, RegenerationContext, RegenerationRule, RegenerationTrigger, RegeneratorOptions, RegeneratorService, RegeneratorSignal, RunMigrationsAction, RunTestsAction, SignalAdapters, SpecChangeProposal, TelemetrySignal, TelemetrySignalEnvelope, TelemetrySignalProvider, TenantConfigUpdater, TestExecutor, TriggerRegenerationAction, UpdateBlueprintAction, UpdateTenantConfigAction, behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope };
@@ -0,0 +1,6 @@
1
+ import { behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope } from "./utils.js";
2
+ import { RegeneratorService } from "./service.js";
3
+ import { ProposalExecutor } from "./executor.js";
4
+ import { ExecutorProposalSink } from "./sinks.js";
5
+
6
+ export { ExecutorProposalSink, ProposalExecutor, RegeneratorService, behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope };
@@ -0,0 +1,33 @@
1
+ import { ProposalSink, RegenerationContext, RegenerationRule } from "./types.js";
2
+ import { SignalAdapters } from "./adapters.js";
3
+
4
+ //#region src/regenerator/service.d.ts
5
+ interface RegeneratorOptions {
6
+ contexts: RegenerationContext[];
7
+ adapters: SignalAdapters;
8
+ rules: RegenerationRule[];
9
+ sink: ProposalSink;
10
+ pollIntervalMs?: number;
11
+ batchDurationMs?: number;
12
+ clock?: () => Date;
13
+ }
14
+ declare class RegeneratorService {
15
+ private readonly options;
16
+ private readonly contexts;
17
+ private readonly lastPoll;
18
+ private timer?;
19
+ private running;
20
+ private readonly pollInterval;
21
+ private readonly batchDuration;
22
+ private readonly clock;
23
+ constructor(options: RegeneratorOptions);
24
+ start(): void;
25
+ stop(): void;
26
+ runOnce(): Promise<void>;
27
+ private tick;
28
+ private evaluateContext;
29
+ private collectSignals;
30
+ private flushProposals;
31
+ }
32
+ //#endregion
33
+ export { RegeneratorOptions, RegeneratorService };
@@ -0,0 +1,93 @@
1
+ import { behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope } from "./utils.js";
2
+
3
+ //#region src/regenerator/service.ts
4
+ /** Cross-platform delay that works in browser and Node.js */
5
+ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
6
+ const DEFAULT_POLL_INTERVAL = 6e4;
7
+ const DEFAULT_BATCH_DURATION = 5 * 6e4;
8
+ var RegeneratorService = class {
9
+ contexts;
10
+ lastPoll = /* @__PURE__ */ new Map();
11
+ timer;
12
+ running = false;
13
+ pollInterval;
14
+ batchDuration;
15
+ clock;
16
+ constructor(options) {
17
+ this.options = options;
18
+ this.contexts = new Map(options.contexts.map((ctx) => [ctx.id, ctx]));
19
+ this.pollInterval = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL;
20
+ this.batchDuration = options.batchDurationMs ?? DEFAULT_BATCH_DURATION;
21
+ this.clock = options.clock ?? (() => /* @__PURE__ */ new Date());
22
+ if (this.options.rules.length === 0) throw new Error("RegeneratorService requires at least one rule");
23
+ }
24
+ start() {
25
+ if (this.running) return;
26
+ this.running = true;
27
+ this.tick();
28
+ this.timer = setInterval(() => {
29
+ this.tick();
30
+ }, this.pollInterval);
31
+ }
32
+ stop() {
33
+ if (!this.running) return;
34
+ this.running = false;
35
+ if (this.timer) {
36
+ clearInterval(this.timer);
37
+ this.timer = void 0;
38
+ }
39
+ }
40
+ async runOnce() {
41
+ await this.tick();
42
+ }
43
+ async tick() {
44
+ const now = this.clock();
45
+ const sinceDefault = new Date(now.getTime() - this.batchDuration);
46
+ for (const context of this.contexts.values()) {
47
+ const last = this.lastPoll.get(context.id) ?? sinceDefault;
48
+ await this.evaluateContext(context, last, now);
49
+ this.lastPoll.set(context.id, now);
50
+ }
51
+ }
52
+ async evaluateContext(context, since, until) {
53
+ const signals = await this.collectSignals(context, since, until);
54
+ if (signals.length === 0) return;
55
+ for (const rule of this.options.rules) {
56
+ let proposals = [];
57
+ try {
58
+ proposals = await rule.evaluate(context, signals);
59
+ } catch (error) {
60
+ console.error(`[regenerator] rule ${rule.id} failed`, error instanceof Error ? error : new Error(String(error)));
61
+ continue;
62
+ }
63
+ await this.flushProposals(context, proposals);
64
+ }
65
+ }
66
+ async collectSignals(context, since, until) {
67
+ const envelopes = [];
68
+ const { adapters } = this.options;
69
+ if (adapters.telemetry) {
70
+ const telemetrySignals = await adapters.telemetry.pollTelemetry(context, since, until);
71
+ envelopes.push(...telemetrySignals.map((signal) => telemetryToEnvelope(context.id, signal, this.clock)));
72
+ }
73
+ if (adapters.errors) {
74
+ const errorSignals = await adapters.errors.pollErrors(context, since, until);
75
+ envelopes.push(...errorSignals.map((signal) => errorToEnvelope(context.id, signal, this.clock)));
76
+ }
77
+ if (adapters.behavior) {
78
+ const behaviorSignals = await adapters.behavior.pollBehavior(context, since, until);
79
+ envelopes.push(...behaviorSignals.map((signal) => behaviorToEnvelope(context.id, signal, this.clock)));
80
+ }
81
+ return envelopes;
82
+ }
83
+ async flushProposals(context, proposals) {
84
+ for (const proposal of proposals) {
85
+ if (proposal.signalIds.length === 0) continue;
86
+ await this.options.sink.submit(context, proposal);
87
+ if (proposals.length > 10) await delay(0);
88
+ }
89
+ }
90
+ };
91
+
92
+ //#endregion
93
+ export { RegeneratorService };
@@ -0,0 +1,26 @@
1
+ import { ProposalSink, RegenerationContext, SpecChangeProposal } from "./types.js";
2
+ import { ProposalExecutionResult, ProposalExecutor } from "./executor.js";
3
+
4
+ //#region src/regenerator/sinks.d.ts
5
+ interface ExecutorResultPayload {
6
+ context: RegenerationContext;
7
+ proposal: SpecChangeProposal;
8
+ result: ProposalExecutionResult;
9
+ }
10
+ interface ExecutorSinkLogger {
11
+ info?: (message: string, meta?: Record<string, unknown>) => void;
12
+ error?: (message: string, error: Error, meta?: Record<string, unknown>) => void;
13
+ }
14
+ interface ExecutorSinkOptions {
15
+ dryRun?: boolean;
16
+ onResult?: (payload: ExecutorResultPayload) => void | Promise<void>;
17
+ logger?: ExecutorSinkLogger;
18
+ }
19
+ declare class ExecutorProposalSink implements ProposalSink {
20
+ private readonly executor;
21
+ private readonly options;
22
+ constructor(executor: ProposalExecutor, options?: ExecutorSinkOptions);
23
+ submit(context: RegenerationContext, proposal: SpecChangeProposal): Promise<void>;
24
+ }
25
+ //#endregion
26
+ export { ExecutorProposalSink, ExecutorResultPayload, ExecutorSinkLogger, ExecutorSinkOptions };
@@ -0,0 +1,32 @@
1
+ //#region src/regenerator/sinks.ts
2
+ var ExecutorProposalSink = class {
3
+ constructor(executor, options = {}) {
4
+ this.executor = executor;
5
+ this.options = options;
6
+ }
7
+ async submit(context, proposal) {
8
+ const dryRun = this.options.dryRun ?? false;
9
+ try {
10
+ const result = await this.executor.execute(context, proposal, { dryRun });
11
+ if (this.options.logger?.info) this.options.logger.info("[regenerator] proposal executed", {
12
+ proposalId: proposal.id,
13
+ contextId: context.id,
14
+ status: result.status
15
+ });
16
+ if (this.options.onResult) await this.options.onResult({
17
+ context,
18
+ proposal,
19
+ result
20
+ });
21
+ } catch (error) {
22
+ if (this.options.logger?.error) this.options.logger.error("[regenerator] proposal execution failed", error instanceof Error ? error : new Error(String(error)), {
23
+ proposalId: proposal.id,
24
+ contextId: context.id
25
+ });
26
+ throw error instanceof Error ? error : new Error(String(error));
27
+ }
28
+ }
29
+ };
30
+
31
+ //#endregion
32
+ export { ExecutorProposalSink };
@@ -0,0 +1,107 @@
1
+ import { TelemetrySpec } from "../telemetry/spec.js";
2
+ import { AppBlueprintSpec, TenantAppConfig } from "../app-config/spec.js";
3
+ import { ResolvedAppConfig } from "../app-config/runtime.js";
4
+
5
+ //#region src/regenerator/types.d.ts
6
+ type RegeneratorSignal = TelemetrySignalEnvelope | ErrorSignalEnvelope | BehaviorSignalEnvelope;
7
+ interface TelemetrySignalEnvelope {
8
+ type: 'telemetry';
9
+ contextId: string;
10
+ signal: TelemetrySignal;
11
+ }
12
+ interface TelemetrySignal {
13
+ eventName: string;
14
+ eventVersion: number;
15
+ count: number;
16
+ windowStart: Date;
17
+ windowEnd: Date;
18
+ anomalyScore?: number;
19
+ classification?: 'normal' | 'warning' | 'critical';
20
+ metadata?: Record<string, unknown>;
21
+ telemetrySpec?: TelemetrySpec;
22
+ }
23
+ interface ErrorSignalEnvelope {
24
+ type: 'error';
25
+ contextId: string;
26
+ signal: ErrorSignal;
27
+ }
28
+ interface ErrorSignal {
29
+ id: string;
30
+ classification: 'runtime' | 'policy' | 'workflow' | 'unknown';
31
+ message: string;
32
+ occurredAt: Date;
33
+ count: number;
34
+ metadata?: Record<string, unknown>;
35
+ }
36
+ interface BehaviorSignalEnvelope {
37
+ type: 'behavior';
38
+ contextId: string;
39
+ signal: BehaviorSignal;
40
+ }
41
+ interface BehaviorSignal {
42
+ feature: string;
43
+ metric: 'usage' | 'conversion' | 'latency' | 'custom';
44
+ value: number;
45
+ baseline?: number;
46
+ windowStart: Date;
47
+ windowEnd: Date;
48
+ metadata?: Record<string, unknown>;
49
+ }
50
+ interface SpecChangeProposal {
51
+ id: string;
52
+ title: string;
53
+ summary: string;
54
+ confidence: ProposalConfidence;
55
+ rationale: string[];
56
+ target: ProposalTarget;
57
+ diff?: string;
58
+ actions: ProposalAction[];
59
+ blockers?: ProposalBlocker[];
60
+ createdAt: Date;
61
+ signalIds: string[];
62
+ }
63
+ type ProposalConfidence = 'low' | 'medium' | 'high';
64
+ interface ProposalTarget {
65
+ specType: 'workflow' | 'capability' | 'policy' | 'dataView' | 'telemetry' | 'experiment' | 'theme' | 'unknown';
66
+ reference: {
67
+ key: string;
68
+ version?: string;
69
+ };
70
+ tenantScoped?: boolean;
71
+ }
72
+ type ProposalAction = {
73
+ kind: 'update_blueprint';
74
+ summary: string;
75
+ } | {
76
+ kind: 'update_tenant_config';
77
+ summary: string;
78
+ } | {
79
+ kind: 'run_tests';
80
+ tests: string[];
81
+ } | {
82
+ kind: 'run_migrations';
83
+ migrations: string[];
84
+ } | {
85
+ kind: 'trigger_regeneration';
86
+ summary?: string;
87
+ };
88
+ interface ProposalBlocker {
89
+ description: string;
90
+ kind: 'missing_context' | 'insufficient_data' | 'user_feedback' | 'manual_review';
91
+ }
92
+ interface RegenerationContext {
93
+ id: string;
94
+ blueprint: AppBlueprintSpec;
95
+ tenantConfig: TenantAppConfig;
96
+ resolved: ResolvedAppConfig;
97
+ }
98
+ interface RegenerationRule {
99
+ readonly id: string;
100
+ readonly description: string;
101
+ evaluate(context: RegenerationContext, signals: RegeneratorSignal[]): Promise<SpecChangeProposal[]>;
102
+ }
103
+ interface ProposalSink {
104
+ submit(context: RegenerationContext, proposal: SpecChangeProposal): Promise<void>;
105
+ }
106
+ //#endregion
107
+ export { BehaviorSignal, BehaviorSignalEnvelope, ErrorSignal, ErrorSignalEnvelope, ProposalAction, ProposalBlocker, ProposalConfidence, ProposalSink, ProposalTarget, RegenerationContext, RegenerationRule, RegeneratorSignal, SpecChangeProposal, TelemetrySignal, TelemetrySignalEnvelope };
File without changes
@@ -0,0 +1,9 @@
1
+ import { BehaviorSignal, BehaviorSignalEnvelope, ErrorSignal, ErrorSignalEnvelope, TelemetrySignal, TelemetrySignalEnvelope } from "./types.js";
2
+
3
+ //#region src/regenerator/utils.d.ts
4
+ type Clock = () => Date;
5
+ declare function telemetryToEnvelope(contextId: string, signal: TelemetrySignal, clock: Clock): TelemetrySignalEnvelope;
6
+ declare function errorToEnvelope(contextId: string, signal: ErrorSignal, clock: Clock): ErrorSignalEnvelope;
7
+ declare function behaviorToEnvelope(contextId: string, signal: BehaviorSignal, clock: Clock): BehaviorSignalEnvelope;
8
+ //#endregion
9
+ export { behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope };
@@ -0,0 +1,51 @@
1
+ //#region src/regenerator/utils.ts
2
+ function telemetryToEnvelope(contextId, signal, clock) {
3
+ return {
4
+ type: "telemetry",
5
+ contextId,
6
+ signal: normalizeTelemetryDates(signal, clock)
7
+ };
8
+ }
9
+ function errorToEnvelope(contextId, signal, clock) {
10
+ return {
11
+ type: "error",
12
+ contextId,
13
+ signal: normalizeErrorDates(signal, clock)
14
+ };
15
+ }
16
+ function behaviorToEnvelope(contextId, signal, clock) {
17
+ return {
18
+ type: "behavior",
19
+ contextId,
20
+ signal: normalizeBehaviorDates(signal, clock)
21
+ };
22
+ }
23
+ function normalizeTelemetryDates(signal, clock) {
24
+ return {
25
+ ...signal,
26
+ windowStart: toDate(signal.windowStart, clock),
27
+ windowEnd: toDate(signal.windowEnd, clock)
28
+ };
29
+ }
30
+ function normalizeErrorDates(signal, clock) {
31
+ return {
32
+ ...signal,
33
+ occurredAt: toDate(signal.occurredAt, clock)
34
+ };
35
+ }
36
+ function normalizeBehaviorDates(signal, clock) {
37
+ return {
38
+ ...signal,
39
+ windowStart: toDate(signal.windowStart, clock),
40
+ windowEnd: toDate(signal.windowEnd, clock)
41
+ };
42
+ }
43
+ function toDate(value, clock) {
44
+ if (value instanceof Date) return value;
45
+ const parsed = new Date(value);
46
+ if (Number.isNaN(parsed.getTime())) return clock();
47
+ return parsed;
48
+ }
49
+
50
+ //#endregion
51
+ export { behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope };
@@ -0,0 +1,106 @@
1
+ import { Stability } from "./ownership.js";
2
+
3
+ //#region src/registry-utils.d.ts
4
+
5
+ /**
6
+ * Filter criteria for registry items.
7
+ * All criteria are optional and combined with AND logic.
8
+ */
9
+ interface RegistryFilter {
10
+ /** Filter by tags (item must have at least one matching tag) */
11
+ tags?: string[];
12
+ /** Filter by owners (item must have at least one matching owner) */
13
+ owners?: string[];
14
+ /** Filter by stability levels */
15
+ stability?: Stability[];
16
+ /** Filter by domain (first segment of name) */
17
+ domain?: string;
18
+ /** Filter by key pattern (glob or regex) */
19
+ keyPattern?: string;
20
+ }
21
+ /**
22
+ * Item with standard metadata for filtering.
23
+ */
24
+ interface FilterableItem {
25
+ meta: {
26
+ key?: string;
27
+ tags?: string[];
28
+ owners?: string[];
29
+ stability?: Stability;
30
+ domain?: string;
31
+ };
32
+ }
33
+ /**
34
+ * Grouping key function type.
35
+ */
36
+ type GroupKeyFn<T> = (item: T) => string;
37
+ /**
38
+ * Grouped items result.
39
+ */
40
+ interface GroupedItems<T> {
41
+ key: string;
42
+ items: T[];
43
+ }
44
+ /**
45
+ * Pre-built grouping strategies for common use cases.
46
+ */
47
+ declare const GroupingStrategies: {
48
+ /**
49
+ * Group by first tag.
50
+ */
51
+ byTag: <T extends FilterableItem>(item: T) => string;
52
+ /**
53
+ * Group by all tags (item appears in multiple groups).
54
+ */
55
+ byAllTags: <T extends FilterableItem>(item: T) => string[];
56
+ /**
57
+ * Group by first owner.
58
+ */
59
+ byOwner: <T extends FilterableItem>(item: T) => string;
60
+ /**
61
+ * Group by domain (first segment of name).
62
+ */
63
+ byDomain: <T extends FilterableItem>(item: T) => string;
64
+ /**
65
+ * Group by stability level.
66
+ */
67
+ byStability: <T extends FilterableItem>(item: T) => string;
68
+ /**
69
+ * Create URL path grouping strategy with configurable depth.
70
+ */
71
+ byUrlPath: (level: number) => (item: {
72
+ path?: string;
73
+ }) => string;
74
+ };
75
+ /**
76
+ * Filter items by criteria.
77
+ * All criteria are combined with AND logic.
78
+ */
79
+ declare function filterBy<T extends FilterableItem>(items: T[], filter: RegistryFilter): T[];
80
+ /**
81
+ * Group items by key function.
82
+ */
83
+ declare function groupBy<T>(items: T[], keyFn: GroupKeyFn<T>): Map<string, T[]>;
84
+ /**
85
+ * Group items by key function, returning array format.
86
+ */
87
+ declare function groupByToArray<T>(items: T[], keyFn: GroupKeyFn<T>): GroupedItems<T>[];
88
+ /**
89
+ * Group items where one item can belong to multiple groups.
90
+ * Useful for byAllTags grouping.
91
+ */
92
+ declare function groupByMultiple<T>(items: T[], keysFn: (item: T) => string[]): Map<string, T[]>;
93
+ /**
94
+ * Get unique tags from a collection of items.
95
+ */
96
+ declare function getUniqueTags<T extends FilterableItem>(items: T[]): string[];
97
+ /**
98
+ * Get unique owners from a collection of items.
99
+ */
100
+ declare function getUniqueOwners<T extends FilterableItem>(items: T[]): string[];
101
+ /**
102
+ * Get unique domains from a collection of items.
103
+ */
104
+ declare function getUniqueDomains<T extends FilterableItem>(items: T[]): string[];
105
+ //#endregion
106
+ export { FilterableItem, GroupKeyFn, GroupedItems, GroupingStrategies, RegistryFilter, filterBy, getUniqueDomains, getUniqueOwners, getUniqueTags, groupBy, groupByMultiple, groupByToArray };
@@ -0,0 +1,122 @@
1
+ import { __esmMin, __exportAll } from "./_virtual/rolldown_runtime.js";
2
+
3
+ //#region src/registry-utils.ts
4
+ var registry_utils_exports = /* @__PURE__ */ __exportAll({
5
+ GroupingStrategies: () => GroupingStrategies,
6
+ filterBy: () => filterBy,
7
+ getUniqueDomains: () => getUniqueDomains,
8
+ getUniqueOwners: () => getUniqueOwners,
9
+ getUniqueTags: () => getUniqueTags,
10
+ groupBy: () => groupBy,
11
+ groupByMultiple: () => groupByMultiple,
12
+ groupByToArray: () => groupByToArray
13
+ });
14
+ /**
15
+ * Filter items by criteria.
16
+ * All criteria are combined with AND logic.
17
+ */
18
+ function filterBy(items, filter) {
19
+ return items.filter((item) => {
20
+ if (filter.tags?.length) {
21
+ if (!filter.tags.some((tag) => item.meta.tags?.includes(tag))) return false;
22
+ }
23
+ if (filter.owners?.length) {
24
+ if (!filter.owners.some((owner) => item.meta.owners?.includes(owner))) return false;
25
+ }
26
+ if (filter.stability?.length) {
27
+ if (!filter.stability.includes(item.meta.stability ?? "stable")) return false;
28
+ }
29
+ if (filter.domain) {
30
+ if (GroupingStrategies.byDomain(item) !== filter.domain) return false;
31
+ }
32
+ if (filter.keyPattern) {
33
+ const name = item.meta.key ?? item.meta.key ?? "";
34
+ const pattern = filter.keyPattern.replace(/\*/g, ".*").replace(/\?/g, ".");
35
+ if (!new RegExp(`^${pattern}$`, "i").test(name)) return false;
36
+ }
37
+ return true;
38
+ });
39
+ }
40
+ /**
41
+ * Group items by key function.
42
+ */
43
+ function groupBy(items, keyFn) {
44
+ const groups = /* @__PURE__ */ new Map();
45
+ for (const item of items) {
46
+ const key = keyFn(item);
47
+ const existing = groups.get(key);
48
+ if (existing) existing.push(item);
49
+ else groups.set(key, [item]);
50
+ }
51
+ return groups;
52
+ }
53
+ /**
54
+ * Group items by key function, returning array format.
55
+ */
56
+ function groupByToArray(items, keyFn) {
57
+ const map = groupBy(items, keyFn);
58
+ return Array.from(map.entries()).map(([key, items$1]) => ({
59
+ key,
60
+ items: items$1
61
+ }));
62
+ }
63
+ /**
64
+ * Group items where one item can belong to multiple groups.
65
+ * Useful for byAllTags grouping.
66
+ */
67
+ function groupByMultiple(items, keysFn) {
68
+ const groups = /* @__PURE__ */ new Map();
69
+ for (const item of items) {
70
+ const keys = keysFn(item);
71
+ for (const key of keys) {
72
+ const existing = groups.get(key);
73
+ if (existing) existing.push(item);
74
+ else groups.set(key, [item]);
75
+ }
76
+ }
77
+ return groups;
78
+ }
79
+ /**
80
+ * Get unique tags from a collection of items.
81
+ */
82
+ function getUniqueTags(items) {
83
+ const tags = /* @__PURE__ */ new Set();
84
+ for (const item of items) for (const tag of item.meta.tags ?? []) tags.add(tag);
85
+ return Array.from(tags).sort();
86
+ }
87
+ /**
88
+ * Get unique owners from a collection of items.
89
+ */
90
+ function getUniqueOwners(items) {
91
+ const owners = /* @__PURE__ */ new Set();
92
+ for (const item of items) for (const owner of item.meta.owners ?? []) owners.add(owner);
93
+ return Array.from(owners).sort();
94
+ }
95
+ /**
96
+ * Get unique domains from a collection of items.
97
+ */
98
+ function getUniqueDomains(items) {
99
+ const domains = /* @__PURE__ */ new Set();
100
+ for (const item of items) domains.add(GroupingStrategies.byDomain(item));
101
+ return Array.from(domains).sort();
102
+ }
103
+ var GroupingStrategies;
104
+ var init_registry_utils = __esmMin(() => {
105
+ GroupingStrategies = {
106
+ byTag: (item) => item.meta.tags?.[0] ?? "untagged",
107
+ byAllTags: (item) => item.meta.tags?.length ? item.meta.tags : ["untagged"],
108
+ byOwner: (item) => item.meta.owners?.[0] ?? "unowned",
109
+ byDomain: (item) => {
110
+ return (item.meta.key ?? item.meta.key ?? "").split(".")[0] ?? "default";
111
+ },
112
+ byStability: (item) => item.meta.stability ?? "stable",
113
+ byUrlPath: (level) => (item) => {
114
+ if (!item.path) return "root";
115
+ return item.path.split("/").filter(Boolean).slice(0, level).join("/") || "root";
116
+ }
117
+ };
118
+ });
119
+
120
+ //#endregion
121
+ init_registry_utils();
122
+ export { GroupingStrategies, filterBy, getUniqueDomains, getUniqueOwners, getUniqueTags, groupBy, groupByMultiple, groupByToArray, init_registry_utils, registry_utils_exports };