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

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 (478) hide show
  1. package/CHANGELOG.md +1056 -24
  2. package/README.md +9 -9
  3. package/agent-skills/{tailor-sdk → tailor}/SKILL.md +3 -1
  4. package/dist/aigateway-DR4Kwuik.mjs +9 -0
  5. package/dist/aigateway-DR4Kwuik.mjs.map +1 -0
  6. package/dist/{application-DqS1yBg3.mjs → application-CM6hKnSK.mjs} +2155 -2008
  7. package/dist/application-CM6hKnSK.mjs.map +1 -0
  8. package/dist/application-CXNaUNhv.mjs +3 -0
  9. package/dist/authconnection-CZvi9ANm.mjs +9 -0
  10. package/dist/authconnection-CZvi9ANm.mjs.map +1 -0
  11. package/dist/brand-Eo4pLXPJ.mjs.map +1 -1
  12. package/dist/cli/cache/bundle-cache.d.mts +2 -0
  13. package/dist/cli/cache/store.d.mts +1 -0
  14. package/dist/cli/cache/types.d.mts +1 -0
  15. package/dist/cli/commands/api/api-call.d.mts +19 -0
  16. package/dist/cli/commands/api/index.d.mts +4 -0
  17. package/dist/cli/commands/deploy/aigateway.d.mts +5 -0
  18. package/dist/cli/commands/deploy/application.d.mts +7 -0
  19. package/dist/cli/commands/deploy/apply-phases.d.mts +14 -0
  20. package/dist/cli/commands/deploy/auth.d.mts +5 -0
  21. package/dist/cli/commands/deploy/deploy.d.mts +35 -0
  22. package/dist/cli/commands/deploy/executor.d.mts +7 -0
  23. package/dist/cli/commands/deploy/function-registry-types.d.mts +12 -0
  24. package/dist/cli/commands/deploy/function-registry.d.mts +6 -0
  25. package/dist/cli/commands/deploy/idp.d.mts +5 -0
  26. package/dist/cli/commands/deploy/label.d.mts +2 -0
  27. package/dist/cli/commands/deploy/resolver.d.mts +5 -0
  28. package/dist/cli/commands/deploy/secret-manager.d.mts +5 -0
  29. package/dist/cli/commands/deploy/staticwebsite.d.mts +5 -0
  30. package/dist/cli/commands/deploy/tailordb/index.d.mts +10 -0
  31. package/dist/cli/commands/deploy/types.d.mts +4 -0
  32. package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +2 -0
  33. package/dist/cli/commands/deploy/workflow.d.mts +4 -0
  34. package/dist/cli/commands/executor/get.d.mts +19 -0
  35. package/dist/cli/commands/executor/jobs.d.mts +85 -0
  36. package/dist/cli/commands/executor/list.d.mts +18 -0
  37. package/dist/cli/commands/executor/transform.d.mts +42 -0
  38. package/dist/cli/commands/executor/trigger.d.mts +30 -0
  39. package/dist/cli/commands/executor/webhook.d.mts +21 -0
  40. package/dist/cli/commands/function/get.d.mts +17 -0
  41. package/dist/cli/commands/function/list.d.mts +21 -0
  42. package/dist/cli/commands/function/transform.d.mts +12 -0
  43. package/dist/cli/commands/generate/options.d.mts +6 -0
  44. package/dist/cli/commands/generate/seed/bundler.d.mts +27 -0
  45. package/dist/cli/commands/generate/service.d.mts +15 -0
  46. package/dist/cli/commands/machineuser/list.d.mts +26 -0
  47. package/dist/cli/commands/machineuser/token.d.mts +21 -0
  48. package/dist/cli/commands/oauth2client/get.d.mts +17 -0
  49. package/dist/cli/commands/oauth2client/list.d.mts +19 -0
  50. package/dist/cli/commands/oauth2client/transform.d.mts +21 -0
  51. package/dist/cli/commands/organization/folder/create.d.mts +17 -0
  52. package/dist/cli/commands/organization/folder/delete.d.mts +15 -0
  53. package/dist/cli/commands/organization/folder/get.d.mts +16 -0
  54. package/dist/cli/commands/organization/folder/list.d.mts +21 -0
  55. package/dist/cli/commands/organization/folder/update.d.mts +17 -0
  56. package/dist/cli/commands/organization/get.d.mts +15 -0
  57. package/dist/cli/commands/organization/list.d.mts +14 -0
  58. package/dist/cli/commands/organization/transform.d.mts +29 -0
  59. package/dist/cli/commands/organization/tree.d.mts +24 -0
  60. package/dist/cli/commands/organization/update.d.mts +16 -0
  61. package/dist/cli/commands/remove.d.mts +15 -0
  62. package/dist/cli/commands/show.d.mts +39 -0
  63. package/dist/cli/commands/staticwebsite/deploy.d.mts +19 -0
  64. package/dist/cli/commands/tailordb/migrate/bundler.d.mts +29 -0
  65. package/dist/cli/commands/tailordb/migrate/config.d.mts +18 -0
  66. package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +246 -0
  67. package/dist/cli/commands/tailordb/migrate/generate.d.mts +16 -0
  68. package/dist/cli/commands/tailordb/migrate/schema-checks.d.mts +5 -0
  69. package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +208 -0
  70. package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +98 -0
  71. package/dist/cli/commands/tailordb/migrate/types.d.mts +7 -0
  72. package/dist/cli/commands/tailordb/truncate.d.mts +18 -0
  73. package/dist/cli/commands/workflow/executions.d.mts +62 -0
  74. package/dist/cli/commands/workflow/get.d.mts +21 -0
  75. package/dist/cli/commands/workflow/list.d.mts +18 -0
  76. package/dist/cli/commands/workflow/resume.d.mts +22 -0
  77. package/dist/cli/commands/workflow/start.d.mts +48 -0
  78. package/dist/cli/commands/workflow/status.d.mts +6 -0
  79. package/dist/cli/commands/workflow/transform.d.mts +34 -0
  80. package/dist/cli/commands/workflow/wait.d.mts +15 -0
  81. package/dist/cli/commands/workflow/waiter.d.mts +23 -0
  82. package/dist/cli/commands/workspace/app/health.d.mts +17 -0
  83. package/dist/cli/commands/workspace/app/list.d.mts +21 -0
  84. package/dist/cli/commands/workspace/app/transform.d.mts +20 -0
  85. package/dist/cli/commands/workspace/create.d.mts +27 -0
  86. package/dist/cli/commands/workspace/delete.d.mts +14 -0
  87. package/dist/cli/commands/workspace/get.d.mts +16 -0
  88. package/dist/cli/commands/workspace/list.d.mts +17 -0
  89. package/dist/cli/commands/workspace/restore.d.mts +14 -0
  90. package/dist/cli/commands/workspace/transform.d.mts +20 -0
  91. package/dist/cli/commands/workspace/user/invite.d.mts +21 -0
  92. package/dist/cli/commands/workspace/user/list.d.mts +21 -0
  93. package/dist/cli/commands/workspace/user/remove.d.mts +16 -0
  94. package/dist/cli/commands/workspace/user/transform.d.mts +9 -0
  95. package/dist/cli/commands/workspace/user/update.d.mts +21 -0
  96. package/dist/cli/index.mjs +12 -5481
  97. package/dist/cli/lib.d.mts +86 -21048
  98. package/dist/cli/lib.mjs +245 -46
  99. package/dist/cli/lib.mjs.map +1 -1
  100. package/dist/cli/main.d.mts +23 -0
  101. package/dist/cli/main.mjs +6777 -0
  102. package/dist/cli/main.mjs.map +1 -0
  103. package/dist/cli/query/index.d.mts +38 -0
  104. package/dist/cli/services/application.d.mts +12 -0
  105. package/dist/cli/services/auth/service.d.mts +3 -0
  106. package/dist/cli/services/executor/service.d.mts +1 -0
  107. package/dist/cli/services/http-adapter/bundler.d.mts +4 -0
  108. package/dist/cli/services/http-adapter/service.d.mts +2 -0
  109. package/dist/cli/services/resolver/service.d.mts +1 -0
  110. package/dist/cli/services/tailordb/service.d.mts +3 -0
  111. package/dist/cli/services/workflow/bundler.d.mts +3 -0
  112. package/dist/cli/services/workflow/service.d.mts +1 -0
  113. package/dist/cli/shared/args.d.mts +13 -0
  114. package/dist/cli/shared/client.d.mts +1298 -0
  115. package/dist/cli/shared/config-loader.d.mts +32 -0
  116. package/dist/cli/shared/context.d.mts +29 -0
  117. package/dist/cli/shared/error-json.d.mts +23 -0
  118. package/dist/cli/shared/readonly-guard.d.mts +25 -0
  119. package/dist/cli/shared/script-executor.d.mts +77 -0
  120. package/dist/cli/shared/seed-chunker.d.mts +45 -0
  121. package/dist/cli/shared/seed-context.d.mts +49 -0
  122. package/dist/cli/shared/tailordb-namespaces.d.mts +40 -0
  123. package/dist/cli/shared/tsconfig-paths-plugin.d.mts +2 -0
  124. package/dist/cli/shared/type-generator.d.mts +20 -0
  125. package/dist/cli/shared/workspace-name.d.mts +1 -0
  126. package/dist/cli/ts-hook.d.mts +4 -0
  127. package/dist/cli/ts-hook.mjs +333 -0
  128. package/dist/completion/zsh-worker.zsh +1471 -1217
  129. package/dist/configure/config/index.d.mts +20 -0
  130. package/dist/configure/config/types.d.mts +134 -0
  131. package/dist/configure/index.d.mts +135 -8
  132. package/dist/configure/index.mjs +558 -36
  133. package/dist/configure/index.mjs.map +1 -1
  134. package/dist/configure/services/aigateway/index.d.mts +16 -0
  135. package/dist/configure/services/aigateway/types.d.mts +10 -0
  136. package/dist/configure/services/auth/index.d.mts +33 -0
  137. package/dist/configure/services/auth/types.d.mts +168 -0
  138. package/dist/configure/services/executor/executor.d.mts +70 -0
  139. package/dist/configure/services/executor/index.d.mts +9 -0
  140. package/dist/configure/services/executor/operation.d.mts +50 -0
  141. package/dist/configure/services/executor/trigger/event.d.mts +514 -0
  142. package/dist/configure/services/executor/trigger/index.d.mts +7 -0
  143. package/dist/configure/services/executor/trigger/schedule.d.mts +24 -0
  144. package/dist/configure/services/executor/trigger/webhook.d.mts +43 -0
  145. package/dist/configure/services/executor/types.d.mts +2 -0
  146. package/dist/configure/services/http-adapter/http-adapter.d.mts +124 -0
  147. package/dist/configure/services/http-adapter/index.d.mts +2 -0
  148. package/dist/configure/services/idp/index.d.mts +60 -0
  149. package/dist/configure/services/idp/permission.d.mts +64 -0
  150. package/dist/configure/services/idp/types.d.mts +23 -0
  151. package/dist/configure/services/index.d.mts +40 -0
  152. package/dist/configure/services/resolver/index.d.mts +6 -0
  153. package/dist/configure/services/resolver/permission.d.mts +64 -0
  154. package/dist/configure/services/resolver/resolver.d.mts +88 -0
  155. package/dist/configure/services/resolver/types.d.mts +5 -0
  156. package/dist/configure/services/secrets/index.d.mts +37 -0
  157. package/dist/configure/services/secrets/types.d.mts +10 -0
  158. package/dist/configure/services/staticwebsite/index.d.mts +18 -0
  159. package/dist/configure/services/staticwebsite/types.d.mts +10 -0
  160. package/dist/configure/services/tailordb/index.d.mts +3 -0
  161. package/dist/configure/services/tailordb/permission.d.mts +103 -0
  162. package/dist/configure/services/tailordb/schema.d.mts +486 -0
  163. package/dist/configure/services/tailordb/types.d.mts +198 -0
  164. package/dist/configure/services/workflow/execution-policy.d.mts +70 -0
  165. package/dist/configure/services/workflow/execution-policy.types.d.mts +103 -0
  166. package/dist/configure/services/workflow/index.d.mts +9 -0
  167. package/dist/configure/services/workflow/job.d.mts +92 -0
  168. package/dist/configure/services/workflow/types.d.mts +2 -0
  169. package/dist/configure/services/workflow/wait-point.d.mts +72 -0
  170. package/dist/configure/services/workflow/workflow.d.mts +66 -0
  171. package/dist/configure/types/aigateway-name.d.mts +12 -0
  172. package/dist/configure/types/connection-name.d.mts +12 -0
  173. package/dist/configure/types/field.d.mts +8 -0
  174. package/dist/configure/types/field.types.d.mts +70 -0
  175. package/dist/configure/types/idp-name.d.mts +12 -0
  176. package/dist/configure/types/index.d.mts +5 -0
  177. package/dist/configure/types/machine-user.d.mts +2 -0
  178. package/dist/configure/types/permission-operand.types.d.mts +20 -0
  179. package/dist/configure/types/type.d.mts +73 -0
  180. package/dist/{context-Bd266-ru.mjs → context-DYQVYWqZ.mjs} +4 -5
  181. package/dist/context-DYQVYWqZ.mjs.map +1 -0
  182. package/dist/{crashreport-BsjAkFWw.mjs → crashreport-B5LqCTfF.mjs} +10 -11
  183. package/dist/{crashreport-BsjAkFWw.mjs.map → crashreport-B5LqCTfF.mjs.map} +1 -1
  184. package/dist/{crashreport-pr6Rhvza.mjs → crashreport-eI7ty7ok.mjs} +1 -1
  185. package/dist/{errors-Dtf2WPaW.mjs → errors-D7583Zz7.mjs} +18 -2
  186. package/dist/errors-D7583Zz7.mjs.map +1 -0
  187. package/dist/{file-_oUZo76X.mjs → file-BUcmVIH2.mjs} +12 -22
  188. package/dist/file-BUcmVIH2.mjs.map +1 -0
  189. package/dist/{globals-Crz8o65k.mjs → globals-TfAVItuK.mjs} +32 -55
  190. package/dist/globals-TfAVItuK.mjs.map +1 -0
  191. package/dist/iconv-QWaZh0TT.mjs +38 -0
  192. package/dist/iconv-QWaZh0TT.mjs.map +1 -0
  193. package/dist/{idp-BDbK5gjm.mjs → idp-RA_swu-h.mjs} +12 -5
  194. package/dist/idp-RA_swu-h.mjs.map +1 -0
  195. package/dist/{interceptor-D-q1rvRl.mjs → interceptor-e33JtsC-.mjs} +2 -2
  196. package/dist/interceptor-e33JtsC-.mjs.map +1 -0
  197. package/dist/kysely/index.d.mts +5 -7
  198. package/dist/logger-BtX0suGY.mjs +48 -0
  199. package/dist/logger-BtX0suGY.mjs.map +1 -0
  200. package/dist/logger-CXQq9YIp.mjs +317 -0
  201. package/dist/logger-CXQq9YIp.mjs.map +1 -0
  202. package/dist/node-builtins-CmaL2Cbq.mjs +36 -0
  203. package/dist/node-builtins-CmaL2Cbq.mjs.map +1 -0
  204. package/dist/parser/service/auth/index.d.mts +1 -0
  205. package/dist/parser/service/auth/schema.d.mts +3 -0
  206. package/dist/parser/service/http-adapter/index.d.mts +1 -0
  207. package/dist/parser/service/http-adapter/schema.d.mts +1 -0
  208. package/dist/parser/service/idp/types.d.mts +5 -0
  209. package/dist/parser/service/tailordb/type-source.d.mts +10 -0
  210. package/dist/parser/service/tailordb/types.d.mts +131 -0
  211. package/dist/platform-serialize-RoRtBS0v.mjs +46 -0
  212. package/dist/platform-serialize-RoRtBS0v.mjs.map +1 -0
  213. package/dist/plugin/builtin/enum-constants/index.d.mts +15 -1
  214. package/dist/plugin/builtin/enum-constants/index.mjs +115 -2
  215. package/dist/plugin/builtin/enum-constants/index.mjs.map +1 -0
  216. package/dist/plugin/builtin/file-utils/index.d.mts +15 -1
  217. package/dist/plugin/builtin/file-utils/index.mjs +149 -2
  218. package/dist/plugin/builtin/file-utils/index.mjs.map +1 -0
  219. package/dist/plugin/builtin/kysely-type/index.d.mts +15 -1
  220. package/dist/plugin/builtin/kysely-type/index.mjs +274 -2
  221. package/dist/plugin/builtin/kysely-type/index.mjs.map +1 -0
  222. package/dist/plugin/builtin/seed/index.d.mts +46 -2
  223. package/dist/plugin/builtin/seed/index.mjs +1 -1
  224. package/dist/plugin/builtin/seed/seed-type-processor.d.mts +21 -0
  225. package/dist/plugin/builtin/seed/types.d.mts +2 -0
  226. package/dist/plugin/get-generated-type.d.mts +16 -0
  227. package/dist/plugin/index.d.mts +3 -117
  228. package/dist/plugin/index.mjs +1 -1
  229. package/dist/plugin/index.mjs.map +1 -1
  230. package/dist/plugin/manager.d.mts +2 -0
  231. package/dist/plugin/types.d.mts +242 -0
  232. package/dist/plugin/with-context.d.mts +101 -0
  233. package/dist/{runtime-n9NCkjee.mjs → register-ts-hook-LYV7zH-e.mjs} +9652 -4479
  234. package/dist/register-ts-hook-LYV7zH-e.mjs.map +1 -0
  235. package/dist/{registry-DdsYlL_P.mjs → registry-BIGVUrMB.mjs} +12 -9
  236. package/dist/registry-BIGVUrMB.mjs.map +1 -0
  237. package/dist/{repl-editor-DmGr9zMw.mjs → repl-editor-BCozyiNq.mjs} +6 -5
  238. package/dist/{repl-editor-DmGr9zMw.mjs.map → repl-editor-BCozyiNq.mjs.map} +1 -1
  239. package/dist/runtime/aigateway.d.mts +25 -0
  240. package/dist/runtime/aigateway.mjs +3 -0
  241. package/dist/runtime/authconnection.d.mts +21 -2
  242. package/dist/runtime/authconnection.mjs +2 -2
  243. package/dist/runtime/context.d.mts +54 -2
  244. package/dist/runtime/context.mjs +2 -2
  245. package/dist/runtime/field-parse.d.mts +10 -0
  246. package/dist/runtime/file.d.mts +170 -2
  247. package/dist/runtime/file.mjs +2 -2
  248. package/dist/runtime/globals.d.mts +38 -20
  249. package/dist/runtime/iconv.d.mts +73 -2
  250. package/dist/runtime/iconv.mjs +2 -2
  251. package/dist/runtime/idp.d.mts +129 -2
  252. package/dist/runtime/idp.mjs +2 -2
  253. package/dist/runtime/index.d.mts +48 -9
  254. package/dist/runtime/index.mjs +10 -8
  255. package/dist/runtime/logger.d.mts +98 -0
  256. package/dist/runtime/logger.mjs +3 -0
  257. package/dist/runtime/secretmanager.d.mts +41 -2
  258. package/dist/runtime/secretmanager.mjs +2 -2
  259. package/dist/runtime/types.d.mts +25 -0
  260. package/dist/runtime/workflow.d.mts +106 -2
  261. package/dist/runtime/workflow.mjs +2 -2
  262. package/dist/{schema-BhkpP5Hw.mjs → schema--xYWRGfe.mjs} +288 -229
  263. package/dist/schema--xYWRGfe.mjs.map +1 -0
  264. package/dist/{secret-file-DBqZhjFQ.mjs → secret-file-C3J4Gy8r.mjs} +2 -2
  265. package/dist/{secret-file-DBqZhjFQ.mjs.map → secret-file-C3J4Gy8r.mjs.map} +1 -1
  266. package/dist/secretmanager-CYlpffsz.mjs +13 -0
  267. package/dist/secretmanager-CYlpffsz.mjs.map +1 -0
  268. package/dist/secretmanager-IY4UvinW.mjs +131 -0
  269. package/dist/secretmanager-IY4UvinW.mjs.map +1 -0
  270. package/dist/seed/index.d.mts +4 -4
  271. package/dist/seed-B-yckgQY.mjs +483 -0
  272. package/dist/seed-B-yckgQY.mjs.map +1 -0
  273. package/dist/{service-DU1mVzri.mjs → service-B5WynBHQ.mjs} +3 -3
  274. package/dist/{service-DU1mVzri.mjs.map → service-B5WynBHQ.mjs.map} +1 -1
  275. package/dist/service-M7OYziQP.mjs +3 -0
  276. package/dist/service-k1xy_A5G.mjs +864 -0
  277. package/dist/service-k1xy_A5G.mjs.map +1 -0
  278. package/dist/service_pb-D5--My_M.mjs +167 -0
  279. package/dist/service_pb-D5--My_M.mjs.map +1 -0
  280. package/dist/service_pb-i8CmnQP4.mjs +3 -0
  281. package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +203 -0
  282. package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +57 -0
  283. package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +420 -0
  284. package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +160 -0
  285. package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +2069 -0
  286. package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +865 -0
  287. package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +111 -0
  288. package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +68 -0
  289. package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +438 -0
  290. package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +586 -0
  291. package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +192 -0
  292. package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +450 -0
  293. package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +191 -0
  294. package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +49 -0
  295. package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +406 -0
  296. package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +429 -0
  297. package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +72 -0
  298. package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +16 -0
  299. package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +308 -0
  300. package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +590 -0
  301. package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +329 -0
  302. package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +112 -0
  303. package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +345 -0
  304. package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +53 -0
  305. package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +3658 -0
  306. package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +186 -0
  307. package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +28 -0
  308. package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +428 -0
  309. package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +89 -0
  310. package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +683 -0
  311. package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +796 -0
  312. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +329 -0
  313. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +207 -0
  314. package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +961 -0
  315. package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +330 -0
  316. package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +2014 -0
  317. package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +482 -0
  318. package/dist/{telemetry-CdqJEzkj.mjs → telemetry-BRVdwh14.mjs} +3 -3
  319. package/dist/telemetry-BRVdwh14.mjs.map +1 -0
  320. package/dist/telemetry-CkbkeJxl.mjs +3 -0
  321. package/dist/test-env-key-D7UkZp99.mjs +75 -0
  322. package/dist/test-env-key-D7UkZp99.mjs.map +1 -0
  323. package/dist/types/aigateway.generated.d.mts +12 -0
  324. package/dist/types/app-config.generated.d.mts +4 -0
  325. package/dist/types/auth-connection.generated.d.mts +33 -0
  326. package/dist/types/auth.generated.d.mts +188 -0
  327. package/dist/types/executor.generated.d.mts +229 -0
  328. package/dist/types/helpers.d.mts +40 -0
  329. package/dist/types/http-adapter.generated.d.mts +28 -0
  330. package/dist/types/idp.generated.d.mts +626 -0
  331. package/dist/types/resolver.generated.d.mts +82 -0
  332. package/dist/types/secrets.generated.d.mts +14 -0
  333. package/dist/types/staticwebsite.generated.d.mts +14 -0
  334. package/dist/types/tailordb.generated.d.mts +468 -0
  335. package/dist/types/workflow.generated.d.mts +17 -0
  336. package/dist/user-agent-Bgsszb5I.mjs +28 -0
  337. package/dist/user-agent-Bgsszb5I.mjs.map +1 -0
  338. package/dist/utils/test/index.d.mts +5 -100
  339. package/dist/utils/test/index.mjs +38 -189
  340. package/dist/utils/test/index.mjs.map +1 -1
  341. package/dist/vitest/environment.d.mts +1 -2
  342. package/dist/vitest/environment.mjs +2 -2
  343. package/dist/vitest/environment.mjs.map +1 -1
  344. package/dist/vitest/index.d.mts +17 -431
  345. package/dist/vitest/index.mjs +1234 -67
  346. package/dist/vitest/index.mjs.map +1 -1
  347. package/dist/vitest/mock-kysely.d.mts +61 -0
  348. package/dist/vitest/mock.d.mts +10 -0
  349. package/dist/vitest/mocks/aigateway.d.mts +40 -0
  350. package/dist/vitest/mocks/authconnection.d.mts +38 -0
  351. package/dist/vitest/mocks/file.d.mts +58 -0
  352. package/dist/vitest/mocks/iconv.d.mts +51 -0
  353. package/dist/vitest/mocks/idp.d.mts +60 -0
  354. package/dist/vitest/mocks/logger.d.mts +45 -0
  355. package/dist/vitest/mocks/secretmanager.d.mts +44 -0
  356. package/dist/vitest/mocks/tailordb.d.mts +115 -0
  357. package/dist/vitest/mocks/workflow.d.mts +148 -0
  358. package/dist/vitest/setup.d.mts +1 -2
  359. package/dist/vitest/setup.mjs +2 -2
  360. package/dist/vitest/workflow-local.d.mts +41 -0
  361. package/dist/workflow-Bamae_Yc.mjs +34 -0
  362. package/dist/workflow-Bamae_Yc.mjs.map +1 -0
  363. package/dist/{client-z_oHGVNy.mjs → workspace_resource_pb-DXnO2AT-.mjs} +57 -621
  364. package/dist/workspace_resource_pb-DXnO2AT-.mjs.map +1 -0
  365. package/docs/cli/application.md +150 -250
  366. package/docs/cli/auth.md +51 -295
  367. package/docs/cli/completion.md +1 -25
  368. package/docs/cli/crashreport.md +3 -61
  369. package/docs/cli/executor.md +72 -183
  370. package/docs/cli/function.md +16 -132
  371. package/docs/cli/organization.md +11 -221
  372. package/docs/cli/plugin.md +29 -0
  373. package/docs/cli/query.md +2 -22
  374. package/docs/cli/secret.md +71 -251
  375. package/docs/cli/setup.md +138 -40
  376. package/docs/cli/skills.md +50 -39
  377. package/docs/cli/staticwebsite.md +32 -180
  378. package/docs/cli/tailordb.md +89 -413
  379. package/docs/cli/upgrade.md +2 -22
  380. package/docs/cli/user.md +78 -247
  381. package/docs/cli/workflow.md +150 -172
  382. package/docs/cli/workspace.md +167 -538
  383. package/docs/cli-reference.md +214 -96
  384. package/docs/configuration.md +90 -6
  385. package/docs/github-actions.md +72 -24
  386. package/docs/migration/v2.md +1613 -0
  387. package/docs/multi-environment.md +29 -7
  388. package/docs/plugin/custom.md +4 -4
  389. package/docs/plugin/index.md +8 -8
  390. package/docs/quickstart.md +8 -7
  391. package/docs/runtime.md +18 -9
  392. package/docs/services/aigateway.md +20 -2
  393. package/docs/services/auth.md +51 -59
  394. package/docs/services/executor.md +91 -6
  395. package/docs/services/http-adapter.md +16 -1
  396. package/docs/services/idp.md +62 -7
  397. package/docs/services/resolver.md +67 -11
  398. package/docs/services/secret.md +11 -11
  399. package/docs/services/staticwebsite.md +8 -2
  400. package/docs/services/tailordb-migration.md +55 -29
  401. package/docs/services/tailordb.md +205 -102
  402. package/docs/services/workflow.md +163 -55
  403. package/docs/testing.md +244 -143
  404. package/package.json +61 -46
  405. package/postinstall.mjs +4 -6
  406. package/dist/application-DB2r36Et.mjs +0 -3
  407. package/dist/application-DqS1yBg3.mjs.map +0 -1
  408. package/dist/authconnection-D2MhtTN5.mjs +0 -15
  409. package/dist/authconnection-D2MhtTN5.mjs.map +0 -1
  410. package/dist/authconnection-DvUQAjQS.d.mts +0 -39
  411. package/dist/cli/erd-viewer-assets/app.js +0 -1181
  412. package/dist/cli/erd-viewer-assets/index.html +0 -73
  413. package/dist/cli/erd-viewer-assets/serve.json +0 -13
  414. package/dist/cli/erd-viewer-assets/styles.css +0 -789
  415. package/dist/cli/index.d.mts +0 -5
  416. package/dist/cli/index.mjs.map +0 -1
  417. package/dist/client-Dbohmtkv.mjs +0 -3
  418. package/dist/client-z_oHGVNy.mjs.map +0 -1
  419. package/dist/context-Bd266-ru.mjs.map +0 -1
  420. package/dist/context-BuuIb8CC.d.mts +0 -68
  421. package/dist/enum-constants-j9QBF0cB.mjs +0 -116
  422. package/dist/enum-constants-j9QBF0cB.mjs.map +0 -1
  423. package/dist/errors-Dtf2WPaW.mjs.map +0 -1
  424. package/dist/field-DOsJCPFa.mjs +0 -22
  425. package/dist/field-DOsJCPFa.mjs.map +0 -1
  426. package/dist/file-BB8Vs9O_.d.mts +0 -250
  427. package/dist/file-_oUZo76X.mjs.map +0 -1
  428. package/dist/file-utils-DcyIPFQh.mjs +0 -150
  429. package/dist/file-utils-DcyIPFQh.mjs.map +0 -1
  430. package/dist/globals-Crz8o65k.mjs.map +0 -1
  431. package/dist/http-adapter.generated-WgMnb7Sb.d.mts +0 -580
  432. package/dist/iconv-Co-TOPuH.d.mts +0 -122
  433. package/dist/iconv-D2vi8G36.mjs +0 -63
  434. package/dist/iconv-D2vi8G36.mjs.map +0 -1
  435. package/dist/idp-BDbK5gjm.mjs.map +0 -1
  436. package/dist/idp-DrhVrLmV.d.mts +0 -160
  437. package/dist/index-5vPyRu1y.d.mts +0 -18
  438. package/dist/index-B7AKc18V.d.mts +0 -47
  439. package/dist/index-BlpzXncY.d.mts +0 -1016
  440. package/dist/index-CK7u9isy.d.mts +0 -46
  441. package/dist/index-CNYe5lnW.d.mts +0 -18
  442. package/dist/index-DjUdWlzf.d.mts +0 -18
  443. package/dist/index-ZePLwxw7.d.mts +0 -208
  444. package/dist/interceptor-D-q1rvRl.mjs.map +0 -1
  445. package/dist/job-fuc3j1Ma.mjs +0 -53
  446. package/dist/job-fuc3j1Ma.mjs.map +0 -1
  447. package/dist/kysely-type-DR8uzZTA.mjs +0 -274
  448. package/dist/kysely-type-DR8uzZTA.mjs.map +0 -1
  449. package/dist/logger-CxF-Ex5d.mjs +0 -220
  450. package/dist/logger-CxF-Ex5d.mjs.map +0 -1
  451. package/dist/mock-BjFj5o1I.mjs +0 -804
  452. package/dist/mock-BjFj5o1I.mjs.map +0 -1
  453. package/dist/registry-DdsYlL_P.mjs.map +0 -1
  454. package/dist/rolldown-runtime-DXywRVcq.mjs +0 -20
  455. package/dist/runtime-n9NCkjee.mjs.map +0 -1
  456. package/dist/schema-BhkpP5Hw.mjs.map +0 -1
  457. package/dist/secretmanager-B3n4KHfm.d.mts +0 -55
  458. package/dist/secretmanager-BVxw3ih_.mjs +0 -24
  459. package/dist/secretmanager-BVxw3ih_.mjs.map +0 -1
  460. package/dist/seed-jf3008-h.mjs +0 -1160
  461. package/dist/seed-jf3008-h.mjs.map +0 -1
  462. package/dist/service-CCL8ruDf.mjs +0 -459
  463. package/dist/service-CCL8ruDf.mjs.map +0 -1
  464. package/dist/service-D6yonf2I.mjs +0 -3
  465. package/dist/telemetry-CdqJEzkj.mjs.map +0 -1
  466. package/dist/telemetry-ClwW5ohF.mjs +0 -3
  467. package/dist/test-env-key-D9kM6ETE.mjs +0 -49
  468. package/dist/test-env-key-D9kM6ETE.mjs.map +0 -1
  469. package/dist/types-B2RpYyA_.mjs +0 -371
  470. package/dist/types-B2RpYyA_.mjs.map +0 -1
  471. package/dist/types-ClhIrW_C.mjs +0 -4
  472. package/dist/types-DCUhgpyI.d.mts +0 -784
  473. package/dist/types-DhO_VEZd.d.mts +0 -574
  474. package/dist/types-DwDgacni.d.mts +0 -338
  475. package/dist/workflow-BbKvGLQg.d.mts +0 -96
  476. package/dist/workflow-DgemCAz3.mjs +0 -38
  477. package/dist/workflow-DgemCAz3.mjs.map +0 -1
  478. package/dist/workflow.generated-DtQwEo-x.d.mts +0 -671
