@takeshape/schema 12.1.1 → 12.1.4

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 (514) hide show
  1. package/dist/agents.d.ts +62 -0
  2. package/dist/agents.js +346 -0
  3. package/dist/api-version.d.ts +5 -0
  4. package/dist/api-version.js +17 -0
  5. package/dist/auth-schemas.d.ts +144 -0
  6. package/dist/auth-schemas.js +7 -0
  7. package/dist/auth-utils.d.ts +19 -0
  8. package/dist/auth-utils.js +26 -0
  9. package/dist/builtin-schema.d.ts +18 -0
  10. package/dist/builtin-schema.js +710 -0
  11. package/dist/constants.d.ts +1 -0
  12. package/dist/constants.js +1 -0
  13. package/dist/content-schema-transform.d.ts +35 -0
  14. package/dist/content-schema-transform.js +162 -0
  15. package/dist/create-input-schema.d.ts +9 -0
  16. package/dist/create-input-schema.js +68 -0
  17. package/dist/enum.d.ts +2 -0
  18. package/dist/enum.js +9 -0
  19. package/dist/flatten-templates.d.ts +2 -0
  20. package/dist/flatten-templates.js +20 -0
  21. package/dist/get-is-leaf.d.ts +3 -0
  22. package/dist/get-is-leaf.js +56 -0
  23. package/dist/index.d.ts +64 -0
  24. package/dist/index.js +61 -0
  25. package/dist/interfaces.d.ts +14 -0
  26. package/dist/interfaces.js +86 -0
  27. package/dist/layers/layers.d.ts +26 -0
  28. package/dist/layers/layers.js +301 -0
  29. package/dist/layers/refs.d.ts +102 -0
  30. package/dist/layers/refs.js +220 -0
  31. package/dist/layers/type-utils.d.ts +59 -0
  32. package/dist/layers/type-utils.js +118 -0
  33. package/dist/layers/visitor.d.ts +5 -0
  34. package/dist/layers/visitor.js +38 -0
  35. package/dist/migration/index.d.ts +79 -0
  36. package/dist/migration/index.js +110 -0
  37. package/dist/migration/to/v3.0.0.d.ts +4 -0
  38. package/dist/migration/to/v3.0.0.js +212 -0
  39. package/dist/migration/to/v3.1.0.d.ts +4 -0
  40. package/dist/migration/to/v3.1.0.js +194 -0
  41. package/dist/migration/to/v3.10.0.d.ts +4 -0
  42. package/dist/migration/to/v3.10.0.js +67 -0
  43. package/dist/migration/to/v3.11.0.d.ts +4 -0
  44. package/dist/migration/to/v3.11.0.js +85 -0
  45. package/dist/migration/to/v3.12.3.d.ts +4 -0
  46. package/dist/migration/to/v3.12.3.js +87 -0
  47. package/dist/migration/to/v3.13.0.d.ts +4 -0
  48. package/dist/migration/to/v3.13.0.js +17 -0
  49. package/dist/migration/to/v3.17.0.d.ts +4 -0
  50. package/dist/migration/to/v3.17.0.js +22 -0
  51. package/dist/migration/to/v3.18.0.d.ts +4 -0
  52. package/dist/migration/to/v3.18.0.js +64 -0
  53. package/dist/migration/to/v3.18.1.d.ts +4 -0
  54. package/dist/migration/to/v3.18.1.js +12 -0
  55. package/dist/migration/to/v3.18.2.d.ts +4 -0
  56. package/dist/migration/to/v3.18.2.js +19 -0
  57. package/dist/migration/to/v3.20.0.d.ts +4 -0
  58. package/dist/migration/to/v3.20.0.js +24 -0
  59. package/dist/migration/to/v3.22.0.d.ts +4 -0
  60. package/dist/migration/to/v3.22.0.js +25 -0
  61. package/dist/migration/to/v3.24.0.d.ts +4 -0
  62. package/dist/migration/to/v3.24.0.js +11 -0
  63. package/dist/migration/to/v3.25.0.d.ts +4 -0
  64. package/dist/migration/to/v3.25.0.js +11 -0
  65. package/dist/migration/to/v3.3.0.d.ts +4 -0
  66. package/dist/migration/to/v3.3.0.js +13 -0
  67. package/dist/migration/to/v3.31.0.d.ts +4 -0
  68. package/dist/migration/to/v3.31.0.js +38 -0
  69. package/dist/migration/to/v3.32.0.d.ts +4 -0
  70. package/dist/migration/to/v3.32.0.js +59 -0
  71. package/dist/migration/to/v3.34.0.d.ts +6 -0
  72. package/dist/migration/to/v3.34.0.js +111 -0
  73. package/dist/migration/to/v3.36.0.d.ts +4 -0
  74. package/dist/migration/to/v3.36.0.js +22 -0
  75. package/dist/migration/to/v3.39.0.d.ts +4 -0
  76. package/dist/migration/to/v3.39.0.js +45 -0
  77. package/dist/migration/to/v3.40.0.d.ts +4 -0
  78. package/dist/migration/to/v3.40.0.js +26 -0
  79. package/dist/migration/to/v3.46.0.d.ts +4 -0
  80. package/dist/migration/to/v3.46.0.js +35 -0
  81. package/dist/migration/to/v3.57.0.d.ts +4 -0
  82. package/dist/migration/to/v3.57.0.js +18 -0
  83. package/dist/migration/to/v3.60.0.d.ts +4 -0
  84. package/dist/migration/to/v3.60.0.js +129 -0
  85. package/dist/migration/to/v3.9.0.d.ts +4 -0
  86. package/dist/migration/to/v3.9.0.js +79 -0
  87. package/dist/migration/types.d.ts +26 -0
  88. package/dist/migration/types.js +3 -0
  89. package/dist/migration/utils.d.ts +2 -0
  90. package/dist/migration/utils.js +6 -0
  91. package/dist/mocks.d.ts +14 -0
  92. package/dist/mocks.js +58 -0
  93. package/dist/models/agent.d.ts +3 -0
  94. package/dist/models/agent.js +73 -0
  95. package/dist/models/project-schema.d.ts +28 -0
  96. package/dist/models/project-schema.js +186 -0
  97. package/dist/models/query.d.ts +3 -0
  98. package/dist/models/query.js +46 -0
  99. package/dist/models/runtime-schema.d.ts +9 -0
  100. package/dist/models/runtime-schema.js +20 -0
  101. package/dist/models/shape.d.ts +4 -0
  102. package/dist/models/shape.js +36 -0
  103. package/dist/models/tool.d.ts +4 -0
  104. package/dist/models/tool.js +147 -0
  105. package/dist/models/types.d.ts +97 -0
  106. package/dist/models/types.js +1 -0
  107. package/dist/models/user-schema.d.ts +7 -0
  108. package/dist/models/user-schema.js +9 -0
  109. package/dist/patterns.d.ts +12 -0
  110. package/dist/patterns.js +1 -0
  111. package/dist/project-schema/index.d.ts +229 -0
  112. package/dist/project-schema/index.js +89 -0
  113. package/dist/project-schema/latest.d.ts +2762 -0
  114. package/dist/project-schema/latest.js +7 -0
  115. package/dist/project-schema/migrate.d.ts +4 -0
  116. package/dist/project-schema/migrate.js +236 -0
  117. package/dist/project-schema/v1.0.0.d.ts +299 -0
  118. package/dist/project-schema/v1.0.0.js +7 -0
  119. package/dist/project-schema/v3.0.0.d.ts +478 -0
  120. package/dist/project-schema/v3.0.0.js +7 -0
  121. package/dist/project-schema/v3.1.0.d.ts +621 -0
  122. package/dist/project-schema/v3.1.0.js +7 -0
  123. package/dist/project-schema/v3.10.0.d.ts +1201 -0
  124. package/dist/project-schema/v3.10.0.js +7 -0
  125. package/dist/project-schema/v3.11.0.d.ts +1210 -0
  126. package/dist/project-schema/v3.11.0.js +7 -0
  127. package/dist/project-schema/v3.12.0.d.ts +1214 -0
  128. package/dist/project-schema/v3.12.0.js +7 -0
  129. package/dist/project-schema/v3.12.1.d.ts +1273 -0
  130. package/dist/project-schema/v3.12.1.js +7 -0
  131. package/dist/project-schema/v3.12.2.d.ts +1283 -0
  132. package/dist/project-schema/v3.12.2.js +7 -0
  133. package/dist/project-schema/v3.12.3.d.ts +1306 -0
  134. package/dist/project-schema/v3.12.3.js +7 -0
  135. package/dist/project-schema/v3.13.0.d.ts +1317 -0
  136. package/dist/project-schema/v3.13.0.js +7 -0
  137. package/dist/project-schema/v3.13.1.d.ts +1412 -0
  138. package/dist/project-schema/v3.13.1.js +7 -0
  139. package/dist/project-schema/v3.14.0.d.ts +1436 -0
  140. package/dist/project-schema/v3.14.0.js +7 -0
  141. package/dist/project-schema/v3.15.0.d.ts +1458 -0
  142. package/dist/project-schema/v3.15.0.js +7 -0
  143. package/dist/project-schema/v3.16.0.d.ts +1470 -0
  144. package/dist/project-schema/v3.16.0.js +7 -0
  145. package/dist/project-schema/v3.17.0.d.ts +1467 -0
  146. package/dist/project-schema/v3.17.0.js +7 -0
  147. package/dist/project-schema/v3.17.1.d.ts +1468 -0
  148. package/dist/project-schema/v3.17.1.js +7 -0
  149. package/dist/project-schema/v3.18.0.d.ts +1333 -0
  150. package/dist/project-schema/v3.18.0.js +7 -0
  151. package/dist/project-schema/v3.18.1.d.ts +1332 -0
  152. package/dist/project-schema/v3.18.1.js +7 -0
  153. package/dist/project-schema/v3.18.2.d.ts +1332 -0
  154. package/dist/project-schema/v3.18.2.js +7 -0
  155. package/dist/project-schema/v3.19.0.d.ts +1336 -0
  156. package/dist/project-schema/v3.19.0.js +7 -0
  157. package/dist/project-schema/v3.2.0.d.ts +632 -0
  158. package/dist/project-schema/v3.2.0.js +7 -0
  159. package/dist/project-schema/v3.20.0.d.ts +1336 -0
  160. package/dist/project-schema/v3.20.0.js +7 -0
  161. package/dist/project-schema/v3.21.0.d.ts +1338 -0
  162. package/dist/project-schema/v3.21.0.js +7 -0
  163. package/dist/project-schema/v3.22.0.d.ts +1344 -0
  164. package/dist/project-schema/v3.22.0.js +7 -0
  165. package/dist/project-schema/v3.23.0.d.ts +1376 -0
  166. package/dist/project-schema/v3.23.0.js +7 -0
  167. package/dist/project-schema/v3.24.0.d.ts +1364 -0
  168. package/dist/project-schema/v3.24.0.js +7 -0
  169. package/dist/project-schema/v3.25.0.d.ts +1363 -0
  170. package/dist/project-schema/v3.25.0.js +7 -0
  171. package/dist/project-schema/v3.26.0.d.ts +1388 -0
  172. package/dist/project-schema/v3.26.0.js +7 -0
  173. package/dist/project-schema/v3.27.0.d.ts +1397 -0
  174. package/dist/project-schema/v3.27.0.js +7 -0
  175. package/dist/project-schema/v3.28.0.d.ts +1416 -0
  176. package/dist/project-schema/v3.28.0.js +7 -0
  177. package/dist/project-schema/v3.29.0.d.ts +1423 -0
  178. package/dist/project-schema/v3.29.0.js +7 -0
  179. package/dist/project-schema/v3.3.0.d.ts +632 -0
  180. package/dist/project-schema/v3.3.0.js +7 -0
  181. package/dist/project-schema/v3.30.0.d.ts +1416 -0
  182. package/dist/project-schema/v3.30.0.js +7 -0
  183. package/dist/project-schema/v3.31.0.d.ts +1448 -0
  184. package/dist/project-schema/v3.31.0.js +7 -0
  185. package/dist/project-schema/v3.32.0.d.ts +1439 -0
  186. package/dist/project-schema/v3.32.0.js +7 -0
  187. package/dist/project-schema/v3.33.0.d.ts +1445 -0
  188. package/dist/project-schema/v3.33.0.js +7 -0
  189. package/dist/project-schema/v3.34.0.d.ts +1445 -0
  190. package/dist/project-schema/v3.34.0.js +7 -0
  191. package/dist/project-schema/v3.35.0.d.ts +1464 -0
  192. package/dist/project-schema/v3.35.0.js +7 -0
  193. package/dist/project-schema/v3.36.0.d.ts +1470 -0
  194. package/dist/project-schema/v3.36.0.js +7 -0
  195. package/dist/project-schema/v3.37.0.d.ts +1522 -0
  196. package/dist/project-schema/v3.37.0.js +7 -0
  197. package/dist/project-schema/v3.38.0.d.ts +1522 -0
  198. package/dist/project-schema/v3.38.0.js +7 -0
  199. package/dist/project-schema/v3.39.0.d.ts +1529 -0
  200. package/dist/project-schema/v3.39.0.js +7 -0
  201. package/dist/project-schema/v3.4.0.d.ts +624 -0
  202. package/dist/project-schema/v3.4.0.js +7 -0
  203. package/dist/project-schema/v3.40.0.d.ts +1530 -0
  204. package/dist/project-schema/v3.40.0.js +7 -0
  205. package/dist/project-schema/v3.41.0.d.ts +1530 -0
  206. package/dist/project-schema/v3.41.0.js +7 -0
  207. package/dist/project-schema/v3.42.0.d.ts +1534 -0
  208. package/dist/project-schema/v3.42.0.js +7 -0
  209. package/dist/project-schema/v3.43.0.d.ts +1536 -0
  210. package/dist/project-schema/v3.43.0.js +7 -0
  211. package/dist/project-schema/v3.44.0.d.ts +1621 -0
  212. package/dist/project-schema/v3.44.0.js +7 -0
  213. package/dist/project-schema/v3.45.0.d.ts +1650 -0
  214. package/dist/project-schema/v3.45.0.js +7 -0
  215. package/dist/project-schema/v3.46.0.d.ts +1703 -0
  216. package/dist/project-schema/v3.46.0.js +7 -0
  217. package/dist/project-schema/v3.47.0.d.ts +1736 -0
  218. package/dist/project-schema/v3.47.0.js +7 -0
  219. package/dist/project-schema/v3.48.0.d.ts +2208 -0
  220. package/dist/project-schema/v3.48.0.js +7 -0
  221. package/dist/project-schema/v3.49.0.d.ts +2217 -0
  222. package/dist/project-schema/v3.49.0.js +7 -0
  223. package/dist/project-schema/v3.5.0.d.ts +649 -0
  224. package/dist/project-schema/v3.5.0.js +7 -0
  225. package/dist/project-schema/v3.5.1.d.ts +649 -0
  226. package/dist/project-schema/v3.5.1.js +7 -0
  227. package/dist/project-schema/v3.50.0.d.ts +2269 -0
  228. package/dist/project-schema/v3.50.0.js +7 -0
  229. package/dist/project-schema/v3.51.0.d.ts +2269 -0
  230. package/dist/project-schema/v3.51.0.js +7 -0
  231. package/dist/project-schema/v3.52.0.d.ts +2269 -0
  232. package/dist/project-schema/v3.52.0.js +7 -0
  233. package/dist/project-schema/v3.53.0.d.ts +2350 -0
  234. package/dist/project-schema/v3.53.0.js +7 -0
  235. package/dist/project-schema/v3.54.0.d.ts +2369 -0
  236. package/dist/project-schema/v3.54.0.js +7 -0
  237. package/dist/project-schema/v3.55.0.d.ts +2369 -0
  238. package/dist/project-schema/v3.55.0.js +7 -0
  239. package/dist/project-schema/v3.56.0.d.ts +2405 -0
  240. package/dist/project-schema/v3.56.0.js +7 -0
  241. package/dist/project-schema/v3.57.0.d.ts +2601 -0
  242. package/dist/project-schema/v3.57.0.js +7 -0
  243. package/dist/project-schema/v3.58.0.d.ts +2601 -0
  244. package/dist/project-schema/v3.58.0.js +7 -0
  245. package/dist/project-schema/v3.59.0.d.ts +2650 -0
  246. package/dist/project-schema/v3.59.0.js +7 -0
  247. package/dist/project-schema/v3.6.0.d.ts +658 -0
  248. package/dist/project-schema/v3.6.0.js +7 -0
  249. package/dist/project-schema/v3.60.0.d.ts +2678 -0
  250. package/dist/project-schema/v3.60.0.js +7 -0
  251. package/dist/project-schema/v3.61.0.d.ts +2678 -0
  252. package/dist/project-schema/v3.61.0.js +7 -0
  253. package/dist/project-schema/v3.62.0.d.ts +2693 -0
  254. package/dist/project-schema/v3.62.0.js +7 -0
  255. package/dist/project-schema/v3.63.0.d.ts +2701 -0
  256. package/dist/project-schema/v3.63.0.js +7 -0
  257. package/dist/project-schema/v3.64.0.d.ts +2710 -0
  258. package/dist/project-schema/v3.64.0.js +7 -0
  259. package/dist/project-schema/v3.65.0.d.ts +2762 -0
  260. package/dist/project-schema/v3.65.0.js +7 -0
  261. package/dist/project-schema/v3.7.0.d.ts +961 -0
  262. package/dist/project-schema/v3.7.0.js +7 -0
  263. package/dist/project-schema/v3.8.0.d.ts +979 -0
  264. package/dist/project-schema/v3.8.0.js +7 -0
  265. package/dist/project-schema/v3.9.0.d.ts +1178 -0
  266. package/dist/project-schema/v3.9.0.js +7 -0
  267. package/dist/project-schema/v4.0.0.d.ts +1328 -0
  268. package/dist/project-schema/v4.0.0.js +7 -0
  269. package/dist/refs.d.ts +220 -0
  270. package/dist/refs.js +648 -0
  271. package/dist/relationships.d.ts +40 -0
  272. package/dist/relationships.js +302 -0
  273. package/dist/resolvers/ai/abort-agent-message-args.d.ts +16 -0
  274. package/dist/resolvers/ai/abort-agent-message-args.js +13 -0
  275. package/dist/resolvers/ai/abort-agent-message-response.d.ts +39 -0
  276. package/dist/resolvers/ai/abort-agent-message-response.js +19 -0
  277. package/dist/resolvers/ai/agent-attachment.d.ts +27 -0
  278. package/dist/resolvers/ai/agent-attachment.js +22 -0
  279. package/dist/resolvers/ai/agent-chat-args.d.ts +62 -0
  280. package/dist/resolvers/ai/agent-chat-args.js +30 -0
  281. package/dist/resolvers/ai/agent-chat-payload.d.ts +35 -0
  282. package/dist/resolvers/ai/agent-chat-payload.js +26 -0
  283. package/dist/resolvers/ai/agent-chat-response.d.ts +366 -0
  284. package/dist/resolvers/ai/agent-chat-response.js +21 -0
  285. package/dist/resolvers/ai/agent-generate-args.d.ts +62 -0
  286. package/dist/resolvers/ai/agent-generate-args.js +30 -0
  287. package/dist/resolvers/ai/agent-message-input.d.ts +73 -0
  288. package/dist/resolvers/ai/agent-message-input.js +39 -0
  289. package/dist/resolvers/ai/agent-message-output.d.ts +169 -0
  290. package/dist/resolvers/ai/agent-message-output.js +77 -0
  291. package/dist/resolvers/ai/agent-message-payload.d.ts +849 -0
  292. package/dist/resolvers/ai/agent-message-payload.js +167 -0
  293. package/dist/resolvers/ai/agent-run-mode.d.ts +8 -0
  294. package/dist/resolvers/ai/agent-run-mode.js +9 -0
  295. package/dist/resolvers/ai/agent-session-payload.d.ts +840 -0
  296. package/dist/resolvers/ai/agent-session-payload.js +218 -0
  297. package/dist/resolvers/ai/ai-usage-item.d.ts +70 -0
  298. package/dist/resolvers/ai/ai-usage-item.js +70 -0
  299. package/dist/resolvers/ai/create-agent-session-response.d.ts +276 -0
  300. package/dist/resolvers/ai/create-agent-session-response.js +9 -0
  301. package/dist/resolvers/ai/embedding-search.d.ts +54 -0
  302. package/dist/resolvers/ai/embedding-search.js +46 -0
  303. package/dist/resolvers/ai/get-agent-message-args.d.ts +16 -0
  304. package/dist/resolvers/ai/get-agent-message-args.js +13 -0
  305. package/dist/resolvers/ai/get-agent-message-response.d.ts +1253 -0
  306. package/dist/resolvers/ai/get-agent-message-response.js +79 -0
  307. package/dist/resolvers/ai/inspect-agent-args.d.ts +16 -0
  308. package/dist/resolvers/ai/inspect-agent-args.js +13 -0
  309. package/dist/resolvers/ai/inspect-agent-response.d.ts +631 -0
  310. package/dist/resolvers/ai/inspect-agent-response.js +48 -0
  311. package/dist/resolvers/ai/send-agent-feedback-args.d.ts +52 -0
  312. package/dist/resolvers/ai/send-agent-feedback-args.js +16 -0
  313. package/dist/resolvers/ai/send-agent-message-args.d.ts +48 -0
  314. package/dist/resolvers/ai/send-agent-message-args.js +36 -0
  315. package/dist/resolvers/ai/send-agent-message-response.d.ts +432 -0
  316. package/dist/resolvers/ai/send-agent-message-response.js +51 -0
  317. package/dist/resolvers/ai/types.d.ts +8 -0
  318. package/dist/resolvers/ai/types.js +1 -0
  319. package/dist/resolvers/takeshape/assets/asset-image-meta.d.ts +79 -0
  320. package/dist/resolvers/takeshape/assets/asset-image-meta.js +98 -0
  321. package/dist/resolvers/takeshape/assets/asset-image-params.d.ts +901 -0
  322. package/dist/resolvers/takeshape/assets/asset-image-params.js +726 -0
  323. package/dist/resolvers/takeshape/assets/asset-image.d.ts +17 -0
  324. package/dist/resolvers/takeshape/assets/asset-image.js +15 -0
  325. package/dist/resolvers/takeshape/assets/asset.d.ts +125 -0
  326. package/dist/resolvers/takeshape/assets/asset.js +107 -0
  327. package/dist/resolvers/takeshape/assets/constants.d.ts +11 -0
  328. package/dist/resolvers/takeshape/assets/constants.js +11 -0
  329. package/dist/resolvers/takeshape/builtins/constants.d.ts +1 -0
  330. package/dist/resolvers/takeshape/builtins/constants.js +1 -0
  331. package/dist/runtime-schema.d.ts +6 -0
  332. package/dist/runtime-schema.js +85 -0
  333. package/dist/scalars.d.ts +2 -0
  334. package/dist/scalars.js +4 -0
  335. package/dist/schema-transform.d.ts +19 -0
  336. package/dist/schema-transform.js +74 -0
  337. package/dist/schema-util.d.ts +266 -0
  338. package/dist/schema-util.js +1127 -0
  339. package/dist/schemas/auth-schemas.json +400 -0
  340. package/dist/schemas/index.d.ts +4 -0
  341. package/dist/schemas/index.js +182 -0
  342. package/dist/schemas/project-schema/experimental-2025-07.json +1297 -0
  343. package/dist/schemas/project-schema/latest.d.ts +245 -0
  344. package/dist/schemas/project-schema/latest.js +25 -0
  345. package/dist/schemas/project-schema/latest.json +5109 -0
  346. package/dist/schemas/project-schema/meta-schema-v1.0.0.json +193 -0
  347. package/dist/schemas/project-schema/meta-schema-v3.0.0.json +608 -0
  348. package/dist/schemas/project-schema/meta-schema-v3.1.0.json +608 -0
  349. package/dist/schemas/project-schema/meta-schema-v3.2.0.json +612 -0
  350. package/dist/schemas/project-schema/meta-schema-v3.3.0.json +612 -0
  351. package/dist/schemas/project-schema/meta-schema-v3.4.0.json +637 -0
  352. package/dist/schemas/project-schema/meta-schema-v3.5.0.json +626 -0
  353. package/dist/schemas/project-schema/meta-schema-v3.5.1.json +626 -0
  354. package/dist/schemas/project-schema/meta-schema-v3.6.0.json +629 -0
  355. package/dist/schemas/project-schema/meta-schema-v3.7.0.json +1137 -0
  356. package/dist/schemas/project-schema/meta-schema-v3.8.0.json +1137 -0
  357. package/dist/schemas/project-schema/meta-schema-v3.9.0.json +1477 -0
  358. package/dist/schemas/project-schema/v1.0.0.json +321 -0
  359. package/dist/schemas/project-schema/v3.0.0.json +414 -0
  360. package/dist/schemas/project-schema/v3.1.0.json +572 -0
  361. package/dist/schemas/project-schema/v3.10.0.json +2097 -0
  362. package/dist/schemas/project-schema/v3.11.0.json +2141 -0
  363. package/dist/schemas/project-schema/v3.12.0.json +2144 -0
  364. package/dist/schemas/project-schema/v3.12.1.json +2282 -0
  365. package/dist/schemas/project-schema/v3.12.2.json +2304 -0
  366. package/dist/schemas/project-schema/v3.12.3.json +2357 -0
  367. package/dist/schemas/project-schema/v3.13.0.json +2377 -0
  368. package/dist/schemas/project-schema/v3.14.0.json +2385 -0
  369. package/dist/schemas/project-schema/v3.15.0.json +2365 -0
  370. package/dist/schemas/project-schema/v3.16.0.json +2373 -0
  371. package/dist/schemas/project-schema/v3.17.0.json +2378 -0
  372. package/dist/schemas/project-schema/v3.17.1.json +2380 -0
  373. package/dist/schemas/project-schema/v3.18.0.json +2356 -0
  374. package/dist/schemas/project-schema/v3.18.1.json +2357 -0
  375. package/dist/schemas/project-schema/v3.18.2.json +2357 -0
  376. package/dist/schemas/project-schema/v3.19.0.json +2369 -0
  377. package/dist/schemas/project-schema/v3.2.0.json +580 -0
  378. package/dist/schemas/project-schema/v3.20.0.json +2369 -0
  379. package/dist/schemas/project-schema/v3.21.0.json +2376 -0
  380. package/dist/schemas/project-schema/v3.22.0.json +2381 -0
  381. package/dist/schemas/project-schema/v3.23.0.json +2456 -0
  382. package/dist/schemas/project-schema/v3.24.0.json +2556 -0
  383. package/dist/schemas/project-schema/v3.25.0.json +2552 -0
  384. package/dist/schemas/project-schema/v3.26.0.json +2599 -0
  385. package/dist/schemas/project-schema/v3.27.0.json +2611 -0
  386. package/dist/schemas/project-schema/v3.28.0.json +2656 -0
  387. package/dist/schemas/project-schema/v3.29.0.json +2670 -0
  388. package/dist/schemas/project-schema/v3.3.0.json +581 -0
  389. package/dist/schemas/project-schema/v3.30.0.json +2656 -0
  390. package/dist/schemas/project-schema/v3.31.0.json +2714 -0
  391. package/dist/schemas/project-schema/v3.32.0.json +2708 -0
  392. package/dist/schemas/project-schema/v3.33.0.json +2715 -0
  393. package/dist/schemas/project-schema/v3.34.0.json +2715 -0
  394. package/dist/schemas/project-schema/v3.35.0.json +2748 -0
  395. package/dist/schemas/project-schema/v3.36.0.json +2756 -0
  396. package/dist/schemas/project-schema/v3.37.0.json +2821 -0
  397. package/dist/schemas/project-schema/v3.38.0.json +2819 -0
  398. package/dist/schemas/project-schema/v3.39.0.json +2827 -0
  399. package/dist/schemas/project-schema/v3.4.0.json +571 -0
  400. package/dist/schemas/project-schema/v3.40.0.json +2830 -0
  401. package/dist/schemas/project-schema/v3.41.0.json +2830 -0
  402. package/dist/schemas/project-schema/v3.42.0.json +2835 -0
  403. package/dist/schemas/project-schema/v3.43.0.json +2841 -0
  404. package/dist/schemas/project-schema/v3.44.0.json +3013 -0
  405. package/dist/schemas/project-schema/v3.45.0.json +3064 -0
  406. package/dist/schemas/project-schema/v3.46.0.json +3136 -0
  407. package/dist/schemas/project-schema/v3.47.0.json +3189 -0
  408. package/dist/schemas/project-schema/v3.48.0.json +3196 -0
  409. package/dist/schemas/project-schema/v3.49.0.json +3239 -0
  410. package/dist/schemas/project-schema/v3.5.0.json +571 -0
  411. package/dist/schemas/project-schema/v3.5.1.json +571 -0
  412. package/dist/schemas/project-schema/v3.50.0.json +3320 -0
  413. package/dist/schemas/project-schema/v3.51.0.json +3326 -0
  414. package/dist/schemas/project-schema/v3.52.0.json +3326 -0
  415. package/dist/schemas/project-schema/v3.53.0.json +3476 -0
  416. package/dist/schemas/project-schema/v3.54.0.json +3512 -0
  417. package/dist/schemas/project-schema/v3.55.0.json +3515 -0
  418. package/dist/schemas/project-schema/v3.56.0.json +3530 -0
  419. package/dist/schemas/project-schema/v3.57.0.json +4815 -0
  420. package/dist/schemas/project-schema/v3.58.0.json +4815 -0
  421. package/dist/schemas/project-schema/v3.59.0.json +4912 -0
  422. package/dist/schemas/project-schema/v3.6.0.json +587 -0
  423. package/dist/schemas/project-schema/v3.60.0.json +4974 -0
  424. package/dist/schemas/project-schema/v3.61.0.json +4974 -0
  425. package/dist/schemas/project-schema/v3.62.0.json +5007 -0
  426. package/dist/schemas/project-schema/v3.63.0.json +5020 -0
  427. package/dist/schemas/project-schema/v3.64.0.json +5032 -0
  428. package/dist/schemas/project-schema/v3.65.0.json +5109 -0
  429. package/dist/schemas/project-schema/v3.7.0.json +587 -0
  430. package/dist/schemas/project-schema/v3.8.0.json +604 -0
  431. package/dist/schemas/project-schema/v3.9.0.json +604 -0
  432. package/dist/schemas/project-schema/v4.0.0.json +2316 -0
  433. package/dist/schemas/project-schema.json +232 -0
  434. package/dist/service-dependencies.d.ts +13 -0
  435. package/dist/service-dependencies.js +165 -0
  436. package/dist/services/services.d.ts +31 -0
  437. package/dist/services/services.js +145 -0
  438. package/dist/services/types.d.ts +11 -0
  439. package/dist/services/types.js +1 -0
  440. package/dist/services/util.d.ts +16 -0
  441. package/dist/services/util.js +36 -0
  442. package/dist/shape-paths.d.ts +7 -0
  443. package/dist/shape-paths.js +40 -0
  444. package/dist/taxonomies.d.ts +15 -0
  445. package/dist/taxonomies.js +24 -0
  446. package/dist/template-shapes/index.d.ts +7 -0
  447. package/dist/template-shapes/index.js +33 -0
  448. package/dist/template-shapes/names.d.ts +10 -0
  449. package/dist/template-shapes/names.js +21 -0
  450. package/dist/template-shapes/templates.d.ts +32 -0
  451. package/dist/template-shapes/templates.js +316 -0
  452. package/dist/template-shapes/types.d.ts +15 -0
  453. package/dist/template-shapes/types.js +7 -0
  454. package/dist/template-shapes/where.d.ts +37 -0
  455. package/dist/template-shapes/where.js +415 -0
  456. package/dist/types/index.d.ts +3 -0
  457. package/dist/types/index.js +2 -0
  458. package/dist/types/transforms.d.ts +15 -0
  459. package/dist/types/transforms.js +1 -0
  460. package/dist/types/types.d.ts +206 -0
  461. package/dist/types/types.js +10 -0
  462. package/dist/types/utils.d.ts +112 -0
  463. package/dist/types/utils.js +269 -0
  464. package/dist/unions.d.ts +14 -0
  465. package/dist/unions.js +77 -0
  466. package/dist/util/agent-utils.d.ts +2 -0
  467. package/dist/util/agent-utils.js +7 -0
  468. package/dist/util/api-indexing.d.ts +9 -0
  469. package/dist/util/api-indexing.js +57 -0
  470. package/dist/util/coerce-value.d.ts +9 -0
  471. package/dist/util/coerce-value.js +32 -0
  472. package/dist/util/detect-cycles.d.ts +7 -0
  473. package/dist/util/detect-cycles.js +45 -0
  474. package/dist/util/expressions.d.ts +34 -0
  475. package/dist/util/expressions.js +350 -0
  476. package/dist/util/find-shape-at-path.d.ts +21 -0
  477. package/dist/util/find-shape-at-path.js +53 -0
  478. package/dist/util/form-config.d.ts +11 -0
  479. package/dist/util/form-config.js +62 -0
  480. package/dist/util/get-conflicting-properties.d.ts +6 -0
  481. package/dist/util/get-conflicting-properties.js +55 -0
  482. package/dist/util/get-return-shape.d.ts +4 -0
  483. package/dist/util/get-return-shape.js +30 -0
  484. package/dist/util/graphql-string.d.ts +6 -0
  485. package/dist/util/graphql-string.js +75 -0
  486. package/dist/util/has-arg.d.ts +6 -0
  487. package/dist/util/has-arg.js +25 -0
  488. package/dist/util/is-asset-property.d.ts +3 -0
  489. package/dist/util/is-asset-property.js +11 -0
  490. package/dist/util/merge.d.ts +17 -0
  491. package/dist/util/merge.js +278 -0
  492. package/dist/util/patch-schema.d.ts +13 -0
  493. package/dist/util/patch-schema.js +89 -0
  494. package/dist/util/query-field-path.d.ts +9 -0
  495. package/dist/util/query-field-path.js +23 -0
  496. package/dist/util/shapes.d.ts +5 -0
  497. package/dist/util/shapes.js +22 -0
  498. package/dist/util/tools.d.ts +10 -0
  499. package/dist/util/tools.js +39 -0
  500. package/dist/validate/ai.d.ts +6 -0
  501. package/dist/validate/ai.js +221 -0
  502. package/dist/validate/errors.d.ts +3 -0
  503. package/dist/validate/errors.js +20 -0
  504. package/dist/validate/types.d.ts +43 -0
  505. package/dist/validate/types.js +1 -0
  506. package/dist/validate/util.d.ts +9 -0
  507. package/dist/validate/util.js +62 -0
  508. package/dist/validate/validate.d.ts +41 -0
  509. package/dist/validate/validate.js +1042 -0
  510. package/dist/versions.d.ts +4 -0
  511. package/dist/versions.js +4 -0
  512. package/dist/workflows.d.ts +14 -0
  513. package/dist/workflows.js +66 -0
  514. package/package.json +6 -6
