@eldrforge/kodrdriv 1.2.7 → 1.2.8

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.
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env node
2
+ import { getDryRunLogger } from '../logging.js';
3
+ import { run } from '../util/child.js';
4
+
5
+ /**
6
+ * Execute the updates command
7
+ */ const execute = async (runConfig)=>{
8
+ var _runConfig_updates, _runConfig_tree;
9
+ const isDryRun = runConfig.dryRun || false;
10
+ const logger = getDryRunLogger(isDryRun);
11
+ // Get scope from either the updates config or tree packageArgument (for tree mode)
12
+ const scope = ((_runConfig_updates = runConfig.updates) === null || _runConfig_updates === void 0 ? void 0 : _runConfig_updates.scope) || ((_runConfig_tree = runConfig.tree) === null || _runConfig_tree === void 0 ? void 0 : _runConfig_tree.packageArgument);
13
+ if (!scope) {
14
+ throw new Error('Scope parameter is required. Usage: kodrdriv updates <scope> or kodrdriv tree updates <scope>');
15
+ }
16
+ // Validate that scope looks like a valid npm scope (starts with @)
17
+ if (!scope.startsWith('@')) {
18
+ throw new Error(`Invalid scope "${scope}". Scope must start with @ (e.g., "@fjell")`);
19
+ }
20
+ logger.info(`šŸ”„ Running npm-check-updates for scope: ${scope}`);
21
+ // Build the npm-check-updates command
22
+ const ncuCommand = `npx npm-check-updates '/${scope.replace('@', '^@')}//' -u`;
23
+ logger.info(`šŸ“¦ Executing: ${ncuCommand}`);
24
+ try {
25
+ if (isDryRun) {
26
+ logger.info(`Would run: ${ncuCommand}`);
27
+ return `Would update dependencies matching ${scope} scope`;
28
+ }
29
+ // Execute npm-check-updates
30
+ const result = await run(ncuCommand);
31
+ if (result.stdout) {
32
+ logger.info('āœ… npm-check-updates output:');
33
+ result.stdout.split('\n').forEach((line)=>{
34
+ if (line.trim()) {
35
+ logger.info(` ${line}`);
36
+ }
37
+ });
38
+ }
39
+ if (result.stderr) {
40
+ logger.info('āš ļø npm-check-updates warnings:');
41
+ result.stderr.split('\n').forEach((line)=>{
42
+ if (line.trim()) {
43
+ logger.info(` ${line}`);
44
+ }
45
+ });
46
+ }
47
+ logger.info(`āœ… Successfully updated dependencies matching ${scope} scope`);
48
+ return `Updated dependencies matching ${scope} scope`;
49
+ } catch (error) {
50
+ logger.error(`Failed to run npm-check-updates for ${scope}:`, error.message);
51
+ throw new Error(`Failed to update dependencies: ${error.message}`);
52
+ }
53
+ };
54
+
55
+ export { execute };
56
+ //# sourceMappingURL=updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updates.js","sources":["../../src/commands/updates.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * Updates command - Run npm-check-updates with scoped patterns\n *\n * This command provides a convenient way to update dependencies matching specific scopes:\n * - Can target specific scopes like \"@fjell\" or \"@getdidthey\"\n * - Works at both project level and tree level (across multiple packages)\n * - Uses npm-check-updates to update matching packages\n *\n * Examples:\n * kodrdriv updates @fjell # Update @fjell/* packages in current project\n * kodrdriv tree updates @fjell # Update @fjell/* packages across all projects in tree\n * kodrdriv updates @getdidthey # Update @getdidthey/* packages in current project\n */\n\nimport { getDryRunLogger } from '../logging';\nimport { Config } from '../types';\nimport { run } from '../util/child';\n\n/**\n * Execute the updates command\n */\nexport const execute = async (runConfig: Config): Promise<string> => {\n const isDryRun = runConfig.dryRun || false;\n const logger = getDryRunLogger(isDryRun);\n\n // Get scope from either the updates config or tree packageArgument (for tree mode)\n const scope = runConfig.updates?.scope || runConfig.tree?.packageArgument;\n\n if (!scope) {\n throw new Error('Scope parameter is required. Usage: kodrdriv updates <scope> or kodrdriv tree updates <scope>');\n }\n\n // Validate that scope looks like a valid npm scope (starts with @)\n if (!scope.startsWith('@')) {\n throw new Error(`Invalid scope \"${scope}\". Scope must start with @ (e.g., \"@fjell\")`);\n }\n\n logger.info(`šŸ”„ Running npm-check-updates for scope: ${scope}`);\n\n // Build the npm-check-updates command\n const ncuCommand = `npx npm-check-updates '/${scope.replace('@', '^@')}//' -u`;\n\n logger.info(`šŸ“¦ Executing: ${ncuCommand}`);\n\n try {\n if (isDryRun) {\n logger.info(`Would run: ${ncuCommand}`);\n return `Would update dependencies matching ${scope} scope`;\n }\n\n // Execute npm-check-updates\n const result = await run(ncuCommand);\n\n if (result.stdout) {\n logger.info('āœ… npm-check-updates output:');\n result.stdout.split('\\n').forEach(line => {\n if (line.trim()) {\n logger.info(` ${line}`);\n }\n });\n }\n\n if (result.stderr) {\n logger.info('āš ļø npm-check-updates warnings:');\n result.stderr.split('\\n').forEach(line => {\n if (line.trim()) {\n logger.info(` ${line}`);\n }\n });\n }\n\n logger.info(`āœ… Successfully updated dependencies matching ${scope} scope`);\n return `Updated dependencies matching ${scope} scope`;\n\n } catch (error: any) {\n logger.error(`Failed to run npm-check-updates for ${scope}:`, error.message);\n throw new Error(`Failed to update dependencies: ${error.message}`);\n }\n};\n"],"names":["execute","runConfig","isDryRun","dryRun","logger","getDryRunLogger","scope","updates","tree","packageArgument","Error","startsWith","info","ncuCommand","replace","result","run","stdout","split","forEach","line","trim","stderr","error","message"],"mappings":"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"}
package/dist/constants.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import os__default from 'os';
2
2
  import path__default from 'path';
3
3
 
4
- const VERSION = '1.2.7 (HEAD/d967209 T:v1.2.7 2025-09-14 12:04:21 -0700) linux x64 v22.19.0';
4
+ const VERSION = '1.2.8 (HEAD/3cfee28 T:v1.2.8 2025-10-12 23:20:14 -0700) linux x64 v22.20.0';
5
5
  const PROGRAM_NAME = 'kodrdriv';
6
6
  const DEFAULT_OVERRIDES = false;
7
7
  const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS = 'YYYY-MM-DD-HHmmss.SSS';
@@ -76,6 +76,7 @@ const COMMAND_UNLINK = 'unlink';
76
76
  const COMMAND_CLEAN = 'clean';
77
77
  const COMMAND_DEVELOPMENT = 'development';
78
78
  const COMMAND_VERSIONS = 'versions';
