relizy 1.3.0-beta.1 → 1.3.0-beta.3

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/cli.mjs CHANGED
@@ -5,7 +5,7 @@ import process from 'node:process';
5
5
  import { fileURLToPath } from 'node:url';
6
6
  import { printBanner, logger } from '@maz-ui/node';
7
7
  import { Command } from 'commander';
8
- import { ag as isInCI, ah as getCIName, b as bump, c as changelog, g as publish, e as providerRelease, h as social, p as prComment, r as release } from './shared/relizy.w8-5SlcY.mjs';
8
+ import { al as isInCI, am as getCIName, b as bump, c as changelog, g as publish, e as providerRelease, h as social, p as prComment, r as release } from './shared/relizy.BHnDdNQq.mjs';
9
9
  import '@maz-ui/utils';
10
10
  import 'c12';
11
11
  import 'changelogen';
@@ -124,7 +124,7 @@ program.command("publish").description("Publish packages to registry").option("-
124
124
  process.exit(1);
125
125
  }
126
126
  });
127
- program.command("provider-release").description("Publish release to git provider (github or gitlab)").option("--from <ref>", "Start commit reference").option("--to <ref>", "End commit reference").option("--token <token>", "Provider token").option("--provider <provider>", "Git provider (github or gitlab)").action(async (options) => {
127
+ program.command("provider-release").description("Publish release to git provider (github or gitlab)").option("--from <ref>", "Start commit reference").option("--to <ref>", "End commit reference").option("--token <token>", "Provider token").option("--provider <provider>", "Git provider (github or gitlab)").option("--ai", "Force-enable AI for release notes").option("--no-ai", "Force-disable AI for release notes").action(async (options) => {
128
128
  try {
129
129
  await providerRelease({
130
130
  token: options.token,
@@ -134,14 +134,15 @@ program.command("provider-release").description("Publish release to git provider
134
134
  dryRun: program.opts().dryRun,
135
135
  logLevel: program.opts().logLevel,
136
136
  configName: program.opts().config,
137
- safetyCheck: hasCliFlag("--no-safety-check") ? false : void 0
137
+ safetyCheck: hasCliFlag("--no-safety-check") ? false : void 0,
138
+ ai: hasCliFlag("--ai") ? true : hasCliFlag("--no-ai") ? false : void 0
138
139
  });
139
140
  } catch (error) {
140
141
  logger.error("Failed to publish release -", error);
141
142
  process.exit(1);
142
143
  }
143
144
  });
144
- program.command("social").description("Post release announcements to social media platforms").option("--from <ref>", "Start commit reference").option("--to <ref>", "End commit reference").action(async (options) => {
145
+ program.command("social").description("Post release announcements to social media platforms").option("--from <ref>", "Start commit reference").option("--to <ref>", "End commit reference").option("--ai", "Force-enable AI for social posts").option("--no-ai", "Force-disable AI for social posts").action(async (options) => {
145
146
  try {
146
147
  await social({
147
148
  from: options.from,
@@ -149,7 +150,8 @@ program.command("social").description("Post release announcements to social medi
149
150
  dryRun: program.opts().dryRun,
150
151
  logLevel: program.opts().logLevel,
151
152
  configName: program.opts().config,
152
- safetyCheck: hasCliFlag("--no-safety-check") ? false : void 0
153
+ safetyCheck: hasCliFlag("--no-safety-check") ? false : void 0,
154
+ ai: hasCliFlag("--ai") ? true : hasCliFlag("--no-ai") ? false : void 0
153
155
  });
154
156
  } catch {
155
157
  process.exit(1);
@@ -168,7 +170,7 @@ program.command("pr-comment").description("Post or re-post a PR comment with rel
168
170
  process.exit(1);
169
171
  }
170
172
  });
171
- program.command("release").description("Complete release workflow (bump + changelog + commit + tag + push to remote + publish release)").option("--major", "Bump major version").option("--minor", "Bump minor version").option("--patch", "Bump patch version").option("--prerelease", "Bump prerelease version").option("--premajor", "Bump premajor version").option("--preminor", "Bump preminor version").option("--prepatch", "Bump prepatch version").option("--preid <id>", "Prerelease identifier (alpha, beta, rc, etc.)").option("--suffix <suffix>", "Custom suffix for prerelease versions - replace the last .X with .suffix (e.g. 1.0.0-beta.0 -> 1.0.0-beta.suffix)").option("--from <ref>", "Start commit reference").option("--to <ref>", "End commit reference").option("--no-push", "Skip push changes and tags to remote").option("--no-provider-release", "Skip release creation (GitHub/GitLab)").option("--no-publish", "Skip npm publish").option("--registry <url>", "Custom npm registry URL").option("--tag <tag>", "Publish with specific tag (default: latest for stable, next for prerelease)").option("--access <type>", "Package access level (public or restricted)").option("--otp <code>", "One-time password for 2FA").option("--no-verify", "Skip git hooks during commit").option("--format-cmd <cmd>", 'Command to format CHANGELOG files after generation (e.g. "pnpm lint")').option("--build-cmd <cmd>", 'Command to build packages before publish (e.g. "pnpm build")').option("--no-root-changelog", "Skip generation of root changelog file").option("--token <token>", "Git token (github or gitlab)").option("--force", "Bump even if there are no commits").option("--no-clean", "Skip check if the working directory is clean").option("--no-commit", "Skip commit and tag").option("--no-git-tag", "Skip tag creation").option("--no-changelog", "Skip changelog generation files").option("--provider <provider>", "Git provider (github or gitlab)").option("--no-social", "Skip social media posting").option("--no-pr-comment", "Skip PR comment posting").option("--yes", "Skip confirmation prompt about bumping packages").option("--publish-token <token>", 'NPM token (e.g. "123456") - only supported for pnpm and npm').option("--canary", "Publish a canary release from the current commit").option("--include-private", "Include private packages in bump and changelog phases").action(async (options) => {
173
+ program.command("release").description("Complete release workflow (bump + changelog + commit + tag + push to remote + publish release)").option("--major", "Bump major version").option("--minor", "Bump minor version").option("--patch", "Bump patch version").option("--prerelease", "Bump prerelease version").option("--premajor", "Bump premajor version").option("--preminor", "Bump preminor version").option("--prepatch", "Bump prepatch version").option("--preid <id>", "Prerelease identifier (alpha, beta, rc, etc.)").option("--suffix <suffix>", "Custom suffix for prerelease versions - replace the last .X with .suffix (e.g. 1.0.0-beta.0 -> 1.0.0-beta.suffix)").option("--from <ref>", "Start commit reference").option("--to <ref>", "End commit reference").option("--no-push", "Skip push changes and tags to remote").option("--no-provider-release", "Skip release creation (GitHub/GitLab)").option("--no-publish", "Skip npm publish").option("--registry <url>", "Custom npm registry URL").option("--tag <tag>", "Publish with specific tag (default: latest for stable, next for prerelease)").option("--access <type>", "Package access level (public or restricted)").option("--otp <code>", "One-time password for 2FA").option("--no-verify", "Skip git hooks during commit").option("--format-cmd <cmd>", 'Command to format CHANGELOG files after generation (e.g. "pnpm lint")').option("--build-cmd <cmd>", 'Command to build packages before publish (e.g. "pnpm build")').option("--no-root-changelog", "Skip generation of root changelog file").option("--token <token>", "Git token (github or gitlab)").option("--force", "Bump even if there are no commits").option("--no-clean", "Skip check if the working directory is clean").option("--no-commit", "Skip commit and tag").option("--no-git-tag", "Skip tag creation").option("--no-changelog", "Skip changelog generation files").option("--provider <provider>", "Git provider (github or gitlab)").option("--no-social", "Skip social media posting").option("--no-pr-comment", "Skip PR comment posting").option("--yes", "Skip confirmation prompt about bumping packages").option("--publish-token <token>", 'NPM token (e.g. "123456") - only supported for pnpm and npm').option("--canary", "Publish a canary release from the current commit").option("--include-private", "Include private packages in bump and changelog phases").option("--ai", "Force-enable AI for release notes and social posts").option("--no-ai", "Force-disable AI for release notes and social posts").action(async (options) => {
172
174
  try {
173
175
  await release({
174
176
  type: getReleaseType(options),
@@ -203,7 +205,8 @@ program.command("release").description("Complete release workflow (bump + change
203
205
  safetyCheck: hasCliFlag("--no-safety-check") ? false : void 0,
204
206
  social: hasCliFlag("--no-social") ? false : void 0,
205
207
  prComment: hasCliFlag("--no-pr-comment") ? false : void 0,
206
- prNumber: program.opts().prNumber
208
+ prNumber: program.opts().prNumber,
209
+ ai: hasCliFlag("--ai") ? true : hasCliFlag("--no-ai") ? false : void 0
207
210
  });
208
211
  } catch (error) {
209
212
  logger.error("Failed to release -", error);
package/dist/index.d.mts CHANGED
@@ -9,7 +9,8 @@ declare function getDefaultConfig(): {
9
9
  cwd: string;
10
10
  types: NonNullable<RelizyConfig["types"]>;
11
11
  templates: {
12
- commitMessage: string;
12
+ commitMessage: string | undefined;
13
+ commitBody: string | undefined;
13
14
  tagMessage: string;
14
15
  tagBody: string;
15
16
  emptyChangelogContent: string;
@@ -41,6 +42,12 @@ declare function getDefaultConfig(): {
41
42
  accessTokenSecret: string | undefined;
42
43
  };
43
44
  slack: string | undefined;
45
+ ai: {
46
+ 'claude-code': {
47
+ apiKey: string | undefined;
48
+ oauthToken: string | undefined;
49
+ };
50
+ };
44
51
  };
45
52
  scopeMap: {};
46
53
  release: Required<ReleaseConfig>;
@@ -56,6 +63,7 @@ declare function getDefaultConfig(): {
56
63
  };
57
64
  };
58
65
  prComment: Required<PrCommentConfig>;
66
+ ai: AIConfig;
59
67
  logLevel: LogLevel;
60
68
  safetyCheck: boolean;
61
69
  };
@@ -204,6 +212,40 @@ declare function createGitlabRelease({ config, release, dryRun, }: {
204
212
  }): Promise<GitlabReleaseResponse>;
205
213
  declare function gitlab(options?: Partial<ProviderReleaseOptions>): Promise<PostedRelease[]>;
206
214
 
215
+ interface Reference {
216
+ type: 'hash' | 'issue' | 'pull-request';
217
+ value: string;
218
+ }
219
+ declare function buildCompareLink({ config, from, to, isFirstCommit }: {
220
+ config: ResolvedRelizyConfig;
221
+ from: string;
222
+ to: string;
223
+ isFirstCommit: boolean;
224
+ }): string;
225
+ declare function buildChangelogBody({ commits, config, minify }: {
226
+ commits: GitCommit[];
227
+ config: ResolvedRelizyConfig;
228
+ minify?: boolean;
229
+ }): string;
230
+ declare function buildContributors({ commits, config }: {
231
+ commits: GitCommit[];
232
+ config: ResolvedRelizyConfig;
233
+ }): Promise<string>;
234
+ declare function generateMarkDown({ commits, config, from, to, isFirstCommit, minify, }: {
235
+ commits: GitCommit[];
236
+ config: ResolvedRelizyConfig;
237
+ from: string;
238
+ to: string;
239
+ isFirstCommit: boolean;
240
+ minify?: boolean;
241
+ }): Promise<string>;
242
+ declare function parseChangelogMarkdown(contents: string): {
243
+ releases: {
244
+ version?: string;
245
+ body: string;
246
+ }[];
247
+ };
248
+
207
249
  declare function detectPackageManager(cwd?: string): PackageManager;
208
250
  declare function determinePublishTag(version: string, configTag?: string): string;
209
251
  declare function getPackagesToPublishInSelectiveMode(sortedPackages: PackageBase[], rootVersion: string | undefined): PackageBase[];
@@ -936,6 +978,11 @@ interface ProviderReleaseOptions {
936
978
  * Custom suffix for prerelease versions - replace the last .X with .suffix (e.g. 1.0.0-beta.0 -> 1.0.0-beta.suffix)
937
979
  */
938
980
  suffix?: string;
981
+ /**
982
+ * Override AI configuration for this run
983
+ * true = force-enable AI, false = force-disable AI, undefined = use config
984
+ */
985
+ ai?: boolean;
939
986
  }
940
987
  interface SocialOptions {
941
988
  /**
@@ -973,6 +1020,11 @@ interface SocialOptions {
973
1020
  * @default true
974
1021
  */
975
1022
  safetyCheck?: boolean;
1023
+ /**
1024
+ * Override AI configuration for this run
1025
+ * true = force-enable AI, false = force-disable AI, undefined = use config
1026
+ */
1027
+ ai?: boolean;
976
1028
  }
977
1029
  type PublishConfig = ChangelogConfig$1['publish'] & {
978
1030
  /**
@@ -1157,6 +1209,11 @@ interface ReleaseOptions extends ReleaseConfig, BumpConfig, ChangelogConfig, Pub
1157
1209
  * @default false
1158
1210
  */
1159
1211
  includePrivates?: boolean;
1212
+ /**
1213
+ * Override AI configuration for this run
1214
+ * true = force-enable AI, false = force-disable AI, undefined = use config
1215
+ */
1216
+ ai?: boolean;
1160
1217
  }
1161
1218
  interface TwitterCredentials {
1162
1219
  /**
@@ -1237,6 +1294,86 @@ interface SlackSocialConfig {
1237
1294
  */
1238
1295
  credentials?: SlackCredentials;
1239
1296
  }
1297
+ type AIProviderName = 'claude-code';
1298
+ interface ClaudeCodeProviderOptions {
1299
+ /**
1300
+ * Anthropic API key.
1301
+ * Fallback env: `RELIZY_ANTHROPIC_API_KEY`, `ANTHROPIC_API_KEY`.
1302
+ */
1303
+ apiKey?: string;
1304
+ /**
1305
+ * Claude Code OAuth token.
1306
+ * Fallback env: `RELIZY_CLAUDE_CODE_OAUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN`.
1307
+ */
1308
+ oauthToken?: string;
1309
+ /**
1310
+ * Model id or alias (e.g. `haiku`, `sonnet`, `opus`, or a versioned id).
1311
+ * @default 'haiku'
1312
+ */
1313
+ model?: string;
1314
+ }
1315
+ type AIPromptTarget = 'providerRelease' | 'twitter' | 'slack';
1316
+ type AISystemPromptOverrides = Partial<Record<AIPromptTarget, string>>;
1317
+ interface AITargetConfig {
1318
+ /**
1319
+ * Enable AI for this target
1320
+ * @default false
1321
+ */
1322
+ enabled?: boolean;
1323
+ }
1324
+ interface AISocialConfig {
1325
+ /**
1326
+ * Twitter-specific AI activation
1327
+ */
1328
+ twitter?: AITargetConfig;
1329
+ /**
1330
+ * Slack-specific AI activation
1331
+ */
1332
+ slack?: AITargetConfig;
1333
+ }
1334
+ interface AIConfig {
1335
+ /**
1336
+ * AI provider name
1337
+ * @default 'claude-code'
1338
+ */
1339
+ provider?: AIProviderName;
1340
+ /**
1341
+ * Provider-specific options, keyed by provider name.
1342
+ */
1343
+ providers?: {
1344
+ 'claude-code'?: ClaudeCodeProviderOptions;
1345
+ };
1346
+ /**
1347
+ * Output language (ISO 639-1 code or plain English name).
1348
+ * @default 'en'
1349
+ */
1350
+ language?: string;
1351
+ /**
1352
+ * Behavior when the provider call fails.
1353
+ * - `raw`: fall back to the unmodified changelog body.
1354
+ * - `fail`: re-throw the error.
1355
+ * @default 'raw'
1356
+ */
1357
+ fallback?: 'raw' | 'fail';
1358
+ /**
1359
+ * Extra directives appended to every built-in system prompt.
1360
+ * @example 'Always use emojis in the changelog'
1361
+ */
1362
+ extraGuidelines?: string;
1363
+ /**
1364
+ * Full replacement of the built-in system prompts.
1365
+ * When set, the extraGuidelines and base prompts are ignored for that target.
1366
+ */
1367
+ systemPromptOverrides?: AISystemPromptOverrides;
1368
+ /**
1369
+ * Enable AI rewriting for GitHub/GitLab release notes.
1370
+ */
1371
+ providerRelease?: AITargetConfig;
1372
+ /**
1373
+ * Enable AI rewriting for social media posts.
1374
+ */
1375
+ social?: AISocialConfig;
1376
+ }
1240
1377
  interface SocialConfig {
1241
1378
  /**
1242
1379
  * Twitter configuration
@@ -1338,19 +1475,43 @@ interface SlackOptions {
1338
1475
  }
1339
1476
  interface TemplatesConfig {
1340
1477
  /**
1341
- * Commit message template
1478
+ * Commit message template (title).
1479
+ *
1480
+ * Default in `unified`/`selective` modes: `'chore(release): bump version to {{newVersion}}'`.
1481
+ * Default in `independent` mode (when not customized): `'chore(release): bump {{packageCount}} packages'`.
1482
+ *
1483
+ * Available variables:
1484
+ * - `{{newVersion}}` — in `independent` mode, comma-separated list of bumped `name@version` (legacy behavior); otherwise the new version.
1485
+ * - `{{packageCount}}` — number of bumped packages.
1486
+ * - `{{packageNames}}` — comma-separated list of bumped package names.
1487
+ * - `{{packageList}}` — comma-separated list of bumped `name@version`.
1488
+ * - `{{rootVersion}}` — version from the root `package.json`.
1342
1489
  */
1343
1490
  commitMessage?: string;
1491
+ /**
1492
+ * Commit message body template. When defined, it is passed as the commit body.
1493
+ *
1494
+ * Default in `unified`/`selective` modes: `undefined` (no body).
1495
+ * Default in `independent` mode (when `commitMessage` and `commitBody` are not customized): `'{{packageList}}'`.
1496
+ *
1497
+ * Same variables as `commitMessage`.
1498
+ */
1499
+ commitBody?: string;
1344
1500
  /**
1345
1501
  * Tag message template
1502
+ * @default 'Bump version to {{newVersion}}'
1503
+ * Available variables: {{newVersion}}
1346
1504
  */
1347
1505
  tagMessage?: string;
1348
1506
  /**
1349
1507
  * Not used with "independent" version mode
1508
+ * @default 'v{{newVersion}}'
1509
+ * Available variables: {{newVersion}}
1350
1510
  */
1351
1511
  tagBody?: string;
1352
1512
  /**
1353
1513
  * Empty changelog content
1514
+ * @default 'No relevant changes for this release'
1354
1515
  */
1355
1516
  emptyChangelogContent?: string;
1356
1517
  /**
@@ -1428,6 +1589,15 @@ interface TokensConfig {
1428
1589
  * Environment variables: SLACK_TOKEN, RELIZY_SLACK_TOKEN
1429
1590
  */
1430
1591
  slack?: string;
1592
+ /**
1593
+ * AI provider credentials
1594
+ */
1595
+ ai?: {
1596
+ 'claude-code'?: {
1597
+ apiKey?: string;
1598
+ oauthToken?: string;
1599
+ };
1600
+ };
1431
1601
  }
1432
1602
  /**
1433
1603
  * Hooks configuration
@@ -1508,6 +1678,10 @@ interface RelizyConfig extends Partial<Omit<ChangelogConfig$1, 'output' | 'templ
1508
1678
  * API tokens configuration
1509
1679
  */
1510
1680
  tokens?: TokensConfig;
1681
+ /**
1682
+ * AI-powered changelog and release notes configuration
1683
+ */
1684
+ ai?: AIConfig;
1511
1685
  /**
1512
1686
  * Hooks config
1513
1687
  */
@@ -1557,7 +1731,7 @@ declare function prComment(options?: PrCommentOptions): Promise<boolean>;
1557
1731
  declare function providerReleaseSafetyCheck({ config, provider }: {
1558
1732
  config: ResolvedRelizyConfig;
1559
1733
  provider?: GitProvider | null;
1560
- }): void;
1734
+ }): Promise<void>;
1561
1735
  declare function providerRelease(options?: Partial<ProviderReleaseOptions>): Promise<ProviderReleaseResult>;
1562
1736
 
1563
1737
  declare function publishSafetyCheck({ config }: {
@@ -1574,5 +1748,5 @@ declare function socialSafetyCheck({ config }: {
1574
1748
  }): Promise<void>;
1575
1749
  declare function social(options?: Partial<SocialOptions>): Promise<SocialResult>;
1576
1750
 
1577
- export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildCommentBody, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, formatChangelogForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getTwitterCredentials, github, gitlab, hasLernaJson, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, readPackageJson, readPackages, release, resolveTags, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
1578
- export type { BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogOptions, ConfigType, GitProvider, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, MonorepoConfig, PackageBase, PackageManager, PostedRelease, PrCommentConfig, PrCommentMode, PrCommentOptions, PrCommentStatus, ProviderReleaseOptions, ProviderReleaseResult, PublishConfig, PublishOptions, PublishResponse, PullRequestInfo, ReadPackage, ReleaseConfig, ReleaseContext, ReleaseOptions, RelizyConfig, RepoConfig, ResolvedConfig, ResolvedRelizyConfig, ResolvedTags, ResolvedTwitterCredentials, RootPackage, SlackCredentials, SlackOptions, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode };
1751
+ export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, formatChangelogForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, generateMarkDown, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getTwitterCredentials, github, gitlab, hasLernaJson, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, readPackageJson, readPackages, release, resolveTags, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
1752
+ export type { AIConfig, AIPromptTarget, AIProviderName, AISocialConfig, AISystemPromptOverrides, AITargetConfig, BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogOptions, ClaudeCodeProviderOptions, ConfigType, GitProvider, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, MonorepoConfig, PackageBase, PackageManager, PostedRelease, PrCommentConfig, PrCommentMode, PrCommentOptions, PrCommentStatus, ProviderReleaseOptions, ProviderReleaseResult, PublishConfig, PublishOptions, PublishResponse, PullRequestInfo, ReadPackage, Reference, ReleaseConfig, ReleaseContext, ReleaseOptions, RelizyConfig, RepoConfig, ResolvedConfig, ResolvedRelizyConfig, ResolvedTags, ResolvedTwitterCredentials, RootPackage, SlackCredentials, SlackOptions, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode };
package/dist/index.d.ts CHANGED
@@ -9,7 +9,8 @@ declare function getDefaultConfig(): {
9
9
  cwd: string;
10
10
  types: NonNullable<RelizyConfig["types"]>;
11
11
  templates: {
12
- commitMessage: string;
12
+ commitMessage: string | undefined;
13
+ commitBody: string | undefined;
13
14
  tagMessage: string;
14
15
  tagBody: string;
15
16
  emptyChangelogContent: string;
@@ -41,6 +42,12 @@ declare function getDefaultConfig(): {
41
42
  accessTokenSecret: string | undefined;
42
43
  };
43
44
  slack: string | undefined;
45
+ ai: {
46
+ 'claude-code': {
47
+ apiKey: string | undefined;
48
+ oauthToken: string | undefined;
49
+ };
50
+ };
44
51
  };
45
52
  scopeMap: {};
46
53
  release: Required<ReleaseConfig>;
@@ -56,6 +63,7 @@ declare function getDefaultConfig(): {
56
63
  };
57
64
  };
58
65
  prComment: Required<PrCommentConfig>;
66
+ ai: AIConfig;
59
67
  logLevel: LogLevel;
60
68
  safetyCheck: boolean;
61
69
  };
@@ -204,6 +212,40 @@ declare function createGitlabRelease({ config, release, dryRun, }: {
204
212
  }): Promise<GitlabReleaseResponse>;
205
213
  declare function gitlab(options?: Partial<ProviderReleaseOptions>): Promise<PostedRelease[]>;
206
214
 
215
+ interface Reference {
216
+ type: 'hash' | 'issue' | 'pull-request';
217
+ value: string;
218
+ }
219
+ declare function buildCompareLink({ config, from, to, isFirstCommit }: {
220
+ config: ResolvedRelizyConfig;
221
+ from: string;
222
+ to: string;
223
+ isFirstCommit: boolean;
224
+ }): string;
225
+ declare function buildChangelogBody({ commits, config, minify }: {
226
+ commits: GitCommit[];
227
+ config: ResolvedRelizyConfig;
228
+ minify?: boolean;
229
+ }): string;
230
+ declare function buildContributors({ commits, config }: {
231
+ commits: GitCommit[];
232
+ config: ResolvedRelizyConfig;
233
+ }): Promise<string>;
234
+ declare function generateMarkDown({ commits, config, from, to, isFirstCommit, minify, }: {
235
+ commits: GitCommit[];
236
+ config: ResolvedRelizyConfig;
237
+ from: string;
238
+ to: string;
239
+ isFirstCommit: boolean;
240
+ minify?: boolean;
241
+ }): Promise<string>;
242
+ declare function parseChangelogMarkdown(contents: string): {
243
+ releases: {
244
+ version?: string;
245
+ body: string;
246
+ }[];
247
+ };
248
+
207
249
  declare function detectPackageManager(cwd?: string): PackageManager;
208
250
  declare function determinePublishTag(version: string, configTag?: string): string;
209
251
  declare function getPackagesToPublishInSelectiveMode(sortedPackages: PackageBase[], rootVersion: string | undefined): PackageBase[];
@@ -936,6 +978,11 @@ interface ProviderReleaseOptions {
936
978
  * Custom suffix for prerelease versions - replace the last .X with .suffix (e.g. 1.0.0-beta.0 -> 1.0.0-beta.suffix)
937
979
  */
938
980
  suffix?: string;
981
+ /**
982
+ * Override AI configuration for this run
983
+ * true = force-enable AI, false = force-disable AI, undefined = use config
984
+ */
985
+ ai?: boolean;
939
986
  }
940
987
  interface SocialOptions {
941
988
  /**
@@ -973,6 +1020,11 @@ interface SocialOptions {
973
1020
  * @default true
974
1021
  */
975
1022
  safetyCheck?: boolean;
1023
+ /**
1024
+ * Override AI configuration for this run
1025
+ * true = force-enable AI, false = force-disable AI, undefined = use config
1026
+ */
1027
+ ai?: boolean;
976
1028
  }
977
1029
  type PublishConfig = ChangelogConfig$1['publish'] & {
978
1030
  /**
@@ -1157,6 +1209,11 @@ interface ReleaseOptions extends ReleaseConfig, BumpConfig, ChangelogConfig, Pub
1157
1209
  * @default false
1158
1210
  */
1159
1211
  includePrivates?: boolean;
1212
+ /**
1213
+ * Override AI configuration for this run
1214
+ * true = force-enable AI, false = force-disable AI, undefined = use config
1215
+ */
1216
+ ai?: boolean;
1160
1217
  }
1161
1218
  interface TwitterCredentials {
1162
1219
  /**
@@ -1237,6 +1294,86 @@ interface SlackSocialConfig {
1237
1294
  */
1238
1295
  credentials?: SlackCredentials;
1239
1296
  }
1297
+ type AIProviderName = 'claude-code';
1298
+ interface ClaudeCodeProviderOptions {
1299
+ /**
1300
+ * Anthropic API key.
1301
+ * Fallback env: `RELIZY_ANTHROPIC_API_KEY`, `ANTHROPIC_API_KEY`.
1302
+ */
1303
+ apiKey?: string;
1304
+ /**
1305
+ * Claude Code OAuth token.
1306
+ * Fallback env: `RELIZY_CLAUDE_CODE_OAUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN`.
1307
+ */
1308
+ oauthToken?: string;
1309
+ /**
1310
+ * Model id or alias (e.g. `haiku`, `sonnet`, `opus`, or a versioned id).
1311
+ * @default 'haiku'
1312
+ */
1313
+ model?: string;
1314
+ }
1315
+ type AIPromptTarget = 'providerRelease' | 'twitter' | 'slack';
1316
+ type AISystemPromptOverrides = Partial<Record<AIPromptTarget, string>>;
1317
+ interface AITargetConfig {
1318
+ /**
1319
+ * Enable AI for this target
1320
+ * @default false
1321
+ */
1322
+ enabled?: boolean;
1323
+ }
1324
+ interface AISocialConfig {
1325
+ /**
1326
+ * Twitter-specific AI activation
1327
+ */
1328
+ twitter?: AITargetConfig;
1329
+ /**
1330
+ * Slack-specific AI activation
1331
+ */
1332
+ slack?: AITargetConfig;
1333
+ }
1334
+ interface AIConfig {
1335
+ /**
1336
+ * AI provider name
1337
+ * @default 'claude-code'
1338
+ */
1339
+ provider?: AIProviderName;
1340
+ /**
1341
+ * Provider-specific options, keyed by provider name.
1342
+ */
1343
+ providers?: {
1344
+ 'claude-code'?: ClaudeCodeProviderOptions;
1345
+ };
1346
+ /**
1347
+ * Output language (ISO 639-1 code or plain English name).
1348
+ * @default 'en'
1349
+ */
1350
+ language?: string;
1351
+ /**
1352
+ * Behavior when the provider call fails.
1353
+ * - `raw`: fall back to the unmodified changelog body.
1354
+ * - `fail`: re-throw the error.
1355
+ * @default 'raw'
1356
+ */
1357
+ fallback?: 'raw' | 'fail';
1358
+ /**
1359
+ * Extra directives appended to every built-in system prompt.
1360
+ * @example 'Always use emojis in the changelog'
1361
+ */
1362
+ extraGuidelines?: string;
1363
+ /**
1364
+ * Full replacement of the built-in system prompts.
1365
+ * When set, the extraGuidelines and base prompts are ignored for that target.
1366
+ */
1367
+ systemPromptOverrides?: AISystemPromptOverrides;
1368
+ /**
1369
+ * Enable AI rewriting for GitHub/GitLab release notes.
1370
+ */
1371
+ providerRelease?: AITargetConfig;
1372
+ /**
1373
+ * Enable AI rewriting for social media posts.
1374
+ */
1375
+ social?: AISocialConfig;
1376
+ }
1240
1377
  interface SocialConfig {
1241
1378
  /**
1242
1379
  * Twitter configuration
@@ -1338,19 +1475,43 @@ interface SlackOptions {
1338
1475
  }
1339
1476
  interface TemplatesConfig {
1340
1477
  /**
1341
- * Commit message template
1478
+ * Commit message template (title).
1479
+ *
1480
+ * Default in `unified`/`selective` modes: `'chore(release): bump version to {{newVersion}}'`.
1481
+ * Default in `independent` mode (when not customized): `'chore(release): bump {{packageCount}} packages'`.
1482
+ *
1483
+ * Available variables:
1484
+ * - `{{newVersion}}` — in `independent` mode, comma-separated list of bumped `name@version` (legacy behavior); otherwise the new version.
1485
+ * - `{{packageCount}}` — number of bumped packages.
1486
+ * - `{{packageNames}}` — comma-separated list of bumped package names.
1487
+ * - `{{packageList}}` — comma-separated list of bumped `name@version`.
1488
+ * - `{{rootVersion}}` — version from the root `package.json`.
1342
1489
  */
1343
1490
  commitMessage?: string;
1491
+ /**
1492
+ * Commit message body template. When defined, it is passed as the commit body.
1493
+ *
1494
+ * Default in `unified`/`selective` modes: `undefined` (no body).
1495
+ * Default in `independent` mode (when `commitMessage` and `commitBody` are not customized): `'{{packageList}}'`.
1496
+ *
1497
+ * Same variables as `commitMessage`.
1498
+ */
1499
+ commitBody?: string;
1344
1500
  /**
1345
1501
  * Tag message template
1502
+ * @default 'Bump version to {{newVersion}}'
1503
+ * Available variables: {{newVersion}}
1346
1504
  */
1347
1505
  tagMessage?: string;
1348
1506
  /**
1349
1507
  * Not used with "independent" version mode
1508
+ * @default 'v{{newVersion}}'
1509
+ * Available variables: {{newVersion}}
1350
1510
  */
1351
1511
  tagBody?: string;
1352
1512
  /**
1353
1513
  * Empty changelog content
1514
+ * @default 'No relevant changes for this release'
1354
1515
  */
1355
1516
  emptyChangelogContent?: string;
1356
1517
  /**
@@ -1428,6 +1589,15 @@ interface TokensConfig {
1428
1589
  * Environment variables: SLACK_TOKEN, RELIZY_SLACK_TOKEN
1429
1590
  */
1430
1591
  slack?: string;
1592
+ /**
1593
+ * AI provider credentials
1594
+ */
1595
+ ai?: {
1596
+ 'claude-code'?: {
1597
+ apiKey?: string;
1598
+ oauthToken?: string;
1599
+ };
1600
+ };
1431
1601
  }
1432
1602
  /**
1433
1603
  * Hooks configuration
@@ -1508,6 +1678,10 @@ interface RelizyConfig extends Partial<Omit<ChangelogConfig$1, 'output' | 'templ
1508
1678
  * API tokens configuration
1509
1679
  */
1510
1680
  tokens?: TokensConfig;
1681
+ /**
1682
+ * AI-powered changelog and release notes configuration
1683
+ */
1684
+ ai?: AIConfig;
1511
1685
  /**
1512
1686
  * Hooks config
1513
1687
  */
@@ -1557,7 +1731,7 @@ declare function prComment(options?: PrCommentOptions): Promise<boolean>;
1557
1731
  declare function providerReleaseSafetyCheck({ config, provider }: {
1558
1732
  config: ResolvedRelizyConfig;
1559
1733
  provider?: GitProvider | null;
1560
- }): void;
1734
+ }): Promise<void>;
1561
1735
  declare function providerRelease(options?: Partial<ProviderReleaseOptions>): Promise<ProviderReleaseResult>;
1562
1736
 
1563
1737
  declare function publishSafetyCheck({ config }: {
@@ -1574,5 +1748,5 @@ declare function socialSafetyCheck({ config }: {
1574
1748
  }): Promise<void>;
1575
1749
  declare function social(options?: Partial<SocialOptions>): Promise<SocialResult>;
1576
1750
 
1577
- export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildCommentBody, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, formatChangelogForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getTwitterCredentials, github, gitlab, hasLernaJson, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, readPackageJson, readPackages, release, resolveTags, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
1578
- export type { BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogOptions, ConfigType, GitProvider, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, MonorepoConfig, PackageBase, PackageManager, PostedRelease, PrCommentConfig, PrCommentMode, PrCommentOptions, PrCommentStatus, ProviderReleaseOptions, ProviderReleaseResult, PublishConfig, PublishOptions, PublishResponse, PullRequestInfo, ReadPackage, ReleaseConfig, ReleaseContext, ReleaseOptions, RelizyConfig, RepoConfig, ResolvedConfig, ResolvedRelizyConfig, ResolvedTags, ResolvedTwitterCredentials, RootPackage, SlackCredentials, SlackOptions, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode };
1751
+ export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, formatChangelogForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, generateMarkDown, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getTwitterCredentials, github, gitlab, hasLernaJson, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, readPackageJson, readPackages, release, resolveTags, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
1752
+ export type { AIConfig, AIPromptTarget, AIProviderName, AISocialConfig, AISystemPromptOverrides, AITargetConfig, BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogOptions, ClaudeCodeProviderOptions, ConfigType, GitProvider, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, MonorepoConfig, PackageBase, PackageManager, PostedRelease, PrCommentConfig, PrCommentMode, PrCommentOptions, PrCommentStatus, ProviderReleaseOptions, ProviderReleaseResult, PublishConfig, PublishOptions, PublishResponse, PullRequestInfo, ReadPackage, Reference, ReleaseConfig, ReleaseContext, ReleaseOptions, RelizyConfig, RepoConfig, ResolvedConfig, ResolvedRelizyConfig, ResolvedTags, ResolvedTwitterCredentials, RootPackage, SlackCredentials, SlackOptions, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { aa as NEW_PACKAGE_MARKER, T as PR_COMMENT_MARKER, a as buildCommentBody, b as bump, ao as capReleaseTypeForZeroMajor, c as changelog, u as checkGitStatusIfDirty, aC as confirmBump, A as createCommitAndTags, I as createGitlabRelease, k as defineConfig, x as detectGitProvider, K as detectPackageManager, S as detectPullRequest, L as determinePublishTag, aq as determineReleaseType, ap as determineSemverChange, aj as executeBuildCmd, ai as executeFormatCmd, af as executeHook, o as expandPackagesToBumpWithDependents, a3 as extractChangelogSummary, au as extractVersionFromPackageTag, aF as extractVersionFromTag, v as fetchGitTags, al as filterOutPrivatePackages, Q as findGitHubPR, R as findGitLabMR, a0 as formatChangelogForSlack, a1 as formatSlackMessage, ad as formatTweetMessage, i as generateChangelog, O as getAuthCommand, aD as getBumpedIndependentPackages, aB as getBumpedPackageIndependently, ah as getCIName, aG as getCanaryVersion, E as getCurrentGitBranch, F as getCurrentGitRef, j as getDefaultConfig, n as getDependentsOf, D as getFirstCommit, q as getGitStatus, a5 as getIndependentTag, a9 as getLastPackageTag, a8 as getLastRepoTag, a6 as getLastStableTag, a7 as getLastTag, z as getModifiedReleaseFilePatterns, Z as getPackageCommits, m as getPackageDependencies, as as getPackageNewVersion, Y as getPackages, am as getPackagesOrBumpedPackages, N as getPackagesToPublishInIndependentMode, M as getPackagesToPublishInSelectiveMode, az as getPreid, a4 as getReleaseUrl, W as getRootPackage, G as getShortCommitSha, $ as getSlackToken, ac as getTwitterCredentials, H as github, J as gitlab, _ as hasLernaJson, ak as isBumpedPackage, aA as isChangedPreid, ay as isGraduating, an as isGraduatingToStableBetweenVersion, ag as isInCI, av as isPrerelease, ax as isPrereleaseReleaseType, aw as isStableReleaseType, aH as isTagVersionCompatibleWithCurrent, l as loadRelizyConfig, y as parseGitRemoteUrl, U as postPrComment, a2 as postReleaseToSlack, ae as postReleaseToTwitter, p as prComment, e as providerRelease, d as providerReleaseSafetyCheck, g as publish, P as publishPackage, f as publishSafetyCheck, B as pushCommitAndTags, V as readPackageJson, X as readPackages, r as release, ab as resolveTags, C as rollbackModifiedFiles, aE as shouldFilterPrereleaseTags, h as social, s as socialSafetyCheck, t as topologicalSort, at as updateLernaVersion, w as writeChangelogToFile, ar as writeVersion } from './shared/relizy.w8-5SlcY.mjs';
1
+ export { af as NEW_PACKAGE_MARKER, Y as PR_COMMENT_MARKER, L as buildChangelogBody, a as buildCommentBody, K as buildCompareLink, M as buildContributors, b as bump, at as capReleaseTypeForZeroMajor, c as changelog, u as checkGitStatusIfDirty, aH as confirmBump, A as createCommitAndTags, I as createGitlabRelease, k as defineConfig, x as detectGitProvider, P as detectPackageManager, X as detectPullRequest, Q as determinePublishTag, av as determineReleaseType, au as determineSemverChange, ao as executeBuildCmd, an as executeFormatCmd, ak as executeHook, o as expandPackagesToBumpWithDependents, a8 as extractChangelogSummary, az as extractVersionFromPackageTag, aK as extractVersionFromTag, v as fetchGitTags, aq as filterOutPrivatePackages, V as findGitHubPR, W as findGitLabMR, a5 as formatChangelogForSlack, a6 as formatSlackMessage, ai as formatTweetMessage, i as generateChangelog, N as generateMarkDown, T as getAuthCommand, aI as getBumpedIndependentPackages, aG as getBumpedPackageIndependently, am as getCIName, aL as getCanaryVersion, E as getCurrentGitBranch, F as getCurrentGitRef, j as getDefaultConfig, n as getDependentsOf, D as getFirstCommit, q as getGitStatus, aa as getIndependentTag, ae as getLastPackageTag, ad as getLastRepoTag, ab as getLastStableTag, ac as getLastTag, z as getModifiedReleaseFilePatterns, a2 as getPackageCommits, m as getPackageDependencies, ax as getPackageNewVersion, a1 as getPackages, ar as getPackagesOrBumpedPackages, S as getPackagesToPublishInIndependentMode, R as getPackagesToPublishInSelectiveMode, aE as getPreid, a9 as getReleaseUrl, $ as getRootPackage, G as getShortCommitSha, a4 as getSlackToken, ah as getTwitterCredentials, H as github, J as gitlab, a3 as hasLernaJson, ap as isBumpedPackage, aF as isChangedPreid, aD as isGraduating, as as isGraduatingToStableBetweenVersion, al as isInCI, aA as isPrerelease, aC as isPrereleaseReleaseType, aB as isStableReleaseType, aM as isTagVersionCompatibleWithCurrent, l as loadRelizyConfig, O as parseChangelogMarkdown, y as parseGitRemoteUrl, Z as postPrComment, a7 as postReleaseToSlack, aj as postReleaseToTwitter, p as prComment, e as providerRelease, d as providerReleaseSafetyCheck, g as publish, U as publishPackage, f as publishSafetyCheck, B as pushCommitAndTags, _ as readPackageJson, a0 as readPackages, r as release, ag as resolveTags, C as rollbackModifiedFiles, aJ as shouldFilterPrereleaseTags, h as social, s as socialSafetyCheck, t as topologicalSort, ay as updateLernaVersion, w as writeChangelogToFile, aw as writeVersion } from './shared/relizy.BHnDdNQq.mjs';
2
2
  import '@maz-ui/node';
3
3
  import 'node:process';
4
4
  import '@maz-ui/utils';