@vm0/cli 9.249.1 → 9.250.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 (142) hide show
  1. package/{agent-PMWDKCSZ.js → agent-YJFMD7LA.js} +11 -10
  2. package/{agent-PMWDKCSZ.js.map → agent-YJFMD7LA.js.map} +1 -1
  3. package/{banking-S5RH46G5.js → banking-JRKBMYU5.js} +8 -7
  4. package/{banking-S5RH46G5.js.map → banking-JRKBMYU5.js.map} +1 -1
  5. package/{chat-2ZTZUIWC.js → chat-WYS6FFNJ.js} +9 -8
  6. package/{chat-2ZTZUIWC.js.map → chat-WYS6FFNJ.js.map} +1 -1
  7. package/{chunk-DIRAZ3YX.js → chunk-3VVCUQPB.js} +3 -3
  8. package/{chunk-DIRAZ3YX.js.map → chunk-3VVCUQPB.js.map} +1 -1
  9. package/{chunk-HUMR2SA3.js → chunk-4TTCW5OQ.js} +3 -3
  10. package/{chunk-PLOJYRFL.js → chunk-7OWH4M4H.js} +40 -564
  11. package/chunk-7OWH4M4H.js.map +1 -0
  12. package/{chunk-SAW74AR6.js → chunk-FNXVREX3.js} +3 -3
  13. package/{chunk-KLIW3XK7.js → chunk-GPF7NSX7.js} +2 -2
  14. package/{chunk-B3W2RUBP.js → chunk-LD4ZVU4O.js} +2 -2
  15. package/chunk-LME44JCZ.js +678 -0
  16. package/chunk-LME44JCZ.js.map +1 -0
  17. package/{chunk-J2I5GYLR.js → chunk-LSSFQNLG.js} +5 -5
  18. package/{chunk-L63QVTYZ.js → chunk-LVWZ2FVB.js} +27 -672
  19. package/chunk-LVWZ2FVB.js.map +1 -0
  20. package/{chunk-KQN5YZZP.js → chunk-MNY7TC57.js} +63 -114
  21. package/chunk-MNY7TC57.js.map +1 -0
  22. package/{chunk-FF5L22OE.js → chunk-O3BA2A2T.js} +3 -3
  23. package/chunk-O7VNSQWZ.js +503 -0
  24. package/chunk-O7VNSQWZ.js.map +1 -0
  25. package/{chunk-LTDQISD7.js → chunk-SB7EZ2ZO.js} +2 -2
  26. package/chunk-SY5X55C4.js +32 -0
  27. package/chunk-SY5X55C4.js.map +1 -0
  28. package/{chunk-RTYT3CSZ.js → chunk-UG5XA6KU.js} +2 -2
  29. package/chunk-W75R7EZF.js +17 -0
  30. package/chunk-W75R7EZF.js.map +1 -0
  31. package/{chunk-JFY6GK7Y.js → chunk-X2545RBX.js} +2 -2
  32. package/{chunk-ZE2VIESK.js → chunk-X4DBCBU4.js} +2 -2
  33. package/{chunk-LKDE4AUC.js → chunk-YPA52IJ7.js} +3 -3
  34. package/{computer-use-GRK4TZYN.js → computer-use-D2MPAUYF.js} +7 -6
  35. package/{computer-use-GRK4TZYN.js.map → computer-use-D2MPAUYF.js.map} +1 -1
  36. package/{connector-2SVH4F2N.js → connector-3CX23I3A.js} +14 -13
  37. package/{connector-2SVH4F2N.js.map → connector-3CX23I3A.js.map} +1 -1
  38. package/credit-AOTIS6VG.js +166 -0
  39. package/credit-AOTIS6VG.js.map +1 -0
  40. package/{developer-support-RYTLIFUN.js → developer-support-57LFRVGG.js} +8 -7
  41. package/{developer-support-RYTLIFUN.js.map → developer-support-57LFRVGG.js.map} +1 -1
  42. package/{doctor-CS5TFE6A.js → doctor-2LCAFBSD.js} +39 -13
  43. package/doctor-2LCAFBSD.js.map +1 -0
  44. package/{esm-PZKPCIYJ.js → esm-GOCEMHJO.js} +3 -3
  45. package/{feishu-HFQIJDBU.js → feishu-2NKABJIL.js} +8 -7
  46. package/{feishu-HFQIJDBU.js.map → feishu-2NKABJIL.js.map} +1 -1
  47. package/{finance-56HIRALT.js → finance-NJNJDMAH.js} +8 -7
  48. package/{finance-56HIRALT.js.map → finance-NJNJDMAH.js.map} +1 -1
  49. package/{generate-4FEC4YVM.js → generate-SIX4HFYT.js} +77 -22
  50. package/generate-SIX4HFYT.js.map +1 -0
  51. package/{getMachineId-bsd-L73QENVB.js → getMachineId-bsd-SB7C44VX.js} +4 -4
  52. package/{getMachineId-darwin-TCCWKQ2S.js → getMachineId-darwin-R4BWY3CQ.js} +4 -4
  53. package/{getMachineId-linux-TJYYUZVM.js → getMachineId-linux-BR4HVNPW.js} +3 -3
  54. package/{getMachineId-unsupported-DPRVLH4Y.js → getMachineId-unsupported-FPGM635L.js} +3 -3
  55. package/{getMachineId-win-7EE436CJ.js → getMachineId-win-RB4JMF33.js} +4 -4
  56. package/{github-AALJ7IEM.js → github-GZIHWGLS.js} +8 -7
  57. package/{github-AALJ7IEM.js.map → github-GZIHWGLS.js.map} +1 -1
  58. package/{goal-CFSXEKHU.js → goal-7YPU6W4L.js} +8 -7
  59. package/{goal-CFSXEKHU.js.map → goal-7YPU6W4L.js.map} +1 -1
  60. package/{host-6NKXFQCO.js → host-K6BCECUE.js} +8 -7
  61. package/{host-6NKXFQCO.js.map → host-K6BCECUE.js.map} +1 -1
  62. package/{intro-MIVVJG7M.js → intro-PMHOBGDL.js} +3 -3
  63. package/{logs-F4KPELTF.js → logs-FXUU3B7R.js} +10 -9
  64. package/{logs-F4KPELTF.js.map → logs-FXUU3B7R.js.map} +1 -1
  65. package/{mail-RZTLZU3I.js → mail-NMQN3UOV.js} +12 -11
  66. package/{mail-RZTLZU3I.js.map → mail-NMQN3UOV.js.map} +1 -1
  67. package/{maps-QRHGR33R.js → maps-TV2AB76X.js} +8 -7
  68. package/{maps-QRHGR33R.js.map → maps-TV2AB76X.js.map} +1 -1
  69. package/{model-6N5VPIS5.js → model-6KGNE7AT.js} +9 -8
  70. package/{model-6N5VPIS5.js.map → model-6KGNE7AT.js.map} +1 -1
  71. package/{model-provider-UZO32ZTC.js → model-provider-AIJG5OUO.js} +9 -8
  72. package/{model-provider-UZO32ZTC.js.map → model-provider-AIJG5OUO.js.map} +1 -1
  73. package/{org-26ZL2W2U.js → org-ODZB42L3.js} +9 -8
  74. package/{org-26ZL2W2U.js.map → org-ODZB42L3.js.map} +1 -1
  75. package/package.json +1 -1
  76. package/{phone-QTRZLYIG.js → phone-XPMI6VF2.js} +8 -7
  77. package/{phone-QTRZLYIG.js.map → phone-XPMI6VF2.js.map} +1 -1
  78. package/{preference-JCFTTUBN.js → preference-BVX47Y4Q.js} +9 -8
  79. package/{preference-JCFTTUBN.js.map → preference-BVX47Y4Q.js.map} +1 -1
  80. package/{resource-64R7T4FF.js → resource-IGSGF4EH.js} +9 -8
  81. package/{resource-64R7T4FF.js.map → resource-IGSGF4EH.js.map} +1 -1
  82. package/{scrape-LVGJ56IS.js → scrape-ADTRGJG6.js} +8 -7
  83. package/{scrape-LVGJ56IS.js.map → scrape-ADTRGJG6.js.map} +1 -1
  84. package/{search-TRISF64L.js → search-6ZJQPRWM.js} +10 -9
  85. package/{search-TRISF64L.js.map → search-6ZJQPRWM.js.map} +1 -1
  86. package/{secret-UAJDU3SX.js → secret-Y4G7BLND.js} +9 -8
  87. package/{secret-UAJDU3SX.js.map → secret-Y4G7BLND.js.map} +1 -1
  88. package/{slack-PDOPNS5Z.js → slack-HKTL3FSY.js} +50 -175
  89. package/slack-HKTL3FSY.js.map +1 -0
  90. package/{teams-BL36IS5U.js → teams-2N2EHMY7.js} +8 -7
  91. package/{teams-BL36IS5U.js.map → teams-2N2EHMY7.js.map} +1 -1
  92. package/{telegram-X7YTUVNV.js → telegram-Z4WLU2O2.js} +8 -7
  93. package/{telegram-X7YTUVNV.js.map → telegram-Z4WLU2O2.js.map} +1 -1
  94. package/{undici-ZMFN7TNU.js → undici-YXSVPIYI.js} +2 -2
  95. package/upgrade-QB2455RE.js +50 -0
  96. package/upgrade-QB2455RE.js.map +1 -0
  97. package/{variable-EBCBNZSU.js → variable-KO6LBIV4.js} +9 -8
  98. package/{variable-EBCBNZSU.js.map → variable-KO6LBIV4.js.map} +1 -1
  99. package/{video-3HFJJJEE.js → video-KUPHYWB4.js} +9 -7
  100. package/{video-3HFJJJEE.js.map → video-KUPHYWB4.js.map} +1 -1
  101. package/{weather-Y37FKFKU.js → weather-RCRWQFDR.js} +8 -7
  102. package/{weather-Y37FKFKU.js.map → weather-RCRWQFDR.js.map} +1 -1
  103. package/{web-ZEWEVAI3.js → web-3D7YJGZ5.js} +10 -8
  104. package/{web-ZEWEVAI3.js.map → web-3D7YJGZ5.js.map} +1 -1
  105. package/{web-search-37SGCKB7.js → web-search-IYBKKVMU.js} +8 -7
  106. package/{web-search-37SGCKB7.js.map → web-search-IYBKKVMU.js.map} +1 -1
  107. package/{whoami-VZI6VS4C.js → whoami-REQ5UNRU.js} +10 -9
  108. package/{whoami-VZI6VS4C.js.map → whoami-REQ5UNRU.js.map} +1 -1
  109. package/{workflow-3WGBRMM5.js → workflow-H2AHF7J4.js} +178 -13
  110. package/workflow-H2AHF7J4.js.map +1 -0
  111. package/zero.js +88 -61
  112. package/zero.js.map +1 -1
  113. package/chunk-KQN5YZZP.js.map +0 -1
  114. package/chunk-L63QVTYZ.js.map +0 -1
  115. package/chunk-LRHXR7JT.js +0 -33
  116. package/chunk-LRHXR7JT.js.map +0 -1
  117. package/chunk-PLOJYRFL.js.map +0 -1
  118. package/credit-LGMFDRFK.js +0 -128
  119. package/credit-LGMFDRFK.js.map +0 -1
  120. package/doctor-CS5TFE6A.js.map +0 -1
  121. package/generate-4FEC4YVM.js.map +0 -1
  122. package/slack-PDOPNS5Z.js.map +0 -1
  123. package/workflow-3WGBRMM5.js.map +0 -1
  124. /package/{chunk-HUMR2SA3.js.map → chunk-4TTCW5OQ.js.map} +0 -0
  125. /package/{chunk-SAW74AR6.js.map → chunk-FNXVREX3.js.map} +0 -0
  126. /package/{chunk-KLIW3XK7.js.map → chunk-GPF7NSX7.js.map} +0 -0
  127. /package/{chunk-B3W2RUBP.js.map → chunk-LD4ZVU4O.js.map} +0 -0
  128. /package/{chunk-J2I5GYLR.js.map → chunk-LSSFQNLG.js.map} +0 -0
  129. /package/{chunk-FF5L22OE.js.map → chunk-O3BA2A2T.js.map} +0 -0
  130. /package/{chunk-LTDQISD7.js.map → chunk-SB7EZ2ZO.js.map} +0 -0
  131. /package/{chunk-RTYT3CSZ.js.map → chunk-UG5XA6KU.js.map} +0 -0
  132. /package/{chunk-JFY6GK7Y.js.map → chunk-X2545RBX.js.map} +0 -0
  133. /package/{chunk-ZE2VIESK.js.map → chunk-X4DBCBU4.js.map} +0 -0
  134. /package/{chunk-LKDE4AUC.js.map → chunk-YPA52IJ7.js.map} +0 -0
  135. /package/{esm-PZKPCIYJ.js.map → esm-GOCEMHJO.js.map} +0 -0
  136. /package/{getMachineId-bsd-L73QENVB.js.map → getMachineId-bsd-SB7C44VX.js.map} +0 -0
  137. /package/{getMachineId-darwin-TCCWKQ2S.js.map → getMachineId-darwin-R4BWY3CQ.js.map} +0 -0
  138. /package/{getMachineId-linux-TJYYUZVM.js.map → getMachineId-linux-BR4HVNPW.js.map} +0 -0
  139. /package/{getMachineId-unsupported-DPRVLH4Y.js.map → getMachineId-unsupported-FPGM635L.js.map} +0 -0
  140. /package/{getMachineId-win-7EE436CJ.js.map → getMachineId-win-RB4JMF33.js.map} +0 -0
  141. /package/{intro-MIVVJG7M.js.map → intro-PMHOBGDL.js.map} +0 -0
  142. /package/{undici-ZMFN7TNU.js.map → undici-YXSVPIYI.js.map} +0 -0
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  isInteractive,
6
6
  promptConfirm
