@eldrforge/kodrdriv 0.0.15 → 0.0.18
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/README.md +1 -9
- package/dist/arguments.js +38 -63
- package/dist/arguments.js.map +1 -1
- package/dist/audio/devices.js +284 -0
- package/dist/audio/devices.js.map +1 -0
- package/dist/audio/index.js +31 -0
- package/dist/audio/index.js.map +1 -0
- package/dist/audio/processor.js +766 -0
- package/dist/audio/processor.js.map +1 -0
- package/dist/audio/types.js +16 -0
- package/dist/audio/types.js.map +1 -0
- package/dist/audio/validation.js +35 -0
- package/dist/audio/validation.js.map +1 -0
- package/dist/commands/audio-commit.js +59 -634
- package/dist/commands/audio-commit.js.map +1 -1
- package/dist/commands/audio-review.js +68 -632
- package/dist/commands/audio-review.js.map +1 -1
- package/dist/commands/commit.js +23 -15
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/release.js +20 -12
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/review.js +64 -13
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/select-audio.js +265 -0
- package/dist/commands/select-audio.js.map +1 -0
- package/dist/constants.js +17 -9
- package/dist/constants.js.map +1 -1
- package/dist/content/issues.js +16 -0
- package/dist/content/issues.js.map +1 -1
- package/dist/main.js +9 -3
- package/dist/main.js.map +1 -1
- package/dist/prompt/commit.js +64 -0
- package/dist/prompt/commit.js.map +1 -0
- package/dist/prompt/personas/you.md +49 -5
- package/dist/prompt/release.js +52 -0
- package/dist/prompt/release.js.map +1 -0
- package/dist/prompt/review.js +64 -0
- package/dist/prompt/review.js.map +1 -0
- package/dist/types.js +5 -3
- package/dist/types.js.map +1 -1
- package/dist/util/openai.js +34 -3
- package/dist/util/openai.js.map +1 -1
- package/package.json +2 -2
- package/.kodrdriv/config.yaml +0 -20
- package/.kodrdriv/context/content.md +0 -7
- package/RELEASE_NOTES.md +0 -14
- package/dist/prompt/personas/committer.md +0 -29
- package/dist/prompt/personas/reviewer.md +0 -29
- package/dist/prompt/prompts.js +0 -160
- package/dist/prompt/prompts.js.map +0 -1
- package/docs/index.html +0 -17
- package/docs/package.json +0 -36
- package/docs/pnpm-lock.yaml +0 -3441
- package/docs/public/README.md +0 -132
- package/docs/public/advanced-usage.md +0 -188
- package/docs/public/code-icon.svg +0 -4
- package/docs/public/commands.md +0 -136
- package/docs/public/configuration.md +0 -274
- package/docs/public/examples.md +0 -352
- package/docs/public/kodrdriv-logo.svg +0 -62
- package/docs/src/App.css +0 -387
- package/docs/src/App.tsx +0 -60
- package/docs/src/components/DocumentPage.tsx +0 -56
- package/docs/src/components/ErrorMessage.tsx +0 -15
- package/docs/src/components/LoadingSpinner.tsx +0 -14
- package/docs/src/components/MarkdownRenderer.tsx +0 -56
- package/docs/src/components/Navigation.css +0 -73
- package/docs/src/components/Navigation.tsx +0 -36
- package/docs/src/index.css +0 -61
- package/docs/src/main.tsx +0 -10
- package/docs/src/test/setup.ts +0 -1
- package/docs/src/vite-env.d.ts +0 -10
- package/docs/tsconfig.node.json +0 -13
- package/docs/vite.config.ts +0 -15
- package/docs/vitest.config.ts +0 -15
- package/eslint.config.mjs +0 -83
- package/nodemon.json +0 -14
- package/output/kodrdriv/250702-0552-release-notes.md +0 -3
- package/pnpm-workspace.yaml +0 -5
- package/tsconfig.tsbuildinfo +0 -1
- package/vite.config.ts +0 -90
- package/vitest.config.ts +0 -24
package/dist/constants.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import os from 'os';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
|
|
4
|
+
const VERSION = '0.0.18 (HEAD/9b5bba0 T:v0.0.18 2025-07-02 21:45:28 -0700) linux x64 v22.16.0';
|
|
2
5
|
const PROGRAM_NAME = 'kodrdriv';
|
|
3
|
-
const DEFAULT_CHARACTER_ENCODING = 'utf-8';
|
|
4
6
|
const DEFAULT_OVERRIDES = false;
|
|
5
7
|
const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS = 'YYYY-MM-DD-HHmmss';
|
|
6
8
|
const DEFAULT_VERBOSE = false;
|
|
@@ -10,6 +12,7 @@ const DEFAULT_MODEL = 'gpt-4o-mini';
|
|
|
10
12
|
const DEFAULT_OUTPUT_DIRECTORY = 'output/kodrdriv';
|
|
11
13
|
const DEFAULT_CONTEXT_DIRECTORIES = [];
|
|
12
14
|
const DEFAULT_CONFIG_DIR = '.kodrdriv';
|
|
15
|
+
const DEFAULT_PREFERENCES_DIRECTORY = path.join(os.homedir(), '.kodrdriv');
|
|
13
16
|
const DEFAULT_FROM_COMMIT_ALIAS = 'origin/HEAD';
|
|
14
17
|
const DEFAULT_TO_COMMIT_ALIAS = 'HEAD';
|
|
15
18
|
const DEFAULT_ADD = false;
|
|
@@ -56,6 +59,7 @@ const DEFAULT_EXCLUDED_PATTERNS = [
|
|
|
56
59
|
];
|
|
57
60
|
const COMMAND_COMMIT = 'commit';
|
|
58
61
|
const COMMAND_AUDIO_COMMIT = 'audio-commit';
|
|
62
|
+
const COMMAND_SELECT_AUDIO = 'select-audio';
|
|
59
63
|
const COMMAND_RELEASE = 'release';
|
|
60
64
|
const COMMAND_REVIEW = 'review';
|
|
61
65
|
const COMMAND_AUDIO_REVIEW = 'audio-review';
|
|
@@ -68,6 +72,7 @@ const COMMAND_INIT_CONFIG = 'init-config';
|
|
|
68
72
|
const ALLOWED_COMMANDS = [
|
|
69
73
|
COMMAND_COMMIT,
|
|
70
74
|
COMMAND_AUDIO_COMMIT,
|
|
75
|
+
COMMAND_SELECT_AUDIO,
|
|
71
76
|
COMMAND_RELEASE,
|
|
72
77
|
COMMAND_REVIEW,
|
|
73
78
|
COMMAND_AUDIO_REVIEW,
|
|
@@ -81,10 +86,9 @@ const DEFAULT_INSTRUCTIONS_DIR = `instructions`;
|
|
|
81
86
|
const DEFAULT_PERSONA_DIR = `personas`;
|
|
82
87
|
const DEFAULT_INSTRUCTIONS_COMMIT_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/commit.md`;
|
|
83
88
|
const DEFAULT_INSTRUCTIONS_RELEASE_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/release.md`;
|
|
84
|
-
const
|
|
85
|
-
const DEFAULT_PERSONA_COMMITTER_FILE = `${DEFAULT_PERSONA_DIR}/committer.md`;
|
|
89
|
+
const DEFAULT_INSTRUCTIONS_REVIEW_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/review.md`;
|
|
86
90
|
const DEFAULT_PERSONA_RELEASER_FILE = `${DEFAULT_PERSONA_DIR}/releaser.md`;
|
|
87
|
-
const
|
|
91
|
+
const DEFAULT_PERSONA_YOU_FILE = `${DEFAULT_PERSONA_DIR}/you.md`;
|
|
88
92
|
// Define defaults in one place
|
|
89
93
|
const KODRDRIV_DEFAULTS = {
|
|
90
94
|
dryRun: DEFAULT_DRY_RUN,
|
|
@@ -92,11 +96,11 @@ const KODRDRIV_DEFAULTS = {
|
|
|
92
96
|
debug: DEFAULT_DEBUG,
|
|
93
97
|
overrides: DEFAULT_OVERRIDES,
|
|
94
98
|
model: DEFAULT_MODEL,
|
|
95
|
-
instructions: DEFAULT_INSTRUCTIONS_DIR,
|
|
96
99
|
contextDirectories: DEFAULT_CONTEXT_DIRECTORIES,
|
|
97
100
|
commandName: DEFAULT_COMMAND,
|
|
98
101
|
configDirectory: DEFAULT_CONFIG_DIR,
|
|
99
102
|
outputDirectory: DEFAULT_OUTPUT_DIRECTORY,
|
|
103
|
+
preferencesDirectory: DEFAULT_PREFERENCES_DIRECTORY,
|
|
100
104
|
commit: {
|
|
101
105
|
add: DEFAULT_ADD,
|
|
102
106
|
cached: DEFAULT_CACHED,
|
|
@@ -132,14 +136,18 @@ const KODRDRIV_DEFAULTS = {
|
|
|
132
136
|
diffHistoryLimit: 5,
|
|
133
137
|
releaseNotesLimit: 3,
|
|
134
138
|
githubIssuesLimit: 20,
|
|
135
|
-
sendit: DEFAULT_SENDIT_MODE
|
|
139
|
+
sendit: DEFAULT_SENDIT_MODE,
|
|
140
|
+
maxRecordingTime: 300,
|
|
141
|
+
audioDevice: undefined
|
|
136
142
|
},
|
|
137
143
|
publish: {
|
|
138
144
|
mergeMethod: DEFAULT_MERGE_METHOD,
|
|
139
145
|
requiredEnvVars: [
|
|
140
146
|
'GITHUB_TOKEN',
|
|
141
147
|
'OPENAI_API_KEY'
|
|
142
|
-
]
|
|
148
|
+
],
|
|
149
|
+
linkWorkspacePackages: true,
|
|
150
|
+
unlinkWorkspacePackages: true
|
|
143
151
|
},
|
|
144
152
|
link: {
|
|
145
153
|
scopeRoots: {},
|
|
@@ -149,5 +157,5 @@ const KODRDRIV_DEFAULTS = {
|
|
|
149
157
|
excludedPatterns: DEFAULT_EXCLUDED_PATTERNS
|
|
150
158
|
};
|
|
151
159
|
|
|
152
|
-
export { ALLOWED_COMMANDS, COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_UNLINK, DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS, DEFAULT_ADD, DEFAULT_CACHED,
|
|
160
|
+
export { ALLOWED_COMMANDS, COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_UNLINK, DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS, DEFAULT_ADD, DEFAULT_CACHED, DEFAULT_COMMAND, DEFAULT_CONFIG_DIR, DEFAULT_CONTEXT_DIRECTORIES, DEFAULT_DEBUG, DEFAULT_DRY_RUN, DEFAULT_EXCLUDED_PATTERNS, DEFAULT_FROM_COMMIT_ALIAS, DEFAULT_INSTRUCTIONS_COMMIT_FILE, DEFAULT_INSTRUCTIONS_DIR, DEFAULT_INSTRUCTIONS_RELEASE_FILE, DEFAULT_INSTRUCTIONS_REVIEW_FILE, DEFAULT_MERGE_METHOD, DEFAULT_MESSAGE_LIMIT, DEFAULT_MODEL, DEFAULT_OUTPUT_DIRECTORY, DEFAULT_OVERRIDES, DEFAULT_PERSONA_DIR, DEFAULT_PERSONA_RELEASER_FILE, DEFAULT_PERSONA_YOU_FILE, DEFAULT_PREFERENCES_DIRECTORY, DEFAULT_SENDIT_MODE, DEFAULT_TO_COMMIT_ALIAS, DEFAULT_VERBOSE, KODRDRIV_DEFAULTS, PROGRAM_NAME, VERSION };
|
|
153
161
|
//# 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';\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\nexport const DEFAULT_CONTEXT_DIRECTORIES: string[] = [];\n\nexport const DEFAULT_CONFIG_DIR = '.kodrdriv';\n\nexport const DEFAULT_FROM_COMMIT_ALIAS = 'origin/HEAD';\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_MESSAGE_LIMIT = 50;\n\nexport const DEFAULT_MERGE_METHOD: MergeMethod = 'squash';\n\nexport const DEFAULT_EXCLUDED_PATTERNS = [\n 'node_modules', 'pnpm-lock.yaml', '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_RELEASE = 'release';\nexport const COMMAND_REVIEW = 'review';\nexport const COMMAND_AUDIO_REVIEW = 'audio-review';\nexport const COMMAND_PUBLISH = 'publish';\nexport const COMMAND_LINK = 'link';\nexport const COMMAND_UNLINK = 'unlink';\nexport const COMMAND_CLEAN = 'clean';\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_RELEASE,\n COMMAND_REVIEW,\n COMMAND_AUDIO_REVIEW,\n COMMAND_PUBLISH,\n COMMAND_LINK,\n COMMAND_UNLINK,\n COMMAND_CLEAN\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_AUDIO_REVIEW_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/review.md`;\n\nexport const DEFAULT_PERSONA_COMMITTER_FILE = `${DEFAULT_PERSONA_DIR}/committer.md`;\nexport const DEFAULT_PERSONA_RELEASER_FILE = `${DEFAULT_PERSONA_DIR}/releaser.md`;\nexport const DEFAULT_PERSONA_REVIEWER_FILE = `${DEFAULT_PERSONA_DIR}/reviewer.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_AUDIO_REVIEW_FILE, // Reuse audio-review instructions for now\n [COMMAND_AUDIO_REVIEW]: DEFAULT_INSTRUCTIONS_AUDIO_REVIEW_FILE,\n};\n\n// Default personas for each command\nexport const DEFAULT_PERSONA_MAP = {\n [COMMAND_COMMIT]: DEFAULT_PERSONA_COMMITTER_FILE,\n [COMMAND_AUDIO_COMMIT]: DEFAULT_PERSONA_COMMITTER_FILE, // Reuse committer persona\n [COMMAND_RELEASE]: DEFAULT_PERSONA_RELEASER_FILE,\n [COMMAND_REVIEW]: DEFAULT_PERSONA_REVIEWER_FILE, // Reuse reviewer persona\n [COMMAND_AUDIO_REVIEW]: DEFAULT_PERSONA_REVIEWER_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 instructions: DEFAULT_INSTRUCTIONS_DIR,\n contextDirectories: DEFAULT_CONTEXT_DIRECTORIES,\n commandName: DEFAULT_COMMAND,\n configDirectory: DEFAULT_CONFIG_DIR,\n outputDirectory: DEFAULT_OUTPUT_DIRECTORY,\n commit: {\n add: DEFAULT_ADD,\n cached: DEFAULT_CACHED,\n sendit: DEFAULT_SENDIT_MODE,\n messageLimit: DEFAULT_MESSAGE_LIMIT,\n },\n release: {\n from: DEFAULT_FROM_COMMIT_ALIAS,\n to: DEFAULT_TO_COMMIT_ALIAS,\n messageLimit: DEFAULT_MESSAGE_LIMIT,\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 },\n publish: {\n mergeMethod: DEFAULT_MERGE_METHOD,\n requiredEnvVars: ['GITHUB_TOKEN', 'OPENAI_API_KEY'],\n },\n link: {\n scopeRoots: {},\n workspaceFile: 'pnpm-workspace.yaml',\n dryRun: false,\n },\n excludedPatterns: DEFAULT_EXCLUDED_PATTERNS,\n};"],"names":["VERSION","PROGRAM_NAME","DEFAULT_CHARACTER_ENCODING","DEFAULT_OVERRIDES","DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS","DEFAULT_VERBOSE","DEFAULT_DRY_RUN","DEFAULT_DEBUG","DEFAULT_MODEL","DEFAULT_OUTPUT_DIRECTORY","DEFAULT_CONTEXT_DIRECTORIES","DEFAULT_CONFIG_DIR","DEFAULT_FROM_COMMIT_ALIAS","DEFAULT_TO_COMMIT_ALIAS","DEFAULT_ADD","DEFAULT_CACHED","DEFAULT_SENDIT_MODE","DEFAULT_MESSAGE_LIMIT","DEFAULT_MERGE_METHOD","DEFAULT_EXCLUDED_PATTERNS","COMMAND_COMMIT","COMMAND_AUDIO_COMMIT","COMMAND_RELEASE","COMMAND_REVIEW","COMMAND_AUDIO_REVIEW","COMMAND_PUBLISH","COMMAND_LINK","COMMAND_UNLINK","COMMAND_CLEAN","COMMAND_CHECK_CONFIG","COMMAND_INIT_CONFIG","ALLOWED_COMMANDS","DEFAULT_COMMAND","DEFAULT_INSTRUCTIONS_DIR","DEFAULT_PERSONA_DIR","DEFAULT_INSTRUCTIONS_COMMIT_FILE","DEFAULT_INSTRUCTIONS_RELEASE_FILE","DEFAULT_INSTRUCTIONS_AUDIO_REVIEW_FILE","DEFAULT_PERSONA_COMMITTER_FILE","DEFAULT_PERSONA_RELEASER_FILE","DEFAULT_PERSONA_REVIEWER_FILE","KODRDRIV_DEFAULTS","dryRun","verbose","debug","overrides","model","instructions","contextDirectories","commandName","configDirectory","outputDirectory","commit","add","cached","sendit","messageLimit","release","from","to","audioCommit","maxRecordingTime","audioDevice","undefined","review","includeCommitHistory","includeRecentDiffs","includeReleaseNotes","includeGithubIssues","commitHistoryLimit","diffHistoryLimit","releaseNotesLimit","githubIssuesLimit","audioReview","publish","mergeMethod","requiredEnvVars","link","scopeRoots","workspaceFile","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_OUTPUT_DIRECTORY = 'output/kodrdriv';\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 = 'origin/HEAD';\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_MESSAGE_LIMIT = 50;\n\nexport const DEFAULT_MERGE_METHOD: MergeMethod = 'squash';\n\nexport const DEFAULT_EXCLUDED_PATTERNS = [\n 'node_modules', 'pnpm-lock.yaml', '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_LINK = 'link';\nexport const COMMAND_UNLINK = 'unlink';\nexport const COMMAND_CLEAN = 'clean';\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_LINK,\n COMMAND_UNLINK,\n COMMAND_CLEAN\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 messageLimit: DEFAULT_MESSAGE_LIMIT,\n },\n release: {\n from: DEFAULT_FROM_COMMIT_ALIAS,\n to: DEFAULT_TO_COMMIT_ALIAS,\n messageLimit: DEFAULT_MESSAGE_LIMIT,\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 },\n publish: {\n mergeMethod: DEFAULT_MERGE_METHOD,\n requiredEnvVars: ['GITHUB_TOKEN', 'OPENAI_API_KEY'],\n linkWorkspacePackages: true,\n unlinkWorkspacePackages: true,\n },\n link: {\n scopeRoots: {},\n workspaceFile: 'pnpm-workspace.yaml',\n dryRun: false,\n },\n excludedPatterns: DEFAULT_EXCLUDED_PATTERNS,\n};"],"names":["VERSION","PROGRAM_NAME","DEFAULT_OVERRIDES","DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS","DEFAULT_VERBOSE","DEFAULT_DRY_RUN","DEFAULT_DEBUG","DEFAULT_MODEL","DEFAULT_OUTPUT_DIRECTORY","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_MESSAGE_LIMIT","DEFAULT_MERGE_METHOD","DEFAULT_EXCLUDED_PATTERNS","COMMAND_COMMIT","COMMAND_AUDIO_COMMIT","COMMAND_SELECT_AUDIO","COMMAND_RELEASE","COMMAND_REVIEW","COMMAND_AUDIO_REVIEW","COMMAND_PUBLISH","COMMAND_LINK","COMMAND_UNLINK","COMMAND_CLEAN","COMMAND_CHECK_CONFIG","COMMAND_INIT_CONFIG","ALLOWED_COMMANDS","DEFAULT_COMMAND","DEFAULT_INSTRUCTIONS_DIR","DEFAULT_PERSONA_DIR","DEFAULT_INSTRUCTIONS_COMMIT_FILE","DEFAULT_INSTRUCTIONS_RELEASE_FILE","DEFAULT_INSTRUCTIONS_REVIEW_FILE","DEFAULT_PERSONA_RELEASER_FILE","DEFAULT_PERSONA_YOU_FILE","KODRDRIV_DEFAULTS","dryRun","verbose","debug","overrides","model","contextDirectories","commandName","configDirectory","outputDirectory","preferencesDirectory","commit","add","cached","sendit","messageLimit","release","from","to","audioCommit","maxRecordingTime","audioDevice","undefined","review","includeCommitHistory","includeRecentDiffs","includeReleaseNotes","includeGithubIssues","commitHistoryLimit","diffHistoryLimit","releaseNotesLimit","githubIssuesLimit","audioReview","publish","mergeMethod","requiredEnvVars","linkWorkspacePackages","unlinkWorkspacePackages","link","scopeRoots","workspaceFile","excludedPatterns"],"mappings":"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"}
|
package/dist/content/issues.js
CHANGED
|
@@ -30,6 +30,10 @@ async function getUserChoice(prompt, choices) {
|
|
|
30
30
|
});
|
|
31
31
|
logger.info('');
|
|
32
32
|
return new Promise((resolve)=>{
|
|
33
|
+
// Ensure stdin is referenced so the process doesn't exit while waiting for input
|
|
34
|
+
if (typeof process.stdin.ref === 'function') {
|
|
35
|
+
process.stdin.ref();
|
|
36
|
+
}
|
|
33
37
|
process.stdin.setRawMode(true);
|
|
34
38
|
process.stdin.resume();
|
|
35
39
|
process.stdin.on('data', (key)=>{
|
|
@@ -38,6 +42,10 @@ async function getUserChoice(prompt, choices) {
|
|
|
38
42
|
if (choice) {
|
|
39
43
|
process.stdin.setRawMode(false);
|
|
40
44
|
process.stdin.pause();
|
|
45
|
+
// Detach stdin again now that we're done
|
|
46
|
+
if (typeof process.stdin.unref === 'function') {
|
|
47
|
+
process.stdin.unref();
|
|
48
|
+
}
|
|
41
49
|
logger.info(`Selected: ${choice.label}\n`);
|
|
42
50
|
resolve(choice.key);
|
|
43
51
|
}
|
|
@@ -48,6 +56,10 @@ async function getUserChoice(prompt, choices) {
|
|
|
48
56
|
async function editIssueInteractively(issue) {
|
|
49
57
|
const logger = getLogger();
|
|
50
58
|
const readline = await import('readline');
|
|
59
|
+
// Ensure stdin is referenced during readline interaction
|
|
60
|
+
if (typeof process.stdin.ref === 'function') {
|
|
61
|
+
process.stdin.ref();
|
|
62
|
+
}
|
|
51
63
|
const rl = readline.createInterface({
|
|
52
64
|
input: process.stdin,
|
|
53
65
|
output: process.stdout
|
|
@@ -74,6 +86,10 @@ async function editIssueInteractively(issue) {
|
|
|
74
86
|
return updatedIssue;
|
|
75
87
|
} finally{
|
|
76
88
|
rl.close();
|
|
89
|
+
// Detach stdin after interactive edit completes
|
|
90
|
+
if (typeof process.stdin.unref === 'function') {
|
|
91
|
+
process.stdin.unref();
|
|
92
|
+
}
|
|
77
93
|
}
|
|
78
94
|
}
|
|
79
95
|
// Helper function to format issue body for GitHub
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.js","sources":["../../src/content/issues.ts"],"sourcesContent":["import { getLogger } from '../logging';\nimport { getOpenIssues, createIssue } from '../util/github';\n\nexport interface Issue {\n title: string;\n description: string;\n priority: 'low' | 'medium' | 'high';\n category: 'ui' | 'content' | 'functionality' | 'accessibility' | 'performance' | 'other';\n suggestions?: string[];\n}\n\nexport interface ReviewResult {\n summary: string;\n totalIssues: number;\n issues: Issue[];\n}\n\n// Get GitHub issues content\nexport const get = async (options: { limit?: number } = {}): Promise<string> => {\n const logger = getLogger();\n const { limit = 20 } = options;\n\n try {\n logger.debug('Fetching open GitHub issues...');\n const issuesLimit = Math.min(limit, 20); // Cap at 20\n const githubIssues = await getOpenIssues(issuesLimit);\n\n if (githubIssues.trim()) {\n logger.debug('Added GitHub issues to context (%d characters)', githubIssues.length);\n return githubIssues;\n } else {\n logger.debug('No open GitHub issues found');\n return '';\n }\n } catch (error: any) {\n logger.warn('Failed to fetch GitHub issues: %s', error.message);\n return '';\n }\n};\n\n// Helper function to get user choice interactively\nasync function getUserChoice(prompt: string, choices: Array<{ key: string, label: string }>): Promise<string> {\n const logger = getLogger();\n\n logger.info(prompt);\n choices.forEach(choice => {\n logger.info(` [${choice.key}] ${choice.label}`);\n });\n logger.info('');\n\n return new Promise(resolve => {\n process.stdin.setRawMode(true);\n process.stdin.resume();\n process.stdin.on('data', (key) => {\n const keyStr = key.toString().toLowerCase();\n const choice = choices.find(c => c.key === keyStr);\n if (choice) {\n process.stdin.setRawMode(false);\n process.stdin.pause();\n logger.info(`Selected: ${choice.label}\\n`);\n resolve(choice.key);\n }\n });\n });\n}\n\n// Helper function to edit issue interactively\nasync function editIssueInteractively(issue: Issue): Promise<Issue> {\n const logger = getLogger();\n const readline = await import('readline');\n\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout\n });\n\n const question = (prompt: string): Promise<string> => {\n return new Promise(resolve => {\n rl.question(prompt, resolve);\n });\n };\n\n try {\n logger.info('📝 Edit issue details (press Enter to keep current value):');\n\n const newTitle = await question(`Title [${issue.title}]: `);\n const newDescription = await question(`Description [${issue.description}]: `);\n const newPriority = await question(`Priority (low/medium/high) [${issue.priority}]: `);\n const newCategory = await question(`Category (ui/content/functionality/accessibility/performance/other) [${issue.category}]: `);\n\n const updatedIssue: Issue = {\n title: newTitle.trim() || issue.title,\n description: newDescription.trim() || issue.description,\n priority: (newPriority.trim() as any) || issue.priority,\n category: (newCategory.trim() as any) || issue.category,\n suggestions: issue.suggestions\n };\n\n logger.info('✅ Issue updated successfully');\n return updatedIssue;\n } finally {\n rl.close();\n }\n}\n\n// Helper function to format issue body for GitHub\nfunction formatIssueBody(issue: Issue): string {\n let body = `## Description\\n\\n${issue.description}\\n\\n`;\n\n body += `## Details\\n\\n`;\n body += `- **Priority:** ${issue.priority}\\n`;\n body += `- **Category:** ${issue.category}\\n`;\n body += `- **Source:** Review\\n\\n`;\n\n if (issue.suggestions && issue.suggestions.length > 0) {\n body += `## Suggestions\\n\\n`;\n issue.suggestions.forEach(suggestion => {\n body += `- ${suggestion}\\n`;\n });\n body += '\\n';\n }\n\n body += `---\\n\\n`;\n body += `*This issue was automatically created from a review session.*`;\n\n return body;\n}\n\n// Helper function to format results with created GitHub issues\nfunction formatReviewResultsWithIssues(\n result: ReviewResult,\n createdIssues: Array<{ issue: Issue, githubUrl: string, number: number }>\n): string {\n let output = `📝 Review Results\\n\\n`;\n output += `📋 Summary: ${result.summary}\\n`;\n output += `📊 Total Issues Found: ${result.totalIssues}\\n`;\n output += `🚀 GitHub Issues Created: ${createdIssues.length}\\n\\n`;\n\n if (result.issues && result.issues.length > 0) {\n output += `📝 Issues Identified:\\n\\n`;\n\n result.issues.forEach((issue, index) => {\n const priorityEmoji = issue.priority === 'high' ? '🔴' :\n issue.priority === 'medium' ? '🟡' : '🟢';\n const categoryEmoji = issue.category === 'ui' ? '🎨' :\n issue.category === 'content' ? '📝' :\n issue.category === 'functionality' ? '⚙️' :\n issue.category === 'accessibility' ? '♿' :\n issue.category === 'performance' ? '⚡' : '🔧';\n\n output += `${index + 1}. ${priorityEmoji} ${issue.title}\\n`;\n output += ` ${categoryEmoji} Category: ${issue.category} | Priority: ${issue.priority}\\n`;\n output += ` 📖 Description: ${issue.description}\\n`;\n\n // Check if this issue was created as a GitHub issue\n const createdIssue = createdIssues.find(ci => ci.issue === issue);\n if (createdIssue) {\n output += ` 🔗 GitHub Issue: #${createdIssue.number} - ${createdIssue.githubUrl}\\n`;\n }\n\n if (issue.suggestions && issue.suggestions.length > 0) {\n output += ` 💡 Suggestions:\\n`;\n issue.suggestions.forEach(suggestion => {\n output += ` • ${suggestion}\\n`;\n });\n }\n output += `\\n`;\n });\n } else {\n output += `✅ No specific issues identified from the review.\\n\\n`;\n }\n\n if (createdIssues.length > 0) {\n output += `\\n🎯 Created GitHub Issues:\\n`;\n createdIssues.forEach(createdIssue => {\n output += `• #${createdIssue.number}: ${createdIssue.issue.title} - ${createdIssue.githubUrl}\\n`;\n });\n output += `\\n`;\n }\n\n output += `🚀 Next Steps: Review the created GitHub issues and prioritize them in your development workflow.`;\n\n return output;\n}\n\nfunction formatReviewResults(result: ReviewResult): string {\n let output = `📝 Review Results\\n\\n`;\n output += `📋 Summary: ${result.summary}\\n`;\n output += `📊 Total Issues Found: ${result.totalIssues}\\n\\n`;\n\n if (result.issues && result.issues.length > 0) {\n output += `📝 Issues Identified:\\n\\n`;\n\n result.issues.forEach((issue, index) => {\n const priorityEmoji = issue.priority === 'high' ? '🔴' :\n issue.priority === 'medium' ? '🟡' : '🟢';\n const categoryEmoji = issue.category === 'ui' ? '🎨' :\n issue.category === 'content' ? '📝' :\n issue.category === 'functionality' ? '⚙️' :\n issue.category === 'accessibility' ? '♿' :\n issue.category === 'performance' ? '⚡' : '🔧';\n\n output += `${index + 1}. ${priorityEmoji} ${issue.title}\\n`;\n output += ` ${categoryEmoji} Category: ${issue.category} | Priority: ${issue.priority}\\n`;\n output += ` 📖 Description: ${issue.description}\\n`;\n\n if (issue.suggestions && issue.suggestions.length > 0) {\n output += ` 💡 Suggestions:\\n`;\n issue.suggestions.forEach(suggestion => {\n output += ` • ${suggestion}\\n`;\n });\n }\n output += `\\n`;\n });\n } else {\n output += `✅ No specific issues identified from the review.\\n\\n`;\n }\n\n output += `🚀 Next Steps: Review the identified issues and prioritize them for your development workflow.`;\n\n return output;\n}\n\n// Handle GitHub issue creation workflow\nexport const handleIssueCreation = async (\n result: ReviewResult,\n senditMode: boolean = false\n): Promise<string> => {\n const logger = getLogger();\n const createdIssues: Array<{ issue: Issue, githubUrl: string, number: number }> = [];\n\n if (!result.issues || result.issues.length === 0) {\n return formatReviewResults(result);\n }\n\n logger.info(`🔍 Found ${result.issues.length} issues to potentially create as GitHub issues`);\n\n for (let i = 0; i < result.issues.length; i++) {\n const issue = result.issues[i];\n let shouldCreateIssue = senditMode;\n\n if (!senditMode) {\n // Interactive confirmation for each issue\n logger.info(`\\n📋 Issue ${i + 1} of ${result.issues.length}:`);\n logger.info(` Title: ${issue.title}`);\n logger.info(` Priority: ${issue.priority} | Category: ${issue.category}`);\n logger.info(` Description: ${issue.description}`);\n if (issue.suggestions && issue.suggestions.length > 0) {\n logger.info(` Suggestions: ${issue.suggestions.join(', ')}`);\n }\n\n // Get user choice\n const choice = await getUserChoice('\\nWhat would you like to do with this issue?', [\n { key: 'c', label: 'Create GitHub issue' },\n { key: 's', label: 'Skip this issue' },\n { key: 'e', label: 'Edit issue details' }\n ]);\n\n if (choice === 'c') {\n shouldCreateIssue = true;\n } else if (choice === 'e') {\n // Allow user to edit the issue\n const editedIssue = await editIssueInteractively(issue);\n result.issues[i] = editedIssue;\n shouldCreateIssue = true;\n }\n // If choice is 's', shouldCreateIssue remains false\n }\n\n if (shouldCreateIssue) {\n try {\n logger.info(`🚀 Creating GitHub issue: \"${issue.title}\"`);\n\n // Format issue body with additional details\n const issueBody = formatIssueBody(issue);\n\n // Create labels based on priority and category\n const labels = [\n `priority-${issue.priority}`,\n `category-${issue.category}`,\n 'review'\n ];\n\n const createdIssue = await createIssue(issue.title, issueBody, labels);\n createdIssues.push({\n issue,\n githubUrl: createdIssue.html_url,\n number: createdIssue.number\n });\n\n logger.info(`✅ Created GitHub issue #${createdIssue.number}: ${createdIssue.html_url}`);\n } catch (error: any) {\n logger.error(`❌ Failed to create GitHub issue for \"${issue.title}\": ${error.message}`);\n }\n }\n }\n\n // Return formatted results\n if (createdIssues.length > 0) {\n return formatReviewResultsWithIssues(result, createdIssues);\n } else {\n return formatReviewResults(result);\n }\n}; "],"names":["get","options","logger","getLogger","limit","debug","issuesLimit","Math","min","githubIssues","getOpenIssues","trim","length","error","warn","message","getUserChoice","prompt","choices","info","forEach","choice","key","label","Promise","resolve","process","stdin","setRawMode","resume","on","keyStr","toString","toLowerCase","find","c","pause","editIssueInteractively","issue","readline","rl","createInterface","input","output","stdout","question","newTitle","title","newDescription","description","newPriority","priority","newCategory","category","updatedIssue","suggestions","close","formatIssueBody","body","suggestion","formatReviewResultsWithIssues","result","createdIssues","summary","totalIssues","issues","index","priorityEmoji","categoryEmoji","createdIssue","ci","number","githubUrl","formatReviewResults","handleIssueCreation","senditMode","i","shouldCreateIssue","join","editedIssue","issueBody","labels","createIssue","push","html_url"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"issues.js","sources":["../../src/content/issues.ts"],"sourcesContent":["import { getLogger } from '../logging';\nimport { getOpenIssues, createIssue } from '../util/github';\n\nexport interface Issue {\n title: string;\n description: string;\n priority: 'low' | 'medium' | 'high';\n category: 'ui' | 'content' | 'functionality' | 'accessibility' | 'performance' | 'other';\n suggestions?: string[];\n}\n\nexport interface ReviewResult {\n summary: string;\n totalIssues: number;\n issues: Issue[];\n}\n\n// Get GitHub issues content\nexport const get = async (options: { limit?: number } = {}): Promise<string> => {\n const logger = getLogger();\n const { limit = 20 } = options;\n\n try {\n logger.debug('Fetching open GitHub issues...');\n const issuesLimit = Math.min(limit, 20); // Cap at 20\n const githubIssues = await getOpenIssues(issuesLimit);\n\n if (githubIssues.trim()) {\n logger.debug('Added GitHub issues to context (%d characters)', githubIssues.length);\n return githubIssues;\n } else {\n logger.debug('No open GitHub issues found');\n return '';\n }\n } catch (error: any) {\n logger.warn('Failed to fetch GitHub issues: %s', error.message);\n return '';\n }\n};\n\n// Helper function to get user choice interactively\nasync function getUserChoice(prompt: string, choices: Array<{ key: string, label: string }>): Promise<string> {\n const logger = getLogger();\n\n logger.info(prompt);\n choices.forEach(choice => {\n logger.info(` [${choice.key}] ${choice.label}`);\n });\n logger.info('');\n\n return new Promise(resolve => {\n // Ensure stdin is referenced so the process doesn't exit while waiting for input\n if (typeof process.stdin.ref === 'function') {\n process.stdin.ref();\n }\n\n process.stdin.setRawMode(true);\n process.stdin.resume();\n process.stdin.on('data', (key) => {\n const keyStr = key.toString().toLowerCase();\n const choice = choices.find(c => c.key === keyStr);\n if (choice) {\n process.stdin.setRawMode(false);\n process.stdin.pause();\n // Detach stdin again now that we're done\n if (typeof process.stdin.unref === 'function') {\n process.stdin.unref();\n }\n logger.info(`Selected: ${choice.label}\\n`);\n resolve(choice.key);\n }\n });\n });\n}\n\n// Helper function to edit issue interactively\nasync function editIssueInteractively(issue: Issue): Promise<Issue> {\n const logger = getLogger();\n const readline = await import('readline');\n\n // Ensure stdin is referenced during readline interaction\n if (typeof process.stdin.ref === 'function') {\n process.stdin.ref();\n }\n\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout\n });\n\n const question = (prompt: string): Promise<string> => {\n return new Promise(resolve => {\n rl.question(prompt, resolve);\n });\n };\n\n try {\n logger.info('📝 Edit issue details (press Enter to keep current value):');\n\n const newTitle = await question(`Title [${issue.title}]: `);\n const newDescription = await question(`Description [${issue.description}]: `);\n const newPriority = await question(`Priority (low/medium/high) [${issue.priority}]: `);\n const newCategory = await question(`Category (ui/content/functionality/accessibility/performance/other) [${issue.category}]: `);\n\n const updatedIssue: Issue = {\n title: newTitle.trim() || issue.title,\n description: newDescription.trim() || issue.description,\n priority: (newPriority.trim() as any) || issue.priority,\n category: (newCategory.trim() as any) || issue.category,\n suggestions: issue.suggestions\n };\n\n logger.info('✅ Issue updated successfully');\n return updatedIssue;\n } finally {\n rl.close();\n // Detach stdin after interactive edit completes\n if (typeof process.stdin.unref === 'function') {\n process.stdin.unref();\n }\n }\n}\n\n// Helper function to format issue body for GitHub\nfunction formatIssueBody(issue: Issue): string {\n let body = `## Description\\n\\n${issue.description}\\n\\n`;\n\n body += `## Details\\n\\n`;\n body += `- **Priority:** ${issue.priority}\\n`;\n body += `- **Category:** ${issue.category}\\n`;\n body += `- **Source:** Review\\n\\n`;\n\n if (issue.suggestions && issue.suggestions.length > 0) {\n body += `## Suggestions\\n\\n`;\n issue.suggestions.forEach(suggestion => {\n body += `- ${suggestion}\\n`;\n });\n body += '\\n';\n }\n\n body += `---\\n\\n`;\n body += `*This issue was automatically created from a review session.*`;\n\n return body;\n}\n\n// Helper function to format results with created GitHub issues\nfunction formatReviewResultsWithIssues(\n result: ReviewResult,\n createdIssues: Array<{ issue: Issue, githubUrl: string, number: number }>\n): string {\n let output = `📝 Review Results\\n\\n`;\n output += `📋 Summary: ${result.summary}\\n`;\n output += `📊 Total Issues Found: ${result.totalIssues}\\n`;\n output += `🚀 GitHub Issues Created: ${createdIssues.length}\\n\\n`;\n\n if (result.issues && result.issues.length > 0) {\n output += `📝 Issues Identified:\\n\\n`;\n\n result.issues.forEach((issue, index) => {\n const priorityEmoji = issue.priority === 'high' ? '🔴' :\n issue.priority === 'medium' ? '🟡' : '🟢';\n const categoryEmoji = issue.category === 'ui' ? '🎨' :\n issue.category === 'content' ? '📝' :\n issue.category === 'functionality' ? '⚙️' :\n issue.category === 'accessibility' ? '♿' :\n issue.category === 'performance' ? '⚡' : '🔧';\n\n output += `${index + 1}. ${priorityEmoji} ${issue.title}\\n`;\n output += ` ${categoryEmoji} Category: ${issue.category} | Priority: ${issue.priority}\\n`;\n output += ` 📖 Description: ${issue.description}\\n`;\n\n // Check if this issue was created as a GitHub issue\n const createdIssue = createdIssues.find(ci => ci.issue === issue);\n if (createdIssue) {\n output += ` 🔗 GitHub Issue: #${createdIssue.number} - ${createdIssue.githubUrl}\\n`;\n }\n\n if (issue.suggestions && issue.suggestions.length > 0) {\n output += ` 💡 Suggestions:\\n`;\n issue.suggestions.forEach(suggestion => {\n output += ` • ${suggestion}\\n`;\n });\n }\n output += `\\n`;\n });\n } else {\n output += `✅ No specific issues identified from the review.\\n\\n`;\n }\n\n if (createdIssues.length > 0) {\n output += `\\n🎯 Created GitHub Issues:\\n`;\n createdIssues.forEach(createdIssue => {\n output += `• #${createdIssue.number}: ${createdIssue.issue.title} - ${createdIssue.githubUrl}\\n`;\n });\n output += `\\n`;\n }\n\n output += `🚀 Next Steps: Review the created GitHub issues and prioritize them in your development workflow.`;\n\n return output;\n}\n\nfunction formatReviewResults(result: ReviewResult): string {\n let output = `📝 Review Results\\n\\n`;\n output += `📋 Summary: ${result.summary}\\n`;\n output += `📊 Total Issues Found: ${result.totalIssues}\\n\\n`;\n\n if (result.issues && result.issues.length > 0) {\n output += `📝 Issues Identified:\\n\\n`;\n\n result.issues.forEach((issue, index) => {\n const priorityEmoji = issue.priority === 'high' ? '🔴' :\n issue.priority === 'medium' ? '🟡' : '🟢';\n const categoryEmoji = issue.category === 'ui' ? '🎨' :\n issue.category === 'content' ? '📝' :\n issue.category === 'functionality' ? '⚙️' :\n issue.category === 'accessibility' ? '♿' :\n issue.category === 'performance' ? '⚡' : '🔧';\n\n output += `${index + 1}. ${priorityEmoji} ${issue.title}\\n`;\n output += ` ${categoryEmoji} Category: ${issue.category} | Priority: ${issue.priority}\\n`;\n output += ` 📖 Description: ${issue.description}\\n`;\n\n if (issue.suggestions && issue.suggestions.length > 0) {\n output += ` 💡 Suggestions:\\n`;\n issue.suggestions.forEach(suggestion => {\n output += ` • ${suggestion}\\n`;\n });\n }\n output += `\\n`;\n });\n } else {\n output += `✅ No specific issues identified from the review.\\n\\n`;\n }\n\n output += `🚀 Next Steps: Review the identified issues and prioritize them for your development workflow.`;\n\n return output;\n}\n\n// Handle GitHub issue creation workflow\nexport const handleIssueCreation = async (\n result: ReviewResult,\n senditMode: boolean = false\n): Promise<string> => {\n const logger = getLogger();\n const createdIssues: Array<{ issue: Issue, githubUrl: string, number: number }> = [];\n\n if (!result.issues || result.issues.length === 0) {\n return formatReviewResults(result);\n }\n\n logger.info(`🔍 Found ${result.issues.length} issues to potentially create as GitHub issues`);\n\n for (let i = 0; i < result.issues.length; i++) {\n const issue = result.issues[i];\n let shouldCreateIssue = senditMode;\n\n if (!senditMode) {\n // Interactive confirmation for each issue\n logger.info(`\\n📋 Issue ${i + 1} of ${result.issues.length}:`);\n logger.info(` Title: ${issue.title}`);\n logger.info(` Priority: ${issue.priority} | Category: ${issue.category}`);\n logger.info(` Description: ${issue.description}`);\n if (issue.suggestions && issue.suggestions.length > 0) {\n logger.info(` Suggestions: ${issue.suggestions.join(', ')}`);\n }\n\n // Get user choice\n const choice = await getUserChoice('\\nWhat would you like to do with this issue?', [\n { key: 'c', label: 'Create GitHub issue' },\n { key: 's', label: 'Skip this issue' },\n { key: 'e', label: 'Edit issue details' }\n ]);\n\n if (choice === 'c') {\n shouldCreateIssue = true;\n } else if (choice === 'e') {\n // Allow user to edit the issue\n const editedIssue = await editIssueInteractively(issue);\n result.issues[i] = editedIssue;\n shouldCreateIssue = true;\n }\n // If choice is 's', shouldCreateIssue remains false\n }\n\n if (shouldCreateIssue) {\n try {\n logger.info(`🚀 Creating GitHub issue: \"${issue.title}\"`);\n\n // Format issue body with additional details\n const issueBody = formatIssueBody(issue);\n\n // Create labels based on priority and category\n const labels = [\n `priority-${issue.priority}`,\n `category-${issue.category}`,\n 'review'\n ];\n\n const createdIssue = await createIssue(issue.title, issueBody, labels);\n createdIssues.push({\n issue,\n githubUrl: createdIssue.html_url,\n number: createdIssue.number\n });\n\n logger.info(`✅ Created GitHub issue #${createdIssue.number}: ${createdIssue.html_url}`);\n } catch (error: any) {\n logger.error(`❌ Failed to create GitHub issue for \"${issue.title}\": ${error.message}`);\n }\n }\n }\n\n // Return formatted results\n if (createdIssues.length > 0) {\n return formatReviewResultsWithIssues(result, createdIssues);\n } else {\n return formatReviewResults(result);\n }\n}; "],"names":["get","options","logger","getLogger","limit","debug","issuesLimit","Math","min","githubIssues","getOpenIssues","trim","length","error","warn","message","getUserChoice","prompt","choices","info","forEach","choice","key","label","Promise","resolve","process","stdin","ref","setRawMode","resume","on","keyStr","toString","toLowerCase","find","c","pause","unref","editIssueInteractively","issue","readline","rl","createInterface","input","output","stdout","question","newTitle","title","newDescription","description","newPriority","priority","newCategory","category","updatedIssue","suggestions","close","formatIssueBody","body","suggestion","formatReviewResultsWithIssues","result","createdIssues","summary","totalIssues","issues","index","priorityEmoji","categoryEmoji","createdIssue","ci","number","githubUrl","formatReviewResults","handleIssueCreation","senditMode","i","shouldCreateIssue","join","editedIssue","issueBody","labels","createIssue","push","html_url"],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -10,8 +10,9 @@ import { execute as execute$4 } from './commands/link.js';
|
|
|
10
10
|
import { execute as execute$3 } from './commands/publish.js';
|
|
11
11
|
import { execute as execute$2 } from './commands/release.js';
|
|
12
12
|
import { execute as execute$8 } from './commands/review.js';
|
|
13
|
+
import { execute as execute$9 } from './commands/select-audio.js';
|
|
13
14
|
import { execute as execute$5 } from './commands/unlink.js';
|
|
14
|
-
import { DEFAULT_CONFIG_DIR, COMMAND_CHECK_CONFIG, COMMAND_INIT_CONFIG, COMMAND_COMMIT, COMMAND_AUDIO_COMMIT, COMMAND_RELEASE, COMMAND_PUBLISH, COMMAND_LINK, COMMAND_UNLINK, COMMAND_AUDIO_REVIEW, COMMAND_CLEAN, COMMAND_REVIEW } from './constants.js';
|
|
15
|
+
import { DEFAULT_CONFIG_DIR, COMMAND_CHECK_CONFIG, COMMAND_INIT_CONFIG, COMMAND_COMMIT, COMMAND_AUDIO_COMMIT, COMMAND_RELEASE, COMMAND_PUBLISH, COMMAND_LINK, COMMAND_UNLINK, COMMAND_AUDIO_REVIEW, COMMAND_CLEAN, COMMAND_REVIEW, COMMAND_SELECT_AUDIO } from './constants.js';
|
|
15
16
|
import { getLogger, setLogLevel } from './logging.js';
|
|
16
17
|
import { ConfigSchema } from './types.js';
|
|
17
18
|
|
|
@@ -35,7 +36,9 @@ import { ConfigSchema } from './types.js';
|
|
|
35
36
|
async function main() {
|
|
36
37
|
// Configure logging early, before CardiganTime initialization
|
|
37
38
|
configureEarlyLogging();
|
|
38
|
-
|
|
39
|
+
// Cast create to `any` to avoid excessive type instantiation issues in TS compiler
|
|
40
|
+
const createCardigantime = Cardigantime.create;
|
|
41
|
+
const cardigantime = createCardigantime({
|
|
39
42
|
defaults: {
|
|
40
43
|
configDirectory: DEFAULT_CONFIG_DIR,
|
|
41
44
|
// Move pathResolution INSIDE defaults
|
|
@@ -84,7 +87,7 @@ async function main() {
|
|
|
84
87
|
const command = process.argv[2];
|
|
85
88
|
let commandName = commandConfig.commandName;
|
|
86
89
|
// If we have a specific command argument, use that
|
|
87
|
-
if (command === 'commit' || command === 'audio-commit' || command === 'release' || command === 'publish' || command === 'link' || command === 'unlink' || command === 'audio-review' || command === 'clean' || command === 'review') {
|
|
90
|
+
if (command === 'commit' || command === 'audio-commit' || command === 'release' || command === 'publish' || command === 'link' || command === 'unlink' || command === 'audio-review' || command === 'clean' || command === 'review' || command === 'select-audio') {
|
|
88
91
|
commandName = command;
|
|
89
92
|
}
|
|
90
93
|
let summary = '';
|
|
@@ -108,6 +111,9 @@ async function main() {
|
|
|
108
111
|
summary = 'Output directory cleaned successfully.';
|
|
109
112
|
} else if (commandName === COMMAND_REVIEW) {
|
|
110
113
|
summary = await execute$8(runConfig);
|
|
114
|
+
} else if (commandName === COMMAND_SELECT_AUDIO) {
|
|
115
|
+
await execute$9(runConfig);
|
|
116
|
+
summary = 'Audio selection completed successfully.';
|
|
111
117
|
}
|
|
112
118
|
// eslint-disable-next-line no-console
|
|
113
119
|
console.log(`\n\n${summary}\n\n`);
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../src/main.ts"],"sourcesContent":["#!/usr/bin/env node\nimport * as Cardigantime from '@theunwalked/cardigantime';\nimport 'dotenv/config';\nimport { CommandConfig } from 'types';\nimport * as Arguments from './arguments';\nimport * as AudioCommit from './commands/audio-commit';\nimport * as AudioReview from './commands/audio-review';\nimport * as Clean from './commands/clean';\nimport * as Commit from './commands/commit';\nimport * as Link from './commands/link';\nimport * as Publish from './commands/publish';\nimport * as Release from './commands/release';\nimport * as Review from './commands/review';\nimport * as Unlink from './commands/unlink';\nimport { COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_UNLINK, DEFAULT_CONFIG_DIR } from './constants';\nimport { getLogger, setLogLevel } from './logging';\nimport { Config, ConfigSchema, SecureConfig } from './types';\n\n/**\n * Configure early logging based on command line flags.\n * \n * Hey we need this because we need to be able to debug CardiganTime.\n * This method checks for --verbose and --debug flags early in the process\n * before CardiganTime is configured, allowing us to capture debug output\n * from the CardiganTime initialization itself.\n */\nfunction configureEarlyLogging(): void {\n const hasVerbose = process.argv.includes('--verbose');\n const hasDebug = process.argv.includes('--debug');\n\n // Set log level based on early flag detection\n if (hasDebug) {\n setLogLevel('debug');\n } else if (hasVerbose) {\n setLogLevel('verbose');\n }\n}\n\nexport async function main() {\n // Configure logging early, before CardiganTime initialization\n configureEarlyLogging();\n\n const cardigantime = Cardigantime.create({\n defaults: {\n configDirectory: DEFAULT_CONFIG_DIR,\n // Move pathResolution INSIDE defaults\n pathResolution: {\n resolvePathArray: ['contextDirectories'], // Resolve contextDirectories array elements as paths\n },\n // Use fieldOverlaps instead of mergeStrategy, INSIDE defaults\n fieldOverlaps: {\n 'contextDirectories': 'prepend', // Use prepend strategy for contextDirectories array\n // Add other field overlap configurations as needed\n },\n },\n features: ['config', 'hierarchical'],\n configShape: ConfigSchema.shape, // No need for 'as any' now\n logger: getLogger(),\n }); // No need for 'as any' at the end\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [runConfig, secureConfig, commandConfig]: [Config, SecureConfig, CommandConfig] = await Arguments.configure(cardigantime); // Pass cardigantime instance\n\n // Set log level based on verbose flag\n if (runConfig.verbose) {\n setLogLevel('verbose');\n }\n if (runConfig.debug) {\n setLogLevel('debug');\n }\n\n const logger = getLogger();\n cardigantime.setLogger(logger);\n\n try {\n // Handle check-config command first\n if (commandConfig.commandName === COMMAND_CHECK_CONFIG) {\n // CardiganTime's checkConfig has already been called in Arguments.configure()\n // No additional processing needed here\n return;\n }\n\n // Handle init-config command\n if (commandConfig.commandName === COMMAND_INIT_CONFIG) {\n // CardiganTime's initConfig has already been called in Arguments.configure()\n // No additional processing needed here\n return;\n }\n\n // Get the command from Commander\n const command = process.argv[2];\n let commandName = commandConfig.commandName;\n\n // If we have a specific command argument, use that\n if (command === 'commit' || command === 'audio-commit' || command === 'release' || command === 'publish' || command === 'link' || command === 'unlink' || command === 'audio-review' || command === 'clean' || command === 'review') {\n commandName = command;\n }\n\n let summary: string = '';\n\n if (commandName === COMMAND_COMMIT) {\n summary = await Commit.execute(runConfig);\n } else if (commandName === COMMAND_AUDIO_COMMIT) {\n summary = await AudioCommit.execute(runConfig);\n } else if (commandName === COMMAND_RELEASE) {\n const releaseSummary = await Release.execute(runConfig);\n summary = `${releaseSummary.title}\\n\\n${releaseSummary.body}`;\n } else if (commandName === COMMAND_PUBLISH) {\n await Publish.execute(runConfig);\n } else if (commandName === COMMAND_LINK) {\n summary = await Link.execute(runConfig);\n } else if (commandName === COMMAND_UNLINK) {\n summary = await Unlink.execute(runConfig);\n } else if (commandName === COMMAND_AUDIO_REVIEW) {\n summary = await AudioReview.execute(runConfig);\n } else if (commandName === COMMAND_CLEAN) {\n await Clean.execute(runConfig);\n summary = 'Output directory cleaned successfully.';\n } else if (commandName === COMMAND_REVIEW) {\n summary = await Review.execute(runConfig);\n }\n\n // eslint-disable-next-line no-console\n console.log(`\\n\\n${summary}\\n\\n`);\n\n } catch (error: any) {\n logger.error('Exiting due to Error: %s, %s', error.message, error.stack);\n process.exit(1);\n }\n}\n\nmain();"],"names":["configureEarlyLogging","hasVerbose","process","argv","includes","hasDebug","setLogLevel","main","cardigantime","Cardigantime","create","defaults","configDirectory","DEFAULT_CONFIG_DIR","pathResolution","resolvePathArray","fieldOverlaps","features","configShape","ConfigSchema","shape","logger","getLogger","runConfig","secureConfig","commandConfig","Arguments","verbose","debug","setLogger","commandName","COMMAND_CHECK_CONFIG","COMMAND_INIT_CONFIG","command","summary","COMMAND_COMMIT","Commit","COMMAND_AUDIO_COMMIT","AudioCommit","COMMAND_RELEASE","releaseSummary","Release","title","body","COMMAND_PUBLISH","Publish","COMMAND_LINK","Link","COMMAND_UNLINK","Unlink","COMMAND_AUDIO_REVIEW","AudioReview","COMMAND_CLEAN","Clean","COMMAND_REVIEW","Review","console","log","error","message","stack","exit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../src/main.ts"],"sourcesContent":["#!/usr/bin/env node\nimport * as Cardigantime from '@theunwalked/cardigantime';\nimport 'dotenv/config';\nimport { CommandConfig } from 'types';\nimport * as Arguments from './arguments';\nimport * as AudioCommit from './commands/audio-commit';\nimport * as AudioReview from './commands/audio-review';\nimport * as Clean from './commands/clean';\nimport * as Commit from './commands/commit';\nimport * as Link from './commands/link';\nimport * as Publish from './commands/publish';\nimport * as Release from './commands/release';\nimport * as Review from './commands/review';\nimport * as SelectAudio from './commands/select-audio';\nimport * as Unlink from './commands/unlink';\nimport { COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_UNLINK, DEFAULT_CONFIG_DIR } from './constants';\nimport { getLogger, setLogLevel } from './logging';\nimport { Config, ConfigSchema, SecureConfig } from './types';\n\n/**\n * Configure early logging based on command line flags.\n * \n * Hey we need this because we need to be able to debug CardiganTime.\n * This method checks for --verbose and --debug flags early in the process\n * before CardiganTime is configured, allowing us to capture debug output\n * from the CardiganTime initialization itself.\n */\nfunction configureEarlyLogging(): void {\n const hasVerbose = process.argv.includes('--verbose');\n const hasDebug = process.argv.includes('--debug');\n\n // Set log level based on early flag detection\n if (hasDebug) {\n setLogLevel('debug');\n } else if (hasVerbose) {\n setLogLevel('verbose');\n }\n}\n\nexport async function main() {\n // Configure logging early, before CardiganTime initialization\n configureEarlyLogging();\n\n // Cast create to `any` to avoid excessive type instantiation issues in TS compiler\n const createCardigantime: any = (Cardigantime as unknown as { create: unknown }).create as any;\n\n const cardigantime = createCardigantime({\n defaults: {\n configDirectory: DEFAULT_CONFIG_DIR,\n // Move pathResolution INSIDE defaults\n pathResolution: {\n resolvePathArray: ['contextDirectories'], // Resolve contextDirectories array elements as paths\n },\n // Use fieldOverlaps instead of mergeStrategy, INSIDE defaults\n fieldOverlaps: {\n 'contextDirectories': 'prepend', // Use prepend strategy for contextDirectories array\n // Add other field overlap configurations as needed\n },\n },\n features: ['config', 'hierarchical'],\n configShape: ConfigSchema.shape, // No need for 'as any' now\n logger: getLogger(),\n }); // No need for 'as any' at the end\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [runConfig, secureConfig, commandConfig]: [Config, SecureConfig, CommandConfig] = await Arguments.configure(cardigantime); // Pass cardigantime instance\n\n // Set log level based on verbose flag\n if (runConfig.verbose) {\n setLogLevel('verbose');\n }\n if (runConfig.debug) {\n setLogLevel('debug');\n }\n\n const logger = getLogger();\n cardigantime.setLogger(logger);\n\n try {\n // Handle check-config command first\n if (commandConfig.commandName === COMMAND_CHECK_CONFIG) {\n // CardiganTime's checkConfig has already been called in Arguments.configure()\n // No additional processing needed here\n return;\n }\n\n // Handle init-config command\n if (commandConfig.commandName === COMMAND_INIT_CONFIG) {\n // CardiganTime's initConfig has already been called in Arguments.configure()\n // No additional processing needed here\n return;\n }\n\n // Get the command from Commander\n const command = process.argv[2];\n let commandName = commandConfig.commandName;\n\n // If we have a specific command argument, use that\n if (command === 'commit' || command === 'audio-commit' || command === 'release' || command === 'publish' || command === 'link' || command === 'unlink' || command === 'audio-review' || command === 'clean' || command === 'review' || command === 'select-audio') {\n commandName = command;\n }\n\n let summary: string = '';\n\n if (commandName === COMMAND_COMMIT) {\n summary = await Commit.execute(runConfig);\n } else if (commandName === COMMAND_AUDIO_COMMIT) {\n summary = await AudioCommit.execute(runConfig);\n } else if (commandName === COMMAND_RELEASE) {\n const releaseSummary = await Release.execute(runConfig);\n summary = `${releaseSummary.title}\\n\\n${releaseSummary.body}`;\n } else if (commandName === COMMAND_PUBLISH) {\n await Publish.execute(runConfig);\n } else if (commandName === COMMAND_LINK) {\n summary = await Link.execute(runConfig);\n } else if (commandName === COMMAND_UNLINK) {\n summary = await Unlink.execute(runConfig);\n } else if (commandName === COMMAND_AUDIO_REVIEW) {\n summary = await AudioReview.execute(runConfig);\n } else if (commandName === COMMAND_CLEAN) {\n await Clean.execute(runConfig);\n summary = 'Output directory cleaned successfully.';\n } else if (commandName === COMMAND_REVIEW) {\n summary = await Review.execute(runConfig);\n } else if (commandName === COMMAND_SELECT_AUDIO) {\n await SelectAudio.execute(runConfig);\n summary = 'Audio selection completed successfully.';\n }\n\n // eslint-disable-next-line no-console\n console.log(`\\n\\n${summary}\\n\\n`);\n\n } catch (error: any) {\n logger.error('Exiting due to Error: %s, %s', error.message, error.stack);\n process.exit(1);\n }\n}\n\nmain();"],"names":["configureEarlyLogging","hasVerbose","process","argv","includes","hasDebug","setLogLevel","main","createCardigantime","Cardigantime","create","cardigantime","defaults","configDirectory","DEFAULT_CONFIG_DIR","pathResolution","resolvePathArray","fieldOverlaps","features","configShape","ConfigSchema","shape","logger","getLogger","runConfig","secureConfig","commandConfig","Arguments","verbose","debug","setLogger","commandName","COMMAND_CHECK_CONFIG","COMMAND_INIT_CONFIG","command","summary","COMMAND_COMMIT","Commit","COMMAND_AUDIO_COMMIT","AudioCommit","COMMAND_RELEASE","releaseSummary","Release","title","body","COMMAND_PUBLISH","Publish","COMMAND_LINK","Link","COMMAND_UNLINK","Unlink","COMMAND_AUDIO_REVIEW","AudioReview","COMMAND_CLEAN","Clean","COMMAND_REVIEW","Review","COMMAND_SELECT_AUDIO","SelectAudio","console","log","error","message","stack","exit"],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Builder } from '@riotprompt/riotprompt';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import { DEFAULT_PERSONA_YOU_FILE, DEFAULT_INSTRUCTIONS_COMMIT_FILE } from '../constants.js';
|
|
5
|
+
import { getLogger } from '../logging.js';
|
|
6
|
+
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = path.dirname(__filename);
|
|
9
|
+
/**
|
|
10
|
+
* Build a commit prompt using RiotPrompt Builder.
|
|
11
|
+
*
|
|
12
|
+
* @param model OpenAI / RiotPrompt model identifier
|
|
13
|
+
* @param runConfig The runtime configuration provided by the CLI
|
|
14
|
+
* @param content Mandatory content inputs (e.g. diff)
|
|
15
|
+
* @param ctx Optional contextual inputs configured by the user
|
|
16
|
+
*/ const createPrompt = async ({ overridePath, overrides }, { diffContent, userDirection }, { logContext, context, directories } = {})=>{
|
|
17
|
+
const logger = getLogger();
|
|
18
|
+
let builder = Builder.create({
|
|
19
|
+
logger,
|
|
20
|
+
basePath: __dirname,
|
|
21
|
+
overridePath,
|
|
22
|
+
overrides: overrides || false
|
|
23
|
+
});
|
|
24
|
+
// Persona & core instructions
|
|
25
|
+
builder = await builder.addPersonaPath(DEFAULT_PERSONA_YOU_FILE);
|
|
26
|
+
builder = await builder.addInstructionPath(DEFAULT_INSTRUCTIONS_COMMIT_FILE);
|
|
27
|
+
// User-supplied direction overrides highest priority
|
|
28
|
+
if (userDirection) {
|
|
29
|
+
builder = await builder.addContent(userDirection, {
|
|
30
|
+
title: 'User Direction',
|
|
31
|
+
weight: 1.0
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
// Always include the diff produced by git
|
|
35
|
+
builder = await builder.addContent(diffContent, {
|
|
36
|
+
title: 'Diff',
|
|
37
|
+
weight: 0.5
|
|
38
|
+
});
|
|
39
|
+
// Auto-load additional context directories specified via CLI/RC file
|
|
40
|
+
if (directories === null || directories === void 0 ? void 0 : directories.length) {
|
|
41
|
+
builder = await builder.loadContext(directories, {
|
|
42
|
+
weight: 0.5
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
// Explicit user context (free-form text) – highest weight
|
|
46
|
+
if (context) {
|
|
47
|
+
builder = await builder.addContext(context, {
|
|
48
|
+
title: 'User Context',
|
|
49
|
+
weight: 1.0
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
// Git log context (previous commits)
|
|
53
|
+
if (logContext) {
|
|
54
|
+
builder = await builder.addContext(logContext, {
|
|
55
|
+
title: 'Log Context',
|
|
56
|
+
weight: 0.5
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// Build and return the prompt
|
|
60
|
+
return await builder.build();
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export { createPrompt };
|
|
64
|
+
//# sourceMappingURL=commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.js","sources":["../../src/prompt/commit.ts"],"sourcesContent":["import { Builder, Prompt } from '@riotprompt/riotprompt';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { DEFAULT_INSTRUCTIONS_COMMIT_FILE, DEFAULT_PERSONA_YOU_FILE } from '../constants';\nimport { getLogger } from '../logging';\nimport { Config as RunConfig } from '../types';\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};\n\nexport type Context = {\n logContext?: string;\n context?: string;\n directories?: string[];\n};\n\nexport type Config = {\n overridePath?: string;\n overrides?: boolean;\n}\n\n/**\n * Build a commit prompt using RiotPrompt Builder.\n *\n * @param model OpenAI / RiotPrompt model identifier\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 { overridePath, overrides }: Config,\n { diffContent, userDirection }: Content,\n { logContext, context, directories }: Context = {}\n): Promise<Prompt> => {\n const logger = getLogger();\n\n let builder: Builder.Instance = Builder.create({\n logger,\n basePath: __dirname,\n overridePath,\n overrides: overrides || false,\n });\n\n // Persona & core instructions\n builder = await builder.addPersonaPath(DEFAULT_PERSONA_YOU_FILE);\n builder = await builder.addInstructionPath(DEFAULT_INSTRUCTIONS_COMMIT_FILE);\n\n // User-supplied direction overrides highest priority\n if (userDirection) {\n builder = await builder.addContent(userDirection, { title: 'User Direction', weight: 1.0 });\n }\n\n // Always include the diff produced by git\n builder = await builder.addContent(diffContent, { title: 'Diff', weight: 0.5 });\n\n // Auto-load additional context directories specified via CLI/RC file\n if (directories?.length) {\n builder = await builder.loadContext(directories, { weight: 0.5 });\n }\n\n // Explicit user context (free-form text) – highest weight\n if (context) {\n builder = await builder.addContext(context, { title: 'User Context', weight: 1.0 });\n }\n\n // Git log context (previous commits)\n if (logContext) {\n builder = await builder.addContext(logContext, { title: 'Log Context', weight: 0.5 });\n }\n\n // Build and return the prompt\n return await builder.build();\n}; "],"names":["__filename","fileURLToPath","url","__dirname","path","dirname","createPrompt","overridePath","overrides","diffContent","userDirection","logContext","context","directories","logger","getLogger","builder","Builder","create","basePath","addPersonaPath","DEFAULT_PERSONA_YOU_FILE","addInstructionPath","DEFAULT_INSTRUCTIONS_COMMIT_FILE","addContent","title","weight","length","loadContext","addContext","build"],"mappings":";;;;;;AAOA,MAAMA,UAAAA,GAAaC,aAAAA,CAAc,MAAA,CAAA,IAAA,CAAYC,GAAG,CAAA;AAChD,MAAMC,SAAAA,GAAYC,IAAAA,CAAKC,OAAO,CAACL,UAAAA,CAAAA;AAmB/B;;;;;;;IAQO,MAAMM,YAAAA,GAAe,OACxB,EAAEC,YAAY,EAAEC,SAAS,EAAU,EACnC,EAAEC,WAAW,EAAEC,aAAa,EAAW,EACvC,EAAEC,UAAU,EAAEC,OAAO,EAAEC,WAAW,EAAW,GAAG,EAAE,GAAA;AAElD,IAAA,MAAMC,MAAAA,GAASC,SAAAA,EAAAA;IAEf,IAAIC,OAAAA,GAA4BC,OAAAA,CAAQC,MAAM,CAAC;AAC3CJ,QAAAA,MAAAA;QACAK,QAAAA,EAAUhB,SAAAA;AACVI,QAAAA,YAAAA;AACAC,QAAAA,SAAAA,EAAWA,SAAAA,IAAa;AAC5B,KAAA,CAAA;;IAGAQ,OAAAA,GAAU,MAAMA,OAAAA,CAAQI,cAAc,CAACC,wBAAAA,CAAAA;IACvCL,OAAAA,GAAU,MAAMA,OAAAA,CAAQM,kBAAkB,CAACC,gCAAAA,CAAAA;;AAG3C,IAAA,IAAIb,aAAAA,EAAe;AACfM,QAAAA,OAAAA,GAAU,MAAMA,OAAAA,CAAQQ,UAAU,CAACd,aAAAA,EAAe;YAAEe,KAAAA,EAAO,gBAAA;YAAkBC,MAAAA,EAAQ;AAAI,SAAA,CAAA;AAC7F;;AAGAV,IAAAA,OAAAA,GAAU,MAAMA,OAAAA,CAAQQ,UAAU,CAACf,WAAAA,EAAa;QAAEgB,KAAAA,EAAO,MAAA;QAAQC,MAAAA,EAAQ;AAAI,KAAA,CAAA;;AAG7E,IAAA,IAAIb,WAAAA,KAAAA,IAAAA,IAAAA,WAAAA,KAAAA,MAAAA,GAAAA,MAAAA,GAAAA,WAAAA,CAAac,MAAM,EAAE;AACrBX,QAAAA,OAAAA,GAAU,MAAMA,OAAAA,CAAQY,WAAW,CAACf,WAAAA,EAAa;YAAEa,MAAAA,EAAQ;AAAI,SAAA,CAAA;AACnE;;AAGA,IAAA,IAAId,OAAAA,EAAS;AACTI,QAAAA,OAAAA,GAAU,MAAMA,OAAAA,CAAQa,UAAU,CAACjB,OAAAA,EAAS;YAAEa,KAAAA,EAAO,cAAA;YAAgBC,MAAAA,EAAQ;AAAI,SAAA,CAAA;AACrF;;AAGA,IAAA,IAAIf,UAAAA,EAAY;AACZK,QAAAA,OAAAA,GAAU,MAAMA,OAAAA,CAAQa,UAAU,CAAClB,UAAAA,EAAY;YAAEc,KAAAA,EAAO,aAAA;YAAeC,MAAAA,EAAQ;AAAI,SAAA,CAAA;AACvF;;IAGA,OAAO,MAAMV,QAAQc,KAAK,EAAA;AAC9B;;;;"}
|
|
@@ -1,11 +1,55 @@
|
|
|
1
1
|
# You
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
You are an intelligent assistant acting as the **default persona** for most KodrDriv commands (commit, review, audio-commit, audio-review). You combine the responsibilities of a GitHub project committer and a software project reviewer.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## 🧑💻 Role
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
*Role Title*: Project Contributor / Committer & Reviewer
|
|
10
|
+
*Scope*: Regular contributor with write access who submits meaningful commits **and** reviews feedback to file actionable issues.
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 🔑 Responsibilities
|
|
15
|
+
|
|
16
|
+
### Submit Meaningful Commits
|
|
17
|
+
* Generate clear, purposeful, and well-scoped commit messages that align with project standards.
|
|
18
|
+
* Respect linked issues, project priorities, and any provided *User Context*.
|
|
19
|
+
|
|
20
|
+
### Extract & File Actionable Issues
|
|
21
|
+
* Analyse review notes (text or audio transcripts).
|
|
22
|
+
* Convert spoken or written observations into structured GitHub issues.
|
|
23
|
+
* Categorise issues (UI, content, functionality, etc.) and assign sensible priority.
|
|
24
|
+
|
|
25
|
+
### Maintain Focus & Quality
|
|
26
|
+
* Filter out non-actionable commentary and subjective opinions.
|
|
27
|
+
* Provide concrete suggestions that developers can implement.
|
|
28
|
+
* Treat documentation changes with the same diligence as code edits.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 🛠 Technical Proficiencies
|
|
33
|
+
|
|
34
|
+
* Proficient in project languages & tooling (TypeScript, Node.js, etc.).
|
|
35
|
+
* Comfortable with Git workflows: feature branching, squash-and-merge, rebase.
|
|
36
|
+
* Runs pre-commit hooks, linting, and tests before pushing changes.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 🧭 Operating Principles
|
|
41
|
+
|
|
42
|
+
* **Clarity > Brevity > Cleverness** – commit messages and issues are communication tools.
|
|
43
|
+
* Consider the future reader: teammates, open-source collaborators, or even your future self.
|
|
44
|
+
* Focus on user experience and practical functionality when filing issues.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## ✏️ Customisation
|
|
49
|
+
|
|
50
|
+
Users can customise this persona by creating either of the following optional files in their configuration directory (`.kodrdriv/personas/`):
|
|
51
|
+
|
|
52
|
+
* **`you-pre.md`** – Content that will be *prepended* to this default persona.
|
|
53
|
+
* **`you-post.md`** – Content that will be *appended* to this default persona.
|
|
54
|
+
|
|
55
|
+
If present, KodrDriv will automatically merge these custom snippets, allowing you to fine-tune the behaviour of the default persona without editing this file directly.
|