@vertesia/common 1.5.0-dev.20260725.083715Z → 1.5.0-dev.20260806.125520Z

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 (552) hide show
  1. package/lib/Progress.d.ts.map +1 -1
  2. package/lib/Progress.js.map +1 -1
  3. package/lib/access-control-values.d.ts +98 -0
  4. package/lib/access-control-values.d.ts.map +1 -0
  5. package/lib/access-control-values.js +101 -0
  6. package/lib/access-control-values.js.map +1 -0
  7. package/lib/access-control.d.ts +22 -119
  8. package/lib/access-control.d.ts.map +1 -1
  9. package/lib/access-control.js +6 -78
  10. package/lib/access-control.js.map +1 -1
  11. package/lib/account-values.d.ts +53 -0
  12. package/lib/account-values.d.ts.map +1 -0
  13. package/lib/account-values.js +91 -0
  14. package/lib/account-values.js.map +1 -0
  15. package/lib/analytics.d.ts +12 -38
  16. package/lib/analytics.d.ts.map +1 -1
  17. package/lib/api-schemas/access-control.d.ts +215 -0
  18. package/lib/api-schemas/access-control.d.ts.map +1 -0
  19. package/lib/api-schemas/access-control.js +165 -0
  20. package/lib/api-schemas/access-control.js.map +1 -0
  21. package/lib/api-schemas/account.d.ts +101 -0
  22. package/lib/api-schemas/account.d.ts.map +1 -0
  23. package/lib/api-schemas/account.js +136 -0
  24. package/lib/api-schemas/account.js.map +1 -0
  25. package/lib/api-schemas/adapter.d.ts +80 -0
  26. package/lib/api-schemas/adapter.d.ts.map +1 -0
  27. package/lib/api-schemas/adapter.js +726 -0
  28. package/lib/api-schemas/adapter.js.map +1 -0
  29. package/lib/api-schemas/agent-runs.d.ts +3786 -0
  30. package/lib/api-schemas/agent-runs.d.ts.map +1 -0
  31. package/lib/api-schemas/agent-runs.js +1000 -0
  32. package/lib/api-schemas/agent-runs.js.map +1 -0
  33. package/lib/api-schemas/analytics.d.ts +86 -0
  34. package/lib/api-schemas/analytics.d.ts.map +1 -0
  35. package/lib/api-schemas/analytics.js +58 -0
  36. package/lib/api-schemas/analytics.js.map +1 -0
  37. package/lib/api-schemas/apikey.d.ts +231 -0
  38. package/lib/api-schemas/apikey.d.ts.map +1 -0
  39. package/lib/api-schemas/apikey.js +172 -0
  40. package/lib/api-schemas/apikey.js.map +1 -0
  41. package/lib/api-schemas/app-lifecycle.d.ts +1148 -0
  42. package/lib/api-schemas/app-lifecycle.d.ts.map +1 -0
  43. package/lib/api-schemas/app-lifecycle.js +801 -0
  44. package/lib/api-schemas/app-lifecycle.js.map +1 -0
  45. package/lib/api-schemas/app-runtime.d.ts +10951 -0
  46. package/lib/api-schemas/app-runtime.d.ts.map +1 -0
  47. package/lib/api-schemas/app-runtime.js +874 -0
  48. package/lib/api-schemas/app-runtime.js.map +1 -0
  49. package/lib/api-schemas/apps.d.ts +271 -0
  50. package/lib/api-schemas/apps.d.ts.map +1 -0
  51. package/lib/api-schemas/apps.js +426 -0
  52. package/lib/api-schemas/apps.js.map +1 -0
  53. package/lib/api-schemas/audit-trail.d.ts +465 -0
  54. package/lib/api-schemas/audit-trail.d.ts.map +1 -0
  55. package/lib/api-schemas/audit-trail.js +218 -0
  56. package/lib/api-schemas/audit-trail.js.map +1 -0
  57. package/lib/api-schemas/bulk-operation.d.ts +104 -0
  58. package/lib/api-schemas/bulk-operation.d.ts.map +1 -0
  59. package/lib/api-schemas/bulk-operation.js +66 -0
  60. package/lib/api-schemas/bulk-operation.js.map +1 -0
  61. package/lib/api-schemas/commands.d.ts +50 -0
  62. package/lib/api-schemas/commands.d.ts.map +1 -0
  63. package/lib/api-schemas/commands.js +58 -0
  64. package/lib/api-schemas/commands.js.map +1 -0
  65. package/lib/api-schemas/content.d.ts +3565 -0
  66. package/lib/api-schemas/content.d.ts.map +1 -0
  67. package/lib/api-schemas/content.js +854 -0
  68. package/lib/api-schemas/content.js.map +1 -0
  69. package/lib/api-schemas/cost-analytics.d.ts +300 -0
  70. package/lib/api-schemas/cost-analytics.d.ts.map +1 -0
  71. package/lib/api-schemas/cost-analytics.js +218 -0
  72. package/lib/api-schemas/cost-analytics.js.map +1 -0
  73. package/lib/api-schemas/dashboard.d.ts +408 -0
  74. package/lib/api-schemas/dashboard.d.ts.map +1 -0
  75. package/lib/api-schemas/dashboard.js +311 -0
  76. package/lib/api-schemas/dashboard.js.map +1 -0
  77. package/lib/api-schemas/data-store.d.ts +1650 -0
  78. package/lib/api-schemas/data-store.d.ts.map +1 -0
  79. package/lib/api-schemas/data-store.js +504 -0
  80. package/lib/api-schemas/data-store.js.map +1 -0
  81. package/lib/api-schemas/document-processing.d.ts +1501 -0
  82. package/lib/api-schemas/document-processing.d.ts.map +1 -0
  83. package/lib/api-schemas/document-processing.js +312 -0
  84. package/lib/api-schemas/document-processing.js.map +1 -0
  85. package/lib/api-schemas/embeddings.d.ts +184 -0
  86. package/lib/api-schemas/embeddings.d.ts.map +1 -0
  87. package/lib/api-schemas/embeddings.js +102 -0
  88. package/lib/api-schemas/embeddings.js.map +1 -0
  89. package/lib/api-schemas/environment.d.ts +412 -0
  90. package/lib/api-schemas/environment.d.ts.map +1 -0
  91. package/lib/api-schemas/environment.js +170 -0
  92. package/lib/api-schemas/environment.js.map +1 -0
  93. package/lib/api-schemas/events.d.ts +4918 -0
  94. package/lib/api-schemas/events.d.ts.map +1 -0
  95. package/lib/api-schemas/events.js +888 -0
  96. package/lib/api-schemas/events.js.map +1 -0
  97. package/lib/api-schemas/files.d.ts +107 -0
  98. package/lib/api-schemas/files.d.ts.map +1 -0
  99. package/lib/api-schemas/files.js +137 -0
  100. package/lib/api-schemas/files.js.map +1 -0
  101. package/lib/api-schemas/group.d.ts +122 -0
  102. package/lib/api-schemas/group.d.ts.map +1 -0
  103. package/lib/api-schemas/group.js +142 -0
  104. package/lib/api-schemas/group.js.map +1 -0
  105. package/lib/api-schemas/index.d.ts +36 -0
  106. package/lib/api-schemas/index.d.ts.map +1 -0
  107. package/lib/api-schemas/index.js +36 -0
  108. package/lib/api-schemas/index.js.map +1 -0
  109. package/lib/api-schemas/indexing.d.ts +144 -0
  110. package/lib/api-schemas/indexing.d.ts.map +1 -0
  111. package/lib/api-schemas/indexing.js +217 -0
  112. package/lib/api-schemas/indexing.js.map +1 -0
  113. package/lib/api-schemas/integrations.d.ts +269 -0
  114. package/lib/api-schemas/integrations.d.ts.map +1 -0
  115. package/lib/api-schemas/integrations.js +335 -0
  116. package/lib/api-schemas/integrations.js.map +1 -0
  117. package/lib/api-schemas/interaction.d.ts +22456 -0
  118. package/lib/api-schemas/interaction.d.ts.map +1 -0
  119. package/lib/api-schemas/interaction.js +2071 -0
  120. package/lib/api-schemas/interaction.js.map +1 -0
  121. package/lib/api-schemas/invites.d.ts +162 -0
  122. package/lib/api-schemas/invites.d.ts.map +1 -0
  123. package/lib/api-schemas/invites.js +106 -0
  124. package/lib/api-schemas/invites.js.map +1 -0
  125. package/lib/api-schemas/oauth-server.d.ts +415 -0
  126. package/lib/api-schemas/oauth-server.d.ts.map +1 -0
  127. package/lib/api-schemas/oauth-server.js +193 -0
  128. package/lib/api-schemas/oauth-server.js.map +1 -0
  129. package/lib/api-schemas/oauth.d.ts +150 -0
  130. package/lib/api-schemas/oauth.d.ts.map +1 -0
  131. package/lib/api-schemas/oauth.js +148 -0
  132. package/lib/api-schemas/oauth.js.map +1 -0
  133. package/lib/api-schemas/parameters.d.ts +64 -0
  134. package/lib/api-schemas/parameters.d.ts.map +1 -0
  135. package/lib/api-schemas/parameters.js +246 -0
  136. package/lib/api-schemas/parameters.js.map +1 -0
  137. package/lib/api-schemas/process.d.ts +499 -0
  138. package/lib/api-schemas/process.d.ts.map +1 -0
  139. package/lib/api-schemas/process.js +817 -0
  140. package/lib/api-schemas/process.js.map +1 -0
  141. package/lib/api-schemas/project-configuration.d.ts +4900 -0
  142. package/lib/api-schemas/project-configuration.d.ts.map +1 -0
  143. package/lib/api-schemas/project-configuration.js +425 -0
  144. package/lib/api-schemas/project-configuration.js.map +1 -0
  145. package/lib/api-schemas/project.d.ts +7247 -0
  146. package/lib/api-schemas/project.d.ts.map +1 -0
  147. package/lib/api-schemas/project.js +185 -0
  148. package/lib/api-schemas/project.js.map +1 -0
  149. package/lib/api-schemas/prompt.d.ts +70 -0
  150. package/lib/api-schemas/prompt.d.ts.map +1 -0
  151. package/lib/api-schemas/prompt.js +77 -0
  152. package/lib/api-schemas/prompt.js.map +1 -0
  153. package/lib/api-schemas/quota.d.ts +90 -0
  154. package/lib/api-schemas/quota.d.ts.map +1 -0
  155. package/lib/api-schemas/quota.js +95 -0
  156. package/lib/api-schemas/quota.js.map +1 -0
  157. package/lib/api-schemas/registry.d.ts +98506 -0
  158. package/lib/api-schemas/registry.d.ts.map +1 -0
  159. package/lib/api-schemas/registry.js +2606 -0
  160. package/lib/api-schemas/registry.js.map +1 -0
  161. package/lib/api-schemas/schema-primitives.d.ts +5 -0
  162. package/lib/api-schemas/schema-primitives.d.ts.map +1 -0
  163. package/lib/api-schemas/schema-primitives.js +11 -0
  164. package/lib/api-schemas/schema-primitives.js.map +1 -0
  165. package/lib/api-schemas/secrets.d.ts +497 -0
  166. package/lib/api-schemas/secrets.d.ts.map +1 -0
  167. package/lib/api-schemas/secrets.js +298 -0
  168. package/lib/api-schemas/secrets.js.map +1 -0
  169. package/lib/api-schemas/store.d.ts +22140 -0
  170. package/lib/api-schemas/store.d.ts.map +1 -0
  171. package/lib/api-schemas/store.js +557 -0
  172. package/lib/api-schemas/store.js.map +1 -0
  173. package/lib/api-schemas/sts.d.ts +166 -0
  174. package/lib/api-schemas/sts.d.ts.map +1 -0
  175. package/lib/api-schemas/sts.js +107 -0
  176. package/lib/api-schemas/sts.js.map +1 -0
  177. package/lib/api-schemas/task.d.ts +215 -0
  178. package/lib/api-schemas/task.d.ts.map +1 -0
  179. package/lib/api-schemas/task.js +95 -0
  180. package/lib/api-schemas/task.js.map +1 -0
  181. package/lib/api-schemas/tools.d.ts +111 -0
  182. package/lib/api-schemas/tools.d.ts.map +1 -0
  183. package/lib/api-schemas/tools.js +122 -0
  184. package/lib/api-schemas/tools.js.map +1 -0
  185. package/lib/api-schemas/user.d.ts +208 -0
  186. package/lib/api-schemas/user.d.ts.map +1 -0
  187. package/lib/api-schemas/user.js +180 -0
  188. package/lib/api-schemas/user.js.map +1 -0
  189. package/lib/api-schemas/view-execution.d.ts +3163 -0
  190. package/lib/api-schemas/view-execution.d.ts.map +1 -0
  191. package/lib/api-schemas/view-execution.js +172 -0
  192. package/lib/api-schemas/view-execution.js.map +1 -0
  193. package/lib/api-schemas/views.d.ts +5990 -0
  194. package/lib/api-schemas/views.d.ts.map +1 -0
  195. package/lib/api-schemas/views.js +396 -0
  196. package/lib/api-schemas/views.js.map +1 -0
  197. package/lib/api-schemas/workflow-runs.d.ts +2210 -0
  198. package/lib/api-schemas/workflow-runs.d.ts.map +1 -0
  199. package/lib/api-schemas/workflow-runs.js +589 -0
  200. package/lib/api-schemas/workflow-runs.js.map +1 -0
  201. package/lib/apikey-values.d.ts +10 -0
  202. package/lib/apikey-values.d.ts.map +1 -0
  203. package/lib/apikey-values.js +11 -0
  204. package/lib/apikey-values.js.map +1 -0
  205. package/lib/apikey.d.ts +37 -36
  206. package/lib/apikey.d.ts.map +1 -1
  207. package/lib/apikey.js +5 -4
  208. package/lib/apikey.js.map +1 -1
  209. package/lib/apps.d.ts +142 -1172
  210. package/lib/apps.d.ts.map +1 -1
  211. package/lib/apps.js +4 -0
  212. package/lib/apps.js.map +1 -1
  213. package/lib/ask-user.d.ts +8 -1
  214. package/lib/ask-user.d.ts.map +1 -1
  215. package/lib/audit-trail.d.ts +20 -131
  216. package/lib/audit-trail.d.ts.map +1 -1
  217. package/lib/audit-trail.js.map +1 -1
  218. package/lib/browser-credentials.d.ts +11 -106
  219. package/lib/browser-credentials.d.ts.map +1 -1
  220. package/lib/common.d.ts +59 -81
  221. package/lib/common.d.ts.map +1 -1
  222. package/lib/cost-analytics.d.ts +14 -167
  223. package/lib/cost-analytics.d.ts.map +1 -1
  224. package/lib/cost-analytics.js.map +1 -1
  225. package/lib/data-platform.d.ts +122 -786
  226. package/lib/data-platform.d.ts.map +1 -1
  227. package/lib/data-platform.js +41 -61
  228. package/lib/data-platform.js.map +1 -1
  229. package/lib/email.d.ts +5 -17
  230. package/lib/email.d.ts.map +1 -1
  231. package/lib/email.js +0 -3
  232. package/lib/email.js.map +1 -1
  233. package/lib/embeddings.d.ts +14 -56
  234. package/lib/embeddings.d.ts.map +1 -1
  235. package/lib/environment.d.ts +22 -118
  236. package/lib/environment.d.ts.map +1 -1
  237. package/lib/environment.js +3 -0
  238. package/lib/environment.js.map +1 -1
  239. package/lib/facets.d.ts +4 -7
  240. package/lib/facets.d.ts.map +1 -1
  241. package/lib/group.d.ts +33 -39
  242. package/lib/group.d.ts.map +1 -1
  243. package/lib/group.js +0 -1
  244. package/lib/group.js.map +1 -1
  245. package/lib/index.d.ts +8 -0
  246. package/lib/index.d.ts.map +1 -1
  247. package/lib/index.js +1 -0
  248. package/lib/index.js.map +1 -1
  249. package/lib/integrations.d.ts +20 -108
  250. package/lib/integrations.d.ts.map +1 -1
  251. package/lib/integrations.js.map +1 -1
  252. package/lib/interaction-values.d.ts +11 -0
  253. package/lib/interaction-values.d.ts.map +1 -0
  254. package/lib/interaction-values.js +24 -0
  255. package/lib/interaction-values.js.map +1 -0
  256. package/lib/interaction.d.ts +88 -778
  257. package/lib/interaction.d.ts.map +1 -1
  258. package/lib/interaction.js +8 -12
  259. package/lib/interaction.js.map +1 -1
  260. package/lib/meters.d.ts +11 -7
  261. package/lib/meters.d.ts.map +1 -1
  262. package/lib/meters.js.map +1 -1
  263. package/lib/oauth-server.d.ts +33 -119
  264. package/lib/oauth-server.d.ts.map +1 -1
  265. package/lib/oauth.d.ts +14 -96
  266. package/lib/oauth.d.ts.map +1 -1
  267. package/lib/oauth.js +0 -4
  268. package/lib/oauth.js.map +1 -1
  269. package/lib/payload.d.ts +15 -38
  270. package/lib/payload.d.ts.map +1 -1
  271. package/lib/platform-event-validation.d.ts.map +1 -1
  272. package/lib/platform-event-validation.js +15 -2
  273. package/lib/platform-event-validation.js.map +1 -1
  274. package/lib/platform-event.d.ts +79 -464
  275. package/lib/platform-event.d.ts.map +1 -1
  276. package/lib/platform-event.js.map +1 -1
  277. package/lib/principal-context.d.ts +10 -15
  278. package/lib/principal-context.d.ts.map +1 -1
  279. package/lib/project-values.d.ts +24 -0
  280. package/lib/project-values.d.ts.map +1 -0
  281. package/lib/project-values.js +42 -0
  282. package/lib/project-values.js.map +1 -0
  283. package/lib/project.d.ts +56 -504
  284. package/lib/project.d.ts.map +1 -1
  285. package/lib/project.js +6 -76
  286. package/lib/project.js.map +1 -1
  287. package/lib/prompt.d.ts +20 -51
  288. package/lib/prompt.d.ts.map +1 -1
  289. package/lib/prompt.js.map +1 -1
  290. package/lib/query.d.ts +27 -88
  291. package/lib/query.d.ts.map +1 -1
  292. package/lib/rate-limiter.d.ts +19 -70
  293. package/lib/rate-limiter.d.ts.map +1 -1
  294. package/lib/rate-limiter.js +0 -3
  295. package/lib/rate-limiter.js.map +1 -1
  296. package/lib/refs.d.ts +3 -11
  297. package/lib/refs.d.ts.map +1 -1
  298. package/lib/refs.js.map +1 -1
  299. package/lib/roles/types.d.ts +14 -20
  300. package/lib/roles/types.d.ts.map +1 -1
  301. package/lib/roles/types.js +5 -9
  302. package/lib/roles/types.js.map +1 -1
  303. package/lib/runs.d.ts +6 -25
  304. package/lib/runs.d.ts.map +1 -1
  305. package/lib/schema-for-extraction.js.map +1 -1
  306. package/lib/secrets.d.ts +20 -105
  307. package/lib/secrets.d.ts.map +1 -1
  308. package/lib/store/agent-approval.d.ts +6 -15
  309. package/lib/store/agent-approval.d.ts.map +1 -1
  310. package/lib/store/agent-approval.js.map +1 -1
  311. package/lib/store/agent-run.d.ts +57 -358
  312. package/lib/store/agent-run.d.ts.map +1 -1
  313. package/lib/store/collections.d.ts +11 -63
  314. package/lib/store/collections.d.ts.map +1 -1
  315. package/lib/store/collections.js.map +1 -1
  316. package/lib/store/conversation-state.d.ts +61 -61
  317. package/lib/store/conversation-state.d.ts.map +1 -1
  318. package/lib/store/conversation-state.js +2 -0
  319. package/lib/store/conversation-state.js.map +1 -1
  320. package/lib/store/doc-analyzer.d.ts +9 -32
  321. package/lib/store/doc-analyzer.d.ts.map +1 -1
  322. package/lib/store/dsl-workflow.d.ts +37 -151
  323. package/lib/store/dsl-workflow.d.ts.map +1 -1
  324. package/lib/store/dsl-workflow.js.map +1 -1
  325. package/lib/store/editing-policy-schema.generated.d.ts +3 -0
  326. package/lib/store/editing-policy-schema.generated.d.ts.map +1 -0
  327. package/lib/store/editing-policy-schema.generated.js +28 -0
  328. package/lib/store/editing-policy-schema.generated.js.map +1 -0
  329. package/lib/store/grounded-extraction.d.ts +7 -104
  330. package/lib/store/grounded-extraction.d.ts.map +1 -1
  331. package/lib/store/grounded-extraction.js.map +1 -1
  332. package/lib/store/index.d.ts +2 -0
  333. package/lib/store/index.d.ts.map +1 -1
  334. package/lib/store/index.js +3 -0
  335. package/lib/store/index.js.map +1 -1
  336. package/lib/store/intake-policy-schema.generated.d.ts +3 -0
  337. package/lib/store/intake-policy-schema.generated.d.ts.map +1 -0
  338. package/lib/store/intake-policy-schema.generated.js +1425 -0
  339. package/lib/store/intake-policy-schema.generated.js.map +1 -0
  340. package/lib/store/process-schema.d.ts +81 -1
  341. package/lib/store/process-schema.d.ts.map +1 -1
  342. package/lib/store/process-schema.js +79 -0
  343. package/lib/store/process-schema.js.map +1 -1
  344. package/lib/store/process-validation.d.ts.map +1 -1
  345. package/lib/store/process-validation.js +70 -2
  346. package/lib/store/process-validation.js.map +1 -1
  347. package/lib/store/process.d.ts +36 -125
  348. package/lib/store/process.d.ts.map +1 -1
  349. package/lib/store/process.js.map +1 -1
  350. package/lib/store/rendering.d.ts +9 -64
  351. package/lib/store/rendering.d.ts.map +1 -1
  352. package/lib/store/rendering.js.map +1 -1
  353. package/lib/store/schedule.d.ts +6 -6
  354. package/lib/store/schedule.d.ts.map +1 -1
  355. package/lib/store/store.d.ts +99 -701
  356. package/lib/store/store.d.ts.map +1 -1
  357. package/lib/store/store.js +4 -456
  358. package/lib/store/store.js.map +1 -1
  359. package/lib/store/task.d.ts +15 -59
  360. package/lib/store/task.d.ts.map +1 -1
  361. package/lib/store/task.js +0 -3
  362. package/lib/store/task.js.map +1 -1
  363. package/lib/store/workflow.d.ts +58 -516
  364. package/lib/store/workflow.d.ts.map +1 -1
  365. package/lib/store/workflow.js +31 -11
  366. package/lib/store/workflow.js.map +1 -1
  367. package/lib/sts-errors.d.ts +7 -0
  368. package/lib/sts-errors.d.ts.map +1 -0
  369. package/lib/sts-errors.js +11 -0
  370. package/lib/sts-errors.js.map +1 -0
  371. package/lib/sts-token-types.d.ts +13 -66
  372. package/lib/sts-token-types.d.ts.map +1 -1
  373. package/lib/sts-token-types.js.map +1 -1
  374. package/lib/tools.d.ts +8 -100
  375. package/lib/tools.d.ts.map +1 -1
  376. package/lib/transient-tokens-values.d.ts +11 -0
  377. package/lib/transient-tokens-values.d.ts.map +1 -0
  378. package/lib/transient-tokens-values.js +12 -0
  379. package/lib/transient-tokens-values.js.map +1 -0
  380. package/lib/transient-tokens.d.ts +15 -13
  381. package/lib/transient-tokens.d.ts.map +1 -1
  382. package/lib/transient-tokens.js +5 -5
  383. package/lib/transient-tokens.js.map +1 -1
  384. package/lib/user.d.ts +55 -156
  385. package/lib/user.d.ts.map +1 -1
  386. package/lib/user.js +2 -79
  387. package/lib/user.js.map +1 -1
  388. package/lib/versions.d.ts +34 -1
  389. package/lib/versions.d.ts.map +1 -1
  390. package/lib/versions.js +33 -0
  391. package/lib/versions.js.map +1 -1
  392. package/lib/vertesia-common.js +6 -2
  393. package/lib/vertesia-common.js.map +1 -1
  394. package/lib/view-configuration-validation.js.map +1 -1
  395. package/lib/view-query-validation.js.map +1 -1
  396. package/lib/view-validation-helpers.d.ts +1 -1
  397. package/lib/view-validation-helpers.d.ts.map +1 -1
  398. package/lib/views-schema.d.ts +51 -51
  399. package/lib/views-schema.d.ts.map +1 -1
  400. package/lib/views-validation.js.map +1 -1
  401. package/lib/views.d.ts +58 -314
  402. package/lib/views.d.ts.map +1 -1
  403. package/lib/views.js.map +1 -1
  404. package/lib/workflow-analytics.d.ts +10 -3
  405. package/lib/workflow-analytics.d.ts.map +1 -1
  406. package/package.json +14 -5
  407. package/src/access-control-values.ts +113 -0
  408. package/src/access-control.ts +33 -138
  409. package/src/account-values.ts +95 -0
  410. package/src/analytics.ts +18 -42
  411. package/src/api-schemas/access-control.contract.test.ts +209 -0
  412. package/src/api-schemas/access-control.ts +208 -0
  413. package/src/api-schemas/account.contract.test.ts +318 -0
  414. package/src/api-schemas/account.ts +150 -0
  415. package/src/api-schemas/adapter-edge-cases.test.ts +480 -0
  416. package/src/api-schemas/adapter.ts +778 -0
  417. package/src/api-schemas/agent-runs.ts +1091 -0
  418. package/src/api-schemas/analytics.ts +65 -0
  419. package/src/api-schemas/apikey.contract.test.ts +270 -0
  420. package/src/api-schemas/apikey.ts +199 -0
  421. package/src/api-schemas/app-delete-summary.contract.test.ts +67 -0
  422. package/src/api-schemas/app-lifecycle.ts +900 -0
  423. package/src/api-schemas/app-runtime.ts +1022 -0
  424. package/src/api-schemas/apps.ts +484 -0
  425. package/src/api-schemas/audit-trail.ts +243 -0
  426. package/src/api-schemas/bulk-operation.contract.test.ts +39 -0
  427. package/src/api-schemas/bulk-operation.ts +75 -0
  428. package/src/api-schemas/bundle-isolation.test.ts +80 -0
  429. package/src/api-schemas/commands.contract.test.ts +51 -0
  430. package/src/api-schemas/commands.ts +62 -0
  431. package/src/api-schemas/content.ts +952 -0
  432. package/src/api-schemas/cost-analytics.contract.test.ts +64 -0
  433. package/src/api-schemas/cost-analytics.ts +235 -0
  434. package/src/api-schemas/dashboard.contract.test.ts +127 -0
  435. package/src/api-schemas/dashboard.ts +351 -0
  436. package/src/api-schemas/data-store.contract.test.ts +91 -0
  437. package/src/api-schemas/data-store.ts +571 -0
  438. package/src/api-schemas/document-processing.contract.test.ts +76 -0
  439. package/src/api-schemas/document-processing.ts +344 -0
  440. package/src/api-schemas/embeddings.ts +113 -0
  441. package/src/api-schemas/environment.contract.test.ts +184 -0
  442. package/src/api-schemas/environment.ts +190 -0
  443. package/src/api-schemas/events.ts +981 -0
  444. package/src/api-schemas/files.ts +159 -0
  445. package/src/api-schemas/group.contract.test.ts +205 -0
  446. package/src/api-schemas/group.ts +155 -0
  447. package/src/api-schemas/index.ts +35 -0
  448. package/src/api-schemas/indexing.contract.test.ts +83 -0
  449. package/src/api-schemas/indexing.ts +234 -0
  450. package/src/api-schemas/integrations.ts +369 -0
  451. package/src/api-schemas/interaction.contract.test.ts +27 -0
  452. package/src/api-schemas/interaction.ts +2364 -0
  453. package/src/api-schemas/invites.contract.test.ts +268 -0
  454. package/src/api-schemas/invites.ts +127 -0
  455. package/src/api-schemas/llumiverse.contract.test.ts +108 -0
  456. package/src/api-schemas/mcp-api-key.contract.test.ts +86 -0
  457. package/src/api-schemas/oauth-server.ts +219 -0
  458. package/src/api-schemas/oauth.contract.test.ts +118 -0
  459. package/src/api-schemas/oauth.ts +166 -0
  460. package/src/api-schemas/parameters.test.ts +402 -0
  461. package/src/api-schemas/parameters.ts +310 -0
  462. package/src/api-schemas/process.ts +929 -0
  463. package/src/api-schemas/project-configuration.ts +478 -0
  464. package/src/api-schemas/project.contract.test.ts +365 -0
  465. package/src/api-schemas/project.ts +214 -0
  466. package/src/api-schemas/prompt.ts +88 -0
  467. package/src/api-schemas/pruning-limits.test.ts +189 -0
  468. package/src/api-schemas/quota.contract.test.ts +147 -0
  469. package/src/api-schemas/quota.ts +122 -0
  470. package/src/api-schemas/registry-groups.test.ts +91 -0
  471. package/src/api-schemas/registry.ts +3512 -0
  472. package/src/api-schemas/response-pruning.test.ts +260 -0
  473. package/src/api-schemas/schema-primitives.ts +12 -0
  474. package/src/api-schemas/secrets.ts +332 -0
  475. package/src/api-schemas/store.contract.test.ts +471 -0
  476. package/src/api-schemas/store.ts +604 -0
  477. package/src/api-schemas/sts.contract.test.ts +112 -0
  478. package/src/api-schemas/sts.ts +123 -0
  479. package/src/api-schemas/task.ts +104 -0
  480. package/src/api-schemas/tools.ts +140 -0
  481. package/src/api-schemas/user.contract.test.ts +191 -0
  482. package/src/api-schemas/user.ts +204 -0
  483. package/src/api-schemas/view-execution.ts +200 -0
  484. package/src/api-schemas/views.ts +437 -0
  485. package/src/api-schemas/workflow-runs.ts +653 -0
  486. package/src/apikey-values.ts +10 -0
  487. package/src/apikey.ts +49 -40
  488. package/src/apps.test.ts +82 -0
  489. package/src/apps.ts +283 -1228
  490. package/src/ask-user.ts +9 -1
  491. package/src/audit-trail.ts +45 -137
  492. package/src/browser-credentials.ts +21 -106
  493. package/src/common.ts +67 -78
  494. package/src/cost-analytics.ts +37 -176
  495. package/src/data-platform.ts +205 -776
  496. package/src/email.ts +5 -17
  497. package/src/embeddings.ts +22 -60
  498. package/src/environment.ts +52 -126
  499. package/src/facets.ts +4 -7
  500. package/src/group.ts +38 -42
  501. package/src/index.ts +12 -0
  502. package/src/integrations.ts +39 -129
  503. package/src/interaction-values.ts +23 -0
  504. package/src/interaction.ts +162 -902
  505. package/src/meters.ts +11 -7
  506. package/src/oauth-server.ts +58 -127
  507. package/src/oauth.ts +24 -108
  508. package/src/payload.ts +25 -40
  509. package/src/platform-event-validation.test.ts +26 -0
  510. package/src/platform-event-validation.ts +15 -2
  511. package/src/platform-event.ts +141 -484
  512. package/src/principal-context.ts +11 -15
  513. package/src/project-values.ts +41 -0
  514. package/src/project.ts +116 -588
  515. package/src/prompt.ts +34 -61
  516. package/src/query.ts +34 -93
  517. package/src/rate-limiter.ts +27 -75
  518. package/src/refs.ts +4 -11
  519. package/src/roles/types.ts +20 -20
  520. package/src/runs.ts +11 -24
  521. package/src/secrets.ts +38 -117
  522. package/src/store/agent-approval.ts +9 -14
  523. package/src/store/agent-run.ts +93 -450
  524. package/src/store/collections.ts +21 -63
  525. package/src/store/content-type-editing.test.ts +1 -1
  526. package/src/store/conversation-state.ts +75 -64
  527. package/src/store/doc-analyzer.ts +17 -33
  528. package/src/store/dsl-workflow.ts +62 -158
  529. package/src/store/editing-policy-schema.generated.ts +30 -0
  530. package/src/store/grounded-extraction.ts +13 -104
  531. package/src/store/index.ts +3 -0
  532. package/src/store/intake-policy-schema.generated.ts +1442 -0
  533. package/src/store/process-schema.test.ts +43 -0
  534. package/src/store/process-schema.ts +79 -0
  535. package/src/store/process-validation.test.ts +141 -0
  536. package/src/store/process-validation.ts +82 -2
  537. package/src/store/process.ts +70 -146
  538. package/src/store/rendering.ts +15 -64
  539. package/src/store/store.ts +197 -1204
  540. package/src/store/task.ts +25 -59
  541. package/src/store/workflow.ts +103 -554
  542. package/src/sts-errors.ts +13 -0
  543. package/src/sts-token-types.ts +26 -75
  544. package/src/tools.ts +18 -97
  545. package/src/transient-tokens-values.ts +11 -0
  546. package/src/transient-tokens.ts +16 -13
  547. package/src/user.ts +75 -215
  548. package/src/versions.test.ts +13 -0
  549. package/src/versions.ts +36 -0
  550. package/src/views-schema.test.ts +9 -1
  551. package/src/views.ts +106 -329
  552. package/src/workflow-analytics.ts +10 -3
