@qawolf/api-contracts 0.51.0 → 0.53.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 (261) hide show
  1. package/README.md +4 -0
  2. package/dist/v1/agent/get.d.ts +8 -1
  3. package/dist/v1/agent/get.d.ts.map +1 -1
  4. package/dist/v1/agent/get.js +16 -2
  5. package/dist/v1/agent/get.js.map +1 -1
  6. package/dist/v1/agent/send.d.ts +6 -0
  7. package/dist/v1/agent/send.d.ts.map +1 -1
  8. package/dist/v1/agent/send.js +11 -0
  9. package/dist/v1/agent/send.js.map +1 -1
  10. package/dist/v1/automate/index.d.ts +5 -0
  11. package/dist/v1/automate/index.d.ts.map +1 -1
  12. package/dist/v1/automate/index.js +5 -0
  13. package/dist/v1/automate/index.js.map +1 -1
  14. package/dist/v1/definition.d.ts +7 -0
  15. package/dist/v1/definition.d.ts.map +1 -1
  16. package/dist/v1/deployment/reportStatus.d.ts +54 -0
  17. package/dist/v1/deployment/reportStatus.d.ts.map +1 -0
  18. package/dist/v1/deployment/reportStatus.js +143 -0
  19. package/dist/v1/deployment/reportStatus.js.map +1 -0
  20. package/dist/v1/email/find.d.ts +5 -0
  21. package/dist/v1/email/find.d.ts.map +1 -1
  22. package/dist/v1/email/find.js +5 -0
  23. package/dist/v1/email/find.js.map +1 -1
  24. package/dist/v1/email/get.d.ts +5 -0
  25. package/dist/v1/email/get.d.ts.map +1 -1
  26. package/dist/v1/email/get.js +5 -0
  27. package/dist/v1/email/get.js.map +1 -1
  28. package/dist/v1/email/getAttachment.d.ts +5 -0
  29. package/dist/v1/email/getAttachment.d.ts.map +1 -1
  30. package/dist/v1/email/getAttachment.js +5 -0
  31. package/dist/v1/email/getAttachment.js.map +1 -1
  32. package/dist/v1/email/listAddresses.d.ts +5 -0
  33. package/dist/v1/email/listAddresses.d.ts.map +1 -1
  34. package/dist/v1/email/listAddresses.js +5 -0
  35. package/dist/v1/email/listAddresses.js.map +1 -1
  36. package/dist/v1/email/registerAddress.d.ts +5 -0
  37. package/dist/v1/email/registerAddress.d.ts.map +1 -1
  38. package/dist/v1/email/registerAddress.js +5 -0
  39. package/dist/v1/email/registerAddress.js.map +1 -1
  40. package/dist/v1/email/send.d.ts +5 -0
  41. package/dist/v1/email/send.d.ts.map +1 -1
  42. package/dist/v1/email/send.js +5 -0
  43. package/dist/v1/email/send.js.map +1 -1
  44. package/dist/v1/environment/deleteVariable.d.ts +5 -0
  45. package/dist/v1/environment/deleteVariable.d.ts.map +1 -1
  46. package/dist/v1/environment/deleteVariable.js +5 -0
  47. package/dist/v1/environment/deleteVariable.js.map +1 -1
  48. package/dist/v1/environment/find.d.ts +6 -1
  49. package/dist/v1/environment/find.d.ts.map +1 -1
  50. package/dist/v1/environment/find.js +5 -0
  51. package/dist/v1/environment/find.js.map +1 -1
  52. package/dist/v1/environment/getVariable.d.ts +5 -0
  53. package/dist/v1/environment/getVariable.d.ts.map +1 -1
  54. package/dist/v1/environment/getVariable.js +5 -0
  55. package/dist/v1/environment/getVariable.js.map +1 -1
  56. package/dist/v1/environment/index.d.ts +23 -3
  57. package/dist/v1/environment/index.d.ts.map +1 -1
  58. package/dist/v1/environment/index.js +21 -1
  59. package/dist/v1/environment/index.js.map +1 -1
  60. package/dist/v1/environment/resource.d.ts +1 -1
  61. package/dist/v1/environment/update.d.ts +6 -1
  62. package/dist/v1/environment/update.d.ts.map +1 -1
  63. package/dist/v1/environment/update.js +5 -0
  64. package/dist/v1/environment/update.js.map +1 -1
  65. package/dist/v1/file/index.d.ts +46 -0
  66. package/dist/v1/file/index.d.ts.map +1 -0
  67. package/dist/v1/file/index.js +8 -0
  68. package/dist/v1/file/index.js.map +1 -0
  69. package/dist/v1/file/path.d.ts +6 -0
  70. package/dist/v1/file/path.d.ts.map +1 -0
  71. package/dist/v1/file/path.js +17 -0
  72. package/dist/v1/file/path.js.map +1 -0
  73. package/dist/v1/file/requestDownload.d.ts +24 -0
  74. package/dist/v1/file/requestDownload.d.ts.map +1 -0
  75. package/dist/v1/file/requestDownload.js +32 -0
  76. package/dist/v1/file/requestDownload.js.map +1 -0
  77. package/dist/v1/file/requestUpload.d.ts +25 -0
  78. package/dist/v1/file/requestUpload.d.ts.map +1 -0
  79. package/dist/v1/file/requestUpload.js +37 -0
  80. package/dist/v1/file/requestUpload.js.map +1 -0
  81. package/dist/v1/flow/addTag.d.ts +5 -0
  82. package/dist/v1/flow/addTag.d.ts.map +1 -1
  83. package/dist/v1/flow/addTag.js +5 -0
  84. package/dist/v1/flow/addTag.js.map +1 -1
  85. package/dist/v1/flow/index.d.ts +5 -0
  86. package/dist/v1/flow/index.d.ts.map +1 -1
  87. package/dist/v1/flow/index.js +5 -0
  88. package/dist/v1/flow/index.js.map +1 -1
  89. package/dist/v1/flow/removeTag.d.ts +5 -0
  90. package/dist/v1/flow/removeTag.d.ts.map +1 -1
  91. package/dist/v1/flow/removeTag.js +5 -0
  92. package/dist/v1/flow/removeTag.js.map +1 -1
  93. package/dist/v1/flow/update.d.ts +5 -0
  94. package/dist/v1/flow/update.d.ts.map +1 -1
  95. package/dist/v1/flow/update.js +5 -0
  96. package/dist/v1/flow/update.js.map +1 -1
  97. package/dist/v1/ids.d.ts +3 -2
  98. package/dist/v1/ids.d.ts.map +1 -1
  99. package/dist/v1/ids.js +1 -0
  100. package/dist/v1/ids.js.map +1 -1
  101. package/dist/v1/index.d.ts +1620 -32
  102. package/dist/v1/index.d.ts.map +1 -1
  103. package/dist/v1/index.js +17 -8
  104. package/dist/v1/index.js.map +1 -1
  105. package/dist/v1/issue/addFlows.d.ts +5 -0
  106. package/dist/v1/issue/addFlows.d.ts.map +1 -1
  107. package/dist/v1/issue/addFlows.js +5 -0
  108. package/dist/v1/issue/addFlows.js.map +1 -1
  109. package/dist/v1/issue/create.d.ts +5 -0
  110. package/dist/v1/issue/create.d.ts.map +1 -1
  111. package/dist/v1/issue/create.js +5 -0
  112. package/dist/v1/issue/create.js.map +1 -1
  113. package/dist/v1/issue/index.d.ts +10 -0
  114. package/dist/v1/issue/index.d.ts.map +1 -1
  115. package/dist/v1/issue/index.js +10 -0
  116. package/dist/v1/issue/index.js.map +1 -1
  117. package/dist/v1/issue/removeFlows.d.ts +5 -0
  118. package/dist/v1/issue/removeFlows.d.ts.map +1 -1
  119. package/dist/v1/issue/removeFlows.js +5 -0
  120. package/dist/v1/issue/removeFlows.js.map +1 -1
  121. package/dist/v1/issue/update.d.ts +5 -0
  122. package/dist/v1/issue/update.d.ts.map +1 -1
  123. package/dist/v1/issue/update.js +5 -0
  124. package/dist/v1/issue/update.js.map +1 -1
  125. package/dist/v1/mcpToolDescription.d.ts +11 -0
  126. package/dist/v1/mcpToolDescription.d.ts.map +1 -0
  127. package/dist/v1/mcpToolDescription.js +19 -0
  128. package/dist/v1/mcpToolDescription.js.map +1 -0
  129. package/dist/v1/run/diagnose.d.ts +5 -0
  130. package/dist/v1/run/diagnose.d.ts.map +1 -1
  131. package/dist/v1/run/diagnose.js +5 -0
  132. package/dist/v1/run/diagnose.js.map +1 -1
  133. package/dist/v1/run/find.d.ts +5 -0
  134. package/dist/v1/run/find.d.ts.map +1 -1
  135. package/dist/v1/run/find.js +5 -0
  136. package/dist/v1/run/find.js.map +1 -1
  137. package/dist/v1/run/get.d.ts +5 -0
  138. package/dist/v1/run/get.d.ts.map +1 -1
  139. package/dist/v1/run/get.js +5 -0
  140. package/dist/v1/run/get.js.map +1 -1
  141. package/dist/v1/run/index.d.ts +5 -0
  142. package/dist/v1/run/index.d.ts.map +1 -1
  143. package/dist/v1/run/index.js +5 -0
  144. package/dist/v1/run/index.js.map +1 -1
  145. package/dist/v1/run/reattempt.d.ts +5 -0
  146. package/dist/v1/run/reattempt.d.ts.map +1 -1
  147. package/dist/v1/run/reattempt.js +5 -0
  148. package/dist/v1/run/reattempt.js.map +1 -1
  149. package/dist/v1/run/stop.d.ts +6 -1
  150. package/dist/v1/run/stop.d.ts.map +1 -1
  151. package/dist/v1/run/stop.js +6 -1
  152. package/dist/v1/run/stop.js.map +1 -1
  153. package/dist/v1/runner/evaluateSnippet.d.ts +6 -1
  154. package/dist/v1/runner/evaluateSnippet.d.ts.map +1 -1
  155. package/dist/v1/runner/evaluateSnippet.js +5 -0
  156. package/dist/v1/runner/evaluateSnippet.js.map +1 -1
  157. package/dist/v1/runner/get.d.ts +5 -0
  158. package/dist/v1/runner/get.d.ts.map +1 -1
  159. package/dist/v1/runner/get.js +5 -0
  160. package/dist/v1/runner/get.js.map +1 -1
  161. package/dist/v1/runner/highlightSelector.d.ts +5 -0
  162. package/dist/v1/runner/highlightSelector.d.ts.map +1 -1
  163. package/dist/v1/runner/highlightSelector.js +5 -0
  164. package/dist/v1/runner/highlightSelector.js.map +1 -1
  165. package/dist/v1/runner/identity.d.ts +1 -0
  166. package/dist/v1/runner/identity.d.ts.map +1 -1
  167. package/dist/v1/runner/identity.js +3 -0
  168. package/dist/v1/runner/identity.js.map +1 -1
  169. package/dist/v1/runner/importPackage.d.ts +5 -0
  170. package/dist/v1/runner/importPackage.d.ts.map +1 -1
  171. package/dist/v1/runner/importPackage.js +5 -0
  172. package/dist/v1/runner/importPackage.js.map +1 -1
  173. package/dist/v1/runner/index.d.ts +11 -0
  174. package/dist/v1/runner/index.d.ts.map +1 -1
  175. package/dist/v1/runner/index.js +10 -0
  176. package/dist/v1/runner/index.js.map +1 -1
  177. package/dist/v1/runner/inspect.d.ts +6 -0
  178. package/dist/v1/runner/inspect.d.ts.map +1 -1
  179. package/dist/v1/runner/inspect.js +7 -2
  180. package/dist/v1/runner/inspect.js.map +1 -1
  181. package/dist/v1/runner/inspectMobile.d.ts +27 -1
  182. package/dist/v1/runner/inspectMobile.d.ts.map +1 -1
  183. package/dist/v1/runner/inspectMobile.js +44 -22
  184. package/dist/v1/runner/inspectMobile.js.map +1 -1
  185. package/dist/v1/runner/list.d.ts +6 -0
  186. package/dist/v1/runner/list.d.ts.map +1 -1
  187. package/dist/v1/runner/list.js +5 -0
  188. package/dist/v1/runner/list.js.map +1 -1
  189. package/dist/v1/runner/performAction.d.ts +5 -0
  190. package/dist/v1/runner/performAction.d.ts.map +1 -1
  191. package/dist/v1/runner/performAction.js +5 -0
  192. package/dist/v1/runner/performAction.js.map +1 -1
  193. package/dist/v1/runner/promoteSnapshot.d.ts +5 -0
  194. package/dist/v1/runner/promoteSnapshot.d.ts.map +1 -1
  195. package/dist/v1/runner/promoteSnapshot.js +5 -0
  196. package/dist/v1/runner/promoteSnapshot.js.map +1 -1
  197. package/dist/v1/runner/readJournal.d.ts +5 -0
  198. package/dist/v1/runner/readJournal.d.ts.map +1 -1
  199. package/dist/v1/runner/readJournal.js +5 -0
  200. package/dist/v1/runner/readJournal.js.map +1 -1
  201. package/dist/v1/runner/runFlow.d.ts +5 -0
  202. package/dist/v1/runner/runFlow.d.ts.map +1 -1
  203. package/dist/v1/runner/runFlow.js +5 -0
  204. package/dist/v1/runner/runFlow.js.map +1 -1
  205. package/dist/v1/runner/stopRun.d.ts +5 -0
  206. package/dist/v1/runner/stopRun.d.ts.map +1 -1
  207. package/dist/v1/runner/stopRun.js +5 -0
  208. package/dist/v1/runner/stopRun.js.map +1 -1
  209. package/dist/v1/runner/takeScreenshot.d.ts +6 -1
  210. package/dist/v1/runner/takeScreenshot.d.ts.map +1 -1
  211. package/dist/v1/runner/takeScreenshot.js +6 -1
  212. package/dist/v1/runner/takeScreenshot.js.map +1 -1
  213. package/dist/v1/sharedSchemas.d.ts +18 -0
  214. package/dist/v1/sharedSchemas.d.ts.map +1 -0
  215. package/dist/v1/sharedSchemas.js +17 -0
  216. package/dist/v1/sharedSchemas.js.map +1 -0
  217. package/dist/v1/tag/index.d.ts +5 -0
  218. package/dist/v1/tag/index.d.ts.map +1 -1
  219. package/dist/v1/tag/index.js +5 -0
  220. package/dist/v1/tag/index.js.map +1 -1
  221. package/dist/v1/tag/list.d.ts +5 -0
  222. package/dist/v1/tag/list.d.ts.map +1 -1
  223. package/dist/v1/tag/list.js +5 -0
  224. package/dist/v1/tag/list.js.map +1 -1
  225. package/dist/v1/trigger/configuration.d.ts +99 -0
  226. package/dist/v1/trigger/configuration.d.ts.map +1 -0
  227. package/dist/v1/trigger/configuration.js +125 -0
  228. package/dist/v1/trigger/configuration.js.map +1 -0
  229. package/dist/v1/trigger/configurationRules.d.ts +35 -0
  230. package/dist/v1/trigger/configurationRules.d.ts.map +1 -0
  231. package/dist/v1/trigger/configurationRules.js +92 -0
  232. package/dist/v1/trigger/configurationRules.js.map +1 -0
  233. package/dist/v1/trigger/create.d.ts +114 -0
  234. package/dist/v1/trigger/create.d.ts.map +1 -0
  235. package/dist/v1/trigger/create.js +44 -0
  236. package/dist/v1/trigger/create.js.map +1 -0
  237. package/dist/v1/trigger/find.d.ts +75 -0
  238. package/dist/v1/trigger/find.d.ts.map +1 -0
  239. package/dist/v1/trigger/find.js +35 -0
  240. package/dist/v1/trigger/find.js.map +1 -0
  241. package/dist/v1/trigger/get.d.ts +73 -0
  242. package/dist/v1/trigger/get.d.ts.map +1 -0
  243. package/dist/v1/trigger/get.js +19 -0
  244. package/dist/v1/trigger/get.js.map +1 -0
  245. package/dist/v1/trigger/index.d.ts +9 -0
  246. package/dist/v1/trigger/index.d.ts.map +1 -0
  247. package/dist/v1/trigger/index.js +9 -0
  248. package/dist/v1/trigger/index.js.map +1 -0
  249. package/dist/v1/trigger/lifecycle.d.ts +159 -0
  250. package/dist/v1/trigger/lifecycle.d.ts.map +1 -0
  251. package/dist/v1/trigger/lifecycle.js +56 -0
  252. package/dist/v1/trigger/lifecycle.js.map +1 -0
  253. package/dist/v1/trigger/resource.d.ts +58 -0
  254. package/dist/v1/trigger/resource.d.ts.map +1 -0
  255. package/dist/v1/trigger/resource.js +52 -0
  256. package/dist/v1/trigger/resource.js.map +1 -0
  257. package/dist/v1/trigger/update.d.ts +113 -0
  258. package/dist/v1/trigger/update.d.ts.map +1 -0
  259. package/dist/v1/trigger/update.js +43 -0
  260. package/dist/v1/trigger/update.js.map +1 -0
  261. package/package.json +1 -1
@@ -1,13 +1,5 @@
1
1
  import type { z } from "zod";
2
- export { type AgentSessionStatus, agentSessionStatusSchema, } from "./agent/status.js";
3
- export { type AuthConfigResponse, authConfigResponse } from "./auth/config.js";
4
- export type { AnyPublicApiContract, PublicApiContract, PublicApiContractKind, } from "./definition.js";
5
- export { type EmailDirection, emailDirectionSchema } from "./email/resource.js";
6
- export { type IdentityResponse, identityResponse } from "./identity/index.js";
7
- export { type IdentityOrganizationsResponse, identityOrganizationsResponse, } from "./identity/organizations.js";
8
- export { type PublicIdSchema, type PublicIdSchemas, defaultIdSchemas, } from "./ids.js";
9
- export { makeFlowSelectionSchema } from "./run/index.js";
10
- export * from "./runnerReexports.js";
2
+ export * from "./sharedSchemas.js";
11
3
  import type { AnyPublicApiContract } from "./definition.js";
12
4
  import { type PublicIdSchema, type PublicIdSchemasOf } from "./ids.js";
13
5
  export type PublicApiInput<Api extends AnyPublicApiContract> = z.input<Api["input"]>;
