@lssm/lib.contracts 1.2.0

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 (611) hide show
  1. package/README.md +361 -0
  2. package/dist/app-config/branding.d.ts +56 -0
  3. package/dist/app-config/branding.d.ts.map +1 -0
  4. package/dist/app-config/branding.js +0 -0
  5. package/dist/app-config/contracts.d.ts +243 -0
  6. package/dist/app-config/contracts.d.ts.map +1 -0
  7. package/dist/app-config/contracts.js +2 -0
  8. package/dist/app-config/contracts.js.map +1 -0
  9. package/dist/app-config/events.d.ts +121 -0
  10. package/dist/app-config/events.d.ts.map +1 -0
  11. package/dist/app-config/events.js +2 -0
  12. package/dist/app-config/events.js.map +1 -0
  13. package/dist/app-config/index.d.ts +8 -0
  14. package/dist/app-config/index.js +1 -0
  15. package/dist/app-config/lifecycle-contracts.d.ts +381 -0
  16. package/dist/app-config/lifecycle-contracts.d.ts.map +1 -0
  17. package/dist/app-config/lifecycle-contracts.js +2 -0
  18. package/dist/app-config/lifecycle-contracts.js.map +1 -0
  19. package/dist/app-config/lifecycle.d.ts +28 -0
  20. package/dist/app-config/lifecycle.d.ts.map +1 -0
  21. package/dist/app-config/lifecycle.js +0 -0
  22. package/dist/app-config/runtime.d.ts +115 -0
  23. package/dist/app-config/runtime.d.ts.map +1 -0
  24. package/dist/app-config/runtime.js +2 -0
  25. package/dist/app-config/runtime.js.map +1 -0
  26. package/dist/app-config/spec.d.ts +176 -0
  27. package/dist/app-config/spec.d.ts.map +1 -0
  28. package/dist/app-config/spec.js +2 -0
  29. package/dist/app-config/spec.js.map +1 -0
  30. package/dist/app-config/validation.d.ts +48 -0
  31. package/dist/app-config/validation.d.ts.map +1 -0
  32. package/dist/app-config/validation.js +2 -0
  33. package/dist/app-config/validation.js.map +1 -0
  34. package/dist/capabilities/openbanking.d.ts +10 -0
  35. package/dist/capabilities/openbanking.d.ts.map +1 -0
  36. package/dist/capabilities/openbanking.js +2 -0
  37. package/dist/capabilities/openbanking.js.map +1 -0
  38. package/dist/capabilities.d.ts +45 -0
  39. package/dist/capabilities.d.ts.map +1 -0
  40. package/dist/capabilities.js +2 -0
  41. package/dist/capabilities.js.map +1 -0
  42. package/dist/client/index.d.ts +6 -0
  43. package/dist/client/index.js +1 -0
  44. package/dist/client/react/drivers/rn-reusables.d.ts +23 -0
  45. package/dist/client/react/drivers/rn-reusables.d.ts.map +1 -0
  46. package/dist/client/react/drivers/rn-reusables.js +2 -0
  47. package/dist/client/react/drivers/rn-reusables.js.map +1 -0
  48. package/dist/client/react/drivers/shadcn.d.ts +13 -0
  49. package/dist/client/react/drivers/shadcn.d.ts.map +1 -0
  50. package/dist/client/react/drivers/shadcn.js +2 -0
  51. package/dist/client/react/drivers/shadcn.js.map +1 -0
  52. package/dist/client/react/feature-render.d.ts +21 -0
  53. package/dist/client/react/feature-render.d.ts.map +1 -0
  54. package/dist/client/react/feature-render.js +2 -0
  55. package/dist/client/react/feature-render.js.map +1 -0
  56. package/dist/client/react/form-render.d.ts +91 -0
  57. package/dist/client/react/form-render.d.ts.map +1 -0
  58. package/dist/client/react/form-render.js +2 -0
  59. package/dist/client/react/form-render.js.map +1 -0
  60. package/dist/client/react/index.d.ts +5 -0
  61. package/dist/client/react/index.js +1 -0
  62. package/dist/contracts-adapter-hydration.d.ts +16 -0
  63. package/dist/contracts-adapter-hydration.d.ts.map +1 -0
  64. package/dist/contracts-adapter-hydration.js +2 -0
  65. package/dist/contracts-adapter-hydration.js.map +1 -0
  66. package/dist/contracts-adapter-input.d.ts +10 -0
  67. package/dist/contracts-adapter-input.d.ts.map +1 -0
  68. package/dist/contracts-adapter-input.js +2 -0
  69. package/dist/contracts-adapter-input.js.map +1 -0
  70. package/dist/data-views.d.ts +132 -0
  71. package/dist/data-views.d.ts.map +1 -0
  72. package/dist/data-views.js +2 -0
  73. package/dist/data-views.js.map +1 -0
  74. package/dist/events.d.ts +44 -0
  75. package/dist/events.d.ts.map +1 -0
  76. package/dist/events.js +2 -0
  77. package/dist/events.js.map +1 -0
  78. package/dist/experiments/evaluator.d.ts +38 -0
  79. package/dist/experiments/evaluator.d.ts.map +1 -0
  80. package/dist/experiments/evaluator.js +2 -0
  81. package/dist/experiments/evaluator.js.map +1 -0
  82. package/dist/experiments/spec.d.ts +90 -0
  83. package/dist/experiments/spec.d.ts.map +1 -0
  84. package/dist/experiments/spec.js +2 -0
  85. package/dist/experiments/spec.js.map +1 -0
  86. package/dist/features.d.ts +88 -0
  87. package/dist/features.d.ts.map +1 -0
  88. package/dist/features.js +2 -0
  89. package/dist/features.js.map +1 -0
  90. package/dist/forms.d.ts +258 -0
  91. package/dist/forms.d.ts.map +1 -0
  92. package/dist/forms.js +2 -0
  93. package/dist/forms.js.map +1 -0
  94. package/dist/graphql-federation/src/index.js +2 -0
  95. package/dist/graphql-federation/src/index.js.map +1 -0
  96. package/dist/index.d.ts +129 -0
  97. package/dist/index.js +1 -0
  98. package/dist/install.d.ts +76 -0
  99. package/dist/install.d.ts.map +1 -0
  100. package/dist/install.js +2 -0
  101. package/dist/install.js.map +1 -0
  102. package/dist/integrations/binding.d.ts +18 -0
  103. package/dist/integrations/binding.d.ts.map +1 -0
  104. package/dist/integrations/binding.js +0 -0
  105. package/dist/integrations/connection.d.ts +52 -0
  106. package/dist/integrations/connection.d.ts.map +1 -0
  107. package/dist/integrations/connection.js +0 -0
  108. package/dist/integrations/contracts.d.ts +434 -0
  109. package/dist/integrations/contracts.d.ts.map +1 -0
  110. package/dist/integrations/contracts.js +2 -0
  111. package/dist/integrations/contracts.js.map +1 -0
  112. package/dist/integrations/health.d.ts +22 -0
  113. package/dist/integrations/health.d.ts.map +1 -0
  114. package/dist/integrations/health.js +2 -0
  115. package/dist/integrations/health.js.map +1 -0
  116. package/dist/integrations/index.d.ts +53 -0
  117. package/dist/integrations/index.js +1 -0
  118. package/dist/integrations/openbanking/contracts/accounts.d.ts +286 -0
  119. package/dist/integrations/openbanking/contracts/accounts.d.ts.map +1 -0
  120. package/dist/integrations/openbanking/contracts/accounts.js +2 -0
  121. package/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  122. package/dist/integrations/openbanking/contracts/balances.d.ts +162 -0
  123. package/dist/integrations/openbanking/contracts/balances.d.ts.map +1 -0
  124. package/dist/integrations/openbanking/contracts/balances.js +2 -0
  125. package/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  126. package/dist/integrations/openbanking/contracts/index.d.ts +10 -0
  127. package/dist/integrations/openbanking/contracts/index.d.ts.map +1 -0
  128. package/dist/integrations/openbanking/contracts/index.js +2 -0
  129. package/dist/integrations/openbanking/contracts/index.js.map +1 -0
  130. package/dist/integrations/openbanking/contracts/transactions.d.ts +210 -0
  131. package/dist/integrations/openbanking/contracts/transactions.d.ts.map +1 -0
  132. package/dist/integrations/openbanking/contracts/transactions.js +2 -0
  133. package/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  134. package/dist/integrations/openbanking/guards.d.ts +13 -0
  135. package/dist/integrations/openbanking/guards.d.ts.map +1 -0
  136. package/dist/integrations/openbanking/guards.js +2 -0
  137. package/dist/integrations/openbanking/guards.js.map +1 -0
  138. package/dist/integrations/openbanking/models.d.ts +226 -0
  139. package/dist/integrations/openbanking/models.d.ts.map +1 -0
  140. package/dist/integrations/openbanking/models.js +2 -0
  141. package/dist/integrations/openbanking/models.js.map +1 -0
  142. package/dist/integrations/openbanking/telemetry.d.ts +16 -0
  143. package/dist/integrations/openbanking/telemetry.d.ts.map +1 -0
  144. package/dist/integrations/openbanking/telemetry.js +2 -0
  145. package/dist/integrations/openbanking/telemetry.js.map +1 -0
  146. package/dist/integrations/providers/calendar.d.ts +79 -0
  147. package/dist/integrations/providers/calendar.d.ts.map +1 -0
  148. package/dist/integrations/providers/calendar.js +0 -0
  149. package/dist/integrations/providers/elevenlabs.d.ts +8 -0
  150. package/dist/integrations/providers/elevenlabs.d.ts.map +1 -0
  151. package/dist/integrations/providers/elevenlabs.js +2 -0
  152. package/dist/integrations/providers/elevenlabs.js.map +1 -0
  153. package/dist/integrations/providers/email.d.ts +87 -0
  154. package/dist/integrations/providers/email.d.ts.map +1 -0
  155. package/dist/integrations/providers/email.js +0 -0
  156. package/dist/integrations/providers/embedding.d.ts +25 -0
  157. package/dist/integrations/providers/embedding.d.ts.map +1 -0
  158. package/dist/integrations/providers/embedding.js +0 -0
  159. package/dist/integrations/providers/gcs-storage.d.ts +8 -0
  160. package/dist/integrations/providers/gcs-storage.d.ts.map +1 -0
  161. package/dist/integrations/providers/gcs-storage.js +2 -0
  162. package/dist/integrations/providers/gcs-storage.js.map +1 -0
  163. package/dist/integrations/providers/gmail.d.ts +8 -0
  164. package/dist/integrations/providers/gmail.d.ts.map +1 -0
  165. package/dist/integrations/providers/gmail.js +2 -0
  166. package/dist/integrations/providers/gmail.js.map +1 -0
  167. package/dist/integrations/providers/google-calendar.d.ts +8 -0
  168. package/dist/integrations/providers/google-calendar.d.ts.map +1 -0
  169. package/dist/integrations/providers/google-calendar.js +2 -0
  170. package/dist/integrations/providers/google-calendar.js.map +1 -0
  171. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +21 -0
  172. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts.map +1 -0
  173. package/dist/integrations/providers/impls/elevenlabs-voice.js +2 -0
  174. package/dist/integrations/providers/impls/elevenlabs-voice.js.map +1 -0
  175. package/dist/integrations/providers/impls/gcs-storage.d.ts +25 -0
  176. package/dist/integrations/providers/impls/gcs-storage.d.ts.map +1 -0
  177. package/dist/integrations/providers/impls/gcs-storage.js +2 -0
  178. package/dist/integrations/providers/impls/gcs-storage.js.map +1 -0
  179. package/dist/integrations/providers/impls/gmail-inbound.d.ts +27 -0
  180. package/dist/integrations/providers/impls/gmail-inbound.d.ts.map +1 -0
  181. package/dist/integrations/providers/impls/gmail-inbound.js +2 -0
  182. package/dist/integrations/providers/impls/gmail-inbound.js.map +1 -0
  183. package/dist/integrations/providers/impls/gmail-outbound.d.ts +19 -0
  184. package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +1 -0
  185. package/dist/integrations/providers/impls/gmail-outbound.js +7 -0
  186. package/dist/integrations/providers/impls/gmail-outbound.js.map +1 -0
  187. package/dist/integrations/providers/impls/google-calendar.d.ts +24 -0
  188. package/dist/integrations/providers/impls/google-calendar.d.ts.map +1 -0
  189. package/dist/integrations/providers/impls/google-calendar.js +2 -0
  190. package/dist/integrations/providers/impls/google-calendar.js.map +1 -0
  191. package/dist/integrations/providers/impls/index.d.ts +15 -0
  192. package/dist/integrations/providers/impls/index.js +1 -0
  193. package/dist/integrations/providers/impls/mistral-embedding.d.ts +24 -0
  194. package/dist/integrations/providers/impls/mistral-embedding.d.ts.map +1 -0
  195. package/dist/integrations/providers/impls/mistral-embedding.js +2 -0
  196. package/dist/integrations/providers/impls/mistral-embedding.js.map +1 -0
  197. package/dist/integrations/providers/impls/mistral-llm.d.ts +32 -0
  198. package/dist/integrations/providers/impls/mistral-llm.d.ts.map +1 -0
  199. package/dist/integrations/providers/impls/mistral-llm.js +2 -0
  200. package/dist/integrations/providers/impls/mistral-llm.js.map +1 -0
  201. package/dist/integrations/providers/impls/postmark-email.d.ts +20 -0
  202. package/dist/integrations/providers/impls/postmark-email.d.ts.map +1 -0
  203. package/dist/integrations/providers/impls/postmark-email.js +2 -0
  204. package/dist/integrations/providers/impls/postmark-email.js.map +1 -0
  205. package/dist/integrations/providers/impls/powens-client.d.ts +125 -0
  206. package/dist/integrations/providers/impls/powens-client.d.ts.map +1 -0
  207. package/dist/integrations/providers/impls/powens-client.js +2 -0
  208. package/dist/integrations/providers/impls/powens-client.js.map +1 -0
  209. package/dist/integrations/providers/impls/powens-openbanking.d.ts +28 -0
  210. package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +1 -0
  211. package/dist/integrations/providers/impls/powens-openbanking.js +2 -0
  212. package/dist/integrations/providers/impls/powens-openbanking.js.map +1 -0
  213. package/dist/integrations/providers/impls/provider-factory.d.ts +27 -0
  214. package/dist/integrations/providers/impls/provider-factory.d.ts.map +1 -0
  215. package/dist/integrations/providers/impls/provider-factory.js +2 -0
  216. package/dist/integrations/providers/impls/provider-factory.js.map +1 -0
  217. package/dist/integrations/providers/impls/qdrant-vector.d.ts +25 -0
  218. package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +1 -0
  219. package/dist/integrations/providers/impls/qdrant-vector.js +2 -0
  220. package/dist/integrations/providers/impls/qdrant-vector.js.map +1 -0
  221. package/dist/integrations/providers/impls/stripe-payments.d.ts +29 -0
  222. package/dist/integrations/providers/impls/stripe-payments.d.ts.map +1 -0
  223. package/dist/integrations/providers/impls/stripe-payments.js +2 -0
  224. package/dist/integrations/providers/impls/stripe-payments.js.map +1 -0
  225. package/dist/integrations/providers/impls/twilio-sms.d.ts +21 -0
  226. package/dist/integrations/providers/impls/twilio-sms.d.ts.map +1 -0
  227. package/dist/integrations/providers/impls/twilio-sms.js +2 -0
  228. package/dist/integrations/providers/impls/twilio-sms.js.map +1 -0
  229. package/dist/integrations/providers/index.d.ts +36 -0
  230. package/dist/integrations/providers/index.js +1 -0
  231. package/dist/integrations/providers/llm.d.ts +83 -0
  232. package/dist/integrations/providers/llm.d.ts.map +1 -0
  233. package/dist/integrations/providers/llm.js +0 -0
  234. package/dist/integrations/providers/mistral.d.ts +8 -0
  235. package/dist/integrations/providers/mistral.d.ts.map +1 -0
  236. package/dist/integrations/providers/mistral.js +2 -0
  237. package/dist/integrations/providers/mistral.js.map +1 -0
  238. package/dist/integrations/providers/openbanking.d.ts +129 -0
  239. package/dist/integrations/providers/openbanking.d.ts.map +1 -0
  240. package/dist/integrations/providers/openbanking.js +0 -0
  241. package/dist/integrations/providers/payments.d.ts +110 -0
  242. package/dist/integrations/providers/payments.d.ts.map +1 -0
  243. package/dist/integrations/providers/payments.js +0 -0
  244. package/dist/integrations/providers/postmark.d.ts +8 -0
  245. package/dist/integrations/providers/postmark.d.ts.map +1 -0
  246. package/dist/integrations/providers/postmark.js +2 -0
  247. package/dist/integrations/providers/postmark.js.map +1 -0
  248. package/dist/integrations/providers/powens.d.ts +8 -0
  249. package/dist/integrations/providers/powens.d.ts.map +1 -0
  250. package/dist/integrations/providers/powens.js +2 -0
  251. package/dist/integrations/providers/powens.js.map +1 -0
  252. package/dist/integrations/providers/qdrant.d.ts +8 -0
  253. package/dist/integrations/providers/qdrant.d.ts.map +1 -0
  254. package/dist/integrations/providers/qdrant.js +2 -0
  255. package/dist/integrations/providers/qdrant.js.map +1 -0
  256. package/dist/integrations/providers/sms.d.ts +35 -0
  257. package/dist/integrations/providers/sms.d.ts.map +1 -0
  258. package/dist/integrations/providers/sms.js +0 -0
  259. package/dist/integrations/providers/storage.d.ts +61 -0
  260. package/dist/integrations/providers/storage.d.ts.map +1 -0
  261. package/dist/integrations/providers/storage.js +0 -0
  262. package/dist/integrations/providers/stripe.d.ts +8 -0
  263. package/dist/integrations/providers/stripe.d.ts.map +1 -0
  264. package/dist/integrations/providers/stripe.js +2 -0
  265. package/dist/integrations/providers/stripe.js.map +1 -0
  266. package/dist/integrations/providers/twilio-sms.d.ts +8 -0
  267. package/dist/integrations/providers/twilio-sms.d.ts.map +1 -0
  268. package/dist/integrations/providers/twilio-sms.js +2 -0
  269. package/dist/integrations/providers/twilio-sms.js.map +1 -0
  270. package/dist/integrations/providers/vector-store.d.ts +44 -0
  271. package/dist/integrations/providers/vector-store.d.ts.map +1 -0
  272. package/dist/integrations/providers/vector-store.js +0 -0
  273. package/dist/integrations/providers/voice.d.ts +35 -0
  274. package/dist/integrations/providers/voice.d.ts.map +1 -0
  275. package/dist/integrations/providers/voice.js +0 -0
  276. package/dist/integrations/runtime.d.ts +100 -0
  277. package/dist/integrations/runtime.d.ts.map +1 -0
  278. package/dist/integrations/runtime.js +2 -0
  279. package/dist/integrations/runtime.js.map +1 -0
  280. package/dist/integrations/secrets/env-secret-provider.d.ts +32 -0
  281. package/dist/integrations/secrets/env-secret-provider.d.ts.map +1 -0
  282. package/dist/integrations/secrets/env-secret-provider.js +2 -0
  283. package/dist/integrations/secrets/env-secret-provider.js.map +1 -0
  284. package/dist/integrations/secrets/gcp-secret-manager.d.ts +33 -0
  285. package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +1 -0
  286. package/dist/integrations/secrets/gcp-secret-manager.js +2 -0
  287. package/dist/integrations/secrets/gcp-secret-manager.js.map +1 -0
  288. package/dist/integrations/secrets/index.d.ts +5 -0
  289. package/dist/integrations/secrets/index.js +1 -0
  290. package/dist/integrations/secrets/manager.d.ts +48 -0
  291. package/dist/integrations/secrets/manager.d.ts.map +1 -0
  292. package/dist/integrations/secrets/manager.js +2 -0
  293. package/dist/integrations/secrets/manager.js.map +1 -0
  294. package/dist/integrations/secrets/provider.d.ts +53 -0
  295. package/dist/integrations/secrets/provider.d.ts.map +1 -0
  296. package/dist/integrations/secrets/provider.js +2 -0
  297. package/dist/integrations/secrets/provider.js.map +1 -0
  298. package/dist/integrations/spec.d.ts +80 -0
  299. package/dist/integrations/spec.d.ts.map +1 -0
  300. package/dist/integrations/spec.js +2 -0
  301. package/dist/integrations/spec.js.map +1 -0
  302. package/dist/jobs/gcp-cloud-tasks.d.ts +42 -0
  303. package/dist/jobs/gcp-cloud-tasks.d.ts.map +1 -0
  304. package/dist/jobs/gcp-cloud-tasks.js +2 -0
  305. package/dist/jobs/gcp-cloud-tasks.js.map +1 -0
  306. package/dist/jobs/gcp-pubsub.d.ts +26 -0
  307. package/dist/jobs/gcp-pubsub.d.ts.map +1 -0
  308. package/dist/jobs/gcp-pubsub.js +2 -0
  309. package/dist/jobs/gcp-pubsub.js.map +1 -0
  310. package/dist/jobs/handlers/gmail-sync-handler.d.ts +10 -0
  311. package/dist/jobs/handlers/gmail-sync-handler.d.ts.map +1 -0
  312. package/dist/jobs/handlers/gmail-sync-handler.js +2 -0
  313. package/dist/jobs/handlers/gmail-sync-handler.js.map +1 -0
  314. package/dist/jobs/handlers/index.d.ts +3 -0
  315. package/dist/jobs/handlers/index.js +1 -0
  316. package/dist/jobs/handlers/storage-document-handler.d.ts +13 -0
  317. package/dist/jobs/handlers/storage-document-handler.d.ts.map +1 -0
  318. package/dist/jobs/handlers/storage-document-handler.js +2 -0
  319. package/dist/jobs/handlers/storage-document-handler.js.map +1 -0
  320. package/dist/jobs/index.d.ts +7 -0
  321. package/dist/jobs/index.js +1 -0
  322. package/dist/jobs/memory-queue.d.ts +19 -0
  323. package/dist/jobs/memory-queue.d.ts.map +1 -0
  324. package/dist/jobs/memory-queue.js +2 -0
  325. package/dist/jobs/memory-queue.js.map +1 -0
  326. package/dist/jobs/queue.d.ts +27 -0
  327. package/dist/jobs/queue.d.ts.map +1 -0
  328. package/dist/jobs/queue.js +0 -0
  329. package/dist/jsonschema.d.ts +27 -0
  330. package/dist/jsonschema.d.ts.map +1 -0
  331. package/dist/jsonschema.js +2 -0
  332. package/dist/jsonschema.js.map +1 -0
  333. package/dist/knowledge/binding.d.ts +26 -0
  334. package/dist/knowledge/binding.d.ts.map +1 -0
  335. package/dist/knowledge/binding.js +0 -0
  336. package/dist/knowledge/contracts.d.ts +315 -0
  337. package/dist/knowledge/contracts.d.ts.map +1 -0
  338. package/dist/knowledge/contracts.js +2 -0
  339. package/dist/knowledge/contracts.js.map +1 -0
  340. package/dist/knowledge/index.d.ts +10 -0
  341. package/dist/knowledge/index.js +1 -0
  342. package/dist/knowledge/ingestion/document-processor.d.ts +25 -0
  343. package/dist/knowledge/ingestion/document-processor.d.ts.map +1 -0
  344. package/dist/knowledge/ingestion/document-processor.js +2 -0
  345. package/dist/knowledge/ingestion/document-processor.js.map +1 -0
  346. package/dist/knowledge/ingestion/embedding-service.d.ts +13 -0
  347. package/dist/knowledge/ingestion/embedding-service.d.ts.map +1 -0
  348. package/dist/knowledge/ingestion/embedding-service.js +2 -0
  349. package/dist/knowledge/ingestion/embedding-service.js.map +1 -0
  350. package/dist/knowledge/ingestion/gmail-adapter.d.ts +19 -0
  351. package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +1 -0
  352. package/dist/knowledge/ingestion/gmail-adapter.js +7 -0
  353. package/dist/knowledge/ingestion/gmail-adapter.js.map +1 -0
  354. package/dist/knowledge/ingestion/index.d.ts +6 -0
  355. package/dist/knowledge/ingestion/index.js +1 -0
  356. package/dist/knowledge/ingestion/storage-adapter.d.ts +16 -0
  357. package/dist/knowledge/ingestion/storage-adapter.d.ts.map +1 -0
  358. package/dist/knowledge/ingestion/storage-adapter.js +2 -0
  359. package/dist/knowledge/ingestion/storage-adapter.js.map +1 -0
  360. package/dist/knowledge/ingestion/vector-indexer.d.ts +19 -0
  361. package/dist/knowledge/ingestion/vector-indexer.d.ts.map +1 -0
  362. package/dist/knowledge/ingestion/vector-indexer.js +2 -0
  363. package/dist/knowledge/ingestion/vector-indexer.js.map +1 -0
  364. package/dist/knowledge/query/index.d.ts +2 -0
  365. package/dist/knowledge/query/index.js +1 -0
  366. package/dist/knowledge/query/service.d.ts +30 -0
  367. package/dist/knowledge/query/service.d.ts.map +1 -0
  368. package/dist/knowledge/query/service.js +4 -0
  369. package/dist/knowledge/query/service.js.map +1 -0
  370. package/dist/knowledge/runtime.d.ts +33 -0
  371. package/dist/knowledge/runtime.d.ts.map +1 -0
  372. package/dist/knowledge/runtime.js +2 -0
  373. package/dist/knowledge/runtime.js.map +1 -0
  374. package/dist/knowledge/source.d.ts +33 -0
  375. package/dist/knowledge/source.d.ts.map +1 -0
  376. package/dist/knowledge/source.js +0 -0
  377. package/dist/knowledge/spaces/email-threads.d.ts +8 -0
  378. package/dist/knowledge/spaces/email-threads.d.ts.map +1 -0
  379. package/dist/knowledge/spaces/email-threads.js +2 -0
  380. package/dist/knowledge/spaces/email-threads.js.map +1 -0
  381. package/dist/knowledge/spaces/financial-docs.d.ts +8 -0
  382. package/dist/knowledge/spaces/financial-docs.d.ts.map +1 -0
  383. package/dist/knowledge/spaces/financial-docs.js +2 -0
  384. package/dist/knowledge/spaces/financial-docs.js.map +1 -0
  385. package/dist/knowledge/spaces/financial-overview.d.ts +8 -0
  386. package/dist/knowledge/spaces/financial-overview.d.ts.map +1 -0
  387. package/dist/knowledge/spaces/financial-overview.js +2 -0
  388. package/dist/knowledge/spaces/financial-overview.js.map +1 -0
  389. package/dist/knowledge/spaces/index.d.ts +7 -0
  390. package/dist/knowledge/spaces/index.js +1 -0
  391. package/dist/knowledge/spaces/product-canon.d.ts +8 -0
  392. package/dist/knowledge/spaces/product-canon.d.ts.map +1 -0
  393. package/dist/knowledge/spaces/product-canon.js +2 -0
  394. package/dist/knowledge/spaces/product-canon.js.map +1 -0
  395. package/dist/knowledge/spaces/support-faq.d.ts +8 -0
  396. package/dist/knowledge/spaces/support-faq.d.ts.map +1 -0
  397. package/dist/knowledge/spaces/support-faq.js +2 -0
  398. package/dist/knowledge/spaces/support-faq.js.map +1 -0
  399. package/dist/knowledge/spaces/uploaded-docs.d.ts +8 -0
  400. package/dist/knowledge/spaces/uploaded-docs.d.ts.map +1 -0
  401. package/dist/knowledge/spaces/uploaded-docs.js +2 -0
  402. package/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  403. package/dist/knowledge/spec.d.ts +53 -0
  404. package/dist/knowledge/spec.d.ts.map +1 -0
  405. package/dist/knowledge/spec.js +2 -0
  406. package/dist/knowledge/spec.js.map +1 -0
  407. package/dist/markdown.d.ts +22 -0
  408. package/dist/markdown.d.ts.map +1 -0
  409. package/dist/markdown.js +4 -0
  410. package/dist/markdown.js.map +1 -0
  411. package/dist/migrations.d.ts +53 -0
  412. package/dist/migrations.d.ts.map +1 -0
  413. package/dist/migrations.js +2 -0
  414. package/dist/migrations.js.map +1 -0
  415. package/dist/onboarding-base.d.ts +136 -0
  416. package/dist/onboarding-base.d.ts.map +1 -0
  417. package/dist/onboarding-base.js +2 -0
  418. package/dist/onboarding-base.js.map +1 -0
  419. package/dist/ownership.d.ts +76 -0
  420. package/dist/ownership.d.ts.map +1 -0
  421. package/dist/ownership.js +2 -0
  422. package/dist/ownership.js.map +1 -0
  423. package/dist/policy/engine.d.ts +40 -0
  424. package/dist/policy/engine.d.ts.map +1 -0
  425. package/dist/policy/engine.js +2 -0
  426. package/dist/policy/engine.js.map +1 -0
  427. package/dist/policy/opa-adapter.d.ts +46 -0
  428. package/dist/policy/opa-adapter.d.ts.map +1 -0
  429. package/dist/policy/opa-adapter.js +2 -0
  430. package/dist/policy/opa-adapter.js.map +1 -0
  431. package/dist/policy/spec.d.ts +115 -0
  432. package/dist/policy/spec.d.ts.map +1 -0
  433. package/dist/policy/spec.js +2 -0
  434. package/dist/policy/spec.js.map +1 -0
  435. package/dist/presentations.backcompat.d.ts +8 -0
  436. package/dist/presentations.backcompat.d.ts.map +1 -0
  437. package/dist/presentations.backcompat.js +2 -0
  438. package/dist/presentations.backcompat.js.map +1 -0
  439. package/dist/presentations.d.ts +96 -0
  440. package/dist/presentations.d.ts.map +1 -0
  441. package/dist/presentations.js +2 -0
  442. package/dist/presentations.js.map +1 -0
  443. package/dist/presentations.v2.d.ts +95 -0
  444. package/dist/presentations.v2.d.ts.map +1 -0
  445. package/dist/presentations.v2.js +2 -0
  446. package/dist/presentations.v2.js.map +1 -0
  447. package/dist/prompt.d.ts +61 -0
  448. package/dist/prompt.d.ts.map +1 -0
  449. package/dist/prompt.js +2 -0
  450. package/dist/prompt.js.map +1 -0
  451. package/dist/promptRegistry.d.ts +16 -0
  452. package/dist/promptRegistry.d.ts.map +1 -0
  453. package/dist/promptRegistry.js +2 -0
  454. package/dist/promptRegistry.js.map +1 -0
  455. package/dist/regenerator/adapters.d.ts +20 -0
  456. package/dist/regenerator/adapters.d.ts.map +1 -0
  457. package/dist/regenerator/adapters.js +0 -0
  458. package/dist/regenerator/executor.d.ts +71 -0
  459. package/dist/regenerator/executor.d.ts.map +1 -0
  460. package/dist/regenerator/executor.js +2 -0
  461. package/dist/regenerator/executor.js.map +1 -0
  462. package/dist/regenerator/index.d.ts +7 -0
  463. package/dist/regenerator/index.js +1 -0
  464. package/dist/regenerator/service.d.ts +34 -0
  465. package/dist/regenerator/service.d.ts.map +1 -0
  466. package/dist/regenerator/service.js +2 -0
  467. package/dist/regenerator/service.js.map +1 -0
  468. package/dist/regenerator/sinks.d.ts +27 -0
  469. package/dist/regenerator/sinks.d.ts.map +1 -0
  470. package/dist/regenerator/sinks.js +2 -0
  471. package/dist/regenerator/sinks.js.map +1 -0
  472. package/dist/regenerator/types.d.ts +108 -0
  473. package/dist/regenerator/types.d.ts.map +1 -0
  474. package/dist/regenerator/types.js +0 -0
  475. package/dist/regenerator/utils.d.ts +10 -0
  476. package/dist/regenerator/utils.d.ts.map +1 -0
  477. package/dist/regenerator/utils.js +2 -0
  478. package/dist/regenerator/utils.js.map +1 -0
  479. package/dist/registry.d.ts +45 -0
  480. package/dist/registry.d.ts.map +1 -0
  481. package/dist/registry.js +2 -0
  482. package/dist/registry.js.map +1 -0
  483. package/dist/resources.d.ts +65 -0
  484. package/dist/resources.d.ts.map +1 -0
  485. package/dist/resources.js +2 -0
  486. package/dist/resources.js.map +1 -0
  487. package/dist/schema/src/EnumType.js +1 -0
  488. package/dist/schema/src/FieldType.js +2 -0
  489. package/dist/schema/src/FieldType.js.map +1 -0
  490. package/dist/schema/src/ScalarTypeEnum.js +2 -0
  491. package/dist/schema/src/ScalarTypeEnum.js.map +1 -0
  492. package/dist/schema/src/SchemaModel.js +2 -0
  493. package/dist/schema/src/SchemaModel.js.map +1 -0
  494. package/dist/schema/src/index.js +1 -0
  495. package/dist/server/graphql-pothos.d.ts +19 -0
  496. package/dist/server/graphql-pothos.d.ts.map +1 -0
  497. package/dist/server/graphql-pothos.js +2 -0
  498. package/dist/server/graphql-pothos.js.map +1 -0
  499. package/dist/server/graphql-schema-export.d.ts +7 -0
  500. package/dist/server/graphql-schema-export.d.ts.map +1 -0
  501. package/dist/server/graphql-schema-export.js +2 -0
  502. package/dist/server/graphql-schema-export.js.map +1 -0
  503. package/dist/server/index.d.ts +9 -0
  504. package/dist/server/index.js +1 -0
  505. package/dist/server/provider-mcp.d.ts +34 -0
  506. package/dist/server/provider-mcp.d.ts.map +1 -0
  507. package/dist/server/provider-mcp.js +2 -0
  508. package/dist/server/provider-mcp.js.map +1 -0
  509. package/dist/server/rest-elysia.d.ts +41 -0
  510. package/dist/server/rest-elysia.d.ts.map +1 -0
  511. package/dist/server/rest-elysia.js +2 -0
  512. package/dist/server/rest-elysia.js.map +1 -0
  513. package/dist/server/rest-express.d.ts +17 -0
  514. package/dist/server/rest-express.d.ts.map +1 -0
  515. package/dist/server/rest-express.js +2 -0
  516. package/dist/server/rest-express.js.map +1 -0
  517. package/dist/server/rest-generic.d.ts +33 -0
  518. package/dist/server/rest-generic.d.ts.map +1 -0
  519. package/dist/server/rest-generic.js +2 -0
  520. package/dist/server/rest-generic.js.map +1 -0
  521. package/dist/server/rest-next-app.d.ts +16 -0
  522. package/dist/server/rest-next-app.d.ts.map +1 -0
  523. package/dist/server/rest-next-app.js +2 -0
  524. package/dist/server/rest-next-app.js.map +1 -0
  525. package/dist/server/rest-next-mcp.d.ts +12 -0
  526. package/dist/server/rest-next-mcp.d.ts.map +1 -0
  527. package/dist/server/rest-next-mcp.js +2 -0
  528. package/dist/server/rest-next-mcp.js.map +1 -0
  529. package/dist/server/rest-next-pages.d.ts +10 -0
  530. package/dist/server/rest-next-pages.d.ts.map +1 -0
  531. package/dist/server/rest-next-pages.js +2 -0
  532. package/dist/server/rest-next-pages.js.map +1 -0
  533. package/dist/spec.d.ts +149 -0
  534. package/dist/spec.d.ts.map +1 -0
  535. package/dist/spec.js +2 -0
  536. package/dist/spec.js.map +1 -0
  537. package/dist/telemetry/anomaly.d.ts +28 -0
  538. package/dist/telemetry/anomaly.d.ts.map +1 -0
  539. package/dist/telemetry/anomaly.js +2 -0
  540. package/dist/telemetry/anomaly.js.map +1 -0
  541. package/dist/telemetry/index.d.ts +4 -0
  542. package/dist/telemetry/index.js +1 -0
  543. package/dist/telemetry/spec.d.ts +99 -0
  544. package/dist/telemetry/spec.d.ts.map +1 -0
  545. package/dist/telemetry/spec.js +2 -0
  546. package/dist/telemetry/spec.js.map +1 -0
  547. package/dist/telemetry/tracker.d.ts +52 -0
  548. package/dist/telemetry/tracker.d.ts.map +1 -0
  549. package/dist/telemetry/tracker.js +2 -0
  550. package/dist/telemetry/tracker.js.map +1 -0
  551. package/dist/tests/index.d.ts +3 -0
  552. package/dist/tests/index.js +1 -0
  553. package/dist/tests/runner.d.ts +44 -0
  554. package/dist/tests/runner.d.ts.map +1 -0
  555. package/dist/tests/runner.js +2 -0
  556. package/dist/tests/runner.js.map +1 -0
  557. package/dist/tests/spec.d.ts +90 -0
  558. package/dist/tests/spec.d.ts.map +1 -0
  559. package/dist/tests/spec.js +2 -0
  560. package/dist/tests/spec.js.map +1 -0
  561. package/dist/themes.d.ts +56 -0
  562. package/dist/themes.d.ts.map +1 -0
  563. package/dist/themes.js +2 -0
  564. package/dist/themes.js.map +1 -0
  565. package/dist/translations/catalog.d.ts +29 -0
  566. package/dist/translations/catalog.d.ts.map +1 -0
  567. package/dist/translations/catalog.js +0 -0
  568. package/dist/translations/tenant.d.ts +16 -0
  569. package/dist/translations/tenant.d.ts.map +1 -0
  570. package/dist/translations/tenant.js +0 -0
  571. package/dist/types/all.d.ts +60 -0
  572. package/dist/types/all.js +0 -0
  573. package/dist/types.d.ts +86 -0
  574. package/dist/types.d.ts.map +1 -0
  575. package/dist/types.js +0 -0
  576. package/dist/workflow/adapters/db-adapter.d.ts +15 -0
  577. package/dist/workflow/adapters/db-adapter.d.ts.map +1 -0
  578. package/dist/workflow/adapters/db-adapter.js +2 -0
  579. package/dist/workflow/adapters/db-adapter.js.map +1 -0
  580. package/dist/workflow/adapters/file-adapter.d.ts +15 -0
  581. package/dist/workflow/adapters/file-adapter.d.ts.map +1 -0
  582. package/dist/workflow/adapters/file-adapter.js +2 -0
  583. package/dist/workflow/adapters/file-adapter.js.map +1 -0
  584. package/dist/workflow/adapters/index.d.ts +4 -0
  585. package/dist/workflow/adapters/index.js +1 -0
  586. package/dist/workflow/adapters/memory-store.d.ts +19 -0
  587. package/dist/workflow/adapters/memory-store.d.ts.map +1 -0
  588. package/dist/workflow/adapters/memory-store.js +2 -0
  589. package/dist/workflow/adapters/memory-store.js.map +1 -0
  590. package/dist/workflow/expression.d.ts +10 -0
  591. package/dist/workflow/expression.d.ts.map +1 -0
  592. package/dist/workflow/expression.js +2 -0
  593. package/dist/workflow/expression.js.map +1 -0
  594. package/dist/workflow/index.d.ts +10 -0
  595. package/dist/workflow/index.js +1 -0
  596. package/dist/workflow/runner.d.ts +74 -0
  597. package/dist/workflow/runner.d.ts.map +1 -0
  598. package/dist/workflow/runner.js +2 -0
  599. package/dist/workflow/runner.js.map +1 -0
  600. package/dist/workflow/spec.d.ts +100 -0
  601. package/dist/workflow/spec.d.ts.map +1 -0
  602. package/dist/workflow/spec.js +2 -0
  603. package/dist/workflow/spec.js.map +1 -0
  604. package/dist/workflow/state.d.ts +35 -0
  605. package/dist/workflow/state.d.ts.map +1 -0
  606. package/dist/workflow/state.js +0 -0
  607. package/dist/workflow/validation.d.ts +29 -0
  608. package/dist/workflow/validation.d.ts.map +1 -0
  609. package/dist/workflow/validation.js +2 -0
  610. package/dist/workflow/validation.js.map +1 -0
  611. package/package.json +401 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","names":[],"sources":["../../../src/knowledge/query/service.ts"],"sourcesContent":["import type { EmbeddingProvider } from '../../integrations/providers/embedding';\nimport type {\n VectorStoreProvider,\n VectorSearchResult,\n} from '../../integrations/providers/vector-store';\nimport type { LLMProvider, LLMMessage, LLMResponse } from '../../integrations/providers/llm';\n\nexport interface KnowledgeQueryConfig {\n collection: string;\n namespace?: string;\n topK?: number;\n systemPrompt?: string;\n}\n\nexport interface KnowledgeAnswer {\n answer: string;\n references: Array<\n VectorSearchResult & {\n text?: string;\n }\n >;\n usage?: LLMResponse['usage'];\n}\n\nexport class KnowledgeQueryService {\n private readonly embeddings: EmbeddingProvider;\n private readonly vectorStore: VectorStoreProvider;\n private readonly llm: LLMProvider;\n private readonly config: KnowledgeQueryConfig;\n\n constructor(\n embeddings: EmbeddingProvider,\n vectorStore: VectorStoreProvider,\n llm: LLMProvider,\n config: KnowledgeQueryConfig\n ) {\n this.embeddings = embeddings;\n this.vectorStore = vectorStore;\n this.llm = llm;\n this.config = config;\n }\n\n async query(question: string): Promise<KnowledgeAnswer> {\n const embedding = await this.embeddings.embedQuery(question);\n const results = await this.vectorStore.search({\n collection: this.config.collection,\n vector: embedding.vector,\n topK: this.config.topK ?? 5,\n namespace: this.config.namespace,\n filter: undefined,\n });\n const context = buildContext(results);\n const messages = this.buildMessages(question, context);\n const response = await this.llm.chat(messages);\n return {\n answer: response.message.content\n .map((part) => ('text' in part ? part.text : ''))\n .join(''),\n references: results.map((result) => ({\n ...result,\n text: extractText(result),\n })),\n usage: response.usage,\n };\n }\n\n private buildMessages(question: string, context: string): LLMMessage[] {\n const systemPrompt =\n this.config.systemPrompt ??\n 'You are a knowledge assistant that answers questions using the provided context. Cite relevant sources if possible.';\n return [\n {\n role: 'system',\n content: [{ type: 'text', text: systemPrompt }],\n },\n {\n role: 'user',\n content: [\n {\n type: 'text',\n text: `Question:\\n${question}\\n\\nContext:\\n${context}`,\n },\n ],\n },\n ];\n }\n}\n\nfunction buildContext(results: VectorSearchResult[]): string {\n if (results.length === 0) {\n return 'No relevant documents found.';\n }\n return results\n .map((result, index) => {\n const text = extractText(result);\n return `Source ${index + 1} (score: ${result.score.toFixed(3)}):\\n${text}`;\n })\n .join('\\n\\n');\n}\n\nfunction extractText(result: VectorSearchResult): string {\n const payload = result.payload ?? {};\n if (typeof payload.text === 'string') return payload.text;\n if (typeof payload.content === 'string') return payload.content;\n return JSON.stringify(payload);\n}\n\n\n"],"mappings":"AAwBA,IAAa,EAAb,KAAmC,CACjC,WACA,YACA,IACA,OAEA,YACE,EACA,EACA,EACA,EACA,CACA,KAAK,WAAa,EAClB,KAAK,YAAc,EACnB,KAAK,IAAM,EACX,KAAK,OAAS,EAGhB,MAAM,MAAM,EAA4C,CACtD,IAAM,EAAY,MAAM,KAAK,WAAW,WAAW,EAAS,CACtD,EAAU,MAAM,KAAK,YAAY,OAAO,CAC5C,WAAY,KAAK,OAAO,WACxB,OAAQ,EAAU,OAClB,KAAM,KAAK,OAAO,MAAQ,EAC1B,UAAW,KAAK,OAAO,UACvB,OAAQ,IAAA,GACT,CAAC,CACI,EAAU,EAAa,EAAQ,CAC/B,EAAW,KAAK,cAAc,EAAU,EAAQ,CAChD,EAAW,MAAM,KAAK,IAAI,KAAK,EAAS,CAC9C,MAAO,CACL,OAAQ,EAAS,QAAQ,QACtB,IAAK,GAAU,SAAU,EAAO,EAAK,KAAO,GAAI,CAChD,KAAK,GAAG,CACX,WAAY,EAAQ,IAAK,IAAY,CACnC,GAAG,EACH,KAAM,EAAY,EAAO,CAC1B,EAAE,CACH,MAAO,EAAS,MACjB,CAGH,cAAsB,EAAkB,EAA+B,CAIrE,MAAO,CACL,CACE,KAAM,SACN,QAAS,CAAC,CAAE,KAAM,OAAQ,KAL5B,KAAK,OAAO,cACZ,sHAIgD,CAAC,CAChD,CACD,CACE,KAAM,OACN,QAAS,CACP,CACE,KAAM,OACN,KAAM,cAAc,EAAS,gBAAgB,IAC9C,CACF,CACF,CACF,GAIL,SAAS,EAAa,EAAuC,CAI3D,OAHI,EAAQ,SAAW,EACd,+BAEF,EACJ,KAAK,EAAQ,IAAU,CACtB,IAAM,EAAO,EAAY,EAAO,CAChC,MAAO,UAAU,EAAQ,EAAE,WAAW,EAAO,MAAM,QAAQ,EAAE,CAAC,MAAM,KACpE,CACD,KAAK;;EAAO,CAGjB,SAAS,EAAY,EAAoC,CACvD,IAAM,EAAU,EAAO,SAAW,EAAE,CAGpC,OAFI,OAAO,EAAQ,MAAS,SAAiB,EAAQ,KACjD,OAAO,EAAQ,SAAY,SAAiB,EAAQ,QACjD,KAAK,UAAU,EAAQ"}
