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:
admin
2026-01-28 00:27:56 +04:00
Unverified
parent 3b128ba3bd
commit b52318eeae
1724 changed files with 351216 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
/**
* ESLint rule to prevent optional logger parameters in class constructors
*
* This rule enforces that logger parameters in class constructors must be required,
* not optional. Logger is a critical dependency that should always be provided
* for proper debugging and monitoring.
*
* @example
* // Bad
* class MyService {
* constructor(config: Config, logger?: IDextoLogger) {}
* }
*
* // Good
* class MyService {
* constructor(config: Config, logger: IDextoLogger) {}
* }
*/
export default {
meta: {
type: 'problem',
docs: {
description: 'Disallow optional logger parameters in class constructors',
category: 'Best Practices',
recommended: true,
},
messages: {
optionalLogger:
'Logger parameter in constructor should be required, not optional. ' +
'Remove the "?" to make it required: "logger: IDextoLogger"',
},
schema: [],
},
create(context) {
return {
// Check constructor methods in class declarations
MethodDefinition(node) {
// Only check constructors
if (node.kind !== 'constructor') {
return;
}
// Check each parameter
const params = node.value.params || [];
for (const param of params) {
// Handle Identifier nodes (simple parameters)
if (param.type === 'Identifier') {
// Check if parameter is named 'logger' and is optional
if (param.name === 'logger' && param.optional === true) {
// Check if it has IDextoLogger type annotation
if (param.typeAnnotation) {
const typeAnnotation = context.sourceCode.getText(
param.typeAnnotation
);
if (typeAnnotation.includes('IDextoLogger')) {
context.report({
node: param,
messageId: 'optionalLogger',
});
}
}
}
}
}
},
};
},
};