# @zapier/zapier-sdk-cli

## 0.77.7

### Patch Changes

- Updated dependencies [2c8ea56]
- Updated dependencies [2c8ea56]
  - @zapier/kitcore@0.18.0
  - @zapier/zapier-sdk@0.102.4
  - @zapier/zapier-sdk-mcp@0.21.8

## 0.77.6

### Patch Changes

- 4a51b07: Added `editor_url` to the experimental create, get, list, update, and import workflow responses in the SDK and CLI.
- Updated dependencies [4a51b07]
  - @zapier/zapier-sdk@0.102.3
  - @zapier/zapier-sdk-mcp@0.21.7

## 0.77.5

### Patch Changes

- Updated dependencies [b6dfdf9]
  - @zapier/zapier-sdk@0.102.2
  - @zapier/zapier-sdk-mcp@0.21.6

## 0.77.4

### Patch Changes

- Updated dependencies [173df80]
- Updated dependencies [173df80]
  - @zapier/kitcore@0.17.2
  - @zapier/zapier-sdk@0.102.1
  - @zapier/zapier-sdk-mcp@0.21.5

## 0.77.3

### Patch Changes

- 52b672a: `@zapier/zapier-sdk-cli` now installs `@zapier/kitcore` as a regular dependency. Its published type declarations name types from that package, so it has to be present for them to resolve. Commands, flags, and output are unchanged.
- Updated dependencies [52b672a]
- Updated dependencies [52b672a]
  - @zapier/zapier-sdk@0.102.0
  - @zapier/kitcore@0.17.1
  - @zapier/zapier-sdk-mcp@0.21.4

## 0.77.2

### Patch Changes

- 6bfea6d: Clarified that `--page-size` on `list-connections` and `list-apps` may be capped by the upstream API — values above its limit are rejected rather than forwarded unbounded.
- Updated dependencies [6bfea6d]
  - @zapier/zapier-sdk@0.101.2
  - @zapier/zapier-sdk-mcp@0.21.3

## 0.77.1

### Patch Changes

- Updated dependencies [e0fcb04]
  - @zapier/zapier-sdk@0.101.1
  - @zapier/zapier-sdk-mcp@0.21.2

## 0.77.0

### Minor Changes

- cfc7020: Added `importWorkflow` (experimental), exposed in the CLI as `import-workflow`. Converts an existing Zap into a durable workflow: pass `zap` (the Zap ID) and optionally `name` and `private`. Returns `{ workflow, draft, issues }`. The workflow is created disabled with no published version; publish the draft to make it live, once any blocking `issues` are resolved. The original Zap is untouched.

### Patch Changes

- Updated dependencies [cfc7020]
  - @zapier/zapier-sdk@0.101.0
  - @zapier/zapier-sdk-mcp@0.21.1

## 0.76.0

### Minor Changes

- 22a885c: Added `validate-workflow` (experimental) to check durable workflow source from the terminal. Pass the source files as a JSON object of path → source (or answer the prompts) plus an optional `--entrypoint-file`. An empty `issues` array means the source is valid; otherwise each issue names the file and line it points at.

### Patch Changes

- Updated dependencies [22a885c]
- Updated dependencies [22a885c]
  - @zapier/zapier-sdk-mcp@0.21.0
  - @zapier/zapier-sdk@0.100.0

## 0.75.2

### Patch Changes

- Updated dependencies [9cde1f6]
  - @zapier/zapier-sdk@0.99.0
  - @zapier/zapier-sdk-mcp@0.20.5

## 0.75.1

### Patch Changes

- Updated dependencies [cd0616e]
  - @zapier/zapier-sdk@0.98.1
  - @zapier/zapier-sdk-mcp@0.20.4

## 0.75.0

### Minor Changes

- 9a5ae37: Added `--status` to `list-connections`, `find-first-connection`, and `find-unique-connection` to filter connections by expiry: `active` (the default), `expired`, or `all` for both. `--expired` is now deprecated in favour of `--status expired` and still works; combining `--status` with `--expired` is rejected.

### Patch Changes

- Updated dependencies [9a5ae37]
  - @zapier/zapier-sdk@0.98.0
  - @zapier/zapier-sdk-mcp@0.20.3

## 0.74.1

### Patch Changes

- Updated dependencies [e45f03b]
  - @zapier/zapier-sdk@0.97.1
  - @zapier/zapier-sdk-mcp@0.20.2

## 0.74.0

### Minor Changes

- abbeb60: Added a `manual` option (experimental) to `publishWorkflowDraft` and `updateWorkflowDraft`, exposed in the CLI as `--manual` on `publish-workflow-draft` and `update-workflow-draft`. Pass `manual: true` to declare a draft (or its publish) on-demand and triggerless; pass `trigger` for a triggered one. The two are mutually exclusive — sending both is rejected with a 400. This extends the `manual` flag `publishWorkflowVersion` already supports (see the previous release) to the draft path.

### Patch Changes

- Updated dependencies [abbeb60]
  - @zapier/zapier-sdk@0.97.0
  - @zapier/zapier-sdk-mcp@0.20.1

## 0.73.0

### Minor Changes

- 2726599: Added `create-form` (experimental) to create Zapier Forms from the terminal. Provide a title and optional field definitions; use `--draft` to save without publishing. Published forms return a shareable `hosted_url`.

### Patch Changes

- Updated dependencies [2726599]
- Updated dependencies [2726599]
  - @zapier/zapier-sdk-mcp@0.20.0
  - @zapier/zapier-sdk@0.96.0

## 0.72.0

### Minor Changes

- 6e5189c: Added a `manual` option (experimental) to `publishWorkflowVersion`, exposed in the CLI as `--manual` on `publish-workflow-version`. Pass `manual: true` to publish an on-demand, triggerless workflow version explicitly; pass `trigger` for a triggered one. The two are mutually exclusive — sending both is rejected with a 400.

### Patch Changes

- Updated dependencies [80dc74a]
- Updated dependencies [6e5189c]
  - @zapier/zapier-sdk@0.95.0
  - @zapier/zapier-sdk-mcp@0.19.2

## 0.71.1

### Patch Changes

