@qawolf/api-contracts 0.63.0 → 0.65.0

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 (60) hide show
  1. package/dist/v1/agent/send.d.ts +1 -0
  2. package/dist/v1/agent/send.d.ts.map +1 -1
  3. package/dist/v1/agent/send.js +3 -0
  4. package/dist/v1/agent/send.js.map +1 -1
  5. package/dist/v1/deployment/didNotRunReason.d.ts +24 -0
  6. package/dist/v1/deployment/didNotRunReason.d.ts.map +1 -0
  7. package/dist/v1/deployment/didNotRunReason.js +48 -0
  8. package/dist/v1/deployment/didNotRunReason.js.map +1 -0
  9. package/dist/v1/deployment/index.d.ts +24 -2
  10. package/dist/v1/deployment/index.d.ts.map +1 -1
  11. package/dist/v1/deployment/listTriggerEvaluations.d.ts +23 -1
  12. package/dist/v1/deployment/listTriggerEvaluations.d.ts.map +1 -1
  13. package/dist/v1/deployment/listTriggerEvaluations.js +4 -2
  14. package/dist/v1/deployment/listTriggerEvaluations.js.map +1 -1
  15. package/dist/v1/deployment/reportStatus.d.ts +1 -1
  16. package/dist/v1/deployment/reportStatus.js +2 -2
  17. package/dist/v1/deployment/reportStatus.js.map +1 -1
  18. package/dist/v1/index.d.ts +813 -277
  19. package/dist/v1/index.d.ts.map +1 -1
  20. package/dist/v1/index.js +2 -0
  21. package/dist/v1/index.js.map +1 -1
  22. package/dist/v1/run/triage.d.ts +51 -0
  23. package/dist/v1/run/triage.d.ts.map +1 -0
  24. package/dist/v1/run/triage.js +55 -0
  25. package/dist/v1/run/triage.js.map +1 -0
  26. package/dist/v1/runner/catalog.d.ts +232 -119
  27. package/dist/v1/runner/catalog.d.ts.map +1 -1
  28. package/dist/v1/runner/catalog.js +2 -0
  29. package/dist/v1/runner/catalog.js.map +1 -1
  30. package/dist/v1/runner/recording.d.ts +332 -0
  31. package/dist/v1/runner/recording.d.ts.map +1 -0
  32. package/dist/v1/runner/recording.js +113 -0
  33. package/dist/v1/runner/recording.js.map +1 -0
  34. package/dist/v1/runnerReexports.d.ts +1 -0
  35. package/dist/v1/runnerReexports.d.ts.map +1 -1
  36. package/dist/v1/runnerReexports.js +1 -0
  37. package/dist/v1/runnerReexports.js.map +1 -1
  38. package/dist/v1/trigger/configuration.d.ts +12 -0
  39. package/dist/v1/trigger/configuration.d.ts.map +1 -1
  40. package/dist/v1/trigger/configuration.js +16 -1
  41. package/dist/v1/trigger/configuration.js.map +1 -1
  42. package/dist/v1/trigger/configurationRules.d.ts +1 -0
  43. package/dist/v1/trigger/configurationRules.d.ts.map +1 -1
  44. package/dist/v1/trigger/configurationRules.js +26 -5
  45. package/dist/v1/trigger/configurationRules.js.map +1 -1
  46. package/dist/v1/trigger/create.d.ts +22 -0
  47. package/dist/v1/trigger/create.d.ts.map +1 -1
  48. package/dist/v1/trigger/find.d.ts +11 -0
  49. package/dist/v1/trigger/find.d.ts.map +1 -1
  50. package/dist/v1/trigger/get.d.ts +11 -0
  51. package/dist/v1/trigger/get.d.ts.map +1 -1
  52. package/dist/v1/trigger/index.d.ts +88 -0
  53. package/dist/v1/trigger/index.d.ts.map +1 -1
  54. package/dist/v1/trigger/lifecycle.d.ts +22 -0
  55. package/dist/v1/trigger/lifecycle.d.ts.map +1 -1
  56. package/dist/v1/trigger/resource.d.ts +11 -0
  57. package/dist/v1/trigger/resource.d.ts.map +1 -1
  58. package/dist/v1/trigger/update.d.ts +22 -0
  59. package/dist/v1/trigger/update.d.ts.map +1 -1
  60. package/package.json +1 -1
@@ -62,6 +62,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
62
62
  environmentId: z.ZodOptional<PublicIdSchema>;
63
63
  filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
64
64
  message: z.ZodString;
65
+ parentSessionId: z.ZodOptional<ChatSessionId>;
65
66
  runnerId: z.ZodOptional<z.ZodString>;
66
67
  sessionId: z.ZodOptional<ChatSessionId>;
67
68
  workspaceId: z.ZodOptional<WorkspaceId>;
@@ -226,7 +227,29 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
226
227
  }, z.core.$strip>, z.ZodObject<{
227
228
  status: z.ZodLiteral<"starting">;
228
229
  }, z.core.$strip>, z.ZodObject<{
229
- reason: z.ZodString;
230
+ message: z.ZodString;
231
+ reason: z.ZodEnum<{
232
+ "billing-prevented": "billing-prevented";
233
+ "branch-still-syncing": "branch-still-syncing";
234
+ "deployment-no-longer-live": "deployment-no-longer-live";
235
+ "duplicate-run": "duplicate-run";
236
+ "environment-not-linked-to-branch": "environment-not-linked-to-branch";
237
+ "environment-not-ready": "environment-not-ready";
238
+ "environment-terminated": "environment-terminated";
239
+ "internal-error": "internal-error";
240
+ "low-risk-change": "low-risk-change";
241
+ "no-flows-to-run": "no-flows-to-run";
242
+ "no-matching-trigger": "no-matching-trigger";
243
+ "no-pull-request": "no-pull-request";
244
+ "no-relevant-flows": "no-relevant-flows";
245
+ "rate-limited": "rate-limited";
246
+ "run-not-created": "run-not-created";
247
+ skipped: "skipped";
248
+ "test-configuration-error": "test-configuration-error";
249
+ "trigger-not-found": "trigger-not-found";
250
+ "workspace-inactive": "workspace-inactive";
251
+ "workspace-not-ready": "workspace-not-ready";
252
+ }>;
230
253
  status: z.ZodLiteral<"did-not-run">;
231
254
  supersededByRunId: z.ZodOptional<RunId>;
232
255
  }, z.core.$strip>, z.ZodObject<{
@@ -275,7 +298,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
275
298
  readonly openWorldHint: true;
276
299
  readonly readOnlyHint: false;
277
300
  };
278
- readonly description: "Report a deployment lifecycle status. A deployment's first success report evaluates global triggers asynchronously, and it is the only report that does: a trigger added or unpaused later does not make an already reported deployment evaluate again. Report that deployment under a new providerDeploymentId to evaluate it against the current triggers. The response contains the deployment only, not the resulting runs. This route requires an organization or user API key.";
301
+ readonly description: "Report a deployment lifecycle status. A deployment's first success report evaluates global triggers asynchronously, and it is the only report that does: a trigger added or unpaused later does not make an already reported deployment evaluate again. Report that deployment under a new providerDeploymentId to evaluate it against the current triggers. The response contains the deployment only, not the resulting runs.";
279
302
  readonly input: z.ZodObject<{
280
303
  deployTarget: z.ZodOptional<z.ZodURL>;
281
304
  environment: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
@@ -1710,8 +1733,284 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1710
1733
  url: z.ZodURL;
1711
1734
  }, z.core.$strip>;
1712
1735
  };
1736
+ triage: {
1737
+ readonly annotations: {
1738
+ readonly destructiveHint: false;
1739
+ readonly openWorldHint: false;
1740
+ readonly readOnlyHint: true;
1741
+ };
1742
+ readonly description: string;
1743
+ readonly input: z.ZodObject<{
1744
+ flowId: FlowId;
1745
+ runId: RunId;
1746
+ }, z.core.$strip>;
1747
+ readonly kind: "read";
1748
+ readonly name: "run.triage";
1749
+ readonly output: z.ZodObject<{
1750
+ answers: z.ZodObject<{
1751
+ verdict: z.ZodObject<{
1752
+ choice: z.ZodEnum<{
1753
+ bug: "bug";
1754
+ maintenance: "maintenance";
1755
+ }>;
1756
+ confidence: z.ZodNumber;
1757
+ probabilities: z.ZodRecord<z.ZodString, z.ZodNumber>;
1758
+ type: z.ZodLiteral<"choice">;
1759
+ }, z.core.$strip>;
1760
+ }, z.core.$strip>;
1761
+ decision: z.ZodDiscriminatedUnion<[z.ZodObject<{
1762
+ diagnosis: z.ZodEnum<{
1763
+ bug: "bug";
1764
+ maintenance: "maintenance";
1765
+ }>;
1766
+ type: z.ZodLiteral<"diagnose">;
1767
+ }, z.core.$strip>, z.ZodObject<{
1768
+ diagnosis: z.ZodEnum<{
1769
+ bug: "bug";
1770
+ maintenance: "maintenance";
1771
+ }>;
1772
+ type: z.ZodLiteral<"suggest">;
1773
+ }, z.core.$strip>, z.ZodObject<{
1774
+ type: z.ZodLiteral<"needsHuman">;
1775
+ }, z.core.$strip>], "type">;
1776
+ model: z.ZodString;
1777
+ state: z.ZodJSONSchema;
1778
+ }, z.core.$strip>;
1779
+ };
1713
1780
  };