7
- } from "./chunk-JFY6GK7Y.js";
7
+ } from "./chunk-X2545RBX.js";
8
8
  import {
9
9
  copyWorkflow,
10
10
  createWorkflow,
@@ -19,19 +19,20 @@ import {
19
19
  listWorkflows,
20
20
  updateWorkflow,
21
21
  updateWorkflowAutomation
22
- } from "./chunk-KQN5YZZP.js";
23
- import "./chunk-LTDQISD7.js";
22
+ } from "./chunk-MNY7TC57.js";
23
+ import "./chunk-LME44JCZ.js";
24
+ import "./chunk-SB7EZ2ZO.js";
24
25
  import {
25
26
  source_default,
26
27
  withErrorHandler
27
- } from "./chunk-L63QVTYZ.js";
28
- import "./chunk-LRHXR7JT.js";
28
+ } from "./chunk-LVWZ2FVB.js";
29
+ import "./chunk-O7VNSQWZ.js";
29
30
  import {
30
31
  Command
31
- } from "./chunk-B3W2RUBP.js";
32
+ } from "./chunk-LD4ZVU4O.js";
32
33
  import {
33
34
  init_esm_shims
34
- } from "./chunk-DIRAZ3YX.js";
35
+ } from "./chunk-3VVCUQPB.js";
35
36
 
