@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,38 @@
1
+ import { SecretFetchOptions, SecretProvider, SecretReference, SecretRotationResult, SecretValue, SecretWritePayload } from "./provider.js";
2
+
3
+ //#region src/integrations/secrets/scaleway-secret-manager.d.ts
4
+ interface ScalewaySecretManagerProviderOptions {
5
+ /**
6
+ * Scaleway API token (SCW secret key). If omitted, uses env vars.
7
+ * Header: X-Auth-Token
8
+ */
9
+ token?: string;
10
+ /** Default region when not present in reference (e.g. fr-par). */
11
+ defaultRegion?: string;
12
+ /** Default project id used when creating secrets by name. */
13
+ defaultProjectId?: string;
14
+ /** Override API base url (defaults to https://api.scaleway.com). */
15
+ baseUrl?: string;
16
+ /** Inject fetch for tests. */
17
+ fetch?: typeof fetch;
18
+ }
19
+ declare class ScalewaySecretManagerProvider implements SecretProvider {
20
+ readonly id = "scaleway-secret-manager";
21
+ private readonly token;
22
+ private readonly defaultRegion?;
23
+ private readonly defaultProjectId?;
24
+ private readonly baseUrl;
25
+ private readonly fetchFn;
26
+ constructor(options?: ScalewaySecretManagerProviderOptions);
27
+ canHandle(reference: SecretReference): boolean;
28
+ getSecret(reference: SecretReference, options?: SecretFetchOptions): Promise<SecretValue>;
29
+ setSecret(reference: SecretReference, payload: SecretWritePayload): Promise<SecretRotationResult>;
30
+ rotateSecret(reference: SecretReference, payload: SecretWritePayload): Promise<SecretRotationResult>;
31
+ deleteSecret(reference: SecretReference): Promise<void>;
32
+ private parseReference;
33
+ private createSecret;
34
+ private createSecretVersion;
35
+ private buildReference;
36
+ }
37
+ //#endregion
38
+ export { ScalewaySecretManagerProvider };
@@ -0,0 +1,247 @@
1
+ import { SecretProviderError, normalizeSecretPayload, parseSecretUri } from "./provider.js";
2
+ import { Buffer } from "node:buffer";
3
+
4
+ //#region src/integrations/secrets/scaleway-secret-manager.ts
5
+ const UUID_V4_LIKE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
6
+ var ScalewaySecretManagerProvider = class {
7
+ id = "scaleway-secret-manager";
8
+ token;
9
+ defaultRegion;
10
+ defaultProjectId;
11
+ baseUrl;
12
+ fetchFn;
13
+ constructor(options = {}) {
14
+ this.token = options.token ?? process.env.SCW_SECRET_KEY ?? process.env.SCALEWAY_SECRET_KEY ?? "";
15
+ this.defaultRegion = options.defaultRegion ?? process.env.SCW_DEFAULT_REGION ?? process.env.SCW_REGION;
16
+ this.defaultProjectId = options.defaultProjectId ?? process.env.SCW_DEFAULT_PROJECT_ID ?? process.env.SCW_PROJECT_ID;
17
+ this.baseUrl = options.baseUrl ?? "https://api.scaleway.com";
18
+ this.fetchFn = options.fetch ?? fetch;
19
+ }
20
+ canHandle(reference) {
21
+ try {
22
+ const parsed = parseSecretUri(reference);
23
+ return parsed.provider === "scw" && (parsed.path === "secret-manager" || parsed.path.startsWith("secret-manager/"));
24
+ } catch {
25
+ return false;
26
+ }
27
+ }
28
+ async getSecret(reference, options) {
29
+ const location = this.parseReference(reference);
30
+ if (!this.token) throw new SecretProviderError({
31
+ message: "Scaleway secret manager token is missing (set SCW_SECRET_KEY / SCALEWAY_SECRET_KEY).",
32
+ provider: this.id,
33
+ reference,
34
+ code: "FORBIDDEN"
35
+ });
36
+ if (!UUID_V4_LIKE.test(location.secretIdOrName)) throw new SecretProviderError({
37
+ message: "Scaleway getSecret requires a secretId (uuid) reference, not a secret name.",
38
+ provider: this.id,
39
+ reference,
40
+ code: "INVALID"
41
+ });
42
+ const revision = options?.version ?? location.revision ?? "latest";
43
+ const url = `${this.baseUrl}/secret-manager/v1beta1/regions/${encodeURIComponent(location.region)}/secrets/${encodeURIComponent(location.secretIdOrName)}/versions/${encodeURIComponent(revision)}/access`;
44
+ const response = await this.fetchFn(url, {
45
+ method: "GET",
46
+ headers: { "X-Auth-Token": this.token }
47
+ });
48
+ if (!response.ok) throw await toScalewayError({
49
+ response,
50
+ provider: this.id,
51
+ reference,
52
+ operation: "getSecret"
53
+ });
54
+ const dataB64 = extractScalewayData(await response.json());
55
+ return {
56
+ data: Buffer.from(dataB64, "base64"),
57
+ version: revision,
58
+ metadata: {
59
+ region: location.region,
60
+ secretId: location.secretIdOrName
61
+ },
62
+ retrievedAt: /* @__PURE__ */ new Date()
63
+ };
64
+ }
65
+ async setSecret(reference, payload) {
66
+ const location = this.parseReference(reference);
67
+ if (!this.token) throw new SecretProviderError({
68
+ message: "Scaleway secret manager token is missing (set SCW_SECRET_KEY / SCALEWAY_SECRET_KEY).",
69
+ provider: this.id,
70
+ reference,
71
+ code: "FORBIDDEN"
72
+ });
73
+ const bytes = normalizeSecretPayload(payload);
74
+ const encoded = Buffer.from(bytes).toString("base64");
75
+ const secretId = UUID_V4_LIKE.test(location.secretIdOrName) ? location.secretIdOrName : await this.createSecret({
76
+ region: location.region,
77
+ name: location.secretIdOrName,
78
+ reference
79
+ });
80
+ const version = await this.createSecretVersion({
81
+ region: location.region,
82
+ secretId,
83
+ dataB64: encoded,
84
+ reference
85
+ });
86
+ return {
87
+ reference: this.buildReference(location.region, secretId, { version }),
88
+ version
89
+ };
90
+ }
91
+ async rotateSecret(reference, payload) {
92
+ return this.setSecret(reference, payload);
93
+ }
94
+ async deleteSecret(reference) {
95
+ const location = this.parseReference(reference);
96
+ if (!this.token) throw new SecretProviderError({
97
+ message: "Scaleway secret manager token is missing (set SCW_SECRET_KEY / SCALEWAY_SECRET_KEY).",
98
+ provider: this.id,
99
+ reference,
100
+ code: "FORBIDDEN"
101
+ });
102
+ if (!UUID_V4_LIKE.test(location.secretIdOrName)) throw new SecretProviderError({
103
+ message: "Scaleway deleteSecret requires a secretId (uuid) reference, not a secret name.",
104
+ provider: this.id,
105
+ reference,
106
+ code: "INVALID"
107
+ });
108
+ const url = `${this.baseUrl}/secret-manager/v1beta1/regions/${encodeURIComponent(location.region)}/secrets/${encodeURIComponent(location.secretIdOrName)}`;
109
+ const response = await this.fetchFn(url, {
110
+ method: "DELETE",
111
+ headers: { "X-Auth-Token": this.token }
112
+ });
113
+ if (!response.ok) throw await toScalewayError({
114
+ response,
115
+ provider: this.id,
116
+ reference,
117
+ operation: "deleteSecret"
118
+ });
119
+ }
120
+ parseReference(reference) {
121
+ const parsed = parseSecretUri(reference);
122
+ if (parsed.provider !== "scw") throw new SecretProviderError({
123
+ message: `Unsupported secret provider: ${parsed.provider}`,
124
+ provider: this.id,
125
+ reference,
126
+ code: "INVALID"
127
+ });
128
+ const segments = parsed.path.split("/").filter(Boolean);
129
+ if (segments.length < 2 || segments[0] !== "secret-manager") throw new SecretProviderError({
130
+ message: "Expected secret reference format scw://secret-manager/{region}/{secretIdOrName}[?version=...]",
131
+ provider: this.id,
132
+ reference,
133
+ code: "INVALID"
134
+ });
135
+ const region = segments[1] ?? this.defaultRegion;
136
+ if (!region) throw new SecretProviderError({
137
+ message: "Scaleway region must be provided either in reference (scw://secret-manager/{region}/...) or via SCW_DEFAULT_REGION/SCW_REGION.",
138
+ provider: this.id,
139
+ reference,
140
+ code: "INVALID"
141
+ });
142
+ const secretIdOrName = segments.slice(2).join("/");
143
+ if (!secretIdOrName) throw new SecretProviderError({
144
+ message: `Unable to resolve secret id/name from reference "${parsed.path}"`,
145
+ provider: this.id,
146
+ reference,
147
+ code: "INVALID"
148
+ });
149
+ return {
150
+ region,
151
+ secretIdOrName,
152
+ revision: parsed.extras?.version
153
+ };
154
+ }
155
+ async createSecret(params) {
156
+ const projectId = this.defaultProjectId;
157
+ if (!projectId) throw new SecretProviderError({
158
+ message: "Scaleway project id is required to create secrets by name (set SCW_DEFAULT_PROJECT_ID/SCW_PROJECT_ID).",
159
+ provider: this.id,
160
+ reference: params.reference,
161
+ code: "INVALID"
162
+ });
163
+ const url = `${this.baseUrl}/secret-manager/v1beta1/regions/${encodeURIComponent(params.region)}/secrets`;
164
+ const response = await this.fetchFn(url, {
165
+ method: "POST",
166
+ headers: {
167
+ "Content-Type": "application/json",
168
+ "X-Auth-Token": this.token
169
+ },
170
+ body: JSON.stringify({
171
+ name: params.name,
172
+ project_id: projectId
173
+ })
174
+ });
175
+ if (!response.ok) throw await toScalewayError({
176
+ response,
177
+ provider: this.id,
178
+ reference: params.reference,
179
+ operation: "createSecret"
180
+ });
181
+ return extractScalewaySecretId(await response.json());
182
+ }
183
+ async createSecretVersion(params) {
184
+ const url = `${this.baseUrl}/secret-manager/v1beta1/regions/${encodeURIComponent(params.region)}/secrets/${encodeURIComponent(params.secretId)}/versions`;
185
+ const response = await this.fetchFn(url, {
186
+ method: "POST",
187
+ headers: {
188
+ "Content-Type": "application/json",
189
+ "X-Auth-Token": this.token
190
+ },
191
+ body: JSON.stringify({ data: params.dataB64 })
192
+ });
193
+ if (!response.ok) throw await toScalewayError({
194
+ response,
195
+ provider: this.id,
196
+ reference: params.reference,
197
+ operation: "createSecretVersion"
198
+ });
199
+ return extractScalewayRevision(await response.json()) ?? "latest";
200
+ }
201
+ buildReference(region, secretId, extras) {
202
+ const base = `scw://secret-manager/${region}/${secretId}`;
203
+ const query = extras ? Object.entries(extras).filter(([, value]) => Boolean(value)).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join("&") : "";
204
+ return query ? `${base}?${query}` : base;
205
+ }
206
+ };
207
+ function extractScalewayData(payload) {
208
+ if (!payload || typeof payload !== "object") throw new Error("Invalid scaleway secret payload");
209
+ const record = payload;
210
+ if (typeof record.data === "string" && record.data) return record.data;
211
+ throw new Error("Scaleway secret payload is missing data");
212
+ }
213
+ function extractScalewaySecretId(payload) {
214
+ if (!payload || typeof payload !== "object") throw new Error("Invalid scaleway createSecret payload");
215
+ const record = payload;
216
+ if (typeof record.id === "string" && record.id) return record.id;
217
+ throw new Error("Scaleway createSecret response is missing id");
218
+ }
219
+ function extractScalewayRevision(payload) {
220
+ if (!payload || typeof payload !== "object") return;
221
+ const record = payload;
222
+ if (typeof record.revision === "number") return String(record.revision);
223
+ if (typeof record.revision === "string" && record.revision) return record.revision;
224
+ if (typeof record.id === "string" && record.id) return record.id;
225
+ }
226
+ async function toScalewayError(params) {
227
+ const { response, provider, reference, operation } = params;
228
+ const code = response.status === 404 ? "NOT_FOUND" : response.status === 401 || response.status === 403 ? "FORBIDDEN" : response.status >= 400 && response.status < 500 ? "INVALID" : "UNKNOWN";
229
+ const bodyText = await safeReadBody(response);
230
+ return new SecretProviderError({
231
+ message: bodyText ? `Scaleway Secret Manager ${operation} failed (${response.status}): ${bodyText}` : `Scaleway Secret Manager ${operation} failed (${response.status})`,
232
+ provider,
233
+ reference,
234
+ code
235
+ });
236
+ }
237
+ async function safeReadBody(response) {
238
+ try {
239
+ const trimmed = (await response.text()).trim();
240
+ return trimmed.length ? trimmed : void 0;
241
+ } catch {
242
+ return;
243
+ }
244
+ }
245
+
246
+ //#endregion
247
+ export { ScalewaySecretManagerProvider };
@@ -0,0 +1,17 @@
1
+ //#region src/integrations/secrets-types.d.ts
2
+ /**
3
+ * Secret Provider types for integrations
4
+ * These are core type definitions that don't require runtime dependencies.
5
+ */
6
+ interface SecretValue {
7
+ data: Uint8Array;
8
+ version?: string;
9
+ metadata?: Record<string, string>;
10
+ }
11
+ interface SecretProvider {
12
+ id: string;
13
+ canHandle(reference: string): boolean;
14
+ getSecret(reference: string): Promise<SecretValue>;
15
+ }
16
+ //#endregion
17
+ export { SecretProvider, SecretValue };
File without changes
@@ -0,0 +1,77 @@
1
+ import { OwnerShipMeta } from "../ownership.js";
2
+ import { CapabilityRef, CapabilityRequirement } from "../capabilities/capabilities.js";
3
+ import "../capabilities/index.js";
4
+ import { SpecContractRegistry } from "../registry.js";
5
+
6
+ //#region src/integrations/spec.d.ts
7
+ type IntegrationCategory = 'payments' | 'email' | 'calendar' | 'sms' | 'ai-llm' | 'ai-voice' | 'speech-to-text' | 'vector-db' | 'storage' | 'accounting' | 'crm' | 'helpdesk' | 'open-banking' | 'custom';
8
+ type IntegrationOwnershipMode = 'managed' | 'byok';
9
+ interface IntegrationMeta extends OwnerShipMeta {
10
+ category: IntegrationCategory;
11
+ }
12
+ interface IntegrationCapabilityMapping {
13
+ /** Which CapabilitySpec this integration provides. */
14
+ provides: CapabilityRef[];
15
+ /** Optional: which capabilities it requires (e.g., storage for caching). */
16
+ requires?: CapabilityRequirement[];
17
+ }
18
+ interface IntegrationConfigSchema {
19
+ /** JSON Schema or SchemaModel defining required config fields. */
20
+ schema: unknown;
21
+ /** Example configuration (for docs/UI). */
22
+ example?: Record<string, unknown>;
23
+ }
24
+ interface IntegrationSecretSchema {
25
+ /** JSON Schema or SchemaModel describing secret fields. */
26
+ schema: unknown;
27
+ /** Redacted example for documentation/UI. */
28
+ example?: Record<string, string>;
29
+ }
30
+ interface IntegrationByokSetup {
31
+ /** Human-readable instructions for tenants configuring BYOK accounts. */
32
+ setupInstructions?: string;
33
+ /** Required scopes/permissions for BYOK accounts. */
34
+ requiredScopes?: string[];
35
+ }
36
+ interface IntegrationHealthCheck {
37
+ /** Endpoint or method to validate connection health. */
38
+ method?: 'ping' | 'list' | 'custom';
39
+ /** Timeout in ms for health check. */
40
+ timeoutMs?: number;
41
+ }
42
+ interface IntegrationSpec {
43
+ meta: IntegrationMeta;
44
+ /** Supported ownership modes for this provider. */
45
+ supportedModes: IntegrationOwnershipMode[];
46
+ /** Which capabilities this integration provides/requires. */
47
+ capabilities: IntegrationCapabilityMapping;
48
+ /** Configuration schema (API keys, endpoints, etc.). */
49
+ configSchema: IntegrationConfigSchema;
50
+ /** Secret schema (API/key material stored via secretRef). */
51
+ secretSchema: IntegrationSecretSchema;
52
+ /** Optional health check configuration. */
53
+ healthCheck?: IntegrationHealthCheck;
54
+ /** Documentation URL. */
55
+ docsUrl?: string;
56
+ /** Rate limits or usage constraints. */
57
+ constraints?: {
58
+ rateLimit?: {
59
+ rpm?: number;
60
+ rph?: number;
61
+ };
62
+ quotas?: Record<string, number>;
63
+ };
64
+ /** Provider-specific metadata for BYOK setup flows. */
65
+ byokSetup?: IntegrationByokSetup;
66
+ }
67
+ declare class IntegrationSpecRegistry extends SpecContractRegistry<'integration', IntegrationSpec> {
68
+ constructor(items?: IntegrationSpec[]);
69
+ getByCategory(category: IntegrationCategory): IntegrationSpec[];
70
+ }
71
+ declare function makeIntegrationSpecKey(meta: IntegrationMeta): string;
72
+ /**
73
+ * Helper to define an Integration.
74
+ */
75
+ declare const defineIntegration: (spec: IntegrationSpec) => IntegrationSpec;
76
+ //#endregion
77
+ export { IntegrationByokSetup, IntegrationCapabilityMapping, IntegrationCategory, IntegrationConfigSchema, IntegrationHealthCheck, IntegrationMeta, IntegrationOwnershipMode, IntegrationSecretSchema, IntegrationSpec, IntegrationSpecRegistry, defineIntegration, makeIntegrationSpecKey };
@@ -0,0 +1,22 @@
1
+ import { SpecContractRegistry } from "../registry.js";
2
+
3
+ //#region src/integrations/spec.ts
4
+ const integrationKey = (meta) => `${meta.key}.v${meta.version}`;
5
+ var IntegrationSpecRegistry = class extends SpecContractRegistry {
6
+ constructor(items) {
7
+ super("integration", items);
8
+ }
9
+ getByCategory(category) {
10
+ return this.list().filter((spec) => spec.meta.category === category);
11
+ }
12
+ };
13
+ function makeIntegrationSpecKey(meta) {
14
+ return integrationKey(meta);
15
+ }
16
+ /**
17
+ * Helper to define an Integration.
18
+ */
19
+ const defineIntegration = (spec) => spec;
20
+
21
+ //#endregion
22
+ export { IntegrationSpecRegistry, defineIntegration, makeIntegrationSpecKey };
@@ -0,0 +1,18 @@
1
+ import { Job, JobQueue } from "./queue.js";
2
+ import { ZodSchema } from "zod";
3
+
4
+ //#region src/jobs/define-job.d.ts
5
+ interface DefinedJob<TPayload> {
6
+ type: string;
7
+ schema: ZodSchema<TPayload>;
8
+ handler: (payload: TPayload, job: Job<TPayload>) => Promise<void>;
9
+ }
10
+ /**
11
+ * Register a `DefinedJob` on a queue with payload validation.
12
+ *
13
+ * - Parses and validates payload via the job's Zod schema
14
+ * - Invokes the defined handler with the validated payload
15
+ */
16
+ declare function registerDefinedJob<TPayload>(queue: JobQueue, job: DefinedJob<TPayload>): void;
17
+ //#endregion
18
+ export { DefinedJob, registerDefinedJob };
@@ -0,0 +1,16 @@
1
+ //#region src/jobs/define-job.ts
2
+ /**
3
+ * Register a `DefinedJob` on a queue with payload validation.
4
+ *
5
+ * - Parses and validates payload via the job's Zod schema
6
+ * - Invokes the defined handler with the validated payload
7
+ */
8
+ function registerDefinedJob(queue, job) {
9
+ queue.register(job.type, async (queuedJob) => {
10
+ const parsed = job.schema.parse(queuedJob.payload);
11
+ await job.handler(parsed, queuedJob);
12
+ });
13
+ }
14
+
15
+ //#endregion
16
+ export { registerDefinedJob };
@@ -0,0 +1,41 @@
1
+ import { EnqueueOptions, Job, JobHandler, JobQueue } from "./queue.js";
2
+
3
+ //#region src/jobs/gcp-cloud-tasks.d.ts
4
+ interface CloudTasksClientLike {
5
+ createTask(request: {
6
+ parent: string;
7
+ task: {
8
+ httpRequest: {
9
+ httpMethod: number | string;
10
+ url: string;
11
+ body: Buffer;
12
+ headers?: Record<string, string>;
13
+ oidcToken?: {
14
+ serviceAccountEmail: string;
15
+ };
16
+ };
17
+ scheduleTime?: {
18
+ seconds: number;
19
+ };
20
+ };
21
+ }): Promise<unknown>;
22
+ }
23
+ interface GcpCloudTasksQueueOptions {
24
+ client: CloudTasksClientLike;
25
+ projectId: string;
26
+ location: string;
27
+ queue: string;
28
+ resolveUrl(jobType: string): string;
29
+ serviceAccountEmail?: string;
30
+ }
31
+ declare class GcpCloudTasksQueue implements JobQueue {
32
+ private readonly options;
33
+ private readonly handlers;
34
+ constructor(options: GcpCloudTasksQueueOptions);
35
+ enqueue<TPayload>(jobType: string, payload: TPayload, options?: EnqueueOptions): Promise<Job<TPayload>>;
36
+ register<TPayload, TResult = void>(jobType: string, handler: JobHandler<TPayload, TResult>): void;
37
+ start(): void;
38
+ stop(): Promise<void>;
39
+ }
40
+ //#endregion
41
+ export { GcpCloudTasksQueue, GcpCloudTasksQueueOptions };
@@ -0,0 +1,53 @@
1
+ import { DEFAULT_RETRY_POLICY } from "./queue.js";
2
+ import { randomUUID } from "node:crypto";
3
+
4
+ //#region src/jobs/gcp-cloud-tasks.ts
5
+ var GcpCloudTasksQueue = class {
6
+ handlers = /* @__PURE__ */ new Map();
7
+ constructor(options) {
8
+ this.options = options;
9
+ }
10
+ async enqueue(jobType, payload, options = {}) {
11
+ const enqueueTime = options.delaySeconds != null ? { seconds: Math.floor(Date.now() / 1e3) + options.delaySeconds } : void 0;
12
+ const body = Buffer.from(JSON.stringify({
13
+ id: randomUUID(),
14
+ type: jobType,
15
+ payload
16
+ }), "utf-8");
17
+ await this.options.client.createTask({
18
+ parent: `projects/${this.options.projectId}/locations/${this.options.location}/queues/${this.options.queue}`,
19
+ task: {
20
+ httpRequest: {
21
+ httpMethod: "POST",
22
+ url: this.options.resolveUrl(jobType),
23
+ body,
24
+ headers: { "Content-Type": "application/json" },
25
+ oidcToken: this.options.serviceAccountEmail ? { serviceAccountEmail: this.options.serviceAccountEmail } : void 0
26
+ },
27
+ scheduleTime: enqueueTime
28
+ }
29
+ });
30
+ return {
31
+ id: randomUUID(),
32
+ type: jobType,
33
+ version: "1.0.0",
34
+ payload,
35
+ status: "pending",
36
+ priority: options.priority ?? 0,
37
+ attempts: 0,
38
+ maxRetries: options.maxRetries ?? DEFAULT_RETRY_POLICY.maxRetries,
39
+ createdAt: /* @__PURE__ */ new Date(),
40
+ updatedAt: /* @__PURE__ */ new Date()
41
+ };
42
+ }
43
+ register(jobType, handler) {
44
+ this.handlers.set(jobType, handler);
45
+ }
46
+ start() {}
47
+ async stop() {
48
+ this.handlers.clear();
49
+ }
50
+ };
51
+
52
+ //#endregion
53
+ export { GcpCloudTasksQueue };
@@ -0,0 +1,25 @@
1
+ import { EnqueueOptions, Job, JobHandler, JobQueue } from "./queue.js";
2
+
3
+ //#region src/jobs/gcp-pubsub.d.ts
4
+ interface PubSubClientLike {
5
+ topic(name: string): {
6
+ publishMessage(message: {
7
+ data: Buffer;
8
+ }): Promise<string>;
9
+ };
10
+ }
11
+ interface GcpPubSubQueueOptions {
12
+ client: PubSubClientLike;
13
+ topicName: string;
14
+ }
15
+ declare class GcpPubSubQueue implements JobQueue {
16
+ private readonly options;
17
+ private readonly handlers;
18
+ constructor(options: GcpPubSubQueueOptions);
19
+ enqueue<TPayload>(jobType: string, payload: TPayload, options?: EnqueueOptions): Promise<Job<TPayload>>;
20
+ register<TPayload, TResult = void>(jobType: string, handler: JobHandler<TPayload, TResult>): void;
21
+ start(): void;
22
+ stop(): Promise<void>;
23
+ }
24
+ //#endregion
25
+ export { GcpPubSubQueue, GcpPubSubQueueOptions };
@@ -0,0 +1,39 @@
1
+ import { DEFAULT_RETRY_POLICY } from "./queue.js";
2
+ import { randomUUID } from "node:crypto";
3
+
4
+ //#region src/jobs/gcp-pubsub.ts
5
+ var GcpPubSubQueue = class {
6
+ handlers = /* @__PURE__ */ new Map();
7
+ constructor(options) {
8
+ this.options = options;
9
+ }
10
+ async enqueue(jobType, payload, options = {}) {
11
+ await this.options.client.topic(this.options.topicName).publishMessage({ data: Buffer.from(JSON.stringify({
12
+ id: randomUUID(),
13
+ type: jobType,
14
+ payload
15
+ }), "utf-8") });
16
+ return {
17
+ id: randomUUID(),
18
+ type: jobType,
19
+ version: "1.0.0",
20
+ payload,
21
+ status: "pending",
22
+ priority: options.priority ?? 0,
23
+ attempts: 0,
24
+ maxRetries: options.maxRetries ?? DEFAULT_RETRY_POLICY.maxRetries,
25
+ createdAt: /* @__PURE__ */ new Date(),
26
+ updatedAt: /* @__PURE__ */ new Date()
27
+ };
28
+ }
29
+ register(jobType, handler) {
30
+ this.handlers.set(jobType, handler);
31
+ }
32
+ start() {}
33
+ async stop() {
34
+ this.handlers.clear();
35
+ }
36
+ };
37
+
38
+ //#endregion
39
+ export { GcpPubSubQueue };
@@ -0,0 +1,9 @@
1
+ import { EmailThreadListQuery } from "../../integrations/providers/email.js";
2
+ import { JobHandler } from "../queue.js";
3
+ import { GmailIngestionAdapter } from "../../knowledge/ingestion/gmail-adapter.js";
4
+
5
+ //#region src/jobs/handlers/gmail-sync-handler.d.ts
6
+ type GmailSyncJobPayload = EmailThreadListQuery;
7
+ declare function createGmailSyncHandler(adapter: GmailIngestionAdapter): JobHandler<GmailSyncJobPayload>;
8
+ //#endregion
9
+ export { GmailSyncJobPayload, createGmailSyncHandler };
@@ -0,0 +1,9 @@
1
+ //#region src/jobs/handlers/gmail-sync-handler.ts
2
+ function createGmailSyncHandler(adapter) {
3
+ return async (job) => {
4
+ await adapter.syncThreads(job.payload);
5
+ };
6
+ }
7
+
8
+ //#endregion
9
+ export { createGmailSyncHandler };
@@ -0,0 +1,9 @@
1
+ import { JobQueue } from "../queue.js";
2
+ import { GmailSyncJobPayload, createGmailSyncHandler } from "./gmail-sync-handler.js";
3
+ import { PING_JOB_TYPE, PingPayload, PingPayloadSchema, pingJob } from "./ping-handler.js";
4
+ import { StorageDocumentJobPayload, createStorageDocumentHandler } from "./storage-document-handler.js";
5
+
6
+ //#region src/jobs/handlers/index.d.ts
7
+ declare function registerAllJobs(queue: JobQueue): void;
8
+ //#endregion
9
+ export { GmailSyncJobPayload, PING_JOB_TYPE, PingPayload, PingPayloadSchema, StorageDocumentJobPayload, createGmailSyncHandler, createStorageDocumentHandler, pingJob, registerAllJobs };
@@ -0,0 +1,12 @@
1
+ import { registerDefinedJob } from "../define-job.js";
2
+ import { createGmailSyncHandler } from "./gmail-sync-handler.js";
3
+ import { PING_JOB_TYPE, PingPayloadSchema, pingJob } from "./ping-handler.js";
4
+ import { createStorageDocumentHandler } from "./storage-document-handler.js";
5
+
6
+ //#region src/jobs/handlers/index.ts
7
+ function registerAllJobs(queue) {
8
+ registerDefinedJob(queue, pingJob);
9
+ }
10
+
11
+ //#endregion
12
+ export { PING_JOB_TYPE, PingPayloadSchema, createGmailSyncHandler, createStorageDocumentHandler, pingJob, registerAllJobs };
@@ -0,0 +1,10 @@
1
+ import { DefinedJob } from "../define-job.js";
2
+ import * as z$2 from "zod";
3
+
4
+ //#region src/jobs/handlers/ping-handler.d.ts
5
+ declare const PING_JOB_TYPE: "core.ping";
6
+ declare const PingPayloadSchema: z$2.ZodObject<{}, z$2.core.$strip>;
7
+ type PingPayload = z$2.infer<typeof PingPayloadSchema>;
8
+ declare const pingJob: DefinedJob<PingPayload>;
9
+ //#endregion
10
+ export { PING_JOB_TYPE, PingPayload, PingPayloadSchema, pingJob };
@@ -0,0 +1,15 @@
1
+ import * as z$2 from "zod";
2
+
3
+ //#region src/jobs/handlers/ping-handler.ts
4
+ const PING_JOB_TYPE = "core.ping";
5
+ const PingPayloadSchema = z$2.object({});
6
+ const pingJob = {
7
+ type: PING_JOB_TYPE,
8
+ schema: PingPayloadSchema,
9
+ handler: async (_payload, job) => {
10
+ console.log("[ping] job id=%s attempts=%d", job.id, job.attempts);
11
+ }
12
+ };
13
+
14
+ //#endregion
15
+ export { PING_JOB_TYPE, PingPayloadSchema, pingJob };