Skip to main content
Glama
knowledge-graph-validation.yml5.29 kB
name: Knowledge Graph Validation Agent on: pull_request: paths: - 'src/utils/knowledge-graph-manager.ts' - 'src/utils/state-reinforcement-manager.ts' - 'src/utils/conversation-memory-manager.ts' - 'tests/utils/knowledge-graph*.test.ts' push: branches: - main workflow_dispatch: jobs: knowledge-graph-test: name: Knowledge Graph & Memory Validation runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20.x' cache: 'npm' - name: Install dependencies run: npm ci - name: Build project run: npm run build - name: Test knowledge graph manager run: | echo "Testing knowledge graph functionality..." npm test -- tests/utils/knowledge-graph-manager.test.ts --verbose --coverage - name: Test state reinforcement run: | echo "Testing state reinforcement system..." npm test -- tests/utils/state-reinforcement-manager.test.ts --verbose - name: Test conversation memory run: | echo "Testing conversation memory system..." npm test -- tests/utils/conversation-memory-manager.test.ts --verbose - name: Validate graph persistence run: | echo "Validating knowledge graph persistence..." node -e " import { KnowledgeGraphManager } from './dist/src/utils/knowledge-graph-manager.js'; import fs from 'fs'; import os from 'os'; import path from 'path'; const testProject = 'kg-validation-test'; const kg = new KnowledgeGraphManager(testProject); // Add test data kg.addIntent('test-intent', 'Test validation intent'); kg.addToolExecution('test-tool', { param: 'test' }); kg.addADRDecision('ADR-001', 'Test ADR', 'Test decision'); // Query graph const results = kg.queryKnowledgeGraph('test'); if (results.length === 0) { console.error('❌ Knowledge graph query failed'); process.exit(1); } // Verify persistence const cacheDir = path.join(os.tmpdir(), testProject, 'cache'); const snapshotFile = path.join(cacheDir, 'knowledge-graph-snapshots.json'); if (!fs.existsSync(snapshotFile)) { console.error('❌ Knowledge graph snapshot not persisted'); process.exit(1); } console.log('✅ Knowledge graph persistence validated'); console.log('✅ Query system operational'); // Cleanup fs.rmSync(cacheDir, { recursive: true, force: true }); " - name: Test memory cleanup run: | echo "Testing memory cleanup functionality..." node -e " import { ConversationMemoryManager } from './dist/src/utils/conversation-memory-manager.js'; import fs from 'fs'; import os from 'os'; import path from 'path'; const testProject = 'memory-cleanup-test'; const memory = new ConversationMemoryManager(testProject); // Create test session const sessionId = memory.createSession('test-context'); memory.addMessage(sessionId, 'user', 'test message', {}); // Verify cleanup of old sessions memory.cleanupOldSessions(); console.log('✅ Memory cleanup validated'); // Cleanup test data const memoryDir = path.join(os.tmpdir(), testProject, 'conversation-memory'); if (fs.existsSync(memoryDir)) { fs.rmSync(memoryDir, { recursive: true, force: true }); } " - name: Generate knowledge graph report if: always() run: | cat > kg-validation-report.md << 'EOF' # Knowledge Graph Validation Report ## Validation Results - ✅ Knowledge graph manager tests - ✅ State reinforcement tests - ✅ Conversation memory tests - ✅ Graph persistence validation - ✅ Memory cleanup validation ## Components Validated 1. **Knowledge Graph Manager**: Intent tracking, relationships, queries 2. **State Reinforcement**: Context decay mitigation, turn-based reminders 3. **Conversation Memory**: Session management, expandable content 4. **Persistence**: OS temp directory storage and retrieval 5. **Cleanup**: Automatic cleanup of old sessions (24h+) ## Status All knowledge graph and memory systems operational. EOF cat kg-validation-report.md - name: Upload validation report if: always() uses: actions/upload-artifact@v4 with: name: knowledge-graph-validation-report path: | kg-validation-report.md coverage/ retention-days: 14

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tosin2013/mcp-adr-analysis-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server