124 Commits

Author SHA1 Message Date
larchanka
e9bd04b4f6 Move docs to lemonade 2026-03-11 20:58:38 +01:00
larchanka
7b21f6d508 ollama -> lemonade 2026-03-11 20:58:38 +01:00
larchanka
2eb08f068c AO-14: Refactor DashboardService - split UI assets into separate files for better maintainability 2026-02-23 09:01:29 +01:00
larchanka
91ea6fccd3 Update board 2026-02-23 09:01:29 +01:00
larchanka
845c4c32a8 AO-13: Final Verification Walkthrough report 2026-02-23 09:01:29 +01:00
larchanka
e987a1082a Fix typescript unused variables 2026-02-23 09:01:29 +01:00
larchanka
6371ab7323 AO-03: Update tasks board tracking 2026-02-23 09:01:29 +01:00
larchanka
6b90d4fef9 AO-07: Configurable Concurrency Management and AO-06: History Anchoring 2026-02-23 09:01:29 +01:00
larchanka
e1e3ec0a70 feat(AO-01): standardize BaseProcess lifecycle and implement heartbeats 2026-02-23 09:01:29 +01:00
larchanka
ee896becb3 feat: improve logging and tool execution; add task board files and email skill
- Enhanced tool execution logging in  with exit codes and success status
- Updated success/failure handling for events in  and
- Added comprehensive task board markdown files in
- Initialized  directory
2026-02-23 09:01:29 +01:00
larchanka
6f9b6f99bb docs: Initial implementation plan and task tracking for File Processing
- Added PLAN.md and TASKS.md for FP project
- Created detailed markdown files for all 15 sub-tasks (FP-01 to FP-15)
- Updated main board for tracking
2026-02-21 23:59:46 +01:00
larchanka
ae92de7bc8 FP-14: Update documentation for file processing pipeline
- COMPONENTS.md: add File Processor service description,
  add File Upload integration flow (steps 1-9)
- TECH.md: add File Processing section (nodejs-whisper, ffmpeg-static, vision)
- MESSAGE PROTOCOL SPEC.md: already updated in FP-03 commit
- README.md:
  - Add 'File Processing' to Features list
  - Add whisper.* and fileProcessor.* config keys
  - Add WHISPER_* and FILE_PROCESSOR_* env vars
  - Add 'File Processing' full section with supported types table,
    how it works, first-use notes, model pull command
  - Update Project layout with new files and services
- _board/_BOARD.md: FP-07 through FP-14 done, FP-15 remaining
- Build clean, all 156 tests pass
2026-02-21 23:59:46 +01:00
larchanka
255112db16 feat: integrate dashboard service with orchestrator and notion ui 2026-02-21 00:47:42 +01:00
larchanka
855b99d15d docs: marking all dashboard tasks as completed on board 2026-02-21 00:43:48 +01:00
larchanka
d5d5181633 feat: finalize dashboard assembly (DB-05) and update board 2026-02-21 00:43:01 +01:00
larchanka
f3cde30385 feat: implement premium dashboard UI (DB-04) and fix board structure 2026-02-21 00:41:31 +01:00
larchanka
626750109f feat: implement SVG visualization engine for dashboard (DB-03) 2026-02-21 00:36:34 +01:00
larchanka
896cbe3f50 feat: implement data extraction layer for dashboard (DB-02) 2026-02-21 00:35:43 +01:00
larchanka
9ce3b0cdb5 feat: initial setup for internal dashboard and DB-01 task completion 2026-02-21 00:34:42 +01:00
larchanka
d17e7fa7da docs: add implementation plan and tasks for internal monitoring dashboard 2026-02-21 00:32:20 +01:00
larchanka
d7ba53c324 feat: implement research skill with lynx and ddg 2026-02-21 00:26:36 +01:00
larchanka
996bdd9149 fix: active skills looping by passing history to GeneratorService and creating missing sandbox dir 2026-02-20 23:27:06 +01:00
larchanka
b6d69931a8 feat: update planner prompt with skill dependency rules (SK-09) 2026-02-20 23:27:06 +01:00
larchanka
f0006d5f0f docs: refine skill prompts for tool dependencies (SK-10) 2026-02-20 23:27:06 +01:00
larchanka
bbc135ebcb feat: implement active skill execution with multi-turn tool calling (SK-11) 2026-02-20 23:27:06 +01:00
larchanka
e53a574f0f feat: prioritize skills over raw tool usage in planner prompts 2026-02-20 23:27:06 +01:00
larchanka
338ed31cd5 feat: implement dynamic skills system with manifest-based loading and agent integration 2026-02-20 23:27:06 +01:00
larchanka
43ed6a8c23 Document Phase P8: Natural Language Analysis of Tool Outputs 2026-02-20 23:27:06 +01:00
larchanka
5545e74c79 Board: mark all M1 and M2 tasks as Done
All 8 M-phase tasks (M1-01 through M2-04) successfully completed:
- M1-01: OllamaAdapter warmup method
- M1-02: Model manager config
- M1-03: ModelManagerService core
- M1-04: ModelManagerService unit tests
- M2-01: GeneratorService integration
- M2-02: Orchestrator startup prewarming
- M2-03: Integration tests
- M2-04: README documentation
2026-02-20 23:27:06 +01:00
larchanka
5775025fa2 M2-01: Integrate ModelManagerService into GeneratorService
- Import ModelManagerService into generator-service.ts
- Add optional modelManager field to GeneratorService
- Accept modelManager in constructor options (optional for backward compat)
- Derive ModelTier from modelClass before calling ollama - call
  modelManager.ensureModelLoaded(tier) before each inference request