@@ -19,16 +11,23 @@ export type PublicApiOutput<Api extends AnyPublicApiContract> = z.infer<Api["out
19
11
  * the same factory with its own strict id schemas, so the contract shape can
20
12
  * never drift between the two while validation strictness stays server-owned.
21
13
  */
22
- export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, FlowId extends PublicIdSchema, RunId extends PublicIdSchema, AutomationId extends PublicIdSchema = PublicIdSchema, IssueId extends PublicIdSchema = PublicIdSchema, WorkspaceId extends PublicIdSchema = PublicIdSchema, AiTaskId extends PublicIdSchema = PublicIdSchema, ChatSessionId extends PublicIdSchema = PublicIdSchema>(ids: PublicIdSchemasOf<EnvironmentId, FlowId, RunId, AutomationId, IssueId, WorkspaceId, AiTaskId, ChatSessionId>) => {
14
+ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, FlowId extends PublicIdSchema, RunId extends PublicIdSchema, AutomationId extends PublicIdSchema = PublicIdSchema, IssueId extends PublicIdSchema = PublicIdSchema, WorkspaceId extends PublicIdSchema = PublicIdSchema, AiTaskId extends PublicIdSchema = PublicIdSchema, ChatSessionId extends PublicIdSchema = PublicIdSchema, TriggerId extends PublicIdSchema = PublicIdSchema>(ids: PublicIdSchemasOf<EnvironmentId, FlowId, RunId, AutomationId, IssueId, WorkspaceId, AiTaskId, ChatSessionId, TriggerId>) => {
23
15
  agent: {
24
16
  get: {
25
- readonly description: "Monitor a QA Wolf AI session by reading its status and replies. After agent.send, share the returned session URL before monitoring. Wait 30 to 60 seconds between checks; do not call this in a tight loop. Replies accumulate, so compare them with what you have already seen. Continue monitoring silently when the status and replies are unchanged; do not narrate waiting, announce the next check, or ask whether to keep monitoring. Report only substantive new progress, questions, blockers, or the final outcome. A status of \"waiting-for-you\" means the last reply is a question the work is blocked on, and answering it with agent.send is what unblocks it. Surface an explicit request for user input even if the status still says \"working\". Include the session URL when reporting a blocker or final outcome. On \"completed\", stop status checks and verify the requested result before claiming success. For new flows, validation, publication in the target environment, and readiness are separate checks; a Git push or final reply does not prove the flow is active. If every requested result is verified but status remains \"working\", report the mismatch and stop monitoring. Stop on \"failed\" or \"cancelled\" and report any confirmed partial result.";
17
+ readonly annotations: {
18
+ readonly destructiveHint: false;
19
+ readonly openWorldHint: false;
20
+ readonly readOnlyHint: true;
21
+ };
22
+ readonly description: "Monitor a QA Wolf AI session by reading its status and replies. After agent.send, share the returned session URL before monitoring. Wait 30 to 60 seconds between checks; do not call this in a tight loop. Pass the nextCursor from one response as the cursor on the next check; it then reads only what is new, and only for the session that minted it. Continue monitoring silently when the status is unchanged and no replies come back; do not narrate waiting, announce the next check, or ask whether to keep monitoring. Report only substantive new progress, questions, blockers, or the final outcome. A status of \"waiting-for-you\" means the last reply is a question the work is blocked on, and answering it with agent.send is what unblocks it. Surface an explicit request for user input even if the status still says \"working\". Include the session URL when reporting a blocker or final outcome. On \"completed\", stop status checks and verify the requested result before claiming success. For new flows, validation, publication in the target environment, and readiness are separate checks; a Git push or final reply does not prove the flow is active. If every requested result is verified but status remains \"working\", report the mismatch and stop monitoring. Stop on \"failed\" or \"cancelled\" and report any confirmed partial result.";
26
23
  readonly input: z.ZodObject<{
24
+ cursor: z.ZodOptional<z.ZodString>;
27
25
  sessionId: ChatSessionId;
28
26
  }, z.core.$strip>;
29
27
  readonly kind: "read";
30
28
  readonly name: "agent.get";
31
29
  readonly output: z.ZodObject<{
30
+ nextCursor: z.ZodString;
32
31
  replies: z.ZodArray<z.ZodObject<{
33
32
  askedAt: z.ZodISODateTime;
34
33
  choices: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -46,9 +45,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
46
45
  }, z.core.$strip>;
47
46
  };
48
47
  send: {
48
+ readonly annotations: {
49
+ readonly destructiveHint: true;
50
+ readonly openWorldHint: true;
51
+ readonly readOnlyHint: false;
52
+ };
49
53
  readonly description: "Start or continue work with the QA Wolf AI and return a live session URL to share with the user. Use it to cover a user journey, investigate a failing run, or fix a broken flow. This is the one verb that starts work from nothing: every other write acts on a flow, run or issue that already exists. Returns sessionId, status, and url as soon as the request is accepted; work can take minutes to tens of minutes. After each send, make the next action a normal user-visible assistant message containing the exact returned url, before any tool call or wait. Tool output and internal reasoning do not count as sharing the link. Do not run a timer or monitoring call alongside this send. Acceptance does not mean the work is complete. Then monitor the session with agent.get, reporting new progress, blockers, and the final outcome rather than unchanged status. Send here again to answer a question or add context to the same session.";
50
54
  readonly input: z.ZodObject<{
51
55
  environmentId: z.ZodOptional<PublicIdSchema>;
56
+ filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
52
57
  message: z.ZodString;
53
58
  sessionId: z.ZodOptional<ChatSessionId>;
54
59
  workspaceId: z.ZodOptional<WorkspaceId>;
@@ -69,6 +74,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
69
74
  };
70
75
  };
71
76
  automate: {
77
+ readonly annotations: {
78
+ readonly destructiveHint: true;
79
+ readonly openWorldHint: true;
80
+ readonly readOnlyHint: false;
81
+ };
72
82
  readonly description: "Request automation for draft flows. First create a named local .flow.ts draft for every requested journey that does not already have a matching draft; never reuse a generic starter or placeholder. Each new draft must start with a JSDoc Goal: description, import flow from @qawolf/flows/web, and use export default flow(...); a comment-only file or direct test(...) call is not a valid draft. Commit and push all changes with Git to publish them, then list remote drafts to resolve every selected ID. Do not use patch to create or rename a selected flow. Finally make one automation request containing all requested flow IDs.";
73
83
  readonly input: z.ZodObject<{
74
84
  aiTaskId: z.ZodOptional<AiTaskId>;
@@ -85,6 +95,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
85
95
  };
86
96
  email: {
87
97
  find: {
98
+ readonly annotations: {
99
+ readonly destructiveHint: false;
100
+ readonly openWorldHint: false;
101
+ readonly readOnlyHint: true;
102
+ };
88
103
  readonly description: "List the workspace's inbox, or its sent mail, newest first. Read a message body with email.get.";
89
104
  readonly input: z.ZodObject<{
90
105
  cursor: z.ZodOptional<z.ZodString>;
@@ -122,6 +137,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
122
137
  }, z.core.$strip>;
123
138
  };
124
139
  get: {
140
+ readonly annotations: {
141
+ readonly destructiveHint: false;
142
+ readonly openWorldHint: false;
143
+ readonly readOnlyHint: true;
144
+ };
125
145
  readonly description: "Read one email of the workspace, with its plain text and HTML bodies. Use it to pull a sign-in code or a verification link out of a message.";
126
146
  readonly input: z.ZodObject<{
127
147
  id: z.ZodString;
@@ -169,6 +189,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
169
189
  }, z.core.$strip>;
170
190
  };
171
191
  getAttachment: {
192
+ readonly annotations: {
193
+ readonly destructiveHint: false;
194
+ readonly openWorldHint: false;
195
+ readonly readOnlyHint: true;
196
+ };
172
197
  readonly description: "Read one attachment of a workspace email as base64 content, by file name or by position. email.get lists both.";
173
198
  readonly input: z.ZodObject<{
174
199
  fileName: z.ZodOptional<z.ZodString>;
@@ -187,6 +212,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
187
212
  }, z.core.$strip>;
188
213
  };
189
214
  listAddresses: {
215
+ readonly annotations: {
216
+ readonly destructiveHint: false;
217
+ readonly openWorldHint: false;
218
+ readonly readOnlyHint: true;
219
+ };
190
220
  readonly description: "List the workspace's inbox addresses, alphabetical. A flow can sign up with a plus-suffixed form of any of them, and email.find reads what arrives.";
191
221
  readonly input: z.ZodObject<{
192
222
  cursor: z.ZodOptional<z.ZodString>;
@@ -205,6 +235,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
205
235
  }, z.core.$strip>;
206
236
  };
207
237
  registerAddress: {
238
+ readonly annotations: {
239
+ readonly destructiveHint: false;
240
+ readonly openWorldHint: false;
241
+ readonly readOnlyHint: false;
242
+ };
208
243
  readonly description: "Register an inbox address for the workspace. Registering an address the workspace already has changes nothing. A refusal names the domains the workspace can use.";
209
244
  readonly input: z.ZodObject<{
210
245
  address: z.ZodEmail;
@@ -219,6 +254,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
219
254
  }, z.core.$strip>;
220
255
  };
221
256
  send: {
257
+ readonly annotations: {
258
+ readonly destructiveHint: true;
259
+ readonly openWorldHint: true;
260
+ readonly readOnlyHint: false;
261
+ };
222
262
  readonly description: "Send an email from one of the workspace's inbox addresses, for example to exercise a flow that reacts to incoming mail. Returns the sent email; read it back with email.get.";
223
263
  readonly input: z.ZodObject<{
224
264
  attachments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBase64>>;
@@ -257,7 +297,12 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
257
297
  };
258
298
  environment: {
259
299
  create: {
260
- readonly description: "Create an environment on the caller's team and return it in the environment.get shape.";
300
+ readonly annotations: {
301
+ readonly destructiveHint: false;
302
+ readonly openWorldHint: true;
303
+ readonly readOnlyHint: false;
304
+ };
305
+ readonly description: "Create an environment on the caller's team and return it in the environment.get shape. This can also create a branch on the team's connected Git provider.";
261
306
  readonly input: z.ZodObject<{
262
307
  name: z.ZodString;
263
308
  workspaceId: z.ZodOptional<WorkspaceId>;
@@ -283,9 +328,9 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
283
328
  name: z.ZodString;
284
329
  runConcurrencyLimit: z.ZodString;
285
330
  status: z.ZodEnum<{
286
- ready: "ready";
287
331
  blocked: "blocked";
288
332
  "needs-investigation": "needs-investigation";
333
+ ready: "ready";
289
334
  running: "running";
290
335
  }>;
291
336
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -293,6 +338,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
293
338
  }, z.core.$strip>;
294
339
  };
295
340
  deleteVariable: {
341
+ readonly annotations: {
342
+ readonly destructiveHint: true;
343
+ readonly openWorldHint: false;
344
+ readonly readOnlyHint: false;
345
+ };
296
346
  readonly description: "Remove one environment variable by name. Succeeds whether or not the variable existed.";
297
347
  readonly input: z.ZodObject<{
298
348
  environmentId: PublicIdSchema;
@@ -305,6 +355,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
305
355
  }, z.core.$strip>;
306
356
  };
307
357
  find: {
358
+ readonly annotations: {
359
+ readonly destructiveHint: false;
360
+ readonly openWorldHint: false;
361
+ readonly readOnlyHint: true;
362
+ };
308
363
  readonly description: "List the team's environments, newest first.";
309
364
  readonly input: z.ZodObject<{
310
365
  cursor: z.ZodOptional<z.ZodString>;
@@ -339,9 +394,9 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
339
394
  name: z.ZodString;
340
395
  runConcurrencyLimit: z.ZodString;
341
396
  status: z.ZodEnum<{
342
- ready: "ready";
343
397
  blocked: "blocked";
344
398
  "needs-investigation": "needs-investigation";
399
+ ready: "ready";
345
400
  running: "running";
346
401
  }>;
347
402
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -351,6 +406,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
351
406
  }, z.core.$strip>;
352
407
  };
353
408
  get: {
409
+ readonly annotations: {
410
+ readonly destructiveHint: false;
411
+ readonly openWorldHint: false;
412
+ readonly readOnlyHint: true;
413
+ };
354
414
  readonly description: "Read a single environment's name, kind, standing run health, flow-code branch and reconciliation state, run concurrency limit, and termination state. If flowCodeBranch exists, use its syncStatus for Git reconciliation and read lastSyncedCommitHash only when syncStatus is reconciled.";
355
415
  readonly input: z.ZodObject<{
356
416
  environmentId: PublicIdSchema;
@@ -376,9 +436,9 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
376
436
  name: z.ZodString;
377
437
  runConcurrencyLimit: z.ZodString;
378
438
  status: z.ZodEnum<{
379
- ready: "ready";
380
439
  blocked: "blocked";
381
440
  "needs-investigation": "needs-investigation";
441
+ ready: "ready";
382
442
  running: "running";
383
443
  }>;
384
444
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -386,6 +446,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
386
446
  }, z.core.$strip>;
387
447
  };
388
448
  getVariable: {
449
+ readonly annotations: {
450
+ readonly destructiveHint: false;
451
+ readonly openWorldHint: false;
452
+ readonly readOnlyHint: true;
453
+ };
389
454
  readonly description: "Read the values of named environment variables in one call. Values are secrets. Names that do not exist go to missingNames and do not fail the call.";
390
455
  readonly input: z.ZodObject<{
391
456
  environmentId: PublicIdSchema;
@@ -402,6 +467,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
402
467
  }, z.core.$strip>;
403
468
  };
404
469
  listVariableNames: {
470
+ readonly annotations: {
471
+ readonly destructiveHint: false;
472
+ readonly openWorldHint: false;
473
+ readonly readOnlyHint: true;
474
+ };
405
475
  readonly description: "Use this to answer which QA Wolf environment variables are available to test code. Returns names only; values never leave the server.";
406
476
  readonly input: z.ZodObject<{
407
477
  environmentId: PublicIdSchema;
@@ -413,6 +483,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
413
483
  }, z.core.$strip>;
414
484
  };
415
485
  setVariable: {
486
+ readonly annotations: {
487
+ readonly destructiveHint: true;
488
+ readonly openWorldHint: false;
489
+ readonly readOnlyHint: false;
490
+ };
416
491
  readonly description: "Create or replace an environment variable. If the user asks to create one for \"my email\" without naming it, use DEFAULT_EMAIL. The value is never returned.";
417
492
  readonly input: z.ZodObject<{
418
493
  environmentId: PublicIdSchema;
@@ -426,6 +501,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
426
501
  }, z.core.$strip>;
427
502
  };
428
503
  update: {
504
+ readonly annotations: {
505
+ readonly destructiveHint: true;
506
+ readonly openWorldHint: false;
507
+ readonly readOnlyHint: false;
508
+ };
429
509
  readonly description: "Update an environment owned by the caller's team and return it in the environment.get shape. Omitted fields remain unchanged.";
430
510
  readonly input: z.ZodObject<{
431
511
  environmentId: PublicIdSchema;
@@ -453,9 +533,9 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
453
533
  name: z.ZodString;
454
534
  runConcurrencyLimit: z.ZodString;
455
535
  status: z.ZodEnum<{
456
- ready: "ready";
457
536
  blocked: "blocked";
458
537
  "needs-investigation": "needs-investigation";
538
+ ready: "ready";
459
539
  running: "running";
460
540
  }>;
461
541
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -463,8 +543,54 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
463
543
  }, z.core.$strip>;
464
544
  };
465
545
  };
546
+ file: {
547
+ requestDownload: {
548
+ readonly annotations: {
549
+ readonly destructiveHint: false;
550
+ readonly openWorldHint: false;
551
+ readonly readOnlyHint: true;
552
+ };
553
+ readonly description: "Get a URL for reading a file out of the caller's team storage. Answers 404 when nothing is stored at that path.";
554
+ readonly input: z.ZodObject<{
555
+ filePath: z.ZodString;
556
+ workspaceId: z.ZodOptional<WorkspaceId>;
557
+ }, z.core.$strip>;
558
+ readonly kind: "read";
559
+ readonly name: "file.requestDownload";
560
+ readonly output: z.ZodObject<{
561
+ expiresAt: z.ZodISODateTime;
562
+ path: z.ZodString;
563
+ readUrl: z.ZodString;
564
+ }, z.core.$strip>;
565
+ };
566
+ requestUpload: {
567
+ readonly annotations: {
568
+ readonly destructiveHint: true;
569
+ readonly openWorldHint: false;
570
+ readonly readOnlyHint: false;
571
+ };
572
+ readonly description: "Get a URL to put a file into team storage: a spreadsheet of journeys, anything too large to paste. PUT with the returned contentType, then name the path in filePaths.";
573
+ readonly input: z.ZodObject<{
574
+ fileName: z.ZodString;
575
+ workspaceId: z.ZodOptional<WorkspaceId>;
576
+ }, z.core.$strip>;
577
+ readonly kind: "write";
578
+ readonly name: "file.requestUpload";
579
+ readonly output: z.ZodObject<{
580
+ contentType: z.ZodString;
581
+ expiresAt: z.ZodISODateTime;
582
+ path: z.ZodString;
583
+ uploadUrl: z.ZodString;
584
+ }, z.core.$strip>;
585
+ };
586
+ };
466
587
  flow: {
467
588
  addTag: {
589
+ readonly annotations: {
590
+ readonly destructiveHint: false;
591
+ readonly openWorldHint: false;
592
+ readonly readOnlyHint: false;
593
+ };
468
594
  readonly description: "Assign an existing tag to the selected flows. Create tags with tag.create. Flows that already carry the tag are reported in skippedFlows.";
469
595
  readonly input: z.ZodObject<{
470
596
  flowIds: z.ZodArray<FlowId>;
@@ -486,6 +612,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
486
612
  }, z.core.$strip>;
487
613
  };
488
614
  list: {
615
+ readonly annotations: {
616
+ readonly destructiveHint: false;
617
+ readonly openWorldHint: false;
618
+ readonly readOnlyHint: true;
619
+ };
489
620
  readonly description: "List the flows of an environment at its latest reconciled commit, or, when an AI task is given, the flows on that task's branch.";
490
621
  readonly input: z.ZodObject<{
491
622
  aiTaskId: z.ZodOptional<AiTaskId>;
@@ -510,6 +641,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
510
641
  }, z.core.$strip>;
511
642
  };
512
643
  removeTag: {
644
+ readonly annotations: {
645
+ readonly destructiveHint: true;
646
+ readonly openWorldHint: false;
647
+ readonly readOnlyHint: false;
648
+ };
513
649
  readonly description: "Remove a tag from the selected flows. Succeeds whether or not each flow carried the tag; the flows that did not are reported in skippedFlows.";
514
650
  readonly input: z.ZodObject<{
515
651
  flowIds: z.ZodArray<FlowId>;
@@ -531,6 +667,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
531
667
  }, z.core.$strip>;
532
668
  };
533
669
  update: {
670
+ readonly annotations: {
671
+ readonly destructiveHint: true;
672
+ readonly openWorldHint: false;
673
+ readonly readOnlyHint: false;
674
+ };
534
675
  readonly description: "Move a flow between draft and active readiness. The other statuses shown in the app are derived and cannot be set.";
535
676
  readonly input: z.ZodObject<{
536
677
  flowId: FlowId;
@@ -556,6 +697,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
556
697
  };
557
698
  issue: {
558
699
  addFlows: {
700
+ readonly annotations: {
701
+ readonly destructiveHint: false;
702
+ readonly openWorldHint: false;
703
+ readonly readOnlyHint: false;
704
+ };
559
705
  readonly description: string;
560
706
  readonly input: z.ZodObject<{
561
707
  flowIds: z.ZodArray<FlowId>;
@@ -603,6 +749,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
603
749
  }, z.core.$strip>;
604
750
  };
605
751
  create: {
752
+ readonly annotations: {
753
+ readonly destructiveHint: true;
754
+ readonly openWorldHint: true;
755
+ readonly readOnlyHint: false;
756
+ };
606
757
  readonly description: string;
607
758
  readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
608
759
  type: z.ZodLiteral<"bug">;
@@ -672,6 +823,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
672
823
  }, z.core.$strip>;
673
824
  };
674
825
  find: {
826
+ readonly annotations: {
827
+ readonly destructiveHint: false;
828
+ readonly openWorldHint: false;
829
+ readonly readOnlyHint: true;
830
+ };
675
831
  readonly description: "List the team's bug reports, maintenance reports, or coverage requests, newest first.";
676
832
  readonly input: z.ZodObject<{
677
833
  statuses: z.ZodDefault<z.ZodArray<z.ZodEnum<{
@@ -734,6 +890,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
734
890
  }, z.core.$strip>;
735
891
  };
736
892
  get: {
893
+ readonly annotations: {
894
+ readonly destructiveHint: false;
895
+ readonly openWorldHint: false;
896
+ readonly readOnlyHint: true;
897
+ };
737
898
  readonly description: "Get an issue by id.";
738
899
  readonly input: z.ZodObject<{
739
900
  issueId: IssueId;
@@ -780,6 +941,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
780
941
  }, z.core.$strip>;
781
942
  };
782
943
  removeFlows: {
944
+ readonly annotations: {
945
+ readonly destructiveHint: true;
946
+ readonly openWorldHint: false;
947
+ readonly readOnlyHint: false;
948
+ };
783
949
  readonly description: string;
784
950
  readonly input: z.ZodObject<{
785
951
  flowIds: z.ZodArray<FlowId>;
@@ -827,6 +993,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
827
993
  }, z.core.$strip>;
828
994
  };
829
995
  update: {
996
+ readonly annotations: {
997
+ readonly destructiveHint: true;
998
+ readonly openWorldHint: true;
999
+ readonly readOnlyHint: false;
1000
+ };
830
1001
  readonly description: "Update an issue owned by the caller's team. Omitted fields remain unchanged.";
831
1002
  readonly input: z.ZodObject<{
832
1003
  description: z.ZodOptional<z.ZodString>;
@@ -892,6 +1063,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
892
1063
  };
893
1064
  run: {
894
1065
  create: {
1066
+ readonly annotations: {
1067
+ readonly destructiveHint: true;
1068
+ readonly openWorldHint: true;
1069
+ readonly readOnlyHint: false;
1070
+ };
895
1071
  readonly description: "Create a run for the selected flows and/or tags in an environment.";
896
1072
  readonly input: z.ZodIntersection<z.ZodObject<{
897
1073
  aiTaskId: z.ZodOptional<AiTaskId>;
@@ -926,6 +1102,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
926
1102
  }, z.core.$strip>;
927
1103
  };
928
1104
  diagnose: {
1105
+ readonly annotations: {
1106
+ readonly destructiveHint: true;
1107
+ readonly openWorldHint: true;
1108
+ readonly readOnlyHint: false;
1109
+ };
929
1110
  readonly description: string;
930
1111
  readonly input: z.ZodObject<{
931
1112
  flowIds: z.ZodArray<FlowId>;
@@ -974,6 +1155,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
974
1155
  }, z.core.$strip>;
975
1156
  };
976
1157
  find: {
1158
+ readonly annotations: {
1159
+ readonly destructiveHint: false;
1160
+ readonly openWorldHint: false;
1161
+ readonly readOnlyHint: true;
1162
+ };
977
1163
  readonly description: "List an environment's recent runs, newest first.";
978
1164
  readonly input: z.ZodObject<{
979
1165
  environmentId: PublicIdSchema;
@@ -1007,6 +1193,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1007
1193
  }, z.core.$strip>;
1008
1194
  };
1009
1195
  get: {
1196
+ readonly annotations: {
1197
+ readonly destructiveHint: false;
1198
+ readonly openWorldHint: false;
1199
+ readonly readOnlyHint: true;
1200
+ };
1010
1201
  readonly description: "Get a run's status, per-flow results, and links.";
1011
1202
  readonly input: z.ZodObject<{
1012
1203
  runId: RunId;
@@ -1112,6 +1303,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1112
1303
  }, z.core.$strip>;
1113
1304
  };
1114
1305
  reattempt: {
1306
+ readonly annotations: {
1307
+ readonly destructiveHint: true;
1308
+ readonly openWorldHint: true;
1309
+ readonly readOnlyHint: false;
1310
+ };
1115
1311
  readonly description: string;
1116
1312
  readonly input: z.ZodObject<{
1117
1313
  flowIds: z.ZodOptional<z.ZodArray<FlowId>>;
@@ -1126,7 +1322,12 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1126
1322
  }, z.core.$strip>;
1127
1323
  };
1128
1324
  stop: {
1129
- readonly description: "Stop a run, including its queued flows and automatic retries. Stopping is asynchronous. Repeated requests are safe, and finished runs keep their results. A run that is still being created returns not found; retry once run.get returns the run. If run.get returns a different runId, use that ID. Poll run.get for results.";
1325
+ readonly annotations: {
1326
+ readonly destructiveHint: true;
1327
+ readonly openWorldHint: true;
1328
+ readonly readOnlyHint: false;
1329
+ };
1330
+ readonly description: "Stop a run, including its queued flows and automatic retries. Stopping is asynchronous and can update run-status messages and commit statuses in connected integrations. Repeated requests are safe, and finished runs keep their results. A run that is still being created returns not found; retry once run.get returns the run. If run.get returns a different runId, use that ID. Poll run.get for results.";
1130
1331
  readonly input: z.ZodObject<{
1131
1332
  runId: RunId;
1132
1333
  }, z.core.$strip>;
@@ -1145,6 +1346,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1145
1346
  };
1146
1347
  runner: {
1147
1348
  evaluateSnippet: {
1349
+ readonly annotations: {
1350
+ readonly destructiveHint: true;
1351
+ readonly openWorldHint: true;
1352
+ readonly readOnlyHint: false;
1353
+ };
1148
1354
  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.";
1149
1355
  readonly input: z.ZodObject<{
1150
1356
  code: z.ZodString;
@@ -1165,13 +1371,18 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1165
1371
  }>;
1166
1372
  }, z.core.$strip>, z.ZodObject<{
1167
1373
  failureReason: z.ZodEnum<{
1168
- "runner-unreachable": "runner-unreachable";
1169
1374
  "runner-cannot-evaluate-snippets": "runner-cannot-evaluate-snippets";
1375
+ "runner-unreachable": "runner-unreachable";
1170
1376
  }>;
1171
1377
  outcome: z.ZodLiteral<"failure">;
1172
1378
  }, z.core.$strip>], "outcome">;
1173
1379
  };
1174
1380
  get: {
1381
+ readonly annotations: {
1382
+ readonly destructiveHint: false;
1383
+ readonly openWorldHint: false;
1384
+ readonly readOnlyHint: true;
1385
+ };
1175
1386
  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.";
1176
1387
  readonly input: z.ZodObject<{
1177
1388
  id: z.ZodString;
@@ -1186,6 +1397,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1186
1397
  }, z.core.$strip>;
1187
1398
  };
1188
1399
  highlightSelector: {
1400
+ readonly annotations: {
1401
+ readonly destructiveHint: false;
1402
+ readonly openWorldHint: false;
1403
+ readonly readOnlyHint: false;
1404
+ };
1189
1405
  readonly description: "Highlight the elements a selector matches on an interactive runner's live page, and answer how many it matched. The highlight stays until it is replaced or cleared, so it is visible in the next `runner.takeScreenshot` — which is the point, since a caller cannot see the runner's screen otherwise. Send an empty selector to clear, which answers `cleared`. `status` tells a selector that matched nothing (`empty`) from one the page could not parse (`invalid`), so a caller can tell a bad locator from a locator pointing at nothing. `no-answer` if the page did not answer in time: the highlight runs inside the page, so a page that is gone or mid-navigation does not answer slowly, it does not answer at all. `runner-cannot-highlight-selectors` on a runner with no browser to draw on. `runner-unreachable` if the runner could not be reached: it may still be starting, or it may have terminated after inactivity.";
1190
1406
  readonly input: z.ZodObject<{
1191
1407
  id: z.ZodString;
@@ -1213,6 +1429,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1213
1429
  }, z.core.$strip>], "outcome">;
1214
1430
  };
1215
1431
  importPackage: {
1432
+ readonly annotations: {
1433
+ readonly destructiveHint: true;
1434
+ readonly openWorldHint: true;
1435
+ readonly readOnlyHint: false;
1436
+ };
1216
1437
  readonly description: "Install a package into an interactive runner's live run and import it, so a snippet or a selection can use it without a full run to reinstall dependencies. An `install-failed` failure carries npm's reason in `errorMessage`. `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 install may still have landed, but installing the same version again does nothing, so retrying is safe.";
1217
1438
  readonly input: z.ZodObject<{
1218
1439
  id: z.ZodString;
@@ -1235,6 +1456,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1235
1456
  }, z.core.$strip>], "outcome">;
1236
1457
  };
1237
1458
  inspect: {
1459
+ readonly annotations: {
1460
+ readonly destructiveHint: false;
1461
+ readonly openWorldHint: false;
1462
+ readonly readOnlyHint: false;
1463
+ };
1238
1464
  readonly description: string;
1239
1465
  readonly input: z.ZodObject<{
1240
1466
  id: z.ZodString;
@@ -1266,7 +1492,12 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1266
1492
  }, z.core.$strip>], "outcome">;
1267
1493
  };
1268
1494
  inspectMobile: {
1269
- readonly description: "Inspect one thing on a mobile interactive runner: the Appium session's status, the WebView contexts available, the current context's page source, or the elements at a point or carrying some text. Mobile only — a browser runner answers `runner-is-not-mobile`; call `runner.inspect` for a browser's equivalent surface instead. `what: \"session\"` always answers with the session's own status rather than `screen-needs-a-run`, since that is the question it exists to answer; the other three request kinds need a live session first and answer the same `screen-needs-a-run` or `screen-not-ready` outcomes `runner.performAction` and `runner.takeScreenshot` use, instead of reading anything when there is none. `screen-needs-a-run` means no Appium session has started on this runner yet — call `runner.runFlow` with a flow that opens one, then inspect again. `screen-not-ready` means the runner's Appium session exists but did not answer this instant, or more than one is somehow live — retry once; if it persists, relaunch the runner. `runner-is-not-mobile` means there is nothing here to inspect, and retrying will never help — launch an `android` or `ios` 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.";
1495
+ readonly annotations: {
1496
+ readonly destructiveHint: false;
1497
+ readonly openWorldHint: false;
1498
+ readonly readOnlyHint: true;
1499
+ };
1500
+ readonly description: "Inspect one thing on a mobile interactive runner: the Appium session's status, the WebView contexts available, the current context's page source, or the elements at a point, carrying some text, or matching a selector. This does not refresh the runner's inactivity timer. Mobile only — a browser runner answers `runner-is-not-mobile`; call `runner.inspect` for a browser's equivalent surface instead. `what: \"session\"` always answers with the session's own status rather than `screen-needs-a-run`, since that is the question it exists to answer; the other three request kinds need a live session first and answer the same `screen-needs-a-run` or `screen-not-ready` outcomes `runner.performAction` and `runner.takeScreenshot` use, instead of reading anything when there is none. `screen-needs-a-run` means no Appium session has started on this runner yet — call `runner.runFlow` with a flow that opens one, then inspect again. `screen-not-ready` means the runner's Appium session exists but did not answer this instant, or more than one is somehow live — retry once; if it persists, relaunch the runner. `runner-is-not-mobile` means there is nothing here to inspect, and retrying will never help — launch an `android` or `ios` runner instead. `invalid-selector` (elements by selector only) means the selector itself could not be parsed under the given `strategy` — distinct from a selector that parsed fine but matched nothing, which answers `matches: []` 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.";
1270
1501
  readonly input: z.ZodObject<{
1271
1502
  id: z.ZodString;
1272
1503
  request: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -1288,6 +1519,16 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1288
1519
  partial: z.ZodOptional<z.ZodBoolean>;
1289
1520
  text: z.ZodString;
1290
1521
  what: z.ZodLiteral<"elements">;
1522
+ }, z.core.$strip>, z.ZodObject<{
1523
+ by: z.ZodLiteral<"selector">;
1524
+ context: z.ZodOptional<z.ZodString>;
1525
+ selector: z.ZodString;
1526
+ strategy: z.ZodDefault<z.ZodEnum<{
1527
+ "ios-predicate": "ios-predicate";
1528
+ shadow: "shadow";
1529
+ xpath: "xpath";
1530
+ }>>;
1531
+ what: z.ZodLiteral<"elements">;
1291
1532
  }, z.core.$strip>], "by">], "what">;
1292
1533
  workspaceId: z.ZodOptional<WorkspaceId>;
1293
1534
  }, z.core.$strip>;
@@ -1462,6 +1703,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1462
1703
  }, z.core.$strip>], "what">, z.ZodObject<{
1463
1704
  failureReason: z.ZodEnum<{
1464
1705
  "runner-unreachable": "runner-unreachable";
1706
+ "invalid-selector": "invalid-selector";
1465
1707
  "runner-is-not-mobile": "runner-is-not-mobile";
1466
1708
  "screen-needs-a-run": "screen-needs-a-run";
1467
1709
  "screen-not-ready": "screen-not-ready";
@@ -1470,6 +1712,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1470
1712
  }, z.core.$strip>], "outcome">;
1471
1713
  };
1472
1714
  launch: {
1715
+ readonly annotations: {
1716
+ readonly destructiveHint: true;
1717
+ readonly openWorldHint: false;
1718
+ readonly readOnlyHint: false;
1719
+ };
1473
1720
  readonly description: "Launch an interactive runner on the caller's team under an id the caller chooses. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner — so read `alreadyRunning` to tell which happened.";
1474
1721
  readonly input: z.ZodObject<{
1475
1722
  id: z.ZodString;
@@ -1492,11 +1739,17 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1492
1739
  android: "android";
1493
1740
  ios: "ios";
1494
1741
  }>;
1742
+ url: z.ZodURL;
1495
1743
  alreadyRunning: z.ZodBoolean;
1496
1744
  outcome: z.ZodLiteral<"success">;
1497
1745
  }, z.core.$strip>;
1498
1746
  };
1499
1747
  list: {
1748
+ readonly annotations: {
1749
+ readonly destructiveHint: false;
1750
+ readonly openWorldHint: false;
1751
+ readonly readOnlyHint: true;
1752
+ };
1500
1753
  readonly description: "List the runners running on the caller's team right now. A team API key already names the team and sends nothing; a credential bound to no single workspace names one in `workspaceId`. A runner that was terminated, or that terminated on its own after inactivity, is not listed, because the run system keeps no record of a runner once it is gone. 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. It is how to find a runner launched from another machine or in an earlier session, when the id it was launched under is no longer at hand.";
1501
1754
  readonly input: z.ZodObject<{
1502
1755
  workspaceId: z.ZodOptional<WorkspaceId>;
@@ -1514,10 +1767,16 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1514
1767
  android: "android";
1515
1768
  ios: "ios";
1516
1769
  }>;
1770
+ url: z.ZodURL;
1517
1771
  }, z.core.$strip>>;
1518
1772
  }, z.core.$strip>;
1519
1773
  };
1520
1774
  performAction: {
1775
+ readonly annotations: {
1776
+ readonly destructiveHint: true;
1777
+ readonly openWorldHint: true;
1778
+ readonly readOnlyHint: false;
1779
+ };
1521
1780
  readonly description: "Perform one raw browser action on an interactive runner: click, double_click, move, drag, scroll, keypress, type, or navigate. Coordinates are whole pixels on the runner's virtual desktop, in the same space as `runner.takeScreenshot`. One action per request, and the runner serves one at a time. The action shapes follow the computer-use vocabulary, minus `screenshot` (use `runner.takeScreenshot`) and `wait` (delay on the caller's side). A success means the action took effect. `action-failed`, with a reason, if it reached the runner and did not take effect. On a runner image with a browser, the first action on a runner that has never run anything starts its browser and waits for it, so it can take up to a minute to answer — no `runner.runFlow` is needed before acting; if the browser is still starting when the wait runs out, the answer is `screen-not-ready` and retrying converges. On a mobile runner, the same `screen-needs-a-run` and `screen-not-ready` outcomes mean no Appium session has started yet, or it did not answer this instant; `runner.runFlow` is what starts one, same as a browser. `screen-needs-a-run` if the browser could not be started that way — usually a runner whose runs all finished without starting its desktop; call `runner.runFlow` with a flow that opens a browser. `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. A `navigate` does not go through the screen, so a screen that is not ready does not stop 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. `action-not-supported-on-mobile` if the runner is a mobile device and this action has no touchscreen equivalent: `double_click`, `scroll`, `move`, `keypress` and `navigate`, and a `click` whose `button` is not `left`, are all pointer-device concepts a touchscreen has nothing to offer for. `click` taps, `drag` swipes between its path's first and last point, and `type` types into whatever the last tap focused. With `withScreenshot: true`, the answer also carries `imageJpegBase64`: a screenshot taken after the action, once the screen has changed from just before it or half a second has passed, whichever comes first. One call instead of `runner.performAction` followed by `runner.takeScreenshot`, with no fixed wait in between. Anything animating on the page counts as a change. The action itself is performed exactly as without the option; if the screen could serve no frame after it — a display restart, or a `navigate` on a desktop that is still starting — the action's result comes back without `imageJpegBase64`, so take a screenshot separately rather than repeating the action. On a mobile runner the screenshot is the device's own, taken right after a performed action. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may have stopped answering mid-action. This does not mean the action was not performed — take a screenshot before repeating it.";
1522
1781
  readonly input: z.ZodObject<{
1523
1782
  action: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -1581,6 +1840,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1581
1840
  }, z.core.$strip>], "failureReason">], "outcome">;