1714
1781
  runner: {
1782
+ runFlow: {
1783
+ readonly annotations: {
1784
+ readonly destructiveHint: true;
1785
+ readonly openWorldHint: true;
1786
+ readonly readOnlyHint: false;
1787
+ };
1788
+ readonly description: "Run a flow on an interactive runner. When `selection` is given the lines run against the browser as it stands, so nothing is re-navigated and nothing is signed in again; without it the whole entry point runs from a fresh browser. A runner with no live browser starts one before a selection and says so with `bootstrappedRunner`, which means those lines ran against a fresh page rather than the one an earlier run left. A selection produces no `runStarted` event, so follow it by its run id on `run-status` like any other run. Send `unchangedFiles` to ship only what changed since an earlier run on this runner; a `needs-full-sync` failure names the paths it does not hold, and the way to recover is the same run again with every file in `files`. Answers as soon as the run is accepted, with the id to follow it by — nothing waits for the run to finish. Which browser or device the run needs is read from the flow file's own execution target, so it is not supplied here; when it does not match what the runner is, the call fails with `runner-target-mismatch` rather than failing partway through the run. `runner-unreachable` means the answer did not arrive, which is NOT the same as the run not having started: the runner may have accepted it and been too slow to say so, and resubmitting would start a second run that is billed and journalled alongside the first. Read the runner's `run-status` journal stream before resubmitting, and use the newest run id there if one appeared.";
1789
+ readonly input: z.ZodObject<{
1790
+ entryPointPath: z.ZodString;
1791
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1792
+ environmentId: z.ZodOptional<PublicIdSchema>;
1793
+ files: z.ZodRecord<z.ZodString, z.ZodString>;
1794
+ id: z.ZodString;
1795
+ selection: z.ZodOptional<z.ZodObject<{
1796
+ endLine: z.ZodInt;
1797
+ path: z.ZodString;
1798
+ startLine: z.ZodInt;
1799
+ }, z.core.$strip>>;
1800
+ unchangedFiles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1801
+ workspaceId: z.ZodOptional<WorkspaceId>;
1802
+ }, z.core.$strip>;
1803
+ readonly kind: "write";
1804
+ readonly name: "runner.runFlow";
1805
+ readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
1806
+ bootstrappedRunner: z.ZodOptional<z.ZodBoolean>;
1807
+ outcome: z.ZodLiteral<"success">;
1808
+ runId: z.ZodString;
1809
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
1810
+ failureReason: z.ZodLiteral<"runner-target-mismatch">;
1811
+ outcome: z.ZodLiteral<"failure">;
1812
+ requiredRunnerName: z.ZodEnum<{
1813
+ basic: "basic";
1814
+ playwright: "playwright";
1815
+ android: "android";
1816
+ ios: "ios";
1817
+ }>;
1818
+ runnerName: z.ZodEnum<{
1819
+ basic: "basic";
1820
+ playwright: "playwright";
1821
+ android: "android";
1822
+ ios: "ios";
1823
+ }>;
1824
+ }, z.core.$strip>, z.ZodObject<{
1825
+ failureReason: z.ZodLiteral<"needs-full-sync">;
1826
+ missingPaths: z.ZodArray<z.ZodString>;
1827
+ outcome: z.ZodLiteral<"failure">;
1828
+ }, z.core.$strip>, z.ZodObject<{
1829
+ failureReason: z.ZodLiteral<"runner-unreachable">;
1830
+ outcome: z.ZodLiteral<"failure">;
1831
+ }, z.core.$strip>], "failureReason">], "outcome">;
1832
+ };
1833
+ stopRun: {
1834
+ readonly annotations: {
1835
+ readonly destructiveHint: true;
1836
+ readonly openWorldHint: false;
1837
+ readonly readOnlyHint: false;
1838
+ };
1839
+ readonly description: "Stop what a runner is currently executing, leaving the runner up and its browser on whatever page the run reached. Succeeds whether or not anything was running, and `wasRunning` says which. This is the counterpart of `runner.terminate`, which ends the runner itself. The run stops where it is, so the journal's `run-status` settles it as stopped rather than passed or failed. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may be too busy to answer. The stop may still have landed, but stopping a runner that is already idle does nothing, so retrying is safe.";
1840
+ readonly input: z.ZodObject<{
1841
+ id: z.ZodString;
1842
+ workspaceId: z.ZodOptional<WorkspaceId>;
1843
+ }, z.core.$strip>;
1844
+ readonly kind: "write";
1845
+ readonly name: "runner.stopRun";
1846
+ readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
1847
+ outcome: z.ZodLiteral<"success">;
1848
+ wasRunning: z.ZodBoolean;
1849
+ }, z.core.$strip>, z.ZodObject<{
1850
+ failureReason: z.ZodEnum<{
1851
+ "runner-unreachable": "runner-unreachable";
1852
+ }>;
1853
+ outcome: z.ZodLiteral<"failure">;
1854
+ }, z.core.$strip>], "outcome">;
1855
+ };
1856
+ takeScreenshot: {
1857
+ readonly annotations: {
1858
+ readonly destructiveHint: false;
1859
+ readonly openWorldHint: false;
1860
+ readonly readOnlyHint: false;
1861
+ };
1862
+ readonly description: "Take one screenshot of an interactive runner's screen. On a runner with a browser the image is the whole virtual desktop, browser window and all; this refreshes the inactivity timer and can extend the runner's billed lifetime. On a mobile runner it is the device's own screen, re-encoded to JPEG on the pod so this contract reads one image format regardless of runner family. `screen-needs-a-run` if the runner's virtual desktop has never started. Waiting will not change this and retrying is pointless — call `runner.runFlow` with a flow that opens a browser, then ask for the screen again. On a runner image with a browser that has never run anything, any `runner.performAction` also starts the browser itself. Evaluating a snippet does not start the desktop. `screen-not-ready` if the runner has a screen that cannot serve this instant. Retry in a second or two: the desktop restarts when a run changes the display size, and it serves one see-or-act request at a time, so a screenshot or action already in flight is the usual reason. Do not submit a run to clear this — a run may restart the display and discard what is on it. `runner-has-no-screen` if this runner is not one that runs a browser on a virtual desktop. Nothing about it can be seen or driven, and retrying will never help — launch a `playwright` runner instead. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may be too busy to answer. Nothing was changed, so retrying is safe; if it persists, launch the runner again.";
1863
+ readonly input: z.ZodObject<{
1864
+ id: z.ZodString;
1865
+ workspaceId: z.ZodOptional<WorkspaceId>;
1866
+ }, z.core.$strip>;
1867
+ readonly kind: "read";
1868
+ readonly name: "runner.takeScreenshot";
1869
+ readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
1870
+ imageJpegBase64: z.ZodString;
1871
+ outcome: z.ZodLiteral<"success">;
1872
+ }, z.core.$strip>, z.ZodObject<{
1873
+ failureReason: z.ZodEnum<{
1874
+ "runner-unreachable": "runner-unreachable";
1875
+ "screen-needs-a-run": "screen-needs-a-run";
1876
+ "screen-not-ready": "screen-not-ready";
1877
+ "runner-has-no-screen": "runner-has-no-screen";
1878
+ }>;
1879
+ outcome: z.ZodLiteral<"failure">;
1880
+ }, z.core.$strip>], "outcome">;
1881
+ };
1882
+ terminate: {
1883
+ readonly annotations: {
1884
+ readonly destructiveHint: true;
1885
+ readonly openWorldHint: false;
1886
+ readonly readOnlyHint: false;
1887
+ };
1888
+ readonly description: "End an interactive runner on the caller's team, and the pod it runs on with it. Terminating a runner that is not running succeeds and reports `wasRunning: false`. This ends the runner: use `runner.stopRun` to stop what a runner is currently executing while leaving the runner up.";
1889
+ readonly input: z.ZodObject<{
1890
+ id: z.ZodString;
1891
+ workspaceId: z.ZodOptional<WorkspaceId>;
1892
+ }, z.core.$strip>;
1893
+ readonly kind: "write";
1894
+ readonly name: "runner.terminate";
1895
+ readonly output: z.ZodObject<{
1896
+ id: z.ZodString;
1897
+ outcome: z.ZodLiteral<"success">;
1898
+ wasRunning: z.ZodBoolean;
1899
+ }, z.core.$strip>;
1900
+ };
1901
+ record: {
1902
+ readonly annotations: {
1903
+ readonly destructiveHint: false;
1904
+ readonly openWorldHint: false;
1905
+ readonly readOnlyHint: false;
1906
+ };
1907
+ readonly description: "Control video recording on a Playwright runner. Start requires a caller-generated UUID; stop targets that UUID so retries cannot stop a later recording. Manual capture spans runs and suppresses automatic capture. Auto settings affect subsequent full runs. The URL opens recording history after the runner terminates. Videos may be unavailable after abrupt pod loss.";
1908
+ readonly input: z.ZodObject<{
1909
+ command: z.ZodDiscriminatedUnion<[z.ZodObject<{
1910
+ action: z.ZodLiteral<"start">;
1911
+ recordingId: z.ZodUUID;
1912
+ }, z.core.$strict>, z.ZodObject<{
1913
+ action: z.ZodLiteral<"stop">;
1914
+ recordingId: z.ZodUUID;
1915
+ }, z.core.$strict>, z.ZodObject<{
1916
+ action: z.ZodLiteral<"auto">;
1917
+ enabled: z.ZodBoolean;
1918
+ }, z.core.$strict>, z.ZodObject<{
1919
+ action: z.ZodLiteral<"status">;
1920
+ }, z.core.$strict>], "action">;
1921
+ id: z.ZodString;
1922
+ workspaceId: z.ZodOptional<WorkspaceId>;
1923
+ }, z.core.$strip>;
1924
+ readonly kind: "write";
1925
+ readonly name: "runner.record";
1926
+ readonly output: z.ZodObject<{
1927
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
1928
+ outcome: z.ZodLiteral<"success">;
1929
+ recording: z.ZodOptional<z.ZodObject<{
1930
+ endedAt: z.ZodISODateTime;
1931
+ id: z.ZodUUID;
1932
+ mode: z.ZodEnum<{
1933
+ manual: "manual";
1934
+ automatic: "automatic";
1935
+ }>;
1936
+ runIds: z.ZodArray<z.ZodString>;
1937
+ runnerId: z.ZodString;
1938
+ runnerInstanceId: z.ZodUUID;
1939
+ startedAt: z.ZodISODateTime;
1940
+ status: z.ZodEnum<{
1941
+ failed: "failed";
1942
+ ready: "ready";
1943
+ }>;
1944
+ version: z.ZodLiteral<1>;
1945
+ }, z.core.$strip>>;
1946
+ state: z.ZodObject<{
1947
+ active: z.ZodOptional<z.ZodObject<{
1948
+ id: z.ZodUUID;
1949
+ mode: z.ZodEnum<{
1950
+ manual: "manual";
1951
+ automatic: "automatic";
1952
+ }>;
1953
+ startedAt: z.ZodISODateTime;
1954
+ }, z.core.$strip>>;
1955
+ auto: z.ZodEnum<{
1956
+ default: "default";
1957
+ on: "on";
1958
+ off: "off";
1959
+ }>;
1960
+ }, z.core.$strip>;
1961
+ }, z.core.$strip>, z.ZodObject<{
1962
+ failureReason: z.ZodEnum<{
1963
+ "runner-unreachable": "runner-unreachable";
1964
+ "screen-not-ready": "screen-not-ready";
1965
+ unsupported: "unsupported";
1966
+ "recording-in-progress": "recording-in-progress";
1967
+ "recording-not-found": "recording-not-found";
1968
+ "recording-id-used": "recording-id-used";
1969
+ "recording-failed": "recording-failed";
1970
+ }>;
1971
+ outcome: z.ZodLiteral<"failure">;
1972
+ }, z.core.$strip>], "outcome">;
1973
+ url: z.ZodURL;
1974
+ }, z.core.$strip>;
1975
+ };
1976
+ recordings: {
1977
+ readonly annotations: {
1978
+ readonly destructiveHint: false;
1979
+ readonly openWorldHint: false;
1980
+ readonly readOnlyHint: true;
1981
+ };
1982
+ readonly description: "Read a runner's finalized recordings from workspace storage, including after the runner terminates. Omit recordingId to list recordings in storage-key order; follow nextPageToken for more. An empty list for a specific recording means it is not published or does not exist. Video URLs expire; platform URLs remain stable.";
1983
+ readonly input: z.ZodObject<{
1984
+ id: z.ZodString;
1985
+ pageToken: z.ZodOptional<z.ZodString>;
1986
+ recordingId: z.ZodOptional<z.ZodUUID>;
1987
+ workspaceId: z.ZodOptional<WorkspaceId>;
1988
+ }, z.core.$strip>;
1989
+ readonly kind: "read";
1990
+ readonly name: "runner.recordings";
1991
+ readonly output: z.ZodObject<{
1992
+ nextPageToken: z.ZodOptional<z.ZodString>;
1993
+ recordings: z.ZodArray<z.ZodObject<{
1994
+ endedAt: z.ZodISODateTime;
1995
+ id: z.ZodUUID;
1996
+ mode: z.ZodEnum<{
1997
+ manual: "manual";
1998
+ automatic: "automatic";
1999
+ }>;
2000
+ runIds: z.ZodArray<z.ZodString>;
2001
+ runnerId: z.ZodString;
2002
+ runnerInstanceId: z.ZodUUID;
2003
+ startedAt: z.ZodISODateTime;
2004
+ status: z.ZodEnum<{
2005
+ failed: "failed";
2006
+ ready: "ready";
2007
+ }>;
2008
+ version: z.ZodLiteral<1>;
2009
+ url: z.ZodURL;
2010
+ videoUrl: z.ZodOptional<z.ZodURL>;
2011
+ }, z.core.$strip>>;
2012
+ }, z.core.$strip>;
2013
+ };
1715
2014
  evaluateSnippet: {
1716
2015
  readonly annotations: {
1717
2016
  readonly destructiveHint: true;
@@ -2393,146 +2692,27 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2393
2692
  outcome: z.ZodLiteral<"failure">;
2394
2693
  }, z.core.$strip>], "outcome">;
