@relayflows/surface 2.0.42 → 2.0.44
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.
- package/AUTHORING.md +2193 -0
- package/README.md +6 -0
- package/dist/context.d.ts +14 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/memory.d.ts +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/package.json +6 -3
- package/src/context.ts +14 -0
- package/src/memory.ts +1 -1
package/AUTHORING.md
ADDED
|
@@ -0,0 +1,2193 @@
|
|
|
1
|
+
# Authoring reference
|
|
2
|
+
|
|
3
|
+
Generated by `scripts/generate-authoring-reference.mjs` from the exported types in this checkout. Do not edit.
|
|
4
|
+
Regenerate from the repository root with `npm run gen:docs --prefix packages/surface`. Install tooling first with `cd packages/surface && bun install --frozen-lockfile --ignore-scripts`; no build is required.
|
|
5
|
+
|
|
6
|
+
This file describes signatures; [SURFACE.md](https://github.com/AgentWorkforce/flows/blob/main/docs/SURFACE.md) explains semantics and [CLI.md](https://github.com/AgentWorkforce/flows/blob/main/docs/CLI.md) lists commands. The shipped `src/*.ts` declarations are the canonical source for emitted `dist/*.d.ts`. These links follow `main`; for an installed release, read the same files at this repository's `v<version>` tag.
|
|
7
|
+
|
|
8
|
+
Signatures cover this package. A type from a dependency, such as a helper client from `@relayfile/relay-helpers`, is named by its import line and not expanded; read its methods in that package's typings.
|
|
9
|
+
|
|
10
|
+
Check this reference with `bun run check:docs` in `packages/surface` after any surface, SDK, CLI or generator change. CI does not run that check yet.
|
|
11
|
+
|
|
12
|
+
## Flow declarations
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
export function flow(name: string, header?: FlowHeader): FlowHandle;
|
|
16
|
+
export function flow<Input = unknown>(name: string, body: FlowBody<Input>): FlowHandle;
|
|
17
|
+
export function flow<Input = unknown>(
|
|
18
|
+
name: string,
|
|
19
|
+
header: FlowHeader,
|
|
20
|
+
body: FlowBody<Input>,
|
|
21
|
+
): FlowHandle;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
/** Optional escalation header; the empty header is the common case. */
|
|
26
|
+
export interface FlowHeader {
|
|
27
|
+
/** Relative paths to reusable authored flows composed by this body. */
|
|
28
|
+
use?: string[];
|
|
29
|
+
/** Semver of this flow; plugins' `compat.base` ranges match against it. */
|
|
30
|
+
version?: string;
|
|
31
|
+
/** Named hook points this body calls via `f.hook`; plugins may implement them. */
|
|
32
|
+
hooks?: string[];
|
|
33
|
+
identity?: string;
|
|
34
|
+
memory?: { script?: boolean; agent?: boolean };
|
|
35
|
+
budget?: string | { tokens?: number; dollars?: number; wallclock?: string };
|
|
36
|
+
tools?: HelperTools & { relayfile?: string[]; mcp?: string[] };
|
|
37
|
+
workspace?: string;
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Supporting declaration types (not all are package-level exports):
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
type HelperTools = Partial<Record<keyof Helpers, boolean>>;
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
export type FlowBody<Input = unknown> = (f: Ctx, input: Input) => Promise<void>;
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
/** Opaque authored-flow handle. Execution stays behind the journal runtime. */
|
|
53
|
+
export interface FlowHandle {
|
|
54
|
+
readonly name: string;
|
|
55
|
+
on<Event = Record<string, unknown>>(trigger: TriggerSource, body: FlowBody<Event>): TriggeredFlowHandle;
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
export interface TriggeredFlowHandle extends FlowHandle {}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## Context
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
/**
|
|
68
|
+
* The context a journal-backed runtime injects into a flow body.
|
|
69
|
+
*
|
|
70
|
+
* This package declares the authoring contract only. It cannot construct a
|
|
71
|
+
* context or execute a step, so all effects remain behind the journal client.
|
|
72
|
+
*/
|
|
73
|
+
export interface Ctx extends Helpers {
|
|
74
|
+
/** Host-verified ports. Absent from direct/local runs and ordinary authored execution. */
|
|
75
|
+
readonly capabilities?: { readonly cloud?: CloudCapabilities };
|
|
76
|
+
readonly mcp: Readonly<Record<string, Readonly<Record<string, (args: unknown) => Step<unknown>>>>>;
|
|
77
|
+
/**
|
|
78
|
+
* Run a command. Resolves to its stdout tail, and a nonzero exit ends the
|
|
79
|
+
* flow — unless `onNonZero: 'record'` is declared, which resolves to a
|
|
80
|
+
* `RunResult` carrying the journaled exit code instead.
|
|
81
|
+
*
|
|
82
|
+
* The literal overloads come first so the default stays the common case: an
|
|
83
|
+
* omitted or `'fail'` policy keeps the `Step<string>` every existing body is
|
|
84
|
+
* written against, and only the literal `'record'` widens the result. The
|
|
85
|
+
* third is for a policy held in a variable, where neither literal applies and
|
|
86
|
+
* the author has to narrow the union themselves.
|
|
87
|
+
*/
|
|
88
|
+
run(command: string, options?: RunOptions & { onNonZero?: 'fail' }): Step<string>;
|
|
89
|
+
run(command: string, options: RunOptions & { onNonZero: 'record' }): Step<RunResult>;
|
|
90
|
+
run(command: string, options: RunOptions): Step<string | RunResult>;
|
|
91
|
+
llm(strings: TemplateStringsArray, ...values: unknown[]): Step<string>;
|
|
92
|
+
/** JSON Schema validates the value at runtime; narrow unknown in author code. */
|
|
93
|
+
llm(prompt: string, options: LlmOptions): Step<unknown>;
|
|
94
|
+
agent(name: string, options: AgentOptions): Step<AgentResult>;
|
|
95
|
+
/** Open a durable, bounded event subscription for this running body. */
|
|
96
|
+
on(source: TriggerSource, options: ActivityOptions): Activity;
|
|
97
|
+
/**
|
|
98
|
+
* Ask a person a yes/no question and park until they answer. The run
|
|
99
|
+
* parks durably (kernel `wait.human`); `flows answer <run> <wait> yes|no`
|
|
100
|
+
* (or Cloud's answer route) records the answer and the resumed body
|
|
101
|
+
* continues from this line with it. `to` names who is asked and is
|
|
102
|
+
* recorded with the question; it is not a delivery address.
|
|
103
|
+
*/
|
|
104
|
+
human(question: string, options: { to: string }): Step<boolean>;
|
|
105
|
+
/**
|
|
106
|
+
* Run a direct child declared in this flow's `use` header. The child shares
|
|
107
|
+
* this durable root, budget, worker capacity and Cloud graph; arbitrary
|
|
108
|
+
* paths and undeclared flow names are refused before the child body runs.
|
|
109
|
+
*/
|
|
110
|
+
dispatch(flow: string, input: unknown): Step<DispatchResult>;
|
|
111
|
+
/**
|
|
112
|
+
* Run every installed implementation of a named hook in lock order and
|
|
113
|
+
* AND-compose the booleans. With no implementations this is a journaled
|
|
114
|
+
* no-op that returns true. A name must appear in the flow header's `hooks`.
|
|
115
|
+
*/
|
|
116
|
+
hook(name: string, input: unknown): Step<boolean>;
|
|
117
|
+
/**
|
|
118
|
+
* End the flow with an authored verdict, and optionally say why.
|
|
119
|
+
*
|
|
120
|
+
* `options.detail` is free prose the flow already knows — "review found 1
|
|
121
|
+
* P2: `review.clean` was not created" — and it is what a reader gets instead
|
|
122
|
+
* of a generic sentence. It is journaled with the verdict, so it survives
|
|
123
|
+
* into the run report and `flows status`; the runtime redacts it and bounds
|
|
124
|
+
* it to `COMPLETION_DETAIL_MAX_CODE_POINTS` code points, truncating
|
|
125
|
+
* with a visible marker rather than refusing an over-long one.
|
|
126
|
+
*
|
|
127
|
+
* Whitespace-only is the same as saying nothing: it normalizes to absence,
|
|
128
|
+
* and the verdict reports exactly as the one-argument call does. A `detail`
|
|
129
|
+
* that is present and not a string is refused.
|
|
130
|
+
*/
|
|
131
|
+
done(reason: FlowCompletionReason, options?: DoneOptions): void;
|
|
132
|
+
cloud: CloudHelper;
|
|
133
|
+
memory: MemoryHelper;
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Options and results
|
|
138
|
+
|
|
139
|
+
### RunOptions
|
|
140
|
+
|
|
141
|
+
```ts
|
|
142
|
+
export interface RunOptions {
|
|
143
|
+
/** Command lease: milliseconds or a duration such as "5m"; default 30s, maximum 15m. */
|
|
144
|
+
timeout?: string | number;
|
|
145
|
+
/**
|
|
146
|
+
* What a nonzero exit means. `'fail'` (the default) throws, ending the flow
|
|
147
|
+
* at this line. `'record'` journals the exit code and output and resolves to
|
|
148
|
+
* a `RunResult`, so the body can hand a red check's own output to whatever is
|
|
149
|
+
* built to repair it. A timeout, a signal, or a step that never ran still
|
|
150
|
+
* throws under either policy: those produced no verdict to record.
|
|
151
|
+
*/
|
|
152
|
+
onNonZero?: 'fail' | 'record';
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### RunResult
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
/**
|
|
160
|
+
* What `f.run` resolves to under `onNonZero: 'record'`.
|
|
161
|
+
*
|
|
162
|
+
* Every field is read back from the step's journaled output envelope, never
|
|
163
|
+
* re-measured: `ok` is the recorded exit code, not a second execution. This is
|
|
164
|
+
* the point of the policy — `<command> || true` discards the code, so the
|
|
165
|
+
* branch below it can only ever be taken on faith.
|
|
166
|
+
*/
|
|
167
|
+
export interface RunResult {
|
|
168
|
+
/** Exactly `exitCode === 0`. */
|
|
169
|
+
ok: boolean;
|
|
170
|
+
/** The exit code the kernel journaled for this command. */
|
|
171
|
+
exitCode: number;
|
|
172
|
+
/**
|
|
173
|
+
* `stdout` then `stderr`, joined by a newline when both are nonempty — the
|
|
174
|
+
* string to hand an agent asked to repair what the command reported. It is a
|
|
175
|
+
* diagnostic convenience, not a reconstruction of the real interleaving: the
|
|
176
|
+
* two streams were captured separately and their true ordering is not
|
|
177
|
+
* journaled. Read `stdout` when you need to parse the command's own output.
|
|
178
|
+
*/
|
|
179
|
+
output: string;
|
|
180
|
+
/** stdout tail — the same string the default `f.run` resolves to. */
|
|
181
|
+
stdout: string;
|
|
182
|
+
/** stderr tail, where a failing check usually explains itself. */
|
|
183
|
+
stderr: string;
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### AgentOptions
|
|
188
|
+
|
|
189
|
+
```ts
|
|
190
|
+
export interface AgentOptions {
|
|
191
|
+
/** CLI time limit: milliseconds or ms/s/m duration, at most 60m.
|
|
192
|
+
* Resolves with completionReason: timeout. No default; direct transport only, maxIterations 1. */
|
|
193
|
+
timeout?: string | number;
|
|
194
|
+
task: string;
|
|
195
|
+
workspace?: string;
|
|
196
|
+
/** Validated declaration only; not currently enforced (gate 8 / #442). */
|
|
197
|
+
permissions?: PermissionsSpec;
|
|
198
|
+
cli?: string;
|
|
199
|
+
model?: string;
|
|
200
|
+
/**
|
|
201
|
+
* Directory this agent's CLI is spawned in, relative to the run root — the
|
|
202
|
+
* flow-runner's working directory, and where the CLI runs when this is
|
|
203
|
+
* absent. One flow can therefore drive agents in sibling checkouts. The
|
|
204
|
+
* path must be relative and free of `.`, `..` and empty components, and
|
|
205
|
+
* must name an existing directory inside the run root at dispatch;
|
|
206
|
+
* anything else refuses the step instead of running it somewhere else.
|
|
207
|
+
* An absolute path is accepted when it names a directory inside the run
|
|
208
|
+
* root — it lowers to the same relative declaration — and refused when it
|
|
209
|
+
* escapes. `artifacts` are reported relative to this directory. It is a
|
|
210
|
+
* declaration of where to start, not a sandbox. Not supported with
|
|
211
|
+
* `transport: 'relay'`. See docs/SURFACE.md.
|
|
212
|
+
*/
|
|
213
|
+
cwd?: string;
|
|
214
|
+
/**
|
|
215
|
+
* Continue a CLI session instead of starting a new one: an earlier step's
|
|
216
|
+
* `AgentResult.sessionId`. Claude and Codex resume it from their own
|
|
217
|
+
* session store (`~/.claude`, `~/.codex`), so it works only where that
|
|
218
|
+
* store survives — such as a sandbox reused for the same pull request.
|
|
219
|
+
* Other CLIs refuse the step. Not supported with `transport: 'relay'`.
|
|
220
|
+
*/
|
|
221
|
+
resume?: string;
|
|
222
|
+
/**
|
|
223
|
+
* Dispatch transport (flows#385). `'direct'` (default) spawns the CLI as a
|
|
224
|
+
* local subprocess. `'relay'` posts to agent-relay so the agent registers
|
|
225
|
+
* as a first-class workspace participant that DMs can steer.
|
|
226
|
+
*/
|
|
227
|
+
transport?: 'direct' | 'relay';
|
|
228
|
+
/** Semantic executions allowed when verification rejects output. Default 1. */
|
|
229
|
+
maxIterations?: number;
|
|
230
|
+
/** Additional attempts allowed only after classified transport loss. Default 1. */
|
|
231
|
+
transportRetries?: number;
|
|
232
|
+
/** Appendix A workspace recovery for a transport retry. Default `reset`. */
|
|
233
|
+
recoveryMode?: 'reset' | 'inspect' | 'manual';
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### PermissionsSpec
|
|
238
|
+
|
|
239
|
+
```ts
|
|
240
|
+
/** Per-step declarations: validated and recorded, not currently enforced (gate 8 / #442).
|
|
241
|
+
* Separate from flow-wide FlowHeader.workspace / tools.fs scopes.
|
|
242
|
+
*/
|
|
243
|
+
export interface PermissionsSpec {
|
|
244
|
+
fileGlobs?: string[];
|
|
245
|
+
networkAllowlist?: string[];
|
|
246
|
+
accessPreset?: 'readonly' | 'readwrite';
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### AgentResult
|
|
251
|
+
|
|
252
|
+
```ts
|
|
253
|
+
export interface AgentResult {
|
|
254
|
+
completionReason: 'success' | 'timeout';
|
|
255
|
+
summary: string;
|
|
256
|
+
/**
|
|
257
|
+
* Files the agent created or changed under its working directory,
|
|
258
|
+
* cwd-relative POSIX paths, sorted — as journaled by the worker that spawned
|
|
259
|
+
* the CLI on the step's `step.completed`, never re-measured later. Empty
|
|
260
|
+
* for the relay transport (the agent ran elsewhere) and for an agent whose
|
|
261
|
+
* final message is a JSON object (that object is the output, unmodified).
|
|
262
|
+
*/
|
|
263
|
+
artifacts: string[];
|
|
264
|
+
/**
|
|
265
|
+
* The CLI session this step ran as (Claude's session id, Codex's thread
|
|
266
|
+
* id), when the CLI reported one. Pass it as a later step's `resume` to
|
|
267
|
+
* continue the same conversation.
|
|
268
|
+
*/
|
|
269
|
+
sessionId?: string;
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### LlmOptions
|
|
274
|
+
|
|
275
|
+
```ts
|
|
276
|
+
export interface LlmOptions {
|
|
277
|
+
/** JSON Schema checked before the result is accepted by the journal. */
|
|
278
|
+
output: Record<string, unknown>;
|
|
279
|
+
cli?: string;
|
|
280
|
+
model?: string;
|
|
281
|
+
}
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### DispatchResult
|
|
285
|
+
|
|
286
|
+
```ts
|
|
287
|
+
/** Durable receipt returned after a statically declared child flow succeeds. */
|
|
288
|
+
export interface DispatchResult {
|
|
289
|
+
/** The child flow's declared name. */
|
|
290
|
+
name: string;
|
|
291
|
+
/** `success`; every other child verdict rejects the dispatch. */
|
|
292
|
+
completionReason: 'success';
|
|
293
|
+
/** The child's journaled completion detail, when it supplied one. */
|
|
294
|
+
completionDetail?: string;
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### DoneOptions
|
|
299
|
+
|
|
300
|
+
```ts
|
|
301
|
+
/** The optional second argument to {@link Ctx.done}. */
|
|
302
|
+
export interface DoneOptions {
|
|
303
|
+
/** Why the flow reached this verdict; redacted, bounded, and journaled. */
|
|
304
|
+
detail?: string;
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
## Completion vocabularies
|
|
309
|
+
|
|
310
|
+
Authored `f.done` verdicts, kernel run outcomes and step outcomes are distinct closed vocabularies.
|
|
311
|
+
|
|
312
|
+
| Vocabulary | Type | Used for | Values |
|
|
313
|
+
| --- | --- | --- | --- |
|
|
314
|
+
| `FLOW_COMPLETION_REASONS` | `FlowCompletionReason` | f.done | `success`, `step_failed`, `canceled`, `budget_exceeded`, `needs_human`, `declined` |
|
|
315
|
+
| `RUN_COMPLETION_REASONS` | `RunCompletionReason` | Kernel run completion | `success`, `step_failed`, `canceled`, `budget_exceeded` |
|
|
316
|
+
| `COMPLETION_REASONS` | `CompletionReason` | Journal step completion | `success`, `verification_failed`, `retries_exhausted`, `lease_expired`, `crashed`, `timeout`, `worker_error`, `budget_exceeded`, `canceled` |
|
|
317
|
+
|
|
318
|
+
## Gates
|
|
319
|
+
|
|
320
|
+
```ts
|
|
321
|
+
/** A journal-backed step result with its postfix verification gate. */
|
|
322
|
+
export interface Step<T> extends PromiseLike<T> {
|
|
323
|
+
/**
|
|
324
|
+
* Attach a named data gate to this step's `verification:` field. The gate is
|
|
325
|
+
* lowered by the SDK into a slice-P journal-honest check that survives
|
|
326
|
+
* replay — its shape is data, not code, so covenant 1 (journal-as-truth)
|
|
327
|
+
* holds. See `packages/sdk/src/named-gates.ts` for the enforcement.
|
|
328
|
+
*/
|
|
329
|
+
gate(config: NamedGate): Step<T>;
|
|
330
|
+
/**
|
|
331
|
+
* Predicate gate: author code, run once by the runtime after the step
|
|
332
|
+
* completes, on the value the journal handed back. The closure itself is
|
|
333
|
+
* never serialized; its VERDICT is journaled as a lowered `<step>.gate`
|
|
334
|
+
* deterministic step that succeeds or fails, so resume and replay read the
|
|
335
|
+
* recorded verdict and never re-run the function. A false verdict fails the
|
|
336
|
+
* run as `gate_failed`, carrying `because`. `flows check` cannot prove a
|
|
337
|
+
* predicate (docs/SURFACE.md §6); use a `NamedGate` when the check must be
|
|
338
|
+
* inspectable before execution. One `.gate()` per step.
|
|
339
|
+
*/
|
|
340
|
+
gate(predicate: (value: T) => boolean, because?: string): Step<T>;
|
|
341
|
+
}
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
Named gate members are shown even when they are not individually exported from the package.
|
|
345
|
+
|
|
346
|
+
```ts
|
|
347
|
+
/**
|
|
348
|
+
* Slice-P named data gates the authored surface can attach postfix via
|
|
349
|
+
* `.gate(config)`. The SDK's named-gate lowering enforces these exactly (see
|
|
350
|
+
* `packages/sdk/src/named-gates.ts`); the shapes here are the surface-visible
|
|
351
|
+
* subset kept in sync with `NamedDataGate` in the SDK spec.
|
|
352
|
+
*/
|
|
353
|
+
export type NamedGate =
|
|
354
|
+
| ReferencesInputNamedGate
|
|
355
|
+
| SubprocessNamedGate
|
|
356
|
+
| WordCountBoundsNamedGate
|
|
357
|
+
| RegexMatchNamedGate
|
|
358
|
+
| ArtifactExistsNamedGate;
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
```ts
|
|
362
|
+
export interface ReferencesInputNamedGate {
|
|
363
|
+
type: 'references_input';
|
|
364
|
+
input_key: string;
|
|
365
|
+
in_output_at?: Array<string | number>;
|
|
366
|
+
}
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
```ts
|
|
370
|
+
export interface SubprocessNamedGate {
|
|
371
|
+
type: 'subprocess_gate';
|
|
372
|
+
command: string;
|
|
373
|
+
from_output?: Array<string | number>;
|
|
374
|
+
}
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
```ts
|
|
378
|
+
export interface WordCountBoundsNamedGate {
|
|
379
|
+
type: 'word_count_bounds';
|
|
380
|
+
min?: number;
|
|
381
|
+
max?: number;
|
|
382
|
+
}
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
```ts
|
|
386
|
+
export interface RegexMatchNamedGate {
|
|
387
|
+
type: 'regex_match';
|
|
388
|
+
pattern: string;
|
|
389
|
+
/** Only i, m, and s; evaluated by a non-backtracking RE2 engine. */
|
|
390
|
+
flags?: string;
|
|
391
|
+
in_output_at?: Array<string | number>;
|
|
392
|
+
}
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
```ts
|
|
396
|
+
/**
|
|
397
|
+
* Passes when the step's journaled `artifacts` lists `path` — a file the
|
|
398
|
+
* agent's worker measured as created or changed under its working directory.
|
|
399
|
+
* The check reads the journal, so replay and resume see the verdict that was
|
|
400
|
+
* recorded, never a fresh look at the disk.
|
|
401
|
+
*/
|
|
402
|
+
export interface ArtifactExistsNamedGate {
|
|
403
|
+
type: 'artifact_exists';
|
|
404
|
+
/** Working-directory-relative POSIX path, e.g. `review/security.md`. */
|
|
405
|
+
path: string;
|
|
406
|
+
}
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
The kernel verification fields are `exit_code`, `output_contains` and `json_schema`. Named gates are data lowered by the SDK. Only a named gate is inspectable before execution; a predicate gate records its verdict at runtime. See [the gate contract](https://github.com/AgentWorkforce/flows/blob/main/docs/SURFACE.md#6-the-gate-contract-and-remaining-open-surface-questions).
|
|
410
|
+
|
|
411
|
+
## Helper namespaces
|
|
412
|
+
|
|
413
|
+
`Ctx extends Helpers` exposes 50 namespaces. `f.mcp` is an additional context member. `f.slack` is included in Helpers; see [Slack semantics](https://github.com/AgentWorkforce/flows/blob/main/docs/SLACK-HELPER.md). Resource counts describe the pinned adapter catalog, not bespoke helper methods or an assurance of credentials.
|
|
414
|
+
|
|
415
|
+
| Namespace | Type | Pinned adapter resources |
|
|
416
|
+
| --- | --- | --- |
|
|
417
|
+
| `f.airtable` | `AirtableHelper` | None in pinned catalog |
|
|
418
|
+
| `f.asana` | `AsanaHelper` | 3 |
|
|
419
|
+
| `f.azureBlob` | `AzureBlobHelper` | 2 |
|
|
420
|
+
| `f.box` | `BoxHelper` | 2 |
|
|
421
|
+
| `f.calendly` | `CalendlyHelper` | 3 |
|
|
422
|
+
| `f.clickup` | `ClickupHelper` | 4 |
|
|
423
|
+
| `f.cloudflare` | `CloudflareHelper` | 13 |
|
|
424
|
+
| `f.confluence` | `ConfluenceHelper` | 1 |
|
|
425
|
+
| `f.daytona` | `DaytonaHelper` | 1 |
|
|
426
|
+
| `f.dockerHub` | `DockerHubHelper` | None in pinned catalog |
|
|
427
|
+
| `f.dropbox` | `DropboxHelper` | 5 |
|
|
428
|
+
| `f.fathom` | `FathomHelper` | None in pinned catalog |
|
|
429
|
+
| `f.gcp` | `GcpHelper` | None in pinned catalog |
|
|
430
|
+
| `f.gcs` | `GcsHelper` | 2 |
|
|
431
|
+
| `f.github` | `GithubHelper` | 8 |
|
|
432
|
+
| `f.gitlab` | `GitlabHelper` | 7 |
|
|
433
|
+
| `f.gmail` | `GmailHelper` | 3 |
|
|
434
|
+
| `f.googleCalendar` | `GoogleCalendarHelper` | 1 |
|
|
435
|
+
| `f.googleDrive` | `GoogleDriveHelper` | 2 |
|
|
436
|
+
| `f.granola` | `GranolaHelper` | 2 |
|
|
437
|
+
| `f.hubspot` | `HubspotHelper` | 4 |
|
|
438
|
+
| `f.intercom` | `IntercomHelper` | 3 |
|
|
439
|
+
| `f.jira` | `JiraHelper` | 4 |
|
|
440
|
+
| `f.linear` | `LinearHelper` | 6 |
|
|
441
|
+
| `f.mailgun` | `MailgunHelper` | 3 |
|
|
442
|
+
| `f.mixpanel` | `MixpanelHelper` | 3 |
|
|
443
|
+
| `f.neon` | `NeonHelper` | None in pinned catalog |
|
|
444
|
+
| `f.notion` | `NotionHelper` | 4 |
|
|
445
|
+
| `f.onedrive` | `OnedriveHelper` | 2 |
|
|
446
|
+
| `f.pipedrive` | `PipedriveHelper` | 4 |
|
|
447
|
+
| `f.postgres` | `PostgresHelper` | 2 |
|
|
448
|
+
| `f.posthog` | `PosthogHelper` | None in pinned catalog |
|
|
449
|
+
| `f.ramp` | `RampHelper` | 19 |
|
|
450
|
+
| `f.recall` | `RecallHelper` | 1 |
|
|
451
|
+
| `f.reddit` | `RedditHelper` | 2 |
|
|
452
|
+
| `f.redis` | `RedisHelper` | 2 |
|
|
453
|
+
| `f.s3` | `S3Helper` | 2 |
|
|
454
|
+
| `f.salesforce` | `SalesforceHelper` | 5 |
|
|
455
|
+
| `f.segment` | `SegmentHelper` | None in pinned catalog |
|
|
456
|
+
| `f.sendgrid` | `SendgridHelper` | 2 |
|
|
457
|
+
| `f.sharepoint` | `SharepointHelper` | 2 |
|
|
458
|
+
| `f.shopify` | `ShopifyHelper` | None in pinned catalog |
|
|
459
|
+
| `f.shortcut` | `ShortcutHelper` | 9 |
|
|
460
|
+
| `f.slack` | `SlackHelper` | 4 |
|
|
461
|
+
| `f.stripe` | `StripeHelper` | 0 |
|
|
462
|
+
| `f.teams` | `TeamsHelper` | 2 |
|
|
463
|
+
| `f.telegram` | `TelegramHelper` | 6 |
|
|
464
|
+
| `f.webhookServer` | `WebhookServerHelper` | None in pinned catalog |
|
|
465
|
+
| `f.x` | `XHelper` | None in pinned catalog |
|
|
466
|
+
| `f.zendesk` | `ZendeskHelper` | 3 |
|
|
467
|
+
|
|
468
|
+
## Triggers
|
|
469
|
+
|
|
470
|
+
Sources for `flow(name, { on }, body)` and `f.on(source, options)`.
|
|
471
|
+
|
|
472
|
+
```ts
|
|
473
|
+
/** Plain, immutable data. Constructing a source opens no receiver. */
|
|
474
|
+
export function webhook(name: string, filter?: WebhookFilter): WebhookTriggerSource;
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
```ts
|
|
478
|
+
export const schedule: Readonly<{
|
|
479
|
+
/** A five-field cron, evaluated in `tz` (default UTC). */
|
|
480
|
+
cron(expression: string, options?: ScheduleCronOptions): ScheduleTriggerSource;
|
|
481
|
+
/** A fixed interval: `every("5m")`, `every("2h")`. Units s, m, h, d. */
|
|
482
|
+
every(interval: string): ScheduleTriggerSource;
|
|
483
|
+
}>;
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### Provider triggers
|
|
487
|
+
|
|
488
|
+
Exported from the package root (`import { github } from '@relayflows/surface'`). Each call returns `ProviderTriggerSource<Provider, Event>` for the listed provider and event; pass it to `flow(...).on(...)` or `f.on(...)`.
|
|
489
|
+
|
|
490
|
+
| Call | Provider | Event |
|
|
491
|
+
| --- | --- | --- |
|
|
492
|
+
| `airtable.base_create(filter?: WebhookFilter)` | `airtable` | `base.create` |
|
|
493
|
+
| `airtable.base_delete(filter?: WebhookFilter)` | `airtable` | `base.delete` |
|
|
494
|
+
| `airtable.base_update(filter?: WebhookFilter)` | `airtable` | `base.update` |
|
|
495
|
+
| `airtable.record_create(filter?: WebhookFilter)` | `airtable` | `record.create` |
|
|
496
|
+
| `airtable.record_delete(filter?: WebhookFilter)` | `airtable` | `record.delete` |
|
|
497
|
+
| `airtable.record_update(filter?: WebhookFilter)` | `airtable` | `record.update` |
|
|
498
|
+
| `airtable.table_create(filter?: WebhookFilter)` | `airtable` | `table.create` |
|
|
499
|
+
| `airtable.table_delete(filter?: WebhookFilter)` | `airtable` | `table.delete` |
|
|
500
|
+
| `airtable.table_update(filter?: WebhookFilter)` | `airtable` | `table.update` |
|
|
501
|
+
| `asana.project_added(filter?: WebhookFilter)` | `asana` | `project.added` |
|
|
502
|
+
| `asana.project_changed(filter?: WebhookFilter)` | `asana` | `project.changed` |
|
|
503
|
+
| `asana.project_deleted(filter?: WebhookFilter)` | `asana` | `project.deleted` |
|
|
504
|
+
| `asana.project_removed(filter?: WebhookFilter)` | `asana` | `project.removed` |
|
|
505
|
+
| `asana.section_added(filter?: WebhookFilter)` | `asana` | `section.added` |
|
|
506
|
+
| `asana.section_changed(filter?: WebhookFilter)` | `asana` | `section.changed` |
|
|
507
|
+
| `asana.section_deleted(filter?: WebhookFilter)` | `asana` | `section.deleted` |
|
|
508
|
+
| `asana.section_removed(filter?: WebhookFilter)` | `asana` | `section.removed` |
|
|
509
|
+
| `asana.task_added(filter?: WebhookFilter)` | `asana` | `task.added` |
|
|
510
|
+
| `asana.task_changed(filter?: WebhookFilter)` | `asana` | `task.changed` |
|
|
511
|
+
| `asana.task_completed(filter?: WebhookFilter)` | `asana` | `task.completed` |
|
|
512
|
+
| `asana.task_deleted(filter?: WebhookFilter)` | `asana` | `task.deleted` |
|
|
513
|
+
| `asana.task_removed(filter?: WebhookFilter)` | `asana` | `task.removed` |
|
|
514
|
+
| `asana.workspace_added(filter?: WebhookFilter)` | `asana` | `workspace.added` |
|
|
515
|
+
| `asana.workspace_changed(filter?: WebhookFilter)` | `asana` | `workspace.changed` |
|
|
516
|
+
| `asana.workspace_deleted(filter?: WebhookFilter)` | `asana` | `workspace.deleted` |
|
|
517
|
+
| `asana.workspace_removed(filter?: WebhookFilter)` | `asana` | `workspace.removed` |
|
|
518
|
+
| `azure_blob.file_created(filter?: WebhookFilter)` | `azure-blob` | `file.created` |
|
|
519
|
+
| `azure_blob.file_deleted(filter?: WebhookFilter)` | `azure-blob` | `file.deleted` |
|
|
520
|
+
| `azure_blob.file_updated(filter?: WebhookFilter)` | `azure-blob` | `file.updated` |
|
|
521
|
+
| `box.file_created(filter?: WebhookFilter)` | `box` | `file.created` |
|
|
522
|
+
| `box.file_deleted(filter?: WebhookFilter)` | `box` | `file.deleted` |
|
|
523
|
+
| `box.file_updated(filter?: WebhookFilter)` | `box` | `file.updated` |
|
|
524
|
+
| `calendly.event_type_canceled(filter?: WebhookFilter)` | `calendly` | `event_type.canceled` |
|
|
525
|
+
| `calendly.event_type_created(filter?: WebhookFilter)` | `calendly` | `event_type.created` |
|
|
526
|
+
| `calendly.event_type_deleted(filter?: WebhookFilter)` | `calendly` | `event_type.deleted` |
|
|
527
|
+
| `calendly.event_type_updated(filter?: WebhookFilter)` | `calendly` | `event_type.updated` |
|
|
528
|
+
| `calendly.invitee_canceled(filter?: WebhookFilter)` | `calendly` | `invitee.canceled` |
|
|
529
|
+
| `calendly.invitee_created(filter?: WebhookFilter)` | `calendly` | `invitee.created` |
|
|
530
|
+
| `calendly.invitee_deleted(filter?: WebhookFilter)` | `calendly` | `invitee.deleted` |
|
|
531
|
+
| `calendly.invitee_updated(filter?: WebhookFilter)` | `calendly` | `invitee.updated` |
|
|
532
|
+
| `calendly.scheduled_event_canceled(filter?: WebhookFilter)` | `calendly` | `scheduled_event.canceled` |
|
|
533
|
+
| `calendly.scheduled_event_created(filter?: WebhookFilter)` | `calendly` | `scheduled_event.created` |
|
|
534
|
+
| `calendly.scheduled_event_deleted(filter?: WebhookFilter)` | `calendly` | `scheduled_event.deleted` |
|
|
535
|
+
| `calendly.scheduled_event_updated(filter?: WebhookFilter)` | `calendly` | `scheduled_event.updated` |
|
|
536
|
+
| `clickup.folder_created(filter?: WebhookFilter)` | `clickup` | `folder.created` |
|
|
537
|
+
| `clickup.folder_deleted(filter?: WebhookFilter)` | `clickup` | `folder.deleted` |
|
|
538
|
+
| `clickup.folder_updated(filter?: WebhookFilter)` | `clickup` | `folder.updated` |
|
|
539
|
+
| `clickup.list_created(filter?: WebhookFilter)` | `clickup` | `list.created` |
|
|
540
|
+
| `clickup.list_deleted(filter?: WebhookFilter)` | `clickup` | `list.deleted` |
|
|
541
|
+
| `clickup.list_updated(filter?: WebhookFilter)` | `clickup` | `list.updated` |
|
|
542
|
+
| `clickup.space_created(filter?: WebhookFilter)` | `clickup` | `space.created` |
|
|
543
|
+
| `clickup.space_deleted(filter?: WebhookFilter)` | `clickup` | `space.deleted` |
|
|
544
|
+
| `clickup.space_updated(filter?: WebhookFilter)` | `clickup` | `space.updated` |
|
|
545
|
+
| `clickup.task_created(filter?: WebhookFilter)` | `clickup` | `task.created` |
|
|
546
|
+
| `clickup.task_deleted(filter?: WebhookFilter)` | `clickup` | `task.deleted` |
|
|
547
|
+
| `clickup.task_updated(filter?: WebhookFilter)` | `clickup` | `task.updated` |
|
|
548
|
+
| `cloudflare.access_custom_certificate_expiration_type(filter?: WebhookFilter)` | `cloudflare` | `access_custom_certificate_expiration_type` |
|
|
549
|
+
| `cloudflare.advanced_http_alert_error(filter?: WebhookFilter)` | `cloudflare` | `advanced_http_alert_error` |
|
|
550
|
+
| `cloudflare.billing_usage_alert(filter?: WebhookFilter)` | `cloudflare` | `billing_usage_alert` |
|
|
551
|
+
| `cloudflare.dedicated_ssl_certificate_event_type(filter?: WebhookFilter)` | `cloudflare` | `dedicated_ssl_certificate_event_type` |
|
|
552
|
+
| `cloudflare.health_check_status_notification(filter?: WebhookFilter)` | `cloudflare` | `health_check_status_notification` |
|
|
553
|
+
| `cloudflare.http_alert_origin_error(filter?: WebhookFilter)` | `cloudflare` | `http_alert_origin_error` |
|
|
554
|
+
| `cloudflare.workers_alert(filter?: WebhookFilter)` | `cloudflare` | `workers_alert` |
|
|
555
|
+
| `cloudflare.workers_observability_alert(filter?: WebhookFilter)` | `cloudflare` | `workers_observability_alert` |
|
|
556
|
+
| `confluence.page_created(filter?: WebhookFilter)` | `confluence` | `page.created` |
|
|
557
|
+
| `confluence.page_deleted(filter?: WebhookFilter)` | `confluence` | `page.deleted` |
|
|
558
|
+
| `confluence.page_updated(filter?: WebhookFilter)` | `confluence` | `page.updated` |
|
|
559
|
+
| `confluence.space_created(filter?: WebhookFilter)` | `confluence` | `space.created` |
|
|
560
|
+
| `confluence.space_deleted(filter?: WebhookFilter)` | `confluence` | `space.deleted` |
|
|
561
|
+
| `confluence.space_updated(filter?: WebhookFilter)` | `confluence` | `space.updated` |
|
|
562
|
+
| `daytona.sandbox_created(filter?: WebhookFilter)` | `daytona` | `sandbox.created` |
|
|
563
|
+
| `daytona.sandbox_state_updated(filter?: WebhookFilter)` | `daytona` | `sandbox.state.updated` |
|
|
564
|
+
| `daytona.snapshot_created(filter?: WebhookFilter)` | `daytona` | `snapshot.created` |
|
|
565
|
+
| `daytona.snapshot_removed(filter?: WebhookFilter)` | `daytona` | `snapshot.removed` |
|
|
566
|
+
| `daytona.snapshot_state_updated(filter?: WebhookFilter)` | `daytona` | `snapshot.state.updated` |
|
|
567
|
+
| `daytona.volume_created(filter?: WebhookFilter)` | `daytona` | `volume.created` |
|
|
568
|
+
| `daytona.volume_state_updated(filter?: WebhookFilter)` | `daytona` | `volume.state.updated` |
|
|
569
|
+
| `docker_hub.push(filter?: WebhookFilter)` | `docker-hub` | `push` |
|
|
570
|
+
| `dropbox.file_changed(filter?: WebhookFilter)` | `dropbox` | `file.changed` |
|
|
571
|
+
| `fathom.new_meeting_content_ready(filter?: WebhookFilter)` | `fathom` | `new-meeting-content-ready` |
|
|
572
|
+
| `gcp.billing_budget_alert(filter?: WebhookFilter)` | `gcp` | `billing.budget.alert` |
|
|
573
|
+
| `gcp.cloud_run_service_created(filter?: WebhookFilter)` | `gcp` | `cloud-run.service.created` |
|
|
574
|
+
| `gcp.cloud_run_service_deleted(filter?: WebhookFilter)` | `gcp` | `cloud-run.service.deleted` |
|
|
575
|
+
| `gcp.cloud_run_service_updated(filter?: WebhookFilter)` | `gcp` | `cloud-run.service.updated` |
|
|
576
|
+
| `gcp.error_reporting_event_logged(filter?: WebhookFilter)` | `gcp` | `error-reporting.event.logged` |
|
|
577
|
+
| `gcp.error_reporting_group_opened(filter?: WebhookFilter)` | `gcp` | `error-reporting.group.opened` |
|
|
578
|
+
| `gcp.error_reporting_group_reopened(filter?: WebhookFilter)` | `gcp` | `error-reporting.group.reopened` |
|
|
579
|
+
| `gcp.monitoring_incident_closed(filter?: WebhookFilter)` | `gcp` | `monitoring.incident.closed` |
|
|
580
|
+
| `gcp.monitoring_incident_open(filter?: WebhookFilter)` | `gcp` | `monitoring.incident.open` |
|
|
581
|
+
| `gcs.file_created(filter?: WebhookFilter)` | `gcs` | `file.created` |
|
|
582
|
+
| `gcs.file_deleted(filter?: WebhookFilter)` | `gcs` | `file.deleted` |
|
|
583
|
+
| `gcs.file_updated(filter?: WebhookFilter)` | `gcs` | `file.updated` |
|
|
584
|
+
| `github.check_run(action?: string)` | `github` | `check_run` |
|
|
585
|
+
| `github.check_run_completed(filter?: WebhookFilter)` | `github` | `check_run.completed` |
|
|
586
|
+
| `github.deployment_status_created(filter?: WebhookFilter)` | `github` | `deployment_status.created` |
|
|
587
|
+
| `github.issue_comment(action?: string)` | `github` | `issue_comment` |
|
|
588
|
+
| `github.issue_comment_created(filter?: WebhookFilter)` | `github` | `issue_comment.created` |
|
|
589
|
+
| `github.issues(filter?: WebhookFilter)` | `github` | `issues` |
|
|
590
|
+
| `github.issues_edited(filter?: WebhookFilter)` | `github` | `issues.edited` |
|
|
591
|
+
| `github.issues_labeled(filter?: WebhookFilter)` | `github` | `issues.labeled` |
|
|
592
|
+
| `github.issues_reopened(filter?: WebhookFilter)` | `github` | `issues.reopened` |
|
|
593
|
+
| `github.issues_unlabeled(filter?: WebhookFilter)` | `github` | `issues.unlabeled` |
|
|
594
|
+
| `github.pull_request(action?: string)` | `github` | `pull_request` |
|
|
595
|
+
| `github.pull_request_review(filter?: WebhookFilter)` | `github` | `pull_request_review` |
|
|
596
|
+
| `github.pull_request_review_comment_created(filter?: WebhookFilter)` | `github` | `pull_request_review_comment.created` |
|
|
597
|
+
| `github.pull_request_review_thread_resolved(filter?: WebhookFilter)` | `github` | `pull_request_review_thread.resolved` |
|
|
598
|
+
| `github.pull_request_review_dismissed(filter?: WebhookFilter)` | `github` | `pull_request_review.dismissed` |
|
|
599
|
+
| `github.pull_request_review_edited(filter?: WebhookFilter)` | `github` | `pull_request_review.edited` |
|
|
600
|
+
| `github.pull_request_review_submitted(filter?: WebhookFilter)` | `github` | `pull_request_review.submitted` |
|
|
601
|
+
| `github.pull_request_edited(filter?: WebhookFilter)` | `github` | `pull_request.edited` |
|
|
602
|
+
| `github.pull_request_reopened(filter?: WebhookFilter)` | `github` | `pull_request.reopened` |
|
|
603
|
+
| `github.push(filter?: WebhookFilter)` | `github` | `push` |
|
|
604
|
+
| `github.status(filter?: WebhookFilter)` | `github` | `status` |
|
|
605
|
+
| `github.issues_closed(filter?: WebhookFilter)` | `github` | `issues.closed` |
|
|
606
|
+
| `github.issues_opened(filter?: WebhookFilter)` | `github` | `issues.opened` |
|
|
607
|
+
| `github.pull_request_closed(filter?: WebhookFilter)` | `github` | `pull_request.closed` |
|
|
608
|
+
| `github.pull_request_labeled(filter?: WebhookFilter)` | `github` | `pull_request.labeled` |
|
|
609
|
+
| `github.pull_request_opened(filter?: WebhookFilter)` | `github` | `pull_request.opened` |
|
|
610
|
+
| `github.pull_request_ready_for_review(filter?: WebhookFilter)` | `github` | `pull_request.ready_for_review` |
|
|
611
|
+
| `github.pull_request_synchronize(filter?: WebhookFilter)` | `github` | `pull_request.synchronize` |
|
|
612
|
+
| `github.pull_request_unlabeled(filter?: WebhookFilter)` | `github` | `pull_request.unlabeled` |
|
|
613
|
+
| `gitlab.build(filter?: WebhookFilter)` | `gitlab` | `build` |
|
|
614
|
+
| `gitlab.deployment(filter?: WebhookFilter)` | `gitlab` | `deployment` |
|
|
615
|
+
| `gitlab.issue(filter?: WebhookFilter)` | `gitlab` | `issue` |
|
|
616
|
+
| `gitlab.merge_request(filter?: WebhookFilter)` | `gitlab` | `merge_request` |
|
|
617
|
+
| `gitlab.note(filter?: WebhookFilter)` | `gitlab` | `note` |
|
|
618
|
+
| `gitlab.pipeline(filter?: WebhookFilter)` | `gitlab` | `pipeline` |
|
|
619
|
+
| `gitlab.push(filter?: WebhookFilter)` | `gitlab` | `push` |
|
|
620
|
+
| `gitlab.tag_push(filter?: WebhookFilter)` | `gitlab` | `tag_push` |
|
|
621
|
+
| `gitlab.build_canceled(filter?: WebhookFilter)` | `gitlab` | `build.canceled` |
|
|
622
|
+
| `gitlab.build_created(filter?: WebhookFilter)` | `gitlab` | `build.created` |
|
|
623
|
+
| `gitlab.build_failed(filter?: WebhookFilter)` | `gitlab` | `build.failed` |
|
|
624
|
+
| `gitlab.build_manual(filter?: WebhookFilter)` | `gitlab` | `build.manual` |
|
|
625
|
+
| `gitlab.build_pending(filter?: WebhookFilter)` | `gitlab` | `build.pending` |
|
|
626
|
+
| `gitlab.build_running(filter?: WebhookFilter)` | `gitlab` | `build.running` |
|
|
627
|
+
| `gitlab.build_skipped(filter?: WebhookFilter)` | `gitlab` | `build.skipped` |
|
|
628
|
+
| `gitlab.build_success(filter?: WebhookFilter)` | `gitlab` | `build.success` |
|
|
629
|
+
| `gitlab.deployment_canceled(filter?: WebhookFilter)` | `gitlab` | `deployment.canceled` |
|
|
630
|
+
| `gitlab.deployment_created(filter?: WebhookFilter)` | `gitlab` | `deployment.created` |
|
|
631
|
+
| `gitlab.deployment_failed(filter?: WebhookFilter)` | `gitlab` | `deployment.failed` |
|
|
632
|
+
| `gitlab.deployment_running(filter?: WebhookFilter)` | `gitlab` | `deployment.running` |
|
|
633
|
+
| `gitlab.deployment_success(filter?: WebhookFilter)` | `gitlab` | `deployment.success` |
|
|
634
|
+
| `gitlab.issue_close(filter?: WebhookFilter)` | `gitlab` | `issue.close` |
|
|
635
|
+
| `gitlab.issue_open(filter?: WebhookFilter)` | `gitlab` | `issue.open` |
|
|
636
|
+
| `gitlab.issue_reopen(filter?: WebhookFilter)` | `gitlab` | `issue.reopen` |
|
|
637
|
+
| `gitlab.issue_update(filter?: WebhookFilter)` | `gitlab` | `issue.update` |
|
|
638
|
+
| `gitlab.job_canceled(filter?: WebhookFilter)` | `gitlab` | `job.canceled` |
|
|
639
|
+
| `gitlab.job_created(filter?: WebhookFilter)` | `gitlab` | `job.created` |
|
|
640
|
+
| `gitlab.job_failed(filter?: WebhookFilter)` | `gitlab` | `job.failed` |
|
|
641
|
+
| `gitlab.job_manual(filter?: WebhookFilter)` | `gitlab` | `job.manual` |
|
|
642
|
+
| `gitlab.job_pending(filter?: WebhookFilter)` | `gitlab` | `job.pending` |
|
|
643
|
+
| `gitlab.job_running(filter?: WebhookFilter)` | `gitlab` | `job.running` |
|
|
644
|
+
| `gitlab.job_skipped(filter?: WebhookFilter)` | `gitlab` | `job.skipped` |
|
|
645
|
+
| `gitlab.job_success(filter?: WebhookFilter)` | `gitlab` | `job.success` |
|
|
646
|
+
| `gitlab.merge_request_approved(filter?: WebhookFilter)` | `gitlab` | `merge_request.approved` |
|
|
647
|
+
| `gitlab.merge_request_close(filter?: WebhookFilter)` | `gitlab` | `merge_request.close` |
|
|
648
|
+
| `gitlab.merge_request_merge(filter?: WebhookFilter)` | `gitlab` | `merge_request.merge` |
|
|
649
|
+
| `gitlab.merge_request_open(filter?: WebhookFilter)` | `gitlab` | `merge_request.open` |
|
|
650
|
+
| `gitlab.merge_request_reopen(filter?: WebhookFilter)` | `gitlab` | `merge_request.reopen` |
|
|
651
|
+
| `gitlab.merge_request_unapproved(filter?: WebhookFilter)` | `gitlab` | `merge_request.unapproved` |
|
|
652
|
+
| `gitlab.merge_request_update(filter?: WebhookFilter)` | `gitlab` | `merge_request.update` |
|
|
653
|
+
| `gitlab.note_Commit(filter?: WebhookFilter)` | `gitlab` | `note.Commit` |
|
|
654
|
+
| `gitlab.note_Issue(filter?: WebhookFilter)` | `gitlab` | `note.Issue` |
|
|
655
|
+
| `gitlab.note_MergeRequest(filter?: WebhookFilter)` | `gitlab` | `note.MergeRequest` |
|
|
656
|
+
| `gitlab.note_Snippet(filter?: WebhookFilter)` | `gitlab` | `note.Snippet` |
|
|
657
|
+
| `gitlab.pipeline_canceled(filter?: WebhookFilter)` | `gitlab` | `pipeline.canceled` |
|
|
658
|
+
| `gitlab.pipeline_created(filter?: WebhookFilter)` | `gitlab` | `pipeline.created` |
|
|
659
|
+
| `gitlab.pipeline_failed(filter?: WebhookFilter)` | `gitlab` | `pipeline.failed` |
|
|
660
|
+
| `gitlab.pipeline_manual(filter?: WebhookFilter)` | `gitlab` | `pipeline.manual` |
|
|
661
|
+
| `gitlab.pipeline_pending(filter?: WebhookFilter)` | `gitlab` | `pipeline.pending` |
|
|
662
|
+
| `gitlab.pipeline_running(filter?: WebhookFilter)` | `gitlab` | `pipeline.running` |
|
|
663
|
+
| `gitlab.pipeline_skipped(filter?: WebhookFilter)` | `gitlab` | `pipeline.skipped` |
|
|
664
|
+
| `gitlab.pipeline_success(filter?: WebhookFilter)` | `gitlab` | `pipeline.success` |
|
|
665
|
+
| `gitlab.pipeline_waiting_for_resource(filter?: WebhookFilter)` | `gitlab` | `pipeline.waiting_for_resource` |
|
|
666
|
+
| `gmail.file_created(filter?: WebhookFilter)` | `gmail` | `file.created` |
|
|
667
|
+
| `gmail.file_deleted(filter?: WebhookFilter)` | `gmail` | `file.deleted` |
|
|
668
|
+
| `gmail.file_updated(filter?: WebhookFilter)` | `gmail` | `file.updated` |
|
|
669
|
+
| `google_calendar.calendar_exists(filter?: WebhookFilter)` | `google-calendar` | `calendar.exists` |
|
|
670
|
+
| `google_calendar.calendar_not_exists(filter?: WebhookFilter)` | `google-calendar` | `calendar.not_exists` |
|
|
671
|
+
| `google_calendar.calendar_sync(filter?: WebhookFilter)` | `google-calendar` | `calendar.sync` |
|
|
672
|
+
| `google_drive.file_created(filter?: WebhookFilter)` | `google-drive` | `file.created` |
|
|
673
|
+
| `google_drive.file_deleted(filter?: WebhookFilter)` | `google-drive` | `file.deleted` |
|
|
674
|
+
| `google_drive.file_updated(filter?: WebhookFilter)` | `google-drive` | `file.updated` |
|
|
675
|
+
| `granola.file_created(filter?: WebhookFilter)` | `granola` | `file.created` |
|
|
676
|
+
| `granola.note_access_granted(filter?: WebhookFilter)` | `granola` | `note.access_granted` |
|
|
677
|
+
| `granola.note_edited(filter?: WebhookFilter)` | `granola` | `note.edited` |
|
|
678
|
+
| `granola.note_generated(filter?: WebhookFilter)` | `granola` | `note.generated` |
|
|
679
|
+
| `hubspot.company_associationChange(filter?: WebhookFilter)` | `hubspot` | `company.associationChange` |
|
|
680
|
+
| `hubspot.company_created(filter?: WebhookFilter)` | `hubspot` | `company.created` |
|
|
681
|
+
| `hubspot.company_deleted(filter?: WebhookFilter)` | `hubspot` | `company.deleted` |
|
|
682
|
+
| `hubspot.company_merged(filter?: WebhookFilter)` | `hubspot` | `company.merged` |
|
|
683
|
+
| `hubspot.company_propertyChange(filter?: WebhookFilter)` | `hubspot` | `company.propertyChange` |
|
|
684
|
+
| `hubspot.contact_associationChange(filter?: WebhookFilter)` | `hubspot` | `contact.associationChange` |
|
|
685
|
+
| `hubspot.contact_created(filter?: WebhookFilter)` | `hubspot` | `contact.created` |
|
|
686
|
+
| `hubspot.contact_deleted(filter?: WebhookFilter)` | `hubspot` | `contact.deleted` |
|
|
687
|
+
| `hubspot.contact_merged(filter?: WebhookFilter)` | `hubspot` | `contact.merged` |
|
|
688
|
+
| `hubspot.contact_propertyChange(filter?: WebhookFilter)` | `hubspot` | `contact.propertyChange` |
|
|
689
|
+
| `hubspot.deal_associationChange(filter?: WebhookFilter)` | `hubspot` | `deal.associationChange` |
|
|
690
|
+
| `hubspot.deal_created(filter?: WebhookFilter)` | `hubspot` | `deal.created` |
|
|
691
|
+
| `hubspot.deal_deleted(filter?: WebhookFilter)` | `hubspot` | `deal.deleted` |
|
|
692
|
+
| `hubspot.deal_merged(filter?: WebhookFilter)` | `hubspot` | `deal.merged` |
|
|
693
|
+
| `hubspot.deal_propertyChange(filter?: WebhookFilter)` | `hubspot` | `deal.propertyChange` |
|
|
694
|
+
| `hubspot.ticket_associationChange(filter?: WebhookFilter)` | `hubspot` | `ticket.associationChange` |
|
|
695
|
+
| `hubspot.ticket_created(filter?: WebhookFilter)` | `hubspot` | `ticket.created` |
|
|
696
|
+
| `hubspot.ticket_deleted(filter?: WebhookFilter)` | `hubspot` | `ticket.deleted` |
|
|
697
|
+
| `hubspot.ticket_merged(filter?: WebhookFilter)` | `hubspot` | `ticket.merged` |
|
|
698
|
+
| `hubspot.ticket_propertyChange(filter?: WebhookFilter)` | `hubspot` | `ticket.propertyChange` |
|
|
699
|
+
| `intercom.company_archived(filter?: WebhookFilter)` | `intercom` | `company.archived` |
|
|
700
|
+
| `intercom.company_closed(filter?: WebhookFilter)` | `intercom` | `company.closed` |
|
|
701
|
+
| `intercom.company_created(filter?: WebhookFilter)` | `intercom` | `company.created` |
|
|
702
|
+
| `intercom.company_deleted(filter?: WebhookFilter)` | `intercom` | `company.deleted` |
|
|
703
|
+
| `intercom.company_reopened(filter?: WebhookFilter)` | `intercom` | `company.reopened` |
|
|
704
|
+
| `intercom.company_updated(filter?: WebhookFilter)` | `intercom` | `company.updated` |
|
|
705
|
+
| `intercom.contact_archived(filter?: WebhookFilter)` | `intercom` | `contact.archived` |
|
|
706
|
+
| `intercom.contact_closed(filter?: WebhookFilter)` | `intercom` | `contact.closed` |
|
|
707
|
+
| `intercom.contact_created(filter?: WebhookFilter)` | `intercom` | `contact.created` |
|
|
708
|
+
| `intercom.contact_deleted(filter?: WebhookFilter)` | `intercom` | `contact.deleted` |
|
|
709
|
+
| `intercom.contact_reopened(filter?: WebhookFilter)` | `intercom` | `contact.reopened` |
|
|
710
|
+
| `intercom.contact_updated(filter?: WebhookFilter)` | `intercom` | `contact.updated` |
|
|
711
|
+
| `intercom.conversation_archived(filter?: WebhookFilter)` | `intercom` | `conversation.archived` |
|
|
712
|
+
| `intercom.conversation_closed(filter?: WebhookFilter)` | `intercom` | `conversation.closed` |
|
|
713
|
+
| `intercom.conversation_created(filter?: WebhookFilter)` | `intercom` | `conversation.created` |
|
|
714
|
+
| `intercom.conversation_deleted(filter?: WebhookFilter)` | `intercom` | `conversation.deleted` |
|
|
715
|
+
| `intercom.conversation_reopened(filter?: WebhookFilter)` | `intercom` | `conversation.reopened` |
|
|
716
|
+
| `intercom.conversation_updated(filter?: WebhookFilter)` | `intercom` | `conversation.updated` |
|
|
717
|
+
| `jira.comment_created(filter?: WebhookFilter)` | `jira` | `comment.created` |
|
|
718
|
+
| `jira.comment_deleted(filter?: WebhookFilter)` | `jira` | `comment.deleted` |
|
|
719
|
+
| `jira.comment_updated(filter?: WebhookFilter)` | `jira` | `comment.updated` |
|
|
720
|
+
| `jira.issue_created(filter?: WebhookFilter)` | `jira` | `issue.created` |
|
|
721
|
+
| `jira.issue_deleted(filter?: WebhookFilter)` | `jira` | `issue.deleted` |
|
|
722
|
+
| `jira.issue_updated(filter?: WebhookFilter)` | `jira` | `issue.updated` |
|
|
723
|
+
| `jira.project_created(filter?: WebhookFilter)` | `jira` | `project.created` |
|
|
724
|
+
| `jira.project_deleted(filter?: WebhookFilter)` | `jira` | `project.deleted` |
|
|
725
|
+
| `jira.project_updated(filter?: WebhookFilter)` | `jira` | `project.updated` |
|
|
726
|
+
| `jira.sprint_created(filter?: WebhookFilter)` | `jira` | `sprint.created` |
|
|
727
|
+
| `jira.sprint_deleted(filter?: WebhookFilter)` | `jira` | `sprint.deleted` |
|
|
728
|
+
| `jira.sprint_updated(filter?: WebhookFilter)` | `jira` | `sprint.updated` |
|
|
729
|
+
| `linear.AgentSessionEvent_created(filter?: WebhookFilter)` | `linear` | `AgentSessionEvent.created` |
|
|
730
|
+
| `linear.AgentSessionEvent_prompted(filter?: WebhookFilter)` | `linear` | `AgentSessionEvent.prompted` |
|
|
731
|
+
| `linear.AppUserNotification_issueAssignedToYou(filter?: WebhookFilter)` | `linear` | `AppUserNotification.issueAssignedToYou` |
|
|
732
|
+
| `linear.AppUserNotification_issueCommentMention(filter?: WebhookFilter)` | `linear` | `AppUserNotification.issueCommentMention` |
|
|
733
|
+
| `linear.AppUserNotification_issueCommentReaction(filter?: WebhookFilter)` | `linear` | `AppUserNotification.issueCommentReaction` |
|
|
734
|
+
| `linear.AppUserNotification_issueEmojiReaction(filter?: WebhookFilter)` | `linear` | `AppUserNotification.issueEmojiReaction` |
|
|
735
|
+
| `linear.AppUserNotification_issueMention(filter?: WebhookFilter)` | `linear` | `AppUserNotification.issueMention` |
|
|
736
|
+
| `linear.AppUserNotification_issueNewComment(filter?: WebhookFilter)` | `linear` | `AppUserNotification.issueNewComment` |
|
|
737
|
+
| `linear.AppUserNotification_issueStatusChanged(filter?: WebhookFilter)` | `linear` | `AppUserNotification.issueStatusChanged` |
|
|
738
|
+
| `linear.AppUserNotification_issueUnassignedFromYou(filter?: WebhookFilter)` | `linear` | `AppUserNotification.issueUnassignedFromYou` |
|
|
739
|
+
| `linear.comment_create(filter?: WebhookFilter)` | `linear` | `comment.create` |
|
|
740
|
+
| `linear.comment_remove(filter?: WebhookFilter)` | `linear` | `comment.remove` |
|
|
741
|
+
| `linear.comment_update(filter?: WebhookFilter)` | `linear` | `comment.update` |
|
|
742
|
+
| `linear.cycle_create(filter?: WebhookFilter)` | `linear` | `cycle.create` |
|
|
743
|
+
| `linear.cycle_remove(filter?: WebhookFilter)` | `linear` | `cycle.remove` |
|
|
744
|
+
| `linear.cycle_update(filter?: WebhookFilter)` | `linear` | `cycle.update` |
|
|
745
|
+
| `linear.issue_create(filter?: WebhookFilter)` | `linear` | `issue.create` |
|
|
746
|
+
| `linear.issue_remove(filter?: WebhookFilter)` | `linear` | `issue.remove` |
|
|
747
|
+
| `linear.issue_update(filter?: WebhookFilter)` | `linear` | `issue.update` |
|
|
748
|
+
| `linear.label_create(filter?: WebhookFilter)` | `linear` | `label.create` |
|
|
749
|
+
| `linear.label_remove(filter?: WebhookFilter)` | `linear` | `label.remove` |
|
|
750
|
+
| `linear.label_update(filter?: WebhookFilter)` | `linear` | `label.update` |
|
|
751
|
+
| `linear.milestone_create(filter?: WebhookFilter)` | `linear` | `milestone.create` |
|
|
752
|
+
| `linear.milestone_remove(filter?: WebhookFilter)` | `linear` | `milestone.remove` |
|
|
753
|
+
| `linear.milestone_update(filter?: WebhookFilter)` | `linear` | `milestone.update` |
|
|
754
|
+
| `linear.OAuthApp_revoked(filter?: WebhookFilter)` | `linear` | `OAuthApp.revoked` |
|
|
755
|
+
| `linear.PermissionChange_teamAccessChanged(filter?: WebhookFilter)` | `linear` | `PermissionChange.teamAccessChanged` |
|
|
756
|
+
| `linear.project_create(filter?: WebhookFilter)` | `linear` | `project.create` |
|
|
757
|
+
| `linear.project_remove(filter?: WebhookFilter)` | `linear` | `project.remove` |
|
|
758
|
+
| `linear.project_update(filter?: WebhookFilter)` | `linear` | `project.update` |
|
|
759
|
+
| `linear.roadmap_create(filter?: WebhookFilter)` | `linear` | `roadmap.create` |
|
|
760
|
+
| `linear.roadmap_remove(filter?: WebhookFilter)` | `linear` | `roadmap.remove` |
|
|
761
|
+
| `linear.roadmap_update(filter?: WebhookFilter)` | `linear` | `roadmap.update` |
|
|
762
|
+
| `mailgun.event_accepted(filter?: WebhookFilter)` | `mailgun` | `event.accepted` |
|
|
763
|
+
| `mailgun.event_clicked(filter?: WebhookFilter)` | `mailgun` | `event.clicked` |
|
|
764
|
+
| `mailgun.event_complained(filter?: WebhookFilter)` | `mailgun` | `event.complained` |
|
|
765
|
+
| `mailgun.event_delivered(filter?: WebhookFilter)` | `mailgun` | `event.delivered` |
|
|
766
|
+
| `mailgun.event_failed(filter?: WebhookFilter)` | `mailgun` | `event.failed` |
|
|
767
|
+
| `mailgun.event_opened(filter?: WebhookFilter)` | `mailgun` | `event.opened` |
|
|
768
|
+
| `mailgun.event_permanent_fail(filter?: WebhookFilter)` | `mailgun` | `event.permanent_fail` |
|
|
769
|
+
| `mailgun.event_stored(filter?: WebhookFilter)` | `mailgun` | `event.stored` |
|
|
770
|
+
| `mailgun.event_unsubscribed(filter?: WebhookFilter)` | `mailgun` | `event.unsubscribed` |
|
|
771
|
+
| `mailgun.list_created(filter?: WebhookFilter)` | `mailgun` | `list.created` |
|
|
772
|
+
| `mailgun.list_updated(filter?: WebhookFilter)` | `mailgun` | `list.updated` |
|
|
773
|
+
| `mailgun.message_accepted(filter?: WebhookFilter)` | `mailgun` | `message.accepted` |
|
|
774
|
+
| `mailgun.message_delivered(filter?: WebhookFilter)` | `mailgun` | `message.delivered` |
|
|
775
|
+
| `mailgun.message_failed(filter?: WebhookFilter)` | `mailgun` | `message.failed` |
|
|
776
|
+
| `mailgun.message_stored(filter?: WebhookFilter)` | `mailgun` | `message.stored` |
|
|
777
|
+
| `mixpanel.cohort_create(filter?: WebhookFilter)` | `mixpanel` | `cohort.create` |
|
|
778
|
+
| `mixpanel.cohort_delete(filter?: WebhookFilter)` | `mixpanel` | `cohort.delete` |
|
|
779
|
+
| `mixpanel.cohort_merge(filter?: WebhookFilter)` | `mixpanel` | `cohort.merge` |
|
|
780
|
+
| `mixpanel.cohort_update(filter?: WebhookFilter)` | `mixpanel` | `cohort.update` |
|
|
781
|
+
| `mixpanel.event_create(filter?: WebhookFilter)` | `mixpanel` | `event.create` |
|
|
782
|
+
| `mixpanel.event_delete(filter?: WebhookFilter)` | `mixpanel` | `event.delete` |
|
|
783
|
+
| `mixpanel.event_merge(filter?: WebhookFilter)` | `mixpanel` | `event.merge` |
|
|
784
|
+
| `mixpanel.event_update(filter?: WebhookFilter)` | `mixpanel` | `event.update` |
|
|
785
|
+
| `mixpanel.profile_create(filter?: WebhookFilter)` | `mixpanel` | `profile.create` |
|
|
786
|
+
| `mixpanel.profile_delete(filter?: WebhookFilter)` | `mixpanel` | `profile.delete` |
|
|
787
|
+
| `mixpanel.profile_merge(filter?: WebhookFilter)` | `mixpanel` | `profile.merge` |
|
|
788
|
+
| `mixpanel.profile_update(filter?: WebhookFilter)` | `mixpanel` | `profile.update` |
|
|
789
|
+
| `neon.advisor_issue_raised(filter?: WebhookFilter)` | `neon` | `advisor.issue_raised` |
|
|
790
|
+
| `neon.endpoint_state_changed(filter?: WebhookFilter)` | `neon` | `endpoint.state_changed` |
|
|
791
|
+
| `neon.operation_cancelled(filter?: WebhookFilter)` | `neon` | `operation.cancelled` |
|
|
792
|
+
| `neon.operation_failed(filter?: WebhookFilter)` | `neon` | `operation.failed` |
|
|
793
|
+
| `neon.operation_succeeded(filter?: WebhookFilter)` | `neon` | `operation.succeeded` |
|
|
794
|
+
| `notion.database_created(filter?: WebhookFilter)` | `notion` | `database.created` |
|
|
795
|
+
| `notion.database_deleted(filter?: WebhookFilter)` | `notion` | `database.deleted` |
|
|
796
|
+
| `notion.database_moved(filter?: WebhookFilter)` | `notion` | `database.moved` |
|
|
797
|
+
| `notion.database_schema_updated(filter?: WebhookFilter)` | `notion` | `database.schema_updated` |
|
|
798
|
+
| `notion.database_undeleted(filter?: WebhookFilter)` | `notion` | `database.undeleted` |
|
|
799
|
+
| `notion.page_content_updated(filter?: WebhookFilter)` | `notion` | `page.content_updated` |
|
|
800
|
+
| `notion.page_created(filter?: WebhookFilter)` | `notion` | `page.created` |
|
|
801
|
+
| `notion.page_deleted(filter?: WebhookFilter)` | `notion` | `page.deleted` |
|
|
802
|
+
| `notion.page_locked(filter?: WebhookFilter)` | `notion` | `page.locked` |
|
|
803
|
+
| `notion.page_moved(filter?: WebhookFilter)` | `notion` | `page.moved` |
|
|
804
|
+
| `notion.page_properties_updated(filter?: WebhookFilter)` | `notion` | `page.properties_updated` |
|
|
805
|
+
| `notion.page_undeleted(filter?: WebhookFilter)` | `notion` | `page.undeleted` |
|
|
806
|
+
| `notion.page_unlocked(filter?: WebhookFilter)` | `notion` | `page.unlocked` |
|
|
807
|
+
| `onedrive.file_created(filter?: WebhookFilter)` | `onedrive` | `file.created` |
|
|
808
|
+
| `onedrive.file_deleted(filter?: WebhookFilter)` | `onedrive` | `file.deleted` |
|
|
809
|
+
| `onedrive.file_updated(filter?: WebhookFilter)` | `onedrive` | `file.updated` |
|
|
810
|
+
| `pipedrive.activity_created(filter?: WebhookFilter)` | `pipedrive` | `activity.created` |
|
|
811
|
+
| `pipedrive.activity_deleted(filter?: WebhookFilter)` | `pipedrive` | `activity.deleted` |
|
|
812
|
+
| `pipedrive.activity_updated(filter?: WebhookFilter)` | `pipedrive` | `activity.updated` |
|
|
813
|
+
| `pipedrive.deal_created(filter?: WebhookFilter)` | `pipedrive` | `deal.created` |
|
|
814
|
+
| `pipedrive.deal_deleted(filter?: WebhookFilter)` | `pipedrive` | `deal.deleted` |
|
|
815
|
+
| `pipedrive.deal_lost(filter?: WebhookFilter)` | `pipedrive` | `deal.lost` |
|
|
816
|
+
| `pipedrive.deal_updated(filter?: WebhookFilter)` | `pipedrive` | `deal.updated` |
|
|
817
|
+
| `pipedrive.deal_won(filter?: WebhookFilter)` | `pipedrive` | `deal.won` |
|
|
818
|
+
| `pipedrive.organization_created(filter?: WebhookFilter)` | `pipedrive` | `organization.created` |
|
|
819
|
+
| `pipedrive.organization_deleted(filter?: WebhookFilter)` | `pipedrive` | `organization.deleted` |
|
|
820
|
+
| `pipedrive.organization_updated(filter?: WebhookFilter)` | `pipedrive` | `organization.updated` |
|
|
821
|
+
| `pipedrive.person_created(filter?: WebhookFilter)` | `pipedrive` | `person.created` |
|
|
822
|
+
| `pipedrive.person_deleted(filter?: WebhookFilter)` | `pipedrive` | `person.deleted` |
|
|
823
|
+
| `pipedrive.person_updated(filter?: WebhookFilter)` | `pipedrive` | `person.updated` |
|
|
824
|
+
| `postgres.file_created(filter?: WebhookFilter)` | `postgres` | `file.created` |
|
|
825
|
+
| `postgres.file_deleted(filter?: WebhookFilter)` | `postgres` | `file.deleted` |
|
|
826
|
+
| `postgres.file_updated(filter?: WebhookFilter)` | `postgres` | `file.updated` |
|
|
827
|
+
| `posthog.posthog_alert_resolved(filter?: WebhookFilter)` | `posthog` | `posthog.alert.resolved` |
|
|
828
|
+
| `posthog.posthog_alert_triggered(filter?: WebhookFilter)` | `posthog` | `posthog.alert.triggered` |
|
|
829
|
+
| `ramp.applications_status_updated(filter?: WebhookFilter)` | `ramp` | `applications.status_updated` |
|
|
830
|
+
| `ramp.bills_approved(filter?: WebhookFilter)` | `ramp` | `bills.approved` |
|
|
831
|
+
| `ramp.bills_archived(filter?: WebhookFilter)` | `ramp` | `bills.archived` |
|
|
832
|
+
| `ramp.bills_created(filter?: WebhookFilter)` | `ramp` | `bills.created` |
|
|
833
|
+
| `ramp.bills_paid(filter?: WebhookFilter)` | `ramp` | `bills.paid` |
|
|
834
|
+
| `ramp.bills_ready_to_sync(filter?: WebhookFilter)` | `ramp` | `bills.ready_to_sync` |
|
|
835
|
+
| `ramp.bills_rejected(filter?: WebhookFilter)` | `ramp` | `bills.rejected` |
|
|
836
|
+
| `ramp.bills_updated(filter?: WebhookFilter)` | `ramp` | `bills.updated` |
|
|
837
|
+
| `ramp.entities_created(filter?: WebhookFilter)` | `ramp` | `entities.created` |
|
|
838
|
+
| `ramp.item_receipts_created(filter?: WebhookFilter)` | `ramp` | `item_receipts.created` |
|
|
839
|
+
| `ramp.payments_updated(filter?: WebhookFilter)` | `ramp` | `payments.updated` |
|
|
840
|
+
| `ramp.purchase_orders_archived(filter?: WebhookFilter)` | `ramp` | `purchase_orders.archived` |
|
|
841
|
+
| `ramp.purchase_orders_created(filter?: WebhookFilter)` | `ramp` | `purchase_orders.created` |
|
|
842
|
+
| `ramp.purchase_orders_updated(filter?: WebhookFilter)` | `ramp` | `purchase_orders.updated` |
|
|
843
|
+
| `ramp.reimbursements_batch_payment_reimbursed(filter?: WebhookFilter)` | `ramp` | `reimbursements.batch_payment_reimbursed` |
|
|
844
|
+
| `ramp.reimbursements_ready_for_review(filter?: WebhookFilter)` | `ramp` | `reimbursements.ready_for_review` |
|
|
845
|
+
| `ramp.reimbursements_ready_to_sync(filter?: WebhookFilter)` | `ramp` | `reimbursements.ready_to_sync` |
|
|
846
|
+
| `ramp.reimbursements_sync_requested(filter?: WebhookFilter)` | `ramp` | `reimbursements.sync_requested` |
|
|
847
|
+
| `ramp.spend_requests_comment_created(filter?: WebhookFilter)` | `ramp` | `spend_requests.comment_created` |
|
|
848
|
+
| `ramp.spend_requests_created(filter?: WebhookFilter)` | `ramp` | `spend_requests.created` |
|
|
849
|
+
| `ramp.transactions_all_requirements_met_and_approved_changed(filter?: WebhookFilter)` | `ramp` | `transactions.all_requirements_met_and_approved_changed` |
|
|
850
|
+
| `ramp.transactions_authorized(filter?: WebhookFilter)` | `ramp` | `transactions.authorized` |
|
|
851
|
+
| `ramp.transactions_body_coding_updated(filter?: WebhookFilter)` | `ramp` | `transactions.body_coding_updated` |
|
|
852
|
+
| `ramp.transactions_cleared(filter?: WebhookFilter)` | `ramp` | `transactions.cleared` |
|
|
853
|
+
| `ramp.transactions_declined(filter?: WebhookFilter)` | `ramp` | `transactions.declined` |
|
|
854
|
+
| `ramp.transactions_ready_for_review(filter?: WebhookFilter)` | `ramp` | `transactions.ready_for_review` |
|
|
855
|
+
| `ramp.transactions_ready_to_sync(filter?: WebhookFilter)` | `ramp` | `transactions.ready_to_sync` |
|
|
856
|
+
| `ramp.transactions_receipt_added(filter?: WebhookFilter)` | `ramp` | `transactions.receipt_added` |
|
|
857
|
+
| `ramp.transactions_sync_requested(filter?: WebhookFilter)` | `ramp` | `transactions.sync_requested` |
|
|
858
|
+
| `ramp.transactions_synced(filter?: WebhookFilter)` | `ramp` | `transactions.synced` |
|
|
859
|
+
| `ramp.unified_requests_created(filter?: WebhookFilter)` | `ramp` | `unified_requests.created` |
|
|
860
|
+
| `ramp.unified_requests_external_approval_request(filter?: WebhookFilter)` | `ramp` | `unified_requests.external_approval_request` |
|
|
861
|
+
| `ramp.unified_requests_external_approval_request_reset(filter?: WebhookFilter)` | `ramp` | `unified_requests.external_approval_request_reset` |
|
|
862
|
+
| `ramp.unified_requests_modified(filter?: WebhookFilter)` | `ramp` | `unified_requests.modified` |
|
|
863
|
+
| `ramp.unified_requests_node_advanced(filter?: WebhookFilter)` | `ramp` | `unified_requests.node_advanced` |
|
|
864
|
+
| `ramp.unified_requests_override_approved(filter?: WebhookFilter)` | `ramp` | `unified_requests.override_approved` |
|
|
865
|
+
| `ramp.unified_requests_updated(filter?: WebhookFilter)` | `ramp` | `unified_requests.updated` |
|
|
866
|
+
| `ramp.users_invite_accepted(filter?: WebhookFilter)` | `ramp` | `users.invite_accepted` |
|
|
867
|
+
| `ramp.vendor_agreements_archived(filter?: WebhookFilter)` | `ramp` | `vendor_agreements.archived` |
|
|
868
|
+
| `ramp.vendor_agreements_created(filter?: WebhookFilter)` | `ramp` | `vendor_agreements.created` |
|
|
869
|
+
| `ramp.vendor_agreements_deleted(filter?: WebhookFilter)` | `ramp` | `vendor_agreements.deleted` |
|
|
870
|
+
| `ramp.vendor_agreements_document_added(filter?: WebhookFilter)` | `ramp` | `vendor_agreements.document_added` |
|
|
871
|
+
| `ramp.vendor_agreements_renewal_milestone(filter?: WebhookFilter)` | `ramp` | `vendor_agreements.renewal_milestone` |
|
|
872
|
+
| `ramp.vendor_agreements_updated(filter?: WebhookFilter)` | `ramp` | `vendor_agreements.updated` |
|
|
873
|
+
| `ramp.vendors_activated(filter?: WebhookFilter)` | `ramp` | `vendors.activated` |
|
|
874
|
+
| `ramp.vendors_approved(filter?: WebhookFilter)` | `ramp` | `vendors.approved` |
|
|
875
|
+
| `ramp.vendors_updated(filter?: WebhookFilter)` | `ramp` | `vendors.updated` |
|
|
876
|
+
| `recall.file_created(filter?: WebhookFilter)` | `recall` | `file.created` |
|
|
877
|
+
| `recall.recording_created(filter?: WebhookFilter)` | `recall` | `recording.created` |
|
|
878
|
+
| `recall.transcript_done(filter?: WebhookFilter)` | `recall` | `transcript.done` |
|
|
879
|
+
| `redis.file_created(filter?: WebhookFilter)` | `redis` | `file.created` |
|
|
880
|
+
| `redis.file_deleted(filter?: WebhookFilter)` | `redis` | `file.deleted` |
|
|
881
|
+
| `redis.file_updated(filter?: WebhookFilter)` | `redis` | `file.updated` |
|
|
882
|
+
| `s3.file_created(filter?: WebhookFilter)` | `s3` | `file.created` |
|
|
883
|
+
| `s3.file_deleted(filter?: WebhookFilter)` | `s3` | `file.deleted` |
|
|
884
|
+
| `s3.file_updated(filter?: WebhookFilter)` | `s3` | `file.updated` |
|
|
885
|
+
| `salesforce.Account_created(filter?: WebhookFilter)` | `salesforce` | `Account.created` |
|
|
886
|
+
| `salesforce.Account_deleted(filter?: WebhookFilter)` | `salesforce` | `Account.deleted` |
|
|
887
|
+
| `salesforce.Account_updated(filter?: WebhookFilter)` | `salesforce` | `Account.updated` |
|
|
888
|
+
| `salesforce.Account_upserted(filter?: WebhookFilter)` | `salesforce` | `Account.upserted` |
|
|
889
|
+
| `salesforce.Case_closed(filter?: WebhookFilter)` | `salesforce` | `Case.closed` |
|
|
890
|
+
| `salesforce.Case_created(filter?: WebhookFilter)` | `salesforce` | `Case.created` |
|
|
891
|
+
| `salesforce.Case_deleted(filter?: WebhookFilter)` | `salesforce` | `Case.deleted` |
|
|
892
|
+
| `salesforce.Case_updated(filter?: WebhookFilter)` | `salesforce` | `Case.updated` |
|
|
893
|
+
| `salesforce.Case_upserted(filter?: WebhookFilter)` | `salesforce` | `Case.upserted` |
|
|
894
|
+
| `salesforce.Contact_created(filter?: WebhookFilter)` | `salesforce` | `Contact.created` |
|
|
895
|
+
| `salesforce.Contact_deleted(filter?: WebhookFilter)` | `salesforce` | `Contact.deleted` |
|
|
896
|
+
| `salesforce.Contact_updated(filter?: WebhookFilter)` | `salesforce` | `Contact.updated` |
|
|
897
|
+
| `salesforce.Contact_upserted(filter?: WebhookFilter)` | `salesforce` | `Contact.upserted` |
|
|
898
|
+
| `salesforce.Lead_converted(filter?: WebhookFilter)` | `salesforce` | `Lead.converted` |
|
|
899
|
+
| `salesforce.Lead_created(filter?: WebhookFilter)` | `salesforce` | `Lead.created` |
|
|
900
|
+
| `salesforce.Lead_deleted(filter?: WebhookFilter)` | `salesforce` | `Lead.deleted` |
|
|
901
|
+
| `salesforce.Lead_updated(filter?: WebhookFilter)` | `salesforce` | `Lead.updated` |
|
|
902
|
+
| `salesforce.Lead_upserted(filter?: WebhookFilter)` | `salesforce` | `Lead.upserted` |
|
|
903
|
+
| `salesforce.Opportunity_created(filter?: WebhookFilter)` | `salesforce` | `Opportunity.created` |
|
|
904
|
+
| `salesforce.Opportunity_deleted(filter?: WebhookFilter)` | `salesforce` | `Opportunity.deleted` |
|
|
905
|
+
| `salesforce.Opportunity_updated(filter?: WebhookFilter)` | `salesforce` | `Opportunity.updated` |
|
|
906
|
+
| `salesforce.Opportunity_upserted(filter?: WebhookFilter)` | `salesforce` | `Opportunity.upserted` |
|
|
907
|
+
| `segment.group_create(filter?: WebhookFilter)` | `segment` | `group.create` |
|
|
908
|
+
| `segment.group_update(filter?: WebhookFilter)` | `segment` | `group.update` |
|
|
909
|
+
| `segment.group_upsert(filter?: WebhookFilter)` | `segment` | `group.upsert` |
|
|
910
|
+
| `segment.identify_create(filter?: WebhookFilter)` | `segment` | `identify.create` |
|
|
911
|
+
| `segment.identify_update(filter?: WebhookFilter)` | `segment` | `identify.update` |
|
|
912
|
+
| `segment.identify_upsert(filter?: WebhookFilter)` | `segment` | `identify.upsert` |
|
|
913
|
+
| `segment.page_create(filter?: WebhookFilter)` | `segment` | `page.create` |
|
|
914
|
+
| `segment.page_update(filter?: WebhookFilter)` | `segment` | `page.update` |
|
|
915
|
+
| `segment.page_upsert(filter?: WebhookFilter)` | `segment` | `page.upsert` |
|
|
916
|
+
| `segment.track_create(filter?: WebhookFilter)` | `segment` | `track.create` |
|
|
917
|
+
| `segment.track_update(filter?: WebhookFilter)` | `segment` | `track.update` |
|
|
918
|
+
| `segment.track_upsert(filter?: WebhookFilter)` | `segment` | `track.upsert` |
|
|
919
|
+
| `sendgrid.contact_create(filter?: WebhookFilter)` | `sendgrid` | `contact.create` |
|
|
920
|
+
| `sendgrid.contact_delete(filter?: WebhookFilter)` | `sendgrid` | `contact.delete` |
|
|
921
|
+
| `sendgrid.contact_update(filter?: WebhookFilter)` | `sendgrid` | `contact.update` |
|
|
922
|
+
| `sendgrid.event_bounce(filter?: WebhookFilter)` | `sendgrid` | `event.bounce` |
|
|
923
|
+
| `sendgrid.event_click(filter?: WebhookFilter)` | `sendgrid` | `event.click` |
|
|
924
|
+
| `sendgrid.event_deferred(filter?: WebhookFilter)` | `sendgrid` | `event.deferred` |
|
|
925
|
+
| `sendgrid.event_delivered(filter?: WebhookFilter)` | `sendgrid` | `event.delivered` |
|
|
926
|
+
| `sendgrid.event_dropped(filter?: WebhookFilter)` | `sendgrid` | `event.dropped` |
|
|
927
|
+
| `sendgrid.event_group_resubscribe(filter?: WebhookFilter)` | `sendgrid` | `event.group_resubscribe` |
|
|
928
|
+
| `sendgrid.event_group_unsubscribe(filter?: WebhookFilter)` | `sendgrid` | `event.group_unsubscribe` |
|
|
929
|
+
| `sendgrid.event_open(filter?: WebhookFilter)` | `sendgrid` | `event.open` |
|
|
930
|
+
| `sendgrid.event_processed(filter?: WebhookFilter)` | `sendgrid` | `event.processed` |
|
|
931
|
+
| `sendgrid.event_spamreport(filter?: WebhookFilter)` | `sendgrid` | `event.spamreport` |
|
|
932
|
+
| `sendgrid.event_unsubscribe(filter?: WebhookFilter)` | `sendgrid` | `event.unsubscribe` |
|
|
933
|
+
| `sendgrid.mail_create(filter?: WebhookFilter)` | `sendgrid` | `mail.create` |
|
|
934
|
+
| `sendgrid.mail_delete(filter?: WebhookFilter)` | `sendgrid` | `mail.delete` |
|
|
935
|
+
| `sendgrid.mail_update(filter?: WebhookFilter)` | `sendgrid` | `mail.update` |
|
|
936
|
+
| `sharepoint.file_created(filter?: WebhookFilter)` | `sharepoint` | `file.created` |
|
|
937
|
+
| `sharepoint.file_deleted(filter?: WebhookFilter)` | `sharepoint` | `file.deleted` |
|
|
938
|
+
| `sharepoint.file_updated(filter?: WebhookFilter)` | `sharepoint` | `file.updated` |
|
|
939
|
+
| `shopify.customer_cancel(filter?: WebhookFilter)` | `shopify` | `customer.cancel` |
|
|
940
|
+
| `shopify.customer_create(filter?: WebhookFilter)` | `shopify` | `customer.create` |
|
|
941
|
+
| `shopify.customer_delete(filter?: WebhookFilter)` | `shopify` | `customer.delete` |
|
|
942
|
+
| `shopify.customer_fulfill(filter?: WebhookFilter)` | `shopify` | `customer.fulfill` |
|
|
943
|
+
| `shopify.customer_paid(filter?: WebhookFilter)` | `shopify` | `customer.paid` |
|
|
944
|
+
| `shopify.customer_update(filter?: WebhookFilter)` | `shopify` | `customer.update` |
|
|
945
|
+
| `shopify.fulfillment_cancel(filter?: WebhookFilter)` | `shopify` | `fulfillment.cancel` |
|
|
946
|
+
| `shopify.fulfillment_create(filter?: WebhookFilter)` | `shopify` | `fulfillment.create` |
|
|
947
|
+
| `shopify.fulfillment_delete(filter?: WebhookFilter)` | `shopify` | `fulfillment.delete` |
|
|
948
|
+
| `shopify.fulfillment_fulfill(filter?: WebhookFilter)` | `shopify` | `fulfillment.fulfill` |
|
|
949
|
+
| `shopify.fulfillment_paid(filter?: WebhookFilter)` | `shopify` | `fulfillment.paid` |
|
|
950
|
+
| `shopify.fulfillment_update(filter?: WebhookFilter)` | `shopify` | `fulfillment.update` |
|
|
951
|
+
| `shopify.order_cancel(filter?: WebhookFilter)` | `shopify` | `order.cancel` |
|
|
952
|
+
| `shopify.order_create(filter?: WebhookFilter)` | `shopify` | `order.create` |
|
|
953
|
+
| `shopify.order_delete(filter?: WebhookFilter)` | `shopify` | `order.delete` |
|
|
954
|
+
| `shopify.order_fulfill(filter?: WebhookFilter)` | `shopify` | `order.fulfill` |
|
|
955
|
+
| `shopify.order_paid(filter?: WebhookFilter)` | `shopify` | `order.paid` |
|
|
956
|
+
| `shopify.order_update(filter?: WebhookFilter)` | `shopify` | `order.update` |
|
|
957
|
+
| `shopify.product_cancel(filter?: WebhookFilter)` | `shopify` | `product.cancel` |
|
|
958
|
+
| `shopify.product_create(filter?: WebhookFilter)` | `shopify` | `product.create` |
|
|
959
|
+
| `shopify.product_delete(filter?: WebhookFilter)` | `shopify` | `product.delete` |
|
|
960
|
+
| `shopify.product_fulfill(filter?: WebhookFilter)` | `shopify` | `product.fulfill` |
|
|
961
|
+
| `shopify.product_paid(filter?: WebhookFilter)` | `shopify` | `product.paid` |
|
|
962
|
+
| `shopify.product_update(filter?: WebhookFilter)` | `shopify` | `product.update` |
|
|
963
|
+
| `shortcut.epic_create(filter?: WebhookFilter)` | `shortcut` | `epic.create` |
|
|
964
|
+
| `shortcut.epic_delete(filter?: WebhookFilter)` | `shortcut` | `epic.delete` |
|
|
965
|
+
| `shortcut.epic_update(filter?: WebhookFilter)` | `shortcut` | `epic.update` |
|
|
966
|
+
| `shortcut.story_create(filter?: WebhookFilter)` | `shortcut` | `story.create` |
|
|
967
|
+
| `shortcut.story_delete(filter?: WebhookFilter)` | `shortcut` | `story.delete` |
|
|
968
|
+
| `shortcut.story_update(filter?: WebhookFilter)` | `shortcut` | `story.update` |
|
|
969
|
+
| `slack.message(filter?: WebhookFilter)` | `slack` | `message` |
|
|
970
|
+
| `slack.reaction_added(filter?: WebhookFilter)` | `slack` | `reaction_added` |
|
|
971
|
+
| `slack.channel_archived(filter?: WebhookFilter)` | `slack` | `channel.archived` |
|
|
972
|
+
| `slack.channel_created(filter?: WebhookFilter)` | `slack` | `channel.created` |
|
|
973
|
+
| `slack.channel_deleted(filter?: WebhookFilter)` | `slack` | `channel.deleted` |
|
|
974
|
+
| `slack.channel_member_joined(filter?: WebhookFilter)` | `slack` | `channel.member_joined` |
|
|
975
|
+
| `slack.channel_member_left(filter?: WebhookFilter)` | `slack` | `channel.member_left` |
|
|
976
|
+
| `slack.channel_renamed(filter?: WebhookFilter)` | `slack` | `channel.renamed` |
|
|
977
|
+
| `slack.channel_unarchived(filter?: WebhookFilter)` | `slack` | `channel.unarchived` |
|
|
978
|
+
| `slack.group_archived(filter?: WebhookFilter)` | `slack` | `group.archived` |
|
|
979
|
+
| `slack.group_deleted(filter?: WebhookFilter)` | `slack` | `group.deleted` |
|
|
980
|
+
| `slack.group_renamed(filter?: WebhookFilter)` | `slack` | `group.renamed` |
|
|
981
|
+
| `slack.group_unarchived(filter?: WebhookFilter)` | `slack` | `group.unarchived` |
|
|
982
|
+
| `slack.message_created(filter?: WebhookFilter)` | `slack` | `message.created` |
|
|
983
|
+
| `slack.message_deleted(filter?: WebhookFilter)` | `slack` | `message.deleted` |
|
|
984
|
+
| `slack.message_updated(filter?: WebhookFilter)` | `slack` | `message.updated` |
|
|
985
|
+
| `slack.reaction_removed(filter?: WebhookFilter)` | `slack` | `reaction.removed` |
|
|
986
|
+
| `slack.user_changed(filter?: WebhookFilter)` | `slack` | `user.changed` |
|
|
987
|
+
| `slack.user_joined(filter?: WebhookFilter)` | `slack` | `user.joined` |
|
|
988
|
+
| `slack.mention(channel: string)` | `slack` | `app_mention` |
|
|
989
|
+
| `slack.reaction(emoji: string)` | `slack` | `reaction_added` |
|
|
990
|
+
| `stripe.charge_failed(filter?: WebhookFilter)` | `stripe` | `charge.failed` |
|
|
991
|
+
| `stripe.charge_refunded(filter?: WebhookFilter)` | `stripe` | `charge.refunded` |
|
|
992
|
+
| `stripe.charge_succeeded(filter?: WebhookFilter)` | `stripe` | `charge.succeeded` |
|
|
993
|
+
| `stripe.charge_updated(filter?: WebhookFilter)` | `stripe` | `charge.updated` |
|
|
994
|
+
| `stripe.customer_created(filter?: WebhookFilter)` | `stripe` | `customer.created` |
|
|
995
|
+
| `stripe.customer_deleted(filter?: WebhookFilter)` | `stripe` | `customer.deleted` |
|
|
996
|
+
| `stripe.customer_subscription_created(filter?: WebhookFilter)` | `stripe` | `customer.subscription.created` |
|
|
997
|
+
| `stripe.customer_subscription_deleted(filter?: WebhookFilter)` | `stripe` | `customer.subscription.deleted` |
|
|
998
|
+
| `stripe.customer_subscription_updated(filter?: WebhookFilter)` | `stripe` | `customer.subscription.updated` |
|
|
999
|
+
| `stripe.customer_updated(filter?: WebhookFilter)` | `stripe` | `customer.updated` |
|
|
1000
|
+
| `stripe.invoice_created(filter?: WebhookFilter)` | `stripe` | `invoice.created` |
|
|
1001
|
+
| `stripe.invoice_finalized(filter?: WebhookFilter)` | `stripe` | `invoice.finalized` |
|
|
1002
|
+
| `stripe.invoice_paid(filter?: WebhookFilter)` | `stripe` | `invoice.paid` |
|
|
1003
|
+
| `stripe.invoice_payment_failed(filter?: WebhookFilter)` | `stripe` | `invoice.payment_failed` |
|
|
1004
|
+
| `stripe.invoice_updated(filter?: WebhookFilter)` | `stripe` | `invoice.updated` |
|
|
1005
|
+
| `stripe.invoice_voided(filter?: WebhookFilter)` | `stripe` | `invoice.voided` |
|
|
1006
|
+
| `stripe.payment_intent_canceled(filter?: WebhookFilter)` | `stripe` | `payment_intent.canceled` |
|
|
1007
|
+
| `stripe.payment_intent_created(filter?: WebhookFilter)` | `stripe` | `payment_intent.created` |
|
|
1008
|
+
| `stripe.payment_intent_payment_failed(filter?: WebhookFilter)` | `stripe` | `payment_intent.payment_failed` |
|
|
1009
|
+
| `stripe.payment_intent_requires_action(filter?: WebhookFilter)` | `stripe` | `payment_intent.requires_action` |
|
|
1010
|
+
| `stripe.payment_intent_succeeded(filter?: WebhookFilter)` | `stripe` | `payment_intent.succeeded` |
|
|
1011
|
+
| `teams.channel_created(filter?: WebhookFilter)` | `teams` | `channel.created` |
|
|
1012
|
+
| `teams.channel_deleted(filter?: WebhookFilter)` | `teams` | `channel.deleted` |
|
|
1013
|
+
| `teams.channel_updated(filter?: WebhookFilter)` | `teams` | `channel.updated` |
|
|
1014
|
+
| `teams.chat_message_created(filter?: WebhookFilter)` | `teams` | `chat_message.created` |
|
|
1015
|
+
| `teams.chat_message_deleted(filter?: WebhookFilter)` | `teams` | `chat_message.deleted` |
|
|
1016
|
+
| `teams.chat_message_updated(filter?: WebhookFilter)` | `teams` | `chat_message.updated` |
|
|
1017
|
+
| `teams.chat_created(filter?: WebhookFilter)` | `teams` | `chat.created` |
|
|
1018
|
+
| `teams.chat_deleted(filter?: WebhookFilter)` | `teams` | `chat.deleted` |
|
|
1019
|
+
| `teams.chat_updated(filter?: WebhookFilter)` | `teams` | `chat.updated` |
|
|
1020
|
+
| `teams.member_created(filter?: WebhookFilter)` | `teams` | `member.created` |
|
|
1021
|
+
| `teams.member_deleted(filter?: WebhookFilter)` | `teams` | `member.deleted` |
|
|
1022
|
+
| `teams.member_updated(filter?: WebhookFilter)` | `teams` | `member.updated` |
|
|
1023
|
+
| `teams.message_created(filter?: WebhookFilter)` | `teams` | `message.created` |
|
|
1024
|
+
| `teams.message_deleted(filter?: WebhookFilter)` | `teams` | `message.deleted` |
|
|
1025
|
+
| `teams.message_updated(filter?: WebhookFilter)` | `teams` | `message.updated` |
|
|
1026
|
+
| `teams.reply_created(filter?: WebhookFilter)` | `teams` | `reply.created` |
|
|
1027
|
+
| `teams.reply_deleted(filter?: WebhookFilter)` | `teams` | `reply.deleted` |
|
|
1028
|
+
| `teams.reply_updated(filter?: WebhookFilter)` | `teams` | `reply.updated` |
|
|
1029
|
+
| `teams.team_deleted(filter?: WebhookFilter)` | `teams` | `team.deleted` |
|
|
1030
|
+
| `teams.team_updated(filter?: WebhookFilter)` | `teams` | `team.updated` |
|
|
1031
|
+
| `telegram.business_connection(filter?: WebhookFilter)` | `telegram` | `business_connection` |
|
|
1032
|
+
| `telegram.business_message(filter?: WebhookFilter)` | `telegram` | `business_message` |
|
|
1033
|
+
| `telegram.callback_query(filter?: WebhookFilter)` | `telegram` | `callback_query` |
|
|
1034
|
+
| `telegram.channel_post(filter?: WebhookFilter)` | `telegram` | `channel_post` |
|
|
1035
|
+
| `telegram.chat_boost(filter?: WebhookFilter)` | `telegram` | `chat_boost` |
|
|
1036
|
+
| `telegram.chat_join_request(filter?: WebhookFilter)` | `telegram` | `chat_join_request` |
|
|
1037
|
+
| `telegram.chat_member(filter?: WebhookFilter)` | `telegram` | `chat_member` |
|
|
1038
|
+
| `telegram.chosen_inline_result(filter?: WebhookFilter)` | `telegram` | `chosen_inline_result` |
|
|
1039
|
+
| `telegram.deleted_business_messages(filter?: WebhookFilter)` | `telegram` | `deleted_business_messages` |
|
|
1040
|
+
| `telegram.edited_business_message(filter?: WebhookFilter)` | `telegram` | `edited_business_message` |
|
|
1041
|
+
| `telegram.edited_channel_post(filter?: WebhookFilter)` | `telegram` | `edited_channel_post` |
|
|
1042
|
+
| `telegram.edited_message(filter?: WebhookFilter)` | `telegram` | `edited_message` |
|
|
1043
|
+
| `telegram.guest_message(filter?: WebhookFilter)` | `telegram` | `guest_message` |
|
|
1044
|
+
| `telegram.inline_query(filter?: WebhookFilter)` | `telegram` | `inline_query` |
|
|
1045
|
+
| `telegram.managed_bot(filter?: WebhookFilter)` | `telegram` | `managed_bot` |
|
|
1046
|
+
| `telegram.message(filter?: WebhookFilter)` | `telegram` | `message` |
|
|
1047
|
+
| `telegram.message_reaction(filter?: WebhookFilter)` | `telegram` | `message_reaction` |
|
|
1048
|
+
| `telegram.message_reaction_count(filter?: WebhookFilter)` | `telegram` | `message_reaction_count` |
|
|
1049
|
+
| `telegram.my_chat_member(filter?: WebhookFilter)` | `telegram` | `my_chat_member` |
|
|
1050
|
+
| `telegram.poll(filter?: WebhookFilter)` | `telegram` | `poll` |
|
|
1051
|
+
| `telegram.poll_answer(filter?: WebhookFilter)` | `telegram` | `poll_answer` |
|
|
1052
|
+
| `telegram.pre_checkout_query(filter?: WebhookFilter)` | `telegram` | `pre_checkout_query` |
|
|
1053
|
+
| `telegram.purchased_paid_media(filter?: WebhookFilter)` | `telegram` | `purchased_paid_media` |
|
|
1054
|
+
| `telegram.removed_chat_boost(filter?: WebhookFilter)` | `telegram` | `removed_chat_boost` |
|
|
1055
|
+
| `telegram.shipping_query(filter?: WebhookFilter)` | `telegram` | `shipping_query` |
|
|
1056
|
+
| `zendesk.organization_created(filter?: WebhookFilter)` | `zendesk` | `organization.created` |
|
|
1057
|
+
| `zendesk.organization_deleted(filter?: WebhookFilter)` | `zendesk` | `organization.deleted` |
|
|
1058
|
+
| `zendesk.organization_updated(filter?: WebhookFilter)` | `zendesk` | `organization.updated` |
|
|
1059
|
+
| `zendesk.ticket_created(filter?: WebhookFilter)` | `zendesk` | `ticket.created` |
|
|
1060
|
+
| `zendesk.ticket_deleted(filter?: WebhookFilter)` | `zendesk` | `ticket.deleted` |
|
|
1061
|
+
| `zendesk.ticket_updated(filter?: WebhookFilter)` | `zendesk` | `ticket.updated` |
|
|
1062
|
+
| `zendesk.user_created(filter?: WebhookFilter)` | `zendesk` | `user.created` |
|
|
1063
|
+
| `zendesk.user_deleted(filter?: WebhookFilter)` | `zendesk` | `user.deleted` |
|
|
1064
|
+
| `zendesk.user_updated(filter?: WebhookFilter)` | `zendesk` | `user.updated` |
|
|
1065
|
+
|
|
1066
|
+
## Other exported functions
|
|
1067
|
+
|
|
1068
|
+
Scheduling, cron and writeback utilities exported from the package root.
|
|
1069
|
+
|
|
1070
|
+
```ts
|
|
1071
|
+
/** Stable across attempts; deliberately independent of process-tick ordinals. */
|
|
1072
|
+
export function flowRunWritebackIdempotency(runId: string, stepId: string): string;
|
|
1073
|
+
```
|
|
1074
|
+
|
|
1075
|
+
```ts
|
|
1076
|
+
/**
|
|
1077
|
+
* The `schedule_id` a flow's schedule subscribes to. Deterministic from the
|
|
1078
|
+
* flow name and the declaration, so the local runner, `flows check` and the
|
|
1079
|
+
* journal all name the same slot stream without a registry — and injective:
|
|
1080
|
+
* a readable slug for humans, plus a hash of the exact declaration so
|
|
1081
|
+
* `1-5` and `1,5`, or two zones, or two long names sharing a prefix, never
|
|
1082
|
+
* share a stream (the kernel dispatches an event to its first matching
|
|
1083
|
+
* subscription only).
|
|
1084
|
+
*/
|
|
1085
|
+
export function scheduleIdFor(flowName: string, source: ScheduleTriggerSource): string;
|
|
1086
|
+
```
|
|
1087
|
+
|
|
1088
|
+
```ts
|
|
1089
|
+
/**
|
|
1090
|
+
* Standard five-field cron. Accepts `*`, values, ranges, lists and `/step`,
|
|
1091
|
+
* plus month and weekday names; refuses anything outside each field's range.
|
|
1092
|
+
* Validation, not evaluation — the schedule's clock is the runner's.
|
|
1093
|
+
*/
|
|
1094
|
+
export function parseCron(expression: string): CronFields;
|
|
1095
|
+
```
|
|
1096
|
+
|
|
1097
|
+
```ts
|
|
1098
|
+
export function cronGrid(fields: CronFields, tz?: string): CronGrid | undefined;
|
|
1099
|
+
```
|
|
1100
|
+
|
|
1101
|
+
```ts
|
|
1102
|
+
/** The fixed interval of a cron, when `cronGrid` finds one. Kept for callers that only need the period. */
|
|
1103
|
+
export function cronFixedIntervalMs(fields: CronFields, tz?: string): number | undefined;
|
|
1104
|
+
```
|
|
1105
|
+
|
|
1106
|
+
```ts
|
|
1107
|
+
/**
|
|
1108
|
+
* The longest gap between consecutive fires over two calendar years (one of
|
|
1109
|
+
* them leap), in milliseconds — a cron's natural quiet period. Evaluated on
|
|
1110
|
+
* the UTC calendar minute by minute; a zone offset does not change gap
|
|
1111
|
+
* lengths, and a DST shift changes one gap by at most an hour, which the
|
|
1112
|
+
* callers' multiple absorbs. An expression that fires at most once in the
|
|
1113
|
+
* span reports the whole span. Returns undefined when it never fires.
|
|
1114
|
+
*/
|
|
1115
|
+
export function cronMaxGapMs(fields: CronFields): number | undefined;
|
|
1116
|
+
```
|
|
1117
|
+
|
|
1118
|
+
```ts
|
|
1119
|
+
/** `every("5m")` — a fixed interval. Units: s, m, h, d. Minimum one second. */
|
|
1120
|
+
export function everyToMs(value: string): number;
|
|
1121
|
+
```
|
|
1122
|
+
|
|
1123
|
+
## Exported constants
|
|
1124
|
+
|
|
1125
|
+
Values exported from the package root, as declared.
|
|
1126
|
+
|
|
1127
|
+
```ts
|
|
1128
|
+
/**
|
|
1129
|
+
* The bound on the optional `done()` detail, in Unicode code points of the
|
|
1130
|
+
* FINAL normalized string — truncation suffix included.
|
|
1131
|
+
*
|
|
1132
|
+
* Stated in code points rather than `String.length` on purpose: `.length`
|
|
1133
|
+
* counts UTF-16 code units, so an emoji-heavy detail measured that way is
|
|
1134
|
+
* half the length a reader would call it. The number is the same order the
|
|
1135
|
+
* kernel uses for a gate's free-text detail
|
|
1136
|
+
* (`kernel/relayflowd/src/engine/remote.rs`), but it is not the same bound:
|
|
1137
|
+
* that one takes 2,000 characters and then appends its suffix.
|
|
1138
|
+
*
|
|
1139
|
+
* The runtime enforces this; it is exported so an author can measure a detail
|
|
1140
|
+
* before passing one.
|
|
1141
|
+
*/
|
|
1142
|
+
export const COMPLETION_DETAIL_MAX_CODE_POINTS = 2000;
|
|
1143
|
+
```
|
|
1144
|
+
|
|
1145
|
+
```ts
|
|
1146
|
+
/** Exact upstream event names, plus the generated Slack mention shorthand. */
|
|
1147
|
+
export const providerEventTypes = Object.freeze({
|
|
1148
|
+
"airtable": Object.freeze(["base.create","base.delete","base.update","record.create","record.delete","record.update","table.create","table.delete","table.update"] as const),
|
|
1149
|
+
"asana": Object.freeze(["project.added","project.changed","project.deleted","project.removed","section.added","section.changed","section.deleted","section.removed","task.added","task.changed","task.completed","task.deleted","task.removed","workspace.added","workspace.changed","workspace.deleted","workspace.removed"] as const),
|
|
1150
|
+
"azure-blob": Object.freeze(["file.created","file.deleted","file.updated"] as const),
|
|
1151
|
+
"box": Object.freeze(["file.created","file.deleted","file.updated"] as const),
|
|
1152
|
+
"calendly": Object.freeze(["event_type.canceled","event_type.created","event_type.deleted","event_type.updated","invitee.canceled","invitee.created","invitee.deleted","invitee.updated","scheduled_event.canceled","scheduled_event.created","scheduled_event.deleted","scheduled_event.updated"] as const),
|
|
1153
|
+
"clickup": Object.freeze(["folder.created","folder.deleted","folder.updated","list.created","list.deleted","list.updated","space.created","space.deleted","space.updated","task.created","task.deleted","task.updated"] as const),
|
|
1154
|
+
"cloudflare": Object.freeze(["access_custom_certificate_expiration_type","advanced_http_alert_error","billing_usage_alert","dedicated_ssl_certificate_event_type","health_check_status_notification","http_alert_origin_error","workers_alert","workers_observability_alert"] as const),
|
|
1155
|
+
"confluence": Object.freeze(["page.created","page.deleted","page.updated","space.created","space.deleted","space.updated"] as const),
|
|
1156
|
+
"daytona": Object.freeze(["sandbox.created","sandbox.state.updated","snapshot.created","snapshot.removed","snapshot.state.updated","volume.created","volume.state.updated"] as const),
|
|
1157
|
+
"docker-hub": Object.freeze(["push"] as const),
|
|
1158
|
+
"dropbox": Object.freeze(["file.changed"] as const),
|
|
1159
|
+
"fathom": Object.freeze(["new-meeting-content-ready"] as const),
|
|
1160
|
+
"gcp": Object.freeze(["billing.budget.alert","cloud-run.service.created","cloud-run.service.deleted","cloud-run.service.updated","error-reporting.event.logged","error-reporting.group.opened","error-reporting.group.reopened","monitoring.incident.closed","monitoring.incident.open"] as const),
|
|
1161
|
+
"gcs": Object.freeze(["file.created","file.deleted","file.updated"] as const),
|
|
1162
|
+
"github": Object.freeze(["check_run","check_run.completed","deployment_status.created","issue_comment","issue_comment.created","issues","issues.closed","issues.edited","issues.labeled","issues.opened","issues.reopened","issues.unlabeled","pull_request","pull_request.closed","pull_request.edited","pull_request.labeled","pull_request.opened","pull_request.ready_for_review","pull_request.reopened","pull_request.synchronize","pull_request.unlabeled","pull_request_review","pull_request_review.dismissed","pull_request_review.edited","pull_request_review.submitted","pull_request_review_comment.created","pull_request_review_thread.resolved","push","status"] as const),
|
|
1163
|
+
"gitlab": Object.freeze(["build","build.canceled","build.created","build.failed","build.manual","build.pending","build.running","build.skipped","build.success","deployment","deployment.canceled","deployment.created","deployment.failed","deployment.running","deployment.success","issue","issue.close","issue.open","issue.reopen","issue.update","job.canceled","job.created","job.failed","job.manual","job.pending","job.running","job.skipped","job.success","merge_request","merge_request.approved","merge_request.close","merge_request.merge","merge_request.open","merge_request.reopen","merge_request.unapproved","merge_request.update","note","note.Commit","note.Issue","note.MergeRequest","note.Snippet","pipeline","pipeline.canceled","pipeline.created","pipeline.failed","pipeline.manual","pipeline.pending","pipeline.running","pipeline.skipped","pipeline.success","pipeline.waiting_for_resource","push","tag_push"] as const),
|
|
1164
|
+
"gmail": Object.freeze(["file.created","file.deleted","file.updated"] as const),
|
|
1165
|
+
"google-calendar": Object.freeze(["calendar.exists","calendar.not_exists","calendar.sync"] as const),
|
|
1166
|
+
"google-drive": Object.freeze(["file.created","file.deleted","file.updated"] as const),
|
|
1167
|
+
"granola": Object.freeze(["file.created","note.access_granted","note.edited","note.generated"] as const),
|
|
1168
|
+
"hubspot": Object.freeze(["company.associationChange","company.created","company.deleted","company.merged","company.propertyChange","contact.associationChange","contact.created","contact.deleted","contact.merged","contact.propertyChange","deal.associationChange","deal.created","deal.deleted","deal.merged","deal.propertyChange","ticket.associationChange","ticket.created","ticket.deleted","ticket.merged","ticket.propertyChange"] as const),
|
|
1169
|
+
"intercom": Object.freeze(["company.archived","company.closed","company.created","company.deleted","company.reopened","company.updated","contact.archived","contact.closed","contact.created","contact.deleted","contact.reopened","contact.updated","conversation.archived","conversation.closed","conversation.created","conversation.deleted","conversation.reopened","conversation.updated"] as const),
|
|
1170
|
+
"jira": Object.freeze(["comment.created","comment.deleted","comment.updated","issue.created","issue.deleted","issue.updated","project.created","project.deleted","project.updated","sprint.created","sprint.deleted","sprint.updated"] as const),
|
|
1171
|
+
"linear": Object.freeze(["AgentSessionEvent.created","AgentSessionEvent.prompted","AppUserNotification.issueAssignedToYou","AppUserNotification.issueCommentMention","AppUserNotification.issueCommentReaction","AppUserNotification.issueEmojiReaction","AppUserNotification.issueMention","AppUserNotification.issueNewComment","AppUserNotification.issueStatusChanged","AppUserNotification.issueUnassignedFromYou","OAuthApp.revoked","PermissionChange.teamAccessChanged","comment.create","comment.remove","comment.update","cycle.create","cycle.remove","cycle.update","issue.create","issue.remove","issue.update","label.create","label.remove","label.update","milestone.create","milestone.remove","milestone.update","project.create","project.remove","project.update","roadmap.create","roadmap.remove","roadmap.update"] as const),
|
|
1172
|
+
"mailgun": Object.freeze(["event.accepted","event.clicked","event.complained","event.delivered","event.failed","event.opened","event.permanent_fail","event.stored","event.unsubscribed","list.created","list.updated","message.accepted","message.delivered","message.failed","message.stored"] as const),
|
|
1173
|
+
"mixpanel": Object.freeze(["cohort.create","cohort.delete","cohort.merge","cohort.update","event.create","event.delete","event.merge","event.update","profile.create","profile.delete","profile.merge","profile.update"] as const),
|
|
1174
|
+
"neon": Object.freeze(["advisor.issue_raised","endpoint.state_changed","operation.cancelled","operation.failed","operation.succeeded"] as const),
|
|
1175
|
+
"notion": Object.freeze(["database.created","database.deleted","database.moved","database.schema_updated","database.undeleted","page.content_updated","page.created","page.deleted","page.locked","page.moved","page.properties_updated","page.undeleted","page.unlocked"] as const),
|
|
1176
|
+
"onedrive": Object.freeze(["file.created","file.deleted","file.updated"] as const),
|
|
1177
|
+
"pipedrive": Object.freeze(["activity.created","activity.deleted","activity.updated","deal.created","deal.deleted","deal.lost","deal.updated","deal.won","organization.created","organization.deleted","organization.updated","person.created","person.deleted","person.updated"] as const),
|
|
1178
|
+
"postgres": Object.freeze(["file.created","file.deleted","file.updated"] as const),
|
|
1179
|
+
"posthog": Object.freeze(["posthog.alert.resolved","posthog.alert.triggered"] as const),
|
|
1180
|
+
"ramp": Object.freeze(["applications.status_updated","bills.approved","bills.archived","bills.created","bills.paid","bills.ready_to_sync","bills.rejected","bills.updated","entities.created","item_receipts.created","payments.updated","purchase_orders.archived","purchase_orders.created","purchase_orders.updated","reimbursements.batch_payment_reimbursed","reimbursements.ready_for_review","reimbursements.ready_to_sync","reimbursements.sync_requested","spend_requests.comment_created","spend_requests.created","transactions.all_requirements_met_and_approved_changed","transactions.authorized","transactions.body_coding_updated","transactions.cleared","transactions.declined","transactions.ready_for_review","transactions.ready_to_sync","transactions.receipt_added","transactions.sync_requested","transactions.synced","unified_requests.created","unified_requests.external_approval_request","unified_requests.external_approval_request_reset","unified_requests.modified","unified_requests.node_advanced","unified_requests.override_approved","unified_requests.updated","users.invite_accepted","vendor_agreements.archived","vendor_agreements.created","vendor_agreements.deleted","vendor_agreements.document_added","vendor_agreements.renewal_milestone","vendor_agreements.updated","vendors.activated","vendors.approved","vendors.updated"] as const),
|
|
1181
|
+
"recall": Object.freeze(["file.created","recording.created","transcript.done"] as const),
|
|
1182
|
+
"redis": Object.freeze(["file.created","file.deleted","file.updated"] as const),
|
|
1183
|
+
"s3": Object.freeze(["file.created","file.deleted","file.updated"] as const),
|
|
1184
|
+
"salesforce": Object.freeze(["Account.created","Account.deleted","Account.updated","Account.upserted","Case.closed","Case.created","Case.deleted","Case.updated","Case.upserted","Contact.created","Contact.deleted","Contact.updated","Contact.upserted","Lead.converted","Lead.created","Lead.deleted","Lead.updated","Lead.upserted","Opportunity.created","Opportunity.deleted","Opportunity.updated","Opportunity.upserted"] as const),
|
|
1185
|
+
"segment": Object.freeze(["group.create","group.update","group.upsert","identify.create","identify.update","identify.upsert","page.create","page.update","page.upsert","track.create","track.update","track.upsert"] as const),
|
|
1186
|
+
"sendgrid": Object.freeze(["contact.create","contact.delete","contact.update","event.bounce","event.click","event.deferred","event.delivered","event.dropped","event.group_resubscribe","event.group_unsubscribe","event.open","event.processed","event.spamreport","event.unsubscribe","mail.create","mail.delete","mail.update"] as const),
|
|
1187
|
+
"sharepoint": Object.freeze(["file.created","file.deleted","file.updated"] as const),
|
|
1188
|
+
"shopify": Object.freeze(["customer.cancel","customer.create","customer.delete","customer.fulfill","customer.paid","customer.update","fulfillment.cancel","fulfillment.create","fulfillment.delete","fulfillment.fulfill","fulfillment.paid","fulfillment.update","order.cancel","order.create","order.delete","order.fulfill","order.paid","order.update","product.cancel","product.create","product.delete","product.fulfill","product.paid","product.update"] as const),
|
|
1189
|
+
"shortcut": Object.freeze(["epic.create","epic.delete","epic.update","story.create","story.delete","story.update"] as const),
|
|
1190
|
+
"slack": Object.freeze(["app_mention","channel.archived","channel.created","channel.deleted","channel.member_joined","channel.member_left","channel.renamed","channel.unarchived","group.archived","group.deleted","group.renamed","group.unarchived","message","message.created","message.deleted","message.updated","reaction.added","reaction.removed","reaction_added","user.changed","user.joined"] as const),
|
|
1191
|
+
"stripe": Object.freeze(["charge.failed","charge.refunded","charge.succeeded","charge.updated","customer.created","customer.deleted","customer.subscription.created","customer.subscription.deleted","customer.subscription.updated","customer.updated","invoice.created","invoice.finalized","invoice.paid","invoice.payment_failed","invoice.updated","invoice.voided","payment_intent.canceled","payment_intent.created","payment_intent.payment_failed","payment_intent.requires_action","payment_intent.succeeded"] as const),
|
|
1192
|
+
"teams": Object.freeze(["channel.created","channel.deleted","channel.updated","chat.created","chat.deleted","chat.updated","chat_message.created","chat_message.deleted","chat_message.updated","member.created","member.deleted","member.updated","message.created","message.deleted","message.updated","reply.created","reply.deleted","reply.updated","team.deleted","team.updated"] as const),
|
|
1193
|
+
"telegram": Object.freeze(["business_connection","business_message","callback_query","channel_post","chat_boost","chat_join_request","chat_member","chosen_inline_result","deleted_business_messages","edited_business_message","edited_channel_post","edited_message","guest_message","inline_query","managed_bot","message","message_reaction","message_reaction_count","my_chat_member","poll","poll_answer","pre_checkout_query","purchased_paid_media","removed_chat_boost","shipping_query"] as const),
|
|
1194
|
+
"zendesk": Object.freeze(["organization.created","organization.deleted","organization.updated","ticket.created","ticket.deleted","ticket.updated","user.created","user.deleted","user.updated"] as const),
|
|
1195
|
+
});
|
|
1196
|
+
```
|
|
1197
|
+
|
|
1198
|
+
## Referenced declarations
|
|
1199
|
+
|
|
1200
|
+
Every type named by a declaration above or by the helper namespace table, followed transitively through the file that names it. Dependency types are named by import; completion reasons and `Helpers` are the tables above.
|
|
1201
|
+
|
|
1202
|
+
### TriggerSource
|
|
1203
|
+
|
|
1204
|
+
```ts
|
|
1205
|
+
/** A webhook inbox subscription, or a `schedule.*` tick subscription. */
|
|
1206
|
+
export type TriggerSource = WebhookTriggerSource | ScheduleTriggerSource;
|
|
1207
|
+
```
|
|
1208
|
+
|
|
1209
|
+
### CloudCapabilities
|
|
1210
|
+
|
|
1211
|
+
```ts
|
|
1212
|
+
/** Capability ports are injected by a host runtime, never constructed by authored input. */
|
|
1213
|
+
export interface CloudCapabilities {
|
|
1214
|
+
readonly babysitterTurn?: CloudBabysitterTurnCapability;
|
|
1215
|
+
}
|
|
1216
|
+
```
|
|
1217
|
+
|
|
1218
|
+
### ActivityOptions
|
|
1219
|
+
|
|
1220
|
+
```ts
|
|
1221
|
+
/** Bounds are required so a body-level subscription cannot keep a run open forever. */
|
|
1222
|
+
export interface ActivityOptions {
|
|
1223
|
+
/** Coalesce a burst until this long after its most recent frame. Defaults to zero. */
|
|
1224
|
+
readonly settle?: ActivityDuration;
|
|
1225
|
+
/** Per wake: return idle after this long without a buffered matching frame. */
|
|
1226
|
+
readonly idle: ActivityDuration;
|
|
1227
|
+
/** Absolute cap fixed when the subscription is opened. */
|
|
1228
|
+
readonly deadline: ActivityDuration;
|
|
1229
|
+
/** Include events caused by the run identity. Defaults to false. */
|
|
1230
|
+
readonly includeSelf?: boolean;
|
|
1231
|
+
}
|
|
1232
|
+
```
|
|
1233
|
+
|
|
1234
|
+
### Activity
|
|
1235
|
+
|
|
1236
|
+
```ts
|
|
1237
|
+
/** A durable, bounded cursor over matching provider events. */
|
|
1238
|
+
export interface Activity {
|
|
1239
|
+
next(): Promise<Wake>;
|
|
1240
|
+
close(): Promise<void>;
|
|
1241
|
+
}
|
|
1242
|
+
```
|
|
1243
|
+
|
|
1244
|
+
### CloudHelper
|
|
1245
|
+
|
|
1246
|
+
```ts
|
|
1247
|
+
/** AgentWorkforce Cloud helper contract generated from its relayfile adapter. */
|
|
1248
|
+
export interface CloudHelper {
|
|
1249
|
+
workers: {
|
|
1250
|
+
mintEnrollmentToken(input: {
|
|
1251
|
+
workspaceId: string;
|
|
1252
|
+
name: string;
|
|
1253
|
+
/** Principal resolved at `<mount>/principals/<as>`. */
|
|
1254
|
+
as: string;
|
|
1255
|
+
}): Step<EnrollmentReceipt>;
|
|
1256
|
+
list(input: { workspaceId: string; as: string }): Step<{
|
|
1257
|
+
online: WorkerSummary[];
|
|
1258
|
+
all: WorkerSummary[];
|
|
1259
|
+
}>;
|
|
1260
|
+
heartbeat(input: { workerId: string; as: string }): Step<Heartbeat>;
|
|
1261
|
+
awaitHeartbeat(input: {
|
|
1262
|
+
workerId: string;
|
|
1263
|
+
as: string;
|
|
1264
|
+
within: string;
|
|
1265
|
+
}): Step<Heartbeat>;
|
|
1266
|
+
};
|
|
1267
|
+
schedules: {
|
|
1268
|
+
create(input: {
|
|
1269
|
+
workspaceId: string;
|
|
1270
|
+
workflow: string;
|
|
1271
|
+
cron: string;
|
|
1272
|
+
name: string;
|
|
1273
|
+
as: string;
|
|
1274
|
+
}): Step<{ id: string }>;
|
|
1275
|
+
fire(input: { scheduleId: string; as: string }): Step<{ accepted: boolean }>;
|
|
1276
|
+
get(input: { scheduleId: string; as: string }): Step<ScheduleState>;
|
|
1277
|
+
remove(input: { scheduleId: string; as: string }): Step<{ deleted: boolean }>;
|
|
1278
|
+
};
|
|
1279
|
+
runs: {
|
|
1280
|
+
journal(input: { runId: string; as: string }): Step<RunJournal>;
|
|
1281
|
+
};
|
|
1282
|
+
}
|
|
1283
|
+
```
|
|
1284
|
+
|
|
1285
|
+
### MemoryHelper
|
|
1286
|
+
|
|
1287
|
+
```ts
|
|
1288
|
+
export interface MemoryHelper {
|
|
1289
|
+
/** Local script memory read; does not journal a step. */
|
|
1290
|
+
recall(query: string, options?: MemoryRecallOptions): Promise<HistoryEntry[]>;
|
|
1291
|
+
/** Best matching decision trajectory, or an empty array. No journal step. */
|
|
1292
|
+
why(task: string): Promise<TrajectoryEntry[]>;
|
|
1293
|
+
/** Journals the finding on the durable root run, then persists it to this flow's script memory; later runs see it via recall/why. Idempotent per finding. Must be awaited. */
|
|
1294
|
+
learn(finding: MemoryFinding): Promise<void>;
|
|
1295
|
+
}
|
|
1296
|
+
```
|
|
1297
|
+
|
|
1298
|
+
### WebhookFilter
|
|
1299
|
+
|
|
1300
|
+
```ts
|
|
1301
|
+
/** Recursive object subset; array and scalar leaves match exactly. */
|
|
1302
|
+
export type WebhookFilter = { readonly [key: string]: WebhookValue };
|
|
1303
|
+
```
|
|
1304
|
+
|
|
1305
|
+
### WebhookTriggerSource
|
|
1306
|
+
|
|
1307
|
+
```ts
|
|
1308
|
+
export interface WebhookTriggerSource {
|
|
1309
|
+
readonly kind: "webhook";
|
|
1310
|
+
readonly name: string;
|
|
1311
|
+
readonly filter?: WebhookFilter;
|
|
1312
|
+
}
|
|
1313
|
+
```
|
|
1314
|
+
|
|
1315
|
+
### ScheduleCronOptions
|
|
1316
|
+
|
|
1317
|
+
```ts
|
|
1318
|
+
export interface ScheduleCronOptions {
|
|
1319
|
+
readonly tz?: string;
|
|
1320
|
+
}
|
|
1321
|
+
```
|
|
1322
|
+
|
|
1323
|
+
### ScheduleTriggerSource
|
|
1324
|
+
|
|
1325
|
+
```ts
|
|
1326
|
+
/**
|
|
1327
|
+
* Schedule triggers. Hand-written, unlike the provider namespaces under
|
|
1328
|
+
* `triggers/`, because a schedule is not a provider event: there is no inbox
|
|
1329
|
+
* and no upstream mapping to generate from. A schedule is an event source —
|
|
1330
|
+
* locally the `flows tick` runner, on Cloud a relaycron cron — that submits
|
|
1331
|
+
* `flows.tick` events, and this namespace declares which ticks a flow wants.
|
|
1332
|
+
*
|
|
1333
|
+
* Constructing a source opens nothing. The SDK lowers it to the same
|
|
1334
|
+
* `flows.tick` subscription `testdata/tick-heartbeat.flow.yaml` writes by
|
|
1335
|
+
* hand (`scheduleTriggerSpec`), and `flows schedule` sends the cron to Cloud.
|
|
1336
|
+
*/
|
|
1337
|
+
|
|
1338
|
+
export interface ScheduleTriggerSource {
|
|
1339
|
+
readonly kind: "schedule";
|
|
1340
|
+
/** Fixed: every schedule is delivered as a `flows.tick` event. */
|
|
1341
|
+
readonly name: "flows.tick";
|
|
1342
|
+
/** A 5-field cron expression, when declared with `schedule.cron`. */
|
|
1343
|
+
readonly cron?: string;
|
|
1344
|
+
/** IANA zone for `cron`; defaults to UTC. */
|
|
1345
|
+
readonly tz?: string;
|
|
1346
|
+
/** Fixed interval in milliseconds, when declared with `schedule.every` or when `cron` is exactly a tick grid. */
|
|
1347
|
+
readonly intervalMs?: number;
|
|
1348
|
+
/** Phase of that grid: the first fire is `epochMs` past the Unix epoch; present exactly when `intervalMs` is. */
|
|
1349
|
+
readonly epochMs?: number;
|
|
1350
|
+
}
|
|
1351
|
+
```
|
|
1352
|
+
|
|
1353
|
+
### CronFields
|
|
1354
|
+
|
|
1355
|
+
```ts
|
|
1356
|
+
export interface CronFields {
|
|
1357
|
+
readonly minute: string;
|
|
1358
|
+
readonly hour: string;
|
|
1359
|
+
readonly dayOfMonth: string;
|
|
1360
|
+
readonly month: string;
|
|
1361
|
+
readonly dayOfWeek: string;
|
|
1362
|
+
}
|
|
1363
|
+
```
|
|
1364
|
+
|
|
1365
|
+
### CronGrid
|
|
1366
|
+
|
|
1367
|
+
```ts
|
|
1368
|
+
/** A tick grid that reproduces a cron exactly: fire every `intervalMs`, phase-aligned at `epochMs` past the Unix epoch. */
|
|
1369
|
+
export interface CronGrid {
|
|
1370
|
+
readonly intervalMs: number;
|
|
1371
|
+
readonly epochMs: number;
|
|
1372
|
+
}
|
|
1373
|
+
```
|
|
1374
|
+
|
|
1375
|
+
### AirtableHelper (not exported from the package root)
|
|
1376
|
+
|
|
1377
|
+
```ts
|
|
1378
|
+
export type AirtableHelper = UnavailableHelper;
|
|
1379
|
+
```
|
|
1380
|
+
|
|
1381
|
+
### AsanaHelper (not exported from the package root)
|
|
1382
|
+
|
|
1383
|
+
```ts
|
|
1384
|
+
export type AsanaHelper = JournalHelper<ReturnType<typeof asanaClient>>;
|
|
1385
|
+
```
|
|
1386
|
+
|
|
1387
|
+
### AzureBlobHelper (not exported from the package root)
|
|
1388
|
+
|
|
1389
|
+
```ts
|
|
1390
|
+
export type AzureBlobHelper = JournalHelper<ReturnType<typeof azureBlobClient>>;
|
|
1391
|
+
```
|
|
1392
|
+
|
|
1393
|
+
### BoxHelper (not exported from the package root)
|
|
1394
|
+
|
|
1395
|
+
```ts
|
|
1396
|
+
export type BoxHelper = JournalHelper<ReturnType<typeof boxClient>>;
|
|
1397
|
+
```
|
|
1398
|
+
|
|
1399
|
+
### CalendlyHelper (not exported from the package root)
|
|
1400
|
+
|
|
1401
|
+
```ts
|
|
1402
|
+
export type CalendlyHelper = JournalHelper<ReturnType<typeof calendlyClient>>;
|
|
1403
|
+
```
|
|
1404
|
+
|
|
1405
|
+
### ClickupHelper (not exported from the package root)
|
|
1406
|
+
|
|
1407
|
+
```ts
|
|
1408
|
+
export type ClickupHelper = JournalHelper<ReturnType<typeof clickupClient>>;
|
|
1409
|
+
```
|
|
1410
|
+
|
|
1411
|
+
### CloudflareHelper (not exported from the package root)
|
|
1412
|
+
|
|
1413
|
+
```ts
|
|
1414
|
+
export type CloudflareHelper = JournalHelper<ReturnType<typeof cloudflareClient>>;
|
|
1415
|
+
```
|
|
1416
|
+
|
|
1417
|
+
### ConfluenceHelper (not exported from the package root)
|
|
1418
|
+
|
|
1419
|
+
```ts
|
|
1420
|
+
export type ConfluenceHelper = JournalHelper<ReturnType<typeof confluenceClient>>;
|
|
1421
|
+
```
|
|
1422
|
+
|
|
1423
|
+
### DaytonaHelper (not exported from the package root)
|
|
1424
|
+
|
|
1425
|
+
```ts
|
|
1426
|
+
export type DaytonaHelper = JournalHelper<ReturnType<typeof daytonaClient>>;
|
|
1427
|
+
```
|
|
1428
|
+
|
|
1429
|
+
### DockerHubHelper (not exported from the package root)
|
|
1430
|
+
|
|
1431
|
+
```ts
|
|
1432
|
+
export type DockerHubHelper = UnavailableHelper;
|
|
1433
|
+
```
|
|
1434
|
+
|
|
1435
|
+
### DropboxHelper (not exported from the package root)
|
|
1436
|
+
|
|
1437
|
+
```ts
|
|
1438
|
+
export type DropboxHelper = JournalHelper<ReturnType<typeof dropboxClient>>;
|
|
1439
|
+
```
|
|
1440
|
+
|
|
1441
|
+
### FathomHelper (not exported from the package root)
|
|
1442
|
+
|
|
1443
|
+
```ts
|
|
1444
|
+
export type FathomHelper = UnavailableHelper;
|
|
1445
|
+
```
|
|
1446
|
+
|
|
1447
|
+
### GcpHelper (not exported from the package root)
|
|
1448
|
+
|
|
1449
|
+
```ts
|
|
1450
|
+
export type GcpHelper = UnavailableHelper;
|
|
1451
|
+
```
|
|
1452
|
+
|
|
1453
|
+
### GcsHelper (not exported from the package root)
|
|
1454
|
+
|
|
1455
|
+
```ts
|
|
1456
|
+
export type GcsHelper = JournalHelper<ReturnType<typeof gcsClient>>;
|
|
1457
|
+
```
|
|
1458
|
+
|
|
1459
|
+
### GithubHelper (not exported from the package root)
|
|
1460
|
+
|
|
1461
|
+
```ts
|
|
1462
|
+
export type GithubHelper = JournalHelper<ReturnType<typeof githubClient>>;
|
|
1463
|
+
```
|
|
1464
|
+
|
|
1465
|
+
### GitlabHelper (not exported from the package root)
|
|
1466
|
+
|
|
1467
|
+
```ts
|
|
1468
|
+
export type GitlabHelper = JournalHelper<ReturnType<typeof gitlabClient>>;
|
|
1469
|
+
```
|
|
1470
|
+
|
|
1471
|
+
### GmailHelper (not exported from the package root)
|
|
1472
|
+
|
|
1473
|
+
```ts
|
|
1474
|
+
export type GmailHelper = JournalHelper<ReturnType<typeof gmailClient>>;
|
|
1475
|
+
```
|
|
1476
|
+
|
|
1477
|
+
### GoogleCalendarHelper (not exported from the package root)
|
|
1478
|
+
|
|
1479
|
+
```ts
|
|
1480
|
+
export type GoogleCalendarHelper = JournalHelper<ReturnType<typeof googleCalendarClient>>;
|
|
1481
|
+
```
|
|
1482
|
+
|
|
1483
|
+
### GoogleDriveHelper (not exported from the package root)
|
|
1484
|
+
|
|
1485
|
+
```ts
|
|
1486
|
+
export type GoogleDriveHelper = JournalHelper<ReturnType<typeof googleDriveClient>>;
|
|
1487
|
+
```
|
|
1488
|
+
|
|
1489
|
+
### GranolaHelper (not exported from the package root)
|
|
1490
|
+
|
|
1491
|
+
```ts
|
|
1492
|
+
export type GranolaHelper = JournalHelper<ReturnType<typeof granolaClient>>;
|
|
1493
|
+
```
|
|
1494
|
+
|
|
1495
|
+
### HubspotHelper (not exported from the package root)
|
|
1496
|
+
|
|
1497
|
+
```ts
|
|
1498
|
+
export type HubspotHelper = JournalHelper<ReturnType<typeof hubspotClient>>;
|
|
1499
|
+
```
|
|
1500
|
+
|
|
1501
|
+
### IntercomHelper (not exported from the package root)
|
|
1502
|
+
|
|
1503
|
+
```ts
|
|
1504
|
+
export type IntercomHelper = JournalHelper<ReturnType<typeof intercomClient>>;
|
|
1505
|
+
```
|
|
1506
|
+
|
|
1507
|
+
### JiraHelper (not exported from the package root)
|
|
1508
|
+
|
|
1509
|
+
```ts
|
|
1510
|
+
export type JiraHelper = JournalHelper<ReturnType<typeof jiraClient>>;
|
|
1511
|
+
```
|
|
1512
|
+
|
|
1513
|
+
### LinearHelper (not exported from the package root)
|
|
1514
|
+
|
|
1515
|
+
```ts
|
|
1516
|
+
export type LinearHelper = JournalHelper<ReturnType<typeof linearClient>>;
|
|
1517
|
+
```
|
|
1518
|
+
|
|
1519
|
+
### MailgunHelper (not exported from the package root)
|
|
1520
|
+
|
|
1521
|
+
```ts
|
|
1522
|
+
export type MailgunHelper = JournalHelper<ReturnType<typeof mailgunClient>>;
|
|
1523
|
+
```
|
|
1524
|
+
|
|
1525
|
+
### MixpanelHelper (not exported from the package root)
|
|
1526
|
+
|
|
1527
|
+
```ts
|
|
1528
|
+
export type MixpanelHelper = JournalHelper<ReturnType<typeof mixpanelClient>>;
|
|
1529
|
+
```
|
|
1530
|
+
|
|
1531
|
+
### NeonHelper (not exported from the package root)
|
|
1532
|
+
|
|
1533
|
+
```ts
|
|
1534
|
+
export type NeonHelper = UnavailableHelper;
|
|
1535
|
+
```
|
|
1536
|
+
|
|
1537
|
+
### NotionHelper (not exported from the package root)
|
|
1538
|
+
|
|
1539
|
+
```ts
|
|
1540
|
+
export type NotionHelper = JournalHelper<ReturnType<typeof notionClient>>;
|
|
1541
|
+
```
|
|
1542
|
+
|
|
1543
|
+
### OnedriveHelper (not exported from the package root)
|
|
1544
|
+
|
|
1545
|
+
```ts
|
|
1546
|
+
export type OnedriveHelper = JournalHelper<ReturnType<typeof onedriveClient>>;
|
|
1547
|
+
```
|
|
1548
|
+
|
|
1549
|
+
### PipedriveHelper (not exported from the package root)
|
|
1550
|
+
|
|
1551
|
+
```ts
|
|
1552
|
+
export type PipedriveHelper = JournalHelper<ReturnType<typeof pipedriveClient>>;
|
|
1553
|
+
```
|
|
1554
|
+
|
|
1555
|
+
### PostgresHelper (not exported from the package root)
|
|
1556
|
+
|
|
1557
|
+
```ts
|
|
1558
|
+
export type PostgresHelper = JournalHelper<ReturnType<typeof postgresClient>>;
|
|
1559
|
+
```
|
|
1560
|
+
|
|
1561
|
+
### PosthogHelper (not exported from the package root)
|
|
1562
|
+
|
|
1563
|
+
```ts
|
|
1564
|
+
export type PosthogHelper = UnavailableHelper;
|
|
1565
|
+
```
|
|
1566
|
+
|
|
1567
|
+
### RampHelper (not exported from the package root)
|
|
1568
|
+
|
|
1569
|
+
```ts
|
|
1570
|
+
export type RampHelper = JournalHelper<ReturnType<typeof rampClient>>;
|
|
1571
|
+
```
|
|
1572
|
+
|
|
1573
|
+
### RecallHelper (not exported from the package root)
|
|
1574
|
+
|
|
1575
|
+
```ts
|
|
1576
|
+
export type RecallHelper = JournalHelper<ReturnType<typeof recallClient>>;
|
|
1577
|
+
```
|
|
1578
|
+
|
|
1579
|
+
### RedditHelper (not exported from the package root)
|
|
1580
|
+
|
|
1581
|
+
```ts
|
|
1582
|
+
export type RedditHelper = JournalHelper<ReturnType<typeof redditClient>>;
|
|
1583
|
+
```
|
|
1584
|
+
|
|
1585
|
+
### RedisHelper (not exported from the package root)
|
|
1586
|
+
|
|
1587
|
+
```ts
|
|
1588
|
+
export type RedisHelper = JournalHelper<ReturnType<typeof redisClient>>;
|
|
1589
|
+
```
|
|
1590
|
+
|
|
1591
|
+
### S3Helper (not exported from the package root)
|
|
1592
|
+
|
|
1593
|
+
```ts
|
|
1594
|
+
export type S3Helper = JournalHelper<ReturnType<typeof s3Client>>;
|
|
1595
|
+
```
|
|
1596
|
+
|
|
1597
|
+
### SalesforceHelper (not exported from the package root)
|
|
1598
|
+
|
|
1599
|
+
```ts
|
|
1600
|
+
export type SalesforceHelper = JournalHelper<ReturnType<typeof salesforceClient>>;
|
|
1601
|
+
```
|
|
1602
|
+
|
|
1603
|
+
### SegmentHelper (not exported from the package root)
|
|
1604
|
+
|
|
1605
|
+
```ts
|
|
1606
|
+
export type SegmentHelper = UnavailableHelper;
|
|
1607
|
+
```
|
|
1608
|
+
|
|
1609
|
+
### SendgridHelper (not exported from the package root)
|
|
1610
|
+
|
|
1611
|
+
```ts
|
|
1612
|
+
export type SendgridHelper = JournalHelper<ReturnType<typeof sendgridClient>>;
|
|
1613
|
+
```
|
|
1614
|
+
|
|
1615
|
+
### SharepointHelper (not exported from the package root)
|
|
1616
|
+
|
|
1617
|
+
```ts
|
|
1618
|
+
export type SharepointHelper = JournalHelper<ReturnType<typeof sharepointClient>>;
|
|
1619
|
+
```
|
|
1620
|
+
|
|
1621
|
+
### ShopifyHelper (not exported from the package root)
|
|
1622
|
+
|
|
1623
|
+
```ts
|
|
1624
|
+
export type ShopifyHelper = UnavailableHelper;
|
|
1625
|
+
```
|
|
1626
|
+
|
|
1627
|
+
### ShortcutHelper (not exported from the package root)
|
|
1628
|
+
|
|
1629
|
+
```ts
|
|
1630
|
+
export type ShortcutHelper = JournalHelper<ReturnType<typeof shortcutClient>>;
|
|
1631
|
+
```
|
|
1632
|
+
|
|
1633
|
+
### SlackHelper
|
|
1634
|
+
|
|
1635
|
+
```ts
|
|
1636
|
+
/** Slack writeback helpers; every call is a journal-backed effect. */
|
|
1637
|
+
export interface SlackHelper {
|
|
1638
|
+
post(channel: string, text: string | SlackPostMessage, opts?: SlackPostOptions): Step<SlackReceipt>;
|
|
1639
|
+
dm(user: string, text: string): Step<{ user: string; ts: string }>;
|
|
1640
|
+
reply(channel: string, threadTs: string, text: string): Step<SlackReceipt>;
|
|
1641
|
+
react(channel: string, messageTs: string, emoji: string): Step<void>;
|
|
1642
|
+
}
|
|
1643
|
+
```
|
|
1644
|
+
|
|
1645
|
+
### StripeHelper (not exported from the package root)
|
|
1646
|
+
|
|
1647
|
+
```ts
|
|
1648
|
+
export type StripeHelper = JournalHelper<ReturnType<typeof stripeClient>>;
|
|
1649
|
+
```
|
|
1650
|
+
|
|
1651
|
+
### TeamsHelper (not exported from the package root)
|
|
1652
|
+
|
|
1653
|
+
```ts
|
|
1654
|
+
export type TeamsHelper = JournalHelper<ReturnType<typeof teamsClient>>;
|
|
1655
|
+
```
|
|
1656
|
+
|
|
1657
|
+
### TelegramHelper (not exported from the package root)
|
|
1658
|
+
|
|
1659
|
+
```ts
|
|
1660
|
+
export type TelegramHelper = JournalHelper<ReturnType<typeof telegramClient>>;
|
|
1661
|
+
```
|
|
1662
|
+
|
|
1663
|
+
### WebhookServerHelper (not exported from the package root)
|
|
1664
|
+
|
|
1665
|
+
```ts
|
|
1666
|
+
export type WebhookServerHelper = UnavailableHelper;
|
|
1667
|
+
```
|
|
1668
|
+
|
|
1669
|
+
### XHelper (not exported from the package root)
|
|
1670
|
+
|
|
1671
|
+
```ts
|
|
1672
|
+
export type XHelper = UnavailableHelper;
|
|
1673
|
+
```
|
|
1674
|
+
|
|
1675
|
+
### ZendeskHelper (not exported from the package root)
|
|
1676
|
+
|
|
1677
|
+
```ts
|
|
1678
|
+
export type ZendeskHelper = JournalHelper<ReturnType<typeof zendeskClient>>;
|
|
1679
|
+
```
|
|
1680
|
+
|
|
1681
|
+
### EnrollmentReceipt
|
|
1682
|
+
|
|
1683
|
+
```ts
|
|
1684
|
+
export interface EnrollmentReceipt {
|
|
1685
|
+
/** Mount path for the token. The credential itself never enters the journal. */
|
|
1686
|
+
tokenPath: string;
|
|
1687
|
+
expiresAt: string;
|
|
1688
|
+
registerCommand: string;
|
|
1689
|
+
}
|
|
1690
|
+
```
|
|
1691
|
+
|
|
1692
|
+
### Heartbeat
|
|
1693
|
+
|
|
1694
|
+
```ts
|
|
1695
|
+
export interface Heartbeat extends WorkerSummary {}
|
|
1696
|
+
```
|
|
1697
|
+
|
|
1698
|
+
### JournalStep
|
|
1699
|
+
|
|
1700
|
+
```ts
|
|
1701
|
+
export interface JournalStep {
|
|
1702
|
+
id: string;
|
|
1703
|
+
type: "deterministic" | "llm" | "agent";
|
|
1704
|
+
completionReason: CompletionReason | null;
|
|
1705
|
+
}
|
|
1706
|
+
```
|
|
1707
|
+
|
|
1708
|
+
### RunJournal
|
|
1709
|
+
|
|
1710
|
+
```ts
|
|
1711
|
+
export interface RunJournal {
|
|
1712
|
+
runId: string;
|
|
1713
|
+
steps: JournalStep[];
|
|
1714
|
+
completionReason: RunCompletionReason | null;
|
|
1715
|
+
}
|
|
1716
|
+
```
|
|
1717
|
+
|
|
1718
|
+
### ScheduleState
|
|
1719
|
+
|
|
1720
|
+
```ts
|
|
1721
|
+
export interface ScheduleState {
|
|
1722
|
+
id: string;
|
|
1723
|
+
lastTriggerStatus: string | null;
|
|
1724
|
+
lastTriggeredRunId: string | null;
|
|
1725
|
+
lastTriggerError: string | null;
|
|
1726
|
+
}
|
|
1727
|
+
```
|
|
1728
|
+
|
|
1729
|
+
### WorkerSummary
|
|
1730
|
+
|
|
1731
|
+
```ts
|
|
1732
|
+
export interface WorkerSummary {
|
|
1733
|
+
workerId: string;
|
|
1734
|
+
status: string;
|
|
1735
|
+
lastSeenAt: string | null;
|
|
1736
|
+
}
|
|
1737
|
+
```
|
|
1738
|
+
|
|
1739
|
+
### CloudBabysitterTurnCapability
|
|
1740
|
+
|
|
1741
|
+
```ts
|
|
1742
|
+
export interface CloudBabysitterTurnCapability {
|
|
1743
|
+
queue(request: { readonly delivery: CloudBabysitterTurnDelivery }): PromiseLike<CloudBabysitterTurnReceipt>;
|
|
1744
|
+
}
|
|
1745
|
+
```
|
|
1746
|
+
|
|
1747
|
+
### CloudBabysitterTurnDelivery
|
|
1748
|
+
|
|
1749
|
+
```ts
|
|
1750
|
+
/** Delivery-only request accepted by the host-owned native Babysitter adapter. */
|
|
1751
|
+
export interface CloudBabysitterTurnDelivery {
|
|
1752
|
+
readonly deliveryId: string;
|
|
1753
|
+
readonly provider: 'github';
|
|
1754
|
+
readonly eventType: string;
|
|
1755
|
+
readonly pullRequest: {
|
|
1756
|
+
readonly owner: string;
|
|
1757
|
+
readonly repository: string;
|
|
1758
|
+
readonly number: number;
|
|
1759
|
+
};
|
|
1760
|
+
}
|
|
1761
|
+
```
|
|
1762
|
+
|
|
1763
|
+
### CloudBabysitterTurnReceipt
|
|
1764
|
+
|
|
1765
|
+
```ts
|
|
1766
|
+
/** The only successful native-turn outcomes; refusals reject the call. */
|
|
1767
|
+
export interface CloudBabysitterTurnReceipt {
|
|
1768
|
+
readonly receiptId: string;
|
|
1769
|
+
readonly status: 'queued' | 'duplicate';
|
|
1770
|
+
}
|
|
1771
|
+
```
|
|
1772
|
+
|
|
1773
|
+
### ActivityDuration
|
|
1774
|
+
|
|
1775
|
+
```ts
|
|
1776
|
+
/** A duration in whole milliseconds or an unambiguous wall-clock literal. */
|
|
1777
|
+
export type ActivityDuration = number | string;
|
|
1778
|
+
```
|
|
1779
|
+
|
|
1780
|
+
### EventFrame
|
|
1781
|
+
|
|
1782
|
+
```ts
|
|
1783
|
+
/**
|
|
1784
|
+
* Opaque provider event preserved by the journal. Providers may add fields;
|
|
1785
|
+
* bodies must re-read provider state instead of treating this payload as truth.
|
|
1786
|
+
*/
|
|
1787
|
+
export interface EventFrame {
|
|
1788
|
+
readonly type: string;
|
|
1789
|
+
readonly payload?: unknown;
|
|
1790
|
+
readonly [field: string]: unknown;
|
|
1791
|
+
}
|
|
1792
|
+
```
|
|
1793
|
+
|
|
1794
|
+
### Wake
|
|
1795
|
+
|
|
1796
|
+
```ts
|
|
1797
|
+
export type Wake =
|
|
1798
|
+
| { readonly kind: "events"; readonly events: readonly EventFrame[]; readonly offset: number }
|
|
1799
|
+
| { readonly kind: "idle" }
|
|
1800
|
+
| { readonly kind: "deadline"; readonly pending: { readonly from: number; readonly to: number } | null }
|
|
1801
|
+
| { readonly kind: "overflow"; readonly retained: number; readonly bytes: number; readonly from: number };
|
|
1802
|
+
```
|
|
1803
|
+
|
|
1804
|
+
### SlackReceipt
|
|
1805
|
+
|
|
1806
|
+
```ts
|
|
1807
|
+
export interface SlackReceipt {
|
|
1808
|
+
channel: string;
|
|
1809
|
+
ts: string;
|
|
1810
|
+
ref: string;
|
|
1811
|
+
}
|
|
1812
|
+
```
|
|
1813
|
+
|
|
1814
|
+
### SlackBlock
|
|
1815
|
+
|
|
1816
|
+
```ts
|
|
1817
|
+
/** Generated from the pinned Slack OpenAPI fragments in scripts/slack-message-schema.json. */
|
|
1818
|
+
export type SlackBlock = { type: string; [key: string]: unknown; };
|
|
1819
|
+
```
|
|
1820
|
+
|
|
1821
|
+
### SlackAttachment
|
|
1822
|
+
|
|
1823
|
+
```ts
|
|
1824
|
+
export type SlackAttachment = { [key: string]: unknown; };
|
|
1825
|
+
```
|
|
1826
|
+
|
|
1827
|
+
### SlackPostMessage
|
|
1828
|
+
|
|
1829
|
+
```ts
|
|
1830
|
+
/** Structured message content. Text supplies the notification/accessibility fallback. */
|
|
1831
|
+
export interface SlackPostMessage {
|
|
1832
|
+
text?: string;
|
|
1833
|
+
blocks?: SlackBlock[];
|
|
1834
|
+
attachments?: SlackAttachment[];
|
|
1835
|
+
}
|
|
1836
|
+
```
|
|
1837
|
+
|
|
1838
|
+
### SlackPostOptions
|
|
1839
|
+
|
|
1840
|
+
```ts
|
|
1841
|
+
export interface SlackPostOptions extends Omit<SlackPostMessage, "text"> {
|
|
1842
|
+
replyTo?: string;
|
|
1843
|
+
}
|
|
1844
|
+
```
|
|
1845
|
+
|
|
1846
|
+
### MemoryFinding
|
|
1847
|
+
|
|
1848
|
+
```ts
|
|
1849
|
+
export interface MemoryFinding {
|
|
1850
|
+
question: string;
|
|
1851
|
+
chosen: string;
|
|
1852
|
+
reasoning: string;
|
|
1853
|
+
alternatives?: string[];
|
|
1854
|
+
}
|
|
1855
|
+
```
|
|
1856
|
+
|
|
1857
|
+
### MemoryRecallOptions
|
|
1858
|
+
|
|
1859
|
+
```ts
|
|
1860
|
+
/** Reads cannot widen the current flow's script scope. */
|
|
1861
|
+
export type MemoryRecallOptions = Omit<SearchOptions, "project">;
|
|
1862
|
+
```
|
|
1863
|
+
|
|
1864
|
+
### HistoryEntry
|
|
1865
|
+
|
|
1866
|
+
```ts
|
|
1867
|
+
export type { HistoryEntry } from "ai-hist";
|
|
1868
|
+
```
|
|
1869
|
+
|
|
1870
|
+
### TrajectoryEntry
|
|
1871
|
+
|
|
1872
|
+
```ts
|
|
1873
|
+
export type { TrajectoryEntry } from "ai-hist";
|
|
1874
|
+
```
|
|
1875
|
+
|
|
1876
|
+
### WebhookValue
|
|
1877
|
+
|
|
1878
|
+
```ts
|
|
1879
|
+
export type WebhookValue = null | boolean | number | string
|
|
1880
|
+
| readonly WebhookValue[] | { readonly [key: string]: WebhookValue };
|
|
1881
|
+
```
|
|
1882
|
+
|
|
1883
|
+
### ProviderTriggerSource
|
|
1884
|
+
|
|
1885
|
+
```ts
|
|
1886
|
+
/** A provider inbox subscription over an envelope's type and payload. */
|
|
1887
|
+
export interface ProviderTriggerSource<Provider extends string, Event extends string> extends WebhookTriggerSource {
|
|
1888
|
+
readonly name: Provider;
|
|
1889
|
+
readonly filter: WebhookFilter & { readonly provider: Provider; readonly type: Event };
|
|
1890
|
+
}
|
|
1891
|
+
```
|
|
1892
|
+
|
|
1893
|
+
### PluginMethod
|
|
1894
|
+
|
|
1895
|
+
```ts
|
|
1896
|
+
/** Plugins augment Ctx in @relayflows/surface; no catch-all index signature. */
|
|
1897
|
+
export type PluginMethod<Args, Output = unknown> = (args: Args) => Step<Output>;
|
|
1898
|
+
```
|
|
1899
|
+
|
|
1900
|
+
### PluginPrimitive
|
|
1901
|
+
|
|
1902
|
+
```ts
|
|
1903
|
+
export type PluginPrimitive = 'run' | 'llm' | 'agent' | 'effect' | 'wait';
|
|
1904
|
+
```
|
|
1905
|
+
|
|
1906
|
+
### UnavailableHelper (not exported from the package root)
|
|
1907
|
+
|
|
1908
|
+
```ts
|
|
1909
|
+
export interface UnavailableHelper { readonly available: false }
|
|
1910
|
+
```
|
|
1911
|
+
|
|
1912
|
+
### JournalHelper (not exported from the package root)
|
|
1913
|
+
|
|
1914
|
+
```ts
|
|
1915
|
+
/** Promise-returning client verbs become lazy, journal-owned steps. */
|
|
1916
|
+
export type JournalHelper<T> = {
|
|
1917
|
+
[K in keyof T]: T[K] extends (...args: infer A) => Promise<infer R>
|
|
1918
|
+
? (...args: A) => Step<R>
|
|
1919
|
+
: T[K] extends (...args: infer A) => infer R ? (...args: A) => R
|
|
1920
|
+
: T[K] extends object ? JournalHelper<T[K]> : T[K];
|
|
1921
|
+
};
|
|
1922
|
+
```
|
|
1923
|
+
|
|
1924
|
+
### asanaClient
|
|
1925
|
+
|
|
1926
|
+
```ts
|
|
1927
|
+
import { asanaClient } from "@relayfile/relay-helpers";
|
|
1928
|
+
```
|
|
1929
|
+
|
|
1930
|
+
### azureBlobClient
|
|
1931
|
+
|
|
1932
|
+
```ts
|
|
1933
|
+
import { azureBlobClient } from "@relayfile/relay-helpers";
|
|
1934
|
+
```
|
|
1935
|
+
|
|
1936
|
+
### boxClient
|
|
1937
|
+
|
|
1938
|
+
```ts
|
|
1939
|
+
import { boxClient } from "@relayfile/relay-helpers";
|
|
1940
|
+
```
|
|
1941
|
+
|
|
1942
|
+
### calendlyClient
|
|
1943
|
+
|
|
1944
|
+
```ts
|
|
1945
|
+
import { calendlyClient } from "@relayfile/relay-helpers";
|
|
1946
|
+
```
|
|
1947
|
+
|
|
1948
|
+
### clickupClient
|
|
1949
|
+
|
|
1950
|
+
```ts
|
|
1951
|
+
import { clickupClient } from "@relayfile/relay-helpers";
|
|
1952
|
+
```
|
|
1953
|
+
|
|
1954
|
+
### cloudflareClient
|
|
1955
|
+
|
|
1956
|
+
```ts
|
|
1957
|
+
import { cloudflareClient } from "@relayfile/relay-helpers";
|
|
1958
|
+
```
|
|
1959
|
+
|
|
1960
|
+
### confluenceClient
|
|
1961
|
+
|
|
1962
|
+
```ts
|
|
1963
|
+
import { confluenceClient } from "@relayfile/relay-helpers";
|
|
1964
|
+
```
|
|
1965
|
+
|
|
1966
|
+
### daytonaClient
|
|
1967
|
+
|
|
1968
|
+
```ts
|
|
1969
|
+
import { daytonaClient } from "@relayfile/relay-helpers";
|
|
1970
|
+
```
|
|
1971
|
+
|
|
1972
|
+
### dropboxClient
|
|
1973
|
+
|
|
1974
|
+
```ts
|
|
1975
|
+
import { dropboxClient } from "@relayfile/relay-helpers";
|
|
1976
|
+
```
|
|
1977
|
+
|
|
1978
|
+
### gcsClient
|
|
1979
|
+
|
|
1980
|
+
```ts
|
|
1981
|
+
import { gcsClient } from "@relayfile/relay-helpers";
|
|
1982
|
+
```
|
|
1983
|
+
|
|
1984
|
+
### githubClient (not exported from the package root)
|
|
1985
|
+
|
|
1986
|
+
```ts
|
|
1987
|
+
// Return type inferred from this implementation.
|
|
1988
|
+
import { githubClient as upstreamGithub } from "@relayfile/relay-helpers";
|
|
1989
|
+
import type { RelayClientOptions } from "@relayfile/relay-helpers/transport";
|
|
1990
|
+
/** Accept the conventional owner/repo shorthand as well as upstream arguments. */
|
|
1991
|
+
export function githubClient(options: RelayClientOptions) {
|
|
1992
|
+
const client = upstreamGithub(options);
|
|
1993
|
+
return { ...client, createIssue(args: { owner?: string; repo: string; title: string; body: string; labels?: string[] }) {
|
|
1994
|
+
const [owner, repo, extra] = args.repo.split('/');
|
|
1995
|
+
if (!args.owner && (!owner || !repo || extra)) throw new Error('github.createIssue requires repo: "owner/repo" or an explicit owner');
|
|
1996
|
+
return client.createIssue({ ...args, owner: args.owner ?? owner!, repo: args.owner ? args.repo : repo! });
|
|
1997
|
+
} };
|
|
1998
|
+
}
|
|
1999
|
+
```
|
|
2000
|
+
|
|
2001
|
+
### gitlabClient
|
|
2002
|
+
|
|
2003
|
+
```ts
|
|
2004
|
+
import { gitlabClient } from "@relayfile/relay-helpers";
|
|
2005
|
+
```
|
|
2006
|
+
|
|
2007
|
+
### gmailClient
|
|
2008
|
+
|
|
2009
|
+
```ts
|
|
2010
|
+
import { gmailClient } from "@relayfile/relay-helpers";
|
|
2011
|
+
```
|
|
2012
|
+
|
|
2013
|
+
### googleCalendarClient
|
|
2014
|
+
|
|
2015
|
+
```ts
|
|
2016
|
+
import { googleCalendarClient } from "@relayfile/relay-helpers";
|
|
2017
|
+
```
|
|
2018
|
+
|
|
2019
|
+
### googleDriveClient
|
|
2020
|
+
|
|
2021
|
+
```ts
|
|
2022
|
+
import { googleDriveClient } from "@relayfile/relay-helpers";
|
|
2023
|
+
```
|
|
2024
|
+
|
|
2025
|
+
### granolaClient
|
|
2026
|
+
|
|
2027
|
+
```ts
|
|
2028
|
+
import { granolaClient } from "@relayfile/relay-helpers";
|
|
2029
|
+
```
|
|
2030
|
+
|
|
2031
|
+
### hubspotClient
|
|
2032
|
+
|
|
2033
|
+
```ts
|
|
2034
|
+
import { hubspotClient } from "@relayfile/relay-helpers";
|
|
2035
|
+
```
|
|
2036
|
+
|
|
2037
|
+
### intercomClient
|
|
2038
|
+
|
|
2039
|
+
```ts
|
|
2040
|
+
import { intercomClient } from "@relayfile/relay-helpers";
|
|
2041
|
+
```
|
|
2042
|
+
|
|
2043
|
+
### jiraClient
|
|
2044
|
+
|
|
2045
|
+
```ts
|
|
2046
|
+
import { jiraClient } from "@relayfile/relay-helpers";
|
|
2047
|
+
```
|
|
2048
|
+
|
|
2049
|
+
### linearClient
|
|
2050
|
+
|
|
2051
|
+
```ts
|
|
2052
|
+
import { linearClient } from "@relayfile/relay-helpers";
|
|
2053
|
+
```
|
|
2054
|
+
|
|
2055
|
+
### mailgunClient
|
|
2056
|
+
|
|
2057
|
+
```ts
|
|
2058
|
+
import { mailgunClient } from "@relayfile/relay-helpers";
|
|
2059
|
+
```
|
|
2060
|
+
|
|
2061
|
+
### mixpanelClient
|
|
2062
|
+
|
|
2063
|
+
```ts
|
|
2064
|
+
import { mixpanelClient } from "@relayfile/relay-helpers";
|
|
2065
|
+
```
|
|
2066
|
+
|
|
2067
|
+
### notionClient (not exported from the package root)
|
|
2068
|
+
|
|
2069
|
+
```ts
|
|
2070
|
+
// Return type inferred from this implementation.
|
|
2071
|
+
import { notionClient as upstreamNotion, created } from "@relayfile/relay-helpers";
|
|
2072
|
+
import type { RelayClientOptions } from "@relayfile/relay-helpers/transport";
|
|
2073
|
+
export function notionClient(options: RelayClientOptions) {
|
|
2074
|
+
return { ...upstreamNotion(options), async appendBlock(args: { pageId: string; block: Record<string, unknown> }) {
|
|
2075
|
+
if (!options.transport) throw new Error('Notion requires a journal transport');
|
|
2076
|
+
// The adapter does not yet support this route. The runtime refuses it in
|
|
2077
|
+
// mount mode, while mock mode can exercise authoring and effect lowering.
|
|
2078
|
+
return created(options.transport.write({ provider: 'notion', resource: 'blocks',
|
|
2079
|
+
parameters: { pageId: args.pageId }, path: `/notion/pages/${encodeURIComponent(args.pageId)}/blocks`, body: { children: [args.block] } }));
|
|
2080
|
+
} };
|
|
2081
|
+
}
|
|
2082
|
+
```
|
|
2083
|
+
|
|
2084
|
+
### onedriveClient
|
|
2085
|
+
|
|
2086
|
+
```ts
|
|
2087
|
+
import { onedriveClient } from "@relayfile/relay-helpers";
|
|
2088
|
+
```
|
|
2089
|
+
|
|
2090
|
+
### pipedriveClient
|
|
2091
|
+
|
|
2092
|
+
```ts
|
|
2093
|
+
import { pipedriveClient } from "@relayfile/relay-helpers";
|
|
2094
|
+
```
|
|
2095
|
+
|
|
2096
|
+
### postgresClient
|
|
2097
|
+
|
|
2098
|
+
```ts
|
|
2099
|
+
import { postgresClient } from "@relayfile/relay-helpers";
|
|
2100
|
+
```
|
|
2101
|
+
|
|
2102
|
+
### rampClient
|
|
2103
|
+
|
|
2104
|
+
```ts
|
|
2105
|
+
import { rampClient } from "@relayfile/relay-helpers";
|
|
2106
|
+
```
|
|
2107
|
+
|
|
2108
|
+
### recallClient
|
|
2109
|
+
|
|
2110
|
+
```ts
|
|
2111
|
+
import { recallClient } from "@relayfile/relay-helpers";
|
|
2112
|
+
```
|
|
2113
|
+
|
|
2114
|
+
### redditClient
|
|
2115
|
+
|
|
2116
|
+
```ts
|
|
2117
|
+
import { redditClient } from "@relayfile/relay-helpers";
|
|
2118
|
+
```
|
|
2119
|
+
|
|
2120
|
+
### redisClient
|
|
2121
|
+
|
|
2122
|
+
```ts
|
|
2123
|
+
import { redisClient } from "@relayfile/relay-helpers";
|
|
2124
|
+
```
|
|
2125
|
+
|
|
2126
|
+
### s3Client
|
|
2127
|
+
|
|
2128
|
+
```ts
|
|
2129
|
+
import { s3Client } from "@relayfile/relay-helpers";
|
|
2130
|
+
```
|
|
2131
|
+
|
|
2132
|
+
### salesforceClient
|
|
2133
|
+
|
|
2134
|
+
```ts
|
|
2135
|
+
import { salesforceClient } from "@relayfile/relay-helpers";
|
|
2136
|
+
```
|
|
2137
|
+
|
|
2138
|
+
### sendgridClient
|
|
2139
|
+
|
|
2140
|
+
```ts
|
|
2141
|
+
import { sendgridClient } from "@relayfile/relay-helpers";
|
|
2142
|
+
```
|
|
2143
|
+
|
|
2144
|
+
### sharepointClient
|
|
2145
|
+
|
|
2146
|
+
```ts
|
|
2147
|
+
import { sharepointClient } from "@relayfile/relay-helpers";
|
|
2148
|
+
```
|
|
2149
|
+
|
|
2150
|
+
### shortcutClient
|
|
2151
|
+
|
|
2152
|
+
```ts
|
|
2153
|
+
import { shortcutClient } from "@relayfile/relay-helpers";
|
|
2154
|
+
```
|
|
2155
|
+
|
|
2156
|
+
### stripeClient (not exported from the package root)
|
|
2157
|
+
|
|
2158
|
+
```ts
|
|
2159
|
+
// Return type inferred from this implementation.
|
|
2160
|
+
import { created } from "@relayfile/relay-helpers";
|
|
2161
|
+
import type { RelayClientOptions } from "@relayfile/relay-helpers/transport";
|
|
2162
|
+
export function stripeClient(options: RelayClientOptions) {
|
|
2163
|
+
return { createInvoice(args: { customer: string; auto_advance?: boolean; collection_method?: 'charge_automatically' | 'send_invoice'; days_until_due?: number; description?: string; metadata?: Record<string, string> }) {
|
|
2164
|
+
if (!options.transport) throw new Error('Stripe requires a journal transport');
|
|
2165
|
+
return created(options.transport.write({ provider: 'stripe', resource: 'invoices',
|
|
2166
|
+
parameters: {}, path: '/stripe/invoices', body: args }));
|
|
2167
|
+
} };
|
|
2168
|
+
}
|
|
2169
|
+
```
|
|
2170
|
+
|
|
2171
|
+
### teamsClient
|
|
2172
|
+
|
|
2173
|
+
```ts
|
|
2174
|
+
import { teamsClient } from "@relayfile/relay-helpers";
|
|
2175
|
+
```
|
|
2176
|
+
|
|
2177
|
+
### telegramClient
|
|
2178
|
+
|
|
2179
|
+
```ts
|
|
2180
|
+
import { telegramClient } from "@relayfile/relay-helpers";
|
|
2181
|
+
```
|
|
2182
|
+
|
|
2183
|
+
### zendeskClient
|
|
2184
|
+
|
|
2185
|
+
```ts
|
|
2186
|
+
import { zendeskClient } from "@relayfile/relay-helpers";
|
|
2187
|
+
```
|
|
2188
|
+
|
|
2189
|
+
### SearchOptions
|
|
2190
|
+
|
|
2191
|
+
```ts
|
|
2192
|
+
import type { SearchOptions } from "ai-hist";
|
|
2193
|
+
```
|