Commit Graph

285 Commits

Author SHA1 Message Date
rob 1e698996b2 Prepare CmdForge 0.2.0 for PyPI 2026-07-21 15:19:02 -03:00
rob ca6135ac72 Correct legacy documentation guidance 2026-07-21 15:09:01 -03:00
rob af3701b10b Modernize public documentation 2026-07-21 15:03:43 -03:00
rob 2e40659328 Skip GUI tests when Qt runtime is unavailable 2026-07-21 13:02:26 -03:00
rob f8171142ee Fix provider setup without discovery 2026-07-21 13:01:54 -03:00
rob d464c79002 Document agent-first tool workflows 2026-07-21 12:58:20 -03:00
rob 64fc7339ef Harden registry release preflight 2026-07-21 12:53:38 -03:00
rob 9bedf70371 Add secure password reset email delivery 2026-07-21 12:42:05 -03:00
rob 6a88fe2e0f Add project tools and strict provider execution 2026-07-20 22:27:36 -03:00
rob c289e812fb Add coding-agent MCP bootstrap 2026-07-20 18:05:56 -03:00
rob 06a1606370 Harden agent-friendly discovery and one-shot execution 2026-07-20 17:28:44 -03:00
rob 23723eaddb Add cmdforge list --json, --filter, and run-once for LLM-friendly one-shot execution 2026-07-20 17:11:21 -03:00
rob 56cb34276e Harden M9: Ed25519 attestation, full SHA-256 integrity, locked-by-default, prompt improvements, registry verification 2026-07-20 16:50:49 -03:00
rob 04153a4bbd M9.2-M9.5: Add improvement pipeline, community workflow, transitive integrity, and supply chain attestation 2026-07-20 15:43:14 -03:00
rob bf3686ae40 M9.1: Add prompt variation generation and optimization with cmdforge optimize command 2026-07-20 15:33:24 -03:00
rob 4d22d532a3 Harden M8 trust and guidance workflows 2026-07-20 15:21:50 -03:00
rob d954c1823a M8.C/A/D1/D2: Add reuse detection, audit evidence, deprecation, registry-aware picker 2026-07-20 14:46:03 -03:00
rob bda0c76d5f M8.Q/M8.D1: Add quality scoring engine and tool deprecation fields 2026-07-20 14:37:58 -03:00
rob 501e6cd589 Add evidence-based regression and schema compatibility checks 2026-07-20 14:21:42 -03:00
rob d81286e322 M8.0/M8.V1: Add contract inference engine and deterministic conformance testing 2026-07-20 13:34:13 -03:00
rob ba29e4dc4e Harden M8 preflight foundation 2026-07-20 12:08:38 -03:00
rob 188e167c1c Fix M8 foundation: dry-run exception handling, GUI close race, registry API, contract serialization, semver parser 2026-07-20 11:46:58 -03:00
rob f6bd640865 M8.PF: Add shared PreflightReport analyzer with cmdforge inspect command 2026-07-20 03:00:36 -03:00
rob 0323a39afb M8.0: Add tool-level input_schema and output_schema contracts to Tool 2026-07-20 02:58:46 -03:00
rob 23ac54f5c8 M7 follow-up: block GUI silent overwrite, connect registry publish --dry-run to preflight endpoint 2026-07-20 02:57:38 -03:00
rob 8366ef798b Harden M7.6/7.7: recursive restriction accumulation, MCP server enforcement, fast-fail authorization 2026-07-20 02:33:44 -03:00
rob 93ea80950e Add M7.6 provider tool access control and M7.7 agent delegation for ToolStep 2026-07-20 02:08:47 -03:00
rob 8d38bdd83a Add M7.5 provider-attached skills system with Agent Skills spec compliance 2026-07-20 02:01:35 -03:00
rob fe53721725 Harden M7.3 server: typed schemas, depth tracking, fnmatch, config preservation, and collision detection 2026-07-20 01:14:04 -03:00
rob 3525e2eeae Add M7.3 CmdForge as MCP server with FastMCP, expose/deny policy, and schema mapping 2026-07-20 00:24:54 -03:00
rob dee48d8cea Add M7.2 MCP client support with McpStep, CLI commands, and stdio transport 2026-07-20 00:20:40 -03:00
rob 6908d8ee6f Modernize provider support 2026-07-19 20:58:04 -03:00
rob 15943f251c Add proof-of-concept and before/after sections to philosophy page
- Added "Proof of Concept" section showcasing Orchestrated Discussions
  as a real-world example of the composable system (21 tools, 0 deps)
