@vertesia/common 1.6.0-dev.20260923.085325Z → 1.6.0-dev.20261008.064737Z

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 (421) hide show
  1. package/lib/access-control-values.d.ts +2 -2
  2. package/lib/access-control-values.d.ts.map +1 -1
  3. package/lib/access-control-values.js +2 -2
  4. package/lib/access-control-values.js.map +1 -1
  5. package/lib/access-control.d.ts +7 -8
  6. package/lib/access-control.d.ts.map +1 -1
  7. package/lib/access-control.js +5 -0
  8. package/lib/access-control.js.map +1 -1
  9. package/lib/analytics.d.ts +6 -7
  10. package/lib/analytics.d.ts.map +1 -1
  11. package/lib/api-contract/components.generated.json +2553 -1046
  12. package/lib/api-contract/engine.d.ts +65 -0
  13. package/lib/api-contract/engine.d.ts.map +1 -0
  14. package/lib/api-contract/engine.js +569 -0
  15. package/lib/api-contract/engine.js.map +1 -0
  16. package/lib/api-contract/index.d.ts +21 -182
  17. package/lib/api-contract/index.d.ts.map +1 -1
  18. package/lib/api-contract/index.js +13 -551
  19. package/lib/api-contract/index.js.map +1 -1
  20. package/lib/api-schemas/access-control.d.ts +33 -10
  21. package/lib/api-schemas/access-control.d.ts.map +1 -1
  22. package/lib/api-schemas/access-control.js +7 -6
  23. package/lib/api-schemas/access-control.js.map +1 -1
  24. package/lib/api-schemas/account.d.ts +5 -9
  25. package/lib/api-schemas/account.d.ts.map +1 -1
  26. package/lib/api-schemas/account.js +0 -7
  27. package/lib/api-schemas/account.js.map +1 -1
  28. package/lib/api-schemas/agent-budget.d.ts +15 -0
  29. package/lib/api-schemas/agent-budget.d.ts.map +1 -0
  30. package/lib/api-schemas/agent-budget.js +55 -0
  31. package/lib/api-schemas/agent-budget.js.map +1 -0
  32. package/lib/api-schemas/agent-runs.d.ts +1525 -100
  33. package/lib/api-schemas/agent-runs.d.ts.map +1 -1
  34. package/lib/api-schemas/agent-runs.js +60 -28
  35. package/lib/api-schemas/agent-runs.js.map +1 -1
  36. package/lib/api-schemas/apikey.d.ts +11 -10
  37. package/lib/api-schemas/apikey.d.ts.map +1 -1
  38. package/lib/api-schemas/apikey.js.map +1 -1
  39. package/lib/api-schemas/app-lifecycle.d.ts +13 -0
  40. package/lib/api-schemas/app-lifecycle.d.ts.map +1 -1
  41. package/lib/api-schemas/app-lifecycle.js +4 -0
  42. package/lib/api-schemas/app-lifecycle.js.map +1 -1
  43. package/lib/api-schemas/app-runtime.d.ts +1821 -108
  44. package/lib/api-schemas/app-runtime.d.ts.map +1 -1
  45. package/lib/api-schemas/audit-trail.d.ts +275 -0
  46. package/lib/api-schemas/audit-trail.d.ts.map +1 -1
  47. package/lib/api-schemas/audit-trail.js +156 -1
  48. package/lib/api-schemas/audit-trail.js.map +1 -1
  49. package/lib/api-schemas/content.d.ts +665 -30
  50. package/lib/api-schemas/content.d.ts.map +1 -1
  51. package/lib/api-schemas/content.js +47 -0
  52. package/lib/api-schemas/content.js.map +1 -1
  53. package/lib/api-schemas/cost-analytics.d.ts +19 -0
  54. package/lib/api-schemas/cost-analytics.d.ts.map +1 -1
  55. package/lib/api-schemas/cost-analytics.js +38 -2
  56. package/lib/api-schemas/cost-analytics.js.map +1 -1
  57. package/lib/api-schemas/document-processing.d.ts +381 -18
  58. package/lib/api-schemas/document-processing.d.ts.map +1 -1
  59. package/lib/api-schemas/environment.d.ts +0 -5
  60. package/lib/api-schemas/environment.d.ts.map +1 -1
  61. package/lib/api-schemas/environment.js +0 -1
  62. package/lib/api-schemas/environment.js.map +1 -1
  63. package/lib/api-schemas/events.d.ts +1143 -54
  64. package/lib/api-schemas/events.d.ts.map +1 -1
  65. package/lib/api-schemas/group.d.ts +2 -1
  66. package/lib/api-schemas/group.d.ts.map +1 -1
  67. package/lib/api-schemas/group.js.map +1 -1
  68. package/lib/api-schemas/index.d.ts +2 -0
  69. package/lib/api-schemas/index.d.ts.map +1 -1
  70. package/lib/api-schemas/index.js +2 -0
  71. package/lib/api-schemas/index.js.map +1 -1
  72. package/lib/api-schemas/inference-profile.d.ts +5017 -0
  73. package/lib/api-schemas/inference-profile.d.ts.map +1 -0
  74. package/lib/api-schemas/inference-profile.js +135 -0
  75. package/lib/api-schemas/inference-profile.js.map +1 -0
  76. package/lib/api-schemas/integrations.d.ts +6 -6
  77. package/lib/api-schemas/interaction.d.ts +34391 -703
  78. package/lib/api-schemas/interaction.d.ts.map +1 -1
  79. package/lib/api-schemas/interaction.js +34 -1
  80. package/lib/api-schemas/interaction.js.map +1 -1
  81. package/lib/api-schemas/invites.d.ts +10 -9
  82. package/lib/api-schemas/invites.d.ts.map +1 -1
  83. package/lib/api-schemas/invites.js.map +1 -1
  84. package/lib/api-schemas/process.d.ts +653 -34
  85. package/lib/api-schemas/process.d.ts.map +1 -1
  86. package/lib/api-schemas/process.js +66 -0
  87. package/lib/api-schemas/process.js.map +1 -1
  88. package/lib/api-schemas/project-configuration.d.ts +1323 -62
  89. package/lib/api-schemas/project-configuration.d.ts.map +1 -1
  90. package/lib/api-schemas/project-configuration.js +15 -1
  91. package/lib/api-schemas/project-configuration.js.map +1 -1
  92. package/lib/api-schemas/project.d.ts +2031 -116
  93. package/lib/api-schemas/project.d.ts.map +1 -1
  94. package/lib/api-schemas/project.js +9 -1
  95. package/lib/api-schemas/project.js.map +1 -1
  96. package/lib/api-schemas/quota.d.ts +7 -6
  97. package/lib/api-schemas/quota.d.ts.map +1 -1
  98. package/lib/api-schemas/quota.js.map +1 -1
  99. package/lib/api-schemas/registry.d.ts +28171 -36096
  100. package/lib/api-schemas/registry.d.ts.map +1 -1
  101. package/lib/api-schemas/registry.js +77 -30
  102. package/lib/api-schemas/registry.js.map +1 -1
  103. package/lib/api-schemas/run-budget.d.ts +16 -0
  104. package/lib/api-schemas/run-budget.d.ts.map +1 -0
  105. package/lib/api-schemas/run-budget.js +22 -0
  106. package/lib/api-schemas/run-budget.js.map +1 -0
  107. package/lib/api-schemas/secrets.d.ts +0 -71
  108. package/lib/api-schemas/secrets.d.ts.map +1 -1
  109. package/lib/api-schemas/secrets.js +0 -73
  110. package/lib/api-schemas/secrets.js.map +1 -1
  111. package/lib/api-schemas/store.d.ts +6388 -338
  112. package/lib/api-schemas/store.d.ts.map +1 -1
  113. package/lib/api-schemas/store.js +11 -0
  114. package/lib/api-schemas/store.js.map +1 -1
  115. package/lib/api-schemas/user.d.ts +9 -8
  116. package/lib/api-schemas/user.d.ts.map +1 -1
  117. package/lib/api-schemas/user.js.map +1 -1
  118. package/lib/api-schemas/view-execution.d.ts +8 -0
  119. package/lib/api-schemas/view-execution.d.ts.map +1 -1
  120. package/lib/api-schemas/views.d.ts +14 -0
  121. package/lib/api-schemas/views.d.ts.map +1 -1
  122. package/lib/api-schemas/workflow-runs.d.ts +335 -12
  123. package/lib/api-schemas/workflow-runs.d.ts.map +1 -1
  124. package/lib/api-schemas/workflow-runs.js +2 -0
  125. package/lib/api-schemas/workflow-runs.js.map +1 -1
  126. package/lib/apikey.d.ts +30 -25
  127. package/lib/apikey.d.ts.map +1 -1
  128. package/lib/apikey.js.map +1 -1
  129. package/lib/apps.d.ts +116 -121
  130. package/lib/apps.d.ts.map +1 -1
  131. package/lib/apps.js.map +1 -1
  132. package/lib/audit-trail.d.ts +30 -19
  133. package/lib/audit-trail.d.ts.map +1 -1
  134. package/lib/audit-trail.js +6 -0
  135. package/lib/audit-trail.js.map +1 -1
  136. package/lib/browser-credentials.d.ts +11 -12
  137. package/lib/browser-credentials.d.ts.map +1 -1
  138. package/lib/common.d.ts +17 -24
  139. package/lib/common.d.ts.map +1 -1
  140. package/lib/content-query.d.ts +3 -4
  141. package/lib/content-query.d.ts.map +1 -1
  142. package/lib/cost-analytics.d.ts +13 -21
  143. package/lib/cost-analytics.d.ts.map +1 -1
  144. package/lib/cost-analytics.js +0 -7
  145. package/lib/cost-analytics.js.map +1 -1
  146. package/lib/data-platform.d.ts +79 -88
  147. package/lib/data-platform.d.ts.map +1 -1
  148. package/lib/data-platform.js.map +1 -1
  149. package/lib/delegation.d.ts +4 -5
  150. package/lib/delegation.d.ts.map +1 -1
  151. package/lib/email.d.ts +15 -17
  152. package/lib/email.d.ts.map +1 -1
  153. package/lib/email.js.map +1 -1
  154. package/lib/embeddings.d.ts +25 -26
  155. package/lib/embeddings.d.ts.map +1 -1
  156. package/lib/environment.d.ts +16 -17
  157. package/lib/environment.d.ts.map +1 -1
  158. package/lib/environment.js.map +1 -1
  159. package/lib/facets.d.ts +3 -4
  160. package/lib/facets.d.ts.map +1 -1
  161. package/lib/group.d.ts +6 -7
  162. package/lib/group.d.ts.map +1 -1
  163. package/lib/group.js.map +1 -1
  164. package/lib/index.d.ts +3 -1
  165. package/lib/index.d.ts.map +1 -1
  166. package/lib/index.js.map +1 -1
  167. package/lib/inference-profile.d.ts +17 -0
  168. package/lib/inference-profile.d.ts.map +1 -0
  169. package/lib/inference-profile.js +2 -0
  170. package/lib/inference-profile.js.map +1 -0
  171. package/lib/integrations.d.ts +19 -20
  172. package/lib/integrations.d.ts.map +1 -1
  173. package/lib/integrations.js.map +1 -1
  174. package/lib/interaction.d.ts +68 -73
  175. package/lib/interaction.d.ts.map +1 -1
  176. package/lib/interaction.js.map +1 -1
  177. package/lib/meters.d.ts +4 -5
  178. package/lib/meters.d.ts.map +1 -1
  179. package/lib/oauth-server.d.ts +40 -41
  180. package/lib/oauth-server.d.ts.map +1 -1
  181. package/lib/oauth.d.ts +9 -10
  182. package/lib/oauth.d.ts.map +1 -1
  183. package/lib/payload.d.ts +11 -14
  184. package/lib/payload.d.ts.map +1 -1
  185. package/lib/pending-asks.d.ts +8 -13
  186. package/lib/pending-asks.d.ts.map +1 -1
  187. package/lib/pending-asks.js +0 -4
  188. package/lib/pending-asks.js.map +1 -1
  189. package/lib/platform-event.d.ts +48 -71
  190. package/lib/platform-event.d.ts.map +1 -1
  191. package/lib/platform-event.js.map +1 -1
  192. package/lib/principal-context.d.ts +3 -3
  193. package/lib/principal-context.d.ts.map +1 -1
  194. package/lib/project.d.ts +42 -43
  195. package/lib/project.d.ts.map +1 -1
  196. package/lib/project.js.map +1 -1
  197. package/lib/prompt.d.ts +14 -16
  198. package/lib/prompt.d.ts.map +1 -1
  199. package/lib/prompt.js.map +1 -1
  200. package/lib/query.d.ts +10 -13
  201. package/lib/query.d.ts.map +1 -1
  202. package/lib/rate-limiter.d.ts +7 -11
  203. package/lib/rate-limiter.d.ts.map +1 -1
  204. package/lib/refs.d.ts +2 -3
  205. package/lib/refs.d.ts.map +1 -1
  206. package/lib/refs.js.map +1 -1
  207. package/lib/roles/types.d.ts +5 -6
  208. package/lib/roles/types.d.ts.map +1 -1
  209. package/lib/roles/types.js.map +1 -1
  210. package/lib/run-budget.d.ts +4 -0
  211. package/lib/run-budget.d.ts.map +1 -0
  212. package/lib/run-budget.js +2 -0
  213. package/lib/run-budget.js.map +1 -0
  214. package/lib/runs.d.ts +9 -10
  215. package/lib/runs.d.ts.map +1 -1
  216. package/lib/secrets.d.ts +10 -21
  217. package/lib/secrets.d.ts.map +1 -1
  218. package/lib/store/agent-approval.d.ts +4 -5
  219. package/lib/store/agent-approval.d.ts.map +1 -1
  220. package/lib/store/agent-approval.js.map +1 -1
  221. package/lib/store/agent-run.d.ts +50 -52
  222. package/lib/store/agent-run.d.ts.map +1 -1
  223. package/lib/store/agent-run.js.map +1 -1
  224. package/lib/store/collections.d.ts +11 -12
  225. package/lib/store/collections.d.ts.map +1 -1
  226. package/lib/store/collections.js.map +1 -1
  227. package/lib/store/conversation-state.d.ts +14 -8
  228. package/lib/store/conversation-state.d.ts.map +1 -1
  229. package/lib/store/doc-analyzer.d.ts +7 -8
  230. package/lib/store/doc-analyzer.d.ts.map +1 -1
  231. package/lib/store/dsl-workflow.d.ts +10 -12
  232. package/lib/store/dsl-workflow.d.ts.map +1 -1
  233. package/lib/store/dsl-workflow.js.map +1 -1
  234. package/lib/store/duration.d.ts +12 -0
  235. package/lib/store/duration.d.ts.map +1 -0
  236. package/lib/store/duration.js +2 -0
  237. package/lib/store/duration.js.map +1 -0
  238. package/lib/store/grounded-extraction.d.ts +6 -7
  239. package/lib/store/grounded-extraction.d.ts.map +1 -1
  240. package/lib/store/intake-policy-schema.generated.d.ts.map +1 -1
  241. package/lib/store/intake-policy-schema.generated.js +143 -2
  242. package/lib/store/intake-policy-schema.generated.js.map +1 -1
  243. package/lib/store/process.d.ts +70 -69
  244. package/lib/store/process.d.ts.map +1 -1
  245. package/lib/store/process.js.map +1 -1
  246. package/lib/store/rendering.d.ts +6 -12
  247. package/lib/store/rendering.d.ts.map +1 -1
  248. package/lib/store/rendering.js +0 -5
  249. package/lib/store/rendering.js.map +1 -1
  250. package/lib/store/signals.d.ts +43 -0
  251. package/lib/store/signals.d.ts.map +1 -1
  252. package/lib/store/signals.js +6 -1
  253. package/lib/store/signals.js.map +1 -1
  254. package/lib/store/store.d.ts +92 -91
  255. package/lib/store/store.d.ts.map +1 -1
  256. package/lib/store/store.js.map +1 -1
  257. package/lib/store/task.d.ts +10 -14
  258. package/lib/store/task.d.ts.map +1 -1
  259. package/lib/store/workflow.d.ts +35 -41
  260. package/lib/store/workflow.d.ts.map +1 -1
  261. package/lib/store/workflow.js.map +1 -1
  262. package/lib/sts-token-types.d.ts +14 -19
  263. package/lib/sts-token-types.d.ts.map +1 -1
  264. package/lib/tools.d.ts +12 -13
  265. package/lib/tools.d.ts.map +1 -1
  266. package/lib/transient-tokens.d.ts +3 -3
  267. package/lib/transient-tokens.d.ts.map +1 -1
  268. package/lib/user.d.ts +16 -20
  269. package/lib/user.d.ts.map +1 -1
  270. package/lib/user.js.map +1 -1
  271. package/lib/vertesia-common.js +2 -2
  272. package/lib/vertesia-common.js.map +1 -1
  273. package/lib/views.d.ts +61 -64
  274. package/lib/views.d.ts.map +1 -1
  275. package/lib/views.js.map +1 -1
  276. package/lib/wire-types.generated.d.ts +11227 -0
  277. package/lib/wire-types.generated.d.ts.map +1 -0
  278. package/lib/wire-types.generated.js +4 -0
  279. package/lib/wire-types.generated.js.map +1 -0
  280. package/lib/workflow-analytics.d.ts +21 -19
  281. package/lib/workflow-analytics.d.ts.map +1 -1
  282. package/lib/workflow-analytics.js +2 -2
  283. package/lib/workflow-analytics.js.map +1 -1
  284. package/package.json +16 -11
  285. package/src/access-control-values.ts +2 -2
  286. package/src/access-control.ts +7 -15
  287. package/src/analytics.ts +6 -13
  288. package/src/api-contract/components.generated.json +2553 -1046
  289. package/src/api-contract/engine.ts +641 -0
  290. package/src/api-contract/index.ts +30 -661
  291. package/src/api-schemas/access-control.ts +18 -16
  292. package/src/api-schemas/account.ts +5 -12
  293. package/src/api-schemas/agent-budget.ts +60 -0
  294. package/src/api-schemas/agent-runs.ts +63 -27
  295. package/src/api-schemas/apikey.ts +11 -10
  296. package/src/api-schemas/app-lifecycle.ts +5 -0
  297. package/src/api-schemas/audit-trail.ts +175 -1
  298. package/src/api-schemas/content.ts +55 -0
  299. package/src/api-schemas/cost-analytics.ts +42 -2
  300. package/src/api-schemas/environment.ts +0 -1
  301. package/src/api-schemas/group.ts +2 -1
  302. package/src/api-schemas/index.ts +2 -0
  303. package/src/api-schemas/inference-profile.ts +151 -0
  304. package/src/api-schemas/interaction.ts +40 -1
  305. package/src/api-schemas/invites.ts +10 -9
  306. package/src/api-schemas/process.ts +78 -2
  307. package/src/api-schemas/project-configuration.ts +19 -1
  308. package/src/api-schemas/project.ts +19 -10
  309. package/src/api-schemas/quota.ts +7 -6
  310. package/src/api-schemas/registry.ts +164 -62
  311. package/src/api-schemas/run-budget.ts +23 -0
  312. package/src/api-schemas/secrets.ts +0 -84
  313. package/src/api-schemas/store.ts +12 -0
  314. package/src/api-schemas/user.ts +9 -8
  315. package/src/api-schemas/workflow-runs.ts +2 -0
  316. package/src/apikey.ts +30 -39
  317. package/src/apps.ts +116 -239
  318. package/src/audit-trail.ts +37 -35
  319. package/src/browser-credentials.ts +11 -23
  320. package/src/common.ts +17 -37
  321. package/src/content-query.ts +3 -4
  322. package/src/cost-analytics.ts +13 -35
  323. package/src/data-platform.ts +79 -168
  324. package/src/delegation.ts +4 -9
  325. package/src/email.ts +15 -29
  326. package/src/embeddings.ts +25 -51
  327. package/src/environment.ts +16 -33
  328. package/src/facets.ts +3 -4
  329. package/src/group.ts +6 -13
  330. package/src/index.ts +23 -0
  331. package/src/inference-profile.ts +20 -0
  332. package/src/integrations.ts +21 -41
  333. package/src/interaction.ts +68 -137
  334. package/src/meters.ts +4 -9
  335. package/src/oauth-server.ts +40 -81
  336. package/src/oauth.ts +9 -19
  337. package/src/payload.ts +11 -25
  338. package/src/pending-asks.ts +8 -22
  339. package/src/platform-event.ts +48 -122
  340. package/src/principal-context.ts +3 -3
  341. package/src/project.ts +43 -86
  342. package/src/prompt.ts +14 -31
  343. package/src/query.ts +10 -20
  344. package/src/rate-limiter.ts +7 -19
  345. package/src/refs.ts +2 -3
  346. package/src/roles/types.ts +5 -11
  347. package/src/run-budget.ts +4 -0
  348. package/src/runs.ts +9 -19
  349. package/src/secrets.ts +10 -42
  350. package/src/store/agent-approval.ts +4 -9
  351. package/src/store/agent-run.ts +53 -99
  352. package/src/store/collections.ts +11 -23
  353. package/src/store/conversation-state.ts +15 -15
  354. package/src/store/doc-analyzer.ts +7 -15
  355. package/src/store/dsl-workflow.ts +10 -23
  356. package/src/store/duration.ts +45 -0
  357. package/src/store/grounded-extraction.ts +6 -13
  358. package/src/store/intake-policy-schema.generated.ts +148 -2
  359. package/src/store/process.ts +70 -140
  360. package/src/store/rendering.ts +6 -19
  361. package/src/store/signals.ts +48 -0
  362. package/src/store/store.ts +92 -181
  363. package/src/store/task.ts +10 -24
  364. package/src/store/workflow.ts +35 -71
  365. package/src/sts-token-types.ts +14 -33
  366. package/src/tools.ts +12 -25
  367. package/src/transient-tokens.ts +3 -3
  368. package/src/user.ts +16 -40
  369. package/src/views.ts +61 -125
  370. package/src/wire-types.generated.ts +11888 -0
  371. package/src/workflow-analytics.ts +21 -19
  372. package/src/agent-resources.test.ts +0 -89
  373. package/src/api-contract/components.contract.test.ts +0 -99
  374. package/src/api-schemas/access-control.contract.test.ts +0 -209
  375. package/src/api-schemas/account-apikey.test.ts +0 -60
  376. package/src/api-schemas/account.contract.test.ts +0 -319
  377. package/src/api-schemas/adapter-edge-cases.test.ts +0 -499
  378. package/src/api-schemas/agent-communication.contract.test.ts +0 -90
  379. package/src/api-schemas/agent-history.contract.test.ts +0 -42
  380. package/src/api-schemas/agent-runs.contract.test.ts +0 -240
  381. package/src/api-schemas/api-discriminators.test.ts +0 -185
  382. package/src/api-schemas/apikey.contract.test.ts +0 -270
  383. package/src/api-schemas/app-delete-summary.contract.test.ts +0 -67
  384. package/src/api-schemas/bulk-operation.contract.test.ts +0 -39
  385. package/src/api-schemas/bundle-isolation.test.ts +0 -44
  386. package/src/api-schemas/commands.contract.test.ts +0 -51
  387. package/src/api-schemas/cost-analytics.contract.test.ts +0 -64
  388. package/src/api-schemas/dashboard.contract.test.ts +0 -138
  389. package/src/api-schemas/data-store.contract.test.ts +0 -97
  390. package/src/api-schemas/document-processing.contract.test.ts +0 -76
  391. package/src/api-schemas/emit-json-schema.test.ts +0 -36
  392. package/src/api-schemas/environment.contract.test.ts +0 -202
  393. package/src/api-schemas/group.contract.test.ts +0 -205
  394. package/src/api-schemas/indexing.contract.test.ts +0 -122
  395. package/src/api-schemas/interaction.contract.test.ts +0 -307
  396. package/src/api-schemas/invites.contract.test.ts +0 -268
  397. package/src/api-schemas/llumiverse.contract.test.ts +0 -179
  398. package/src/api-schemas/mcp-api-key.contract.test.ts +0 -125
  399. package/src/api-schemas/oauth.contract.test.ts +0 -181
  400. package/src/api-schemas/parameters.test.ts +0 -402
  401. package/src/api-schemas/process.contract.test.ts +0 -115
  402. package/src/api-schemas/project.contract.test.ts +0 -472
  403. package/src/api-schemas/pruning-limits.test.ts +0 -189
  404. package/src/api-schemas/quota.contract.test.ts +0 -147
  405. package/src/api-schemas/registry-groups.test.ts +0 -99
  406. package/src/api-schemas/response-pruning.test.ts +0 -260
  407. package/src/api-schemas/store.contract.test.ts +0 -378
  408. package/src/api-schemas/sts.contract.test.ts +0 -112
  409. package/src/api-schemas/user.contract.test.ts +0 -197
  410. package/src/api-schemas/views.contract.test.ts +0 -112
  411. package/src/api-schemas/zeno-response-contracts.test.ts +0 -380
  412. package/src/apps.test.ts +0 -89
  413. package/src/oauth-scopes.test.ts +0 -15
  414. package/src/roles.test.ts +0 -33
  415. package/src/schema-for-extraction.test.ts +0 -191
  416. package/src/store/agent-approval.test.ts +0 -18
  417. package/src/store/content-type-editing.test.ts +0 -17
  418. package/src/store/ms.d.ts +0 -42
  419. package/src/store/schedule.test.ts +0 -59
  420. package/src/store/workflow.test.ts +0 -640
  421. package/src/versions.test.ts +0 -13