79
+ const COMMAND_UPDATES = 'updates';
79
80
  const COMMAND_CHECK_CONFIG = 'check-config';
80
81
  const COMMAND_INIT_CONFIG = 'init-config';
81
82
  const ALLOWED_COMMANDS = [
@@ -91,7 +92,8 @@ const ALLOWED_COMMANDS = [
91
92
  COMMAND_UNLINK,
92
93
  COMMAND_CLEAN,
93
94
  COMMAND_DEVELOPMENT,
94
- COMMAND_VERSIONS
95
+ COMMAND_VERSIONS,
96
+ COMMAND_UPDATES
95
97
  ];
96
98
  const DEFAULT_COMMAND = COMMAND_COMMIT;
97
99
  // Define defaults in one place
@@ -216,8 +218,29 @@ const KODRDRIV_DEFAULTS = {
216
218
  subcommand: undefined,
217
219
  directories: undefined
218
220
  },
219
- excludedPatterns: DEFAULT_EXCLUDED_PATTERNS
221
+ updates: {
222
+ scope: undefined,
223
+ directories: undefined
224
+ },
225
+ excludedPatterns: DEFAULT_EXCLUDED_PATTERNS,
226
+ branches: {
227
+ working: {
228
+ targetBranch: 'main',
229
+ developmentBranch: true,
230
+ version: {
231
+ type: 'prerelease',
232
+ increment: true,
233
+ incrementLevel: 'patch',
234
+ tag: 'dev'
235
+ }
236
+ },
237
+ main: {
238
+ version: {
239
+ type: 'release'
240
+ }
241
+ }
242
+ }
220
243
  };
221
244
 
