@vertesia/common 1.5.0-dev.20260722.120446Z → 1.5.0-dev.20260804.124748Z

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 (522) hide show
  1. package/lib/access-control-values.d.ts +98 -0
  2. package/lib/access-control-values.d.ts.map +1 -0
  3. package/lib/access-control-values.js +101 -0
  4. package/lib/access-control-values.js.map +1 -0
  5. package/lib/access-control.d.ts +22 -119
  6. package/lib/access-control.d.ts.map +1 -1
  7. package/lib/access-control.js +6 -78
  8. package/lib/access-control.js.map +1 -1
  9. package/lib/account-values.d.ts +53 -0
  10. package/lib/account-values.d.ts.map +1 -0
  11. package/lib/account-values.js +91 -0
  12. package/lib/account-values.js.map +1 -0
  13. package/lib/analytics.d.ts +12 -38
  14. package/lib/analytics.d.ts.map +1 -1
  15. package/lib/api-schemas/access-control.d.ts +215 -0
  16. package/lib/api-schemas/access-control.d.ts.map +1 -0
  17. package/lib/api-schemas/access-control.js +165 -0
  18. package/lib/api-schemas/access-control.js.map +1 -0
  19. package/lib/api-schemas/account.d.ts +101 -0
  20. package/lib/api-schemas/account.d.ts.map +1 -0
  21. package/lib/api-schemas/account.js +136 -0
  22. package/lib/api-schemas/account.js.map +1 -0
  23. package/lib/api-schemas/adapter.d.ts +80 -0
  24. package/lib/api-schemas/adapter.d.ts.map +1 -0
  25. package/lib/api-schemas/adapter.js +726 -0
  26. package/lib/api-schemas/adapter.js.map +1 -0
  27. package/lib/api-schemas/agent-runs.d.ts +3781 -0
  28. package/lib/api-schemas/agent-runs.d.ts.map +1 -0
  29. package/lib/api-schemas/agent-runs.js +991 -0
  30. package/lib/api-schemas/agent-runs.js.map +1 -0
  31. package/lib/api-schemas/analytics.d.ts +86 -0
  32. package/lib/api-schemas/analytics.d.ts.map +1 -0
  33. package/lib/api-schemas/analytics.js +58 -0
  34. package/lib/api-schemas/analytics.js.map +1 -0
  35. package/lib/api-schemas/apikey.d.ts +231 -0
  36. package/lib/api-schemas/apikey.d.ts.map +1 -0
  37. package/lib/api-schemas/apikey.js +172 -0
  38. package/lib/api-schemas/apikey.js.map +1 -0
  39. package/lib/api-schemas/app-lifecycle.d.ts +1114 -0
  40. package/lib/api-schemas/app-lifecycle.d.ts.map +1 -0
  41. package/lib/api-schemas/app-lifecycle.js +750 -0
  42. package/lib/api-schemas/app-lifecycle.js.map +1 -0
  43. package/lib/api-schemas/app-runtime.d.ts +9056 -0
  44. package/lib/api-schemas/app-runtime.d.ts.map +1 -0
  45. package/lib/api-schemas/app-runtime.js +782 -0
  46. package/lib/api-schemas/app-runtime.js.map +1 -0
  47. package/lib/api-schemas/apps.d.ts +247 -0
  48. package/lib/api-schemas/apps.d.ts.map +1 -0
  49. package/lib/api-schemas/apps.js +366 -0
  50. package/lib/api-schemas/apps.js.map +1 -0
  51. package/lib/api-schemas/audit-trail.d.ts +465 -0
  52. package/lib/api-schemas/audit-trail.d.ts.map +1 -0
  53. package/lib/api-schemas/audit-trail.js +218 -0
  54. package/lib/api-schemas/audit-trail.js.map +1 -0
  55. package/lib/api-schemas/bulk-operation.d.ts +104 -0
  56. package/lib/api-schemas/bulk-operation.d.ts.map +1 -0
  57. package/lib/api-schemas/bulk-operation.js +66 -0
  58. package/lib/api-schemas/bulk-operation.js.map +1 -0
  59. package/lib/api-schemas/commands.d.ts +50 -0
  60. package/lib/api-schemas/commands.d.ts.map +1 -0
  61. package/lib/api-schemas/commands.js +58 -0
  62. package/lib/api-schemas/commands.js.map +1 -0
  63. package/lib/api-schemas/content.d.ts +3561 -0
  64. package/lib/api-schemas/content.d.ts.map +1 -0
  65. package/lib/api-schemas/content.js +842 -0
  66. package/lib/api-schemas/content.js.map +1 -0
  67. package/lib/api-schemas/cost-analytics.d.ts +300 -0
  68. package/lib/api-schemas/cost-analytics.d.ts.map +1 -0
  69. package/lib/api-schemas/cost-analytics.js +218 -0
  70. package/lib/api-schemas/cost-analytics.js.map +1 -0
  71. package/lib/api-schemas/dashboard.d.ts +408 -0
  72. package/lib/api-schemas/dashboard.d.ts.map +1 -0
  73. package/lib/api-schemas/dashboard.js +311 -0
  74. package/lib/api-schemas/dashboard.js.map +1 -0
  75. package/lib/api-schemas/data-store.d.ts +1650 -0
  76. package/lib/api-schemas/data-store.d.ts.map +1 -0
  77. package/lib/api-schemas/data-store.js +504 -0
  78. package/lib/api-schemas/data-store.js.map +1 -0
  79. package/lib/api-schemas/document-processing.d.ts +1501 -0
  80. package/lib/api-schemas/document-processing.d.ts.map +1 -0
  81. package/lib/api-schemas/document-processing.js +312 -0
  82. package/lib/api-schemas/document-processing.js.map +1 -0
  83. package/lib/api-schemas/embeddings.d.ts +184 -0
  84. package/lib/api-schemas/embeddings.d.ts.map +1 -0
  85. package/lib/api-schemas/embeddings.js +102 -0
  86. package/lib/api-schemas/embeddings.js.map +1 -0
  87. package/lib/api-schemas/environment.d.ts +412 -0
  88. package/lib/api-schemas/environment.d.ts.map +1 -0
  89. package/lib/api-schemas/environment.js +170 -0
  90. package/lib/api-schemas/environment.js.map +1 -0
  91. package/lib/api-schemas/events.d.ts +4880 -0
  92. package/lib/api-schemas/events.d.ts.map +1 -0
  93. package/lib/api-schemas/events.js +832 -0
  94. package/lib/api-schemas/events.js.map +1 -0
  95. package/lib/api-schemas/files.d.ts +107 -0
  96. package/lib/api-schemas/files.d.ts.map +1 -0
  97. package/lib/api-schemas/files.js +137 -0
  98. package/lib/api-schemas/files.js.map +1 -0
  99. package/lib/api-schemas/group.d.ts +122 -0
  100. package/lib/api-schemas/group.d.ts.map +1 -0
  101. package/lib/api-schemas/group.js +142 -0
  102. package/lib/api-schemas/group.js.map +1 -0
  103. package/lib/api-schemas/index.d.ts +36 -0
  104. package/lib/api-schemas/index.d.ts.map +1 -0
  105. package/lib/api-schemas/index.js +36 -0
  106. package/lib/api-schemas/index.js.map +1 -0
  107. package/lib/api-schemas/indexing.d.ts +144 -0
  108. package/lib/api-schemas/indexing.d.ts.map +1 -0
  109. package/lib/api-schemas/indexing.js +217 -0
  110. package/lib/api-schemas/indexing.js.map +1 -0
  111. package/lib/api-schemas/integrations.d.ts +269 -0
  112. package/lib/api-schemas/integrations.d.ts.map +1 -0
  113. package/lib/api-schemas/integrations.js +335 -0
  114. package/lib/api-schemas/integrations.js.map +1 -0
  115. package/lib/api-schemas/interaction.d.ts +22454 -0
  116. package/lib/api-schemas/interaction.d.ts.map +1 -0
  117. package/lib/api-schemas/interaction.js +2065 -0
  118. package/lib/api-schemas/interaction.js.map +1 -0
  119. package/lib/api-schemas/invites.d.ts +162 -0
  120. package/lib/api-schemas/invites.d.ts.map +1 -0
  121. package/lib/api-schemas/invites.js +106 -0
  122. package/lib/api-schemas/invites.js.map +1 -0
  123. package/lib/api-schemas/oauth-server.d.ts +415 -0
  124. package/lib/api-schemas/oauth-server.d.ts.map +1 -0
  125. package/lib/api-schemas/oauth-server.js +193 -0
  126. package/lib/api-schemas/oauth-server.js.map +1 -0
  127. package/lib/api-schemas/oauth.d.ts +150 -0
  128. package/lib/api-schemas/oauth.d.ts.map +1 -0
  129. package/lib/api-schemas/oauth.js +148 -0
  130. package/lib/api-schemas/oauth.js.map +1 -0
  131. package/lib/api-schemas/parameters.d.ts +64 -0
  132. package/lib/api-schemas/parameters.d.ts.map +1 -0
  133. package/lib/api-schemas/parameters.js +246 -0
  134. package/lib/api-schemas/parameters.js.map +1 -0
  135. package/lib/api-schemas/process.d.ts +499 -0
  136. package/lib/api-schemas/process.d.ts.map +1 -0
  137. package/lib/api-schemas/process.js +817 -0
  138. package/lib/api-schemas/process.js.map +1 -0
  139. package/lib/api-schemas/project-configuration.d.ts +4900 -0
  140. package/lib/api-schemas/project-configuration.d.ts.map +1 -0
  141. package/lib/api-schemas/project-configuration.js +425 -0
  142. package/lib/api-schemas/project-configuration.js.map +1 -0
  143. package/lib/api-schemas/project.d.ts +7247 -0
  144. package/lib/api-schemas/project.d.ts.map +1 -0
  145. package/lib/api-schemas/project.js +185 -0
  146. package/lib/api-schemas/project.js.map +1 -0
  147. package/lib/api-schemas/prompt.d.ts +70 -0
  148. package/lib/api-schemas/prompt.d.ts.map +1 -0
  149. package/lib/api-schemas/prompt.js +77 -0
  150. package/lib/api-schemas/prompt.js.map +1 -0
  151. package/lib/api-schemas/quota.d.ts +90 -0
  152. package/lib/api-schemas/quota.d.ts.map +1 -0
  153. package/lib/api-schemas/quota.js +95 -0
  154. package/lib/api-schemas/quota.js.map +1 -0
  155. package/lib/api-schemas/registry.d.ts +97458 -0
  156. package/lib/api-schemas/registry.d.ts.map +1 -0
  157. package/lib/api-schemas/registry.js +2586 -0
  158. package/lib/api-schemas/registry.js.map +1 -0
  159. package/lib/api-schemas/schema-primitives.d.ts +5 -0
  160. package/lib/api-schemas/schema-primitives.d.ts.map +1 -0
  161. package/lib/api-schemas/schema-primitives.js +11 -0
  162. package/lib/api-schemas/schema-primitives.js.map +1 -0
  163. package/lib/api-schemas/secrets.d.ts +497 -0
  164. package/lib/api-schemas/secrets.d.ts.map +1 -0
  165. package/lib/api-schemas/secrets.js +298 -0
  166. package/lib/api-schemas/secrets.js.map +1 -0
  167. package/lib/api-schemas/store.d.ts +22140 -0
  168. package/lib/api-schemas/store.d.ts.map +1 -0
  169. package/lib/api-schemas/store.js +557 -0
  170. package/lib/api-schemas/store.js.map +1 -0
  171. package/lib/api-schemas/sts.d.ts +156 -0
  172. package/lib/api-schemas/sts.d.ts.map +1 -0
  173. package/lib/api-schemas/sts.js +96 -0
  174. package/lib/api-schemas/sts.js.map +1 -0
  175. package/lib/api-schemas/task.d.ts +215 -0
  176. package/lib/api-schemas/task.d.ts.map +1 -0
  177. package/lib/api-schemas/task.js +95 -0
  178. package/lib/api-schemas/task.js.map +1 -0
  179. package/lib/api-schemas/tools.d.ts +111 -0
  180. package/lib/api-schemas/tools.d.ts.map +1 -0
  181. package/lib/api-schemas/tools.js +122 -0
  182. package/lib/api-schemas/tools.js.map +1 -0
  183. package/lib/api-schemas/user.d.ts +208 -0
  184. package/lib/api-schemas/user.d.ts.map +1 -0
  185. package/lib/api-schemas/user.js +180 -0
  186. package/lib/api-schemas/user.js.map +1 -0
  187. package/lib/api-schemas/view-execution.d.ts +3163 -0
  188. package/lib/api-schemas/view-execution.d.ts.map +1 -0
  189. package/lib/api-schemas/view-execution.js +172 -0
  190. package/lib/api-schemas/view-execution.js.map +1 -0
  191. package/lib/api-schemas/views.d.ts +5990 -0
  192. package/lib/api-schemas/views.d.ts.map +1 -0
  193. package/lib/api-schemas/views.js +396 -0
  194. package/lib/api-schemas/views.js.map +1 -0
  195. package/lib/api-schemas/workflow-runs.d.ts +2209 -0
  196. package/lib/api-schemas/workflow-runs.d.ts.map +1 -0
  197. package/lib/api-schemas/workflow-runs.js +589 -0
  198. package/lib/api-schemas/workflow-runs.js.map +1 -0
  199. package/lib/apikey-values.d.ts +10 -0
  200. package/lib/apikey-values.d.ts.map +1 -0
  201. package/lib/apikey-values.js +11 -0
  202. package/lib/apikey-values.js.map +1 -0
  203. package/lib/apikey.d.ts +37 -36
  204. package/lib/apikey.d.ts.map +1 -1
  205. package/lib/apikey.js +5 -4
  206. package/lib/apikey.js.map +1 -1
  207. package/lib/apps.d.ts +116 -1121
  208. package/lib/apps.d.ts.map +1 -1
  209. package/lib/apps.js.map +1 -1
  210. package/lib/ask-user.d.ts +8 -1
  211. package/lib/ask-user.d.ts.map +1 -1
  212. package/lib/audit-trail.d.ts +17 -128
  213. package/lib/audit-trail.d.ts.map +1 -1
  214. package/lib/audit-trail.js.map +1 -1
  215. package/lib/browser-credentials.d.ts +11 -106
  216. package/lib/browser-credentials.d.ts.map +1 -1
  217. package/lib/common.d.ts +59 -81
  218. package/lib/common.d.ts.map +1 -1
  219. package/lib/cost-analytics.d.ts +14 -167
  220. package/lib/cost-analytics.d.ts.map +1 -1
  221. package/lib/cost-analytics.js.map +1 -1
  222. package/lib/data-platform.d.ts +122 -786
  223. package/lib/data-platform.d.ts.map +1 -1
  224. package/lib/data-platform.js +41 -61
  225. package/lib/data-platform.js.map +1 -1
  226. package/lib/email.d.ts +5 -17
  227. package/lib/email.d.ts.map +1 -1
  228. package/lib/email.js +0 -3
  229. package/lib/email.js.map +1 -1
  230. package/lib/embeddings.d.ts +14 -56
  231. package/lib/embeddings.d.ts.map +1 -1
  232. package/lib/environment.d.ts +19 -113
  233. package/lib/environment.d.ts.map +1 -1
  234. package/lib/environment.js +3 -0
  235. package/lib/environment.js.map +1 -1
  236. package/lib/facets.d.ts +4 -7
  237. package/lib/facets.d.ts.map +1 -1
  238. package/lib/group.d.ts +33 -39
  239. package/lib/group.d.ts.map +1 -1
  240. package/lib/group.js +0 -1
  241. package/lib/group.js.map +1 -1
  242. package/lib/index.d.ts +7 -0
  243. package/lib/index.d.ts.map +1 -1
  244. package/lib/index.js.map +1 -1
  245. package/lib/integrations.d.ts +20 -108
  246. package/lib/integrations.d.ts.map +1 -1
  247. package/lib/integrations.js.map +1 -1
  248. package/lib/interaction-values.d.ts +11 -0
  249. package/lib/interaction-values.d.ts.map +1 -0
  250. package/lib/interaction-values.js +24 -0
  251. package/lib/interaction-values.js.map +1 -0
  252. package/lib/interaction.d.ts +116 -734
  253. package/lib/interaction.d.ts.map +1 -1
  254. package/lib/interaction.js +56 -12
  255. package/lib/interaction.js.map +1 -1
  256. package/lib/meters.d.ts +11 -7
  257. package/lib/meters.d.ts.map +1 -1
  258. package/lib/meters.js.map +1 -1
  259. package/lib/oauth-server.d.ts +33 -119
  260. package/lib/oauth-server.d.ts.map +1 -1
  261. package/lib/oauth.d.ts +14 -96
  262. package/lib/oauth.d.ts.map +1 -1
  263. package/lib/oauth.js +0 -4
  264. package/lib/oauth.js.map +1 -1
  265. package/lib/payload.d.ts +15 -38
  266. package/lib/payload.d.ts.map +1 -1
  267. package/lib/platform-event.d.ts +49 -462
  268. package/lib/platform-event.d.ts.map +1 -1
  269. package/lib/platform-event.js.map +1 -1
  270. package/lib/principal-context.d.ts +10 -15
  271. package/lib/principal-context.d.ts.map +1 -1
  272. package/lib/project-values.d.ts +24 -0
  273. package/lib/project-values.d.ts.map +1 -0
  274. package/lib/project-values.js +42 -0
  275. package/lib/project-values.js.map +1 -0
  276. package/lib/project.d.ts +55 -503
  277. package/lib/project.d.ts.map +1 -1
  278. package/lib/project.js +6 -76
  279. package/lib/project.js.map +1 -1
  280. package/lib/prompt.d.ts +20 -51
  281. package/lib/prompt.d.ts.map +1 -1
  282. package/lib/prompt.js.map +1 -1
  283. package/lib/query.d.ts +27 -88
  284. package/lib/query.d.ts.map +1 -1
  285. package/lib/rate-limiter.d.ts +19 -70
  286. package/lib/rate-limiter.d.ts.map +1 -1
  287. package/lib/rate-limiter.js +0 -3
  288. package/lib/rate-limiter.js.map +1 -1
  289. package/lib/refs.d.ts +3 -11
  290. package/lib/refs.d.ts.map +1 -1
  291. package/lib/refs.js.map +1 -1
  292. package/lib/roles/types.d.ts +14 -20
  293. package/lib/roles/types.d.ts.map +1 -1
  294. package/lib/roles/types.js +5 -9
  295. package/lib/roles/types.js.map +1 -1
  296. package/lib/runs.d.ts +6 -25
  297. package/lib/runs.d.ts.map +1 -1
  298. package/lib/secrets.d.ts +20 -105
  299. package/lib/secrets.d.ts.map +1 -1
  300. package/lib/store/agent-approval.d.ts +5 -14
  301. package/lib/store/agent-approval.d.ts.map +1 -1
  302. package/lib/store/agent-approval.js.map +1 -1
  303. package/lib/store/agent-run.d.ts +63 -342
  304. package/lib/store/agent-run.d.ts.map +1 -1
  305. package/lib/store/collections.d.ts +11 -63
  306. package/lib/store/collections.d.ts.map +1 -1
  307. package/lib/store/collections.js.map +1 -1
  308. package/lib/store/conversation-state.d.ts +63 -61
  309. package/lib/store/conversation-state.d.ts.map +1 -1
  310. package/lib/store/conversation-state.js +2 -0
  311. package/lib/store/conversation-state.js.map +1 -1
  312. package/lib/store/doc-analyzer.d.ts +9 -32
  313. package/lib/store/doc-analyzer.d.ts.map +1 -1
  314. package/lib/store/dsl-workflow.d.ts +37 -151
  315. package/lib/store/dsl-workflow.d.ts.map +1 -1
  316. package/lib/store/dsl-workflow.js.map +1 -1
  317. package/lib/store/editing-policy-schema.generated.d.ts +3 -0
  318. package/lib/store/editing-policy-schema.generated.d.ts.map +1 -0
  319. package/lib/store/editing-policy-schema.generated.js +28 -0
  320. package/lib/store/editing-policy-schema.generated.js.map +1 -0
  321. package/lib/store/grounded-extraction.d.ts +7 -104
  322. package/lib/store/grounded-extraction.d.ts.map +1 -1
  323. package/lib/store/grounded-extraction.js.map +1 -1
  324. package/lib/store/index.d.ts +2 -0
  325. package/lib/store/index.d.ts.map +1 -1
  326. package/lib/store/index.js +3 -0
  327. package/lib/store/index.js.map +1 -1
  328. package/lib/store/intake-policy-schema.generated.d.ts +3 -0
  329. package/lib/store/intake-policy-schema.generated.d.ts.map +1 -0
  330. package/lib/store/intake-policy-schema.generated.js +1425 -0
  331. package/lib/store/intake-policy-schema.generated.js.map +1 -0
  332. package/lib/store/process-schema.d.ts +80 -0
  333. package/lib/store/process-schema.d.ts.map +1 -1
  334. package/lib/store/process-schema.js +79 -0
  335. package/lib/store/process-schema.js.map +1 -1
  336. package/lib/store/process-validation.d.ts.map +1 -1
  337. package/lib/store/process-validation.js +70 -2
  338. package/lib/store/process-validation.js.map +1 -1
  339. package/lib/store/process.d.ts +36 -125
  340. package/lib/store/process.d.ts.map +1 -1
  341. package/lib/store/process.js.map +1 -1
  342. package/lib/store/rendering.d.ts +9 -64
  343. package/lib/store/rendering.d.ts.map +1 -1
  344. package/lib/store/rendering.js.map +1 -1
  345. package/lib/store/store.d.ts +98 -693
  346. package/lib/store/store.d.ts.map +1 -1
  347. package/lib/store/store.js +4 -443
  348. package/lib/store/store.js.map +1 -1
  349. package/lib/store/task.d.ts +15 -59
  350. package/lib/store/task.d.ts.map +1 -1
  351. package/lib/store/task.js +0 -3
  352. package/lib/store/task.js.map +1 -1
  353. package/lib/store/workflow.d.ts +56 -516
  354. package/lib/store/workflow.d.ts.map +1 -1
  355. package/lib/store/workflow.js +28 -11
  356. package/lib/store/workflow.js.map +1 -1
  357. package/lib/sts-token-types.d.ts +12 -66
  358. package/lib/sts-token-types.d.ts.map +1 -1
  359. package/lib/sts-token-types.js.map +1 -1
  360. package/lib/tools.d.ts +8 -100
  361. package/lib/tools.d.ts.map +1 -1
  362. package/lib/transient-tokens-values.d.ts +11 -0
  363. package/lib/transient-tokens-values.d.ts.map +1 -0
  364. package/lib/transient-tokens-values.js +12 -0
  365. package/lib/transient-tokens-values.js.map +1 -0
  366. package/lib/transient-tokens.d.ts +15 -13
  367. package/lib/transient-tokens.d.ts.map +1 -1
  368. package/lib/transient-tokens.js +5 -5
  369. package/lib/transient-tokens.js.map +1 -1
  370. package/lib/user.d.ts +54 -155
  371. package/lib/user.d.ts.map +1 -1
  372. package/lib/user.js +1 -78
  373. package/lib/user.js.map +1 -1
  374. package/lib/versions.d.ts +24 -1
  375. package/lib/versions.d.ts.map +1 -1
  376. package/lib/versions.js +23 -0
  377. package/lib/versions.js.map +1 -1
  378. package/lib/vertesia-common.js +6 -2
  379. package/lib/vertesia-common.js.map +1 -1
  380. package/lib/views-schema.d.ts +4 -4
  381. package/lib/views.d.ts +56 -312
  382. package/lib/views.d.ts.map +1 -1
  383. package/lib/views.js.map +1 -1
  384. package/package.json +14 -5
  385. package/src/access-control-values.ts +113 -0
  386. package/src/access-control.ts +33 -138
  387. package/src/account-values.ts +95 -0
  388. package/src/agent-resources.test.ts +100 -0
  389. package/src/analytics.ts +18 -42
  390. package/src/api-schemas/access-control.contract.test.ts +209 -0
  391. package/src/api-schemas/access-control.ts +208 -0
  392. package/src/api-schemas/account.contract.test.ts +318 -0
  393. package/src/api-schemas/account.ts +150 -0
  394. package/src/api-schemas/adapter-edge-cases.test.ts +480 -0
  395. package/src/api-schemas/adapter.ts +778 -0
  396. package/src/api-schemas/agent-runs.ts +1081 -0
  397. package/src/api-schemas/analytics.ts +65 -0
  398. package/src/api-schemas/apikey.contract.test.ts +270 -0
  399. package/src/api-schemas/apikey.ts +199 -0
  400. package/src/api-schemas/app-lifecycle.ts +841 -0
  401. package/src/api-schemas/app-runtime.ts +919 -0
  402. package/src/api-schemas/apps.ts +415 -0
  403. package/src/api-schemas/audit-trail.ts +243 -0
  404. package/src/api-schemas/bulk-operation.contract.test.ts +39 -0
  405. package/src/api-schemas/bulk-operation.ts +75 -0
  406. package/src/api-schemas/bundle-isolation.test.ts +80 -0
  407. package/src/api-schemas/commands.contract.test.ts +51 -0
  408. package/src/api-schemas/commands.ts +62 -0
  409. package/src/api-schemas/content.ts +939 -0
  410. package/src/api-schemas/cost-analytics.contract.test.ts +64 -0
  411. package/src/api-schemas/cost-analytics.ts +235 -0
  412. package/src/api-schemas/dashboard.contract.test.ts +127 -0
  413. package/src/api-schemas/dashboard.ts +351 -0
  414. package/src/api-schemas/data-store.contract.test.ts +91 -0
  415. package/src/api-schemas/data-store.ts +571 -0
  416. package/src/api-schemas/document-processing.contract.test.ts +76 -0
  417. package/src/api-schemas/document-processing.ts +344 -0
  418. package/src/api-schemas/embeddings.ts +113 -0
  419. package/src/api-schemas/environment.contract.test.ts +184 -0
  420. package/src/api-schemas/environment.ts +190 -0
  421. package/src/api-schemas/events.ts +921 -0
  422. package/src/api-schemas/files.ts +159 -0
  423. package/src/api-schemas/group.contract.test.ts +205 -0
  424. package/src/api-schemas/group.ts +155 -0
  425. package/src/api-schemas/index.ts +35 -0
  426. package/src/api-schemas/indexing.contract.test.ts +83 -0
  427. package/src/api-schemas/indexing.ts +234 -0
  428. package/src/api-schemas/integrations.ts +369 -0
  429. package/src/api-schemas/interaction.ts +2357 -0
  430. package/src/api-schemas/invites.contract.test.ts +268 -0
  431. package/src/api-schemas/invites.ts +127 -0
  432. package/src/api-schemas/llumiverse.contract.test.ts +108 -0
  433. package/src/api-schemas/oauth-server.ts +219 -0
  434. package/src/api-schemas/oauth.contract.test.ts +118 -0
  435. package/src/api-schemas/oauth.ts +166 -0
  436. package/src/api-schemas/parameters.test.ts +402 -0
  437. package/src/api-schemas/parameters.ts +310 -0
  438. package/src/api-schemas/process.ts +929 -0
  439. package/src/api-schemas/project-configuration.ts +478 -0
  440. package/src/api-schemas/project.contract.test.ts +365 -0
  441. package/src/api-schemas/project.ts +214 -0
  442. package/src/api-schemas/prompt.ts +88 -0
  443. package/src/api-schemas/pruning-limits.test.ts +189 -0
  444. package/src/api-schemas/quota.contract.test.ts +147 -0
  445. package/src/api-schemas/quota.ts +122 -0
  446. package/src/api-schemas/registry-groups.test.ts +91 -0
  447. package/src/api-schemas/registry.ts +3487 -0
  448. package/src/api-schemas/response-pruning.test.ts +260 -0
  449. package/src/api-schemas/schema-primitives.ts +12 -0
  450. package/src/api-schemas/secrets.ts +332 -0
  451. package/src/api-schemas/store.contract.test.ts +450 -0
  452. package/src/api-schemas/store.ts +604 -0
  453. package/src/api-schemas/sts.contract.test.ts +80 -0
  454. package/src/api-schemas/sts.ts +110 -0
  455. package/src/api-schemas/task.ts +104 -0
  456. package/src/api-schemas/tools.ts +140 -0
  457. package/src/api-schemas/user.contract.test.ts +191 -0
  458. package/src/api-schemas/user.ts +204 -0
  459. package/src/api-schemas/view-execution.ts +200 -0
  460. package/src/api-schemas/views.ts +437 -0
  461. package/src/api-schemas/workflow-runs.ts +653 -0
  462. package/src/apikey-values.ts +10 -0
  463. package/src/apikey.ts +49 -40
  464. package/src/apps.ts +249 -1179
  465. package/src/ask-user.ts +9 -1
  466. package/src/audit-trail.ts +45 -137
  467. package/src/browser-credentials.ts +21 -106
  468. package/src/common.ts +67 -78
  469. package/src/cost-analytics.ts +37 -176
  470. package/src/data-platform.ts +205 -776
  471. package/src/email.ts +5 -17
  472. package/src/embeddings.ts +22 -60
  473. package/src/environment.ts +52 -124
  474. package/src/facets.ts +4 -7
  475. package/src/group.ts +38 -42
  476. package/src/index.ts +11 -0
  477. package/src/integrations.ts +39 -129
  478. package/src/interaction-values.ts +23 -0
  479. package/src/interaction.ts +231 -841
  480. package/src/meters.ts +11 -7
  481. package/src/oauth-server.ts +58 -127
  482. package/src/oauth.ts +24 -108
  483. package/src/payload.ts +25 -40
  484. package/src/platform-event.ts +98 -484
  485. package/src/principal-context.ts +11 -15
  486. package/src/project-values.ts +41 -0
  487. package/src/project.ts +116 -588
  488. package/src/prompt.ts +34 -61
  489. package/src/query.ts +34 -93
  490. package/src/rate-limiter.ts +27 -75
  491. package/src/refs.ts +4 -11
  492. package/src/roles/types.ts +20 -20
  493. package/src/runs.ts +11 -24
  494. package/src/secrets.ts +38 -117
  495. package/src/store/agent-approval.ts +9 -14
  496. package/src/store/agent-run.ts +106 -434
  497. package/src/store/collections.ts +21 -63
  498. package/src/store/content-type-editing.test.ts +17 -0
  499. package/src/store/conversation-state.ts +78 -64
  500. package/src/store/doc-analyzer.ts +17 -33
  501. package/src/store/dsl-workflow.ts +62 -158
  502. package/src/store/editing-policy-schema.generated.ts +30 -0
  503. package/src/store/grounded-extraction.ts +13 -104
  504. package/src/store/index.ts +3 -0
  505. package/src/store/intake-policy-schema.generated.ts +1442 -0
  506. package/src/store/process-schema.test.ts +43 -0
  507. package/src/store/process-schema.ts +79 -0
  508. package/src/store/process-validation.test.ts +141 -0
  509. package/src/store/process-validation.ts +82 -2
  510. package/src/store/process.ts +70 -146
  511. package/src/store/rendering.ts +15 -64
  512. package/src/store/store.ts +197 -1182
  513. package/src/store/task.ts +25 -59
  514. package/src/store/workflow.ts +103 -554
  515. package/src/sts-token-types.ts +24 -75
  516. package/src/tools.ts +18 -97
  517. package/src/transient-tokens-values.ts +11 -0
  518. package/src/transient-tokens.ts +16 -13
  519. package/src/user.ts +74 -214
  520. package/src/versions.ts +24 -0
  521. package/src/views-schema.test.ts +9 -1
  522. package/src/views.ts +106 -329
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Access-control values that exist at runtime — the enums and the scope list.
3
+ *
4
+ * Split out of `access-control.ts` and `roles/types.ts` for the same reason `account-values.ts` was
5
+ * split out of `user.ts`: the API schemas need these values (`z.enum(Permission)`,
6
+ * `z.enum(AbacScopes)`) while those two modules need the types the schemas infer. Keeping them where
7
+ * they were would make each import a module that imports it back; here, both sides depend on this
8
+ * module and nothing depends on them.
9
+ *
10
+ * Everything is re-exported from its original module, so existing import paths keep working — this
11
+ * is a move, not a rename.
12
+ */
13
+
14
+ export enum Permission {
15
+ int_read = 'interaction:read',
16
+ int_write = 'interaction:write',
17
+ int_delete = 'interaction:delete',
18
+
19
+ int_execute = 'interaction:execute',
20
+ run_read = 'run:read',
21
+ run_write = 'run:write',
22
+
23
+ env_admin = 'environment:admin',
24
+
25
+ app_manage = 'app:manage',
26
+ project_admin = 'project:admin',
27
+ project_integration_read = 'project:integration_read',
28
+ project_settings_write = 'project:settings_write',
29
+
30
+ api_key_create = 'api_key:create',
31
+ api_key_read = 'api_key:read',
32
+ api_key_secret_read = 'api_key:secret_read',
33
+ api_key_update = 'api_key:update',
34
+ api_key_delete = 'api_key:delete',
35
+
36
+ account_read = 'account:read',
37
+ account_write = 'account:write',
38
+ account_admin = 'account:admin',
39
+ manage_billing = 'account:billing',
40
+ /** View cost and usage analytics */
41
+ billing_read = 'billing:read',
42
+ /** View account and project audit events. */
43
+ audit_read = 'audit:read',
44
+ account_member = 'account:member',
45
+
46
+ content_read = 'content:read',
47
+ content_read_all = 'content:read_all',
48
+ content_write = 'content:write',
49
+ content_delete = 'content:delete',
50
+ content_admin = 'content:admin', //manage schemas
51
+ content_superadmin = 'content:superadmin', // list all objects and collections
52
+
53
+ workflow_read = 'workflow:read',
54
+ workflow_run = 'workflow:run',
55
+ workflow_admin = 'workflow:admin',
56
+ workflow_superadmin = 'workflow:superadmin',
57
+
58
+ agent_run_read = 'agent_run:read',
59
+
60
+ task_read = 'task:read',
61
+ task_manage = 'task:manage',
62
+
63
+ iam_impersonate = 'iam:impersonate',
64
+
65
+ /** whether the user has access to Sutdio App. */
66
+ studio_access = 'studio:access',
67
+ }
68
+
69
+ export enum AccessControlResourceType {
70
+ project = 'project',
71
+ environment = 'environment',
72
+ account = 'account',
73
+ interaction = 'interaction',
74
+ app = 'application',
75
+ /**
76
+ * Dynamic resource matching by property conditions at query time. The role
77
+ * partitions (content, future tasks/etc.) determine which kind of object
78
+ * the conditions match — selected via `AceConditions.scope`.
79
+ *
80
+ * NOTE: the string value remains `'content_set'` for backward compatibility
81
+ * with stored ACEs and JWTs. The wire/DB rename to `'resource_set'` is a
82
+ * separate concern (deferred). Until then, code reads
83
+ * `AccessControlResourceType.resource_set` but the value on the wire stays
84
+ * `'content_set'`.
85
+ */
86
+ resource_set = 'content_set',
87
+ }
88
+
89
+ export enum AccessControlPrincipalType {
90
+ user = 'user',
91
+ group = 'group',
92
+ apikey = 'apikey',
93
+ /** Dynamic principal matching by user/group properties at token time. */
94
+ principal_set = 'principal_set',
95
+ }
96
+
97
+ /**
98
+ * Kind of object a ResourceSet's `resource_props` matches at query time. Used
99
+ * in `AceConditions.scope` (validated at runtime against this list) and as
100
+ * the prefix in JWT `content_security` keys (e.g. `collection:read`).
101
+ *
102
+ * Each scope is owned by exactly one partition. When adding a new partition
103
+ * (e.g. tasks), extend this list with the new scope(s) AND extend `RoleDomain`
104
+ * with the new domain.
105
+ */
106
+ export const AbacScopes = ['document', 'collection', 'task'] as const;
107
+
108
+ /**
109
+ * Logical grouping of roles by the service area that owns them. Declared as a
110
+ * runtime list so the role schemas can publish it as an enum component; the
111
+ * `RoleDomain` type is inferred from it in `roles/types.ts`.
112
+ */
113
+ export const RoleDomains = ['system', 'content', 'tasks'] as const;
@@ -1,93 +1,25 @@
1
+ import type { z } from 'zod';
1
2
  /**
2
3
  * @module access-control
3
4
  * @description
4
5
  * Access control interfaces
5
6
  */
