@zapier/zapier-sdk-cli 0.84.5 → 0.85.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -7,9 +7,9 @@ import crypto, { createHash } from 'crypto';
7
7
  import * as path from 'path';
8
8
  import { resolve, join, dirname, basename, relative, extname } from 'path';
9
9
  import * as lockfile from 'proper-lockfile';
10
- import { definePlugin, apiPlugin, defineMethod, apiPluginRef, resolveCredentialsPluginRef, eventEmissionPluginRef, sdkOptionsPluginRef, declareOptionalProperty, OutputPropertySchema, ZapierBundleError, isZapierBundleError, DEFAULT_CONFIG_PATH, declareMethod, ZapierValidationError, isZapierValidationError, ZapierUnknownError, manifestPluginRef, defineResolver, isPermanentHttpError, isZapierAuthenticationError, ZapierApiError, defineOverride, fetchPlugin, zapierCoreOptions, injectCliLogin, omitExports, zapierSdkPlugin, getConnectionPlugin, invalidateCachedToken, batch, toSnakeCase, ZapierError, isZapierReleaseTriggerMessageSignal, createSdk, SDK_OPTIONS_ID, resolvePlugin, isCredentialsObject, getRegistryPlugin, createController, ZapierAbortDrainSignal, ZapierReleaseTriggerMessageSignal, buildApplicationLifecycleEvent, AuthMechanism, isCoreCancelledSignal, ZapierAuthenticationError, CORE_OPTIONS_ID, addPlugin, formatExtensionPluginFailure, getOsInfo, getPlatformVersions, getAgent as getAgent$1, getTtyContext, getCiPlatform, isCi, getReleaseId, getCurrentTimestamp, generateEventId, DEPRECATION_NOTICE_EVENT } from '@zapier/zapier-sdk';
10
+ import { definePlugin, apiPlugin, defineMethod, apiPluginRef, resolveCredentialsPluginRef, eventEmissionPluginRef, sdkOptionsPluginRef, declareOptionalProperty, OutputPropertySchema, ZapierBundleError, isZapierBundleError, DEFAULT_CONFIG_PATH, declareMethod, ZapierValidationError, isZapierValidationError, ZapierUnknownError, manifestPluginRef, defineResolver, isPermanentHttpError, isZapierAuthenticationError, ZapierApiError, defineOverride, fetchPlugin, zapierCoreOptions, injectCliLogin, omitExports, zapierSdkPlugin, STABILITY_LEVELS, getConnectionPlugin, invalidateCachedToken, batch, toSnakeCase, ZapierError, isZapierReleaseTriggerMessageSignal, createSdk, SDK_OPTIONS_ID, resolvePlugin, isCredentialsObject, getRegistryPlugin, createController, ZapierAbortDrainSignal, ZapierReleaseTriggerMessageSignal, buildApplicationLifecycleEvent, AuthMechanism, isCoreCancelledSignal, ZapierAuthenticationError, CORE_OPTIONS_ID, addPlugin, formatExtensionPluginFailure, getOsInfo, getPlatformVersions, getAgent as getAgent$1, getTtyContext, getCiPlatform, isCi, STABILITY_DEFINITIONS, getReleaseId, getCurrentTimestamp, generateEventId, DEPRECATION_NOTICE_EVENT } from '@zapier/zapier-sdk';
11
11
  import { z } from 'zod';
12
- import chalk5 from 'chalk';
12
+ import chalk6 from 'chalk';
13
13
  import { hostname } from 'os';
14
14
  import inquirer4 from 'inquirer';
15
15
  import { makeTheme, createPrompt, useState, usePrefix, useMemo, useEffect, useKeypress, isEnterKey, isTabKey, isUpKey, isDownKey, usePagination, Separator } from '@inquirer/core';