2395
2694
  };
2396
- runFlow: {
2695
+ };
2696
+ skill: {
2697
+ get: {
2397
2698
  readonly annotations: {
2398
- readonly destructiveHint: true;
2399
- readonly openWorldHint: true;
2400
- readonly readOnlyHint: false;
2699
+ readonly destructiveHint: false;
2700
+ readonly openWorldHint: false;
2701
+ readonly readOnlyHint: true;
2401
2702
  };
2402
- readonly description: "Run a flow on an interactive runner. When `selection` is given the lines run against the browser as it stands, so nothing is re-navigated and nothing is signed in again; without it the whole entry point runs from a fresh browser. A runner with no live browser starts one before a selection and says so with `bootstrappedRunner`, which means those lines ran against a fresh page rather than the one an earlier run left. A selection produces no `runStarted` event, so follow it by its run id on `run-status` like any other run. Send `unchangedFiles` to ship only what changed since an earlier run on this runner; a `needs-full-sync` failure names the paths it does not hold, and the way to recover is the same run again with every file in `files`. Answers as soon as the run is accepted, with the id to follow it by — nothing waits for the run to finish. Which browser or device the run needs is read from the flow file's own execution target, so it is not supplied here; when it does not match what the runner is, the call fails with `runner-target-mismatch` rather than failing partway through the run. `runner-unreachable` means the answer did not arrive, which is NOT the same as the run not having started: the runner may have accepted it and been too slow to say so, and resubmitting would start a second run that is billed and journalled alongside the first. Read the runner's `run-status` journal stream before resubmitting, and use the newest run id there if one appeared.";
2703
+ readonly description: "Read a QA Wolf skill: the instructions a coding agent follows for one kind of QA Wolf work. The reply carries the skill's SKILL.md and every file under its references directory, so nothing else has to be fetched for it. Read the skill before starting the work it covers and follow it. A link in the reply of the form ../<skill>/SKILL.md names another skill, which this call reads by that name.";
2403
2704
  readonly input: z.ZodObject<{
2404
- entryPointPath: z.ZodString;
2405
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2406
- environmentId: z.ZodOptional<PublicIdSchema>;
2407
- files: z.ZodRecord<z.ZodString, z.ZodString>;
2408
- id: z.ZodString;
2409
- selection: z.ZodOptional<z.ZodObject<{
2410
- endLine: z.ZodInt;
2705
+ name: z.ZodString;
2706
+ }, z.core.$strip>;
2707
+ readonly kind: "read";
2708
+ readonly name: "skill.get";
2709
+ readonly output: z.ZodObject<{
2710
+ description: z.ZodString;
2711
+ name: z.ZodString;
2712
+ instructions: z.ZodString;
2713
+ references: z.ZodArray<z.ZodObject<{
2411
2714
  path: z.ZodString;
2412
- startLine: z.ZodInt;
2413
- }, z.core.$strip>>;
2414
- unchangedFiles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2415
- workspaceId: z.ZodOptional<WorkspaceId>;
2416
- }, z.core.$strip>;
2417
- readonly kind: "write";
2418
- readonly name: "runner.runFlow";
2419
- readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
2420
- bootstrappedRunner: z.ZodOptional<z.ZodBoolean>;
2421
- outcome: z.ZodLiteral<"success">;
2422
- runId: z.ZodString;
2423
- }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
2424
- failureReason: z.ZodLiteral<"runner-target-mismatch">;
2425
- outcome: z.ZodLiteral<"failure">;
2426
- requiredRunnerName: z.ZodEnum<{
2427
- basic: "basic";
2428
- playwright: "playwright";
2429
- android: "android";
2430
- ios: "ios";
2431
- }>;
2432
- runnerName: z.ZodEnum<{
2433
- basic: "basic";
2434
- playwright: "playwright";
2435
- android: "android";
2436
- ios: "ios";
2437
- }>;
2438
- }, z.core.$strip>, z.ZodObject<{
2439
- failureReason: z.ZodLiteral<"needs-full-sync">;
2440
- missingPaths: z.ZodArray<z.ZodString>;
2441
- outcome: z.ZodLiteral<"failure">;
2442
- }, z.core.$strip>, z.ZodObject<{
2443
- failureReason: z.ZodLiteral<"runner-unreachable">;
2444
- outcome: z.ZodLiteral<"failure">;
2445
- }, z.core.$strip>], "failureReason">], "outcome">;
2446
- };
2447
- stopRun: {
2448
- readonly annotations: {
2449
- readonly destructiveHint: true;
2450
- readonly openWorldHint: false;
2451
- readonly readOnlyHint: false;
2452
- };
2453
- readonly description: "Stop what a runner is currently executing, leaving the runner up and its browser on whatever page the run reached. Succeeds whether or not anything was running, and `wasRunning` says which. This is the counterpart of `runner.terminate`, which ends the runner itself. The run stops where it is, so the journal's `run-status` settles it as stopped rather than passed or failed. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may be too busy to answer. The stop may still have landed, but stopping a runner that is already idle does nothing, so retrying is safe.";
2454
- readonly input: z.ZodObject<{
2455
- id: z.ZodString;
2456
- workspaceId: z.ZodOptional<WorkspaceId>;
2457
- }, z.core.$strip>;
2458
- readonly kind: "write";
2459
- readonly name: "runner.stopRun";
2460
- readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
2461
- outcome: z.ZodLiteral<"success">;
2462
- wasRunning: z.ZodBoolean;
2463
- }, z.core.$strip>, z.ZodObject<{
2464
- failureReason: z.ZodEnum<{
2465
- "runner-unreachable": "runner-unreachable";
2466
- }>;
2467
- outcome: z.ZodLiteral<"failure">;
2468
- }, z.core.$strip>], "outcome">;
2469
- };
2470
- takeScreenshot: {
2471
- readonly annotations: {
2472
- readonly destructiveHint: false;
2473
- readonly openWorldHint: false;
2474
- readonly readOnlyHint: false;
2475
- };
2476
- readonly description: "Take one screenshot of an interactive runner's screen. On a runner with a browser the image is the whole virtual desktop, browser window and all; this refreshes the inactivity timer and can extend the runner's billed lifetime. On a mobile runner it is the device's own screen, re-encoded to JPEG on the pod so this contract reads one image format regardless of runner family. `screen-needs-a-run` if the runner's virtual desktop has never started. Waiting will not change this and retrying is pointless — call `runner.runFlow` with a flow that opens a browser, then ask for the screen again. On a runner image with a browser that has never run anything, any `runner.performAction` also starts the browser itself. Evaluating a snippet does not start the desktop. `screen-not-ready` if the runner has a screen that cannot serve this instant. Retry in a second or two: the desktop restarts when a run changes the display size, and it serves one see-or-act request at a time, so a screenshot or action already in flight is the usual reason. Do not submit a run to clear this — a run may restart the display and discard what is on it. `runner-has-no-screen` if this runner is not one that runs a browser on a virtual desktop. Nothing about it can be seen or driven, and retrying will never help — launch a `playwright` runner instead. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may be too busy to answer. Nothing was changed, so retrying is safe; if it persists, launch the runner again.";
2477
- readonly input: z.ZodObject<{
2478
- id: z.ZodString;
2479
- workspaceId: z.ZodOptional<WorkspaceId>;
2480
- }, z.core.$strip>;
2481
- readonly kind: "read";
2482
- readonly name: "runner.takeScreenshot";
2483
- readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
2484
- imageJpegBase64: z.ZodString;
2485
- outcome: z.ZodLiteral<"success">;
2486
- }, z.core.$strip>, z.ZodObject<{
2487
- failureReason: z.ZodEnum<{
2488
- "runner-unreachable": "runner-unreachable";
2489
- "screen-needs-a-run": "screen-needs-a-run";
2490
- "screen-not-ready": "screen-not-ready";
2491
- "runner-has-no-screen": "runner-has-no-screen";
2492
- }>;
2493
- outcome: z.ZodLiteral<"failure">;
2494
- }, z.core.$strip>], "outcome">;
2495
- };
2496
- terminate: {
2497
- readonly annotations: {
2498
- readonly destructiveHint: true;
2499
- readonly openWorldHint: false;
2500
- readonly readOnlyHint: false;
2501
- };
2502
- readonly description: "End an interactive runner on the caller's team, and the pod it runs on with it. Terminating a runner that is not running succeeds and reports `wasRunning: false`. This ends the runner: use `runner.stopRun` to stop what a runner is currently executing while leaving the runner up.";
2503
- readonly input: z.ZodObject<{
2504
- id: z.ZodString;
2505
- workspaceId: z.ZodOptional<WorkspaceId>;
2506
- }, z.core.$strip>;
2507
- readonly kind: "write";
2508
- readonly name: "runner.terminate";
2509
- readonly output: z.ZodObject<{
2510
- id: z.ZodString;
2511
- outcome: z.ZodLiteral<"success">;
2512
- wasRunning: z.ZodBoolean;
2513
- }, z.core.$strip>;
2514
- };
2515
- };
2516
- skill: {
2517
- get: {
2518
- readonly annotations: {
2519
- readonly destructiveHint: false;
2520
- readonly openWorldHint: false;
2521
- readonly readOnlyHint: true;
2522
- };
2523
- readonly description: "Read a QA Wolf skill: the instructions a coding agent follows for one kind of QA Wolf work. The reply carries the skill's SKILL.md and every file under its references directory, so nothing else has to be fetched for it. Read the skill before starting the work it covers and follow it. A link in the reply of the form ../<skill>/SKILL.md names another skill, which this call reads by that name.";
2524
- readonly input: z.ZodObject<{
2525
- name: z.ZodString;
2526
- }, z.core.$strip>;
2527
- readonly kind: "read";
2528
- readonly name: "skill.get";
2529
- readonly output: z.ZodObject<{
2530
- description: z.ZodString;
2531
- name: z.ZodString;
2532
- instructions: z.ZodString;
2533
- references: z.ZodArray<z.ZodObject<{
2534
- path: z.ZodString;
2535
- text: z.ZodString;
2715
+ text: z.ZodString;
2536
2716
  }, z.core.$strip>>;
2537
2717
  }, z.core.$strip>;
2538
2718
  };
@@ -2619,6 +2799,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2619
2799
  createSuite: "createSuite";
2620
2800
  generativeSuite: "generativeSuite";
2621
2801
  }>>;
