removed serena from git
This commit is contained in:
parent
a14cb4caa7
commit
d7a78a0bde
9 changed files with 0 additions and 459 deletions
Binary file not shown.
|
|
@ -1,58 +0,0 @@
|
|||
# Code Style and Conventions
|
||||
|
||||
## TypeScript Configuration
|
||||
- **Strict mode enabled**: All strict checks are on
|
||||
- **Target**: ES2022
|
||||
- **Module**: ESNext with bundler resolution
|
||||
- **Path aliases**: `@stock-bot/*` maps to `libs/*/src`
|
||||
- **Decorators**: Enabled for dependency injection
|
||||
|
||||
## Code Style Rules (ESLint)
|
||||
- **No unused variables**: Error (except prefixed with `_`)
|
||||
- **No explicit any**: Warning
|
||||
- **No non-null assertion**: Warning
|
||||
- **No console**: Warning (except in tests)
|
||||
- **Prefer const**: Enforced
|
||||
- **Strict equality**: Always use `===`
|
||||
- **Curly braces**: Required for all blocks
|
||||
|
||||
## Formatting (Prettier)
|
||||
- **Semicolons**: Always
|
||||
- **Single quotes**: Yes
|
||||
- **Trailing comma**: ES5
|
||||
- **Print width**: 100 characters
|
||||
- **Tab width**: 2 spaces
|
||||
- **Arrow parens**: Avoid when possible
|
||||
- **End of line**: LF
|
||||
|
||||
## Import Order
|
||||
1. Node built-ins
|
||||
2. Third-party modules
|
||||
3. `@stock-bot/*` imports
|
||||
4. Relative imports (parent directories first)
|
||||
5. Current directory imports
|
||||
|
||||
## Naming Conventions
|
||||
- **Files**: kebab-case (e.g., `database-setup.ts`)
|
||||
- **Classes**: PascalCase
|
||||
- **Functions/Variables**: camelCase
|
||||
- **Constants**: UPPER_SNAKE_CASE
|
||||
- **Interfaces/Types**: PascalCase with 'I' or 'T' prefix optional
|
||||
|
||||
## Library Standards
|
||||
- **Named exports only**: No default exports
|
||||
- **Factory patterns**: For complex initialization
|
||||
- **Singleton pattern**: For global services (config, logger)
|
||||
- **Direct class exports**: For DI-managed services
|
||||
|
||||
## Testing
|
||||
- **File naming**: `*.test.ts` or `*.spec.ts`
|
||||
- **Test structure**: Bun's built-in test runner
|
||||
- **Integration tests**: Use TestContainers for databases
|
||||
- **Mocking**: Mock external dependencies
|
||||
|
||||
## Documentation
|
||||
- **JSDoc**: For all public APIs
|
||||
- **README.md**: Required for each library
|
||||
- **Usage examples**: Include in documentation
|
||||
- **Error messages**: Descriptive with context
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
# Current Refactoring Context
|
||||
|
||||
## Data Ingestion Service Refactor
|
||||
The project is currently undergoing a major refactoring to move away from singleton patterns to a dependency injection approach using service containers.
|
||||
|
||||
### What's Been Done
|
||||
- Created connection pool pattern with `ServiceContainer`
|
||||
- Refactored data-ingestion service to use DI container
|
||||
- Updated handlers to accept container parameter
|
||||
- Added proper resource disposal with `ctx.dispose()`
|
||||
|
||||
### Migration Status
|
||||
- QM handler: ✅ Fully migrated to container pattern
|
||||
- IB handler: ⚠️ Partially migrated (using migration helper)
|
||||
- Proxy handler: ✅ Updated to accept container
|
||||
- WebShare handler: ✅ Updated to accept container
|
||||
|
||||
### Key Patterns
|
||||
1. **Service Container**: Central DI container managing all connections
|
||||
2. **Operation Context**: Provides scoped database access within operations
|
||||
3. **Factory Pattern**: Connection factories for different databases
|
||||
4. **Resource Disposal**: Always call `ctx.dispose()` after operations
|
||||
|
||||
### Example Pattern
|
||||
```typescript
|
||||
const ctx = OperationContext.create('handler', 'operation', { container });
|
||||
try {
|
||||
// Use databases through context
|
||||
await ctx.mongodb.insertOne(data);
|
||||
await ctx.postgres.query('...');
|
||||
return { success: true };
|
||||
} finally {
|
||||
await ctx.dispose(); // Always cleanup
|
||||
}
|
||||
```
|
||||
|
||||
### Next Steps
|
||||
- Complete migration of remaining IB operations
|
||||
- Remove migration helper once complete
|
||||
- Apply same pattern to other services
|
||||
- Add monitoring for connection pools
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
# Stock Bot Trading Platform
|
||||
|
||||
## Project Purpose
|
||||
This is an advanced trading bot platform with a microservice architecture designed for automated stock trading. The system includes:
|
||||
- Market data ingestion from multiple providers (Yahoo Finance, QuoteMedia, Interactive Brokers, WebShare)
|
||||
- Data processing and technical indicator calculation
|
||||
- Trading strategy development and backtesting
|
||||
- Order execution and risk management
|
||||
- Portfolio tracking and performance analytics
|
||||
- Web dashboard for monitoring
|
||||
|
||||
## Architecture Overview
|
||||
The project follows a **microservices architecture** with shared libraries:
|
||||
|
||||
### Core Services (apps/)
|
||||
- **data-ingestion**: Ingests market data from multiple providers
|
||||
- **data-pipeline**: Processes and transforms data
|
||||
- **web-api**: REST API service
|
||||
- **web-app**: React-based dashboard
|
||||
|
||||
### Shared Libraries (libs/)
|
||||
**Core Libraries:**
|
||||
- config: Environment configuration with Zod validation
|
||||
- logger: Structured logging with Loki integration
|
||||
- di: Dependency injection container
|
||||
- types: Shared TypeScript types
|
||||
- handlers: Common handler patterns
|
||||
|
||||
**Data Libraries:**
|
||||
- postgres: PostgreSQL client for transactional data
|
||||
- questdb: Time-series database for market data
|
||||
- mongodb: Document storage for configurations
|
||||
|
||||
**Service Libraries:**
|
||||
- queue: BullMQ-based job processing
|
||||
- event-bus: Dragonfly/Redis event bus
|
||||
- shutdown: Graceful shutdown management
|
||||
|
||||
**Utils:**
|
||||
- Financial calculations and technical indicators
|
||||
- Date utilities
|
||||
- Position sizing calculations
|
||||
|
||||
## Database Strategy
|
||||
- **PostgreSQL**: Transactional data (orders, positions, strategies)
|
||||
- **QuestDB**: Time-series data (OHLCV, indicators, performance metrics)
|
||||
- **MongoDB**: Document storage (configurations, raw API responses)
|
||||
- **Dragonfly/Redis**: Event bus and caching layer
|
||||
|
||||
## Current Development Phase
|
||||
Phase 1: Data Foundation Layer (In Progress)
|
||||
- Enhancing data provider reliability
|
||||
- Implementing data validation
|
||||
- Optimizing time-series storage
|
||||
- Building robust HTTP client with circuit breakers
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
# Project Structure
|
||||
|
||||
## Root Directory
|
||||
```
|
||||
stock-bot/
|
||||
├── apps/ # Microservice applications
|
||||
│ ├── data-ingestion/ # Market data ingestion service
|
||||
│ ├── data-pipeline/ # Data processing pipeline
|
||||
│ ├── web-api/ # REST API service
|
||||
│ └── web-app/ # React dashboard
|
||||
├── libs/ # Shared libraries
|
||||
│ ├── core/ # Core functionality
|
||||
│ │ ├── config/ # Configuration management
|
||||
│ │ ├── logger/ # Logging infrastructure
|
||||
│ │ ├── di/ # Dependency injection
|
||||
│ │ ├── types/ # Shared TypeScript types
|
||||
│ │ └── handlers/ # Common handler patterns
|
||||
│ ├── data/ # Database clients
|
||||
│ │ ├── postgres/ # PostgreSQL client
|
||||
│ │ ├── questdb/ # QuestDB time-series client
|
||||
│ │ └── mongodb/ # MongoDB document storage
|
||||
│ ├── services/ # Service utilities
|
||||
│ │ ├── queue/ # BullMQ job processing
|
||||
│ │ ├── event-bus/ # Dragonfly event bus
|
||||
│ │ └── shutdown/ # Graceful shutdown
|
||||
│ └── utils/ # Utility functions
|
||||
├── database/ # Database schemas and migrations
|
||||
├── scripts/ # Build and utility scripts
|
||||
├── config/ # Configuration files
|
||||
├── monitoring/ # Monitoring configurations
|
||||
├── docs/ # Documentation
|
||||
└── test/ # Global test utilities
|
||||
|
||||
## Key Files
|
||||
- `package.json` - Root package configuration
|
||||
- `turbo.json` - Turbo monorepo configuration
|
||||
- `tsconfig.json` - TypeScript configuration
|
||||
- `eslint.config.js` - ESLint rules
|
||||
- `.prettierrc` - Prettier formatting rules
|
||||
- `docker-compose.yml` - Infrastructure setup
|
||||
- `.env` - Environment variables
|
||||
|
||||
## Monorepo Structure
|
||||
- Uses Bun workspaces with Turbo for orchestration
|
||||
- Each app and library has its own package.json
|
||||
- Shared dependencies at root level
|
||||
- Libraries published as `@stock-bot/*` packages
|
||||
|
||||
## Service Architecture Pattern
|
||||
Each service typically follows:
|
||||
```
|
||||
service/
|
||||
├── src/
|
||||
│ ├── index.ts # Entry point
|
||||
│ ├── routes/ # API routes (Hono)
|
||||
│ ├── handlers/ # Business logic
|
||||
│ ├── services/ # Service layer
|
||||
│ └── types/ # Service-specific types
|
||||
├── test/ # Tests
|
||||
├── package.json
|
||||
└── tsconfig.json
|
||||
```
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
# Suggested Commands for Development
|
||||
|
||||
## Package Management (Bun)
|
||||
- `bun install` - Install all dependencies
|
||||
- `bun add <package>` - Add a new dependency
|
||||
- `bun add -D <package>` - Add a dev dependency
|
||||
- `bun update` - Update dependencies
|
||||
|
||||
## Development
|
||||
- `bun run dev` - Start all services in development mode (uses Turbo)
|
||||
- `bun run dev:full` - Start infrastructure + admin tools + dev mode
|
||||
- `bun run dev:clean` - Reset infrastructure and start fresh
|
||||
|
||||
## Building
|
||||
- `bun run build` - Build all services and libraries
|
||||
- `bun run build:libs` - Build only shared libraries
|
||||
- `bun run build:all:clean` - Clean build with cache removal
|
||||
- `./scripts/build-all.sh` - Custom build script with options
|
||||
|
||||
## Testing
|
||||
- `bun test` - Run all tests
|
||||
- `bun test --watch` - Run tests in watch mode
|
||||
- `bun run test:coverage` - Run tests with coverage report
|
||||
- `bun run test:libs` - Test only shared libraries
|
||||
- `bun run test:apps` - Test only applications
|
||||
- `bun test <file>` - Run specific test file
|
||||
|
||||
## Code Quality (IMPORTANT - Run before committing!)
|
||||
- `bun run lint` - Check for linting errors
|
||||
- `bun run lint:fix` - Auto-fix linting issues
|
||||
- `bun run format` - Format code with Prettier
|
||||
- `./scripts/format.sh` - Alternative format script
|
||||
|
||||
## Infrastructure Management
|
||||
- `bun run infra:up` - Start databases (PostgreSQL, QuestDB, MongoDB, Dragonfly)
|
||||
- `bun run infra:down` - Stop infrastructure
|
||||
- `bun run infra:reset` - Reset with clean volumes
|
||||
- `bun run docker:admin` - Start admin GUIs (pgAdmin, Mongo Express, Redis Insight)
|
||||
- `bun run docker:monitoring` - Start monitoring stack
|
||||
|
||||
## Database Operations
|
||||
- `bun run db:setup-ib` - Setup Interactive Brokers database schema
|
||||
- `bun run db:init` - Initialize all database schemas
|
||||
|
||||
## Utility Commands
|
||||
- `bun run clean` - Clean build artifacts
|
||||
- `bun run clean:all` - Deep clean including node_modules
|
||||
- `turbo run <task>` - Run task across monorepo
|
||||
|
||||
## Git Commands (Linux)
|
||||
- `git status` - Check current status
|
||||
- `git add .` - Stage all changes
|
||||
- `git commit -m "message"` - Commit changes
|
||||
- `git push` - Push to remote
|
||||
- `git pull` - Pull from remote
|
||||
- `git checkout -b <branch>` - Create new branch
|
||||
|
||||
## System Commands (Linux)
|
||||
- `ls -la` - List files with details
|
||||
- `cd <directory>` - Change directory
|
||||
- `grep -r "pattern" .` - Search for pattern
|
||||
- `find . -name "*.ts"` - Find files by pattern
|
||||
- `which <command>` - Find command location
|
||||
|
||||
## MCP Setup (for database access in IDE)
|
||||
- `./scripts/setup-mcp.sh` - Setup Model Context Protocol servers
|
||||
- Requires infrastructure to be running first
|
||||
|
||||
## Service URLs
|
||||
- Dashboard: http://localhost:4200
|
||||
- QuestDB Console: http://localhost:9000
|
||||
- Grafana: http://localhost:3000
|
||||
- pgAdmin: http://localhost:8080
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
# Task Completion Checklist
|
||||
|
||||
When you complete any coding task, ALWAYS run these commands in order:
|
||||
|
||||
## 1. Code Quality Checks (MANDATORY)
|
||||
```bash
|
||||
# Run linting to catch code issues
|
||||
bun run lint
|
||||
|
||||
# If there are errors, fix them automatically
|
||||
bun run lint:fix
|
||||
|
||||
# Format the code
|
||||
bun run format
|
||||
```
|
||||
|
||||
## 2. Testing (if applicable)
|
||||
```bash
|
||||
# Run tests if you modified existing functionality
|
||||
bun test
|
||||
|
||||
# Run specific test file if you added/modified tests
|
||||
bun test <path-to-test-file>
|
||||
```
|
||||
|
||||
## 3. Build Verification (for significant changes)
|
||||
```bash
|
||||
# Build the affected libraries/apps
|
||||
bun run build:libs # if you changed libraries
|
||||
bun run build # for full build
|
||||
```
|
||||
|
||||
## 4. Final Verification Steps
|
||||
- Ensure no TypeScript errors in the IDE
|
||||
- Check that imports are properly ordered (Prettier should handle this)
|
||||
- Verify no console.log statements in production code
|
||||
- Confirm all new code follows the established patterns
|
||||
|
||||
## 5. Git Commit Guidelines
|
||||
- Stage changes: `git add .`
|
||||
- Write descriptive commit messages
|
||||
- Reference issue numbers if applicable
|
||||
- Use conventional commit format when possible:
|
||||
- `feat:` for new features
|
||||
- `fix:` for bug fixes
|
||||
- `refactor:` for code refactoring
|
||||
- `docs:` for documentation
|
||||
- `test:` for tests
|
||||
- `chore:` for maintenance
|
||||
|
||||
## Important Notes
|
||||
- NEVER skip the linting and formatting steps
|
||||
- The project uses ESLint and Prettier - let them do their job
|
||||
- If lint errors persist after auto-fix, they need manual attention
|
||||
- Always test your changes, even if just running the service locally
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
# Technology Stack
|
||||
|
||||
## Runtime & Package Manager
|
||||
- **Bun**: v1.1.0+ (primary runtime and package manager)
|
||||
- **Node.js**: v18.0.0+ (compatibility)
|
||||
- **TypeScript**: v5.8.3
|
||||
|
||||
## Core Technologies
|
||||
- **Turbo**: Monorepo build system
|
||||
- **ESBuild**: Fast bundling (integrated with Bun)
|
||||
- **Hono**: Lightweight web framework for services
|
||||
|
||||
## Databases
|
||||
- **PostgreSQL**: Primary transactional database
|
||||
- **QuestDB**: Time-series database for market data
|
||||
- **MongoDB**: Document storage
|
||||
- **Dragonfly**: Redis-compatible cache and event bus
|
||||
|
||||
## Queue & Messaging
|
||||
- **BullMQ**: Job queue processing
|
||||
- **IORedis**: Redis client for Dragonfly
|
||||
|
||||
## Web Technologies
|
||||
- **React**: Frontend framework (web-app)
|
||||
- **Angular**: (based on polyfills.ts reference)
|
||||
- **PrimeNG**: UI component library
|
||||
- **TailwindCSS**: CSS framework
|
||||
|
||||
## Testing
|
||||
- **Bun Test**: Built-in test runner
|
||||
- **TestContainers**: Database integration testing
|
||||
- **Supertest**: API testing
|
||||
|
||||
## Monitoring & Observability
|
||||
- **Loki**: Log aggregation
|
||||
- **Prometheus**: Metrics collection
|
||||
- **Grafana**: Visualization dashboards
|
||||
|
||||
## Development Tools
|
||||
- **ESLint**: Code linting
|
||||
- **Prettier**: Code formatting
|
||||
- **Docker Compose**: Local infrastructure
|
||||
- **Model Context Protocol (MCP)**: Database access in IDE
|
||||
|
||||
## Key Dependencies
|
||||
- **Awilix**: Dependency injection container
|
||||
- **Zod**: Schema validation
|
||||
- **pg**: PostgreSQL client
|
||||
- **Playwright**: Browser automation for proxy testing
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
# language of the project (csharp, python, rust, java, typescript, javascript, go, cpp, or ruby)
|
||||
# Special requirements:
|
||||
# * csharp: Requires the presence of a .sln file in the project folder.
|
||||
language: typescript
|
||||
|
||||
# whether to use the project's gitignore file to ignore files
|
||||
# Added on 2025-04-07
|
||||
ignore_all_files_in_gitignore: true
|
||||
# list of additional paths to ignore
|
||||
# same syntax as gitignore, so you can use * and **
|
||||
# Was previously called `ignored_dirs`, please update your config if you are using that.
|
||||
# Added (renamed)on 2025-04-07
|
||||
ignored_paths: []
|
||||
|
||||
# whether the project is in read-only mode
|
||||
# If set to true, all editing tools will be disabled and attempts to use them will result in an error
|
||||
# Added on 2025-04-18
|
||||
read_only: false
|
||||
|
||||
|
||||
# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details.
|
||||
# Below is the complete list of tools for convenience.
|
||||
# To make sure you have the latest list of tools, and to view their descriptions,
|
||||
# execute `uv run scripts/print_tool_overview.py`.
|
||||
#
|
||||
# * `activate_project`: Activates a project by name.
|
||||
# * `check_onboarding_performed`: Checks whether project onboarding was already performed.
|
||||
# * `create_text_file`: Creates/overwrites a file in the project directory.
|
||||
# * `delete_lines`: Deletes a range of lines within a file.
|
||||
# * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
|
||||
# * `execute_shell_command`: Executes a shell command.
|
||||
# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
|
||||
# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
|
||||
# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
|
||||
# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
|
||||
# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file or directory.
|
||||
# * `initial_instructions`: Gets the initial instructions for the current project.
|
||||
# Should only be used in settings where the system prompt cannot be set,
|
||||
# e.g. in clients you have no control over, like Claude Desktop.
|
||||
# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
|
||||
# * `insert_at_line`: Inserts content at a given line in a file.
|
||||
# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
|
||||
# * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
|
||||
# * `list_memories`: Lists memories in Serena's project-specific memory store.
|
||||
# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
|
||||
# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
|
||||
# * `read_file`: Reads a file within the project directory.
|
||||
# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
|
||||
# * `remove_project`: Removes a project from the Serena configuration.
|
||||
# * `replace_lines`: Replaces a range of lines within a file with new content.
|
||||
# * `replace_symbol_body`: Replaces the full definition of a symbol.
|
||||
# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
|
||||
# * `search_for_pattern`: Performs a search for a pattern in the project.
|
||||
# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
|
||||
# * `switch_modes`: Activates modes by providing a list of their names
|
||||
# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
|
||||
# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
|
||||
# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
|
||||
# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
|
||||
excluded_tools: []
|
||||
|
||||
# initial prompt for the project. It will always be given to the LLM upon activating the project
|
||||
# (contrary to the memories, which are loaded on demand).
|
||||
initial_prompt: ""
|
||||
|
||||
project_name: "stock-bot"
|
||||
Loading…
Add table
Add a link
Reference in a new issue