1582
1841
  };
1583
1842
  promoteSnapshot: {
1843
+ readonly annotations: {
1844
+ readonly destructiveHint: true;
1845
+ readonly openWorldHint: false;
1846
+ readonly readOnlyHint: false;
1847
+ };
1584
1848
  readonly description: "Accept a run's screenshot as the new baseline for an image diff, on the runner that produced it. The two paths are the ones the diff reported, which reach a caller as an `image-diff-artifact` entry on the runner's `run-events` journal stream. `snapshot-not-found` if the run wrote no screenshot at that path, which usually means the paths were not taken from a diff this run produced; nothing is changed, so correcting the path and repeating is safe. `runner-cannot-promote-snapshots` on a runner that stores no screenshots. `runner-unreachable` if the runner could not be reached: it may still be starting, or it may have terminated after inactivity. A promotion that lands is not undone by promoting again, so a retry after an unreachable answer is safe.";
1585
1849
  readonly input: z.ZodObject<{
1586
1850
  baselinePath: z.ZodString;
@@ -1602,6 +1866,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1602
1866
  }, z.core.$strip>], "outcome">;
1603
1867
  };
1604
1868
  readJournal: {
1869
+ readonly annotations: {
1870
+ readonly destructiveHint: false;
1871
+ readonly openWorldHint: false;
1872
+ readonly readOnlyHint: false;
1873
+ };
1605
1874
  readonly description: "Read a window of one of an interactive runner's journal streams — the newest few, everything after a cursor, or everything belonging to one run. This is how a flow run's outcome and output are followed: `run-status` settles it, `run-logs` and `run-events` carry what it produced, and `recorder` carries the browser actions the runner recorded. A read counts as activity, so working through history does not get the runner reaped underneath you. `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.";
1606
1875
  readonly input: z.ZodObject<{
1607
1876
  runId: z.ZodOptional<z.ZodString>;
@@ -1618,7 +1887,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1618
1887
  payload: z.ZodUnknown;
1619
1888
  recordedAt: z.ZodISODateTime;
1620
1889
  sequence: z.ZodNumber;
1621
- }, z.core.$strip>, z.ZodTransform<import("./runnerReexports.js").JournalEntry<unknown>, {
1890
+ }, z.core.$strip>, z.ZodTransform<import("./sharedSchemas.js").JournalEntry<unknown>, {
1622
1891
  payload: unknown;
1623
1892
  recordedAt: string;
1624
1893
  sequence: number;
@@ -1635,6 +1904,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1635
1904
  }, z.core.$strip>], "outcome">;
