@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
@@ -0,0 +1,428 @@
1
+ import { PROCESS_DEFINITION_FORMAT_VERSION, } from './process.js';
2
+ export function getProcessInteractionValidationSelectors(interactions) {
3
+ const selectors = new Set();
4
+ for (const interaction of interactions) {
5
+ selectors.add(interaction.id);
6
+ selectors.add(interaction.name);
7
+ if (interaction.type === 'sys') {
8
+ selectors.add(`sys:${interaction.name}`);
9
+ }
10
+ if (interaction.type === 'app' && !interaction.id.startsWith('app:')) {
11
+ selectors.add(`app:${interaction.id}`);
12
+ }
13
+ if (interaction.type === 'stored' || interaction.type === 'draft') {
14
+ selectors.add(`${interaction.name}@draft`);
15
+ selectors.add(`${interaction.id}@draft`);
16
+ if (typeof interaction.version === 'number') {
17
+ selectors.add(`${interaction.name}@${interaction.version}`);
18
+ selectors.add(`${interaction.id}@${interaction.version}`);
19
+ }
20
+ }
21
+ }
22
+ return [...selectors];
23
+ }
24
+ export const MAX_PROCESS_DEFINITION_BYTES = 1024 * 1024;
25
+ export const MAX_PROCESS_GUARD_DEPTH = 64;
26
+ export const MAX_PROCESS_GUARD_NODES = 4096;
27
+ export function validateProcessDefinitionBody(definition, options = {}) {
28
+ const result = getProcessDefinitionValidationResult(definition, options);
29
+ if (!result.valid) {
30
+ throw new Error(result.errors.join('; '));
31
+ }
32
+ }
33
+ export function getProcessDefinitionValidationResult(definition, options = {}) {
34
+ const errors = [];
35
+ const context = createValidationContext(options);
36
+ const size = new TextEncoder().encode(JSON.stringify(definition)).length;
37
+ if (size > MAX_PROCESS_DEFINITION_BYTES) {
38
+ errors.push(`process definition exceeds ${MAX_PROCESS_DEFINITION_BYTES} bytes`);
39
+ }
40
+ if (!definition.process) {
41
+ errors.push('process is missing');
42
+ }
43
+ if (definition.format_version !== PROCESS_DEFINITION_FORMAT_VERSION) {
44
+ errors.push(`format_version must be ${PROCESS_DEFINITION_FORMAT_VERSION}`);
45
+ }
46
+ if (!definition.initial) {
47
+ errors.push('initial node is missing');
48
+ }
49
+ if (!definition.nodes || Object.keys(definition.nodes).length === 0) {
50
+ errors.push('nodes are missing');
51
+ }
52
+ else if (definition.initial && !definition.nodes[definition.initial]) {
53
+ errors.push(`initial node "${definition.initial}" does not exist`);
54
+ }
55
+ if (!definition.context?.schema) {
56
+ errors.push('context.schema is missing');
57
+ }
58
+ if (!definition.context?.initial) {
59
+ errors.push('context.initial is missing');
60
+ }
61
+ for (const [nodeId, node] of Object.entries(definition.nodes ?? {})) {
62
+ validateNodeDefinition(definition, nodeId, node, errors, context);
63
+ }
64
+ return {
65
+ valid: errors.length === 0,
66
+ errors,
67
+ };
68
+ }
69
+ function validateNodeDefinition(definition, nodeId, node, errors, context) {
70
+ if (!isProcessNodeType(node.type)) {
71
+ errors.push(`node "${nodeId}" has invalid type "${String(node.type)}"`);
72
+ }
73
+ if (node.type === 'human_task') {
74
+ if (!node.task) {
75
+ errors.push(`human_task node "${nodeId}" is missing task`);
76
+ }
77
+ else if (!node.task.title) {
78
+ errors.push(`human_task node "${nodeId}" task title is missing`);
79
+ }
80
+ else if (!Array.isArray(node.task.fields)) {
81
+ errors.push(`human_task node "${nodeId}" task fields must be an array`);
82
+ }
83
+ }
84
+ if (node.type === 'tool') {
85
+ validateToolNodeDefinition(nodeId, node, errors, context);
86
+ }
87
+ if ((node.type === 'interaction' || node.type === 'agent') && node.interaction && context.knownInteractions) {
88
+ if (!isKnownSelector(node.interaction, context.knownInteractions)) {
89
+ errors.push(`${node.type} node "${nodeId}" references unknown interaction "${node.interaction}"`);
90
+ }
91
+ }
92
+ if ((node.type === 'interaction' || node.type === 'agent') &&
93
+ node.result_schema !== undefined &&
94
+ !isRecord(node.result_schema)) {
95
+ errors.push(`${node.type} node "${nodeId}" result_schema must be a JSON Schema object`);
96
+ }
97
+ if (node.type === 'process') {
98
+ if (!node.process && !node.process_definition) {
99
+ errors.push(`process node "${nodeId}" is missing process or process_definition`);
100
+ }
101
+ if (node.run_type && !isProcessNodeRunType(node.run_type)) {
102
+ errors.push(`process node "${nodeId}" has invalid run_type "${String(node.run_type)}"`);
103
+ }
104
+ if (node.returns?.from !== undefined && typeof node.returns.from !== 'string') {
105
+ errors.push(`process node "${nodeId}" returns.from must be a string`);
106
+ }
107
+ if (node.returns?.context !== undefined && !isStringArray(node.returns.context)) {
108
+ errors.push(`process node "${nodeId}" returns.context must be an array of strings`);
109
+ }
110
+ if (node.process_definition) {
111
+ const childResult = getProcessDefinitionValidationResult(node.process_definition, context.options);
112
+ for (const error of childResult.errors) {
113
+ errors.push(`process node "${nodeId}" process_definition: ${error}`);
114
+ }
115
+ }
116
+ }
117
+ if (node.type === 'foreach') {
118
+ if (!node.foreach) {
119
+ errors.push(`foreach node "${nodeId}" is missing foreach`);
120
+ }
121
+ if (!node.node) {
122
+ errors.push(`foreach node "${nodeId}" is missing node`);
123
+ }
124
+ if (node.max_concurrency !== undefined &&
125
+ (!Number.isInteger(node.max_concurrency) || node.max_concurrency < 1)) {
126
+ errors.push(`foreach node "${nodeId}" max_concurrency must be a positive integer`);
127
+ }
128
+ if (node.item_id !== undefined && typeof node.item_id !== 'string') {
129
+ errors.push(`foreach node "${nodeId}" item_id must be a string`);
130
+ }
131
+ validateCollectDefinition('foreach', nodeId, node.collect, errors);
132
+ if (node.node) {
133
+ validateFanoutChildNodeDefinition(definition, {
134
+ ownerLabel: `foreach node "${nodeId}"`,
135
+ childPath: `${nodeId}.node`,
136
+ childLabel: `foreach node "${nodeId}" child node`,
137
+ child: node.node,
138
+ }, errors, context);
139
+ }
140
+ }
141
+ if (node.type === 'branch') {
142
+ if (!Array.isArray(node.branches) || node.branches.length === 0) {
143
+ errors.push(`branch node "${nodeId}" must define at least one branch`);
144
+ }
145
+ if (node.join !== undefined && node.join !== 'all') {
146
+ errors.push(`branch node "${nodeId}" join must be "all"`);
147
+ }
148
+ validateCollectDefinition('branch', nodeId, node.collect, errors);
149
+ const branches = getBranchNodeBranches(node);
150
+ const seenIds = new Set();
151
+ for (const [index, branch] of branches.entries()) {
152
+ if (!branch.id) {
153
+ errors.push(`branch node "${nodeId}" branch at index ${index} is missing id`);
154
+ }
155
+ else if (seenIds.has(branch.id)) {
156
+ errors.push(`branch node "${nodeId}" has duplicate branch id "${branch.id}"`);
157
+ }
158
+ else {
159
+ seenIds.add(branch.id);
160
+ }
161
+ if (!branch.node) {
162
+ errors.push(`branch node "${nodeId}" branch "${branch.id || index}" is missing node`);
163
+ continue;
164
+ }
165
+ validateFanoutChildNodeDefinition(definition, {
166
+ ownerLabel: `branch node "${nodeId}" branch "${branch.id || index}"`,
167
+ childPath: `${nodeId}.branches.${index}.node`,
168
+ childLabel: `branch node "${nodeId}" branch "${branch.id || index}" child node`,
169
+ child: branch.node,
170
+ }, errors, context);
171
+ }
172
+ }
173
+ if (node.failure_policy && !isParallelFailurePolicy(node.failure_policy)) {
174
+ errors.push(`node "${nodeId}" has invalid failure_policy "${String(node.failure_policy)}"`);
175
+ }
176
+ for (const transition of node.transitions ?? []) {
177
+ if (!definition.nodes[transition.to]) {
178
+ errors.push(`node "${nodeId}" has transition to "${transition.to}" which does not exist`);
179
+ }
180
+ if (transition.trigger && !isTransitionTrigger(transition.trigger)) {
181
+ errors.push(`node "${nodeId}" has invalid transition trigger "${transition.trigger}"`);
182
+ }
183
+ if (typeof transition.guard === 'string') {
184
+ errors.push(`node "${nodeId}" transition to "${transition.to}" guard must be a JSON Logic object`);
185
+ }
186
+ else if (transition.guard) {
187
+ validateGuardRule(`node "${nodeId}" transition to "${transition.to}" guard`, transition.guard, errors);
188
+ }
189
+ }
190
+ for (const [index, branch] of getConditionBranches(node).entries()) {
191
+ if (hasStringConditionProperty(branch, 'condition')) {
192
+ errors.push(`node "${nodeId}" branch at index ${index} uses string condition; use JSON Logic in "when" instead`);
193
+ }
194
+ if (hasStringConditionProperty(branch, 'guard')) {
195
+ errors.push(`node "${nodeId}" branch at index ${index} uses string guard; use JSON Logic in "when" instead`);
196
+ }
197
+ if (!definition.nodes[branch.to]) {
198
+ errors.push(`node "${nodeId}" has branch to "${branch.to}" which does not exist`);
199
+ }
200
+ if (typeof branch.when === 'string') {
201
+ errors.push(`node "${nodeId}" branch to "${branch.to}" when must be a JSON Logic object`);
202
+ }
203
+ else if (branch.when) {
204
+ validateGuardRule(`node "${nodeId}" branch to "${branch.to}" guard`, branch.when, errors);
205
+ }
206
+ }
207
+ }
208
+ function createValidationContext(options) {
209
+ return {
210
+ options,
211
+ knownTools: options.knownTools ? new Set(options.knownTools) : undefined,
212
+ knownInteractions: options.knownInteractions ? new Set(options.knownInteractions) : undefined,
213
+ };
214
+ }
215
+ function validateToolNodeDefinition(nodeId, node, errors, context) {
216
+ if (!node.tool) {
217
+ errors.push(`tool node "${nodeId}" is missing tool`);
218
+ return;
219
+ }
220
+ if (context.knownTools && !context.knownTools.has(node.tool)) {
221
+ errors.push(`tool node "${nodeId}" references unknown tool "${node.tool}"`);
222
+ }
223
+ if (node.tool === 'set_context') {
224
+ validateSetContextNode(nodeId, node, errors);
225
+ }
226
+ }
227
+ function validateSetContextNode(nodeId, node, errors) {
228
+ const input = node.input;
229
+ if (!isRecord(input)) {
230
+ errors.push(`tool node "${nodeId}" set_context input must be an object`);
231
+ return;
232
+ }
233
+ for (const key of Object.keys(input)) {
234
+ if (key !== 'updates' && key !== 'reason' && key !== 'event_id') {
235
+ errors.push(`tool node "${nodeId}" set_context input has unsupported property "${key}"`);
236
+ }
237
+ }
238
+ if (!isRecord(input.updates)) {
239
+ errors.push(`tool node "${nodeId}" set_context input.updates must be an object`);
240
+ return;
241
+ }
242
+ if (input.reason !== undefined && typeof input.reason !== 'string') {
243
+ errors.push(`tool node "${nodeId}" set_context input.reason must be a string`);
244
+ }
245
+ if (input.event_id !== undefined && typeof input.event_id !== 'string') {
246
+ errors.push(`tool node "${nodeId}" set_context input.event_id must be a string`);
247
+ }
248
+ validateSetContextWrites(nodeId, node, input.updates, errors);
249
+ }
250
+ function validateSetContextWrites(nodeId, node, updates, errors) {
251
+ const updateKeys = Object.keys(updates);
252
+ if (updateKeys.length === 0) {
253
+ return;
254
+ }
255
+ if (!Array.isArray(node.writes) || node.writes.length === 0) {
256
+ errors.push(`tool node "${nodeId}" set_context updates require declared writes`);
257
+ return;
258
+ }
259
+ for (const key of updateKeys) {
260
+ if (key.startsWith('_')) {
261
+ errors.push(`tool node "${nodeId}" set_context cannot write reserved context field "${key}"`);
262
+ }
263
+ if (!isWriteAllowed(key, node.writes)) {
264
+ errors.push(`tool node "${nodeId}" set_context updates "${key}" but writes does not allow it`);
265
+ }
266
+ }
267
+ }
268
+ function isWriteAllowed(key, writes) {
269
+ return writes.some((write) => key === write || key.startsWith(`${write}.`));
270
+ }
271
+ function isKnownSelector(selector, knownSelectors) {
272
+ if (knownSelectors.has(selector)) {
273
+ return true;
274
+ }
275
+ if (!selector.includes('@')) {
276
+ return false;
277
+ }
278
+ return knownSelectors.has(selector.slice(0, selector.lastIndexOf('@')));
279
+ }
280
+ function hasStringConditionProperty(value, key) {
281
+ return isRecord(value) && typeof value[key] === 'string';
282
+ }
283
+ function isProcessNodeType(value) {
284
+ return (value === 'tool' ||
285
+ value === 'interaction' ||
286
+ value === 'agent' ||
287
+ value === 'process' ||
288
+ value === 'human_task' ||
289
+ value === 'foreach' ||
290
+ value === 'branch' ||
291
+ value === 'condition' ||
292
+ value === 'final');
293
+ }
294
+ function isProcessNodeRunType(value) {
295
+ return value === 'supervised' || value === 'programmatic';
296
+ }
297
+ function isTransitionTrigger(value) {
298
+ return value === 'auto' || value === 'agent' || value === 'user';
299
+ }
300
+ function isParallelFailurePolicy(value) {
301
+ return value === 'fail_fast' || value === 'collect_errors';
302
+ }
303
+ function isFanoutChildNodeType(value) {
304
+ return value === 'tool' || value === 'interaction' || value === 'agent' || value === 'process';
305
+ }
306
+ function validateFanoutChildNodeDefinition(definition, input, errors, context) {
307
+ const { ownerLabel, childPath, childLabel, child } = input;
308
+ if (!isFanoutChildNodeType(child.type)) {
309
+ errors.push(`${ownerLabel} has unsupported child node type "${String(child.type)}"`);
310
+ return;
311
+ }
312
+ if ((child.transitions ?? []).length > 0) {
313
+ errors.push(`${childLabel} must not define transitions`);
314
+ }
315
+ if ((child.branches ?? []).length > 0) {
316
+ errors.push(`${childLabel} must not define branches`);
317
+ }
318
+ validateNodeDefinition(definition, childPath, {
319
+ ...child,
320
+ transitions: undefined,
321
+ branches: undefined,
322
+ }, errors, context);
323
+ }
324
+ function validateCollectDefinition(nodeKind, nodeId, collect, errors) {
325
+ if (collect === undefined) {
326
+ return;
327
+ }
328
+ if (typeof collect === 'string') {
329
+ if (!collect) {
330
+ errors.push(`${nodeKind} node "${nodeId}" collect must not be empty`);
331
+ }
332
+ return;
333
+ }
334
+ if (!isRecord(collect)) {
335
+ errors.push(`${nodeKind} node "${nodeId}" collect must be a string or object`);
336
+ return;
337
+ }
338
+ if (typeof collect.into !== 'string' || !collect.into) {
339
+ errors.push(`${nodeKind} node "${nodeId}" collect.into is required`);
340
+ }
341
+ if (collect.mode !== undefined && collect.mode !== 'array') {
342
+ errors.push(`${nodeKind} node "${nodeId}" collect.mode must be "array"`);
343
+ }
344
+ if (collect.include !== undefined) {
345
+ if (!Array.isArray(collect.include)) {
346
+ errors.push(`${nodeKind} node "${nodeId}" collect.include must be an array`);
347
+ return;
348
+ }
349
+ for (const field of collect.include) {
350
+ if (typeof field !== 'string' || !isParallelCollectField(field)) {
351
+ errors.push(`${nodeKind} node "${nodeId}" collect.include has invalid field "${String(field)}"`);
352
+ }
353
+ }
354
+ }
355
+ }
356
+ function isParallelCollectField(value) {
357
+ return (value === 'status' ||
358
+ value === 'index' ||
359
+ value === 'item' ||
360
+ value === 'item_id' ||
361
+ value === 'branch_id' ||
362
+ value === 'branch_title' ||
363
+ value === 'output' ||
364
+ value === 'context_update' ||
365
+ value === 'error' ||
366
+ value === 'child_run_id' ||
367
+ value === 'child_workflow_id' ||
368
+ value === 'child_workflow_run_id');
369
+ }
370
+ function isStringArray(value) {
371
+ return Array.isArray(value) && value.every((item) => typeof item === 'string');
372
+ }
373
+ function validateGuardRule(label, rule, errors) {
374
+ const result = inspectGuardRule(rule);
375
+ if (result.depth > MAX_PROCESS_GUARD_DEPTH) {
376
+ errors.push(`${label} exceeds maximum depth ${MAX_PROCESS_GUARD_DEPTH}`);
377
+ }
378
+ if (result.nodes > MAX_PROCESS_GUARD_NODES) {
379
+ errors.push(`${label} exceeds maximum node count ${MAX_PROCESS_GUARD_NODES}`);
380
+ }
381
+ }
382
+ function inspectGuardRule(rule) {
383
+ let maxDepth = 0;
384
+ let nodes = 0;
385
+ const stack = [{ value: rule, depth: 1 }];
386
+ while (stack.length > 0) {
387
+ const next = stack.pop();
388
+ if (!next) {
389
+ continue;
390
+ }
391
+ nodes += 1;
392
+ maxDepth = Math.max(maxDepth, next.depth);
393
+ if (nodes > MAX_PROCESS_GUARD_NODES || maxDepth > MAX_PROCESS_GUARD_DEPTH) {
394
+ break;
395
+ }
396
+ if (Array.isArray(next.value)) {
397
+ for (const item of next.value) {
398
+ stack.push({ value: item, depth: next.depth + 1 });
399
+ }
400
+ }
401
+ else if (isRecord(next.value)) {
402
+ for (const value of Object.values(next.value)) {
403
+ stack.push({ value, depth: next.depth + 1 });
404
+ }
405
+ }
406
+ }
407
+ return { depth: maxDepth, nodes };
408
+ }
409
+ function isRecord(value) {
410
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
411
+ }
412
+ function getConditionBranches(node) {
413
+ return node.type === 'condition' && Array.isArray(node.branches)
414
+ ? node.branches.filter(isConditionBranchDefinition)
415
+ : [];
416
+ }
417
+ function getBranchNodeBranches(node) {
418
+ return node.type === 'branch' && Array.isArray(node.branches)
419
+ ? node.branches.filter(isBranchNodeBranchDefinition)
420
+ : [];
421
+ }
422
+ function isConditionBranchDefinition(branch) {
423
+ return 'to' in branch;
424
+ }
425
+ function isBranchNodeBranchDefinition(branch) {
426
+ return 'node' in branch;
427
+ }
428
+ //# sourceMappingURL=process-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-validation.js","sourceRoot":"","sources":["../../src/store/process-validation.ts"],"names":[],"mappings":"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"}