Update olddocs to reflect current implementation state
- REGISTRY.md: Mark phases 1-4, 6-8 complete; phase 5 partial - WEB_UI.md: Update Phase 7 checklist with completion status - DESIGN.md: Note TUI replaced by PySide6 GUI, update structure - PROJECT.md: Update source structure and database schema - PROVIDERS.md, META_TOOLS.md, COLLECTIONS.md: Add status notes - Add "Features Implemented Beyond Original Design" sections Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
+43
-23
@@ -1,5 +1,9 @@
|
||||
# CmdForge Project Overview
|
||||
|
||||
> **Document Status (January 2026)**: This overview is mostly accurate but the source structure
|
||||
> section is outdated. The TUI has been replaced by a PySide6 GUI. Database now has 25+ tables.
|
||||
> For current architecture, see `src/cmdforge/` directly.
|
||||
|
||||
This document provides a comprehensive overview of the CmdForge project structure, components, and how everything fits together.
|
||||
|
||||
## What is CmdForge?
|
||||
@@ -32,52 +36,68 @@ See `docs/diagrams/` for visual representations:
|
||||
|
||||
```
|
||||
src/cmdforge/
|
||||
├── cli.py # Entry point, subcommand routing
|
||||
├── cli/ # CLI commands
|
||||
│ ├── __init__.py # Entry point, subcommand routing
|
||||
│ └── registry_commands.py # Registry CLI commands
|
||||
├── tool.py # Tool dataclasses, YAML loading
|
||||
├── runner.py # Step execution engine
|
||||
├── providers.py # AI provider abstraction
|
||||
├── profiles.py # AI persona profiles
|
||||
├── config.py # Global configuration
|
||||
├── manifest.py # Tool manifest handling
|
||||
│
|
||||
├── gui/ # PySide6 Desktop GUI (primary UI)
|
||||
│ ├── main_window.py # Main application window
|
||||
│ ├── pages/ # Tools, Registry, Providers, Profiles pages
|
||||
│ ├── dialogs/ # Step editors, Publish, Connect dialogs
|
||||
│ └── workers/ # Background threads for API calls
|
||||
│
|
||||
├── registry/ # Registry API Server
|
||||
│ ├── app.py # Flask API application
|
||||
│ ├── db.py # Database operations, FTS5 search
|
||||
│ ├── app.py # Flask API with 100+ endpoints
|
||||
│ ├── db.py # Database operations, FTS5 search (25+ tables)
|
||||
│ ├── rate_limit.py # API rate limiting
|
||||
│ ├── sync.py # Git sync for tool submissions
|
||||
│ ├── categorize.py # Auto-categorization
|
||||
│ └── similarity.py # Similar tool recommendations
|
||||
│ ├── scrutiny.py # Automated code analysis
|
||||
│ ├── similarity.py # Duplicate detection
|
||||
│ └── sync.py # Git sync for tool submissions
|
||||
│
|
||||
├── web/ # Web UI Application
|
||||
│ ├── app.py # Flask web app, Sentry integration
|
||||
│ ├── app.py # Flask web app
|
||||
│ ├── routes.py # Page routes and handlers
|
||||
│ ├── auth.py # Password hashing, login/register
|
||||
│ ├── sessions.py # Session management
|
||||
│ ├── docs_content.py # Documentation text content
|
||||
│ ├── seo.py # Sitemap, robots.txt
|
||||
│ ├── filters.py # Jinja template filters
|
||||
│ ├── forum/ # Forum blueprint
|
||||
│ ├── templates/ # Jinja HTML templates
|
||||
│ └── static/ # CSS, JS, images
|
||||
│ └── static/ # CSS (Tailwind), JS, images
|
||||
│
|
||||
├── registry_client.py # CLI client for registry API
|
||||
├── resolver.py # Dependency resolution
|
||||
│
|
||||
├── ui.py # TUI dispatcher
|
||||
├── ui_urwid.py # urwid TUI implementation
|
||||
└── ui_snack.py # newt/snack TUI fallback
|
||||
└── registry_client.py # CLI client for registry API
|
||||
```
|
||||
|
||||
## Database Schema
|
||||
|
||||
SQLite database at `data/cmdforge.db`:
|
||||
SQLite database at `~/.cmdforge/registry.db` (or via `CMDFORGE_REGISTRY_DB` env var):
|
||||
|
||||
| Table | Purpose |
|
||||
|-------|---------|
|
||||
| `publishers` | User accounts (username, email, password_hash) |
|
||||
| `tools` | Published tools (name, owner, description, config) |
|
||||
| `publishers` | User accounts with roles, banning, verification |
|
||||
| `tools` | Published tools with moderation status, fork tracking |
|
||||
| `api_tokens` | Authentication tokens for API access |
|
||||
| `download_stats` | Tool download tracking |
|
||||
| `pageviews` | Analytics for tool detail pages |
|
||||
| `download_stats` | Tool download tracking by date |
|
||||
| `reviews` | Tool reviews with 1-5 star ratings |
|
||||
| `review_votes` | Helpful/unhelpful votes on reviews |
|
||||
| `tool_issues` | Bug, security, compatibility issue reports |
|
||||
| `collections` | Curated tool groups |
|
||||
| `announcements` | Admin announcements |
|
||||
| `featured_tools` | Featured tool placement |
|
||||
| `featured_contributors` | Featured publisher placement |
|
||||
| `reports` | Abuse reports for moderation |
|
||||
| `audit_log` | Admin action audit trail |
|
||||
| `pairing_requests` | App pairing flow |
|
||||
| `web_sessions` | Session storage |
|
||||
| `consents` | User consent for analytics/ads |
|
||||
| `pageviews` | Analytics tracking |
|
||||
| `tools_fts` | Full-text search index (FTS5) |
|
||||
| `tool_stats` | Cached tool statistics |
|
||||
| `publisher_stats` | Cached publisher statistics |
|
||||
| `registry_settings` | Runtime-configurable settings |
|
||||
|
||||
## API Endpoints
|
||||
|
||||
|
||||
Reference in New Issue
Block a user