@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
@@ -34,6 +34,11 @@ export const makeCreateTagContract = (ids) => {
34
34
  });
35
35
  const output = makeTagResourceSchema();
36
36
  return {
37
+ annotations: {
38
+ destructiveHint: false,
39
+ openWorldHint: false,
40
+ readOnlyHint: false,
41
+ },
37
42
  description: "Create a tag on the caller's team. Tags select flows in run.create.",
38
43
  input,
39
44
  kind: "write",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v1/tag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,yEAAyE;AACzE,sDAAsD;AACtD;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CACxC,QAAQ,CACN;IACE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;QACT,qEAAqE;QACrE,gEAAgE;SAC/D,KAAK,CAAC,mBAAmB,CAAC;SAC1B,QAAQ,CACP,6DAA6D,CAC9D;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,EACD;IACE,oEAAoE;IACpE,mBAAmB,EAAE,+CAA+C;CACrE,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAqC,GAEzE,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC;YACP,oEAAoE;YACpE,gDAAgD;aAC/C,GAAG,CAAC,GAAG,CAAC;aACR,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC7B,kCAAkC,CACnC;QACH,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,wGAAwG,CACzG;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;IAEvC,OAAO;QACL,WAAW,EACT,qEAAqE;QACvE,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;QAClB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v1/tag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,yEAAyE;AACzE,sDAAsD;AACtD;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CACxC,QAAQ,CACN;IACE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;QACT,qEAAqE;QACrE,gEAAgE;SAC/D,KAAK,CAAC,mBAAmB,CAAC;SAC1B,QAAQ,CACP,6DAA6D,CAC9D;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,EACD;IACE,oEAAoE;IACpE,mBAAmB,EAAE,+CAA+C;CACrE,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAqC,GAEzE,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC;YACP,oEAAoE;YACpE,gDAAgD;aAC/C,GAAG,CAAC,GAAG,CAAC;aACR,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC7B,kCAAkC,CACnC;QACH,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,wGAAwG,CACzG;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;IAEvC,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EACT,qEAAqE;QACvE,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;QAClB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
@@ -4,6 +4,11 @@ export declare const makeListTagsContract: <FlowId extends PublicIdSchema, Works
4
4
  flow: FlowId;
5
5
  workspace: WorkspaceId;
6
6
  }) => {
7
+ readonly annotations: {
8
+ readonly destructiveHint: false;
9
+ readonly openWorldHint: false;
10
+ readonly readOnlyHint: true;
11
+ };
7
12
  readonly description: "List the team's tags, alphabetical by name. Tag names select flows in run.create.";
8
13
  readonly input: z.ZodObject<{
9
14
  cursor: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/v1/tag/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,eAAO,MAAM,oBAAoB,GAC/B,MAAM,SAAS,cAAc,EAC7B,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;CAkDA,CAAC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/v1/tag/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,eAAO,MAAM,oBAAoB,GAC/B,MAAM,SAAS,cAAc,EAC7B,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;CAuDA,CAAC"}
@@ -30,6 +30,11 @@ export const makeListTagsContract = (ids) => {
30
30
  .describe("The team's tags, alphabetical by name."),
31
31
  });
32
32
  return {
33
+ annotations: {
34
+ destructiveHint: false,
35
+ openWorldHint: false,
36
+ readOnlyHint: true,
37
+ },
33
38
  description: "List the team's tags, alphabetical by name. Tag names select flows in run.create.",
34
39
  input,
35
40
  kind: "read",
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/v1/tag/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAGlC,GAGD,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,uDAAuD,CAAC;QACpE,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,qFAAqF,CACtF;QACH,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,qGAAqG,CACtG;QACH,GAAG,yBAAyB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;KAClE,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,UAAU,EAAE,gBAAgB;QAC5B,IAAI,EAAE,CAAC;aACJ,KAAK,CACJ,qBAAqB,EAAE,CAAC,MAAM,CAAC;YAC7B,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;iBACf,QAAQ,EAAE;iBACV,QAAQ,CACP,+EAA+E,CAChF;SACJ,CAAC,CACH;aACA,QAAQ,CAAC,wCAAwC,CAAC;KACtD,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EACT,mFAAmF;QACrF,KAAK;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,UAAU;QAChB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/v1/tag/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAGlC,GAGD,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,uDAAuD,CAAC;QACpE,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,qFAAqF,CACtF;QACH,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,qGAAqG,CACtG;QACH,GAAG,yBAAyB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;KAClE,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,UAAU,EAAE,gBAAgB;QAC5B,IAAI,EAAE,CAAC;aACJ,KAAK,CACJ,qBAAqB,EAAE,CAAC,MAAM,CAAC;YAC7B,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;iBACf,QAAQ,EAAE;iBACV,QAAQ,CACP,+EAA+E,CAChF;SACJ,CAAC,CACH;aACA,QAAQ,CAAC,wCAAwC,CAAC;KACtD,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,IAAI;SACnB;QACD,WAAW,EACT,mFAAmF;QACrF,KAAK;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,UAAU;QAChB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { z } from "zod";
2
+ import type { PublicIdSchema } from "../ids.js";
3
+ /**
4
+ * A trigger is "run this, when that". `action` carries the this, and the
5
+ * match fields carry the that.
6
+ *
7
+ * The domain stores both in a versioned `when`/`actions` envelope holding
8
+ * arrays of objects. The public shape carries one match and one action as
9
+ * scalars instead, because the QA Wolf CLI derives one flag per leaf field
10
+ * and cannot express an array of objects. Nesting is fine: `action.flowIds`
11
+ * becomes `--action-flow-ids`.
12
+ *
13
+ * The same fields appear in inputs and in the trigger resource, so a caller
14
+ * can read a trigger, change one field, and write it back.
15
+ */
16
+ export declare const triggerCadenceSchema: z.ZodEnum<{
17
+ hourly: "hourly";
18
+ daily: "daily";
19
+ }>;
20
+ export declare const triggerActionKindSchema: z.ZodEnum<{
21
+ createSuite: "createSuite";
22
+ generativeSuite: "generativeSuite";
23
+ }>;
24
+ /**
25
+ * What the trigger runs when it fires.
26
+ *
27
+ * One schema, shared verbatim by both trigger kinds. A schedule cannot use
28
+ * `generativeSuite`, but that is a rule rather than a separate shape: the CLI
29
+ * refuses a field whose object schema differs between union branches, so the
30
+ * two kinds must offer the same action.
31
+ */
32
+ export declare const makeTriggerActionSchema: <FlowId extends PublicIdSchema>(ids: {
33
+ flow: FlowId;
34
+ }) => z.ZodObject<{
35
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
36
+ instructions: z.ZodOptional<z.ZodString>;
37
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
38
+ kind: z.ZodDefault<z.ZodEnum<{
39
+ createSuite: "createSuite";
40
+ generativeSuite: "generativeSuite";
41
+ }>>;
42
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
43
+ }, z.core.$strip>;
44
+ /**
45
+ * Fields that say when a schedule trigger fires.
46
+ *
47
+ * `environmentId` takes whichever schema the caller types it with. A write
48
+ * input passes the reference schema, which also accepts an alias. The trigger
49
+ * resource passes the environment id schema, because a read reports the
50
+ * environment the reference resolved to.
51
+ */
52
+ export declare const makeTriggerScheduleFields: <EnvironmentIdSchema extends PublicIdSchema, FlowId extends PublicIdSchema>(ids: {
53
+ environmentId: EnvironmentIdSchema;
54
+ flow: FlowId;
55
+ }) => {
56
+ action: z.ZodObject<{
57
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
58
+ instructions: z.ZodOptional<z.ZodString>;
59
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
60
+ kind: z.ZodDefault<z.ZodEnum<{
61
+ createSuite: "createSuite";
62
+ generativeSuite: "generativeSuite";
63
+ }>>;
64
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
65
+ }, z.core.$strip>;
66
+ cadence: z.ZodEnum<{
67
+ hourly: "hourly";
68
+ daily: "daily";
69
+ }>;
70
+ environmentId: EnvironmentIdSchema;
71
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
72
+ timeOfDay: z.ZodOptional<z.ZodString>;
73
+ timezoneId: z.ZodOptional<z.ZodString>;
74
+ };
75
+ /**
76
+ * Fields that say which deployments a deployment trigger fires for. Every
77
+ * pattern supplied must match, and supplying none fires on every deployment
78
+ * the team reports.
79
+ */
80
+ export declare const makeTriggerDeploymentFields: <EnvironmentId extends PublicIdSchema, FlowId extends PublicIdSchema>(ids: {
81
+ environment: EnvironmentId;
82
+ flow: FlowId;
83
+ }) => {
84
+ action: z.ZodObject<{
85
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
86
+ instructions: z.ZodOptional<z.ZodString>;
87
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
88
+ kind: z.ZodDefault<z.ZodEnum<{
89
+ createSuite: "createSuite";
90
+ generativeSuite: "generativeSuite";
91
+ }>>;
92
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
93
+ }, z.core.$strip>;
94
+ branchPattern: z.ZodOptional<z.ZodString>;
95
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
96
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
97
+ environmentPattern: z.ZodOptional<z.ZodString>;
98
+ };
99
+ //# sourceMappingURL=configuration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../src/v1/trigger/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAkBhD;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,oBAAoB;;;EAEW,CAAC;AAE7C,eAAO,MAAM,uBAAuB;;;EAIjC,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,SAAS,cAAc,EAAE,KAAK;IAC1E,IAAI,EAAE,MAAM,CAAC;CACd;;;;;;;;;iBAwBoD,CAAC;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,GACpC,mBAAmB,SAAS,cAAc,EAC1C,MAAM,SAAS,cAAc,EAC7B,KAAK;IACL,aAAa,EAAE,mBAAmB,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;;;;;;;;;;;;;;;;;;;CA4BC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GACtC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,KAAK;IACL,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;;;;;;;;;;;;;;;CA2BC,CAAC"}
@@ -0,0 +1,125 @@
1
+ import { z } from "zod";
2
+ // The domain refines the same field with luxon. This package publishes to npm
3
+ // and takes no such dependency, so it asks the runtime instead. A caller then
4
+ // gets a field level error rather than a generic failure deeper in.
5
+ //
6
+ // `Intl.supportedValuesOf("timeZone")` lists canonical zones only, so it
7
+ // refuses `UTC`, `GMT` and aliases such as `US/Pacific` that luxon accepts.
8
+ // Making a formatter accepts every zone luxon does, and throws for the rest.
9
+ const isTimezone = (value) => {
10
+ try {
11
+ Intl.DateTimeFormat("en-US", { timeZone: value });
12
+ return true;
13
+ }
14
+ catch {
15
+ return false;
16
+ }
17
+ };
18
+ /**
19
+ * A trigger is "run this, when that". `action` carries the this, and the
20
+ * match fields carry the that.
21
+ *
22
+ * The domain stores both in a versioned `when`/`actions` envelope holding
23
+ * arrays of objects. The public shape carries one match and one action as
24
+ * scalars instead, because the QA Wolf CLI derives one flag per leaf field
25
+ * and cannot express an array of objects. Nesting is fine: `action.flowIds`
26
+ * becomes `--action-flow-ids`.
27
+ *
28
+ * The same fields appear in inputs and in the trigger resource, so a caller
29
+ * can read a trigger, change one field, and write it back.
30
+ */
31
+ export const triggerCadenceSchema = z
32
+ .enum(["hourly", "daily"])
33
+ .describe("How often the schedule fires.");
34
+ export const triggerActionKindSchema = z
35
+ .enum(["createSuite", "generativeSuite"])
36
+ .describe("createSuite runs the flows named by flowIds and tagNames. generativeSuite lets QA Wolf choose the flows from the deployment's changes, and is not available to a schedule.");
37
+ /**
38
+ * What the trigger runs when it fires.
39
+ *
40
+ * One schema, shared verbatim by both trigger kinds. A schedule cannot use
41
+ * `generativeSuite`, but that is a rule rather than a separate shape: the CLI
42
+ * refuses a field whose object schema differs between union branches, so the
43
+ * two kinds must offer the same action.
44
+ */
45
+ export const makeTriggerActionSchema = (ids) => z
46
+ .object({
47
+ flowIds: z
48
+ .array(ids.flow)
49
+ .default([])
50
+ .describe("Flows to run. Combined with tagNames."),
51
+ instructions: z
52
+ .string()
53
+ .min(1)
54
+ .optional()
55
+ .describe("Guidance for QA Wolf. Applies to generativeSuite only."),
56
+ investigateFailures: z
57
+ .boolean()
58
+ .optional()
59
+ .describe("Whether QA Wolf investigates failures in the resulting runs. Defaults to true."),
60
+ kind: triggerActionKindSchema.default("createSuite"),
61
+ tagNames: z
62
+ .array(z.string().min(1))
63
+ .default([])
64
+ .describe("Tags naming the flows to run. Combined with flowIds."),
65
+ })
66
+ .describe("What the trigger runs when it fires.");
67
+ /**
68
+ * Fields that say when a schedule trigger fires.
69
+ *
70
+ * `environmentId` takes whichever schema the caller types it with. A write
71
+ * input passes the reference schema, which also accepts an alias. The trigger
72
+ * resource passes the environment id schema, because a read reports the
73
+ * environment the reference resolved to.
74
+ */
75
+ export const makeTriggerScheduleFields = (ids) => ({
76
+ action: makeTriggerActionSchema(ids),
77
+ cadence: triggerCadenceSchema,
78
+ environmentId: ids.environmentId.describe("The environment the scheduled runs happen in."),
79
+ minuteOfHour: z
80
+ .number()
81
+ .int()
82
+ .min(0)
83
+ .max(59)
84
+ .optional()
85
+ .describe("Minutes past the hour an hourly schedule fires. Defaults to 0."),
86
+ timeOfDay: z
87
+ .string()
88
+ .regex(/^([01]\d|2[0-3]):[0-5]\d$/)
89
+ .optional()
90
+ .describe('The wall clock time a daily schedule fires, as "HH:mm". Required when cadence is daily.'),
91
+ timezoneId: z
92
+ .string()
93
+ .min(1)
94
+ .refine(isTimezone, "Expected an IANA timezone, such as America/New_York.")
95
+ .optional()
96
+ .describe("The IANA timezone that timeOfDay is read in, such as America/New_York. Required when cadence is daily."),
97
+ });
98
+ /**
99
+ * Fields that say which deployments a deployment trigger fires for. Every
100
+ * pattern supplied must match, and supplying none fires on every deployment
101
+ * the team reports.
102
+ */
103
+ export const makeTriggerDeploymentFields = (ids) => ({
104
+ action: makeTriggerActionSchema(ids),
105
+ branchPattern: z
106
+ .string()
107
+ .min(1)
108
+ .optional()
109
+ .describe("Only fire for deployments of a branch matching this pattern."),
110
+ deployTargetPattern: z
111
+ .string()
112
+ .min(1)
113
+ .optional()
114
+ .describe("Only fire for deployments of an app matching this pattern. A deploy target names one app within an environment."),
115
+ environmentIds: z
116
+ .array(ids.environment)
117
+ .default([])
118
+ .describe("Only fire for deployments to these environments. Mutually exclusive with environmentPattern."),
119
+ environmentPattern: z
120
+ .string()
121
+ .min(1)
122
+ .optional()
123
+ .describe("Only fire for deployments to environments matching this pattern. Mutually exclusive with environmentIds."),
124
+ });
125
+ //# sourceMappingURL=configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/v1/trigger/configuration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { z } from "zod";
2
+ /**
3
+ * Cross field rules for a trigger configuration.
4
+ *
5
+ * These are the rules the domain enforces once the flat shape is assembled
6
+ * into a `when`/`actions` envelope. They are checked here so a caller gets a
7
+ * field-level validation error instead of a generic domain failure.
8
+ */
9
+ type Action = {
10
+ flowIds: string[];
11
+ instructions?: string | undefined;
12
+ kind: "createSuite" | "generativeSuite";
13
+ tagNames: string[];
14
+ };
15
+ type ScheduleShape = {
16
+ action: Action;
17
+ cadence: "daily" | "hourly";
18
+ kind: "schedule";
19
+ minuteOfHour?: number | undefined;
20
+ timeOfDay?: string | undefined;
21
+ timezoneId?: string | undefined;
22
+ };
23
+ type DeploymentShape = {
24
+ action: Action;
25
+ environmentIds: string[];
26
+ environmentPattern?: string | undefined;
27
+ kind: "deployment";
28
+ };
29
+ /**
30
+ * Applies the rules for whichever kind the value carries. Written against a
31
+ * structural type so the create and the update input can share it.
32
+ */
33
+ export declare const checkTriggerConfiguration: (value: DeploymentShape | ScheduleShape, ctx: z.RefinementCtx) => void;
34
+ export {};
35
+ //# sourceMappingURL=configurationRules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurationRules.d.ts","sourceRoot":"","sources":["../../../src/v1/trigger/configurationRules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;;;GAMG;AAEH,KAAK,MAAM,GAAG;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,IAAI,EAAE,aAAa,GAAG,iBAAiB,CAAC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AA2FF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,OAAO,eAAe,GAAG,aAAa,EACtC,KAAK,CAAC,CAAC,aAAa,KACnB,IAG8B,CAAC"}
@@ -0,0 +1,92 @@
1
+ const checkAction = (action, ctx) => {
2
+ const namesFlows = action.flowIds.length + action.tagNames.length > 0;
3
+ if (action.kind === "generativeSuite") {
4
+ // QA Wolf picks the flows from the deployment, so naming them is a
5
+ // contradiction rather than a harmless extra.
6
+ if (namesFlows) {
7
+ ctx.addIssue({
8
+ code: "custom",
9
+ message: "flowIds and tagNames do not apply when the action is generativeSuite.",
10
+ path: ["action", "flowIds"],
11
+ });
12
+ }
13
+ return;
14
+ }
15
+ if (action.instructions !== undefined) {
16
+ ctx.addIssue({
17
+ code: "custom",
18
+ message: "instructions apply to a generativeSuite action only.",
19
+ path: ["action", "instructions"],
20
+ });
21
+ }
22
+ if (!namesFlows) {
23
+ ctx.addIssue({
24
+ code: "custom",
25
+ message: "At least one flow or tag is required.",
26
+ path: ["action", "flowIds"],
27
+ });
28
+ }
29
+ };
30
+ const checkSchedule = (value, ctx) => {
31
+ if (value.cadence === "daily") {
32
+ // The domain reads timeOfDay in timezoneId, so a daily cadence is
33
+ // ambiguous without both.
34
+ for (const field of ["timeOfDay", "timezoneId"]) {
35
+ if (value[field] === undefined) {
36
+ ctx.addIssue({
37
+ code: "custom",
38
+ message: `${field} is required when cadence is daily.`,
39
+ path: [field],
40
+ });
41
+ }
42
+ }
43
+ if (value.minuteOfHour !== undefined) {
44
+ ctx.addIssue({
45
+ code: "custom",
46
+ message: "minuteOfHour applies to an hourly cadence only.",
47
+ path: ["minuteOfHour"],
48
+ });
49
+ }
50
+ }
51
+ else {
52
+ for (const field of ["timeOfDay", "timezoneId"]) {
53
+ if (value[field] !== undefined) {
54
+ ctx.addIssue({
55
+ code: "custom",
56
+ message: `${field} applies to a daily cadence only.`,
57
+ path: [field],
58
+ });
59
+ }
60
+ }
61
+ }
62
+ // A schedule fire runs createSuite actions only: the generative action
63
+ // builds its run set from a deployment's changes, and a schedule has none.
64
+ if (value.action.kind === "generativeSuite") {
65
+ ctx.addIssue({
66
+ code: "custom",
67
+ message: "A schedule trigger cannot use a generativeSuite action.",
68
+ path: ["action", "kind"],
69
+ });
70
+ return;
71
+ }
72
+ checkAction(value.action, ctx);
73
+ };
74
+ const checkDeployment = (value, ctx) => {
75
+ if (value.environmentPattern !== undefined &&
76
+ value.environmentIds.length > 0) {
77
+ ctx.addIssue({
78
+ code: "custom",
79
+ message: "Supply environmentIds or environmentPattern, not both.",
80
+ path: ["environmentPattern"],
81
+ });
82
+ }
83
+ checkAction(value.action, ctx);
84
+ };
85
+ /**
86
+ * Applies the rules for whichever kind the value carries. Written against a
87
+ * structural type so the create and the update input can share it.
88
+ */
89
+ export const checkTriggerConfiguration = (value, ctx) => value.kind === "schedule"
90
+ ? checkSchedule(value, ctx)
91
+ : checkDeployment(value, ctx);
92
+ //# sourceMappingURL=configurationRules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurationRules.js","sourceRoot":"","sources":["../../../src/v1/trigger/configurationRules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ import { z } from "zod";
2
+ import type { PublicIdSchema } from "../ids.js";
3
+ export declare const makeCreateTriggerContract: <EnvironmentId extends PublicIdSchema, FlowId extends PublicIdSchema, TriggerId extends PublicIdSchema, WorkspaceId extends PublicIdSchema>(ids: {
4
+ environment: EnvironmentId;
5
+ /** Accepts an id or an alias; the resource reports the id it resolved to. */
6
+ environmentRef: PublicIdSchema;
7
+ flow: FlowId;
8
+ trigger: TriggerId;
9
+ workspace: WorkspaceId;
10
+ }) => {
11
+ readonly annotations: {
12
+ readonly destructiveHint: true;
13
+ readonly openWorldHint: true;
14
+ readonly readOnlyHint: false;
15
+ };
16
+ readonly description: string;
17
+ readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
18
+ kind: z.ZodLiteral<"schedule">;
19
+ action: z.ZodObject<{
20
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
21
+ instructions: z.ZodOptional<z.ZodString>;
22
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
23
+ kind: z.ZodDefault<z.ZodEnum<{
24
+ createSuite: "createSuite";
25
+ generativeSuite: "generativeSuite";
26
+ }>>;
27
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
28
+ }, z.core.$strip>;
29
+ cadence: z.ZodEnum<{
30
+ hourly: "hourly";
31
+ daily: "daily";
32
+ }>;
33
+ environmentId: PublicIdSchema;
34
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
35
+ timeOfDay: z.ZodOptional<z.ZodString>;
36
+ timezoneId: z.ZodOptional<z.ZodString>;
37
+ name: z.ZodString;
38
+ workspaceId: z.ZodOptional<WorkspaceId>;
39
+ }, z.core.$strip>, z.ZodObject<{
40
+ kind: z.ZodLiteral<"deployment">;
41
+ action: z.ZodObject<{
42
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
43
+ instructions: z.ZodOptional<z.ZodString>;
44
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
45
+ kind: z.ZodDefault<z.ZodEnum<{
46
+ createSuite: "createSuite";
47
+ generativeSuite: "generativeSuite";
48
+ }>>;
49
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
50
+ }, z.core.$strip>;
51
+ branchPattern: z.ZodOptional<z.ZodString>;
52
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
53
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
54
+ environmentPattern: z.ZodOptional<z.ZodString>;
55
+ name: z.ZodString;
56
+ workspaceId: z.ZodOptional<WorkspaceId>;
57
+ }, z.core.$strip>], "kind">;
58
+ readonly kind: "write";
59
+ readonly name: "trigger.create";
60
+ readonly output: z.ZodObject<{
61
+ trigger: z.ZodObject<{
62
+ configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
63
+ kind: z.ZodLiteral<"schedule">;
64
+ action: z.ZodObject<{
65
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
66
+ instructions: z.ZodOptional<z.ZodString>;
67
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
68
+ kind: z.ZodDefault<z.ZodEnum<{
69
+ createSuite: "createSuite";
70
+ generativeSuite: "generativeSuite";
71
+ }>>;
72
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
73
+ }, z.core.$strip>;
74
+ cadence: z.ZodEnum<{
75
+ hourly: "hourly";
76
+ daily: "daily";
77
+ }>;
78
+ environmentId: EnvironmentId;
79
+ minuteOfHour: z.ZodOptional<z.ZodNumber>;
80
+ timeOfDay: z.ZodOptional<z.ZodString>;
81
+ timezoneId: z.ZodOptional<z.ZodString>;
82
+ }, z.core.$strip>, z.ZodObject<{
83
+ kind: z.ZodLiteral<"deployment">;
84
+ action: z.ZodObject<{
85
+ flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
86
+ instructions: z.ZodOptional<z.ZodString>;
87
+ investigateFailures: z.ZodOptional<z.ZodBoolean>;
88
+ kind: z.ZodDefault<z.ZodEnum<{
89
+ createSuite: "createSuite";
90
+ generativeSuite: "generativeSuite";
91
+ }>>;
92
+ tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
93
+ }, z.core.$strip>;
94
+ branchPattern: z.ZodOptional<z.ZodString>;
95
+ deployTargetPattern: z.ZodOptional<z.ZodString>;
96
+ environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
97
+ environmentPattern: z.ZodOptional<z.ZodString>;
98
+ }, z.core.$strip>, z.ZodObject<{
99
+ actionCount: z.ZodNumber;
100
+ kind: z.ZodLiteral<"advanced">;
101
+ whenCount: z.ZodNumber;
102
+ }, z.core.$strip>], "kind">;
103
+ createdAt: z.ZodISODateTime;
104
+ id: TriggerId;
105
+ isPaused: z.ZodBoolean;
106
+ name: z.ZodString;
107
+ nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
108
+ pausedAt: z.ZodOptional<z.ZodISODateTime>;
109
+ updatedAt: z.ZodISODateTime;
110
+ url: z.ZodURL;
111
+ }, z.core.$strip>;
112
+ }, z.core.$strip>;
113
+ };
114
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/v1/trigger/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAShD,eAAO,MAAM,yBAAyB,GACpC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,SAAS,SAAS,cAAc,EAChC,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,WAAW,EAAE,aAAa,CAAC;IAC3B,6EAA6E;IAC7E,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CA,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { z } from "zod";
2
+ import { makeTriggerDeploymentFields, makeTriggerScheduleFields, } from "./configuration.js";
3
+ import { checkTriggerConfiguration } from "./configurationRules.js";
4
+ import { makeTriggerResourceSchema } from "./resource.js";
5
+ export const makeCreateTriggerContract = (ids) => {
6
+ const commonFields = {
7
+ name: z.string().trim().min(1).max(255),
8
+ workspaceId: ids.workspace
9
+ .optional()
10
+ .describe("The workspace to create the trigger in. Required when authenticating with an organization or user API key."),
11
+ };
12
+ const input = z
13
+ .discriminatedUnion("kind", [
14
+ z.object({
15
+ ...commonFields,
16
+ ...makeTriggerScheduleFields({
17
+ environmentId: ids.environmentRef,
18
+ flow: ids.flow,
19
+ }),
20
+ kind: z.literal("schedule"),
21
+ }),
22
+ z.object({
23
+ ...commonFields,
24
+ ...makeTriggerDeploymentFields(ids),
25
+ kind: z.literal("deployment"),
26
+ }),
27
+ ])
28
+ .superRefine(checkTriggerConfiguration);
29
+ const output = z.object({ trigger: makeTriggerResourceSchema(ids) });
30
+ return {
31
+ annotations: {
32
+ destructiveHint: true,
33
+ openWorldHint: true,
34
+ readOnlyHint: false,
35
+ },
36
+ description: "Create a trigger. A schedule trigger runs a named set of flows on a cadence; " +
37
+ "a deployment trigger runs when a matching deployment is reported.",
38
+ input,
39
+ kind: "write",
40
+ name: "trigger.create",
41
+ output,
42
+ };
43
+ };
44
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/v1/trigger/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAKvC,GAOD,EAAE,EAAE;IACH,MAAM,YAAY,GAAG;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,4GAA4G,CAC7G;KACJ,CAAC;IACF,MAAM,KAAK,GAAG,CAAC;SACZ,kBAAkB,CAAC,MAAM,EAAE;QAC1B,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,YAAY;YACf,GAAG,yBAAyB,CAAC;gBAC3B,aAAa,EAAE,GAAG,CAAC,cAAc;gBACjC,IAAI,EAAE,GAAG,CAAC,IAAI;aACf,CAAC;YACF,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;SAC5B,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,YAAY;YACf,GAAG,2BAA2B,CAAC,GAAG,CAAC;YACnC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;SAC9B,CAAC;KACH,CAAC;SACD,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAErE,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EACT,+EAA+E;YAC/E,mEAAmE;QACrE,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,gBAAgB;QACtB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}