@@ -0,0 +1,64 @@
1
+ import { describe, expect, expectTypeOf, it } from 'vitest';
2
+ import type {
3
+ CostAnalyticsQuery,
4
+ CostAnalyticsResponse,
5
+ CostRunPriceQuery,
6
+ ModelPriceComparisonResponse,
7
+ } from '../cost-analytics.js';
8
+ import type {
9
+ CostAnalyticsQuerySchema,
10
+ CostAnalyticsResponseSchema,
11
+ CostRunPriceQuerySchema,
12
+ ModelPriceComparisonResponseSchema,
13
+ } from './cost-analytics.js';
14
+ import { ApiSchemaComponents, validateApiRequest, validateApiResponse } from './registry.js';
15
+
16
+ describe('cost analytics API contracts', () => {
17
+ it('derives the public types from the runtime schemas', () => {
18
+ expectTypeOf<CostAnalyticsQuery>().toEqualTypeOf<import('zod').z.infer<typeof CostAnalyticsQuerySchema>>();
19
+ expectTypeOf<CostAnalyticsResponse>().toEqualTypeOf<
20
+ import('zod').z.infer<typeof CostAnalyticsResponseSchema>
21
+ >();
22
+ expectTypeOf<CostRunPriceQuery>().toEqualTypeOf<import('zod').z.infer<typeof CostRunPriceQuerySchema>>();
23
+ expectTypeOf<ModelPriceComparisonResponse>().toEqualTypeOf<
24
+ import('zod').z.infer<typeof ModelPriceComparisonResponseSchema>
25
+ >();
26
+ });
27
+
28
+ it('accepts string and epoch time boundaries', () => {
29
+ expect(validateApiRequest('CostAnalyticsQuery', { from: '2026-08-01T00:00:00Z' }).valid).toBe(true);
30
+ expect(validateApiRequest('CostAnalyticsQuery', { from: 1_786_060_800_000 }).valid).toBe(true);
31
+ });
32
+
33
+ it('rejects undeclared request fields through the published component', () => {
34
+ expect(validateApiRequest('CostRunPriceQuery', { run_id: 'run-1', hidden_filter: true }).valid).toBe(false);
35
+ });
36
+
37
+ it('validates the published model-price response', () => {
38
+ const response: ModelPriceComparisonResponse = {
39
+ prices: [
40
+ {
41
+ model: 'gpt-5',
42
+ source: 'model_pricing_daily',
43
+ input_list_price_per_m_tokens: 1.25,
44
+ },
45
+ ],
46
+ effective_range: { from: '2026-08-01', to: '2026-08-02' },
47
+ };
48
+ expect(validateApiResponse('ModelPriceComparisonResponse', response).valid).toBe(true);
49
+ });
50
+
51
+ it('registers the complete cost analytics closure', () => {
52
+ for (const name of [
53
+ 'CostAnalyticsQuery',
54
+ 'CostRunPriceQuery',
55
+ 'CostModelPricesQuery',
56
+ 'CostExportQuery',
57
+ 'CostAnalyticsResponse',
58
+ 'ModelPriceComparisonResponse',
59
+ 'CostRunPriceResponse',
60
+ ]) {
61
+ expect(ApiSchemaComponents[name]).toBeDefined();
62
+ }
63
+ });
64
+ });
@@ -0,0 +1,235 @@
1
+ import { z } from 'zod';
2
+
3
+ // Zod renders a union as `anyOf`, while the published contract uses JSON Schema's compact type
4
+ // array. Runtime enforcement compiles the emitted JSON Schema with AJV, so the metadata is both the
5
+ // published shape and the validator; the annotation keeps the inferred TypeScript type equally
6
+ // narrow.
7
+ const timeBoundarySchema: z.ZodType<string | number> = z.any().meta({ type: ['string', 'number'] });
8
+
9
+ export const PricingSyncPayloadSchema = z
10
+ .strictObject({
11
+ date: z.string().optional(),
12
+ backfill_from: z.string().optional(),
13
+ })
14
+ .meta({ id: 'PricingSyncPayload' });
15
+
16
+ export const PricingSyncDayResultSchema = z
17
+ .strictObject({
18
+ date: z.string(),
19
+ gcp_list: z.number(),
20
+ gcp_effective: z.number(),
21
+ aws_pricing: z.number(),
22
+ })
23
+ .meta({ id: 'PricingSyncDayResult' });
24
+
25
+ export const PricingSyncResultSchema = z
26
+ .strictObject({
27
+ days: z.array(PricingSyncDayResultSchema),
28
+ total_days: z.number(),
29
+ })
30
+ .meta({ id: 'PricingSyncResult' });
31
+
32
+ export const CostAnalyticsQuerySchema = z
33
+ .strictObject({
34
+ from: timeBoundarySchema.meta({ description: 'Start time (ISO string or epoch ms)' }).optional(),
35
+ to: timeBoundarySchema.meta({ description: 'End time (ISO string or epoch ms)' }).optional(),
36
+ group_by: z
37
+ .enum(['model', 'environment', 'account', 'project', 'project_tag', 'provider', 'interaction', 'workflow'])
38
+ .meta({ description: 'Group results by this dimension' })
39
+ .optional(),
40
+ resolution: z.enum(['hour', 'day', 'week', 'month']).meta({ description: 'Time series resolution' }).optional(),
41
+ model: z.string().meta({ description: 'Filter by model pattern' }).optional(),
42
+ environment_id: z.string().meta({ description: 'Filter by environment ID' }).optional(),
43
+ provider: z.string().meta({ description: 'Filter by provider' }).optional(),
44
+ project_id: z.string().meta({ description: 'Filter by project ID (optional, for org scope)' }).optional(),
45
+ workflow_id: z.string().meta({ description: 'Filter by workflow / agent run ID' }).optional(),
46
+ workflow_run_id: z.string().meta({ description: 'Filter by Temporal workflow run ID' }).optional(),
47
+ run_id: z.string().meta({ description: 'Filter by interaction execution run ID' }).optional(),
48
+ agent_run_id: z.string().meta({ description: 'Filter by agent run ID' }).optional(),
49
+ interaction_id: z
50
+ .string()
51
+ .meta({ description: 'Filter by interaction id: stored ObjectId or namespaced in-code id' })
52
+ .optional(),
53
+ principal_id: z
54
+ .string()
55
+ .meta({
56
+ description:
57
+ 'Filter by principal (bare user or API key id; matched against the suffix of principal_id)',
58
+ })
59
+ .optional(),
60
+ account_id: z.string().meta({ description: 'Filter by account ID (set automatically by server)' }).optional(),
61
+ scope: z
62
+ .enum(['project', 'org'])
63
+ .meta({ description: "Scope: 'project' (default, current project) or 'org' (all projects in account)" })
64
+ .optional(),
65
+ pricing_source: z
66
+ .enum(['list', 'historical'])
67
+ .meta({
68
+ description:
69
+ "Pricing source: 'list' (latest daily prices) or 'historical' (daily effective prices over the query range). Default: 'list'",
70
+ })
71
+ .optional(),
72
+ no_cache: z.boolean().meta({ description: 'Skip cache and force fresh query' }).optional(),
73
+ })
74
+ .meta({ id: 'CostAnalyticsQuery' });
75
+
76
+ export const CostRunPriceQuerySchema = z
77
+ .strictObject({
78
+ run_id: z.string().meta({ description: 'Interaction execution run ID' }).optional(),
79
+ agent_run_id: z.string().meta({ description: 'Agent run ID' }).optional(),
80
+ workflow_id: z.string().meta({ description: 'Workflow ID, when known' }).optional(),
81
+ workflow_run_id: z.string().meta({ description: 'Temporal workflow run ID, when known' }).optional(),
82
+ from: timeBoundarySchema.meta({ description: 'Optional lower bound for audit events' }).optional(),
83
+ to: timeBoundarySchema.meta({ description: 'Optional upper bound for audit events' }).optional(),
84
+ pricing_source: z
85
+ .enum(['list', 'historical'])
86
+ .meta({ description: 'Pricing source. Defaults to historical effective prices for run pricing.' })
87
+ .optional(),
88
+ include_comparison_pricing: z
89
+ .boolean()
90
+ .meta({ description: 'Include the full pricing catalog for cross-model comparison. Defaults to false.' })
91
+ .optional(),
92
+ project_id: z
93
+ .string()
94
+ .meta({ description: 'Project filter; server fills current project by default' })
95
+ .optional(),
96
+ account_id: z.string().meta({ description: 'Account filter; server fills current account' }).optional(),
97
+ scope: z
98
+ .enum(['project', 'org'])
99
+ .meta({ description: "Scope: 'project' (default, current project) or 'org'" })
100
+ .optional(),
101
+ })
102
+ .meta({ id: 'CostRunPriceQuery' });
103
+
104
+ export const CostModelPricesQuerySchema = z
105
+ .object({
106
+ from: timeBoundarySchema.meta({ description: 'Start time (ISO string or epoch ms)' }).optional(),
107
+ to: timeBoundarySchema.meta({ description: 'End time (ISO string or epoch ms)' }).optional(),
108
+ })
109
+ .meta({ id: 'CostModelPricesQuery' });
110
+
111
+ export const CostExportQuerySchema = z
112
+ .object({
113
+ from: timeBoundarySchema.meta({ description: 'Start time (ISO string or epoch ms)' }).optional(),
114
+ to: timeBoundarySchema.meta({ description: 'End time (ISO string or epoch ms)' }).optional(),
115
+ scope: z
116
+ .enum(['project', 'org'])
117
+ .meta({ description: "Scope: 'project' (default, current project) or 'org' (all projects in account)" })
118
+ .optional(),
119
+ project_id: z.string().meta({ description: 'Filter by project ID (optional, for org scope)' }).optional(),
120
+ workflow_id: z.string().meta({ description: 'Filter by workflow / agent run ID' }).optional(),
121
+ })
122
+ .meta({ id: 'CostExportQuery' });
123
+
124
+ export const ModelPricingSchema = z
125
+ .strictObject({
126
+ model: z.string(),
127
+ provider: z.string().optional(),
128
+ provider_account_id: z.string().optional(),
129
+ input_price_per_m_tokens: z.number(),
130
+ cached_input_price_per_m_tokens: z.number().optional(),
131
+ cache_write_input_price_per_m_tokens: z.number().optional(),
132
+ output_price_per_m_tokens: z.number(),
133
+ source: z.enum(['billing_export', 'model_pricing_daily', 'unavailable']),
134
+ })
135
+ .meta({ id: 'ModelPricing' });
136
+
137
+ export const CostTimeSeriesPointSchema = z
138
+ .strictObject({
139
+ timestamp: z.string(),
140
+ cost: z.number(),
141
+ input_tokens: z.number(),
142
+ cached_input_tokens: z.number().optional(),
143
+ cache_write_input_tokens: z.number().optional(),
144
+ output_tokens: z.number(),
145
+ calls: z.number(),
146
+ })
147
+ .meta({ id: 'CostTimeSeriesPoint' });
148
+
149
+ export const CostSummarySchema = z
150
+ .strictObject({
151
+ total_cost: z.number(),
152
+ total_input_tokens: z.number(),
153
+ total_cached_input_tokens: z.number().optional(),
154
+ total_cache_write_input_tokens: z.number().optional(),
155
+ total_output_tokens: z.number(),
156
+ total_calls: z.number(),
157
+ total_duration_ms: z.number(),
158
+ })
159
+ .meta({ id: 'CostSummary' });
160
+
161
+ export const ModelPriceComparisonSchema = z
162
+ .strictObject({
163
+ model: z.string(),
164
+ provider: z.string().optional(),
165
+ provider_account_id: z.string().optional(),
166
+ list_price_date: z.string().optional(),
167
+ effective_from: z.string().optional(),
168
+ effective_to: z.string().optional(),
169
+ input_list_price_per_m_tokens: z.number().optional(),
170
+ input_effective_price_per_m_tokens: z.number().optional(),
171
+ cached_input_list_price_per_m_tokens: z.number().optional(),
172
+ cached_input_effective_price_per_m_tokens: z.number().optional(),
173
+ cache_write_input_list_price_per_m_tokens: z.number().optional(),
174
+ cache_write_input_effective_price_per_m_tokens: z.number().optional(),
175
+ output_list_price_per_m_tokens: z.number().optional(),
176
+ output_effective_price_per_m_tokens: z.number().optional(),
177
+ source: z.literal('model_pricing_daily'),
178
+ })
179
+ .meta({ id: 'ModelPriceComparison' });
180
+
181
+ export const CostByDimensionSchema = z
182
+ .strictObject({
183
+ dimension: z.string(),
184
+ label: z.string().optional(),
185
+ provider: z.string().optional(),
186
+ cost: z.number(),
187
+ input_tokens: z.number(),
188
+ cached_input_tokens: z.number().optional(),
189
+ cache_write_input_tokens: z.number().optional(),
190
+ output_tokens: z.number(),
191
+ calls: z.number(),
192
+ periods: z.array(CostTimeSeriesPointSchema).optional(),
193
+ })
194
+ .meta({ id: 'CostByDimension' });
195
+
196
+ export const ModelPriceComparisonResponseSchema = z
197
+ .strictObject({
198
+ prices: z.array(ModelPriceComparisonSchema),
199
+ effective_range: z.strictObject({
200
+ from: z.string(),
201
+ to: z.string(),
202
+ }),
203
+ list_price_date: z.string().optional(),
204
+ })
205
+ .meta({ id: 'ModelPriceComparisonResponse' });
206
+
207
+ export const CostAnalyticsResponseSchema = z
208
+ .strictObject({
209
+ summary: CostSummarySchema,
210
+ by_dimension: z.array(CostByDimensionSchema),
211
+ time_series: z.array(CostTimeSeriesPointSchema),
212
+ pricing: z.array(ModelPricingSchema),
213
+ query_range: z.strictObject({
214
+ from: z.string(),
215
+ to: z.string(),
216
+ }),
217
+ cached: z.boolean(),
218
+ })
219
+ .meta({ id: 'CostAnalyticsResponse' });
220
+
221
+ export const CostRunPriceResponseSchema = z
222
+ .strictObject({
223
+ summary: CostSummarySchema,
224
+ by_model: z.array(CostByDimensionSchema),
225
+ pricing: z.array(ModelPricingSchema).optional(),
226
+ query_range: z
227
+ .strictObject({
228
+ from: z.string(),
229
+ to: z.string(),
230
+ })
231
+ .optional(),
232
+ pricing_source: z.enum(['list', 'historical']),
233
+ matched_events: z.number(),
234
+ })
235
+ .meta({ id: 'CostRunPriceResponse' });
@@ -0,0 +1,127 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import type { z } from 'zod';
3
+ import type {
4
+ CreateDashboardPayload,
5
+ Dashboard,
6
+ DashboardDataSource,
7
+ DashboardItem,
8
+ DashboardStatus,
9
+ DashboardVersion,
10
+ UpdateDashboardPayload,
11
+ } from '../data-platform.js';
12
+ import type {
13
+ CreateDashboardPayloadSchema,
14
+ DashboardDataSourceSchema,
15
+ DashboardItemSchema,
16
+ DashboardSchema,
17
+ DashboardStatusSchema,
18
+ DashboardVersionSchema,
19
+ UpdateDashboardPayloadSchema,
20
+ } from './dashboard.js';
21
+ import { ApiSchemaComponents, validateApiRequest, validateApiResponse } from './registry.js';
22
+
23
+ type Equals<A, B> = (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2 ? true : false;
24
+ function assertType<T extends true>(_ok: T): void {}
25
+
26
+ describe('the dashboard public types', () => {
27
+ it('derive from the runtime schemas instead of restating them', () => {
28
+ assertType<Equals<DashboardStatus, z.infer<typeof DashboardStatusSchema>>>(true);
29
+ assertType<Equals<DashboardDataSource, z.infer<typeof DashboardDataSourceSchema>>>(true);
30
+ assertType<Equals<DashboardItem, z.infer<typeof DashboardItemSchema>>>(true);
31
+ assertType<Equals<Dashboard, z.infer<typeof DashboardSchema>>>(true);
32
+ assertType<Equals<DashboardVersion, z.infer<typeof DashboardVersionSchema>>>(true);
33
+ assertType<Equals<CreateDashboardPayload, z.infer<typeof CreateDashboardPayloadSchema>>>(true);
34
+ assertType<Equals<UpdateDashboardPayload, z.infer<typeof UpdateDashboardPayloadSchema>>>(true);
35
+ });
36
+
37
+ it('keeps the runtime status values available without importing Zod from the root entry', async () => {
38
+ const common = await import('../data-platform.js');
39
+ expect(common.DashboardStatus).toEqual({ ACTIVE: 'active', ARCHIVED: 'archived' });
40
+ });
41
+ });
42
+
43
+ describe('dashboard request validation', () => {
44
+ const create = {
45
+ name: 'Revenue',
46
+ dataSource: { kind: 'data_sql', query: 'select * from revenue' },
47
+ spec: { mark: 'bar' },
48
+ };
49
+
50
+ it('accepts the two documented data-source branches', () => {
51
+ expect(validateApiRequest('CreateDashboardPayload', create)).toMatchObject({ valid: true });
52
+ expect(
53
+ validateApiRequest('CreateDashboardPayload', {
54
+ ...create,
55
+ dataSource: { kind: 'store_es_dsl', dsl: { size: 20 }, result: { type: 'hits' } },
56
+ }),
57
+ ).toMatchObject({ valid: true });
58
+ });
59
+
60
+ it('rejects an unknown data-source discriminator and undeclared payload fields', () => {
61
+ expect(
62
+ validateApiRequest('CreateDashboardPayload', {
63
+ ...create,
64
+ dataSource: { kind: 'http', url: 'https://example.test/data' },
65
+ }).valid,
66
+ ).toBe(false);
67
+ expect(validateApiRequest('CreateDashboardPayload', { ...create, project: 'ignored-before' }).valid).toBe(
68
+ false,
69
+ );
70
+ });
71
+
72
+ it('derives update as the partial create shape plus skip_versioning', () => {
73
+ expect(validateApiRequest('UpdateDashboardPayload', {})).toMatchObject({ valid: true });
74
+ expect(validateApiRequest('UpdateDashboardPayload', { spec: { mark: 'line' } })).toMatchObject({
75
+ valid: true,
76
+ });
77
+ expect(validateApiRequest('UpdateDashboardPayload', { skip_versioning: true })).toMatchObject({ valid: true });
78
+ expect(validateApiRequest('UpdateDashboardPayload', { unknown: true }).valid).toBe(false);
79
+ });
80
+
81
+ it('keeps the two bulk bodies as the free-form string-array map already published', () => {
82
+ expect(validateApiRequest('StringArrayMap', { ids: ['one', 'two'] })).toMatchObject({ valid: true });
83
+ expect(validateApiRequest('StringArrayMap', { labels: ['one'] })).toMatchObject({ valid: true });
84
+ expect(validateApiRequest('StringArrayMap', { ids: 'one' }).valid).toBe(false);
85
+ });
86
+ });
87
+
88
+ describe('dashboard response validation', () => {
89
+ const item = {
90
+ id: 'dashboard-1',
91
+ name: 'Revenue',
92
+ tags: [],
93
+ updated_by: 'user:editor',
94
+ created_by: 'user:author',
95
+ created_at: '2026-08-01T00:00:00.000Z',
96
+ updated_at: '2026-08-02T00:00:00.000Z',
97
+ store_id: 'store-1',
98
+ status: 'active',
99
+ panel_count: 0,
100
+ query_count: 0,
101
+ };
102
+
103
+ it('accepts the mapper-produced listing and full response shapes', () => {
104
+ expect(validateApiResponse('DashboardItem', item)).toMatchObject({ valid: true });
105
+ expect(
106
+ validateApiResponse('Dashboard', {
107
+ ...item,
108
+ query: 'select * from revenue',
109
+ spec: { mark: 'bar' },
110
+ queries: [],
111
+ panels: [],
112
+ layout: { columns: 2, cellWidth: 600, cellHeight: 400, padding: 20 },
113
+ }),
114
+ ).toMatchObject({ valid: true });
115
+ });
116
+
117
+ it('rejects persistence-only fields instead of allowing a document spread to escape', () => {
118
+ expect(validateApiResponse('DashboardItem', { ...item, account: 'account-1' }).valid).toBe(false);
119
+ });
120
+
121
+ it('registers the complete response closure used by the endpoints', () => {
122
+ expect(ApiSchemaComponents).toHaveProperty('DashboardItemArray');
123
+ expect(ApiSchemaComponents).toHaveProperty('DashboardVersionItemArray');
124
+ expect(ApiSchemaComponents).toHaveProperty('DashboardVersion');
125
+ expect(ApiSchemaComponents).toHaveProperty('Dashboard');
126
+ });
127
+ });