Changelog¶
All notable changes to NeuroCore will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.2.1] — 2026-04-03¶
Added¶
GeminiProvider (NC-FIX-001)¶
GeminiProviderclass implementingLLMProviderprotocol usinggoogle-genaiSDKAutomatic message format conversion (system →
system_instruction, assistant → model role)Async
complete()andstream()viaclient.aio.models.generate_content()"gemini"handled bybuild_provider()factorygoogle-genai>=1.0optional dependency group (pip install neurocore-ai[gemini])neurocore-skill-gemini-auditor— adversarial reproducibility auditor using GeminiUpdated
ac1-research.flow.yamlblueprint: reviewer-auditor now uses Gemini provider
Retry & Exponential Backoff (NC-FIX-002)¶
max_retries,retry_delay_base,retry_delay_max,retry_onfields onSkillMetaTruncated exponential backoff with full jitter in
_run_skill_async()Warning-level structured logging on each retry attempt
neurocore-skill-baseshared package withRateLimitError,ServiceUnavailableError,check_response()All 13 research skill packages updated with retry configuration (v0.1.1)
Changed¶
Version bumped to 0.2.1
build_provider()error message now includesgeminiin expected providersGeminiProviderexported fromneurocore.llmpackage
[0.2.0] — 2026-04-03¶
Added¶
Async Skill Execution (NC-001)¶
AsyncSkillbase class for skills whoseprocess()is an async coroutineis_async_skill()helper to detect async skills at runtimeAutomatic async/sync detection — blueprints with any async skill execute in an asyncio event loop
Sync skills wrapped automatically via
run_in_executorwhen mixed with async skills
Concurrent DAG Execution (NC-002)¶
Topological-layer DAG execution using
asyncio.gather()for concurrent node processingKahn’s algorithm for computing execution layers from blueprint edges
Cycle detection with clear error messages
Context merging across concurrent nodes (last-write-wins per key)
Streaming Execution (NC-003)¶
execute_blueprint_stream()async generator yieldingFlowEventobjects in real-timeFlowEventandFlowEventTypedataclasses for structured event dataEvent types:
FLOW_STARTED,STEP_STARTED,STEP_COMPLETED,STEP_FAILED,FLOW_COMPLETED,FLOW_FAILED--streamflag onneurocore runfor JSONL event outputDuration tracking per step and per flow
LLM Provider Protocol (NC-004)¶
LLMProviderruntime-checkable protocol for pluggable LLM backendsAnthropicProvider— Claude integration via anthropic SDKOpenAIProvider— GPT integration via openai SDKMockProvider— deterministic testing provider with response queuingbuild_provider()factory from config dictLLMMessageandLLMResponsedataclassesrequires_llmflag onSkillMeta— automatic provider injection during skill initllmattribute onSkillbase class
AC1 Research Skills (NC-005) — separate pip-installable packages¶
neurocore-skill-arxiv— arXiv preprint search and PDF downloadneurocore-skill-openalex— OpenAlex academic paper search with citation dataneurocore-skill-semantic-scholar— Semantic Scholar search, recommendations, citationsneurocore-skill-tavily— Tavily AI-optimized web search (search/extract/research modes)neurocore-skill-exa— Exa.ai neural semantic search for papersneurocore-skill-core-api— CORE full-text open access paper retrievalneurocore-skill-unpaywall— Unpaywall DOI-to-PDF resolver with concurrent lookupsneurocore-skill-qdrant— Qdrant vector store (search/upsert modes)neurocore-skill-grobid— GROBID PDF-to-TEI XML parserneurocore-skill-lean4— Lean4 formal proof verification with certificate generationneurocore-skill-sagemath— SageMath computation (eval/script modes)neurocore-skill-sympy— SymPy symbolic math with sandboxed evaluationneurocore-skill-oeis— OEIS integer sequence lookup
AC1 Blueprint (NC-006)¶
Reference
ac1-research.flow.yamlblueprint wiring all AC1 skills into a DAG pipelineConcurrent literature discovery (arXiv + OpenAlex + Semantic Scholar + Tavily)
Concurrent adversarial review (skeptic + alt-theory + auditor)
Full pipeline: frontier scan → literature → full text → PDF parsing → knowledge integration → reasoning → review → verification → storage
Config Schema Extensions (NC-007)¶
LLMConfigmodel for project-level LLM configurationProject-level LLM config auto-injected into skill configs when
llm_providernot set at skill levelSkill-level config overrides project-level LLM config
Updated
neurocore initscaffold template with LLM config section
Changed¶
Version bumped to 0.2.0
anthropic>=0.42added as core dependencypytest-asyncio>=0.24added to dev dependenciesopenai>=1.0available as optional dependency (pip install neurocore-ai[openai])Graph flow validation now requires both
nodesandedgesto be definedProject URLs updated to point to correct GitHub repository
[0.1.0] — 2026-02-28¶
Initial release of NeuroCore — a pluggable, YAML-driven framework for building agentic AI applications.
Added¶
Core Framework¶
Skillbase class extending FlowEngine’sBaseComponentwith declarative metadataSkillMetafrozen dataclass for skill identity, versioning, dependencies, and data contractsConfig validation against JSON Schema with type checking
Health check interface for runtime monitoring
Configuration System¶
YAML-based project configuration via
neurocore.yaml.envfile support with environment variable overlayNested env var overrides using double-underscore syntax (
NEUROCORE_LOGGING__LEVEL)Path resolution relative to project root
pydantic-settingsbacked schema with type validation
Structured Logging¶
structlogintegration with console (colored, dev) and JSON (structured, production) renderersPer-module named loggers via
get_logger("module")File output support alongside stderr
Skill Discovery¶
Directory scanning — auto-discovers
Skillsubclasses from.pyfiles inskills/Entry point scanning — loads skills from
neurocore.skillsentry point group in installed packagesUnified
SkillRegistrywith entry points taking precedence over directory-discovered skillsRegistry supports
register(),get(),list_skills(),has()
Runtime & Execution¶
Blueprint parser — loads YAML flow files with skill-aware component resolution
Blueprint validation — three-stage check (YAML parse, structure, skill references)
Config merging —
neurocore.yamlbase + blueprint overlay (blueprint wins)FlowEngine executor — resolves skill names, creates instances, builds FlowConfig, executes
load_and_run()convenience function for single-call executionCustom error hierarchy:
NeuroCoreError,ConfigError,SkillError,BlueprintError,ExecutionError
CLI¶
neurocore init <name>— scaffold new projects with templatesneurocore run <blueprint>— execute blueprints with--data,--json,--verboseoptionsneurocore skill list— Rich table of all discovered skillsneurocore skill info <name>— detailed skill metadata, config schema, and health checkneurocore validate <blueprint>— validate blueprints without executingneurocore --version— version display
NeuroWeave Integration (separate package: neurocore-skill-neuroweave)¶
NeuroWeaveSkillwrapper bridging NeuroWeave’s async API to sync FlowEngineThree operation modes:
process(extract),query(retrieve),context(both)Async-to-sync bridge via
asyncio.run()Lazy NeuroWeave initialization on first
process()callEntry point registration for automatic discovery
Documentation & Examples¶
README with quickstart, skill development guide, CLI reference, and configuration reference
echo_agentexample — minimal working project with echo and upper skillsresearch_agentexample — NeuroWeave-powered knowledge graph agent
Testing¶
265 unit and integration tests in neurocore
17 unit tests in neurocore-skill-neuroweave
pytest + pytest-cov + pytest-mock test infrastructure