@tailor-platform/sdk 2.0.0-next.1 → 2.0.0-next.3

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 (429) hide show
  1. package/CHANGELOG.md +514 -2
  2. package/README.md +9 -9
  3. package/agent-skills/{tailor-sdk → tailor}/SKILL.md +3 -1
  4. package/dist/aigateway-B3oZZE6v.mjs +15 -0
  5. package/dist/aigateway-B3oZZE6v.mjs.map +1 -0
  6. package/dist/application-D2hSK1ZL.mjs +3 -0
  7. package/dist/{application-DqS1yBg3.mjs → application-eHp9jXld.mjs} +1397 -684
  8. package/dist/application-eHp9jXld.mjs.map +1 -0
  9. package/dist/{authconnection-D2MhtTN5.mjs → authconnection-BGQM8FZI.mjs} +2 -2
  10. package/dist/authconnection-BGQM8FZI.mjs.map +1 -0
  11. package/dist/cli/cache/bundle-cache.d.mts +1 -0
  12. package/dist/cli/cache/store.d.mts +1 -0
  13. package/dist/cli/cache/types.d.mts +1 -0
  14. package/dist/cli/commands/api/api-call.d.mts +19 -0
  15. package/dist/cli/commands/api/index.d.mts +3 -0
  16. package/dist/cli/commands/deploy/aigateway.d.mts +1 -0
  17. package/dist/cli/commands/deploy/application.d.mts +1 -0
  18. package/dist/cli/commands/deploy/apply-phases.d.mts +1 -0
  19. package/dist/cli/commands/deploy/auth.d.mts +1 -0
  20. package/dist/cli/commands/deploy/deploy.d.mts +24 -0
  21. package/dist/cli/commands/deploy/executor.d.mts +1 -0
  22. package/dist/cli/commands/deploy/function-registry-types.d.mts +12 -0
  23. package/dist/cli/commands/deploy/function-registry.d.mts +2 -0
  24. package/dist/cli/commands/deploy/idp.d.mts +1 -0
  25. package/dist/cli/commands/deploy/resolver.d.mts +1 -0
  26. package/dist/cli/commands/deploy/secret-manager.d.mts +1 -0
  27. package/dist/cli/commands/deploy/staticwebsite.d.mts +1 -0
  28. package/dist/cli/commands/deploy/tailordb/index.d.mts +1 -0
  29. package/dist/cli/commands/deploy/types.d.mts +1 -0
  30. package/dist/cli/commands/deploy/workflow.d.mts +1 -0
  31. package/dist/cli/commands/executor/get.d.mts +29 -0
  32. package/dist/cli/commands/executor/jobs.d.mts +123 -0
  33. package/dist/cli/commands/executor/list.d.mts +19 -0
  34. package/dist/cli/commands/executor/transform.d.mts +41 -0
  35. package/dist/cli/commands/executor/trigger.d.mts +41 -0
  36. package/dist/cli/commands/executor/webhook.d.mts +22 -0
  37. package/dist/cli/commands/function/get.d.mts +18 -0
  38. package/dist/cli/commands/function/list.d.mts +22 -0
  39. package/dist/cli/commands/function/transform.d.mts +11 -0
  40. package/dist/cli/commands/generate/options.d.mts +7 -0
  41. package/dist/cli/commands/generate/seed/bundler.d.mts +26 -0
  42. package/dist/cli/commands/generate/service.d.mts +11 -0
  43. package/dist/cli/commands/machineuser/list.d.mts +27 -0
  44. package/dist/cli/commands/machineuser/token.d.mts +22 -0
  45. package/dist/cli/commands/oauth2client/get.d.mts +18 -0
  46. package/dist/cli/commands/oauth2client/list.d.mts +20 -0
  47. package/dist/cli/commands/oauth2client/transform.d.mts +20 -0
  48. package/dist/cli/commands/organization/folder/create.d.mts +18 -0
  49. package/dist/cli/commands/organization/folder/delete.d.mts +16 -0
  50. package/dist/cli/commands/organization/folder/get.d.mts +17 -0
  51. package/dist/cli/commands/organization/folder/list.d.mts +22 -0
  52. package/dist/cli/commands/organization/folder/update.d.mts +18 -0
  53. package/dist/cli/commands/organization/get.d.mts +16 -0
  54. package/dist/cli/commands/organization/list.d.mts +15 -0
  55. package/dist/cli/commands/organization/transform.d.mts +27 -0
  56. package/dist/cli/commands/organization/tree.d.mts +25 -0
  57. package/dist/cli/commands/organization/update.d.mts +17 -0
  58. package/dist/cli/commands/remove.d.mts +16 -0
  59. package/dist/cli/commands/show.d.mts +34 -0
  60. package/dist/cli/commands/tailordb/migrate/bundler.d.mts +28 -0
  61. package/dist/cli/commands/tailordb/migrate/config.d.mts +19 -0
  62. package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +223 -0
  63. package/dist/cli/commands/tailordb/migrate/generate.d.mts +17 -0
  64. package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +202 -0
  65. package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +98 -0
  66. package/dist/cli/commands/tailordb/migrate/types.d.mts +7 -0
  67. package/dist/cli/commands/tailordb/truncate.d.mts +19 -0
  68. package/dist/cli/commands/workflow/executions.d.mts +75 -0
  69. package/dist/cli/commands/workflow/get.d.mts +29 -0
  70. package/dist/cli/commands/workflow/list.d.mts +19 -0
  71. package/dist/cli/commands/workflow/resume.d.mts +23 -0
  72. package/dist/cli/commands/workflow/start.d.mts +61 -0
  73. package/dist/cli/commands/workflow/status.d.mts +5 -0
  74. package/dist/cli/commands/workflow/transform.d.mts +33 -0
  75. package/dist/cli/commands/workflow/wait.d.mts +16 -0
  76. package/dist/cli/commands/workflow/waiter.d.mts +23 -0
  77. package/dist/cli/commands/workspace/app/health.d.mts +18 -0
  78. package/dist/cli/commands/workspace/app/list.d.mts +22 -0
  79. package/dist/cli/commands/workspace/app/transform.d.mts +18 -0
  80. package/dist/cli/commands/workspace/create.d.mts +25 -0
  81. package/dist/cli/commands/workspace/delete.d.mts +15 -0
  82. package/dist/cli/commands/workspace/get.d.mts +17 -0
  83. package/dist/cli/commands/workspace/list.d.mts +17 -0
  84. package/dist/cli/commands/workspace/restore.d.mts +15 -0
  85. package/dist/cli/commands/workspace/transform.d.mts +16 -0
  86. package/dist/cli/commands/workspace/user/invite.d.mts +22 -0
  87. package/dist/cli/commands/workspace/user/list.d.mts +22 -0
  88. package/dist/cli/commands/workspace/user/remove.d.mts +17 -0
  89. package/dist/cli/commands/workspace/user/transform.d.mts +8 -0
  90. package/dist/cli/commands/workspace/user/update.d.mts +22 -0
  91. package/dist/cli/erd-viewer-assets/app.js +279 -36
  92. package/dist/cli/erd-viewer-assets/index.html +4 -0
  93. package/dist/cli/erd-viewer-assets/styles.css +252 -5
  94. package/dist/cli/index.d.mts +18 -3
  95. package/dist/cli/index.mjs +2193 -519
  96. package/dist/cli/index.mjs.map +1 -1
  97. package/dist/cli/lib.d.mts +81 -21048
  98. package/dist/cli/lib.mjs +8 -12
  99. package/dist/cli/lib.mjs.map +1 -1
  100. package/dist/cli/query/index.d.mts +35 -0
  101. package/dist/cli/services/application.d.mts +1 -0
  102. package/dist/cli/services/auth/service.d.mts +1 -0
  103. package/dist/cli/services/executor/service.d.mts +1 -0
  104. package/dist/cli/services/http-adapter/bundler.d.mts +1 -0
  105. package/dist/cli/services/http-adapter/service.d.mts +1 -0
  106. package/dist/cli/services/resolver/service.d.mts +1 -0
  107. package/dist/cli/services/tailordb/service.d.mts +1 -0
  108. package/dist/cli/services/workflow/bundler.d.mts +1 -0
  109. package/dist/cli/services/workflow/service.d.mts +1 -0
  110. package/dist/cli/shared/args.d.mts +13 -0
  111. package/dist/cli/shared/client.d.mts +1273 -0
  112. package/dist/cli/shared/config-loader.d.mts +26 -0
  113. package/dist/cli/shared/context.d.mts +28 -0
  114. package/dist/cli/shared/script-executor.d.mts +75 -0
  115. package/dist/cli/shared/seed-chunker.d.mts +46 -0
  116. package/dist/cli/shared/trigger-context.d.mts +1 -0
  117. package/dist/cli/shared/type-generator.d.mts +20 -0
  118. package/dist/cli/ts-hook.d.mts +4 -0
  119. package/dist/cli/ts-hook.mjs +303 -0
  120. package/dist/completion/zsh-worker.zsh +1577 -1098
  121. package/dist/configure/config/index.d.mts +21 -0
  122. package/dist/configure/config/types.d.mts +103 -0
  123. package/dist/configure/index.d.mts +122 -8
  124. package/dist/configure/index.mjs +74 -34
  125. package/dist/configure/index.mjs.map +1 -1
  126. package/dist/configure/services/aigateway/index.d.mts +17 -0
  127. package/dist/configure/services/aigateway/types.d.mts +11 -0
  128. package/dist/configure/services/auth/index.d.mts +34 -0
  129. package/dist/configure/services/auth/types.d.mts +172 -0
  130. package/dist/configure/services/executor/executor.d.mts +81 -0
  131. package/dist/configure/services/executor/index.d.mts +8 -0
  132. package/dist/configure/services/executor/operation.d.mts +45 -0
  133. package/dist/configure/services/executor/trigger/event.d.mts +272 -0
  134. package/dist/configure/services/executor/trigger/index.d.mts +8 -0
  135. package/dist/configure/services/executor/trigger/schedule.d.mts +25 -0
  136. package/dist/configure/services/executor/trigger/webhook.d.mts +44 -0
  137. package/dist/configure/services/executor/types.d.mts +2 -0
  138. package/dist/configure/services/http-adapter/http-adapter.d.mts +125 -0
  139. package/dist/configure/services/http-adapter/index.d.mts +2 -0
  140. package/dist/configure/services/idp/index.d.mts +64 -0
  141. package/dist/configure/services/idp/permission.d.mts +80 -0
  142. package/dist/configure/services/idp/types.d.mts +20 -0
  143. package/dist/configure/services/index.d.mts +32 -0
  144. package/dist/configure/services/resolver/index.d.mts +5 -0
  145. package/dist/configure/services/resolver/resolver.d.mts +75 -0
  146. package/dist/configure/services/resolver/types.d.mts +6 -0
  147. package/dist/configure/services/secrets/index.d.mts +38 -0
  148. package/dist/configure/services/secrets/types.d.mts +11 -0
  149. package/dist/configure/services/staticwebsite/index.d.mts +19 -0
  150. package/dist/configure/services/staticwebsite/types.d.mts +11 -0
  151. package/dist/configure/services/tailordb/index.d.mts +4 -0
  152. package/dist/configure/services/tailordb/permission.d.mts +119 -0
  153. package/dist/configure/services/tailordb/schema.d.mts +456 -0
  154. package/dist/configure/services/tailordb/types.d.mts +149 -0
  155. package/dist/configure/services/workflow/index.d.mts +6 -0
  156. package/dist/configure/services/workflow/job.d.mts +79 -0
  157. package/dist/configure/services/workflow/types.d.mts +2 -0
  158. package/dist/configure/services/workflow/wait-point.d.mts +73 -0
  159. package/dist/configure/services/workflow/workflow.d.mts +54 -0
  160. package/dist/configure/types/aigateway-name.d.mts +12 -0
  161. package/dist/configure/types/connection-name.d.mts +12 -0
  162. package/dist/configure/types/field-runtime.d.mts +17 -0
  163. package/dist/configure/types/field.d.mts +9 -0
  164. package/dist/configure/types/field.types.d.mts +109 -0
  165. package/dist/configure/types/idp-name.d.mts +12 -0
  166. package/dist/configure/types/index.d.mts +4 -0
  167. package/dist/configure/types/machine-user.d.mts +2 -0
  168. package/dist/configure/types/type.d.mts +82 -0
  169. package/dist/context-Bd266-ru.mjs.map +1 -1
  170. package/dist/{crashreport-BsjAkFWw.mjs → crashreport-Cg-pqRJV.mjs} +9 -11
  171. package/dist/{crashreport-BsjAkFWw.mjs.map → crashreport-Cg-pqRJV.mjs.map} +1 -1
  172. package/dist/{crashreport-pr6Rhvza.mjs → crashreport-D3RjuSYb.mjs} +1 -1
  173. package/dist/enum-constants-j9QBF0cB.mjs.map +1 -1
  174. package/dist/{errors-Dtf2WPaW.mjs → errors-118wUDRr.mjs} +2 -2
  175. package/dist/errors-118wUDRr.mjs.map +1 -0
  176. package/dist/field-runtime-CAnh_oow.mjs +183 -0
  177. package/dist/field-runtime-CAnh_oow.mjs.map +1 -0
  178. package/dist/{file-_oUZo76X.mjs → file-BbdFGdMV.mjs} +2 -10
  179. package/dist/file-BbdFGdMV.mjs.map +1 -0
  180. package/dist/{file-utils-DcyIPFQh.mjs → file-utils-CYZnO1pX.mjs} +5 -5
  181. package/dist/file-utils-CYZnO1pX.mjs.map +1 -0
  182. package/dist/{globals-Crz8o65k.mjs → globals-DhwZj0RB.mjs} +5 -47
  183. package/dist/globals-DhwZj0RB.mjs.map +1 -0
  184. package/dist/{idp-BDbK5gjm.mjs → idp-Bx25ZBdN.mjs} +9 -1
  185. package/dist/idp-Bx25ZBdN.mjs.map +1 -0
  186. package/dist/{interceptor-D-q1rvRl.mjs → interceptor-e33JtsC-.mjs} +2 -2
  187. package/dist/interceptor-e33JtsC-.mjs.map +1 -0
  188. package/dist/kysely/index.d.mts +2 -3
  189. package/dist/{kysely-type-DR8uzZTA.mjs → kysely-type-5eAChaHO.mjs} +4 -2
  190. package/dist/kysely-type-5eAChaHO.mjs.map +1 -0
  191. package/dist/{logger-CxF-Ex5d.mjs → logger-BEiZZ3qT.mjs} +3 -3
  192. package/dist/{logger-CxF-Ex5d.mjs.map → logger-BEiZZ3qT.mjs.map} +1 -1
  193. package/dist/parser/service/auth/index.d.mts +1 -0
  194. package/dist/parser/service/auth/schema.d.mts +1 -0
  195. package/dist/parser/service/http-adapter/index.d.mts +1 -0
  196. package/dist/parser/service/http-adapter/schema.d.mts +1 -0
  197. package/dist/parser/service/idp/types.d.mts +4 -0
  198. package/dist/parser/service/tailordb/types.d.mts +126 -0
  199. package/dist/platform-serialize-RoRtBS0v.mjs +46 -0
  200. package/dist/platform-serialize-RoRtBS0v.mjs.map +1 -0
  201. package/dist/plugin/builtin/enum-constants/index.d.mts +16 -1
  202. package/dist/plugin/builtin/file-utils/index.d.mts +16 -1
  203. package/dist/plugin/builtin/file-utils/index.mjs +1 -1
  204. package/dist/plugin/builtin/kysely-type/index.d.mts +16 -1
  205. package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
  206. package/dist/plugin/builtin/seed/index.d.mts +45 -1
  207. package/dist/plugin/builtin/seed/index.mjs +1 -1
  208. package/dist/plugin/get-generated-type.d.mts +17 -0
  209. package/dist/plugin/index.d.mts +3 -117
  210. package/dist/plugin/index.mjs +1 -1
  211. package/dist/plugin/index.mjs.map +1 -1
  212. package/dist/plugin/manager.d.mts +1 -0
  213. package/dist/plugin/types.d.mts +243 -0
  214. package/dist/plugin/with-context.d.mts +102 -0
  215. package/dist/{runtime-n9NCkjee.mjs → register-ts-hook-ZpBacA07.mjs} +4374 -2446
  216. package/dist/register-ts-hook-ZpBacA07.mjs.map +1 -0
  217. package/dist/{registry-DdsYlL_P.mjs → registry-DH4m7eYo.mjs} +4 -2
  218. package/dist/registry-DH4m7eYo.mjs.map +1 -0
  219. package/dist/{repl-editor-DmGr9zMw.mjs → repl-editor-BCozyiNq.mjs} +6 -5
  220. package/dist/{repl-editor-DmGr9zMw.mjs.map → repl-editor-BCozyiNq.mjs.map} +1 -1
  221. package/dist/runtime/aigateway.d.mts +35 -0
  222. package/dist/runtime/aigateway.mjs +3 -0
  223. package/dist/runtime/authconnection.d.mts +31 -2
  224. package/dist/runtime/authconnection.mjs +1 -1
  225. package/dist/runtime/context.d.mts +46 -2
  226. package/dist/runtime/file.d.mts +210 -2
  227. package/dist/runtime/file.mjs +2 -2
  228. package/dist/runtime/globals.d.mts +31 -19
  229. package/dist/runtime/iconv.d.mts +121 -2
  230. package/dist/runtime/idp.d.mts +186 -2
  231. package/dist/runtime/idp.mjs +1 -1
  232. package/dist/runtime/index.d.mts +47 -9
  233. package/dist/runtime/index.mjs +6 -5
  234. package/dist/runtime/secretmanager.d.mts +54 -2
  235. package/dist/runtime/types.d.mts +20 -0
  236. package/dist/runtime/workflow.d.mts +112 -2
  237. package/dist/runtime/workflow.mjs +2 -2
  238. package/dist/{schema-BhkpP5Hw.mjs → schema-89dYxNC2.mjs} +25 -187
  239. package/dist/schema-89dYxNC2.mjs.map +1 -0
  240. package/dist/{secret-file-DBqZhjFQ.mjs → secret-file-aoNXJmKa.mjs} +28 -3
  241. package/dist/secret-file-aoNXJmKa.mjs.map +1 -0
  242. package/dist/secretmanager-Bd45j7an.mjs +98 -0
  243. package/dist/secretmanager-Bd45j7an.mjs.map +1 -0
  244. package/dist/seed/index.d.mts +1 -2
  245. package/dist/{seed-jf3008-h.mjs → seed-CRSQJI_z.mjs} +16 -6
  246. package/dist/seed-CRSQJI_z.mjs.map +1 -0
  247. package/dist/service-CkIwEctX.mjs +3 -0
  248. package/dist/{service-DU1mVzri.mjs → service-DeZeYa06.mjs} +3 -3
  249. package/dist/{service-DU1mVzri.mjs.map → service-DeZeYa06.mjs.map} +1 -1
  250. package/dist/service-ufH7sS8o.mjs +797 -0
  251. package/dist/service-ufH7sS8o.mjs.map +1 -0
  252. package/dist/{client-z_oHGVNy.mjs → service_pb-CIrhGwHk.mjs} +38 -466
  253. package/dist/service_pb-CIrhGwHk.mjs.map +1 -0
  254. package/dist/service_pb-DjwIn4jO.mjs +3 -0
  255. package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +204 -0
  256. package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +58 -0
  257. package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +316 -0
  258. package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +161 -0
  259. package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +2070 -0
  260. package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +861 -0
  261. package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +112 -0
  262. package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +69 -0
  263. package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +439 -0
  264. package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +564 -0
  265. package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +145 -0
  266. package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +451 -0
  267. package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +192 -0
  268. package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +50 -0
  269. package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +407 -0
  270. package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +430 -0
  271. package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +73 -0
  272. package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +17 -0
  273. package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +309 -0
  274. package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +591 -0
  275. package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +330 -0
  276. package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +113 -0
  277. package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +346 -0
  278. package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +54 -0
  279. package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +3576 -0
  280. package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +187 -0
  281. package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +29 -0
  282. package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +429 -0
  283. package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +90 -0
  284. package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +684 -0
  285. package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +797 -0
  286. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +330 -0
  287. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +183 -0
  288. package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +842 -0
  289. package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +276 -0
  290. package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +2015 -0
  291. package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +483 -0
  292. package/dist/{telemetry-CdqJEzkj.mjs → telemetry-BRVdwh14.mjs} +3 -3
  293. package/dist/telemetry-BRVdwh14.mjs.map +1 -0
  294. package/dist/telemetry-CkbkeJxl.mjs +3 -0
  295. package/dist/test-env-key-D7UkZp99.mjs +75 -0
  296. package/dist/test-env-key-D7UkZp99.mjs.map +1 -0
  297. package/dist/types/aigateway.generated.d.mts +9 -0
  298. package/dist/types/app-config.generated.d.mts +4 -0
  299. package/dist/types/auth-connection.generated.d.mts +20 -0
  300. package/dist/types/auth.generated.d.mts +145 -0
  301. package/dist/types/executor.generated.d.mts +177 -0
  302. package/dist/types/helpers.d.mts +39 -0
  303. package/dist/types/http-adapter.generated.d.mts +17 -0
  304. package/dist/{workflow.generated-DtQwEo-x.d.mts → types/idp.generated.d.mts} +98 -185
  305. package/dist/types/resolver.generated.d.mts +39 -0
  306. package/dist/types/secrets.generated.d.mts +14 -0
  307. package/dist/types/staticwebsite.generated.d.mts +10 -0
  308. package/dist/types/tailordb.generated.d.mts +428 -0
  309. package/dist/types/workflow.generated.d.mts +12 -0
  310. package/dist/types-C-lQ4se3.mjs +4 -0
  311. package/dist/types-CXF2OYdR.mjs +199 -0
  312. package/dist/types-CXF2OYdR.mjs.map +1 -0
  313. package/dist/utils/test/index.d.mts +5 -98
  314. package/dist/utils/test/index.mjs +4 -13
  315. package/dist/utils/test/index.mjs.map +1 -1
  316. package/dist/utils/test/mock.d.mts +87 -0
  317. package/dist/vitest/environment.d.mts +1 -2
  318. package/dist/vitest/environment.mjs +2 -2
  319. package/dist/vitest/environment.mjs.map +1 -1
  320. package/dist/vitest/index.d.mts +12 -428
  321. package/dist/vitest/index.mjs +741 -10
  322. package/dist/vitest/index.mjs.map +1 -1
  323. package/dist/vitest/mock-kysely.d.mts +62 -0
  324. package/dist/vitest/mock.d.mts +9 -0
  325. package/dist/vitest/mocks/aigateway.d.mts +30 -0
  326. package/dist/vitest/mocks/authconnection.d.mts +28 -0
  327. package/dist/vitest/mocks/file.d.mts +41 -0
  328. package/dist/vitest/mocks/iconv.d.mts +27 -0
  329. package/dist/vitest/mocks/idp.d.mts +44 -0
  330. package/dist/vitest/mocks/secretmanager.d.mts +33 -0
  331. package/dist/vitest/mocks/tailordb.d.mts +71 -0
  332. package/dist/vitest/mocks/workflow.d.mts +115 -0
  333. package/dist/vitest/setup.d.mts +1 -2
  334. package/dist/vitest/setup.mjs +2 -2
  335. package/dist/vitest/workflow-local.d.mts +40 -0
  336. package/dist/{workflow-DgemCAz3.mjs → workflow-Bo59B75H.mjs} +16 -4
  337. package/dist/workflow-Bo59B75H.mjs.map +1 -0
  338. package/docs/cli/application.md +98 -250
  339. package/docs/cli/auth.md +48 -292
  340. package/docs/cli/completion.md +1 -25
  341. package/docs/cli/crashreport.md +3 -61
  342. package/docs/cli/executor.md +72 -183
  343. package/docs/cli/function.md +14 -130
  344. package/docs/cli/organization.md +11 -221
  345. package/docs/cli/plugin.md +29 -0
  346. package/docs/cli/query.md +2 -22
  347. package/docs/cli/secret.md +71 -251
  348. package/docs/cli/setup.md +138 -40
  349. package/docs/cli/skills.md +50 -39
  350. package/docs/cli/staticwebsite.md +32 -180
  351. package/docs/cli/tailordb.md +97 -323
  352. package/docs/cli/upgrade.md +2 -22
  353. package/docs/cli/user.md +78 -247
  354. package/docs/cli/workflow.md +150 -172
  355. package/docs/cli/workspace.md +165 -538
  356. package/docs/cli-reference.md +184 -78
  357. package/docs/configuration.md +10 -4
  358. package/docs/github-actions.md +64 -24
  359. package/docs/migration/v2.md +735 -0
  360. package/docs/multi-environment.md +29 -7
  361. package/docs/plugin/index.md +6 -6
  362. package/docs/quickstart.md +8 -7
  363. package/docs/runtime.md +6 -2
  364. package/docs/services/aigateway.md +18 -2
  365. package/docs/services/auth.md +44 -52
  366. package/docs/services/executor.md +3 -3
  367. package/docs/services/http-adapter.md +16 -1
  368. package/docs/services/idp.md +55 -2
  369. package/docs/services/resolver.md +7 -7
  370. package/docs/services/secret.md +11 -11
  371. package/docs/services/staticwebsite.md +8 -2
  372. package/docs/services/tailordb-migration.md +24 -22
  373. package/docs/services/tailordb.md +39 -14
  374. package/docs/services/workflow.md +18 -18
  375. package/docs/testing.md +108 -50
  376. package/package.json +46 -35
  377. package/postinstall.mjs +4 -6
  378. package/dist/application-DB2r36Et.mjs +0 -3
  379. package/dist/application-DqS1yBg3.mjs.map +0 -1
  380. package/dist/authconnection-D2MhtTN5.mjs.map +0 -1
  381. package/dist/authconnection-DvUQAjQS.d.mts +0 -39
  382. package/dist/client-Dbohmtkv.mjs +0 -3
  383. package/dist/client-z_oHGVNy.mjs.map +0 -1
  384. package/dist/context-BuuIb8CC.d.mts +0 -68
  385. package/dist/errors-Dtf2WPaW.mjs.map +0 -1
  386. package/dist/field-DOsJCPFa.mjs +0 -22
  387. package/dist/field-DOsJCPFa.mjs.map +0 -1
  388. package/dist/file-BB8Vs9O_.d.mts +0 -250
  389. package/dist/file-_oUZo76X.mjs.map +0 -1
  390. package/dist/file-utils-DcyIPFQh.mjs.map +0 -1
  391. package/dist/globals-Crz8o65k.mjs.map +0 -1
  392. package/dist/http-adapter.generated-WgMnb7Sb.d.mts +0 -580
  393. package/dist/iconv-Co-TOPuH.d.mts +0 -122
  394. package/dist/idp-BDbK5gjm.mjs.map +0 -1
  395. package/dist/idp-DrhVrLmV.d.mts +0 -160
  396. package/dist/index-5vPyRu1y.d.mts +0 -18
  397. package/dist/index-B7AKc18V.d.mts +0 -47
  398. package/dist/index-BlpzXncY.d.mts +0 -1016
  399. package/dist/index-CK7u9isy.d.mts +0 -46
  400. package/dist/index-CNYe5lnW.d.mts +0 -18
  401. package/dist/index-DjUdWlzf.d.mts +0 -18
  402. package/dist/index-ZePLwxw7.d.mts +0 -208
  403. package/dist/interceptor-D-q1rvRl.mjs.map +0 -1
  404. package/dist/job-fuc3j1Ma.mjs +0 -53
  405. package/dist/job-fuc3j1Ma.mjs.map +0 -1
  406. package/dist/kysely-type-DR8uzZTA.mjs.map +0 -1
  407. package/dist/mock-BjFj5o1I.mjs +0 -804
  408. package/dist/mock-BjFj5o1I.mjs.map +0 -1
  409. package/dist/registry-DdsYlL_P.mjs.map +0 -1
  410. package/dist/runtime-n9NCkjee.mjs.map +0 -1
  411. package/dist/schema-BhkpP5Hw.mjs.map +0 -1
  412. package/dist/secret-file-DBqZhjFQ.mjs.map +0 -1
  413. package/dist/secretmanager-B3n4KHfm.d.mts +0 -55
  414. package/dist/seed-jf3008-h.mjs.map +0 -1
  415. package/dist/service-CCL8ruDf.mjs +0 -459
  416. package/dist/service-CCL8ruDf.mjs.map +0 -1
  417. package/dist/service-D6yonf2I.mjs +0 -3
  418. package/dist/telemetry-CdqJEzkj.mjs.map +0 -1
  419. package/dist/telemetry-ClwW5ohF.mjs +0 -3
  420. package/dist/test-env-key-D9kM6ETE.mjs +0 -49
  421. package/dist/test-env-key-D9kM6ETE.mjs.map +0 -1
  422. package/dist/types-B2RpYyA_.mjs +0 -371
  423. package/dist/types-B2RpYyA_.mjs.map +0 -1
  424. package/dist/types-ClhIrW_C.mjs +0 -4
  425. package/dist/types-DCUhgpyI.d.mts +0 -784
  426. package/dist/types-DhO_VEZd.d.mts +0 -574
  427. package/dist/types-DwDgacni.d.mts +0 -338
  428. package/dist/workflow-BbKvGLQg.d.mts +0 -96
  429. package/dist/workflow-DgemCAz3.mjs.map +0 -1