2802
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2622
2803
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2623
2804
  }, z.core.$strip>;
2624
2805
  cadence: z.ZodEnum<{
@@ -2635,6 +2816,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2635
2816
  saturday: "saturday";
2636
2817
  sunday: "sunday";
2637
2818
  }>>;
2819
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2820
+ monday: "monday";
2821
+ tuesday: "tuesday";
2822
+ wednesday: "wednesday";
2823
+ thursday: "thursday";
2824
+ friday: "friday";
2825
+ saturday: "saturday";
2826
+ sunday: "sunday";
2827
+ }>>>;
2638
2828
  environmentId: PublicIdSchema;
2639
2829
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
2640
2830
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -2651,6 +2841,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2651
2841
  createSuite: "createSuite";
2652
2842
  generativeSuite: "generativeSuite";
2653
2843
  }>>;
2844
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2654
2845
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2655
2846
  }, z.core.$strip>;
2656
2847
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -2674,6 +2865,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2674
2865
  createSuite: "createSuite";
2675
2866
  generativeSuite: "generativeSuite";
2676
2867
  }>>;
2868
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2677
2869
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2678
2870
  }, z.core.$strip>;
2679
2871
  cadence: z.ZodEnum<{
@@ -2690,6 +2882,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2690
2882
  saturday: "saturday";
2691
2883
  sunday: "sunday";
2692
2884
  }>>;
2885
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2886
+ monday: "monday";
2887
+ tuesday: "tuesday";
2888
+ wednesday: "wednesday";
2889
+ thursday: "thursday";
2890
+ friday: "friday";
2891
+ saturday: "saturday";
2892
+ sunday: "sunday";
2893
+ }>>>;
2693
2894
  environmentId: EnvironmentId;
2694
2895
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
2695
2896
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -2704,6 +2905,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2704
2905
  createSuite: "createSuite";
2705
2906
  generativeSuite: "generativeSuite";
2706
2907
  }>>;
2908
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2707
2909
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2708
2910
  }, z.core.$strip>;
2709
2911
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -2767,6 +2969,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2767
2969
  createSuite: "createSuite";
2768
2970
  generativeSuite: "generativeSuite";
2769
2971
  }>>;
2972
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2770
2973
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2771
2974
  }, z.core.$strip>;
2772
2975
  cadence: z.ZodEnum<{
@@ -2783,6 +2986,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2783
2986
  saturday: "saturday";
2784
2987
  sunday: "sunday";
2785
2988
  }>>;
2989
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2990
+ monday: "monday";
2991
+ tuesday: "tuesday";
2992
+ wednesday: "wednesday";
2993
+ thursday: "thursday";
2994
+ friday: "friday";
2995
+ saturday: "saturday";
2996
+ sunday: "sunday";
2997
+ }>>>;
2786
2998
  environmentId: EnvironmentId;
2787
2999
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
2788
3000
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -2797,6 +3009,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2797
3009
  createSuite: "createSuite";
2798
3010
  generativeSuite: "generativeSuite";
2799
3011
  }>>;
3012
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2800
3013
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2801
3014
  }, z.core.$strip>;
2802
3015
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -2843,6 +3056,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2843
3056
  createSuite: "createSuite";
2844
3057
  generativeSuite: "generativeSuite";
2845
3058
  }>>;
3059
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2846
3060
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2847
3061
  }, z.core.$strip>;
2848
3062
  cadence: z.ZodEnum<{
@@ -2859,6 +3073,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2859
3073
  saturday: "saturday";
2860
3074
  sunday: "sunday";
2861
3075
  }>>;
3076
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
3077
+ monday: "monday";
3078
+ tuesday: "tuesday";
3079
+ wednesday: "wednesday";
3080
+ thursday: "thursday";
3081
+ friday: "friday";
3082
+ saturday: "saturday";
3083
+ sunday: "sunday";
3084
+ }>>>;
2862
3085
  environmentId: EnvironmentId;
2863
3086
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
2864
3087
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -2873,6 +3096,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2873
3096
  createSuite: "createSuite";
2874
3097
  generativeSuite: "generativeSuite";
2875
3098
  }>>;
3099
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2876
3100
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2877
3101
  }, z.core.$strip>;
2878
3102
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -2919,6 +3143,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2919
3143
  createSuite: "createSuite";
2920
3144
  generativeSuite: "generativeSuite";
2921
3145
  }>>;
3146
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2922
3147
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2923
3148
  }, z.core.$strip>;
2924
3149
  cadence: z.ZodEnum<{
@@ -2935,6 +3160,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2935
3160
  saturday: "saturday";
2936
3161
  sunday: "sunday";
2937
3162
  }>>;
3163
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
3164
+ monday: "monday";
3165
+ tuesday: "tuesday";
3166
+ wednesday: "wednesday";
3167
+ thursday: "thursday";
3168
+ friday: "friday";
3169
+ saturday: "saturday";
3170
+ sunday: "sunday";
3171
+ }>>>;
2938
3172
  environmentId: EnvironmentId;
2939
3173
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
2940
3174
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -2949,6 +3183,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2949
3183
  createSuite: "createSuite";
2950
3184
  generativeSuite: "generativeSuite";
2951
3185
  }>>;
3186
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2952
3187
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2953
3188
  }, z.core.$strip>;
2954
3189
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -2995,6 +3230,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
2995
3230
  createSuite: "createSuite";
2996
3231
  generativeSuite: "generativeSuite";
2997
3232
  }>>;
3233
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
2998
3234
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2999
3235
  }, z.core.$strip>;
3000
3236
  cadence: z.ZodEnum<{
@@ -3011,6 +3247,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
3011
3247
  saturday: "saturday";
3012
3248
  sunday: "sunday";
3013
3249
  }>>;
3250
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
3251
+ monday: "monday";
3252
+ tuesday: "tuesday";
3253
+ wednesday: "wednesday";
3254
+ thursday: "thursday";
3255
+ friday: "friday";
3256
+ saturday: "saturday";
3257
+ sunday: "sunday";
3258
+ }>>>;
3014
3259
  environmentId: EnvironmentId;
3015
3260
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
3016
3261
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -3025,6 +3270,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
3025
3270
  createSuite: "createSuite";
3026
3271
  generativeSuite: "generativeSuite";
3027
3272
  }>>;
3273
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
3028
3274
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
3029
3275
  }, z.core.$strip>;
3030
3276
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -3064,6 +3310,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
3064
3310
  createSuite: "createSuite";
3065
3311
  generativeSuite: "generativeSuite";
3066
3312
  }>>;
3313
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
3067
3314
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
3068
3315
  }, z.core.$strip>;
3069
3316
  cadence: z.ZodEnum<{
@@ -3080,6 +3327,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
3080
3327
  saturday: "saturday";
3081
3328
  sunday: "sunday";
3082
3329
  }>>;
3330
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
3331
+ monday: "monday";
3332
+ tuesday: "tuesday";
3333
+ wednesday: "wednesday";
3334
+ thursday: "thursday";
3335
+ friday: "friday";
3336
+ saturday: "saturday";
3337
+ sunday: "sunday";
3338
+ }>>>;
3083
3339
  environmentId: PublicIdSchema;
3084
3340
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
3085
3341
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -3096,6 +3352,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
3096
3352
  createSuite: "createSuite";
3097
3353
  generativeSuite: "generativeSuite";
3098
3354
  }>>;
3355
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
3099
3356
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
3100
3357
  }, z.core.$strip>;
3101
3358
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -3119,6 +3376,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
3119
3376
  createSuite: "createSuite";
3120
3377
  generativeSuite: "generativeSuite";
3121
3378
  }>>;
3379
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
3122
3380
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
3123
3381
  }, z.core.$strip>;
3124
3382
  cadence: z.ZodEnum<{
@@ -3135,6 +3393,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
3135
3393
  saturday: "saturday";
3136
3394
  sunday: "sunday";
3137
3395
  }>>;
3396
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
3397
+ monday: "monday";
3398
+ tuesday: "tuesday";
3399
+ wednesday: "wednesday";
3400
+ thursday: "thursday";
3401
+ friday: "friday";
3402
+ saturday: "saturday";
3403
+ sunday: "sunday";
3404
+ }>>>;
3138
3405
  environmentId: EnvironmentId;
3139
3406
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
3140
3407
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -3149,6 +3416,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
3149
3416
  createSuite: "createSuite";
3150
3417
  generativeSuite: "generativeSuite";
3151
3418
  }>>;
3419
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
3152
3420
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
3153
3421
  }, z.core.$strip>;
