All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Special thanks to Luca Visciola for the original work and ongoing vision.
- Image Generation Capability: Introduced
OllamaImageRenderer.phpto leverage local image generation models, enabling coherent visual rendering. - Rendering Workflow: Introduced a streamlined image rendering workflow, allowing manifest generation and subsequent image creation in interactive sessions.
- Cartoon Universe Blueprint: Introduced the
@packages/cartoon_universecognitive environment, a blueprint package demonstrating INTENTIO's ability to deliver coherent and consistent visual rendering in a fun, cartoon style.
- "Refine" Interaction: Eliminated the 'refine' option from interactive manifest processing (including removal from manifest files) to enhance stability and ensure predictable LLM behavior.
- Interactive Context Management: Implemented forced prompt re-selection after every LLM response within interactive sessions, ensuring a clean operational context for subsequent queries and preventing unintended LLM state accumulation.
- System Status Command: Re-introduced
statuscommand (./intentio status) to display comprehensive system, configuration, and Ollama server/model information for enhanced inspectability.
- Architectural Overhaul (CLI-First, Domain-Driven Refactor):
- Complete refactoring to a layered, domain-driven architecture (
Application,Domain,Infrastructure,Shared). - Introduction of explicit
SpaceandBlueprintdomain objects, managed by dedicated repositories and factories. - Centralization of core cognitive logic within a
CognitiveEngineorchestratingIngestionService,RetrievalService, andPromptResolver. - Transition from procedural bootstrapping and static helper classes to dependency injection and formal interfaces for core services.
- Flexible Configuration: Replaced
config.phpwithconfig/app.phpand support forconfig/app.local.phpoverrides, and updatedintentioexecutable to load config fromconfig/app.php. - Enhanced CLI Commands:
InteractCommandnow features dynamic space/prompt selection, manifest-driven configuration, and automatic ingestion. - Flexible Cognitive Space Structure: Moved from fixed subdirectories (e.g.,
reference/,memory/) to a flexibleknowledge/root where users define subfolders, whileprompts/remains fixed. - Ollama Integration:
LocalEmbeddingAdapterandOllamaAdapternow directly interact with Ollama API for embeddings and LLM generation, using configurable models and API paths. - Vector Storage: Implemented
SQLiteVectorStoreto manage space-specific vector indexes. - Updated
README.mdto reflect all architectural changes, new command usages, and the flexible cognitive space structure.
- Complete refactoring to a layered, domain-driven architecture (
- Legacy Codebase: Eliminated old
src/directories (Command, Cli, Embedding, Ingestion, Knowledge, Orchestration, Package, Storage) and their contents, along with outdated procedural patterns, global state, and direct filesystem dependencies from core logic.
- Syntax Errors: Resolved parser errors caused by incorrect namespace separators.
- Typo in 'switch_prompt': Corrected handling of 'switch_prompt' in interactive mode.
- Multi-Platform Enhancements (
hook_analyzer):- Introduced platform-specific knowledge assets (e.g.,
platform_specs.md,viral_patterns.md) for platforms like LinkedIn and Instagram. - Added
platform_adapter.mdgenerator blueprint for platform-aware analysis. - New
multi_platform_report.mdprompt for generating comprehensive, platform-tailored hook reports.
- Introduced platform-specific knowledge assets (e.g.,
- ASCII Welcome
- Removed ASCII welcome.
- Replaced with simple text welcome message in
InitCommand.php. - Simplifies code and improves readability.
- Enhances user experience with cleaner output.
- New Package –
exam_prep:- Added Second Brain Exam Prep (
version: 0.1) underpackages/exam_prep. - Enables cross-disciplinary exam generation across Biology, Physics, and Chemistry.
- Includes recommended generators:
exam_generator,connection_analyst. - Default prompt set to
tutor.
- Added Second Brain Exam Prep (
- Prompt Instructions: Implemented support for
instructionmetadata in YAML front matter of prompt.mdfiles, providing guided input for interactive mode. - Comprehensive Report Prompt: Added
report.mdprompt topackages/hook_analyzer, enabling multi-step analysis and improvement suggestions in a single command. - CLI Color Output: Integrated color support into
Output.phpand across all core CLI commands (InitCommand,IngestCommand,ChatCommand,InteractCommand,ClearCommand,StatusCommand,Help) for improved readability and user feedback.
- Package-Centric Prompts: Reworked prompt resolution to exclusively load templates from the active package's
prompts/directory, removing global prompt fallbacks. README.md: Significantly updated to reflect the newspaces/directory, package-centric prompt architecture,config.example.phpsetup, and the guided interactive experience.packages/hook_analyzer/README.md: Updated to document the newreportprompt and reflect thespaces/directory rename.packages/hook_analyzer/prompts/*.md: All prompts in thehook_analyzerpackage (analyze_hook,compare_hooks,default,improve_hook,report) updated withinstructionfront matter.config.example.php:- Renamed
knowledge_base_pathtospaces_base_path. - Removed
prompt_templates_path. - Removed
active_packageconfiguration entry.
- Renamed
InitCommand.php:- Constructor now receives
configarray. getPackages()method usesspaces_base_pathfrom config.- Removed logic for updating
active_packageinconfig.php.
- Constructor now receives
Prompt.php:- Refactored to be immutable (
readonlyproperties). - Introduced
Prompt::fromTemplateFile()static factory method for loading and parsing prompt files, handling front matter.
- Refactored to be immutable (
InteractCommand.php:- Updated UI/state to default to no template selected.
- Removed "show global prompts" option from menu.
- Logic added to display
instructionfor selected template. chat()method now validates template selection before execution.- Updated output calls to use new color methods.
Space.php:scan()method now exclusively targets theknowledge/subdirectory within a cognitive space for ingestion.NomicEmbedder.php: Added robust defensive checks forollamaConfigkeys (base_url,api_path_embeddings) and URL scheme validation.- Codebase References: Updated all references from
knowledge/tospaces/(e.g., insrc/Kernel.php,src/Command/InteractCommand.php,src/Cli/Help.php). - Docblocks & Help Messages: Updated terminology from "knowledge space" to "cognitive space" for consistency.
- Root
prompts/directory: All global prompt templates were removed in favor of package-specific prompts. active_packageconfig entry: Removed as it no longer aligns with the explicit state management.prompt_templates_pathconfig entry: Removed as global prompts are no longer supported.
InitCommandVariable Scope: ResolvedUndefined variable $chosenPackageerror inInitCommand::initPackage().InitCommandDuplicate Success Message: Fixedinitcommand printing package initialization success message twice.Package::getDestinationPath(): Implemented missinggetDestinationPath()method inPackageclass andPackageInterface.InteractCommandInstruction Display: Resolved bug preventing promptinstructionfrom displaying due toreadonlyproperty issue.IngestCommandPath Handling: Addressedstr_starts_with(false, ...)error by clarifying expected--spacepath (user error) and adding robust checks inNomicEmbedder.
- Directory Rename: The root
knowledge/directory has been renamed tospaces/. Users must update their local directory structure and any scripts referencing the old path. - Prompt Location: Global prompt templates are no longer supported. All prompts must now reside within a
prompts/subdirectory inside their respective cognitive space (e.g.,spaces/my-space/prompts/). - Configuration Variable Renames:
knowledge_base_pathinconfig.phphas been renamed tospaces_base_path.prompt_templates_pathinconfig.phphas been removed.active_packageinconfig.phphas been removed. Users must update theirconfig.phpaccordingly.
- Command Usage: Commands (e.g.,
chat,ingest,clear) relying on--spacenow require the full path, including thespaces/base directory (e.g.,--space=spaces/my_private_notes).