From 05dbd67f36978abb333332a012166c3a6b97a970 Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Wed, 21 Jan 2026 18:53:57 +0530 Subject: [PATCH] doc changes --- docforge/cli/commands.py | 35 +++++- docforge/cli/main.py | 3 +- docforge/cli/mcp_utils.py | 10 +- docforge/cli/mkdocs_utils.py | 18 ++++ docforge/renderers/mcp_renderer.py | 22 +++- mcp_docs/modules/docforge.cli.commands.json | 46 +++++--- mcp_docs/modules/docforge.cli.json | 82 ++++++++------ mcp_docs/modules/docforge.cli.main.json | 8 +- mcp_docs/modules/docforge.cli.mcp_utils.json | 10 +- .../modules/docforge.cli.mkdocs_utils.json | 16 +-- mcp_docs/modules/docforge.json | 100 ++++++++++-------- mcp_docs/modules/docforge.renderers.json | 8 +- .../docforge.renderers.mcp_renderer.json | 6 +- 13 files changed, 242 insertions(+), 122 deletions(-) diff --git a/docforge/cli/commands.py b/docforge/cli/commands.py index 6cb7975..9937cfd 100644 --- a/docforge/cli/commands.py +++ b/docforge/cli/commands.py @@ -43,6 +43,23 @@ def build( ) -> None: """ Build documentation (MkDocs site or MCP resources). + + This command orchestrates the full build process: + 1. Introspects the code (Griffe) + 2. Renders sources (MkDocs Markdown or MCP JSON) + 3. (MkDocs only) Generates config and runs the final site build. + + Args: + mcp: Use the MCP documentation builder. + mkdocs: Use the MkDocs documentation builder. + module: The dotted path of the module to document. + project_name: Optional override for the project name. + site_name: (MkDocs) The site display name. Defaults to module name. + docs_dir: (MkDocs) Target directory for Markdown sources. + nav_file: (MkDocs) Path to the docforge.nav.yml specification. + template: (MkDocs) Optional custom mkdocs.yml template. + mkdocs_yml: (MkDocs) Target path for the generated mkdocs.yml. + out_dir: (MCP) Target directory for MCP JSON resources. """ if not mcp and not mkdocs: raise click.UsageError("Must specify either --mcp or --mkdocs") @@ -84,7 +101,13 @@ def serve( out_dir: Path, ) -> None: """ - Serve documentation. + Serve documentation (MkDocs or MCP). + + Args: + mcp: Serve MCP resources via an MCP server. + mkdocs: Serve the MkDocs site using the built-in development server. + mkdocs_yml: (MkDocs) Path to the mkdocs.yml configuration. + out_dir: (MCP) Path to the mcp_docs/ directory. """ if mcp and mkdocs: raise click.UsageError("Cannot specify both --mcp and --mkdocs") @@ -113,7 +136,11 @@ def tree( project_name: Optional[str], ) -> None: """ - Visualize the project structure. + Visualize the project structure in the terminal. + + Args: + modules: List of module import paths to recursively introspect. + project_name: Optional override for the project name shown at the root. """ loader = GriffeLoader() project = loader.load_project(list(modules), project_name) @@ -129,6 +156,10 @@ def tree( def _print_object(obj, indent: str) -> None: """ Recursive helper to print doc objects and their members to the console. + + Args: + obj: The DocObject instance to print. + indent: Current line indentation (e.g., '│ '). """ click.echo(f"{indent}├── {obj.name}") for member in obj.get_all_members(): diff --git a/docforge/cli/main.py b/docforge/cli/main.py index b6f7d78..70c7051 100644 --- a/docforge/cli/main.py +++ b/docforge/cli/main.py @@ -1,5 +1,6 @@ """ -Main entry point for the doc-forge CLI. +Main entry point for the doc-forge CLI. This module delegates all command +execution to docforge.cli.commands. """ from docforge.cli.commands import cli diff --git a/docforge/cli/mcp_utils.py b/docforge/cli/mcp_utils.py index 09c2477..1838adc 100644 --- a/docforge/cli/mcp_utils.py +++ b/docforge/cli/mcp_utils.py @@ -7,6 +7,11 @@ from docforge.servers import MCPServer def generate_resources(module: str, project_name: str | None, out_dir: Path) -> None: """ Generate MCP-compatible documentation resources. + + Args: + module: The dotted path of the primary module to document. + project_name: Optional override for the project name. + out_dir: Directory where the MCP JSON resources and nav will be written. """ loader = GriffeLoader() discovered_paths = discover_module_paths(module) @@ -17,7 +22,10 @@ def generate_resources(module: str, project_name: str | None, out_dir: Path) -> def serve(mcp_root: Path) -> None: """ - Serve MCP documentation. + Serve MCP documentation from a pre-built bundle. + + Args: + mcp_root: Path to the directory containing index.json, nav.json, and modules/. """ if not mcp_root.exists(): raise click.ClickException(f"mcp_docs directory not found: {mcp_root}") diff --git a/docforge/cli/mkdocs_utils.py b/docforge/cli/mkdocs_utils.py index 2fcc636..5f9f68e 100644 --- a/docforge/cli/mkdocs_utils.py +++ b/docforge/cli/mkdocs_utils.py @@ -9,6 +9,11 @@ from docforge.nav import load_nav_spec, resolve_nav, MkDocsNavEmitter def generate_sources(module: str, project_name: str | None, docs_dir: Path) -> None: """ Generate Markdown source files for the specified module. + + Args: + module: The dotted path of the primary module to document. + project_name: Optional override for the project name. + docs_dir: Directory where the generated Markdown files will be written. """ loader = GriffeLoader() discovered_paths = discover_module_paths(module) @@ -20,6 +25,13 @@ def generate_sources(module: str, project_name: str | None, docs_dir: Path) -> N def generate_config(docs_dir: Path, nav_file: Path, template: Path | None, out: Path, site_name: str) -> None: """ Generate an mkdocs.yml configuration file. + + Args: + docs_dir: Path to the directory containing documentation Markdown files. + nav_file: Path to the docforge.nav.yml specification. + template: Optional path to an mkdocs.yml template (overrides built-in). + out: Path where the final mkdocs.yml will be written. + site_name: The display name for the documentation site. """ if not nav_file.exists(): raise click.FileError(str(nav_file), hint="Nav spec not found") @@ -49,6 +61,9 @@ def generate_config(docs_dir: Path, nav_file: Path, template: Path | None, out: def build(mkdocs_yml: Path) -> None: """ Build the documentation site using MkDocs. + + Args: + mkdocs_yml: Path to the mkdocs.yml configuration file. """ if not mkdocs_yml.exists(): raise click.ClickException(f"mkdocs.yml not found: {mkdocs_yml}") @@ -61,6 +76,9 @@ def build(mkdocs_yml: Path) -> None: def serve(mkdocs_yml: Path) -> None: """ Serve the documentation site with live-reload using MkDocs. + + Args: + mkdocs_yml: Path to the mkdocs.yml configuration file. """ if not mkdocs_yml.exists(): raise click.ClickException(f"mkdocs.yml not found: {mkdocs_yml}") diff --git a/docforge/renderers/mcp_renderer.py b/docforge/renderers/mcp_renderer.py index 197ddba..58ca317 100644 --- a/docforge/renderers/mcp_renderer.py +++ b/docforge/renderers/mcp_renderer.py @@ -15,6 +15,10 @@ class MCPRenderer: def generate_sources(self, project: Project, out_dir: Path) -> None: """ Generate MCP-compatible JSON resources and navigation for the project. + + Args: + project: The project model to render. + out_dir: Target directory for the generated JSON files. """ modules_dir = out_dir / "modules" modules_dir.mkdir(parents=True, exist_ok=True) @@ -50,7 +54,11 @@ class MCPRenderer: def _write_module(self, module: Module, modules_dir: Path) -> None: """ - Serialize a module into an MCP JSON resource. + Serialize a module into an MCP JSON resource on disk. + + Args: + module: The module instance to serialize. + modules_dir: The directory where the module JSON file should be written. """ payload = { "module": module.path, @@ -64,6 +72,12 @@ class MCPRenderer: def _render_module(self, module: Module) -> Dict: """ Render a Module into MCP-friendly structured data. + + Args: + module: The module instance to render. + + Returns: + A dictionary following the MCP documentation resource schema. """ data: Dict = { "path": module.path, @@ -79,6 +93,12 @@ class MCPRenderer: def _render_object(self, obj: DocObject) -> Dict: """ Recursively render a DocObject into structured MCP data. + + Args: + obj: The documented object (class, func, etc.) to render. + + Returns: + A dictionary representing the object and its members. """ data: Dict = { "name": obj.name, diff --git a/mcp_docs/modules/docforge.cli.commands.json b/mcp_docs/modules/docforge.cli.commands.json index 3df039b..3bf3e1e 100644 --- a/mcp_docs/modules/docforge.cli.commands.json +++ b/mcp_docs/modules/docforge.cli.commands.json @@ -178,28 +178,28 @@ "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.generate_sources", "signature": "", - "docstring": "Generate Markdown source files for the specified module." + "docstring": "Generate Markdown source files for the specified module.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n docs_dir: Directory where the generated Markdown files will be written." }, "generate_config": { "name": "generate_config", "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.generate_config", "signature": "", - "docstring": "Generate an mkdocs.yml configuration file." + "docstring": "Generate an mkdocs.yml configuration file.\n\nArgs:\n docs_dir: Path to the directory containing documentation Markdown files.\n nav_file: Path to the docforge.nav.yml specification.\n template: Optional path to an mkdocs.yml template (overrides built-in).\n out: Path where the final mkdocs.yml will be written.\n site_name: The display name for the documentation site." }, "build": { "name": "build", "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.build", "signature": "", - "docstring": "Build the documentation site using MkDocs." + "docstring": "Build the documentation site using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.serve", "signature": "", - "docstring": "Serve the documentation site with live-reload using MkDocs." + "docstring": "Serve the documentation site with live-reload using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." } } }, @@ -273,7 +273,7 @@ "kind": "function", "path": "docforge.cli.commands.mcp_utils.MCPRenderer.generate_sources", "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } }, @@ -312,44 +312,58 @@ "kind": "function", "path": "docforge.cli.commands.mcp_utils.generate_resources", "signature": "", - "docstring": "Generate MCP-compatible documentation resources." + "docstring": "Generate MCP-compatible documentation resources.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n out_dir: Directory where the MCP JSON resources and nav will be written." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.commands.mcp_utils.serve", "signature": "", - "docstring": "Serve MCP documentation." + "docstring": "Serve MCP documentation from a pre-built bundle.\n\nArgs:\n mcp_root: Path to the directory containing index.json, nav.json, and modules/." } } }, "cli": { "name": "cli", - "kind": "function", + "kind": "attribute", "path": "docforge.cli.commands.cli", - "signature": "", - "docstring": "doc-forge CLI: A tool for introspecting Python projects and generating\ndocumentation." + "signature": null, + "docstring": null }, "build": { "name": "build", "kind": "function", "path": "docforge.cli.commands.build", - "signature": "", - "docstring": "Build documentation (MkDocs site or MCP resources)." + "signature": "", + "docstring": "Build documentation (MkDocs site or MCP resources).\n\nThis command orchestrates the full build process:\n1. Introspects the code (Griffe)\n2. Renders sources (MkDocs Markdown or MCP JSON)\n3. (MkDocs only) Generates config and runs the final site build.\n\nArgs:\n mcp: Use the MCP documentation builder.\n mkdocs: Use the MkDocs documentation builder.\n module: The dotted path of the module to document.\n project_name: Optional override for the project name.\n site_name: (MkDocs) The site display name. Defaults to module name.\n docs_dir: (MkDocs) Target directory for Markdown sources.\n nav_file: (MkDocs) Path to the docforge.nav.yml specification.\n template: (MkDocs) Optional custom mkdocs.yml template.\n mkdocs_yml: (MkDocs) Target path for the generated mkdocs.yml.\n out_dir: (MCP) Target directory for MCP JSON resources." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.commands.serve", - "signature": "", - "docstring": "Serve documentation." + "signature": "", + "docstring": "Serve documentation (MkDocs or MCP).\n\nArgs:\n mcp: Serve MCP resources via an MCP server.\n mkdocs: Serve the MkDocs site using the built-in development server.\n mkdocs_yml: (MkDocs) Path to the mkdocs.yml configuration.\n out_dir: (MCP) Path to the mcp_docs/ directory." }, "tree": { "name": "tree", "kind": "function", "path": "docforge.cli.commands.tree", - "signature": "", - "docstring": "Visualize the project structure." + "signature": "", + "docstring": "Visualize the project structure in the terminal.\n\nArgs:\n modules: List of module import paths to recursively introspect.\n project_name: Optional override for the project name shown at the root." + }, + "Group": { + "name": "Group", + "kind": "alias", + "path": "docforge.cli.commands.Group", + "signature": "", + "docstring": null + }, + "Any": { + "name": "Any", + "kind": "alias", + "path": "docforge.cli.commands.Any", + "signature": "", + "docstring": null } } } diff --git a/mcp_docs/modules/docforge.cli.json b/mcp_docs/modules/docforge.cli.json index 4d22e94..0b3ab64 100644 --- a/mcp_docs/modules/docforge.cli.json +++ b/mcp_docs/modules/docforge.cli.json @@ -2,27 +2,27 @@ "module": "docforge.cli", "content": { "path": "docforge.cli", - "docstring": "# CLI Layer\n\nThe `docforge.cli` package provides the command-line interface for interacting\nwith doc-forge.\n\n## Available Commands\n\n- **tree**: Visualize the introspected project structure.\n- **generate**: Create Markdown source files from Python code.\n- **mkdocs**: Generate the primary `mkdocs.yml` configuration.\n- **build**: Build the final documentation site.\n- **serve**: Launch a local development server with live-reloading.", + "docstring": "# CLI Layer\n\nThe `docforge.cli` package provides the command-line interface for interacting\nwith doc-forge.\n\n## Available Commands\n\n- **build**: Build documentation (MkDocs site or MCP resources).\n- **serve**: Serve documentation (MkDocs or MCP).\n- **tree**: Visualize the introspected project structure.", "objects": { "main": { "name": "main", "kind": "module", "path": "docforge.cli.main", "signature": null, - "docstring": "Main entry point for the doc-forge CLI.", + "docstring": "Main entry point for the doc-forge CLI. This module delegates all command\nexecution to docforge.cli.commands.", "members": { "cli": { "name": "cli", - "kind": "function", + "kind": "attribute", "path": "docforge.cli.main.cli", "signature": "", - "docstring": "doc-forge CLI: A tool for introspecting Python projects and generating\ndocumentation." + "docstring": null }, "main": { "name": "main", "kind": "function", "path": "docforge.cli.main.main", - "signature": "", + "signature": "", "docstring": "CLI Entry point. Boots the click application." } } @@ -208,28 +208,28 @@ "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.generate_sources", "signature": "", - "docstring": "Generate Markdown source files for the specified module." + "docstring": "Generate Markdown source files for the specified module.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n docs_dir: Directory where the generated Markdown files will be written." }, "generate_config": { "name": "generate_config", "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.generate_config", "signature": "", - "docstring": "Generate an mkdocs.yml configuration file." + "docstring": "Generate an mkdocs.yml configuration file.\n\nArgs:\n docs_dir: Path to the directory containing documentation Markdown files.\n nav_file: Path to the docforge.nav.yml specification.\n template: Optional path to an mkdocs.yml template (overrides built-in).\n out: Path where the final mkdocs.yml will be written.\n site_name: The display name for the documentation site." }, "build": { "name": "build", "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.build", "signature": "", - "docstring": "Build the documentation site using MkDocs." + "docstring": "Build the documentation site using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.serve", "signature": "", - "docstring": "Serve the documentation site with live-reload using MkDocs." + "docstring": "Serve the documentation site with live-reload using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." } } }, @@ -303,7 +303,7 @@ "kind": "function", "path": "docforge.cli.commands.mcp_utils.MCPRenderer.generate_sources", "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } }, @@ -342,44 +342,58 @@ "kind": "function", "path": "docforge.cli.commands.mcp_utils.generate_resources", "signature": "", - "docstring": "Generate MCP-compatible documentation resources." + "docstring": "Generate MCP-compatible documentation resources.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n out_dir: Directory where the MCP JSON resources and nav will be written." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.commands.mcp_utils.serve", "signature": "", - "docstring": "Serve MCP documentation." + "docstring": "Serve MCP documentation from a pre-built bundle.\n\nArgs:\n mcp_root: Path to the directory containing index.json, nav.json, and modules/." } } }, "cli": { "name": "cli", - "kind": "function", + "kind": "attribute", "path": "docforge.cli.commands.cli", - "signature": "", - "docstring": "doc-forge CLI: A tool for introspecting Python projects and generating\ndocumentation." + "signature": null, + "docstring": null }, "build": { "name": "build", "kind": "function", "path": "docforge.cli.commands.build", - "signature": "", - "docstring": "Build documentation (MkDocs site or MCP resources)." + "signature": "", + "docstring": "Build documentation (MkDocs site or MCP resources).\n\nThis command orchestrates the full build process:\n1. Introspects the code (Griffe)\n2. Renders sources (MkDocs Markdown or MCP JSON)\n3. (MkDocs only) Generates config and runs the final site build.\n\nArgs:\n mcp: Use the MCP documentation builder.\n mkdocs: Use the MkDocs documentation builder.\n module: The dotted path of the module to document.\n project_name: Optional override for the project name.\n site_name: (MkDocs) The site display name. Defaults to module name.\n docs_dir: (MkDocs) Target directory for Markdown sources.\n nav_file: (MkDocs) Path to the docforge.nav.yml specification.\n template: (MkDocs) Optional custom mkdocs.yml template.\n mkdocs_yml: (MkDocs) Target path for the generated mkdocs.yml.\n out_dir: (MCP) Target directory for MCP JSON resources." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.commands.serve", - "signature": "", - "docstring": "Serve documentation." + "signature": "", + "docstring": "Serve documentation (MkDocs or MCP).\n\nArgs:\n mcp: Serve MCP resources via an MCP server.\n mkdocs: Serve the MkDocs site using the built-in development server.\n mkdocs_yml: (MkDocs) Path to the mkdocs.yml configuration.\n out_dir: (MCP) Path to the mcp_docs/ directory." }, "tree": { "name": "tree", "kind": "function", "path": "docforge.cli.commands.tree", - "signature": "", - "docstring": "Visualize the project structure." + "signature": "", + "docstring": "Visualize the project structure in the terminal.\n\nArgs:\n modules: List of module import paths to recursively introspect.\n project_name: Optional override for the project name shown at the root." + }, + "Group": { + "name": "Group", + "kind": "alias", + "path": "docforge.cli.commands.Group", + "signature": "", + "docstring": null + }, + "Any": { + "name": "Any", + "kind": "alias", + "path": "docforge.cli.commands.Any", + "signature": "", + "docstring": null } } }, @@ -453,7 +467,7 @@ "kind": "function", "path": "docforge.cli.mcp_utils.MCPRenderer.generate_sources", "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } }, @@ -491,15 +505,15 @@ "name": "generate_resources", "kind": "function", "path": "docforge.cli.mcp_utils.generate_resources", - "signature": "", - "docstring": "Generate MCP-compatible documentation resources." + "signature": "", + "docstring": "Generate MCP-compatible documentation resources.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n out_dir: Directory where the MCP JSON resources and nav will be written." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.mcp_utils.serve", - "signature": "", - "docstring": "Serve MCP documentation." + "signature": "", + "docstring": "Serve MCP documentation from a pre-built bundle.\n\nArgs:\n mcp_root: Path to the directory containing index.json, nav.json, and modules/." } } }, @@ -625,29 +639,29 @@ "name": "generate_sources", "kind": "function", "path": "docforge.cli.mkdocs_utils.generate_sources", - "signature": "", - "docstring": "Generate Markdown source files for the specified module." + "signature": "", + "docstring": "Generate Markdown source files for the specified module.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n docs_dir: Directory where the generated Markdown files will be written." }, "generate_config": { "name": "generate_config", "kind": "function", "path": "docforge.cli.mkdocs_utils.generate_config", - "signature": "", - "docstring": "Generate an mkdocs.yml configuration file." + "signature": "", + "docstring": "Generate an mkdocs.yml configuration file.\n\nArgs:\n docs_dir: Path to the directory containing documentation Markdown files.\n nav_file: Path to the docforge.nav.yml specification.\n template: Optional path to an mkdocs.yml template (overrides built-in).\n out: Path where the final mkdocs.yml will be written.\n site_name: The display name for the documentation site." }, "build": { "name": "build", "kind": "function", "path": "docforge.cli.mkdocs_utils.build", - "signature": "", - "docstring": "Build the documentation site using MkDocs." + "signature": "", + "docstring": "Build the documentation site using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.mkdocs_utils.serve", - "signature": "", - "docstring": "Serve the documentation site with live-reload using MkDocs." + "signature": "", + "docstring": "Serve the documentation site with live-reload using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." } } } diff --git a/mcp_docs/modules/docforge.cli.main.json b/mcp_docs/modules/docforge.cli.main.json index 3536e12..c11662a 100644 --- a/mcp_docs/modules/docforge.cli.main.json +++ b/mcp_docs/modules/docforge.cli.main.json @@ -2,20 +2,20 @@ "module": "docforge.cli.main", "content": { "path": "docforge.cli.main", - "docstring": "Main entry point for the doc-forge CLI.", + "docstring": "Main entry point for the doc-forge CLI. This module delegates all command\nexecution to docforge.cli.commands.", "objects": { "cli": { "name": "cli", - "kind": "function", + "kind": "attribute", "path": "docforge.cli.main.cli", "signature": "", - "docstring": "doc-forge CLI: A tool for introspecting Python projects and generating\ndocumentation." + "docstring": null }, "main": { "name": "main", "kind": "function", "path": "docforge.cli.main.main", - "signature": "", + "signature": "", "docstring": "CLI Entry point. Boots the click application." } } diff --git a/mcp_docs/modules/docforge.cli.mcp_utils.json b/mcp_docs/modules/docforge.cli.mcp_utils.json index b1cd895..607ec05 100644 --- a/mcp_docs/modules/docforge.cli.mcp_utils.json +++ b/mcp_docs/modules/docforge.cli.mcp_utils.json @@ -67,7 +67,7 @@ "kind": "function", "path": "docforge.cli.mcp_utils.MCPRenderer.generate_sources", "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } }, @@ -105,15 +105,15 @@ "name": "generate_resources", "kind": "function", "path": "docforge.cli.mcp_utils.generate_resources", - "signature": "", - "docstring": "Generate MCP-compatible documentation resources." + "signature": "", + "docstring": "Generate MCP-compatible documentation resources.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n out_dir: Directory where the MCP JSON resources and nav will be written." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.mcp_utils.serve", - "signature": "", - "docstring": "Serve MCP documentation." + "signature": "", + "docstring": "Serve MCP documentation from a pre-built bundle.\n\nArgs:\n mcp_root: Path to the directory containing index.json, nav.json, and modules/." } } } diff --git a/mcp_docs/modules/docforge.cli.mkdocs_utils.json b/mcp_docs/modules/docforge.cli.mkdocs_utils.json index 88d3888..ccb2494 100644 --- a/mcp_docs/modules/docforge.cli.mkdocs_utils.json +++ b/mcp_docs/modules/docforge.cli.mkdocs_utils.json @@ -119,29 +119,29 @@ "name": "generate_sources", "kind": "function", "path": "docforge.cli.mkdocs_utils.generate_sources", - "signature": "", - "docstring": "Generate Markdown source files for the specified module." + "signature": "", + "docstring": "Generate Markdown source files for the specified module.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n docs_dir: Directory where the generated Markdown files will be written." }, "generate_config": { "name": "generate_config", "kind": "function", "path": "docforge.cli.mkdocs_utils.generate_config", - "signature": "", - "docstring": "Generate an mkdocs.yml configuration file." + "signature": "", + "docstring": "Generate an mkdocs.yml configuration file.\n\nArgs:\n docs_dir: Path to the directory containing documentation Markdown files.\n nav_file: Path to the docforge.nav.yml specification.\n template: Optional path to an mkdocs.yml template (overrides built-in).\n out: Path where the final mkdocs.yml will be written.\n site_name: The display name for the documentation site." }, "build": { "name": "build", "kind": "function", "path": "docforge.cli.mkdocs_utils.build", - "signature": "", - "docstring": "Build the documentation site using MkDocs." + "signature": "", + "docstring": "Build the documentation site using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.mkdocs_utils.serve", - "signature": "", - "docstring": "Serve the documentation site with live-reload using MkDocs." + "signature": "", + "docstring": "Serve the documentation site with live-reload using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." } } } diff --git a/mcp_docs/modules/docforge.json b/mcp_docs/modules/docforge.json index 6d9ff5d..0f2176e 100644 --- a/mcp_docs/modules/docforge.json +++ b/mcp_docs/modules/docforge.json @@ -2,7 +2,7 @@ "module": "docforge", "content": { "path": "docforge", - "docstring": "# doc-forge\n\n`doc-forge` is a renderer-agnostic Python documentation compiler designed for\nspeed, flexibility, and beautiful output. It decouples the introspection of\nyour code from the rendering process, allowing you to generate documentation\nfor various platforms (starting with MkDocs) from a single internal models.\n\n## Installation\n\nInstall using `pip` with the optional `mkdocs` dependencies for a complete setup:\n\n```bash\npip install doc-forge\n```\n\n## Quick Start\n\n1. **Generate Markdown Sources**:\n Introspect your package and create ready-to-use Markdown files:\n ```bash\n doc-forge generate --module my_package --docs-dir docs\n ```\n\n2. **Define Navigation**:\n Create a `docforge.nav.yml` to organize your documentation:\n ```yaml\n home: my_package/index.md\n groups:\n Core API:\n - my_package/core/*.md\n Utilities:\n - my_package/utils.md\n ```\n\n3. **Generate MkDocs Configuration**:\n ```bash\n doc-forge mkdocs --site-name \"My Awesome Docs\"\n ```\n\n4. **Preview**:\n ```bash\n doc-forge serve\n ```\n\n## Project Structure\n\n- `docforge.loaders`: Introspects source code using static analysis (`griffe`).\n- `docforge.models`: The internal representation of your project, modules, and objects.\n- `docforge.renderers`: Converters that turn the models into physical files.\n- `docforge.nav`: Managers for logical-to-physical path mapping and navigation.", + "docstring": "# doc-forge\n\n`doc-forge` is a renderer-agnostic Python documentation compiler designed for\nspeed, flexibility, and beautiful output. It decouples the introspection of\nyour code from the rendering process, allowing you to generate documentation\nfor various platforms (starting with MkDocs) from a single internal models.\n\n## Available Commands\n\n- **build**: Build documentation (MkDocs site or MCP resources).\n- **serve**: Serve documentation (MkDocs or MCP).\n- **tree**: Visualize the introspected project structure.\n\n## Installation\n\nInstall using `pip` with the optional `mkdocs` dependencies for a complete setup:\n\n```bash\npip install doc-forge\n```\n\n## Quick Start\n\n1. **Build Documentation**:\n Introspect your package and generate documentation in one step:\n ```bash\n # Build MkDocs site\n doc-forge build --mkdocs --module my_package --site-name \"My Docs\"\n\n # Build MCP resources\n doc-forge build --mcp --module my_package\n ```\n\n2. **Define Navigation**:\n Create a `docforge.nav.yml` to organize your documentation:\n ```yaml\n home: my_package/index.md\n groups:\n Core API:\n - my_package/core/*.md\n Utilities:\n - my_package/utils.md\n ```\n\n3. **Preview**:\n ```bash\n # Serve MkDocs site\n doc-forge serve --mkdocs\n\n # Serve MCP documentation\n doc-forge serve --mcp\n ```\n\n## Project Structure\n\n- `docforge.loaders`: Introspects source code using static analysis (`griffe`).\n- `docforge.models`: The internal representation of your project, modules, and objects.\n- `docforge.renderers`: Converters that turn the models into physical files.\n- `docforge.nav`: Managers for logical-to-physical path mapping and navigation.", "objects": { "GriffeLoader": { "name": "GriffeLoader", @@ -76,7 +76,7 @@ "kind": "function", "path": "docforge.MCPRenderer.generate_sources", "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } }, @@ -85,14 +85,14 @@ "kind": "module", "path": "docforge.main", "signature": "", - "docstring": "Main entry point for the doc-forge CLI.", + "docstring": "Main entry point for the doc-forge CLI. This module delegates all command\nexecution to docforge.cli.commands.", "members": { "cli": { "name": "cli", - "kind": "function", + "kind": "attribute", "path": "docforge.main.cli", "signature": "", - "docstring": "doc-forge CLI: A tool for introspecting Python projects and generating\ndocumentation." + "docstring": null }, "main": { "name": "main", @@ -108,27 +108,27 @@ "kind": "module", "path": "docforge.cli", "signature": null, - "docstring": "# CLI Layer\n\nThe `docforge.cli` package provides the command-line interface for interacting\nwith doc-forge.\n\n## Available Commands\n\n- **tree**: Visualize the introspected project structure.\n- **generate**: Create Markdown source files from Python code.\n- **mkdocs**: Generate the primary `mkdocs.yml` configuration.\n- **build**: Build the final documentation site.\n- **serve**: Launch a local development server with live-reloading.", + "docstring": "# CLI Layer\n\nThe `docforge.cli` package provides the command-line interface for interacting\nwith doc-forge.\n\n## Available Commands\n\n- **build**: Build documentation (MkDocs site or MCP resources).\n- **serve**: Serve documentation (MkDocs or MCP).\n- **tree**: Visualize the introspected project structure.", "members": { "main": { "name": "main", "kind": "module", "path": "docforge.cli.main", "signature": null, - "docstring": "Main entry point for the doc-forge CLI.", + "docstring": "Main entry point for the doc-forge CLI. This module delegates all command\nexecution to docforge.cli.commands.", "members": { "cli": { "name": "cli", - "kind": "function", + "kind": "attribute", "path": "docforge.cli.main.cli", "signature": "", - "docstring": "doc-forge CLI: A tool for introspecting Python projects and generating\ndocumentation." + "docstring": null }, "main": { "name": "main", "kind": "function", "path": "docforge.cli.main.main", - "signature": "", + "signature": "", "docstring": "CLI Entry point. Boots the click application." } } @@ -314,28 +314,28 @@ "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.generate_sources", "signature": "", - "docstring": "Generate Markdown source files for the specified module." + "docstring": "Generate Markdown source files for the specified module.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n docs_dir: Directory where the generated Markdown files will be written." }, "generate_config": { "name": "generate_config", "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.generate_config", "signature": "", - "docstring": "Generate an mkdocs.yml configuration file." + "docstring": "Generate an mkdocs.yml configuration file.\n\nArgs:\n docs_dir: Path to the directory containing documentation Markdown files.\n nav_file: Path to the docforge.nav.yml specification.\n template: Optional path to an mkdocs.yml template (overrides built-in).\n out: Path where the final mkdocs.yml will be written.\n site_name: The display name for the documentation site." }, "build": { "name": "build", "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.build", "signature": "", - "docstring": "Build the documentation site using MkDocs." + "docstring": "Build the documentation site using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.commands.mkdocs_utils.serve", "signature": "", - "docstring": "Serve the documentation site with live-reload using MkDocs." + "docstring": "Serve the documentation site with live-reload using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." } } }, @@ -409,7 +409,7 @@ "kind": "function", "path": "docforge.cli.commands.mcp_utils.MCPRenderer.generate_sources", "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } }, @@ -448,44 +448,58 @@ "kind": "function", "path": "docforge.cli.commands.mcp_utils.generate_resources", "signature": "", - "docstring": "Generate MCP-compatible documentation resources." + "docstring": "Generate MCP-compatible documentation resources.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n out_dir: Directory where the MCP JSON resources and nav will be written." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.commands.mcp_utils.serve", "signature": "", - "docstring": "Serve MCP documentation." + "docstring": "Serve MCP documentation from a pre-built bundle.\n\nArgs:\n mcp_root: Path to the directory containing index.json, nav.json, and modules/." } } }, "cli": { "name": "cli", - "kind": "function", + "kind": "attribute", "path": "docforge.cli.commands.cli", - "signature": "", - "docstring": "doc-forge CLI: A tool for introspecting Python projects and generating\ndocumentation." + "signature": null, + "docstring": null }, "build": { "name": "build", "kind": "function", "path": "docforge.cli.commands.build", - "signature": "", - "docstring": "Build documentation (MkDocs site or MCP resources)." + "signature": "", + "docstring": "Build documentation (MkDocs site or MCP resources).\n\nThis command orchestrates the full build process:\n1. Introspects the code (Griffe)\n2. Renders sources (MkDocs Markdown or MCP JSON)\n3. (MkDocs only) Generates config and runs the final site build.\n\nArgs:\n mcp: Use the MCP documentation builder.\n mkdocs: Use the MkDocs documentation builder.\n module: The dotted path of the module to document.\n project_name: Optional override for the project name.\n site_name: (MkDocs) The site display name. Defaults to module name.\n docs_dir: (MkDocs) Target directory for Markdown sources.\n nav_file: (MkDocs) Path to the docforge.nav.yml specification.\n template: (MkDocs) Optional custom mkdocs.yml template.\n mkdocs_yml: (MkDocs) Target path for the generated mkdocs.yml.\n out_dir: (MCP) Target directory for MCP JSON resources." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.commands.serve", - "signature": "", - "docstring": "Serve documentation." + "signature": "", + "docstring": "Serve documentation (MkDocs or MCP).\n\nArgs:\n mcp: Serve MCP resources via an MCP server.\n mkdocs: Serve the MkDocs site using the built-in development server.\n mkdocs_yml: (MkDocs) Path to the mkdocs.yml configuration.\n out_dir: (MCP) Path to the mcp_docs/ directory." }, "tree": { "name": "tree", "kind": "function", "path": "docforge.cli.commands.tree", - "signature": "", - "docstring": "Visualize the project structure." + "signature": "", + "docstring": "Visualize the project structure in the terminal.\n\nArgs:\n modules: List of module import paths to recursively introspect.\n project_name: Optional override for the project name shown at the root." + }, + "Group": { + "name": "Group", + "kind": "alias", + "path": "docforge.cli.commands.Group", + "signature": "", + "docstring": null + }, + "Any": { + "name": "Any", + "kind": "alias", + "path": "docforge.cli.commands.Any", + "signature": "", + "docstring": null } } }, @@ -559,7 +573,7 @@ "kind": "function", "path": "docforge.cli.mcp_utils.MCPRenderer.generate_sources", "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } }, @@ -597,15 +611,15 @@ "name": "generate_resources", "kind": "function", "path": "docforge.cli.mcp_utils.generate_resources", - "signature": "", - "docstring": "Generate MCP-compatible documentation resources." + "signature": "", + "docstring": "Generate MCP-compatible documentation resources.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n out_dir: Directory where the MCP JSON resources and nav will be written." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.mcp_utils.serve", - "signature": "", - "docstring": "Serve MCP documentation." + "signature": "", + "docstring": "Serve MCP documentation from a pre-built bundle.\n\nArgs:\n mcp_root: Path to the directory containing index.json, nav.json, and modules/." } } }, @@ -731,29 +745,29 @@ "name": "generate_sources", "kind": "function", "path": "docforge.cli.mkdocs_utils.generate_sources", - "signature": "", - "docstring": "Generate Markdown source files for the specified module." + "signature": "", + "docstring": "Generate Markdown source files for the specified module.\n\nArgs:\n module: The dotted path of the primary module to document.\n project_name: Optional override for the project name.\n docs_dir: Directory where the generated Markdown files will be written." }, "generate_config": { "name": "generate_config", "kind": "function", "path": "docforge.cli.mkdocs_utils.generate_config", - "signature": "", - "docstring": "Generate an mkdocs.yml configuration file." + "signature": "", + "docstring": "Generate an mkdocs.yml configuration file.\n\nArgs:\n docs_dir: Path to the directory containing documentation Markdown files.\n nav_file: Path to the docforge.nav.yml specification.\n template: Optional path to an mkdocs.yml template (overrides built-in).\n out: Path where the final mkdocs.yml will be written.\n site_name: The display name for the documentation site." }, "build": { "name": "build", "kind": "function", "path": "docforge.cli.mkdocs_utils.build", - "signature": "", - "docstring": "Build the documentation site using MkDocs." + "signature": "", + "docstring": "Build the documentation site using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." }, "serve": { "name": "serve", "kind": "function", "path": "docforge.cli.mkdocs_utils.serve", - "signature": "", - "docstring": "Serve the documentation site with live-reload using MkDocs." + "signature": "", + "docstring": "Serve the documentation site with live-reload using MkDocs.\n\nArgs:\n mkdocs_yml: Path to the mkdocs.yml configuration file." } } } @@ -2088,7 +2102,7 @@ "kind": "function", "path": "docforge.renderers.MCPRenderer.generate_sources", "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } }, @@ -2425,7 +2439,7 @@ "name": "MCPRenderer", "kind": "class", "path": "docforge.renderers.mcp_renderer.MCPRenderer", - "signature": "", + "signature": "", "docstring": "Renderer that emits MCP-native JSON resources from docforge models.", "members": { "name": { @@ -2439,8 +2453,8 @@ "name": "generate_sources", "kind": "function", "path": "docforge.renderers.mcp_renderer.MCPRenderer.generate_sources", - "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "signature": "", + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } } diff --git a/mcp_docs/modules/docforge.renderers.json b/mcp_docs/modules/docforge.renderers.json index c04eebf..d46becc 100644 --- a/mcp_docs/modules/docforge.renderers.json +++ b/mcp_docs/modules/docforge.renderers.json @@ -46,7 +46,7 @@ "kind": "function", "path": "docforge.renderers.MCPRenderer.generate_sources", "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } }, @@ -383,7 +383,7 @@ "name": "MCPRenderer", "kind": "class", "path": "docforge.renderers.mcp_renderer.MCPRenderer", - "signature": "", + "signature": "", "docstring": "Renderer that emits MCP-native JSON resources from docforge models.", "members": { "name": { @@ -397,8 +397,8 @@ "name": "generate_sources", "kind": "function", "path": "docforge.renderers.mcp_renderer.MCPRenderer.generate_sources", - "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "signature": "", + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } } diff --git a/mcp_docs/modules/docforge.renderers.mcp_renderer.json b/mcp_docs/modules/docforge.renderers.mcp_renderer.json index 7e44750..0bcfd11 100644 --- a/mcp_docs/modules/docforge.renderers.mcp_renderer.json +++ b/mcp_docs/modules/docforge.renderers.mcp_renderer.json @@ -210,7 +210,7 @@ "name": "MCPRenderer", "kind": "class", "path": "docforge.renderers.mcp_renderer.MCPRenderer", - "signature": "", + "signature": "", "docstring": "Renderer that emits MCP-native JSON resources from docforge models.", "members": { "name": { @@ -224,8 +224,8 @@ "name": "generate_sources", "kind": "function", "path": "docforge.renderers.mcp_renderer.MCPRenderer.generate_sources", - "signature": "", - "docstring": "Generate MCP-compatible JSON resources and navigation for the project." + "signature": "", + "docstring": "Generate MCP-compatible JSON resources and navigation for the project.\n\nArgs:\n project: The project model to render.\n out_dir: Target directory for the generated JSON files." } } }