@fungi.computer/braid 0.0.0-stage → 0.1.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 (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +260 -2
  3. package/dist/cloudflare/graph-engine.d.ts +25 -0
  4. package/dist/cloudflare/graph-engine.js +46 -0
  5. package/dist/cloudflare/graph-program.d.ts +6 -0
  6. package/dist/cloudflare/graph-program.js +550 -0
  7. package/dist/cloudflare/index.d.ts +1 -0
  8. package/dist/cloudflare/index.js +1 -0
  9. package/dist/code-execution.d.ts +16 -0
  10. package/dist/code-execution.js +50 -0
  11. package/dist/code-result.d.ts +11 -0
  12. package/dist/code-result.js +19 -0
  13. package/dist/code-sandbox.d.ts +9 -0
  14. package/dist/code-sandbox.js +13 -0
  15. package/dist/compile.d.ts +43 -0
  16. package/dist/compile.js +248 -0
  17. package/dist/execution.d.ts +194 -0
  18. package/dist/execution.js +130 -0
  19. package/dist/expressions.d.ts +16 -0
  20. package/dist/expressions.js +322 -0
  21. package/dist/git-access.d.ts +59 -0
  22. package/dist/git-access.js +106 -0
  23. package/dist/index.d.ts +9 -0
  24. package/dist/index.js +9 -0
  25. package/dist/ports.d.ts +58 -0
  26. package/dist/ports.js +256 -0
  27. package/dist/review-text.d.ts +15 -0
  28. package/dist/review-text.js +40 -0
  29. package/dist/runtime/arming-authority.d.ts +83 -0
  30. package/dist/runtime/arming-authority.js +90 -0
  31. package/dist/runtime/bindings.d.ts +25 -0
  32. package/dist/runtime/bindings.js +41 -0
  33. package/dist/runtime/capture.d.ts +18 -0
  34. package/dist/runtime/capture.js +99 -0
  35. package/dist/runtime/git-pass-contract.d.ts +63 -0
  36. package/dist/runtime/git-pass-contract.js +36 -0
  37. package/dist/runtime/git-pass-store.d.ts +32 -0
  38. package/dist/runtime/git-pass-store.js +82 -0
  39. package/dist/runtime/git-pass.d.ts +41 -0
  40. package/dist/runtime/git-pass.js +72 -0
  41. package/dist/runtime/graph-contract.d.ts +788 -0
  42. package/dist/runtime/graph-contract.js +122 -0
  43. package/dist/runtime/graph-dispatch.d.ts +31 -0
  44. package/dist/runtime/graph-dispatch.js +111 -0
  45. package/dist/runtime/graph-run-store.d.ts +79 -0
  46. package/dist/runtime/graph-run-store.js +267 -0
  47. package/dist/runtime/graph-start.d.ts +90 -0
  48. package/dist/runtime/graph-start.js +124 -0
  49. package/dist/runtime/index.d.ts +20 -0
  50. package/dist/runtime/index.js +20 -0
  51. package/dist/runtime/ports.d.ts +156 -0
  52. package/dist/runtime/ports.js +1 -0
  53. package/dist/runtime/run-authority.d.ts +60 -0
  54. package/dist/runtime/run-authority.js +145 -0
  55. package/dist/runtime/run-ceiling.d.ts +106 -0
  56. package/dist/runtime/run-ceiling.js +23 -0
  57. package/dist/runtime/run-member.d.ts +3 -0
  58. package/dist/runtime/run-member.js +12 -0
  59. package/dist/runtime/run-owner.d.ts +1650 -0
  60. package/dist/runtime/run-owner.js +513 -0
  61. package/dist/runtime/run-report.d.ts +14 -0
  62. package/dist/runtime/run-report.js +23 -0
  63. package/dist/runtime/schedules.d.ts +39 -0
  64. package/dist/runtime/schedules.js +149 -0
  65. package/dist/runtime/stored-trigger-rows.d.ts +12 -0
  66. package/dist/runtime/stored-trigger-rows.js +17 -0
  67. package/dist/runtime/trigger-owner.d.ts +594 -0
  68. package/dist/runtime/trigger-owner.js +280 -0
  69. package/dist/runtime/trigger-plans.d.ts +774 -0
  70. package/dist/runtime/trigger-plans.js +62 -0
  71. package/dist/runtime/trigger-router.d.ts +34 -0
  72. package/dist/runtime/trigger-router.js +143 -0
  73. package/dist/runtime/trigger-run-reservations.d.ts +28 -0
  74. package/dist/runtime/trigger-run-reservations.js +114 -0
  75. package/dist/schema.d.ts +1183 -0
  76. package/dist/schema.js +239 -0
  77. package/dist/triggers.d.ts +46 -0
  78. package/dist/triggers.js +75 -0
  79. package/dist/validate.d.ts +25 -0
  80. package/dist/validate.js +686 -0
  81. package/dist/workflow-id.d.ts +3 -0
  82. package/dist/workflow-id.js +3 -0
  83. package/package.json +96 -3
@@ -0,0 +1,774 @@
1
+ import * as S from "effect/Schema";
2
+ import type { WatchdogSqliteOwner } from "@fungi.computer/watchdog";
3
+ import { type ExecutionPlan } from "../index.js";
4
+ import { type ArmedWorkflowTrigger } from "./trigger-owner.js";
5
+ /** Immutable published plans survive Team owner recreation; only arm writes plans. */
6
+ export declare function createTriggerPlans(sql: WatchdogSqliteOwner["sql"]): {
7
+ put(binding: ArmedWorkflowTrigger, plan: ExecutionPlan): void;
8
+ read(binding: ArmedWorkflowTrigger): {
9
+ binding: {
10
+ installationId: string;
11
+ workflowId: string;
12
+ commit: string;
13
+ digest: string & {
14
+ readonly appReleaseKind: "Sha256Digest";
15
+ };
16
+ triggerId: string;
17
+ bindings: Record<string, string | {
18
+ kind: "team-source";
19
+ }>;
20
+ armedBy: string;
21
+ armedVia: {
22
+ kind: "connector";
23
+ agentId: string;
24
+ attachmentId: string;
25
+ attachmentVersion: number;
26
+ } | {
27
+ kind: "policy";
28
+ agentId: string;
29
+ policyRevision: string;
30
+ grantorMemberId: string;
31
+ } | null;
32
+ grantorMembershipVersion: number;
33
+ installationAuthority: {
34
+ selection: {
35
+ instanceId: string;
36
+ owner: {
37
+ kind: "installation" | "deployment";
38
+ id: string;
39
+ };
40
+ appId: string & {
41
+ readonly appReleaseKind: "AppId";
42
+ };
43
+ releaseId: string & {
44
+ readonly appReleaseKind: "ReleaseId";
45
+ };
46
+ authorityVersion: number;
47
+ };
48
+ artifactDigest: string & {
49
+ readonly appReleaseKind: "Sha256Digest";
50
+ };
51
+ };
52
+ computerId: string;
53
+ delivery?: {
54
+ readonly agentId: string;
55
+ readonly sessionId: string;
56
+ } | undefined;
57
+ nodeGitAccess?: readonly {
58
+ readonly nodeId: string;
59
+ readonly gitAccess: {
60
+ repository: {
61
+ kind: "installation";
62
+ installationId: string;
63
+ repository: string;
64
+ } | {
65
+ kind: "team-source";
66
+ repository: string;
67
+ };
68
+ branches: string[];
69
+ } | {
70
+ repository: {
71
+ kind: "installation";
72
+ installationId: string;
73
+ repository: string;
74
+ } | {
75
+ kind: "team-source";
76
+ repository: string;
77
+ };
78
+ access: "read";
79
+ };
80
+ readonly graphId?: string;
81
+ }[] | undefined;
82
+ };
83
+ plan: {
84
+ readonly planDigest: string;
85
+ readonly definition: {
86
+ readonly input: {
87
+ readonly [x: string]: S.Json;
88
+ };
89
+ readonly output: {
90
+ readonly [x: string]: {
91
+ readonly node: string;
92
+ readonly port: string;
93
+ };
94
+ };
95
+ readonly title: string;
96
+ readonly format: "fungi.workflow/v1";
97
+ readonly nodes: readonly ({
98
+ readonly id: string;
99
+ readonly kind: "code";
100
+ readonly source: string;
101
+ readonly input: {
102
+ readonly [x: string]: S.Json;
103
+ };
104
+ readonly output: {
105
+ readonly [x: string]: S.Json;
106
+ };
107
+ readonly values: {
108
+ readonly [x: string]: import("../schema.js").Mapping;
109
+ };
110
+ } | {
111
+ readonly values: {
112
+ readonly [x: string]: import("../schema.js").Mapping;
113
+ };
114
+ readonly id: string;
115
+ readonly method: string;
116
+ readonly kind: "app";
117
+ readonly app: string;
118
+ readonly methodDigest: string;
119
+ readonly gitAccess?: {
120
+ binding: string;
121
+ repository: string;
122
+ branches: string[];
123
+ } | {
124
+ binding: string;
125
+ repository: string;
126
+ access: "read";
127
+ };
128
+ readonly retry?: {
129
+ readonly attempts: number;
130
+ };
131
+ } | {
132
+ readonly show: readonly {
133
+ readonly node: string;
134
+ readonly port: string;
135
+ }[];
136
+ readonly id: string;
137
+ readonly title: string;
138
+ readonly timeout: number;
139
+ readonly kind: "review";
140
+ readonly reviewers: "runner" | "owners";
141
+ readonly detail?: string;
142
+ readonly choices?: readonly {
143
+ readonly id: string;
144
+ readonly label: string;
145
+ readonly description?: string;
146
+ }[];
147
+ } | {
148
+ readonly id: string;
149
+ readonly kind: "condition";
150
+ readonly test: import("../schema.js").Predicate;
151
+ } | {
152
+ readonly id: string;
153
+ readonly kind: "map";
154
+ readonly over: {
155
+ readonly node: string;
156
+ readonly port: string;
157
+ };
158
+ readonly body: string;
159
+ readonly concurrency: number;
160
+ readonly maxItems: number;
161
+ } | {
162
+ readonly id: string;
163
+ readonly kind: "repeat";
164
+ readonly body: string;
165
+ readonly maxRounds: number;
166
+ readonly until: import("../schema.js").Predicate;
167
+ } | {
168
+ readonly id: string;
169
+ readonly kind: "wait";
170
+ readonly for: number;
171
+ } | {
172
+ readonly id: string;
173
+ readonly kind: "transform";
174
+ readonly fields: {
175
+ readonly [x: string]: import("../schema.js").Mapping;
176
+ };
177
+ })[];
178
+ readonly edges: readonly {
179
+ readonly from: {
180
+ readonly node: string;
181
+ readonly port: string;
182
+ };
183
+ readonly to: {
184
+ readonly node: string;
185
+ readonly port: string;
186
+ };
187
+ }[];
188
+ readonly apps: {
189
+ readonly [x: string]: {
190
+ readonly appId: string;
191
+ readonly role?: string;
192
+ };
193
+ };
194
+ readonly description?: string;
195
+ readonly subgraphs?: {
196
+ readonly [x: string]: {
197
+ readonly input: {
198
+ readonly [x: string]: S.Json;
199
+ };
200
+ readonly nodes: readonly ({
201
+ readonly id: string;
202
+ readonly kind: "code";
203
+ readonly source: string;
204
+ readonly input: {
205
+ readonly [x: string]: S.Json;
206
+ };
207
+ readonly output: {
208
+ readonly [x: string]: S.Json;
209
+ };
210
+ readonly values: {
211
+ readonly [x: string]: import("../schema.js").Mapping;
212
+ };
213
+ } | {
214
+ readonly values: {
215
+ readonly [x: string]: import("../schema.js").Mapping;
216
+ };
217
+ readonly id: string;
218
+ readonly method: string;
219
+ readonly kind: "app";
220
+ readonly app: string;
221
+ readonly methodDigest: string;
222
+ readonly gitAccess?: {
223
+ binding: string;
224
+ repository: string;
225
+ branches: string[];
226
+ } | {
227
+ binding: string;
228
+ repository: string;
229
+ access: "read";
230
+ };
231
+ readonly retry?: {
232
+ readonly attempts: number;
233
+ };
234
+ } | {
235
+ readonly show: readonly {
236
+ readonly node: string;
237
+ readonly port: string;
238
+ }[];
239
+ readonly id: string;
240
+ readonly title: string;
241
+ readonly timeout: number;
242
+ readonly kind: "review";
243
+ readonly reviewers: "runner" | "owners";
244
+ readonly detail?: string;
245
+ readonly choices?: readonly {
246
+ readonly id: string;
247
+ readonly label: string;
248
+ readonly description?: string;
249
+ }[];
250
+ } | {
251
+ readonly id: string;
252
+ readonly kind: "condition";
253
+ readonly test: import("../schema.js").Predicate;
254
+ } | {
255
+ readonly id: string;
256
+ readonly kind: "map";
257
+ readonly over: {
258
+ readonly node: string;
259
+ readonly port: string;
260
+ };
261
+ readonly body: string;
262
+ readonly concurrency: number;
263
+ readonly maxItems: number;
264
+ } | {
265
+ readonly id: string;
266
+ readonly kind: "repeat";
267
+ readonly body: string;
268
+ readonly maxRounds: number;
269
+ readonly until: import("../schema.js").Predicate;
270
+ } | {
271
+ readonly id: string;
272
+ readonly kind: "wait";
273
+ readonly for: number;
274
+ } | {
275
+ readonly id: string;
276
+ readonly kind: "transform";
277
+ readonly fields: {
278
+ readonly [x: string]: import("../schema.js").Mapping;
279
+ };
280
+ })[];
281
+ readonly edges: readonly {
282
+ readonly from: {
283
+ readonly node: string;
284
+ readonly port: string;
285
+ };
286
+ readonly to: {
287
+ readonly node: string;
288
+ readonly port: string;
289
+ };
290
+ }[];
291
+ readonly output: {
292
+ readonly [x: string]: {
293
+ readonly node: string;
294
+ readonly port: string;
295
+ };
296
+ };
297
+ };
298
+ };
299
+ readonly triggers?: readonly ({
300
+ readonly id: string;
301
+ readonly on: "webhook";
302
+ readonly input?: {
303
+ readonly [x: string]: import("../schema.js").Mapping;
304
+ };
305
+ readonly title?: string;
306
+ readonly when?: import("../schema.js").Predicate;
307
+ } | {
308
+ readonly id: string;
309
+ readonly on: "schedule";
310
+ readonly cron: {
311
+ readonly expression: string;
312
+ readonly timeZone: string;
313
+ };
314
+ readonly input?: {
315
+ readonly [x: string]: import("../schema.js").Mapping;
316
+ };
317
+ readonly title?: string;
318
+ } | {
319
+ readonly id: string;
320
+ readonly on: "event";
321
+ readonly event: string;
322
+ readonly app: string;
323
+ readonly eventDigest: string;
324
+ readonly input?: {
325
+ readonly [x: string]: import("../schema.js").Mapping;
326
+ };
327
+ readonly title?: string;
328
+ readonly when?: import("../schema.js").Predicate;
329
+ readonly repository?: import("../schema.js").Mapping;
330
+ })[];
331
+ };
332
+ readonly catalog: {
333
+ readonly [x: string]: {
334
+ readonly methods: {
335
+ readonly [x: string]: {
336
+ readonly input: {
337
+ readonly [x: string]: S.Json;
338
+ };
339
+ readonly output: {
340
+ readonly [x: string]: S.Json;
341
+ };
342
+ readonly description: string;
343
+ readonly requires: readonly string[];
344
+ readonly effect: "write" | "external" | "read";
345
+ readonly approval: "none" | "queue" | "simulate";
346
+ readonly digest: string;
347
+ readonly pending?: true;
348
+ };
349
+ };
350
+ readonly events?: {
351
+ readonly [x: string]: {
352
+ readonly digest: string;
353
+ readonly description: string;
354
+ readonly payload: {
355
+ readonly [x: string]: S.Json;
356
+ };
357
+ };
358
+ };
359
+ };
360
+ };
361
+ readonly bindings: {
362
+ readonly [x: string]: {
363
+ kind: "team-source";
364
+ } | {
365
+ appId: string;
366
+ installationId: string;
367
+ };
368
+ };
369
+ readonly estimatedSteps: number;
370
+ readonly requiredBindings: readonly {
371
+ readonly input: {
372
+ readonly [x: string]: S.Json;
373
+ };
374
+ readonly output: {
375
+ readonly [x: string]: S.Json;
376
+ };
377
+ readonly method: string;
378
+ readonly description: string;
379
+ readonly requires: readonly string[];
380
+ readonly effect: "write" | "external" | "read";
381
+ readonly installationId: string;
382
+ readonly app: string;
383
+ readonly approval: "none" | "queue" | "simulate";
384
+ readonly pending?: true;
385
+ }[];
386
+ };
387
+ refusal: string | null;
388
+ } | null;
389
+ refusal(binding: ArmedWorkflowTrigger): string | null;
390
+ installation(installationId: string): {
391
+ binding: {
392
+ installationId: string;
393
+ workflowId: string;
394
+ commit: string;
395
+ digest: string & {
396
+ readonly appReleaseKind: "Sha256Digest";
397
+ };
398
+ triggerId: string;
399
+ bindings: Record<string, string | {
400
+ kind: "team-source";
401
+ }>;
402
+ armedBy: string;
403
+ armedVia: {
404
+ kind: "connector";
405
+ agentId: string;
406
+ attachmentId: string;
407
+ attachmentVersion: number;
408
+ } | {
409
+ kind: "policy";
410
+ agentId: string;
411
+ policyRevision: string;
412
+ grantorMemberId: string;
413
+ } | null;
414
+ grantorMembershipVersion: number;
415
+ installationAuthority: {
416
+ selection: {
417
+ instanceId: string;
418
+ owner: {
419
+ kind: "installation" | "deployment";
420
+ id: string;
421
+ };
422
+ appId: string & {
423
+ readonly appReleaseKind: "AppId";
424
+ };
425
+ releaseId: string & {
426
+ readonly appReleaseKind: "ReleaseId";
427
+ };
428
+ authorityVersion: number;
429
+ };
430
+ artifactDigest: string & {
431
+ readonly appReleaseKind: "Sha256Digest";
432
+ };
433
+ };
434
+ computerId: string;
435
+ delivery?: {
436
+ readonly agentId: string;
437
+ readonly sessionId: string;
438
+ } | undefined;
439
+ nodeGitAccess?: readonly {
440
+ readonly nodeId: string;
441
+ readonly gitAccess: {
442
+ repository: {
443
+ kind: "installation";
444
+ installationId: string;
445
+ repository: string;
446
+ } | {
447
+ kind: "team-source";
448
+ repository: string;
449
+ };
450
+ branches: string[];
451
+ } | {
452
+ repository: {
453
+ kind: "installation";
454
+ installationId: string;
455
+ repository: string;
456
+ } | {
457
+ kind: "team-source";
458
+ repository: string;
459
+ };
460
+ access: "read";
461
+ };
462
+ readonly graphId?: string;
463
+ }[] | undefined;
464
+ };
465
+ plan: {
466
+ readonly planDigest: string;
467
+ readonly definition: {
468
+ readonly input: {
469
+ readonly [x: string]: S.Json;
470
+ };
471
+ readonly output: {
472
+ readonly [x: string]: {
473
+ readonly node: string;
474
+ readonly port: string;
475
+ };
476
+ };
477
+ readonly title: string;
478
+ readonly format: "fungi.workflow/v1";
479
+ readonly nodes: readonly ({
480
+ readonly id: string;
481
+ readonly kind: "code";
482
+ readonly source: string;
483
+ readonly input: {
484
+ readonly [x: string]: S.Json;
485
+ };
486
+ readonly output: {
487
+ readonly [x: string]: S.Json;
488
+ };
489
+ readonly values: {
490
+ readonly [x: string]: import("../schema.js").Mapping;
491
+ };
492
+ } | {
493
+ readonly values: {
494
+ readonly [x: string]: import("../schema.js").Mapping;
495
+ };
496
+ readonly id: string;
497
+ readonly method: string;
498
+ readonly kind: "app";
499
+ readonly app: string;
500
+ readonly methodDigest: string;
501
+ readonly gitAccess?: {
502
+ binding: string;
503
+ repository: string;
504
+ branches: string[];
505
+ } | {
506
+ binding: string;
507
+ repository: string;
508
+ access: "read";
509
+ };
510
+ readonly retry?: {
511
+ readonly attempts: number;
512
+ };
513
+ } | {
514
+ readonly show: readonly {
515
+ readonly node: string;
516
+ readonly port: string;
517
+ }[];
518
+ readonly id: string;
519
+ readonly title: string;
520
+ readonly timeout: number;
521
+ readonly kind: "review";
522
+ readonly reviewers: "runner" | "owners";
523
+ readonly detail?: string;
524
+ readonly choices?: readonly {
525
+ readonly id: string;
526
+ readonly label: string;
527
+ readonly description?: string;
528
+ }[];
529
+ } | {
530
+ readonly id: string;
531
+ readonly kind: "condition";
532
+ readonly test: import("../schema.js").Predicate;
533
+ } | {
534
+ readonly id: string;
535
+ readonly kind: "map";
536
+ readonly over: {
537
+ readonly node: string;
538
+ readonly port: string;
539
+ };
540
+ readonly body: string;
541
+ readonly concurrency: number;
542
+ readonly maxItems: number;
543
+ } | {
544
+ readonly id: string;
545
+ readonly kind: "repeat";
546
+ readonly body: string;
547
+ readonly maxRounds: number;
548
+ readonly until: import("../schema.js").Predicate;
549
+ } | {
550
+ readonly id: string;
551
+ readonly kind: "wait";
552
+ readonly for: number;
553
+ } | {
554
+ readonly id: string;
555
+ readonly kind: "transform";
556
+ readonly fields: {
557
+ readonly [x: string]: import("../schema.js").Mapping;
558
+ };
559
+ })[];
560
+ readonly edges: readonly {
561
+ readonly from: {
562
+ readonly node: string;
563
+ readonly port: string;
564
+ };
565
+ readonly to: {
566
+ readonly node: string;
567
+ readonly port: string;
568
+ };
569
+ }[];
570
+ readonly apps: {
571
+ readonly [x: string]: {
572
+ readonly appId: string;
573
+ readonly role?: string;
574
+ };
575
+ };
576
+ readonly description?: string;
577
+ readonly subgraphs?: {
578
+ readonly [x: string]: {
579
+ readonly input: {
580
+ readonly [x: string]: S.Json;
581
+ };
582
+ readonly nodes: readonly ({
583
+ readonly id: string;
584
+ readonly kind: "code";
585
+ readonly source: string;
586
+ readonly input: {
587
+ readonly [x: string]: S.Json;
588
+ };
589
+ readonly output: {
590
+ readonly [x: string]: S.Json;
591
+ };
592
+ readonly values: {
593
+ readonly [x: string]: import("../schema.js").Mapping;
594
+ };
595
+ } | {
596
+ readonly values: {
597
+ readonly [x: string]: import("../schema.js").Mapping;
598
+ };
599
+ readonly id: string;
600
+ readonly method: string;
601
+ readonly kind: "app";
602
+ readonly app: string;
603
+ readonly methodDigest: string;
604
+ readonly gitAccess?: {
605
+ binding: string;
606
+ repository: string;
607
+ branches: string[];
608
+ } | {
609
+ binding: string;
610
+ repository: string;
611
+ access: "read";
612
+ };
613
+ readonly retry?: {
614
+ readonly attempts: number;
615
+ };
616
+ } | {
617
+ readonly show: readonly {
618
+ readonly node: string;
619
+ readonly port: string;
620
+ }[];
621
+ readonly id: string;
622
+ readonly title: string;
623
+ readonly timeout: number;
624
+ readonly kind: "review";
625
+ readonly reviewers: "runner" | "owners";
626
+ readonly detail?: string;
627
+ readonly choices?: readonly {
628
+ readonly id: string;
629
+ readonly label: string;
630
+ readonly description?: string;
631
+ }[];
632
+ } | {
633
+ readonly id: string;
634
+ readonly kind: "condition";
635
+ readonly test: import("../schema.js").Predicate;
636
+ } | {
637
+ readonly id: string;
638
+ readonly kind: "map";
639
+ readonly over: {
640
+ readonly node: string;
641
+ readonly port: string;
642
+ };
643
+ readonly body: string;
644
+ readonly concurrency: number;
645
+ readonly maxItems: number;
646
+ } | {
647
+ readonly id: string;
648
+ readonly kind: "repeat";
649
+ readonly body: string;
650
+ readonly maxRounds: number;
651
+ readonly until: import("../schema.js").Predicate;
652
+ } | {
653
+ readonly id: string;
654
+ readonly kind: "wait";
655
+ readonly for: number;
656
+ } | {
657
+ readonly id: string;
658
+ readonly kind: "transform";
659
+ readonly fields: {
660
+ readonly [x: string]: import("../schema.js").Mapping;
661
+ };
662
+ })[];
663
+ readonly edges: readonly {
664
+ readonly from: {
665
+ readonly node: string;
666
+ readonly port: string;
667
+ };
668
+ readonly to: {
669
+ readonly node: string;
670
+ readonly port: string;
671
+ };
672
+ }[];
673
+ readonly output: {
674
+ readonly [x: string]: {
675
+ readonly node: string;
676
+ readonly port: string;
677
+ };
678
+ };
679
+ };
680
+ };
681
+ readonly triggers?: readonly ({
682
+ readonly id: string;
683
+ readonly on: "webhook";
684
+ readonly input?: {
685
+ readonly [x: string]: import("../schema.js").Mapping;
686
+ };
687
+ readonly title?: string;
688
+ readonly when?: import("../schema.js").Predicate;
689
+ } | {
690
+ readonly id: string;
691
+ readonly on: "schedule";
692
+ readonly cron: {
693
+ readonly expression: string;
694
+ readonly timeZone: string;
695
+ };
696
+ readonly input?: {
697
+ readonly [x: string]: import("../schema.js").Mapping;
698
+ };
699
+ readonly title?: string;
700
+ } | {
701
+ readonly id: string;
702
+ readonly on: "event";
703
+ readonly event: string;
704
+ readonly app: string;
705
+ readonly eventDigest: string;
706
+ readonly input?: {
707
+ readonly [x: string]: import("../schema.js").Mapping;
708
+ };
709
+ readonly title?: string;
710
+ readonly when?: import("../schema.js").Predicate;
711
+ readonly repository?: import("../schema.js").Mapping;
712
+ })[];
713
+ };
714
+ readonly catalog: {
715
+ readonly [x: string]: {
716
+ readonly methods: {
717
+ readonly [x: string]: {
718
+ readonly input: {
719
+ readonly [x: string]: S.Json;
720
+ };
721
+ readonly output: {
722
+ readonly [x: string]: S.Json;
723
+ };
724
+ readonly description: string;
725
+ readonly requires: readonly string[];
726
+ readonly effect: "write" | "external" | "read";
727
+ readonly approval: "none" | "queue" | "simulate";
728
+ readonly digest: string;
729
+ readonly pending?: true;
730
+ };
731
+ };
732
+ readonly events?: {
733
+ readonly [x: string]: {
734
+ readonly digest: string;
735
+ readonly description: string;
736
+ readonly payload: {
737
+ readonly [x: string]: S.Json;
738
+ };
739
+ };
740
+ };
741
+ };
742
+ };
743
+ readonly bindings: {
744
+ readonly [x: string]: {
745
+ kind: "team-source";
746
+ } | {
747
+ appId: string;
748
+ installationId: string;
749
+ };
750
+ };
751
+ readonly estimatedSteps: number;
752
+ readonly requiredBindings: readonly {
753
+ readonly input: {
754
+ readonly [x: string]: S.Json;
755
+ };
756
+ readonly output: {
757
+ readonly [x: string]: S.Json;
758
+ };
759
+ readonly method: string;
760
+ readonly description: string;
761
+ readonly requires: readonly string[];
762
+ readonly effect: "write" | "external" | "read";
763
+ readonly installationId: string;
764
+ readonly app: string;
765
+ readonly approval: "none" | "queue" | "simulate";
766
+ readonly pending?: true;
767
+ }[];
768
+ };
769
+ refusal: string | null;
770
+ }[];
771
+ refuse(binding: ArmedWorkflowTrigger, reason: string): void;
772
+ remove(binding: ArmedWorkflowTrigger): void;
773
+ invalidateInstallation(installationId: string): void;
774
+ };