@qawolf/api-contracts 0.52.0 → 0.54.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 (269) 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 +8 -2
  11. package/dist/v1/automate/index.d.ts.map +1 -1
  12. package/dist/v1/automate/index.js +7 -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 +9 -2
  17. package/dist/v1/deployment/reportStatus.d.ts.map +1 -1
  18. package/dist/v1/deployment/reportStatus.js +8 -40
  19. package/dist/v1/deployment/reportStatus.js.map +1 -1
  20. package/dist/v1/deployment/reportStatusMetadata.d.ts +10 -0
  21. package/dist/v1/deployment/reportStatusMetadata.d.ts.map +1 -0
  22. package/dist/v1/deployment/reportStatusMetadata.js +55 -0
  23. package/dist/v1/deployment/reportStatusMetadata.js.map +1 -0
  24. package/dist/v1/email/find.d.ts +5 -0
  25. package/dist/v1/email/find.d.ts.map +1 -1
  26. package/dist/v1/email/find.js +5 -0
  27. package/dist/v1/email/find.js.map +1 -1
  28. package/dist/v1/email/get.d.ts +5 -0
  29. package/dist/v1/email/get.d.ts.map +1 -1
  30. package/dist/v1/email/get.js +5 -0
  31. package/dist/v1/email/get.js.map +1 -1
  32. package/dist/v1/email/getAttachment.d.ts +5 -0
  33. package/dist/v1/email/getAttachment.d.ts.map +1 -1
  34. package/dist/v1/email/getAttachment.js +5 -0
  35. package/dist/v1/email/getAttachment.js.map +1 -1
  36. package/dist/v1/email/listAddresses.d.ts +5 -0
  37. package/dist/v1/email/listAddresses.d.ts.map +1 -1
  38. package/dist/v1/email/listAddresses.js +5 -0
  39. package/dist/v1/email/listAddresses.js.map +1 -1
  40. package/dist/v1/email/registerAddress.d.ts +5 -0
  41. package/dist/v1/email/registerAddress.d.ts.map +1 -1
  42. package/dist/v1/email/registerAddress.js +5 -0
  43. package/dist/v1/email/registerAddress.js.map +1 -1
  44. package/dist/v1/email/send.d.ts +5 -0
  45. package/dist/v1/email/send.d.ts.map +1 -1
  46. package/dist/v1/email/send.js +5 -0
  47. package/dist/v1/email/send.js.map +1 -1
  48. package/dist/v1/environment/create.d.ts +44 -0
  49. package/dist/v1/environment/create.d.ts.map +1 -0
  50. package/dist/v1/environment/create.js +29 -0
  51. package/dist/v1/environment/create.js.map +1 -0
  52. package/dist/v1/environment/deleteVariable.d.ts +8 -2
  53. package/dist/v1/environment/deleteVariable.d.ts.map +1 -1
  54. package/dist/v1/environment/deleteVariable.js +7 -0
  55. package/dist/v1/environment/deleteVariable.js.map +1 -1
  56. package/dist/v1/environment/find.d.ts +6 -1
  57. package/dist/v1/environment/find.d.ts.map +1 -1
  58. package/dist/v1/environment/find.js +5 -0
  59. package/dist/v1/environment/find.js.map +1 -1
  60. package/dist/v1/environment/getVariable.d.ts +8 -2
  61. package/dist/v1/environment/getVariable.d.ts.map +1 -1
  62. package/dist/v1/environment/getVariable.js +7 -0
  63. package/dist/v1/environment/getVariable.js.map +1 -1
  64. package/dist/v1/environment/index.d.ts +23 -41
  65. package/dist/v1/environment/index.d.ts.map +1 -1
  66. package/dist/v1/environment/index.js +19 -21
  67. package/dist/v1/environment/index.js.map +1 -1
  68. package/dist/v1/environment/resource.d.ts +1 -1
  69. package/dist/v1/environment/update.d.ts +9 -3
  70. package/dist/v1/environment/update.d.ts.map +1 -1
  71. package/dist/v1/environment/update.js +7 -0
  72. package/dist/v1/environment/update.js.map +1 -1
  73. package/dist/v1/file/index.d.ts +46 -0
  74. package/dist/v1/file/index.d.ts.map +1 -0
  75. package/dist/v1/file/index.js +8 -0
  76. package/dist/v1/file/index.js.map +1 -0
  77. package/dist/v1/file/path.d.ts +6 -0
  78. package/dist/v1/file/path.d.ts.map +1 -0
  79. package/dist/v1/file/path.js +17 -0
  80. package/dist/v1/file/path.js.map +1 -0
  81. package/dist/v1/file/requestDownload.d.ts +24 -0
  82. package/dist/v1/file/requestDownload.d.ts.map +1 -0
  83. package/dist/v1/file/requestDownload.js +32 -0
  84. package/dist/v1/file/requestDownload.js.map +1 -0
  85. package/dist/v1/file/requestUpload.d.ts +25 -0
  86. package/dist/v1/file/requestUpload.d.ts.map +1 -0
  87. package/dist/v1/file/requestUpload.js +37 -0
  88. package/dist/v1/file/requestUpload.js.map +1 -0
  89. package/dist/v1/flow/addTag.d.ts +5 -0
  90. package/dist/v1/flow/addTag.d.ts.map +1 -1
  91. package/dist/v1/flow/addTag.js +5 -0
  92. package/dist/v1/flow/addTag.js.map +1 -1
  93. package/dist/v1/flow/index.d.ts +19 -2
  94. package/dist/v1/flow/index.d.ts.map +1 -1
  95. package/dist/v1/flow/index.js +37 -0
  96. package/dist/v1/flow/index.js.map +1 -1
  97. package/dist/v1/flow/removeTag.d.ts +5 -0
  98. package/dist/v1/flow/removeTag.d.ts.map +1 -1
  99. package/dist/v1/flow/removeTag.js +5 -0
  100. package/dist/v1/flow/removeTag.js.map +1 -1
  101. package/dist/v1/flow/update.d.ts +5 -0
  102. package/dist/v1/flow/update.d.ts.map +1 -1
  103. package/dist/v1/flow/update.js +5 -0
  104. package/dist/v1/flow/update.js.map +1 -1
  105. package/dist/v1/ids.d.ts +23 -3
  106. package/dist/v1/ids.d.ts.map +1 -1
  107. package/dist/v1/ids.js +17 -1
  108. package/dist/v1/ids.js.map +1 -1
  109. package/dist/v1/index.d.ts +1782 -42
  110. package/dist/v1/index.d.ts.map +1 -1
  111. package/dist/v1/index.js +23 -9
  112. package/dist/v1/index.js.map +1 -1
  113. package/dist/v1/issue/addFlows.d.ts +5 -0
  114. package/dist/v1/issue/addFlows.d.ts.map +1 -1
  115. package/dist/v1/issue/addFlows.js +5 -0
  116. package/dist/v1/issue/addFlows.js.map +1 -1
  117. package/dist/v1/issue/create.d.ts +5 -0
  118. package/dist/v1/issue/create.d.ts.map +1 -1
  119. package/dist/v1/issue/create.js +5 -0
  120. package/dist/v1/issue/create.js.map +1 -1
  121. package/dist/v1/issue/index.d.ts +10 -0
  122. package/dist/v1/issue/index.d.ts.map +1 -1
  123. package/dist/v1/issue/index.js +10 -0
  124. package/dist/v1/issue/index.js.map +1 -1
  125. package/dist/v1/issue/removeFlows.d.ts +5 -0
  126. package/dist/v1/issue/removeFlows.d.ts.map +1 -1
  127. package/dist/v1/issue/removeFlows.js +5 -0
  128. package/dist/v1/issue/removeFlows.js.map +1 -1
  129. package/dist/v1/issue/update.d.ts +5 -0
  130. package/dist/v1/issue/update.d.ts.map +1 -1
  131. package/dist/v1/issue/update.js +5 -0
  132. package/dist/v1/issue/update.js.map +1 -1
  133. package/dist/v1/mcpToolDescription.d.ts +11 -0
  134. package/dist/v1/mcpToolDescription.d.ts.map +1 -0
  135. package/dist/v1/mcpToolDescription.js +20 -0
  136. package/dist/v1/mcpToolDescription.js.map +1 -0
  137. package/dist/v1/run/diagnose.d.ts +5 -0
  138. package/dist/v1/run/diagnose.d.ts.map +1 -1
  139. package/dist/v1/run/diagnose.js +5 -0
  140. package/dist/v1/run/diagnose.js.map +1 -1
  141. package/dist/v1/run/find.d.ts +9 -2
  142. package/dist/v1/run/find.d.ts.map +1 -1
  143. package/dist/v1/run/find.js +7 -0
  144. package/dist/v1/run/find.js.map +1 -1
  145. package/dist/v1/run/get.d.ts +5 -0
  146. package/dist/v1/run/get.d.ts.map +1 -1
  147. package/dist/v1/run/get.js +5 -0
  148. package/dist/v1/run/get.js.map +1 -1
  149. package/dist/v1/run/index.d.ts +9 -2
  150. package/dist/v1/run/index.d.ts.map +1 -1
  151. package/dist/v1/run/index.js +7 -0
  152. package/dist/v1/run/index.js.map +1 -1
  153. package/dist/v1/run/reattempt.d.ts +5 -0
  154. package/dist/v1/run/reattempt.d.ts.map +1 -1
  155. package/dist/v1/run/reattempt.js +5 -0
  156. package/dist/v1/run/reattempt.js.map +1 -1
  157. package/dist/v1/run/stop.d.ts +6 -1
  158. package/dist/v1/run/stop.d.ts.map +1 -1
  159. package/dist/v1/run/stop.js +6 -1
  160. package/dist/v1/run/stop.js.map +1 -1
  161. package/dist/v1/runner/evaluateSnippet.d.ts +6 -1
  162. package/dist/v1/runner/evaluateSnippet.d.ts.map +1 -1
  163. package/dist/v1/runner/evaluateSnippet.js +5 -0
  164. package/dist/v1/runner/evaluateSnippet.js.map +1 -1
  165. package/dist/v1/runner/get.d.ts +14 -4
  166. package/dist/v1/runner/get.d.ts.map +1 -1
  167. package/dist/v1/runner/get.js +21 -6
  168. package/dist/v1/runner/get.js.map +1 -1
  169. package/dist/v1/runner/highlightSelector.d.ts +5 -0
  170. package/dist/v1/runner/highlightSelector.d.ts.map +1 -1
  171. package/dist/v1/runner/highlightSelector.js +5 -0
  172. package/dist/v1/runner/highlightSelector.js.map +1 -1
  173. package/dist/v1/runner/identity.d.ts +2 -0
  174. package/dist/v1/runner/identity.d.ts.map +1 -1
  175. package/dist/v1/runner/identity.js +4 -0
  176. package/dist/v1/runner/identity.js.map +1 -1
  177. package/dist/v1/runner/importPackage.d.ts +5 -0
  178. package/dist/v1/runner/importPackage.d.ts.map +1 -1
  179. package/dist/v1/runner/importPackage.js +5 -0
  180. package/dist/v1/runner/importPackage.js.map +1 -1
  181. package/dist/v1/runner/index.d.ts +12 -1
  182. package/dist/v1/runner/index.d.ts.map +1 -1
  183. package/dist/v1/runner/index.js +11 -1
  184. package/dist/v1/runner/index.js.map +1 -1
  185. package/dist/v1/runner/inspect.d.ts +6 -0
  186. package/dist/v1/runner/inspect.d.ts.map +1 -1
  187. package/dist/v1/runner/inspect.js +7 -2
  188. package/dist/v1/runner/inspect.js.map +1 -1
  189. package/dist/v1/runner/inspectMobile.d.ts +27 -1
  190. package/dist/v1/runner/inspectMobile.d.ts.map +1 -1
  191. package/dist/v1/runner/inspectMobile.js +44 -22
  192. package/dist/v1/runner/inspectMobile.js.map +1 -1
  193. package/dist/v1/runner/list.d.ts +6 -0
  194. package/dist/v1/runner/list.d.ts.map +1 -1
  195. package/dist/v1/runner/list.js +5 -0
  196. package/dist/v1/runner/list.js.map +1 -1
  197. package/dist/v1/runner/performAction.d.ts +5 -0
  198. package/dist/v1/runner/performAction.d.ts.map +1 -1
  199. package/dist/v1/runner/performAction.js +5 -0
  200. package/dist/v1/runner/performAction.js.map +1 -1
  201. package/dist/v1/runner/promoteSnapshot.d.ts +5 -0
  202. package/dist/v1/runner/promoteSnapshot.d.ts.map +1 -1
  203. package/dist/v1/runner/promoteSnapshot.js +5 -0
  204. package/dist/v1/runner/promoteSnapshot.js.map +1 -1
  205. package/dist/v1/runner/readJournal.d.ts +5 -0
  206. package/dist/v1/runner/readJournal.d.ts.map +1 -1
  207. package/dist/v1/runner/readJournal.js +5 -0
  208. package/dist/v1/runner/readJournal.js.map +1 -1
  209. package/dist/v1/runner/runFlow.d.ts +5 -0
  210. package/dist/v1/runner/runFlow.d.ts.map +1 -1
  211. package/dist/v1/runner/runFlow.js +5 -0
  212. package/dist/v1/runner/runFlow.js.map +1 -1
  213. package/dist/v1/runner/stopRun.d.ts +5 -0
  214. package/dist/v1/runner/stopRun.d.ts.map +1 -1
  215. package/dist/v1/runner/stopRun.js +5 -0
  216. package/dist/v1/runner/stopRun.js.map +1 -1
  217. package/dist/v1/runner/takeScreenshot.d.ts +6 -1
  218. package/dist/v1/runner/takeScreenshot.d.ts.map +1 -1
  219. package/dist/v1/runner/takeScreenshot.js +6 -1
  220. package/dist/v1/runner/takeScreenshot.js.map +1 -1
  221. package/dist/v1/sharedSchemas.d.ts +18 -0
  222. package/dist/v1/sharedSchemas.d.ts.map +1 -0
  223. package/dist/v1/sharedSchemas.js +17 -0
  224. package/dist/v1/sharedSchemas.js.map +1 -0
  225. package/dist/v1/tag/index.d.ts +5 -0
  226. package/dist/v1/tag/index.d.ts.map +1 -1
  227. package/dist/v1/tag/index.js +5 -0
  228. package/dist/v1/tag/index.js.map +1 -1
  229. package/dist/v1/tag/list.d.ts +5 -0
  230. package/dist/v1/tag/list.d.ts.map +1 -1
  231. package/dist/v1/tag/list.js +5 -0
  232. package/dist/v1/tag/list.js.map +1 -1
  233. package/dist/v1/trigger/configuration.d.ts +99 -0
  234. package/dist/v1/trigger/configuration.d.ts.map +1 -0
  235. package/dist/v1/trigger/configuration.js +125 -0
  236. package/dist/v1/trigger/configuration.js.map +1 -0
  237. package/dist/v1/trigger/configurationRules.d.ts +35 -0
  238. package/dist/v1/trigger/configurationRules.d.ts.map +1 -0
  239. package/dist/v1/trigger/configurationRules.js +92 -0
  240. package/dist/v1/trigger/configurationRules.js.map +1 -0
  241. package/dist/v1/trigger/create.d.ts +114 -0
  242. package/dist/v1/trigger/create.d.ts.map +1 -0
  243. package/dist/v1/trigger/create.js +44 -0
  244. package/dist/v1/trigger/create.js.map +1 -0
  245. package/dist/v1/trigger/find.d.ts +75 -0
  246. package/dist/v1/trigger/find.d.ts.map +1 -0
  247. package/dist/v1/trigger/find.js +35 -0
  248. package/dist/v1/trigger/find.js.map +1 -0
  249. package/dist/v1/trigger/get.d.ts +73 -0
  250. package/dist/v1/trigger/get.d.ts.map +1 -0
  251. package/dist/v1/trigger/get.js +19 -0
  252. package/dist/v1/trigger/get.js.map +1 -0
  253. package/dist/v1/trigger/index.d.ts +9 -0
  254. package/dist/v1/trigger/index.d.ts.map +1 -0
  255. package/dist/v1/trigger/index.js +9 -0
  256. package/dist/v1/trigger/index.js.map +1 -0
  257. package/dist/v1/trigger/lifecycle.d.ts +159 -0
  258. package/dist/v1/trigger/lifecycle.d.ts.map +1 -0
  259. package/dist/v1/trigger/lifecycle.js +56 -0
  260. package/dist/v1/trigger/lifecycle.js.map +1 -0
  261. package/dist/v1/trigger/resource.d.ts +58 -0
  262. package/dist/v1/trigger/resource.d.ts.map +1 -0
  263. package/dist/v1/trigger/resource.js +52 -0
  264. package/dist/v1/trigger/resource.js.map +1 -0
  265. package/dist/v1/trigger/update.d.ts +113 -0
  266. package/dist/v1/trigger/update.d.ts.map +1 -0
  267. package/dist/v1/trigger/update.js +43 -0
  268. package/dist/v1/trigger/update.js.map +1 -0
  269. 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,12 +74,18 @@ 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>;