3154
3422
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -3224,6 +3492,7 @@ export declare const publicContractsV1: {
3224
3492
  environmentId: z.ZodOptional<PublicIdSchema>;
3225
3493
  filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
3226
3494
  message: z.ZodString;
3495
+ parentSessionId: z.ZodOptional<PublicIdSchema>;
3227
3496
  runnerId: z.ZodOptional<z.ZodString>;
3228
3497
  sessionId: z.ZodOptional<PublicIdSchema>;
3229
3498
  workspaceId: z.ZodOptional<PublicIdSchema>;
@@ -3388,7 +3657,29 @@ export declare const publicContractsV1: {
3388
3657
  }, z.core.$strip>, z.ZodObject<{
3389
3658
  status: z.ZodLiteral<"starting">;
3390
3659
  }, z.core.$strip>, z.ZodObject<{
3391
- reason: z.ZodString;
3660
+ message: z.ZodString;
3661
+ reason: z.ZodEnum<{
3662
+ "billing-prevented": "billing-prevented";
3663
+ "branch-still-syncing": "branch-still-syncing";
3664
+ "deployment-no-longer-live": "deployment-no-longer-live";
3665
+ "duplicate-run": "duplicate-run";
3666
+ "environment-not-linked-to-branch": "environment-not-linked-to-branch";
3667
+ "environment-not-ready": "environment-not-ready";
3668
+ "environment-terminated": "environment-terminated";
3669
+ "internal-error": "internal-error";
3670
+ "low-risk-change": "low-risk-change";
3671
+ "no-flows-to-run": "no-flows-to-run";
3672
+ "no-matching-trigger": "no-matching-trigger";
3673
+ "no-pull-request": "no-pull-request";
3674
+ "no-relevant-flows": "no-relevant-flows";
3675
+ "rate-limited": "rate-limited";
3676
+ "run-not-created": "run-not-created";
3677
+ skipped: "skipped";
3678
+ "test-configuration-error": "test-configuration-error";
3679
+ "trigger-not-found": "trigger-not-found";
3680
+ "workspace-inactive": "workspace-inactive";
3681
+ "workspace-not-ready": "workspace-not-ready";
3682
+ }>;
3392
3683
  status: z.ZodLiteral<"did-not-run">;
3393
3684
  supersededByRunId: z.ZodOptional<PublicIdSchema>;
3394
3685
  }, z.core.$strip>, z.ZodObject<{
@@ -3437,7 +3728,7 @@ export declare const publicContractsV1: {
3437
3728
  readonly openWorldHint: true;
3438
3729
  readonly readOnlyHint: false;
3439
3730
  };
3440
- readonly description: "Report a deployment lifecycle status. A deployment's first success report evaluates global triggers asynchronously, and it is the only report that does: a trigger added or unpaused later does not make an already reported deployment evaluate again. Report that deployment under a new providerDeploymentId to evaluate it against the current triggers. The response contains the deployment only, not the resulting runs. This route requires an organization or user API key.";
3731
+ readonly description: "Report a deployment lifecycle status. A deployment's first success report evaluates global triggers asynchronously, and it is the only report that does: a trigger added or unpaused later does not make an already reported deployment evaluate again. Report that deployment under a new providerDeploymentId to evaluate it against the current triggers. The response contains the deployment only, not the resulting runs.";
3441
3732
  readonly input: z.ZodObject<{
3442
3733
  deployTarget: z.ZodOptional<z.ZodURL>;
3443
3734
  environment: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
@@ -4872,57 +5163,333 @@ export declare const publicContractsV1: {
4872
5163
  url: z.ZodURL;
4873
5164
  }, z.core.$strip>;
4874
5165
  };
5166
+ triage: {
5167
+ readonly annotations: {
5168
+ readonly destructiveHint: false;
5169
+ readonly openWorldHint: false;
5170
+ readonly readOnlyHint: true;
5171
+ };
5172
+ readonly description: string;
5173
+ readonly input: z.ZodObject<{
5174
+ flowId: PublicIdSchema;
5175
+ runId: PublicIdSchema;
5176
+ }, z.core.$strip>;
5177
+ readonly kind: "read";
5178
+ readonly name: "run.triage";
5179
+ readonly output: z.ZodObject<{
5180
+ answers: z.ZodObject<{
5181
+ verdict: z.ZodObject<{
5182
+ choice: z.ZodEnum<{
5183
+ bug: "bug";
5184
+ maintenance: "maintenance";
5185
+ }>;
5186
+ confidence: z.ZodNumber;
5187
+ probabilities: z.ZodRecord<z.ZodString, z.ZodNumber>;
5188
+ type: z.ZodLiteral<"choice">;
5189
+ }, z.core.$strip>;
5190
+ }, z.core.$strip>;
5191
+ decision: z.ZodDiscriminatedUnion<[z.ZodObject<{
5192
+ diagnosis: z.ZodEnum<{
5193
+ bug: "bug";
5194
+ maintenance: "maintenance";
5195
+ }>;
5196
+ type: z.ZodLiteral<"diagnose">;
5197
+ }, z.core.$strip>, z.ZodObject<{
5198
+ diagnosis: z.ZodEnum<{
5199
+ bug: "bug";
5200
+ maintenance: "maintenance";
5201
+ }>;
5202
+ type: z.ZodLiteral<"suggest">;
5203
+ }, z.core.$strip>, z.ZodObject<{
5204
+ type: z.ZodLiteral<"needsHuman">;
5205
+ }, z.core.$strip>], "type">;
5206
+ model: z.ZodString;
5207
+ state: z.ZodJSONSchema;
5208
+ }, z.core.$strip>;
5209
+ };
4875
5210
  };
4876
5211
  runner: {
4877
- evaluateSnippet: {
5212
+ runFlow: {
4878
5213
  readonly annotations: {
4879
5214
  readonly destructiveHint: true;
4880
5215
  readonly openWorldHint: true;
4881
5216
  readonly readOnlyHint: false;
4882
5217
  };
4883
- readonly description: "Evaluate a snippet against whatever the runner's browser is showing right now. Answers whether the snippet ran, and its error if it threw — not the value it evaluated to, so read anything you want back out of the runner's journal (a snippet's `console.log` lands in the `console` stream). A snippet starts no run and leaves no run-scoped journal entries of its own. `runner-cannot-evaluate-snippets` on a runner with nothing attached to serve one — which will never clear, so check that the runner you launched is one that runs a browser or app before retrying. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may be too busy to answer. Neither is proof the snippet did not run: a snippet that outlives the answer window is still executing when you read this, so do not blindly resubmit one that mutates what the page is looking at.";
5218
+ readonly description: "Run a flow on an interactive runner. When `selection` is given the lines run against the browser as it stands, so nothing is re-navigated and nothing is signed in again; without it the whole entry point runs from a fresh browser. A runner with no live browser starts one before a selection and says so with `bootstrappedRunner`, which means those lines ran against a fresh page rather than the one an earlier run left. A selection produces no `runStarted` event, so follow it by its run id on `run-status` like any other run. Send `unchangedFiles` to ship only what changed since an earlier run on this runner; a `needs-full-sync` failure names the paths it does not hold, and the way to recover is the same run again with every file in `files`. Answers as soon as the run is accepted, with the id to follow it by — nothing waits for the run to finish. Which browser or device the run needs is read from the flow file's own execution target, so it is not supplied here; when it does not match what the runner is, the call fails with `runner-target-mismatch` rather than failing partway through the run. `runner-unreachable` means the answer did not arrive, which is NOT the same as the run not having started: the runner may have accepted it and been too slow to say so, and resubmitting would start a second run that is billed and journalled alongside the first. Read the runner's `run-status` journal stream before resubmitting, and use the newest run id there if one appeared.";
4884
5219
  readonly input: z.ZodObject<{
4885
- code: z.ZodString;
4886
- filePath: z.ZodOptional<z.ZodString>;
4887
- files: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
5220
+ entryPointPath: z.ZodString;
5221
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
5222
+ environmentId: z.ZodOptional<PublicIdSchema>;
5223
+ files: z.ZodRecord<z.ZodString, z.ZodString>;
4888
5224
  id: z.ZodString;
5225
+ selection: z.ZodOptional<z.ZodObject<{
5226
+ endLine: z.ZodInt;
5227
+ path: z.ZodString;
5228
+ startLine: z.ZodInt;
5229
+ }, z.core.$strip>>;
5230
+ unchangedFiles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
4889
5231
  workspaceId: z.ZodOptional<PublicIdSchema>;
4890
5232
  }, z.core.$strip>;
4891
5233
  readonly kind: "write";
4892
- readonly name: "runner.evaluateSnippet";
5234
+ readonly name: "runner.runFlow";
4893
5235
  readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
4894
- errorMessage: z.ZodOptional<z.ZodString>;
5236
+ bootstrappedRunner: z.ZodOptional<z.ZodBoolean>;
4895
5237
  outcome: z.ZodLiteral<"success">;
4896
- result: z.ZodEnum<{
4897
- success: "success";
4898
- error: "error";
4899
- stopped: "stopped";
5238
+ runId: z.ZodString;
5239
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
5240
+ failureReason: z.ZodLiteral<"runner-target-mismatch">;
5241
+ outcome: z.ZodLiteral<"failure">;
5242
+ requiredRunnerName: z.ZodEnum<{
5243
+ basic: "basic";
5244
+ playwright: "playwright";
5245
+ android: "android";
5246
+ ios: "ios";
5247
+ }>;
5248
+ runnerName: z.ZodEnum<{
5249
+ basic: "basic";
5250
+ playwright: "playwright";
5251
+ android: "android";
5252
+ ios: "ios";
4900
5253
  }>;
5254
+ }, z.core.$strip>, z.ZodObject<{
5255
+ failureReason: z.ZodLiteral<"needs-full-sync">;
5256
+ missingPaths: z.ZodArray<z.ZodString>;
5257
+ outcome: z.ZodLiteral<"failure">;
5258
+ }, z.core.$strip>, z.ZodObject<{
5259
+ failureReason: z.ZodLiteral<"runner-unreachable">;
5260
+ outcome: z.ZodLiteral<"failure">;
5261
+ }, z.core.$strip>], "failureReason">], "outcome">;
5262
+ };
5263
+ stopRun: {
5264
+ readonly annotations: {
5265
+ readonly destructiveHint: true;
5266
+ readonly openWorldHint: false;
5267
+ readonly readOnlyHint: false;
5268
+ };
5269
+ readonly description: "Stop what a runner is currently executing, leaving the runner up and its browser on whatever page the run reached. Succeeds whether or not anything was running, and `wasRunning` says which. This is the counterpart of `runner.terminate`, which ends the runner itself. The run stops where it is, so the journal's `run-status` settles it as stopped rather than passed or failed. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may be too busy to answer. The stop may still have landed, but stopping a runner that is already idle does nothing, so retrying is safe.";
5270
+ readonly input: z.ZodObject<{
5271
+ id: z.ZodString;
5272
+ workspaceId: z.ZodOptional<PublicIdSchema>;
5273
+ }, z.core.$strip>;
5274
+ readonly kind: "write";
5275
+ readonly name: "runner.stopRun";
5276
+ readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
5277
+ outcome: z.ZodLiteral<"success">;
5278
+ wasRunning: z.ZodBoolean;
4901
5279
  }, z.core.$strip>, z.ZodObject<{
4902
5280
  failureReason: z.ZodEnum<{
4903
- "runner-cannot-evaluate-snippets": "runner-cannot-evaluate-snippets";
4904
5281
  "runner-unreachable": "runner-unreachable";
4905
5282
  }>;
4906
5283
  outcome: z.ZodLiteral<"failure">;
4907
5284
  }, z.core.$strip>], "outcome">;