@@ -11,20 +11,42 @@ Deployment commands resolve the target workspace from, in priority order, the `-
11
11
  For one-off commands, pass the workspace explicitly:
12
12
 
13
13
  ```bash
14
- tailor-sdk deploy -w <staging-workspace-id>
14
+ tailor deploy -w <staging-workspace-id>
15
15
  ```
16
16
 
17
17
  For environments you switch between regularly, create a named profile per environment with the [profile commands](./cli/workspace.md#profile-create) and select it with `--profile` (`-p`) or `TAILOR_PLATFORM_PROFILE`:
18
18
 
19
19
  ```bash
20
- tailor-sdk profile create staging -u you@example.com -w <staging-workspace-id>
21
- tailor-sdk profile create production -u you@example.com -w <production-workspace-id> --permission read
20
+ tailor profile create staging -u you@example.com -w <staging-workspace-id>
21
+ tailor profile create production -u you@example.com -w <production-workspace-id> --permission read
22
22
 
23
- tailor-sdk deploy -p staging
23
+ tailor deploy -p staging
24
24
  ```
25
25
 
26
26
  Profiles are created with `write` permission by default. The production profile above opts into `--permission read`, which blocks write commands such as `deploy` while the profile is active — a guard against deploying to production by accident. To deploy to production deliberately, pass the workspace explicitly with `-w` without selecting the profile — the guard applies only while a profile is selected via `-p` or `TAILOR_PLATFORM_PROFILE` — or use a separate profile created with `write` permission.
27
27
 
28
+ If a profile targets a non-default Tailor Platform API, save that connection on the profile as well. User login tokens are stored per Platform URL, so you can log in once for each Platform and then switch with only the profile:
29
+
30
+ ```bash
31
+ export TAILOR_PLATFORM_URL=<platform-api-url>
32
+ export TAILOR_PLATFORM_OAUTH2_CLIENT_ID=<oauth2-client-id>
33
+ export TAILOR_PLATFORM_CONSOLE_URL=<console-url>
34
+
35
+ tailor login
36
+ tailor profile create development \
37
+ -u you@example.com \
38
+ -w <development-workspace-id> \
39
+ --platform-url "$TAILOR_PLATFORM_URL" \
40
+ --oauth2-client-id "$TAILOR_PLATFORM_OAUTH2_CLIENT_ID" \
41
+ --console-url "$TAILOR_PLATFORM_CONSOLE_URL"
42
+
43
+ unset TAILOR_PLATFORM_URL TAILOR_PLATFORM_OAUTH2_CLIENT_ID TAILOR_PLATFORM_CONSOLE_URL
44
+ tailor deploy -p development
45
+ tailor open -p development
46
+ ```
47
+
48
+ After the profile exists, run `tailor login -p development` to refresh the login for that Platform without re-exporting the connection variables.
49
+
28
50
  ## Varying config values per environment
29
51
 
30
52
  `tailor.config.ts` is a TypeScript module evaluated locally each time an SDK command loads it, so any value can branch on `process.env`. If the config also defines an auth before-login hook, mind the `process.env` caveat in [Environment Variables](./configuration.md#environment-variables). Keep one env file per environment and load it with the global [`--env-file`](./cli-reference.md#environment-file-loading) option:
@@ -32,17 +54,17 @@ Profiles are created with `write` permission by default. The production profile
32
54
  ```ini
33
55
  # .env.production
34
56
  APP_ENV=production
35
- LOG_LEVEL=WARN
57
+ TAILOR_APP_LOG_LEVEL=WARN
36
58
  ```
37
59
 
38
60
  ```bash
39
- tailor-sdk deploy -w <production-workspace-id> --env-file .env.production
61
+ tailor deploy -w <production-workspace-id> --env-file .env.production
40
62
  ```
41
63
 
42
64
  ```typescript
43
65
  export default defineConfig({
44
66
  name: "my-app",
45
- logLevel: process.env.LOG_LEVEL ?? "DEBUG",
67
+ logLevel: process.env.TAILOR_APP_LOG_LEVEL ?? "DEBUG",
46
68
  });
47
69
  ```
48
70
 
@@ -93,7 +93,7 @@ interface Plugin<TypeConfig = unknown, PluginConfig = unknown> {
93
93
  onTypeLoaded(context) {
94
94
  const { type, typeConfig, namespace } = context;
95
95
  return {
96
- types: { archive: db.type(`Deleted_${type.name}`, { ... }) },
96
+ types: { archive: db.table(`Deleted_${type.name}`, { ... }) },
97
97
  extends: { fields: { deletedAt: db.datetime({ optional: true }) } },
98
98
  executors: [{ name: `${type.name}-on-delete`, resolve: async () => await import("./on-delete"), context: { sourceType: type, namespace } }],
99
99
  };
@@ -122,7 +122,7 @@ Same as `TypePluginOutput` but without `extends` (namespace plugins cannot exten
122
122
  ```typescript
123
123
  onNamespaceLoaded(context) {
124
124
  return {
125
- types: { auditLog: db.type("AuditLog", { action: db.string(), ... }) },
125
+ types: { auditLog: db.table("AuditLog", { action: db.string(), ... }) },
126
126
  };
127
127
  },
128
128
  ```
@@ -343,7 +343,7 @@ function processSoftDelete(
343
343
 
344
344
  // Generate archive type
345
345
  const archiveType = db
346
- .type(`${prefix}${type.name}`, {
346
+ .table(`${prefix}${type.name}`, {
347
347
  originalId: db.uuid().description("ID of the deleted record"),
348
348
  originalData: db.string().description("JSON snapshot of deleted record"),
349
349
  deletedAt: db.datetime().description("When the record was deleted"),
@@ -450,7 +450,7 @@ export const plugins = definePlugins(
450
450
 
451
451
  // tailordb/customer.ts
452
452
  export const customer = db
453
- .type("Customer", {
453
+ .table("Customer", {
454
454
  name: db.string(),
455
455
  email: db.string(),
456
456
  })
@@ -6,7 +6,7 @@ Plugins extend TailorDB types by automatically generating additional types, exec
6
6
 
7
7
  ## Overview
8
8
 
9
- When you run `tailor-sdk generate`, the SDK:
9
+ When you run `tailor generate`, the SDK:
10
10
 
11
11
  1. Loads all TailorDB types with plugin attachments
12
12
  2. Passes each type to the attached plugins
@@ -43,7 +43,7 @@ Use the `.plugin()` method to attach plugins to specific types:
43
43
  import { db } from "@tailor-platform/sdk";
44
44
 
45
45
  export const user = db
46
- .type("User", {
46
+ .table("User", {
47
47
  name: db.string(),
48
48
  email: db.string(),
49
49
  })
@@ -58,7 +58,7 @@ Some plugins accept per-type configuration:
58
58
 
59
59
  ```typescript
60
60
  export const customer = db
61
- .type("Customer", {
61
+ .table("Customer", {
62
62
  name: db.string(),
63
63
  // ...
64
64
  })
@@ -102,18 +102,18 @@ Plugins can generate:
102
102
  - **Field Extensions**: Additional fields added to the source type
103
103
  - **Output Files**: TypeScript code and other files via generation-time hooks
104
104
 
105
- Generated files are placed under `.tailor-sdk/<plugin-id>/` (the plugin ID is sanitized,
105
+ Generated files are placed under `.tailor/<plugin-id>/` (the plugin ID is sanitized,
106
106
  e.g. `@example/soft-delete` → `example-soft-delete`), such as:
107
107
 
108
- - `.tailor-sdk/example-soft-delete/types`
109
- - `.tailor-sdk/example-soft-delete/executors`
108
+ - `.tailor/example-soft-delete/types`
109
+ - `.tailor/example-soft-delete/executors`
110
110
 
111
111
  ## Plugin Lifecycle
112
112
 
113
- Plugins have 5 hooks across two lifecycle phases. Each hook fires at a specific point in the `tailor-sdk generate` pipeline:
113
+ Plugins have 5 hooks across two lifecycle phases. Each hook fires at a specific point in the `tailor generate` pipeline:
114
114
 
115
115
  ```
116
- tailor-sdk generate
116
+ tailor generate
117
117
 
118
118
  ├─ Load TailorDB types
119
119
  │ ├─ onTypeLoaded ← per type with .plugin() attached
@@ -12,7 +12,7 @@ Contact us [here](https://www.tailor.tech/demo) to get started.
12
12
 
13
13
  ### Install Node.js
14
14
 
15
- The SDK requires Node.js 22 or later. Install Node.js via your package manager by following the official Node.js instructions.
15
+ The SDK requires Node.js 22.15.0 or later. Install Node.js via your package manager by following the official Node.js instructions.
16
16
 
17
17
  Alternatively, you can use [Bun](https://bun.sh/) as the runtime.
18
18
 
@@ -24,20 +24,22 @@ The following command creates a new project with the required configuration file
24
24
 
25
25
  ```bash
26
26
  npm create @tailor-platform/sdk -- --template hello-world example-app
27
+ cd example-app
27
28
  # Or with Bun:
28
29
  # bun create @tailor-platform/sdk --template hello-world example-app
30
+ # cd example-app
29
31
  ```
30
32
 
31
33
  Before deploying your app, you need to create a workspace:
32
34
 
33
35
  ```bash
34
- npx tailor-sdk login
35
- npx tailor-sdk workspace create --name <workspace-name> --region <workspace-region>
36
- npx tailor-sdk workspace list
36
+ npx tailor login
37
+ npx tailor workspace create --name <workspace-name> --region <workspace-region>
38
+ npx tailor workspace list
37
39
 
38
40
  # Or with Bun:
39
- # bunx tailor-sdk login
40
- # bunx tailor-sdk workspace create --name <workspace-name> --region <workspace-region>
41
+ # bunx tailor login
42
+ # bunx tailor workspace create --name <workspace-name> --region <workspace-region>
41
43
 
42
44
  # OR
43
45
  # Create a new workspace using Tailor Platform Console
@@ -49,7 +51,6 @@ npx tailor-sdk workspace list
49
51
  Run the deploy command to deploy your project:
50
52
 
51
53
  ```bash
52
- cd example-app
53
54
  npm run deploy -- --workspace-id <your-workspace-id>
54
55
  # Or with Bun:
55
56
  # bun run deploy --workspace-id <your-workspace-id>
package/docs/runtime.md CHANGED
@@ -19,6 +19,8 @@ import {
19
19
  workflow,
20
20
  context,
21
21
  file,
22
+ aigateway,
23
+ logger,
22
24
  } from "@tailor-platform/sdk/runtime";
23
25
 
24
26
  const utf8 = iconv.convert(sjisBuffer, "Shift_JIS", "UTF-8");
@@ -30,11 +32,15 @@ const token = await authconnection.getConnectionToken("google");
30
32
  const client = new idp.Client({ namespace: "my-namespace" });
31
33
  const { users } = await client.users({ first: 10 });
32
34
 
33
- const executionId = await workflow.triggerWorkflow("approval", { reportId });
35
+ const executionId = await workflow.startWorkflow("approval", { reportId });
34
36
 
35
37
  const invoker = context.getInvoker();
36
38
 
37
39
  const { metadata } = await file.upload("my-namespace", "Document", "attachment", recordId, bytes);
40
+
41
+ const { url } = await aigateway.get("my-aigateway");
42
+
43
+ logger.info("order processed", { orderId: "o-1", total: 99.5 });
38
44
  ```
39
45
 
40
46
  ## Subpath imports
@@ -42,10 +48,12 @@ const { metadata } = await file.upload("my-namespace", "Document", "attachment",
42
48
  Each namespace can also be imported individually so you only pull what you need:
43
49
 
44
50
  ```ts
45
- import * as iconv from "@tailor-platform/sdk/runtime/iconv";
46
- import type { ListUsersResponse, ClientConfig } from "@tailor-platform/sdk/runtime/idp";
51
+ import { iconv } from "@tailor-platform/sdk/runtime/iconv";
52
+ import { idp, type ListUsersResponse, type ClientConfig } from "@tailor-platform/sdk/runtime/idp";
47
53
  ```
48
54
 
55
+ `TailorContextAPI` and `TailorWorkflowAPI` describe the imported SDK wrapper objects. When typing direct access to the platform-provided globals or a runtime mock, use `PlatformContextAPI` or `PlatformWorkflowAPI` instead.
56
+
49
57
  ## Activating the global types
50
58
 
51
59
  Most users do not need to touch the globals entry — `@tailor-platform/sdk/runtime` (and its subpath modules) cover the same surface without depending on any ambient declaration.
@@ -76,9 +84,11 @@ The runtime entry re-exports the following namespaces. Detailed signatures, para
76
84
  - `secretmanager` — secret-vault access (`getSecret`, `getSecrets`)
77
85
  - `authconnection` — OAuth-style connection tokens (`getConnectionToken`)
78
86
  - `idp` — IdP user management (`new Client({ namespace })`)
79
- - `workflow` — workflow & job control (`triggerWorkflow`, `triggerJobFunction`, `wait`, `resolve`)
87
+ - `workflow` — workflow & job control (`startWorkflow`, `resumeWorkflowExecution`, `execJobFunction`, `wait`, `resolve`)
80
88
  - `context` — execution context (`getInvoker`)
81
- - `file` — `tailordb.file` BLOB API (`upload`, `download`, `downloadAsBase64`, `delete`, `getMetadata`, `downloadStream`, `uploadStream`, `openDownloadStream` _(deprecated)_)
89
+ - `file` — `tailordb.file` BLOB API (`upload`, `download`, `downloadAsBase64`, `delete`, `getMetadata`, `downloadStream`, `uploadStream`)
90
+ - `aigateway` — AI Gateway URL resolution (`get`)
91
+ - `logger` — structured logging with severity and attributes; the message is written to standard output, the full entry with its attributes is exported over OpenTelemetry where the attributes are queryable (`debug`, `info`, `warn`, `error`, `setAttributes`)
82
92
 
83
93
  ## Testing
84
94
 
@@ -91,17 +101,16 @@ import { expect, test } from "vitest";
91
101
 
92
102
  test("encodes via iconv", () => {
93
103
  using iconvM = mockIconv();
94
- iconvM.setResolver(() => new Uint8Array([0x82, 0xa0]));
104
+ iconvM.convert.mockReturnValue(new Uint8Array([0x82, 0xa0]));
95
105
 
96
106
  const out = iconv.convert("あ", "UTF-8", "Shift_JIS");
97
107
 
98
108
  expect(out).toEqual(new Uint8Array([0x82, 0xa0]));
99
- expect(iconvM.calls[0]?.method).toBe("convert");
109
+ expect(iconvM.convert).toHaveBeenCalledWith("", "UTF-8", "Shift_JIS");
100
110
  }); // iconvM disposed here — the iconv mock is removed (previous state restored)
101
111
 
102
112
  test("reads from a vault", async () => {
103
- using sm = mockSecretmanager();
104
- sm.setSecrets({ "my-vault": { API_KEY: "sk-123" } });
113
+ using sm = mockSecretmanager({ secrets: { "my-vault": { API_KEY: "sk-123" } } });
105
114
 
106
115
  await expect(secretmanager.getSecret("my-vault", "API_KEY")).resolves.toBe("sk-123");
107
116
  });
@@ -1,12 +1,12 @@
1
1
  # AI Gateway
2
2
 
3
- AI Gateway provides a unified endpoint for accessing multiple LLM providers (Azure OpenAI, Google Vertex AI Gemini, Anthropic via Vertex AI) through a single OpenAI-compatible API, with platform-managed credentials and workspace-scoped authentication.
3
+ AI Gateway provides a unified endpoint for accessing a range of large language models through a single OpenAI-compatible API, with platform-managed credentials and workspace-scoped authentication.
4
4
 
5
5
  ## Overview
6
6
 
7
7
  AI Gateway provides:
8
8
 
9
- - A unified, OpenAI-compatible endpoint for multiple LLM providers
9
+ - A unified, OpenAI-compatible endpoint for multiple LLM models
10
10
  - Mandatory authentication via your workspace's auth (request tokens are resolved against the configured auth namespace)
11
11
  - Per-workspace isolation: each gateway is provisioned with its own platform-assigned URL
12
12
  - Optional CORS allow-list for browser-based clients
@@ -31,6 +31,7 @@ const aiGateway = defineAIGateway("my-aigateway", {
31
31
  });
32
32
 
33
33
  export default defineConfig({
34
+ name: "my-app",
34
35
  aiGateways: [aiGateway],
35
36
  });
36
37
  ```
@@ -80,6 +81,7 @@ const website = defineStaticWebSite("my-frontend", {
80
81
  });
81
82
 
82
83
  const aiGateway = defineAIGateway("my-aigateway", {
84
+ // Name of an auth namespace in your workspace; request tokens are resolved against it.
83
85
  authNamespace: "default",
84
86
  cors: [website.url],
85
87
  });
@@ -95,3 +97,19 @@ export default defineConfig({
95
97
  aiGateways: [aiGateway],
96
98
  });
97
99
  ```
100
+
101
+ ## Runtime Usage
102
+
103
+ Resolvers, executors, and workflow jobs can resolve a gateway's platform-assigned URL by name via `aigateway.get()`. The name is type-checked and autocompleted against the AI Gateways defined in `aiGateways`:
104
+
105
+ ```typescript
106
+ import { aigateway } from "@tailor-platform/sdk/runtime";
107
+
108
+ const { url } = await aigateway.get("my-aigateway");
109
+
110
+ // await aigateway.get("unknown"); // Type error — only "my-aigateway" is allowed
111
+ ```
112
+
113
+ Type narrowing is provided by the generated `tailor.d.ts` (the `AIGatewayNameRegistry` interface). Run `tailor generate` (or `deploy`) after defining new AI Gateways to refresh it. Before the first generate run, `get()` accepts any string.
114
+
115
+ The same URL is also shown by `tailor show`, which lists the URL of each AI Gateway defined in `aiGateways` once it has been deployed.
@@ -86,7 +86,7 @@ Example TailorDB type for user profile:
86
86
  // tailordb/user.ts
87
87
  import { db } from "@tailor-platform/sdk";
88
88
 
89
- export const user = db.type("User", {
89
+ export const user = db.table("User", {
90
90
  email: db.string().unique(), // usernameField must have unique constraint
91
91
  role: db.enum(["admin", "user"]),
92
92
  ...db.fields.timestamps(),
@@ -107,7 +107,7 @@ userProfile: {
107
107
 
108
108
  **usernameField**: The field in the TailorDB type used as the username. This field must have a unique constraint (`.unique()`) since it is used to uniquely identify users.
109
109
 
110
- **attributes**: Specifies which fields from the TailorDB type are used as user attributes. Set to `true` to enable a field. Enabled attributes must be assigned values in all machine user definitions. Only fields with ValueOperand types (string, boolean, string[], boolean[]) can be used as attributes. The `id` field and datetime/date/time types are excluded.
110
+ **attributes**: Specifies which fields from the TailorDB type are used as user attributes. Set to `true` to enable a field. Machine user definitions must assign values to attributes derived from required fields; attributes derived from optional fields may be omitted (see [Machine Users](#machine-users)). Only fields with ValueOperand types (string, boolean, string[], boolean[]) can be used as attributes. The `id` field and datetime/date/time types are excluded.
111
111
 
112
112
  ## Attribute List
113
113
 
@@ -130,7 +130,7 @@ Example TailorDB type with UUID fields for attribute list:
130
130
  // tailordb/user.ts
131
131
  import { db } from "@tailor-platform/sdk";
132
132
 
133
- export const user = db.type("User", {
133
+ export const user = db.table("User", {
134
134
  email: db.string().unique(),
135
135
  role: db.enum(["admin", "user"]),
136
136
  organizationId: db.uuid(), // Can be used in attributeList
@@ -139,18 +139,18 @@ export const user = db.type("User", {
139
139
  });
140
140
  ```
141
141
 
142
- The `attributeList` values are accessible via `user.attributeList` as a tuple:
142
+ The `attributeList` values are accessible via the runtime principal's `attributeList` as a tuple:
143
143
 
144
144
  ```typescript
145
145
  // In a resolver
146
146
  body: (context) => {
147
- const [organizationId, teamId] = context.user.attributeList;
147
+ const [organizationId, teamId] = context.caller?.attributeList ?? [];
148
148
  },
149
149
 
150
150
  // In TailorDB hooks
151
151
  .hooks({
152
152
  field: {
153
- create: ({ user }) => user.attributeList[0], // First UUID from list
153
+ create: ({ invoker }) => invoker?.attributeList[0] ?? null, // First UUID from list
154
154
  },
155
155
  })
156
156
  ```
@@ -160,7 +160,7 @@ body: (context) => {
160
160
  When you want to use machine users without defining a `userProfile`, define `machineUserAttributes` instead. These attributes are used for:
161
161
 
162
162
  - type-safe `machineUsers[*].attributes`
163
- - `context.user.attributes` typing (via `tailor.d.ts`)
163
+ - runtime principal `attributes` typing (via `tailor.d.ts`)
164
164
 
165
165
  ```typescript
166
166
  import { defineAuth, t } from "@tailor-platform/sdk";
@@ -182,7 +182,7 @@ export const auth = defineAuth("my-auth", {
182
182
  To update types in `tailor.d.ts`, run:
183
183
 
184
184
  ```bash
185
- tailor-sdk generate
185
+ tailor generate
186
186
  ```
187
187
 
188
188
  ## Machine Users
@@ -200,12 +200,12 @@ machineUsers: {
200
200
  },
201
201
  ```
202
202
 
203
- **attributes**: Values for attributes enabled in `userProfile.attributes` (or all fields defined in `machineUserAttributes` when `userProfile` is omitted). All enabled fields must be set here. These values are accessible via `user.attributes`:
203
+ **attributes**: Values for attributes enabled in `userProfile.attributes` (or fields defined in `machineUserAttributes` when `userProfile` is omitted). Attribute keys mirror the field's optionality: attributes derived from required fields must be set, while attributes derived from optional fields may be omitted. Setting an attribute to `null` or `undefined` is equivalent to omitting it — the attribute is deployed as unset. These values are accessible via the runtime principal's `attributes`:
204
204
 
205
205
  ```typescript
206
206
  // In a resolver
207
207
  body: (context) => {
208
- const role = context.user.attributes?.role;
208
+ const role = context.caller?.attributes.role;
209
209
  },
210
210
  ```
211
211
 
@@ -230,25 +230,25 @@ machineUsers: {
230
230
  },
231
231
  ```
232
232
 
233
- These values are accessible via `user.attributeList`:
233
+ These values are accessible via the runtime principal's `attributeList`:
234
234
 
235
235
  ```typescript
236
236
  // In a resolver
237
237
  body: (context) => {
238
- const [organizationId, teamId] = context.user.attributeList;
238
+ const [organizationId, teamId] = context.caller?.attributeList ?? [];
239
239
  },
240
240
 
241
241
  // In TailorDB hooks
242
242
  .hooks({
243
243
  field: {
244
- create: ({ user }) => user.attributes?.role === "ADMIN" ? "default" : null,
244
+ create: ({ invoker }) => invoker?.attributes.role === "ADMIN" ? "default" : null,
245
245
  },
246
246
  })
247
247
 
248
248
  // In TailorDB validate
249
249
  .validate({
250
250
  field: [
251
- ({ user }) => user.attributes?.role === "ADMIN",
251
+ ({ invoker }) => invoker?.attributes.role === "ADMIN",
252
252
  "Only admins can set this field",
253
253
  ],
254
254
  })
@@ -264,12 +264,12 @@ Machine users are useful for:
264
264
  Get a machine user token using the CLI:
265
265
 
266
266
  ```bash
267
- tailor-sdk machineuser token <name>
267
+ tailor machineuser token <name>
268
268
  ```
269
269
 
270
270
  ### Specifying a machine user invoker
271
271
 
272
- Resolvers, executors, and `workflow.trigger()` accept an `authInvoker` option that chooses which machine user runs the operation. Pass the machine user name as a plain string — it is type-narrowed to the names you registered in `machineUsers`.
272
+ Resolvers, executors, and `workflow.start()` accept an `invoker` option that chooses which machine user runs the operation. Pass the machine user name as a plain string — it is type-narrowed to the names you registered in `machineUsers`.
273
273
 
274
274
  ```typescript
275
275
  // tailor.config.ts
@@ -284,21 +284,21 @@ export const auth = defineAuth("my-auth", {
284
284
  ```
285
285
 
286
286
  ```typescript
287
- // resolvers/trigger-workflow.ts
287
+ // resolvers/start-workflow.ts
288
288
  import { createResolver, t } from "@tailor-platform/sdk";
289
289
  import myWorkflow from "../workflows/my-workflow";
290
290
 
291
291
  export default createResolver({
292
- name: "triggerMyWorkflow",
292
+ name: "startMyWorkflow",
293
293
  operation: "mutation",
294
294
  input: {
295
295
  id: t.string(),
296
296
  },
297
297
  body: async ({ input }) => {
298
- // Trigger workflow with machine user permissions
299
- const workflowRunId = await myWorkflow.trigger(
298
+ // Start workflow with machine user permissions
299
+ const workflowRunId = await myWorkflow.start(
300
300
  { id: input.id },
301
- { authInvoker: "admin-machine-user" },
301
+ { invoker: "admin-machine-user" },
302
302
  );
303
303
  return { workflowRunId };
304
304
  },
@@ -308,7 +308,7 @@ export default createResolver({
308
308
  });
309
309
  ```
310
310
 
311
- Type narrowing is provided by the generated `tailor.d.ts` (the `MachineUserNameRegistry` interface). Run `tailor-sdk generate` (or `apply`) after defining new machine users to refresh it.
311
+ Type narrowing is provided by the generated `tailor.d.ts` (the `MachineUserNameRegistry` interface). Run `tailor generate` (or `deploy`) after defining new machine users to refresh it.
312
312
 
313
313
  ## OAuth 2.0 Clients
314
314
 
@@ -348,7 +348,7 @@ oauth2Clients: {
348
348
  Get OAuth2 client credentials using the CLI:
349
349
 
350
350
  ```bash
351
- tailor-sdk oauth2client get <name>
351
+ tailor oauth2client get <name>
352
352
  ```
353
353
 
354
354
  ## Identity Provider
@@ -363,21 +363,18 @@ See [IdP](./idp.md) for configuring identity providers.
363
363
 
364
364
  ## Auth Connections
365
365
 
366
- Auth connections enable OAuth2 authentication with external providers (Google, Microsoft 365, QuickBooks, etc.) for application-to-application flows. Functions can access connection tokens at runtime via `tailor.authconnection.getConnectionToken()`.
366
+ Auth connections enable OAuth2 authentication with external providers (Google, Microsoft 365, QuickBooks, etc.) for application-to-application flows. Functions can access connection tokens at runtime via `authconnection.getConnectionToken()` (from `@tailor-platform/sdk/runtime`).
367
367
 
368
368
  For the official Tailor Platform documentation, see [AuthConnection Guide](https://docs.tailor.tech/guides/auth/authconnection).
369
369
 
370
- > [!WARNING]
371
- > **Managing connections through `tailor.config.ts` is unreliable for shared and CI deploys.**
372
- > A deploy revokes and recreates the connection — discarding the token obtained via `authconnection authorize` — whenever it cannot confirm the secret is unchanged. That check relies on a hash stored locally in `.tailor-sdk/secrets-state.json`, which is gitignored and therefore not shared across machines. So a deploy from CI, a clean checkout, another developer's machine, or after deleting `.tailor-sdk/` recreates the connection and drops its token. Only repeated deploys from the same machine that still holds that state keep the token.
373
- >
374
- > Because of this, prefer to **create the connection and its token from the Console**. You can jump to the connections page with:
370
+ > [!NOTE]
371
+ > Deploy updates connections **in-place**, preserving the OAuth token. If the connection requires re-authorization after an update, the deploy will warn you:
375
372
  >
376
373
  > ```bash
377
- > tailor-sdk authconnection open
374
+ > tailor authconnection authorize --name <connection-name>
375
+ > # Or via the Console:
376
+ > tailor authconnection open
378
377
  > ```
379
- >
380
- > The `connections` field in `defineAuth()` and the `authconnection authorize` flow are documented below for reference.
381
378
 
382
379
  ### Setup Flow
383
380
 
@@ -409,10 +406,10 @@ export const auth = defineAuth("my-auth", {
409
406
  });
410
407
  ```
411
408
 
412
- After `tailor-sdk deploy`, authorize the connection:
409
+ After `tailor deploy`, authorize the connection:
413
410
 
414
411
  ```bash
415
- tailor-sdk authconnection authorize --name google-connection \
412
+ tailor authconnection authorize --name google-connection \
416
413
  --scopes "openid,profile,email"
417
414
  ```
418
415
 
@@ -430,30 +427,25 @@ The authorize command opens a browser for the OAuth2 flow. The authorization cod
430
427
  | `authUrl` | `string` | No | Override for the authorization endpoint. |
431
428
  | `tokenUrl` | `string` | No | Override for the token endpoint. |
432
429
 
433
- ### Change Detection
434
-
435
- The SDK uses hash-based change detection for connection configs. Only connections whose configuration has changed since the last `apply` are updated (revoked and recreated). Deleting the `.tailor-sdk/` directory forces all connections to be re-sent.
430
+ ### Retrieving Connection Tokens
436
431
 
437
- > [!WARNING]
438
- > The secret hash lives in `.tailor-sdk/secrets-state.json`, which is gitignored and not shared across machines or CI. When that state is missing — a clean checkout, CI, another machine, or after deleting `.tailor-sdk/` — a deploy cannot confirm the secret is unchanged, so it revokes and recreates the connection and discards the token stored by `authconnection authorize`. For shared and CI workflows, manage the connection and create its token from the Console (`tailor-sdk authconnection open`) instead.
439
-
440
- ### `auth.getConnectionToken()`
441
-
442
- `auth.getConnectionToken()` retrieves connection tokens at runtime by calling `tailor.authconnection.getConnectionToken()` internally. When `connections` is defined in `defineAuth()`, the connection name is type-checked and autocompleted against the defined keys:
432
+ Use `authconnection.getConnectionToken()` from `@tailor-platform/sdk/runtime` to retrieve connection tokens at runtime. The connection name is type-checked and autocompleted against the connections defined in `defineAuth()`'s `connections`:
443
433
 
444
434
  ```typescript
445
- import { auth } from "../tailor.config";
435
+ import { authconnection } from "@tailor-platform/sdk/runtime";
446
436
 
447
437
  // In a resolver, executor, or workflow:
448
- const tokens = await auth.getConnectionToken("google-connection");
438
+ const tokens = await authconnection.getConnectionToken("google-connection");
449
439
  const response = await fetch("https://www.googleapis.com/...", {
450
440
  headers: { Authorization: `Bearer ${tokens.access_token}` },
451
441
  });
452
442
 
453
- // auth.getConnectionToken("unknown"); // Type error — only "google-connection" is allowed
443
+ // authconnection.getConnectionToken("unknown"); // Type error — only "google-connection" is allowed
454
444
  ```
455
445
 
456
- When `connections` is not defined, `getConnectionToken()` accepts any string. This supports connections managed entirely via the CLI.
446
+ Type narrowing is provided by the generated `tailor.d.ts` (the `ConnectionNameRegistry` interface). Run `tailor generate` (or `deploy`) after defining new connections to refresh it. Before the first generate, or when `connections` is not defined in `defineAuth()`, `getConnectionToken()` accepts any string this also supports connections managed entirely via the CLI.
447
+
448
+ This keeps runtime files independent from `tailor.config.ts`.
457
449
 
458
450
  See [Built-in Interfaces](https://docs.tailor.tech/guides/function/builtin-interfaces.html#auth-connection) for the full runtime API.
459
451
 
@@ -463,19 +455,19 @@ Auth connections can also be managed via the CLI:
463
455
 
464
456
  ```bash
465
457
  # Open the connections page in the Console (recommended for creating connections/tokens)
466
- tailor-sdk authconnection open
458
+ tailor authconnection open
467
459
 
468
460
  # Authorize (opens browser for OAuth2 flow)
469
- tailor-sdk authconnection authorize --name google-connection
461
+ tailor authconnection authorize --name google-connection
470
462
 
471
463
  # List all connections
472
- tailor-sdk authconnection list
464
+ tailor authconnection list
473
465
 
474
466
  # Revoke a connection
475
- tailor-sdk authconnection revoke --name google-connection
467
+ tailor authconnection revoke --name google-connection
476
468
  ```
477
469
 
478
- Connection creation is handled by `tailor-sdk deploy` via the config, but recreation on deploy can drop the authorized token (see the warning at the top of this section) — for shared and CI workflows, create connections and tokens from the Console (`tailor-sdk authconnection open`) instead.
470
+ Connection creation and updates are handled by `tailor deploy` via the config. Deploy updates connections in-place, preserving the authorized token, and warns you if an update requires re-authorization (see the note above).
479
471
 
480
472
  See [Auth Resource Commands](../cli/auth.md) for full CLI documentation.
481
473
 
@@ -538,21 +530,21 @@ Manage Auth resources using the CLI:
538
530
 
539
531
  ```bash
540
532
  # Auth connections
541
- tailor-sdk authconnection authorize --name <name>
542
- tailor-sdk authconnection list
543
- tailor-sdk authconnection revoke --name <name>
533
+ tailor authconnection authorize --name <name>
534
+ tailor authconnection list
535
+ tailor authconnection revoke --name <name>
544
536
 
545
537
  # List machine users
546
- tailor-sdk machineuser list
538
+ tailor machineuser list
547
539
 
548
540
  # Get machine user token
549
- tailor-sdk machineuser token <name>
541
+ tailor machineuser token <name>
550
542
 
551
543
  # List OAuth2 clients
552
- tailor-sdk oauth2client list
544
+ tailor oauth2client list
553
545
 
554
546
  # Get OAuth2 client credentials
555
- tailor-sdk oauth2client get <name>
547
+ tailor oauth2client get <name>
556
548
  ```
557
549
 
558
550
  See [Auth Resource Commands](../cli/auth.md) for full documentation.