mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-31 06:42:03 +00:00
This commit introduces the ability to run initialization scripts for worktrees, enhancing the setup process. Key changes include: 1. **New API Endpoint**: Added a POST endpoint to run the init script for a specified worktree. 2. **Worktree Routes**: Updated worktree routes to include the new run init script handler. 3. **Init Script Service**: Enhanced the Init Script Service to support running scripts asynchronously and handling errors. 4. **UI Updates**: Added UI components to check for the existence of init scripts and trigger their execution, providing user feedback through toast notifications. 5. **Event Handling**: Implemented event handling for init script execution status, allowing real-time updates in the UI. This feature streamlines the workflow for users by automating the execution of setup scripts, improving overall project management.
161 lines
3.5 KiB
TypeScript
161 lines
3.5 KiB
TypeScript
/**
|
|
* @automaker/platform
|
|
* Platform-specific utilities for AutoMaker
|
|
*/
|
|
|
|
// Path utilities
|
|
export {
|
|
getAutomakerDir,
|
|
getFeaturesDir,
|
|
getFeatureDir,
|
|
getFeatureImagesDir,
|
|
getBoardDir,
|
|
getImagesDir,
|
|
getContextDir,
|
|
getWorktreesDir,
|
|
getValidationsDir,
|
|
getValidationDir,
|
|
getValidationPath,
|
|
getAppSpecPath,
|
|
getBranchTrackingPath,
|
|
ensureAutomakerDir,
|
|
getGlobalSettingsPath,
|
|
getCredentialsPath,
|
|
getProjectSettingsPath,
|
|
ensureDataDir,
|
|
// Ideation paths
|
|
getIdeationDir,
|
|
getIdeasDir,
|
|
getIdeaDir,
|
|
getIdeaPath,
|
|
getIdeaAttachmentsDir,
|
|
getIdeationSessionsDir,
|
|
getIdeationSessionPath,
|
|
getIdeationDraftsDir,
|
|
getIdeationAnalysisPath,
|
|
ensureIdeationDir,
|
|
} from './paths.js';
|
|
|
|
// Subprocess management
|
|
export {
|
|
spawnJSONLProcess,
|
|
spawnProcess,
|
|
type SubprocessOptions,
|
|
type SubprocessResult,
|
|
} from './subprocess.js';
|
|
|
|
// Security
|
|
export {
|
|
PathNotAllowedError,
|
|
initAllowedPaths,
|
|
isPathAllowed,
|
|
validatePath,
|
|
isPathWithinDirectory,
|
|
getAllowedRootDirectory,
|
|
getDataDirectory,
|
|
getAllowedPaths,
|
|
} from './security.js';
|
|
|
|
// Secure file system (validates paths before I/O operations)
|
|
export * as secureFs from './secure-fs.js';
|
|
|
|
// Node.js executable finder (cross-platform)
|
|
export {
|
|
findNodeExecutable,
|
|
buildEnhancedPath,
|
|
type NodeFinderResult,
|
|
type NodeFinderOptions,
|
|
} from './node-finder.js';
|
|
|
|
// WSL (Windows Subsystem for Linux) utilities
|
|
export {
|
|
isWslAvailable,
|
|
clearWslCache,
|
|
getDefaultWslDistribution,
|
|
getWslDistributions,
|
|
findCliInWsl,
|
|
execInWsl,
|
|
createWslCommand,
|
|
windowsToWslPath,
|
|
wslToWindowsPath,
|
|
type WslCliResult,
|
|
type WslOptions,
|
|
} from './wsl.js';
|
|
|
|
// System paths for tool detection (GitHub CLI, Claude CLI, Node.js, etc.)
|
|
export * as systemPaths from './system-paths.js';
|
|
export {
|
|
// CLI tool paths
|
|
getGitHubCliPaths,
|
|
getClaudeCliPaths,
|
|
getClaudeConfigDir,
|
|
getClaudeCredentialPaths,
|
|
getClaudeSettingsPath,
|
|
getClaudeStatsCachePath,
|
|
getClaudeProjectsDir,
|
|
getCodexCliPaths,
|
|
getCodexConfigDir,
|
|
getCodexAuthPath,
|
|
getGitBashPaths,
|
|
getOpenCodeCliPaths,
|
|
getOpenCodeConfigDir,
|
|
getOpenCodeAuthPath,
|
|
getShellPaths,
|
|
getExtendedPath,
|
|
// Node.js paths
|
|
getNvmPaths,
|
|
getFnmPaths,
|
|
getNodeSystemPaths,
|
|
getScoopNodePath,
|
|
getChocolateyNodePath,
|
|
getWslVersionPath,
|
|
// System path operations
|
|
systemPathExists,
|
|
systemPathAccess,
|
|
systemPathIsExecutable,
|
|
systemPathReadFile,
|
|
systemPathReadFileSync,
|
|
systemPathWriteFileSync,
|
|
systemPathReaddir,
|
|
systemPathReaddirSync,
|
|
systemPathStatSync,
|
|
systemPathStat,
|
|
isAllowedSystemPath,
|
|
// High-level methods
|
|
findFirstExistingPath,
|
|
findGitHubCliPath,
|
|
findClaudeCliPath,
|
|
getClaudeAuthIndicators,
|
|
type ClaudeAuthIndicators,
|
|
findCodexCliPath,
|
|
getCodexAuthIndicators,
|
|
type CodexAuthIndicators,
|
|
findGitBashPath,
|
|
findOpenCodeCliPath,
|
|
getOpenCodeAuthIndicators,
|
|
type OpenCodeAuthIndicators,
|
|
// Electron userData operations
|
|
setElectronUserDataPath,
|
|
getElectronUserDataPath,
|
|
isElectronUserDataPath,
|
|
electronUserDataReadFileSync,
|
|
electronUserDataWriteFileSync,
|
|
electronUserDataExists,
|
|
// Script directory operations
|
|
setScriptBaseDir,
|
|
getScriptBaseDir,
|
|
scriptDirExists,
|
|
scriptDirMkdirSync,
|
|
scriptDirCreateWriteStream,
|
|
// Electron app bundle operations
|
|
setElectronAppPaths,
|
|
electronAppExists,
|
|
electronAppReadFileSync,
|
|
electronAppStatSync,
|
|
electronAppStat,
|
|
electronAppReadFile,
|
|
} from './system-paths.js';
|
|
|
|
// Port configuration
|
|
export { STATIC_PORT, SERVER_PORT, RESERVED_PORTS } from './config/ports.js';
|