claude-flow-novice
Version:
Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture Includes Local RuVector Accelerator and all CFN skills for complete functionality.
169 lines (125 loc) • 5.21 kB
Markdown
# MDAP Library - Modular Decomposition and Processing
Standalone library for AI-powered task decomposition, processing, and validation. Extracted from Trigger.dev to provide reusable utilities for working with GLM 4.6 and common validation patterns.
## Installation
```bash
npm install @cfn/mdap
```
## Features
- **GLM 4.6 Client**: Optimized interface for Cerebras GLM 4.6 API with thinking/reasoning control
- **Validation Utilities**: JSON parsing, extraction, and validation helpers
- **Decomposer Functions**: Standalone functions for task analysis from multiple perspectives
- **Type Definitions**: Comprehensive TypeScript interfaces for MDAP tasks
- **Zero Dependencies**: Pure TypeScript implementation with no external runtime dependencies
## Quick Start
### Using the GLM Client
```typescript
import { callGLM, DECOMPOSER_PRESET, IMPLEMENTER_PRESET } from '@cfn/mdap';
// For decomposition tasks (with reasoning)
const decompositionResult = await callGLM(
"Decompose this task into micro-tasks...",
DECOMPOSER_PRESET
);
// For implementation tasks (fast, no reasoning)
const implementationResult = await callGLMFast(
"Implement this function...",
IMPLEMENTER_PRESET
);
```
### Validating Task Inputs
```typescript
import { validateDecomposerInput } from '@cfn/mdap';
const input = {
taskId: 'task-123',
taskDescription: 'Build a user authentication system',
workDir: '/workspace/project'
};
const validation = validateDecomposerInput(input);
if (!validation.success) {
console.error('Validation errors:', validation.errors);
}
```
### Parsing JSON from AI Responses
```typescript
import { parseJSONFromResponse } from '@cfn/mdap';
const aiResponse = `
Here's the decomposed tasks:
{
"microTasks": [
{ "id": "1", "title": "Create user model", "priority": "high" }
]
}
`;
const tasks = parseJSONFromResponse(aiResponse, 'decomposer');
console.log(tasks.microTasks);
```
### Using Decomposer Functions
```typescript
import {
decomposeArchitecture,
decomposeTesting,
decomposePerformance,
decomposeSecurity
} from '@cfn/mdap';
// Decompose from architectural perspective (baseline)
const architectureResult = await decomposeArchitecture({
taskId: 'task-123',
taskDescription: 'Build a user authentication system',
workDir: '/workspace/project'
});
// Decompose with context from previous analysis
const securityResult = await decomposeSecurity({
taskId: 'task-123',
taskDescription: 'Build a user authentication system',
workDir: '/workspace/project',
previousContext: {
architecture: architectureResult
}
});
console.log('Architecture micro-tasks:', architectureResult.microTasks);
console.log('Security risk level:', securityResult.riskLevel);
```
## API Reference
### Types
- `CompilerError`: Represents a compiler error with line/column info
- `FixInstruction`: Instruction for fixing a specific error
- `DecomposedTask`: A task decomposition result
- `MDAPResult`: Task execution result with confidence score
- `AIProvider`: Supported AI providers (zai, kimi, anthropic, etc.)
### GLM Client Functions
- `callGLM(prompt, options)`: Main GLM API call with configurable options
- `callGLMWithThinking(prompt, options)`: GLM call with reasoning enabled
- `callGLMFast(prompt, options)`: GLM call optimized for speed (no reasoning)
### Decomposer Functions
- `decomposeArchitecture(payload)`: Analyze task from architectural perspective (baseline)
- `decomposeSecurity(payload)`: Analyze task for security implications
- `decomposePerformance(payload)`: Analyze task for performance considerations
- `decomposeTesting(payload)`: Analyze task for testing requirements
- `getDecomposer(perspective)`: Get decomposer function by name
- `getAvailablePerspectives()`: Get list of available perspectives
### Validation Functions
- `validateDecomposerInput(input)`: Validates decomposer task inputs
- `validateCerebrasResponse(data)`: Validates Cerebras API response structure
- `validateDecompositionOutput(data)`: Validates decomposition result format
- `extractJSONFromResponse(content, context)`: Extracts JSON from AI response text
- `parseJSONFromResponse(content, context)`: Parses JSON with multiple recovery strategies
## Configuration
```typescript
import { configureMDAP } from '@cfn/mdap';
configureMDAP({
defaultProvider: 'zai',
defaultTimeout: 60000,
debug: true
});
```
## Presets
The library includes optimized presets for different use cases:
- `DECOMPOSER_PRESET`: For complex reasoning tasks (4096 tokens, thinking enabled)
- `IMPLEMENTER_PRESET`: For code implementation (2048 tokens, no thinking)
- `VALIDATOR_PRESET`: For validation tasks (1024 tokens, low temperature)
## Environment Variables
- `CEREBRAS_API_KEY`: Required API key for Cerebras GLM 4.6 access
## License
UNLICENSED - Internal use only
## Version History
- **1.0.0**: Initial release with GLM client, validation utilities, and type definitions
- **1.1.0**: Added decomposer functions for architecture, security, performance, and testing perspectives