feat: Add intelligent auto-router and enhanced integrations
- Add intelligent-router.sh hook for automatic agent routing - Add AUTO-TRIGGER-SUMMARY.md documentation - Add FINAL-INTEGRATION-SUMMARY.md documentation - Complete Prometheus integration (6 commands + 4 tools) - Complete Dexto integration (12 commands + 5 tools) - Enhanced Ralph with access to all agents - Fix /clawd command (removed disable-model-invocation) - Update hooks.json to v5 with intelligent routing - 291 total skills now available - All 21 commands with automatic routing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
170
dexto/eslint.config.js
Normal file
170
dexto/eslint.config.js
Normal file
@@ -0,0 +1,170 @@
|
||||
import tseslint from '@typescript-eslint/eslint-plugin';
|
||||
import tsParser from '@typescript-eslint/parser';
|
||||
import js from '@eslint/js';
|
||||
import prettier from 'eslint-config-prettier';
|
||||
import requireZodDescribe from './eslint-rules/require-zod-describe.js';
|
||||
import noOptionalLoggerInConstructor from './eslint-rules/no-optional-logger-in-constructor.js';
|
||||
|
||||
export default [
|
||||
// Base config for all files
|
||||
js.configs.recommended,
|
||||
{
|
||||
linterOptions: {
|
||||
reportUnusedDisableDirectives: 'warn',
|
||||
},
|
||||
},
|
||||
|
||||
// TypeScript specific config (general rules)
|
||||
{
|
||||
files: ['**/*.ts'],
|
||||
languageOptions: {
|
||||
parser: tsParser,
|
||||
ecmaVersion: 2022,
|
||||
sourceType: 'module',
|
||||
globals: {
|
||||
console: 'readonly',
|
||||
process: 'readonly',
|
||||
setTimeout: 'readonly',
|
||||
clearTimeout: 'readonly',
|
||||
global: 'readonly',
|
||||
require: 'readonly',
|
||||
__dirname: 'readonly',
|
||||
module: 'readonly',
|
||||
document: 'readonly',
|
||||
window: 'readonly',
|
||||
HTMLElement: 'readonly',
|
||||
HTMLAnchorElement: 'readonly',
|
||||
HTMLImageElement: 'readonly',
|
||||
Element: 'readonly',
|
||||
Node: 'readonly',
|
||||
clearInterval: 'readonly',
|
||||
setInterval: 'readonly',
|
||||
Buffer: 'readonly',
|
||||
URL: 'readonly',
|
||||
AbortController: 'readonly',
|
||||
AbortSignal: 'readonly',
|
||||
structuredClone: 'readonly',
|
||||
NodeJS: 'readonly',
|
||||
CustomEvent: 'readonly',
|
||||
localStorage: 'readonly',
|
||||
FileReader: 'readonly',
|
||||
fetch: 'readonly',
|
||||
URLSearchParams: 'readonly',
|
||||
RequestInfo: 'readonly',
|
||||
Response: 'readonly',
|
||||
RequestInit: 'readonly',
|
||||
// Browser Speech Synthesis API globals used in webui
|
||||
SpeechSynthesisUtterance: 'readonly',
|
||||
SpeechSynthesisVoice: 'readonly',
|
||||
},
|
||||
},
|
||||
plugins: {
|
||||
'@typescript-eslint': tseslint,
|
||||
},
|
||||
rules: {
|
||||
'no-console': 'off',
|
||||
'no-unused-vars': 'off',
|
||||
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/no-unused-vars': [
|
||||
'warn',
|
||||
{
|
||||
argsIgnorePattern: '^_',
|
||||
varsIgnorePattern: '^_',
|
||||
caughtErrorsIgnorePattern: '^_',
|
||||
},
|
||||
],
|
||||
'no-dupe-class-members': 'off', // Allow TypeScript method overloading
|
||||
'no-redeclare': 'off', // Disable base rule - replaced by @typescript-eslint/no-redeclare
|
||||
'@typescript-eslint/no-redeclare': 'error', // TS-aware: allows overloads, catches real redeclarations
|
||||
'no-restricted-syntax': [
|
||||
'error',
|
||||
{
|
||||
selector:
|
||||
'TSTypeReference > TSTypeQuery > Identifier[name="z"] ~ TSQualifiedName > Identifier[name="infer"]',
|
||||
message:
|
||||
'Use z.output instead of z.infer for better type inference with Zod schemas. z.output includes transformations while z.infer may miss them.',
|
||||
},
|
||||
{
|
||||
selector:
|
||||
'TSTypeReference[typeName.type="TSQualifiedName"][typeName.left.name="z"][typeName.right.name="infer"]',
|
||||
message:
|
||||
'Use z.output instead of z.infer for better type inference with Zod schemas. z.output includes transformations while z.infer may miss them.',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
|
||||
// Zod .describe() enforcement for API route files only
|
||||
{
|
||||
files: ['**/server/src/**/*.ts', '**/api/routes/**/*.ts'],
|
||||
plugins: {
|
||||
'dexto-custom': {
|
||||
rules: {
|
||||
'require-zod-describe': requireZodDescribe,
|
||||
},
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
// Enforce .describe() on Zod schemas for OpenAPI documentation
|
||||
// Only applies to API route files where OpenAPI docs are generated
|
||||
'dexto-custom/require-zod-describe': [
|
||||
'error',
|
||||
{
|
||||
exemptSchemaNames: [
|
||||
// Add schema names here that should be exempt from requiring .describe()
|
||||
// Example: 'TestMockSchema', 'InternalConfigSchema'
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
|
||||
// Prevent optional logger parameters in class constructors
|
||||
{
|
||||
files: ['packages/core/src/**/*.ts'],
|
||||
plugins: {
|
||||
'dexto-custom': {
|
||||
rules: {
|
||||
'no-optional-logger-in-constructor': noOptionalLoggerInConstructor,
|
||||
},
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
// Enforce required logger parameters in class constructors
|
||||
// Logger is a critical dependency that should always be provided
|
||||
'dexto-custom/no-optional-logger-in-constructor': 'error',
|
||||
},
|
||||
},
|
||||
|
||||
// Ignore patterns (keep existing ignores)
|
||||
{
|
||||
ignores: [
|
||||
'node_modules/**',
|
||||
'**/dist/**',
|
||||
'.cursor/**',
|
||||
'public/**',
|
||||
// Use the package-local ESLint config for Web UI instead of root config
|
||||
'packages/webui/**',
|
||||
'**/build/**',
|
||||
'**/coverage/**',
|
||||
'test-temp/**',
|
||||
'**/*.min.js',
|
||||
'**/generated/**',
|
||||
'docs/.docusaurus/**',
|
||||
'scripts/dev.js',
|
||||
'scripts/dev-status.js',
|
||||
'packages/cli/src/web/client/script.js',
|
||||
'packages/webui/tailwind.config.js',
|
||||
'**/.venv/**',
|
||||
'**/venv/**',
|
||||
'**/env/**',
|
||||
'**/__pycache__/**',
|
||||
'**/*.pyc',
|
||||
'**/*.pyo',
|
||||
'**/*.pyd',
|
||||
],
|
||||
},
|
||||
|
||||
prettier,
|
||||
];
|
||||
Reference in New Issue
Block a user