package/docs/testing.md CHANGED
@@ -11,22 +11,22 @@ Lean on unit tests for the day-to-day feedback loop — they run fast and exerci
11
11
 
12
12
  Unit-test entrypoints exposed by the SDK:
13
13
 
14
- - `resolver.body({ input, user, env })` — invoke a resolver
15
- - `workflowJob.body(input, { env })` — invoke a workflow job body directly
14
+ - `resolver.body({ input, caller, invoker, env })` — invoke a resolver
15
+ - `workflowJob.body(input, { env, invoker })` — invoke a workflow job body directly
16
16
  - `workflowJob.trigger(input)` — chain a workflow job through the workflow runtime
17
17
  - `runWorkflowLocally(workflow, args)` — run a workflow chain locally with real job bodies
18
- - `executor.operation.body(args)` — invoke a function-kind executor
18
+ - `executor.operation.body({ ...args, invoker })` — invoke a function-kind executor
19
19
 
20
- Helpers under `@tailor-platform/sdk/test`:
20
+ For anonymous direct calls:
21
21
 
22
- - `unauthenticatedTailorUser` default `user` value for resolver contexts
22
+ - Pass `null` for anonymous `caller` / `invoker` context in direct unit tests.
23
23
 
24
24
  Platform API mocks under `@tailor-platform/sdk/vitest` (for use with the [`tailor-runtime` Vitest environment](#runtime-environment-emulation-beta) below):
25
25
 
26
26
  - `mockTailordb` — TailorDB query stubs and call recording
27
27
  - `mockWorkflow` — `tailor.workflow` job / wait / resolve mocks
28
28
  - `runWorkflowLocally` — local full-chain workflow runner
29
- - `mockSecretmanager`, `mockAuthconnection`, `mockIdp`, `mockFile`, `mockIconv` — corresponding platform API mocks
29
+ - `mockSecretmanager`, `mockAuthconnection`, `mockIdp`, `mockFile`, `mockIconv`, `mockAigateway` — corresponding platform API mocks
30
30
 
31
31
  For tighter alignment with the production runtime — Node.js module blocking, Web-only globals, and platform API mocks — pair the resolver helpers with the [`tailor-runtime` Vitest environment](#runtime-environment-emulation-beta) below.
32
32
 
@@ -63,7 +63,7 @@ export default defineConfig({
63
63
 
64
64
  ### Acquiring mocks with `using`
65
65
 
66
- Each mock controller (`mockTailordb`, `mockWorkflow`, `mockSecretmanager`, `mockAuthconnection`, `mockIdp`, `mockFile`, `mockIconv`) is a **factory function**. Acquire it inside a test with a [`using` declaration](https://github.com/tc39/proposal-explicit-resource-management) — its state is reset automatically when the test scope exits, so you no longer need `beforeEach(() => mock.reset())`:
66
+ Each mock controller (`mockTailordb`, `mockWorkflow`, `mockSecretmanager`, `mockAuthconnection`, `mockIdp`, `mockFile`, `mockIconv`, `mockAigateway`) is a **factory function**. Acquire it inside a test with a [`using` declaration](https://github.com/tc39/proposal-explicit-resource-management) — its state is reset automatically when the test scope exits, so you no longer need `beforeEach(() => mock.reset())`:
67
67
 
68
68
  ```typescript
69
69
  import { mockTailordb } from "@tailor-platform/sdk/vitest";
@@ -99,7 +99,12 @@ test("resolver queries the database", async () => {
99
99
  [], // COMMIT
100
100
  );
101
101
 
102
- const result = await resolver.body({ input: { email: "test@example.com" } });
102
+ const result = await resolver.body({
103
+ input: { email: "test@example.com" },
104
+ caller: null,
105
+ invoker: null,
106
+ env: {},
107
+ });
103
108
 
104
109
  expect(result).toEqual({ oldAge: 30, newAge: 31 });
105
110
  expect(db.executedQueries).toHaveLength(3);
@@ -121,7 +126,12 @@ test("content-based mock", async () => {
121
126
  return [];
122
127
  });
123
128
 
124
- const result = await resolver.body({ input: { userId: "1" } });
129
+ const result = await resolver.body({
130
+ input: { userId: "1" },
131
+ caller: null,
132
+ invoker: null,
133
+ env: {},
134
+ });
125
135
 
126
136
  expect(db.executedQueries[0].query).toContain("SELECT");
127
137
  });
@@ -163,6 +173,8 @@ wf.enqueueResult({ valid: true });
163
173
  wf.enqueueResults({ valid: true }, { txnId: "txn-1" });
164
174
  ```
165
175
 
176
+ Use `wf.setEnv(...)` when locally-run workflow job bodies need configuration values. Per-run `runWorkflowLocally(..., { env })` options take precedence over the mock's env.
177
+
166
178
  ### SecretManager Mock
167
179
 
168
180
  ```typescript
@@ -188,7 +200,7 @@ import { mockAuthconnection } from "@tailor-platform/sdk/vitest";
188
200
  test("returns configured token", async () => {
189
201
  using ac = mockAuthconnection();
190
202
  ac.setTokens({
191
- google: { access_token: "ya29.xxx", expires_in: 3600 },
203
+ google: { access_token: "ya29.xxx" },
192
204
  });
193
205
 
194
206
  const token = await tailor.authconnection.getConnectionToken("google");
@@ -265,28 +277,6 @@ test("mock file download stream", async () => {
265
277
  });
266
278
  ```
267
279
 
268
- For the deprecated `openDownloadStream`, enqueue an iterable of `StreamValue` items — `metadata`, one or more `chunk` items, and a terminal `complete`. Raw `Uint8Array` / `ArrayBuffer` chunks are rejected so tests stay aligned with the platform's structured stream contract.
269
-
270
- ```typescript
271
- test("mock file download stream (deprecated openDownloadStream)", async () => {
272
- using file = mockFile();
273
- file.enqueueResult([
274
- {
275
- type: "metadata",
276
- metadata: { contentType: "image/png", fileSize: 3, sha256sum: "abc" },
277
- },
278
- { type: "chunk", data: new Uint8Array([1, 2]), position: 0 },
279
- { type: "chunk", data: new Uint8Array([3]), position: 2 },
280
- { type: "complete" },
281
- ]);
282
-
283
- const stream = await tailordb.file.openDownloadStream("ns", "Doc", "attachment", "r-1");
284
- const items = [];
285
- for await (const item of stream) items.push(item);
286
- expect(items).toHaveLength(4);
287
- });
288
- ```
289
-
290
280
  ### Iconv Mock
291
281
 
292
282
  ```typescript
@@ -305,6 +295,23 @@ test("mock encoding conversion", () => {
305
295
  });
306
296
  ```
307
297
 
298
+ ### AI Gateway Mock
299
+
300
+ ```typescript
301
+ import { mockAigateway } from "@tailor-platform/sdk/vitest";
302
+
303
+ test("resolves an AI Gateway URL", async () => {
304
+ using aigateway = mockAigateway();
305
+ aigateway.setUrls({ "my-aigateway": "https://my-aigateway.example.com" });
306
+
307
+ const { url } = await tailor.aigateway.get("my-aigateway");
308
+ expect(url).toBe("https://my-aigateway.example.com");
309
+ expect(aigateway.calls).toEqual([{ name: "my-aigateway" }]);
310
+ });
311
+ ```
312
+
313
+ Calling `get` for a name that hasn't been registered via `setUrls` throws.
314
+
308
315
  ### Loading Secrets from Config
309
316
 
310
317
  Pass a config path to load `defineSecretManager()` values into the mock:
@@ -367,7 +374,6 @@ Unit tests call `.body()` (or `.trigger()`) directly on a resolver, workflow job
367
374
  For pure logic with no external dependencies, invoke `.body()` directly:
368
375
 
369
376
  ```typescript
370
- import { unauthenticatedTailorUser } from "@tailor-platform/sdk/test";
371
377
  import { describe, expect, test } from "vitest";
372
378
  import resolver from "../src/resolver/add";
373
379
 
@@ -375,7 +381,8 @@ describe("add resolver", () => {
375
381
  test("adds two numbers", async () => {
376
382
  const result = await resolver.body({
377
383
  input: { left: 1, right: 2 },
378
- user: unauthenticatedTailorUser,
384
+ caller: null,
385
+ invoker: null,
379
386
  env: {},
380
387
  });
381
388
  expect(result).toBe(3);
@@ -392,7 +399,6 @@ Stub the global `tailordb.Client` and queue raw query results in order. Best for
392
399
  > If you are running with the [`tailor-runtime` Vitest environment](#runtime-environment-emulation-beta), acquire `using db = mockTailordb()` to install and drive the mock `tailordb.Client` instead of `vi.stubGlobal()`.
393
400
 
394
401
  ```typescript
395
- import { unauthenticatedTailorUser } from "@tailor-platform/sdk/test";
396
402
  import { afterAll, afterEach, beforeAll, describe, expect, test, vi } from "vitest";
397
403
  import resolver from "../src/resolver/incrementUserAge";
398
404
 
@@ -422,7 +428,8 @@ describe("incrementUserAge resolver", () => {
422
428
 
423
429
  const result = await resolver.body({
424
430
  input: { email: "test@example.com" },
425
- user: unauthenticatedTailorUser,
431
+ caller: null,
432
+ invoker: null,
426
433
  env: {},
427
434
  });
428
435
 
@@ -493,7 +500,6 @@ describe("decrementUserAge", () => {
493
500
  Pass `mock.db` to functions that take a Kysely instance. When a resolver or executor calls `getDB()` internally there is no such seam, so spy the generated `getDB` and point it at the mock:
494
501
 
495
502
  ```typescript
496
- import { unauthenticatedTailorUser } from "@tailor-platform/sdk/test";
497
503
  import { createKyselyMock } from "@tailor-platform/sdk/vitest";
498
504
  import { describe, expect, test, vi } from "vitest";
499
505
  import { getDB, type Namespace } from "../generated/db";
@@ -525,7 +531,8 @@ describe("upsertUsers resolver", () => {
525
531
  { name: "Existing", email: "exists@example.com", age: 41 },
526
532
  ],
527
533
  },
528
- user: unauthenticatedTailorUser,
534
+ caller: null,
535
+ invoker: null,
529
536
  env: { appName: "Resolver Template", version: 1 },
530
537
  });
531
538
 
@@ -544,7 +551,6 @@ Reach for [`mockTailordb`](#mocking-the-tailordb-client) instead when you want t
544
551
  Resolvers that call `waitPoint.resolve(...)` delegate to `tailor.workflow.resolve` at runtime. With the `tailor-runtime` environment active, use `mockWorkflow().setResolveHandler` to drive the user-supplied callback and inspect `resolveCalls`:
545
552
 
546
553
  ```typescript
547
- import { unauthenticatedTailorUser } from "@tailor-platform/sdk/test";
548
554
  import { mockWorkflow } from "@tailor-platform/sdk/vitest";
549
555
  import { describe, expect, test } from "vitest";
550
556
  import resolver from "./resolveApproval";
@@ -559,7 +565,8 @@ describe("resolveApproval resolver", () => {
559
565
 
560
566
  const result = await resolver.body({
561
567
  input: { executionId: "exec-1", approved: true },
562
- user: unauthenticatedTailorUser,
568
+ caller: null,
569
+ invoker: null,
563
570
  env: {},
564
571
  });
565
572
 
@@ -571,9 +578,38 @@ describe("resolveApproval resolver", () => {
571
578
 
572
579
  `setResolveHandler` receives `(executionId, key, callback)` and decides whether to invoke the callback — that's how you assert the value returned to the suspended job.
573
580
 
581
+ #### Resolvers that resume failed workflows
582
+
583
+ Resolvers or executors that call `workflow.resumeWorkflow(executionId)` delegate to `tailor.workflow.resumeWorkflow` at runtime. With the `tailor-runtime` environment active, use `mockWorkflow().setResumeHandler` to control the returned execution ID and inspect `resumeWorkflow.mock.calls`:
584
+
585
+ ```typescript
586
+ import { unauthenticatedTailorUser } from "@tailor-platform/sdk/test";
587
+ import { mockWorkflow } from "@tailor-platform/sdk/vitest";
588
+ import { describe, expect, test } from "vitest";
589
+ import resolver from "./retryFailedWorkflow";
590
+
591
+ describe("retryFailedWorkflow resolver", () => {
592
+ test("resumes a failed workflow execution", async () => {
593
+ using wf = mockWorkflow();
594
+ wf.setResumeHandler("exec-resumed-123");
595
+
596
+ const result = await resolver.body({
597
+ input: { executionId: "exec-failed-456" },
598
+ user: unauthenticatedTailorUser,
599
+ env: {},
600
+ });
601
+
602
+ expect(result).toEqual({ resumedExecutionId: "exec-resumed-123" });
603
+ expect(wf.resumeWorkflow.mock.calls).toEqual([["exec-failed-456"]]);
604
+ });
605
+ });
606
+ ```
607
+
608
+ `setResumeHandler` accepts a static string (same execution ID for every call) or a function `(executionId) => string` that computes one per call. By default the mock echoes the input `executionId`.
609
+
574
610
  ### Testing Executors
575
611
 
576
- Function-kind executors expose their handler as `executor.operation.body(args)`. The shape of `args` is determined by the trigger — for example, `recordCreatedTrigger({ type: user })` produces `{ newRecord }` typed against the type's output. GraphQL, webhook, and workflow operation kinds are declarative and don't expose a user-authored body to test.
612
+ Function-kind executors expose their handler as `executor.operation.body(args)`. The shape of `args` is determined by the trigger — for example, `recordCreatedTrigger({ type: user })` produces `{ newRecord }` typed against the type's output, plus runtime fields such as `env`, `actor`, and `invoker`. GraphQL, webhook, and workflow operation kinds are declarative and don't expose a user-authored body to test.
577
613
 
578
614
  The `executor` template extracts shared DB access into a helper (`shared.ts`) and tests the helper directly against a mocked `tailordb.Client` (same TailorDB-mocking pattern as the resolver section). Executor handlers themselves stay thin and can be tested by spying on the helper:
579
615
 
@@ -590,6 +626,14 @@ describe("onUserCreated executor", () => {
590
626
  throw new Error("expected function operation");
591
627
  }
592
628
  await onUserCreated.operation.body({
629
+ workspaceId: "workspace-1",
630
+ appNamespace: "app",
631
+ env: {},
632
+ actor: null,
633
+ invoker: null,
634
+ event: "created",
635
+ rawEvent: "tailordb.type_record.created",
636
+ typeName: "User",
593
637
  newRecord: {
594
638
  id: "user-1",
595
639
  name: "Alice",
@@ -618,7 +662,7 @@ Workflow jobs expose the same `.body()` entrypoint as resolvers, plus `.trigger(
618
662
 
619
663
  #### Simple job
620
664
 
621
- Call `.body()` with the input and a stub `{ env: {} }`:
665
+ Call `.body()` with the input and a stub `{ env: {}, invoker: null }`:
622
666
 
623
667
  ```typescript
624
668
  import { describe, expect, test } from "vitest";
@@ -626,14 +670,17 @@ import { validateOrder } from "./order-fulfillment";
626
670
 
627
671
  describe("validateOrder", () => {
628
672
  test("accepts a valid order", () => {
629
- const result = validateOrder.body({ orderId: "order-1", amount: 100 }, { env: {} });
673
+ const result = validateOrder.body(
674
+ { orderId: "order-1", amount: 100 },
675
+ { env: {}, invoker: null },
676
+ );
630
677
  expect(result).toEqual({ valid: true, orderId: "order-1" });
631
678
  });
632
679
 
633
680
  test("rejects a non-positive amount", () => {
634
- expect(() => validateOrder.body({ orderId: "order-1", amount: 0 }, { env: {} })).toThrow(
635
- "Order amount must be positive",
636
- );
681
+ expect(() =>
682
+ validateOrder.body({ orderId: "order-1", amount: 0 }, { env: {}, invoker: null }),
683
+ ).toThrow("Order amount must be positive");
637
684
  });
638
685
  });
639
686
  ```
@@ -663,7 +710,10 @@ describe("fulfillOrder", () => {
663
710
  confirmed: true,
664
711
  });
665
712
 
666
- const result = await fulfillOrder.body({ orderId: "order-1", amount: 100 }, { env: {} });
713
+ const result = await fulfillOrder.body(
714
+ { orderId: "order-1", amount: 100 },
715
+ { env: {}, invoker: null },
716
+ );
667
717
 
668
718
  expect(validateOrder.trigger).toHaveBeenCalledWith({ orderId: "order-1", amount: 100 });
669
719
  expect(result).toMatchObject({ confirmed: true, paymentStatus: "completed" });
@@ -687,7 +737,10 @@ describe("processWithApproval", () => {
687
737
  using wf = mockWorkflow();
688
738
  wf.setWaitHandler({ approved: true });
689
739
 
690
- const result = await processWithApproval.body({ orderId: "order-1" }, { env: {} });
740
+ const result = await processWithApproval.body(
741
+ { orderId: "order-1" },
742
+ { env: {}, invoker: null },
743
+ );
691
744
 
692
745
  expect(result).toEqual({ orderId: "order-1", status: "approved" });
693
746
  expect(wf.waitCalls[0]).toEqual({
@@ -700,7 +753,10 @@ describe("processWithApproval", () => {
700
753
  using wf = mockWorkflow();
701
754
  wf.setWaitHandler({ approved: false });
702
755
 
703
- const result = await processWithApproval.body({ orderId: "order-2" }, { env: {} });
756
+ const result = await processWithApproval.body(
757
+ { orderId: "order-2" },
758
+ { env: {}, invoker: null },
759
+ );
704
760
 
705
761
  expect(result.status).toBe("rejected");
706
762
  });
@@ -729,6 +785,8 @@ describe("order-fulfillment workflow", () => {
729
785
 
730
786
  Pass `{ env }` as the third argument when job bodies need configuration values during the local run.
731
787
 
788
+ If you already acquired `mockWorkflow()`, you can also call `wf.setEnv(...)` to reuse the same env across local workflow runs.
789
+
732
790
  Like the platform runtime, the local runner re-runs the orchestrator body once per `.trigger()` call (N triggers means N+1 passes), so any side effects outside the trigger results fire on every pass. Keep the body deterministic and move repeatable side effects into the triggered jobs.
733
791
 
734
792
  This helper is still a local runner. Use E2E tests when you need to verify deployed workflow scheduling, suspension, or replay behavior.
@@ -837,7 +895,7 @@ describe("user-profile-sync workflow", () => {
837
895
  test("executes end to end", { timeout: 180_000 }, async () => {
838
896
  const { executionId, wait } = await startWorkflow({
839
897
  workflow: userProfileSync,
840
- authInvoker: "admin",
898
+ invoker: "admin",
841
899
  arg: {
842
900
  name: "workflow-test",
843
901
  email: `wf-${randomUUID()}@example.com`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tailor-platform/sdk",
3
- "version": "2.0.0-next.1",
3
+ "version": "2.0.0-next.3",
4
4
  "description": "Tailor Platform SDK - The SDK to work with Tailor Platform",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -9,12 +9,13 @@
9
9
  "directory": "packages/sdk"
10
10
  },
11
11
  "bin": {
12
- "tailor-sdk": "./dist/cli/index.mjs"
12
+ "tailor": "./dist/cli/index.mjs"
13
13
  },
14
14
  "files": [
15
15
  "CHANGELOG.md",
16
16
  "dist",
17
17
  "docs",
18
+ "!docs/**/*.*.md",
18
19
  "postinstall.mjs",
19
20
  "README.md",
20
21
  "agent-skills"
@@ -26,6 +27,9 @@
26
27
  ],
27
28
  "main": "./dist/configure/index.mjs",
28
29
  "types": "./dist/configure/index.d.mts",
30
+ "imports": {
31
+ "#/*": "./src/*.ts"
32
+ },
29
33
  "exports": {
30
34
  ".": {
31
35
  "types": "./dist/configure/index.d.mts",
@@ -131,12 +135,17 @@
131
135
  "types": "./dist/runtime/file.d.mts",
132
136
  "import": "./dist/runtime/file.mjs",
133
137
  "default": "./dist/runtime/file.mjs"
138
+ },
139
+ "./runtime/aigateway": {
140
+ "types": "./dist/runtime/aigateway.d.mts",
141
+ "import": "./dist/runtime/aigateway.mjs",
142
+ "default": "./dist/runtime/aigateway.mjs"
134
143
  }
135
144
  },
136
145
  "dependencies": {
137
- "@0no-co/graphql.web": "1.2.0",
146
+ "@0no-co/graphql.web": "1.3.2",
138
147
  "@badgateway/oauth2-client": "3.3.1",
139
- "@bufbuild/protobuf": "2.12.0",
148
+ "@bufbuild/protobuf": "2.12.1",
140
149
  "@bufbuild/protovalidate": "1.2.0",
141
150
  "@connectrpc/connect": "2.1.2",
142
151
  "@connectrpc/connect-node": "2.1.2",
@@ -145,63 +154,65 @@
145
154
  "@jridgewell/trace-mapping": "0.3.31",
146
155
  "@napi-rs/keyring": "1.3.0",
147
156
  "@opentelemetry/api": "1.9.1",
148
- "@opentelemetry/exporter-trace-otlp-proto": "0.219.0",
149
- "@opentelemetry/resources": "2.8.0",
150
- "@opentelemetry/sdk-trace-node": "2.8.0",
157
+ "@opentelemetry/exporter-trace-otlp-proto": "0.220.0",
158
+ "@opentelemetry/resources": "2.9.0",
159
+ "@opentelemetry/sdk-trace-node": "2.9.0",
151
160
  "@opentelemetry/semantic-conventions": "1.41.1",
152
- "@oxc-project/types": "0.135.0",
161
+ "@oxc-project/types": "0.138.0",
153
162
  "@standard-schema/spec": "1.1.0",
154
163
  "@tailor-platform/function-kysely-tailordb": "0.1.3",
155
- "@toiroakr/lines-db": "0.9.2",
164
+ "@toiroakr/lines-db": "0.10.0",
156
165
  "@toiroakr/read-multiline": "0.4.1",
157
- "@urql/core": "6.0.1",
166
+ "@urql/core": "6.0.3",
167
+ "amaro": "1.1.10",
158
168
  "chalk": "5.6.2",
159
169
  "chokidar": "5.0.0",
160
170
  "confbox": "0.2.4",
161
171
  "date-fns": "4.4.0",
162
- "es-toolkit": "1.47.1",
172
+ "es-toolkit": "1.49.0",
163
173
  "find-up-simple": "1.0.1",
164
- "globals": "17.6.0",
165
- "graphql": "16.14.2",
174
+ "globals": "17.7.0",
175
+ "graphql": "17.0.1",
166
176
  "inflection": "3.0.2",
167
177
  "kysely": "0.29.2",
168
178
  "madge": "8.0.0",
169
179
  "mime-types": "3.0.2",
170
180
  "open": "11.0.0",
171
- "oxc-parser": "0.135.0",
181
+ "oxc-parser": "0.138.0",
172
182
  "p-limit": "7.3.0",
173
183
  "pathe": "2.0.3",
174
184
  "pgsql-ast-parser": "12.0.2",
175
185
  "pkg-types": "2.3.1",
176
- "politty": "0.6.0",
177
- "rolldown": "1.1.1",
178
- "semver": "7.8.4",
186
+ "politty": "0.11.0",
187
+ "rolldown": "1.1.4",
188
+ "semver": "7.8.5",
179
189
  "sql-highlight": "6.1.0",
180
190
  "std-env": "4.1.0",
181
191
  "table": "6.9.0",
182
192
  "ts-cron-validator": "1.1.5",
183
- "tsx": "4.22.4",
184
193
  "type-fest": "5.7.0",
185
- "undici": "8.4.1",
194
+ "undici": "8.6.0",
186
195
  "xdg-basedir": "5.1.0",
187
196
  "zod": "4.4.3"
188
197
  },
189
198
  "devDependencies": {
190
- "@opentelemetry/sdk-trace-base": "2.8.0",
199
+ "@opentelemetry/sdk-trace-base": "2.9.0",
191
200
  "@types/madge": "5.0.3",
192
201
  "@types/mime-types": "3.0.1",
193
202
  "@types/node": "24.13.2",
194
203
  "@types/semver": "7.7.1",
195
- "@typescript/native-preview": "7.0.0-dev.20260612.1",
196
- "@vitest/coverage-v8": "4.1.8",
197
- "oxfmt": "0.54.0",
198
- "oxlint": "1.69.0",
199
- "oxlint-tsgolint": "0.23.0",
200
- "sonda": "0.11.1",
201
- "tsdown": "0.22.2",
202
- "typescript": "5.9.3",
203
- "vitest": "4.1.8",
204
- "zinfer": "0.1.8"
204
+ "@typescript/native-preview": "7.0.0-dev.20260703.1",
205
+ "@vitest/coverage-v8": "4.1.9",
206
+ "eslint-plugin-zod": "4.7.0",
207
+ "oxfmt": "0.57.0",
208
+ "oxlint": "1.72.0",
209
+ "oxlint-tsgolint": "0.24.0",
210
+ "sonda": "0.13.1",
211
+ "tsdown": "0.22.3",
212
+ "typescript": "6.0.3",
213
+ "vitest": "4.1.9",
214
+ "zinfer": "0.2.3",
215
+ "@tailor-platform/tailor-proto": "^0.0.0"
205
216
  },
206
217
  "peerDependencies": {
207
218
  "vite": "^6.0.0 || ^7.0.0 || ^8.0.0",
@@ -217,7 +228,7 @@
217
228
  },
218
229
  "engines": {
219
230
  "bun": ">=1.2.0",
220
- "node": ">=22"
231
+ "node": ">=22.15.0"
221
232
  },
222
233
  "scripts": {
223
234
  "test": "vitest",
@@ -226,11 +237,11 @@
226
237
  "test:coverage": "vitest --coverage",
227
238
  "docs:check": "vitest run --project=unit* src/cli/docs.test.ts",
228
239
  "docs:update": "POLITTY_DOCS_UPDATE=true vitest run --project=unit* src/cli/docs.test.ts",
229
- "build": "tsdown && politty generate-worker --bin dist/cli/index.mjs --program tailor-sdk --shell zsh --verify",
240
+ "build": "tsdown && politty generate-worker --bin dist/cli/index.mjs --program tailor --shell zsh --verify",
230
241
  "lint": "oxlint --type-aware .",
231
- "check:public-api-jsdoc": "tsx scripts/check-public-api-jsdoc.ts",
232
- "check:zod-isolation": "tsx scripts/check-zod-isolation.ts",
233
- "check:import-cycles": "tsx scripts/check-import-cycles.ts",
242
+ "check:public-api-jsdoc": "node --experimental-strip-types scripts/check-public-api-jsdoc.ts",
243
+ "check:zod-isolation": "node --experimental-strip-types scripts/check-zod-isolation.ts",
244
+ "check:import-cycles": "node --experimental-strip-types scripts/check-import-cycles.ts",
234
245
  "lint:fix": "oxlint --type-aware . --fix",
235
246
  "typecheck": "tsc --noEmit",
236
247
  "typecheck:go": "tsgo",
package/postinstall.mjs CHANGED
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { existsSync } from "node:fs";
4
- import { register } from "node:module";
5
4
  import { dirname, resolve } from "node:path";
6
5
  import { pathToFileURL } from "node:url";
7
6
  import { findUpSync } from "find-up-simple";
@@ -12,9 +11,9 @@ const DEFAULT_CONFIG_FILENAME = "tailor.config.ts";
12
11
  async function install() {
13
12
  const cwd = process.env.INIT_CWD || process.cwd();
14
13
 
15
- // Skip if running in the tailor-sdk package itself
14
+ // Skip if running in the @tailor-platform/sdk package itself
16
15
  if (cwd === __dirname || cwd === resolve(__dirname, "..", "..")) {
17
- console.log("⚠️ Skipping postinstall in tailor-sdk package itself");
16
+ console.log("⚠️ Skipping postinstall in @tailor-platform/sdk package itself");
18
17
  return;
19
18
  }
20
19
 
@@ -22,8 +21,8 @@ async function install() {
22
21
 
23
22
  // Try to find and load the user's tailor.config.ts
24
23
  // Priority: env/config > search parent directories
25
- const configPath = process.env.TAILOR_PLATFORM_SDK_CONFIG_PATH
26
- ? resolve(cwd, process.env.TAILOR_PLATFORM_SDK_CONFIG_PATH)
24
+ const configPath = process.env.TAILOR_CONFIG_PATH
25
+ ? resolve(cwd, process.env.TAILOR_CONFIG_PATH)
27
26
  : findUpSync(DEFAULT_CONFIG_FILENAME, { cwd });
28
27
 
29
28
  if (!configPath || !existsSync(configPath)) {
@@ -34,7 +33,6 @@ async function install() {
34
33
  try {
35
34
  const configDir = dirname(configPath);
36
35
  process.chdir(configDir);
37
- register("tsx", import.meta.url, { data: {} });
38
36
 
39
37
  const { generateUserTypes, loadConfig } = await import(
40
38
  pathToFileURL(resolve(__dirname, "dist", "cli", "lib.mjs")).href
@@ -1,3 +0,0 @@
1
- import { n as generatePluginFilesIfNeeded, r as loadApplication, t as defineApplication } from "./application-DqS1yBg3.mjs";
2
-
3
- export { defineApplication, generatePluginFilesIfNeeded };