6
7
 
7
- import type { AbacScope } from './roles/types.js';
8
+ import type { AccessControlResourceType } from './access-control-values.js';
9
+ import type {
10
+ ACECreatePayloadSchema,
11
+ ACEUpdatePayloadSchema,
12
+ AccessControlEntrySchema,
13
+ AceConditionsSchema,
14
+ PropertyConditionsSchema,
15
+ PropertyConditionValueSchema,
16
+ } from './api-schemas/access-control.js';
8
17
 
9
- export enum Permission {
10
- int_read = 'interaction:read',
11
- int_write = 'interaction:write',
12
- int_delete = 'interaction:delete',
13
-
14
- int_execute = 'interaction:execute',
15
- run_read = 'run:read',
16
- run_write = 'run:write',
17
-
18
- env_admin = 'environment:admin',
19
-
20
- app_manage = 'app:manage',
21
- project_admin = 'project:admin',
22
- project_integration_read = 'project:integration_read',
23
- project_settings_write = 'project:settings_write',
24
-
25
- api_key_create = 'api_key:create',
26
- api_key_read = 'api_key:read',
27
- api_key_secret_read = 'api_key:secret_read',
28
- api_key_update = 'api_key:update',
29
- api_key_delete = 'api_key:delete',
30
-
31
- account_read = 'account:read',
32
- account_write = 'account:write',
33
- account_admin = 'account:admin',
34
- manage_billing = 'account:billing',
35
- /** View cost and usage analytics */
36
- billing_read = 'billing:read',
37
- /** View account and project audit events. */
38
- audit_read = 'audit:read',
39
- account_member = 'account:member',
40
-
41
- content_read = 'content:read',
42
- content_read_all = 'content:read_all',
43
- content_write = 'content:write',
44
- content_delete = 'content:delete',
45
- content_admin = 'content:admin', //manage schemas
46
- content_superadmin = 'content:superadmin', // list all objects and collections
47
-
48
- workflow_read = 'workflow:read',
49
- workflow_run = 'workflow:run',
50
- workflow_admin = 'workflow:admin',
51
- workflow_superadmin = 'workflow:superadmin',
52
-
53
- agent_run_read = 'agent_run:read',
54
-
55
- task_read = 'task:read',
56
- task_manage = 'task:manage',
57
-
58
- iam_impersonate = 'iam:impersonate',
59
-
60
- /** whether the user has access to Sutdio App. */
61
- studio_access = 'studio:access',
62
- }
63
-
64
- export enum AccessControlResourceType {
65
- project = 'project',
66
- environment = 'environment',
67
- account = 'account',
68
- interaction = 'interaction',
69
- app = 'application',
70
- /**
71
- * Dynamic resource matching by property conditions at query time. The role
72
- * partitions (content, future tasks/etc.) determine which kind of object
73
- * the conditions match — selected via `AceConditions.scope`.
74
- *
75
- * NOTE: the string value remains `'content_set'` for backward compatibility
76
- * with stored ACEs and JWTs. The wire/DB rename to `'resource_set'` is a
77
- * separate concern (deferred). Until then, code reads
78
- * `AccessControlResourceType.resource_set` but the value on the wire stays
79
- * `'content_set'`.
80
- */
81
- resource_set = 'content_set',
82
- }
83
-
84
- export enum AccessControlPrincipalType {
85
- user = 'user',
86
- group = 'group',
87
- apikey = 'apikey',
88
- /** Dynamic principal matching by user/group properties at token time. */
89
- principal_set = 'principal_set',
90
- }
18
+ /**
19
+ * The enums live in `./access-control-values.js` so the API schemas can consume them without
20
+ * importing this module back. Re-exported here so every existing import path keeps working.
21
+ */
22
+ export * from './access-control-values.js';
91
23
 