1636
1905
  };
1637
1906
  runFlow: {
1907
+ readonly annotations: {
1908
+ readonly destructiveHint: true;
1909
+ readonly openWorldHint: true;
1910
+ readonly readOnlyHint: false;
1911
+ };
1638
1912
  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.";
1639
1913
  readonly input: z.ZodObject<{
1640
1914
  entryPointPath: z.ZodString;
@@ -1681,6 +1955,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1681
1955
  }, z.core.$strip>], "failureReason">], "outcome">;
1682
1956
  };
1683
1957
  stopRun: {
1958
+ readonly annotations: {
1959
+ readonly destructiveHint: true;
1960
+ readonly openWorldHint: false;
1961
+ readonly readOnlyHint: false;
1962
+ };
1684
1963
  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.";
1685
1964
  readonly input: z.ZodObject<{
1686
1965
  id: z.ZodString;
@@ -1699,7 +1978,12 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1699
1978
  }, z.core.$strip>], "outcome">;
1700
1979
  };
1701
1980
  takeScreenshot: {
1702
- 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. 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.";
1981
+ readonly annotations: {
1982
+ readonly destructiveHint: false;
1983
+ readonly openWorldHint: false;
1984
+ readonly readOnlyHint: false;
1985
+ };
1986
+ 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.";
1703
1987
  readonly input: z.ZodObject<{
1704
1988
  id: z.ZodString;
1705
1989
  workspaceId: z.ZodOptional<WorkspaceId>;
@@ -1720,6 +2004,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1720
2004
  }, z.core.$strip>], "outcome">;
1721
2005
  };
1722
2006
  terminate: {
2007
+ readonly annotations: {
2008
+ readonly destructiveHint: true;
2009
+ readonly openWorldHint: false;
2010
+ readonly readOnlyHint: false;
2011
+ };
1723
2012
  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.";
1724
2013
  readonly input: z.ZodObject<{
1725
2014
  id: z.ZodString;
@@ -1736,6 +2025,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1736
2025
  };
1737
2026
  tag: {
1738
2027
  create: {
2028
+ readonly annotations: {
2029
+ readonly destructiveHint: false;
2030
+ readonly openWorldHint: false;
2031
+ readonly readOnlyHint: false;
2032
+ };
1739
2033
  readonly description: "Create a tag on the caller's team. Tags select flows in run.create.";
1740
2034
  readonly input: z.ZodObject<{
1741
2035
  name: z.ZodString;
@@ -1750,6 +2044,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1750
2044
  }, z.core.$strip>;
1751
2045
  };
1752
2046
  list: {
2047
+ readonly annotations: {
2048
+ readonly destructiveHint: false;
2049
+ readonly openWorldHint: false;
2050
+ readonly readOnlyHint: true;
2051
+ };
1753
2052
  readonly description: "List the team's tags, alphabetical by name. Tag names select flows in run.create.";
1754
2053
  readonly input: z.ZodObject<{
1755
2054
  cursor: z.ZodOptional<z.ZodString>;
@@ -1771,17 +2070,515 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1771
2070
  }, z.core.$strip>;
1772
2071
  };
1773
2072
  };
2073
+ trigger: {
2074
+ create: {
2075
+ readonly annotations: {
2076
+ readonly destructiveHint: true;
2077
+ readonly openWorldHint: true;
2078
+ readonly readOnlyHint: false;
2079
+ };
2080
+ readonly description: string;
2081
+ readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
2082
+ kind: z.ZodLiteral<"schedule">;
2083
+ action: z.ZodObject<{
2084
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2085
+ instructions: z.ZodOptional<z.ZodString>;
2086
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2087
+ kind: z.ZodDefault<z.ZodEnum<{
2088
+ createSuite: "createSuite";
2089
+ generativeSuite: "generativeSuite";
2090
+ }>>;
2091
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2092
+ }, z.core.$strip>;
2093
+ cadence: z.ZodEnum<{
2094
+ hourly: "hourly";
2095
+ daily: "daily";
2096
+ }>;
2097
+ environmentId: PublicIdSchema;
2098
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2099
+ timeOfDay: z.ZodOptional<z.ZodString>;
2100
+ timezoneId: z.ZodOptional<z.ZodString>;
2101
+ name: z.ZodString;
2102
+ workspaceId: z.ZodOptional<WorkspaceId>;
2103
+ }, z.core.$strip>, z.ZodObject<{
2104
+ kind: z.ZodLiteral<"deployment">;
2105
+ action: z.ZodObject<{
2106
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2107
+ instructions: z.ZodOptional<z.ZodString>;
2108
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2109
+ kind: z.ZodDefault<z.ZodEnum<{
2110
+ createSuite: "createSuite";
2111
+ generativeSuite: "generativeSuite";
2112
+ }>>;
2113
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2114
+ }, z.core.$strip>;
2115
+ branchPattern: z.ZodOptional<z.ZodString>;
2116
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2117
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2118
+ environmentPattern: z.ZodOptional<z.ZodString>;
2119
+ name: z.ZodString;
2120
+ workspaceId: z.ZodOptional<WorkspaceId>;
2121
+ }, z.core.$strip>], "kind">;
2122
+ readonly kind: "write";
2123
+ readonly name: "trigger.create";
2124
+ readonly output: z.ZodObject<{
2125
+ trigger: z.ZodObject<{
2126
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2127
+ kind: z.ZodLiteral<"schedule">;
2128
+ action: z.ZodObject<{
2129
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2130
+ instructions: z.ZodOptional<z.ZodString>;
2131
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2132
+ kind: z.ZodDefault<z.ZodEnum<{
2133
+ createSuite: "createSuite";
2134
+ generativeSuite: "generativeSuite";
2135
+ }>>;
2136
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2137
+ }, z.core.$strip>;
2138
+ cadence: z.ZodEnum<{
2139
+ hourly: "hourly";
2140
+ daily: "daily";
2141
+ }>;
2142
+ environmentId: EnvironmentId;
2143
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2144
+ timeOfDay: z.ZodOptional<z.ZodString>;
2145
+ timezoneId: z.ZodOptional<z.ZodString>;
2146
+ }, z.core.$strip>, z.ZodObject<{
2147
+ kind: z.ZodLiteral<"deployment">;
2148
+ action: z.ZodObject<{
2149
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2150
+ instructions: z.ZodOptional<z.ZodString>;
2151
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2152
+ kind: z.ZodDefault<z.ZodEnum<{
2153
+ createSuite: "createSuite";
2154
+ generativeSuite: "generativeSuite";
2155
+ }>>;
2156
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2157
+ }, z.core.$strip>;
2158
+ branchPattern: z.ZodOptional<z.ZodString>;
2159
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2160
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2161
+ environmentPattern: z.ZodOptional<z.ZodString>;
2162
+ }, z.core.$strip>, z.ZodObject<{
2163
+ actionCount: z.ZodNumber;
2164
+ kind: z.ZodLiteral<"advanced">;
2165
+ whenCount: z.ZodNumber;
2166
+ }, z.core.$strip>], "kind">;
2167
+ createdAt: z.ZodISODateTime;
2168
+ id: TriggerId;
2169
+ isPaused: z.ZodBoolean;
2170
+ name: z.ZodString;
2171
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2172
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2173
+ updatedAt: z.ZodISODateTime;
2174
+ url: z.ZodURL;
2175
+ }, z.core.$strip>;
2176
+ }, z.core.$strip>;
2177
+ };
2178
+ delete: {
2179
+ readonly annotations: {
2180
+ readonly destructiveHint: true;
2181
+ readonly openWorldHint: false;
2182
+ readonly readOnlyHint: false;
2183
+ };
2184
+ readonly description: string;
2185
+ readonly input: z.ZodObject<{
2186
+ triggerId: TriggerId;
2187
+ }, z.core.$strip>;
2188
+ readonly kind: "write";
2189
+ readonly name: "trigger.delete";
2190
+ readonly output: z.ZodObject<{
2191
+ triggerId: TriggerId;
2192
+ }, z.core.$strip>;
2193
+ };
2194
+ find: {
2195
+ readonly annotations: {
2196
+ readonly destructiveHint: false;
2197
+ readonly openWorldHint: false;
2198
+ readonly readOnlyHint: true;
2199
+ };
2200
+ readonly description: "List the team's triggers, newest first.";
2201
+ readonly input: z.ZodObject<{
2202
+ isPaused: z.ZodOptional<z.ZodBoolean>;
2203
+ workspaceId: z.ZodOptional<WorkspaceId>;
2204
+ }, z.core.$strip>;
2205
+ readonly kind: "read";
2206
+ readonly name: "trigger.find";
2207
+ readonly output: z.ZodObject<{
2208
+ triggers: z.ZodArray<z.ZodObject<{
2209
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2210
+ kind: z.ZodLiteral<"schedule">;
2211
+ action: z.ZodObject<{
2212
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2213
+ instructions: z.ZodOptional<z.ZodString>;
2214
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2215
+ kind: z.ZodDefault<z.ZodEnum<{
2216
+ createSuite: "createSuite";
2217
+ generativeSuite: "generativeSuite";
2218
+ }>>;
2219
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2220
+ }, z.core.$strip>;
2221
+ cadence: z.ZodEnum<{
2222
+ hourly: "hourly";
2223
+ daily: "daily";
2224
+ }>;
2225
+ environmentId: EnvironmentId;
2226
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2227
+ timeOfDay: z.ZodOptional<z.ZodString>;
2228
+ timezoneId: z.ZodOptional<z.ZodString>;
2229
+ }, z.core.$strip>, z.ZodObject<{
2230
+ kind: z.ZodLiteral<"deployment">;
2231
+ action: z.ZodObject<{
2232
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2233
+ instructions: z.ZodOptional<z.ZodString>;
2234
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2235
+ kind: z.ZodDefault<z.ZodEnum<{
2236
+ createSuite: "createSuite";
2237
+ generativeSuite: "generativeSuite";
2238
+ }>>;
2239
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2240
+ }, z.core.$strip>;
2241
+ branchPattern: z.ZodOptional<z.ZodString>;
2242
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2243
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2244
+ environmentPattern: z.ZodOptional<z.ZodString>;
2245
+ }, z.core.$strip>, z.ZodObject<{
2246
+ actionCount: z.ZodNumber;
2247
+ kind: z.ZodLiteral<"advanced">;
2248
+ whenCount: z.ZodNumber;
2249
+ }, z.core.$strip>], "kind">;
2250
+ createdAt: z.ZodISODateTime;
2251
+ id: TriggerId;
2252
+ isPaused: z.ZodBoolean;
2253
+ name: z.ZodString;
2254
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2255
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2256
+ updatedAt: z.ZodISODateTime;
2257
+ url: z.ZodURL;
2258
+ }, z.core.$strip>>;
2259
+ }, z.core.$strip>;
2260
+ };
2261
+ get: {
2262
+ readonly annotations: {
2263
+ readonly destructiveHint: false;
2264
+ readonly openWorldHint: false;
2265
+ readonly readOnlyHint: true;
2266
+ };
2267
+ readonly description: "Get one trigger by id.";
2268
+ readonly input: z.ZodObject<{
2269
+ triggerId: TriggerId;
2270
+ }, z.core.$strip>;
2271
+ readonly kind: "read";
2272
+ readonly name: "trigger.get";
2273
+ readonly output: z.ZodObject<{
2274
+ trigger: z.ZodObject<{
2275
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2276
+ kind: z.ZodLiteral<"schedule">;
2277
+ action: z.ZodObject<{
2278
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2279
+ instructions: z.ZodOptional<z.ZodString>;
2280
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2281
+ kind: z.ZodDefault<z.ZodEnum<{
2282
+ createSuite: "createSuite";
2283
+ generativeSuite: "generativeSuite";
2284
+ }>>;
2285
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2286
+ }, z.core.$strip>;
2287
+ cadence: z.ZodEnum<{
2288
+ hourly: "hourly";
2289
+ daily: "daily";
2290
+ }>;
2291
+ environmentId: EnvironmentId;
2292
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2293
+ timeOfDay: z.ZodOptional<z.ZodString>;
2294
+ timezoneId: z.ZodOptional<z.ZodString>;
2295
+ }, z.core.$strip>, z.ZodObject<{
2296
+ kind: z.ZodLiteral<"deployment">;
2297
+ action: z.ZodObject<{
2298
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2299
+ instructions: z.ZodOptional<z.ZodString>;
2300
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2301
+ kind: z.ZodDefault<z.ZodEnum<{
2302
+ createSuite: "createSuite";
2303
+ generativeSuite: "generativeSuite";
2304
+ }>>;
2305
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2306
+ }, z.core.$strip>;
2307
+ branchPattern: z.ZodOptional<z.ZodString>;
2308
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2309
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2310
+ environmentPattern: z.ZodOptional<z.ZodString>;
2311
+ }, z.core.$strip>, z.ZodObject<{
2312
+ actionCount: z.ZodNumber;
2313
+ kind: z.ZodLiteral<"advanced">;
2314
+ whenCount: z.ZodNumber;
2315
+ }, z.core.$strip>], "kind">;
2316
+ createdAt: z.ZodISODateTime;
2317
+ id: TriggerId;
2318
+ isPaused: z.ZodBoolean;
2319
+ name: z.ZodString;
2320
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2321
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2322
+ updatedAt: z.ZodISODateTime;
2323
+ url: z.ZodURL;
2324
+ }, z.core.$strip>;
2325
+ }, z.core.$strip>;
2326
+ };
2327
+ pause: {
2328
+ readonly annotations: {
2329
+ readonly destructiveHint: true;
2330
+ readonly openWorldHint: false;
2331
+ readonly readOnlyHint: false;
2332
+ };
2333
+ readonly description: string;
2334
+ readonly input: z.ZodObject<{
2335
+ triggerId: TriggerId;
2336
+ }, z.core.$strip>;
2337
+ readonly kind: "write";
2338
+ readonly name: "trigger.pause";
2339
+ readonly output: z.ZodObject<{
2340
+ trigger: z.ZodObject<{
2341
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2342
+ kind: z.ZodLiteral<"schedule">;
2343
+ action: z.ZodObject<{
2344
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2345
+ instructions: z.ZodOptional<z.ZodString>;
2346
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2347
+ kind: z.ZodDefault<z.ZodEnum<{
2348
+ createSuite: "createSuite";
2349
+ generativeSuite: "generativeSuite";
2350
+ }>>;
2351
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2352
+ }, z.core.$strip>;
2353
+ cadence: z.ZodEnum<{
2354
+ hourly: "hourly";
2355
+ daily: "daily";
2356
+ }>;
2357
+ environmentId: EnvironmentId;
2358
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2359
+ timeOfDay: z.ZodOptional<z.ZodString>;
2360
+ timezoneId: z.ZodOptional<z.ZodString>;
2361
+ }, z.core.$strip>, z.ZodObject<{
2362
+ kind: z.ZodLiteral<"deployment">;
2363
+ action: z.ZodObject<{
2364
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2365
+ instructions: z.ZodOptional<z.ZodString>;
2366
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2367
+ kind: z.ZodDefault<z.ZodEnum<{
2368
+ createSuite: "createSuite";
2369
+ generativeSuite: "generativeSuite";
2370
+ }>>;
2371
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2372
+ }, z.core.$strip>;
2373
+ branchPattern: z.ZodOptional<z.ZodString>;
2374
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2375
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2376
+ environmentPattern: z.ZodOptional<z.ZodString>;
2377
+ }, z.core.$strip>, z.ZodObject<{
2378
+ actionCount: z.ZodNumber;
2379
+ kind: z.ZodLiteral<"advanced">;
2380
+ whenCount: z.ZodNumber;
2381
+ }, z.core.$strip>], "kind">;
2382
+ createdAt: z.ZodISODateTime;
2383
+ id: TriggerId;
2384
+ isPaused: z.ZodBoolean;
2385
+ name: z.ZodString;
2386
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2387
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2388
+ updatedAt: z.ZodISODateTime;
2389
+ url: z.ZodURL;
2390
+ }, z.core.$strip>;
2391
+ }, z.core.$strip>;
2392
+ };
2393
+ resume: {
2394
+ readonly annotations: {
2395
+ readonly destructiveHint: true;
2396
+ readonly openWorldHint: true;
2397
+ readonly readOnlyHint: false;
2398
+ };
2399
+ readonly description: string;
2400
+ readonly input: z.ZodObject<{
2401
+ triggerId: TriggerId;
2402
+ }, z.core.$strip>;
2403
+ readonly kind: "write";
2404
+ readonly name: "trigger.resume";
2405
+ readonly output: z.ZodObject<{
2406
+ trigger: z.ZodObject<{
2407
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2408
+ kind: z.ZodLiteral<"schedule">;
2409
+ action: z.ZodObject<{
2410
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2411
+ instructions: z.ZodOptional<z.ZodString>;
2412
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2413
+ kind: z.ZodDefault<z.ZodEnum<{
2414
+ createSuite: "createSuite";
2415
+ generativeSuite: "generativeSuite";
2416
+ }>>;
2417
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2418
+ }, z.core.$strip>;
2419
+ cadence: z.ZodEnum<{
2420
+ hourly: "hourly";
2421
+ daily: "daily";
2422
+ }>;
2423
+ environmentId: EnvironmentId;
2424
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2425
+ timeOfDay: z.ZodOptional<z.ZodString>;
2426
+ timezoneId: z.ZodOptional<z.ZodString>;
2427
+ }, z.core.$strip>, z.ZodObject<{
2428
+ kind: z.ZodLiteral<"deployment">;
2429
+ action: z.ZodObject<{
2430
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2431
+ instructions: z.ZodOptional<z.ZodString>;
2432
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2433
+ kind: z.ZodDefault<z.ZodEnum<{
2434
+ createSuite: "createSuite";
2435
+ generativeSuite: "generativeSuite";
2436
+ }>>;
2437
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2438
+ }, z.core.$strip>;
2439
+ branchPattern: z.ZodOptional<z.ZodString>;
2440
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2441
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2442
+ environmentPattern: z.ZodOptional<z.ZodString>;
2443
+ }, z.core.$strip>, z.ZodObject<{
2444
+ actionCount: z.ZodNumber;
2445
+ kind: z.ZodLiteral<"advanced">;
2446
+ whenCount: z.ZodNumber;
2447
+ }, z.core.$strip>], "kind">;
2448
+ createdAt: z.ZodISODateTime;
2449
+ id: TriggerId;
2450
+ isPaused: z.ZodBoolean;
2451
+ name: z.ZodString;
2452
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2453
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2454
+ updatedAt: z.ZodISODateTime;
2455
+ url: z.ZodURL;
2456
+ }, z.core.$strip>;
2457
+ }, z.core.$strip>;
2458
+ };
2459
+ update: {
2460
+ readonly annotations: {
2461
+ readonly destructiveHint: true;
2462
+ readonly openWorldHint: true;
2463
+ readonly readOnlyHint: false;
2464
+ };
2465
+ readonly description: string;
2466
+ readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
2467
+ kind: z.ZodLiteral<"schedule">;
2468
+ action: z.ZodObject<{
2469
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2470
+ instructions: z.ZodOptional<z.ZodString>;
2471
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2472
+ kind: z.ZodDefault<z.ZodEnum<{
2473
+ createSuite: "createSuite";
2474
+ generativeSuite: "generativeSuite";
2475
+ }>>;
2476
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2477
+ }, z.core.$strip>;
2478
+ cadence: z.ZodEnum<{
2479
+ hourly: "hourly";
2480
+ daily: "daily";
2481
+ }>;
2482
+ environmentId: PublicIdSchema;
2483
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2484
+ timeOfDay: z.ZodOptional<z.ZodString>;
2485
+ timezoneId: z.ZodOptional<z.ZodString>;
2486
+ name: z.ZodString;
2487
+ triggerId: TriggerId;
2488
+ }, z.core.$strip>, z.ZodObject<{
2489
+ kind: z.ZodLiteral<"deployment">;
2490
+ action: z.ZodObject<{
2491
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2492
+ instructions: z.ZodOptional<z.ZodString>;
2493
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2494
+ kind: z.ZodDefault<z.ZodEnum<{
2495
+ createSuite: "createSuite";
2496
+ generativeSuite: "generativeSuite";
2497
+ }>>;
2498
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2499
+ }, z.core.$strip>;
2500
+ branchPattern: z.ZodOptional<z.ZodString>;
2501
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2502
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2503
+ environmentPattern: z.ZodOptional<z.ZodString>;
2504
+ name: z.ZodString;
2505
+ triggerId: TriggerId;
2506
+ }, z.core.$strip>], "kind">;
2507
+ readonly kind: "write";
2508
+ readonly name: "trigger.update";
2509
+ readonly output: z.ZodObject<{
2510
+ trigger: z.ZodObject<{
2511
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2512
+ kind: z.ZodLiteral<"schedule">;
2513
+ action: z.ZodObject<{
2514
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2515
+ instructions: z.ZodOptional<z.ZodString>;
2516
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2517
+ kind: z.ZodDefault<z.ZodEnum<{
2518
+ createSuite: "createSuite";
2519
+ generativeSuite: "generativeSuite";
2520
+ }>>;
2521
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2522
+ }, z.core.$strip>;
2523
+ cadence: z.ZodEnum<{
2524
+ hourly: "hourly";
2525
+ daily: "daily";
2526
+ }>;
2527
+ environmentId: EnvironmentId;
2528
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2529
+ timeOfDay: z.ZodOptional<z.ZodString>;
2530
+ timezoneId: z.ZodOptional<z.ZodString>;
2531
+ }, z.core.$strip>, z.ZodObject<{
2532
+ kind: z.ZodLiteral<"deployment">;
2533
+ action: z.ZodObject<{
2534
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2535
+ instructions: z.ZodOptional<z.ZodString>;
2536
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2537
+ kind: z.ZodDefault<z.ZodEnum<{
2538
+ createSuite: "createSuite";
2539
+ generativeSuite: "generativeSuite";
2540
+ }>>;
2541
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2542
+ }, z.core.$strip>;
2543
+ branchPattern: z.ZodOptional<z.ZodString>;
2544
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2545
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2546
+ environmentPattern: z.ZodOptional<z.ZodString>;
2547
+ }, z.core.$strip>, z.ZodObject<{
2548
+ actionCount: z.ZodNumber;
2549
+ kind: z.ZodLiteral<"advanced">;
2550
+ whenCount: z.ZodNumber;
2551
+ }, z.core.$strip>], "kind">;
2552
+ createdAt: z.ZodISODateTime;
2553
+ id: TriggerId;
2554
+ isPaused: z.ZodBoolean;
2555
+ name: z.ZodString;
2556
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2557
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2558
+ updatedAt: z.ZodISODateTime;
2559
+ url: z.ZodURL;
2560
+ }, z.core.$strip>;
2561
+ }, z.core.$strip>;
2562
+ };
2563
+ };
1774
2564
  };
