Rename project from SmartTools to CmdForge

Major rename operation:
- Rename Python package: smarttools -> cmdforge
- Update CLI entry point: smarttools -> cmdforge
- Update all imports and module references
- Update pyproject.toml with new name, URLs, entry point
- Update all HTML templates with new branding
- Update documentation (CLAUDE.md, README.md, docs/*, wiki/*)
- Update environment variables:
  - SMARTTOOLS_ENV -> CMDFORGE_ENV
  - SMARTTOOLS_REGISTRY_DB -> CMDFORGE_REGISTRY_DB
  - SMARTTOOLS_TOKEN -> CMDFORGE_TOKEN
  - SMARTTOOLS_REGISTRY_* -> CMDFORGE_REGISTRY_*
- Update Dockerfile and docker-compose.yml
- Update tests to use new package name
- Update scripts and examples
- Update package.json and tailwind.config.js

All 158 unit tests pass. The CLI is working correctly with the
new cmdforge command.

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

Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
rob
2026-01-02 22:15:55 -04:00
co-authored by Claude Opus 4.5
parent 2939dd806b
commit 497fe87fc5
113 changed files with 822 additions and 822 deletions
+7 -7
View File
@@ -1,10 +1,10 @@
"""Integration tests for SmartTools Registry.
"""Integration tests for CmdForge Registry.
These tests verify the CLI and server work together correctly.
Run with: pytest tests/test_registry_integration.py -v
Note: These tests require the registry server to be running locally:
python -m smarttools.registry.app
python -m cmdforge.registry.app
"""
import json
@@ -18,17 +18,17 @@ import pytest
import yaml
# Test without requiring server for unit tests
from smarttools.config import Config, RegistryConfig, load_config, save_config
from smarttools.manifest import (
from cmdforge.config import Config, RegistryConfig, load_config, save_config
from cmdforge.manifest import (
Manifest, Dependency, ToolOverride,
load_manifest, save_manifest, create_manifest,
parse_version_constraint
)
from smarttools.resolver import (
from cmdforge.resolver import (
ToolSpec, ToolResolver, ResolvedTool,
resolve_tool, find_tool, list_installed_tools
)
from smarttools.registry_client import (
from cmdforge.registry_client import (
RegistryClient, RegistryError, PaginatedResponse,
ToolInfo, DownloadResult
)
@@ -238,7 +238,7 @@ class TestToolResolver:
def test_deterministic_owner_order(self, tmp_path):
"""Test that official namespace is preferred over others."""
# Create fake tool directories
tools_dir = tmp_path / ".smarttools"
tools_dir = tmp_path / ".cmdforge"
# Create alice/mytool
alice_tool = tools_dir / "alice" / "mytool"