@vertesia/common 1.2.0 → 1.4.0-dev.20260614.160504Z

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 (634) hide show
  1. package/LICENSE +198 -10
  2. package/lib/{types/Progress.d.ts → Progress.d.ts} +1 -0
  3. package/lib/Progress.d.ts.map +1 -0
  4. package/lib/{esm/Progress.js → Progress.js} +2 -2
  5. package/lib/Progress.js.map +1 -0
  6. package/lib/access-control.d.ts +144 -0
  7. package/lib/access-control.d.ts.map +1 -0
  8. package/lib/{esm/access-control.js → access-control.js} +35 -0
  9. package/lib/access-control.js.map +1 -0
  10. package/lib/agent-request-template.d.ts +4 -0
  11. package/lib/agent-request-template.d.ts.map +1 -0
  12. package/lib/agent-request-template.js +46 -0
  13. package/lib/agent-request-template.js.map +1 -0
  14. package/lib/{types/analytics.d.ts → analytics.d.ts} +3 -2
  15. package/lib/analytics.d.ts.map +1 -0
  16. package/lib/{cjs/analytics.js.map → analytics.js.map} +1 -1
  17. package/lib/{types/apikey.d.ts → apikey.d.ts} +34 -4
  18. package/lib/apikey.d.ts.map +1 -0
  19. package/lib/{esm/apikey.js → apikey.js} +1 -0
  20. package/lib/apikey.js.map +1 -0
  21. package/lib/{types/apps.d.ts → apps.d.ts} +430 -35
  22. package/lib/apps.d.ts.map +1 -0
  23. package/lib/apps.js +158 -0
  24. package/lib/apps.js.map +1 -0
  25. package/lib/{types/ask-user.d.ts → ask-user.d.ts} +1 -0
  26. package/lib/ask-user.d.ts.map +1 -0
  27. package/lib/{esm/ask-user.js.map → ask-user.js.map} +1 -1
  28. package/lib/{types/audit-trail.d.ts → audit-trail.d.ts} +2 -1
  29. package/lib/audit-trail.d.ts.map +1 -0
  30. package/lib/audit-trail.js +3 -0
  31. package/lib/audit-trail.js.map +1 -0
  32. package/lib/browser-credentials.d.ts +123 -0
  33. package/lib/browser-credentials.d.ts.map +1 -0
  34. package/lib/browser-credentials.js +2 -0
  35. package/lib/browser-credentials.js.map +1 -0
  36. package/lib/{types/channels.d.ts → channels.d.ts} +3 -2
  37. package/lib/channels.d.ts.map +1 -0
  38. package/lib/{esm/channels.js → channels.js} +3 -3
  39. package/lib/channels.js.map +1 -0
  40. package/lib/{types/common.d.ts → common.d.ts} +18 -10
  41. package/lib/common.d.ts.map +1 -0
  42. package/lib/common.js.map +1 -0
  43. package/lib/{types/cost-analytics.d.ts → cost-analytics.d.ts} +2 -3
  44. package/lib/cost-analytics.d.ts.map +1 -0
  45. package/lib/cost-analytics.js.map +1 -0
  46. package/lib/{types/data-platform.d.ts → data-platform.d.ts} +134 -7
  47. package/lib/data-platform.d.ts.map +1 -0
  48. package/lib/data-platform.js.map +1 -0
  49. package/lib/{types/email.d.ts → email.d.ts} +6 -2
  50. package/lib/email.d.ts.map +1 -0
  51. package/lib/{esm/email.js → email.js} +2 -2
  52. package/lib/email.js.map +1 -0
  53. package/lib/embeddings.d.ts +65 -0
  54. package/lib/embeddings.d.ts.map +1 -0
  55. package/lib/embeddings.js +2 -0
  56. package/lib/embeddings.js.map +1 -0
  57. package/lib/{types/environment.d.ts → environment.d.ts} +19 -5
  58. package/lib/environment.d.ts.map +1 -0
  59. package/lib/{esm/environment.js → environment.js} +17 -7
  60. package/lib/environment.js.map +1 -0
  61. package/lib/{types/facets.d.ts → facets.d.ts} +6 -5
  62. package/lib/facets.d.ts.map +1 -0
  63. package/lib/facets.js.map +1 -0
  64. package/lib/{types/group.d.ts → group.d.ts} +15 -2
  65. package/lib/group.d.ts.map +1 -0
  66. package/lib/group.js +3 -0
  67. package/lib/group.js.map +1 -0
  68. package/lib/host-utils.d.ts +8 -0
  69. package/lib/host-utils.d.ts.map +1 -0
  70. package/lib/host-utils.js +84 -0
  71. package/lib/host-utils.js.map +1 -0
  72. package/lib/{types/index.d.ts → index.d.ts} +19 -10
  73. package/lib/index.d.ts.map +1 -0
  74. package/lib/{esm/index.js → index.js} +18 -10
  75. package/lib/index.js.map +1 -0
  76. package/lib/integrations.d.ts +151 -0
  77. package/lib/integrations.d.ts.map +1 -0
  78. package/lib/{esm/integrations.js → integrations.js} +6 -0
  79. package/lib/integrations.js.map +1 -0
  80. package/lib/{types/interaction.d.ts → interaction.d.ts} +99 -56
  81. package/lib/interaction.d.ts.map +1 -0
  82. package/lib/{esm/interaction.js → interaction.js} +3 -3
  83. package/lib/interaction.js.map +1 -0
  84. package/lib/json-schema.d.ts +2 -0
  85. package/lib/json-schema.d.ts.map +1 -0
  86. package/lib/{cjs/json-schema.js.map → json-schema.js.map} +1 -1
  87. package/lib/json.d.ts +2 -0
  88. package/lib/json.d.ts.map +1 -0
  89. package/lib/json.js.map +1 -0
  90. package/lib/{types/meters.d.ts → meters.d.ts} +2 -1
  91. package/lib/meters.d.ts.map +1 -0
  92. package/lib/meters.js.map +1 -0
  93. package/lib/model_utility.d.ts +2 -0
  94. package/lib/model_utility.d.ts.map +1 -0
  95. package/lib/model_utility.js +2 -0
  96. package/lib/model_utility.js.map +1 -0
  97. package/lib/oauth-scopes.d.ts +18 -0
  98. package/lib/oauth-scopes.d.ts.map +1 -0
  99. package/lib/oauth-scopes.js +57 -0
  100. package/lib/oauth-scopes.js.map +1 -0
  101. package/lib/{types/oauth-server.d.ts → oauth-server.d.ts} +64 -4
  102. package/lib/oauth-server.d.ts.map +1 -0
  103. package/lib/{cjs/oauth-server.js.map → oauth-server.js.map} +1 -1
  104. package/lib/{types/oauth.d.ts → oauth.d.ts} +1 -0
  105. package/lib/oauth.d.ts.map +1 -0
  106. package/lib/oauth.js.map +1 -0
  107. package/lib/{types/payload.d.ts → payload.d.ts} +5 -4
  108. package/lib/payload.d.ts.map +1 -0
  109. package/lib/{cjs/payload.js.map → payload.js.map} +1 -1
  110. package/lib/{types/pending-asks.d.ts → pending-asks.d.ts} +8 -1
  111. package/lib/pending-asks.d.ts.map +1 -0
  112. package/lib/pending-asks.js.map +1 -0
  113. package/lib/principal-context.d.ts +27 -0
  114. package/lib/principal-context.d.ts.map +1 -0
  115. package/lib/principal-context.js +2 -0
  116. package/lib/principal-context.js.map +1 -0
  117. package/lib/{types/project.d.ts → project.d.ts} +278 -49
  118. package/lib/project.d.ts.map +1 -0
  119. package/lib/project.js +230 -0
  120. package/lib/project.js.map +1 -0
  121. package/lib/{types/prompt.d.ts → prompt.d.ts} +16 -9
  122. package/lib/prompt.d.ts.map +1 -0
  123. package/lib/prompt.js.map +1 -0
  124. package/lib/{types/query.d.ts → query.d.ts} +11 -8
  125. package/lib/query.d.ts.map +1 -0
  126. package/lib/query.js.map +1 -0
  127. package/lib/{types/rate-limiter.d.ts → rate-limiter.d.ts} +1 -0
  128. package/lib/rate-limiter.d.ts.map +1 -0
  129. package/lib/rate-limiter.js.map +1 -0
  130. package/lib/{types/refs.d.ts → refs.d.ts} +1 -0
  131. package/lib/refs.d.ts.map +1 -0
  132. package/lib/refs.js.map +1 -0
  133. package/lib/roles.d.ts +19 -0
  134. package/lib/roles.d.ts.map +1 -0
  135. package/lib/roles.js +228 -0
  136. package/lib/roles.js.map +1 -0
  137. package/lib/{types/runs.d.ts → runs.d.ts} +3 -2
  138. package/lib/runs.d.ts.map +1 -0
  139. package/lib/runs.js.map +1 -0
  140. package/lib/secrets.d.ts +47 -0
  141. package/lib/secrets.d.ts.map +1 -0
  142. package/lib/secrets.js +2 -0
  143. package/lib/secrets.js.map +1 -0
  144. package/lib/{types/skill.d.ts → skill.d.ts} +2 -1
  145. package/lib/skill.d.ts.map +1 -0
  146. package/lib/skill.js.map +1 -0
  147. package/lib/{types/store → store}/activity-catalog.d.ts +2 -1
  148. package/lib/store/activity-catalog.d.ts.map +1 -0
  149. package/lib/store/activity-catalog.js.map +1 -0
  150. package/lib/{types/store → store}/agent-run.d.ts +206 -35
  151. package/lib/store/agent-run.d.ts.map +1 -0
  152. package/lib/store/agent-run.js.map +1 -0
  153. package/lib/{types/store → store}/collections.d.ts +18 -9
  154. package/lib/store/collections.d.ts.map +1 -0
  155. package/lib/store/collections.js.map +1 -0
  156. package/lib/{types/store → store}/common.d.ts +1 -0
  157. package/lib/store/common.d.ts.map +1 -0
  158. package/lib/{cjs → store}/common.js.map +1 -1
  159. package/lib/{types/store → store}/conversation-state.d.ts +36 -5
  160. package/lib/store/conversation-state.d.ts.map +1 -0
  161. package/lib/{esm/store → store}/conversation-state.js +3 -0
  162. package/lib/store/conversation-state.js.map +1 -0
  163. package/lib/{types/store → store}/doc-analyzer.d.ts +20 -14
  164. package/lib/store/doc-analyzer.d.ts.map +1 -0
  165. package/lib/{cjs/store → store}/doc-analyzer.js.map +1 -1
  166. package/lib/{types/store → store}/dsl-workflow.d.ts +42 -24
  167. package/lib/store/dsl-workflow.d.ts.map +1 -0
  168. package/lib/store/dsl-workflow.js +8 -0
  169. package/lib/store/dsl-workflow.js.map +1 -0
  170. package/lib/{types/store → store}/hive-memory.d.ts +2 -1
  171. package/lib/store/hive-memory.d.ts.map +1 -0
  172. package/lib/{cjs/store → store}/hive-memory.js.map +1 -1
  173. package/lib/store/index.d.ts +20 -0
  174. package/lib/store/index.d.ts.map +1 -0
  175. package/lib/store/index.js +20 -0
  176. package/lib/store/index.js.map +1 -0
  177. package/lib/{types/store → store}/object-types.d.ts +2 -1
  178. package/lib/store/object-types.d.ts.map +1 -0
  179. package/lib/store/object-types.js +95 -0
  180. package/lib/store/object-types.js.map +1 -0
  181. package/lib/store/process-schema.d.ts +481 -0
  182. package/lib/store/process-schema.d.ts.map +1 -0
  183. package/lib/store/process-schema.js +482 -0
  184. package/lib/store/process-schema.js.map +1 -0
  185. package/lib/store/process-validation.d.ts +17 -0
  186. package/lib/store/process-validation.d.ts.map +1 -0
  187. package/lib/store/process-validation.js +428 -0
  188. package/lib/store/process-validation.js.map +1 -0
  189. package/lib/store/process.d.ts +261 -0
  190. package/lib/store/process.d.ts.map +1 -0
  191. package/lib/store/process.js +2 -0
  192. package/lib/store/process.js.map +1 -0
  193. package/lib/{types/store → store}/rendering.d.ts +5 -4
  194. package/lib/store/rendering.d.ts.map +1 -0
  195. package/lib/{esm/store → store}/rendering.js +6 -6
  196. package/lib/store/rendering.js.map +1 -0
  197. package/lib/{types/store → store}/schedule.d.ts +4 -3
  198. package/lib/store/schedule.d.ts.map +1 -0
  199. package/lib/store/schedule.js.map +1 -0
  200. package/lib/{types/store → store}/signals.d.ts +2 -1
  201. package/lib/store/signals.d.ts.map +1 -0
  202. package/lib/{cjs/store → store}/signals.js.map +1 -1
  203. package/lib/{types/store → store}/store.d.ts +67 -38
  204. package/lib/store/store.d.ts.map +1 -0
  205. package/lib/{esm/store → store}/store.js +17 -8
  206. package/lib/store/store.js.map +1 -0
  207. package/lib/store/task.d.ts +63 -0
  208. package/lib/store/task.d.ts.map +1 -0
  209. package/lib/store/task.js +5 -0
  210. package/lib/store/task.js.map +1 -0
  211. package/lib/store/temporalio.d.ts +17 -0
  212. package/lib/store/temporalio.d.ts.map +1 -0
  213. package/lib/{esm/store → store}/temporalio.js +6 -6
  214. package/lib/store/temporalio.js.map +1 -0
  215. package/lib/{types/store → store}/workflow.d.ts +87 -33
  216. package/lib/store/workflow.d.ts.map +1 -0
  217. package/lib/{esm/store → store}/workflow.js +36 -37
  218. package/lib/store/workflow.js.map +1 -0
  219. package/lib/{types/sts-token-types.d.ts → sts-token-types.d.ts} +29 -2
  220. package/lib/sts-token-types.d.ts.map +1 -0
  221. package/lib/{esm/sts-token-types.js → sts-token-types.js} +0 -4
  222. package/lib/sts-token-types.js.map +1 -0
  223. package/lib/{types/tenant.d.ts → tenant.d.ts} +1 -0
  224. package/lib/tenant.d.ts.map +1 -0
  225. package/lib/tenant.js.map +1 -0
  226. package/lib/{types/tool-execution.d.ts → tool-execution.d.ts} +3 -2
  227. package/lib/tool-execution.d.ts.map +1 -0
  228. package/lib/tool-execution.js.map +1 -0
  229. package/lib/tools.d.ts +101 -0
  230. package/lib/tools.d.ts.map +1 -0
  231. package/lib/tools.js +2 -0
  232. package/lib/tools.js.map +1 -0
  233. package/lib/{types/training.d.ts → training.d.ts} +10 -9
  234. package/lib/training.d.ts.map +1 -0
  235. package/lib/training.js.map +1 -0
  236. package/lib/{types/transient-tokens.d.ts → transient-tokens.d.ts} +3 -2
  237. package/lib/transient-tokens.d.ts.map +1 -0
  238. package/lib/transient-tokens.js.map +1 -0
  239. package/lib/{types/user.d.ts → user.d.ts} +13 -7
  240. package/lib/user.d.ts.map +1 -0
  241. package/lib/{esm/user.js → user.js} +2 -2
  242. package/lib/user.js.map +1 -0
  243. package/lib/{types/utils → utils}/auth.d.ts +2 -1
  244. package/lib/utils/auth.d.ts.map +1 -0
  245. package/lib/{esm/utils → utils}/auth.js +1 -1
  246. package/lib/utils/auth.js.map +1 -0
  247. package/lib/{types/utils → utils}/schemas.d.ts +5 -4
  248. package/lib/utils/schemas.d.ts.map +1 -0
  249. package/lib/{esm/utils → utils}/schemas.js +24 -22
  250. package/lib/utils/schemas.js.map +1 -0
  251. package/lib/{types/utils → utils}/type-helpers.d.ts +1 -0
  252. package/lib/utils/type-helpers.d.ts.map +1 -0
  253. package/lib/{cjs/utils → utils}/type-helpers.js.map +1 -1
  254. package/lib/{types/versions.d.ts → versions.d.ts} +1 -0
  255. package/lib/versions.d.ts.map +1 -0
  256. package/lib/versions.js.map +1 -0
  257. package/lib/vertesia-common.js +1 -1
  258. package/lib/vertesia-common.js.map +1 -1
  259. package/lib/{types/workflow-analytics.d.ts → workflow-analytics.d.ts} +10 -3
  260. package/lib/workflow-analytics.d.ts.map +1 -0
  261. package/lib/workflow-analytics.js.map +1 -0
  262. package/package.json +20 -20
  263. package/src/Progress.ts +9 -7
  264. package/src/access-control.ts +124 -55
  265. package/src/agent-request-template.test.ts +40 -0
  266. package/src/agent-request-template.ts +45 -0
  267. package/src/analytics.ts +11 -16
  268. package/src/apikey.ts +43 -11
  269. package/src/apps.test.ts +37 -0
  270. package/src/apps.ts +562 -78
  271. package/src/audit-trail.ts +3 -5
  272. package/src/browser-credentials.ts +133 -0
  273. package/src/channels.ts +5 -5
  274. package/src/common.ts +17 -11
  275. package/src/cost-analytics.ts +10 -4
  276. package/src/data-platform.ts +142 -7
  277. package/src/email.ts +7 -4
  278. package/src/embeddings.ts +76 -0
  279. package/src/environment.ts +44 -25
  280. package/src/facets.ts +19 -21
  281. package/src/group.ts +14 -3
  282. package/src/host-utils.test.ts +61 -0
  283. package/src/host-utils.ts +93 -0
  284. package/src/index.ts +18 -10
  285. package/src/integrations.ts +134 -26
  286. package/src/interaction.ts +185 -141
  287. package/src/json-schema.ts +1 -1
  288. package/src/json.ts +6 -3
  289. package/src/meters.ts +6 -9
  290. package/src/model_utility.ts +1 -1
  291. package/src/oauth-scopes.ts +72 -0
  292. package/src/oauth-server.ts +80 -5
  293. package/src/payload.ts +6 -6
  294. package/src/pending-asks.ts +8 -1
  295. package/src/principal-context.ts +27 -0
  296. package/src/project.ts +408 -101
  297. package/src/prompt.ts +30 -27
  298. package/src/query.ts +19 -17
  299. package/src/rate-limiter.ts +1 -1
  300. package/src/refs.ts +19 -24
  301. package/src/roles.test.ts +30 -0
  302. package/src/roles.ts +251 -0
  303. package/src/runs.ts +14 -15
  304. package/src/secrets.ts +60 -0
  305. package/src/skill.ts +1 -2
  306. package/src/store/activity-catalog.ts +13 -1
  307. package/src/store/agent-run.ts +269 -42
  308. package/src/store/collections.ts +21 -13
  309. package/src/store/common.ts +1 -2
  310. package/src/store/conversation-state.ts +42 -5
  311. package/src/store/doc-analyzer.ts +22 -14
  312. package/src/store/dsl-workflow.ts +54 -29
  313. package/src/store/hive-memory.ts +10 -10
  314. package/src/store/index.ts +19 -17
  315. package/src/store/ms.d.ts +34 -3
  316. package/src/store/object-types.ts +75 -79
  317. package/src/store/process-schema.test.ts +106 -0
  318. package/src/store/process-schema.ts +485 -0
  319. package/src/store/process-validation.test.ts +432 -0
  320. package/src/store/process-validation.ts +548 -0
  321. package/src/store/process.ts +305 -0
  322. package/src/store/rendering.ts +12 -12
  323. package/src/store/schedule.ts +3 -3
  324. package/src/store/signals.ts +1 -1
  325. package/src/store/store.ts +119 -89
  326. package/src/store/task.ts +71 -0
  327. package/src/store/temporalio.ts +14 -14
  328. package/src/store/workflow.test.ts +16 -14
  329. package/src/store/workflow.ts +177 -119
  330. package/src/sts-token-types.ts +30 -4
  331. package/src/tool-execution.ts +2 -2
  332. package/src/tools.ts +103 -0
  333. package/src/training.ts +25 -27
  334. package/src/transient-tokens.ts +4 -7
  335. package/src/user.ts +25 -35
  336. package/src/utils/auth.ts +2 -2
  337. package/src/utils/schemas.ts +36 -31
  338. package/src/utils/type-helpers.ts +2 -4
  339. package/src/workflow-analytics.ts +15 -18
  340. package/lib/cjs/Progress.js +0 -61
  341. package/lib/cjs/Progress.js.map +0 -1
  342. package/lib/cjs/access-control.js +0 -58
  343. package/lib/cjs/access-control.js.map +0 -1
  344. package/lib/cjs/analytics.js +0 -3
  345. package/lib/cjs/apikey.js +0 -17
  346. package/lib/cjs/apikey.js.map +0 -1
  347. package/lib/cjs/apps.js +0 -89
  348. package/lib/cjs/apps.js.map +0 -1
  349. package/lib/cjs/ask-user.js +0 -8
  350. package/lib/cjs/ask-user.js.map +0 -1
  351. package/lib/cjs/audit-trail.js +0 -10
  352. package/lib/cjs/audit-trail.js.map +0 -1
  353. package/lib/cjs/channels.js +0 -63
  354. package/lib/cjs/channels.js.map +0 -1
  355. package/lib/cjs/common.js +0 -3
  356. package/lib/cjs/cost-analytics.js +0 -13
  357. package/lib/cjs/cost-analytics.js.map +0 -1
  358. package/lib/cjs/data-platform.js +0 -127
  359. package/lib/cjs/data-platform.js.map +0 -1
  360. package/lib/cjs/email.js +0 -20
  361. package/lib/cjs/email.js.map +0 -1
  362. package/lib/cjs/environment.js +0 -44
  363. package/lib/cjs/environment.js.map +0 -1
  364. package/lib/cjs/facets.js +0 -3
  365. package/lib/cjs/facets.js.map +0 -1
  366. package/lib/cjs/group.js +0 -6
  367. package/lib/cjs/group.js.map +0 -1
  368. package/lib/cjs/index.js +0 -60
  369. package/lib/cjs/index.js.map +0 -1
  370. package/lib/cjs/integrations.js +0 -16
  371. package/lib/cjs/integrations.js.map +0 -1
  372. package/lib/cjs/interaction.js +0 -101
  373. package/lib/cjs/interaction.js.map +0 -1
  374. package/lib/cjs/json-schema.js +0 -3
  375. package/lib/cjs/json.js +0 -3
  376. package/lib/cjs/json.js.map +0 -1
  377. package/lib/cjs/meters.js +0 -13
  378. package/lib/cjs/meters.js.map +0 -1
  379. package/lib/cjs/model_utility.js +0 -6
  380. package/lib/cjs/model_utility.js.map +0 -1
  381. package/lib/cjs/oauth-server.js +0 -3
  382. package/lib/cjs/oauth.js +0 -7
  383. package/lib/cjs/oauth.js.map +0 -1
  384. package/lib/cjs/openapi.js +0 -3
  385. package/lib/cjs/openapi.js.map +0 -1
  386. package/lib/cjs/package.json +0 -3
  387. package/lib/cjs/payload.js +0 -3
  388. package/lib/cjs/pending-asks.js +0 -7
  389. package/lib/cjs/pending-asks.js.map +0 -1
  390. package/lib/cjs/project.js +0 -143
  391. package/lib/cjs/project.js.map +0 -1
  392. package/lib/cjs/prompt.js +0 -21
  393. package/lib/cjs/prompt.js.map +0 -1
  394. package/lib/cjs/query.js +0 -3
  395. package/lib/cjs/query.js.map +0 -1
  396. package/lib/cjs/rate-limiter.js +0 -6
  397. package/lib/cjs/rate-limiter.js.map +0 -1
  398. package/lib/cjs/refs.js +0 -14
  399. package/lib/cjs/refs.js.map +0 -1
  400. package/lib/cjs/runs.js +0 -3
  401. package/lib/cjs/runs.js.map +0 -1
  402. package/lib/cjs/skill.js +0 -14
  403. package/lib/cjs/skill.js.map +0 -1
  404. package/lib/cjs/store/activity-catalog.js +0 -3
  405. package/lib/cjs/store/activity-catalog.js.map +0 -1
  406. package/lib/cjs/store/agent-run.js +0 -16
  407. package/lib/cjs/store/agent-run.js.map +0 -1
  408. package/lib/cjs/store/collections.js +0 -9
  409. package/lib/cjs/store/collections.js.map +0 -1
  410. package/lib/cjs/store/common.js +0 -3
  411. package/lib/cjs/store/common.js.map +0 -1
  412. package/lib/cjs/store/conversation-state.js +0 -19
  413. package/lib/cjs/store/conversation-state.js.map +0 -1
  414. package/lib/cjs/store/doc-analyzer.js +0 -3
  415. package/lib/cjs/store/dsl-workflow.js +0 -5
  416. package/lib/cjs/store/dsl-workflow.js.map +0 -1
  417. package/lib/cjs/store/hive-memory.js +0 -3
  418. package/lib/cjs/store/index.js +0 -33
  419. package/lib/cjs/store/index.js.map +0 -1
  420. package/lib/cjs/store/object-types.js +0 -98
  421. package/lib/cjs/store/object-types.js.map +0 -1
  422. package/lib/cjs/store/rendering.js +0 -26
  423. package/lib/cjs/store/rendering.js.map +0 -1
  424. package/lib/cjs/store/schedule.js +0 -32
  425. package/lib/cjs/store/schedule.js.map +0 -1
  426. package/lib/cjs/store/signals.js +0 -3
  427. package/lib/cjs/store/store.js +0 -182
  428. package/lib/cjs/store/store.js.map +0 -1
  429. package/lib/cjs/store/temporalio.js +0 -44
  430. package/lib/cjs/store/temporalio.js.map +0 -1
  431. package/lib/cjs/store/worker.js +0 -3
  432. package/lib/cjs/store/worker.js.map +0 -1
  433. package/lib/cjs/store/workflow.js +0 -306
  434. package/lib/cjs/store/workflow.js.map +0 -1
  435. package/lib/cjs/sts-token-types.js +0 -32
  436. package/lib/cjs/sts-token-types.js.map +0 -1
  437. package/lib/cjs/tenant.js +0 -3
  438. package/lib/cjs/tenant.js.map +0 -1
  439. package/lib/cjs/tool-execution.js +0 -6
  440. package/lib/cjs/tool-execution.js.map +0 -1
  441. package/lib/cjs/training.js +0 -14
  442. package/lib/cjs/training.js.map +0 -1
  443. package/lib/cjs/transient-tokens.js +0 -9
  444. package/lib/cjs/transient-tokens.js.map +0 -1
  445. package/lib/cjs/user.js +0 -26
  446. package/lib/cjs/user.js.map +0 -1
  447. package/lib/cjs/utils/auth.js +0 -15
  448. package/lib/cjs/utils/auth.js.map +0 -1
  449. package/lib/cjs/utils/schemas.js +0 -182
  450. package/lib/cjs/utils/schemas.js.map +0 -1
  451. package/lib/cjs/utils/type-helpers.js +0 -3
  452. package/lib/cjs/versions.js +0 -10
  453. package/lib/cjs/versions.js.map +0 -1
  454. package/lib/cjs/workflow-analytics.js +0 -52
  455. package/lib/cjs/workflow-analytics.js.map +0 -1
  456. package/lib/esm/Progress.js.map +0 -1
  457. package/lib/esm/access-control.js.map +0 -1
  458. package/lib/esm/analytics.js.map +0 -1
  459. package/lib/esm/apikey.js.map +0 -1
  460. package/lib/esm/apps.js +0 -79
  461. package/lib/esm/apps.js.map +0 -1
  462. package/lib/esm/audit-trail.js +0 -7
  463. package/lib/esm/audit-trail.js.map +0 -1
  464. package/lib/esm/channels.js.map +0 -1
  465. package/lib/esm/common.js.map +0 -1
  466. package/lib/esm/cost-analytics.js.map +0 -1
  467. package/lib/esm/data-platform.js.map +0 -1
  468. package/lib/esm/email.js.map +0 -1
  469. package/lib/esm/environment.js.map +0 -1
  470. package/lib/esm/facets.js.map +0 -1
  471. package/lib/esm/group.js +0 -3
  472. package/lib/esm/group.js.map +0 -1
  473. package/lib/esm/index.js.map +0 -1
  474. package/lib/esm/integrations.js.map +0 -1
  475. package/lib/esm/interaction.js.map +0 -1
  476. package/lib/esm/json-schema.js.map +0 -1
  477. package/lib/esm/json.js.map +0 -1
  478. package/lib/esm/meters.js.map +0 -1
  479. package/lib/esm/model_utility.js +0 -2
  480. package/lib/esm/model_utility.js.map +0 -1
  481. package/lib/esm/oauth-server.js.map +0 -1
  482. package/lib/esm/oauth.js.map +0 -1
  483. package/lib/esm/openapi.js +0 -2
  484. package/lib/esm/openapi.js.map +0 -1
  485. package/lib/esm/payload.js.map +0 -1
  486. package/lib/esm/pending-asks.js.map +0 -1
  487. package/lib/esm/project.js +0 -138
  488. package/lib/esm/project.js.map +0 -1
  489. package/lib/esm/prompt.js.map +0 -1
  490. package/lib/esm/query.js.map +0 -1
  491. package/lib/esm/rate-limiter.js.map +0 -1
  492. package/lib/esm/refs.js.map +0 -1
  493. package/lib/esm/runs.js.map +0 -1
  494. package/lib/esm/skill.js.map +0 -1
  495. package/lib/esm/store/activity-catalog.js.map +0 -1
  496. package/lib/esm/store/agent-run.js.map +0 -1
  497. package/lib/esm/store/collections.js.map +0 -1
  498. package/lib/esm/store/common.js.map +0 -1
  499. package/lib/esm/store/conversation-state.js.map +0 -1
  500. package/lib/esm/store/doc-analyzer.js.map +0 -1
  501. package/lib/esm/store/dsl-workflow.js +0 -2
  502. package/lib/esm/store/dsl-workflow.js.map +0 -1
  503. package/lib/esm/store/hive-memory.js.map +0 -1
  504. package/lib/esm/store/index.js +0 -17
  505. package/lib/esm/store/index.js.map +0 -1
  506. package/lib/esm/store/object-types.js +0 -95
  507. package/lib/esm/store/object-types.js.map +0 -1
  508. package/lib/esm/store/rendering.js.map +0 -1
  509. package/lib/esm/store/schedule.js.map +0 -1
  510. package/lib/esm/store/signals.js.map +0 -1
  511. package/lib/esm/store/store.js.map +0 -1
  512. package/lib/esm/store/temporalio.js.map +0 -1
  513. package/lib/esm/store/worker.js +0 -2
  514. package/lib/esm/store/worker.js.map +0 -1
  515. package/lib/esm/store/workflow.js.map +0 -1
  516. package/lib/esm/sts-token-types.js.map +0 -1
  517. package/lib/esm/tenant.js.map +0 -1
  518. package/lib/esm/tool-execution.js.map +0 -1
  519. package/lib/esm/training.js.map +0 -1
  520. package/lib/esm/transient-tokens.js.map +0 -1
  521. package/lib/esm/user.js.map +0 -1
  522. package/lib/esm/utils/auth.js.map +0 -1
  523. package/lib/esm/utils/schemas.js.map +0 -1
  524. package/lib/esm/utils/type-helpers.js.map +0 -1
  525. package/lib/esm/versions.js.map +0 -1
  526. package/lib/esm/workflow-analytics.js.map +0 -1
  527. package/lib/tsconfig.tsbuildinfo +0 -1
  528. package/lib/types/Progress.d.ts.map +0 -1
  529. package/lib/types/access-control.d.ts +0 -79
  530. package/lib/types/access-control.d.ts.map +0 -1
  531. package/lib/types/analytics.d.ts.map +0 -1
  532. package/lib/types/apikey.d.ts.map +0 -1
  533. package/lib/types/apps.d.ts.map +0 -1
  534. package/lib/types/ask-user.d.ts.map +0 -1
  535. package/lib/types/audit-trail.d.ts.map +0 -1
  536. package/lib/types/channels.d.ts.map +0 -1
  537. package/lib/types/common.d.ts.map +0 -1
  538. package/lib/types/cost-analytics.d.ts.map +0 -1
  539. package/lib/types/data-platform.d.ts.map +0 -1
  540. package/lib/types/email.d.ts.map +0 -1
  541. package/lib/types/environment.d.ts.map +0 -1
  542. package/lib/types/facets.d.ts.map +0 -1
  543. package/lib/types/group.d.ts.map +0 -1
  544. package/lib/types/index.d.ts.map +0 -1
  545. package/lib/types/integrations.d.ts +0 -83
  546. package/lib/types/integrations.d.ts.map +0 -1
  547. package/lib/types/interaction.d.ts.map +0 -1
  548. package/lib/types/json-schema.d.ts +0 -1
  549. package/lib/types/json-schema.d.ts.map +0 -1
  550. package/lib/types/json.d.ts +0 -1
  551. package/lib/types/json.d.ts.map +0 -1
  552. package/lib/types/meters.d.ts.map +0 -1
  553. package/lib/types/model_utility.d.ts +0 -1
  554. package/lib/types/model_utility.d.ts.map +0 -1
  555. package/lib/types/oauth-server.d.ts.map +0 -1
  556. package/lib/types/oauth.d.ts.map +0 -1
  557. package/lib/types/openapi.d.ts +0 -90
  558. package/lib/types/openapi.d.ts.map +0 -1
  559. package/lib/types/payload.d.ts.map +0 -1
  560. package/lib/types/pending-asks.d.ts.map +0 -1
  561. package/lib/types/project.d.ts.map +0 -1
  562. package/lib/types/prompt.d.ts.map +0 -1
  563. package/lib/types/query.d.ts.map +0 -1
  564. package/lib/types/rate-limiter.d.ts.map +0 -1
  565. package/lib/types/refs.d.ts.map +0 -1
  566. package/lib/types/runs.d.ts.map +0 -1
  567. package/lib/types/skill.d.ts.map +0 -1
  568. package/lib/types/store/activity-catalog.d.ts.map +0 -1
  569. package/lib/types/store/agent-run.d.ts.map +0 -1
  570. package/lib/types/store/collections.d.ts.map +0 -1
  571. package/lib/types/store/common.d.ts.map +0 -1
  572. package/lib/types/store/conversation-state.d.ts.map +0 -1
  573. package/lib/types/store/doc-analyzer.d.ts.map +0 -1
  574. package/lib/types/store/dsl-workflow.d.ts.map +0 -1
  575. package/lib/types/store/hive-memory.d.ts.map +0 -1
  576. package/lib/types/store/index.d.ts +0 -16
  577. package/lib/types/store/index.d.ts.map +0 -1
  578. package/lib/types/store/object-types.d.ts.map +0 -1
  579. package/lib/types/store/rendering.d.ts.map +0 -1
  580. package/lib/types/store/schedule.d.ts.map +0 -1
  581. package/lib/types/store/signals.d.ts.map +0 -1
  582. package/lib/types/store/store.d.ts.map +0 -1
  583. package/lib/types/store/temporalio.d.ts +0 -16
  584. package/lib/types/store/temporalio.d.ts.map +0 -1
  585. package/lib/types/store/worker.d.ts +0 -18
  586. package/lib/types/store/worker.d.ts.map +0 -1
  587. package/lib/types/store/workflow.d.ts.map +0 -1
  588. package/lib/types/sts-token-types.d.ts.map +0 -1
  589. package/lib/types/tenant.d.ts.map +0 -1
  590. package/lib/types/tool-execution.d.ts.map +0 -1
  591. package/lib/types/training.d.ts.map +0 -1
  592. package/lib/types/transient-tokens.d.ts.map +0 -1
  593. package/lib/types/user.d.ts.map +0 -1
  594. package/lib/types/utils/auth.d.ts.map +0 -1
  595. package/lib/types/utils/schemas.d.ts.map +0 -1
  596. package/lib/types/utils/type-helpers.d.ts.map +0 -1
  597. package/lib/types/versions.d.ts.map +0 -1
  598. package/lib/types/workflow-analytics.d.ts.map +0 -1
  599. package/src/openapi.ts +0 -102
  600. package/src/store/worker.ts +0 -19
  601. /package/lib/{esm/analytics.js → analytics.js} +0 -0
  602. /package/lib/{esm/ask-user.js → ask-user.js} +0 -0
  603. /package/lib/{esm/common.js → common.js} +0 -0
  604. /package/lib/{esm/cost-analytics.js → cost-analytics.js} +0 -0
  605. /package/lib/{esm/data-platform.js → data-platform.js} +0 -0
  606. /package/lib/{esm/facets.js → facets.js} +0 -0
  607. /package/lib/{esm/json-schema.js → json-schema.js} +0 -0
  608. /package/lib/{esm/json.js → json.js} +0 -0
  609. /package/lib/{esm/meters.js → meters.js} +0 -0
  610. /package/lib/{esm/oauth-server.js → oauth-server.js} +0 -0
  611. /package/lib/{esm/oauth.js → oauth.js} +0 -0
  612. /package/lib/{esm/payload.js → payload.js} +0 -0
  613. /package/lib/{esm/pending-asks.js → pending-asks.js} +0 -0
  614. /package/lib/{esm/prompt.js → prompt.js} +0 -0
  615. /package/lib/{esm/query.js → query.js} +0 -0
  616. /package/lib/{esm/rate-limiter.js → rate-limiter.js} +0 -0
  617. /package/lib/{esm/refs.js → refs.js} +0 -0
  618. /package/lib/{esm/runs.js → runs.js} +0 -0
  619. /package/lib/{esm/skill.js → skill.js} +0 -0
  620. /package/lib/{esm/store → store}/activity-catalog.js +0 -0
  621. /package/lib/{esm/store → store}/agent-run.js +0 -0
  622. /package/lib/{esm/store → store}/collections.js +0 -0
  623. /package/lib/{esm/store → store}/common.js +0 -0
  624. /package/lib/{esm/store → store}/doc-analyzer.js +0 -0
  625. /package/lib/{esm/store → store}/hive-memory.js +0 -0
  626. /package/lib/{esm/store → store}/schedule.js +0 -0
  627. /package/lib/{esm/store → store}/signals.js +0 -0
  628. /package/lib/{esm/tenant.js → tenant.js} +0 -0
  629. /package/lib/{esm/tool-execution.js → tool-execution.js} +0 -0
  630. /package/lib/{esm/training.js → training.js} +0 -0
  631. /package/lib/{esm/transient-tokens.js → transient-tokens.js} +0 -0
  632. /package/lib/{esm/utils → utils}/type-helpers.js +0 -0
  633. /package/lib/{esm/versions.js → versions.js} +0 -0
  634. /package/lib/{esm/workflow-analytics.js → workflow-analytics.js} +0 -0