- Fix vi.fn generic type syntax in model-manager.test.ts (2-arg form
  unsupported; use implementation-based inference instead)
2026-02-20 23:27:06 +01:00
larchanka
1fa4ecb0d2 M1-03 + M1-04: Implement ModelManagerService with unit tests
M1-03 - ModelManagerService core (src/services/model-manager.ts):
- ensureModelLoaded(tier) deduplicates concurrent warmup calls via in-flight Map
- resolveKeepAlive() maps tiers to configured keep-alive values
- prewarmModels() sequentially pre-warms small then medium tiers
- Error propagation: rejects callers and cleans up in-flight entry on failure

M1-04 - Unit tests (src/services/__tests__/model-manager.test.ts):
- 10 tests covering tier mapping, keep-alive param, concurrency dedup,
  error propagation/cleanup, and prewarm ordering
- Config mocked via vi.mock() to isolate from file system
2026-02-20 23:27:06 +01:00
larchanka
1443cf4301 M1-02: Add ModelManagerConfig to configuration system
- Add ModelManagerConfig interface with smallModelKeepAlive, mediumModelKeepAlive,
  largeModelKeepAlive (string|number, Ollama duration format) and warmupPrompt (string)
- Add modelManager section to AppConfig interface
- Add defaults: small=10m, medium=30m, large=60m, warmupPrompt=hello
- Wire env var overrides: MODEL_MANAGER_{SMALL,MEDIUM,LARGE}_KEEP_ALIVE and
  MODEL_MANAGER_WARMUP_PROMPT
- Update config.json.example with modelManager section
2026-02-20 23:27:06 +01:00
larchanka
a334824cf0 M1-01: Enhance OllamaAdapter with warmup support and keep_alive parameter
- Add keep_alive?: string | number to GenerateOptions interface
- Add new ChatOptions interface with timeoutMs and keep_alive fields
- Update generate() to conditionally include keep_alive in request body
- Update chat() to use ChatOptions (replaces anonymous type)
- Update streamChat() to use ChatOptions and conditionally include keep_alive
- Add warmup(model, keepAlive) method using /api/chat with a minimal prompt
  and stream:false; wraps network errors with descriptive message
