@eldrforge/kodrdriv 1.2.1 → 1.2.2
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/arguments.js +60 -9
- package/dist/arguments.js.map +1 -1
- package/dist/commands/commit.js +16 -6
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/release.js +9 -3
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/review.js +354 -143
- package/dist/commands/review.js.map +1 -1
- package/dist/constants.js +21 -7
- package/dist/constants.js.map +1 -1
- package/dist/content/issues.js +1 -1
- package/dist/prompt/commit.js +6 -0
- package/dist/prompt/commit.js.map +1 -1
- package/dist/prompt/instructions/review.md +13 -3
- package/dist/types.js +44 -4
- package/dist/types.js.map +1 -1
- package/dist/util/openai.js +70 -9
- package/dist/util/openai.js.map +1 -1
- package/dist/util/validation.js +24 -1
- package/dist/util/validation.js.map +1 -1
- package/package.json +2 -2
- package/test-review-flow.sh +15 -0
- package/test-sort-files/alpha.md +3 -0
- package/test-sort-files/middle.txt +3 -0
- package/test-sort-files/zebra.txt +3 -0
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.
|
|
4
|
+
const VERSION = '1.2.2 (HEAD/3638780 T:v1.2.2 2025-08-14 07:39:50 -0700) linux x64 v22.18.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';
|
|
@@ -9,6 +9,8 @@ const DEFAULT_VERBOSE = false;
|
|
|
9
9
|
const DEFAULT_DRY_RUN = false;
|
|
10
10
|
const DEFAULT_DEBUG = false;
|
|
11
11
|
const DEFAULT_MODEL = 'gpt-4o-mini';
|
|
12
|
+
const DEFAULT_OPENAI_REASONING = 'low';
|
|
13
|
+
const DEFAULT_OPENAI_MAX_OUTPUT_TOKENS = 10000;
|
|
12
14
|
const DEFAULT_OUTPUT_DIRECTORY = 'output/kodrdriv';
|
|
13
15
|
// Buffer size for git commands that may produce large output (like git log)
|
|
14
16
|
const DEFAULT_GIT_COMMAND_MAX_BUFFER = 50 * 1024 * 1024; // 50MB
|
|
@@ -99,6 +101,8 @@ const KODRDRIV_DEFAULTS = {
|
|
|
99
101
|
debug: DEFAULT_DEBUG,
|
|
100
102
|
overrides: DEFAULT_OVERRIDES,
|
|
101
103
|
model: DEFAULT_MODEL,
|
|
104
|
+
openaiReasoning: DEFAULT_OPENAI_REASONING,
|
|
105
|
+
openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS,
|
|
102
106
|
contextDirectories: DEFAULT_CONTEXT_DIRECTORIES,
|
|
103
107
|
commandName: DEFAULT_COMMAND,
|
|
104
108
|
configDirectory: DEFAULT_CONFIG_DIR,
|
|
@@ -112,7 +116,9 @@ const KODRDRIV_DEFAULTS = {
|
|
|
112
116
|
amend: DEFAULT_AMEND_MODE,
|
|
113
117
|
messageLimit: DEFAULT_MESSAGE_LIMIT,
|
|
114
118
|
skipFileCheck: false,
|
|
115
|
-
maxDiffBytes: DEFAULT_MAX_DIFF_BYTES
|
|
119
|
+
maxDiffBytes: DEFAULT_MAX_DIFF_BYTES,
|
|
120
|
+
openaiReasoning: DEFAULT_OPENAI_REASONING,
|
|
121
|
+
openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS
|
|
116
122
|
},
|
|
117
123
|
release: {
|
|
118
124
|
from: DEFAULT_FROM_COMMIT_ALIAS,
|
|
@@ -120,11 +126,15 @@ const KODRDRIV_DEFAULTS = {
|
|
|
120
126
|
messageLimit: DEFAULT_MESSAGE_LIMIT,
|
|
121
127
|
interactive: DEFAULT_INTERACTIVE_MODE,
|
|
122
128
|
maxDiffBytes: DEFAULT_MAX_DIFF_BYTES,
|
|
123
|
-
noMilestones: false
|
|
129
|
+
noMilestones: false,
|
|
130
|
+
openaiReasoning: DEFAULT_OPENAI_REASONING,
|
|
131
|
+
openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS
|
|
124
132
|
},
|
|
125
133
|
audioCommit: {
|
|
126
134
|
maxRecordingTime: 300,
|
|
127
|
-
audioDevice: undefined
|
|
135
|
+
audioDevice: undefined,
|
|
136
|
+
openaiReasoning: DEFAULT_OPENAI_REASONING,
|
|
137
|
+
openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS
|
|
128
138
|
},
|
|
129
139
|
review: {
|
|
130
140
|
includeCommitHistory: true,
|
|
@@ -135,7 +145,9 @@ const KODRDRIV_DEFAULTS = {
|
|
|
135
145
|
diffHistoryLimit: 5,
|
|
136
146
|
releaseNotesLimit: 3,
|
|
137
147
|
githubIssuesLimit: 20,
|
|
138
|
-
sendit: DEFAULT_SENDIT_MODE
|
|
148
|
+
sendit: DEFAULT_SENDIT_MODE,
|
|
149
|
+
openaiReasoning: DEFAULT_OPENAI_REASONING,
|
|
150
|
+
openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS
|
|
139
151
|
},
|
|
140
152
|
audioReview: {
|
|
141
153
|
includeCommitHistory: true,
|
|
@@ -149,7 +161,9 @@ const KODRDRIV_DEFAULTS = {
|
|
|
149
161
|
sendit: DEFAULT_SENDIT_MODE,
|
|
150
162
|
maxRecordingTime: 300,
|
|
151
163
|
audioDevice: undefined,
|
|
152
|
-
directory: undefined
|
|
164
|
+
directory: undefined,
|
|
165
|
+
openaiReasoning: DEFAULT_OPENAI_REASONING,
|
|
166
|
+
openaiMaxOutputTokens: DEFAULT_OPENAI_MAX_OUTPUT_TOKENS
|
|
153
167
|
},
|
|
154
168
|
publish: {
|
|
155
169
|
mergeMethod: DEFAULT_MERGE_METHOD,
|
|
@@ -201,5 +215,5 @@ const KODRDRIV_DEFAULTS = {
|
|
|
201
215
|
excludedPatterns: DEFAULT_EXCLUDED_PATTERNS
|
|
202
216
|
};
|
|
203
217
|
|
|
204
|
-
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_OUTPUT_DIRECTORY, DEFAULT_OVERRIDES, DEFAULT_PREFERENCES_DIRECTORY, DEFAULT_SENDIT_MODE, DEFAULT_TO_COMMIT_ALIAS, DEFAULT_VERBOSE, KODRDRIV_DEFAULTS, PROGRAM_NAME, VERSION };
|
|
218
|
+
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 };
|
|
205
219
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -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_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 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 },\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 },\n audioCommit: {\n maxRecordingTime: 300, // 5 minutes default\n audioDevice: undefined, // Auto-detect by default\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 },\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 },\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 },\n link: {\n scopeRoots: {},\n dryRun: false,\n packageArgument: undefined,\n },\n unlink: {\n scopeRoots: {},\n workspaceFile: undefined,\n dryRun: false,\n cleanNodeModules: false,\n packageArgument: undefined,\n },\n tree: {\n directories: undefined,\n excludedPatterns: undefined,\n startFrom: undefined,\n stopAt: undefined,\n cmd: undefined,\n parallel: false,\n builtInCommand: undefined,\n continue: false,\n packageArgument: undefined,\n cleanNodeModules: false,\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_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","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","link","scopeRoots","packageArgument","unlink","workspaceFile","cleanNodeModules","tree","directories","excludedPatterns","startFrom","stopAt","cmd","parallel","builtInCommand","continue","development","versions","subcommand"],"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_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 },\n link: {\n scopeRoots: {},\n dryRun: false,\n packageArgument: undefined,\n },\n unlink: {\n scopeRoots: {},\n workspaceFile: undefined,\n dryRun: false,\n cleanNodeModules: false,\n packageArgument: undefined,\n },\n tree: {\n directories: undefined,\n excludedPatterns: undefined,\n startFrom: undefined,\n stopAt: undefined,\n cmd: undefined,\n parallel: false,\n builtInCommand: undefined,\n continue: false,\n packageArgument: undefined,\n cleanNodeModules: false,\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","link","scopeRoots","packageArgument","unlink","workspaceFile","cleanNodeModules","tree","directories","excludedPatterns","startFrom","stopAt","cmd","parallel","builtInCommand","continue","development","versions","subcommand"],"mappings":";;;AAIO,MAAMA,UAAU;AAChB,MAAMC,eAAe;AAKrB,MAAMC,oBAAoB;AAQ1B,MAAMC,gEAAgE;AAQtE,MAAMC,kBAAkB;AACxB,MAAMC,kBAAkB;AACxB,MAAMC,gBAAgB;AACtB,MAAMC,gBAAgB;AAEtB,MAAMC,2BAA2B;AACjC,MAAMC,mCAAmC;AACzC,MAAMC,2BAA2B;AAExC;MACaC,8BAAAA,GAAiC,EAAA,GAAK,IAAA,GAAO,KAAK;AAExD,MAAMC,2BAAAA,GAAwC;AAE9C,MAAMC,qBAAqB;AAC3B,MAAMC,gCAAgCC,aAAAA,CAAKC,IAAI,CAACC,WAAAA,CAAGC,OAAO,IAAI,WAAA;AAE9D,MAAMC,4BAA4B;AAClC,MAAMC,0BAA0B;AAEhC,MAAMC,cAAc;AACpB,MAAMC,iBAAiB;AACvB,MAAMC,sBAAsB;AAC5B,MAAMC,2BAA2B;AACjC,MAAMC,qBAAqB;AAC3B,MAAMC,wBAAwB;AAC9B,MAAMC,sBAAAA,GAAyB,MAAM;AAErC,MAAMC,uBAAoC;MAEpCC,yBAAAA,GAA4B;AACrC,IAAA,cAAA;AAAgB,IAAA,mBAAA;AAAqB,IAAA,WAAA;AAAa,IAAA,WAAA;AAClD,IAAA,eAAA;AAAiB,IAAA,YAAA;AAAc,IAAA,cAAA;AAC/B,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA,KAAA;AAAO,IAAA,OAAA;AAAS,IAAA,OAAA;AAAS,IAAA,UAAA;AAC1C,IAAA,SAAA;AAAW,IAAA,OAAA;AAAS,IAAA,WAAA;AAAa,IAAA,MAAA;AAAQ,IAAA,YAAA;AACzC,IAAA,MAAA;AAAQ,IAAA,KAAA;AAAO,IAAA,QAAA;AAAU,IAAA,OAAA;AAAS,IAAA,MAAA;AAAQ,IAAA,QAAA;AAC1C,IAAA,OAAA;AAAS,IAAA,OAAA;AAAS,IAAA,OAAA;AAAS,IAAA,UAAA;AAAY,IAAA,MAAA;AACvC,IAAA,OAAA;AAAS,IAAA,OAAA;AAAS,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA;;AAGhC,MAAMC,iBAAiB;AACvB,MAAMC,uBAAuB;AAC7B,MAAMC,uBAAuB;AAC7B,MAAMC,kBAAkB;AACxB,MAAMC,iBAAiB;AACvB,MAAMC,uBAAuB;AAC7B,MAAMC,kBAAkB;AACxB,MAAMC,eAAe;AACrB,MAAMC,eAAe;AACrB,MAAMC,iBAAiB;AACvB,MAAMC,gBAAgB;AACtB,MAAMC,sBAAsB;AAC5B,MAAMC,mBAAmB;AACzB,MAAMC,uBAAuB;AAC7B,MAAMC,sBAAsB;MAEtBC,gBAAAA,GAAmB;AAC5Bf,IAAAA,cAAAA;AACAC,IAAAA,oBAAAA;AACAC,IAAAA,oBAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA,cAAAA;AACAC,IAAAA,oBAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA,cAAAA;AACAC,IAAAA,aAAAA;AACAC,IAAAA,mBAAAA;AACAC,IAAAA;;AAGG,MAAMI,kBAAkBhB;AAuD/B;MACaiB,iBAAAA,GAAoB;IAC7BC,MAAAA,EAAQ3C,eAAAA;IACR4C,OAAAA,EAAS7C,eAAAA;IACT8C,KAAAA,EAAO5C,aAAAA;IACP6C,SAAAA,EAAWjD,iBAAAA;IACXkD,KAAAA,EAAO7C,aAAAA;IACP8C,eAAAA,EAAiB7C,wBAAAA;IACjB8C,qBAAAA,EAAuB7C,gCAAAA;IACvB8C,kBAAAA,EAAoB3C,2BAAAA;IACpB4C,WAAAA,EAAaV,eAAAA;IACbW,eAAAA,EAAiB5C,kBAAAA;IACjB6C,eAAAA,EAAiBhD,wBAAAA;IACjBiD,oBAAAA,EAAsB7C,6BAAAA;IACtB8C,MAAAA,EAAQ;QACJC,GAAAA,EAAKxC,WAAAA;QACLyC,MAAAA,EAAQxC,cAAAA;QACRyC,MAAAA,EAAQxC,mBAAAA;QACRyC,WAAAA,EAAaxC,wBAAAA;QACbyC,KAAAA,EAAOxC,kBAAAA;QACPyC,YAAAA,EAAcxC,qBAAAA;QACdyC,aAAAA,EAAe,KAAA;QACfC,YAAAA,EAAczC,sBAAAA;QACd0B,eAAAA,EAAiB7C,wBAAAA;QACjB8C,qBAAAA,EAAuB7C;AAC3B,KAAA;IACA4D,OAAAA,EAAS;QACLC,IAAAA,EAAMnD,yBAAAA;QACNoD,EAAAA,EAAInD,uBAAAA;QACJ8C,YAAAA,EAAcxC,qBAAAA;QACdsC,WAAAA,EAAaxC,wBAAAA;QACb4C,YAAAA,EAAczC,sBAAAA;QACd6C,YAAAA,EAAc,KAAA;QACdnB,eAAAA,EAAiB7C,wBAAAA;QACjB8C,qBAAAA,EAAuB7C;AAC3B,KAAA;IACAgE,WAAAA,EAAa;QACTC,gBAAAA,EAAkB,GAAA;QAClBC,WAAAA,EAAaC,SAAAA;QACbvB,eAAAA,EAAiB7C,wBAAAA;QACjB8C,qBAAAA,EAAuB7C;AAC3B,KAAA;IACAoE,MAAAA,EAAQ;QACJC,oBAAAA,EAAsB,IAAA;QACtBC,kBAAAA,EAAoB,IAAA;QACpBC,mBAAAA,EAAqB,KAAA;QACrBC,mBAAAA,EAAqB,IAAA;QACrBC,kBAAAA,EAAoB,EAAA;QACpBC,gBAAAA,EAAkB,CAAA;QAClBC,iBAAAA,EAAmB,CAAA;QACnBC,iBAAAA,EAAmB,EAAA;QACnBtB,MAAAA,EAAQxC,mBAAAA;QACR8B,eAAAA,EAAiB7C,wBAAAA;QACjB8C,qBAAAA,EAAuB7C;AAC3B,KAAA;IACA6E,WAAAA,EAAa;QACTR,oBAAAA,EAAsB,IAAA;QACtBC,kBAAAA,EAAoB,IAAA;QACpBC,mBAAAA,EAAqB,KAAA;QACrBC,mBAAAA,EAAqB,IAAA;QACrBC,kBAAAA,EAAoB,EAAA;QACpBC,gBAAAA,EAAkB,CAAA;QAClBC,iBAAAA,EAAmB,CAAA;QACnBC,iBAAAA,EAAmB,EAAA;QACnBtB,MAAAA,EAAQxC,mBAAAA;QACRmD,gBAAAA,EAAkB,GAAA;QAClBC,WAAAA,EAAaC,SAAAA;QACbW,SAAAA,EAAWX,SAAAA;QACXvB,eAAAA,EAAiB7C,wBAAAA;QACjB8C,qBAAAA,EAAuB7C;AAC3B,KAAA;IACA+E,OAAAA,EAAS;QACLC,WAAAA,EAAa7D,oBAAAA;QACb0C,IAAAA,EAAMnD,yBAAAA;QACNuE,aAAAA,EAAe,OAAA;QACf1B,WAAAA,EAAaxC,wBAAAA;QACbmE,eAAAA,EAAiB;AAAC,YAAA,cAAA;AAAgB,YAAA;AAAiB,SAAA;QACnDC,qBAAAA,EAAuB,IAAA;QACvBC,uBAAAA,EAAyB,IAAA;QACzB9B,MAAAA,EAAQxC,mBAAAA;QACRuE,YAAAA,EAAc,MAAA;QACdtB,YAAAA,EAAc;AAClB,KAAA;IACAuB,IAAAA,EAAM;AACFC,QAAAA,UAAAA,EAAY,EAAC;QACbhD,MAAAA,EAAQ,KAAA;QACRiD,eAAAA,EAAiBrB;AACrB,KAAA;IACAsB,MAAAA,EAAQ;AACJF,QAAAA,UAAAA,EAAY,EAAC;QACbG,aAAAA,EAAevB,SAAAA;QACf5B,MAAAA,EAAQ,KAAA;QACRoD,gBAAAA,EAAkB,KAAA;QAClBH,eAAAA,EAAiBrB;AACrB,KAAA;IACAyB,IAAAA,EAAM;QACFC,WAAAA,EAAa1B,SAAAA;QACb2B,gBAAAA,EAAkB3B,SAAAA;QAClB4B,SAAAA,EAAW5B,SAAAA;QACX6B,MAAAA,EAAQ7B,SAAAA;QACR8B,GAAAA,EAAK9B,SAAAA;QACL+B,QAAAA,EAAU,KAAA;QACVC,cAAAA,EAAgBhC,SAAAA;QAChBiC,QAAAA,EAAU,KAAA;QACVZ,eAAAA,EAAiBrB,SAAAA;QACjBwB,gBAAAA,EAAkB;AACtB,KAAA;IACAU,WAAAA,EAAa;QACTpB,aAAAA,EAAe,OAAA;QACflB,YAAAA,EAAc;AAClB,KAAA;IACAuC,QAAAA,EAAU;QACNC,UAAAA,EAAYpC,SAAAA;QACZ0B,WAAAA,EAAa1B;AACjB,KAAA;IACA2B,gBAAAA,EAAkB1E;AACtB;;;;"}
|
package/dist/content/issues.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getLogger } from '../logging.js';
|
|
2
2
|
import { getUserChoice as getUserChoice$1 } from '../util/interactive.js';
|
|
3
|
-
import {
|
|
3
|
+
import { createIssue, getOpenIssues } from '../util/github.js';
|
|
4
4
|
import path__default from 'path';
|
|
5
5
|
import os__default from 'os';
|
|
6
6
|
import { spawnSync } from 'child_process';
|
package/dist/prompt/commit.js
CHANGED
|
@@ -19,6 +19,12 @@ const __dirname = path__default.dirname(__filename);
|
|
|
19
19
|
// Build content items for the prompt
|
|
20
20
|
const contentItems = [];
|
|
21
21
|
const contextItems = [];
|
|
22
|
+
// Developer Note: Direction is injected first as the highest-priority prompt input
|
|
23
|
+
// This ensures user guidance takes precedence over other context sources like
|
|
24
|
+
// GitHub issues or commit history. Direction content is sanitized via sanitizeDirection()
|
|
25
|
+
// to prevent template breakage (newlines converted to spaces, whitespace normalized,
|
|
26
|
+
// length limited to 2000 chars). See tests/util/validation.test.ts for sanitization behavior
|
|
27
|
+
// and src/commands/commit.ts line 446 for debug logging of direction processing.
|
|
22
28
|
if (userDirection) {
|
|
23
29
|
contentItems.push({
|
|
24
30
|
content: userDirection,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.js","sources":["../../src/prompt/commit.ts"],"sourcesContent":["import { Prompt, recipe } from '@riotprompt/riotprompt';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Types for the commit prompt\nexport type Content = {\n diffContent: string;\n userDirection?: string;\n isFileContent?: boolean; // Flag to indicate if diffContent is actually file content\n githubIssuesContext?: string; // GitHub issues related to current version/milestone\n};\n\nexport type Context = {\n logContext?: string;\n context?: string;\n directories?: string[];\n};\n\nexport type Config = {\n overridePaths?: string[];\n overrides?: boolean;\n}\n\n/**\n * Build a commit prompt using RiotPrompt Recipes.\n *\n * This prompt is configured to generate multiline commit messages by default,\n * with separate lines/bullet points for different groups of changes rather\n * than squeezing everything into single lines.\n *\n * @param runConfig The runtime configuration provided by the CLI\n * @param content Mandatory content inputs (e.g. diff)\n * @param ctx Optional contextual inputs configured by the user\n */\nexport const createPrompt = async (\n { overridePaths: _overridePaths, overrides: _overrides }: Config,\n { diffContent, userDirection, isFileContent, githubIssuesContext }: Content,\n { logContext, context, directories }: Context = {}\n): Promise<Prompt> => {\n const basePath = __dirname;\n\n // Build content items for the prompt\n const contentItems = [];\n const contextItems = [];\n\n if (userDirection) {\n contentItems.push({ content: userDirection, title: 'User Direction' });\n }\n if (diffContent) {\n const contentTitle = isFileContent ? 'Project Files' : 'Diff';\n contentItems.push({ content: diffContent, title: contentTitle });\n }\n if (githubIssuesContext) {\n contentItems.push({ content: githubIssuesContext, title: 'Recent GitHub Issues' });\n }\n\n if (logContext) {\n contextItems.push({ content: logContext, title: 'Log Context' });\n }\n if (context) {\n contextItems.push({ content: context, title: 'User Context' });\n }\n if (directories && directories.length > 0) {\n contextItems.push({ directories, title: 'Directories' });\n }\n\n return recipe(basePath)\n .persona({ path: 'personas/you.md' })\n .instructions({ path: 'instructions/commit.md' })\n .overridePaths(_overridePaths ?? [])\n .overrides(_overrides ?? true)\n .content(...contentItems)\n .context(...contextItems)\n .cook();\n};\n"],"names":["__filename","fileURLToPath","url","__dirname","path","dirname","createPrompt","overridePaths","_overridePaths","overrides","_overrides","diffContent","userDirection","isFileContent","githubIssuesContext","logContext","context","directories","basePath","contentItems","contextItems","push","content","title","contentTitle","length","recipe","persona","instructions","cook"],"mappings":";;;;AAIA,MAAMA,UAAAA,GAAaC,aAAAA,CAAc,MAAA,CAAA,IAAA,CAAYC,GAAG,CAAA;AAChD,MAAMC,SAAAA,GAAYC,aAAAA,CAAKC,OAAO,CAACL,UAAAA,CAAAA;AAqB/B;;;;;;;;;;AAUC,IACM,MAAMM,YAAAA,GAAe,OACxB,EAAEC,aAAAA,EAAeC,cAAc,EAAEC,SAAAA,EAAWC,UAAU,EAAU,EAChE,EAAEC,WAAW,EAAEC,aAAa,EAAEC,aAAa,EAAEC,mBAAmB,EAAW,EAC3E,EAAEC,UAAU,EAAEC,OAAO,EAAEC,WAAW,EAAW,GAAG,EAAE,GAAA;AAElD,IAAA,MAAMC,QAAAA,GAAWf,SAAAA;;AAGjB,IAAA,MAAMgB,eAAe,EAAE;AACvB,IAAA,MAAMC,eAAe,EAAE
|
|
1
|
+
{"version":3,"file":"commit.js","sources":["../../src/prompt/commit.ts"],"sourcesContent":["import { Prompt, recipe } from '@riotprompt/riotprompt';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Types for the commit prompt\nexport type Content = {\n diffContent: string;\n userDirection?: string;\n isFileContent?: boolean; // Flag to indicate if diffContent is actually file content\n githubIssuesContext?: string; // GitHub issues related to current version/milestone\n};\n\nexport type Context = {\n logContext?: string;\n context?: string;\n directories?: string[];\n};\n\nexport type Config = {\n overridePaths?: string[];\n overrides?: boolean;\n}\n\n/**\n * Build a commit prompt using RiotPrompt Recipes.\n *\n * This prompt is configured to generate multiline commit messages by default,\n * with separate lines/bullet points for different groups of changes rather\n * than squeezing everything into single lines.\n *\n * @param runConfig The runtime configuration provided by the CLI\n * @param content Mandatory content inputs (e.g. diff)\n * @param ctx Optional contextual inputs configured by the user\n */\nexport const createPrompt = async (\n { overridePaths: _overridePaths, overrides: _overrides }: Config,\n { diffContent, userDirection, isFileContent, githubIssuesContext }: Content,\n { logContext, context, directories }: Context = {}\n): Promise<Prompt> => {\n const basePath = __dirname;\n\n // Build content items for the prompt\n const contentItems = [];\n const contextItems = [];\n\n // Developer Note: Direction is injected first as the highest-priority prompt input\n // This ensures user guidance takes precedence over other context sources like\n // GitHub issues or commit history. Direction content is sanitized via sanitizeDirection()\n // to prevent template breakage (newlines converted to spaces, whitespace normalized,\n // length limited to 2000 chars). See tests/util/validation.test.ts for sanitization behavior\n // and src/commands/commit.ts line 446 for debug logging of direction processing.\n if (userDirection) {\n contentItems.push({ content: userDirection, title: 'User Direction' });\n }\n if (diffContent) {\n const contentTitle = isFileContent ? 'Project Files' : 'Diff';\n contentItems.push({ content: diffContent, title: contentTitle });\n }\n if (githubIssuesContext) {\n contentItems.push({ content: githubIssuesContext, title: 'Recent GitHub Issues' });\n }\n\n if (logContext) {\n contextItems.push({ content: logContext, title: 'Log Context' });\n }\n if (context) {\n contextItems.push({ content: context, title: 'User Context' });\n }\n if (directories && directories.length > 0) {\n contextItems.push({ directories, title: 'Directories' });\n }\n\n return recipe(basePath)\n .persona({ path: 'personas/you.md' })\n .instructions({ path: 'instructions/commit.md' })\n .overridePaths(_overridePaths ?? [])\n .overrides(_overrides ?? true)\n .content(...contentItems)\n .context(...contextItems)\n .cook();\n};\n"],"names":["__filename","fileURLToPath","url","__dirname","path","dirname","createPrompt","overridePaths","_overridePaths","overrides","_overrides","diffContent","userDirection","isFileContent","githubIssuesContext","logContext","context","directories","basePath","contentItems","contextItems","push","content","title","contentTitle","length","recipe","persona","instructions","cook"],"mappings":";;;;AAIA,MAAMA,UAAAA,GAAaC,aAAAA,CAAc,MAAA,CAAA,IAAA,CAAYC,GAAG,CAAA;AAChD,MAAMC,SAAAA,GAAYC,aAAAA,CAAKC,OAAO,CAACL,UAAAA,CAAAA;AAqB/B;;;;;;;;;;AAUC,IACM,MAAMM,YAAAA,GAAe,OACxB,EAAEC,aAAAA,EAAeC,cAAc,EAAEC,SAAAA,EAAWC,UAAU,EAAU,EAChE,EAAEC,WAAW,EAAEC,aAAa,EAAEC,aAAa,EAAEC,mBAAmB,EAAW,EAC3E,EAAEC,UAAU,EAAEC,OAAO,EAAEC,WAAW,EAAW,GAAG,EAAE,GAAA;AAElD,IAAA,MAAMC,QAAAA,GAAWf,SAAAA;;AAGjB,IAAA,MAAMgB,eAAe,EAAE;AACvB,IAAA,MAAMC,eAAe,EAAE;;;;;;;AAQvB,IAAA,IAAIR,aAAAA,EAAe;AACfO,QAAAA,YAAAA,CAAaE,IAAI,CAAC;YAAEC,OAAAA,EAASV,aAAAA;YAAeW,KAAAA,EAAO;AAAiB,SAAA,CAAA;AACxE,IAAA;AACA,IAAA,IAAIZ,WAAAA,EAAa;QACb,MAAMa,YAAAA,GAAeX,gBAAgB,eAAA,GAAkB,MAAA;AACvDM,QAAAA,YAAAA,CAAaE,IAAI,CAAC;YAAEC,OAAAA,EAASX,WAAAA;YAAaY,KAAAA,EAAOC;AAAa,SAAA,CAAA;AAClE,IAAA;AACA,IAAA,IAAIV,mBAAAA,EAAqB;AACrBK,QAAAA,YAAAA,CAAaE,IAAI,CAAC;YAAEC,OAAAA,EAASR,mBAAAA;YAAqBS,KAAAA,EAAO;AAAuB,SAAA,CAAA;AACpF,IAAA;AAEA,IAAA,IAAIR,UAAAA,EAAY;AACZK,QAAAA,YAAAA,CAAaC,IAAI,CAAC;YAAEC,OAAAA,EAASP,UAAAA;YAAYQ,KAAAA,EAAO;AAAc,SAAA,CAAA;AAClE,IAAA;AACA,IAAA,IAAIP,OAAAA,EAAS;AACTI,QAAAA,YAAAA,CAAaC,IAAI,CAAC;YAAEC,OAAAA,EAASN,OAAAA;YAASO,KAAAA,EAAO;AAAe,SAAA,CAAA;AAChE,IAAA;AACA,IAAA,IAAIN,WAAAA,IAAeA,WAAAA,CAAYQ,MAAM,GAAG,CAAA,EAAG;AACvCL,QAAAA,YAAAA,CAAaC,IAAI,CAAC;AAAEJ,YAAAA,WAAAA;YAAaM,KAAAA,EAAO;AAAc,SAAA,CAAA;AAC1D,IAAA;IAEA,OAAOG,MAAAA,CAAOR,QAAAA,CAAAA,CACTS,OAAO,CAAC;QAAEvB,IAAAA,EAAM;AAAkB,KAAA,CAAA,CAClCwB,YAAY,CAAC;QAAExB,IAAAA,EAAM;AAAyB,KAAA,CAAA,CAC9CG,aAAa,CAACC,cAAAA,KAAAA,IAAAA,IAAAA,4BAAAA,cAAAA,GAAkB,EAAE,EAClCC,SAAS,CAACC,uBAAAA,UAAAA,KAAAA,MAAAA,GAAAA,UAAAA,GAAc,MACxBY,OAAO,CAAA,GAAIH,cACXH,OAAO,CAAA,GAAII,cACXS,IAAI,EAAA;AACb;;;;"}
|
|
@@ -20,7 +20,7 @@ Respond with valid JSON in this exact format:
|
|
|
20
20
|
"totalIssues": number,
|
|
21
21
|
"issues": [
|
|
22
22
|
{
|
|
23
|
-
"title": "
|
|
23
|
+
"title": "Short, clear title (4-8 words max)",
|
|
24
24
|
"description": "Comprehensive, prompt-ready description that serves as a detailed coding instruction",
|
|
25
25
|
"priority": "low|medium|high",
|
|
26
26
|
"category": "ui|content|functionality|security|accessibility|performance|investigation|other",
|
|
@@ -48,8 +48,16 @@ Include a category explicitly for exploration:
|
|
|
48
48
|
|
|
49
49
|
---
|
|
50
50
|
|
|
51
|
-
## 🎯 **Writing
|
|
51
|
+
## 🎯 **Writing Issue Titles and Descriptions**
|
|
52
52
|
|
|
53
|
+
### **Issue Title Guidelines:**
|
|
54
|
+
- **Keep titles short and readable:** Aim for 3-6 words maximum
|
|
55
|
+
- **Use clear, simple language:** Avoid technical jargon in titles
|
|
56
|
+
- **Be specific but concise:** "Fix login timeout" not "Implement comprehensive authentication flow timeout handling"
|
|
57
|
+
- **Focus on the core problem:** "Add error logging" not "Enhance system robustness through comprehensive error logging"
|
|
58
|
+
- **Make titles scannable:** Developers should quickly understand the issue from the title alone
|
|
59
|
+
|
|
60
|
+
### **Issue Description Guidelines:**
|
|
53
61
|
Issue descriptions should be comprehensive, detailed instructions that could be directly used as prompts for AI coding assistants like GitHub Copilot or Cursor. Think of each description as a complete coding task specification:
|
|
54
62
|
|
|
55
63
|
### **Description Structure:**
|
|
@@ -115,6 +123,7 @@ Consider how issues relate to each other and identify dependencies or groupings:
|
|
|
115
123
|
|
|
116
124
|
## ✅ **DO:**
|
|
117
125
|
|
|
126
|
+
- **Write short, readable titles** (3-6 words) that clearly communicate the issue
|
|
118
127
|
- **Write detailed, prompt-ready descriptions** that could be handed directly to a coding assistant
|
|
119
128
|
- **Include specific file paths, function names, and implementation details** when relevant
|
|
120
129
|
- **Capture subtle or implicit feedback** as actionable investigative tasks
|
|
@@ -126,6 +135,7 @@ Consider how issues relate to each other and identify dependencies or groupings:
|
|
|
126
135
|
|
|
127
136
|
## ❌ **DO NOT:**
|
|
128
137
|
|
|
138
|
+
- **Write wordy or technical titles** like "Implement comprehensive authentication flow timeout handling" or "Enhance system robustness through comprehensive error logging"
|
|
129
139
|
- **Write generic or vague descriptions** like "improve error handling" or "fix the UI"
|
|
130
140
|
- **Skip implementation details** when you have enough context to provide them
|
|
131
141
|
- **Ignore issue relationships** - always consider how issues might interact
|
|
@@ -156,4 +166,4 @@ Consider how issues relate to each other and identify dependencies or groupings:
|
|
|
156
166
|
|
|
157
167
|
---
|
|
158
168
|
|
|
159
|
-
**Your goal** is to comprehensively transform the reviewer's observations, comments, and implicit ideas into clearly defined, prompt-ready issues that serve as detailed coding instructions. Each issue should
|
|
169
|
+
**Your goal** is to comprehensively transform the reviewer's observations, comments, and implicit ideas into clearly defined, prompt-ready issues that serve as detailed coding instructions. Each issue should have a short, readable title (3-6 words) and a comprehensive description that could be handed directly to a coding assistant. Consider relationships and dependencies between multiple issues. Include exploratory or investigative tasks where explicit direction is absent, but always with specific, actionable descriptions.
|
package/dist/types.js
CHANGED
|
@@ -6,6 +6,12 @@ const ConfigSchema = z.object({
|
|
|
6
6
|
debug: z.boolean().optional(),
|
|
7
7
|
overrides: z.boolean().optional(),
|
|
8
8
|
model: z.string().optional(),
|
|
9
|
+
openaiReasoning: z.enum([
|
|
10
|
+
'low',
|
|
11
|
+
'medium',
|
|
12
|
+
'high'
|
|
13
|
+
]).optional(),
|
|
14
|
+
openaiMaxOutputTokens: z.number().optional(),
|
|
9
15
|
contextDirectories: z.array(z.string()).optional(),
|
|
10
16
|
outputDirectory: z.string().optional(),
|
|
11
17
|
preferencesDirectory: z.string().optional(),
|
|
@@ -20,13 +26,26 @@ const ConfigSchema = z.object({
|
|
|
20
26
|
direction: z.string().optional(),
|
|
21
27
|
skipFileCheck: z.boolean().optional(),
|
|
22
28
|
maxDiffBytes: z.number().optional(),
|
|
23
|
-
model: z.string().optional()
|
|
29
|
+
model: z.string().optional(),
|
|
30
|
+
openaiReasoning: z.enum([
|
|
31
|
+
'low',
|
|
32
|
+
'medium',
|
|
33
|
+
'high'
|
|
34
|
+
]).optional(),
|
|
35
|
+
openaiMaxOutputTokens: z.number().optional()
|
|
24
36
|
}).optional(),
|
|
25
37
|
audioCommit: z.object({
|
|
26
38
|
maxRecordingTime: z.number().optional(),
|
|
27
39
|
audioDevice: z.string().optional(),
|
|
28
40
|
file: z.string().optional(),
|
|
29
|
-
keepTemp: z.boolean().optional()
|
|
41
|
+
keepTemp: z.boolean().optional(),
|
|
42
|
+
model: z.string().optional(),
|
|
43
|
+
openaiReasoning: z.enum([
|
|
44
|
+
'low',
|
|
45
|
+
'medium',
|
|
46
|
+
'high'
|
|
47
|
+
]).optional(),
|
|
48
|
+
openaiMaxOutputTokens: z.number().optional()
|
|
30
49
|
}).optional(),
|
|
31
50
|
release: z.object({
|
|
32
51
|
from: z.string().optional(),
|
|
@@ -37,6 +56,12 @@ const ConfigSchema = z.object({
|
|
|
37
56
|
focus: z.string().optional(),
|
|
38
57
|
maxDiffBytes: z.number().optional(),
|
|
39
58
|
model: z.string().optional(),
|
|
59
|
+
openaiReasoning: z.enum([
|
|
60
|
+
'low',
|
|
61
|
+
'medium',
|
|
62
|
+
'high'
|
|
63
|
+
]).optional(),
|
|
64
|
+
openaiMaxOutputTokens: z.number().optional(),
|
|
40
65
|
noMilestones: z.boolean().optional()
|
|
41
66
|
}).optional(),
|
|
42
67
|
review: z.object({
|
|
@@ -53,7 +78,15 @@ const ConfigSchema = z.object({
|
|
|
53
78
|
note: z.string().optional(),
|
|
54
79
|
editorTimeout: z.number().optional(),
|
|
55
80
|
maxContextErrors: z.number().optional(),
|
|
56
|
-
model: z.string().optional()
|
|
81
|
+
model: z.string().optional(),
|
|
82
|
+
openaiReasoning: z.enum([
|
|
83
|
+
'low',
|
|
84
|
+
'medium',
|
|
85
|
+
'high'
|
|
86
|
+
]).optional(),
|
|
87
|
+
openaiMaxOutputTokens: z.number().optional(),
|
|
88
|
+
file: z.string().optional(),
|
|
89
|
+
directory: z.string().optional()
|
|
57
90
|
}).optional(),
|
|
58
91
|
audioReview: z.object({
|
|
59
92
|
includeCommitHistory: z.boolean().optional(),
|
|
@@ -70,7 +103,14 @@ const ConfigSchema = z.object({
|
|
|
70
103
|
audioDevice: z.string().optional(),
|
|
71
104
|
file: z.string().optional(),
|
|
72
105
|
directory: z.string().optional(),
|
|
73
|
-
keepTemp: z.boolean().optional()
|
|
106
|
+
keepTemp: z.boolean().optional(),
|
|
107
|
+
model: z.string().optional(),
|
|
108
|
+
openaiReasoning: z.enum([
|
|
109
|
+
'low',
|
|
110
|
+
'medium',
|
|
111
|
+
'high'
|
|
112
|
+
]).optional(),
|
|
113
|
+
openaiMaxOutputTokens: z.number().optional()
|
|
74
114
|
}).optional(),
|
|
75
115
|
publish: z.object({
|
|
76
116
|
mergeMethod: z.enum([
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["import * as Cardigantime from '@theunwalked/cardigantime';\nimport { z } from \"zod\";\n\nexport const ConfigSchema = z.object({\n dryRun: z.boolean().optional(),\n verbose: z.boolean().optional(),\n debug: z.boolean().optional(),\n overrides: z.boolean().optional(),\n model: z.string().optional(),\n contextDirectories: z.array(z.string()).optional(),\n outputDirectory: z.string().optional(),\n preferencesDirectory: z.string().optional(),\n commit: z.object({\n add: z.boolean().optional(),\n cached: z.boolean().optional(),\n sendit: z.boolean().optional(),\n interactive: z.boolean().optional(),\n amend: z.boolean().optional(),\n messageLimit: z.number().optional(),\n context: z.string().optional(),\n direction: z.string().optional(),\n skipFileCheck: z.boolean().optional(),\n maxDiffBytes: z.number().optional(),\n model: z.string().optional(),\n }).optional(),\n audioCommit: z.object({\n maxRecordingTime: z.number().optional(),\n audioDevice: z.string().optional(),\n file: z.string().optional(),\n keepTemp: z.boolean().optional(),\n }).optional(),\n release: z.object({\n from: z.string().optional(),\n to: z.string().optional(),\n messageLimit: z.number().optional(),\n context: z.string().optional(),\n interactive: z.boolean().optional(),\n focus: z.string().optional(),\n maxDiffBytes: z.number().optional(),\n model: z.string().optional(),\n noMilestones: z.boolean().optional(),\n }).optional(),\n review: z.object({\n includeCommitHistory: z.boolean().optional(),\n includeRecentDiffs: z.boolean().optional(),\n includeReleaseNotes: z.boolean().optional(),\n includeGithubIssues: z.boolean().optional(),\n commitHistoryLimit: z.number().optional(),\n diffHistoryLimit: z.number().optional(),\n releaseNotesLimit: z.number().optional(),\n githubIssuesLimit: z.number().optional(),\n context: z.string().optional(),\n sendit: z.boolean().optional(),\n note: z.string().optional(),\n editorTimeout: z.number().optional(),\n maxContextErrors: z.number().optional(),\n model: z.string().optional(),\n }).optional(),\n audioReview: z.object({\n includeCommitHistory: z.boolean().optional(),\n includeRecentDiffs: z.boolean().optional(),\n includeReleaseNotes: z.boolean().optional(),\n includeGithubIssues: z.boolean().optional(),\n commitHistoryLimit: z.number().optional(),\n diffHistoryLimit: z.number().optional(),\n releaseNotesLimit: z.number().optional(),\n githubIssuesLimit: z.number().optional(),\n context: z.string().optional(),\n sendit: z.boolean().optional(),\n maxRecordingTime: z.number().optional(),\n audioDevice: z.string().optional(),\n file: z.string().optional(),\n directory: z.string().optional(),\n keepTemp: z.boolean().optional(),\n }).optional(),\n publish: z.object({\n mergeMethod: z.enum(['merge', 'squash', 'rebase']).optional(),\n from: z.string().optional(),\n targetVersion: z.string().optional(),\n interactive: z.boolean().optional(),\n dependencyUpdatePatterns: z.array(z.string()).optional(),\n requiredEnvVars: z.array(z.string()).optional(),\n linkWorkspacePackages: z.boolean().optional(),\n unlinkWorkspacePackages: z.boolean().optional(),\n checksTimeout: z.number().optional(),\n skipUserConfirmation: z.boolean().optional(),\n syncTarget: z.boolean().optional(),\n sendit: z.boolean().optional(),\n waitForReleaseWorkflows: z.boolean().optional(),\n releaseWorkflowsTimeout: z.number().optional(),\n releaseWorkflowNames: z.array(z.string()).optional(),\n targetBranch: z.string().optional(),\n noMilestones: z.boolean().optional(),\n }).optional(),\n link: z.object({\n scopeRoots: z.record(z.string(), z.string()).optional(),\n dryRun: z.boolean().optional(),\n packageArgument: z.string().optional(),\n }).optional(),\n unlink: z.object({\n scopeRoots: z.record(z.string(), z.string()).optional(),\n workspaceFile: z.string().optional(),\n dryRun: z.boolean().optional(),\n cleanNodeModules: z.boolean().optional(),\n packageArgument: z.string().optional(),\n }).optional(),\n tree: z.object({\n directories: z.array(z.string()).optional(),\n excludedPatterns: z.array(z.string()).optional(),\n startFrom: z.string().optional(),\n stopAt: z.string().optional(),\n cmd: z.string().optional(),\n parallel: z.boolean().optional(),\n builtInCommand: z.string().optional(),\n continue: z.boolean().optional(),\n packageArgument: z.string().optional(),\n cleanNodeModules: z.boolean().optional(),\n }).optional(),\n development: z.object({\n targetVersion: z.string().optional(),\n noMilestones: z.boolean().optional(),\n }).optional(),\n versions: z.object({\n subcommand: z.string().optional(),\n directories: z.array(z.string()).optional(),\n }).optional(),\n excludedPatterns: z.array(z.string()).optional(),\n});\n\nexport const SecureConfigSchema = z.object({\n openaiApiKey: z.string().optional(),\n});\n\nexport const CommandConfigSchema = z.object({\n commandName: z.string().optional(),\n});\n\nexport type Config = z.infer<typeof ConfigSchema> & Cardigantime.Config;\nexport type SecureConfig = z.infer<typeof SecureConfigSchema>;\nexport type CommandConfig = z.infer<typeof CommandConfigSchema>;\n\nexport type MergeMethod = 'merge' | 'squash' | 'rebase';\n\nexport interface PullRequest {\n html_url: string;\n number: number;\n labels: {\n name: string;\n }[];\n}\n\nexport type ReleaseSummary = {\n title: string;\n body: string;\n}\n\nexport type ReleaseConfig = {\n from?: string;\n to?: string;\n context?: string;\n interactive?: boolean;\n focus?: string;\n messageLimit?: number;\n maxDiffBytes?: number;\n model?: string;\n}\n\nexport type ReviewConfig = {\n includeCommitHistory?: boolean;\n includeRecentDiffs?: boolean;\n includeReleaseNotes?: boolean;\n includeGithubIssues?: boolean;\n commitHistoryLimit?: number;\n diffHistoryLimit?: number;\n releaseNotesLimit?: number;\n githubIssuesLimit?: number;\n context?: string;\n sendit?: boolean;\n note?: string;\n editorTimeout?: number;\n maxContextErrors?: number;\n model?: string;\n}\n\nexport type AudioReviewConfig = {\n includeCommitHistory?: boolean;\n includeRecentDiffs?: boolean;\n includeReleaseNotes?: boolean;\n includeGithubIssues?: boolean;\n commitHistoryLimit?: number;\n diffHistoryLimit?: number;\n releaseNotesLimit?: number;\n githubIssuesLimit?: number;\n context?: string;\n sendit?: boolean;\n maxRecordingTime?: number;\n audioDevice?: string;\n file?: string;\n directory?: string;\n keepTemp?: boolean;\n}\n\nexport type CommitConfig = {\n add?: boolean;\n cached?: boolean;\n sendit?: boolean;\n interactive?: boolean;\n messageLimit?: number;\n context?: string;\n direction?: string;\n skipFileCheck?: boolean;\n maxDiffBytes?: number;\n model?: string;\n}\n\nexport type AudioCommitConfig = {\n maxRecordingTime?: number;\n audioDevice?: string;\n file?: string;\n keepTemp?: boolean;\n}\n\nexport type LinkConfig = {\n scopeRoots?: Record<string, string>;\n dryRun?: boolean;\n packageArgument?: string;\n}\n\nexport type UnlinkConfig = {\n scopeRoots?: Record<string, string>;\n workspaceFile?: string;\n dryRun?: boolean;\n cleanNodeModules?: boolean;\n packageArgument?: string;\n}\n\nexport type PublishConfig = {\n mergeMethod?: 'merge' | 'squash' | 'rebase';\n from?: string;\n targetVersion?: string;\n interactive?: boolean;\n dependencyUpdatePatterns?: string[];\n requiredEnvVars?: string[];\n linkWorkspacePackages?: boolean;\n unlinkWorkspacePackages?: boolean;\n checksTimeout?: number;\n skipUserConfirmation?: boolean;\n sendit?: boolean;\n waitForReleaseWorkflows?: boolean;\n releaseWorkflowsTimeout?: number;\n releaseWorkflowNames?: string[];\n targetBranch?: string;\n}\n\nexport type TreeConfig = {\n directories?: string[];\n excludedPatterns?: string[];\n startFrom?: string;\n stopAt?: string;\n cmd?: string;\n parallel?: boolean;\n builtInCommand?: string;\n continue?: boolean; // Continue from previous tree publish execution\n packageArgument?: string; // Package argument for link/unlink commands (e.g., \"@fjell\" or \"@fjell/core\")\n cleanNodeModules?: boolean; // For unlink command: remove node_modules and package-lock.json, then reinstall dependencies\n}\n\nexport type DevelopmentConfig = {\n targetVersion?: string; // 'patch', 'minor', 'major', or explicit version like '2.1.0' (default: 'patch')\n}\n\nexport type VersionsConfig = {\n subcommand?: string; // 'minor' or other versioning strategies\n directories?: string[]; // directories to scan for packages\n}\n"],"names":["ConfigSchema","z","object","dryRun","boolean","optional","verbose","debug","overrides","model","string","contextDirectories","array","outputDirectory","preferencesDirectory","commit","add","cached","sendit","interactive","amend","messageLimit","number","context","direction","skipFileCheck","maxDiffBytes","audioCommit","maxRecordingTime","audioDevice","file","keepTemp","release","from","to","focus","noMilestones","review","includeCommitHistory","includeRecentDiffs","includeReleaseNotes","includeGithubIssues","commitHistoryLimit","diffHistoryLimit","releaseNotesLimit","githubIssuesLimit","note","editorTimeout","maxContextErrors","audioReview","directory","publish","mergeMethod","enum","targetVersion","dependencyUpdatePatterns","requiredEnvVars","linkWorkspacePackages","unlinkWorkspacePackages","checksTimeout","skipUserConfirmation","syncTarget","waitForReleaseWorkflows","releaseWorkflowsTimeout","releaseWorkflowNames","targetBranch","link","scopeRoots","record","packageArgument","unlink","workspaceFile","cleanNodeModules","tree","directories","excludedPatterns","startFrom","stopAt","cmd","parallel","builtInCommand","continue","development","versions","subcommand","openaiApiKey","commandName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["import * as Cardigantime from '@theunwalked/cardigantime';\nimport { z } from \"zod\";\n\nexport const ConfigSchema = z.object({\n dryRun: z.boolean().optional(),\n verbose: z.boolean().optional(),\n debug: z.boolean().optional(),\n overrides: z.boolean().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n contextDirectories: z.array(z.string()).optional(),\n outputDirectory: z.string().optional(),\n preferencesDirectory: z.string().optional(),\n commit: z.object({\n add: z.boolean().optional(),\n cached: z.boolean().optional(),\n sendit: z.boolean().optional(),\n interactive: z.boolean().optional(),\n amend: z.boolean().optional(),\n messageLimit: z.number().optional(),\n context: z.string().optional(),\n direction: z.string().optional(),\n skipFileCheck: z.boolean().optional(),\n maxDiffBytes: z.number().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n }).optional(),\n audioCommit: z.object({\n maxRecordingTime: z.number().optional(),\n audioDevice: z.string().optional(),\n file: z.string().optional(),\n keepTemp: z.boolean().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n }).optional(),\n release: z.object({\n from: z.string().optional(),\n to: z.string().optional(),\n messageLimit: z.number().optional(),\n context: z.string().optional(),\n interactive: z.boolean().optional(),\n focus: z.string().optional(),\n maxDiffBytes: z.number().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n noMilestones: z.boolean().optional(),\n }).optional(),\n review: z.object({\n includeCommitHistory: z.boolean().optional(),\n includeRecentDiffs: z.boolean().optional(),\n includeReleaseNotes: z.boolean().optional(),\n includeGithubIssues: z.boolean().optional(),\n commitHistoryLimit: z.number().optional(),\n diffHistoryLimit: z.number().optional(),\n releaseNotesLimit: z.number().optional(),\n githubIssuesLimit: z.number().optional(),\n context: z.string().optional(),\n sendit: z.boolean().optional(),\n note: z.string().optional(),\n editorTimeout: z.number().optional(),\n maxContextErrors: z.number().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n file: z.string().optional(), // File path to read review note from\n directory: z.string().optional(), // Directory to process multiple review files\n }).optional(),\n audioReview: z.object({\n includeCommitHistory: z.boolean().optional(),\n includeRecentDiffs: z.boolean().optional(),\n includeReleaseNotes: z.boolean().optional(),\n includeGithubIssues: z.boolean().optional(),\n commitHistoryLimit: z.number().optional(),\n diffHistoryLimit: z.number().optional(),\n releaseNotesLimit: z.number().optional(),\n githubIssuesLimit: z.number().optional(),\n context: z.string().optional(),\n sendit: z.boolean().optional(),\n maxRecordingTime: z.number().optional(),\n audioDevice: z.string().optional(),\n file: z.string().optional(),\n directory: z.string().optional(),\n keepTemp: z.boolean().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n }).optional(),\n publish: z.object({\n mergeMethod: z.enum(['merge', 'squash', 'rebase']).optional(),\n from: z.string().optional(),\n targetVersion: z.string().optional(),\n interactive: z.boolean().optional(),\n dependencyUpdatePatterns: z.array(z.string()).optional(),\n requiredEnvVars: z.array(z.string()).optional(),\n linkWorkspacePackages: z.boolean().optional(),\n unlinkWorkspacePackages: z.boolean().optional(),\n checksTimeout: z.number().optional(),\n skipUserConfirmation: z.boolean().optional(),\n syncTarget: z.boolean().optional(),\n sendit: z.boolean().optional(),\n waitForReleaseWorkflows: z.boolean().optional(),\n releaseWorkflowsTimeout: z.number().optional(),\n releaseWorkflowNames: z.array(z.string()).optional(),\n targetBranch: z.string().optional(),\n noMilestones: z.boolean().optional(),\n }).optional(),\n link: z.object({\n scopeRoots: z.record(z.string(), z.string()).optional(),\n dryRun: z.boolean().optional(),\n packageArgument: z.string().optional(),\n }).optional(),\n unlink: z.object({\n scopeRoots: z.record(z.string(), z.string()).optional(),\n workspaceFile: z.string().optional(),\n dryRun: z.boolean().optional(),\n cleanNodeModules: z.boolean().optional(),\n packageArgument: z.string().optional(),\n }).optional(),\n tree: z.object({\n directories: z.array(z.string()).optional(),\n excludedPatterns: z.array(z.string()).optional(),\n startFrom: z.string().optional(),\n stopAt: z.string().optional(),\n cmd: z.string().optional(),\n parallel: z.boolean().optional(),\n builtInCommand: z.string().optional(),\n continue: z.boolean().optional(),\n packageArgument: z.string().optional(),\n cleanNodeModules: z.boolean().optional(),\n }).optional(),\n development: z.object({\n targetVersion: z.string().optional(),\n noMilestones: z.boolean().optional(),\n }).optional(),\n versions: z.object({\n subcommand: z.string().optional(),\n directories: z.array(z.string()).optional(),\n }).optional(),\n excludedPatterns: z.array(z.string()).optional(),\n});\n\nexport const SecureConfigSchema = z.object({\n openaiApiKey: z.string().optional(),\n});\n\nexport const CommandConfigSchema = z.object({\n commandName: z.string().optional(),\n});\n\nexport type Config = z.infer<typeof ConfigSchema> & Cardigantime.Config;\nexport type SecureConfig = z.infer<typeof SecureConfigSchema>;\nexport type CommandConfig = z.infer<typeof CommandConfigSchema>;\n\nexport type MergeMethod = 'merge' | 'squash' | 'rebase';\n\nexport interface PullRequest {\n html_url: string;\n number: number;\n labels: {\n name: string;\n }[];\n}\n\nexport type ReleaseSummary = {\n title: string;\n body: string;\n}\n\nexport type ReleaseConfig = {\n from?: string;\n to?: string;\n context?: string;\n interactive?: boolean;\n focus?: string;\n messageLimit?: number;\n maxDiffBytes?: number;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type ReviewConfig = {\n includeCommitHistory?: boolean;\n includeRecentDiffs?: boolean;\n includeReleaseNotes?: boolean;\n includeGithubIssues?: boolean;\n commitHistoryLimit?: number;\n diffHistoryLimit?: number;\n releaseNotesLimit?: number;\n githubIssuesLimit?: number;\n context?: string;\n sendit?: boolean;\n note?: string;\n editorTimeout?: number;\n maxContextErrors?: number;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type AudioReviewConfig = {\n includeCommitHistory?: boolean;\n includeRecentDiffs?: boolean;\n includeReleaseNotes?: boolean;\n includeGithubIssues?: boolean;\n commitHistoryLimit?: number;\n diffHistoryLimit?: number;\n releaseNotesLimit?: number;\n githubIssuesLimit?: number;\n context?: string;\n sendit?: boolean;\n maxRecordingTime?: number;\n audioDevice?: string;\n file?: string;\n directory?: string;\n keepTemp?: boolean;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type CommitConfig = {\n add?: boolean;\n cached?: boolean;\n sendit?: boolean;\n interactive?: boolean;\n messageLimit?: number;\n context?: string;\n direction?: string;\n skipFileCheck?: boolean;\n maxDiffBytes?: number;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type AudioCommitConfig = {\n maxRecordingTime?: number;\n audioDevice?: string;\n file?: string;\n keepTemp?: boolean;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type LinkConfig = {\n scopeRoots?: Record<string, string>;\n dryRun?: boolean;\n packageArgument?: string;\n}\n\nexport type UnlinkConfig = {\n scopeRoots?: Record<string, string>;\n workspaceFile?: string;\n dryRun?: boolean;\n cleanNodeModules?: boolean;\n packageArgument?: string;\n}\n\nexport type PublishConfig = {\n mergeMethod?: 'merge' | 'squash' | 'rebase';\n from?: string;\n targetVersion?: string;\n interactive?: boolean;\n dependencyUpdatePatterns?: string[];\n requiredEnvVars?: string[];\n linkWorkspacePackages?: boolean;\n unlinkWorkspacePackages?: boolean;\n checksTimeout?: number;\n skipUserConfirmation?: boolean;\n sendit?: boolean;\n waitForReleaseWorkflows?: boolean;\n releaseWorkflowsTimeout?: number;\n releaseWorkflowNames?: string[];\n targetBranch?: string;\n}\n\nexport type TreeConfig = {\n directories?: string[];\n excludedPatterns?: string[];\n startFrom?: string;\n stopAt?: string;\n cmd?: string;\n parallel?: boolean;\n builtInCommand?: string;\n continue?: boolean; // Continue from previous tree publish execution\n packageArgument?: string; // Package argument for link/unlink commands (e.g., \"@fjell\" or \"@fjell/core\")\n cleanNodeModules?: boolean; // For unlink command: remove node_modules and package-lock.json, then reinstall dependencies\n}\n\nexport type DevelopmentConfig = {\n targetVersion?: string; // 'patch', 'minor', 'major', or explicit version like '2.1.0' (default: 'patch')\n}\n\nexport type VersionsConfig = {\n subcommand?: string; // 'minor' or other versioning strategies\n directories?: string[]; // directories to scan for packages\n}\n"],"names":["ConfigSchema","z","object","dryRun","boolean","optional","verbose","debug","overrides","model","string","openaiReasoning","enum","openaiMaxOutputTokens","number","contextDirectories","array","outputDirectory","preferencesDirectory","commit","add","cached","sendit","interactive","amend","messageLimit","context","direction","skipFileCheck","maxDiffBytes","audioCommit","maxRecordingTime","audioDevice","file","keepTemp","release","from","to","focus","noMilestones","review","includeCommitHistory","includeRecentDiffs","includeReleaseNotes","includeGithubIssues","commitHistoryLimit","diffHistoryLimit","releaseNotesLimit","githubIssuesLimit","note","editorTimeout","maxContextErrors","directory","audioReview","publish","mergeMethod","targetVersion","dependencyUpdatePatterns","requiredEnvVars","linkWorkspacePackages","unlinkWorkspacePackages","checksTimeout","skipUserConfirmation","syncTarget","waitForReleaseWorkflows","releaseWorkflowsTimeout","releaseWorkflowNames","targetBranch","link","scopeRoots","record","packageArgument","unlink","workspaceFile","cleanNodeModules","tree","directories","excludedPatterns","startFrom","stopAt","cmd","parallel","builtInCommand","continue","development","versions","subcommand","openaiApiKey","commandName"],"mappings":"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"}
|
package/dist/util/openai.js
CHANGED
|
@@ -41,6 +41,54 @@ function _define_property(obj, key, value) {
|
|
|
41
41
|
// Return command-specific model if available, otherwise global model
|
|
42
42
|
return commandModel || config.model || 'gpt-4o-mini';
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the appropriate OpenAI reasoning level based on command-specific configuration
|
|
46
|
+
* Command-specific reasoning overrides the global reasoning setting
|
|
47
|
+
*/ function getOpenAIReasoningForCommand(config, commandName) {
|
|
48
|
+
let commandReasoning;
|
|
49
|
+
switch(commandName){
|
|
50
|
+
case 'commit':
|
|
51
|
+
case 'audio-commit':
|
|
52
|
+
var _config_commit;
|
|
53
|
+
commandReasoning = (_config_commit = config.commit) === null || _config_commit === void 0 ? void 0 : _config_commit.openaiReasoning;
|
|
54
|
+
break;
|
|
55
|
+
case 'release':
|
|
56
|
+
var _config_release;
|
|
57
|
+
commandReasoning = (_config_release = config.release) === null || _config_release === void 0 ? void 0 : _config_release.openaiReasoning;
|
|
58
|
+
break;
|
|
59
|
+
case 'review':
|
|
60
|
+
case 'audio-review':
|
|
61
|
+
var _config_review;
|
|
62
|
+
commandReasoning = (_config_review = config.review) === null || _config_review === void 0 ? void 0 : _config_review.openaiReasoning;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
// Return command-specific reasoning if available, otherwise global reasoning
|
|
66
|
+
return commandReasoning || config.openaiReasoning || 'low';
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get the appropriate OpenAI max output tokens based on command-specific configuration
|
|
70
|
+
* Command-specific max output tokens overrides the global setting
|
|
71
|
+
*/ function getOpenAIMaxOutputTokensForCommand(config, commandName) {
|
|
72
|
+
let commandMaxOutputTokens;
|
|
73
|
+
switch(commandName){
|
|
74
|
+
case 'commit':
|
|
75
|
+
case 'audio-commit':
|
|
76
|
+
var _config_commit;
|
|
77
|
+
commandMaxOutputTokens = (_config_commit = config.commit) === null || _config_commit === void 0 ? void 0 : _config_commit.openaiMaxOutputTokens;
|
|
78
|
+
break;
|
|
79
|
+
case 'release':
|
|
80
|
+
var _config_release;
|
|
81
|
+
commandMaxOutputTokens = (_config_release = config.release) === null || _config_release === void 0 ? void 0 : _config_release.openaiMaxOutputTokens;
|
|
82
|
+
break;
|
|
83
|
+
case 'review':
|
|
84
|
+
case 'audio-review':
|
|
85
|
+
var _config_review;
|
|
86
|
+
commandMaxOutputTokens = (_config_review = config.review) === null || _config_review === void 0 ? void 0 : _config_review.openaiMaxOutputTokens;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
// Return command-specific max output tokens if available, otherwise global setting
|
|
90
|
+
return commandMaxOutputTokens || config.openaiMaxOutputTokens || 10000;
|
|
91
|
+
}
|
|
44
92
|
class OpenAIError extends Error {
|
|
45
93
|
constructor(message, isTokenLimitError = false){
|
|
46
94
|
super(message), _define_property(this, "isTokenLimitError", void 0), this.isTokenLimitError = isTokenLimitError;
|
|
@@ -60,8 +108,12 @@ function isRateLimitError(error) {
|
|
|
60
108
|
if (error.status === 429 || error.code === 'rate_limit_exceeded') {
|
|
61
109
|
return true;
|
|
62
110
|
}
|
|
63
|
-
|
|
64
|
-
|
|
111
|
+
// Only check message if it exists
|
|
112
|
+
if (error.message) {
|
|
113
|
+
const message = error.message.toLowerCase();
|
|
114
|
+
return message.includes('rate limit exceeded') || message.includes('too many requests') || message.includes('quota exceeded') || message.includes('rate') && message.includes('limit');
|
|
115
|
+
}
|
|
116
|
+
return false;
|
|
65
117
|
}
|
|
66
118
|
async function createCompletion(messages, options = {
|
|
67
119
|
model: "gpt-4o-mini"
|
|
@@ -86,27 +138,36 @@ async function createCompletion(messages, options = {
|
|
|
86
138
|
const modelToUse = options.model || "gpt-4o-mini";
|
|
87
139
|
logger.info('🤖 Making request to OpenAI using model: %s', modelToUse);
|
|
88
140
|
logger.debug('Sending prompt to OpenAI: %j', messages);
|
|
89
|
-
|
|
90
|
-
|
|
141
|
+
var _options_openaiMaxOutputTokens, _ref;
|
|
142
|
+
// Use openaiMaxOutputTokens if specified (highest priority), otherwise fall back to maxTokens, or default to 10000
|
|
143
|
+
const maxCompletionTokens = (_ref = (_options_openaiMaxOutputTokens = options.openaiMaxOutputTokens) !== null && _options_openaiMaxOutputTokens !== void 0 ? _options_openaiMaxOutputTokens : options.maxTokens) !== null && _ref !== void 0 ? _ref : 10000;
|
|
91
144
|
// Save request debug file if enabled
|
|
92
145
|
if (options.debug && (options.debugRequestFile || options.debugFile)) {
|
|
93
146
|
const requestData = {
|
|
94
147
|
model: modelToUse,
|
|
95
148
|
messages,
|
|
96
149
|
max_completion_tokens: maxCompletionTokens,
|
|
97
|
-
response_format: options.responseFormat
|
|
150
|
+
response_format: options.responseFormat,
|
|
151
|
+
reasoning_effort: options.openaiReasoning
|
|
98
152
|
};
|
|
99
153
|
const debugFile = options.debugRequestFile || options.debugFile;
|
|
100
154
|
await storage.writeFile(debugFile, JSON.stringify(requestData, null, 2), 'utf8');
|
|
101
155
|
logger.debug('Wrote request debug file to %s', debugFile);
|
|
102
156
|
}
|
|
103
|
-
//
|
|
104
|
-
const
|
|
157
|
+
// Prepare the API call options
|
|
158
|
+
const apiOptions = {
|
|
105
159
|
model: modelToUse,
|
|
106
160
|
messages,
|
|
107
161
|
max_completion_tokens: maxCompletionTokens,
|
|
108
162
|
response_format: options.responseFormat
|
|
109
|
-
}
|
|
163
|
+
};
|
|
164
|
+
// Add reasoning parameter if specified and model supports it
|
|
165
|
+
if (options.openaiReasoning && (modelToUse.includes('gpt-5') || modelToUse.includes('o3'))) {
|
|
166
|
+
apiOptions.reasoning_effort = options.openaiReasoning;
|
|
167
|
+
logger.debug('Using OpenAI reasoning level: %s', options.openaiReasoning);
|
|
168
|
+
}
|
|
169
|
+
// Add timeout wrapper to the OpenAI API call
|
|
170
|
+
const completionPromise = openai.chat.completions.create(apiOptions);
|
|
110
171
|
// Create timeout promise with proper cleanup to prevent memory leaks
|
|
111
172
|
let timeoutId = null;
|
|
112
173
|
const timeoutPromise = new Promise((_, reject)=>{
|
|
@@ -280,5 +341,5 @@ async function transcribeAudio(filePath, options = {
|
|
|
280
341
|
}
|
|
281
342
|
}
|
|
282
343
|
|
|
283
|
-
export { OpenAIError, createCompletion, createCompletionWithRetry, getModelForCommand, isRateLimitError, isTokenLimitError, transcribeAudio };
|
|
344
|
+
export { OpenAIError, createCompletion, createCompletionWithRetry, getModelForCommand, getOpenAIMaxOutputTokensForCommand, getOpenAIReasoningForCommand, isRateLimitError, isTokenLimitError, transcribeAudio };
|
|
284
345
|
//# sourceMappingURL=openai.js.map
|