The options runSource builds a ctx from. The CLI passes the
source’s stored config and the feed’s current cursor; tests inject fetch,
log, and now for determinism.
| Type Parameter | Default type | Description |
|---|
C | Record<string, unknown> | The shape of the source’s typed ctx.config preferences. |
| Property | Type | Description |
|---|
config? | C | The source’s preference values (no credentials). Defaults to {}. |
cursor? | Cursor | The feed’s current cursor. Defaults to { type: 'none' }. |
deadline? | number | When this run must finish, epoch ms. Omitted means no budget. |
fetchImpl? | FetchLike | The fetch implementation to expose as ctx.fetch. Defaults to global fetch. |
logSink? | (args: unknown[]) => void | A sink for ctx.log(...) calls. Defaults to collecting into the returned logs. |
now? | () => Date | The clock backing ctx.now(). Defaults to () => new Date(). |
onProgress? | (done: number, message?: string) => void | Receives ctx.progress(...). Omitted means the calls are dropped. |
secrets? | Readonly<Record<string, string>> | Credentials to hand the source, keyed by the names its manifest declares. Absent in an ordinary local run, which is why ctx.secret rejects by name rather than returning undefined: a source that needs a key cannot proceed without one, and the name is what tells the developer which to supply. |