- 0f54b24: CLI commands with an object-typed parameter (e.g. `run-durable`'s `<source-files>`, or an array-of-object parameter like its `notifications`) now reject invalid input with a clear error naming the parameter, instead of silently passing it through to a confusing downstream validation error like `expected record, received string`:
  - A string that isn't valid JSON reports the parse failure. A value that looks like a file path (contains a slash or ends in `.ts`/`.js`/`.tsx`/`.jsx`/`.json`) gets an additional hint that a JSON value was expected, not a path on disk.
  - A string that parses as valid JSON but isn't an object (e.g. `42`, `true`, `null`) is also rejected, since it can never satisfy an object-shaped parameter.

- Updated dependencies [59a8180]
  - @zapier/zapier-sdk@0.94.1
  - @zapier/zapier-sdk-mcp@0.19.1

## 0.71.0

### Minor Changes

- d700196: Added `createActionRun` and `getActionRun`, the two halves of `runAction` as separately callable methods:
  - `createActionRun({ app, actionType, action, connection?, inputs?, page?, callbackUrl? })` — starts an action run and returns `{ id, implementation_id }` right away, without waiting for it to finish. `implementation_id` is the versioned implementation the run was started against, matching `implementation_id` on an app from `getApp` / `listApps`.
  - `getActionRun({ run })` — returns that run's state: `{ id, status, results, errors, next_page? }`. It is a point-in-time read that answers immediately, so a run that is still executing comes back with `status: "waiting"` and it is up to the caller to check again. Unlike `runAction`, a failed run is reported as `status: "error"` with the details in `errors` rather than thrown.

  To page a bulk read, pass the `next_page` from `getActionRun` back as the `page` for the next `createActionRun`. The pair uses the same page terminology in both directions, and `next_page` is always a string so it can be handed straight back. `runAction` is a paginated list method, so it keeps the SDK's usual `cursor` / `nextCursor` pair.

  Pass `callbackUrl` to `createActionRun` to skip polling altogether: Zapier posts the finished run to that URL. It must use HTTPS and resolve to a public host. The delivered body matches what `getActionRun` returns, and carries a `Zapier-Callback-Signature` header holding an RS256 JWT you can verify against `https://zapier.com/.well-known/jwks.json`. Delivery is retried, so the same run can arrive more than once.

  `runAction` is unchanged and is still the right call for most cases — it starts a run and waits for the result in one step. Reach for the pair when you don't want to block on the result: fan out many runs and collect them later, hand a run ID to another process, or pick a run back up after a restart. Run results are retained for seven days.

### Patch Changes

- Updated dependencies [d700196]
  - @zapier/zapier-sdk@0.94.0
  - @zapier/zapier-sdk-mcp@0.19.0

## 0.70.0

### Minor Changes

- af89cf8: Boolean CLI flags are now strict presence toggles, and list-taking positional arguments now collect every operand:
  - `--flag` enables; omitting the flag uses the default. Passing a value (`--flag false` or `--flag=false`) is rejected with an error pointing at the correct spelling, instead of being silently ignored (which previously left the flag enabled). A positional argument whose literal value looks boolean can still be passed after a `--` terminator.
  - Flags where disabling differs from omitting get an explicit disable form: `publish-workflow-version <id> --disabled` and `publish-workflow-draft <workflow> <draft> --disabled` publish without enabling. Generated CLI docs show the disable form wherever one exists.
  - Commands reject unexpected extra positional arguments rather than ignoring them.
  - Commands whose first argument is a list (`add`, `build-manifest`, `generate-app-types`, the `create-`/`update-`/`delete-table-records` and `-fields` commands) now collect every operand into the list: `npx zapier-sdk add slack google-sheets` adds both apps. Previously only the first value was used and the rest were silently ignored.

### Patch Changes

- Updated dependencies [bc7405e]
  - @zapier/zapier-sdk@0.93.0
  - @zapier/zapier-sdk-mcp@0.18.23

## 0.69.0

### Minor Changes

- 67db455: Added the interactive `zapier-sdk setup` command for guided SDK installation, authentication, connection discovery, a Slack proof, and connected-app ideas in your AI agent.

### Patch Changes

- Updated dependencies [67db455]
  - @zapier/zapier-sdk@0.92.1
  - @zapier/zapier-sdk-mcp@0.18.22

## 0.68.0

### Minor Changes

- 56f0789: Added an `ignoreOpenDrafts` option (experimental) to `publishWorkflowVersion`, exposed in the CLI as `--ignore-open-drafts` on `publish-workflow-version`. Publishing a version directly is rejected with a 409 conflict while the workflow has open draft(s), since publishing a draft later would ship its stale content over the new version; set this option to publish anyway.

  Every 409 from `publishWorkflowVersion` now surfaces as a `ZapierConflictError` (matching `publishWorkflowDraft`) instead of a generic API error. The open-draft 409 additionally lists the blocking drafts (id, slug, last edited) and the remediations — publish the draft (`publishWorkflowDraft`), discard it (`discardWorkflowDraft`), or force with `ignoreOpenDrafts`. The structured draft list rides on the error's `meta.open_drafts` (typed via the new `OpenDraftRef` export on `@zapier/zapier-sdk/experimental`), and the CLI's `--json` error envelope includes it, so agents can resolve the conflict without parsing the message.

### Patch Changes

- Updated dependencies [87e634f]
- Updated dependencies [56f0789]
  - @zapier/zapier-sdk@0.92.0
  - @zapier/zapier-sdk-mcp@0.18.21

## 0.67.6

### Patch Changes

- Updated dependencies [4886b5b]
  - @zapier/zapier-sdk@0.91.1
  - @zapier/zapier-sdk-mcp@0.18.20

## 0.67.5

### Patch Changes

- 20a0ab4: _This release contains no user-facing changes._

## 0.67.4

### Patch Changes

- 5935b7e: Added `publishWorkflowDraft` (experimental) to publish an open workflow draft as a new immutable version.
  - Publishing advances the workflow's live pointer and **discards the draft** — publish consumes it, so an open draft always means unpublished work. Returns both the new `version` and the consumed `draft` (`status: "discarded"`, `base_version_id` still recording the version it was forked from). Prefer it over `publishWorkflowVersion` once a draft exists, so the open draft is never orphaned; continue editing by creating a new draft off the new version.
  - Accepts optional `enabled` (set the workflow's enabled state as part of the publish; preserved if omitted) and `draftRevision` (optimistic concurrency: publish exactly the revision last read).
  - Failure modes stay distinct: a concurrent-edit or trigger-switchover conflict surfaces as `ZapierConflictError` (retryable after re-reading the draft), a trigger-catalog validation outage surfaces as a retryable 503 API error, and invalid `zapier_durable_version` or trigger config surfaces as a validation error.

- Updated dependencies [5935b7e]
  - @zapier/zapier-sdk@0.91.0
  - @zapier/zapier-sdk-mcp@0.18.19

## 0.67.3

### Patch Changes

- f6eac6f: Added `createWorkflowDraft`, `updateWorkflowDraft`, and `discardWorkflowDraft` (experimental), completing the draft lifecycle alongside the existing read methods.
  - `createWorkflowDraft` forks a new draft from the workflow's live version, with an optional `slug`.
  - `updateWorkflowDraft` saves draft edits — source files, dependencies, trigger, connections, and app-version pins. Pass `draftRevision` to reject the save with a `ZapierConflictError` if the draft changed since it was last read; pass `null` for `trigger`, `connections`, or `appVersions` to clear the stored value, or omit them to leave it unchanged.
  - `discardWorkflowDraft` soft-deletes a draft and returns it with status `discarded`.

  All ID inputs are UUID-validated at the boundary.

- Updated dependencies [f6eac6f]
  - @zapier/zapier-sdk@0.90.0
  - @zapier/zapier-sdk-mcp@0.18.18

## 0.67.2

### Patch Changes

- e24c236: Added `listWorkflowDrafts` and `getWorkflowDraft` (experimental). `listWorkflowDrafts` is paginated (cursor + pageSize), returns a workflow's drafts most recently edited first, and filters by `status` (server default: open) or exact `slug`. `getWorkflowDraft` returns the full draft state including `source_files` and `draft_revision`, the draft's optimistic-concurrency counter. CLI commands taking a draft id present an interactive picker. All ID inputs are UUID-validated at the boundary.
- Updated dependencies [e24c236]
  - @zapier/zapier-sdk@0.89.0
  - @zapier/zapier-sdk-mcp@0.18.17

## 0.67.1

### Patch Changes

- Updated dependencies [60892be]
  - @zapier/zapier-sdk@0.88.1
  - @zapier/zapier-sdk-mcp@0.18.16

## 0.67.0

### Minor Changes

- 0e49ffa: Renamed time-duration flags and env vars so every one carries its unit as a full-word suffix. Coarse durations move to **seconds**; the deprecated names still work (and keep their millisecond meaning).
  - `--max-network-retry-delay-ms` → `--max-network-retry-delay-seconds`
  - `run-action --timeout-ms` → `--timeout-seconds`
  - `create-connection` / `wait-for-new-connection` `--timeout-ms` → `--timeout-seconds`, `--poll-interval-ms` → `--poll-interval-milliseconds`
  - env `ZAPIER_SDK_UPDATE_CHECK_INTERVAL_MS` → `ZAPIER_SDK_UPDATE_CHECK_INTERVAL_SECONDS`

### Patch Changes

- Updated dependencies [0e49ffa]
  - @zapier/zapier-sdk@0.88.0
  - @zapier/zapier-sdk-mcp@0.18.15

## 0.66.5

### Patch Changes

- Updated dependencies [920d571]
  - @zapier/zapier-sdk@0.87.1
  - @zapier/zapier-sdk-mcp@0.18.14

## 0.66.4

### Patch Changes

- 4e560c0: The CLI now reports the correct error code and enriched message for SDK errors. Previously some errors surfaced as `UNKNOWN_ERROR` with an unformatted message (and lost their code in `--json` output) because an `instanceof` check failed across the CLI's bundled copies of the SDK.
- Updated dependencies [4e560c0]
- Updated dependencies [4e560c0]
  - @zapier/zapier-sdk@0.87.0
  - @zapier/zapier-sdk-mcp@0.18.13

## 0.66.3

### Patch Changes

- 2bdd154: A command whose parameters come only from its input schema (no declared resolvers) now prompts for a missing required parameter instead of erroring; `publish-workflow-version` is the one such command today. Non-interactively, missing required parameters are still reported together. Typed object, array, and record answers now accept JSON.
- Updated dependencies [afa9c95]
  - @zapier/zapier-sdk@0.86.0
  - @zapier/zapier-sdk-mcp@0.18.12

## 0.66.2

### Patch Changes

- 769751e: Updated a debug hint in the legacy parameter resolver to point at the paginated result's `.pages()` instead of the deprecated `toIterable()` helper.
- Updated dependencies [769751e]
  - @zapier/zapier-sdk@0.85.0
  - @zapier/zapier-sdk-mcp@0.18.11

## 0.66.1

### Patch Changes

- 840aca3: `list-connections`, `get-connection`, `find-first-connection`, and `find-unique-connection` (and their deprecated `list-authentications` / `get-authentication` / `find-first-authentication` / `find-unique-authentication` aliases) now show the connected app's key and slug in their output.
- Updated dependencies [840aca3]
  - @zapier/zapier-sdk@0.84.4
  - @zapier/zapier-sdk-mcp@0.18.10

## 0.66.0

### Minor Changes

- 615fda9: Interactive parameter pickers keep your place across "Load more…": earlier options stay on the list in order above the cursor, the cursor lands on the first newly loaded option, and type-to-filter covers everything loaded. Paging redraws the picker in place instead of stacking a spent prompt line per page (a settled answer still prints its `✔` record). Multi-select pickers keep already-checked items checked when more options load, and a failed "Load more…" no longer discards the options already on screen — retrying continues from where the list grew.

### Patch Changes

- Updated dependencies [e6b22fb]
  - @zapier/zapier-sdk@0.84.3
  - @zapier/zapier-sdk-mcp@0.18.9

## 0.65.8

### Patch Changes

- Updated dependencies [e1c327d]
  - @zapier/zapier-sdk@0.84.2
  - @zapier/zapier-sdk-mcp@0.18.8

## 0.65.7

### Patch Changes

- Updated dependencies [197a125]
  - @zapier/zapier-sdk@0.84.1
  - @zapier/zapier-sdk-mcp@0.18.7

## 0.65.6

### Patch Changes

- 4328489: Removed the `react` and `ink` runtime dependencies from the CLI, along with the `@types/react` dev dependency. The approval progress panel is now rendered directly using the terminal libraries already bundled with the CLI, so its appearance and behavior are unchanged while the installed dependency tree is significantly smaller.

## 0.65.5

### Patch Changes

- e1896a3: Code Substrate methods now use the `/code-substrate-runner` and `/code-substrate-workflows` API path prefixes across the SDK, the CLI, and the MCP server, and `sdk.context.api` and the CLI `curl` command accept paths built on them. The previous `/sdkdurableapi` and `/durableworkflowzaps` prefixes remain supported.
- Updated dependencies [e1896a3]
  - @zapier/zapier-sdk@0.84.0
  - @zapier/zapier-sdk-mcp@0.18.6

## 0.65.4

### Patch Changes

- 90ac367: The app `version` field is now optional in `.zapierrc` manifest entries. A versionless entry resolves to the latest implementation at runtime. The CLI's `build-manifest` and `add` commands no longer error when an app has no version, writing a versionless entry instead.
- Updated dependencies [90ac367]
  - @zapier/zapier-sdk@0.83.3
  - @zapier/zapier-sdk-mcp@0.18.5

## 0.65.3

### Patch Changes

- 7d44e18: `run-action --inputs '{...}'` no longer fetches the action's input fields or prompts to configure optional fields; provided inputs run exactly as given.
  - @zapier/zapier-sdk@0.83.2

## 0.65.2

### Patch Changes

- Updated dependencies [bf0d056]
  - @zapier/zapier-sdk@0.83.2
  - @zapier/zapier-sdk-mcp@0.18.4

## 0.65.1

### Patch Changes

- Updated dependencies [6201fd4]
  - @zapier/zapier-sdk@0.83.1
  - @zapier/zapier-sdk-mcp@0.18.3

## 0.65.0

### Minor Changes

- 5f5f028: - A command that invokes a deprecated SDK method now prints a styled
  deprecation notice.
  - The CLI disposes its SDK on exit, so telemetry flushes reliably.
  - `get-connection` now takes its connection as a required positional
    (`get-connection <connection>`) instead of an optional `--connection`
    flag, matching the SDK's now-required locator.
  - No other command-level changes.

### Patch Changes

- Updated dependencies [5f5f028]
- Updated dependencies [5f5f028]
  - @zapier/zapier-sdk-mcp@0.18.2
  - @zapier/zapier-sdk@0.83.0

## 0.64.1

### Patch Changes

- Updated dependencies [ce612ee]
  - @zapier/zapier-sdk@0.82.1
  - @zapier/zapier-sdk-mcp@0.18.1

## 0.64.0

### Minor Changes

- d09592b: Graduated Triggers and Trigger Inbox methods from the experimental interface to the stable one. Every trigger method (`listTriggers`, `listTriggerInputFields`, `createTriggerInbox`, `ensureTriggerInbox`, `drainTriggerInbox`, `watchTriggerInbox`, the inbox lifecycle methods, and the message lease/ack/release methods) is now available directly from `@zapier/zapier-sdk` and the `zapier-sdk` CLI — no `/experimental` import, `--experimental` flag, or `ZAPIER_EXPERIMENTAL` env var required. On the default MCP server the request/response trigger tools (`create-trigger-inbox`, `list-triggers`, the lease/ack/release tools, etc.) are now listed; the callback-driven `drainTriggerInbox` and `watchTriggerInbox` remain SDK/CLI-only. They stay available via the experimental subpath and `zapier-sdk-experimental` binary for backward compatibility.

### Patch Changes

- Updated dependencies [d09592b]
  - @zapier/zapier-sdk-mcp@0.18.0
  - @zapier/zapier-sdk@0.82.0

## 0.63.0

### Minor Changes

- d96b5f6: Added `--callback-url` to `zapier-sdk login` and `zapier-sdk signup` for resuming pending non-interactive OAuth flows. Non-interactive login and signup now save pending state and exit immediately; run the same command later with `--callback-url <url>` to complete authentication from the browser callback URL.

  Login and signup telemetry now includes `used_non_interactive_mode` and `is_headless` on CLI command and auth lifecycle events.

### Patch Changes

- Updated dependencies [d96b5f6]
  - @zapier/zapier-sdk@0.81.1
  - @zapier/zapier-sdk-mcp@0.17.1

## 0.62.0

### Minor Changes

- 8d232d2: Deprecated `name` in favor of `key` for trigger inboxes. `name` continues to work as a deprecated alias.
  - `createTriggerInbox` now accepts an optional `key` parameter; `name` is deprecated.
  - `ensureTriggerInbox` now takes `key` as its required idempotency identifier; passing `name` still works but is deprecated.
  - `listTriggerInboxes` now accepts a `key` filter; the `name` filter is deprecated.
  - Trigger inbox locators (the `inbox` argument on `getTriggerInbox`, `updateTriggerInbox`, and related methods) now resolve non-UUID values by `key`.
  - Trigger inbox responses now include a `key` field alongside `name` (both hold the same value; `key` may be `null` when an inbox has no natural key).

### Patch Changes

- Updated dependencies [8d232d2]
  - @zapier/zapier-sdk-mcp@0.17.0
  - @zapier/zapier-sdk@0.81.0

## 0.61.3

### Patch Changes

- 072fe2b: Decode JSON-string `input` on `triggerWorkflow` and `runDurable`. Their `input`
  field is freeform (`z.unknown()`), which the CLI surfaces as a raw string flag
  and never JSON-parses, so `--input '{"a":1}'` reached the API as a string and
  was double-encoded (server rejected it with `expected object, received string`).
  The input is now normalized at the schema boundary: a `{`/`[`-leading JSON
  string is decoded to its value, while objects and scalar strings pass through
  unchanged. This also fixes programmatic callers passing a JSON string.
- Updated dependencies [072fe2b]
  - @zapier/zapier-sdk@0.80.2
  - @zapier/zapier-sdk-mcp@0.16.3

## 0.61.2

### Patch Changes

- 4fd8dce: _This release contains no user-facing changes._
- Updated dependencies [4fd8dce]
  - @zapier/zapier-sdk@0.80.1
  - @zapier/zapier-sdk-mcp@0.16.2

## 0.61.1

### Patch Changes

- 5e2cf0d: Internal refactoring of interactive parameter resolution. No change to existing commands.
- Updated dependencies [5e2cf0d]
- Updated dependencies [5e2cf0d]
  - @zapier/zapier-sdk-mcp@0.16.1
  - @zapier/zapier-sdk@0.80.0

## 0.61.0

### Minor Changes

- fcc3c01: Add headless login mode to print a login URL and accept a pasted OAuth callback URL.

## 0.60.0

### Minor Changes

- d67227b: Display trusted SDK deprecation notices from Zapier API responses. The SDK sniffs `zapier-sdk-deprecation-*` response headers (never on relay responses), warns once per notice id per process — with no opt-out — and emits an `api:deprecation_notice` event for wrappers. The CLI additionally renders notices as a boxed stderr warning after command output, and the MCP server attaches them to every tool result so agents relay the warning to users.

### Patch Changes

- Updated dependencies [d67227b]
  - @zapier/zapier-sdk@0.79.0
  - @zapier/zapier-sdk-mcp@0.16.0

## 0.59.3

### Patch Changes

- b8ff1dd: Refactor the SDKs onto kitcore's new internal plugin model.

  kitcore (an internal building block) gained a new plugin model, and the SDKs were rebuilt on it behind a compatibility bridge, so existing behavior is unchanged. The only changes to the published packages' surface:
  - Removed the deprecated `sdk.addPlugin(...)` chain method (and the `WithAddPlugin` type / chain-style no-arg `createSdk()` doorway). Extend a built SDK with the top-level `addPlugin(sdk, plugin)` instead.
  - `@zapier/zapier-sdk` now re-exports the plugin-authoring helpers (`createSdk`, `defineMethod` / `definePlugin` / `declareMethod` / etc., `selectExports`, `addPlugin`). Note `createSdk` reuses the old doorway's name but now takes a root plugin, so a stale no-arg `createSdk()` call is a compile error rather than silent misbehavior.

- Updated dependencies [b8ff1dd]
  - @zapier/zapier-sdk@0.78.0
  - @zapier/zapier-sdk-mcp@0.15.3

## 0.59.2

### Patch Changes

- 365ad1b: Fix published type declarations referencing modules consumers can't resolve.

  `tsc -b` (run in `validate` after the tsup build) was emitting per-module
  declarations over tsup's bundled `dist/index.d.ts`, reintroducing hundreds of
  `import("kitcore")` references; `kitcore` is bundled into the SDK and only a
  devDependency, so consumer type-checks failed with "Cannot find module
  'kitcore'" (CJS only, since `tsc` doesn't emit the ESM `.d.mts`). tsc now emits
  its declarations to a gitignored side dir instead of `dist`, so it can never
  overwrite tsup's bundle, while project references and editor type-checking keep
  working. (The CLI gets the same treatment, which also stops it from publishing
  stray per-module declarations under `dist/src`.) Separately, the optional
  `@zapier/zapier-sdk-cli/login` module is
  referenced through a local interface instead of `typeof import(...)`, so its
  reference no longer leaks into the published declarations. `verify-exports` now
  fails the build if any published declaration references an undeclared package.

- Updated dependencies [365ad1b]
  - @zapier/zapier-sdk@0.77.2
  - @zapier/zapier-sdk-mcp@0.15.2

## 0.59.1

### Patch Changes

- 3fa9190: Upgrade `@zapier/policy-context`, which drops `@asteasolutions/zod-to-openapi` from it's dependency tree.
- Updated dependencies [3fa9190]
  - @zapier/zapier-sdk@0.77.1
  - @zapier/zapier-sdk-mcp@0.15.1

## 0.59.0

### Minor Changes

- 19303e0: `triggerWorkflow` (and `trigger-workflow`) now authenticates with Zapier credentials and runs the workflow as the authenticated account; triggering is limited to workflows that account can access. It now returns the trigger's `id`, `workflow_id`, and `created_at` on `data` (previously `{ workflow, status, body }`). The call is unchanged: pass the workflow id and optional `input`.

### Patch Changes

- Updated dependencies [19303e0]
  - @zapier/zapier-sdk@0.77.0
  - @zapier/zapier-sdk-mcp@0.15.0

## 0.58.3

### Patch Changes

- Updated dependencies [27ca0c5]
  - @zapier/zapier-sdk@0.76.2
  - @zapier/zapier-sdk-mcp@0.14.5

## 0.58.2

### Patch Changes

- 745e172: Include client id and auth mechanism in client-side telemetry
- Updated dependencies [745e172]
  - @zapier/zapier-sdk@0.76.1
  - @zapier/zapier-sdk-mcp@0.14.4

## 0.58.1

### Patch Changes

- Updated dependencies [a7d2646]
  - @zapier/zapier-sdk@0.76.0
  - @zapier/zapier-sdk-mcp@0.14.3

## 0.58.0

### Minor Changes

- 8e5253d: `listWorkflowRuns` (and `list-workflow-runs`) no longer return `output` on list items. Workflow-run lists no longer carry the (potentially large, soon-externalized) run output; fetch a single run's output via `getWorkflowRun` / `get-workflow-run`. Use `status` (`finished`/`failed`) to know when output is available.

### Patch Changes

- Updated dependencies [8e5253d]
  - @zapier/zapier-sdk@0.75.0
  - @zapier/zapier-sdk-mcp@0.14.2

## 0.57.1

### Patch Changes

- f56bfdb: Surface trigger claim failure reason and workflow disable reason on the experimental `getWorkflow` / `listWorkflows` responses (and therefore the `get-workflow` / `list-workflows` CLI commands). Each `triggers[]` entry gains `error` (the latest claim's failure reason, present when `status` is `failed`), and the workflow gains a top-level `disabled_reason` (`trigger_claim_failed` when system-disabled, otherwise null). The two signals stay independent so an enabled workflow with a failed trigger is representable. Both fields are optional until the CSW API ships them server-side (COSUB-630).
- Updated dependencies [f56bfdb]
  - @zapier/zapier-sdk@0.74.1
  - @zapier/zapier-sdk-mcp@0.14.1

## 0.57.0

### Minor Changes

- 571f90d: Add zapier-sdk-package-operation header to identify the caller operation

### Patch Changes

- Updated dependencies [571f90d]
  - @zapier/zapier-sdk-mcp@0.14.0
  - @zapier/zapier-sdk@0.74.0

## 0.56.2

### Patch Changes

- 6c7627c: CamelCase the input params on `runDurable` and `publishWorkflowVersion` (`sourceFiles`, `zapierDurableVersion`, `appVersions`, and the nested connection / app-version / trigger fields), keeping the old snake_case names as deprecated aliases. Handlers map them back to the snake_case wire body; output fields are unchanged.
- Updated dependencies [6c7627c]
  - @zapier/zapier-sdk@0.73.1
  - @zapier/zapier-sdk-mcp@0.13.37

## 0.56.1

### Patch Changes

- Updated dependencies [f963a9d]
  - @zapier/zapier-sdk@0.73.0
  - @zapier/zapier-sdk-mcp@0.13.36

## 0.56.0

### Minor Changes

- fcc758e: `listWorkflows` now paginates. `pageSize` (follows the SDK default page size; values above 100 are rejected) and `cursor` are honored in the SDK, and via the `list-workflows --page-size`/`--cursor` CLI flags that were previously no-ops. Iterating still returns all workflows; reading a single page now yields at most `pageSize` results rather than the full list.

### Patch Changes

- Updated dependencies [fcc758e]
  - @zapier/zapier-sdk@0.72.0
  - @zapier/zapier-sdk-mcp@0.13.35

## 0.55.8

### Patch Changes

- 2521624: Rename `createWorkflow`'s `is_private` input to `private` to match `runDurable`, keeping `is_private` as a deprecated alias; the wire field stays `is_private`. Clarify the `run-durable` connections param description to show the required object shape.
- Updated dependencies [2521624]
  - @zapier/zapier-sdk@0.71.1
  - @zapier/zapier-sdk-mcp@0.13.34

## 0.55.7

### Patch Changes

- 3474ff3: Add `createConnection` and two lower-level building blocks for connecting an app from code, end to end:
  - `createConnection({ app, browser?, timeoutMs?, pollIntervalMs? })` — high-level: mints a connection URL, prints it (and opens it in a browser when it's safe to do so), waits for the user to finish, and returns the new connection. `browser` is `"auto"` (default — opens locally, skips CI / SSH / headless Linux), `"always"`, or `"never"`. The URL is always printed, so a skipped or failed open falls back to copy/paste.
  - `getConnectionStartUrl({ app })` — low-level: mints a short-lived, signed start URL bound to the current user/account. Returns `{ url, startedAt, expiresAt, app }`.
  - `waitForNewConnection({ app, startedAt, timeoutMs?, pollIntervalMs? })` — low-level: polls until a connection for the app created at or after `startedAt` appears, then returns `{ id, app, title? }`. Throws `ZapierTimeoutError` after `timeoutMs` (default 5 minutes).

  `createConnection` is the right call for most cases. Reach for the two low-level methods when you want to hand off the URL without blocking (call `getConnectionStartUrl` alone), or do something custom between minting the URL and waiting — email it, post it to Slack, render a QR code — then call `waitForNewConnection`.

- 5ca445d: Add private-beta support for streaming auto-mode approval review messages and handling terminal failed approvals through the SDK and CLI. Auto mode is only enabled service-side for approved beta users.
- Updated dependencies [3474ff3]
- Updated dependencies [5ca445d]
  - @zapier/zapier-sdk@0.71.0
  - @zapier/zapier-sdk-mcp@0.13.33

## 0.55.6

### Patch Changes

- a790695: Response-field parity audit for the experimental code-substrate
  plugins. Restores fields the backend returns that were silently
  stripped by the SDK's Zod schemas after the port from
  `@zapier/zapier-sdk-code-substrate`.
  - `updateWorkflow`, `getWorkflow`, `listWorkflows` responses now
    include `is_private`, `created_by_user_id`, and (where applicable)
    `triggers` with live claim status.
  - `publishWorkflowVersion`, `getWorkflowVersion`, `listWorkflowVersions`
    responses now include `trigger`, `connections`, and `app_versions`.
  - `runDurable` input accepts `notifications` (webhook subscribers for
    run lifecycle events).

  Shared schemas (`ConnectionBindingSchema`, `AppVersionBindingSchema`,
  `WorkflowVersionTriggerConfigSchema`, `WorkflowTriggerSchema`) live in
  a new `shared-schemas.ts` for reuse across the workflow plugins.

- Updated dependencies [a790695]
  - @zapier/zapier-sdk@0.70.4
  - @zapier/zapier-sdk-mcp@0.13.32

## 0.55.5

### Patch Changes

- aca0385: `login` now accepts a `--name` flag to label credentials without the interactive prompt — useful in CI and non-interactive environments. After trimming, the provided name is honored as given in both interactive and non-interactive modes — it is never auto-suffixed.

## 0.55.4

### Patch Changes

- b83f0b6: Add TTY and agent caller context to SDK telemetry events
- Updated dependencies [b83f0b6]
- Updated dependencies [3fa4bbe]
  - @zapier/zapier-sdk@0.70.3
  - @zapier/zapier-sdk-mcp@0.13.31

## 0.55.3

### Patch Changes

- 036fb94: Non-interactive `login` and `signup` now append an incrementing suffix (`<name>-1`, `<name>-2`, …) when the default credential name (`<email>@<hostname>`) already exists locally, instead of silently overwriting the existing credential's local entry and keychain secret. Interactive logins are unchanged.

## 0.55.2

### Patch Changes

- Updated dependencies [cafad12]
  - @zapier/zapier-sdk@0.70.2
  - @zapier/zapier-sdk-mcp@0.13.30

## 0.55.1

### Patch Changes

- Updated dependencies [eb30657]
  - @zapier/zapier-sdk@0.70.1
  - @zapier/zapier-sdk-mcp@0.13.29

## 0.55.0

### Minor Changes

- 8f20472: `watchTriggerInbox` now retries transient drain failures (5xx, 429,
  network blips) indefinitely with bounded backoff instead of rejecting
  on the first error; it still rejects immediately on fail-fast handler
  errors, `initialization_failure`, and permanent HTTP errors. When those
  retries persist long enough to saturate the backoff, it warns once on
  stderr (re-armed on recovery) so a stalled watch isn't silent.

  New `ApiClient.fetchJsonStream` (with the `JsonSseMessage` type): like
  `fetchStream` but JSON-parses each frame, surfacing a malformed frame
  as `{ parsed: false, data: null, raw }` instead of throwing, so one
  bad frame can't kill a long-lived stream. A non-ok response still
  throws the shared `ZapierError` subclasses before the first frame.

  Fixed: a fail-fast handler that throws a falsy value (`throw
undefined`) is no longer silently swallowed, and a handler-thrown
  AbortError now rejects the watch instead of resolving it cleanly.

### Patch Changes

- Updated dependencies [8f20472]
  - @zapier/zapier-sdk@0.70.0
  - @zapier/zapier-sdk-mcp@0.13.28

## 0.54.3

### Patch Changes

- Updated dependencies [c4df375]
  - @zapier/zapier-sdk@0.69.3
  - @zapier/zapier-sdk-mcp@0.13.27

## 0.54.2

### Patch Changes

- c50db26: Fixed logout so it reliably clears local authentication state even when the server cannot revoke the credential. Previously a failed revocation could abort logout and strand the user with credentials they could not remove. Re-login flows are unaffected; they still surface revocation failures before replacing credentials.
- Updated dependencies [c50db26]
  - @zapier/zapier-sdk@0.69.2
  - @zapier/zapier-sdk-mcp@0.13.26

## 0.54.1

### Patch Changes

- Updated dependencies [da80c77]
  - @zapier/zapier-sdk@0.69.1
  - @zapier/zapier-sdk-mcp@0.13.25

## 0.54.0

### Minor Changes

- 9f1e934: Switched `watchTriggerInbox` from backoff polling to a Server-Sent Events subscription, so it now wakes on near-real-time inbox notifications instead of repeatedly polling for new messages.
  - The `maxDrainIntervalSeconds` option now controls a periodic safety drain that backstops the SSE stream — guaranteeing forward progress if events are missed or the connection drops — and its default changed from 60 to 300 seconds.
  - Real-time wake-up health is now reported on stderr: a warning when wake-ups pause and the watch falls back to the safety drain, plus transient reconnect notices in debug mode. stdout (including `--json` NDJSON output) is unaffected.
  - Added a `fetchStream` method to the API client, along with an exported `SseMessage` type, for opening Server-Sent Events connections through the standard request pipeline (auth, base URL, 429 retry, approval, and concurrency).

### Patch Changes

- Updated dependencies [9f1e934]
  - @zapier/zapier-sdk@0.69.0
  - @zapier/zapier-sdk-mcp@0.13.24

## 0.53.1

### Patch Changes

- 9d6bd4d: Ship `AGENTS.md` as the canonical agent-instructions file. Each `CLAUDE.md` is now a thin stub that imports it, so Claude Code, Codex, and Cursor read the same guidance.
- Updated dependencies [9d6bd4d]
  - @zapier/zapier-sdk@0.68.1
  - @zapier/zapier-sdk-mcp@0.13.23

## 0.53.0

### Minor Changes

- 41a7c26: Add `zapier-sdk signup` for browser-based account setup and local SDK credential provisioning.
  Add the `signup_success` SDK lifecycle telemetry event type for successful signup OAuth callback acceptance.

### Patch Changes

- Updated dependencies [41a7c26]
  - @zapier/zapier-sdk@0.68.0
  - @zapier/zapier-sdk-mcp@0.13.22

## 0.52.12

### Patch Changes

- a950509: Route all debug, diagnostic, and telemetry log output to stderr (`console.error`) instead of stdout (`console.log`) across the SDK and CLI packages. The CLI now reserves stdout exclusively for the program's data payload — command output, JSON envelopes, response bodies — so callers can safely pipe CLI output through `jq`, `> redirect`, or `JSON.parse` even when `--debug` is on or telemetry/logging flags are enabled. Interactive terminal users see no change since both streams interleave in a TTY.
- 9096184: Extract the plugin framework into a new sibling package `kitcore` that
  `@zapier/zapier-sdk` consumes as a workspace devDependency (bundled into
  the published dist, not a runtime dep). Existing SDK code is unaffected:
  `createZapierSdk`, `createSdk`, the `ZapierSdk` type, every SDK method, and
  the full `Zapier*` error hierarchy keep their names, codes, and `instanceof`
  semantics. Internally `createZapierSdk` now builds via the linear
  `createPluginStack().use(...).toSdk()` path, which substantially speeds up
  construction. One behavior change to note: `normalizeError` no longer wraps
  thrown `Error` subclasses, so a handler's `TypeError` or a userland
  `MyAppError` bubbles through unchanged and `instanceof` works again; only
  non-`Error` throws get wrapped.

  New stack-based composition surface for building on top of the SDK:
  `createZapierSdkStack(options)` (from the root and `/experimental`) returns
  the unsealed `PluginStack` that `createZapierSdk` materializes, and
  `createPluginStack`, `createCorePlugin`, and `addPlugin` are re-exported from
  the root. Build by chaining `.use(...)` and sealing with `.toSdk()`, or
  extend a sealed SDK in place with `addPlugin(sdk, plugin)`. The chain-style
  `createSdk().addPlugin(...)` pattern is deprecated (now logs a one-time
  warning) but still works; the CLI and MCP packages moved their internal
  assembly to stacks with no change to their commands or tools.

- Updated dependencies [a950509]
- Updated dependencies [9096184]
  - @zapier/zapier-sdk@0.67.0
  - @zapier/zapier-sdk-mcp@0.13.21

## 0.52.11

### Patch Changes

- 0eb6a76: Add the `triggerWorkflow` experimental code-substrate plugin. Lives behind `@zapier/zapier-sdk/experimental` only — the stable subpath does not surface it. Looks up the workflow's `trigger_url` via the durableworkflowzaps API, then POSTs the user-supplied JSON payload to that URL. The trigger endpoint is tokenized (the URL embeds a secret) and takes no auth header, so the SDK uses a raw `fetch` rather than the api plugin for the second leg. Custom fetch flows through `sdk.context.options.fetch` for tests. The workflow id is UUID-validated at the input boundary; trigger endpoint failures (non-2xx, or workflow with no published version) surface as descriptive errors. The CLI gets the `workflowIdResolver` picker for the workflow input.
- Updated dependencies [66db7cb]
- Updated dependencies [c7c8f64]
- Updated dependencies [0eb6a76]
  - @zapier/zapier-sdk@0.66.0
  - @zapier/zapier-sdk-mcp@0.13.20

## 0.52.10

### Patch Changes

- 9138968: Add the workflow-run experimental code-substrate plugins: `listWorkflowRuns`, `getWorkflowRun`, and `getTriggerRun`. All three live behind `@zapier/zapier-sdk/experimental` only — the stable subpath does not surface them. `listWorkflowRuns` is paginated against the backend's cursor + limit contract; `getWorkflowRun` looks up a run by id; `getTriggerRun` walks from a trigger id to its associated run, useful immediately after firing a trigger when the caller has the trigger id but not yet the run id. All ID inputs are UUID-validated at the schema boundary. Handlers pass the API response through verbatim — schemas stay as `outputSchema` for docs and types, but consumers see any richer fields the server adds without an SDK release. Adds `workflowRunIdResolver` — a dependent resolver scoped to the parent workflow — so CLI commands taking a run id present an interactive picker via `sdk.listWorkflowRuns({ workflow })`. `getTriggerRun` does not register a picker for `trigger`; users typically have the trigger id from a recent fire and pass it directly.
- Updated dependencies [9138968]
  - @zapier/zapier-sdk@0.65.0
  - @zapier/zapier-sdk-mcp@0.13.19

## 0.52.9

### Patch Changes

- 913aa6b: Add the workflow-version experimental code-substrate plugins: `publishWorkflowVersion`, `listWorkflowVersions`, and `getWorkflowVersion`. All three are registered only in `@zapier/zapier-sdk/experimental`; the stable subpath does not expose them. `listWorkflowVersions` is paginated (cursor + pageSize); `publishWorkflowVersion` POSTs `source_files` (filename → contents) plus optional `dependencies`, `zapier_durable_version`, and `enabled` (defaults to true) to publish a new version; `getWorkflowVersion` returns the full version state including source files. Handlers pass API responses through verbatim (no client-side `.parse()` re-emission) so callers see any richer fields the server adds later without an SDK release. Adds `workflowVersionIdResolver` — a dependent resolver scoped to a parent workflow, mirrored on `tableRecordIdResolver`'s shape — so commands that take a version id present an interactive picker via `sdk.listWorkflowVersions({ workflow })` in the CLI. All ID inputs are UUID-validated at the boundary so non-UUID strings fail with a clear schema error instead of an opaque 500 from the backend's `::uuid` cast.
- Updated dependencies [913aa6b]
  - @zapier/zapier-sdk@0.64.0
  - @zapier/zapier-sdk-mcp@0.13.18

## 0.52.8

### Patch Changes

- dfa3cea: Add the durable-run-write experimental code-substrate plugins: `runDurable` and `cancelDurableRun`. Both are registered only in `@zapier/zapier-sdk/experimental`; the stable subpath does not expose them. `runDurable` POSTs to sdkdurableapi `/api/v0/runs` with `source_files` (filename → contents), optional `input`/`dependencies`/`zapier_durable_version`/`connections`/`app_versions`, and a `private` input that maps to `is_private` on the wire. Returns the run ID immediately in `initialized` status — callers that need terminal status poll via `getDurableRun`; no built-in polling. `cancelDurableRun` POSTs to `/api/v0/runs/:id/cancel`, returns `{ id, status: "cancelled" }` on success, and propagates `ZapierNotFoundError` (404) and `ZapierConflictError` (409 — run already terminal) so callers can distinguish those outcomes. `runDurable` passes the API response through verbatim (no client-side `.parse()` re-emission) so callers see any richer fields the server adds later without an SDK release. Input field naming follows the in-tree convention (`run` rather than `runId`); UUID-validated at the input boundary. `cancelDurableRun` reuses `durableRunIdResolver` from the reads MR for ID pickers.
- Updated dependencies [dfa3cea]
  - @zapier/zapier-sdk@0.63.0
  - @zapier/zapier-sdk-mcp@0.13.17

## 0.52.7

### Patch Changes

- eb9b408: Add the durable-run-read experimental code-substrate plugins: `listDurableRuns` and `getDurableRun`. Both are registered only in `@zapier/zapier-sdk/experimental`; the stable subpath does not expose them. `listDurableRuns` is paginated (cursor + pageSize) per the sdkdurableapi `/api/v0/runs` contract; `getDurableRun` returns the full run state with nested execution and operations journal. Handlers pass API responses through verbatim (no client-side `.parse()` re-emission) so callers see any richer fields the server adds later without an SDK release. Also adds `durableRunIdResolver` in `src/resolvers/durableRunId.ts` so commands that take a run id present an interactive picker via `sdk.listDurableRuns()` in the CLI (uses `toIterable` to pull across pages). Input field naming follows the in-tree convention (`run` rather than the fork's `runId`); input is validated as a UUID at the boundary so non-UUID strings fail with a clear schema error instead of an opaque 500 from the backend's `::uuid` cast.
- Updated dependencies [eb9b408]
  - @zapier/zapier-sdk@0.62.0
  - @zapier/zapier-sdk-mcp@0.13.16

## 0.52.6

### Patch Changes

- 104daa3: Fix login/logout reliability bugs.

  **Bug fixes:**
  - `logout` now warns and still clears local keychain/registry state when the server returns 401 during revocation (404 is still silently swallowed; 401 is surfaced as a console warning so users know to verify or revoke the credential manually if needed)
  - Re-login no longer fails with "already exists" when a locally-orphaned registry entry has the same name as the desired new credential
  - `logout` no longer prompts for confirmation before deleting credentials; it always proceeds immediately, which also fixes hangs in non-TTY/CI environments

  **Deprecations:**
  - `--skip-prompts` on `login` and `init` is deprecated in favour of `--non-interactive`. The old flag continues to work with a deprecation warning.

- 4827ffe: Add the workflow-write experimental code-substrate plugins: `createWorkflow`, `updateWorkflow`, `enableWorkflow`, `disableWorkflow`, `deleteWorkflow`. All five are registered only in `@zapier/zapier-sdk/experimental`; the stable subpath does not expose them. The four ID-based ops (update, enable, disable, delete) reuse `workflowIdResolver` so callers get an interactive picker via `sdk.listWorkflows()`. `deleteWorkflow` is marked `confirm: "delete"` for an explicit confirmation prompt before the destructive call. Input field naming follows the in-tree convention (`workflow` rather than the fork's `workflowId`, matching `tableIdResolver`'s shape) and is validated as a UUID at the input boundary so non-UUID strings fail with a clear schema error instead of an opaque 500 from the backend's `::uuid` cast. Response shapes match what the durableworkflowzaps handlers actually emit — no fabricated `is_private` / `created_by_user_id` / `triggers` fields. Handlers pass API responses through verbatim (no client-side `.parse()` re-emission) so callers see any richer fields the server adds later without an SDK release.
- Updated dependencies [104daa3]
- Updated dependencies [4827ffe]
  - @zapier/zapier-sdk@0.61.0
  - @zapier/zapier-sdk-mcp@0.13.15

## 0.52.5

### Patch Changes

- f12598a: Add the workflow-read experimental plugins: `listWorkflows` and `getWorkflow`. Both are registered only in `@zapier/zapier-sdk/experimental`; the stable subpath does not expose them. `listWorkflows` uses `createPaginatedPluginMethod` (page-iterator + `pageSize`/`cursor`/`maxItems` options) so callers can iterate via `for await (const page of sdk.listWorkflows())` or `toIterable(sdk.listWorkflows())`. The backend does not paginate today; the SDK treats a missing `next_cursor` as the last page, so server-side pagination drops in without an SDK API change. Introduces `packages/zapier-sdk/src/plugins/codeSubstrate/shared.ts` with `codeSubstrateDefaults` (`{ categories: ["code-workflow"], experimental: true }`) that subsequent code-workflow plugins spread into their `createPluginMethod` configs. Also adds `workflowIdResolver` in `src/resolvers/workflowId.ts` (mirrors `tableIdResolver` / `triggerInboxResolver`) so commands that take a workflow id present an interactive picker via `sdk.listWorkflows()` in the CLI. Workflow-write commands (`createWorkflow`, `updateWorkflow`, `enable/disable/deleteWorkflow`) land in a follow-up MR.
- Updated dependencies [f12598a]
  - @zapier/zapier-sdk@0.60.0
  - @zapier/zapier-sdk-mcp@0.13.14

## 0.52.4

### Patch Changes

- Updated dependencies [e9da7e9]
  - @zapier/zapier-sdk@0.59.0
  - @zapier/zapier-sdk-mcp@0.13.13

## 0.52.3

### Patch Changes

- Updated dependencies [afbd4b6]
  - @zapier/zapier-sdk@0.58.0
  - @zapier/zapier-sdk-mcp@0.13.12

## 0.52.2

### Patch Changes

- 4460a5a: Added `--skip-prompts` flag to the `login` command. When passed, the command skips all interactive prompts: it uses `email@hostname` as the credential name where possible, and errors instead of prompting when re-authentication or migration is required. Useful in CI environments, piped output, or any setup where TTY detection is unreliable.

## 0.52.1

### Patch Changes

- c8655a4: Added non-interactive support to the `login` command. When running in a headless environment (no TTY — such as CI, piped scripts, or an MCP server), `login` now automatically uses `email@hostname` as the credential name instead of hanging on interactive prompts. If re-authentication or migration is required and a terminal is unavailable, the command now exits with a clear error pointing to `logout` or an interactive terminal.

## 0.52.0

### Minor Changes

- 5457bdd: Added a `trash` option to `listTableRecords` and `listTableFields` for controlling soft-deleted item visibility. Accepts `"exclude"` (default, active items only), `"include"` (active and soft-deleted), or `"only"` (soft-deleted items only).

### Patch Changes

- Updated dependencies [5457bdd]
  - @zapier/zapier-sdk@0.57.0
  - @zapier/zapier-sdk-mcp@0.13.11

## 0.51.3

### Patch Changes

- 64c3f81: Restore `npx @zapier/zapier-sdk-cli` as a working entry point. Adding the `zapier-sdk-experimental` bin previously meant the package had multiple bins and none matched the unscoped package name, so npx could no longer pick one automatically. Aliasing `zapier-sdk-cli` to the same script as `zapier-sdk` fixes that.

## 0.51.2

### Patch Changes

- Updated dependencies [884d0fc]
  - @zapier/zapier-sdk@0.56.2
  - @zapier/zapier-sdk-mcp@0.13.10

## 0.51.1

### Patch Changes

- cc0c9cf: Clarified the `releaseOnError` option description for `drainTriggerInbox` and `consumeTriggerInbox`: errors release the message when the drain finishes, not immediately.
- Updated dependencies [cc0c9cf]
  - @zapier/zapier-sdk-mcp@0.13.9
  - @zapier/zapier-sdk@0.56.1

## 0.51.0

### Minor Changes

- d2aa0e9: Allow opting into approvals during login

### Patch Changes

- Updated dependencies [d2aa0e9]
  - @zapier/zapier-sdk@0.56.0
  - @zapier/zapier-sdk-mcp@0.13.8

## 0.50.0

### Minor Changes

- ce779d1: Add `hint?: string | string[]` to `PromptConfig.choices`. The CLI renders it after the choice's `name` as dimmed parens; an unset `hint` with a primitive `value` auto-renders the value.

  All built-in resolvers migrate to the new shape, so existing dropdowns get small visual cleanups (dim parens, no `ID:` prefix, dash converted to parens, em-dash in `tableRecordId` gone).

  Plugin authors who embed the value in `name` (e.g. `"Foo (${id})"`) should drop the embedded parens; the auto-default appends a second otherwise.

### Patch Changes

- Updated dependencies [ce779d1]
  - @zapier/zapier-sdk@0.55.0
  - @zapier/zapier-sdk-mcp@0.13.7

## 0.49.1

### Patch Changes

- 22a1727: Add optional `name` parameter to `createTriggerInbox` method
- Updated dependencies [22a1727]
  - @zapier/zapier-sdk-mcp@0.13.6
  - @zapier/zapier-sdk@0.54.1

## 0.49.0

### Minor Changes

- ecfb727: Add type-to-filter to interactive single-select dropdowns: dynamic resolvers (apps, connections, tables, table records, etc.) and SELECT-format field choices. `(Load more...)` remains reachable even when a search yields zero matches, so users can pull the next page and try again.

  Dynamic resolvers also gain an `inputType: "search"` mode: the CLI prompts for free-form text, hands it to `fetch` as `search`, and either short-circuits on a primitive return (exact match) or renders results as a search-filterable dropdown. Empty results expose `(Use "foo" as-is)` and `(Try a different search)` so a required parameter can never strand the user. The built-in `appKey` resolver now uses this mode (`getApp` for exact match, `listApps --search` for fallback).

  `DynamicResolver` is now a discriminated union of `DynamicListResolver` and `DynamicSearchResolver`. Note for plugin authors: the `placeholder` field is now typed as `never` on the list variant, so a classic list resolver that was previously setting an unused `placeholder` will see a TypeScript error. Move it into a search-mode variant (`inputType: "search"`) or drop it — the CLI never read it on list resolvers.

### Patch Changes

- Updated dependencies [ecfb727]
  - @zapier/zapier-sdk@0.54.0
  - @zapier/zapier-sdk-mcp@0.13.5

## 0.48.2

### Patch Changes

- 23352c8: Trigger inbox fixes and additions:
  - Send `connection_id: null` for trigger inboxes without a connection so connection-less apps (e.g. tables) work correctly.
  - Add `listTriggers`, a read variant of `listActions` that lists an app's triggers.
  - Add interactive resolvers to trigger inbox message methods: `ackTriggerInboxMessages` and `releaseTriggerInboxMessages` prompt for `messages` with a multi-select of leased messages; `leaseTriggerInboxMessages` prompts for `leaseLimit` and `leaseSeconds`.
  - CLI: coerce static prompt input to the schema's underlying type so numeric/boolean fields (e.g. `leaseLimit`, `leaseSeconds`) no longer fail Zod validation with "expected number, received string".

- Updated dependencies [23352c8]
  - @zapier/zapier-sdk@0.53.0
  - @zapier/zapier-sdk-mcp@0.13.4

## 0.48.1

### Patch Changes

- Updated dependencies [7984fae]
  - @zapier/zapier-sdk@0.52.0
  - @zapier/zapier-sdk-mcp@0.13.3

## 0.48.0

### Minor Changes

- ef1c97d: Default SDK auth to client credentials

### Patch Changes

- f5a734d: Updated the experimental Triggers notice in all three package READMEs to clarify that the feature is in closed beta, with a link to contact us for access.
- Updated dependencies [ef1c97d]
- Updated dependencies [f5a734d]
  - @zapier/zapier-sdk@0.51.0
  - @zapier/zapier-sdk-mcp@0.13.2

## 0.47.0

### Minor Changes

- cef5239: Extend the `(Enter custom value)` sentinel to dynamic input-field dropdowns (SELECT-type fields). Selecting it falls through to a free-text prompt and returns the typed value, so users can supply values that aren't in the fetched dropdown (e.g. dynamic dropdowns that don't return every valid option). Single-select fields only; checkbox/multi-select fields are unchanged.

## 0.46.1

### Patch Changes

- cd8f37b: Collapse the approval-flow surface into a single tri-state `approvalMode` option.

  What changed:
  - `approvalMode` is now `"disabled" | "poll" | "throw"` (was `"poll" | "fail"`).
  - `"disabled"` is the default. While the approval flow is alpha, callers must opt in explicitly via `approvalMode: "poll"` or `approvalMode: "throw"` (or the `ZAPIER_APPROVAL_MODE` env var). On an approval-required response, `"disabled"` throws a `ZapierApprovalError` with `status: "approval_required"` without creating an approval.
  - The `isInteractive` SDK option and the `ZAPIER_IS_INTERACTIVE` env var have been removed. Their role is subsumed by `approvalMode`: choosing `"poll"` / `"throw"` is the explicit opt-in that previously required `isInteractive: true`.
  - `"fail"` has been renamed to `"throw"` (both the option value and the `ZAPIER_APPROVAL_MODE` env var value). The behavior is unchanged: throw a `ZapierApprovalError` carrying the approval URL so the caller can surface it.
  - `approvalMode`, `approvalTimeoutMs`, and `maxApprovalRetries` are now part of the public API (no longer marked `internal: true`).

  There is no back-compat shim. `approvalMode: "fail"` and `isInteractive: <anything>` will fail Zod validation up front.

- Updated dependencies [cd8f37b]
  - @zapier/zapier-sdk@0.50.0
  - @zapier/zapier-sdk-mcp@0.13.1

## 0.46.0

### Minor Changes

- 774e9d3: Add `(Enter custom value)` sentinel to dynamic-resolver dropdowns in the CLI. Selecting it opens a free-text prompt and returns the typed value, so users can supply IDs that aren't in the fetched list without rerunning the command with a CLI flag. Shown for every single-select dynamic resolver; suppressed on checkbox (multi-select) prompts where a typed scalar can't merge with the user's other selections.

## 0.45.0

### Minor Changes

- 529663c: Add experimental support for triggers.

### Patch Changes

- Updated dependencies [529663c]
  - @zapier/zapier-sdk-mcp@0.13.0
  - @zapier/zapier-sdk@0.49.0

## 0.44.1

### Patch Changes

- Updated dependencies [5ec7992]
  - @zapier/zapier-sdk@0.48.1
  - @zapier/zapier-sdk-mcp@0.12.1

## 0.44.0

### Minor Changes

- c7cff63: Adds an extension mechanism that lets the CLI and MCP server load additional plugin packages at runtime. Set `ZAPIER_SDK_EXTENSIONS` to a comma-separated list of package specifiers, or pass them via the new `extensions` option — methods they contribute show up automatically as CLI commands and MCP tools, no per-project wiring required.

  When a plugin tries to register a method, context field, or meta entry that's already registered by another plugin in the chain, `addPlugin` now logs a warning and skips the duplicate plugin's contribution rather than silently overwriting. This catches the common foot-gun of an extension accidentally shadowing a built-in SDK method. Intentional duplicates can be expressed via `composePlugins(...)`, and meta-only overrides (e.g. tagging a built-in method as deprecated) continue to work unchanged.

### Patch Changes

- Updated dependencies [c7cff63]
  - @zapier/zapier-sdk-mcp@0.12.0
  - @zapier/zapier-sdk@0.48.0

## 0.43.4

### Patch Changes

- Updated dependencies [4ab820a]
  - @zapier/zapier-sdk@0.47.1
  - @zapier/zapier-sdk-mcp@0.11.9

## 0.43.3

### Patch Changes

- Updated dependencies [e45ce2f]
  - @zapier/zapier-sdk@0.47.0
  - @zapier/zapier-sdk-mcp@0.11.8

## 0.43.2

### Patch Changes

- fcb47ea: Set npm package homepage links to public SDK documentation.
- Updated dependencies [fcb47ea]
  - @zapier/zapier-sdk@0.46.2
  - @zapier/zapier-sdk-mcp@0.11.7

## 0.43.1

### Patch Changes

- 591ddb5: Removed custom error handlers and added definePlugin, createPluginMethod, and createPaginatedPluginMethod to reduce plugin boilerplate.
- Updated dependencies [591ddb5]
  - @zapier/zapier-sdk@0.46.1
  - @zapier/zapier-sdk-mcp@0.11.6

## 0.43.0

### Minor Changes

- bd887ab: Rename the client credentials persistence seam from storage to cache and expose the CLI filesystem/keychain adapter as a best-effort cache.

### Patch Changes

- Updated dependencies [bd887ab]
  - @zapier/zapier-sdk@0.46.0
  - @zapier/zapier-sdk-mcp@0.11.5

## 0.42.2

### Patch Changes

- 783e180: Convert API query params from camelCase to snake_case (appKeys -> app_keys, pageSize -> page_size) to match the updated API contract. Also updated all `zapier-sdk-*` packages to Zod to 4.3.6
- Updated dependencies [783e180]
  - @zapier/zapier-sdk-mcp@0.11.4
  - @zapier/zapier-sdk@0.45.2

## 0.42.1

### Patch Changes

- cb0d898: Added telemetry headers so sdkapi can attribute traffic to the SDK entry point that produced it. Every outbound request now includes `x-zapier-sdk-version`, with `x-zapier-service` added when `ZAPIER_SDK_SERVICE` is set. Requests originating from `createZapierCliSdk` or `createZapierMcpServer` additionally include `x-zapier-sdk-package` and `x-zapier-sdk-package-version` identifying the wrapping package; direct `createZapierSdk` callers omit those two. Headers are applied after caller-supplied header merging, so they can't be spoofed via per-request `options.headers`.
- Updated dependencies [cb0d898]
  - @zapier/zapier-sdk-mcp@0.11.3
  - @zapier/zapier-sdk@0.45.1

## 0.42.0

### Minor Changes

- 15dce25: `registryPlugin` is now deprecated, because `getRegistry` is built into the SDK and added after each plugin is added. Plugins will always be registered; there is no need to call `createZapierSdkWithoutRegistry`, add custom plugins, and then `.addPlugin(registryPlugin)`. Because of this, `createZapierSdkWithoutRegistry` is now deprecated, and calling it will still give you an SDK with `getRegistry` on it. Calling `addPlugin(registryPlugin)` on that SDK is a no-op.

### Patch Changes

- Updated dependencies [15dce25]
  - @zapier/zapier-sdk@0.45.0
  - @zapier/zapier-sdk-mcp@0.11.2

## 0.41.1

### Patch Changes

- Updated dependencies [fd8660c]
  - @zapier/zapier-sdk@0.44.0
  - @zapier/zapier-sdk-mcp@0.11.1

## 0.41.0

### Minor Changes

- 8df8761: Add an experimental interactive approval flow for policy-gated actions. When an action requires approval, the SDK detects the `approval_required` response, prompts for approval in interactive sessions, and automatically retries the original request once approved. Non-interactive sessions receive a clear error explaining that approval is required. This flow is experimental and its behavior may change in future releases.

### Patch Changes

- Updated dependencies [8df8761]
  - @zapier/zapier-sdk-mcp@0.11.0
  - @zapier/zapier-sdk@0.43.0

## 0.40.1

### Patch Changes

- 707c57a: Simplify plugin system: plugins now receive sdk as a positional parameter with context at sdk.context. The Plugin type takes 2 generics (input SDK shape, output provides) instead of 3. Context is shallow-frozen to prevent reassignment of top-level properties. createSdk() is now zero-arg; SDK options are injected via createOptionsPlugin(options) through addPlugin like any other state. Plugins that need options declare it as an explicit context dependency. The addPluginOptions second argument to addPlugin has been removed.
- Updated dependencies [707c57a]
  - @zapier/zapier-sdk@0.42.1
  - @zapier/zapier-sdk-mcp@0.10.15

## 0.40.0

### Minor Changes

- 55e8330: Support maxTime for SDK fetch & CLI curl - Relay extended timeout

### Patch Changes

- Updated dependencies [55e8330]
  - @zapier/zapier-sdk@0.42.0
  - @zapier/zapier-sdk-mcp@0.10.14

## 0.39.11

### Patch Changes

- 3cf1a98: Fix connection resolution for no-auth apps
- Updated dependencies [3cf1a98]
  - @zapier/zapier-sdk@0.41.2
  - @zapier/zapier-sdk-mcp@0.10.13

## 0.39.10

### Patch Changes

- Updated dependencies [53c165a]
  - @zapier/zapier-sdk@0.41.1
  - @zapier/zapier-sdk-mcp@0.10.12

## 0.39.9

### Patch Changes

- a50b594: Fix ZodObject param handling in CLI

## 0.39.8

### Patch Changes

- Updated dependencies [912e960]
  - @zapier/zapier-sdk@0.41.0
  - @zapier/zapier-sdk-mcp@0.10.11

## 0.39.7

### Patch Changes

- Updated dependencies [e3f5a81]
  - @zapier/zapier-sdk@0.40.4
  - @zapier/zapier-sdk-mcp@0.10.10

## 0.39.6

### Patch Changes

- 381f3a6: Hide the bundle-code command from CLI help and generated docs

## 0.39.5

### Patch Changes

- 9df023c: Fix empty input handling for optional params with placeholder

## 0.39.4

### Patch Changes

- 5aff110: Fix bug previously including envelope for curl with json input

## 0.39.3

### Patch Changes

- b250545: Connections - Replace isExpired with expired
- Updated dependencies [b250545]
  - @zapier/zapier-sdk@0.40.3
  - @zapier/zapier-sdk-mcp@0.10.9

## 0.39.2

### Patch Changes

- 362bc56: Make sure CLI only shows non-deprecated positional parameters.
- Updated dependencies [362bc56]
  - @zapier/zapier-sdk@0.40.2
  - @zapier/zapier-sdk-mcp@0.10.8

## 0.39.1

### Patch Changes

- 5391c65: Fix ordering problem with tables CLI commands.
- Updated dependencies [5391c65]
  - @zapier/zapier-sdk@0.40.1
  - @zapier/zapier-sdk-mcp@0.10.7

## 0.39.0

### Minor Changes

- 39e296a: Removing Id or Key suffixes from parameter names to make them flexible to be ID, key, name, alias, etc.

### Patch Changes

- Updated dependencies [39e296a]
  - @zapier/zapier-sdk@0.40.0
  - @zapier/zapier-sdk-mcp@0.10.6

## 0.38.2

### Patch Changes

- Updated dependencies [b4c0560]
  - @zapier/zapier-sdk@0.39.1
  - @zapier/zapier-sdk-mcp@0.10.5

## 0.38.1

### Patch Changes

- Updated dependencies [a20d36a]
  - @zapier/zapier-sdk@0.39.0
  - @zapier/zapier-sdk-mcp@0.10.4

## 0.38.0

### Minor Changes

- 0ec936e: Move @zapier/zapier-durable into the zapier-sdk monorepo and wire up CLI integration (durable-run, durable-callback, durable-status commands).

## 0.37.0

### Minor Changes

- 2906101: Default `listConnections` and `listTables` to only return your own items. Gate shared access and table deletion behind boolean flags: `canIncludeSharedConnections`, `canIncludeSharedTables`, `canDeleteTables`. Set via SDK options, `.zapierrc`, CLI flags (`--can-delete-tables`), or env vars (`ZAPIER_CAN_DELETE_TABLES=true`).

### Patch Changes

- Updated dependencies [2906101]
  - @zapier/zapier-sdk@0.38.0
  - @zapier/zapier-sdk-mcp@0.10.3

## 0.36.3

### Patch Changes

- Updated dependencies [307aa98]
  - @zapier/zapier-sdk@0.37.0
  - @zapier/zapier-sdk-mcp@0.10.2

## 0.36.2

### Patch Changes

- 9d08988: Fix short alias for fail to match curl

## 0.36.1

### Patch Changes

- Updated dependencies [3a447d3]
  - @zapier/zapier-sdk@0.36.0
  - @zapier/zapier-sdk-mcp@0.10.1

## 0.36.0

### Minor Changes

- d4534f3: Add support for Tables.

### Patch Changes

- Updated dependencies [d4534f3]
  - @zapier/zapier-sdk-cli-login@0.9.0
  - @zapier/zapier-sdk-mcp@0.10.0
  - @zapier/zapier-sdk@0.35.0

## 0.35.1

### Patch Changes

- 6c5bba9: Fix fetch type for app proxy without generated types.
- Updated dependencies [6c5bba9]
  - @zapier/zapier-sdk-cli-login@0.8.3
  - @zapier/zapier-sdk-mcp@0.9.23
  - @zapier/zapier-sdk@0.34.1

## 0.35.0

### Minor Changes

- 3700f6a: Fix --json output

### Patch Changes

- Updated dependencies [3700f6a]
  - @zapier/zapier-sdk@0.34.0
  - @zapier/zapier-sdk-mcp@0.9.22

## 0.34.12

### Patch Changes

- d9e0f1d: Fix user properties being overwritten by context merge in telemetry events
- Updated dependencies [d9e0f1d]
  - @zapier/zapier-sdk@0.33.4
  - @zapier/zapier-sdk-mcp@0.9.21

## 0.34.11

### Patch Changes

- f676852: Suppress resolver method calls from emitting telemetry events
- Updated dependencies [f676852]
  - @zapier/zapier-sdk@0.33.3
  - @zapier/zapier-sdk-mcp@0.9.20

## 0.34.10

### Patch Changes

- 623dc25: Add deprecation warning for fetch CLI command
- Updated dependencies [623dc25]
  - @zapier/zapier-sdk@0.33.2
  - @zapier/zapier-sdk-mcp@0.9.19

## 0.34.9

### Patch Changes

- 42edf6e: Remove test files from published packages
- Updated dependencies [42edf6e]
  - @zapier/zapier-sdk@0.33.1
  - @zapier/zapier-sdk-cli-login@0.8.2
  - @zapier/zapier-sdk-mcp@0.9.18

## 0.34.8

### Patch Changes

- Updated dependencies [f442359]
  - @zapier/zapier-sdk@0.33.0
  - @zapier/zapier-sdk-mcp@0.9.17

## 0.34.7

### Patch Changes

- Updated dependencies [0feaeb1]
  - @zapier/zapier-sdk@0.32.5
  - @zapier/zapier-sdk-mcp@0.9.16

## 0.34.6

### Patch Changes

- 1334eac: Emit login_success lifecycle event on CLI login
- Updated dependencies [1334eac]
  - @zapier/zapier-sdk@0.32.4
  - @zapier/zapier-sdk-mcp@0.9.15

## 0.34.5

### Patch Changes

- Updated dependencies [3663fc3]
  - @zapier/zapier-sdk-cli-login@0.8.1
  - @zapier/zapier-sdk@0.32.3

## 0.34.4

### Patch Changes

- 04000f6: Skip connection selection for apps that do not require auth
- Updated dependencies [04000f6]
  - @zapier/zapier-sdk@0.32.3
  - @zapier/zapier-sdk-mcp@0.9.14

## 0.34.3

### Patch Changes

- Updated dependencies [a6dec83]
  - @zapier/zapier-sdk@0.32.2
  - @zapier/zapier-sdk-mcp@0.9.13

## 0.34.2

### Patch Changes

- 2860435: Emit telemetry events for all CLI commands

## 0.34.1

### Patch Changes

- c7be13e: Fix bug where `add` command hangs after completing successfully
- Updated dependencies [c7be13e]
  - @zapier/zapier-sdk@0.32.1
  - @zapier/zapier-sdk-mcp@0.9.12

## 0.34.0

### Minor Changes

- 250cb7d: Store CLI login credentials in system keychain.

### Patch Changes

- Updated dependencies [250cb7d]
  - @zapier/zapier-sdk-cli-login@0.8.0
  - @zapier/zapier-sdk@0.32.0
  - @zapier/zapier-sdk-mcp@0.9.11

## 0.33.0

### Minor Changes

- 77a1a7b: Introduce init command to bootstrap a new project with SDK

## 0.32.4

### Patch Changes

- Updated dependencies [026ae46]
  - @zapier/zapier-sdk@0.31.4
  - @zapier/zapier-sdk-mcp@0.9.10

## 0.32.3

### Patch Changes

- c98008a: Add callContext option to EventEmissionConfig to track where SDK method calls originate. MethodCalledEvent telemetry events now populate call_context with "sdk", "cli", or "mcp" instead of null.
- Updated dependencies [c98008a]
  - @zapier/zapier-sdk-mcp@0.9.9
  - @zapier/zapier-sdk@0.31.3

## 0.32.2

### Patch Changes

- 1ae0349: Improve error message when credentials can't be found. Also improve module resolution for login module.
- Updated dependencies [1ae0349]
  - @zapier/zapier-sdk@0.31.2
  - @zapier/zapier-sdk-mcp@0.9.8

## 0.32.1

### Patch Changes

- Updated dependencies [b0f273f]
  - @zapier/zapier-sdk@0.31.1
  - @zapier/zapier-sdk-mcp@0.9.7

## 0.32.0

### Minor Changes

- 4a874c6: Add Zod schema for base SDK options, autodoc generation for SDK factory options and CLI base command options

### Patch Changes

- Updated dependencies [4a874c6]
  - @zapier/zapier-sdk@0.31.0
  - @zapier/zapier-sdk-mcp@0.9.6

## 0.31.2

### Patch Changes

- Updated dependencies [0055854]
  - @zapier/zapier-sdk@0.30.0
  - @zapier/zapier-sdk-mcp@0.9.5

## 0.31.1

### Patch Changes

- a49a7af: Fix bug in array option handling in the CLI causing create-client-credentials to fail.

## 0.31.0

### Minor Changes

- ad5ee3b: Adds a new curl plugin.
  Switch -v flag to -V for version information.
  Fix CLI to properly handle string and object types.
  Add redirect passthrough to fetch plugin (to support curl plugin).

### Patch Changes

- Updated dependencies [ad5ee3b]
  - @zapier/zapier-sdk@0.29.0
  - @zapier/zapier-sdk-mcp@0.9.4

## 0.30.0

### Minor Changes

- b2e5675: Retry on 429s with appropriate backoff. Add maxNetworkRetries and maxNetworkRetryDelayMs options (also configurable via ZAPIER_MAX_NETWORK_RETRIES and ZAPIER_MAX_NETWORK_RETRY_DELAY_MS environment variables).

### Patch Changes

- Updated dependencies [b2e5675]
  - @zapier/zapier-sdk@0.28.0
  - @zapier/zapier-sdk-mcp@0.9.3

## 0.29.4

### Patch Changes

- c0ea9c8: Fix slack action in CLAUDE.md to channel_message

## 0.29.3

### Patch Changes

- Updated dependencies [ffcd15a]
  - @zapier/zapier-sdk-mcp@0.9.2

## 0.29.2

### Patch Changes

- d3e34ab: Fix update command for npm.

## 0.29.1

### Patch Changes

- 4ad0f34: Removed the `overall` option from the feedback command, since that will be inferred now. Also made it ask for feedback if you don't provide a value for it.
- Updated dependencies [4ad0f34]
  - @zapier/zapier-sdk@0.27.1
  - @zapier/zapier-sdk-mcp@0.9.1

## 0.29.0

### Minor Changes

- 9fb0b48: Switch from "authentication" to "connection" everywhere.

### Patch Changes

- Updated dependencies [9fb0b48]
  - @zapier/zapier-sdk-mcp@0.9.0
  - @zapier/zapier-sdk@0.27.0

## 0.28.0

### Minor Changes

- bfdd383: Remove authenticationTemplate option from fetch.

### Patch Changes

- Updated dependencies [bfdd383]
  - @zapier/zapier-sdk@0.26.0
  - @zapier/zapier-sdk-mcp@0.8.5

## 0.27.0

### Minor Changes

- 7ab8539: Adding feedback command for submitting SDK feedback

### Patch Changes

- Updated dependencies [7ab8539]
  - @zapier/zapier-sdk@0.25.3
  - @zapier/zapier-sdk-mcp@0.8.4

## 0.26.2

### Patch Changes

- 642713b: Update README with more detail and more attention on fetch.
- Updated dependencies [642713b]
  - @zapier/zapier-sdk@0.25.2
  - @zapier/zapier-sdk-mcp@0.8.3

## 0.26.1

### Patch Changes

- aacaf22: Improved `fetch` to automatically set the correct `Content-Type` header based on the request body type. `FormData`, `Blob`, and other binary bodies are now handled correctly instead of being misidentified as JSON.
- Updated dependencies [aacaf22]
  - @zapier/zapier-sdk@0.25.1
  - @zapier/zapier-sdk-mcp@0.8.2

## 0.26.0

### Minor Changes

- b0b7eb3: Add timeoutMs for setting the timeout for polling action results.

### Patch Changes

- Updated dependencies [b0b7eb3]
  - @zapier/zapier-sdk@0.25.0
  - @zapier/zapier-sdk-mcp@0.8.1

## 0.25.0

### Minor Changes

- d72cda1: Deprecates request() in favor of self-contained fetch(). The fetch plugin now handles URL-to-relay transformation, header normalization,
  and body content-type inference directly instead of delegating to request. The request plugin is preserved as a backward-compatible
  shim that forwards to fetch. CLI and MCP now expose a fetch command via a new inputParameters registry concept for
  multi-positional-argument functions.

### Patch Changes

- Updated dependencies [d72cda1]
  - @zapier/zapier-sdk-mcp@0.8.0
  - @zapier/zapier-sdk@0.24.0

## 0.24.4

### Patch Changes

- Updated dependencies [9664bd0]
  - @zapier/zapier-sdk@0.23.2
  - @zapier/zapier-sdk-mcp@0.7.6

## 0.24.3

### Patch Changes

- Updated dependencies [c95e1d4]
  - @zapier/zapier-sdk@0.23.1
  - @zapier/zapier-sdk-mcp@0.7.5

## 0.24.2

### Patch Changes

- Updated dependencies [7cf2b12]
  - @zapier/zapier-sdk-cli-login@0.7.0
  - @zapier/zapier-sdk@0.23.0
  - @zapier/zapier-sdk-mcp@0.7.4

## 0.24.1

### Patch Changes

- Updated dependencies [8ebde4b]
  - @zapier/zapier-sdk@0.22.1
  - @zapier/zapier-sdk-mcp@0.7.3

## 0.24.0

### Minor Changes

- f54f895: Fix allowed_scopes parameter to be allowedScopes.

### Patch Changes

- Updated dependencies [f54f895]
  - @zapier/zapier-sdk@0.22.0
  - @zapier/zapier-sdk-mcp@0.7.2

## 0.23.2

### Patch Changes

- dd54c22: `request` and `fetch` now require auth and provide a more helpful error message
- Updated dependencies [dd54c22]
  - @zapier/zapier-sdk-mcp@0.7.1
  - @zapier/zapier-sdk@0.21.1

## 0.23.1

### Patch Changes

- Updated dependencies [7ad92fe]
  - @zapier/zapier-sdk-mcp@0.7.0

## 0.23.0

### Minor Changes

- 33e2a8f: Added methods/commands for creating/listing/deleting client credentials.

### Patch Changes

- Updated dependencies [33e2a8f]
  - @zapier/zapier-sdk-cli-login@0.6.0
  - @zapier/zapier-sdk-mcp@0.6.0
  - @zapier/zapier-sdk@0.21.0

## 0.22.1

### Patch Changes

- Updated dependencies [7bd3c5c]
  - @zapier/zapier-sdk@0.20.1
  - @zapier/zapier-sdk-mcp@0.5.1

## 0.22.0

- Fix 0.21.0 saying to update to 0.21.0.

## 0.21.0

- Update dependency to @zapier/zapier-sdk@0.20.0 after accidentally publishing a major version update.

## 0.19.0

### Minor Changes

- 4dd27eb: Add isExpired parameter to listAuthentications for filtering authentications by expiration status.

### Patch Changes

- Updated dependencies [4dd27eb]
  - @zapier/zapier-sdk@1.1.0
  - @zapier/zapier-sdk-mcp@0.4.15

## 0.18.3

### Patch Changes

- e393401: Adds CLAUDE.md documentation files to the zapier-sdk and zapier-sdk-cli packages to help users get up to speed faster when using AI assistants like Claude, Cursor, etc.
- Updated dependencies [e393401]
  - @zapier/zapier-sdk@1.0.3
  - @zapier/zapier-sdk-mcp@0.4.14

## 0.18.2

### Patch Changes

- Updated dependencies [00ef417]
  - @zapier/zapier-sdk@1.0.2
  - @zapier/zapier-sdk-mcp@0.4.13

## 0.18.1

### Patch Changes

- Updated dependencies [aba842a]
  - @zapier/zapier-sdk@1.0.1
  - @zapier/zapier-sdk-mcp@0.4.12

## 0.18.0

### Minor Changes

- 97ff6c0: Add support for client credentials.

### Patch Changes

- Updated dependencies [97ff6c0]
  - @zapier/zapier-sdk-cli-login@0.4.0
  - @zapier/zapier-sdk@1.0.0
  - @zapier/zapier-sdk-mcp@0.4.11

## 0.17.4

### Patch Changes

- 3bc3cad: - Migrated `listApps` to call sdkapi endpoints directly, removing the temporary handler infrastructure. - Schemas now imported from `@zapier/zapier-sdk-core` for shared type definitions
- Updated dependencies [3bc3cad]
  - @zapier/zapier-sdk@0.18.4
  - @zapier/zapier-sdk-mcp@0.4.10

## 0.17.3

### Patch Changes

- 7c59b01: - `listAuthentications` now routes through the proxy. It also imports and overrides a shared schema from `zapier-sdk-core`
- Updated dependencies [7c59b01]
  - @zapier/zapier-sdk@0.18.3
  - @zapier/zapier-sdk-mcp@0.4.9

## 0.17.2

### Patch Changes

- 76fb606: - `getAuthentication` plugin now routes through proxy instead of direct Zapier API's
- Updated dependencies [76fb606]
  - @zapier/zapier-sdk@0.18.2
  - @zapier/zapier-sdk-mcp@0.4.8

## 0.17.1

### Patch Changes

- Updated dependencies [ee5beb6]
  - @zapier/zapier-sdk@0.18.1
  - @zapier/zapier-sdk-mcp@0.4.7

## 0.17.0

### Minor Changes

- c2eab85: Switch numeric IDs to strings.

### Patch Changes

- Updated dependencies [c2eab85]
  - @zapier/zapier-sdk@0.18.0
  - @zapier/zapier-sdk-mcp@0.4.6

## 0.16.9

### Patch Changes

- Updated dependencies [79b47f7]
  - @zapier/zapier-sdk@0.17.0
  - @zapier/zapier-sdk-mcp@0.4.5

## 0.16.8

### Patch Changes

- 870f2aa: Fix CLI process hanging after login and on signal handling
  - Clear login timeout timer after successful authentication to allow process exit
  - Use timer.unref() on telemetry timeouts so they don't block process exit
  - Add explicit process.exit() in signal handlers with correct exit codes

- Updated dependencies [870f2aa]
  - @zapier/zapier-sdk@0.16.3
  - @zapier/zapier-sdk-mcp@0.4.4

## 0.16.7

### Patch Changes

- 759d2d5: Fix update notification writing to stdout instead of stderr, which broke piping JSON output to jq

## 0.16.6

### Patch Changes

- Updated dependencies [f083442]
  - @zapier/zapier-sdk-mcp@0.4.3

## 0.16.5

### Patch Changes

- Updated dependencies [3466380]
  - @zapier/zapier-sdk-cli-login@0.3.7
  - @zapier/zapier-sdk@0.16.2

## 0.16.4

### Patch Changes

- Updated dependencies [93cbb3c]
  - @zapier/zapier-sdk@0.16.2
  - @zapier/zapier-sdk-mcp@0.4.2

## 0.16.3

### Patch Changes

- 142c1ce: Fix CLI UX issues: stdout truncation when piped, nullable schema detection for Zod 4, error body display, and auto Content-Type for JSON bodies
- Updated dependencies [142c1ce]
  - @zapier/zapier-sdk@0.16.1
  - @zapier/zapier-sdk-mcp@0.4.1

## 0.16.2

### Patch Changes

- 0434971: Make zapier-sdk-cli and zapier-sdk-cli-login packages public
- Updated dependencies [0434971]
  - @zapier/zapier-sdk-cli-login@0.3.6
  - @zapier/zapier-sdk@0.16.0

## 0.16.1

### Patch Changes

- e80d094: Fix CLI to extract JSON body from Response objects instead of showing raw Response representation. Adds error handling for invalid JSON responses with helpful error messages.

## 0.16.0

### Minor Changes

- 24ae4f0: Upgrade to Zod 4
  - Update all packages to use Zod 4
  - Migrate internal API access from `_def` to `_zod.def`
  - Update `z.record()` calls to include explicit key types
  - Fix schema introspection for documentation generation and CLI
  - Update MCP schema converter for Zod 4 structure

### Patch Changes

- Updated dependencies [24ae4f0]
  - @zapier/zapier-sdk-mcp@0.4.0
  - @zapier/zapier-sdk@0.16.0

## 0.15.14

### Patch Changes

- d08fa90: Add proper license
- Updated dependencies [d08fa90]
  - @zapier/zapier-sdk-cli-login@0.3.5
  - @zapier/zapier-sdk-mcp@0.3.39
  - @zapier/zapier-sdk@0.15.13

## 0.15.13

### Patch Changes

- Updated dependencies [9989512]
  - @zapier/zapier-sdk@0.15.12
  - @zapier/zapier-sdk-mcp@0.3.38

## 0.15.12

### Patch Changes

- Updated dependencies [b90e240]
  - @zapier/zapier-sdk-mcp@0.3.37

## 0.15.11

### Patch Changes

- Updated dependencies [64de0b0]
  - @zapier/zapier-sdk@0.15.11
  - @zapier/zapier-sdk-mcp@0.3.36

## 0.15.10

### Patch Changes

- ca83e51: Fix MCP server exiting immediately
- Updated dependencies [ca83e51]
  - @zapier/zapier-sdk-mcp@0.3.35

## 0.15.9

### Patch Changes

- 2f1fc5c: Remove inaccurate `peak_memory_usage_bytes` values from telemetry events
- Updated dependencies [2f1fc5c]
  - @zapier/zapier-sdk@0.15.10
  - @zapier/zapier-sdk-mcp@0.3.34

## 0.15.8

### Patch Changes

- Updated dependencies [450b009]
  - @zapier/zapier-sdk@0.15.9
  - @zapier/zapier-sdk-mcp@0.3.33

## 0.15.7

### Patch Changes

- Updated dependencies [371315e]
  - @zapier/zapier-sdk@0.15.8
  - @zapier/zapier-sdk-mcp@0.3.32

## 0.15.6

### Patch Changes

- Updated dependencies [9f3695b]
  - @zapier/zapier-sdk@0.15.7
  - @zapier/zapier-sdk-mcp@0.3.31

## 0.15.5

### Patch Changes

- Updated dependencies [6a0e0db]
  - @zapier/zapier-sdk@0.15.6
  - @zapier/zapier-sdk-mcp@0.3.30

## 0.15.4

### Patch Changes

- Updated dependencies [712c02b]
  - @zapier/zapier-sdk@0.15.5
  - @zapier/zapier-sdk-mcp@0.3.29

## 0.15.3

### Patch Changes

- f7e552e: Add synchronous customuser_id and account_id retrieval to event emission plugin
- Updated dependencies [f7e552e]
  - @zapier/zapier-sdk@0.15.4
  - @zapier/zapier-sdk-mcp@0.3.28

## 0.15.2

### Patch Changes

- a4aee2e: Enhanced param resolver to fully resolve dynamic input fields and dynamic choices.

## 0.15.1

### Patch Changes

- 6657f05: Defined shape and support for configured actions in the .zapierrc manifest file
- Updated dependencies [6657f05]
  - @zapier/zapier-sdk@0.15.3
  - @zapier/zapier-sdk-mcp@0.3.27

## 0.15.0

### Minor Changes

- bb96995: Use semver to check for update against cache. Otherwise, we might tell you to update to an older version.

## 0.14.1

### Patch Changes

- 064740d: Add `@latest` to update message.

## 0.14.0

### Minor Changes

- 5d82a5a: Add update/deprecation message.

## 0.13.16

### Patch Changes

- Updated dependencies [e4a3457]
  - @zapier/zapier-sdk@0.15.2
  - @zapier/zapier-sdk-mcp@0.3.26

## 0.13.15

### Patch Changes

- 4c78fb0: Added `getInputFieldsSchema` plugin to retrieve JSON Schema for action inputs
- Updated dependencies [4c78fb0]
  - @zapier/zapier-sdk-mcp@0.3.25
  - @zapier/zapier-sdk@0.15.1

## 0.13.14

### Patch Changes

- Updated dependencies [f92bc07]
  - @zapier/zapier-sdk@0.15.0
  - @zapier/zapier-sdk-mcp@0.3.24

## 0.13.13

### Patch Changes

- Updated dependencies [3f2f104]
  - @zapier/zapier-sdk@0.14.0
  - @zapier/zapier-sdk-mcp@0.3.23

## 0.13.12

### Patch Changes

- 492e2f9: - Add new `batch` utility method to handle concurency limits, retries, timeouts and exponential backoffs.
  - Refactor `generateAppTypes` in CLI to use the new `batch` utility
- Updated dependencies [492e2f9]
  - @zapier/zapier-sdk@0.13.9
  - @zapier/zapier-sdk-mcp@0.3.22

## 0.13.11

### Patch Changes

- 6de89a9: Allow overriding ZAPIER_BASE_URL with env vars, and also add new ZAPIER_TRACKING_BASE_URL, ZAPIER_AUTH_BASE_URL, and ZAPIER_AUTH_CLIENT_ID env vars and parameters.
- Updated dependencies [6de89a9]
  - @zapier/zapier-sdk-cli-login@0.3.4
  - @zapier/zapier-sdk@0.13.8
  - @zapier/zapier-sdk-mcp@0.3.21

## 0.13.10

### Patch Changes

- f56c6a0: Refactor buildManifest and generateAppTypes to throw proper errors, instead of returning an error property

## 0.13.9

### Patch Changes

- d7eb0ea: Pass all available options through createZapierSdkCliSdk into the base createZapierSdkWithoutRegistry

## 0.13.8

### Patch Changes

- Updated dependencies [c1d3c9c]
- Updated dependencies [16b4930]
  - @zapier/zapier-sdk@0.13.7
  - @zapier/zapier-sdk-mcp@0.3.20

## 0.13.7

### Patch Changes

- 9b7a954: Change OAuth client ID.
- a563cda: Extend ZapierCliSdkOptions with the base ZapierSdkOptions so we can see the token and other properties when initializing with createZapierSdkCli
- Updated dependencies [9b7a954]
- Updated dependencies [a563cda]
  - @zapier/zapier-sdk-cli-login@0.3.3
  - @zapier/zapier-sdk@0.13.6
  - @zapier/zapier-sdk-mcp@0.3.19

## 0.13.6

### Patch Changes

- 05ce6f7: 1. Extracted manifest creation and type generation into flexible base plugins that can be used by other consumers. 2. Updated updateManifestEntry function from base SDK to allow manipulating manifest as file or as JSON
- Updated dependencies [05ce6f7]
  - @zapier/zapier-sdk@0.13.5
  - @zapier/zapier-sdk-mcp@0.3.18

## 0.13.5

### Patch Changes

- 7184f27: Move typescript package from devDependencies to dependencies since it is needed at runtime for the CLI's add command.

## 0.13.4

### Patch Changes

- 80732ea: Add basic event-driven telemetry for key lifecycle events and CLI logins
- Updated dependencies [80732ea]
  - @zapier/zapier-sdk@0.13.4
  - @zapier/zapier-sdk-mcp@0.3.17

## 0.13.3

### Patch Changes

- 53fa85e: Show id and key properties when listing actions. Allow getAction to use an id or key. Make runAction pass action_id to API to ensure it always works.
- Updated dependencies [53fa85e]
  - @zapier/zapier-sdk@0.13.3
  - @zapier/zapier-sdk-mcp@0.3.16

## 0.13.2

### Patch Changes

- 325d5c2: Fix bug where adding apps with dashed slugs would create types with syntax errors. All valid keys are now valid properties on the apps interface.
- Updated dependencies [325d5c2]
  - @zapier/zapier-sdk@0.13.2
  - @zapier/zapier-sdk-mcp@0.3.15

## 0.13.1

### Patch Changes

- Updated dependencies [a607e3a]
  - @zapier/zapier-sdk@0.13.1
  - @zapier/zapier-sdk-mcp@0.3.14

## 0.13.0

### Minor Changes

- 53ad336: Tweak list-apps output. Hint at slug for appKey parameters. Fix type gen for new field format. Fix action normalization.

### Patch Changes

- Updated dependencies [53ad336]
  - @zapier/zapier-sdk@0.13.0
  - @zapier/zapier-sdk-mcp@0.3.13

## 0.12.1

### Patch Changes

- Updated dependencies [c2f88bc]
  - @zapier/zapier-sdk@0.12.1
  - @zapier/zapier-sdk-mcp@0.3.12

## 0.12.0

### Minor Changes

- 21d8487: Improved get started README and added more documentation to the add plugin

### Patch Changes

- Updated dependencies [21d8487]
  - @zapier/zapier-sdk@0.12.0
  - @zapier/zapier-sdk-mcp@0.3.11

## 0.11.2

### Patch Changes

- 407245e: Add packages to meta so we can document `fetch` for SDK but not CLI/MCP.
- Updated dependencies [407245e]
  - @zapier/zapier-sdk-mcp@0.3.10
  - @zapier/zapier-sdk@0.11.2

## 0.11.1

### Patch Changes

- 0002fe9: Updated doc generation
- Updated dependencies [0002fe9]
  - @zapier/zapier-sdk-mcp@0.3.9
  - @zapier/zapier-sdk@0.11.1

## 0.11.0

### Minor Changes

- 12c6d3d: Return nested fields with fieldsets instead of flat fields. Also have CLI properly create line items from fieldsets for run-action.

### Patch Changes

- Updated dependencies [12c6d3d]
  - @zapier/zapier-sdk@0.11.0
  - @zapier/zapier-sdk-mcp@0.3.8

## 0.10.0

### Minor Changes

- 3184903: No more global resolver registry, each plugin function has its own resolvers. Plugin function meta also stores output schema and some function type info to avoid some special case code for handling lists, documenting functions, etc. findFirstAuthentication throws an error to make all item functions consistent. Various other schema and output cleanup.

### Patch Changes

- Updated dependencies [3184903]
  - @zapier/zapier-sdk@0.10.0
  - @zapier/zapier-sdk-mcp@0.3.7

## 0.9.1

### Patch Changes

- Updated dependencies [3cfed98]
  - @zapier/zapier-sdk@0.9.1
  - @zapier/zapier-sdk-mcp@0.3.6

## 0.9.0

### Minor Changes

- 5ccaec6: AST-based type gen instead of string-based. Added `add` function for locking app versions and generating types. Removed `lockVersion` and `generateTypes functions. Manifest matching on slug or implementation name.

### Patch Changes

- Updated dependencies [5ccaec6]
  - @zapier/zapier-sdk@0.9.0
  - @zapier/zapier-sdk-mcp@0.3.5

## 0.8.4

### Patch Changes

- Updated dependencies [ed235b6]
  - @zapier/zapier-sdk@0.8.3
  - @zapier/zapier-sdk-mcp@0.3.4

## 0.8.3

### Patch Changes

- 2cf22f7: Fix broken table of contents in CLI and MCP READMEs
- Updated dependencies [2cf22f7]
  - @zapier/zapier-sdk-mcp@0.3.3

## 0.8.2

### Patch Changes

- Updated dependencies [bef5467]
  - @zapier/zapier-sdk@0.8.2
  - @zapier/zapier-sdk-mcp@0.3.2

## 0.8.1

### Patch Changes

- Updated dependencies [319a05f]
  - @zapier/zapier-sdk@0.8.1
  - @zapier/zapier-sdk-mcp@0.3.1

## 0.8.0

### Minor Changes

- 3a39eee: Add listInputFieldChoices method

### Patch Changes

- Updated dependencies [3a39eee]
  - @zapier/zapier-sdk-mcp@0.3.0
  - @zapier/zapier-sdk@0.8.0

## 0.7.0

### Minor Changes

- 096d674: Changed incorrect account_id parameter to accountId. Also made sure all CLI parameters are documented as kebab-case.

### Patch Changes

- Updated dependencies [096d674]
  - @zapier/zapier-sdk@0.7.0
  - @zapier/zapier-sdk-mcp@0.2.5

## 0.6.5

### Patch Changes

- 8b2b6b6: Fix pagination numbering regression and async iteration

## 0.6.4

### Patch Changes

- 4315531: All CLI commands are now just local plugins used to build a CLI specific SDK, and that CLI specific SDK is used to generate the CLI docs.
- Updated dependencies [4315531]
  - @zapier/zapier-sdk-mcp@0.2.4
  - @zapier/zapier-sdk@0.6.4

## 0.6.3

### Patch Changes

- Updated dependencies [5b74010]
  - @zapier/zapier-sdk@0.6.3
  - @zapier/zapier-sdk-mcp@0.2.3

## 0.6.2

### Patch Changes

- Updated dependencies [ac0624d]
  - @zapier/zapier-sdk@0.6.2
  - @zapier/zapier-sdk-mcp@0.2.2

## 0.6.1

### Patch Changes

- Updated dependencies [38fe5c4]
  - @zapier/zapier-sdk@0.6.1
  - @zapier/zapier-sdk-mcp@0.2.1

## 0.6.0

### Minor Changes

- c402bcd: Remove \_\_registry in favor of getRegistry that also provides categories for functions.

### Patch Changes

- e08365e: Add support for lock file in generate-types command
- 8ef28ba: reducing any usage with minimal changes to runtime
- Updated dependencies [c472d6f]
- Updated dependencies [e08365e]
- Updated dependencies [8ef28ba]
- Updated dependencies [c402bcd]
  - @zapier/zapier-sdk@0.6.0
  - @zapier/zapier-sdk-mcp@0.2.0

## 0.5.0

### Minor Changes

- 218a3ca: reducing 'any' usage with minimal changes to runtime

### Patch Changes

- Updated dependencies [218a3ca]
  - @zapier/zapier-sdk-cli-login@0.3.2
  - @zapier/zapier-sdk-mcp@0.1.4
  - @zapier/zapier-sdk@0.5.2

## 0.4.4

### Patch Changes

- c662f79: Add proper README with dynamically-listed methods
- Updated dependencies [c662f79]
  - @zapier/zapier-sdk-mcp@0.1.3
  - @zapier/zapier-sdk@0.5.1

## 0.4.3

### Patch Changes

- Updated dependencies [741c385]
  - @zapier/zapier-sdk@0.5.0
  - @zapier/zapier-sdk-mcp@0.1.2

## 0.4.2

### Patch Changes

- Updated dependencies [36a2825]
  - @zapier/zapier-sdk-mcp@0.1.1
