UNPKG

aios-core

Version:

Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework

230 lines (176 loc) 7.41 kB
# AIOS Core Module > Central runtime module providing essential framework functionality for Synkra AIOS. **Version:** 2.0.0 **Created:** Story 2.2 - Core Module Creation **Architecture:** ADR-002 Modular Architecture ## Overview The Core module contains the foundational runtime components that all other AIOS modules depend on. It provides configuration management, session handling, elicitation workflows, and essential utilities. ## Installation The core module is automatically available within the Synkra AIOS framework: ```javascript // CommonJS const core = require('./.aios-core/core'); // ES Modules import { ConfigCache, ElicitationEngine } from './.aios-core/core/index.esm.js'; ``` ## Module Structure ``` core/ ├── config/ # Configuration management │ ├── config-cache.js # Global configuration cache with TTL support │ └── config-loader.js # Lazy-loading configuration system ├── data/ # Framework knowledge and patterns │ ├── aios-kb.md # AIOS knowledge base │ ├── workflow-patterns.yaml │ └── agent-config-requirements.yaml ├── docs/ # Internal documentation │ ├── agent-creation.md │ ├── component-overview.md │ ├── elicitation-guide.md │ ├── system-overview.md │ └── task-authoring.md ├── elicitation/ # Interactive prompting system │ ├── elicitation-engine.js │ ├── session-manager.js │ ├── agent-elicitation.js │ ├── task-elicitation.js │ └── workflow-elicitation.js ├── session/ # Session context management │ ├── context-detector.js │ └── context-loader.js ├── utils/ # Utility functions │ ├── output-formatter.js │ └── yaml-validator.js ├── index.js # CommonJS exports └── index.esm.js # ES Module exports ``` ## API Reference ### Configuration #### `ConfigCache` / `globalConfigCache` Global configuration cache with TTL support. ```javascript const { globalConfigCache } = require('./.aios-core/core'); // Store configuration globalConfigCache.set('my-key', { value: 42 }, 300000); // 5 min TTL // Retrieve configuration const config = globalConfigCache.get('my-key'); ``` #### `loadAgentConfig(agentId)` Load configuration for a specific agent with lazy loading. ```javascript const { loadAgentConfig } = require('./.aios-core/core'); const agentConfig = await loadAgentConfig('dev'); ``` #### `loadConfigSections(sections)` Load specific configuration sections. ```javascript const { loadConfigSections } = require('./.aios-core/core'); const config = await loadConfigSections(['persona', 'commands']); ``` ### Session Management #### `ContextDetector` Detects current execution context (IDE, terminal, environment). ```javascript const { ContextDetector } = require('./.aios-core/core'); const detector = new ContextDetector(); const context = detector.detectContext(); ``` #### `SessionContextLoader` Manages session context loading and updates. ```javascript const { SessionContextLoader } = require('./.aios-core/core'); const loader = new SessionContextLoader(); const context = await loader.loadContext(sessionId); ``` ### Elicitation System #### `ElicitationEngine` Core engine for interactive prompting workflows. ```javascript const { ElicitationEngine } = require('./.aios-core/core'); const engine = new ElicitationEngine(); const session = await engine.startSession('create-agent'); const response = await engine.processStep(session.id, userInput); ``` #### `ElicitationSessionManager` Manages elicitation session state. ```javascript const { ElicitationSessionManager } = require('./.aios-core/core'); const manager = new ElicitationSessionManager(); ``` #### Elicitation Steps Pre-defined elicitation workflows: - `agentElicitationSteps` - Steps for creating agents - `taskElicitationSteps` - Steps for creating tasks - `workflowElicitationSteps` - Steps for creating workflows ### Utilities #### `YAMLValidator` Validates YAML content with type-specific rules. ```javascript const { YAMLValidator, validateYAML } = require('./.aios-core/core'); // Quick validation const result = await validateYAML(yamlContent, 'agent'); // Full validator const validator = new YAMLValidator(); const validation = await validator.validateFile('agent.yaml', 'agent'); ``` #### `PersonalizedOutputFormatter` Formats agent output with personalization. ```javascript const { PersonalizedOutputFormatter } = require('./.aios-core/core'); const formatter = new PersonalizedOutputFormatter(agent, task, result); const output = formatter.format(); ``` ## Exports Summary | Export | Type | Description | |--------|------|-------------| | `ConfigCache` | Class | Configuration cache class | | `globalConfigCache` | Instance | Global cache singleton | | `loadAgentConfig` | Function | Load agent configuration | | `loadConfigSections` | Function | Load config sections | | `loadMinimalConfig` | Function | Load minimal configuration | | `loadFullConfig` | Function | Load complete configuration | | `preloadConfig` | Function | Preload configuration | | `clearConfigCache` | Function | Clear configuration cache | | `getConfigPerformanceMetrics` | Function | Get cache performance stats | | `ContextDetector` | Class | Context detection | | `SessionContextLoader` | Class | Session context management | | `ElicitationEngine` | Class | Elicitation workflow engine | | `ElicitationSessionManager` | Class | Session state management | | `agentElicitationSteps` | Object | Agent creation steps | | `taskElicitationSteps` | Object | Task creation steps | | `workflowElicitationSteps` | Object | Workflow creation steps | | `PersonalizedOutputFormatter` | Class | Output formatting | | `YAMLValidator` | Class | YAML validation | | `validateYAML` | Function | Quick YAML validation | | `version` | String | Module version (2.0.0) | | `moduleName` | String | Module name ('core') | ## Regression Tests The core module includes regression tests (CORE-01 to CORE-07): | Test ID | Name | Priority | Description | |---------|------|----------|-------------| | CORE-01 | Config Loading | P0 | Verifies config system loads | | CORE-02 | Config Caching | P1 | Verifies cache operations | | CORE-03 | Session Management | P0 | Verifies session loader | | CORE-04 | Elicitation Engine | P0 | Verifies elicitation system | | CORE-05 | YAML Validation | P1 | Verifies YAML validator | | CORE-06 | Output Formatting | P1 | Verifies output formatter | | CORE-07 | Package Exports | P0 | Verifies all exports | Run tests: ```bash npm run test:core ``` ## Dependencies - `js-yaml` - YAML parsing - `fs-extra` - Enhanced file operations ## Migration Notes Files were migrated from various locations to create this unified module: | Original Location | New Location | |-------------------|--------------| | `config/config-loader.js` | `core/config/config-loader.js` | | `config/config-cache.js` | `core/config/config-cache.js` | | `session/context-*.js` | `core/session/context-*.js` | | `elicitation/*.js` | `core/elicitation/*.js` | | Various utils | `core/utils/` | Scripts that import these modules have been updated to reference the new paths. --- *Synkra AIOS Core Module v2.0.0*