4908
5285
  };
4909
- get: {
5286
+ takeScreenshot: {
4910
5287
  readonly annotations: {
4911
5288
  readonly destructiveHint: false;
4912
5289
  readonly openWorldHint: false;
4913
- readonly readOnlyHint: true;
5290
+ readonly readOnlyHint: false;
4914
5291
  };
4915
- readonly description: "Report whether a runner is running under this id on the caller's team. This is a lookup: it never starts a runner, and it does not reset a runner's inactivity clock the way reading its journal does. An id that is not running is a success with `running: false` rather than an error, so this is how to check a runner is still there before addressing it. A running runner also reports the `url` to watch it on, so an id alone is enough to recover the link to give the user.";
5292
+ readonly description: "Take one screenshot of an interactive runner's screen. On a runner with a browser the image is the whole virtual desktop, browser window and all; this refreshes the inactivity timer and can extend the runner's billed lifetime. On a mobile runner it is the device's own screen, re-encoded to JPEG on the pod so this contract reads one image format regardless of runner family. `screen-needs-a-run` if the runner's virtual desktop has never started. Waiting will not change this and retrying is pointless — call `runner.runFlow` with a flow that opens a browser, then ask for the screen again. On a runner image with a browser that has never run anything, any `runner.performAction` also starts the browser itself. Evaluating a snippet does not start the desktop. `screen-not-ready` if the runner has a screen that cannot serve this instant. Retry in a second or two: the desktop restarts when a run changes the display size, and it serves one see-or-act request at a time, so a screenshot or action already in flight is the usual reason. Do not submit a run to clear this — a run may restart the display and discard what is on it. `runner-has-no-screen` if this runner is not one that runs a browser on a virtual desktop. Nothing about it can be seen or driven, and retrying will never help — launch a `playwright` runner instead. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may be too busy to answer. Nothing was changed, so retrying is safe; if it persists, launch the runner again.";
4916
5293
  readonly input: z.ZodObject<{
4917
5294
  id: z.ZodString;
4918
5295
  workspaceId: z.ZodOptional<PublicIdSchema>;
4919
5296
  }, z.core.$strip>;
4920
5297
  readonly kind: "read";
4921
- readonly name: "runner.get";
5298
+ readonly name: "runner.takeScreenshot";
4922
5299
  readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
4923
- id: z.ZodString;
5300
+ imageJpegBase64: z.ZodString;
4924
5301
  outcome: z.ZodLiteral<"success">;
4925
- running: z.ZodLiteral<false>;
5302
+ }, z.core.$strip>, z.ZodObject<{
5303
+ failureReason: z.ZodEnum<{
5304
+ "runner-unreachable": "runner-unreachable";
5305
+ "screen-needs-a-run": "screen-needs-a-run";
5306
+ "screen-not-ready": "screen-not-ready";
5307
+ "runner-has-no-screen": "runner-has-no-screen";
5308
+ }>;
5309
+ outcome: z.ZodLiteral<"failure">;
5310
+ }, z.core.$strip>], "outcome">;
5311
+ };
5312
+ terminate: {
5313
+ readonly annotations: {
5314
+ readonly destructiveHint: true;
5315
+ readonly openWorldHint: false;
5316
+ readonly readOnlyHint: false;
5317
+ };
5318
+ readonly description: "End an interactive runner on the caller's team, and the pod it runs on with it. Terminating a runner that is not running succeeds and reports `wasRunning: false`. This ends the runner: use `runner.stopRun` to stop what a runner is currently executing while leaving the runner up.";
5319
+ readonly input: z.ZodObject<{
5320
+ id: z.ZodString;
5321
+ workspaceId: z.ZodOptional<PublicIdSchema>;
5322
+ }, z.core.$strip>;
5323
+ readonly kind: "write";
5324
+ readonly name: "runner.terminate";
5325
+ readonly output: z.ZodObject<{
5326
+ id: z.ZodString;
5327
+ outcome: z.ZodLiteral<"success">;
5328
+ wasRunning: z.ZodBoolean;
5329
+ }, z.core.$strip>;
5330
+ };
5331
+ record: {
5332
+ readonly annotations: {
5333
+ readonly destructiveHint: false;
5334
+ readonly openWorldHint: false;
5335
+ readonly readOnlyHint: false;
5336
+ };
5337
+ readonly description: "Control video recording on a Playwright runner. Start requires a caller-generated UUID; stop targets that UUID so retries cannot stop a later recording. Manual capture spans runs and suppresses automatic capture. Auto settings affect subsequent full runs. The URL opens recording history after the runner terminates. Videos may be unavailable after abrupt pod loss.";
5338
+ readonly input: z.ZodObject<{
5339
+ command: z.ZodDiscriminatedUnion<[z.ZodObject<{
5340
+ action: z.ZodLiteral<"start">;
5341
+ recordingId: z.ZodUUID;
5342
+ }, z.core.$strict>, z.ZodObject<{
5343
+ action: z.ZodLiteral<"stop">;
5344
+ recordingId: z.ZodUUID;
5345
+ }, z.core.$strict>, z.ZodObject<{
5346
+ action: z.ZodLiteral<"auto">;
5347
+ enabled: z.ZodBoolean;
5348
+ }, z.core.$strict>, z.ZodObject<{
5349
+ action: z.ZodLiteral<"status">;
5350
+ }, z.core.$strict>], "action">;
5351
+ id: z.ZodString;
5352
+ workspaceId: z.ZodOptional<PublicIdSchema>;
5353
+ }, z.core.$strip>;
5354
+ readonly kind: "write";
5355
+ readonly name: "runner.record";
5356
+ readonly output: z.ZodObject<{
5357
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
5358
+ outcome: z.ZodLiteral<"success">;
5359
+ recording: z.ZodOptional<z.ZodObject<{
5360
+ endedAt: z.ZodISODateTime;
5361
+ id: z.ZodUUID;
5362
+ mode: z.ZodEnum<{
5363
+ manual: "manual";
5364
+ automatic: "automatic";
5365
+ }>;
5366
+ runIds: z.ZodArray<z.ZodString>;
5367
+ runnerId: z.ZodString;
5368
+ runnerInstanceId: z.ZodUUID;
5369
+ startedAt: z.ZodISODateTime;
5370
+ status: z.ZodEnum<{
5371
+ failed: "failed";
5372
+ ready: "ready";
5373
+ }>;
5374
+ version: z.ZodLiteral<1>;
5375
+ }, z.core.$strip>>;
5376
+ state: z.ZodObject<{
5377
+ active: z.ZodOptional<z.ZodObject<{
5378
+ id: z.ZodUUID;
5379
+ mode: z.ZodEnum<{
5380
+ manual: "manual";
5381
+ automatic: "automatic";
5382
+ }>;
5383
+ startedAt: z.ZodISODateTime;
5384
+ }, z.core.$strip>>;
5385
+ auto: z.ZodEnum<{
5386
+ default: "default";
5387
+ on: "on";
5388
+ off: "off";
5389
+ }>;
5390
+ }, z.core.$strip>;
5391
+ }, z.core.$strip>, z.ZodObject<{
5392
+ failureReason: z.ZodEnum<{
5393
+ "runner-unreachable": "runner-unreachable";
5394
+ "screen-not-ready": "screen-not-ready";
5395
+ unsupported: "unsupported";
5396
+ "recording-in-progress": "recording-in-progress";
5397
+ "recording-not-found": "recording-not-found";
5398
+ "recording-id-used": "recording-id-used";
5399
+ "recording-failed": "recording-failed";
5400
+ }>;
5401
+ outcome: z.ZodLiteral<"failure">;
5402
+ }, z.core.$strip>], "outcome">;
5403
+ url: z.ZodURL;
5404
+ }, z.core.$strip>;
5405
+ };
5406
+ recordings: {
5407
+ readonly annotations: {
5408
+ readonly destructiveHint: false;
5409
+ readonly openWorldHint: false;
5410
+ readonly readOnlyHint: true;
5411
+ };
5412
+ readonly description: "Read a runner's finalized recordings from workspace storage, including after the runner terminates. Omit recordingId to list recordings in storage-key order; follow nextPageToken for more. An empty list for a specific recording means it is not published or does not exist. Video URLs expire; platform URLs remain stable.";
5413
+ readonly input: z.ZodObject<{
5414
+ id: z.ZodString;
5415
+ pageToken: z.ZodOptional<z.ZodString>;
5416
+ recordingId: z.ZodOptional<z.ZodUUID>;
5417
+ workspaceId: z.ZodOptional<PublicIdSchema>;
5418
+ }, z.core.$strip>;
5419
+ readonly kind: "read";
5420
+ readonly name: "runner.recordings";
5421
+ readonly output: z.ZodObject<{
5422
+ nextPageToken: z.ZodOptional<z.ZodString>;
5423
+ recordings: z.ZodArray<z.ZodObject<{
5424
+ endedAt: z.ZodISODateTime;
5425
+ id: z.ZodUUID;
5426
+ mode: z.ZodEnum<{
5427
+ manual: "manual";
5428
+ automatic: "automatic";
5429
+ }>;
5430
+ runIds: z.ZodArray<z.ZodString>;
5431
+ runnerId: z.ZodString;
5432
+ runnerInstanceId: z.ZodUUID;
5433
+ startedAt: z.ZodISODateTime;
5434
+ status: z.ZodEnum<{
5435
+ failed: "failed";
5436
+ ready: "ready";
5437
+ }>;
5438
+ version: z.ZodLiteral<1>;
5439
+ url: z.ZodURL;
5440
+ videoUrl: z.ZodOptional<z.ZodURL>;
5441
+ }, z.core.$strip>>;
5442
+ }, z.core.$strip>;
5443
+ };
5444
+ evaluateSnippet: {
5445
+ readonly annotations: {
5446
+ readonly destructiveHint: true;
5447
+ readonly openWorldHint: true;
5448
+ readonly readOnlyHint: false;
5449
+ };
5450
+ readonly description: "Evaluate a snippet against whatever the runner's browser is showing right now. Answers whether the snippet ran, and its error if it threw — not the value it evaluated to, so read anything you want back out of the runner's journal (a snippet's `console.log` lands in the `console` stream). A snippet starts no run and leaves no run-scoped journal entries of its own. `runner-cannot-evaluate-snippets` on a runner with nothing attached to serve one — which will never clear, so check that the runner you launched is one that runs a browser or app before retrying. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may be too busy to answer. Neither is proof the snippet did not run: a snippet that outlives the answer window is still executing when you read this, so do not blindly resubmit one that mutates what the page is looking at.";
5451
+ readonly input: z.ZodObject<{
5452
+ code: z.ZodString;
5453
+ filePath: z.ZodOptional<z.ZodString>;
5454
+ files: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
5455
+ id: z.ZodString;
5456
+ workspaceId: z.ZodOptional<PublicIdSchema>;
5457
+ }, z.core.$strip>;
5458
+ readonly kind: "write";
5459
+ readonly name: "runner.evaluateSnippet";
5460
+ readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
5461
+ errorMessage: z.ZodOptional<z.ZodString>;
5462
+ outcome: z.ZodLiteral<"success">;
5463
+ result: z.ZodEnum<{
5464
+ success: "success";
5465
+ error: "error";
5466
+ stopped: "stopped";
5467
+ }>;
5468
+ }, z.core.$strip>, z.ZodObject<{
5469
+ failureReason: z.ZodEnum<{
5470
+ "runner-cannot-evaluate-snippets": "runner-cannot-evaluate-snippets";
5471
+ "runner-unreachable": "runner-unreachable";
5472
+ }>;
5473
+ outcome: z.ZodLiteral<"failure">;
5474
+ }, z.core.$strip>], "outcome">;
5475
+ };
5476
+ get: {
5477
+ readonly annotations: {
5478
+ readonly destructiveHint: false;
5479
+ readonly openWorldHint: false;
5480
+ readonly readOnlyHint: true;
5481
+ };
5482
+ readonly description: "Report whether a runner is running under this id on the caller's team. This is a lookup: it never starts a runner, and it does not reset a runner's inactivity clock the way reading its journal does. An id that is not running is a success with `running: false` rather than an error, so this is how to check a runner is still there before addressing it. A running runner also reports the `url` to watch it on, so an id alone is enough to recover the link to give the user.";
5483
+ readonly input: z.ZodObject<{
5484
+ id: z.ZodString;
5485
+ workspaceId: z.ZodOptional<PublicIdSchema>;
5486
+ }, z.core.$strip>;
5487
+ readonly kind: "read";
5488
+ readonly name: "runner.get";
5489
+ readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
5490
+ id: z.ZodString;
5491
+ outcome: z.ZodLiteral<"success">;
5492
+ running: z.ZodLiteral<false>;
4926
5493
  }, z.core.$strip>, z.ZodObject<{
4927
5494
  id: z.ZodString;
4928
5495
  outcome: z.ZodLiteral<"success">;
@@ -5555,125 +6122,6 @@ export declare const publicContractsV1: {
5555
6122
  outcome: z.ZodLiteral<"failure">;
5556
6123
  }, z.core.$strip>], "outcome">;
