@eldrforge/kodrdriv 0.0.33 → 0.0.38
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 +46 -69
- package/dist/application.js +146 -0
- package/dist/application.js.map +1 -0
- package/dist/arguments.js +22 -21
- package/dist/arguments.js.map +1 -1
- package/dist/commands/audio-commit.js +43 -21
- package/dist/commands/audio-commit.js.map +1 -1
- package/dist/commands/audio-review.js +46 -38
- package/dist/commands/audio-review.js.map +1 -1
- package/dist/commands/clean.js +28 -12
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/commit.js +132 -39
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/link.js +177 -159
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/publish-tree.js +19 -6
- package/dist/commands/publish-tree.js.map +1 -1
- package/dist/commands/publish.js +152 -82
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/release.js +21 -16
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/review.js +286 -60
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/select-audio.js +25 -8
- package/dist/commands/select-audio.js.map +1 -1
- package/dist/commands/unlink.js +349 -159
- package/dist/commands/unlink.js.map +1 -1
- package/dist/constants.js +14 -5
- package/dist/constants.js.map +1 -1
- package/dist/content/diff.js +7 -5
- package/dist/content/diff.js.map +1 -1
- package/dist/content/log.js +4 -1
- package/dist/content/log.js.map +1 -1
- package/dist/error/CancellationError.js +9 -0
- package/dist/error/CancellationError.js.map +1 -0
- package/dist/error/CommandErrors.js +120 -0
- package/dist/error/CommandErrors.js.map +1 -0
- package/dist/logging.js +55 -12
- package/dist/logging.js.map +1 -1
- package/dist/main.js +6 -131
- package/dist/main.js.map +1 -1
- package/dist/prompt/commit.js +4 -0
- package/dist/prompt/commit.js.map +1 -1
- package/dist/prompt/instructions/commit.md +33 -24
- package/dist/prompt/instructions/release.md +39 -5
- package/dist/prompt/release.js +41 -1
- package/dist/prompt/release.js.map +1 -1
- package/dist/types.js +9 -2
- package/dist/types.js.map +1 -1
- package/dist/util/github.js +71 -4
- package/dist/util/github.js.map +1 -1
- package/dist/util/npmOptimizations.js +174 -0
- package/dist/util/npmOptimizations.js.map +1 -0
- package/dist/util/openai.js +4 -2
- package/dist/util/openai.js.map +1 -1
- package/dist/util/performance.js +202 -0
- package/dist/util/performance.js.map +1 -0
- package/dist/util/safety.js +166 -0
- package/dist/util/safety.js.map +1 -0
- package/dist/util/storage.js +10 -0
- package/dist/util/storage.js.map +1 -1
- package/dist/util/validation.js +81 -0
- package/dist/util/validation.js.map +1 -0
- package/package.json +19 -18
- package/packages/components/package.json +4 -0
- package/packages/tools/package.json +4 -0
- package/packages/utils/package.json +4 -0
- package/scripts/pre-commit-hook.sh +52 -0
- package/test-project/package.json +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlink.js","sources":["../../src/commands/unlink.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport 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 PnpmWorkspaceFile {\n packages?: string[];\n overrides?: Record<string, 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.verbose(`Scanning directory for packages: ${absoluteRootDir}`);\n\n try {\n // Use single stat call to check if directory exists and is directory\n const rootStat = await storage.exists(absoluteRootDir);\n if (!rootStat) {\n logger.verbose(`Root directory does not exist: ${absoluteRootDir}`);\n return packageMap;\n }\n\n if (!await storage.isDirectory(absoluteRootDir)) {\n logger.verbose(`Root path is not a directory: ${absoluteRootDir}`);\n return packageMap;\n }\n\n // Get all items in the root directory\n const items = await storage.listFiles(absoluteRootDir);\n\n // Process directories in batches to avoid overwhelming the filesystem\n const directories = [];\n for (const item of items) {\n const itemPath = path.join(absoluteRootDir, item);\n try {\n // Quick check if it's a directory without logging\n if (await storage.isDirectory(itemPath)) {\n directories.push({ item, itemPath });\n }\n } catch (error: any) {\n // Skip items that can't be stat'ed (permissions, etc)\n continue;\n }\n }\n\n logger.verbose(`Found ${directories.length} subdirectories to check for packages`);\n\n // Check each directory for package.json\n for (const { item, itemPath } of directories) {\n const packageJsonPath = path.join(itemPath, 'package.json');\n\n try {\n if (await storage.exists(packageJsonPath)) {\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 }\n } catch (error: any) {\n // Skip directories with unreadable or invalid package.json\n logger.debug(`Skipped ${packageJsonPath}: ${error.message || error}`);\n continue;\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.silly(`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.verbose(`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<PnpmWorkspaceFile> => {\n if (await storage.exists(workspaceFilePath)) {\n try {\n const content = await storage.readFile(workspaceFilePath, 'utf-8');\n return (yaml.load(content) as PnpmWorkspaceFile) || {};\n } catch (error) {\n throw new Error(`Failed to parse existing workspace file: ${error}`);\n }\n }\n return {};\n};\n\nconst writeWorkspaceFile = async (workspaceFilePath: string, config: PnpmWorkspaceFile, storage: any): Promise<void> => {\n let yamlContent = yaml.dump(config, {\n indent: 2,\n lineWidth: -1,\n noRefs: true,\n sortKeys: false,\n quotingType: \"'\",\n forceQuotes: true\n });\n\n // Post-process to fix numeric values that shouldn't be quoted\n yamlContent = yamlContent.replace(/: '(\\d+(?:\\.\\d+)*)'/g, ': $1');\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('🔓 Unlinking workspace packages...');\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 // 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 if (Object.keys(scopeRoots).length === 0) {\n logger.info('No scope roots configured. Skipping unlink management.');\n return 'No scope roots configured. Skipping unlink management.';\n }\n\n logger.info(`Scanning ${Object.keys(scopeRoots).length} scope root(s): ${Object.keys(scopeRoots).join(', ')}`);\n\n // Find packages to unlink based on scope roots\n const startTime = Date.now();\n const packagesToUnlinkPaths = await findPackagesToUnlink(scopeRoots, storage);\n const scanTime = Date.now() - startTime;\n logger.verbose(`Directory scan completed in ${scanTime}ms`);\n\n if (packagesToUnlinkPaths.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.verbose(`Found ${packagesToUnlinkPaths.length} packages that could be unlinked: ${packagesToUnlinkPaths.join(', ')}`);\n\n // Read existing workspace configuration\n const workspaceFilePath = path.join(process.cwd(), workspaceFileName);\n const workspaceConfig = await readCurrentWorkspaceFile(workspaceFilePath, storage);\n\n if (!workspaceConfig.overrides || Object.keys(workspaceConfig.overrides).length === 0) {\n logger.info('✅ No overrides found in workspace file. Nothing to do.');\n return 'No overrides found in workspace file. Nothing to do.';\n }\n\n // Filter out packages that match our scope roots from overrides\n const existingOverrides = workspaceConfig.overrides || {};\n const remainingOverrides: Record<string, string> = {};\n const actuallyRemovedPackages: string[] = [];\n const packagesToUnlinkSet = new Set(packagesToUnlinkPaths.map(p => `link:${p}`));\n\n for (const [pkgName, pkgLink] of Object.entries(existingOverrides)) {\n if (packagesToUnlinkSet.has(pkgLink)) {\n actuallyRemovedPackages.push(pkgName);\n } else {\n remainingOverrides[pkgName] = pkgLink;\n }\n }\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 logger.info(`Found ${actuallyRemovedPackages.length} package(s) to unlink: ${actuallyRemovedPackages.join(', ')}`);\n\n const updatedConfig: PnpmWorkspaceFile = {\n ...workspaceConfig,\n overrides: remainingOverrides\n };\n\n if (Object.keys(remainingOverrides).length === 0) {\n delete updatedConfig.overrides;\n }\n\n // Write the updated workspace file\n if (isDryRun) {\n logger.info('DRY RUN: Would update workspace configuration and run pnpm install');\n logger.verbose('DRY RUN: Would write the following workspace configuration:');\n logger.silly(yaml.dump(updatedConfig, { indent: 2 }));\n logger.verbose(`DRY RUN: Would remove ${actuallyRemovedPackages.length} packages: ${actuallyRemovedPackages.join(', ')}`);\n } else {\n await writeWorkspaceFile(workspaceFilePath, updatedConfig, storage);\n logger.info(`Updated ${workspaceFileName} - removed linked packages`);\n\n // Rebuild pnpm lock file and node_modules\n logger.info('⏳ Running pnpm install to apply changes (this may take a moment)...');\n const installStart = Date.now();\n try {\n await run('pnpm install');\n const installTime = Date.now() - installStart;\n logger.info(`✅ Changes applied successfully (${installTime}ms)`);\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};\n"],"names":["scanDirectoryForPackages","rootDir","storage","logger","getLogger","packageMap","Map","absoluteRootDir","path","resolve","process","cwd","verbose","rootStat","exists","isDirectory","items","listFiles","directories","item","itemPath","join","push","error","length","packageJsonPath","packageJsonContent","readFile","packageJson","JSON","parse","name","relativePath","relative","set","debug","message","warn","findPackagesToUnlink","scopeRoots","packagesToUnlink","silly","stringify","allScopePackages","scope","Object","entries","scopePackages","packageName","packagePath","startsWith","readCurrentWorkspaceFile","workspaceFilePath","content","yaml","load","Error","writeWorkspaceFile","config","yamlContent","dump","indent","lineWidth","noRefs","sortKeys","quotingType","forceQuotes","replace","writeFile","execute","runConfig","createStorage","log","info","link","workspaceFileName","workspaceFile","isDryRun","dryRun","keys","startTime","Date","now","packagesToUnlinkPaths","scanTime","workspaceConfig","overrides","existingOverrides","remainingOverrides","actuallyRemovedPackages","packagesToUnlinkSet","Set","map","p","pkgName","pkgLink","has","updatedConfig","installStart","run","installTime","summary","pkg"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unlink.js","sources":["../../src/commands/unlink.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport path from 'path';\nimport { getLogger, getDryRunLogger } from '../logging';\nimport { Config } from '../types';\nimport { create as createStorage } from '../util/storage';\nimport { safeJsonParse, validateLinkBackup, type LinkBackup } from '../util/validation';\nimport { run } from '../util/child';\nimport {\n PerformanceTimer,\n PackageJson,\n PackageJsonLocation,\n findAllPackageJsonFiles,\n scanDirectoryForPackages,\n checkForFileDependencies\n} from '../util/performance';\nimport { smartNpmInstall } from '../util/npmOptimizations';\n\ninterface ExtendedPackageJson extends PackageJson {\n workspaces?: string[] | { packages?: string[] };\n overrides?: Record<string, any>;\n resolutions?: Record<string, any>;\n}\n\n\n\ninterface ProblematicDependency {\n name: string;\n version: string;\n type: 'file:' | 'link:' | 'relative-path' | 'workspace' | 'override' | 'resolution';\n dependencyType: 'dependencies' | 'devDependencies' | 'peerDependencies' | 'workspaces' | 'overrides' | 'resolutions';\n packagePath: string;\n reason: string;\n}\n\nconst EXCLUDED_DIRECTORIES = [\n 'node_modules',\n 'dist',\n 'build',\n 'coverage',\n '.git',\n '.next',\n '.nuxt',\n 'out',\n 'public',\n 'static',\n 'assets'\n];\n\n\n\nconst findPackagesToUnlink = async (scopeRoots: Record<string, string>, storage: any): Promise<string[]> => {\n const logger = getLogger();\n const timer = PerformanceTimer.start(logger, 'Finding packages to unlink');\n const packagesToUnlink: string[] = [];\n\n logger.silly(`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 scopeTimer = PerformanceTimer.start(logger, 'Scanning all scope roots for packages to unlink');\n const allScopePackages = new Map<string, string>(); // packageName -> relativePath\n\n // Process all scopes in parallel for better performance\n const scopePromises = Object.entries(scopeRoots).map(async ([scope, rootDir]) => {\n logger.verbose(`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 const scopeResults: Array<[string, string]> = [];\n for (const [packageName, packagePath] of scopePackages) {\n if (packageName.startsWith(scope)) {\n scopeResults.push([packageName, packagePath]);\n logger.debug(`Package to unlink: ${packageName} -> ${packagePath}`);\n }\n }\n return scopeResults;\n });\n\n const allScopeResults = await Promise.all(scopePromises);\n\n // Flatten results and collect package names\n for (const scopeResults of allScopeResults) {\n for (const [packageName, packagePath] of scopeResults) {\n allScopePackages.set(packageName, packagePath);\n packagesToUnlink.push(packageName);\n }\n }\n\n scopeTimer.end(`Scanned ${Object.keys(scopeRoots).length} scope roots, found ${packagesToUnlink.length} packages to unlink`);\n\n timer.end(`Found ${packagesToUnlink.length} packages to unlink`);\n return packagesToUnlink;\n};\n\nconst readLinkBackup = async (storage: any): Promise<LinkBackup> => {\n const backupPath = path.join(process.cwd(), '.kodrdriv-link-backup.json');\n if (await storage.exists(backupPath)) {\n try {\n const content = await storage.readFile(backupPath, 'utf-8');\n const parsed = safeJsonParse(content, 'link backup file');\n return validateLinkBackup(parsed);\n } catch (error) {\n throw new Error(`Failed to parse link backup file: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n return {};\n};\n\nconst writeLinkBackup = async (backup: LinkBackup, storage: any): Promise<void> => {\n const backupPath = path.join(process.cwd(), '.kodrdriv-link-backup.json');\n if (Object.keys(backup).length === 0) {\n // Remove backup file if empty\n if (await storage.exists(backupPath)) {\n await storage.deleteFile(backupPath);\n }\n } else {\n await storage.writeFile(backupPath, JSON.stringify(backup, null, 2), 'utf-8');\n }\n};\n\nconst restorePackageJson = async (\n packageJsonLocation: PackageJsonLocation,\n packagesToUnlink: string[],\n backup: LinkBackup,\n storage: any\n): Promise<number> => {\n const logger = getLogger();\n let restoredCount = 0;\n const { packageJson, path: packageJsonPath, relativePath } = packageJsonLocation;\n\n // Restore original versions from backup\n for (const packageName of packagesToUnlink) {\n const backupKey = `${relativePath}:${packageName}`;\n const backupEntry = backup[backupKey];\n\n if (!backupEntry) {\n logger.debug(`No backup found for ${backupKey}, skipping`);\n continue;\n }\n\n const currentDeps = (packageJson as any)[backupEntry.dependencyType];\n if (currentDeps && currentDeps[packageName]?.startsWith('file:')) {\n // Restore the original version\n currentDeps[packageName] = backupEntry.originalVersion;\n restoredCount++;\n logger.verbose(`Restored ${relativePath}/${backupEntry.dependencyType}.${packageName}: file:... -> ${backupEntry.originalVersion}`);\n\n // Remove from backup\n delete backup[backupKey];\n }\n }\n\n // NOTE: Don't write the file here - let the caller handle all modifications\n return restoredCount;\n};\n\n/**\n * Comprehensive scan for all types of problematic dependencies that could cause GitHub build failures\n */\nconst scanForProblematicDependencies = (packageJsonFiles: PackageJsonLocation[]): ProblematicDependency[] => {\n const logger = getLogger();\n const timer = PerformanceTimer.start(logger, 'Scanning for problematic dependencies');\n const problematicDeps: ProblematicDependency[] = [];\n\n for (const { path: packagePath, packageJson, relativePath } of packageJsonFiles) {\n const extendedPackageJson = packageJson as ExtendedPackageJson;\n\n // Check dependencies, devDependencies, peerDependencies\n const depTypes: Array<keyof Pick<ExtendedPackageJson, 'dependencies' | 'devDependencies' | 'peerDependencies'>> = [\n 'dependencies', 'devDependencies', 'peerDependencies'\n ];\n\n for (const depType of depTypes) {\n const deps = extendedPackageJson[depType];\n if (!deps) continue;\n\n for (const [name, version] of Object.entries(deps)) {\n let problemType: ProblematicDependency['type'] | null = null;\n let reason = '';\n\n // Check for file: dependencies\n if (version.startsWith('file:')) {\n problemType = 'file:';\n reason = 'File dependencies cause build failures in CI/CD environments';\n }\n // Check for link: dependencies\n else if (version.startsWith('link:')) {\n problemType = 'link:';\n reason = 'Link dependencies are not resolvable in remote environments';\n }\n // Check for relative path patterns that could be problematic\n else if (version.includes('../') || version.includes('./') || version.startsWith('/')) {\n problemType = 'relative-path';\n reason = 'Relative path dependencies are not resolvable in different environments';\n }\n // Check for workspace protocol (used by some package managers)\n else if (version.startsWith('workspace:')) {\n problemType = 'workspace';\n reason = 'Workspace protocol dependencies require workspace configuration';\n }\n\n if (problemType) {\n problematicDeps.push({\n name,\n version,\n type: problemType,\n dependencyType: depType,\n packagePath: relativePath,\n reason\n });\n }\n }\n }\n\n // Check workspace configurations\n if (extendedPackageJson.workspaces) {\n problematicDeps.push({\n name: 'workspaces',\n version: JSON.stringify(extendedPackageJson.workspaces),\n type: 'workspace',\n dependencyType: 'workspaces',\n packagePath: relativePath,\n reason: 'Workspace configurations can cause issues when published to npm'\n });\n }\n\n // Check overrides (npm 8.3+)\n if (extendedPackageJson.overrides) {\n for (const [name, override] of Object.entries(extendedPackageJson.overrides)) {\n if (typeof override === 'string' && (override.startsWith('file:') || override.startsWith('link:') || override.includes('../'))) {\n problematicDeps.push({\n name,\n version: override,\n type: 'override',\n dependencyType: 'overrides',\n packagePath: relativePath,\n reason: 'Override configurations with local paths cause build failures'\n });\n }\n }\n }\n\n // Check resolutions (Yarn)\n if (extendedPackageJson.resolutions) {\n for (const [name, resolution] of Object.entries(extendedPackageJson.resolutions)) {\n if (typeof resolution === 'string' && (resolution.startsWith('file:') || resolution.startsWith('link:') || resolution.includes('../'))) {\n problematicDeps.push({\n name,\n version: resolution,\n type: 'resolution',\n dependencyType: 'resolutions',\n packagePath: relativePath,\n reason: 'Resolution configurations with local paths cause build failures'\n });\n }\n }\n }\n }\n\n timer.end(`Found ${problematicDeps.length} problematic dependencies`);\n return problematicDeps;\n};\n\n/**\n * Enhanced function to display problematic dependencies with detailed information\n */\nconst displayProblematicDependencies = (problematicDeps: ProblematicDependency[]): void => {\n const logger = getLogger();\n\n if (problematicDeps.length === 0) {\n logger.info('✅ No problematic dependencies found');\n return;\n }\n\n logger.info('🔓 Found problematic dependencies that could cause GitHub build failures:');\n\n // Group by package path for better readability\n const grouped = problematicDeps.reduce((acc, dep) => {\n if (!acc[dep.packagePath]) {\n acc[dep.packagePath] = [];\n }\n acc[dep.packagePath].push(dep);\n return acc;\n }, {} as Record<string, ProblematicDependency[]>);\n\n for (const [packagePath, deps] of Object.entries(grouped)) {\n logger.info(` 📄 ${packagePath}:`);\n for (const dep of deps) {\n logger.info(` ❌ ${dep.dependencyType}.${dep.name}: ${dep.version} (${dep.type})`);\n logger.info(` 💡 ${dep.reason}`);\n }\n }\n};\n\n/**\n * Verification step to ensure no problematic dependencies remain after cleanup\n */\nconst verifyCleanup = async (packageJsonFiles: PackageJsonLocation[]): Promise<boolean> => {\n const logger = getLogger();\n const timer = PerformanceTimer.start(logger, 'Verifying cleanup completion');\n\n const remainingProblems = scanForProblematicDependencies(packageJsonFiles);\n\n if (remainingProblems.length === 0) {\n logger.info('✅ Verification passed: No problematic dependencies remain');\n timer.end('Verification successful');\n return true;\n } else {\n logger.warn('⚠️ Verification failed: Found remaining problematic dependencies');\n displayProblematicDependencies(remainingProblems);\n timer.end('Verification failed');\n return false;\n }\n};\n\nexport const execute = async (runConfig: Config): Promise<string> => {\n const isDryRun = runConfig.dryRun || runConfig.unlink?.dryRun || false;\n const logger = getDryRunLogger(isDryRun);\n const overallTimer = PerformanceTimer.start(logger, 'Unlink command execution');\n const storage = createStorage({ log: logger.info });\n\n logger.info('🔓 Unlinking workspace packages and cleaning up problematic dependencies...');\n\n // Get configuration\n const configTimer = PerformanceTimer.start(logger, 'Reading configuration');\n const scopeRoots = runConfig.unlink?.scopeRoots || runConfig.link?.scopeRoots || {};\n const workspaceFileName = runConfig.unlink?.workspaceFile || 'pnpm-workspace.yaml';\n configTimer.end('Configuration loaded');\n\n if (Object.keys(scopeRoots).length === 0) {\n logger.info('No scope roots configured. Skipping link management.');\n overallTimer.end('Unlink command (no scope roots)');\n return 'No scope roots configured. Skipping link management.';\n }\n\n // Find all package.json files in current directory tree\n const packageJsonFiles = await findAllPackageJsonFiles(process.cwd(), storage);\n\n if (packageJsonFiles.length === 0) {\n throw new Error('No package.json files found in current directory or subdirectories.');\n }\n\n logger.info(`Found ${packageJsonFiles.length} package.json file(s) to process`);\n logger.info(`Scanning ${Object.keys(scopeRoots).length} scope root(s): ${Object.keys(scopeRoots).join(', ')}`);\n\n // Comprehensive scan for all problematic dependencies\n const problematicDeps = scanForProblematicDependencies(packageJsonFiles);\n displayProblematicDependencies(problematicDeps);\n\n // Find packages to unlink based on scope roots\n const packagesToUnlinkNames = await findPackagesToUnlink(scopeRoots, storage);\n\n if (packagesToUnlinkNames.length === 0 && problematicDeps.length === 0) {\n logger.info('✅ No packages found matching scope roots for unlinking and no problematic dependencies detected.');\n overallTimer.end('Unlink command (nothing to clean)');\n return 'No packages found matching scope roots for unlinking and no problematic dependencies detected.';\n }\n\n logger.verbose(`Found ${packagesToUnlinkNames.length} packages that could be unlinked: ${packagesToUnlinkNames.join(', ')}`);\n\n // Read existing backup\n const backupTimer = PerformanceTimer.start(logger, 'Reading link backup');\n const backup = await readLinkBackup(storage);\n backupTimer.end('Link backup loaded');\n\n if (isDryRun) {\n logger.info('Would clean up problematic dependencies and restore original package.json dependencies');\n\n // Show what would be cleaned up\n let dryRunCount = 0;\n for (const packageName of packagesToUnlinkNames) {\n for (const { relativePath } of packageJsonFiles) {\n const backupKey = `${relativePath}:${packageName}`;\n const backupEntry = backup[backupKey];\n if (backupEntry) {\n logger.verbose(`Would restore ${relativePath}/${packageName}: file:... -> ${backupEntry.originalVersion}`);\n dryRunCount++;\n }\n }\n }\n\n // Show what problematic dependencies would be cleaned\n if (problematicDeps.length > 0) {\n logger.verbose(`Would clean up ${problematicDeps.length} problematic dependencies`);\n }\n\n overallTimer.end('Unlink command (dry run)');\n return `DRY RUN: Would unlink ${dryRunCount} dependency reference(s) and clean up ${problematicDeps.length} problematic dependencies across ${packageJsonFiles.length} package.json files`;\n } else {\n // Restore package.json files with original versions and clean up problematic dependencies\n let totalRestoredCount = 0;\n let totalCleanedCount = 0;\n\n for (const packageJsonLocation of packageJsonFiles) {\n const { packageJson, path: packageJsonPath, relativePath } = packageJsonLocation;\n let modified = false;\n\n // Restore from backup\n const restoredCount = await restorePackageJson(packageJsonLocation, packagesToUnlinkNames, backup, storage);\n totalRestoredCount += restoredCount;\n if (restoredCount > 0) modified = true;\n\n // Clean up problematic dependencies for this specific package\n const extendedPackageJson = packageJson as ExtendedPackageJson;\n\n // Remove workspace configurations\n if (extendedPackageJson.workspaces) {\n delete extendedPackageJson.workspaces;\n logger.verbose(`Removed workspace configuration from ${relativePath}`);\n modified = true;\n totalCleanedCount++;\n }\n\n // Clean overrides with problematic paths\n if (extendedPackageJson.overrides) {\n const cleanOverrides: Record<string, any> = {};\n let overridesModified = false;\n\n for (const [name, override] of Object.entries(extendedPackageJson.overrides)) {\n if (typeof override === 'string' && (override.startsWith('file:') || override.startsWith('link:') || override.includes('../'))) {\n logger.verbose(`Removed problematic override ${relativePath}/overrides.${name}: ${override}`);\n overridesModified = true;\n totalCleanedCount++;\n } else {\n cleanOverrides[name] = override;\n }\n }\n\n if (overridesModified) {\n if (Object.keys(cleanOverrides).length === 0) {\n delete extendedPackageJson.overrides;\n } else {\n extendedPackageJson.overrides = cleanOverrides;\n }\n modified = true;\n }\n }\n\n // Clean resolutions with problematic paths\n if (extendedPackageJson.resolutions) {\n const cleanResolutions: Record<string, any> = {};\n let resolutionsModified = false;\n\n for (const [name, resolution] of Object.entries(extendedPackageJson.resolutions)) {\n if (typeof resolution === 'string' && (resolution.startsWith('file:') || resolution.startsWith('link:') || resolution.includes('../'))) {\n logger.verbose(`Removed problematic resolution ${relativePath}/resolutions.${name}: ${resolution}`);\n resolutionsModified = true;\n totalCleanedCount++;\n } else {\n cleanResolutions[name] = resolution;\n }\n }\n\n if (resolutionsModified) {\n if (Object.keys(cleanResolutions).length === 0) {\n delete extendedPackageJson.resolutions;\n } else {\n extendedPackageJson.resolutions = cleanResolutions;\n }\n modified = true;\n }\n }\n\n // Save the modified package.json if any changes were made\n if (modified) {\n await storage.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');\n }\n }\n\n // Save updated backup (with restored items removed)\n await writeLinkBackup(backup, storage);\n\n if (totalRestoredCount === 0 && totalCleanedCount === 0) {\n logger.info('✅ No problematic dependencies were found to clean up.');\n overallTimer.end('Unlink command (nothing to clean)');\n return 'No problematic dependencies were found to clean up.';\n }\n\n logger.info(`Cleaned up ${totalRestoredCount} linked dependencies and ${totalCleanedCount} other problematic dependencies across ${packageJsonFiles.length} package.json file(s)`);\n\n // Re-read package.json files for verification\n const updatedPackageJsonFiles = await findAllPackageJsonFiles(process.cwd(), storage);\n\n // Verification step\n const verificationPassed = await verifyCleanup(updatedPackageJsonFiles);\n\n if (!verificationPassed) {\n logger.warn('⚠️ Some problematic dependencies may still remain. Please review the output above.');\n }\n\n // Rebuild dependencies\n logger.info('⏳ Running npm install to apply changes (this may take a moment)...');\n try {\n const installResult = await smartNpmInstall({\n skipIfNotNeeded: false, // Always install after unlinking changes\n preferCi: true, // Can use npm ci since we restored original dependencies\n verbose: false\n });\n\n if (installResult.skipped) {\n logger.info(`⚡ Dependencies were up to date (${installResult.method})`);\n } else {\n logger.info(`✅ Dependencies rebuilt successfully using ${installResult.method} (${installResult.duration}ms)`);\n }\n } catch (error) {\n logger.warn(`Failed to rebuild dependencies: ${error}. You may need to run 'npm install' manually.`);\n }\n\n const summary = `Successfully cleaned up ${totalRestoredCount} linked dependencies and ${totalCleanedCount} other problematic dependencies across ${packageJsonFiles.length} package.json file(s)`;\n overallTimer.end('Unlink command completed');\n return summary;\n }\n};\n"],"names":["findPackagesToUnlink","scopeRoots","storage","logger","getLogger","timer","PerformanceTimer","start","packagesToUnlink","silly","JSON","stringify","scopeTimer","allScopePackages","Map","scopePromises","Object","entries","map","scope","rootDir","verbose","scopePackages","scanDirectoryForPackages","scopeResults","packageName","packagePath","startsWith","push","debug","allScopeResults","Promise","all","set","end","keys","length","readLinkBackup","backupPath","path","join","process","cwd","exists","content","readFile","parsed","safeJsonParse","validateLinkBackup","error","Error","message","writeLinkBackup","backup","deleteFile","writeFile","restorePackageJson","packageJsonLocation","restoredCount","packageJson","packageJsonPath","relativePath","currentDeps","backupKey","backupEntry","dependencyType","originalVersion","scanForProblematicDependencies","packageJsonFiles","problematicDeps","extendedPackageJson","depTypes","depType","deps","name","version","problemType","reason","includes","type","workspaces","overrides","override","resolutions","resolution","displayProblematicDependencies","info","grouped","reduce","acc","dep","verifyCleanup","remainingProblems","warn","execute","runConfig","isDryRun","dryRun","unlink","getDryRunLogger","overallTimer","createStorage","log","configTimer","link","workspaceFile","findAllPackageJsonFiles","packagesToUnlinkNames","backupTimer","dryRunCount","totalRestoredCount","totalCleanedCount","modified","cleanOverrides","overridesModified","cleanResolutions","resolutionsModified","updatedPackageJsonFiles","verificationPassed","installResult","smartNpmInstall","skipIfNotNeeded","preferCi","skipped","method","duration","summary"],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import os from 'os';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
|
|
4
|
-
const VERSION = '0.0.
|
|
4
|
+
const VERSION = '0.0.38 (HEAD/7ebf12d T:v0.0.38 2025-07-26 15:39:32 -0700) linux x64 v22.17.1';
|
|
5
5
|
const PROGRAM_NAME = 'kodrdriv';
|
|
6
6
|
const DEFAULT_OVERRIDES = false;
|
|
7
7
|
const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS = 'YYYY-MM-DD-HHmmss.SSS';
|
|
@@ -10,6 +10,8 @@ const DEFAULT_DRY_RUN = false;
|
|
|
10
10
|
const DEFAULT_DEBUG = false;
|
|
11
11
|
const DEFAULT_MODEL = 'gpt-4o-mini';
|
|
12
12
|
const DEFAULT_OUTPUT_DIRECTORY = 'output/kodrdriv';
|
|
13
|
+
// Buffer size for git commands that may produce large output (like git log)
|
|
14
|
+
const DEFAULT_GIT_COMMAND_MAX_BUFFER = 50 * 1024 * 1024; // 50MB
|
|
13
15
|
const DEFAULT_CONTEXT_DIRECTORIES = [];
|
|
14
16
|
const DEFAULT_CONFIG_DIR = '.kodrdriv';
|
|
15
17
|
const DEFAULT_PREFERENCES_DIRECTORY = path.join(os.homedir(), '.kodrdriv');
|
|
@@ -22,7 +24,6 @@ const DEFAULT_MESSAGE_LIMIT = 50;
|
|
|
22
24
|
const DEFAULT_MERGE_METHOD = 'squash';
|
|
23
25
|
const DEFAULT_EXCLUDED_PATTERNS = [
|
|
24
26
|
'node_modules',
|
|
25
|
-
'pnpm-lock.yaml',
|
|
26
27
|
'package-lock.json',
|
|
27
28
|
'yarn.lock',
|
|
28
29
|
'bun.lockb',
|
|
@@ -100,7 +101,8 @@ const KODRDRIV_DEFAULTS = {
|
|
|
100
101
|
add: DEFAULT_ADD,
|
|
101
102
|
cached: DEFAULT_CACHED,
|
|
102
103
|
sendit: DEFAULT_SENDIT_MODE,
|
|
103
|
-
messageLimit: DEFAULT_MESSAGE_LIMIT
|
|
104
|
+
messageLimit: DEFAULT_MESSAGE_LIMIT,
|
|
105
|
+
skipFileCheck: false
|
|
104
106
|
},
|
|
105
107
|
release: {
|
|
106
108
|
from: DEFAULT_FROM_COMMIT_ALIAS,
|
|
@@ -148,11 +150,18 @@ const KODRDRIV_DEFAULTS = {
|
|
|
148
150
|
},
|
|
149
151
|
link: {
|
|
150
152
|
scopeRoots: {},
|
|
151
|
-
workspaceFile: 'pnpm-workspace.yaml',
|
|
152
153
|
dryRun: false
|
|
153
154
|
},
|
|
155
|
+
publishTree: {
|
|
156
|
+
directory: undefined,
|
|
157
|
+
excludedPatterns: undefined,
|
|
158
|
+
startFrom: undefined,
|
|
159
|
+
script: undefined,
|
|
160
|
+
cmd: undefined,
|
|
161
|
+
publish: false
|
|
162
|
+
},
|
|
154
163
|
excludedPatterns: DEFAULT_EXCLUDED_PATTERNS
|
|
155
164
|
};
|
|
156
165
|
|
|
157
|
-
export { ALLOWED_COMMANDS, COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_PUBLISH_TREE, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_UNLINK, DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS, 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_MERGE_METHOD, DEFAULT_MESSAGE_LIMIT, DEFAULT_MODEL, DEFAULT_OUTPUT_DIRECTORY, DEFAULT_OVERRIDES, DEFAULT_PREFERENCES_DIRECTORY, DEFAULT_SENDIT_MODE, DEFAULT_TO_COMMIT_ALIAS, DEFAULT_VERBOSE, KODRDRIV_DEFAULTS, PROGRAM_NAME, VERSION };
|
|
166
|
+
export { ALLOWED_COMMANDS, COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_PUBLISH_TREE, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_UNLINK, DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS, 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_GIT_COMMAND_MAX_BUFFER, DEFAULT_MERGE_METHOD, DEFAULT_MESSAGE_LIMIT, DEFAULT_MODEL, DEFAULT_OUTPUT_DIRECTORY, DEFAULT_OVERRIDES, DEFAULT_PREFERENCES_DIRECTORY, DEFAULT_SENDIT_MODE, DEFAULT_TO_COMMIT_ALIAS, DEFAULT_VERBOSE, KODRDRIV_DEFAULTS, PROGRAM_NAME, VERSION };
|
|
158
167
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["import { MergeMethod } from './types';\nimport os from 'os';\nimport path from 'path';\n\nexport const VERSION = '__VERSION__ (__GIT_BRANCH__/__GIT_COMMIT__ __GIT_TAGS__ __GIT_COMMIT_DATE__) __SYSTEM_INFO__';\nexport const PROGRAM_NAME = 'kodrdriv';\nexport const DEFAULT_CHARACTER_ENCODING = 'utf-8';\nexport const DEFAULT_BINARY_TO_TEXT_ENCODING = 'base64';\nexport const DEFAULT_DIFF = true;\nexport const DEFAULT_LOG = false;\nexport const DEFAULT_OVERRIDES = false;\nexport const DATE_FORMAT_MONTH_DAY = 'MM-DD';\nexport const DATE_FORMAT_YEAR = 'YYYY';\nexport const DATE_FORMAT_YEAR_MONTH = 'YYYY-MM';\nexport const DATE_FORMAT_YEAR_MONTH_DAY = 'YYYY-MM-DD';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_SLASH = 'YYYY/MM/DD';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES = 'YYYY-MM-DD-HHmm';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS = 'YYYY-MM-DD-HHmmss';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS = 'YYYY-MM-DD-HHmmss.SSS';\nexport const DATE_FORMAT_SHORT_TIMESTAMP = 'YYMMdd-HHmm';\nexport const DATE_FORMAT_MONTH = 'MM';\nexport const DATE_FORMAT_DAY = 'DD';\nexport const DATE_FORMAT_HOURS = 'HHmm';\nexport const DATE_FORMAT_MINUTES = 'mm';\nexport const DATE_FORMAT_SECONDS = 'ss';\nexport const DATE_FORMAT_MILLISECONDS = 'SSS';\nexport const DEFAULT_VERBOSE = false;\nexport const DEFAULT_DRY_RUN = false;\nexport const DEFAULT_DEBUG = false;\nexport const DEFAULT_MODEL = 'gpt-4o-mini';\nexport const DEFAULT_MODEL_STRONG = 'gpt-4o';\nexport const DEFAULT_OUTPUT_DIRECTORY = 'output/kodrdriv';\n\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_PUBLISH_TREE = 'publish-tree';\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_PUBLISH_TREE,\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 directory: undefined, // No default directory\n },\n publish: {\n mergeMethod: DEFAULT_MERGE_METHOD,\n requiredEnvVars: ['GITHUB_TOKEN', 'OPENAI_API_KEY'],\n linkWorkspacePackages: true,\n unlinkWorkspacePackages: true,\n sendit: DEFAULT_SENDIT_MODE,\n },\n link: {\n scopeRoots: {},\n workspaceFile: 'pnpm-workspace.yaml',\n dryRun: false,\n },\n excludedPatterns: DEFAULT_EXCLUDED_PATTERNS,\n};\n"],"names":["VERSION","PROGRAM_NAME","DEFAULT_OVERRIDES","DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS","DEFAULT_VERBOSE","DEFAULT_DRY_RUN","DEFAULT_DEBUG","DEFAULT_MODEL","DEFAULT_OUTPUT_DIRECTORY","DEFAULT_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_PUBLISH_TREE","COMMAND_LINK","COMMAND_UNLINK","COMMAND_CLEAN","COMMAND_CHECK_CONFIG","COMMAND_INIT_CONFIG","ALLOWED_COMMANDS","DEFAULT_COMMAND","KODRDRIV_DEFAULTS","dryRun","verbose","debug","overrides","model","contextDirectories","commandName","configDirectory","outputDirectory","preferencesDirectory","commit","add","cached","sendit","messageLimit","release","from","to","audioCommit","maxRecordingTime","audioDevice","undefined","review","includeCommitHistory","includeRecentDiffs","includeReleaseNotes","includeGithubIssues","commitHistoryLimit","diffHistoryLimit","releaseNotesLimit","githubIssuesLimit","audioReview","directory","publish","mergeMethod","requiredEnvVars","linkWorkspacePackages","unlinkWorkspacePackages","link","scopeRoots","workspaceFile","excludedPatterns"],"mappings":";;;AAIO,MAAMA,UAAU;AAChB,MAAMC,eAAe;AAKrB,MAAMC,oBAAoB;AAQ1B,MAAMC,gEAAgE;AAQtE,MAAMC,kBAAkB;AACxB,MAAMC,kBAAkB;AACxB,MAAMC,gBAAgB;AACtB,MAAMC,gBAAgB;AAEtB,MAAMC,2BAA2B;AAEjC,MAAMC,2BAAAA,GAAwC;AAE9C,MAAMC,qBAAqB;AAC3B,MAAMC,gCAAgCC,IAAAA,CAAKC,IAAI,CAACC,EAAAA,CAAGC,OAAO,IAAI,WAAA;AAE9D,MAAMC,4BAA4B;AAClC,MAAMC,0BAA0B;AAEhC,MAAMC,cAAc;AACpB,MAAMC,iBAAiB;AACvB,MAAMC,sBAAsB;AAC5B,MAAMC,wBAAwB;AAE9B,MAAMC,uBAAoC;MAEpCC,yBAAAA,GAA4B;AACrC,IAAA,cAAA;AAAgB,IAAA,gBAAA;AAAkB,IAAA,mBAAA;AAAqB,IAAA,WAAA;AAAa,IAAA,WAAA;AACpE,IAAA,eAAA;AAAiB,IAAA,YAAA;AAAc,IAAA,cAAA;AAC/B,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA,KAAA;AAAO,IAAA,OAAA;AAAS,IAAA,OAAA;AAAS,IAAA,UAAA;AAC1C,IAAA,SAAA;AAAW,IAAA,OAAA;AAAS,IAAA,WAAA;AAAa,IAAA,MAAA;AAAQ,IAAA,YAAA;AACzC,IAAA,MAAA;AAAQ,IAAA,KAAA;AAAO,IAAA,QAAA;AAAU,IAAA,OAAA;AAAS,IAAA,MAAA;AAAQ,IAAA,QAAA;AAC1C,IAAA,OAAA;AAAS,IAAA,OAAA;AAAS,IAAA,OAAA;AAAS,IAAA,UAAA;AAAY,IAAA,MAAA;AACvC,IAAA,OAAA;AAAS,IAAA,OAAA;AAAS,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA;;AAGhC,MAAMC,iBAAiB;AACvB,MAAMC,uBAAuB;AAC7B,MAAMC,uBAAuB;AAC7B,MAAMC,kBAAkB;AACxB,MAAMC,iBAAiB;AACvB,MAAMC,uBAAuB;AAC7B,MAAMC,kBAAkB;AACxB,MAAMC,uBAAuB;AAC7B,MAAMC,eAAe;AACrB,MAAMC,iBAAiB;AACvB,MAAMC,gBAAgB;AACtB,MAAMC,uBAAuB;AAC7B,MAAMC,sBAAsB;MAEtBC,gBAAAA,GAAmB;AAC5Bb,IAAAA,cAAAA;AACAC,IAAAA,oBAAAA;AACAC,IAAAA,oBAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA,cAAAA;AACAC,IAAAA,oBAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA,oBAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA,cAAAA;AACAC,IAAAA;;AAGG,MAAMI,kBAAkBd;AAuD/B;MACae,iBAAAA,GAAoB;IAC7BC,MAAAA,EAAQnC,eAAAA;IACRoC,OAAAA,EAASrC,eAAAA;IACTsC,KAAAA,EAAOpC,aAAAA;IACPqC,SAAAA,EAAWzC,iBAAAA;IACX0C,KAAAA,EAAOrC,aAAAA;IACPsC,kBAAAA,EAAoBpC,2BAAAA;IACpBqC,WAAAA,EAAaR,eAAAA;IACbS,eAAAA,EAAiBrC,kBAAAA;IACjBsC,eAAAA,EAAiBxC,wBAAAA;IACjByC,oBAAAA,EAAsBtC,6BAAAA;IACtBuC,MAAAA,EAAQ;QACJC,GAAAA,EAAKjC,WAAAA;QACLkC,MAAAA,EAAQjC,cAAAA;QACRkC,MAAAA,EAAQjC,mBAAAA;QACRkC,YAAAA,EAAcjC;AAClB,KAAA;IACAkC,OAAAA,EAAS;QACLC,IAAAA,EAAMxC,yBAAAA;QACNyC,EAAAA,EAAIxC,uBAAAA;QACJqC,YAAAA,EAAcjC;AAClB,KAAA;IACAqC,WAAAA,EAAa;QACTC,gBAAAA,EAAkB,GAAA;QAClBC,WAAAA,EAAaC;AACjB,KAAA;IACAC,MAAAA,EAAQ;QACJC,oBAAAA,EAAsB,IAAA;QACtBC,kBAAAA,EAAoB,IAAA;QACpBC,mBAAAA,EAAqB,KAAA;QACrBC,mBAAAA,EAAqB,IAAA;QACrBC,kBAAAA,EAAoB,EAAA;QACpBC,gBAAAA,EAAkB,CAAA;QAClBC,iBAAAA,EAAmB,CAAA;QACnBC,iBAAAA,EAAmB,EAAA;QACnBjB,MAAAA,EAAQjC;AACZ,KAAA;IACAmD,WAAAA,EAAa;QACTR,oBAAAA,EAAsB,IAAA;QACtBC,kBAAAA,EAAoB,IAAA;QACpBC,mBAAAA,EAAqB,KAAA;QACrBC,mBAAAA,EAAqB,IAAA;QACrBC,kBAAAA,EAAoB,EAAA;QACpBC,gBAAAA,EAAkB,CAAA;QAClBC,iBAAAA,EAAmB,CAAA;QACnBC,iBAAAA,EAAmB,EAAA;QACnBjB,MAAAA,EAAQjC,mBAAAA;QACRuC,gBAAAA,EAAkB,GAAA;QAClBC,WAAAA,EAAaC,SAAAA;QACbW,SAAAA,EAAWX;AACf,KAAA;IACAY,OAAAA,EAAS;QACLC,WAAAA,EAAapD,oBAAAA;QACbqD,eAAAA,EAAiB;AAAC,YAAA,cAAA;AAAgB,YAAA;AAAiB,SAAA;QACnDC,qBAAAA,EAAuB,IAAA;QACvBC,uBAAAA,EAAyB,IAAA;QACzBxB,MAAAA,EAAQjC;AACZ,KAAA;IACA0D,IAAAA,EAAM;AACFC,QAAAA,UAAAA,EAAY,EAAC;QACbC,aAAAA,EAAe,qBAAA;QACfxC,MAAAA,EAAQ;AACZ,KAAA;IACAyC,gBAAAA,EAAkB1D;AACtB;;;;"}
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["import { MergeMethod } from './types';\nimport os from 'os';\nimport path from 'path';\n\nexport const VERSION = '__VERSION__ (__GIT_BRANCH__/__GIT_COMMIT__ __GIT_TAGS__ __GIT_COMMIT_DATE__) __SYSTEM_INFO__';\nexport const PROGRAM_NAME = 'kodrdriv';\nexport const DEFAULT_CHARACTER_ENCODING = 'utf-8';\nexport const DEFAULT_BINARY_TO_TEXT_ENCODING = 'base64';\nexport const DEFAULT_DIFF = true;\nexport const DEFAULT_LOG = false;\nexport const DEFAULT_OVERRIDES = false;\nexport const DATE_FORMAT_MONTH_DAY = 'MM-DD';\nexport const DATE_FORMAT_YEAR = 'YYYY';\nexport const DATE_FORMAT_YEAR_MONTH = 'YYYY-MM';\nexport const DATE_FORMAT_YEAR_MONTH_DAY = 'YYYY-MM-DD';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_SLASH = 'YYYY/MM/DD';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES = 'YYYY-MM-DD-HHmm';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS = 'YYYY-MM-DD-HHmmss';\nexport const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS = 'YYYY-MM-DD-HHmmss.SSS';\nexport const DATE_FORMAT_SHORT_TIMESTAMP = 'YYMMdd-HHmm';\nexport const DATE_FORMAT_MONTH = 'MM';\nexport const DATE_FORMAT_DAY = 'DD';\nexport const DATE_FORMAT_HOURS = 'HHmm';\nexport const DATE_FORMAT_MINUTES = 'mm';\nexport const DATE_FORMAT_SECONDS = 'ss';\nexport const DATE_FORMAT_MILLISECONDS = 'SSS';\nexport const DEFAULT_VERBOSE = false;\nexport const DEFAULT_DRY_RUN = false;\nexport const DEFAULT_DEBUG = false;\nexport const DEFAULT_MODEL = 'gpt-4o-mini';\nexport const DEFAULT_MODEL_STRONG = 'gpt-4o';\nexport const DEFAULT_OUTPUT_DIRECTORY = 'output/kodrdriv';\n\n// Buffer size for git commands that may produce large output (like git log)\nexport const DEFAULT_GIT_COMMAND_MAX_BUFFER = 50 * 1024 * 1024; // 50MB\n\nexport const DEFAULT_CONTEXT_DIRECTORIES: string[] = [];\n\nexport const DEFAULT_CONFIG_DIR = '.kodrdriv';\nexport const DEFAULT_PREFERENCES_DIRECTORY = path.join(os.homedir(), '.kodrdriv');\n\nexport const DEFAULT_FROM_COMMIT_ALIAS = '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', '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_PUBLISH_TREE = 'publish-tree';\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_PUBLISH_TREE,\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 skipFileCheck: false,\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 directory: undefined, // No default directory\n },\n publish: {\n mergeMethod: DEFAULT_MERGE_METHOD,\n requiredEnvVars: ['GITHUB_TOKEN', 'OPENAI_API_KEY'],\n linkWorkspacePackages: true,\n unlinkWorkspacePackages: true,\n sendit: DEFAULT_SENDIT_MODE,\n },\n link: {\n scopeRoots: {},\n dryRun: false,\n },\n publishTree: {\n directory: undefined,\n excludedPatterns: undefined,\n startFrom: undefined,\n script: undefined,\n cmd: undefined,\n publish: false,\n },\n excludedPatterns: DEFAULT_EXCLUDED_PATTERNS,\n};\n"],"names":["VERSION","PROGRAM_NAME","DEFAULT_OVERRIDES","DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS","DEFAULT_VERBOSE","DEFAULT_DRY_RUN","DEFAULT_DEBUG","DEFAULT_MODEL","DEFAULT_OUTPUT_DIRECTORY","DEFAULT_GIT_COMMAND_MAX_BUFFER","DEFAULT_CONTEXT_DIRECTORIES","DEFAULT_CONFIG_DIR","DEFAULT_PREFERENCES_DIRECTORY","path","join","os","homedir","DEFAULT_FROM_COMMIT_ALIAS","DEFAULT_TO_COMMIT_ALIAS","DEFAULT_ADD","DEFAULT_CACHED","DEFAULT_SENDIT_MODE","DEFAULT_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_PUBLISH_TREE","COMMAND_LINK","COMMAND_UNLINK","COMMAND_CLEAN","COMMAND_CHECK_CONFIG","COMMAND_INIT_CONFIG","ALLOWED_COMMANDS","DEFAULT_COMMAND","KODRDRIV_DEFAULTS","dryRun","verbose","debug","overrides","model","contextDirectories","commandName","configDirectory","outputDirectory","preferencesDirectory","commit","add","cached","sendit","messageLimit","skipFileCheck","release","from","to","audioCommit","maxRecordingTime","audioDevice","undefined","review","includeCommitHistory","includeRecentDiffs","includeReleaseNotes","includeGithubIssues","commitHistoryLimit","diffHistoryLimit","releaseNotesLimit","githubIssuesLimit","audioReview","directory","publish","mergeMethod","requiredEnvVars","linkWorkspacePackages","unlinkWorkspacePackages","link","scopeRoots","publishTree","excludedPatterns","startFrom","script","cmd"],"mappings":"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"}
|
package/dist/content/diff.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { ExitError } from '../error/ExitError.js';
|
|
3
3
|
import { getLogger } from '../logging.js';
|
|
4
4
|
import { run } from '../util/child.js';
|
|
5
|
+
import { DEFAULT_GIT_COMMAND_MAX_BUFFER } from '../constants.js';
|
|
5
6
|
|
|
6
7
|
// Enhanced exclusion patterns specifically for review context
|
|
7
8
|
// These focus on excluding large files, binaries, and content that doesn't help with issue analysis
|
|
@@ -10,7 +11,6 @@ const getReviewExcludedPatterns = (basePatterns)=>{
|
|
|
10
11
|
// Lock files and dependency files (often massive)
|
|
11
12
|
"*lock*",
|
|
12
13
|
"*.lock",
|
|
13
|
-
"pnpm-lock.yaml",
|
|
14
14
|
"package-lock.json",
|
|
15
15
|
"yarn.lock",
|
|
16
16
|
"bun.lockb",
|
|
@@ -142,14 +142,16 @@ const create = async (options)=>{
|
|
|
142
142
|
} else {
|
|
143
143
|
command = `git diff${range ? ' ' + range : ''} -- . ${excludeString}`;
|
|
144
144
|
}
|
|
145
|
-
const { stdout, stderr } = await run(command
|
|
145
|
+
const { stdout, stderr } = await run(command, {
|
|
146
|
+
maxBuffer: DEFAULT_GIT_COMMAND_MAX_BUFFER
|
|
147
|
+
});
|
|
146
148
|
if (stderr) {
|
|
147
|
-
logger.warn('Git
|
|
149
|
+
logger.warn('Git diff produced stderr: %s', stderr);
|
|
148
150
|
}
|
|
149
|
-
logger.debug('Git
|
|
151
|
+
logger.debug('Git diff output: %s', stdout);
|
|
150
152
|
return stdout;
|
|
151
153
|
} catch (error) {
|
|
152
|
-
logger.error('Failed to execute git
|
|
154
|
+
logger.error('Failed to execute git diff: %s', error.message);
|
|
153
155
|
throw error;
|
|
154
156
|
}
|
|
155
157
|
} catch (error) {
|
package/dist/content/diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sources":["../../src/content/diff.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { ExitError } from '../error/ExitError';\nimport { getLogger } from '../logging';\nimport { run } from '../util/child';\n\nexport interface Instance {\n get(): Promise<string>;\n}\n\n// Enhanced exclusion patterns specifically for review context\n// These focus on excluding large files, binaries, and content that doesn't help with issue analysis\nexport const getReviewExcludedPatterns = (basePatterns: string[]): string[] => {\n const reviewSpecificExclusions = [\n // Lock files and dependency files (often massive)\n \"*lock*\",\n \"*.lock\",\n \"pnpm-lock.yaml\",\n \"package-lock.json\",\n \"yarn.lock\",\n \"bun.lockb\",\n \"composer.lock\",\n \"Cargo.lock\",\n \"Gemfile.lock\",\n \"Pipfile.lock\",\n \"poetry.lock\",\n\n // Image files (binary and large)\n \"*.png\",\n \"*.jpg\",\n \"*.jpeg\",\n \"*.gif\",\n \"*.bmp\",\n \"*.tiff\",\n \"*.webp\",\n \"*.svg\",\n \"*.ico\",\n \"*.icns\",\n\n // Video and audio files\n \"*.mp4\",\n \"*.avi\",\n \"*.mov\",\n \"*.wmv\",\n \"*.flv\",\n \"*.mp3\",\n \"*.wav\",\n \"*.flac\",\n\n // Archives and compressed files\n \"*.zip\",\n \"*.tar\",\n \"*.tar.gz\",\n \"*.tgz\",\n \"*.rar\",\n \"*.7z\",\n \"*.bz2\",\n \"*.xz\",\n\n // Binary executables and libraries\n \"*.exe\",\n \"*.dll\",\n \"*.so\",\n \"*.dylib\",\n \"*.bin\",\n \"*.app\",\n\n // Database files\n \"*.db\",\n \"*.sqlite\",\n \"*.sqlite3\",\n \"*.mdb\",\n\n // Large generated files\n \"*.map\",\n \"*.min.js\",\n \"*.min.css\",\n \"bundle.*\",\n \"vendor.*\",\n\n // Documentation that's often large\n \"*.pdf\",\n \"*.doc\",\n \"*.docx\",\n \"*.ppt\",\n \"*.pptx\",\n\n // IDE and OS generated files\n \".DS_Store\",\n \"Thumbs.db\",\n \"*.swp\",\n \"*.tmp\",\n\n // Certificate and key files\n \"*.pem\",\n \"*.crt\",\n \"*.key\",\n \"*.p12\",\n \"*.pfx\",\n\n // Large config/data files that are often auto-generated\n \"tsconfig.tsbuildinfo\",\n \"*.cache\",\n \".eslintcache\",\n ];\n\n // Combine base patterns with review specific exclusions, removing duplicates\n const combinedPatterns = [...new Set([...basePatterns, ...reviewSpecificExclusions])];\n return combinedPatterns;\n};\n\n// Function to truncate overly large diff content while preserving structure\nexport const truncateLargeDiff = (diffContent: string, maxLength: number = 5000): string => {\n if (diffContent.length <= maxLength) {\n return diffContent;\n }\n\n const lines = diffContent.split('\\n');\n const truncatedLines: string[] = [];\n let currentLength = 0;\n let truncated = false;\n\n for (const line of lines) {\n if (currentLength + line.length + 1 > maxLength) {\n truncated = true;\n break;\n }\n truncatedLines.push(line);\n currentLength += line.length + 1; // +1 for newline\n }\n\n if (truncated) {\n truncatedLines.push('');\n truncatedLines.push(`... [TRUNCATED: Original diff was ${diffContent.length} characters, showing first ${currentLength}] ...`);\n }\n\n return truncatedLines.join('\\n');\n};\n\nexport const create = async (options: { from?: string, to?: string, cached?: boolean, excludedPatterns: string[] }): Promise<Instance> => {\n const logger = getLogger();\n\n async function get(): Promise<string> {\n try {\n logger.verbose('Gathering change information from Git');\n\n try {\n logger.debug('Executing git diff');\n const excludeString = options.excludedPatterns.map(p => `':(exclude)${p}'`).join(' ');\n let range = '';\n if (options.from && options.to) {\n range = `${options.from}..${options.to}`;\n } else if (options.from) {\n range = `${options.from}`;\n } else if (options.to) {\n range = `${options.to}`;\n }\n let command = '';\n if (options.cached) {\n command = `git diff --cached${range ? ' ' + range : ''} -- . ${excludeString}`;\n } else {\n command = `git diff${range ? ' ' + range : ''} -- . ${excludeString}`;\n }\n const { stdout, stderr } = await run(command);\n if (stderr) {\n logger.warn('Git log produced stderr: %s', stderr);\n }\n logger.debug('Git log output: %s', stdout);\n return stdout;\n } catch (error: any) {\n logger.error('Failed to execute git log: %s', error.message);\n throw error;\n }\n } catch (error: any) {\n logger.error('Error occurred during gather change phase: %s %s', error.message, error.stack);\n throw new ExitError('Error occurred during gather change phase');\n }\n }\n\n return { get };\n}\n\nexport const hasStagedChanges = async (): Promise<boolean> => {\n const logger = getLogger();\n try {\n logger.debug('Checking for staged changes');\n const { stderr } = await run('git diff --cached --quiet');\n if (stderr) {\n logger.warn('Git diff produced stderr: %s', stderr);\n }\n // If there are staged changes, git diff --cached --quiet will return non-zero\n // So if we get here without an error, there are no staged changes\n return false;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error: any) {\n // If we get an error, it means there are staged changes\n return true;\n }\n}\n\n// High-level function to get recent diffs formatted for review context\nexport const getRecentDiffsForReview = async (options: {\n limit?: number;\n baseExcludedPatterns: string[];\n}): Promise<string> => {\n const logger = getLogger();\n const diffLimit = options.limit || 5;\n\n // Get enhanced exclusion patterns for review context\n const reviewExcluded = getReviewExcludedPatterns(options.baseExcludedPatterns);\n logger.debug('Using %d exclusion patterns for diff context (including %d review specific)',\n reviewExcluded.length, reviewExcluded.length - options.baseExcludedPatterns.length);\n logger.debug('Sample exclusions: %s', reviewExcluded.slice(0, 10).join(', ') +\n (reviewExcluded.length > 10 ? '...' : ''));\n\n const diffSections: string[] = [];\n\n // Get recent commits and their diffs\n for (let i = 0; i < diffLimit; i++) {\n try {\n const diffRange = i === 0 ? 'HEAD~1' : `HEAD~${i + 1}..HEAD~${i}`;\n const diff = await create({\n from: `HEAD~${i + 1}`,\n to: `HEAD~${i}`,\n excludedPatterns: reviewExcluded\n });\n const diffContent = await diff.get();\n if (diffContent.trim()) {\n const truncatedDiff = truncateLargeDiff(diffContent);\n diffSections.push(`[Recent Diff ${i + 1} (${diffRange})]\\n${truncatedDiff}`);\n\n if (truncatedDiff.length < diffContent.length) {\n logger.debug('Added diff %d to context (%d characters, truncated from %d)',\n i + 1, truncatedDiff.length, diffContent.length);\n } else {\n logger.debug('Added diff %d to context (%d characters)', i + 1, diffContent.length);\n }\n } else {\n logger.debug('Diff %d was empty after exclusions', i + 1);\n }\n } catch (error: any) {\n logger.debug('Could not fetch diff %d: %s', i + 1, error.message);\n break; // Stop if we can't fetch more diffs\n }\n }\n\n return diffSections.length > 0 ? '\\n\\n' + diffSections.join('\\n\\n') : '';\n};\n"],"names":["getReviewExcludedPatterns","basePatterns","reviewSpecificExclusions","combinedPatterns","Set","truncateLargeDiff","diffContent","maxLength","length","lines","split","truncatedLines","currentLength","truncated","line","push","join","create","options","logger","getLogger","get","verbose","debug","excludeString","excludedPatterns","map","p","range","from","to","command","cached","stdout","stderr","run","warn","error","message","stack","ExitError","hasStagedChanges","getRecentDiffsForReview","diffLimit","limit","reviewExcluded","baseExcludedPatterns","slice","diffSections","i","diffRange","diff","trim","truncatedDiff"],"mappings":";;;;;AASA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAA4B,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,wBAAAA,CAAAA,CAAAA,CAA2B,CAAA;;AAE7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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"}
|
|
1
|
+
{"version":3,"file":"diff.js","sources":["../../src/content/diff.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { ExitError } from '../error/ExitError';\nimport { getLogger } from '../logging';\nimport { run } from '../util/child';\nimport { DEFAULT_GIT_COMMAND_MAX_BUFFER } from '../constants';\n\nexport interface Instance {\n get(): Promise<string>;\n}\n\n// Enhanced exclusion patterns specifically for review context\n// These focus on excluding large files, binaries, and content that doesn't help with issue analysis\nexport const getReviewExcludedPatterns = (basePatterns: string[]): string[] => {\n const reviewSpecificExclusions = [\n // Lock files and dependency files (often massive)\n \"*lock*\",\n \"*.lock\",\n \"package-lock.json\",\n \"yarn.lock\",\n \"bun.lockb\",\n \"composer.lock\",\n \"Cargo.lock\",\n \"Gemfile.lock\",\n \"Pipfile.lock\",\n \"poetry.lock\",\n\n // Image files (binary and large)\n \"*.png\",\n \"*.jpg\",\n \"*.jpeg\",\n \"*.gif\",\n \"*.bmp\",\n \"*.tiff\",\n \"*.webp\",\n \"*.svg\",\n \"*.ico\",\n \"*.icns\",\n\n // Video and audio files\n \"*.mp4\",\n \"*.avi\",\n \"*.mov\",\n \"*.wmv\",\n \"*.flv\",\n \"*.mp3\",\n \"*.wav\",\n \"*.flac\",\n\n // Archives and compressed files\n \"*.zip\",\n \"*.tar\",\n \"*.tar.gz\",\n \"*.tgz\",\n \"*.rar\",\n \"*.7z\",\n \"*.bz2\",\n \"*.xz\",\n\n // Binary executables and libraries\n \"*.exe\",\n \"*.dll\",\n \"*.so\",\n \"*.dylib\",\n \"*.bin\",\n \"*.app\",\n\n // Database files\n \"*.db\",\n \"*.sqlite\",\n \"*.sqlite3\",\n \"*.mdb\",\n\n // Large generated files\n \"*.map\",\n \"*.min.js\",\n \"*.min.css\",\n \"bundle.*\",\n \"vendor.*\",\n\n // Documentation that's often large\n \"*.pdf\",\n \"*.doc\",\n \"*.docx\",\n \"*.ppt\",\n \"*.pptx\",\n\n // IDE and OS generated files\n \".DS_Store\",\n \"Thumbs.db\",\n \"*.swp\",\n \"*.tmp\",\n\n // Certificate and key files\n \"*.pem\",\n \"*.crt\",\n \"*.key\",\n \"*.p12\",\n \"*.pfx\",\n\n // Large config/data files that are often auto-generated\n \"tsconfig.tsbuildinfo\",\n \"*.cache\",\n \".eslintcache\",\n ];\n\n // Combine base patterns with review specific exclusions, removing duplicates\n const combinedPatterns = [...new Set([...basePatterns, ...reviewSpecificExclusions])];\n return combinedPatterns;\n};\n\n// Function to truncate overly large diff content while preserving structure\nexport const truncateLargeDiff = (diffContent: string, maxLength: number = 5000): string => {\n if (diffContent.length <= maxLength) {\n return diffContent;\n }\n\n const lines = diffContent.split('\\n');\n const truncatedLines: string[] = [];\n let currentLength = 0;\n let truncated = false;\n\n for (const line of lines) {\n if (currentLength + line.length + 1 > maxLength) {\n truncated = true;\n break;\n }\n truncatedLines.push(line);\n currentLength += line.length + 1; // +1 for newline\n }\n\n if (truncated) {\n truncatedLines.push('');\n truncatedLines.push(`... [TRUNCATED: Original diff was ${diffContent.length} characters, showing first ${currentLength}] ...`);\n }\n\n return truncatedLines.join('\\n');\n};\n\nexport const create = async (options: { from?: string, to?: string, cached?: boolean, excludedPatterns: string[] }): Promise<Instance> => {\n const logger = getLogger();\n\n async function get(): Promise<string> {\n try {\n logger.verbose('Gathering change information from Git');\n\n try {\n logger.debug('Executing git diff');\n const excludeString = options.excludedPatterns.map(p => `':(exclude)${p}'`).join(' ');\n let range = '';\n if (options.from && options.to) {\n range = `${options.from}..${options.to}`;\n } else if (options.from) {\n range = `${options.from}`;\n } else if (options.to) {\n range = `${options.to}`;\n }\n let command = '';\n if (options.cached) {\n command = `git diff --cached${range ? ' ' + range : ''} -- . ${excludeString}`;\n } else {\n command = `git diff${range ? ' ' + range : ''} -- . ${excludeString}`;\n }\n const { stdout, stderr } = await run(command, { maxBuffer: DEFAULT_GIT_COMMAND_MAX_BUFFER });\n if (stderr) {\n logger.warn('Git diff produced stderr: %s', stderr);\n }\n logger.debug('Git diff output: %s', stdout);\n return stdout;\n } catch (error: any) {\n logger.error('Failed to execute git diff: %s', error.message);\n throw error;\n }\n } catch (error: any) {\n logger.error('Error occurred during gather change phase: %s %s', error.message, error.stack);\n throw new ExitError('Error occurred during gather change phase');\n }\n }\n\n return { get };\n}\n\nexport const hasStagedChanges = async (): Promise<boolean> => {\n const logger = getLogger();\n try {\n logger.debug('Checking for staged changes');\n const { stderr } = await run('git diff --cached --quiet');\n if (stderr) {\n logger.warn('Git diff produced stderr: %s', stderr);\n }\n // If there are staged changes, git diff --cached --quiet will return non-zero\n // So if we get here without an error, there are no staged changes\n return false;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error: any) {\n // If we get an error, it means there are staged changes\n return true;\n }\n}\n\n// High-level function to get recent diffs formatted for review context\nexport const getRecentDiffsForReview = async (options: {\n limit?: number;\n baseExcludedPatterns: string[];\n}): Promise<string> => {\n const logger = getLogger();\n const diffLimit = options.limit || 5;\n\n // Get enhanced exclusion patterns for review context\n const reviewExcluded = getReviewExcludedPatterns(options.baseExcludedPatterns);\n logger.debug('Using %d exclusion patterns for diff context (including %d review specific)',\n reviewExcluded.length, reviewExcluded.length - options.baseExcludedPatterns.length);\n logger.debug('Sample exclusions: %s', reviewExcluded.slice(0, 10).join(', ') +\n (reviewExcluded.length > 10 ? '...' : ''));\n\n const diffSections: string[] = [];\n\n // Get recent commits and their diffs\n for (let i = 0; i < diffLimit; i++) {\n try {\n const diffRange = i === 0 ? 'HEAD~1' : `HEAD~${i + 1}..HEAD~${i}`;\n const diff = await create({\n from: `HEAD~${i + 1}`,\n to: `HEAD~${i}`,\n excludedPatterns: reviewExcluded\n });\n const diffContent = await diff.get();\n if (diffContent.trim()) {\n const truncatedDiff = truncateLargeDiff(diffContent);\n diffSections.push(`[Recent Diff ${i + 1} (${diffRange})]\\n${truncatedDiff}`);\n\n if (truncatedDiff.length < diffContent.length) {\n logger.debug('Added diff %d to context (%d characters, truncated from %d)',\n i + 1, truncatedDiff.length, diffContent.length);\n } else {\n logger.debug('Added diff %d to context (%d characters)', i + 1, diffContent.length);\n }\n } else {\n logger.debug('Diff %d was empty after exclusions', i + 1);\n }\n } catch (error: any) {\n logger.debug('Could not fetch diff %d: %s', i + 1, error.message);\n break; // Stop if we can't fetch more diffs\n }\n }\n\n return diffSections.length > 0 ? '\\n\\n' + diffSections.join('\\n\\n') : '';\n};\n"],"names":["getReviewExcludedPatterns","basePatterns","reviewSpecificExclusions","combinedPatterns","Set","truncateLargeDiff","diffContent","maxLength","length","lines","split","truncatedLines","currentLength","truncated","line","push","join","create","options","logger","getLogger","get","verbose","debug","excludeString","excludedPatterns","map","p","range","from","to","command","cached","stdout","stderr","run","maxBuffer","DEFAULT_GIT_COMMAND_MAX_BUFFER","warn","error","message","stack","ExitError","hasStagedChanges","getRecentDiffsForReview","diffLimit","limit","reviewExcluded","baseExcludedPatterns","slice","diffSections","i","diffRange","diff","trim","truncatedDiff"],"mappings":";;;;;;AAUA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAA4B,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,wBAAAA,CAAAA,CAAAA,CAA2B,CAAA;;AAE7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAGA,CA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"}
|
package/dist/content/log.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { ExitError } from '../error/ExitError.js';
|
|
3
3
|
import { getLogger } from '../logging.js';
|
|
4
4
|
import { run } from '../util/child.js';
|
|
5
|
+
import { DEFAULT_GIT_COMMAND_MAX_BUFFER } from '../constants.js';
|
|
5
6
|
|
|
6
7
|
const create = async (options)=>{
|
|
7
8
|
const logger = getLogger();
|
|
@@ -29,7 +30,9 @@ const create = async (options)=>{
|
|
|
29
30
|
}
|
|
30
31
|
const gitLogCmd = `git log${range ? ' ' + range : ''}${extraArgs}`;
|
|
31
32
|
logger.debug('Git log command: %s', gitLogCmd);
|
|
32
|
-
const { stdout, stderr } = await run(gitLogCmd
|
|
33
|
+
const { stdout, stderr } = await run(gitLogCmd, {
|
|
34
|
+
maxBuffer: DEFAULT_GIT_COMMAND_MAX_BUFFER
|
|
35
|
+
});
|
|
33
36
|
if (stderr) {
|
|
34
37
|
logger.warn('Git log produced stderr: %s', stderr);
|
|
35
38
|
}
|
package/dist/content/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sources":["../../src/content/log.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { ExitError } from '../error/ExitError';\nimport { getLogger } from '../logging';\nimport { run } from '../util/child';\n\nexport interface Instance {\n get(): Promise<string>;\n}\n\nexport const create = async (options: { from?: string, to?: string, limit?: number, currentBranchOnly?: boolean }): Promise<Instance> => {\n const logger = getLogger();\n\n async function get(): Promise<string> {\n try {\n logger.verbose('Gathering change information from Git');\n\n try {\n logger.debug('Executing git log');\n // Build git log range\n let range = '';\n let extraArgs = '';\n // If currentBranchOnly, show only commits unique to HEAD vs. to-branch (or main/master if not provided)\n if (options.currentBranchOnly) {\n const toBranch = options.to || 'main'; // Default to 'main' if not provided\n range = `${toBranch}..HEAD`;\n } else if (options.from && options.to) {\n range = `${options.from}..${options.to}`;\n } else if (options.from) {\n range = `${options.from}`;\n } else if (options.to) {\n range = `${options.to}`;\n } // else, no range: show all\n\n if (options.limit && options.limit > 0) {\n extraArgs += ` -n ${options.limit}`;\n }\n const gitLogCmd = `git log${range ? ' ' + range : ''}${extraArgs}`;\n logger.debug('Git log command: %s', gitLogCmd);\n const { stdout, stderr } = await run(gitLogCmd);\n if (stderr) {\n logger.warn('Git log produced stderr: %s', stderr);\n }\n logger.debug('Git log output: %s', stdout);\n return stdout;\n } catch (error: any) {\n logger.error('Failed to execute git log: %s', error.message);\n throw error;\n }\n } catch (error: any) {\n logger.error('Error occurred during gather change phase: %s %s', error.message, error.stack);\n throw new ExitError('Error occurred during gather change phase');\n }\n }\n\n return { get };\n}\n\n"],"names":["create","options","logger","getLogger","get","verbose","debug","range","extraArgs","currentBranchOnly","toBranch","to","from","limit","gitLogCmd","stdout","stderr","run","warn","error","message","stack","ExitError"],"mappings":"
|
|
1
|
+
{"version":3,"file":"log.js","sources":["../../src/content/log.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { ExitError } from '../error/ExitError';\nimport { getLogger } from '../logging';\nimport { run } from '../util/child';\nimport { DEFAULT_GIT_COMMAND_MAX_BUFFER } from '../constants';\n\nexport interface Instance {\n get(): Promise<string>;\n}\n\nexport const create = async (options: { from?: string, to?: string, limit?: number, currentBranchOnly?: boolean }): Promise<Instance> => {\n const logger = getLogger();\n\n async function get(): Promise<string> {\n try {\n logger.verbose('Gathering change information from Git');\n\n try {\n logger.debug('Executing git log');\n // Build git log range\n let range = '';\n let extraArgs = '';\n // If currentBranchOnly, show only commits unique to HEAD vs. to-branch (or main/master if not provided)\n if (options.currentBranchOnly) {\n const toBranch = options.to || 'main'; // Default to 'main' if not provided\n range = `${toBranch}..HEAD`;\n } else if (options.from && options.to) {\n range = `${options.from}..${options.to}`;\n } else if (options.from) {\n range = `${options.from}`;\n } else if (options.to) {\n range = `${options.to}`;\n } // else, no range: show all\n\n if (options.limit && options.limit > 0) {\n extraArgs += ` -n ${options.limit}`;\n }\n const gitLogCmd = `git log${range ? ' ' + range : ''}${extraArgs}`;\n logger.debug('Git log command: %s', gitLogCmd);\n const { stdout, stderr } = await run(gitLogCmd, { maxBuffer: DEFAULT_GIT_COMMAND_MAX_BUFFER });\n if (stderr) {\n logger.warn('Git log produced stderr: %s', stderr);\n }\n logger.debug('Git log output: %s', stdout);\n return stdout;\n } catch (error: any) {\n logger.error('Failed to execute git log: %s', error.message);\n throw error;\n }\n } catch (error: any) {\n logger.error('Error occurred during gather change phase: %s %s', error.message, error.stack);\n throw new ExitError('Error occurred during gather change phase');\n }\n }\n\n return { get };\n}\n\n"],"names":["create","options","logger","getLogger","get","verbose","debug","range","extraArgs","currentBranchOnly","toBranch","to","from","limit","gitLogCmd","stdout","stderr","run","maxBuffer","DEFAULT_GIT_COMMAND_MAX_BUFFER","warn","error","message","stack","ExitError"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CancellationError.js","sources":["../../src/error/CancellationError.ts"],"sourcesContent":["export class CancellationError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'CancellationError';\n }\n}\n"],"names":["CancellationError","Error","message","name"],"mappings":"AAAO,MAAMA,iBAAAA,SAA0BC,KAAAA,CAAAA;AACnC,IAAA,WAAA,CAAYC,OAAe,CAAE;AACzB,QAAA,KAAK,CAACA,OAAAA,CAAAA;QACN,IAAI,CAACC,IAAI,GAAG,mBAAA;AAChB,IAAA;AACJ;;;;"}
|