222
- export { ALLOWED_COMMANDS, COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_DEVELOPMENT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_TREE, COMMAND_UNLINK, COMMAND_VERSIONS, DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS, DEFAULT_ADD, DEFAULT_AMEND_MODE, DEFAULT_CACHED, DEFAULT_COMMAND, DEFAULT_CONFIG_DIR, DEFAULT_CONTEXT_DIRECTORIES, DEFAULT_DEBUG, DEFAULT_DRY_RUN, DEFAULT_EXCLUDED_PATTERNS, DEFAULT_FROM_COMMIT_ALIAS, DEFAULT_GIT_COMMAND_MAX_BUFFER, DEFAULT_INTERACTIVE_MODE, DEFAULT_MAX_DIFF_BYTES, DEFAULT_MERGE_METHOD, DEFAULT_MESSAGE_LIMIT, DEFAULT_MODEL, DEFAULT_OPENAI_MAX_OUTPUT_TOKENS, DEFAULT_OPENAI_REASONING, DEFAULT_OUTPUT_DIRECTORY, DEFAULT_OVERRIDES, DEFAULT_PREFERENCES_DIRECTORY, DEFAULT_SENDIT_MODE, DEFAULT_TO_COMMIT_ALIAS, DEFAULT_VERBOSE, KODRDRIV_DEFAULTS, PROGRAM_NAME, VERSION };
245
+ export { ALLOWED_COMMANDS, COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_DEVELOPMENT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_TREE, COMMAND_UNLINK, COMMAND_UPDATES, COMMAND_VERSIONS, DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS, DEFAULT_ADD, DEFAULT_AMEND_MODE, DEFAULT_CACHED, DEFAULT_COMMAND, DEFAULT_CONFIG_DIR, DEFAULT_CONTEXT_DIRECTORIES, DEFAULT_DEBUG, DEFAULT_DRY_RUN, DEFAULT_EXCLUDED_PATTERNS, DEFAULT_FROM_COMMIT_ALIAS, DEFAULT_GIT_COMMAND_MAX_BUFFER, DEFAULT_INTERACTIVE_MODE, DEFAULT_MAX_DIFF_BYTES, DEFAULT_MERGE_METHOD, DEFAULT_MESSAGE_LIMIT, DEFAULT_MODEL, DEFAULT_OPENAI_MAX_OUTPUT_TOKENS, DEFAULT_OPENAI_REASONING, DEFAULT_OUTPUT_DIRECTORY, DEFAULT_OVERRIDES, DEFAULT_PREFERENCES_DIRECTORY, DEFAULT_SENDIT_MODE, DEFAULT_TO_COMMIT_ALIAS, DEFAULT_VERBOSE, KODRDRIV_DEFAULTS, PROGRAM_NAME, VERSION };
223
246
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["import { MergeMethod } from './types';\nimport os from 'os';\nimport path from 'path';\n\nexport const VERSION = '__VERSION__ (__GIT_BRANCH__/__GIT_COMMIT__ __GIT_TAGS__ __GIT_COMMIT_DATE__) __SYSTEM_INFO__';\nexport const PROGRAM_NAME = 'kodrdriv';\nexport const DEFAULT_CHARACTER_ENCODING = 'utf-8';\nexport const DEFAULT_BINARY_TO_TEXT_ENCODING = 'base64';\nexport const DEFAULT_DIFF = true;\nexport const DEFAULT_LOG = false;\nexport const DEFAULT_OVERRIDES = false;\nexport const DATE_FORMAT_MONTH_DAY = 'MM-DD';\nexport const DATE_FORMAT_YEAR = 'YYYY';\nexport const DATE_FORMAT_YEAR_MONTH = 'YYYY-MM';\nexport const DATE_FORMAT_YEAR_MONTH_DAY = 'YYYY-MM-DD';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_SLASH = 'YYYY/MM/DD';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES = 'YYYY-MM-DD-HHmm';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS = 'YYYY-MM-DD-HHmmss';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS = 'YYYY-MM-DD-HHmmss.SSS';\nexport const DATE_FORMAT_SHORT_TIMESTAMP = 'YYMMdd-HHmm';\nexport const DATE_FORMAT_MONTH = 'MM';\nexport const DATE_FORMAT_DAY = 'DD';\nexport const DATE_FORMAT_HOURS = 'HHmm';\nexport const DATE_FORMAT_MINUTES = 'mm';\nexport const DATE_FORMAT_SECONDS = 'ss';\nexport const DATE_FORMAT_MILLISECONDS = 'SSS';\nexport const DEFAULT_VERBOSE = false;\nexport const DEFAULT_DRY_RUN = false;\nexport const DEFAULT_DEBUG = false;\nexport const DEFAULT_MODEL = 'gpt-4o-mini';\nexport const DEFAULT_MODEL_STRONG = 'gpt-4o';\nexport const DEFAULT_OPENAI_REASONING = 'low';\nexport const DEFAULT_OPENAI_MAX_OUTPUT_TOKENS = 10000;\nexport const DEFAULT_OUTPUT_DIRECTORY = 'output/kodrdriv';\n\n// Buffer size for git commands that may produce large output (like git log)\nexport const DEFAULT_GIT_COMMAND_MAX_BUFFER = 50 * 1024 * 1024; // 50MB\n\nexport const DEFAULT_CONTEXT_DIRECTORIES: string[] = [];\n\nexport const DEFAULT_CONFIG_DIR = '.kodrdriv';\nexport const DEFAULT_PREFERENCES_DIRECTORY = path.join(os.homedir(), '.kodrdriv');\n\nexport const DEFAULT_FROM_COMMIT_ALIAS = 'main';\nexport const DEFAULT_TO_COMMIT_ALIAS = 'HEAD';\n\nexport const DEFAULT_ADD = false;\nexport const DEFAULT_CACHED = false;\nexport const DEFAULT_SENDIT_MODE = false;\nexport const DEFAULT_INTERACTIVE_MODE = false;\nexport const DEFAULT_AMEND_MODE = false;\nexport const DEFAULT_MESSAGE_LIMIT = 50;\nexport const DEFAULT_MAX_DIFF_BYTES = 20480; // 20KB limit per file\n\nexport const DEFAULT_MERGE_METHOD: MergeMethod = 'squash';\n\nexport const DEFAULT_EXCLUDED_PATTERNS = [\n 'node_modules', 'package-lock.json', 'yarn.lock', 'bun.lockb',\n 'composer.lock', 'Cargo.lock', 'Gemfile.lock',\n 'dist', 'build', 'out', '.next', '.nuxt', 'coverage',\n '.vscode', '.idea', '.DS_Store', '.git', '.gitignore',\n 'logs', 'tmp', '.cache', '*.log', '.env', '.env.*',\n '*.pem', '*.crt', '*.key', '*.sqlite', '*.db',\n '*.zip', '*.tar', '*.gz', '*.exe', '*.bin'\n];\n\nexport const COMMAND_COMMIT = 'commit';\nexport const COMMAND_AUDIO_COMMIT = 'audio-commit';\nexport const COMMAND_SELECT_AUDIO = 'select-audio';\nexport const COMMAND_RELEASE = 'release';\nexport const COMMAND_REVIEW = 'review';\nexport const COMMAND_AUDIO_REVIEW = 'audio-review';\nexport const COMMAND_PUBLISH = 'publish';\nexport const COMMAND_TREE = 'tree';\nexport const COMMAND_LINK = 'link';\nexport const COMMAND_UNLINK = 'unlink';\nexport const COMMAND_CLEAN = 'clean';\nexport const COMMAND_DEVELOPMENT = 'development';\nexport const COMMAND_VERSIONS = 'versions';\nexport const COMMAND_CHECK_CONFIG = 'check-config';\nexport const COMMAND_INIT_CONFIG = 'init-config';\n\nexport const ALLOWED_COMMANDS = [\n COMMAND_COMMIT,\n COMMAND_AUDIO_COMMIT,\n COMMAND_SELECT_AUDIO,\n COMMAND_RELEASE,\n COMMAND_REVIEW,\n COMMAND_AUDIO_REVIEW,\n COMMAND_PUBLISH,\n COMMAND_TREE,\n COMMAND_LINK,\n COMMAND_UNLINK,\n COMMAND_CLEAN,\n COMMAND_DEVELOPMENT,\n COMMAND_VERSIONS\n];\n\nexport const DEFAULT_COMMAND = COMMAND_COMMIT;\n\nexport const DEFAULT_INSTRUCTIONS_DIR = `instructions`;\n\nexport const DEFAULT_PERSONA_DIR = `personas`;\n\nexport const DEFAULT_INSTRUCTIONS_COMMIT_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/commit.md`;\nexport const DEFAULT_INSTRUCTIONS_RELEASE_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/release.md`;\nexport const DEFAULT_INSTRUCTIONS_REVIEW_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/review.md`;\n\nexport const DEFAULT_PERSONA_RELEASER_FILE = `${DEFAULT_PERSONA_DIR}/releaser.md`;\nexport const DEFAULT_PERSONA_YOU_FILE = `${DEFAULT_PERSONA_DIR}/you.md`;\n\n// Default instructions for each persona\nexport const DEFAULT_INSTRUCTIONS_MAP = {\n [COMMAND_COMMIT]: DEFAULT_INSTRUCTIONS_COMMIT_FILE,\n [COMMAND_AUDIO_COMMIT]: DEFAULT_INSTRUCTIONS_COMMIT_FILE, // Reuse commit instructions\n [COMMAND_RELEASE]: DEFAULT_INSTRUCTIONS_RELEASE_FILE,\n [COMMAND_REVIEW]: DEFAULT_INSTRUCTIONS_REVIEW_FILE, // Reuse audio-review instructions for now\n [COMMAND_AUDIO_REVIEW]: DEFAULT_INSTRUCTIONS_REVIEW_FILE,\n};\n\n// Default personas for each command\nexport const DEFAULT_PERSONA_MAP = {\n [COMMAND_COMMIT]: DEFAULT_PERSONA_YOU_FILE,\n [COMMAND_AUDIO_COMMIT]: DEFAULT_PERSONA_YOU_FILE, // Use You persona\n [COMMAND_RELEASE]: DEFAULT_PERSONA_RELEASER_FILE,\n [COMMAND_REVIEW]: DEFAULT_PERSONA_YOU_FILE, // Use You persona\n [COMMAND_AUDIO_REVIEW]: DEFAULT_PERSONA_YOU_FILE,\n};\n\n// Used by child process to create paths\nexport const DEFAULT_PATH_SEPARATOR = '/';\n\n// Used by util/general for file filtering\nexport const DEFAULT_IGNORE_PATTERNS = [\n 'node_modules/**',\n '**/*.log',\n '.git/**',\n 'dist/**',\n 'build/**',\n 'coverage/**',\n '.DS_Store',\n '*.tmp',\n '*.cache',\n];\n\n// Used by util/storage for directory names\nexport const DEFAULT_DIRECTORY_PREFIX = '.kodrdriv';\n\n// Used by other commands but not exposed in CLI\nexport const INTERNAL_DEFAULT_OUTPUT_FILE = 'output.txt';\n\nexport const INTERNAL_DATETIME_FORMAT = 'YYYY-MM-DD_HH-mm-ss';\n\n// Define defaults in one place\nexport const KODRDRIV_DEFAULTS = {\n dryRun: DEFAULT_DRY_RUN,\n verbose: DEFAULT_VERBOSE,\n debug: DEFAULT_DEBUG,\n overrides: DEFAULT_OVERRIDES,\n model: DEFAULT_MODEL,\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n contextDirectories: DEFAULT_CONTEXT_DIRECTORIES,\n commandName: DEFAULT_COMMAND,\n configDirectory: DEFAULT_CONFIG_DIR,\n outputDirectory: DEFAULT_OUTPUT_DIRECTORY,\n preferencesDirectory: DEFAULT_PREFERENCES_DIRECTORY,\n commit: {\n add: DEFAULT_ADD,\n cached: DEFAULT_CACHED,\n sendit: DEFAULT_SENDIT_MODE,\n interactive: DEFAULT_INTERACTIVE_MODE,\n amend: DEFAULT_AMEND_MODE,\n messageLimit: DEFAULT_MESSAGE_LIMIT,\n skipFileCheck: false,\n maxDiffBytes: DEFAULT_MAX_DIFF_BYTES,\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n },\n release: {\n from: DEFAULT_FROM_COMMIT_ALIAS,\n to: DEFAULT_TO_COMMIT_ALIAS,\n messageLimit: DEFAULT_MESSAGE_LIMIT,\n interactive: DEFAULT_INTERACTIVE_MODE,\n maxDiffBytes: DEFAULT_MAX_DIFF_BYTES,\n noMilestones: false,\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n },\n audioCommit: {\n maxRecordingTime: 300, // 5 minutes default\n audioDevice: undefined, // Auto-detect by default\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n },\n review: {\n includeCommitHistory: true,\n includeRecentDiffs: true,\n includeReleaseNotes: false,\n includeGithubIssues: true,\n commitHistoryLimit: 10,\n diffHistoryLimit: 5,\n releaseNotesLimit: 3,\n githubIssuesLimit: 20,\n sendit: DEFAULT_SENDIT_MODE,\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n },\n audioReview: {\n includeCommitHistory: true,\n includeRecentDiffs: true,\n includeReleaseNotes: false,\n includeGithubIssues: true,\n commitHistoryLimit: 10,\n diffHistoryLimit: 5,\n releaseNotesLimit: 3,\n githubIssuesLimit: 20,\n sendit: DEFAULT_SENDIT_MODE,\n maxRecordingTime: 300, // 5 minutes default\n audioDevice: undefined, // Auto-detect by default\n directory: undefined, // No default directory\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n },\n publish: {\n mergeMethod: DEFAULT_MERGE_METHOD,\n from: DEFAULT_FROM_COMMIT_ALIAS,\n targetVersion: 'patch',\n interactive: DEFAULT_INTERACTIVE_MODE,\n requiredEnvVars: ['GITHUB_TOKEN', 'OPENAI_API_KEY'],\n linkWorkspacePackages: true,\n unlinkWorkspacePackages: true,\n sendit: DEFAULT_SENDIT_MODE,\n targetBranch: 'main',\n noMilestones: false,\n checksTimeout: 3600000, // 1 hour default for PR checks\n releaseWorkflowsTimeout: 1800000, // 30 minutes default for release workflows\n },\n link: {\n scopeRoots: {},\n dryRun: false,\n packageArgument: undefined,\n externals: [],\n },\n unlink: {\n scopeRoots: {},\n workspaceFile: undefined,\n dryRun: false,\n cleanNodeModules: false,\n packageArgument: undefined,\n externals: [],\n },\n tree: {\n directories: undefined,\n exclude: undefined,\n startFrom: undefined,\n stopAt: undefined,\n cmd: undefined,\n\n builtInCommand: undefined,\n continue: false,\n packageArgument: undefined,\n cleanNodeModules: false,\n externals: [],\n },\n development: {\n targetVersion: 'patch',\n noMilestones: false,\n },\n versions: {\n subcommand: undefined,\n directories: undefined,\n },\n excludedPatterns: DEFAULT_EXCLUDED_PATTERNS,\n};\n"],"names":["VERSION","PROGRAM_NAME","DEFAULT_OVERRIDES","DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS","DEFAULT_VERBOSE","DEFAULT_DRY_RUN","DEFAULT_DEBUG","DEFAULT_MODEL","DEFAULT_OPENAI_REASONING","DEFAULT_OPENAI_MAX_OUTPUT_TOKENS","DEFAULT_OUTPUT_DIRECTORY","DEFAULT_GIT_COMMAND_MAX_BUFFER","DEFAULT_CONTEXT_DIRECTORIES","DEFAULT_CONFIG_DIR","DEFAULT_PREFERENCES_DIRECTORY","path","join","os","homedir","DEFAULT_FROM_COMMIT_ALIAS","DEFAULT_TO_COMMIT_ALIAS","DEFAULT_ADD","DEFAULT_CACHED","DEFAULT_SENDIT_MODE","DEFAULT_INTERACTIVE_MODE","DEFAULT_AMEND_MODE","DEFAULT_MESSAGE_LIMIT","DEFAULT_MAX_DIFF_BYTES","DEFAULT_MERGE_METHOD","DEFAULT_EXCLUDED_PATTERNS","COMMAND_COMMIT","COMMAND_AUDIO_COMMIT","COMMAND_SELECT_AUDIO","COMMAND_RELEASE","COMMAND_REVIEW","COMMAND_AUDIO_REVIEW","COMMAND_PUBLISH","COMMAND_TREE","COMMAND_LINK","COMMAND_UNLINK","COMMAND_CLEAN","COMMAND_DEVELOPMENT","COMMAND_VERSIONS","COMMAND_CHECK_CONFIG","COMMAND_INIT_CONFIG","ALLOWED_COMMANDS","DEFAULT_COMMAND","KODRDRIV_DEFAULTS","dryRun","verbose","debug","overrides","model","openaiReasoning","openaiMaxOutputTokens","contextDirectories","commandName","configDirectory","outputDirectory","preferencesDirectory","commit","add","cached","sendit","interactive","amend","messageLimit","skipFileCheck","maxDiffBytes","release","from","to","noMilestones","audioCommit","maxRecordingTime","audioDevice","undefined","review","includeCommitHistory","includeRecentDiffs","includeReleaseNotes","includeGithubIssues","commitHistoryLimit","diffHistoryLimit","releaseNotesLimit","githubIssuesLimit","audioReview","directory","publish","mergeMethod","targetVersion","requiredEnvVars","linkWorkspacePackages","unlinkWorkspacePackages","targetBranch","checksTimeout","releaseWorkflowsTimeout","link","scopeRoots","packageArgument","externals","unlink","workspaceFile","cleanNodeModules","tree","directories","exclude","startFrom","stopAt","cmd","builtInCommand","continue","development","versions","subcommand","excludedPatterns"],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["import { MergeMethod } from './types';\nimport os from 'os';\nimport path from 'path';\n\nexport const VERSION = '__VERSION__ (__GIT_BRANCH__/__GIT_COMMIT__ __GIT_TAGS__ __GIT_COMMIT_DATE__) __SYSTEM_INFO__';\nexport const PROGRAM_NAME = 'kodrdriv';\nexport const DEFAULT_CHARACTER_ENCODING = 'utf-8';\nexport const DEFAULT_BINARY_TO_TEXT_ENCODING = 'base64';\nexport const DEFAULT_DIFF = true;\nexport const DEFAULT_LOG = false;\nexport const DEFAULT_OVERRIDES = false;\nexport const DATE_FORMAT_MONTH_DAY = 'MM-DD';\nexport const DATE_FORMAT_YEAR = 'YYYY';\nexport const DATE_FORMAT_YEAR_MONTH = 'YYYY-MM';\nexport const DATE_FORMAT_YEAR_MONTH_DAY = 'YYYY-MM-DD';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_SLASH = 'YYYY/MM/DD';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES = 'YYYY-MM-DD-HHmm';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS = 'YYYY-MM-DD-HHmmss';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS = 'YYYY-MM-DD-HHmmss.SSS';\nexport const DATE_FORMAT_SHORT_TIMESTAMP = 'YYMMdd-HHmm';\nexport const DATE_FORMAT_MONTH = 'MM';\nexport const DATE_FORMAT_DAY = 'DD';\nexport const DATE_FORMAT_HOURS = 'HHmm';\nexport const DATE_FORMAT_MINUTES = 'mm';\nexport const DATE_FORMAT_SECONDS = 'ss';\nexport const DATE_FORMAT_MILLISECONDS = 'SSS';\nexport const DEFAULT_VERBOSE = false;\nexport const DEFAULT_DRY_RUN = false;\nexport const DEFAULT_DEBUG = false;\nexport const DEFAULT_MODEL = 'gpt-4o-mini';\nexport const DEFAULT_MODEL_STRONG = 'gpt-4o';\nexport const DEFAULT_OPENAI_REASONING = 'low';\nexport const DEFAULT_OPENAI_MAX_OUTPUT_TOKENS = 10000;\nexport const DEFAULT_OUTPUT_DIRECTORY = 'output/kodrdriv';\n\n// Buffer size for git commands that may produce large output (like git log)\nexport const DEFAULT_GIT_COMMAND_MAX_BUFFER = 50 * 1024 * 1024; // 50MB\n\nexport const DEFAULT_CONTEXT_DIRECTORIES: string[] = [];\n\nexport const DEFAULT_CONFIG_DIR = '.kodrdriv';\nexport const DEFAULT_PREFERENCES_DIRECTORY = path.join(os.homedir(), '.kodrdriv');\n\nexport const DEFAULT_FROM_COMMIT_ALIAS = 'main';\nexport const DEFAULT_TO_COMMIT_ALIAS = 'HEAD';\n\nexport const DEFAULT_ADD = false;\nexport const DEFAULT_CACHED = false;\nexport const DEFAULT_SENDIT_MODE = false;\nexport const DEFAULT_INTERACTIVE_MODE = false;\nexport const DEFAULT_AMEND_MODE = false;\nexport const DEFAULT_MESSAGE_LIMIT = 50;\nexport const DEFAULT_MAX_DIFF_BYTES = 20480; // 20KB limit per file\n\nexport const DEFAULT_MERGE_METHOD: MergeMethod = 'squash';\n\nexport const DEFAULT_EXCLUDED_PATTERNS = [\n 'node_modules', 'package-lock.json', 'yarn.lock', 'bun.lockb',\n 'composer.lock', 'Cargo.lock', 'Gemfile.lock',\n 'dist', 'build', 'out', '.next', '.nuxt', 'coverage',\n '.vscode', '.idea', '.DS_Store', '.git', '.gitignore',\n 'logs', 'tmp', '.cache', '*.log', '.env', '.env.*',\n '*.pem', '*.crt', '*.key', '*.sqlite', '*.db',\n '*.zip', '*.tar', '*.gz', '*.exe', '*.bin'\n];\n\nexport const COMMAND_COMMIT = 'commit';\nexport const COMMAND_AUDIO_COMMIT = 'audio-commit';\nexport const COMMAND_SELECT_AUDIO = 'select-audio';\nexport const COMMAND_RELEASE = 'release';\nexport const COMMAND_REVIEW = 'review';\nexport const COMMAND_AUDIO_REVIEW = 'audio-review';\nexport const COMMAND_PUBLISH = 'publish';\nexport const COMMAND_TREE = 'tree';\nexport const COMMAND_LINK = 'link';\nexport const COMMAND_UNLINK = 'unlink';\nexport const COMMAND_CLEAN = 'clean';\nexport const COMMAND_DEVELOPMENT = 'development';\nexport const COMMAND_VERSIONS = 'versions';\nexport const COMMAND_UPDATES = 'updates';\nexport const COMMAND_CHECK_CONFIG = 'check-config';\nexport const COMMAND_INIT_CONFIG = 'init-config';\n\nexport const ALLOWED_COMMANDS = [\n COMMAND_COMMIT,\n COMMAND_AUDIO_COMMIT,\n COMMAND_SELECT_AUDIO,\n COMMAND_RELEASE,\n COMMAND_REVIEW,\n COMMAND_AUDIO_REVIEW,\n COMMAND_PUBLISH,\n COMMAND_TREE,\n COMMAND_LINK,\n COMMAND_UNLINK,\n COMMAND_CLEAN,\n COMMAND_DEVELOPMENT,\n COMMAND_VERSIONS,\n COMMAND_UPDATES\n];\n\nexport const DEFAULT_COMMAND = COMMAND_COMMIT;\n\nexport const DEFAULT_INSTRUCTIONS_DIR = `instructions`;\n\nexport const DEFAULT_PERSONA_DIR = `personas`;\n\nexport const DEFAULT_INSTRUCTIONS_COMMIT_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/commit.md`;\nexport const DEFAULT_INSTRUCTIONS_RELEASE_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/release.md`;\nexport const DEFAULT_INSTRUCTIONS_REVIEW_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/review.md`;\n\nexport const DEFAULT_PERSONA_RELEASER_FILE = `${DEFAULT_PERSONA_DIR}/releaser.md`;\nexport const DEFAULT_PERSONA_YOU_FILE = `${DEFAULT_PERSONA_DIR}/you.md`;\n\n// Default instructions for each persona\nexport const DEFAULT_INSTRUCTIONS_MAP = {\n [COMMAND_COMMIT]: DEFAULT_INSTRUCTIONS_COMMIT_FILE,\n [COMMAND_AUDIO_COMMIT]: DEFAULT_INSTRUCTIONS_COMMIT_FILE, // Reuse commit instructions\n [COMMAND_RELEASE]: DEFAULT_INSTRUCTIONS_RELEASE_FILE,\n [COMMAND_REVIEW]: DEFAULT_INSTRUCTIONS_REVIEW_FILE, // Reuse audio-review instructions for now\n [COMMAND_AUDIO_REVIEW]: DEFAULT_INSTRUCTIONS_REVIEW_FILE,\n};\n\n// Default personas for each command\nexport const DEFAULT_PERSONA_MAP = {\n [COMMAND_COMMIT]: DEFAULT_PERSONA_YOU_FILE,\n [COMMAND_AUDIO_COMMIT]: DEFAULT_PERSONA_YOU_FILE, // Use You persona\n [COMMAND_RELEASE]: DEFAULT_PERSONA_RELEASER_FILE,\n [COMMAND_REVIEW]: DEFAULT_PERSONA_YOU_FILE, // Use You persona\n [COMMAND_AUDIO_REVIEW]: DEFAULT_PERSONA_YOU_FILE,\n};\n\n// Used by child process to create paths\nexport const DEFAULT_PATH_SEPARATOR = '/';\n\n// Used by util/general for file filtering\nexport const DEFAULT_IGNORE_PATTERNS = [\n 'node_modules/**',\n '**/*.log',\n '.git/**',\n 'dist/**',\n 'build/**',\n 'coverage/**',\n '.DS_Store',\n '*.tmp',\n '*.cache',\n];\n\n// Used by util/storage for directory names\nexport const DEFAULT_DIRECTORY_PREFIX = '.kodrdriv';\n\n// Used by other commands but not exposed in CLI\nexport const INTERNAL_DEFAULT_OUTPUT_FILE = 'output.txt';\n\nexport const INTERNAL_DATETIME_FORMAT = 'YYYY-MM-DD_HH-mm-ss';\n\n// Define defaults in one place\nexport const KODRDRIV_DEFAULTS = {\n dryRun: DEFAULT_DRY_RUN,\n verbose: DEFAULT_VERBOSE,\n debug: DEFAULT_DEBUG,\n overrides: DEFAULT_OVERRIDES,\n model: DEFAULT_MODEL,\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n contextDirectories: DEFAULT_CONTEXT_DIRECTORIES,\n commandName: DEFAULT_COMMAND,\n configDirectory: DEFAULT_CONFIG_DIR,\n outputDirectory: DEFAULT_OUTPUT_DIRECTORY,\n preferencesDirectory: DEFAULT_PREFERENCES_DIRECTORY,\n commit: {\n add: DEFAULT_ADD,\n cached: DEFAULT_CACHED,\n sendit: DEFAULT_SENDIT_MODE,\n interactive: DEFAULT_INTERACTIVE_MODE,\n amend: DEFAULT_AMEND_MODE,\n messageLimit: DEFAULT_MESSAGE_LIMIT,\n skipFileCheck: false,\n maxDiffBytes: DEFAULT_MAX_DIFF_BYTES,\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n },\n release: {\n from: DEFAULT_FROM_COMMIT_ALIAS,\n to: DEFAULT_TO_COMMIT_ALIAS,\n messageLimit: DEFAULT_MESSAGE_LIMIT,\n interactive: DEFAULT_INTERACTIVE_MODE,\n maxDiffBytes: DEFAULT_MAX_DIFF_BYTES,\n noMilestones: false,\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n },\n audioCommit: {\n maxRecordingTime: 300, // 5 minutes default\n audioDevice: undefined, // Auto-detect by default\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n },\n review: {\n includeCommitHistory: true,\n includeRecentDiffs: true,\n includeReleaseNotes: false,\n includeGithubIssues: true,\n commitHistoryLimit: 10,\n diffHistoryLimit: 5,\n releaseNotesLimit: 3,\n githubIssuesLimit: 20,\n sendit: DEFAULT_SENDIT_MODE,\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n },\n audioReview: {\n includeCommitHistory: true,\n includeRecentDiffs: true,\n includeReleaseNotes: false,\n includeGithubIssues: true,\n commitHistoryLimit: 10,\n diffHistoryLimit: 5,\n releaseNotesLimit: 3,\n githubIssuesLimit: 20,\n sendit: DEFAULT_SENDIT_MODE,\n maxRecordingTime: 300, // 5 minutes default\n audioDevice: undefined, // Auto-detect by default\n directory: undefined, // No default directory\n openaiReasoning: DEFAULT_OPENAI_REASONING as 'low' | 'medium' | 'high',\n openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,\n },\n publish: {\n mergeMethod: DEFAULT_MERGE_METHOD,\n from: DEFAULT_FROM_COMMIT_ALIAS,\n targetVersion: 'patch',\n interactive: DEFAULT_INTERACTIVE_MODE,\n requiredEnvVars: ['GITHUB_TOKEN', 'OPENAI_API_KEY'],\n linkWorkspacePackages: true,\n unlinkWorkspacePackages: true,\n sendit: DEFAULT_SENDIT_MODE,\n targetBranch: 'main',\n noMilestones: false,\n checksTimeout: 3600000, // 1 hour default for PR checks\n releaseWorkflowsTimeout: 1800000, // 30 minutes default for release workflows\n },\n link: {\n scopeRoots: {},\n dryRun: false,\n packageArgument: undefined,\n externals: [],\n },\n unlink: {\n scopeRoots: {},\n workspaceFile: undefined,\n dryRun: false,\n cleanNodeModules: false,\n packageArgument: undefined,\n externals: [],\n },\n tree: {\n directories: undefined,\n exclude: undefined,\n startFrom: undefined,\n stopAt: undefined,\n cmd: undefined,\n\n builtInCommand: undefined,\n continue: false,\n packageArgument: undefined,\n cleanNodeModules: false,\n externals: [],\n },\n development: {\n targetVersion: 'patch',\n noMilestones: false,\n },\n versions: {\n subcommand: undefined,\n directories: undefined,\n },\n updates: {\n scope: undefined,\n directories: undefined,\n },\n excludedPatterns: DEFAULT_EXCLUDED_PATTERNS,\n branches: {\n working: {\n targetBranch: 'main',\n developmentBranch: true,\n version: {\n type: 'prerelease' as const,\n increment: true,\n incrementLevel: 'patch' as const,\n tag: 'dev'\n }\n },\n main: {\n version: {\n type: 'release' as const\n }\n }\n }\n};\n"],"names":["VERSION","PROGRAM_NAME","DEFAULT_OVERRIDES","DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS","DEFAULT_VERBOSE","DEFAULT_DRY_RUN","DEFAULT_DEBUG","DEFAULT_MODEL","DEFAULT_OPENAI_REASONING","DEFAULT_OPENAI_MAX_OUTPUT_TOKENS","DEFAULT_OUTPUT_DIRECTORY","DEFAULT_GIT_COMMAND_MAX_BUFFER","DEFAULT_CONTEXT_DIRECTORIES","DEFAULT_CONFIG_DIR","DEFAULT_PREFERENCES_DIRECTORY","path","join","os","homedir","DEFAULT_FROM_COMMIT_ALIAS","DEFAULT_TO_COMMIT_ALIAS","DEFAULT_ADD","DEFAULT_CACHED","DEFAULT_SENDIT_MODE","DEFAULT_INTERACTIVE_MODE","DEFAULT_AMEND_MODE","DEFAULT_MESSAGE_LIMIT","DEFAULT_MAX_DIFF_BYTES","DEFAULT_MERGE_METHOD","DEFAULT_EXCLUDED_PATTERNS","COMMAND_COMMIT","COMMAND_AUDIO_COMMIT","COMMAND_SELECT_AUDIO","COMMAND_RELEASE","COMMAND_REVIEW","COMMAND_AUDIO_REVIEW","COMMAND_PUBLISH","COMMAND_TREE","COMMAND_LINK","COMMAND_UNLINK","COMMAND_CLEAN","COMMAND_DEVELOPMENT","COMMAND_VERSIONS","COMMAND_UPDATES","COMMAND_CHECK_CONFIG","COMMAND_INIT_CONFIG","ALLOWED_COMMANDS","DEFAULT_COMMAND","KODRDRIV_DEFAULTS","dryRun","verbose","debug","overrides","model","openaiReasoning","openaiMaxOutputTokens","contextDirectories","commandName","configDirectory","outputDirectory","preferencesDirectory","commit","add","cached","sendit","interactive","amend","messageLimit","skipFileCheck","maxDiffBytes","release","from","to","noMilestones","audioCommit","maxRecordingTime","audioDevice","undefined","review","includeCommitHistory","includeRecentDiffs","includeReleaseNotes","includeGithubIssues","commitHistoryLimit","diffHistoryLimit","releaseNotesLimit","githubIssuesLimit","audioReview","directory","publish","mergeMethod","targetVersion","requiredEnvVars","linkWorkspacePackages","unlinkWorkspacePackages","targetBranch","checksTimeout","releaseWorkflowsTimeout","link","scopeRoots","packageArgument","externals","unlink","workspaceFile","cleanNodeModules","tree","directories","exclude","startFrom","stopAt","cmd","builtInCommand","continue","development","versions","subcommand","updates","scope","excludedPatterns","branches","working","developmentBranch","version","type","increment","incrementLevel","tag","main"],"mappings":"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"}
@@ -156,6 +156,203 @@ const calculateTargetVersion = (currentVersion, targetVersion)=>{
156
156
  return targetVersion.startsWith('v') ? targetVersion.slice(1) : targetVersion;
157
157
  }