92
24
  /**
93
25
  * MongoDB query syntax subset for matching properties.
@@ -104,64 +36,27 @@ export enum AccessControlPrincipalType {
104
36
  * { region: { $in: ["us-east", "eu-west"] } } // set membership (literal)
105
37
  * { security_level: { $lte: "$principal.access_level" } } // cross-reference (resolved at token time)
106
38
  */
107
- /** A single condition value. Resolved and evaluated dynamically by token/content security code. */
108
- export type PropertyConditionValue = unknown;
109
-
110
- export type PropertyConditions = Record<string, PropertyConditionValue>;
39
+ export type PropertyConditionValue = z.infer<typeof PropertyConditionValueSchema>;
40
+ export type PropertyConditions = z.infer<typeof PropertyConditionsSchema>;
111
41
 
112
42
  /**
113
- * Conditions attached to an ACE for dynamic matching.
114
- * - `principal_props`: matched against user/group properties at token time (PrincipalSet).
115
- * - `resource_props`: matched against object properties at query time (ResourceSet).
43
+ * The access-control wire types, inferred from the schemas in `./api-schemas/access-control.js` —
44
+ * which are what OpenAPI publishes and AJV compiles. The field descriptions live there too, since
45
+ * Zod reads `.meta()` and not TSDoc.
46
+ *
47
+ * NOTE `conditions` carries ONLY the three fields it declares. The server stores two more there —
48
+ * `principal_name` / `resource_name`, see `IAceConditions` in `@dglabs/server-common` — and copies
49
+ * them into `principal` / `resource` on the way out. They are not part of this contract, and the
50
+ * response mappers drop them rather than serializing the sub-document.
116
51
  */
