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,155 @@
#!/usr/bin/env node
/* eslint-env node */
import { ChatOpenAI } from '@langchain/openai';
import { PromptTemplate } from '@langchain/core/prompts';
interface AgentTools {
summarize: (input: string | { text: string }) => Promise<string>;
translate: (input: string | { text: string; target_language?: string }) => Promise<string>;
analyze: (input: string | { text: string }) => Promise<string>;
}
export class LangChainAgent {
private llm: ChatOpenAI;
private tools: AgentTools;
constructor() {
this.llm = new ChatOpenAI({
model: 'gpt-5-mini',
temperature: 0.7,
});
this.tools = {
summarize: this.summarize.bind(this),
translate: this.translate.bind(this),
analyze: this.analyze.bind(this),
};
}
async run(input: string): Promise<string> {
try {
console.error(
`LangChain Agent received: ${input.substring(0, 100)}${input.length > 100 ? '...' : ''}`
);
const prompt = PromptTemplate.fromTemplate(`
You are a helpful AI assistant with three core capabilities:
**Core Tools:**
- summarize: Create concise summaries of text, articles, or documents
- translate: Translate text between different languages
- analyze: Perform sentiment analysis on text to understand emotions and tone
User input: {user_input}
Based on the user's request, determine which tool would be most helpful:
- summarize: For creating summaries of text, articles, or documents
- translate: For translating text between languages
- analyze: For performing sentiment analysis on text to understand emotions and tone
Provide a helpful response that addresses the user's needs.
`);
const chain = prompt.pipe(this.llm);
const result = await chain.invoke({ user_input: input });
const content =
typeof result.content === 'string' ? result.content : String(result.content);
console.error(
`LangChain Agent response: ${content.substring(0, 100)}${content.length > 100 ? '...' : ''}`
);
return content;
} catch (error: any) {
console.error(`LangChain Agent error: ${error.message}`);
return `I encountered an error: ${error.message}`;
}
}
private async summarize(input: string | { text: string }): Promise<string> {
const summaryPrompt = PromptTemplate.fromTemplate(`
Please create a concise summary of the following text:
Text: {text}
Provide a clear, well-structured summary that captures the key points and main ideas.
`);
const chain = summaryPrompt.pipe(this.llm);
const result = await chain.invoke({
text: typeof input === 'string' ? input : input.text,
});
return result.content as string;
}
private async translate(
input: string | { text: string; target_language?: string }
): Promise<string> {
const translatePrompt = PromptTemplate.fromTemplate(`
Please translate the following text:
Text: {text}
Target Language: {target_language}
Provide an accurate translation that maintains the original meaning and tone.
`);
const chain = translatePrompt.pipe(this.llm);
const result = await chain.invoke({
text: typeof input === 'string' ? input : input.text,
target_language:
typeof input === 'string' ? 'English' : input.target_language || 'English',
});
return result.content as string;
}
private async analyze(input: string | { text: string }): Promise<string> {
const analyzePrompt = PromptTemplate.fromTemplate(`
Please perform sentiment analysis on the following text:
Text: {text}
Provide a comprehensive sentiment analysis covering:
1. **Overall Sentiment**: Positive, Negative, or Neutral
2. **Sentiment Score**: Rate from 1-10 (1=very negative, 10=very positive)
3. **Key Emotions**: Identify specific emotions present (e.g., joy, anger, sadness, excitement)
4. **Confidence Level**: How confident are you in this analysis?
5. **Key Phrases**: Highlight specific phrases that influenced the sentiment
6. **Context**: Any contextual factors that might affect interpretation
Be specific and provide clear reasoning for your analysis.
`);
const chain = analyzePrompt.pipe(this.llm);
const result = await chain.invoke({
text: typeof input === 'string' ? input : input.text,
});
return result.content as string;
}
}
// For direct testing
if (import.meta.url === `file://${process.argv[1]}`) {
const agent = new LangChainAgent();
console.log('LangChain Agent Test Mode');
console.log('Type your message (or "quit" to exit):');
process.stdin.setEncoding('utf8');
process.stdin.on('data', async (data) => {
const input = data.toString().trim();
if (input.toLowerCase() === 'quit') {
process.exit(0);
}
try {
const response = await agent.run(input);
console.log('\nAgent Response:', response);
} catch (error: any) {
console.error('Error:', error.message);
}
console.log('\nType your message (or "quit" to exit):');
});
}