Commit Graph

197 Commits

Author SHA1 Message Date
0xWheatyz 490850d7a6 docs: reorganize documentation into docs/ directory
Build and Push Docker Image / build-and-push (push) Successful in 1h1m27s
- Move CONTAINER_REGISTRY.md and DATABASE_MODE.md to docs/
- Add comprehensive DEPLOYMENT.md with full deployment instructions
- Update README.md with documentation section linking to docs/
- Keep README.md at root for GitHub visibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-12 23:51:32 -04:00
0xWheatyz d4ba13846a feat: add Streamlit visualization dashboard
Build and Push Docker Image / build-and-push (push) Has been cancelled
- Create interactive dashboard with company analysis page
- Add batch analysis with progress tracking and charts
- Include analytics page for historical data visualization
- Add system status monitoring
- Update requirements.txt with streamlit, plotly, pandas
- Document dashboard usage in README

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-12 23:28:30 -04:00
0xWheatyz 3479ba8a46 feat: add FastAPI web service wrapper
- Create REST API with endpoints for single and batch analysis
- Add async job support for long-running batch operations
- Implement job status tracking and listing endpoints
- Add 9 tests for API endpoints
- Update requirements.txt with fastapi, uvicorn, httpx
- Document API usage in README

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-12 23:26:26 -04:00
0xWheatyz 1c6d903301 feat: add multi-company batch processing
- Add CompanyAnalysisResult and BatchAnalysisResult dataclasses
- Implement analyze_companies() for concurrent batch analysis
- Implement analyze_companies_sequential() for rate-limited scenarios
- Add progress callback support for monitoring batch jobs
- Include 5 new tests for batch processing functionality
- Fix pre-existing test mock issue in test_llm.py

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-12 23:23:07 -04:00
0xWheatyz 84fd0bef32 docs: update roadmap to reflect completed Docker and database features
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-12 23:20:37 -04:00
0xWheatyz 4640106530 Merge pull request 'feat: add database mode for LLM message storage and analytics' (#1) from testing_suite/docker-compose into main
Build and Push Docker Image / build-and-push (push) Successful in 30m59s
Reviewed-on: #1
2026-03-11 01:17:40 +00:00
0xWheatyz 44456cb073 feat: add database mode for LLM message storage and analytics
Implements a database mode that stores LLM prompts and responses in PostgreSQL
instead of making API calls. This enables:
- Testing without consuming API credits
- Collecting analytics on usage patterns
- Development and debugging workflows

Changes:
- Added DatabaseClient class for PostgreSQL operations
- Modified LLMAnalyzer to support database/API mode toggle
- Added USE_DATABASE config flag to switch between modes
- Included Docker Compose setup for PostgreSQL
- Added utility scripts for database init and analytics viewing
- Comprehensive documentation in DATABASE_MODE.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-10 21:13:13 -04:00
0xWheatyz 11a4aba46f fix(dockerfile): was expecting ubuntu like syntax for user management
Build and Push Docker Image / build-and-push (push) Successful in 22m1s
2026-03-05 23:17:30 -05:00
0xWheatyz 5fab53e0a7 fix: changed dockerfile base to alpine python
Build and Push Docker Image / build-and-push (push) Failing after 31m46s
2026-03-06 03:38:27 +00:00
0xWheatyz 1067ffa35a fix: use Docker CLI with host daemon instead of buildah
Build and Push Docker Image / build-and-push (push) Has been cancelled
- buildah requires user namespaces which aren't available in containers
- Use Docker CLI with host's Docker socket (already mounted by runner)
- Keep Alpine base and optimizations (git clone, sh shell)
- Simplest solution for containerized Kubernetes runners

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-06 03:09:37 +00:00
0xWheatyz 08444b41a8 feat: replace Kaniko with buildah for container builds
Build and Push Docker Image / build-and-push (push) Failing after 1m4s
- Switch from archived Kaniko to actively maintained buildah
- Use buildah from Alpine repos (no manual binary downloads)
- Replace bash syntax with POSIX sh (case instead of [[ ]])
- buildah works better in unprivileged containerized environments
- Simpler setup: just apk add buildah, no extra configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-06 03:07:47 +00:00
0xWheatyz 7b61be1a4a fix: use sh instead of bash and replace checkout action with git
Build and Push Docker Image / build-and-push (push) Failing after 32s
- Use sh (built into Alpine) instead of bash to avoid install errors
- Replace actions/checkout@v4 with direct git clone commands
- Add ca-certificates for HTTPS support
- Faster and more reliable for lightweight Alpine containers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-06 02:58:28 +00:00
0xWheatyz 2d37b35d1f feat: switch to Kaniko for faster container builds
Build and Push Docker Image / build-and-push (push) Failing after 42s
- Replace Docker CLI with Kaniko executor for Kubernetes compatibility
- Combine build and push into single Kaniko step
- Remove Docker daemon dependency for better performance in containerized runners
- Reduce setup time with lighter dependencies (~14MB vs ~50MB+)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-06 02:50:06 +00:00
0xWheatyz 19f2de4228 feat: moved from ubuntu compilation to alpine for speed
Build and Push Docker Image / build-and-push (push) Failing after 3m22s
2026-03-06 02:22:05 +00:00
0xWheatyz 76de945acc fix(workflow): repo needed a fully localcase name for docker push
Build and Push Docker Image / build-and-push (push) Failing after 28m15s
2026-03-06 01:30:28 +00:00
0xWheatyz b63641b36c fix(docker build): missing docker push tag, now added
Build and Push Docker Image / build-and-push (push) Failing after 5s
2026-03-06 01:28:20 +00:00
0xWheatyz 1f3196b317 fix: docker login was still using local IP
Build and Push Docker Image / build-and-push (push) Failing after 1m20s
2026-03-06 01:12:48 +00:00
0xWheatyz 50adb4435c fix: changed container endpoint from local IP to
Build and Push Docker Image / build-and-push (push) Failing after 1m35s
2026-03-06 01:02:01 +00:00
0xWheatyz 7a317a0acd fix(workflow): remove docker-buildx-action for compatibility
Build and Push Docker Image / build-and-push (push) Failing after 1m23s
Remove docker/setup-buildx-action step which requires special
Docker daemon configuration. Use plain docker build commands
instead for better compatibility with Gitea Actions runner.

This simplifies the workflow and works with the standard
catthehacker/ubuntu:act-latest images that have Docker CLI
pre-installed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-04 03:23:11 +00:00
0xWheatyz 19b97f7f6d fix: secret token invaild name
Build and Push Docker Image / build-and-push (push) Failing after 11s
2026-03-04 03:20:52 +00:00
0xWheatyz ead0867f4d feat: add Gitea Actions workflow for Docker builds
Build and Push Docker Image / build-and-push (push) Failing after 1m57s
Add Gitea Actions workflow to automatically build and push Docker
images to Gitea container registry.

New files:
- .gitea/workflows/build.yaml: Automated Docker build workflow
  - Triggers on push to main, tags, and manual dispatch
  - Builds Docker image from Dockerfile
  - Tags appropriately (commit SHA, tags, latest)
  - Pushes to Gitea registry at 10.0.1.10

- CONTAINER_REGISTRY.md: Complete documentation for:
  - Enabling Gitea container registry
  - Setting up CI/CD with Gitea Actions
  - Creating and using personal access tokens
  - Pulling and pushing images
  - Troubleshooting common issues

The workflow is compatible with the existing Dockerfile and provides
automated builds similar to the GitLab CI pipeline.

Prerequisites:
- Gitea container registry enabled
- GITEA_TOKEN secret configured with write:package scope

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-04 02:59:53 +00:00
0xWheatyz c6843ac115 fix(ci): invaild syntax in ci 2026-02-22 12:45:12 -05:00
0xWheatyz 56892ebbdc feat: gitlab container 2026-02-22 12:43:32 -05:00
0xWheatyz dc7eedd902 feat: Docker integration 2026-02-22 12:30:37 -05:00
0xWheatyz a65c267687 chore: update Nix shell prompt configuration
Replace PS1 export with NIX_PROJECT_SHELL environment variable for
better integration with shell prompt configurations.

Also add trailing newline to flake.nix for proper formatting.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-22 12:27:16 -05:00
0xWheatyz a498b6f525 docs: update documentation for OpenRouter migration
Update all user-facing documentation to reflect the migration from
Anthropic API to OpenRouter.

Changes:
- Update README.md to reference OpenRouter instead of Anthropic in:
  - Features section
  - Architecture diagram comments
  - Configuration instructions
  - API key acquisition links
- Update main.py docstring to use OPENROUTER_API_KEY

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-22 12:27:06 -05:00
0xWheatyz af4114969a feat: migrate from Anthropic API to OpenRouter
Replace direct Anthropic API integration with OpenRouter to enable
more flexible LLM provider access while maintaining Claude 3.5 Sonnet.

Changes:
- Replace anthropic package with openai in requirements.txt
- Update config to use OPENROUTER_API_KEY instead of ANTHROPIC_API_KEY
- Migrate LLMAnalyzer from Anthropic client to OpenAI client with
  OpenRouter base URL (https://openrouter.ai/api/v1)
- Update model identifier to OpenRouter format: anthropic/claude-3.5-sonnet
- Convert API calls from messages.create() to chat.completions.create()
- Update response parsing to match OpenAI format
- Rename API key parameter in CompanyAnalyzer from anthropic_api_key
  to openrouter_api_key
- Update all tests to mock OpenAI client instead of Anthropic
- Fix client initialization to accept direct API key parameter

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-22 12:26:56 -05:00
0xWheatyz 8971ebc913 chore: removed extra files 2026-02-19 22:46:53 -05:00
0xWheatyz 6882e53280 tests: testing modes have been added in an attempt to tune without wasting tokens. 2026-02-19 22:46:15 -05:00
0xWheatyz b8566fc2af docs: comprehensive README update
Updated README.md with complete documentation:
- Project overview and features
- Architecture diagram
- Installation instructions (NixOS + manual)
- Configuration guide with API key setup
- Usage examples (basic + single patent)
- Testing instructions
- How it works explanation
- Updated roadmap with completed items
- Development guidelines

Makes the project immediately usable for other developers.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-19 18:57:57 -05:00
0xWheatyz a91c3badab feat: implement company performance estimation orchestration
Created CompanyAnalyzer class that orchestrates the complete pipeline:
1. Retrieves patents via SERP API
2. Downloads and parses PDFs
3. Minimizes content (removes bloat)
4. Analyzes portfolio with LLM
5. Returns performance estimation

Features:
- Full company portfolio analysis
- Single patent analysis support
- Robust error handling (continues on partial failures)
- Progress logging for user visibility

Updated main.py with clean example usage demonstrating the high-level API.

Added comprehensive test suite (7 tests) covering:
- Full pipeline integration
- Error handling at each stage
- Single patent analysis
- Edge cases (no patents, all failures)

All 26 tests passing.

This completes the core functionality for patent-based company
performance estimation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-19 18:57:10 -05:00
0xWheatyz d7cf80f02f feat: add LLM integration for patent analysis
Implemented LLMAnalyzer class using Anthropic's Claude API for:
- Single patent content analysis
- Portfolio-wide analysis across multiple patents
- Configurable API key management via environment variables

Key features:
- Uses Claude 3.5 Sonnet for high-quality analysis
- Structured prompts for innovation assessment
- Token limits optimized per use case (1024 for single, 2048 for portfolio)
- Analyzes: innovation quality, market potential, strategic direction

Updated config.py to support ANTHROPIC_API_KEY environment variable.

Added comprehensive test suite (6 tests) covering:
- Initialization from config and direct API key
- Single patent analysis
- Portfolio analysis
- Token limit validation

All 19 tests passing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-19 18:55:35 -05:00
0xWheatyz 26a23c02ae feat: add patent content minimization for LLM consumption
Implemented minimize_patent_for_llm() function that reduces patent
content by keeping only essential sections (abstract, claims, summary)
and explicitly excludes the verbose detailed description section.

This reduces token usage while preserving core innovation details
needed for company performance estimation.

Added comprehensive test coverage (5 new tests) for:
- Essential section inclusion
- Description section exclusion
- Missing section handling
- Empty section handling
- Section separator formatting

All 13 tests passing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-19 18:54:07 -05:00
0xWheatyz 6533cef56f test: add pytest framework and initial test suite
Added pytest and pytest-mock to requirements.txt for testing infrastructure.

Created tests/ directory with comprehensive test coverage for:
- Text cleaning functions (figure references, whitespace, line numbers)
- Section extraction logic (abstract, claims, case sensitivity)

All 8 tests passing. This provides a foundation for test-driven
development as we continue building the LLM integration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-19 18:52:54 -05:00
0xWheatyz 58f2bdc238 refactor: remove duplicate patent_api.py module
Removed SPARC/patent_api.py as it contained duplicate implementations
of parse_patent_pdf, extract_section, and clean_patent_text functions
that are already present in SPARC/serp_api.py as static methods.

The serp_api.py implementation is actively used in main.py, while
patent_api.py was unused legacy code.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-19 18:49:31 -05:00
0xWheatyz 607cc9e1d5 docs: updated documentation about possible not needing google patent API 2025-12-08 19:39:11 -05:00
0xWheatyz 5fa5588571 chore: removed patents 2025-12-08 19:34:14 -05:00
0xWheatyz 63a9889e5b feat: patent retrival and semi-processed 2025-12-08 19:33:02 -05:00
0xWheatyz b51f0596a3 chore: more changes to flake.nix 2025-12-06 17:41:59 -05:00
0xWheatyz 93981986d8 feat: nix flake 2025-12-06 17:33:44 -05:00
0xWheatyz 5569f20b8b refactor: dataclasses are now defined as types in types.py 2025-11-27 19:22:43 -05:00
0xWheatyz f9066279af chore: removable text 2025-11-23 23:07:38 +00:00
0xWheatyz 180a145c6c chore: added git ignore 2025-11-15 22:14:55 -05:00
0xWheatyz 7a9a2a967f fix: removed pycache from git 2025-11-15 22:14:29 -05:00
0xWheatyz 8ca435a78a chore: include local files 2025-11-15 22:13:31 -05:00
0xWheatyz 60a2b82510 docs: roadmap identified 2025-11-04 13:43:52 -05:00
0xWheatyz a2235bab28 Initial commit 2025-11-02 23:37:33 +00:00