5557
6124
  };
5558
- runFlow: {
5559
- readonly annotations: {
5560
- readonly destructiveHint: true;
5561
- readonly openWorldHint: true;
5562
- readonly readOnlyHint: false;
5563
- };
5564
- readonly description: "Run a flow on an interactive runner. When `selection` is given the lines run against the browser as it stands, so nothing is re-navigated and nothing is signed in again; without it the whole entry point runs from a fresh browser. A runner with no live browser starts one before a selection and says so with `bootstrappedRunner`, which means those lines ran against a fresh page rather than the one an earlier run left. A selection produces no `runStarted` event, so follow it by its run id on `run-status` like any other run. Send `unchangedFiles` to ship only what changed since an earlier run on this runner; a `needs-full-sync` failure names the paths it does not hold, and the way to recover is the same run again with every file in `files`. Answers as soon as the run is accepted, with the id to follow it by — nothing waits for the run to finish. Which browser or device the run needs is read from the flow file's own execution target, so it is not supplied here; when it does not match what the runner is, the call fails with `runner-target-mismatch` rather than failing partway through the run. `runner-unreachable` means the answer did not arrive, which is NOT the same as the run not having started: the runner may have accepted it and been too slow to say so, and resubmitting would start a second run that is billed and journalled alongside the first. Read the runner's `run-status` journal stream before resubmitting, and use the newest run id there if one appeared.";
5565
- readonly input: z.ZodObject<{
5566
- entryPointPath: z.ZodString;
5567
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
5568
- environmentId: z.ZodOptional<PublicIdSchema>;
5569
- files: z.ZodRecord<z.ZodString, z.ZodString>;
5570
- id: z.ZodString;
5571
- selection: z.ZodOptional<z.ZodObject<{
5572
- endLine: z.ZodInt;
5573
- path: z.ZodString;
5574
- startLine: z.ZodInt;
5575
- }, z.core.$strip>>;
5576
- unchangedFiles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
5577
- workspaceId: z.ZodOptional<PublicIdSchema>;
5578
- }, z.core.$strip>;
5579
- readonly kind: "write";
5580
- readonly name: "runner.runFlow";
5581
- readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
5582
- bootstrappedRunner: z.ZodOptional<z.ZodBoolean>;
5583
- outcome: z.ZodLiteral<"success">;
5584
- runId: z.ZodString;
5585
- }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
5586
- failureReason: z.ZodLiteral<"runner-target-mismatch">;
5587
- outcome: z.ZodLiteral<"failure">;
5588
- requiredRunnerName: z.ZodEnum<{
5589
- basic: "basic";
5590
- playwright: "playwright";
5591
- android: "android";
5592
- ios: "ios";
5593
- }>;
5594
- runnerName: z.ZodEnum<{
5595
- basic: "basic";
5596
- playwright: "playwright";
5597
- android: "android";
5598
- ios: "ios";
5599
- }>;
5600
- }, z.core.$strip>, z.ZodObject<{
5601
- failureReason: z.ZodLiteral<"needs-full-sync">;
5602
- missingPaths: z.ZodArray<z.ZodString>;
5603
- outcome: z.ZodLiteral<"failure">;
5604
- }, z.core.$strip>, z.ZodObject<{
5605
- failureReason: z.ZodLiteral<"runner-unreachable">;
5606
- outcome: z.ZodLiteral<"failure">;
5607
- }, z.core.$strip>], "failureReason">], "outcome">;
5608
- };
5609
- stopRun: {
5610
- readonly annotations: {
5611
- readonly destructiveHint: true;
5612
- readonly openWorldHint: false;
5613
- readonly readOnlyHint: false;
5614
- };
5615
- readonly description: "Stop what a runner is currently executing, leaving the runner up and its browser on whatever page the run reached. Succeeds whether or not anything was running, and `wasRunning` says which. This is the counterpart of `runner.terminate`, which ends the runner itself. The run stops where it is, so the journal's `run-status` settles it as stopped rather than passed or failed. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may be too busy to answer. The stop may still have landed, but stopping a runner that is already idle does nothing, so retrying is safe.";
5616
- readonly input: z.ZodObject<{
5617
- id: z.ZodString;
5618
- workspaceId: z.ZodOptional<PublicIdSchema>;
5619
- }, z.core.$strip>;
5620
- readonly kind: "write";
5621
- readonly name: "runner.stopRun";
5622
- readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
5623
- outcome: z.ZodLiteral<"success">;
5624
- wasRunning: z.ZodBoolean;
5625
- }, z.core.$strip>, z.ZodObject<{
5626
- failureReason: z.ZodEnum<{
5627
- "runner-unreachable": "runner-unreachable";
5628
- }>;
5629
- outcome: z.ZodLiteral<"failure">;
5630
- }, z.core.$strip>], "outcome">;
5631
- };
5632
- takeScreenshot: {
5633
- readonly annotations: {
5634
- readonly destructiveHint: false;
5635
- readonly openWorldHint: false;
5636
- readonly readOnlyHint: false;
5637
- };
5638
- readonly description: "Take one screenshot of an interactive runner's screen. On a runner with a browser the image is the whole virtual desktop, browser window and all; this refreshes the inactivity timer and can extend the runner's billed lifetime. On a mobile runner it is the device's own screen, re-encoded to JPEG on the pod so this contract reads one image format regardless of runner family. `screen-needs-a-run` if the runner's virtual desktop has never started. Waiting will not change this and retrying is pointless — call `runner.runFlow` with a flow that opens a browser, then ask for the screen again. On a runner image with a browser that has never run anything, any `runner.performAction` also starts the browser itself. Evaluating a snippet does not start the desktop. `screen-not-ready` if the runner has a screen that cannot serve this instant. Retry in a second or two: the desktop restarts when a run changes the display size, and it serves one see-or-act request at a time, so a screenshot or action already in flight is the usual reason. Do not submit a run to clear this — a run may restart the display and discard what is on it. `runner-has-no-screen` if this runner is not one that runs a browser on a virtual desktop. Nothing about it can be seen or driven, and retrying will never help — launch a `playwright` runner instead. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may be too busy to answer. Nothing was changed, so retrying is safe; if it persists, launch the runner again.";
5639
- readonly input: z.ZodObject<{
5640
- id: z.ZodString;
5641
- workspaceId: z.ZodOptional<PublicIdSchema>;
5642
- }, z.core.$strip>;
5643
- readonly kind: "read";
5644
- readonly name: "runner.takeScreenshot";
5645
- readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
5646
- imageJpegBase64: z.ZodString;
5647
- outcome: z.ZodLiteral<"success">;
5648
- }, z.core.$strip>, z.ZodObject<{
5649
- failureReason: z.ZodEnum<{
5650
- "runner-unreachable": "runner-unreachable";
5651
- "screen-needs-a-run": "screen-needs-a-run";
5652
- "screen-not-ready": "screen-not-ready";
5653
- "runner-has-no-screen": "runner-has-no-screen";
5654
- }>;
5655
- outcome: z.ZodLiteral<"failure">;
5656
- }, z.core.$strip>], "outcome">;
5657
- };
5658
- terminate: {
5659
- readonly annotations: {
5660
- readonly destructiveHint: true;
5661
- readonly openWorldHint: false;
5662
- readonly readOnlyHint: false;
5663
- };
5664
- readonly description: "End an interactive runner on the caller's team, and the pod it runs on with it. Terminating a runner that is not running succeeds and reports `wasRunning: false`. This ends the runner: use `runner.stopRun` to stop what a runner is currently executing while leaving the runner up.";
5665
- readonly input: z.ZodObject<{
5666
- id: z.ZodString;
5667
- workspaceId: z.ZodOptional<PublicIdSchema>;
5668
- }, z.core.$strip>;
5669
- readonly kind: "write";
5670
- readonly name: "runner.terminate";
5671
- readonly output: z.ZodObject<{
5672
- id: z.ZodString;
5673
- outcome: z.ZodLiteral<"success">;
5674
- wasRunning: z.ZodBoolean;
5675
- }, z.core.$strip>;
5676
- };
5677
6125
  };