36
37
  // src/commands/zero/workflow/index.ts
37
38
  init_esm_shims();
@@ -619,6 +620,8 @@ function workflowAutomationKindLabel(automation) {
619
620
  return "Gmail label applied";
620
621
  case "github-label-applied":
621
622
  return "GitHub label applied";
623
+ case "github-workflow-run-completed":
624
+ return "GitHub workflow completed";
622
625
  case "google-calendar-event-created":
623
626
  return "Google Calendar event created";
624
627
  case "google-calendar-event-updated":
@@ -686,6 +689,21 @@ function printWorkflowAutomationsTable(automations) {
686
689
  );
687
690
  }
688
691
  }
692
+ function printGithubWorkflowRunFilters(automation) {
693
+ if (automation.kind !== "event" || automation.eventType !== "github-workflow-run-completed") {
694
+ return;
695
+ }
696
+ const printFilter = (label, values) => {
697
+ console.log(`${`${label}:`.padEnd(14)}${values?.join(", ") ?? "any"}`);
698
+ };
699
+ const { filters } = automation.eventConfig;
700
+ printFilter("Repositories", filters.repositories);
701
+ printFilter("Workflows", filters.workflows);
702
+ printFilter("Conclusions", filters.conclusions);
703
+ printFilter("Branches", filters.branches);
704
+ printFilter("Events", filters.events);
705
+ printFilter("Actors", filters.actors);
706
+ }
689
707
  function printWorkflowAutomationDetails(automation, options) {
690
708
  const status = automation.enabled ? source_default.green("enabled") : source_default.yellow("disabled");
691
709
  console.log(`${"Kind:".padEnd(14)}${automation.kind}`);
@@ -716,6 +734,7 @@ function printWorkflowAutomationDetails(automation, options) {
716
734
  `${"Actor:".padEnd(14)}${automation.eventConfig.filters.actor.type}`
717
735
  );
718
736
  }