@@ -0,0 +1,33 @@
1
+ import { KnowledgeCategory } from "./spec.js";
2
+ import { ResolvedAppConfig, ResolvedKnowledge } from "../app-config/runtime.js";
3
+
4
+ //#region src/knowledge/runtime.d.ts
5
+ interface KnowledgeAccessContext {
6
+ tenantId: string;
7
+ appId: string;
8
+ environment?: string;
9
+ workflowName?: string;
10
+ agentName?: string;
11
+ operation: 'read' | 'write' | 'search';
12
+ }
13
+ interface KnowledgeAccessResult {
14
+ allowed: boolean;
15
+ reason?: string;
16
+ severity?: 'error' | 'warning';
17
+ }
18
+ interface KnowledgeAccessGuardOptions {
19
+ disallowWriteCategories?: KnowledgeCategory[];
20
+ requireWorkflowBinding?: boolean;
21
+ requireAgentBinding?: boolean;
22
+ }
23
+ declare class KnowledgeAccessGuard {
24
+ private readonly disallowedWrite;
25
+ private readonly requireWorkflowBinding;
26
+ private readonly requireAgentBinding;
27
+ constructor(options?: KnowledgeAccessGuardOptions);
28
+ checkAccess(spaceBinding: ResolvedKnowledge, context: KnowledgeAccessContext, appConfig: ResolvedAppConfig): KnowledgeAccessResult;
29
+ private isSpaceBound;
30
+ }
31
+ //#endregion
32
+ export { KnowledgeAccessContext, KnowledgeAccessGuard, KnowledgeAccessGuardOptions, KnowledgeAccessResult };
33
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","names":[],"sources":["../../src/knowledge/runtime.ts"],"sourcesContent":[],"mappings":";;;;UAGiB,sBAAA;;EAAA,KAAA,EAAA,MAAA;EASA,WAAA,CAAA,EAAA,MAAA;EAMA,YAAA,CAAA,EAAA,MAAA;EAQJ,SAAA,CAAA,EAAA,MAAA;EAKU,SAAA,EAAA,MAAA,GAAA,OAAA,GAAA,QAAA;;AAUV,UA7BI,qBAAA,CA6BJ;EACE,OAAA,EAAA,OAAA;EACV,MAAA,CAAA,EAAA,MAAA;EAAqB,QAAA,CAAA,EAAA,OAAA,GAAA,SAAA;;UAzBT,2BAAA;4BACW;;;;cAOf,oBAAA;;;;wBAKU;4BASL,4BACL,mCACE,oBACV"}
@@ -0,0 +1,2 @@
1
+ const e=[`external`,`ephemeral`];var t=class{disallowedWrite;requireWorkflowBinding;requireAgentBinding;constructor(t={}){this.disallowedWrite=new Set(t.disallowWriteCategories??e),this.requireWorkflowBinding=t.requireWorkflowBinding??!0,this.requireAgentBinding=t.requireAgentBinding??!1}checkAccess(e,t,n){let{binding:r,space:i}=e;if(r.required!==!1&&!this.isSpaceBound(e,n))return{allowed:!1,reason:`Knowledge space "${i.meta.key}" is not bound in the resolved app config.`};if(t.operation===`write`&&this.disallowedWrite.has(i.meta.category))return{allowed:!1,reason:`Knowledge space "${i.meta.key}" is category "${i.meta.category}" and is read-only.`};if(this.requireWorkflowBinding&&t.workflowName){let e=r.scope?.workflows;if(e&&!e.includes(t.workflowName))return{allowed:!1,reason:`Workflow "${t.workflowName}" is not authorized to access knowledge space "${i.meta.key}".`}}if(this.requireAgentBinding&&t.agentName){let e=r.scope?.agents;if(e&&!e.includes(t.agentName))return{allowed:!1,reason:`Agent "${t.agentName}" is not authorized to access knowledge space "${i.meta.key}".`}}return i.meta.category===`ephemeral`?{allowed:!0,severity:`warning`,reason:`Knowledge space "${i.meta.key}" is ephemeral; results may be transient.`}:{allowed:!0}}isSpaceBound(e,t){return t.knowledge.some(t=>t.space.meta.key===e.space.meta.key&&(e.space.meta.version==null||t.space.meta.version===e.space.meta.version))}};export{t as KnowledgeAccessGuard};
2
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","names":["DEFAULT_DISALLOWED_WRITE: KnowledgeCategory[]"],"sources":["../../src/knowledge/runtime.ts"],"sourcesContent":["import type { ResolvedAppConfig, ResolvedKnowledge } from '../app-config/runtime';\nimport type { KnowledgeCategory } from './spec';\n\nexport interface KnowledgeAccessContext {\n tenantId: string;\n appId: string;\n environment?: string;\n workflowName?: string;\n agentName?: string;\n operation: 'read' | 'write' | 'search';\n}\n\nexport interface KnowledgeAccessResult {\n allowed: boolean;\n reason?: string;\n severity?: 'error' | 'warning';\n}\n\nexport interface KnowledgeAccessGuardOptions {\n disallowWriteCategories?: KnowledgeCategory[];\n requireWorkflowBinding?: boolean;\n requireAgentBinding?: boolean;\n}\n\nconst DEFAULT_DISALLOWED_WRITE: KnowledgeCategory[] = ['external', 'ephemeral'];\n\nexport class KnowledgeAccessGuard {\n private readonly disallowedWrite: Set<KnowledgeCategory>;\n private readonly requireWorkflowBinding: boolean;\n private readonly requireAgentBinding: boolean;\n\n constructor(options: KnowledgeAccessGuardOptions = {}) {\n this.disallowedWrite = new Set(\n options.disallowWriteCategories ?? DEFAULT_DISALLOWED_WRITE\n );\n this.requireWorkflowBinding = options.requireWorkflowBinding ?? true;\n this.requireAgentBinding = options.requireAgentBinding ?? false;\n }\n\n checkAccess(\n spaceBinding: ResolvedKnowledge,\n context: KnowledgeAccessContext,\n appConfig: ResolvedAppConfig\n ): KnowledgeAccessResult {\n const { binding, space } = spaceBinding;\n\n if (binding.required !== false && !this.isSpaceBound(spaceBinding, appConfig)) {\n return {\n allowed: false,\n reason: `Knowledge space \"${space.meta.key}\" is not bound in the resolved app config.`,\n };\n }\n\n if (\n context.operation === 'write' &&\n this.disallowedWrite.has(space.meta.category)\n ) {\n return {\n allowed: false,\n reason: `Knowledge space \"${space.meta.key}\" is category \"${space.meta.category}\" and is read-only.`,\n };\n }\n\n if (this.requireWorkflowBinding && context.workflowName) {\n const allowedWorkflows = binding.scope?.workflows;\n if (allowedWorkflows && !allowedWorkflows.includes(context.workflowName)) {\n return {\n allowed: false,\n reason: `Workflow \"${context.workflowName}\" is not authorized to access knowledge space \"${space.meta.key}\".`,\n };\n }\n }\n\n if (this.requireAgentBinding && context.agentName) {\n const allowedAgents = binding.scope?.agents;\n if (allowedAgents && !allowedAgents.includes(context.agentName)) {\n return {\n allowed: false,\n reason: `Agent \"${context.agentName}\" is not authorized to access knowledge space \"${space.meta.key}\".`,\n };\n }\n }\n\n if (space.meta.category === 'ephemeral') {\n return {\n allowed: true,\n severity: 'warning',\n reason: `Knowledge space \"${space.meta.key}\" is ephemeral; results may be transient.`,\n };\n }\n\n return { allowed: true };\n }\n\n private isSpaceBound(\n resolved: ResolvedKnowledge,\n appConfig: ResolvedAppConfig\n ): boolean {\n return appConfig.knowledge.some(\n (entry) =>\n entry.space.meta.key === resolved.space.meta.key &&\n (resolved.space.meta.version == null ||\n entry.space.meta.version === resolved.space.meta.version)\n );\n }\n}\n\n\n\n\n"],"mappings":"AAwBA,MAAMA,EAAgD,CAAC,WAAY,YAAY,CAE/E,IAAa,EAAb,KAAkC,CAChC,gBACA,uBACA,oBAEA,YAAY,EAAuC,EAAE,CAAE,CACrD,KAAK,gBAAkB,IAAI,IACzB,EAAQ,yBAA2B,EACpC,CACD,KAAK,uBAAyB,EAAQ,wBAA0B,GAChE,KAAK,oBAAsB,EAAQ,qBAAuB,GAG5D,YACE,EACA,EACA,EACuB,CACvB,GAAM,CAAE,UAAS,SAAU,EAE3B,GAAI,EAAQ,WAAa,IAAS,CAAC,KAAK,aAAa,EAAc,EAAU,CAC3E,MAAO,CACL,QAAS,GACT,OAAQ,oBAAoB,EAAM,KAAK,IAAI,4CAC5C,CAGH,GACE,EAAQ,YAAc,SACtB,KAAK,gBAAgB,IAAI,EAAM,KAAK,SAAS,CAE7C,MAAO,CACL,QAAS,GACT,OAAQ,oBAAoB,EAAM,KAAK,IAAI,iBAAiB,EAAM,KAAK,SAAS,qBACjF,CAGH,GAAI,KAAK,wBAA0B,EAAQ,aAAc,CACvD,IAAM,EAAmB,EAAQ,OAAO,UACxC,GAAI,GAAoB,CAAC,EAAiB,SAAS,EAAQ,aAAa,CACtE,MAAO,CACL,QAAS,GACT,OAAQ,aAAa,EAAQ,aAAa,iDAAiD,EAAM,KAAK,IAAI,IAC3G,CAIL,GAAI,KAAK,qBAAuB,EAAQ,UAAW,CACjD,IAAM,EAAgB,EAAQ,OAAO,OACrC,GAAI,GAAiB,CAAC,EAAc,SAAS,EAAQ,UAAU,CAC7D,MAAO,CACL,QAAS,GACT,OAAQ,UAAU,EAAQ,UAAU,iDAAiD,EAAM,KAAK,IAAI,IACrG,CAYL,OARI,EAAM,KAAK,WAAa,YACnB,CACL,QAAS,GACT,SAAU,UACV,OAAQ,oBAAoB,EAAM,KAAK,IAAI,2CAC5C,CAGI,CAAE,QAAS,GAAM,CAG1B,aACE,EACA,EACS,CACT,OAAO,EAAU,UAAU,KACxB,GACC,EAAM,MAAM,KAAK,MAAQ,EAAS,MAAM,KAAK,MAC5C,EAAS,MAAM,KAAK,SAAW,MAC9B,EAAM,MAAM,KAAK,UAAY,EAAS,MAAM,KAAK,SACtD"}
@@ -0,0 +1,33 @@
1
+ //#region src/knowledge/source.d.ts
2
+ type KnowledgeSourceType = 'notion' | 'url' | 'file_upload' | 'email' | 'api' | 'manual';
3
+ interface KnowledgeSourceMeta {
4
+ id: string;
5
+ tenantId: string;
6
+ spaceKey: string;
7
+ spaceVersion: number;
8
+ label: string;
9
+ sourceType: KnowledgeSourceType;
10
+ createdAt: string | Date;
11
+ updatedAt: string | Date;
12
+ }
13
+ interface KnowledgeSourceConfig {
14
+ meta: KnowledgeSourceMeta;
15
+ /** Source-specific configuration (URLs, credentials, filters). */
16
+ config: Record<string, unknown>;
17
+ /** Sync schedule (cron or interval). */
18
+ syncSchedule?: {
19
+ enabled: boolean;
20
+ cron?: string;
21
+ intervalMs?: number;
22
+ };
23
+ /** Last sync status. */
24
+ lastSync?: {
25
+ timestamp: Date;
26
+ success: boolean;
27
+ itemsProcessed?: number;
28
+ error?: string;
29
+ };
30
+ }
31
+ //#endregion
32
+ export { KnowledgeSourceConfig, KnowledgeSourceMeta, KnowledgeSourceType };
33
+ //# sourceMappingURL=source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.d.ts","names":[],"sources":["../../src/knowledge/source.ts"],"sourcesContent":[],"mappings":";KAAY,mBAAA;AAAA,UAQK,mBAAA,CARc;EAQd,EAAA,EAAA,MAAA;EAMH,QAAA,EAAA,MAAA;EACQ,QAAA,EAAA,MAAA;EACA,YAAA,EAAA,MAAA;EAAI,KAAA,EAAA,MAAA;EAGT,UAAA,EALH,mBAKwB;EAC9B,SAAA,EAAA,MAAA,GALc,IAKd;EAEE,SAAA,EAAA,MAAA,GANY,IAMZ;;AASS,UAZF,qBAAA,CAYE;QAXX;;UAEE;;;;;;;;;eASK"}
File without changes
@@ -0,0 +1,8 @@
1
+ import { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from "../spec.js";
2
+
3
+ //#region src/knowledge/spaces/email-threads.d.ts
4
+ declare const emailThreadsKnowledgeSpace: KnowledgeSpaceSpec;
5
+ declare function registerEmailThreadsKnowledgeSpace(registry: KnowledgeSpaceRegistry): KnowledgeSpaceRegistry;
6
+ //#endregion
7
+ export { emailThreadsKnowledgeSpace, registerEmailThreadsKnowledgeSpace };
8
+ //# sourceMappingURL=email-threads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-threads.d.ts","names":[],"sources":["../../../src/knowledge/spaces/email-threads.ts"],"sourcesContent":[],"mappings":";;;cAGa,4BAA4B;iBA+BzB,kCAAA,WACJ,yBACT"}
@@ -0,0 +1,2 @@
1
+ import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`knowledge.email-threads`,version:1,category:`operational`,displayName:`Email Threads`,title:`Operational Email Threads`,description:`Indexed copies of operational email threads used for support, onboarding, and workflows.`,domain:`operations`,owners:[`platform.operations`],tags:[`email`,`operations`],stability:e.Beta},retention:{ttlDays:365},access:{policy:{name:`knowledge.access.email-threads`,version:1},trustLevel:`medium`,automationWritable:!0},indexing:{embeddingModel:`mistral-embed`,chunkSize:600,vectorDbIntegration:`vectordb.qdrant`},description:`Operational email threads synchronized from Gmail to support automations and contextual assistance.`};function n(e){return e.register(t)}export{t as emailThreadsKnowledgeSpace,n as registerEmailThreadsKnowledgeSpace};
2
+ //# sourceMappingURL=email-threads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-threads.js","names":["emailThreadsKnowledgeSpace: KnowledgeSpaceSpec"],"sources":["../../../src/knowledge/spaces/email-threads.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from '../spec';\n\nexport const emailThreadsKnowledgeSpace: KnowledgeSpaceSpec = {\n meta: {\n key: 'knowledge.email-threads',\n version: 1,\n category: 'operational',\n displayName: 'Email Threads',\n title: 'Operational Email Threads',\n description:\n 'Indexed copies of operational email threads used for support, onboarding, and workflows.',\n domain: 'operations',\n owners: ['platform.operations'],\n tags: ['email', 'operations'],\n stability: StabilityEnum.Beta,\n },\n retention: {\n ttlDays: 365,\n },\n access: {\n policy: { name: 'knowledge.access.email-threads', version: 1 },\n trustLevel: 'medium',\n automationWritable: true,\n },\n indexing: {\n embeddingModel: 'mistral-embed',\n chunkSize: 600,\n vectorDbIntegration: 'vectordb.qdrant',\n },\n description:\n 'Operational email threads synchronized from Gmail to support automations and contextual assistance.',\n};\n\nexport function registerEmailThreadsKnowledgeSpace(\n registry: KnowledgeSpaceRegistry\n): KnowledgeSpaceRegistry {\n return registry.register(emailThreadsKnowledgeSpace);\n}\n\n\n"],"mappings":"mDAGA,MAAaA,EAAiD,CAC5D,KAAM,CACJ,IAAK,0BACL,QAAS,EACT,SAAU,cACV,YAAa,gBACb,MAAO,4BACP,YACE,2FACF,OAAQ,aACR,OAAQ,CAAC,sBAAsB,CAC/B,KAAM,CAAC,QAAS,aAAa,CAC7B,UAAW,EAAc,KAC1B,CACD,UAAW,CACT,QAAS,IACV,CACD,OAAQ,CACN,OAAQ,CAAE,KAAM,iCAAkC,QAAS,EAAG,CAC9D,WAAY,SACZ,mBAAoB,GACrB,CACD,SAAU,CACR,eAAgB,gBAChB,UAAW,IACX,oBAAqB,kBACtB,CACD,YACE,sGACH,CAED,SAAgB,EACd,EACwB,CACxB,OAAO,EAAS,SAAS,EAA2B"}
@@ -0,0 +1,8 @@
1
+ import { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from "../spec.js";
2
+
3
+ //#region src/knowledge/spaces/financial-docs.d.ts
4
+ declare const financialDocsKnowledgeSpace: KnowledgeSpaceSpec;
5
+ declare function registerFinancialDocsKnowledgeSpace(registry: KnowledgeSpaceRegistry): KnowledgeSpaceRegistry;
6
+ //#endregion
7
+ export { financialDocsKnowledgeSpace, registerFinancialDocsKnowledgeSpace };
8
+ //# sourceMappingURL=financial-docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"financial-docs.d.ts","names":[],"sources":["../../../src/knowledge/spaces/financial-docs.ts"],"sourcesContent":[],"mappings":";;;cAGa,6BAA6B;iBA+B1B,mCAAA,WACJ,yBACT"}
@@ -0,0 +1,2 @@
1
+ import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`knowledge.financial-docs`,version:1,category:`canonical`,displayName:`Financial Documents`,title:`Household Financial Documents`,description:`Invoices, bills, and contracts powering Pocket Family Office financial automation.`,domain:`finance`,owners:[`platform.finance`],tags:[`finance`,`documents`],stability:e.Beta},retention:{ttlDays:null},access:{policy:{name:`knowledge.access.financial-docs`,version:1},trustLevel:`high`,automationWritable:!0},indexing:{embeddingModel:`mistral-embed`,chunkSize:700,vectorDbIntegration:`vectordb.qdrant`},description:`Normalized financial documents enabling bill pay automation, reminders, and summaries.`};function n(e){return e.register(t)}export{t as financialDocsKnowledgeSpace,n as registerFinancialDocsKnowledgeSpace};
2
+ //# sourceMappingURL=financial-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"financial-docs.js","names":["financialDocsKnowledgeSpace: KnowledgeSpaceSpec"],"sources":["../../../src/knowledge/spaces/financial-docs.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from '../spec';\n\nexport const financialDocsKnowledgeSpace: KnowledgeSpaceSpec = {\n meta: {\n key: 'knowledge.financial-docs',\n version: 1,\n category: 'canonical',\n displayName: 'Financial Documents',\n title: 'Household Financial Documents',\n description:\n 'Invoices, bills, and contracts powering Pocket Family Office financial automation.',\n domain: 'finance',\n owners: ['platform.finance'],\n tags: ['finance', 'documents'],\n stability: StabilityEnum.Beta,\n },\n retention: {\n ttlDays: null,\n },\n access: {\n policy: { name: 'knowledge.access.financial-docs', version: 1 },\n trustLevel: 'high',\n automationWritable: true,\n },\n indexing: {\n embeddingModel: 'mistral-embed',\n chunkSize: 700,\n vectorDbIntegration: 'vectordb.qdrant',\n },\n description:\n 'Normalized financial documents enabling bill pay automation, reminders, and summaries.',\n};\n\nexport function registerFinancialDocsKnowledgeSpace(\n registry: KnowledgeSpaceRegistry\n): KnowledgeSpaceRegistry {\n return registry.register(financialDocsKnowledgeSpace);\n}\n\n\n"],"mappings":"mDAGA,MAAaA,EAAkD,CAC7D,KAAM,CACJ,IAAK,2BACL,QAAS,EACT,SAAU,YACV,YAAa,sBACb,MAAO,gCACP,YACE,qFACF,OAAQ,UACR,OAAQ,CAAC,mBAAmB,CAC5B,KAAM,CAAC,UAAW,YAAY,CAC9B,UAAW,EAAc,KAC1B,CACD,UAAW,CACT,QAAS,KACV,CACD,OAAQ,CACN,OAAQ,CAAE,KAAM,kCAAmC,QAAS,EAAG,CAC/D,WAAY,OACZ,mBAAoB,GACrB,CACD,SAAU,CACR,eAAgB,gBAChB,UAAW,IACX,oBAAqB,kBACtB,CACD,YACE,yFACH,CAED,SAAgB,EACd,EACwB,CACxB,OAAO,EAAS,SAAS,EAA4B"}
@@ -0,0 +1,8 @@
1
+ import { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from "../spec.js";
2
+
3
+ //#region src/knowledge/spaces/financial-overview.d.ts
4
+ declare const financialOverviewKnowledgeSpace: KnowledgeSpaceSpec;
5
+ declare function registerFinancialOverviewKnowledgeSpace(registry: KnowledgeSpaceRegistry): KnowledgeSpaceRegistry;
6
+ //#endregion
7
+ export { financialOverviewKnowledgeSpace, registerFinancialOverviewKnowledgeSpace };
8
+ //# sourceMappingURL=financial-overview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"financial-overview.d.ts","names":[],"sources":["../../../src/knowledge/spaces/financial-overview.ts"],"sourcesContent":[],"mappings":";;;cAGa,iCAAiC;iBA+B9B,uCAAA,WACJ,yBACT"}
@@ -0,0 +1,2 @@
1
+ import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`knowledge.financial-overview`,version:1,category:`operational`,displayName:`Financial Overview Summaries`,title:`Derived Financial Summaries`,description:`Aggregated cashflow summaries, category breakdowns, and balance trends derived from open banking data.`,domain:`finance`,owners:[`platform.finance`],tags:[`open-banking`,`summaries`,`cashflow`],stability:e.Experimental},retention:{ttlDays:180},access:{policy:{name:`knowledge.access.financial-overview`,version:1},trustLevel:`medium`,automationWritable:!0},indexing:{embeddingModel:`mistral-embed`,chunkSize:600,vectorDbIntegration:`vectordb.qdrant`},description:`Derived knowledge space containing weekly/monthly cashflow rollups and account health summaries. Raw transactions are excluded to respect privacy guardrails.`};function n(e){return e.register(t)}export{t as financialOverviewKnowledgeSpace,n as registerFinancialOverviewKnowledgeSpace};
2
+ //# sourceMappingURL=financial-overview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"financial-overview.js","names":["financialOverviewKnowledgeSpace: KnowledgeSpaceSpec"],"sources":["../../../src/knowledge/spaces/financial-overview.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from '../spec';\n\nexport const financialOverviewKnowledgeSpace: KnowledgeSpaceSpec = {\n meta: {\n key: 'knowledge.financial-overview',\n version: 1,\n category: 'operational',\n displayName: 'Financial Overview Summaries',\n title: 'Derived Financial Summaries',\n description:\n 'Aggregated cashflow summaries, category breakdowns, and balance trends derived from open banking data.',\n domain: 'finance',\n owners: ['platform.finance'],\n tags: ['open-banking', 'summaries', 'cashflow'],\n stability: StabilityEnum.Experimental,\n },\n retention: {\n ttlDays: 180,\n },\n access: {\n policy: { name: 'knowledge.access.financial-overview', version: 1 },\n trustLevel: 'medium',\n automationWritable: true,\n },\n indexing: {\n embeddingModel: 'mistral-embed',\n chunkSize: 600,\n vectorDbIntegration: 'vectordb.qdrant',\n },\n description:\n 'Derived knowledge space containing weekly/monthly cashflow rollups and account health summaries. Raw transactions are excluded to respect privacy guardrails.',\n};\n\nexport function registerFinancialOverviewKnowledgeSpace(\n registry: KnowledgeSpaceRegistry\n): KnowledgeSpaceRegistry {\n return registry.register(financialOverviewKnowledgeSpace);\n}\n\n"],"mappings":"mDAGA,MAAaA,EAAsD,CACjE,KAAM,CACJ,IAAK,+BACL,QAAS,EACT,SAAU,cACV,YAAa,+BACb,MAAO,8BACP,YACE,yGACF,OAAQ,UACR,OAAQ,CAAC,mBAAmB,CAC5B,KAAM,CAAC,eAAgB,YAAa,WAAW,CAC/C,UAAW,EAAc,aAC1B,CACD,UAAW,CACT,QAAS,IACV,CACD,OAAQ,CACN,OAAQ,CAAE,KAAM,sCAAuC,QAAS,EAAG,CACnE,WAAY,SACZ,mBAAoB,GACrB,CACD,SAAU,CACR,eAAgB,gBAChB,UAAW,IACX,oBAAqB,kBACtB,CACD,YACE,gKACH,CAED,SAAgB,EACd,EACwB,CACxB,OAAO,EAAS,SAAS,EAAgC"}
@@ -0,0 +1,7 @@
1
+ import { productCanonKnowledgeSpace, registerProductCanonKnowledgeSpace } from "./product-canon.js";
2
+ import { registerSupportFaqKnowledgeSpace, supportFaqKnowledgeSpace } from "./support-faq.js";
3
+ import { emailThreadsKnowledgeSpace, registerEmailThreadsKnowledgeSpace } from "./email-threads.js";
4
+ import { registerUploadedDocsKnowledgeSpace, uploadedDocsKnowledgeSpace } from "./uploaded-docs.js";
5
+ import { financialDocsKnowledgeSpace, registerFinancialDocsKnowledgeSpace } from "./financial-docs.js";
6
+ import { financialOverviewKnowledgeSpace, registerFinancialOverviewKnowledgeSpace } from "./financial-overview.js";
7
+ export { emailThreadsKnowledgeSpace, financialDocsKnowledgeSpace, financialOverviewKnowledgeSpace, productCanonKnowledgeSpace, registerEmailThreadsKnowledgeSpace, registerFinancialDocsKnowledgeSpace, registerFinancialOverviewKnowledgeSpace, registerProductCanonKnowledgeSpace, registerSupportFaqKnowledgeSpace, registerUploadedDocsKnowledgeSpace, supportFaqKnowledgeSpace, uploadedDocsKnowledgeSpace };
@@ -0,0 +1 @@
1
+ import{productCanonKnowledgeSpace as e,registerProductCanonKnowledgeSpace as t}from"./product-canon.js";import{registerSupportFaqKnowledgeSpace as n,supportFaqKnowledgeSpace as r}from"./support-faq.js";import{emailThreadsKnowledgeSpace as i,registerEmailThreadsKnowledgeSpace as a}from"./email-threads.js";import{registerUploadedDocsKnowledgeSpace as o,uploadedDocsKnowledgeSpace as s}from"./uploaded-docs.js";import{financialDocsKnowledgeSpace as c,registerFinancialDocsKnowledgeSpace as l}from"./financial-docs.js";import{financialOverviewKnowledgeSpace as u,registerFinancialOverviewKnowledgeSpace as d}from"./financial-overview.js";export{i as emailThreadsKnowledgeSpace,c as financialDocsKnowledgeSpace,u as financialOverviewKnowledgeSpace,e as productCanonKnowledgeSpace,a as registerEmailThreadsKnowledgeSpace,l as registerFinancialDocsKnowledgeSpace,d as registerFinancialOverviewKnowledgeSpace,t as registerProductCanonKnowledgeSpace,n as registerSupportFaqKnowledgeSpace,o as registerUploadedDocsKnowledgeSpace,r as supportFaqKnowledgeSpace,s as uploadedDocsKnowledgeSpace};
@@ -0,0 +1,8 @@
1
+ import { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from "../spec.js";
2
+
3
+ //#region src/knowledge/spaces/product-canon.d.ts
4
+ declare const productCanonKnowledgeSpace: KnowledgeSpaceSpec;
5
+ declare function registerProductCanonKnowledgeSpace(registry: KnowledgeSpaceRegistry): KnowledgeSpaceRegistry;
6
+ //#endregion
7
+ export { productCanonKnowledgeSpace, registerProductCanonKnowledgeSpace };
8
+ //# sourceMappingURL=product-canon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-canon.d.ts","names":[],"sources":["../../../src/knowledge/spaces/product-canon.ts"],"sourcesContent":[],"mappings":";;;cAGa,4BAA4B;iBA+BzB,kCAAA,WACJ,yBACT"}
@@ -0,0 +1,2 @@
1
+ import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`knowledge.product-canon`,version:1,category:`canonical`,displayName:`Product Canon`,title:`Product Canon Knowledge Space`,description:`Authoritative product knowledge covering strategy, roadmap, and delivery canon.`,domain:`product`,owners:[`platform.product`],tags:[`knowledge`,`product`],stability:e.Stable},retention:{ttlDays:null},access:{policy:{name:`knowledge.access.product-canon`,version:1},trustLevel:`high`,automationWritable:!1},indexing:{embeddingModel:`text-embedding-3-large`,chunkSize:800,vectorDbIntegration:`vectordb.qdrant`},description:`Single source of truth for product canon, principles, and strategic narratives.`};function n(e){return e.register(t)}export{t as productCanonKnowledgeSpace,n as registerProductCanonKnowledgeSpace};
2
+ //# sourceMappingURL=product-canon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-canon.js","names":["productCanonKnowledgeSpace: KnowledgeSpaceSpec"],"sources":["../../../src/knowledge/spaces/product-canon.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from '../spec';\n\nexport const productCanonKnowledgeSpace: KnowledgeSpaceSpec = {\n meta: {\n key: 'knowledge.product-canon',\n version: 1,\n category: 'canonical',\n displayName: 'Product Canon',\n title: 'Product Canon Knowledge Space',\n description:\n 'Authoritative product knowledge covering strategy, roadmap, and delivery canon.',\n domain: 'product',\n owners: ['platform.product'],\n tags: ['knowledge', 'product'],\n stability: StabilityEnum.Stable,\n },\n retention: {\n ttlDays: null,\n },\n access: {\n policy: { name: 'knowledge.access.product-canon', version: 1 },\n trustLevel: 'high',\n automationWritable: false,\n },\n indexing: {\n embeddingModel: 'text-embedding-3-large',\n chunkSize: 800,\n vectorDbIntegration: 'vectordb.qdrant',\n },\n description:\n 'Single source of truth for product canon, principles, and strategic narratives.',\n};\n\nexport function registerProductCanonKnowledgeSpace(\n registry: KnowledgeSpaceRegistry\n): KnowledgeSpaceRegistry {\n return registry.register(productCanonKnowledgeSpace);\n}\n\n\n\n"],"mappings":"mDAGA,MAAaA,EAAiD,CAC5D,KAAM,CACJ,IAAK,0BACL,QAAS,EACT,SAAU,YACV,YAAa,gBACb,MAAO,gCACP,YACE,kFACF,OAAQ,UACR,OAAQ,CAAC,mBAAmB,CAC5B,KAAM,CAAC,YAAa,UAAU,CAC9B,UAAW,EAAc,OAC1B,CACD,UAAW,CACT,QAAS,KACV,CACD,OAAQ,CACN,OAAQ,CAAE,KAAM,iCAAkC,QAAS,EAAG,CAC9D,WAAY,OACZ,mBAAoB,GACrB,CACD,SAAU,CACR,eAAgB,yBAChB,UAAW,IACX,oBAAqB,kBACtB,CACD,YACE,kFACH,CAED,SAAgB,EACd,EACwB,CACxB,OAAO,EAAS,SAAS,EAA2B"}
@@ -0,0 +1,8 @@
1
+ import { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from "../spec.js";
2
+
3
+ //#region src/knowledge/spaces/support-faq.d.ts
4
+ declare const supportFaqKnowledgeSpace: KnowledgeSpaceSpec;
5
+ declare function registerSupportFaqKnowledgeSpace(registry: KnowledgeSpaceRegistry): KnowledgeSpaceRegistry;
6
+ //#endregion
7
+ export { registerSupportFaqKnowledgeSpace, supportFaqKnowledgeSpace };
8
+ //# sourceMappingURL=support-faq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-faq.d.ts","names":[],"sources":["../../../src/knowledge/spaces/support-faq.ts"],"sourcesContent":[],"mappings":";;;cAGa,0BAA0B;iBA+BvB,gCAAA,WACJ,yBACT"}
@@ -0,0 +1,2 @@
1
+ import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`knowledge.support-faq`,version:1,category:`operational`,displayName:`Support FAQ`,title:`Support & Success FAQ`,description:`Operational knowledge base for customer support and success.`,domain:`support`,owners:[`platform.support`],tags:[`knowledge`,`support`],stability:e.Beta},retention:{ttlDays:365,archiveAfterDays:180},access:{policy:{name:`knowledge.access.support`,version:1},trustLevel:`medium`,automationWritable:!0},indexing:{embeddingModel:`text-embedding-3-small`,chunkSize:700,vectorDbIntegration:`vectordb.qdrant`},description:`Operational FAQs, runbooks, and customer success playbooks augmented with automation updates.`};function n(e){return e.register(t)}export{n as registerSupportFaqKnowledgeSpace,t as supportFaqKnowledgeSpace};
2
+ //# sourceMappingURL=support-faq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-faq.js","names":["supportFaqKnowledgeSpace: KnowledgeSpaceSpec"],"sources":["../../../src/knowledge/spaces/support-faq.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from '../spec';\n\nexport const supportFaqKnowledgeSpace: KnowledgeSpaceSpec = {\n meta: {\n key: 'knowledge.support-faq',\n version: 1,\n category: 'operational',\n displayName: 'Support FAQ',\n title: 'Support & Success FAQ',\n description: 'Operational knowledge base for customer support and success.',\n domain: 'support',\n owners: ['platform.support'],\n tags: ['knowledge', 'support'],\n stability: StabilityEnum.Beta,\n },\n retention: {\n ttlDays: 365,\n archiveAfterDays: 180,\n },\n access: {\n policy: { name: 'knowledge.access.support', version: 1 },\n trustLevel: 'medium',\n automationWritable: true,\n },\n indexing: {\n embeddingModel: 'text-embedding-3-small',\n chunkSize: 700,\n vectorDbIntegration: 'vectordb.qdrant',\n },\n description:\n 'Operational FAQs, runbooks, and customer success playbooks augmented with automation updates.',\n};\n\nexport function registerSupportFaqKnowledgeSpace(\n registry: KnowledgeSpaceRegistry\n): KnowledgeSpaceRegistry {\n return registry.register(supportFaqKnowledgeSpace);\n}\n\n\n\n"],"mappings":"mDAGA,MAAaA,EAA+C,CAC1D,KAAM,CACJ,IAAK,wBACL,QAAS,EACT,SAAU,cACV,YAAa,cACb,MAAO,wBACP,YAAa,+DACb,OAAQ,UACR,OAAQ,CAAC,mBAAmB,CAC5B,KAAM,CAAC,YAAa,UAAU,CAC9B,UAAW,EAAc,KAC1B,CACD,UAAW,CACT,QAAS,IACT,iBAAkB,IACnB,CACD,OAAQ,CACN,OAAQ,CAAE,KAAM,2BAA4B,QAAS,EAAG,CACxD,WAAY,SACZ,mBAAoB,GACrB,CACD,SAAU,CACR,eAAgB,yBAChB,UAAW,IACX,oBAAqB,kBACtB,CACD,YACE,gGACH,CAED,SAAgB,EACd,EACwB,CACxB,OAAO,EAAS,SAAS,EAAyB"}
@@ -0,0 +1,8 @@
1
+ import { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from "../spec.js";
2
+
3
+ //#region src/knowledge/spaces/uploaded-docs.d.ts
4
+ declare const uploadedDocsKnowledgeSpace: KnowledgeSpaceSpec;
5
+ declare function registerUploadedDocsKnowledgeSpace(registry: KnowledgeSpaceRegistry): KnowledgeSpaceRegistry;
6
+ //#endregion
7
+ export { registerUploadedDocsKnowledgeSpace, uploadedDocsKnowledgeSpace };
8
+ //# sourceMappingURL=uploaded-docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploaded-docs.d.ts","names":[],"sources":["../../../src/knowledge/spaces/uploaded-docs.ts"],"sourcesContent":[],"mappings":";;;cAGa,4BAA4B;iBA+BzB,kCAAA,WACJ,yBACT"}
@@ -0,0 +1,2 @@
1
+ import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`knowledge.uploaded-docs`,version:1,category:`external`,displayName:`Uploaded Documents`,title:`Uploaded Knowledge Assets`,description:`Documents uploaded by households, including invoices, contracts, and reference files.`,domain:`operations`,owners:[`platform.operations`],tags:[`documents`,`storage`],stability:e.Beta},retention:{ttlDays:null},access:{policy:{name:`knowledge.access.uploaded-docs`,version:1},trustLevel:`medium`,automationWritable:!0},indexing:{embeddingModel:`mistral-embed`,chunkSize:900,vectorDbIntegration:`vectordb.qdrant`},description:`User-provided documents normalized and embedded for retrieval augmented workflows.`};function n(e){return e.register(t)}export{n as registerUploadedDocsKnowledgeSpace,t as uploadedDocsKnowledgeSpace};
2
+ //# sourceMappingURL=uploaded-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploaded-docs.js","names":["uploadedDocsKnowledgeSpace: KnowledgeSpaceSpec"],"sources":["../../../src/knowledge/spaces/uploaded-docs.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from '../spec';\n\nexport const uploadedDocsKnowledgeSpace: KnowledgeSpaceSpec = {\n meta: {\n key: 'knowledge.uploaded-docs',\n version: 1,\n category: 'external',\n displayName: 'Uploaded Documents',\n title: 'Uploaded Knowledge Assets',\n description:\n 'Documents uploaded by households, including invoices, contracts, and reference files.',\n domain: 'operations',\n owners: ['platform.operations'],\n tags: ['documents', 'storage'],\n stability: StabilityEnum.Beta,\n },\n retention: {\n ttlDays: null,\n },\n access: {\n policy: { name: 'knowledge.access.uploaded-docs', version: 1 },\n trustLevel: 'medium',\n automationWritable: true,\n },\n indexing: {\n embeddingModel: 'mistral-embed',\n chunkSize: 900,\n vectorDbIntegration: 'vectordb.qdrant',\n },\n description:\n 'User-provided documents normalized and embedded for retrieval augmented workflows.',\n};\n\nexport function registerUploadedDocsKnowledgeSpace(\n registry: KnowledgeSpaceRegistry\n): KnowledgeSpaceRegistry {\n return registry.register(uploadedDocsKnowledgeSpace);\n}\n\n\n"],"mappings":"mDAGA,MAAaA,EAAiD,CAC5D,KAAM,CACJ,IAAK,0BACL,QAAS,EACT,SAAU,WACV,YAAa,qBACb,MAAO,4BACP,YACE,wFACF,OAAQ,aACR,OAAQ,CAAC,sBAAsB,CAC/B,KAAM,CAAC,YAAa,UAAU,CAC9B,UAAW,EAAc,KAC1B,CACD,UAAW,CACT,QAAS,KACV,CACD,OAAQ,CACN,OAAQ,CAAE,KAAM,iCAAkC,QAAS,EAAG,CAC9D,WAAY,SACZ,mBAAoB,GACrB,CACD,SAAU,CACR,eAAgB,gBAChB,UAAW,IACX,oBAAqB,kBACtB,CACD,YACE,qFACH,CAED,SAAgB,EACd,EACwB,CACxB,OAAO,EAAS,SAAS,EAA2B"}
@@ -0,0 +1,53 @@
1
+ import { OwnerShipMeta } from "../ownership.js";
2
+ import { PolicyRef } from "../policy/spec.js";
3
+
4
+ //#region src/knowledge/spec.d.ts
5
+ type KnowledgeCategory = 'canonical' | 'operational' | 'external' | 'ephemeral';
6
+ interface KnowledgeSpaceMeta extends OwnerShipMeta {
7
+ /** Stable space identifier (e.g., "product-canon", "support-faq"). */
8
+ key: string;
9
+ version: number;
10
+ category: KnowledgeCategory;
11
+ displayName: string;
12
+ }
13
+ interface KnowledgeRetentionPolicy {
14
+ /** TTL in days (null = indefinite). */
15
+ ttlDays?: number | null;
16
+ /** Auto-archive after inactivity. */
17
+ archiveAfterDays?: number;
18
+ }
19
+ interface KnowledgeAccessPolicy {
20
+ /** Which PolicySpec governs access. */
21
+ policy?: PolicyRef;
22
+ /** Trust level for agent/workflow consumption. */
23
+ trustLevel: 'high' | 'medium' | 'low';
24
+ /** Can this space be mutated by automation? */
25
+ automationWritable: boolean;
26
+ }
27
+ interface KnowledgeIndexingConfig {
28
+ embeddingModel?: string;
29
+ chunkSize?: number;
30
+ vectorDbIntegration?: string;
31
+ }
32
+ interface KnowledgeSpaceSpec {
33
+ meta: KnowledgeSpaceMeta;
34
+ /** Retention and cleanup rules. */
35
+ retention: KnowledgeRetentionPolicy;
36
+ /** Access control and trust. */
37
+ access: KnowledgeAccessPolicy;
38
+ /** Optional embedding/indexing config. */
39
+ indexing?: KnowledgeIndexingConfig;
40
+ /** Documentation. */
41
+ description?: string;
42
+ }
43
+ declare class KnowledgeSpaceRegistry {
44
+ private readonly items;
45
+ register(spec: KnowledgeSpaceSpec): this;
46
+ list(): KnowledgeSpaceSpec[];
47
+ get(key: string, version?: number): KnowledgeSpaceSpec | undefined;
48
+ getByCategory(category: KnowledgeCategory): KnowledgeSpaceSpec[];
49
+ }
50
+ declare function makeKnowledgeSpaceKey(meta: KnowledgeSpaceMeta): string;
51
+ //#endregion
52
+ export { KnowledgeAccessPolicy, KnowledgeCategory, KnowledgeIndexingConfig, KnowledgeRetentionPolicy, KnowledgeSpaceMeta, KnowledgeSpaceRegistry, KnowledgeSpaceSpec, makeKnowledgeSpaceKey };
53
+ //# sourceMappingURL=spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.d.ts","names":[],"sources":["../../src/knowledge/spec.ts"],"sourcesContent":[],"mappings":";;;;KAGY,iBAAA;UAMK,kBAAA,SAA2B;EANhC;EAMK,GAAA,EAAA,MAAA;EAQA,OAAA,EAAA,MAAA;EAOA,QAAA,EAXL,iBAW0B;EASrB,WAAA,EAAA,MAAA;AAMjB;AACQ,UAvBS,wBAAA,CAuBT;EAEK;EAEH,OAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAEG;EAAuB,gBAAA,CAAA,EAAA,MAAA;AAQpC;AAGiB,UAjCA,qBAAA,CAiCA;EASP;EAI4B,MAAA,CAAA,EA5C3B,SA4C2B;EAgBZ;EAAoB,UAAA,EAAA,MAAA,GAAA,QAAA,GAAA,KAAA;EAAkB;EAKhD,kBAAA,EAAA,OAAqB;;UA1DpB,uBAAA;;;;;UAMA,kBAAA;QACT;;aAEK;;UAEH;;aAEG;;;;cAQA,sBAAA;;iBAGI;UASP;sCAI4B;0BAgBZ,oBAAoB;;iBAK9B,qBAAA,OAA4B"}
@@ -0,0 +1,2 @@
1
+ const e=e=>`${e.key}.v${e.version}`;var t=class{items=new Map;register(t){let n=e(t.meta);if(this.items.has(n))throw Error(`Duplicate KnowledgeSpaceSpec ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(t,n){if(n!=null)return this.items.get(e({key:t,version:n}));let r,i=-1/0;for(let e of this.items.values())e.meta.key===t&&e.meta.version>i&&(i=e.meta.version,r=e);return r}getByCategory(e){return this.list().filter(t=>t.meta.category===e)}};function n(t){return e(t)}export{t as KnowledgeSpaceRegistry,n as makeKnowledgeSpaceKey};
2
+ //# sourceMappingURL=spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.js","names":["latest: KnowledgeSpaceSpec | undefined"],"sources":["../../src/knowledge/spec.ts"],"sourcesContent":["import type { OwnerShipMeta } from '../ownership';\nimport type { PolicyRef } from '../policy/spec';\n\nexport type KnowledgeCategory =\n | 'canonical'\n | 'operational'\n | 'external'\n | 'ephemeral';\n\nexport interface KnowledgeSpaceMeta extends OwnerShipMeta {\n /** Stable space identifier (e.g., \"product-canon\", \"support-faq\"). */\n key: string;\n version: number;\n category: KnowledgeCategory;\n displayName: string;\n}\n\nexport interface KnowledgeRetentionPolicy {\n /** TTL in days (null = indefinite). */\n ttlDays?: number | null;\n /** Auto-archive after inactivity. */\n archiveAfterDays?: number;\n}\n\nexport interface KnowledgeAccessPolicy {\n /** Which PolicySpec governs access. */\n policy?: PolicyRef;\n /** Trust level for agent/workflow consumption. */\n trustLevel: 'high' | 'medium' | 'low';\n /** Can this space be mutated by automation? */\n automationWritable: boolean;\n}\n\nexport interface KnowledgeIndexingConfig {\n embeddingModel?: string;\n chunkSize?: number;\n vectorDbIntegration?: string;\n}\n\nexport interface KnowledgeSpaceSpec {\n meta: KnowledgeSpaceMeta;\n /** Retention and cleanup rules. */\n retention: KnowledgeRetentionPolicy;\n /** Access control and trust. */\n access: KnowledgeAccessPolicy;\n /** Optional embedding/indexing config. */\n indexing?: KnowledgeIndexingConfig;\n /** Documentation. */\n description?: string;\n}\n\nconst knowledgeKey = (meta: Pick<KnowledgeSpaceMeta, 'key' | 'version'>) =>\n `${meta.key}.v${meta.version}`;\n\nexport class KnowledgeSpaceRegistry {\n private readonly items = new Map<string, KnowledgeSpaceSpec>();\n\n register(spec: KnowledgeSpaceSpec): this {\n const key = knowledgeKey(spec.meta);\n if (this.items.has(key)) {\n throw new Error(`Duplicate KnowledgeSpaceSpec ${key}`);\n }\n this.items.set(key, spec);\n return this;\n }\n\n list(): KnowledgeSpaceSpec[] {\n return [...this.items.values()];\n }\n\n get(key: string, version?: number): KnowledgeSpaceSpec | undefined {\n if (version != null) {\n return this.items.get(knowledgeKey({ key, version }));\n }\n let latest: KnowledgeSpaceSpec | undefined;\n let maxVersion = -Infinity;\n for (const spec of this.items.values()) {\n if (spec.meta.key !== key) continue;\n if (spec.meta.version > maxVersion) {\n maxVersion = spec.meta.version;\n latest = spec;\n }\n }\n return latest;\n }\n\n getByCategory(category: KnowledgeCategory): KnowledgeSpaceSpec[] {\n return this.list().filter((spec) => spec.meta.category === category);\n }\n}\n\nexport function makeKnowledgeSpaceKey(meta: KnowledgeSpaceMeta) {\n return knowledgeKey(meta);\n}\n\n\n\n"],"mappings":"AAmDA,MAAM,EAAgB,GACpB,GAAG,EAAK,IAAI,IAAI,EAAK,UAEvB,IAAa,EAAb,KAAoC,CAClC,MAAyB,IAAI,IAE7B,SAAS,EAAgC,CACvC,IAAM,EAAM,EAAa,EAAK,KAAK,CACnC,GAAI,KAAK,MAAM,IAAI,EAAI,CACrB,MAAU,MAAM,gCAAgC,IAAM,CAGxD,OADA,KAAK,MAAM,IAAI,EAAK,EAAK,CAClB,KAGT,MAA6B,CAC3B,MAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAGjC,IAAI,EAAa,EAAkD,CACjE,GAAI,GAAW,KACb,OAAO,KAAK,MAAM,IAAI,EAAa,CAAE,MAAK,UAAS,CAAC,CAAC,CAEvD,IAAIA,EACA,EAAa,KACjB,IAAK,IAAM,KAAQ,KAAK,MAAM,QAAQ,CAChC,EAAK,KAAK,MAAQ,GAClB,EAAK,KAAK,QAAU,IACtB,EAAa,EAAK,KAAK,QACvB,EAAS,GAGb,OAAO,EAGT,cAAc,EAAmD,CAC/D,OAAO,KAAK,MAAM,CAAC,OAAQ,GAAS,EAAK,KAAK,WAAa,EAAS,GAIxE,SAAgB,EAAsB,EAA0B,CAC9D,OAAO,EAAa,EAAK"}
@@ -0,0 +1,22 @@
1
+ import { PresentationRegistry } from "./presentations.js";
2
+ import { FeatureRegistry } from "./features.js";
3
+ import { SpecRegistry } from "./registry.js";
4
+
5
+ //#region src/markdown.d.ts
6
+
7
+ /**
8
+ * Render simple Markdown docs for each spec.
9
+ * Useful for dev portals and repo docs generation.
10
+ */
11
+ declare function specsToMarkdown(reg: SpecRegistry, extras?: {
12
+ presentations?: PresentationRegistry;
13
+ features?: FeatureRegistry;
14
+ }): string;
15
+ /** Render presentations and features as additional sections. */
16
+ declare function docsToMarkdown(reg: SpecRegistry, extras: {
17
+ presentations?: PresentationRegistry;
18
+ features?: FeatureRegistry;
19
+ }): string;
20
+ //#endregion
21
+ export { docsToMarkdown, specsToMarkdown };
22
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","names":[],"sources":["../src/markdown.ts"],"sourcesContent":[],"mappings":";;;;;;;;AASA;;AAE6B,iBAFb,eAAA,CAEa,GAAA,EADtB,YACsB,EAAA,MA2F7B,CA3F6B,EAAA;EAAiC,aAAA,CAAA,EAAjC,oBAAiC;EAAe,QAAA,CAAA,EAAf,eAAe;AA2F7E,CAAA,CAAA,EAAgB,MAAA;;AAEY,iBAFZ,cAAA,CAEY,GAAA,EADrB,YACqB,EAAA,MAAA,EAAA;EAAiC,aAAA,CAAA,EAAjC,oBAAiC;EAAe,QAAA,CAAA,EAAf,eAAe"}
@@ -0,0 +1,4 @@
1
+ import{isEmitDeclRef as e}from"./spec.js";function t(t,n){let r=[];for(let n of t.listSpecs()){let t=n.meta;if(r.push(`# ${t.name}.v${t.version}`),r.push(``),r.push(`**Kind:** ${t.kind} | **Stability:** ${t.stability} | **Owners:** ${t.owners.join(`, `)}`),r.push(``),r.push(`**Description:** ${t.description}`),r.push(``),r.push(`## Goal`),r.push(t.goal),r.push(``),r.push(`## Context`),r.push(t.context),r.push(``),r.push(`## Policy`),r.push(`- Auth: ${n.policy.auth}`),r.push(`- Idempotent: ${!!n.policy.idempotent}`),n.policy.rateLimit&&r.push(`- Rate Limit: ${n.policy.rateLimit.rpm}/min by ${n.policy.rateLimit.key}`),n.policy.flags?.length&&r.push(`- Flags: ${n.policy.flags.join(`, `)}`),n.policy.pii?.length&&r.push(`- PII: ${n.policy.pii.join(`, `)}`),r.push(``),n.sideEffects?.emits?.length){r.push(`## Emits Events`);for(let t of n.sideEffects.emits)e(t)?r.push(`- \`${t.ref.name}.v${t.ref.version}\` — ${t.when}`):r.push(`- \`${t.name}.v${t.version}\` — ${t.when}`);r.push(``)}if(n.io.errors&&Object.keys(n.io.errors).length){r.push(`## Errors`);for(let[e,t]of Object.entries(n.io.errors))r.push(`- \`${e}\` (${t.http??400}) — ${t.description} (when: ${t.when})`);r.push(``)}if(n.acceptance?.scenarios?.length){r.push(`## Acceptance Scenarios`);for(let e of n.acceptance.scenarios)r.push(`### ${e.name}`),r.push(`- **Given:** ${e.given.join(`; `)}`),r.push(`- **When:** ${e.when.join(`; `)}`),r.push(`- **Then:** ${e.then.join(`; `)}`),r.push(``)}if(n.acceptance?.examples?.length){r.push(`## Examples`);for(let e of n.acceptance.examples)r.push(`- **${e.name}**`),r.push(` - Input:`),r.push(" ```json"),r.push(JSON.stringify(e.input,null,2)),r.push(" ```"),r.push(` - Output:`),r.push(" ```json"),r.push(JSON.stringify(e.output,null,2)),r.push(" ```"),r.push(``)}r.push(`---`),r.push(``)}return r.join(`
2
+ `)}function n(e,n){let r=[];if(r.push(t(e,n)),n.presentations){r.push(`# Presentations`),r.push(``);for(let e of n.presentations.list())r.push(`## ${e.meta.name}.v${e.meta.version}`),r.push(``),r.push(`- Kind: ${e.content.kind}`),`framework`in e.content&&r.push(`- Framework: ${e.content.framework}`),`componentKey`in e.content&&r.push(`- Component Key: ${e.content.componentKey}`),`mimeType`in e.content&&r.push(`- MIME Type: ${e.content.mimeType}`),r.push(``);r.push(``)}if(n.features){r.push(`# Features`),r.push(``);for(let e of n.features.list()){if(r.push(`## ${e.meta.title} (${e.meta.key})`),e.meta.description&&r.push(e.meta.description),r.push(``),e.operations?.length){r.push(`- Operations:`);for(let t of e.operations)r.push(` - ${t.name}.v${t.version}`)}if(e.events?.length){r.push(`- Events:`);for(let t of e.events)r.push(` - ${t.name}.v${t.version}`)}if(e.presentations?.length){r.push(`- Presentations:`);for(let t of e.presentations)r.push(` - ${t.name}.v${t.version}`)}r.push(``)}}return r.join(`
3
+ `)}export{n as docsToMarkdown,t as specsToMarkdown};
4
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","names":["lines: string[]","parts: string[]"],"sources":["../src/markdown.ts"],"sourcesContent":["import type { SpecRegistry } from './registry';\nimport { isEmitDeclRef } from './spec';\nimport type { PresentationRegistry } from './presentations';\nimport type { FeatureRegistry } from './features';\n\n/**\n * Render simple Markdown docs for each spec.\n * Useful for dev portals and repo docs generation.\n */\nexport function specsToMarkdown(\n reg: SpecRegistry,\n extras?: { presentations?: PresentationRegistry; features?: FeatureRegistry }\n): string {\n const lines: string[] = [];\n\n for (const spec of reg.listSpecs()) {\n const m = spec.meta;\n lines.push(`# ${m.name}.v${m.version}`);\n lines.push('');\n lines.push(\n `**Kind:** ${m.kind} | **Stability:** ${m.stability} | **Owners:** ${m.owners.join(', ')}`\n );\n lines.push('');\n lines.push(`**Description:** ${m.description}`);\n lines.push('');\n lines.push(`## Goal`);\n lines.push(m.goal);\n lines.push('');\n lines.push(`## Context`);\n lines.push(m.context);\n lines.push('');\n\n lines.push(`## Policy`);\n lines.push(`- Auth: ${spec.policy.auth}`);\n lines.push(`- Idempotent: ${!!spec.policy.idempotent}`);\n if (spec.policy.rateLimit)\n lines.push(\n `- Rate Limit: ${spec.policy.rateLimit.rpm}/min by ${spec.policy.rateLimit.key}`\n );\n if (spec.policy.flags?.length)\n lines.push(`- Flags: ${spec.policy.flags.join(', ')}`);\n if (spec.policy.pii?.length)\n lines.push(`- PII: ${spec.policy.pii.join(', ')}`);\n lines.push('');\n\n if (spec.sideEffects?.emits?.length) {\n lines.push(`## Emits Events`);\n for (const e of spec.sideEffects.emits) {\n if (isEmitDeclRef(e)) {\n lines.push(`- \\`${e.ref.name}.v${e.ref.version}\\` — ${e.when}`);\n } else {\n lines.push(`- \\`${e.name}.v${e.version}\\` — ${e.when}`);\n }\n }\n lines.push('');\n }\n\n if (spec.io.errors && Object.keys(spec.io.errors).length) {\n lines.push(`## Errors`);\n for (const [code, err] of Object.entries(spec.io.errors)) {\n lines.push(\n `- \\`${code}\\` (${err.http ?? 400}) — ${err.description} (when: ${err.when})`\n );\n }\n lines.push('');\n }\n\n if (spec.acceptance?.scenarios?.length) {\n lines.push(`## Acceptance Scenarios`);\n for (const s of spec.acceptance.scenarios) {\n lines.push(`### ${s.name}`);\n lines.push(`- **Given:** ${s.given.join('; ')}`);\n lines.push(`- **When:** ${s.when.join('; ')}`);\n lines.push(`- **Then:** ${s.then.join('; ')}`);\n lines.push('');\n }\n }\n\n if (spec.acceptance?.examples?.length) {\n lines.push(`## Examples`);\n for (const ex of spec.acceptance.examples) {\n lines.push(`- **${ex.name}**`);\n lines.push(' - Input:');\n lines.push(' ```json');\n lines.push(JSON.stringify(ex.input, null, 2));\n lines.push(' ```');\n lines.push(' - Output:');\n lines.push(' ```json');\n lines.push(JSON.stringify(ex.output, null, 2));\n lines.push(' ```');\n lines.push('');\n }\n }\n\n lines.push('---');\n lines.push('');\n }\n\n return lines.join('\\n');\n}\n\n/** Render presentations and features as additional sections. */\nexport function docsToMarkdown(\n reg: SpecRegistry,\n extras: { presentations?: PresentationRegistry; features?: FeatureRegistry }\n): string {\n const parts: string[] = [];\n parts.push(specsToMarkdown(reg, extras));\n\n if (extras.presentations) {\n parts.push('# Presentations');\n parts.push('');\n for (const p of extras.presentations.list()) {\n parts.push(`## ${p.meta.name}.v${p.meta.version}`);\n parts.push('');\n parts.push(`- Kind: ${(p.content as any).kind}`);\n if ('framework' in p.content)\n parts.push(`- Framework: ${p.content.framework}`);\n if ('componentKey' in p.content)\n parts.push(`- Component Key: ${(p.content as any).componentKey}`);\n if ('mimeType' in p.content)\n parts.push(`- MIME Type: ${(p.content as any).mimeType}`);\n parts.push('');\n }\n parts.push('');\n }\n\n if (extras.features) {\n parts.push('# Features');\n parts.push('');\n for (const f of extras.features.list()) {\n parts.push(`## ${f.meta.title} (${f.meta.key})`);\n if (f.meta.description) parts.push(f.meta.description);\n parts.push('');\n if (f.operations?.length) {\n parts.push('- Operations:');\n for (const o of f.operations) parts.push(` - ${o.name}.v${o.version}`);\n }\n if (f.events?.length) {\n parts.push('- Events:');\n for (const e of f.events) parts.push(` - ${e.name}.v${e.version}`);\n }\n if (f.presentations?.length) {\n parts.push('- Presentations:');\n for (const p of f.presentations)\n parts.push(` - ${p.name}.v${p.version}`);\n }\n parts.push('');\n }\n }\n\n return parts.join('\\n');\n}\n"],"mappings":"0CASA,SAAgB,EACd,EACA,EACQ,CACR,IAAMA,EAAkB,EAAE,CAE1B,IAAK,IAAM,KAAQ,EAAI,WAAW,CAAE,CAClC,IAAM,EAAI,EAAK,KA6Bf,GA5BA,EAAM,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,UAAU,CACvC,EAAM,KAAK,GAAG,CACd,EAAM,KACJ,aAAa,EAAE,KAAK,oBAAoB,EAAE,UAAU,iBAAiB,EAAE,OAAO,KAAK,KAAK,GACzF,CACD,EAAM,KAAK,GAAG,CACd,EAAM,KAAK,oBAAoB,EAAE,cAAc,CAC/C,EAAM,KAAK,GAAG,CACd,EAAM,KAAK,UAAU,CACrB,EAAM,KAAK,EAAE,KAAK,CAClB,EAAM,KAAK,GAAG,CACd,EAAM,KAAK,aAAa,CACxB,EAAM,KAAK,EAAE,QAAQ,CACrB,EAAM,KAAK,GAAG,CAEd,EAAM,KAAK,YAAY,CACvB,EAAM,KAAK,WAAW,EAAK,OAAO,OAAO,CACzC,EAAM,KAAK,iBAAiB,CAAC,CAAC,EAAK,OAAO,aAAa,CACnD,EAAK,OAAO,WACd,EAAM,KACJ,iBAAiB,EAAK,OAAO,UAAU,IAAI,UAAU,EAAK,OAAO,UAAU,MAC5E,CACC,EAAK,OAAO,OAAO,QACrB,EAAM,KAAK,YAAY,EAAK,OAAO,MAAM,KAAK,KAAK,GAAG,CACpD,EAAK,OAAO,KAAK,QACnB,EAAM,KAAK,UAAU,EAAK,OAAO,IAAI,KAAK,KAAK,GAAG,CACpD,EAAM,KAAK,GAAG,CAEV,EAAK,aAAa,OAAO,OAAQ,CACnC,EAAM,KAAK,kBAAkB,CAC7B,IAAK,IAAM,KAAK,EAAK,YAAY,MAC3B,EAAc,EAAE,CAClB,EAAM,KAAK,OAAO,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,QAAQ,OAAO,EAAE,OAAO,CAE/D,EAAM,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,QAAQ,OAAO,EAAE,OAAO,CAG3D,EAAM,KAAK,GAAG,CAGhB,GAAI,EAAK,GAAG,QAAU,OAAO,KAAK,EAAK,GAAG,OAAO,CAAC,OAAQ,CACxD,EAAM,KAAK,YAAY,CACvB,IAAK,GAAM,CAAC,EAAM,KAAQ,OAAO,QAAQ,EAAK,GAAG,OAAO,CACtD,EAAM,KACJ,OAAO,EAAK,MAAM,EAAI,MAAQ,IAAI,MAAM,EAAI,YAAY,UAAU,EAAI,KAAK,GAC5E,CAEH,EAAM,KAAK,GAAG,CAGhB,GAAI,EAAK,YAAY,WAAW,OAAQ,CACtC,EAAM,KAAK,0BAA0B,CACrC,IAAK,IAAM,KAAK,EAAK,WAAW,UAC9B,EAAM,KAAK,OAAO,EAAE,OAAO,CAC3B,EAAM,KAAK,gBAAgB,EAAE,MAAM,KAAK,KAAK,GAAG,CAChD,EAAM,KAAK,eAAe,EAAE,KAAK,KAAK,KAAK,GAAG,CAC9C,EAAM,KAAK,eAAe,EAAE,KAAK,KAAK,KAAK,GAAG,CAC9C,EAAM,KAAK,GAAG,CAIlB,GAAI,EAAK,YAAY,UAAU,OAAQ,CACrC,EAAM,KAAK,cAAc,CACzB,IAAK,IAAM,KAAM,EAAK,WAAW,SAC/B,EAAM,KAAK,OAAO,EAAG,KAAK,IAAI,CAC9B,EAAM,KAAK,aAAa,CACxB,EAAM,KAAK,cAAc,CACzB,EAAM,KAAK,KAAK,UAAU,EAAG,MAAO,KAAM,EAAE,CAAC,CAC7C,EAAM,KAAK,UAAU,CACrB,EAAM,KAAK,cAAc,CACzB,EAAM,KAAK,cAAc,CACzB,EAAM,KAAK,KAAK,UAAU,EAAG,OAAQ,KAAM,EAAE,CAAC,CAC9C,EAAM,KAAK,UAAU,CACrB,EAAM,KAAK,GAAG,CAIlB,EAAM,KAAK,MAAM,CACjB,EAAM,KAAK,GAAG,CAGhB,OAAO,EAAM,KAAK;EAAK,CAIzB,SAAgB,EACd,EACA,EACQ,CACR,IAAMC,EAAkB,EAAE,CAG1B,GAFA,EAAM,KAAK,EAAgB,EAAK,EAAO,CAAC,CAEpC,EAAO,cAAe,CACxB,EAAM,KAAK,kBAAkB,CAC7B,EAAM,KAAK,GAAG,CACd,IAAK,IAAM,KAAK,EAAO,cAAc,MAAM,CACzC,EAAM,KAAK,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,UAAU,CAClD,EAAM,KAAK,GAAG,CACd,EAAM,KAAK,WAAY,EAAE,QAAgB,OAAO,CAC5C,cAAe,EAAE,SACnB,EAAM,KAAK,gBAAgB,EAAE,QAAQ,YAAY,CAC/C,iBAAkB,EAAE,SACtB,EAAM,KAAK,oBAAqB,EAAE,QAAgB,eAAe,CAC/D,aAAc,EAAE,SAClB,EAAM,KAAK,gBAAiB,EAAE,QAAgB,WAAW,CAC3D,EAAM,KAAK,GAAG,CAEhB,EAAM,KAAK,GAAG,CAGhB,GAAI,EAAO,SAAU,CACnB,EAAM,KAAK,aAAa,CACxB,EAAM,KAAK,GAAG,CACd,IAAK,IAAM,KAAK,EAAO,SAAS,MAAM,CAAE,CAItC,GAHA,EAAM,KAAK,MAAM,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,IAAI,GAAG,CAC5C,EAAE,KAAK,aAAa,EAAM,KAAK,EAAE,KAAK,YAAY,CACtD,EAAM,KAAK,GAAG,CACV,EAAE,YAAY,OAAQ,CACxB,EAAM,KAAK,gBAAgB,CAC3B,IAAK,IAAM,KAAK,EAAE,WAAY,EAAM,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,UAAU,CAEzE,GAAI,EAAE,QAAQ,OAAQ,CACpB,EAAM,KAAK,YAAY,CACvB,IAAK,IAAM,KAAK,EAAE,OAAQ,EAAM,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,UAAU,CAErE,GAAI,EAAE,eAAe,OAAQ,CAC3B,EAAM,KAAK,mBAAmB,CAC9B,IAAK,IAAM,KAAK,EAAE,cAChB,EAAM,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,UAAU,CAE7C,EAAM,KAAK,GAAG,EAIlB,OAAO,EAAM,KAAK;EAAK"}
@@ -0,0 +1,53 @@
1
+ import { OwnerShipMeta } from "./ownership.js";
2
+
3
+ //#region src/migrations.d.ts
4
+ type MigrationStepKind = 'schema' | 'data' | 'validation';
5
+ interface MigrationCheck {
6
+ description: string;
7
+ expression: string;
8
+ }
9
+ interface MigrationStepBase {
10
+ kind: MigrationStepKind;
11
+ description?: string;
12
+ timeoutMs?: number;
13
+ retries?: number;
14
+ preChecks?: MigrationCheck[];
15
+ postChecks?: MigrationCheck[];
16
+ }
17
+ interface SchemaMigrationStep extends MigrationStepBase {
18
+ kind: 'schema';
19
+ sql: string;
20
+ }
21
+ interface DataMigrationStep extends MigrationStepBase {
22
+ kind: 'data';
23
+ script: string;
24
+ }
25
+ interface ValidationMigrationStep extends MigrationStepBase {
26
+ kind: 'validation';
27
+ assertion: string;
28
+ }
29
+ type MigrationStep = SchemaMigrationStep | DataMigrationStep | ValidationMigrationStep;
30
+ interface MigrationMeta extends OwnerShipMeta {
31
+ /** Fully qualified migration name (e.g., "sigil.db.2025_01_add_users"). */
32
+ name: string;
33
+ /** Increment when the migration changes. */
34
+ version: number;
35
+ }
36
+ interface MigrationPlan {
37
+ up: MigrationStep[];
38
+ down?: MigrationStep[];
39
+ }
40
+ interface MigrationSpec {
41
+ meta: MigrationMeta;
42
+ plan: MigrationPlan;
43
+ dependencies?: string[];
44
+ }
45
+ declare class MigrationRegistry {
46
+ private readonly items;
47
+ register(spec: MigrationSpec): this;
48
+ list(): MigrationSpec[];
49
+ get(name: string, version?: number): MigrationSpec | undefined;
50
+ }
51
+ //#endregion
52
+ export { DataMigrationStep, MigrationCheck, MigrationMeta, MigrationPlan, MigrationRegistry, MigrationSpec, MigrationStep, MigrationStepBase, MigrationStepKind, SchemaMigrationStep, ValidationMigrationStep };
53
+ //# sourceMappingURL=migrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.d.ts","names":[],"sources":["../src/migrations.ts"],"sourcesContent":[],"mappings":";;;KAEY,iBAAA;UAEK,cAAA;EAFL,WAAA,EAAA,MAAA;EAEK,UAAA,EAAA,MAAc;AAK/B;AACQ,UADS,iBAAA,CACT;EAIM,IAAA,EAJN,iBAIM;EACC,WAAA,CAAA,EAAA,MAAA;EAAc,SAAA,CAAA,EAAA,MAAA;EAGZ,OAAA,CAAA,EAAA,MAAA;EAKA,SAAA,CAAA,EATH,cASqB,EAAA;EAKlB,UAAA,CAAA,EAbF,cAa0B,EAAA;AAKzC;AACI,UAhBa,mBAAA,SAA4B,iBAgBzC,CAAA;EACA,IAAA,EAAA,QAAA;EACA,GAAA,EAAA,MAAA;;AAEa,UAfA,iBAAA,SAA0B,iBAeS,CAAA;EAOnC,IAAA,EAAA,MAAA;EAKA,MAAA,EAAA,MAAA;AAQjB;AAGiB,UAjCA,uBAAA,SAAgC,iBAiChC,CAAA;EAQP,IAAA,EAAA,YAAA;EAO6B,SAAA,EAAA,MAAA;;KA3C3B,aAAA,GACR,sBACA,oBACA;UAEa,aAAA,SAAsB;;;;;;UAOtB,aAAA;MACX;SACG;;UAGQ,aAAA;QACT;QACA;;;cAMK,iBAAA;;iBAGI;UAQP;uCAO6B"}
@@ -0,0 +1,2 @@
1
+ const e=(e,t)=>`${e}.v${t}`;var t=class{items=new Map;register(t){let n=e(t.meta.name,t.meta.version);if(this.items.has(n))throw Error(`Duplicate migration ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()].sort((t,r)=>n(e(t.meta.name,t.meta.version),e(r.meta.name,r.meta.version)))}get(t,n){if(n!=null)return this.items.get(e(t,n));let r,i=-1/0;for(let e of this.items.values())e.meta.name===t&&e.meta.version>i&&(i=e.meta.version,r=e);return r}};function n(e,t){return e<t?-1:e>t?1:0}export{t as MigrationRegistry};
2
+ //# sourceMappingURL=migrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.js","names":["candidate: MigrationSpec | undefined"],"sources":["../src/migrations.ts"],"sourcesContent":["import type { OwnerShipMeta } from './ownership';\n\nexport type MigrationStepKind = 'schema' | 'data' | 'validation';\n\nexport interface MigrationCheck {\n description: string;\n expression: string;\n}\n\nexport interface MigrationStepBase {\n kind: MigrationStepKind;\n description?: string;\n timeoutMs?: number;\n retries?: number;\n preChecks?: MigrationCheck[];\n postChecks?: MigrationCheck[];\n}\n\nexport interface SchemaMigrationStep extends MigrationStepBase {\n kind: 'schema';\n sql: string;\n}\n\nexport interface DataMigrationStep extends MigrationStepBase {\n kind: 'data';\n script: string;\n}\n\nexport interface ValidationMigrationStep extends MigrationStepBase {\n kind: 'validation';\n assertion: string;\n}\n\nexport type MigrationStep =\n | SchemaMigrationStep\n | DataMigrationStep\n | ValidationMigrationStep;\n\nexport interface MigrationMeta extends OwnerShipMeta {\n /** Fully qualified migration name (e.g., \"sigil.db.2025_01_add_users\"). */\n name: string;\n /** Increment when the migration changes. */\n version: number;\n}\n\nexport interface MigrationPlan {\n up: MigrationStep[];\n down?: MigrationStep[];\n}\n\nexport interface MigrationSpec {\n meta: MigrationMeta;\n plan: MigrationPlan;\n dependencies?: string[];\n}\n\nconst migrationKey = (name: string, version: number) => `${name}.v${version}`;\n\nexport class MigrationRegistry {\n private readonly items = new Map<string, MigrationSpec>();\n\n register(spec: MigrationSpec): this {\n const key = migrationKey(spec.meta.name, spec.meta.version);\n if (this.items.has(key))\n throw new Error(`Duplicate migration ${key}`);\n this.items.set(key, spec);\n return this;\n }\n\n list(): MigrationSpec[] {\n return [...this.items.values()].sort(\n (a, b) =>\n compareKey(migrationKey(a.meta.name, a.meta.version), migrationKey(b.meta.name, b.meta.version))\n );\n }\n\n get(name: string, version?: number): MigrationSpec | undefined {\n if (version != null) return this.items.get(migrationKey(name, version));\n let candidate: MigrationSpec | undefined;\n let max = -Infinity;\n for (const spec of this.items.values()) {\n if (spec.meta.name !== name) continue;\n if (spec.meta.version > max) {\n max = spec.meta.version;\n candidate = spec;\n }\n }\n return candidate;\n }\n}\n\nfunction compareKey(a: string, b: string) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n"],"mappings":"AAwDA,MAAM,GAAgB,EAAc,IAAoB,GAAG,EAAK,IAAI,IAEpE,IAAa,EAAb,KAA+B,CAC7B,MAAyB,IAAI,IAE7B,SAAS,EAA2B,CAClC,IAAM,EAAM,EAAa,EAAK,KAAK,KAAM,EAAK,KAAK,QAAQ,CAC3D,GAAI,KAAK,MAAM,IAAI,EAAI,CACrB,MAAU,MAAM,uBAAuB,IAAM,CAE/C,OADA,KAAK,MAAM,IAAI,EAAK,EAAK,CAClB,KAGT,MAAwB,CACtB,MAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAAC,MAC7B,EAAG,IACF,EAAW,EAAa,EAAE,KAAK,KAAM,EAAE,KAAK,QAAQ,CAAE,EAAa,EAAE,KAAK,KAAM,EAAE,KAAK,QAAQ,CAAC,CACnG,CAGH,IAAI,EAAc,EAA6C,CAC7D,GAAI,GAAW,KAAM,OAAO,KAAK,MAAM,IAAI,EAAa,EAAM,EAAQ,CAAC,CACvE,IAAIA,EACA,EAAM,KACV,IAAK,IAAM,KAAQ,KAAK,MAAM,QAAQ,CAChC,EAAK,KAAK,OAAS,GACnB,EAAK,KAAK,QAAU,IACtB,EAAM,EAAK,KAAK,QAChB,EAAY,GAGhB,OAAO,IAIX,SAAS,EAAW,EAAW,EAAW,CACxC,OAAO,EAAI,EAAI,GAAK,EAAI,EAAI,EAAI"}