75
85
  environmentId: PublicIdSchema;
76
86
  flowIds: z.ZodArray<FlowId>;
77
87
  patch: z.ZodOptional<z.ZodString>;
88
+ workspaceId: z.ZodOptional<WorkspaceId>;
78
89
  }, z.core.$strip>;
79
90
  readonly kind: "write";
80
91
  readonly name: "automate";
@@ -83,8 +94,64 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
83
94
  url: z.ZodURL;
84
95
  }, z.core.$strip>;
85
96
  };
97
+ deployment: {
98
+ reportStatus: {
99
+ readonly annotations: {
100
+ readonly destructiveHint: true;
101
+ readonly openWorldHint: true;
102
+ readonly readOnlyHint: false;
103
+ };
104
+ readonly description: "Report a deployment lifecycle status. A deployment's first success report evaluates global triggers asynchronously, and it is the only report that does: a trigger added or unpaused later does not make an already reported deployment evaluate again. Report that deployment under a new providerDeploymentId to evaluate it against the current triggers. The response contains the deployment only, not the resulting runs. This route requires an organization or user API key.";
105
+ readonly input: z.ZodObject<{
106
+ deployTarget: z.ZodOptional<z.ZodURL>;
107
+ environment: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
108
+ id: EnvironmentId;
109
+ }, z.core.$strict>, z.ZodObject<{
110
+ baseEphemeralEnvironment: z.ZodOptional<z.ZodString>;
111
+ ephemeral: z.ZodOptional<z.ZodBoolean>;
112
+ name: z.ZodString;
113
+ }, z.core.$strict>]>>;
114
+ environmentVariables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
115
+ metadata: z.ZodOptional<z.ZodObject<{
116
+ commitAuthorName: z.ZodOptional<z.ZodString>;
117
+ commitMessage: z.ZodOptional<z.ZodString>;
118
+ commitSha: z.ZodOptional<z.ZodString>;
119
+ pullRequestNumber: z.ZodOptional<z.ZodNumber>;
120
+ ref: z.ZodOptional<z.ZodString>;
121
+ repository: z.ZodOptional<z.ZodString>;
122
+ }, z.core.$strict>>;
123
+ providerDeploymentId: z.ZodString;
124
+ status: z.ZodEnum<{
125
+ success: "success";
126
+ pending: "pending";
127
+ failure: "failure";
128
+ inactive: "inactive";
129
+ }>;
130
+ workspaceId: WorkspaceId;
131
+ }, z.core.$strict>;
132
+ readonly kind: "write";
133
+ readonly name: "deployment.reportStatus";
134
+ readonly output: z.ZodObject<{
135
+ deployment: z.ZodObject<{
136
+ id: PublicIdSchema;
137
+ status: z.ZodEnum<{
138
+ success: "success";
139
+ pending: "pending";
140
+ failure: "failure";
141
+ inactive: "inactive";
142
+ }>;
143
+ url: z.ZodURL;
144
+ }, z.core.$strip>;
145
+ }, z.core.$strip>;
146
+ };
147
+ };
86
148
  email: {
87
149
  find: {
150
+ readonly annotations: {
151
+ readonly destructiveHint: false;
152
+ readonly openWorldHint: false;
153
+ readonly readOnlyHint: true;
154
+ };
88
155
  readonly description: "List the workspace's inbox, or its sent mail, newest first. Read a message body with email.get.";
89
156
  readonly input: z.ZodObject<{
90
157
  cursor: z.ZodOptional<z.ZodString>;
@@ -122,6 +189,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
122
189
  }, z.core.$strip>;
123
190
  };
124
191
  get: {
192
+ readonly annotations: {
193
+ readonly destructiveHint: false;
194
+ readonly openWorldHint: false;
195
+ readonly readOnlyHint: true;
196
+ };
125
197
  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
198
  readonly input: z.ZodObject<{
127
199
  id: z.ZodString;
@@ -169,6 +241,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
169
241
  }, z.core.$strip>;
170
242
  };
171
243
  getAttachment: {
244
+ readonly annotations: {
245
+ readonly destructiveHint: false;
246
+ readonly openWorldHint: false;
247
+ readonly readOnlyHint: true;
248
+ };
172
249
  readonly description: "Read one attachment of a workspace email as base64 content, by file name or by position. email.get lists both.";
173
250
  readonly input: z.ZodObject<{
174
251
  fileName: z.ZodOptional<z.ZodString>;
@@ -187,6 +264,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
187
264
  }, z.core.$strip>;
188
265
  };
189
266
  listAddresses: {
267
+ readonly annotations: {
268
+ readonly destructiveHint: false;
269
+ readonly openWorldHint: false;
270
+ readonly readOnlyHint: true;
271
+ };
190
272
  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
273
  readonly input: z.ZodObject<{
192
274
  cursor: z.ZodOptional<z.ZodString>;
@@ -205,6 +287,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
205
287
  }, z.core.$strip>;
206
288
  };
207
289
  registerAddress: {
290
+ readonly annotations: {
291
+ readonly destructiveHint: false;
292
+ readonly openWorldHint: false;
293
+ readonly readOnlyHint: false;
294
+ };
208
295
  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
296
  readonly input: z.ZodObject<{
210
297
  address: z.ZodEmail;
@@ -219,6 +306,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
219
306
  }, z.core.$strip>;
220
307
  };
221
308
  send: {
309
+ readonly annotations: {
310
+ readonly destructiveHint: true;
311
+ readonly openWorldHint: true;
312
+ readonly readOnlyHint: false;
313
+ };
222
314
  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
315
  readonly input: z.ZodObject<{
224
316
  attachments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBase64>>;
@@ -257,7 +349,12 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
257
349
  };
258
350
  environment: {
259
351
  create: {
260
- readonly description: "Create an environment on the caller's team and return it in the environment.get shape.";
352
+ readonly annotations: {
353
+ readonly destructiveHint: false;
354
+ readonly openWorldHint: true;
355
+ readonly readOnlyHint: false;
356
+ };
357
+ 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
358
  readonly input: z.ZodObject<{
262
359
  name: z.ZodString;
263
360
  workspaceId: z.ZodOptional<WorkspaceId>;
@@ -283,9 +380,9 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
283
380
  name: z.ZodString;
284
381
  runConcurrencyLimit: z.ZodString;
285
382
  status: z.ZodEnum<{
286
- ready: "ready";
287
383
  blocked: "blocked";
288
384
  "needs-investigation": "needs-investigation";
385
+ ready: "ready";
289
386
  running: "running";
290
387
  }>;
291
388
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -293,10 +390,16 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
293
390
  }, z.core.$strip>;
294
391
  };
295
392
  deleteVariable: {
393
+ readonly annotations: {
394
+ readonly destructiveHint: true;
395
+ readonly openWorldHint: false;
396
+ readonly readOnlyHint: false;
397
+ };
296
398
  readonly description: "Remove one environment variable by name. Succeeds whether or not the variable existed.";
297
399
  readonly input: z.ZodObject<{
298
400
  environmentId: PublicIdSchema;
299
401
  name: z.ZodString;
402
+ workspaceId: z.ZodOptional<WorkspaceId>;
300
403
  }, z.core.$strip>;
301
404
  readonly kind: "write";
302
405
  readonly name: "environment.deleteVariable";
@@ -305,6 +408,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
305
408
  }, z.core.$strip>;
306
409
  };
307
410
  find: {
411
+ readonly annotations: {
412
+ readonly destructiveHint: false;
413
+ readonly openWorldHint: false;
414
+ readonly readOnlyHint: true;
415
+ };
308
416
  readonly description: "List the team's environments, newest first.";
309
417
  readonly input: z.ZodObject<{
310
418
  cursor: z.ZodOptional<z.ZodString>;
@@ -339,9 +447,9 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
339
447
  name: z.ZodString;
340
448
  runConcurrencyLimit: z.ZodString;
341
449
  status: z.ZodEnum<{
342
- ready: "ready";
343
450
  blocked: "blocked";
344
451
  "needs-investigation": "needs-investigation";
452
+ ready: "ready";
345
453
  running: "running";
346
454
  }>;
347
455
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -351,9 +459,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
351
459
  }, z.core.$strip>;
352
460
  };
353
461
  get: {
462
+ readonly annotations: {
463
+ readonly destructiveHint: false;
464
+ readonly openWorldHint: false;
465
+ readonly readOnlyHint: true;
466
+ };
354
467
  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
468
  readonly input: z.ZodObject<{
356
469
  environmentId: PublicIdSchema;
470
+ workspaceId: z.ZodOptional<WorkspaceId>;
357
471
  }, z.core.$strip>;
358
472
  readonly kind: "read";
359
473
  readonly name: "environment.get";
@@ -376,9 +490,9 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
376
490
  name: z.ZodString;
377
491
  runConcurrencyLimit: z.ZodString;
378
492
  status: z.ZodEnum<{
379
- ready: "ready";
380
493
  blocked: "blocked";
381
494
  "needs-investigation": "needs-investigation";
495
+ ready: "ready";
382
496
  running: "running";
383
497
  }>;
384
498
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -386,10 +500,16 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
386
500
  }, z.core.$strip>;
387
501
  };
388
502
  getVariable: {
503
+ readonly annotations: {
504
+ readonly destructiveHint: false;
505
+ readonly openWorldHint: false;
506
+ readonly readOnlyHint: true;
507
+ };
389
508
  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
509
  readonly input: z.ZodObject<{
391
510
  environmentId: PublicIdSchema;
392
511
  variableNames: z.ZodArray<z.ZodString>;
512
+ workspaceId: z.ZodOptional<WorkspaceId>;
393
513
  }, z.core.$strip>;
394
514
  readonly kind: "read";
395
515
  readonly name: "environment.getVariable";
@@ -402,9 +522,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
402
522
  }, z.core.$strip>;
403
523
  };
404
524
  listVariableNames: {
525
+ readonly annotations: {
526
+ readonly destructiveHint: false;
527
+ readonly openWorldHint: false;
528
+ readonly readOnlyHint: true;
529
+ };
405
530
  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
531
  readonly input: z.ZodObject<{
407
532
  environmentId: PublicIdSchema;
533
+ workspaceId: z.ZodOptional<WorkspaceId>;
408
534
  }, z.core.$strip>;
409
535
  readonly kind: "read";
410
536
  readonly name: "environment.listVariableNames";
@@ -413,11 +539,17 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
413
539
  }, z.core.$strip>;
414
540
  };
415
541
  setVariable: {
542
+ readonly annotations: {
543
+ readonly destructiveHint: true;
544
+ readonly openWorldHint: false;
545
+ readonly readOnlyHint: false;
546
+ };
416
547
  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
548
  readonly input: z.ZodObject<{
418
549
  environmentId: PublicIdSchema;
419
550
  name: z.ZodString;
420
551
  value: z.ZodString;
552
+ workspaceId: z.ZodOptional<WorkspaceId>;
421
553
  }, z.core.$strip>;
422
554
  readonly kind: "write";
423
555
  readonly name: "environment.setVariable";
@@ -426,11 +558,17 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
426
558
  }, z.core.$strip>;
427
559
  };
428
560
  update: {
561
+ readonly annotations: {
562
+ readonly destructiveHint: true;
563
+ readonly openWorldHint: false;
564
+ readonly readOnlyHint: false;
565
+ };
429
566
  readonly description: "Update an environment owned by the caller's team and return it in the environment.get shape. Omitted fields remain unchanged.";
430
567
  readonly input: z.ZodObject<{
431
568
  environmentId: PublicIdSchema;
432
569
  name: z.ZodOptional<z.ZodString>;
433
570
  runConcurrencyLimit: z.ZodOptional<z.ZodString>;
571
+ workspaceId: z.ZodOptional<WorkspaceId>;
434
572
  }, z.core.$strip>;
435
573
  readonly kind: "write";
436
574
  readonly name: "environment.update";
@@ -453,9 +591,9 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
453
591
  name: z.ZodString;
454
592
  runConcurrencyLimit: z.ZodString;
455
593
  status: z.ZodEnum<{
456
- ready: "ready";
457
594
  blocked: "blocked";
458
595
  "needs-investigation": "needs-investigation";
596
+ ready: "ready";
459
597
  running: "running";
460
598
  }>;
461
599
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -463,8 +601,54 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
463
601
  }, z.core.$strip>;
464
602
  };
465
603
  };
604
+ file: {
605
+ requestDownload: {
606
+ readonly annotations: {
607
+ readonly destructiveHint: false;
608
+ readonly openWorldHint: false;
609
+ readonly readOnlyHint: true;
610
+ };
611
+ 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.";
612
+ readonly input: z.ZodObject<{
613
+ filePath: z.ZodString;
614
+ workspaceId: z.ZodOptional<WorkspaceId>;
615
+ }, z.core.$strip>;
616
+ readonly kind: "read";
617
+ readonly name: "file.requestDownload";
618
+ readonly output: z.ZodObject<{
619
+ expiresAt: z.ZodISODateTime;
620
+ path: z.ZodString;
621
+ readUrl: z.ZodString;
622
+ }, z.core.$strip>;
623
+ };
624
+ requestUpload: {
625
+ readonly annotations: {
626
+ readonly destructiveHint: true;
627
+ readonly openWorldHint: false;
628
+ readonly readOnlyHint: false;
629
+ };
630
+ 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.";
631
+ readonly input: z.ZodObject<{
632
+ fileName: z.ZodString;
633
+ workspaceId: z.ZodOptional<WorkspaceId>;
634
+ }, z.core.$strip>;
635
+ readonly kind: "write";
636
+ readonly name: "file.requestUpload";
637
+ readonly output: z.ZodObject<{
638
+ contentType: z.ZodString;
639
+ expiresAt: z.ZodISODateTime;
640
+ path: z.ZodString;
641
+ uploadUrl: z.ZodString;
642
+ }, z.core.$strip>;
643
+ };
644
+ };
466
645
  flow: {
467
646
  addTag: {
647
+ readonly annotations: {
648
+ readonly destructiveHint: false;
649
+ readonly openWorldHint: false;
650
+ readonly readOnlyHint: false;
651
+ };
468
652
  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
653
  readonly input: z.ZodObject<{
470
654
  flowIds: z.ZodArray<FlowId>;
@@ -486,15 +670,31 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
486
670
  }, z.core.$strip>;
487
671
  };
488
672
  list: {
673
+ readonly annotations: {
674
+ readonly destructiveHint: false;
675
+ readonly openWorldHint: false;
676
+ readonly readOnlyHint: true;
677
+ };
489
678
  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
679
  readonly input: z.ZodObject<{
491
680
  aiTaskId: z.ZodOptional<AiTaskId>;
492
681
  environmentId: PublicIdSchema;
493
682
  includeDrafts: z.ZodDefault<z.ZodBoolean>;
683
+ workspaceId: z.ZodOptional<WorkspaceId>;
494
684
  }, z.core.$strip>;
495
685
  readonly kind: "read";
496
686
  readonly name: "flow.list";
497
687
  readonly output: z.ZodObject<{
688
+ emptyReason: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
689
+ type: z.ZodLiteral<"branch-never-reconciled">;
690
+ }, z.core.$strip>, z.ZodObject<{
691
+ type: z.ZodLiteral<"commit-has-no-flow-files">;
692
+ }, z.core.$strip>, z.ZodObject<{
693
+ hiddenDraftCount: z.ZodNumber;
694
+ type: z.ZodLiteral<"every-flow-is-a-draft">;
695
+ }, z.core.$strip>, z.ZodObject<{
696
+ type: z.ZodLiteral<"no-flow-matched-the-listing">;
697
+ }, z.core.$strip>], "type">>;
498
698
  flows: z.ZodArray<z.ZodObject<{
499
699
  executionTarget: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
500
700
  flowId: FlowId;
@@ -510,6 +710,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
510
710
  }, z.core.$strip>;
511
711
  };
512
712
  removeTag: {
713
+ readonly annotations: {
714
+ readonly destructiveHint: true;
715
+ readonly openWorldHint: false;
716
+ readonly readOnlyHint: false;
717
+ };
513
718
  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
719
  readonly input: z.ZodObject<{
515
720
  flowIds: z.ZodArray<FlowId>;
@@ -531,6 +736,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
531
736
  }, z.core.$strip>;
532
737
  };