737
+ printGithubWorkflowRunFilters(automation);
719
738
  if (isGoogleCalendarAutomation(automation)) {
720
739
  console.log(
721
740
  `${"Calendar:".padEnd(14)}${automation.eventConfig.calendarId}`
@@ -1035,6 +1054,7 @@ var EVENT_KINDS = [
1035
1054
  "gmail-new-message",
1036
1055
  "gmail-label-applied",
1037
1056
  "github-label-applied",
1057
+ "github-workflow-run-completed",
1038
1058
  "google-calendar-event-created",
1039
1059
  "google-calendar-event-updated",
1040
1060
  "google-calendar-event-cancelled",
@@ -1078,7 +1098,19 @@ function addGithubAutomationOptions(command) {
1078
1098
  "GitHub subject filter for github-label-applied: both | issues | pull-requests"
1079
1099
  ).option(
1080
1100
  "--actor <actor>",
1081
- "GitHub actor filter for github-label-applied: me | anyone"
1101
+ "GitHub actor filter: me | anyone for labels, or comma-separated logins for workflow runs"
1102
+ ).option(
1103
+ "--repository <repositories>",
1104
+ "GitHub workflow run repositories, comma-separated owner/name values"
1105
+ ).option(
1106
+ "--workflow <workflows>",
1107
+ "GitHub workflows, comma-separated IDs, names, or paths"
1108
+ ).option(
1109
+ "--conclusion <conclusions>",
1110
+ "Workflow run conclusions, comma-separated values"
1111
+ ).option("--branch <branches>", "Workflow run branches, comma-separated").option(
1112
+ "--triggering-event <events>",
1113
+ "Workflow run triggering events, comma-separated"
1082
1114
  );
1083
1115
  }
1084
1116
  function timezoneOrUtc(timezone) {
@@ -1220,9 +1252,15 @@ function buildSchedule(kind, options) {
1220
1252
  function hasScheduleAddOptions(options) {
1221
1253
  return options.expr !== void 0 || options.at !== void 0 || options.every !== void 0 || options.timezone !== void 0;
1222
1254
  }
1223
- function hasGithubAutomationOptions(options) {
1255
+ function hasGithubLabelAutomationOptions(options) {
1224
1256
  return options.subject !== void 0 || options.actor !== void 0;
1225
1257
  }
1258
+ function hasGithubWorkflowRunSpecificOptions(options) {
1259
+ return options.repository !== void 0 || options.workflow !== void 0 || options.conclusion !== void 0 || options.branch !== void 0 || options.triggeringEvent !== void 0;
1260
+ }
1261
+ function hasGithubAutomationOptions(options) {
1262
+ return hasGithubLabelAutomationOptions(options) || hasGithubWorkflowRunSpecificOptions(options);
1263
+ }
1226
1264
  function hasCalendarAutomationOptions(options) {
1227
1265
  return options.calendarId !== void 0;
1228
1266
  }
@@ -1316,6 +1354,79 @@ function buildGithubLabelAppliedEventConfig(options, existing) {
1316
1354
  }
1317
1355
  };
1318
1356
  }
1357
+ var GITHUB_WORKFLOW_RUN_CONCLUSIONS = [
1358
+ "action_required",
1359
+ "cancelled",
1360
+ "failure",
1361
+ "neutral",
1362
+ "skipped",
1363
+ "stale",
1364
+ "startup_failure",
1365
+ "success",
1366
+ "timed_out"
1367
+ ];
1368
+ function parseGithubWorkflowRunFilter(value, fallback) {
1369
+ if (value === void 0) {
1370
+ return fallback ? [...fallback] : void 0;
1371
+ }
1372
+ if (value.trim().toLowerCase() === "any") {
1373
+ return void 0;
1374
+ }
1375
+ const values = Array.from(
1376
+ new Set(
1377
+ value.split(",").map((part) => {
1378
+ return part.trim();
1379
+ }).filter(Boolean)
1380
+ )
1381
+ );
1382
+ if (values.length === 0) {
1383
+ throw new Error("GitHub workflow run filters cannot be empty; use any");
1384
+ }
1385
+ return values;
1386
+ }
1387
+ function parseGithubWorkflowRunConclusions(value, fallback) {
1388
+ const values = parseGithubWorkflowRunFilter(value, fallback);
1389
+ if (!values) {
1390
+ return void 0;
1391
+ }
1392
+ return values.map((conclusion) => {
1393
+ if (GITHUB_WORKFLOW_RUN_CONCLUSIONS.includes(
1394
+ conclusion
1395
+ )) {
1396
+ return conclusion;
1397
+ }
1398
+ throw new Error(
1399
+ `Invalid --conclusion "${conclusion}". Use one of: ${GITHUB_WORKFLOW_RUN_CONCLUSIONS.join(", ")}, any`
1400
+ );
1401
+ });
1402
+ }
1403
+ function buildGithubWorkflowRunCompletedEventConfig(options, existing) {
1404
+ const filters = existing?.eventConfig.filters;
1405
+ return {
1406
+ provider: "github",
1407
+ event: "workflow_run_completed",
1408
+ filters: {
1409
+ repositories: parseGithubWorkflowRunFilter(
1410
+ options.repository,
1411
+ filters?.repositories
1412
+ ),
1413
+ workflows: parseGithubWorkflowRunFilter(
1414
+ options.workflow,
1415
+ filters?.workflows
1416
+ ),
1417
+ conclusions: parseGithubWorkflowRunConclusions(
1418
+ options.conclusion,
1419
+ filters?.conclusions
1420
+ ),
1421
+ branches: parseGithubWorkflowRunFilter(options.branch, filters?.branches),
1422
+ events: parseGithubWorkflowRunFilter(
1423
+ options.triggeringEvent,
1424
+ filters?.events
1425
+ ),
1426
+ actors: parseGithubWorkflowRunFilter(options.actor, filters?.actors)
1427
+ }
1428
+ };
1429
+ }
1319
1430
  function buildGmailNewMessageCreateRequest(options) {
1320
1431
  assertNoScheduleAddOptions(options);
1321
1432
  if (hasGmailLabelOption(options)) {
@@ -1355,12 +1466,37 @@ function buildGithubLabelAppliedCreateRequest(options) {
1355
1466
  }
1356
1467
  assertNoCalendarAutomationOptions(options);
1357
1468
  assertNoNotionAutomationOptions(options);
1469
+ if (hasGithubWorkflowRunSpecificOptions(options)) {
1470
+ throw new Error(
1471
+ "Workflow run filter flags only apply to github-workflow-run-completed automations"
1472
+ );
1473
+ }
1358
1474
  return {
1359
1475
  kind: "event",
1360
1476
  eventType: "github-label-applied",
1361
1477
  eventConfig: buildGithubLabelAppliedEventConfig(options)
1362
1478
  };
1363
1479
  }
1480
+ function buildGithubWorkflowRunCompletedCreateRequest(options) {
1481
+ assertNoScheduleAddOptions(options);
1482
+ if (hasGmailAutomationOptions(options) || hasGmailLabelOption(options)) {
1483
+ throw new Error(
1484
+ "Gmail automation flags only apply to Gmail event automations"
1485
+ );
1486
+ }
1487
+ if (options.subject !== void 0) {
1488
+ throw new Error(
1489
+ "--subject only applies to github-label-applied automations"
1490
+ );
1491
+ }
1492
+ assertNoCalendarAutomationOptions(options);
1493
+ assertNoNotionAutomationOptions(options);
1494
+ return {
1495
+ kind: "event",
1496
+ eventType: "github-workflow-run-completed",
1497
+ eventConfig: buildGithubWorkflowRunCompletedEventConfig(options)
1498
+ };
1499
+ }
1364
1500
  function buildGoogleCalendarEventCreateRequest(eventType, options) {
1365
1501
  assertNoScheduleAddOptions(options);
1366
1502
  if (hasGmailAutomationOptions(options) || hasGmailLabelOption(options) || hasGithubAutomationOptions(options) || hasNotionAutomationOptions(options)) {
@@ -1519,6 +1655,8 @@ function buildCreateRequest(kind, options) {
1519
1655
  return buildGmailLabelAppliedCreateRequest(options);
1520
1656
  case "github-label-applied":
1521
1657
  return buildGithubLabelAppliedCreateRequest(options);
1658
+ case "github-workflow-run-completed":
1659
+ return buildGithubWorkflowRunCompletedCreateRequest(options);
1522
1660
  case "google-calendar-event-created":
1523
1661
  return buildGoogleCalendarEventCreateRequest(kind, options);
1524
1662
  case "google-calendar-event-updated":
@@ -1550,6 +1688,11 @@ function buildEventUpdate(options, existing) {
1550
1688
  "Gmail match flags only apply to Gmail event automations"
1551
1689
  );
1552
1690
  }
1691
+ if (hasGithubWorkflowRunSpecificOptions(options)) {
1692
+ throw new Error(
1693
+ "Workflow run filter flags only apply to github-workflow-run-completed automations"
1694
+ );
1695
+ }
1553
1696
  if (!hasLabelOption && !hasGithubOptions) {
1554
1697
  throw new Error(
1555
1698
  "Provide --label, --subject, or --actor for github-label-applied automations"
@@ -1559,6 +1702,24 @@ function buildEventUpdate(options, existing) {
1559
1702
  eventConfig: buildGithubLabelAppliedEventConfig(options, existing)
1560
1703
  };
1561
1704
  }
1705
+ if (existing.eventType === "github-workflow-run-completed") {
1706
+ if (hasGmailOptions || hasLabelOption || options.subject !== void 0) {
1707
+ throw new Error(
1708
+ "Gmail, label, and subject flags do not apply to GitHub workflow run automations"
1709
+ );
1710
+ }
1711
+ if (!hasGithubAutomationOptions(options)) {
1712
+ throw new Error(
1713
+ "Provide a GitHub workflow run filter flag; use any to clear a filter"
1714
+ );
1715
+ }
1716
+ return {
1717
+ eventConfig: buildGithubWorkflowRunCompletedEventConfig(
1718
+ options,
1719
+ existing
1720
+ )
1721
+ };
1722
+ }
1562
1723
  if (hasGithubOptions) {
1563
1724
  throw new Error(
1564
1725
  "GitHub automation flags only apply to GitHub event automations"
@@ -1654,6 +1815,7 @@ Examples:
1654
1815
  zero workflow automation add triage --agent <agent-id> gmail-new-message --config ./gmail-automation.json
1655
1816
  zero workflow automation add triage --agent <agent-id> gmail-label-applied --label "Support"
1656
1817
  zero workflow automation add triage --agent <agent-id> github-label-applied --label "triage" --subject both --actor me
1818
+ zero workflow automation add ci-triage --agent <agent-id> github-workflow-run-completed --repository vm0-ai/vm0 --workflow Turbo --conclusion failure,timed_out --branch main --triggering-event push --actor dependabot[bot]
1657
1819
  zero workflow automation add triage --agent <agent-id> google-calendar-event-created
1658
1820
  zero workflow automation add triage --agent <agent-id> google-calendar-event-updated
1659
1821
  zero workflow automation add triage --agent <agent-id> google-calendar-event-cancelled
@@ -1666,7 +1828,8 @@ Examples:
1666
1828
  Notes:
1667
1829
  - Workflow names resolve under --agent, then ZERO_AGENT_ID
1668
1830
  - Gmail automations match all inbound messages when no text match rules are provided
1669
- - GitHub label automations require the GitHub App installation in the workspace
1831
+ - GitHub automations require the GitHub App installation in the workspace
1832
+ - GitHub workflow run filters accept comma-separated values; omit a filter to match any value
1670
1833
  - Webhook automations print the signing secret only once after creation
1671
1834
  - Use the workflow ID when a name is ambiguous`
1672
1835
  ).action(
@@ -1690,7 +1853,7 @@ Notes:
1690
1853
  var updateCommand = addGithubAutomationOptions(
1691
1854
  addGmailAutomationOptions(
1692
1855
  new Command().name("update").description(
1693
- "Replace a workflow automation's schedule or Gmail match config"
1856
+ "Replace a workflow automation's schedule or event filter config"
1694
1857
  ).argument("<automation>", "Workflow automation ID").option("--expr <expression>", 'New cron schedule (e.g. "0 9 * * *")').option("--at <iso-time>", 'New one-time fire (e.g. "2026-06-10T09:00")').option("--every <duration>", "New loop interval (e.g. 15m, 1h, 90s)").option("-z, --timezone <tz>", "IANA timezone for --expr / --at")
1695
1858
  )
1696
1859
  ).addHelpText(
@@ -1703,7 +1866,9 @@ Examples:
1703
1866
  zero workflow automation update 22222222-2222-4222-8222-222222222222 --from-contains "@example.com"
1704
1867
  zero workflow automation update 22222222-2222-4222-8222-222222222222 --config ./gmail-automation.json
1705
1868
  zero workflow automation update 22222222-2222-4222-8222-222222222222 --label "Support"
1706
- zero workflow automation update 22222222-2222-4222-8222-222222222222 --actor anyone`
1869
+ zero workflow automation update 22222222-2222-4222-8222-222222222222 --actor anyone
1870
+ zero workflow automation update 22222222-2222-4222-8222-222222222222 --conclusion failure,timed_out --branch main
1871
+ zero workflow automation update 22222222-2222-4222-8222-222222222222 --actor any`
1707
1872
  ).action(
1708
1873
  withErrorHandler(async (id, options) => {
1709
1874
  const existing = await getWorkflowAutomation(id);
@@ -1792,4 +1957,4 @@ Examples:
1792
1957
  export {
1793
1958
  zeroWorkflowCommand
1794
1959
  };
1795
- //# sourceMappingURL=workflow-3WGBRMM5.js.map
1960
+ //# sourceMappingURL=workflow-H2AHF7J4.js.map