Commit Graph

27 Commits

Author SHA1 Message Date
jango-blockchained
790a37e49f refactor: migrate to Elysia and enhance security middleware
- Replaced Express with Elysia for improved performance and type safety
- Integrated Elysia middleware for rate limiting, security headers, and request validation
- Refactored security utilities to work with Elysia's context and request handling
- Updated token management and validation logic
- Added comprehensive security headers and input sanitization
- Simplified server initialization and error handling
- Updated documentation with new setup and configuration details
2025-02-04 03:09:35 +01:00
jango-blockchained
bc1dc8278a refactor: optimize configuration and tool implementations
- Standardized error handling across tool implementations
- Improved return type consistency for tool execution results
- Simplified configuration parsing and type definitions
- Enhanced type safety for various configuration schemas
- Cleaned up and normalized tool response structures
- Updated SSE and event subscription tool implementations
2025-02-04 00:56:45 +01:00
jango-blockchained
9a02bdaf11 feat: add Bun polyfills and refactor LiteMCP implementation
- Introduced polyfills for Node.js compatibility in Bun runtime
- Moved LiteMCP implementation to a dedicated module
- Updated package.json to include @digital-alchemy/hass dependency
- Refactored import for LiteMCP to use local module path
2025-02-03 22:55:36 +01:00
jango-blockchained
cf7fb2422e Migrate from BUN_ENV to NODE_ENV and update Home Assistant implementation 2025-02-03 19:18:52 +01:00
jango-blockchained
4e89e5458c feat: add Claude mode support with conditional Express server initialization
- Modify index.ts to conditionally start Express server based on PROCESSOR_TYPE
- Add logic to skip server initialization when in Claude mode
- Update file comments to reflect new conditional server startup behavior
- Log informative message when running in Claude mode
2025-02-03 16:46:22 +01:00
jango-blockchained
ea5c377fa2 Refactor project structure and remove unused modules
- Removed performance monitoring, tools service, and polyfills modules
- Moved formatToolCall helper function to test file
- Simplified imports in index.ts by removing polyfills import
- Cleaned up unnecessary files and consolidated code structure
2025-02-03 15:47:59 +01:00
jango-blockchained
51c1594f2f Add log rotation utility with file management and cleanup
- Implemented log rotation module with configurable size and age-based log management
- Added utility functions to parse log file sizes and retention durations
- Created methods for identifying, filtering, and cleaning up old log files
- Integrated log rotation initialization in the main application entry point
- Added periodic checks for log file size and age-based cleanup
2025-02-03 15:43:27 +01:00
jango-blockchained
1753e35cd3 Add comprehensive logging infrastructure with configuration and middleware
- Implemented centralized logging utility using Winston with daily log rotation
- Added logging middleware for request and error tracking
- Extended .env.example with logging configuration options
- Updated app configuration to support flexible logging settings
- Replaced console.log with structured logging in main application entry point
- Created logging middleware to capture request details and response times
2025-02-03 15:41:06 +01:00
jango-blockchained
397355c1ad Restructure Project Architecture with Modular Routes and Configuration
- Refactored main application entry point to use centralized configuration
- Created modular route structure with separate files for different API endpoints
- Introduced app.config.ts for centralized environment variable management
- Moved tools and route logic into dedicated files
- Simplified index.ts and improved overall project organization
- Added comprehensive type definitions for tools and API interactions
2025-02-03 15:39:19 +01:00
jango-blockchained
9037cffcfe Add MCP Execute Endpoint with Secure Authentication and Tool Execution
- Implemented `/mcp/execute` endpoint for tool execution
- Added token-based authentication using HASS_TOKEN
- Supports dynamic tool selection and parameter passing
- Includes comprehensive error handling for unauthorized access and tool not found scenarios
- Provides flexible execution workflow with detailed response handling
2025-02-01 12:29:42 +01:00
jango-blockchained
431a68d690 Refactor SSE Endpoint with Enhanced Token Validation and Client Management
- Replaced direct token comparison with TokenManager validation
- Implemented robust SSE client connection and event subscription workflow
- Added detailed client authentication and connection status reporting
- Improved SSE endpoint with flexible event, entity, and domain subscription
- Enhanced error handling and client disconnect management
2025-02-01 07:50:54 +01:00
jango-blockchained
155a6ea5ba Add MCP Schema Endpoint for API Discovery
- Implemented `/mcp` endpoint to expose server capabilities
- Created `src/mcp/schema.ts` with comprehensive tool and resource definitions
- Updated README.md with MCP Schema documentation
- Modified security middleware to allow unauthenticated access to schema endpoint
- Included detailed tool descriptions for list_devices, control, and event subscription
2025-02-01 06:42:16 +01:00
jango-blockchained
13773d2977 Add Docker support and enhance server configuration
- Created Dockerfile for containerized deployment
- Added .dockerignore to optimize Docker build context
- Updated README with comprehensive Docker setup instructions
- Implemented new server endpoints:
  * Health check endpoint
  * Device listing
  * Device control
  * SSE event subscription
