@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
@@ -2,50 +2,34 @@
2
2
  * STS Token Request Types
3
3
  * These types define the structure for token requests to the Security Token Service
4
4
  */
5
- import type { SystemRoles } from './project.js';
6
-
7
- export type TokenType = 'apikey' | 'user' | 'project' | 'environment' | 'agent' | 'service_account';
8
- export type SigningAlgorithm = 'ES256' | 'RS256';
9
-
10
- interface BaseTokenRequest {
11
- type: TokenType;
12
- audience?: string;
13
- /** Signing algorithm - defaults to ES256. Use RS256 for Azure AD compatibility. */
14
- algorithm?: SigningAlgorithm;
15
- }
5
+ import type { z } from 'zod';
6
+ import type {
7
+ AgentTokenRequestSchema,
8
+ ApiKeyTokenRequestSchema,
9
+ EnvironmentTokenRequestSchema,
10
+ IssueTokenRequestSchema,
11
+ IssueTokenResponseSchema,
12
+ ProjectTokenRequestSchema,
13
+ ServiceAccountTokenRequestSchema,
14
+ SigningAlgorithmSchema,
15
+ TokenTypeSchema,
16
+ UserTokenRequestSchema,
17
+ } from './api-schemas/sts.js';
18
+
19
+ export type TokenType = z.infer<typeof TokenTypeSchema>;
20
+ export type SigningAlgorithm = z.infer<typeof SigningAlgorithmSchema>;
16
21
 
17
22
  // API key doesn't need account/project as it's determined from the key
18
- export interface ApiKeyTokenRequest extends BaseTokenRequest {
19
- type: 'apikey';
20
- key: string;
21
- }
23
+ export type ApiKeyTokenRequest = z.infer<typeof ApiKeyTokenRequestSchema>;
22
24
 
23
25
  // User token needs optional account/project for scoping
24
- export interface UserTokenRequest extends BaseTokenRequest {
25
- type: 'user';
26
- user_id?: string; // Optional - can be determined from auth token
27
- account_id?: string; // Optional - for scoping to specific account
28
- project_id?: string; // Optional - for scoping to specific project
29
- expires_at?: number;
30
-
31
- on_behalf_of?: string; // Optional - user ID when acting on behalf of another user
32
- }
26
+ export type UserTokenRequest = z.infer<typeof UserTokenRequestSchema>;
33
27
 
34
28
  // Project token requires project_id and account_id
35
- export interface ProjectTokenRequest extends BaseTokenRequest {
36
- type: 'project';
37
- project_id: string;
38
- account_id: string;
39
- }
29
+ export type ProjectTokenRequest = z.infer<typeof ProjectTokenRequestSchema>;
40
30
 
41
31
  // Environment token requires IDs - names fetched from DB
42
- export interface EnvironmentTokenRequest extends BaseTokenRequest {
43
- type: 'environment';
44
- environment_id: string;
45
- environment_name: string; // Still required as environments may not be in DB
46
- project_id: string; // Will fetch name and verify account
47
- account_id: string; // Will fetch name and verify project belongs to it
48
- }
32
+ export type EnvironmentTokenRequest = z.infer<typeof EnvironmentTokenRequestSchema>;
49
33
 
50
34
  /**
51
35
  * Agent token for a service account to act as agent on behalf of a user.
@@ -56,46 +40,15 @@ export interface EnvironmentTokenRequest extends BaseTokenRequest {
56
40
  * - `workload_id_token`: a workload acts on behalf of a user. It implies that a full verification
57
41
  * will be performed based on the workload identity.
58
42
  */
59
- export interface AgentTokenRequest extends BaseTokenRequest {
60
- type: 'agent';
61
- account_id: string;
62
- project_id: string; // Will verify it belongs to account
63
- name?: string;
64
-
65
- /**
66
- * User information.
67
- *
68
- * The value of this field can be either:
69
- * - a signed Vertesia token used to verify the user context
70
- * - a user ID prefixed with `user:` to indicate the user on behalf of whom the agent is
71
- * acting.
72
- *
73
- * @example {JsonWebToken}
74
- * @example user:68100a7c9f3c2b7d11a1b2c3
75
- */
76
- on_behalf_of: string;
77
- }
43
+ export type AgentTokenRequest = z.infer<typeof AgentTokenRequestSchema>;
78
44
 