- Added "Before vs After" code comparison showing traditional Python
  approach vs CmdForge pipes/composition
- Visual flow diagram showing how tools chain together in practice

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-05 21:37:06 -03:00
rob 97be7e7b2d Update homepage messaging to emphasize capabilities paradigm
- Changed hero from "Build Custom AI Commands in YAML" to
  "Ask for Capabilities. Compose Solutions."
- Added semantic search demo in hero showing registry describe
- Renamed three pillars to: Ask for Capabilities, Compose Solutions,
  Share & Discover
- Added "See It In Action" section with side-by-side demos of
  semantic search and tool composition
- Added provider-agnostic callout highlighting multi-AI support
- Updated meta description to reflect vision
- Swapped secondary CTA from Tutorials to Philosophy page

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-05 19:12:15 -03:00
rob c920bb5384 Add Mermaid diagrams to Philosophy page
- Add Mermaid.js support to base template
- Add "The System" diagram showing AI assistant flow
- Add "Composable By Design" diagram showing tool composition
- Add "Future Vision" section with networked nodes diagram
- Diagrams from ChatGPT conversation about project vision

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-05 19:05:49 -03:00
rob b673ea019c Add provider for-tools command and max_tokens support
- Add 'cmdforge providers for-tools <tool>...' to list providers used by tools
- Add --warm flag to pre-load local models (Ollama) for faster first inference
- Warm larger models first to claim contiguous GPU memory
- Skip cloud providers (claude, opencode, gemini) during warm-up
- Add max_tokens field to PromptStep for controlling output length
- Pass max_tokens to call_provider with provider-specific flags
- Add comprehensive tests for provider functionality

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 17:50:26 -03:00
rob 468a999b80 Add Philosophy page and improve documentation
- Add /philosophy page explaining the paradigm shift from libraries to capabilities
- Visual diagrams comparing traditional vs CmdForge approach (bin of circuits vs organized workshop)
- Composition flow diagram showing tools chaining together
- Link from About page and homepage
- Update CLAUDE.md with accurate field names (output_schema not structured_output)
- Add Provider Install dialog to GUI dialogs list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 17:49:59 -03:00
rob 1087b65c50 Update CLAUDE.md and AGENTS.md to reflect current codebase
- Add missing CLI subcommands (ui, docs, check, providers, deps, install, lock, verify, add, remove, init, config)
- Document new core modules (config.py, system_deps.py, dependency_graph.py, hash_utils.py)
- Update GUI structure (Welcome page, widgets/, expanded dialogs list)
- Add missing web modules (auth.py, sessions.py, email.py, seo.py)
- Add missing registry modules (categorize.py, rate_limit.py, scrutiny.py, similarity.py, stats.py, settings.py)
- Streamline AGENTS.md as quick reference that defers to CLAUDE.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-27 03:54:16 -04:00
rob 71c6358b9d Add provider fallback, visual schema builder, and UI improvements
Provider fallback system:
- Add optional fallback field to Provider dataclass
- Automatically try fallback provider when primary fails (timeout, error, offline)
- Prevent infinite loops with circular fallback detection
- Add fallback column and dropdown in providers UI

Visual schema builder for prompt steps:
- Add SchemaBuilderDialog with table-based field editor
- Support field name, type, description, and required flag
- Live JSON schema preview
- Integrate into PromptStepDialog with Edit Schema button
- Fix output_schema being lost when editing prompt steps

Other improvements:
- Add search box to tools page
- Improve schema example generation for structured output
- Update CLAUDE.md documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-21 00:50:18 -04:00
rob 8581775002 Implement structured output for prompt steps (Phase 1)
Add schema validation and retry logic for AI responses:

- Add output_schema, max_retries, plain_text fields to PromptStep
- Add DEFAULT_OUTPUT_SCHEMA with output/reasoning fields
- Implement append_schema_instructions() for prompt augmentation
- Implement validate_schema() using jsonschema library
- Add retry logic with error feedback on validation failure
- Enhance substitute_variables() for nested field access ({var.field})
- Add jsonschema to dependencies
- Update GUI dialog with plain_text checkbox and max_retries spinner
- Add comprehensive tests for structured output and nested access