117
- export interface AceConditions {
118
- /** Property conditions matched against user/group properties at token time (PrincipalSet). */
119
- principal_props?: PropertyConditions;
120
- /** Property conditions matched against object properties at query time (ResourceSet). */
121
- resource_props?: PropertyConditions;
122
- /**
123
- * Kind of object the `resource_props` matches. Used to disambiguate which
124
- * partition's roles apply (e.g. content roles vs task roles) and to form
125
- * the JWT `content_security` key prefix (`{scope}:{verb}`). Absent →
126
- * `'document'` (default; emits bare `read`/`write`/`delete` keys for
127
- * backward compatibility).
128
- */
129
- scope?: AbacScope;
130
- }
131
-
132
- export interface AccessControlEntry {
133
- /**
134
- * Role name. Typed as `string` because role names now span multiple
135
- * partitions: `SystemRoles` enum values for system-domain roles, and bare
136
- * strings for ABAC-domain roles (e.g. `'content:reader'`,
137
- * `'content:writer'`, `'content:manager'`). Mongoose schema validates the
138
- * value against the registered role catalog via `getAllRoleNames()`.
139
- */
140
- role: string;
141
- resource_type: AccessControlResourceType;
142
- resource: string; //objectId
143
- principal_type: AccessControlPrincipalType;
144
- principal: string; //objectId
145
- /** Account scope — required for principal_set/content_set ACEs. */
146
- account?: string;
147
- /** Project scope — narrows a principal_set/content_set ACE to a single project. */
148
- project?: string;
149
- /** Dynamic matching conditions for principal_set/content_set ACEs. */
150
- conditions?: AceConditions;
151
- tags?: string[];
152
- expires_at?: string;
153
- created_at?: string;
154
- updated_at?: string;
155
- id: string;
156
- }
157
-
158
- export interface ACECreatePayload extends Omit<AccessControlEntry, 'created_at' | 'updated_at' | 'id'> {}
159
-
160
- export interface ACEUpdatePayload extends Partial<ACECreatePayload> {}
161
-
162
- // RoleDefinition + SystemRoleDefinition now live in `./roles/types.js` to
163
- // avoid a circular import with `RoleDomain`. They remain re-exported via
164
- // the package's index.ts so consumers see no path change.
52
+ export type AceConditions = z.infer<typeof AceConditionsSchema>;
53
+ export type AccessControlEntry = z.infer<typeof AccessControlEntrySchema>;
54
+ export type ACECreatePayload = z.infer<typeof ACECreatePayloadSchema>;
55
+ export type ACEUpdatePayload = z.infer<typeof ACEUpdatePayloadSchema>;
56
+
57
+ // RoleDefinition + SystemRoleDefinition now live in `./roles/types.js`, and are likewise inferred
58
+ // from `./api-schemas/access-control.js`. They remain re-exported via the package's index.ts so
59
+ // consumers see no path change.
165
60
 
