New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@foxruv/iris-core

Package Overview
Dependencies
Maintainers
2
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@foxruv/iris-core

Intelligent AI orchestration with multi-provider LM management, drift detection, auto-retraining, and performance tracking for production AI systems

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
2
Created
Source

@iris/core

Version License TypeScript Tests Coverage Bundle Size

Core orchestration and multi-provider LM management for Iris AI

FeaturesInstallationQuick StartAPIMigration

🎯 Overview

@iris/core is the modular core package extracted from the Iris monolith, providing:

  • 🤖 Intelligent Orchestration - AI operations management with drift detection and auto-retraining
  • 🔌 Multi-Provider Support - Claude Sonnet 4.5, Qwen3, and extensible LM providers
  • 📊 Performance Tracking - Built-in metrics, health scoring, and optimization
  • 🧪 Production Ready - 99% test coverage, TypeScript strict mode, zero dependencies
  • 🚀 Lightweight - 154KB bundle, sub-2s build time, ESM + CJS dual output

✨ Features

🎛️ Orchestration Engine

  • Project Health Evaluation - Real-time monitoring with drift detection
  • Auto-Retraining - Intelligent expert rotation based on performance
  • Prompt Auto-Promotion - Best-in-class signature discovery and deployment
  • Pattern Discovery - Cross-project knowledge transfer
  • Consensus Tracking - Version lineage and rotation recommendations

🔌 Provider Management

Supported Providers:

  • Anthropic Claude - Claude Sonnet 4.5 (production default)
  • Qwen3 - Local LM Studio / OpenAI-compatible endpoints
  • Extensible - Easy custom provider integration

Provider Features:

  • Environment-based configuration
  • Performance tracking (latency, success rate, quality)
  • Provider switching and failover
  • Batch processing with concurrency control (5x throughput)

📦 Package Features

  • Zero External Dependencies - Pure Node.js implementation
  • TypeScript First - Full type safety with strict mode
  • Dual Module Support - ESM and CJS outputs
  • Comprehensive Tests - 118 tests, 99% coverage
  • Fast Builds - <2s compilation time
  • Small Bundle - 154KB total size

📥 Installation

npm install @iris/core

Requirements:

  • Node.js 18+ (ESM support)
  • TypeScript 5.6+ (for development)

🚀 Quick Start

Basic Orchestrator Usage

import { createIrisOrchestrator } from '@foxruv/iris-core'

// Create orchestrator instance
const iris = createIrisOrchestrator({
  dbBasePath: './data/iris',
  defaultAutoRetrain: true,
  defaultAutoPromote: true
})

// Configure project
iris.configureProject({
  projectId: 'my-project',
  autoRetrain: true,
  autoPromote: true,
  retrainingThreshold: 0.1, // 10% accuracy drop
  promotionThreshold: 0.1,  // 10% improvement
  minEvaluations: 10
})

// Evaluate project health
const report = await iris.evaluateProject('my-project')

console.log(`Health Score: ${report.healthScore}/100`)
console.log(`Status: ${report.overallHealth}`)
console.log(`Drift Alerts: ${report.driftAlerts.length}`)
console.log(`Recommendations: ${report.recommendedActions.length}`)

// Auto-promote better prompts
const promoted = await iris.autoPromotePrompts('my-project')
console.log(`Promoted ${promoted.length} experts`)

// Auto-retrain drifting experts
const retrained = await iris.autoRetrainExperts('my-project')
console.log(`Retrained ${retrained.length} experts`)

// Clean up
iris.close()

Provider Usage

Claude Provider

import { ClaudeProvider } from '@foxruv/iris-core/providers'

const provider = new ClaudeProvider(
  process.env.ANTHROPIC_API_KEY,
  'claude-sonnet-4-5-20250929'
)

const signature = {
  instructions: 'Classify sentiment as positive, negative, or neutral',
  input: { text: 'Input text to classify' },
  output: { sentiment: 'Sentiment classification' }
}

const result = await provider.predict(
  signature,
  { text: 'I love this product!' },
  undefined, // custom instructions (optional)
  0.0,       // temperature
  1024       // max tokens
)