1775
2565
  export declare const publicContractsV1: {
1776
2566
  agent: {
1777
2567
  get: {
1778
- readonly description: "Monitor a QA Wolf AI session by reading its status and replies. After agent.send, share the returned session URL before monitoring. Wait 30 to 60 seconds between checks; do not call this in a tight loop. Replies accumulate, so compare them with what you have already seen. Continue monitoring silently when the status and replies are unchanged; do not narrate waiting, announce the next check, or ask whether to keep monitoring. Report only substantive new progress, questions, blockers, or the final outcome. A status of \"waiting-for-you\" means the last reply is a question the work is blocked on, and answering it with agent.send is what unblocks it. Surface an explicit request for user input even if the status still says \"working\". Include the session URL when reporting a blocker or final outcome. On \"completed\", stop status checks and verify the requested result before claiming success. For new flows, validation, publication in the target environment, and readiness are separate checks; a Git push or final reply does not prove the flow is active. If every requested result is verified but status remains \"working\", report the mismatch and stop monitoring. Stop on \"failed\" or \"cancelled\" and report any confirmed partial result.";
2568
+ readonly annotations: {
2569
+ readonly destructiveHint: false;
2570
+ readonly openWorldHint: false;
2571
+ readonly readOnlyHint: true;
2572
+ };
2573
+ readonly description: "Monitor a QA Wolf AI session by reading its status and replies. After agent.send, share the returned session URL before monitoring. Wait 30 to 60 seconds between checks; do not call this in a tight loop. Pass the nextCursor from one response as the cursor on the next check; it then reads only what is new, and only for the session that minted it. Continue monitoring silently when the status is unchanged and no replies come back; do not narrate waiting, announce the next check, or ask whether to keep monitoring. Report only substantive new progress, questions, blockers, or the final outcome. A status of \"waiting-for-you\" means the last reply is a question the work is blocked on, and answering it with agent.send is what unblocks it. Surface an explicit request for user input even if the status still says \"working\". Include the session URL when reporting a blocker or final outcome. On \"completed\", stop status checks and verify the requested result before claiming success. For new flows, validation, publication in the target environment, and readiness are separate checks; a Git push or final reply does not prove the flow is active. If every requested result is verified but status remains \"working\", report the mismatch and stop monitoring. Stop on \"failed\" or \"cancelled\" and report any confirmed partial result.";
1779
2574
  readonly input: z.ZodObject<{
2575
+ cursor: z.ZodOptional<z.ZodString>;
1780
2576
  sessionId: PublicIdSchema;
1781
2577
  }, z.core.$strip>;
1782
2578
  readonly kind: "read";
1783
2579
  readonly name: "agent.get";
1784
2580
  readonly output: z.ZodObject<{
2581
+ nextCursor: z.ZodString;
1785
2582
  replies: z.ZodArray<z.ZodObject<{
1786
2583
  askedAt: z.ZodISODateTime;
1787
2584
  choices: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -1799,9 +2596,15 @@ export declare const publicContractsV1: {
1799
2596
  }, z.core.$strip>;
1800
2597
  };
1801
2598
  send: {
2599
+ readonly annotations: {
2600
+ readonly destructiveHint: true;
2601
+ readonly openWorldHint: true;
2602
+ readonly readOnlyHint: false;
2603
+ };
1802
2604
  readonly description: "Start or continue work with the QA Wolf AI and return a live session URL to share with the user. Use it to cover a user journey, investigate a failing run, or fix a broken flow. This is the one verb that starts work from nothing: every other write acts on a flow, run or issue that already exists. Returns sessionId, status, and url as soon as the request is accepted; work can take minutes to tens of minutes. After each send, make the next action a normal user-visible assistant message containing the exact returned url, before any tool call or wait. Tool output and internal reasoning do not count as sharing the link. Do not run a timer or monitoring call alongside this send. Acceptance does not mean the work is complete. Then monitor the session with agent.get, reporting new progress, blockers, and the final outcome rather than unchanged status. Send here again to answer a question or add context to the same session.";
1803
2605
  readonly input: z.ZodObject<{
1804
2606
  environmentId: z.ZodOptional<PublicIdSchema>;
2607
+ filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
1805
2608
  message: z.ZodString;
1806
2609
  sessionId: z.ZodOptional<PublicIdSchema>;
1807
2610
  workspaceId: z.ZodOptional<PublicIdSchema>;
@@ -1822,6 +2625,11 @@ export declare const publicContractsV1: {
1822
2625
  };
1823
2626
  };
1824
2627
  automate: {
2628
+ readonly annotations: {
2629
+ readonly destructiveHint: true;
2630
+ readonly openWorldHint: true;
2631
+ readonly readOnlyHint: false;
2632
+ };
1825
2633
  readonly description: "Request automation for draft flows. First create a named local .flow.ts draft for every requested journey that does not already have a matching draft; never reuse a generic starter or placeholder. Each new draft must start with a JSDoc Goal: description, import flow from @qawolf/flows/web, and use export default flow(...); a comment-only file or direct test(...) call is not a valid draft. Commit and push all changes with Git to publish them, then list remote drafts to resolve every selected ID. Do not use patch to create or rename a selected flow. Finally make one automation request containing all requested flow IDs.";
1826
2634
  readonly input: z.ZodObject<{
1827
2635
  aiTaskId: z.ZodOptional<PublicIdSchema>;
@@ -1838,6 +2646,11 @@ export declare const publicContractsV1: {
1838
2646
  };
1839
2647
  email: {
1840
2648
  find: {
2649
+ readonly annotations: {
2650
+ readonly destructiveHint: false;
2651
+ readonly openWorldHint: false;
2652
+ readonly readOnlyHint: true;
2653
+ };
1841
2654
  readonly description: "List the workspace's inbox, or its sent mail, newest first. Read a message body with email.get.";
1842
2655
  readonly input: z.ZodObject<{
1843
2656
  cursor: z.ZodOptional<z.ZodString>;
@@ -1875,6 +2688,11 @@ export declare const publicContractsV1: {
1875
2688
  }, z.core.$strip>;
1876
2689
  };
1877
2690
  get: {
2691
+ readonly annotations: {
2692
+ readonly destructiveHint: false;
2693
+ readonly openWorldHint: false;
2694
+ readonly readOnlyHint: true;
2695
+ };
1878
2696
  readonly description: "Read one email of the workspace, with its plain text and HTML bodies. Use it to pull a sign-in code or a verification link out of a message.";
1879
2697
  readonly input: z.ZodObject<{
1880
2698
  id: z.ZodString;
@@ -1922,6 +2740,11 @@ export declare const publicContractsV1: {
1922
2740
  }, z.core.$strip>;
1923
2741
  };
1924
2742
  getAttachment: {
2743
+ readonly annotations: {
2744
+ readonly destructiveHint: false;
2745
+ readonly openWorldHint: false;
2746
+ readonly readOnlyHint: true;
2747
+ };
1925
2748
  readonly description: "Read one attachment of a workspace email as base64 content, by file name or by position. email.get lists both.";
1926
2749
  readonly input: z.ZodObject<{
1927
2750
  fileName: z.ZodOptional<z.ZodString>;
@@ -1940,6 +2763,11 @@ export declare const publicContractsV1: {
1940
2763
  }, z.core.$strip>;
1941
2764
  };
1942
2765
  listAddresses: {
2766
+ readonly annotations: {
2767
+ readonly destructiveHint: false;
2768
+ readonly openWorldHint: false;
2769
+ readonly readOnlyHint: true;
2770
+ };
1943
2771
  readonly description: "List the workspace's inbox addresses, alphabetical. A flow can sign up with a plus-suffixed form of any of them, and email.find reads what arrives.";
1944
2772
  readonly input: z.ZodObject<{
1945
2773
  cursor: z.ZodOptional<z.ZodString>;
@@ -1958,6 +2786,11 @@ export declare const publicContractsV1: {
1958
2786
  }, z.core.$strip>;
1959
2787
  };
1960
2788
  registerAddress: {
2789
+ readonly annotations: {
2790
+ readonly destructiveHint: false;
2791
+ readonly openWorldHint: false;
2792
+ readonly readOnlyHint: false;
2793
+ };
1961
2794
  readonly description: "Register an inbox address for the workspace. Registering an address the workspace already has changes nothing. A refusal names the domains the workspace can use.";
1962
2795
  readonly input: z.ZodObject<{
1963
2796
  address: z.ZodEmail;
@@ -1972,6 +2805,11 @@ export declare const publicContractsV1: {
1972
2805
  }, z.core.$strip>;
1973
2806
  };
1974
2807
  send: {
2808
+ readonly annotations: {
2809
+ readonly destructiveHint: true;
2810
+ readonly openWorldHint: true;
2811
+ readonly readOnlyHint: false;
2812
+ };
1975
2813
  readonly description: "Send an email from one of the workspace's inbox addresses, for example to exercise a flow that reacts to incoming mail. Returns the sent email; read it back with email.get.";
1976
2814
  readonly input: z.ZodObject<{
1977
2815
  attachments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBase64>>;
@@ -2010,7 +2848,12 @@ export declare const publicContractsV1: {
2010
2848
  };
2011
2849
  environment: {
2012
2850
  create: {
2013
- readonly description: "Create an environment on the caller's team and return it in the environment.get shape.";
2851
+ readonly annotations: {
2852
+ readonly destructiveHint: false;
2853
+ readonly openWorldHint: true;
2854
+ readonly readOnlyHint: false;
2855
+ };
2856
+ readonly description: "Create an environment on the caller's team and return it in the environment.get shape. This can also create a branch on the team's connected Git provider.";
2014
2857
  readonly input: z.ZodObject<{
2015
2858
  name: z.ZodString;
2016
2859
  workspaceId: z.ZodOptional<PublicIdSchema>;
@@ -2036,9 +2879,9 @@ export declare const publicContractsV1: {
2036
2879
  name: z.ZodString;
2037
2880
  runConcurrencyLimit: z.ZodString;
2038
2881
  status: z.ZodEnum<{
2039
- ready: "ready";
2040
2882
  blocked: "blocked";
2041
2883
  "needs-investigation": "needs-investigation";
2884
+ ready: "ready";
2042
2885
  running: "running";
2043
2886
  }>;
2044
2887
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -2046,6 +2889,11 @@ export declare const publicContractsV1: {
2046
2889
  }, z.core.$strip>;
2047
2890
  };
2048
2891
  deleteVariable: {
2892
+ readonly annotations: {
2893
+ readonly destructiveHint: true;
2894
+ readonly openWorldHint: false;
2895
+ readonly readOnlyHint: false;
2896
+ };
2049
2897
  readonly description: "Remove one environment variable by name. Succeeds whether or not the variable existed.";
2050
2898
  readonly input: z.ZodObject<{
2051
2899
  environmentId: PublicIdSchema;
@@ -2058,6 +2906,11 @@ export declare const publicContractsV1: {
2058
2906
  }, z.core.$strip>;
2059
2907
  };
2060
2908
  find: {
2909
+ readonly annotations: {
2910
+ readonly destructiveHint: false;
2911
+ readonly openWorldHint: false;
2912
+ readonly readOnlyHint: true;
2913
+ };
2061
2914
  readonly description: "List the team's environments, newest first.";
2062
2915
  readonly input: z.ZodObject<{
2063
2916
  cursor: z.ZodOptional<z.ZodString>;
@@ -2092,9 +2945,9 @@ export declare const publicContractsV1: {
2092
2945
  name: z.ZodString;
2093
2946
  runConcurrencyLimit: z.ZodString;
2094
2947
  status: z.ZodEnum<{
2095
- ready: "ready";
2096
2948
  blocked: "blocked";
2097
2949
  "needs-investigation": "needs-investigation";
2950
+ ready: "ready";
2098
2951
  running: "running";
2099
2952
  }>;
2100
2953
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -2104,6 +2957,11 @@ export declare const publicContractsV1: {
2104
2957
  }, z.core.$strip>;
2105
2958
  };
2106
2959
  get: {
2960
+ readonly annotations: {
2961
+ readonly destructiveHint: false;
2962
+ readonly openWorldHint: false;
2963
+ readonly readOnlyHint: true;
2964
+ };
2107
2965
  readonly description: "Read a single environment's name, kind, standing run health, flow-code branch and reconciliation state, run concurrency limit, and termination state. If flowCodeBranch exists, use its syncStatus for Git reconciliation and read lastSyncedCommitHash only when syncStatus is reconciled.";
2108
2966
  readonly input: z.ZodObject<{
2109
2967
  environmentId: PublicIdSchema;
@@ -2129,9 +2987,9 @@ export declare const publicContractsV1: {
2129
2987
  name: z.ZodString;
2130
2988
  runConcurrencyLimit: z.ZodString;
2131
2989
  status: z.ZodEnum<{
2132
- ready: "ready";
2133
2990
  blocked: "blocked";
2134
2991
  "needs-investigation": "needs-investigation";
2992
+ ready: "ready";
2135
2993
  running: "running";
2136
2994
  }>;
2137
2995
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -2139,6 +2997,11 @@ export declare const publicContractsV1: {
2139
2997
  }, z.core.$strip>;
2140
2998
  };
2141
2999
  getVariable: {
3000
+ readonly annotations: {
3001
+ readonly destructiveHint: false;
3002
+ readonly openWorldHint: false;
3003
+ readonly readOnlyHint: true;
3004
+ };
2142
3005
  readonly description: "Read the values of named environment variables in one call. Values are secrets. Names that do not exist go to missingNames and do not fail the call.";
2143
3006
  readonly input: z.ZodObject<{
2144
3007
  environmentId: PublicIdSchema;
@@ -2155,6 +3018,11 @@ export declare const publicContractsV1: {
2155
3018
  }, z.core.$strip>;
2156
3019
  };
2157
3020
  listVariableNames: {
3021
+ readonly annotations: {
3022
+ readonly destructiveHint: false;
3023
+ readonly openWorldHint: false;
3024
+ readonly readOnlyHint: true;
3025
+ };
2158
3026
  readonly description: "Use this to answer which QA Wolf environment variables are available to test code. Returns names only; values never leave the server.";
2159
3027
  readonly input: z.ZodObject<{
2160
3028
  environmentId: PublicIdSchema;
@@ -2166,6 +3034,11 @@ export declare const publicContractsV1: {
2166
3034
  }, z.core.$strip>;
2167
3035
  };
2168
3036
  setVariable: {
3037
+ readonly annotations: {
3038
+ readonly destructiveHint: true;
3039
+ readonly openWorldHint: false;
3040
+ readonly readOnlyHint: false;
3041
+ };
2169
3042
  readonly description: "Create or replace an environment variable. If the user asks to create one for \"my email\" without naming it, use DEFAULT_EMAIL. The value is never returned.";
2170
3043
  readonly input: z.ZodObject<{
2171
3044
  environmentId: PublicIdSchema;
@@ -2179,6 +3052,11 @@ export declare const publicContractsV1: {
2179
3052
  }, z.core.$strip>;
2180
3053
  };
2181
3054
  update: {
3055
+ readonly annotations: {
3056
+ readonly destructiveHint: true;
3057
+ readonly openWorldHint: false;
3058
+ readonly readOnlyHint: false;
3059
+ };
2182
3060
  readonly description: "Update an environment owned by the caller's team and return it in the environment.get shape. Omitted fields remain unchanged.";
2183
3061
  readonly input: z.ZodObject<{
2184
3062
  environmentId: PublicIdSchema;
@@ -2206,9 +3084,9 @@ export declare const publicContractsV1: {
2206
3084
  name: z.ZodString;
2207
3085
  runConcurrencyLimit: z.ZodString;
2208
3086
  status: z.ZodEnum<{
2209
- ready: "ready";
2210
3087
  blocked: "blocked";
2211
3088
  "needs-investigation": "needs-investigation";
3089
+ ready: "ready";
2212
3090
  running: "running";
2213
3091
  }>;
2214
3092
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -2216,8 +3094,54 @@ export declare const publicContractsV1: {
2216
3094
  }, z.core.$strip>;
2217
3095
  };
2218
3096
  };
3097
+ file: {
3098
+ requestDownload: {
3099
+ readonly annotations: {
3100
+ readonly destructiveHint: false;
3101
+ readonly openWorldHint: false;
3102
+ readonly readOnlyHint: true;
3103
+ };
3104
+ readonly description: "Get a URL for reading a file out of the caller's team storage. Answers 404 when nothing is stored at that path.";
3105
+ readonly input: z.ZodObject<{
3106
+ filePath: z.ZodString;
3107
+ workspaceId: z.ZodOptional<PublicIdSchema>;
3108
+ }, z.core.$strip>;
3109
+ readonly kind: "read";
3110
+ readonly name: "file.requestDownload";
3111
+ readonly output: z.ZodObject<{
3112
+ expiresAt: z.ZodISODateTime;
3113
+ path: z.ZodString;
3114
+ readUrl: z.ZodString;
3115
+ }, z.core.$strip>;
3116
+ };
3117
+ requestUpload: {
3118
+ readonly annotations: {
3119
+ readonly destructiveHint: true;
3120
+ readonly openWorldHint: false;
3121
+ readonly readOnlyHint: false;
3122
+ };
3123
+ readonly description: "Get a URL to put a file into team storage: a spreadsheet of journeys, anything too large to paste. PUT with the returned contentType, then name the path in filePaths.";
3124
+ readonly input: z.ZodObject<{
3125
+ fileName: z.ZodString;
3126
+ workspaceId: z.ZodOptional<PublicIdSchema>;
3127
+ }, z.core.$strip>;
3128
+ readonly kind: "write";
3129
+ readonly name: "file.requestUpload";
3130
+ readonly output: z.ZodObject<{
3131
+ contentType: z.ZodString;
3132
+ expiresAt: z.ZodISODateTime;
3133
+ path: z.ZodString;
3134
+ uploadUrl: z.ZodString;
3135
+ }, z.core.$strip>;
3136
+ };
3137
+ };
2219
3138
  flow: {
2220
3139
  addTag: {
3140
+ readonly annotations: {
3141
+ readonly destructiveHint: false;
3142
+ readonly openWorldHint: false;
3143
+ readonly readOnlyHint: false;
3144
+ };
2221
3145
  readonly description: "Assign an existing tag to the selected flows. Create tags with tag.create. Flows that already carry the tag are reported in skippedFlows.";
2222
3146
  readonly input: z.ZodObject<{
2223
3147
  flowIds: z.ZodArray<PublicIdSchema>;
@@ -2239,6 +3163,11 @@ export declare const publicContractsV1: {
2239
3163
  }, z.core.$strip>;
2240
3164
  };
2241
3165
  list: {
3166
+ readonly annotations: {
3167
+ readonly destructiveHint: false;
3168
+ readonly openWorldHint: false;
3169
+ readonly readOnlyHint: true;
3170
+ };
2242
3171
  readonly description: "List the flows of an environment at its latest reconciled commit, or, when an AI task is given, the flows on that task's branch.";
2243
3172
  readonly input: z.ZodObject<{
2244
3173
  aiTaskId: z.ZodOptional<PublicIdSchema>;
@@ -2263,6 +3192,11 @@ export declare const publicContractsV1: {
2263
3192
  }, z.core.$strip>;
2264
3193
  };
2265
3194
  removeTag: {
3195
+ readonly annotations: {
3196
+ readonly destructiveHint: true;
3197
+ readonly openWorldHint: false;
3198
+ readonly readOnlyHint: false;
3199
+ };
2266
3200
  readonly description: "Remove a tag from the selected flows. Succeeds whether or not each flow carried the tag; the flows that did not are reported in skippedFlows.";
2267
3201
  readonly input: z.ZodObject<{
2268
3202
  flowIds: z.ZodArray<PublicIdSchema>;
@@ -2284,6 +3218,11 @@ export declare const publicContractsV1: {
2284
3218
  }, z.core.$strip>;
2285
3219
  };
2286
3220
  update: {
3221
+ readonly annotations: {
3222
+ readonly destructiveHint: true;
3223
+ readonly openWorldHint: false;
3224
+ readonly readOnlyHint: false;
3225
+ };
2287
3226
  readonly description: "Move a flow between draft and active readiness. The other statuses shown in the app are derived and cannot be set.";
2288
3227
  readonly input: z.ZodObject<{
2289
3228
  flowId: PublicIdSchema;
@@ -2309,6 +3248,11 @@ export declare const publicContractsV1: {
2309
3248
  };
2310
3249
  issue: {
2311
3250
  addFlows: {
3251
+ readonly annotations: {
3252
+ readonly destructiveHint: false;
3253
+ readonly openWorldHint: false;
3254
+ readonly readOnlyHint: false;
3255
+ };
2312
3256
  readonly description: string;
2313
3257
  readonly input: z.ZodObject<{
2314
3258
  flowIds: z.ZodArray<PublicIdSchema>;
@@ -2356,6 +3300,11 @@ export declare const publicContractsV1: {
2356
3300
  }, z.core.$strip>;
2357
3301
  };
2358
3302
  create: {
3303
+ readonly annotations: {
3304
+ readonly destructiveHint: true;
3305
+ readonly openWorldHint: true;
3306
+ readonly readOnlyHint: false;
3307
+ };
2359
3308
  readonly description: string;
2360
3309
  readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
2361
3310
  type: z.ZodLiteral<"bug">;
@@ -2425,6 +3374,11 @@ export declare const publicContractsV1: {
2425
3374
  }, z.core.$strip>;
2426
3375
  };
2427
3376
  find: {
3377
+ readonly annotations: {
3378
+ readonly destructiveHint: false;
3379
+ readonly openWorldHint: false;
3380
+ readonly readOnlyHint: true;
3381
+ };
2428
3382
  readonly description: "List the team's bug reports, maintenance reports, or coverage requests, newest first.";
2429
3383
  readonly input: z.ZodObject<{
2430
3384
  statuses: z.ZodDefault<z.ZodArray<z.ZodEnum<{
@@ -2487,6 +3441,11 @@ export declare const publicContractsV1: {
2487
3441
  }, z.core.$strip>;
2488
3442
  };
2489
3443
  get: {
3444
+ readonly annotations: {
3445
+ readonly destructiveHint: false;
3446
+ readonly openWorldHint: false;
3447
+ readonly readOnlyHint: true;
3448
+ };
2490
3449
  readonly description: "Get an issue by id.";
2491
3450
  readonly input: z.ZodObject<{
2492
3451
  issueId: PublicIdSchema;
@@ -2533,6 +3492,11 @@ export declare const publicContractsV1: {
2533
3492
  }, z.core.$strip>;
2534
3493
  };
2535
3494
  removeFlows: {
3495
+ readonly annotations: {
3496
+ readonly destructiveHint: true;
3497
+ readonly openWorldHint: false;
3498
+ readonly readOnlyHint: false;
3499
+ };
2536
3500
  readonly description: string;
2537
3501
  readonly input: z.ZodObject<{
2538
3502
  flowIds: z.ZodArray<PublicIdSchema>;
@@ -2580,6 +3544,11 @@ export declare const publicContractsV1: {
2580
3544
  }, z.core.$strip>;
2581
3545
  };
2582
3546
  update: {
3547
+ readonly annotations: {
3548
+ readonly destructiveHint: true;
3549
+ readonly openWorldHint: true;
3550
+ readonly readOnlyHint: false;
3551
+ };
2583
3552
  readonly description: "Update an issue owned by the caller's team. Omitted fields remain unchanged.";
2584
3553
  readonly input: z.ZodObject<{
2585
3554
  description: z.ZodOptional<z.ZodString>;
@@ -2645,6 +3614,11 @@ export declare const publicContractsV1: {
2645
3614
  };
2646
3615
  run: {
2647
3616
  create: {
3617
+ readonly annotations: {
3618
+ readonly destructiveHint: true;
3619
+ readonly openWorldHint: true;
3620
+ readonly readOnlyHint: false;
3621
+ };
2648
3622
  readonly description: "Create a run for the selected flows and/or tags in an environment.";
2649
3623
  readonly input: z.ZodIntersection<z.ZodObject<{
2650
3624
  aiTaskId: z.ZodOptional<PublicIdSchema>;
@@ -2679,6 +3653,11 @@ export declare const publicContractsV1: {
2679
3653
  }, z.core.$strip>;
2680
3654
  };
2681
3655
  diagnose: {
3656
+ readonly annotations: {
3657
+ readonly destructiveHint: true;
3658
+ readonly openWorldHint: true;
3659
+ readonly readOnlyHint: false;
3660
+ };
2682
3661
  readonly description: string;
2683
3662
  readonly input: z.ZodObject<{
2684
3663
  flowIds: z.ZodArray<PublicIdSchema>;
@@ -2727,6 +3706,11 @@ export declare const publicContractsV1: {
2727
3706
  }, z.core.$strip>;
2728
3707
  };
2729
3708
  find: {
3709
+ readonly annotations: {
3710
+ readonly destructiveHint: false;
3711
+ readonly openWorldHint: false;
3712
+ readonly readOnlyHint: true;
3713
+ };
2730
3714
  readonly description: "List an environment's recent runs, newest first.";
2731
3715
  readonly input: z.ZodObject<{
2732
3716
  environmentId: PublicIdSchema;
@@ -2760,6 +3744,11 @@ export declare const publicContractsV1: {
2760
3744
  }, z.core.$strip>;
2761
3745
  };
2762
3746
  get: {
3747
+ readonly annotations: {
3748
+ readonly destructiveHint: false;
3749
+ readonly openWorldHint: false;
3750
+ readonly readOnlyHint: true;
3751
+ };
2763
3752
  readonly description: "Get a run's status, per-flow results, and links.";
2764
3753
  readonly input: z.ZodObject<{
2765
3754
  runId: PublicIdSchema;
@@ -2865,6 +3854,11 @@ export declare const publicContractsV1: {
2865
3854
  }, z.core.$strip>;
2866
3855
  };
2867
3856
  reattempt: {
3857
+ readonly annotations: {
3858
+ readonly destructiveHint: true;
3859
+ readonly openWorldHint: true;
3860
+ readonly readOnlyHint: false;
3861
+ };
2868
3862
  readonly description: string;
2869
3863
  readonly input: z.ZodObject<{
2870
3864
  flowIds: z.ZodOptional<z.ZodArray<PublicIdSchema>>;
@@ -2879,7 +3873,12 @@ export declare const publicContractsV1: {
2879
3873
  }, z.core.$strip>;
2880
3874
  };
2881
3875
  stop: {
2882
- readonly description: "Stop a run, including its queued flows and automatic retries. Stopping is asynchronous. Repeated requests are safe, and finished runs keep their results. A run that is still being created returns not found; retry once run.get returns the run. If run.get returns a different runId, use that ID. Poll run.get for results.";
3876
+ readonly annotations: {
3877
+ readonly destructiveHint: true;
3878
+ readonly openWorldHint: true;
3879
+ readonly readOnlyHint: false;
3880
+ };
3881
+ readonly description: "Stop a run, including its queued flows and automatic retries. Stopping is asynchronous and can update run-status messages and commit statuses in connected integrations. Repeated requests are safe, and finished runs keep their results. A run that is still being created returns not found; retry once run.get returns the run. If run.get returns a different runId, use that ID. Poll run.get for results.";
2883
3882
  readonly input: z.ZodObject<{
2884
3883
  runId: PublicIdSchema;
2885
3884
  }, z.core.$strip>;
@@ -2898,6 +3897,11 @@ export declare const publicContractsV1: {
2898
3897
  };
2899
3898
  runner: {
2900
3899
  evaluateSnippet: {
3900
+ readonly annotations: {
3901
+ readonly destructiveHint: true;
3902
+ readonly openWorldHint: true;
3903
+ readonly readOnlyHint: false;
3904
+ };
2901
3905
  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.";
2902
3906
  readonly input: z.ZodObject<{
2903
3907
  code: z.ZodString;
@@ -2918,13 +3922,18 @@ export declare const publicContractsV1: {
2918
3922
  }>;
2919
3923
  }, z.core.$strip>, z.ZodObject<{
2920
3924
  failureReason: z.ZodEnum<{
2921
- "runner-unreachable": "runner-unreachable";
2922
3925
  "runner-cannot-evaluate-snippets": "runner-cannot-evaluate-snippets";
3926
+ "runner-unreachable": "runner-unreachable";
2923
3927
  }>;
2924
3928
  outcome: z.ZodLiteral<"failure">;
2925
3929
  }, z.core.$strip>], "outcome">;
2926
3930
  };
2927
3931
  get: {
3932
+ readonly annotations: {
3933
+ readonly destructiveHint: false;
3934
+ readonly openWorldHint: false;
3935
+ readonly readOnlyHint: true;
3936
+ };
2928
3937
  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.";
2929
3938
  readonly input: z.ZodObject<{
2930
3939
  id: z.ZodString;
@@ -2939,6 +3948,11 @@ export declare const publicContractsV1: {
2939
3948
  }, z.core.$strip>;
2940
3949
  };
2941
3950
  highlightSelector: {
3951
+ readonly annotations: {
3952
+ readonly destructiveHint: false;
3953
+ readonly openWorldHint: false;
3954
+ readonly readOnlyHint: false;
3955
+ };
2942
3956
  readonly description: "Highlight the elements a selector matches on an interactive runner's live page, and answer how many it matched. The highlight stays until it is replaced or cleared, so it is visible in the next `runner.takeScreenshot` — which is the point, since a caller cannot see the runner's screen otherwise. Send an empty selector to clear, which answers `cleared`. `status` tells a selector that matched nothing (`empty`) from one the page could not parse (`invalid`), so a caller can tell a bad locator from a locator pointing at nothing. `no-answer` if the page did not answer in time: the highlight runs inside the page, so a page that is gone or mid-navigation does not answer slowly, it does not answer at all. `runner-cannot-highlight-selectors` on a runner with no browser to draw on. `runner-unreachable` if the runner could not be reached: it may still be starting, or it may have terminated after inactivity.";
2943
3957
  readonly input: z.ZodObject<{
2944
3958
  id: z.ZodString;
@@ -2966,6 +3980,11 @@ export declare const publicContractsV1: {
2966
3980
  }, z.core.$strip>], "outcome">;
2967
3981
  };
2968
3982
  importPackage: {
3983
+ readonly annotations: {
3984
+ readonly destructiveHint: true;
3985
+ readonly openWorldHint: true;
3986
+ readonly readOnlyHint: false;
3987
+ };
2969
3988
  readonly description: "Install a package into an interactive runner's live run and import it, so a snippet or a selection can use it without a full run to reinstall dependencies. An `install-failed` failure carries npm's reason in `errorMessage`. `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 install may still have landed, but installing the same version again does nothing, so retrying is safe.";
2970
3989
  readonly input: z.ZodObject<{
2971
3990
  id: z.ZodString;
@@ -2988,6 +4007,11 @@ export declare const publicContractsV1: {
2988
4007
  }, z.core.$strip>], "outcome">;
2989
4008
  };
2990
4009
  inspect: {
4010
+ readonly annotations: {
4011
+ readonly destructiveHint: false;
4012
+ readonly openWorldHint: false;
4013
+ readonly readOnlyHint: false;
4014
+ };
2991
4015
  readonly description: string;
2992
4016
  readonly input: z.ZodObject<{
2993
4017
  id: z.ZodString;
@@ -3019,7 +4043,12 @@ export declare const publicContractsV1: {
3019
4043
  }, z.core.$strip>], "outcome">;
3020
4044
  };
3021
4045
  inspectMobile: {
3022
- readonly description: "Inspect one thing on a mobile interactive runner: the Appium session's status, the WebView contexts available, the current context's page source, or the elements at a point or carrying some text. Mobile only — a browser runner answers `runner-is-not-mobile`; call `runner.inspect` for a browser's equivalent surface instead. `what: \"session\"` always answers with the session's own status rather than `screen-needs-a-run`, since that is the question it exists to answer; the other three request kinds need a live session first and answer the same `screen-needs-a-run` or `screen-not-ready` outcomes `runner.performAction` and `runner.takeScreenshot` use, instead of reading anything when there is none. `screen-needs-a-run` means no Appium session has started on this runner yet — call `runner.runFlow` with a flow that opens one, then inspect again. `screen-not-ready` means the runner's Appium session exists but did not answer this instant, or more than one is somehow live — retry once; if it persists, relaunch the runner. `runner-is-not-mobile` means there is nothing here to inspect, and retrying will never help — launch an `android` or `ios` 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.";
4046
+ readonly annotations: {
4047
+ readonly destructiveHint: false;
4048
+ readonly openWorldHint: false;
4049
+ readonly readOnlyHint: true;
4050
+ };
4051
+ readonly description: "Inspect one thing on a mobile interactive runner: the Appium session's status, the WebView contexts available, the current context's page source, or the elements at a point, carrying some text, or matching a selector. This does not refresh the runner's inactivity timer. Mobile only — a browser runner answers `runner-is-not-mobile`; call `runner.inspect` for a browser's equivalent surface instead. `what: \"session\"` always answers with the session's own status rather than `screen-needs-a-run`, since that is the question it exists to answer; the other three request kinds need a live session first and answer the same `screen-needs-a-run` or `screen-not-ready` outcomes `runner.performAction` and `runner.takeScreenshot` use, instead of reading anything when there is none. `screen-needs-a-run` means no Appium session has started on this runner yet — call `runner.runFlow` with a flow that opens one, then inspect again. `screen-not-ready` means the runner's Appium session exists but did not answer this instant, or more than one is somehow live — retry once; if it persists, relaunch the runner. `runner-is-not-mobile` means there is nothing here to inspect, and retrying will never help — launch an `android` or `ios` runner instead. `invalid-selector` (elements by selector only) means the selector itself could not be parsed under the given `strategy` — distinct from a selector that parsed fine but matched nothing, which answers `matches: []` 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.";
3023
4052
  readonly input: z.ZodObject<{
3024
4053
  id: z.ZodString;
3025
4054
  request: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -3041,6 +4070,16 @@ export declare const publicContractsV1: {
3041
4070
  partial: z.ZodOptional<z.ZodBoolean>;
3042
4071
  text: z.ZodString;
3043
4072
  what: z.ZodLiteral<"elements">;
4073
+ }, z.core.$strip>, z.ZodObject<{
4074
+ by: z.ZodLiteral<"selector">;
4075
+ context: z.ZodOptional<z.ZodString>;
4076
+ selector: z.ZodString;
4077
+ strategy: z.ZodDefault<z.ZodEnum<{
4078
+ "ios-predicate": "ios-predicate";
4079
+ shadow: "shadow";
4080
+ xpath: "xpath";
4081
+ }>>;
4082
+ what: z.ZodLiteral<"elements">;
3044
4083
  }, z.core.$strip>], "by">], "what">;
3045
4084
  workspaceId: z.ZodOptional<PublicIdSchema>;
3046
4085
  }, z.core.$strip>;
@@ -3215,6 +4254,7 @@ export declare const publicContractsV1: {
3215
4254
  }, z.core.$strip>], "what">, z.ZodObject<{
3216
4255
  failureReason: z.ZodEnum<{
3217
4256
  "runner-unreachable": "runner-unreachable";
4257
+ "invalid-selector": "invalid-selector";
3218
4258
  "runner-is-not-mobile": "runner-is-not-mobile";
3219
4259
  "screen-needs-a-run": "screen-needs-a-run";
3220
4260
  "screen-not-ready": "screen-not-ready";
@@ -3223,6 +4263,11 @@ export declare const publicContractsV1: {
3223
4263
  }, z.core.$strip>], "outcome">;
3224
4264
  };
3225
4265
  launch: {
4266
+ readonly annotations: {
4267
+ readonly destructiveHint: true;
4268
+ readonly openWorldHint: false;
4269
+ readonly readOnlyHint: false;
4270
+ };
3226
4271
  readonly description: "Launch an interactive runner on the caller's team under an id the caller chooses. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner — so read `alreadyRunning` to tell which happened.";
3227
4272
  readonly input: z.ZodObject<{
3228
4273
  id: z.ZodString;
@@ -3245,11 +4290,17 @@ export declare const publicContractsV1: {
3245
4290
  android: "android";
3246
4291
  ios: "ios";
3247
4292
  }>;
4293
+ url: z.ZodURL;
3248
4294
  alreadyRunning: z.ZodBoolean;
3249
4295
  outcome: z.ZodLiteral<"success">;
3250
4296
  }, z.core.$strip>;
3251
4297
  };
3252
4298
  list: {
4299
+ readonly annotations: {
4300
+ readonly destructiveHint: false;
4301
+ readonly openWorldHint: false;
4302
+ readonly readOnlyHint: true;
4303
+ };
3253
4304
  readonly description: "List the runners running on the caller's team right now. A team API key already names the team and sends nothing; a credential bound to no single workspace names one in `workspaceId`. A runner that was terminated, or that terminated on its own after inactivity, is not listed, because the run system keeps no record of a runner once it is gone. 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. It is how to find a runner launched from another machine or in an earlier session, when the id it was launched under is no longer at hand.";
3254
4305
  readonly input: z.ZodObject<{
3255
4306
  workspaceId: z.ZodOptional<PublicIdSchema>;
@@ -3267,10 +4318,16 @@ export declare const publicContractsV1: {
3267
4318
  android: "android";
3268
4319
  ios: "ios";
3269
4320
  }>;
4321
+ url: z.ZodURL;
3270
4322
  }, z.core.$strip>>;
3271
4323
  }, z.core.$strip>;
3272
4324
  };
3273
4325
  performAction: {
4326
+ readonly annotations: {
4327
+ readonly destructiveHint: true;
4328
+ readonly openWorldHint: true;
4329
+ readonly readOnlyHint: false;
4330
+ };
3274
4331
  readonly description: "Perform one raw browser action on an interactive runner: click, double_click, move, drag, scroll, keypress, type, or navigate. Coordinates are whole pixels on the runner's virtual desktop, in the same space as `runner.takeScreenshot`. One action per request, and the runner serves one at a time. The action shapes follow the computer-use vocabulary, minus `screenshot` (use `runner.takeScreenshot`) and `wait` (delay on the caller's side). A success means the action took effect. `action-failed`, with a reason, if it reached the runner and did not take effect. On a runner image with a browser, the first action on a runner that has never run anything starts its browser and waits for it, so it can take up to a minute to answer — no `runner.runFlow` is needed before acting; if the browser is still starting when the wait runs out, the answer is `screen-not-ready` and retrying converges. On a mobile runner, the same `screen-needs-a-run` and `screen-not-ready` outcomes mean no Appium session has started yet, or it did not answer this instant; `runner.runFlow` is what starts one, same as a browser. `screen-needs-a-run` if the browser could not be started that way — usually a runner whose runs all finished without starting its desktop; call `runner.runFlow` with a flow that opens a browser. `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. A `navigate` does not go through the screen, so a screen that is not ready does not stop 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. `action-not-supported-on-mobile` if the runner is a mobile device and this action has no touchscreen equivalent: `double_click`, `scroll`, `move`, `keypress` and `navigate`, and a `click` whose `button` is not `left`, are all pointer-device concepts a touchscreen has nothing to offer for. `click` taps, `drag` swipes between its path's first and last point, and `type` types into whatever the last tap focused. With `withScreenshot: true`, the answer also carries `imageJpegBase64`: a screenshot taken after the action, once the screen has changed from just before it or half a second has passed, whichever comes first. One call instead of `runner.performAction` followed by `runner.takeScreenshot`, with no fixed wait in between. Anything animating on the page counts as a change. The action itself is performed exactly as without the option; if the screen could serve no frame after it — a display restart, or a `navigate` on a desktop that is still starting — the action's result comes back without `imageJpegBase64`, so take a screenshot separately rather than repeating the action. On a mobile runner the screenshot is the device's own, taken right after a performed action. `runner-unreachable` if the runner could not be reached: it may still be starting, it may have terminated after inactivity, or it may have stopped answering mid-action. This does not mean the action was not performed — take a screenshot before repeating it.";
3275
4332
  readonly input: z.ZodObject<{
3276
4333
  action: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -3334,6 +4391,11 @@ export declare const publicContractsV1: {
3334
4391
  }, z.core.$strip>], "failureReason">], "outcome">;
3335
4392
  };
3336
4393
  promoteSnapshot: {
4394
+ readonly annotations: {
4395
+ readonly destructiveHint: true;
4396
+ readonly openWorldHint: false;
4397
+ readonly readOnlyHint: false;
4398
+ };
3337
4399
  readonly description: "Accept a run's screenshot as the new baseline for an image diff, on the runner that produced it. The two paths are the ones the diff reported, which reach a caller as an `image-diff-artifact` entry on the runner's `run-events` journal stream. `snapshot-not-found` if the run wrote no screenshot at that path, which usually means the paths were not taken from a diff this run produced; nothing is changed, so correcting the path and repeating is safe. `runner-cannot-promote-snapshots` on a runner that stores no screenshots. `runner-unreachable` if the runner could not be reached: it may still be starting, or it may have terminated after inactivity. A promotion that lands is not undone by promoting again, so a retry after an unreachable answer is safe.";
3338
4400
  readonly input: z.ZodObject<{
3339
4401
  baselinePath: z.ZodString;
@@ -3355,6 +4417,11 @@ export declare const publicContractsV1: {
3355
4417
  }, z.core.$strip>], "outcome">;
3356
4418
  };
3357
4419
  readJournal: {
4420
+ readonly annotations: {
4421
+ readonly destructiveHint: false;
4422
+ readonly openWorldHint: false;
4423
+ readonly readOnlyHint: false;
4424
+ };
3358
4425
  readonly description: "Read a window of one of an interactive runner's journal streams — the newest few, everything after a cursor, or everything belonging to one run. This is how a flow run's outcome and output are followed: `run-status` settles it, `run-logs` and `run-events` carry what it produced, and `recorder` carries the browser actions the runner recorded. A read counts as activity, so working through history does not get the runner reaped underneath you. `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.";
3359
4426
  readonly input: z.ZodObject<{
3360
4427
  runId: z.ZodOptional<z.ZodString>;
@@ -3371,7 +4438,7 @@ export declare const publicContractsV1: {
3371
4438
  payload: z.ZodUnknown;
3372
4439
  recordedAt: z.ZodISODateTime;
3373
4440
  sequence: z.ZodNumber;
3374
- }, z.core.$strip>, z.ZodTransform<import("./runnerReexports.js").JournalEntry<unknown>, {
4441
+ }, z.core.$strip>, z.ZodTransform<import("./sharedSchemas.js").JournalEntry<unknown>, {
3375
4442
  payload: unknown;
3376
4443
  recordedAt: string;
3377
4444
  sequence: number;
@@ -3388,6 +4455,11 @@ export declare const publicContractsV1: {
3388
4455
  }, z.core.$strip>], "outcome">;
3389
4456
  };
3390
4457
  runFlow: {
4458
+ readonly annotations: {
4459
+ readonly destructiveHint: true;
4460
+ readonly openWorldHint: true;
4461
+ readonly readOnlyHint: false;
4462
+ };
3391
4463
  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.";
3392
4464
  readonly input: z.ZodObject<{
3393
4465
  entryPointPath: z.ZodString;
@@ -3434,6 +4506,11 @@ export declare const publicContractsV1: {
3434
4506
  }, z.core.$strip>], "failureReason">], "outcome">;
3435
4507
  };
3436
4508
  stopRun: {
4509
+ readonly annotations: {
4510
+ readonly destructiveHint: true;
4511
+ readonly openWorldHint: false;
4512
+ readonly readOnlyHint: false;
4513
+ };
3437
4514
  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.";
3438
4515
  readonly input: z.ZodObject<{
3439
4516
  id: z.ZodString;
@@ -3452,7 +4529,12 @@ export declare const publicContractsV1: {
3452
4529
  }, z.core.$strip>], "outcome">;
3453
4530
  };
3454
4531
  takeScreenshot: {
3455
- 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. 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.";
4532
+ readonly annotations: {
4533
+ readonly destructiveHint: false;
4534
+ readonly openWorldHint: false;
4535
+ readonly readOnlyHint: false;
4536
+ };
4537
+ 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.";
3456
4538
  readonly input: z.ZodObject<{
3457
4539
  id: z.ZodString;
3458
4540
  workspaceId: z.ZodOptional<PublicIdSchema>;
@@ -3473,6 +4555,11 @@ export declare const publicContractsV1: {
3473
4555
  }, z.core.$strip>], "outcome">;
3474
4556
  };
3475
4557
  terminate: {
4558
+ readonly annotations: {
4559
+ readonly destructiveHint: true;
4560
+ readonly openWorldHint: false;
4561
+ readonly readOnlyHint: false;
4562
+ };
3476
4563
  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.";
3477
4564
  readonly input: z.ZodObject<{
3478
4565
  id: z.ZodString;
@@ -3489,6 +4576,11 @@ export declare const publicContractsV1: {
3489
4576
  };
3490
4577
  tag: {
3491
4578
  create: {
4579
+ readonly annotations: {
4580
+ readonly destructiveHint: false;
4581
+ readonly openWorldHint: false;
4582
+ readonly readOnlyHint: false;
4583
+ };
3492
4584
  readonly description: "Create a tag on the caller's team. Tags select flows in run.create.";
3493
4585
  readonly input: z.ZodObject<{
3494
4586
  name: z.ZodString;
@@ -3503,6 +4595,11 @@ export declare const publicContractsV1: {
3503
4595
  }, z.core.$strip>;
3504
4596
  };
3505
4597
  list: {
4598
+ readonly annotations: {
4599
+ readonly destructiveHint: false;
4600
+ readonly openWorldHint: false;
4601
+ readonly readOnlyHint: true;
4602
+ };
3506
4603
  readonly description: "List the team's tags, alphabetical by name. Tag names select flows in run.create.";
3507
4604
  readonly input: z.ZodObject<{
3508
4605
  cursor: z.ZodOptional<z.ZodString>;
@@ -3524,5 +4621,496 @@ export declare const publicContractsV1: {
3524
4621
  }, z.core.$strip>;
3525
4622
  };
3526
4623
  };
4624
+ trigger: {
4625
+ create: {
4626
+ readonly annotations: {
4627
+ readonly destructiveHint: true;
4628
+ readonly openWorldHint: true;
4629
+ readonly readOnlyHint: false;
4630
+ };
4631
+ readonly description: string;
4632
+ readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
4633
+ kind: z.ZodLiteral<"schedule">;
4634
+ action: z.ZodObject<{
4635
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4636
+ instructions: z.ZodOptional<z.ZodString>;
4637
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4638
+ kind: z.ZodDefault<z.ZodEnum<{
4639
+ createSuite: "createSuite";
4640
+ generativeSuite: "generativeSuite";
4641
+ }>>;
4642
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4643
+ }, z.core.$strip>;
4644
+ cadence: z.ZodEnum<{
4645
+ hourly: "hourly";
4646
+ daily: "daily";
4647
+ }>;
4648
+ environmentId: PublicIdSchema;
4649
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
4650
+ timeOfDay: z.ZodOptional<z.ZodString>;
4651
+ timezoneId: z.ZodOptional<z.ZodString>;
4652
+ name: z.ZodString;
4653
+ workspaceId: z.ZodOptional<PublicIdSchema>;
4654
+ }, z.core.$strip>, z.ZodObject<{
4655
+ kind: z.ZodLiteral<"deployment">;
4656
+ action: z.ZodObject<{
4657
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4658
+ instructions: z.ZodOptional<z.ZodString>;
4659
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4660
+ kind: z.ZodDefault<z.ZodEnum<{
4661
+ createSuite: "createSuite";
4662
+ generativeSuite: "generativeSuite";
4663
+ }>>;
4664
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4665
+ }, z.core.$strip>;
4666
+ branchPattern: z.ZodOptional<z.ZodString>;
4667
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
4668
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4669
+ environmentPattern: z.ZodOptional<z.ZodString>;
4670
+ name: z.ZodString;
4671
+ workspaceId: z.ZodOptional<PublicIdSchema>;
4672
+ }, z.core.$strip>], "kind">;
4673
+ readonly kind: "write";
4674
+ readonly name: "trigger.create";
4675
+ readonly output: z.ZodObject<{
4676
+ trigger: z.ZodObject<{
4677
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
4678
+ kind: z.ZodLiteral<"schedule">;
4679
+ action: z.ZodObject<{
4680
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4681
+ instructions: z.ZodOptional<z.ZodString>;
4682
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4683
+ kind: z.ZodDefault<z.ZodEnum<{
4684
+ createSuite: "createSuite";
4685
+ generativeSuite: "generativeSuite";
4686
+ }>>;
4687
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4688
+ }, z.core.$strip>;
4689
+ cadence: z.ZodEnum<{
4690
+ hourly: "hourly";
4691
+ daily: "daily";
4692
+ }>;
4693
+ environmentId: PublicIdSchema;
4694
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
4695
+ timeOfDay: z.ZodOptional<z.ZodString>;
4696
+ timezoneId: z.ZodOptional<z.ZodString>;
4697
+ }, z.core.$strip>, z.ZodObject<{
4698
+ kind: z.ZodLiteral<"deployment">;
4699
+ action: z.ZodObject<{
4700
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4701
+ instructions: z.ZodOptional<z.ZodString>;
4702
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4703
+ kind: z.ZodDefault<z.ZodEnum<{
4704
+ createSuite: "createSuite";
4705
+ generativeSuite: "generativeSuite";
4706
+ }>>;
4707
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4708
+ }, z.core.$strip>;
4709
+ branchPattern: z.ZodOptional<z.ZodString>;
4710
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
4711
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4712
+ environmentPattern: z.ZodOptional<z.ZodString>;
4713
+ }, z.core.$strip>, z.ZodObject<{
4714
+ actionCount: z.ZodNumber;
4715
+ kind: z.ZodLiteral<"advanced">;
4716
+ whenCount: z.ZodNumber;
4717
+ }, z.core.$strip>], "kind">;
4718
+ createdAt: z.ZodISODateTime;
4719
+ id: PublicIdSchema;
4720
+ isPaused: z.ZodBoolean;
4721
+ name: z.ZodString;
4722
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
4723
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
4724
+ updatedAt: z.ZodISODateTime;
4725
+ url: z.ZodURL;
4726
+ }, z.core.$strip>;
4727
+ }, z.core.$strip>;
4728
+ };
4729
+ delete: {
4730
+ readonly annotations: {
4731
+ readonly destructiveHint: true;
4732
+ readonly openWorldHint: false;
4733
+ readonly readOnlyHint: false;
4734
+ };
4735
+ readonly description: string;
4736
+ readonly input: z.ZodObject<{
4737
+ triggerId: PublicIdSchema;
4738
+ }, z.core.$strip>;
4739
+ readonly kind: "write";
4740
+ readonly name: "trigger.delete";
4741
+ readonly output: z.ZodObject<{
4742
+ triggerId: PublicIdSchema;
4743
+ }, z.core.$strip>;
4744
+ };
4745
+ find: {
4746
+ readonly annotations: {
4747
+ readonly destructiveHint: false;
4748
+ readonly openWorldHint: false;
4749
+ readonly readOnlyHint: true;
4750
+ };
4751
+ readonly description: "List the team's triggers, newest first.";
4752
+ readonly input: z.ZodObject<{
4753
+ isPaused: z.ZodOptional<z.ZodBoolean>;
4754
+ workspaceId: z.ZodOptional<PublicIdSchema>;
4755
+ }, z.core.$strip>;
4756
+ readonly kind: "read";
4757
+ readonly name: "trigger.find";
4758
+ readonly output: z.ZodObject<{
4759
+ triggers: z.ZodArray<z.ZodObject<{
4760
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
4761
+ kind: z.ZodLiteral<"schedule">;
4762
+ action: z.ZodObject<{
4763
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4764
+ instructions: z.ZodOptional<z.ZodString>;
4765
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4766
+ kind: z.ZodDefault<z.ZodEnum<{
4767
+ createSuite: "createSuite";
4768
+ generativeSuite: "generativeSuite";
4769
+ }>>;
4770
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4771
+ }, z.core.$strip>;
4772
+ cadence: z.ZodEnum<{
4773
+ hourly: "hourly";
4774
+ daily: "daily";
4775
+ }>;
4776
+ environmentId: PublicIdSchema;
4777
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
4778
+ timeOfDay: z.ZodOptional<z.ZodString>;
4779
+ timezoneId: z.ZodOptional<z.ZodString>;
4780
+ }, z.core.$strip>, z.ZodObject<{
4781
+ kind: z.ZodLiteral<"deployment">;
4782
+ action: z.ZodObject<{
4783
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4784
+ instructions: z.ZodOptional<z.ZodString>;
4785
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4786
+ kind: z.ZodDefault<z.ZodEnum<{
4787
+ createSuite: "createSuite";
4788
+ generativeSuite: "generativeSuite";
4789
+ }>>;
4790
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4791
+ }, z.core.$strip>;
4792
+ branchPattern: z.ZodOptional<z.ZodString>;
4793
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
4794
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4795
+ environmentPattern: z.ZodOptional<z.ZodString>;
4796
+ }, z.core.$strip>, z.ZodObject<{
4797
+ actionCount: z.ZodNumber;
4798
+ kind: z.ZodLiteral<"advanced">;
4799
+ whenCount: z.ZodNumber;
4800
+ }, z.core.$strip>], "kind">;
4801
+ createdAt: z.ZodISODateTime;
4802
+ id: PublicIdSchema;
4803
+ isPaused: z.ZodBoolean;
4804
+ name: z.ZodString;
4805
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
4806
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
4807
+ updatedAt: z.ZodISODateTime;
4808
+ url: z.ZodURL;
4809
+ }, z.core.$strip>>;
4810
+ }, z.core.$strip>;
4811
+ };
4812
+ get: {
4813
+ readonly annotations: {
4814
+ readonly destructiveHint: false;
4815
+ readonly openWorldHint: false;
4816
+ readonly readOnlyHint: true;
4817
+ };
4818
+ readonly description: "Get one trigger by id.";
4819
+ readonly input: z.ZodObject<{
4820
+ triggerId: PublicIdSchema;
4821
+ }, z.core.$strip>;
4822
+ readonly kind: "read";
4823
+ readonly name: "trigger.get";
4824
+ readonly output: z.ZodObject<{
4825
+ trigger: z.ZodObject<{
4826
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
4827
+ kind: z.ZodLiteral<"schedule">;
4828
+ action: z.ZodObject<{
4829
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4830
+ instructions: z.ZodOptional<z.ZodString>;
4831
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4832
+ kind: z.ZodDefault<z.ZodEnum<{
4833
+ createSuite: "createSuite";
4834
+ generativeSuite: "generativeSuite";
4835
+ }>>;
4836
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4837
+ }, z.core.$strip>;
4838
+ cadence: z.ZodEnum<{
4839
+ hourly: "hourly";
4840
+ daily: "daily";
4841
+ }>;
4842
+ environmentId: PublicIdSchema;
4843
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
4844
+ timeOfDay: z.ZodOptional<z.ZodString>;
4845
+ timezoneId: z.ZodOptional<z.ZodString>;
4846
+ }, z.core.$strip>, z.ZodObject<{
4847
+ kind: z.ZodLiteral<"deployment">;
4848
+ action: z.ZodObject<{
4849
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4850
+ instructions: z.ZodOptional<z.ZodString>;
4851
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4852
+ kind: z.ZodDefault<z.ZodEnum<{
4853
+ createSuite: "createSuite";
4854
+ generativeSuite: "generativeSuite";
4855
+ }>>;
4856
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4857
+ }, z.core.$strip>;
4858
+ branchPattern: z.ZodOptional<z.ZodString>;
4859
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
4860
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4861
+ environmentPattern: z.ZodOptional<z.ZodString>;
4862
+ }, z.core.$strip>, z.ZodObject<{
4863
+ actionCount: z.ZodNumber;
4864
+ kind: z.ZodLiteral<"advanced">;
4865
+ whenCount: z.ZodNumber;
4866
+ }, z.core.$strip>], "kind">;
4867
+ createdAt: z.ZodISODateTime;
4868
+ id: PublicIdSchema;
4869
+ isPaused: z.ZodBoolean;
4870
+ name: z.ZodString;
4871
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
4872
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
4873
+ updatedAt: z.ZodISODateTime;
4874
+ url: z.ZodURL;
4875
+ }, z.core.$strip>;
4876
+ }, z.core.$strip>;
4877
+ };
4878
+ pause: {
4879
+ readonly annotations: {
4880
+ readonly destructiveHint: true;
4881
+ readonly openWorldHint: false;
4882
+ readonly readOnlyHint: false;
4883
+ };
4884
+ readonly description: string;
4885
+ readonly input: z.ZodObject<{
4886
+ triggerId: PublicIdSchema;
4887
+ }, z.core.$strip>;
4888
+ readonly kind: "write";
4889
+ readonly name: "trigger.pause";
4890
+ readonly output: z.ZodObject<{
4891
+ trigger: z.ZodObject<{
4892
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
4893
+ kind: z.ZodLiteral<"schedule">;
4894
+ action: z.ZodObject<{
4895
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4896
+ instructions: z.ZodOptional<z.ZodString>;
4897
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4898
+ kind: z.ZodDefault<z.ZodEnum<{
4899
+ createSuite: "createSuite";
4900
+ generativeSuite: "generativeSuite";
4901
+ }>>;
4902
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4903
+ }, z.core.$strip>;
4904
+ cadence: z.ZodEnum<{
4905
+ hourly: "hourly";
4906
+ daily: "daily";
4907
+ }>;
4908
+ environmentId: PublicIdSchema;
4909
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
4910
+ timeOfDay: z.ZodOptional<z.ZodString>;
4911
+ timezoneId: z.ZodOptional<z.ZodString>;
4912
+ }, z.core.$strip>, z.ZodObject<{
4913
+ kind: z.ZodLiteral<"deployment">;
4914
+ action: z.ZodObject<{
4915
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4916
+ instructions: z.ZodOptional<z.ZodString>;
4917
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4918
+ kind: z.ZodDefault<z.ZodEnum<{
4919
+ createSuite: "createSuite";
4920
+ generativeSuite: "generativeSuite";
4921
+ }>>;
4922
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4923
+ }, z.core.$strip>;
4924
+ branchPattern: z.ZodOptional<z.ZodString>;
4925
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
4926
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4927
+ environmentPattern: z.ZodOptional<z.ZodString>;
4928
+ }, z.core.$strip>, z.ZodObject<{
4929
+ actionCount: z.ZodNumber;
4930
+ kind: z.ZodLiteral<"advanced">;
4931
+ whenCount: z.ZodNumber;
4932
+ }, z.core.$strip>], "kind">;
4933
+ createdAt: z.ZodISODateTime;
4934
+ id: PublicIdSchema;
4935
+ isPaused: z.ZodBoolean;
4936
+ name: z.ZodString;
4937
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
4938
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
4939
+ updatedAt: z.ZodISODateTime;
4940
+ url: z.ZodURL;
4941
+ }, z.core.$strip>;
4942
+ }, z.core.$strip>;
4943
+ };
4944
+ resume: {
4945
+ readonly annotations: {
4946
+ readonly destructiveHint: true;
4947
+ readonly openWorldHint: true;
4948
+ readonly readOnlyHint: false;
4949
+ };
4950
+ readonly description: string;
4951
+ readonly input: z.ZodObject<{
4952
+ triggerId: PublicIdSchema;
4953
+ }, z.core.$strip>;
4954
+ readonly kind: "write";
4955
+ readonly name: "trigger.resume";
4956
+ readonly output: z.ZodObject<{
4957
+ trigger: z.ZodObject<{
4958
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
4959
+ kind: z.ZodLiteral<"schedule">;
4960
+ action: z.ZodObject<{
4961
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4962
+ instructions: z.ZodOptional<z.ZodString>;
4963
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4964
+ kind: z.ZodDefault<z.ZodEnum<{
4965
+ createSuite: "createSuite";
4966
+ generativeSuite: "generativeSuite";
4967
+ }>>;
4968
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4969
+ }, z.core.$strip>;
4970
+ cadence: z.ZodEnum<{
4971
+ hourly: "hourly";
4972
+ daily: "daily";
4973
+ }>;
4974
+ environmentId: PublicIdSchema;
4975
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
4976
+ timeOfDay: z.ZodOptional<z.ZodString>;
4977
+ timezoneId: z.ZodOptional<z.ZodString>;
4978
+ }, z.core.$strip>, z.ZodObject<{
4979
+ kind: z.ZodLiteral<"deployment">;
4980
+ action: z.ZodObject<{
4981
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4982
+ instructions: z.ZodOptional<z.ZodString>;
4983
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4984
+ kind: z.ZodDefault<z.ZodEnum<{
4985
+ createSuite: "createSuite";
4986
+ generativeSuite: "generativeSuite";
4987
+ }>>;
4988
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4989
+ }, z.core.$strip>;
4990
+ branchPattern: z.ZodOptional<z.ZodString>;
4991
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
4992
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4993
+ environmentPattern: z.ZodOptional<z.ZodString>;
4994
+ }, z.core.$strip>, z.ZodObject<{
4995
+ actionCount: z.ZodNumber;
4996
+ kind: z.ZodLiteral<"advanced">;
4997
+ whenCount: z.ZodNumber;
4998
+ }, z.core.$strip>], "kind">;
4999
+ createdAt: z.ZodISODateTime;
5000
+ id: PublicIdSchema;
5001
+ isPaused: z.ZodBoolean;
5002
+ name: z.ZodString;
5003
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
5004
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
5005
+ updatedAt: z.ZodISODateTime;
5006
+ url: z.ZodURL;
5007
+ }, z.core.$strip>;
5008
+ }, z.core.$strip>;
5009
+ };
5010
+ update: {
5011
+ readonly annotations: {
5012
+ readonly destructiveHint: true;
5013
+ readonly openWorldHint: true;
5014
+ readonly readOnlyHint: false;
5015
+ };
5016
+ readonly description: string;
5017
+ readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
5018
+ kind: z.ZodLiteral<"schedule">;
5019
+ action: z.ZodObject<{
5020
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5021
+ instructions: z.ZodOptional<z.ZodString>;
5022
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5023
+ kind: z.ZodDefault<z.ZodEnum<{
5024
+ createSuite: "createSuite";
5025
+ generativeSuite: "generativeSuite";
5026
+ }>>;
5027
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5028
+ }, z.core.$strip>;
5029
+ cadence: z.ZodEnum<{
5030
+ hourly: "hourly";
5031
+ daily: "daily";
5032
+ }>;
5033
+ environmentId: PublicIdSchema;
5034
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
5035
+ timeOfDay: z.ZodOptional<z.ZodString>;
5036
+ timezoneId: z.ZodOptional<z.ZodString>;
5037
+ name: z.ZodString;
5038
+ triggerId: PublicIdSchema;
5039
+ }, z.core.$strip>, z.ZodObject<{
5040
+ kind: z.ZodLiteral<"deployment">;
5041
+ action: z.ZodObject<{
5042
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5043
+ instructions: z.ZodOptional<z.ZodString>;
5044
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5045
+ kind: z.ZodDefault<z.ZodEnum<{
5046
+ createSuite: "createSuite";
5047
+ generativeSuite: "generativeSuite";
5048
+ }>>;
5049
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5050
+ }, z.core.$strip>;
5051
+ branchPattern: z.ZodOptional<z.ZodString>;
5052
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
5053
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5054
+ environmentPattern: z.ZodOptional<z.ZodString>;
5055
+ name: z.ZodString;
5056
+ triggerId: PublicIdSchema;
5057
+ }, z.core.$strip>], "kind">;
5058
+ readonly kind: "write";
5059
+ readonly name: "trigger.update";
5060
+ readonly output: z.ZodObject<{
5061
+ trigger: z.ZodObject<{
5062
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
5063
+ kind: z.ZodLiteral<"schedule">;
5064
+ action: z.ZodObject<{
5065
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5066
+ instructions: z.ZodOptional<z.ZodString>;
5067
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5068
+ kind: z.ZodDefault<z.ZodEnum<{
5069
+ createSuite: "createSuite";
5070
+ generativeSuite: "generativeSuite";
5071
+ }>>;
5072
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5073
+ }, z.core.$strip>;
5074
+ cadence: z.ZodEnum<{
5075
+ hourly: "hourly";
5076
+ daily: "daily";
5077
+ }>;
5078
+ environmentId: PublicIdSchema;
5079
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
5080
+ timeOfDay: z.ZodOptional<z.ZodString>;
5081
+ timezoneId: z.ZodOptional<z.ZodString>;
5082
+ }, z.core.$strip>, z.ZodObject<{
5083
+ kind: z.ZodLiteral<"deployment">;
5084
+ action: z.ZodObject<{
5085
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5086
+ instructions: z.ZodOptional<z.ZodString>;
5087
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5088
+ kind: z.ZodDefault<z.ZodEnum<{
5089
+ createSuite: "createSuite";
5090
+ generativeSuite: "generativeSuite";
5091
+ }>>;
5092
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5093
+ }, z.core.$strip>;
5094
+ branchPattern: z.ZodOptional<z.ZodString>;
5095
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
5096
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5097
+ environmentPattern: z.ZodOptional<z.ZodString>;
5098
+ }, z.core.$strip>, z.ZodObject<{
5099
+ actionCount: z.ZodNumber;
5100
+ kind: z.ZodLiteral<"advanced">;
5101
+ whenCount: z.ZodNumber;
5102
+ }, z.core.$strip>], "kind">;
5103
+ createdAt: z.ZodISODateTime;
5104
+ id: PublicIdSchema;
5105
+ isPaused: z.ZodBoolean;
5106
+ name: z.ZodString;
5107
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
5108
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
5109
+ updatedAt: z.ZodISODateTime;
5110
+ url: z.ZodURL;
5111
+ }, z.core.$strip>;
5112
+ }, z.core.$strip>;
5113
+ };
5114
+ };
3527
5115
  };
3528
5116
  //# sourceMappingURL=index.d.ts.map