166
61
  // ============================================================================
167
62
  // BLP Security Levels
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Account values that exist at runtime — enums, constants, and the pure helpers over them.
3
+ *
4
+ * Split out of `user.ts` so the dependency direction can run one way. The API schemas need these
5
+ * values (`z.enum(BillingMethod)`, `.max(ACCOUNT_APP_ACCESS_MESSAGE_MAX_LENGTH)`), and `user.ts`
6
+ * needs the types the schemas infer. Both living in `user.ts` would make it import from a module
7
+ * that imports it back; here, `user.ts` and `api-schemas/account.ts` both depend on this module and
8
+ * nothing depends on them.
9
+ *
10
+ * Everything here is re-exported from `user.ts`, so existing import paths keep working — this is a
11
+ * move, not a rename.
12
+ */
13
+
14
+ export enum Datacenters {
15
+ aws = 'aws',
16
+ gcp = 'gcp',
17
+ azure = 'azure',
18
+ }
19
+
20
+ export enum BillingMethod {
21
+ stripe = 'stripe',
22
+ invoice = 'invoice',
23
+ }
24
+
25
+ export enum AccountType {
26
+ vertesia = 'vertesia',
27
+ partner = 'partner',
28
+ free = 'free',
29
+ customer = 'customer',
30
+ prospect = 'prospect',
31
+ unknown = 'unknown',
32
+ }
33
+
34
+ /**
35
+ * Quota/rate-limit tier assigned to an account. Code-defined tiers live in `@dglabs/quota`
36
+ * (`QUOTA_TIERS`); these names must match its keys.
37
+ * - `standard` — protective baseline limits (the default for most accounts).
38
+ * - `enterprise` — high limits for contracted customers / internal / partners.
39
+ *
40
+ * An account with no explicit `quota_tier` derives its tier from its `account_type`.
41
+ */
42
+ export enum QuotaTier {
43
+ standard = 'standard',
44
+ enterprise = 'enterprise',
45
+ }
46
+
47
+ /**
48
+ * Default tier for an account that has no explicit `quota_tier`, derived from its `account_type`:
49
+ * contracted customers and internal Vertesia accounts get `enterprise`; everyone else (partner,
50
+ * free, prospect, unknown) gets the protective `standard` baseline.
51
+ */
52
+ export function quotaTierForAccountType(accountType: AccountType | undefined | null): QuotaTier {
53
+ switch (accountType) {
54
+ case AccountType.customer:
55
+ case AccountType.vertesia:
56
+ return QuotaTier.enterprise;
57
+ default:
58
+ return QuotaTier.standard;
59
+ }
60
+ }
61
+
62
+ export const ACCOUNT_NAMESPACE_MAX_LENGTH = 63;
63
+ export const ACCOUNT_APP_ACCESS_MESSAGE_MAX_LENGTH = 1000;
64
+ export const RESERVED_ACCOUNT_NAMESPACES = [
65
+ 'admin',
66
+ 'api',
67
+ 'apps',
68
+ 'auth',
69
+ 'cdn',
70
+ 'docs',
71
+ 'internal-auth',
72
+ 'mcp',
73
+ 'status',
74
+ 'sts',
75
+ 'www',
76
+ ] as const;
77
+
78
+ const ACCOUNT_NAMESPACE_PATTERN = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
79
+
80
+ export function normalizeAccountNamespace(namespace: string): string {
81
+ return namespace.trim().toLowerCase();
82
+ }
83
+
84
+ export function getAccountNamespaceValidationError(namespace: string): string | undefined {
85
+ if (!namespace) {
86
+ return 'Account namespace is required';
87
+ }
88
+ if (namespace.length > ACCOUNT_NAMESPACE_MAX_LENGTH || !ACCOUNT_NAMESPACE_PATTERN.test(namespace)) {
89
+ return 'Account namespace must be a lowercase DNS label containing only letters, numbers, and hyphens';
90
+ }
91
+ if ((RESERVED_ACCOUNT_NAMESPACES as readonly string[]).includes(namespace)) {
92
+ return `Account namespace '${namespace}' is reserved`;
93
+ }
94
+ return undefined;
95
+ }
@@ -0,0 +1,100 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { type AgentResourceReference, getResourcesFromToolResult, normalizeAgentResources } from './interaction.js';
3
+ import { AgentMessageType, getResourcesFromMessage } from './store/workflow.js';
4
+
5
+ const validRef: AgentResourceReference = {
6
+ type: 'document',
7
+ id: 'doc-1',
8
+ label: 'My Document',
9
+ action: 'created',
10
+ };
11
+
12
+ describe('normalizeAgentResources', () => {
13
+ it('returns an empty array for non-array input', () => {
14
+ expect(normalizeAgentResources(undefined)).toEqual([]);
15
+ expect(normalizeAgentResources(null)).toEqual([]);
16
+ expect(normalizeAgentResources('nope')).toEqual([]);
17
+ expect(normalizeAgentResources({})).toEqual([]);
18
+ });
19
+
20
+ it('keeps a well-formed reference', () => {
21
+ expect(normalizeAgentResources([validRef])).toEqual([validRef]);
22
+ });
23
+
24
+ it('preserves revision_id when present and non-empty', () => {
25
+ const ref = { ...validRef, revision_id: 'rev-9' };
26
+ expect(normalizeAgentResources([ref])).toEqual([ref]);
27
+ });
28
+
29
+ it('drops an empty revision_id rather than keeping it', () => {
30
+ const result = normalizeAgentResources([{ ...validRef, revision_id: '' }]);
31
+ expect(result[0]).not.toHaveProperty('revision_id');
32
+ });
33
+
34
+ it('falls back to the id when the label is missing or empty', () => {
35
+ const result = normalizeAgentResources([{ type: 'collection', id: 'col-1', action: 'updated' }]);
36
+ expect(result).toEqual([{ type: 'collection', id: 'col-1', label: 'col-1', action: 'updated' }]);
37
+ });
38
+
39
+ it('drops entries with an unknown type or action', () => {
40
+ const result = normalizeAgentResources([
41
+ { type: 'artifact', id: 'a', label: 'a', action: 'created' },
42
+ { type: 'document', id: 'd', label: 'd', action: 'viewed' },
43
+ { type: 'document', id: '', label: 'd', action: 'created' },
44
+ validRef,
45
+ ]);
46
+ expect(result).toEqual([validRef]);
47
+ });
48
+
49
+ it('accepts every supported resource type', () => {
50
+ const types = [
51
+ 'document',
52
+ 'collection',
53
+ 'content_type',
54
+ 'interaction',
55
+ 'prompt',
56
+ 'agent',
57
+ 'workflow',
58
+ 'process',
59
+ 'process_run',
60
+ 'interaction_run',
61
+ 'view',
62
+ ] as const;
63
+ const input = types.map((type, i) => ({ type, id: `id-${i}`, label: `L${i}`, action: 'created' }));
64
+ expect(normalizeAgentResources(input)).toHaveLength(types.length);
65
+ });
66
+ });
67
+
68
+ describe('getResourcesFromToolResult', () => {
69
+ it('reads resources from result meta', () => {
70
+ expect(getResourcesFromToolResult({ meta: { resources: [validRef] } })).toEqual([validRef]);
71
+ });
72
+
73
+ it('returns an empty array when meta or resources are absent', () => {
74
+ expect(getResourcesFromToolResult({})).toEqual([]);
75
+ expect(getResourcesFromToolResult({ meta: {} })).toEqual([]);
76
+ });
77
+ });
78
+
79
+ describe('getResourcesFromMessage', () => {
80
+ it('reads resources from message details', () => {
81
+ const msg = {
82
+ timestamp: 0,
83
+ workflow_run_id: 'run-1',
84
+ type: AgentMessageType.THOUGHT,
85
+ message: '',
86
+ details: { event_class: 'activity', resources: [validRef] },
87
+ };
88
+ expect(getResourcesFromMessage(msg)).toEqual([validRef]);
89
+ });
90
+
91
+ it('returns an empty array when details or resources are absent', () => {
92
+ const msg = {
93
+ timestamp: 0,
94
+ workflow_run_id: 'run-1',
95
+ type: AgentMessageType.COMPLETE,
96
+ message: '',
97
+ };
98
+ expect(getResourcesFromMessage(msg)).toEqual([]);
99
+ });
100
+ });
package/src/analytics.ts CHANGED
@@ -1,50 +1,26 @@
1
- export interface AnalyticsAxis {
2
- environment?: string;
3
- project?: string;
4
- interactions?: string[];
5
- models?: string[];
6
- status?: string[];
7
- tags?: string[];
8
- selectedOnly?: boolean;
9
- }
10
-
11
- export interface RunAnalyticsQuery {
12
- /** filters to apply to the query */
13
- filterBy: AnalyticsAxis;
14
-
15
- /** The field to group by */
16
- groupBy?: RunAnalyticsGroupBy;
17
-
18
- /** The start date of the query in EPOCH format */
19
- from?: number;
20
- /** The end date of the query in EPOCH format */
21
- to?: number;
1
+ import type { z } from 'zod';
2
+ import type {
3
+ AnalyticsAxisSchema,
4
+ RunAnalyticsGroupBySchema,
5
+ RunAnalyticsQuerySchema,
6
+ RunAnalyticsResultSchema,
7
+ TimeResolutionSchema,
8
+ } from './api-schemas/analytics.js';
22
9
 
23
- /** The time resolution unit of the analytics query */
24
- resolution?: TimeResolution;
10
+ /**
11
+ * The five run-analytics contract types, inferred from `./api-schemas/analytics.js`. Their
12
+ * documentation moved with them — a doc comment here would be published on TOP of the schema's
13
+ * `description` and the two would drift.
14
+ */
15
+ export type AnalyticsAxis = z.infer<typeof AnalyticsAxisSchema>;
25
16
 
26
- /** The step size for the resolution (e.g., 4 with resolution='hour' means 4-hour intervals). Defaults to 1. */
27
- resolutionStep?: number;
17
+ export type RunAnalyticsQuery = z.infer<typeof RunAnalyticsQuerySchema>;
28
18
 
29
- /** The field to sort by */
30
- virtual?: boolean;
31
- }
32
-
33
- export type RunAnalyticsGroupBy = 'interaction' | 'modelId' | 'project' | 'status' | 'tags' | 'environment';
19
+ export type RunAnalyticsGroupBy = z.infer<typeof RunAnalyticsGroupBySchema>;
34
20
 
35
- export type TimeResolution = 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year';
21
+ export type TimeResolution = z.infer<typeof TimeResolutionSchema>;
36
22
 
37
- export interface RunAnalyticsResult {
38
- date: string;
39
- timestamp: string;
40
- group: string;
41
- count: number;
42
- execution_time: {
43
- avg: number;
44
- min: number;
45
- max: number;
46
- };
47
- }
23
+ export type RunAnalyticsResult = z.infer<typeof RunAnalyticsResultSchema>;
48
24
 
49
25
  /** Entity with status breakdown */
50
26
  export interface EntityStatusCounts {