@@ -1,112 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import type { z } from 'zod';
3
- import type {
4
- AgentTokenRequest,
5
- ApiKeyTokenRequest,
6
- EnvironmentTokenRequest,
7
- IssueTokenForbiddenResponse,
8
- IssueTokenRequest,
9
- IssueTokenResponse,
10
- ProjectTokenRequest,
11
- ServiceAccountTokenRequest,
12
- SigningAlgorithm,
13
- UserTokenRequest,
14
- } from '../sts-token-types.js';
15
- import { validateApiRequest, validateApiResponse } from './registry.js';
16
- import type {
17
- AgentTokenRequestSchema,
18
- ApiKeyTokenRequestSchema,
19
- EnvironmentTokenRequestSchema,
20
- IssueTokenForbiddenResponseSchema,
21
- IssueTokenRequestSchema,
22
- IssueTokenResponseSchema,
23
- ProjectTokenRequestSchema,
24
- ServiceAccountTokenRequestSchema,
25
- SigningAlgorithmSchema,
26
- UserTokenRequestSchema,
27
- } from './sts.js';
28
-
29
- type Equals<A, B> = (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2 ? true : false;
30
- function assertType<T extends true>(_value: T): void {}
31
-
32
- describe('STS canonical contracts', () => {
33
- it('derives every public component type from its schema', () => {
34
- assertType<Equals<SigningAlgorithm, z.infer<typeof SigningAlgorithmSchema>>>(true);
35
- assertType<Equals<ApiKeyTokenRequest, z.infer<typeof ApiKeyTokenRequestSchema>>>(true);
36
- assertType<Equals<UserTokenRequest, z.infer<typeof UserTokenRequestSchema>>>(true);
37
- assertType<Equals<ProjectTokenRequest, z.infer<typeof ProjectTokenRequestSchema>>>(true);
38
- assertType<Equals<EnvironmentTokenRequest, z.infer<typeof EnvironmentTokenRequestSchema>>>(true);
39
- assertType<Equals<AgentTokenRequest, z.infer<typeof AgentTokenRequestSchema>>>(true);
40
- assertType<Equals<ServiceAccountTokenRequest, z.infer<typeof ServiceAccountTokenRequestSchema>>>(true);
41
- assertType<Equals<IssueTokenRequest, z.infer<typeof IssueTokenRequestSchema>>>(true);
42
- assertType<Equals<IssueTokenResponse, z.infer<typeof IssueTokenResponseSchema>>>(true);
43
- assertType<Equals<IssueTokenForbiddenResponse, z.infer<typeof IssueTokenForbiddenResponseSchema>>>(true);
44
- expect(true).toBe(true);
45
- });
46
-
47
- it('enforces the discriminated request branch and closed object policy', () => {
48
- expect(
49
- validateApiRequest('IssueTokenRequest', {
50
- type: 'project',
51
- account_id: 'acc_1',
52
- project_id: 'proj_1',
53
- }).valid,
54
- ).toBe(true);
55
- expect(
56
- validateApiRequest('IssueTokenRequest', {
57
- type: 'project',
58
- account_id: 'acc_1',
59
- project_id: 'proj_1',
60
- key: 'not-valid-on-this-branch',
61
- }).valid,
62
- ).toBe(false);
63
- expect(validateApiRequest('IssueTokenRequest', { type: 'project', account_id: 'acc_1' }).valid).toBe(false);
64
- });
65
-
66
- it('checks every documented response shape and forbidden error-code literal', () => {
67
- expect(validateApiResponse('IssueTokenResponse', { token: 'signed', token_type: 'Bearer' }).valid).toBe(true);
68
- expect(validateApiResponse('IssueTokenResponse', { token: 'signed', token_type: 'bearer' }).valid).toBe(false);
69
- for (const errorCode of [
70
- 'requested_scope_unavailable',
71
- 'no_accessible_account',
72
- 'restricted_environment',
73
- 'token_issuance_forbidden',
74
- ]) {
75
- expect(
76
- validateApiResponse('IssueTokenForbiddenResponse', {
77
- error: 'Forbidden',
78
- message: 'The requested scope is unavailable',
79
- errorCode,
80
- }).valid,
81
- ).toBe(true);
82
- }
83
- expect(
84
- validateApiResponse('IssueTokenForbiddenResponse', {
85
- error: 'Forbidden',
86
- message: 'No',
87
- errorCode: 'resource_not_found',
88
- }).valid,
89
- ).toBe(false);
90
- expect(
91
- validateApiResponse('IssueTokenForbiddenResponse', {
92
- error: 'Forbidden',
93
- message: 'No',
94
- errorCode: 'requested_scope_unavailable',
95
- project_id: 'secret',
96
- }).valid,
97
- ).toBe(false);
98
- expect(
99
- validateApiResponse('IssueTokenUnavailableResponse', {
100
- error: 'Service Unavailable',
101
- message: 'Token signing temporarily unavailable',
102
- }).valid,
103
- ).toBe(true);
104
- expect(
105
- validateApiResponse('IssueTokenUnavailableResponse', {
106
- error: 'Service Unavailable',
107
- message: 'Token signing temporarily unavailable',
108
- retry_after: 5,
109
- }).valid,
110
- ).toBe(false);
111
- });
112
- });
@@ -1,197 +0,0 @@
1
- import { Ajv2020 } from 'ajv/dist/2020.js';
2
- import { describe, expect, it } from 'vitest';
3
- import type { AbacPrincipalContext, PrincipalIdentity } from '../principal-context.js';
4
- import type { UpdateUserPayload, User } from '../user.js';
5
- import type { JsonObject } from './adapter.js';
6
- import { ApiSchemaComponents, apiComponentRef, validateApiRequest, validateApiResponse } from './registry.js';
7
- import type { AbacPrincipalContextFromSchema, UserArrayFromSchema } from './user.js';
8
-
9
- /** Exact type identity — `extends` in both directions is too weak (any/unknown slip through). */
10
- type Equals<A, B> = (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2 ? true : false;
11
- function assertType<T extends true>(_ok: T): void {}
12
-
13
- function compile(name: string, components: Readonly<Record<string, JsonObject>> = ApiSchemaComponents) {
14
- const ajv = new Ajv2020({ strictSchema: false, allErrors: true });
15
- ajv.addSchema({ $id: 'vertesia://openapi', components: { schemas: components } });
16
- return ajv.compile({ $ref: `vertesia://openapi${apiComponentRef(name as never)}` });
17
- }
18
-
19
- const VALID_USER = {
20
- id: 'u1',
21
- email: 'someone@acme.com',
22
- name: 'Someone',
23
- created_at: '2026-07-30T10:00:00.000Z',
24
- updated_at: '2026-07-30T10:00:00.000Z',
25
- };
26
-
27
- describe('gate 1 — the schema is the single source of truth for the public IAM types', () => {
28
- it('publishes the exact schema-derived type, not a hand-written twin', () => {
29
- assertType<Equals<UserArrayFromSchema, User[]>>(true);
30
- assertType<Equals<AbacPrincipalContext, AbacPrincipalContextFromSchema>>(true);
31
- expect(true).toBe(true);
32
- });
33
-
34
- it('derives the identity fields from the ABAC context rather than restating them', () => {
35
- // PrincipalIdentity `extends AbacPrincipalContext`, so composing the schemas is what keeps
36
- // the inherited fields from becoming a twin one level down — the failure mode this batch was
37
- // scoped to avoid. `kind` and `id` are part of the ABAC context itself (resolvable as
38
- // `$principal.*`), not identity-only metadata.
39
- assertType<Equals<PrincipalIdentity['kind'], AbacPrincipalContext['kind']>>(true);
40
- assertType<Equals<PrincipalIdentity['id'], AbacPrincipalContext['id']>>(true);
41
- assertType<Equals<PrincipalIdentity['clearance'], AbacPrincipalContext['clearance']>>(true);
42
- assertType<Equals<PrincipalIdentity['compartments'], AbacPrincipalContext['compartments']>>(true);
43
- assertType<Equals<PrincipalIdentity['email'], AbacPrincipalContext['email']>>(true);
44
- assertType<Equals<PrincipalIdentity['tags'], AbacPrincipalContext['tags']>>(true);
45
- assertType<Equals<PrincipalIdentity['properties'], AbacPrincipalContext['properties']>>(true);
46
- assertType<Equals<PrincipalIdentity['kind'], 'user' | 'apikey'>>(true);
47
- assertType<Equals<PrincipalIdentity['id'], string>>(true);
48
- expect(true).toBe(true);
49
- });
50
-
51
- it('derives the update payload from the user rather than restating nine fields', () => {
52
- // A `.pick()` of UserSchema plus `.partial()`: the field types and constraints come from the
53
- // response declaration, and the ONLY thing the payload changes about them is requiredness.
54
- assertType<Equals<UpdateUserPayload['name'], string | undefined>>(true);
55
- assertType<Equals<UpdateUserPayload['clearance'], User['clearance']>>(true);
56
- assertType<Equals<UpdateUserPayload['compartments'], User['compartments']>>(true);
57
- assertType<Equals<UpdateUserPayload['properties'], User['properties']>>(true);
58
- // What is NOT picked is the whitelist. `email`, `source`, `annotations` and the timestamps
59
- // are server- or IdP-owned, and adding one now means naming it in the pick.
60
- assertType<
61
- Equals<
62
- keyof UpdateUserPayload,
63
- | 'name'
64
- | 'username'
65
- | 'picture'
66
- | 'language'
67
- | 'phone'
68
- | 'last_selected_account'
69
- | 'properties'
70
- | 'clearance'
71
- | 'compartments'
72
- >
73
- >(true);
74
- expect(true).toBe(true);
75
- });
76
-
77
- it('keeps the wire type optionality the document declares', () => {
78
- assertType<Equals<User['email'], string>>(true);
79
- assertType<Equals<User['created_at'], string>>(true);
80
- assertType<Equals<User['source'], 'firebase' | 'scim' | undefined>>(true);
81
- assertType<Equals<User['clearance'], number | undefined>>(true);
82
- expect(true).toBe(true);
83
- });
84
- });
85
-
86
- describe('gate 2 — the published components match the closure the types come from', () => {
87
- it('does not hoist AbacPrincipalContext into a component of its own', () => {
88
- // It is a public TYPE but has never been a published component. Hoisting it would add a
89
- // $ref to PrincipalIdentity that every generated client would have to follow.
90
- expect(Object.keys(ApiSchemaComponents)).not.toContain('AbacPrincipalContext');
91
- const props = ApiSchemaComponents.PrincipalIdentity.properties as Record<string, JsonObject>;
92
- expect(props.kind).toEqual({ type: 'string', enum: ['user', 'apikey'] });
93
- expect(props.clearance).toEqual({ type: 'number' });
94
- expect(props.id).toEqual({ type: 'string' });
95
- });
96
-
97
- it('publishes the composed property order — kind and id first', () => {
98
- // `AbacPrincipalContext` lists its discriminators (kind, id) ahead of the merged BLP
99
- // attributes; PrincipalIdentity `.extend({})`s it, adding nothing, so the order is the
100
- // context's own.
101
- const props = ApiSchemaComponents.PrincipalIdentity.properties as JsonObject;
102
- expect(Object.keys(props)).toEqual(['kind', 'id', 'clearance', 'compartments', 'email', 'tags', 'properties']);
103
- });
104
-
105
- it('declares the timestamps the endpoint has always shipped', () => {
106
- // The published component was closed and did not declare these, while the handler
107
- // serialized the whole Mongo document — so every response violated its own schema.
108
- const props = ApiSchemaComponents.User.properties as Record<string, JsonObject>;
109
- expect(props.created_at.type).toBe('string');
110
- expect(props.updated_at.type).toBe('string');
111
- expect(ApiSchemaComponents.User.required).toContain('created_at');
112
- expect(ApiSchemaComponents.User.additionalProperties).toBe(false);
113
- });
114
- });
115
-
116
- describe('gate 3 — AJV validates the same canonical objects that are published', () => {
117
- it('accepts a minimal user and rejects a missing required field', () => {
118
- const validate = compile('User');
119
- expect(validate(VALID_USER)).toBe(true);
120
- const { created_at: _dropped, ...incomplete } = VALID_USER;
121
- expect(validate(incomplete)).toBe(false);
122
- });
123
-
124
- it('rejects a source outside the published enum', () => {
125
- expect(compile('User')({ ...VALID_USER, source: 'ldap' })).toBe(false);
126
- expect(compile('User')({ ...VALID_USER, source: 'scim' })).toBe(true);
127
- });
128
-
129
- it('rejects an undeclared property on the closed user component', () => {
130
- // Specifically the internal fields a spread of the Mongo document would have leaked.
131
- expect(compile('User')({ ...VALID_USER, _id: 'deadbeef' })).toBe(false);
132
- });
133
-
134
- it('accepts an empty update payload but rejects an undeclared field', () => {
135
- const validate = compile('UpdateUserPayload');
136
- expect(validate({})).toBe(true);
137
- expect(validate({ name: 'New name' })).toBe(true);
138
- // `email` is deliberately not updatable through this endpoint and never has been.
139
- expect(validate({ email: 'new@acme.com' })).toBe(false);
140
- });
141
- });
142
-
143
- describe('gate 4 — runtime enforcement uses the published components', () => {
144
- it('rejects an undeclared update field without removing it', () => {
145
- // The handler used to whitelist fields and silently ignore the rest; the published schema
146
- // has always said additionalProperties: false. Enforcement makes the two agree.
147
- const payload: Record<string, unknown> = { name: 'Acme', rogue_field: 42 };
148
- const result = validateApiRequest('UpdateUserPayload', payload);
149
- expect(result.valid).toBe(false);
150
- expect(payload.rogue_field).toBe(42);
151
- });
152
-
153
- it('accepts a conforming update payload and hands back the component type', () => {
154
- const result = validateApiRequest('UpdateUserPayload', { name: 'Acme', clearance: 3 });
155
- expect(result.valid).toBe(true);
156
- if (result.valid) {
157
- assertType<Equals<typeof result.data, UpdateUserPayload>>(true);
158
- expect(result.data.clearance).toBe(3);
159
- }
160
- });
161
-
162
- it('checks the user response against the same component the SDK type comes from', () => {
163
- const result = validateApiResponse('User', VALID_USER);
164
- expect(result.valid).toBe(true);
165
- if (result.valid) {
166
- assertType<Equals<typeof result.data, User>>(true);
167
- }
168
- // A document spread straight onto the wire is what this catches.
169
- expect(validateApiResponse('User', { ...VALID_USER, _id: 'x' }).valid).toBe(false);
170
- });
171
-
172
- it('enforces the date-time format the timestamps claim', () => {
173
- // Through the registry rather than the local `compile` helper: the production validator
174
- // registers ajv-formats, and a bare Ajv2020 ignores `format` entirely — which is precisely
175
- // why the description alone was not enough. A plain string schema accepts 'yesterday'.
176
- expect(validateApiResponse('User', { ...VALID_USER, created_at: 'yesterday' }).valid).toBe(false);
177
- expect(validateApiResponse('User', { ...VALID_USER, created_at: '2026-07-30' }).valid).toBe(false);
178
- expect(validateApiResponse('User', VALID_USER).valid).toBe(true);
179
- });
180
-
181
- it('checks every member of the account listing against the same User component', () => {
182
- // The gap this closes: `UserArray` items $ref `User`, so publishing the array without
183
- // enforcing it would document the contract for each member while checking none of them.
184
- expect(validateApiResponse('UserArray', [VALID_USER, VALID_USER]).valid).toBe(true);
185
- expect(validateApiResponse('UserArray', []).valid).toBe(true);
186
- // A legacy member with no timestamps, which is exactly what the old jsonDocs() could emit.
187
- const { created_at: _dropped, ...legacyMember } = VALID_USER;
188
- expect(validateApiResponse('UserArray', [VALID_USER, legacyMember]).valid).toBe(false);
189
- // And one carrying a null the component cannot publish.
190
- expect(validateApiResponse('UserArray', [{ ...VALID_USER, phone: null }]).valid).toBe(false);
191
- });
192
-
193
- it('validates the shared DeleteByIdResult that seven other endpoints also publish', () => {
194
- expect(validateApiResponse('DeleteByIdResult', { id: 'abc' }).valid).toBe(true);
195
- expect(validateApiResponse('DeleteByIdResult', {}).valid).toBe(false);
196
- });
197
- });
@@ -1,112 +0,0 @@
1
- import { assertType, describe, expect, it } from 'vitest';
2
- import type { z } from 'zod';
3
- import { type ViewExperienceConfiguration, viewExperienceRoute } from '../views.js';
4
- import { ApiSchemaComponents, validateApiRequest, validateApiResponse } from './registry.js';
5
- import type { ViewExperienceConfigurationSchema } from './view-execution.js';
6
-
7
- type Equals<A, B> = (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2 ? true : false;
8
-
9
- /**
10
- * Lives here rather than next to the JSON Schema artifact that consumes it. Both subjects are
11
- * declarations of THIS package — the public TypeScript type and the Zod schema it must mirror — and
12
- * asserting it from the consuming package would have made that package depend on Zod, which it must
13
- * not: it is loaded in the browser.
14
- */
15
- describe('ViewExperienceConfiguration', () => {
16
- it('keeps the temporary named TypeScript bridge identical to the runtime schema', () => {
17
- assertType<Equals<ViewExperienceConfiguration, z.infer<typeof ViewExperienceConfigurationSchema>>>(true);
18
- });
19
-
20
- it('publishes selection, app actions, upload drops, generated presentation mode, and reranking', () => {
21
- expect(Object.keys(ApiSchemaComponents)).toEqual(
22
- expect.arrayContaining([
23
- 'AgenticViewRerankConfiguration',
24
- 'ViewActionConfiguration',
25
- 'ViewActionsConfiguration',
26
- 'ViewDropConfiguration',
27
- 'ViewExecutionRerankResult',
28
- 'ViewSelectionConfiguration',
29
- ]),
30
- );
31
-
32
- expect(
33
- validateApiRequest('PreviewViewExperienceRequest', {
34
- configuration: {
35
- name: 'Orders',
36
- search: {
37
- mode: 'agentic',
38
- agentic: {
39
- mode: 'query_and_view',
40
- rerank: { max_candidates: 24, include_why_match: true, timeout_ms: 30_000 },
41
- },
42
- },
43
- results: {
44
- default_display: 'table',
45
- displays: [{ id: 'table', label: 'Orders', type: 'table', columns: [] }],
46
- selection: { mode: 'multiple', select_all: 'page' },
47
- actions: {
48
- include_defaults: true,
49
- items: [{ id: 'approve', label: 'Approve', handler: 'approve-orders' }],
50
- },
51
- drop: { handler: 'upload', accept: ['files'], params: { type_id: 'sales-order' } },
52
- },
53
- },
54
- }).valid,
55
- ).toBe(true);
56
- });
57
-
58
- it('keeps executable custom drop handlers out of the persisted wire contract', () => {
59
- expect(
60
- validateApiRequest('PreviewViewExperienceRequest', {
61
- configuration: {
62
- name: 'Orders',
63
- results: {
64
- default_display: 'table',
65
- displays: [{ id: 'table', label: 'Orders', type: 'table', columns: [] }],
66
- drop: { handler: 'custom-drop' },
67
- },
68
- },
69
- }).valid,
70
- ).toBe(false);
71
- });
72
-
73
- it('accepts untagged View options and preserves the shared options schema reference', () => {
74
- // View options and shared model options both permit an omitted family ID.
75
- const authored = { model_options: { temperature: 0.2, max_tokens: 1024 } };
76
- expect(validateApiResponse('ViewAgenticExecutionConfiguration', authored).valid).toBe(true);
77
-
78
- // Keep the shared component wired to the canonical options contract.
79
- const modelOptions = (name: string) =>
80
- (ApiSchemaComponents[name] as { properties: Record<string, unknown> }).properties.model_options;
81
- expect(modelOptions('InteractionExecutionConfiguration')).toEqual({
82
- $ref: '#/components/schemas/ModelOptions',
83
- });
84
- expect(modelOptions('ViewAgenticExecutionConfiguration')).toMatchObject({
85
- type: 'object',
86
- additionalProperties: true,
87
- });
88
- });
89
-
90
- it('keeps the View config otherwise identical to the shared execution configuration', () => {
91
- // Only `model_options` may differ. Anything else diverging means the two drifted apart
92
- // rather than the union being deliberately relaxed for authored options.
93
- const properties = (name: string) =>
94
- (ApiSchemaComponents[name] as { properties: Record<string, unknown> }).properties;
95
- const view = properties('ViewAgenticExecutionConfiguration');
96
- const shared = properties('InteractionExecutionConfiguration');
97
-
98
- expect(Object.keys(view)).toEqual(Object.keys(shared));
99
- for (const key of Object.keys(shared)) {
100
- if (key === 'model_options') continue;
101
- expect(JSON.stringify(view[key]), `${key} drifted from the shared configuration`).toBe(
102
- JSON.stringify(shared[key]),
103
- );
104
- }
105
- });
106
-
107
- it('builds generic routes for system and app-contributed Views without exposing path material', () => {
108
- expect(viewExperienceRoute('app:content:document-library')).toBe('/view/app%3Acontent%3Adocument-library');
109
- expect(viewExperienceRoute('sys:AgenticDocumentExplorer')).toBe('/view/sys%3AAgenticDocumentExplorer');
110
- expect(viewExperienceRoute('unsafe/id')).toBe('/view/unsafe%2Fid');
111
- });
112
- });