@@ -0,0 +1,62 @@
1
+ import type { AgentJSON, AgentMap, GuardJSON, GuardMap, ProjectSchemaJSON, QueryJSON } from './project-schema/index.ts';
2
+ /**
3
+ * Special transition destination ID for a newly created, never started session.
4
+ */
5
+ export declare const AGENT_SESSION_CREATED = "SESSION_CREATED";
6
+ /**
7
+ * Special transition destination ID for a started session.
8
+ */
9
+ export declare const START_AGENT_EXECUTION = "START";
10
+ /**
11
+ * Special transition destination ID for agent transitions that end the agent execution.
12
+ */
13
+ export declare const END_AGENT_EXECUTION = "END";
14
+ /**
15
+ * Special history strategy ID that indicates the history should be cleared.
16
+ */
17
+ export declare const CLEAR_HISTORY_STRATEGY_ID = "clearHistory";
18
+ export declare const EXECUTION_TYPE_CHAT = "chat";
19
+ export declare const EXECUTION_TYPE_GENERATE = "generate";
20
+ export declare const EXECUTION_TYPE_GRAPHQL = "graphql";
21
+ export declare function getAgentEndStates(agent: AgentJSON, includeSuspend?: boolean): Set<string>;
22
+ export declare const getCreateAgentSessionMutationName: (agentName: string) => string;
23
+ export declare const getInspectAgentQueryName: (agentName: string) => string;
24
+ export declare const getSendAgentFeedbackMutationName: (agentName: string) => string;
25
+ export declare const getGetAgentMessageQueryName: (agentName: string) => string;
26
+ export declare const getAbortAgentMessageMutationName: (agentName: string) => string;
27
+ export declare const getSendAgentMessageMutationName: (inputName: string) => string;
28
+ export declare function getAgentFeatures(agents: AgentMap): Pick<ProjectSchemaJSON, 'queries' | 'mutations' | 'shapes'>;
29
+ export declare function isValidAgentMutation(projectSchema: ProjectSchemaJSON, name: string): boolean;
30
+ export declare function addAiQueries(projectSchema: ProjectSchemaJSON): ProjectSchemaJSON;
31
+ /**
32
+ * Where guards live in the schema.
33
+ */
34
+ export declare const GUARDS_SCHEMA_PATH: readonly ["guards"];
35
+ export declare const AGENTS_SCHEMA_PATH: readonly ["agents"];
36
+ /**
37
+ * Check if a guard is enabled.
38
+ */
39
+ export declare const isGuardEnabled: (guard: GuardJSON | undefined) => boolean;
40
+ export declare function getGuardMap(schema: ProjectSchemaJSON): GuardMap | undefined;
41
+ export declare function getGuards(schema: ProjectSchemaJSON): (GuardJSON & {
42
+ id: string;
43
+ })[];
44
+ export declare function setGuardMap<S extends Partial<ProjectSchemaJSON>>(schema: S, guards: GuardMap): S;
45
+ export declare function setGuard<S extends Partial<ProjectSchemaJSON>>(schema: S, id: string, guard: GuardJSON): S;
46
+ /**
47
+ * Get a guard configuration from the project schema.
48
+ */
49
+ export declare function getGuardConfig(schema: ProjectSchemaJSON, guardId: string): GuardJSON | undefined;
50
+ /**
51
+ * Get a guard configuration from the project schema, but only if it is enabled.
52
+ */
53
+ export declare function getEnabledGuardConfig(schema: ProjectSchemaJSON, guardId: string): GuardJSON | undefined;
54
+ export declare function getAgentMap(projectSchema: Pick<ProjectSchemaJSON, 'agents'>): AgentMap | undefined;
55
+ export declare function getAgents(projectSchema: Pick<ProjectSchemaJSON, 'agents'>): (AgentJSON & {
56
+ name: string;
57
+ })[] | undefined;
58
+ export declare function setAgentMap<S extends Partial<ProjectSchemaJSON>>(projectSchema: S, agents: AgentMap): S;
59
+ export declare function setAgent<S extends Partial<ProjectSchemaJSON>>(projectSchema: S, name: string, agent: AgentJSON): S;
60
+ export declare function getAgent(projectSchema: ProjectSchemaJSON, name: string): AgentJSON | undefined;
61
+ export declare function ensureAgent(projectSchema: ProjectSchemaJSON, name: string): AgentJSON;
62
+ export declare function isAgentQuery(query: QueryJSON, agentName: string): boolean;
package/dist/agents.js ADDED
@@ -0,0 +1,346 @@
1
+ import { assert } from '@takeshape/util';
2
+ import set from 'lodash/fp/set.js';
3
+ import get from 'lodash/get.js';
4
+ import uniq from 'lodash/uniq.js';
5
+ import upperFirst from 'lodash/upperFirst.js';
6
+ import * as abortAgentMessageResponse from "./resolvers/ai/abort-agent-message-response.js";
7
+ import * as agentChatPayload from "./resolvers/ai/agent-chat-payload.js";
8
+ import * as agentSessionPayload from "./resolvers/ai/agent-session-payload.js";
9
+ import * as getAgentMessageArgs from "./resolvers/ai/get-agent-message-args.js";
10
+ import * as getAgentMessageResponse from "./resolvers/ai/get-agent-message-response.js";
11
+ import * as inspectAgentArgs from "./resolvers/ai/inspect-agent-args.js";
12
+ import * as inspectAgentResponse from "./resolvers/ai/inspect-agent-response.js";
13
+ import * as sendAgentFeedbackArgs from "./resolvers/ai/send-agent-feedback-args.js";
14
+ import * as sendAgentMessageArgs from "./resolvers/ai/send-agent-message-args.js";
15
+ import * as sendAgentMessageResponse from "./resolvers/ai/send-agent-message-response.js";
16
+ import { JSON_SHAPE_NAME } from "./resolvers/takeshape/builtins/constants.js";
17
+ /**
18
+ * Special transition destination ID for a newly created, never started session.
19
+ */
20
+ export const AGENT_SESSION_CREATED = 'SESSION_CREATED';
21
+ /**
22
+ * Special transition destination ID for a started session.
23
+ */
24
+ export const START_AGENT_EXECUTION = 'START';
25
+ /**
26
+ * Special transition destination ID for agent transitions that end the agent execution.
27
+ */
28
+ export const END_AGENT_EXECUTION = 'END';
29
+ /**
30
+ * Special history strategy ID that indicates the history should be cleared.
31
+ */
32
+ export const CLEAR_HISTORY_STRATEGY_ID = 'clearHistory';
33
+ export const EXECUTION_TYPE_CHAT = 'chat';
34
+ export const EXECUTION_TYPE_GENERATE = 'generate';
35
+ export const EXECUTION_TYPE_GRAPHQL = 'graphql';
36
+ function canEndOnState(state, includeSuspend = false) {
37
+ const { transitions } = state;
38
+ if (!transitions?.length) {
39
+ return true;
40
+ }
41
+ for (const step of transitions) {
42
+ if (includeSuspend && step.type === 'suspend') {
43
+ return true;
44
+ }
45
+ if (step.destination === END_AGENT_EXECUTION) {
46
+ return true;
47
+ }
48
+ if (step.condition === undefined) {
49
+ return false;
50
+ }
51
+ }
52
+ return true;
53
+ }
54
+ export function getAgentEndStates(agent, includeSuspend = false) {
55
+ const endStates = new Set();
56
+ for (const [stateId, state] of Object.entries(agent.states)) {
57
+ if (canEndOnState(state, includeSuspend)) {
58
+ endStates.add(stateId);
59
+ }
60
+ }
61
+ return endStates;
62
+ }
63
+ // Agent Scoped Names
64
+ export const getCreateAgentSessionMutationName = (agentName) => {
65
+ return `create${upperFirst(agentName)}Session`;
66
+ };
67
+ export const getInspectAgentQueryName = (agentName) => {
68
+ return `inspect${upperFirst(agentName)}`;
69
+ };
70
+ export const getSendAgentFeedbackMutationName = (agentName) => {
71
+ return `send${upperFirst(agentName)}Feedback`;
72
+ };
73
+ export const getGetAgentMessageQueryName = (agentName) => {
74
+ return `get${upperFirst(agentName)}Message`;
75
+ };
76
+ export const getAbortAgentMessageMutationName = (agentName) => {
77
+ return `abort${upperFirst(agentName)}Message`;
78
+ };
79
+ // Agent Input Scopes Names
80
+ export const getSendAgentMessageMutationName = (inputName) => {
81
+ return `send${upperFirst(inputName)}Message`;
82
+ };
83
+ function createAssertValidName(key, result) {
84
+ const singular = key === 'shapes' ? 'shape' : key === 'mutations' ? 'mutation' : 'query';
85
+ return (name) => {
86
+ assert(result[key][name] === undefined, `Schema already has a ${singular} with the name "${name}"`);
87
+ };
88
+ }
89
+ export function getAgentFeatures(agents) {
90
+ const result = {
91
+ queries: {},
92
+ mutations: {},
93
+ shapes: {}
94
+ };
95
+ const assertValidShapeName = createAssertValidName('shapes', result);
96
+ const assertValidQueryName = createAssertValidName('queries', result);
97
+ const assertValidMutationName = createAssertValidName('mutations', result);
98
+ for (const [agentName, agent] of Object.entries(agents)) {
99
+ // Get valid return types based on states that could possibly be the end state
100
+ // TODO In the future the agent will have a return type defined and we will instead validate
101
+ // that all the return states will return the correct shape.
102
+ const returnStates = [...getAgentEndStates(agent, true)];
103
+ const returnTypes = uniq(returnStates.map((stateId) => {
104
+ const { execution } = agent.states[stateId];
105
+ if (execution.type === EXECUTION_TYPE_CHAT) {
106
+ return agentChatPayload.shapeName;
107
+ }
108
+ if (execution.type === EXECUTION_TYPE_GENERATE) {
109
+ return execution.outputShape ? execution.outputShape : 'string';
110
+ }
111
+ return JSON_SHAPE_NAME;
112
+ }));
113
+ const agentOutput = returnTypes.length === 0 ? 'string' : returnTypes.length === 1 ? returnTypes[0] : JSON_SHAPE_NAME;
114
+ const agentOutputSchema = agentOutput === 'string' ? { type: 'string' } : { '@ref': agentOutput };
115
+ const agentSessionShapeName = agentSessionPayload.shapeName;
116
+ const agentMessageShapeName = getAgentMessageResponse.createUserShapeName(agentName);
117
+ assertValidShapeName(agentMessageShapeName);
118
+ result.shapes[agentMessageShapeName] = {
119
+ id: agentMessageShapeName,
120
+ name: agentMessageShapeName,
121
+ title: agentMessageShapeName,
122
+ schema: getAgentMessageResponse.createUserShapeSchema({
123
+ properties: {
124
+ output: agentOutputSchema
125
+ }
126
+ })
127
+ };
128
+ const sendAgentMessageResponseShapeName = sendAgentMessageResponse.createUserShapeName(agentName);
129
+ assertValidShapeName(sendAgentMessageResponseShapeName);
130
+ result.shapes[sendAgentMessageResponseShapeName] = {
131
+ id: sendAgentMessageResponseShapeName,
132
+ name: sendAgentMessageResponseShapeName,
133
+ title: sendAgentMessageResponseShapeName,
134
+ schema: sendAgentMessageResponse.createUserShapeSchema({
135
+ properties: {
136
+ output: agentOutputSchema
137
+ }
138
+ })
139
+ };
140
+ const inspectAgentResponseShapeName = inspectAgentResponse.createUserShapeName(agentName);
141
+ assertValidShapeName(inspectAgentResponseShapeName);
142
+ result.shapes[inspectAgentResponseShapeName] = {
143
+ id: inspectAgentResponseShapeName,
144
+ name: inspectAgentResponseShapeName,
145
+ title: inspectAgentResponseShapeName,
146
+ schema: inspectAgentResponse.createUserShapeSchema()
147
+ };
148
+ const getAgentMessageQueryName = getGetAgentMessageQueryName(agentName);
149
+ assertValidQueryName(getAgentMessageQueryName);
150
+ result.queries[getAgentMessageQueryName] = {
151
+ description: `Get a message for the ${agentName} agent`,
152
+ shape: agentMessageShapeName,
153
+ resolver: {
154
+ name: 'ai:getAgentMessage',
155
+ agentName
156
+ },
157
+ args: {
158
+ ...getAgentMessageArgs.schema
159
+ }
160
+ };
161
+ const abortAgentMessageMutationName = getAbortAgentMessageMutationName(agentName);
162
+ assertValidMutationName(abortAgentMessageMutationName);
163
+ result.mutations[abortAgentMessageMutationName] = {
164
+ description: `Abort a message for the ${agentName} agent`,
165
+ shape: abortAgentMessageResponse.shapeName,
166
+ resolver: {
167
+ name: 'ai:abortAgentMessage',
168
+ agentName
169
+ },
170
+ args: {
171
+ ...getAgentMessageArgs.schema
172
+ }
173
+ };
174
+ const createAgentSessionMutationName = getCreateAgentSessionMutationName(agentName);
175
+ assertValidMutationName(createAgentSessionMutationName);
176
+ result.mutations[createAgentSessionMutationName] = {
177
+ description: `Create a session for the ${agentName} agent`,
178
+ shape: agentSessionShapeName,
179
+ resolver: {
180
+ name: 'ai:createAgentSession',
181
+ agentName
182
+ }
183
+ };
184
+ const inspectAgentQueryName = getInspectAgentQueryName(agentName);
185
+ assertValidQueryName(inspectAgentQueryName);
186
+ result.queries[inspectAgentQueryName] = {
187
+ description: `Inspect the ${agentName} agent`,
188
+ args: inspectAgentArgs.schema,
189
+ shape: inspectAgentResponseShapeName,
190
+ resolver: {
191
+ name: 'ai:inspectAgent',
192
+ agentName
193
+ }
194
+ };
195
+ result.mutations[getSendAgentFeedbackMutationName(agentName)] ||= {
196
+ description: `Send feedback for the ${agentName} agent`,
197
+ args: sendAgentFeedbackArgs.shapeName,
198
+ shape: 'boolean',
199
+ resolver: {
200
+ name: 'ai:sendAgentFeedback',
201
+ agentName
202
+ }
203
+ };
204
+ // This mutation can vary depending on the inputs defined, everything else is stable for the whole agent (for now)
205
+ for (const inputConfig of agent.api.inputs) {
206
+ if (inputConfig.type === 'mutation') {
207
+ const inputName = inputConfig.name;
208
+ const sendAgentMessageMutationName = getSendAgentMessageMutationName(inputName);
209
+ assertValidMutationName(sendAgentMessageMutationName);
210
+ result.mutations[sendAgentMessageMutationName] = {
211
+ description: agent.description,
212
+ args: {
213
+ type: 'object',
214
+ extends: [
215
+ {
216
+ ...sendAgentMessageArgs.shapeSchema,
217
+ required: agent.protection?.enabled
218
+ ? [...sendAgentMessageArgs.shapeSchema.required, 'token']
219
+ : sendAgentMessageArgs.shapeSchema.required
220
+ },
221
+ {
222
+ '@ref': inputConfig.args
223
+ }
224
+ ]
225
+ },
226
+ shape: sendAgentMessageResponseShapeName,
227
+ resolver: {
228
+ name: 'ai:sendAgentMessage',
229
+ agentName,
230
+ inputName
231
+ }
232
+ };
233
+ }
234
+ }
235
+ }
236
+ return result;
237
+ }
238
+ export function isValidAgentMutation(projectSchema, name) {
239
+ const agents = getAgents(projectSchema);
240
+ if (agents) {
241
+ for (const agent of agents) {
242
+ if (getSendAgentFeedbackMutationName(agent.name) === name ||
243
+ getCreateAgentSessionMutationName(agent.name) === name ||
244
+ getAbortAgentMessageMutationName(agent.name) === name) {
245
+ return true;
246
+ }
247
+ for (const input of agent.api.inputs) {
248
+ if (input.type === 'mutation' && getSendAgentMessageMutationName(input.name) === name) {
249
+ return true;
250
+ }
251
+ }
252
+ }
253
+ }
254
+ return false;
255
+ }
256
+ export function addAiQueries(projectSchema) {
257
+ const agents = getAgentMap(projectSchema);
258
+ if (!agents) {
259
+ return projectSchema;
260
+ }
261
+ const aiFeatures = getAgentFeatures(agents);
262
+ return {
263
+ ...projectSchema,
264
+ queries: {
265
+ ...projectSchema.queries,
266
+ ...aiFeatures.queries
267
+ },
268
+ mutations: {
269
+ ...projectSchema.mutations,
270
+ ...aiFeatures.mutations
271
+ },
272
+ shapes: {
273
+ ...projectSchema.shapes,
274
+ ...aiFeatures.shapes
275
+ }
276
+ };
277
+ }
278
+ /**
279
+ * Where guards live in the schema.
280
+ */
281
+ export const GUARDS_SCHEMA_PATH = ['guards'];
282
+ export const AGENTS_SCHEMA_PATH = ['agents'];
283
+ /**
284
+ * Check if a guard is enabled.
285
+ */
286
+ export const isGuardEnabled = (guard) => {
287
+ return Boolean(guard && guard.enabled !== false);
288
+ };
289
+ export function getGuardMap(schema) {
290
+ return schema.guards;
291
+ }
292
+ export function getGuards(schema) {
293
+ const guards = getGuardMap(schema);
294
+ return guards ? Object.entries(guards).map(([id, guard]) => ({ id, ...guard })) : [];
295
+ }
296
+ export function setGuardMap(schema, guards) {
297
+ return set(GUARDS_SCHEMA_PATH, guards, schema);
298
+ }
299
+ export function setGuard(schema, id, guard) {
300
+ return set([...GUARDS_SCHEMA_PATH, id], guard, schema);
301
+ }
302
+ /**
303
+ * Get a guard configuration from the project schema.
304
+ */
305
+ export function getGuardConfig(schema, guardId) {
306
+ return get(schema, [...GUARDS_SCHEMA_PATH, guardId]);
307
+ }
308
+ /**
309
+ * Get a guard configuration from the project schema, but only if it is enabled.
310
+ */
311
+ export function getEnabledGuardConfig(schema, guardId) {
312
+ const config = getGuardConfig(schema, guardId);
313
+ if (config && isGuardEnabled(config)) {
314
+ return config;
315
+ }
316
+ }
317
+ export function getAgentMap(projectSchema) {
318
+ return projectSchema.agents;
319
+ }
320
+ export function getAgents(projectSchema) {
321
+ const agentMap = getAgentMap(projectSchema);
322
+ return agentMap && Object.entries(agentMap).map(([name, agent]) => ({ name, ...agent }));
323
+ }
324
+ export function setAgentMap(projectSchema, agents) {
325
+ return set(AGENTS_SCHEMA_PATH, agents, projectSchema);
326
+ }
327
+ export function setAgent(projectSchema, name, agent) {
328
+ return set([...AGENTS_SCHEMA_PATH, name], agent, projectSchema);
329
+ }
330
+ export function getAgent(projectSchema, name) {
331
+ return getAgentMap(projectSchema)?.[name];
332
+ }
333
+ export function ensureAgent(projectSchema, name) {
334
+ const agent = getAgent(projectSchema, name);
335
+ if (!agent) {
336
+ throw new Error(`Agent "${name}" not found`);
337
+ }
338
+ return agent;
339
+ }
340
+ export function isAgentQuery(query, agentName) {
341
+ const resolver = query.resolver;
342
+ if ('agentName' in resolver) {
343
+ return resolver.agentName === agentName;
344
+ }
345
+ return false;
346
+ }
@@ -0,0 +1,5 @@
1
+ import type SemVer from 'semver/classes/semver.js';
2
+ export type VersionCompareFn = (apiVersion: string | SemVer, featureVersion: string | SemVer) => boolean;
3
+ export declare const createVersionPredicate: (featureVersion: string | SemVer, comparison: VersionCompareFn) => ((apiVersion: string | SemVer) => boolean);
4
+ export declare const workflowsEnabled: (apiVersion: string | SemVer) => boolean;
5
+ export declare const whereClauseEnabled: (apiVersion: string | SemVer) => boolean;
@@ -0,0 +1,17 @@
1
+ import coerce from 'semver/functions/coerce.js';
2
+ import gte from 'semver/functions/gte.js';
3
+ export const createVersionPredicate = (featureVersion, comparison) => {
4
+ const coercedFeatureVersion = coerce(featureVersion);
5
+ if (!coercedFeatureVersion) {
6
+ throw new Error(`Could not create predicate version "${featureVersion}" is not valid`);
7
+ }
8
+ return (apiVersion) => {
9
+ const coercedApiVersion = coerce(apiVersion);
10
+ if (!coercedApiVersion) {
11
+ throw new Error(`Version "${apiVersion}" is not valid and could not be coerced`);
12
+ }
13
+ return comparison(coercedApiVersion, coercedFeatureVersion);
14
+ };
15
+ };
16
+ export const workflowsEnabled = createVersionPredicate('2.0.0', gte);
17
+ export const whereClauseEnabled = createVersionPredicate('2.0.0', gte);
@@ -0,0 +1,144 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * A role import document is an array of role
8
+ *
9
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
10
+ * via the `definition` "RoleImport".
11
+ */
12
+ export type RoleImport = RoleInput[];
13
+ export interface AuthSchemas {
14
+ [k: string]: any;
15
+ }
16
+ /**
17
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
18
+ * via the `definition` "Condition".
19
+ */
20
+ export interface Condition {
21
+ }
22
+ /**
23
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
24
+ * via the `definition` "Statement".
25
+ */
26
+ export interface Statement {
27
+ Effect?: 'Allow' | 'Deny';
28
+ Sid?: string;
29
+ Action?: string[];
30
+ NotAction?: string[];
31
+ Resource?: string[];
32
+ NotResource?: string[];
33
+ Principal?: {
34
+ AWS?: string[];
35
+ Service?: string[];
36
+ };
37
+ Condition?: Condition;
38
+ }
39
+ /**
40
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
41
+ * via the `definition` "AccessPolicyDocument".
42
+ */
43
+ export interface AccessPolicyDocument {
44
+ Version: string;
45
+ Statement: Statement[];
46
+ }
47
+ /**
48
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
49
+ * via the `definition` "ApiKey".
50
+ */
51
+ export interface ApiKey {
52
+ projectId: string;
53
+ name: string;
54
+ role?: string;
55
+ permissions?: AccessPolicyDocument;
56
+ lastUsed?: string;
57
+ apiKey?: string;
58
+ id: string;
59
+ delinquent?: boolean;
60
+ apiRateLimit?: number;
61
+ deactivated?: number;
62
+ }
63
+ /**
64
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
65
+ * via the `definition` "UserPermission".
66
+ */
67
+ export interface UserPermission {
68
+ projectId: string;
69
+ userId: string;
70
+ role: string;
71
+ permissions?: AccessPolicyDocument;
72
+ created?: number;
73
+ updated?: number;
74
+ deactivated?: number;
75
+ delinquent?: boolean;
76
+ }
77
+ /**
78
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
79
+ * via the `definition` "Role".
80
+ */
81
+ export interface Role {
82
+ projectId: string;
83
+ name: string;
84
+ conditions?: Condition;
85
+ permissions: AccessPolicyDocument;
86
+ builtIn?: boolean;
87
+ created?: number;
88
+ updated?: number;
89
+ }
90
+ /**
91
+ * Input type for role creation and updates.
92
+ *
93
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
94
+ * via the `definition` "RoleInput".
95
+ */
96
+ export interface RoleInput {
97
+ projectId?: string;
98
+ name: string;
99
+ conditions?: Condition;
100
+ permissions: AccessPolicyDocument;
101
+ builtIn?: boolean;
102
+ created?: number;
103
+ updated?: number;
104
+ }
105
+ /**
106
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
107
+ * via the `definition` "BigCommerceAppSettings".
108
+ */
109
+ export interface BigCommerceAppSettings {
110
+ verified?: boolean;
111
+ emailValidationToken?: string | null;
112
+ }
113
+ /**
114
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
115
+ * via the `definition` "AppSettings".
116
+ */
117
+ export interface AppSettings {
118
+ bigcommerce?: BigCommerceAppSettings;
119
+ }
120
+ /**
121
+ * This interface was referenced by `AuthSchemas`'s JSON-Schema
122
+ * via the `definition` "User".
123
+ */
124
+ export interface User {
125
+ id: string;
126
+ email: string;
127
+ fullName: string;
128
+ created: number;
129
+ updated: number;
130
+ requiresEmailValidation?: boolean;
131
+ emailValidationToken?: string;
132
+ appSettings?: AppSettings;
133
+ inviteCode?: string;
134
+ firstTime: boolean;
135
+ avatarPath?: string;
136
+ intercomHash?: string;
137
+ googleUserId?: string;
138
+ comcastId?: string;
139
+ token?: string;
140
+ policies?: AccessPolicyDocument[];
141
+ preferences?: {
142
+ [k: string]: any;
143
+ };
144
+ }
@@ -0,0 +1,7 @@
1
+ /* tslint:disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { User } from './auth-schemas.ts';
2
+ /**
3
+ * Check if user requires email validaiton with proper fallback for older accounts.
4
+ */
5
+ export declare const userRequiresEmailValidation: (user: User) => boolean;
6
+ /**
7
+ * Check if user requires BigCommerce email verification.
8
+ * Returns true if verified is explicitly false (user has started BC flow but not verified).
9
+ * Returns false if verified is true or undefined (never used BC, or already verified).
10
+ */
11
+ export declare const userRequiresBcVerification: (user: User) => boolean;
12
+ /**
13
+ * Check if user has completed BigCommerce email verification.
14
+ */
15
+ export declare const userIsBcVerified: (user: User) => boolean;
16
+ /**
17
+ * Get the BigCommerce email validation token.
18
+ */
19
+ export declare const getBcEmailValidationToken: (user: User) => string | null | undefined;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Check if user requires email validaiton with proper fallback for older accounts.
3
+ */
4
+ export const userRequiresEmailValidation = (user) => {
5
+ return user.requiresEmailValidation === true;
6
+ };
7
+ /**
8
+ * Check if user requires BigCommerce email verification.
9
+ * Returns true if verified is explicitly false (user has started BC flow but not verified).
10
+ * Returns false if verified is true or undefined (never used BC, or already verified).
11
+ */
12
+ export const userRequiresBcVerification = (user) => {
13
+ return user.appSettings?.bigcommerce?.verified === false;
14
+ };
15
+ /**
16
+ * Check if user has completed BigCommerce email verification.
17
+ */
18
+ export const userIsBcVerified = (user) => {
19
+ return user.appSettings?.bigcommerce?.verified === true;
20
+ };
21
+ /**
22
+ * Get the BigCommerce email validation token.
23
+ */
24
+ export const getBcEmailValidationToken = (user) => {
25
+ return user.appSettings?.bigcommerce?.emailValidationToken;
26
+ };
@@ -0,0 +1,18 @@
1
+ import type { Entitlements } from '@takeshape/util';
2
+ import type { FormMap, ShapeJSON, ShapeMap } from './project-schema/index.ts';
3
+ import type { Content } from './types/index.ts';
4
+ export type SchemaDefaultsOptions = {
5
+ entitlements: Pick<Entitlements, 'staticSites'>;
6
+ };
7
+ export declare function isAsset(content: Content): boolean;
8
+ export declare function getAssetS3Path(content: Content): string | undefined;
9
+ export declare function setAssetS3Path(content: Content, path: string): void;
10
+ export declare const jsonShape: ShapeJSON;
11
+ export declare function getBuiltInShapes(options: SchemaDefaultsOptions): ShapeMap;
12
+ export declare function getBuiltInForms(options: SchemaDefaultsOptions): FormMap;
13
+ export declare const allBuiltInShapes: {
14
+ [x: string]: ShapeJSON;
15
+ };
16
+ export declare const allBuiltInForms: {
17
+ [x: string]: import("./project-schema/latest.ts").FormsConfig;
18
+ };