@takeshape/schema 12.1.1 → 12.1.5

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,79 @@
1
+ import { visit } from '@takeshape/util';
2
+ import isEmpty from 'lodash/isEmpty.js';
3
+ import omit from 'lodash/omit.js';
4
+ function omitOptions(resolver, names) {
5
+ if (resolver.options) {
6
+ const newOptions = omit(resolver.options, names);
7
+ if (isEmpty(newOptions)) {
8
+ resolver.options = undefined;
9
+ }
10
+ else {
11
+ resolver.options = newOptions;
12
+ }
13
+ }
14
+ }
15
+ const migrate = async (_, projectSchema) => {
16
+ /**
17
+ * Resolver props that are guaranteed in this version, and dependent on the
18
+ * resolver type. Ensure they exist.
19
+ */
20
+ const ensureResolverOptions = (resolver) => {
21
+ if (resolver.name.startsWith('takeshape')) {
22
+ if (!resolver.shapeName) {
23
+ resolver.shapeName =
24
+ resolver.options?.model ?? resolver.options?.indexedShape ?? '';
25
+ omitOptions(resolver, ['model', 'indexedShape']);
26
+ }
27
+ }
28
+ if (resolver.name.startsWith('graphql')) {
29
+ if (!resolver.fieldName) {
30
+ resolver.fieldName = resolver.options?.fieldName ?? '';
31
+ omitOptions(resolver, ['fieldName']);
32
+ }
33
+ }
34
+ if (resolver.name.startsWith('awsLambda')) {
35
+ if (!resolver.functionName) {
36
+ resolver.functionName = resolver.options?.functionName ?? '';
37
+ omitOptions(resolver, ['functionName']);
38
+ }
39
+ }
40
+ if (resolver.name.startsWith('rest')) {
41
+ if (!resolver.path) {
42
+ if (resolver.pathParams) {
43
+ resolver.path = {
44
+ ...resolver.pathParams,
45
+ serialize: {
46
+ ...resolver.pathParams.serialize,
47
+ template: resolver.options?.path
48
+ }
49
+ };
50
+ }
51
+ else {
52
+ resolver.path = resolver.options?.path ?? '';
53
+ }
54
+ omitOptions(resolver, ['path']);
55
+ }
56
+ }
57
+ /**
58
+ * `resolver.name` was previously validated with app code and v3.9.0
59
+ * enumerates the previous validation, making this assertion safe.
60
+ */
61
+ return resolver;
62
+ };
63
+ /**
64
+ * Function will visit each resolver in the schema and mutate them.
65
+ */
66
+ visit(projectSchema, ['resolver', '@resolver'], (resolver) => {
67
+ if (resolver.compose) {
68
+ resolver.compose.forEach(ensureResolverOptions);
69
+ }
70
+ else {
71
+ ensureResolverOptions(resolver);
72
+ }
73
+ });
74
+ return {
75
+ ...projectSchema,
76
+ schemaVersion: '3.9.0'
77
+ };
78
+ };
79
+ export default migrate;
@@ -0,0 +1,26 @@
1
+ import type { Logger } from '@takeshape/logger';
2
+ import type { AgentJSON, FormConfig, GuardJSON, ProjectSchemaJSON, QueryJSON, ServiceConfigJSON, ShapeJSON, ToolJSON, Workflow } from '../project-schema/index.ts';
3
+ import type { EncryptFn, SafeDecryptFn } from '../services/types.ts';
4
+ export type ProjectSchemaMigrationContext = {
5
+ label: string;
6
+ generateDataKeyFn: () => Promise<string>;
7
+ encryptFn: EncryptFn;
8
+ decryptFn: SafeDecryptFn;
9
+ logger: Logger;
10
+ };
11
+ export declare const AGENTS_UPDATE_KEY = "agents";
12
+ export declare const GUARDS_UPDATE_KEY = "guards";
13
+ export declare const TOOLS_UPDATE_KEY = "tools";
14
+ export type ProjectSchemaUpdate = {
15
+ queries?: Record<string, QueryJSON | null>;
16
+ mutations?: Record<string, QueryJSON | null>;
17
+ shapes?: Record<string, ShapeJSON | null>;
18
+ [AGENTS_UPDATE_KEY]?: Record<string, AgentJSON | null>;
19
+ [GUARDS_UPDATE_KEY]?: Record<string, GuardJSON | null>;
20
+ [TOOLS_UPDATE_KEY]?: Record<string, ToolJSON | null>;
21
+ forms?: Record<string, FormConfig | null>;
22
+ workflows?: Record<string, Workflow | null>;
23
+ services?: Record<string, ServiceConfigJSON | null>;
24
+ deactivated?: number;
25
+ } & Omit<Partial<ProjectSchemaJSON>, 'queries' | 'mutations' | 'shapes' | 'agents' | 'guards' | 'tools' | 'forms' | 'workflows' | 'services'>;
26
+ export type MigrateFunction<FromSchema, ToSchema> = (context: ProjectSchemaMigrationContext, fromSchema: FromSchema) => Promise<ToSchema>;
@@ -0,0 +1,3 @@
1
+ export const AGENTS_UPDATE_KEY = 'agents';
2
+ export const GUARDS_UPDATE_KEY = 'guards';
3
+ export const TOOLS_UPDATE_KEY = 'tools';
@@ -0,0 +1,2 @@
1
+ export declare function formatDate(timestamp?: number): string;
2
+ export declare function normalizeSchemaVersion(version?: string): string;
@@ -0,0 +1,6 @@
1
+ export function formatDate(timestamp) {
2
+ return (timestamp ? new Date(timestamp) : new Date()).toISOString();
3
+ }
4
+ export function normalizeSchemaVersion(version) {
5
+ return version ?? '1';
6
+ }
@@ -0,0 +1,14 @@
1
+ import type { SchemaDefaultsOptions } from './builtin-schema.js';
2
+ import type { ProjectSchemaJSON, ServiceConfig, ServiceConfigJSON, ShapeJSON } from './project-schema/index.ts';
3
+ import type { CachedShape, ServiceKey } from './types/types.ts';
4
+ /**
5
+ * Like emptySchema, but for tests.
6
+ */
7
+ export declare function createMockSchema(projectId: string, schema?: Partial<ProjectSchemaJSON>): ProjectSchemaJSON;
8
+ /**
9
+ * Capturing a common pattern used in tests. Creates an empty schema, with defaults.
10
+ */
11
+ export declare function createMockSchemaWithDefaults(projectId: string, schema?: Partial<ProjectSchemaJSON>, options?: SchemaDefaultsOptions): ProjectSchemaJSON;
12
+ export declare function createMockServiceConfig(serviceKey: ServiceKey, serviceConfig?: Partial<ServiceConfig>): ServiceConfig;
13
+ export declare function createMockStoredServiceConfig(serviceKey: ServiceKey, serviceConfig?: Partial<ServiceConfigJSON>): ServiceConfigJSON;
14
+ export declare function addMockIndexingConfig(shape: ShapeJSON): CachedShape;
package/dist/mocks.js ADDED
@@ -0,0 +1,58 @@
1
+ import { pascalCase } from '@takeshape/util';
2
+ import { applyDefaultsToSchema, emptySchema } from "./schema-util.js";
3
+ /**
4
+ * Like emptySchema, but for tests.
5
+ */
6
+ export function createMockSchema(projectId, schema = {}) {
7
+ return {
8
+ ...emptySchema(projectId),
9
+ ...schema,
10
+ projectId
11
+ };
12
+ }
13
+ /**
14
+ * Capturing a common pattern used in tests. Creates an empty schema, with defaults.
15
+ */
16
+ export function createMockSchemaWithDefaults(projectId, schema = {}, options) {
17
+ return applyDefaultsToSchema({
18
+ ...emptySchema(projectId),
19
+ ...schema,
20
+ projectId
21
+ }, options);
22
+ }
23
+ export function createMockServiceConfig(serviceKey, serviceConfig) {
24
+ return {
25
+ id: serviceKey,
26
+ title: pascalCase(serviceKey),
27
+ provider: 'graphql',
28
+ serviceType: 'graphql',
29
+ namespace: pascalCase(serviceKey),
30
+ authenticationType: 'bearer',
31
+ authentication: {
32
+ type: 'bearer',
33
+ token: 'abc123'
34
+ },
35
+ options: {
36
+ endpoint: 'https://example.test/graphql'
37
+ },
38
+ ...serviceConfig
39
+ };
40
+ }
41
+ export function createMockStoredServiceConfig(serviceKey, serviceConfig) {
42
+ return {
43
+ ...createMockServiceConfig(serviceKey),
44
+ authentication: 'encrypted-abc123',
45
+ ...serviceConfig
46
+ };
47
+ }
48
+ export function addMockIndexingConfig(shape) {
49
+ return {
50
+ ...shape,
51
+ loaders: {
52
+ list: {
53
+ query: `Query.get${shape.name}List`
54
+ }
55
+ },
56
+ cache: { enabled: true }
57
+ };
58
+ }
@@ -0,0 +1,3 @@
1
+ import type { AgentJSON } from '../project-schema/latest.ts';
2
+ import type { Agent, ProjectSchema } from './types.ts';
3
+ export declare function createAgent(parent: ProjectSchema, name: string, agent: AgentJSON): Agent;
@@ -0,0 +1,73 @@
1
+ import { isAgentQuery } from "../util/agent-utils.js";
2
+ function queryPredicate(agentName) {
3
+ return (query) => isAgentQuery(query.json, agentName);
4
+ }
5
+ class AgentImpl {
6
+ #schema;
7
+ #agentName;
8
+ #agent;
9
+ constructor(parent, name, agent) {
10
+ this.#schema = parent;
11
+ this.#agentName = name;
12
+ this.#agent = agent;
13
+ }
14
+ get name() {
15
+ return this.#agentName;
16
+ }
17
+ get title() {
18
+ return this.#agent.title;
19
+ }
20
+ get description() {
21
+ return this.#agent.description;
22
+ }
23
+ get disabled() {
24
+ return this.#agent.disabled;
25
+ }
26
+ get systemPrompt() {
27
+ return this.#agent.systemPrompt;
28
+ }
29
+ get sessionMemoryShape() {
30
+ const ref = this.#agent.memory?.sessionMemory.shape;
31
+ if (ref) {
32
+ return this.#schema.getShape(ref);
33
+ }
34
+ return undefined;
35
+ }
36
+ get historyStrategies() {
37
+ return this.#agent.historyStrategies;
38
+ }
39
+ get isProtectionEnabled() {
40
+ return this.#agent.protection?.enabled ?? false;
41
+ }
42
+ get apiInputs() {
43
+ return this.#agent.api.inputs;
44
+ }
45
+ get startState() {
46
+ return this.#agent.start;
47
+ }
48
+ getState(stateId) {
49
+ return this.#agent.states[stateId];
50
+ }
51
+ ensureState(stateId) {
52
+ const state = this.getState(stateId);
53
+ if (!state) {
54
+ throw new Error(`State "${stateId}" not found in agent "${this.#agentName}"`);
55
+ }
56
+ return state;
57
+ }
58
+ getMutations() {
59
+ return this.#schema.getLocalMutations().filter(queryPredicate(this.name));
60
+ }
61
+ getQueries() {
62
+ return this.#schema.getLocalQueries().filter(queryPredicate(this.name));
63
+ }
64
+ getInputConfig(inputName) {
65
+ return this.#agent.api.inputs.find((input) => input.name === inputName);
66
+ }
67
+ get json() {
68
+ return this.#agent;
69
+ }
70
+ }
71
+ export function createAgent(parent, name, agent) {
72
+ return new AgentImpl(parent, name, agent);
73
+ }
@@ -0,0 +1,28 @@
1
+ import type { ProjectSchemaJSON, PropertySchema } from '../project-schema/index.ts';
2
+ import type { ServiceLayers } from '../types/types.ts';
3
+ import type { Agent, GetShapeOptions, ProjectSchema, Query, Shape, Tool } from './types.ts';
4
+ export declare class ProjectSchemaImpl implements ProjectSchema {
5
+ #private;
6
+ constructor(projectSchemaJson: ProjectSchemaJSON, layers: ServiceLayers);
7
+ getShape(rawShapeRef: string, options?: GetShapeOptions): Shape | undefined;
8
+ ensureShape(rawShapeRef: string, options?: GetShapeOptions): Shape;
9
+ getQuery(rawQueryRef: string): Query | undefined;
10
+ getTool(rawToolRef: string): Tool | undefined;
11
+ ensureTool(ref: string): Tool;
12
+ getTools(): Tool[];
13
+ ensureQuery(ref: string): Query;
14
+ getLocalQueries(): Query[];
15
+ getLocalMutations(): Query[];
16
+ getAgents(): Agent[];
17
+ ensureAgent(name: string): Agent;
18
+ getAgent(name: string): Agent | undefined;
19
+ dereferenceSchema(propertySchema: PropertySchema): PropertySchema;
20
+ dereferenceObjectSchema(propertySchema: PropertySchema): import("../project-schema/latest.ts").ObjectSchema;
21
+ /**
22
+ * Get context variables configuration for a shape by name.
23
+ * Returns undefined if the shape has no context variables configured.
24
+ * Results are cached for efficient repeated lookups.
25
+ */
26
+ getShapeContextVariables(shapeName: string): Record<string, string> | undefined;
27
+ get json(): ProjectSchemaJSON;
28
+ }
@@ -0,0 +1,186 @@
1
+ import { NotFoundError } from '@takeshape/errors';
2
+ import { getAgent, getAgentMap } from "../agents.js";
3
+ import { allBuiltInShapes } from '../builtin-schema.js';
4
+ import { dereferenceObjectSchema, dereferenceSchema, getQuery, normalizePropertyRef, normalizeRefExpression, parsePropertyRef, parseRef, refItemToNamespacedShapeName } from "../refs.js";
5
+ import { getShape } from "../util/shapes.js";
6
+ import { getTool, getToolNames } from "../util/tools.js";
7
+ import { createAgent } from "./agent.js";
8
+ import { createQuery } from './query.js';
9
+ import { createShape } from './shape.js';
10
+ import { createTool } from "./tool.js";
11
+ export class ProjectSchemaImpl {
12
+ #projectSchemaJson;
13
+ #layers;
14
+ #shapeCache;
15
+ #queryCache;
16
+ #agentCache;
17
+ #toolCache;
18
+ #shapeContextCache;
19
+ constructor(projectSchemaJson, layers) {
20
+ this.#projectSchemaJson = projectSchemaJson;
21
+ this.#layers = layers;
22
+ this.#shapeCache = new Map();
23
+ this.#queryCache = new Map();
24
+ this.#agentCache = new Map();
25
+ this.#toolCache = new Map();
26
+ this.#shapeContextCache = new Map();
27
+ }
28
+ getShape(rawShapeRef, options) {
29
+ const shapeRef = normalizeRefExpression(this.#projectSchemaJson, rawShapeRef);
30
+ let shape = this.#shapeCache.get(shapeRef);
31
+ if (!shape) {
32
+ const refItem = parseRef(this.#projectSchemaJson, rawShapeRef);
33
+ if (refItem) {
34
+ const namespacedName = refItemToNamespacedShapeName(this.#projectSchemaJson, refItem);
35
+ let shapeJson = getShape(this.#projectSchemaJson, namespacedName);
36
+ if (!shapeJson && options?.includeAllBuiltIns) {
37
+ shapeJson = getShape({ shapes: allBuiltInShapes }, namespacedName);
38
+ }
39
+ if (shapeJson) {
40
+ shape = createShape(this, refItem, shapeJson);
41
+ this.#shapeCache.set(shapeRef, shape);
42
+ }
43
+ else if (refItem.layerId !== 'local') {
44
+ const layerSchema = this.#layers[refItem.layerId]?.schema;
45
+ if (layerSchema) {
46
+ shapeJson = getShape(layerSchema, namespacedName);
47
+ if (shapeJson) {
48
+ shape = createShape(this, refItem, shapeJson);
49
+ this.#shapeCache.set(shapeRef, shape);
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ return shape;
56
+ }
57
+ ensureShape(rawShapeRef, options) {
58
+ const shape = this.getShape(rawShapeRef, options);
59
+ if (!shape) {
60
+ throw new NotFoundError(`Shape "${rawShapeRef}" not found`);
61
+ }
62
+ return shape;
63
+ }
64
+ getQuery(rawQueryRef) {
65
+ const queryRef = normalizePropertyRef(rawQueryRef, 'Query');
66
+ let query = this.#queryCache.get(queryRef);
67
+ if (!query) {
68
+ const queryEntry = getQuery(this.#projectSchemaJson, queryRef);
69
+ if (queryEntry) {
70
+ query = createQuery(this, queryEntry);
71
+ this.#queryCache.set(queryRef, query);
72
+ }
73
+ else {
74
+ const parsedRef = parsePropertyRef(queryRef);
75
+ if (parsedRef && parsedRef.layerId !== 'local') {
76
+ const layerSchema = this.#layers[parsedRef.layerId]?.schema;
77
+ if (layerSchema) {
78
+ const queryEntry = getQuery(layerSchema, parsedRef.propertyName);
79
+ if (queryEntry) {
80
+ query = createQuery(this, { ...queryEntry, ref: parsedRef });
81
+ this.#queryCache.set(queryRef, query);
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ return query;
88
+ }
89
+ getTool(rawToolRef) {
90
+ const toolRef = normalizePropertyRef(rawToolRef, 'Tool');
91
+ let tool = this.#toolCache.get(toolRef);
92
+ if (!tool) {
93
+ const parsedRef = parsePropertyRef(toolRef);
94
+ if (parsedRef) {
95
+ const toolJson = getTool(this.#projectSchemaJson, toolRef);
96
+ if (toolJson) {
97
+ tool = createTool(this, parsedRef, toolJson);
98
+ this.#toolCache.set(toolRef, tool);
99
+ }
100
+ else if (parsedRef.layerId !== 'local') {
101
+ const layerSchema = this.#layers[parsedRef.layerId]?.schema;
102
+ if (layerSchema) {
103
+ const toolJson = getTool(layerSchema, parsedRef.propertyName);
104
+ if (toolJson) {
105
+ tool = createTool(this, parsedRef, toolJson);
106
+ this.#toolCache.set(toolRef, tool);
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ return tool;
113
+ }
114
+ ensureTool(ref) {
115
+ const tool = this.getTool(ref);
116
+ if (!tool) {
117
+ throw new NotFoundError(`Tool "${ref}" not found`);
118
+ }
119
+ return tool;
120
+ }
121
+ getTools() {
122
+ return getToolNames(this.#projectSchemaJson).map((name) => this.ensureTool(`Tool.${name}`));
123
+ }
124
+ ensureQuery(ref) {
125
+ const query = this.getQuery(ref);
126
+ if (!query) {
127
+ throw new NotFoundError(`Query "${ref}" not found`);
128
+ }
129
+ return query;
130
+ }
131
+ getLocalQueries() {
132
+ return Object.keys(this.#projectSchemaJson.queries).map((queryName) => this.ensureQuery(`Query.${queryName}`));
133
+ }
134
+ getLocalMutations() {
135
+ return Object.keys(this.#projectSchemaJson.mutations).map((queryName) => this.ensureQuery(`Mutation.${queryName}`));
136
+ }
137
+ getAgents() {
138
+ const agents = getAgentMap(this.#projectSchemaJson);
139
+ return agents ? Object.keys(agents).map((name) => this.ensureAgent(name)) : [];
140
+ }
141
+ ensureAgent(name) {
142
+ const agent = this.getAgent(name);
143
+ if (!agent) {
144
+ throw new NotFoundError(`Agent "${name}" not found`);
145
+ }
146
+ return agent;
147
+ }
148
+ getAgent(name) {
149
+ let agent = this.#agentCache.get(name);
150
+ if (!agent) {
151
+ const agentJson = getAgent(this.#projectSchemaJson, name);
152
+ if (agentJson) {
153
+ agent = createAgent(this, name, agentJson);
154
+ this.#agentCache.set(name, agent);
155
+ }
156
+ }
157
+ return agent;
158
+ }
159
+ dereferenceSchema(propertySchema) {
160
+ return dereferenceSchema(this.#projectSchemaJson, propertySchema);
161
+ }
162
+ dereferenceObjectSchema(propertySchema) {
163
+ return dereferenceObjectSchema(this.#projectSchemaJson, propertySchema);
164
+ }
165
+ /**
166
+ * Get context variables configuration for a shape by name.
167
+ * Returns undefined if the shape has no context variables configured.
168
+ * Results are cached for efficient repeated lookups.
169
+ */
170
+ getShapeContextVariables(shapeName) {
171
+ // Check cache first - includes null entries for shapes without context
172
+ const cached = this.#shapeContextCache.get(shapeName);
173
+ if (cached !== undefined) {
174
+ return cached ?? undefined;
175
+ }
176
+ // Look up shape context config
177
+ const shape = this.#projectSchemaJson.shapes?.[shapeName];
178
+ const contextVariables = shape?.context?.variables;
179
+ // Cache the result (null for shapes without context variables)
180
+ this.#shapeContextCache.set(shapeName, contextVariables ?? null);
181
+ return contextVariables;
182
+ }
183
+ get json() {
184
+ return this.#projectSchemaJson;
185
+ }
186
+ }
@@ -0,0 +1,3 @@
1
+ import { type QueryEntry } from '../refs.ts';
2
+ import type { ProjectSchema, Query } from './types.ts';
3
+ export declare function createQuery(parent: ProjectSchema, entry: QueryEntry): Query;
@@ -0,0 +1,46 @@
1
+ import { parseReturnShape, serializePropertyRef } from "../refs.js";
2
+ class QueryImpl {
3
+ #schema;
4
+ #name;
5
+ #query;
6
+ #ref;
7
+ constructor(parent, entry) {
8
+ this.#schema = parent;
9
+ this.#name = entry.name;
10
+ this.#query = entry.query;
11
+ this.#ref = entry.ref;
12
+ }
13
+ get ref() {
14
+ return serializePropertyRef(this.#ref);
15
+ }
16
+ get argsSchema() {
17
+ const args = this.#query.args;
18
+ if (args) {
19
+ if (typeof args === 'object') {
20
+ return this.#schema.dereferenceObjectSchema(args);
21
+ }
22
+ return this.#schema.getShape(args)?.getObjectSchema();
23
+ }
24
+ return undefined;
25
+ }
26
+ get argsAreFromShape() {
27
+ const args = this.#query.args;
28
+ return Boolean(args && typeof args === 'string');
29
+ }
30
+ get type() {
31
+ return this.#ref.shapeName === 'Mutation' ? 'mutation' : 'query';
32
+ }
33
+ get name() {
34
+ return this.#name;
35
+ }
36
+ get json() {
37
+ return this.#query;
38
+ }
39
+ get returnShape() {
40
+ const { shapeName } = parseReturnShape(this.#schema.json, this.#query.shape);
41
+ return this.#schema.getShape(shapeName);
42
+ }
43
+ }
44
+ export function createQuery(parent, entry) {
45
+ return new QueryImpl(parent, entry);
46
+ }
@@ -0,0 +1,9 @@
1
+ import type { ProjectSchemaJSON } from '../project-schema/index.ts';
2
+ import type { ServiceLayers } from '../types/types.ts';
3
+ import { ProjectSchemaImpl } from './project-schema.ts';
4
+ export declare class RuntimeSchema extends ProjectSchemaImpl {
5
+ private constructor();
6
+ static buildSchema(userSchema: ProjectSchemaJSON, layers: ServiceLayers): RuntimeSchema;
7
+ static safeBuildSchema(userSchema: ProjectSchemaJSON, layers: ServiceLayers): RuntimeSchema | undefined;
8
+ static fromJson(runtimeSchema: ProjectSchemaJSON, layers: ServiceLayers): RuntimeSchema;
9
+ }
@@ -0,0 +1,20 @@
1
+ import { buildRuntimeSchema } from "../runtime-schema.js";
2
+ import { ProjectSchemaImpl } from "./project-schema.js";
3
+ export class RuntimeSchema extends ProjectSchemaImpl {
4
+ constructor(runtimeSchema, layers) {
5
+ super(runtimeSchema, layers);
6
+ }
7
+ static buildSchema(userSchema, layers) {
8
+ const runtimeSchema = buildRuntimeSchema(userSchema, layers);
9
+ return new RuntimeSchema(runtimeSchema, layers);
10
+ }
11
+ static safeBuildSchema(userSchema, layers) {
12
+ try {
13
+ return RuntimeSchema.buildSchema(userSchema, layers);
14
+ }
15
+ catch { }
16
+ }
17
+ static fromJson(runtimeSchema, layers) {
18
+ return new RuntimeSchema(runtimeSchema, layers);
19
+ }
20
+ }
@@ -0,0 +1,4 @@
1
+ import type { ShapeJSON } from '../project-schema/latest.ts';
2
+ import { type RefItem } from '../refs.ts';
3
+ import type { ProjectSchema, Shape } from './types.ts';
4
+ export declare function createShape(parent: ProjectSchema, ref: RefItem, shape: ShapeJSON): Shape;
@@ -0,0 +1,36 @@
1
+ import { serializeRef } from "../refs.js";
2
+ import { isObjectSchema } from "../types/utils.js";
3
+ class ShapeImpl {
4
+ #schema;
5
+ #ref;
6
+ #shape;
7
+ #dereferencedSchema;
8
+ constructor(parent, ref, shape) {
9
+ this.#schema = parent;
10
+ this.#ref = ref;
11
+ this.#shape = shape;
12
+ }
13
+ get name() {
14
+ return this.#shape.name;
15
+ }
16
+ get ref() {
17
+ return serializeRef(this.#ref);
18
+ }
19
+ get refItem() {
20
+ return this.#ref;
21
+ }
22
+ get json() {
23
+ return this.#shape;
24
+ }
25
+ getObjectSchema() {
26
+ if (!this.#dereferencedSchema) {
27
+ this.#dereferencedSchema = this.#schema.dereferenceSchema(this.#shape.schema);
28
+ }
29
+ if (isObjectSchema(this.#dereferencedSchema)) {
30
+ return this.#dereferencedSchema;
31
+ }
32
+ }
33
+ }
34
+ export function createShape(parent, ref, shape) {
35
+ return new ShapeImpl(parent, ref, shape);
36
+ }
@@ -0,0 +1,4 @@
1
+ import { type PropertyRefItem } from '../refs.ts';
2
+ import type { NamedToolJSON } from '../types/index.ts';
3
+ import type { ProjectSchema, Tool } from './types.ts';
4
+ export declare function createTool(parent: ProjectSchema, ref: PropertyRefItem, entry: NamedToolJSON): Tool;