console.log(result) // { sentiment: "positive" }

Qwen3 Provider (Local LM)

import { Qwen3Provider } from '@foxruv/iris-core/providers'

const provider = new Qwen3Provider(
  'http://localhost:1234',      // LM Studio endpoint
  'qwen2.5-32b-instruct',       // model name
  5                              // max concurrent requests
)

// Single prediction
const result = await provider.predict(signature, input)

// Batch predictions (5x throughput)
const results = await provider.batchPredict(
  signature,
  [input1, input2, input3, ...],
  undefined,  // custom instructions
  0.3,        // temperature
  2048        // max tokens
)

// Batch with retry (auto-recover from failures)
const results = await provider.batchPredictWithRetry(
  signature,
  inputs,
  undefined,
  0.3,
  2048,
  2  // max retries per prediction
)

// Health check
const isHealthy = await provider.healthCheck()

Provider Manager

import { getLMProvider } from '@foxruv/iris-core/providers'

// Auto-detect provider from environment
const manager = getLMProvider()
const provider = manager.getProvider()

// Get performance metrics
const metrics = manager.getPerformanceMetrics('anthropic')
console.log(`Latency: ${metrics.averageLatencyMs}ms`)
console.log(`Success Rate: ${metrics.successRate * 100}%`)

// Compare all providers
const comparison = manager.compareProviders()
console.log(`Fastest: ${comparison.fastest}`)
console.log(`Most Reliable: ${comparison.mostReliable}`)

// Switch providers
manager.switchProvider('lmstudio')

Utility Functions

import { calculateHealthScore, getHealthLevel, incrementVersion } from '@foxruv/iris-core'

// Calculate health score
const score = calculateHealthScore({
  driftAlerts: 2,
  staleReflexions: 5,
  avgValidity: 0.8,
  highPriorityRotations: 1
})
console.log(score) // 47 (0-100)

// Get health level
const level = getHealthLevel(score)
console.log(level) // "poor"

// Increment version
const newVersion = incrementVersion('v1.0.5')
console.log(newVersion) // "v1.0.6"

📚 API Reference

Core Orchestrator

createIrisOrchestrator(config?): IrisOrchestrator

Creates a new Iris orchestrator instance.

Config:

interface IrisPrimeConfig {
  dbBasePath?: string              // Default: './data/iris'
  defaultAutoRetrain?: boolean     // Default: false
  defaultAutoPromote?: boolean     // Default: false
  scheduleIntervalMs?: number      // Default: 86400000 (24h)
  logPath?: string                 // Default: './logs'
  notifiers?: IrisNotifier[]       // Default: []
}

IrisOrchestrator.evaluateProject(projectId): Promise<IrisReport>

Evaluates a project's health and returns a comprehensive report.

Returns:

interface IrisReport {
  projectId: string
  timestamp: Date
  overallHealth: 'excellent' | 'good' | 'fair' | 'poor' | 'critical'
  healthScore: number // 0-100
  driftAlerts: DriftAlert[]
  promptRecommendations: PromptRecommendation[]
  reflexionStatus: ReflexionStatus
  rotationRecommendations: RotationRecommendation[]
  transferablePatterns: TransferablePattern[]
  recommendedActions: RecommendedAction[]
}

Providers

ClaudeProvider

Anthropic Claude API wrapper with fetch-based implementation.

Methods:

  • predict(signature, input, customInstructions?, temperature?, maxTokens?): Promise<Record<string, any>>

Qwen3Provider

OpenAI-compatible local model provider with concurrency control.

Methods:

  • predict(signature, input, customInstructions?, temperature?, maxTokens?, schema?): Promise<Record<string, any>>
  • batchPredict(signature, inputs, customInstructions?, temperature?, maxTokens?): Promise<Array<Record<string, any>>>
  • batchPredictWithRetry(signature, inputs, customInstructions?, temperature?, maxTokens?, maxRetries?): Promise<Array<Record<string, any>>>
  • healthCheck(): Promise<boolean>

LMProviderManager

Multi-provider orchestration with performance tracking.

