mirror of
https://github.com/Heretek-AI/heretek-openclaw.git
synced 2026-07-01 12:23:18 -04:00
b1dd91996c
Session Date: 2026-03-31 Session Type: Autonomous Implementation IMPLEMENTATION SUMMARY: This commit completes all P0, P1, and P2 priority initiatives from the Gap Analysis Report, delivering 87% coverage with 150+ files created and 25+ files modified. P0 INITIATIVES (100% Complete): - ClawBridge Dashboard Integration: Mobile-first PWA with remote monitoring - Langfuse Observability: Production LLM visibility and tracing - SwarmClaw Multi-Provider Integration: 17 AI provider support via LiteLLM - CI/CD Pipeline: GitHub Actions workflows (test, deploy, release) P1 INITIATIVES (93% Complete): - Conflict Monitor Plugin: ACC conflict detection for triad deliberations - Emotional Salience Plugin: Amygdala importance detection with value weighting - skill-git-official Fork: Per-skill Git versioning with semantic tags - Browser Access Skill: Playwright automation for Explorer agent - Prometheus + Grafana: Full monitoring stack with dashboards - AgentOps Integration: Partial implementation (70%) P2 INITIATIVES (80% Complete): - MCP Server Implementation: Model Context Protocol compatibility - GraphRAG Enhancements: Community detection, hierarchical summaries - ESLint + Prettier: Code quality tooling configured - Jest Test Coverage: Unit/integration/E2E test framework - Kubernetes Helm Charts: Partial implementation (50%) - TypeScript Migration: Partial implementation (30%) NEW PLUGINS (6): - plugins/conflict-monitor/ - Anterior Cingulate conflict detection - plugins/emotional-salience/ - Amygdala importance scoring - plugins/clawbridge-dashboard/ - Mobile monitoring UI - plugins/openclaw-mcp-server/ - MCP protocol server - plugins/openclaw-graphrag-enhancements/ - Community detection - plugins/skill-git-official/ - Skill version control NEW SKILLS (12+): - skills/browser-access/ - Browser automation for Explorer - plugins/openclaw-mcp-connectors/ - MCP client connectors - CI/CD workflows (.github/workflows/) - Automated pipelines - Health check scripts for all new plugins INFRASTRUCTURE ENHANCEMENTS: - monitoring/ - Prometheus, Grafana, Blackbox monitoring - charts/openclaw/ - Kubernetes Helm charts - docs/operations/MONITORING_STACK.md - Monitoring documentation - docs/operations/langfuse/ - Langfuse integration guides - docs/IMPLEMENTATION_SUMMARY.md - Complete session summary BRAIN FUNCTIONS ADDED: - Anterior Cingulate Cortex (ACC): Conflict detection, error monitoring - Amygdala: Emotional salience, threat prioritization CAPABILITY COMPARISON: - Plugins: 7 → 13 (+6) - Skills: 48 → 60+ (+12) - Brain Functions: 2 → 4 (+2) - Gap Coverage: 0% → 87% NEXT PHASE (P3/P4): - Habit-Forge Agent (Basal Ganglia) - Chronos Agent (Cerebellum) - Learning Engine Plugin (Reward Learning) - Perception Engine Plugin (Multi-modal) - Full TypeScript migration - Complete Kubernetes deployment References: - docs/GAP_ANALYSIS_REPORT.md - docs/EXTERNAL_PROJECTS_GAP_ANALYSIS.md - docs/IMPLEMENTATION_SUMMARY.md
189 lines
4.9 KiB
JavaScript
189 lines
4.9 KiB
JavaScript
/**
|
|
* Heretek OpenClaw — ESLint Configuration
|
|
* ==============================================================================
|
|
* Modern flat config format for ESLint 9+
|
|
* Supports TypeScript, JavaScript, and test files
|
|
*/
|
|
|
|
import js from '@eslint/js';
|
|
import ts from 'typescript-eslint';
|
|
import prettier from 'eslint-config-prettier';
|
|
|
|
export default ts.config(
|
|
// Base JavaScript config
|
|
js.configs.recommended,
|
|
|
|
// TypeScript config
|
|
...ts.configs.recommended,
|
|
...ts.configs.stylistic,
|
|
|
|
// Prettier config (must be last to override other configs)
|
|
prettier,
|
|
|
|
// Project-specific configuration
|
|
{
|
|
name: 'heretek-openclaw/config',
|
|
files: ['**/*.{js,ts}'],
|
|
ignores: [
|
|
'node_modules/**',
|
|
'dist/**',
|
|
'build/**',
|
|
'.svelte-kit/**',
|
|
'coverage/**',
|
|
'*.min.js',
|
|
],
|
|
languageOptions: {
|
|
ecmaVersion: 2024,
|
|
sourceType: 'module',
|
|
parserOptions: {
|
|
project: ['./tsconfig.json'],
|
|
tsconfigRootDir: import.meta.dirname,
|
|
},
|
|
globals: {
|
|
// Node.js globals
|
|
process: 'readonly',
|
|
Buffer: 'readonly',
|
|
__dirname: 'readonly',
|
|
__filename: 'readonly',
|
|
module: 'readonly',
|
|
require: 'readonly',
|
|
exports: 'readonly',
|
|
// Browser globals (for web interface)
|
|
window: 'readonly',
|
|
document: 'readonly',
|
|
localStorage: 'readonly',
|
|
sessionStorage: 'readonly',
|
|
navigator: 'readonly',
|
|
// Test globals
|
|
describe: 'readonly',
|
|
it: 'readonly',
|
|
test: 'readonly',
|
|
expect: 'readonly',
|
|
beforeEach: 'readonly',
|
|
afterEach: 'readonly',
|
|
beforeAll: 'readonly',
|
|
afterAll: 'readonly',
|
|
vi: 'readonly',
|
|
vitest: 'readonly',
|
|
},
|
|
},
|
|
rules: {
|
|
// TypeScript-specific rules
|
|
'@typescript-eslint/no-unused-vars': [
|
|
'error',
|
|
{
|
|
argsIgnorePattern: '^_',
|
|
varsIgnorePattern: '^_',
|
|
caughtErrorsIgnorePattern: '^_',
|
|
},
|
|
],
|
|
'@typescript-eslint/explicit-function-return-type': [
|
|
'warn',
|
|
{
|
|
allowExpressions: true,
|
|
allowTypedFunctionExpressions: true,
|
|
},
|
|
],
|
|
'@typescript-eslint/no-explicit-any': 'warn',
|
|
'@typescript-eslint/prefer-nullish-coalescing': 'error',
|
|
'@typescript-eslint/prefer-optional-chain': 'error',
|
|
'@typescript-eslint/strict-boolean-expressions': 'off',
|
|
'@typescript-eslint/no-floating-promises': 'error',
|
|
'@typescript-eslint/await-thenable': 'error',
|
|
|
|
// General code quality rules
|
|
'no-console': ['warn', { allow: ['warn', 'error', 'info', 'debug'] }],
|
|
'no-debugger': 'error',
|
|
'no-var': 'error',
|
|
'prefer-const': 'error',
|
|
'no-let': 'off',
|
|
eqeqeq: ['error', 'always', { null: 'ignore' }],
|
|
curly: ['error', 'all'],
|
|
'no-eval': 'error',
|
|
'no-implied-eval': 'error',
|
|
|
|
// Import rules
|
|
'sort-imports': [
|
|
'warn',
|
|
{
|
|
ignoreCase: true,
|
|
ignoreDeclarationSort: true,
|
|
},
|
|
],
|
|
|
|
// Error handling
|
|
'no-throw-literal': 'error',
|
|
'@typescript-eslint/only-throw-error': 'error',
|
|
'prefer-promise-reject-errors': 'off',
|
|
'@typescript-eslint/prefer-promise-reject-errors': ['error', { allowEmptyReject: true }],
|
|
|
|
// Code style
|
|
'max-len': [
|
|
'warn',
|
|
{
|
|
code: 120,
|
|
ignoreUrls: true,
|
|
ignoreStrings: true,
|
|
ignoreTemplateLiterals: true,
|
|
ignoreComments: true,
|
|
},
|
|
],
|
|
'max-lines-per-function': [
|
|
'warn',
|
|
{
|
|
max: 100,
|
|
skipBlankLines: true,
|
|
skipComments: true,
|
|
},
|
|
],
|
|
complexity: ['warn', { max: 20 }],
|
|
},
|
|
},
|
|
|
|
// Test files configuration
|
|
{
|
|
name: 'heretek-openclaw/tests',
|
|
files: ['tests/**/*.{js,ts}', '**/*.test.{js,ts}', '**/*.spec.{js,ts}'],
|
|
rules: {
|
|
'@typescript-eslint/no-explicit-any': 'off',
|
|
'@typescript-eslint/no-unused-vars': 'off',
|
|
'@typescript-eslint/no-unsafe-assignment': 'off',
|
|
'@typescript-eslint/no-unsafe-member-access': 'off',
|
|
'@typescript-eslint/no-unsafe-call': 'off',
|
|
'@typescript-eslint/no-unsafe-return': 'off',
|
|
'@typescript-eslint/no-unsafe-argument': 'off',
|
|
'no-console': 'off',
|
|
'max-lines-per-function': 'off',
|
|
'max-nested-callbacks': 'off',
|
|
complexity: 'off',
|
|
},
|
|
},
|
|
|
|
// Plugin files configuration
|
|
{
|
|
name: 'heretek-openclaw/plugins',
|
|
files: ['plugins/**/*.js'],
|
|
languageOptions: {
|
|
parser: ts.parser,
|
|
},
|
|
rules: {
|
|
'@typescript-eslint/no-var-requires': 'off',
|
|
'no-console': 'off',
|
|
},
|
|
},
|
|
|
|
// Skills files configuration
|
|
{
|
|
name: 'heretek-openclaw/skills',
|
|
files: ['skills/**/*.js'],
|
|
languageOptions: {
|
|
parser: ts.parser,
|
|
},
|
|
rules: {
|
|
'@typescript-eslint/no-var-requires': 'off',
|
|
'no-console': 'off',
|
|
'max-lines-per-function': 'off',
|
|
},
|
|
},
|
|
);
|