woaru
Version:
Universal Project Setup Autopilot - Analyze and automatically configure development tools for ANY programming language
194 lines • 6.07 kB
JavaScript
import { readFileSync } from 'fs';
import { join } from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
// ES module compatibility
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// Read version from package.json dynamically
const packageJsonPath = join(__dirname, '../../package.json');
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
export const APP_CONFIG = {
// Application metadata
NAME: 'woaru',
DISPLAY_NAME: 'WOARU',
VERSION: packageJson.version,
DESCRIPTION: 'WorkaroundUltra - Project Setup Autopilot',
// Directory structure
DIRECTORIES: {
BASE: '.woaru',
REPORTS: '.woaru/reports',
LOGS: '.woaru/logs',
CACHE: '.woaru/cache',
SAVEPOINTS: '.woaru/savepoints',
SENT_REPORTS: '.woaru/sent-reports',
HOME_BASE: '~/.woaru',
HOME_LOGS: '~/.woaru/logs',
HOME_CACHE: '~/.woaru/cache',
},
// File names
FILES: {
STATE: 'state.json',
PID: 'supervisor.pid',
ACTIONS_LOG: 'woaru_actions.log',
TOOLS_CONFIG: 'tools.json',
AI_MODELS: 'ai-models.json',
IGNORE: '.woaruignore',
},
// GitHub URLs
GITHUB: {
REPO_URL: 'https://github.com/iamthamanic/WOARU-WorkaroundUltra',
TOOLS_CONFIG_URL: 'https://raw.githubusercontent.com/iamthamanic/WOARU-WorkaroundUltra/main/tools.json',
AI_MODELS_URL: 'https://raw.githubusercontent.com/iamthamanic/WOARU-WorkaroundUltra/main/ai-models.json',
},
// API endpoints
API: {
ANTHROPIC: 'https://api.anthropic.com/v1/messages',
OPENAI: 'https://api.openai.com/v1/chat/completions',
GOOGLE: 'https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent',
OLLAMA: 'http://localhost:11434/api/generate',
NPM_REGISTRY: 'https://registry.npmjs.org',
GITHUB_API: 'https://api.github.com',
PYPI: 'https://pypi.org/pypi/',
NUGET: 'https://api.nuget.org/v3-flatcontainer/',
},
// AI model configurations
AI_MODELS: {
CLAUDE: {
SONNET: 'claude-3-5-sonnet-20241022',
HAIKU: 'claude-3-5-haiku-20241022',
OPUS: 'claude-3-opus-20240229',
},
OPENAI: {
GPT_4O: 'gpt-4o',
GPT_4O_MINI: 'gpt-4o-mini',
GPT_4_TURBO: 'gpt-4-turbo',
GPT_3_5_TURBO: 'gpt-3.5-turbo',
},
GOOGLE: {
GEMINI_PRO: 'gemini-1.5-pro',
GEMINI_FLASH: 'gemini-1.5-flash',
},
},
// Timeouts and thresholds
TIMEOUTS: {
DEFAULT: 30000, // 30 seconds
AI_REQUEST: 30000,
AUTO_SAVE: 30000,
FILE_WATCHER_STABILITY: 300,
FILE_WATCHER_POLL: 100,
},
// Code quality thresholds
QUALITY: {
COMPLEXITY_THRESHOLD: 10,
FUNCTION_LENGTH_THRESHOLD: 50,
PARAMETER_COUNT_THRESHOLD: 5,
NESTING_DEPTH_THRESHOLD: 4,
// SOLID principle thresholds
SOLID: {
METHOD_COUNT: {
LOW: 8,
MEDIUM: 15,
HIGH: 25,
},
LINES_OF_CODE: {
LOW: 15,
MEDIUM: 30,
HIGH: 50,
},
},
},
// AI configuration limits
AI_LIMITS: {
MAX_TOKENS: 4000,
TOKEN_LIMIT: 8000,
COST_THRESHOLD: 0.5,
},
// File watcher settings
FILE_WATCHER: {
DEPTH: 10,
POLL_INTERVAL: 100,
STABILITY_THRESHOLD: 300,
},
// Common commands
COMMANDS: {
NPM: {
INSTALL_GLOBAL: 'npm install -g',
UPDATE_WOARU: 'npm install -g woaru@latest',
},
HUSKY: {
INSTALL: 'npx husky install',
PRE_COMMIT_ESLINT: 'eslint --fix',
PRE_COMMIT_PRETTIER: 'prettier --write',
},
LINTING: {
ESLINT: 'npx eslint',
PRETTIER: 'npx prettier',
},
},
// ESLint Rules Configuration
ESLINT_RULES: {
NO_VAR: 'no-var',
EQEQEQ: 'eqeqeq',
NO_CONSOLE: 'no-console',
PREFER_CONST: 'prefer-const',
NO_UNUSED_VARS: 'no-unused-vars',
},
// SOLID Principle Thresholds
SOLID_THRESHOLDS: {
METHODS_PER_CLASS: { low: 8, medium: 15, high: 25 },
LINES_PER_METHOD: { low: 15, medium: 30, high: 50 },
CONSTRUCTOR_PARAMS: { low: 3, medium: 4, high: 6 },
CHARACTERS_PER_LINE: { low: 100, medium: 200, high: 400 },
METHODS_PER_INTERFACE: { low: 4, medium: 6, high: 8 },
ABSTRACT_METHODS: { low: 2, medium: 4, high: 6 },
},
// Code Quality Thresholds
QUALITY_THRESHOLDS: {
COMPLEXITY_WARNING: 15,
COMPLEXITY_ERROR: 20,
BASE_COMPLEXITY: 1,
MAX_FILE_SIZE_LINES: 500,
MAX_FUNCTION_LINES: 50,
NOTIFICATION_COOLDOWN_MINUTES: 5,
},
// NPM and Tool Commands
TOOL_COMMANDS: {
NPM: {
LINT: 'npm run lint',
LINT_FIX: 'npm run lint:fix',
FORMAT: 'npm run format',
TEST: 'npm test',
BUILD: 'npm run build',
},
ESLINT: {
BASE: 'npx eslint',
WITH_FORMAT: 'npx eslint --format stylish',
FIX: 'npx eslint --fix',
},
PRETTIER: {
BASE: 'npx prettier',
WRITE: 'npx prettier --write',
},
},
// Package manager detection files
PACKAGE_MANAGERS: {
PNPM: 'pnpm-lock.yaml',
YARN: 'yarn.lock',
NPM: 'package-lock.json',
},
// Documentation system constants
DOCUMENTATION: {
SCHEMA_VERSION: '1.0',
CONTEXT_HEADER_KEY: 'woaru_context',
CONTEXT_HEADER_CHECK_LINES: 20,
GENERATED_BY: 'woaru docu forai',
TYPES: {
NOPRO: 'nopro',
PRO: 'pro',
AI: 'ai',
},
},
};
export default APP_CONFIG;
//# sourceMappingURL=constants.js.map