@eldrforge/kodrdriv 0.0.2 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,212 @@
1
+ import path from 'path';
2
+ import { execute as execute$1 } from './commit.js';
3
+ import { hasStagedChanges } from '../content/diff.js';
4
+ import { execute as execute$2 } from './release.js';
5
+ import { getLogger } from '../logging.js';
6
+ import { run } from '../util/child.js';
7
+ import { getCurrentBranchName, findOpenPullRequestByHeadRef, createPullRequest, waitForPullRequestChecks, mergePullRequest, createRelease } from '../util/github.js';
8
+ import { create } from '../util/storage.js';
9
+ import { incrementPatchVersion } from '../util/general.js';
10
+
11
+ const PNPM_WORKSPACE_FILE = 'pnpm-workspace.yaml';
12
+ const PNPM_WORKSPACE_BACKUP_FILE = 'pnpm-workspace.yaml.bak';
13
+ const scanNpmrcForEnvVars = async (storage)=>{
14
+ const npmrcPath = path.join(process.cwd(), '.npmrc');
15
+ const envVars = [];
16
+ if (await storage.exists(npmrcPath)) {
17
+ try {
18
+ const npmrcContent = await storage.readFile(npmrcPath, 'utf-8');
19
+ // Match environment variable patterns like ${VAR_NAME} or $VAR_NAME
20
+ const envVarMatches = npmrcContent.match(/\$\{([^}]+)\}|\$([A-Z_][A-Z0-9_]*)/g);
21
+ if (envVarMatches) {
22
+ for (const match of envVarMatches){
23
+ // Extract variable name from ${VAR_NAME} or $VAR_NAME format
24
+ const varName = match.replace(/\$\{|\}|\$/g, '');
25
+ if (varName && !envVars.includes(varName)) {
26
+ envVars.push(varName);
27
+ }
28
+ }
29
+ }
30
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
+ } catch (error) {
32
+ // If we can't read .npmrc, that's okay - just continue
33
+ }
34
+ }
35
+ return envVars;
36
+ };
37
+ const validateEnvironmentVariables = (requiredEnvVars)=>{
38
+ const logger = getLogger();
39
+ const missingEnvVars = [];
40
+ for (const envVar of requiredEnvVars){
41
+ if (!process.env[envVar]) {
42
+ missingEnvVars.push(envVar);
43
+ }
44
+ }
45
+ if (missingEnvVars.length > 0) {
46
+ logger.error(`Missing required environment variables: ${missingEnvVars.join(', ')}`);
47
+ throw new Error(`Missing required environment variables: ${missingEnvVars.join(', ')}. Please set these environment variables before running publish.`);
48
+ }
49
+ };
50
+ const runPrechecks = async (runConfig)=>{
51
+ var _packageJson_scripts, _runConfig_publish;
52
+ const logger = getLogger();
53
+ const storage = create({
54
+ log: logger.info
55
+ });
56
+ logger.info('Running prechecks...');
57
+ // Check if we're in a git repository
58
+ try {
59
+ await run('git rev-parse --git-dir');
60
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
61
+ } catch (error) {
62
+ throw new Error('Not in a git repository. Please run this command from within a git repository.');
63
+ }
64
+ // Check for uncommitted changes
65
+ logger.info('Checking for uncommitted changes...');
66
+ try {
67
+ const { stdout } = await run('git status --porcelain');
68
+ if (stdout.trim()) {
69
+ throw new Error('Working directory has uncommitted changes. Please commit or stash your changes before running publish.');
70
+ }
71
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
72
+ } catch (error) {
73
+ throw new Error('Failed to check git status. Please ensure you are in a valid git repository.');
74
+ }
75
+ // Check if we're on a release branch
76
+ logger.info('Checking current branch...');
77
+ const currentBranch = await getCurrentBranchName();
78
+ if (!currentBranch.startsWith('release/')) {
79
+ throw new Error(`Current branch '${currentBranch}' is not a release branch. Please switch to a release branch (e.g., release/1.0.0) before running publish.`);
80
+ }
81
+ // Check if prepublishOnly script exists in package.json
82
+ logger.info('Checking for prepublishOnly script...');
83
+ const packageJsonPath = path.join(process.cwd(), 'package.json');
84
+ if (!await storage.exists(packageJsonPath)) {
85
+ throw new Error('package.json not found in current directory.');
86
+ }
87
+ let packageJson;
88
+ try {
89
+ const packageJsonContents = await storage.readFile(packageJsonPath, 'utf-8');
90
+ packageJson = JSON.parse(packageJsonContents);
91
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
92
+ } catch (error) {
93
+ throw new Error('Failed to parse package.json. Please ensure it contains valid JSON.');
94
+ }
95
+ if (!((_packageJson_scripts = packageJson.scripts) === null || _packageJson_scripts === void 0 ? void 0 : _packageJson_scripts.prepublishOnly)) {
96
+ throw new Error('prepublishOnly script is required in package.json but was not found. Please add a prepublishOnly script that runs your pre-flight checks (e.g., clean, lint, build, test).');
97
+ }
98
+ // Check required environment variables
99
+ logger.info('Checking required environment variables...');
100
+ const coreRequiredEnvVars = ((_runConfig_publish = runConfig.publish) === null || _runConfig_publish === void 0 ? void 0 : _runConfig_publish.requiredEnvVars) || [];
101
+ const npmrcEnvVars = await scanNpmrcForEnvVars(storage);
102
+ const allRequiredEnvVars = [
103
+ ...new Set([
104
+ ...coreRequiredEnvVars,
105
+ ...npmrcEnvVars
106
+ ])
107
+ ];
108
+ if (allRequiredEnvVars.length > 0) {
109
+ logger.info(`Required environment variables: ${allRequiredEnvVars.join(', ')}`);
110
+ validateEnvironmentVariables(allRequiredEnvVars);
111
+ } else {
112
+ logger.info('No required environment variables specified.');
113
+ }
114
+ logger.info('All prechecks passed.');
115
+ };
116
+ const execute = async (runConfig)=>{
117
+ const logger = getLogger();
118
+ const storage = create({
119
+ log: logger.info
120
+ });
121
+ // Run prechecks before starting any work
122
+ await runPrechecks(runConfig);
123
+ logger.info('Starting release process...');
124
+ const workspaceFile = path.join(process.cwd(), PNPM_WORKSPACE_FILE);
125
+ const workspaceBackupFile = path.join(process.cwd(), PNPM_WORKSPACE_BACKUP_FILE);
126
+ const restoreWorkspaceFile = async ()=>{
127
+ if (await storage.exists(workspaceBackupFile)) {
128
+ logger.info('Restoring pnpm-workspace.yaml...');
129
+ await storage.rename(workspaceBackupFile, workspaceFile);
130
+ }
131
+ };
132
+ try {
133
+ var _runConfig_publish;
134
+ const branchName = await getCurrentBranchName();
135
+ let pr = await findOpenPullRequestByHeadRef(branchName);
136
+ if (pr) {
137
+ logger.info(`Found existing pull request for branch ${branchName}: ${pr.html_url}`);
138
+ } else {
139
+ var _runConfig_publish1;
140
+ logger.info('No open pull request found, starting new release publishing process...');
141
+ // 1. Prepare for release
142
+ logger.info('Preparing for release: switching from workspace to remote dependencies.');
143
+ if (await storage.exists(workspaceFile)) {
144
+ logger.info('Renaming pnpm-workspace.yaml to prevent workspace-protocol resolution');
145
+ await storage.rename(workspaceFile, workspaceBackupFile);
146
+ } else {
147
+ logger.info('pnpm-workspace.yaml not found, skipping rename.');
148
+ }
149
+ logger.info('Updating dependencies to latest versions from registry');
150
+ const updatePatterns = (_runConfig_publish1 = runConfig.publish) === null || _runConfig_publish1 === void 0 ? void 0 : _runConfig_publish1.dependencyUpdatePatterns;
151
+ if (updatePatterns && updatePatterns.length > 0) {
152
+ logger.info(`Updating dependencies matching patterns: ${updatePatterns.join(', ')}`);
153
+ const patternsArg = updatePatterns.join(' ');
154
+ await run(`pnpm update --latest ${patternsArg}`);
155
+ } else {
156
+ logger.info('No dependency update patterns specified, updating all dependencies');
157
+ await run('pnpm update --latest');
158
+ }
159
+ logger.info('Staging changes for release commit');
160
+ await run('git add package.json pnpm-lock.yaml');
161
+ logger.info('Running prepublishOnly script...');
162
+ await run('pnpm run prepublishOnly');
163
+ logger.info('Checking for staged changes...');
164
+ if (await hasStagedChanges()) {
165
+ logger.info('Staged changes found, creating commit...');
166
+ await execute$1(runConfig);
167
+ } else {
168
+ logger.info('No changes to commit, skipping commit.');
169
+ }
170
+ logger.info('Bumping version...');
171
+ await run('pnpm version patch');
172
+ logger.info('Generating release notes...');
173
+ const releaseNotes = await execute$2(runConfig);
174
+ await storage.writeFile('RELEASE_NOTES.md', releaseNotes, 'utf-8');
175
+ logger.info('Release notes generated and saved to RELEASE_NOTES.md.');
176
+ logger.info('Pushing to origin...');
177
+ await run('git push --follow-tags');
178
+ logger.info('Creating pull request...');
179
+ const { stdout: commitTitle } = await run('git log -1 --pretty=%B');
180
+ pr = await createPullRequest(commitTitle, 'Automated release PR.', branchName);
181
+ if (!pr) {
182
+ throw new Error('Failed to create pull request.');
183
+ }
184
+ logger.info(`Pull request created: ${pr.html_url}`);
185
+ }
186
+ logger.info(`Waiting for PR #${pr.number} checks to complete...`);
187
+ await waitForPullRequestChecks(pr.number);
188
+ const mergeMethod = ((_runConfig_publish = runConfig.publish) === null || _runConfig_publish === void 0 ? void 0 : _runConfig_publish.mergeMethod) || 'squash';
189
+ await mergePullRequest(pr.number, mergeMethod);
190
+ logger.info('Checking out main branch...');
191
+ await run('git checkout main');
192
+ await run('git pull origin main');
193
+ logger.info('Creating GitHub release...');
194
+ const packageJsonContents = await storage.readFile('package.json', 'utf-8');
195
+ const { version } = JSON.parse(packageJsonContents);
196
+ const tagName = `v${version}`;
197
+ const releaseNotesContent = await storage.readFile('RELEASE_NOTES.md', 'utf-8');
198
+ await createRelease(tagName, releaseNotesContent);
199
+ logger.info('Creating new release branch...');
200
+ const nextVersion = incrementPatchVersion(version);
201
+ const newBranchName = `release/${nextVersion}`;
202
+ await run(`git checkout -b ${newBranchName}`);
203
+ await run(`git push -u origin ${newBranchName}`);
204
+ logger.info(`Branch ${newBranchName} created and pushed to origin.`);
205
+ logger.info('Preparation complete.');
206
+ } finally{
207
+ await restoreWorkspaceFile();
208
+ }
209
+ };
210
+
211
+ export { execute };
212
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sources":["../../src/commands/publish.ts"],"sourcesContent":["import path from 'path';\nimport * as Commit from './commit';\nimport * as Diff from '../content/diff';\nimport * as Release from './release';\nimport { getLogger } from '../logging';\nimport { Config, PullRequest } from '../types';\nimport { run } from '../util/child';\nimport * as GitHub from '../util/github';\nimport { create as createStorage } from '../util/storage';\nimport { incrementPatchVersion } from '../util/general';\n\nconst PNPM_WORKSPACE_FILE = 'pnpm-workspace.yaml';\nconst PNPM_WORKSPACE_BACKUP_FILE = 'pnpm-workspace.yaml.bak';\n\nconst scanNpmrcForEnvVars = async (storage: any): Promise<string[]> => {\n const npmrcPath = path.join(process.cwd(), '.npmrc');\n const envVars: string[] = [];\n\n if (await storage.exists(npmrcPath)) {\n try {\n const npmrcContent = await storage.readFile(npmrcPath, 'utf-8');\n // Match environment variable patterns like ${VAR_NAME} or $VAR_NAME\n const envVarMatches = npmrcContent.match(/\\$\\{([^}]+)\\}|\\$([A-Z_][A-Z0-9_]*)/g);\n\n if (envVarMatches) {\n for (const match of envVarMatches) {\n // Extract variable name from ${VAR_NAME} or $VAR_NAME format\n const varName = match.replace(/\\$\\{|\\}|\\$/g, '');\n if (varName && !envVars.includes(varName)) {\n envVars.push(varName);\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n // If we can't read .npmrc, that's okay - just continue\n }\n }\n\n return envVars;\n};\n\nconst validateEnvironmentVariables = (requiredEnvVars: string[]): void => {\n const logger = getLogger();\n const missingEnvVars: string[] = [];\n\n for (const envVar of requiredEnvVars) {\n if (!process.env[envVar]) {\n missingEnvVars.push(envVar);\n }\n }\n\n if (missingEnvVars.length > 0) {\n logger.error(`Missing required environment variables: ${missingEnvVars.join(', ')}`);\n throw new Error(`Missing required environment variables: ${missingEnvVars.join(', ')}. Please set these environment variables before running publish.`);\n }\n};\n\nconst runPrechecks = async (runConfig: Config): Promise<void> => {\n const logger = getLogger();\n const storage = createStorage({ log: logger.info });\n\n logger.info('Running prechecks...');\n\n // Check if we're in a git repository\n try {\n await run('git rev-parse --git-dir');\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n throw new Error('Not in a git repository. Please run this command from within a git repository.');\n }\n\n // Check for uncommitted changes\n logger.info('Checking for uncommitted changes...');\n try {\n const { stdout } = await run('git status --porcelain');\n if (stdout.trim()) {\n throw new Error('Working directory has uncommitted changes. Please commit or stash your changes before running publish.');\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n throw new Error('Failed to check git status. Please ensure you are in a valid git repository.');\n }\n\n // Check if we're on a release branch\n logger.info('Checking current branch...');\n const currentBranch = await GitHub.getCurrentBranchName();\n if (!currentBranch.startsWith('release/')) {\n throw new Error(`Current branch '${currentBranch}' is not a release branch. Please switch to a release branch (e.g., release/1.0.0) before running publish.`);\n }\n\n // Check if prepublishOnly script exists in package.json\n logger.info('Checking for prepublishOnly script...');\n const packageJsonPath = path.join(process.cwd(), 'package.json');\n\n if (!await storage.exists(packageJsonPath)) {\n throw new Error('package.json not found in current directory.');\n }\n\n let packageJson;\n try {\n const packageJsonContents = await storage.readFile(packageJsonPath, 'utf-8');\n packageJson = JSON.parse(packageJsonContents);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n throw new Error('Failed to parse package.json. Please ensure it contains valid JSON.');\n }\n\n if (!packageJson.scripts?.prepublishOnly) {\n throw new Error('prepublishOnly script is required in package.json but was not found. Please add a prepublishOnly script that runs your pre-flight checks (e.g., clean, lint, build, test).');\n }\n\n // Check required environment variables\n logger.info('Checking required environment variables...');\n const coreRequiredEnvVars = runConfig.publish?.requiredEnvVars || [];\n const npmrcEnvVars = await scanNpmrcForEnvVars(storage);\n const allRequiredEnvVars = [...new Set([...coreRequiredEnvVars, ...npmrcEnvVars])];\n\n if (allRequiredEnvVars.length > 0) {\n logger.info(`Required environment variables: ${allRequiredEnvVars.join(', ')}`);\n validateEnvironmentVariables(allRequiredEnvVars);\n } else {\n logger.info('No required environment variables specified.');\n }\n\n logger.info('All prechecks passed.');\n};\n\nexport const execute = async (runConfig: Config): Promise<void> => {\n const logger = getLogger();\n const storage = createStorage({ log: logger.info });\n\n // Run prechecks before starting any work\n await runPrechecks(runConfig);\n\n logger.info('Starting release process...');\n\n const workspaceFile = path.join(process.cwd(), PNPM_WORKSPACE_FILE);\n const workspaceBackupFile = path.join(process.cwd(), PNPM_WORKSPACE_BACKUP_FILE);\n\n const restoreWorkspaceFile = async () => {\n if (await storage.exists(workspaceBackupFile)) {\n logger.info('Restoring pnpm-workspace.yaml...');\n await storage.rename(workspaceBackupFile, workspaceFile);\n }\n };\n\n try {\n const branchName = await GitHub.getCurrentBranchName();\n let pr: PullRequest | null = await GitHub.findOpenPullRequestByHeadRef(branchName);\n\n if (pr) {\n logger.info(`Found existing pull request for branch ${branchName}: ${pr.html_url}`);\n } else {\n logger.info('No open pull request found, starting new release publishing process...');\n // 1. Prepare for release\n logger.info('Preparing for release: switching from workspace to remote dependencies.');\n\n if (await storage.exists(workspaceFile)) {\n logger.info('Renaming pnpm-workspace.yaml to prevent workspace-protocol resolution');\n await storage.rename(workspaceFile, workspaceBackupFile);\n } else {\n logger.info('pnpm-workspace.yaml not found, skipping rename.');\n }\n\n logger.info('Updating dependencies to latest versions from registry');\n const updatePatterns = runConfig.publish?.dependencyUpdatePatterns;\n if (updatePatterns && updatePatterns.length > 0) {\n logger.info(`Updating dependencies matching patterns: ${updatePatterns.join(', ')}`);\n const patternsArg = updatePatterns.join(' ');\n await run(`pnpm update --latest ${patternsArg}`);\n } else {\n logger.info('No dependency update patterns specified, updating all dependencies');\n await run('pnpm update --latest');\n }\n\n logger.info('Staging changes for release commit');\n await run('git add package.json pnpm-lock.yaml');\n\n logger.info('Running prepublishOnly script...');\n await run('pnpm run prepublishOnly');\n\n logger.info('Checking for staged changes...');\n if (await Diff.hasStagedChanges()) {\n logger.info('Staged changes found, creating commit...');\n await Commit.execute(runConfig);\n } else {\n logger.info('No changes to commit, skipping commit.');\n }\n\n logger.info('Bumping version...');\n await run('pnpm version patch');\n\n logger.info('Generating release notes...');\n const releaseNotes = await Release.execute(runConfig);\n await storage.writeFile('RELEASE_NOTES.md', releaseNotes, 'utf-8');\n logger.info('Release notes generated and saved to RELEASE_NOTES.md.');\n\n logger.info('Pushing to origin...');\n await run('git push --follow-tags');\n\n logger.info('Creating pull request...');\n const { stdout: commitTitle } = await run('git log -1 --pretty=%B');\n pr = await GitHub.createPullRequest(commitTitle, 'Automated release PR.', branchName);\n if (!pr) {\n throw new Error('Failed to create pull request.');\n }\n logger.info(`Pull request created: ${pr.html_url}`);\n }\n\n logger.info(`Waiting for PR #${pr.number} checks to complete...`);\n await GitHub.waitForPullRequestChecks(pr.number);\n\n const mergeMethod = runConfig.publish?.mergeMethod || 'squash';\n await GitHub.mergePullRequest(pr.number, mergeMethod);\n\n logger.info('Checking out main branch...');\n await run('git checkout main');\n await run('git pull origin main');\n\n logger.info('Creating GitHub release...');\n const packageJsonContents = await storage.readFile('package.json', 'utf-8');\n const { version } = JSON.parse(packageJsonContents);\n const tagName = `v${version}`;\n const releaseNotesContent = await storage.readFile('RELEASE_NOTES.md', 'utf-8');\n await GitHub.createRelease(tagName, releaseNotesContent);\n\n logger.info('Creating new release branch...');\n const nextVersion = incrementPatchVersion(version);\n const newBranchName = `release/${nextVersion}`;\n await run(`git checkout -b ${newBranchName}`);\n await run(`git push -u origin ${newBranchName}`);\n logger.info(`Branch ${newBranchName} created and pushed to origin.`);\n\n logger.info('Preparation complete.');\n } finally {\n await restoreWorkspaceFile();\n }\n}; "],"names":["PNPM_WORKSPACE_FILE","PNPM_WORKSPACE_BACKUP_FILE","scanNpmrcForEnvVars","storage","npmrcPath","path","join","process","cwd","envVars","exists","npmrcContent","readFile","envVarMatches","match","varName","replace","includes","push","error","validateEnvironmentVariables","requiredEnvVars","logger","getLogger","missingEnvVars","envVar","env","length","Error","runPrechecks","runConfig","packageJson","createStorage","log","info","run","stdout","trim","currentBranch","GitHub","startsWith","packageJsonPath","packageJsonContents","JSON","parse","scripts","prepublishOnly","coreRequiredEnvVars","publish","npmrcEnvVars","allRequiredEnvVars","Set","execute","workspaceFile","workspaceBackupFile","restoreWorkspaceFile","rename","branchName","pr","html_url","updatePatterns","dependencyUpdatePatterns","patternsArg","Diff","Commit","releaseNotes","Release","writeFile","commitTitle","number","mergeMethod","version","tagName","releaseNotesContent","nextVersion","incrementPatchVersion","newBranchName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"release.js","sources":["../../src/commands/release.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { Model, Request } from '@riotprompt/riotprompt';\nimport 'dotenv/config';\nimport { ChatCompletionMessageParam } from 'openai/resources';\nimport { DEFAULT_EXCLUDED_PATTERNS, DEFAULT_FROM_COMMIT_ALIAS, DEFAULT_TO_COMMIT_ALIAS } from '../constants';\nimport * as Log from '../content/log';\nimport * as Diff from '../content/diff';\nimport * as Prompts from '../prompt/prompts';\nimport { Config } from '../types';\nimport { createCompletion } from '../util/openai';\n\nexport const execute = async (runConfig: Config) => {\n const prompts = await Prompts.create(runConfig.model as Model, runConfig);\n\n const log = await Log.create({ from: runConfig.release?.from ?? DEFAULT_FROM_COMMIT_ALIAS, to: runConfig.release?.to ?? DEFAULT_TO_COMMIT_ALIAS });\n let logContent = '';\n\n const diff = await Diff.create({ from: runConfig.release?.from ?? DEFAULT_FROM_COMMIT_ALIAS, to: runConfig.release?.to ?? DEFAULT_TO_COMMIT_ALIAS, excludedPatterns: runConfig.excludedPatterns ?? DEFAULT_EXCLUDED_PATTERNS });\n let diffContent = '';\n\n diffContent = await diff.get();\n logContent = await log.get();\n\n const prompt = await prompts.createReleasePrompt(logContent, diffContent, runConfig.release?.context);\n\n const request: Request = prompts.format(prompt);\n\n const summary = await createCompletion(request.messages as ChatCompletionMessageParam[], { model: runConfig.model });\n\n return summary;\n}\n"],"names":["execute","runConfig","prompts","Prompts","model","log","Log","from","release","DEFAULT_FROM_COMMIT_ALIAS","to","DEFAULT_TO_COMMIT_ALIAS","logContent","diff","Diff","excludedPatterns","DEFAULT_EXCLUDED_PATTERNS","diffContent","get","prompt","createReleasePrompt","context","request","format","summary","createCompletion","messages"],"mappings":"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"}
1
+ {"version":3,"file":"release.js","sources":["../../src/commands/release.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { Model, Request } from '@riotprompt/riotprompt';\nimport 'dotenv/config';\nimport { ChatCompletionMessageParam } from 'openai/resources';\nimport { DEFAULT_EXCLUDED_PATTERNS, DEFAULT_FROM_COMMIT_ALIAS, DEFAULT_TO_COMMIT_ALIAS } from '../constants';\nimport * as Log from '../content/log';\nimport * as Diff from '../content/diff';\nimport * as Prompts from '../prompt/prompts';\nimport { Config } from '../types';\nimport { createCompletion } from '../util/openai';\n\nexport const execute = async (runConfig: Config) => {\n const prompts = await Prompts.create(runConfig.model as Model, runConfig);\n\n const log = await Log.create({ from: runConfig.release?.from ?? DEFAULT_FROM_COMMIT_ALIAS, to: runConfig.release?.to ?? DEFAULT_TO_COMMIT_ALIAS });\n let logContent = '';\n\n const diff = await Diff.create({ from: runConfig.release?.from ?? DEFAULT_FROM_COMMIT_ALIAS, to: runConfig.release?.to ?? DEFAULT_TO_COMMIT_ALIAS, excludedPatterns: runConfig.excludedPatterns ?? DEFAULT_EXCLUDED_PATTERNS });\n let diffContent = '';\n\n diffContent = await diff.get();\n logContent = await log.get();\n\n const prompt = await prompts.createReleasePrompt(logContent, diffContent, runConfig.release?.context);\n\n const request: Request = prompts.format(prompt);\n\n const summary = await createCompletion(request.messages as ChatCompletionMessageParam[], { model: runConfig.model });\n\n return summary;\n}\n"],"names":["execute","runConfig","prompts","Prompts","model","log","Log","from","release","DEFAULT_FROM_COMMIT_ALIAS","to","DEFAULT_TO_COMMIT_ALIAS","logContent","diff","Diff","excludedPatterns","DEFAULT_EXCLUDED_PATTERNS","diffContent","get","prompt","createReleasePrompt","context","request","format","summary","createCompletion","messages"],"mappings":";;;;;;;;AAWO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;QAGWA,kBAAAA,CAAAA,CAA0DA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAGxDA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAA0DA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAMvBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAX1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAACF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUG,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAWH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;QAE1BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA0DA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAA/F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,QAAU,CAAC,CAAA;QAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAjBP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBM,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAvBN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAA2BQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;QAA2BC,CAAAA,CAAAA,CAAAA,CAAIT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAjBP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA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"}
@@ -0,0 +1,177 @@
1
+ import path from 'path';
2
+ import yaml from 'js-yaml';
3
+ import { getLogger } from '../logging.js';
4
+ import { create } from '../util/storage.js';
5
+ import { run } from '../util/child.js';
6
+
7
+ const scanDirectoryForPackages = async (rootDir, storage)=>{
8
+ const logger = getLogger();
9
+ const packageMap = new Map(); // packageName -> relativePath
10
+ const absoluteRootDir = path.resolve(process.cwd(), rootDir);
11
+ logger.debug(`Scanning directory for packages: ${absoluteRootDir}`);
12
+ if (!await storage.exists(absoluteRootDir) || !await storage.isDirectory(absoluteRootDir)) {
13
+ logger.debug(`Root directory does not exist or is not a directory: ${absoluteRootDir}`);
14
+ return packageMap;
15
+ }
16
+ try {
17
+ // Get all subdirectories in the root directory
18
+ const items = await storage.listFiles(absoluteRootDir);
19
+ for (const item of items){
20
+ const itemPath = path.join(absoluteRootDir, item);
21
+ if (await storage.isDirectory(itemPath)) {
22
+ const packageJsonPath = path.join(itemPath, 'package.json');
23
+ if (await storage.exists(packageJsonPath)) {
24
+ try {
25
+ const packageJsonContent = await storage.readFile(packageJsonPath, 'utf-8');
26
+ const packageJson = JSON.parse(packageJsonContent);
27
+ if (packageJson.name) {
28
+ const relativePath = path.relative(process.cwd(), itemPath);
29
+ packageMap.set(packageJson.name, relativePath);
30
+ logger.debug(`Found package: ${packageJson.name} at ${relativePath}`);
31
+ }
32
+ } catch (error) {
33
+ logger.debug(`Failed to parse package.json at ${packageJsonPath}: ${error}`);
34
+ }
35
+ }
36
+ }
37
+ }
38
+ } catch (error) {
39
+ logger.warn(`Failed to read directory ${absoluteRootDir}: ${error}`);
40
+ }
41
+ return packageMap;
42
+ };
43
+ const findPackagesToUnlink = async (scopeRoots, storage)=>{
44
+ const logger = getLogger();
45
+ const packagesToUnlink = [];
46
+ logger.debug(`Finding packages to unlink from scope roots: ${JSON.stringify(scopeRoots)}`);
47
+ // Scan all scope roots to build a comprehensive map of packages that should be unlinked
48
+ const allScopePackages = new Map(); // packageName -> relativePath
49
+ for (const [scope, rootDir] of Object.entries(scopeRoots)){
50
+ logger.debug(`Scanning scope ${scope} at root directory: ${rootDir}`);
51
+ const scopePackages = await scanDirectoryForPackages(rootDir, storage);
52
+ // Add packages from this scope to the overall map
53
+ for (const [packageName, packagePath] of scopePackages){
54
+ if (packageName.startsWith(scope)) {
55
+ allScopePackages.set(packageName, packagePath);
56
+ packagesToUnlink.push(packagePath);
57
+ logger.debug(`Package to unlink: ${packageName} -> ${packagePath}`);
58
+ }
59
+ }
60
+ }
61
+ return packagesToUnlink;
62
+ };
63
+ const readCurrentWorkspaceFile = async (workspaceFilePath, storage)=>{
64
+ if (await storage.exists(workspaceFilePath)) {
65
+ try {
66
+ const content = await storage.readFile(workspaceFilePath, 'utf-8');
67
+ return yaml.load(content);
68
+ } catch (error) {
69
+ throw new Error(`Failed to parse existing workspace file: ${error}`);
70
+ }
71
+ }
72
+ return {
73
+ packages: []
74
+ };
75
+ };
76
+ const writeWorkspaceFile = async (workspaceFilePath, config, storage)=>{
77
+ const yamlContent = yaml.dump(config, {
78
+ indent: 2,
79
+ lineWidth: -1,
80
+ noRefs: true,
81
+ sortKeys: false
82
+ });
83
+ await storage.writeFile(workspaceFilePath, yamlContent, 'utf-8');
84
+ };
85
+ const execute = async (runConfig)=>{
86
+ var _runConfig_link, _runConfig_link1, _runConfig_link2;
87
+ const logger = getLogger();
88
+ const storage = create({
89
+ log: logger.info
90
+ });
91
+ logger.info('Starting pnpm workspace unlink management...');
92
+ // Read current package.json
93
+ const packageJsonPath = path.join(process.cwd(), 'package.json');
94
+ if (!await storage.exists(packageJsonPath)) {
95
+ throw new Error('package.json not found in current directory.');
96
+ }
97
+ let packageJson;
98
+ try {
99
+ const packageJsonContent = await storage.readFile(packageJsonPath, 'utf-8');
100
+ packageJson = JSON.parse(packageJsonContent);
101
+ } catch (error) {
102
+ throw new Error(`Failed to parse package.json: ${error}`);
103
+ }
104
+ logger.info(`Processing package: ${packageJson.name || 'unnamed'}`);
105
+ // Get configuration
106
+ const scopeRoots = ((_runConfig_link = runConfig.link) === null || _runConfig_link === void 0 ? void 0 : _runConfig_link.scopeRoots) || {};
107
+ const workspaceFileName = ((_runConfig_link1 = runConfig.link) === null || _runConfig_link1 === void 0 ? void 0 : _runConfig_link1.workspaceFile) || 'pnpm-workspace.yaml';
108
+ const isDryRun = runConfig.dryRun || ((_runConfig_link2 = runConfig.link) === null || _runConfig_link2 === void 0 ? void 0 : _runConfig_link2.dryRun) || false;
109
+ logger.debug('Extracted scopeRoots:', JSON.stringify(scopeRoots));
110
+ logger.debug('Extracted workspaceFileName:', workspaceFileName);
111
+ logger.debug('Extracted isDryRun:', isDryRun);
112
+ if (Object.keys(scopeRoots).length === 0) {
113
+ throw new Error('No scope roots configured. Please configure scope roots in your config file or via --scope-roots CLI option.');
114
+ }
115
+ logger.info(`Configured scope roots: ${JSON.stringify(scopeRoots)}`);
116
+ // Find packages to unlink based on scope roots
117
+ const packagesToUnlink = await findPackagesToUnlink(scopeRoots, storage);
118
+ if (packagesToUnlink.length === 0) {
119
+ logger.info('No packages found matching scope roots for unlinking.');
120
+ return 'No packages found matching scope roots for unlinking.';
121
+ }
122
+ logger.info(`Found ${packagesToUnlink.length} packages that could be unlinked: ${packagesToUnlink.join(', ')}`);
123
+ // Read existing workspace configuration
124
+ const workspaceFilePath = path.join(process.cwd(), workspaceFileName);
125
+ const workspaceConfig = await readCurrentWorkspaceFile(workspaceFilePath, storage);
126
+ // Filter out packages that match our scope roots
127
+ const existingPackages = workspaceConfig.packages || [];
128
+ const remainingPackages = existingPackages.filter((pkg)=>!packagesToUnlink.includes(pkg));
129
+ const actuallyRemovedPackages = existingPackages.filter((pkg)=>packagesToUnlink.includes(pkg));
130
+ if (actuallyRemovedPackages.length === 0) {
131
+ logger.info('No linked packages found in workspace file that match scope roots.');
132
+ return 'No linked packages found in workspace file that match scope roots.';
133
+ }
134
+ const updatedConfig = {
135
+ packages: remainingPackages.sort()
136
+ };
137
+ // Write the updated workspace file
138
+ if (isDryRun) {
139
+ logger.info('DRY RUN: Would write the following workspace configuration:');
140
+ logger.info(yaml.dump(updatedConfig, {
141
+ indent: 2
142
+ }));
143
+ logger.info(`DRY RUN: Would remove ${actuallyRemovedPackages.length} packages: ${actuallyRemovedPackages.join(', ')}`);
144
+ } else {
145
+ await writeWorkspaceFile(workspaceFilePath, updatedConfig, storage);
146
+ logger.info(`Updated ${workspaceFileName} - removed ${actuallyRemovedPackages.length} linked packages`);
147
+ // Rebuild pnpm lock file and node_modules
148
+ logger.info('Rebuilding pnpm lock file and node_modules...');
149
+ try {
150
+ // Remove existing lock file and node_modules to force clean rebuild
151
+ const fs = await import('fs');
152
+ const pnpmLockPath = path.join(process.cwd(), 'pnpm-lock.yaml');
153
+ const nodeModulesPath = path.join(process.cwd(), 'node_modules');
154
+ if (await storage.exists(pnpmLockPath)) {
155
+ await fs.promises.unlink(pnpmLockPath);
156
+ logger.debug('Removed existing pnpm-lock.yaml');
157
+ }
158
+ if (await storage.exists(nodeModulesPath) && await storage.isDirectory(nodeModulesPath)) {
159
+ await fs.promises.rm(nodeModulesPath, {
160
+ recursive: true,
161
+ force: true
162
+ });
163
+ logger.debug('Removed existing node_modules directory');
164
+ }
165
+ // Install dependencies fresh
166
+ await run('pnpm install');
167
+ logger.info('Successfully rebuilt pnpm lock file and node_modules');
168
+ } catch (error) {
169
+ logger.warn(`Failed to rebuild dependencies: ${error}. You may need to run 'pnpm install' manually.`);
170
+ }
171
+ }
172
+ const summary = `Successfully unlinked ${actuallyRemovedPackages.length} sibling packages:\n${actuallyRemovedPackages.map((pkg)=>` - ${pkg}`).join('\n')}`;
173
+ return summary;
174
+ };
175
+
176
+ export { execute };
177
+ //# sourceMappingURL=unlink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlink.js","sources":["../../src/commands/unlink.ts"],"sourcesContent":["import path from 'path';\nimport yaml from 'js-yaml';\nimport { getLogger } from '../logging';\nimport { Config } from '../types';\nimport { create as createStorage } from '../util/storage';\nimport { run } from '../util/child';\n\ninterface PackageJson {\n name?: string;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n peerDependencies?: Record<string, string>;\n}\n\ninterface WorkspaceConfig {\n packages?: string[];\n}\n\nconst scanDirectoryForPackages = async (rootDir: string, storage: any): Promise<Map<string, string>> => {\n const logger = getLogger();\n const packageMap = new Map<string, string>(); // packageName -> relativePath\n\n const absoluteRootDir = path.resolve(process.cwd(), rootDir);\n logger.debug(`Scanning directory for packages: ${absoluteRootDir}`);\n\n if (!await storage.exists(absoluteRootDir) || !await storage.isDirectory(absoluteRootDir)) {\n logger.debug(`Root directory does not exist or is not a directory: ${absoluteRootDir}`);\n return packageMap;\n }\n\n try {\n // Get all subdirectories in the root directory\n const items = await storage.listFiles(absoluteRootDir);\n\n for (const item of items) {\n const itemPath = path.join(absoluteRootDir, item);\n\n if (await storage.isDirectory(itemPath)) {\n const packageJsonPath = path.join(itemPath, 'package.json');\n\n if (await storage.exists(packageJsonPath)) {\n try {\n const packageJsonContent = await storage.readFile(packageJsonPath, 'utf-8');\n const packageJson = JSON.parse(packageJsonContent) as PackageJson;\n\n if (packageJson.name) {\n const relativePath = path.relative(process.cwd(), itemPath);\n packageMap.set(packageJson.name, relativePath);\n logger.debug(`Found package: ${packageJson.name} at ${relativePath}`);\n }\n } catch (error) {\n logger.debug(`Failed to parse package.json at ${packageJsonPath}: ${error}`);\n }\n }\n }\n }\n } catch (error) {\n logger.warn(`Failed to read directory ${absoluteRootDir}: ${error}`);\n }\n\n return packageMap;\n};\n\nconst findPackagesToUnlink = async (scopeRoots: Record<string, string>, storage: any): Promise<string[]> => {\n const logger = getLogger();\n const packagesToUnlink: string[] = [];\n\n logger.debug(`Finding packages to unlink from scope roots: ${JSON.stringify(scopeRoots)}`);\n\n // Scan all scope roots to build a comprehensive map of packages that should be unlinked\n const allScopePackages = new Map<string, string>(); // packageName -> relativePath\n\n for (const [scope, rootDir] of Object.entries(scopeRoots)) {\n logger.debug(`Scanning scope ${scope} at root directory: ${rootDir}`);\n const scopePackages = await scanDirectoryForPackages(rootDir, storage);\n\n // Add packages from this scope to the overall map\n for (const [packageName, packagePath] of scopePackages) {\n if (packageName.startsWith(scope)) {\n allScopePackages.set(packageName, packagePath);\n packagesToUnlink.push(packagePath);\n logger.debug(`Package to unlink: ${packageName} -> ${packagePath}`);\n }\n }\n }\n\n return packagesToUnlink;\n};\n\nconst readCurrentWorkspaceFile = async (workspaceFilePath: string, storage: any): Promise<WorkspaceConfig> => {\n if (await storage.exists(workspaceFilePath)) {\n try {\n const content = await storage.readFile(workspaceFilePath, 'utf-8');\n return yaml.load(content) as WorkspaceConfig;\n } catch (error) {\n throw new Error(`Failed to parse existing workspace file: ${error}`);\n }\n }\n return { packages: [] };\n};\n\nconst writeWorkspaceFile = async (workspaceFilePath: string, config: WorkspaceConfig, storage: any): Promise<void> => {\n const yamlContent = yaml.dump(config, {\n indent: 2,\n lineWidth: -1,\n noRefs: true,\n sortKeys: false\n });\n await storage.writeFile(workspaceFilePath, yamlContent, 'utf-8');\n};\n\nexport const execute = async (runConfig: Config): Promise<string> => {\n const logger = getLogger();\n const storage = createStorage({ log: logger.info });\n\n logger.info('Starting pnpm workspace unlink management...');\n\n // Read current package.json\n const packageJsonPath = path.join(process.cwd(), 'package.json');\n if (!await storage.exists(packageJsonPath)) {\n throw new Error('package.json not found in current directory.');\n }\n\n let packageJson: PackageJson;\n try {\n const packageJsonContent = await storage.readFile(packageJsonPath, 'utf-8');\n packageJson = JSON.parse(packageJsonContent);\n } catch (error) {\n throw new Error(`Failed to parse package.json: ${error}`);\n }\n\n logger.info(`Processing package: ${packageJson.name || 'unnamed'}`);\n\n // Get configuration\n const scopeRoots = runConfig.link?.scopeRoots || {};\n const workspaceFileName = runConfig.link?.workspaceFile || 'pnpm-workspace.yaml';\n const isDryRun = runConfig.dryRun || runConfig.link?.dryRun || false;\n\n logger.debug('Extracted scopeRoots:', JSON.stringify(scopeRoots));\n logger.debug('Extracted workspaceFileName:', workspaceFileName);\n logger.debug('Extracted isDryRun:', isDryRun);\n\n if (Object.keys(scopeRoots).length === 0) {\n throw new Error('No scope roots configured. Please configure scope roots in your config file or via --scope-roots CLI option.');\n }\n\n logger.info(`Configured scope roots: ${JSON.stringify(scopeRoots)}`);\n\n // Find packages to unlink based on scope roots\n const packagesToUnlink = await findPackagesToUnlink(scopeRoots, storage);\n\n if (packagesToUnlink.length === 0) {\n logger.info('No packages found matching scope roots for unlinking.');\n return 'No packages found matching scope roots for unlinking.';\n }\n\n logger.info(`Found ${packagesToUnlink.length} packages that could be unlinked: ${packagesToUnlink.join(', ')}`);\n\n // Read existing workspace configuration\n const workspaceFilePath = path.join(process.cwd(), workspaceFileName);\n const workspaceConfig = await readCurrentWorkspaceFile(workspaceFilePath, storage);\n\n // Filter out packages that match our scope roots\n const existingPackages = workspaceConfig.packages || [];\n const remainingPackages = existingPackages.filter(pkg => !packagesToUnlink.includes(pkg));\n const actuallyRemovedPackages = existingPackages.filter(pkg => packagesToUnlink.includes(pkg));\n\n if (actuallyRemovedPackages.length === 0) {\n logger.info('No linked packages found in workspace file that match scope roots.');\n return 'No linked packages found in workspace file that match scope roots.';\n }\n\n const updatedConfig: WorkspaceConfig = {\n packages: remainingPackages.sort()\n };\n\n // Write the updated workspace file\n if (isDryRun) {\n logger.info('DRY RUN: Would write the following workspace configuration:');\n logger.info(yaml.dump(updatedConfig, { indent: 2 }));\n logger.info(`DRY RUN: Would remove ${actuallyRemovedPackages.length} packages: ${actuallyRemovedPackages.join(', ')}`);\n } else {\n await writeWorkspaceFile(workspaceFilePath, updatedConfig, storage);\n logger.info(`Updated ${workspaceFileName} - removed ${actuallyRemovedPackages.length} linked packages`);\n\n // Rebuild pnpm lock file and node_modules\n logger.info('Rebuilding pnpm lock file and node_modules...');\n try {\n // Remove existing lock file and node_modules to force clean rebuild\n const fs = await import('fs');\n const pnpmLockPath = path.join(process.cwd(), 'pnpm-lock.yaml');\n const nodeModulesPath = path.join(process.cwd(), 'node_modules');\n\n if (await storage.exists(pnpmLockPath)) {\n await fs.promises.unlink(pnpmLockPath);\n logger.debug('Removed existing pnpm-lock.yaml');\n }\n\n if (await storage.exists(nodeModulesPath) && await storage.isDirectory(nodeModulesPath)) {\n await fs.promises.rm(nodeModulesPath, { recursive: true, force: true });\n logger.debug('Removed existing node_modules directory');\n }\n\n // Install dependencies fresh\n await run('pnpm install');\n logger.info('Successfully rebuilt pnpm lock file and node_modules');\n } catch (error) {\n logger.warn(`Failed to rebuild dependencies: ${error}. You may need to run 'pnpm install' manually.`);\n }\n }\n\n const summary = `Successfully unlinked ${actuallyRemovedPackages.length} sibling packages:\\n${actuallyRemovedPackages.map(pkg => ` - ${pkg}`).join('\\n')}`;\n\n return summary;\n}; "],"names":["scanDirectoryForPackages","rootDir","storage","logger","getLogger","packageMap","Map","absoluteRootDir","path","resolve","process","cwd","debug","exists","isDirectory","items","listFiles","item","itemPath","join","packageJsonPath","packageJsonContent","readFile","packageJson","JSON","parse","name","relativePath","relative","set","error","warn","findPackagesToUnlink","scopeRoots","packagesToUnlink","stringify","allScopePackages","scope","Object","entries","scopePackages","packageName","packagePath","startsWith","push","readCurrentWorkspaceFile","workspaceFilePath","content","yaml","load","Error","packages","writeWorkspaceFile","config","yamlContent","dump","indent","lineWidth","noRefs","sortKeys","writeFile","execute","runConfig","createStorage","log","info","link","workspaceFileName","workspaceFile","isDryRun","dryRun","keys","length","workspaceConfig","existingPackages","remainingPackages","filter","pkg","includes","actuallyRemovedPackages","updatedConfig","sort","fs","pnpmLockPath","nodeModulesPath","promises","unlink","rm","recursive","force","run","summary","map"],"mappings":"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"}
package/dist/constants.js CHANGED
@@ -1,4 +1,4 @@
1
- const VERSION = '0.0.2 (HEAD/4c6f7a3 T:0.0.2 2025-05-26 13:00:50 -0700) linux x64 v22.15.0';
1
+ const VERSION = '0.0.6 (HEAD/0439a56 T:v0.0.6 2025-06-29 23:01:28 -0700) linux x64 v22.16.0';
2
2
  const PROGRAM_NAME = 'kodrdriv';
3
3
  const DEFAULT_CHARACTER_ENCODING = 'utf-8';
4
4
  const DEFAULT_OVERRIDES = false;
@@ -10,9 +10,15 @@ const DEFAULT_MODEL = 'gpt-4o-mini';
10
10
  const DEFAULT_CONTEXT_DIRECTORIES = [];
11
11
  const COMMAND_COMMIT = 'commit';
12
12
  const COMMAND_RELEASE = 'release';
13
+ const COMMAND_PUBLISH = 'publish';
14
+ const COMMAND_LINK = 'link';
15
+ const COMMAND_UNLINK = 'unlink';
13
16
  const ALLOWED_COMMANDS = [
14
17
  COMMAND_COMMIT,
15
- COMMAND_RELEASE
18
+ COMMAND_RELEASE,
19
+ COMMAND_PUBLISH,
20
+ COMMAND_LINK,
21
+ COMMAND_UNLINK
16
22
  ];
17
23
  const DEFAULT_COMMAND = COMMAND_COMMIT;
18
24
  const DEFAULT_CONFIG_DIR = `.${PROGRAM_NAME}`;
@@ -23,10 +29,12 @@ const DEFAULT_INSTRUCTIONS_DIR = `/instructions`;
23
29
  const DEFAULT_INSTRUCTIONS_COMMIT_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/commit.md`;
24
30
  const DEFAULT_INSTRUCTIONS_RELEASE_FILE = `${DEFAULT_INSTRUCTIONS_DIR}/release.md`;
25
31
  const DEFAULT_CACHED = false;
32
+ const DEFAULT_ADD = false;
26
33
  const DEFAULT_SENDIT_MODE = false;
27
34
  const DEFAULT_FROM_COMMIT_ALIAS = 'main';
28
35
  const DEFAULT_TO_COMMIT_ALIAS = 'HEAD';
29
36
  const DEFAULT_MESSAGE_LIMIT = 10;
37
+ const DEFAULT_MERGE_METHOD = 'squash';
30
38
  const DEFAULT_EXCLUDED_PATTERNS = [
31
39
  // Node modules & dependency files
32
40
  "node_modules",
@@ -83,6 +91,7 @@ const KODRDRIV_DEFAULTS = {
83
91
  commandName: DEFAULT_COMMAND,
84
92
  configDirectory: DEFAULT_CONFIG_DIR,
85
93
  commit: {
94
+ add: DEFAULT_ADD,
86
95
  cached: DEFAULT_CACHED,
87
96
  sendit: DEFAULT_SENDIT_MODE,
88
97
  messageLimit: DEFAULT_MESSAGE_LIMIT
@@ -92,8 +101,20 @@ const KODRDRIV_DEFAULTS = {
92
101
  to: DEFAULT_TO_COMMIT_ALIAS,
93
102
  messageLimit: DEFAULT_MESSAGE_LIMIT
94
103
  },
104
+ publish: {
105
+ mergeMethod: DEFAULT_MERGE_METHOD,
106
+ requiredEnvVars: [
107
+ 'GITHUB_TOKEN',
108
+ 'OPENAI_API_KEY'
109
+ ]
110
+ },
111
+ link: {
112
+ scopeRoots: {},
113
+ workspaceFile: 'pnpm-workspace.yaml',
114
+ dryRun: false
115
+ },
95
116
  excludedPatterns: DEFAULT_EXCLUDED_PATTERNS
96
117
  };
97
118
 
98
- export { ALLOWED_COMMANDS, COMMAND_COMMIT, COMMAND_RELEASE, DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS, DEFAULT_CACHED, DEFAULT_CHARACTER_ENCODING, 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_MESSAGE_LIMIT, DEFAULT_MODEL, DEFAULT_OVERRIDES, DEFAULT_PERSONAS_DIR, DEFAULT_PERSONA_COMMITTER_FILE, DEFAULT_PERSONA_RELEASER_FILE, DEFAULT_SENDIT_MODE, DEFAULT_TO_COMMIT_ALIAS, DEFAULT_VERBOSE, KODRDRIV_DEFAULTS, PROGRAM_NAME, VERSION };
119
+ export { ALLOWED_COMMANDS, COMMAND_COMMIT, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_UNLINK, DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS, DEFAULT_ADD, DEFAULT_CACHED, DEFAULT_CHARACTER_ENCODING, 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_MERGE_METHOD, DEFAULT_MESSAGE_LIMIT, DEFAULT_MODEL, DEFAULT_OVERRIDES, DEFAULT_PERSONAS_DIR, DEFAULT_PERSONA_COMMITTER_FILE, DEFAULT_PERSONA_RELEASER_FILE, DEFAULT_SENDIT_MODE, DEFAULT_TO_COMMIT_ALIAS, DEFAULT_VERBOSE, KODRDRIV_DEFAULTS, PROGRAM_NAME, VERSION };
99
120
  //# sourceMappingURL=constants.js.map