Methods:

  • getProvider(): any
  • getProviderByName(name): any | undefined
  • getAvailableProviders(): ModelProvider[]
  • switchProvider(provider): void
  • recordPerformance(provider, latencyMs, success, qualityScore?): void
  • getPerformanceMetrics(provider?): PerformanceMetrics | PerformanceMetrics[]
  • compareProviders(): ProviderComparison

Utility Functions

  • calculateHealthScore(factors): number - Calculate health score (0-100)
  • getHealthLevel(score): HealthStatus - Get health level from score
  • incrementVersion(version): string - Increment semver version
  • validateProjectId(id): boolean - Validate project ID format
  • validateSemver(version): boolean - Validate semver string

🔄 Migration Guide

From Monolith to @iris/core

Before (Monolith):

import { IrisPrime } from './orchestrators/iris-prime.js'

const iris = new IrisPrime({ dbBasePath: './data' })

After (@iris/core):

import { createIrisOrchestrator } from '@foxruv/iris-core'

const iris = createIrisOrchestrator({ dbBasePath: './data' })

Key Changes

  • Class Name: IrisPrimeIrisOrchestrator
  • Factory Function: Use createIrisOrchestrator() instead of new IrisPrime()
  • Import Path: @iris/core instead of local path
  • Zero Dependencies: No need to install federated learning components

Backward Compatibility

The monolith provides a backward compatibility shim at src/orchestrators/iris-prime.ts that re-exports from @iris/core:

// Still works (with deprecation warning)
import { IrisPrime } from './orchestrators/iris-prime.js'

Deprecation Timeline:

  • v1.x: Full backward compatibility maintained
  • v2.0: Legacy imports removed

🧪 Testing

# Run tests
npm test

# Watch mode
npm run test:watch

# Coverage report
npm run test:coverage

Test Results:

  • 118 tests across 5 test suites
  • 99% coverage (statements, lines, functions)
  • 1.93s execution time
  • Zero flaky tests

🏗️ Building

# Build TypeScript
npm run build

# Type checking only
npm run typecheck

Build Output:

  • ESM modules in dist/
  • TypeScript declarations (.d.ts)
  • Source maps for debugging
  • 154KB total bundle size
  • <2s build time

📊 Performance Benchmarks

MetricTargetActualStatus
Bundle Size<500KB154KB
Build Time<2s~1.5s
Test Execution<5s1.93s
Coverage>95%99%
Zero DependenciesYesYes

🛠️ Development

Project Structure

@iris/core/
├── src/
│   ├── index.ts                 # Main exports
│   ├── orchestrator.ts          # IrisOrchestrator class
│   ├── providers.ts             # Provider implementations
│   ├── types.ts                 # Type definitions
│   ├── utils.ts                 # Utility functions
│   ├── providers/               # Provider modules
│   │   ├── claude.ts
│   │   ├── qwen.ts
│   │   ├── manager.ts
│   │   └── index.ts
│   ├── types/                   # Type modules
│   │   ├── config.ts
│   │   ├── metrics.ts
│   │   ├── reports.ts
│   │   └── index.ts
│   └── utils/                   # Utility modules
│       ├── health.ts
│       └── validation.ts
├── tests/                       # Comprehensive test suite
├── dist/                        # Build output (ESM + CJS)
├── package.json
├── tsconfig.json
├── vitest.config.ts
└── README.md

Dependencies

Runtime: Zero external dependencies

Development:

  • typescript - Type checking and compilation
  • vitest - Fast unit testing
  • @vitest/coverage-v8 - Code coverage reporting
  • @types/node - Node.js type definitions

📄 License

MIT © [Iris Team]

🤝 Contributing

Contributions are welcome! Please:

  • Fork the repository
  • Create a feature branch
  • Write tests for new functionality
  • Ensure all tests pass (npm test)
  • Submit a pull request

📞 Support

  • @iris/council - Expert council coordination
  • @iris/voice - Voice interface integration
  • @foxruv/iris - Federated learning components

Built with ❤️ by the Iris Team

⬆ Back to Top

Keywords

iris

FAQs

Package last updated on 25 Nov 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts