@tailor-platform/sdk 2.0.0-next.0 → 2.0.0-next.2

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 (208) hide show
  1. package/CHANGELOG.md +161 -0
  2. package/dist/application-Dtqap5jM.mjs +3 -0
  3. package/dist/{client-CobIRHl-.mjs → application-XuMWK4eq.mjs} +5869 -25
  4. package/dist/application-XuMWK4eq.mjs.map +1 -0
  5. package/dist/{assert-CKfwrmCV.mjs → assert-DBxo8jPo.mjs} +1 -2
  6. package/dist/{assert-CKfwrmCV.mjs.map → assert-DBxo8jPo.mjs.map} +1 -1
  7. package/dist/{authconnection-D8SJGMpj.mjs → authconnection-D2MhtTN5.mjs} +2 -3
  8. package/dist/{authconnection-D8SJGMpj.mjs.map → authconnection-D2MhtTN5.mjs.map} +1 -1
  9. package/dist/{authconnection-BIYzEh2p.d.mts → authconnection-DvUQAjQS.d.mts} +1 -1
  10. package/dist/{brand-DlnJ375c.mjs → brand-Eo4pLXPJ.mjs} +1 -2
  11. package/dist/{brand-DlnJ375c.mjs.map → brand-Eo4pLXPJ.mjs.map} +1 -1
  12. package/dist/cli/index.mjs +241 -237
  13. package/dist/cli/index.mjs.map +1 -1
  14. package/dist/cli/lib.d.mts +547 -620
  15. package/dist/cli/lib.mjs +9 -11
  16. package/dist/cli/lib.mjs.map +1 -1
  17. package/dist/completion/zsh-worker.zsh +4108 -0
  18. package/dist/configure/index.d.mts +9 -7
  19. package/dist/configure/index.mjs +76 -40
  20. package/dist/configure/index.mjs.map +1 -1
  21. package/dist/{context-s0lxhu8_.mjs → context-Bd266-ru.mjs} +2 -3
  22. package/dist/context-Bd266-ru.mjs.map +1 -0
  23. package/dist/{context-CUBwSBq4.d.mts → context-C2lEi9uw.d.mts} +7 -28
  24. package/dist/{crashreport-D1wKBJ8N.mjs → crashreport-BMWcxeSE.mjs} +1 -2
  25. package/dist/{crashreport-BhD0y14F.mjs → crashreport-DFq-vsU0.mjs} +21 -14
  26. package/dist/{crashreport-BhD0y14F.mjs.map → crashreport-DFq-vsU0.mjs.map} +1 -1
  27. package/dist/{enum-constants-C7DaWeQo.mjs → enum-constants-j9QBF0cB.mjs} +1 -2
  28. package/dist/enum-constants-j9QBF0cB.mjs.map +1 -0
  29. package/dist/{errors-EsY4XO6O.mjs → errors-Dtf2WPaW.mjs} +1 -2
  30. package/dist/{errors-EsY4XO6O.mjs.map → errors-Dtf2WPaW.mjs.map} +1 -1
  31. package/dist/{field-C4zdJLW5.mjs → field-DOsJCPFa.mjs} +1 -2
  32. package/dist/field-DOsJCPFa.mjs.map +1 -0
  33. package/dist/{file-B58Dm-2P.mjs → file-BbdFGdMV.mjs} +3 -12
  34. package/dist/file-BbdFGdMV.mjs.map +1 -0
  35. package/dist/{file-BzK8z3X-.d.mts → file-Dq3NIt_F.d.mts} +3 -42
  36. package/dist/{file-utils-BHPxPXmn.mjs → file-utils-CYZnO1pX.mjs} +6 -7
  37. package/dist/file-utils-CYZnO1pX.mjs.map +1 -0
  38. package/dist/{globals-ByrCoDip.mjs → globals-Cf0sxIt8.mjs} +53 -5
  39. package/dist/globals-Cf0sxIt8.mjs.map +1 -0
  40. package/dist/http-adapter.generated-DFsXDdm5.d.mts +581 -0
  41. package/dist/{iconv-kwrmd1U_.d.mts → iconv-Co-TOPuH.d.mts} +1 -1
  42. package/dist/{iconv-DreIffeM.mjs → iconv-D2vi8G36.mjs} +2 -3
  43. package/dist/{iconv-DreIffeM.mjs.map → iconv-D2vi8G36.mjs.map} +1 -1
  44. package/dist/{idp-Ch95ag8h.mjs → idp-BDbK5gjm.mjs} +2 -3
  45. package/dist/{idp-Ch95ag8h.mjs.map → idp-BDbK5gjm.mjs.map} +1 -1
  46. package/dist/{idp-BlBPtXJ-.d.mts → idp-DrhVrLmV.d.mts} +1 -1
  47. package/dist/{index-CLxubakC.d.mts → index-BI-_j9Z3.d.mts} +49 -261
  48. package/dist/{index-CPRnOjjt.d.mts → index-C4JirJH8.d.mts} +2 -2
  49. package/dist/{index-CQZVJ5SX.d.mts → index-CZfWhr0a.d.mts} +2 -2
  50. package/dist/{index-DRhMpdnA.d.mts → index-Cg8VKAdN.d.mts} +8 -8
  51. package/dist/{index-CfRFkXIO.d.mts → index-DYRjoLXD.d.mts} +2 -2
  52. package/dist/index-lFpcjHPU.d.mts +201 -0
  53. package/dist/{index-DUupuPhZ.d.mts → index-nW7hE6oE.d.mts} +2 -2
  54. package/dist/{interceptor-DOqRkCya.mjs → interceptor-D-q1rvRl.mjs} +1 -2
  55. package/dist/{interceptor-DOqRkCya.mjs.map → interceptor-D-q1rvRl.mjs.map} +1 -1
  56. package/dist/kysely/index.mjs +0 -1
  57. package/dist/kysely/index.mjs.map +1 -1
  58. package/dist/{kysely-type-D1e0Vwkd.mjs → kysely-type-DR8uzZTA.mjs} +2 -3
  59. package/dist/kysely-type-DR8uzZTA.mjs.map +1 -0
  60. package/dist/{logger-DpJyJvNz.mjs → logger-CxF-Ex5d.mjs} +1 -2
  61. package/dist/{logger-DpJyJvNz.mjs.map → logger-CxF-Ex5d.mjs.map} +1 -1
  62. package/dist/{mock-DMgIygjE.mjs → mock-FPxmnt-y.mjs} +9 -56
  63. package/dist/mock-FPxmnt-y.mjs.map +1 -0
  64. package/dist/{multiline-Cf9ODpr1.mjs → multiline-sfHpTZZK.mjs} +1 -2
  65. package/dist/{multiline-Cf9ODpr1.mjs.map → multiline-sfHpTZZK.mjs.map} +1 -1
  66. package/dist/{package-json-DcQApfPQ.mjs → package-json-8b0O9TlX.mjs} +1 -2
  67. package/dist/{package-json-DcQApfPQ.mjs.map → package-json-8b0O9TlX.mjs.map} +1 -1
  68. package/dist/package-json-Cv2Z-TqQ.mjs +3 -0
  69. package/dist/plugin/builtin/enum-constants/index.d.mts +1 -1
  70. package/dist/plugin/builtin/enum-constants/index.mjs +1 -2
  71. package/dist/plugin/builtin/file-utils/index.d.mts +1 -1
  72. package/dist/plugin/builtin/file-utils/index.mjs +1 -2
  73. package/dist/plugin/builtin/kysely-type/index.d.mts +1 -1
  74. package/dist/plugin/builtin/kysely-type/index.mjs +1 -2
  75. package/dist/plugin/builtin/seed/index.d.mts +1 -1
  76. package/dist/plugin/builtin/seed/index.mjs +1 -2
  77. package/dist/plugin/index.d.mts +4 -5
  78. package/dist/plugin/index.mjs +0 -1
  79. package/dist/plugin/index.mjs.map +1 -1
  80. package/dist/registry-DH4m7eYo.mjs +53 -0
  81. package/dist/registry-DH4m7eYo.mjs.map +1 -0
  82. package/dist/{repl-editor-CJG3sz7A.mjs → repl-editor-DmGr9zMw.mjs} +2 -3
  83. package/dist/{repl-editor-CJG3sz7A.mjs.map → repl-editor-DmGr9zMw.mjs.map} +1 -1
  84. package/dist/{chunk-BkoGK1jX.mjs → rolldown-runtime-DXywRVcq.mjs} +0 -1
  85. package/dist/runtime/authconnection.d.mts +1 -1
  86. package/dist/runtime/authconnection.mjs +1 -2
  87. package/dist/runtime/context.d.mts +1 -1
  88. package/dist/runtime/context.mjs +1 -2
  89. package/dist/runtime/file.d.mts +2 -2
  90. package/dist/runtime/file.mjs +2 -3
  91. package/dist/runtime/globals.d.mts +8 -41
  92. package/dist/runtime/globals.mjs +0 -1
  93. package/dist/runtime/iconv.d.mts +1 -1
  94. package/dist/runtime/iconv.mjs +1 -2
  95. package/dist/runtime/idp.d.mts +1 -1
  96. package/dist/runtime/idp.mjs +1 -2
  97. package/dist/runtime/index.d.mts +8 -8
  98. package/dist/runtime/index.mjs +7 -8
  99. package/dist/runtime/secretmanager.d.mts +1 -1
  100. package/dist/runtime/secretmanager.mjs +1 -2
  101. package/dist/runtime/workflow.d.mts +2 -2
  102. package/dist/runtime/workflow.mjs +1 -2
  103. package/dist/{runtime-C7qTBDD2.mjs → runtime-CY4JvrDj.mjs} +1069 -542
  104. package/dist/runtime-CY4JvrDj.mjs.map +1 -0
  105. package/dist/{schema-1msIhXwA.mjs → schema-Dtw9Orye.mjs} +18 -16
  106. package/dist/schema-Dtw9Orye.mjs.map +1 -0
  107. package/dist/{secret-file-CWzF8rry.mjs → secret-file-VSVGy1V0.mjs} +27 -3
  108. package/dist/{secret-file-CWzF8rry.mjs.map → secret-file-VSVGy1V0.mjs.map} +1 -1
  109. package/dist/{secretmanager-CKLB3wAQ.d.mts → secretmanager-B3n4KHfm.d.mts} +1 -1
  110. package/dist/{secretmanager-B9h-U_8U.mjs → secretmanager-BVxw3ih_.mjs} +2 -3
  111. package/dist/{secretmanager-B9h-U_8U.mjs.map → secretmanager-BVxw3ih_.mjs.map} +1 -1
  112. package/dist/seed/index.mjs +0 -1
  113. package/dist/seed/index.mjs.map +1 -1
  114. package/dist/{seed-BH2FbrPV.mjs → seed-izIEyP3z.mjs} +7 -19
  115. package/dist/seed-izIEyP3z.mjs.map +1 -0
  116. package/dist/service-DCqIWibD.mjs +3 -0
  117. package/dist/{service-DMohAx8a2.mjs → service-DU1mVzri2.mjs} +3 -4
  118. package/dist/{service-DMohAx8a2.mjs.map → service-DU1mVzri2.mjs.map} +1 -1
  119. package/dist/{service-wI3Hvrgx.mjs → service-DjyqbCaJ.mjs} +9 -10
  120. package/dist/service-DjyqbCaJ.mjs.map +1 -0
  121. package/dist/{telemetry-BQbbVo2t.mjs → telemetry-CdqJEzkj.mjs} +2 -3
  122. package/dist/{telemetry-BQbbVo2t.mjs.map → telemetry-CdqJEzkj.mjs.map} +1 -1
  123. package/dist/telemetry-ClwW5ohF.mjs +3 -0
  124. package/dist/test-env-key-D7UkZp99.mjs +75 -0
  125. package/dist/test-env-key-D7UkZp99.mjs.map +1 -0
  126. package/dist/type-source-DH_LH20p.mjs +13 -0
  127. package/dist/type-source-DH_LH20p.mjs.map +1 -0
  128. package/dist/types-74etvaxy.mjs +4 -0
  129. package/dist/{plugin-C_FyVSdl.d.mts → types-BDRml5C3.d.mts} +128 -188
  130. package/dist/{types-CmzfQP_m.mjs → types-BQijbo4m.mjs} +10 -11
  131. package/dist/types-BQijbo4m.mjs.map +1 -0
  132. package/dist/types-BX4q6Mo6.d.mts +339 -0
  133. package/dist/types-BZ7QKVE8.d.mts +21 -0
  134. package/dist/{tailordb-BlBGmQK-.d.mts → types-CdcQh4Z2.d.mts} +92 -242
  135. package/dist/utils/test/index.d.mts +6 -14
  136. package/dist/utils/test/index.mjs +4 -14
  137. package/dist/utils/test/index.mjs.map +1 -1
  138. package/dist/vitest/environment.mjs +1 -2
  139. package/dist/vitest/environment.mjs.map +1 -1
  140. package/dist/vitest/index.d.mts +42 -5
  141. package/dist/vitest/index.mjs +133 -4
  142. package/dist/vitest/index.mjs.map +1 -1
  143. package/dist/vitest/setup.mjs +2 -3
  144. package/dist/vitest/setup.mjs.map +1 -1
  145. package/dist/{workflow--aPbA8Uq.mjs → workflow-BOmaZwwG.mjs} +9 -5
  146. package/dist/workflow-BOmaZwwG.mjs.map +1 -0
  147. package/dist/{workflow-CMamswkK.d.mts → workflow-BVy4XWjS.d.mts} +15 -10
  148. package/dist/workflow.generated-ClEjBYhm.d.mts +671 -0
  149. package/docs/cli/application.md +0 -2
  150. package/docs/cli/completion.md +3 -0
  151. package/docs/cli/crashreport.md +0 -2
  152. package/docs/cli/executor.md +53 -0
  153. package/docs/cli/function.md +1 -1
  154. package/docs/cli/setup.md +35 -33
  155. package/docs/cli/user.md +3 -3
  156. package/docs/cli/workflow.md +157 -20
  157. package/docs/cli/workspace.md +3 -3
  158. package/docs/cli-reference.md +26 -20
  159. package/docs/configuration.md +0 -2
  160. package/docs/github-actions.md +29 -16
  161. package/docs/migration/v2.md +475 -0
  162. package/docs/plugin/custom.md +2 -2
  163. package/docs/plugin/index.md +1 -1
  164. package/docs/runtime.md +4 -4
  165. package/docs/services/aigateway.md +97 -0
  166. package/docs/services/auth.md +31 -14
  167. package/docs/services/executor.md +3 -5
  168. package/docs/services/resolver.md +8 -10
  169. package/docs/services/tailordb.md +15 -13
  170. package/docs/services/workflow.md +17 -19
  171. package/docs/testing.md +75 -56
  172. package/package.json +18 -17
  173. package/dist/actor-J2gJ0eK5.d.mts +0 -24
  174. package/dist/application-76hhIhnJ.mjs +0 -5594
  175. package/dist/application-76hhIhnJ.mjs.map +0 -1
  176. package/dist/application-av2raLs6.mjs +0 -4
  177. package/dist/cli/skills.d.mts +0 -1
  178. package/dist/cli/skills.mjs +0 -22
  179. package/dist/cli/skills.mjs.map +0 -1
  180. package/dist/client-C68VWo4g.mjs +0 -4
  181. package/dist/client-CobIRHl-.mjs.map +0 -1
  182. package/dist/context-s0lxhu8_.mjs.map +0 -1
  183. package/dist/enum-constants-C7DaWeQo.mjs.map +0 -1
  184. package/dist/env-B-g-qgE4.d.mts +0 -7
  185. package/dist/field-C4zdJLW5.mjs.map +0 -1
  186. package/dist/file-B58Dm-2P.mjs.map +0 -1
  187. package/dist/file-utils-BHPxPXmn.mjs.map +0 -1
  188. package/dist/globals-ByrCoDip.mjs.map +0 -1
  189. package/dist/job-BpsFXPbi.mjs +0 -54
  190. package/dist/job-BpsFXPbi.mjs.map +0 -1
  191. package/dist/kysely-type-D1e0Vwkd.mjs.map +0 -1
  192. package/dist/mock-DMgIygjE.mjs.map +0 -1
  193. package/dist/package-json-wzO6nV9O.mjs +0 -4
  194. package/dist/registry-D0uB0OrK.mjs +0 -178
  195. package/dist/registry-D0uB0OrK.mjs.map +0 -1
  196. package/dist/runtime-C7qTBDD2.mjs.map +0 -1
  197. package/dist/schema-1msIhXwA.mjs.map +0 -1
  198. package/dist/seed-BH2FbrPV.mjs.map +0 -1
  199. package/dist/service-BHQIerYh.mjs +0 -4
  200. package/dist/service-wI3Hvrgx.mjs.map +0 -1
  201. package/dist/telemetry-w92bvGdC.mjs +0 -4
  202. package/dist/types-2Be3wSMc.mjs +0 -5
  203. package/dist/types-CmzfQP_m.mjs.map +0 -1
  204. package/dist/workflow--aPbA8Uq.mjs.map +0 -1
  205. package/dist/workflow.generated-Bf1tWylx.d.mts +0 -1416
  206. package/docs/generator/builtin.md +0 -257
  207. package/docs/generator/custom.md +0 -147
  208. package/docs/generator/index.md +0 -66
@@ -41,6 +41,9 @@ tailor-sdk completion [options] [shell]
41
41
  | `--instructions` | `-i` | Show installation instructions | No | `false` |
42
42
  | `--loader` | - | Print just the rc loader snippet (bash/zsh). Add it to ~/.bashrc or ~/.zshrc; it auto-regenerates the cache when the binary changes. | No | `false` |
43
43
  | `--install` | - | Write the completion script to its on-disk cache (bash/zsh) or autoload location (fish) instead of printing it. | No | `false` |
44
+ | `--static` | - | Generate the legacy static completion script with command metadata baked in. | No | `false` |
45
+ | `--dispatcher` | - | Generate the runtime dispatcher completion script. This is the default. | No | `false` |
46
+ | `--worker` | - | Generate an internal static worker artifact for dispatcher mode. | No | `false` |
44
47
 
45
48
  <!-- politty:command:completion:options:end -->
46
49
 
@@ -12,8 +12,6 @@ Commands for managing crash reports.
12
12
 
13
13
  Manage crash reports.
14
14
 
15
- **Aliases:** `crash-report`
16
-
17
15
  <!-- politty:command:crashreport:description:end -->
18
16
 
19
17
  <!-- politty:command:crashreport:usage:start -->
@@ -179,6 +179,7 @@ tailor-sdk executor jobs [options] <executor-name> [job-id]
179
179
  | `--attempts` | - | Show job attempts (only with job ID) (detail mode only) | No | `false` | - |