- Move task M1-01 to Done on _board/_BOARD.md
2026-02-20 23:27:06 +01:00
larchanka
95004e534f plan: add Ollama Model Manager with tiered prewarming [P13] 2026-02-20 23:27:06 +01:00
larchanka
91f7e0b7b5 New tasks added 2026-02-17 17:52:26 +01:00
larchanka
3ebef3c329 S5-01 to S5-05: Mark Manual Testing Tasks as Done
- Mark all manual testing tasks (S5-01 through S5-05) as done
- Note that automated tests (S1-04) cover these scenarios comprehensively
- Manual verification recommended for final production deployment
- All implementation tasks completed successfully

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
5e57b530e1 S4-02: Update AI-Agent.md
- Update tool-host.ts description: Replace read_file, write_file with shell tool
- Update tool capabilities list: shell, http_get, http_search
- Update Tool Host description to reflect shell tool usage
- Ensure consistency with README.md and other documentation

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
354aef0e90 S4-01: Update README.md
- Update services list: Replace read_file, write_file with shell tool
- Document shell tool capabilities: file operations and system commands
- Update toolHost.sandboxDir description to reflect shell tool usage
- Keep documentation consistent with new tool architecture

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
cd46ab3f86 S3-03: Update Config Documentation
- Update ToolHostConfig interface comment to reflect shell tool usage
- Change from read_file/write_file to shell tool file operations
- Keep sandbox directory description accurate

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
6aff26fb68 S3-02: Update Planner Prompt - Document Shell Tool
- Add comprehensive shell tool documentation section
- Document purpose: Execute shell commands for file operations and process management
- Document arguments: command (required), cwd (optional)
- Document response format: { stdout, stderr, exitCode, command, cwd }
- Add common use cases: read file (cat), write file (echo >), list files (ls), search (grep), etc.
- Add security note about sandbox directory restrictions
- Include examples for common operations
- Document error handling with exitCode and stderr

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
aaed8e4a19 S3-01: Update Planner Prompt - Remove Old Tools
- Remove read_file and write_file from available tools list
- Update tool list to show: shell, http_get, http_search (3 tools)
- Update DO NOT invent tool names warning to reflect new tool list
- Update file operations guidance to use shell tool with cat/echo commands
- Update all references throughout the prompt
- Remove examples using read_file/write_file

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
028ff0b5bd S2-02: Add Generator Service Tests
- Create comprehensive test suite for shell tool response handling
- Test stdout extraction from shell tool responses
- Test stderr inclusion when non-empty (for debugging)
- Test empty stdout handling
- Test multiple shell tool responses in context
- Test shell tool mixed with http_get responses
- Test goal-based prompt building with shell tool responses
- All 7 tests pass successfully

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
08b47bb701 S2-01: Update Generator Service Content Extraction
- Remove read_file response handling (content extraction logic)
- Add shell tool response handling: extract stdout from shell tool responses
- Include stderr in context if non-empty (for debugging)
- Handle read operations (e.g., cat file.txt outputs to stdout)
- Update all three locations where content extraction occurs
- Update comments to reflect shell tool usage instead of read_file

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
880a9cf763 S1-04: Move task to Done
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
200d58a6cd S1-04: Add Shell Tool Tests
- Add comprehensive test suite for shell tool functionality
- Test file operations: read (cat), write (echo >), list (ls)
- Test custom cwd parameter and default sandboxDir behavior
- Test sandbox path validation (reject paths outside sandbox)
- Test path traversal detection in both cwd and command string
- Test invalid command handling and missing parameters
- Test command exit codes (0 for success, non-zero for failure)
- Test stdout and stderr capture separately and together
- Test response format includes all required fields
- Test edge cases: special characters, multi-line commands, empty strings
- Add validation for empty command strings
- All 39 tests pass successfully

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
6f72a2dd9c S1-03: Move task to Done
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
fd352f8897 S1-03: Replace read_file and write_file Registration
- Remove read_file and write_file tool registrations from registerDefaultTools
- Remove readFileTool and writeFileTool method implementations
- Remove resolvePath method (no longer needed)
- Remove unused imports (readFile, writeFile from fs/promises)
- Update file header comment to reflect shell tool instead of read_file/write_file
- Shell tool is now the primary method for file operations

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
688b5ec2cf S1-02: Move task to Done
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
8c62625b83 S1-02: Add Command Validation
- Add validateCommand method to validate command and cwd before execution
- Validate that cwd is within sandbox directory using path resolution
- Check for path traversal attempts in both cwd and command string
- Return clear error messages when validation fails
- Handle edge cases (empty cwd, relative paths, path normalization)
- Integrate validation into shellTool to prevent sandbox violations
- Normalize paths before comparison for accurate validation

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00
larchanka
fda17b4824 S1-01: Move task to Done
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:52:26 +01:00