- Enhanced security middleware with request validation and input sanitization
- Added error handling and token-based authentication for new endpoints
2025-02-01 04:21:45 +01:00
jango-blockchained
3b2e9640db Refactor Home Assistant server initialization with Express and comprehensive endpoint management
- Added Express server with security middleware
- Implemented dynamic tool registration and API endpoint generation
- Enhanced logging with structured initialization messages
- Created centralized tools tracking for automatic endpoint discovery
- Added explicit Express server startup alongside MCP server
- Improved initialization logging with detailed endpoint information
2025-01-31 23:05:14 +01:00
jango-blockchained
64e619252c Add Server-Sent Events (SSE) support for Home Assistant integration
- Implemented comprehensive SSE manager with advanced client management
- Added dynamic event subscription and broadcasting capabilities
- Created robust rate limiting and client connection tracking
- Enhanced Home Assistant event handling with new SSE endpoints
- Updated package.json with UUID dependency for client identification
- Expanded test coverage for SSE and WebSocket event handling
- Improved type definitions for Home Assistant events and entities
2025-01-30 11:42:19 +01:00
jango-blockchained
c64dc4334b Add AI NLP and router modules for advanced natural language processing
- Introduced comprehensive NLP processing modules for intent classification, entity extraction, and context analysis
- Created AI router with rate-limited endpoints for command interpretation and execution
- Added prompt templates for different AI models with configurable system and user prompts
- Implemented robust type definitions for AI-related interfaces and schemas
- Enhanced security and error handling in AI processing pipeline
2025-01-30 10:05:57 +01:00
jango-blockchained
110f2a308c Add comprehensive WebSocket, context, performance, and security modules
- Introduced WebSocket client for real-time Home Assistant event streaming
- Created context management system for tracking resource relationships and state
- Implemented performance monitoring and optimization utilities
- Added security middleware with token validation, rate limiting, and input sanitization
- Extended tool registry with enhanced tool registration and execution capabilities
- Expanded test coverage for new modules and added comprehensive test scenarios
- Improved type safety and added robust error handling across new modules
2025-01-30 09:18:17 +01:00
jango-blockchained
26f6e155dd Add HassEntity interface and improve type safety in device handling 2024-12-17 16:12:12 +01:00
jango-blockchained
ada5ea4646 Enhance project structure and testing capabilities
- Updated .dockerignore to include additional logs and IDE files, improving Docker build efficiency.
- Added .eslintrc.json for TypeScript linting configuration, ensuring code quality and consistency.
- Refactored Dockerfile to streamline the build process and utilize a slimmer Node.js image.
- Introduced jest-resolver.cjs and jest.setup.js for improved Jest testing configuration and setup.
- Updated jest.config.js to support ESM and added new test patterns for better test organization.
- Enhanced TypeScript schemas to include new device types (media_player, fan, lock, vacuum, scene, script, camera) for comprehensive validation.
- Added unit tests for device schemas and Home Assistant connection, improving test coverage and reliability.
- Updated README.md with new testing instructions and device control examples, enhancing user guidance.
2024-12-17 15:07:40 +01:00
jango-blockchained
344c43a22f Add Docker support and enhance configuration management
- Introduced Dockerfile for building and running the application in a containerized environment.
- Added .dockerignore to exclude unnecessary files from the Docker context.
- Updated README.md with detailed Docker installation instructions and Node.js version management using nvm.
- Refactored environment variable handling in src/index.ts and src/config/hass.config.ts for improved configuration management.
- Enhanced TypeScript configuration to include JSON module resolution and updated exclusion patterns.
- Updated .gitignore to include additional files for better environment management.
2024-12-16 14:37:25 +01:00
jango-blockchained
c7dd825104 Update README and implement device listing tool
- Updated prerequisites in README.md to require Node.js 20.10.0 and NPM instead of Yarn.
- Changed repository clone URL to reflect the new username.
- Introduced a new 'list_devices' tool in src/index.ts to fetch and display all available Home Assistant devices, enhancing interaction capabilities.
- Updated README.md to include detailed usage instructions for the new device listing and control tools.
- Refactored environment variable names for consistency and clarity.
2024-12-16 13:45:39 +01:00
jango-blockchained
b55a75df54 Add Jest configuration files and enhance README with features and usage instructions
- Introduced `jest.config.cjs` and `jest.config.js` for Jest testing configuration.
- Expanded README.md to include detailed features, installation, configuration, and troubleshooting sections.
- Updated TypeScript configuration to target ES2022 and allow JavaScript files.
- Enhanced command handling in `src/index.ts` to support additional parameters for lights, covers, and climate entities.
- Added unit tests for command execution and Home Assistant connection validation.
- Updated schemas to include new entity types and parameters for better validation.
2024-12-16 13:30:20 +01:00
jango-blockchained
a37f0a784f Refactor Home Assistant MCP server implementation: transitioned to litemcp SDK, streamlined command handling, and reduced complexity by consolidating tool requests into a single command interface. Updated server initialization and improved error handling. 2024-12-16 10:48:53 +01:00
Tevon Strand-Brown
3a11274af1 Added basic alarm control 2024-12-12 16:45:34 -08:00
Tevon Strand-Brown
e915134cde Added basic control for lights, climate, and covers 2024-12-12 16:20:58 -08:00
Tevon Strand-Brown
144fc83be7 Transitioned to office SDK 2024-12-12 10:54:57 -08:00
Tevon Strand-Brown
56c34635be initial commit 2024-12-11 22:32:08 -08:00