180
180
  | `--wait` | `-W` | Wait for job completion and downstream execution (workflow/function) if applicable (detail mode only) | No | `false` | - |
181
181
  | `--interval <INTERVAL>` | `-i` | Polling interval when using --wait (e.g., '3s', '500ms', '1m') | No | `"3s"` | - |
182
+ | `--timeout <TIMEOUT>` | `-t` | Maximum time to wait when using --wait (e.g., '30s', '5m') | No | `"5m"` | - |
182
183
  | `--order <ORDER>` | - | Sort order (asc or desc) | No | `"desc"` | - |
183
184
  | `--limit <LIMIT>` | - | Maximum number of jobs to list (0: unlimited, default: 50) (list mode only) | No | `50` | - |
184
185
  | `--logs` | `-l` | Display function execution logs after completion (requires --wait) | No | `false` | - |
@@ -283,6 +284,7 @@ tailor-sdk executor trigger [options] <executor-name>
283
284
  | `--header <HEADER>` | `-H` | Request header (format: 'Key: Value', can be specified multiple times) | No | - | - |
284
285
  | `--wait` | `-W` | Wait for job completion and downstream execution (workflow/function) if applicable | No | `false` | - |
285
286
  | `--interval <INTERVAL>` | `-i` | Polling interval when using --wait (e.g., '3s', '500ms', '1m') | No | `"3s"` | - |