@@ -875,6 +875,17 @@ function getConfigPath() {
875
875
  function toKebabCase(str) {
876
876
  return str.replace(/([A-Z]+)([A-Z][a-z])/g, "$1-$2").replace(/([a-z\d])([A-Z])/g, "$1-$2").toLowerCase();
877
877
  }
878
+ function warningBlock({
879
+ banner,
880
+ message,
881
+ detail
882
+ }) {
883
+ console.warn();
884
+ console.warn(chalk6.yellow.bold(banner) + chalk6.yellow(message));
885
+ if (detail) console.warn(chalk6.yellow(` ${detail}`));
886
+ console.warn();
887
+ }
888
+ var DEPRECATION_BANNER = "\u26A0\uFE0F DEPRECATION WARNING";
878
889
 
879
890
  // src/utils/retry.ts
880
891
  function sleep(ms) {
@@ -1111,9 +1122,9 @@ function normalizeChoices(choices) {
1111
1122
  var theme = makeTheme({
1112
1123
  icon: { cursor: "\u276F" },
1113
1124
  style: {
1114
- disabled: (text) => chalk5.dim(`- ${text}`),
1115
- searchTerm: (text) => chalk5.cyan(text),
1116
- keysHelpTip: (keys) => keys.map(([key, action]) => `${chalk5.bold(key)} ${chalk5.dim(action)}`).join(chalk5.dim(" \u2022 "))
1125
+ disabled: (text) => chalk6.dim(`- ${text}`),
1126
+ searchTerm: (text) => chalk6.cyan(text),
1127
+ keysHelpTip: (keys) => keys.map(([key, action]) => `${chalk6.bold(key)} ${chalk6.dim(action)}`).join(chalk6.dim(" \u2022 "))
1117
1128
  }
1118
1129
  });
1119
1130
  var searchSelect = createPrompt(
@@ -1290,14 +1301,14 @@ function formatCredentialsChoice({
1290
1301
  credentials,
1291
1302
  current
1292
1303
  }) {
1293
- const currentLabel = current ? chalk5.cyan(" (current)") : "";
1304
+ const currentLabel = current ? chalk6.cyan(" (current)") : "";
1294
1305
  const details = [
1295
1306
  credentials.clientId,
1296
1307
  credentials.scopes.join(", "),
1297
1308
  `created ${createdAtIso(credentials).slice(0, 10)}`
1298
1309
  ].join(" \xB7 ");
1299
1310
  return {
1300
- name: `${credentials.name}${currentLabel} ${chalk5.dim(`\xB7 ${details}`)}`,
1311
+ name: `${credentials.name}${currentLabel} ${chalk6.dim(`\xB7 ${details}`)}`,
1301
1312
  short: credentials.name,
1302
1313
  value: { action: "switch", credentials }
1303
1314
  };
@@ -1473,20 +1484,20 @@ var getCallablePromise = () => {
1473
1484
  var getCallablePromise_default = getCallablePromise;
1474
1485
  var log = {
1475
1486
  info: (message, ...args) => {
1476
- console.error(chalk5.blue("\u2139"), message, ...args);
1487
+ console.error(chalk6.blue("\u2139"), message, ...args);
1477
1488
  },
1478
1489
  error: (message, ...args) => {
1479
- console.error(chalk5.red("\u2716"), message, ...args);
1490
+ console.error(chalk6.red("\u2716"), message, ...args);
1480
1491
  },
1481
1492
  success: (message, ...args) => {
1482
- console.error(chalk5.green("\u2713"), message, ...args);
1493
+ console.error(chalk6.green("\u2713"), message, ...args);
1483
1494
  },
1484
1495
  warn: (message, ...args) => {
1485
- console.error(chalk5.yellow("\u26A0"), message, ...args);
1496
+ console.error(chalk6.yellow("\u26A0"), message, ...args);
1486
1497
  },
1487
1498
  debug: (message, ...args) => {
1488
1499
  if (process.env.DEBUG === "true" || process.argv.includes("--debug")) {
1489
- console.error(chalk5.gray("\u{1F41B}"), message, ...args);
1500
+ console.error(chalk6.gray("\u{1F41B}"), message, ...args);
1490
1501
  }
1491
1502
  }
1492
1503
  };
@@ -2998,9 +3009,9 @@ var CLI_EXTENSIONS_ID = "cli/extensions";
2998
3009
  var cliExtensionsPluginRef = declareOptionalProperty({
2999
3010
  id: CLI_EXTENSIONS_ID
3000
3011
  });
3001
- var CLI_EXPERIMENTAL_ID = "cli/experimental";
3002
- var cliExperimentalPluginRef = declareOptionalProperty({
3003
- id: CLI_EXPERIMENTAL_ID
3012
+ var CLI_STABILITY_ID = "cli/stability";
3013
+ var cliStabilityPluginRef = declareOptionalProperty({
3014
+ id: CLI_STABILITY_ID
3004
3015
  });
3005
3016
  var McpSchema = z.object({
3006
3017
  port: z.string().optional().describe("Port to listen on (for future HTTP transport)")
@@ -3009,11 +3020,7 @@ var McpSchema = z.object({
3009
3020
  // src/plugins/mcp/index.ts
3010
3021
  var mcpPlugin = defineMethod({
3011
3022
  name: "mcp",
3012
- imports: [
3013
- sdkOptionsPluginRef,
3014
- cliExtensionsPluginRef,
3015
- cliExperimentalPluginRef
3016
- ],
3023
+ imports: [sdkOptionsPluginRef, cliExtensionsPluginRef, cliStabilityPluginRef],
3017
3024
  output: "raw",
3018
3025
  inputSchema: McpSchema,
3019
3026
  categories: ["utility"],
@@ -3023,7 +3030,7 @@ var mcpPlugin = defineMethod({
3023
3030
  debug: imports.sdkOptions?.debug,
3024
3031
  maxConcurrentRequests: imports.sdkOptions?.maxConcurrentRequests,
3025
3032
  extensions: imports.extensions,
3026
- experimental: imports.experimental
3033
+ stability: imports.stability
3027
3034
  });
3028
3035
  }
3029
3036
  });
@@ -4706,7 +4713,7 @@ function buildTemplateVariables({
4706
4713
  };
4707
4714
  }
4708
4715
  function cleanupProject({ projectDir }) {
4709
- console.log("\n" + chalk5.yellow("!") + " Cleaning up...");
4716
+ console.log("\n" + chalk6.yellow("!") + " Cleaning up...");
4710
4717
  rmSync(projectDir, { recursive: true, force: true });
4711
4718
  }
4712
4719
  async function withInterruptCleanup(cleanup, fn) {
@@ -4916,8 +4923,8 @@ function buildNextSteps({
4916
4923
  }
4917
4924
  function createConsoleDisplayHooks() {
4918
4925
  return {
4919
- onItemComplete: (message) => console.log(" " + chalk5.green("\u2713") + " " + chalk5.dim(message)),
4920
- onWarn: (message) => console.warn(chalk5.yellow("!") + " " + message),
4926
+ onItemComplete: (message) => console.log(" " + chalk6.green("\u2713") + " " + chalk6.dim(message)),
4927
+ onWarn: (message) => console.warn(chalk6.yellow("!") + " " + message),
4921
4928
  onStepStart: ({
4922
4929
  description,
4923
4930
  stepNumber,
@@ -4926,31 +4933,31 @@ function createConsoleDisplayHooks() {
4926
4933
  nonInteractive
4927
4934
  }) => {
4928
4935
  const progressMessage = `${description}...`;
4929
- const stepCounter = chalk5.dim(`${stepNumber}/${totalSteps}`);
4936
+ const stepCounter = chalk6.dim(`${stepNumber}/${totalSteps}`);
4930
4937
  if (nonInteractive) {
4931
4938
  console.log(
4932
- "\n" + chalk5.bold(`\u276F ${progressMessage}`) + " " + stepCounter + "\n"
4939
+ "\n" + chalk6.bold(`\u276F ${progressMessage}`) + " " + stepCounter + "\n"
4933
4940
  );
4934
4941
  } else {
4935
4942
  console.log(
4936
- chalk5.dim("\u2192") + " " + progressMessage + " " + stepCounter
4943
+ chalk6.dim("\u2192") + " " + progressMessage + " " + stepCounter
4937
4944
  );
4938
4945
  }
4939
4946
  if (command) {
4940
- console.log(" " + chalk5.cyan(`$ ${command}`));
4947
+ console.log(" " + chalk6.cyan(`$ ${command}`));
4941
4948
  }
4942
4949
  },
4943
4950
  onStepSuccess: ({ stepNumber, totalSteps }) => console.log(
4944
- "\n" + chalk5.green("\u2713") + " " + chalk5.dim(`Step ${stepNumber}/${totalSteps} complete`) + "\n"
4951
+ "\n" + chalk6.green("\u2713") + " " + chalk6.dim(`Step ${stepNumber}/${totalSteps} complete`) + "\n"
4945
4952
  ),
4946
4953
  onStepError: ({ description, command, err }) => {
4947
4954
  const detail = err instanceof Error && err.message ? `
4948
- ${chalk5.dim(err.message)}` : "";
4955
+ ${chalk6.dim(err.message)}` : "";
4949
4956
  const hint = command ? `
4950
- ${chalk5.dim("run manually:")} ${chalk5.cyan(`$ ${command}`)}` : "";
4957
+ ${chalk6.dim("run manually:")} ${chalk6.cyan(`$ ${command}`)}` : "";
4951
4958
  console.error(
4952
4959
  `
4953
- ${chalk5.red("\u2716")} ${chalk5.bold(description)}${chalk5.dim(" failed")}${detail}${hint}`
4960
+ ${chalk6.red("\u2716")} ${chalk6.bold(description)}${chalk6.dim(" failed")}${detail}${hint}`
4954
4961
  );
4955
4962
  }
4956
4963
  };
@@ -4962,22 +4969,22 @@ function displaySummaryAndNextSteps({
4962
4969
  packageManager
4963
4970
  }) {
4964
4971
  const formatStatus = (complete) => ({
4965
- icon: complete ? chalk5.green("\u2713") : chalk5.yellow("!"),
4966
- text: complete ? chalk5.green("Setup complete") : chalk5.yellow("Setup interrupted")
4972
+ icon: complete ? chalk6.green("\u2713") : chalk6.yellow("!"),
4973
+ text: complete ? chalk6.green("Setup complete") : chalk6.yellow("Setup interrupted")
4967
4974
  });
4968
- const formatNextStep = (step, i) => " " + chalk5.dim(`${i + 1}.`) + " " + chalk5.bold(step.description);
4969
- const formatCommand = (cmd) => " " + chalk5.cyan(`$ ${cmd}`);
4970
- const formatCompletedStep = (step) => " " + chalk5.green("\u2713") + " " + step.description;
4975
+ const formatNextStep = (step, i) => " " + chalk6.dim(`${i + 1}.`) + " " + chalk6.bold(step.description);
4976
+ const formatCommand = (cmd) => " " + chalk6.cyan(`$ ${cmd}`);
4977
+ const formatCompletedStep = (step) => " " + chalk6.green("\u2713") + " " + step.description;
4971
4978
  const { execCmd } = getPackageManagerCommands({ packageManager });
4972
4979
  const leftoverSteps = steps.filter(
4973
4980
  (s) => !completedSetupStepIds.includes(s.id)
4974
4981
  );
4975
4982
  const isComplete = leftoverSteps.length === 0;
4976
4983
  const status = formatStatus(isComplete);
4977
- console.log("\n" + chalk5.bold("\u276F Summary") + "\n");
4978
- console.log(" " + chalk5.dim("Project") + " " + chalk5.bold(projectName));
4984
+ console.log("\n" + chalk6.bold("\u276F Summary") + "\n");
4985
+ console.log(" " + chalk6.dim("Project") + " " + chalk6.bold(projectName));
4979
4986
  console.log(
4980
- " " + chalk5.dim("Status") + " " + status.icon + " " + status.text
4987
+ " " + chalk6.dim("Status") + " " + status.icon + " " + status.text
4981
4988
  );
4982
4989
  const completedSteps = steps.filter(
4983
4990
  (s) => completedSetupStepIds.includes(s.id)
@@ -4987,7 +4994,7 @@ function displaySummaryAndNextSteps({
4987
4994
  for (const step of completedSteps) console.log(formatCompletedStep(step));
4988
4995
  }
4989
4996
  const nextSteps = buildNextSteps({ projectName, leftoverSteps, execCmd });
4990
- console.log("\n" + chalk5.bold("\u276F Next Steps") + "\n");
4997
+ console.log("\n" + chalk6.bold("\u276F Next Steps") + "\n");
4991
4998
  nextSteps.forEach((step, i) => {
4992
4999
  console.log(formatNextStep(step, i));
4993
5000
  if (step.command) console.log(formatCommand(step.command));
@@ -5070,10 +5077,10 @@ async function promptText({
5070
5077
  ]);
5071
5078
  return value;
5072
5079
  }
5073
- var display = (c) => c.hint ? `${c.label} ${chalk5.dim(`(${c.hint})`)}` : c.label;
5080
+ var display = (c) => c.hint ? `${c.label} ${chalk6.dim(`(${c.hint})`)}` : c.label;
5074
5081
  var HIGH_CONTRAST_PROMPT_THEME = {
5075
5082
  style: {
5076
- answer: (text) => chalk5.inverse.bold(` ${text} `)
5083
+ answer: (text) => chalk6.inverse.bold(` ${text} `)
5077
5084
  }
5078
5085
  };
5079
5086
  function buildSelectRows(question, term) {
@@ -5089,8 +5096,8 @@ function buildSelectRows(question, term) {
5089
5096
  name: display(c),
5090
5097
  value: c.value
5091
5098
  }));
5092
- const skipRow = offers(question, "skip") ? [row(chalk5.dim("Skip (optional)"), "skip")] : [];
5093
- const customRow = offers(question, "custom") ? [row(chalk5.dim("Enter a value manually\u2026"), "custom")] : [];
5099
+ const skipRow = offers(question, "skip") ? [row(chalk6.dim("Skip (optional)"), "skip")] : [];
5100
+ const customRow = offers(question, "custom") ? [row(chalk6.dim("Enter a value manually\u2026"), "custom")] : [];
5094
5101
  const committed = !!t || question.search !== void 0;
5095
5102
  let rows;
5096
5103
  if (!committed) {
@@ -5101,13 +5108,13 @@ function buildSelectRows(question, term) {
5101
5108
  rows = [...customRow, ...skipRow];
5102
5109
  }
5103
5110
  if (offers(question, "search"))
5104
- rows.push(row(chalk5.cyan("Search again\u2026"), "search"));
5111
+ rows.push(row(chalk6.cyan("Search again\u2026"), "search"));
5105
5112
  if (offers(question, "next_page"))
5106
- rows.push(row(chalk5.dim("Load more\u2026"), "next_page"));
5107
- if (offers(question, "retry")) rows.push(row(chalk5.yellow("Retry"), "retry"));
5108
- if (offers(question, "cancel")) rows.push(row(chalk5.dim("Cancel"), "cancel"));
5113
+ rows.push(row(chalk6.dim("Load more\u2026"), "next_page"));
5114
+ if (offers(question, "retry")) rows.push(row(chalk6.yellow("Retry"), "retry"));
5115
+ if (offers(question, "cancel")) rows.push(row(chalk6.dim("Cancel"), "cancel"));
5109
5116
  for (const note of question.notes ?? [])
5110
- rows.push({ name: chalk5.dim(note), value: note, disabled: true });
5117
+ rows.push({ name: chalk6.dim(note), value: note, disabled: true });
5111
5118
  return rows;
5112
5119
  }
5113
5120
  function foldPage(acc, question, field) {
@@ -5187,12 +5194,12 @@ async function answerSelect(question, field, box, failed, mode) {
5187
5194
  })),
5188
5195
  ...offers(question, "next_page") ? [
5189
5196
  {
5190
- name: chalk5.dim("Load more\u2026"),
5197
+ name: chalk6.dim("Load more\u2026"),
5191
5198
  value: { action: "next_page" }
5192
5199
  }
5193
5200
  ] : [],
5194
5201
  ...(question.notes ?? []).map((note) => ({
5195
- name: chalk5.dim(note),
5202
+ name: chalk6.dim(note),
5196
5203
  value: note,
5197
5204
  disabled: true
5198
5205
  }))
@@ -5269,14 +5276,14 @@ async function answerSelect(question, field, box, failed, mode) {
5269
5276
  case "retry":
5270
5277
  return { type: "retry" };
5271
5278
  case "skip":
5272
- printAnswered(view.message, chalk5.dim("(skipped)"));
5279
+ printAnswered(view.message, chalk6.dim("(skipped)"));
5273
5280
  return { type: "skip" };
5274
5281
  case "cancel":
5275
5282
  return { type: "cancel" };
5276
5283
  }
5277
5284
  }
5278
5285
  function printAnswered(message, label) {
5279
- console.log(`${chalk5.green("\u2714")} ${message} ${chalk5.cyan(label)}`);
5286
+ console.log(`${chalk6.green("\u2714")} ${message} ${chalk6.cyan(label)}`);
5280
5287
  }
5281
5288
  async function answerInput(question) {
5282
5289
  const message = question.placeholder ? question.message.replace(/:?\s*$/, ` (${question.placeholder}):`) : question.message;
@@ -5313,7 +5320,7 @@ function createCliAnswer({
5313
5320
  try {
5314
5321
  if (result.error !== void 0) {
5315
5322
  const message = typeof result.error === "string" ? result.error : result.error.message;
5316
- console.log(chalk5.yellow(`! ${message}`));
5323
+ console.log(chalk6.yellow(`! ${message}`));
5317
5324
  }
5318
5325
  const question = result.question;
5319
5326
  const field = question.path.length ? question.path.join(".") : "value";
@@ -5482,7 +5489,7 @@ var boltFillRanks = new Map(
5482
5489
  );
5483
5490
  var STATUS_ROW_INDEX = Math.floor(boltRows.length / 2);
5484
5491
  function formatPhase({ label, detail }) {
5485
- return detail ? `${chalk5.bold(label)} ${chalk5.dim(detail)}` : chalk5.bold(label);
5492
+ return detail ? `${chalk6.bold(label)} ${chalk6.dim(detail)}` : chalk6.bold(label);
5486
5493
  }
5487
5494
  function formatLoaderFrame({
5488
5495
  phase,
@@ -5494,7 +5501,7 @@ function formatLoaderFrame({
5494
5501
  const cellIndex = rowIndex * row.length + columnIndex;
5495
5502
  const fillRank = boltFillRanks.get(cellIndex);
5496
5503
  const isFilled = fillRank !== void 0 && fillRank < fillStage;
5497
- return isFilled ? chalk5.bold.yellow(cell) : chalk5.dim.yellow(cell);
5504
+ return isFilled ? chalk6.bold.yellow(cell) : chalk6.dim.yellow(cell);
5498
5505
  }).join("");
5499
5506
  const status = rowIndex === STATUS_ROW_INDEX ? ` ${formatPhase(phase)}` : "";
5500
5507
  return `${bolt}${status}`;
@@ -5526,12 +5533,12 @@ async function runWithSetupLoader({
5526
5533
  const result = await promise;
5527
5534
  clearInterval(animationTimer);
5528
5535
  const elapsedSeconds = ((Date.now() - startedAt) / 1e3).toFixed(1);
5529
- loader.succeed(`${formatPhase(phase)} ${chalk5.dim(`${elapsedSeconds}s`)}`);
5536
+ loader.succeed(`${formatPhase(phase)} ${chalk6.dim(`${elapsedSeconds}s`)}`);
5530
5537
  return result;
5531
5538
  } catch (error) {
5532
5539
  clearInterval(animationTimer);
5533
5540
  const elapsedSeconds = ((Date.now() - startedAt) / 1e3).toFixed(1);
5534
- loader.fail(`${formatPhase(phase)} ${chalk5.dim(`${elapsedSeconds}s`)}`);
5541
+ loader.fail(`${formatPhase(phase)} ${chalk6.dim(`${elapsedSeconds}s`)}`);
5535
5542
  throw error;
5536
5543
  }
5537
5544
  }
@@ -6022,7 +6029,7 @@ async function runCommand({
6022
6029
  detail: commandLabel
6023
6030
  });
6024
6031
  }
6025
- console.log(chalk5.dim(commandLabel));
6032
+ console.log(chalk6.dim(commandLabel));
6026
6033
  return await execute;
6027
6034
  } catch (error) {
6028
6035
  const message = error instanceof Error ? error.message : String(error);
@@ -6289,7 +6296,7 @@ function printAgentPrompt({
6289
6296
  message
6290
6297
  }) {
6291
6298
  console.log();
6292
- console.log(chalk5.bgYellow.black.bold(message));
6299
+ console.log(chalk6.bgYellow.black.bold(message));
6293
6300
  console.log();
6294
6301
  console.log(buildAgentPrompt({ context }));
6295
6302
  }
@@ -6574,7 +6581,7 @@ var MINIMUM_MESSAGE_WIDTH = 20;
6574
6581
  var MAXIMUM_MESSAGE_WIDTH = 88;
6575
6582
  function showPhase({ number, title }) {
6576
6583
  console.log();
6577
- console.log(chalk5.bgCyan.black.bold(` ${number}/${PHASE_COUNT} ${title} `));
6584
+ console.log(chalk6.bgCyan.black.bold(` ${number}/${PHASE_COUNT} ${title} `));
6578
6585
  }
6579
6586
  function printWrapped(text) {
6580
6587
  const width = Math.max(
@@ -6588,7 +6595,7 @@ function printWrapped(text) {
6588
6595
  }
6589
6596
  function showReadyMessage() {
6590
6597
  console.log();
6591
- console.log(chalk5.bgGreen.black.bold(" \u2713 Zapier SDK setup complete "));
6598
+ console.log(chalk6.bgGreen.black.bold(" \u2713 Zapier SDK setup complete "));
6592
6599
  console.log();
6593
6600
  printWrapped(
6594
6601
  "Use active Zapier connections to access 9,000+ app connectors without managing each app's OAuth, token refresh, or retries."
@@ -6600,7 +6607,7 @@ function showReadyMessage() {
6600
6607
  console.log();
6601
6608
  }
6602
6609
  async function runWizard(context) {
6603
- console.log(chalk5.bold("Zapier SDK setup"));
6610
+ console.log(chalk6.bold("Zapier SDK setup"));
6604
6611
  showPhase({ number: 1, title: "Project directory" });
6605
6612
  await chooseDirectory(context);
6606
6613
  showPhase({ number: 2, title: "Node.js" });
@@ -6615,7 +6622,7 @@ async function runWizard(context) {
6615
6622
  showPhase({ number: 6, title: "Slack demo" });
6616
6623
  await offerSlackTest(context);
6617
6624
  showReadyMessage();
6618
- console.log(chalk5.bgCyan.black.bold(" Next steps "));
6625
+ console.log(chalk6.bgCyan.black.bold(" Next steps "));
6619
6626
  await openAgentHandoff(context);
6620
6627
  }
6621
6628
 
@@ -6674,13 +6681,13 @@ function createInteractiveCallback() {
6674
6681
  const attrs = message.message_attributes;
6675
6682
  console.log(
6676
6683
  `
6677
- ${chalk5.bold(`Message #${messageNumber}`)} ${chalk5.dim(message.id)} ${chalk5.dim(`(lease #${attrs.lease_count})`)}`
6684
+ ${chalk6.bold(`Message #${messageNumber}`)} ${chalk6.dim(message.id)} ${chalk6.dim(`(lease #${attrs.lease_count})`)}`
6678
6685
  );
6679
6686
  if (attrs.error_message) {
6680
- console.log(chalk5.yellow(` upstream error: ${attrs.error_message}`));
6687
+ console.log(chalk6.yellow(` upstream error: ${attrs.error_message}`));
6681
6688
  }
6682
6689
  if (attrs.possible_duplicate_data) {
6683
- console.log(chalk5.yellow(" possible duplicate data"));
6690
+ console.log(chalk6.yellow(" possible duplicate data"));
6684
6691
  }
6685
6692
  while (true) {
6686
6693
  let action;
@@ -6710,7 +6717,7 @@ ${chalk5.bold(`Message #${messageNumber}`)} ${chalk5.dim(message.id)} ${chalk5.d
6710
6717
  throw error;
6711
6718
  }
6712
6719
  if (action === "view") {
6713
- console.log(chalk5.dim(JSON.stringify(message.payload, null, 2)));
6720
+ console.log(chalk6.dim(JSON.stringify(message.payload, null, 2)));
6714
6721
  continue;
6715
6722
  }
6716
6723
  if (action === "ack") {
@@ -6813,7 +6820,7 @@ function describeReason(reason) {
6813
6820
  }
6814
6821
  function printDrainError(reason, message) {
6815
6822
  console.error(
6816
- chalk5.red(`Error processing ${message.id}: ${describeReason(reason)}`)
6823
+ chalk6.red(`Error processing ${message.id}: ${describeReason(reason)}`)
6817
6824
  );
6818
6825
  }
6819
6826
  function printDrainSummary(counts) {
@@ -6823,7 +6830,7 @@ function printDrainSummary(counts) {
6823
6830
  if (skipped > 0) parts.push(`${skipped} skipped`);
6824
6831
  parts.push(`${counts.rejected} rejected`);
6825
6832
  console.log(
6826
- chalk5.dim(
6833
+ chalk6.dim(
6827
6834
  `
6828
6835
  Processed ${total} message${total === 1 ? "" : "s"} (${parts.join(", ")}).`
6829
6836
  )
@@ -6831,7 +6838,7 @@ Processed ${total} message${total === 1 ? "" : "s"} (${parts.join(", ")}).`
6831
6838
  }
6832
6839
  function warnInteractiveContinueOnErrorOverride() {
6833
6840
  console.warn(
6834
- chalk5.yellow(
6841
+ chalk6.yellow(
6835
6842
  'Note: continueOnError=false is overridden to true in interactive mode (the "Skip (let lease expire)" choice would otherwise terminate the drain).'
6836
6843
  )
6837
6844
  );
@@ -7157,7 +7164,7 @@ defineMethod$1({
7157
7164
  type: "create",
7158
7165
  itemType: "Workflow",
7159
7166
  categories: ["code-workflow"],
7160
- experimental: true,
7167
+ stability: "experimental",
7161
7168
  inputSchema: CreateWorkflowCliOptionsSchema,
7162
7169
  outputSchema: CreateWorkflowResponseSchema,
7163
7170
  skipOutputValidation: true,
@@ -7184,21 +7191,33 @@ function collectDeprecationNoticeAndForward(event, onEvent) {
7184
7191
  // package.json with { type: 'json' }
7185
7192
  var package_default = {
7186
7193
  name: "@zapier/zapier-sdk-cli",
7187
- version: "0.84.5"};
7194
+ version: "0.85.0"};
7188
7195
 
7189
7196
  // src/sdk.ts
7190
7197
  var warnedDeprecatedMethods = /* @__PURE__ */ new Set();
7198
+ var warnedStabilityMethods = /* @__PURE__ */ new Set();
7191
7199
  var cliCoreOptions = {
7192
7200
  ...zapierCoreOptions,
7193
7201
  logDeprecation: ({ methodName, deprecation }) => {
7194
7202
  if (warnedDeprecatedMethods.has(methodName)) return;
7195
7203
  warnedDeprecatedMethods.add(methodName);
7196
- console.warn();
7197
- console.warn(
7198
- chalk5.yellow.bold("\u26A0\uFE0F DEPRECATION WARNING") + chalk5.yellow(` - \`${toKebabCase(methodName)}\` is deprecated.`)
7199
- );
7200
- console.warn(chalk5.yellow(` ${deprecation.message}`));
7201
- console.warn();
7204
+ warningBlock({
7205
+ banner: DEPRECATION_BANNER,
7206
+ message: ` - \`${toKebabCase(methodName)}\` is deprecated.`,
7207
+ detail: deprecation.message
7208
+ });
7209
+ },
7210
+ logStabilityNotice: ({ methodName, stability }) => {
7211
+ if (stability === "stable") return;
7212
+ if (warnedStabilityMethods.has(methodName)) return;
7213
+ warnedStabilityMethods.add(methodName);
7214
+ warningBlock({
7215
+ banner: `\u26A0\uFE0F ${stability.toUpperCase()} COMMAND`,
7216
+ message: ` - \`${toKebabCase(methodName)}\` is marked ${stability}.`,
7217
+ // The detail line is the tier's consumer contract, so the CLI says the
7218
+ // same thing as the SDK's runtime notice and the generated docs.
7219
+ detail: STABILITY_DEFINITIONS[stability]
7220
+ });
7202
7221
  }
7203
7222
  };
7204
7223
  injectCliLogin(login_exports);
@@ -7266,7 +7285,7 @@ function createZapierCliSdk(options = {}) {
7266
7285
 
7267
7286
  // package.json
7268
7287
  var package_default2 = {
7269
- version: "0.84.5"};
7288
+ version: "0.85.0"};
7270
7289
 
7271
7290
  // src/telemetry/builders.ts
7272
7291
  function createCliBaseEvent(context = {}) {
@@ -7325,11 +7344,10 @@ function buildCliCommandExecutedEvent({
7325
7344
  is_headless: data.is_headless ?? null
7326
7345
  };
7327
7346
  }
7328
-
7329
- // src/utils/cli-options.ts
7330
7347
  var ReservedCliParameter = /* @__PURE__ */ ((ReservedCliParameter2) => {
7331
7348
  ReservedCliParameter2["Version"] = "version";
7332
7349
  ReservedCliParameter2["Help"] = "help";
7350
+ ReservedCliParameter2["Stability"] = "stability";
7333
7351
  return ReservedCliParameter2;
7334
7352
  })(ReservedCliParameter || {});
7335
7353
  var RESERVED_CLI_OPTIONS = [
@@ -7344,6 +7362,11 @@ var RESERVED_CLI_OPTIONS = [
7344
7362
  flag: "--help",
7345
7363
  short: "-h",
7346
7364
  description: "Display help for command"
7365
+ },
7366
+ {
7367
+ name: "stability" /* Stability */,
7368
+ flag: "--stability <level>",
7369
+ description: `Which stability tier of the SDK / CLI surface to use: ${STABILITY_LEVELS.join(", ")}. Can also be set with the ZAPIER_STABILITY environment variable (default: stable).`
7347
7370
  }
7348
7371
  ];
7349
7372
  function getReservedCliOption(name) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zapier/zapier-sdk-cli",
3
- "version": "0.84.5",
3
+ "version": "0.85.0",
4
4
  "description": "Command line interface for Zapier SDK",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",
@@ -95,9 +95,9 @@
95
95
  "typescript": "^5.8.3",
96
96
  "wrap-ansi": "^10.0.0",
97
97
  "zod": "4.3.6",
98
- "@zapier/kitcore": "0.21.1",
99
- "@zapier/zapier-sdk": "0.112.5",
100
- "@zapier/zapier-sdk-mcp": "0.25.5"
98
+ "@zapier/zapier-sdk": "0.113.0",
99
+ "@zapier/zapier-sdk-mcp": "0.26.0",
100
+ "@zapier/kitcore": "0.21.2"
101
101
  },
102
102
  "devDependencies": {
103
103
  "@types/cross-spawn": "^6.0.6",