533
738
  update: {
739
+ readonly annotations: {
740
+ readonly destructiveHint: true;
741
+ readonly openWorldHint: false;
742
+ readonly readOnlyHint: false;
743
+ };
534
744
  readonly description: "Move a flow between draft and active readiness. The other statuses shown in the app are derived and cannot be set.";
535
745
  readonly input: z.ZodObject<{
536
746
  flowId: FlowId;
@@ -556,6 +766,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
556
766
  };
557
767
  issue: {
558
768
  addFlows: {
769
+ readonly annotations: {
770
+ readonly destructiveHint: false;
771
+ readonly openWorldHint: false;
772
+ readonly readOnlyHint: false;
773
+ };
559
774
  readonly description: string;
560
775
  readonly input: z.ZodObject<{
561
776
  flowIds: z.ZodArray<FlowId>;
@@ -603,6 +818,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
603
818
  }, z.core.$strip>;
604
819
  };
605
820
  create: {
821
+ readonly annotations: {
822
+ readonly destructiveHint: true;
823
+ readonly openWorldHint: true;
824
+ readonly readOnlyHint: false;
825
+ };
606
826
  readonly description: string;
607
827
  readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
608
828
  type: z.ZodLiteral<"bug">;
@@ -672,6 +892,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
672
892
  }, z.core.$strip>;
673
893
  };
674
894
  find: {
895
+ readonly annotations: {
896
+ readonly destructiveHint: false;
897
+ readonly openWorldHint: false;
898
+ readonly readOnlyHint: true;
899
+ };
675
900
  readonly description: "List the team's bug reports, maintenance reports, or coverage requests, newest first.";
676
901
  readonly input: z.ZodObject<{
677
902
  statuses: z.ZodDefault<z.ZodArray<z.ZodEnum<{
@@ -734,6 +959,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
734
959
  }, z.core.$strip>;
735
960
  };
736
961
  get: {
962
+ readonly annotations: {
963
+ readonly destructiveHint: false;
964
+ readonly openWorldHint: false;
965
+ readonly readOnlyHint: true;
966
+ };
737
967
  readonly description: "Get an issue by id.";
738
968
  readonly input: z.ZodObject<{
739
969
  issueId: IssueId;
@@ -780,6 +1010,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
780
1010
  }, z.core.$strip>;
781
1011
  };
782
1012
  removeFlows: {
1013
+ readonly annotations: {
1014
+ readonly destructiveHint: true;
1015
+ readonly openWorldHint: false;
1016
+ readonly readOnlyHint: false;
1017
+ };
783
1018
  readonly description: string;
784
1019
  readonly input: z.ZodObject<{
785
1020
  flowIds: z.ZodArray<FlowId>;
@@ -827,6 +1062,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
827
1062
  }, z.core.$strip>;
828
1063
  };
829
1064
  update: {
1065
+ readonly annotations: {
1066
+ readonly destructiveHint: true;
1067
+ readonly openWorldHint: true;
1068
+ readonly readOnlyHint: false;
1069
+ };
830
1070
  readonly description: "Update an issue owned by the caller's team. Omitted fields remain unchanged.";
831
1071
  readonly input: z.ZodObject<{
832
1072
  description: z.ZodOptional<z.ZodString>;
@@ -892,6 +1132,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
892
1132
  };
893
1133
  run: {
894
1134
  create: {
1135
+ readonly annotations: {
1136
+ readonly destructiveHint: true;
1137
+ readonly openWorldHint: true;
1138
+ readonly readOnlyHint: false;
1139
+ };
895
1140
  readonly description: "Create a run for the selected flows and/or tags in an environment.";
896
1141
  readonly input: z.ZodIntersection<z.ZodObject<{
897
1142
  aiTaskId: z.ZodOptional<AiTaskId>;
@@ -901,6 +1146,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
901
1146
  ignoreRules: z.ZodDefault<z.ZodBoolean>;
902
1147
  pullRequestNumber: z.ZodOptional<z.ZodNumber>;
903
1148
  repository: z.ZodOptional<z.ZodString>;
1149
+ workspaceId: z.ZodOptional<WorkspaceId>;
904
1150
  }, z.core.$strip>, z.ZodObject<{
905
1151
  flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
906
1152
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -926,6 +1172,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
926
1172
  }, z.core.$strip>;
927
1173
  };
928
1174
  diagnose: {
1175
+ readonly annotations: {
1176
+ readonly destructiveHint: true;
1177
+ readonly openWorldHint: true;
1178
+ readonly readOnlyHint: false;
1179
+ };
929
1180
  readonly description: string;
930
1181
  readonly input: z.ZodObject<{
931
1182
  flowIds: z.ZodArray<FlowId>;
@@ -974,9 +1225,15 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
974
1225
  }, z.core.$strip>;
975
1226
  };
976
1227
  find: {
1228
+ readonly annotations: {
1229
+ readonly destructiveHint: false;
1230
+ readonly openWorldHint: false;
1231
+ readonly readOnlyHint: true;
1232
+ };
977
1233
  readonly description: "List an environment's recent runs, newest first.";
978
1234
  readonly input: z.ZodObject<{
979
1235
  environmentId: PublicIdSchema;
1236
+ workspaceId: z.ZodOptional<WorkspaceId>;
980
1237
  cursor: z.ZodOptional<z.ZodString>;
981
1238
  limit: z.ZodDefault<z.ZodNumber>;
982
1239
  createdAfter: z.ZodOptional<z.ZodISODateTime>;
@@ -1007,6 +1264,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1007
1264
  }, z.core.$strip>;
1008
1265
  };
1009
1266
  get: {
1267
+ readonly annotations: {
1268
+ readonly destructiveHint: false;
1269
+ readonly openWorldHint: false;
1270
+ readonly readOnlyHint: true;
1271
+ };
1010
1272
  readonly description: "Get a run's status, per-flow results, and links.";
1011
1273
  readonly input: z.ZodObject<{
1012
1274
  runId: RunId;
@@ -1112,6 +1374,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1112
1374
  }, z.core.$strip>;
1113
1375
  };
1114
1376
  reattempt: {
1377
+ readonly annotations: {
1378
+ readonly destructiveHint: true;
1379
+ readonly openWorldHint: true;
1380
+ readonly readOnlyHint: false;
1381
+ };
1115
1382
  readonly description: string;
1116
1383
  readonly input: z.ZodObject<{
1117
1384
  flowIds: z.ZodOptional<z.ZodArray<FlowId>>;
@@ -1126,7 +1393,12 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1126
1393
  }, z.core.$strip>;
1127
1394
  };
1128
1395
  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.";
1396
+ readonly annotations: {
1397
+ readonly destructiveHint: true;
1398
+ readonly openWorldHint: true;
1399
+ readonly readOnlyHint: false;
1400
+ };
1401
+ 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
1402
  readonly input: z.ZodObject<{
1131
1403
  runId: RunId;
1132
1404
  }, z.core.$strip>;
@@ -1145,6 +1417,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1145
1417
  };
1146
1418
  runner: {
1147
1419
  evaluateSnippet: {
1420
+ readonly annotations: {
1421
+ readonly destructiveHint: true;
1422
+ readonly openWorldHint: true;
1423
+ readonly readOnlyHint: false;
1424
+ };
1148
1425
  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
1426
  readonly input: z.ZodObject<{
1150
1427
  code: z.ZodString;
@@ -1165,27 +1442,42 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1165
1442
  }>;
1166
1443
  }, z.core.$strip>, z.ZodObject<{
1167
1444
  failureReason: z.ZodEnum<{
1168
- "runner-unreachable": "runner-unreachable";
1169
1445
  "runner-cannot-evaluate-snippets": "runner-cannot-evaluate-snippets";
1446
+ "runner-unreachable": "runner-unreachable";
1170
1447
  }>;
1171
1448
  outcome: z.ZodLiteral<"failure">;
1172
1449
  }, z.core.$strip>], "outcome">;
1173
1450
  };
1174
1451
  get: {
1175
- 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.";
1452
+ readonly annotations: {
1453
+ readonly destructiveHint: false;
1454
+ readonly openWorldHint: false;
1455
+ readonly readOnlyHint: true;
1456
+ };
1457
+ readonly description: "Report whether a runner is running under this id on the caller's team. This is a lookup: it never starts a runner, and it does not reset a runner's inactivity clock the way reading its journal does. An id that is not running is a success with `running: false` rather than an error, so this is how to check a runner is still there before addressing it. A running runner also reports the `url` to watch it on, so an id alone is enough to recover the link to give the user.";
1176
1458
  readonly input: z.ZodObject<{
1177
1459
  id: z.ZodString;
1178
1460
  workspaceId: z.ZodOptional<WorkspaceId>;
1179
1461
  }, z.core.$strip>;
1180
1462
  readonly kind: "read";
1181
1463
  readonly name: "runner.get";
1182
- readonly output: z.ZodObject<{
1464
+ readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
1183
1465
  id: z.ZodString;
1184
1466
  outcome: z.ZodLiteral<"success">;
1185
- running: z.ZodBoolean;
1186
- }, z.core.$strip>;
1467
+ running: z.ZodLiteral<false>;
1468
+ }, z.core.$strip>, z.ZodObject<{
1469
+ id: z.ZodString;
1470
+ outcome: z.ZodLiteral<"success">;
1471
+ running: z.ZodLiteral<true>;
1472
+ url: z.ZodURL;
1473
+ }, z.core.$strip>], "running">;
1187
1474
  };
1188
1475
  highlightSelector: {
1476
+ readonly annotations: {
1477
+ readonly destructiveHint: false;
1478
+ readonly openWorldHint: false;
1479
+ readonly readOnlyHint: false;
1480
+ };
1189
1481
  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
1482
  readonly input: z.ZodObject<{
1191
1483
  id: z.ZodString;
@@ -1213,6 +1505,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1213
1505
  }, z.core.$strip>], "outcome">;
1214
1506
  };
1215
1507
  importPackage: {
1508
+ readonly annotations: {
1509
+ readonly destructiveHint: true;
1510
+ readonly openWorldHint: true;
1511
+ readonly readOnlyHint: false;
1512
+ };
1216
1513
  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
1514
  readonly input: z.ZodObject<{
1218
1515
  id: z.ZodString;
@@ -1235,6 +1532,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1235
1532
  }, z.core.$strip>], "outcome">;
1236
1533
  };
1237
1534
  inspect: {
1535
+ readonly annotations: {
1536
+ readonly destructiveHint: false;
1537
+ readonly openWorldHint: false;
1538
+ readonly readOnlyHint: false;
1539
+ };
1238
1540
  readonly description: string;
1239
1541
  readonly input: z.ZodObject<{
1240
1542
  id: z.ZodString;
@@ -1266,7 +1568,12 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1266
1568
  }, z.core.$strip>], "outcome">;
1267
1569
  };
1268
1570
  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.";
1571
+ readonly annotations: {
1572
+ readonly destructiveHint: false;
1573
+ readonly openWorldHint: false;
1574
+ readonly readOnlyHint: true;
1575
+ };
1576
+ 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
1577
  readonly input: z.ZodObject<{
1271
1578
  id: z.ZodString;
1272
1579
  request: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -1288,6 +1595,16 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1288
1595
  partial: z.ZodOptional<z.ZodBoolean>;
1289
1596
  text: z.ZodString;
1290
1597
  what: z.ZodLiteral<"elements">;
1598
+ }, z.core.$strip>, z.ZodObject<{
1599
+ by: z.ZodLiteral<"selector">;
1600
+ context: z.ZodOptional<z.ZodString>;
1601
+ selector: z.ZodString;
1602
+ strategy: z.ZodDefault<z.ZodEnum<{
1603
+ "ios-predicate": "ios-predicate";
1604
+ shadow: "shadow";
1605
+ xpath: "xpath";
1606
+ }>>;
1607
+ what: z.ZodLiteral<"elements">;
1291
1608
  }, z.core.$strip>], "by">], "what">;
1292
1609
  workspaceId: z.ZodOptional<WorkspaceId>;
1293
1610
  }, z.core.$strip>;
@@ -1462,6 +1779,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1462
1779
  }, z.core.$strip>], "what">, z.ZodObject<{
1463
1780
  failureReason: z.ZodEnum<{
1464
1781
  "runner-unreachable": "runner-unreachable";
1782
+ "invalid-selector": "invalid-selector";
1465
1783
  "runner-is-not-mobile": "runner-is-not-mobile";
1466
1784
  "screen-needs-a-run": "screen-needs-a-run";
1467
1785
  "screen-not-ready": "screen-not-ready";
@@ -1470,7 +1788,12 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1470
1788
  }, z.core.$strip>], "outcome">;
1471
1789
  };
1472
1790
  launch: {
1473
- 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.";
1791
+ readonly annotations: {
1792
+ readonly destructiveHint: true;
1793
+ readonly openWorldHint: false;
1794
+ readonly readOnlyHint: false;
1795
+ };
1796
+ 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. After a successful launch, make the next action a normal user-visible assistant message containing the exact returned `url`, before the first browser action. Tool output and internal reasoning do not count as sharing the link. When `alreadyRunning` is true the `url` is the same page, so share it again instead of assuming the caller still has it.";
1474
1797
  readonly input: z.ZodObject<{
1475
1798
  id: z.ZodString;
1476
1799
  runnerName: z.ZodOptional<z.ZodEnum<{
@@ -1492,11 +1815,17 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1492
1815
  android: "android";
1493
1816
  ios: "ios";
1494
1817
  }>;
1818
+ url: z.ZodURL;
1495
1819
  alreadyRunning: z.ZodBoolean;
1496
1820
  outcome: z.ZodLiteral<"success">;
1497
1821
  }, z.core.$strip>;
1498
1822
  };
1499
1823
  list: {
1824
+ readonly annotations: {
1825
+ readonly destructiveHint: false;
1826
+ readonly openWorldHint: false;
1827
+ readonly readOnlyHint: true;
1828
+ };
1500
1829
  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
1830
  readonly input: z.ZodObject<{
1502
1831
  workspaceId: z.ZodOptional<WorkspaceId>;
@@ -1514,10 +1843,16 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1514
1843
  android: "android";
1515
1844
  ios: "ios";
1516
1845
  }>;
1846
+ url: z.ZodURL;
1517
1847
  }, z.core.$strip>>;
1518
1848
  }, z.core.$strip>;
1519
1849
  };
1520
1850
  performAction: {
1851
+ readonly annotations: {
1852
+ readonly destructiveHint: true;
1853
+ readonly openWorldHint: true;
1854
+ readonly readOnlyHint: false;
1855
+ };
1521
1856
  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
1857
  readonly input: z.ZodObject<{
1523
1858
  action: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -1581,6 +1916,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1581
1916
  }, z.core.$strip>], "failureReason">], "outcome">;
1582
1917
  };
1583
1918
  promoteSnapshot: {
1919
+ readonly annotations: {
1920
+ readonly destructiveHint: true;
1921
+ readonly openWorldHint: false;
1922
+ readonly readOnlyHint: false;
1923
+ };
1584
1924
  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
1925
  readonly input: z.ZodObject<{
1586
1926
  baselinePath: z.ZodString;
@@ -1602,6 +1942,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1602
1942
  }, z.core.$strip>], "outcome">;
1603
1943
  };
1604
1944
  readJournal: {
1945
+ readonly annotations: {
1946
+ readonly destructiveHint: false;
1947
+ readonly openWorldHint: false;
1948
+ readonly readOnlyHint: false;
1949
+ };
1605
1950
  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
1951
  readonly input: z.ZodObject<{
1607
1952
  runId: z.ZodOptional<z.ZodString>;
@@ -1618,7 +1963,7 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1618
1963
  payload: z.ZodUnknown;
1619
1964
  recordedAt: z.ZodISODateTime;
1620
1965
  sequence: z.ZodNumber;
1621
- }, z.core.$strip>, z.ZodTransform<import("./runnerReexports.js").JournalEntry<unknown>, {
1966
+ }, z.core.$strip>, z.ZodTransform<import("./sharedSchemas.js").JournalEntry<unknown>, {
1622
1967
  payload: unknown;
1623
1968
  recordedAt: string;
1624
1969
  sequence: number;
@@ -1635,6 +1980,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1635
1980
  }, z.core.$strip>], "outcome">;
1636
1981
  };
1637
1982
  runFlow: {
1983
+ readonly annotations: {
1984
+ readonly destructiveHint: true;
1985
+ readonly openWorldHint: true;
1986
+ readonly readOnlyHint: false;
1987
+ };
1638
1988
  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
1989
  readonly input: z.ZodObject<{
1640
1990
  entryPointPath: z.ZodString;
@@ -1681,6 +2031,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1681
2031
  }, z.core.$strip>], "failureReason">], "outcome">;