287
+ | `--timeout <TIMEOUT>` | `-t` | Maximum time to wait when using --wait (e.g., '30s', '5m') | No | `"5m"` | - |
286
288
  | `--logs` | `-l` | Display function execution logs after completion (requires --wait) | No | `false` | - |
287
289
 
288
290
  <!-- politty:command:executor trigger:options:end -->
@@ -323,6 +325,57 @@ $ tailor-sdk executor trigger my-executor -W -l
323
325
 
324
326
  <!-- politty:command:executor trigger:examples:end -->
325
327
 
328
+ **Shell automation**
329
+
330
+ Trigger an executor and wait for the executor job plus any downstream workflow or
331
+ function execution:
332
+
333
+ ```bash
334
+ tailor-sdk executor trigger daily-workflow \
335
+ --wait \
336
+ --timeout 5m \
337
+ --interval 5s \
338
+ --json
339
+ ```
340
+
341
+ Wait for an existing job when another process already captured the job ID:
342
+
343
+ ```bash
344
+ tailor-sdk executor jobs daily-workflow "$job_id" \
345
+ --wait \
346
+ --timeout 5m \
347
+ --logs \
348
+ --json
349
+ ```
350
+
351
+ **Programmatic API**
352
+
353
+ Import your executor definition and pass it to the typed API:
354
+
355
+ ```ts
356
+ import { triggerExecutor, watchExecutorJob } from "@tailor-platform/sdk/cli";
357
+ import dailyWorkflow from "../executors/dailyWorkflow";
358
+
359
+ const { jobId } = await triggerExecutor({
360
+ executor: dailyWorkflow,
361
+ });
362
+
363
+ if (!jobId) {
364
+ throw new Error("Executor trigger did not return a job ID");
365
+ }
366
+
367
+ const result = await watchExecutorJob({
368
+ executor: dailyWorkflow,
369
+ jobId,
370
+ timeout: 5 * 60 * 1000,
371
+ interval: 5000,
372
+ });
373
+
374
+ if (result.timedOut) {
375
+ throw new Error(`Executor job ${result.job.id} timed out at ${result.job.status}`);
376
+ }
377
+ ```
378
+
326
379
  <!-- politty:command:executor trigger:notes:start -->
327
380
 
328
381
  **Notes**
@@ -209,7 +209,7 @@ $ tailor-sdk function logs <execution-id> --json
209
209
 
210
210
  When viewing a specific execution that failed, the command displays error details with the stack trace mapped back to your original source files (clickable file links and code snippets, matching `function test-run` output).
211
211
 
212
- Stack traces stay accurate even after later redeploys, because the trace is resolved against the exact build that produced the execution. If that build is no longer available, the command falls back to a plain-text error display.
212
+ Stack traces are mapped only when the execution includes a content hash for the exact build that ran. If the content hash is missing or the build is no longer available, the command falls back to a plain-text error display.
213
213
 
214
214
  <!-- politty:command:function logs:notes:end -->
215
215
 
package/docs/cli/setup.md CHANGED
@@ -10,7 +10,7 @@ Commands for setting up project infrastructure.
10
10
 
11
11
  <!-- politty:command:setup:description:start -->
12
12
 
13
- Set up project infrastructure.
13
+ Generate a CI deploy workflow for your project. (beta)
14
14
 
15
15
  <!-- politty:command:setup:description:end -->
16
16
 
@@ -19,18 +19,36 @@ Set up project infrastructure.
19
19
  **Usage**
20
20
 
21
21
  ```
22
- tailor-sdk setup [command]
22
+ tailor-sdk setup [options] [command]
23
23
  ```
24
24
 
25
25
  <!-- politty:command:setup:usage:end -->
26
26
 
27
+ <!-- politty:command:setup:options:start -->
28
+
29
+ **Options**
30
+
31
+ | Option | Alias | Description | Required | Default |
32
+ | ----------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------- |
33
+ | `--provider <PROVIDER>` | `-p` | CI provider to generate for (only 'github' is supported) | No | `"github"` |
34
+ | `--workspace-name <WORKSPACE_NAME>` | `-n` | Workspace name (defaults to the config 'name') | No | - |
35
+ | `--branch <BRANCH>` | - | Branch target: deploy trigger branch (defaults to the detected default branch). Tag target: tag-reachability guard branch (no guard when omitted) | No | - |
36
+ | `--tag` | - | Generate a tag target (deploy on tag push) | No | `false` |
37
+ | `--tag-pattern <TAG_PATTERN>` | - | Tag glob to match (requires --tag; defaults to v\*) | No | - |
38
+ | `--environment <ENVIRONMENT>` | - | GitHub Environment for the plan/deploy jobs (defaults to the workspace name) | No | - |
39
+ | `--no-plan` | - | Disable the plan job for a branch target (cannot be combined with --tag) | No | `false` |
40
+ | `--dir <DIR>` | `-d` | App directory (for monorepo setups) | No | `"."` |
41
+ | `--force` | - | Discard hand edits / take over unmanaged files and regenerate | No | `false` |
42
+
43
+ <!-- politty:command:setup:options:end -->
44
+
27
45
  <!-- politty:command:setup:subcommands:start -->