79
45
  // Service account token
80
- export interface ServiceAccountTokenRequest extends BaseTokenRequest {
81
- type: 'service_account';
82
- account_id: string;
83
- project_id: string; // Will verify it belongs to account
84
- roles?: SystemRoles[]; // Optional - roles for the service account token
85
- name?: string;
86
- email?: string;
87
- }
46
+ export type ServiceAccountTokenRequest = z.infer<typeof ServiceAccountTokenRequestSchema>;
88
47
 
89
48
  /**
90
49
  * @discriminator type
91
50
  */
92
- export type IssueTokenRequest =
93
- | ApiKeyTokenRequest
94
- | UserTokenRequest
95
- | ProjectTokenRequest
96
- | EnvironmentTokenRequest
97
- | AgentTokenRequest
98
- | ServiceAccountTokenRequest;
51
+ export type IssueTokenRequest = z.infer<typeof IssueTokenRequestSchema>;
99
52
 
100
53
  export interface RefreshTokenRequest {
101
54
  token: string;
@@ -137,11 +90,7 @@ export interface TokenResponse {
137
90
  expires_in?: number;
138
91
  }
139
92
 
140
- export interface IssueTokenResponse {
141
- token: string;
142
- token_type: 'Bearer';
143
- expires_in?: number;
144
- }
93
+ export type IssueTokenResponse = z.infer<typeof IssueTokenResponseSchema>;
145
94
 
146
95
  export interface ValidateTokenResponse {
147
96
  valid: boolean;
package/src/tools.ts CHANGED
@@ -1,103 +1,24 @@
1
- import type { MCPToolAnnotations } from './apps.js';
1
+ import type { z } from 'zod';
2
+ import type {
3
+ AggregatedToolSchema,
4
+ ListProjectToolsQuerySchema,
5
+ ToolSourceSchema,
6
+ ToolValidationResultSchema,
7
+ ValidateToolNamesPayloadSchema,
8
+ ValidateToolNamesResponseSchema,
9
+ } from './api-schemas/tools.js';
2
10
 
3
- /**
4
- * Origin of a tool in the unified project-scoped tool registry.
5
- *
6
- * - `builtin`: anything statically registered on the worker — workflow builtins, studio agent tools, and sys skills
7
- * - `app`: tools contributed by an installed app for the project
8
- * - `interaction`: a project interaction exposed via `tag=tool` / `is_tool=true` / `is_skill=true`
9
- *
10
- * Skill semantics (the tool unlocks others when invoked) are NOT part of the source. They are
11
- * identified universally by the `learn_` prefix in the tool name. This matches how the runtime
12
- * registry stores them and avoids splitting one logical origin into two sources.
13
- */
14
- export type ToolSource = 'builtin' | 'app' | 'interaction';
11
+ // The unified project-scoped tool registry, inferred from `./api-schemas/tools.js`. The
12
+ // documentation for each member lives on the schema, which is what the OpenAPI document publishes.
15
13
 
16
- /**
17
- * A single tool entry in the unified registry, regardless of where it came from.
18
- * Returned by `GET /tools` and the resolution map of `POST /tools/validate`.
19
- */
20
- export interface AggregatedTool {
21
- /** Name as referenced from `agent_runner_options.tool_names`. For interaction skills this is `learn_<endpoint>`. */
22
- name: string;
23
- source: ToolSource;
24
- description?: string;
25
- title?: string;
26
- /** Whether the tool is part of the default toolkit when no explicit `tool_names` is provided. */
27
- is_default?: boolean;
28
- annotations?: MCPToolAnnotations;
29
- /** For skills (`learn_*`): tool names this skill unlocks when invoked. */
30
- unlocked_tools?: string[];
31
- /** Present when `source === 'app'`: the app installation that provides this tool. */
32
- app_install_id?: string;
33
- /** Present when `source === 'app'`: the app's manifest name (used for `principal.apps` filtering). */
34
- app_name?: string;
35
- /** Present when `source === 'interaction'`: the interaction document id. */
36
- interaction_id?: string;
37
- /**
38
- * Present when `source === 'interaction'`: true if the interaction has
39
- * `agent_runner_options.is_agent === true`. Lets UI consumers distinguish
40
- * sub-agents (autonomous, run-to-completion) from regular interaction tools.
41
- */
42
- is_agent?: boolean;
43
- }
14
+ export type ToolSource = z.infer<typeof ToolSourceSchema>;
44
15
 
45
- /**
46
- * Optional filters for `GET /tools`.
47
- *
48
- * The resolution is `(sources ?? ALL) − exclude`:
49
- * - `sources` alone: include only the listed sources
50
- * - `exclude` alone: include all sources except the listed ones
51
- * - Both: start from `sources`, then remove `exclude`
52
- * - Neither: include all sources
53
- *
54
- * Sources that are filtered out are not fetched, so passing `exclude=['app']` skips
55
- * the app round-trips entirely.
56
- */
57
- export interface ListProjectToolsQuery {
58
- /** Include only these sources. */
59
- sources?: ToolSource[];
60
- /** Drop these sources from the result (and skip their fetch). Applied after `sources`. */
61
- exclude?: ToolSource[];
62
- }
16
+ export type AggregatedTool = z.infer<typeof AggregatedToolSchema>;
63
17
 
64
- /**
65
- * Per-name resolution result for `POST /tools/validate`.
66
- */
67
- export interface ToolValidationResult {
68
- /** The name the caller asked about. */
69
- name: string;
70
- /** True if the name resolves to exactly one tool in the project's unified registry. */
71
- valid: boolean;
72
- /** When `valid`: which source the tool came from. */
73
- source?: ToolSource;
74
- /** When `valid` and `source === 'app'`: the app installation that provides the tool. */
75
- app_install_id?: string;
76
- /** When `valid` and `source === 'app'`: the app's manifest name. */
77
- app_name?: string;
78
- /** When `!valid` and a close match exists: the suggested replacement name (Levenshtein-based). */
79
- suggestion?: string;
80
- /**
81
- * Populated when a name appears in more than one source. Validation does not fail on this,
82
- * but exposes the ambiguity so callers can surface a warning (last-write-wins resolution applies).
83
- */
84
- collisions?: Array<{ source: ToolSource; app_install_id?: string }>;
85
- }
18
+ export type ListProjectToolsQuery = z.infer<typeof ListProjectToolsQuerySchema>;
86
19
 
87
- /**
88
- * Request payload for `POST /tools/validate`.
89
- */
90
- export interface ValidateToolNamesPayload {
91
- /** Bare tool names as they appear in `agent_runner_options.tool_names`. `+`/`-` prefixes are stripped before lookup. */
92
- names: string[];
93
- }
20
+ export type ToolValidationResult = z.infer<typeof ToolValidationResultSchema>;
94
21
 
95
- /**
96
- * Response from `POST /tools/validate`.
97
- */
98
- export interface ValidateToolNamesResponse {
99
- /** One entry per requested name, in the same order. */
100
- results: ToolValidationResult[];
101
- /** Convenience count of `results.filter(r => !r.valid).length`. */
102
- invalid_count: number;
103
- }
22
+ export type ValidateToolNamesPayload = z.infer<typeof ValidateToolNamesPayloadSchema>;
23
+
24
+ export type ValidateToolNamesResponse = z.infer<typeof ValidateToolNamesResponseSchema>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Transient-token values that exist at runtime.
3
+ *
4
+ * Split out of `transient-tokens.ts` so `api-schemas/invites.ts` can read the enum without importing
5
+ * a module that derives its types from those very schemas. Re-exported from `transient-tokens.ts`.
6
+ */
7
+
8
+ export enum TransientTokenType {
9
+ userInvite = 'user-invite',
10
+ migration = 'migration',
11
+ }
@@ -1,10 +1,12 @@
1
- import type { ProjectRef, SystemRoles } from './project.js';
2
- import type { AccountRef, UserRef } from './user.js';
1
+ import type { z } from 'zod';
2
+ import type { UserInviteTokenDataSchema, UserInviteTokenFromSchema } from './api-schemas/invites.js';
3
+ import type { TransientTokenType } from './transient-tokens-values.js';
3
4
 
4
- export enum TransientTokenType {
5
- userInvite = 'user-invite',
6
- migration = 'migration',
7
- }
5
+ /**
6
+ * `TransientTokenType` lives in `./transient-tokens-values.js` so the API schemas can read it
7
+ * without importing this module back. Re-exported here so import paths keep working.
8
+ */
9
+ export * from './transient-tokens-values.js';
8
10
 
9
11
  export interface TransientToken<T> {
10
12
  id: string;
@@ -18,10 +20,11 @@ export interface TransientToken<T> {
18
20
 
19
21
  export interface CreateOrUpdateTransientTokenPayload<T> extends Partial<TransientToken<T>> {}
20
22
 
21
- export interface UserInviteTokenData {
22
- email: string;
23
- role: SystemRoles;
24
- account: AccountRef;
25
- project?: ProjectRef;
26
- invited_by: UserRef;
27
- }
23
+ /**
24
+ * The invite payload as it crosses the wire, inferred from `./api-schemas/invites.js`. Every
25
+ * reference is populated by the handlers before the response is built.
26
+ */
27
+ export type UserInviteTokenData = z.infer<typeof UserInviteTokenDataSchema>;
28
+
29
+ /** One pending invite, as the three invite listings publish it. */
30
+ export type UserInviteToken = UserInviteTokenFromSchema;
package/src/user.ts CHANGED
@@ -1,51 +1,49 @@
1
+ import type { z } from 'zod';
2
+ import type { AccountBillingSchema, AccountSchema, UpdateAccountPayloadSchema } from './api-schemas/account.js';
3
+ import type {
4
+ AccountProjectsResponseSchema,
5
+ AccountRefSchema,
6
+ InviteAcceptanceResponseSchema,
7
+ InviteDeclineResponseSchema,
8
+ InviteUserRequestPayloadSchema,
9
+ InviteUserResponsePayloadSchema,
10
+ OnboardingProgressSchema,
11
+ } from './api-schemas/invites.js';
12
+ import type {
13
+ SignupDataSchema,
14
+ SignupPayloadSchema,
15
+ UpdateUserPayloadSchema,
16
+ UserRefSchema,
17
+ UserSchema,
18
+ } from './api-schemas/user.js';
1
19
  import type { ApiKey } from './apikey.js';
2
- import type { ProjectRef, SystemRoles } from './project.js';
20
+
21
+ export * from './account-values.js';
3
22
 
4
23
  export interface UserWithAccounts extends User {
5
24
  accounts: AccountRef[];
6
25
  }
7
26
 
8
- export interface User {
9
- id: string;
10
- externalId?: string;
11
- email: string;
12
- name: string;
13
- username?: string;
14
- picture?: string;
15
- language?: string;
16
- phone?: string;
17
- sign_in_provider?: string;
18
- last_selected_account?: string;
19
- source?: 'firebase' | 'scim';
20
- updated_by?: string;
21
- /** Custom properties for dynamic permission matching */
22
- properties?: Record<string, unknown>;
23
- /** BLP clearance level — determines max document sensitivity the user can access */
24
- clearance?: number;
25
- /** Compartments the user belongs to — restricts access to documents in matching compartments */
26
- compartments?: string[];
27
- /** Free-form user metadata - restricted to internal use */
28
- annotations?: string[];
29
- }
30
-
31
- export interface UpdateUserPayload {
32
- name?: string;
33
- username?: string;
34
- picture?: string;
35
- language?: string;
36
- phone?: string;
37
- last_selected_account?: string;
38
- properties?: Record<string, unknown>;
39
- clearance?: number;
40
- compartments?: string[];
41
- }
27
+ /**
28
+ * The user and its update payload as they cross the wire.
29
+ *
30
+ * Derived from the schemas in `./api-schemas/user.js`, which are what OpenAPI publishes and AJV
31
+ * compiles. The descriptions live there too — Zod reads `.meta()`, not TSDoc.
32
+ *
33
+ * NOTE for server code: this is the RESPONSE shape, not the stored document. `IUser` in
34
+ * `@dglabs/server-common` describes what Mongo actually holds (optional email, ObjectId
35
+ * references, Date timestamps) and is deliberately independent of this type.
36
+ */
37
+ export type User = z.infer<typeof UserSchema>;
38
+ export type UpdateUserPayload = z.infer<typeof UpdateUserPayloadSchema>;
42
39
 
43
- export interface UserRef {
44
- id: string;
45
- name: string;
46
- email: string;
47
- picture?: string;
48
- }
40
+ /**
41
+ * The compact user shape embedded in other resources' responses, derived from `UserRefSchema`.
42
+ *
43
+ * `UserRefPopulate` is the Mongoose projection that produces it, and the two are meant to stay in
44
+ * step: a field added here without adding it there yields a response missing the field.
45
+ */
46
+ export type UserRef = z.infer<typeof UserRefSchema>;
49
47
 
50
48
  export const UserRefPopulate = 'id name email picture';
51
49
 
@@ -63,165 +61,42 @@ export const EARLY_ACCESS_ANNOTATION = 'early-access';
63
61
  */
64
62
  export const RESTRICTED_ENVIRONMENT_ERROR_CODE = 'restricted_environment';
65
63
 
66
- export enum Datacenters {
67
- aws = 'aws',
68
- gcp = 'gcp',
69
- azure = 'azure',
70
- }
71
-
72
- export enum BillingMethod {
73
- stripe = 'stripe',
74
- invoice = 'invoice',
75
- }
76
-
77
- export enum AccountType {
78
- vertesia = 'vertesia',
79
- partner = 'partner',
80
- free = 'free',
81
- customer = 'customer',
82
- prospect = 'prospect',
83
- unknown = 'unknown',
84
- }
85
-
86
- export interface AccountBilling {
87
- method: BillingMethod;
88
- stripe_customer_id?: string;
89
- }
90
-
91
64
  /**
92
- * Quota/rate-limit tier assigned to an account. Code-defined tiers live in `@dglabs/quota`
93
- * (`QUOTA_TIERS`); these names must match its keys.
94
- * - `standard` — protective baseline limits (the default for most accounts).
95
- * - `enterprise` — high limits for contracted customers / internal / partners.
65
+ * The account as it crosses the wire.
96
66
  *
97
- * An account with no explicit `quota_tier` derives its tier from its `account_type`.
98
- */
99
- export enum QuotaTier {
100
- standard = 'standard',
101
- enterprise = 'enterprise',
102
- }
103
-
104
- /**
105
- * Default tier for an account that has no explicit `quota_tier`, derived from its `account_type`:
106
- * contracted customers and internal Vertesia accounts get `enterprise`; everyone else (partner,
107
- * free, prospect, unknown) gets the protective `standard` baseline.
67
+ * Derived from `AccountSchema`, not written alongside it: the schema is what OpenAPI publishes and
68
+ * what AJV compiles, so a hand-written twin could only ever drift from the contract actually being
69
+ * enforced. `import type` erases at compile time, so nothing here pulls zod into a browser or SDK
70
+ * bundle — runtime consumers reach the schemas through the `@vertesia/common/api-schemas` entry
71
+ * point instead.
108
72
  */
109
- export function quotaTierForAccountType(accountType: AccountType | undefined | null): QuotaTier {
110
- switch (accountType) {
111
- case AccountType.customer:
112
- case AccountType.vertesia:
113
- return QuotaTier.enterprise;
114
- default:
115
- return QuotaTier.standard;
116
- }
117
- }
118
-
119
- export const ACCOUNT_NAMESPACE_MAX_LENGTH = 63;
120
- export const ACCOUNT_APP_ACCESS_MESSAGE_MAX_LENGTH = 1000;
121
- export const RESERVED_ACCOUNT_NAMESPACES = [
122
- 'admin',
123
- 'api',
124
- 'apps',
125
- 'auth',
126
- 'cdn',
127
- 'docs',
128
- 'internal-auth',
129
- 'mcp',
130
- 'status',
131
- 'sts',
132
- 'www',
133
- ] as const;
134
-
135
- const ACCOUNT_NAMESPACE_PATTERN = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
136
-
137
- export function normalizeAccountNamespace(namespace: string): string {
138
- return namespace.trim().toLowerCase();
139
- }
140
-
141
- export function getAccountNamespaceValidationError(namespace: string): string | undefined {
142
- if (!namespace) {
143
- return 'Account namespace is required';
144
- }
145
- if (namespace.length > ACCOUNT_NAMESPACE_MAX_LENGTH || !ACCOUNT_NAMESPACE_PATTERN.test(namespace)) {
146
- return 'Account namespace must be a lowercase DNS label containing only letters, numbers, and hyphens';
147
- }
148
- if ((RESERVED_ACCOUNT_NAMESPACES as readonly string[]).includes(namespace)) {
149
- return `Account namespace '${namespace}' is reserved`;
150
- }
151
- return undefined;
152
- }
73
+ export type Account = z.infer<typeof AccountSchema>;
74
+ export type AccountBilling = z.infer<typeof AccountBillingSchema>;
75
+ export type UpdateAccountPayload = z.infer<typeof UpdateAccountPayloadSchema>;
153
76
 
154
- export interface Account {
155
- id: string;
156
- name: string;
157
-
158
- /** Public DNS-label-compatible identifier used by organization app domains. */
159
- namespace?: string;
160
-
161
- /**
162
- * Plain-text instructions shown when a signed-in user has no application access.
163
- * @maxLength 1000
164
- */
165
- app_access_message?: string;
166
-
167
- email_domains: string[];
168
-
169
- onboarding: {
170
- completed: boolean;
171
- completed_at: Date;
172
- };
173
-
174
- datacenter: string;
175
-
176
- account_type: AccountType;
177
-
178
- billing: AccountBilling;
179
-
180
- /** Quota/rate-limit tier. Unset → the deployment default tier (env `QUOTA_BASE_TIER`). */
181
- quota_tier?: QuotaTier;
182
-
183
- created_by: string;
184
- updated_by: string;
185
- created_at: string;
186
- updated_at: string;
187
- }
188
-
189
- export interface UpdateAccountPayload {
190
- name?: string;
191
- /** @maxLength 1000 */
192
- app_access_message?: string;
193
- email_domains?: string[];
194
- billing?: AccountBilling;
195
- quota_tier?: QuotaTier;
196
- }
197
-
198
- export interface AccountRef {
199
- id: string;
200
- name: string;
201
- }
77
+ // The compact account reference, derived from the schema in `./api-schemas/invites.js`. It was
78
+ // hand-written for the same reason `ProjectRef` was — `ExecutionRun` and `UserInviteTokenData` still
79
+ // reach it through types the scanner derives — and is an alias now for the same reason: the scanner
80
+ // short-circuits such an alias to the published component rather than failing to expand it.
81
+ export type AccountRef = z.infer<typeof AccountRefSchema>;
202
82
 
203
83
  export const AccountRefPopulate = 'id name';
204
84
 
205
- export interface InviteUserRequestPayload {
206
- email: string;
207
- role: SystemRoles;
208
- }
209
-
210
- export interface InviteUserResponsePayload {
211
- action: 'invited' | 'added';
212
- }
213
-
214
- export interface InviteAcceptanceResponse {
215
- status: 'added';
216
- }
217
-
218
- export interface InviteDeclineResponse {
219
- status: 'deleted';
220
- }
221
-
222
- export interface AccountProjectsResponse {
223
- data: ProjectRef[];
224
- }
85
+ /**
86
+ * The account invite, onboarding and project-listing wire types, derived from
87
+ * `./api-schemas/invites.js`.
88
+ *
89
+ * `AccountRef` above is the one member of this closure that stays hand-written, and only because
90
+ * `Interaction` and `PromptTemplate` still reference it through the TypeScript scanner, which cannot
91
+ * expand a `z.infer<>`. Everything here is reachable only from converted slots, so nothing derived
92
+ * reads it and the alias is safe. `AccountRefSchema` is still the runtime source of truth, and the
93
+ * `Equals` assertion in `invites.contract.test.ts` is what holds the interface to it.
94
+ */
95
+ export type InviteUserRequestPayload = z.infer<typeof InviteUserRequestPayloadSchema>;
96
+ export type InviteUserResponsePayload = z.infer<typeof InviteUserResponsePayloadSchema>;
97
+ export type InviteAcceptanceResponse = z.infer<typeof InviteAcceptanceResponseSchema>;
98
+ export type InviteDeclineResponse = z.infer<typeof InviteDeclineResponseSchema>;
99
+ export type AccountProjectsResponse = z.infer<typeof AccountProjectsResponseSchema>;
225
100
 
226
101
  type UserOrApiKey<T extends User | ApiKey> = T extends User ? User : ApiKey;
227
102
  type SessionType<T extends User | ApiKey> = T extends User ? 'user' : 'apikey';
@@ -238,29 +113,14 @@ export interface SessionInfo<T extends User | ApiKey> {
238
113
  export interface UserSessionInfo extends SessionInfo<User> {}
239
114
  export interface ApiKeySessionInfo extends SessionInfo<ApiKey> {}
240
115
 
241
- export interface OnboardingProgress {
242
- interactions: boolean;
243
- prompts: boolean;
244
- environments: boolean;
245
- default_environment_defined: boolean;
246
- }
116
+ export type OnboardingProgress = z.infer<typeof OnboardingProgressSchema>;
247
117
 
248
118
  /**
249
- * Data collected at signup
250
- * used for onboarding and segments
251
- **/
252
- export interface SignupData {
253
- accountType: string;
254
- companyName?: string;
255
- companySize?: number;
256
- companyWebsite?: string;
257
- maturity?: string;
258
- }
119
+ * Data collected at signup, used for onboarding and segments.
120
+ */
121
+ export type SignupData = z.infer<typeof SignupDataSchema>;
259
122
 
260
123
  /**
261
- * Signup Payload: used to create a new user
124
+ * The `POST /auth/signup` request body.
262
125
  */
263
- export interface SignupPayload {
264
- firebaseToken: string;
265
- signupData: SignupData;
266
- }
126
+ export type SignupPayload = z.infer<typeof SignupPayloadSchema>;
package/src/versions.ts CHANGED
@@ -1,5 +1,29 @@
1
+ /**
2
+ * The header a caller names an API version in, as `YYYYMMDD` — see {@link ApiVersions}.
3
+ *
4
+ * Declared here rather than in the client, because both ends of the negotiation need it: the
5
+ * servers register it with `withVersionHeader` and read it when deciding how strictly to hold a
6
+ * request to its published schema, and `@vertesia/client` sets it on every call. It kept the
7
+ * spelling it has always had on the wire.
8
+ */
9
+ export const VERSION_HEADER = 'x-api-version';
10
+
1
11
  export enum ApiVersions {
2
12
  COMPLETION_RESULT_V1 = 20250925,
3
13
  DOWNLOAD_URL_NO_MIME_TYPE_V1 = 20260210,
4
14
  MEDIA_BLOB_STORAGE_V1 = 20260319,
15
+ /**
16
+ * Request bodies and parameters are rejected when they do not match the published component.
17
+ *
18
+ * The endpoints did not change shape at this date — the schemas they had always published
19
+ * started being enforced. A body carrying an undeclared property against a closed component,
20
+ * or a query parameter of the wrong type, used to be accepted and silently ignored; from here
21
+ * it is a 400.
22
+ *
23
+ * Unlike the milestones above, this one is not about a route: it gates the enforcement policy
24
+ * itself, so a caller pinned below it gets the old lenient behaviour on EVERY endpoint while
25
+ * the mismatch is logged. Sending nothing means the current API, so the strict reading is what
26
+ * a new caller gets by default and leniency has to be asked for.
27
+ */
28
+ REQUEST_CONTRACT_ENFORCEMENT_V1 = 20260803,
5
29
  }