1682
2032
  };
1683
2033
  stopRun: {
2034
+ readonly annotations: {
2035
+ readonly destructiveHint: true;
2036
+ readonly openWorldHint: false;
2037
+ readonly readOnlyHint: false;
2038
+ };
1684
2039
  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
2040
  readonly input: z.ZodObject<{
1686
2041
  id: z.ZodString;
@@ -1699,7 +2054,12 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1699
2054
  }, z.core.$strip>], "outcome">;
1700
2055
  };
1701
2056
  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.";
2057
+ readonly annotations: {
2058
+ readonly destructiveHint: false;
2059
+ readonly openWorldHint: false;
2060
+ readonly readOnlyHint: false;
2061
+ };
2062
+ 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
2063
  readonly input: z.ZodObject<{
1704
2064
  id: z.ZodString;
1705
2065
  workspaceId: z.ZodOptional<WorkspaceId>;
@@ -1720,6 +2080,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1720
2080
  }, z.core.$strip>], "outcome">;
1721
2081
  };
1722
2082
  terminate: {
2083
+ readonly annotations: {
2084
+ readonly destructiveHint: true;
2085
+ readonly openWorldHint: false;
2086
+ readonly readOnlyHint: false;
2087
+ };
1723
2088
  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
2089
  readonly input: z.ZodObject<{
1725
2090
  id: z.ZodString;
@@ -1736,6 +2101,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1736
2101
  };
1737
2102
  tag: {
1738
2103
  create: {
2104
+ readonly annotations: {
2105
+ readonly destructiveHint: false;
2106
+ readonly openWorldHint: false;
2107
+ readonly readOnlyHint: false;
2108
+ };
1739
2109
  readonly description: "Create a tag on the caller's team. Tags select flows in run.create.";
1740
2110
  readonly input: z.ZodObject<{
1741
2111
  name: z.ZodString;
@@ -1750,6 +2120,11 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1750
2120
  }, z.core.$strip>;
1751
2121
  };
1752
2122
  list: {
2123
+ readonly annotations: {
2124
+ readonly destructiveHint: false;
2125
+ readonly openWorldHint: false;
2126
+ readonly readOnlyHint: true;
2127
+ };
1753
2128
  readonly description: "List the team's tags, alphabetical by name. Tag names select flows in run.create.";
1754
2129
  readonly input: z.ZodObject<{
1755
2130
  cursor: z.ZodOptional<z.ZodString>;
@@ -1771,17 +2146,515 @@ export declare const makeContractsV1: <EnvironmentId extends PublicIdSchema, Flo
1771
2146
  }, z.core.$strip>;
1772
2147
  };
1773
2148
  };
2149
+ trigger: {
2150
+ create: {
2151
+ readonly annotations: {
2152
+ readonly destructiveHint: true;
2153
+ readonly openWorldHint: true;
2154
+ readonly readOnlyHint: false;
2155
+ };
2156
+ readonly description: string;
2157
+ readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
2158
+ kind: z.ZodLiteral<"schedule">;
2159
+ action: z.ZodObject<{
2160
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2161
+ instructions: z.ZodOptional<z.ZodString>;
2162
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2163
+ kind: z.ZodDefault<z.ZodEnum<{
2164
+ createSuite: "createSuite";
2165
+ generativeSuite: "generativeSuite";
2166
+ }>>;
2167
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2168
+ }, z.core.$strip>;
2169
+ cadence: z.ZodEnum<{
2170
+ hourly: "hourly";
2171
+ daily: "daily";
2172
+ }>;
2173
+ environmentId: PublicIdSchema;
2174
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2175
+ timeOfDay: z.ZodOptional<z.ZodString>;
2176
+ timezoneId: z.ZodOptional<z.ZodString>;
2177
+ name: z.ZodString;
2178
+ workspaceId: z.ZodOptional<WorkspaceId>;
2179
+ }, z.core.$strip>, z.ZodObject<{
2180
+ kind: z.ZodLiteral<"deployment">;
2181
+ action: z.ZodObject<{
2182
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2183
+ instructions: z.ZodOptional<z.ZodString>;
2184
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2185
+ kind: z.ZodDefault<z.ZodEnum<{
2186
+ createSuite: "createSuite";
2187
+ generativeSuite: "generativeSuite";
2188
+ }>>;
2189
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2190
+ }, z.core.$strip>;
2191
+ branchPattern: z.ZodOptional<z.ZodString>;
2192
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2193
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2194
+ environmentPattern: z.ZodOptional<z.ZodString>;
2195
+ name: z.ZodString;
2196
+ workspaceId: z.ZodOptional<WorkspaceId>;
2197
+ }, z.core.$strip>], "kind">;
2198
+ readonly kind: "write";
2199
+ readonly name: "trigger.create";
2200
+ readonly output: z.ZodObject<{
2201
+ trigger: z.ZodObject<{
2202
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2203
+ kind: z.ZodLiteral<"schedule">;
2204
+ action: z.ZodObject<{
2205
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2206
+ instructions: z.ZodOptional<z.ZodString>;
2207
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2208
+ kind: z.ZodDefault<z.ZodEnum<{
2209
+ createSuite: "createSuite";
2210
+ generativeSuite: "generativeSuite";
2211
+ }>>;
2212
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2213
+ }, z.core.$strip>;
2214
+ cadence: z.ZodEnum<{
2215
+ hourly: "hourly";
2216
+ daily: "daily";
2217
+ }>;
2218
+ environmentId: EnvironmentId;
2219
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2220
+ timeOfDay: z.ZodOptional<z.ZodString>;
2221
+ timezoneId: z.ZodOptional<z.ZodString>;
2222
+ }, z.core.$strip>, z.ZodObject<{
2223
+ kind: z.ZodLiteral<"deployment">;
2224
+ action: z.ZodObject<{
2225
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2226
+ instructions: z.ZodOptional<z.ZodString>;
2227
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2228
+ kind: z.ZodDefault<z.ZodEnum<{
2229
+ createSuite: "createSuite";
2230
+ generativeSuite: "generativeSuite";
2231
+ }>>;
2232
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2233
+ }, z.core.$strip>;
2234
+ branchPattern: z.ZodOptional<z.ZodString>;
2235
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2236
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2237
+ environmentPattern: z.ZodOptional<z.ZodString>;
2238
+ }, z.core.$strip>, z.ZodObject<{
2239
+ actionCount: z.ZodNumber;
2240
+ kind: z.ZodLiteral<"advanced">;
2241
+ whenCount: z.ZodNumber;
2242
+ }, z.core.$strip>], "kind">;
2243
+ createdAt: z.ZodISODateTime;
2244
+ id: TriggerId;
2245
+ isPaused: z.ZodBoolean;
2246
+ name: z.ZodString;
2247
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2248
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2249
+ updatedAt: z.ZodISODateTime;
2250
+ url: z.ZodURL;
2251
+ }, z.core.$strip>;
2252
+ }, z.core.$strip>;
2253
+ };
2254
+ delete: {
2255
+ readonly annotations: {
2256
+ readonly destructiveHint: true;
2257
+ readonly openWorldHint: false;
2258
+ readonly readOnlyHint: false;
2259
+ };
2260
+ readonly description: string;
2261
+ readonly input: z.ZodObject<{
2262
+ triggerId: TriggerId;
2263
+ }, z.core.$strip>;
2264
+ readonly kind: "write";
2265
+ readonly name: "trigger.delete";
2266
+ readonly output: z.ZodObject<{
2267
+ triggerId: TriggerId;
2268
+ }, z.core.$strip>;
2269
+ };
2270
+ find: {
2271
+ readonly annotations: {
2272
+ readonly destructiveHint: false;
2273
+ readonly openWorldHint: false;
2274
+ readonly readOnlyHint: true;
2275
+ };
2276
+ readonly description: "List the team's triggers, newest first.";
2277
+ readonly input: z.ZodObject<{
2278
+ isPaused: z.ZodOptional<z.ZodBoolean>;
2279
+ workspaceId: z.ZodOptional<WorkspaceId>;
2280
+ }, z.core.$strip>;
2281
+ readonly kind: "read";
2282
+ readonly name: "trigger.find";
2283
+ readonly output: z.ZodObject<{
2284
+ triggers: z.ZodArray<z.ZodObject<{
2285
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2286
+ kind: z.ZodLiteral<"schedule">;
2287
+ action: z.ZodObject<{
2288
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2289
+ instructions: z.ZodOptional<z.ZodString>;
2290
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2291
+ kind: z.ZodDefault<z.ZodEnum<{
2292
+ createSuite: "createSuite";
2293
+ generativeSuite: "generativeSuite";
2294
+ }>>;
2295
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2296
+ }, z.core.$strip>;
2297
+ cadence: z.ZodEnum<{
2298
+ hourly: "hourly";
2299
+ daily: "daily";
2300
+ }>;
2301
+ environmentId: EnvironmentId;
2302
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2303
+ timeOfDay: z.ZodOptional<z.ZodString>;
2304
+ timezoneId: z.ZodOptional<z.ZodString>;
2305
+ }, z.core.$strip>, z.ZodObject<{
2306
+ kind: z.ZodLiteral<"deployment">;
2307
+ action: z.ZodObject<{
2308
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2309
+ instructions: z.ZodOptional<z.ZodString>;
2310
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2311
+ kind: z.ZodDefault<z.ZodEnum<{
2312
+ createSuite: "createSuite";
2313
+ generativeSuite: "generativeSuite";
2314
+ }>>;
2315
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2316
+ }, z.core.$strip>;
2317
+ branchPattern: z.ZodOptional<z.ZodString>;
2318
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2319
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2320
+ environmentPattern: z.ZodOptional<z.ZodString>;
2321
+ }, z.core.$strip>, z.ZodObject<{
2322
+ actionCount: z.ZodNumber;
2323
+ kind: z.ZodLiteral<"advanced">;
2324
+ whenCount: z.ZodNumber;
2325
+ }, z.core.$strip>], "kind">;
2326
+ createdAt: z.ZodISODateTime;
2327
+ id: TriggerId;
2328
+ isPaused: z.ZodBoolean;
2329
+ name: z.ZodString;
2330
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2331
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2332
+ updatedAt: z.ZodISODateTime;
2333
+ url: z.ZodURL;
2334
+ }, z.core.$strip>>;
2335
+ }, z.core.$strip>;
2336
+ };
2337
+ get: {
2338
+ readonly annotations: {
2339
+ readonly destructiveHint: false;
2340
+ readonly openWorldHint: false;
2341
+ readonly readOnlyHint: true;
2342
+ };
2343
+ readonly description: "Get one trigger by id.";
2344
+ readonly input: z.ZodObject<{
2345
+ triggerId: TriggerId;
2346
+ }, z.core.$strip>;
2347
+ readonly kind: "read";
2348
+ readonly name: "trigger.get";
2349
+ readonly output: z.ZodObject<{
2350
+ trigger: z.ZodObject<{
2351
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2352
+ kind: z.ZodLiteral<"schedule">;
2353
+ action: z.ZodObject<{
2354
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2355
+ instructions: z.ZodOptional<z.ZodString>;
2356
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2357
+ kind: z.ZodDefault<z.ZodEnum<{
2358
+ createSuite: "createSuite";
2359
+ generativeSuite: "generativeSuite";
2360
+ }>>;
2361
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2362
+ }, z.core.$strip>;
2363
+ cadence: z.ZodEnum<{
2364
+ hourly: "hourly";
2365
+ daily: "daily";
2366
+ }>;
2367
+ environmentId: EnvironmentId;
2368
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2369
+ timeOfDay: z.ZodOptional<z.ZodString>;
2370
+ timezoneId: z.ZodOptional<z.ZodString>;
2371
+ }, z.core.$strip>, z.ZodObject<{
2372
+ kind: z.ZodLiteral<"deployment">;
2373
+ action: z.ZodObject<{
2374
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2375
+ instructions: z.ZodOptional<z.ZodString>;
2376
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2377
+ kind: z.ZodDefault<z.ZodEnum<{
2378
+ createSuite: "createSuite";
2379
+ generativeSuite: "generativeSuite";
2380
+ }>>;
2381
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2382
+ }, z.core.$strip>;
2383
+ branchPattern: z.ZodOptional<z.ZodString>;
2384
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2385
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2386
+ environmentPattern: z.ZodOptional<z.ZodString>;
2387
+ }, z.core.$strip>, z.ZodObject<{
2388
+ actionCount: z.ZodNumber;
2389
+ kind: z.ZodLiteral<"advanced">;
2390
+ whenCount: z.ZodNumber;
2391
+ }, z.core.$strip>], "kind">;
2392
+ createdAt: z.ZodISODateTime;
2393
+ id: TriggerId;
2394
+ isPaused: z.ZodBoolean;
2395
+ name: z.ZodString;
2396
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2397
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2398
+ updatedAt: z.ZodISODateTime;
2399
+ url: z.ZodURL;
2400
+ }, z.core.$strip>;
2401
+ }, z.core.$strip>;
2402
+ };
2403
+ pause: {
2404
+ readonly annotations: {
2405
+ readonly destructiveHint: true;
2406
+ readonly openWorldHint: false;
2407
+ readonly readOnlyHint: false;
2408
+ };
2409
+ readonly description: string;
2410
+ readonly input: z.ZodObject<{
2411
+ triggerId: TriggerId;
2412
+ }, z.core.$strip>;
2413
+ readonly kind: "write";
2414
+ readonly name: "trigger.pause";
2415
+ readonly output: z.ZodObject<{
2416
+ trigger: z.ZodObject<{
2417
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2418
+ kind: z.ZodLiteral<"schedule">;
2419
+ action: z.ZodObject<{
2420
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2421
+ instructions: z.ZodOptional<z.ZodString>;
2422
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2423
+ kind: z.ZodDefault<z.ZodEnum<{
2424
+ createSuite: "createSuite";
2425
+ generativeSuite: "generativeSuite";
2426
+ }>>;
2427
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2428
+ }, z.core.$strip>;
2429
+ cadence: z.ZodEnum<{
2430
+ hourly: "hourly";
2431
+ daily: "daily";
2432
+ }>;
2433
+ environmentId: EnvironmentId;
2434
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2435
+ timeOfDay: z.ZodOptional<z.ZodString>;
2436
+ timezoneId: z.ZodOptional<z.ZodString>;
2437
+ }, z.core.$strip>, z.ZodObject<{
2438
+ kind: z.ZodLiteral<"deployment">;
2439
+ action: z.ZodObject<{
2440
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2441
+ instructions: z.ZodOptional<z.ZodString>;
2442
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2443
+ kind: z.ZodDefault<z.ZodEnum<{
2444
+ createSuite: "createSuite";
2445
+ generativeSuite: "generativeSuite";
2446
+ }>>;
2447
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2448
+ }, z.core.$strip>;
2449
+ branchPattern: z.ZodOptional<z.ZodString>;
2450
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2451
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2452
+ environmentPattern: z.ZodOptional<z.ZodString>;
2453
+ }, z.core.$strip>, z.ZodObject<{
2454
+ actionCount: z.ZodNumber;
2455
+ kind: z.ZodLiteral<"advanced">;
2456
+ whenCount: z.ZodNumber;
2457
+ }, z.core.$strip>], "kind">;
2458
+ createdAt: z.ZodISODateTime;
2459
+ id: TriggerId;
2460
+ isPaused: z.ZodBoolean;
2461
+ name: z.ZodString;
2462
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2463
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2464
+ updatedAt: z.ZodISODateTime;
2465
+ url: z.ZodURL;
2466
+ }, z.core.$strip>;
2467
+ }, z.core.$strip>;
2468
+ };
2469
+ resume: {
2470
+ readonly annotations: {
2471
+ readonly destructiveHint: true;
2472
+ readonly openWorldHint: true;
2473
+ readonly readOnlyHint: false;
2474
+ };
2475
+ readonly description: string;
2476
+ readonly input: z.ZodObject<{
2477
+ triggerId: TriggerId;
2478
+ }, z.core.$strip>;
2479
+ readonly kind: "write";
2480
+ readonly name: "trigger.resume";
2481
+ readonly output: z.ZodObject<{
2482
+ trigger: z.ZodObject<{
2483
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2484
+ kind: z.ZodLiteral<"schedule">;
2485
+ action: z.ZodObject<{
2486
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2487
+ instructions: z.ZodOptional<z.ZodString>;
2488
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2489
+ kind: z.ZodDefault<z.ZodEnum<{
2490
+ createSuite: "createSuite";
2491
+ generativeSuite: "generativeSuite";
2492
+ }>>;
2493
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2494
+ }, z.core.$strip>;
2495
+ cadence: z.ZodEnum<{
2496
+ hourly: "hourly";
2497
+ daily: "daily";
2498
+ }>;
2499
+ environmentId: EnvironmentId;
2500
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2501
+ timeOfDay: z.ZodOptional<z.ZodString>;
2502
+ timezoneId: z.ZodOptional<z.ZodString>;
2503
+ }, z.core.$strip>, z.ZodObject<{
2504
+ kind: z.ZodLiteral<"deployment">;
2505
+ action: z.ZodObject<{
2506
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2507
+ instructions: z.ZodOptional<z.ZodString>;
2508
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2509
+ kind: z.ZodDefault<z.ZodEnum<{
2510
+ createSuite: "createSuite";
2511
+ generativeSuite: "generativeSuite";
2512
+ }>>;
2513
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2514
+ }, z.core.$strip>;
2515
+ branchPattern: z.ZodOptional<z.ZodString>;
2516
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2517
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2518
+ environmentPattern: z.ZodOptional<z.ZodString>;
2519
+ }, z.core.$strip>, z.ZodObject<{
2520
+ actionCount: z.ZodNumber;
2521
+ kind: z.ZodLiteral<"advanced">;
2522
+ whenCount: z.ZodNumber;
2523
+ }, z.core.$strip>], "kind">;
2524
+ createdAt: z.ZodISODateTime;
2525
+ id: TriggerId;
2526
+ isPaused: z.ZodBoolean;
2527
+ name: z.ZodString;
2528
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2529
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2530
+ updatedAt: z.ZodISODateTime;
2531
+ url: z.ZodURL;
2532
+ }, z.core.$strip>;
2533
+ }, z.core.$strip>;
2534
+ };
2535
+ update: {
2536
+ readonly annotations: {
2537
+ readonly destructiveHint: true;
2538
+ readonly openWorldHint: true;
2539
+ readonly readOnlyHint: false;
2540
+ };
2541
+ readonly description: string;
2542
+ readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
2543
+ kind: z.ZodLiteral<"schedule">;
2544
+ action: z.ZodObject<{
2545
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2546
+ instructions: z.ZodOptional<z.ZodString>;
2547
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2548
+ kind: z.ZodDefault<z.ZodEnum<{
2549
+ createSuite: "createSuite";
2550
+ generativeSuite: "generativeSuite";
2551
+ }>>;
2552
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2553
+ }, z.core.$strip>;
2554
+ cadence: z.ZodEnum<{
2555
+ hourly: "hourly";
2556
+ daily: "daily";
2557
+ }>;
2558
+ environmentId: PublicIdSchema;
2559
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2560
+ timeOfDay: z.ZodOptional<z.ZodString>;
2561
+ timezoneId: z.ZodOptional<z.ZodString>;
2562
+ name: z.ZodString;
2563
+ triggerId: TriggerId;
2564
+ }, z.core.$strip>, z.ZodObject<{
2565
+ kind: z.ZodLiteral<"deployment">;
2566
+ action: z.ZodObject<{
2567
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2568
+ instructions: z.ZodOptional<z.ZodString>;
2569
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2570
+ kind: z.ZodDefault<z.ZodEnum<{
2571
+ createSuite: "createSuite";
2572
+ generativeSuite: "generativeSuite";
2573
+ }>>;
2574
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2575
+ }, z.core.$strip>;
2576
+ branchPattern: z.ZodOptional<z.ZodString>;
2577
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2578
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2579
+ environmentPattern: z.ZodOptional<z.ZodString>;
2580
+ name: z.ZodString;
2581
+ triggerId: TriggerId;
2582
+ }, z.core.$strip>], "kind">;
2583
+ readonly kind: "write";
2584
+ readonly name: "trigger.update";
2585
+ readonly output: z.ZodObject<{
2586
+ trigger: z.ZodObject<{
2587
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
2588
+ kind: z.ZodLiteral<"schedule">;
2589
+ action: z.ZodObject<{
2590
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2591
+ instructions: z.ZodOptional<z.ZodString>;
2592
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2593
+ kind: z.ZodDefault<z.ZodEnum<{
2594
+ createSuite: "createSuite";
2595
+ generativeSuite: "generativeSuite";
2596
+ }>>;
2597
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2598
+ }, z.core.$strip>;
2599
+ cadence: z.ZodEnum<{
2600
+ hourly: "hourly";
2601
+ daily: "daily";
2602
+ }>;
2603
+ environmentId: EnvironmentId;
2604
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
2605
+ timeOfDay: z.ZodOptional<z.ZodString>;
2606
+ timezoneId: z.ZodOptional<z.ZodString>;
2607
+ }, z.core.$strip>, z.ZodObject<{
2608
+ kind: z.ZodLiteral<"deployment">;
2609
+ action: z.ZodObject<{
2610
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
2611
+ instructions: z.ZodOptional<z.ZodString>;
2612
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
2613
+ kind: z.ZodDefault<z.ZodEnum<{
2614
+ createSuite: "createSuite";
2615
+ generativeSuite: "generativeSuite";
2616
+ }>>;
2617
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
2618
+ }, z.core.$strip>;
2619
+ branchPattern: z.ZodOptional<z.ZodString>;
2620
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
2621
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
2622
+ environmentPattern: z.ZodOptional<z.ZodString>;
2623
+ }, z.core.$strip>, z.ZodObject<{
2624
+ actionCount: z.ZodNumber;
2625
+ kind: z.ZodLiteral<"advanced">;
2626
+ whenCount: z.ZodNumber;
2627
+ }, z.core.$strip>], "kind">;
2628
+ createdAt: z.ZodISODateTime;
2629
+ id: TriggerId;
2630
+ isPaused: z.ZodBoolean;
2631
+ name: z.ZodString;
2632
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
2633
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
2634
+ updatedAt: z.ZodISODateTime;
2635
+ url: z.ZodURL;
2636
+ }, z.core.$strip>;
2637
+ }, z.core.$strip>;
2638
+ };
2639
+ };
1774
2640
  };