28
46
 
29
47
  **Commands**
30
48
 
31
- | Command | Description |
32
- | ------------------------------- | ------------------------------------------------- |
33
- | [`setup github`](#setup-github) | Generate a GitHub Actions deploy workflow. (beta) |
49
+ | Command | Description |
50
+ | ----------------------------- | -------------------------------------------------------------------------------- |
51
+ | [`setup check`](#setup-check) | Audit generated workflows for drift against the current config/repo (read-only). |
34
52
 
35
53
  <!-- politty:command:setup:subcommands:end -->
36
54
 
@@ -39,50 +57,34 @@ tailor-sdk setup [command]
39
57
  See [Global Options](../cli-reference.md#global-options) for options available to all commands.
40
58
 
41
59
  <!-- politty:command:setup:global-options-link:end -->
42
- <!-- politty:command:setup github:heading:start -->
43
60
 
44
- ### setup github
61
+ <!-- politty:command:setup check:heading:start -->
62
+
63
+ ### setup check
45
64
 
46
- <!-- politty:command:setup github:heading:end -->
65
+ <!-- politty:command:setup check:heading:end -->
47
66
 
48
- <!-- politty:command:setup github:description:start -->
67
+ <!-- politty:command:setup check:description:start -->
49
68
 
50
- Generate a GitHub Actions deploy workflow. (beta)
69
+ Audit generated workflows for drift against the current config/repo (read-only).
51
70
 
52
- <!-- politty:command:setup github:description:end -->
71
+ <!-- politty:command:setup check:description:end -->
53
72
 
54
- <!-- politty:command:setup github:usage:start -->
73
+ <!-- politty:command:setup check:usage:start -->
55
74
 
56
75
  **Usage**
57
76
 
58
77
  ```
59
- tailor-sdk setup github [options]
78
+ tailor-sdk setup check
60
79
  ```
61
80
 
62
- <!-- politty:command:setup github:usage:end -->
63
-
64
- <!-- politty:command:setup github:options:start -->
65
-
66
- **Options**
67
-
68
- | Option | Alias | Description | Required | Default |
69
- | ----------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------- |
70
- | `--workspace-name <WORKSPACE_NAME>` | `-n` | Workspace name (defaults to the config 'name') | No | - |
71
- | `--branch <BRANCH>` | - | Branch target: deploy trigger branch (defaults to the detected default branch). Tag target: tag-reachability guard branch (no guard when omitted) | No | - |
72
- | `--tag` | - | Generate a tag target (deploy on tag push) | No | `false` |
73
- | `--tag-pattern <TAG_PATTERN>` | - | Tag glob to match (requires --tag; defaults to v\*) | No | - |
74
- | `--environment <ENVIRONMENT>` | - | GitHub Environment for the plan/deploy jobs (defaults to the workspace name) | No | - |
75
- | `--no-plan` | - | Disable the plan job for a branch target (cannot be combined with --tag) | No | `false` |
76
- | `--dir <DIR>` | `-d` | App directory (for monorepo setups) | No | `"."` |
77
- | `--force` | - | Discard hand edits / take over unmanaged files and regenerate | No | `false` |
78
-
79
- <!-- politty:command:setup github:options:end -->
81
+ <!-- politty:command:setup check:usage:end -->
80
82
 
81
- <!-- politty:command:setup github:global-options-link:start -->
83
+ <!-- politty:command:setup check:global-options-link:start -->
82
84
 
83
85
  See [Global Options](../cli-reference.md#global-options) for options available to all commands.
84
86
 
85
- <!-- politty:command:setup github:global-options-link:end -->
87
+ <!-- politty:command:setup check:global-options-link:end -->
86
88
 
87
89
  ## Further reading
88
90
 
package/docs/cli/user.md CHANGED
@@ -201,9 +201,9 @@ tailor-sdk user switch <user>
201
201
 
202
202
  **Arguments**
203
203
 
204
- | Argument | Description | Required |
205
- | -------- | ----------- | -------- |
206
- | `user` | User email | Yes |
204
+ | Argument | Description | Required |
205
+ | -------- | -------------------------------------------- | -------- |
206
+ | `user` | User email address or machine user client ID | Yes |
207
207
 
208
208
  <!-- politty:command:user switch:arguments:end -->
209
209
 
@@ -33,6 +33,7 @@ tailor-sdk workflow [command]
33
33
  | [`workflow list`](#workflow-list) | List all workflows in the workspace. |
34
34
  | [`workflow get`](#workflow-get) | Get workflow details. |
35
35
  | [`workflow start`](#workflow-start) | Start a workflow execution. |
36
+ | [`workflow wait`](#workflow-wait) | Wait for a workflow execution. |
36
37
  | [`workflow executions`](#workflow-executions) | List or get workflow executions. |
37
38
  | [`workflow resume`](#workflow-resume) | Resume a failed or pending workflow execution. |
38
39
 
@@ -175,8 +176,10 @@ tailor-sdk workflow start [options] <name>
175
176
  | `--machine-user <MACHINE_USER>` | `-m` | Machine user name. Falls back to the active profile's default machine user. | No | - | `TAILOR_PLATFORM_MACHINE_USER_NAME` |
176
177
  | `--arg <ARG>` | `-a` | Workflow argument (JSON string) | No | - | - |
177
178
  | `--wait` | `-W` | Wait for execution to complete | No | `false` | - |
178
- | `--interval <INTERVAL>` | `-i` | Polling interval when using --wait (e.g., '3s', '500ms', '1m') | No | `"3s"` | - |
179
- | `--logs` | `-l` | Display job execution logs after completion (requires --wait) | No | `false` | - |
179
+ | `--interval <INTERVAL>` | `-i` | Polling interval when waiting (e.g., '3s', '500ms', '1m') | No | `"3s"` | - |
180
+ | `--timeout <TIMEOUT>` | `-t` | Maximum time to wait (e.g., '30s', '10m') | No | `"10m"` | - |
181
+ | `--until <UNTIL>` | `-u` | Wait target (success, suspended, terminal) | No | `"terminal"` | - |
182
+ | `--logs` | `-l` | Display job execution logs after completion | No | `false` | - |
180
183
 
181
184
  <!-- politty:command:workflow start:options:end -->
182
185
 
@@ -185,6 +188,136 @@ tailor-sdk workflow start [options] <name>
185
188
  See [Global Options](../cli-reference.md#global-options) for options available to all commands.
186
189
 
187
190
  <!-- politty:command:workflow start:global-options-link:end -->
191
+ <!-- politty:command:workflow wait:heading:start -->
192
+
193
+ ### workflow wait
194
+
195
+ <!-- politty:command:workflow wait:heading:end -->
196
+
197
+ <!-- politty:command:workflow wait:description:start -->
198
+
199
+ Wait for a workflow execution.
200
+
201
+ <!-- politty:command:workflow wait:description:end -->
202
+
203
+ <!-- politty:command:workflow wait:usage:start -->
204
+
205
+ **Usage**
206
+
207
+ ```
208
+ tailor-sdk workflow wait [options] <execution-id>
209
+ ```
210
+
211
+ <!-- politty:command:workflow wait:usage:end -->
212
+
213
+ <!-- politty:command:workflow wait:arguments:start -->
214
+
215
+ **Arguments**
216
+
217
+ | Argument | Description | Required |
218
+ | -------------- | ------------ | -------- |
219
+ | `execution-id` | Execution ID | Yes |
220
+
221
+ <!-- politty:command:workflow wait:arguments:end -->
222
+
223
+ <!-- politty:command:workflow wait:options:start -->
224
+
225
+ **Options**
226
+
227
+ | Option | Alias | Description | Required | Default | Env |
228
+ | ------------------------------- | ----- | --------------------------------------------------------- | -------- | ------------ | ------------------------------ |
229
+ | `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
230
+ | `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
231
+ | `--interval <INTERVAL>` | `-i` | Polling interval when waiting (e.g., '3s', '500ms', '1m') | No | `"3s"` | - |
232
+ | `--timeout <TIMEOUT>` | `-t` | Maximum time to wait (e.g., '30s', '10m') | No | `"10m"` | - |
233
+ | `--until <UNTIL>` | `-u` | Wait target (success, suspended, terminal) | No | `"terminal"` | - |
234
+ | `--logs` | `-l` | Display job execution logs after completion | No | `false` | - |
235
+
236
+ <!-- politty:command:workflow wait:options:end -->
237
+
238
+ <!-- politty:command:workflow wait:global-options-link:start -->
239
+
240
+ See [Global Options](../cli-reference.md#global-options) for options available to all commands.
241
+
242
+ <!-- politty:command:workflow wait:global-options-link:end -->
243
+
244
+ <!-- politty:command:workflow wait:examples:start -->
245
+
246
+ **Examples**
247
+
248
+ **Wait for workflow success**
249
+
250
+ ```bash
251
+ $ tailor-sdk workflow wait execution-id --until success --timeout 10m --json
252
+ ```
253
+
254
+ **Wait for a workflow wait point**
255
+
256
+ ```bash
257
+ $ tailor-sdk workflow wait execution-id --until suspended --timeout 6m --logs --json
258
+ ```
259
+
260
+ **Wait for success, failure, or suspension**
261
+
262
+ ```bash
263
+ $ tailor-sdk workflow wait execution-id --until terminal
264
+ ```
265
+
266
+ <!-- politty:command:workflow wait:examples:end -->
267
+
268
+ **Shell automation**
269
+
270
+ Capture the execution ID from `workflow start` and wait for the same run from a
271
+ separate command:
272
+
273
+ ```bash
274
+ execution_id="$(
275
+ tailor-sdk workflow start order-workflow --json | jq -r '.executionId'
276
+ )"
277
+
278
+ tailor-sdk workflow wait "$execution_id" \
279
+ --until success \
280
+ --timeout 10m \
281
+ --interval 5s \
282
+ --json
283
+ ```
284
+
285
+ Wait until a workflow reaches a wait point, such as an approval step:
286
+
287
+ ```bash
288
+ tailor-sdk workflow wait "$execution_id" \
289
+ --until suspended \
290
+ --timeout 6m \
291
+ --logs \
292
+ --json
293
+ ```
294
+
295
+ **Programmatic API**
296
+
297
+ Use `waitWorkflowExecution` when a script already has an execution ID and needs
298
+ the same waiter behavior as the CLI:
299
+
300
+ ```ts
301
+ import { waitWorkflowExecution } from "@tailor-platform/sdk/cli";
302
+
303
+ const executionId = process.env.EXECUTION_ID;
304
+
305
+ if (!executionId) {
306
+ throw new Error("EXECUTION_ID is required");
307
+ }
308
+
309
+ const result = await waitWorkflowExecution({
310
+ executionId,
311
+ until: "success",
312
+ timeout: 10 * 60 * 1000,
313
+ interval: 5000,
314
+ });
315
+
316
+ if (result.timedOut) {
317
+ throw new Error(`Workflow ${result.id} timed out at ${result.status}`);
318
+ }
319
+ ```
320
+
188
321
  <!-- politty:command:workflow executions:heading:start -->
189
322
 
190
323
  ### workflow executions
@@ -221,17 +354,19 @@ tailor-sdk workflow executions [options] [execution-id]
221
354
 
222
355
  **Options**
223
356
 
224
- | Option | Alias | Description | Required | Default | Env |
225
- | --------------------------------- | ----- | -------------------------------------------------------------- | -------- | -------- | ------------------------------ |
226
- | `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
227
- | `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
228
- | `--order <ORDER>` | - | Sort order (asc or desc) | No | `"desc"` | - |
229
- | `--limit <LIMIT>` | `-l` | Maximum number of items to return (0: unlimited) | No | `50` | - |
230
- | `--workflow-name <WORKFLOW_NAME>` | `-n` | Filter by workflow name (list mode only) | No | - | - |
231
- | `--status <STATUS>` | `-s` | Filter by status (list mode only) | No | - | - |
232
- | `--wait` | `-W` | Wait for execution to complete | No | `false` | - |
233
- | `--interval <INTERVAL>` | `-i` | Polling interval when using --wait (e.g., '3s', '500ms', '1m') | No | `"3s"` | - |
234
- | `--logs` | - | Display job execution logs (detail mode only) | No | `false` | - |
357
+ | Option | Alias | Description | Required | Default | Env |
358
+ | --------------------------------- | ----- | --------------------------------------------------------- | -------- | ------------ | ------------------------------ |
359
+ | `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
360
+ | `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
361
+ | `--order <ORDER>` | - | Sort order (asc or desc) | No | `"desc"` | - |
362
+ | `--limit <LIMIT>` | `-l` | Maximum number of items to return (0: unlimited) | No | `50` | - |
363
+ | `--workflow-name <WORKFLOW_NAME>` | `-n` | Filter by workflow name (list mode only) | No | - | - |
364
+ | `--status <STATUS>` | `-s` | Filter by status (list mode only) | No | - | - |
365
+ | `--wait` | `-W` | Wait for execution to complete | No | `false` | - |
366
+ | `--interval <INTERVAL>` | `-i` | Polling interval when waiting (e.g., '3s', '500ms', '1m') | No | `"3s"` | - |
367
+ | `--timeout <TIMEOUT>` | `-t` | Maximum time to wait (e.g., '30s', '10m') | No | `"10m"` | - |
368
+ | `--until <UNTIL>` | `-u` | Wait target (success, suspended, terminal) | No | `"terminal"` | - |
369
+ | `--logs` | - | Display job execution logs (detail mode only) | No | `false` | - |
235
370
 
236
371
  <!-- politty:command:workflow executions:options:end -->
237
372
 
@@ -276,13 +411,15 @@ tailor-sdk workflow resume [options] <execution-id>
276
411
 
277
412
  **Options**
278
413
 
279
- | Option | Alias | Description | Required | Default | Env |
280
- | ------------------------------- | ----- | -------------------------------------------------------------- | -------- | ------- | ------------------------------ |
281
- | `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
282
- | `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
283
- | `--wait` | `-W` | Wait for execution to complete | No | `false` | - |
284
- | `--interval <INTERVAL>` | `-i` | Polling interval when using --wait (e.g., '3s', '500ms', '1m') | No | `"3s"` | - |
285
- | `--logs` | `-l` | Display job execution logs after completion (requires --wait) | No | `false` | - |
414
+ | Option | Alias | Description | Required | Default | Env |
415
+ | ------------------------------- | ----- | --------------------------------------------------------- | -------- | ------------ | ------------------------------ |
416
+ | `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
417
+ | `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
418
+ | `--wait` | `-W` | Wait for execution to complete | No | `false` | - |
419
+ | `--interval <INTERVAL>` | `-i` | Polling interval when waiting (e.g., '3s', '500ms', '1m') | No | `"3s"` | - |
420
+ | `--timeout <TIMEOUT>` | `-t` | Maximum time to wait (e.g., '30s', '10m') | No | `"10m"` | - |
421
+ | `--until <UNTIL>` | `-u` | Wait target (success, suspended, terminal) | No | `"terminal"` | - |
422
+ | `--logs` | `-l` | Display job execution logs after completion | No | `false` | - |
286
423
 
287
424
  <!-- politty:command:workflow resume:options:end -->
288
425
 
@@ -79,7 +79,7 @@ tailor-sdk workspace create [options]
79
79
  | `--organization-id <ORGANIZATION_ID>` | `-o` | Organization ID to workspace associate with | No | - | `TAILOR_PLATFORM_ORGANIZATION_ID` |
80
80
  | `--folder-id <FOLDER_ID>` | `-f` | Folder ID to workspace associate with | No | - | `TAILOR_PLATFORM_FOLDER_ID` |
81
81
  | `--profile-name <PROFILE_NAME>` | `-p` | Profile name to create | No | - | - |
82
- | `--profile-user <PROFILE_USER>` | - | User email for the profile (defaults to current user) | No | - | - |
82
+ | `--profile-user <PROFILE_USER>` | - | User email address or machine user client ID for the profile (defaults to current user) | No | - | - |
83
83
  | `--permission <PERMISSION>` | - | Profile permission (requires --profile-name). 'read' blocks all write commands while the profile is active. | No | `"write"` | - |
84
84
 
85
85
  <!-- politty:command:workspace create:options:end -->
@@ -243,7 +243,7 @@ tailor-sdk profile create [options] <name>
243
243
 
244
244
  | Option | Alias | Description | Required | Default |
245
245
  | ------------------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------- |
246
- | `--user <USER>` | `-u` | User email | Yes | - |
246
+ | `--user <USER>` | `-u` | User email address or machine user client ID | Yes | - |
247
247
  | `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | Yes | - |
248
248
  | `--permission <PERMISSION>` | - | Profile permission. 'read' blocks all write commands while the profile is active. | No | `"write"` |
249
249
  | `--machine-user <MACHINE_USER>` | `-m` | Default machine user name for application-data commands (query, workflow start, function test-run, machineuser token). | No | - |
@@ -324,7 +324,7 @@ tailor-sdk profile update [options] <name>
324
324
 
325
325
  | Option | Alias | Description | Required | Default |
326
326
  | ------------------------------------------------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------- |
327
- | `--user <USER>` | `-u` | New user email | No | - |
327
+ | `--user <USER>` | `-u` | New user email address or machine user client ID | No | - |
328
328
  | `--workspace-id <WORKSPACE_ID>` | `-w` | New workspace ID | No | - |
329
329
  | `--permission <PERMISSION>` | - | Profile permission. 'read' blocks all write commands; 'write' lifts the restriction. | No | - |
330
330
  | `--machine-user <MACHINE_USER>` | `-m` | Default machine user name for application-data commands (query, workflow start, function test-run, machineuser token). Pass an empty string to clear. | No | - |
@@ -65,23 +65,24 @@ tailor-sdk deploy --env-file .env --env-file .env.production
65
65
 
66
66
  You can use environment variables to configure workspace and authentication:
67
67
 
68
- | Variable | Description |
69
- | -------------------------------------------- | ------------------------------------------------------------------------------------------------- |
70
- | `TAILOR_PLATFORM_WORKSPACE_ID` | Workspace ID for deployment commands |
71
- | `TAILOR_PLATFORM_ORGANIZATION_ID` | Organization ID for organization commands |
72
- | `TAILOR_PLATFORM_FOLDER_ID` | Folder ID for folder commands |
73
- | `TAILOR_PLATFORM_TOKEN` | Authentication token (alternative to `login`) |
74
- | `TAILOR_TOKEN` | **Deprecated.** Use `TAILOR_PLATFORM_TOKEN` instead |
75
- | `TAILOR_PLATFORM_PROFILE` | Workspace profile name |
76
- | `TAILOR_PLATFORM_SDK_CONFIG_PATH` | Path to SDK config file |
77
- | `TAILOR_PLATFORM_SDK_DTS_PATH` | Output path for generated `tailor.d.ts` type definition file |
78
- | `TAILOR_PLATFORM_MACHINE_USER_CLIENT_ID` | Client ID for `login --machine-user` |
79
- | `TAILOR_PLATFORM_MACHINE_USER_CLIENT_SECRET` | Client secret for `login --machine-user` |
80
- | `TAILOR_PLATFORM_MACHINE_USER_NAME` | Default machine user name for `query`, `workflow start`, `function test-run`, `machineuser token` |
81
- | `TAILOR_BUNDLE_CONCURRENCY` | Max concurrent bundle workers for `deploy` (resolvers/executors/workflows). Defaults to CPU count |
82
- | `VISUAL` / `EDITOR` | Preferred editor for commands that open files (e.g., `vim`, `code`, `nano`) |
83
- | `TAILOR_CRASH_REPORTS_LOCAL` | Local crash log writing: `on` (default) or `off` |
84
- | `TAILOR_CRASH_REPORTS_REMOTE` | Automatic crash report submission: `off` (default) or `on` |
68
+ | Variable | Description |
69
+ | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
70
+ | `TAILOR_PLATFORM_WORKSPACE_ID` | Workspace ID for deployment commands |
71
+ | `TAILOR_PLATFORM_ORGANIZATION_ID` | Organization ID for organization commands |
72
+ | `TAILOR_PLATFORM_FOLDER_ID` | Folder ID for folder commands |
73
+ | `TAILOR_PLATFORM_TOKEN` | Authentication token (alternative to `login`) |
74
+ | `TAILOR_TOKEN` | **Deprecated.** Use `TAILOR_PLATFORM_TOKEN` instead |
75
+ | `TAILOR_PLATFORM_PROFILE` | Workspace profile name |
76
+ | `TAILOR_PLATFORM_SDK_CONFIG_PATH` | Path to SDK config file |
77
+ | `TAILOR_PLATFORM_SDK_DTS_PATH` | Output path for generated `tailor.d.ts` type definition file |
78
+ | `TAILOR_PLATFORM_MACHINE_USER_CLIENT_ID` | Client ID for `login --machine-user` |
79
+ | `TAILOR_PLATFORM_MACHINE_USER_CLIENT_SECRET` | Client secret for `login --machine-user` |
80
+ | `TAILOR_PLATFORM_MACHINE_USER_NAME` | Default machine user name for `query`, `workflow start`, `function test-run`, `machineuser token` |
81
+ | `TAILOR_BUNDLE_CONCURRENCY` | Max concurrent bundle workers for `deploy` (resolvers/executors/workflows). Defaults to CPU count |
82
+ | `TAILOR_APPLY_CONCURRENCY` | Max concurrent unary platform RPCs during `apply`/`deploy` (streaming uploads are not gated). Defaults to 16 |
83
+ | `VISUAL` / `EDITOR` | Preferred editor for commands that open files (e.g., `vim`, `code`, `nano`) |
84
+ | `TAILOR_CRASH_REPORTS_LOCAL` | Local crash log writing: `on` (default) or `off` |
85
+ | `TAILOR_CRASH_REPORTS_REMOTE` | Automatic crash report submission: `off` (default) or `on` |
85
86
 
86
87
  ### Authentication Token Priority
87
88
 
@@ -92,6 +93,10 @@ Token resolution follows this priority order:
92
93
  3. Profile specified via `--profile` option or `TAILOR_PLATFORM_PROFILE`
93
94
  4. Current user from platform config (`~/.config/tailor-platform/config.yaml`)
94
95
 
96
+ `tailor-sdk login` stores local CLI login tokens in the OS keyring by default
97
+ when available. If the keyring is unavailable, tokens are stored in the platform
98
+ config file.
99
+
95
100
  ### Workspace ID Priority
96
101
 
97
102
  Workspace ID resolution follows this priority order:
@@ -222,6 +227,7 @@ Commands for managing workflows and executions.
222
227
  | [workflow list](./cli/workflow.md#workflow-list) | List all workflows in the workspace. |
223
228
  | [workflow get](./cli/workflow.md#workflow-get) | Get workflow details. |
224
229
  | [workflow start](./cli/workflow.md#workflow-start) | Start a workflow execution. |
230
+ | [workflow wait](./cli/workflow.md#workflow-wait) | Wait for a workflow execution. |
225
231
  | [workflow executions](./cli/workflow.md#workflow-executions) | List or get workflow executions. |
226
232
  | [workflow resume](./cli/workflow.md#workflow-resume) | Resume a failed or pending workflow execution. |
227
233
 
@@ -287,9 +293,9 @@ Commands for managing crash reports.
287
293
 
288
294
  Commands for setting up project infrastructure.
289
295
 
290
- | Command | Description |
291
- | ------------------------------------------- | ------------------------------------------------- |
292
- | [setup github](./cli/setup.md#setup-github) | Generate a GitHub Actions deploy workflow. (beta) |
296
+ | Command | Description |
297
+ | ----------------------------------------- | -------------------------------------------------------------------------------- |
298
+ | [setup check](./cli/setup.md#setup-check) | Audit generated workflows for drift against the current config/repo (read-only). |
293
299
 
294
300
  ### [Upgrade Commands](./cli/upgrade.md)
295
301
 
@@ -294,5 +294,3 @@ export const plugins = definePlugins(
294
294
  enumConstantsPlugin({ distPath: "./generated/enums.ts" }),
295
295
  );
296
296
  ```
297
-
298
- See [Generators](./generator/index.md) for legacy `defineGenerators()` documentation.