5678
6126
  skill: {
5679
6127
  get: {
@@ -5781,6 +6229,7 @@ export declare const publicContractsV1: {
5781
6229
  createSuite: "createSuite";
5782
6230
  generativeSuite: "generativeSuite";
5783
6231
  }>>;
6232
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
5784
6233
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5785
6234
  }, z.core.$strip>;
5786
6235
  cadence: z.ZodEnum<{
@@ -5797,6 +6246,15 @@ export declare const publicContractsV1: {
5797
6246
  saturday: "saturday";
5798
6247
  sunday: "sunday";
5799
6248
  }>>;
6249
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
6250
+ monday: "monday";
6251
+ tuesday: "tuesday";
6252
+ wednesday: "wednesday";
6253
+ thursday: "thursday";
6254
+ friday: "friday";
6255
+ saturday: "saturday";
6256
+ sunday: "sunday";
6257
+ }>>>;
5800
6258
  environmentId: PublicIdSchema;
5801
6259
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
5802
6260
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -5813,6 +6271,7 @@ export declare const publicContractsV1: {
5813
6271
  createSuite: "createSuite";
5814
6272
  generativeSuite: "generativeSuite";
5815
6273
  }>>;
6274
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
5816
6275
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5817
6276
  }, z.core.$strip>;
5818
6277
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -5836,6 +6295,7 @@ export declare const publicContractsV1: {
5836
6295
  createSuite: "createSuite";
5837
6296
  generativeSuite: "generativeSuite";
5838
6297
  }>>;
6298
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
5839
6299
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5840
6300
  }, z.core.$strip>;
5841
6301
  cadence: z.ZodEnum<{
@@ -5852,6 +6312,15 @@ export declare const publicContractsV1: {
5852
6312
  saturday: "saturday";
5853
6313
  sunday: "sunday";
5854
6314
  }>>;
6315
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
6316
+ monday: "monday";
6317
+ tuesday: "tuesday";
6318
+ wednesday: "wednesday";
6319
+ thursday: "thursday";
6320
+ friday: "friday";
6321
+ saturday: "saturday";
6322
+ sunday: "sunday";
6323
+ }>>>;
5855
6324
  environmentId: PublicIdSchema;
5856
6325
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
5857
6326
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -5866,6 +6335,7 @@ export declare const publicContractsV1: {
5866
6335
  createSuite: "createSuite";
5867
6336
  generativeSuite: "generativeSuite";
5868
6337
  }>>;
6338
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
5869
6339
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5870
6340
  }, z.core.$strip>;
5871
6341
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -5929,6 +6399,7 @@ export declare const publicContractsV1: {
5929
6399
  createSuite: "createSuite";
5930
6400
  generativeSuite: "generativeSuite";
5931
6401
  }>>;
6402
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
5932
6403
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5933
6404
  }, z.core.$strip>;
5934
6405
  cadence: z.ZodEnum<{
@@ -5945,6 +6416,15 @@ export declare const publicContractsV1: {
5945
6416
  saturday: "saturday";
5946
6417
  sunday: "sunday";
5947
6418
  }>>;
6419
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
6420
+ monday: "monday";
6421
+ tuesday: "tuesday";
6422
+ wednesday: "wednesday";
6423
+ thursday: "thursday";
6424
+ friday: "friday";
6425
+ saturday: "saturday";
6426
+ sunday: "sunday";
6427
+ }>>>;
5948
6428
  environmentId: PublicIdSchema;
5949
6429
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
5950
6430
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -5959,6 +6439,7 @@ export declare const publicContractsV1: {
5959
6439
  createSuite: "createSuite";
5960
6440
  generativeSuite: "generativeSuite";
5961
6441
  }>>;
6442
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
5962
6443
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5963
6444
  }, z.core.$strip>;
5964
6445
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -6005,6 +6486,7 @@ export declare const publicContractsV1: {
6005
6486
  createSuite: "createSuite";
6006
6487
  generativeSuite: "generativeSuite";
6007
6488
  }>>;
6489
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
6008
6490
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
6009
6491
  }, z.core.$strip>;
6010
6492
  cadence: z.ZodEnum<{
@@ -6021,6 +6503,15 @@ export declare const publicContractsV1: {
6021
6503
  saturday: "saturday";
6022
6504
  sunday: "sunday";
6023
6505
  }>>;
6506
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
6507
+ monday: "monday";
6508
+ tuesday: "tuesday";
6509
+ wednesday: "wednesday";
6510
+ thursday: "thursday";
6511
+ friday: "friday";
6512
+ saturday: "saturday";
6513
+ sunday: "sunday";
6514
+ }>>>;
6024
6515
  environmentId: PublicIdSchema;
6025
6516
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
6026
6517
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -6035,6 +6526,7 @@ export declare const publicContractsV1: {
6035
6526
  createSuite: "createSuite";
6036
6527
  generativeSuite: "generativeSuite";
6037
6528
  }>>;
6529
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
6038
6530
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
6039
6531
  }, z.core.$strip>;
6040
6532
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -6081,6 +6573,7 @@ export declare const publicContractsV1: {
6081
6573
  createSuite: "createSuite";
6082
6574
  generativeSuite: "generativeSuite";
6083
6575
  }>>;
6576
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
6084
6577
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
6085
6578
  }, z.core.$strip>;
6086
6579
  cadence: z.ZodEnum<{
@@ -6097,6 +6590,15 @@ export declare const publicContractsV1: {
6097
6590
  saturday: "saturday";
6098
6591
  sunday: "sunday";
6099
6592
  }>>;
6593
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
6594
+ monday: "monday";
6595
+ tuesday: "tuesday";
6596
+ wednesday: "wednesday";
6597
+ thursday: "thursday";
6598
+ friday: "friday";
6599
+ saturday: "saturday";
6600
+ sunday: "sunday";
6601
+ }>>>;
6100
6602
  environmentId: PublicIdSchema;
6101
6603
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
6102
6604
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -6111,6 +6613,7 @@ export declare const publicContractsV1: {
6111
6613
  createSuite: "createSuite";
6112
6614
  generativeSuite: "generativeSuite";
6113
6615
  }>>;
6616
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
6114
6617
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
6115
6618
  }, z.core.$strip>;
6116
6619
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -6157,6 +6660,7 @@ export declare const publicContractsV1: {
6157
6660
  createSuite: "createSuite";
6158
6661
  generativeSuite: "generativeSuite";
6159
6662
  }>>;
6663
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
6160
6664
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
6161
6665
  }, z.core.$strip>;
6162
6666
  cadence: z.ZodEnum<{
@@ -6173,6 +6677,15 @@ export declare const publicContractsV1: {
6173
6677
  saturday: "saturday";
6174
6678
  sunday: "sunday";
6175
6679
  }>>;
6680
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
6681
+ monday: "monday";
6682
+ tuesday: "tuesday";
6683
+ wednesday: "wednesday";
6684
+ thursday: "thursday";
6685
+ friday: "friday";
6686
+ saturday: "saturday";
6687
+ sunday: "sunday";
6688
+ }>>>;
6176
6689
  environmentId: PublicIdSchema;
6177
6690
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
6178
6691
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -6187,6 +6700,7 @@ export declare const publicContractsV1: {
6187
6700
  createSuite: "createSuite";
6188
6701
  generativeSuite: "generativeSuite";
6189
6702
  }>>;
6703
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
6190
6704
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
6191
6705
  }, z.core.$strip>;
6192
6706
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -6226,6 +6740,7 @@ export declare const publicContractsV1: {
6226
6740
  createSuite: "createSuite";
6227
6741
  generativeSuite: "generativeSuite";
6228
6742
  }>>;
6743
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
6229
6744
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
6230
6745
  }, z.core.$strip>;
6231
6746
  cadence: z.ZodEnum<{
@@ -6242,6 +6757,15 @@ export declare const publicContractsV1: {
6242
6757
  saturday: "saturday";
6243
6758
  sunday: "sunday";
6244
6759
  }>>;
6760
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
6761
+ monday: "monday";
6762
+ tuesday: "tuesday";
6763
+ wednesday: "wednesday";
6764
+ thursday: "thursday";
6765
+ friday: "friday";
6766
+ saturday: "saturday";
6767
+ sunday: "sunday";
6768
+ }>>>;
6245
6769
  environmentId: PublicIdSchema;
6246
6770
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
6247
6771
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -6258,6 +6782,7 @@ export declare const publicContractsV1: {
6258
6782
  createSuite: "createSuite";
6259
6783
  generativeSuite: "generativeSuite";
6260
6784
  }>>;
6785
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
6261
6786
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
6262
6787
  }, z.core.$strip>;
6263
6788
  branchPattern: z.ZodOptional<z.ZodString>;
@@ -6281,6 +6806,7 @@ export declare const publicContractsV1: {
6281
6806
  createSuite: "createSuite";
6282
6807
  generativeSuite: "generativeSuite";
6283
6808
  }>>;
6809
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
6284
6810
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
6285
6811
  }, z.core.$strip>;
6286
6812
  cadence: z.ZodEnum<{
@@ -6297,6 +6823,15 @@ export declare const publicContractsV1: {
6297
6823
  saturday: "saturday";
6298
6824
  sunday: "sunday";
6299
6825
  }>>;
6826
+ daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodEnum<{
6827
+ monday: "monday";
6828
+ tuesday: "tuesday";
6829
+ wednesday: "wednesday";
6830
+ thursday: "thursday";
6831
+ friday: "friday";
6832
+ saturday: "saturday";
6833
+ sunday: "sunday";
6834
+ }>>>;
6300
6835
  environmentId: PublicIdSchema;
6301
6836
  minuteOfHour: z.ZodOptional<z.ZodNumber>;
6302
6837
  timeOfDay: z.ZodOptional<z.ZodString>;
@@ -6311,6 +6846,7 @@ export declare const publicContractsV1: {
6311
6846
  createSuite: "createSuite";
6312
6847
  generativeSuite: "generativeSuite";
6313
6848
  }>>;
6849
+ runConcurrencyLimit: z.ZodOptional<z.ZodString>;
6314
6850
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
6315
6851
  }, z.core.$strip>;
6316
6852
  branchPattern: z.ZodOptional<z.ZodString>;