1775
2641
  export declare const publicContractsV1: {
1776
2642
  agent: {
1777
2643
  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.";
2644
+ readonly annotations: {
2645
+ readonly destructiveHint: false;
2646
+ readonly openWorldHint: false;
2647
+ readonly readOnlyHint: true;
2648
+ };
2649
+ 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
2650
  readonly input: z.ZodObject<{
2651
+ cursor: z.ZodOptional<z.ZodString>;
1780
2652
  sessionId: PublicIdSchema;
1781
2653
  }, z.core.$strip>;
1782
2654
  readonly kind: "read";
1783
2655
  readonly name: "agent.get";
1784
2656
  readonly output: z.ZodObject<{
2657
+ nextCursor: z.ZodString;
1785
2658
  replies: z.ZodArray<z.ZodObject<{
1786
2659
  askedAt: z.ZodISODateTime;
1787
2660
  choices: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -1799,9 +2672,15 @@ export declare const publicContractsV1: {
1799
2672
  }, z.core.$strip>;
1800
2673
  };
1801
2674
  send: {
2675
+ readonly annotations: {
2676
+ readonly destructiveHint: true;
2677
+ readonly openWorldHint: true;
2678
+ readonly readOnlyHint: false;
2679
+ };
1802
2680
  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
2681
  readonly input: z.ZodObject<{
1804
2682
  environmentId: z.ZodOptional<PublicIdSchema>;
2683
+ filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
1805
2684
  message: z.ZodString;
1806
2685
  sessionId: z.ZodOptional<PublicIdSchema>;
1807
2686
  workspaceId: z.ZodOptional<PublicIdSchema>;
@@ -1822,12 +2701,18 @@ export declare const publicContractsV1: {
1822
2701
  };
1823
2702
  };
1824
2703
  automate: {
2704
+ readonly annotations: {
2705
+ readonly destructiveHint: true;
2706
+ readonly openWorldHint: true;
2707
+ readonly readOnlyHint: false;
2708
+ };
1825
2709
  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
2710
  readonly input: z.ZodObject<{
1827
2711
  aiTaskId: z.ZodOptional<PublicIdSchema>;
1828
2712
  environmentId: PublicIdSchema;
1829
2713
  flowIds: z.ZodArray<PublicIdSchema>;
1830
2714
  patch: z.ZodOptional<z.ZodString>;
2715
+ workspaceId: z.ZodOptional<PublicIdSchema>;
1831
2716
  }, z.core.$strip>;
1832
2717
  readonly kind: "write";
1833
2718
  readonly name: "automate";
@@ -1836,8 +2721,64 @@ export declare const publicContractsV1: {
1836
2721
  url: z.ZodURL;
1837
2722
  }, z.core.$strip>;
1838
2723
  };
2724
+ deployment: {
2725
+ reportStatus: {
2726
+ readonly annotations: {
2727
+ readonly destructiveHint: true;
2728
+ readonly openWorldHint: true;
2729
+ readonly readOnlyHint: false;
2730
+ };
2731
+ readonly description: "Report a deployment lifecycle status. A deployment's first success report evaluates global triggers asynchronously, and it is the only report that does: a trigger added or unpaused later does not make an already reported deployment evaluate again. Report that deployment under a new providerDeploymentId to evaluate it against the current triggers. The response contains the deployment only, not the resulting runs. This route requires an organization or user API key.";
2732
+ readonly input: z.ZodObject<{
2733
+ deployTarget: z.ZodOptional<z.ZodURL>;
2734
+ environment: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2735
+ id: PublicIdSchema;
2736
+ }, z.core.$strict>, z.ZodObject<{
2737
+ baseEphemeralEnvironment: z.ZodOptional<z.ZodString>;
2738
+ ephemeral: z.ZodOptional<z.ZodBoolean>;
2739
+ name: z.ZodString;
2740
+ }, z.core.$strict>]>>;
2741
+ environmentVariables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2742
+ metadata: z.ZodOptional<z.ZodObject<{
2743
+ commitAuthorName: z.ZodOptional<z.ZodString>;
2744
+ commitMessage: z.ZodOptional<z.ZodString>;
2745
+ commitSha: z.ZodOptional<z.ZodString>;
2746
+ pullRequestNumber: z.ZodOptional<z.ZodNumber>;
2747
+ ref: z.ZodOptional<z.ZodString>;
2748
+ repository: z.ZodOptional<z.ZodString>;
2749
+ }, z.core.$strict>>;
2750
+ providerDeploymentId: z.ZodString;
2751
+ status: z.ZodEnum<{
2752
+ success: "success";
2753
+ pending: "pending";
2754
+ failure: "failure";
2755
+ inactive: "inactive";
2756
+ }>;
2757
+ workspaceId: PublicIdSchema;
2758
+ }, z.core.$strict>;
2759
+ readonly kind: "write";
2760
+ readonly name: "deployment.reportStatus";
2761
+ readonly output: z.ZodObject<{
2762
+ deployment: z.ZodObject<{
2763
+ id: PublicIdSchema;
2764
+ status: z.ZodEnum<{
2765
+ success: "success";
2766
+ pending: "pending";
2767
+ failure: "failure";
2768
+ inactive: "inactive";
2769
+ }>;
2770
+ url: z.ZodURL;
2771
+ }, z.core.$strip>;
2772
+ }, z.core.$strip>;
2773
+ };
2774
+ };
1839
2775
  email: {
1840
2776
  find: {
2777
+ readonly annotations: {
2778
+ readonly destructiveHint: false;
2779
+ readonly openWorldHint: false;
2780
+ readonly readOnlyHint: true;
2781
+ };
1841
2782
  readonly description: "List the workspace's inbox, or its sent mail, newest first. Read a message body with email.get.";
1842
2783
  readonly input: z.ZodObject<{
1843
2784
  cursor: z.ZodOptional<z.ZodString>;
@@ -1875,6 +2816,11 @@ export declare const publicContractsV1: {
1875
2816
  }, z.core.$strip>;
1876
2817
  };
1877
2818
  get: {
2819
+ readonly annotations: {
2820
+ readonly destructiveHint: false;
2821
+ readonly openWorldHint: false;
2822
+ readonly readOnlyHint: true;
2823
+ };
1878
2824
  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
2825
  readonly input: z.ZodObject<{
1880
2826
  id: z.ZodString;
@@ -1922,6 +2868,11 @@ export declare const publicContractsV1: {
1922
2868
  }, z.core.$strip>;
1923
2869
  };
1924
2870
  getAttachment: {
2871
+ readonly annotations: {
2872
+ readonly destructiveHint: false;
2873
+ readonly openWorldHint: false;
2874
+ readonly readOnlyHint: true;
2875
+ };
1925
2876
  readonly description: "Read one attachment of a workspace email as base64 content, by file name or by position. email.get lists both.";
1926
2877
  readonly input: z.ZodObject<{
1927
2878
  fileName: z.ZodOptional<z.ZodString>;
@@ -1940,6 +2891,11 @@ export declare const publicContractsV1: {
1940
2891
  }, z.core.$strip>;
1941
2892
  };
1942
2893
  listAddresses: {
2894
+ readonly annotations: {
2895
+ readonly destructiveHint: false;
2896
+ readonly openWorldHint: false;
2897
+ readonly readOnlyHint: true;
2898
+ };
1943
2899
  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
2900
  readonly input: z.ZodObject<{
1945
2901
  cursor: z.ZodOptional<z.ZodString>;
@@ -1958,6 +2914,11 @@ export declare const publicContractsV1: {
1958
2914
  }, z.core.$strip>;
1959
2915
  };
1960
2916
  registerAddress: {
2917
+ readonly annotations: {
2918
+ readonly destructiveHint: false;
2919
+ readonly openWorldHint: false;
2920
+ readonly readOnlyHint: false;
2921
+ };
1961
2922
  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
2923
  readonly input: z.ZodObject<{
1963
2924
  address: z.ZodEmail;
@@ -1972,6 +2933,11 @@ export declare const publicContractsV1: {
1972
2933
  }, z.core.$strip>;
1973
2934
  };
1974
2935
  send: {
2936
+ readonly annotations: {
2937
+ readonly destructiveHint: true;
2938
+ readonly openWorldHint: true;
2939
+ readonly readOnlyHint: false;
2940
+ };
1975
2941
  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
2942
  readonly input: z.ZodObject<{
1977
2943
  attachments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBase64>>;
@@ -2010,7 +2976,12 @@ export declare const publicContractsV1: {
2010
2976
  };
2011
2977
  environment: {
2012
2978
  create: {
2013
- readonly description: "Create an environment on the caller's team and return it in the environment.get shape.";
2979
+ readonly annotations: {
2980
+ readonly destructiveHint: false;
2981
+ readonly openWorldHint: true;
2982
+ readonly readOnlyHint: false;
2983
+ };
2984
+ 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
2985
  readonly input: z.ZodObject<{
2015
2986
  name: z.ZodString;
2016
2987
  workspaceId: z.ZodOptional<PublicIdSchema>;
@@ -2036,9 +3007,9 @@ export declare const publicContractsV1: {
2036
3007
  name: z.ZodString;
2037
3008
  runConcurrencyLimit: z.ZodString;
2038
3009
  status: z.ZodEnum<{
2039
- ready: "ready";
2040
3010
  blocked: "blocked";
2041
3011
  "needs-investigation": "needs-investigation";
3012
+ ready: "ready";
2042
3013
  running: "running";
2043
3014
  }>;
2044
3015
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -2046,10 +3017,16 @@ export declare const publicContractsV1: {
2046
3017
  }, z.core.$strip>;
2047
3018
  };
2048
3019
  deleteVariable: {
3020
+ readonly annotations: {
3021
+ readonly destructiveHint: true;
3022
+ readonly openWorldHint: false;
3023
+ readonly readOnlyHint: false;
3024
+ };
2049
3025
  readonly description: "Remove one environment variable by name. Succeeds whether or not the variable existed.";
2050
3026
  readonly input: z.ZodObject<{
2051
3027
  environmentId: PublicIdSchema;
2052
3028
  name: z.ZodString;
3029
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2053
3030
  }, z.core.$strip>;
2054
3031
  readonly kind: "write";
2055
3032
  readonly name: "environment.deleteVariable";
@@ -2058,6 +3035,11 @@ export declare const publicContractsV1: {
2058
3035
  }, z.core.$strip>;
2059
3036
  };
2060
3037
  find: {
3038
+ readonly annotations: {
3039
+ readonly destructiveHint: false;
3040
+ readonly openWorldHint: false;
3041
+ readonly readOnlyHint: true;
3042
+ };
2061
3043
  readonly description: "List the team's environments, newest first.";
2062
3044
  readonly input: z.ZodObject<{
2063
3045
  cursor: z.ZodOptional<z.ZodString>;
@@ -2092,9 +3074,9 @@ export declare const publicContractsV1: {
2092
3074
  name: z.ZodString;
2093
3075
  runConcurrencyLimit: z.ZodString;
2094
3076
  status: z.ZodEnum<{
2095
- ready: "ready";
2096
3077
  blocked: "blocked";
2097
3078
  "needs-investigation": "needs-investigation";
3079
+ ready: "ready";
2098
3080
  running: "running";
2099
3081
  }>;
2100
3082
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -2104,9 +3086,15 @@ export declare const publicContractsV1: {
2104
3086
  }, z.core.$strip>;
2105
3087
  };
2106
3088
  get: {
3089
+ readonly annotations: {
3090
+ readonly destructiveHint: false;
3091
+ readonly openWorldHint: false;
3092
+ readonly readOnlyHint: true;
3093
+ };
2107
3094
  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
3095
  readonly input: z.ZodObject<{
2109
3096
  environmentId: PublicIdSchema;
3097
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2110
3098
  }, z.core.$strip>;
2111
3099
  readonly kind: "read";
2112
3100
  readonly name: "environment.get";
@@ -2129,9 +3117,9 @@ export declare const publicContractsV1: {
2129
3117
  name: z.ZodString;
2130
3118
  runConcurrencyLimit: z.ZodString;
2131
3119
  status: z.ZodEnum<{
2132
- ready: "ready";
2133
3120
  blocked: "blocked";
2134
3121
  "needs-investigation": "needs-investigation";
3122
+ ready: "ready";
2135
3123
  running: "running";
2136
3124
  }>;
2137
3125
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -2139,10 +3127,16 @@ export declare const publicContractsV1: {
2139
3127
  }, z.core.$strip>;
2140
3128
  };
2141
3129
  getVariable: {
3130
+ readonly annotations: {
3131
+ readonly destructiveHint: false;
3132
+ readonly openWorldHint: false;
3133
+ readonly readOnlyHint: true;
3134
+ };
2142
3135
  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
3136
  readonly input: z.ZodObject<{
2144
3137
  environmentId: PublicIdSchema;
2145
3138
  variableNames: z.ZodArray<z.ZodString>;
3139
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2146
3140
  }, z.core.$strip>;
2147
3141
  readonly kind: "read";
2148
3142
  readonly name: "environment.getVariable";
@@ -2155,9 +3149,15 @@ export declare const publicContractsV1: {
2155
3149
  }, z.core.$strip>;
2156
3150
  };
2157
3151
  listVariableNames: {
3152
+ readonly annotations: {
3153
+ readonly destructiveHint: false;
3154
+ readonly openWorldHint: false;
3155
+ readonly readOnlyHint: true;
3156
+ };
2158
3157
  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
3158
  readonly input: z.ZodObject<{
2160
3159
  environmentId: PublicIdSchema;
3160
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2161
3161
  }, z.core.$strip>;
2162
3162
  readonly kind: "read";
2163
3163
  readonly name: "environment.listVariableNames";
@@ -2166,11 +3166,17 @@ export declare const publicContractsV1: {
2166
3166
  }, z.core.$strip>;
2167
3167
  };
2168
3168
  setVariable: {
3169
+ readonly annotations: {
3170
+ readonly destructiveHint: true;
3171
+ readonly openWorldHint: false;
3172
+ readonly readOnlyHint: false;
3173
+ };
2169
3174
  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
3175
  readonly input: z.ZodObject<{
2171
3176
  environmentId: PublicIdSchema;
2172
3177
  name: z.ZodString;
2173
3178
  value: z.ZodString;
3179
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2174
3180
  }, z.core.$strip>;
2175
3181
  readonly kind: "write";
2176
3182
  readonly name: "environment.setVariable";
@@ -2179,11 +3185,17 @@ export declare const publicContractsV1: {
2179
3185
  }, z.core.$strip>;
2180
3186
  };
2181
3187
  update: {
3188
+ readonly annotations: {
3189
+ readonly destructiveHint: true;
3190
+ readonly openWorldHint: false;
3191
+ readonly readOnlyHint: false;
3192
+ };
2182
3193
  readonly description: "Update an environment owned by the caller's team and return it in the environment.get shape. Omitted fields remain unchanged.";
2183
3194
  readonly input: z.ZodObject<{
2184
3195
  environmentId: PublicIdSchema;
2185
3196
  name: z.ZodOptional<z.ZodString>;
2186
3197
  runConcurrencyLimit: z.ZodOptional<z.ZodString>;
3198
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2187
3199
  }, z.core.$strip>;
2188
3200
  readonly kind: "write";
2189
3201
  readonly name: "environment.update";
@@ -2206,9 +3218,9 @@ export declare const publicContractsV1: {
2206
3218
  name: z.ZodString;
2207
3219
  runConcurrencyLimit: z.ZodString;
2208
3220
  status: z.ZodEnum<{
2209
- ready: "ready";
2210
3221
  blocked: "blocked";
2211
3222
  "needs-investigation": "needs-investigation";
3223
+ ready: "ready";
2212
3224
  running: "running";
2213
3225
  }>;
2214
3226
  terminatedAt: z.ZodOptional<z.ZodISODateTime>;
@@ -2216,8 +3228,54 @@ export declare const publicContractsV1: {
2216
3228
  }, z.core.$strip>;
2217
3229
  };
2218
3230
  };
3231
+ file: {
3232
+ requestDownload: {
3233
+ readonly annotations: {
3234
+ readonly destructiveHint: false;
3235
+ readonly openWorldHint: false;
3236
+ readonly readOnlyHint: true;
3237
+ };
3238
+ 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.";
3239
+ readonly input: z.ZodObject<{
3240
+ filePath: z.ZodString;
3241
+ workspaceId: z.ZodOptional<PublicIdSchema>;
3242
+ }, z.core.$strip>;
3243
+ readonly kind: "read";
3244
+ readonly name: "file.requestDownload";
3245
+ readonly output: z.ZodObject<{
3246
+ expiresAt: z.ZodISODateTime;
3247
+ path: z.ZodString;
3248
+ readUrl: z.ZodString;
3249
+ }, z.core.$strip>;
3250
+ };
3251
+ requestUpload: {
3252
+ readonly annotations: {
3253
+ readonly destructiveHint: true;
3254
+ readonly openWorldHint: false;
3255
+ readonly readOnlyHint: false;
3256
+ };
3257
+ 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.";
3258
+ readonly input: z.ZodObject<{
3259
+ fileName: z.ZodString;
3260
+ workspaceId: z.ZodOptional<PublicIdSchema>;
3261
+ }, z.core.$strip>;
3262
+ readonly kind: "write";
3263
+ readonly name: "file.requestUpload";
3264
+ readonly output: z.ZodObject<{
3265
+ contentType: z.ZodString;
3266
+ expiresAt: z.ZodISODateTime;
3267
+ path: z.ZodString;
3268
+ uploadUrl: z.ZodString;
3269
+ }, z.core.$strip>;
3270
+ };
3271
+ };
2219
3272
  flow: {
2220
3273
  addTag: {
3274
+ readonly annotations: {
3275
+ readonly destructiveHint: false;
3276
+ readonly openWorldHint: false;
3277
+ readonly readOnlyHint: false;
3278
+ };
2221
3279
  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
3280
  readonly input: z.ZodObject<{
2223
3281
  flowIds: z.ZodArray<PublicIdSchema>;
@@ -2239,15 +3297,31 @@ export declare const publicContractsV1: {
2239
3297
  }, z.core.$strip>;
2240
3298
  };
2241
3299
  list: {
3300
+ readonly annotations: {
3301
+ readonly destructiveHint: false;
3302
+ readonly openWorldHint: false;
3303
+ readonly readOnlyHint: true;
3304
+ };
2242
3305
  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
3306
  readonly input: z.ZodObject<{
2244
3307
  aiTaskId: z.ZodOptional<PublicIdSchema>;
2245
3308
  environmentId: PublicIdSchema;
2246
3309
  includeDrafts: z.ZodDefault<z.ZodBoolean>;
3310
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2247
3311
  }, z.core.$strip>;
2248
3312
  readonly kind: "read";
2249
3313
  readonly name: "flow.list";
2250
3314
  readonly output: z.ZodObject<{
3315
+ emptyReason: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
3316
+ type: z.ZodLiteral<"branch-never-reconciled">;
3317
+ }, z.core.$strip>, z.ZodObject<{
3318
+ type: z.ZodLiteral<"commit-has-no-flow-files">;
3319
+ }, z.core.$strip>, z.ZodObject<{
3320
+ hiddenDraftCount: z.ZodNumber;
3321
+ type: z.ZodLiteral<"every-flow-is-a-draft">;
3322
+ }, z.core.$strip>, z.ZodObject<{
3323
+ type: z.ZodLiteral<"no-flow-matched-the-listing">;
3324
+ }, z.core.$strip>], "type">>;
2251
3325
  flows: z.ZodArray<z.ZodObject<{
2252
3326
  executionTarget: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
2253
3327
  flowId: PublicIdSchema;
@@ -2263,6 +3337,11 @@ export declare const publicContractsV1: {
2263
3337
  }, z.core.$strip>;
2264
3338
  };
2265
3339
  removeTag: {
3340
+ readonly annotations: {
3341
+ readonly destructiveHint: true;
3342
+ readonly openWorldHint: false;
3343
+ readonly readOnlyHint: false;
3344
+ };
2266
3345
  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
3346
  readonly input: z.ZodObject<{
2268
3347
  flowIds: z.ZodArray<PublicIdSchema>;
@@ -2284,6 +3363,11 @@ export declare const publicContractsV1: {
2284
3363
  }, z.core.$strip>;
2285
3364
  };
2286
3365
  update: {
3366
+ readonly annotations: {
3367
+ readonly destructiveHint: true;
3368
+ readonly openWorldHint: false;
3369
+ readonly readOnlyHint: false;
3370
+ };
2287
3371
  readonly description: "Move a flow between draft and active readiness. The other statuses shown in the app are derived and cannot be set.";
2288
3372
  readonly input: z.ZodObject<{
2289
3373
  flowId: PublicIdSchema;
@@ -2309,6 +3393,11 @@ export declare const publicContractsV1: {
2309
3393
  };
2310
3394
  issue: {
2311
3395
  addFlows: {
3396
+ readonly annotations: {
3397
+ readonly destructiveHint: false;
3398
+ readonly openWorldHint: false;
3399
+ readonly readOnlyHint: false;
3400
+ };
2312
3401
  readonly description: string;
2313
3402
  readonly input: z.ZodObject<{
2314
3403
  flowIds: z.ZodArray<PublicIdSchema>;
@@ -2356,6 +3445,11 @@ export declare const publicContractsV1: {
2356
3445
  }, z.core.$strip>;
2357
3446
  };
2358
3447
  create: {
3448
+ readonly annotations: {
3449
+ readonly destructiveHint: true;
3450
+ readonly openWorldHint: true;
3451
+ readonly readOnlyHint: false;
3452
+ };
2359
3453
  readonly description: string;
2360
3454
  readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
2361
3455
  type: z.ZodLiteral<"bug">;
@@ -2425,6 +3519,11 @@ export declare const publicContractsV1: {
2425
3519
  }, z.core.$strip>;
2426
3520
  };
2427
3521
  find: {
3522
+ readonly annotations: {
3523
+ readonly destructiveHint: false;
3524
+ readonly openWorldHint: false;
3525
+ readonly readOnlyHint: true;
3526
+ };
2428
3527
  readonly description: "List the team's bug reports, maintenance reports, or coverage requests, newest first.";
2429
3528
  readonly input: z.ZodObject<{
2430
3529
  statuses: z.ZodDefault<z.ZodArray<z.ZodEnum<{
@@ -2487,6 +3586,11 @@ export declare const publicContractsV1: {
2487
3586
  }, z.core.$strip>;
2488
3587
  };
2489
3588
  get: {
3589
+ readonly annotations: {
3590
+ readonly destructiveHint: false;
3591
+ readonly openWorldHint: false;
3592
+ readonly readOnlyHint: true;
3593
+ };
2490
3594
  readonly description: "Get an issue by id.";
2491
3595
  readonly input: z.ZodObject<{
2492
3596
  issueId: PublicIdSchema;
@@ -2533,6 +3637,11 @@ export declare const publicContractsV1: {
2533
3637
  }, z.core.$strip>;
2534
3638
  };
2535
3639
  removeFlows: {
3640
+ readonly annotations: {
3641
+ readonly destructiveHint: true;
3642
+ readonly openWorldHint: false;
3643
+ readonly readOnlyHint: false;
3644
+ };
2536
3645
  readonly description: string;
2537
3646
  readonly input: z.ZodObject<{
2538
3647
  flowIds: z.ZodArray<PublicIdSchema>;
@@ -2580,6 +3689,11 @@ export declare const publicContractsV1: {
2580
3689
  }, z.core.$strip>;
2581
3690
  };
2582
3691
  update: {
3692
+ readonly annotations: {
3693
+ readonly destructiveHint: true;
3694
+ readonly openWorldHint: true;
3695
+ readonly readOnlyHint: false;
3696
+ };
2583
3697
  readonly description: "Update an issue owned by the caller's team. Omitted fields remain unchanged.";
2584
3698
  readonly input: z.ZodObject<{
2585
3699
  description: z.ZodOptional<z.ZodString>;
@@ -2645,6 +3759,11 @@ export declare const publicContractsV1: {
2645
3759
  };
2646
3760
  run: {
2647
3761
  create: {
3762
+ readonly annotations: {
3763
+ readonly destructiveHint: true;
3764
+ readonly openWorldHint: true;
3765
+ readonly readOnlyHint: false;
3766
+ };
2648
3767
  readonly description: "Create a run for the selected flows and/or tags in an environment.";
2649
3768
  readonly input: z.ZodIntersection<z.ZodObject<{
2650
3769
  aiTaskId: z.ZodOptional<PublicIdSchema>;
@@ -2654,6 +3773,7 @@ export declare const publicContractsV1: {
2654
3773
  ignoreRules: z.ZodDefault<z.ZodBoolean>;
2655
3774
  pullRequestNumber: z.ZodOptional<z.ZodNumber>;
2656
3775
  repository: z.ZodOptional<z.ZodString>;
3776
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2657
3777
  }, z.core.$strip>, z.ZodObject<{
2658
3778
  flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
2659
3779
  tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -2679,6 +3799,11 @@ export declare const publicContractsV1: {
2679
3799
  }, z.core.$strip>;
2680
3800
  };
2681
3801
  diagnose: {
3802
+ readonly annotations: {
3803
+ readonly destructiveHint: true;
3804
+ readonly openWorldHint: true;
3805
+ readonly readOnlyHint: false;
3806
+ };
2682
3807
  readonly description: string;
2683
3808
  readonly input: z.ZodObject<{
2684
3809
  flowIds: z.ZodArray<PublicIdSchema>;
@@ -2727,9 +3852,15 @@ export declare const publicContractsV1: {
2727
3852
  }, z.core.$strip>;
2728
3853
  };
2729
3854
  find: {
3855
+ readonly annotations: {
3856
+ readonly destructiveHint: false;
3857
+ readonly openWorldHint: false;
3858
+ readonly readOnlyHint: true;
3859
+ };
2730
3860
  readonly description: "List an environment's recent runs, newest first.";
2731
3861
  readonly input: z.ZodObject<{
2732
3862
  environmentId: PublicIdSchema;
3863
+ workspaceId: z.ZodOptional<PublicIdSchema>;
2733
3864
  cursor: z.ZodOptional<z.ZodString>;
2734
3865
  limit: z.ZodDefault<z.ZodNumber>;
2735
3866
  createdAfter: z.ZodOptional<z.ZodISODateTime>;
@@ -2760,6 +3891,11 @@ export declare const publicContractsV1: {
2760
3891
  }, z.core.$strip>;
2761
3892
  };
2762
3893
  get: {
3894
+ readonly annotations: {
3895
+ readonly destructiveHint: false;
3896
+ readonly openWorldHint: false;
3897
+ readonly readOnlyHint: true;
3898
+ };
2763
3899
  readonly description: "Get a run's status, per-flow results, and links.";
2764
3900
  readonly input: z.ZodObject<{
2765
3901
  runId: PublicIdSchema;
@@ -2865,6 +4001,11 @@ export declare const publicContractsV1: {
2865
4001
  }, z.core.$strip>;
2866
4002
  };
2867
4003
  reattempt: {
4004
+ readonly annotations: {
4005
+ readonly destructiveHint: true;
4006
+ readonly openWorldHint: true;
4007
+ readonly readOnlyHint: false;
4008
+ };
2868
4009
  readonly description: string;
2869
4010
  readonly input: z.ZodObject<{
2870
4011
  flowIds: z.ZodOptional<z.ZodArray<PublicIdSchema>>;
@@ -2879,7 +4020,12 @@ export declare const publicContractsV1: {
2879
4020
  }, z.core.$strip>;
2880
4021
  };
2881
4022
  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.";
4023
+ readonly annotations: {
4024
+ readonly destructiveHint: true;
4025
+ readonly openWorldHint: true;
4026
+ readonly readOnlyHint: false;
4027
+ };
4028
+ 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
4029
  readonly input: z.ZodObject<{
2884
4030
  runId: PublicIdSchema;
2885
4031
  }, z.core.$strip>;
@@ -2898,6 +4044,11 @@ export declare const publicContractsV1: {
2898
4044
  };
2899
4045
  runner: {
2900
4046
  evaluateSnippet: {
4047
+ readonly annotations: {
4048
+ readonly destructiveHint: true;
4049
+ readonly openWorldHint: true;
4050
+ readonly readOnlyHint: false;
4051
+ };
2901
4052
  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
4053
  readonly input: z.ZodObject<{
2903
4054
  code: z.ZodString;
@@ -2918,27 +4069,42 @@ export declare const publicContractsV1: {
2918
4069
  }>;
2919
4070
  }, z.core.$strip>, z.ZodObject<{
2920
4071
  failureReason: z.ZodEnum<{
2921
- "runner-unreachable": "runner-unreachable";
2922
4072
  "runner-cannot-evaluate-snippets": "runner-cannot-evaluate-snippets";
4073
+ "runner-unreachable": "runner-unreachable";
2923
4074
  }>;
2924
4075
  outcome: z.ZodLiteral<"failure">;
2925
4076
  }, z.core.$strip>], "outcome">;
2926
4077
  };
2927
4078
  get: {
2928
- 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.";
4079
+ readonly annotations: {
4080
+ readonly destructiveHint: false;
4081
+ readonly openWorldHint: false;
4082
+ readonly readOnlyHint: true;
4083
+ };
4084
+ readonly description: "Report whether a runner is running under this id on the caller's team. This is a lookup: it never starts a runner, and it does not reset a runner's inactivity clock the way reading its journal does. An id that is not running is a success with `running: false` rather than an error, so this is how to check a runner is still there before addressing it. A running runner also reports the `url` to watch it on, so an id alone is enough to recover the link to give the user.";
2929
4085
  readonly input: z.ZodObject<{
2930
4086
  id: z.ZodString;
2931
4087
  workspaceId: z.ZodOptional<PublicIdSchema>;
2932
4088
  }, z.core.$strip>;
2933
4089
  readonly kind: "read";
2934
4090
  readonly name: "runner.get";
2935
- readonly output: z.ZodObject<{
4091
+ readonly output: z.ZodDiscriminatedUnion<[z.ZodObject<{
2936
4092
  id: z.ZodString;
2937
4093
  outcome: z.ZodLiteral<"success">;
2938
- running: z.ZodBoolean;
2939
- }, z.core.$strip>;
4094
+ running: z.ZodLiteral<false>;
4095
+ }, z.core.$strip>, z.ZodObject<{
4096
+ id: z.ZodString;
4097
+ outcome: z.ZodLiteral<"success">;
4098
+ running: z.ZodLiteral<true>;
4099
+ url: z.ZodURL;
4100
+ }, z.core.$strip>], "running">;
2940
4101
  };
2941
4102
  highlightSelector: {
4103
+ readonly annotations: {
4104
+ readonly destructiveHint: false;
4105
+ readonly openWorldHint: false;
4106
+ readonly readOnlyHint: false;
4107
+ };
2942
4108
  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
4109
  readonly input: z.ZodObject<{
2944
4110
  id: z.ZodString;
@@ -2966,6 +4132,11 @@ export declare const publicContractsV1: {
2966
4132
  }, z.core.$strip>], "outcome">;
2967
4133
  };
2968
4134
  importPackage: {
4135
+ readonly annotations: {
4136
+ readonly destructiveHint: true;
4137
+ readonly openWorldHint: true;
4138
+ readonly readOnlyHint: false;
4139
+ };
2969
4140
  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
4141
  readonly input: z.ZodObject<{
2971
4142
  id: z.ZodString;
@@ -2988,6 +4159,11 @@ export declare const publicContractsV1: {
2988
4159
  }, z.core.$strip>], "outcome">;
2989
4160
  };
2990
4161
  inspect: {
4162
+ readonly annotations: {
4163
+ readonly destructiveHint: false;
4164
+ readonly openWorldHint: false;
4165
+ readonly readOnlyHint: false;
4166
+ };
2991
4167
  readonly description: string;
2992
4168
  readonly input: z.ZodObject<{
2993
4169
  id: z.ZodString;
@@ -3019,7 +4195,12 @@ export declare const publicContractsV1: {
3019
4195
  }, z.core.$strip>], "outcome">;
3020
4196
  };
3021
4197
  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.";
4198
+ readonly annotations: {
4199
+ readonly destructiveHint: false;
4200
+ readonly openWorldHint: false;
4201
+ readonly readOnlyHint: true;
4202
+ };
4203
+ 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
4204
  readonly input: z.ZodObject<{
3024
4205
  id: z.ZodString;
3025
4206
  request: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -3041,6 +4222,16 @@ export declare const publicContractsV1: {
3041
4222
  partial: z.ZodOptional<z.ZodBoolean>;
3042
4223
  text: z.ZodString;
3043
4224
  what: z.ZodLiteral<"elements">;
4225
+ }, z.core.$strip>, z.ZodObject<{
4226
+ by: z.ZodLiteral<"selector">;
4227
+ context: z.ZodOptional<z.ZodString>;
4228
+ selector: z.ZodString;
4229
+ strategy: z.ZodDefault<z.ZodEnum<{
4230
+ "ios-predicate": "ios-predicate";
4231
+ shadow: "shadow";
4232
+ xpath: "xpath";
4233
+ }>>;
4234
+ what: z.ZodLiteral<"elements">;
3044
4235
  }, z.core.$strip>], "by">], "what">;
3045
4236
  workspaceId: z.ZodOptional<PublicIdSchema>;
3046
4237
  }, z.core.$strip>;
@@ -3215,6 +4406,7 @@ export declare const publicContractsV1: {
3215
4406
  }, z.core.$strip>], "what">, z.ZodObject<{
3216
4407
  failureReason: z.ZodEnum<{
3217
4408
  "runner-unreachable": "runner-unreachable";
4409
+ "invalid-selector": "invalid-selector";
3218
4410
  "runner-is-not-mobile": "runner-is-not-mobile";
3219
4411
  "screen-needs-a-run": "screen-needs-a-run";
3220
4412
  "screen-not-ready": "screen-not-ready";
@@ -3223,7 +4415,12 @@ export declare const publicContractsV1: {
3223
4415
  }, z.core.$strip>], "outcome">;
3224
4416
  };
3225
4417
  launch: {
3226
- 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.";
4418
+ readonly annotations: {
4419
+ readonly destructiveHint: true;
4420
+ readonly openWorldHint: false;
4421
+ readonly readOnlyHint: false;
4422
+ };
4423
+ 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. After a successful launch, make the next action a normal user-visible assistant message containing the exact returned `url`, before the first browser action. Tool output and internal reasoning do not count as sharing the link. When `alreadyRunning` is true the `url` is the same page, so share it again instead of assuming the caller still has it.";
3227
4424
  readonly input: z.ZodObject<{
3228
4425
  id: z.ZodString;
3229
4426
  runnerName: z.ZodOptional<z.ZodEnum<{
@@ -3245,11 +4442,17 @@ export declare const publicContractsV1: {
3245
4442
  android: "android";
3246
4443
  ios: "ios";
3247
4444
  }>;
4445
+ url: z.ZodURL;
3248
4446
  alreadyRunning: z.ZodBoolean;
3249
4447
  outcome: z.ZodLiteral<"success">;
3250
4448
  }, z.core.$strip>;
3251
4449
  };
3252
4450
  list: {
4451
+ readonly annotations: {
4452
+ readonly destructiveHint: false;
4453
+ readonly openWorldHint: false;
4454
+ readonly readOnlyHint: true;
4455
+ };
3253
4456
  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
4457
  readonly input: z.ZodObject<{
3255
4458
  workspaceId: z.ZodOptional<PublicIdSchema>;
@@ -3267,10 +4470,16 @@ export declare const publicContractsV1: {
3267
4470
  android: "android";
3268
4471
  ios: "ios";
3269
4472
  }>;
4473
+ url: z.ZodURL;
3270
4474
  }, z.core.$strip>>;
3271
4475
  }, z.core.$strip>;
3272
4476
  };
3273
4477
  performAction: {
4478
+ readonly annotations: {
4479
+ readonly destructiveHint: true;
4480
+ readonly openWorldHint: true;
4481
+ readonly readOnlyHint: false;
4482
+ };
3274
4483
  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
4484
  readonly input: z.ZodObject<{
3276
4485
  action: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -3334,6 +4543,11 @@ export declare const publicContractsV1: {
3334
4543
  }, z.core.$strip>], "failureReason">], "outcome">;
3335
4544
  };
3336
4545
  promoteSnapshot: {
4546
+ readonly annotations: {
4547
+ readonly destructiveHint: true;
4548
+ readonly openWorldHint: false;
4549
+ readonly readOnlyHint: false;
4550
+ };
3337
4551
  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
4552
  readonly input: z.ZodObject<{
3339
4553
  baselinePath: z.ZodString;
@@ -3355,6 +4569,11 @@ export declare const publicContractsV1: {
3355
4569
  }, z.core.$strip>], "outcome">;
3356
4570
  };
3357
4571
  readJournal: {
4572
+ readonly annotations: {
4573
+ readonly destructiveHint: false;
4574
+ readonly openWorldHint: false;
4575
+ readonly readOnlyHint: false;
4576
+ };
3358
4577
  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
4578
  readonly input: z.ZodObject<{
3360
4579
  runId: z.ZodOptional<z.ZodString>;
@@ -3371,7 +4590,7 @@ export declare const publicContractsV1: {
3371
4590
  payload: z.ZodUnknown;
3372
4591
  recordedAt: z.ZodISODateTime;
3373
4592
  sequence: z.ZodNumber;
3374
- }, z.core.$strip>, z.ZodTransform<import("./runnerReexports.js").JournalEntry<unknown>, {
4593
+ }, z.core.$strip>, z.ZodTransform<import("./sharedSchemas.js").JournalEntry<unknown>, {
3375
4594
  payload: unknown;
3376
4595
  recordedAt: string;
3377
4596
  sequence: number;
@@ -3388,6 +4607,11 @@ export declare const publicContractsV1: {
3388
4607
  }, z.core.$strip>], "outcome">;
3389
4608
  };
3390
4609
  runFlow: {
4610
+ readonly annotations: {
4611
+ readonly destructiveHint: true;
4612
+ readonly openWorldHint: true;
4613
+ readonly readOnlyHint: false;
4614
+ };
3391
4615
  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
4616
  readonly input: z.ZodObject<{
3393
4617
  entryPointPath: z.ZodString;
@@ -3434,6 +4658,11 @@ export declare const publicContractsV1: {
3434
4658
  }, z.core.$strip>], "failureReason">], "outcome">;
3435
4659
  };
3436
4660
  stopRun: {
4661
+ readonly annotations: {
4662
+ readonly destructiveHint: true;
4663
+ readonly openWorldHint: false;
4664
+ readonly readOnlyHint: false;
4665
+ };
3437
4666
  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
4667
  readonly input: z.ZodObject<{
3439
4668
  id: z.ZodString;
@@ -3452,7 +4681,12 @@ export declare const publicContractsV1: {
3452
4681
  }, z.core.$strip>], "outcome">;
3453
4682
  };
3454
4683
  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.";
4684
+ readonly annotations: {
4685
+ readonly destructiveHint: false;
4686
+ readonly openWorldHint: false;
4687
+ readonly readOnlyHint: false;
4688
+ };
4689
+ 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
4690
  readonly input: z.ZodObject<{
3457
4691
  id: z.ZodString;
3458
4692
  workspaceId: z.ZodOptional<PublicIdSchema>;
@@ -3473,6 +4707,11 @@ export declare const publicContractsV1: {
3473
4707
  }, z.core.$strip>], "outcome">;
3474
4708
  };
3475
4709
  terminate: {
4710
+ readonly annotations: {
4711
+ readonly destructiveHint: true;
4712
+ readonly openWorldHint: false;
4713
+ readonly readOnlyHint: false;
4714
+ };
3476
4715
  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
4716
  readonly input: z.ZodObject<{
3478
4717
  id: z.ZodString;
@@ -3489,6 +4728,11 @@ export declare const publicContractsV1: {
3489
4728
  };
3490
4729
  tag: {
3491
4730
  create: {
4731
+ readonly annotations: {
4732
+ readonly destructiveHint: false;
4733
+ readonly openWorldHint: false;
4734
+ readonly readOnlyHint: false;
4735
+ };
3492
4736
  readonly description: "Create a tag on the caller's team. Tags select flows in run.create.";
3493
4737
  readonly input: z.ZodObject<{
3494
4738
  name: z.ZodString;
@@ -3503,6 +4747,11 @@ export declare const publicContractsV1: {
3503
4747
  }, z.core.$strip>;
3504
4748
  };
3505
4749
  list: {
4750
+ readonly annotations: {
4751
+ readonly destructiveHint: false;
4752
+ readonly openWorldHint: false;
4753
+ readonly readOnlyHint: true;
4754
+ };
3506
4755
  readonly description: "List the team's tags, alphabetical by name. Tag names select flows in run.create.";
3507
4756
  readonly input: z.ZodObject<{
3508
4757
  cursor: z.ZodOptional<z.ZodString>;
@@ -3524,5 +4773,496 @@ export declare const publicContractsV1: {
3524
4773
  }, z.core.$strip>;
3525
4774
  };
3526
4775
  };
4776
+ trigger: {
4777
+ create: {
4778
+ readonly annotations: {
4779
+ readonly destructiveHint: true;
4780
+ readonly openWorldHint: true;
4781
+ readonly readOnlyHint: false;
4782
+ };
4783
+ readonly description: string;
4784
+ readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
4785
+ kind: z.ZodLiteral<"schedule">;
4786
+ action: z.ZodObject<{
4787
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4788
+ instructions: z.ZodOptional<z.ZodString>;
4789
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4790
+ kind: z.ZodDefault<z.ZodEnum<{
4791
+ createSuite: "createSuite";
4792
+ generativeSuite: "generativeSuite";
4793
+ }>>;
4794
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4795
+ }, z.core.$strip>;
4796
+ cadence: z.ZodEnum<{
4797
+ hourly: "hourly";
4798
+ daily: "daily";
4799
+ }>;
4800
+ environmentId: PublicIdSchema;
4801
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
4802
+ timeOfDay: z.ZodOptional<z.ZodString>;
4803
+ timezoneId: z.ZodOptional<z.ZodString>;
4804
+ name: z.ZodString;
4805
+ workspaceId: z.ZodOptional<PublicIdSchema>;
4806
+ }, z.core.$strip>, z.ZodObject<{
4807
+ kind: z.ZodLiteral<"deployment">;
4808
+ action: z.ZodObject<{
4809
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4810
+ instructions: z.ZodOptional<z.ZodString>;
4811
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4812
+ kind: z.ZodDefault<z.ZodEnum<{
4813
+ createSuite: "createSuite";
4814
+ generativeSuite: "generativeSuite";
4815
+ }>>;
4816
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4817
+ }, z.core.$strip>;
4818
+ branchPattern: z.ZodOptional<z.ZodString>;
4819
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
4820
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4821
+ environmentPattern: z.ZodOptional<z.ZodString>;
4822
+ name: z.ZodString;
4823
+ workspaceId: z.ZodOptional<PublicIdSchema>;
4824
+ }, z.core.$strip>], "kind">;
4825
+ readonly kind: "write";
4826
+ readonly name: "trigger.create";
4827
+ readonly output: z.ZodObject<{
4828
+ trigger: z.ZodObject<{
4829
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
4830
+ kind: z.ZodLiteral<"schedule">;
4831
+ action: z.ZodObject<{
4832
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4833
+ instructions: z.ZodOptional<z.ZodString>;
4834
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4835
+ kind: z.ZodDefault<z.ZodEnum<{
4836
+ createSuite: "createSuite";
4837
+ generativeSuite: "generativeSuite";
4838
+ }>>;
4839
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4840
+ }, z.core.$strip>;
4841
+ cadence: z.ZodEnum<{
4842
+ hourly: "hourly";
4843
+ daily: "daily";
4844
+ }>;
4845
+ environmentId: PublicIdSchema;
4846
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
4847
+ timeOfDay: z.ZodOptional<z.ZodString>;
4848
+ timezoneId: z.ZodOptional<z.ZodString>;
4849
+ }, z.core.$strip>, z.ZodObject<{
4850
+ kind: z.ZodLiteral<"deployment">;
4851
+ action: z.ZodObject<{
4852
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4853
+ instructions: z.ZodOptional<z.ZodString>;
4854
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4855
+ kind: z.ZodDefault<z.ZodEnum<{
4856
+ createSuite: "createSuite";
4857
+ generativeSuite: "generativeSuite";
4858
+ }>>;
4859
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4860
+ }, z.core.$strip>;
4861
+ branchPattern: z.ZodOptional<z.ZodString>;
4862
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
4863
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4864
+ environmentPattern: z.ZodOptional<z.ZodString>;
4865
+ }, z.core.$strip>, z.ZodObject<{
4866
+ actionCount: z.ZodNumber;
4867
+ kind: z.ZodLiteral<"advanced">;
4868
+ whenCount: z.ZodNumber;
4869
+ }, z.core.$strip>], "kind">;
4870
+ createdAt: z.ZodISODateTime;
4871
+ id: PublicIdSchema;
4872
+ isPaused: z.ZodBoolean;
4873
+ name: z.ZodString;
4874
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
4875
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
4876
+ updatedAt: z.ZodISODateTime;
4877
+ url: z.ZodURL;
4878
+ }, z.core.$strip>;
4879
+ }, z.core.$strip>;
4880
+ };
4881
+ delete: {
4882
+ readonly annotations: {
4883
+ readonly destructiveHint: true;
4884
+ readonly openWorldHint: false;
4885
+ readonly readOnlyHint: false;
4886
+ };
4887
+ readonly description: string;
4888
+ readonly input: z.ZodObject<{
4889
+ triggerId: PublicIdSchema;
4890
+ }, z.core.$strip>;
4891
+ readonly kind: "write";
4892
+ readonly name: "trigger.delete";
4893
+ readonly output: z.ZodObject<{
4894
+ triggerId: PublicIdSchema;
4895
+ }, z.core.$strip>;
4896
+ };
4897
+ find: {
4898
+ readonly annotations: {
4899
+ readonly destructiveHint: false;
4900
+ readonly openWorldHint: false;
4901
+ readonly readOnlyHint: true;
4902
+ };
4903
+ readonly description: "List the team's triggers, newest first.";
4904
+ readonly input: z.ZodObject<{
4905
+ isPaused: z.ZodOptional<z.ZodBoolean>;
4906
+ workspaceId: z.ZodOptional<PublicIdSchema>;
4907
+ }, z.core.$strip>;
4908
+ readonly kind: "read";
4909
+ readonly name: "trigger.find";
4910
+ readonly output: z.ZodObject<{
4911
+ triggers: z.ZodArray<z.ZodObject<{
4912
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
4913
+ kind: z.ZodLiteral<"schedule">;
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
+ cadence: z.ZodEnum<{
4925
+ hourly: "hourly";
4926
+ daily: "daily";
4927
+ }>;
4928
+ environmentId: PublicIdSchema;
4929
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
4930
+ timeOfDay: z.ZodOptional<z.ZodString>;
4931
+ timezoneId: z.ZodOptional<z.ZodString>;
4932
+ }, z.core.$strip>, z.ZodObject<{
4933
+ kind: z.ZodLiteral<"deployment">;
4934
+ action: z.ZodObject<{
4935
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4936
+ instructions: z.ZodOptional<z.ZodString>;
4937
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
4938
+ kind: z.ZodDefault<z.ZodEnum<{
4939
+ createSuite: "createSuite";
4940
+ generativeSuite: "generativeSuite";
4941
+ }>>;
4942
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
4943
+ }, z.core.$strip>;
4944
+ branchPattern: z.ZodOptional<z.ZodString>;
4945
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
4946
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
4947
+ environmentPattern: z.ZodOptional<z.ZodString>;
4948
+ }, z.core.$strip>, z.ZodObject<{
4949
+ actionCount: z.ZodNumber;
4950
+ kind: z.ZodLiteral<"advanced">;
4951
+ whenCount: z.ZodNumber;
4952
+ }, z.core.$strip>], "kind">;
4953
+ createdAt: z.ZodISODateTime;
4954
+ id: PublicIdSchema;
4955
+ isPaused: z.ZodBoolean;
4956
+ name: z.ZodString;
4957
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
4958
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
4959
+ updatedAt: z.ZodISODateTime;
4960
+ url: z.ZodURL;
4961
+ }, z.core.$strip>>;
4962
+ }, z.core.$strip>;
4963
+ };
4964
+ get: {
4965
+ readonly annotations: {
4966
+ readonly destructiveHint: false;
4967
+ readonly openWorldHint: false;
4968
+ readonly readOnlyHint: true;
4969
+ };
4970
+ readonly description: "Get one trigger by id.";
4971
+ readonly input: z.ZodObject<{
4972
+ triggerId: PublicIdSchema;
4973
+ }, z.core.$strip>;
4974
+ readonly kind: "read";
4975
+ readonly name: "trigger.get";
4976
+ readonly output: z.ZodObject<{
4977
+ trigger: z.ZodObject<{
4978
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
4979
+ kind: z.ZodLiteral<"schedule">;
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
+ cadence: z.ZodEnum<{
4991
+ hourly: "hourly";
4992
+ daily: "daily";
4993
+ }>;
4994
+ environmentId: PublicIdSchema;
4995
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
4996
+ timeOfDay: z.ZodOptional<z.ZodString>;
4997
+ timezoneId: z.ZodOptional<z.ZodString>;
4998
+ }, z.core.$strip>, z.ZodObject<{
4999
+ kind: z.ZodLiteral<"deployment">;
5000
+ action: z.ZodObject<{
5001
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5002
+ instructions: z.ZodOptional<z.ZodString>;
5003
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5004
+ kind: z.ZodDefault<z.ZodEnum<{
5005
+ createSuite: "createSuite";
5006
+ generativeSuite: "generativeSuite";
5007
+ }>>;
5008
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5009
+ }, z.core.$strip>;
5010
+ branchPattern: z.ZodOptional<z.ZodString>;
5011
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
5012
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5013
+ environmentPattern: z.ZodOptional<z.ZodString>;
5014
+ }, z.core.$strip>, z.ZodObject<{
5015
+ actionCount: z.ZodNumber;
5016
+ kind: z.ZodLiteral<"advanced">;
5017
+ whenCount: z.ZodNumber;
5018
+ }, z.core.$strip>], "kind">;
5019
+ createdAt: z.ZodISODateTime;
5020
+ id: PublicIdSchema;
5021
+ isPaused: z.ZodBoolean;
5022
+ name: z.ZodString;
5023
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
5024
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
5025
+ updatedAt: z.ZodISODateTime;
5026
+ url: z.ZodURL;
5027
+ }, z.core.$strip>;
5028
+ }, z.core.$strip>;
5029
+ };
5030
+ pause: {
5031
+ readonly annotations: {
5032
+ readonly destructiveHint: true;
5033
+ readonly openWorldHint: false;
5034
+ readonly readOnlyHint: false;
5035
+ };
5036
+ readonly description: string;
5037
+ readonly input: z.ZodObject<{
5038
+ triggerId: PublicIdSchema;
5039
+ }, z.core.$strip>;
5040
+ readonly kind: "write";
5041
+ readonly name: "trigger.pause";
5042
+ readonly output: z.ZodObject<{
5043
+ trigger: z.ZodObject<{
5044
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
5045
+ kind: z.ZodLiteral<"schedule">;
5046
+ action: z.ZodObject<{
5047
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5048
+ instructions: z.ZodOptional<z.ZodString>;
5049
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5050
+ kind: z.ZodDefault<z.ZodEnum<{
5051
+ createSuite: "createSuite";
5052
+ generativeSuite: "generativeSuite";
5053
+ }>>;
5054
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5055
+ }, z.core.$strip>;
5056
+ cadence: z.ZodEnum<{
5057
+ hourly: "hourly";
5058
+ daily: "daily";
5059
+ }>;
5060
+ environmentId: PublicIdSchema;
5061
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
5062
+ timeOfDay: z.ZodOptional<z.ZodString>;
5063
+ timezoneId: z.ZodOptional<z.ZodString>;
5064
+ }, z.core.$strip>, z.ZodObject<{
5065
+ kind: z.ZodLiteral<"deployment">;
5066
+ action: z.ZodObject<{
5067
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5068
+ instructions: z.ZodOptional<z.ZodString>;
5069
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5070
+ kind: z.ZodDefault<z.ZodEnum<{
5071
+ createSuite: "createSuite";
5072
+ generativeSuite: "generativeSuite";
5073
+ }>>;
5074
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5075
+ }, z.core.$strip>;
5076
+ branchPattern: z.ZodOptional<z.ZodString>;
5077
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
5078
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5079
+ environmentPattern: z.ZodOptional<z.ZodString>;
5080
+ }, z.core.$strip>, z.ZodObject<{
5081
+ actionCount: z.ZodNumber;
5082
+ kind: z.ZodLiteral<"advanced">;
5083
+ whenCount: z.ZodNumber;
5084
+ }, z.core.$strip>], "kind">;
5085
+ createdAt: z.ZodISODateTime;
5086
+ id: PublicIdSchema;
5087
+ isPaused: z.ZodBoolean;
5088
+ name: z.ZodString;
5089
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
5090
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
5091
+ updatedAt: z.ZodISODateTime;
5092
+ url: z.ZodURL;
5093
+ }, z.core.$strip>;
5094
+ }, z.core.$strip>;
5095
+ };
5096
+ resume: {
5097
+ readonly annotations: {
5098
+ readonly destructiveHint: true;
5099
+ readonly openWorldHint: true;
5100
+ readonly readOnlyHint: false;
5101
+ };
5102
+ readonly description: string;
5103
+ readonly input: z.ZodObject<{
5104
+ triggerId: PublicIdSchema;
5105
+ }, z.core.$strip>;
5106
+ readonly kind: "write";
5107
+ readonly name: "trigger.resume";
5108
+ readonly output: z.ZodObject<{
5109
+ trigger: z.ZodObject<{
5110
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
5111
+ kind: z.ZodLiteral<"schedule">;
5112
+ action: z.ZodObject<{
5113
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5114
+ instructions: z.ZodOptional<z.ZodString>;
5115
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5116
+ kind: z.ZodDefault<z.ZodEnum<{
5117
+ createSuite: "createSuite";
5118
+ generativeSuite: "generativeSuite";
5119
+ }>>;
5120
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5121
+ }, z.core.$strip>;
5122
+ cadence: z.ZodEnum<{
5123
+ hourly: "hourly";
5124
+ daily: "daily";
5125
+ }>;
5126
+ environmentId: PublicIdSchema;
5127
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
5128
+ timeOfDay: z.ZodOptional<z.ZodString>;
5129
+ timezoneId: z.ZodOptional<z.ZodString>;
5130
+ }, z.core.$strip>, z.ZodObject<{
5131
+ kind: z.ZodLiteral<"deployment">;
5132
+ action: z.ZodObject<{
5133
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5134
+ instructions: z.ZodOptional<z.ZodString>;
5135
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5136
+ kind: z.ZodDefault<z.ZodEnum<{
5137
+ createSuite: "createSuite";
5138
+ generativeSuite: "generativeSuite";
5139
+ }>>;
5140
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5141
+ }, z.core.$strip>;
5142
+ branchPattern: z.ZodOptional<z.ZodString>;
5143
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
5144
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5145
+ environmentPattern: z.ZodOptional<z.ZodString>;
5146
+ }, z.core.$strip>, z.ZodObject<{
5147
+ actionCount: z.ZodNumber;
5148
+ kind: z.ZodLiteral<"advanced">;
5149
+ whenCount: z.ZodNumber;
5150
+ }, z.core.$strip>], "kind">;
5151
+ createdAt: z.ZodISODateTime;
5152
+ id: PublicIdSchema;
5153
+ isPaused: z.ZodBoolean;
5154
+ name: z.ZodString;
5155
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
5156
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
5157
+ updatedAt: z.ZodISODateTime;
5158
+ url: z.ZodURL;
5159
+ }, z.core.$strip>;
5160
+ }, z.core.$strip>;
5161
+ };
5162
+ update: {
5163
+ readonly annotations: {
5164
+ readonly destructiveHint: true;
5165
+ readonly openWorldHint: true;
5166
+ readonly readOnlyHint: false;
5167
+ };
5168
+ readonly description: string;
5169
+ readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
5170
+ kind: z.ZodLiteral<"schedule">;
5171
+ action: z.ZodObject<{
5172
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5173
+ instructions: z.ZodOptional<z.ZodString>;
5174
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5175
+ kind: z.ZodDefault<z.ZodEnum<{
5176
+ createSuite: "createSuite";
5177
+ generativeSuite: "generativeSuite";
5178
+ }>>;
5179
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5180
+ }, z.core.$strip>;
5181
+ cadence: z.ZodEnum<{
5182
+ hourly: "hourly";
5183
+ daily: "daily";
5184
+ }>;
5185
+ environmentId: PublicIdSchema;
5186
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
5187
+ timeOfDay: z.ZodOptional<z.ZodString>;
5188
+ timezoneId: z.ZodOptional<z.ZodString>;
5189
+ name: z.ZodString;
5190
+ triggerId: PublicIdSchema;
5191
+ }, z.core.$strip>, z.ZodObject<{
5192
+ kind: z.ZodLiteral<"deployment">;
5193
+ action: z.ZodObject<{
5194
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5195
+ instructions: z.ZodOptional<z.ZodString>;
5196
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5197
+ kind: z.ZodDefault<z.ZodEnum<{
5198
+ createSuite: "createSuite";
5199
+ generativeSuite: "generativeSuite";
5200
+ }>>;
5201
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5202
+ }, z.core.$strip>;
5203
+ branchPattern: z.ZodOptional<z.ZodString>;
5204
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
5205
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5206
+ environmentPattern: z.ZodOptional<z.ZodString>;
5207
+ name: z.ZodString;
5208
+ triggerId: PublicIdSchema;
5209
+ }, z.core.$strip>], "kind">;
5210
+ readonly kind: "write";
5211
+ readonly name: "trigger.update";
5212
+ readonly output: z.ZodObject<{
5213
+ trigger: z.ZodObject<{
5214
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
5215
+ kind: z.ZodLiteral<"schedule">;
5216
+ action: z.ZodObject<{
5217
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5218
+ instructions: z.ZodOptional<z.ZodString>;
5219
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5220
+ kind: z.ZodDefault<z.ZodEnum<{
5221
+ createSuite: "createSuite";
5222
+ generativeSuite: "generativeSuite";
5223
+ }>>;
5224
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5225
+ }, z.core.$strip>;
5226
+ cadence: z.ZodEnum<{
5227
+ hourly: "hourly";
5228
+ daily: "daily";
5229
+ }>;
5230
+ environmentId: PublicIdSchema;
5231
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
5232
+ timeOfDay: z.ZodOptional<z.ZodString>;
5233
+ timezoneId: z.ZodOptional<z.ZodString>;
5234
+ }, z.core.$strip>, z.ZodObject<{
5235
+ kind: z.ZodLiteral<"deployment">;
5236
+ action: z.ZodObject<{
5237
+ flowIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5238
+ instructions: z.ZodOptional<z.ZodString>;
5239
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
5240
+ kind: z.ZodDefault<z.ZodEnum<{
5241
+ createSuite: "createSuite";
5242
+ generativeSuite: "generativeSuite";
5243
+ }>>;
5244
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
5245
+ }, z.core.$strip>;
5246
+ branchPattern: z.ZodOptional<z.ZodString>;
5247
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
5248
+ environmentIds: z.ZodDefault<z.ZodArray<PublicIdSchema>>;
5249
+ environmentPattern: z.ZodOptional<z.ZodString>;
5250
+ }, z.core.$strip>, z.ZodObject<{
5251
+ actionCount: z.ZodNumber;
5252
+ kind: z.ZodLiteral<"advanced">;
5253
+ whenCount: z.ZodNumber;
5254
+ }, z.core.$strip>], "kind">;
5255
+ createdAt: z.ZodISODateTime;
5256
+ id: PublicIdSchema;
5257
+ isPaused: z.ZodBoolean;
5258
+ name: z.ZodString;
5259
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
5260
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
5261
+ updatedAt: z.ZodISODateTime;
5262
+ url: z.ZodURL;
5263
+ }, z.core.$strip>;
5264
+ }, z.core.$strip>;
5265
+ };
5266
+ };
3527
5267
  };
3528
5268
  //# sourceMappingURL=index.d.ts.map