Tools using plain_text=True bypass validation (current behavior).
Tools without plain_text get structured JSON output with schema enforcement.

Migration Phase 1 complete. Next: Apply plain_text=True to all 72 tools.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-17 17:34:48 -04:00
rob f980fe05f1 Add strip_fences option and fix exec() scoping for nested functions
- Add strip_fences field to PromptStep for removing markdown code fences
- Fix exec() to use same dict for globals and locals, allowing nested
  functions to access module-level imports
- Add GUI checkbox for strip_fences option
- Update CLAUDE.md with improved documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-17 16:14:45 -04:00
rob 33b807d545 Reduce backfill throttle to 0.1s to fit within gunicorn timeout
0.5s × 136 tools = 68s of sleep alone, which combined with network
time exceeded gunicorn's 120s worker timeout.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 08:17:56 -04:00
rob 5159450feb Add semantic search (RAG) for registry tool discovery
Users can now find tools by describing what they need in natural language.
Uses Ollama embeddings (nomic-embed-text) on AI-Server for vector similarity
search. Available via CLI (registry describe), GUI (AI search row), and API.

New files:
- registry/embeddings.py: core embedding logic (Ollama API, cosine similarity,
  pack/unpack vectors, backfill)
- tests/test_embeddings.py: 16 unit tests

Modified:
- registry/db.py: tool_embeddings table (schema + migration)
- registry/settings.py: embeddings.* settings (ollama_url, model, enabled, min_score)
- registry/app.py: semantic-search endpoint, publish hook, admin backfill/status
- registry_client.py: semantic_search() method with error surfacing
- gui/pages/registry_page.py: AI search row with SemanticSearchWorker
- cli/__init__.py + registry_commands.py: registry describe subcommand

Backfill required after deploy: POST /api/v1/admin/embeddings/backfill

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 01:52:27 -04:00
rob f24450c19c Fix update-readme CLI and allow admin to update any tool's README
Make tool argument optional when --all is used, add validation for
single-tool mode without tool name, and allow admin role to update
READMEs for tools owned by any publisher (e.g. official namespace).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 01:43:51 -04:00
rob e83c9c15f3 Add registry endpoint and CLI command for updating tool READMEs
- PATCH /api/v1/tools/<owner>/<name>/readme updates README without
  affecting config hash or requiring version bump
- Add RegistryClient.update_readme() method
- Add `cmdforge registry update-readme` CLI command with --all flag
  for batch updating all published tools

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 01:35:10 -04:00
rob f2cb9c0057 Add collapsible README viewer to tool details panel and owner override for publish
- Add collapsible README section to tools page detail panel with lazy loading
- README loads from disk only when user clicks the toggle bar
- Section collapses to a single header bar, expands to show content
- Add --owner flag to registry publish command for admin use
- Simplify dependency gathering in publish to use unified code path

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 01:26:56 -04:00
rob 94e33c0763 Update docs for tool ratings, reviews, and issue reporting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 03:50:28 -04:00
rob 23631ff4e7 Add Report Issue button to tool details panel
- Client: add submit_issue() method for POST /tools/{owner}/{name}/issues
- New IssueDialog with type (bug/compatibility/security), severity, title,
  and description fields with character count and validation
- Report Issue button in rating bar beside Rate Tool, visible for registry
  tools only. Submits via background SubmitIssueWorker thread.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 03:31:27 -04:00
rob a486bb6d45 Fix star rating buttons clipping text in review dialog
Increased button size from 36x36 to 40x40 and added padding: 0px so the
star glyphs render fully instead of being cut off on the sides.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 03:18:38 -04:00
rob 58e270746d Move slug fetch to background thread to prevent UI freeze
_fetch_my_slug() was making a synchronous HTTP request on the main thread
during tool selection, which froze the UI if the server was slow or
unreachable. Moved the /me call into StatusSyncWorker which already runs
in a background thread on page load. The slug is delivered via a
slug_fetched signal and the rate button re-evaluates when it arrives.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 03:11:49 -04:00