@@ -1,22 +1,18 @@
1
- import type {
2
- AIModel,
3
- ProviderParams,
4
- TextFallbackOptions
5
- } from "@llumiverse/common";
6
- import { ProviderList, Providers } from "@llumiverse/common";
1
+ import type { AIModel, ProviderParams, TextFallbackOptions } from '@llumiverse/common';
2
+ import { ProviderList, Providers } from '@llumiverse/common';
7
3
 
8
4
  // Virtual providers from studio
9
5
  export enum CustomProviders {
10
6
  virtual_lb = 'virtual_lb',
11
7
  virtual_mediator = 'virtual_mediator',
12
- test = 'test'
8
+ test = 'test',
13
9
  }
14
10
 
15
11
  export type SupportedProviders = Providers | CustomProviders;
16
12
 
17
13
  export const SupportedProviders = {
18
14
  ...Providers,
19
- ...CustomProviders
15
+ ...CustomProviders,
20
16
  } as const;
21
17
 
22
18
  export interface SupportedProviderParams extends Omit<ProviderParams, 'id'> {
@@ -24,25 +20,23 @@ export interface SupportedProviderParams extends Omit<ProviderParams, 'id'> {
24
20
  }
25
21
 
26
22
  export const CustomProvidersList: Record<CustomProviders, SupportedProviderParams> = {
27
- virtual_lb:
28
- {
23
+ virtual_lb: {
29
24
  id: CustomProviders.virtual_lb,
30
- name: "Virtual - Load Balancer",
25
+ name: 'Virtual - Load Balancer',
31
26
  requiresApiKey: false,
32
27
  requiresEndpointUrl: false,
33
28
  supportSearch: false,
34
29
  },
35
- virtual_mediator:
36
- {
30
+ virtual_mediator: {
37
31
  id: CustomProviders.virtual_mediator,
38
- name: "Virtual - Mediator",
32
+ name: 'Virtual - Mediator',
39
33
  requiresApiKey: false,
40
34
  requiresEndpointUrl: false,
41
35
  supportSearch: false,
42
36
  },
43
37
  test: {
44
38
  id: CustomProviders.test,
45
- name: "Test LLM",
39
+ name: 'Test LLM',
46
40
  requiresApiKey: false,
47
41
  requiresEndpointUrl: false,
48
42
  supportSearch: false,
@@ -51,10 +45,9 @@ export const CustomProvidersList: Record<CustomProviders, SupportedProviderParam
51
45
 
52
46
  export const SupportedProvidersList: Record<SupportedProviders, SupportedProviderParams> = {
53
47
  ...ProviderList,
54
- ...CustomProvidersList
48
+ ...CustomProvidersList,
55
49
  } as const;
56
50
 
57
-
58
51
  export interface VirtualEnvEntry {
59
52
  model: string;
60
53
  }
@@ -84,6 +77,24 @@ export interface MediatorEnvConfig {
84
77
  model_options?: TextFallbackOptions;
85
78
  }
86
79
 
80
+ export interface ExecutionEnvironmentSettings {
81
+ [key: string]: unknown;
82
+ bucket_access_principal?: string;
83
+ }
84
+
85
+ /**
86
+ * Returns the configured Vertex AI bucket access principal for an environment, or undefined.
87
+ * Only Vertex AI environments expose this setting; the value is trimmed and empty strings
88
+ * are treated as unset so callers get a single, normalized representation.
89
+ */
90
+ export function getVertexBucketAccessPrincipal(
91
+ env: { provider?: SupportedProviders; settings?: ExecutionEnvironmentSettings } | undefined,
92
+ ): string | undefined {
93
+ if (!env || env.provider !== SupportedProviders.vertexai) return undefined;
94
+ const principal = env.settings?.bucket_access_principal;
95
+ return typeof principal === 'string' && principal.trim().length > 0 ? principal.trim() : undefined;
96
+ }
97
+
87
98
  export interface ExecutionEnvironment {
88
99
  id: string;
89
100
  name: string;
@@ -98,16 +109,16 @@ export interface ExecutionEnvironment {
98
109
  * Stored alongside the encrypted key so the UI can display which key is configured.
99
110
  */
100
111
  apikey_hint?: string;
101
- config?: any;
112
+ config?: unknown;
102
113
  /**
103
114
  * Additional provider-specific settings passed through to the driver.
104
115
  * For example, custom headers for Apigee-proxied endpoints.
105
116
  */
106
- settings?: Record<string, unknown>;
117
+ settings?: ExecutionEnvironmentSettings;
107
118
  account: string;
108
119
  allowed_projects?: string[];
109
- created_by: string,
110
- updated_by: string,
120
+ created_by: string;
121
+ updated_by: string;
111
122
  created_at: string;
112
123
  updated_at: string;
113
124
  }
@@ -127,10 +138,18 @@ export interface ExecutionEnvironmentRef {
127
138
  updated_at: string;
128
139
  }
129
140
 
130
- export const ExecutionEnvironmentRefPopulate = "id name provider enabled_models default_model endpoint_url allowed_projects account created_at updated_at";
131
-
132
- export interface ExecutionEnvironmentCreatePayload extends Omit<ExecutionEnvironment, 'id' | 'account' | 'created_at' | 'updated_at' | 'created_by' | 'updated_by' | 'project' | 'apikey_hint'> { }
133
- export interface ExecutionEnvironmentUpdatePayload extends Partial<Omit<ExecutionEnvironment, 'id' | 'account' | 'created_at' | 'updated_at' | 'created_by' | 'updated_by' | 'apikey_hint'>> { }
141
+ export interface ExecutionEnvironmentCreatePayload
142
+ extends Omit<
143
+ ExecutionEnvironment,
144
+ 'id' | 'account' | 'created_at' | 'updated_at' | 'created_by' | 'updated_by' | 'project' | 'apikey_hint'
145
+ > {}
146
+ export interface ExecutionEnvironmentUpdatePayload
147
+ extends Partial<
148
+ Omit<
149
+ ExecutionEnvironment,
150
+ 'id' | 'account' | 'created_at' | 'updated_at' | 'created_by' | 'updated_by' | 'apikey_hint'
151
+ >
152
+ > {}
134
153
  export interface ExecutionEnvironmentConfigUpdatePayload {
135
154
  enabled_models?: AIModel[];
136
155
  config?: MediatorEnvConfig | LoadBalancingEnvConfig;
package/src/facets.ts CHANGED
@@ -1,27 +1,25 @@
1
-
2
1
  // this is the mongo definition of a facet. see https://www.mongodb.com/docs/atlas/atlas-search/facet/
3
2
  export interface StringFacet {
4
- type: "string",
5
- path: string,
6
- numBuckets?: number,
3
+ type: 'string';
4
+ path: string;
5
+ numBuckets?: number;
7
6
  }
8
7
 
9
8
  export interface NumericFacet {
10
- type: "number",
11
- path: string,
12
- boundaries: number[],
13
- default?: string
9
+ type: 'number';
10
+ path: string;
11
+ boundaries: number[];
12
+ default?: string;
14
13
  }
15
14
 
16
- export interface DateFacet<T extends (Date | string) = string> {
17
- type: "date",
18
- path: string,
19
- boundaries: T[], // array of dates
20
- default?: string
15
+ export interface DateFacet<T extends Date | string = string> {
16
+ type: 'date';
17
+ path: string;
18
+ boundaries: T[]; // array of dates
19
+ default?: string;
21
20
  }
22
21
 
23
- export type Facet<DateT extends (Date | string) = string> = StringFacet | NumericFacet | DateFacet<DateT>;
24
-
22
+ export type Facet<DateT extends Date | string = string> = StringFacet | NumericFacet | DateFacet<DateT>;
25
23
 
26
24
  export interface FacetSpec {
27
25
  name: string;
@@ -29,18 +27,18 @@ export interface FacetSpec {
29
27
  }
30
28
 
31
29
  export interface FacetBucket {
32
- _id: string,
33
- count: number,
30
+ _id: string;
31
+ count: number;
34
32
  }
35
33
 
36
34
  export interface FacetNameBucket {
37
- name: string,
38
- _id: string,
39
- count: number,
35
+ name: string;
36
+ _id: string;
37
+ count: number;
40
38
  }
41
39
 
42
40
  export interface FacetResult {
43
- buckets: FacetBucket[]
41
+ buckets: FacetBucket[];
44
42
  }
45
43
 
46
44
  export interface ComputedFacetBucket {
package/src/group.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { UserRef } from "./user.js";
2
-
1
+ import type { UserRef } from './user.js';
3
2
 
4
3
  export interface UserGroup {
5
4
  id: string;
@@ -11,6 +10,12 @@ export interface UserGroup {
11
10
  updated_at: Date;
12
11
  created_by?: string;
13
12
  updated_by?: string;
13
+ /** Custom properties for dynamic permission matching */
14
+ properties?: Record<string, unknown>;
15
+ /** BLP clearance level — merged with user clearance using max() */
16
+ clearance?: number;
17
+ /** Compartments — merged with user compartments using array union */
18
+ compartments?: string[];
14
19
  }
15
20
 
16
21
  export interface PopulatesUserGroup extends UserGroup {
@@ -27,14 +32,20 @@ export interface UpdateUserGroupPayload {
27
32
  name: string;
28
33
  description?: string;
29
34
  tags?: string[];
35
+ properties?: Record<string, unknown>;
36
+ clearance?: number;
37
+ compartments?: string[];
30
38
  }
31
39
 
32
40
  export interface UserGroupRef {
33
41
  id: string;
34
42
  name: string;
35
43
  tags?: string[];
44
+ properties?: Record<string, unknown>;
45
+ clearance?: number;
46
+ compartments?: string[];
36
47
  }
37
48
 
38
- export const UserGroupRefPopulate = 'id name tags description';
49
+ export const UserGroupRefPopulate = 'id name tags description properties clearance compartments';
39
50
 
40
51
  export const MEMBERS_GROUP_NAME = 'members';
@@ -0,0 +1,61 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import {
3
+ hostFromUrl,
4
+ hostMatchesAny,
5
+ isLocalhostOrVertesiaHost,
6
+ isLocalhostOrVertesiaUrl,
7
+ normalizeHost,
8
+ normalizeHostList,
9
+ urlMatchesAnyHost,
10
+ } from './host-utils.js';
11
+
12
+ describe('host-utils', () => {
13
+ it('normalizes hosts, URLs, wildcards, ports, and IPv6 brackets', () => {
14
+ expect(normalizeHost(' HTTPS://App.Example.COM:443/login ')).toBe('app.example.com');
15
+ expect(normalizeHost('*.example.com')).toBe('example.com');
16
+ expect(normalizeHost('https://*.example.com/login')).toBe('example.com');
17
+ expect(normalizeHost('localhost:3000')).toBe('localhost');
18
+ expect(normalizeHost('::1')).toBe('::1');
19
+ expect(normalizeHost('[::1]:3000')).toBe('::1');
20
+ });
21
+
22
+ it('rejects empty and malformed hosts', () => {
23
+ expect(normalizeHost('')).toBeUndefined();
24
+ expect(normalizeHost('bad host')).toBeUndefined();
25
+ expect(normalizeHost('example.com:bad')).toBeUndefined();
26
+ });
27
+
28
+ it('extracts hosts only from absolute URLs', () => {
29
+ expect(hostFromUrl('https://science.nasa.gov/exoplanets')).toBe('science.nasa.gov');
30
+ expect(hostFromUrl('science.nasa.gov/exoplanets')).toBeUndefined();
31
+ expect(hostFromUrl('/exoplanets', 'https://science.nasa.gov/search')).toBe('science.nasa.gov');
32
+ });
33
+
34
+ it('deduplicates normalized host lists', () => {
35
+ expect(normalizeHostList(['example.com', 'https://example.com/login', 'bad host'])).toEqual(['example.com']);
36
+ });
37
+
38
+ it('matches exact hosts and subdomains but fails closed for malformed hosts', () => {
39
+ expect(hostMatchesAny('login.example.com', ['example.com'])).toBe(true);
40
+ expect(hostMatchesAny('example.com', ['example.com'])).toBe(true);
41
+ expect(hostMatchesAny('evil-example.com', ['example.com'])).toBe(false);
42
+ expect(hostMatchesAny('bad host', ['example.com'])).toBe(false);
43
+ expect(hostMatchesAny('bad host', [])).toBe(true);
44
+ });
45
+
46
+ it('matches URLs against host allowlists', () => {
47
+ expect(urlMatchesAnyHost('https://login.example.com/path', ['example.com'])).toBe(true);
48
+ expect(urlMatchesAnyHost('/settings', ['example.com'], 'https://login.example.com/home')).toBe(true);
49
+ expect(urlMatchesAnyHost('http://[::1]:3000/app', ['::1'])).toBe(true);
50
+ expect(urlMatchesAnyHost('not a url', ['example.com'])).toBe(false);
51
+ });
52
+
53
+ it('identifies localhost and Vertesia hosts for browser auth', () => {
54
+ expect(isLocalhostOrVertesiaHost('localhost')).toBe(true);
55
+ expect(isLocalhostOrVertesiaHost('[::1]')).toBe(true);
56
+ expect(isLocalhostOrVertesiaUrl('http://[::1]:3000/app')).toBe(true);
57
+ expect(isLocalhostOrVertesiaUrl('https://studio.vertesia.io')).toBe(true);
58
+ expect(isLocalhostOrVertesiaUrl('https://evilvertesia.io')).toBe(false);
59
+ expect(isLocalhostOrVertesiaUrl('not a url')).toBe(false);
60
+ });
61
+ });
@@ -0,0 +1,93 @@
1
+ function stripLeadingWildcard(host: string): string {
2
+ return host.startsWith('*.') ? host.slice(2) : host;
3
+ }
4
+
5
+ function stripIPv6Brackets(host: string): string {
6
+ return host.startsWith('[') && host.endsWith(']') ? host.slice(1, -1) : host;
7
+ }
8
+
9
+ function looksLikeBareIpv6(host: string): boolean {
10
+ const firstColon = host.indexOf(':');
11
+ return firstColon >= 0 && host.indexOf(':', firstColon + 1) >= 0 && !host.startsWith('[');
12
+ }
13
+
14
+ function hasWhitespace(host: string): boolean {
15
+ return (
16
+ host.includes(' ') ||
17
+ host.includes('\t') ||
18
+ host.includes('\n') ||
19
+ host.includes('\r') ||
20
+ host.includes('\f') ||
21
+ host.includes('\v')
22
+ );
23
+ }
24
+
25
+ export function normalizeHost(value: unknown): string | undefined {
26
+ if (typeof value !== 'string') return undefined;
27
+ let input = value.trim().toLowerCase();
28
+ if (!input) return undefined;
29
+ input = stripLeadingWildcard(input);
30
+ input = input.endsWith('.') ? input.slice(0, -1) : input;
31
+
32
+ if (!input.includes('://')) {
33
+ input = looksLikeBareIpv6(input) ? `https://[${input}]` : `https://${input}`;
34
+ }
35
+
36
+ try {
37
+ const url = new URL(input);
38
+ let host = stripLeadingWildcard(stripIPv6Brackets(url.hostname.toLowerCase()));
39
+ host = host.endsWith('.') ? host.slice(0, -1) : host;
40
+ return host && !hasWhitespace(host) ? host : undefined;
41
+ } catch {
42
+ return undefined;
43
+ }
44
+ }
45
+
46
+ export function hostFromUrl(value: string, baseUrl?: string): string | undefined {
47
+ try {
48
+ const url = baseUrl ? new URL(value, baseUrl) : new URL(value);
49
+ return normalizeHost(url.hostname);
50
+ } catch {
51
+ return undefined;
52
+ }
53
+ }
54
+
55
+ export function normalizeHostList(value: unknown): string[] {
56
+ if (!Array.isArray(value)) return [];
57
+ return Array.from(new Set(value.map((entry) => normalizeHost(entry)).filter((entry): entry is string => !!entry)));
58
+ }
59
+
60
+ export function hostMatchesAny(host: string, allowlist: readonly string[] | undefined): boolean {
61
+ if (!allowlist || allowlist.length === 0) return true;
62
+ const normalizedHost = normalizeHost(host);
63
+ if (!normalizedHost) return false;
64
+ return allowlist.some((entry) => {
65
+ const normalizedEntry = normalizeHost(entry);
66
+ return (
67
+ !!normalizedEntry && (normalizedHost === normalizedEntry || normalizedHost.endsWith(`.${normalizedEntry}`))
68
+ );
69
+ });
70
+ }
71
+
72
+ export function urlMatchesAnyHost(url: string, allowlist: readonly string[] | undefined, baseUrl?: string): boolean {
73
+ if (!allowlist || allowlist.length === 0) return true;
74
+ const host = hostFromUrl(url, baseUrl);
75
+ return !!host && hostMatchesAny(host, allowlist);
76
+ }
77
+
78
+ export function isLocalhostOrVertesiaHost(value: string | undefined): boolean {
79
+ const host = normalizeHost(value);
80
+ return (
81
+ !!host &&
82
+ (host === 'localhost' ||
83
+ host === '127.0.0.1' ||
84
+ host === '::1' ||
85
+ host === 'vertesia.io' ||
86
+ host.endsWith('.vertesia.io'))
87
+ );
88
+ }
89
+
90
+ export function isLocalhostOrVertesiaUrl(value: string): boolean {
91
+ const host = hostFromUrl(value);
92
+ return isLocalhostOrVertesiaHost(host);
93
+ }
package/src/index.ts CHANGED
@@ -1,40 +1,48 @@
1
1
  export * from './access-control.js';
2
+ export * from './agent-request-template.js';
2
3
  export * from './analytics.js';
3
- export * from './audit-trail.js';
4
- export * from './cost-analytics.js';
5
4
  export * from './apikey.js';
6
5
  export * from './apps.js';
7
6
  export * from './ask-user.js';
7
+ export * from './audit-trail.js';
8
+ export * from './browser-credentials.js';
8
9
  export * from './channels.js';
9
10
  export * from './common.js';
11
+ export * from './cost-analytics.js';
10
12
  export * from './data-platform.js';
13
+ export * from './embeddings.js';
11
14
  export * from './environment.js';
12
- export * from "./facets.js";
15
+ export * from './facets.js';
13
16
  export * from './group.js';
17
+ export * from './host-utils.js';
14
18
  export * from './integrations.js';
15
19
  export * from './interaction.js';
16
- export * from './pending-asks.js';
17
- export * from './json-schema.js';
18
20
  export * from './json.js';
21
+ export * from './json-schema.js';
19
22
  export * from './meters.js';
20
- export * from './oauth-server.js';
21
23
  export * from './model_utility.js';
22
- export * from './openapi.js';
23
24
  export * from './oauth.js';
25
+ export * from './oauth-scopes.js';
26
+ export * from './oauth-server.js';
27
+ export * from './Progress.js';
24
28
  export * from './payload.js';
25
- export * from "./Progress.js";
29
+ export * from './pending-asks.js';
30
+ export * from './principal-context.js';
26
31
  export * from './project.js';
27
32
  export * from './prompt.js';
28
33
  export * from './query.js';
29
34
  export * from './rate-limiter.js';
30
35
  export * from './refs.js';
36
+ export * from './roles.js';
31
37
  export * from './runs.js';
38
+ export * from './secrets.js';
32
39
  export * from './skill.js';
33
- export * from "./store/index.js";
40
+ export * from './store/index.js';
34
41
  export * from './sts-token-types.js';
35
42
  export * from './tenant.js';
36
43
  export * from './tool-execution.js';
37
- export * from "./training.js";
44
+ export * from './tools.js';
45
+ export * from './training.js';
38
46
  export * from './transient-tokens.js';
39
47
  export * from './user.js';
40
48
  export * from './utils/auth.js';