158
158
  };
159
+ /**
160
+ * Increment prerelease version with a specific tag
161
+ * Examples:
162
+ * - incrementPrereleaseVersion("1.2.3-dev.0", "dev") => "1.2.3-dev.1"
163
+ * - incrementPrereleaseVersion("1.2.3", "dev") => "1.2.3-dev.0"
164
+ * - incrementPrereleaseVersion("1.2.3-dev.5", "test") => "1.2.3-test.0"
165
+ */ const incrementPrereleaseVersion = (version, tag)=>{
166
+ const cleanVersion = version.startsWith('v') ? version.slice(1) : version;
167
+ // Split on dots but only use first 3 parts for major.minor.patch
168
+ // This handles cases like "1.2.3-dev.5" correctly
169
+ const dotParts = cleanVersion.split('.');
170
+ if (dotParts.length < 3) {
171
+ throw new Error(`Invalid version string: ${version}`);
172
+ }
173
+ const major = dotParts[0];
174
+ const minor = dotParts[1];
175
+ // Reconstruct the patch part - everything after the second dot
176
+ const patchAndPrerelease = dotParts.slice(2).join('.');
177
+ const patchComponents = patchAndPrerelease.split('-');
178
+ const patchNumber = patchComponents[0];
179
+ if (patchComponents.length > 1) {
180
+ // Already has prerelease (e.g., "3-dev.0" or "3-test.2")
181
+ const prereleaseString = patchComponents.slice(1).join('-'); // Handle multiple dashes
182
+ const prereleaseComponents = prereleaseString.split('.');
183
+ const existingTag = prereleaseComponents[0];
184
+ const existingPrereleaseVersion = prereleaseComponents[1];
185
+ if (existingTag === tag) {
186
+ // Same tag, increment the prerelease version
187
+ const prereleaseNumber = parseInt(existingPrereleaseVersion) || 0;
188
+ return `${major}.${minor}.${patchNumber}-${tag}.${prereleaseNumber + 1}`;
189
+ } else {
190
+ // Different tag, start at 0
191
+ return `${major}.${minor}.${patchNumber}-${tag}.0`;
192
+ }
193
+ } else {
194
+ // No prerelease yet, add it
195
+ return `${major}.${minor}.${patchNumber}-${tag}.0`;
196
+ }
197
+ };
198
+ /**
199
+ * Convert prerelease version to release version
200
+ * Examples:
201
+ * - convertToReleaseVersion("1.2.3-dev.5") => "1.2.3"
202
+ * - convertToReleaseVersion("1.2.3-test.2") => "1.2.3"
203
+ * - convertToReleaseVersion("1.2.3") => "1.2.3"
204
+ */ const convertToReleaseVersion = (version)=>{
205
+ const cleanVersion = version.startsWith('v') ? version.slice(1) : version;
206
+ // Split on dots but only use first 3 parts for major.minor.patch
207
+ const dotParts = cleanVersion.split('.');
208
+ if (dotParts.length < 3) {
209
+ throw new Error(`Invalid version string: ${version}`);
210
+ }
211
+ const major = dotParts[0];
212
+ const minor = dotParts[1];
213
+ // Reconstruct the patch part - everything after the second dot
214
+ const patchAndPrerelease = dotParts.slice(2).join('.');
215
+ const patchComponents = patchAndPrerelease.split('-');
216
+ const patchNumber = patchComponents[0];
217
+ return `${major}.${minor}.${patchNumber}`;
218
+ };
219
+ /**
220
+ * Get version from a specific branch's package.json
221
+ */ const getVersionFromBranch = async (branchName)=>{
222
+ const { runSecure, validateGitRef } = await import('./child.js');
223
+ const { safeJsonParse, validatePackageJson } = await import('./validation.js');
224
+ try {
225
+ // Validate branch name to prevent injection
226
+ if (!validateGitRef(branchName)) {
227
+ throw new Error(`Invalid branch name: ${branchName}`);
228
+ }
229
+ const { stdout } = await runSecure('git', [
230
+ 'show',
231
+ `${branchName}:package.json`
232
+ ]);
233
+ const packageJson = safeJsonParse(stdout, 'package.json');
234
+ const validated = validatePackageJson(packageJson, 'package.json');
235
+ return validated.version;
236
+ } catch {
237
+ // Return null if we can't get the version (branch may not exist or no package.json)
238
+ return null;
239
+ }
240
+ };
241
+ /**
242
+ * Calculate target version based on branch configuration
243
+ * SEMANTICS: The version config specifies what version should be ON the target branch
244
+ */ const calculateBranchDependentVersion = async (currentVersion, currentBranch, branchesConfig, targetBranch)=>{
245
+ const { getLogger } = await import('../logging.js');
246
+ const logger = getLogger();
247
+ // Look up the source branch to find the target branch
248
+ if (!branchesConfig || !branchesConfig[currentBranch]) {
249
+ // Use default configuration from constants
250
+ const { KODRDRIV_DEFAULTS } = await import('../constants.js');
251
+ const defaultConfig = KODRDRIV_DEFAULTS.branches;
252
+ if (defaultConfig && defaultConfig[currentBranch]) {
253
+ const sourceConfig = defaultConfig[currentBranch];
254
+ const finalTargetBranch = sourceConfig.targetBranch || targetBranch || 'main';
255
+ // Look at target branch's version config to determine what version it should have
256
+ const targetConfig = defaultConfig[finalTargetBranch];
257
+ logger.info(`šŸŽÆ Using default branch configuration: ${currentBranch} → ${finalTargetBranch}`);
258
+ if (!(targetConfig === null || targetConfig === void 0 ? void 0 : targetConfig.version)) {
259
+ const defaultVersion = incrementPatchVersion(currentVersion);
260
+ logger.debug(`No version config for target branch '${finalTargetBranch}', using default increment`);
261
+ return {
262
+ version: defaultVersion,
263
+ targetBranch: finalTargetBranch
264
+ };
265
+ }
266
+ return calculateVersionFromTargetConfig(currentVersion, finalTargetBranch, targetConfig.version, logger);
267
+ }
268
+ // No config at all, use traditional defaults
269
+ const defaultTargetBranch = targetBranch || 'main';
270
+ const defaultVersion = incrementPatchVersion(currentVersion);
271
+ logger.debug(`No branch-specific config found for '${currentBranch}', using defaults`);
272
+ return {
273
+ version: defaultVersion,
274
+ targetBranch: defaultTargetBranch
275
+ };
276
+ }
277
+ const sourceConfig = branchesConfig[currentBranch];
278
+ const finalTargetBranch = sourceConfig.targetBranch || targetBranch || 'main';
279
+ // Look at target branch's version config to determine what version it should have
280
+ const targetConfig = branchesConfig[finalTargetBranch];
281
+ logger.info(`šŸŽÆ Using branch-dependent targeting: ${currentBranch} → ${finalTargetBranch}`);
282
+ if (!(targetConfig === null || targetConfig === void 0 ? void 0 : targetConfig.version)) {
283
+ // No version config for target, use default increment
284
+ const defaultVersion = incrementPatchVersion(currentVersion);
285
+ logger.debug(`No version config for target branch '${finalTargetBranch}', using default increment`);
286
+ return {
287
+ version: defaultVersion,
288
+ targetBranch: finalTargetBranch
289
+ };
290
+ }
291
+ return calculateVersionFromTargetConfig(currentVersion, finalTargetBranch, targetConfig.version, logger);
292
+ };
293
+ /**
294
+ * Calculate version based on target branch configuration
295
+ */ const calculateVersionFromTargetConfig = async (currentVersion, targetBranch, versionConfig, logger)=>{
296
+ if (versionConfig.type === 'release') {
297
+ // Convert to release version (remove prerelease tags)
298
+ const releaseVersion = convertToReleaseVersion(currentVersion);
299
+ logger.info(`šŸ“¦ Converting to release version: ${currentVersion} → ${releaseVersion}`);
300
+ return {
301
+ version: releaseVersion,
302
+ targetBranch
303
+ };
304
+ } else if (versionConfig.type === 'prerelease') {
305
+ if (!versionConfig.tag) {
306
+ throw new Error(`Prerelease version type requires a tag in branch configuration`);
307
+ }
308
+ const tag = versionConfig.tag;
309
+ if (versionConfig.increment) {
310
+ // Check if there's already a version with this tag in the target branch
311
+ const targetBranchVersion = await getVersionFromBranch(targetBranch);
312
+ if (targetBranchVersion) {
313
+ // Use the target branch version as the base and increment
314
+ const newVersion = incrementPrereleaseVersion(targetBranchVersion, tag);
315
+ logger.info(`šŸ“¦ Incrementing prerelease in target branch: ${targetBranchVersion} → ${newVersion}`);
316
+ return {
317
+ version: newVersion,
318
+ targetBranch
319
+ };
320
+ } else {
321
+ // No version in target branch, use current version as base
322
+ const newVersion = incrementPrereleaseVersion(currentVersion, tag);
323
+ logger.info(`šŸ“¦ Creating new prerelease version: ${currentVersion} → ${newVersion}`);
324
+ return {
325
+ version: newVersion,
326
+ targetBranch
327
+ };
328
+ }
329
+ } else {
330
+ // Just add/change the prerelease tag without incrementing
331
+ const baseVersion = convertToReleaseVersion(currentVersion);
332
+ const newVersion = `${baseVersion}-${tag}.0`;
333
+ logger.info(`šŸ“¦ Setting prerelease tag: ${currentVersion} → ${newVersion}`);
334
+ return {
335
+ version: newVersion,
336
+ targetBranch
337
+ };
338
+ }
339
+ }
340
+ throw new Error(`Invalid version type: ${versionConfig.type}`);
341
+ };
342
+ /**
343
+ * Find the development branch from branches configuration
344
+ * Returns the branch marked with developmentBranch: true
345
+ */ const findDevelopmentBranch = (branchesConfig)=>{
346
+ if (!branchesConfig || typeof branchesConfig !== 'object') {
347
+ return null;
348
+ }
349
+ for (const [branchName, branchConfig] of Object.entries(branchesConfig)){
350
+ if (branchConfig && typeof branchConfig === 'object' && branchConfig.developmentBranch === true) {
351
+ return branchName;
352
+ }
353
+ }
354
+ return null;
355
+ };
159
356
  const checkIfTagExists = async (tagName)=>{
160
357
  const { runSecure, validateGitRef } = await import('./child.js');
161
358
  try {
@@ -182,7 +379,7 @@ const confirmVersionInteractively = async (currentVersion, proposedVersion, targ
182
379
  logger.info(`\nšŸ“¦ Version Confirmation:`);
183
380
  logger.info(` Current version: ${currentVersion}`);
184
381
  logger.info(` Proposed version: ${proposedVersion}`);
185
- {
382
+ if (targetVersionInput) {
186
383
  logger.info(` Target input: ${targetVersionInput}`);
187
384
  }
188
385
  const choices = [
@@ -306,5 +503,5 @@ const getTimestampedArchivedTranscriptFilename = ()=>{
306
503
  }
307
504
  };
308
505
 
309
- export { archiveAudio, calculateTargetVersion, checkIfTagExists, confirmVersionInteractively, getOutputPath, getTimestampedArchivedAudioFilename, getTimestampedArchivedTranscriptFilename, getTimestampedAudioFilename, getTimestampedCommitFilename, getTimestampedFilename, getTimestampedReleaseNotesFilename, getTimestampedRequestFilename, getTimestampedResponseFilename, getTimestampedReviewFilename, getTimestampedReviewNotesFilename, incrementMajorVersion, incrementMinorVersion, incrementPatchVersion, stringifyJSON, validateVersionString };
506
+ export { archiveAudio, calculateBranchDependentVersion, calculateTargetVersion, checkIfTagExists, confirmVersionInteractively, convertToReleaseVersion, findDevelopmentBranch, getOutputPath, getTimestampedArchivedAudioFilename, getTimestampedArchivedTranscriptFilename, getTimestampedAudioFilename, getTimestampedCommitFilename, getTimestampedFilename, getTimestampedReleaseNotesFilename, getTimestampedRequestFilename, getTimestampedResponseFilename, getTimestampedReviewFilename, getTimestampedReviewNotesFilename, getVersionFromBranch, incrementMajorVersion, incrementMinorVersion, incrementPatchVersion, incrementPrereleaseVersion, stringifyJSON, validateVersionString };
310
507
  //# sourceMappingURL=general.js.map